diff --git a/cfg/dir.txt b/cfg/dir.txt deleted file mode 100644 index bfe50bb26..000000000 --- a/cfg/dir.txt +++ /dev/null @@ -1 +0,0 @@ -cfg files will be stored here. \ No newline at end of file diff --git a/cheat/dir.txt b/cheat/dir.txt deleted file mode 100644 index f81548df1..000000000 --- a/cheat/dir.txt +++ /dev/null @@ -1 +0,0 @@ -cheat files will be stored here. \ No newline at end of file diff --git a/ctrlr/standard.cfg b/ctrlr/standard.cfg deleted file mode 100644 index 5ee84c3e4..000000000 --- a/ctrlr/standard.cfg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/messnew.txt b/docs/messnew.txt index 6685f30c2..f5c18c4cd 100644 --- a/docs/messnew.txt +++ b/docs/messnew.txt @@ -1,3 +1,73 @@ +0.113 + +New System Drivers Supported (in no particular order): +------------------------------------------------------ +- Sega Saturn (USA) (not working) [R. Belmont] +- Sega Saturn (PAL) (not working) [R. Belmont] +- JVC V-Saturn (not working) [R. Belmont] +- Hitachi HiSaturn (not working) [R. Belmont] +- Sega Gamegear (Japan) [Wilbert Pol] + + + +System Driver Changes: +---------------------- +- [A7800] Fixed regression introduced in 0.112. (bug #1064) [Dirk Best] + +- [CGENIE] Changed some variables to initialize at startup. (bug #1055) [Nate + Woods] + +- [COCO3] Fixed a subtle GIME timer problem. (bug #1065) [Nate Woods] + +- [COUPE] Fixed regression introduced in 0.112. (bug #1062) [Nate Woods] + +- [GAMEBOY] Rewrote video hardware timing. Rewrote rendering code to support + mid-scanline effects. [Wilbert Pol] + +- [IP22] Fixed regression introduced in 0.112. (bug #1045) [Nate Woods] + +- [MPF1] Fixed regression introduced in 0.112. (bug #1077) [Nate Woods] + +- [N64] Fixed start button mapping. (bug #1050) [Justin Kerk] + +- [SMS/GG] Improved PSG, FM, and CPU clock frequencies [Andre Cotrim, Wilbert Pol] + Fixed triggering of the VBlank interrupt. (bug #1097) [Wilbert Pol] + Added support for zoomed sprites and fixed VDP control/data port + behaviour. (bug #794) [Wilbert Pol] + +- [SORDM5] Fixed regression introduced in 0.112. (bug #1082) [Nate Woods] + +- [SVISION] Many improvements and fixes. [PeT] + +- [VECTREX] Fixed inadvertent marking as a raster driver. (bug #1099) [Nate Woods] + + + +User Interface Changes: +----------------------- +(none) + + + +Imgtool Changes: +---------------- +- [Windows] Fixed problem opening and deleting files contained within + directories. (bug #1066) [Nate Woods] + + + +Source Changes: +---------------- +- The core is based on MAME 0.113. This incorporates all features of the + update to this core. [MAME team] + +- [Windows] Fixed a crash that can happen when doing a hard reset when devices + are mounted. (bugs #1036, #1084) [Nate Woods] + +- [Messtest] Added the ability to script hard resets. [Nate Woods] + + + 0.112 New System Drivers Supported (in no particular order): diff --git a/docs/messroms.txt b/docs/messroms.txt deleted file mode 100644 index d2ae5d258..000000000 --- a/docs/messroms.txt +++ /dev/null @@ -1,177 +0,0 @@ -messroms.txt ------------- - -information about -* messroms utility -* dumping roms -* saving roms -* transfering data to pc - -files ------ -main.c, roms.h, comp.h messroms tool -dumppc.c, dumppc.txt, dumppc.exe msdos utility for dumping pc rom area - (also binary, because with djgpp you can't create a 8086 based pure msdos utility) -dumpat.c, dumpat.txt, dumpat.exe msdos utility for dumping at boot area -read6530.c contains the info for dumping mos rriot 6530 -rddil24.c contains the info for dumping mos rom6332 or similar 24 pin roms -read6332.c contains the info for dumping mos rom 6332 -rddil32.c this is more a bugfix for my eprommer software - -cbm.txt info for dumping, saving, transfering commodore computers and devices -c64savec.prg program to copy c64 character to basic area for later saving - -svision.txt info for building an adapter for supervision cartridge to - 27c4001 eprom pinout -pc1500.txt pinout of sharp pc1500/pc1500a/trs80pc2 rom -tc.txt pinout of TC531000 (128k x 8 rom) TC571001 (128k x 8 eprom) - -cvhp48.c conversion utility for hp48 ascii/romdump dumps into binary - -messroms utility ----------------- - -motivation: help identifying already known roms, bad dumps, -and give info to convert roms into the needed format. - -messroms --0x0000000 - identify crc -messroms directory - identifies files in directory -messroms zipfile.zip - identifies files in zip archiv - - -dumping roms ------------- - -most roms are dumped with eprom burners. -There are many variations of eprom burners outside, -each supported a large range of eprom chip types. - -I will give only a few tips for special chips: - -Always use the romcmp utility to identify bad dumps. -Dump several times, and compare if the dumped data is the same. - -Weak dumps: had different dumps with watara supervision cartridges - when oe, ce was not switched when reading - -MOS6332: rom 4 kbyte 8bit, DIL 24 package - for pinout look into mess/messroms/read6332.c - to allow dumping as 2732 build an adapter exchanging pin 18 and 20 - -Signetics C19081, C19082 (24 pin dil) look into rd24dil.c - -EPROM DIL 32 PIN: - dumping as 278001 should be save - -rom/eprom in epoxy: - often you can see the wire into the epoxy. - These are in the same ordering as the pinout of the chip - (helped finding out watara super vision cartridge pinout) - -soldered roms/eproms, and you can't or want unsolder them: - wire an adapter with 2 sockets - (a cheap one to place on top of the eprom, and another one for the eprommer) - cut 1 of the power lines with a sharp knife - solder socket on 2 points over the eprom for mechanical stability - now you should be able to read it out - unsolder the piggyback socket - reconnect the cut pin - -MOS6530: rom, ram, input, output timer - difficult to read - look into mess/messroms/read6530.c - maybe you can wire an adapter for an eprommer and read it as 27128 (a0 simulating clock) - you have to identify the rom, ram, io area in the usually 8kbyte dumped data - ram 64 bytes 0xff, io 16 bytes misc data, rom 1kbyte, - unused depends on your hardware in mine 0 - -PIC1655 - info at www.microchip.com: technical reference manual and programming reference manual - available - - could be protected (you read protected data, with info lost) - reading of mask programmed chips? - PIC16C55 and PIC1655(NMOS) differences? - -SC61860: Sharp Pocket Computer internal rom of the cpu - not known if it is accessible on the pinout - -TC531000 (128k x 8 mask rom) - look into mess/messroms/tc.txt - -TC571001 (128k x 8 eprom ) - look into mess/messroms/tc.txt - -Sharp PC1500, PC1500A -Tandy TRS80 PC-2 ----------------- - look into mess/messroms/pc1500.txt for rom pinout - -RCA Studio 2 and cartridges - look at Paul Robson's Studio2 page at www.classicgaming.com/studio2 - -Watara Supervision Cartridges - look into mess/messroms/svision.txt for building an adapter - -Saving roms ------------ - -Some dump roms with the help of rom sockets in computer. -E.g. pc network adapter to plug in an 8kbyte rom in its bootrom socket -and read it. - -Sometimes it is not possible to get the single chips for reading. -* you may not or can not open the appliances -* roms are soldered directly into the board and you cannot unsolder them -* roms are in a smd package with very small place between pins -.... - -Many roms are complete visible to cpu. So you can read them out with programs. - -IBMPC ------ -most bios, graphics, harddisk, ethernet bootroms are complete visible. -Character roms in pre EGA graphics adapters are not visible. -Flash roms of modern pcs not complete in the small 256 kbyte PC realmode area. -Some special roms (deskmate of tandy1000) are not visible in the small 256kbyte area. - -You can used msdos debug, or any other debugger to save there roms: -c0000-c7fff typical EGA,VGA -c8000-c9fff typical PC harddisk controller -f6000-fdfff BASIC -fe000-fffff PC bios -f0000-fffff bigger bios - -In dumppc.zip you find a msdos utility dumping the complete c0000-fffff area. - -VAMPIRE warning -vampire extracts only the basic and the bios areas, -and therefor does incomplete dumps on many pcs! -(ibm pcjr, ibm xt, ibm at, tandy 1000hx, tandy 2500xl, at's ) - -IBMAT ------ -This saves the boot area of intel 386 compatibles at's -(0xfff00000-0xfffffffff) -Should work with intel 286 compable at's (0xf00000-0xffffff). -Hopefully works with those 286 based xt's and tandy's. - -Sharp Pocket Computer ---------------------- -look into src/cpu/sc61860/readpc.c -Internal rom only accessible in machine language - -HP48S/SX/G/GX -------------- -In some emulators (x48) you can find instructions and a tool for -transmitting the rom to a computer with -rs232 (9600 8N1 with kermit? protocoll). -cvhp48.c converts this dump into a binary. - -Transfering data to another computer ------------------------------------- - -? diff --git a/docs/style.css b/docs/style.css deleted file mode 100644 index 09f09fbe9..000000000 --- a/docs/style.css +++ /dev/null @@ -1 +0,0 @@ -BODY {background: white } .filename {font-family: "Courier new", courier; color: brown; font-weight: bold} .command {font-family: "Courier new", courier; color: green; font-weight: bold} .key {font-family: "Courier new", courier; color: gray; font-weight: bold} .fixedsize {font-family: "Courier new", courier} .consoletext {font-family: "Courier new", courier} .tabletitle {font-weight: bold } .tablehead {font-weight: bold } .tabledesc { } .normal { } \ No newline at end of file diff --git a/docs/windows.txt b/docs/windows.txt index 7eb340a65..f0d528e57 100644 --- a/docs/windows.txt +++ b/docs/windows.txt @@ -1143,6 +1143,7 @@ Automatic device selection options -dial_device / -dial -trackball_device / -trackball -lightgun_device +-positional_device Each of these options controls autoenabling the mouse, joystick, or lightgun depending on the presence of a particular class of analog diff --git a/hash/a5200.hsi b/hash/a5200.hsi index 968966718..e267b76b4 100644 --- a/hash/a5200.hsi +++ b/hash/a5200.hsi @@ -924,3 +924,4 @@ bad dump (8kb instead of 16kbyte data) + diff --git a/ini/dir.txt b/ini/dir.txt deleted file mode 100644 index 6deb13064..000000000 --- a/ini/dir.txt +++ /dev/null @@ -1 +0,0 @@ -ini files will be stored here. \ No newline at end of file diff --git a/makefile b/makefile index 8581ac6af..b062b2927 100644 --- a/makefile +++ b/makefile @@ -4,7 +4,7 @@ # # Core makefile for building MAME and derivatives # -# Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team. +# Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. # Visit http://mamedev.org for licensing and usage restrictions. # ########################################################################### @@ -17,19 +17,26 @@ #------------------------------------------------- -# specify core target: mame, mess, tiny, etc. -# build rules will be included from $(TARGET).mak +# specify core target: mame, mess, etc. +# specify subtarget: mame, mess, tiny, etc. +# build rules will be included from +# $(TARGET)/$(SUBTARGET).mak #------------------------------------------------- ifndef TARGET TARGET = mame endif +ifndef SUBTARGET +SUBTARGET = $(TARGET) +endif + #------------------------------------------------- # specify operating system: windows, msdos, etc. -# build rules will be includes from $(MAMEOS)/$(MAMEOS).mak +# build rules will be includes from +# src/osd/$(MAMEOS)/$(MAMEOS).mak #------------------------------------------------- ifndef MAMEOS @@ -140,45 +147,53 @@ PREFIX = d endif # by default, compile for Pentium target -NAME = $(PREFIX)$(TARGET) +ifeq ($(TARGET),$(SUBTARGET)) +NAME = $(TARGET) +else +NAME = $(TARGET)$(SUBTARGET) +endif ARCH = -march=pentium # architecture-specific builds get extra options ifdef ATHLON -NAME = $(PREFIX)$(TARGET)at +SUFFIX = at ARCH = -march=athlon endif ifdef I686 -NAME = $(PREFIX)$(TARGET)pp +SUFFIX = pp ARCH = -march=pentiumpro endif ifdef P4 -NAME = $(PREFIX)$(TARGET)p4 +SUFFIX = p4 ARCH = -march=pentium4 endif ifdef AMD64 -NAME = $(PREFIX)$(TARGET)64 +SUFFIX = 64 ARCH = -march=athlon64 endif ifdef PM -NAME = $(PREFIX)$(TARGET)pm +SUFFIX = pm ARCH = -march=pentium3 -msse2 endif # debug builds just get the 'd' suffix and nothing more ifdef DEBUG -NAME = $(PREFIX)$(TARGET)d +SUFFIX = d endif -EMULATOR = $(NAME)$(EXE) +FULLNAME = $(PREFIX)$(NAME)$(SUFFIX) + +EMULATOR = $(FULLNAME)$(EXE) # build the targets in different object dirs, since mess changes # some structures and thus they can't be linked against each other. -OBJ = obj/$(NAME) +OBJ = obj/$(FULLNAME) + +SRC = src @@ -206,14 +221,22 @@ endif # compile and linking flags #------------------------------------------------- -CFLAGS = -std=gnu89 -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/layout +CFLAGS = \ + -std=gnu89 \ + -I$(SRC)/$(TARGET) \ + -I$(SRC)/$(TARGET)/includes \ + -I$(OBJ)/$(TARGET)/layout \ + -I$(SRC)/emu \ + -I$(OBJ)/emu/layout \ + -I$(SRC)/lib/util \ + -I$(SRC)/osd \ + -I$(SRC)/osd/$(MAMEOS) \ ifdef SYMBOLS CFLAGS += -g endif CFLAGS += -Wall \ - -Wno-unused-functions \ -Wpointer-arith \ -Wbad-function-cast \ -Wcast-align \ @@ -221,7 +244,8 @@ CFLAGS += -Wall \ -Wundef \ -Wformat-security \ -Wwrite-strings \ - -Wdeclaration-after-statement + -Wdeclaration-after-statement \ + -Wno-unused-functions \ ifneq ($(OPTIMIZE),0) CFLAGS += -Werror -DNDEBUG $(ARCH) -fno-strict-aliasing @@ -241,7 +265,7 @@ LDFLAGS += -s endif ifdef MAP -MAPFLAGS = -Wl,-Map,$(NAME).map +MAPFLAGS = -Wl,-Map,$(FULLNAME).map else MAPFLAGS = endif @@ -249,38 +273,12 @@ endif #------------------------------------------------- -# define the dependency search paths -#------------------------------------------------- - -VPATH = src $(wildcard src/cpu/*) - - - -#------------------------------------------------- -# define the standard object directories +# define the standard object directory; other +# projects can add their object directories to +# this variable #------------------------------------------------- -OBJDIRS = \ - $(OBJ)/cpu \ - $(OBJ)/sound \ - $(OBJ)/debug \ - $(OBJ)/tools \ - $(OBJ)/drivers \ - $(OBJ)/layout \ - $(OBJ)/machine \ - $(OBJ)/sndhrdw \ - $(OBJ)/vidhrdw \ - $(OBJ)/$(MAMEOS) \ - -ifdef MESS -OBJDIRS += - $(OBJ)/mess \ - $(OBJ)/mess/systems \ - $(OBJ)/mess/machine \ - $(OBJ)/mess/sndhrdw \ - $(OBJ)/mess/vidhrdw \ - $(OBJ)/mess/tools -endif +OBJDIRS = $(OBJ) @@ -288,11 +286,14 @@ endif # define standard libarires for CPU and sounds #------------------------------------------------- -CPULIB = $(OBJ)/libcpu.a - -SOUNDLIB = $(OBJ)/libsound.a +LIBEMU = $(OBJ)/libemu.a +LIBCPU = $(OBJ)/libcpu.a +LIBSOUND = $(OBJ)/libsound.a +LIBUTIL = $(OBJ)/libutil.a +LIBOCORE = $(OBJ)/libocore.a +LIBOSD = $(OBJ)/libosd.a -OSDCORELIB = $(OBJ)/$(MAMEOS)/libocore.a +VERSIONOBJ = $(OBJ)/version.o @@ -306,8 +307,7 @@ LIBS = # add expat XML library ifdef BUILD_EXPAT -CFLAGS += -Isrc/expat -OBJDIRS += $(OBJ)/expat +CFLAGS += -I$(SRC)/lib/expat EXPAT = $(OBJ)/libexpat.a else LIBS += -lexpat @@ -316,8 +316,7 @@ endif # add ZLIB compression library ifdef BUILD_ZLIB -CFLAGS += -Isrc/zlib -OBJDIRS += $(OBJ)/zlib +CFLAGS += -I$(SRC)/lib/zlib ZLIB = $(OBJ)/libz.a else LIBS += -lz @@ -331,7 +330,7 @@ endif # include files which define additional targets #------------------------------------------------- -all: maketree emulator extra +all: maketree emulator tools @@ -340,13 +339,13 @@ all: maketree emulator extra #------------------------------------------------- # include OS-specific rules first -include src/$(MAMEOS)/$(MAMEOS).mak +include $(SRC)/osd/$(MAMEOS)/$(MAMEOS).mak # then the various core pieces -include src/core.mak -include src/$(TARGET).mak -include src/cpu/cpu.mak -include src/sound/sound.mak +include $(SRC)/$(TARGET)/$(SUBTARGET).mak +include $(SRC)/emu/emu.mak +include $(SRC)/lib/lib.mak +include $(SRC)/tools/tools.mak # combine the various definitions to one CDEFS = $(DEFS) $(COREDEFS) $(CPUDEFS) $(SOUNDDEFS) @@ -359,7 +358,7 @@ CDEFS = $(DEFS) $(COREDEFS) $(CPUDEFS) $(SOUNDDEFS) emulator: maketree $(EMULATOR) -extra: $(TOOLS) +tools: maketree $(TOOLS) maketree: $(sort $(OBJDIRS)) @@ -370,6 +369,10 @@ clean: $(RM) $(EMULATOR) @echo Deleting $(TOOLS)... $(RM) $(TOOLS) +ifdef MAP + @echo Deleting $(FULLNAME).map... + $(RM) $(FULLNAME).map +endif @@ -386,75 +389,37 @@ $(sort $(OBJDIRS)): # executable targets and dependencies #------------------------------------------------- -$(EMULATOR): $(COREOBJS) $(OSOBJS) $(CPULIB) $(SOUNDLIB) $(DRVLIBS) $(EXPAT) $(ZLIB) $(OSDCORELIB) +$(EMULATOR): $(VERSIONOBJ) $(DRVLIBS) $(LIBOSD) $(LIBEMU) $(LIBCPU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(LIBOCORE) $(RESFILE) # always recompile the version string - $(CC) $(CDEFS) $(CFLAGS) -c src/version.c -o $(OBJ)/version.o + $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ) @echo Linking $@... $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ $(MAPFLAGS) -file2str$(EXE): $(OBJ)/tools/file2str.o $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -romcmp$(EXE): $(OBJ)/tools/romcmp.o $(OBJ)/unzip.o $(OBJ)/mamecore.o $(ZLIB) $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -chdman$(EXE): $(OBJ)/tools/chdman.o $(OBJ)/chd.o $(OBJ)/tools/chdcd.o $(OBJ)/cdrom.o $(OBJ)/md5.o $(OBJ)/sha1.o $(OBJ)/version.o $(ZLIB) $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -jedutil$(EXE): $(OBJ)/tools/jedutil.o $(OBJ)/jedparse.o $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - - - -#------------------------------------------------- -# library targets and dependencies -#------------------------------------------------- - -$(CPULIB): $(CPUOBJS) - -ifdef DEBUG -$(CPULIB): $(DBGOBJS) -endif - -$(SOUNDLIB): $(SOUNDOBJS) - -$(OSDCORELIB): $(OSDCOREOBJS) - -$(OBJ)/libexpat.a: $(OBJ)/expat/xmlparse.o $(OBJ)/expat/xmlrole.o $(OBJ)/expat/xmltok.o - -$(OBJ)/libz.a: $(OBJ)/zlib/adler32.o $(OBJ)/zlib/compress.o $(OBJ)/zlib/crc32.o $(OBJ)/zlib/deflate.o \ - $(OBJ)/zlib/gzio.o $(OBJ)/zlib/inffast.o $(OBJ)/zlib/inflate.o $(OBJ)/zlib/infback.o \ - $(OBJ)/zlib/inftrees.o $(OBJ)/zlib/trees.o $(OBJ)/zlib/uncompr.o $(OBJ)/zlib/zutil.o - #------------------------------------------------- # generic rules #------------------------------------------------- -$(OBJ)/$(MAMEOS)/%.o: src/$(MAMEOS)/%.c | $(OSPREBUILD) +$(OBJ)/osd/$(MAMEOS)/%.o: $(SRC)/osd/$(MAMEOS)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGSOSDEPEND) -c $< -o $@ -$(OBJ)/%.o: src/%.c | $(OSPREBUILD) +$(OBJ)/%.o: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -c $< -o $@ -$(OBJ)/%.pp: src/%.c | $(OSPREBUILD) +$(OBJ)/%.pp: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -E $< -o $@ -$(OBJ)/%.s: src/%.c | $(OSPREBUILD) +$(OBJ)/%.s: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -S $< -o $@ -$(OBJ)/%.lh: src/%.lay file2str$(EXE) +$(OBJ)/%.lh: $(SRC)/%.lay $(FILE2STR) @echo Converting $<... - @file2str$(EXE) $< $@ layout_$(basename $(notdir $<)) + @$(FILE2STR) $< $@ layout_$(basename $(notdir $<)) $(OBJ)/%.a: @echo Archiving $@... diff --git a/makefile.mes b/makefile.mes index 083bf1f92..71ee0a9f0 100644 --- a/makefile.mes +++ b/makefile.mes @@ -14,19 +14,26 @@ #------------------------------------------------- -# specify core target: mess, tiny, etc. -# build rules will be included from $(TARGET).mak +# specify core target: mame, mess, etc. +# specify subtarget: mame, mess, tiny, etc. +# build rules will be included from +# $(TARGET)/$(SUBTARGET).mak #------------------------------------------------- ifndef TARGET TARGET = mess endif +ifndef SUBTARGET +SUBTARGET = $(TARGET) +endif + #------------------------------------------------- # specify operating system: windows, msdos, etc. -# build rules will be includes from $(MAMEOS)/$(MAMEOS).mak +# build rules will be includes from +# src/osd/$(MAMEOS)/$(MAMEOS).mak #------------------------------------------------- ifndef MAMEOS @@ -130,8 +137,7 @@ HHC = @-hhc MD = -mkdir.exe RM = @rm -f -WINDOWS_PROGRAM = -mwindows -CONSOLE_PROGRAM = -mconsole + #------------------------------------------------- # form the name of the executable @@ -142,57 +148,59 @@ PREFIX = d endif # by default, compile for Pentium target -NAME = $(PREFIX)$(TARGET) -GUINAME = $(TARGET)gui +ifeq ($(TARGET),$(SUBTARGET)) +NAME = $(TARGET) +else +NAME = $(TARGET)$(SUBTARGET) +endif ARCH = -march=pentium # architecture-specific builds get extra options ifdef ATHLON -NAME = $(PREFIX)$(TARGET)at -GUINAME = $(TARGET)guiat +SUFFIX = at ARCH = -march=athlon endif ifdef I686 -NAME = $(PREFIX)$(TARGET)pp -GUINAME = $(TARGET)guipp +SUFFIX = pp ARCH = -march=pentiumpro endif ifdef P4 -NAME = $(PREFIX)$(TARGET)p4 -GUINAME = $(TARGET)guip4 +SUFFIX = p4 ARCH = -march=pentium4 endif ifdef AMD64 -NAME = $(PREFIX)$(TARGET)64 -GUINAME = $(TARGET)gui64 +SUFFIX = 64 ARCH = -march=athlon64 endif ifdef PM -NAME = $(PREFIX)$(TARGET)pm -GUINAME = $(TARGET)guipm +SUFFIX = pm ARCH = -march=pentium3 -msse2 endif ifdef MSVC_BUILD -NAME:=$(NAME)vc -GUINAME:=$(GUINAME)vc +SUFFIX:=$(SUFFIX)vc endif # debug builds just get the 'd' suffix and nothing more ifdef DEBUG -NAME := $(NAME)d -GUINAME := $(GUINAME)d +SUFFIX:=$(SUFFIX)d endif -EMULATORCLI = $(NAME)$(EXE) +FULLNAME = $(PREFIX)$(NAME)$(SUFFIX) +FULLGUINAME = $(PREFIX)$(NAME)gui$(SUFFIX) + +EMULATORCLI = $(FULLNAME)$(EXE) +EMULATORGUI = $(FULLGUINAME)$(EXE) # build the targets in different object dirs, since mess changes # some structures and thus they can't be linked against each other. -OBJ = obj/$(NAME) +OBJ = obj/$(FULLNAME) + +SRC = src @@ -220,31 +228,29 @@ endif # compile and linking flags #------------------------------------------------- -ifeq ($(MAMEOS),windows) - -DEFS += -DWIN32 -DWINNT -EMULATORDLL = $(NAME)lib.dll -EMULATORGUI = $(GUINAME)$(EXE) -EMULATORALL = $(EMULATORDLL) $(EMULATORCLI) $(EMULATORGUI) -MESSTEST = messtest$(EXE) -MESSDOCS = messdocs$(EXE) - -else - -EMULATORALL = $(EMULATORCLI) - +CFLAGS = \ + -std=gnu89 \ + -I$(SRC)/$(TARGET) \ + -I$(SRC)/$(TARGET)/includes \ + -I$(OBJ)/$(TARGET)/layout \ + -I$(SRC)/emu \ + -I$(OBJ)/emu/layout \ + -I$(SRC)/lib/util \ + -I$(SRC)/osd \ + -I$(SRC)/osd/$(MAMEOS) \ + +ifdef MESS +CFLAGS += \ + -I$(SRC)/mame \ + -I$(SRC)/mame/includes \ + -I$(SRC)/mess/osd/$(MAMEOS) endif -CFLAGS = -std=gnu89 -Imess -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/mess/layout -I$(OBJ)/layout -Imess/$(MAMEOS) - ifdef SYMBOLS -CFLAGS += -O0 -Wall -Wno-unused -g -else -CFLAGS += -DNDEBUG \ - $(ARCH) -O3 -fno-strict-aliasing \ - -Werror -Wall \ - -Wno-sign-compare \ - -Wno-unused-functions \ +CFLAGS += -g +endif + +CFLAGS += -Wall \ -Wpointer-arith \ -Wbad-function-cast \ -Wcast-align \ @@ -252,7 +258,26 @@ CFLAGS += -DNDEBUG \ -Wundef \ -Wformat-security \ -Wwrite-strings \ - -Wdeclaration-after-statement + -Wdeclaration-after-statement \ + -Wno-unused-functions \ + +ifneq ($(OPTIMIZE),0) +CFLAGS += -Werror -DNDEBUG $(ARCH) -fno-strict-aliasing +endif + +CFLAGS += -O$(OPTIMIZE) + +ifeq ($(MAMEOS),windows) + +DEFS += -DWIN32 -DWINNT +EMULATORDLL = $(FULLNAME)lib.dll +EMULATORALL = $(EMULATORDLL) $(EMULATORCLI) $(EMULATORGUI) +MESSDOCS = messdocs$(EXE) + +else + +EMULATORALL = $(EMULATORCLI) + endif # extra options needed *only* for the osd files @@ -267,7 +292,7 @@ LDFLAGS += -s endif ifdef MAP -MAPFLAGS = -Wl,-Map,$(NAME).map +MAPFLAGS = -Wl,-Map,$(FULLNAME).map else MAPFLAGS = endif @@ -275,45 +300,12 @@ endif #------------------------------------------------- -# define the dependency search paths +# define the standard object directory; other +# projects can add their object directories to +# this variable #------------------------------------------------- -VPATH = src $(wildcard src/cpu/*) - - - -#------------------------------------------------- -# define the standard object directories -#------------------------------------------------- - -OBJDIRS = \ - $(OBJ)/cpu \ - $(OBJ)/sound \ - $(OBJ)/debug \ - $(OBJ)/tools \ - $(OBJ)/drivers \ - $(OBJ)/layout \ - $(OBJ)/machine \ - $(OBJ)/sndhrdw \ - $(OBJ)/vidhrdw \ - $(OBJ)/$(MAMEOS) \ - -OBJDIRS += $(OBJ)/mess $(OBJ)/mess/$(MAMEOS) \ - $(OBJ)/mess/expat $(OBJ)/mess/layout \ - $(OBJ)/mess/cpu $(OBJ)/mess/devices \ - $(OBJ)/mess/systems $(OBJ)/mess/machine \ - $(OBJ)/mess/vidhrdw $(OBJ)/mess/sndhrdw \ - $(OBJ)/mess/formats $(OBJ)/mess/tools \ - $(OBJ)/mess/tools/dat2html $(OBJ)/mess/tools/mkhdimg \ - $(OBJ)/mess/tools/messroms $(OBJ)/mess/tools/imgtool \ - $(OBJ)/mess/tools/messdocs $(OBJ)/mess/tools/messtest \ - $(OBJ)/mess/tools/mkimage $(OBJ)/mess/sound \ - $(OBJ)/ui $(OBJ)/mess/ui - -ifeq ($(MAMEOS),windows) -OBJDIRS += $(OBJ)/mess/tools/imgtool/windows \ - $(OBJ)/mess/tools/imgtool/windows/res -endif +OBJDIRS = $(OBJ) @@ -321,14 +313,17 @@ endif # define standard libarires for CPU and sounds #------------------------------------------------- -CPULIB = $(OBJ)/libcpu.a +LIBEMU = $(OBJ)/libemu.a +LIBCPU = $(OBJ)/libcpu.a +LIBSOUND = $(OBJ)/libsound.a +LIBUTIL = $(OBJ)/libutil.a +LIBOCORE = $(OBJ)/libocore.a +LIBOCORE_NOMAIN = $(OBJ)/libocore_nomain.a +LIBOSD = $(OBJ)/libosd.a -SOUNDLIB = $(OBJ)/libsound.a - -OSDCORELIB = $(OBJ)/$(MAMEOS)/libocore.a - -OSDCORELIB_NOMAIN = $(OBJ)/$(MAMEOS)/libocore_nomain.a +VERSIONOBJ = $(OBJ)/version.o +LIBOCORRE_NOMAIN = $(OBJ)/$(MAMEOS)/libocore_nomain.a #------------------------------------------------- @@ -341,8 +336,7 @@ LIBS = # add expat XML library ifdef BUILD_EXPAT -CFLAGS += -Isrc/expat -OBJDIRS += $(OBJ)/expat +CFLAGS += -I$(SRC)/lib/expat EXPAT = $(OBJ)/libexpat.a else LIBS += -lexpat @@ -351,8 +345,7 @@ endif # add ZLIB compression library ifdef BUILD_ZLIB -CFLAGS += -Isrc/zlib -OBJDIRS += $(OBJ)/zlib +CFLAGS += -I$(SRC)/lib/zlib ZLIB = $(OBJ)/libz.a else LIBS += -lz @@ -366,7 +359,7 @@ endif # include files which define additional targets #------------------------------------------------- -all: maketree emulator extra +all: maketree emulator tools @@ -375,19 +368,13 @@ all: maketree emulator extra #------------------------------------------------- # include OS-specific rules first -ifeq ($(MAMEOS),windows) -include mess/tools/imgtool/windows/wimgtool.mak -endif -include src/$(MAMEOS)/$(MAMEOS).mak -ifeq ($(MAMEOS),windows) -include mess/$(MAMEOS)/$(MAMEOS).mak -endif +include $(SRC)/osd/$(MAMEOS)/$(MAMEOS).mak # then the various core pieces -include src/core.mak -include mess/$(TARGET).mak -include src/cpu/cpu.mak -include src/sound/sound.mak +include $(SRC)/$(TARGET)/$(SUBTARGET).mak +include $(SRC)/emu/emu.mak +include $(SRC)/lib/lib.mak +include $(SRC)/tools/tools.mak # combine the various definitions to one CDEFS = $(DEFS) $(COREDEFS) $(CPUDEFS) $(SOUNDDEFS) @@ -400,7 +387,7 @@ CDEFS = $(DEFS) $(COREDEFS) $(CPUDEFS) $(SOUNDDEFS) emulator: maketree $(EMULATORALL) -extra: $(TOOLS) +tools: maketree $(TOOLS) maketree: $(sort $(OBJDIRS)) @@ -411,6 +398,10 @@ clean: $(RM) $(EMULATORALL) @echo Deleting $(TOOLS)... $(RM) $(TOOLS) +ifdef MAP + @echo Deleting $(FULLNAME).map... + $(RM) $(FULLNAME).map +endif @@ -436,132 +427,56 @@ else DLLLINK=dll endif -$(EMULATORDLL): $(OBJS) $(COREOBJS) $(OSOBJS) $(CPULIB) $(SOUNDLIB) $(DRVLIBS) $(RESFILE) $(EXPAT) $(ZLIB) $(OSDCORELIB) +$(EMULATORDLL): $(VERSIONOBJ) $(OBJ)/mess/osd/windows/messlib.o $(DRVLIBS) $(LIBOSD) $(LIBEMU) $(LIBCPU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(LIBOCORE) $(LIBWINUI) $(MESS_WINOBJ)/mess.res # always recompile the version string - $(CC) $(CDEFS) $(CFLAGS) -c src/version.c -o $(OBJ)/version.o + $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ) @echo Linking $@... $(LD) -shared $(LDFLAGS) $^ $(LIBS) -o $@ $(MAPFLAGS) # gui target -$(EMULATORGUI): $(EMULATORDLL) $(OBJ)/mess/ui/guimain.o $(GUIRESFILE) +$(EMULATORGUI): $(EMULATORDLL) $(OBJ)/mess/osd/windows/ui/guimain.o $(GUIRESFILE) @echo Linking $@... - $(LD) $(LDFLAGS) $(WINDOWS_PROGRAM) $(NAME)lib.$(DLLLINK) $(OBJ)/mess/ui/guimain.o $(GUIRESFILE) -o $@ + $(LD) $(LDFLAGS) -mwindows $(FULLNAME)lib.$(DLLLINK) $(OBJ)/mess/osd/windows/ui/guimain.o $(GUIRESFILE) -o $@ # cli target -$(EMULATORCLI): $(EMULATORDLL) $(OBJ)/mess/windows/climain.o +$(EMULATORCLI): $(EMULATORDLL) $(OBJ)/mess/osd/windows/climain.o @echo Linking $@... - $(LD) $(LDFLAGS) $(CONSOLE_PROGRAM) $(NAME)lib.$(DLLLINK) $(OBJ)/mess/windows/climain.o -o $@ + $(LD) $(LDFLAGS) -mconsole $(FULLNAME)lib.$(DLLLINK) $(OBJ)/mess/osd/windows/climain.o -o $@ else -$(EMULATORCLI): $(OBJS) $(COREOBJS) $(OSOBJS) $(CPULIB) $(SOUNDLIB) $(DRVLIBS) $(LIBS) - $(CC) $(CDEFS) $(CFLAGS) -c src/version.c -o $(OBJ)/version.o - @echo Linking $@... - $(LD) $(LDFLAGS) $(CONSOLE_PROGRAM) $^ -o $@ - -endif - -file2str$(EXE): $(OBJ)/tools/file2str.o $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -romcmp$(EXE): $(OBJ)/tools/romcmp.o $(OBJ)/unzip.o $(OBJ)/mamecore.o $(ZLIB) $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -chdman$(EXE): $(OBJ)/tools/chdman.o $(OBJ)/chd.o $(OBJ)/tools/chdcd.o $(OBJ)/cdrom.o $(OBJ)/md5.o $(OBJ)/sha1.o $(OBJ)/version.o $(ZLIB) $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -jedutil$(EXE): $(OBJ)/tools/jedutil.o $(OBJ)/jedparse.o $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -dat2html$(EXE): $(DAT2HTML_OBJS) $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -messdocs$(EXE): $(MESSDOCS_OBJS) $(OSDCORELIB) - @echo Compiling $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -imgtool$(EXE): $(IMGTOOL_OBJS) $(ZLIB) $(OSDCORELIB) - @echo Compiling $@... - $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ - -wimgtool$(EXE): $(WIMGTOOL_OBJS) $(ZLIB) $(OSDCORELIB_NOMAIN) - @echo Compiling $@... - $(LD) $(LDFLAGS) $(OSDCORELIB_NOMAIN) $(LIBS) $(WINDOWS_PROGRAM) $^ $(ZLIB) $(LIBS) -lcomctl32 -lshlwapi -o $@ - -messtest$(EXE): $(OBJS) $(COREOBJS) $(CPULIB) $(SOUNDLIB) $(DRVLIBS) $(MESSTEST_OBJS) $(OSDCORELIB) \ - $(OBJ)/mess/windows/glob.o \ - $(OBJ)/mess/windows/parallel.o +$(EMULATORCLI): $(VERSIONOBJ) $(DRVLIBS) $(LIBOSD) $(LIBEMU) $(LIBCPU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(LIBOCORE) + $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ) @echo Linking $@... - $(LD) $(LDFLAGS) $(CONSOLE_PROGRAM) $^ -Wl,--allow-multiple-definition $(ZLIB) $(LIBS) -lwinmm -o $@ - -#------------------------------------------------- -# library targets and dependencies -#------------------------------------------------- - -$(CPULIB): $(CPUOBJS) + $(LD) $(LDFLAGS) -mconsole $^ -o $@ -ifdef DEBUG -$(CPULIB): $(DBGOBJS) endif -$(SOUNDLIB): $(SOUNDOBJS) - -$(OSDCORELIB): $(OSDCOREOBJS) - -$(OSDCORELIB_NOMAIN): $(OSDCOREOBJS:$(OBJ)/$(MAMEOS)/main.o=) - -$(OBJ)/libexpat.a: $(OBJ)/expat/xmlparse.o $(OBJ)/expat/xmlrole.o $(OBJ)/expat/xmltok.o - -$(OBJ)/libz.a: $(OBJ)/zlib/adler32.o $(OBJ)/zlib/compress.o $(OBJ)/zlib/crc32.o $(OBJ)/zlib/deflate.o \ - $(OBJ)/zlib/gzio.o $(OBJ)/zlib/inffast.o $(OBJ)/zlib/inflate.o $(OBJ)/zlib/infback.o \ - $(OBJ)/zlib/inftrees.o $(OBJ)/zlib/trees.o $(OBJ)/zlib/uncompr.o $(OBJ)/zlib/zutil.o - #------------------------------------------------- # generic rules #------------------------------------------------- -$(OBJ)/$(MAMEOS)/%.o: src/$(MAMEOS)/%.c | $(OSPREBUILD) +$(OBJ)/osd/$(MAMEOS)/%.o: $(SRC)/osd/$(MAMEOS)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGSOSDEPEND) -c $< -o $@ -$(OBJ)/%.o: src/%.c | $(OSPREBUILD) - @echo Compiling $<... - $(CC) $(CDEFS) $(CFLAGS) -c $< -o $@ - -$(OBJ)/%.pp: src/%.c | $(OSPREBUILD) - @echo Compiling $<... - $(CC) $(CDEFS) $(CFLAGS) -E $< -o $@ - -$(OBJ)/%.s: src/%.c | $(OSPREBUILD) - @echo Compiling $<... - $(CC) $(CDEFS) $(CFLAGS) -S $< -o $@ - -$(OBJ)/%.lh: src/%.lay file2str$(EXE) - @echo Converting $<... - @file2str$(EXE) $< $@ layout_$(basename $(notdir $<)) - -$(OBJ)/mess/%.o: mess/%.c +$(OBJ)/%.o: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -c $< -o $@ -$(OBJ)/mess/%.pp: mess/%.c +$(OBJ)/%.pp: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -E $< -o $@ -$(OBJ)/mess/%.S: mess/%.c +$(OBJ)/%.s: $(SRC)/%.c | $(OSPREBUILD) @echo Compiling $<... $(CC) $(CDEFS) $(CFLAGS) -S $< -o $@ -$(OBJ)/mess/%.lh: mess/%.lay file2str$(EXE) +$(OBJ)/%.lh: $(SRC)/%.lay $(FILE2STR) @echo Converting $<... - @file2str$(EXE) $< $@ layout_$(basename $(notdir $<)) + @$(FILE2STR) $< $@ layout_$(basename $(notdir $<)) $(OBJ)/%.a: @echo Archiving $@... diff --git a/memcard/dir.txt b/memcard/dir.txt deleted file mode 100644 index d6e2dee6e..000000000 --- a/memcard/dir.txt +++ /dev/null @@ -1 +0,0 @@ -memcard files will be stored here. \ No newline at end of file diff --git a/mess.chm b/mess.chm index a3f5d39bd..4a1da1551 100644 Binary files a/mess.chm and b/mess.chm differ diff --git a/mess/includes/svision.h b/mess/includes/svision.h deleted file mode 100644 index a006c6b84..000000000 --- a/mess/includes/svision.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __SVISION_H_ -#define __SVISION_H_ - -#include "driver.h" -#include "sound/custom.h" - -typedef struct -{ - UINT8 reg[3]; - int pos; - int size; -} SVISION_CHANNEL; - -extern SVISION_CHANNEL svision_channel[2]; - -void *svision_custom_start(int clock, const struct CustomSound_interface *config); - -void svision_soundport_w(SVISION_CHANNEL *channel, int offset, int data); - -#endif diff --git a/mess/layout/svision.lay b/mess/layout/svision.lay deleted file mode 100644 index 1e3c87ed6..000000000 --- a/mess/layout/svision.lay +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/mess/machine/a7800.c b/mess/machine/a7800.c deleted file mode 100644 index 75bfc55c1..000000000 --- a/mess/machine/a7800.c +++ /dev/null @@ -1,451 +0,0 @@ -/*************************************************************************** - - a7800.c - - Machine file to handle emulation of the Atari 7800. - - 5-Nov-2003 npwoods Cleanups - - 14-May-2002 kubecj Fixed Fatal Run - adding simple riot timer helped. - maybe someone with knowledge should add full fledged - riot emulation? - - 13-May-2002 kubecj Fixed a7800_cart_type not to be too short ;-D - fixed for loading of bank6 cart (uh, I hope) - fixed for loading 64k supercarts - fixed for using PAL bios - cart not needed when in PAL mode - added F18 Hornet bank select type - added Activision bank select type - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6502.h" -#include "sound/tiasound.h" -#include "cpuintrf.h" -#include "hash.h" -#include "image.h" -#include "machine/6532riot.h" -#include "sound/pokey.h" -#include "sound/tiaintf.h" - -#include "includes/a7800.h" - -int a7800_lines; -int a7800_ispal; - -/* local */ -static unsigned char *a7800_cart_bkup = NULL; -static unsigned char *a7800_bios_bkup = NULL; -static int a7800_ctrl_lock; -static int a7800_ctrl_reg; -static int maria_flag; - -static unsigned char *a7800_cartridge_rom; -static unsigned int a7800_cart_type; -static unsigned long a7800_cart_size; -static unsigned char a7800_stick_type; -static UINT8 *ROM; - - -/****** RIOT ****************************************/ - -static struct R6532interface r6532_interface = -{ - input_port_0_r, - input_port_3_r, - NULL, - NULL -}; - -/* ----------------------------------------------------------------------- - * Driver/Machine Init - * ----------------------------------------------------------------------- */ - -static void a7800_driver_init(int ispal, int lines) -{ - ROM = memory_region(REGION_CPU1); - a7800_ispal = ispal; - a7800_lines = lines; - - /* standard banks */ - memory_set_bankptr(5, &ROM[0x2040]); /* RAM0 */ - memory_set_bankptr(6, &ROM[0x2140]); /* RAM1 */ - memory_set_bankptr(7, &ROM[0x2000]); /* MAINRAM */ - - /* Brutal hack put in as a consequence of new memory system; fix this */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0480, 0x04FF, 0, 0, MRA8_BANK10); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0480, 0x04FF, 0, 0, MWA8_BANK10); - memory_set_bankptr(10, memory_region(REGION_CPU1) + 0x0480); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x27FF, 0, 0, MRA8_BANK11); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x27FF, 0, 0, MWA8_BANK11); - memory_set_bankptr(11, memory_region(REGION_CPU1) + 0x1800); -} - - - -DRIVER_INIT( a7800_ntsc ) -{ - a7800_driver_init(FALSE, 262); -} - - - -DRIVER_INIT( a7800_pal ) -{ - a7800_driver_init(TRUE, 312); -} - - - -MACHINE_RESET( a7800 ) -{ - UINT8 *memory; - - r6532_init(0, &r6532_interface); - - a7800_ctrl_lock = 0; - a7800_ctrl_reg = 0; - maria_flag = 0; - - /* set banks to default states */ - memory = memory_region(REGION_CPU1); - memory_set_bankptr( 1, memory + 0x4000 ); - memory_set_bankptr( 2, memory + 0x8000 ); - memory_set_bankptr( 3, memory + 0xA000 ); - memory_set_bankptr( 4, memory + 0xC000 ); - - /* pokey cartridge */ - if (a7800_cart_type & 0x01) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x7FFF, 0, 0, pokey1_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x7FFF, 0, 0, pokey1_w); - } -} - - - -/* ----------------------------------------------------------------------- */ - -#define MBANK_TYPE_ATARI 0x0000 -#define MBANK_TYPE_ACTIVISION 0x0100 -#define MBANK_TYPE_ABSOLUTE 0x0200 - -/* Header format -0 Header version - 1 byte -1..16 "ATARI7800 " - 16 bytes -17..48 Cart title - 32 bytes -49..52 data length - 4 bytes -53..54 cart type - 2 bytes - bit 0 0x01 - pokey cart - bit 1 0x02 - supercart bank switched - bit 2 0x04 - supercart RAM at $4000 - bit 3 0x08 - additional ROM at $4000 - - bit 8-15 - Special - 0 = Normal cart - 1 = Absolute (F18 Hornet) - 2 = Activision - -55 controller 1 type - 1 byte -56 controller 2 type - 1 byte - 0 = None - 1 = Joystick - 2 = Light Gun -57 0 = NTSC/1 = PAL - -100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes - -Versions: - Version 0: Initial release - Version 1: Added PAL/NTSC bit. Added Special cart byte. - Changed 53 bit 2, added bit 3 - -*/ - -void a7800_partialhash(char *dest, const unsigned char *data, - unsigned long length, unsigned int functions) -{ - if (length <= 128) - return; - hash_compute(dest, &data[128], length - 128, functions); -} - - - -static int a7800_verify_cart(char header[128]) -{ - const char* tag = "ATARI7800"; - - if( strncmp( tag, header + 1, 9 ) ) - { - logerror("Not a valid A7800 image\n"); - return IMAGE_VERIFY_FAIL; - } - - logerror("returning ID_OK\n"); - return IMAGE_VERIFY_PASS; -} - -DEVICE_LOAD( a7800_cart ) -{ - long len,start; - unsigned char header[128]; - UINT8 *memory; - - memory = memory_region(REGION_CPU1); - a7800_bios_bkup = NULL; - a7800_cart_bkup = NULL; - - /* Allocate memory for BIOS bank switching */ - a7800_bios_bkup = (UINT8*) image_malloc(image, 0x4000); - if (!a7800_bios_bkup) - { - logerror("Could not allocate ROM memory\n"); - return INIT_FAIL; - } - - a7800_cart_bkup = (UINT8*) image_malloc(image, 0x4000); - if (!a7800_cart_bkup) - { - logerror("Could not allocate ROM memory\n"); - return INIT_FAIL; - } - - /* save the BIOS so we can switch it in and out */ - memcpy( a7800_bios_bkup, memory + 0xC000, 0x4000 ); - - /* defaults for PAL bios without cart */ - a7800_cart_type = 0; - a7800_stick_type = 1; - - /* Load and decode the header */ - image_fread( image, header, 128 ); - - /* Check the cart */ - if( a7800_verify_cart((char *)header) == IMAGE_VERIFY_FAIL) - return INIT_FAIL; - - len =(header[49] << 24) |(header[50] << 16) |(header[51] << 8) | header[52]; - a7800_cart_size = len; - - a7800_cart_type =(header[53] << 8) | header[54]; - a7800_stick_type = header[55]; - logerror( "Cart type: %x\n", a7800_cart_type ); - - /* For now, if game support stick and gun, set it to stick */ - if( a7800_stick_type == 3 ) - a7800_stick_type = 1; - - if( a7800_cart_type == 0 || a7800_cart_type == 1 ) - { - /* Normal Cart */ - - start = 0x10000 - len; - a7800_cartridge_rom = memory + start; - image_fread(image, a7800_cartridge_rom, len); - } - else if( a7800_cart_type & 0x02 ) - { - /* Super Cart */ - - /* Extra ROM at $4000 */ - if( a7800_cart_type & 0x08 ) - { - image_fread(image, memory + 0x4000, 0x4000 ); - len -= 0x4000; - } - - a7800_cartridge_rom = memory + 0x10000; - image_fread(image, a7800_cartridge_rom, len); - - /* bank 0 */ - memcpy( memory + 0x8000, memory + 0x10000, 0x4000); - - /* last bank */ - memcpy( memory + 0xC000, memory + 0x10000 + len - 0x4000, 0x4000); - - /* fixed 2002/05/13 kubecj - there was 0x08, I added also two other cases. - Now, it loads bank n-2 to $4000 if it's empty. - */ - - /* bank n-2 */ - if( ! ( a7800_cart_type & 0x0D ) ) - { - memcpy( memory + 0x4000, memory + 0x10000 + len - 0x8000, 0x4000); - } - } - else if( a7800_cart_type == MBANK_TYPE_ABSOLUTE ) - { - /* F18 Hornet */ - - logerror( "Cart type: %x Absolute\n",a7800_cart_type ); - - a7800_cartridge_rom = memory + 0x10000; - image_fread(image, a7800_cartridge_rom, len ); - - /* bank 0 */ - memcpy( memory + 0x4000, memory + 0x10000, 0x4000 ); - - /* last bank */ - memcpy( memory + 0x8000, memory + 0x18000, 0x8000); - } - else if( a7800_cart_type == MBANK_TYPE_ACTIVISION ) - { - /* Activision */ - - logerror( "Cart type: %x Activision\n",a7800_cart_type ); - - a7800_cartridge_rom = memory + 0x10000; - image_fread(image, a7800_cartridge_rom, len ); - - /* bank 0 */ - memcpy( memory + 0xA000, memory + 0x10000, 0x4000 ); - - /* bank6 hi */ - memcpy( memory + 0x4000, memory + 0x2A000, 0x2000 ); - - /* bank6 lo */ - memcpy( memory + 0x6000, memory + 0x28000, 0x2000 ); - - /* bank7 hi */ - memcpy( memory + 0x8000, memory + 0x2E000, 0x2000 ); - - /* bank7 lo */ - memcpy( memory + 0xE000, memory + 0x2C000, 0x2000 ); - - } - - memcpy( a7800_cart_bkup, memory + 0xC000, 0x4000 ); - memcpy( memory + 0xC000, a7800_bios_bkup, 0x4000 ); - return INIT_PASS; -} - - -/****** TIA *****************************************/ - - READ8_HANDLER( a7800_TIA_r ) -{ - switch(offset) - { - case 0x08: - return((input_port_1_r(0) & 0x02) << 6); - case 0x09: - return((input_port_1_r(0) & 0x08) << 4); - case 0x0A: - return((input_port_1_r(0) & 0x01) << 7); - case 0x0B: - return((input_port_1_r(0) & 0x04) << 5); - case 0x0c: - if((input_port_1_r(0) & 0x08) ||(input_port_1_r(0) & 0x02)) - return 0x00; - else - return 0x80; - case 0x0d: - if((input_port_1_r(0) & 0x01) ||(input_port_1_r(0) & 0x04)) - return 0x00; - else - return 0x80; - default: - logerror("undefined TIA read %x\n",offset); - - } - return 0xFF; -} - -WRITE8_HANDLER( a7800_TIA_w ) -{ - switch(offset) { - case 0x01: - if(data & 0x01) - { - maria_flag=1; - } - if(!a7800_ctrl_lock) - { - a7800_ctrl_lock = data & 0x01; - a7800_ctrl_reg = data; - - if (data & 0x04) - memcpy( ROM + 0xC000, a7800_cart_bkup, 0x4000 ); - else - memcpy( ROM + 0xC000, a7800_bios_bkup, 0x4000 ); - } - break; - } - tia_sound_w(offset,data); - ROM[offset] = data; -} - - - -/****** RAM Mirroring ******************************/ - -WRITE8_HANDLER( a7800_RAM0_w ) -{ - ROM[0x2040 + offset] = data; - ROM[0x40 + offset] = data; -} - -WRITE8_HANDLER( a7800_cart_w ) -{ - if(offset < 0x4000) - { - if(a7800_cart_type & 0x04) - { - ROM[0x4000 + offset] = data; - } - else if(a7800_cart_type & 0x01) - { - pokey1_w(offset,data); - } - else - { - logerror("Undefined write A: %x",offset + 0x4000); - } - } - - if(( a7800_cart_type & 0x02 ) &&( offset >= 0x4000 ) ) - { - /* fix for 64kb supercart */ - if( a7800_cart_size == 0x10000 ) - { - data &= 0x03; - } - else - { - data &= 0x07; - } - memory_set_bankptr(2,memory_region(REGION_CPU1) + 0x10000 + (data << 14)); - memory_set_bankptr(3,memory_region(REGION_CPU1) + 0x12000 + (data << 14)); - /* logerror("BANK SEL: %d\n",data); */ - } - else if(( a7800_cart_type == MBANK_TYPE_ABSOLUTE ) &&( offset == 0x4000 ) ) - { - /* F18 Hornet */ - /*logerror( "F18 BANK SEL: %d\n", data );*/ - if( data & 1 ) - { - memory_set_bankptr(1,memory_region(REGION_CPU1) + 0x10000 ); - } - else if( data & 2 ) - { - memory_set_bankptr(1,memory_region(REGION_CPU1) + 0x14000 ); - } - } - else if(( a7800_cart_type == MBANK_TYPE_ACTIVISION ) &&( offset >= 0xBF80 ) ) - { - /* Activision */ - data = offset & 7; - - /*logerror( "Activision BANK SEL: %d\n", data );*/ - - memory_set_bankptr( 3, memory_region( REGION_CPU1 ) + 0x10000 + ( data << 14 ) ); - memory_set_bankptr( 4, memory_region( REGION_CPU1 ) + 0x12000 + ( data << 14 ) ); - } -} - - diff --git a/mess/machine/adam.c b/mess/machine/adam.c deleted file mode 100644 index dc94092e2..000000000 --- a/mess/machine/adam.c +++ /dev/null @@ -1,927 +0,0 @@ -/*************************************************************************** - - adam.c - - Machine file to handle emulation of the ColecoAdam. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/tms9928a.h" -#include "includes/adam.h" -#include "devices/cartslot.h" -#include "image.h" -#include "devices/basicdsk.h" - -int adam_lower_memory; /* Lower 32k memory Z80 address configuration */ -int adam_upper_memory; /* Upper 32k memory Z80 address configuration */ -int adam_joy_stat[2]; -int adam_net_data; /* Data on AdamNet Bus */ -int adam_pcb; - -static int joy_mode = 0; -static int KeyboardBuffer[20]; /* Buffer to store keys pressed */ -static int KbBufferCapacity = 15; /* Capacity of the Keyboard Buffer */ -static int KbRepeatDelay = 20; -static UINT8 KbRepeatTable[256]; - -int adam_cart_verify(const UINT8 *cartdata, size_t size) -{ - int retval = IMAGE_VERIFY_FAIL; - - /* Verify the file is in Colecovision format */ - if ((cartdata[0] == 0xAA) && (cartdata[1] == 0x55)) /* Production Cartridge */ - retval = IMAGE_VERIFY_PASS; - if ((cartdata[0] == 0x55) && (cartdata[1] == 0xAA)) /* "Test" Cartridge. Some games use this method to skip ColecoVision title screen and delay */ - retval = IMAGE_VERIFY_PASS; - - return retval; -} - -DEVICE_LOAD( adam_floppy ) -{ - if (device_load_basicdsk_floppy(image)==INIT_PASS) - { - /* img, tracks, sides, sectors_per_track, sector_length, first_sector_id, offset_track_zero, track_skipping */ - basicdsk_set_geometry(image, 40, 1, 8, 512, 0, 0, FALSE); - return INIT_PASS; - } - else - { - return INIT_FAIL; - } -} - - - -DEVICE_UNLOAD( adam_floppy ) -{ - device_unload_basicdsk_floppy(image); -} - - - -void clear_keyboard_buffer(void) -{ - int i; - - KeyboardBuffer[0] = 0; /* Keys on current buffer */ - for(i=1;i0) KeyboardBuffer[0]--; - return kbcode; -} - -void addToKeyboardBuffer(unsigned char kbcode) -{ - if (KbRepeatTable[kbcode]==0) - { - if ((KeyboardBuffer[0] < KbBufferCapacity)) - { - KeyboardBuffer[0]++; - KeyboardBuffer[KeyboardBuffer[0]] = kbcode; - KbRepeatTable[kbcode]=255-KbRepeatDelay; - } - } -} - -void exploreKeyboard(void) -{ - bool controlKey, shiftKey; - int i, keyboard[10]; - -//logerror("Exploring Keyboard.............\n"); - for(i=0;i<=255;i++) {if (KbRepeatTable[i]>0) KbRepeatTable[i]++;} /* Update repeat table */ - - keyboard[0] = input_port_9_r(0); - keyboard[1] = input_port_10_r(0); - keyboard[2] = input_port_11_r(0); - keyboard[3] = input_port_12_r(0); - keyboard[4] = input_port_13_r(0); - keyboard[5] = input_port_14_r(0); - keyboard[6] = input_port_15_r(0); - keyboard[7] = input_port_16_r(0); - keyboard[8] = input_port_17_r(0); - keyboard[9] = input_port_18_r(0); - - controlKey = (!(keyboard[9]&0x01) || !(keyboard[9]&0x02)); /* Left Control or Right Control */ - shiftKey = (!(keyboard[8]&0x40) || !(keyboard[8]&0x80) || !(keyboard[9]&0x04)); /* Left shiftKey or Right shiftKey or Caps Lock*/ - - if (shiftKey && !controlKey && !(keyboard[7] & 0x80)) addToKeyboardBuffer(0xB8); /* shiftKey + BACKSPACE */ - else {KbRepeatTable[0xB8]=0;} - - if (shiftKey && !controlKey && !(keyboard[8] & 0x20)) addToKeyboardBuffer(0xB9); /* shiftKey + TAB */ - else {KbRepeatTable[0xB9]=0;} - - if (shiftKey && !controlKey && !(keyboard[4] & 0x01)) addToKeyboardBuffer(0x29); /* shiftKey + 0 */ - else {KbRepeatTable[0x29]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x02)) addToKeyboardBuffer(0x21); /* shiftKey + 1 */ - else {KbRepeatTable[0x21]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x04)) addToKeyboardBuffer(0x40); /* shiftKey + 2 */ - else {KbRepeatTable[0x40]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x08)) addToKeyboardBuffer(0x23); /* shiftKey + 3 */ - else {KbRepeatTable[0x23]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x10)) addToKeyboardBuffer(0x24); /* shiftKey + 4 */ - else {KbRepeatTable[0x24]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x20)) addToKeyboardBuffer(0x25); /* shiftKey + 5 */ - else {KbRepeatTable[0x25]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x40)) addToKeyboardBuffer(0x5F); /* shiftKey + 6 */ - else {KbRepeatTable[0x5F]=0;} - if (shiftKey && !controlKey && !(keyboard[4] & 0x80)) addToKeyboardBuffer(0x26); /* shiftKey + 7 */ - else {KbRepeatTable[0x26]=0;} - - if (shiftKey && !controlKey && !(keyboard[5] & 0x01)) addToKeyboardBuffer(0x2A); /* shiftKey + 8 */ - else {KbRepeatTable[0x2A]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x02)) addToKeyboardBuffer(0x28); /* shiftKey + 9 */ - else {KbRepeatTable[0x28]=0;} - - if (!shiftKey && !controlKey && !(keyboard[4] & 0x01)) addToKeyboardBuffer(0x30); /* 0 */ - else {KbRepeatTable[0x30]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x02)) addToKeyboardBuffer(0x31); /* 1 */ - else {KbRepeatTable[0x31]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x04)) addToKeyboardBuffer(0x32); /* 2 */ - else {KbRepeatTable[0x32]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x08)) addToKeyboardBuffer(0x33); /* 3 */ - else {KbRepeatTable[0x33]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x10)) addToKeyboardBuffer(0x34); /* 4 */ - else {KbRepeatTable[0x34]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x20)) addToKeyboardBuffer(0x35); /* 5 */ - else {KbRepeatTable[0x35]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x40)) addToKeyboardBuffer(0x36); /* 6 */ - else {KbRepeatTable[0x36]=0;} - if (!shiftKey && !controlKey && !(keyboard[4] & 0x80)) addToKeyboardBuffer(0x37); /* 7 */ - else {KbRepeatTable[0x37]=0;} - - if (!shiftKey && !controlKey && !(keyboard[5] & 0x01)) addToKeyboardBuffer(0x38); /* 8 */ - else {KbRepeatTable[0x38]=0;} - if (!shiftKey && !controlKey && !(keyboard[5] & 0x02)) addToKeyboardBuffer(0x39); /* 9 */ - else {KbRepeatTable[0x39]=0;} - - if (controlKey && !shiftKey && !(keyboard[4] & 0x04)) addToKeyboardBuffer(0x00); /* controlKey + 2 */ - else {KbRepeatTable[0x00]=0;} - if (controlKey && !shiftKey && !(keyboard[4] & 0x40)) addToKeyboardBuffer(0x1F); /* controlKey + 6 */ - else {KbRepeatTable[0x1F]=0;} - - - if (shiftKey && !controlKey && !(keyboard[0] & 0x02)) addToKeyboardBuffer(0x41); /* shiftKey + A */ - else {KbRepeatTable[0x41]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x04)) addToKeyboardBuffer(0x42); /* shiftKey + B */ - else {KbRepeatTable[0x42]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x08)) addToKeyboardBuffer(0x43); /* shiftKey + C */ - else {KbRepeatTable[0x43]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x10)) addToKeyboardBuffer(0x44); /* shiftKey + D */ - else {KbRepeatTable[0x44]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x20)) addToKeyboardBuffer(0x45); /* shiftKey + E */ - else {KbRepeatTable[0x45]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x40)) addToKeyboardBuffer(0x46); /* shiftKey + F */ - else {KbRepeatTable[0x46]=0;} - if (shiftKey && !controlKey && !(keyboard[0] & 0x80)) addToKeyboardBuffer(0x47); /* shiftKey + G */ - else {KbRepeatTable[0x47]=0;} - - if (shiftKey && !controlKey && !(keyboard[1] & 0x01)) addToKeyboardBuffer(0x48); /* shiftKey + H */ - else {KbRepeatTable[0x48]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x02)) addToKeyboardBuffer(0x49); /* shiftKey + I */ - else {KbRepeatTable[0x49]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x04)) addToKeyboardBuffer(0x4A); /* shiftKey + J */ - else {KbRepeatTable[0x4A]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x08)) addToKeyboardBuffer(0x4B); /* shiftKey + K */ - else {KbRepeatTable[0x4B]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x10)) addToKeyboardBuffer(0x4C); /* shiftKey + L */ - else {KbRepeatTable[0x4C]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x20)) addToKeyboardBuffer(0x4D); /* shiftKey + M */ - else {KbRepeatTable[0x4D]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x40)) addToKeyboardBuffer(0x4E); /* shiftKey + N */ - else {KbRepeatTable[0x4E]=0;} - if (shiftKey && !controlKey && !(keyboard[1] & 0x80)) addToKeyboardBuffer(0x4F); /* shiftKey + O */ - else {KbRepeatTable[0x4F]=0;} - - if (shiftKey && !controlKey && !(keyboard[2] & 0x01)) addToKeyboardBuffer(0x50); /* shiftKey + P */ - else {KbRepeatTable[0x50]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x02)) addToKeyboardBuffer(0x51); /* shiftKey + Q */ - else {KbRepeatTable[0x51]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x04)) addToKeyboardBuffer(0x52); /* shiftKey + R */ - else {KbRepeatTable[0x52]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x08)) addToKeyboardBuffer(0x53); /* shiftKey + S */ - else {KbRepeatTable[0x53]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x10)) addToKeyboardBuffer(0x54); /* shiftKey + T */ - else {KbRepeatTable[0x54]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x20)) addToKeyboardBuffer(0x55); /* shiftKey + U */ - else {KbRepeatTable[0x55]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x40)) addToKeyboardBuffer(0x56); /* shiftKey + V */ - else {KbRepeatTable[0x56]=0;} - if (shiftKey && !controlKey && !(keyboard[2] & 0x80)) addToKeyboardBuffer(0x57); /* shiftKey + W */ - else {KbRepeatTable[0x57]=0;} - - if (shiftKey && !controlKey && !(keyboard[3] & 0x01)) addToKeyboardBuffer(0x58); /* shiftKey + X */ - else {KbRepeatTable[0x58]=0;} - if (shiftKey && !controlKey && !(keyboard[3] & 0x02)) addToKeyboardBuffer(0x59); /* shiftKey + Y */ - else {KbRepeatTable[0x59]=0;} - if (shiftKey && !controlKey && !(keyboard[3] & 0x04)) addToKeyboardBuffer(0x5A); /* shiftKey + Z */ - else {KbRepeatTable[0x5A]=0;} - - if (controlKey && !shiftKey && !(keyboard[0] & 0x02)) addToKeyboardBuffer(0x01); /* controlKey + A */ - else {KbRepeatTable[0x01]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x04)) addToKeyboardBuffer(0x02); /* controlKey + B */ - else {KbRepeatTable[0x02]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x08)) addToKeyboardBuffer(0x03); /* controlKey + C */ - else {KbRepeatTable[0x03]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x10)) addToKeyboardBuffer(0x04); /* controlKey + D */ - else {KbRepeatTable[0x04]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x20)) addToKeyboardBuffer(0x05); /* controlKey + E */ - else {KbRepeatTable[0x05]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x40)) addToKeyboardBuffer(0x06); /* controlKey + F */ - else {KbRepeatTable[0x06]=0;} - if (controlKey && !shiftKey && !(keyboard[0] & 0x80)) addToKeyboardBuffer(0x07); /* controlKey + G */ - else {KbRepeatTable[0x07]=0;} - - if ((controlKey && !shiftKey && !(keyboard[1] & 0x01)) || !(keyboard[7] & 0x80)) addToKeyboardBuffer(0x08); /* controlKey + H or BACKSPACE */ - else {KbRepeatTable[0x08]=0;} - if ((controlKey && !shiftKey && !(keyboard[1] & 0x02)) || !(keyboard[8] & 0x20)) addToKeyboardBuffer(0x09); /* controlKey + I or TAB */ - else {KbRepeatTable[0x09]=0;} - if (controlKey && !shiftKey && !(keyboard[1] & 0x04)) addToKeyboardBuffer(0x0A); /* controlKey + J */ - else {KbRepeatTable[0x0A]=0;} - if (controlKey && !shiftKey && !(keyboard[1] & 0x08)) addToKeyboardBuffer(0x0B); /* controlKey + K */ - else {KbRepeatTable[0x0B]=0;} - if (controlKey && !shiftKey && !(keyboard[1] & 0x10)) addToKeyboardBuffer(0x0C); /* controlKey + L */ - else {KbRepeatTable[0x0C]=0;} - if ((controlKey && !shiftKey && !(keyboard[1] & 0x20)) || !(keyboard[6] & 0x80)) addToKeyboardBuffer(0x0D); /* controlKey + M or RETURN */ - else {KbRepeatTable[0x0D]=0;} - if (controlKey && !shiftKey && !(keyboard[1] & 0x40)) addToKeyboardBuffer(0x0E); /* controlKey + N */ - else {KbRepeatTable[0x0E]=0;} - if (controlKey && !shiftKey && !(keyboard[1] & 0x80)) addToKeyboardBuffer(0x0F); /* controlKey + O */ - else {KbRepeatTable[0x0F]=0;} - - if (controlKey && !shiftKey && !(keyboard[2] & 0x01)) addToKeyboardBuffer(0x10); /* controlKey + P */ - else {KbRepeatTable[0x10]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x02)) addToKeyboardBuffer(0x11); /* controlKey + Q */ - else {KbRepeatTable[0x11]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x04)) addToKeyboardBuffer(0x12); /* controlKey + R */ - else {KbRepeatTable[0x12]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x08)) addToKeyboardBuffer(0x13); /* controlKey + S */ - else {KbRepeatTable[0x13]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x10)) addToKeyboardBuffer(0x14); /* controlKey + T */ - else {KbRepeatTable[0x14]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x20)) addToKeyboardBuffer(0x15); /* controlKey + U */ - else {KbRepeatTable[0x15]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x40)) addToKeyboardBuffer(0x16); /* controlKey + V */ - else {KbRepeatTable[0x16]=0;} - if (controlKey && !shiftKey && !(keyboard[2] & 0x80)) addToKeyboardBuffer(0x17); /* controlKey + W */ - else {KbRepeatTable[0x17]=0;} - - if (controlKey && !shiftKey && !(keyboard[3] & 0x01)) addToKeyboardBuffer(0x18); /* controlKey + X */ - else {KbRepeatTable[0x18]=0;} - if (controlKey && !shiftKey && !(keyboard[3] & 0x02)) addToKeyboardBuffer(0x19); /* controlKey + Y */ - else {KbRepeatTable[0x19]=0;} - if (controlKey && !shiftKey && !(keyboard[3] & 0x04)) addToKeyboardBuffer(0x1A); /* controlKey + Z */ - else {KbRepeatTable[0x1A]=0;} - - if (!controlKey && !shiftKey && !(keyboard[0] & 0x02)) addToKeyboardBuffer(0x61); /* A */ - else {KbRepeatTable[0x61]=0;} - - if (!controlKey && !shiftKey && !(keyboard[0] & 0x04)) addToKeyboardBuffer(0x62); /* B */ - else {KbRepeatTable[0x62]=0;} - if (!controlKey && !shiftKey && !(keyboard[0] & 0x08)) addToKeyboardBuffer(0x63); /* C */ - else {KbRepeatTable[0x63]=0;} - if (!controlKey && !shiftKey && !(keyboard[0] & 0x10)) addToKeyboardBuffer(0x64); /* D */ - else {KbRepeatTable[0x64]=0;} - if (!controlKey && !shiftKey && !(keyboard[0] & 0x20)) addToKeyboardBuffer(0x65); /* E */ - else {KbRepeatTable[0x65]=0;} - if (!controlKey && !shiftKey && !(keyboard[0] & 0x40)) addToKeyboardBuffer(0x66); /* F */ - else {KbRepeatTable[0x66]=0;} - if (!controlKey && !shiftKey && !(keyboard[0] & 0x80)) addToKeyboardBuffer(0x67); /* G */ - else {KbRepeatTable[0x67]=0;} - - if (!controlKey && !shiftKey && !(keyboard[1] & 0x01)) addToKeyboardBuffer(0x68); /* H */ - else {KbRepeatTable[0x68]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x02)) addToKeyboardBuffer(0x69); /* I */ - else {KbRepeatTable[0x69]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x04)) addToKeyboardBuffer(0x6A); /* J */ - else {KbRepeatTable[0x6A]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x08)) addToKeyboardBuffer(0x6B); /* K */ - else {KbRepeatTable[0x6B]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x10)) addToKeyboardBuffer(0x6C); /* L */ - else {KbRepeatTable[0x6C]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x20)) addToKeyboardBuffer(0x6D); /* M */ - else {KbRepeatTable[0x6D]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x40)) addToKeyboardBuffer(0x6E); /* N */ - else {KbRepeatTable[0x6E]=0;} - if (!controlKey && !shiftKey && !(keyboard[1] & 0x80)) addToKeyboardBuffer(0x6F); /* O */ - else {KbRepeatTable[0x6F]=0;} - - if (!controlKey && !shiftKey && !(keyboard[2] & 0x01)) addToKeyboardBuffer(0x70); /* P */ - else {KbRepeatTable[0x70]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x02)) addToKeyboardBuffer(0x71); /* Q */ - else {KbRepeatTable[0x71]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x04)) addToKeyboardBuffer(0x72); /* R */ - else {KbRepeatTable[0x72]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x08)) addToKeyboardBuffer(0x73); /* S */ - else {KbRepeatTable[0x73]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x10)) addToKeyboardBuffer(0x74); /* T */ - else {KbRepeatTable[0x74]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x20)) addToKeyboardBuffer(0x75); /* U */ - else {KbRepeatTable[0x75]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x40)) addToKeyboardBuffer(0x76); /* V */ - else {KbRepeatTable[0x76]=0;} - if (!controlKey && !shiftKey && !(keyboard[2] & 0x80)) addToKeyboardBuffer(0x77); /* W */ - else {KbRepeatTable[0x77]=0;} - - if (!controlKey && !shiftKey && !(keyboard[3] & 0x01)) addToKeyboardBuffer(0x78); /* X */ - else {KbRepeatTable[0x78]=0;} - if (!controlKey && !shiftKey && !(keyboard[3] & 0x02)) addToKeyboardBuffer(0x79); /* Y */ - else {KbRepeatTable[0x79]=0;} - if (!controlKey && !shiftKey && !(keyboard[3] & 0x04)) addToKeyboardBuffer(0x7A); /* Z */ - else {KbRepeatTable[0x7A]=0;} - - - - if (shiftKey && !controlKey && !(keyboard[5] & 0x04)) addToKeyboardBuffer(0x22); /* shiftKey + ' *//****** Not sure ******/ - else {KbRepeatTable[0x22]=0;} - if (shiftKey && !controlKey && !(keyboard[3] & 0x80)) addToKeyboardBuffer(0x3A); /* shiftKey + ; */ - else {KbRepeatTable[0x3A]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x10)) addToKeyboardBuffer(0x3C); /* shiftKey + , */ - else {KbRepeatTable[0x3C]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x08)) addToKeyboardBuffer(0x3D); /* shiftKey + + */ - else {KbRepeatTable[0x3D]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x20)) addToKeyboardBuffer(0x3E); /* shiftKey + . */ - else {KbRepeatTable[0x3E]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x40)) addToKeyboardBuffer(0x3F); /* shiftKey + / */ - else {KbRepeatTable[0x3F]=0;} - - if (shiftKey && !controlKey && !(keyboard[3] & 0x40)) addToKeyboardBuffer(0x60); /* shiftKey + - */ - else {KbRepeatTable[0x60]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x80)) addToKeyboardBuffer(0x7B); /* shiftKey + [ */ - else {KbRepeatTable[0x7B]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x04)) addToKeyboardBuffer(0x7C); /* shiftKey + \ *//****** Not sure ******/ - else {KbRepeatTable[0x7C]=0;} - if (shiftKey && !controlKey && !(keyboard[3] & 0x08)) addToKeyboardBuffer(0x7D); /* shiftKey + ] */ - else {KbRepeatTable[0x7D]=0;} - if (shiftKey && !controlKey && !(keyboard[3] & 0x20)) addToKeyboardBuffer(0x7E); /* shiftKey + ^ */ - else {KbRepeatTable[0x7E]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x01)) addToKeyboardBuffer(0x89); /* shiftKey + I */ - else {KbRepeatTable[0x89]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x02)) addToKeyboardBuffer(0x8A); /* shiftKey + II */ - else {KbRepeatTable[0x8A]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x04)) addToKeyboardBuffer(0x8B); /* shiftKey + III */ - else {KbRepeatTable[0x8B]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x08)) addToKeyboardBuffer(0x8C); /* shiftKey + IV */ - else {KbRepeatTable[0x8C]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x10)) addToKeyboardBuffer(0x8D); /* shiftKey + V */ - else {KbRepeatTable[0x8D]=0;} - if (shiftKey && !controlKey && !(keyboard[6] & 0x20)) addToKeyboardBuffer(0x8E); /* shiftKey + VI */ - else {KbRepeatTable[0x8E]=0;} - - if (shiftKey && !controlKey && !(keyboard[7] & 0x01)) addToKeyboardBuffer(0x98); /* shiftKey + WILD CARD */ - else {KbRepeatTable[0x98]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x02)) addToKeyboardBuffer(0x99); /* shiftKey + UNDO */ - else {KbRepeatTable[0x99]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x04)) addToKeyboardBuffer(0x9A); /* shiftKey + MOVE */ - else {KbRepeatTable[0x9A]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x08)) addToKeyboardBuffer(0x9B); /* shiftKey + STORE */ - else {KbRepeatTable[0x9B]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x10)) addToKeyboardBuffer(0x9C); /* shiftKey + INSERT */ - else {KbRepeatTable[0x9C]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x20)) addToKeyboardBuffer(0x9D); /* shiftKey + PRINT */ - else {KbRepeatTable[0x9D]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x40)) addToKeyboardBuffer(0x9E); /* shiftKey + CLEAR */ - else {KbRepeatTable[0x9E]=0;} - if (shiftKey && !controlKey && !(keyboard[7] & 0x80)) addToKeyboardBuffer(0x9F); /* shiftKey + DELETE */ - else {KbRepeatTable[0x9F]=0;} - - - - if (controlKey && !shiftKey && !(keyboard[8] & 0x02)) addToKeyboardBuffer(0xA4); /* controlKey + UP ARROW */ - else {KbRepeatTable[0xA4]=0;} - if (controlKey && !shiftKey && !(keyboard[8] & 0x10)) addToKeyboardBuffer(0xA5); /* controlKey + RIGHT ARROW */ - else {KbRepeatTable[0xA5]=0;} - if (controlKey && !shiftKey && !(keyboard[8] & 0x04)) addToKeyboardBuffer(0xA6); /* controlKey + DOWN ARROW */ - else {KbRepeatTable[0xA6]=0;} - if (controlKey && !shiftKey && !(keyboard[8] & 0x08)) addToKeyboardBuffer(0xA7); /* controlKey + LEFT ARROW */ - else {KbRepeatTable[0xA7]=0;} - - if (controlKey && !shiftKey && !(keyboard[7] & 0x80)) addToKeyboardBuffer(0x7F); /* controlKey + DELETE */ - else {KbRepeatTable[0x7F]=0;} - - - - - if ((controlKey && !shiftKey && !(keyboard[5] & 0x80)) || !(keyboard[0] & 0x01)) addToKeyboardBuffer(0x1B); /* controlKey + [ or WP/ESCAPE */ - else {KbRepeatTable[0x1B]=0;} - if (controlKey && !shiftKey && !(keyboard[5] & 0x04)) addToKeyboardBuffer(0x1C); /* controlKey + \ *//****** Not sure ******/ - else {KbRepeatTable[0x1C]=0;} - if (controlKey && !shiftKey && !(keyboard[3] & 0x08)) addToKeyboardBuffer(0x1D); /* controlKey + ] */ - else {KbRepeatTable[0x1D]=0;} - if (controlKey && !shiftKey && !(keyboard[3] & 0x20)) addToKeyboardBuffer(0x1E); /* controlKey + ^ */ - else {KbRepeatTable[0x1E]=0;} - - - if (!controlKey && !shiftKey && !(keyboard[6] & 0x40)) addToKeyboardBuffer(0x20); /* SPACEBAR */ - else {KbRepeatTable[0x20]=0;} - if (shiftKey && !controlKey && !(keyboard[5] & 0x04)) addToKeyboardBuffer(0x27); /* ' */ - else {KbRepeatTable[0x27]=0;} - - if (!controlKey && !shiftKey && !(keyboard[5] & 0x08)) addToKeyboardBuffer(0x2B); /* + */ - else {KbRepeatTable[0x2B]=0;} - if (!controlKey && !shiftKey && !(keyboard[5] & 0x10)) addToKeyboardBuffer(0x2C); /* , */ - else {KbRepeatTable[0x2C]=0;} - if (!controlKey && !shiftKey && !(keyboard[3] & 0x40)) addToKeyboardBuffer(0x2D); /* - */ - else {KbRepeatTable[0x2D]=0;} - if (!controlKey && !shiftKey && !(keyboard[5] & 0x20)) addToKeyboardBuffer(0x2E); /* . */ - else {KbRepeatTable[0x2E]=0;} - if (!controlKey && !shiftKey && !(keyboard[5] & 0x40)) addToKeyboardBuffer(0x2F); /* / */ - else {KbRepeatTable[0x2F]=0;} - - - if (!controlKey && !shiftKey && !(keyboard[3] & 0x80)) addToKeyboardBuffer(0x3B); /* ; */ - else {KbRepeatTable[0x3B]=0;} - - - if (!controlKey && !shiftKey && !(keyboard[5] & 0x80)) addToKeyboardBuffer(0x5B); /* [ */ - else {KbRepeatTable[0x5B]=0;} - if (!controlKey && !shiftKey && !(keyboard[5] & 0x04)) addToKeyboardBuffer(0x5C); /* \ *//****** Not sure ******/ - else {KbRepeatTable[0x5C]=0;} - if (!controlKey && !shiftKey && !(keyboard[3] & 0x08)) addToKeyboardBuffer(0x5D); /* ] */ - else {KbRepeatTable[0x5D]=0;} - if (!controlKey && !shiftKey && !(keyboard[3] & 0x20)) addToKeyboardBuffer(0x5E); /* ^ */ - else {KbRepeatTable[0x5E]=0;} - - - if (!shiftKey && !(keyboard[8] & 0x01)) addToKeyboardBuffer(0x80); /* HOME */ - else {KbRepeatTable[0x80]=0;} - if (!shiftKey && !(keyboard[6] & 0x01)) addToKeyboardBuffer(0x81); /* I */ - else {KbRepeatTable[0x81]=0;} - if (!shiftKey && !(keyboard[6] & 0x02)) addToKeyboardBuffer(0x82); /* II */ - else {KbRepeatTable[0x82]=0;} - if (!shiftKey && !(keyboard[6] & 0x04)) addToKeyboardBuffer(0x83); /* III */ - else {KbRepeatTable[0x83]=0;} - if (!shiftKey && !(keyboard[6] & 0x08)) addToKeyboardBuffer(0x84); /* IV */ - else {KbRepeatTable[0x84]=0;} - if (!shiftKey && !(keyboard[6] & 0x10)) addToKeyboardBuffer(0x85); /* V */ - else {KbRepeatTable[0x85]=0;} - if (!shiftKey && !(keyboard[6] & 0x20)) addToKeyboardBuffer(0x86); /* VI */ - else {KbRepeatTable[0x86]=0;} - - if (!shiftKey && !(keyboard[7] & 0x01)) addToKeyboardBuffer(0x90); /* WILD CARD */ - else {KbRepeatTable[0x90]=0;} - if (!shiftKey && !(keyboard[7] & 0x02)) addToKeyboardBuffer(0x91); /* UNDO */ - else {KbRepeatTable[0x91]=0;} - if (!shiftKey && !(keyboard[7] & 0x04)) addToKeyboardBuffer(0x92); /* MOVE */ - else {KbRepeatTable[0x92]=0;} - if (!shiftKey && !(keyboard[7] & 0x08)) addToKeyboardBuffer(0x93); /* STORE */ - else {KbRepeatTable[0x93]=0;} - if (!shiftKey && !(keyboard[7] & 0x10)) addToKeyboardBuffer(0x94); /* INSERT */ - else {KbRepeatTable[0x94]=0;} - if (!shiftKey && !(keyboard[7] & 0x20)) addToKeyboardBuffer(0x95); /* PRINT */ - else {KbRepeatTable[0x95]=0;} - if (!shiftKey && !(keyboard[7] & 0x40)) addToKeyboardBuffer(0x96); /* CLEAR */ - else {KbRepeatTable[0x96]=0;} - if (!shiftKey && !(keyboard[7] & 0x80)) addToKeyboardBuffer(0x97); /* DELETE */ - else {KbRepeatTable[0x97]=0;} - - - if (!controlKey && !(keyboard[8] & 0x02)) addToKeyboardBuffer(0xA0); /* UP ARROW */ - else {KbRepeatTable[0xA0]=0;} - if (!controlKey && !(keyboard[8] & 0x10)) addToKeyboardBuffer(0xA1); /* RIGHT ARROW */ - else {KbRepeatTable[0xA1]=0;} - if (!controlKey && !(keyboard[8] & 0x04)) addToKeyboardBuffer(0xA2); /* DOWN ARROW */ - else {KbRepeatTable[0xA2]=0;} - if (!controlKey && !(keyboard[8] & 0x08)) addToKeyboardBuffer(0xA3); /* LEFT ARROW */ - else {KbRepeatTable[0xA3]=0;} - - if (!controlKey && !(keyboard[8] & 0x02) && !(keyboard[8] & 0x10)) addToKeyboardBuffer(0xA8); /* UP ARROW + RIGHT ARROW */ - else {KbRepeatTable[0xA8]=0;} - if (!controlKey && !(keyboard[8] & 0x10) && !(keyboard[8] & 0x04)) addToKeyboardBuffer(0xA9); /* RIGHT ARROW + DOWN ARROW */ - else {KbRepeatTable[0xA9]=0;} - if (!controlKey && !(keyboard[8] & 0x04) && !(keyboard[8] & 0x08)) addToKeyboardBuffer(0xAA); /* DOWN ARROW + LEFT ARROW */ - else {KbRepeatTable[0xAA]=0;} - if (!controlKey && !(keyboard[8] & 0x08) && !(keyboard[8] & 0x02)) addToKeyboardBuffer(0xAB); /* LEFT ARROW + UP ARROW */ - else {KbRepeatTable[0xAB]=0;} - if (!controlKey && !(keyboard[8] & 0x01) && !(keyboard[8] & 0x02)) addToKeyboardBuffer(0xAC); /* HOME + UP ARROW */ - else {KbRepeatTable[0xAC]=0;} - if (!controlKey && !(keyboard[8] & 0x01) && !(keyboard[8] & 0x10)) addToKeyboardBuffer(0xAD); /* HOME + RIGHT ARROW */ - else {KbRepeatTable[0xAD]=0;} - if (!controlKey && !(keyboard[8] & 0x01) && !(keyboard[8] & 0x04)) addToKeyboardBuffer(0xAE); /* HOME + DOWN ARROW */ - else {KbRepeatTable[0xAE]=0;} - if (!controlKey && !(keyboard[8] & 0x01) && !(keyboard[8] & 0x08)) addToKeyboardBuffer(0xAF); /* HOME + LEFT ARROW */ - else {KbRepeatTable[0xAF]=0;} - -} - -void master6801_behaviour(int offset, int data) -{ -/* -The Master MC6801 controls all AdamNet operations, keyboard, tapes, disks... -We are going to "simulate" the behaviour of the master 6801, because we does not have the 2kbytes ROM DUMP -If you have the source listing or the Rom dump, please send us. -*/ - int DCB_Num, deviceNum, statusDCB; - int i, buffer, byteCount, sectorNmbr, sectorCount, currentSector; - UINT8 kbcode; - static UINT8 interleave[8] = {0,5,2,7,4,1,6,3}; - mess_image *image; - - if (offset == adam_pcb) - { - switch (data) - { - case 1: /* Request to synchronize the Z80 clock */ - memory_region(REGION_CPU1)[offset] = 0x81; - //logerror("Synchronizing the Z80 clock\n"); - break; - case 2: /* Request to synchronize the Master 6801 clock */ - memory_region(REGION_CPU1)[offset] = 0x82; - //logerror("Synchronizing the Master 6801 clock\n"); - break; - case 3: /* Request to relocate adam_pcb */ - memory_region(REGION_CPU1)[offset] = 0x83; /* Must return 0x83 if success */ - //memory_region(REGION_CPU1)[offset] = 0x9B; /* Time Out */ - logerror("Request to relocate adam_pcb from %04Xh to %04Xh... not implemented... but returns OK\n", adam_pcb, (memory_region(REGION_CPU1)[adam_pcb+1]&memory_region(REGION_CPU1)[adam_pcb+2]<<8)); - break; - } - } - - for(DCB_Num=1;DCB_Num<=memory_region(REGION_CPU1)[adam_pcb+3];DCB_Num++) /* Test status of each DCB in adam_pcb table */ - { - statusDCB = (adam_pcb+4)+(DCB_Num-1)*21; - if (offset==statusDCB) - { - //logerror("Accesing DCB %02Xh\n", DCB_Num); - deviceNum = (memory_region(REGION_CPU1)[statusDCB+0x10]&0x0F)+(memory_region(REGION_CPU1)[statusDCB+0x09]<<4); - buffer=(memory_region(REGION_CPU1)[statusDCB+0x01])+(memory_region(REGION_CPU1)[statusDCB+0x02]<<8); - byteCount=(memory_region(REGION_CPU1)[statusDCB+0x03])+(memory_region(REGION_CPU1)[statusDCB+0x04]<<8); - - if (deviceNum>=4 && deviceNum<=7) - { - image = image_from_devtype_and_index(IO_FLOPPY, deviceNum - 4); - if (image_exists(image)) - memory_region(REGION_CPU1)[statusDCB+20] = (memory_region(REGION_CPU1)[statusDCB+20]&0xF0); /* Inserted Media */ - else - memory_region(REGION_CPU1)[statusDCB+20] = (memory_region(REGION_CPU1)[statusDCB+20]&0xF0)|0x03; /* No Media on Drive*/ - } - switch (data) - { - case 0: /* Initialize Drive */ - if (deviceNum>=4 && deviceNum<=7) - { - memory_region(REGION_CPU1)[statusDCB] = 0x80; - } - break; - case 1: /* Return current status */ - if (deviceNum==1||deviceNum==2) - { - memory_region(REGION_CPU1)[statusDCB] = 0x80; /* Device Found (1=Keyboard, 2=Printer) */ - memory_region(REGION_CPU1)[statusDCB+0x13] = 0x01; /* Character device */ - } - else if (deviceNum>=4 && deviceNum<=7) - { - image = image_from_devtype_and_index(IO_FLOPPY, deviceNum - 4); - if (image_exists(image)) - { - memory_region(REGION_CPU1)[statusDCB] = 0x80; - memory_region(REGION_CPU1)[statusDCB+17] = 1024&255; - memory_region(REGION_CPU1)[statusDCB+18] = 1024>>8; - } - else - { - memory_region(REGION_CPU1)[statusDCB] = 0x83; /* Device Found but No Disk in Drive*/ - } - } - else - { - memory_region(REGION_CPU1)[statusDCB] = 0x9B; /* Time Out - No Device Found*/ - } - //logerror(" Requesting Status Device %02d=%02Xh\n", deviceNum, memory_region(REGION_CPU1)[statusDCB]); - break; - case 2: /* Soft reset */ - memory_region(REGION_CPU1)[statusDCB] = 0x80; - //logerror(" Reseting Device %02d\n", deviceNum); - break; - case 3: /* Write Data */ - //logerror(" Requesting Write to Device %02d\n", deviceNum); - if (deviceNum==2) - { - memory_region(REGION_CPU1)[statusDCB] = 0x80; /* Ok, char sent to printer... no really */ - //logerror(" Requesting Write %2d bytes on buffer [%04xh] to Device %02d\n", byteCount, buffer,deviceNum); - } - else - { - memory_region(REGION_CPU1)[statusDCB] = 0x85; /* Write Protected Media */ - } - break; - case 4: /* Read Data */ - /* - AdamNet Error codes on low nibble for tape1,disk1,disk2 and on high nibble for tape2 (share DCB with tape1): - - 0x00 No Error (everything is OK) - 0x01 CRC Error (block corrupt; data failed cyclic redundancy check) - 0x02 Missing Block (attempt to access past physical end of medium) - 0x03 Missing Media (not in drive or drive door open) - 0x04 Missing Drive (not connected or not turned on) - 0x05 Write-Protected (write-protect tab covered) - 0x06 Drive Error (controller or seek failure) - */ - if (deviceNum==1) - { - kbcode=getKeyFromBuffer(); - if (kbcode>0) - { - memory_region(REGION_CPU1)[buffer] = kbcode; /* Key pressed */ - memory_region(REGION_CPU1)[statusDCB] = 0x80; - } - else - { - memory_region(REGION_CPU1)[statusDCB] = 0x8C; /* No key pressed */ - } - } - else if (deviceNum>=4 && deviceNum<=7) - { - image = image_from_devtype_and_index(IO_FLOPPY, deviceNum - 4); - if (image_exists(image)) - { - sectorNmbr = ((memory_region(REGION_CPU1)[statusDCB+5])+(memory_region(REGION_CPU1)[statusDCB+6]<<8)+(memory_region(REGION_CPU1)[statusDCB+7]<<16)+(memory_region(REGION_CPU1)[statusDCB+8]<<24))<<1; - sectorCount = (byteCount/512)+(byteCount%512==0)? 0:1; - for(i=0;i<=1;i++) - { - currentSector = floppy_drive_get_current_track(image); - while (currentSector > ((sectorNmbr+i)/8)) - { - floppy_drive_seek(image, -1); - currentSector--; - } - while (currentSector < ((sectorNmbr+i)/8)) - { - floppy_drive_seek(image, 1); - currentSector++; - } - floppy_drive_read_sector_data(image, 0, interleave[(sectorNmbr+i)&0x07], &memory_region(REGION_CPU1)[buffer+(512*i)],512); - } - memory_region(REGION_CPU1)[statusDCB+20] |= 6; - memory_region(REGION_CPU1)[statusDCB] = 0x80; - } - - } - else - { - memory_region(REGION_CPU1)[statusDCB] = 0x9B; - } - //logerror(" Requesting Read %2d bytes on buffer [%04xh] from Device %02d\n", byteCount, buffer,deviceNum); - break; - default: - memory_region(REGION_CPU1)[statusDCB] = 0x9B; /* Other */ - break; - } - } - } -} - -WRITE8_HANDLER( common_writes_w ) -{ - switch (adam_upper_memory) - { - case 0: /* Internal RAM */ - memory_region(REGION_CPU1)[0x08000+offset] = data; - if (offset>=(adam_pcb-0x08000)) master6801_behaviour(offset+0x08000, data); - break; - case 1: /* ROM Expansion */ - break; - case 2: /* RAM Expansion */ - memory_region(REGION_CPU1)[0x18000+offset] = data; - break; - case 3: /* Cartridge ROM */ - break; - } -} - - READ8_HANDLER( adamnet_r ) -{ - //logerror("adam_net_data Read %2xh\n",adam_net_data); - return adam_net_data; -} - -WRITE8_HANDLER( adamnet_w ) -{ - /* - If SmartWriter ROM is selected on lower Z80 memory - if data bit1 is 1 -> Lower 32k = EOS otherwise Lower 32k = SmartWriter - */ - UINT8 *BankBase; - BankBase = &memory_region(REGION_CPU1)[0x00000]; - - if (data==0x0F) resetPCB(); - if ( (adam_lower_memory==0) && ((data&0x02)!=(adam_net_data&0x02)) ) - { - if (data&0x02) - { - memory_set_bankptr(1, BankBase+0x32000); /* No data here */ - memory_set_bankptr(2, BankBase+0x34000); /* No data here */ - memory_set_bankptr(3, BankBase+0x36000); /* No data here */ - memory_set_bankptr(4, BankBase+0x38000); /* EOS ROM */ - - memory_set_bankptr(6, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(7, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(8, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(9, BankBase+0x3A000); /* Write protecting ROM */ - } - else - { - memory_set_bankptr(1, BankBase+0x20000); /* SmartWriter ROM */ - memory_set_bankptr(2, BankBase+0x22000); - memory_set_bankptr(3, BankBase+0x24000); - memory_set_bankptr(4, BankBase+0x26000); - - memory_set_bankptr(6, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(7, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(8, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(9, BankBase+0x3A000); /* Write protecting ROM */ - } - } - adam_net_data = data; -} - - READ8_HANDLER( adam_memory_map_controller_r ) -{ - return (adam_upper_memory << 2) + adam_lower_memory; -} - -WRITE8_HANDLER( adam_memory_map_controller_w ) -{ - /* - Writes to ports 0x60 to 0x7F set memory map: - - - D1,D0 -> Lower Memory configuration (0x0000, 0x7FFF) - 0 0 SmartWriter Rom - 0 1 Internal RAM (32k) - 1 0 RAM Expansion (32k) - 1 1 OS7 ROM (8k) + Internal RAM (24k) (for partial ColecoVision compatibility) - - - D3,D2 -> Upper Memory configuration (0x8000, 0xFFFF) - 0 0 Internal RAM (32k) - 0 1 ROM Expansion (32k). The first expansion ROM byte must be 0x66, and the second 0x99. - 1 0 RAM Expansion (32k) - 1 1 Cartridge ROM (32k) - - - D7,D4 -> Reserved for future expansions, must be 0. - - */ - - adam_lower_memory = (data & 0x03); - adam_upper_memory = (data & 0x0C)>>2; - set_memory_banks(); - //logerror("Configurando la memoria, L:%02xh, U:%02xh\n", adam_lower_memory, adam_upper_memory); -} - - READ8_HANDLER(adam_video_r) -{ - return ((offset&0x01) ? TMS9928A_register_r(1) : TMS9928A_vram_r(0)); -} - -WRITE8_HANDLER(adam_video_w) -{ - (offset&0x01) ? TMS9928A_register_w(1, data) : TMS9928A_vram_w(0, data); -} - - READ8_HANDLER( master6801_ram_r ) -{ - /*logerror("Offset %04Xh = %02Xh\n",offset ,memory_region(REGION_CPU1)[offset]);*/ - return memory_region(REGION_CPU1)[offset+0x4000]; -} - -WRITE8_HANDLER( master6801_ram_w ) -{ - memory_region(REGION_CPU1)[offset+0x4000] = data; -} - - READ8_HANDLER ( adam_paddle_r ) -{ - - if (!(input_port_6_r(0) & 0x0F)) return (0xFF); /* If no controllers enabled */ - /* Player 1 */ - if ((offset & 0x02)==0) - { - /* Keypad and fire 1 (SAC Yellow Button) */ - if (joy_mode==0) - { - int inport0,inport1,inport6,data; - - inport0 = input_port_0_r(0); - inport1 = input_port_1_r(0); - inport6 = input_port_6_r(0); - - /* Numeric pad buttons are not independent on a real ColecoVision, if you push more - than one, a real ColecoVision think that it is a third button, so we are going to emulate - the right behaviour */ - - data = 0x0F; /* No key pressed by default */ - if (!(inport6&0x01)) /* If Driving Controller enabled -> no keypad 1*/ - { - if (!(inport0 & 0x01)) data &= 0x0A; /* 0 */ - if (!(inport0 & 0x02)) data &= 0x0D; /* 1 */ - if (!(inport0 & 0x04)) data &= 0x07; /* 2 */ - if (!(inport0 & 0x08)) data &= 0x0C; /* 3 */ - if (!(inport0 & 0x10)) data &= 0x02; /* 4 */ - if (!(inport0 & 0x20)) data &= 0x03; /* 5 */ - if (!(inport0 & 0x40)) data &= 0x0E; /* 6 */ - if (!(inport0 & 0x80)) data &= 0x05; /* 7 */ - if (!(inport1 & 0x01)) data &= 0x01; /* 8 */ - if (!(inport1 & 0x02)) data &= 0x0B; /* 9 */ - if (!(inport1 & 0x04)) data &= 0x06; /* # */ - if (!(inport1 & 0x08)) data &= 0x09; /* . */ - } - return (inport1 & 0x70) | (data); - } - /* Joystick and fire 2 (SAC Red Button) */ - else - { - int data = input_port_2_r(0) & 0xCF; - int inport6 = input_port_6_r(0); - - if (inport6&0x07) /* If Extra Contollers enabled */ - { - if (adam_joy_stat[0]==0) - data |= 0x30; /* Spinner Move Left*/ - else if (adam_joy_stat[0]==1) - data |= 0x20; /* Spinner Move Right */ - } - return data | 0x80; - } - } - /* Player 2 */ - else - { - /* Keypad and fire 1 */ - if (joy_mode==0) - { - int inport3,inport4,data; - - inport3 = input_port_3_r(0); - inport4 = input_port_4_r(0); - - /* Numeric pad buttons are not independent on a real ColecoVision, if you push more - than one, a real ColecoVision think that it is a third button, so we are going to emulate - the right behaviour */ - - data = 0x0F; /* No key pressed by default */ - if (!(inport3 & 0x01)) data &= 0x0A; /* 0 */ - if (!(inport3 & 0x02)) data &= 0x0D; /* 1 */ - if (!(inport3 & 0x04)) data &= 0x07; /* 2 */ - if (!(inport3 & 0x08)) data &= 0x0C; /* 3 */ - if (!(inport3 & 0x10)) data &= 0x02; /* 4 */ - if (!(inport3 & 0x20)) data &= 0x03; /* 5 */ - if (!(inport3 & 0x40)) data &= 0x0E; /* 6 */ - if (!(inport3 & 0x80)) data &= 0x05; /* 7 */ - if (!(inport4 & 0x01)) data &= 0x01; /* 8 */ - if (!(inport4 & 0x02)) data &= 0x0B; /* 9 */ - if (!(inport4 & 0x04)) data &= 0x06; /* # */ - if (!(inport4 & 0x08)) data &= 0x09; /* . */ - - return (inport4 & 0x70) | (data); - } - /* Joystick and fire 2*/ - else - { - int data = input_port_5_r(0) & 0xCF; - int inport6 = input_port_6_r(0); - - if (inport6&0x02) /* If Roller Controller enabled */ - { - if (adam_joy_stat[1]==0) data|=0x30; - else if (adam_joy_stat[1]==1) data|=0x20; - } - - return data | 0x80; - } - } - -} - - -WRITE8_HANDLER ( adam_paddle_toggle_off ) -{ - joy_mode = 0; - return; -} - -WRITE8_HANDLER ( adam_paddle_toggle_on ) -{ - joy_mode = 1; - return; -} diff --git a/mess/machine/advision.c b/mess/machine/advision.c deleted file mode 100644 index 7c85b1f00..000000000 --- a/mess/machine/advision.c +++ /dev/null @@ -1,191 +0,0 @@ -/*************************************************************************** - - advision.c - - Machine file to handle emulation of the AdventureVision. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/advision.h" -#include "devices/cartslot.h" -#include "image.h" -#include "cpuintrf.h" -#include "sound/dac.h" -#include "cpuint.h" - -unsigned char *advision_ram; -int advision_rambank; -int advision_framestart; -int advision_videoenable; -int advision_videobank; -static int Lvalue[3]; -static int wLpointer; -static int rLpointer; -static int Dvalue; -static int Gvalue; - -MACHINE_RESET( advision ) -{ - advision_ram = memory_region(REGION_CPU1) + 0x2000; - advision_rambank = 0x300; - memory_set_bankptr(1,memory_region(REGION_CPU1) + 0x1000); - advision_framestart = 0; - advision_videoenable = 0; - wLpointer = 0; - rLpointer = 0; - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - -} - -/****** External RAM ******************************/ - - READ8_HANDLER ( advision_MAINRAM_r ) -{ - int d; - - d = advision_ram[advision_rambank + offset]; - - /* the video hardware interprets reads as writes */ - if (!advision_videoenable) advision_vh_write(d); - - if (advision_videobank == 0x06) { - if (d & 0x01) { - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); - /* logerror("RELEASE RESET\n"); */ - wLpointer=0; - rLpointer=0; - } - else { - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - /* logerror("SET RESET\n");*/ - } - - } - - return d; -} - -WRITE8_HANDLER ( advision_MAINRAM_w ) -{ - advision_ram[advision_rambank + offset] = data; -} - - -READ8_HANDLER ( advision_getL ) -{ - int d = 0; - - d = Lvalue[rLpointer]; - if (rLpointer < 3 ) rLpointer++; - -/* if (rLpointer == 0) {d = 0x0f; } - if (rLpointer == 1) {d = 0x01; } - rLpointer++; - - if (rLpointer > 1) rLpointer = 0; */ - - /* logerror("READ L: %x\n",d); */ - - return d; -} - -static void update_dac(void) { -/* logerror("Clock: %x D: %x G:%x \n",activecpu_get_icount(),Dvalue, Gvalue); */ - - if (Gvalue == 0 && Dvalue == 0) - DAC_data_w(0, 0xff); - else if (Gvalue == 1 && Dvalue == 1) - DAC_data_w(0, 0x80); - else - DAC_data_w(0, 0x00); -} - -WRITE8_HANDLER ( advision_putG ) -{ - Gvalue = data & 0x01; - update_dac(); -} - -WRITE8_HANDLER ( advision_putD ) -{ - Dvalue = data & 0x01; - update_dac(); -} - - -static void sound_write(int data) -{ - Lvalue[wLpointer] = ((data & 0xF0) >> 4); - if (wLpointer < 3) wLpointer++; - /* logerror("WRITE L: %x\n",data); */ -} - -/***** 8048 Ports ************************/ - -WRITE8_HANDLER ( advision_putp1 ) -{ - static UINT8 *ROM; - - ROM = memory_region(REGION_CPU1); - if (data & 0x04) - memory_set_bankptr(1,&ROM[0x0000]); - else - memory_set_bankptr(1,&ROM[0x1000]); - advision_rambank = (data & 0x03) << 8; -} - -WRITE8_HANDLER ( advision_putp2 ) -{ - - sound_write(data); - - if ((advision_videoenable == 0x00) && (data & 0x10)) - { - advision_vh_update(advision_vh_hpos); - advision_vh_hpos++; - if (advision_vh_hpos > 255) - { - advision_vh_hpos = 0; - logerror("HPOS OVERFLOW\n"); - } - } - advision_videoenable = data & 0x10; - advision_videobank = (data & 0xE0) >> 5; -} - - READ8_HANDLER ( advision_getp1 ) { - int d,in; - - // Get joystick switches - in = input_port_0_r(0); - d = in | 0x0F; - - // Get buttons - if (in & 0x02) d = d & 0xF7; /* Button 3 */ - if (in & 0x08) d = d & 0xCF; /* Button 1 */ - if (in & 0x04) d = d & 0xAF; /* Button 2 */ - if (in & 0x01) d = d & 0x6F; /* Button 4 */ - - d = d & 0xF8; - return d; -} - - READ8_HANDLER ( advision_getp2 ) { - return 0; -} - - READ8_HANDLER ( advision_gett0 ) { - return 0; -} - - READ8_HANDLER ( advision_gett1 ) { - if (advision_framestart) { - advision_framestart = 0; - return 0; - } - else { - return 1; - } -} diff --git a/mess/machine/amstrad.c b/mess/machine/amstrad.c deleted file mode 100644 index d07399de7..000000000 --- a/mess/machine/amstrad.c +++ /dev/null @@ -1,300 +0,0 @@ -/*************************************************************************** - - machine.c - - Functions to emulate general aspects of the machine (RAM, ROM, interrupts, - I/O ports) - -Amstrad hardware consists of: - -- General Instruments AY-3-8912 (audio and keyboard scanning) -- Intel 8255PPI (keyboard, access to AY-3-8912, cassette etc) -- Z80A CPU -- 765 FDC (disc drive interface) -- "Gate Array" (custom chip by Amstrad controlling colour, mode, -rom/ram selection - - -***************************************************************************/ - -#include -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/m6845.h" -#include "includes/amstrad.h" -//#include "systems/i8255.h" -#include "machine/8255ppi.h" -#include "machine/nec765.h" -#include "devices/dsk.h" -#include "devices/cassette.h" -#include "sound/ay8910.h" -#include "image.h" - -void amstrad_setup_machine(void) -{ - amstrad_reset_machine(); -} - -/* load CPCEMU style snapshots */ -void amstrad_handle_snapshot(unsigned char *pSnapshot) -{ - int RegData; - int i; - - /* init Z80 */ - RegData = (pSnapshot[0x011] & 0x0ff) | ((pSnapshot[0x012] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_AF, RegData); - - RegData = (pSnapshot[0x013] & 0x0ff) | ((pSnapshot[0x014] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_BC, RegData); - - RegData = (pSnapshot[0x015] & 0x0ff) | ((pSnapshot[0x016] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_DE, RegData); - - RegData = (pSnapshot[0x017] & 0x0ff) | ((pSnapshot[0x018] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_HL, RegData); - - RegData = (pSnapshot[0x019] & 0x0ff) ; - cpunum_set_reg(0,Z80_R, RegData); - - RegData = (pSnapshot[0x01a] & 0x0ff); - cpunum_set_reg(0,Z80_I, RegData); - - if ((pSnapshot[0x01b] & 1)==1) - { - cpunum_set_reg(0,Z80_IFF1, 1); - } - else - { - cpunum_set_reg(0,Z80_IFF1, 0); - } - - if ((pSnapshot[0x01c] & 1)==1) - { - cpunum_set_reg(0,Z80_IFF2, 1); - } - else - { - cpunum_set_reg(0,Z80_IFF2, 0); - } - - RegData = (pSnapshot[0x01d] & 0x0ff) | ((pSnapshot[0x01e] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_IX, RegData); - - RegData = (pSnapshot[0x01f] & 0x0ff) | ((pSnapshot[0x020] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_IY, RegData); - - RegData = (pSnapshot[0x021] & 0x0ff) | ((pSnapshot[0x022] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_SP, RegData); - cpunum_set_reg(0,REG_SP,RegData); - - RegData = (pSnapshot[0x023] & 0x0ff) | ((pSnapshot[0x024] & 0x0ff)<<8); - - cpunum_set_reg(0,Z80_PC, RegData); -// cpunum_set_reg(0,REG_SP,RegData); - - RegData = (pSnapshot[0x025] & 0x0ff); - cpunum_set_reg(0,Z80_IM, RegData); - - RegData = (pSnapshot[0x026] & 0x0ff) | ((pSnapshot[0x027] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_AF2, RegData); - - RegData = (pSnapshot[0x028] & 0x0ff) | ((pSnapshot[0x029] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_BC2, RegData); - - RegData = (pSnapshot[0x02a] & 0x0ff) | ((pSnapshot[0x02b] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_DE2, RegData); - - RegData = (pSnapshot[0x02c] & 0x0ff) | ((pSnapshot[0x02d] & 0x0ff)<<8); - cpunum_set_reg(0,Z80_HL2, RegData); - - /* init GA */ - for (i=0; i<17; i++) - { - amstrad_GateArray_write(i); - - amstrad_GateArray_write(((pSnapshot[0x02f + i] & 0x01f) | 0x040)); - } - - amstrad_GateArray_write(pSnapshot[0x02e] & 0x01f); - - amstrad_GateArray_write(((pSnapshot[0x040] & 0x03f) | 0x080)); - - AmstradCPC_PALWrite(((pSnapshot[0x041] & 0x03f) | 0x0c0)); - - /* init CRTC */ - for (i=0; i<18; i++) - { - crtc6845_address_w(0,i); - crtc6845_register_w(0, pSnapshot[0x043+i] & 0x0ff); - } - - crtc6845_address_w(0,i); - - /* upper rom selection */ - AmstradCPC_SetUpperRom(pSnapshot[0x055]); - - /* PPI */ - ppi8255_w(0,3,pSnapshot[0x059] & 0x0ff); - - ppi8255_w(0,0,pSnapshot[0x056] & 0x0ff); - ppi8255_w(0,1,pSnapshot[0x057] & 0x0ff); - ppi8255_w(0,2,pSnapshot[0x058] & 0x0ff); - - /* PSG */ - for (i=0; i<16; i++) - { - AY8910_control_port_0_w(0,i); - - AY8910_write_port_0_w(0,pSnapshot[0x05b + i] & 0x0ff); - } - - AY8910_control_port_0_w(0,pSnapshot[0x05a]); - - { - int MemSize; - int MemorySize; - - MemSize = (pSnapshot[0x06b] & 0x0ff) | ((pSnapshot[0x06c] & 0x0ff)<<8); - - if (MemSize==128) - { - MemorySize = 128*1024; - } - else - { - MemorySize = 64*1024; - } - - memcpy(mess_ram, &pSnapshot[0x0100], MemorySize); - } - amstrad_rethinkMemory(); -} - -/* load snapshot */ -SNAPSHOT_LOAD(amstrad) -{ - UINT8 *snapshot; - - /* get file size */ - if (snapshot_size < 8) - return INIT_FAIL; - - snapshot = malloc(snapshot_size); - if (!snapshot) - return INIT_FAIL; - - /* read whole file */ - image_fread(image, snapshot, snapshot_size); - - if (memcmp(snapshot, "MV - SNA", 8)) - { - free(snapshot); - return INIT_FAIL; - } - - amstrad_handle_snapshot(snapshot); - free(snapshot); - return INIT_PASS; -} - -DEVICE_LOAD(amstrad_plus_cartridge) -{ - // load CPC Plus / GX4000 cartridge image - // Format is RIFF: RIFF header chunk contains "AMS!" - // Chunks should be 16k, but may vary - // Chunks labeled 'cb00' represent Cartridge block 0, and is loaded to &0000-&3fff - // 'cb01' represent Cartridge block 1, and is loaded to &4000-&7fff - // ... and so on. - - unsigned char header[12]; // RIFF chunk - char chunkid[4]; // chunk ID (4 character code - cb00, cb01, cb02... upto cb31 (max 512kB), other chunks are ignored) - char chunklen[4]; // chunk length (always little-endian) - int chunksize; // chunk length, calcaulated from the above - int ramblock; // 16k RAM block chunk is to be loaded in to - int result; - unsigned int bytes_to_read; // total bytes to read, as mame_feof doesn't react to EOF without trying to go past it. - unsigned char* mem = memory_region(REGION_CPU1); - - logerror("CPR: loading RIFF format CPC cartridge file\n"); - // load RIFF chunk - result = image_fread(image,header,12); - if(result != 12) - { - logerror("CPR: failed to read from cart image\n"); - return INIT_FAIL; - } - if(strncmp(header,"RIFF",4) != 0) - { - logerror("CPR: not an RIFF format file - header is '%s'\n",header); - return INIT_FAIL; - } - if(strncmp((char*)(header+8),"AMS!",4) != 0) - { - logerror("CPR: not an Amstrad CPC cartridge image\n"); - return INIT_FAIL; - } - - bytes_to_read = header[4] + (header[5] << 8) + (header[6] << 16)+ (header[7] << 24); - bytes_to_read -= 4; // account for AMS! header - logerror("CPR: Data to read: %i bytes\n",bytes_to_read); - // read some chunks - while(bytes_to_read > 0) - { - result = image_fread(image,chunkid,4); - if(result != 4) - { - logerror("CPR: failed to read from cart image\n"); - return INIT_FAIL; - } - bytes_to_read -= result; - result = image_fread(image,chunklen,4); - if(result != 4) - { - logerror("CPR: failed to read from cart image\n"); - return INIT_FAIL; - } - bytes_to_read -= result; - // calculate little-endian value, just to be sure - chunksize = chunklen[0] + (chunklen[1] << 8) + (chunklen[2] << 16) + (chunklen[3] << 24); - - if(strncmp(chunkid,"cb",2) == 0) - { - // load chunk into RAM - // find out what block this is - ramblock = (chunkid[2] - 0x30) * 10; - ramblock += chunkid[3] - 0x30; - logerror("CPR: Loading chunk into RAM block %i ['%4s']\n",ramblock,chunkid); - if(ramblock >= 0 && ramblock < 32) - { - // clear RAM block - memset(mem+(0x4000*ramblock),0,0x4000); - - // load block into ROM area - if(chunksize > 16384) - chunksize = 16384; - result = image_fread(image,mem+(0x4000*ramblock),chunksize); - if(result != chunksize) - { - logerror("CPR: Read %i-byte chunk, expected %i bytes\n",result,chunksize); - return INIT_FAIL; - } - bytes_to_read -= chunksize; - logerror("CPR: Loaded %i-byte chunk into RAM block %i\n",result,ramblock); - } - } - else - { - logerror("CPR: Unknown chunk '%4s', skipping %i bytes\n",chunkid,chunksize); - if(chunksize != 0) - { - image_fseek(image,chunksize,SEEK_CUR); - bytes_to_read -= chunksize; - } - } - } - - - return INIT_PASS; -} - diff --git a/mess/machine/apple2.c b/mess/machine/apple2.c deleted file mode 100644 index 89fed8cf1..000000000 --- a/mess/machine/apple2.c +++ /dev/null @@ -1,1606 +0,0 @@ -/*************************************************************************** - - apple2.c - - Machine file to handle emulation of the Apple II series. - - TODO: Make a standard set of peripherals work. - TODO: Allow swappable peripherals in each slot. - TODO: Verify correctness of C08X switches. - - need to do double-read before write-enable RAM - -***************************************************************************/ - -#include "driver.h" -#include "state.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6502.h" -#include "includes/apple2.h" -#include "machine/ay3600.h" -#include "machine/applefdc.h" -#include "devices/sonydriv.h" -#include "devices/appldriv.h" -#include "devices/flopdrv.h" -#include "sound/dac.h" -#include "sound/ay8910.h" -#include "profiler.h" - -#ifdef MAME_DEBUG -#define LOG(x) logerror x -#else -#define LOG(x) -#endif /* MAME_DEBUG */ - -#define PROFILER_C00X PROFILER_USER2 -#define PROFILER_C01X PROFILER_USER2 -#define PROFILER_C08X PROFILER_USER2 -#define PROFILER_A2INT PROFILER_USER2 - -/* softswitch */ -UINT32 a2; - -/* before the softswitch is changed, these are applied */ -static UINT32 a2_mask; -static UINT32 a2_set; - - -/* local */ -static apple2_config *a2_config; -static void **a2_slot_tokens; -static int a2_speaker_state; - -static double joystick_x1_time; -static double joystick_y1_time; -static double joystick_x2_time; -static double joystick_y2_time; - -static WRITE8_HANDLER ( apple2_mainram0400_w ); -static WRITE8_HANDLER ( apple2_mainram2000_w ); -static WRITE8_HANDLER ( apple2_auxram0400_w ); -static WRITE8_HANDLER ( apple2_auxram2000_w ); - -static READ8_HANDLER ( apple2_c00x_r ); -static READ8_HANDLER ( apple2_c01x_r ); -static READ8_HANDLER ( apple2_c02x_r ); -static READ8_HANDLER ( apple2_c03x_r ); -static READ8_HANDLER ( apple2_c05x_r ); -static READ8_HANDLER ( apple2_c06x_r ); -static READ8_HANDLER ( apple2_c07x_r ); - -static WRITE8_HANDLER ( apple2_c00x_w ); -static WRITE8_HANDLER ( apple2_c01x_w ); -static WRITE8_HANDLER ( apple2_c02x_w ); -static WRITE8_HANDLER ( apple2_c03x_w ); -static WRITE8_HANDLER ( apple2_c05x_w ); -static WRITE8_HANDLER ( apple2_c07x_w ); - - - -/* ----------------------------------------------------------------------- - * New Apple II memory manager - * ----------------------------------------------------------------------- */ - -static apple2_memmap_config apple2_mem_config; -static apple2_meminfo *apple2_current_meminfo; - - -static READ8_HANDLER(read_floatingbus) -{ - return apple2_getfloatingbusvalue(); -} - - - -void apple2_setup_memory(const apple2_memmap_config *config) -{ - apple2_mem_config = *config; - apple2_current_meminfo = NULL; - apple2_update_memory(); -} - - - -void apple2_update_memory(void) -{ - int i, bank, rbank, wbank; - int full_update = 0; - apple2_meminfo meminfo; - read8_handler rh; - write8_handler wh; - offs_t begin, end_r, end_w; - UINT8 *rbase, *wbase, *rom, *slot_ram; - UINT32 rom_length, slot_length, offset; - bank_disposition_t bank_disposition; - - /* need to build list of current info? */ - if (!apple2_current_meminfo) - { - for (i = 0; apple2_mem_config.memmap[i].end; i++) - ; - apple2_current_meminfo = auto_malloc(i * sizeof(*apple2_current_meminfo)); - full_update = 1; - } - - /* get critical info */ - rom = memory_region(REGION_CPU1); - rom_length = memory_region_length(REGION_CPU1) & ~0xFFF; - slot_length = memory_region_length(REGION_CPU1) - rom_length; - slot_ram = (slot_length > 0) ? &rom[rom_length] : NULL; - - /* loop through the entire memory map */ - bank = apple2_mem_config.first_bank; - for (i = 0; apple2_mem_config.memmap[i].get_meminfo; i++) - { - /* retrieve information on this entry */ - memset(&meminfo, 0, sizeof(meminfo)); - apple2_mem_config.memmap[i].get_meminfo(apple2_mem_config.memmap[i].begin, apple2_mem_config.memmap[i].end, &meminfo); - - bank_disposition = apple2_mem_config.memmap[i].bank_disposition; - - /* do we need to memory reading? */ - if (full_update - || (meminfo.read_mem != apple2_current_meminfo[i].read_mem) - || (meminfo.read_handler != apple2_current_meminfo[i].read_handler)) - { - rbase = NULL; - rbank = (bank_disposition != A2MEM_IO) ? bank : 0; - begin = apple2_mem_config.memmap[i].begin; - end_r = apple2_mem_config.memmap[i].end; - rh = (read8_handler) (STATIC_BANK1 + rbank - 1); - - LOG(("apple2_update_memory(): Updating RD {%06X..%06X} [#%02d] --> %08X\n", - begin, end_r, rbank, meminfo.read_mem)); - - /* read handling */ - if (meminfo.read_handler) - { - /* handler */ - rh = meminfo.read_handler; - } - else if (meminfo.read_mem == APPLE2_MEM_FLOATING) - { - /* floating RAM */ - rh = read_floatingbus; - } - else if ((meminfo.read_mem & 0xC0000000) == APPLE2_MEM_AUX) - { - /* auxillary memory */ - assert(apple2_mem_config.auxmem); - offset = meminfo.read_mem & APPLE2_MEM_MASK; - rbase = &apple2_mem_config.auxmem[offset]; - } - else if ((meminfo.read_mem & 0xC0000000) == APPLE2_MEM_SLOT) - { - /* slot RAM */ - if (slot_ram) - rbase = &slot_ram[meminfo.read_mem & APPLE2_MEM_MASK]; - else - rh = read_floatingbus; - } - else if ((meminfo.read_mem & 0xC0000000) == APPLE2_MEM_ROM) - { - /* ROM */ - offset = meminfo.read_mem & APPLE2_MEM_MASK; - rbase = &rom[offset % rom_length]; - } - else - { - /* RAM */ - if (end_r >= mess_ram_size) - end_r = mess_ram_size - 1; - offset = meminfo.read_mem & APPLE2_MEM_MASK; - if (end_r >= begin) - rbase = &mess_ram[offset]; - } - - /* install the actual handlers */ - if (begin <= end_r) - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end_r, 0, 0, rh); - - /* did we 'go past the end?' */ - if (end_r < apple2_mem_config.memmap[i].end) - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, end_r + 1, apple2_mem_config.memmap[i].end, 0, 0, MRA8_NOP); - - /* set the memory bank */ - if (rbase) - { - memory_set_bankptr(rbank, rbase); - } - - /* record the current settings */ - apple2_current_meminfo[i].read_mem = meminfo.read_mem; - apple2_current_meminfo[i].read_handler = meminfo.read_handler; - } - - /* do we need to memory writing? */ - if (full_update - || (meminfo.write_mem != apple2_current_meminfo[i].write_mem) - || (meminfo.write_handler != apple2_current_meminfo[i].write_handler)) - { - wbase = NULL; - if (bank_disposition == A2MEM_MONO) - wbank = bank + 0; - else if (bank_disposition == A2MEM_DUAL) - wbank = bank + 1; - else - wbank = 0; - begin = apple2_mem_config.memmap[i].begin; - end_w = apple2_mem_config.memmap[i].end; - wh = (write8_handler) (STATIC_BANK1 + wbank - 1); - - LOG(("apple2_update_memory(): Updating WR {%06X..%06X} [#%02d] --> %08X\n", - begin, end_w, wbank, meminfo.write_mem)); - - /* write handling */ - if (meminfo.write_handler) - { - /* handler */ - wh = meminfo.write_handler; - } - else if ((meminfo.write_mem & 0xC0000000) == APPLE2_MEM_AUX) - { - /* auxillary memory */ - assert(apple2_mem_config.auxmem); - offset = meminfo.write_mem & APPLE2_MEM_MASK; - wbase = &apple2_mem_config.auxmem[offset]; - } - else if ((meminfo.write_mem & 0xC0000000) == APPLE2_MEM_SLOT) - { - /* slot RAM */ - if (slot_ram) - wbase = &slot_ram[meminfo.write_mem & APPLE2_MEM_MASK]; - else - wh = MWA8_NOP; - } - else if ((meminfo.write_mem & 0xC0000000) == APPLE2_MEM_ROM) - { - /* ROM */ - wh = MWA8_NOP; - } - else - { - /* RAM */ - if (end_w >= mess_ram_size) - end_w = mess_ram_size - 1; - offset = meminfo.write_mem & APPLE2_MEM_MASK; - if (end_w >= begin) - wbase = &mess_ram[offset]; - } - - - /* install the actual handlers */ - if (begin <= end_w) - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end_w, 0, 0, wh); - - /* did we 'go past the end?' */ - if (end_w < apple2_mem_config.memmap[i].end) - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, end_w + 1, apple2_mem_config.memmap[i].end, 0, 0, MWA8_NOP); - - /* set the memory bank */ - if (wbase) - { - memory_set_bankptr(wbank, wbase); - } - - /* record the current settings */ - apple2_current_meminfo[i].write_mem = meminfo.write_mem; - apple2_current_meminfo[i].write_handler = meminfo.write_handler; - } - bank += bank_disposition; - } -} - - - -/* ----------------------------------------------------------------------- - * Apple II memory map - * ----------------------------------------------------------------------- */ - -READ8_HANDLER(apple2_c0xx_r) -{ - static const read8_handler handlers[] = - { - apple2_c00x_r, - apple2_c01x_r, - apple2_c02x_r, - apple2_c03x_r, - NULL, - apple2_c05x_r, - apple2_c06x_r, - apple2_c07x_r - }; - UINT8 result = 0x00; - int slot; - - offset &= 0xFF; - - if (offset < 0x80) - { - if (handlers[offset / 0x10]) - result = handlers[offset / 0x10](offset % 0x10); - } - else - { - slot = (offset - 0x80) / 0x10; - if (a2_config->slots[slot] && a2_config->slots[slot]->read) - result = a2_config->slots[slot]->read(a2_slot_tokens[slot], offset % 0x10); - } - return result; -} - - - -WRITE8_HANDLER(apple2_c0xx_w) -{ - static const write8_handler handlers[] = - { - apple2_c00x_w, - apple2_c01x_w, - apple2_c02x_w, - apple2_c03x_w, - NULL, - apple2_c05x_w, - NULL, - apple2_c07x_w - }; - int slot; - - offset &= 0xFF; - - if (offset < 0x80) - { - if (handlers[offset / 0x10]) - handlers[offset / 0x10](offset % 0x10, data); - } - else - { - slot = (offset - 0x80) / 0x10; - if (a2_config->slots[slot] && a2_config->slots[slot]->write) - a2_config->slots[slot]->write(a2_slot_tokens[slot], offset % 0x10, data); - } -} - - - -static void apple2_mem_0000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_ALTZP) ? 0x010000 : 0x000000; - meminfo->write_mem = (a2 & VAR_ALTZP) ? 0x010000 : 0x000000; -} - -static void apple2_mem_0200(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010200 : 0x000200; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010200 : 0x000200; -} - -static void apple2_mem_0400(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (a2 & VAR_80STORE) - { - meminfo->read_mem = (a2 & VAR_PAGE2) ? 0x010400 : 0x000400; - meminfo->write_mem = (a2 & VAR_PAGE2) ? 0x010400 : 0x000400; - meminfo->write_handler = (a2 & VAR_PAGE2) ? apple2_auxram0400_w : apple2_mainram0400_w; - } - else - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010400 : 0x000400; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010400 : 0x000400; - meminfo->write_handler = (a2 & VAR_RAMWRT) ? apple2_auxram0400_w : apple2_mainram0400_w; - } -} - -static void apple2_mem_0800(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010800 : 0x000800; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010800 : 0x000800; -} - -static void apple2_mem_2000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if ((a2 & (VAR_80STORE|VAR_HIRES)) == (VAR_80STORE|VAR_HIRES)) - { - meminfo->read_mem = (a2 & VAR_PAGE2) ? 0x012000 : 0x002000; - meminfo->write_mem = (a2 & VAR_PAGE2) ? 0x012000 : 0x002000; - meminfo->write_handler = (a2 & VAR_PAGE2) ? apple2_auxram2000_w : apple2_mainram2000_w; - } - else - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x012000 : 0x002000; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x012000 : 0x002000; - meminfo->write_handler = (a2 & VAR_RAMWRT) ? apple2_auxram2000_w : apple2_mainram2000_w; - } -} - -static void apple2_mem_4000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x014000 : 0x004000; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x014000 : 0x004000; -} - -static void apple2_mem_C000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_handler = apple2_c0xx_r; - meminfo->write_handler = apple2_c0xx_w; -} - -static void apple2_mem_Cx00(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (a2 & VAR_INTCXROM) - { - meminfo->read_mem = (begin & 0x0FFF) | (a2 & VAR_ROMSWITCH ? 0x4000 : 0x0000) | APPLE2_MEM_ROM; - meminfo->write_mem = APPLE2_MEM_FLOATING; - } - else - { - meminfo->read_mem = ((begin & 0x0FFF) - 0x100) | APPLE2_MEM_SLOT; - meminfo->write_mem = ((begin & 0x0FFF) - 0x100) | APPLE2_MEM_SLOT; - } -} - -static void apple2_mem_C300(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if ((a2 & (VAR_INTCXROM|VAR_SLOTC3ROM)) != VAR_SLOTC3ROM) - { - meminfo->read_mem = (begin & 0x0FFF) | (a2 & VAR_ROMSWITCH ? 0x4000 : 0x0000) | APPLE2_MEM_ROM; - meminfo->write_mem = APPLE2_MEM_FLOATING; - } - else - { - meminfo->read_mem = ((begin & 0x0FFF) - 0x100) | APPLE2_MEM_SLOT; - meminfo->write_mem = ((begin & 0x0FFF) - 0x100) | APPLE2_MEM_SLOT; - } -} - -static void apple2_mem_C800(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (begin & 0x0FFF) | (a2 & VAR_ROMSWITCH ? 0x4000 : 0x0000) | APPLE2_MEM_ROM; - meminfo->write_mem = APPLE2_MEM_FLOATING; -} - -static void apple2_mem_CE00(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if ((a2 & VAR_ROMSWITCH) && !strcmp(Machine->gamedrv->name, "apple2cp")) - { - meminfo->read_mem = APPLE2_MEM_AUX; - meminfo->write_mem = APPLE2_MEM_AUX; - } - else - { - meminfo->read_mem = (begin & 0x0FFF) | (a2 & VAR_ROMSWITCH ? 0x4000 : 0x0000) | APPLE2_MEM_ROM; - meminfo->write_mem = APPLE2_MEM_FLOATING; - } -} - -static void apple2_mem_D000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (a2 & VAR_LCRAM) - { - if (a2 & VAR_LCRAM2) - meminfo->read_mem = (a2 & VAR_ALTZP) ? 0x01C000 : 0x00C000; - else - meminfo->read_mem = (a2 & VAR_ALTZP) ? 0x01D000 : 0x00D000; - } - else - { - meminfo->read_mem = (a2 & VAR_ROMSWITCH) ? 0x005000 : 0x001000; - meminfo->read_mem |= APPLE2_MEM_ROM; - } - - if (a2 & VAR_LCWRITE) - { - if (a2 & VAR_LCRAM2) - meminfo->write_mem = (a2 & VAR_ALTZP) ? 0x01C000 : 0x00C000; - else - meminfo->write_mem = (a2 & VAR_ALTZP) ? 0x01D000 : 0x00D000; - } - else - { - meminfo->write_mem = APPLE2_MEM_FLOATING; - } -} - -static void apple2_mem_E000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (a2 & VAR_LCRAM) - { - meminfo->read_mem = (a2 & VAR_ALTZP) ? 0x01E000 : 0x00E000; - } - else - { - meminfo->read_mem = (a2 & VAR_ROMSWITCH) ? 0x006000 : 0x002000; - meminfo->read_mem |= APPLE2_MEM_ROM; - } - - if (a2 & VAR_LCWRITE) - { - meminfo->write_mem = (a2 & VAR_ALTZP) ? 0x01E000 : 0x00E000; - } - else - { - meminfo->write_mem = APPLE2_MEM_FLOATING; - } -} - - - -static const apple2_memmap_entry apple2_memmap_entries[] = -{ - { 0x0000, 0x01FF, apple2_mem_0000, A2MEM_MONO }, - { 0x0200, 0x03FF, apple2_mem_0200, A2MEM_DUAL }, - { 0x0400, 0x07FF, apple2_mem_0400, A2MEM_DUAL }, - { 0x0800, 0x1FFF, apple2_mem_0800, A2MEM_DUAL }, - { 0x2000, 0x3FFF, apple2_mem_2000, A2MEM_DUAL }, - { 0x4000, 0xBFFF, apple2_mem_4000, A2MEM_DUAL }, - { 0xC000, 0xC0FF, apple2_mem_C000, A2MEM_IO }, - { 0xC100, 0xC2FF, apple2_mem_Cx00, A2MEM_MONO }, - { 0xC300, 0xC3FF, apple2_mem_C300, A2MEM_MONO }, - { 0xC400, 0xC7FF, apple2_mem_Cx00, A2MEM_MONO }, - { 0xC800, 0xCDFF, apple2_mem_C800, A2MEM_MONO }, - { 0xCE00, 0xCFFF, apple2_mem_CE00, A2MEM_MONO }, - { 0xD000, 0xDFFF, apple2_mem_D000, A2MEM_DUAL }, - { 0xE000, 0xFFFF, apple2_mem_E000, A2MEM_DUAL }, - { 0 } -}; - - - -void apple2_setvar(UINT32 val, UINT32 mask) -{ - LOG(("apple2_setvar(): val=0x%06x mask=0x%06x pc=0x%04x\n", val, mask, (unsigned int) cpunum_get_reg(0, REG_PC))); - - assert((val & mask) == val); - - /* apply mask and set */ - val &= a2_mask; - val |= a2_set; - - /* change the softswitch */ - a2 &= ~mask; - a2 |= val; - - apple2_update_memory(); -} - - - -/* ----------------------------------------------------------------------- - * Floating bus code - * - * preliminary floating bus video scanner code - look for comments - * with FIX: - * ----------------------------------------------------------------------- */ - -UINT8 apple2_getfloatingbusvalue(void) -{ - enum - { - // scanner types - kScannerNone = 0, kScannerApple2, kScannerApple2e, - - // scanner constants - kHBurstClock = 53, // clock when Color Burst starts - kHBurstClocks = 4, // clocks per Color Burst duration - kHClock0State = 0x18, // H[543210] = 011000 - kHClocks = 65, // clocks per horizontal scan (including HBL) - kHPEClock = 40, // clock when HPE (horizontal preset enable) goes low - kHPresetClock = 41, // clock when H state presets - kHSyncClock = 49, // clock when HSync starts - kHSyncClocks = 4, // clocks per HSync duration - kNTSCScanLines = 262, // total scan lines including VBL (NTSC) - kNTSCVSyncLine = 224, // line when VSync starts (NTSC) - kPALScanLines = 312, // total scan lines including VBL (PAL) - kPALVSyncLine = 264, // line when VSync starts (PAL) - kVLine0State = 0x100, // V[543210CBA] = 100000000 - kVPresetLine = 256, // line when V state presets - kVSyncLines = 4, // lines per VSync duration - kClocksPerVSync = kHClocks * kNTSCScanLines // FIX: NTSC only? - }; - - // vars - // - int i, Hires, Mixed, Page2, _80Store, ScanLines, VSyncLine, ScanCycles, - h_clock, h_state, h_0, h_1, h_2, h_3, h_4, h_5, - v_line, v_state, v_A, v_B, v_C, v_0, v_1, v_2, v_3, v_4, v_5, - _hires, addend0, addend1, addend2, sum, address; - - // video scanner data - // - i = activecpu_gettotalcycles() % kClocksPerVSync; // cycles into this VSync - - // machine state switches - // - Hires = (a2 & VAR_HIRES) ? 1 : 0; - Mixed = (a2 & VAR_MIXED) ? 1 : 0; - Page2 = (a2 & VAR_PAGE2) ? 1 : 0; - _80Store = (a2 & VAR_80STORE) ? 1 : 0; - - // calculate video parameters according to display standard - // - ScanLines = 1 ? kNTSCScanLines : kPALScanLines; // FIX: NTSC only? - VSyncLine = 1 ? kNTSCVSyncLine : kPALVSyncLine; // FIX: NTSC only? - ScanCycles = ScanLines * kHClocks; - - // calculate horizontal scanning state - // - h_clock = (i + kHPEClock) % kHClocks; // which horizontal scanning clock - h_state = kHClock0State + h_clock; // H state bits - if (h_clock >= kHPresetClock) // check for horizontal preset - { - h_state -= 1; // correct for state preset (two 0 states) - } - h_0 = (h_state >> 0) & 1; // get horizontal state bits - h_1 = (h_state >> 1) & 1; - h_2 = (h_state >> 2) & 1; - h_3 = (h_state >> 3) & 1; - h_4 = (h_state >> 4) & 1; - h_5 = (h_state >> 5) & 1; - - // calculate vertical scanning state - // - v_line = i / kHClocks; // which vertical scanning line - v_state = kVLine0State + v_line; // V state bits - if ((v_line >= kVPresetLine)) // check for previous vertical state preset - { - v_state -= ScanLines; // compensate for preset - } - v_A = (v_state >> 0) & 1; // get vertical state bits - v_B = (v_state >> 1) & 1; - v_C = (v_state >> 2) & 1; - v_0 = (v_state >> 3) & 1; - v_1 = (v_state >> 4) & 1; - v_2 = (v_state >> 5) & 1; - v_3 = (v_state >> 6) & 1; - v_4 = (v_state >> 7) & 1; - v_5 = (v_state >> 8) & 1; - - // calculate scanning memory address - // - _hires = Hires; - if (Hires && Mixed && (v_4 & v_2)) - { - _hires = 0; // (address is in text memory) - } - - addend0 = 0x68; // 1 1 0 1 - addend1 = (h_5 << 5) | (h_4 << 4) | (h_3 << 3); - addend2 = (v_4 << 6) | (v_3 << 5) | (v_4 << 4) | (v_3 << 3); - sum = (addend0 + addend1 + addend2) & (0x0F << 3); - - address = 0; - address |= h_0 << 0; // a0 - address |= h_1 << 1; // a1 - address |= h_2 << 2; // a2 - address |= sum; // a3 - aa6 - address |= v_0 << 7; // a7 - address |= v_1 << 8; // a8 - address |= v_2 << 9; // a9 - address |= ((_hires) ? v_A : (1 ^ (Page2 & (1 ^ _80Store)))) << 10; // a10 - address |= ((_hires) ? v_B : (Page2 & (1 ^ _80Store))) << 11; // a11 - if (_hires) // hires? - { - // Y: insert hires only address bits - // - address |= v_C << 12; // a12 - address |= (1 ^ (Page2 & (1 ^ _80Store))) << 13; // a13 - address |= (Page2 & (1 ^ _80Store)) << 14; // a14 - } - else - { - // N: text, so no higher address bits unless Apple ][, not Apple //e - // - if ((1) && // Apple ][? // FIX: check for Apple ][? (FB is most useful in old games) - (kHPEClock <= h_clock) && // Y: HBL? - (h_clock <= (kHClocks - 1))) - { - address |= 1 << 12; // Y: a12 (add $1000 to address!) - } - } - - // update VBL' state - // - if (v_4 & v_3) // VBL? - { - //CMemory::mState &= ~CMemory::kVBLBar; // Y: VBL' is false // FIX: MESS? - } - else - { - //CMemory::mState |= CMemory::kVBLBar; // N: VBL' is true // FIX: MESS? - } - - return mess_ram[address % mess_ram_size]; // FIX: this seems to work, but is it right!? -} - - - -/* ----------------------------------------------------------------------- - * Machine reset - * ----------------------------------------------------------------------- */ - -static void apple2_reset(running_machine *machine) -{ - int need_intcxrom, i; - - need_intcxrom = !strcmp(Machine->gamedrv->name, "apple2c") - || !strcmp(Machine->gamedrv->name, "apple2c0") - || !strcmp(Machine->gamedrv->name, "apple2c3") - || !strcmp(Machine->gamedrv->name, "apple2cp"); - apple2_setvar(need_intcxrom ? VAR_INTCXROM : 0, ~0); - - a2_speaker_state = 0; - - /* reset slots */ - for (i = 0; i < APPLE2_SLOT_COUNT; i++) - { - if (a2_config->slots[i]) - { - if (a2_config->slots[i]->reset) - a2_config->slots[i]->reset(a2_slot_tokens[i]); - } - } - - joystick_x1_time = joystick_y1_time = 0; - joystick_x2_time = joystick_y2_time = 0; -} - - - -/* ----------------------------------------------------------------------- - * Apple II interrupt; used to force partial updates - * ----------------------------------------------------------------------- */ - -void apple2_interrupt(void) -{ - int irq_freq = 1; - int scanline; - - profiler_mark(PROFILER_A2INT); - - scanline = cpu_getscanline(); - - if (scanline > 190) - { - irq_freq --; - if (irq_freq < 0) - irq_freq = 1; - - if (irq_freq) - cpunum_set_input_line(0, M6502_IRQ_LINE, PULSE_LINE); - } - - video_screen_update_partial(0, scanline); - - profiler_mark(PROFILER_END); -} - - - -/*************************************************************************** - apple2_mainram0400_w - apple2_mainram2000_w - apple2_auxram0400_w - apple2_auxram2000_w -***************************************************************************/ - -static WRITE8_HANDLER ( apple2_mainram0400_w ) -{ - offset += 0x400; - mess_ram[offset] = data; - apple2_video_touch(offset); -} - -static WRITE8_HANDLER ( apple2_mainram2000_w ) -{ - offset += 0x2000; - mess_ram[offset] = data; - apple2_video_touch(offset); -} - -static WRITE8_HANDLER ( apple2_auxram0400_w ) -{ - offset += 0x10400; - mess_ram[offset] = data; - apple2_video_touch(offset); -} - -static WRITE8_HANDLER ( apple2_auxram2000_w ) -{ - offset += 0x12000; - mess_ram[offset] = data; - apple2_video_touch(offset); -} - - - -/*************************************************************************** - apple2_c00x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c00x_r ) -{ - UINT8 result; - - /* Read the keyboard data and strobe */ - profiler_mark(PROFILER_C00X); - result = AY3600_keydata_strobe_r(); - profiler_mark(PROFILER_END); - - return result; -} - - - -/*************************************************************************** - apple2_c00x_w - - C000 80STOREOFF - C001 80STOREON - use 80-column memory mapping - C002 RAMRDOFF - C003 RAMRDON - read from aux 48k - C004 RAMWRTOFF - C005 RAMWRTON - write to aux 48k - C006 INTCXROMOFF - C007 INTCXROMON - C008 ALTZPOFF - C009 ALTZPON - use aux ZP, stack and language card area - C00A SLOTC3ROMOFF - C00B SLOTC3ROMON - use external slot 3 ROM - C00C 80COLOFF - C00D 80COLON - use 80-column display mode - C00E ALTCHARSETOFF - C00F ALTCHARSETON - use alt character set -***************************************************************************/ - -WRITE8_HANDLER ( apple2_c00x_w ) -{ - UINT32 mask; - mask = 1 << (offset / 2); - apple2_setvar((offset & 1) ? mask : 0, mask); -} - - - -/*************************************************************************** - apple2_c01x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c01x_r ) -{ - UINT8 result = apple2_getfloatingbusvalue() & 0x7F; - - profiler_mark(PROFILER_C01X); - - LOG(("a2 softswitch_r: %04x\n", offset + 0xc010)); - switch (offset) - { - case 0x00: result |= AY3600_anykey_clearstrobe_r(); break; - case 0x01: result |= (a2 & VAR_LCRAM2) ? 0x80 : 0x00; break; - case 0x02: result |= (a2 & VAR_LCRAM) ? 0x80 : 0x00; break; - case 0x03: result |= (a2 & VAR_RAMRD) ? 0x80 : 0x00; break; - case 0x04: result |= (a2 & VAR_RAMWRT) ? 0x80 : 0x00; break; - case 0x05: result |= (a2 & VAR_INTCXROM) ? 0x80 : 0x00; break; - case 0x06: result |= (a2 & VAR_ALTZP) ? 0x80 : 0x00; break; - case 0x07: result |= (a2 & VAR_SLOTC3ROM) ? 0x80 : 0x00; break; - case 0x08: result |= (a2 & VAR_80STORE) ? 0x80 : 0x00; break; - case 0x09: result |= !cpu_getvblank() ? 0x80 : 0x00; break; - case 0x0A: result |= (a2 & VAR_TEXT) ? 0x80 : 0x00; break; - case 0x0B: result |= (a2 & VAR_MIXED) ? 0x80 : 0x00; break; - case 0x0C: result |= (a2 & VAR_PAGE2) ? 0x80 : 0x00; break; - case 0x0D: result |= (a2 & VAR_HIRES) ? 0x80 : 0x00; break; - case 0x0E: result |= (a2 & VAR_ALTCHARSET) ? 0x80 : 0x00; break; - case 0x0F: result |= (a2 & VAR_80COL) ? 0x80 : 0x00; break; - } - - profiler_mark(PROFILER_END); - return result; -} - - - -/*************************************************************************** - apple2_c01x_w -***************************************************************************/ - -WRITE8_HANDLER( apple2_c01x_w ) -{ - /* Clear the keyboard strobe - ignore the returned results */ - profiler_mark(PROFILER_C01X); - AY3600_anykey_clearstrobe_r(); - profiler_mark(PROFILER_END); -} - - - -/*************************************************************************** - apple2_c02x_r -***************************************************************************/ - -READ8_HANDLER( apple2_c02x_r ) -{ - apple2_c02x_w(offset, 0); - return apple2_getfloatingbusvalue(); -} - - - -/*************************************************************************** - apple2_c02x_w -***************************************************************************/ - -WRITE8_HANDLER( apple2_c02x_w ) -{ - switch(offset) - { - case 0x08: - apple2_setvar((a2 & VAR_ROMSWITCH) ^ VAR_ROMSWITCH, VAR_ROMSWITCH); - break; - } -} - - - -/*************************************************************************** - apple2_c03x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c03x_r ) -{ - if (!offset) - { - if (a2_speaker_state == 0xFF) - a2_speaker_state = 0; - else - a2_speaker_state = 0xFF; - DAC_data_w(0, a2_speaker_state); - } - return apple2_getfloatingbusvalue(); -} - - - -/*************************************************************************** - apple2_c03x_w -***************************************************************************/ - -WRITE8_HANDLER ( apple2_c03x_w ) -{ - apple2_c03x_r(offset); -} - - - -/*************************************************************************** - apple2_c05x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c05x_r ) -{ - UINT32 mask; - - /* ANx has reverse SET logic */ - if (offset >= 8) - offset ^= 1; - - mask = 0x100 << (offset / 2); - apple2_setvar((offset & 1) ? mask : 0, mask); - return apple2_getfloatingbusvalue(); -} - - - -/*************************************************************************** - apple2_c05x_w -***************************************************************************/ - -WRITE8_HANDLER ( apple2_c05x_w ) -{ - apple2_c05x_r(offset); -} - - - -/*************************************************************************** - apple2_c06x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c06x_r ) -{ - int result = 0; - switch (offset & 0x0F) - { - case 0x01: - /* Open-Apple/Joystick button 0 */ - result = pressed_specialkey(SPECIALKEY_BUTTON0); - break; - case 0x02: - /* Closed-Apple/Joystick button 1 */ - result = pressed_specialkey(SPECIALKEY_BUTTON1); - break; - case 0x03: - /* Joystick button 2. Later revision motherboards connected this to SHIFT also */ - result = pressed_specialkey(SPECIALKEY_BUTTON2); - break; - case 0x04: - /* X Joystick 1 axis */ - result = timer_get_time() < joystick_x1_time; - break; - case 0x05: - /* Y Joystick 1 axis */ - result = timer_get_time() < joystick_y1_time; - break; - case 0x06: - /* X Joystick 2 axis */ - result = timer_get_time() < joystick_x2_time; - break; - case 0x07: - /* Y Joystick 2 axis */ - result = timer_get_time() < joystick_y2_time; - break; - default: - /* c060 Empty Cassette head read - * and any other non joystick c06 port returns this according to applewin - */ - return apple2_getfloatingbusvalue(); - break; - } - return result ? 0x80 : 0x00; -} - - - -/*************************************************************************** - apple2_c07x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c07x_r ) -{ - double x_calibration = TIME_IN_USEC(12.0); - double y_calibration = TIME_IN_USEC(13.0); - - if (offset == 0) - { - joystick_x1_time = timer_get_time() + x_calibration * readinputportbytag("joystick_1_x"); - joystick_y1_time = timer_get_time() + y_calibration * readinputportbytag("joystick_1_y"); - joystick_x2_time = timer_get_time() + x_calibration * readinputportbytag("joystick_2_x"); - joystick_y2_time = timer_get_time() + y_calibration * readinputportbytag("joystick_2_y"); - } - return 0; -} - - - -/*************************************************************************** - apple2_c07x_w -***************************************************************************/ - -WRITE8_HANDLER ( apple2_c07x_w ) -{ - apple2_c07x_r(offset); -} - - - -/*************************************************************************** - apple2_c08x_r -***************************************************************************/ - -READ8_HANDLER ( apple2_c08x_r ) -{ - UINT32 val, mask; - - profiler_mark(PROFILER_C08X); - LOG(("language card bankswitch read, offset: $c08%0x\n", offset)); - - mask = VAR_LCWRITE | VAR_LCRAM | VAR_LCRAM2; - val = 0; - - if (offset & 0x01) - val |= VAR_LCWRITE; - - switch(offset & 0x03) - { - case 0x03: - case 0x00: - val |= VAR_LCRAM; - break; - } - - if ((offset & 0x08) == 0) - val |= VAR_LCRAM2; - - apple2_setvar(val, mask); - - profiler_mark(PROFILER_END); - return 0; -} - - - -/*************************************************************************** - apple2_c08x_w -***************************************************************************/ - -WRITE8_HANDLER ( apple2_c08x_w ) -{ - apple2_c08x_r(offset); -} - - - -/* ----------------------------------------------------------------------- - * Language Card - * ----------------------------------------------------------------------- */ - -static UINT8 apple2_langcard_read(void *token, offs_t offset) -{ - return apple2_c08x_r(offset); - -} - - - -static void apple2_langcard_write(void *token, offs_t offset, UINT8 data) -{ - apple2_c08x_w(offset, data); -} - - - -const apple2_slotdevice apple2_slot_langcard = -{ - "langcard", - "Language Card", - NULL, - NULL, - apple2_langcard_read, - apple2_langcard_write -}; - - - -/* ----------------------------------------------------------------------- - * Mockingboard - * ----------------------------------------------------------------------- */ - -static void apple2_mockingboard_reset(void *token) -{ - /* TODO: fix this */ - /* What follows is pure filth. It abuses the core like an angry pimp on a bad hair day. */ - - /* Since we know that the Mockingboard has no code ROM, we'll copy into the slot ROM space - an image of the onboard ROM so that when an IRQ bankswitches to the onboard ROM, we read - the proper stuff. Without this, it will choke and try to use the memory handler above, and - fail miserably. That should really be fixed. I beg you -- if you are reading this comment, - fix this :) */ -// memcpy (apple2_slotrom(slot), &apple_rom[0x0000 + (slot * 0x100)], 0x100); -} - - - -static UINT8 apple2_mockingboard_read(void *token, offs_t offset) -{ - static int flip1 = 0, flip2 = 0; - - switch (offset) - { - /* This is used to ID the board */ - case 0x04: - flip1 ^= 0x08; - return flip1; - break; - case 0x84: - flip2 ^= 0x08; - return flip2; - break; - default: - LOG(("mockingboard_r unmapped, offset: %02x, pc: %04x\n", offset, (unsigned) cpunum_get_reg(0, REG_PC))); - break; - } - return 0x00; -} - - - -static void apple2_mockingboard_write(void *token, offs_t offset, UINT8 data) -{ - static int latch0, latch1; - - LOG(("mockingboard_w, $%02x:%02x\n", offset, data)); - - /* There is a 6522 in here which interfaces to the 8910s */ - switch (offset) - { - case 0x00: /* ORB1 */ - switch (data) - { - case 0x00: /* reset */ - sndti_reset(SOUND_AY8910, 0); - break; - case 0x04: /* make inactive */ - break; - case 0x06: /* write data */ - AY8910_write_port_0_w (0, latch0); - break; - case 0x07: /* set register */ - AY8910_control_port_0_w (0, latch0); - break; - } - break; - - case 0x01: /* ORA1 */ - latch0 = data; - break; - - case 0x02: /* DDRB1 */ - case 0x03: /* DDRA1 */ - break; - - case 0x80: /* ORB2 */ - switch (data) - { - case 0x00: /* reset */ - sndti_reset(SOUND_AY8910, 1); - break; - case 0x04: /* make inactive */ - break; - case 0x06: /* write data */ - AY8910_write_port_1_w (0, latch1); - break; - case 0x07: /* set register */ - AY8910_control_port_1_w (0, latch1); - break; - } - break; - - case 0x81: /* ORA2 */ - latch1 = data; - break; - - case 0x82: /* DDRB2 */ - case 0x83: /* DDRA2 */ - break; - } -} - - - -const apple2_slotdevice apple2_slot_mockingboard = -{ - "mockingboard", - "Mockingboard", - NULL, - apple2_mockingboard_reset, - apple2_mockingboard_read, - apple2_mockingboard_write -}; - - - -/* ----------------------------------------------------------------------- - * Floppy disk controller - * ----------------------------------------------------------------------- */ - -static int apple2_fdc_has_35; -static int apple2_fdc_has_525; -static int apple2_fdc_diskreg; - -static void apple2_fdc_set_lines(UINT8 lines) -{ - if (apple2_fdc_diskreg & 0x40) - { - if (apple2_fdc_has_35) - { - /* slot 5: 3.5" disks */ - sony_set_lines(lines); - } - } - else - { - if (apple2_fdc_has_525) - { - /* slot 6: 5.25" disks */ - apple525_set_lines(lines); - } - } -} - - - -static void apple2_fdc_set_enable_lines(int enable_mask) -{ - int slot5_enable_mask = 0; - int slot6_enable_mask = 0; - - if (apple2_fdc_diskreg & 0x40) - slot5_enable_mask = enable_mask; - else - slot6_enable_mask = enable_mask; - - if (apple2_fdc_has_35) - { - /* set the 3.5" enable lines */ - sony_set_enable_lines(slot5_enable_mask); - } - - if (apple2_fdc_has_525) - { - /* set the 5.25" enable lines */ - apple525_set_enable_lines(slot6_enable_mask); - } -} - - - -static UINT8 apple2_fdc_read_data(void) -{ - UINT8 result = 0x00; - - if (apple2_fdc_diskreg & 0x40) - { - if (apple2_fdc_has_35) - { - /* slot 5: 3.5" disks */ - result = sony_read_data(); - } - } - else - { - if (apple2_fdc_has_525) - { - /* slot 6: 5.25" disks */ - result = apple525_read_data(); - } - } - return result; -} - - - -static void apple2_fdc_write_data(UINT8 data) -{ - if (apple2_fdc_diskreg & 0x40) - { - if (apple2_fdc_has_35) - { - /* slot 5: 3.5" disks */ - sony_write_data(data); - } - } - else - { - if (apple2_fdc_has_525) - { - /* slot 6: 5.25" disks */ - apple525_write_data(data); - } - } -} - - - -static int apple2_fdc_read_status(void) -{ - int result = 0; - - if (apple2_fdc_diskreg & 0x40) - { - if (apple2_fdc_has_35) - { - /* slot 5: 3.5" disks */ - result = sony_read_status(); - } - } - else - { - if (apple2_fdc_has_525) - { - /* slot 6: 5.25" disks */ - result = apple525_read_status(); - } - } - return result; -} - - - -void apple2_iwm_setdiskreg(UINT8 data) -{ - apple2_fdc_diskreg = data & 0xC0; - if (apple2_fdc_has_35) - sony_set_sel_line(apple2_fdc_diskreg & 0x80); -} - - - -UINT8 apple2_iwm_getdiskreg(void) -{ - return apple2_fdc_diskreg; -} - - - -static void *apple2_fdc_init(int slot, applefdc_t fdc_type) -{ - const struct IODevice *dev; - struct applefdc_interface intf; - - apple2_fdc_has_35 = FALSE; - apple2_fdc_has_525 = FALSE; - apple2_fdc_diskreg = 0x00; - - /* setup interface */ - memset(&intf, 0, sizeof(intf)); - intf.type = fdc_type; - intf.set_lines = apple2_fdc_set_lines; - intf.set_enable_lines = apple2_fdc_set_enable_lines; - intf.read_status = apple2_fdc_read_status; - intf.read_data = apple2_fdc_read_data; - intf.write_data = apple2_fdc_write_data; - - for (dev = Machine->devices; dev->type < IO_COUNT; dev++) - { - if (!strcmp(dev->tag, "sonydriv")) - apple2_fdc_has_35 = !dev->not_working; - else if (!strcmp(dev->tag, "apple525driv")) - apple2_fdc_has_525 = !dev->not_working; - } - - applefdc_init(&intf); - return (void *) ~0; -} - - - -static void *apple2_fdc_apple2_init(int slot) -{ - return apple2_fdc_init(slot, APPLEFDC_APPLE2); -} - - - -static void *apple2_fdc_iwm_init(int slot) -{ - return apple2_fdc_init(slot, APPLEFDC_IWM); -} - - - -static UINT8 apple2_fdc_read(void *token, offs_t offset) -{ - return applefdc_r(offset); -} - - - -static void apple2_fdc_write(void *token, offs_t offset, UINT8 data) -{ - applefdc_w(offset, data); -} - - - -const apple2_slotdevice apple2_slot_floppy525 = -{ - "floppy525", - "5.25\" Floppy Drive", - apple2_fdc_apple2_init, - NULL, - apple2_fdc_read, - apple2_fdc_write -}; - - - -const apple2_slotdevice apple2_slot_iwm = -{ - "iwm", - "IWM", - apple2_fdc_iwm_init, - NULL, - apple2_fdc_read, - apple2_fdc_write -}; - - - -/* ----------------------------------------------------------------------- - * Driver init - * ----------------------------------------------------------------------- */ - -void apple2_init_common(running_machine *machine, const apple2_config *config) -{ - int i; - void *token; - - a2 = 0; - - AY3600_init(); - add_reset_callback(machine, apple2_reset); - - /* copy configuration */ - a2_config = auto_malloc(sizeof(*config)); - memcpy(a2_config, config, sizeof(*config)); - - /* state save registers */ - state_save_register_global(a2); - state_save_register_func_postload(apple2_update_memory); - - /* apple2 behaves much better when the default memory is zero */ - memset(mess_ram, 0, mess_ram_size); - - /* initialize slots */ - a2_slot_tokens = auto_malloc(sizeof(*a2_slot_tokens) * APPLE2_SLOT_COUNT); - memset(a2_slot_tokens, 0, sizeof(*a2_slot_tokens) * APPLE2_SLOT_COUNT); - for (i = 0; i < APPLE2_SLOT_COUNT; i++) - { - if (a2_config->slots[i]) - { - if (a2_config->slots[i]->init) - token = a2_config->slots[i]->init(i); - else - token = (void *) ~0; - - a2_slot_tokens[i] = token; - } - } - - /* --------------------------------------------- * - * set up the softswitch mask/set * - * --------------------------------------------- */ - a2_mask = ~0; - a2_set = 0; - - /* disable VAR_ROMSWITCH if the ROM is only 16k */ - if (memory_region_length(REGION_CPU1) < 0x8000) - a2_mask &= ~VAR_ROMSWITCH; - - if (mess_ram_size <= 64*1024) - a2_mask &= ~(VAR_RAMRD | VAR_RAMWRT | VAR_80STORE | VAR_ALTZP | VAR_80COL); -} - - - -MACHINE_START( apple2 ) -{ - apple2_memmap_config mem_cfg; - apple2_config a2_cfg; - void *apple2cp_ce00_ram = NULL; - - memset(&a2_cfg, 0, sizeof(a2_cfg)); - - /* specify slots */ - if (!strcmp(Machine->gamedrv->name, "apple2c0") || - !strcmp(Machine->gamedrv->name, "apple2c3") || - !strcmp(Machine->gamedrv->name, "apple2cp")) - { - a2_cfg.slots[0] = &apple2_slot_langcard; - a2_cfg.slots[4] = &apple2_slot_mockingboard; - a2_cfg.slots[6] = &apple2_slot_iwm; - } - else - { - a2_cfg.slots[0] = &apple2_slot_langcard; - a2_cfg.slots[4] = &apple2_slot_mockingboard; - a2_cfg.slots[6] = &apple2_slot_floppy525; - } - - /* there appears to be some hidden RAM that is swapped in on the Apple - * IIc plus; I have not found any official documentation but the BIOS - * clearly uses this area as writeable memory */ - if (!strcmp(Machine->gamedrv->name, "apple2cp")) - apple2cp_ce00_ram = auto_malloc(0x200); - - apple2_init_common(machine, &a2_cfg); - - /* setup memory */ - memset(&mem_cfg, 0, sizeof(mem_cfg)); - mem_cfg.first_bank = 1; - mem_cfg.memmap = apple2_memmap_entries; - mem_cfg.auxmem = apple2cp_ce00_ram; - apple2_setup_memory(&mem_cfg); - - /* perform initial reset */ - apple2_reset(machine); - return 0; -} - diff --git a/mess/machine/apple2gs.c b/mess/machine/apple2gs.c deleted file mode 100644 index 98fd575a0..000000000 --- a/mess/machine/apple2gs.c +++ /dev/null @@ -1,1717 +0,0 @@ -/********************************************************************* - - apple2gs.c - - Apple IIgs code - - - Apple IIgs specific softswitches: - - C019 - RDVBLBAR - bits 7 - set during vblank (when at scanline 192 or higher) - - C022 - TBCOLOR - bits 7-4 - text foreground color - bits 3-0 - text background color - - C023 - VGCINT - bit 7 - set for interrupt generated by VGC - bit 6 - set during one second interrupt - bit 5 - set during scanline interrupt - bit 4 - set during external interrupt - bit 3 - ??? - bit 2 - set for interrupt every second - bit 1 - set for scanline interrupt - bit 0 - set for external interrupt - - C025 - KEYMODREG - bit 7 - option key pressed - bit 6 - command key presssed - bit 5 - modified latch - bit 4 - keypad key pressed - bit 3 - repeating - bit 2 - caps lock latched - bit 1 - control key pressed - bit 0 - shift key pressed - - C027 - KMSTATUS - bit 7 - set if mouse register full - bit 6 - mouse interupt enable flag - bit 5 - set if data register full - bit 4 - data interrupt enabled - bit 3 - set if key data full - bit 2 - key data interurpt enabled - bit 1 - clear if horizontal mouse data, set if vertical - bit 0 - command register full - - C02D - SLTROMSEL - - C031 - DISKREG - bit 7 - set to select head on 3.5" drive - bit 6 - set to enable 3.5" drive, clear to enable 5.25" drive - - C035 - SHADOW - bit 7 - ??? - bit 6 - set to inhibit I/O and LC operations ($C000-$FFFF) - bit 5 - ??? - bit 4 - set to inhibit shadowing aux hires page - bit 3 - set to inhibit shadowing super hires video - bit 2 - set to inhibit shadowing hires page 2 - bit 1 - set to inhibit shadowing hires page 2 - bit 0 - set to inhibit shadowing text pages - - C036 - CYAREG - bit 7 - clear for slow speed, set for hi speed - bit 6 - ??? - bit 5 - ??? - bit 4 - shadow in all RAM banks - bit 3 - slot 7 motor on - bit 2 - slot 6 motor on - bit 1 - slot 5 motor on - bit 0 - slot 4 motor on - - C041 - INTEN - bit 4 - set to enable quarter second interrupts - bit 3 - set to enable VBL interrupts - bit 2 - set to enable Mega II mouse switch interrupts - bit 1 - set to enable Mega II mouse movement interrupts - bit 0 - set to enable Mega II mouse mouse operation - - C046 - DIAGTYPE/INTFLAG - bit 7 - set if mouse button currently down - bit 6 - set if mouse button down on last read - bit 5 - set for AN3 - bit 4 - set if currently in quarter second interrupt - bit 3 - set if currently in VBL interrupt - bit 2 - set if currently in Mega II mouse switch interrupt - bit 1 - set if currently in Mega II mouse movement interrupt - bit 0 - set if system IRQ line asserted - - C047 - CLRVBLINT - - C068 - STATEREG - bit 7 - ALTZP status - bit 6 - PAGE2 status - bit 5 - RAMRD status - bit 4 - RAMWRT status - bit 3 - !LCRAM status (inverted) - bit 2 - LCRAM2 status - bit 1 - ROMBANK status (unimplemented) - bit 0 - INTCXROM status - -*********************************************************************/ - -#include -#include "driver.h" - -#include "includes/apple2gs.h" -#include "includes/apple2.h" -#include "machine/ay3600.h" -#include "machine/applefdc.h" -#include "devices/sonydriv.h" -#include "machine/8530scc.h" -#include "devices/flopdrv.h" -#include "cpu/g65816/g65816.h" -#include "sound/es5503.h" - -#define LOG_C0XX 0 -#define LOG_ADB 0 -#define LOG_IRQ 0 - -#define IRQ_KBD_SRQ 0x01 -#define IRQ_ADB_DATA 0x02 -#define IRQ_ADB_MOUSE 0x04 -#define IRQ_VGC_SCANLINE 0x08 -#define IRQ_VGC_SECOND 0x10 -#define IRQ_INTEN_QSECOND 0x20 -#define IRQ_INTEN_VBL 0x40 -#define IRQ_DOC 0x80 - -UINT8 *apple2gs_slowmem; -UINT8 apple2gs_newvideo; - -static UINT8 apple2gs_vgcint; -static UINT8 apple2gs_langsel; -static UINT8 apple2gs_sltromsel; -static UINT8 apple2gs_cyareg; -static UINT8 apple2gs_inten; -static UINT8 apple2gs_intflag; -static UINT8 apple2gs_shadow; -static UINT8 apple2gs_pending_irqs; -static UINT8 apple2gs_mouse_x; -static UINT8 apple2gs_mouse_y; -static INT8 apple2gs_mouse_dx; -static INT8 apple2gs_mouse_dy; -static mess_image *apple2gs_cur_slot6_image; - - -/* ----------------------------------------------------------------------- - * Apple IIgs clock - * ----------------------------------------------------------------------- */ - -typedef enum -{ - CLOCKMODE_IDLE, - CLOCKMODE_TIME, - CLOCKMODE_INTERNALREGS, - CLOCKMODE_BRAM1, - CLOCKMODE_BRAM2 -} apple2gs_clock_mode; - -static UINT8 clock_data; -static UINT8 clock_control; -static UINT8 clock_read; -static UINT8 clock_reg1; -static apple2gs_clock_mode clock_mode; -static UINT32 clock_curtime; /* number of seconds since 1-Jan-1904 */ -static seconds_t clock_curtime_interval; /* second index at which clock_curtime is valid */ -static UINT8 clock_bram[256]; - - -static void process_clock(void) -{ - UINT8 operation; - seconds_t current_interval; - - /* update clock_curtime */ - current_interval = mame_timer_get_time().seconds; - clock_curtime += current_interval - clock_curtime_interval; - clock_curtime_interval = current_interval; - - switch(clock_mode) - { - case CLOCKMODE_IDLE: - clock_read = (clock_data >> 7); - clock_reg1 = (clock_data >> 2) & 0x03; - operation = (clock_data >> 4) & 0x07; - - if ((clock_data & 0x40) == 0x00) - { - switch(operation) - { - case 0x00: - /* read/write seconds register */ - clock_mode = CLOCKMODE_TIME; - break; - - case 0x03: - /* internal registers */ - if (clock_reg1 & 0x02) - { - clock_mode = CLOCKMODE_BRAM2; - clock_reg1 = (clock_data & 0x07) << 5; - } - else - { - clock_mode = CLOCKMODE_INTERNALREGS; - } - break; - - default: - //fatalerror("NYI"); - break; - } - } - break; - - case CLOCKMODE_BRAM1: - if (clock_read) - clock_data = clock_bram[clock_reg1]; - else - clock_bram[clock_reg1] = clock_data; - clock_mode = CLOCKMODE_IDLE; - break; - - case CLOCKMODE_BRAM2: - clock_reg1 |= (clock_data >> 2) & 0x1F; - clock_mode = CLOCKMODE_BRAM1; - break; - - case CLOCKMODE_INTERNALREGS: - switch (clock_reg1) - { - case 0x00: - /* test register */ - break; - - case 0x01: - /* write protect register */ - break; - } - clock_mode = CLOCKMODE_IDLE; - break; - - case CLOCKMODE_TIME: - if (clock_data & 0x40) - { - clock_data = clock_curtime >> (clock_reg1 * 8); - } - else - { - clock_curtime &= ~(0xFF << (clock_reg1 * 8)); - clock_curtime |= clock_data << (clock_reg1 * 8); - } - clock_mode = CLOCKMODE_IDLE; - break; - - default: - //fatalerror("NYI"); - break; - } -} - - - -NVRAM_HANDLER( apple2gs ) -{ - if (read_or_write) - { - mame_fwrite(file, clock_bram, sizeof(clock_bram)); - } - else if (file) - { - mame_fread(file, clock_bram, sizeof(clock_bram)); - } - else - { - memset(clock_bram, 0x00, sizeof(clock_bram)); - } -} - - - -/* ----------------------------------------------------------------------- - * Interrupts - * ----------------------------------------------------------------------- */ - -static const char *apple2gs_irq_name(UINT8 irq_mask) -{ - switch(irq_mask) - { - case IRQ_KBD_SRQ: return "IRQ_KBD_SRQ"; - case IRQ_ADB_DATA: return "IRQ_ADB_DATA"; - case IRQ_ADB_MOUSE: return "IRQ_ADB_MOUSE"; - case IRQ_VGC_SCANLINE: return "IRQ_VGC_SCANLINE"; - case IRQ_VGC_SECOND: return "IRQ_VGC_SECOND"; - case IRQ_INTEN_QSECOND: return "IRQ_INTEN_QSECOND"; - case IRQ_INTEN_VBL: return "IRQ_INTEN_VBL"; - case IRQ_DOC: return "IRQ_DOC"; - } - return NULL; -} - - - -static void apple2gs_add_irq(UINT8 irq_mask) -{ - if ((apple2gs_pending_irqs & irq_mask) == 0x00) - { - if (LOG_IRQ) - logerror("apple2gs_add_irq(): adding %s\n", apple2gs_irq_name(irq_mask)); - - apple2gs_pending_irqs |= irq_mask; - cpunum_set_input_line(0, G65816_LINE_IRQ, apple2gs_pending_irqs ? ASSERT_LINE : CLEAR_LINE); - } -} - - - -static void apple2gs_remove_irq(UINT8 irq_mask) -{ - if (apple2gs_pending_irqs & irq_mask) - { - if (LOG_IRQ) - logerror("apple2gs_remove_irq(): removing %s\n", apple2gs_irq_name(irq_mask)); - - apple2gs_pending_irqs &= ~irq_mask; - cpunum_set_input_line(0, G65816_LINE_IRQ, apple2gs_pending_irqs ? ASSERT_LINE : CLEAR_LINE); - } -} - -void apple2gs_doc_irq(int state) -{ - if (state) - { - apple2gs_add_irq(IRQ_DOC); - } - else - { - apple2gs_remove_irq(IRQ_DOC); - } -} - - -/* ----------------------------------------------------------------------- - * ADB - * ----------------------------------------------------------------------- */ - -typedef enum -{ - ADBSTATE_IDLE, - ADBSTATE_INCOMMAND, - ADBSTATE_INRESPONSE -} adbstate_t; - -static adbstate_t adb_state; -static UINT8 adb_command; -static UINT8 adb_mode; -static UINT8 adb_kmstatus; -static UINT8 adb_latent_result; -static size_t adb_command_length; -static size_t adb_command_pos; -static UINT8 adb_command_bytes[8]; -static UINT8 adb_response_bytes[8]; -static UINT8 adb_response_length; -static size_t adb_response_pos; -static UINT8 adb_memory[0x100]; -static int adb_address_keyboard; -static int adb_address_mouse; - - -static UINT8 adb_read_memory(UINT32 address) -{ - if (address < (sizeof(adb_memory) / sizeof(adb_memory[0]))) - return adb_memory[address]; - else - return 0x00; -} - - - -static void adb_write_memory(UINT32 address, UINT8 data) -{ - if (address < (sizeof(adb_memory) / sizeof(adb_memory[0]))) - adb_memory[address] = data; -} - - - -static void adb_set_mode(UINT8 mode) -{ - adb_mode = mode; -} - - - -static void adb_set_config(UINT8 b1, UINT8 b2, UINT8 b3) -{ - /* ignore for now */ -} - - - -static void adb_post_response(const UINT8 *bytes, size_t length) -{ - assert(length < (sizeof(adb_response_bytes) / sizeof(adb_response_bytes[0]))); - memcpy(adb_response_bytes, bytes, length); - - adb_state = ADBSTATE_INRESPONSE; - adb_response_length = length; - adb_response_pos = 0; -} - - - -static void adb_post_response_1(UINT8 b) -{ - adb_post_response(&b, 1); -} - - - -static void adb_post_response_2(UINT8 b1, UINT8 b2) -{ - UINT8 b[2]; - b[0] = b1; - b[1] = b2; - adb_post_response(b, 2); -} - - - -static void adb_do_command(void) -{ - int device; - UINT32 address; - UINT8 val; - - adb_state = ADBSTATE_IDLE; - if (LOG_ADB) - logerror("adb_do_command(): adb_command=0x%02x\n", adb_command); - - switch(adb_command) - { - case 0x00: /* ??? */ - break; - - case 0x03: /* flush keyboard buffer */ - break; - - case 0x04: /* set modes */ - adb_set_mode(adb_mode | adb_command_bytes[0]); - break; - - case 0x05: /* clear modes */ - adb_set_mode(adb_mode & ~adb_command_bytes[0]); - break; - - case 0x06: /* set config */ - adb_set_config(adb_command_bytes[0], adb_command_bytes[1], adb_command_bytes[2]); - break; - - case 0x07: /* synchronize */ - adb_set_mode(adb_command_bytes[0]); - adb_set_config(adb_command_bytes[1], adb_command_bytes[2], adb_command_bytes[3]); - break; - - case 0x08: /* write memory */ - address = adb_command_bytes[0]; - val = adb_command_bytes[1]; - adb_write_memory(address, val); - break; - - case 0x09: /* read memory */ - address = (adb_command_bytes[1] << 8) | adb_command_bytes[0]; - adb_post_response_1(adb_read_memory(address)); - break; - - case 0x0d: /* get version */ - adb_post_response_1(0x06); - break; - - case 0x0e: /* read available charsets */ - adb_post_response_2(0x01, 0x00); - break; - - case 0x0f: /* read available layouts */ - adb_post_response_2(0x01, 0x00); - break; - - case 0x12: /* mystery command 0x12 */ - case 0x13: /* mystery command 0x13 */ - break; - - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: - /* send data to device */ - device = adb_command & 0x0f; - if (device == adb_address_keyboard) - { - } - else if (device == adb_address_mouse) - { - } - break; - - default: - fatalerror("ADB command 0x%02x unimplemented", adb_command); - break; - } - adb_kmstatus |= 0x20; -} - - - -static UINT8 adb_read_datareg(void) -{ - UINT8 result; - - switch(adb_state) - { - case ADBSTATE_INRESPONSE: - result = adb_response_bytes[adb_response_pos++]; - if (adb_response_pos >= adb_response_length) - { - adb_state = ADBSTATE_IDLE; - adb_latent_result = result; - adb_kmstatus &= ~0x20; - } - break; - - default: - result = adb_latent_result; - break; - } - - if (LOG_ADB) - logerror("adb_read_datareg(): result=0x%02x\n", result); - - return result; -} - - - -static void adb_write_datareg(UINT8 data) -{ - if (LOG_ADB) - logerror("adb_write_datareg(): data=0x%02x\n", data); - - switch(adb_state) - { - case ADBSTATE_IDLE: - adb_command = data; - adb_command_length = 0; - adb_command_pos = 0; - - switch(data) - { - case 0x00: /* ??? */ - case 0x01: /* abort */ - /* do nothing for now */ - break; - - case 0x03: /* flush keyboard buffer */ - adb_command_length = 0; - break; - - case 0x04: /* set modes */ - case 0x05: /* clear modes */ - adb_command_length = 1; - break; - - case 0x06: /* set config */ - adb_command_length = 3; - break; - - case 0x07: /* synchronize */ - if (memory_region_length(REGION_CPU1) == 0x40000) /* HACK */ - adb_command_length = 8; - else - adb_command_length = 4; - break; - - case 0x08: /* write memory */ - case 0x09: /* read memory */ - adb_command_length = 2; - break; - - case 0x0d: /* get version */ - adb_command_length = 0; - break; - - case 0x0e: /* read available charsets */ - adb_command_length = 0; - adb_state = ADBSTATE_INCOMMAND; /* HACK */ - break; - - case 0x0f: /* read available layouts */ - adb_command_length = 0; - adb_state = ADBSTATE_INCOMMAND; /* HACK */ - break; - - case 0x12: /* mystery command 0x12 */ - case 0x13: /* mystery command 0x13 */ - adb_command_length = 2; - break; - - case 0x70: /* disable SRQ device 0 */ - case 0x71: /* disable SRQ device 1 */ - case 0x72: /* disable SRQ device 2 */ - case 0x73: /* disable SRQ device 3 */ - /* ignore for now */ - break; - - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: - /* send data to device */ - adb_command_length = 2; - break; - - default: - fatalerror("ADB command 0x%02x unimplemented", data); - break; - - } - - if (adb_command_length > 0) - { - adb_state = ADBSTATE_INCOMMAND; - if (LOG_ADB) - logerror("adb_write_datareg(): in command length %u\n", (unsigned) adb_command_length); - } - break; - - case ADBSTATE_INCOMMAND: - assert(adb_command_pos < (sizeof(adb_command_bytes) / sizeof(adb_command_bytes[0]))); - adb_command_bytes[adb_command_pos++] = data; - break; - - case ADBSTATE_INRESPONSE: - adb_state = ADBSTATE_IDLE; - break; - } - - /* do command if necessary */ - if ((adb_state == ADBSTATE_INCOMMAND) && (adb_command_pos >= adb_command_length)) - adb_do_command(); -} - - - -static UINT8 adb_read_kmstatus(void) -{ - return adb_kmstatus; -} - - - -static void adb_write_kmstatus(UINT8 data) -{ - adb_kmstatus &= ~0x54; - adb_kmstatus |= data & 0x54; -} - - - -static UINT8 adb_read_mousedata(void) -{ - UINT8 result = 0x00; - UINT8 absolute; - INT8 delta; - - if (adb_kmstatus & 0x80) - { - if (adb_kmstatus & 0x02) - { - absolute = apple2gs_mouse_y; - delta = apple2gs_mouse_dy; - adb_kmstatus &= ~0x82; - apple2gs_remove_irq(IRQ_ADB_MOUSE); - } - else - { - absolute = apple2gs_mouse_x; - delta = apple2gs_mouse_dx; - adb_kmstatus |= 0x02; - } - - if (delta > 63) - delta = 63; - else if (delta < -64) - delta = -64; - - result = (absolute & 0x80) | (delta & 0x7F); - } - return result; -} - - - -static INT8 seven_bit_diff(UINT8 v1, UINT8 v2) -{ - v1 -= v2; - if (v1 & 0x40) - v1 |= 0x80; - else - v1 &= ~0x80; - return v1; -} - - - -static void adb_check_mouse(void) -{ - UINT8 new_mouse_x, new_mouse_y; - - /* read mouse values */ - if ((adb_kmstatus & 0x80) == 0x00) - { - new_mouse_x = readinputportbytag("adb_mouse_x"); - new_mouse_y = readinputportbytag("adb_mouse_y"); - - if ((apple2gs_mouse_x != new_mouse_x) || (apple2gs_mouse_y != new_mouse_y)) - { - apple2gs_mouse_dx = seven_bit_diff(new_mouse_x, apple2gs_mouse_x); - apple2gs_mouse_dy = seven_bit_diff(new_mouse_y, apple2gs_mouse_y); - apple2gs_mouse_x = new_mouse_x; - apple2gs_mouse_y = new_mouse_y; - - adb_kmstatus |= 0x80; - adb_kmstatus &= ~0x02; - if (adb_kmstatus & 0x40) - apple2gs_add_irq(IRQ_ADB_MOUSE); - } - } -} - - - -static void apple2gs_set_scanint(UINT8 data) -{ - /* second interrupt */ - if ((apple2gs_vgcint & 0x40) && !(data & 0x40)) - { - apple2gs_remove_irq(IRQ_VGC_SECOND); - apple2gs_vgcint &= ~0xC0; - } - - /* scanline interrupt */ - if ((apple2gs_vgcint & 0x20) && !(data & 0x20)) - { - apple2gs_remove_irq(IRQ_VGC_SCANLINE); - apple2gs_vgcint &= ~0xA0; - } - - if (apple2gs_pending_irqs & (IRQ_VGC_SECOND | IRQ_VGC_SCANLINE)) - apple2gs_vgcint |= 0x80; -} - - - -INTERRUPT_GEN( apple2gs_interrupt ) -{ - int scanline; - int current_frame; - static int last_scanline = -1; - static int scanint_this_frame = 0; - - /* TODO: This handler should be called every scanline; that crappyness on - * the VBL handler is a consequence of not doing so */ - scanline = cpu_getscanline(); - if (last_scanline != scanline) - { - if (scanline == 0) - { - current_frame = cpu_getcurrentframe(); - - /* quarter second interrupt */ - if ((apple2gs_inten & 0x10) && !(apple2gs_intflag & 0x10) && ((current_frame % 15) == 0)) - { - apple2gs_intflag |= 0x10; - apple2gs_add_irq(IRQ_INTEN_QSECOND); - } - - /* one second interrupt */ - if ((apple2gs_vgcint & 0x04) && !(apple2gs_vgcint & 0x40) && ((current_frame % 60) == 0)) - { - apple2gs_vgcint |= 0xc0; - apple2gs_add_irq(IRQ_VGC_SECOND); - } - } - else if ((scanline >= 192) && (last_scanline < 192)) - { - scanint_this_frame = 0; - - /* VBL interrupt */ - if ((apple2gs_inten & 0x08) && !(apple2gs_intflag & 0x08)) - { - apple2gs_intflag |= 0x08; - apple2gs_add_irq(IRQ_INTEN_VBL); - } - } - last_scanline = scanline; - } - - /* scanline interrupt */ - if ((apple2gs_vgcint & 0x02) && !(apple2gs_vgcint & 0x20)) - { - if (!scanint_this_frame) - { - scanint_this_frame = 1; - apple2gs_vgcint |= 0xa0; - apple2gs_add_irq(IRQ_VGC_SCANLINE); - } - } - - /* check the mouse status */ - adb_check_mouse(); - - /* call Apple II interrupt handler */ - if ((cpu_getscanline() % 8) == 7) - apple2_interrupt(); -} - - - -/* ----------------------------------------------------------------------- - * Sound handlers - * ----------------------------------------------------------------------- */ - -static UINT8 sndglu_ctrl; -static int sndglu_addr, sndglu_dummy_read; - -static READ8_HANDLER( gssnd_r ) -{ - UINT8 ret = 0; - - switch (offset) - { - case 0: // control - ret = sndglu_ctrl; - break; - case 1: // data read - if (sndglu_dummy_read) - { - sndglu_dummy_read = 0; - return 0; - } - - if (sndglu_ctrl & 0x40) // docram access - { - ret = ES5503_ram_0_r(sndglu_addr); - } - else - { - ret = ES5503_reg_0_r(sndglu_addr); - } - - if (sndglu_ctrl & 0x20) // auto-increment - { - sndglu_addr++; - } - break; - case 2: // addr l - ret = sndglu_addr & 0xff; - break; - case 3: // addr h - ret = (sndglu_addr >> 8) & 0xff; - break; - } - - return ret; -} - - - -static WRITE8_HANDLER( gssnd_w ) -{ - switch (offset) - { - case 0: // control - sndglu_ctrl = data & 0x7f; // make sure DOC is never busy - if (!(sndglu_ctrl & 0x40)) // clear hi byte of address pointer on DOC access - { - sndglu_addr &= 0xff; - } - break; - case 1: // data write - if (sndglu_ctrl & 0x40) // docram access - { - ES5503_ram_0_w(sndglu_addr, data); - } - else - { - ES5503_reg_0_w(sndglu_addr, data); - } - - if (sndglu_ctrl & 0x20) // auto-increment - { - sndglu_addr++; - } - break; - case 2: // addr l - sndglu_addr &= 0xff00; - sndglu_addr |= data; - sndglu_dummy_read = 1; - break; - case 3: // addr h - sndglu_addr &= 0x00ff; - sndglu_addr |= data<<8; - sndglu_dummy_read = 1; - break; - } -} - - - -/* ----------------------------------------------------------------------- - * IO handlers - * ----------------------------------------------------------------------- */ - -static READ8_HANDLER( apple2gs_c0xx_r ) -{ - UINT8 result; - - offset &= 0xFF; - - switch(offset) - { - case 0x19: /* C019 - RDVBLBAR */ - result = (cpu_getscanline() >= 192) ? 0x80 : 0x00; - break; - - case 0x22: /* C022 - TBCOLOR */ - result = (apple2_get_fgcolor() << 4) - | apple2_get_bgcolor(); - break; - - case 0x23: /* C023 - VGCINT */ - result = apple2gs_vgcint; - break; - - case 0x24: /* C024 - MOUSEDATA */ - result = adb_read_mousedata(); - break; - - case 0x25: /* C025 - KEYMODREG */ - result = 0x00; - break; - - case 0x26: /* C026 - DATAREG */ - result = adb_read_datareg(); - break; - - case 0x27: /* C027 - KMSTATUS */ - result = adb_read_kmstatus(); - break; - - case 0x29: /* C029 - NEWVIDEO */ - result = apple2gs_newvideo; - break; - - case 0x2B: /* C02B - LANGSEL */ - result = apple2gs_langsel; - break; - - case 0x2D: /* C02D - SLTROMSEL */ - result = apple2gs_sltromsel; - break; - - case 0x2E: /* C02E - VERTCNT */ - result = cpu_getscanline() + 55; - break; - - case 0x2F: /* C02F - HORIZCNT */ - result = ((cpu_getscanline() & 0x01) << 7) | (cpu_gethorzbeampos() / 5); - break; - - case 0x31: /* C031 - DISKREG */ - result = apple2_iwm_getdiskreg(); - break; - - case 0x33: /* C033 - CLOCKDATA */ - result = clock_data; - break; - - case 0x34: /* C034 - CLOCKCTL */ - result = clock_control; - break; - - case 0x35: /* C035 - SHADOW */ - result = apple2gs_shadow; - break; - - case 0x36: /* C036 - CYAREG */ - result = apple2gs_cyareg; - break; - - case 0x38: /* C038 - SCCBREG */ - case 0x39: /* C039 - SCCAREG */ - case 0x3A: /* C03A - SCCBDATA */ - case 0x3B: /* C03B - SCCADATA */ - result = scc_r(offset & 0x03); - break; - - case 0x3C: /* C03C - SOUNDCTL */ - case 0x3D: /* C03D - SOUNDDATA */ - case 0x3E: /* C03E - SOUNDADRL */ - case 0x3F: /* C03F - SOUNDADRH */ - result = gssnd_r(offset & 0x03); - break; - - case 0x41: /* C041 - INTEN */ - result = apple2gs_inten; - break; - - case 0x46: /* C046 - INTFLAG */ - result = apple2gs_intflag; - break; - - case 0x68: /* C068 - STATEREG */ - result = ((a2 & VAR_ALTZP) ? 0x80 : 0x00) - | ((a2 & VAR_PAGE2) ? 0x40 : 0x00) - | ((a2 & VAR_RAMRD) ? 0x20 : 0x00) - | ((a2 & VAR_RAMWRT) ? 0x10 : 0x00) - | ((a2 & VAR_LCRAM) ? 0x00 : 0x08) - | ((a2 & VAR_LCRAM2) ? 0x04 : 0x00) - | ((a2 & VAR_INTCXROM)? 0x01 : 0x00); - break; - - case 0x71: case 0x72: case 0x73: - case 0x74: case 0x75: case 0x76: case 0x77: - case 0x78: case 0x79: case 0x7a: case 0x7b: - case 0x7c: case 0x7d: case 0x7e: case 0x7f: - offset |= (memory_region_length(REGION_CPU1) - 1) & ~0x3FFF; - result = memory_region(REGION_CPU1)[offset]; - break; - - case 0x21: /* C021 - MONOCOLOR */ - case 0x2C: /* C02C - CHARROM */ - result = 0x00; - - default: - result = apple2_c0xx_r(offset); - break; - } - - if (LOG_C0XX) - logerror("apple2gs_c0xx_r(): offset=0x%02x result=0x%02x\n", offset, result); - return result; -} - - - -static WRITE8_HANDLER( apple2gs_c0xx_w ) -{ - offset &= 0xFF; - - if (LOG_C0XX) - logerror("apple2gs_c0xx_w(): offset=0x%02x data=0x%02x\n", offset, data); - - switch(offset) - { - case 0x22: /* C022 - TBCOLOR */ - apple2_set_fgcolor((data >> 4) & 0x0F); - apple2_set_bgcolor((data >> 0) & 0x0F); - break; - - case 0x23: /* C023 - VGCINT */ - apple2gs_vgcint &= ~0x0F; - apple2gs_vgcint |= data & 0x0F; - break; - - case 0x24: /* C024 - MOUSEDATA */ - case 0x25: /* C025 - KEYMODREG */ - case 0x28: /* C028 - ROMBANK */ - case 0x2C: /* C02C - CHARROM */ - case 0x2E: /* C02E - VERTCNT */ - case 0x2F: /* C02F - HORIZCNT */ - /* ignore these writes */ - break; - - case 0x26: /* C026 - DATAREG */ - adb_write_datareg(data); - break; - - case 0x27: /* C027 - KMSTATUS */ - adb_write_kmstatus(data); - break; - - case 0x29: /* C029 - NEWVIDEO */ - apple2gs_newvideo = data; - break; - - case 0x2B: /* C02B - LANGSEL */ - apple2gs_langsel = data; - break; - - case 0x2D: /* C02D - SLTROMSEL */ - apple2gs_sltromsel = data; - apple2_update_memory(); - break; - - case 0x31: /* C031 - DISKREG */ - apple2_iwm_setdiskreg(data); - break; - - case 0x32: /* C032 - SCANINT */ - apple2gs_set_scanint(data); - break; - - case 0x33: /* C033 - CLOCKDATA */ - clock_data = data; - break; - - case 0x34: /* C034 - CLOCKCTL */ - clock_control = data & 0x7F; - apple2gs_bordercolor = data & 0x0F; - if (data & 0x80) - process_clock(); - break; - - case 0x35: /* C035 - SHADOW */ - if (apple2gs_shadow != data) - { - apple2gs_shadow = data; - apple2_update_memory(); - } - break; - - case 0x36: /* C036 - CYAREG */ - apple2gs_cyareg = data & ~0x20; - cpunum_set_clockscale(0, (data & 0x80) ? 2.8 : 1.0); - break; - - case 0x38: /* C038 - SCCBREG */ - case 0x39: /* C039 - SCCAREG */ - case 0x3A: /* C03A - SCCBDATA */ - case 0x3B: /* C03B - SCCADATA */ - scc_w(offset & 0x03, data); - break; - - case 0x3C: /* C03C - SOUNDCTL */ - case 0x3D: /* C03D - SOUNDDATA */ - case 0x3E: /* C03E - SOUNDADRL */ - case 0x3F: /* C03F - SOUNDADRH */ - gssnd_w(offset & 0x03, data); - break; - - case 0x41: /* C041 - INTEN */ - apple2gs_inten = data & 0x1F; - if ((apple2gs_inten & 0x10) == 0x00) - apple2gs_remove_irq(IRQ_INTEN_QSECOND); - if ((apple2gs_inten & 0x08) == 0x00) - apple2gs_remove_irq(IRQ_INTEN_VBL); - break; - - case 0x47: /* C047 - CLRVBLINT */ - apple2gs_intflag &= ~0x18; - apple2gs_remove_irq(IRQ_INTEN_QSECOND); - apple2gs_remove_irq(IRQ_INTEN_VBL); - break; - - case 0x68: /* C068 - STATEREG */ - apple2_setvar( - ((data & 0x80) ? VAR_ALTZP : 0) | - ((data & 0x40) ? VAR_PAGE2 : 0) | - ((data & 0x20) ? VAR_RAMRD : 0) | - ((data & 0x10) ? VAR_RAMWRT : 0) | - ((data & 0x08) ? 0 : VAR_LCRAM) | - ((data & 0x04) ? VAR_LCRAM2 : 0) | - ((data & 0x01) ? VAR_INTCXROM : 0), - VAR_ALTZP | VAR_PAGE2 | VAR_RAMRD | VAR_RAMWRT | VAR_LCRAM | VAR_LCRAM2 | VAR_INTCXROM); - break; - - default: - apple2_c0xx_w(offset, data); - break; - } -} - - - -/* ----------------------------------------------------------------------- - * Memory management - * ----------------------------------------------------------------------- */ - -static WRITE8_HANDLER( apple2gs_main0400_w ) -{ - offset += 0x000400; - mess_ram[offset] = data; - - if (!(apple2gs_shadow & 0x01)) - { - apple2gs_slowmem[offset] = data; - apple2_video_touch(offset); - } -} - -static WRITE8_HANDLER( apple2gs_aux0400_w ) -{ - offset += 0x010400; - mess_ram[offset] = data; - - if (!(apple2gs_shadow & 0x01)) - { - apple2gs_slowmem[offset] = data; - apple2_video_touch(offset); - } -} - -static WRITE8_HANDLER( apple2gs_main2000_w ) -{ - offset += 0x002000; - mess_ram[offset] = data; - - if (!(apple2gs_shadow & 0x02)) - { - apple2gs_slowmem[offset] = data; - apple2_video_touch(offset); - } -} - -static WRITE8_HANDLER( apple2gs_aux2000_w ) -{ - offset += 0x012000; - mess_ram[offset] = data; - - if (!(apple2gs_shadow & 0x12) || !(apple2gs_shadow & 0x08)) - { - apple2gs_slowmem[offset] = data; - apple2_video_touch(offset); - } -} - -static WRITE8_HANDLER( apple2gs_main4000_w ) -{ - offset += 0x004000; - mess_ram[offset] = data; - - if ((offset >= 0x004000) && (offset <= 0x005FFF)) - { - if (!(apple2gs_shadow & 0x04)) - apple2gs_slowmem[offset] = data; - } -} - -static WRITE8_HANDLER( apple2gs_aux4000_w ) -{ - offset += 0x014000; - mess_ram[offset] = data; - - if ((offset >= 0x014000) && (offset <= 0x015FFF)) - { - if (!(apple2gs_shadow & 0x14) || !(apple2gs_shadow & 0x08)) - apple2gs_slowmem[offset] = data; - } - else if ((offset >= 0x016000) && (offset <= 0x019FFF)) - { - if (!(apple2gs_shadow & 0x08)) - apple2gs_slowmem[offset] = data; - } -} - - - -static void apple2gs_mem_000000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_ALTZP) ? 0x010000 : 0x000000; - meminfo->write_mem = (a2 & VAR_ALTZP) ? 0x010000 : 0x000000; -} - -static void apple2gs_mem_000200(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010200 : 0x000200; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010200 : 0x000200; -} - -static void apple2gs_mem_000400(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (a2 & VAR_80STORE) - { - meminfo->read_mem = (a2 & VAR_PAGE2) ? 0x010400 : 0x000400; - meminfo->write_mem = (a2 & VAR_PAGE2) ? 0x010400 : 0x000400; - meminfo->write_handler = (a2 & VAR_PAGE2) ? apple2gs_aux0400_w : apple2gs_main0400_w; - } - else - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010400 : 0x000400; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010400 : 0x000400; - meminfo->write_handler = (a2 & VAR_RAMWRT) ? apple2gs_aux0400_w : apple2gs_main0400_w; - } -} - -static void apple2gs_mem_000800(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x010800 : 0x000800; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x010800 : 0x000800; -} - -static void apple2gs_mem_002000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if ((a2 & (VAR_80STORE|VAR_HIRES)) == (VAR_80STORE|VAR_HIRES)) - { - meminfo->read_mem = (a2 & VAR_PAGE2) ? 0x012000 : 0x002000; - meminfo->write_mem = (a2 & VAR_PAGE2) ? 0x012000 : 0x002000; - meminfo->write_handler = (a2 & VAR_PAGE2) ? apple2gs_aux2000_w : apple2gs_main2000_w; - } - else - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x012000 : 0x002000; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x012000 : 0x002000; - meminfo->write_handler = (a2 & VAR_RAMWRT) ? apple2gs_aux2000_w : apple2gs_main2000_w; - } -} - -static void apple2gs_mem_004000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x014000 : 0x004000; - meminfo->write_handler = (a2 & VAR_RAMWRT) ? apple2gs_aux4000_w : apple2gs_main4000_w; -} - -static void apple2gs_mem_xxD000(apple2_meminfo *meminfo, UINT32 lcmem) -{ - if (a2 & VAR_LCRAM) - { - if (a2 & VAR_LCRAM2) - meminfo->read_mem = lcmem | 0x00C000; - else - meminfo->read_mem = lcmem | 0x00D000; - } - else - { - meminfo->read_mem = 0x03D000 | APPLE2_MEM_ROM; - } - - if (a2 & VAR_LCWRITE) - { - if (a2 & VAR_LCRAM2) - meminfo->write_mem = lcmem | 0x00C000; - else - meminfo->write_mem = lcmem | 0x00D000; - } - else - { - meminfo->write_mem = APPLE2_MEM_FLOATING; - } -} - -static void apple2gs_mem_xxE000(apple2_meminfo *meminfo, UINT32 lcmem) -{ - if (a2 & VAR_LCRAM) - meminfo->read_mem = lcmem | 0x00E000; - else - meminfo->read_mem = 0x03E000 | APPLE2_MEM_ROM; - - if (a2 & VAR_LCWRITE) - meminfo->write_mem = lcmem | 0x00E000; - else - meminfo->write_mem = APPLE2_MEM_FLOATING; -} - -static void apple2gs_mem_00D000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (apple2gs_shadow & 0x40) - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x01D000 : 0x00D000; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x01D000 : 0x00D000; - } - else - { - apple2gs_mem_xxD000(meminfo, (a2 & VAR_ALTZP) ? 0x010000 : 0x000000); - } -} - -static void apple2gs_mem_00E000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (apple2gs_shadow & 0x40) - { - meminfo->read_mem = (a2 & VAR_RAMRD) ? 0x01E000 : 0x00E000; - meminfo->write_mem = (a2 & VAR_RAMWRT) ? 0x01E000 : 0x00E000; - } - else - { - apple2gs_mem_xxE000(meminfo, (a2 & VAR_ALTZP) ? 0x010000 : 0x000000); - } -} - -static void apple2gs_mem_01D000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (apple2gs_shadow & 0x40) - { - meminfo->read_mem = 0x01D000; - meminfo->write_mem = 0x01D000; - } - else - { - apple2gs_mem_xxD000(meminfo, 0x010000); - } -} - -static void apple2gs_mem_01E000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - if (apple2gs_shadow & 0x40) - { - meminfo->read_mem = 0x01E000; - meminfo->write_mem = 0x01E000; - } - else - { - apple2gs_mem_xxE000(meminfo, 0x010000); - } -} - -static void apple2gs_mem_E0D000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - apple2gs_mem_xxD000(meminfo, 0x000000 | APPLE2_MEM_AUX); -} - -static void apple2gs_mem_E0E000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - apple2gs_mem_xxE000(meminfo, 0x000000 | APPLE2_MEM_AUX); -} - -static void apple2gs_mem_E1D000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - apple2gs_mem_xxD000(meminfo, 0x010000 | APPLE2_MEM_AUX); -} - -static void apple2gs_mem_E1E000(offs_t begin, offs_t end, apple2_meminfo *meminfo) -{ - apple2gs_mem_xxE000(meminfo, 0x010000 | APPLE2_MEM_AUX); -} - - - -static const apple2_memmap_entry apple2gs_memmap_entries[] = -{ - { 0x000000, 0x0001FF, apple2gs_mem_000000, A2MEM_MONO }, - { 0x000200, 0x0003FF, apple2gs_mem_000200, A2MEM_DUAL }, - { 0x000400, 0x0007FF, apple2gs_mem_000400, A2MEM_DUAL }, - { 0x000800, 0x001FFF, apple2gs_mem_000800, A2MEM_DUAL }, - { 0x002000, 0x003FFF, apple2gs_mem_002000, A2MEM_DUAL }, - { 0x004000, 0x00BFFF, apple2gs_mem_004000, A2MEM_DUAL }, - { 0x00D000, 0x00DFFF, apple2gs_mem_00D000, A2MEM_DUAL }, - { 0x00E000, 0x00FFFF, apple2gs_mem_00E000, A2MEM_DUAL }, - - { 0x01D000, 0x01DFFF, apple2gs_mem_01D000, A2MEM_DUAL }, - { 0x01E000, 0x01FFFF, apple2gs_mem_01E000, A2MEM_DUAL }, - { 0xE0D000, 0xE0DFFF, apple2gs_mem_E0D000, A2MEM_DUAL }, - { 0xE0E000, 0xE0FFFF, apple2gs_mem_E0E000, A2MEM_DUAL }, - { 0xE1D000, 0xE1DFFF, apple2gs_mem_E1D000, A2MEM_DUAL }, - { 0xE1E000, 0xE1FFFF, apple2gs_mem_E1E000, A2MEM_DUAL }, - - { 0 } -}; - - - -static UINT8 *apple2gs_getslotmem(offs_t address) -{ - UINT8 *rom; - - address %= 0x00FFFF; - assert(address >= 0xC000); - assert(address <= 0xCFFF); - - rom = memory_region(REGION_CPU1); - rom += 0x030000 % memory_region_length(REGION_CPU1); - return &rom[address]; -} - - - -static UINT8 apple2gs_xxCxxx_r(offs_t address) -{ - UINT8 result; - int slot; - - if ((apple2gs_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) - { - result = mess_ram[address]; - } - else if ((address & 0x000F00) == 0x000000) - { - result = apple2gs_c0xx_r(address); - } - else - { - slot = (address & 0x000F00) / 0x100; - - if ((slot > 7) || ((apple2gs_sltromsel & (1 << slot)) == 0)) - result = *apple2gs_getslotmem(address); - else - result = apple2_getfloatingbusvalue(); - } - return result; -} - - - -static void apple2gs_xxCxxx_w(offs_t address, UINT8 data) -{ - int slot; - - if ((apple2gs_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) - { - mess_ram[address] = data; - } - else if ((address & 0x000F00) == 0x000000) - { - apple2gs_c0xx_w(address, data); - } - else - { - slot = (address & 0x000F00) / 0x100; - - if ((slot > 7) || ((apple2gs_sltromsel & (1 << slot)) == 0)) - *apple2gs_getslotmem(address) = data; - } -} - - - -static OPBASE_HANDLER( apple2gs_opbase ) -{ - UINT8 *opptr = NULL; - int slot; - - if (((address & 0xFEF000) == 0x00C000) || ((address & 0xFEF000) == 0xE0C000)) - { - if ((apple2gs_shadow & 0x40) && ((address & 0xF00000) == 0x000000)) - { - opptr = &mess_ram[address]; - } - else if ((address & 0x000F00) == 0x000000) - { - if (((address & 0xFF) >= 0x71) && ((address & 0xFF) <= 0x7F)) - opptr = apple2gs_getslotmem(address); - } - else - { - slot = (address & 0x000F00) / 0x100; - - if ((slot > 7) || ((apple2gs_sltromsel & (1 << slot)) == 0)) - opptr = apple2gs_getslotmem(address); - } - - if (opptr) - { - opcode_mask = ~0; - opcode_base = opcode_arg_base = opptr - address; - opcode_memory_min = address; - opcode_memory_max = address; - address = ~0; - } - } - return address; -} - - - -static READ8_HANDLER( apple2gs_00Cxxx_r ) { return apple2gs_xxCxxx_r(offset | 0x00C000); } -static READ8_HANDLER( apple2gs_01Cxxx_r ) { return apple2gs_xxCxxx_r(offset | 0x01C000); } -static READ8_HANDLER( apple2gs_E0Cxxx_r ) { return apple2gs_xxCxxx_r(offset | 0xE0C000); } -static READ8_HANDLER( apple2gs_E1Cxxx_r ) { return apple2gs_xxCxxx_r(offset | 0xE1C000); } - -static WRITE8_HANDLER( apple2gs_00Cxxx_w) { apple2gs_xxCxxx_w(offset | 0x00C000, data); } -static WRITE8_HANDLER( apple2gs_01Cxxx_w) { apple2gs_xxCxxx_w(offset | 0x01C000, data); } -static WRITE8_HANDLER( apple2gs_E0Cxxx_w) { apple2gs_xxCxxx_w(offset | 0xE0C000, data); } -static WRITE8_HANDLER( apple2gs_E1Cxxx_w) { apple2gs_xxCxxx_w(offset | 0xE1C000, data); } - -static WRITE8_HANDLER( apple2gs_Exxxxx_w ) -{ - apple2gs_slowmem[offset] = data; - apple2_video_touch(offset); -} - -static WRITE8_HANDLER( apple2gs_E004xx_w ) { apple2gs_Exxxxx_w(offset + 0x00400, data); } -static WRITE8_HANDLER( apple2gs_E02xxx_w ) { apple2gs_Exxxxx_w(offset + 0x02000, data); } -static WRITE8_HANDLER( apple2gs_E104xx_w ) { apple2gs_Exxxxx_w(offset + 0x10400, data); } -static WRITE8_HANDLER( apple2gs_E12xxx_w ) { apple2gs_Exxxxx_w(offset + 0x12000, data); } - - - -static void apple2gs_setup_memory(void) -{ - offs_t begin, end; - apple2_memmap_config cfg; - - /* allocate memory for E00000-E1FFFF */ - apple2gs_slowmem = auto_malloc(128*1024); - memset(apple2gs_slowmem, 0, 128*1024); - - /* install expanded memory */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x010000, mess_ram_size - 1, 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x010000, mess_ram_size - 1, 0, 0, MWA8_BANK1); - memory_set_bankptr(1, mess_ram + 0x010000); - - /* install hi memory */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe00000, 0xe1ffff, 0, 0, MRA8_BANK2); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe00000, 0xe1ffff, 0, 0, MWA8_BANK2); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe00400, 0xe007ff, 0, 0, apple2gs_E004xx_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe02000, 0xe03fff, 0, 0, apple2gs_E02xxx_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe10400, 0xe107ff, 0, 0, apple2gs_E104xx_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe12000, 0xe13fff, 0, 0, apple2gs_E12xxx_w); - memory_set_bankptr(2, apple2gs_slowmem); - - /* install alternate ROM bank */ - begin = 0x1000000 - memory_region_length(REGION_CPU1); - end = 0xffffff; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end, 0, 0, MRA8_BANK3); - memory_set_bankptr(3, memory_region(REGION_CPU1)); - - /* install new xxC000-xxCFFF handlers */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x00c000, 0x00cfff, 0, 0, apple2gs_00Cxxx_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x00c000, 0x00cfff, 0, 0, apple2gs_00Cxxx_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x01c000, 0x01cfff, 0, 0, apple2gs_01Cxxx_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x01c000, 0x01cfff, 0, 0, apple2gs_01Cxxx_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe0c000, 0xe0cfff, 0, 0, apple2gs_E0Cxxx_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe0c000, 0xe0cfff, 0, 0, apple2gs_E0Cxxx_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe1c000, 0xe1cfff, 0, 0, apple2gs_E1Cxxx_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe1c000, 0xe1cfff, 0, 0, apple2gs_E1Cxxx_w); - memory_set_opbase_handler(0, apple2gs_opbase); - - /* install aux memory writes (for shadowing) */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x010400, 0x0107FF, 0, 0, apple2gs_aux0400_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x012000, 0x013FFF, 0, 0, apple2gs_aux2000_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x014000, 0x019FFF, 0, 0, apple2gs_aux4000_w); - - /* setup the Apple II memory system */ - memset(&cfg, 0, sizeof(cfg)); - cfg.first_bank = 4; - cfg.memmap = apple2gs_memmap_entries; - cfg.auxmem = apple2gs_slowmem; - cfg.auxmem_length = 0x20000; - apple2_setup_memory(&cfg); -} - - - -/* ----------------------------------------------------------------------- - * Driver Init - * ----------------------------------------------------------------------- */ - -static READ8_HANDLER( apple2gs_read_vector ) -{ - return program_read_byte(offset | 0xFF0000); -} - - - -MACHINE_START( apple2gs ) -{ - apple2_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.slots[0] = &apple2_slot_langcard; - cfg.slots[4] = &apple2_slot_mockingboard; - cfg.slots[6] = &apple2_slot_iwm; - - apple2_init_common(machine, &cfg); - - /* set up Apple IIgs vectoring */ - cpunum_set_info_fct(0, CPUINFO_PTR_G65816_READVECTOR_CALLBACK, (genf *) apple2gs_read_vector); - - /* setup globals */ - apple2gs_cur_slot6_image = NULL; - apple2gs_newvideo = 0x00; - apple2gs_vgcint = 0x00; - apple2gs_langsel = 0x00; - apple2gs_sltromsel = 0x00; - apple2gs_cyareg = 0x80; - apple2gs_inten = 0x00; - apple2gs_intflag = 0x00; - apple2gs_shadow = 0x08; - apple2gs_pending_irqs = 0x00; - apple2gs_mouse_x = 0x00; - apple2gs_mouse_y = 0x00; - apple2gs_mouse_dx = 0x00; - apple2gs_mouse_dy = 0x00; - adb_state = ADBSTATE_IDLE; - adb_kmstatus = 0x10; - adb_command = 0; - adb_mode = 0; - adb_latent_result = 0; - adb_command_length = 0; - adb_command_pos = 0; - memset(adb_command_bytes, 0, sizeof(adb_command_bytes)); - memset(adb_response_bytes, 0, sizeof(adb_response_bytes)); - adb_response_length = 0; - adb_response_pos = 0; - memset(adb_memory, 0, sizeof(adb_memory)); - adb_address_keyboard = 2; - adb_address_mouse = 3; - - /* init time */ - clock_data = 0; - clock_control =0; - clock_read = 0; - clock_reg1 = 0; - clock_mode = CLOCKMODE_IDLE; - clock_curtime = 0; - clock_curtime_interval = 0; - - sndglu_ctrl = 0x00; - sndglu_addr = 0; - sndglu_dummy_read = 0; - - /* init the various subsystems */ - scc_init(NULL); - apple2gs_setup_memory(); - return 0; -} diff --git a/mess/machine/at.c b/mess/machine/at.c deleted file mode 100644 index 794335421..000000000 --- a/mess/machine/at.c +++ /dev/null @@ -1,170 +0,0 @@ -/*************************************************************************** - - IBM AT Compatibles - -***************************************************************************/ - -#include "driver.h" - -#include "cpu/i386/i386.h" - -#include "machine/pic8259.h" -#include "machine/8237dma.h" -#include "machine/mc146818.h" -#include "machine/pc_turbo.h" - -#include "vidhrdw/pc_vga.h" -#include "vidhrdw/pc_cga.h" - -#include "machine/pit8253.h" -#include "machine/pcshare.h" -#include "machine/8042kbdc.h" -#include "includes/at.h" -#include "machine/pckeybrd.h" -#include "includes/sblaster.h" -#include "machine/i82439tx.h" - -static const SOUNDBLASTER_CONFIG soundblaster = { 1,5, {1,0} }; - - - -static void at_set_gate_a20(int a20) -{ - /* set the CPU's A20 line */ - cpunum_set_input_line(0, INPUT_LINE_A20, a20); -} - - - -static void init_at_common(const struct kbdc8042_interface *at8042) -{ - init_pc_common(PCCOMMON_KEYBOARD_AT | PCCOMMON_DMA8237_AT | PCCOMMON_TIMER_8254); - mc146818_init(MC146818_STANDARD); - soundblaster_config(&soundblaster); - kbdc8042_init(at8042); - - if (mess_ram_size > 0x0a0000) - { - offs_t ram_limit = 0x100000 + mess_ram_size - 0x0a0000; - memory_install_read_handler(0, ADDRESS_SPACE_PROGRAM, 0x100000, ram_limit - 1, 0, 0, STATIC_BANK1); - memory_install_write_handler(0, ADDRESS_SPACE_PROGRAM, 0x100000, ram_limit - 1, 0, 0, STATIC_BANK1); - memory_set_bankptr(1, mess_ram + 0xa0000); - } -} - - - -static void at_keyboard_interrupt(int state) -{ - pic8259_set_irq_line(0, 1, state); -} - - - -DRIVER_INIT( atcga ) -{ - struct kbdc8042_interface at8042 = - { - KBDC8042_STANDARD, at_set_gate_a20, at_keyboard_interrupt - }; - init_at_common(&at8042); -} - - - -DRIVER_INIT( at386 ) -{ - struct kbdc8042_interface at8042 = - { - KBDC8042_AT386, at_set_gate_a20, at_keyboard_interrupt - }; - init_at_common(&at8042); -} - - - -DRIVER_INIT( at586 ) -{ - init_at386(machine); - intel82439tx_init(); -} - - - -static void at_map_vga_memory(offs_t begin, offs_t end, read8_handler rh, write8_handler wh) -{ - int buswidth; - buswidth = cputype_databus_width(Machine->drv->cpu[0].cpu_type, ADDRESS_SPACE_PROGRAM); - switch(buswidth) - { - case 8: - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xA0000, 0xBFFFF, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xA0000, 0xBFFFF, 0, 0, MWA8_NOP); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end, 0, 0, wh); - break; - } -} - - - -static const struct pc_vga_interface vga_interface = -{ - 1, - at_map_vga_memory, - - input_port_0_r, - - ADDRESS_SPACE_IO, - 0x0000 -}; - - - -DRIVER_INIT( at_vga ) -{ - struct kbdc8042_interface at8042 = - { - KBDC8042_STANDARD, at_set_gate_a20, at_keyboard_interrupt - }; - - init_at_common(&at8042); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); - pc_vga_init(&vga_interface, NULL); -} - - - -DRIVER_INIT( ps2m30286 ) -{ - struct kbdc8042_interface at8042 = - { - KBDC8042_PS2, at_set_gate_a20, at_keyboard_interrupt - }; - init_at_common(&at8042); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); - pc_vga_init(&vga_interface, NULL); -} - - - -static int at_irq_callback(int irqline) -{ - return pic8259_acknowledge(0); -} - - - -MACHINE_START( at ) -{ - cpunum_set_irq_callback(0, at_irq_callback); - return 0; -} - - - -MACHINE_RESET( at ) -{ - dma8237_reset(); -} diff --git a/mess/machine/atom.c b/mess/machine/atom.c deleted file mode 100644 index 7dcf0a3c8..000000000 --- a/mess/machine/atom.c +++ /dev/null @@ -1,500 +0,0 @@ -/*********************************************************************** - - atom.c - - Functions to emulate general aspects of the machine (RAM, ROM, - interrupts, I/O ports) - - Many thanks to Kees van Oss for: - 1. Tape input/output curcuit diagram. It describes in great detail how the 2.4khz - tone, 2.4khz tone enable, tape output and tape input are connected. - 2. The DOS rom for the Atom so I could complete the floppy disc emulation. - 3. Details of the eprom expansion board for the Atom. - 4. His demo programs which I used to test the driver. - -***********************************************************************/ - -#include "driver.h" -#include "machine/8255ppi.h" -#include "vidhrdw/m6847.h" -#include "includes/atom.h" -#include "includes/i8271.h" -#include "machine/6522via.h" -#include "devices/basicdsk.h" -#include "devices/flopdrv.h" -#include "devices/cassette.h" -#include "devices/printer.h" -#include "sound/speaker.h" - -UINT8 atom_8255_porta; -UINT8 atom_8255_portb; -UINT8 atom_8255_portc; - -/* printer data written */ -static char atom_printer_data = 0x07f; - -/* I am not sure if this is correct, the atom appears to have a 2.4Khz timer used for reading tapes?? */ -static int timer_state = 0; - -static void atom_via_irq_func(int state) -{ - if (state) - { - cpunum_set_input_line(0,0, HOLD_LINE); - } - else - { - cpunum_set_input_line(0,0, CLEAR_LINE); - } - - -} - -static mess_image *cassette_device_image(void) -{ - return image_from_devtype_and_index(IO_CASSETTE, 0); -} - -static mess_image *printer_image(void) -{ - return image_from_devtype_and_index(IO_PRINTER, 0); -} - -/* printer status */ -static READ8_HANDLER(atom_via_in_a_func) -{ - unsigned char data; - - data = atom_printer_data; - - if (!printer_status(printer_image(),0)) - { - /* offline */ - data |=0x080; - } - - return data; -} - -/* printer data */ -static WRITE8_HANDLER(atom_via_out_a_func) -{ - /* data is written to port, this causes a pulse on ca2 (printer /strobe input), - and data is written */ - /* atom has a 7-bit printer port */ - atom_printer_data = data & 0x07f; -} - -static unsigned char previous_ca2_data = 0; - -/* one of these is pulsed! */ -static WRITE8_HANDLER(atom_via_out_ca2_func) -{ - /* change in state of ca2 output? */ - if (((previous_ca2_data^data)&0x01)!=0) - { - /* only look for one transition state */ - if (data & 0x01) - { - /* output data to printer */ - printer_output(printer_image(), atom_printer_data); - } - } - - previous_ca2_data = data; -} - -struct via6522_interface atom_6522_interface= -{ - atom_via_in_a_func, /* printer status */ - NULL, - NULL, - NULL, - NULL, - NULL, - atom_via_out_a_func, /* printer data */ - NULL, - NULL, - NULL, - atom_via_out_ca2_func, /* printer strobe */ - NULL, - atom_via_irq_func, -}; - - - -static ppi8255_interface atom_8255_int = -{ - 1, - {atom_8255_porta_r}, - {atom_8255_portb_r}, - {atom_8255_portc_r}, - {atom_8255_porta_w}, - {atom_8255_portb_w}, - {atom_8255_portc_w}, -}; - -static int previous_i8271_int_state = 0; - -static void atom_8271_interrupt_callback(int state) -{ - /* I'm assuming that the nmi is edge triggered */ - /* a interrupt from the fdc will cause a change in line state, and - the nmi will be triggered, but when the state changes because the int - is cleared this will not cause another nmi */ - /* I'll emulate it like this to be sure */ - - if (state!=previous_i8271_int_state) - { - if (state) - { - /* I'll pulse it because if I used hold-line I'm not sure - it would clear - to be checked */ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - } - - previous_i8271_int_state = state; -} - -static struct i8271_interface atom_8271_interface= -{ - atom_8271_interrupt_callback, - NULL -}; - -/* - +--------+ -PC0, Tape Output ------------------------------------------------| - | - +---------| | NAND |------CAS OUT -PC1, Enable 2400 Hz ------------------------------| | | | - +------+ | NAND |--B--| | -PC4, 2400 Hz ---------------+-----| INV | ---A---| | +--------+ - | +------+ +---------+ - | - 2400 Hz - - -PC4 PC1 PC0 : A B CAS OUT - 0 0 0 : 1 1 1 - 0 0 1 : 1 1 0 - 0 1 0 : 1 0 1 - 0 1 1 : 1 0 1 - 1 0 0 : 0 1 1 - 1 0 1 : 0 1 0 - 1 1 0 : 0 1 1 - 1 1 1 : 0 1 0 - - -Here is a detail from the Atom circuit diagram about Tape Input: - -PC5, Cassette -Input ----------------------------------------------------------------CAS IN -*/ -static void atom_timer_callback(int dummy) -{ - /* change timer state */ - timer_state^=1; - - /* the 2.4khz signal is notted (A), and nand'ed with the 2.4kz enable, resulting - in B. The final cassette output is the result of tape output nand'ed with B */ - - - { - unsigned char A; - unsigned char B; - unsigned char result; - - /* 2.4khz signal - notted */ - A = (~timer_state); - /* 2.4khz signal notted, and anded with 2.4khz enable */ - B = (~(A & (atom_8255_portc>>1))) & 0x01; - - result = (~(B & atom_8255_portc)) & 0x01; - - /* tape output */ - cassette_output(cassette_device_image(), (result & 0x01) ? -1.0 : +1.0); - } -} - - -static OPBASE_HANDLER(atom_opbase_handler) -{ - /* clear op base override */ - memory_set_opbase_handler(0,0); - - /* this is temporary */ - /* Kees van Oss mentions that address 8-b are used for the random number - generator. I don't know if this is hardware, or random data because the - ram chips are not cleared at start-up. So at this time, these numbers - are poked into the memory to simulate it. When I have more details I will fix it */ - memory_region(REGION_CPU1)[0x08] = rand() & 0x0ff; - memory_region(REGION_CPU1)[0x09] = rand() & 0x0ff; - memory_region(REGION_CPU1)[0x0a] = rand() & 0x0ff; - memory_region(REGION_CPU1)[0x0b] = rand() & 0x0ff; - - return activecpu_get_pc() & 0x0ffff; -} - -MACHINE_RESET( atom ) -{ - ppi8255_init (&atom_8255_int); - atom_8255_porta = 0xff; - atom_8255_portb = 0xff; - atom_8255_portc = 0xff; - - i8271_init(&atom_8271_interface); - - via_config(0, &atom_6522_interface); - via_set_clock(0,1000000); - via_reset(); - - timer_state = 0; - timer_pulse(TIME_IN_HZ(2400*2), 0, atom_timer_callback); - - memory_set_opbase_handler(0,atom_opbase_handler); -} - -struct atm -{ - UINT8 atm_name[16]; - UINT8 atm_start_high; - UINT8 atm_start_low; - UINT8 atm_exec_high; - UINT8 atm_exec_low; - UINT8 atm_size_high; - UINT8 atm_size_low; -}; - -/* this only works if loaded using file-manager. This should work -for binary files, but will not work with basic files. This also does not support -.tap files which contain multiple .atm files joined together! */ -QUICKLOAD_LOAD(atom) -{ - unsigned char *quickload_data; - int i; - unsigned char *data; - struct atm *atm_header; - unsigned long addr; - unsigned long exec; - unsigned long size; - - quickload_data = malloc(quickload_size); - if (!quickload_data) - return INIT_FAIL; - - if (image_fread(image, quickload_data, quickload_size) != quickload_size) - { - free(quickload_data); - return INIT_FAIL; - } - - atm_header = (struct atm *)quickload_data; - - /* calculate data address */ - data = (unsigned char *)((unsigned long)quickload_data + sizeof(struct atm)); - - /* get start address */ - addr = ( - (atm_header->atm_start_low & 0x0ff) | - ((atm_header->atm_start_high & 0x0ff)<<8) - ); - - /* get size */ - size = ( - (atm_header->atm_size_low & 0x0ff) | - ((atm_header->atm_size_high & 0x0ff)<<8) - ); - - /* get execute address */ - exec = ( - (atm_header->atm_exec_low & 0x0ff) | - ((atm_header->atm_exec_high & 0x0ff)<<8) - ); - - /* copy data into memory */ - for (i=size-1; i>=0; i--) - { - program_write_byte(addr, data[0]); - addr++; - data++; - } - - - /* set new pc address */ - activecpu_set_reg(REG_PC, exec); - - /* free the data */ - free(quickload_data); - return INIT_PASS; -} - - -/* load floppy */ -DEVICE_LOAD( atom_floppy ) -{ - if (device_load_basicdsk_floppy(image)==INIT_PASS) - { - /* sector id's 0-9 */ - /* drive, tracks, heads, sectors per track, sector length, dir_sector, dir_length, first sector id */ - basicdsk_set_geometry(image, 80, 1, 10, 256, 0, 0, FALSE); - - return INIT_PASS; - } - - return INIT_PASS; -} - - - READ8_HANDLER (atom_8255_porta_r ) -{ - /* logerror("8255: Read port a\n"); */ - return (atom_8255_porta); -} - - READ8_HANDLER ( atom_8255_portb_r ) -{ - /* ilogerror("8255: Read port b: %02X %02X\n", - readinputport ((atom_8255.atom_8255_porta & 0x0f) + 1), - readinputport (11) & 0xc0); */ - return ((readinputport ((atom_8255_porta & 0x0f) + 1) & 0x3f) | - (readinputport (11) & 0xc0)); -} - -READ8_HANDLER ( atom_8255_portc_r ) -{ - atom_8255_portc &= 0x0f; - - /* cassette input */ - if (cassette_input(cassette_device_image()) > 0.0) - { - atom_8255_portc |= (1<<5); - } - - /* 2.4khz input */ - if (timer_state) - { - atom_8255_portc |= (1<<4); - } - - atom_8255_portc |= (m6847_get_field_sync() ? 0x00 : 0x80); - atom_8255_portc |= (readinputport(12) & 0x40); - /* logerror("8255: Read port c (%02X)\n",atom_8255.atom_8255_portc); */ - return (atom_8255_portc); -} - -/* Atom 6847 modes: - -0000xxxx Text -0001xxxx 64x64 4 -0011xxxx 128x64 2 -0101xxxx 128x64 4 -0111xxxx 128x96 2 -1001xxxx 128x96 4 -1011xxxx 128x192 2 -1101xxxx 128x192 4 -1111xxxx 256x192 2 - -*/ - -WRITE8_HANDLER ( atom_8255_porta_w ) -{ - atom_8255_porta = data; -} - -WRITE8_HANDLER ( atom_8255_portb_w ) -{ - atom_8255_portb = data; -} - -WRITE8_HANDLER (atom_8255_portc_w) -{ - atom_8255_portc = data; - speaker_level_w(0, (data & 0x04) >> 2); -} - - -/* KT- I've assumed that the atom 8271 is linked in exactly the same way as on the bbc */ - READ8_HANDLER(atom_8271_r) -{ - switch (offset) - { - case 0: - case 1: - case 2: - case 3: - /* 8271 registers */ - return i8271_r(offset); - case 4: - return i8271_data_r(offset); - default: - break; - } - - return 0x0ff; -} - -WRITE8_HANDLER(atom_8271_w) -{ - switch (offset) - { - case 0: - case 1: - case 2: - case 3: - /* 8271 registers */ - i8271_w(offset, data); - return; - case 4: - i8271_data_w(offset, data); - return; - default: - break; - } -} - - -/*********************************************/ -/* emulates a 16-slot eprom box for the Atom */ -static unsigned char selected_eprom = 0; - -static void atom_eprom_box_refresh(void) -{ - unsigned char *eprom_data; - - /* get address of eprom data */ - eprom_data = memory_region(REGION_CPU1) + 0x010000 + (selected_eprom<<12); - /* set bank address */ - memory_set_bankptr(1, eprom_data); -} - -void atom_eprom_box_init(void) -{ - /* set initial eprom */ - selected_eprom = 0; - /* set memory handler */ - /* init */ - atom_eprom_box_refresh(); -} - -/* write to eprom box, changes eprom selected */ -WRITE8_HANDLER(atom_eprom_box_w) -{ - selected_eprom = data & 0x0f; - - atom_eprom_box_refresh(); -} - -/* read from eprom box register, can this be done in the real hardware */ -READ8_HANDLER(atom_eprom_box_r) -{ - return selected_eprom; -} - -MACHINE_RESET( atomeb ) -{ - machine_reset_atom(machine); - atom_eprom_box_init(); -} - diff --git a/mess/machine/bebox.c b/mess/machine/bebox.c deleted file mode 100644 index 642a0fcec..000000000 --- a/mess/machine/bebox.c +++ /dev/null @@ -1,1049 +0,0 @@ -/*************************************************************************** - - machine/bebox.c - - BeBox - - Memory map: - - 00000000 - 3FFFFFFF Physical RAM - 40000000 - 7FFFFFFF Motherboard glue registers - 80000000 - 807FFFFF ISA I/O - 81000000 - BF7FFFFF PCI I/O - BFFFFFF0 - BFFFFFFF PCI/ISA interrupt acknowledge - FF000000 - FFFFFFFF ROM/flash - - In ISA space, peripherals are generally in similar places as they are on - standard PC hardware (e.g. - the keyboard is 80000060 and 80000064). The - following table shows more: - - Keyboard/Mouse (Intel 8242) 80000060, 80000064 - Real Time Clock (BQ3285) 80000070, 80000074 - IDE ATA Interface 800001F0-F7, 800003F6-7 - COM2 800002F8-F - GeekPort A/D Control 80000360-1 - GeekPort A/D Data 80000362-3 - GeekPort A/D Rate 80000364 - GeekPort OE 80000366 - Infrared Interface 80000368-A - COM3 80000380-7 - COM4 80000388-F - GeekPort D/A 80000390-3 - GeekPort GPA/GPB 80000394 - Joystick Buttons 80000397 - SuperIO Config (PReP standard) 80000398-9 - MIDI Port 1 800003A0-7 - MIDI Port 2 800003A8-F - Parallel 800003BC-E - Floppy 800003F0-7 - COM1 800003F8-F - AD1848 80000830-4 - - - Interrupt bit masks: - - bit 31 - N/A (used to set/clear masks) - bit 30 - SMI interrupt to CPU 0 (CPU 0 only) - bit 29 - SMI interrupt to CPU 1 (CPU 1 only) - bit 28 - Unused - bit 27 - COM1 (PC IRQ #4) - bit 26 - COM2 (PC IRQ #3) - bit 25 - COM3 - bit 24 - COM4 - bit 23 - MIDI1 - bit 22 - MIDI2 - bit 21 - SCSI - bit 20 - PCI Slot #1 - bit 19 - PCI Slot #2 - bit 18 - PCI Slot #3 - bit 17 - Sound - bit 16 - Keyboard (PC IRQ #1) - bit 15 - Real Time Clock (PC IRQ #8) - bit 14 - PC IRQ #5 - bit 13 - Floppy Disk (PC IRQ #6) - bit 12 - Parallel Port (PC IRQ #7) - bit 11 - PC IRQ #9 - bit 10 - PC IRQ #10 - bit 9 - PC IRQ #11 - bit 8 - Mouse (PC IRQ #12) - bit 7 - IDE (PC IRQ #14) - bit 6 - PC IRQ #15 - bit 5 - PIC8259 - bit 4 - Infrared Controller - bit 3 - Analog To Digital - bit 2 - GeekPort - bit 1 - Unused - bit 0 - Unused - - Be documentation uses PowerPC bit numbering conventions (i.e. - bit #0 is - the most significant bit) - - PCI Devices: - #0 Motorola MPC105 - #11 Intel 82378 PCI/ISA bridge - #12 NCR 53C810 SCSI - - More hardware information at http://www.netbsd.org/Ports/bebox/hardware.html - -***************************************************************************/ - -#include "includes/bebox.h" -#include "vidhrdw/pc_vga.h" -#include "vidhrdw/cirrus.h" -#include "cpu/powerpc/ppc.h" -#include "machine/uart8250.h" -#include "machine/pc_fdc.h" -#include "machine/mpc105.h" -#include "machine/mc146818.h" -#include "machine/pic8259.h" -#include "machine/pit8253.h" -#include "machine/8237dma.h" -#include "machine/idectrl.h" -#include "machine/pci.h" -#include "machine/intelfsh.h" -#include "machine/8042kbdc.h" -#include "machine/53c810.h" -#include "memconv.h" - -#define LOG_CPUIMASK 1 -#define LOG_UART 1 -#define LOG_INTERRUPTS 1 - -static UINT32 bebox_cpu_imask[2]; -static UINT32 bebox_interrupts; -static UINT32 bebox_crossproc_interrupts; - - -/************************************* - * - * Interrupts and Motherboard Registers - * - *************************************/ - -static void bebox_update_interrupts(void); - -static void bebox_mbreg32_w(UINT32 *target, UINT64 data, UINT64 mem_mask) -{ - int i; - - for (i = 1; i < 32; i++) - { - if ((data >> (63 - i)) & 1) - { - if ((data >> 63) & 1) - *target |= 0x80000000 >> i; - else - *target &= ~(0x80000000 >> i); - } - } -} - - -READ64_HANDLER( bebox_cpu0_imask_r ) { return ((UINT64) bebox_cpu_imask[0]) << 32; } -READ64_HANDLER( bebox_cpu1_imask_r ) { return ((UINT64) bebox_cpu_imask[1]) << 32; } -READ64_HANDLER( bebox_interrupt_sources_r ) { return ((UINT64) bebox_interrupts) << 32; } - -WRITE64_HANDLER( bebox_cpu0_imask_w ) -{ - UINT32 old_imask = bebox_cpu_imask[0]; - - bebox_mbreg32_w(&bebox_cpu_imask[0], data, mem_mask); - - if (old_imask != bebox_cpu_imask[0]) - { - if (LOG_CPUIMASK) - { - logerror("BeBox CPU #0 pc=0x%08X imask=0x%08x\n", - (unsigned) activecpu_get_reg(REG_PC), bebox_cpu_imask[0]); - } - bebox_update_interrupts(); - } -} - -WRITE64_HANDLER( bebox_cpu1_imask_w ) -{ - UINT32 old_imask = bebox_cpu_imask[1]; - - bebox_mbreg32_w(&bebox_cpu_imask[1], data, mem_mask); - - if (old_imask != bebox_cpu_imask[1]) - { - if (LOG_CPUIMASK) - { - logerror("BeBox CPU #1 pc=0x%08X imask=0x%08x\n", - (unsigned) activecpu_get_reg(REG_PC), bebox_cpu_imask[1]); - } - bebox_update_interrupts(); - } -} - -READ64_HANDLER( bebox_crossproc_interrupts_r ) -{ - UINT32 result; - result = bebox_crossproc_interrupts; - if (cpu_getactivecpu()) - result |= 0x02000000; - else - result &= ~0x02000000; - return ((UINT64) result) << 32; -} - -WRITE64_HANDLER( bebox_crossproc_interrupts_w ) -{ - static const struct - { - UINT32 mask; - int cpunum; - int active_high; - int inputline; - } crossproc_map[] = - { - { 0x40000000, 0, 1, PPC_INPUT_LINE_SMI }, - { 0x20000000, 1, 1, PPC_INPUT_LINE_SMI }, - { 0x08000000, 0, 0, PPC_INPUT_LINE_TLBISYNC }, - { 0x04000000, 1, 0, PPC_INPUT_LINE_TLBISYNC } - }; - int i, line; - UINT32 old_crossproc_interrupts = bebox_crossproc_interrupts; - - bebox_mbreg32_w(&bebox_crossproc_interrupts, data, mem_mask); - - for (i = 0; i < sizeof(crossproc_map) / sizeof(crossproc_map[0]); i++) - { - if ((old_crossproc_interrupts ^ bebox_crossproc_interrupts) & crossproc_map[i].mask) - { - if (bebox_crossproc_interrupts & crossproc_map[i].mask) - line = crossproc_map[i].active_high ? ASSERT_LINE : CLEAR_LINE; - else - line = crossproc_map[i].active_high ? CLEAR_LINE : ASSERT_LINE; - - if (LOG_INTERRUPTS) - { - logerror("bebox_crossproc_interrupts_w(): CPU #%d %s %s\n", - crossproc_map[i].cpunum, line ? "Asserting" : "Clearing", - (crossproc_map[i].inputline == PPC_INPUT_LINE_SMI) ? "SMI" : "TLBISYNC"); - } - - cpunum_set_input_line(crossproc_map[i].cpunum, crossproc_map[i].inputline, line); - } - } -} - -WRITE64_HANDLER( bebox_processor_resets_w ) -{ - UINT8 b = (UINT8) (data >> 56); - - if (b & 0x20) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, (b & 0x80) ? CLEAR_LINE : ASSERT_LINE); - } -} - - -static void bebox_update_interrupts(void) -{ - int cpunum; - UINT32 interrupt; - - for (cpunum = 0; cpunum < 2; cpunum++) - { - interrupt = bebox_interrupts & bebox_cpu_imask[cpunum]; - - if (LOG_INTERRUPTS) - { - logerror("\tbebox_update_interrupts(): CPU #%d [%08X|%08X] IRQ %s\n", cpunum, - bebox_interrupts, bebox_cpu_imask[cpunum], interrupt ? "on" : "off"); - } - - cpunum_set_input_line(cpunum, INPUT_LINE_IRQ0, interrupt ? ASSERT_LINE : CLEAR_LINE); - } -} - - -static void bebox_set_irq_bit(unsigned int interrupt_bit, int val) -{ - static const char *interrupt_names[32] = - { - NULL, - NULL, - "GEEKPORT", - "ADC", - "IR", - "PIC8259", - "PCIRQ 15", - "IDE", - "MOUSE", - "PCIRQ 11", - "PCIRQ 10", - "PCIRQ 9", - "PARALLEL", - "FLOPPY", - "PCIRQ 5", - "RTC", - "KEYBOARD", - "SOUND", - "PCI3", - "PCI2", - "PCI1", - "SCSI", - "MIDI2", - "MIDI1", - "COM4", - "COM3", - "COM2", - "COM1", - NULL, - "SMI1", - "SMI0", - NULL - }; - UINT32 old_interrupts; - - if (LOG_INTERRUPTS) - { - /* make sure that we don't shoot ourself in the foot */ - if ((interrupt_bit > sizeof(interrupt_names) / sizeof(interrupt_names[0])) && !interrupt_names[interrupt_bit]) - fatalerror("Raising invalid interrupt %u", interrupt_bit); - - logerror("bebox_set_irq_bit(): pc[0]=0x%08x pc[1]=0x%08x %s interrupt #%u (%s)\n", - (unsigned) cpunum_get_reg(0, REG_PC), - (unsigned) cpunum_get_reg(1, REG_PC), - val ? "Asserting" : "Clearing", - interrupt_bit, interrupt_names[interrupt_bit]); - } - - old_interrupts = bebox_interrupts; - if (val) - bebox_interrupts |= 1 << interrupt_bit; - else - bebox_interrupts &= ~(1 << interrupt_bit); - - /* if interrupt values have changed, update the lines */ - if (bebox_interrupts != old_interrupts) - bebox_update_interrupts(); -} - - -/************************************* - * - * COM ports - * - *************************************/ - -static void bebox_uart_transmit(int id, int data) -{ - if (LOG_UART) - logerror("bebox_uart_transmit(): id=%d data=0x%02X\n", id, data); -} - - -static void bebox_uart_handshake(int id, int data) -{ - if (LOG_UART) - logerror("bebox_uart_handshake(): id=%d data=0x%02X\n", id, data); -} - - -static const uart8250_interface bebox_uart_inteface = -{ - TYPE16550, - 0, - NULL, - bebox_uart_transmit, - bebox_uart_handshake -}; - - -/************************************* - * - * Floppy Disk Controller - * - *************************************/ - -#define FDC_DMA 2 - -static void bebox_fdc_interrupt(int state) -{ - bebox_set_irq_bit(13, state); - pic8259_set_irq_line(0, 6, state); -} - - -static void bebox_fdc_dma_drq(int state, int read_) -{ - dma8237_drq_write(0, FDC_DMA, state); -} - - -static mess_image *bebox_fdc_get_image(int floppy_index) -{ - /* the BeBox boot ROM seems to query for floppy #1 when it should be - * querying for floppy #0 */ - return image_from_devtype_and_index(IO_FLOPPY, 0); -} - - -static const struct pc_fdc_interface bebox_fdc_interface = -{ - SMC37C78, - bebox_fdc_interrupt, - bebox_fdc_dma_drq, - bebox_fdc_get_image -}; - - -/************************************* - * - * 8259 PIC - * - *************************************/ - -READ64_HANDLER( bebox_interrupt_ack_r ) -{ - int result; - result = pic8259_acknowledge(0); - if (result == 2) - result = pic8259_acknowledge(1); - bebox_set_irq_bit(5, 0); /* HACK */ - return ((UINT64) result) << 56; -} - - - -static void bebox_pic_set_int_line(int which, int interrupt) -{ - switch(which) - { - case 0: - /* Master */ - bebox_set_irq_bit(5, interrupt); - break; - - case 1: - /* Slave */ - pic8259_set_irq_line(0, 2, interrupt); - break; - } -} - - - -/************************************* - * - * Floppy/IDE/ATA - * - *************************************/ - -static READ8_HANDLER( bebox_800001F0_8_r ) { return ide_controller_0_r(offset + 0x1F0); } -static WRITE8_HANDLER( bebox_800001F0_8_w ) { ide_controller_0_w(offset + 0x1F0, data); } - -READ64_HANDLER( bebox_800001F0_r ) { return read64be_with_read8_handler(bebox_800001F0_8_r, offset, mem_mask); } -WRITE64_HANDLER( bebox_800001F0_w ) { write64be_with_write8_handler(bebox_800001F0_8_w, offset, data, mem_mask); } - - -READ64_HANDLER( bebox_800003F0_r ) -{ - UINT64 result = pc64be_fdc_r(offset, mem_mask | 0xFFFF); - - if (((mem_mask >> 8) & 0xFF) == 0) - { - result &= ~(0xFF << 8); - result |= ide_controller_0_r(0x3F6) << 8; - } - - if (((mem_mask >> 0) & 0xFF) == 0) - { - result &= ~(0xFF << 0); - result |= ide_controller_0_r(0x3F7) << 0; - } - return result; -} - - -WRITE64_HANDLER( bebox_800003F0_w ) -{ - pc64be_fdc_w(offset, data, mem_mask | 0xFFFF); - - if (((mem_mask >> 8) & 0xFF) == 0) - ide_controller_0_w(0x3F6, (data >> 8) & 0xFF); - - if (((mem_mask >> 0) & 0xFF) == 0) - ide_controller_0_w(0x3F7, (data >> 0) & 0xFF); -} - - -static void bebox_ide_interrupt(int state) -{ - bebox_set_irq_bit(7, state); - pic8259_set_irq_line(1, 6, state); -} - - -static struct ide_interface bebox_ide_interface = -{ - bebox_ide_interrupt -}; - - -/************************************* - * - * Video card (Cirrus Logic CL-GD5430) - * - *************************************/ - -static read8_handler bebox_vga_memory_rh; -static write8_handler bebox_vga_memory_wh; - -static READ64_HANDLER( bebox_video_r ) -{ - const UINT64 *mem = (const UINT64 *) pc_vga_memory(); - return BIG_ENDIANIZE_INT64(mem[offset]); -} - - -static WRITE64_HANDLER( bebox_video_w ) -{ - UINT64 *mem = (UINT64 *) pc_vga_memory(); - data = BIG_ENDIANIZE_INT64(data); - mem_mask = BIG_ENDIANIZE_INT64(mem_mask); - COMBINE_DATA(&mem[offset]); -} - - -static READ64_HANDLER( bebox_vga_memory_r ) -{ - return read64be_with_read8_handler(bebox_vga_memory_rh, offset, mem_mask); -} - - -static WRITE64_HANDLER( bebox_vga_memory_w ) -{ - write64be_with_write8_handler(bebox_vga_memory_wh, offset, data, mem_mask); -} - - -static void bebox_map_vga_memory(offs_t begin, offs_t end, read8_handler rh, write8_handler wh) -{ - read64_handler rh64 = (rh == MRA8_BANK4) ? MRA64_BANK4 : bebox_vga_memory_r; - write64_handler wh64 = (wh == MWA8_BANK4) ? MWA64_BANK4 : bebox_vga_memory_w; - - bebox_vga_memory_rh = rh; - bebox_vga_memory_wh = wh; - - memory_install_read64_handler(0, ADDRESS_SPACE_PROGRAM, 0xC00A0000, 0xC00BFFFF, 0, 0, MRA64_NOP); - memory_install_write64_handler(0, ADDRESS_SPACE_PROGRAM, 0xC00A0000, 0xC00BFFFF, 0, 0, MWA64_NOP); - - memory_install_read64_handler(0, ADDRESS_SPACE_PROGRAM, 0xC0000000 + begin, 0xC0000000 + end, 0, 0, rh64); - memory_install_write64_handler(0, ADDRESS_SPACE_PROGRAM, 0xC0000000 + begin, 0xC0000000 + end, 0, 0, wh64); -} - - -static const struct pc_vga_interface bebox_vga_interface = -{ - 4, - bebox_map_vga_memory, - - NULL, - - ADDRESS_SPACE_PROGRAM, - 0x80000000 -}; - - -/************************************* - * - * 8237 DMA - * - *************************************/ - -static UINT16 dma_offset[2][4]; -static UINT8 at_pages[0x10]; - -static READ8_HANDLER(at_page8_r) -{ - UINT8 data = at_pages[offset % 0x10]; - - switch(offset % 8) - { - case 1: - data = dma_offset[(offset / 8) & 1][2]; - break; - case 2: - data = dma_offset[(offset / 8) & 1][3]; - break; - case 3: - data = dma_offset[(offset / 8) & 1][1]; - break; - case 7: - data = dma_offset[(offset / 8) & 1][0]; - break; - } - return data; -} - - -static WRITE8_HANDLER(at_page8_w) -{ - at_pages[offset % 0x10] = data; - - switch(offset % 8) - { - case 1: - dma_offset[(offset / 8) & 1][2] &= 0xFF00; - dma_offset[(offset / 8) & 1][2] |= ((UINT16 ) data) << 0; - break; - case 2: - dma_offset[(offset / 8) & 1][3] &= 0xFF00; - dma_offset[(offset / 8) & 1][3] |= ((UINT16 ) data) << 0; - break; - case 3: - dma_offset[(offset / 8) & 1][1] &= 0xFF00; - dma_offset[(offset / 8) & 1][1] |= ((UINT16 ) data) << 0; - break; - case 7: - dma_offset[(offset / 8) & 1][0] &= 0xFF00; - dma_offset[(offset / 8) & 1][0] |= ((UINT16 ) data) << 0; - break; - } -} - - -READ64_HANDLER(bebox_page_r) -{ - return read64be_with_read8_handler(at_page8_r, offset, mem_mask); -} - - -WRITE64_HANDLER(bebox_page_w) -{ - write64be_with_write8_handler(at_page8_w, offset, data, mem_mask); -} - - -static WRITE8_HANDLER(at_hipage8_w) -{ - switch(offset % 8) - { - case 1: - dma_offset[(offset / 8) & 1][2] &= 0x00FF; - dma_offset[(offset / 8) & 1][2] |= ((UINT16 ) data) << 8; - break; - case 2: - dma_offset[(offset / 8) & 1][3] &= 0x00FF; - dma_offset[(offset / 8) & 1][3] |= ((UINT16 ) data) << 8; - break; - case 3: - dma_offset[(offset / 8) & 1][1] &= 0x00FF; - dma_offset[(offset / 8) & 1][1] |= ((UINT16 ) data) << 8; - break; - case 7: - dma_offset[(offset / 8) & 1][0] &= 0x00FF; - dma_offset[(offset / 8) & 1][0] |= ((UINT16 ) data) << 8; - break; - } -} - - -READ64_HANDLER(bebox_80000480_r) -{ - fatalerror("NYI"); -} - - -WRITE64_HANDLER(bebox_80000480_w) -{ - write64be_with_write8_handler(at_hipage8_w, offset, data, mem_mask); -} - - -static UINT8 bebox_dma_read_byte(int channel, offs_t offset) -{ - offs_t page_offset = (((offs_t) dma_offset[0][channel]) << 16) - & 0x7FFF0000; - return program_read_byte(page_offset + offset); -} - - -static void bebox_dma_write_byte(int channel, offs_t offset, UINT8 data) -{ - offs_t page_offset = (((offs_t) dma_offset[0][channel]) << 16) - & 0x7FFF0000; - program_write_byte(page_offset + offset, data); -} - - -static const struct dma8237_interface bebox_dma = -{ - 0, - TIME_IN_USEC(1), - - bebox_dma_read_byte, - bebox_dma_write_byte, - - { 0, 0, pc_fdc_dack_r, 0 }, - { 0, 0, pc_fdc_dack_w, 0 }, - pc_fdc_set_tc_state -}; - - -/************************************* - * - * 8254 PIT - * - *************************************/ - -static void bebox_timer0_w(int state) -{ - pic8259_set_irq_line(0, 0, state); -} - - -static const struct pit8253_config bebox_pit8254_config = -{ - TYPE8254, - { - { - 4772720/4, /* heartbeat IRQ */ - bebox_timer0_w, - NULL - }, - { - 4772720/4, /* dram refresh */ - NULL, - NULL - }, - { - 4772720/4, /* pio port c pin 4, and speaker polling enough */ - NULL, - NULL - } - } -}; - - -/************************************* - * - * Flash ROM - * - *************************************/ - -static READ8_HANDLER( bebox_flash8_r ) -{ - offset = (offset & ~7) | (7 - (offset & 7)); - return intelflash_read(0, offset); -} - - -static WRITE8_HANDLER( bebox_flash8_w ) -{ - offset = (offset & ~7) | (7 - (offset & 7)); - intelflash_write(0, offset, data); -} - - -READ64_HANDLER( bebox_flash_r ) -{ - return read64be_with_read8_handler(bebox_flash8_r, offset, mem_mask); -} - - -WRITE64_HANDLER( bebox_flash_w ) -{ - write64be_with_write8_handler(bebox_flash8_w, offset, data, mem_mask); -} - - -/************************************* - * - * Keyboard - * - *************************************/ - -static void bebox_keyboard_interrupt(int state) -{ - bebox_set_irq_bit(16, state); - pic8259_set_irq_line(0, 1, state); -} - - -static const struct kbdc8042_interface bebox_8042_interface = -{ - KBDC8042_STANDARD, - NULL, - bebox_keyboard_interrupt -}; - - -/************************************* - * - * SCSI - * - *************************************/ - -static UINT32 scsi53c810_data[0x100 / 4]; - -static READ64_HANDLER( scsi53c810_r ) -{ - int reg = offset*8; - UINT64 r = 0; - if (!(mem_mask & U64(0xff00000000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+0) << 56; - } - if (!(mem_mask & U64(0x00ff000000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+1) << 48; - } - if (!(mem_mask & U64(0x0000ff0000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+2) << 40; - } - if (!(mem_mask & U64(0x000000ff00000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+3) << 32; - } - if (!(mem_mask & U64(0x00000000ff000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+4) << 24; - } - if (!(mem_mask & U64(0x0000000000ff0000))) { - r |= (UINT64)lsi53c810_reg_r(reg+5) << 16; - } - if (!(mem_mask & U64(0x000000000000ff00))) { - r |= (UINT64)lsi53c810_reg_r(reg+6) << 8; - } - if (!(mem_mask & U64(0x00000000000000ff))) { - r |= (UINT64)lsi53c810_reg_r(reg+7) << 0; - } - - return r; -} - - -static WRITE64_HANDLER( scsi53c810_w ) -{ - int reg = offset*8; - if (!(mem_mask & U64(0xff00000000000000))) { - lsi53c810_reg_w(reg+0, data >> 56); - } - if (!(mem_mask & U64(0x00ff000000000000))) { - lsi53c810_reg_w(reg+1, data >> 48); - } - if (!(mem_mask & U64(0x0000ff0000000000))) { - lsi53c810_reg_w(reg+2, data >> 40); - } - if (!(mem_mask & U64(0x000000ff00000000))) { - lsi53c810_reg_w(reg+3, data >> 32); - } - if (!(mem_mask & U64(0x00000000ff000000))) { - lsi53c810_reg_w(reg+4, data >> 24); - } - if (!(mem_mask & U64(0x0000000000ff0000))) { - lsi53c810_reg_w(reg+5, data >> 16); - } - if (!(mem_mask & U64(0x000000000000ff00))) { - lsi53c810_reg_w(reg+6, data >> 8); - } - if (!(mem_mask & U64(0x00000000000000ff))) { - lsi53c810_reg_w(reg+7, data >> 0); - } -} - - -#define BYTE_REVERSE32(x) (((x >> 24) & 0xff) | \ - ((x >> 8) & 0xff00) | \ - ((x << 8) & 0xff0000) | \ - ((x << 24) & 0xff000000)) - -static UINT32 scsi53c810_fetch(UINT32 dsp) -{ - UINT32 result; - result = program_read_dword_64be(dsp & 0x7FFFFFFF); - return BYTE_REVERSE32(result); -} - - -static void scsi53c810_irq_callback(void) -{ - bebox_set_irq_bit(21, 1); - bebox_set_irq_bit(21, 0); -} - - -static void scsi53c810_dma_callback(UINT32 src, UINT32 dst, int length, int byteswap) -{ -} - - -static UINT32 scsi53c810_pci_read(int function, int offset, UINT32 mem_mask) -{ - UINT32 result = 0; - - if (function == 0) - { - switch(offset) - { - case 0x00: /* vendor/device ID */ - result = 0x00011000; - break; - - case 0x08: - result = 0x01000000; - break; - - default: - result = scsi53c810_data[offset / 4]; - break; - } - } - return result; -} - - -static void scsi53c810_pci_write(int function, int offset, UINT32 data, UINT32 mem_mask) -{ - offs_t addr; - - if (function == 0) - { - scsi53c810_data[offset / 4] = data; - - switch(offset) - { - case 0x04: - /* command - * - * bit 8: SERR/ Enable - * bit 6: Enable Parity Response - * bit 4: Write and Invalidate Mode - * bit 2: Enable Bus Mastering - * bit 1: Enable Memory Space - * bit 0: Enable IO Space - */ - if (data & 0x02) - { - /* brutal ugly hack; at some point the PCI code should be handling this stuff */ - if (scsi53c810_data[5] != 0xFFFFFFF0) - { - addr = (scsi53c810_data[5] | 0xC0000000) & ~0xFF; - memory_install_read64_handler(0, ADDRESS_SPACE_PROGRAM, addr, addr + 0xFF, 0, 0, scsi53c810_r); - memory_install_write64_handler(0, ADDRESS_SPACE_PROGRAM, addr, addr + 0xFF, 0, 0, scsi53c810_w); - } - } - break; - } - } -} - - -static const struct pci_device_info scsi53c810_callbacks = -{ - scsi53c810_pci_read, - scsi53c810_pci_write -}; - -static SCSIConfigTable dev_table = -{ - 2, /* 2 SCSI devices */ - { - { SCSI_ID_0, 0, SCSI_DEVICE_HARDDISK }, /* SCSI ID 0, using HD 0, HD */ - { SCSI_ID_3, 0, SCSI_DEVICE_CDROM } /* SCSI ID 3, using CHD 0, CD-ROM */ - } -}; - -static struct LSI53C810interface scsi53c810_intf = -{ - &dev_table, /* SCSI device table */ - &scsi53c810_irq_callback, - &scsi53c810_dma_callback, - &scsi53c810_fetch, -}; - - -/************************************* - * - * Driver main - * - *************************************/ - -NVRAM_HANDLER( bebox ) -{ - nvram_handler_intelflash(machine, 0, file, read_or_write); -} - -MACHINE_RESET( bebox ) -{ - cpunum_set_input_line(0, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - ide_controller_reset(0); -} - -DRIVER_INIT( bebox ) -{ - int cpu; - offs_t vram_begin; - offs_t vram_end; - - mpc105_init(0); - pci_add_device(0, 1, &cirrus5430_callbacks); - if (0) - pci_add_device(0, 12, &scsi53c810_callbacks); - - /* set up boot and flash ROM */ - memory_set_bankptr(2, memory_region(REGION_USER2)); - intelflash_init(0, FLASH_FUJITSU_29F016A, memory_region(REGION_USER1)); - - /* install MESS managed RAM */ - for (cpu = 0; cpu < 2; cpu++) - { - memory_install_read64_handler(cpu, ADDRESS_SPACE_PROGRAM, 0, mess_ram_size - 1, 0, 0x02000000, MRA64_BANK3); - memory_install_write64_handler(cpu, ADDRESS_SPACE_PROGRAM, 0, mess_ram_size - 1, 0, 0x02000000, MWA64_BANK3); - } - memory_set_bankptr(3, mess_ram); - - /* set up UARTs */ - uart8250_init(0, NULL); - uart8250_init(1, NULL); - uart8250_init(2, NULL); - uart8250_init(3, &bebox_uart_inteface); - - pc_fdc_init(&bebox_fdc_interface); - mc146818_init(MC146818_STANDARD); - pic8259_init(2, bebox_pic_set_int_line); - ide_controller_init_custom(0, &bebox_ide_interface, NULL); - pc_vga_init(&bebox_vga_interface, &cirrus_svga_interface); - pit8253_init(1, &bebox_pit8254_config); - kbdc8042_init(&bebox_8042_interface); - - dma8237_init(2); - dma8237_config(0, &bebox_dma); - - /* install VGA memory */ - vram_begin = 0xC1000000; - vram_end = vram_begin + pc_vga_memory_size() - 1; - for (cpu = 0; cpu < 2; cpu++) - { - memory_install_read64_handler(cpu, ADDRESS_SPACE_PROGRAM, vram_begin, vram_end, 0, 0, bebox_video_r); - memory_install_write64_handler(cpu, ADDRESS_SPACE_PROGRAM, vram_begin, vram_end, 0, 0, bebox_video_w); - } - - /* SCSI */ - lsi53c810_init(&scsi53c810_intf); - - /* The following is a verrrry ugly hack put in to support NetBSD for - * NetBSD. When NetBSD/bebox it does most of its work on CPU #0 and then - * lets CPU #1 go. However, it seems that CPU #1 jumps into never-never - * land, crashes, and then goes into NetBSD's crash handler which catches - * it. The current PowerPC core cannot catch this trip into never-never - * land properly, and MESS crashes. In the interim, this "mitten" catches - * the crash - */ - { - static UINT64 ops[2] = - { - /* li r0, 0x0700 */ - /* mtspr ctr, r0 */ - U64(0x380007007C0903A6), - - /* bcctr 0x14, 0 */ - U64(0x4E80042000000000) - }; - memory_install_read64_handler(1, ADDRESS_SPACE_PROGRAM, 0x9421FFF0, 0x9421FFFF, 0, 0, MRA64_BANK1); - memory_set_bankptr(1, ops); - } -} diff --git a/mess/machine/cgenie.c b/mess/machine/cgenie.c deleted file mode 100644 index 6e2f7eb8a..000000000 --- a/mess/machine/cgenie.c +++ /dev/null @@ -1,1147 +0,0 @@ -/*************************************************************************** - - machine.c - - Functions to emulate general aspects of the machine - (RAM, ROM, interrupts, I/O ports) - -***************************************************************************/ - -#include -#include "driver.h" -#include "timer.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/cgenie.h" -#include "machine/wd17xx.h" -#include "devices/basicdsk.h" -#include "devices/cartslot.h" -#include "sound/ay8910.h" -#include "sound/dac.h" -#include "image.h" - -#define AYWriteReg(chip,port,value) \ - AY8910_control_port_0_w(0,port); \ - AY8910_write_port_0_w(0,value) - -#define TAPE_HEADER "Colour Genie - Virtual Tape File" - -UINT8 *cgenie_fontram; - - -int cgenie_tv_mode = -1; -int cgenie_load_cas = 0; -static int port_ff = 0xff; - -#define CGENIE_DRIVE_INFO - - - -/******************************************************** - abbreviations used: - GPL Granules Per Lump - GAT Granule Allocation Table - GATL GAT Length - GATM GAT Mask - DDGA Disk Directory Granule Allocation -*********************************************************/ -typedef struct -{ - UINT8 DDSL; /* Disk Directory Start Lump (lump number of GAT) */ - UINT8 GATL; /* # of bytes used in the Granule Allocation Table sector */ - UINT8 STEPRATE; /* step rate and somet SD/DD flag ... */ - UINT8 TRK; /* number of tracks */ - UINT8 SPT; /* sectors per track (both heads counted!) */ - UINT8 GATM; /* number of used bits per byte in the GAT sector (GAT mask) */ - UINT8 P7; /* ???? always zero */ - UINT8 FLAGS; /* ???? some flags (SS/DS bit 6) */ - UINT8 GPL; /* Sectors per granule (always 5 for the Colour Genie) */ - UINT8 DDGA; /* Disk Directory Granule allocation (number of driectory granules) */ -} PDRIVE; - -static PDRIVE pd_list[12] = { - {0x14, 0x28, 0x07, 0x28, 0x0A, 0x02, 0x00, 0x00, 0x05, 0x02}, /* CMD"<0=A" 40 tracks, SS, SD */ - {0x14, 0x28, 0x07, 0x28, 0x14, 0x04, 0x00, 0x40, 0x05, 0x04}, /* CMD"<0=B" 40 tracks, DS, SD */ - {0x18, 0x30, 0x53, 0x28, 0x12, 0x03, 0x00, 0x03, 0x05, 0x03}, /* CMD"<0=C" 40 tracks, SS, DD */ - {0x18, 0x30, 0x53, 0x28, 0x24, 0x06, 0x00, 0x43, 0x05, 0x06}, /* CMD"<0=D" 40 tracks, DS, DD */ - {0x14, 0x28, 0x07, 0x28, 0x0A, 0x02, 0x00, 0x04, 0x05, 0x02}, /* CMD"<0=E" 40 tracks, SS, SD */ - {0x14, 0x28, 0x07, 0x28, 0x14, 0x04, 0x00, 0x44, 0x05, 0x04}, /* CMD"<0=F" 40 tracks, DS, SD */ - {0x18, 0x30, 0x53, 0x28, 0x12, 0x03, 0x00, 0x07, 0x05, 0x03}, /* CMD"<0=G" 40 tracks, SS, DD */ - {0x18, 0x30, 0x53, 0x28, 0x24, 0x06, 0x00, 0x47, 0x05, 0x06}, /* CMD"<0=H" 40 tracks, DS, DD */ - {0x28, 0x50, 0x07, 0x50, 0x0A, 0x02, 0x00, 0x00, 0x05, 0x02}, /* CMD"<0=I" 80 tracks, SS, SD */ - {0x28, 0x50, 0x07, 0x50, 0x14, 0x04, 0x00, 0x40, 0x05, 0x04}, /* CMD"<0=J" 80 tracks, DS, SD */ - {0x30, 0x60, 0x53, 0x50, 0x12, 0x03, 0x00, 0x03, 0x05, 0x03}, /* CMD"<0=K" 80 tracks, SS, DD */ - {0x30, 0x60, 0x53, 0x50, 0x24, 0x06, 0x00, 0x43, 0x05, 0x06}, /* CMD"<0=L" 80 tracks, DS, DD */ -}; - -#define IRQ_TIMER 0x80 -#define IRQ_FDC 0x40 -static UINT8 irq_status = 0; - -static UINT8 motor_drive = 0; -static UINT8 head = 0; - -/* current tape file handles */ -static char tape_name[12+1]; -static mame_file *tape_get_file = 0; - -/* tape buffer for the first eight bytes at write (to extract a filename) */ -static UINT8 tape_buffer[9]; - -/* file offset within tape file */ -static int tape_count = 0; - -/* number of sync and data bits that were written */ -static int put_bit_count = 0; - -/* number of sync and data bits to read */ -static int get_bit_count = 0; - -/* sync and data bits mask */ -static int tape_bits = 0; - -/* time in cycles for the next bit at read */ -static int tape_time = 0; - -/* flag if writing to tape detected the sync header A5 already */ -static int in_sync = 0; - -/* cycle count at last output port change */ -static int put_cycles = 0; - -/* cycle count at last input port read */ -static int get_cycles = 0; - -/* a prototype to be called from cgenie_stop_machine */ -static void tape_put_close(running_machine *machine); - - -static OPBASE_HANDLER (opbaseoverride) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - mess_image *img; - UINT8 *buff, *s, data; - UINT16 size, entry = 0, block_len, block_ofs = 0; - - /* check if the BASIC prompt is visible on the screen */ - if( cgenie_load_cas && RAM[0x4400+3*40] == 0x3e ) - { - cgenie_load_cas = 0; - - img = image_from_devtype_and_index(IO_CASSETTE, 0); - - if (image_exists(img)) - { - buff = (UINT8*) malloc(65536); - if( !buff ) - { - logerror("failed to allocate 64K buff\n"); - return address; - } - - size = image_fread(img, buff, 65536); - s = buff; - if( memcmp(s, TAPE_HEADER, sizeof(TAPE_HEADER)-1) == 0 ) - { - s = (UINT8*)memchr(s, 26, size); - if( s ) - { - *s++ = '\n'; - *s++ = '\0'; - logerror("%s",s); - } - size -= s - buff; - } - if( s[0] == 0x66 && s[1] == 0x55 && s[8] == 0x3c ) - { - logerror("image name: [%-6.6s]\n",s+1); - s += 8; - size -= 8; - while( size > 3 ) - { - data = *s++; - switch( data ) - { - case 0x01: /* CMD file header */ - case 0x07: /* another type of CMD file header */ - case 0x3c: /* CAS file header */ - block_len = *s++; - /* on CMD files size zero means size 256 */ - if( block_len == 0 ) - block_len = 256; - block_ofs = *s++; - block_ofs += 256 * *s++; - if( data != 0x3c ) - { - block_len -= 2; - if( block_len == 0 ) - block_len = 256; - } - size -= 4; - logerror("cgenie_cmd_load block ($%02X) %d at $%04X\n", data, block_len, block_ofs); - while( block_len && size ) - { - program_write_byte(block_ofs, *s); - s++; - block_ofs++; - block_len--; - size--; - } - if( data == 0x3c ) - s++; - break; - case 0x02: - block_len = *s++; - size -= 1; - case 0x78: - block_ofs = *s++; - block_ofs += 256 * *s++; - if( !entry ) - entry = block_ofs; - logerror( "cgenie_cmd_load entry ($%02X) at $%04X\n", data, entry); - size -= 3; - if( size <= 3 ) - { - logerror("starting program at $%04X\n", block_ofs); - } - break; - default: - size--; - } - } - activecpu_set_reg(REG_PC, entry); - } - free(buff); - } - memory_set_opbase_handler(0,NULL); - } - return address; -} - -static void cgenie_fdc_callback(int); - -static void cgenie_machine_reset(running_machine *machine) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - - /* reset the AY8910 to be quiet, since the cgenie BIOS doesn't */ - AYWriteReg(0, 0, 0); - AYWriteReg(0, 1, 0); - AYWriteReg(0, 2, 0); - AYWriteReg(0, 3, 0); - AYWriteReg(0, 4, 0); - AYWriteReg(0, 5, 0); - AYWriteReg(0, 6, 0); - AYWriteReg(0, 7, 0x3f); - AYWriteReg(0, 8, 0); - AYWriteReg(0, 9, 0); - AYWriteReg(0, 10, 0); - - /* wipe out color RAM */ - memset(&ROM[0x0f000], 0x00, 0x0400); - - /* wipe out font RAM */ - memset(&ROM[0x0f400], 0xff, 0x0400); - - wd179x_init(WD_TYPE_179X,cgenie_fdc_callback); - - if( readinputport(0) & 0x80 ) - { - logerror("cgenie floppy discs enabled\n"); - } - else - { - logerror("cgenie floppy discs disabled\n"); - } - - /* copy DOS ROM, if enabled or wipe out that memory area */ - if( readinputport(0) & 0x40 ) - { - if ( readinputport(0) & 0x080 ) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_ROM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MWA8_ROM); - logerror("cgenie DOS enabled\n"); - memcpy(&ROM[0x0c000],&ROM[0x10000], 0x2000); - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MWA8_NOP); - logerror("cgenie DOS disabled (no floppy image given)\n"); - } - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MWA8_NOP); - logerror("cgenie DOS disabled\n"); - memset(&memory_region(REGION_CPU1)[0x0c000], 0x00, 0x2000); - } - - /* copy EXT ROM, if enabled or wipe out that memory area */ - if( readinputport(0) & 0x20 ) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, 0, 0, MRA8_ROM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, 0, 0, MWA8_ROM); - logerror("cgenie EXT enabled\n"); - memcpy(&memory_region(REGION_CPU1)[0x0e000], - &memory_region(REGION_CPU1)[0x12000], 0x1000); - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, 0, 0, MWA8_NOP); - logerror("cgenie EXT disabled\n"); - memset(&memory_region(REGION_CPU1)[0x0e000], 0x00, 0x1000); - } - - cgenie_load_cas = 1; - memory_set_opbase_handler(0, opbaseoverride); - -} - -MACHINE_START( cgenie ) -{ - UINT8 *gfx = memory_region(REGION_GFX2); - int i; - /* - * Every fifth cycle is a wait cycle, so I reduced - * the overlocking by one fitfth - */ - cpunum_set_clockscale(0, 0.80); - - /* Initialize some patterns to be displayed in graphics mode */ - for( i = 0; i < 256; i++ ) - memset(gfx + i * 8, i, 8); - - /* set up RAM */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, 0, 0, cgenie_videoram_w); - videoram = mess_ram; - memory_set_bankptr(1, mess_ram); - - add_reset_callback(machine, cgenie_machine_reset); - add_exit_callback(machine, tape_put_close); - return 0; -} - - -DEVICE_LOAD( cgenie_cassette ) -{ - return INIT_PASS; -} - -/* basic-dsk is a disk image format which has the tracks and sectors - * stored in order, no information is stored which details the number - * of tracks, number of sides, number of sectors etc, so we need to - * set that up here - */ -DEVICE_LOAD( cgenie_floppy ) -{ - int i, j, dir_offset; - UINT8 buff[16]; - UINT8 tracks = 0; - UINT8 heads = 0; - UINT8 spt = 0; - short dir_sector = 0; - short dir_length = 0; - - /* A Floppy Isnt manditory, so return if none */ - if (device_load_basicdsk_floppy(image) != INIT_PASS) - return INIT_FAIL; - - /* determine image geometry */ - image_fseek(image, 0, SEEK_SET); - - /* determine geometry from disk contents */ - for( i = 0; i < 12; i++ ) - { - image_fseek(image, pd_list[i].SPT * 256, SEEK_SET); - image_fread(image, buff, 16); - /* find an entry with matching DDSL */ - if (buff[0] != 0x00 || buff[1] != 0xfe || buff[2] != pd_list[i].DDSL) - continue; - logerror("cgenie: checking format #%d\n", i); - - dir_sector = pd_list[i].DDSL * pd_list[i].GATM * pd_list[i].GPL + pd_list[i].SPT; - dir_length = pd_list[i].DDGA * pd_list[i].GPL; - - /* scan directory for DIR/SYS or NCW1983/JHL files */ - /* look into sector 2 and 3 first entry relative to DDSL */ - for( j = 16; j < 32; j += 8 ) - { - dir_offset = dir_sector * 256 + j * 32; - if( image_fseek(image, dir_offset, SEEK_SET) < 0 ) - break; - if( image_fread(image, buff, 16) != 16 ) - break; - if( !strncmp((char*)buff + 5, "DIR SYS", 11) || - !strncmp((char*)buff + 5, "NCW1983 JHL", 11) ) - { - tracks = pd_list[i].TRK; - heads = (pd_list[i].SPT > 18) ? 2 : 1; - spt = pd_list[i].SPT / heads; - dir_sector = pd_list[i].DDSL * pd_list[i].GATM * pd_list[i].GPL + pd_list[i].SPT; - dir_length = pd_list[i].DDGA * pd_list[i].GPL; - memcpy(memory_region(REGION_CPU1) + 0x5A71 + image_index_in_device(image) * sizeof(PDRIVE), &pd_list[i], sizeof(PDRIVE)); - break; - } - } - - logerror("cgenie: geometry %d tracks, %d heads, %d sec/track\n", tracks, heads, spt); - /* set geometry so disk image can be read */ - basicdsk_set_geometry(image, tracks, heads, spt, 256, 0, 0, FALSE); - - logerror("cgenie: directory sectors %d - %d (%d sectors)\n", dir_sector, dir_sector + dir_length - 1, dir_length); - /* mark directory sectors with deleted data address mark */ - /* assumption dir_sector is a sector offset */ - for (j = 0; j < dir_length; j++) - { - UINT8 track; - UINT8 side; - UINT8 sector_id; - UINT16 track_offset; - UINT16 sector_offset; - - /* calc sector offset */ - sector_offset = dir_sector + j; - - /* get track offset */ - track_offset = sector_offset / spt; - - /* calc track */ - track = track_offset / heads; - - /* calc side */ - side = track_offset % heads; - - /* calc sector id - first sector id is 0! */ - sector_id = sector_offset % spt; - - /* set deleted data address mark for sector specified */ - basicdsk_set_ddam(image, track, side, sector_id, 1); - } - - } - return INIT_PASS; -} - -/************************************* - * - * Tape emulation. - * - *************************************/ - -/******************************************************************* - * tape_put_byte - * write next data byte to virtual tape. After collecting the first - * nine bytes try to extract the kind of data and filename. - *******************************************************************/ -static void tape_put_byte(UINT8 value) -{ - mame_file *file; - - if( tape_count < 9 ) - { - tape_name[0] = '\0'; - tape_buffer[tape_count++] = value; - if( tape_count == 9 ) - { - /* BASIC tape ? */ - if( tape_buffer[1] != 0x55 || tape_buffer[8] != 0x3c ) - sprintf(tape_name, "basic%c.cas", tape_buffer[1]); - else - /* SYSTEM tape ? */ - if( tape_buffer[1] == 0x55 && tape_buffer[8] == 0x3c ) - sprintf(tape_name, "%-6.6s.cas", tape_buffer + 2); - else - strcpy(tape_name, "unknown.cas"); - mame_fopen(SEARCHPATH_IMAGE, tape_name, OPEN_FLAG_WRITE, &file); - } - } - else - { - tape_count++; - } -} - -/******************************************************************* - * tape_put_close - * eventuall flush output buffer and close an open - * virtual tape output file. - *******************************************************************/ -static void tape_put_close(running_machine *machine) -{ - tape_count = 0; -} - -/******************************************************************* - * tape_put_bit - * port FF tape status bit changed. Figure out what to do with it ;-) - *******************************************************************/ -static void tape_put_bit(void) -{ - int now_cycles = activecpu_gettotalcycles(); - int diff = now_cycles - put_cycles; - int limit = 12 * (memory_region(REGION_CPU1)[0x4310] + memory_region(REGION_CPU1)[0x4311]); - UINT8 value; - - /* overrun since last write ? */ - if( diff > 4000 ) - { - /* reset tape output */ - tape_put_close(Machine); - put_bit_count = tape_bits = in_sync = 0; - } - else - { - /* change within time for a 1 bit ? */ - if( diff < limit ) - { - tape_bits = (tape_bits << 1) | 1; - switch( in_sync ) - { - case 0: /* look for sync AA */ - if( (tape_bits & 0xffff) == 0xcccc ) - { - popmessage("Tape sync1 written"); - in_sync = 1; - } - break; - case 1: /* look for sync 66 */ - if( (tape_bits & 0xffff) == 0x3c3c ) - { - in_sync = 2; - popmessage("Tape sync2 written"); - put_bit_count = 16; - } - break; - case 2: /* count 1 bit */ - put_bit_count += 1; - } - } - /* no change within time indicates a 0 bit */ - else - { - tape_bits <<= 2; - switch (in_sync) - { - case 0: /* look for sync AA */ - if( (tape_bits & 0xffff) == 0xcccc ) - { - popmessage("Tape sync1 written"); - in_sync = 1; - } - break; - case 1: /* look for sync 66 */ - if( (tape_bits & 0xffff) == 0x3c3c ) - { - popmessage("Tape sync2 written"); - in_sync = 2; - put_bit_count = 16; - } - break; - case 2: /* count 2 bits */ - put_bit_count += 2; - } - } - - logerror("%4d %4d %d bits %04X\n", diff, limit, in_sync, tape_bits & 0xffff); - - /* collected 8 sync plus 8 data bits ? */ - if( put_bit_count >= 16 ) - { - /* extract data bits to value */ - value = 0; - if( tape_bits & 0x8000 ) - value |= 0x80; - if( tape_bits & 0x2000 ) - value |= 0x40; - if( tape_bits & 0x0800 ) - value |= 0x20; - if( tape_bits & 0x0200 ) - value |= 0x10; - if( tape_bits & 0x0080 ) - value |= 0x08; - if( tape_bits & 0x0020 ) - value |= 0x04; - if( tape_bits & 0x0008 ) - value |= 0x02; - if( tape_bits & 0x0002 ) - value |= 0x01; - put_bit_count -= 16; - tape_bits = 0; - tape_put_byte(value); - } - } -/* remember the cycle count of this write */ - put_cycles = now_cycles; -} - -/******************************************************************* - * tape_get_byte - * read next byte from input tape image file. - * the first 32 bytes are faked to be sync header AA. - *******************************************************************/ -static void tape_get_byte(void) -{ - UINT8 value; - - if( tape_get_file ) - { - if( tape_count < 32 ) - { - popmessage("Tape load sync1"); - value = 0xaa; - } - else - { - popmessage("Tape load '%s' $%04X bytes", tape_name, tape_count); - mame_fread(tape_get_file, &value, 1); - } - tape_bits |= 0xaaaa; - if( value & 0x80 ) - tape_bits ^= 0x4000; - if( value & 0x40 ) - tape_bits ^= 0x1000; - if( value & 0x20 ) - tape_bits ^= 0x0400; - if( value & 0x10 ) - tape_bits ^= 0x0100; - if( value & 0x08 ) - tape_bits ^= 0x0040; - if( value & 0x04 ) - tape_bits ^= 0x0010; - if( value & 0x02 ) - tape_bits ^= 0x0004; - if( value & 0x01 ) - tape_bits ^= 0x0001; - get_bit_count = 16; - tape_count++; - } -} - -/******************************************************************* - * tape_get_open - * Open a virtual tape image file for input. Look for a special - * header and skip leading description, if present. - * The filename is taken from BASIC input buffer at 41E8 ff. - *******************************************************************/ -static void tape_get_open(void) -{ - if( !tape_get_file ) - { - char buffer[sizeof(TAPE_HEADER)]; - UINT8 *ram = memory_region(REGION_CPU1); - char *p; - - sprintf(tape_name, "%-6.6s", ram + 0x41e8); - p = strchr(tape_name, ' '); - if( p ) *p = '\0'; - strcat(tape_name, ".cas"); - if (tape_name[0] != ' ') - { - logerror("tape_get_open '%s'\n", tape_name); - mame_fopen(SEARCHPATH_IMAGE, tape_name, OPEN_FLAG_READ, &tape_get_file); - } - if( tape_get_file ) - { - popmessage("Tape load '%s'", tape_name); - mame_fread(tape_get_file, buffer, sizeof(TAPE_HEADER)); - if( strncmp(buffer, TAPE_HEADER, sizeof(TAPE_HEADER) - 1) == 0 ) - { - UINT8 data; - /* skip data until zero byte */ - do - { - mame_fread(tape_get_file, &data, 1); - } while( data ); - } - else - { - /* seek back to start of tape */ - mame_fseek(tape_get_file, 0, SEEK_SET); - } - } - tape_count = 0; - } -} - -static void tape_get_bit(void) -{ - int now_cycles = activecpu_gettotalcycles(); - int limit = 10 * memory_region(REGION_CPU1)[0x4312]; - int diff = now_cycles - get_cycles; - - /* overrun since last read ? */ - if( diff >= 4000 ) - { - if( tape_get_file ) - { - mame_fclose(tape_get_file); - tape_get_file = NULL; - popmessage("Tape file closed"); - } - get_bit_count = tape_bits = tape_time = 0; - } - else - /* check what he will get for input */ - { - /* count down cycles */ - tape_time -= diff; - - /* time for the next sync or data bit ? */ - if( tape_time <= 0 ) - { - /* approx time for a bit */ - tape_time += limit; - /* need to read get new data ? */ - if( --get_bit_count <= 0 ) - { - tape_get_open(); - tape_get_byte(); - } - /* shift next sync or data bit to bit 16 */ - tape_bits <<= 1; - if( tape_bits & 0x10000 ) - port_ff ^= 1; - } - } - /* remember the cycle count of this read */ - get_cycles = now_cycles; -} - -/************************************* - * - * Port handlers. - * - *************************************/ - -/* used bits on port FF */ -#define FF_CAS 0x01 /* tape output signal */ -#define FF_BGD0 0x04 /* background color enable */ -#define FF_CHR1 0x08 /* charset 0xc0 - 0xff 1:fixed 0:defined */ -#define FF_CHR0 0x10 /* charset 0x80 - 0xbf 1:fixed 0:defined */ -#define FF_CHR (FF_CHR0 | FF_CHR1) -#define FF_FGR 0x20 /* 1: "hi" resolution graphics, 0: text mode */ -#define FF_BGD1 0x40 /* background color select 1 */ -#define FF_BGD2 0x80 /* background color select 2 */ -#define FF_BGD (FF_BGD0 | FF_BGD1 | FF_BGD2) - -WRITE8_HANDLER( cgenie_port_ff_w ) -{ - int port_ff_changed = port_ff ^ data; - - if( port_ff_changed & FF_CAS ) /* casette port changed ? */ - { - /* virtual tape ? */ - if( readinputport(0) & 0x08 ) - tape_put_bit(); - else - DAC_data_w(0,(data & FF_CAS) ? 127:0 ); - } - - /* background bits changed ? */ - if( port_ff_changed & FF_BGD ) - { - unsigned char r, g, b; - - if( data & FF_BGD0 ) - { - r = 112; - g = 0; - b = 112; - } - else - { - if( cgenie_tv_mode == 0 ) - { - switch( data & (FF_BGD1 + FF_BGD2) ) - { - case FF_BGD1: - r = 112; - g = 40; - b = 32; - break; - case FF_BGD2: - r = 40; - g = 112; - b = 32; - break; - case FF_BGD1 + FF_BGD2: - r = 72; - g = 72; - b = 72; - break; - default: - r = 0; - g = 0; - b = 0; - break; - } - } - else - { - r = 15; - g = 15; - b = 15; - } - } - palette_set_color(Machine, 0, r, g, b); - } - - /* character mode changed ? */ - if( port_ff_changed & FF_CHR ) - { - cgenie_font_offset[2] = (data & FF_CHR0) ? 0x00 : 0x80; - cgenie_font_offset[3] = (data & FF_CHR1) ? 0x00 : 0x80; - if( (port_ff_changed & FF_CHR) == FF_CHR ) - cgenie_invalidate_range(0x80, 0xff); - else - if( (port_ff_changed & FF_CHR) == FF_CHR0 ) - cgenie_invalidate_range(0x80, 0xbf); - else - cgenie_invalidate_range(0xc0, 0xff); - } - - /* graphics mode changed ? */ - if( port_ff_changed & FF_FGR ) - { - cgenie_invalidate_range(0x00, 0xff); - cgenie_mode_select(data & FF_FGR); - } - - port_ff = data; -} - - READ8_HANDLER( cgenie_port_ff_r ) -{ - /* virtual tape ? */ - - if( readinputport(0) & 0x08 ) - tape_get_bit(); - - return port_ff; -} - -int cgenie_port_xx_r( int offset ) -{ - return 0xff; -} - -/************************************* - * * - * Memory handlers * - * * - *************************************/ - -static UINT8 psg_a_out = 0x00; -static UINT8 psg_b_out = 0x00; -static UINT8 psg_a_inp = 0x00; -static UINT8 psg_b_inp = 0x00; - - READ8_HANDLER( cgenie_psg_port_a_r ) -{ - return psg_a_inp; -} - -UINT8 cgenie_psg_port_b_r(offs_t port) -{ - if( psg_a_out < 0xd0 ) - { - /* comparator value */ - psg_b_inp = 0x00; - if( input_port_9_r(0) > psg_a_out ) - psg_b_inp |= 0x80; - if( input_port_10_r(0) > psg_a_out ) - psg_b_inp |= 0x40; - if( input_port_11_r(0) > psg_a_out ) - psg_b_inp |= 0x20; - if( input_port_12_r(0) > psg_a_out ) - psg_b_inp |= 0x10; - } - else - { - /* read keypad matrix */ - psg_b_inp = 0xFF; - if( !(psg_a_out & 0x01) ) - psg_b_inp &= ~(input_port_13_r(0) & 15); - if( !(psg_a_out & 0x02) ) - psg_b_inp &= ~(input_port_13_r(0) / 16); - if( !(psg_a_out & 0x04) ) - psg_b_inp &= ~(input_port_14_r(0) & 15); - if( !(psg_a_out & 0x08) ) - psg_b_inp &= ~(input_port_14_r(0) / 16); - if( !(psg_a_out & 0x10) ) - psg_b_inp &= ~(input_port_15_r(0) & 15); - if( !(psg_a_out & 0x20) ) - psg_b_inp &= ~(input_port_15_r(0) / 16); - } - return psg_b_inp; -} - -WRITE8_HANDLER( cgenie_psg_port_a_w ) -{ - psg_a_out = data; -} - -WRITE8_HANDLER( cgenie_psg_port_b_w ) -{ - psg_b_out = data; -} - - READ8_HANDLER( cgenie_status_r ) -{ - /* If the floppy isn't emulated, return 0 */ - if( (readinputport(0) & 0x80) == 0 ) - return 0; - return wd179x_status_r(offset); -} - - READ8_HANDLER( cgenie_track_r ) -{ - /* If the floppy isn't emulated, return 0xff */ - if( (readinputport(0) & 0x80) == 0 ) - return 0xff; - return wd179x_track_r(offset); -} - - READ8_HANDLER( cgenie_sector_r ) -{ - /* If the floppy isn't emulated, return 0xff */ - if( (readinputport(0) & 0x80) == 0 ) - return 0xff; - return wd179x_sector_r(offset); -} - - READ8_HANDLER(cgenie_data_r ) -{ - /* If the floppy isn't emulated, return 0xff */ - if( (readinputport(0) & 0x80) == 0 ) - return 0xff; - return wd179x_data_r(offset); -} - -WRITE8_HANDLER( cgenie_command_w ) -{ - /* If the floppy isn't emulated, return immediately */ - if( (readinputport(0) & 0x80) == 0 ) - return; - wd179x_command_w(offset, data); -} - -WRITE8_HANDLER( cgenie_track_w ) -{ - /* If the floppy isn't emulated, ignore the write */ - if( (readinputport(0) & 0x80) == 0 ) - return; - wd179x_track_w(offset, data); -} - -WRITE8_HANDLER( cgenie_sector_w ) -{ - /* If the floppy isn't emulated, ignore the write */ - if( (readinputport(0) & 0x80) == 0 ) - return; - wd179x_sector_w(offset, data); -} - -WRITE8_HANDLER( cgenie_data_w ) -{ - /* If the floppy isn't emulated, ignore the write */ - if( (readinputport(0) & 0x80) == 0 ) - return; - wd179x_data_w(offset, data); -} - - READ8_HANDLER( cgenie_irq_status_r ) -{ -int result = irq_status; - - irq_status &= ~(IRQ_TIMER | IRQ_FDC); - return result; -} - -INTERRUPT_GEN( cgenie_timer_interrupt ) -{ - if( (irq_status & IRQ_TIMER) == 0 ) - { - irq_status |= IRQ_TIMER; - cpunum_set_input_line(0, 0, HOLD_LINE); - } -} - -static INTERRUPT_GEN( cgenie_fdc_interrupt ) -{ - if( (irq_status & IRQ_FDC) == 0 ) - { - irq_status |= IRQ_FDC; - cpunum_set_input_line(0, 0, HOLD_LINE); - } -} - -void cgenie_fdc_callback(int event) -{ - /* if disc hardware is not enabled, do not cause an int */ - if (!( readinputport(0) & 0x80 )) - return; - - switch( event ) - { - case WD179X_IRQ_CLR: - irq_status &= ~IRQ_FDC; - break; - case WD179X_IRQ_SET: - cgenie_fdc_interrupt(); - break; - } -} - -WRITE8_HANDLER( cgenie_motor_w ) -{ - UINT8 drive = 255; - - logerror("cgenie motor_w $%02X\n", data); - - if( data & 1 ) - drive = 0; - if( data & 2 ) - drive = 1; - if( data & 4 ) - drive = 2; - if( data & 8 ) - drive = 3; - - if( drive > 3 ) - return; - - /* mask head select bit */ - head = (data >> 4) & 1; - - /* currently selected drive */ - motor_drive = drive; - - wd179x_set_drive(drive); - wd179x_set_side(head); -} - -/************************************* - * Keyboard * - *************************************/ - READ8_HANDLER( cgenie_keyboard_r ) -{ - int result = 0; - - if( offset & 0x01 ) - result |= input_port_1_r(0); - if( offset & 0x02 ) - result |= input_port_2_r(0); - if( offset & 0x04 ) - result |= input_port_3_r(0); - if( offset & 0x08 ) - result |= input_port_4_r(0); - if( offset & 0x10 ) - result |= input_port_5_r(0); - if( offset & 0x20 ) - result |= input_port_6_r(0); - if( offset & 0x40 ) - result |= input_port_7_r(0); - if( offset & 0x80 ) - result |= input_port_8_r(0); - - return result; -} - -/************************************* - * Video RAM * - *************************************/ - -int cgenie_videoram_r( int offset ) -{ - return videoram[offset]; -} - -WRITE8_HANDLER( cgenie_videoram_w ) -{ - /* write to video RAM */ - if( data == videoram[offset] ) - return; /* no change */ - videoram[offset] = data; - dirtybuffer[offset] = 1; -} - - READ8_HANDLER( cgenie_colorram_r ) -{ - return colorram[offset] | 0xf0; -} - -WRITE8_HANDLER( cgenie_colorram_w ) -{ - int a; - - /* only bits 0 to 3 */ - data &= 15; - /* nothing changed ? */ - if( data == colorram[offset] ) - return; - -/* set new value */ - colorram[offset] = data; -/* make offset relative to video frame buffer offset */ - offset = (offset + (cgenie_get_register(12) << 8) + cgenie_get_register(13)) & 0x3ff; -/* mark every 1k of the frame buffer dirty */ - for( a = offset; a < 0x4000; a += 0x400 ) - dirtybuffer[a] = 1; -} - - READ8_HANDLER( cgenie_fontram_r ) -{ - return cgenie_fontram[offset]; -} - -WRITE8_HANDLER( cgenie_fontram_w ) -{ - UINT8 *dp; - int code; - - if( data == cgenie_fontram[offset] ) - return; /* no change */ - - /* store data */ - cgenie_fontram[offset] = data; - - /* convert eight pixels */ - dp = &Machine->gfx[0]->gfxdata[(256 * 8 + offset) * Machine->gfx[0]->width]; - dp[0] = (data & 0x80) ? 1 : 0; - dp[1] = (data & 0x40) ? 1 : 0; - dp[2] = (data & 0x20) ? 1 : 0; - dp[3] = (data & 0x10) ? 1 : 0; - dp[4] = (data & 0x08) ? 1 : 0; - dp[5] = (data & 0x04) ? 1 : 0; - dp[6] = (data & 0x02) ? 1 : 0; - dp[7] = (data & 0x01) ? 1 : 0; - - /* invalidate related character */ - code = 0x80 + offset / 8; - cgenie_invalidate_range(code, code); -} - -/************************************* - * - * Interrupt handlers. - * - *************************************/ - -INTERRUPT_GEN( cgenie_frame_interrupt ) -{ - if( cgenie_tv_mode != (readinputport(0) & 0x10) ) - { - cgenie_tv_mode = input_port_0_r(0) & 0x10; - memset(dirtybuffer, 1, videoram_size); - /* force setting of background color */ - port_ff ^= FF_BGD0; - cgenie_port_ff_w(0, port_ff ^ FF_BGD0); - } -} - diff --git a/mess/machine/coco.c b/mess/machine/coco.c deleted file mode 100644 index 9bf386bfa..000000000 --- a/mess/machine/coco.c +++ /dev/null @@ -1,2950 +0,0 @@ -/*************************************************************************** - - machine/coco.c - - Functions to emulate general aspects of the machine (RAM, ROM, interrupts, - I/O ports) - - References: - There are two main references for the info for this driver - - Tandy Color Computer Unravelled Series - (http://www.giftmarket.org/unravelled/unravelled.shtml) - - Assembly Language Programming For the CoCo 3 by Laurence A. Tepolt - - Kevin K. Darlings GIME reference - (http://www.cris.com/~Alxevans/gime.txt) - - Sock Masters's GIME register reference - (http://www.axess.com/twilight/sock/gime.html) - - Robert Gault's FAQ - (http://home.att.net/~robert.gault/Coco/FAQ/FAQ_main.htm) - - Discussions with L. Curtis Boyle (LCB) and John Kowalski (JK) - - TODO: - - Implement unimplemented SAM registers - - Implement unimplemented interrupts (serial) - - Choose and implement more appropriate ratios for the speed up poke - - Handle resets correctly - - In the CoCo, all timings should be exactly relative to each other. This - table shows how all clocks are relative to each other (info: JK): - - Main CPU Clock 0.89 MHz - - Horizontal Sync Interrupt 15.7 kHz/63.5us (57 clock cycles) - - Vertical Sync Interrupt 60 Hz (14934 clock cycles) - - Composite Video Color Carrier 3.58 MHz/279ns (1/4 clock cycles) - - It is also noting that the CoCo 3 had two sets of VSync interrupts. To quote - John Kowalski: - - One other thing to mention is that the old vertical interrupt and the new - vertical interrupt are not the same.. The old one is triggered by the - video's vertical sync pulse, but the new one is triggered on the next scan - line *after* the last scan line of the active video display. That is : new - vertical interrupt triggers somewheres around scan line 230 of the 262 line - screen (if a 200 line graphics mode is used, a bit earlier if a 192 line - mode is used and a bit later if a 225 line mode is used). The old vsync - interrupt triggers on scanline zero. - - 230 is just an estimate [(262-200)/2+200]. I don't think the active part - of the screen is exactly centered within the 262 line total. I can - research that for you if you want an exact number for scanlines before the - screen starts and the scanline that the v-interrupt triggers..etc. - -Dragon Alpha code added 21-Oct-2004, - Phill Harvey-Smith (afra@aurigae.demon.co.uk) - - Added AY-8912 and FDC code 30-Oct-2004. - -Fixed Dragon Alpha NMI enable/disable, following circuit traces on a real machine. - P.Harvey-Smith, 11-Aug-2005. - -Re-implemented Alpha NMI enable/disable, using direct PIA reads, rather than -keeping track of it in a variable in the driver. - P.Harvey-Smith, 25-Sep-2006. - - -***************************************************************************/ - -#include -#include - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "machine/6821pia.h" -#include "includes/coco.h" -#include "includes/cococart.h" -#include "machine/6883sam.h" -#include "includes/6551.h" -#include "vidhrdw/m6847.h" -#include "formats/cocopak.h" -#include "devices/bitbngr.h" -#include "devices/printer.h" -#include "devices/cassette.h" -#include "image.h" -#include "state.h" -#include "machine/wd17xx.h" -#include "sound/dac.h" -#include "sound/ay8910.h" - -UINT8 coco3_gimereg[16]; - -static UINT8 *coco_rom; -static int coco3_enable_64k; -static UINT8 coco3_mmu[16]; -static UINT8 coco3_interupt_line; -static UINT8 gime_firq, gime_irq; -static int cart_line, cart_inserted; -static int dclg_state; -static UINT16 cart_bank_size; -static UINT8 (*update_keyboard)(void); -static mame_timer *update_keyboard_timer; - -static WRITE8_HANDLER ( d_pia1_pb_w ); -static WRITE8_HANDLER ( d_pia1_pa_w ); -static READ8_HANDLER ( d_pia1_cb1_r ); -static READ8_HANDLER ( d_pia1_pa_r ); -static READ8_HANDLER ( d_pia1_pb_r_coco ); -static READ8_HANDLER ( d_pia1_pb_r_coco2 ); -static WRITE8_HANDLER ( d_pia0_pa_w ); -static WRITE8_HANDLER ( d_pia0_pb_w ); -static WRITE8_HANDLER ( dragon64_pia1_pb_w ); -static WRITE8_HANDLER ( d_pia1_cb2_w); -static WRITE8_HANDLER ( d_pia0_cb2_w); -static WRITE8_HANDLER ( d_pia1_ca2_w); -static WRITE8_HANDLER ( d_pia0_ca2_w); -static void d_pia0_irq_a(int state); -static void d_pia0_irq_b(int state); -static void d_pia1_firq_a(int state); -static void d_pia1_firq_b(int state); -static void coco3_pia0_irq_a(int state); -static void coco3_pia0_irq_b(int state); -static void coco3_pia1_firq_a(int state); -static void coco3_pia1_firq_b(int state); -static void coco_cartridge_enablesound(int enable); -static void d_sam_set_pageonemode(int val); -static void d_sam_set_mpurate(int val); -static void d_sam_set_memorysize(int val); -static void d_sam_set_maptype(int val); -static void dragon64_sam_set_maptype(int val); -static void coco3_sam_set_maptype(int val); -static const UINT8 *coco3_sam_get_rambase(void); -static void coco_setcartline(int data); -static void coco3_setcartline(int data); -static void coco_machine_stop(running_machine *machine); - -/* Are we a CoCo or a Dragon ? */ -typedef enum -{ - AM_COCO, - AM_DRAGON -} coco_or_dragon_t; -static coco_or_dragon_t coco_or_dragon; - -/* Dragon 64 / Alpha shared */ -static int dragon_map_type; /* Dragonm 64/Alpha map type, used for rom paging */ -static UINT8 *dragon_rom_bank; /* Dragon 64 / Alpha rom bank in use */ -static void dragon_page_rom(int romswitch); - -/* Dragon Alpha only */ -static WRITE8_HANDLER ( dgnalpha_pia2_pa_w ); -static void d_pia2_firq_a(int state); -static void d_pia2_firq_b(int state); - -static int dgnalpha_just_reset; /* Reset flag used to ignore first NMI after reset */ - -/* End Dragon Alpha */ - -/* Dragon Plus */ -static int dragon_plus_reg; /* Dragon plus control reg */ - -/* MegaCart CTRL reg, bit 1 selects 8K or 16K banking */ -int mega_ctrl; -int mega_bank; // Copy of bank reg so that we can peek it -/* End Mega Cart */ - -/* These sets of defines control logging. When MAME_DEBUG is off, all logging - * is off. There is a different set of defines for when MAME_DEBUG is on so I - * don't have to worry abount accidently committing a version of the driver - * with logging enabled after doing some debugging work - * - * Logging options marked as "Sparse" are logging options that happen rarely, - * and should not get in the way. As such, these options are always on - * (assuming MAME_DEBUG is on). "Frequent" options are options that happen - * enough that they might get in the way. - */ -#define LOG_PAK 0 /* [Sparse] Logging on PAK trailers */ -#define LOG_INT_MASKING 1 /* [Sparse] Logging on changing GIME interrupt masks */ -#define LOG_INT_COCO3 0 -#define LOG_GIME 0 -#define LOG_MMU 0 -#define LOG_TIMER 0 -#define LOG_IRQ_RECALC 0 - -#define GIME_TYPE_1987 0 - -static int count_bank(void); -static int is_Orch90(void); -static int is_megacart(void); - -#ifdef MAME_DEBUG -static offs_t coco_dasm_override(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram); -#endif /* MAME_DEBUG */ - - -/* ----------------------------------------------------------------------- */ -/* The bordertop and borderbottom return values are used for calculating - * field sync timing. Unfortunately, I cannot seem to find an agreement - * about how exactly field sync works.. - * - * What I do know is that FS goes high at the top of the screen, and goes - * low (forcing an VBORD interrupt) at the bottom of the visual area. - * - * Unfortunately, I cannot get a straight answer about how many rows each - * of the three regions (leading edge --> visible top; visible top --> - * visible bottom/trailing edge; visible bottom/trailing edge --> leading - * edge) takes up. Adding the fact that each of the different LPR - * settings most likely has a different set of values. Here is a summary - * of what I know from different sources: - * - * In the January 1987 issue of Rainbow Magazine, there is a program called - * COLOR3 that uses midframe palette rotation to show all 64 colors on the - * screen at once. The first box is at line 32, but it waits for 70 HSYNC - * transitions before changing - * - * SockMaster email: 43/192/28, 41/199/23, 132/0/131, 26/225/12 - * m6847 reference: 38/192/32 - * COLOR3 38/192/32 - * - * Notes of interest: Below are some observations of key programs and what - * they rely on: - * - * COLOR3: - * (fs_pia_flip ? fall_scanline : rise_scanline) = border_top - 32 - */ - -const struct coco3_video_vars coco3_vidvars = -{ - /* border tops */ - 38, 36, 132, 25, - - /* gime flip (hs/fs) */ - 0, 0, - - /* pia flip (hs/fs) */ - 1, 1, - - /* rise scanline & fall scanline */ - 258, 6 -}; - - - -/* ----------------------------------------------------------------------- */ - -static const pia6821_interface coco_pia_intf[] = -{ - /* PIA 0 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia0_pa_w, d_pia0_pb_w, d_pia0_ca2_w, d_pia0_cb2_w, - /*irqs : A/B */ d_pia0_irq_a, d_pia0_irq_b - }, - - /* PIA 1 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ d_pia1_pa_r, d_pia1_pb_r_coco, 0, d_pia1_cb1_r, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia1_pa_w, d_pia1_pb_w, d_pia1_ca2_w, d_pia1_cb2_w, - /*irqs : A/B */ d_pia1_firq_a, d_pia1_firq_b - } -}; - -static const pia6821_interface coco2_pia_intf[] = -{ - /* PIA 0 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia0_pa_w, d_pia0_pb_w, d_pia0_ca2_w, d_pia0_cb2_w, - /*irqs : A/B */ d_pia0_irq_a, d_pia0_irq_b - }, - - /* PIA 1 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ d_pia1_pa_r, d_pia1_pb_r_coco2, 0, d_pia1_cb1_r, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia1_pa_w, d_pia1_pb_w, d_pia1_ca2_w, d_pia1_cb2_w, - /*irqs : A/B */ d_pia1_firq_a, d_pia1_firq_b - } -}; - -static const pia6821_interface coco3_pia_intf[] = -{ - /* PIA 0 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, d_pia1_pb_r_coco2, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia0_pa_w, d_pia0_pb_w, d_pia0_ca2_w, d_pia0_cb2_w, - /*irqs : A/B */ coco3_pia0_irq_a, coco3_pia0_irq_b - }, - - /* PIA 1 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ d_pia1_pa_r, 0, 0, d_pia1_cb1_r, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia1_pa_w, d_pia1_pb_w, d_pia1_ca2_w, d_pia1_cb2_w, - /*irqs : A/B */ coco3_pia1_firq_a, coco3_pia1_firq_b - } -}; - -static const pia6821_interface dragon64_pia_intf[] = -{ - /* PIA 0 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia0_pa_w, d_pia0_pb_w, d_pia0_ca2_w, d_pia0_cb2_w, - /*irqs : A/B */ d_pia0_irq_a, d_pia0_irq_b - }, - - /* PIA 1 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ d_pia1_pa_r, d_pia1_pb_r_coco, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia1_pa_w, dragon64_pia1_pb_w, d_pia1_ca2_w, d_pia1_cb2_w, - /*irqs : A/B */ d_pia1_firq_a, d_pia1_firq_b - } -}; - -static const pia6821_interface dgnalpha_pia_intf[] = -{ - /* PIA 0 and 1 as Dragon 64 */ - /* PIA 0 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia0_pa_w, d_pia0_pb_w, d_pia0_ca2_w, d_pia0_cb2_w, - /*irqs : A/B */ d_pia0_irq_a, d_pia0_irq_b - }, - - /* PIA 1 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ d_pia1_pa_r, d_pia1_pb_r_coco, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ d_pia1_pa_w, d_pia1_pb_w, d_pia1_ca2_w, d_pia1_cb2_w, - /*irqs : A/B */ d_pia1_firq_a, d_pia1_firq_b - }, - - /* PIA 2 */ - { - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ dgnalpha_pia2_pa_w, 0, 0, 0, - /*irqs : A/B */ d_pia2_firq_a, d_pia2_firq_b - } - -}; - -static const sam6883_interface coco_sam_intf = -{ - SAM6883_ORIGINAL, - NULL, - d_sam_set_pageonemode, - d_sam_set_mpurate, - d_sam_set_memorysize, - d_sam_set_maptype -}; - -static const sam6883_interface coco3_sam_intf = -{ - SAM6883_GIME, - coco3_sam_get_rambase, - NULL, - d_sam_set_mpurate, - NULL, - coco3_sam_set_maptype -}; - -static const sam6883_interface dragon64_sam_intf = -{ - SAM6883_ORIGINAL, - NULL, - d_sam_set_pageonemode, - d_sam_set_mpurate, - d_sam_set_memorysize, - dragon64_sam_set_maptype -}; - -static const struct cartridge_slot *coco_cart_interface; - -/*************************************************************************** - PAK files - - PAK files were originally for storing Program PAKs, but the file format has - evolved into a snapshot file format, with a file format so convoluted and - changing to make it worthy of Microsoft. -***************************************************************************/ - -static int load_pak_into_region(mess_image *image, int *pakbase, int *paklen, UINT8 *mem, int segaddr, int seglen) -{ - if (*paklen) - { - if (*pakbase < segaddr) - { - /* We have to skip part of the PAK file */ - int skiplen; - - skiplen = segaddr - *pakbase; - if (image_fseek(image, skiplen, SEEK_CUR)) - { - if (LOG_PAK) - logerror("Could not fully read PAK.\n"); - return 1; - } - - *pakbase += skiplen; - *paklen -= skiplen; - } - - if (*pakbase < segaddr + seglen) - { - mem += *pakbase - segaddr; - seglen -= *pakbase - segaddr; - - if (seglen > *paklen) - seglen = *paklen; - - if (image_fread(image, mem, seglen) < seglen) - { - if (LOG_PAK) - logerror("Could not fully read PAK.\n"); - return 1; - } - - *pakbase += seglen; - *paklen -= seglen; - } - } - return 0; -} - -static void pak_load_trailer(const pak_decodedtrailer *trailer) -{ - cpunum_set_reg(0, M6809_PC, trailer->reg_pc); - cpunum_set_reg(0, M6809_X, trailer->reg_x); - cpunum_set_reg(0, M6809_Y, trailer->reg_y); - cpunum_set_reg(0, M6809_U, trailer->reg_u); - cpunum_set_reg(0, M6809_S, trailer->reg_s); - cpunum_set_reg(0, M6809_DP, trailer->reg_dp); - cpunum_set_reg(0, M6809_B, trailer->reg_b); - cpunum_set_reg(0, M6809_A, trailer->reg_a); - cpunum_set_reg(0, M6809_CC, trailer->reg_cc); - - /* I seem to only be able to get a small amount of the PIA state from the - * snapshot trailers. Thus I am going to configure the PIA myself. The - * following PIA writes are the same thing that the CoCo ROM does on - * startup. I wish I had a better solution - */ - - pia_write(0, 1, 0x00); - pia_write(0, 3, 0x00); - pia_write(0, 0, 0x00); - pia_write(0, 2, 0xff); - pia_write(1, 1, 0x00); - pia_write(1, 3, 0x00); - pia_write(1, 0, 0xfe); - pia_write(1, 2, 0xf8); - - pia_write(0, 1, trailer->pia[1]); - pia_write(0, 0, trailer->pia[0]); - pia_write(0, 3, trailer->pia[3]); - pia_write(0, 2, trailer->pia[2]); - - pia_write(1, 1, trailer->pia[5]); - pia_write(1, 0, trailer->pia[4]); - pia_write(1, 3, trailer->pia[7]); - pia_write(1, 2, trailer->pia[6]); - - /* For some reason, specifying use of high ram seems to screw things up; - * I'm not sure whether it is because I'm using the wrong method to get - * access that bit or or whether it is something else. So that is why - * I am specifying 0x7fff instead of 0xffff here - */ - sam_set_state(trailer->sam, 0x7fff); -} - -static int generic_pak_load(mess_image *image, int rambase_index, int rombase_index, int pakbase_index) -{ - UINT8 *ROM; - UINT8 *rambase; - UINT8 *rombase; - UINT8 *pakbase; - int paklength; - int pakstart; - pak_header header; - int trailerlen; - UINT8 trailerraw[500]; - pak_decodedtrailer trailer; - int trailer_load = 0; - - ROM = memory_region(REGION_CPU1); - rambase = &mess_ram[rambase_index]; - rombase = &ROM[rombase_index]; - pakbase = &ROM[pakbase_index]; - - if (mess_ram_size < 0x10000) - { - if (LOG_PAK) - logerror("Cannot load PAK files without at least 64k.\n"); - return INIT_FAIL; - } - - if (image_fread(image, &header, sizeof(header)) < sizeof(header)) - { - if (LOG_PAK) - logerror("Could not fully read PAK.\n"); - return INIT_FAIL; - } - - paklength = header.length ? LITTLE_ENDIANIZE_INT16(header.length) : 0x10000; - pakstart = LITTLE_ENDIANIZE_INT16(header.start); - if (pakstart == 0xc000) - cart_inserted = 1; - - if (image_fseek(image, paklength, SEEK_CUR)) - { - if (LOG_PAK) - logerror("Could not fully read PAK.\n"); - return INIT_FAIL; - } - - trailerlen = image_fread(image, trailerraw, sizeof(trailerraw)); - if (trailerlen) - { - if (pak_decode_trailer(trailerraw, trailerlen, &trailer)) - { - if (LOG_PAK) - logerror("Invalid or unknown PAK trailer.\n"); - return INIT_FAIL; - } - - trailer_load = 1; - } - - if (image_fseek(image, sizeof(pak_header), SEEK_SET)) - { - if (LOG_PAK) - logerror("Unexpected error while reading PAK.\n"); - return INIT_FAIL; - } - - /* Now that we are done reading the trailer; we can cap the length */ - if (paklength > 0xff00) - paklength = 0xff00; - - /* PAK files reflect the fact that JeffV's emulator did not appear to - * differentiate between RAM and ROM memory. So what we do when a PAK - * loads is to copy the ROM into RAM, load the PAK into RAM, and then - * copy the part of RAM corresponding to PAK ROM to the actual PAK ROM - * area. - * - * It is ugly, but it reflects the way that JeffV's emulator works - */ - - memcpy(rambase + 0x8000, rombase, 0x4000); - memcpy(rambase + 0xC000, pakbase, 0x3F00); - - /* Get the RAM portion */ - if (load_pak_into_region(image, &pakstart, &paklength, rambase, 0x0000, 0xff00)) - return INIT_FAIL; - - memcpy(pakbase, rambase + 0xC000, 0x3F00); - - if (trailer_load) - pak_load_trailer(&trailer); - return INIT_PASS; -} - -SNAPSHOT_LOAD ( coco_pak ) -{ - return generic_pak_load(image, 0x0000, 0x0000, 0x4000); -} - -SNAPSHOT_LOAD ( coco3_pak ) -{ - return generic_pak_load(image, (0x70000 % mess_ram_size), 0x0000, 0xc000); -} - -/*************************************************************************** - ROM files - - ROM files are simply raw dumps of cartridges. I believe that they should - be used in place of PAK files, when possible -***************************************************************************/ - -static int generic_rom_load(mess_image *image, UINT8 *dest, UINT16 destlength) -{ - UINT8 *rombase; - int romsize; - - romsize = image_length(image); - - /* The following hack is for Arkanoid running on the CoCo2. - The issuse is the CoCo2 hardware only allows the cartridge - interface to access 0xC000-0xFEFF (16K). The Arkanoid ROM is - 32K starting at 0x8000. The first 16K is totally inaccessable - from a CoCo2. Thus we need to skip ahead in the ROM file. On - the CoCo3 the entire 32K ROM is accessable. */ - - if (image_crc(image) == 0x25C3AA70) /* Test for Arkanoid */ - { - if ( destlength == 0x4000 ) /* Test if CoCo2 */ - { - image_fseek( image, 0x4000, SEEK_SET ); /* Move ahead in file */ - romsize -= 0x4000; /* Adjust ROM size */ - } - } - - if (romsize > destlength) - romsize = destlength; - - image_fread(image, dest, romsize); - - cart_inserted = 1; - - /* Now we need to repeat the mirror the ROM throughout the ROM memory */ - rombase = dest; - dest += romsize; - destlength -= romsize; - while(destlength > 0) - { - if (romsize > destlength) - romsize = destlength; - memcpy(dest, rombase, romsize); - dest += romsize; - destlength -= romsize; - } - return INIT_PASS; -} - -DEVICE_LOAD(coco_rom) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - return generic_rom_load(image, &ROM[0x4000], 0x4000); -} - -DEVICE_UNLOAD(coco_rom) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - memset(&ROM[0x4000], 0, 0x4000); - - cart_inserted = 0; /* Flag cart no longer inserted */ -} - -DEVICE_LOAD(coco3_rom) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - int count; - - count = count_bank(); - - if( count == 0 ) - { - /* Load roms starting at 0x8000 and mirror upwards. */ - /* ROM size is 32K max */ - return generic_rom_load(image, &ROM[0x8000], 0x8000); - } - else - { - /* Load roms starting at 0x8000 and mirror upwards. */ - /* ROM bank is 16K max */ - return generic_rom_load(image, &ROM[0x8000], 0x4000); - } -} - -DEVICE_UNLOAD(coco3_rom) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - memset(&ROM[0x8000], 0, 0x8000); -} - -/*************************************************************************** - Interrupts - - The Dragon/CoCo2 have two PIAs. These PIAs can trigger interrupts. PIA0 - is set up to trigger IRQ on the CPU, and PIA1 can trigger FIRQ. Each PIA - has two output lines, and an interrupt will be triggered if either of these - lines are asserted. - - ----- IRQ - 6809 |-<----------- PIA0 - | - | - | - | - | - |-<----------- PIA1 - ----- - - The CoCo 3 still supports these interrupts, but the GIME can chose whether - "old school" interrupts are generated, or the new ones generated by the GIME - - ----- IRQ - 6809 |-<----------- PIA0 - | | ------ - | -<-------<-------| | - | |GIME| - | -<-------<-------| | - | FIRQ | ------ - |-<----------- PIA1 - ----- - - In an email discussion with JK, he informs me that when GIME interrupts are - enabled, this actually does not prevent PIA interrupts. Apparently JeffV's - CoCo 3 emulator did not handle this properly. -***************************************************************************/ - -enum -{ - COCO3_INT_TMR = 0x20, /* Timer */ - COCO3_INT_HBORD = 0x10, /* Horizontal border sync */ - COCO3_INT_VBORD = 0x08, /* Vertical border sync */ - COCO3_INT_EI2 = 0x04, /* Serial data */ - COCO3_INT_EI1 = 0x02, /* Keyboard */ - COCO3_INT_EI0 = 0x01, /* Cartridge */ - - COCO3_INT_ALL = 0x3f -}; - -static int is_cpu_suspended(void) -{ - return !cpunum_is_suspended(0, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE); -} - -static void d_recalc_irq(void) -{ - UINT8 pia0_irq_a = pia_get_irq_a(0); - UINT8 pia0_irq_b = pia_get_irq_b(0); - - if ((pia0_irq_a || pia0_irq_b) && is_cpu_suspended()) - cpunum_set_input_line(0, M6809_IRQ_LINE, ASSERT_LINE); - else - cpunum_set_input_line(0, M6809_IRQ_LINE, CLEAR_LINE); -} - -static void d_recalc_firq(void) -{ - UINT8 pia1_firq_a = pia_get_irq_a(1); - UINT8 pia1_firq_b = pia_get_irq_b(1); - UINT8 pia2_firq_a = pia_get_irq_a(2); - UINT8 pia2_firq_b = pia_get_irq_b(2); - - if ((pia1_firq_a || pia1_firq_b || - pia2_firq_a || pia2_firq_b) && is_cpu_suspended()) - cpunum_set_input_line(0, M6809_FIRQ_LINE, ASSERT_LINE); - else - cpunum_set_input_line(0, M6809_FIRQ_LINE, CLEAR_LINE); -} - -static void coco3_recalc_irq(void) -{ - if ((coco3_gimereg[0] & 0x20) && gime_irq && is_cpu_suspended()) - cpunum_set_input_line(0, M6809_IRQ_LINE, ASSERT_LINE); - else - d_recalc_irq(); -} - -static void coco3_recalc_firq(void) -{ - if ((coco3_gimereg[0] & 0x10) && gime_firq && is_cpu_suspended()) - cpunum_set_input_line(0, M6809_FIRQ_LINE, ASSERT_LINE); - else - d_recalc_firq(); -} - -static void d_pia0_irq_a(int state) -{ - d_recalc_irq(); -} - -static void d_pia0_irq_b(int state) -{ - d_recalc_irq(); -} - -static void d_pia1_firq_a(int state) -{ - d_recalc_firq(); -} - -static void d_pia1_firq_b(int state) -{ - d_recalc_firq(); -} - -/* Dragon Alpha second PIA IRQ lines also cause FIRQ */ -static void d_pia2_firq_a(int state) -{ - d_recalc_firq(); -} - -static void d_pia2_firq_b(int state) -{ - d_recalc_firq(); -} - -static void coco3_pia0_irq_a(int state) -{ - coco3_recalc_irq(); -} - -static void coco3_pia0_irq_b(int state) -{ - coco3_recalc_irq(); -} - -static void coco3_pia1_firq_a(int state) -{ - coco3_recalc_firq(); -} - -static void coco3_pia1_firq_b(int state) -{ - coco3_recalc_firq(); -} - -static void coco3_raise_interrupt(UINT8 mask, int state) -{ - int lowtohigh; - - lowtohigh = state && ((coco3_interupt_line & mask) == 0); - - if (state) - coco3_interupt_line |= mask; - else - coco3_interupt_line &= ~mask; - - if (lowtohigh) - { - if ((coco3_gimereg[0] & 0x20) && (coco3_gimereg[2] & mask)) - { - gime_irq |= (coco3_gimereg[2] & mask); - coco3_recalc_irq(); - - if (LOG_INT_COCO3) - logerror("CoCo3 Interrupt: Raising IRQ; scanline=%i\n", cpu_getscanline()); - } - if ((coco3_gimereg[0] & 0x10) && (coco3_gimereg[3] & mask)) - { - gime_firq |= (coco3_gimereg[3] & mask); - coco3_recalc_firq(); - - if (LOG_INT_COCO3) - logerror("CoCo3 Interrupt: Raising FIRQ; scanline=%i\n", cpu_getscanline()); - } - } -} - - - -void coco3_horizontal_sync_callback(int data) -{ - pia_0_ca1_w(0, data); - coco3_raise_interrupt(COCO3_INT_HBORD, data); -} - - - -void coco3_field_sync_callback(int data) -{ - pia_0_cb1_w(0, data); -} - - - -void coco3_gime_field_sync_callback(void) -{ - /* the CoCo 3 VBORD interrupt triggers right after the display */ - coco3_raise_interrupt(COCO3_INT_VBORD, 1); - coco3_raise_interrupt(COCO3_INT_VBORD, 0); -} - - - -/*************************************************************************** - Halt line -***************************************************************************/ - -static void d_recalc_interrupts(int dummy) -{ - d_recalc_firq(); - d_recalc_irq(); -} - -static void coco3_recalc_interrupts(int dummy) -{ - coco3_recalc_firq(); - coco3_recalc_irq(); -} - -static void (*recalc_interrupts)(int dummy); - -void coco_set_halt_line(int halt_line) -{ - cpunum_set_input_line(0, INPUT_LINE_HALT, halt_line); - if (halt_line == CLEAR_LINE) - timer_set(TIME_IN_CYCLES(1,0), 0, recalc_interrupts); -} - - -/*************************************************************************** - Input device abstractions -***************************************************************************/ - -enum _coco_input_port -{ - INPUTPORT_RIGHT_JOYSTICK, - INPUTPORT_LEFT_JOYSTICK, - INPUTPORT_CASSETTE, - INPUTPORT_SERIAL -}; -typedef enum _coco_input_port coco_input_port; - -enum _coco_input_device -{ - INPUTDEVICE_NA, - INPUTDEVICE_RIGHT_JOYSTICK, - INPUTDEVICE_LEFT_JOYSTICK, - INPUTDEVICE_HIRES_INTERFACE, - INPUTDEVICE_HIRES_CC3MAX_INTERFACE, - INPUTDEVICE_RAT, - INPUTDEVICE_DIECOM_LIGHTGUN -}; -typedef enum _coco_input_device coco_input_device; - -/*------------------------------------------------- - input_device - given an input port, determine - which input device, if any, it is hooked up to --------------------------------------------------*/ - -static coco_input_device input_device(coco_input_port port) -{ - coco_input_device result = INPUTDEVICE_NA; - - switch(readinputportbytag_safe("joystick_mode", 0x00)) - { - case 0x00: - /* "Normal" */ - switch(port) - { - case INPUTPORT_RIGHT_JOYSTICK: result = INPUTDEVICE_RIGHT_JOYSTICK; break; - case INPUTPORT_LEFT_JOYSTICK: result = INPUTDEVICE_LEFT_JOYSTICK; break; - default: result = INPUTDEVICE_NA; break; - } - break; - - case 0x10: - /* "Hi-Res Interface" */ - switch(port) - { - case INPUTPORT_RIGHT_JOYSTICK: result = INPUTDEVICE_HIRES_INTERFACE; break; - case INPUTPORT_LEFT_JOYSTICK: result = INPUTDEVICE_LEFT_JOYSTICK; break; - case INPUTPORT_CASSETTE: result = INPUTDEVICE_HIRES_INTERFACE; break; - default: result = INPUTDEVICE_NA; break; - } - break; - - case 0x30: - /* "Hi-Res Interface (CoCoMax 3 Style)" */ - switch(port) - { - case INPUTPORT_RIGHT_JOYSTICK: result = INPUTDEVICE_HIRES_CC3MAX_INTERFACE; break; - case INPUTPORT_LEFT_JOYSTICK: result = INPUTDEVICE_LEFT_JOYSTICK; break; - case INPUTPORT_CASSETTE: result = INPUTDEVICE_HIRES_CC3MAX_INTERFACE; break; - default: result = INPUTDEVICE_NA; break; - } - break; - - case 0x20: - /* "The Rat Graphics Mouse" */ - switch(port) - { - case INPUTPORT_RIGHT_JOYSTICK: result = INPUTDEVICE_RAT; break; - case INPUTPORT_LEFT_JOYSTICK: result = INPUTDEVICE_RAT; break; - default: result = INPUTDEVICE_NA; break; - } - break; - - case 0x40: - /* "Diecom Light Gun Adaptor" */ - switch(port) - { - case INPUTPORT_RIGHT_JOYSTICK: result = INPUTDEVICE_HIRES_CC3MAX_INTERFACE; break; - case INPUTPORT_LEFT_JOYSTICK: result = INPUTDEVICE_LEFT_JOYSTICK; break; - case INPUTPORT_SERIAL: result = INPUTDEVICE_DIECOM_LIGHTGUN; break; - default: result = INPUTDEVICE_NA; break; - } - break; - - default: - fatalerror("Invalid joystick_mode"); - break; - } - return result; -} - - - -/*************************************************************************** - Hires Joystick -***************************************************************************/ - -static int coco_hiresjoy_ca = 1; -static mame_time coco_hiresjoy_xtransitiontime; -static mame_time coco_hiresjoy_ytransitiontime; - -static mame_time coco_hiresjoy_computetransitiontime(const char *inputport) -{ - double val; - - val = readinputportbytag_safe(inputport, 0) / 255.0; - - if (input_device(INPUTPORT_RIGHT_JOYSTICK) == INPUTDEVICE_HIRES_CC3MAX_INTERFACE) - { - /* CoCo MAX 3 Interface */ - val = val * 2500.0 + 400.0; - } - else - { - /* Normal Hires Interface */ - val = val * 4160.0 + 592.0; - } - - return add_mame_times(mame_timer_get_time(), double_to_mame_time(COCO_CPU_SPEED * val)); -} - -static void coco_hiresjoy_w(int data) -{ - if (!data && coco_hiresjoy_ca) - { - /* Hi to lo */ - coco_hiresjoy_xtransitiontime = coco_hiresjoy_computetransitiontime("joystick_right_x"); - coco_hiresjoy_ytransitiontime = coco_hiresjoy_computetransitiontime("joystick_right_y"); - } - else if (data && !coco_hiresjoy_ca) - { - /* Lo to hi */ - coco_hiresjoy_ytransitiontime = time_zero; - coco_hiresjoy_ytransitiontime = time_zero; - } - coco_hiresjoy_ca = data; - (*update_keyboard)(); -} - -static int coco_hiresjoy_readone(mame_time transitiontime) -{ - return compare_mame_times(mame_timer_get_time(), transitiontime) >= 0; -} - -static int coco_hiresjoy_rx(void) -{ - return coco_hiresjoy_readone(coco_hiresjoy_xtransitiontime); -} - -static int coco_hiresjoy_ry(void) -{ - return coco_hiresjoy_readone(coco_hiresjoy_ytransitiontime); -} - -/*************************************************************************** - Sound MUX - - The sound MUX has 4 possible settings, depend on SELA and SELB inputs: - - 00 - DAC (digital - analog converter) - 01 - CSN (cassette) - 10 - SND input from cartridge (NYI because we only support the FDC) - 11 - Grounded (0) - - Source - Tandy Color Computer Service Manual -***************************************************************************/ - -#define SOUNDMUX_STATUS_ENABLE 4 -#define SOUNDMUX_STATUS_SEL2 2 -#define SOUNDMUX_STATUS_SEL1 1 - -static mess_image *cartslot_image(void) -{ - return image_from_devtype_and_index(IO_CARTSLOT, 0); -} - -static mess_image *cassette_device_image(void) -{ - return image_from_devtype_and_index(IO_CASSETTE, 0); -} - -static mess_image *bitbanger_image(void) -{ - return image_from_devtype_and_index(IO_BITBANGER, 0); -} - -static mess_image *printer_image(void) -{ - return image_from_devtype_and_index(IO_PRINTER, 0); -} - -static int get_soundmux_status(void) -{ - int soundmux_status = 0; - if (pia_get_output_cb2(1)) - soundmux_status |= SOUNDMUX_STATUS_ENABLE; - if (pia_get_output_ca2(0)) - soundmux_status |= SOUNDMUX_STATUS_SEL1; - if (pia_get_output_cb2(0)) - soundmux_status |= SOUNDMUX_STATUS_SEL2; - return soundmux_status; -} - -static void soundmux_update(void) -{ - /* This function is called whenever the MUX (selector switch) is changed - * It mainly turns on and off the cassette audio depending on the switch. - * It also calls a function into the cartridges device to tell it if it is - * switch on or off. - */ - cassette_state new_state; - int soundmux_status = get_soundmux_status(); - - switch(soundmux_status) { - case SOUNDMUX_STATUS_ENABLE | SOUNDMUX_STATUS_SEL1: - /* CSN */ - new_state = CASSETTE_SPEAKER_ENABLED; - break; - default: - new_state = CASSETTE_SPEAKER_MUTED; - break; - } - - coco_cartridge_enablesound(soundmux_status == (SOUNDMUX_STATUS_ENABLE|SOUNDMUX_STATUS_SEL2)); - cassette_change_state(cassette_device_image(), new_state, CASSETTE_MASK_SPEAKER); -} - -static void coco_sound_update(void) -{ - /* Call this function whenever you need to update the sound. It will - * automatically mute any devices that are switched out. - */ - UINT8 dac = pia_get_output_a(1) & 0xFC; - UINT8 pia1_pb1 = (pia_get_output_b(1) & 0x02) ? 0x80 : 0x00; - int soundmux_status = get_soundmux_status(); - - switch(soundmux_status) - { - case SOUNDMUX_STATUS_ENABLE: - /* DAC */ - DAC_data_w(0, pia1_pb1 + (dac >> 1) ); /* Mixing the two sources */ - break; - case SOUNDMUX_STATUS_ENABLE | SOUNDMUX_STATUS_SEL1: - /* CSN */ - DAC_data_w(0, pia1_pb1); /* Mixing happens elsewhere */ - break; - case SOUNDMUX_STATUS_ENABLE | SOUNDMUX_STATUS_SEL2: - /* CART Sound */ - DAC_data_w(0, pia1_pb1); /* To do: mix in cart signal */ - break; - default: - /* This pia line is always connected to the output */ - DAC_data_w(0, pia1_pb1); - break; - } -} - -/* - Dragon Alpha AY-3-8912 -*/ - -READ8_HANDLER ( dgnalpha_psg_porta_read ) -{ - return 0; -} - -WRITE8_HANDLER ( dgnalpha_psg_porta_write ) -{ - /* Bits 0..3 are the drive select lines for the internal floppy interface */ - /* Bit 4 is the motor on, in the real hardware these are inverted on their way to the drive */ - /* Bits 5,6,7 are connected to /DDEN, ENP and 5/8 on the WD2797 */ - switch (data & 0xF) - { - case(0x01) : - wd179x_set_drive(0); - break; - case(0x02) : - wd179x_set_drive(1); - break; - case(0x04) : - wd179x_set_drive(2); - break; - case(0x08) : - wd179x_set_drive(3); - break; - } -} - -/*************************************************************************** - PIA0 ($FF00-$FF1F) (Chip U8) - - PIA0 PA0-PA7 - Keyboard/Joystick read - PIA0 PB0-PB7 - Keyboard write - PIA0 CA1 - M6847 HS (Horizontal Sync) - PIA0 CA2 - SEL1 (Used by sound mux and joystick) - PIA0 CB1 - M6847 FS (Field Sync) - PIA0 CB2 - SEL2 (Used by sound mux and joystick) -***************************************************************************/ - -static WRITE8_HANDLER ( d_pia0_ca2_w ) -{ - soundmux_update(); -} - - - -static WRITE8_HANDLER ( d_pia0_cb2_w ) -{ - soundmux_update(); -} - - - -static mame_time get_relative_time(mame_time absolute_time) -{ - mame_time result; - mame_time now = mame_timer_get_time(); - - if (compare_mame_times(absolute_time, now) > 0) - result = sub_mame_times(absolute_time, now); - else - result = time_never; - return result; -} - - - -static UINT8 coco_update_keyboard(void) -{ - UINT8 porta = 0x7F; - int joyval; - static const int joy_rat_table[] = {15, 24, 42, 33 }; - UINT8 pia0_pb; - UINT8 dac = pia_get_output_a(1) & 0xFC; - int joystick_axis, joystick; - - pia0_pb = pia_get_output_b(0); - joystick_axis = pia_get_output_ca2(0); - joystick = pia_get_output_cb2(0); - - /* poll keyoard keys */ - if ((input_port_0_r(0) | pia0_pb) != 0xff) porta &= ~0x01; - if ((input_port_1_r(0) | pia0_pb) != 0xff) porta &= ~0x02; - if ((input_port_2_r(0) | pia0_pb) != 0xff) porta &= ~0x04; - if ((input_port_3_r(0) | pia0_pb) != 0xff) porta &= ~0x08; - if ((input_port_4_r(0) | pia0_pb) != 0xff) porta &= ~0x10; - if ((input_port_5_r(0) | pia0_pb) != 0xff) porta &= ~0x20; - if ((input_port_6_r(0) | pia0_pb) != 0xff) porta &= ~0x40; - - switch(input_device(joystick ? INPUTPORT_LEFT_JOYSTICK : INPUTPORT_RIGHT_JOYSTICK)) - { - case INPUTDEVICE_RIGHT_JOYSTICK: - joyval = readinputportbytag_safe(joystick_axis ? "joystick_right_y" : "joystick_right_x", 0x00); - if (dac <= joyval) - porta |= 0x80; - break; - - case INPUTDEVICE_LEFT_JOYSTICK: - joyval = readinputportbytag_safe(joystick_axis ? "joystick_left_y" : "joystick_left_x", 0x00); - if (dac <= joyval) - porta |= 0x80; - break; - - case INPUTDEVICE_HIRES_INTERFACE: - case INPUTDEVICE_HIRES_CC3MAX_INTERFACE: - if (joystick_axis ? coco_hiresjoy_ry() : coco_hiresjoy_rx()) - porta |= 0x80; - break; - - case INPUTDEVICE_RAT: - joyval = readinputportbytag_safe(joystick_axis ? "rat_mouse_y" : "rat_mouse_x", 0x00); - if ((dac >> 2) <= joy_rat_table[joyval]) - porta |= 0x80; - break; - - case INPUTDEVICE_DIECOM_LIGHTGUN: - { - int dclg_output; - static const int dclg_table[] = {0, 14, 30, 49 }; - static int dclg_timer; - - dclg_output = 0; - - /* Diecom light gun interface */ - if (joystick_axis) - { - if (dclg_state == 15) - dclg_output |= 0x01; - - if (dclg_state == 7) - { - if (cpu_getscanline() == readinputportbytag_safe("dclg_y", 0)) - { - dclg_output |= 0x02; - dclg_timer = readinputportbytag_safe("dclg_x", 0) << 1; - } - } - } - else - { - if ((dclg_state > 7) && (dclg_state < 16 )) - { - /* bit shift timer data on state 8 thru 15 */ - if (((dclg_timer >> (dclg_state-8+1)) & 0x01) == 1) - dclg_output |= 0x01; - - /* Bit 9 of timer is only avaiable if state == 8*/ - if (dclg_state == 8) - { - if (((dclg_timer >> 9) & 0x01) == 1) - dclg_output |= 0x02; - } - } - } - - if (dac <= dclg_table[dclg_output]) - porta |= 0x80; - } - break; - - default: - fatalerror("Invalid value returned by input_device"); - break; - } - - /* schedule hires joystick events, if necessary, if necessary */ - { - mame_time xtrans = get_relative_time(coco_hiresjoy_xtransitiontime); - mame_time ytrans = get_relative_time(coco_hiresjoy_ytransitiontime); - - mame_timer_reset(update_keyboard_timer, - (compare_mame_times(xtrans, ytrans) > 0) ? ytrans : xtrans); - } - - /* sample joystick buttons */ - porta &= ~readinputportbytag_safe("joystick_buttons", 0); - - pia_set_input_a(0, porta); - return porta; -} - - - -static UINT8 coco3_update_keyboard(void) -{ - /* the CoCo 3 keyboard update routine must also check for the GIME EI1 interrupt */ - UINT8 porta; - porta = coco_update_keyboard(); - coco3_raise_interrupt(COCO3_INT_EI1, ((porta & 0x7F) == 0x7F) ? CLEAR_LINE : ASSERT_LINE); - return porta; -} - - - -/* three functions that update the keyboard in varying ways */ -static WRITE8_HANDLER ( d_pia0_pb_w ) { (*update_keyboard)(); } -static void coco_poll_keyboard(void *param, UINT32 value, UINT32 mask) { (*update_keyboard)(); } -static void coco_update_keyboard_timerproc(int dummy) { (*update_keyboard)(); } - - - -static WRITE8_HANDLER ( d_pia0_pa_w ) -{ - if (input_device(INPUTPORT_RIGHT_JOYSTICK) == INPUTDEVICE_HIRES_CC3MAX_INTERFACE) - coco_hiresjoy_w(data & 0x04); -} - - - -/* The following hacks are necessary because a large portion of cartridges - * tie the Q line to the CART line. Since Q pulses with every single clock - * cycle, this would be prohibitively slow to emulate. Thus we are only - * going to pulse when the PIA is read from; which seems good enough (for now) - */ -READ8_HANDLER( coco_pia_1_r ) -{ - if (cart_line == CARTLINE_Q) - { - coco_setcartline(CARTLINE_CLEAR); - coco_setcartline(CARTLINE_Q); - } - return pia_1_r(offset); -} - -READ8_HANDLER( coco3_pia_1_r ) -{ - if (cart_line == CARTLINE_Q) - { - coco3_setcartline(CARTLINE_CLEAR); - coco3_setcartline(CARTLINE_Q); - } - return pia_1_r(offset); -} - -/*************************************************************************** - PIA1 ($FF20-$FF3F) (Chip U4) - - PIA1 PA0 - CASSDIN - PIA1 PA1 - RS232 OUT (CoCo), Printer Strobe (Dragon) - PIA1 PA2-PA7 - DAC - PIA1 PB0 - RS232 IN - PIA1 PB1 - Single bit sound - PIA1 PB2 - RAMSZ (32/64K, 16K, and 4K three position switch) - PIA1 PB3 - M6847 CSS - PIA1 PB4 - M6847 INT/EXT and M6847 GM0 - PIA1 PB5 - M6847 GM1 - PIA1 PB6 - M6847 GM2 - PIA1 PB7 - M6847 A/G - PIA1 CA1 - CD (Carrier Detect; NYI) - PIA1 CA2 - CASSMOT (Cassette Motor) - PIA1 CB1 - CART (Cartridge Detect) - PIA1 CB2 - SNDEN (Sound Enable) -***************************************************************************/ - -static READ8_HANDLER ( d_pia1_cb1_r ) -{ - return cart_line ? ASSERT_LINE : CLEAR_LINE; -} - -static WRITE8_HANDLER ( d_pia1_cb2_w ) -{ - soundmux_update(); -} - -static WRITE8_HANDLER ( d_pia1_pa_w ) -{ - /* - * This port appears at $FF20 - * - * Bits - * 7-2: DAC to speaker or cassette - * 1: Serial out (CoCo), Printer strobe (Dragon) - */ - UINT8 dac = pia_get_output_a(1) & 0xFC; - static int dclg_previous_bit; - - coco_sound_update(); - (*update_keyboard)(); - - if (input_device(INPUTPORT_RIGHT_JOYSTICK) == INPUTDEVICE_HIRES_INTERFACE) - coco_hiresjoy_w(dac >= 0x80); - - if (input_device(INPUTPORT_SERIAL) == INPUTDEVICE_DIECOM_LIGHTGUN) - { - int dclg_this_bit = ((data & 2) >> 1); - - if( dclg_previous_bit == 1 ) - { - if( dclg_this_bit == 0 ) - { - /* Clock Diecom Light gun interface on a high to low transistion */ - dclg_state++; - dclg_state &= 0x0f; - } - } - - dclg_previous_bit = dclg_this_bit; - } - else - { - cassette_output(cassette_device_image(), ((int) dac - 0x80) / 128.0); - } - - switch(coco_or_dragon) - { - case AM_COCO: - /* Only the coco has a bitbanger */ - bitbanger_output(bitbanger_image(), (data & 2) >> 1); - break; - - case AM_DRAGON: - /* If strobe bit is high send data from pia0 port b to dragon parallel printer */ - if (data & 0x02) - { - printer_output(printer_image(), pia_get_output_b(0)); - } - break; - } -} - -/* - * This port appears at $FF23 - * - * The CoCo 1/2 and Dragon kept the gmode and vmode separate, and the CoCo - * 3 tied them together. In the process, the CoCo 3 dropped support for the - * semigraphics modes - */ - -static WRITE8_HANDLER( d_pia1_pb_w ) -{ - m6847_video_changed(); - - /* PB1 will drive the sound output. This is a rarely - * used single bit sound mode. It is always connected thus - * cannot be disabled. - * - * Source: Page 31 of the Tandy Color Computer Serice Manual - */ - coco_sound_update(); -} - -enum -{ - DRAGON64_SAMMAP = 1, - DRAGON64_PIAMAP = 2, - DRAGON64_ALL = 3 -}; - -static WRITE8_HANDLER( dragon64_pia1_pb_w ) -{ - d_pia1_pb_w(0, data); - - /* If bit 2 of the pia1 ddra is 1 then this pin is an output so use it */ - /* to control the paging of the 32k and 64k basic roms */ - /* Otherwise it set as an input, with an internal pull-up so it should */ - /* always be high (enabling 32k basic rom) */ - if (pia_get_ddr_b(1) & 0x04) - { - dragon_page_rom(data & 0x04); - } -} - -/*************************************************************************** - PIA2 ($FF24-$FF28) on Daragon Alpha/Professional - - PIA2 PA0 bcdir to AY-8912 - PIA2 PA1 bc0 to AY-8912 - PIA2 PA2 Rom switch, 0=basic rom, 1=boot rom. - PIA2 PA3-PA7 Unknown/unused ? - PIA2 PB0-PB7 connected to D0..7 of the AY8912. - CB1 DRQ from WD2797 disk controler. -***************************************************************************/ - -static WRITE8_HANDLER( dgnalpha_pia2_pa_w ) -{ - int bc_flags; /* BCDDIR/BC1, as connected to PIA2 port a bits 0 and 1 */ - - /* If bit 2 of the pia2 ddra is 1 then this pin is an output so use it */ - /* to control the paging of the boot and basic roms */ - /* Otherwise it set as an input, with an internal pull-up so it should */ - /* always be high (enabling boot rom) */ - if (pia_get_ddr_a(2) & 0x04) - { - dragon_page_rom(data & 0x04); /* bit 2 controls boot or basic rom */ - } - - /* Bits 0 and 1 for pia2 port a control the BCDIR and BC1 lines of the */ - /* AY-8912 */ - bc_flags = data & 0x03; /* mask out bits */ - - switch (bc_flags) - { - case 0x00 : /* Inactive, do nothing */ - break; - case 0x01 : /* Write to selected port */ - AY8910_write_port_0_w(0, pia_get_output_b(2)); - break; - case 0x02 : /* Read from selected port */ - pia_set_input_b(2, AY8910_read_port_0_r(0)); - break; - case 0x03 : /* Select port to write to */ - AY8910_control_port_0_w(0, pia_get_output_b(2)); - break; - } -} - -/* Controls rom paging in Dragon 64, and Dragon Alpha */ -/* On 64, switches between the two versions of the basic rom mapped in at 0x8000 */ -/* on the alpha switches between the Boot/Diagnostic rom and the basic rom */ -static void dragon_page_rom(int romswitch) -{ - UINT8 *bank; - - if (romswitch) - bank = coco_rom; /* This is the 32k mode basic(64)/boot rom(alpha) */ - else - bank = coco_rom + 0x8000; /* This is the 64k mode basic(64)/basic rom(alpha) */ - - dragon_rom_bank = bank; /* Record which rom we are using so that the irq routine */ - /* uses the vectors from the correct rom ! (alpha) */ - - dragon64_sam_set_maptype(dragon_map_type); /* Call to setup correct mapping */ -} - -/********************************************************************************************/ -/* Dragon Alpha onboard FDC */ -/********************************************************************************************/ - -static void dgnalpha_fdc_callback(int event) -{ - /* The NMI line on the alphaAlpha is gated through IC16 (early PLD), and is gated by pia2 CA2 */ - /* The DRQ line goes through pia2 cb1, in exactly the same way as DRQ from DragonDos does */ - /* for pia1 cb1 */ - switch(event) - { - case WD179X_IRQ_CLR: - cpunum_set_input_line(0, INPUT_LINE_NMI, CLEAR_LINE); - break; - case WD179X_IRQ_SET: - if(dgnalpha_just_reset) - { - dgnalpha_just_reset = 0; - } - else - { - if (pia_get_output_ca2(2)) - cpunum_set_input_line(0, INPUT_LINE_NMI, ASSERT_LINE); - } - break; - case WD179X_DRQ_CLR: - pia_2_cb1_w(0,CARTLINE_CLEAR); - break; - case WD179X_DRQ_SET: - pia_2_cb1_w(0,CARTLINE_ASSERTED); - break; - } -} - -/* The Dragon Alpha hardware reverses the order of the WD2797 registers */ -READ8_HANDLER(wd2797_r) -{ - int result = 0; - - switch(offset & 0x03) - { - case 0: - result = wd179x_data_r(0); - break; - case 1: - result = wd179x_sector_r(0); - break; - case 2: - result = wd179x_track_r(0); - break; - case 3: - result = wd179x_status_r(0); - break; - default: - break; - } - - return result; -} - -WRITE8_HANDLER(wd2797_w) -{ - switch(offset & 0x3) - { - case 0: - wd179x_data_w(0, data); - break; - case 1: - wd179x_sector_w(0, data); - break; - case 2: - wd179x_track_w(0, data); - break; - case 3: - wd179x_command_w(0, data); - - /* disk head is encoded in the command byte */ - wd179x_set_side((data & 0x02) ? 1 : 0); - break; - }; -} - - - -static WRITE8_HANDLER ( d_pia1_ca2_w ) -{ - cassette_change_state( - cassette_device_image(), - data ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, - CASSETTE_MASK_MOTOR); -} - - - -static READ8_HANDLER ( d_pia1_pa_r ) -{ - return (cassette_input(cassette_device_image()) >= 0) ? 1 : 0; -} - - - -static READ8_HANDLER ( d_pia1_pb_r_coco ) -{ - /* This handles the reading of the memory sense switch (pb2) for the Dragon and CoCo 1, - * on the CoCo serial-in (pb0). Serial-in not yet implemented. - * on the Dragon pb0, is the printer /busy line. - */ - int result; - - if (mess_ram_size >= 0x8000) - result = (pia_get_output_b(0) & 0x80) >> 5; - else if (mess_ram_size >= 0x4000) - result = 0x04; - else - result = 0x00; - - return result; -} - -static READ8_HANDLER ( d_pia1_pb_r_coco2 ) -{ - /* This handles the reading of the memory sense switch (pb2) for the CoCo 2 and 3, - * and serial-in (pb0). Serial-in not yet implemented. - */ - int result; - - if (mess_ram_size <= 0x1000) - result = 0x00; /* 4K: wire pia1_pb2 low */ - else if (mess_ram_size <= 0x4000) - result = 0x04; /* 16K: wire pia1_pb2 high */ - else - result = (pia_get_output_b(0) & 0x40) >> 4; /* 32/64K: wire output of pia0_pb6 to input pia1_pb2 */ - return result; -} - - -/* - Compusense Dragon Plus Control register -*/ - -/* The read handler will eventually return the 6845 status */ -READ8_HANDLER ( plus_reg_r ) -{ - return 0; -} - -/* - When writing the bits have the following meanings : - - bit value purpose - 0 0 First 2k of memory map determined by bits 1 & 2 - 1 6845 display RAM mapped into first 2K of map, - - 2,1 0,0 Normal bottom 32K or ram mapped (from mainboard). - 0,1 First 32K of plus RAM mapped into $0000-$7FFF - 1,0 Second 32K of plus RAM mapped into $0000-$7FFF - 1,1 Undefined. I will assume that it's the same as 00. - 3-7 Unused. -*/ -WRITE8_HANDLER ( plus_reg_w ) -{ - UINT8 *readbank1; - write8_handler writebank1; - - int map; - - dragon_plus_reg = data; - - map = (data & 0x06)>>1; - - switch (map) - { - case 0x00 : readbank1=&mess_ram[0x00000]; break; - case 0x01 : readbank1=&mess_ram[0x10000]; break; - case 0x02 : readbank1=&mess_ram[0x18000]; break; - case 0x03 : readbank1=&mess_ram[0x00000]; break; - default : readbank1=&mess_ram[0x00000]; break; // Just to shut the compiler up ! - } - - writebank1 = MWA8_BANK1; - memory_set_bankptr(1, readbank1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x7fff, 0, 0, writebank1); - -} - - - -/*************************************************************************** - Misc -***************************************************************************/ - -static void d_sam_set_mpurate(int val) -{ - /* The infamous speed up poke. - * - * This was a SAM switch that occupied 4 addresses: - * - * $FFD9 (set) R1 - * $FFD8 (clear) R1 - * $FFD7 (set) R0 - * $FFD6 (clear) R0 - * - * R1:R0 formed the following states: - * 00 - slow 0.89 MHz - * 01 - dual speed ??? - * 1x - fast 1.78 MHz - * - * R1 controlled whether the video addressing was speeded up and R0 - * did the same for the CPU. On pre-CoCo 3 machines, setting R1 caused - * the screen to display garbage because the M6847 could not display - * fast enough. - * - * TODO: Make the overclock more accurate. In dual speed, ROM was a fast - * access but RAM was not. I don't know how to simulate this. - */ - cpunum_set_clockscale(0, val ? 2 : 1); -} -READ8_HANDLER(dragon_alpha_mapped_irq_r) -{ - return dragon_rom_bank[0x3ff0 + offset]; -} - - - - -static void d_sam_set_pageonemode(int val) -{ - /* Page mode - allowed switching between the low 32k and the high 32k, - * assuming that 64k wasn't enabled - * - * TODO: Actually implement this. Also find out what the CoCo 3 did with - * this (it probably ignored it) - */ -} - -static void d_sam_set_memorysize(int val) -{ - /* Memory size - allowed restricting memory accesses to something less than - * 32k - * - * This was a SAM switch that occupied 4 addresses: - * - * $FFDD (set) R1 - * $FFDC (clear) R1 - * $FFDB (set) R0 - * $FFDA (clear) R0 - * - * R1:R0 formed the following states: - * 00 - 4k - * 01 - 16k - * 10 - 64k - * 11 - static RAM (??) - * - * If something less than 64k was set, the low RAM would be smaller and - * mirror the other parts of the RAM - * - * TODO: Find out what "static RAM" is - * TODO: This should affect _all_ memory accesses, not just video ram - * TODO: Verify that the CoCo 3 ignored this - */ -} - - - -/*************************************************************************** - CoCo 3 Timer - - The CoCo 3 had a timer that had would activate when first written to, and - would decrement over and over again until zero was reached, and at that - point, would flag an interrupt. At this point, the timer starts back up - again. - - I am deducing that the timer interrupt line was asserted if the timer was - zero and unasserted if the timer was non-zero. Since we never truly track - the timer, we just use timer callback (coco3_timer_callback() asserts the - line) - - Most CoCo 3 docs, including the specs that Tandy released, say that the - high speed timer is 70ns (half of the speed of the main clock crystal). - However, it seems that this is in error, and the GIME timer is really a - 280ns timer (one eighth the speed of the main clock crystal. Gault's - FAQ agrees with this -***************************************************************************/ - -static mame_timer *coco3_gime_timer; - -static void coco3_timer_reset(void) -{ - /* reset the timer; take the value stored in $FF94-5 and start the timer ticking */ - UINT64 current_time; - UINT16 timer_value; - m6847_timing_type timing; - mame_time target_time; - - /* value is from 0-4095 */ - timer_value = ((coco3_gimereg[4] & 0x0F) * 0x100) | coco3_gimereg[5]; - - if (timer_value > 0) - { - /* depending on the GIME type, cannonicalize the value */ - if (GIME_TYPE_1987) - timer_value += 1; /* the 1987 GIME reset to the value plus one */ - else - timer_value += 2; /* the 1986 GIME reset to the value plus two */ - - /* choose which timing clock source */ - timing = (coco3_gimereg[1] & 0x20) ? M6847_CLOCK : M6847_HSYNC; - - /* determine the current time */ - current_time = m6847_time(timing); - - /* calculate the time */ - target_time = m6847_time_until(timing, current_time + timer_value); - if (LOG_TIMER) - logerror("coco3_reset_timer(): target_time=%g\n", mame_time_to_double(target_time)); - - /* and adjust the timer */ - mame_timer_adjust(coco3_gime_timer, target_time, 0, time_zero); - } - else - { - /* timer is shut off */ - mame_timer_reset(coco3_gime_timer, time_never); - if (LOG_TIMER) - logerror("coco3_reset_timer(): timer is off\n"); - } -} - - - -static void coco3_timer_proc(int dummy) -{ - coco3_timer_reset(); - coco3_vh_blink(); - coco3_raise_interrupt(COCO3_INT_TMR, 1); - coco3_raise_interrupt(COCO3_INT_TMR, 0); -} - - - -static void coco3_timer_init(void) -{ - coco3_gime_timer = mame_timer_alloc(coco3_timer_proc); -} - - - -/*************************************************************************** - MMU -***************************************************************************/ - -static void d_sam_set_maptype(int val) -{ - UINT8 *readbank; - write8_handler writebank; - - if (val && (mess_ram_size > 0x8000)) - { - readbank = &mess_ram[0x8000]; - writebank = MWA8_BANK2; - } - else - { - readbank = coco_rom; - writebank = MWA8_ROM; - } - - memory_set_bankptr(2, readbank); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xfeff, 0, 0, writebank); -} - -/* The hack that was dragon64_set_hipage, is now included in dragon64_set_maptype */ -/* this now correctly selects between roms and ram in the 0x8000-0xFEFF reigon */ -/* these can now be changed by code in *ANY* memory loaction, this more closeley */ -/* resembles what happens on a real Dragon 64/Alpha */ - -static void dragon64_sam_set_maptype(int val) -{ - UINT8 *readbank2; - UINT8 *readbank3; - write8_handler writebank2; - write8_handler writebank3; - - dragon_map_type = val; /* Save in global for later use by rom pager */ - - if (val && (mess_ram_size > 0x8000)) - { - readbank2 = &mess_ram[0x8000]; - readbank3 = &mess_ram[0xc000]; - writebank2 = MWA8_BANK2; - writebank3 = MWA8_BANK3; - } - else - { - readbank2 = dragon_rom_bank; /* Basic/Boot Rom */ - readbank3 = coco_rom+0x4000; /* Cartrage rom */ - writebank2 = MWA8_ROM; - writebank3 = MWA8_ROM; - } - - memory_set_bankptr(2, readbank2); - memory_set_bankptr(3, readbank3); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0, writebank2); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xfeff, 0, 0, writebank3); -} - - - -/************************************* - * - * CoCo 3 - * - *************************************/ - - -/* - * coco3_mmu_translate() takes a zero counted bank index and an offset and - * translates it into a physical RAM address. The following logical memory - * addresses have the following bank indexes: - * - * Bank 0 $0000-$1FFF - * Bank 1 $2000-$3FFF - * Bank 2 $4000-$5FFF - * Bank 3 $6000-$7FFF - * Bank 4 $8000-$9FFF - * Bank 5 $A000-$BFFF - * Bank 6 $C000-$DFFF - * Bank 7 $E000-$FDFF - * Bank 8 $FE00-$FEFF - * - * The result represents a physical RAM address. Since ROM/Cartidge space is - * outside of the standard RAM memory map, ROM addresses get a "physical RAM" - * address that has bit 31 set. For example, ECB would be $80000000- - * $80001FFFF, CB would be $80002000-$80003FFFF etc. It is possible to force - * this function to use a RAM address, which is used for video since video can - * never reference ROM. - */ -offs_t coco3_mmu_translate(int bank, int offset) -{ - int forceram; - UINT32 block; - offs_t result; - - /* Bank 8 is the 0xfe00 block; and it is treated differently */ - if (bank == 8) - { - if (coco3_gimereg[0] & 8) - { - /* this GIME register fixes logical addresses $FExx to physical - * addresses $7FExx ($1FExx if 128k */ - assert(offset < 0x200); - return ((mess_ram_size - 0x200) & 0x7ffff) + offset; - } - bank = 7; - offset += 0x1e00; - forceram = 1; - } - else - { - forceram = 0; - } - - /* Perform the MMU lookup */ - if (coco3_gimereg[0] & 0x40) - { - if (coco3_gimereg[1] & 1) - bank += 8; - block = coco3_mmu[bank]; - block |= ((UINT32) ((coco3_gimereg[11] >> 4) & 0x03)) << 8; - } - else - { - block = bank + 56; - } - - /* Are we actually in ROM? - * - * In our world, ROM is represented by memory blocks 0x40-0x47 - * - * 0 Extended Color Basic - * 1 Color Basic - * 2 Reset Initialization - * 3 Super Extended Color Basic - * 4-7 Cartridge ROM - * - * This is the level where ROM is mapped, according to Tepolt (p21) - */ - if (((block & 0x3f) >= 0x3c) && !coco3_enable_64k && !forceram) - { - static const UINT8 rommap[4][4] = - { - { 0, 1, 6, 7 }, - { 0, 1, 6, 7 }, - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 } - }; - block = rommap[coco3_gimereg[0] & 3][(block & 0x3f) - 0x3c]; - result = (block * 0x2000 + offset) | 0x80000000; - } - else - { - result = ((block * 0x2000) + offset) % mess_ram_size; - } - return result; -} - - - -static void coco3_mmu_update(int lowblock, int hiblock) -{ - static const struct - { - offs_t start; - offs_t end; - } - bank_info[] = - { - { 0x0000, 0x1fff }, - { 0x2000, 0x3fff }, - { 0x4000, 0x5fff }, - { 0x6000, 0x7fff }, - { 0x8000, 0x9fff }, - { 0xa000, 0xbfff }, - { 0xc000, 0xdfff }, - { 0xe000, 0xfdff }, - { 0xfe00, 0xfeff } - }; - - int i, offset, writebank; - UINT8 *readbank; - - for (i = lowblock; i <= hiblock; i++) - { - offset = coco3_mmu_translate(i, 0); - if (offset & 0x80000000) - { - /* an offset into the CoCo 3 ROM */ - readbank = &coco_rom[offset & ~0x80000000]; - writebank = STATIC_ROM; - } - else - { - /* offset into normal RAM */ - readbank = &mess_ram[offset]; - writebank = i + 1; - } - - /* set up the banks */ - memory_set_bankptr(i + 1, readbank); - memory_install_write_handler(0, ADDRESS_SPACE_PROGRAM, bank_info[i].start, bank_info[i].end, 0, 0, writebank); - - if (LOG_MMU) - { - logerror("CoCo3 GIME MMU: Logical $%04x ==> Physical $%05x\n", - (i == 8) ? 0xfe00 : i * 0x2000, - offset); - } - } -} - - - -READ8_HANDLER(coco3_mmu_r) -{ - /* The high two bits are floating (high resistance). Therefore their - * value is undefined. But we are exposing them anyways here - */ - return coco3_mmu[offset]; -} - - - -WRITE8_HANDLER(coco3_mmu_w) -{ - coco3_mmu[offset] = data; - - /* Did we modify the live MMU bank? */ - if ((offset >> 3) == (coco3_gimereg[1] & 1)) - { - offset &= 7; - coco3_mmu_update(offset, (offset == 7) ? 8 : offset); - } -} - - - -/*************************************************************************** - GIME Registers (Reference: Super Extended Basic Unravelled) -***************************************************************************/ - -READ8_HANDLER(coco3_gime_r) -{ - UINT8 result = 0; - - switch(offset) { - case 2: /* Read pending IRQs */ - result = gime_irq; - if (result) { - gime_irq = 0; - coco3_recalc_irq(); - } - break; - - case 3: /* Read pending FIRQs */ - result = gime_firq; - if (result) { - gime_firq = 0; - coco3_recalc_firq(); - } - break; - - case 4: /* Timer MSB/LSB; these arn't readable */ - case 5: - /* JK tells me that these values are indeterminate; and $7E appears - * to be the value most commonly returned - */ - result = 0x7e; - break; - - default: - result = coco3_gimereg[offset]; - break; - } - return result; -} - - - -WRITE8_HANDLER(coco3_gime_w) -{ - coco3_gimereg[offset] = data; - - if (LOG_GIME) - logerror("CoCo3 GIME: $%04x <== $%02x pc=$%04x\n", offset + 0xff90, data, activecpu_get_pc()); - - /* Features marked with '!' are not yet implemented */ - switch(offset) - { - case 0: - /* $FF90 Initialization register 0 - * Bit 7 COCO 1=CoCo compatible mode - * Bit 6 MMUEN 1=MMU enabled - * Bit 5 IEN 1 = GIME chip IRQ enabled - * Bit 4 FEN 1 = GIME chip FIRQ enabled - * Bit 3 MC3 1 = RAM at FEXX is constant - * Bit 2 MC2 1 = standard SCS (Spare Chip Select) - * Bit 1 MC1 ROM map control - * Bit 0 MC0 ROM map control - */ - coco3_mmu_update(0, 8); - break; - - case 1: - /* $FF91 Initialization register 1 - * Bit 7 Unused - * Bit 6 Unused - * Bit 5 TINS Timer input select; 1 = 280 nsec, 0 = 63.5 usec - * Bit 4 Unused - * Bit 3 Unused - * Bit 2 Unused - * Bit 1 Unused - * Bit 0 TR Task register select - */ - coco3_mmu_update(0, 8); - coco3_timer_reset(); - break; - - case 2: - /* $FF92 Interrupt request enable register - * Bit 7 Unused - * Bit 6 Unused - * Bit 5 TMR Timer interrupt - * Bit 4 HBORD Horizontal border interrupt - * Bit 3 VBORD Vertical border interrupt - * ! Bit 2 EI2 Serial data interrupt - * Bit 1 EI1 Keyboard interrupt - * Bit 0 EI0 Cartridge interrupt - */ - if (LOG_INT_MASKING) - { - logerror("CoCo3 IRQ: Interrupts { %s%s%s%s%s%s} enabled\n", - (data & 0x20) ? "TMR " : "", - (data & 0x10) ? "HBORD " : "", - (data & 0x08) ? "VBORD " : "", - (data & 0x04) ? "EI2 " : "", - (data & 0x02) ? "EI1 " : "", - (data & 0x01) ? "EI0 " : ""); - } - break; - - case 3: - /* $FF93 Fast interrupt request enable register - * Bit 7 Unused - * Bit 6 Unused - * Bit 5 TMR Timer interrupt - * Bit 4 HBORD Horizontal border interrupt - * Bit 3 VBORD Vertical border interrupt - * ! Bit 2 EI2 Serial border interrupt - * Bit 1 EI1 Keyboard interrupt - * Bit 0 EI0 Cartridge interrupt - */ - if (LOG_INT_MASKING) - { - logerror("CoCo3 FIRQ: Interrupts { %s%s%s%s%s%s} enabled\n", - (data & 0x20) ? "TMR " : "", - (data & 0x10) ? "HBORD " : "", - (data & 0x08) ? "VBORD " : "", - (data & 0x04) ? "EI2 " : "", - (data & 0x02) ? "EI1 " : "", - (data & 0x01) ? "EI0 " : ""); - } - break; - - case 4: - /* $FF94 Timer register MSB - * Bits 4-7 Unused - * Bits 0-3 High order four bits of the timer - */ - coco3_timer_reset(); - break; - - case 5: - /* $FF95 Timer register LSB - * Bits 0-7 Low order eight bits of the timer - */ - break; - - case 8: - /* $FF98 Video Mode Register - * Bit 7 BP 0 = Text modes, 1 = Graphics modes - * Bit 6 Unused - * ! Bit 5 BPI Burst Phase Invert (Color Set) - * Bit 4 MOCH 1 = Monochrome on Composite - * ! Bit 3 H50 1 = 50 Hz power, 0 = 60 Hz power - * Bits 0-2 LPR Lines per row - */ - break; - - case 9: - /* $FF99 Video Resolution Register - * Bit 7 Undefined - * Bits 5-6 LPF Lines per Field (Number of Rows) - * Bits 2-4 HRES Horizontal Resolution - * Bits 0-1 CRES Color Resolution - */ - break; - - case 10: - /* $FF9A Border Register - * Bits 6,7 Unused - * Bits 0-5 BRDR Border color - */ - break; - - case 12: - /* $FF9C Vertical Scroll Register - * Bits 4-7 Reserved - * ! Bits 0-3 VSC Vertical Scroll bits - */ - break; - - case 11: - case 13: - case 14: - /* $FF9B,$FF9D,$FF9E Vertical Offset Registers - * - * According to JK, if an odd value is placed in $FF9E on the 1986 - * GIME, the GIME crashes - * - * The reason that $FF9B is not mentioned in offical documentation - * is because it is only meaninful in CoCo 3's with the 2MB upgrade - */ - break; - - case 15: - /* - * $FF9F Horizontal Offset Register - * Bit 7 HVEN Horizontal Virtual Enable - * Bits 0-6 X0-X6 Horizontal Offset Address - * - * Unline $FF9D-E, this value can be modified mid frame - */ - break; - } -} - - - -static const UINT8 *coco3_sam_get_rambase(void) -{ - UINT32 video_base; - video_base = coco3_get_video_base(0xE0, 0x3F); - return &mess_ram[video_base % mess_ram_size]; -} - - - - -static void coco3_sam_set_maptype(int val) -{ - coco3_enable_64k = val; - coco3_mmu_update(4, 8); -} - - - -/*************************************************************************** - Cartridge Expansion Slot - ***************************************************************************/ - -static void coco_cartrige_init(const struct cartridge_slot *cartinterface, const struct cartridge_callback *callbacks) -{ - coco_cart_interface = cartinterface; - - if (cartinterface) - cartinterface->init(callbacks); -} - -READ8_HANDLER(coco_cartridge_r) -{ - return (coco_cart_interface && coco_cart_interface->io_r) ? coco_cart_interface->io_r(offset) : 0; -} - -WRITE8_HANDLER(coco_cartridge_w) -{ - if (coco_cart_interface && coco_cart_interface->io_w) - coco_cart_interface->io_w(offset, data); -} - - READ8_HANDLER(coco3_cartridge_r) -{ - /* This behavior is documented in Super Extended Basic Unravelled, page 14 */ - return ((coco3_gimereg[0] & 0x04) || (offset >= 0x10)) ? coco_cartridge_r(offset) : 0; -} - -WRITE8_HANDLER(coco3_cartridge_w) -{ - /* This behavior is documented in Super Extended Basic Unravelled, page 14 */ - if ((coco3_gimereg[0] & 0x04) || (offset >= 0x10)) - coco_cartridge_w(offset, data); -} - - -static void coco_cartridge_enablesound(int enable) -{ - if (coco_cart_interface && coco_cart_interface->enablesound) - coco_cart_interface->enablesound(enable); -} - -/*************************************************************************** - Machine Initialization -***************************************************************************/ - -static void coco_setcartline(int data) -{ - /* If cart autostart enabled then start it, else do not autostart */ - if (cart_inserted) - cart_line = data; - else - cart_line = 0; - - pia_1_cb1_w(0, data ? ASSERT_LINE : CLEAR_LINE); -} - -static void coco3_setcartline(int data) -{ - /* If cart autostart enabled then start it, else do not autostart */ - if (cart_inserted) - cart_line = data; - else - cart_line = 0; - - pia_1_cb1_w(0, data ? ASSERT_LINE : CLEAR_LINE); - coco3_raise_interrupt(COCO3_INT_EI0, cart_line ? 1 : 0); -} - -/* This function, and all calls of it, are hacks for bankswitched games */ -static int count_bank(void) -{ - unsigned int crc; - mess_image *img; - - img = cartslot_image(); - if (!image_exists(img)) - return FALSE; - - crc = image_crc(img); - - cart_bank_size = 0x4000; - - switch( crc ) - { - case 0x83bd6056: /* Mind-Roll */ - logerror("ROM cartridge bankswitching enabled: Mind-Roll (26-3100)\n"); - return 1; - break; - case 0xBF4AD8F8: /* Predator */ - logerror("ROM cartridge bankswitching enabled: Predator (26-3165)\n"); - return 3; - break; - case 0xDD94DD06: /* RoboCop */ - logerror("ROM cartridge bankswitching enabled: RoboCop (26-3164)\n"); - return 7; - break; - default: - if (is_megacart()) - { - // Select Mega cart bank size 8k or 16K - // Mega cart can hold up to a 512megabit rom, banks are 8k or 16K - cart_bank_size=(mega_ctrl & 0x02) ? 0x4000 : 0x2000; - return 0x3F; - break; - } - else - { - return 0; - break; - } - } -} - -/* This function, and all calls of it, are hacks for bankswitched games */ -static int is_Orch90(void) -{ - unsigned int crc; - mess_image *img; - - img = cartslot_image(); - if (!image_exists(img)) - return FALSE; - - crc = image_crc(img); - return crc == 0x15FB39AF; -} - -/* Detect Megacart code, looks for Megacart magic number at offset 4 in file */ -static int is_megacart(void) -{ - UINT32 Magic; - int ret; - mess_image *img; - - img = cartslot_image(); - - if (image_exists(img)) // Check that cart is mounted - { - image_fseek(cartslot_image(), 4, SEEK_SET); // Mega cart magic no at offset 4 - image_fread(cartslot_image(), &Magic, sizeof(Magic)); // 4 bytes long - - ret = (Magic == 0x12210968); // return true if magic no found - } - else - ret = 0; // Return 0 if image not open - - return ret; -} - -static void generic_setcartbank(int bank, UINT8 *cartpos) -{ - if (count_bank() > 0) - { - /* pin variable to proper bit width */ - bank &= count_bank(); - - /* read the bank */ - image_fseek(cartslot_image(), bank * cart_bank_size, SEEK_SET); - image_fread(cartslot_image(), cartpos, cart_bank_size); - } -} - -static void coco_setcartbank(int bank) -{ - generic_setcartbank(bank, &coco_rom[0x4000]); -} - -static void coco3_setcartbank(int bank) -{ - generic_setcartbank(bank, &coco_rom[0xC000]); -} - -static const struct cartridge_callback coco_cartcallbacks = -{ - coco_setcartline, - coco_setcartbank -}; - -static const struct cartridge_callback coco3_cartcallbacks = -{ - coco3_setcartline, - coco3_setcartbank -}; - -static void generic_init_machine(running_machine *machine, const pia6821_interface *piaintf, const sam6883_interface *samintf, - const struct cartridge_slot *cartinterface, const struct cartridge_callback *cartcallback, - void (*recalc_interrupts_)(int dummy)) -{ - const struct cartridge_slot *cartslottype; - int portnum; - - /* clear static variables */ - coco_hiresjoy_ca = 1; - coco_hiresjoy_xtransitiontime = time_zero; - coco_hiresjoy_ytransitiontime = time_zero; - - /* set up function pointers */ - update_keyboard = coco_update_keyboard; - recalc_interrupts = recalc_interrupts_; - - /* this timer is used to schedule keyboard updating */ - update_keyboard_timer = mame_timer_alloc(coco_update_keyboard_timerproc); - - coco_rom = memory_region(REGION_CPU1); - - /* Setup Dragon 64/ Alpha default bank */ - dragon_rom_bank = coco_rom; - - cart_line = CARTLINE_CLEAR; - - pia_config(0, PIA_STANDARD_ORDERING | PIA_8BIT, &piaintf[0]); - pia_config(1, PIA_STANDARD_ORDERING | PIA_8BIT, &piaintf[1]); - pia_config(2, PIA_STANDARD_ORDERING | PIA_8BIT, &piaintf[2]); /* Dragon Alpha 3rd pia */ - pia_reset(); - - sam_init(machine, samintf); - - /* HACK for bankswitching carts */ - if( is_Orch90() ) - { - cartslottype = &cartridge_Orch90; - } - else - { - if (is_megacart()) - cartslottype = &cartridge_banks_mega; - else - cartslottype = (count_bank() > 0) ? &cartridge_banks : &cartridge_standard; - } - - coco_cartrige_init(cart_inserted ? cartslottype : cartinterface, cartcallback); - - for (portnum = 0; portnum <= 6; portnum++) - input_port_set_changed_callback(portnum, ~0, coco_poll_keyboard, NULL); - -#ifdef MAME_DEBUG - cpuintrf_set_dasm_override(0, coco_dasm_override); -#endif - - add_exit_callback(machine, coco_machine_stop); -} - -MACHINE_START( dragon32 ) -{ - /* install low RAM; we might have to mirror if there is <32k of RAM */ - offs_t ram_end = (mess_ram_size < 0x8000) ? (mess_ram_size - 1) : 0x7FFF; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_end, 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_end, 0, 0, MWA8_BANK1); - memory_set_bankptr(1, &mess_ram[0]); - - generic_init_machine(machine, coco_pia_intf, &coco_sam_intf, &cartridge_fdc_dragon, &coco_cartcallbacks, d_recalc_interrupts); - - coco_or_dragon = AM_DRAGON; - return 0; -} - -MACHINE_START( dragon64 ) -{ - memory_set_bankptr(1, &mess_ram[0]); - generic_init_machine(machine, dragon64_pia_intf, &dragon64_sam_intf, &cartridge_fdc_dragon, &coco_cartcallbacks, d_recalc_interrupts); - acia_6551_init(); - - coco_or_dragon = AM_DRAGON; - return 0; -} - -MACHINE_START( d64plus ) -{ - memory_set_bankptr(1, &mess_ram[0]); - generic_init_machine(machine, dragon64_pia_intf, &dragon64_sam_intf, &cartridge_fdc_dragon, &coco_cartcallbacks, d_recalc_interrupts); - acia_6551_init(); - - dragon_plus_reg = 0; - plus_reg_w(0,0); - - coco_or_dragon = AM_DRAGON; - return 0; -} - -MACHINE_START( tanodr64 ) -{ - memory_set_bankptr(1, &mess_ram[0]); - generic_init_machine(machine, dragon64_pia_intf, &dragon64_sam_intf, &cartridge_fdc_coco, &coco_cartcallbacks, d_recalc_interrupts); - acia_6551_init(); - - coco_or_dragon = AM_DRAGON; - - return 0; -} - -MACHINE_START( dgnalpha ) -{ - memory_set_bankptr(1, &mess_ram[0]); - generic_init_machine(machine, dgnalpha_pia_intf, &dragon64_sam_intf, 0 /*&cartridge_fdc_dragon*/, &coco_cartcallbacks, d_recalc_interrupts); - - acia_6551_init(); - - /* dgnalpha_just_reset, is here to flag that we should ignore the first irq generated */ - /* by the WD2797, it is reset to 0 after the first inurrupt */ - dgnalpha_just_reset=1; - - wd179x_init(WD_TYPE_179X, dgnalpha_fdc_callback); - - coco_or_dragon = AM_DRAGON; - return 0; -} - -static void coco12_init_machine(running_machine *machine, const pia6821_interface *piaintf) -{ - /* install low RAM; we might have to mirror if there is <32k of RAM */ - offs_t ram_end = (mess_ram_size < 0x8000) ? (mess_ram_size - 1) : 0x7FFF; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_end, 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_end, 0, 0, MWA8_BANK1); - memory_set_bankptr(1, &mess_ram[0]); - - if (ram_end < 0x7FFF) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, ram_end + 1, 0x7FFF, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, ram_end + 1, 0x7FFF, 0, 0, MWA8_NOP); - } - - generic_init_machine(machine, piaintf, &coco_sam_intf, &cartridge_fdc_coco, &coco_cartcallbacks, d_recalc_interrupts); - coco_or_dragon = AM_COCO; -} - -MACHINE_START( coco ) -{ - coco12_init_machine(machine, coco_pia_intf); - return 0; -} - -MACHINE_START( coco2 ) -{ - coco12_init_machine(machine, coco2_pia_intf); - return 0; -} - -static void coco3_machine_reset(running_machine *machine) -{ - int i; - - /* Tepolt verifies that the GIME registers are all cleared on initialization */ - coco3_enable_64k = 0; - gime_irq = 0; - gime_firq = 0; - for (i = 0; i < 8; i++) - { - coco3_mmu[i] = coco3_mmu[i + 8] = 56 + i; - coco3_gimereg[i] = 0; - } - coco3_mmu_update(0, 8); -} - -static void coco3_state_postload(void) -{ - coco3_mmu_update(0, 8); -} - -MACHINE_START( coco3 ) -{ - generic_init_machine(machine, coco3_pia_intf, &coco3_sam_intf, &cartridge_fdc_coco, &coco3_cartcallbacks, coco3_recalc_interrupts); - - /* CoCo 3 specific function pointers */ - update_keyboard = coco3_update_keyboard; - - coco3_machine_reset(machine); - coco3_timer_init(); - - coco3_interupt_line = 0; - - coco_or_dragon = AM_COCO; - - state_save_register_global_array(coco3_mmu); - state_save_register_global_array(coco3_gimereg); - state_save_register_global(coco3_interupt_line); - state_save_register_global(gime_irq); - state_save_register_global(gime_firq); - state_save_register_func_postload(coco3_state_postload); - - add_reset_callback(machine, coco3_machine_reset); - return 0; -} - -static void coco_machine_stop(running_machine *machine) -{ - if (coco_cart_interface && coco_cart_interface->term) - coco_cart_interface->term(); - cart_inserted = 0; -} - -/*************************************************************************** - OS9 Syscalls for disassembly -****************************************************************************/ - -#ifdef MAME_DEBUG - -static const char *os9syscalls[] = -{ - "F$Link", /* Link to Module */ - "F$Load", /* Load Module from File */ - "F$UnLink", /* Unlink Module */ - "F$Fork", /* Start New Process */ - "F$Wait", /* Wait for Child Process to Die */ - "F$Chain", /* Chain Process to New Module */ - "F$Exit", /* Terminate Process */ - "F$Mem", /* Set Memory Size */ - "F$Send", /* Send Signal to Process */ - "F$Icpt", /* Set Signal Intercept */ - "F$Sleep", /* Suspend Process */ - "F$SSpd", /* Suspend Process */ - "F$ID", /* Return Process ID */ - "F$SPrior", /* Set Process Priority */ - "F$SSWI", /* Set Software Interrupt */ - "F$PErr", /* Print Error */ - "F$PrsNam", /* Parse Pathlist Name */ - "F$CmpNam", /* Compare Two Names */ - "F$SchBit", /* Search Bit Map */ - "F$AllBit", /* Allocate in Bit Map */ - "F$DelBit", /* Deallocate in Bit Map */ - "F$Time", /* Get Current Time */ - "F$STime", /* Set Current Time */ - "F$CRC", /* Generate CRC */ - "F$GPrDsc", /* get Process Descriptor copy */ - "F$GBlkMp", /* get System Block Map copy */ - "F$GModDr", /* get Module Directory copy */ - "F$CpyMem", /* Copy External Memory */ - "F$SUser", /* Set User ID number */ - "F$UnLoad", /* Unlink Module by name */ - "F$Alarm", /* Color Computer Alarm Call (system wide) */ - NULL, - NULL, - "F$NMLink", /* Color Computer NonMapping Link */ - "F$NMLoad", /* Color Computer NonMapping Load */ - NULL, - NULL, - "F$TPS", /* Return System's Ticks Per Second */ - "F$TimAlm", /* COCO individual process alarm call */ - "F$VIRQ", /* Install/Delete Virtual IRQ */ - "F$SRqMem", /* System Memory Request */ - "F$SRtMem", /* System Memory Return */ - "F$IRQ", /* Enter IRQ Polling Table */ - "F$IOQu", /* Enter I/O Queue */ - "F$AProc", /* Enter Active Process Queue */ - "F$NProc", /* Start Next Process */ - "F$VModul", /* Validate Module */ - "F$Find64", /* Find Process/Path Descriptor */ - "F$All64", /* Allocate Process/Path Descriptor */ - "F$Ret64", /* Return Process/Path Descriptor */ - "F$SSvc", /* Service Request Table Initialization */ - "F$IODel", /* Delete I/O Module */ - "F$SLink", /* System Link */ - "F$Boot", /* Bootstrap System */ - "F$BtMem", /* Bootstrap Memory Request */ - "F$GProcP", /* Get Process ptr */ - "F$Move", /* Move Data (low bound first) */ - "F$AllRAM", /* Allocate RAM blocks */ - "F$AllImg", /* Allocate Image RAM blocks */ - "F$DelImg", /* Deallocate Image RAM blocks */ - "F$SetImg", /* Set Process DAT Image */ - "F$FreeLB", /* Get Free Low Block */ - "F$FreeHB", /* Get Free High Block */ - "F$AllTsk", /* Allocate Process Task number */ - "F$DelTsk", /* Deallocate Process Task number */ - "F$SetTsk", /* Set Process Task DAT registers */ - "F$ResTsk", /* Reserve Task number */ - "F$RelTsk", /* Release Task number */ - "F$DATLog", /* Convert DAT Block/Offset to Logical */ - "F$DATTmp", /* Make temporary DAT image (Obsolete) */ - "F$LDAXY", /* Load A [X,[Y]] */ - "F$LDAXYP", /* Load A [X+,[Y]] */ - "F$LDDDXY", /* Load D [D+X,[Y]] */ - "F$LDABX", /* Load A from 0,X in task B */ - "F$STABX", /* Store A at 0,X in task B */ - "F$AllPrc", /* Allocate Process Descriptor */ - "F$DelPrc", /* Deallocate Process Descriptor */ - "F$ELink", /* Link using Module Directory Entry */ - "F$FModul", /* Find Module Directory Entry */ - "F$MapBlk", /* Map Specific Block */ - "F$ClrBlk", /* Clear Specific Block */ - "F$DelRAM", /* Deallocate RAM blocks */ - "F$GCMDir", /* Pack module directory */ - "F$AlHRam", /* Allocate HIGH RAM Blocks */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "F$RegDmp", /* Ron Lammardo's debugging register dump call */ - "F$NVRAM", /* Non Volatile RAM (RTC battery backed static) read/write */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "I$Attach", /* Attach I/O Device */ - "I$Detach", /* Detach I/O Device */ - "I$Dup", /* Duplicate Path */ - "I$Create", /* Create New File */ - "I$Open", /* Open Existing File */ - "I$MakDir", /* Make Directory File */ - "I$ChgDir", /* Change Default Directory */ - "I$Delete", /* Delete File */ - "I$Seek", /* Change Current Position */ - "I$Read", /* Read Data */ - "I$Write", /* Write Data */ - "I$ReadLn", /* Read Line of ASCII Data */ - "I$WritLn", /* Write Line of ASCII Data */ - "I$GetStt", /* Get Path Status */ - "I$SetStt", /* Set Path Status */ - "I$Close", /* Close Path */ - "I$DeletX" /* Delete from current exec dir */ -}; - - -static offs_t coco_dasm_override(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) -{ - unsigned call; - unsigned result = 0; - - if ((oprom[0] == 0x10) && (oprom[1] == 0x3F)) - { - call = oprom[2]; - if ((call >= 0) && (call < sizeof(os9syscalls) / sizeof(os9syscalls[0])) && os9syscalls[call]) - { - sprintf(buffer, "OS9 %s", os9syscalls[call]); - result = 3; - } - } - return result; -} - - - -#endif /* MAME_DEBUG */ diff --git a/mess/machine/coleco.c b/mess/machine/coleco.c deleted file mode 100644 index 3c5bd6fc3..000000000 --- a/mess/machine/coleco.c +++ /dev/null @@ -1,144 +0,0 @@ -/*************************************************************************** - - coleco.c - - Machine file to handle emulation of the Colecovision. - - TODO: - - Extra controller support -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/tms9928a.h" -#include "includes/coleco.h" -#include "devices/cartslot.h" -#include "image.h" - -static int JoyMode=0; -int JoyStat[2]; - -int coleco_cart_verify(const UINT8 *cartdata, size_t size) -{ - int retval = IMAGE_VERIFY_FAIL; - - /* Verify the file is in Colecovision format */ - if ((cartdata[0] == 0xAA) && (cartdata[1] == 0x55)) /* Production Cartridge */ - retval = IMAGE_VERIFY_PASS; - if ((cartdata[0] == 0x55) && (cartdata[1] == 0xAA)) /* "Test" Cartridge. Some games use this method to skip ColecoVision title screen and delay */ - retval = IMAGE_VERIFY_PASS; - - return retval; -} - -READ8_HANDLER ( coleco_paddle_r ) -{ - /* Player 1 */ - if ((offset & 0x02)==0) - { - /* Keypad and fire 1 (SAC Yellow Button) */ - if (JoyMode==0) - { - int inport0,inport1,inport6,data; - - inport0 = input_port_0_r(0); - inport1 = input_port_1_r(0); - inport6 = input_port_6_r(0); - - /* Numeric pad buttons are not independent on a real ColecoVision, if you push more - than one, a real ColecoVision think that it is a third button, so we are going to emulate - the right behaviour */ - - data = 0x0F; /* No key pressed by default */ - if (!(inport6&0x01)) /* If Driving Controller enabled -> no keypad 1*/ - { - if (!(inport0 & 0x01)) data &= 0x0A; /* 0 */ - if (!(inport0 & 0x02)) data &= 0x0D; /* 1 */ - if (!(inport0 & 0x04)) data &= 0x07; /* 2 */ - if (!(inport0 & 0x08)) data &= 0x0C; /* 3 */ - if (!(inport0 & 0x10)) data &= 0x02; /* 4 */ - if (!(inport0 & 0x20)) data &= 0x03; /* 5 */ - if (!(inport0 & 0x40)) data &= 0x0E; /* 6 */ - if (!(inport0 & 0x80)) data &= 0x05; /* 7 */ - if (!(inport1 & 0x01)) data &= 0x01; /* 8 */ - if (!(inport1 & 0x02)) data &= 0x0B; /* 9 */ - if (!(inport1 & 0x04)) data &= 0x06; /* # */ - if (!(inport1 & 0x08)) data &= 0x09; /* . */ - } - return (inport1 & 0x70) | (data); - } - /* Joystick and fire 2 (SAC Red Button) */ - else - { - int data = input_port_2_r(0) & 0xCF; - int inport6 = input_port_6_r(0); - - if (inport6&0x07) /* If Extra Contollers enabled */ - { - if (JoyStat[0]==0) data|=0x30; /* Spinner Move Left*/ - else if (JoyStat[0]==1) data|=0x20; /* Spinner Move Right */ - } - return data | 0x80; - } - } - /* Player 2 */ - else - { - /* Keypad and fire 1 */ - if (JoyMode==0) - { - int inport3,inport4,data; - - inport3 = input_port_3_r(0); - inport4 = input_port_4_r(0); - - /* Numeric pad buttons are not independent on a real ColecoVision, if you push more - than one, a real ColecoVision think that it is a third button, so we are going to emulate - the right behaviour */ - - data = 0x0F; /* No key pressed by default */ - if (!(inport3 & 0x01)) data &= 0x0A; /* 0 */ - if (!(inport3 & 0x02)) data &= 0x0D; /* 1 */ - if (!(inport3 & 0x04)) data &= 0x07; /* 2 */ - if (!(inport3 & 0x08)) data &= 0x0C; /* 3 */ - if (!(inport3 & 0x10)) data &= 0x02; /* 4 */ - if (!(inport3 & 0x20)) data &= 0x03; /* 5 */ - if (!(inport3 & 0x40)) data &= 0x0E; /* 6 */ - if (!(inport3 & 0x80)) data &= 0x05; /* 7 */ - if (!(inport4 & 0x01)) data &= 0x01; /* 8 */ - if (!(inport4 & 0x02)) data &= 0x0B; /* 9 */ - if (!(inport4 & 0x04)) data &= 0x06; /* # */ - if (!(inport4 & 0x08)) data &= 0x09; /* . */ - - return (inport4 & 0x70) | (data); - } - /* Joystick and fire 2*/ - else - { - int data = input_port_5_r(0) & 0xCF; - int inport6 = input_port_6_r(0); - - if (inport6&0x02) /* If Roller Controller enabled */ - { - if (JoyStat[1]==0) data|=0x30; - else if (JoyStat[1]==1) data|=0x20; - } - - return data | 0x80; - } - } - -} - - -WRITE8_HANDLER ( coleco_paddle_toggle_off ) -{ - JoyMode=0; - return; -} - -WRITE8_HANDLER ( coleco_paddle_toggle_on ) -{ - JoyMode=1; - return; -} - diff --git a/mess/machine/compis.c b/mess/machine/compis.c deleted file mode 100644 index 4536b8639..000000000 --- a/mess/machine/compis.c +++ /dev/null @@ -1,1647 +0,0 @@ -/****************************************************************************** - - compis.c - machine driver - - Per Ola Ingvarsson - Tomas Karlsson - - ******************************************************************************/ - -/*-------------------------------------------------------------------------*/ -/* Include files */ -/*-------------------------------------------------------------------------*/ - -#include "driver.h" -#include "cpu/i86/i186intf.h" -#include "vidhrdw/generic.h" -#include "machine/8255ppi.h" -#include "machine/mm58274c.h" -#include "machine/pic8259.h" -#include "includes/compis.h" -#include "machine/pit8253.h" -#include "machine/nec765.h" -#include "includes/msm8251.h" -#include "devices/basicdsk.h" -#include "devices/printer.h" - -/*-------------------------------------------------------------------------*/ -/* Defines, constants, and global variables */ -/*-------------------------------------------------------------------------*/ - -/* CPU 80186 */ -#define LATCH_INTS 1 -#define LOG_PORTS 1 -#define LOG_INTERRUPTS 1 -#define LOG_TIMER 1 -#define LOG_OPTIMIZATION 1 -#define LOG_DMA 1 -#define CPU_RESUME_TRIGGER 7123 - -struct mem_state -{ - UINT16 lower; - UINT16 upper; - UINT16 middle; - UINT16 middle_size; - UINT16 peripheral; -}; - -struct timer_state -{ - UINT16 control; - UINT16 maxA; - UINT16 maxB; - UINT16 count; - mame_timer * int_timer; - mame_timer * time_timer; - UINT8 time_timer_active; - double last_time; -}; - -struct dma_state -{ - UINT32 source; - UINT32 dest; - UINT16 count; - UINT16 control; - UINT8 finished; - mame_timer * finish_timer; -}; - -struct intr_state -{ - UINT8 pending; - UINT16 ack_mask; - UINT16 priority_mask; - UINT16 in_service; - UINT16 request; - UINT16 status; - UINT16 poll_status; - UINT16 timer; - UINT16 dma[2]; - UINT16 ext[4]; -}; - -static struct i186_state -{ - struct timer_state timer[3]; - struct dma_state dma[2]; - struct intr_state intr; - struct mem_state mem; -} i186; - -/* Keyboard */ -const UINT8 compis_keyb_codes[6][16] = { -{0x39, 0x32, 0x29, 0x20, 0x17, 0x0e, 0x05, 0x56, 0x4d, 0x44, 0x08, 0x57, 0x59, 0x4e, 0x43, 0x3a}, -{0x31, 0x28, 0x1f, 0x16, 0x0d, 0x04, 0x55, 0x4c, 0x4f, 0x58, 0x00, 0x07, 0xff, 0x42, 0x3b, 0x30}, -{0x27, 0x1e, 0x15, 0x0c, 0x03, 0x54, 0x06, 0x50, 0x01, 0xfe, 0x38, 0x2f, 0x26, 0x1d, 0x14, 0x0b}, -{0x02, 0x53, 0x4a, 0x48, 0x51, 0xfe, 0xfd, 0xfc, 0x40, 0xfc, 0xfd, 0x0f, 0x18, 0x21, 0x22, 0x34}, -{0x10, 0x11, 0x1a, 0x23, 0x1b, 0x2d, 0x04, 0x0a, 0x13, 0x1c, 0x2a, 0x3c, 0x33, 0x19, 0x46, 0x2b}, -{0x2c, 0x3e, 0x35, 0x12, 0x3f, 0x24, 0x25, 0x37, 0x2e, 0x45, 0x3d, 0x47, 0x36, 0x00, 0x00, 0x00} -}; -enum COMPIS_KEYB_SHIFT -{ - KEY_CAPS_LOCK = 0xff, - KEY_SHIFT = 0xfe, - KEY_SUPER_SHIFT = 0xfd, - KEY_CTRL = 0xfc -}; -typedef struct -{ - UINT8 nationality; /* Character set, keyboard layout (Swedish) */ - UINT8 release_time; /* Autorepeat release time (0.8) */ - UINT8 speed; /* Transmission speed (14) */ - UINT8 roll_over; /* Key roll-over (MKEY) */ - UINT8 click; /* Key click (NO) */ - UINT8 break_nmi; /* Keyboard break (NMI) */ - UINT8 beep_freq; /* Beep frequency (low) */ - UINT8 beep_dura; /* Beep duration (short) */ - UINT8 password[8]; /* Password */ - UINT8 owner[16]; /* Owner */ - UINT8 network_id; /* Network workstation number (1) */ - UINT8 boot_order[4]; /* Boot device order (FD HD NW PD) */ - UINT8 key_code; - UINT8 key_status; -} TYP_COMPIS_KEYBOARD; - -/* USART 8251 */ -typedef struct -{ - UINT8 status; - UINT8 bytes_sent; -} TYP_COMPIS_USART; - -enum COMPIS_USART_STATES -{ - COMPIS_USART_STATUS_TX_READY = 0x01, - COMPIS_USART_STATUS_RX_READY = 0x02, - COMPIS_USART_STATUS_TX_EMPTY = 0x04 -}; - -/* Compis interrupt handling */ -enum COMPIS_INTERRUPTS -{ - COMPIS_NMI_KEYB = 0x00, /* Default not used */ - COMPIS_INT_8251_TXRDY = 0x01, /* Default not used */ - COMPIS_INT_8274 = 0x03 -}; - -enum COMPIS_INTERRUPT_REQUESTS -{ - COMPIS_IRQ_SBX0_INT1 = 0x00, - COMPIS_IRQ_SBX0_INT0 = 0x01, /* Default not used */ - COMPIS_IRQ_8251_RXRDY = 0x02, - COMPIS_IRQ_80150_SYSTICK = 0x03, /* Default not used */ - COMPIS_IRQ_ACK_J7 = 0x04, - COMPIS_IRQ_SBX1_INT1 = 0x05, /* Default not used */ - COMPIS_IRQ_SBX1_INT0 = 0x06, /* Default not used */ - COMPIS_IRQ_80150_DELAY = 0x07 -}; - -/* Printer */ -typedef struct -{ - UINT8 data; - UINT8 strobe; -} TYP_COMPIS_PRINTER; - - -/* Main emulation */ -typedef struct -{ - TYP_COMPIS_PRINTER printer; /* Printer */ - TYP_COMPIS_USART usart; /* USART 8251 */ - TYP_COMPIS_KEYBOARD keyboard; /* Keyboard */ -} TYP_COMPIS; - -static TYP_COMPIS compis; - - -/*-------------------------------------------------------------------------*/ -/* Name: compis_irq_set */ -/* Desc: IRQ - Issue an interrupt request */ -/*-------------------------------------------------------------------------*/ -void compis_irq_set(UINT8 irq) -{ - cpunum_set_input_line_vector(0, 0, irq); - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -/*-------------------------------------------------------------------------*/ -/* OSP PIC 8259 */ -/*-------------------------------------------------------------------------*/ - -void compis_osp_pic_irq(UINT8 irq) -{ - pic8259_set_irq_line(0, irq, 1); - pic8259_set_irq_line(0, irq, 0); -} - - READ8_HANDLER ( compis_osp_pic_r ) -{ - return pic8259_0_r (offset >> 1); -} - -WRITE8_HANDLER ( compis_osp_pic_w ) -{ - pic8259_0_w (offset >> 1, data); -} - -/*-------------------------------------------------------------------------*/ -/* Keyboard */ -/*-------------------------------------------------------------------------*/ -void compis_keyb_update(void) -{ - UINT8 key_code; - UINT8 key_status; - UINT8 irow; - UINT8 icol; - UINT16 data; - UINT16 ibit; - - key_code = 0; - key_status = 0x80; - - for (irow = 0; irow < 6; irow++) - { - data = readinputport(irow); - if (data != 0) - { - ibit = 1; - for (icol = 0; icol < 16; icol++) - { - if (data & ibit) - { - switch(compis_keyb_codes[irow][icol]) - { - case KEY_SHIFT: - key_status |= 0x01; - break; - case KEY_CAPS_LOCK: - key_status |= 0x02; - break; - case KEY_CTRL: - key_status |= 0x04; - break; - case KEY_SUPER_SHIFT: - key_status |= 0x08; - break; - default: - key_code = compis_keyb_codes[irow][icol]; - } - } - ibit <<= 1; - } - } - } - if (key_code != 0) - { - compis.keyboard.key_code = key_code; - compis.keyboard.key_status = key_status; - compis.usart.status |= COMPIS_USART_STATUS_RX_READY; - compis.usart.bytes_sent = 0; -// compis_osp_pic_irq(COMPIS_IRQ_8251_RXRDY); - } -} - -void compis_keyb_init(void) -{ - compis.keyboard.key_code = 0; - compis.keyboard.key_status = 0x80; - compis.usart.status = 0; - compis.usart.bytes_sent = 0; -} - -/*-------------------------------------------------------------------------*/ -/* FDC iSBX-218A */ -/*-------------------------------------------------------------------------*/ -static void compis_fdc_reset(void) -{ - nec765_reset(0); - - /* set FDC at reset */ - nec765_set_reset_state(1); -} - -void compis_fdc_tc(int state) -{ - /* Terminal count if iSBX-218A has DMA enabled */ - if (readinputport(7)) - { - nec765_set_tc_state(state); - } -} - -void compis_fdc_int(int state) -{ - /* No interrupt requests if iSBX-218A has DMA enabled */ - if (!readinputport(7) && state) - { - compis_osp_pic_irq(COMPIS_IRQ_SBX0_INT1); - } -} - -static void compis_fdc_dma_drq(int state, int read) -{ - /* DMA requst if iSBX-218A has DMA enabled */ - if (readinputport(7) && state) - { - //compis_dma_drq(state, read); - } -} - -static nec765_interface compis_fdc_interface = -{ - compis_fdc_int, - compis_fdc_dma_drq -}; - - READ8_HANDLER (compis_fdc_dack_r) -{ - UINT16 data; - data = 0xffff; - /* DMA acknowledge if iSBX-218A has DMA enabled */ - if (readinputport(7)) - { - data = nec765_dack_r(0); - } - - return data; -} - -WRITE8_HANDLER (compis_fdc_w) -{ - switch(offset) - { - case 2: - nec765_data_w(0, data); - break; - default: - logerror("FDC Unknown Port Write %04X = %04X\n", offset, data); - break; - } -} - - READ8_HANDLER (compis_fdc_r) -{ - UINT16 data; - data = 0xffff; - switch(offset) - { - case 0: - data = nec765_status_r(0); - break; - case 2: - data = nec765_data_r(0); - break; - default: - logerror("FDC Unknown Port Read %04X\n", offset); - break; - } - - return data; -} - - - -/*-------------------------------------------------------------------------*/ -/* PPI 8255 */ -/*-------------------------------------------------------------------------*/ - -/*-------------------------------------------------------------------------*/ -/* Bit 0: J7-2 Centronics D0 */ -/* Bit 1: J7-3 Centronics D1 */ -/* Bit 2: J7-4 Centronics D2 */ -/* Bit 3: J7-5 Centronics D3 */ -/* Bit 4: J7-6 Centronics D4 */ -/* Bit 5: J7-7 Centronics D5 */ -/* Bit 6: J7-8 Centronics D6 */ -/* Bit 7: J7-9 Centronics D7 */ -/*-------------------------------------------------------------------------*/ -static WRITE8_HANDLER ( compis_ppi_port_a_w ) -{ - compis.printer.data = data; -} -/*-------------------------------------------------------------------------*/ -/* Bit 0: J5-4 */ -/* Bit 1: J5-5 */ -/* Bit 2: J6-3 Cassette read */ -/* Bit 3: J2-6 DSR / S8-4 Test */ -/* Bit 4: J4-6 DSR / S8-3 Test */ -/* Bit 5: J7-11 Centronics BUSY */ -/* Bit 6: J7-13 Centronics SELECT */ -/* Bit 7: Tmr0 */ -/*-------------------------------------------------------------------------*/ -static READ8_HANDLER ( compis_ppi_port_b_r ) -{ - UINT8 data; - - /* DIP switch - Test mode */ - data = readinputport(6); - - /* Centronics busy */ - if (!printer_status(image_from_devtype_and_index(IO_PRINTER, 0), 0)) - data |= 0x20; - - return data; -} -/*-------------------------------------------------------------------------*/ -/* Bit 0: J5-1 */ -/* Bit 1: J5-2 */ -/* Bit 2: Select: 1=time measure, DSR from J2/J4 pin 6. 0=read cassette */ -/* Bit 3: Datex: Tristate datex output (low) */ -/* Bit 4: V2-5 Floppy motor on/off */ -/* Bit 5: J7-1 Centronics STROBE */ -/* Bit 6: V2-4 Floppy Soft reset */ -/* Bit 7: V2-3 Floppy Terminal count */ -/*-------------------------------------------------------------------------*/ -static WRITE8_HANDLER ( compis_ppi_port_c_w ) -{ - /* Centronics Strobe */ - if ((compis.printer.strobe) && !(data & 0x20)) - printer_output(image_from_devtype_and_index(IO_PRINTER, 0), compis.printer.data); - compis.printer.strobe = ((data & 0x20)?1:0); - - /* FDC Reset */ - if (data & 0x40) - compis_fdc_reset(); - - /* FDC Terminal count */ - compis_fdc_tc((data & 0x80)?1:0); -} - -static ppi8255_interface compis_ppi_interface = -{ - 1, - {NULL}, - {compis_ppi_port_b_r}, - {NULL}, - {compis_ppi_port_a_w}, - {NULL}, - {compis_ppi_port_c_w} -}; - - READ8_HANDLER ( compis_ppi_r ) -{ - return ppi8255_0_r (offset >> 1); -} - -WRITE8_HANDLER ( compis_ppi_w ) -{ - ppi8255_0_w (offset >> 1, data); -} - -/*-------------------------------------------------------------------------*/ -/* PIT 8253 */ -/*-------------------------------------------------------------------------*/ - -static struct pit8253_config compis_pit_config[2] = -{ -{ - TYPE8253, - { - /* Timer0 */ - {4770000/4, NULL, NULL }, - /* Timer1 */ - {4770000/4, NULL, NULL }, - /* Timer2 */ - {4770000/4, NULL, NULL } - } -}, -{ - TYPE8254, - { - /* Timer0 */ - {4770000/4, NULL, NULL }, - /* Timer1 */ - {4770000/4, NULL, NULL }, - /* Timer2 */ - {4770000/4, NULL, NULL } - } -} -}; - - READ8_HANDLER ( compis_pit_r ) -{ - return pit8253_0_r (offset >> 1); -} - -WRITE8_HANDLER ( compis_pit_w ) -{ - pit8253_0_w (offset >> 1 , data); -} - -/*-------------------------------------------------------------------------*/ -/* OSP PIT 8254 */ -/*-------------------------------------------------------------------------*/ - -READ8_HANDLER ( compis_osp_pit_r ) -{ - return pit8253_1_r (offset >> 1); -} - -WRITE8_HANDLER ( compis_osp_pit_w ) -{ - pit8253_1_w (offset >> 1, data); -} - -/*-------------------------------------------------------------------------*/ -/* RTC 58174 */ -/*-------------------------------------------------------------------------*/ - READ8_HANDLER ( compis_rtc_r ) -{ - return mm58274c_r(0, offset >> 1); -} - -WRITE8_HANDLER ( compis_rtc_w ) -{ - mm58274c_w(0, offset >> 1, data); -} - -/*-------------------------------------------------------------------------*/ -/* USART 8251 */ -/*-------------------------------------------------------------------------*/ -void compis_usart_rxready(int state) -{ -/* - if (state) - compis_pic_irq(COMPIS_IRQ_8251_RXRDY); -*/ -} - -static struct msm8251_interface compis_usart_interface= -{ - NULL, - NULL, - compis_usart_rxready -}; - - READ8_HANDLER ( compis_usart_r ) -{ - UINT8 data = 0xff; - - return msm8251_data_r ( offset >> 1 ); - - switch (offset) - { - case 0x00: - if (compis.usart.status & COMPIS_USART_STATUS_RX_READY) - { - switch (compis.usart.bytes_sent) - { - case 0: - data = compis.keyboard.key_code; - compis.usart.bytes_sent = 1; - break; - - case 1: - data = compis.keyboard.key_status; - compis.usart.bytes_sent = 0; - compis.usart.status &= ~COMPIS_USART_STATUS_RX_READY; - break; - } - } - break; - - case 0x02: - data = compis.usart.status; - logerror("%04X: USART STATUS Port Read %04X\n", activecpu_get_pc(), - offset); - break; - - default: - logerror("%04X: USART Unknown Port Read %04X\n", activecpu_get_pc(), - offset); - break; - } - - return data; -} - -WRITE8_HANDLER ( compis_usart_w ) -{ - switch (offset) - { - case 0x00: - msm8251_data_w (0,data); - break; - case 0x02: - msm8251_control_w (0,data); - break; - default: - logerror("USART Unknown Port Write %04X = %04X\n", offset, data); - break; - } -} - -/************************************* - * - * 80186 interrupt controller - * - *************************************/ -static int int_callback(int line) -{ - if (LOG_INTERRUPTS) - logerror("(%f) **** Acknowledged interrupt vector %02X\n", timer_get_time(), i186.intr.poll_status & 0x1f); - - /* clear the interrupt */ - activecpu_set_input_line(0, CLEAR_LINE); - i186.intr.pending = 0; - - /* clear the request and set the in-service bit */ -#if LATCH_INTS - i186.intr.request &= ~i186.intr.ack_mask; -#else - i186.intr.request &= ~(i186.intr.ack_mask & 0x0f); -#endif - i186.intr.in_service |= i186.intr.ack_mask; - if (i186.intr.ack_mask == 0x0001) - { - switch (i186.intr.poll_status & 0x1f) - { - case 0x08: i186.intr.status &= ~0x01; break; - case 0x12: i186.intr.status &= ~0x02; break; - case 0x13: i186.intr.status &= ~0x04; break; - } - } - i186.intr.ack_mask = 0; - - /* a request no longer pending */ - i186.intr.poll_status &= ~0x8000; - - /* return the vector */ - return i186.intr.poll_status & 0x1f; -} - - -static void update_interrupt_state(void) -{ - int i, j, new_vector = 0; - - if (LOG_INTERRUPTS) logerror("update_interrupt_status: req=%02X stat=%02X serv=%02X\n", i186.intr.request, i186.intr.status, i186.intr.in_service); - - /* loop over priorities */ - for (i = 0; i <= i186.intr.priority_mask; i++) - { - /* note: by checking 4 bits, we also verify that the mask is off */ - if ((i186.intr.timer & 15) == i) - { - /* if we're already servicing something at this level, don't generate anything new */ - if (i186.intr.in_service & 0x01) - return; - - /* if there's something pending, generate an interrupt */ - if (i186.intr.status & 0x07) - { - if (i186.intr.status & 1) - new_vector = 0x08; - else if (i186.intr.status & 2) - new_vector = 0x12; - else if (i186.intr.status & 4) - new_vector = 0x13; - else - popmessage("Invalid timer interrupt!"); - - /* set the clear mask and generate the int */ - i186.intr.ack_mask = 0x0001; - goto generate_int; - } - } - - /* check DMA interrupts */ - for (j = 0; j < 2; j++) - if ((i186.intr.dma[j] & 15) == i) - { - /* if we're already servicing something at this level, don't generate anything new */ - if (i186.intr.in_service & (0x04 << j)) - return; - - /* if there's something pending, generate an interrupt */ - if (i186.intr.request & (0x04 << j)) - { - new_vector = 0x0a + j; - - /* set the clear mask and generate the int */ - i186.intr.ack_mask = 0x0004 << j; - goto generate_int; - } - } - - /* check external interrupts */ - for (j = 0; j < 4; j++) - if ((i186.intr.ext[j] & 15) == i) - { - /* if we're already servicing something at this level, don't generate anything new */ - if (i186.intr.in_service & (0x10 << j)) - return; - - /* if there's something pending, generate an interrupt */ - if (i186.intr.request & (0x10 << j)) - { - /* otherwise, generate an interrupt for this request */ - new_vector = 0x0c + j; - - /* set the clear mask and generate the int */ - i186.intr.ack_mask = 0x0010 << j; - goto generate_int; - } - } - } - return; - -generate_int: - /* generate the appropriate interrupt */ - i186.intr.poll_status = 0x8000 | new_vector; - if (!i186.intr.pending) - cpunum_set_input_line(2, 0, ASSERT_LINE); - i186.intr.pending = 1; - cpu_trigger(CPU_RESUME_TRIGGER); - if (LOG_OPTIMIZATION) logerror(" - trigger due to interrupt pending\n"); - if (LOG_INTERRUPTS) logerror("(%f) **** Requesting interrupt vector %02X\n", timer_get_time(), new_vector); -} - - -static void handle_eoi(int data) -{ - int i, j; - - /* specific case */ - if (!(data & 0x8000)) - { - /* turn off the appropriate in-service bit */ - switch (data & 0x1f) - { - case 0x08: i186.intr.in_service &= ~0x01; break; - case 0x12: i186.intr.in_service &= ~0x01; break; - case 0x13: i186.intr.in_service &= ~0x01; break; - case 0x0a: i186.intr.in_service &= ~0x04; break; - case 0x0b: i186.intr.in_service &= ~0x08; break; - case 0x0c: i186.intr.in_service &= ~0x10; break; - case 0x0d: i186.intr.in_service &= ~0x20; break; - case 0x0e: i186.intr.in_service &= ~0x40; break; - case 0x0f: i186.intr.in_service &= ~0x80; break; - default: logerror("%05X:ERROR - 80186 EOI with unknown vector %02X\n", activecpu_get_pc(), data & 0x1f); - } - if (LOG_INTERRUPTS) logerror("(%f) **** Got EOI for vector %02X\n", timer_get_time(), data & 0x1f); - } - - /* non-specific case */ - else - { - /* loop over priorities */ - for (i = 0; i <= 7; i++) - { - /* check for in-service timers */ - if ((i186.intr.timer & 7) == i && (i186.intr.in_service & 0x01)) - { - i186.intr.in_service &= ~0x01; - if (LOG_INTERRUPTS) logerror("(%f) **** Got EOI for timer\n", timer_get_time()); - return; - } - - /* check for in-service DMA interrupts */ - for (j = 0; j < 2; j++) - if ((i186.intr.dma[j] & 7) == i && (i186.intr.in_service & (0x04 << j))) - { - i186.intr.in_service &= ~(0x04 << j); - if (LOG_INTERRUPTS) logerror("(%f) **** Got EOI for DMA%d\n", timer_get_time(), j); - return; - } - - /* check external interrupts */ - for (j = 0; j < 4; j++) - if ((i186.intr.ext[j] & 7) == i && (i186.intr.in_service & (0x10 << j))) - { - i186.intr.in_service &= ~(0x10 << j); - if (LOG_INTERRUPTS) logerror("(%f) **** Got EOI for INT%d\n", timer_get_time(), j); - return; - } - } - } -} - - -/************************************* - * - * 80186 internal timers - * - *************************************/ - -static void internal_timer_int(int which) -{ - struct timer_state *t = &i186.timer[which]; - - if (LOG_TIMER) logerror("Hit interrupt callback for timer %d\n", which); - - /* set the max count bit */ - t->control |= 0x0020; - - /* request an interrupt */ - if (t->control & 0x2000) - { - i186.intr.status |= 0x01 << which; - update_interrupt_state(); - if (LOG_TIMER) logerror(" Generating timer interrupt\n"); - } - - /* if we're continuous, reset */ - if (t->control & 0x0001) - { - int count = t->maxA ? t->maxA : 0x10000; - timer_adjust(t->int_timer, (double)count * TIME_IN_HZ(2000000), which, 0); - if (LOG_TIMER) logerror(" Repriming interrupt\n"); - } - else - timer_adjust(t->int_timer, TIME_NEVER, which, 0); -} - - -static void internal_timer_sync(int which) -{ - struct timer_state *t = &i186.timer[which]; - - /* if we have a timing timer running, adjust the count */ - if (t->time_timer_active) - { - double current_time = timer_timeelapsed(t->time_timer); - int net_clocks = (int)((current_time - t->last_time) * 2000000.); - t->last_time = current_time; - - /* set the max count bit if we passed the max */ - if ((int)t->count + net_clocks >= t->maxA) - t->control |= 0x0020; - - /* set the new count */ - if (t->maxA != 0) - t->count = (t->count + net_clocks) % t->maxA; - else - t->count = t->count + net_clocks; - } -} - - -static void internal_timer_update(int which, - int new_count, - int new_maxA, - int new_maxB, - int new_control) -{ - struct timer_state *t = &i186.timer[which]; - int update_int_timer = 0; - - /* if we have a new count and we're on, update things */ - if (new_count != -1) - { - if (t->control & 0x8000) - { - internal_timer_sync(which); - update_int_timer = 1; - } - t->count = new_count; - } - - /* if we have a new max and we're on, update things */ - if (new_maxA != -1 && new_maxA != t->maxA) - { - if (t->control & 0x8000) - { - internal_timer_sync(which); - update_int_timer = 1; - } - t->maxA = new_maxA; - if (new_maxA == 0) - { - new_maxA = 0x10000; - } - } - - /* if we have a new max and we're on, update things */ - if (new_maxB != -1 && new_maxB != t->maxB) - { - if (t->control & 0x8000) - { - internal_timer_sync(which); - update_int_timer = 1; - } - - t->maxB = new_maxB; - - if (new_maxB == 0) - { - new_maxB = 0x10000; - } - } - - - /* handle control changes */ - if (new_control != -1) - { - int diff; - - /* merge back in the bits we don't modify */ - new_control = (new_control & ~0x1fc0) | (t->control & 0x1fc0); - - /* handle the /INH bit */ - if (!(new_control & 0x4000)) - new_control = (new_control & ~0x8000) | (t->control & 0x8000); - new_control &= ~0x4000; - - /* check for control bits we don't handle */ - diff = new_control ^ t->control; - if (diff & 0x001c) - logerror("%05X:ERROR! -unsupported timer mode %04X\n", - activecpu_get_pc(), - new_control); - - /* if we have real changes, update things */ - if (diff != 0) - { - /* if we're going off, make sure our timers are gone */ - if ((diff & 0x8000) && !(new_control & 0x8000)) - { - /* compute the final count */ - internal_timer_sync(which); - - /* nuke the timer and force the interrupt timer to be recomputed */ - timer_adjust(t->time_timer, TIME_NEVER, which, 0); - t->time_timer_active = 0; - update_int_timer = 1; - } - - /* if we're going on, start the timers running */ - else if ((diff & 0x8000) && (new_control & 0x8000)) - { - /* start the timing */ - timer_adjust(t->time_timer, TIME_NEVER, which, 0); - t->time_timer_active = 1; - update_int_timer = 1; - } - - /* if something about the interrupt timer changed, force an update */ - if (!(diff & 0x8000) && (diff & 0x2000)) - { - internal_timer_sync(which); - update_int_timer = 1; - } - } - - /* set the new control register */ - t->control = new_control; - } - - /* update the interrupt timer */ - if (update_int_timer) - { - if ((t->control & 0x8000) && (t->control & 0x2000)) - { - int diff = t->maxA - t->count; - if (diff <= 0) - diff += 0x10000; - timer_adjust(t->int_timer, (double)diff * TIME_IN_HZ(2000000), which, 0); - if (LOG_TIMER) logerror("Set interrupt timer for %d\n", which); - } - else - { - timer_adjust(t->int_timer, TIME_NEVER, which, 0); - } - } -} - - - -/************************************* - * - * 80186 internal DMA - * - *************************************/ - -static void dma_timer_callback(int which) -{ - struct dma_state *d = &i186.dma[which]; - - /* force an update and see if we're really done */ - //stream_update(dma_stream, 0); - - /* complete the status update */ - d->control &= ~0x0002; - d->source += d->count; - d->count = 0; - - /* check for interrupt generation */ - if (d->control & 0x0100) - { - if (LOG_DMA) logerror("DMA%d timer callback - requesting interrupt: count = %04X, source = %04X\n", which, d->count, d->source); - i186.intr.request |= 0x04 << which; - update_interrupt_state(); - } -} - - -static void update_dma_control(int which, int new_control) -{ - struct dma_state *d = &i186.dma[which]; - int diff; - - /* handle the CHG bit */ - if (!(new_control & 0x0004)) - new_control = (new_control & ~0x0002) | (d->control & 0x0002); - new_control &= ~0x0004; - - /* check for control bits we don't handle */ - diff = new_control ^ d->control; - if (diff & 0x6811) - logerror("%05X:ERROR! - unsupported DMA mode %04X\n", - activecpu_get_pc(), - new_control); - - /* if we're going live, set a timer */ - if ((diff & 0x0002) && (new_control & 0x0002)) - { - /* make sure the parameters meet our expectations */ - if ((new_control & 0xfe00) != 0x1600) - { - logerror("Unexpected DMA control %02X\n", new_control); - } - else if (/*!is_redline &&*/ ((d->dest & 1) || (d->dest & 0x3f) > 0x0b)) - { - logerror("Unexpected DMA destination %02X\n", d->dest); - } - else if (/*is_redline && */ (d->dest & 0xf000) != 0x4000 && (d->dest & 0xf000) != 0x5000) - { - logerror("Unexpected DMA destination %02X\n", d->dest); - } - - /* otherwise, set a timer */ - else - { -// int count = d->count; - int dacnum; - - /* adjust for redline racer */ - dacnum = (d->dest & 0x3f) / 2; - - if (LOG_DMA) logerror("Initiated DMA %d - count = %04X, source = %04X, dest = %04X\n", which, d->count, d->source, d->dest); - - d->finished = 0; -/* timer_adjust(d->finish_timer, - TIME_IN_HZ(dac[dacnum].frequency) * (double)count, which, 0);*/ - } - } - - /* set the new control register */ - d->control = new_control; -} - - - -/************************************* - * - * 80186 internal I/O reads - * - *************************************/ - - - READ8_HANDLER( i186_internal_port_r ) -{ - int shift = 8 * (offset & 1); - int temp, which; - - switch (offset & ~1) - { - case 0x22: - logerror("%05X:ERROR - read from 80186 EOI\n", activecpu_get_pc()); - break; - - case 0x24: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt poll\n", activecpu_get_pc()); - if (i186.intr.poll_status & 0x8000) - int_callback(0); - return (i186.intr.poll_status >> shift) & 0xff; - - case 0x26: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt poll status\n", - activecpu_get_pc()); - return (i186.intr.poll_status >> shift) & 0xff; - - case 0x28: - if (LOG_PORTS) logerror("%05X:read 80186 interrupt mask\n", - activecpu_get_pc()); - temp = (i186.intr.timer >> 3) & 0x01; - temp |= (i186.intr.dma[0] >> 1) & 0x04; - temp |= (i186.intr.dma[1] >> 0) & 0x08; - temp |= (i186.intr.ext[0] << 1) & 0x10; - temp |= (i186.intr.ext[1] << 2) & 0x20; - temp |= (i186.intr.ext[2] << 3) & 0x40; - temp |= (i186.intr.ext[3] << 4) & 0x80; - return (temp >> shift) & 0xff; - - case 0x2a: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt priority mask\n", - activecpu_get_pc()); - return (i186.intr.priority_mask >> shift) & 0xff; - - case 0x2c: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt in-service\n", - activecpu_get_pc()); - return (i186.intr.in_service >> shift) & 0xff; - - case 0x2e: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt request\n", - activecpu_get_pc()); - temp = i186.intr.request & ~0x0001; - if (i186.intr.status & 0x0007) - temp |= 1; - return (temp >> shift) & 0xff; - - case 0x30: - if (LOG_PORTS) - logerror("%05X:read 80186 interrupt status\n", activecpu_get_pc()); - return (i186.intr.status >> shift) & 0xff; - - case 0x32: - if (LOG_PORTS) - logerror("%05X:read 80186 timer interrupt control\n", - activecpu_get_pc()); - return (i186.intr.timer >> shift) & 0xff; - - case 0x34: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA 0 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.dma[0] >> shift) & 0xff; - - case 0x36: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA 1 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.dma[1] >> shift) & 0xff; - - case 0x38: - if (LOG_PORTS) - logerror("%05X:read 80186 INT 0 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.ext[0] >> shift) & 0xff; - - case 0x3a: - if (LOG_PORTS) - logerror("%05X:read 80186 INT 1 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.ext[1] >> shift) & 0xff; - - case 0x3c: - if (LOG_PORTS) - logerror("%05X:read 80186 INT 2 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.ext[2] >> shift) & 0xff; - - case 0x3e: - if (LOG_PORTS) - logerror("%05X:read 80186 INT 3 interrupt control\n", - activecpu_get_pc()); - return (i186.intr.ext[3] >> shift) & 0xff; - - case 0x50: - case 0x58: - case 0x60: - if (LOG_PORTS) - logerror("%05X:read 80186 Timer %d count\n", - activecpu_get_pc(), (offset - 0x50) / 8); - which = (offset - 0x50) / 8; - if (!(offset & 1)) - internal_timer_sync(which); - return (i186.timer[which].count >> shift) & 0xff; - - case 0x52: - case 0x5a: - case 0x62: - if (LOG_PORTS) logerror("%05X:read 80186 Timer %d max A\n", - activecpu_get_pc(), (offset - 0x50) / 8); - which = (offset - 0x50) / 8; - return (i186.timer[which].maxA >> shift) & 0xff; - - case 0x54: - case 0x5c: - logerror("%05X:read 80186 Timer %d max B\n", - activecpu_get_pc(), (offset - 0x50) / 8); - which = (offset - 0x50) / 8; - return (i186.timer[which].maxB >> shift) & 0xff; - - case 0x56: - case 0x5e: - case 0x66: - if (LOG_PORTS) - logerror("%05X:read 80186 Timer %d control\n", - activecpu_get_pc(), (offset - 0x50) / 8); - which = (offset - 0x50) / 8; - return (i186.timer[which].control >> shift) & 0xff; - - case 0xa0: - if (LOG_PORTS) - logerror("%05X:read 80186 upper chip select\n", - activecpu_get_pc()); - return (i186.mem.upper >> shift) & 0xff; - - case 0xa2: - if (LOG_PORTS) - logerror("%05X:read 80186 lower chip select\n", - activecpu_get_pc()); - return (i186.mem.lower >> shift) & 0xff; - - case 0xa4: - if (LOG_PORTS) - logerror("%05X:read 80186 peripheral chip select\n", - activecpu_get_pc()); - return (i186.mem.peripheral >> shift) & 0xff; - - case 0xa6: - if (LOG_PORTS) - logerror("%05X:read 80186 middle chip select\n", - activecpu_get_pc()); - return (i186.mem.middle >> shift) & 0xff; - - case 0xa8: - if (LOG_PORTS) - logerror("%05X:read 80186 middle P chip select\n", - activecpu_get_pc()); - return (i186.mem.middle_size >> shift) & 0xff; - - case 0xc0: - case 0xd0: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d lower source address\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].source >> shift) & 0xff; - - case 0xc2: - case 0xd2: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d upper source address\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].source >> (shift + 16)) & 0xff; - - case 0xc4: - case 0xd4: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d lower dest address\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].dest >> shift) & 0xff; - - case 0xc6: - case 0xd6: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d upper dest address\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].dest >> (shift + 16)) & 0xff; - - case 0xc8: - case 0xd8: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d transfer count\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].count >> shift) & 0xff; - - case 0xca: - case 0xda: - if (LOG_PORTS) - logerror("%05X:read 80186 DMA%d control\n", - activecpu_get_pc(), (offset - 0xc0) / 0x10); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - return (i186.dma[which].control >> shift) & 0xff; - - default: - logerror("%05X:read 80186 port %02X\n", - activecpu_get_pc(), offset); - break; - } - return 0x00; -} - -/************************************* - * - * 80186 internal I/O writes - * - *************************************/ - -WRITE8_HANDLER( i186_internal_port_w ) -{ - static UINT8 even_byte; - int temp, which, data16; - - /* warning: this assumes all port writes here are word-sized */ - if (!(offset & 1)) - { - even_byte = data; - return; - } - data16 = (data << 8) | even_byte; - - switch (offset & ~1) - { - case 0x22: - if (LOG_PORTS) - logerror("%05X:80186 EOI = %04X\n", activecpu_get_pc(), data16); - handle_eoi(0x8000); - update_interrupt_state(); - break; - - case 0x24: - logerror("%05X:ERROR - write to 80186 interrupt poll = %04X\n", - activecpu_get_pc(), data16); - break; - - case 0x26: - logerror("%05X:ERROR - write to 80186 interrupt poll status = %04X\n", - activecpu_get_pc(), data16); - break; - - case 0x28: - if (LOG_PORTS) - logerror("%05X:80186 interrupt mask = %04X\n", - activecpu_get_pc(), data16); - i186.intr.timer = (i186.intr.timer & ~0x08) | ((data16 << 3) & 0x08); - i186.intr.dma[0] = (i186.intr.dma[0] & ~0x08) | ((data16 << 1) & 0x08); - i186.intr.dma[1] = (i186.intr.dma[1] & ~0x08) | ((data16 << 0) & 0x08); - i186.intr.ext[0] = (i186.intr.ext[0] & ~0x08) | ((data16 >> 1) & 0x08); - i186.intr.ext[1] = (i186.intr.ext[1] & ~0x08) | ((data16 >> 2) & 0x08); - i186.intr.ext[2] = (i186.intr.ext[2] & ~0x08) | ((data16 >> 3) & 0x08); - i186.intr.ext[3] = (i186.intr.ext[3] & ~0x08) | ((data16 >> 4) & 0x08); - update_interrupt_state(); - break; - - case 0x2a: - if (LOG_PORTS) logerror("%05X:80186 interrupt priority mask = %04X\n", activecpu_get_pc(), data16); - i186.intr.priority_mask = data16 & 0x0007; - update_interrupt_state(); - break; - - case 0x2c: - if (LOG_PORTS) logerror("%05X:80186 interrupt in-service = %04X\n", activecpu_get_pc(), data16); - i186.intr.in_service = data16 & 0x00ff; - update_interrupt_state(); - break; - - case 0x2e: - if (LOG_PORTS) logerror("%05X:80186 interrupt request = %04X\n", activecpu_get_pc(), data16); - i186.intr.request = (i186.intr.request & ~0x00c0) | (data16 & 0x00c0); - update_interrupt_state(); - break; - - case 0x30: - if (LOG_PORTS) logerror("%05X:WARNING - wrote to 80186 interrupt status = %04X\n", activecpu_get_pc(), data16); - i186.intr.status = (i186.intr.status & ~0x8007) | (data16 & 0x8007); - update_interrupt_state(); - break; - - case 0x32: - if (LOG_PORTS) logerror("%05X:80186 timer interrupt contol = %04X\n", activecpu_get_pc(), data16); - i186.intr.timer = data16 & 0x000f; - break; - - case 0x34: - if (LOG_PORTS) logerror("%05X:80186 DMA 0 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.dma[0] = data16 & 0x000f; - break; - - case 0x36: - if (LOG_PORTS) logerror("%05X:80186 DMA 1 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.dma[1] = data16 & 0x000f; - break; - - case 0x38: - if (LOG_PORTS) logerror("%05X:80186 INT 0 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.ext[0] = data16 & 0x007f; - break; - - case 0x3a: - if (LOG_PORTS) logerror("%05X:80186 INT 1 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.ext[1] = data16 & 0x007f; - break; - - case 0x3c: - if (LOG_PORTS) logerror("%05X:80186 INT 2 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.ext[2] = data16 & 0x001f; - break; - - case 0x3e: - if (LOG_PORTS) logerror("%05X:80186 INT 3 interrupt control = %04X\n", activecpu_get_pc(), data16); - i186.intr.ext[3] = data16 & 0x001f; - break; - - case 0x50: - case 0x58: - case 0x60: - if (LOG_PORTS) logerror("%05X:80186 Timer %d count = %04X\n", activecpu_get_pc(), (offset - 0x50) / 8, data16); - which = (offset - 0x50) / 8; - internal_timer_update(which, data16, -1, -1, -1); - break; - - case 0x52: - case 0x5a: - case 0x62: - if (LOG_PORTS) logerror("%05X:80186 Timer %d max A = %04X\n", activecpu_get_pc(), (offset - 0x50) / 8, data16); - which = (offset - 0x50) / 8; - internal_timer_update(which, -1, data16, -1, -1); - break; - - case 0x54: - case 0x5c: - if (LOG_PORTS) logerror("%05X:80186 Timer %d max B = %04X\n", activecpu_get_pc(), (offset - 0x50) / 8, data16); - which = (offset - 0x50) / 8; - internal_timer_update(which, -1, -1, data16, -1); - break; - - case 0x56: - case 0x5e: - case 0x66: - if (LOG_PORTS) logerror("%05X:80186 Timer %d control = %04X\n", activecpu_get_pc(), (offset - 0x50) / 8, data16); - which = (offset - 0x50) / 8; - internal_timer_update(which, -1, -1, -1, data16); - break; - - case 0xa0: - if (LOG_PORTS) logerror("%05X:80186 upper chip select = %04X\n", activecpu_get_pc(), data16); - i186.mem.upper = data16 | 0xc038; - break; - - case 0xa2: - if (LOG_PORTS) logerror("%05X:80186 lower chip select = %04X\n", activecpu_get_pc(), data16); - i186.mem.lower = (data16 & 0x3fff) | 0x0038; - break; - - case 0xa4: - if (LOG_PORTS) - logerror("%05X:80186 peripheral chip select = %04X\n", - activecpu_get_pc(), data16); - i186.mem.peripheral = data16 | 0x0038; - break; - - case 0xa6: - if (LOG_PORTS) logerror("%05X:80186 middle chip select = %04X\n", activecpu_get_pc(), data16); - i186.mem.middle = data16 | 0x01f8; - break; - - case 0xa8: - if (LOG_PORTS) logerror("%05X:80186 middle P chip select = %04X\n", activecpu_get_pc(), data16); - i186.mem.middle_size = data16 | 0x8038; - - temp = (i186.mem.peripheral & 0xffc0) << 4; - if (i186.mem.middle_size & 0x0040) - { -// install_mem_read_handler(2, temp, temp + 0x2ff, peripheral_r); -// install_mem_write_handler(2, temp, temp + 0x2ff, peripheral_w); - } - else - { - temp &= 0xffff; -// install_port_read_handler(2, temp, temp + 0x2ff, peripheral_r); -// install_port_write_handler(2, temp, temp + 0x2ff, peripheral_w); - } - - /* we need to do this at a time when the I86 context is swapped in */ - /* this register is generally set once at startup and never again, so it's a good */ - /* time to set it up */ - cpunum_set_irq_callback(0, int_callback); - break; - - case 0xc0: - case 0xd0: - if (LOG_PORTS) logerror("%05X:80186 DMA%d lower source address = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - i186.dma[which].source = (i186.dma[which].source & ~0x0ffff) | (data16 & 0x0ffff); - break; - - case 0xc2: - case 0xd2: - if (LOG_PORTS) logerror("%05X:80186 DMA%d upper source address = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - i186.dma[which].source = (i186.dma[which].source & ~0xf0000) | ((data16 << 16) & 0xf0000); - break; - - case 0xc4: - case 0xd4: - if (LOG_PORTS) logerror("%05X:80186 DMA%d lower dest address = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - i186.dma[which].dest = (i186.dma[which].dest & ~0x0ffff) | (data16 & 0x0ffff); - break; - - case 0xc6: - case 0xd6: - if (LOG_PORTS) logerror("%05X:80186 DMA%d upper dest address = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - i186.dma[which].dest = (i186.dma[which].dest & ~0xf0000) | ((data16 << 16) & 0xf0000); - break; - - case 0xc8: - case 0xd8: - if (LOG_PORTS) logerror("%05X:80186 DMA%d transfer count = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - i186.dma[which].count = data16; - break; - - case 0xca: - case 0xda: - if (LOG_PORTS) logerror("%05X:80186 DMA%d control = %04X\n", activecpu_get_pc(), (offset - 0xc0) / 0x10, data16); - which = (offset - 0xc0) / 0x10; -// stream_update(dma_stream, 0); - update_dma_control(which, data16); - break; - - case 0xfe: - if (LOG_PORTS) logerror("%05X:80186 relocation register = %04X\n", activecpu_get_pc(), data16); - - /* we assume here there that this doesn't happen too often */ - /* plus, we can't really remove the old memory range, so we also assume that it's */ - /* okay to leave us mapped where we were */ - temp = (data16 & 0x0fff) << 8; - if (data16 & 0x1000) - { - memory_install_read8_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_r); - memory_install_write8_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_w); - } - else - { - temp &= 0xffff; - memory_install_read8_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_r); - memory_install_write8_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_w); - } -/* popmessage("Sound CPU reset");*/ - break; - - default: - logerror("%05X:80186 port %02X = %04X\n", activecpu_get_pc(), offset, data16); - break; - } -} - -/*-------------------------------------------------------------------------*/ -/* Name: compis */ -/* Desc: CPU - Initialize the 80186 CPU */ -/*-------------------------------------------------------------------------*/ -void compis_cpu_init(void) -{ - /* create timers here so they stick around */ - i186.timer[0].int_timer = timer_alloc(internal_timer_int); - i186.timer[1].int_timer = timer_alloc(internal_timer_int); - i186.timer[2].int_timer = timer_alloc(internal_timer_int); - i186.timer[0].time_timer = timer_alloc(NULL); - i186.timer[1].time_timer = timer_alloc(NULL); - i186.timer[2].time_timer = timer_alloc(NULL); - i186.dma[0].finish_timer = timer_alloc(dma_timer_callback); - i186.dma[1].finish_timer = timer_alloc(dma_timer_callback); -} - -/*-------------------------------------------------------------------------*/ -/* Name: compis */ -/* Desc: Driver - Init */ -/*-------------------------------------------------------------------------*/ -static void compis_pic_set_int_line(int which, int interrupt) -{ - switch(which) - { - case 0: - /* Master */ - cpunum_set_input_line(0, 0, interrupt ? HOLD_LINE : CLEAR_LINE); - break; - - case 1: - /* Slave */ - pic8259_set_irq_line(0, 2, interrupt); - break; - } -} - -static int compis_irq_callback(int irqline) -{ - return pic8259_acknowledge(0); -} - -DRIVER_INIT( compis ) -{ - cpunum_set_irq_callback(0, compis_irq_callback); - pic8259_init(2, compis_pic_set_int_line); - memset (&compis, 0, sizeof (compis) ); -} - -/*-------------------------------------------------------------------------*/ -/* Name: compis */ -/* Desc: Machine - Init */ -/*-------------------------------------------------------------------------*/ -MACHINE_RESET( compis ) -{ - /* CPU */ - compis_cpu_init(); - - /* OSP PIT 8254 */ - pit8253_init(2, compis_pit_config); - - /* PPI */ - ppi8255_init(&compis_ppi_interface); - - /* FDC */ - nec765_init(&compis_fdc_interface, NEC765A); - compis_fdc_reset(); - - /* RTC */ - mm58274c_init(0, 0); - - /* Setup the USART */ - msm8251_init(&compis_usart_interface); - - /* Keyboard */ - compis_keyb_init(); - - /* OSP PIC 8259 */ - cpunum_set_irq_callback(0, compis_irq_callback); -} - -/*-------------------------------------------------------------------------*/ -/* Name: compis */ -/* Desc: Interrupt - Vertical Blanking Interrupt */ -/*-------------------------------------------------------------------------*/ -INTERRUPT_GEN( compis_vblank_int ) -{ -// compis_gdc_vblank_int(); - compis_keyb_update(); -} diff --git a/mess/machine/concept.c b/mess/machine/concept.c deleted file mode 100644 index a8df66cfd..000000000 --- a/mess/machine/concept.c +++ /dev/null @@ -1,775 +0,0 @@ -/* - Corvus Concept driver - - Raphael Nabet, Brett Wyer, 2003-2005 -*/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/concept.h" -#include "machine/6522via.h" -#include "machine/mm58274c.h" /* mm58274 seems to be compatible with mm58174 */ -//#include "includes/6551.h" -#include "machine/wd17xx.h" -#include "cpu/m68000/m68k.h" -#include "devices/basicdsk.h" -#include "includes/corvushd.h" - -#define VERBOSE 1 -#define VERY_VERBOSE 0 - -/* interrupt priority encoder */ -static UINT8 pending_interrupts; -enum -{ - IOCINT_level = 1, /* serial lines (CTS, DSR & DCD) and I/O ports */ - SR1INT_level, /* serial port 1 acia */ - OMINT_level, /* omninet */ - SR0INT_level, /* serial port 0 acia */ - TIMINT_level, /* via */ - KEYINT_level, /* keyboard acia */ - NMIINT_level /* reserved */ -}; - -/* Clock interface */ -static char clock_enable; -static char clock_address; - -/* Omninet */ -/*static int ready;*/ /* ready line from monochip, role unknown */ - -/* Via */ -static READ8_HANDLER(via_in_a); -static WRITE8_HANDLER(via_out_a); -static READ8_HANDLER(via_in_b); -static WRITE8_HANDLER(via_out_b); -static WRITE8_HANDLER(via_out_cb2); -static void via_irq_func(int state); - - -static struct via6522_interface concept_via6522_intf = -{ /* main via */ - via_in_a, via_in_b, - NULL, NULL, - NULL, NULL, - via_out_a, via_out_b, - NULL, NULL, - NULL, via_out_cb2, - via_irq_func -}; - -/* keyboard interface */ -enum -{ - KeyQueueSize = 32, - MaxKeyMessageLen = 1 -}; -static UINT8 KeyQueue[KeyQueueSize]; -static int KeyQueueHead; -static int KeyQueueLen; -static UINT32 KeyStateSave[/*4*/3]; - -/* Expansion slots */ - -struct -{ - read8_handler reg_read; - write8_handler reg_write; - read8_handler rom_read; - write8_handler rom_write; -} expansion_slots[4]; - -static void concept_fdc_init(int slot); -static void concept_hdc_init(int slot); - -MACHINE_RESET(concept) -{ - /* initialize int state */ - pending_interrupts = 0; - - /* configure via */ - via_config(0, & concept_via6522_intf); - via_set_clock(0, 1022750); /* 16.364 MHZ / 16 */ - via_reset(); - - /* initialize clock interface */ - clock_enable = 0/*1*/; - mm58274c_init(0, 0); - - /* clear keyboard interface state */ - KeyQueueHead = KeyQueueLen = 0; - memset(KeyStateSave, 0, sizeof(KeyStateSave)); - - /* initialize expansion slots */ - memset(expansion_slots, 0, sizeof(expansion_slots)); - - concept_hdc_init(1); /* Flat cable Hard Disk Controller in Slot 2 */ - concept_fdc_init(2); /* Floppy Disk Controller in Slot 3 */ -} - -static void install_expansion_slot(int slot, - read8_handler reg_read, write8_handler reg_write, - read8_handler rom_read, write8_handler rom_write) -{ - expansion_slots[slot].reg_read = reg_read; - expansion_slots[slot].reg_write = reg_write; - expansion_slots[slot].rom_read = rom_read; - expansion_slots[slot].rom_write = rom_write; -} - -VIDEO_START(concept) -{ - return 0; -} - -VIDEO_UPDATE(concept) -{ - UINT16 *v; - int x, y; - UINT16 *line; - /* resolution is 720*560 */ - - v = /*videoram_ptr*/ (UINT16 *) videoram16; - - for (y = 0; y < 560; y++) - { - line = BITMAP_ADDR16(bitmap, 560-1-y, 0); - for (x = 0; x < 720; x++) - line[720-1-x] = (v[(x+48+y*768)>>4] & (0x8000 >> ((x+48+y*768) & 0xf))) ? 1 : 0; - } - return 0; -} - -static void concept_set_interrupt(int level, int state) -{ - int interrupt_mask; - int final_level; - - if (state) - pending_interrupts |= 1 << level; - else - pending_interrupts &= ~ (1 << level); - - for (final_level = 7, interrupt_mask = pending_interrupts; (final_level > 0) && ! (interrupt_mask & 0x80); final_level--, interrupt_mask <<= 1) - ; - - if (final_level) - /* assert interrupt */ - cpunum_set_input_line_and_vector(0, M68K_IRQ_1+final_level-1, ASSERT_LINE, M68K_INT_ACK_AUTOVECTOR); - else - /* clear all interrupts */ - cpunum_set_input_line_and_vector(0, M68K_IRQ_1, CLEAR_LINE, M68K_INT_ACK_AUTOVECTOR); -} - -INLINE void post_in_KeyQueue(int keycode) -{ - KeyQueue[(KeyQueueHead+KeyQueueLen) % KeyQueueSize] = keycode; - KeyQueueLen++; -} - -static void poll_keyboard(void) -{ - UINT32 keystate; - UINT32 key_transitions; - int i, j; - int keycode; - - - for (i=0; (i> j) & 1) - { - keycode = (i << 5) | j; - - if (((keystate >> j) & 1)) - { - /* key is pressed */ - KeyStateSave[i] |= (1 << j); - keycode |= 0x80; - } - else - /* key is released */ - KeyStateSave[i] &= ~ (1 << j); - - post_in_KeyQueue(keycode); - concept_set_interrupt(KEYINT_level, 1); - } - } - } - } -} - -INTERRUPT_GEN( concept_interrupt ) -{ - poll_keyboard(); -} - -/* - VIA port A - - 0: omninet ready (I) - 1: CTS0 (I) - 2: CTS1 (I) - 3: DSR0 (I) - 4: DSR1 (I) - 5: DCD0 (I) - 6: DCD1 (I) - 7: IOX (O) -*/ -static READ8_HANDLER(via_in_a) -{ -#if VERBOSE - logerror("via_in_a: VIA port A (Omninet and COMM port status) read\n"); -#endif - return 1; /* omninet ready always 1 */ -} - -static WRITE8_HANDLER(via_out_a) -{ -#if VERBOSE - logerror("via_out_a: VIA port A status written: data=0x%2.2x\n", data); -#endif - /*iox = (data & 0x80) != 0;*/ -} - -/* - VIA port B - - 0: video off (O) - 1: video address 17 (O) - 2: video address 18 (O) - 3: monitor orientation (I) - 4: CH rate select DC0 (serial port line) (O) - 5: CH rate select DC1 (serial port line) (O) - 6: boot switch 0 (I) - 7: boot switch 1 (I) -*/ -static READ8_HANDLER(via_in_b) -{ - UINT8 status; - - status = ((readinputport(dipswitch_port_concept) & 0x80) >> 1) | ((readinputport(dipswitch_port_concept) & 0x40) << 1); -#if VERBOSE - logerror("via_in_b: VIA port B (DIP switches, Video, Comm Rate) - status: 0x%2.2x\n", status); -#endif - return status; -} - -static WRITE8_HANDLER(via_out_b) -{ -#if VERY_VERBOSE - logerror("via_out_b: VIA port B (Video Control and COMM rate select) written: data=0x%2.2x\n", data); -#endif -} - -/* - VIA CB2: used as sound output -*/ -static WRITE8_HANDLER(via_out_cb2) -{ -#if VERBOSE - logerror("via_out_cb2: Sound control written: data=0x%2.2x\n", data); -#endif -} - -/* - VIA irq -> 68k level 5 -*/ -static void via_irq_func(int state) -{ - concept_set_interrupt(TIMINT_level, state); -} - -READ16_HANDLER(concept_io_r) -{ - if (! ACCESSING_LSB) - return 0; - - switch ((offset >> 8) & 7) - { - case 0: - /* I/O slot regs */ - switch ((offset >> 4) & 7) - { - case 1: - /* IO1 registers */ - case 2: - /* IO2 registers */ - case 3: - /* IO3 registers */ - case 4: - /* IO4 registers */ - { - int slot = ((offset >> 4) & 7) - 1; - if (expansion_slots[slot].reg_read) - return expansion_slots[slot].reg_read(offset & 0xf); - } - break; - - default: - /* ??? */ - logerror("concept_io_r: Slot I/O memory accessed for unknown purpose at address 0x03%4.4x\n", offset << 1); - break; - } - break; - - case 1: - /* IO1 ROM */ - case 2: - /* IO2 ROM */ - case 3: - /* IO3 ROM */ - case 4: - /* IO4 ROM */ - { - int slot = ((offset >> 8) & 7) - 1; -#if VERBOSE - logerror("concept_io_r: Slot ROM memory accessed for slot %d at address 0x03%4.4x\n", slot, offset << 1); -#endif - if (expansion_slots[slot].rom_read) - return expansion_slots[slot].rom_read(offset & 0xff); - } - break; - - case 5: - /* slot status */ -#if VERBOSE - logerror("concept_io_r: Slot status read at address 0x03%4.4x\n", offset << 1); -#endif - break; - - case 6: - /* calendar R/W */ -#if VERY_VERBOSE - logerror("concept_io_r: Calendar read at address 0x03%4.4x\n", offset << 1); -#endif - if (!clock_enable) - return mm58274c_r(0, clock_address); - break; - - case 7: - /* I/O ports */ - switch ((offset >> 4) & 7) - { - case 0: - /* NKBP keyboard */ - switch (offset & 0xf) - { - int reply; - - case 0: - /* data */ - reply = 0; - - if (KeyQueueLen) - { - reply = KeyQueue[KeyQueueHead]; - KeyQueueHead = (KeyQueueHead + 1) % KeyQueueSize; - KeyQueueLen--; - } - - if (!KeyQueueLen) - concept_set_interrupt(KEYINT_level, 0); - - return reply; - - case 1: - /* always tell transmit is empty */ - reply = KeyQueueLen ? 0x98 : 0x10; - break; - } - break; - case 1: - /* NSR0 data comm port 0 */ - case 2: - /* NSR1 data comm port 1 */ -#if VERBOSE - logerror("concept_io_r: Data comm port read at address 0x03%4.4x\n", offset << 1); -#endif - if ((offset & 0xf) == 1) - return 0x10; - break; - - case 3: - /* NVIA versatile system interface */ -#if VERBOSE - logerror("concept_io_r: VIA read at address 0x03%4.4x\n", offset << 1); -#endif - return via_read(0, offset & 0xf); - break; - - case 4: - /* NCALM clock calendar address and strobe register */ - /* write-only? */ -#if VERBOSE - logerror("concept_io_r: NCALM clock/calendar read at address 0x03%4.4x\n", offset << 1); -#endif - break; - - case 5: - /* NOMNI omninet strobe */ - logerror("concept_io_r: NOMNI Omninet Transporter register read at address 0x03%4.4x\n", offset << 1); - break; - - case 6: - /* NOMOFF reset omninet interrupt flip-flop */ - logerror("concept_io_r: NOMOFF Omninet interrupt flip-flop read at address 0x03%4.4x\n", offset << 1); - break; - - case 7: - /* NIOSTRB external I/O ROM strobe (disables interface RAM) */ - logerror("concept_io_r: NIOSTRB External I/O ROM strobe read at address 0x03%4.4x\n", offset << 1); - break; - } - break; - } - - return 0; -} - -WRITE16_HANDLER(concept_io_w) -{ - if (! ACCESSING_LSB) - return; - - data &= 0xff; - - switch ((offset >> 8) & 7) - { - case 0: - /* I/O slot regs */ - switch ((offset >> 4) & 7) - { - case 1: - /* IO1 registers */ - case 2: - /* IO2 registers */ - case 3: - /* IO3 registers */ - case 4: - /* IO4 registers */ - { - int slot = ((offset >> 4) & 7) - 1; -#if VERBOSE - logerror("concept_io_w: Slot I/O register written for slot %d at address 0x03%4.4x, data: 0x%4.4x\n", - slot, offset << 1, data); -#endif - if (expansion_slots[slot].reg_write) - expansion_slots[slot].reg_write(offset & 0xf, data); - } - break; - - default: - /* ??? */ - logerror("concept_io_w: Slot I/O memory written for unknown purpose at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); - break; - } - break; - - case 1: - /* IO1 ROM */ - case 2: - /* IO2 ROM */ - case 3: - /* IO3 ROM */ - case 4: - /* IO4 ROM */ - { - int slot = ((offset >> 8) & 7) - 1; -#if VERBOSE - logerror("concept_io_w: Slot ROM memory written to for slot %d at address 0x03%4.4x, data: 0x%4.4x\n", slot, offset << 1, data); -#endif - if (expansion_slots[slot].rom_write) - expansion_slots[slot].rom_write(offset & 0xff, data); - } - break; - - case 5: - /* slot status */ - logerror("concept_io_w: Slot status written at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); - break; - - case 6: - /* calendar R/W */ -#if VERBOSE - logerror("concept_io_w: Calendar written to at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); -#endif - if (!clock_enable) - mm58274c_w(0, clock_address, data & 0xf); - break; - - case 7: - /* I/O ports */ - switch ((offset >> 4) & 7) - { - case 0: - /* NKBP keyboard */ - case 1: - /* NSR0 data comm port 0 */ - case 2: - /* NSR1 data comm port 1 */ - /*acia_6551_w((offset >> 4) & 7, offset & 0x3, data);*/ - break; - - case 3: - /* NVIA versatile system interface */ - via_write(0, offset & 0xf, data); - break; - - case 4: - /* NCALM clock calendar address and strobe register */ - if (clock_enable != ((data & 0x10) != 0)) - { - clock_enable = (data & 0x10) != 0; - if (! clock_enable) - /* latch address when enable goes low */ - clock_address = data & 0x0f; - } - /*volume_control = (data & 0x20) != 0;*/ - /*alt_map = (data & 0x40) != 0;*/ - break; - - case 5: - /* NOMNI omninet strobe */ - logerror("concept_io_w: NOMNI Omninet Transporter register written at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); - break; - - case 6: - /* NOMOFF reset omninet interrupt flip-flop */ - logerror("concept_io_w: NOMOFF Omninet flip-flop reset at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); - break; - - case 7: - /* NIOSTRB external I/O ROM strobe */ - logerror("concept_io_w: NIOSTRB External I/O ROM strobe written at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data); - break; - } - break; - } -} - -/* - Concept fdc controller -*/ - -static UINT8 fdc_local_status; -static UINT8 fdc_local_command; -enum -{ - LS_DRQ_bit = 0, // DRQ - LS_INT_bit = 1, // INT - LS_SS_bit = 4, // 1 if single-sided (floppy or drive?) - LS_8IN_bit = 5, // 1 if 8" floppy drive? - LS_DSKCHG_bit = 6, // 0 if disk changed, 1 if not - LS_SD_bit = 7, // 1 if single density - - LS_DRQ_mask = (1 << LS_DRQ_bit), - LS_INT_mask = (1 << LS_INT_bit), - LS_SS_mask = (1 << LS_SS_bit), - LS_8IN_mask = (1 << LS_8IN_bit), - LS_DSKCHG_mask = (1 << LS_DSKCHG_bit), - LS_SD_mask = (1 << LS_SD_bit) -}; -enum -{ - LC_FLPSD1_bit = 0, // 0 if side 0 , 1 if side 1 - LC_DE0_bit = 1, // drive select bit 0 - LC_DE1_bit = 4, // drive select bit 1 - LC_MOTOROF_bit = 5, // 1 if motor to be turned off - LC_FLP8IN_bit = 6, // 1 to select 8", 0 for 5"1/4 (which I knew what it means) - LC_FMMFM_bit = 7, // 1 to select single density, 0 for double - - LC_FLPSD1_mask = (1 << LC_FLPSD1_bit), - LC_DE0_mask = (1 << LC_DE0_bit), - LC_DE1_mask = (1 << LC_DE1_bit), - LC_MOTOROF_mask = (1 << LC_MOTOROF_bit), - LC_FLP8IN_mask = (1 << LC_FLP8IN_bit), - LC_FMMFM_mask = (1 << LC_FMMFM_bit) -}; - -static void fdc_callback(int event); - -static READ8_HANDLER(concept_fdc_reg_r); -static WRITE8_HANDLER(concept_fdc_reg_w); -static READ8_HANDLER(concept_fdc_rom_r); - -static void concept_fdc_init(int slot) -{ - fdc_local_status = 0; - fdc_local_command = 0; - - wd179x_init(WD_TYPE_179X, fdc_callback); - - install_expansion_slot(slot, concept_fdc_reg_r, concept_fdc_reg_w, concept_fdc_rom_r, NULL); -} - -static void fdc_callback(int event) -{ - switch (event) - { - case WD179X_IRQ_CLR: - fdc_local_status &= ~LS_INT_mask; - break; - case WD179X_IRQ_SET: - fdc_local_status |= LS_INT_mask; - break; - case WD179X_DRQ_CLR: - fdc_local_status &= ~LS_DRQ_mask; - break; - case WD179X_DRQ_SET: - fdc_local_status |= LS_DRQ_mask; - break; - } -} - -static READ8_HANDLER(concept_fdc_reg_r) -{ - switch (offset) - { - case 0: - /* local Status reg */ - return fdc_local_status; - break; - - case 8: - /* FDC STATUS REG */ - return wd179x_status_r(offset); - break; - - case 9: - /* FDC TRACK REG */ - return wd179x_track_r(offset); - break; - - case 10: - /* FDC SECTOR REG */ - return wd179x_sector_r(offset); - break; - - case 11: - /* FDC DATA REG */ - return wd179x_data_r(offset); - break; - } - - return 0; -} - -static WRITE8_HANDLER(concept_fdc_reg_w) -{ - int current_drive; - - switch (offset) - { - case 0: - /* local command reg */ - fdc_local_command = data; - - wd179x_set_side((data & LC_FLPSD1_mask) != 0); - current_drive = ((data >> LC_DE0_bit) & 1) | ((data >> (LC_DE1_bit-1)) & 2); - wd179x_set_drive(current_drive); - /*motor_on = (data & LC_MOTOROF_mask) == 0;*/ - // floppy_drive_set_motor_state(image_from_devtype_and_index(IO_FLOPPY, current_drive), (data & LC_MOTOROF_mask) == 0 ? 1 : 0); - /*flp_8in = (data & LC_FLP8IN_mask) != 0;*/ - wd179x_set_density((data & LC_FMMFM_mask) ? DEN_FM_LO : DEN_MFM_LO); - floppy_drive_set_ready_state(image_from_devtype_and_index(IO_FLOPPY, current_drive), 1, 0); - break; - - case 8: - /* FDC COMMAMD REG */ - wd179x_command_w(offset, data); - break; - - case 9: - /* FDC TRACK REG */ - wd179x_track_w(offset, data); - break; - - case 10: - /* FDC SECTOR REG */ - wd179x_sector_w(offset, data); - break; - - case 11: - /* FDC DATA REG */ - wd179x_data_w(offset, data); - break; - } -} - -static READ8_HANDLER(concept_fdc_rom_r) -{ - UINT8 data[8] = "CORVUS01"; - return (offset < 8) ? data[offset] : 0; -} - -/* - * Concept Hard Disk Controller (hdc) - */ - -static void concept_hdc_init(int slot); - -static READ8_HANDLER(concept_hdc_reg_r); -static WRITE8_HANDLER(concept_hdc_reg_w); -static READ8_HANDLER(concept_hdc_rom_r); - -/* - * Hook up the Register and ROM R/W routines into the Slot I/O Space - */ - -static void concept_hdc_init(int slot) -{ - if(corvus_hdc_init()) - install_expansion_slot(slot, concept_hdc_reg_r, concept_hdc_reg_w, concept_hdc_rom_r, NULL); -} - -/* - * Handle reads against the Hard Disk Controller's onboard registers - */ -static READ8_HANDLER(concept_hdc_reg_r) -{ - switch (offset) - { - case 0: - /* HDC Data Register */ - return corvus_hdc_data_r(offset); - break; - - case 1: - /* HDC Status Register */ - return corvus_hdc_status_r(offset); - break; - } - - return 0; -} - -/* - * Handle writes against the Hard Disk Controller's onboard registers - */ -static WRITE8_HANDLER(concept_hdc_reg_w) -{ - switch (offset) - { - case 0: - /* HDC Data Register */ - corvus_hdc_data_w(offset, data); - break; - } -} - -/* - * Handle reads agsint the Hard Disk Controller's onboard ROM - */ -static READ8_HANDLER(concept_hdc_rom_r) -{ - UINT8 data[8] = { 0xa9, 0x20, 0xa9, 0x00, 0xa9, 0x03, 0xa9, 0x3c }; /* Same as Apple II */ - return (offset < 8) ? data[offset] : 0; -} diff --git a/mess/machine/enterp.c b/mess/machine/enterp.c deleted file mode 100644 index 2d36a0340..000000000 --- a/mess/machine/enterp.c +++ /dev/null @@ -1,35 +0,0 @@ -/*************************************************************************** - - machine.c - - Functions to emulate general aspects of the machine (RAM, ROM, interrupts, - I/O ports) - -***************************************************************************/ - -#include -#include "driver.h" -#include "cpu/z80/z80.h" -#include "includes/enterp.h" -#include "devices/basicdsk.h" -#include "machine/wd17xx.h" -#include "sndhrdw/dave.h" -#include "image.h" - -void Enterprise_SetupPalette(void); - -MACHINE_RESET( enterprise ) -{ - /* initialise the hardware */ - Enterprise_Initialise(); -} - -DEVICE_LOAD( enterprise_floppy ) -{ - if (device_load_basicdsk_floppy(image)==INIT_PASS) - { - basicdsk_set_geometry(image, 80, 2, 9, 512, 1, 0, FALSE); - return INIT_PASS; - } - return INIT_FAIL; -} diff --git a/mess/machine/gb.c b/mess/machine/gb.c deleted file mode 100644 index 0358664a9..000000000 --- a/mess/machine/gb.c +++ /dev/null @@ -1,1838 +0,0 @@ -/*************************************************************************** - - gb.c - - Machine file to handle emulation of the Nintendo GameBoy. - - Changes: - - 13/2/2002 AK - MBC2 and MBC3 support and added NVRAM support. - 23/2/2002 AK - MBC5 support, and MBC2 RAM support. - 13/3/2002 AK - Tidied up the MBC code, window layer now has it's - own palette. Tidied init code. - 15/3/2002 AK - More init code tidying with a slight hack to stop - sound when the machine starts. - 19/3/2002 AK - Changed NVRAM code to the new battery_* functions. - 24/3/2002 AK - Added MBC1 mode switching, and partial MBC3 RTC support. - 28/3/2002 AK - Improved LCD status timing and interrupts. - Free memory when we shutdown instead of leaking. - 31/3/2002 AK - Handle IO memory reading so we return 0xFF for registers - that are unsupported. - 7/4/2002 AK - Free memory from battery load/save. General tidying. - 13/4/2002 AK - Ok, don't free memory when we shutdown as that causes - a crash on reset. - 28/4/2002 AK - General code tidying. - Fixed MBC3's RAM/RTC banking. - Added support for games with more than 128 ROM banks. - 12/6/2002 AK - Rewrote the way bg and sprite palettes are handled. - The window layer no longer has it's own palette. - Added Super GameBoy support. - 13/6/2002 AK - Added GameBoy Color support. - - 17/5/2004 WP - Added Megaduck/Cougar Boy support. - 13/6/2005 WP - Added support for bootstrap rom banking. - -***************************************************************************/ -#define __MACHINE_GB_C - -#include "driver.h" -#include "includes/gb.h" -#include "cpu/z80gb/z80gb.h" -#include "image.h" - -/* Memory bank controller types */ -enum { - MBC_NONE=0, /* 32KB ROM - No memory bank controller */ - MBC_MBC1, /* ~2MB ROM, 8KB RAM -or- 512KB ROM, 32KB RAM */ - MBC_MBC2, /* 256KB ROM, 32KB RAM */ - MBC_MMM01, /* ?? ROM, ?? RAM */ - MBC_MBC3, /* 2MB ROM, 32KB RAM, RTC */ - MBC_MBC4, /* ?? ROM, ?? RAM */ - MBC_MBC5, /* 8MB ROM, 128KB RAM (32KB w/ Rumble) */ - MBC_TAMA5, /* ?? ROM ?? RAM - What is this? */ - MBC_HUC1, /* ?? ROM, ?? RAM - Hudson Soft Controller */ - MBC_HUC3, /* ?? ROM, ?? RAM - Hudson Soft Controller */ - MBC_MBC7, /* ?? ROM, ?? RAM */ - MBC_MEGADUCK, /* MEGADUCK style banking */ - MBC_UNKNOWN, /* Unknown mapper */ -}; - -#define MAX_ROMBANK 512 -#define MAX_RAMBANK 256 - -#define JOYPAD gb_io[0x00] /* Joystick: 1.1.P15.P14.P13.P12.P11.P10 */ -#define SIODATA gb_io[0x01] /* Serial IO data buffer */ -#define SIOCONT gb_io[0x02] /* Serial IO control register */ -#define DIVREG gb_io[0x04] /* Divider register (???) */ -#define TIMECNT gb_io[0x05] /* Timer counter. Gen. int. when it overflows */ -#define TIMEMOD gb_io[0x06] /* New value of TimeCount after it overflows */ -#define TIMEFRQ gb_io[0x07] /* Timer frequency and start/stop switch */ - -static UINT16 MBCType; /* MBC type: 0 for none */ -static UINT8 CartType; /* Cart Type (battery, ram, timer etc) */ -static UINT8 *ROMMap[MAX_ROMBANK]; /* Addresses of ROM banks */ -static UINT16 ROMBank; /* Number of ROM bank currently used */ -static UINT8 ROMMask; /* Mask for the ROM bank number */ -static UINT16 ROMBanks; /* Total number of ROM banks */ -static UINT8 *RAMMap[MAX_RAMBANK]; /* Addresses of RAM banks */ -static UINT8 RAMBank; /* Number of RAM bank currently used */ -static UINT8 RAMMask; /* Mask for the RAM bank number */ -static UINT8 RAMBanks; /* Total number of RAM banks */ -static UINT32 SIOCount; /* Serial I/O counter */ -static UINT8 MBC1Mode; /* MBC1 ROM/RAM mode */ -static UINT8 *MBC3RTCData; /* MBC3 actual RTC data */ -static UINT8 MBC3RTCMap[5]; /* MBC3 Real-Time-Clock banks */ -static UINT8 MBC3RTCBank; /* Number of RTC bank for MBC3 */ -static UINT8 *GBC_RAMMap[8]; /* (GBC) Addresses of internal RAM banks */ -static UINT8 GBC_RAMBank; /* (GBC) Number of RAM bank currently used */ -UINT8 *GBC_VRAMMap[2]; /* (GBC) Addressses of video RAM banks */ -UINT8 *gbc_vram_bank; -static UINT8 sgb_atf_data[4050]; /* (SGB) Attribute files */ -UINT8 *sgb_tile_data; -UINT8 *gb_cart = NULL; -UINT8 *gb_cart_ram = NULL; -UINT8 gb_io[0x10]; -UINT8 gb_ie; -UINT8 *gb_dummy_rom_bank = NULL; -UINT8 *gb_dummy_ram_bank = NULL; -/* TAMA5 related global variables */ -UINT8 gbTama5Memory[32]; -UINT8 gbTama5Byte; -UINT8 gbTama5Address; -UINT8 gbLastTama5Command; -/* Timer related globals */ -UINT16 gb_divcount; -UINT8 gb_timer_count; -UINT8 gb_timer_shift; - -/* - Prototypes -*/ - -static void gb_machine_stop(running_machine *machine); -WRITE8_HANDLER( gb_rom_bank_select_mbc1 ); -WRITE8_HANDLER( gb_ram_bank_select_mbc1 ); -WRITE8_HANDLER( gb_mem_mode_select_mbc1 ); -WRITE8_HANDLER( gb_rom_bank_select_mbc2 ); -WRITE8_HANDLER( gb_rom_bank_select_mbc3 ); -WRITE8_HANDLER( gb_ram_bank_select_mbc3 ); -WRITE8_HANDLER( gb_mem_mode_select_mbc3 ); -WRITE8_HANDLER( gb_rom_bank_select_mbc5 ); -WRITE8_HANDLER( gb_ram_bank_select_mbc5 ); -WRITE8_HANDLER( gb_rom_bank_select_mbc7 ); -WRITE8_HANDLER( gb_rom_bank_unknown_mbc7 ); -WRITE8_HANDLER( gb_ram_tama5 ); - -#ifdef MAME_DEBUG -/* #define V_GENERAL*/ /* Display general debug information */ -/* #define V_BANK*/ /* Display bank switching debug information */ -#endif - -static void gb_init_regs(void) -{ - /* Initialize the registers */ - SIODATA = 0x00; - SIOCONT = 0x7E; - - gb_io_w( 0x05, 0x00 ); /* TIMECNT */ - gb_io_w( 0x06, 0x00 ); /* TIMEMOD */ - gb_io_w( 0x07, 0x00 ); /* TIMEFRQ */ - gb_video_w( 0x0, 0x91 ); /* LCDCONT */ - gb_video_w( 0x7, 0xFC ); /* BGRDPAL */ - gb_video_w( 0x8, 0xFC ); /* SPR0PAL */ - gb_video_w( 0x9, 0xFC ); /* SPR1PAL */ -} - -static void gb_init(void) -{ - gb_vram = memory_get_read_ptr( 0, ADDRESS_SPACE_PROGRAM, 0x8000 ); - - /* Initialize the memory banks */ - MBC1Mode = 0; - MBC3RTCBank = 0; - ROMBank = 1; - RAMBank = 0; - memory_set_bankptr (1, ROMMap[ROMBank] ? ROMMap[ROMBank] : gb_dummy_rom_bank); - if ( MBCType != MBC_MEGADUCK ) { - memory_set_bankptr (2, RAMMap[RAMBank] ? RAMMap[RAMBank] : gb_dummy_ram_bank); - } else { - memory_set_bankptr( 10, ROMMap[0] ); - } - - /* Set handlers based on the Memory Bank Controller in the cart */ - switch( MBCType ) - { - case MBC_NONE: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MWA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, MWA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MWA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MWA8_ROM ); - break; - case MBC_MBC1: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, gb_ram_enable ); /* We don't emulate RAM enable yet */ - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, gb_rom_bank_select_mbc1 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, gb_ram_bank_select_mbc1 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, gb_mem_mode_select_mbc1 ); - break; - case MBC_MBC2: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MWA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, gb_rom_bank_select_mbc2 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MWA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MWA8_ROM ); - break; - case MBC_MBC3: - case MBC_HUC1: /* Possibly wrong */ - case MBC_HUC3: /* Possibly wrong */ - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, gb_ram_enable ); /* We don't emulate RAM enable yet */ - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, gb_rom_bank_select_mbc3 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, gb_ram_bank_select_mbc3 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, gb_mem_mode_select_mbc3 ); - break; - case MBC_MBC5: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, gb_ram_enable ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, gb_rom_bank_select_mbc5 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, gb_ram_bank_select_mbc5 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MWA8_ROM ); - break; - case MBC_MBC7: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, gb_ram_enable ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x2fff, 0, 0, gb_rom_bank_select_mbc7 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x3000, 0x7fff, 0, 0, gb_rom_bank_unknown_mbc7 ); - break; - case MBC_TAMA5: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0xA000, 0xBFFF, 0, 0, gb_ram_tama5 ); - break; - case MBC_MEGADUCK: - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x0001, 0x0001, 0, 0, megaduck_rom_bank_select_type1 ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0xB000, 0xB000, 0, 0, megaduck_rom_bank_select_type2 ); - break; - } - - gb_sound_w( 0x16, 0x00 ); /* Initialize sound hardware */ -} - -MACHINE_START( gb ) -{ - add_exit_callback(machine, gb_machine_stop); - return 0; -} - -MACHINE_RESET( gb ) -{ - gb_init(); - - gb_video_init(); - - /* Enable BIOS rom */ - memory_set_bankptr(5, memory_region(REGION_CPU1) ); - memory_set_bankptr(10, ROMMap[0] ? ROMMap[0] + 0x0100 : gb_dummy_rom_bank + 0x0100); -} - -MACHINE_RESET( sgb ) -{ - gb_init(); - - sgb_video_init(); - - gb_init_regs(); - - memory_set_bankptr(5, ROMMap[0] ? ROMMap[0] : gb_dummy_rom_bank ); - - if ( sgb_tile_data == NULL ) { - sgb_tile_data = auto_malloc( 0x2000 ); - } - memset( sgb_tile_data, 0, 0x2000 ); - - /* Initialize the Sound Registers */ - gb_sound_w(0x16,0xF0); /* F0 for SGB */ - - sgb_window_mask = 0; - memset( sgb_pal_map, 0, 20*18 ); - memset( sgb_atf_data, 0, 4050 ); - - /* HACKS for Donkey Kong Land 2 + 3. - For some reason that I haven't figured out, they store the tile - data differently. Hacks will go once I figure it out */ - sgb_hack = 0; - if( strncmp( (const char*)(gb_cart + 0x134), "DONKEYKONGLAND 2", 16 ) == 0 || - strncmp( (const char*)(gb_cart + 0x134), "DONKEYKONGLAND 3", 16 ) == 0 ) - { - sgb_hack = 1; - } -} - -MACHINE_RESET( gbpocket ) -{ - gb_init(); - - gb_video_init(); - - gb_init_regs(); - - /* Enable BIOS rom if we have one */ - memory_set_bankptr(5, ROMMap[0] ? ROMMap[0] : gb_dummy_rom_bank ); - memory_set_bankptr(10, ROMMap[0] ? ROMMap[0] + 0x0100 : gb_dummy_rom_bank + 0x0100); -} - -MACHINE_RESET( gbc ) -{ - int ii; - - gb_init(); - - /* Allocate memory for video ram */ - for( ii = 0; ii < 2; ii++ ) { - GBC_VRAMMap[ii] = auto_malloc(0x2000); - memset (GBC_VRAMMap[ii], 0, 0x2000); - } - gbc_io2_w( 0x0F, 0x00 ); - - gbc_video_init(); - - gb_init_regs(); - - memory_set_bankptr(5, ROMMap[0] ? ROMMap[0] : gb_dummy_rom_bank ); - - /* Allocate memory for internal ram */ - for( ii = 0; ii < 8; ii++ ) { - GBC_RAMMap[ii] = auto_malloc(0x1000); - memset (GBC_RAMMap[ii], 0, 0x1000); - } - gbc_io2_w( 0x30, 0x00 ); - - /* Initialise registers */ - gb_io_w( 0x6C, 0xFE ); - gb_io_w( 0x72, 0x00 ); - gb_io_w( 0x73, 0x00 ); - gb_io_w( 0x74, 0x8F ); - gb_io_w( 0x75, 0x00 ); - gb_io_w( 0x76, 0x00 ); - gb_io_w( 0x77, 0x00 ); - - /* Are we in colour or mono mode? */ - if( gb_cart[0x143] == 0x80 || gb_cart[0x143] == 0xC0 ) - gbc_mode = GBC_MODE_GBC; - else - gbc_mode = GBC_MODE_MONO; -} - -static void gb_machine_stop(running_machine *machine) -{ - /* Don't save if there was no battery */ - if( !(CartType & BATTERY) || ! RAMBanks ) - return; - - /* NOTE: The reason we save the carts RAM this way instead of using MAME's - built in macros is because they force the filename to be the name of - the machine. We need to have a separate name for each game. */ - image_battery_save(image_from_devtype_and_index(IO_CARTSLOT, 0), gb_cart_ram, RAMBanks * 0x2000 ); -} - -void gb_set_mbc1_banks( void ) { - memory_set_bankptr( 1, ROMMap[ ROMBank ] ); - memory_set_bankptr( 2, RAMMap[ MBC1Mode ? ( ROMBank >> 5 ) : 0 ] ); -} - -WRITE8_HANDLER( gb_rom_bank_select_mbc1 ) -{ - data &= 0x1F; /* Only uses lower 5 bits */ - /* Selecting bank 0 == selecting bank 1 */ - if( data == 0 ) - data = 1; - - ROMBank = ( ROMBank & 0x01E0 ) | data; - /* Switch banks */ - gb_set_mbc1_banks(); -} - -WRITE8_HANDLER( gb_rom_bank_select_mbc2 ) -{ - data &= 0x0F; /* Only uses lower 4 bits */ - /* Selecting bank 0 == selecting bank 1 */ - if( data == 0 ) - data = 1; - - /* The least significant bit of the upper address byte must be 1 */ - if( offset & 0x0100 ) - ROMBank = ( ROMBank & 0x100 ) | data; - /* Switch banks */ - memory_set_bankptr (1, ROMMap[ROMBank] ); -} - -WRITE8_HANDLER( gb_rom_bank_select_mbc3 ) -{ - logerror( "0x%04X: write to mbc3 rom bank select register 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); - data &= 0x7F; /* Only uses lower 7 bits */ - /* Selecting bank 0 == selecting bank 1 */ - if( data == 0 ) - data = 1; - - ROMBank = ( ROMBank & 0x0100 ) | data; - /* Switch banks */ - memory_set_bankptr (1, ROMMap[ROMBank] ); -} - -WRITE8_HANDLER( gb_rom_bank_select_mbc5 ) -{ - /* MBC5 has a 9 bit bank select - Writing into 2000-2FFF sets the lower 8 bits - Writing into 3000-3FFF sets the 9th bit - */ - logerror( "0x%04X: MBC5 ROM Bank select write 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); - if( offset & 0x1000 ) { - ROMBank = (ROMBank & 0xFF ) | ( ( data & 0x01 ) << 8 ); - } else { - ROMBank = (ROMBank & 0x100 ) | data; - } - /* Switch banks */ - memory_set_bankptr (1, ROMMap[ROMBank] ); -} - -WRITE8_HANDLER( gb_rom_bank_select_mbc7 ) { - logerror( "0x%04X: write to mbc7 rom select register: 0x%04X <- 0x%02X\n", activecpu_get_pc(), 0x2000 + offset, data ); - /* Bit 12 must be set for writing to the mbc register */ - if ( offset & 0x0100 ) { - ROMBank = data; - memory_set_bankptr( 1, ROMMap[ROMBank] ); - } -} - -WRITE8_HANDLER( gb_rom_bank_unknown_mbc7 ) { - logerror( "0x%04X: write to mbc7 rom area: 0x%04X <- 0x%02X\n", activecpu_get_pc(), 0x3000 + offset, data ); - /* Bit 12 must be set for writing to the mbc register */ - if ( offset & 0x0100 ) { - switch( offset & 0x7000 ) { - case 0x0000: /* 0x3000-0x3fff */ - case 0x1000: /* 0x4000-0x4fff */ - case 0x2000: /* 0x5000-0x5fff */ - case 0x3000: /* 0x6000-0x6fff */ - case 0x4000: /* 0x7000-0x7fff */ - break; - } - } -} - -WRITE8_HANDLER( gb_ram_bank_select_mbc1 ) -{ - data &= 0x3; /* Only uses the lower 2 bits */ - - /* Select the upper bits of the ROMMask */ - ROMBank = ( ROMBank & 0x1F ) | ( data << 5 ); - - /* Switch banks */ - gb_set_mbc1_banks(); -} - -WRITE8_HANDLER( gb_ram_bank_select_mbc3 ) -{ - logerror( "0x%04X: write mbc3 ram bank select register 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); - if( data & 0x8 ) { /* RTC banks */ - if ( CartType & TIMER ) { - MBC3RTCBank = data & 0x07; - if ( data < 5 ) { - memset( MBC3RTCData, MBC3RTCMap[MBC3RTCBank], 0x2000 ); - memory_set_bankptr( 2, MBC3RTCData ); - } - } - } else { /* RAM banks */ - RAMBank = data & 0x3; - MBC3RTCBank = 0xFF; - /* Switch banks */ - memory_set_bankptr( 2, RAMMap[RAMBank] ); - } -} - -WRITE8_HANDLER( gb_ram_bank_select_mbc5 ) -{ - logerror( "0x%04X: MBC5 RAM Bank select write 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); - data &= 0x0F; - if( CartType & RUMBLE ) { - data &= 0x7; - } - RAMBank = data; - /* Switch banks */ - memory_set_bankptr (2, RAMMap[RAMBank] ); -} - -WRITE8_HANDLER ( gb_ram_enable ) -{ - /* FIXME: Currently we don't handle this, but a value of 0xA will enable - * writing to the cart's RAM banks */ - logerror( "0x%04X: Write to ram enable register 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); -} - -WRITE8_HANDLER( gb_mem_mode_select_mbc1 ) -{ - MBC1Mode = data & 0x1; - gb_set_mbc1_banks(); -} - -WRITE8_HANDLER( gb_mem_mode_select_mbc3 ) -{ - logerror( "0x%04X: Write to mbc3 mem mode select register 0x%04X <- 0x%02X\n", activecpu_get_pc(), offset, data ); - if( CartType & TIMER ) { - /* FIXME: RTC Latch goes here */ - MBC3RTCMap[0] = 50; /* Seconds */ - MBC3RTCMap[1] = 40; /* Minutes */ - MBC3RTCMap[2] = 15; /* Hours */ - MBC3RTCMap[3] = 25; /* Day counter lowest 8 bits */ - MBC3RTCMap[4] = 0x01; /* Day counter upper bit, timer off, no day overflow occured (bit7) */ - } -} - -WRITE8_HANDLER( gb_ram_tama5 ) { - logerror( "0x%04X: TAMA5 write 0x%04X <- 0x%02X\n", activecpu_get_pc(), 0xA000 + offset, data ); - switch( offset & 0x0001 ) { - case 0x0000: /* Write to data register */ - switch( gbLastTama5Command ) { - case 0x00: /* Bits 0-3 for rom bank selection */ - ROMBank = ( ROMBank & 0xF0 ) | ( data & 0x0F ); - memory_set_bankptr (1, ROMMap[ROMBank] ); - break; - case 0x01: /* Bit 4(-7?) for rom bank selection */ - ROMBank = ( ROMBank & 0x0F ) | ( ( data & 0x0F ) << 4 ); - memory_set_bankptr (1, ROMMap[ROMBank] ); - break; - case 0x04: /* Data to write lo */ - gbTama5Byte = ( gbTama5Byte & 0xF0 ) | ( data & 0x0F ); - break; - case 0x05: /* Data to write hi */ - gbTama5Byte = ( gbTama5Byte & 0x0F ) | ( ( data & 0x0F ) << 4 ); - break; - case 0x06: /* Address selection hi */ - gbTama5Address = ( gbTama5Address & 0x0F ) | ( ( data & 0x0F ) << 4 ); - break; - case 0x07: /* Address selection lo */ - /* This address always seems to written last, so we'll just - execute the command here */ - gbTama5Address = ( gbTama5Address & 0xF0 ) | ( data & 0x0F ); - switch ( gbTama5Address & 0xE0 ) { - case 0x00: /* Write memory */ - logerror( "Write tama5 memory 0x%02X <- 0x%02X\n", gbTama5Address & 0x1F, gbTama5Byte ); - gbTama5Memory[ gbTama5Address & 0x1F ] = gbTama5Byte; - break; - case 0x20: /* Read memory */ - logerror( "Read tama5 memory 0x%02X\n", gbTama5Address & 0x1F ); - gbTama5Byte = gbTama5Memory[ gbTama5Address & 0x1F ]; - break; - case 0x40: /* Unknown, some kind of read */ - if ( ( gbTama5Address & 0x1F ) == 0x12 ) { - gbTama5Byte = 0xFF; - } - case 0x80: /* Unknown, some kind of read (when 07=01)/write (when 07=00/02) */ - default: - logerror( "0x%04X: Unknown addressing mode\n", activecpu_get_pc() ); - break; - } - break; - } - break; - case 0x0001: /* Write to control register */ - switch( data ) { - case 0x00: /* Bits 0-3 for rom bank selection */ - case 0x01: /* Bits 4-7 for rom bank selection */ - case 0x04: /* Data write register lo */ - case 0x05: /* Data write register hi */ - case 0x06: /* Address register hi */ - case 0x07: /* Address register lo */ - break; - case 0x0A: /* Are we ready for the next command? */ - MBC3RTCData[0] = 0x01; - memory_set_bankptr( 2, MBC3RTCData ); - break; - case 0x0C: /* Data read register lo */ - MBC3RTCData[0] = gbTama5Byte & 0x0F; - break; - case 0x0D: /* Data read register hi */ - MBC3RTCData[0] = ( gbTama5Byte & 0xF0 ) >> 4; - break; - default: - logerror( "0x%04X: Unknown tama5 command 0x%02X\n", activecpu_get_pc(), data ); - break; - } - gbLastTama5Command = data; - break; - } -} - -WRITE8_HANDLER ( gb_io_w ) -{ - static UINT8 timer_shifts[4] = {10, 4, 6, 8}; - - switch (offset) - { - case 0x00: /* JOYP - Joypad */ - JOYPAD = 0xCF | data; - if (!(data & 0x20)) - JOYPAD &= (readinputport (0) >> 4) | 0xF0; - if (!(data & 0x10)) - JOYPAD &= readinputport (0) | 0xF0; - return; - case 0x01: /* SB - Serial transfer data */ - break; - case 0x02: /* SC - SIO control */ - if ((data & 0x81) == 0x81) /* internal clock && enable */ - { - SIODATA = 0xFF; - SIOCount = 8; - } - else /* external clock || disable */ - SIOCount = 0; - break; - case 0x04: /* DIV - Divider register */ - if ( gb_divcount == 0x0007 ) { - TIMECNT --; - } - gb_divcount = 0xFFFF; /* The actual value here is closely tied with some implementation details of z80gb cpu core */ - return; - case 0x05: /* TIMA - Timer counter */ - break; - case 0x06: /* TMA - Timer module */ - break; - case 0x07: /* TAC - Timer control */ - data |= 0xF8; - gb_timer_shift = timer_shifts[data & 0x03]; - break; - case 0x0F: /* IF - Interrupt flag */ - data &= 0x1F; - cpunum_set_reg( 0, Z80GB_IF, data ); - break; - } - - gb_io [offset] = data; -} - -WRITE8_HANDLER ( gb_io2_w ) -{ - if ( offset == 0x10 ) { - /* disable BIOS ROM */ - memory_set_bankptr(5, ROMMap[0]); - } else { - gb_video_w( offset, data ); - } -} - -#ifdef MAME_DEBUG -static const char *sgbcmds[26] = -{ - "PAL01 ", - "PAL23 ", - "PAL03 ", - "PAL12 ", - "ATTR_BLK", - "ATTR_LIN", - "ATTR_DIV", - "ATTR_CHR", - "SOUND ", - "SOU_TRN ", - "PAL_SET ", - "PAL_TRN ", - "ATRC_EN ", - "TEST_EN ", - "ICON_EN ", - "DATA_SND", - "DATA_TRN", - "MLT_REG ", - "JUMP ", - "CHR_TRN ", - "PCT_TRN ", - "ATTR_TRN", - "ATTR_SET", - "MASK_EN ", - "OBJ_TRN ", - "????????", -}; -#endif - -WRITE8_HANDLER ( sgb_io_w ) -{ - static UINT8 sgb_bitcount = 0, sgb_bytecount = 0, sgb_start = 0, sgb_rest = 0; - static UINT8 sgb_controller_no = 0, sgb_controller_mode = 0; - static INT8 sgb_packets = -1; - static UINT8 sgb_data[112]; - static UINT32 sgb_atf; - - offset += 0xFF00; - - switch( offset ) - { - case 0xFF00: - switch (data & 0x30) - { - case 0x00: /* start condition */ - if (sgb_start) - logerror("SGB: Start condition before end of transfer ??"); - sgb_bitcount = 0; - sgb_start = 1; - sgb_rest = 0; - JOYPAD = 0x0F & ((readinputport (0) >> 4) | readinputport (0) | 0xF0); - break; - case 0x10: /* data true */ - if (sgb_rest) - { - /* We should test for this case , but the code below won't - work with the current setup */ - /* if (sgb_bytecount == 16) - { - logerror("SGB: end of block is not zero!"); - sgb_start = 0; - }*/ - sgb_data[sgb_bytecount] >>= 1; - sgb_data[sgb_bytecount] |= 0x80; - sgb_bitcount++; - if (sgb_bitcount == 8) - { - sgb_bitcount = 0; - sgb_bytecount++; - } - sgb_rest = 0; - } - JOYPAD = 0x1F & ((readinputport (0) >> 4) | 0xF0); - break; - case 0x20: /* data false */ - if (sgb_rest) - { - if( sgb_bytecount == 16 && sgb_packets == -1 ) - { -#ifdef MAME_DEBUG - logerror("SGB: %s (%02X) pkts: %d data: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", - sgbcmds[sgb_data[0] >> 3],sgb_data[0] >> 3, sgb_data[0] & 0x07, sgb_data[1], sgb_data[2], sgb_data[3], - sgb_data[4], sgb_data[5], sgb_data[6], sgb_data[7], - sgb_data[8], sgb_data[9], sgb_data[10], sgb_data[11], - sgb_data[12], sgb_data[13], sgb_data[14], sgb_data[15]); -#endif - sgb_packets = sgb_data[0] & 0x07; - sgb_start = 0; - } - if (sgb_bytecount == (sgb_packets << 4) ) - { - switch( sgb_data[0] >> 3 ) - { - case 0x00: /* PAL01 */ - Machine->remapped_colortable[0*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[0*4 + 1] = sgb_data[3] | (sgb_data[4] << 8); - Machine->remapped_colortable[0*4 + 2] = sgb_data[5] | (sgb_data[6] << 8); - Machine->remapped_colortable[0*4 + 3] = sgb_data[7] | (sgb_data[8] << 8); - Machine->remapped_colortable[1*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[1*4 + 1] = sgb_data[9] | (sgb_data[10] << 8); - Machine->remapped_colortable[1*4 + 2] = sgb_data[11] | (sgb_data[12] << 8); - Machine->remapped_colortable[1*4 + 3] = sgb_data[13] | (sgb_data[14] << 8); - break; - case 0x01: /* PAL23 */ - Machine->remapped_colortable[2*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[2*4 + 1] = sgb_data[3] | (sgb_data[4] << 8); - Machine->remapped_colortable[2*4 + 2] = sgb_data[5] | (sgb_data[6] << 8); - Machine->remapped_colortable[2*4 + 3] = sgb_data[7] | (sgb_data[8] << 8); - Machine->remapped_colortable[3*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[3*4 + 1] = sgb_data[9] | (sgb_data[10] << 8); - Machine->remapped_colortable[3*4 + 2] = sgb_data[11] | (sgb_data[12] << 8); - Machine->remapped_colortable[3*4 + 3] = sgb_data[13] | (sgb_data[14] << 8); - break; - case 0x02: /* PAL03 */ - Machine->remapped_colortable[0*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[0*4 + 1] = sgb_data[3] | (sgb_data[4] << 8); - Machine->remapped_colortable[0*4 + 2] = sgb_data[5] | (sgb_data[6] << 8); - Machine->remapped_colortable[0*4 + 3] = sgb_data[7] | (sgb_data[8] << 8); - Machine->remapped_colortable[3*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[3*4 + 1] = sgb_data[9] | (sgb_data[10] << 8); - Machine->remapped_colortable[3*4 + 2] = sgb_data[11] | (sgb_data[12] << 8); - Machine->remapped_colortable[3*4 + 3] = sgb_data[13] | (sgb_data[14] << 8); - break; - case 0x03: /* PAL12 */ - Machine->remapped_colortable[1*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[1*4 + 1] = sgb_data[3] | (sgb_data[4] << 8); - Machine->remapped_colortable[1*4 + 2] = sgb_data[5] | (sgb_data[6] << 8); - Machine->remapped_colortable[1*4 + 3] = sgb_data[7] | (sgb_data[8] << 8); - Machine->remapped_colortable[2*4 + 0] = sgb_data[1] | (sgb_data[2] << 8); - Machine->remapped_colortable[2*4 + 1] = sgb_data[9] | (sgb_data[10] << 8); - Machine->remapped_colortable[2*4 + 2] = sgb_data[11] | (sgb_data[12] << 8); - Machine->remapped_colortable[2*4 + 3] = sgb_data[13] | (sgb_data[14] << 8); - break; - case 0x04: /* ATTR_BLK */ - { - UINT8 I, J, K, o; - for( K = 0; K < sgb_data[1]; K++ ) - { - o = K * 6; - if( sgb_data[o + 2] & 0x1 ) - { - for( I = sgb_data[ o + 4]; I <= sgb_data[o + 6]; I++ ) - { - for( J = sgb_data[o + 5]; J <= sgb_data[o + 7]; J++ ) - { - sgb_pal_map[I][J] = sgb_data[o + 3] & 0x3; - } - } - } - } - } - break; - case 0x05: /* ATTR_LIN */ - { - UINT8 J, K; - if( sgb_data[1] > 15 ) - sgb_data[1] = 15; - for( K = 0; K < sgb_data[1]; K++ ) - { - if( sgb_data[K + 1] & 0x80 ) - { - for( J = 0; J < 20; J++ ) - { - sgb_pal_map[J][sgb_data[K + 1] & 0x1f] = (sgb_data[K + 1] & 0x60) >> 5; - } - } - else - { - for( J = 0; J < 18; J++ ) - { - sgb_pal_map[sgb_data[K + 1] & 0x1f][J] = (sgb_data[K + 1] & 0x60) >> 5; - } - } - } - } - break; - case 0x06: /* ATTR_DIV */ - { - UINT8 I, J; - if( sgb_data[1] & 0x40 ) /* Vertical */ - { - for( I = 0; I < sgb_data[2]; I++ ) - { - for( J = 0; J < 20; J++ ) - { - sgb_pal_map[J][I] = (sgb_data[1] & 0xC) >> 2; - } - } - for( J = 0; J < 20; J++ ) - { - sgb_pal_map[J][sgb_data[2]] = (sgb_data[1] & 0x30) >> 4; - } - for( I = sgb_data[2] + 1; I < 18; I++ ) - { - for( J = 0; J < 20; J++ ) - { - sgb_pal_map[J][I] = sgb_data[1] & 0x3; - } - } - } - else /* Horizontal */ - { - for( I = 0; I < sgb_data[2]; I++ ) - { - for( J = 0; J < 18; J++ ) - { - sgb_pal_map[I][J] = (sgb_data[1] & 0xC) >> 2; - } - } - for( J = 0; J < 18; J++ ) - { - sgb_pal_map[sgb_data[2]][J] = (sgb_data[1] & 0x30) >> 4; - } - for( I = sgb_data[2] + 1; I < 20; I++ ) - { - for( J = 0; J < 18; J++ ) - { - sgb_pal_map[I][J] = sgb_data[1] & 0x3; - } - } - } - } - break; - case 0x07: /* ATTR_CHR */ - { - UINT16 I, sets; - UINT8 x, y; - sets = (sgb_data[3] | (sgb_data[4] << 8) ); - if( sets > 360 ) - sets = 360; - sets >>= 2; - sets += 6; - x = sgb_data[1]; - y = sgb_data[2]; - if( sgb_data[5] ) /* Vertical */ - { - for( I = 6; I < sets; I++ ) - { - sgb_pal_map[x][y++] = (sgb_data[I] & 0xC0) >> 6; - if( y > 17 ) - { - y = 0; - x++; - if( x > 19 ) - x = 0; - } - - sgb_pal_map[x][y++] = (sgb_data[I] & 0x30) >> 4; - if( y > 17 ) - { - y = 0; - x++; - if( x > 19 ) - x = 0; - } - - sgb_pal_map[x][y++] = (sgb_data[I] & 0xC) >> 2; - if( y > 17 ) - { - y = 0; - x++; - if( x > 19 ) - x = 0; - } - - sgb_pal_map[x][y++] = sgb_data[I] & 0x3; - if( y > 17 ) - { - y = 0; - x++; - if( x > 19 ) - x = 0; - } - } - } - else /* horizontal */ - { - for( I = 6; I < sets; I++ ) - { - sgb_pal_map[x++][y] = (sgb_data[I] & 0xC0) >> 6; - if( x > 19 ) - { - x = 0; - y++; - if( y > 17 ) - y = 0; - } - - sgb_pal_map[x++][y] = (sgb_data[I] & 0x30) >> 4; - if( x > 19 ) - { - x = 0; - y++; - if( y > 17 ) - y = 0; - } - - sgb_pal_map[x++][y] = (sgb_data[I] & 0xC) >> 2; - if( x > 19 ) - { - x = 0; - y++; - if( y > 17 ) - y = 0; - } - - sgb_pal_map[x++][y] = sgb_data[I] & 0x3; - if( x > 19 ) - { - x = 0; - y++; - if( y > 17 ) - y = 0; - } - } - } - } - break; - case 0x08: /* SOUND */ - /* This command enables internal sound effects */ - /* Not Implemented */ - break; - case 0x09: /* SOU_TRN */ - /* This command sends data to the SNES sound processor. - We'll need to emulate that for this to be used */ - /* Not Implemented */ - break; - case 0x0A: /* PAL_SET */ - { - UINT16 index_, J, I; - - /* Palette 0 */ - index_ = (UINT16)(sgb_data[1] | (sgb_data[2] << 8)) * 4; - Machine->remapped_colortable[0] = sgb_pal_data[index_]; - Machine->remapped_colortable[1] = sgb_pal_data[index_ + 1]; - Machine->remapped_colortable[2] = sgb_pal_data[index_ + 2]; - Machine->remapped_colortable[3] = sgb_pal_data[index_ + 3]; - /* Palette 1 */ - index_ = (UINT16)(sgb_data[3] | (sgb_data[4] << 8)) * 4; - Machine->remapped_colortable[4] = sgb_pal_data[index_]; - Machine->remapped_colortable[5] = sgb_pal_data[index_ + 1]; - Machine->remapped_colortable[6] = sgb_pal_data[index_ + 2]; - Machine->remapped_colortable[7] = sgb_pal_data[index_ + 3]; - /* Palette 2 */ - index_ = (UINT16)(sgb_data[5] | (sgb_data[6] << 8)) * 4; - Machine->remapped_colortable[8] = sgb_pal_data[index_]; - Machine->remapped_colortable[9] = sgb_pal_data[index_ + 1]; - Machine->remapped_colortable[10] = sgb_pal_data[index_ + 2]; - Machine->remapped_colortable[11] = sgb_pal_data[index_ + 3]; - /* Palette 3 */ - index_ = (UINT16)(sgb_data[7] | (sgb_data[8] << 8)) * 4; - Machine->remapped_colortable[12] = sgb_pal_data[index_]; - Machine->remapped_colortable[13] = sgb_pal_data[index_ + 1]; - Machine->remapped_colortable[14] = sgb_pal_data[index_ + 2]; - Machine->remapped_colortable[15] = sgb_pal_data[index_ + 3]; - /* Attribute File */ - if( sgb_data[9] & 0x40 ) - sgb_window_mask = 0; - sgb_atf = (sgb_data[9] & 0x3f) * (18 * 5); - if( sgb_data[9] & 0x80 ) - { - for( J = 0; J < 18; J++ ) - { - for( I = 0; I < 5; I++ ) - { - sgb_pal_map[I * 4][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0xC0) >> 6; - sgb_pal_map[(I * 4) + 1][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0x30) >> 4; - sgb_pal_map[(I * 4) + 2][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0xC) >> 2; - sgb_pal_map[(I * 4) + 3][J] = sgb_atf_data[(J * 5) + sgb_atf + I] & 0x3; - } - } - } - } - break; - case 0x0B: /* PAL_TRN */ - { - UINT16 I, col; - - for( I = 0; I < 2048; I++ ) - { - col = program_read_byte_8 (0x8800 + (I*2)); - col |= (UINT16)(program_read_byte_8 (0x8800 + (I*2) + 1)) << 8; - sgb_pal_data[I] = col; - } - } - break; - case 0x0C: /* ATRC_EN */ - /* Not Implemented */ - break; - case 0x0D: /* TEST_EN */ - /* Not Implemented */ - break; - case 0x0E: /* ICON_EN */ - /* Not Implemented */ - break; - case 0x0F: /* DATA_SND */ - /* Not Implemented */ - break; - case 0x10: /* DATA_TRN */ - /* Not Implemented */ - break; - case 0x11: /* MLT_REQ - Multi controller request */ - if (sgb_data[1] == 0x00) - sgb_controller_mode = 0; - else if (sgb_data[1] == 0x01) - sgb_controller_mode = 2; - break; - case 0x12: /* JUMP */ - /* Not Implemented */ - break; - case 0x13: /* CHR_TRN */ - if( sgb_data[1] & 0x1 ) - memcpy( sgb_tile_data + 4096, gb_vram + 0x0800, 4096 ); - else - memcpy( sgb_tile_data, gb_vram + 0x0800, 4096 ); - break; - case 0x14: /* PCT_TRN */ - { - int I; - UINT16 col; - if( sgb_hack ) - { - memcpy( sgb_tile_map, gb_vram + 0x1000, 2048 ); - for( I = 0; I < 64; I++ ) - { - col = program_read_byte_8 (0x8800 + (I*2)); - col |= (UINT16)(program_read_byte_8 (0x8800 + (I*2) + 1)) << 8; - Machine->remapped_colortable[SGB_BORDER_PAL_OFFSET + I] = col; - } - } - else /* Do things normally */ - { - memcpy( sgb_tile_map, gb_vram + 0x0800, 2048 ); - for( I = 0; I < 64; I++ ) - { - col = program_read_byte_8 (0x9000 + (I*2)); - col |= (UINT16)(program_read_byte_8 (0x9000 + (I*2) + 1)) << 8; - Machine->remapped_colortable[SGB_BORDER_PAL_OFFSET + I] = col; - } - } - } - break; - case 0x15: /* ATTR_TRN */ - memcpy( sgb_atf_data, gb_vram + 0x0800, 4050 ); - break; - case 0x16: /* ATTR_SET */ - { - UINT8 J, I; - - /* Attribute File */ - if( sgb_data[1] & 0x40 ) - sgb_window_mask = 0; - sgb_atf = (sgb_data[1] & 0x3f) * (18 * 5); - for( J = 0; J < 18; J++ ) - { - for( I = 0; I < 5; I++ ) - { - sgb_pal_map[I * 4][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0xC0) >> 6; - sgb_pal_map[(I * 4) + 1][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0x30) >> 4; - sgb_pal_map[(I * 4) + 2][J] = (sgb_atf_data[(J * 5) + sgb_atf + I] & 0xC) >> 2; - sgb_pal_map[(I * 4) + 3][J] = sgb_atf_data[(J * 5) + sgb_atf + I] & 0x3; - } - } - } - break; - case 0x17: /* MASK_EN */ - sgb_window_mask = sgb_data[1]; - break; - case 0x18: /* OBJ_TRN */ - /* Not Implemnted */ - break; - case 0x19: /* ? */ - /* Called by: dkl,dkl2,dkl3,zeldadx - But I don't know what it is for. */ - /* Not Implemented */ - break; - default: - logerror( "\tSGB: Unknown Command!\n" ); - } - - sgb_start = 0; - sgb_bytecount = 0; - sgb_packets = -1; - } - if( sgb_start ) - { - sgb_data[sgb_bytecount] >>= 1; - sgb_bitcount++; - if (sgb_bitcount == 8) - { - sgb_bitcount = 0; - sgb_bytecount++; - } - } - sgb_rest = 0; - } - JOYPAD = 0x2F & (readinputport (0) | 0xF0); - break; - case 0x30: /* rest condition */ - if (sgb_start) - sgb_rest = 1; - if (sgb_controller_mode) - { - sgb_controller_no++; - if (sgb_controller_no == sgb_controller_mode) - sgb_controller_no = 0; - JOYPAD = 0x3F - sgb_controller_no; - } - else - JOYPAD = 0x3F; - break; - } - return; - default: - /* we didn't handle the write, so pass it to the GB handler */ - gb_io_w( offset - 0xFF00, data ); - return; - } - - gb_io[offset] = data; -} - -/* Interrupt Enable register */ -READ8_HANDLER( gb_ie_r ) -{ - return cpunum_get_reg( 0, Z80GB_IE ); -} - -WRITE8_HANDLER ( gb_ie_w ) -{ - cpunum_set_reg( 0, Z80GB_IE, data & 0x1F ); -} - -/* IO read */ -READ8_HANDLER ( gb_io_r ) -{ - switch(offset) - { - case 0x04: - return ( gb_divcount >> 8 ) & 0xFF; - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x05: - case 0x06: - case 0x07: - return gb_io[offset]; - case 0x0F: - return cpunum_get_reg( 0, Z80GB_IF ); - default: - /* It seems unsupported registers return 0xFF */ - return 0xFF; - } -} - -WRITE8_HANDLER( gb_oam_w ) { - if ( gb_video_oam_locked() ) { - return; - } - gb_oam[offset] = data; -} - -WRITE8_HANDLER( gb_vram_w ) { - if ( gb_video_vram_locked() ) { - return; - } - gb_vram[offset] = data; -} - -WRITE8_HANDLER( gbc_vram_w ) { - if ( gb_video_vram_locked() ) { - return; - } - gbc_vram_bank[offset] = data; -} - -DEVICE_INIT(gb_cart) -{ - int I; - - if ( gb_dummy_rom_bank == NULL ) { - gb_dummy_rom_bank = auto_malloc( 0x4000 ); - memset( gb_dummy_rom_bank, 0xFF, 0x4000 ); - } - - if ( gb_dummy_ram_bank == NULL ) { - gb_dummy_ram_bank = auto_malloc( 0x2000 ); - memset( gb_dummy_ram_bank, 0x00, 0x2000 ); - } - - for(I = 0; I < MAX_ROMBANK; I++) { - ROMMap[I] = gb_dummy_rom_bank; - } - for(I = 0; I < MAX_RAMBANK; I++) { - RAMMap[I] = gb_dummy_ram_bank; - } - ROMBanks = 0; - RAMBanks = 0; - MBCType = MBC_NONE; - CartType = 0; - ROMMask = 0; - RAMMask = 0; - return INIT_PASS; -} - -DEVICE_LOAD(gb_cart) -{ - static const char *CartTypes[] = - { - "ROM ONLY", - "ROM+MBC1", - "ROM+MBC1+RAM", - "ROM+MBC1+RAM+BATTERY", - "UNKNOWN", - "ROM+MBC2", - "ROM+MBC2+BATTERY", - "UNKNOWN", - "ROM+RAM", - "ROM+RAM+BATTERY", - "UNKNOWN", - "ROM+MMM01", - "ROM+MMM01+SRAM", - "ROM+MMM01+SRAM+BATTERY", - "UNKNOWN", - "ROM+MBC3+TIMER+BATTERY", - "ROM+MBC3+TIMER+RAM+BATTERY", - "ROM+MBC3", - "ROM+MBC3+RAM", - "ROM+MBC3+RAM+BATTERY", - "UNKNOWN", - "UNKNOWN", - "UNKNOWN", - "UNKNOWN", - "UNKNOWN", - "ROM+MBC5", - "ROM+MBC5+RAM", - "ROM+MBC5+RAM+BATTERY", - "ROM+MBC5+RUMBLE", - "ROM+MBC5+RUMBLE+SRAM", - "ROM+MBC5+RUMBLE+SRAM+BATTERY", - "Pocket Camera", - "Bandai TAMA5", - /* Need heaps of unknowns here */ - "Hudson HuC-3", - "Hudson HuC-1" - }; - -/*** Following are some known manufacturer codes *************************/ - static struct - { - UINT16 Code; - const char *Name; - } - Companies[] = - { - {0x3301, "Nintendo"}, - {0x7901, "Accolade"}, - {0xA400, "Konami"}, - {0x6701, "Ocean"}, - {0x5601, "LJN"}, - {0x9900, "ARC?"}, - {0x0101, "Nintendo"}, - {0x0801, "Capcom"}, - {0x0100, "Nintendo"}, - {0xBB01, "SunSoft"}, - {0xA401, "Konami"}, - {0xAF01, "Namcot?"}, - {0x4901, "Irem"}, - {0x9C01, "Imagineer"}, - {0xA600, "Kawada?"}, - {0xB101, "Nexoft"}, - {0x5101, "Acclaim"}, - {0x6001, "Titus"}, - {0xB601, "HAL"}, - {0x3300, "Nintendo"}, - {0x0B00, "Coconuts?"}, - {0x5401, "Gametek"}, - {0x7F01, "Kemco?"}, - {0xC001, "Taito"}, - {0xEB01, "Atlus"}, - {0xE800, "Asmik?"}, - {0xDA00, "Tomy?"}, - {0xB100, "ASCII?"}, - {0xEB00, "Atlus"}, - {0xC000, "Taito"}, - {0x9C00, "Imagineer"}, - {0xC201, "Kemco?"}, - {0xD101, "Sofel?"}, - {0x6101, "Virgin"}, - {0xBB00, "SunSoft"}, - {0xCE01, "FCI?"}, - {0xB400, "Enix?"}, - {0xBD01, "Imagesoft"}, - {0x0A01, "Jaleco?"}, - {0xDF00, "Altron?"}, - {0xA700, "Takara?"}, - {0xEE00, "IGS?"}, - {0x8300, "Lozc?"}, - {0x5001, "Absolute?"}, - {0xDD00, "NCS?"}, - {0xE500, "Epoch?"}, - {0xCB00, "VAP?"}, - {0x8C00, "Vic Tokai"}, - {0xC200, "Kemco?"}, - {0xBF00, "Sammy?"}, - {0x1800, "Hudson Soft"}, - {0xCA01, "Palcom/Ultra"}, - {0xCA00, "Palcom/Ultra"}, - {0xC500, "Data East?"}, - {0xA900, "Technos Japan?"}, - {0xD900, "Banpresto?"}, - {0x7201, "Broderbund?"}, - {0x7A01, "Triffix Entertainment?"}, - {0xE100, "Towachiki?"}, - {0x9300, "Tsuburava?"}, - {0xC600, "Tonkin House?"}, - {0xCE00, "Pony Canyon"}, - {0x7001, "Infogrames?"}, - {0x8B01, "Bullet-Proof Software?"}, - {0x5501, "Park Place?"}, - {0xEA00, "King Records?"}, - {0x5D01, "Tradewest?"}, - {0x6F01, "ElectroBrain?"}, - {0xAA01, "Broderbund?"}, - {0xC301, "SquareSoft"}, - {0x5201, "Activision?"}, - {0x5A01, "Bitmap Brothers/Mindscape"}, - {0x5301, "American Sammy"}, - {0x4701, "Spectrum Holobyte"}, - {0x1801, "Hudson Soft"}, - {0x0000, NULL} - }; - - int Checksum, I, J, filesize; - UINT16 reported_rom_banks; - int rambanks[8] = {0, 1, 1, 4, 16, 8, 0, 0}; - - filesize = image_length(image); - - /* Check for presence of a header, and skip that header */ - J = filesize % 0x4000; - if ( J == 512 ) { - logerror( "Rom-header found, skipping\n" ); - image_fseek( image, J, SEEK_SET ); - filesize -= 512; - } - - /* Verify that the file contains 16kb blocks */ - if ( ( filesize == 0 ) || ( ( filesize % 0x4000 ) != 0 ) ) { - image_seterror( image, IMAGE_ERROR_UNSPECIFIED, "Invalid rom file size" ); - return INIT_FAIL; - } - - /* Claim memory */ - gb_cart = auto_malloc( filesize ); - - /* Read cartridge */ - if ( image_fread( image, gb_cart, filesize ) != filesize ) { - image_seterror( image, IMAGE_ERROR_UNSPECIFIED, "Unable to fully read from file" ); - return INIT_FAIL; - } - - /* Fill in our cart details */ - switch( gb_cart[0x0147] ) { - case 0x00: MBCType = MBC_NONE; CartType = 0; break; - case 0x01: MBCType = MBC_MBC1; CartType = 0; break; - case 0x02: MBCType = MBC_MBC1; CartType = RAM; break; - case 0x03: MBCType = MBC_MBC1; CartType = RAM | BATTERY; break; - case 0x05: MBCType = MBC_MBC2; CartType = 0; break; - case 0x06: MBCType = MBC_MBC2; CartType = BATTERY; break; - case 0x08: MBCType = MBC_NONE; CartType = RAM; break; - case 0x09: MBCType = MBC_NONE; CartType = RAM | BATTERY; break; - case 0x0B: MBCType = MBC_MMM01; CartType = 0; break; - case 0x0C: MBCType = MBC_MMM01; CartType = RAM; break; - case 0x0D: MBCType = MBC_MMM01; CartType = RAM | BATTERY; break; - case 0x0F: MBCType = MBC_MBC3; CartType = TIMER | BATTERY; break; - case 0x10: MBCType = MBC_MBC3; CartType = TIMER | RAM | BATTERY; break; - case 0x11: MBCType = MBC_MBC3; CartType = 0; break; - case 0x12: MBCType = MBC_MBC3; CartType = RAM; break; - case 0x13: MBCType = MBC_MBC3; CartType = RAM | BATTERY; break; - case 0x15: MBCType = MBC_MBC4; CartType = 0; break; - case 0x16: MBCType = MBC_MBC4; CartType = RAM; break; - case 0x17: MBCType = MBC_MBC4; CartType = RAM | BATTERY; break; - case 0x19: MBCType = MBC_MBC5; CartType = 0; break; - case 0x1A: MBCType = MBC_MBC5; CartType = RAM; break; - case 0x1B: MBCType = MBC_MBC5; CartType = RAM | BATTERY; break; - case 0x1C: MBCType = MBC_MBC5; CartType = RUMBLE; break; - case 0x1D: MBCType = MBC_MBC5; CartType = RUMBLE | SRAM; break; - case 0x1E: MBCType = MBC_MBC5; CartType = RUMBLE | SRAM | BATTERY; break; - case 0x22: MBCType = MBC_MBC7; CartType = SRAM | BATTERY; break; - case 0xBE: MBCType = MBC_NONE; CartType = 0; break; /* used in Flash2Advance GB Bridge boot program */ - case 0xFD: MBCType = MBC_TAMA5; CartType = 0 /*RTC | BATTERY?*/; break; - case 0xFE: MBCType = MBC_HUC3; CartType = 0; break; - case 0xFF: MBCType = MBC_HUC1; CartType = 0; break; - default: MBCType = MBC_UNKNOWN; CartType = UNKNOWN; break; - } - - if ( MBCType == MBC_UNKNOWN ) { - image_seterror( image, IMAGE_ERROR_UNSUPPORTED, "Unknown mapper type" ); - return INIT_FAIL; - } - if ( MBCType == MBC_MMM01 ) { - image_seterror( image, IMAGE_ERROR_UNSUPPORTED, "Mapper MMM01 is not supported yet" ); - return INIT_FAIL; - } - if ( MBCType == MBC_MBC4 ) { - image_seterror( image, IMAGE_ERROR_UNSUPPORTED, "Mapper MBC4 is not supported yet" ); - return INIT_FAIL; - } - /* MBC7 support is still work-in-progress, so only enable it for debug builds */ -#ifndef MAME_DEBUG - if ( MBCType == MBC_MBC7 ) { - image_seterror( image, IMAGE_ERROR_UNSUPPORTED, "Mapper MBC7 is not supported yet" ); - return INIT_FAIL; - } -#endif - - ROMBanks = filesize / 0x4000; - switch( gb_cart[0x0148] ) { - case 0x52: - reported_rom_banks = 72; - break; - case 0x53: - reported_rom_banks = 80; - break; - case 0x54: - reported_rom_banks = 96; - break; - case 0x00: case 0x01: case 0x02: case 0x03: - case 0x04: case 0x05: case 0x06: case 0x07: - reported_rom_banks = 2 << gb_cart[0x0148]; - break; - default: - logerror( "Warning loading cartridge: Unknown ROM size in header.\n" ); - reported_rom_banks = 256; - break; - } - if ( ROMBanks != reported_rom_banks ) { - logerror( "Warning loading cartridge: Filesize and reported ROM banks don't match.\n" ); - } - - RAMBanks = rambanks[gb_cart[0x0149] & 7]; - - /* Calculate and check checksum */ - Checksum = ((UINT16) gb_cart[0x014E] << 8) + gb_cart[0x014F]; - Checksum += gb_cart[0x014E] + gb_cart[0x014F]; - for (I = 0; I < filesize; I++) - { - Checksum -= gb_cart[I]; - } - if (Checksum & 0xFFFF) - { - logerror("Warning loading cartridge: Checksum is wrong."); - } - - /* Initialize ROMMap pointers */ - for (I = 0; I < ROMBanks; I++) - { - ROMMap[I] = gb_cart + ( I * 0x4000 ); - } - - /* - Handle odd-sized cartridges (72,80,96 banks) - ROMBanks ROMMask - 72 (1001000) 1000111 (71) - 80 (1010000) 1001111 (79) - 96 (1100000) 1011111 (95) - */ - ROMMask = I - 1; - if ( ( ROMBanks & ROMMask ) != 0 ) { - for( ; I & ROMBanks; I++ ) { - ROMMap[ I ] = ROMMap[ I & ROMMask ]; - } - ROMMask = I - 1; - } - - /* Fill out the remaining rom bank pointers, if any. */ - for ( ; I < MAX_ROMBANK; I++ ) { - ROMMap[ I ] = ROMMap[ I & ROMMask ]; - } - - /* Log cart information */ - { - const char *P; - char S[50]; - int ramsize[8] = { 0, 2, 8, 32, 128, 64, 0, 0 }; - - - strncpy (S, (char *)&gb_cart[0x0134], 16); - S[16] = '\0'; - logerror("Cart Information\n"); - logerror("\tName: %s\n", S); - logerror("\tType: %s [0x%2X]\n", CartTypes[gb_cart[0x0147]], gb_cart[0x0147] ); - logerror("\tGameBoy: %s\n", (gb_cart[0x0143] == 0xc0) ? "No" : "Yes" ); - logerror("\tSuper GB: %s [0x%2X]\n", (gb_cart[0x0146] == 0x03) ? "Yes" : "No", gb_cart[0x0146] ); - logerror("\tColor GB: %s [0x%2X]\n", (gb_cart[0x0143] == 0x80 || gb_cart[0x0143] == 0xc0) ? "Yes" : "No", gb_cart[0x0143] ); - logerror("\tROM Size: %d 16kB Banks [0x%2X]\n", ROMBanks, gb_cart[0x0148]); - logerror("\tRAM Size: %d kB [0x%2X]\n", ramsize[ gb_cart[0x0149] & 0x07 ], gb_cart[0x0149]); - logerror("\tLicense code: 0x%2X%2X\n", gb_cart[0x0145], gb_cart[0x0144] ); - J = ((UINT16) gb_cart[0x014B] << 8) + gb_cart[0x014A]; - for (I = 0, P = NULL; !P && Companies[I].Name; I++) - if (J == Companies[I].Code) - P = Companies[I].Name; - logerror("\tManufacturer ID: 0x%2X", J); - logerror(" [%s]\n", P ? P : "?"); - logerror("\tVersion Number: 0x%2X\n", gb_cart[0x014C]); - logerror("\tComplement Check: 0x%2X\n", gb_cart[0x014D]); - logerror("\tChecksum: 0x%2X\n", ( ( gb_cart[0x014E] << 8 ) + gb_cart[0x014F] ) ); - J = ((UINT16) gb_cart[0x0103] << 8) + gb_cart[0x0102]; - logerror("\tStart Address: 0x%2X\n", J); - } - - /* MBC2 has 512 * 4bits (8kb) internal RAM */ - if( MBCType == MBC_MBC2 ) - RAMBanks = 1; - /* MBC7 has 512 bytes(?) of internal RAM */ - if ( MBCType == MBC_MBC7 ) { - RAMBanks = 1; - } - - if (RAMBanks && MBCType) - { - /* Release any previously claimed memory */ - if ( gb_cart_ram != NULL ) { - free( gb_cart_ram ); - gb_cart_ram = NULL; - } - /* Claim memory */ - gb_cart_ram = auto_malloc( RAMBanks * 0x2000 ); - - for (I = 0; I < RAMBanks; I++) - { - RAMMap[I] = gb_cart_ram + ( I * 0x2000 ); - } - - /* Set up rest of the (mirrored) RAM pages */ - RAMMask = I - 1; - for ( ; I < MAX_RAMBANK; I++ ) { - RAMMap[ I ] = RAMMap [ I & RAMMask ]; - } - } else { - RAMMask = 0; - } - - /* If there's an RTC claim memory to store the RTC contents */ - if ( CartType & TIMER ) { - MBC3RTCData = auto_malloc( 0x2000 ); - } - - if ( MBCType == MBC_TAMA5 ) { - MBC3RTCData = auto_malloc( 0x2000 ); - memset( gbTama5Memory, 0xFF, sizeof(gbTama5Memory) ); - } - - /* Load the saved RAM if this cart has a battery */ - if( CartType & BATTERY && RAMBanks ) - { - image_battery_load( image, gb_cart_ram, RAMBanks * 0x2000 ); - } - - return INIT_PASS; -} - -void gb_scanline_interrupt (void) -{ - gb_video_scanline_interrupt(); - - /* Generate serial IO interrupt */ - if (SIOCount) - { - SIODATA = (SIODATA << 1) | 0x01; - if (!--SIOCount) - { - SIOCONT &= 0x7F; - cpunum_set_input_line(0, SIO_INT, HOLD_LINE); - } - } -} - -void gb_timer_callback(int cycles) { - UINT16 old_gb_divcount = gb_divcount; - gb_divcount += cycles; - if ( TIMEFRQ & 0x04 ) { - UINT16 old_count = old_gb_divcount >> gb_timer_shift; - UINT16 new_count = gb_divcount >> gb_timer_shift; - if ( new_count != old_count ) { - /* this increment is probably not correct when cycles > 1 timer cycle */ - TIMECNT += 1; - if ( TIMECNT == 0x00 ) { - TIMECNT = TIMEMOD; - cpunum_set_input_line( 0, TIM_INT, HOLD_LINE ); - } - } - } -} - -WRITE8_HANDLER ( gbc_io2_w ) -{ - switch( offset ) { - case 0x0D: /* KEY1 - Prepare speed switch */ - cpunum_set_reg( 0, Z80GB_SPEED, data ); - return; - case 0x0F: /* VBK - VRAM bank select */ - gbc_vram_bank = GBC_VRAMMap[ data & 0x01 ]; - memory_set_bankptr( 4, gbc_vram_bank ); - data |= 0xFE; - break; - case 0x16: /* RP - Infrared port */ - break; - case 0x30: /* SVBK - RAM bank select */ - GBC_RAMBank = data & 0x7; - memory_set_bankptr (3, GBC_RAMMap[GBC_RAMBank]); - break; - default: - break; - } - gbc_video_w( offset, data ); -} - -READ8_HANDLER( gbc_io2_r ) { - switch( offset ) { - case 0x0D: /* KEY1 */ - return cpunum_get_reg( 0, Z80GB_SPEED ); - case 0x16: /* RP - Infrared port */ - break; - default: - break; - } - return gb_video_r( offset ); -} - -/**************************************************************************** - - Megaduck routines - - ****************************************************************************/ - -MACHINE_RESET( megaduck ) -{ - /* We may have to add some more stuff here, if not then it can be merged back into gb */ - gb_init(); - - gb_video_init(); -} - -/* - Map megaduck video related area on to regular Gameboy video area - - Different locations of the video registers: - Register GameBoy MegaDuck - LCDC FF40 FF10 (See different bit order below) - STAT FF41 FF11 - SCY FF42 FF12 - SCX FF43 FF13 - LY FF44 FF18 - LYC FF45 FF19 - DMA FF46 FF1A - BGP FF47 FF1B - OBP0 FF48 FF14 - OBP1 FF49 FF15 - WY FF4A FF16 - WX FF4B FF17 - Unused FF4C FF4C (?) - Unused FF4D FF4D (?) - Unused FF4E FF4E (?) - Unused FF4F FF4F (?) - - Different LCDC register - - GameBoy MegaDuck - 0 6 - BG & Window Display : 0 - Off, 1 - On - 1 0 - OBJ Display: 0 - Off, 1 - On - 2 1 - OBJ Size: 0 - 8x8, 1 - 8x16 - 3 2 - BG Tile Map Display: 0 - 9800, 1 - 9C00 - 4 4 - BG & Window Tile Data Select: 0 - 8800, 1 - 8000 - 5 5 - Window Display: 0 - Off, 1 - On - 6 3 - Window Tile Map Display Select: 0 - 9800, 1 - 9C00 - 7 7 - LCD Operation - - **************/ - - READ8_HANDLER( megaduck_video_r ) -{ - UINT8 data; - - if ( (offset & 0x0C) && ((offset & 0x0C) ^ 0x0C) ) { - offset ^= 0x0C; - } - data = gb_video_r( offset ); - if ( offset ) - return data; - return BITSWAP8(data,7,0,5,4,6,3,2,1); -} - -WRITE8_HANDLER ( megaduck_video_w ) -{ - if ( !offset ) { - data = BITSWAP8(data,7,3,5,4,2,1,0,6); - } - if ( (offset & 0x0C) && ((offset & 0x0C) ^ 0x0C) ) { - offset ^= 0x0C; - } - gb_video_w(offset, data ); -} - -/* Map megaduck audio offset to gameboy audio offsets */ - -static UINT8 megaduck_sound_offsets[16] = { 0, 2, 1, 3, 4, 6, 5, 7, 8, 9, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; - -WRITE8_HANDLER( megaduck_sound_w1 ) -{ - gb_sound_w( megaduck_sound_offsets[offset], data ); -} - - READ8_HANDLER( megaduck_sound_r1 ) -{ - return gb_sound_r( megaduck_sound_offsets[offset] ); -} - -WRITE8_HANDLER( megaduck_sound_w2 ) -{ - switch(offset) { - case 0x00: gb_sound_w( 0x10, data ); break; - case 0x01: gb_sound_w( 0x12, data ); break; - case 0x02: gb_sound_w( 0x11, data ); break; - case 0x03: gb_sound_w( 0x13, data ); break; - case 0x04: gb_sound_w( 0x14, data ); break; - case 0x05: gb_sound_w( 0x16, data ); break; - case 0x06: gb_sound_w( 0x15, data ); break; - case 0x07: - case 0x08: - case 0x09: - case 0x0A: - case 0x0B: - case 0x0C: - case 0x0D: - case 0x0E: - case 0x0F: - break; - } -} - -READ8_HANDLER( megaduck_sound_r2 ) -{ - return gb_sound_r(0x10 + megaduck_sound_offsets[offset]); -} - -WRITE8_HANDLER( megaduck_rom_bank_select_type1 ) -{ - if( ROMMask ) - { - ROMBank = data & ROMMask; - - /* Switch banks */ - memory_set_bankptr (1, ROMMap[ROMBank]); - } -} - -WRITE8_HANDLER( megaduck_rom_bank_select_type2 ) -{ - if( ROMMask ) - { - ROMBank = (data << 1) & ROMMask; - - /* Switch banks */ - memory_set_bankptr( 10, ROMMap[ROMBank]); - memory_set_bankptr( 1, ROMMap[ROMBank + 1]); - } -} - -DEVICE_LOAD(megaduck_cart) -{ - int I, filesize; - - for (I = 0; I < MAX_ROMBANK; I++) - ROMMap[I] = NULL; - for (I = 0; I < MAX_RAMBANK; I++) - RAMMap[I] = NULL; - - filesize = image_length(image); - ROMBanks = filesize / 0x4000; - - if ( ( filesize == 0 ) || ( ( filesize % 0x4000 ) != 0 ) ) { - image_seterror( image, IMAGE_ERROR_UNSPECIFIED, "Invalid rom file size" ); - return INIT_FAIL; - } - - /* Claim memory */ - gb_cart = auto_malloc( filesize ); - - /* Read cartridge */ - if (image_fread (image, gb_cart, filesize) != filesize) { - image_seterror( image, IMAGE_ERROR_UNSPECIFIED, "Unable to fully read from file" ); - return INIT_FAIL; - } - - /* Log cart information */ - { - logerror("Cart Information\n"); - logerror("\tRom Banks: %d\n", ROMBanks); - } - - for (I = 0; I < ROMBanks; I++) - { - ROMMap[I] = gb_cart + ( I * 0x4000 ); - } - - /* Build rom bank Mask */ - if (ROMBanks < 3) - ROMMask = 0; - else - { - for (I = 1; I < ROMBanks; I <<= 1) ; - ROMMask = I - 1; - } - - MBCType = MBC_MEGADUCK; - - return INIT_PASS; -} diff --git a/mess/machine/genesis.c b/mess/machine/genesis.c deleted file mode 100644 index 78cc7973c..000000000 --- a/mess/machine/genesis.c +++ /dev/null @@ -1,2360 +0,0 @@ -/* Sega Megadrive / Genesis */ - -/* - -Highlight calculation is wrong - -Horizontal window not supported - -various raster glitches eg road rash road gets corrupted - gunstar heroes - toejam and earl - contra hardcorps - lemmings - -needs serious cleanups - -based on cgfm docs - -no battery ram etc. - -vram fill not done - -io bug? controls don't work in decap attack - -*/ - -#include "driver.h" -#include "includes/genesis.h" -#include "sound/2612intf.h" -#include "sound/sn76496.h" - -static int oldscreenmode; - -typedef struct -{ - UINT8 genesis_vdp_command_pending; - - UINT8 genesis_vdp_cmdmode; - UINT32 genesis_vdp_cmdaddr; - - UINT16* genesis_vdp_vram; - UINT8* genesis_vdp_vram_is_dirty; - - UINT16* genesis_vdp_cram; - UINT16* genesis_vdp_vsram; - UINT8* genesis_vdp_regs; - - UINT8 genesis_vdp_index; - UINT8 genesis_vdp_fill_mode; - - UINT8 dma_transfer_type; - UINT32 dma_transfer_count; - UINT32 dma_transfer_start; - - int irq4_counter; - - UINT8* genesis_vdp_bg_render_buffer; - UINT16* genesis_vdp_sp_render_buffer; - - int sline; - - -} genvdp; - -UINT16 *genesis_cartridge; -UINT16 *genesis_mainram; -UINT8 *genesis_z80ram; - -int genesis_z80_bank_step; -UINT32 genesis_z80_bank_addr; -UINT32 genesis_z80_bank_partial; - -int genesis_z80_is_reset; -int genesis_68k_has_z80_bus; - -static genvdp genesis_vdp; - -static gfx_layout charlayout = -{ - 8,8, - 0x800, - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4,4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 8*8*4 -}; - - -void genesis_vdp_start (genvdp *current_vdp) -{ - int gfx_index=0; - - current_vdp -> genesis_vdp_vram = auto_malloc (0x10000); - current_vdp -> genesis_vdp_vram_is_dirty = auto_malloc (0x800); - current_vdp -> genesis_vdp_cram = auto_malloc (0x100); - current_vdp -> genesis_vdp_vsram= auto_malloc (0x100); - current_vdp -> genesis_vdp_regs = auto_malloc (0x20); - - current_vdp -> genesis_vdp_bg_render_buffer= auto_malloc (320); - current_vdp -> genesis_vdp_sp_render_buffer = auto_malloc (2048); - - - - - - /* reset to some default states */ - current_vdp -> genesis_vdp_command_pending = 0; - current_vdp -> genesis_vdp_cmdmode = 0; - current_vdp -> genesis_vdp_cmdaddr = 0; - - /* find first empty slot to decode gfx */ - for (gfx_index = 0; gfx_index < MAX_GFX_ELEMENTS; gfx_index++) - if (Machine->gfx[gfx_index] == 0) - break; - -// if (gfx_index == MAX_GFX_ELEMENTS) -// return 1; - - /* create the char set (gfx will then be updated dynamically from RAM) */ - Machine->gfx[gfx_index] = allocgfx(&charlayout); - decodegfx(Machine->gfx[gfx_index] , (UINT8 *)¤t_vdp->genesis_vdp_vram, 0, 1); - - /* set the color information */ - Machine->gfx[gfx_index]->colortable = Machine->remapped_colortable; - Machine->gfx[gfx_index]->total_colors = 0x4; - current_vdp -> genesis_vdp_index = gfx_index; - -} - - -void genesis_vdp_draw_scanline (genvdp *current_vdp, int line) -{ - UINT32 *destline; - int i; - mame_bitmap *bitmap = tmpbitmap; - - destline = BITMAP_ADDR32(bitmap, line, 0); - - for (i = 0; i < 320; i++) - { - UINT8 pixel = (UINT16)current_vdp->genesis_vdp_bg_render_buffer[i]; - int r,g,b; - int paldat; - - paldat = genesis_vdp.genesis_vdp_cram[pixel&0x3f]; - - r = (paldat & 0x000e) <<1; - g = (paldat & 0x00e0) >>3; - b = (paldat & 0x0e00) >>7; - - if (pixel & 0x40) - { - r >>=1; - g >>=1; - b >>=1; - } - - if (pixel & 0x80) - { - // r >>=1; - // g >>=1; - // b >>=1; - // r |=0x10; - // g |=0x10; - // b |=0x10 - r <<=1; - g <<=1; - b <<=1; - r&=0x1f; - g&=0x1f; - b&=0x1f; - } - - destline[0] = (r<<(16+3))|(g<<(8+3))|(b<<(0+3)); - - // ; - destline++; - } - - - -} - - -void genesis_vdp_spritebuffer_scanline (genvdp *current_vdp, int line, int reqpri) -{ - const gfx_element *gfx = Machine->gfx[0]; - UINT8 *srcgfx = gfx->gfxdata; - int shadowmode = genesis_vdp.genesis_vdp_regs[0x0c]&0x08; - int sbr = genesis_vdp.genesis_vdp_regs[0x05]<<9; - int spriteno = 0; - UINT16* spritebase = &genesis_vdp.genesis_vdp_vram[sbr>>1]; - -// Index + 0 : ------yy yyyyyyyy -// Index + 2 : ----hhvv -lllllll -// Index + 4 : pccvhnnn nnnnnnnn -// Index + 6 : ------xx xxxxxxxx - - memset(genesis_vdp.genesis_vdp_sp_render_buffer, 0xffff, 1024); - - - while (spriteno < 100) - { - int ypos = spritebase[0] & 0x01ff; - int ysiz =(spritebase[1] & 0x0300)>>8; - int xsiz =(spritebase[1] & 0x0c00)>>10; - int link =(spritebase[1] & 0x007f)>>0; - int tnum =(spritebase[2] & 0x07ff)>>0; - int xflp =(spritebase[2] & 0x0800)>>11; - int yflp =(spritebase[2] & 0x1000)>>12; - int col =(spritebase[2] & 0x6000)>>13; - int pri =(spritebase[2] & 0x8000)>>15; - int xpos =(spritebase[3] & 0x01ff)>>0; - - xsiz++; - ysiz++; - - ypos-=128; - - - if ((line>=ypos) && (line<(ypos+ysiz*8))) - { - int xct; - - if (xpos == 0) - { - // popmessage("xpos0!"); - return; - } - - for (xct = 0; xct < xsiz*8; xct++) - { - int xp, chk; - xp = (xpos)+xct; - - - chk = current_vdp->genesis_vdp_sp_render_buffer[xp]; - - if (chk == 0xffff) - { - - xp-=128; - - if ((xp >=0) && (xp <320)) - { - int dat; int sprline; - int xof; - - sprline = line-ypos; - if (yflp) sprline = (ysiz*8)-sprline-1; - xof = xct; - - if (xflp) xof = (xsiz*8)-xct-1; - - - dat = srcgfx[tnum*64+(xof&7)+((sprline&0x1f)*8)+ (((xof&0x18)>>3)*(ysiz*64)) ]; - - if (dat) - { - if (pri==reqpri) - { - if (!shadowmode) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = (dat & 0x0f)|col<<4; - } - else - { - if (!pri) // low priority sprites in shadow mode - { - int coldat; - coldat = (dat & 0x0f)|col<<4; - - if (coldat == 0x3e) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = current_vdp->genesis_vdp_bg_render_buffer[xp] | 0x80; - } - else if (coldat == 0x3f) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = current_vdp->genesis_vdp_bg_render_buffer[xp] | 0x40; - } - else if ((coldat == 0x0e) || (coldat == 0x1e) || (coldat == 0x2e)) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = coldat; - } - else - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = coldat|0x40; - } - - } - else // high priority sprites in shadow mode - { - int coldat; - coldat = (dat & 0x0f)|col<<4; - - if (coldat == 0x3e) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = current_vdp->genesis_vdp_bg_render_buffer[xp] | 0x80; - } - else if (coldat == 0x3f) - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = current_vdp->genesis_vdp_bg_render_buffer[xp] | 0x40; - } - else - { - current_vdp->genesis_vdp_bg_render_buffer[xp] = coldat; - } - - - } - - } - } - - current_vdp->genesis_vdp_sp_render_buffer[xp+128]=spriteno; - - } - } - } - - } - - } - - if (link==0) - { - return; - } - - - spritebase = &genesis_vdp.genesis_vdp_vram[(sbr>>1)+link*4]; - - spriteno++; - } - -} - -/* this will render a scanline to a buffer using raw pen values -00-3f are normal pens -40-7f are shadow pens -80-bf are highlight pens -c0-ff are unused -*/ - -void genesis_vdp_render_scanline (genvdp *current_vdp, int line) -{ - const gfx_element *gfx = Machine->gfx[0]; - - int _2tileblock; - UINT8 *srcgfx = gfx->gfxdata; - UINT8* renderto ; - int scroll_xsize = genesis_vdp.genesis_vdp_regs[0x10]&0x3; - int scroll_ysize = (genesis_vdp.genesis_vdp_regs[0x10]&0x30)>>4; - - int hscroll_base = genesis_vdp.genesis_vdp_regs[0x0d]<<10; - UINT16 hscroll_line; - UINT16 hscroll_tile; - UINT16 vscroll_cols; - UINT16 vscroll_tile; - - int scrolla_base = genesis_vdp.genesis_vdp_regs[0x02]<<10; - int window_base = genesis_vdp.genesis_vdp_regs[0x03]<<10; - int scrollb_base = genesis_vdp.genesis_vdp_regs[0x04]<<13; - int shadowmode = genesis_vdp.genesis_vdp_regs[0x0c]&0x08; - - int window_size = 32; - int scrwidth = 32; - int bgcol; - - int win_down, win_right; - int win_vpos, win_hpos; - int block_is_not_vwindow; - int block_is_not_hwindow; - - switch (genesis_vdp.genesis_vdp_regs[0x0c]&0x81) - { - case 0x00: // 32 cell - scrwidth=32; - window_size=32; - break; - case 0x01: // 40 cell corrupted - scrwidth=40; - window_size=64; - break; - case 0x80: // illegal! - scrwidth=40; - window_size=64; - break; - case 0x81: // 40 cell - scrwidth=40; - window_size=64; - - break; - - } - - - switch (scroll_xsize) - { - case 0:scroll_xsize = 32;break; - case 1:scroll_xsize = 64;break; - case 2:scroll_xsize = 64;break; - case 3:scroll_xsize = 128;break; - } - - switch (scroll_ysize) - { - case 0:scroll_ysize = 32;break; - case 1:scroll_ysize = 64;break; - case 2:scroll_ysize = 64;break; - case 3:scroll_ysize = 128;break; - } - - /* Backdrop */ - bgcol = genesis_vdp.genesis_vdp_regs[0x07]&0x3f; - - if (shadowmode) bgcol |= 0x40; - - memset(genesis_vdp.genesis_vdp_bg_render_buffer, bgcol, 320); - - if (!(genesis_vdp.genesis_vdp_regs[0x01]&0x40)) return; - - /* Scroll B Low */ - renderto = current_vdp->genesis_vdp_bg_render_buffer; - hscroll_line=0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x03) // linescroll mode - { - case 0: // full screen scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1]; - break; - case 1: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + (line *2)]; - break; - case 2: // cell scroll -// hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + ((line>>4) *2)]; - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + ((line&0xf8) *2)]; - - break; - case 3: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + (line *2)]; - break; - } - - hscroll_tile = hscroll_line>>3; - hscroll_line %= 8; - hscroll_tile &= scroll_xsize-1; - - for (_2tileblock = 0; _2tileblock < scrwidth; _2tileblock++) - { - int tiledat; - int tileno,flipx,flipy,col,pri; - UINT8* tileloc; - int x; - - vscroll_cols = 0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x04) /* vscroll for this block */ - { - case 0x00: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+1]+line; - break; - case 0x04: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+1+((_2tileblock>>1)*2)]+line; - break; - } - - vscroll_tile = vscroll_cols >>3; - vscroll_cols %= 8; - vscroll_tile &= scroll_ysize-1; - - - /* first tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrollb_base/2)+ ((_2tileblock+hscroll_tile)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (!pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=hscroll_line; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - dat|=(col<<4); - if (shadowmode) dat|=0x40; - *renderto = dat; - } - x++; - renderto++; - } - } - else - { - renderto+= 8-hscroll_line; - } - - /* second tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrollb_base/2)+ ((_2tileblock+hscroll_tile+1)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (!pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - x = 0; - while (xgenesis_vdp_bg_render_buffer; - hscroll_line=0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x03) // linescroll mode - { - case 0: // full screen scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)]; - break; - case 1: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + (line *2)]; - break; - case 2: // cell scroll -// hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + ((line>>4) *2)]; - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + ((line&0xf8) *2)]; - break; - case 3: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + (line *2)]; - break; - } - - hscroll_tile = hscroll_line>>3; - hscroll_line %= 8; - hscroll_tile &= scroll_xsize-1; - - for (_2tileblock = 0; _2tileblock < scrwidth; _2tileblock++) - { - int tiledat; - int tileno,flipx,flipy,col,pri; - UINT8* tileloc; - int x; - - block_is_not_vwindow = ( - ((!win_down) && (line>=win_vpos)) || - (( win_down) && (line< win_vpos)) - ); - - block_is_not_hwindow = ( - ((!win_right) && (_2tileblock>=win_hpos)) || - (( win_right) && (_2tileblock< win_hpos)) - ); - -// if ((line<=windowtpos) && (line>=windowtpos)) - if (block_is_not_vwindow && block_is_not_hwindow) - { - vscroll_cols = 0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x04) /* vscroll for this block */ - { - case 0x00: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0]+line; - break; - case 0x04: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+((_2tileblock>>1)*2)]+line; - break; - } - vscroll_tile = vscroll_cols >>3; - vscroll_cols %= 8; - vscroll_tile &= scroll_ysize-1; - - - /* first tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrolla_base/2)+ ((_2tileblock+hscroll_tile)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (!pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=hscroll_line; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - dat|=(col<<4); - if (shadowmode) dat|=0x40; - *renderto = dat; - } - x++; - renderto++; - } - } - else - { - renderto+= 8-hscroll_line; - } - - /* second tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrolla_base/2)+ ((_2tileblock+hscroll_tile+1)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (!pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - x = 0; - while (x>3; - vscroll_cols %= 8; - - /* only tile (window has no scrolls) */ - tiledat = genesis_vdp.genesis_vdp_vram[(window_base/2)+ _2tileblock + (vscroll_tile*window_size)]; - pri = (tiledat&0x8000)>>15; - - - if (!pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=0; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - dat|=(col<<4); - if (shadowmode) dat|=0x40; - *renderto = dat; - } - x++; - renderto++; - } - } - else - { - renderto+= 8; - } - -// x=0; -// while (x<8) -// { -// *renderto = rand()&0x3f; -// x++;renderto++; -// } - } - } - - genesis_vdp_spritebuffer_scanline(current_vdp, line, 0); - - /* Scroll B High */ - renderto = current_vdp->genesis_vdp_bg_render_buffer; - hscroll_line=0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x03) // linescroll mode - { - case 0: // full screen scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1]; - break; - case 1: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + (line *2)]; - break; - case 2: // cell scroll -// hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + ((line>>4) *2)]; - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + ((line&0xf8) *2)]; - break; - case 3: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)+1 + (line *2)]; - break; - } - - hscroll_tile = hscroll_line>>3; - hscroll_line %= 8; - hscroll_tile &= scroll_xsize-1; - - for (_2tileblock = 0; _2tileblock < scrwidth; _2tileblock++) - { - int tiledat; - int tileno,flipx,flipy,col,pri; - UINT8* tileloc; - int x; - - vscroll_cols = 0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x04) /* vscroll for this block */ - { - case 0x00: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+1]+line; - break; - case 0x04: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+1+((_2tileblock>>1)*2)]+line; - break; - } - - vscroll_tile = vscroll_cols >>3; - vscroll_cols %= 8; - vscroll_tile &= scroll_ysize-1; - - - /* first tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrollb_base/2)+ ((_2tileblock+hscroll_tile)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=hscroll_line; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - *renderto = dat|(col<<4); - } - else if (shadowmode) - { - *renderto &=0x3f; - } - x++; - renderto++; - } - } - else - { - renderto+= 8-hscroll_line; - } - - /* second tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrollb_base/2)+ ((_2tileblock+hscroll_tile+1)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - x = 0; - while (xgenesis_vdp_bg_render_buffer; - hscroll_line=0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x03) // linescroll mode - { - case 0: // full screen scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1)]; - break; - case 1: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + (line *2)]; - break; - case 2: // cell scroll -// hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + ((line>>4) *2)]; - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + ((line&0xf8) *2)]; - break; - case 3: // line scroll - hscroll_line = -genesis_vdp.genesis_vdp_vram[(hscroll_base>>1) + (line *2)]; - break; - } - - hscroll_tile = hscroll_line>>3; - hscroll_line %= 8; - hscroll_tile &= scroll_xsize-1; - - for (_2tileblock = 0; _2tileblock < scrwidth; _2tileblock++) - { - int tiledat; - int tileno,flipx,flipy,col,pri; - UINT8* tileloc; - int x; - block_is_not_vwindow = ( - ((!win_down) && (line>=win_vpos)) || - (( win_down) && (line< win_vpos)) - ); - - block_is_not_hwindow = ( - ((!win_right) && (_2tileblock>=win_hpos)) || - (( win_right) && (_2tileblock< win_hpos)) - ); - - // if () block_is_not_vwindow = 0; -// if ((line<=windowtpos) && (line>=windowtpos)) - if (block_is_not_vwindow && block_is_not_hwindow) - { - - vscroll_cols = 0; - switch (genesis_vdp.genesis_vdp_regs[0x0b]&0x04) /* vscroll for this block */ - { - case 0x00: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0]+line; - break; - case 0x04: - vscroll_cols = genesis_vdp.genesis_vdp_vsram[0+((_2tileblock>>1)*2)]+line; - break; - } - - vscroll_tile = vscroll_cols >>3; - vscroll_cols %= 8; - vscroll_tile &= scroll_ysize-1; - - - /* first tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrolla_base/2)+ ((_2tileblock+hscroll_tile)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=hscroll_line; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - *renderto = dat|(col<<4); - } - else if (shadowmode) - { - *renderto &=0x3f; - } x++; - renderto++; - } - } - else - { - renderto+= 8-hscroll_line; - } - - /* second tile */ - tiledat = genesis_vdp.genesis_vdp_vram[(scrolla_base/2)+ ((_2tileblock+hscroll_tile+1)&(scroll_xsize-1)) + (((vscroll_tile&(scroll_ysize-1))*scroll_xsize))]; - pri = (tiledat&0x8000)>>15; - - if (pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - x = 0; - while (x>3; - vscroll_cols %= 8; - - /* only tile (window has no scrolls) */ - tiledat = genesis_vdp.genesis_vdp_vram[(window_base/2)+ _2tileblock + (vscroll_tile*window_size)]; - pri = (tiledat&0x8000)>>15; - - - if (pri) - { - tileno = (tiledat&0x07ff);flipx = (tiledat&0x0800)>>11;flipy = (tiledat&0x1000)>>12;col = (tiledat&0x6000)>>13; - tileloc = srcgfx + tileno*64 + (flipy?7-vscroll_cols:vscroll_cols)*8; - - x=0; - while (x<8) - { - int dat; - dat = tileloc[flipx?7-x:x]; - if (dat) - { - *renderto = dat|(col<<4); - } - else if (shadowmode) - { - *renderto &=0x3f; - } - x++; - renderto++; - } - } - else - { - renderto+= 8; - } - -// x=0; -// while (x<8) -// { -// *renderto = rand()&0x3f; -// x++;renderto++; -// } - } - } - - genesis_vdp_spritebuffer_scanline(current_vdp, line, 1); - - -} - - -VIDEO_START(genesis) -{ - genesis_vdp_start (&genesis_vdp); - oldscreenmode = 0xff; // driver specific - return video_start_generic_bitmapped(machine); -} - -VIDEO_UPDATE(genesis) -{ -// popmessage("rasterline %04x %i", genesis_vdp.genesis_vdp_regs[0x0a], genesis_vdp.genesis_vdp_regs[0x0a]); - - -/* - popmessage("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x r%02x %02x %02x %02x %02x %02x", - - genesis_vdp.genesis_vdp_regs[0x00], - genesis_vdp.genesis_vdp_regs[0x01], - genesis_vdp.genesis_vdp_regs[0x02], - genesis_vdp.genesis_vdp_regs[0x03], - genesis_vdp.genesis_vdp_regs[0x04], - genesis_vdp.genesis_vdp_regs[0x05], - genesis_vdp.genesis_vdp_regs[0x06], - genesis_vdp.genesis_vdp_regs[0x07], - genesis_vdp.genesis_vdp_regs[0x08], - genesis_vdp.genesis_vdp_regs[0x09], - genesis_vdp.genesis_vdp_regs[0x0a], - genesis_vdp.genesis_vdp_regs[0x0b], - genesis_vdp.genesis_vdp_regs[0x0c], - genesis_vdp.genesis_vdp_regs[0x0d], - genesis_vdp.genesis_vdp_regs[0x0e], - genesis_vdp.genesis_vdp_regs[0x0f] - ); -*/ - -// popmessage("%02x %02x",genesis_vdp.genesis_vdp_regs[0x11], genesis_vdp.genesis_vdp_regs[0x12]); - - int i; - for(i=0;i<0x40;i++) - { - int r,g,b; - int paldat; - - paldat = genesis_vdp.genesis_vdp_cram[i]; - - r = (paldat & 0x000e); - g = (paldat & 0x00e0) >>4; - b = (paldat & 0x0e00) >>8; - - palette_set_color(machine, i,r<<4,g<<4,b<<4); - - } - - video_update_generic_bitmapped(machine, screen, bitmap, cliprect); - return 0; -} - - -READ16_HANDLER( genesis_68000_z80_read ) -{ - offset <<= 1; - - if (!genesis_68k_has_z80_bus) - { - logerror("Attempting to read Z80 without bus!\n"); - return 0x00; - } - - if ((offset >= 0) && (offset <= 0x3fff)) - { - offset &=0x1fff; // due to mirror - // logerror("Read Mask %04x from Z80 offset %04x\n", mem_mask, offset); - return memory_region(REGION_CPU2)[offset^1] | (memory_region(REGION_CPU2)[offset] <<8); - - } - else if ((offset>=0x4000) && (offset<=0x5fff)) - { -// logerror("Unhandled 68k->Z80 YM read\n"); - switch (offset & 3) - { - case 0: - if (ACCESSING_MSB) return YM2612_status_port_0_A_r(0) << 8; - else return YM2612_read_port_0_r(0); - break; - case 2: - if (ACCESSING_MSB) return YM2612_status_port_0_B_r(0) << 8; - else return 0; - break; - } - - } - else - { - logerror("Unhandled 68k->Z80 read\n"); - } - - return 0x00; -} - -WRITE16_HANDLER( genesis_68000_z80_write ) -{ - offset <<= 1; - - if (!genesis_68k_has_z80_bus) - { - /* james pond 2 attempts this?, should it? */ - // logerror("Attempting to write Z80 without bus!\n"); - return; - } - - if ((offset >= 0) && (offset <= 0x3fff)) - { - offset &=0x1fff; // due to mirror - -// logerror("Write Data %04x Mask %04x to Z80 offset %04x\n", data, mem_mask, offset); - - if ((ACCESSING_LSB) && (ACCESSING_MSB)) - { - // logerror("word access wrote to z80!\n"); - // ignore LSB - memory_region(REGION_CPU2)[offset] = (data & 0xff00)>>8; - - return; - } - - if (ACCESSING_LSB) - memory_region(REGION_CPU2)[offset^1] = data & 0x00ff; - - if (ACCESSING_MSB) - memory_region(REGION_CPU2)[offset] = (data & 0xff00)>>8; - } - else if ((offset>=0x4000) && (offset<=0x5fff)) - { - switch (offset & 3) - { - case 0: - if (ACCESSING_MSB) YM2612_control_port_0_A_w (0, (data >> 8) & 0xff); - else YM2612_data_port_0_A_w (0, (data >> 0) & 0xff); - break; - case 2: - if (ACCESSING_MSB) YM2612_control_port_0_B_w (0, (data >> 8) & 0xff); - else YM2612_data_port_0_B_w (0, (data >> 0) & 0xff); - break; - } - } - else - { - logerror("Unhandled 68k->Z80 write\n"); - } -} - -READ16_HANDLER( genesis_68000_z80_busreq_r ) -{ -// logerror("genesis_68000_z80_busreq_r\n"); - if ((genesis_68k_has_z80_bus) && (!genesis_z80_is_reset)) return 0x0000; - else return 0x0100; - -} - -WRITE16_HANDLER( genesis_68000_z80_busreq_w ) -{ -// logerror("genesis_68000_z80_busreq_w %04x",data); - // write 0100 requests z80 bus (z80 paused) - if (data == 0x0000) - { - cpunum_set_input_line(1, INPUT_LINE_HALT, CLEAR_LINE); - genesis_68k_has_z80_bus = 0; -// logerror("-- z80 running %04x\n",data); - - } - - if (data == 0x0100) - { - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - genesis_68k_has_z80_bus = 1; -// logerror("-- z80 stopped %04x\n",data); - - - } - -} - -WRITE16_HANDLER ( genesis_68000_z80_reset_w ) -{ - //logerror("genesis_68000_z80_reset_w %04x\n",data); - // write 0 set reset line? (pause) - // write 1 clear reset line? (run) - - if (data == 0x0000) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - genesis_z80_is_reset = 1; - } - - if (data == 0x0100) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); - genesis_z80_is_reset = 0; - } -} - -static UINT8 genesis_io_ram[0x20]; - -void genesis_init_io (void) -{ - - genesis_io_ram[0x00] = (genesis_region & 0xc0)| (0x00 & 0x3f); // region / pal / segacd etc. important! - genesis_io_ram[0x01] = 0x7f; - genesis_io_ram[0x02] = 0x7f; - genesis_io_ram[0x03] = 0x7f; - genesis_io_ram[0x04] = 0x00; - genesis_io_ram[0x05] = 0x00; - genesis_io_ram[0x06] = 0x00; - genesis_io_ram[0x07] = 0xff; - genesis_io_ram[0x08] = 0x00; - genesis_io_ram[0x09] = 0x00; - genesis_io_ram[0x0a] = 0xff; - genesis_io_ram[0x0b] = 0x00; - genesis_io_ram[0x0c] = 0x00; - genesis_io_ram[0x0d] = 0xfb; - genesis_io_ram[0x0e] = 0x00; - genesis_io_ram[0x0f] = 0x00; - - - /* - $A10001 = $80 (Bits 7,6,5 depend on the domestic/export, PAL/NTSC jumpers and having a Sega CD or not) - $A10003 = $7F - $A10005 = $7F - $A10007 = $7F - $A10009 = $00 - $A1000B = $00 - $A1000D = $00 - $A1000F = $FF - $A10011 = $00 - $A10013 = $00 - $A10015 = $FF - $A10017 = $00 - $A10019 = $00 - $A1001B = $FB - $A1001D = $00 - $A1001F = $00 -*/ - -} - -READ16_HANDLER ( genesis_68000_io_r ) -{ - int paddata,p; - int inlines, outlines; - -//logerror("I/O read .. offset %02x data %02x\n",offset,genesis_io_ram[offset]); - - switch (offset) - { - case 0x00: // version register - return genesis_io_ram[offset]; - case 0x01: -// logerror("I/O Data A read \n"); - -/* - When TH=0 When TH=1 - D6 : (TH) 0 1 - D5 : (TR) Start button Button C - D4 : (TL) Button A Button B - D3 : (D3) 0 D-pad Right - D2 : (D2) 0 D-pad Left - D1 : (D1) D-pad Down D-pad Down - D0 : (D0) D-pad Up D-pad Up - -*/ - - /* process pad input for std 3 button pad */ - - - p = readinputport(0); - if (genesis_io_ram[offset]&0x40) - { - paddata = ((p&0x0f)>>0) | ((p&0xc0)>>2) | 0x40; - } - else - { - paddata = ((p&0x03)>>0) | ((p&0x30)>>0) | 0x00; - } - - inlines = (genesis_io_ram[0x04]^0xff)&0x7f; - outlines = (genesis_io_ram[0x04] | 0x80); - -// logerror ("ioram %02x inlines %02x paddata %02x outlines %02x othdata %02x\n",genesis_io_ram[0x04], inlines, paddata, outlines, genesis_io_ram[0x01]); - - - - p = (paddata & inlines) | (genesis_io_ram[0x01] & outlines); - - return p | p << 8; - - - return genesis_io_ram[offset]; - case 0x02: -// logerror("I/O Data B read \n"); - - p = readinputport(1); - if (genesis_io_ram[offset]&0x40) - { - paddata = ((p&0x0f)>>0) | ((p&0xc0)>>2) | 0x40; - } - else - { - paddata = ((p&0x03)>>0) | ((p&0x30)>>0) | 0x00; - } - - inlines = (genesis_io_ram[0x05]^0xff)&0x7f; - outlines = (genesis_io_ram[0x05] | 0x80); - - - p = (paddata & inlines) | (genesis_io_ram[0x02] & outlines); - - return p | p <<8; - - case 0x03: -// logerror("I/O Data C read \n"); - return genesis_io_ram[offset]; - - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case 0x09: - case 0x0a: - case 0x0b: - case 0x0c: - case 0x0d: - case 0x0e: - case 0x0f: - default: - logerror("Unhandled I/O read \n"); - return genesis_io_ram[offset]; - - } - - return genesis_io_ram[offset]; - -/* - D7 : Console is 1= Export (USA, Europe, etc.) 0= Domestic (Japan) - D6 : Video type is 1= PAL, 0= NTSC - D5 : Sega CD unit is 1= not present, 0= connected. - D4 : Unused (always returns zero) - D3 : Bit 3 of version number - D2 : Bit 2 of version number - D1 : Bit 1 of version number - D0 : Bit 0 of version number - */ - - -// return 0x30; -// return mame_rand(machine); -// return 0xff; -} - -/* - - The I/O chip is mapped to $A10000-$A1001F in the 68000/VDP/Z80 banked address space. - It is normally read and written in byte units at odd addresses. The chip gets /LWR only, - so writing to even addresses has no effect. Reading even addresses returns the same data - ou'd get from an odd address. If a word-sized write is done, the LSB is sent to the I/O chip - and the MSB is ignored. - - */ - -/* - -$A10001 Version -$A10003 Port A data -$A10005 Port B data -$A10007 Port C data -$A10009 Port A control -$A1000B Port B control -$A1000D Port C control -$A1000F Port A TxData -$A10011 Port A RxData -$A10013 Port A serial control -$A10015 Port B TxData -$A10017 Port B RxData -$A10019 Port B serial control -$A1001B Port C TxData -$A1001D Port C RxData -$A1001F Port C serial contro - -*/ - -WRITE16_HANDLER ( genesis_68000_io_w ) -{ - -// logerror("I/O write offset %02x data %04x\n",offset,data); - - switch (offset) - { - case 0x00: // Version (read only?) - logerror("attempted write to version register?!\n"); - break; - case 0x01: // Port A data -// logerror("write to data port A with control register A %02x step1 %02x step2 %02x\n", genesis_io_ram[0x04], (genesis_io_ram[0x01] & !((genesis_io_ram[0x04]&0x7f)|0x80)), (data & ((genesis_io_ram[0x04]&0x7f)|0x80)) ); - genesis_io_ram[0x01] = (genesis_io_ram[0x01] & ((genesis_io_ram[0x04]^0xff)|0x80)) | (data & ((genesis_io_ram[0x04]&0x7f)|0x80)); - break; - case 0x02: // Port B data -// logerror("write to data port B with control register B %02x\n", genesis_io_ram[0x05]); - genesis_io_ram[0x02] = (genesis_io_ram[0x02] & ((genesis_io_ram[0x05]^0xff)|0x80)) | (data & ((genesis_io_ram[0x05]&0x7f)|0x80)); - break; - case 0x03: // Port C data -// logerror("write to data port C with control register C %02x\n", genesis_io_ram[0x06]); - genesis_io_ram[0x03] = (genesis_io_ram[0x03] & ((genesis_io_ram[0x06]^0xff)|0x80)) | (data & ((genesis_io_ram[0x06]&0x7f)|0x80)); - break; - case 0x04: // Port A control - genesis_io_ram[offset]=data; - break; - case 0x05: // Port B control - genesis_io_ram[offset]=data; - break; - case 0x06: // Port C control - genesis_io_ram[offset]=data; - break; - - /* unhandled */ - case 0x07: - case 0x08: - case 0x09: - case 0x0a: - case 0x0b: - case 0x0c: - case 0x0d: - case 0x0e: - case 0x0f: - default: - genesis_io_ram[offset]=data; - logerror("unhandled IO write (offset %02x data %02x)\n",offset,data); - break; - } -} - -UINT16 genesis_vdp_data_read ( genvdp *current_vdp ) -{ -// logerror("Read VDP Data Port\n"); - /* clear command pending flag */ - UINT16 retdata; - - retdata = 0; -// return 0; - - current_vdp -> genesis_vdp_command_pending = 0; - - switch ((current_vdp -> genesis_vdp_cmdmode)&0xf) - { - case 0x00:// VRAM Read - retdata = current_vdp -> genesis_vdp_vram[((current_vdp -> genesis_vdp_cmdaddr)&0xffff)>>1]; - break; - case 0x04: // VSRAM Read - retdata = current_vdp -> genesis_vdp_vsram[((current_vdp -> genesis_vdp_cmdaddr)&0x7f)>>1]; - break; - case 0x08: // CRAM Read - retdata = current_vdp -> genesis_vdp_cram[((current_vdp -> genesis_vdp_cmdaddr)&0x7f)>>1]; - break; - - default: - logerror("illegal VDP data port read\n"); - } - current_vdp -> genesis_vdp_cmdaddr += current_vdp -> genesis_vdp_regs[0x0f]; - - return retdata; -} - -UINT16 genesis_vdp_control_read ( genvdp *current_vdp ) -{ - int retvalue; - //logerror("Read VDP Control Port (Status Register)\n"); - /* clear command pending flag */ - current_vdp -> genesis_vdp_command_pending = 0; - -/* - d15 - Always 0 - d14 - Always 0 - d13 - Always 1 - d12 - Always 1 - d11 - Always 0 - d10 - Always 1 - d9 - FIFO Empty - d8 - FIFO Full - d7 - Vertical interrupt pending - d6 - Sprite overflow on current scan line - d5 - Sprite collision - d4 - Odd frame - d3 - Vertical blanking - d2 - Horizontal blanking - d1 - DMA in progress - d0 - PAL mode flag - */ - retvalue = 0x3400; // fixed bits - - if (current_vdp->sline>=224) retvalue |= 0x0008; - if (current_vdp->sline>=224) retvalue |= 0x0080; - - if (cpu_gethorzbeampos() > 0xc0) retvalue |= 0x0004; // ?? - if (!genesis_is_ntsc) retvalue |= 0x0001; - - - - - return retvalue; - -// return mame_rand(machine); -} - -UINT16 genesis_vdp_hvcounter_read ( genvdp *current_vdp ) -{ - int vcnt = current_vdp->sline; - -// vcnt -=1; - -// if (vcnt > 0xe0) logerror("HV read %04x\n",vcnt); - - if (vcnt>0xea) vcnt -=5; - - - -// logerror("Read from HV Counters\n"); - return (((vcnt))&0xff)<<8|(cpu_gethorzbeampos()&0xff); -} - -UINT16 genesis_vdp_read ( genvdp *current_vdp, offs_t offset, UINT16 mem_mask ) -{ - UINT16 retdata; - - retdata = 0x00; - -// logerror("Genesis VDP Read %06x, %04x\n", offset, mem_mask); - - - - switch (offset) - { - case 0x00: // Data Port - case 0x02: // Data Port (mirror) - retdata = genesis_vdp_data_read(&genesis_vdp); - break; - - case 0x04: // Control Port (Status Register) - case 0x06: // Control Port (Status Register) (mirror) - retdata = genesis_vdp_control_read(&genesis_vdp); - break; - - case 0x08: // HV Counters - case 0x0a: // HV Counters (mirror) - case 0x0c: // HV Counters (mirror) - case 0x0e: // HV Counters (mirror) - retdata = genesis_vdp_hvcounter_read(&genesis_vdp); - break; - - case 0x10: // SN76489 PSG - case 0x12: // SN76489 PSG (mirror) - case 0x14: // SN76489 PSG (mirror) - case 0x16: // SN76489 PSG (mirror) - logerror("Read from SN76489 PSG (machine lockup!)\n"); - retdata = 0x00; - break; - - case 0x18: // nothing - case 0x1a: // nothing - case 0x1c: // nothing - case 0x1e: // nothing - logerror("Read from unused VDP addresses\n"); break; - retdata = 0x00; - break; - - } - return retdata; -} - -void genesis_vdp_data_write ( genvdp *current_vdp, UINT16 data ) -{ -// logerror("Genesis VDP DATA Write DATA: %04x CMDMODE: %02x OFFSET: %06x INC %02x\n", data, current_vdp -> genesis_vdp_cmdmode, current_vdp -> genesis_vdp_cmdaddr, current_vdp -> genesis_vdp_regs[0x0f] ); - /* clear command pending flag */ - current_vdp -> genesis_vdp_command_pending = 0; - - /* handle DMA fill .. note i don't think some of this belongs here .. we should call set up dma again? - wrong anyway .. see cgfm docs */ - if (current_vdp -> genesis_vdp_fill_mode == 1) - { - int i; - - current_vdp -> genesis_vdp_fill_mode = 0; - - current_vdp -> dma_transfer_count = - (current_vdp -> genesis_vdp_regs[0x14] << 8) | - (current_vdp -> genesis_vdp_regs[0x13] << 0); - - logerror("fill addr %04x data %04x count %04x\n", current_vdp -> genesis_vdp_cmdaddr, data, current_vdp -> dma_transfer_count); - - for (i = 0; i < current_vdp -> dma_transfer_count;i++) - { - current_vdp -> genesis_vdp_vram[((current_vdp -> genesis_vdp_cmdaddr)&0xffff)>>1]=data; - current_vdp -> genesis_vdp_vram_is_dirty [(((current_vdp -> genesis_vdp_cmdaddr)&0xffff)>>1)>>4]=1; - current_vdp -> genesis_vdp_cmdaddr += current_vdp -> genesis_vdp_regs[0x0f]; - } - - - return; - - - } - - switch ((current_vdp -> genesis_vdp_cmdmode)&0xf) - { - case 0x1: // VRAM Write - if (current_vdp -> genesis_vdp_cmdaddr & 1) data = ((data & 0xff00) >> 8)| ((data & 0x00ff) << 8); - current_vdp -> genesis_vdp_vram[((current_vdp -> genesis_vdp_cmdaddr)&0xffff)>>1]=data; - current_vdp -> genesis_vdp_vram_is_dirty [(((current_vdp -> genesis_vdp_cmdaddr)&0xffff)>>1)>>4]=1; - break; - case 0x3: // CRAM Write - current_vdp -> genesis_vdp_cram[((current_vdp -> genesis_vdp_cmdaddr)&0x7f)>>1]=data; - break; - case 0x5: // VSRAM Write - current_vdp -> genesis_vdp_vsram[((current_vdp -> genesis_vdp_cmdaddr)&0x7f)>>1]=data; - break; - default: - break; - } - - current_vdp -> genesis_vdp_cmdaddr += current_vdp -> genesis_vdp_regs[0x0f]; - -} - - -void genesis_vdp_set_register ( genvdp *current_vdp, UINT16 data ) -{ - int reg, val; - - reg = (data & 0x1f00) >> 8; - val = (data & 0x00ff); - - current_vdp -> genesis_vdp_regs[reg]=val; - -// logerror("Genesis VDP Register %02x set to %02x\n", reg, current_vdp -> genesis_vdp_regs[reg]); - - /* clear address (maybe?) + mode flags */ - current_vdp -> genesis_vdp_cmdmode = 0; - current_vdp -> genesis_vdp_cmdaddr = 0; - - - -} - -/* - 1st write - CD1 CD0 A13 A12 A11 A10 A09 A08 (D31-D24) - A07 A06 A05 A04 A03 A02 A01 A00 (D23-D16) - - 2nd write - ? ? ? ? ? ? ? ? (D15-D8) - CD5 CD4 CD3 CD2 ? ? A15 A14 (D7-D0) - -*/ - -void what_mode ( genvdp *current_vdp ) -{ -/* - 000000b : VRAM read - 000001b : VRAM write - 000011b : CRAM write - 000100b : VSRAM read - 000101b : VSRAM write - 001000b : CRAM read - - 100001b : 68k -> VRAM DMA - 100011b : 68k -> CRAM DMA - 100101b : 68k -> VSRAM DMA - - #21: S08 S07 S06 S05 S04 S03 S02 S01 - #22: S16 S15 S14 S13 S12 S11 S10 S09 - #23: 0 S23 S22 S21 S20 S19 S18 S17 - - - 100001b : VRAM Fill?! - - #19: L07 L06 L05 L04 L03 L02 L01 L00 - #20: L15 L14 L13 L12 L11 L10 L08 L08 - The address bits in registers 21, 22, 23 are ignored: - #21: ? ? ? ? ? ? ? ? - #22: ? ? ? ? ? ? ? ? - #23: 1 0 ? ? ? ? ? ? - - - 110000b : VRAM Copy - - #19: L07 L06 L05 L04 L03 L02 L01 L00 - #20: L15 L14 L13 L12 L11 L10 L08 L08 - The address bits in register 23 are ignored. - Registers 21, 22 specify the source address in VRAM: - #21: S07 S06 S05 S04 S03 S02 S01 S00 - #22: S15 S14 S13 S12 S11 S10 S09 S08 - #23: 1 1 ? ? ? ? ? ? - -*/ -} - -void genesis_vdp_do_dma ( genvdp *current_vdp ) -{ - UINT16 readdata; - UINT32 sourceaddr; - - int count; - - - if (!current_vdp -> dma_transfer_type) - return; - - count = current_vdp -> dma_transfer_count; - - do { - sourceaddr = current_vdp -> dma_transfer_start; - - readdata = 0x88; - - if ((sourceaddr >=0) && (sourceaddr <=0x3fffff)) - { - // read from rom - //logerror("DMA FROM ROM!\n"); - readdata = ((UINT16*)memory_region(REGION_CPU1))[sourceaddr>>1]; - } - - if ((sourceaddr >=0xe00000) && (sourceaddr <=0xffffff)) - { - sourceaddr &= 0xffff; - readdata = genesis_mainram[sourceaddr>>1]; - // read from ram - } - - switch ( current_vdp -> dma_transfer_type ) - { - case 0x01: - if (current_vdp -> genesis_vdp_cmdaddr & 1) readdata = ((readdata & 0xff00) >> 8)| ((readdata & 0x00ff) << 8); - current_vdp -> genesis_vdp_vram[(current_vdp -> genesis_vdp_cmdaddr&0xffff) >>1] = readdata; - current_vdp -> genesis_vdp_vram_is_dirty[((current_vdp -> genesis_vdp_cmdaddr&0xffff) >>1) >>4] = 1; - break; - - case 0x03: - if (current_vdp -> genesis_vdp_cmdaddr > 0x7f) - { - current_vdp -> dma_transfer_type = 0; - return; // abandon transfer - } - if (current_vdp -> genesis_vdp_cmdaddr & 1) readdata = ((readdata & 0xff00) >> 8)| ((readdata & 0x00ff) << 8); - current_vdp -> genesis_vdp_cram[(current_vdp -> genesis_vdp_cmdaddr&0x7f) >>1] = readdata; - break; - - case 0x05: - if (current_vdp -> genesis_vdp_cmdaddr > 0x7f) - { - current_vdp -> dma_transfer_type = 0; - return; // abandon transfer - } - if (current_vdp -> genesis_vdp_cmdaddr & 1) readdata = ((readdata & 0xff00) >> 8)| ((readdata & 0x00ff) << 8); - current_vdp -> genesis_vdp_vsram[(current_vdp -> genesis_vdp_cmdaddr&0x7f) >>1] = readdata; - break; - } - - - current_vdp -> dma_transfer_count--; - current_vdp -> dma_transfer_start+=2; - current_vdp -> genesis_vdp_cmdaddr += current_vdp -> genesis_vdp_regs[0x0f]; - - /* wrap transfer address */ - if (current_vdp -> dma_transfer_start >= 0xffffff) current_vdp -> dma_transfer_start = 0xe00000; - - } while (--count); - - - -} - -/* - - 110000b : VRAM Copy - - #19: L07 L06 L05 L04 L03 L02 L01 L00 - #20: L15 L14 L13 L12 L11 L10 L08 L08 - The address bits in register 23 are ignored. - Registers 21, 22 specify the source address in VRAM: - #21: S07 S06 S05 S04 S03 S02 S01 S00 - #22: S15 S14 S13 S12 S11 S10 S09 S08 - #23: 1 1 ? ? ? ? ? ? - - */ - -void genesis_68k_set_vram_copy ( genvdp *current_vdp ) -{ - int count; - int readdata; - int sourceaddr; - - current_vdp -> dma_transfer_start = - (current_vdp -> genesis_vdp_regs[0x16] << 8) | - (current_vdp -> genesis_vdp_regs[0x15] << 0); - - current_vdp -> dma_transfer_count = - (current_vdp -> genesis_vdp_regs[0x14] << 8) | - (current_vdp -> genesis_vdp_regs[0x13] << 0); - - - count = current_vdp -> dma_transfer_count; - - do { - sourceaddr = current_vdp -> dma_transfer_start; - - readdata = 0x88; - - readdata = current_vdp -> genesis_vdp_vram[(sourceaddr&0xffff) >>1]; - - current_vdp -> genesis_vdp_vram[(current_vdp -> genesis_vdp_cmdaddr&0xffff) >>1] = readdata; - current_vdp -> genesis_vdp_vram_is_dirty[((current_vdp -> genesis_vdp_cmdaddr&0xffff) >>1) >>4] = 1; - - current_vdp -> genesis_vdp_cmdaddr += current_vdp -> genesis_vdp_regs[0x0f]; - current_vdp -> dma_transfer_start++; - - } while (--count); - - -} - -void genesis_68k_xram_dma_set ( genvdp *current_vdp ) -{ - - current_vdp -> dma_transfer_start = - (current_vdp -> genesis_vdp_regs[0x17] << 16) | - (current_vdp -> genesis_vdp_regs[0x16] << 8) | - (current_vdp -> genesis_vdp_regs[0x15] << 0); - - current_vdp -> dma_transfer_count = - (current_vdp -> genesis_vdp_regs[0x14] << 8) | - (current_vdp -> genesis_vdp_regs[0x13] << 0); - - if (current_vdp ->dma_transfer_count ==0) - { - logerror("zero length dma!\n"); - current_vdp ->dma_transfer_count = 0xffff; - } - - current_vdp -> dma_transfer_start<<=1; - - switch ((current_vdp -> genesis_vdp_cmdmode)&0xf) - { - case 0x01: - current_vdp -> dma_transfer_type = 1; - // logerror("DMA set 68k -> VRAM source %06x count %06x to %06x\n", (current_vdp -> dma_transfer_start), current_vdp -> dma_transfer_count, current_vdp -> genesis_vdp_cmdaddr ); - break; - - case 0x03: - current_vdp -> dma_transfer_type = 3; - // logerror("DMA set 68k -> CRAM source %06x count %06x to %06x\n", (current_vdp -> dma_transfer_start), current_vdp -> dma_transfer_count, current_vdp -> genesis_vdp_cmdaddr ); - break; - - case 0x05: - current_vdp -> dma_transfer_type = 5; - // logerror("DMA set 68k -> VSRAM source %06x count %06x to %06x\n", (current_vdp -> dma_transfer_start), current_vdp -> dma_transfer_count, current_vdp -> genesis_vdp_cmdaddr ); - break; - - default: - current_vdp -> dma_transfer_type = 0; - logerror("DMA set 68k -> INVALID source %06x count %06x to %06x\n", (current_vdp -> dma_transfer_start), current_vdp -> dma_transfer_count, current_vdp -> genesis_vdp_cmdaddr ); - break; - } - - genesis_vdp_do_dma ( current_vdp ); - -} - - -void genesis_vdp_check_dma ( genvdp *current_vdp ) -{ - /* check if DMA is actually enabled */ - /* is this correct behavior? or should we check when it actually attempts the transfer? */ - if (!((current_vdp -> genesis_vdp_regs[0x01]) & 0x10)) - return; - - switch ((current_vdp -> genesis_vdp_regs[0x17]) & 0xc0) - { - case 0x00: - case 0x40: - genesis_68k_xram_dma_set( current_vdp ); - // 68k -> VRAM/CRAM/VSRAM transfer - break; - - case 0x80: - logerror("Vram fill!\n"); - current_vdp -> genesis_vdp_fill_mode = 1; // do we need to set .. or can we check these bits later? .. - // vram fill - break; - - case 0xc0: - logerror("Vram copy!\n"); - genesis_68k_set_vram_copy( current_vdp ); - // vram copy - break; - } -} - -void genesis_vdp_set_cmdmode_cmdaddr ( genvdp *current_vdp, UINT16 data ) -{ - int modepart, addrpart; - - if (current_vdp -> genesis_vdp_command_pending) // second part - { - modepart = (data & 0x00f0) >> 2; // CD5 CD4 CD3 CD2 - addrpart = (data & 0x0003) << 14;// A15 A14 - - current_vdp -> genesis_vdp_cmdmode = (current_vdp -> genesis_vdp_cmdmode & 0x03) | modepart; - current_vdp -> genesis_vdp_cmdaddr = (current_vdp -> genesis_vdp_cmdaddr & 0x3fff) | addrpart; - -// logerror("Second Part of VDP Command / Address set %02x %08x\n", current_vdp -> genesis_vdp_cmdmode, current_vdp -> genesis_vdp_cmdaddr); -// logerror("Registers 21: %02x 22: %02x 23: %02x\n",current_vdp -> genesis_vdp_regs[21], current_vdp -> genesis_vdp_regs[22], current_vdp -> genesis_vdp_regs[23]); - //what_mode ( current_vdp ); - - /* if bit 0x20 of the mode is set we have some kind of DMA transfer request */ - if ((current_vdp -> genesis_vdp_cmdmode)&0x20) genesis_vdp_check_dma ( current_vdp ); - } - else // first part - { - modepart = (data & 0xc000) >> 14; // CD1 CD0 - addrpart = (data & 0x3fff) >> 0; // A13 - A0; - - current_vdp -> genesis_vdp_cmdmode = (current_vdp -> genesis_vdp_cmdmode & 0x3c) | modepart; - current_vdp -> genesis_vdp_cmdaddr = (current_vdp -> genesis_vdp_cmdaddr & 0xc000) | addrpart; - -// logerror("First Part of VDP Command / Address set %02x %08x\n", current_vdp -> genesis_vdp_cmdmode, current_vdp -> genesis_vdp_cmdaddr); - } -} - -/* Genesis Control Port - - 16-bit register settings writes or 32-bit control writes - -*/ - - - - -void genesis_vdp_control_write ( genvdp *current_vdp, UINT16 data ) -{ - if (current_vdp -> genesis_vdp_command_pending) // second part of a command word - { -// logerror("Genesis VDP command word second part %04x\n",data); - genesis_vdp_set_cmdmode_cmdaddr(current_vdp,data); - current_vdp -> genesis_vdp_command_pending = 0; - } - else // first part of command word or register setting - { - /* if 10xxxxxx xxxxxxxx this is a register setting command */ - if ((data & 0xc000) == 0x8000) - { -// logerror("Genesis VDP set register %04x\n",data); - genesis_vdp_set_register(current_vdp,data&0x1fff); - // set register - } - else - { -// logerror("Genesis VDP command word first part %04x\n",data); - genesis_vdp_set_cmdmode_cmdaddr(current_vdp,data); - current_vdp -> genesis_vdp_command_pending = 1; - } - } -} - -void genesis_vdp_write ( genvdp *current_vdp, offs_t offset, UINT16 data, UINT16 mem_mask ) -{ -// if ((offset!=0x00) && (offset !=0x02)) logerror("Genesis VDP Write %06x, %04x, %04x\n", offset, data, mem_mask); - - switch (offset) - { - case 0x00: // Data Port - case 0x02: // Data Port (mirror) - /* for 8-bit writes data gets duplicated in each half */ - if (!ACCESSING_LSB) data = (data & 0xff00) | ((data >>8 )& 0x00ff); - if (!ACCESSING_MSB) data = (data & 0x00ff) | ((data <<8 )& 0xff00); - genesis_vdp_data_write(current_vdp,data); - break; - - case 0x04: // Control Port - case 0x06: // Control Port (mirror) - /* for 8-bit writes data gets duplicated in each half */ - if (!ACCESSING_LSB) data = (data & 0xff00) | ((data >>8 )& 0x00ff); - if (!ACCESSING_MSB) data = (data & 0x00ff) | ((data <<8 )& 0xff00); - genesis_vdp_control_write(current_vdp,data); - break; - - case 0x08: // HV Counters - case 0x0a: // HV Counters (mirror) - case 0x0c: // HV Counters (mirror) - case 0x0e: // HV Counters (mirror) - logerror("Attempting to write to HV Counters (machine lockup!)\n"); - break; - - case 0x10: // SN76489 PSG - SN76496_0_w(0, (data) & 0xff); break; - case 0x12: // SN76489 PSG (mirror) - SN76496_0_w(0, (data) & 0xff); break; - case 0x14: // SN76489 PSG (mirror) - SN76496_1_w(0, (data) & 0xff); break; - case 0x16: // SN76489 PSG (mirror) - SN76496_1_w(0, (data) & 0xff); break; - - // if (ACCESSING_MSB) SN76496_0_w(0, (data >>8) & 0xff); - - // break; - - case 0x18: // nothing - case 0x1a: // nothing - logerror("Write to VDP offset 0x18 / 0x1a, no effect!\n"); break; - break; - - case 0x1c: // corrupt VDP state - case 0x1e: // corrupt VDP state (mirror) - logerror("Write to VDP offset 0x1c / 0x1e, see http://cgfm2.emuviews.com/txt/newreg.txt \n"); break; - break; - } - -} -/* Information from Charles MacDonald - - 5. The VDP is mirrored at certain locations from C00000h to DFFFFFh. In - order to explain what addresses are valid, here is a layout of each - address bit: - - MSB LSB - 110n n000 nnnn nnnn 000m mmmm - - '1' - This bit must be 1. - '0' - This bit must be 0. - 'n' - This bit can have any value. - 'm' - VDP addresses (00-1Fh) - - For example, you could read the status port at D8FF04h or C0A508h, - but not D00084h or CF00008h. Accessing invalid addresses will - lock up the machine. - -*/ - -READ16_HANDLER( genesis_68000_vdp_r ) -{ - int retdata; - - offset <<= 1; // convert word offset to byte offset; - if (offset & 0x2700e0) // throw out invalid offsets (see cgfm docs) - { - logerror ("invalid vdp read offset!\n"); - return 0x00; - } - offset &= 0x1f; // only low 5 bits of offset matter - - retdata = genesis_vdp_read( &genesis_vdp, offset, mem_mask ); - - return retdata; -} - -WRITE16_HANDLER( genesis_68000_vdp_w ) -{ - offset <<= 1; // convert word offset to byte offset; - - if (offset & 0x2700e0) // throw out invalid offsets (see cgfm docs) - { - logerror ("invalid vdp write offset!\n"); - return; - } - offset &= 0x1f; // only low 5 bits of offset matter - - genesis_vdp_write( &genesis_vdp, offset, data, mem_mask ); -} - - -/* Main Genesis Z80 */ - - READ8_HANDLER( genesis_z80_vdp_r ) -{ - return 0; -} - -WRITE8_HANDLER( genesis_z80_vdp_w ) -{ - int mem_mask; - int dat; - -// logerror("VDP via z80 write address offset %02x data %02x\n",offset,data); - - - if (offset > 0x1f ) - { - // logerror("illegal vdp via z80 write address\n"); - } - - if (offset & 1) - { - mem_mask = 0xff00; - dat = data&0x00ff; - } - else - { - mem_mask = 0x00ff; - dat = (data <<8)&0xff00; - } - -// if (offset > 0x10) logerror("GEN SN %02x %02x\n",offset,data); - - genesis_vdp_write( &genesis_vdp, offset&0x1e, dat, mem_mask ); -} - -WRITE8_HANDLER( genesis_z80_bank_sel_w ) -{ -//int genesis_z80_bank_addr; -//int genesis_z80_bank_partial; - - - genesis_z80_bank_partial |= ((data &0x01) << genesis_z80_bank_step); -// logerror("bank bit %02x set %02x %02x partial %08x\n", genesis_z80_bank_step , data, data &1, genesis_z80_bank_partial); - - genesis_z80_bank_step++; - - if (genesis_z80_bank_step == 9) - { - genesis_z80_bank_addr = genesis_z80_bank_partial << 15; - genesis_z80_bank_partial = 0; - genesis_z80_bank_step = 0; -// logerror("z80 68k bank set to %08x\n", genesis_z80_bank_addr); - - } - -} -#ifdef LSB_FIRST - #define BYTE_XOR(a) ((a) ^ 1) -#else - #define BYTE_XOR(a) (a) -#endif - - READ8_HANDLER ( genesis_banked_68k_r ) -{ - UINT32 addr; -// UINT16 dat; - -// logerror("z80 PC %04x accessing 68k space %08x offset %04x\n", activecpu_get_pc(), genesis_z80_bank_addr, offset); - - addr = genesis_z80_bank_addr | offset; - - if ((addr>=0) && (addr<=0x3fffff)) - { -// logerror("from rom!\n"); - return memory_region(REGION_CPU1)[BYTE_XOR(addr)]; - - - } - else - { - // logerror("unhandled!\n"); - } - - return 0x00; -} - -WRITE8_HANDLER ( z80_ym2612_w ) -{ - offset &=0x03; -// logerror("z80 PC %04x accessing z80_ym2612_w offset %02x data %08x\n", activecpu_get_pc(), offset, data); - - switch (offset) - { - case 0:YM2612_control_port_0_A_w(0,data); break; - case 1:YM2612_data_port_0_A_w(0,data); break; - case 2:YM2612_control_port_0_B_w(0,data); break; - case 3:YM2612_data_port_0_B_w(0,data); break; - } - -} - - -/* - -Display - -0-223 - display (counter reloaded on 0) -224 - vblank triggered? -225-261 - blanking period (counter reloaded each line) - - The V counter counts up from 00h to EAh, then it jumps back to E5h and - continues counting up to FFh. This allows it to cover the entire 262 line - display. - -*/ - -void genesis_init_frame(void) -{ - int i; - if ((genesis_vdp.genesis_vdp_regs[0x0c]&0x81) != oldscreenmode) - { - oldscreenmode = genesis_vdp.genesis_vdp_regs[0x0c]&0x81; - switch (genesis_vdp.genesis_vdp_regs[0x0c]&0x81) - { - case 0x00: // 32 cell - video_screen_set_visarea(0, 0, 32*8-1, 0, 224-1); - break; - case 0x01: // 40 cell corrupted - case 0x80: // illegal! - case 0x81: // 40 cell - video_screen_set_visarea(0, 0, 40*8-1, 0, 224-1); - break; - } - } - - for(i=0;i<0x800;i++) - { - if (genesis_vdp.genesis_vdp_vram_is_dirty[i]) - { - decodechar(Machine->gfx[genesis_vdp.genesis_vdp_index], i,(UINT8 *)genesis_vdp.genesis_vdp_vram, &charlayout); - genesis_vdp.genesis_vdp_vram_is_dirty[i] = 0; - } - } -} - -/* this (and the hv counter stuff) appear to be wrong .. various glitches .. rasters not working right in many games */ -INTERRUPT_GEN( genesis_interrupt ) -{ -// logerror("interrupt %d\n",cpu_getiloops()); - int scan, irqlevel = 0; - scan = genesis_vdp.sline = 261 - cpu_getiloops(); - - genesis_vdp.irq4_counter--; - - if (scan == 0) genesis_init_frame(); // decode gfx tiles etc. - - if (scan==0) genesis_vdp.irq4_counter = genesis_vdp.genesis_vdp_regs[0x0a]; - -//if ((scan>=225) && (scan>=261)) genesis_vdp.irq4_counter = genesis_vdp.genesis_vdp_regs[0x0a]; - -// if (scan>=0xea) genesis_vdp.irq4_counter +=5; - - - - if (genesis_vdp.irq4_counter==-1) - { - if (genesis_vdp.genesis_vdp_regs[0x00] & 0x10) irqlevel = 4; - genesis_vdp.irq4_counter = genesis_vdp.genesis_vdp_regs[0x0a]; - - } - - if (scan == 0xe0) - { - // if (!irqlevel) - irqlevel = 6; - - cpunum_set_input_line(1,0, HOLD_LINE); // z80 interrupt, always? - } - - - if (( scan>=0 ) && ( genesis_vdp.sline <224)) - { - genesis_vdp_render_scanline(&genesis_vdp,genesis_vdp.sline); - genesis_vdp_draw_scanline(&genesis_vdp,genesis_vdp.sline); - } - - cpunum_set_input_line(0,irqlevel, HOLD_LINE); -} - -//static void ym3438_interrupt(int state) -//{ - /* nothing? */ -//} - -MACHINE_RESET ( genesis ) -{ -// logerror("MACHINE_RESET ( genesis )\n"); - /* prevent the z80 from running (code must be uploaded by the 68k first) */ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - genesis_z80_is_reset = 1; - - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - genesis_68k_has_z80_bus = 1; - - memset(memory_region(REGION_CPU2), 0xcf, 0x2000); - - genesis_z80_bank_step = 0; - genesis_z80_bank_addr = 0; - genesis_z80_bank_partial = 0; - - memset(genesis_vdp.genesis_vdp_vram, 0x00, 0x10000); - memset(genesis_vdp.genesis_vdp_vram_is_dirty, 0x00, 0x800); - memset(genesis_vdp.genesis_vdp_cram, 0x00, 0x100); - memset(genesis_vdp.genesis_vdp_vsram, 0x00, 0x100); - memset(genesis_vdp.genesis_vdp_regs, 0x00, 0x20); - - genesis_init_io(); -} - - -void genesis_common_init( void ) -{ - /* standard genesis init */ - -// genesis_z80ram = auto_malloc (0x2000); - genesis_mainram = auto_malloc (0x10000); - - memset( genesis_mainram, 0x00, 0x10000); - - /* Another brutal hack to work around 0.101u1 memory changes */ - memory_install_read8_handler(1, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MRA8_BANK10); - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MWA8_BANK10); - memory_set_bankptr(10, memory_region(REGION_CPU2)); - -// memory_set_bankptr(1,memory_region(REGION_USER1)); /* cartridge at BANK1 */ - memory_set_bankptr(2,genesis_mainram); /* BANK2 = mainram */ -// memory_set_bankptr(3,memory_region(REGION_CPU2)); /* BANK3 = mainram */ - - /* prevent the z80 from running (code must be uploaded by the 68k first) */ - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - genesis_68k_has_z80_bus = 0; - - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - genesis_z80_is_reset = 1; - -// memset(genesis_z80ram, 0x00, 0x2000); - - /* copy the cart from user region to CPU region .. - i load it in the user region to make handling weird games like ssf2 - easier - */ - memcpy(memory_region(REGION_CPU1),memory_region(REGION_USER1),0x400000); - -} - -DRIVER_INIT ( genesis ) -{ - genesis_common_init(); -} diff --git a/mess/machine/geneve.c b/mess/machine/geneve.c deleted file mode 100644 index 85d65f462..000000000 --- a/mess/machine/geneve.c +++ /dev/null @@ -1,1437 +0,0 @@ -/* - Machine code for Myarc Geneve. - Raphael Nabet, 2003. -*/ - -#include -#include "driver.h" -#include "tms9901.h" -#include "mm58274c.h" -#include "vidhrdw/v9938.h" -#include "sndhrdw/spchroms.h" -#include "ti99_4x.h" -#include "includes/geneve.h" -#include "99_peb.h" -#include "994x_ser.h" -#include "99_dsk.h" -#include "99_ide.h" -#include "99_usbsm.h" - -#include "sound/tms5220.h" /* for tms5220_set_variant() */ -#include "sound/5220intf.h" -#include "sound/sn76496.h" - - -/* prototypes */ -static void inta_callback(int state); -static void intb_callback(int state); - -static void read_key_if_possible(void); -static void poll_keyboard(void); -static void poll_mouse(void); - -static void tms9901_interrupt_callback(int intreq, int ic); -static int R9901_0(int offset); -static int R9901_1(int offset); -static int R9901_2(int offset); -static int R9901_3(int offset); - -static void W9901_PE_bus_reset(int offset, int data); -static void W9901_VDP_reset(int offset, int data); -static void W9901_JoySel(int offset, int data); -static void W9901_KeyboardReset(int offset, int data); -static void W9901_ext_mem_wait_states(int offset, int data); -static void W9901_VDP_wait_states(int offset, int data); - -/* - pointers to memory areas -*/ -/* pointer to boot ROM */ -static UINT8 *ROM_ptr; -/* pointer to static RAM */ -static UINT8 *SRAM_ptr; -/* pointer to dynamic RAM */ -static UINT8 *DRAM_ptr; - -/* - Configuration -*/ -/* TRUE if speech synthesizer present */ -static char has_speech; -/* floppy disk controller type */ -static fdc_kind_t fdc_kind; -/* TRUE if ide card present */ -static char has_ide; -/* TRUE if rs232 card present */ -static char has_rs232; -/* TRUE if genmod extension present */ -/*static char has_genmod;*/ -/* TRUE if usb-sm card present */ -static char has_usb_sm; - - -/* tms9901 setup */ -static const tms9901reset_param tms9901reset_param_ti99 = -{ - TMS9901_INT1 | TMS9901_INT2 | TMS9901_INT8 | TMS9901_INTB | TMS9901_INTC, /* only input pins whose state is always known */ - - { /* read handlers */ - R9901_0, - R9901_1, - R9901_2, - R9901_3 - }, - - { /* write handlers */ - W9901_PE_bus_reset, - W9901_VDP_reset, - W9901_JoySel, - NULL, - NULL, - NULL, - W9901_KeyboardReset, - W9901_ext_mem_wait_states, - NULL, - W9901_VDP_wait_states, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }, - - /* interrupt handler */ - tms9901_interrupt_callback, - - /* clock rate = 3MHz */ - 3000000. -}; - -/* keyboard interface */ -static int JoySel; -enum -{ - KeyQueueSize = 256, - MaxKeyMessageLen = 10, - KeyAutoRepeatDelay = 30, - KeyAutoRepeatRate = 6 -}; -static UINT8 KeyQueue[KeyQueueSize]; -static int KeyQueueHead; -static int KeyQueueLen; -static int KeyInBuf; -static int KeyReset; -static UINT32 KeyStateSave[4]; -static int KeyNumLockState; -static int KeyCtrlState; -static int KeyAltState; -static int KeyRealShiftState; -static int KeyFakeShiftState; -static int KeyFakeUnshiftState; -static int KeyAutoRepeatKey; -static int KeyAutoRepeatTimer; - -static void machine_stop_geneve(running_machine *machine); - -/* - GROM support. - - The Geneve does not include any GROM, but it features a simple GROM emulator. - - One oddity is that, since the Geneve does not use a look-ahead buffer, GPL - data is always off one byte, i.e. GPL bytes 0, 1, 2... are stored in bytes - 1, 2, 3... of pages >38->3f (byte 0 of page >38 is has GPL address >ffff). - - I think that I have once read that the geneve GROM emulator does not - emulate wrap-around within a GROM, i.e. address >1fff is followed by >2000 - (instead of >0000 with a real GROM). -*/ -static struct -{ - unsigned int addr; - char raddr_LSB, waddr_LSB; -} GPL_port; - -/* - Cartridge support - - The Geneve does not have a cartridge port, but it has cartridge emulation. -*/ -static int cartridge_page; - - -static int mode_flags; - -static UINT8 page_lookup[8]; - -enum -{ - mf_PAL = 0x001, /* bit 5 */ - mf_keycaps = 0x004, /* bit 7 - exact meaning unknown */ - mf_keyclock = 0x008, /* bit 8 */ - mf_keyclear = 0x010, /* bit 9 */ - mf_genevemode = 0x020, /* bit 10 */ - mf_mapmode = 0x040, /* bit 11 */ - mf_cartpaging = 0x080, /* bit 12 */ - mf_cart6protect = 0x100, /* bit 13 */ - mf_cart7protect = 0x200, /* bit 14 */ - mf_waitstate = 0x400 /* bit 15 - exact meaning unknown */ -}; - -/* tms9995_ICount: used to implement memory waitstates (hack) */ -/* NPW 23-Feb-2004 - externs no longer needed because we now use activecpu_adjust_icount() */ - - - -/*===========================================================================*/ -/* - General purpose code: - initialization, cart loading, etc. -*/ - -DRIVER_INIT( geneve ) -{ - /*has_genmod = FALSE;*/ -} - -DRIVER_INIT( genmod ) -{ - /*has_genmod = TRUE;*/ -} - - -MACHINE_START( geneve ) -{ - mode_flags = /*0*/mf_mapmode; - /* initialize page lookup */ - memset(page_lookup, 0, sizeof(page_lookup)); - - /* set up RAM pointers */ - ROM_ptr = memory_region(REGION_CPU1) + offset_rom_geneve; - SRAM_ptr = memory_region(REGION_CPU1) + offset_sram_geneve; - DRAM_ptr = memory_region(REGION_CPU1) + offset_dram_geneve; - - /* Initialize GROMs */ - memset(& GPL_port, 0, sizeof(GPL_port)); - - /* reset cartridge mapper */ - cartridge_page = 0; - - /* init tms9901 */ - tms9901_init(0, & tms9901reset_param_ti99); - - v9938_reset(); - - mm58274c_init(0, 1); - - /* clear keyboard interface state (probably overkill, but can't harm) */ - JoySel = 0; - KeyQueueHead = KeyQueueLen = 0; - memset(KeyStateSave, 0, sizeof(KeyStateSave)); - KeyNumLockState = 0; - KeyCtrlState = 0; - KeyAltState = 0; - KeyRealShiftState = 0; - KeyFakeShiftState = 0; - KeyFakeUnshiftState = 0; - KeyAutoRepeatKey = 0; - KeyInBuf = 0; - KeyReset = 1; - - /* read config */ - has_speech = (readinputport(input_port_config) >> config_speech_bit) & config_speech_mask; - fdc_kind = (readinputport(input_port_config) >> config_fdc_bit) & config_fdc_mask; - has_ide = (readinputport(input_port_config) >> config_ide_bit) & config_ide_mask; - has_rs232 = (readinputport(input_port_config) >> config_rs232_bit) & config_rs232_mask; - has_usb_sm = (readinputport(input_port_config) >> config_usbsm_bit) & config_usbsm_mask; - - /* set up optional expansion hardware */ - ti99_peb_init(0, inta_callback, intb_callback); - - if (has_speech) - { - spchroms_interface speech_intf = { region_speech_rom }; - - spchroms_config(& speech_intf); - } - - switch (fdc_kind) - { - case fdc_kind_TI: - ti99_fdc_init(); - break; -#if HAS_99CCFDC - case fdc_kind_CC: - ti99_ccfdc_init(); - break; -#endif - case fdc_kind_BwG: - ti99_bwg_init(); - break; - case fdc_kind_hfdc: - ti99_hfdc_init(); - break; - case fdc_kind_none: - break; - } - - if (has_ide) - { - ti99_ide_init(TRUE); - ti99_ide_load_memcard(); - } - - if (has_rs232) - ti99_rs232_init(); - - if (has_usb_sm) - ti99_usbsm_init(TRUE); - - add_exit_callback(machine, machine_stop_geneve); - return 0; -} - -static void machine_stop_geneve(running_machine *machine) -{ - if (has_ide) - ti99_ide_save_memcard(); - - if (has_rs232) - ti99_rs232_cleanup(); - - tms9901_cleanup(0); -} - - -/* - video initialization. -*/ -VIDEO_START(geneve) -{ - return v9938_init(machine, MODEL_V9938, /*0x20000*/0x30000, tms9901_set_int2); /* v38 with 128 kb of video RAM */ -} - -/* - scanline interrupt -*/ -void geneve_hblank_interrupt(void) -{ - static int line_count; - v9938_interrupt(); - if (++line_count == 262) - { - line_count = 0; - poll_keyboard(); - poll_mouse(); - } -} - -/* - inta is connected to both tms9901 IRQ1 line and to tms9995 INT4/EC line. -*/ -static void inta_callback(int state) -{ - tms9901_set_single_int(0, 1, state); - cpunum_set_input_line(0, 1, state ? ASSERT_LINE : CLEAR_LINE); -} - -/* - intb is connected to tms9901 IRQ12 line. -*/ -static void intb_callback(int state) -{ - tms9901_set_single_int(0, 12, state); -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark MEMORY HANDLERS -#endif -/* - Memory handlers. -*/ - -/* - TMS5200 speech chip read -*/ -static READ8_HANDLER ( geneve_speech_r ) -{ - activecpu_adjust_icount(-8); /* this is just a minimum, it can be more */ - - return tms5220_status_r(offset); -} - -#if 0 - -static void speech_kludge_callback(int dummy) -{ - if (! tms5220_ready_r()) - { - /* Weirdly enough, we are always seeing some problems even though - everything is working fine. */ - /*double time_to_ready = tms5220_time_to_ready(); - logerror("ti99/4a speech says aaargh!\n"); - logerror("(time to ready: %f -> %d)\n", time_to_ready, (int) ceil(3000000*time_to_ready));*/ - } -} - -#endif - -/* - TMS5200 speech chip write -*/ -static WRITE8_HANDLER ( geneve_speech_w ) -{ - activecpu_adjust_icount(-32*4); /* this is just an approx. minimum, it can be much more */ - -#if 1 - /* the stupid design of the tms5220 core means that ready is cleared when - there are 15 bytes in FIFO. It should be 16. Of course, if it were the - case, we would need to store the value on the bus, which would be more - complex. */ - if (! tms5220_ready_r()) - { - double time_to_ready = tms5220_time_to_ready(); - int cycles_to_ready = ceil(TIME_TO_CYCLES(0, time_to_ready)); - - logerror("time to ready: %f -> %d\n", time_to_ready, (int) cycles_to_ready); - - activecpu_adjust_icount(-cycles_to_ready); - timer_set(TIME_NOW, 0, /*speech_kludge_callback*/NULL); - } -#endif - - tms5220_data_w(offset, data); -} - - READ8_HANDLER ( geneve_r ) -{ - int page; - - if (mode_flags & mf_genevemode) - { - /* geneve mode */ - if ((offset >= 0xf100) && (offset < 0xf140)) - { - /* memory-mapped registers */ - /* VDP ports 2 & 3 and sound port are write-only */ - switch (offset) - { - case 0xf100: - case 0xf108: /* mirror? */ - return v9938_vram_r(0); - - case 0xf102: - case 0xf10a: /* mirror? */ - return v9938_status_r(0); - - case 0xf110: - case 0xf111: - case 0xf112: - case 0xf113: - case 0xf114: - case 0xf115: - case 0xf116: - case 0xf117: - return page_lookup[offset-0xf110]; - - case 0xf118: - return KeyInBuf ? KeyQueue[KeyQueueHead] : 0; - - case 0xf130: - case 0xf131: - case 0xf132: - case 0xf133: - case 0xf134: - case 0xf135: - case 0xf136: - case 0xf137: - case 0xf138: - case 0xf139: - case 0xf13a: - case 0xf13b: - case 0xf13c: - case 0xf13d: - case 0xf13e: - case 0xf13f: - return mm58274c_r(0, offset-0xf130); - - default: - logerror("unmapped read offs=%d\n", (int) offset); - return 0; - } - } - } - else - { - /* ti99 mode */ - if ((offset >= 0x8000) && (offset < 0x8020)) - { - /* 0x8000-0x801f */ - /* geneve memory-mapped registers */ - switch (offset) - { - case 0x8000: - case 0x8001: - case 0x8002: - case 0x8003: - case 0x8004: - case 0x8005: - case 0x8006: - case 0x8007: - return page_lookup[offset-0x8000]; - - case 0x8008: - return KeyInBuf ? KeyQueue[KeyQueueHead] : 0; - - case 0x8010: - case 0x8011: - case 0x8012: - case 0x8013: - case 0x8014: - case 0x8015: - case 0x8016: - case 0x8017: - case 0x8018: - case 0x8019: - case 0x801a: - case 0x801b: - case 0x801c: - case 0x801d: - case 0x801e: - case 0x801f: - return mm58274c_r(0, offset-0xf130); - - default: - logerror("unmapped read offs=%d\n", (int) offset); - return 0; - } - } - else if ((offset >= 0x8400) && (offset < 0xa000)) - { - /* 0x8400-0x9fff */ - /* ti99 memory-mapped registers */ - switch ((offset - 0x8000) >> 10) - { - case 2: - /* VDP read */ - if (! (offset & 1)) - { - if (offset & 2) - { /* read VDP status */ - return v9938_status_r(0); - } - else - { /* read VDP RAM */ - return v9938_vram_r(0); - } - } - return 0; - - case 4: - /* speech read */ - if ((! (offset & 1)) && has_speech) - { - return geneve_speech_r(0); - } - return 0; - - case 6: - /* GPL read */ - if (! (offset & 1)) - { - if (offset & 2) - { /* read GPL address */ - int reply; - - GPL_port.waddr_LSB = FALSE; /* right??? */ - - if (GPL_port.raddr_LSB) - { - reply = GPL_port.addr & 0xff; - GPL_port.raddr_LSB = FALSE; - } - else - { - reply = GPL_port.addr >> 8; - GPL_port.raddr_LSB = TRUE; - } - return reply; - } - else - { /* read GPL data */ - int reply; - - reply = DRAM_ptr[0x38*0x2000 + GPL_port.addr]; - GPL_port.addr = (GPL_port.addr + 1) & 0xffff; - GPL_port.raddr_LSB = GPL_port.waddr_LSB = FALSE; - - return reply; - } - } - return 0; - - default: - logerror("unmapped read offs=%d\n", (int) offset); - return 0; - } - } - } - - page = offset >> 13; - - if (! (mode_flags & mf_mapmode)) - { - if ((mode_flags & mf_genevemode) || (page != 3)) - page = page_lookup[page]; - else - /* Cartridge page under ti99 emulation */ - page = ((mode_flags & mf_cartpaging) || ! cartridge_page) ? 0x36 : 0x37; - } - else - page = page + 0xf0; - - offset &= 0x1fff; - - switch (page) - { - case 0xf0: - case 0xf1: - /* Boot ROM */ - return ROM_ptr[(page-0xf0)*0x2000 + offset]; - - case 0xe8: - case 0xe9: - case 0xea: - case 0xeb: - case 0xec: - case 0xed: - case 0xee: - case 0xef: - /* SRAM */ - return SRAM_ptr[(page-0xe8)*0x2000 + offset]; - -#if 0 - case 0x7a: /* mirror of 0xba??? */ - return 0; -#endif - case 0xba: - /* DSR space */ - return geneve_peb_r(offset); - - case 0xbc: - /* speech space */ - if (has_speech) - { - if ((offset >= 0x1000) && (offset < 0x1400) && (! (offset & 1))) - return geneve_speech_r(0); - else - return 0; - } - - default: - /* DRAM */ - return DRAM_ptr[page*0x2000 + offset]; - } - - logerror("unmapped read page=%d offs=%d\n", (int) page, (int) offset); - return 0; -} - -WRITE8_HANDLER ( geneve_w ) -{ - int page; - - if (mode_flags & mf_genevemode) - { - /* geneve mode */ - if ((offset >= 0xf100) && (offset < 0xf140)) - { - /* memory-mapped registers */ - /* VDP ports 2 & 3 and sound port are write-only */ - switch (offset) - { - case 0xf100: - case 0xf108: /* mirror? */ - v9938_vram_w(0, data); - return; - - case 0xf102: - case 0xf10a: /* mirror? */ - v9938_command_w(0, data); - return; - - case 0xf104: - case 0xf10c: /* mirror? */ - v9938_palette_w(0, data); - return; - - case 0xf106: - case 0xf10e: /* mirror? */ - v9938_register_w(0, data); - return; - - case 0xf110: - case 0xf111: - case 0xf112: - case 0xf113: - case 0xf114: - case 0xf115: - case 0xf116: - case 0xf117: - page_lookup[offset-0xf110] = data; - return; - - /*case 0xf118: // read-only register??? - key_buf = data; - return*/ - - case 0xf120: - SN76496_0_w(0, data); - break; - - case 0xf130: - case 0xf131: - case 0xf132: - case 0xf133: - case 0xf134: - case 0xf135: - case 0xf136: - case 0xf137: - case 0xf138: - case 0xf139: - case 0xf13a: - case 0xf13b: - case 0xf13c: - case 0xf13d: - case 0xf13e: - case 0xf13f: - mm58274c_w(0, offset-0xf130, data); - return; - - default: - logerror("unmapped write offs=%d data=%d\n", (int) offset, (int) data); - return; - } - } - } - else - { - /* ti99 mode */ - if ((offset >= 0x8000) && (offset < 0x8020)) - { - /* 0x8000-0x801f */ - /* geneve memory-mapped registers */ - switch (offset) - { - case 0x8000: - case 0x8001: - case 0x8002: - case 0x8003: - case 0x8004: - case 0x8005: - case 0x8006: - case 0x8007: - page_lookup[offset-0x8000] = data; - return; - - /*case 0x8008: // read-only register??? - key_buf = data; - return*/ - - case 0x8010: - case 0x8011: - case 0x8012: - case 0x8013: - case 0x8014: - case 0x8015: - case 0x8016: - case 0x8017: - case 0x8018: - case 0x8019: - case 0x801a: - case 0x801b: - case 0x801c: - case 0x801d: - case 0x801e: - case 0x801f: - mm58274c_w(0, offset-0xf130, data); - return; - - default: - logerror("unmapped write offs=%d data=%d\n", (int) offset, (int) data); - return; - } - } - else if ((offset >= 0x8400) && (offset < 0xa000)) - { - /* 0x8400-0x9fff */ - /* ti99 memory-mapped registers */ - switch ((offset - 0x8000) >> 10) - { - case 1: - /* sound write */ - SN76496_0_w(0, data); - return; - - case 3: - /* VDP write */ - if (! (offset & 1)) - { - - switch ((offset >> 1) & 3) - { - case 0: - /* write VDP RAM */ - v9938_vram_w(0, data); - break; - case 1: - /* write VDP address */ - v9938_command_w(0, data); - break; - case 2: - /* write palette */ - v9938_palette_w(0, data); - break; - case 3: - /* write register */ - v9938_register_w(0, data); - break; - } - } - return; - - case 5: - /* speech write */ - if ((! (offset & 1)) && has_speech) - { - geneve_speech_w(0, data); - } - return; - - case 7: - /* GPL write */ - if (! (offset & 1)) - { - if (offset & 2) - { /* write GPL address */ - GPL_port.raddr_LSB = FALSE; - - if (GPL_port.waddr_LSB) - { - GPL_port.addr = (GPL_port.addr & 0xFF00) | data; - - /* increment */ - GPL_port.addr = (GPL_port.addr + 1) & 0xffff; - - GPL_port.waddr_LSB = FALSE; - } - else - { - GPL_port.addr = ((int) data << 8) | (GPL_port.addr & 0xFF); - - GPL_port.waddr_LSB = TRUE; - } - } - else - { /* write GPL data: probably not implemented */ - GPL_port.addr = (GPL_port.addr + 1) & 0xffff; - GPL_port.raddr_LSB = GPL_port.waddr_LSB = FALSE; - } - } - return; - - default: - logerror("unmapped write offs=%d data=%d\n", (int) offset, (int) data); - return; - } - } - } - - page = offset >> 13; - - if (! (mode_flags & mf_mapmode)) - { - if ((mode_flags & mf_genevemode) || (page != 3)) - page = page_lookup[page]; - else - { - /* Cartridge page under ti99 emulation */ - if (! (mode_flags & mf_cartpaging)) - { /* bankswitching */ - cartridge_page = (offset & 2) != 0; - return; - } - else - { - /* writing to (non-bankswitched) cart -> page 0x36 */ - page = 0x36; - if ((offset < 0x7000) ? (! (mode_flags & mf_cart6protect)) : (! (mode_flags & mf_cart7protect))) - { - /* Trying to write a write-protected cartridge */ - logerror("Ignoring write to a write-protected cartridge\n"); - return; - } - } - } - } - else - page = page + 0xf0; - - offset &= 0x1fff; - - switch (page) - { - case 0xf0: - case 0xf1: - /* Boot ROM */ - return; - - case 0xe8: - case 0xe9: - case 0xea: - case 0xeb: - case 0xec: - case 0xed: - case 0xee: - case 0xef: - /* SRAM */ - SRAM_ptr[(page-0xe8)*0x2000 + offset] = data; - return; - -#if 0 - case 0x7a: /* mirror of 0xba??? */ - return; -#endif - case 0xba: - /* DSR space */ - geneve_peb_w(offset, data); - return; - - case 0xbc: - /* speech space */ - if (has_speech) - { - if ((offset >= 0x1400) && (offset < 0x1800) && (! (offset & 1))) - geneve_speech_w(0, data); - return; - } - - default: - /* DRAM */ - DRAM_ptr[page*0x2000 + offset] = data; - return; - } - - logerror("unmapped write page=%d offs=%d data=%d\n", (int) page, (int) offset, (int) data); - return; -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark CRU HANDLERS -#endif - -WRITE8_HANDLER ( geneve_peb_mode_cru_w ) -{ - if ((offset >= /*0x770*/0x775) && (offset < 0x780)) - { - int old_flags = mode_flags; - - /* tms9995 user flags */ - if (data) - mode_flags |= 1 << (offset - 0x775); - else - mode_flags &= ~(1 << (offset - 0x775)); - - if ((offset == 0x778) && data && (! (old_flags & mf_keyclock))) - { - /* set mf_keyclock */ - read_key_if_possible(); - } - if (offset == 0x779) - { - if (data && (! (old_flags & mf_keyclear))) - { - /* set mf_keyclear: enable key input */ - /* shift in new key immediately if possible */ - read_key_if_possible(); - } - else if ((! data) && (old_flags & mf_keyclear)) - { - /* clear mf_keyclear: clear key input */ - if (KeyQueueLen) - { - KeyQueueHead = (KeyQueueHead + 1) % KeyQueueSize; - KeyQueueLen--; - } - /* clear keyboard interrupt */ - tms9901_set_single_int(0, 8, 0); - KeyInBuf = 0; - } - } - } - - geneve_peb_cru_w(offset, data); -} - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark KEYBOARD INTERFACE -#endif - -static void read_key_if_possible(void) -{ - /* if keyboard reset is not asserted, and key clock is enabled, and key - buffer clear is disabled, and key queue is not empty. */ - if ((! KeyReset) && (mode_flags & mf_keyclock) && (mode_flags & mf_keyclear) && KeyQueueLen) - { - tms9901_set_single_int(0, 8, 1); - KeyInBuf = 1; - } -} - -INLINE void post_in_KeyQueue(int keycode) -{ - KeyQueue[(KeyQueueHead+KeyQueueLen) % KeyQueueSize] = keycode; - KeyQueueLen++; -} - -static void poll_keyboard(void) -{ - UINT32 keystate; - UINT32 key_transitions; - int i, j; - int keycode; - int pressed; - - static const UINT8 keyboard_mf1_code[0xe] = - { - /* extended keys that are equivalent to non-extended keys */ - 0x1c, /* keypad enter */ - 0x1d, /* right control */ - 0x38, /* alt gr */ - /* extra codes are 0x5b for Left Windows, 0x5c for Right Windows, 0x5d - for Menu, 0x5e for power, 0x5f for sleep, 0x63 for wake, but I doubt - any Geneve program would take advantage of these. */ - - /* extended key that is equivalent to a non-extended key - with shift off */ - 0x35, /* pad slash */ - - /* extended keys that are equivalent to non-extended keys - with numlock off */ - 0x47, /* home */ - 0x48, /* up */ - 0x49, /* page up */ - 0x4b, /* left */ - 0x4d, /* right */ - 0x4f, /* end */ - 0x50, /* down */ - 0x51, /* page down */ - 0x52, /* insert */ - 0x53 /* delete */ - }; - - - if (KeyReset) - return; - - /* Poll keyboard */ - for (i=0; (i<4) && (KeyQueueLen <= (KeyQueueSize-MaxKeyMessageLen)); i++) - { - keystate = readinputport(input_port_keyboard_geneve + i*2) - | (readinputport(input_port_keyboard_geneve + i*2 + 1) << 16); - key_transitions = keystate ^ KeyStateSave[i]; - if (key_transitions) - { - for (j=0; (j<32) && (KeyQueueLen <= (KeyQueueSize-MaxKeyMessageLen)); j++) - { - if ((key_transitions >> j) & 1) - { - keycode = (i << 5) | j; - pressed = ((keystate >> j) & 1); - if (pressed) - KeyStateSave[i] |= (1 << j); - else - KeyStateSave[i] &= ~ (1 << j); - - /* Update auto-repeat */ - if (pressed) - { - KeyAutoRepeatKey = keycode; - KeyAutoRepeatTimer = KeyAutoRepeatDelay+1; - } - else /*if (keycode == KeyAutoRepeatKey)*/ - KeyAutoRepeatKey = 0; - - /* Release Fake Shift/Unshift if another key is pressed */ - /* We do so if a key is released, though it is actually - required only if it is a modifier key */ - /*if (pressed)*/ - { - if (KeyFakeShiftState) - { - /* Fake shift release */ - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0xaa); - KeyFakeShiftState = 0; - } - if (KeyFakeUnshiftState) - { - /* Fake shift press */ - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0x2a); - KeyFakeUnshiftState = 0; - } - } - - /* update shift and numlock state */ - if ((keycode == 0x2a) || (keycode == 0x36)) - KeyRealShiftState = KeyRealShiftState + (pressed ? +1 : -1); - if ((keycode == 0x1d) || (keycode == 0x61)) - KeyCtrlState = KeyCtrlState + (pressed ? +1 : -1); - if ((keycode == 0x38) || (keycode == 0x62)) - KeyAltState = KeyAltState + (pressed ? +1 : -1); - if ((keycode == 0x45) && pressed) - KeyNumLockState = ! KeyNumLockState; - - if ((keycode >= 0x60) && (keycode < 0x6e)) - { /* simpler extended keys */ - /* these keys are emulated */ - - if ((keycode >= 0x63) && pressed) - { - /* Handle shift state */ - if (keycode == 0x63) - { /* non-shifted key */ - if (KeyRealShiftState) - /* Fake shift unpress */ - KeyFakeUnshiftState = 1; - } - else /*if (keycode >= 0x64)*/ - { /* non-numlock mode key */ - if (KeyNumLockState & ! KeyRealShiftState) - /* Fake shift press if numlock is active */ - KeyFakeShiftState = 1; - else if ((! KeyNumLockState) & KeyRealShiftState) - /* Fake shift unpress if shift is down */ - KeyFakeUnshiftState = 1; - } - - if (KeyFakeShiftState) - { - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0x2a); - } - - if (KeyFakeUnshiftState) - { - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0xaa); - } - } - - keycode = keyboard_mf1_code[keycode-0x60]; - if (! pressed) - keycode |= 0x80; - post_in_KeyQueue(0xe0); - post_in_KeyQueue(keycode); - } - else if (keycode == 0x6e) - { /* emulate Print Screen / System Request (F13) key */ - /* this is a bit complex, as Alt+PrtScr -> SysRq */ - /* Additionally, Ctrl+PrtScr involves no fake shift press */ - if (KeyAltState) - { - /* SysRq */ - keycode = 0x54; - if (! pressed) - keycode |= 0x80; - post_in_KeyQueue(keycode); - } - else - { - /* Handle shift state */ - if (pressed && (! KeyRealShiftState) && (! KeyCtrlState)) - { /* Fake shift press */ - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0x2a); - KeyFakeShiftState = 1; - } - - keycode = 0x37; - if (! pressed) - keycode |= 0x80; - post_in_KeyQueue(0xe0); - post_in_KeyQueue(keycode); - } - } - else if (keycode == 0x6f) - { /* emulate pause (F15) key */ - /* this is a bit complex, as Pause -> Ctrl+NumLock and - Ctrl+Pause -> Ctrl+ScrLock. Furthermore, there is no - repeat or release. */ - if (pressed) - { - if (KeyCtrlState) - { - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0x46); - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0xc6); - } - else - { - post_in_KeyQueue(0xe1); - post_in_KeyQueue(0x1d); - post_in_KeyQueue(0x45); - post_in_KeyQueue(0xe1); - post_in_KeyQueue(0x9d); - post_in_KeyQueue(0xc5); - } - } - } - else - { - if (! pressed) - keycode |= 0x80; - post_in_KeyQueue(keycode); - } - read_key_if_possible(); - } - } - } - } - - /* Handle auto-repeat */ - if ((KeyQueueLen <= (KeyQueueSize-MaxKeyMessageLen)) && KeyAutoRepeatKey && (--KeyAutoRepeatTimer == 0)) - { - if ((KeyAutoRepeatKey >= 0x60) && (KeyAutoRepeatKey < 0x6e)) - { - post_in_KeyQueue(0xe0); - post_in_KeyQueue(keyboard_mf1_code[KeyAutoRepeatKey-0x60]); - } - else if (KeyAutoRepeatKey == 0x6e) - { - if (KeyAltState) - post_in_KeyQueue(0x54); - else - { - post_in_KeyQueue(0xe0); - post_in_KeyQueue(0x37); - } - } - else if (KeyAutoRepeatKey == 0x6f) - ; - else - { - post_in_KeyQueue(KeyAutoRepeatKey); - } - read_key_if_possible(); - KeyAutoRepeatTimer = KeyAutoRepeatRate; - } -} - -static void poll_mouse(void) -{ - static int last_mx = 0, last_my = 0; - int new_mx, new_my; - int delta_x, delta_y, buttons; - - buttons = readinputport(input_port_mouse_buttons_geneve); - new_mx = readinputport(input_port_mouse_deltax_geneve); - new_my = readinputport(input_port_mouse_deltay_geneve); - - /* compute x delta */ - delta_x = new_mx - last_mx; - - /* check for wrap */ - if (delta_x > 0x80) - delta_x = 0x100-delta_x; - if (delta_x < -0x80) - delta_x = -0x100-delta_x; - - last_mx = new_mx; - - /* compute y delta */ - delta_y = new_my - last_my; - - /* check for wrap */ - if (delta_y > 0x80) - delta_y = 0x100-delta_y; - if (delta_y < -0x80) - delta_y = -0x100-delta_y; - - last_my = new_my; - - v9938_update_mouse_state(delta_x, delta_y, buttons & 3); -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark TMS9901 INTERFACE -#endif -/* - Geneve-specific tms9901 I/O handlers - - See mess/machine/tms9901.c for generic tms9901 CRU handlers. -*/ -/* - TMS9901 interrupt handling on a Geneve. - - Geneve uses the following interrupts: - INT1: external interrupt (used by RS232 controller, for instance) - - connected to tms9995 int4, too. - INT2: VDP interrupt - TMS9901 timer interrupt? (overrides INT3) - INT8: keyboard interrupt??? - INT10: mouse interrupt??? - INT11: clock interrupt??? - INT12: INTB interrupt from PE-bus -*/ - -/* - set the state of int2 (called by tms9928 core) -*/ -/*void tms9901_set_int2(int state) -{ - tms9901_set_single_int(0, 2, state); -}*/ - -/* - Called by the 9901 core whenever the state of INTREQ and IC0-3 changes -*/ -static void tms9901_interrupt_callback(int intreq, int ic) -{ - /* INTREQ is connected to INT1 (IC0-3 are not connected) */ - cpunum_set_input_line(0, 0, intreq ? ASSERT_LINE : CLEAR_LINE); -} - -/* - Read pins INT3*-INT7* of Geneve 9901. - - signification: - (bit 1: INT1 status) - (bit 2: INT2 status) - bit 3-7: joystick status -*/ -static int R9901_0(int offset) -{ - int answer; - - answer = readinputport(input_port_joysticks_geneve) >> (JoySel * 8); - - return (answer); -} - -/* - Read pins INT8*-INT15* of Geneve 9901. - - signification: - (bit 0: keyboard interrupt) - bit 1: unused - bit 2: mouse right button - (bit 3: clock interrupt) - (bit 4: INTB from PE-bus) - bit 5 & 7: used as output - bit 6: unused -*/ -static int R9901_1(int offset) -{ - int answer; - - answer = (readinputport(input_port_mouse_buttons_geneve) & 4) ^ 4; - - return answer; -} - -/* - Read pins P0-P7 of Geneve 9901. -*/ -static int R9901_2(int offset) -{ - return 0; -} - -/* - Read pins P8-P15 of Geneve 9901. - bit 4: mouse right button -*/ -static int R9901_3(int offset) -{ - int answer = 0; - - if (! (readinputport(input_port_mouse_buttons_geneve) & 4)) - answer |= 0x10; - - return answer; -} - - -/* - Write PE bus reset line -*/ -static void W9901_PE_bus_reset(int offset, int data) -{ -} - -/* - Write VDP reset line -*/ -static void W9901_VDP_reset(int offset, int data) -{ -} - -/* - Write joystick select line -*/ -static void W9901_JoySel(int offset, int data) -{ - JoySel = data; -} - -static void W9901_KeyboardReset(int offset, int data) -{ - KeyReset = ! data; - if (KeyReset) - { - /* reset -> clear keyboard key queue, but not geneve key buffer */ - KeyQueueLen = KeyInBuf ? 1 : 0; - memset(KeyStateSave, 0, sizeof(KeyStateSave)); - KeyNumLockState = 0; - KeyCtrlState = 0; - KeyAltState = 0; - KeyRealShiftState = 0; - KeyFakeShiftState = 0; - KeyFakeUnshiftState = 0; - KeyAutoRepeatKey = 0; - } - /*else - poll_keyboard();*/ -} - -/* - Write external mem cycles (0=long, 1=short) -*/ -static void W9901_ext_mem_wait_states(int offset, int data) -{ -} - -/* - Write vdp wait cycles (1=add 15 cycles, 0=add none) -*/ -static void W9901_VDP_wait_states(int offset, int data) -{ -} - - - diff --git a/mess/machine/intv.c b/mess/machine/intv.c deleted file mode 100644 index 6c94ea344..000000000 --- a/mess/machine/intv.c +++ /dev/null @@ -1,513 +0,0 @@ -#include "driver.h" -#include "vidhrdw/stic.h" -#include "includes/intv.h" -#include "cpu/cp1610/cp1610.h" -#include "image.h" - -UINT8 intv_gramdirty; -UINT8 intv_gram[512]; -UINT8 intv_gramdirtybytes[512]; - -UINT16 *intvkbd_dualport_ram; - -WRITE16_HANDLER ( intvkbd_dualport16_w ) -{ - unsigned char *RAM; - - COMBINE_DATA(&intvkbd_dualport_ram[offset]); - - /* copy the LSB over to the 6502 OP RAM, in case they are opcodes */ - RAM = memory_region(REGION_CPU2); - RAM[offset] = (UINT8) (data >> 0); -} - -READ8_HANDLER ( intvkbd_dualport8_lsb_r ) -{ - return (UINT8) (intvkbd_dualport_ram[offset] >> 0); -} - -WRITE8_HANDLER ( intvkbd_dualport8_lsb_w ) -{ - unsigned char *RAM; - - intvkbd_dualport_ram[offset] &= ~0x00FF; - intvkbd_dualport_ram[offset] |= ((UINT16) data) << 0; - - /* copy over to the 6502 OP RAM, in case they are opcodes */ - RAM = memory_region(REGION_CPU2); - RAM[offset] = data; -} - -static int intvkbd_keyboard_col; -static int tape_int_pending; -static int sr1_int_pending; - -int intvkbd_text_blanked; - -READ8_HANDLER ( intvkbd_dualport8_msb_r ) -{ - unsigned char rv; - - if (offset < 0x100) - { - switch (offset) - { - case 0x000: - rv = input_port_10_r(0) & 0x80; - logerror("TAPE: Read %02x from 0x40%02x - XOR Data?\n",rv,offset); - break; - case 0x001: - rv = (input_port_10_r(0) & 0x40) << 1; - logerror("TAPE: Read %02x from 0x40%02x - Sense 1?\n",rv,offset); - break; - case 0x002: - rv = (input_port_10_r(0) & 0x20) << 2; - logerror("TAPE: Read %02x from 0x40%02x - Sense 2?\n",rv,offset); - break; - case 0x003: - rv = (input_port_10_r(0) & 0x10) << 3; - logerror("TAPE: Read %02x from 0x40%02x - Tape Present\n",rv,offset); - break; - case 0x004: - rv = (input_port_10_r(0) & 0x08) << 4; - logerror("TAPE: Read %02x from 0x40%02x - Comp (339/1)\n",rv,offset); - break; - case 0x005: - rv = (input_port_10_r(0) & 0x04) << 5; - logerror("TAPE: Read %02x from 0x40%02x - Clocked Comp (339/13)\n",rv,offset); - break; - case 0x006: - if (sr1_int_pending) - rv = 0x00; - else - rv = 0x80; - logerror("TAPE: Read %02x from 0x40%02x - SR1 Int Pending\n",rv,offset); - break; - case 0x007: - if (tape_int_pending) - rv = 0x00; - else - rv = 0x80; - logerror("TAPE: Read %02x from 0x40%02x - Tape? Int Pending\n",rv,offset); - break; - case 0x060: /* Keyboard Read */ - rv = 0xff; - if (intvkbd_keyboard_col == 0) - rv = input_port_0_r(0); - if (intvkbd_keyboard_col == 1) - rv = input_port_1_r(0); - if (intvkbd_keyboard_col == 2) - rv = input_port_2_r(0); - if (intvkbd_keyboard_col == 3) - rv = input_port_3_r(0); - if (intvkbd_keyboard_col == 4) - rv = input_port_4_r(0); - if (intvkbd_keyboard_col == 5) - rv = input_port_5_r(0); - if (intvkbd_keyboard_col == 6) - rv = input_port_6_r(0); - if (intvkbd_keyboard_col == 7) - rv = input_port_7_r(0); - if (intvkbd_keyboard_col == 8) - rv = input_port_8_r(0); - if (intvkbd_keyboard_col == 9) - rv = input_port_9_r(0); - break; - case 0x80: - rv = 0x00; - logerror("TAPE: Read %02x from 0x40%02x, clear tape int pending\n",rv,offset); - tape_int_pending = 0; - break; - case 0xa0: - rv = 0x00; - logerror("TAPE: Read %02x from 0x40%02x, clear SR1 int pending\n",rv,offset); - sr1_int_pending = 0; - break; - case 0xc0: - case 0xc1: - case 0xc2: - case 0xc3: - case 0xc4: - case 0xc5: - case 0xc6: - case 0xc7: - case 0xc8: - case 0xc9: - case 0xca: - case 0xcb: - case 0xcc: - case 0xcd: - case 0xce: - case 0xcf: - /* TMS9927 regs */ - rv = intvkbd_tms9927_r(offset-0xc0); - break; - default: - rv = (intvkbd_dualport_ram[offset]&0x0300)>>8; - logerror("Unknown read %02x from 0x40%02x\n",rv,offset); - break; - } - return rv; - } - else - return (intvkbd_dualport_ram[offset]&0x0300)>>8; -} - -static int tape_interrupts_enabled; -static int tape_unknown_write[6]; -static int tape_motor_mode; -static const char *tape_motor_mode_desc[8] = -{ - "IDLE", "IDLE", "IDLE", "IDLE", - "EJECT", "PLAY/RECORD", "REWIND", "FF" -}; - -WRITE8_HANDLER ( intvkbd_dualport8_msb_w ) -{ - unsigned int mask; - - if (offset < 0x100) - { - switch (offset) - { - case 0x020: - tape_motor_mode &= 3; - if (data & 1) - tape_motor_mode |= 4; - logerror("TAPE: Motor Mode: %s\n",tape_motor_mode_desc[tape_motor_mode]); - break; - case 0x021: - tape_motor_mode &= 5; - if (data & 1) - tape_motor_mode |= 2; - logerror("TAPE: Motor Mode: %s\n",tape_motor_mode_desc[tape_motor_mode]); - break; - case 0x022: - tape_motor_mode &= 6; - if (data & 1) - tape_motor_mode |= 1; - logerror("TAPE: Motor Mode: %s\n",tape_motor_mode_desc[tape_motor_mode]); - break; - case 0x023: - case 0x024: - case 0x025: - case 0x026: - case 0x027: - tape_unknown_write[offset - 0x23] = (data & 1); - break; - case 0x040: - tape_unknown_write[5] = (data & 1); - break; - case 0x041: - if (data & 1) - logerror("TAPE: Tape Interrupts Enabled\n"); - else - logerror("TAPE: Tape Interrupts Disabled\n"); - tape_interrupts_enabled = (data & 1); - break; - case 0x042: - if (data & 1) - logerror("TAPE: Cart Bus Interrupts Disabled\n"); - else - logerror("TAPE: Cart Bus Interrupts Enabled\n"); - break; - case 0x043: - if (data & 0x01) - intvkbd_text_blanked = 0; - else - intvkbd_text_blanked = 1; - break; - case 0x044: - intvkbd_keyboard_col &= 0x0e; - intvkbd_keyboard_col |= (data&0x01); - break; - case 0x045: - intvkbd_keyboard_col &= 0x0d; - intvkbd_keyboard_col |= ((data&0x01)<<1); - break; - case 0x046: - intvkbd_keyboard_col &= 0x0b; - intvkbd_keyboard_col |= ((data&0x01)<<2); - break; - case 0x047: - intvkbd_keyboard_col &= 0x07; - intvkbd_keyboard_col |= ((data&0x01)<<3); - break; - case 0x80: - logerror("TAPE: Write to 0x40%02x, clear tape int pending\n",offset); - tape_int_pending = 0; - break; - case 0xa0: - logerror("TAPE: Write to 0x40%02x, clear SR1 int pending\n",offset); - sr1_int_pending = 0; - break; - case 0xc0: - case 0xc1: - case 0xc2: - case 0xc3: - case 0xc4: - case 0xc5: - case 0xc6: - case 0xc7: - case 0xc8: - case 0xc9: - case 0xca: - case 0xcb: - case 0xcc: - case 0xcd: - case 0xce: - case 0xcf: - /* TMS9927 regs */ - intvkbd_tms9927_w(offset-0xc0, data); - break; - default: - logerror("%04X: Unknown write %02x to 0x40%02x\n",activecpu_get_pc(),data,offset); - break; - } - } - else - { - mask = intvkbd_dualport_ram[offset] & 0x00ff; - intvkbd_dualport_ram[offset] = mask | ((data<<8)&0x0300); - } -} - -READ16_HANDLER( intv_gram_r ) -{ - //logerror("read: %d = GRAM(%d)\n",intv_gram[offset],offset); - return (int)intv_gram[offset]; -} - -WRITE16_HANDLER( intv_gram_w ) -{ - data &= 0xFF; - - intv_gram[offset] = data; - intv_gramdirtybytes[offset] = 1; - intv_gramdirty = 1; -} - -static unsigned char intv_ram8[256]; - -READ16_HANDLER( intv_ram8_r ) -{ - //logerror("%x = ram8_r(%x)\n",intv_ram8[offset],offset); - return (int)intv_ram8[offset]; -} - -WRITE16_HANDLER( intv_ram8_w ) -{ - //logerror("ram8_w(%x) = %x\n",offset,data); - intv_ram8[offset] = data&0xff; -} - -UINT16 intv_ram16[0x160]; - -READ16_HANDLER( intv_ram16_r ) -{ - //logerror("%x = ram16_r(%x)\n",intv_ram16[offset],offset); - return (int)intv_ram16[offset]; -} - -WRITE16_HANDLER( intv_ram16_w ) -{ - //logerror("%g: WRITING TO GRAM offset = %d\n",timer_get_time(),offset); - //logerror("ram16_w(%x) = %x\n",offset,data); - intv_ram16[offset] = data&0xffff; -} - -static int intv_load_rom_file(mess_image *image, int required) -{ - int i; - - UINT8 temp; - UINT8 num_segments; - UINT8 start_seg; - UINT8 end_seg; - - UINT16 current_address; - UINT32 end_address; - - UINT8 high_byte; - UINT8 low_byte; - - UINT8 *memory = memory_region(REGION_CPU1); - - image_fread(image, &temp,1); /* header */ - if (temp != 0xa8) - { - return INIT_FAIL; - } - - image_fread(image, &num_segments,1); - - image_fread(image, &temp,1); - if (temp != (num_segments ^ 0xff)) - { - return INIT_FAIL; - } - - for(i=0;i=0; bit--) - { - if (value & (1<> (x & 7); - break; - case 'b': - if (i & 2) - *dst |= 0x80 >> (x & 7); - break; - case 'c': - if (i & 4) - *dst |= 0x80 >> (x & 7); - break; - case 'd': - if (i & 8) - *dst |= 0x80 >> (x & 7); - break; - case 'e': - if (i & 16) - *dst |= 0x80 >> (x & 7); - break; - case 'f': - if (i & 32) - *dst |= 0x80 >> (x & 7); - break; - case 'g': - if (i & 64) - *dst |= 0x80 >> (x & 7); - break; - } - if ((x & 7) == 7) - dst++; - } - dst++; - } - } - - dst = memory_region(2); - memset(dst, 0, 24 * 18 * 24 / 8); - for (i = 0; i < 24; i++) - { - for (y = 0; y < 18; y++) - { - for (x = 0; x < 24; x++) - { - switch (keys[i][y * 24 + x]) - { - case 'a': - *dst |= 0x80 >> ((x & 3) * 2); - break; - case 'b': - *dst |= 0x40 >> ((x & 3) * 2); - break; - case 'c': - *dst |= 0xc0 >> ((x & 3) * 2); - break; - } - if ((x & 3) == 3) - dst++; - } - } - } -// artwork_set_overlay(kim1_overlay); -} - -static void set_chip_clock(int chip, int data) -{ - timer_adjust(m6530[chip].timer, 0, chip, TIME_IN_HZ((data + 1) * m6530[chip].clock / 256 / 256)); -} - -MACHINE_RESET( kim1 ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - /* setup RAM IRQ vector */ - if (RAM[0x17fa] == 0x00 && RAM[0x17fb] == 0x00) - { - RAM[0x17fa] = 0x00; - RAM[0x17fb] = 0x1c; - } - /* setup RAM NMI vector */ - if (RAM[0x17fe] == 0x00 && RAM[0x17ff] == 0x00) - { - RAM[0x17fe] = 0x00; - RAM[0x17ff] = 0x1c; - } - - /* reset the 6530 */ - memset(&m6530, 0, sizeof (m6530)); - - m6530[0].dria = 0xff; - m6530[0].drib = 0xff; - m6530[0].clock = (double) 1000000 / 1; - m6530[0].timer = timer_alloc(m6530_timer_cb); - set_chip_clock(0, 255); - - m6530[1].dria = 0xff; - m6530[1].drib = 0xff; - m6530[1].clock = (double) 1000000 / 1; - m6530[1].timer = timer_alloc(m6530_timer_cb); - set_chip_clock(1, 255); -} - -static DEVICE_LOAD( kim1_cassette ) -{ - const char magic[] = "KIM1"; - char buff[4]; - UINT16 addr, size; - UINT8 ident, *RAM = memory_region(REGION_CPU1); - - image_fread(image, buff, sizeof (buff)); - if (memcmp(buff, magic, sizeof (buff))) - { - logerror("kim1_rom_load: magic '%s' not found\n", magic); - return INIT_FAIL; - } - image_fread(image, &addr, 2); - addr = LITTLE_ENDIANIZE_INT16(addr); - image_fread(image, &size, 2); - size = LITTLE_ENDIANIZE_INT16(size); - image_fread(image, &ident, 1); - logerror("kim1_rom_load: $%04X $%04X $%02X\n", addr, size, ident); - while (size-- > 0) - image_fread(image, &RAM[addr++], 1); - return INIT_PASS; -} - -static void m6530_timer_cb(int chip) -{ - logerror("m6530(%d) timer expired\n", chip); - m6530[chip].state |= 0x80; - if (m6530[chip].irqen) /* with IRQ? */ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -INTERRUPT_GEN( kim1_interrupt ) -{ - int i; - - /* decrease the brightness of the six 7segment LEDs */ - for (i = 0; i < 6; i++) - { - if (videoram[i * 2 + 1] > 0) - videoram[i * 2 + 1] -= 1; - } -} - -INLINE int m6530_r(int chip, int offset) -{ - int data = 0xff; - - switch (offset) - { - case 0x00: - case 0x08: /* Data register A */ - if (chip == 1) - { - int which = ((m6530[1].drob & m6530[1].ddrb) >> 1) & 0x0f; - - switch (which) - { - case 0: /* key row 1 */ - m6530[1].dria = input_port_0_r(0); - logerror("read keybd(%d): %c%c%c%c%c%c%c\n", - which, - (m6530[1].dria & 0x40) ? '.' : '0', - (m6530[1].dria & 0x20) ? '.' : '1', - (m6530[1].dria & 0x10) ? '.' : '2', - (m6530[1].dria & 0x08) ? '.' : '3', - (m6530[1].dria & 0x04) ? '.' : '4', - (m6530[1].dria & 0x02) ? '.' : '5', - (m6530[1].dria & 0x01) ? '.' : '6'); - break; - case 1: /* key row 2 */ - m6530[1].dria = input_port_1_r(0); - logerror("read keybd(%d): %c%c%c%c%c%c%c\n", - which, - (m6530[1].dria & 0x40) ? '.' : '7', - (m6530[1].dria & 0x20) ? '.' : '8', - (m6530[1].dria & 0x10) ? '.' : '9', - (m6530[1].dria & 0x08) ? '.' : 'A', - (m6530[1].dria & 0x04) ? '.' : 'B', - (m6530[1].dria & 0x02) ? '.' : 'C', - (m6530[1].dria & 0x01) ? '.' : 'D'); - break; - case 2: /* key row 3 */ - m6530[1].dria = input_port_2_r(0); - logerror("read keybd(%d): %c%c%c%c%c%c%c\n", - which, - (m6530[1].dria & 0x40) ? '.' : 'E', - (m6530[1].dria & 0x20) ? '.' : 'F', - (m6530[1].dria & 0x10) ? '.' : 'a', - (m6530[1].dria & 0x08) ? '.' : 'd', - (m6530[1].dria & 0x04) ? '.' : '+', - (m6530[1].dria & 0x02) ? '.' : 'g', - (m6530[1].dria & 0x01) ? '.' : 'p'); - break; - case 3: /* WR4?? */ - m6530[1].dria = 0xff; - break; - default: - m6530[1].dria = 0xff; - logerror("read DRA(%d) $ff\n", which); - } - } - data = (m6530[chip].dria & ~m6530[chip].ddra) | (m6530[chip].droa & m6530[chip].ddra); - logerror("m6530(%d) DRA read : $%02x\n", chip, data); - break; - case 0x01: - case 0x09: /* Data direction register A */ - data = m6530[chip].ddra; - logerror("m6530(%d) DDRA read : $%02x\n", chip, data); - break; - case 0x02: - case 0x0a: /* Data register B */ - data = (m6530[chip].drib & ~m6530[chip].ddrb) | (m6530[chip].drob & m6530[chip].ddrb); - logerror("m6530(%d) DRB read : $%02x\n", chip, data); - break; - case 0x03: - case 0x0b: /* Data direction register B */ - data = m6530[chip].ddrb; - logerror("m6530(%d) DDRB read : $%02x\n", chip, data); - break; - case 0x04: - case 0x0c: /* Timer count read (not supported?) */ - data = (int) (256 * timer_timeleft(m6530[chip].timer) / TIME_IN_HZ(m6530[chip].clock)); - m6530[chip].irqen = (offset & 8) ? 1 : 0; - logerror("m6530(%d) TIMR read : $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - break; - case 0x05: - case 0x0d: /* Timer count read (not supported?) */ - data = (int) (256 * timer_timeleft(m6530[chip].timer) / TIME_IN_HZ(m6530[chip].clock)); - m6530[chip].irqen = (offset & 8) ? 1 : 0; - logerror("m6530(%d) TIMR read : $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - break; - case 0x06: - case 0x0e: /* Timer count read */ - data = (int) (256 * timer_timeleft(m6530[chip].timer) / TIME_IN_HZ(m6530[chip].clock)); - m6530[chip].irqen = (offset & 8) ? 1 : 0; - logerror("m6530(%d) TIMR read : $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - break; - case 0x07: - case 0x0f: /* Timer status read */ - data = m6530[chip].state; - m6530[chip].state &= ~0x80; - m6530[chip].irqen = (offset & 8) ? 1 : 0; - logerror("m6530(%d) STAT read : $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - break; - } - return data; -} - - READ8_HANDLER ( m6530_003_r ) -{ - return m6530_r(0, offset); -} - READ8_HANDLER ( m6530_002_r ) -{ - return m6530_r(1, offset); -} - -static void m6530_w(int chip, int offset, int data) -{ - switch (offset) - { - case 0x00: - case 0x08: /* Data register A */ - logerror("m6530(%d) DRA write: $%02x\n", chip, data); - m6530[chip].droa = data; - if (chip == 1) - { - int which = (m6530[1].drob & m6530[1].ddrb) >> 1; - - switch (which) - { - case 0: /* key row 1 */ - break; - case 1: /* key row 2 */ - break; - case 2: /* key row 3 */ - break; - case 3: /* WR4?? */ - break; - /* write LED # 1-6 */ - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - if (data & 0x80) - { - logerror("write 7seg(%d): %c%c%c%c%c%c%c\n", - which + 1 - 4, - (data & 0x01) ? 'a' : '.', - (data & 0x02) ? 'b' : '.', - (data & 0x04) ? 'c' : '.', - (data & 0x08) ? 'd' : '.', - (data & 0x10) ? 'e' : '.', - (data & 0x20) ? 'f' : '.', - (data & 0x40) ? 'g' : '.'); - videoram[(which - 4) * 2 + 0] = data & 0x7f; - videoram[(which - 4) * 2 + 1] = 15; - } - } - } - break; - case 0x01: - case 0x09: /* Data direction register A */ - logerror("m6530(%d) DDRA write: $%02x\n", chip, data); - m6530[chip].ddra = data; - break; - case 0x02: - case 0x0a: /* Data register B */ - logerror("m6530(%d) DRB write: $%02x\n", chip, data); - m6530[chip].drob = data; - if (chip == 1) - { - int which = m6530[1].ddrb & m6530[1].drob; - - if ((which & 0x3f) == 0x27) - { - /* This is the cassette output port */ - logerror("write cassette port: %d\n", (which & 0x80) ? 1 : 0); - DAC_signed_data_w(0, (which & 0x80) ? 255 : 0); - } - } - break; - case 0x03: - case 0x0b: /* Data direction register B */ - logerror("m6530(%d) DDRB write: $%02x\n", chip, data); - m6530[chip].ddrb = data; - break; - case 0x04: - case 0x0c: /* Timer 1 start */ - logerror("m6530(%d) TMR1 write: $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - m6530[chip].state &= ~0x80; - m6530[chip].irqen = (offset & 8) ? 1 : 0; - m6530[chip].clock = (double) 1000000 / 1; - set_chip_clock(chip, data); - break; - case 0x05: - case 0x0d: /* Timer 8 start */ - logerror("m6530(%d) TMR8 write: $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - m6530[chip].state &= ~0x80; - m6530[chip].irqen = (offset & 8) ? 1 : 0; - m6530[chip].clock = (double) 1000000 / 8; - set_chip_clock(chip, data); - break; - case 0x06: - case 0x0e: /* Timer 64 start */ - logerror("m6530(%d) TMR64 write: $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - m6530[chip].state &= ~0x80; - m6530[chip].irqen = (offset & 8) ? 1 : 0; - m6530[chip].clock = (double) 1000000 / 64; - set_chip_clock(chip, data); - break; - case 0x07: - case 0x0f: /* Timer 1024 start */ - logerror("m6530(%d) TMR1K write: $%02x%s\n", chip, data, (offset & 8) ? " (IRQ)" : ""); - m6530[chip].state &= ~0x80; - m6530[chip].irqen = (offset & 8) ? 1 : 0; - m6530[chip].clock = (double) 1000000 / 1024; - set_chip_clock(chip, data); - break; - } -} - -WRITE8_HANDLER ( m6530_003_w ) -{ - m6530_w(0, offset, data); -} -WRITE8_HANDLER ( m6530_002_w ) -{ - m6530_w(1, offset, data); -} - -void kim1_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_RESET_ON_LOAD: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_kim1_cassette; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "kim1"); break; - } -} - - diff --git a/mess/machine/mac.c b/mess/machine/mac.c deleted file mode 100644 index e8ce8fc43..000000000 --- a/mess/machine/mac.c +++ /dev/null @@ -1,2420 +0,0 @@ -/**************************************************************************** - Mac hardware - - The hardware for Mac 128k, 512k, 512ke, Plus (SCSI, SCC, etc). - - Nate Woods - Ernesto Corvi - Raphael Nabet - - Mac Model Feature Summary: - - CPU FDC Keyb PRAM ROMMir - - Mac 128k 68k IWM orig orig ??? - - Mac 512k 68k IWM orig orig ??? - - Mac 512ke 68k IWM orig orig ??? - - Mac Plus 68k IWM orig ext no - - Mac SE 68k IWM ADB ext ??? - - Mac Classic 68k IWM ADB ext ??? - - Notes: - - The Mac Plus boot code seems to check to see the extent of ROM - mirroring to determine if SCSI is available. If the ROM is mirrored, - then SCSI is not available. Thanks to R. Belmont for making this - discovery. - - TODO: - - Call the RTC timer - - - Support Mac 128k, 512k (easy, we just need the ROM image) - - Support Mac SE, Classic (we need to find the ROMs and implement ADB; - SE FDHD and Classic require SIWM support, too) - - Check that 0x600000-0x6fffff still address RAM when overlay bit is off - (IM-III seems to say it does not on Mac 128k, 512k, and 512ke). - - What on earth are 0x700000-0x7fffff mapped to ? - -****************************************************************************/ - -#include - -#include "driver.h" -#include "state.h" -#include "machine/6522via.h" -#include "machine/8530scc.h" -#include "vidhrdw/generic.h" -#include "cpu/m68000/m68000.h" -#include "machine/applefdc.h" -#include "devices/sonydriv.h" -#include "machine/ncr5380.h" -#include "includes/mac.h" - -#ifdef MAME_DEBUG -#define LOG_VIA 0 -#define LOG_RTC 0 -#define LOG_MAC_IWM 0 -#define LOG_GENERAL 0 -#define LOG_KEYBOARD 0 -#define LOG_MEMORY 0 -#else -#define LOG_VIA 0 -#define LOG_RTC 0 -#define LOG_MAC_IWM 0 -#define LOG_GENERAL 0 -#define LOG_KEYBOARD 0 -#define LOG_MEMORY 0 -#endif - -static int scan_keyboard(void); -static void inquiry_timeout_func(int unused); -static void keyboard_receive(int val); -static READ8_HANDLER(mac_via_in_a); -static READ8_HANDLER(mac_via_in_b); -static WRITE8_HANDLER(mac_via_out_a); -static WRITE8_HANDLER(mac_via_out_b); -static WRITE8_HANDLER(mac_via_out_cb2); -static void mac_via_irq(int state); -static offs_t mac_dasm_override(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram); - -static struct via6522_interface mac_via6522_intf = -{ - mac_via_in_a, mac_via_in_b, - NULL, NULL, - NULL, NULL, - mac_via_out_a, mac_via_out_b, - NULL, NULL, - NULL, mac_via_out_cb2, - mac_via_irq -}; - -/* tells which model is being emulated (set by macxxx_init) */ -typedef enum -{ - MODEL_MAC_128K512K, - MODEL_MAC_512KE, - MODEL_MAC_PLUS, - MODEL_MAC_SE -} mac_model_t; - -static UINT32 mac_overlay = 0; -static mac_model_t mac_model; - - - -static void mac_install_memory(offs_t memory_begin, offs_t memory_end, - offs_t memory_size, void *memory_data, int is_rom, int bank) -{ - offs_t memory_mask; - read16_handler rh; - write16_handler wh; - - memory_size = MIN(memory_size, (memory_end + 1 - memory_begin)); - memory_mask = memory_size - 1; - - rh = (read16_handler) bank; - wh = is_rom ? MWA16_ROM : (write16_handler) bank; - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, memory_begin, - memory_end, memory_mask, 0, rh); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, memory_begin, - memory_end, memory_mask, 0, wh); - - memory_set_bankptr(bank, memory_data); - - if (LOG_MEMORY) - { - logerror("mac_install_memory(): bank=%d range=[0x%06x...0x%06x] mask=0x%06x ptr=0x%p\n", - bank, memory_begin, memory_end, memory_mask, memory_data); - } -} - - - -/* - Interrupt handling -*/ - -static int scc_interrupt, via_interrupt; - -static void mac_field_interrupts(void) -{ - if (scc_interrupt) - /* SCC interrupt */ - cpunum_set_input_line(0, 2, ASSERT_LINE); - else if (via_interrupt) - /* VIA interrupt */ - cpunum_set_input_line(0, 1, ASSERT_LINE); - else - /* clear all interrupts */ - cpunum_set_input_line(0, 7, CLEAR_LINE); -} - -static void set_scc_interrupt(int value) -{ - scc_interrupt = value; - mac_field_interrupts(); -} - -static void set_via_interrupt(int value) -{ - via_interrupt = value; - mac_field_interrupts(); -} - - -WRITE16_HANDLER ( mac_autovector_w ) -{ - if (LOG_GENERAL) - logerror("mac_autovector_w: offset=0x%08x data=0x%04x\n", offset, data); - - /* This should throw an exception */ - - /* Not yet implemented */ -} - -READ16_HANDLER ( mac_autovector_r ) -{ - if (LOG_GENERAL) - logerror("mac_autovector_r: offset=0x%08x\n", offset); - - /* This should throw an exception */ - - /* Not yet implemented */ - return 0; -} - -static void set_scc_waitrequest(int waitrequest) -{ - if (LOG_GENERAL) - logerror("set_scc_waitrequest: waitrequest=%i\n", waitrequest); - - /* Not Yet Implemented */ -} - - - -static void set_memory_overlay(int overlay) -{ - offs_t memory_size; - UINT8 *memory_data; - int is_rom; - - /* normalize overlay */ - overlay = overlay ? TRUE : FALSE; - - if (overlay != mac_overlay) - { - /* set up either main RAM area or ROM mirror at 0x000000-0x3fffff */ - if (overlay) - { - /* ROM mirror */ - memory_size = memory_region_length(REGION_USER1); - memory_data = memory_region(REGION_USER1); - is_rom = TRUE; - - /* HACK! - copy in the initial reset/stack */ - memcpy(mess_ram, memory_data, 8); - } - else - { - /* RAM */ - memory_size = mess_ram_size; - memory_data = mess_ram; - is_rom = FALSE; - } - - /* install the memory */ - mac_install_memory(0x000000, 0x3fffff, memory_size, memory_data, is_rom, 1); - - mac_overlay = overlay; - - if (LOG_GENERAL) - logerror("set_memory_overlay: overlay=%i\n", overlay); - } -} - - - -/* - R Nabet 000531 : added keyboard code -*/ - -/* ************************************************************************* - * non-ADB keyboard support - * - * The keyboard uses a i8021 (?) microcontroller. - * It uses a bidirectional synchonous serial line, connected to the VIA (SR feature) - * - * Our emulation is more a hack than anything else - the keyboard controller is - * not emulated, instead we interpret keyboard commands directly. I made - * many guesses, which may be wrong - * - * todo : - * * find the correct model number for the Mac Plus keyboard ? - * * emulate original Macintosh keyboards (2 layouts : US and international) - * - * references : - * * IM III-29 through III-32 and III-39 through III-42 - * * IM IV-250 - * *************************************************************************/ - -/* used to store the reply to most keyboard commands */ -static int keyboard_reply; - -/* Keyboard communication in progress? */ -static int kbd_comm; -static int kbd_receive; -/* timer which is used to time out inquiry */ -static mame_timer *inquiry_timeout; - -static int kbd_shift_reg; -static int kbd_shift_count; - -/* - scan_keyboard() - - scan the keyboard, and returns key transition code (or NULL ($7B) if none) -*/ - -/* keyboard matrix to detect transition */ -static int key_matrix[7]; - -/* keycode buffer (used for keypad/arrow key transition) */ -static int keycode_buf[2]; -static int keycode_buf_index; - -static int scan_keyboard() -{ - int i, j; - int keybuf; - int keycode; - - if (keycode_buf_index) - { - return keycode_buf[--keycode_buf_index]; - } - - for (i=0; i<7; i++) - { - keybuf = readinputport(i+3); - - if (keybuf != key_matrix[i]) - { - /* if state has changed, find first bit which has changed */ - if (LOG_KEYBOARD) - logerror("keyboard state changed, %d %X\n", i, keybuf); - - for (j=0; j<16; j++) - { - if (((keybuf ^ key_matrix[i]) >> j) & 1) - { - /* update key_matrix */ - key_matrix[i] = (key_matrix[i] & ~ (1 << j)) | (keybuf & (1 << j)); - - if (i < 4) - { - /* create key code */ - keycode = (i << 5) | (j << 1) | 0x01; - if (! (keybuf & (1 << j))) - { - /* key up */ - keycode |= 0x80; - } - return keycode; - } - else if (i < 6) - { - /* create key code */ - keycode = ((i & 3) << 5) | (j << 1) | 0x01; - - if ((keycode == 0x05) || (keycode == 0x0d) || (keycode == 0x11) || (keycode == 0x1b)) - { - /* these keys cause shift to be pressed (for compatibility with mac 128/512) */ - if (keybuf & (1 << j)) - { - /* key down */ - if (! (key_matrix[3] & 0x0100)) - { - /* shift key is really up */ - keycode_buf[0] = keycode; - keycode_buf[1] = 0x79; - keycode_buf_index = 2; - return 0x71; /* "presses" shift down */ - } - } - else - { /* key up */ - if (! (key_matrix[3] & 0x0100)) - { - /* shift key is really up */ - keycode_buf[0] = keycode | 0x80;; - keycode_buf[1] = 0x79; - keycode_buf_index = 2; - return 0xF1; /* "releases" shift */ - } - } - } - - if (! (keybuf & (1 << j))) - { - /* key up */ - keycode |= 0x80; - } - keycode_buf[0] = keycode; - keycode_buf_index = 1; - return 0x79; - } - else /* i == 6 */ - { - /* create key code */ - keycode = (j << 1) | 0x01; - if (! (keybuf & (1 << j))) - { - /* key up */ - keycode |= 0x80; - } - keycode_buf[0] = keycode; - keycode_buf_index = 1; - return 0x79; - } - } - } - } - } - - return 0x7B; /* return NULL */ -} - -/* - power-up init -*/ -static void keyboard_init(void) -{ - int i; - - /* init flag */ - kbd_comm = FALSE; - kbd_receive = FALSE; - kbd_shift_reg=0; - kbd_shift_count=0; - - /* clear key matrix */ - for (i=0; i<7; i++) - { - key_matrix[i] = 0; - } - - /* purge transmission buffer */ - keycode_buf_index = 0; -} - -/******************* Keyboard <-> VIA communication ***********************/ - -static void kbd_clock(int param) -{ - int i; - if (kbd_comm == TRUE) - { - for (i=0; i<8; i++) - { - /* Put data on CB2 if we are sending*/ - if (kbd_receive == FALSE) - via_set_input_cb2(0, kbd_shift_reg&0x80?1:0); - kbd_shift_reg <<= 1; - via_set_input_cb1(0, 0); - via_set_input_cb1(0, 1); - } - if (kbd_receive == TRUE) - { - kbd_receive = FALSE; - /* Process the command received from mac */ - keyboard_receive(kbd_shift_reg & 0xff); - } - else - { - /* Communication is over */ - kbd_comm = FALSE; - } - } -} - -static void kbd_shift_out(int data) -{ - if (kbd_comm == TRUE) - { - kbd_shift_reg = data; - timer_set(1e-3, 0, kbd_clock); - } -} - -static WRITE8_HANDLER(mac_via_out_cb2) -{ - if (kbd_comm == FALSE && data == 0) - { - /* Mac pulls CB2 down to initiate communication */ - kbd_comm = TRUE; - kbd_receive = TRUE; - timer_set(1e-4, 0, kbd_clock); - } - if (kbd_comm == TRUE && kbd_receive == TRUE) - { - /* Shift in what mac is sending */ - kbd_shift_reg = (kbd_shift_reg & ~1) | data; - } -} - -/* - called when inquiry times out (1/4s) -*/ -static void inquiry_timeout_func(int unused) -{ - if (LOG_KEYBOARD) - logerror("keyboard enquiry timeout\n"); - kbd_shift_out(0x7B); /* always send NULL */ -} - -/* - called when a command is received from the mac -*/ -static void keyboard_receive(int val) -{ - switch (val) - { - case 0x10: - /* inquiry - returns key transition code, or NULL ($7B) if time out (1/4s) */ - if (LOG_KEYBOARD) - logerror("keyboard command : inquiry\n"); - - keyboard_reply = scan_keyboard(); - if (keyboard_reply == 0x7B) - { - /* if NULL, wait until key pressed or timeout */ - mame_timer_adjust(inquiry_timeout, - make_mame_time(0, DOUBLE_TO_SUBSECONDS(0.25)), - 0, time_zero); - } - break; - - case 0x14: - /* instant - returns key transition code, or NULL ($7B) */ - if (LOG_KEYBOARD) - logerror("keyboard command : instant\n"); - - kbd_shift_out(scan_keyboard()); - break; - - case 0x16: - /* model number - resets keyboard, return model number */ - if (LOG_KEYBOARD) - logerror("keyboard command : model number\n"); - - { /* reset */ - int i; - - /* clear key matrix */ - for (i=0; i<7; i++) - { - key_matrix[i] = 0; - } - - /* purge transmission buffer */ - keycode_buf_index = 0; - } - - /* format : 1 if another device (-> keypad ?) connected | next device (-> keypad ?) number 1-8 - | keyboard model number 1-8 | 1 */ - /* keyboards : - 3 : mac 512k, US and international layout ? Mac plus ??? - other values : Apple II keyboards ? - */ - /* keypads : - ??? : standard keypad (always available on Mac Plus) ??? - */ - kbd_shift_out(0x17); /* probably wrong */ - break; - - case 0x36: - /* test - resets keyboard, return ACK ($7D) or NAK ($77) */ - if (LOG_KEYBOARD) - logerror("keyboard command : test\n"); - - kbd_shift_out(0x7D); /* ACK */ - break; - - default: - if (LOG_KEYBOARD) - logerror("unknown keyboard command 0x%X\n", val); - - kbd_shift_out(0); - break; - } -} - -/* ************************************************************************* - * Mouse - * *************************************************************************/ - -static int mouse_bit_x = 0, mouse_bit_y = 0; - -static void mouse_callback(void) -{ - static int last_mx = 0, last_my = 0; - static int count_x = 0, count_y = 0; - - int new_mx, new_my; - int x_needs_update = 0, y_needs_update = 0; - - new_mx = readinputport(1); - new_my = readinputport(2); - - /* see if it moved in the x coord */ - if (new_mx != last_mx) - { - int diff = new_mx - last_mx; - - /* check for wrap */ - if (diff > 0x80) - diff = 0x100-diff; - if (diff < -0x80) - diff = -0x100-diff; - - count_x += diff; - - last_mx = new_mx; - } - /* see if it moved in the y coord */ - if (new_my != last_my) - { - int diff = new_my - last_my; - - /* check for wrap */ - if (diff > 0x80) - diff = 0x100-diff; - if (diff < -0x80) - diff = -0x100-diff; - - count_y += diff; - - last_my = new_my; - } - - /* update any remaining count and then return */ - if (count_x) - { - if (count_x < 0) - { - count_x++; - mouse_bit_x = 0; - } - else - { - count_x--; - mouse_bit_x = 1; - } - x_needs_update = 1; - } - else if (count_y) - { - if (count_y < 0) - { - count_y++; - mouse_bit_y = 1; - } - else - { - count_y--; - mouse_bit_y = 0; - } - y_needs_update = 1; - } - - if (x_needs_update || y_needs_update) - /* assert Port B External Interrupt on the SCC */ - mac_scc_mouse_irq( x_needs_update, y_needs_update ); -} - -/* ************************************************************************* - * SCSI - * *************************************************************************/ - -/* - -From http://www.mac.m68k-linux.org/devel/plushw.php - -The address of each register is computed as follows: - - $580drn - - where r represents the register number (from 0 through 7), - n determines whether it a read or write operation - (0 for reads, or 1 for writes), and - d determines whether the DACK signal to the NCR 5380 is asserted. - (0 for not asserted, 1 is for asserted) - -Here's an example of the address expressed in binary: - - 0101 1000 0000 00d0 0rrr 000n - -Note: Asserting the DACK signal applies only to write operations to - the output data register and read operations from the input - data register. - - Symbolic Memory - Location Location NCR 5380 Internal Register - - scsiWr+sODR+dackWr $580201 Output Data Register with DACK - scsiRd+sIDR+dackRd $580260 Current SCSI Data with DACK - scsiWr+sODR $580001 Output Data Register - scsiWr+sICR $580011 Initiator Command Register - scsiWr+sMR $580021 Mode Register - scsiWr+sTCR $580031 Target Command Register - scsiWr+sSER $580041 Select Enable Register - scsiWr+sDMAtx $580051 Start DMA Send - scsiWr+sTDMArx $580061 Start DMA Target Receive - scsiWr+sIDMArx $580071 Start DMA Initiator Receive - scsiRd+sCDR $580000 Current SCSI Data - scsiRd+sICR $580010 Initiator Command Register - scsiRd+sMR $580020 Mode Registor - scsiRd+sTCR $580030 Target Command Register - scsiRd+sCSR $580040 Current SCSI Bus Status - scsiRd+sBSR $580050 Bus and Status Register - scsiRd+sIDR $580060 Input Data Register - scsiRd+sRESET $580070 Reset Parity/Interrupt - - */ - -READ16_HANDLER ( macplus_scsi_r ) -{ - int reg = (offset>>3) & 0xf; - - if ((reg == 6) && (offset == 0x130)) - { - reg = R5380_CURDATA_DTACK; - } - - return ncr5380_r(reg)<<8; -} - -WRITE16_HANDLER ( macplus_scsi_w ) -{ - int reg = (offset>>3) & 0xf; - - if ((reg == 0) && (offset == 0x100)) - { - reg = R5380_OUTDATA_DTACK; - } - - ncr5380_w(reg, data); -} - -/* ************************************************************************* - * SCC - * - * Serial Control Chip - * *************************************************************************/ - -static void mac_scc_ack(void) -{ - set_scc_interrupt(0); -} - - - -void mac_scc_mouse_irq( int x, int y) -{ - static int last_was_x = 0; - - if (x && y) - { - if (last_was_x) - scc_set_status(0x0a); - else - scc_set_status(0x02); - - last_was_x ^= 1; - } - else - { - if (x) - scc_set_status(0x0a); - else - scc_set_status(0x02); - } - - //cpunum_set_input_line(0, 2, ASSERT_LINE); - set_scc_interrupt(1); -} - - - -READ16_HANDLER ( mac_scc_r ) -{ - UINT16 result; - result = scc_r(offset); - return (result << 8) | result; -} - - - -WRITE16_HANDLER ( mac_scc_w ) -{ - scc_w(offset, (UINT8) data); -} - - - -static const struct scc8530_interface mac_scc8530_interface = -{ - mac_scc_ack -}; - - - -/* ************************************************************************* - * RTC - * - * Real Time Clock chip - contains clock information and PRAM. This chip is - * accessed through the VIA - * *************************************************************************/ - -/* state of rTCEnb and rTCClk lines */ -static unsigned char rtc_rTCEnb; -static unsigned char rtc_rTCClk; - -/* serial transmit/receive register : bits are shifted in/out of this byte */ -static unsigned char rtc_data_byte; -/* serial transmitted/received bit count */ -static unsigned char rtc_bit_count; -/* direction of the current transfer (0 : VIA->RTC, 1 : RTC->VIA) */ -static unsigned char rtc_data_dir; -/* when rtc_data_dir == 1, state of rTCData as set by RTC (-> data bit seen by VIA) */ -static unsigned char rtc_data_out; - -/* set to 1 when command in progress */ -static unsigned char rtc_cmd; - -/* write protect flag */ -static unsigned char rtc_write_protect; - -/* internal seconds register */ -static unsigned char rtc_seconds[/*8*/4]; -/* 20-byte long PRAM, or 256-byte long XPRAM */ -static unsigned char rtc_ram[256]; -/* current extended address and RTC state */ -static unsigned char rtc_xpaddr, rtc_state; - -/* a few protos */ -static void rtc_write_rTCEnb(int data); -static void rtc_execute_cmd(int data); - -enum -{ - RTC_STATE_NORMAL, - RTC_STATE_WRITE, - RTC_STATE_XPCOMMAND, - RTC_STATE_XPWRITE -}; - -/* init the rtc core */ -static void rtc_init(void) -{ - rtc_rTCClk = 0; - - rtc_write_protect = TRUE; /* Mmmmh... Should be saved with the NVRAM, actually... */ - rtc_rTCEnb = 0; - rtc_write_rTCEnb(1); - rtc_state = RTC_STATE_NORMAL; -} - -/* write the rTCEnb state */ -static void rtc_write_rTCEnb(int val) -{ - if (val && (! rtc_rTCEnb)) - { - /* rTCEnb goes high (inactive) */ - rtc_rTCEnb = 1; - /* abort current transmission */ - rtc_data_byte = rtc_bit_count = rtc_data_dir = rtc_data_out = 0; - rtc_state = RTC_STATE_NORMAL; - } - else if ((! val) && rtc_rTCEnb) - { - /* rTCEnb goes low (active) */ - rtc_rTCEnb = 0; - /* abort current transmission */ - rtc_data_byte = rtc_bit_count = rtc_data_dir = rtc_data_out = 0; - rtc_state = RTC_STATE_NORMAL; - } -} - -/* shift data (called on rTCClk high-to-low transition (?)) */ -static void rtc_shift_data(int data) -{ - if (rtc_rTCEnb) - /* if enable line inactive (high), do nothing */ - return; - - if (rtc_data_dir) - { /* RTC -> VIA transmission */ - rtc_data_out = (rtc_data_byte >> --rtc_bit_count) & 0x01; - if (LOG_RTC) - logerror("RTC shifted new data %d\n", rtc_data_out); - } - else - { /* VIA -> RTC transmission */ - rtc_data_byte = (rtc_data_byte << 1) | (data ? 1 : 0); - - if (++rtc_bit_count == 8) - { /* if one byte received, send to command interpreter */ - rtc_execute_cmd(rtc_data_byte); - } - } -} - -/* called every second, to increment the Clock count */ -static void rtc_incticks(void) -{ - if (LOG_RTC) - logerror("rtc_incticks called\n"); - - if (++rtc_seconds[0] == 0) - if (++rtc_seconds[1] == 0) - if (++rtc_seconds[2] == 0) - ++rtc_seconds[3]; - - /*if (++rtc_seconds[4] == 0) - if (++rtc_seconds[5] == 0) - if (++rtc_seconds[6] == 0) - ++rtc_seconds[7];*/ -} - -/* Executes a command. -Called when the first byte after "enable" is received, and when the data byte after a write command -is received. */ -static void rtc_execute_cmd(int data) -{ - int i; - - if (LOG_RTC) - logerror("rtc_execute_cmd: data=%x, state=%x\n", data, rtc_state); - - if (rtc_state == RTC_STATE_XPCOMMAND) - { - rtc_xpaddr = ((rtc_cmd & 7)<<5) | ((data&0x7c)>>2); - if ((rtc_cmd & 0x80) != 0) - { - // read command - if (LOG_RTC) - logerror("RTC: Reading extended address %x\n", rtc_xpaddr); - - rtc_data_dir = 1; - rtc_data_byte = rtc_ram[rtc_xpaddr]; - rtc_state = RTC_STATE_NORMAL; - } - else - { - // write command - rtc_state = RTC_STATE_XPWRITE; - rtc_data_byte = 0; - rtc_bit_count = 0; - } - } - else if (rtc_state == RTC_STATE_XPWRITE) - { - if (LOG_RTC) - logerror("RTC: writing %x to extended address %x\n", data, rtc_xpaddr); - rtc_ram[rtc_xpaddr] = data; - rtc_state = RTC_STATE_NORMAL; - } - else if (rtc_state == RTC_STATE_WRITE) - { - rtc_state = RTC_STATE_NORMAL; - - /* Writing an RTC register */ - i = (rtc_cmd >> 2) & 0x1f; - if (rtc_write_protect && (i != 13)) - /* write-protection : only write-protect can be written again */ - return; - switch(i) - { - case 0: case 1: case 2: case 3: /* seconds register */ - case 4: case 5: case 6: case 7: /* ??? (not described in IM III) */ - /* after various tries, I assumed rtc_seconds[4+i] is mapped to rtc_seconds[i] */ - if (LOG_RTC) - logerror("RTC clock write, address = %X, data = %X\n", i, (int) rtc_data_byte); - rtc_seconds[i & 3] = rtc_data_byte; - break; - - case 8: case 9: case 10: case 11: /* RAM address $10-$13 */ - if (LOG_RTC) - logerror("RTC RAM write, address = %X, data = %X\n", (i & 3) + 0x10, (int) rtc_data_byte); - rtc_ram[(i & 3) + 0x10] = rtc_data_byte; - break; - - case 12: - /* Test register - do nothing */ - if (LOG_RTC) - logerror("RTC write to test register, data = %X\n", (int) rtc_data_byte); - break; - - case 13: - /* Write-protect register */ - if (LOG_RTC) - logerror("RTC write to write-protect register, data = %X\n", (int) rtc_data_byte); - rtc_write_protect = (rtc_data_byte & 0x80) ? TRUE : FALSE; - break; - - case 16: case 17: case 18: case 19: /* RAM address $00-$0f */ - case 20: case 21: case 22: case 23: - case 24: case 25: case 26: case 27: - case 28: case 29: case 30: case 31: - if (LOG_RTC) - logerror("RTC RAM write, address = %X, data = %X\n", i & 15, (int) rtc_data_byte); - rtc_ram[i & 15] = rtc_data_byte; - break; - - default: - logerror("Unknown RTC write command : %X, data = %d\n", (int) rtc_cmd, (int) rtc_data_byte); - break; - } - } - else - { - // always save this byte to rtc_cmd - rtc_cmd = rtc_data_byte; - - if ((rtc_cmd & 0x78) == 0x38) // extended command - { - rtc_state = RTC_STATE_XPCOMMAND; - rtc_data_byte = 0; - rtc_bit_count = 0; - } - else - { - if (rtc_cmd & 0x80) - { - rtc_state = RTC_STATE_NORMAL; - - /* Reading an RTC register */ - rtc_data_dir = 1; - i = (rtc_cmd >> 2) & 0x1f; - switch(i) - { - case 0: case 1: case 2: case 3: - case 4: case 5: case 6: case 7: - rtc_data_byte = rtc_seconds[i & 3]; - if (LOG_RTC) - logerror("RTC clock read, address = %X -> data = %X\n", i, rtc_data_byte); - break; - - case 8: case 9: case 10: case 11: - if (LOG_RTC) - logerror("RTC RAM read, address = %X\n", (i & 3) + 0x10); - rtc_data_byte = rtc_ram[(i & 3) + 0x10]; - break; - - case 16: case 17: case 18: case 19: - case 20: case 21: case 22: case 23: - case 24: case 25: case 26: case 27: - case 28: case 29: case 30: case 31: - if (LOG_RTC) - logerror("RTC RAM read, address = %X\n", i & 15); - rtc_data_byte = rtc_ram[i & 15]; - break; - - default: - if (LOG_RTC) - logerror("Unknown RTC read command : %X\n", (int) rtc_cmd); - rtc_data_byte = 0; - break; - } - } - else - { - /* Writing an RTC register */ - /* wait for extra data byte */ - if (LOG_RTC) - logerror("RTC write, waiting for data byte : %X\n", (int) rtc_cmd); - rtc_state = RTC_STATE_WRITE; - rtc_data_byte = 0; - rtc_bit_count = 0; - } - } - } -} - -/* should save PRAM to file */ -/* TODO : save write_protect flag, save time difference with host clock */ -NVRAM_HANDLER( mac ) -{ - if (read_or_write) - { - if (LOG_RTC) - logerror("Writing PRAM to file\n"); - mame_fwrite(file, rtc_ram, sizeof(rtc_ram)); - } - else - { - if (file) - { - if (LOG_RTC) - logerror("Reading PRAM from file\n"); - mame_fread(file, rtc_ram, sizeof(rtc_ram)); - } - else - { - if (LOG_RTC) - logerror("trashing PRAM\n"); - } - - { - /* Now we copy the host clock into the Mac clock */ - /* Cool, isn't it ? :-) */ - mame_system_time systime; - struct tm mac_reference; - UINT32 seconds; - - mame_get_base_datetime(Machine, &systime); - - /* The count starts on 1st January 1904 */ - mac_reference.tm_sec = 0; - mac_reference.tm_min = 0; - mac_reference.tm_hour = 0; - mac_reference.tm_mday = 1; - mac_reference.tm_mon = 0; - mac_reference.tm_year = 4; - mac_reference.tm_isdst = 0; - - seconds = difftime((time_t) systime.time, mktime(& mac_reference)); - - if (LOG_RTC) - logerror("second count 0x%lX\n", (unsigned long) seconds); - - rtc_seconds[0] = seconds & 0xff; - rtc_seconds[1] = (seconds >> 8) & 0xff; - rtc_seconds[2] = (seconds >> 16) & 0xff; - rtc_seconds[3] = (seconds >> 24) & 0xff; - } - } -} - -/* ********************************** * - * IWM Code specific to the Mac Plus * - * ********************************** */ - -READ16_HANDLER ( mac_iwm_r ) -{ - /* The first time this is called is in a floppy test, which goes from - * $400104 to $400126. After that, all access to the floppy goes through - * the disk driver in the MacOS - * - * I just thought this would be on interest to someone trying to further - * this driver along - */ - - int result = 0; - - if (LOG_MAC_IWM) - logerror("mac_iwm_r: offset=0x%08x\n", offset); - - result = applefdc_r(offset >> 8); - return (result << 8) | result; -} - -WRITE16_HANDLER ( mac_iwm_w ) -{ - if (LOG_MAC_IWM) - logerror("mac_iwm_w: offset=0x%08x data=0x%04x\n", offset, data); - - if (ACCESSING_LSB) - applefdc_w(offset >> 8, data & 0xff); -} - -/* ************************************************************************* - * ADB - * *************************************************************************/ - -static int adb_via_b3; - -static int has_adb(void) -{ - return mac_model >= MODEL_MAC_SE; -} - - - -static void mac_adb_newaction(int state) -{ - adb_via_b3 = 1; -} - - - -/* ************************************************************************* - * VIA - * ************************************************************************* - * - * - * PORT A - * - * bit 7 R SCC Wait/Request - * bit 6 W Main/Alternate screen buffer select - * bit 5 W Floppy Disk Line Selection - * bit 4 W Overlay/Normal memory mapping - * bit 3 W Main/Alternate sound buffer - * bit 2-0 W Sound Volume - * - * - * PORT B - * - * bit 7 W Sound enable - * bit 6 R Video beam in display - * bit 5 (pre-ADB) R Mouse Y2 - * (ADB) W ADB ST1 - * bit 4 (pre-ADB) R Mouse X2 - * (ADB) W ADB ST0 - * bit 3 (pre-ADB) R Mouse button (active low) - * (ADB) R ADB INT - * bit 2 W Real time clock enable - * bit 1 W Real time clock data clock - * bit 0 RW Real time clock data - * - */ - -static READ8_HANDLER(mac_via_in_a) -{ - return 0x80; -} - -static READ8_HANDLER(mac_via_in_b) -{ - int val = 0; - - /* video beam in display (! VBLANK && ! HBLANK basically) */ - if (cpu_getvblank()) - val |= 0x40; - - if (has_adb()) - { - if (adb_via_b3) - val |= 0x08; - } - else - { - if (mouse_bit_y) /* Mouse Y2 */ - val |= 0x20; - if (mouse_bit_x) /* Mouse X2 */ - val |= 0x10; - if ((readinputport(0) & 0x01) == 0) - val |= 0x08; - } - if (rtc_data_out) - val |= 1; - - return val; -} - -static WRITE8_HANDLER(mac_via_out_a) -{ - set_scc_waitrequest((data & 0x80) >> 7); - mac_set_screen_buffer((data & 0x40) >> 6); - sony_set_sel_line((data & 0x20) >> 5); - mac_set_sound_buffer((data & 0x08) >> 3); - mac_set_volume(data & 0x07); - - /* Early Mac models had VIA A4 control overlaying. In the Mac SE (and - * possibly later models), overlay was set on reset, but cleared on the - * first access to the ROM. */ - if (mac_model < MODEL_MAC_SE) - set_memory_overlay((data & 0x10) >> 4); -} - -static WRITE8_HANDLER(mac_via_out_b) -{ - int new_rtc_rTCClk; - - mac_enable_sound((data & 0x80) == 0); - rtc_write_rTCEnb(data & 0x04); - new_rtc_rTCClk = (data >> 1) & 0x01; - if ((! new_rtc_rTCClk) && (rtc_rTCClk)) - rtc_shift_data(data & 0x01); - rtc_rTCClk = new_rtc_rTCClk; - - if (has_adb()) - mac_adb_newaction((data & 0x30) >> 4); -} - -static void mac_via_irq(int state) -{ - /* interrupt the 68k (level 1) */ - //cpunum_set_input_line(0, 1, state); - set_via_interrupt(state); -} - -READ16_HANDLER ( mac_via_r ) -{ - int data; - - offset >>= 8; - offset &= 0x0f; - - if (LOG_VIA) - logerror("mac_via_r: offset=0x%02x\n", offset); - data = via_0_r(offset); - - return (data & 0xff) | (data << 8); -} - -WRITE16_HANDLER ( mac_via_w ) -{ - offset >>= 8; - offset &= 0x0f; - - if (LOG_VIA) - logerror("mac_via_w: offset=0x%02x data=0x%08x\n", offset, data); - - if (ACCESSING_MSB) - via_0_w(offset, (data >> 8) & 0xff); -} - - - -/* ************************************************************************* - * Main - * *************************************************************************/ - -MACHINE_RESET(mac) -{ - /* initialize real-time clock */ - rtc_init(); - - /* initialize serial */ - scc_init(&mac_scc8530_interface); - - /* initialize floppy */ - { - struct applefdc_interface intf = - { - APPLEFDC_IWM, - sony_set_lines, - sony_set_enable_lines, - - sony_read_data, - sony_write_data, - sony_read_status - }; - - applefdc_init(&intf); - } - - /* setup the memory overlay */ - set_memory_overlay(1); - - /* reset the via */ - via_reset(); - - /* setup videoram */ - mac_set_screen_buffer(1); - - /* setup sound */ - mac_set_sound_buffer(0); - - if (mac_model == MODEL_MAC_SE) - timer_set(0.0, 0, set_memory_overlay); -} - - - -static void mac_state_load(void) -{ - int overlay = mac_overlay; - mac_overlay = -1; - set_memory_overlay(overlay); -} - - - -static void mac_driver_init(mac_model_t model) -{ - mac_overlay = -1; - mac_model = model; - - /* set up RAM mirror at 0x600000-0x6fffff (0x7fffff ???) */ - mac_install_memory(0x600000, 0x6fffff, mess_ram_size, mess_ram, FALSE, 2); - - /* set up ROM at 0x400000-0x43ffff (-0x5fffff for mac 128k/512k/512ke) */ - mac_install_memory(0x400000, (model == MODEL_MAC_PLUS) ? 0x43ffff : 0x5fffff, - memory_region_length(REGION_USER1), memory_region(REGION_USER1), TRUE, 3); - - set_memory_overlay(1); - - /* configure via */ - via_config(0, &mac_via6522_intf); - via_set_clock(0, 1000000); /* 6522 = 1 Mhz, 6522a = 2 Mhz */ - - /* setup keyboard */ - keyboard_init(); - - inquiry_timeout = mame_timer_alloc(inquiry_timeout_func); - - cpuintrf_set_dasm_override(0, mac_dasm_override); - - /* save state stuff */ - state_save_register_global(mac_overlay); - state_save_register_func_postload(mac_state_load); -} - - - -DRIVER_INIT(mac128k512k) -{ - mac_driver_init(MODEL_MAC_128K512K); -} - -DRIVER_INIT(mac512ke) -{ - mac_driver_init(MODEL_MAC_512KE); -} - -static SCSIConfigTable dev_table = -{ - 1, /* 1 SCSI device */ - { { SCSI_ID_6, 0, SCSI_DEVICE_HARDDISK } } /* SCSI ID 6, using CHD 0, and it's a harddisk */ -}; - -static struct NCR5380interface macplus_5380intf = -{ - &dev_table, // SCSI device table - NULL // IRQ (unconnected on the Mac Plus) -}; - -DRIVER_INIT(macplus) -{ - mac_driver_init(MODEL_MAC_PLUS); - - ncr5380_init(&macplus_5380intf); -} - -DRIVER_INIT(macse) -{ - mac_driver_init(MODEL_MAC_SE); - - ncr5380_init(&macplus_5380intf); -} - - -static void mac_vblank_irq(void) -{ - static int irq_count = 0, ca1_data = 0, ca2_data = 0; - - /* handle keyboard */ - if (kbd_comm == TRUE) - { - int keycode = scan_keyboard(); - - if (keycode != 0x7B) - { - /* if key pressed, send the code */ - - logerror("keyboard enquiry successful, keycode %X\n", keycode); - - timer_reset(inquiry_timeout, TIME_NEVER); - kbd_shift_out(keycode); - } - } - - /* signal VBlank on CA1 input on the VIA */ - ca1_data ^= 1; - via_set_input_ca1(0, ca1_data); - - if (++irq_count == 60) - { - irq_count = 0; - - ca2_data ^= 1; - /* signal 1 Hz irq on CA2 input on the VIA */ - via_set_input_ca2(0, ca2_data); - - rtc_incticks(); - } -} - - - -INTERRUPT_GEN( mac_interrupt ) -{ - int scanline; - - mac_sh_updatebuffer(); - - scanline = cpu_getscanline(); - if (scanline == 342) - mac_vblank_irq(); - - /* check for mouse changes at 10 irqs per frame */ - if (!(scanline % 10)) - mouse_callback(); -} - - - -/* ************************************************************************* - * Trap Tracing - * - * This is debug code that will output diagnostics regarding OS traps called - * *************************************************************************/ - -static const char *lookup_trap(UINT16 opcode) -{ - static const struct - { - UINT16 trap; - const char *name; - } traps[] = - { - { 0xA000, "_Open" }, - { 0xA001, "_Close" }, - { 0xA002, "_Read" }, - { 0xA003, "_Write" }, - { 0xA004, "_Control" }, - { 0xA005, "_Status" }, - { 0xA006, "_KillIO" }, - { 0xA007, "_GetVolInfo" }, - { 0xA008, "_Create" }, - { 0xA009, "_Delete" }, - { 0xA00A, "_OpenRF" }, - { 0xA00B, "_Rename" }, - { 0xA00C, "_GetFileInfo" }, - { 0xA00D, "_SetFileInfo" }, - { 0xA00E, "_UnmountVol" }, - { 0xA00F, "_MountVol" }, - { 0xA010, "_Allocate" }, - { 0xA011, "_GetEOF" }, - { 0xA012, "_SetEOF" }, - { 0xA013, "_FlushVol" }, - { 0xA014, "_GetVol" }, - { 0xA015, "_SetVol" }, - { 0xA016, "_FInitQueue" }, - { 0xA017, "_Eject" }, - { 0xA018, "_GetFPos" }, - { 0xA019, "_InitZone" }, - { 0xA01B, "_SetZone" }, - { 0xA01C, "_FreeMem" }, - { 0xA01F, "_DisposePtr" }, - { 0xA020, "_SetPtrSize" }, - { 0xA021, "_GetPtrSize" }, - { 0xA023, "_DisposeHandle" }, - { 0xA024, "_SetHandleSize" }, - { 0xA025, "_GetHandleSize" }, - { 0xA027, "_ReallocHandle" }, - { 0xA029, "_HLock" }, - { 0xA02A, "_HUnlock" }, - { 0xA02B, "_EmptyHandle" }, - { 0xA02C, "_InitApplZone" }, - { 0xA02D, "_SetApplLimit" }, - { 0xA02E, "_BlockMove" }, - { 0xA02F, "_PostEvent" }, - { 0xA030, "_OSEventAvail" }, - { 0xA031, "_GetOSEvent" }, - { 0xA032, "_FlushEvents" }, - { 0xA033, "_VInstall" }, - { 0xA034, "_VRemove" }, - { 0xA035, "_OffLine" }, - { 0xA036, "_MoreMasters" }, - { 0xA038, "_WriteParam" }, - { 0xA039, "_ReadDateTime" }, - { 0xA03A, "_SetDateTime" }, - { 0xA03B, "_Delay" }, - { 0xA03C, "_CmpString" }, - { 0xA03D, "_DrvrInstall" }, - { 0xA03E, "_DrvrRemove" }, - { 0xA03F, "_InitUtil" }, - { 0xA040, "_ResrvMem" }, - { 0xA041, "_SetFilLock" }, - { 0xA042, "_RstFilLock" }, - { 0xA043, "_SetFilType" }, - { 0xA044, "_SetFPos" }, - { 0xA045, "_FlushFile" }, - { 0xA047, "_SetTrapAddress" }, - { 0xA049, "_HPurge" }, - { 0xA04A, "_HNoPurge" }, - { 0xA04B, "_SetGrowZone" }, - { 0xA04C, "_CompactMem" }, - { 0xA04D, "_PurgeMem" }, - { 0xA04E, "_AddDrive" }, - { 0xA04F, "_RDrvrInstall" }, - { 0xA050, "_CompareString" }, - { 0xA051, "_ReadXPRam" }, - { 0xA052, "_WriteXPRam" }, - { 0xA054, "_UprString" }, - { 0xA055, "_StripAddress" }, - { 0xA056, "_LowerText" }, - { 0xA057, "_SetAppBase" }, - { 0xA058, "_InsTime" }, - { 0xA059, "_RmvTime" }, - { 0xA05A, "_PrimeTime" }, - { 0xA05B, "_PowerOff" }, - { 0xA05C, "_MemoryDispatch" }, - { 0xA05D, "_SwapMMUMode" }, - { 0xA05E, "_NMInstall" }, - { 0xA05F, "_NMRemove" }, - { 0xA060, "_FSDispatch" }, - { 0xA061, "_MaxBlock" }, - { 0xA063, "_MaxApplZone" }, - { 0xA064, "_MoveHHi" }, - { 0xA065, "_StackSpace" }, - { 0xA067, "_HSetRBit" }, - { 0xA068, "_HClrRBit" }, - { 0xA069, "_HGetState" }, - { 0xA06A, "_HSetState" }, - { 0xA06C, "_InitFS" }, - { 0xA06D, "_InitEvents" }, - { 0xA06E, "_SlotManager" }, - { 0xA06F, "_SlotVInstall" }, - { 0xA070, "_SlotVRemove" }, - { 0xA071, "_AttachVBL" }, - { 0xA072, "_DoVBLTask" }, - { 0xA075, "_SIntInstall" }, - { 0xA076, "_SIntRemove" }, - { 0xA077, "_CountADBs" }, - { 0xA078, "_GetIndADB" }, - { 0xA079, "_GetADBInfo" }, - { 0xA07A, "_SetADBInfo" }, - { 0xA07B, "_ADBReInit" }, - { 0xA07C, "_ADBOp" }, - { 0xA07D, "_GetDefaultStartup" }, - { 0xA07E, "_SetDefaultStartup" }, - { 0xA07F, "_InternalWait" }, - { 0xA080, "_GetVideoDefault" }, - { 0xA081, "_SetVideoDefault" }, - { 0xA082, "_DTInstall" }, - { 0xA083, "_SetOSDefault" }, - { 0xA084, "_GetOSDefault" }, - { 0xA085, "_PMgrOp" }, - { 0xA086, "_IOPInfoAccess" }, - { 0xA087, "_IOPMsgRequest" }, - { 0xA088, "_IOPMoveData" }, - { 0xA089, "_SCSIAtomic" }, - { 0xA08A, "_Sleep" }, - { 0xA08B, "_CommToolboxDispatch" }, - { 0xA08D, "_DebugUtil" }, - { 0xA08F, "_DeferUserFn" }, - { 0xA090, "_SysEnvirons" }, - { 0xA092, "_EgretDispatch" }, - { 0xA094, "_ServerDispatch" }, - { 0xA09E, "_PowerMgrDispatch" }, - { 0xA09F, "_PowerDispatch" }, - { 0xA0A4, "_HeapDispatch" }, - { 0xA0AC, "_FSMDispatch" }, - { 0xA0AE, "_VADBProc" }, - { 0xA0DD, "_PPC" }, - { 0xA0FE, "_TEFindWord" }, - { 0xA0FF, "_TEFindLine" }, - { 0xA11A, "_GetZone" }, - { 0xA11D, "_MaxMem" }, - { 0xA11E, "_NewPtr" }, - { 0xA122, "_NewHandle" }, - { 0xA126, "_HandleZone" }, - { 0xA128, "_RecoverHandle" }, - { 0xA12F, "_PPostEvent" }, - { 0xA146, "_GetTrapAddress" }, - { 0xA148, "_PtrZone" }, - { 0xA162, "_PurgeSpace" }, - { 0xA166, "_NewEmptyHandle" }, - { 0xA193, "_Microseconds" }, - { 0xA198, "_HWPriv" }, - { 0xA1AD, "_Gestalt" }, - { 0xA200, "_HOpen" }, - { 0xA207, "_HGetVInfo" }, - { 0xA208, "_HCreate" }, - { 0xA209, "_HDelete" }, - { 0xA20A, "_HOpenRF" }, - { 0xA20B, "_HRename" }, - { 0xA20C, "_HGetFileInfo" }, - { 0xA20D, "_HSetFileInfo" }, - { 0xA20E, "_HUnmountVol" }, - { 0xA210, "_AllocContig" }, - { 0xA214, "_HGetVol" }, - { 0xA215, "_HSetVol" }, - { 0xA22E, "_BlockMoveData" }, - { 0xA241, "_HSetFLock" }, - { 0xA242, "_HRstFLock" }, - { 0xA247, "_SetOSTrapAddress" }, - { 0xA256, "_StripText" }, - { 0xA260, "_HFSDispatch" }, - { 0xA285, "_IdleUpdate" }, - { 0xA28A, "_SlpQInstall" }, - { 0xA31E, "_NewPtrClear" }, - { 0xA322, "_NewHandleClear" }, - { 0xA346, "_GetOSTrapAddress" }, - { 0xA3AD, "_NewGestalt" }, - { 0xA456, "_UpperText" }, - { 0xA458, "_InsXTime" }, - { 0xA485, "_IdleState" }, - { 0xA48A, "_SlpQRemove" }, - { 0xA51E, "_NewPtrSys" }, - { 0xA522, "_NewHandleSys" }, - { 0xA562, "_PurgeSpaceSys" }, - { 0xA5AD, "_ReplaceGestalt" }, - { 0xA647, "_SetToolBoxTrapAddress" }, - { 0xA656, "_StripUpperText" }, - { 0xA685, "_SerialPower" }, - { 0xA71E, "_NewPtrSysClear" }, - { 0xA722, "_NewHandleSysClear" }, - { 0xA746, "_GetToolBoxTrapAddress" }, - { 0xA7AD, "_GetGestaltProcPtr" }, - { 0xA800, "_SoundDispatch" }, - { 0xA801, "_SndDisposeChannel" }, - { 0xA802, "_SndAddModifier" }, - { 0xA803, "_SndDoCommand" }, - { 0xA804, "_SndDoImmediate" }, - { 0xA805, "_SndPlay" }, - { 0xA806, "_SndControl" }, - { 0xA807, "_SndNewChannel" }, - { 0xA808, "_InitProcMenu" }, - { 0xA809, "_GetControlVariant" }, - { 0xA80A, "_GetWVariant" }, - { 0xA80B, "_PopUpMenuSelect" }, - { 0xA80C, "_RGetResource" }, - { 0xA811, "_TESelView" }, - { 0xA812, "_TEPinScroll" }, - { 0xA813, "_TEAutoView" }, - { 0xA814, "_SetFractEnable" }, - { 0xA815, "_SCSIDispatch" }, - { 0xA817, "_CopyMask" }, - { 0xA819, "_XMunger" }, - { 0xA81A, "_HOpenResFile" }, - { 0xA81B, "_HCreateResFile" }, - { 0xA81D, "_InvalMenuBar" }, - { 0xA821, "_MaxSizeRsrc" }, - { 0xA822, "_ResourceDispatch" }, - { 0xA823, "_AliasDispatch" }, - { 0xA824, "_HFSUtilDispatch" }, - { 0xA825, "_MenuDispatch" }, - { 0xA826, "_InsertMenuItem" }, - { 0xA827, "_HideDialogItem" }, - { 0xA828, "_ShowDialogItem" }, - { 0xA82A, "_ComponentDispatch" }, - { 0xA833, "_ScrnBitMap" }, - { 0xA834, "_SetFScaleDisable" }, - { 0xA835, "_FontMetrics" }, - { 0xA836, "_GetMaskTable" }, - { 0xA837, "_MeasureText" }, - { 0xA838, "_CalcMask" }, - { 0xA839, "_SeedFill" }, - { 0xA83A, "_ZoomWindow" }, - { 0xA83B, "_TrackBox" }, - { 0xA83C, "_TEGetOffset" }, - { 0xA83D, "_TEDispatch" }, - { 0xA83E, "_TEStyleNew" }, - { 0xA847, "_FracCos" }, - { 0xA848, "_FracSin" }, - { 0xA849, "_FracSqrt" }, - { 0xA84A, "_FracMul" }, - { 0xA84B, "_FracDiv" }, - { 0xA84D, "_FixDiv" }, - { 0xA84E, "_GetItemCmd" }, - { 0xA84F, "_SetItemCmd" }, - { 0xA850, "_InitCursor" }, - { 0xA851, "_SetCursor" }, - { 0xA852, "_HideCursor" }, - { 0xA853, "_ShowCursor" }, - { 0xA854, "_FontDispatch" }, - { 0xA855, "_ShieldCursor" }, - { 0xA856, "_ObscureCursor" }, - { 0xA858, "_BitAnd" }, - { 0xA859, "_BitXOr" }, - { 0xA85A, "_BitNot" }, - { 0xA85B, "_BitOr" }, - { 0xA85C, "_BitShift" }, - { 0xA85D, "_BitTst" }, - { 0xA85E, "_BitSet" }, - { 0xA85F, "_BitClr" }, - { 0xA860, "_WaitNextEvent" }, - { 0xA861, "_Random" }, - { 0xA862, "_ForeColor" }, - { 0xA863, "_BackColor" }, - { 0xA864, "_ColorBit" }, - { 0xA865, "_GetPixel" }, - { 0xA866, "_StuffHex" }, - { 0xA867, "_LongMul" }, - { 0xA868, "_FixMul" }, - { 0xA869, "_FixRatio" }, - { 0xA86A, "_HiWord" }, - { 0xA86B, "_LoWord" }, - { 0xA86C, "_FixRound" }, - { 0xA86D, "_InitPort" }, - { 0xA86E, "_InitGraf" }, - { 0xA86F, "_OpenPort" }, - { 0xA870, "_LocalToGlobal" }, - { 0xA871, "_GlobalToLocal" }, - { 0xA872, "_GrafDevice" }, - { 0xA873, "_SetPort" }, - { 0xA874, "_GetPort" }, - { 0xA875, "_SetPBits" }, - { 0xA876, "_PortSize" }, - { 0xA877, "_MovePortTo" }, - { 0xA878, "_SetOrigin" }, - { 0xA879, "_SetClip" }, - { 0xA87A, "_GetClip" }, - { 0xA87B, "_ClipRect" }, - { 0xA87C, "_BackPat" }, - { 0xA87D, "_ClosePort" }, - { 0xA87E, "_AddPt" }, - { 0xA87F, "_SubPt" }, - { 0xA880, "_SetPt" }, - { 0xA881, "_EqualPt" }, - { 0xA882, "_StdText" }, - { 0xA883, "_DrawChar" }, - { 0xA884, "_DrawString" }, - { 0xA885, "_DrawText" }, - { 0xA886, "_TextWidth" }, - { 0xA887, "_TextFont" }, - { 0xA888, "_TextFace" }, - { 0xA889, "_TextMode" }, - { 0xA88A, "_TextSize" }, - { 0xA88B, "_GetFontInfo" }, - { 0xA88C, "_StringWidth" }, - { 0xA88D, "_CharWidth" }, - { 0xA88E, "_SpaceExtra" }, - { 0xA88F, "_OSDispatch" }, - { 0xA890, "_StdLine" }, - { 0xA891, "_LineTo" }, - { 0xA892, "_Line" }, - { 0xA893, "_MoveTo" }, - { 0xA894, "_Move" }, - { 0xA895, "_ShutDown" }, - { 0xA896, "_HidePen" }, - { 0xA897, "_ShowPen" }, - { 0xA898, "_GetPenState" }, - { 0xA899, "_SetPenState" }, - { 0xA89A, "_GetPen" }, - { 0xA89B, "_PenSize" }, - { 0xA89C, "_PenMode" }, - { 0xA89D, "_PenPat" }, - { 0xA89E, "_PenNormal" }, - { 0xA89F, "_Moof" }, - { 0xA8A0, "_StdRect" }, - { 0xA8A1, "_FrameRect" }, - { 0xA8A2, "_PaintRect" }, - { 0xA8A3, "_EraseRect" }, - { 0xA8A4, "_InverRect" }, - { 0xA8A5, "_FillRect" }, - { 0xA8A6, "_EqualRect" }, - { 0xA8A7, "_SetRect" }, - { 0xA8A8, "_OffsetRect" }, - { 0xA8A9, "_InsetRect" }, - { 0xA8AA, "_SectRect" }, - { 0xA8AB, "_UnionRect" }, - { 0xA8AD, "_PtInRect" }, - { 0xA8AE, "_EmptyRect" }, - { 0xA8AF, "_StdRRect" }, - { 0xA8B0, "_FrameRoundRect" }, - { 0xA8B1, "_PaintRoundRect" }, - { 0xA8B2, "_EraseRoundRect" }, - { 0xA8B3, "_InverRoundRect" }, - { 0xA8B4, "_FillRoundRect" }, - { 0xA8B5, "_ScriptUtil" }, - { 0xA8B6, "_StdOval" }, - { 0xA8B7, "_FrameOval" }, - { 0xA8B8, "_PaintOval" }, - { 0xA8B9, "_EraseOval" }, - { 0xA8BA, "_InvertOval" }, - { 0xA8BB, "_FillOval" }, - { 0xA8BC, "_SlopeFromAngle" }, - { 0xA8BD, "_StdArc" }, - { 0xA8BE, "_FrameArc" }, - { 0xA8BF, "_PaintArc" }, - { 0xA8C0, "_EraseArc" }, - { 0xA8C1, "_InvertArc" }, - { 0xA8C2, "_FillArc" }, - { 0xA8C3, "_PtToAngle" }, - { 0xA8C4, "_AngleFromSlope" }, - { 0xA8C5, "_StdPoly" }, - { 0xA8C6, "_FramePoly" }, - { 0xA8C7, "_PaintPoly" }, - { 0xA8C8, "_ErasePoly" }, - { 0xA8C9, "_InvertPoly" }, - { 0xA8CA, "_FillPoly" }, - { 0xA8CB, "_OpenPoly" }, - { 0xA8CC, "_ClosePoly" }, - { 0xA8CD, "_KillPoly" }, - { 0xA8CE, "_OffsetPoly" }, - { 0xA8CF, "_PackBits" }, - { 0xA8D0, "_UnpackBits" }, - { 0xA8D1, "_StdRgn" }, - { 0xA8D2, "_FrameRgn" }, - { 0xA8D3, "_PaintRgn" }, - { 0xA8D4, "_EraseRgn" }, - { 0xA8D5, "_InverRgn" }, - { 0xA8D6, "_FillRgn" }, - { 0xA8D7, "_BitMapToRegion" }, - { 0xA8D8, "_NewRgn" }, - { 0xA8D9, "_DisposeRgn" }, - { 0xA8DA, "_OpenRgn" }, - { 0xA8DB, "_CloseRgn" }, - { 0xA8DC, "_CopyRgn" }, - { 0xA8DD, "_SetEmptyRgn" }, - { 0xA8DE, "_SetRecRgn" }, - { 0xA8DF, "_RectRgn" }, - { 0xA8E0, "_OffsetRgn" }, - { 0xA8E1, "_InsetRgn" }, - { 0xA8E2, "_EmptyRgn" }, - { 0xA8E3, "_EqualRgn" }, - { 0xA8E4, "_SectRgn" }, - { 0xA8E5, "_UnionRgn" }, - { 0xA8E6, "_DiffRgn" }, - { 0xA8E7, "_XOrRgn" }, - { 0xA8E8, "_PtInRgn" }, - { 0xA8E9, "_RectInRgn" }, - { 0xA8EA, "_SetStdProcs" }, - { 0xA8EB, "_StdBits" }, - { 0xA8EC, "_CopyBits" }, - { 0xA8ED, "_StdTxMeas" }, - { 0xA8EE, "_StdGetPic" }, - { 0xA8EF, "_ScrollRect" }, - { 0xA8F0, "_StdPutPic" }, - { 0xA8F1, "_StdComment" }, - { 0xA8F2, "_PicComment" }, - { 0xA8F3, "_OpenPicture" }, - { 0xA8F4, "_ClosePicture" }, - { 0xA8F5, "_KillPicture" }, - { 0xA8F6, "_DrawPicture" }, - { 0xA8F7, "_Layout" }, - { 0xA8F8, "_ScalePt" }, - { 0xA8F9, "_MapPt" }, - { 0xA8FA, "_MapRect" }, - { 0xA8FB, "_MapRgn" }, - { 0xA8FC, "_MapPoly" }, - { 0xA8FD, "_PrGlue" }, - { 0xA8FE, "_InitFonts" }, - { 0xA8FF, "_GetFName" }, - { 0xA900, "_GetFNum" }, - { 0xA901, "_FMSwapFont" }, - { 0xA902, "_RealFont" }, - { 0xA903, "_SetFontLock" }, - { 0xA904, "_DrawGrowIcon" }, - { 0xA905, "_DragGrayRgn" }, - { 0xA906, "_NewString" }, - { 0xA907, "_SetString" }, - { 0xA908, "_ShowHide" }, - { 0xA909, "_CalcVis" }, - { 0xA90A, "_CalcVBehind" }, - { 0xA90B, "_ClipAbove" }, - { 0xA90C, "_PaintOne" }, - { 0xA90D, "_PaintBehind" }, - { 0xA90E, "_SaveOld" }, - { 0xA90F, "_DrawNew" }, - { 0xA910, "_GetWMgrPort" }, - { 0xA911, "_CheckUpDate" }, - { 0xA912, "_InitWindows" }, - { 0xA913, "_NewWindow" }, - { 0xA914, "_DisposeWindow" }, - { 0xA915, "_ShowWindow" }, - { 0xA916, "_HideWindow" }, - { 0xA917, "_GetWRefCon" }, - { 0xA918, "_SetWRefCon" }, - { 0xA919, "_GetWTitle" }, - { 0xA91A, "_SetWTitle" }, - { 0xA91B, "_MoveWindow" }, - { 0xA91C, "_HiliteWindow" }, - { 0xA91D, "_SizeWindow" }, - { 0xA91E, "_TrackGoAway" }, - { 0xA91F, "_SelectWindow" }, - { 0xA920, "_BringToFront" }, - { 0xA921, "_SendBehind" }, - { 0xA922, "_BeginUpDate" }, - { 0xA923, "_EndUpDate" }, - { 0xA924, "_FrontWindow" }, - { 0xA925, "_DragWindow" }, - { 0xA926, "_DragTheRgn" }, - { 0xA927, "_InvalRgn" }, - { 0xA928, "_InvalRect" }, - { 0xA929, "_ValidRgn" }, - { 0xA92A, "_ValidRect" }, - { 0xA92B, "_GrowWindow" }, - { 0xA92C, "_FindWindow" }, - { 0xA92D, "_CloseWindow" }, - { 0xA92E, "_SetWindowPic" }, - { 0xA92F, "_GetWindowPic" }, - { 0xA930, "_InitMenus" }, - { 0xA931, "_NewMenu" }, - { 0xA932, "_DisposeMenu" }, - { 0xA933, "_AppendMenu" }, - { 0xA934, "_ClearMenuBar" }, - { 0xA935, "_InsertMenu" }, - { 0xA936, "_DeleteMenu" }, - { 0xA937, "_DrawMenuBar" }, - { 0xA938, "_HiliteMenu" }, - { 0xA939, "_EnableItem" }, - { 0xA93A, "_DisableItem" }, - { 0xA93B, "_GetMenuBar" }, - { 0xA93C, "_SetMenuBar" }, - { 0xA93D, "_MenuSelect" }, - { 0xA93E, "_MenuKey" }, - { 0xA93F, "_GetItmIcon" }, - { 0xA940, "_SetItmIcon" }, - { 0xA941, "_GetItmStyle" }, - { 0xA942, "_SetItmStyle" }, - { 0xA943, "_GetItmMark" }, - { 0xA944, "_SetItmMark" }, - { 0xA945, "_CheckItem" }, - { 0xA946, "_GetMenuItemText" }, - { 0xA947, "_SetMenuItemText" }, - { 0xA948, "_CalcMenuSize" }, - { 0xA949, "_GetMenuHandle" }, - { 0xA94A, "_SetMFlash" }, - { 0xA94B, "_PlotIcon" }, - { 0xA94C, "_FlashMenuBar" }, - { 0xA94D, "_AppendResMenu" }, - { 0xA94E, "_PinRect" }, - { 0xA94F, "_DeltaPoint" }, - { 0xA950, "_CountMItems" }, - { 0xA951, "_InsertResMenu" }, - { 0xA952, "_DeleteMenuItem" }, - { 0xA953, "_UpdtControl" }, - { 0xA954, "_NewControl" }, - { 0xA955, "_DisposeControl" }, - { 0xA956, "_KillControls" }, - { 0xA957, "_ShowControl" }, - { 0xA958, "_HideControl" }, - { 0xA959, "_MoveControl" }, - { 0xA95A, "_GetControlReference" }, - { 0xA95B, "_SetControlReference" }, - { 0xA95C, "_SizeControl" }, - { 0xA95D, "_HiliteControl" }, - { 0xA95E, "_GetControlTitle" }, - { 0xA95F, "_SetControlTitle" }, - { 0xA960, "_GetControlValue" }, - { 0xA961, "_GetControlMinimum" }, - { 0xA962, "_GetControlMaximum" }, - { 0xA963, "_SetControlValue" }, - { 0xA964, "_SetControlMinimum" }, - { 0xA965, "_SetControlMaximum" }, - { 0xA966, "_TestControl" }, - { 0xA967, "_DragControl" }, - { 0xA968, "_TrackControl" }, - { 0xA969, "_DrawControls" }, - { 0xA96A, "_GetControlAction" }, - { 0xA96B, "_SetControlAction" }, - { 0xA96C, "_FindControl" }, - { 0xA96E, "_Dequeue" }, - { 0xA96F, "_Enqueue" }, - { 0xA970, "_GetNextEvent" }, - { 0xA971, "_EventAvail" }, - { 0xA972, "_GetMouse" }, - { 0xA973, "_StillDown" }, - { 0xA974, "_Button" }, - { 0xA975, "_TickCount" }, - { 0xA976, "_GetKeys" }, - { 0xA977, "_WaitMouseUp" }, - { 0xA978, "_UpdtDialog" }, - { 0xA97B, "_InitDialogs" }, - { 0xA97C, "_GetNewDialog" }, - { 0xA97D, "_NewDialog" }, - { 0xA97E, "_SelectDialogItemText" }, - { 0xA97F, "_IsDialogEvent" }, - { 0xA980, "_DialogSelect" }, - { 0xA981, "_DrawDialog" }, - { 0xA982, "_CloseDialog" }, - { 0xA983, "_DisposeDialog" }, - { 0xA984, "_FindDialogItem" }, - { 0xA985, "_Alert" }, - { 0xA986, "_StopAlert" }, - { 0xA987, "_NoteAlert" }, - { 0xA988, "_CautionAlert" }, - { 0xA98B, "_ParamText" }, - { 0xA98C, "_ErrorSound" }, - { 0xA98D, "_GetDialogItem" }, - { 0xA98E, "_SetDialogItem" }, - { 0xA98F, "_SetDialogItemText" }, - { 0xA990, "_GetDialogItemText" }, - { 0xA991, "_ModalDialog" }, - { 0xA992, "_DetachResource" }, - { 0xA993, "_SetResPurge" }, - { 0xA994, "_CurResFile" }, - { 0xA995, "_InitResources" }, - { 0xA996, "_RsrcZoneInit" }, - { 0xA997, "_OpenResFile" }, - { 0xA998, "_UseResFile" }, - { 0xA999, "_UpdateResFile" }, - { 0xA99A, "_CloseResFile" }, - { 0xA99B, "_SetResLoad" }, - { 0xA99C, "_CountResources" }, - { 0xA99D, "_GetIndResource" }, - { 0xA99E, "_CountTypes" }, - { 0xA99F, "_GetIndType" }, - { 0xA9A0, "_GetResource" }, - { 0xA9A1, "_GetNamedResource" }, - { 0xA9A2, "_LoadResource" }, - { 0xA9A3, "_ReleaseResource" }, - { 0xA9A4, "_HomeResFile" }, - { 0xA9A5, "_SizeRsrc" }, - { 0xA9A6, "_GetResAttrs" }, - { 0xA9A7, "_SetResAttrs" }, - { 0xA9A8, "_GetResInfo" }, - { 0xA9A9, "_SetResInfo" }, - { 0xA9AA, "_ChangedResource" }, - { 0xA9AB, "_AddResource" }, - { 0xA9AC, "_AddReference" }, - { 0xA9AD, "_RmveResource" }, - { 0xA9AE, "_RmveReference" }, - { 0xA9AF, "_ResError" }, - { 0xA9B0, "_WriteResource" }, - { 0xA9B1, "_CreateResFile" }, - { 0xA9B2, "_SystemEvent" }, - { 0xA9B3, "_SystemClick" }, - { 0xA9B4, "_SystemTask" }, - { 0xA9B5, "_SystemMenu" }, - { 0xA9B6, "_OpenDeskAcc" }, - { 0xA9B7, "_CloseDeskAcc" }, - { 0xA9B8, "_GetPattern" }, - { 0xA9B9, "_GetCursor" }, - { 0xA9BA, "_GetString" }, - { 0xA9BB, "_GetIcon" }, - { 0xA9BC, "_GetPicture" }, - { 0xA9BD, "_GetNewWindow" }, - { 0xA9BE, "_GetNewControl" }, - { 0xA9BF, "_GetRMenu" }, - { 0xA9C0, "_GetNewMBar" }, - { 0xA9C1, "_UniqueID" }, - { 0xA9C2, "_SysEdit" }, - { 0xA9C3, "_KeyTranslate" }, - { 0xA9C4, "_OpenRFPerm" }, - { 0xA9C5, "_RsrcMapEntry" }, - { 0xA9C6, "_SecondsToDate" }, - { 0xA9C7, "_DateToSeconds" }, - { 0xA9C8, "_SysBeep" }, - { 0xA9C9, "_SysError" }, - { 0xA9CA, "_PutIcon" }, - { 0xA9CB, "_TEGetText" }, - { 0xA9CC, "_TEInit" }, - { 0xA9CD, "_TEDispose" }, - { 0xA9CE, "_TETextBox" }, - { 0xA9CF, "_TESetText" }, - { 0xA9D0, "_TECalText" }, - { 0xA9D1, "_TESetSelect" }, - { 0xA9D2, "_TENew" }, - { 0xA9D3, "_TEUpdate" }, - { 0xA9D4, "_TEClick" }, - { 0xA9D5, "_TECopy" }, - { 0xA9D6, "_TECut" }, - { 0xA9D7, "_TEDelete" }, - { 0xA9D8, "_TEActivate" }, - { 0xA9D9, "_TEDeactivate" }, - { 0xA9DA, "_TEIdle" }, - { 0xA9DB, "_TEPaste" }, - { 0xA9DC, "_TEKey" }, - { 0xA9DD, "_TEScroll" }, - { 0xA9DE, "_TEInsert" }, - { 0xA9DF, "_TESetAlignment" }, - { 0xA9E0, "_Munger" }, - { 0xA9E1, "_HandToHand" }, - { 0xA9E2, "_PtrToXHand" }, - { 0xA9E3, "_PtrToHand" }, - { 0xA9E4, "_HandAndHand" }, - { 0xA9E5, "_InitPack" }, - { 0xA9E6, "_InitAllPacks" }, - { 0xA9EF, "_PtrAndHand" }, - { 0xA9F0, "_LoadSeg" }, - { 0xA9F1, "_UnLoadSeg" }, - { 0xA9F2, "_Launch" }, - { 0xA9F3, "_Chain" }, - { 0xA9F4, "_ExitToShell" }, - { 0xA9F5, "_GetAppParms" }, - { 0xA9F6, "_GetResFileAttrs" }, - { 0xA9F7, "_SetResFileAttrs" }, - { 0xA9F8, "_MethodDispatch" }, - { 0xA9F9, "_InfoScrap" }, - { 0xA9FA, "_UnloadScrap" }, - { 0xA9FB, "_LoadScrap" }, - { 0xA9FC, "_ZeroScrap" }, - { 0xA9FD, "_GetScrap" }, - { 0xA9FE, "_PutScrap" }, - { 0xA9FF, "_Debugger" }, - { 0xAA00, "_OpenCPort" }, - { 0xAA01, "_InitCPort" }, - { 0xAA02, "_CloseCPort" }, - { 0xAA03, "_NewPixMap" }, - { 0xAA04, "_DisposePixMap" }, - { 0xAA05, "_CopyPixMap" }, - { 0xAA06, "_SetPortPix" }, - { 0xAA07, "_NewPixPat" }, - { 0xAA08, "_DisposePixPat" }, - { 0xAA09, "_CopyPixPat" }, - { 0xAA0A, "_PenPixPat" }, - { 0xAA0B, "_BackPixPat" }, - { 0xAA0C, "_GetPixPat" }, - { 0xAA0D, "_MakeRGBPat" }, - { 0xAA0E, "_FillCRect" }, - { 0xAA0F, "_FillCOval" }, - { 0xAA10, "_FillCRoundRect" }, - { 0xAA11, "_FillCArc" }, - { 0xAA12, "_FillCRgn" }, - { 0xAA13, "_FillCPoly" }, - { 0xAA14, "_RGBForeColor" }, - { 0xAA15, "_RGBBackColor" }, - { 0xAA16, "_SetCPixel" }, - { 0xAA17, "_GetCPixel" }, - { 0xAA18, "_GetCTable" }, - { 0xAA19, "_GetForeColor" }, - { 0xAA1A, "_GetBackColor" }, - { 0xAA1B, "_GetCCursor" }, - { 0xAA1C, "_SetCCursor" }, - { 0xAA1D, "_AllocCursor" }, - { 0xAA1E, "_GetCIcon" }, - { 0xAA1F, "_PlotCIcon" }, - { 0xAA20, "_OpenCPicture" }, - { 0xAA21, "_OpColor" }, - { 0xAA22, "_HiliteColor" }, - { 0xAA23, "_CharExtra" }, - { 0xAA24, "_DisposeCTable" }, - { 0xAA25, "_DisposeCIcon" }, - { 0xAA26, "_DisposeCCursor" }, - { 0xAA27, "_GetMaxDevice" }, - { 0xAA28, "_GetCTSeed" }, - { 0xAA29, "_GetDeviceList" }, - { 0xAA2A, "_GetMainDevice" }, - { 0xAA2B, "_GetNextDevice" }, - { 0xAA2C, "_TestDeviceAttribute" }, - { 0xAA2D, "_SetDeviceAttribute" }, - { 0xAA2E, "_InitGDevice" }, - { 0xAA2F, "_NewGDevice" }, - { 0xAA30, "_DisposeGDevice" }, - { 0xAA31, "_SetGDevice" }, - { 0xAA32, "_GetGDevice" }, - { 0xAA35, "_InvertColor" }, - { 0xAA36, "_RealColor" }, - { 0xAA37, "_GetSubTable" }, - { 0xAA38, "_UpdatePixMap" }, - { 0xAA39, "_MakeITable" }, - { 0xAA3A, "_AddSearch" }, - { 0xAA3B, "_AddComp" }, - { 0xAA3C, "_SetClientID" }, - { 0xAA3D, "_ProtectEntry" }, - { 0xAA3E, "_ReserveEntry" }, - { 0xAA3F, "_SetEntries" }, - { 0xAA40, "_QDError" }, - { 0xAA41, "_SetWinColor" }, - { 0xAA42, "_GetAuxWin" }, - { 0xAA43, "_SetControlColor" }, - { 0xAA44, "_GetAuxiliaryControlRecord" }, - { 0xAA45, "_NewCWindow" }, - { 0xAA46, "_GetNewCWindow" }, - { 0xAA47, "_SetDeskCPat" }, - { 0xAA48, "_GetCWMgrPort" }, - { 0xAA49, "_SaveEntries" }, - { 0xAA4A, "_RestoreEntries" }, - { 0xAA4B, "_NewColorDialog" }, - { 0xAA4C, "_DelSearch" }, - { 0xAA4D, "_DelComp" }, - { 0xAA4E, "_SetStdCProcs" }, - { 0xAA4F, "_CalcCMask" }, - { 0xAA50, "_SeedCFill" }, - { 0xAA51, "_CopyDeepMask" }, - { 0xAA52, "_HFSPinaforeDispatch" }, - { 0xAA53, "_DictionaryDispatch" }, - { 0xAA54, "_TextServicesDispatch" }, - { 0xAA56, "_SpeechRecognitionDispatch" }, - { 0xAA57, "_DockingDispatch" }, - { 0xAA59, "_MixedModeDispatch" }, - { 0xAA5A, "_CodeFragmentDispatch" }, - { 0xAA5C, "_OCEUtils" }, - { 0xAA5D, "_DigitalSignature" }, - { 0xAA5E, "_TBDispatch" }, - { 0xAA60, "_DeleteMCEntries" }, - { 0xAA61, "_GetMCInfo" }, - { 0xAA62, "_SetMCInfo" }, - { 0xAA63, "_DisposeMCInfo" }, - { 0xAA64, "_GetMCEntry" }, - { 0xAA65, "_SetMCEntries" }, - { 0xAA66, "_MenuChoice" }, - { 0xAA67, "_ModalDialogMenuSetup" }, - { 0xAA68, "_DialogDispatch" }, - { 0xAA73, "_ControlDispatch" }, - { 0xAA74, "_AppearanceDispatch" }, - { 0xAA7E, "_SysDebugDispatch" }, - { 0xAA80, "_AVLTreeDispatch" }, - { 0xAA81, "_FileMappingDispatch" }, - { 0xAA90, "_InitPalettes" }, - { 0xAA91, "_NewPalette" }, - { 0xAA92, "_GetNewPalette" }, - { 0xAA93, "_DisposePalette" }, - { 0xAA94, "_ActivatePalette" }, - { 0xAA95, "_NSetPalette" }, - { 0xAA96, "_GetPalette" }, - { 0xAA97, "_PmForeColor" }, - { 0xAA98, "_PmBackColor" }, - { 0xAA99, "_AnimateEntry" }, - { 0xAA9A, "_AnimatePalette" }, - { 0xAA9B, "_GetEntryColor" }, - { 0xAA9C, "_SetEntryColor" }, - { 0xAA9D, "_GetEntryUsage" }, - { 0xAA9E, "_SetEntryUsage" }, - { 0xAAA1, "_CopyPalette" }, - { 0xAAA2, "_PaletteDispatch" }, - { 0xAAA3, "_CodecDispatch" }, - { 0xAAA4, "_ALMDispatch" }, - { 0xAADB, "_CursorDeviceDispatch" }, - { 0xAAF2, "_ControlStripDispatch" }, - { 0xAAF3, "_ExpansionManager" }, - { 0xAB1D, "_QDExtensions" }, - { 0xABC3, "_NQDMisc" }, - { 0xABC9, "_IconDispatch" }, - { 0xABCA, "_DeviceLoop" }, - { 0xABEB, "_DisplayDispatch" }, - { 0xABED, "_DragDispatch" }, - { 0xABF1, "_GestaltValueDispatch" }, - { 0xABF2, "_ThreadDispatch" }, - { 0xABF6, "_CollectionMgr" }, - { 0xABF8, "_StdOpcodeProc" }, - { 0xABFC, "_TranslationDispatch" }, - { 0xABFF, "_DebugStr" } - }; - - int i; - - for (i = 0; i < (sizeof(traps) / sizeof(traps[0])); i++) - { - if (traps[i].trap == opcode) - return traps[i].name; - } - return NULL; -} - - - -static offs_t mac_dasm_override(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) -{ - UINT16 opcode; - unsigned result = 0; - const char *trap; - - opcode = *((UINT16 *) oprom); - if ((opcode & 0xF000) == 0xA000) - { - trap = lookup_trap(opcode); - if (trap) - { - strcpy(buffer, trap); - result = 1; - } - } - return result; -} - - - -#ifdef MAC_TRACETRAP -static void mac_tracetrap(const char *cpu_name_local, int addr, int trap) -{ - typedef struct - { - int csCode; - const char *name; - } sonycscodeentry; - - static const sonycscodeentry cscodes[] = - { - { 1, "KillIO" }, - { 5, "VerifyDisk" }, - { 6, "FormatDisk" }, - { 7, "EjectDisk" }, - { 8, "SetTagBuffer" }, - { 9, "TrackCacheControl" }, - { 23, "ReturnDriveInfo" } - }; - - static const char *scsisels[] = - { - "SCSIReset", /* $00 */ - "SCSIGet", /* $01 */ - "SCSISelect", /* $02 */ - "SCSICmd", /* $03 */ - "SCSIComplete", /* $04 */ - "SCSIRead", /* $05 */ - "SCSIWrite", /* $06 */ - NULL, /* $07 */ - "SCSIRBlind", /* $08 */ - "SCSIWBlind", /* $09 */ - "SCSIStat", /* $0A */ - "SCSISelAtn", /* $0B */ - "SCSIMsgIn", /* $0C */ - "SCSIMsgOut", /* $0D */ - }; - - int i, a0, a7, d0, d1; - int csCode, ioVRefNum, ioRefNum, ioCRefNum, ioCompletion, ioBuffer, ioReqCount, ioPosOffset; - char *s; - unsigned char *mem; - char buf[256]; - const char *trapstr; - - trapstr = lookup_trap(trap); - if (trapstr) - strcpy(buf, trapstr); - else - sprintf(buf, "Trap $%04x", trap); - - s = &buf[strlen(buf)]; - mem = mac_ram_ptr; - a0 = cpu_get_reg(M68K_A0); - a7 = cpu_get_reg(M68K_A7); - d0 = cpu_get_reg(M68K_D0); - d1 = cpu_get_reg(M68K_D1); - - switch(trap) - { - case 0xa004: /* _Control */ - ioVRefNum = *((INT16*) (mem + a0 + 22)); - ioCRefNum = *((INT16*) (mem + a0 + 24)); - csCode = *((UINT16*) (mem + a0 + 26)); - sprintf(s, " ioVRefNum=%i ioCRefNum=%i csCode=%i", ioVRefNum, ioCRefNum, csCode); - - for (i = 0; i < (sizeof(cscodes) / sizeof(cscodes[0])); i++) - { - if (cscodes[i].csCode == csCode) - { - strcat(s, "="); - strcat(s, cscodes[i].name); - break; - } - } - break; - - case 0xa002: /* _Read */ - ioCompletion = (*((INT16*) (mem + a0 + 12)) << 16) + *((INT16*) (mem + a0 + 14)); - ioVRefNum = *((INT16*) (mem + a0 + 22)); - ioRefNum = *((INT16*) (mem + a0 + 24)); - ioBuffer = (*((INT16*) (mem + a0 + 32)) << 16) + *((INT16*) (mem + a0 + 34)); - ioReqCount = (*((INT16*) (mem + a0 + 36)) << 16) + *((INT16*) (mem + a0 + 38)); - ioPosOffset = (*((INT16*) (mem + a0 + 46)) << 16) + *((INT16*) (mem + a0 + 48)); - sprintf(s, " ioCompletion=0x%08x ioVRefNum=%i ioRefNum=%i ioBuffer=0x%08x ioReqCount=%i ioPosOffset=%i", - ioCompletion, ioVRefNum, ioRefNum, ioBuffer, ioReqCount, ioPosOffset); - break; - - case 0xa04e: /* _AddDrive */ - sprintf(s, " drvrRefNum=%i drvNum=%i qEl=0x%08x", (int) (INT16) d0, (int) (INT16) d1, a0); - break; - - case 0xa9a0: /* _GetResource */ - /* HACKHACK - the 'type' output assumes that the host is little endian - * since this is just trace code it isn't much of an issue - */ - sprintf(s, " type='%c%c%c%c' id=%i", (char) mem[a7+3], (char) mem[a7+2], - (char) mem[a7+5], (char) mem[a7+4], *((INT16*) (mem + a7))); - break; - - case 0xa815: /* _SCSIDispatch */ - i = *((UINT16*) (mem + a7)); - if (i < (sizeof(scsisels) / sizeof(scsisels[0]))) - if (scsisels[i]) - sprintf(s, " (%s)", scsisels[i]); - break; - } - - logerror("mac_trace_trap: %s at 0x%08x: %s\n",cpu_name_local, addr, buf); -} -#endif - - - diff --git a/mess/machine/mbee.c b/mess/machine/mbee.c deleted file mode 100644 index 6b3a6e7d4..000000000 --- a/mess/machine/mbee.c +++ /dev/null @@ -1,222 +0,0 @@ -/*************************************************************************** - - microbee.c - - machine driver - Juergen Buchmueller , Jan 2000 - - "busnop" emulation by R. Belmont, May 2006. - - "busnop" is a trick by which all reads from 0x0000-0x7FFF are held at 0x00 - until A15 is asserted. The Z80 NOP instruction is 0x00, so the effect is - to cause reset to skip all memory up to 0x8000, where the actual handling - code resides. - -****************************************************************************/ - -#include "driver.h" -#include "machine/z80ctc.h" -#include "machine/z80pio.h" -#include "machine/z80sio.h" -#include "vidhrdw/generic.h" -#include "machine/wd17xx.h" -#include "includes/mbee.h" -#include "devices/cassette.h" -#include "cpu/z80/z80.h" -#include "sound/speaker.h" -#include "image.h" - -static UINT8 fdc_drv = 0; -static UINT8 fdc_head = 0; -static UINT8 fdc_den = 0; -static UINT8 fdc_status = 0; -static void pio_interrupt(int state); -static void mbee_fdc_callback(int); -static UINT8 mbee_busnop = 0; - -UINT8 *mbee_workram; - -static z80pio_interface pio_intf = -{ - pio_interrupt, /* callback when change interrupt status */ - 0, /* portA ready active callback (do not support yet)*/ - 0 /* portB ready active callback (do not support yet)*/ -}; - -static void pio_interrupt(int state) -{ - cpunum_set_input_line(0, 0, state ? ASSERT_LINE : CLEAR_LINE); -} - -/* - NOTE: the original hardware has a "busnop" circuit which is enabled on reset/poweron. - It causes all reads to return 0x00 until A15 is asserted (e.g. a read at or above 0x8000). - The following stuff emulates that functionality. -*/ - -READ8_HANDLER( mbee_lowram_r ) -{ - if (mbee_busnop) - { - return 0; - } - - return mbee_workram[offset]; -} - -offs_t mbee_opbase_handler(offs_t address) -{ - if (address > 0x7fff) - { - mbee_busnop = 0; - } - - return address; -} - -offs_t mbee56_opbase_handler(offs_t address) -{ - if (address > 0xdfff) - { - mbee_busnop = 0; - } - - return address; -} - -MACHINE_RESET( mbee ) -{ - z80pio_init(0, &pio_intf); - wd179x_init(WD_TYPE_179X,mbee_fdc_callback); - - mbee_busnop = 1; -} - -MACHINE_START( mbee ) -{ - memory_set_opbase_handler(0, mbee_opbase_handler); - return 0; -} - -MACHINE_START( mbee56 ) -{ - memory_set_opbase_handler(0, mbee56_opbase_handler); - return 0; -} - -static mess_image *cassette_device_image(void) -{ - return image_from_devtype_and_index(IO_CASSETTE, 0); -} - -/* PIO B data bits - * 0 cassette data (input) - * 1 cassette data (output) - * 2 rs232 clock or DTR line - * 3 rs232 CTS line (0: clear to send) - * 4 rs232 input (0: mark) - * 5 rs232 output (1: mark) - * 6 speaker - * 7 network interrupt - */ -READ8_HANDLER ( mbee_pio_r ) -{ - UINT8 data = (offset & 2) ? z80pio_c_r(0, offset & 1) : z80pio_d_r(0, offset & 1); - if( offset != 2 ) - return data; - - data |= 0x01; - if (cassette_input(cassette_device_image()) > 0.03) - data &= ~0x01; - - return data; -} - -WRITE8_HANDLER ( mbee_pio_w ) -{ - if (offset & 2) - z80pio_c_w(0, offset & 1, data); - else - z80pio_d_w(0, offset & 1, data); - - if( offset == 2 ) - { - cassette_output(cassette_device_image(), (data & 0x02) ? -1.0 : +1.0); - speaker_level_w(0, (data >> 6) & 1); - } -} - -static void mbee_fdc_callback(int param) -{ - switch( param ) - { - case WD179X_IRQ_CLR: -// cpunum_set_input_line(0,0,CLEAR_LINE); - fdc_status &= ~0x40; - break; - case WD179X_IRQ_SET: -// cpunum_set_input_line(0,0,HOLD_LINE); - fdc_status |= 0x40; - break; - case WD179X_DRQ_CLR: - fdc_status &= ~0x80; - break; - case WD179X_DRQ_SET: - fdc_status |= 0x80; - break; - } -} - - READ8_HANDLER ( mbee_fdc_status_r ) -{ - logerror("mbee fdc_motor_r $%02X\n", fdc_status); - return fdc_status; -} - -WRITE8_HANDLER ( mbee_fdc_motor_w ) -{ - logerror("mbee fdc_motor_w $%02X\n", data); - /* Controller latch bits - * 0-1 driver select - * 2 head select - * 3 density (0: FM, 1:MFM) - * 4-7 unused - */ - fdc_drv = data & 3; - fdc_head = (data >> 2) & 1; - fdc_den = (data >> 3) & 1; - wd179x_set_drive(fdc_drv); - wd179x_set_side(fdc_head); - if (data & (1<<3)) - { - wd179x_set_density(DEN_FM_HI); - } - else - { - wd179x_set_density(DEN_MFM_LO); - } - -} - -void mbee_interrupt(void) -{ - /* once per frame, pulse the PIO B bit 7 */ - logerror("mbee interrupt\n"); - z80pio_p_w(0, 1, 0x80); - z80pio_p_w(0, 1, 0x00); -} - -DEVICE_LOAD( mbee_cart ) -{ - int size = image_length(image); - UINT8 *mem = malloc(size); - if( mem ) - { - if( image_fread(image, mem, size) == size ) - { - memcpy(memory_region(REGION_CPU1)+0x8000, mem, size); - } - free(mem); - } - return INIT_PASS; -} diff --git a/mess/machine/mc10.c b/mess/machine/mc10.c deleted file mode 100644 index 72fd7c70a..000000000 --- a/mess/machine/mc10.c +++ /dev/null @@ -1,221 +0,0 @@ -/****************************************************************************** - MC-10 - - TODO - RS232 - Printer - Disk - *****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/m6847.h" -#include "includes/mc10.h" -#include "devices/cassette.h" -#include "sound/dac.h" - -static UINT8 mc10_bfff; -static UINT8 mc10_keyboard_strobe; - -void mc10_init_machine(void) -{ - mc10_keyboard_strobe = 0xff; - - /* NPW: Taken from Juergen's MC-10 attempt that I just noticed... */ - if( readinputport(7) & 0x80 ) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0xbffe, 0, 0, MRA8_RAM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0xbffe, 0, 0, MWA8_RAM); - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0xbffe, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0xbffe, 0, 0, MWA8_NOP); - } - /* Install DOS ROM ? */ - if( readinputport(7) & 0x40 ) - { - mame_file_error filerr; - mame_file *rom; - - filerr = mame_fopen(SEARCHPATH_IMAGE, "mc10ext.rom", OPEN_FLAG_READ, &rom); - if( rom ) - { - mame_fread(rom, memory_region(REGION_CPU1) + 0xc000, 0x2000); - mame_fclose(rom); - } - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MWA8_NOP); - } -} - -READ8_HANDLER ( mc10_bfff_r ) -{ - /* BIT 0 KEYBOARD ROW 1 - * BIT 1 KEYBOARD ROW 2 - * BIT 2 KEYBOARD ROW 3 - * BIT 3 KEYBOARD ROW 4 - * BIT 4 KEYBOARD ROW 5 - * BIT 5 KEYBOARD ROW 6 - */ - - int val = 0x40; - - if ((input_port_0_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x01; - if ((input_port_1_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x02; - if ((input_port_2_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x04; - if ((input_port_3_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x08; - if ((input_port_4_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x10; - if ((input_port_5_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x20; - - return val; -} - -READ8_HANDLER ( mc10_port1_r ) -{ - return mc10_keyboard_strobe; -} - -WRITE8_HANDLER ( mc10_port1_w ) -{ - /* BIT 0 KEYBOARD COLUMN 1 STROBE - * BIT 1 KEYBOARD COLUMN 2 STROBE - * BIT 2 KEYBOARD COLUMN 3 STROBE - * BIT 3 KEYBOARD COLUMN 4 STROBE - * BIT 4 KEYBOARD COLUMN 5 STROBE - * BIT 5 KEYBOARD COLUMN 6 STROBE - * BIT 6 KEYBOARD COLUMN 7 STROBE - * BIT 7 KEYBOARD COLUMN 8 STROBE - */ - mc10_keyboard_strobe = data; -} - -READ8_HANDLER ( mc10_port2_r ) -{ - /* BIT 1 KEYBOARD SHIFT/CONTROL KEYS INPUT - * ! BIT 2 PRINTER OTS INPUT - * ! BIT 3 RS232 INPUT DATA - * BIT 4 CASSETTE TAPE INPUT - */ - - mess_image *img = image_from_devtype_and_index(IO_CASSETTE, 0); - int val = 0xed; - - if ((input_port_6_r(0) | mc10_keyboard_strobe) == 0xff) - val |= 0x02; - - if (cassette_input(img) >= 0) - val |= 0x10; - - return val; -} - -WRITE8_HANDLER ( mc10_port2_w ) -{ - mess_image *img = image_from_devtype_and_index(IO_CASSETTE, 0); - - /* BIT 0 PRINTER OUTFUT & CASS OUTPUT - */ - - cassette_output(img, (data & 0x01) ? +1.0 : -1.0); -} - - - -/* -------------------------------------------------- - * Video hardware - * -------------------------------------------------- */ - -static ATTR_CONST UINT8 mc10_get_attributes(UINT8 c) -{ - UINT8 result = 0x00; - if (c & 0x40) result |= M6847_INV; - if (c & 0x80) result |= M6847_AS; - if (mc10_bfff & 0x04) result |= M6847_GM2 | M6847_INTEXT; - if (mc10_bfff & 0x08) result |= M6847_GM1; - if (mc10_bfff & 0x10) result |= M6847_GM0; - if (mc10_bfff & 0x20) result |= M6847_AG; - if (mc10_bfff & 0x40) result |= M6847_CSS; - return result; -} - - - -static const UINT8 *mc10_get_video_ram(int scanline) -{ - offs_t offset = 0; - - switch(mc10_bfff & 0x3C) - { - case 0x00: case 0x04: case 0x08: case 0x0C: - case 0x10: case 0x14: case 0x18: case 0x1C: - offset = (scanline / 12) * 0x20; /* text/semigraphic */ - break; - - case 0x20: offset = (scanline / 3) * 0x10; break; /* CG1 */ - case 0x30: offset = (scanline / 3) * 0x10; break; /* RG1 */ - case 0x28: offset = (scanline / 3) * 0x20; break; /* CG2 */ - case 0x38: offset = (scanline / 2) * 0x20; break; /* RG2 */ - case 0x24: offset = (scanline / 2) * 0x20; break; /* CG3 */ - case 0x34: offset = (scanline / 1) * 0x10; break; /* RG3 */ - case 0x2C: offset = (scanline / 1) * 0x20; break; /* CG6 */ - case 0x3C: offset = (scanline / 1) * 0x20; break; /* RG6 */ - } - - return mess_ram + offset; -} - - - -VIDEO_START( mc10 ) -{ - m6847_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = M6847_VERSION_ORIGINAL_NTSC; - cfg.get_attributes = mc10_get_attributes; - cfg.get_video_ram = mc10_get_video_ram; - m6847_init(&cfg); - return 0; -} - - - -WRITE8_HANDLER ( mc10_bfff_w ) -{ - /* BIT 2 GM2 6847 CONTROL & INT/EXT CONTROL - * BIT 3 GM1 6847 CONTROL - * BIT 4 GM0 6847 CONTROL - * BIT 5 A/G 684? CONTROL - * BIT 6 CSS 6847 CONTROL - * BIT 7 SOUND OUTPUT BIT - */ - mc10_bfff = data; - DAC_data_w(0, data & 0x80); -} - - - -MACHINE_START( mc10 ) -{ - mc10_bfff = 0x00; - mc10_keyboard_strobe = 0x00; - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, - 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, - 0, 0, MWA8_BANK1); - memory_set_bankptr(1, mess_ram); - - state_save_register_global(mc10_bfff); - state_save_register_global(mc10_keyboard_strobe); - return 0; -} diff --git a/mess/machine/mekd2.c b/mess/machine/mekd2.c deleted file mode 100644 index be6a1c3aa..000000000 --- a/mess/machine/mekd2.c +++ /dev/null @@ -1,593 +0,0 @@ -/****************************************************************************** - Motorola Evaluation Kit 6800 D2 - MEK6800D2 - - machine Driver - - Juergen Buchmueller , Jan 2000 - -******************************************************************************/ -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "vidhrdw/generic.h" - -#include "includes/mekd2.h" - -#ifndef VERBOSE -#define VERBOSE 1 -#endif - -#if VERBOSE -#define LOG(x) logerror(x) -#else -#define LOG(x) /* x */ -#endif - -DRIVER_INIT( mekd2 ) -{ - UINT8 *dst; - int x, y, i; - - static const char *seg7 = - "....aaaaaaaaaaaaa." \ - "...f.aaaaaaaaaaa.b" \ - "...ff.aaaaaaaaa.bb" \ - "...fff.........bbb" \ - "...fff.........bbb" \ - "...fff.........bbb" \ - "..fff.........bbb." \ - "..fff.........bbb." \ - "..fff.........bbb." \ - "..ff...........bb." \ - "..f.ggggggggggg.b." \ - "..gggggggggggggg.." \ - ".e.ggggggggggg.c.." \ - ".ee...........cc.." \ - ".eee.........ccc.." \ - ".eee.........ccc.." \ - ".eee.........ccc.." \ - "eee.........ccc..." \ - "eee.........ccc..." \ - "eee.........ccc..." \ - "ee.ddddddddd.cc..." \ - "e.ddddddddddd.c..." \ - ".ddddddddddddd...." \ - ".................."; - - - static const char *keys[24] = - { - "........................" \ - "........................" \ - "..........cccc.........." \ - "........cccccccc........" \ - "........cc....cc........" \ - ".......cc......cc......." \ - ".......cc.....ccc......." \ - ".......cc....cccc......." \ - ".......cc...cc.cc......." \ - ".......cc..cc..cc......." \ - ".......cc.cc...cc......." \ - ".......cccc....cc......." \ - ".......ccc.....cc......." \ - "........cc....cc........" \ - "........cccccccc........" \ - "..........cccc.........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "...........cc..........." \ - "..........ccc..........." \ - ".........cccc..........." \ - "........cc.cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "...........cc..........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "........cccccccc........" \ - ".......cccccccccc......." \ - ".......cc......cc......." \ - "...............cc......." \ - "..............ccc......." \ - "............cccc........" \ - ".........cccccc........." \ - "........cccc............" \ - ".......ccc.............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".........cccccc........." \ - "........cccccccc........" \ - ".......ccc....ccc......." \ - ".......cc......cc......." \ - "...............cc......." \ - "..............ccc......." \ - "..........cccccc........" \ - "..........cccccc........" \ - "..............ccc......." \ - "...............cc......." \ - ".......cc......cc......." \ - ".......ccc....ccc......." \ - "........cccccccc........" \ - ".........cccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "..............c........." \ - ".............cc........." \ - "............ccc........." \ - "...........cccc........." \ - "..........cc.cc........." \ - ".........cc..cc........." \ - "........cc...cc........." \ - ".......cc....cc........." \ - "......ccccccccccc......." \ - "......ccccccccccc......." \ - ".............cc........." \ - ".............cc........." \ - ".............cc........." \ - ".............cc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccccc........." \ - ".......ccccccccc........" \ - "..............ccc......." \ - "...............cc......." \ - "...............cc......." \ - "...............cc......." \ - ".......cc......cc......." \ - ".......ccc....ccc......." \ - "........cccccccc........" \ - ".........cccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".........cccccc........." \ - "........cccccccc........" \ - ".......ccc....ccc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc.cccc.........." \ - ".......ccccccccc........" \ - ".......cccc...cc........" \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......ccc....ccc......." \ - "........cccccccc........" \ - ".........cccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - "...............cc......." \ - "..............ccc......." \ - ".............ccc........" \ - "............ccc........." \ - "...........ccc.........." \ - "..........ccc..........." \ - ".........ccc............" \ - "........ccc............." \ - ".......ccc.............." \ - "......ccc..............." \ - "......ccc..............." \ - "......cc................" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".........cccccc........." \ - "........cccccccc........" \ - ".......ccc....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - "........cc....cc........" \ - ".........cccccc........." \ - "........cccccccc........" \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......ccc....ccc......." \ - "........cccccccc........" \ - ".........cccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".........cccccc........." \ - "........cccccccc........" \ - ".......ccc....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - "........ccc...ccc......." \ - "........ccccccccc......." \ - "..........cccc.cc......." \ - "...............cc......." \ - "...............cc......." \ - ".......ccc....ccc......." \ - "........cccccccc........" \ - ".........cccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "...........cc..........." \ - "..........cccc.........." \ - "..........cccc.........." \ - ".........cccccc........." \ - ".........cc..cc........." \ - ".........cc..cc........." \ - "........cccccccc........" \ - "........cccccccc........" \ - "........cc....cc........" \ - ".......ccc....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - "......ccc......ccc......" \ - "......cc........cc......" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccc........." \ - ".......ccccccccc........" \ - ".......cc.....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc.....cc........" \ - ".......cccccccc........." \ - ".......ccccccccc........" \ - ".......cc.....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc.....ccc......." \ - ".......ccccccccc........" \ - ".......cccccccc........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "........cccccccc........" \ - ".......cccccccccc......." \ - ".......cc......cc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc......cc......." \ - ".......cccccccccc......." \ - "........cccccccc........" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......ccccccc.........." \ - ".......cccccccc........." \ - ".......cc....ccc........" \ - ".......cc.....cc........" \ - ".......cc.....ccc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc......cc......." \ - ".......cc.....ccc......." \ - ".......cc.....cc........" \ - ".......cc....ccc........" \ - ".......cccccccc........." \ - ".......ccccccc.........." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccc..........." \ - ".......cccccc..........." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccc..........." \ - ".......cccccc..........." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - ".....ccc.......ccc......" \ - ".....cccc.....cccc......" \ - ".....cc.cc...cc.cc......" \ - ".....cc..cc.cc..cc......" \ - ".....cc...ccc...cc......" \ - ".....cc....c....cc......" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - ".....cc.........cc......" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccc..........." \ - ".......cccccc..........." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cc..............." \ - ".......cccccccccc......." \ - ".......cccccccccc......." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "......ccccccccc........." \ - "......cccccccccc........" \ - "......cc......ccc......." \ - "......cc.......cc......." \ - "......cc.......cc......." \ - "......cc......ccc......." \ - "......cccccccccc........" \ - "......ccccccccc........." \ - "......cc...ccc.........." \ - "......cc....ccc........." \ - "......cc.....ccc........" \ - "......cc......ccc......." \ - "......cc.......ccc......" \ - "......cc........ccc....." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "........ccccccccc......." \ - ".......cccccccccc......." \ - "......ccc......cc......." \ - "......cc.......cc......." \ - "......cc................" \ - "......cc................" \ - "......cc...cccccc......." \ - "......cc...cccccc......." \ - "......cc.......cc......." \ - "......cc.......cc......." \ - "......cc.......cc......." \ - "......ccc.....ccc......." \ - ".......cccccccccc......." \ - ".........ccccc.cc......." \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................" \ - "........................", - - "........................" \ - "........................" \ - ".bbbbbbbbbbbbbbbbbbbbbb." \ - ".b....................b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".b.cccccccc...........b." \ - ".bbbbbbbbbbbbbbbbbbbbbb." \ - "........................"}; - - dst = memory_region(REGION_GFX1); - memset(dst, 0, 128 * 24 * 24 / 8); - for (i = 0; i < 128; i++) - { - for (y = 0; y < 24; y++) - { - for (x = 0; x < 18; x++) - { - switch (seg7[y * 18 + x]) - { - case 'a': - if (i & 1) - *dst |= 0x80 >> (x & 7); - break; - case 'b': - if (i & 2) - *dst |= 0x80 >> (x & 7); - break; - case 'c': - if (i & 4) - *dst |= 0x80 >> (x & 7); - break; - case 'd': - if (i & 8) - *dst |= 0x80 >> (x & 7); - break; - case 'e': - if (i & 16) - *dst |= 0x80 >> (x & 7); - break; - case 'f': - if (i & 32) - *dst |= 0x80 >> (x & 7); - break; - case 'g': - if (i & 64) - *dst |= 0x80 >> (x & 7); - break; - } - if ((x & 7) == 7) - dst++; - } - dst++; - } - } - - dst = memory_region(2); - memset(dst, 0, 24 * 18 * 24 / 8); - for (i = 0; (i < 24)&&(keys[i]); i++) // only 23 keys inited! - { - for (y = 0; y < 18; y++) - { - for (x = 0; x < 24; x++) - { - switch (keys[i][y * 24 + x]) - { - case 'a': - *dst |= 0x80 >> ((x & 3) * 2); - break; - case 'b': - *dst |= 0x40 >> ((x & 3) * 2); - break; - case 'c': - *dst |= 0xc0 >> ((x & 3) * 2); - break; - } - if ((x & 3) == 3) - dst++; - } - } - } -} - -DEVICE_LOAD( mekd2_cart ) -{ - const char magic[] = "MEK6800D2"; - char buff[9]; - UINT16 addr, size; - UINT8 ident, *RAM = memory_region(REGION_CPU1); - - image_fread(image, buff, sizeof (buff)); - if (memcmp(buff, magic, sizeof (buff))) - { - logerror( "mekd2_rom_load: magic '%s' not found\n", magic); - return INIT_FAIL; - } - image_fread(image, &addr, 2); - addr = LITTLE_ENDIANIZE_INT16(addr); - image_fread(image, &size, 2); - size = LITTLE_ENDIANIZE_INT16(size); - image_fread(image, &ident, 1); -/* LOG(( "mekd2_rom_load: $%04X $%04X $%02X\n", addr, size, ident)); */ - while (size-- > 0) - image_fread(image, &RAM[addr++], 1); - - return INIT_PASS; -} diff --git a/mess/machine/msx.c b/mess/machine/msx.c deleted file mode 100644 index bfa30c467..000000000 --- a/mess/machine/msx.c +++ /dev/null @@ -1,1102 +0,0 @@ -/* - * msx.c: MSX emulation - * - * Copyright (C) 2004 Sean Young - * - * Todo: - * - * - fix mouse support - * - cassette support doesn't work - * - Ensure changing cartridge after boot works - * - wd2793, nms8255 - */ - -#include "driver.h" -#include "includes/msx_slot.h" -#include "includes/msx.h" -#include "vidhrdw/generic.h" -#include "machine/8255ppi.h" -#include "includes/tc8521.h" -#include "machine/wd17xx.h" -#include "devices/basicdsk.h" -#include "vidhrdw/tms9928a.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/v9938.h" -#include "devices/printer.h" -#include "devices/cassette.h" -#include "utils.h" -#include "image.h" -#include "osdepend.h" -#include "sound/ay8910.h" -#include "sound/2413intf.h" -#include "sound/dac.h" - -#define VERBOSE 0 - -MSX msx1; -static slot_state *cart_state[MSX_MAX_CARTS]; - -static int msx_probe_type (UINT8* pmem, int size) -{ - int kon4, kon5, asc8, asc16, i; - - if (size <= 0x10000) return 0; - - if ( (pmem[0x10] == 'Y') && (pmem[0x11] == 'Z') && (size > 0x18000) ) - return 6; - - kon4 = kon5 = asc8 = asc16 = 0; - - for (i=0;i MAX (asc8, asc16) ) - return (kon5 > kon4) ? 2 : 3; - else - return (asc8 > asc16) ? 4 : 5; -} - -DEVICE_LOAD (msx_cart) -{ - int size; - int size_aligned; - UINT8 *mem; - int type; - const char *extra; - char *sramfile; - slot_state *state; - int id; - - id = image_index_in_device (image); - - size = image_length (image); - if (size < 0x2000) { - logerror ("cart #%d: error: file is smaller than 2kb, too small " - "to be true!\n", id); - return INIT_FAIL; - } - - /* allocate memory and load */ - size_aligned = 0x2000; - while (size_aligned < size) { - size_aligned *= 2; - } - mem = image_malloc (image, size_aligned); - if (!mem) { - logerror ("cart #%d: error: failed to allocate memory for cartridge\n", - id); - return INIT_FAIL; - } - if (size < size_aligned) { - memset (mem, 0xff, size_aligned); - } - if (image_fread(image, mem, size) != size) { - logerror ("cart #%d: %s: can't read full %d bytes\n", - id, image_filename (image), size); - return INIT_FAIL; - } - - /* see if msx.crc will tell us more */ - extra = image_extrainfo (image); - if (!extra) { - logerror("cart #%d: warning: no information in crc file\n", id); - type = -1; - } - else if ((1 != sscanf (extra, "%d", &type) ) || - type < 0 || type > SLOT_LAST_CARTRIDGE_TYPE) { - logerror("cart #%d: warning: information in crc file not valid\n", id); - type = -1; - } - else { - logerror ("cart #%d: info: cart extra info: '%s' = %s\n", id, extra, - msx_slot_list[type].name); - } - - /* if not, attempt autodetection */ - if (type < 0) { - type = msx_probe_type (mem, size); - - if (mem[0] != 'A' || mem[1] != 'B') { - logerror("cart #%d: %s: May not be a valid ROM file\n", - id, image_filename (image)); - } - - logerror("cart #%d: Probed cartridge mapper %d/%s\n", id, - type, msx_slot_list[type].name); - } - - /* mapper type 0 always needs 64kB */ - if (!type && size_aligned != 0x10000) - { - size_aligned = 0x10000; - mem = image_realloc(image, mem, 0x10000); - if (!mem) { - logerror ("cart #%d: error: cannot allocate memory\n", id); - return INIT_FAIL; - } - - if (size < 0x10000) { - memset (mem + size, 0xff, 0x10000 - size); - } - if (size > 0x10000) { - logerror ("cart #%d: warning: rom truncated to 64kb due to " - "mapperless type (possibly detected)\n", id); - - size = 0x10000; - } - } - - /* mapper type 0 (ROM) might need moving around a bit */ - if (!type) { - int i, page = 1; - - /* find the correct page */ - if (mem[0] == 'A' && mem[1] == 'B') { - for (i=2; i<=8; i += 2) { - if (mem[i] || mem[i+1]) { - page = mem[i+1] / 0x40; - break; - } - } - } - - if (size <= 0x4000) { - if (page == 1 || page == 2) { - /* copy to the respective page */ - memcpy (mem + (page * 0x4000), mem, 0x4000); - memset (mem, 0xff, 0x4000); - } - else { - /* memory is repeated 4 times */ - page = -1; - memcpy (mem + 0x4000, mem, 0x4000); - memcpy (mem + 0x8000, mem, 0x4000); - memcpy (mem + 0xc000, mem, 0x4000); - } - } - else /*if (size <= 0xc000) */ { - if (page) { - /* shift up 16kB; custom memcpy so overlapping memory - isn't corrupted. ROM starts in page 1 (0x4000) */ - UINT8 *m; - - page = 1; - i = 0xc000; m = mem + 0xffff; - while (i--) { - *m = *(m - 0x4000); m--; - } - memset (mem, 0xff, 0x4000); - } - } - - if (page) { - logerror ("cart #%d: info: rom in page %d\n", id, page); - } - else { - logerror ("cart #%d: info: rom duplicted in all pages\n", id); - } - } - - /* kludge */ - if (type == 0) { - type = SLOT_ROM; - } - - /* allocate and set slot_state for this cartridge */ - state = (slot_state*) image_malloc(image, sizeof (slot_state)); - if (!state) - { - logerror ("cart #%d: error: cannot allocate memory for " - "cartridge state\n", id); - return INIT_FAIL; - } - memset (state, 0, sizeof (slot_state)); - - state->type = type; - sramfile = image_malloc(image, strlen (image_filename (image) + 1)); - - if (sramfile) { - char *ext; - - strcpy (sramfile, image_basename (image)); - ext = strrchr (sramfile, '.'); - if (ext) { - *ext = 0; - } - state->sramfile = sramfile; - } - - if (msx_slot_list[type].init (state, 0, mem, size_aligned)) { - return INIT_FAIL; - } - if (msx_slot_list[type].loadsram) { - msx_slot_list[type].loadsram (state); - } - - msx1.cart_state[id] = cart_state[id] = state; - msx_memory_set_carts (); - - return INIT_PASS; -} - -DEVICE_UNLOAD (msx_cart) -{ - int id; - - id = image_index_in_device (image); - if (msx_slot_list[msx1.cart_state[id]->type].savesram) - { - msx_slot_list[msx1.cart_state[id]->type].savesram (msx1.cart_state[id]); - } -} - -void msx_vdp_interrupt(int i) -{ - cpunum_set_input_line (0, 0, (i ? HOLD_LINE : CLEAR_LINE)); -} - -static void msx_ch_reset_core (void) -{ - msx_memory_reset (); - msx_memory_map_all (); -} - -static const TMS9928a_interface tms9928a_interface = -{ - TMS99x8A, - 0x4000, - 0, 0, - msx_vdp_interrupt -}; - -MACHINE_START( msx ) -{ - TMS9928A_configure(&tms9928a_interface); - return 0; -} - -MACHINE_RESET( msx ) -{ - TMS9928A_reset (); - msx_ch_reset_core (); -} - -MACHINE_RESET( msx2 ) -{ - v9938_reset (); - msx_ch_reset_core (); -} - -static void msx_wd179x_int (int state); - -static WRITE8_HANDLER ( msx_ppi_port_a_w ); -static WRITE8_HANDLER ( msx_ppi_port_c_w ); -static READ8_HANDLER (msx_ppi_port_b_r ); - -static ppi8255_interface msx_ppi8255_interface = -{ - 1, - {NULL}, - {msx_ppi_port_b_r}, - {NULL}, - {msx_ppi_port_a_w}, - {NULL}, - {msx_ppi_port_c_w} -}; - -static struct tc8521_interface tc = { NULL }; - -static void msx_init(void) -{ - int i, n; - - /* z80 stuff */ - static int z80_cycle_table[] = - { - Z80_TABLE_op, Z80_TABLE_cb, Z80_TABLE_xy, - Z80_TABLE_ed, Z80_TABLE_xycb, Z80_TABLE_ex - }; - - memset (&msx1, 0, sizeof (MSX)); - /* LOAD_DEVICE is called before DRIVER_INIT */ - for (i=0; i 0.0038 ? 0x80 : 0); - - if ( (msx1.psg_b ^ readinputport (8) ) & 0x40) - { - /* game port 2 */ - inp = input_port_7_r (0) & 0x7f; -#if 0 - if ( !(inp & 0x80) ) - { -#endif - /* joystick */ - return (inp & 0x7f) | data; -#if 0 - } - else - { - /* mouse */ - data |= inp & 0x70; - if (msx1.mouse_stat[1] < 0) - inp = 0xf; - else - inp = ~(msx1.mouse[1] >> (4*msx1.mouse_stat[1]) ) & 15; - - return data | inp; - } -#endif - } - else - { - /* game port 1 */ - inp = input_port_6_r (0) & 0x7f; -#if 0 - if ( !(inp & 0x80) ) - { -#endif - /* joystick */ - return (inp & 0x7f) | data; -#if 0 - } - else - { - /* mouse */ - data |= inp & 0x70; - if (msx1.mouse_stat[0] < 0) - inp = 0xf; - else - inp = ~(msx1.mouse[0] >> (4*msx1.mouse_stat[0]) ) & 15; - - return data | inp; - } -#endif - } - - return 0; -} - -READ8_HANDLER ( msx_psg_port_b_r ) -{ - return msx1.psg_b; -} - -WRITE8_HANDLER ( msx_psg_port_a_w ) -{ -} - -WRITE8_HANDLER ( msx_psg_port_b_w ) -{ - /* Arabic or kana mode led */ - if ( (data ^ msx1.psg_b) & 0x80) - set_led_status (2, !(data & 0x80) ); - - if ( (msx1.psg_b ^ data) & 0x10) - { - if (++msx1.mouse_stat[0] > 3) msx1.mouse_stat[0] = -1; - } - if ( (msx1.psg_b ^ data) & 0x20) - { - if (++msx1.mouse_stat[1] > 3) msx1.mouse_stat[1] = -1; - } - - msx1.psg_b = data; -} - -WRITE8_HANDLER ( msx_printer_w ) -{ - if (readinputport (8) & 0x80) { - /* SIMPL emulation */ - if (offset == 1) - DAC_signed_data_w (0, data); - } - else { - - if (offset == 1) - { - msx1.prn_data = data; - } - else - { - if ((msx1.prn_strobe & 2) && !(data & 2)) - { - printer_output(printer_image(), msx1.prn_data); - } - - msx1.prn_strobe = data; - } - } -} - -READ8_HANDLER ( msx_printer_r ) -{ - if (offset == 0 && ! (readinputport (8) & 0x80) && - printer_status(printer_image(), 0) ) - return 253; - - return 0xff; -} - -WRITE8_HANDLER (msx_fmpac_w) -{ - if (msx1.opll_active) { - - if (offset == 1) { - YM2413_data_port_0_w (0, data); - } - else { - YM2413_register_port_0_w (0, data); - } - } -} - -/* -** RTC functions -*/ - -WRITE8_HANDLER (msx_rtc_latch_w) -{ - msx1.rtc_latch = data & 15; -} - -WRITE8_HANDLER (msx_rtc_reg_w) -{ - tc8521_w (msx1.rtc_latch, data); -} - -READ8_HANDLER (msx_rtc_reg_r) -{ - return tc8521_r (msx1.rtc_latch); -} - -NVRAM_HANDLER( msx2 ) -{ - if (file) { - - if (read_or_write) { - tc8521_save_stream (file); - } - else { - tc8521_load_stream (file); - } - } -} - -/* -From: erbo@xs4all.nl (erik de boer) - -sony and philips have used (almost) the same design -and this is the memory layout -but it is not a msx standard ! - -WD1793 or wd2793 registers - -adress - -7FF8H read status register - write command register -7FF9H r/w track register (r/o on NMS 8245 and Sony) -7FFAH r/w sector register (r/o on NMS 8245 and Sony) -7FFBH r/w data register - - -hardware registers - -adress - -7FFCH r/w bit 0 side select -7FFDH r/w b7>M-on , b6>in-use , b1>ds1 , b0>ds0 (all neg. logic) -7FFEH not used -7FFFH read b7>drq , b6>intrq - -set on 7FFDH bit 2 always to 0 (some use it as disk change reset) - -*/ - -static void msx_wd179x_int (int state) - { - switch (state) { - case WD179X_IRQ_CLR: msx1.dsk_stat |= 0x40; break; - case WD179X_IRQ_SET: msx1.dsk_stat &= ~0x40; break; - case WD179X_DRQ_CLR: msx1.dsk_stat |= 0x80; break; - case WD179X_DRQ_SET: msx1.dsk_stat &= ~0x80; break; - } -} - - -DEVICE_LOAD( msx_floppy ) -{ - int size, heads = 2; - - if (! image_has_been_created(image)) - { - size = image_length(image); - - switch (size) - { - case 360*1024: - heads = 1; - case 720*1024: - break; - default: - return INIT_FAIL; - } - } - else - return INIT_FAIL; - - if (device_load_basicdsk_floppy (image) != INIT_PASS) - return INIT_FAIL; - - basicdsk_set_geometry (image, 80, heads, 9, 512, 1, 0, FALSE); - - return INIT_PASS; -} - -/* -** The PPI functions -*/ - -static WRITE8_HANDLER ( msx_ppi_port_a_w ) -{ - msx1.primary_slot = ppi8255_peek (0,0); - if (VERBOSE) - logerror ("write to primary slot select: %02x\n", msx1.primary_slot); - msx_memory_map_all (); -} - -static WRITE8_HANDLER ( msx_ppi_port_c_w ) -{ - static int old_val = 0xff; - - /* caps lock */ - if ( (old_val ^ data) & 0x40) - set_led_status (1, !(data & 0x40) ); - - /* key click */ - if ( (old_val ^ data) & 0x80) - DAC_signed_data_w (0, (data & 0x80 ? 0x7f : 0)); - - /* cassette motor on/off */ - if ( (old_val ^ data) & 0x10) - cassette_change_state(cassette_device_image(), - (data & 0x10) ? CASSETTE_MOTOR_DISABLED : - CASSETTE_MOTOR_ENABLED, - CASSETTE_MASK_MOTOR); - - /* cassette signal write */ - if ( (old_val ^ data) & 0x20) - cassette_output(cassette_device_image(), (data & 0x20) ? -1.0 : 1.0); - - old_val = data; -} - -static READ8_HANDLER( msx_ppi_port_b_r ) -{ - UINT8 result = 0xff; - int row, data; - - row = ppi8255_0_r (2) & 0x0f; - if (row <= 10) - { - data = readinputport (row/2); - if (row & 1) - data >>= 8; - result = data & 0xff; - } - return result; -} - -/************************************************************************ - * - * New memory emulation !! - * - ***********************************************************************/ - -void msx_memory_init (void) -{ - int prim, sec, page, extent, option; - int size = 0; - const msx_slot_layout *layout= (msx_slot_layout*)NULL; - const msx_slot *slot; - const msx_driver_struct *driver; - slot_state *st; - UINT8 *mem = NULL; - - msx1.empty = (UINT8*)auto_malloc (0x4000); - memset (msx1.empty, 0xff, 0x4000); - - for (prim=0; prim<4; prim++) { - for (sec=0; sec<4; sec++) { - for (page=0; page<4; page++) { - msx1.all_state[prim][sec][page]= (slot_state*)NULL; - } - } - } - - for (driver = msx_driver_list; driver->name[0]; driver++) { - if (!strcmp (driver->name, Machine->gamedrv->name)) { - layout = driver->layout; - } - } - - if (!layout) { - logerror ("msx_memory_init: error: missing layout definition in " - "msx_driver_list\n"); - return; - } - - for (; layout->entry != MSX_LAYOUT_LAST; layout++) { - - switch (layout->entry) { - case MSX_LAYOUT_SLOT_ENTRY: - prim = layout->slot_primary; - sec = layout->slot_secondary; - page = layout->slot_page; - extent = layout->page_extent; - - if (layout->slot_secondary) { - msx1.slot_expanded[layout->slot_primary]= TRUE; - } - - slot = &msx_slot_list[layout->type]; - if (slot->slot_type != layout->type) { - logerror ("internal error: msx_slot_list[%d].type != %d\n", - slot->slot_type, slot->slot_type); - } - - size = layout->size; - option = layout->option; - - if (VERBOSE) - { - logerror ("slot %d/%d/%d-%d: type %s, size 0x%x\n", - prim, sec, page, page + extent - 1, slot->name, size); - } - - st = (slot_state*)NULL; - if (layout->type == SLOT_CARTRIDGE1) { - st = msx1.cart_state[0]; - if (!st) { - slot = &msx_slot_list[SLOT_SOUNDCARTRIDGE]; - size = 0x20000; - } - } - if (layout->type == SLOT_CARTRIDGE2) { - st = msx1.cart_state[1]; - if (!st) { - /* Check whether the optional FM-PAC rom is present */ - option = 0x10000; - size = 0x10000; - mem = memory_region(REGION_CPU1) + option; - if (memory_region_length(REGION_CPU1) > size && mem[0] == 'A' && mem[1] == 'B') { - slot = &msx_slot_list[SLOT_FMPAC]; - } - else { - slot = &msx_slot_list[SLOT_EMPTY]; - } - } - } - - if (!st) { - switch (slot->mem_type) { - - case MSX_MEM_HANDLER: - case MSX_MEM_ROM: - mem = memory_region(REGION_CPU1) + option; - break; - case MSX_MEM_RAM: - mem = NULL; - break; - } - st = (slot_state*)auto_malloc (sizeof (slot_state)); - memset (st, 0, sizeof (slot_state)); - - if (slot->init (st, layout->slot_page, mem, size)) { - continue; - } - } - - while (extent--) { - if (page > 3) { - logerror ("internal error: msx_slot_layout wrong, " - "page + extent > 3\n"); - break; - } - msx1.all_state[prim][sec][page] = st; - page++; - } - break; - case MSX_LAYOUT_KANJI_ENTRY: - msx1.kanji_mem = memory_region(REGION_CPU1) + layout->option; - break; - case MSX_LAYOUT_RAMIO_SET_BITS_ENTRY: - msx1.ramio_set_bits = (UINT8)layout->option; - break; - } - } -} - -void msx_memory_reset (void) -{ - slot_state *state, *last_state= (slot_state*)NULL; - int prim, sec, page; - - msx1.primary_slot = 0; - - for (prim=0; prim<4; prim++) { - msx1.secondary_slot[prim] = 0; - for (sec=0; sec<4; sec++) { - for (page=0; page<4; page++) { - state = msx1.all_state[prim][sec][page]; - if (state && state != last_state) { - msx_slot_list[state->type].reset (state); - } - last_state = state; - } - } - } -} - -void msx_memory_set_carts (void) -{ - const msx_slot_layout *layout; - int page; - - if (!msx1.layout) { - return; - } - - for (layout = msx1.layout; layout->entry != MSX_LAYOUT_LAST; - layout++) { - - if (layout->entry == MSX_LAYOUT_SLOT_ENTRY) { - - switch (layout->type) { - case SLOT_CARTRIDGE1: - for (page=0; page<4; page++) { - msx1.all_state[layout->slot_primary] - [layout->slot_secondary] - [page] = msx1.cart_state[0]; - } - break; - case SLOT_CARTRIDGE2: - for (page=0; page<4; page++) { - msx1.all_state[layout->slot_primary] - [layout->slot_secondary] - [page] = msx1.cart_state[1]; - } - break; - } - } - } -} - -void msx_memory_map_page (int page) -{ - int slot_primary; - int slot_secondary; - slot_state *state; - const msx_slot *slot; - - slot_primary = (msx1.primary_slot >> (page * 2)) & 3; - slot_secondary = (msx1.secondary_slot[slot_primary] >> (page * 2)) & 3; - - state = msx1.all_state[slot_primary][slot_secondary][page]; - slot = state ? &msx_slot_list[state->type] : &msx_slot_list[SLOT_EMPTY]; - msx1.state[page] = state; - msx1.slot[page] = slot; - - if (VERBOSE) - { - logerror ("mapping %s in %d/%d/%d\n", slot->name, slot_primary, - slot_secondary, page); - } - slot->map (state, page); -} - -void msx_memory_map_all (void) -{ - int i; - - for (i=0; i<4; i++) { - msx_memory_map_page (i); - } -} - -WRITE8_HANDLER (msx_superloadrunner_w) -{ - msx1.superloadrunner_bank = data; - if (msx1.slot[2]->slot_type == SLOT_SUPERLOADRUNNER) { - msx1.slot[2]->map (msx1.state[2], 2); - } - msx_page0_w (-1, data); -} - -WRITE8_HANDLER (msx_page0_w) -{ - offset++; - - switch (msx1.slot[0]->mem_type) { - case MSX_MEM_RAM: - msx1.ram_pages[0][offset] = data; - break; - case MSX_MEM_HANDLER: - msx1.slot[0]->write (msx1.state[0], offset, data); - } -} - -WRITE8_HANDLER (msx_page1_w) -{ - switch (msx1.slot[1]->mem_type) { - case MSX_MEM_RAM: - msx1.ram_pages[1][offset] = data; - break; - case MSX_MEM_HANDLER: - msx1.slot[1]->write (msx1.state[1], 0x4000 + offset, data); - } -} - -WRITE8_HANDLER (msx_page2_w) -{ - switch (msx1.slot[2]->mem_type) { - case MSX_MEM_RAM: - msx1.ram_pages[2][offset] = data; - break; - case MSX_MEM_HANDLER: - msx1.slot[2]->write (msx1.state[2], 0x8000 + offset, data); - } -} - -WRITE8_HANDLER (msx_page3_w) -{ - switch (msx1.slot[3]->mem_type) { - case MSX_MEM_RAM: - msx1.ram_pages[3][offset] = data; - break; - case MSX_MEM_HANDLER: - msx1.slot[3]->write (msx1.state[3], 0xc000 + offset, data); - } -} - -WRITE8_HANDLER (msx_sec_slot_w) -{ - int slot = msx1.primary_slot >> 6; - if (msx1.slot_expanded[slot]) - { - if (VERBOSE) - logerror ("write to secondary slot %d select: %02x\n", slot, data); - - msx1.secondary_slot[slot] = data; - msx_memory_map_all (); - } - else { - msx_page3_w (0x3fff, data); - } -} - -READ8_HANDLER (msx_sec_slot_r) -{ - UINT8 result; - int slot = msx1.primary_slot >> 6; - - if (msx1.slot_expanded[slot]) - result = ~msx1.secondary_slot[slot]; - else - result = msx1.top_page[0x1fff]; - - return result; -} - -WRITE8_HANDLER (msx_ram_mapper_w) -{ - msx1.ram_mapper[offset] = data; - if (msx1.slot[offset]->slot_type == SLOT_RAM_MM) { - msx1.slot[offset]->map (msx1.state[offset], offset); - } -} - -READ8_HANDLER (msx_ram_mapper_r) -{ - return msx1.ram_mapper[offset] | msx1.ramio_set_bits; -} - -WRITE8_HANDLER (msx_90in1_w) -{ - msx1.korean90in1_bank = data; - if (msx1.slot[1]->slot_type == SLOT_KOREAN_90IN1) - { - msx1.slot[1]->map (msx1.state[1], 1); - } - if (msx1.slot[2]->slot_type == SLOT_KOREAN_90IN1) - { - msx1.slot[2]->map (msx1.state[2], 2); - } -} - -READ8_HANDLER (msx_kanji_r) -{ - UINT8 result = 0xff; - - if (msx1.kanji_mem) - { - int latch; - UINT8 ret; - - latch = msx1.kanji_latch; - ret = msx1.kanji_mem[latch++]; - - msx1.kanji_latch &= ~0x1f; - msx1.kanji_latch |= latch & 0x1f; - - result = ret; - } - return result; -} - -WRITE8_HANDLER (msx_kanji_w) -{ - if (offset) - { - msx1.kanji_latch = - (msx1.kanji_latch & 0x007E0) | ((data & 0x3f) << 11); - } - else - { - msx1.kanji_latch = - (msx1.kanji_latch & 0x1f800) | ((data & 0x3f) << 5); - } -} diff --git a/mess/machine/nes.c b/mess/machine/nes.c deleted file mode 100644 index 7846cc30b..000000000 --- a/mess/machine/nes.c +++ /dev/null @@ -1,595 +0,0 @@ -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/ppu2c0x.h" -#include "includes/nes.h" -#include "machine/nes_mmc.h" -#include "sound/nes_apu.h" -#include "zlib.h" -#include "image.h" -#include "hash.h" - - - -/* Uncomment this to dump info about the inputs to the errorlog */ -//#define LOG_JOY - -/* Uncomment this to generate prg chunk files when the cart is loaded */ -//#define SPLIT_PRG - -#define BATTERY_SIZE 0x2000 -UINT8 battery_data[BATTERY_SIZE]; - -struct nes_struct nes; -struct fds_struct nes_fds; - -static UINT32 in_0[3]; -static UINT32 in_1[3]; -static UINT32 in_0_shift; -static UINT32 in_1_shift; - -/* local prototypes */ -static void init_nes_core(void); -static void nes_machine_stop(running_machine *machine); - -static mess_image *cartslot_image(void) -{ - return image_from_devtype_and_index(IO_CARTSLOT, 0); -} - -static void init_nes_core (void) -{ - /* We set these here in case they weren't set in the cart loader */ - nes.rom = memory_region(REGION_CPU1); - nes.vrom = memory_region(REGION_GFX1); - nes.vram = memory_region(REGION_GFX2); - nes.wram = memory_region(REGION_USER1); - - /* Brutal hack put in as a consequence of the new memory system; we really - * need to fix the NES code */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x07ff, 0, 0x1800, MRA8_BANK10); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x07ff, 0, 0x1800, MWA8_BANK10); - memory_set_bankptr(10, nes.rom); - - battery_ram = nes.wram; - - /* Set up the memory handlers for the mapper */ - switch (nes.mapper) - { - case 20: - nes.slow_banking = 0; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4030, 0x403f, 0, 0, fds_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0xdfff, 0, 0, MRA8_RAM); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, MRA8_BANK1); - memory_set_bankptr(1, &nes.rom[0xe000]); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4020, 0x402f, 0, 0, fds_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0xdfff, 0, 0, MWA8_RAM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, MWA8_ROM); - break; - case 40: - nes.slow_banking = 1; - /* Game runs code in between banks, so we do things different */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MRA8_RAM); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xffff, 0, 0, MRA8_ROM); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, nes_mid_mapper_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xffff, 0, 0, nes_mapper_w); - break; - default: - nes.slow_banking = 0; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MRA8_BANK5); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0, MRA8_BANK1); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, MRA8_BANK2); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_BANK3); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, MRA8_BANK4); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, nes_mid_mapper_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xffff, 0, 0, nes_mapper_w); - break; - } - - /* Set up the mapper callbacks */ - { - const mmc *mapper; - - mapper = nes_mapper_lookup(nes.mapper); - if (mapper) - { - mmc_write_low = mapper->mmc_write_low; - mmc_read_low = mapper->mmc_read_low; - mmc_write_mid = mapper->mmc_write_mid; - mmc_write = mapper->mmc_write; - ppu_latch = mapper->ppu_latch; -// mmc_irq = mmc_list[i].mmc_irq; - } - else - { - logerror ("Mapper %d is not yet supported, defaulting to no mapper.\n",nes.mapper); - mmc_write_low = mmc_write_mid = mmc_write = NULL; - mmc_read_low = NULL; - } - } - - /* Load a battery file, but only if there's no trainer since they share */ - /* overlapping memory. */ - if (nes.trainer) return; - - /* We need this because battery ram is loaded before the */ - /* memory subsystem is set up. When this routine is called */ - /* everything is ready, so we can just copy over the data */ - /* we loaded before. */ - memcpy (battery_ram, battery_data, BATTERY_SIZE); -} - -int nes_ppu_vidaccess( int num, int address, int data ) -{ - /* TODO: this is a bit of a hack, needed to get Argus, ASO, etc to work */ - /* but, B-Wings, submath (j) seem to use this location differently... */ - if (nes.chr_chunks && (address & 0x3fff) < 0x2000) - { -// int vrom_loc; -// vrom_loc = (nes_vram[(address & 0x1fff) >> 10] * 16) + (address & 0x3ff); -// data = nes.vrom [vrom_loc]; - } - return data; -} - -static void nes_machine_reset(running_machine *machine) -{ - /* Some carts have extra RAM and require it on at startup, e.g. Metroid */ - nes.mid_ram_enable = 1; - - /* Reset the mapper variables. Will also mark the char-gen ram as dirty */ - mapper_reset (nes.mapper); - - /* Reset the serial input ports */ - in_0_shift = 0; - in_1_shift = 0; -} - -MACHINE_START( nes ) -{ - init_nes_core(); - add_reset_callback(machine, nes_machine_reset); - add_exit_callback(machine, nes_machine_stop); - - if (!image_exists(image_from_devtype_and_index(IO_CARTSLOT, 0))) - { - /* NPW 05-Mar-2006 - Hack to keep the Famicom from crashing */ - static const UINT8 infinite_loop[] = { 0x4C, 0xF9, 0xFF, 0xF9, 0xFF }; /* JMP $FFF9, DC.W $FFF9 */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xFFF9, 0xFFFD, 0, 0, MRA8_BANK11); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xFFF9, 0xFFFD, 0, 0, MWA8_BANK11); - memory_set_bankptr(11, (void *) infinite_loop); - } - return 0; -} - -static void nes_machine_stop(running_machine *machine) -{ - /* Write out the battery file if necessary */ - if (nes.battery) - image_battery_save(cartslot_image(), battery_ram, BATTERY_SIZE); -} - - - -static int zapper_hit_pixel(const UINT32 *input) -{ - UINT16 pix = 0; - rgb_t col; - UINT8 r, g, b; - extern mame_bitmap *nes_zapper_hack; - - if (nes_zapper_hack) - pix = read_pixel(nes_zapper_hack, input[1], input[2]); - - col = palette_get_color(Machine, pix); - r = (UINT8) (col >> 16); - g = (UINT8) (col >> 8); - b = (UINT8) (col >> 0); - - return (((UINT16) r) + ((UINT16) g) + ((UINT16) b)) >= 240*3; -} - - - - READ8_HANDLER ( nes_IN0_r ) -{ - int cfg; - int retVal; - - /* Some games expect bit 6 to be set because the last entry on the data bus shows up */ - /* in the unused upper 3 bits, so typically a read from $4016 leaves 0x40 there. */ - retVal = 0x40; - - retVal |= ((in_0[0] >> in_0_shift) & 0x01); - - /* Check the configuration to see what's connected */ - cfg = readinputport(PORT_CONFIG1); - - if (((cfg & 0x000f) == 0x0002) || ((cfg & 0x000f) == 0x0003)) - { - /* If button 1 is pressed, indicate the light gun trigger is pressed */ - retVal |= ((in_0[0] & 0x01) << 4); - - /* Look at the screen and see if the cursor is over a bright pixel */ - if (zapper_hit_pixel(in_0)) - retVal &= ~0x08; /* sprite hit */ - else - retVal |= 0x08; /* no sprite hit */ - } - -#ifdef LOG_JOY - logerror ("joy 0 read, val: %02x, pc: %04x, bits read: %d, chan0: %08x\n", retVal, activecpu_get_pc(), in_0_shift, in_0[0]); -#endif - - in_0_shift ++; - return retVal; -} - - READ8_HANDLER ( nes_IN1_r ) -{ - int cfg; - int retVal; - - /* Some games expect bit 6 to be set because the last entry on the data bus shows up */ - /* in the unused upper 3 bits, so typically a read from $4017 leaves 0x40 there. */ - retVal = 0x40; - - /* Handle data line 0's serial output */ - retVal |= ((in_1[0] >> in_1_shift) & 0x01); - - /* Check the fake dip to see what's connected */ - cfg = readinputport(PORT_CONFIG1); - - if (((cfg & 0x00f0) == 0x0020) || ((cfg & 0x00f0) == 0x0030)) - { - /* zapper */ - /* If button 1 is pressed, indicate the light gun trigger is pressed */ - retVal |= ((in_1[0] & 0x01) << 4); - - /* Look at the screen and see if the cursor is over a bright pixel */ - if (zapper_hit_pixel(in_1)) - retVal &= ~0x08; /* sprite hit */ - else - retVal |= 0x08; /* no sprite hit */ - } - else if ((cfg & 0x00f0) == 0x0040) - { - /* arkanoid dial */ - /* Handle data line 2's serial output */ - retVal |= ((in_1[2] >> in_1_shift) & 0x01) << 3; - - /* Handle data line 3's serial output - bits are reversed */ -// retVal |= ((in_1[3] >> in_1_shift) & 0x01) << 4; - retVal |= ((in_1[3] << in_1_shift) & 0x80) >> 3; - } - -#ifdef LOG_JOY - logerror ("joy 1 read, val: %02x, pc: %04x, bits read: %d, chan0: %08x\n", retVal, activecpu_get_pc(), in_1_shift, in_1[0]); -#endif - - in_1_shift ++; - return retVal; -} - - - -static void nes_read_input_device(int cfg, UINT32 *vals, int pad_port, - int supports_zapper, int paddle_port) -{ - vals[0] = 0; - vals[1] = 0; - vals[2] = 0; - - switch(cfg & 0x0f) - { - case 0x01: /* gamepad */ - if (pad_port >= 0) - vals[0] = readinputport(pad_port); - break; - - case 0x02: /* zapper 1 */ - if (supports_zapper) - { - vals[0] = readinputport(PORT_ZAPPER0_T); - vals[1] = readinputport(PORT_ZAPPER0_X); - vals[2] = readinputport(PORT_ZAPPER0_Y); - } - break; - - case 0x03: /* zapper 2 */ - if (supports_zapper) - { - vals[0] = readinputport(PORT_ZAPPER1_T); - vals[1] = readinputport(PORT_ZAPPER1_X); - vals[2] = readinputport(PORT_ZAPPER1_Y); - } - break; - - case 0x04: /* arkanoid paddle */ - if (paddle_port >= 0) - vals[0] = (UINT8) ((UINT8) readinputport (paddle_port) + (UINT8)0x52) ^ 0xff; - break; - } -} - - - -WRITE8_HANDLER ( nes_IN0_w ) -{ - int cfg; - UINT32 in_2[3]; - UINT32 in_3[3]; - - if (data & 0x01) return; -#ifdef LOG_JOY - logerror ("joy 0 bits read: %d\n", in_0_shift); -#endif - - /* Toggling bit 0 high then low resets both controllers */ - in_0_shift = 0; - in_1_shift = 0; - - /* Check the configuration to see what's connected */ - cfg = readinputport(PORT_CONFIG1); - - /* Read the input devices */ - nes_read_input_device(cfg >> 0, in_0, PORT_PAD0, TRUE, -1); - nes_read_input_device(cfg >> 4, in_1, PORT_PAD1, TRUE, PORT_PADDLE1); - nes_read_input_device(cfg >> 8, in_2, PORT_PAD2, FALSE, -1); - nes_read_input_device(cfg >> 12, in_3, PORT_PAD3, FALSE, -1); - - if (cfg & 0x0f00) - in_0[0] |= (in_2[0] << 8) | (0x08 << 16); - if (cfg & 0xf000) - in_1[0] |= (in_3[0] << 8) | (0x04 << 16); -} - - - -WRITE8_HANDLER ( nes_IN1_w ) -{ -} - - - -DEVICE_LOAD(nes_cart) -{ - const char *mapinfo; - int mapint1=0,mapint2=0,mapint3=0,mapint4=0,goodcrcinfo = 0; - char magic[4]; - char skank[8]; - int local_options = 0; - char m; - int i; - - /* Verify the file is in iNES format */ - memset(magic, '\0', sizeof(magic)); - image_fread(image, magic, 4); - - if ((magic[0] != 'N') || - (magic[1] != 'E') || - (magic[2] != 'S')) - goto bad; - - mapinfo = image_extrainfo(image); - if (mapinfo) - { - if (4 == sscanf(mapinfo,"%d %d %d %d",&mapint1,&mapint2,&mapint3,&mapint4)) - { - nes.mapper = mapint1; - local_options = mapint2; - nes.prg_chunks = mapint3; - nes.chr_chunks = mapint4; - logerror("NES.CRC info: %d %d %d %d\n",mapint1,mapint2,mapint3,mapint4); - goodcrcinfo = 1; - } else - { - logerror("NES: [%s], Invalid mapinfo found\n",mapinfo); - } - } else - { - logerror("NES: No extrainfo found\n"); - } - if (!goodcrcinfo) - { - // image_extrainfo() resets the file position back to start. - // Let's skip past the magic header once again. - image_fseek (image, 4, SEEK_SET); - - image_fread (image, &nes.prg_chunks, 1); - image_fread (image, &nes.chr_chunks, 1); - /* Read the first ROM option byte (offset 6) */ - image_fread (image, &m, 1); - - /* Interpret the iNES header flags */ - nes.mapper = (m & 0xf0) >> 4; - local_options = m & 0x0f; - - - /* Read the second ROM option byte (offset 7) */ - image_fread (image, &m, 1); - - /* Check for skanky headers */ - image_fread (image, &skank, 8); - - /* If the header has junk in the unused bytes, assume the extra mapper byte is also invalid */ - /* We only check the first 4 unused bytes for now */ - for (i = 0; i < 4; i ++) - { - logerror("%02x ", skank[i]); - if (skank[i] != 0x00) - { - logerror("(skank: %d)", i); -// m = 0; - } - } - logerror("\n"); - - nes.mapper = nes.mapper | (m & 0xf0); - } - - nes.hard_mirroring = local_options & 0x01; - nes.battery = local_options & 0x02; - nes.trainer = local_options & 0x04; - nes.four_screen_vram = local_options & 0x08; - - if (nes.battery) logerror("-- Battery found\n"); - if (nes.trainer) logerror("-- Trainer found\n"); - if (nes.four_screen_vram) logerror("-- 4-screen VRAM\n"); - - /* Free the regions that were allocated by the ROM loader */ - free_memory_region (Machine, REGION_CPU1); - free_memory_region (Machine, REGION_GFX1); - - /* Allocate them again with the proper size */ - new_memory_region(Machine, REGION_CPU1, 0x10000 + (nes.prg_chunks+1) * 0x4000,0); - if (nes.chr_chunks) - new_memory_region(Machine, REGION_GFX1, nes.chr_chunks * 0x2000,0); - - nes.rom = memory_region(REGION_CPU1); - nes.vrom = memory_region(REGION_GFX1); - nes.vram = memory_region(REGION_GFX2); - nes.wram = memory_region(REGION_USER1); - - /* Position past the header */ - image_fseek (image, 16, SEEK_SET); - - /* Load the 0x200 byte trainer at 0x7000 if it exists */ - if (nes.trainer) - { - image_fread (image, &nes.wram[0x1000], 0x200); - } - - /* Read in the program chunks */ - if (nes.prg_chunks == 1) - { - image_fread (image, &nes.rom[0x14000], 0x4000); - /* Mirror this bank into $8000 */ - memcpy (&nes.rom[0x10000], &nes.rom [0x14000], 0x4000); - } - else - image_fread (image, &nes.rom[0x10000], 0x4000 * nes.prg_chunks); - -#ifdef SPLIT_PRG -{ - FILE *prgout; - char outname[255]; - - for (i = 0; i < nes.prg_chunks; i ++) - { - sprintf (outname, "%s.p%d", battery_name, i); - prgout = fopen (outname, "wb"); - if (prgout) - { - fwrite (&nes.rom[0x10000 + 0x4000 * i], 1, 0x4000, prgout); - fclose (prgout); - } - } -} -#endif - - logerror("**\n"); - logerror("Mapper: %d\n", nes.mapper); - logerror("PRG chunks: %02x, size: %06x\n", nes.prg_chunks, 0x4000*nes.prg_chunks); - - /* Read in any chr chunks */ - if (nes.chr_chunks > 0) - { - image_fread (image, nes.vrom, nes.chr_chunks * 0x2000); - if (nes.mapper == 2) - logerror("Warning: VROM has been found in VRAM-based mapper. Either the mapper is set wrong or the ROM image is incorrect.\n"); - } - - logerror("CHR chunks: %02x, size: %06x\n", nes.chr_chunks, 0x4000*nes.chr_chunks); - logerror("**\n"); - - /* Attempt to load a battery file for this ROM. If successful, we */ - /* must wait until later to move it to the system memory. */ - if (nes.battery) - image_battery_load(image, battery_data, BATTERY_SIZE); - - return INIT_PASS; - -bad: - logerror("BAD section hit during LOAD ROM.\n"); - return INIT_FAIL; -} - - - -void nes_partialhash(char *dest, const unsigned char *data, - unsigned long length, unsigned int functions) -{ - if (length <= 16) - return; - hash_compute(dest, &data[16], length - 16, functions); -} - - - -DEVICE_LOAD(nes_disk) -{ - unsigned char magic[4]; - - /* See if it has a fucking redundant header on it */ - image_fread(image, magic, 4); - if ((magic[0] == 'F') && - (magic[1] == 'D') && - (magic[2] == 'S')) - { - /* Skip past the fucking redundant header */ - image_fseek (image, 0x10, SEEK_SET); - } - else - /* otherwise, point to the start of the image */ - image_fseek (image, 0, SEEK_SET); - - /* clear some of the cart variables we don't use */ - nes.trainer = 0; - nes.battery = 0; - nes.prg_chunks = nes.chr_chunks = 0; - - nes.mapper = 20; - nes.four_screen_vram = 0; - nes.hard_mirroring = 0; - - nes_fds.sides = 0; - nes_fds.data = NULL; - - /* read in all the sides */ - while (!image_feof (image)) - { - nes_fds.sides ++; - nes_fds.data = image_realloc(image, nes_fds.data, nes_fds.sides * 65500); - if (!nes_fds.data) - return INIT_FAIL; - image_fread (image, nes_fds.data + ((nes_fds.sides-1) * 65500), 65500); - } - - logerror ("Number of sides: %d\n", nes_fds.sides); - - return INIT_PASS; - -//bad: - logerror("BAD section hit during disk load.\n"); - return 1; -} - -DEVICE_UNLOAD(nes_disk) -{ - /* TODO: should write out changes here as well */ - nes_fds.data = NULL; -} - -void ppu_mirror_custom (int page, int address) -{ - fatalerror("Unimplemented"); -} - -void ppu_mirror_custom_vrom (int page, int address) -{ - fatalerror("Unimplemented"); -} diff --git a/mess/machine/odyssey2.c b/mess/machine/odyssey2.c deleted file mode 100644 index 61582f311..000000000 --- a/mess/machine/odyssey2.c +++ /dev/null @@ -1,129 +0,0 @@ -/*************************************************************************** - - odyssey2.c - - Machine file to handle emulation of the Odyssey 2. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/odyssey2.h" -#include "image.h" -#include "devices/cartslot.h" - -static UINT8 *ram; -static UINT8 p1, p2; - -DRIVER_INIT( odyssey2 ) -{ - int i; - UINT8 *gfx = memory_region(REGION_GFX1); - for (i = 0; i < 256; i++) - gfx[i] = i; - - ram = auto_malloc(0x100); -} - - - -MACHINE_RESET( odyssey2 ) -{ - memory_set_bankptr(1, memory_region(REGION_USER1) + 3*0x800); - p1 = 0; - p2 = 0; - return; -} - - - -/****** External RAM ******************************/ - -READ8_HANDLER( odyssey2_bus_r ) -{ - if ((p1 & 0x48) == 0) - return odyssey2_video_r(offset); /* seems to have higher priority than ram??? */ - if (!(p1 & 0x10)) - return ram[offset]; - return 0; -} - -WRITE8_HANDLER( odyssey2_bus_w ) -{ - if ((p1 & 0x50) == 0x00) - ram[offset] = data; - if (!(p1 & 8)) - odyssey2_video_w(offset, data); -} - - - -/***** 8048 Ports ************************/ - -READ8_HANDLER( odyssey2_getp1 ) -{ - UINT8 data=p1; - logerror("%.6f p1 read %.2x\n", timer_get_time(), data); - return data; -} - - -WRITE8_HANDLER( odyssey2_putp1 ) -{ - p1=data; - memory_set_bankptr(1, memory_region(REGION_USER1)+(((data&3)^3)<<11)); -/* 2kbyte eprom are connected a0..a9 to a0..a9 - but a10 of the eprom is connected to a11 of the cpu - - the first 0x400 bytes are internal rom, than comes 0x400 bytes of the eprom - and the 2nd 0x400 bytes are mapped 2 times -*/ - memory_set_bankptr(2, memory_region(REGION_USER1)+(((data&3)^3)<<11)+0x400); - logerror("%.6f p1 written %.2x\n", timer_get_time(), data); -} - -READ8_HANDLER( odyssey2_getp2 ) -{ - UINT8 data = p2; - UINT8 h = 0xff; - int i, j; - if (!(p1 & 4)) - { - if ((p2 & 7) <= 5) - h &= readinputport(p2 & 7); - - for (i= 0x80, j = 0; i > 0; i >>= 1, j++) - { - if (!(h & i)) - { - data &= ~0x10; - data = (data & ~0xe0) | (j << 5); - break; - } - } - } - logerror("%.6f p2 read %.2x\n", timer_get_time(), data); - return data; -} - -WRITE8_HANDLER( odyssey2_putp2 ) -{ - p2 = data; - logerror("%.6f p2 written %.2x\n", timer_get_time(), data); -} - -READ8_HANDLER( odyssey2_getbus ) -{ - UINT8 data = 0xff; - if ((p2 & 7)!=0) - data &= readinputport(6); - if ((p2 & 7) == 0) - data &= readinputport(7); - logerror("%.6f bus read %.2x\n", timer_get_time(), data); - return data; -} - -WRITE8_HANDLER( odyssey2_putbus ) -{ - logerror("%.6f bus written %.2x\n", timer_get_time(), data); -} diff --git a/mess/machine/pc.c b/mess/machine/pc.c deleted file mode 100644 index 33697f0b5..000000000 --- a/mess/machine/pc.c +++ /dev/null @@ -1,298 +0,0 @@ -/*************************************************************************** - - machine/pc.c - - Functions to emulate general aspects of the machine - (RAM, ROM, interrupts, I/O ports) - - The information herein is heavily based on - 'Ralph Browns Interrupt List' - Release 52, Last Change 20oct96 - -***************************************************************************/ - -#include -#include "driver.h" -#include "machine/8255ppi.h" -#include "machine/uart8250.h" -#include "machine/mc146818.h" -#include "machine/pic8259.h" -#include "machine/pc_turbo.h" - -#include "vidhrdw/generic.h" -#include "vidhrdw/pc_vga.h" -#include "vidhrdw/pc_cga.h" -#include "vidhrdw/pc_aga.h" -#include "vidhrdw/pc_mda.h" -#include "vidhrdw/pc_t1t.h" - -#include "machine/pit8253.h" - -#include "includes/pc_mouse.h" -#include "machine/pckeybrd.h" - -#include "includes/pclpt.h" -#include "includes/centroni.h" - -#include "machine/pc_hdc.h" -#include "machine/nec765.h" -#include "includes/amstr_pc.h" -#include "includes/europc.h" -#include "includes/ibmpc.h" -#include "machine/pcshare.h" - -#include "includes/pc.h" -#include "mscommon.h" - -#include "machine/8237dma.h" - -DRIVER_INIT( pccga ) -{ - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - ppi8255_init(&pc_ppi8255_interface); - pc_rtc_init(); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); -} - -DRIVER_INIT( bondwell ) -{ - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - ppi8255_init(&pc_ppi8255_interface); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); -} - -DRIVER_INIT( pcmda ) -{ - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - ppi8255_init(&pc_ppi8255_interface); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); -} - -DRIVER_INIT( europc ) -{ - UINT8 *gfx = &memory_region(REGION_GFX1)[0x8000]; - UINT8 *rom = &memory_region(REGION_CPU1)[0]; - int i; - - /* just a plain bit pattern for graphics data generation */ - for (i = 0; i < 256; i++) - gfx[i] = i; - - /* - fix century rom bios bug ! - if year <79 month (and not CENTURY) is loaded with 0x20 - */ - if (rom[0xff93e]==0xb6){ // mov dh, - UINT8 a; - rom[0xff93e]=0xb5; // mov ch, - for (i=0xf8000, a=0; i<0xfffff; i++ ) a+=rom[i]; - rom[0xfffff]=256-a; - } - - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - - europc_rtc_init(); -// europc_rtc_set_time(); -} - -DRIVER_INIT( t1000hx ) -{ - UINT8 *gfx = &memory_region(REGION_GFX1)[0x1000]; - int i; - /* just a plain bit pattern for graphics data generation */ - for (i = 0; i < 256; i++) - gfx[i] = i; - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - pc_turbo_setup(0, 3, 0x02, 4.77/12, 1); -} - -DRIVER_INIT( pc200 ) -{ - UINT8 *gfx = &memory_region(REGION_GFX1)[0x8000]; - int i; - - /* just a plain bit pattern for graphics data generation */ - for (i = 0; i < 256; i++) - gfx[i] = i; - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xbffff, 0, 0, pc200_videoram_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xbffff, 0, 0, pc200_videoram_w ); - videoram_size=0x10000; - videoram=memory_region(REGION_CPU1)+0xb0000; -/* This is all done in video_start_pc200() - // 0x3dd, 0x3d8, 0x3d4, 0x3de are also in mda mode present!? - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, pc200_cga_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, pc200_cga_w ); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3b0, 0x3bf, 0, 0, pc_MDA_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3b0, 0x3bf, 0, 0, pc_MDA_w ); -*/ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x278, 0x27b, 0, 0, pc200_port378_r ); - - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); -} - -DRIVER_INIT( pc1512 ) -{ - UINT8 *gfx = &memory_region(REGION_GFX1)[0x8000]; - int i; - - /* just a plain bit pattern for graphics data generation */ - for (i = 0; i < 256; i++) - gfx[i] = i; - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb8000, 0xbbfff, 0, 0, MRA8_BANK1 ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb8000, 0xbbfff, 0, 0, pc1512_videoram_w ); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, pc1512_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, pc1512_w ); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x278, 0x27b, 0, 0, pc_parallelport2_r ); - - - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - mc146818_init(MC146818_IGNORE_CENTURY); -} - - - -static void pc_map_vga_memory(offs_t begin, offs_t end, read8_handler rh, write8_handler wh) -{ - int buswidth; - buswidth = cputype_databus_width(Machine->drv->cpu[0].cpu_type, ADDRESS_SPACE_PROGRAM); - switch(buswidth) - { - case 8: - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xA0000, 0xBFFFF, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xA0000, 0xBFFFF, 0, 0, MWA8_NOP); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, begin, end, 0, 0, wh); - break; - } -} - - - -static const struct pc_vga_interface vga_interface = -{ - 1, - pc_map_vga_memory, - - input_port_0_r, - - ADDRESS_SPACE_IO, - 0x0000 -}; - - - -DRIVER_INIT( pc1640 ) -{ - pc_vga_init(&vga_interface, NULL); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa0000, 0xaffff, 0, 0, MRA8_BANK1 ); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xb7fff, 0, 0, MRA8_BANK2 ); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb8000, 0xbffff, 0, 0, MRA8_BANK3 ); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa0000, 0xaffff, 0, 0, MWA8_BANK1 ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xb7fff, 0, 0, MWA8_BANK2 ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb8000, 0xbffff, 0, 0, MWA8_BANK3 ); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3b0, 0x3bf, 0, 0, vga_port_03b0_r ); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3c0, 0x3cf, 0, 0, paradise_ega_03c0_r ); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, pc1640_port3d0_r ); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3b0, 0x3bf, 0, 0, vga_port_03b0_w ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3c0, 0x3cf, 0, 0, vga_port_03c0_w ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3d0, 0x3df, 0, 0, vga_port_03d0_w ); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x278, 0x27b, 0, 0, pc1640_port278_r ); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x4278, 0x427b, 0, 0, pc1640_port4278_r ); - - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - - mc146818_init(MC146818_IGNORE_CENTURY); -} - -DRIVER_INIT( pc_vga ) -{ - init_pc_common(PCCOMMON_KEYBOARD_PC | PCCOMMON_DMA8237_PC | PCCOMMON_TIMER_8253); - ppi8255_init(&pc_ppi8255_interface); - - pc_vga_init(&vga_interface, NULL); -} - -static int pc_irq_callback(int irqline) -{ - return pic8259_acknowledge(0); -} - -MACHINE_RESET( pc_mda ) -{ - dma8237_reset(); - cpunum_set_irq_callback(0, pc_irq_callback); -} - -MACHINE_RESET( pc_cga ) -{ - dma8237_reset(); - cpunum_set_irq_callback(0, pc_irq_callback); -} - -MACHINE_RESET( pc_t1t ) -{ - pc_t1t_reset(); - dma8237_reset(); - cpunum_set_irq_callback(0, pc_irq_callback); -} - -MACHINE_RESET( pc_aga ) -{ - dma8237_reset(); - cpunum_set_irq_callback(0, pc_irq_callback); -} - -MACHINE_RESET( pc_vga ) -{ - dma8237_reset(); - cpunum_set_irq_callback(0, pc_irq_callback); -} - -/************************************************************************** - * - * Interrupt handlers. - * - **************************************************************************/ -static void pc_generic_frame_interrupt(void (*pc_timer)(void)) -{ - if (pc_timer) - pc_timer(); - - pc_keyboard(); -} - -void pc_mda_frame_interrupt (void) -{ - pc_generic_frame_interrupt(pc_mda_timer); -} - -void pc_cga_frame_interrupt (void) -{ - pc_generic_frame_interrupt(NULL); -} - -void tandy1000_frame_interrupt (void) -{ - pc_generic_frame_interrupt(pc_t1t_timer); -} - -void pc_aga_frame_interrupt (void) -{ - pc_generic_frame_interrupt(pc_aga_timer); -} - -void pc_vga_frame_interrupt (void) -{ - pc_generic_frame_interrupt(NULL /* vga_timer */); -} - diff --git a/mess/machine/pce.c b/mess/machine/pce.c deleted file mode 100644 index 3f42867f2..000000000 --- a/mess/machine/pce.c +++ /dev/null @@ -1,171 +0,0 @@ - -#include "driver.h" -#include "vidhrdw/vdc.h" -#include "cpu/h6280/h6280.h" -#include "includes/pce.h" -#include "image.h" - -/* the largest possible cartridge image (street fighter 2 - 2.5MB) */ -#define PCE_ROM_MAXSIZE (0x280000) - -/* system RAM */ -unsigned char *pce_user_ram; /* scratch RAM at F8 */ - -struct pce_struct pce; - -/* joystick related data*/ - -#define JOY_CLOCK 0x01 -#define JOY_RESET 0x02 - -static int joystick_port_select; /* internal index of joystick ports */ -static int joystick_data_select; /* which nibble of joystick data we want */ - -DEVICE_LOAD(pce_cart) -{ - int size; - int split_rom = 0; - const char *extrainfo; - unsigned char *ROM; - logerror("*** DEVICE_LOAD(pce_cart) : %s\n", image_filename(image)); - - /* open file to get size */ - new_memory_region(Machine, REGION_CPU1,PCE_ROM_MAXSIZE,0); - ROM = memory_region(REGION_CPU1); - - size = image_length( image ); - - /* handle header accordingly */ - if((size/512)&1) - { - logerror("*** DEVICE_LOAD(pce_cart) : Header present\n"); - size -= 512; - image_fseek(image, 512, SEEK_SET); - } - if ( size > PCE_ROM_MAXSIZE ) - size = PCE_ROM_MAXSIZE; - - image_fread(image, ROM, size); - - extrainfo = image_extrainfo( image ); - if ( extrainfo ) - { - logerror( "extrainfo: %s\n", extrainfo ); - if ( strstr( extrainfo, "ROM_SPLIT" ) ) - split_rom = 1; - } - - if ( ROM[0x1FFF] < 0xE0 ) - { - int i; - UINT8 decrypted[256]; - - logerror( "*** DEVICE_LOAD(pce_cart) : ROM image seems encrypted, decrypting...\n" ); - - /* Initialize decryption table */ - for( i = 0; i < 256; i++ ) - decrypted[i] = ( ( i & 0x01 ) << 7 ) | ( ( i & 0x02 ) << 5 ) | ( ( i & 0x04 ) << 3 ) | ( ( i & 0x08 ) << 1 ) | ( ( i & 0x10 ) >> 1 ) | ( ( i & 0x20 ) >> 3 ) | ( ( i & 0x40 ) >> 5 ) | ( ( i & 0x80 ) >> 7 ); - - /* Decrypt ROM image */ - for( i = 0; i < size; i++ ) - ROM[i] = decrypted[ROM[i]]; - } - - /* check if we're dealing with a split rom image */ - if ( size == 384 * 1024 ) - { - split_rom = 1; - /* Mirror the upper 128KB part of the image */ - memcpy( ROM + 0x060000, ROM + 0x040000, 0x020000 ); /* Set up 060000 - 07FFFF mirror */ - } - - /* set up the memory for a split rom image */ - if ( split_rom ) - { - logerror( "Split rom detected, setting up memory accordingly\n" ); - /* Set up ROM address space as follows: */ - /* 000000 - 03FFFF : ROM data 000000 - 03FFFF */ - /* 040000 - 07FFFF : ROM data 000000 - 03FFFF */ - /* 080000 - 0BFFFF : ROM data 040000 - 07FFFF */ - /* 0C0000 - 0FFFFF : ROM data 040000 - 07FFFF */ - memcpy( ROM + 0x080000, ROM + 0x040000, 0x040000 ); /* Set up 080000 - 0BFFFF region */ - memcpy( ROM + 0x0C0000, ROM + 0x040000, 0x040000 ); /* Set up 0C0000 - 0FFFFF region */ - memcpy( ROM + 0x040000, ROM, 0x040000 ); /* Set up 040000 - 07FFFF region */ - } - else - { - /* mirror 256KB rom data */ - if ( size <= 0x040000 ) - memcpy( ROM + 0x040000, ROM, 0x040000 ); - - /* mirror 512KB rom data */ - if ( size <= 0x080000 ) - memcpy( ROM + 0x080000, ROM, 0x080000 ); - } - - /* install the actual bank handlers */ - memory_install_read_handler(0, ADDRESS_SPACE_PROGRAM, 0, PCE_ROM_MAXSIZE-1, 0, 0, STATIC_BANK1); - memory_install_write_handler(0, ADDRESS_SPACE_PROGRAM, 0, PCE_ROM_MAXSIZE-1, 0, 0, STATIC_BANK1); - memory_set_bankptr(1, ROM); - - return 0; -} - -NVRAM_HANDLER( pce ) -{ - void *pce_save_ram = &memory_region(REGION_CPU1)[0x1EE000]; - - if (read_or_write) - { - mame_fwrite(file, pce_save_ram, 0x2000); - } - else - { - /* load battery backed memory from disk */ - memset(pce_save_ram, 0, 0x2000); - if (file) - mame_fread(file, pce_save_ram, 0x2000); - } -} - -DRIVER_INIT( pce ) -{ - pce.io_port_options = NO_CD_SIG | PCE_JOY_SIG | CONST_SIG; -} - -DRIVER_INIT( tg16 ) -{ - pce.io_port_options = NO_CD_SIG | TG_16_JOY_SIG | CONST_SIG; -} - -/* todo: how many input ports does the PCE have? */ -WRITE8_HANDLER ( pce_joystick_w ) -{ - h6280io_set_buffer(data); - /* bump counter on a low-to-high transition of bit 1 */ - if((!joystick_data_select) && (data & JOY_CLOCK)) - { - joystick_port_select = (joystick_port_select + 1) & 0x07; - } - - /* do we want buttons or direction? */ - joystick_data_select = data & JOY_CLOCK; - - /* clear counter if bit 2 is set */ - if(data & JOY_RESET) - { - joystick_port_select = 0; - } -} - -READ8_HANDLER ( pce_joystick_r ) -{ - UINT8 ret; - int data = readinputport(0); - if(joystick_data_select) data >>= 4; - ret = (data & 0x0F) | pce.io_port_options; -#ifdef UNIFIED_PCE - ret &= ~0x40; -#endif - return (ret); -} diff --git a/mess/machine/pet.c b/mess/machine/pet.c deleted file mode 100644 index 94459eca2..000000000 --- a/mess/machine/pet.c +++ /dev/null @@ -1,833 +0,0 @@ -/*************************************************************************** - commodore pet series computer - - peter.trauner@jk.uni-linz.ac.at -***************************************************************************/ -#include -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "cpu/m6809/m6809.h" - -#include "vidhrdw/generic.h" -#include "mscommon.h" - -#define VERBOSE_DBG 1 -#include "includes/cbm.h" -#include "includes/vc20tape.h" -#include "machine/6821pia.h" -#include "machine/6522via.h" -#include "includes/pet.h" -#include "includes/cbmserb.h" -#include "includes/cbmieeeb.h" -#include "includes/crtc6845.h" - -/* keyboard lines */ -static UINT8 pet_keyline[10] = { 0 }; -static int pet_basic1=0; /* basic version 1 for quickloader */ -static int superpet=0; -static int cbm8096=0; -static int pet_keyline_select; - -int pet_font=0; -UINT8 *pet_memory; -UINT8 *superpet_memory; -UINT8 *pet_videoram; - -/* pia at 0xe810 - port a - 7 sense input (low for diagnostics) - 6 ieee eoi in - 5 cassette 2 switch in - 4 cassette 1 switch in - 3..0 keyboard line select - - ca1 cassette 1 read - ca2 ieee eoi out - - cb1 video sync in - cb2 cassette 1 motor out -*/ -static READ8_HANDLER ( pet_pia0_port_a_read ) -{ - int data=0xff; - if (!cbm_ieee_eoi_r()) data&=~0x40; - return data; -} - -static WRITE8_HANDLER ( pet_pia0_port_a_write ) -{ - pet_keyline_select=data; /*data is actually line here! */ -} - -static READ8_HANDLER ( pet_pia0_port_b_read ) -{ - int data=0; - switch(pet_keyline_select) { - case 0: data|=pet_keyline[0];break; - case 1: data|=pet_keyline[1];break; - case 2: data|=pet_keyline[2];break; - case 3: data|=pet_keyline[3];break; - case 4: data|=pet_keyline[4];break; - case 5: data|=pet_keyline[5];break; - case 6: data|=pet_keyline[6];break; - case 7: data|=pet_keyline[7];break; - case 8: data|=pet_keyline[8];break; - case 9: data|=pet_keyline[9];break; - } - return data^0xff; -} - -static WRITE8_HANDLER( pet_pia0_ca2_out ) -{ - cbm_ieee_eoi_w(0, data); -} - -static void pet_irq (int level) -{ - static int old_level = 0; - - if (level != old_level) - { - DBG_LOG (3, "mos6502", ("irq %s\n", level ? "start" : "end")); - if (superpet) - cpunum_set_input_line (1, M6809_IRQ_LINE, level); - cpunum_set_input_line (0, M6502_IRQ_LINE, level); - old_level = level; - } -} - -/* pia at 0xe820 (ieee488) - port a data in - port b data out - ca1 atn in - ca2 ndac out - cb1 srq in - cb2 dav out - */ -static READ8_HANDLER ( pet_pia1_port_a_read ) -{ - return cbm_ieee_data_r(); -} - -static WRITE8_HANDLER ( pet_pia1_port_b_write ) -{ - cbm_ieee_data_w(0, data); -} - -static READ8_HANDLER ( pet_pia1_ca1_read ) -{ - return cbm_ieee_atn_r(); -} - -static WRITE8_HANDLER ( pet_pia1_ca2_write ) -{ - cbm_ieee_ndac_w(0,data); -} - -static WRITE8_HANDLER ( pet_pia1_cb2_write ) -{ - cbm_ieee_dav_w(0,data); -} - -static READ8_HANDLER ( pet_pia1_cb1_read ) -{ - return cbm_ieee_srq_r(); -} - -static const pia6821_interface pet_pia0 = -{ - pet_pia0_port_a_read, /* in_a_func */ - pet_pia0_port_b_read, /* in_b_func */ - NULL, /* in_ca1_func */ - NULL, /* in_cb1_func */ - NULL, /* in_ca2_func */ - NULL, /* in_cb2_func */ - pet_pia0_port_a_write, /* out_a_func */ - NULL, /* out_b_func */ - pet_pia0_ca2_out, /* out_ca2_func */ - NULL, /* out_cb2_func */ - NULL, /* irq_a_func */ - pet_irq /* irq_b_func */ -}; - -static const pia6821_interface pet_pia1 = -{ - pet_pia1_port_a_read, /* in_a_func */ - NULL, /* in_b_func */ - pet_pia1_ca1_read, /* in_ca1_func */ - pet_pia1_cb1_read, /* in_cb1_func */ - NULL, /* in_ca2_func */ - NULL, /* in_cb2_func */ - NULL, /* out_a_func */ - pet_pia1_port_b_write, /* out_b_func */ - pet_pia1_ca2_write, /* out_ca2_func */ - pet_pia1_cb2_write, /* out_cb2_func */ -}; - -static WRITE8_HANDLER( pet_address_line_11 ) -{ - DBG_LOG (1, "address line", ("%d\n", data)); - if (data) pet_font|=1; - else pet_font&=~1; -} - -/* userport, cassettes, rest ieee488 - ca1 userport - ca2 character rom address line 11 - pa user port - - pb0 ieee ndac in - pb1 ieee nrfd out - pb2 ieee atn out - pb3 userport/cassettes - pb4 cassettes - pb5 userport/??? - pb6 ieee nrfd in - pb7 ieee dav in - - cb1 cassettes - cb2 user port - */ -static READ8_HANDLER( pet_via_port_b_r ) -{ - UINT8 data=0; - if (cbm_ieee_ndac_r()) data|=1; - if (cbm_ieee_nrfd_r()) data|=0x40; - if (cbm_ieee_dav_r()) data|=0x80; - return data; -} - -static WRITE8_HANDLER( pet_via_port_b_w ) -{ - cbm_ieee_nrfd_w(0, data&2); - cbm_ieee_atn_w(0, data&4); -} - - -static struct via6522_interface pet_via = -{ - NULL, /* in_a_func */ - pet_via_port_b_r, /* in_b_func */ - NULL, /* in_ca1_func */ - NULL, /* in_cb1_func */ - NULL, /* in_ca2_func */ - NULL, /* in_cb2_func */ - NULL, /* out_a_func */ - pet_via_port_b_w, /* out_b_func */ - pet_address_line_11 /* out_ca2_func */ -}; - -static struct { - int bank; /* rambank to be switched in 0x9000 */ - int rom; /* rom socket 6502? at 0x9000 */ -} spet= { 0 }; - -static WRITE8_HANDLER(cbm8096_io_w) -{ - if (offset<0x10) ; - else if (offset<0x14) pia_0_w(offset&3,data); - else if (offset<0x20) ; - else if (offset<0x24) pia_1_w(offset&3,data); - else if (offset<0x40) ; - else if (offset<0x50) via_0_w(offset&0xf,data); - else if (offset<0x80) ; - else if (offset<0x82) crtc6845_0_port_w(offset&1,data); -} - -static READ8_HANDLER(cbm8096_io_r) -{ - int data=0xff; - if (offset<0x10) ; - else if (offset<0x14) data=pia_0_r(offset&3); - else if (offset<0x20) ; - else if (offset<0x24) data=pia_1_r(offset&3); - else if (offset<0x40) ; - else if (offset<0x50) data=via_0_r(offset&0xf); - else if (offset<0x80) ; - else if (offset<0x82) data=crtc6845_0_port_r(offset&1); - return data; -} - -/* -65520 8096 memory control register - bit 0 1=write protect $8000-BFFF - bit 1 1=write protect $C000-FFFF - bit 2 $8000-BFFF bank select - bit 3 $C000-FFFF bank select - bit 5 1=screen peek through - bit 6 1=I/O peek through - bit 7 1=enable expansion memory - -*/ -WRITE8_HANDLER(cbm8096_w) -{ - read8_handler rh; - write8_handler wh; - - if (data&0x80) - { - if (data&0x40) - { - rh = cbm8096_io_r; - wh = cbm8096_io_w; - } - else - { - rh = MRA8_BANK7; - if (!(data&2)) - wh = MWA8_BANK7; - else - wh = MWA8_NOP; - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0, wh); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xe7ff, 0, 0, (data & 2) == 0 ? MWA8_BANK6 : MWA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xf000, 0xffef, 0, 0, (data & 2) == 0 ? MWA8_BANK8 : MWA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfff1, 0xffff, 0, 0, (data & 2) == 0 ? MWA8_BANK9 : MWA8_NOP); - - if (data&0x20) - { - memory_set_bankptr(1, pet_memory+0x8000); - wh = videoram_w; - } - else - { - if (!(data&1)) - wh = MWA8_BANK1; - else - wh = MWA8_NOP; - } - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x8fff, 0, 0, wh); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9000, 0x9fff, 0, 0, (data & 1) == 0 ? MWA8_BANK2 : MWA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xafff, 0, 0, (data & 1) == 0 ? MWA8_BANK3 : MWA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xbfff, 0, 0, (data & 1) == 0 ? MWA8_BANK4 : MWA8_NOP); - - - if (data&4) { - if (!(data&0x20)) { - memory_set_bankptr(1,pet_memory+0x14000); - } - memory_set_bankptr(2,pet_memory+0x15000); - memory_set_bankptr(3,pet_memory+0x16000); - memory_set_bankptr(4,pet_memory+0x17000); - } else { - if (!(data&0x20)) { - memory_set_bankptr(1,pet_memory+0x10000); - } - memory_set_bankptr(2,pet_memory+0x11000); - memory_set_bankptr(3,pet_memory+0x12000); - memory_set_bankptr(4,pet_memory+0x13000); - } - if (data&8) { - if (!(data&0x40)) { - memory_set_bankptr(7,pet_memory+0x1e800); - } - memory_set_bankptr(6, pet_memory+0x1c000); - memory_set_bankptr(8, pet_memory+0x1f000); - memory_set_bankptr(9, pet_memory+0x1fff1); - } else { - if (!(data&0x40)) { - memory_set_bankptr(7,pet_memory+0x1a800); - } - memory_set_bankptr(6, pet_memory+0x18000); - memory_set_bankptr(8, pet_memory+0x1b000); - memory_set_bankptr(9, pet_memory+0x1bff1); - } - } - else - { - memory_set_bankptr(1, pet_memory + 0x8000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x8fff, 0, 0, videoram_w); - - memory_set_bankptr(2, pet_memory + 0x9000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9000, 0x9fff, 0, 0, MWA8_ROM); - - memory_set_bankptr(3, pet_memory + 0xa000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xafff, 0, 0, MWA8_ROM); - - memory_set_bankptr(4,pet_memory+0xb000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xbfff, 0, 0, MWA8_ROM); - - memory_set_bankptr(6,pet_memory+0xc000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xe7ff, 0, 0, MWA8_ROM); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0, cbm8096_io_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0, cbm8096_io_w); - - memory_set_bankptr(8,pet_memory+0xf000); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xf000, 0xffef, 0, 0, MWA8_ROM); - - memory_set_bankptr(9,pet_memory+0xfff1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfff1, 0xffff, 0, 0, MWA8_ROM); - } -} - -READ8_HANDLER(superpet_r) -{ - return 0xff; -} - -WRITE8_HANDLER(superpet_w) -{ - switch (offset) - { - case 0: - case 1: - case 2: - case 3: - /* 3: 1 pull down diagnostic pin on the userport - 1: 1 if jumpered programable ram r/w - 0: 0 if jumpered programable m6809, 1 m6502 selected */ - break; - - case 4: - case 5: - spet.bank = data & 0xf; - memory_configure_bank(1, 0, 16, superpet_memory, 0x1000); - memory_set_bank(1, spet.bank); - /* 7 low writeprotects systemlatch */ - break; - - case 6: - case 7: - spet.rom = data & 1; - break; - } -} - -static void pet_interrupt(int param) -{ - static int level=0; - - pia_0_cb1_w(0,level); - level=!level; -} - -static void pet_common_driver_init (void) -{ - int i; - - /* BIG HACK; need to phase out this retarded memory management */ - if (!pet_memory) - pet_memory = mess_ram; - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, mess_ram_size - 1, 0, 0, MRA8_BANK10); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, mess_ram_size - 1, 0, 0, MWA8_BANK10); - memory_set_bankptr(10, pet_memory); - - if (mess_ram_size < 0x8000) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, mess_ram_size, 0x7FFF, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, mess_ram_size, 0x7FFF, 0, 0, MWA8_NOP); - } - - /* 2114 poweron ? 64 x 0xff, 64x 0, and so on */ - for (i = 0; i < mess_ram_size; i += 0x40) - { - memset (pet_memory + i, i & 0x40 ? 0 : 0xff, 0x40); - } - - /* pet clock */ - timer_pulse(0.01, 0, pet_interrupt); - - via_config(0,&pet_via); - pia_config(0,PIA_STANDARD_ORDERING,&pet_pia0); - pia_config(1,PIA_STANDARD_ORDERING,&pet_pia1); - - cbm_ieee_open(); -} - -DRIVER_INIT( pet ) -{ - pet_common_driver_init (); - pet_vh_init(); -} - -DRIVER_INIT( pet1 ) -{ - pet_basic1 = 1; - pet_common_driver_init (); - pet_vh_init(); -} - -static struct crtc6845_config crtc_pet = { 800000 /*?*/}; - -DRIVER_INIT( pet40 ) -{ - pet_common_driver_init (); - pet_vh_init(); - crtc6845_init(&crtc_pet); -} - -DRIVER_INIT( cbm80 ) -{ - cbm8096 = 1; - pet_memory = memory_region(REGION_CPU1); - - pet_common_driver_init (); - videoram = &pet_memory[0x8000]; - videoram_size = 0x800; - pet80_vh_init(); - crtc6845_init(&crtc_pet); -} - -DRIVER_INIT( superpet ) -{ - superpet = 1; - pet_common_driver_init (); - - superpet_memory = auto_malloc(0x10000); - - memory_configure_bank(1, 0, 16, superpet_memory, 0x1000); - memory_set_bank(1, 0); - - superpet_vh_init(); - crtc6845_init(&crtc_pet); -} - -MACHINE_RESET( pet ) -{ - via_reset(); - pia_reset(); - - if (superpet) - { - spet.rom = 0; - if (M6809_SELECT) - { - cpunum_set_input_line(0, INPUT_LINE_HALT, 1); - cpunum_set_input_line(0, INPUT_LINE_HALT, 0); - pet_font = 2; - } - else - { - cpunum_set_input_line(0, INPUT_LINE_HALT, 0); - cpunum_set_input_line(0, INPUT_LINE_HALT, 1); - pet_font = 0; - } - } - - if (cbm8096) - { - if (CBM8096_MEMORY) - { - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfff0, 0xfff0, 0, 0, cbm8096_w); - } - else - { - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfff0, 0xfff0, 0, 0, MWA8_NOP); - } - cbm8096_w(0,0); - } - - cbm_drive_0_config (IEEE8ON ? IEEE : 0, 8); - cbm_drive_1_config (IEEE9ON ? IEEE : 0, 9); - - pet_rom_load(); -} - - - -void pet_rom_load(void) -{ - int i; - - for (i=0; (i -#include "driver.h" -#include "image.h" -#include "includes/sms.h" -#include "sound/2413intf.h" - -UINT8 smsRomPageCount; -UINT8 smsBiosPageCount; -UINT8 smsFMDetect; -UINT8 smsVersion; -int smsPaused; - -UINT8 biosPort; - -UINT8 *BIOS; -UINT8 *ROM; - -UINT8 *sms_mapper_ram; -UINT8 sms_mapper[4]; -UINT8 *sms_banking_bios[5]; /* we are going to use 1-4, same as bank numbers */ -UINT8 *sms_banking_cart[5]; /* we are going to use 1-4, same as bank numbers */ -UINT8 *sms_banking_none[5]; /* we are going to use 1-4, same as bank numbers */ -UINT8 smsNVRam[NVRAM_SIZE]; -int smsNVRAMSave = 0; -UINT8 ggSIO[5] = { 0x7F, 0xFF, 0x00, 0xFF, 0x00 }; - -WRITE8_HANDLER(sms_fm_detect_w) { - if ( HAS_FM ) { - smsFMDetect = (data & 0x01); - } -} - - READ8_HANDLER(sms_fm_detect_r) { - if (biosPort & IO_CHIP) { - return (0xFF); - } - - if ( HAS_FM ) { - return smsFMDetect; - } else { - return readinputport(0); - } -} - -WRITE8_HANDLER(sms_version_w) { - if ((data & 0x01) && (data & 0x04)) { - smsVersion = (data & 0xA0); - } -} - - READ8_HANDLER(sms_version_r) { - UINT8 temp; - - if (biosPort & IO_CHIP) { - return (0xFF); - } - - /* Move bits 7,5 of port 3F into bits 7, 6 */ - temp = (smsVersion & 0x80) | (smsVersion & 0x20) << 1; - - /* Inverse version detect value for Japanese machines */ - if ( IS_REGION_JAPAN ) { - temp ^= 0xC0; - } - - /* Merge version data with input port #2 data */ - temp = (temp & 0xC0) | (readinputport(1) & 0x3F); - - return (temp); -} - -void check_pause_button( void ) { - if ( ! IS_GAMEGEAR ) { - if ( ! (readinputport(2) & 0x80) ) { - if ( ! smsPaused ) { - cpunum_set_input_line( 0, INPUT_LINE_NMI, ASSERT_LINE ); - cpunum_set_input_line( 0, INPUT_LINE_NMI, CLEAR_LINE ); - } - smsPaused = 1; - } else { - smsPaused = 0; - } - } -} - - READ8_HANDLER(sms_input_port_0_r) { - if (biosPort & IO_CHIP) { - return (0xFF); - } else { - return readinputport(0); - } -} - -WRITE8_HANDLER(sms_YM2413_register_port_0_w) { - if ( HAS_FM ) { - YM2413_register_port_0_w(offset, (data & 0x3F)); - } -} - -WRITE8_HANDLER(sms_YM2413_data_port_0_w) { - if ( HAS_FM ) { - logerror("data_port_0_w %x %x\n", offset, data); - YM2413_data_port_0_w(offset, data); - } -} - - READ8_HANDLER(gg_input_port_2_r) { - //logerror("joy 2 read, val: %02x, pc: %04x\n", (( IS_REGION_JAPAN ? 0x00 : 0x40) | (readinputport(2) & 0x80)), activecpu_get_pc()); - return (( IS_REGION_JAPAN ? 0x00 : 0x40 ) | (readinputport(2) & 0x80)); -} - - READ8_HANDLER(sms_mapper_r) -{ - return sms_mapper[offset]; -} - -WRITE8_HANDLER(sms_mapper_w) -{ - int page; - UINT8 *SOURCE_BIOS; - UINT8 *SOURCE_CART; - UINT8 *SOURCE; - - offset &= 3; - - sms_mapper[offset] = data; - sms_mapper_ram[offset] = data; - - if ( ROM ) { - SOURCE_CART = ROM + ( (smsRomPageCount > 0) ? data % smsRomPageCount : 0 ) * 0x4000; - } else { - SOURCE_CART = memory_region(REGION_CPU1); - } - if ( BIOS ) { - SOURCE_BIOS = BIOS + ( (smsBiosPageCount > 0) ? data % smsBiosPageCount : 0 ) * 0x4000; - } else { - SOURCE_BIOS = memory_region(REGION_CPU1); - } - - if (biosPort & IO_BIOS_ROM || IS_GAMEGEAR ) - { - if (!(biosPort & IO_CARTRIDGE) || IS_GAMEGEAR ) - { - page = (smsRomPageCount > 0) ? data % smsRomPageCount : 0; - if ( ! ROM ) - return; - SOURCE = SOURCE_CART; - } - else - { - /* nothing to page in */ - return; - } - } - else - { - page = (smsBiosPageCount > 0) ? data % smsBiosPageCount : 0; - if ( ! BIOS ) - return; - SOURCE = SOURCE_BIOS; - } - - switch(offset) { - case 0: /* Control */ - /* Is it ram or rom? */ - if (data & 0x08) { /* it's ram */ - smsNVRAMSave = 1; /* SRAM should be saved on exit. */ - if (data & 0x04) { -#ifdef LOG_PAGING - logerror("ram 1 paged.\n"); -#endif - SOURCE = smsNVRam + 0x4000; - } else { -#ifdef LOG_PAGING - logerror("ram 0 paged.\n"); -#endif - SOURCE = smsNVRam; - } - sms_banking_bios[4] = SOURCE; - sms_banking_cart[4] = SOURCE; - memory_set_bankptr( 4, SOURCE ); - } else { /* it's rom */ - if ( ROM ) { - SOURCE_CART = ROM + ( (smsRomPageCount > 0) ? sms_mapper[3] % smsRomPageCount : 0 ) * 0x4000; - sms_banking_cart[4] = SOURCE_CART; - } - if ( BIOS ) { - SOURCE_BIOS = BIOS + ( (smsBiosPageCount > 0) ? sms_mapper[3] % smsBiosPageCount : 0 ) * 0x4000; - sms_banking_bios[4] = SOURCE_BIOS; - } - if (biosPort & IO_BIOS_ROM) { - page = (smsRomPageCount > 0) ? sms_mapper[3] % smsRomPageCount : 0; - SOURCE = sms_banking_cart[4]; - } else { - page = (smsBiosPageCount > 0) ? sms_mapper[3] % smsBiosPageCount : 0; - SOURCE = sms_banking_bios[4]; - } -#ifdef LOG_PAGING - logerror("rom 2 paged in %x.\n", page); -#endif - memory_set_bankptr( 4, SOURCE ); - } - break; - case 1: /* Select 16k ROM bank for 0400-3FFF */ -#ifdef LOG_PAGING - logerror("rom 0 paged in %x.\n", page); -#endif - sms_banking_bios[2] = SOURCE_BIOS + 0x0400; - sms_banking_cart[2] = SOURCE_CART + 0x0400; - memory_set_bankptr( 2, SOURCE + 0x0400 ); - break; - case 2: /* Select 16k ROM bank for 4000-7FFF */ -#ifdef LOG_PAGING - logerror("rom 1 paged in %x.\n", page); -#endif - sms_banking_bios[3] = SOURCE_BIOS; - sms_banking_cart[3] = SOURCE_CART; - memory_set_bankptr( 3, SOURCE ); - break; - case 3: /* Select 16k ROM bank for 8000-BFFF */ - /* Is it ram or rom? */ - if (!(sms_mapper[0] & 0x08)) { /* it's rom */ -#ifdef LOG_PAGING - logerror("rom 2 paged in %x.\n", page); -#endif - sms_banking_bios[4] = SOURCE_BIOS; - sms_banking_cart[4] = SOURCE_CART; - memory_set_bankptr( 4, SOURCE ); - } - break; - } -} - -WRITE8_HANDLER(sms_bios_w) { - biosPort = data; - - logerror("bios write %02x, pc: %04x\n", data, activecpu_get_pc()); - - setup_rom(); -} - -WRITE8_HANDLER(sms_cartram_w) { - int page; - - if (sms_mapper[0] & 0x08) { - logerror("write %02X to cartram at offset #%04X\n", data, offset); - if (sms_mapper[0] & 0x04) { - smsNVRam[offset + 0x4000] = data; - } else { - smsNVRam[offset] = data; - } - } else { - if (offset == 0) { /* Codemasters mapper */ - if (biosPort & IO_BIOS_ROM) { - page = (smsRomPageCount > 0) ? data % smsRomPageCount : 0; - } else { - return; - } - if ( ! ROM ) - return; - sms_banking_cart[4] = ROM + page * 0x4000; - memory_set_bankptr( 4, sms_banking_cart[4] ); -#ifdef LOG_PAGING - logerror("rom 2 paged in %x codemasters.\n", page); -#endif - } else if (offset == 0x2000) { /* Dodgeball King mapper */ - if (biosPort & IO_BIOS_ROM) { - page = (smsRomPageCount > 0) ? data % smsRomPageCount : 0; - } else { - return; - } - if ( ! ROM ) - return; - sms_banking_cart[4] = ROM + page * 0x4000; - memory_set_bankptr( 4, sms_banking_cart[4] ); -#ifdef LOG_PAGING - logerror("rom 2 paged in %x dodgeball king.\n", page); -#endif - } else { - logerror("INVALID write %02X to cartram at offset #%04X\n", data, offset); - } - } -} - -/*WRITE8_HANDLER(sms_ram_w) { - UINT8 *RAM = memory_region(REGION_CPU1); - - RAM[0xC000 + (offset & 0x1FFF)] = data; - if ((offset & 0x1FFF) <= 0x1FFB) { - RAM[0xE000 + (offset & 0x1FFF)] = data; - } -}*/ - -WRITE8_HANDLER(gg_sio_w) { - logerror("*** write %02X to SIO register #%d\n", data, offset); - - ggSIO[offset & 0x07] = data; - switch(offset & 7) { - case 0x00: /* Parallel Data */ - break; - case 0x01: /* Data Direction/ NMI Enable */ - break; - case 0x02: /* Serial Output */ - break; - case 0x03: /* Serial Input */ - break; - case 0x04: /* Serial Control / Status */ - break; - } -} - - READ8_HANDLER(gg_sio_r) { - logerror("*** read SIO register #%d\n", offset); - - switch(offset & 7) { - case 0x00: /* Parallel Data */ - break; - case 0x01: /* Data Direction/ NMI Enable */ - break; - case 0x02: /* Serial Output */ - break; - case 0x03: /* Serial Input */ - break; - case 0x04: /* Serial Control / Status */ - break; - } - - return ggSIO[offset]; -} - - READ8_HANDLER(gg_psg_r) { - return 0xFF; -} - -WRITE8_HANDLER(gg_psg_w) { - logerror("write %02X to psg at offset #%d.\n",data , offset); - - /* D7 = Noise Left */ - /* D6 = Tone3 Left */ - /* D5 = Tone2 Left */ - /* D4 = Tone1 Left */ - - /* D3 = Noise Right */ - /* D2 = Tone3 Right */ - /* D1 = Tone2 Right */ - /* D0 = Tone1 Right */ -} - -static void sms_machine_stop(running_machine *machine) { - /* Does the cartridge have SRAM that should be saved? */ - if (smsNVRAMSave) { - image_battery_save( image_from_devtype_and_index(IO_CARTSLOT, 0), smsNVRam, sizeof(UINT8) * NVRAM_SIZE ); - } -} - -void setup_rom(void) -{ - /* 1. set up bank pointers to point to nothing */ - memory_set_bankptr( 1, sms_banking_none[1] ); - memory_set_bankptr( 2, sms_banking_none[2] ); - memory_set_bankptr( 3, sms_banking_none[3] ); - memory_set_bankptr( 4, sms_banking_none[4] ); - - /* 2. check and set up expansion port */ - if (!(biosPort & IO_EXPANSION) && (biosPort & IO_CARTRIDGE) && (biosPort & IO_CARD)) { - /* TODO: Implement me */ - logerror( "Switching to unsupported expansion port.\n" ); - } - - /* 3. check and set up card rom */ - if (!(biosPort & IO_CARD) && (biosPort & IO_CARTRIDGE) && (biosPort & IO_EXPANSION)) { - /* TODO: Implement me */ - logerror( "Switching to unsupported card rom port.\n" ); - } - - /* 4. check and set up cartridge rom */ - if ( ( !(biosPort & IO_CARTRIDGE) && (biosPort & IO_EXPANSION) && (biosPort & IO_CARD) ) || IS_GAMEGEAR ) { - memory_set_bankptr( 1, sms_banking_cart[1] ); - memory_set_bankptr( 2, sms_banking_cart[2] ); - memory_set_bankptr( 3, sms_banking_cart[3] ); - memory_set_bankptr( 4, sms_banking_cart[4] ); - logerror( "Switched in cartridge rom.\n" ); - } - - /* 5. check and set up bios rom */ - if ( !(biosPort & IO_BIOS_ROM) ) { - /* 0x0400 bioses */ - if ( HAS_BIOS_0400 ) { - memory_set_bankptr( 1, sms_banking_bios[1] ); - logerror( "Switched in 0x0400 bios.\n" ); - } - /* 0x2000 bioses */ - if ( HAS_BIOS_2000 ) { - memory_set_bankptr( 1, sms_banking_bios[1] ); - memory_set_bankptr( 2, sms_banking_bios[2] ); - logerror( "Switched in 0x2000 bios.\n" ); - } - if ( HAS_BIOS_FULL ) { - memory_set_bankptr( 1, sms_banking_bios[1] ); - memory_set_bankptr( 2, sms_banking_bios[2] ); - memory_set_bankptr( 3, sms_banking_bios[3] ); - memory_set_bankptr( 4, sms_banking_bios[4] ); - logerror( "Switched in full bios.\n" ); - } - } -} - -static int sms_verify_cart(UINT8 *magic, int size) { - int retval; - - retval = IMAGE_VERIFY_FAIL; - - /* Verify the file is a valid image - check $7ff0 for "TMR SEGA" */ - if (size >= 0x8000) { - if (!strncmp((char*)&magic[0x7FF0], "TMR SEGA", 8)) { - /* Technically, it should be this, but remove for now until verified: - if (!strcmp(sysname, "gamegear")) { - if ((unsigned char)magic[0x7FFD] < 0x50) - retval = IMAGE_VERIFY_PASS; - } - if (!strcmp(sysname, "sms")) { - if ((unsigned char)magic[0x7FFD] >= 0x50) - retval = IMAGE_VERIFY_PASS; - } - */ - retval = IMAGE_VERIFY_PASS; - } - } - - /* Check at $81f0 also */ - //if (!retval) { - // if (!strncmp(&magic[0x81f0], "TMR SEGA", 8)) { - /* Technically, it should be this, but remove for now until verified: - if (!strcmp(sysname, "gamegear")) { - if ((unsigned char)magic[0x81fd] < 0x50) - retval = IMAGE_VERIFY_PASS; - } - if (!strcmp(sysname, "sms")) { - if ((unsigned char)magic[0x81fd] >= 0x50) - retval = IMAGE_VERIFY_PASS; - } - */ - // retval = IMAGE_VERIFY_PASS; - // } - //} - - return retval; -} - -DEVICE_INIT( sms_cart ) -{ - biosPort = (IO_EXPANSION | IO_CARTRIDGE | IO_CARD); - if ( ! IS_GAMEGEAR && ! HAS_BIOS ) { - biosPort &= ~(IO_CARTRIDGE); - biosPort |= IO_BIOS_ROM; - } - - return INIT_PASS; -} - -DEVICE_LOAD( sms_cart ) -{ - int size; - - /* Get file size */ - size = image_length(image); - - /* Check for 512-byte header */ - if ((size / 512) & 1) - { - image_fseek(image, 512, SEEK_SET); - size -= 512; - } - - if ( ! size ) { - image_seterror( image, IMAGE_ERROR_UNSPECIFIED, "Invalid ROM image: ROM image is too small" ); - return INIT_FAIL; - } - - /* Create a new memory region to hold the ROM. */ - /* Make sure the region holds only complete (0x4000) rom banks */ - new_memory_region(Machine, REGION_USER2, ((size&0x3FFF) ? (((size>>14)+1)<<14) : size), ROM_REQUIRED); - ROM = memory_region(REGION_USER2); - - /* Load ROM banks */ - size = image_fread(image, ROM, size); - - /* check the image */ - if ( ! HAS_BIOS ) { - if (sms_verify_cart(ROM, size) == IMAGE_VERIFY_FAIL) { - logerror("Warning loading image: sms_verify_cart failed\n"); - } - } - - /* Load battery backed RAM, if available */ - image_battery_load( image, smsNVRam, sizeof(UINT8) * NVRAM_SIZE ); - - return INIT_PASS; -} - -static void setup_banks( void ) { - sms_banking_bios[1] = sms_banking_cart[1] = sms_banking_none[1] = memory_region(REGION_CPU1); - sms_banking_bios[2] = sms_banking_cart[2] = sms_banking_none[2] = memory_region(REGION_CPU1) + 0x0400; - sms_banking_bios[3] = sms_banking_cart[3] = sms_banking_none[3] = memory_region(REGION_CPU1) + 0x4000; - sms_banking_bios[4] = sms_banking_cart[4] = sms_banking_none[4] = memory_region(REGION_CPU1) + 0x8000; - - BIOS = memory_region(REGION_USER1); - ROM = memory_region(REGION_USER2); - - smsBiosPageCount = ( BIOS ? memory_region_length(REGION_USER1) / 0x4000 : 0 ); - smsRomPageCount = ( ROM ? memory_region_length(REGION_USER2) / 0x4000 : 0 ); - - if ( ROM ) { - sms_banking_cart[1] = ROM; - sms_banking_cart[2] = ROM + 0x0400; - sms_banking_cart[3] = ROM + ( ( 1 < smsRomPageCount ) ? 0x4000 : 0 ); - sms_banking_cart[4] = ROM + ( ( 2 < smsRomPageCount ) ? 0x8000 : 0 ); - } - - if ( BIOS ) { - sms_banking_bios[1] = BIOS; - sms_banking_bios[2] = BIOS + 0x0400; - sms_banking_bios[3] = BIOS + ( ( 1 < smsBiosPageCount) ? 0x4000 : 0 ); - sms_banking_bios[4] = BIOS + ( ( 2 < smsBiosPageCount) ? 0x8000 : 0 ); - } -} - -MACHINE_START(sms) { - smsNVRAMSave = 0; - add_exit_callback(machine, sms_machine_stop); - return 0; -} - -MACHINE_RESET(sms) -{ - smsVersion = 0x00; - if ( HAS_FM ) { - smsFMDetect = 0x01; - } - - memset( memory_region(REGION_CPU1), 0xff, 0x10000 ); - - sms_mapper_ram = memory_get_write_ptr( 0, ADDRESS_SPACE_PROGRAM, 0xDFFC ); - - /* Initialize SIO stuff for GG */ - ggSIO[0] = 0x7F; - ggSIO[1] = 0xFF; - ggSIO[2] = 0x00; - ggSIO[3] = 0xFF; - ggSIO[4] = 0x00; - - setup_banks(); - - setup_rom(); -} - diff --git a/mess/machine/spectrum.c b/mess/machine/spectrum.c deleted file mode 100644 index 2de6942ea..000000000 --- a/mess/machine/spectrum.c +++ /dev/null @@ -1,1176 +0,0 @@ -/*************************************************************************** - - mess/machine/spectrum.c - - Functions to emulate general aspects of the machine (RAM, ROM, interrupts, - I/O ports) - - Changes: - - KT 31/1/00 - Added support for .Z80. At the moment only 48k files are supported! - DJR 8/2/00 - Added checks to avoid trying to load 128K .Z80 files into 48K machine! - DJR 20/2/00 - Added support for .TAP files. - -----------------27/02/00 10:54------------------- - KT 27/2/00 - Added my changes for the WAV support - -------------------------------------------------- - DJR 14/3/00 - Fixed +3 tape loading and added option to 'rewind' tapes when end reached. - DJR 21/4/00 - Added support for 128K .SNA and .Z80 files. - DJR 21/4/00 - Ensure 48K Basic ROM is used when running 48K snapshots on 128K machine. - DJR 03/5/00 - Fixed bug of not decoding last byte of .Z80 blocks. - DJR 08/5/00 - Fixed TS2068 .TAP loading. - DJR 19/5/00 - .TAP files are now classified as cassette files. - DJR 02/6/00 - Added support for .SCR files (screendumps). - -***************************************************************************/ - -#include -#include "driver.h" -#include "cpu/z80/z80.h" -#include "includes/spectrum.h" -#include "eventlst.h" -#include "vidhrdw/border.h" -#include "devices/cassette.h" -#include "devices/cartslot.h" -#include "sound/ay8910.h" -#include "image.h" -#include "utils.h" - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif - -static unsigned long TapePosition = 0; -static void spectrum_setup_sna(unsigned char *pSnapshot, unsigned long SnapshotSize); -static void spectrum_setup_z80(unsigned char *pSnapshot, unsigned long SnapshotSize); -static void spectrum_setup_sp(unsigned char *pSnapshot, unsigned long SnapshotSize); -static int spectrum_setup_tap(offs_t address, UINT8 *snapshot_data, int snapshot_length); - -TIMEX_CART_TYPE timex_cart_type = TIMEX_CART_NONE; -UINT8 timex_cart_chunks = 0x00; -UINT8 * timex_cart_data; -static UINT8 *cassette_snapshot; -static int cassette_snapshot_size; - -typedef enum -{ - SPECTRUM_SNAPSHOT_NONE, - SPECTRUM_SNAPSHOT_SNA, - SPECTRUM_SNAPSHOT_Z80, - SPECTRUM_SNAPSHOT_SP, - SPECTRUM_TAPEFILE_TAP -} -SPECTRUM_SNAPSHOT_TYPE; - -static OPBASE_HANDLER(spectrum_opbaseoverride) -{ - if (cassette_snapshot_size > 0) - return spectrum_setup_tap(address, cassette_snapshot, cassette_snapshot_size); - - /* Execute code in spectrum 48k screen memory */ - if ((spectrum_128_port_7ffd_data == -1) && (spectrum_plus3_port_1ffd_data == -1)) - { - if (address>=0x4000 && address<=0x57ff) - { - opcode_base = opcode_arg_base = spectrum_characterram-0x4000; - return -1; - } - if (address>=0x5800 && address<=0x5aff) - { - opcode_base = opcode_arg_base = spectrum_colorram-0x5800; - return -1; - } - } - - /* Hack for correct handling 0xffff interrupt vector */ - if (address == 0x0001) - if (cpunum_get_reg(0, REG_PREVIOUSPC)==0xffff) - { - cpunum_set_reg(0, Z80_PC, 0xfff4); - return 0xfff4; - } - return address; -} - -MACHINE_RESET( spectrum ) -{ - memory_set_opbase_handler(0, spectrum_opbaseoverride); -} - -SNAPSHOT_LOAD(spectrum) -{ - UINT8 *snapshot_data = NULL; - - snapshot_data = malloc(snapshot_size); - if (!snapshot_data) - goto error; - - image_fread(image, snapshot_data, snapshot_size); - - if (!mame_stricmp(file_type, "sna")) - { - if ((snapshot_size != 49179) && (snapshot_size != 131103) && (snapshot_size != 14787)) - { - logerror("Invalid .SNA file size.\n"); - goto error; - } - spectrum_setup_sna(snapshot_data, snapshot_size); - } - else if (!mame_stricmp(file_type, "sp")) - { - if (snapshot_data[0]!='S' && snapshot_data[1]!='P') - { - logerror("Invalid .SP signature.\n"); - goto error; - } - spectrum_setup_sp(snapshot_data, snapshot_size); - } - else - { - spectrum_setup_z80(snapshot_data, snapshot_size); - } - free(snapshot_data); - logerror("Snapshot loaded - new PC = %04x\n", (unsigned) cpunum_get_reg(0, Z80_PC) & 0x0ffff); - return INIT_PASS; - -error: - if (snapshot_data) - free(snapshot_data); - return INIT_FAIL; -} - -/******************************************************************* - * - * Override load routine (0x0556 in 48K ROM) if loading .TAP files - * Tape blocks are as follows. - * 2 bytes length of block excluding these 2 bytes (LSB first) - * 1 byte flag byte (0x00 for headers, 0xff for data) - * n bytes data - * 1 byte checksum - * - * The load routine uses the following registers: - * IX Start address for block - * DE Length of block - * A Flag byte (as above) - * Carry Flag Set for Load, reset for verify - * - * On exit the carry flag is set if loading/verifying was successful. - * - * Note: it is not always possible to trap the exact entry to the - * load routine so things get rather messy! - * - *******************************************************************/ -static int spectrum_setup_tap(offs_t address, UINT8 *snapshot_data, int snapshot_length) -{ - int i, tap_block_length, load_length; - unsigned char lo, hi, a_reg; - unsigned short load_addr, return_addr, af_reg, de_reg, sp_reg; - static int data_loaded = 0; /* Whether any data files (not headers) were loaded */ - -/* logerror("PC=%02x\n", address); */ - /* It is not always possible to trap the call to the actual load - * routine so trap the LD-EDGE-1 and LD-EDGE-2 routines which - * check the earphone socket. - */ - - if ((spectrum_128_port_7ffd_data == -1) && (spectrum_plus3_port_1ffd_data == -1)) - { - if (address>=0x4000 && address<=0x57ff) - { - opcode_base = opcode_arg_base = spectrum_characterram-0x4000; - return -1; - } - if (address>=0x5800 && address<=0x5aff) - { - opcode_base = opcode_arg_base = spectrum_colorram-0x5800; - return -1; - } - } - if (address == 0x0001) - if (cpunum_get_reg(0, REG_PREVIOUSPC)==0xffff) - { - cpunum_set_reg(0, Z80_PC, 0xfff4); - return 0xfff4; - } - - if (ts2068_port_f4_data == -1) - { - if ((address < 0x05e3) || (address > 0x0604)) - return address; - - /* For Spectrum 128/+2/+3 check which rom is paged */ - if ((spectrum_128_port_7ffd_data != -1) || (spectrum_plus3_port_1ffd_data != -1)) - { - if (spectrum_plus3_port_1ffd_data != -1) - { - if (!spectrum_plus3_port_1ffd_data & 0x04) - return address; - } - if (!spectrum_128_port_7ffd_data & 0x10) - return address; - } - } - else - { - /* For TS2068 also check that EXROM is paged into bottom 8K. - * Code is not relocatable so don't need to check EXROM in other pages. - */ - if ((!ts2068_port_f4_data & 0x01) || (!ts2068_port_ff_data & 0x80)) - return address; - if ((address < 0x018d) || (address > 0x01aa)) - return address; - } - lo = snapshot_data[TapePosition] & 0x0ff; - hi = snapshot_data[TapePosition + 1] & 0x0ff; - tap_block_length = (hi << 8) | lo; - - /* By the time that load has been trapped the block type and carry - * flags are in the AF' register. */ - af_reg = cpunum_get_reg(0, Z80_AF2); - a_reg = (af_reg & 0xff00) >> 8; - - if ((a_reg == snapshot_data[TapePosition + 2]) && (af_reg & 0x0001)) - { - /* Correct flag byte and carry flag set so try loading */ - load_addr = cpunum_get_reg(0, Z80_IX); - de_reg = cpunum_get_reg(0, Z80_DE); - - load_length = MIN(de_reg, tap_block_length - 2); - load_length = MIN(load_length, 65536 - load_addr); - /* Actual number of bytes of block that can be loaded - - * Don't try to load past the end of memory */ - - for (i = 0; i < load_length; i++) - program_write_byte(load_addr + i, snapshot_data[TapePosition + i + 3]); - cpunum_set_reg(0, Z80_IX, load_addr + load_length); - cpunum_set_reg(0, Z80_DE, de_reg - load_length); - if (de_reg == (tap_block_length - 2)) - { - /* Successful load - Set carry flag and A to 0 */ - if ((de_reg != 17) || (a_reg)) - data_loaded = 1; /* Non-header file loaded */ - cpunum_set_reg(0, Z80_AF, (af_reg & 0x00ff) | 0x0001); - logerror("Loaded %04x bytes from address %04x onwards (type=%02x) using tape block at offset %ld\n", load_length, - load_addr, a_reg, TapePosition); - } - else - { - /* Wrong tape block size - reset carry flag */ - cpunum_set_reg(0, Z80_AF, af_reg & 0xfffe); - logerror("Bad block length %04x bytes wanted starting at address %04x (type=%02x) , Data length of tape block at offset %ld is %04x bytes\n", - de_reg, load_addr, a_reg, TapePosition, tap_block_length - 2); - } - } - else - { - /* Wrong flag byte or verify selected so reset carry flag to indicate failure */ - cpunum_set_reg(0, Z80_AF, af_reg & 0xfffe); - if (af_reg & 0x0001) - logerror("Failed to load tape block at offset %ld - type wanted %02x, got type %02x\n", TapePosition, a_reg, - snapshot_data[TapePosition + 2]); - else - logerror("Failed to load tape block at offset %ld - verify selected\n", TapePosition); - } - - TapePosition += (tap_block_length + 2); - if (TapePosition >= snapshot_length) - { - /* End of tape - either rewind or disable op base override */ - if (readinputport(16) & 0x40) - { - if (data_loaded) - { - TapePosition = 0; - data_loaded = 0; - logerror("All tape blocks used! - rewinding tape to start\n"); - } - else - { - /* Disable .TAP support if no files were loaded to avoid getting caught in infinite loop */ - logerror("No valid data loaded! - disabling .TAP support\n"); - cassette_snapshot = NULL; - cassette_snapshot_size = 0; - - } - } - else - { - logerror("All tape blocks used! - disabling .TAP support\n"); - cassette_snapshot = NULL; - cassette_snapshot_size = 0; - } - } - - /* Leave the load routine by removing addresses from the stack - * until one outside the load routine is found. - * eg. SA/LD-RET at address 053f (00e5 on TS2068) - */ - do - { - sp_reg = cpunum_get_reg(0, Z80_SP); - return_addr = - ((UINT16) program_read_byte_8(sp_reg + 0) ) >> 8 | - ((UINT16) program_read_byte_8(sp_reg + 1) ) >> 0; - - sp_reg += 2; - cpunum_set_reg(0, Z80_SP, (sp_reg & 0x0ffff)); - cpunum_set_reg(0, Z80_PC, (return_addr & 0x0ffff)); - } - while (((return_addr != 0x053f) && (return_addr < 0x0605) && (ts2068_port_f4_data == -1)) || - ((return_addr != 0x00e5) && (return_addr < 0x01aa) && (ts2068_port_f4_data != -1))); - - logerror("Load return address=%04x, SP=%04x\n", return_addr, sp_reg); - - return return_addr; -} - -/******************************************************************* - * - * Update the memory and paging of the spectrum being emulated - * - * if port_7ffd_data is -1 then machine is 48K - no paging - * if port_1ffd_data is -1 then machine is 128K - * if neither port is -1 then machine is +2a/+3 - * - * Note: the 128K .SNA and .Z80 file formats do not store the - * port 1FFD setting so it is necessary to calculate the appropriate - * value for the ROM paging. - * - *******************************************************************/ -static void spectrum_update_paging(void) -{ - if (spectrum_128_port_7ffd_data == -1) - return; - if (spectrum_plus3_port_1ffd_data == -1) - spectrum_128_update_memory(); - - else - { - if (spectrum_128_port_7ffd_data & 0x10) - /* Page in Spec 48K basic ROM */ - spectrum_plus3_port_1ffd_data = 0x04; - else - spectrum_plus3_port_1ffd_data = 0; - spectrum_plus3_update_memory(); - } -} - -/* Page in the 48K Basic ROM. Used when running 48K snapshots on a 128K machine. */ -static void spectrum_page_basicrom(void) -{ - if (spectrum_128_port_7ffd_data == -1) - return; - spectrum_128_port_7ffd_data |= 0x10; - spectrum_update_paging(); -} - -/******************************************************************* - * - * Load a .SP file. - * - * There are only 48K .SP files and their format is as follows: - * Offset Size Description (all registers stored with LSB first) - * 0 2 "SP" (signature) - * 2 2 Program length in bytes (normally 49152 for 48K snaps, or 16384 for 16K snaps) - * 4 2 Program location (normally 16384) - * 6 8 BC,DE,HL,AF - * 14 4 IX,IY - * 18 8 BC',DE',HL',AF' - * 26 2 R,I - * 28 4 SP,PC - * 32 2 0 (reserved for future use) - * 34 1 Border color - * 35 1 0 (reserved for future use) - * 36 2 Status word - * 38 - RAM dump - * - * Status word: - * Bit Description - * 15-8 Reserved for future use - * 7-6 Reserved for internal use (0) - * 5 Flash: 0=INK/1=PAPER - * 4 Interrupt pending for execution - * 3 If 1, IM 0; if 0, bit 1 determines interrupt mode - * (Spectrum v 0.99e had this behaviour reversed, and this - * bit was not used in versions previous to v 0.99e) - * 2 IFF2 (internal use) - * 1 Interrupt Mode (if bit 3 reset): 0=>IM1, 1=>IM2 - * 0 IFF1: 0=DI/1=EI - * - *******************************************************************/ -void spectrum_setup_sp(unsigned char *pSnapshot, unsigned long SnapshotSize) -{ - int i; - UINT8 lo, hi, data; - UINT16 offset, size; - UINT16 status; - - lo = pSnapshot[2] & 0x0ff; - hi = pSnapshot[3] & 0x0ff; - size = (hi << 8) | lo; - logerror ("Snapshot data size: %d.\n", size); - lo = pSnapshot[4] & 0x0ff; - hi = pSnapshot[5] & 0x0ff; - offset = (hi << 8) | lo; - logerror ("Snapshot data offset: %d.\n", offset); - - lo = pSnapshot[6] & 0x0ff; - hi = pSnapshot[7] & 0x0ff; - cpunum_set_reg(0, Z80_BC, (hi << 8) | lo); - lo = pSnapshot[8] & 0x0ff; - hi = pSnapshot[9] & 0x0ff; - cpunum_set_reg(0, Z80_DE, (hi << 8) | lo); - lo = pSnapshot[10] & 0x0ff; - hi = pSnapshot[11] & 0x0ff; - cpunum_set_reg(0, Z80_HL, (hi << 8) | lo); - lo = pSnapshot[12] & 0x0ff; - hi = pSnapshot[13] & 0x0ff; - cpunum_set_reg(0, Z80_AF, (hi << 8) | lo); - - lo = pSnapshot[14] & 0x0ff; - hi = pSnapshot[15] & 0x0ff; - cpunum_set_reg(0, Z80_IX, (hi << 8) | lo); - lo = pSnapshot[16] & 0x0ff; - hi = pSnapshot[17] & 0x0ff; - cpunum_set_reg(0, Z80_IY, (hi << 8) | lo); - - lo = pSnapshot[18] & 0x0ff; - hi = pSnapshot[19] & 0x0ff; - cpunum_set_reg(0, Z80_BC2, (hi << 8) | lo); - lo = pSnapshot[20] & 0x0ff; - hi = pSnapshot[21] & 0x0ff; - cpunum_set_reg(0, Z80_DE2, (hi << 8) | lo); - lo = pSnapshot[22] & 0x0ff; - hi = pSnapshot[23] & 0x0ff; - cpunum_set_reg(0, Z80_HL2, (hi << 8) | lo); - lo = pSnapshot[24] & 0x0ff; - hi = pSnapshot[25] & 0x0ff; - cpunum_set_reg(0, Z80_AF2, (hi << 8) | lo); - - cpunum_set_reg(0, Z80_R, (pSnapshot[26] & 0x0ff)); - cpunum_set_reg(0, Z80_I, (pSnapshot[27] & 0x0ff)); - - lo = pSnapshot[28] & 0x0ff; - hi = pSnapshot[29] & 0x0ff; - cpunum_set_reg(0, Z80_SP, (hi << 8) | lo); - lo = pSnapshot[30] & 0x0ff; - hi = pSnapshot[31] & 0x0ff; - cpunum_set_reg(0, Z80_PC, (hi << 8) | lo); - - lo = pSnapshot[32] & 0x0ff; - hi = pSnapshot[33] & 0x0ff; - if (((hi << 8) | lo)!=0) - logerror("Unknown meaning of word on position 32: %04x.\n", (hi << 8) | lo); - - /* Set border colour */ - PreviousFE = (PreviousFE & 0xf8) | (pSnapshot[34] & 0x07); - EventList_Reset(); - set_last_border_color(pSnapshot[34] & 0x07); - force_border_redraw(); - - if ((pSnapshot[35]&0x0ff)!=0) - logerror("Unknown meaning of byte on position 35: %02x.\n", pSnapshot[35]&0x0ff); - - lo = pSnapshot[36] & 0x0ff; - hi = pSnapshot[37] & 0x0ff; - status = (hi << 8) | lo; - - data = (status & 0x01); - cpunum_set_reg(0, Z80_IFF1, data); - data = (status & 0x04)>>2; - cpunum_set_reg(0, Z80_IFF2, data); - - data = (status & 0x08)>>3; - if (data) - cpunum_set_reg(0, Z80_IM, 0); - else - { - data = (status & 0x02)>>1; - if (data) - cpunum_set_reg(0, Z80_IM, 2); - else - cpunum_set_reg(0, Z80_IM, 1); - } - - data = (status & 0x10)>>4; - cpunum_set_input_line(0, 0, data); - cpunum_set_input_line(0, INPUT_LINE_NMI, data); - cpunum_set_input_line(0, INPUT_LINE_HALT, 0); - - spectrum_page_basicrom(); - - /* memory dump */ - for (i = 0; i < size; i++) - program_write_byte(i + offset, pSnapshot[38 + i]); -} - -/******************************************************************* - * - * Load a 48K or 128K .SNA file. - * - * 48K Format as follows: - * Offset Size Description (all registers stored with LSB first) - * 0 1 I - * 1 18 HL',DE',BC',AF',HL,DE,BC,IY,IX - * 19 1 Interrupt (bit 2 contains IFF2 1=EI/0=DI - * 20 1 R - * 21 4 AF,SP - * 25 1 Interrupt Mode (0=IM0/1=IM1/2=IM2) - * 26 1 Border Colour (0..7) - * 27 48K RAM dump 0x4000-0xffff - * PC is stored on stack. - * - * 128K Format as follows: - * Offset Size Description - * 0 27 Header as 48K - * 27 16K RAM bank 5 (0x4000-0x7fff) - * 16411 16K RAM bank 2 (0x8000-0xbfff) - * 32795 16K RAM bank n (0xc000-0xffff - currently paged bank) - * 49179 2 PC - * 49181 1 port 7FFD setting - * 49182 1 TR-DOS rom paged (1=yes) - * 49183 16K remaining RAM banks in ascending order - * - * The bank in 0xc000 is always included even if it is page 2 or 5 - * in which case it is included twice. - * - *******************************************************************/ -void spectrum_setup_sna(unsigned char *pSnapshot, unsigned long SnapshotSize) -{ - int i, j, usedbanks[8]; - long bank_offset; - unsigned char lo, hi, data; - unsigned short addr; - - if ((SnapshotSize != 49179) && (spectrum_128_port_7ffd_data == -1)) - { - logerror("Can't load 128K .SNA file into 48K Machine\n"); - return; - } - - cpunum_set_reg(0, Z80_I, (pSnapshot[0] & 0x0ff)); - lo = pSnapshot[1] & 0x0ff; - hi = pSnapshot[2] & 0x0ff; - cpunum_set_reg(0, Z80_HL2, (hi << 8) | lo); - lo = pSnapshot[3] & 0x0ff; - hi = pSnapshot[4] & 0x0ff; - cpunum_set_reg(0, Z80_DE2, (hi << 8) | lo); - lo = pSnapshot[5] & 0x0ff; - hi = pSnapshot[6] & 0x0ff; - cpunum_set_reg(0, Z80_BC2, (hi << 8) | lo); - lo = pSnapshot[7] & 0x0ff; - hi = pSnapshot[8] & 0x0ff; - cpunum_set_reg(0, Z80_AF2, (hi << 8) | lo); - lo = pSnapshot[9] & 0x0ff; - hi = pSnapshot[10] & 0x0ff; - cpunum_set_reg(0, Z80_HL, (hi << 8) | lo); - lo = pSnapshot[11] & 0x0ff; - hi = pSnapshot[12] & 0x0ff; - cpunum_set_reg(0, Z80_DE, (hi << 8) | lo); - lo = pSnapshot[13] & 0x0ff; - hi = pSnapshot[14] & 0x0ff; - cpunum_set_reg(0, Z80_BC, (hi << 8) | lo); - lo = pSnapshot[15] & 0x0ff; - hi = pSnapshot[16] & 0x0ff; - cpunum_set_reg(0, Z80_IY, (hi << 8) | lo); - lo = pSnapshot[17] & 0x0ff; - hi = pSnapshot[18] & 0x0ff; - cpunum_set_reg(0, Z80_IX, (hi << 8) | lo); - data = (pSnapshot[19] & 0x04) >> 2; - cpunum_set_reg(0, Z80_IFF2, data); - cpunum_set_reg(0, Z80_IFF1, data); - data = (pSnapshot[20] & 0x0ff); - cpunum_set_reg(0, Z80_R, data); - lo = pSnapshot[21] & 0x0ff; - hi = pSnapshot[22] & 0x0ff; - cpunum_set_reg(0, Z80_AF, (hi << 8) | lo); - lo = pSnapshot[23] & 0x0ff; - hi = pSnapshot[24] & 0x0ff; - cpunum_set_reg(0, Z80_SP, (hi << 8) | lo); - data = (pSnapshot[25] & 0x0ff); - cpunum_set_reg(0, Z80_IM, data); - - /* Set border colour */ - PreviousFE = (PreviousFE & 0xf8) | (pSnapshot[26] & 0x07); - EventList_Reset(); - set_last_border_color(pSnapshot[26] & 0x07); - force_border_redraw(); - - cpunum_set_input_line(0, 0, data); - cpunum_set_input_line(0, INPUT_LINE_NMI, data); - cpunum_set_input_line(0, INPUT_LINE_HALT, 0); - - if (SnapshotSize == 49179) - /* 48K Snapshot */ - spectrum_page_basicrom(); - else - { - /* 128K Snapshot */ - spectrum_128_port_7ffd_data = (pSnapshot[49181] & 0x0ff); - spectrum_update_paging(); - } - - /* memory dump */ - for (i = 0; i < 49152; i++) - { - program_write_byte(i + 16384, pSnapshot[27 + i]); - } - - if (SnapshotSize == 49179) - { - /* get pc from stack */ - addr = cpunum_get_reg(0, Z80_SP) & 0xFFFF; - - cpunum_set_reg(0, Z80_PC, - ((UINT16) program_read_byte_8(addr + 0) ) >> 8 | - ((UINT16) program_read_byte_8(addr + 1) ) >> 0); - - addr += 2; - cpunum_set_reg(0, Z80_SP, (addr & 0x0ffff)); - - - } - else - { - /* Set up other RAM banks */ - bank_offset = 49183; - for (i = 0; i < 8; i++) - usedbanks[i] = 0; - - usedbanks[5] = 1; /* 0x4000-0x7fff */ - usedbanks[2] = 1; /* 0x8000-0xbfff */ - usedbanks[spectrum_128_port_7ffd_data & 0x07] = 1; /* Banked memory */ - - for (i = 0; i < 8; i++) - { - if (!usedbanks[i]) - { - logerror("Loading bank %d from offset %ld\n", i, bank_offset); - spectrum_128_port_7ffd_data &= 0xf8; - spectrum_128_port_7ffd_data += i; - spectrum_update_paging(); - for (j = 0; j < 16384; j++) - program_write_byte(j + 49152, pSnapshot[bank_offset + j]); - bank_offset += 16384; - } - } - - /* Reset paging */ - spectrum_128_port_7ffd_data = (pSnapshot[49181] & 0x0ff); - spectrum_update_paging(); - - /* program counter */ - lo = pSnapshot[49179] & 0x0ff; - hi = pSnapshot[49180] & 0x0ff; - cpunum_set_reg(0, Z80_PC, (hi << 8) | lo); - } -} - - -static void spectrum_z80_decompress_block(unsigned char *pSource, int Dest, int size) -{ - unsigned char ch; - int i; - - do - { - /* get byte */ - ch = pSource[0]; - - /* either start 0f 0x0ed, 0x0ed, xx yy or - * single 0x0ed */ - if (ch == (unsigned char) 0x0ed) - { - if (pSource[1] == (unsigned char) 0x0ed) - { - - /* 0x0ed, 0x0ed, xx yy */ - /* repetition */ - - int count; - int data; - - count = (pSource[2] & 0x0ff); - - if (count == 0) - return; - - data = (pSource[3] & 0x0ff); - - pSource += 4; - - if (count > size) - count = size; - - size -= count; - - for (i = 0; i < count; i++) - { - program_write_byte(Dest, data); - Dest++; - } - } - else - { - /* single 0x0ed */ - program_write_byte(Dest, ch); - Dest++; - pSource++; - size--; - - } - } - else - { - /* not 0x0ed */ - program_write_byte(Dest, ch); - Dest++; - pSource++; - size--; - } - - } - while (size > 0); -} - -typedef enum { - SPECTRUM_Z80_SNAPSHOT_INVALID, - SPECTRUM_Z80_SNAPSHOT_48K_OLD, - SPECTRUM_Z80_SNAPSHOT_48K, - SPECTRUM_Z80_SNAPSHOT_SAMRAM, - SPECTRUM_Z80_SNAPSHOT_128K, - SPECTRUM_Z80_SNAPSHOT_TS2068 -} -SPECTRUM_Z80_SNAPSHOT_TYPE; - -static SPECTRUM_Z80_SNAPSHOT_TYPE spectrum_identify_z80 (unsigned char *pSnapshot, unsigned long SnapshotSize) -{ - unsigned char lo, hi, data; - - if (SnapshotSize < 30) - return SPECTRUM_Z80_SNAPSHOT_INVALID; /* Invalid file */ - - lo = pSnapshot[6] & 0x0ff; - hi = pSnapshot[7] & 0x0ff; - if (hi || lo) - return SPECTRUM_Z80_SNAPSHOT_48K_OLD; /* V1.45 - 48K only */ - - lo = pSnapshot[30] & 0x0ff; - hi = pSnapshot[31] & 0x0ff; - data = pSnapshot[34] & 0x0ff; /* Hardware mode */ - - if ((hi == 0) && (lo == 23)) - { /* V2.01 */ /* V2.01 format */ - switch (data) - { - case 0: - case 1: return SPECTRUM_Z80_SNAPSHOT_48K; - case 2: return SPECTRUM_Z80_SNAPSHOT_SAMRAM; - case 3: - case 4: return SPECTRUM_Z80_SNAPSHOT_128K; - case 128: return SPECTRUM_Z80_SNAPSHOT_TS2068; - } - } - - if ((hi == 0) && (lo == 54)) - { /* V3.0x */ /* V2.01 format */ - switch (data) - { - case 0: - case 1: - case 3: return SPECTRUM_Z80_SNAPSHOT_48K; - case 2: return SPECTRUM_Z80_SNAPSHOT_SAMRAM; - case 4: - case 5: - case 6: return SPECTRUM_Z80_SNAPSHOT_128K; - case 128: return SPECTRUM_Z80_SNAPSHOT_TS2068; - } - } - - return SPECTRUM_Z80_SNAPSHOT_INVALID; -} - -/* now supports 48k & 128k .Z80 files */ -void spectrum_setup_z80(unsigned char *pSnapshot, unsigned long SnapshotSize) -{ - int i; - unsigned char lo, hi, data; - SPECTRUM_Z80_SNAPSHOT_TYPE z80_type; - - z80_type = spectrum_identify_z80(pSnapshot, SnapshotSize); - - switch (z80_type) - { - case SPECTRUM_Z80_SNAPSHOT_INVALID: - logerror("Invalid .Z80 file\n"); - return; - case SPECTRUM_Z80_SNAPSHOT_48K_OLD: - case SPECTRUM_Z80_SNAPSHOT_48K: - logerror("48K .Z80 file\n"); - if (!strcmp(Machine->gamedrv->name,"ts2068")) - logerror("48K .Z80 file in TS2068\n"); - break; - case SPECTRUM_Z80_SNAPSHOT_128K: - logerror("128K .Z80 file\n"); - if (spectrum_128_port_7ffd_data == -1) - { - logerror("Not a 48K .Z80 file\n"); - return; - } - if (!strcmp(Machine->gamedrv->name,"ts2068")) - { - logerror("Not a TS2068 .Z80 file\n"); - return; - } - break; - case SPECTRUM_Z80_SNAPSHOT_TS2068: - logerror("TS2068 .Z80 file\n"); if (strcmp(Machine->gamedrv->name,"ts2068")) - if (strcmp(Machine->gamedrv->name,"ts2068")) - logerror("Not a TS2068 machine\n"); - break; - case SPECTRUM_Z80_SNAPSHOT_SAMRAM: - logerror("Hardware not supported - .Z80 file\n"); - return; - } - - /* AF */ - hi = pSnapshot[0] & 0x0ff; - lo = pSnapshot[1] & 0x0ff; - cpunum_set_reg(0, Z80_AF, (hi << 8) | lo); - /* BC */ - lo = pSnapshot[2] & 0x0ff; - hi = pSnapshot[3] & 0x0ff; - cpunum_set_reg(0, Z80_BC, (hi << 8) | lo); - /* HL */ - lo = pSnapshot[4] & 0x0ff; - hi = pSnapshot[5] & 0x0ff; - cpunum_set_reg(0, Z80_HL, (hi << 8) | lo); - - /* SP */ - lo = pSnapshot[8] & 0x0ff; - hi = pSnapshot[9] & 0x0ff; - cpunum_set_reg(0, Z80_SP, (hi << 8) | lo); - - /* I */ - cpunum_set_reg(0, Z80_I, (pSnapshot[10] & 0x0ff)); - - /* R */ - data = (pSnapshot[11] & 0x07f) | ((pSnapshot[12] & 0x01) << 7); - cpunum_set_reg(0, Z80_R, data); - - /* Set border colour */ - PreviousFE = (PreviousFE & 0xf8) | ((pSnapshot[12] & 0x0e) >> 1); - EventList_Reset(); - set_last_border_color((pSnapshot[12] & 0x0e) >> 1); - force_border_redraw(); - - lo = pSnapshot[13] & 0x0ff; - hi = pSnapshot[14] & 0x0ff; - cpunum_set_reg(0, Z80_DE, (hi << 8) | lo); - - lo = pSnapshot[15] & 0x0ff; - hi = pSnapshot[16] & 0x0ff; - cpunum_set_reg(0, Z80_BC2, (hi << 8) | lo); - - lo = pSnapshot[17] & 0x0ff; - hi = pSnapshot[18] & 0x0ff; - cpunum_set_reg(0, Z80_DE2, (hi << 8) | lo); - - lo = pSnapshot[19] & 0x0ff; - hi = pSnapshot[20] & 0x0ff; - cpunum_set_reg(0, Z80_HL2, (hi << 8) | lo); - - hi = pSnapshot[21] & 0x0ff; - lo = pSnapshot[22] & 0x0ff; - cpunum_set_reg(0, Z80_AF2, (hi << 8) | lo); - - lo = pSnapshot[23] & 0x0ff; - hi = pSnapshot[24] & 0x0ff; - cpunum_set_reg(0, Z80_IY, (hi << 8) | lo); - - lo = pSnapshot[25] & 0x0ff; - hi = pSnapshot[26] & 0x0ff; - cpunum_set_reg(0, Z80_IX, (hi << 8) | lo); - - /* Interrupt Flip/Flop */ - if (pSnapshot[27] == 0) - { - cpunum_set_reg(0, Z80_IFF1, 0); - /* cpunum_set_reg(0, Z80_IRQ_STATE, 0); */ - } - else - { - cpunum_set_reg(0, Z80_IFF1, 1); - /* cpunum_set_reg(0, Z80_IRQ_STATE, 1); */ - } - - cpunum_set_input_line(0, 0, data); - cpunum_set_input_line(0, INPUT_LINE_NMI, data); - cpunum_set_input_line(0, INPUT_LINE_HALT, 0); - - /* IFF2 */ - if (pSnapshot[28] != 0) - { - data = 1; - } - else - { - data = 0; - } - cpunum_set_reg(0, Z80_IFF2, data); - - /* Interrupt Mode */ - cpunum_set_reg(0, Z80_IM, (pSnapshot[29] & 0x03)); - - if (z80_type == SPECTRUM_Z80_SNAPSHOT_48K_OLD) - { - lo = pSnapshot[6] & 0x0ff; - hi = pSnapshot[7] & 0x0ff; - cpunum_set_reg(0, Z80_PC, (hi << 8) | lo); - - spectrum_page_basicrom(); - - if ((pSnapshot[12] & 0x020) == 0) - { - logerror("Not compressed\n"); /* not compressed */ - for (i = 0; i < 49152; i++) - program_write_byte(i + 16384, pSnapshot[30 + i]); - } - else - { - logerror("Compressed\n"); /* compressed */ - spectrum_z80_decompress_block(pSnapshot + 30, 16384, 49152); - } - } - else - { - unsigned char *pSource; - int header_size; - - header_size = 30 + 2 + ((pSnapshot[30] & 0x0ff) | ((pSnapshot[31] & 0x0ff) << 8)); - - lo = pSnapshot[32] & 0x0ff; - hi = pSnapshot[33] & 0x0ff; - cpunum_set_reg(0, Z80_PC, (hi << 8) | lo); - - if ((z80_type == SPECTRUM_Z80_SNAPSHOT_128K) || ((z80_type == SPECTRUM_Z80_SNAPSHOT_TS2068) && !strcmp(Machine->gamedrv->name,"ts2068"))) - { - /* Only set up sound registers for 128K machine or TS2068! */ - for (i = 0; i < 16; i++) - { - AY8910_control_port_0_w(0, i); - AY8910_write_port_0_w(0, pSnapshot[39 + i]); - } - AY8910_control_port_0_w(0, pSnapshot[38]); - } - - pSource = pSnapshot + header_size; - - if (z80_type == SPECTRUM_Z80_SNAPSHOT_48K) - /* Ensure 48K Basic ROM is used */ - spectrum_page_basicrom(); - - do - { - unsigned short length; - unsigned char page; - int Dest = 0; - - length = (pSource[0] & 0x0ff) | ((pSource[1] & 0x0ff) << 8); - page = pSource[2]; - - if (z80_type == SPECTRUM_Z80_SNAPSHOT_48K || z80_type == SPECTRUM_Z80_SNAPSHOT_TS2068) - { - switch (page) - { - case 4: Dest = 0x08000; break; - case 5: Dest = 0x0c000; break; - case 8: Dest = 0x04000; break; - default: Dest = 0; break; - } - } - else - { - /* 3 = bank 0, 4 = bank 1 ... 10 = bank 7 */ - if ((page >= 3) && (page <= 10)) - { - /* Page the appropriate bank into 0xc000 - 0xfff */ - spectrum_128_port_7ffd_data = page - 3; - spectrum_update_paging(); - Dest = 0x0c000; - } - else - /* Other values correspond to ROM pages */ - Dest = 0x0; - } - - if (Dest != 0) - { - if (length == 0x0ffff) - { - /* block is uncompressed */ - logerror("Not compressed\n"); - - /* not compressed */ - for (i = 0; i < 16384; i++) - program_write_byte(i + Dest, pSource[i]); - } - else - { - logerror("Compressed\n"); - - /* block is compressed */ - spectrum_z80_decompress_block(&pSource[3], Dest, 16384); - } - } - - /* go to next block */ - pSource += (3 + length); - } - while (((unsigned long) pSource - (unsigned long) pSnapshot) < SnapshotSize); - - if ((spectrum_128_port_7ffd_data != -1) && (z80_type != SPECTRUM_Z80_SNAPSHOT_48K)) - { - /* Set up paging */ - spectrum_128_port_7ffd_data = (pSnapshot[35] & 0x0ff); - spectrum_update_paging(); - } - if ((z80_type == SPECTRUM_Z80_SNAPSHOT_48K) && !strcmp(Machine->gamedrv->name,"ts2068")) - { - ts2068_port_f4_data = 0x03; - ts2068_port_ff_data = 0x00; - ts2068_update_memory(); - } - if (z80_type == SPECTRUM_Z80_SNAPSHOT_TS2068 && !strcmp(Machine->gamedrv->name,"ts2068")) - { - ts2068_port_f4_data = pSnapshot[35]; - ts2068_port_ff_data = pSnapshot[36]; - ts2068_update_memory(); - } - } -} - -/*-----------------27/02/00 10:54------------------- - SPECTRUM WAVE CASSETTE SUPPORT ---------------------------------------------------*/ - -/************************************* - * - * Interrupt handlers. - * - *************************************/ - -QUICKLOAD_LOAD(spectrum) -{ - int i; - int quick_addr = 0x4000; - int quick_length; - UINT8 *quick_data; - int read_; - - quick_length = image_length(image); - quick_data = malloc(quick_length); - if (!quick_data) - return INIT_FAIL; - - read_ = image_fread(image, quick_data, quick_length); - if (read_ != quick_length) - return INIT_FAIL; - - for (i = 0; i < quick_length; i++) - program_write_byte(i + quick_addr, quick_data[i]); - - logerror("quick loading at %.4x size:%.4x\n", quick_addr, quick_length); - return INIT_PASS; -} - -DEVICE_LOAD( timex_cart ) -{ - int file_size; - UINT8 * file_data; - - int chunks_in_file = 0; - - int i; - - logerror ("Trying to load cart\n"); - - file_size = image_length(image); - - if (file_size < 0x09) - { - logerror ("Bad file size\n"); - return INIT_FAIL; - } - - file_data = malloc(file_size); - if (file_data == NULL) - { - logerror ("Memory allocating error\n"); - return INIT_FAIL; - } - - image_fread(image, file_data, file_size); - - for (i=0; i<8; i++) - if(file_data[i+1]&0x02) chunks_in_file++; - - if (chunks_in_file*0x2000+0x09 != file_size) - { - free (file_data); - logerror ("File corrupted\n"); - return INIT_FAIL; - } - - switch (file_data[0x00]) - { - case 0x00: logerror ("DOCK cart\n"); - timex_cart_type = TIMEX_CART_DOCK; - timex_cart_data = (UINT8*) malloc (0x10000); - if (!timex_cart_data) - { - free (file_data); - logerror ("Memory allocate error\n"); - return INIT_FAIL; - } - chunks_in_file = 0; - for (i=0; i<8; i++) - { - timex_cart_chunks = timex_cart_chunks | ((file_data[i+1]&0x01)< 0.0038) - data |= 0x80; - if (!svi318_cassette_present(0) ) - data |= 0x40; - data |= readinputport(12) & 0x30; - - return data; -} - -/* - PPI Port B Input (address 99H) - Bit Name Description - 1 IN0 Keyboard, Column status of selected line - 2 IN1 Keyboard, Column status of selected line - 3 IN2 Keyboard, Column status of selected line - 4 IN3 Keyboard, Column status of selected line - 5 IN4 Keyboard, Column status of selected line - 6 IN5 Keyboard, Column status of selected line - 7 IN6 Keyboard, Column status of selected line - 8 IN7 Keyboard, Column status of selected line -*/ - -static READ8_HANDLER ( svi318_ppi_port_b_r ) -{ - int row; - - row = ppi8255_peek (0, 2) & 0x0f; - if (row <= 10) - { - if (row == 6) - return readinputport(row) & readinputport(14); - else - return readinputport(row); - } - return 0xff; -} - -/* - PPI Port C Output (address 97H) - Bit Name Description - 1 KB0 Keyboard, Line select 0 - 2 KB1 Keyboard, Line select 1 - 3 KB2 Keyboard, Line select 2 - 4 KB3 Keyboard, Line select 3 - 5 CASON Cassette, Motor relay control (0=on, 1=off) - 6 CASW Cassette, Write data - 7 CASAUD Cassette, Audio out (pulse) - 8 SOUND Keyboard, Click sound bit (pulse) -*/ - -static WRITE8_HANDLER ( svi318_ppi_port_c_w ) -{ - int val; - - /* key click */ - val = (data & 0x80) ? 0x3e : 0; - val += (data & 0x40) ? 0x3e : 0; - DAC_signed_data_w (0, val); - - /* cassette motor on/off */ - if (svi318_cassette_present (0) ) - { - cassette_change_state( - image_from_devtype_and_index(IO_CASSETTE, 0), - (data & 0x10) ? CASSETTE_MOTOR_DISABLED : CASSETTE_MOTOR_ENABLED, - CASSETTE_MOTOR_DISABLED); - } - - /* cassette signal write */ - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 0), (data & 0x20) ? -1.0 : +1.0); -} - -static ppi8255_interface svi318_ppi8255_interface = -{ - 1, - {svi318_ppi_port_a_r}, - {svi318_ppi_port_b_r}, - {NULL}, - {NULL}, - {NULL}, - {svi318_ppi_port_c_w} -}; - -READ8_HANDLER( svi318_ppi_r ) -{ - return ppi8255_0_r (offset); -} - -WRITE8_HANDLER( svi318_ppi_w ) -{ - ppi8255_0_w (offset + 2, data); -} - -/* Printer port */ - -WRITE8_HANDLER( svi318_printer_w ) -{ - if (!offset) - svi.prn_data = data; - else - { - if ( (svi.prn_strobe & 1) && !(data & 1) ) - printer_output(image_from_devtype_and_index(IO_PRINTER, 0), svi.prn_data); - - svi.prn_strobe = data; - } -} - -READ8_HANDLER( svi318_printer_r ) -{ - if (printer_status(image_from_devtype_and_index(IO_PRINTER, 0), 0) ) - return 0xfe; - - return 0xff; -} - -/* PSG */ - -/* - PSG Port A Input - Bit Name Description - 1 FWD1 Joystick 1, Forward - 2 BACK1 Joystick 1, Back - 3 LEFT1 Joystick 1, Left - 4 RIGHT1 Joystick 1, Right - 5 FWD2 Joystick 2, Forward - 6 BACK2 Joystick 2, Back - 7 LEFT2 Joystick 2, Left - 8 RIGHT2 Joystick 2, Right -*/ - -READ8_HANDLER( svi318_psg_port_a_r ) -{ - return readinputport (11); -} - -/* - PSG Port B Output - Bit Name Description - 1 /CART Memory bank 11, ROM 0000-7FFF (Cartridge /CCS1, /CCS2) - 2 /BK21 Memory bank 21, RAM 0000-7FFF - 3 /BK22 Memory bank 22, RAM 8000-FFFF - 4 /BK31 Memory bank 31, RAM 0000-7FFF - 5 /BK32 Memory bank 32, RAM 8000-7FFF - 6 CAPS Caps-Lock diod - 7 /ROMEN0 Memory bank 12, ROM 8000-BFFF* (Cartridge /CCS3) - 8 /ROMEN1 Memory bank 12, ROM C000-FFFF* (Cartridge /CCS4) - - * The /CART signal must be active for any effect and all banks - with RAM are disabled. -*/ - -WRITE8_HANDLER( svi318_psg_port_b_w ) -{ - if ( (svi.bank_switch ^ data) & 0x20) - set_led_status (0, !(data & 0x20) ); - - svi.bank_switch = data; - svi318_set_banks (); -} - -/* Disk drives */ - -typedef struct -{ - UINT8 driveselect; - UINT8 irq_drq; - UINT8 heads[2]; -} SVI318_FDC_STRUCT; - -static SVI318_FDC_STRUCT svi318_fdc; - -static void svi_fdc_callback(int param) -{ - switch( param ) - { - case WD179X_IRQ_CLR: - svi318_fdc.irq_drq &= ~0x80; - break; - case WD179X_IRQ_SET: - svi318_fdc.irq_drq |= 0x80; - break; - case WD179X_DRQ_CLR: - svi318_fdc.irq_drq &= ~0x40; - break; - case WD179X_DRQ_SET: - svi318_fdc.irq_drq |= 0x40; - break; - } -} - -WRITE8_HANDLER( svi318_fdc_drive_motor_w ) -{ - switch (data & 3) - { - case 1: - wd179x_set_drive(0); - svi318_fdc.driveselect = 0; - break; - case 2: - wd179x_set_drive(1); - svi318_fdc.driveselect = 1; - break; - } -} - -WRITE8_HANDLER( svi318_fdc_density_side_w ) -{ - mess_image *image; - - wd179x_set_density(data & 0x01 ? DEN_FM_LO:DEN_MFM_LO); - - wd179x_set_side(data & 0x02 ? 1:0); - - image = image_from_devtype_and_index(IO_FLOPPY, svi318_fdc.driveselect); - if (image_exists(image)) - { - UINT8 sectors; - UINT16 sectorSize; - sectors = data & 0x01 ? 18:17; - sectorSize = data & 0x01 ? 128:256; - basicdsk_set_geometry(image, 40, svi318_fdc.heads[svi318_fdc.driveselect], sectors, sectorSize, 1, 0, FALSE); - } -} - -READ8_HANDLER( svi318_fdc_irqdrq_r ) -{ - return svi318_fdc.irq_drq; -} - -static unsigned long svi318_calcoffset(UINT8 t, UINT8 h, UINT8 s, - UINT8 tracks, UINT8 heads, UINT8 sec_per_track, UINT16 sector_length, UINT8 first_sector_id, UINT16 offset_track_zero) -{ - unsigned long o; - - if ((t==0) && (h==0)) - o = (s-first_sector_id)*128; - else - o = ((t*heads+h)*17+s-first_sector_id)*256-2048; /* (17*256)-(18*128)=2048 */ - - return o; -} - -DEVICE_LOAD( svi318_floppy ) -{ - int size; - int id = image_index_in_device(image); - - if (!image_has_been_created(image)) - { - size = image_length (image); - - switch (size) - { - case 172032: /* Single sided */ - svi318_fdc.heads[id] = 1; - break; - case 346112: /* Double sided */ - svi318_fdc.heads[id] = 2; - break; - default: - return INIT_FAIL; - } - } - else - return INIT_FAIL; - - if (device_load_basicdsk_floppy(image) != INIT_PASS) - return INIT_FAIL; - - basicdsk_set_geometry(image, 40, svi318_fdc.heads[id], 17, 256, 1, 0, FALSE); - basicdsk_set_calcoffset(image, svi318_calcoffset); - - return INIT_PASS; -} - -/* 80 column card */ - -#include "vidhrdw/m6845.h" -static int svi318_80col_state; -static char *svi318_80col_ram = NULL; - -static int svi318_6845_RA = 0; -static int svi318_scr_x = 0; -static int svi318_scr_y = 0; -static int svi318_HSync = 0; -static int svi318_VSync = 0; -static int svi318_DE = 0; - -// called when the 6845 changes the character row -static void svi318_Set_RA(int offset, int data) -{ - svi318_6845_RA=data; -} - - -// called when the 6845 changes the HSync -static void svi318_Set_HSync(int offset, int data) -{ - svi318_HSync=data; - if(!svi318_HSync) - { - svi318_scr_y++; - svi318_scr_x = -40; - } -} - -// called when the 6845 changes the VSync -static void svi318_Set_VSync(int offset, int data) -{ - svi318_VSync=data; - if (!svi318_VSync) - { - svi318_scr_y = 0; - } -} - -static void svi318_Set_DE(int offset, int data) -{ - svi318_DE = data; -} - -static struct crtc6845_interface -svi318_crtc6845_interface= { - 0,// Memory Address register - svi318_Set_RA,// Row Address register - svi318_Set_HSync,// Horizontal status - svi318_Set_VSync,// Vertical status - svi318_Set_DE,// Display Enabled status - 0,// Cursor status -}; - -/* 80 column card init */ -static void svi318_80col_init(void) -{ - /* 2K RAM */ - svi318_80col_ram = auto_malloc(0x800); -memset(svi318_80col_ram, 0x40, 0x400); - /* initialise 6845 */ - crtc6845_config(&svi318_crtc6845_interface); - - svi318_80col_state=(1<<2)|(1<<1); -} - -READ8_HANDLER( svi318_crtc_r ) -{ - return 0xff; -} - -WRITE8_HANDLER( svi318_crtc_w ) -{ -} - -WRITE8_HANDLER( svi318_crtcbank_w ) -{ -} - -static void svi318_80col_plot_char_line(int x,int y, mame_bitmap *bitmap) -{ - if (svi318_DE) - { - unsigned char *data = memory_region(REGION_GFX1); - int w; - unsigned char data_byte; - int char_code; - - char_code = svi318_80col_ram[crtc6845_memory_address_r(0)&0x07ff]; - - data_byte = data[(char_code<<3) + svi318_6845_RA]; - - for (w=0; w<8;w++) - { - if (data_byte & 0x080) - { - plot_pixel(bitmap, x+w, y,1); - } - else - { - plot_pixel(bitmap, x+w, y,0); - } - - data_byte = data_byte<<1; - - } - } - else - { - plot_pixel(bitmap, x+0, y, 0); - plot_pixel(bitmap, x+1, y, 0); - plot_pixel(bitmap, x+2, y, 0); - plot_pixel(bitmap, x+3, y, 0); - plot_pixel(bitmap, x+4, y, 0); - plot_pixel(bitmap, x+5, y, 0); - plot_pixel(bitmap, x+6, y, 0); - plot_pixel(bitmap, x+7, y, 0); - } - -} - -static VIDEO_UPDATE( svi318_80col ) -{ - long c=0; // this is used to time out the screen redraw, in the case that the 6845 is in some way out state. - - c=0; - - // loop until the end of the Vertical Sync pulse - while((svi318_VSync)&&(c<33274)) - { - // Clock the 6845 - crtc6845_clock(); - c++; - } - - // loop until the Vertical Sync pulse goes high - // or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal) - while((!svi318_VSync)&&(c<33274)) - { - while ((svi318_HSync)&&(c<33274)) - { - crtc6845_clock(); - c++; - } - // Do all the clever split mode changes in here before the next while loop - - while ((!svi318_HSync)&&(c<33274)) - { - // check that we are on the emulated screen area. - if ((svi318_scr_x>=0) && (svi318_scr_x<640) && (svi318_scr_y>=0) && (svi318_scr_y<400)) - { - svi318_80col_plot_char_line(svi318_scr_x, svi318_scr_y, bitmap); - } - - svi318_scr_x+=8; - - // Clock the 6845 - crtc6845_clock(); - c++; - } - } - return 0; -} - -VIDEO_UPDATE( svi328b ) -{ - video_update_tms9928a(machine, screen, bitmap, cliprect); - video_update_svi318_80col(machine, screen, bitmap, cliprect); - return 0; -} - -MACHINE_RESET( svi328b ) -{ - machine_reset_svi318(machine); - svi318_80col_init(); -} - -/* Init functions */ - -void svi318_vdp_interrupt (int i) -{ - cpunum_set_input_line(0, 0, (i ? HOLD_LINE : CLEAR_LINE)); -} - -DRIVER_INIT( svi318 ) -{ - int i, n; - - /* z80 stuff */ - static int z80_cycle_table[] = - { - Z80_TABLE_op, Z80_TABLE_cb, Z80_TABLE_xy, - Z80_TABLE_ed, Z80_TABLE_xycb, Z80_TABLE_ex - }; - - memset(&svi, 0, sizeof (svi) ); - - svi.svi318 = !strcmp (Machine->gamedrv->name, "svi318"); - - cpunum_set_input_line_vector (0, 0, 0xff); - ppi8255_init (&svi318_ppi8255_interface); - - /* memory */ - svi.empty_bank = malloc (0x8000); - if (!svi.empty_bank) { logerror ("Cannot malloc!\n"); return; } - memset (svi.empty_bank, 0xff, 0x8000); - svi.banks[0][0] = memory_region(REGION_CPU1); - svi.banks[1][0] = malloc (0x8000); - if (!svi.banks[1][0]) { logerror ("Cannot malloc!\n"); return; } - memset (svi.banks[1][0], 0, 0x8000); - - /* should also be allocated via dip-switches ... redundant? */ - if (!svi.svi318) - { - svi.banks[1][2] = malloc (0x8000); - if (!svi.banks[1][2]) { logerror ("Cannot malloc!\n"); return; } - memset (svi.banks[1][2], 0, 0x8000); - } - - svi.banks[0][1] = pcart; - - /* adjust z80 cycles for the M1 wait state */ - for (i = 0; i < sizeof(z80_cycle_table) / sizeof(z80_cycle_table[0]); i++) - { - UINT8 *table = auto_malloc (0x100); - const UINT8 *old_table; - - old_table = cpunum_get_info_ptr (0, CPUINFO_PTR_Z80_CYCLE_TABLE + z80_cycle_table[i]); - memcpy (table, old_table, 0x100); - - if (z80_cycle_table[i] == Z80_TABLE_ex) - { - table[0x66]++; /* NMI overhead (not used) */ - table[0xff]++; /* INT overhead */ - } - else - { - for (n=0; n<256; n++) - { - if (z80_cycle_table[i] == Z80_TABLE_op) - { - table[n]++; - } - else { - table[n] += 2; - } - } - } - cpunum_set_info_ptr(0, CPUINFO_PTR_Z80_CYCLE_TABLE + z80_cycle_table[i], (void*)table); - } - - /* floppy */ - wd179x_init(WD_TYPE_179X, svi_fdc_callback); -} - -static const TMS9928a_interface tms9928a_interface = -{ - TMS9929A, - 0x4000, - 0, 0, - svi318_vdp_interrupt -}; - -MACHINE_START( svi318 ) -{ - TMS9928A_configure(&tms9928a_interface); - return 0; -} - -MACHINE_RESET( svi318 ) -{ - /* video stuff */ - TMS9928A_reset(); - - /* PPI */ - ppi8255_0_w(3, 0x92); - - svi.bank_switch = 0xff; - svi318_set_banks(); - - wd179x_reset(); -} - -INTERRUPT_GEN( svi318_interrupt ) -{ - int set, i, p, b, bit; - - set = readinputport (13); - TMS9928A_set_spriteslimit (set & 0x20); - TMS9928A_interrupt(); - - /* memory banks */ - for (i=0;i<4;i++) - { - bit = set & (1 << i); - p = (i & 1); - b = i / 2 + 2; - - if (bit && !svi.banks[p][b]) - { - svi.banks[p][b] = malloc (0x8000); - if (!svi.banks[p][b]) - logerror ("Cannot malloc bank%d%d!\n", b, p + 1); - else - { - memset (svi.banks[p][b], 0, 0x8000); - logerror ("bank%d%d allocated.\n", b, p + 1); - } - } - else if (!bit && svi.banks[p][b]) - { - free (svi.banks[p][b]); - svi.banks[p][b] = NULL; - logerror ("bank%d%d freed.\n", b, p + 1); - } - } -} - -/* Memory */ - -WRITE8_HANDLER( svi318_writemem0 ) -{ - if (svi.bank1 < 2) return; - - if (svi.banks[0][svi.bank1]) - svi.banks[0][svi.bank1][offset] = data; -} - -WRITE8_HANDLER( svi318_writemem1 ) -{ - switch (svi.bank2) - { - case 0: - if (!svi.svi318 || offset >= 0x4000) - svi.banks[1][0][offset] = data; - - break; - case 2: - case 3: - if (svi.banks[1][svi.bank2]) - svi.banks[1][svi.bank2][offset] = data; - break; - } -} - -static void svi318_set_banks () -{ - const UINT8 v = svi.bank_switch; - - svi.bank1 = (v&1)?(v&2)?(v&8)?0:3:2:1; - svi.bank2 = (v&4)?(v&16)?0:3:2; - - if (svi.banks[0][svi.bank1]) - memory_set_bankptr (1, svi.banks[0][svi.bank1]); - else - memory_set_bankptr (1, svi.empty_bank); - - if (svi.banks[1][svi.bank2]) - { - memory_set_bankptr (2, svi.banks[1][svi.bank2]); - memory_set_bankptr (3, svi.banks[1][svi.bank2] + 0x4000); - - /* SVI-318 has only 16kB RAM -- not 32kb! */ - if (!svi.bank2 && svi.svi318) - memory_set_bankptr (2, svi.empty_bank); - - if ((svi.bank1 == 1) && ( (v & 0xc0) != 0xc0)) - { - memory_set_bankptr (2, (v&80)?svi.empty_bank:svi.banks[1][1] + 0x4000); - memory_set_bankptr (3, (v&40)?svi.empty_bank:svi.banks[1][1]); - } - } - else - { - memory_set_bankptr (2, svi.empty_bank); - memory_set_bankptr (3, svi.empty_bank); - } -} - -/* Cassette */ - -int svi318_cassette_present (int id) -{ - return image_exists(image_from_devtype_and_index(IO_CASSETTE, id)); -} diff --git a/mess/machine/sym1.c b/mess/machine/sym1.c deleted file mode 100644 index c2b74090c..000000000 --- a/mess/machine/sym1.c +++ /dev/null @@ -1,148 +0,0 @@ -/****************************************************************************** - SYM-1 - - PeT mess@utanet.at May 2000 - -******************************************************************************/ -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "vidhrdw/generic.h" - -#define VERBOSE_DBG 0 -#include "includes/cbm.h" -#include "machine/6522via.h" -#include "includes/riot6532.h" -#include "includes/sym1.h" - -/* - 8903 7segment display output, key pressed - 892c keyboard input only ???? -*/ - -static int sym1_riot_a_r(int chip) -{ - int data = 0xff; - if (!(riot_0_a_r(0)&0x80)) { - data &= input_port_0_r(0); - } - if (!(riot_0_b_r(0)&1)) { - data &= input_port_1_r(1); - } - if (!(riot_0_b_r(0)&2)) { - data &= input_port_2_r(1); - } - if (!(riot_0_b_r(0)&4)) { - data &= input_port_3_r(1); - } - if ( ((riot_0_a_r(0)^0xff)&(input_port_0_r(0)^0xff))&0x3f ) - data &= ~0x80; - - return data; -} - -static int sym1_riot_b_r(int chip) -{ - int data = 0xff; - if ( ((riot_0_a_r(0)^0xff)&(input_port_1_r(0)^0xff))&0x3f ) - data&=~1; - if ( ((riot_0_a_r(0)^0xff)&(input_port_2_r(0)^0xff))&0x3f ) - data&=~2; - if ( ((riot_0_a_r(0)^0xff)&(input_port_3_r(0)^0xff))&0x3f ) - data&=~4; - data&=~0x80; // else hangs 8b02 - - return data; -} - -static void sym1_led_w(int chip, int data) -{ - - if ((riot_0_b_r(0)&0xf)<6) { - logerror("write 7seg(%d): %c%c%c%c%c%c%c\n", - data&7, - (riot_0_a_r(0) & 0x01) ? 'a' : '.', - (riot_0_a_r(0) & 0x02) ? 'b' : '.', - (riot_0_a_r(0) & 0x04) ? 'c' : '.', - (riot_0_a_r(0) & 0x08) ? 'd' : '.', - (riot_0_a_r(0) & 0x10) ? 'e' : '.', - (riot_0_a_r(0) & 0x20) ? 'f' : '.', - (riot_0_a_r(0) & 0x40) ? 'g' : '.'); - sym1_led[riot_0_b_r(0)] |= riot_0_a_r(0); - } -} - -static RIOT_CONFIG riot={ - 1000000, - { sym1_riot_a_r,sym1_led_w }, - { sym1_riot_b_r, sym1_led_w }, - 0 -}; - -static void sym1_irq(int level) -{ - cpunum_set_input_line(0, M6502_IRQ_LINE, level); -} - -static struct via6522_interface via0={ -#if 0 - int (*in_a_func)(int offset); - int (*in_b_func)(int offset); - int (*in_ca1_func)(int offset); - int (*in_cb1_func)(int offset); - int (*in_ca2_func)(int offset); - int (*in_cb2_func)(int offset); - void (*out_a_func)(int offset, int val); - void (*out_b_func)(int offset, int val); - void (*out_ca2_func)(int offset, int val); - void (*out_cb2_func)(int offset, int val); - void (*irq_func)(int state); - - /* kludges for the Vectrex */ - void (*out_shift_func)(int val); - void (*t2_callback)(double time); -#endif - 0, - 0, - 0, - 0, - 0, - 0, - - 0, - 0, - 0, - 0, - 0, - 0, - sym1_irq -}, -via1 = { 0 }, -via2 = { 0 }; - - -DRIVER_INIT( sym1 ) -{ - via_config(0, &via0); - via_config(1, &via1); - via_config(2, &via2); - riot_init(0, &riot); -} - -MACHINE_RESET( sym1 ) -{ - via_reset(); - riot_reset(0); -} - -INTERRUPT_GEN( sym1_interrupt ) -{ - int i; - - /* decrease the brightness of the six 7segment LEDs */ - for (i = 0; i < 6; i++) - { - if (videoram[i * 2 + 1] > 0) - videoram[i * 2 + 1] -= 1; - } -} - diff --git a/mess/machine/thomson.c b/mess/machine/thomson.c deleted file mode 100644 index aaf4c5af1..000000000 --- a/mess/machine/thomson.c +++ /dev/null @@ -1,3924 +0,0 @@ -/********************************************************************** - - Copyright (C) Antoine Mine' 2006 - - Thomson 8-bit computers - -**********************************************************************/ - -#include "driver.h" -#include "timer.h" -#include "state.h" -#include "device.h" -#include "cpu/m6809/m6809.h" -#include "machine/6821pia.h" -#include "machine/mc6846.h" -#include "machine/mc6850.h" -#include "includes/6551.h" -#include "sound/dac.h" -#include "machine/thomson.h" -#include "vidhrdw/thomson.h" -#include "sndhrdw/mea8000.h" -#include "devices/cartslot.h" -#include "includes/centroni.h" -#include "includes/serial.h" -#include "devices/cassette.h" -#include "formats/thom_cas.h" -#include "devices/thomflop.h" -#include "formats/thom_dsk.h" - -#define VERBOSE 0 -#define VERBOSE_IRQ 0 -#define VERBOSE_KBD 0 /* TO8 / TO9 / TO9+ keyboard */ -#define VERBOSE_BANK 0 -#define VERBOSE_VIDEO 0 /* video & lightpen */ -#define VERBOSE_IO 0 /* serial & parallel I/O */ -#define VERBOSE_MIDI 0 - -#define DISABLE_AUDIO 0 - -#define PRINT(x) mame_printf_info x - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif - - -/*************************** utilities ********************************/ - -/* several devices on the same irqs */ - -static UINT8 thom_irq; -static UINT8 thom_firq; - -static void thom_set_irq ( int line, int state ) -{ -#if VERBOSE_IRQ - int old = thom_irq; -#endif - if ( state ) thom_irq |= 1 << line; - else thom_irq &= ~(1 << line); -#if VERBOSE_IRQ - if ( !old && thom_irq ) - logerror( "%f thom_set_irq: irq line up %i\n", - timer_get_time(), line ); - if ( old && !thom_irq ) - logerror( "%f thom_set_irq: irq line down %i\n", - timer_get_time(), line ); -#endif - cpunum_set_input_line( 0, M6809_IRQ_LINE, - thom_irq ? ASSERT_LINE : CLEAR_LINE ); -} - -static void thom_set_firq ( int line, int state ) -{ -#if VERBOSE_IRQ - int old = thom_irq; -#endif - if ( state ) thom_firq |= 1 << line; - else thom_firq &= ~(1 << line); -#if VERBOSE_IRQ - if ( !old && thom_firq ) - logerror( "%f thom_set_firq: firq line up %i\n", - timer_get_time(), line ); - if ( old && !thom_firq ) - logerror( "%f thom_set_firq: firq line down %i\n", - timer_get_time(), line ); -#endif - cpunum_set_input_line( 0, M6809_FIRQ_LINE, - thom_firq ? ASSERT_LINE : CLEAR_LINE ); -} - -static void thom_irq_reset ( void ) -{ - thom_irq = 0; - thom_firq = 0; - cpunum_set_input_line( 0, M6809_IRQ_LINE, CLEAR_LINE ); - cpunum_set_input_line( 0, M6809_FIRQ_LINE, CLEAR_LINE ); -} - -static void thom_irq_init ( void ) -{ - state_save_register_global( thom_irq ); - state_save_register_global( thom_firq ); -} - -static void thom_irq_0 ( int state ) { thom_set_irq ( 0, state ); } -static void thom_irq_1 ( int state ) { thom_set_irq ( 1, state ); } -static void thom_irq_2 ( int state ) { thom_set_irq ( 2, state ); } -static void thom_irq_3 ( int state ) { thom_set_irq ( 3, state ); } -static void thom_irq_4 ( int state ) { thom_set_irq ( 4, state ); } -static void thom_firq_0 ( int state ) { thom_set_firq ( 0, state ); } -static void thom_firq_1 ( int state ) { thom_set_firq ( 1, state ); } -static void thom_firq_2 ( int state ) { thom_set_firq ( 2, state ); } -static void thom_firq_3 ( int state ) { thom_set_firq ( 3, state ); } - -/* - line 0 => 6846 interrupt - line 1 => 6821 interrupt (shared for all 6821) - line 2 => TO8 lightpen interrupt (from gate-array) - line 3 => TO9 keyboard interrupt (from 6850 ACIA) -*/ - - - -static UINT8 thom_cart_nb_banks; /* number of 16 KB banks (up to 4) */ -static UINT8 thom_cart_bank; /* current bank */ -static UINT8 thom_cart_write; /* cartridge write mode */ - -#define THOM_CART_READ_ONLY 0 /* actual ROM */ -#define THOM_CART_READ_WRITE 1 /* write performs bank switching */ -#define THOM_CART_WRITE_SWITCH 2 /* actual RAM */ - -static void thom_set_caps_led ( int led ) -{ - output_set_value( "led0", led ); -} - - -/* ------------ serial ------------ */ - -static struct serial_connection to7_io_line; - -int thom_serial_init ( mess_image *image ) -{ - int idx = image_index_in_device(image); - - if ( serial_device_init( image ) != INIT_PASS ) return INIT_FAIL; - - switch ( idx ) { - - case THOM_SERIAL_CC90323: - LOG(( "thom_serial_init: init CD 90-320 RS232 device\n" )); - serial_device_connect( image , &to7_io_line ); - break; - - case THOM_SERIAL_RF57232: - LOG(( "thom_serial_init: init RF 57-232 RS232 device\n" )); - acia_6551_connect_to_serial_device( image ); - break; - - case THOM_SERIAL_MODEM: - LOG(( "thom_serial_init: init MODEM (MD 90-120) device\n" )); - break; - - default: - logerror( "thom_serial_init: unknown serial device index %i\n", idx ); - return INIT_FAIL; - } - - serial_device_setup( image, 2400, 7, 2, SERIAL_PARITY_NONE ); /* default */ - serial_device_set_protocol( image, SERIAL_PROTOCOL_NONE ); - serial_device_set_transmit_state( image, 1 ); - - return INIT_PASS; -} - -void thom_serial_unload ( mess_image *image ) -{ - serial_device_unload( image ); -} - -int thom_serial_load ( mess_image* image ) -{ - int idx = image_index_in_device( image ); - - if ( serial_device_load( image ) != INIT_PASS ) { - logerror( "thom_serial_load: could not load serial image in device %i\n", - idx ); - return INIT_FAIL; - } - - return INIT_PASS; -} - - -/***************************** TO7 / T9000 *************************/ - -/* ------------ cartridge ------------ */ - -int to7_cartridge_load ( mess_image* image ) -{ - int i,j; - UINT8* pos = memory_region( REGION_CPU1 ) + 0x10000; - offs_t size = image_length ( image ); - char name[129]; - if ( size <= 0x04000 ) thom_cart_nb_banks = 1; - else if ( size == 0x08000 ) thom_cart_nb_banks = 2; - else if ( size == 0x10000 ) thom_cart_nb_banks = 4; - else { - logerror( "to7_cartridge_load: invalid cartridge size %i\n", size ); - return INIT_FAIL; - } - - if ( image_fread( image, pos, size ) != size ) { - logerror( "to7_cartridge_load: read error\n" ); - return INIT_FAIL; - } - - for ( i = 0; i < size && pos[i] != ' '; i++ ); - for ( i++, j = 0; i + j < size && j < 128 && pos[i+j] >= 0x20; j++) - name[j] = pos[i+j]; - name[j] = 0; - for ( i = 0; name[i]; i++) - if ( name[i] < ' ' || name[i] >= 127 ) name[i] = '?'; - PRINT (( "to7_cartridge_load: cartridge \"%s\" banks=%i, size=%i\n", - name, thom_cart_nb_banks, size )); - return INIT_PASS; -} - -static void to7_update_cart_bank ( void ) -{ - static int old_bank; - int bank = 0; - if ( thom_cart_nb_banks ) bank = thom_cart_bank % thom_cart_nb_banks; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to7_update_cart_bank: CART is cartridge bank %i\n", bank ); -#endif - memory_set_bank( THOM_CART_BANK, bank ); - old_bank = bank; -} - -/* write signal generates a bank switch */ -WRITE8_HANDLER ( to7_cartridge_w ) -{ - if ( offset >= 0x2000 ) return; - thom_cart_bank = offset & 3; - to7_update_cart_bank(); -} - - -/* ------------ 6846 (timer, I/O) ------------ */ - -static WRITE8_HANDLER ( to7_timer_port_out ) -{ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - thom_set_caps_led( (data & 8) ? 1 : 0 ) ; /* bit 3: keyboard led */ - thom_set_border_color( ((data & 0x10) ? 1 : 0) | /* bits 4-6: border color */ - ((data & 0x20) ? 2 : 0) | - ((data & 0x40) ? 4 : 0) ); -} - -static WRITE8_HANDLER ( to7_timer_cp2_out ) -{ -#if !DISABLE_AUDIO - DAC_data_w( THOM_SOUND_BUZ, data ? 0x80 : 0); /* 1-bit buzzer */ -#endif -} - -static READ8_HANDLER ( to7_timer_port_in ) -{ - int lightpen = (readinputport( THOM_INPUT_LIGHTPEN + 2 ) & 1) ? 2 : 0; - int cass = to7_get_cassette() ? 0x80 : 0; - return lightpen | cass; -} - -static WRITE8_HANDLER ( to7_timer_tco_out ) -{ - /* 1-bit cassette output */ - to7_set_cassette( data ); -} - -static const mc6846_interface to7_timer = { - to7_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_irq_0 -}; - - -/* ------------ lightpen automaton ------------ */ - -static UINT8 to7_lightpen_step; -static UINT8 to7_lightpen; - -static void to7_lightpen_cb ( int step ) -{ - if ( ! to7_lightpen ) return; -#if VERBOSE_VIDEO - logerror( "%f to7_lightpen_cb: step=%i\n", timer_get_time(), step ); -#endif - pia_set_input_cb1( THOM_PIA_SYS, 1 ); - pia_set_input_cb1( THOM_PIA_SYS, 0 ); - to7_lightpen_step = step; -} - - -/* ------------ video ------------ */ - -static void to7_set_init ( int init ) -{ - /* INIT signal wired to system PIA 6821 */ -#if VERBOSE_VIDEO - logerror( "%f to7_set_init: init=%i\n", timer_get_time(), init ); -#endif - pia_set_input_ca1( THOM_PIA_SYS, init ); -} - -/* ------------ system PIA 6821 ------------ */ - -static UINT8 to7_keyline; - -static WRITE8_HANDLER ( to7_sys_cb2_out ) -{ - to7_lightpen = !data; -} - -static WRITE8_HANDLER ( to7_sys_portb_out ) -{ - to7_keyline = data; -} - -#define TO7_LIGHTPEN_DECAL 17 /* horizontal lightpen shift, stored in $60D2 */ - -static READ8_HANDLER ( to7_sys_porta_in ) -{ - if ( to7_lightpen ) { - /* lightpen hi */ - return to7_lightpen_gpl( TO7_LIGHTPEN_DECAL, to7_lightpen_step ) >> 8; - } - else { - /* keyboard */ - UINT8 val = 0xff; - int i; - for ( i = 0; i < 8; i++ ) - if ( ! (to7_keyline & (1 << i)) ) - val &= readinputport( THOM_INPUT_KEYBOARD + i ); - return val; - } -} - -static READ8_HANDLER ( to7_sys_portb_in ) -{ - /* lightpen low */ - return to7_lightpen_gpl( TO7_LIGHTPEN_DECAL, to7_lightpen_step ) & 0xff; -} - -static const pia6821_interface to7_sys = { - to7_sys_porta_in, to7_sys_portb_in, - NULL, NULL, NULL, NULL, - NULL, to7_sys_portb_out, to7_set_cassette_motor, to7_sys_cb2_out, - thom_firq_1, thom_firq_1 -}; - - -/* ------------ CC 90-232 I/O extension ------------ */ - -/* Features: - - 6821 PIA - - serial RS232: bit-banging? - - parallel CENTRONICS: a printer (-prin) is emulated - - usable on TO7(/70), MO5(E) only; not on TO9 and higher - - Note: it seems impossible to connect both a serial & a parallel device - because the Data Transmit Ready bit is shared in an incompatible way! -*/ - -typedef enum { - TO7_IO_NONE, - TO7_IO_CENTRONICS, - TO7_IO_RS232 -} to7_io_dev; - -/* test whether a parallel or a serial device is connected: both cannot - be exploited at the same time! -*/ -static to7_io_dev to7_io_mode( void ) -{ - if ( image_exists( image_from_devtype_and_index( IO_PRINTER, 0 ) ) ) - return TO7_IO_CENTRONICS; - else - if ( image_exists( image_from_devtype_and_index( IO_SERIAL, - THOM_SERIAL_CC90323 ) ) ) - return TO7_IO_CENTRONICS; - return TO7_IO_NONE; -} - -static void to7_io_ack ( int n, int data, int mask ) -{ - /* acknowledge from centronics printer to PIA */ - int ack = (data & CENTRONICS_ACKNOWLEDGE) ? 1 : 0; - LOG (( "%f to7_io_ack: CENTRONICS new state $%02X (ack=%i)\n", - timer_get_time(), data, ack )); - pia_set_input_cb1( THOM_PIA_IO, ack ); -} - -static WRITE8_HANDLER ( to7_io_porta_out ) -{ - int tx = data & 1; - int dtr = ( data & 2 ) ? 1 : 0; -#if VERBOSE_IO - logerror( "$%04x %f to7_io_porta_out: tx=%i, dtr=%i\n", - activecpu_get_previouspc(), timer_get_time(), tx, dtr ); -#endif - if ( dtr ) to7_io_line.State |= SERIAL_STATE_DTR; - else to7_io_line.State &= ~SERIAL_STATE_DTR; - set_out_data_bit( to7_io_line.State, tx ); - serial_connection_out( &to7_io_line ); -} - -static READ8_HANDLER ( to7_io_porta_in ) -{ - int cts = 1; - int dsr = ( to7_io_line.input_state & SERIAL_STATE_DSR ) ? 0 : 1; - int rd = get_in_data_bit( to7_io_line.input_state ); - - if ( to7_io_mode() == TO7_IO_RS232 ) - cts = to7_io_line.input_state & SERIAL_STATE_CTS ? 0 : 1; - else - cts = ( centronics_read_handshake( 0 ) & CENTRONICS_NOT_BUSY ) ? 1 : 0; - -#if VERBOSE_IO - logerror( "$%04x %f to7_io_porta_in: mode=%i cts=%i, dsr=%i, rd=%i\n", - activecpu_get_previouspc(), timer_get_time(), to7_io_mode(), - cts, dsr, rd ); -#endif - - return (dsr ? 0x20 : 0) | (cts ? 0x40 : 0) | (rd ? 0x80: 0); -} - -static WRITE8_HANDLER ( to7_io_portb_out ) -{ - /* set 8-bit data */ -#if VERBOSE_IO - logerror( "$%04x %f to7_io_portb_out: CENTRONICS set data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - centronics_write_data( 0, data ); -} - -static WRITE8_HANDLER ( to7_io_cb2_out ) -{ - /* send STROBE to printer */ -#if VERBOSE_IO - logerror( "$%04x %f to7_io_cb2_out: CENTRONICS set strobe=%i\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - centronics_write_handshake( 0, data ? CENTRONICS_STROBE : 0, - CENTRONICS_STROBE ); -} - -static void to7_io_in_callback ( int id, unsigned long state ) -{ - /* our peer's state has changed */ - to7_io_line.input_state = state; -#if VERBOSE_IO - logerror( "%f to7_io_in_callback: cts=%i dsr=%i rd=%i\n", - timer_get_time(), (state & SERIAL_STATE_CTS) ? 1 : 0, - (state & SERIAL_STATE_DSR) ? 1 : 0, (int)get_in_data_bit( state ) ); -#endif -} - -static const pia6821_interface to7_io = { - to7_io_porta_in, NULL, NULL, NULL, NULL, NULL, - to7_io_porta_out, to7_io_portb_out, NULL, to7_io_cb2_out, - thom_firq_1, thom_firq_1 -}; - -static CENTRONICS_CONFIG to7_centronics = { PRINTER_CENTRONICS, to7_io_ack }; - -static void thom_centronics_reset( void ) -{ - centronics_write_handshake - ( 0, - CENTRONICS_SELECT | CENTRONICS_NOT_BUSY | CENTRONICS_STROBE, - CENTRONICS_SELECT | CENTRONICS_NO_RESET | CENTRONICS_NOT_BUSY | - CENTRONICS_STROBE | CENTRONICS_ACKNOWLEDGE ); - centronics_write_handshake ( 0, CENTRONICS_NO_RESET, CENTRONICS_NO_RESET ); -} - -static void to7_io_reset( void ) -{ - LOG (( "to7_io_reset called\n" )); - thom_centronics_reset(); - /* pia_reset() is called in MACHINE_RESET */ - to7_io_line.input_state = SERIAL_STATE_CTS; - to7_io_line.State &= ~SERIAL_STATE_DTR; - to7_io_line.State |= SERIAL_STATE_RTS; /* always ready to send */ - set_out_data_bit( to7_io_line.State, 1 ); - serial_connection_out( &to7_io_line ); -} - -static void to7_io_init( void ) -{ - LOG (( "to7_io_init: CC 90-323 serial / parallel extension\n" )); - pia_config( THOM_PIA_IO, PIA_ALTERNATE_ORDERING, &to7_io ); - centronics_config( 0, &to7_centronics ); - serial_connection_init( &to7_io_line ); - serial_connection_set_in_callback( &to7_io_line, to7_io_in_callback ); -} - - - -/* ------------ RF 57-932 RS232 extension ------------ */ - -/* Features: - - SY 6551 ACIA. - - higher transfer rates than the CC 90-232 - - usable on all computer, including TO9 and higher - */ - -static void to7_rf57932_reset( void ) -{ - LOG (( "to7_rf57932_reset called\n" )); -} - -static void to7_rf57932_init( void ) -{ - LOG (( "to7_rf57932_init: RD 57-932 RS232 extension\n" )); - acia_6551_init(); -} - - -/* ------------ MD 90-120 MODEM extension ------------ */ - -/* Features: - - 6850 ACIA - - 6821 PIA - - TODO! - */ - -static const pia6821_interface to7_pia_modem = { - NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL -}; - -static struct acia6850_interface to7_acia_modem = { - NULL, NULL, NULL, NULL -}; - -static void to7_modem_reset( void ) -{ - LOG (( "to7_modem_reset called\n" )); - acia6850_reset(); - /* pia_reset() is called in MACHINE_RESET */ -} - - -static void to7_modem_init( void ) -{ - LOG (( "to7_modem_init: MODEM not implemented!\n" )); - pia_config( THOM_PIA_MODEM, PIA_STANDARD_ORDERING, &to7_pia_modem ); - acia6850_config( 0, &to7_acia_modem ); -} - - -/* ------------ dispatch MODEM / speech extension ------------ */ - -READ8_HANDLER ( to7_modem_mea8000_r ) -{ - if ( readinputport( THOM_INPUT_MCONFIG ) & 1 ) - return mea8000_r( offset ); - else - return acia6850_0_r( offset ); -} - -WRITE8_HANDLER ( to7_modem_mea8000_w ) -{ - if ( readinputport( THOM_INPUT_MCONFIG ) & 1 ) - mea8000_w( offset, data ); - else - acia6850_0_w( offset, data ); -} - - -/* ------------ SX 90-018 (model 2) music & game extension ------------ */ - -/* features: - - 6821 PIA - - two 8-position, 2-button game pads - - 2-button mouse (exclusive with pads) - do not confuse with the TO9-specific mouse - - 6-bit DAC sound - - extends the CM 90-112 (model 1) with one extra button per pad and a mouse -*/ - -#define TO7_GAME_POLL_PERIOD TIME_IN_USEC( 500 ) - - -/* calls to7_game_update_cb periodically */ -static mame_timer* to7_game_timer; - -static UINT8 to7_game_sound; -static UINT8 to7_game_mute; - - -/* The mouse is a very simple phase quadrature one. - Each axis provides two 1-bit signals, A and B, that are toggled by the - axis rotation. The two signals are not in phase, so that whether A is - toggled before B or B before A gives the direction of rotation. - This is similar Atari & Amiga mouses. - Returns: 0 0 0 0 0 0 YB XB YA XA - */ -static UINT8 to7_get_mouse_signal( void ) -{ - UINT8 xa, xb, ya, yb; - UINT16 dx = readinputport( THOM_INPUT_GAME + 2 ); /* x axis */ - UINT16 dy = readinputport( THOM_INPUT_GAME + 3 ); /* y axis */ - xa = ((dx + 1) & 3) <= 1; - xb = (dx & 3) <= 1; - ya = ((dy + 1) & 3) <= 1; - yb = (dy & 3) <= 1; - return xa | (ya << 1) | (xb << 2) | (yb << 3); -} - -static void to7_game_sound_update ( void ) -{ -#if !DISABLE_AUDIO - DAC_data_w( THOM_SOUND_GAME, to7_game_mute ? 0 : (to7_game_sound << 2) ); -#endif -} - -static READ8_HANDLER ( to7_game_porta_in ) -{ - UINT8 data; - if ( readinputport( THOM_INPUT_CONFIG ) & 1 ) { - /* mouse */ - data = to7_get_mouse_signal() & 0x0c; /* XB, YB */ - data |= readinputport( THOM_INPUT_GAME + 4 ) & 3; /* buttons */ - } - else { - /* joystick */ - data = readinputport( THOM_INPUT_GAME ); - /* bit 0=0 => P1 up bit 4=0 => P2 up - bit 1=0 => P1 down bit 5=0 => P2 down - bit 2=0 => P1 left bit 6=0 => P2 left - bit 3=0 => P1 right bit 7=0 => P2 right - */ - /* remove impossible combinations: up+down, left+right */ - if ( ! ( data & 0x03 ) ) data |= 0x03; - if ( ! ( data & 0x0c ) ) data |= 0x0c; - if ( ! ( data & 0x30 ) ) data |= 0x30; - if ( ! ( data & 0xc0 ) ) data |= 0xc0; - if ( ! ( data & 0x03 ) ) data |= 0x03; - if ( ! ( data & 0x0c ) ) data |= 0x0c; - if ( ! ( data & 0x30 ) ) data |= 0x30; - if ( ! ( data & 0xc0 ) ) data |= 0xc0; - } - return data; -} - -static READ8_HANDLER ( to7_game_portb_in ) -{ - UINT8 data; - if ( readinputport( THOM_INPUT_CONFIG ) & 1 ) { - /* mouse */ - UINT8 mouse = to7_get_mouse_signal(); - data = 0; - if ( mouse & 1 ) data |= 0x04; /* XA */ - if ( mouse & 2 ) data |= 0x40; /* YA */ - } - else { - /* joystick */ - /* bits 6-7: action buttons A (0=pressed) */ - /* bits 2-3: action buttons B (0=pressed) */ - /* bits 4-5: unused (ouput) */ - /* bits 0-1: unknown! */ - data = readinputport( THOM_INPUT_GAME + 1 ); - } - return data; -} - -static WRITE8_HANDLER ( to7_game_portb_out ) -{ - /* 6-bit DAC sound */ - to7_game_sound = data & 0x3f; - to7_game_sound_update(); -} - -static const pia6821_interface to7_game = { - to7_game_porta_in, to7_game_portb_in, - NULL, NULL, NULL, NULL, - NULL, to7_game_portb_out, NULL, NULL, - thom_irq_1, thom_irq_1 -}; - -/* this should be called periodically */ -static void to7_game_update_cb ( int dummy ) -{ - if ( readinputport( THOM_INPUT_CONFIG ) & 1 ) { - UINT8 mouse = to7_get_mouse_signal(); - pia_set_input_ca1( THOM_PIA_GAME, (mouse & 1) ? 1 : 0 ); /* XA */ - pia_set_input_ca2( THOM_PIA_GAME, (mouse & 2) ? 1 : 0 ); /* YA */ - } - else { - /* joystick */ - UINT8 in = readinputport( THOM_INPUT_GAME ); - pia_set_input_cb2( THOM_PIA_GAME, (in & 0x80) ? 1 : 0 ); /* P2 action A */ - pia_set_input_ca2( THOM_PIA_GAME, (in & 0x40) ? 1 : 0 ); /* P1 action A */ - pia_set_input_cb1( THOM_PIA_GAME, (in & 0x08) ? 1 : 0 ); /* P2 action B */ - pia_set_input_ca1( THOM_PIA_GAME, (in & 0x04) ? 1 : 0 ); /* P1 action B */ - /* TODO: - it seems that CM 90-112 behaves differently - - ca1 is P1 action A, i.e., in & 0x40 - - ca2 is P2 action A, i.e., in & 0x80 - - cb1, cb2 are not connected (should not be a problem) - */ - /* Note: the MO6 & MO5NR have slightly different connections - (see mo6_game_update_cb) - */ - } -} - -static void to7_game_init ( void ) -{ - LOG (( "to7_game_init called\n" )); - pia_config( THOM_PIA_GAME, PIA_ALTERNATE_ORDERING, &to7_game ); - to7_game_timer = mame_timer_alloc( to7_game_update_cb ); - timer_adjust( to7_game_timer, TO7_GAME_POLL_PERIOD, 0, TO7_GAME_POLL_PERIOD ); - state_save_register_global( to7_game_sound ); -} - -static void to7_game_reset ( void ) -{ - LOG (( "to7_game_reset called\n" )); - pia_set_input_ca1( THOM_PIA_GAME, 0 ); - to7_game_sound = 0; - to7_game_mute = 0; - to7_game_sound_update(); -} - - -/* ------------ MIDI extension ------------ */ - -/* IMPORTANT NOTE: - The following is experimental and not compiled in by default. - It relies on the existence of an hypothetical "character device" API able - to transmit bytes between the MESS driver and the outside world - (using, e.g., character device special files on some UNIX). -*/ - -#ifdef CHARDEV - -#include "devices/chardev.h" - -/* Features an EF 6850 ACIA - - MIDI protocol is a serial asynchronous protocol - Each 8-bit byte is transmitted as: - - 1 start bit - - 8 data bits - - 1 stop bits - 320 us per transmitted byte => 31250 baud - - Emulation is based on the Motorola 6850 documentation, not EF 6850. - - We do not emulate the seral line but pass bytes directly between the - 6850 registers and the MIDI device. -*/ - - -static UINT8 to7_midi_status; /* 6850 status word */ -static UINT8 to7_midi_overrun; /* pending overrun */ -static UINT8 to7_midi_intr; /* enabled interrupts */ - -static chardev* to7_midi_chardev; - -static void to7_midi_update_irq ( void ) -{ - if ( (to7_midi_intr & 4) && (to7_midi_status & ACIA_6850_RDRF) ) - to7_midi_status |= ACIA_6850_irq; /* byte received interrupt */ - - if ( (to7_midi_intr & 4) && (to7_midi_status & ACIA_6850_OVRN) ) - to7_midi_status |= ACIA_6850_irq; /* overrun interrupt */ - - if ( (to7_midi_intr & 3) == 1 && (to7_midi_status & ACIA_6850_TDRE) ) - to7_midi_status |= ACIA_6850_irq; /* ready to transmit interrupt */ - - thom_irq_4( to7_midi_status & ACIA_6850_irq ); -} - -static void to7_midi_byte_received_cb( chardev_err s ) -{ - to7_midi_status |= ACIA_6850_RDRF; - if ( s == CHARDEV_OVERFLOW ) to7_midi_overrun = 1; - to7_midi_update_irq(); -} - -static void to7_midi_ready_to_send_cb( void ) -{ - to7_midi_status |= ACIA_6850_TDRE; - to7_midi_update_irq(); -} - -READ8_HANDLER ( to7_midi_r ) -{ - /* ACIA 6850 registers */ - - switch ( offset ) { - - case 0: /* get status */ - /* bit 0: data received */ - /* bit 1: ready to transmit data */ - /* bit 2: data carrier detect (ignored) */ - /* bit 3: clear to send (ignored) */ - /* bit 4: framing error (ignored) */ - /* bit 5: overrun */ - /* bit 6: parity error (ignored) */ - /* bit 7: interrupt */ -#if VERBOSE_MIDI - logerror( "$%04x %f to7_midi_r: status $%02X (rdrf=%i, tdre=%i, ovrn=%i, irq=%i)\n", - activecpu_get_previouspc(), timer_get_time(), to7_midi_status, - (to7_midi_status & ACIA_6850_RDRF) ? 1 : 0, - (to7_midi_status & ACIA_6850_TDRE) ? 1 : 0, - (to7_midi_status & ACIA_6850_OVRN) ? 1 : 0, - (to7_midi_status & ACIA_6850_irq) ? 1 : 0 ); -#endif - return to7_midi_status; - - case 1: /* get input data */ - { - UINT8 data = chardev_in( to7_midi_chardev ); - to7_midi_status &= ~(ACIA_6850_irq | ACIA_6850_RDRF); - if ( to7_midi_overrun ) to7_midi_status |= ACIA_6850_OVRN; - else to7_midi_status &= ~ACIA_6850_OVRN; - to7_midi_overrun = 0; -#if VERBOSE_MIDI - logerror( "$%04x %f to7_midi_r: read data $%02X\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - to7_midi_update_irq(); - return data; - } - - default: - logerror( "$%04x to7_midi_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( to7_midi_w ) -{ - /* ACIA 6850 registers */ - - switch ( offset ) { - - case 0: /* set control */ - /* bits 0-1: clock divide (ignored) or reset */ - if ( (data & 3) == 3 ) { - /* reset */ -#if VERBOSE_MIDI - logerror( "$%04x %f to7_midi_w: reset (data=$%02X)\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - to7_midi_overrun = 0; - to7_midi_status = 2; - to7_midi_intr = 0; - chardev_reset( to7_midi_chardev ); - } - else { - /* bits 2-4: parity */ - /* bits 5-6: interrupt on transmit */ - /* bit 7: interrupt on receive */ - to7_midi_intr = data >> 5; -#if VERBOSE_MIDI - { - static int bits[8] = { 7,7,7,7,8,8,8,8 }; - static int stop[8] = { 2,2,1,1,2,1,1,1 }; - static char parity[8] = { 'e','o','e','o','-','-','e','o' }; - logerror( "$%04x %f to7_midi_w: set control to $%02X (bits=%i, stop=%i, parity=%c, intr in=%i out=%i)\n", - activecpu_get_previouspc(), timer_get_time(), - data, - bits[ (data >> 2) & 7 ], - stop[ (data >> 2) & 7 ], - parity[ (data >> 2) & 7 ], - to7_midi_intr >> 2, - (to7_midi_intr & 3) ? 1 : 0); - } -#endif - } - to7_midi_update_irq(); - break; - - case 1: /* output data */ -#if VERBOSE_MIDI - logerror( "$%04x %f to7_midi_w: write data $%02X\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - if ( data == 0x55 ) - /* cable-detect: shortcut */ - chardev_fake_in( to7_midi_chardev, 0x55 ); - else { - /* send to MIDI */ - to7_midi_status &= ~(ACIA_6850_irq | ACIA_6850_TDRE); - chardev_out( to7_midi_chardev, data ); - } - break; - - default: - logerror( "$%04x to7_midi_w: invalid offset %i (data=$%02X) \n", - activecpu_get_previouspc(), offset, data ); - } -} - -static chardev_interface to7_midi_interface = { - to7_midi_byte_received_cb, - to7_midi_ready_to_send_cb, -}; - -static void to7_midi_reset( void ) -{ - LOG (( "to7_midi_reset called\n" )); - to7_midi_overrun = 0; - to7_midi_status = 0; - to7_midi_intr = 0; - chardev_reset( to7_midi_chardev ); -} - -static void to7_midi_init( void ) -{ - LOG (( "to7_midi_init\n" )); - to7_midi_chardev = chardev_open( "/dev/snd/midiC1D0", - "/dev/snd/midiC1D1", - &to7_midi_interface ); -} - -#else - -READ8_HANDLER ( to7_midi_r ) -{ - logerror( "to7_midi_r: not implemented\n" ); - return 0; -} - -WRITE8_HANDLER ( to7_midi_w ) -{ - logerror( "to7_midi_w: not implemented\n" ); -} - -static void to7_midi_reset( void ) -{ - logerror( "to7_midi_reset: not implemented\n" ); -} - -static void to7_midi_init( void ) -{ - logerror( "to7_midi_init: not implemented\n" ); -} - -#endif - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( to7 ) -{ - LOG (( "to7: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mc6846_reset(); - to7_game_reset(); - to7_floppy_reset(); - to7_io_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mea8000_reset(); - - /* video */ - thom_set_video_mode( THOM_VMODE_TO770 ); - thom_set_init_callback( to7_set_init ); - thom_set_lightpen_callback( 3, to7_lightpen_cb ); - thom_set_mode_point( 0 ); - thom_set_border_color( 0 ); - - /* keyboard */ - to7_keyline = 0; - - /* memory */ - to7_update_cart_bank(); - /* thom_cart_bank not reset */ - - /* lightpen */ - to7_lightpen = 0; -} - -MACHINE_START ( to7 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "to7: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &to7_sys ); - mc6846_config( &to7_timer ); - to7_game_init(); - to7_floppy_init( mem + 0x24000 ); - to7_io_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - thom_vram = mem + 0x20000; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( THOM_CART_BANK, 0, 4, mem + 0x10000, 0x4000 ); - - /* force 2 topmost color bits to 1 */ - memset( thom_vram + 0x2000, 0xc0, 0x2000 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_keyline ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global_pointer( (thom_vram), 0x2000 * 2 ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 4 ); - - return 0; -} - - - -/***************************** TO7/70 *************************/ - - -/* ------------ system PIA 6821 ------------ */ - -static WRITE8_HANDLER ( to770_sys_cb2_out ) -{ - /* video overlay: black pixels are transparent and show TV image underneath */ - int to770_video_overlay = data; /* TODO */ - logerror( "$%04x to770_sys_cb2_out: video overlay %i, unsupported\n", - activecpu_get_previouspc(), to770_video_overlay ); -} - -static READ8_HANDLER ( to770_sys_porta_in ) -{ - /* keyboard */ - return readinputport( THOM_INPUT_KEYBOARD + 7 - to7_keyline ); -} - -static void to770_update_ram_bank( void ) -{ - UINT8 portb = pia_get_output_b( THOM_PIA_SYS ); - static int old_bank; - int bank; - - switch (portb & 0xf8) { - /* 2 * 16 KB internal RAM */ - case 0xf0: bank = 0; break; - case 0xe8: bank = 1; break; - /* 4 * 16 KB extended RAM */ - case 0x18: bank = 2; break; - case 0x98: bank = 3; break; - case 0x58: bank = 4; break; - case 0xd8: bank = 5; break; - default: - logerror( "to770_update_ram_bank unknown bank $%02X\n", portb & 0xf8 ); - return; - } - -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to770_update_ram_bank: RAM bank change %i\n", bank ); -#endif - memory_set_bank( THOM_RAM_BANK, bank ); - old_bank = bank; -} - -static WRITE8_HANDLER ( to770_sys_portb_out ) -{ - to7_keyline = data & 7; - to770_update_ram_bank(); -} - -static const pia6821_interface to770_sys = { - to770_sys_porta_in, NULL, - NULL, NULL, NULL, NULL, - NULL, to770_sys_portb_out, to7_set_cassette_motor, to770_sys_cb2_out, - thom_firq_1, thom_firq_1 -}; - - -/* ------------ 6846 (timer, I/O) ------------ */ - -static WRITE8_HANDLER ( to770_timer_port_out ) -{ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - thom_set_caps_led( (data & 8) ? 1 : 0 ) ; /* bit 3: keyboard led */ - thom_set_border_color( ((data & 0x10) ? 1 : 0) | /* 4-bit border color */ - ((data & 0x20) ? 2 : 0) | - ((data & 0x40) ? 4 : 0) | - ((data & 0x04) ? 0 : 8) ); -} - -static const mc6846_interface to770_timer = { - to770_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_irq_0 -}; - - -/* ------------ gate-array ------------ */ - -READ8_HANDLER ( to770_gatearray_r ) -{ - struct thom_vsignal v = thom_get_vsignal(); - struct thom_vsignal l = - thom_get_lightpen_vsignal( TO7_LIGHTPEN_DECAL, to7_lightpen_step - 1, 0 ); - int count, inil, init, lt3; - count = to7_lightpen ? l.count : v.count; - inil = to7_lightpen ? l.inil : v.inil; - init = to7_lightpen ? l.init : v.init; - lt3 = to7_lightpen ? l.lt3 : v.lt3; - switch ( offset ) { - case 0: return (count >> 8) & 0xff; - case 1: return count & 0xff; - case 2: return (lt3 << 7) | (inil << 6); - case 3: return (init << 7); - default: - logerror( "$%04x to770_gatearray_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( to770_gatearray_w ) -{ - if ( ! offset ) to7_lightpen = data & 1; -} - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET( to770 ) -{ - LOG (( "to770: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mc6846_reset(); - to7_game_reset(); - to7_floppy_reset(); - to7_io_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mea8000_reset(); - - /* bank selection PIA input float to 1 */ - pia_set_input_b( THOM_PIA_SYS, 0xf8 ); - - /* video */ - thom_set_video_mode( THOM_VMODE_TO770 ); - thom_set_init_callback( to7_set_init ); - thom_set_lightpen_callback( 3, to7_lightpen_cb ); - thom_set_mode_point( 0 ); - thom_set_border_color( 8 ); - - /* keyboard */ - to7_keyline = 0; - - /* memory */ - to7_update_cart_bank(); - to770_update_ram_bank(); - /* thom_cart_bank not reset */ - - /* lightpen */ - to7_lightpen = 0; -} - -MACHINE_START ( to770 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "to770: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &to770_sys ); - mc6846_config( &to770_timer ); - to7_game_init(); - to7_floppy_init( mem + 0x3c000 ); - to7_io_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - thom_vram = mem + 0x38000; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( THOM_CART_BANK, 0, 4, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_RAM_BANK, 0, 6, mem + 0x20000, 0x4000 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_keyline ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global_pointer( thom_vram, 0x2000 * 2 ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 4 ); - state_save_register_global_pointer( (mem + 0x20000), 0x4000 * 6 ); - - return 0; -} - - - -/***************************** MO5 *************************/ - - -/* ------------ lightpen automaton ------------ */ - -static void mo5_lightpen_cb ( int step ) -{ - /* MO5 signals ca1 (TO7 signals cb1) */ - if ( ! to7_lightpen ) return; - pia_set_input_ca1( THOM_PIA_SYS, 1 ); - pia_set_input_ca1( THOM_PIA_SYS, 0 ); - to7_lightpen_step = step; -} - - -/* ------------ periodic interrupt ------------ */ - -/* the MO5 & MO6 do not have a MC 6846 timer, - they have a fixed 50 Hz timer instead -*/ - -static mame_timer* mo5_periodic_timer; - -static void mo5_periodic_cb ( int dummy ) -{ - /* pulse */ - pia_set_input_cb1( THOM_PIA_SYS, 1 ); - pia_set_input_cb1( THOM_PIA_SYS, 0 ); -} - -static void mo5_init_timer(void) -{ - /* time is a faster than 50 Hz to match video framerate */ - timer_adjust( mo5_periodic_timer, TIME_NOW, 0, TIME_IN_USEC( 19968 ) ); -} - - -/* ------------ system PIA 6821 ------------ */ - -static UINT8 mo5_keysel; - -static WRITE8_HANDLER ( mo5_sys_porta_out ) -{ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - thom_set_border_color( (data >> 1) & 15 ); /* bit 1-4: border color */ - mo5_set_cassette( (data & 0x40) ? 1 : 0 ); /* bit 6: cassette output */ -} - -static READ8_HANDLER ( mo5_sys_porta_in ) -{ - return - (mo5_get_cassette() ? 0x80 : 0) | /* bit 7: cassette input */ - ((readinputport( THOM_INPUT_LIGHTPEN + 2 ) & 1) ? 0x20 : 0) - /* bit 5: lightpen button */; -} - -static WRITE8_HANDLER ( mo5_sys_portb_out ) -{ - mo5_keysel = (data >> 1) & 0x3f; /* key tested */ -#if !DISABLE_AUDIO - DAC_data_w( THOM_SOUND_BUZ, (data & 1) ? 0x80 : 0); /* 1-bit buzzer */ -#endif -} - -static READ8_HANDLER ( mo5_sys_portb_in ) -{ - int col = mo5_keysel & 7; /* key column */ - int lin = 7 - (mo5_keysel >> 3); /* key line */ - return ( readinputport( THOM_INPUT_KEYBOARD+lin ) & (1 << col) ) ? 0x80 : 0; -} - -static const pia6821_interface mo5_sys = { - mo5_sys_porta_in, mo5_sys_portb_in, - NULL, NULL, NULL, NULL, - mo5_sys_porta_out, mo5_sys_portb_out, mo5_set_cassette_motor, NULL, - thom_firq_1, thom_irq_1 /* WARNING: differs from TO7 ! */ -}; - - -/* ------------ gate-array ------------ */ - -#define MO5_LIGHTPEN_DECAL 12 - -READ8_HANDLER ( mo5_gatearray_r ) -{ - struct thom_vsignal v = thom_get_vsignal(); - struct thom_vsignal l = - thom_get_lightpen_vsignal( MO5_LIGHTPEN_DECAL, to7_lightpen_step - 1, 0 ); - int count, inil, init, lt3; - count = to7_lightpen ? l.count : v.count; - inil = to7_lightpen ? l.inil : v.inil; - init = to7_lightpen ? l.init : v.init; - lt3 = to7_lightpen ? l.lt3 : v.lt3; - switch ( offset ) { - case 0: return (count >> 8) & 0xff; - case 1: return count & 0xff; - case 2: return (lt3 << 7) | (inil << 6); - case 3: return (init << 7); - default: - logerror( "$%04x mo5_gatearray_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( mo5_gatearray_w ) -{ - if ( ! offset ) to7_lightpen = data & 1; -} - - -/* ------------ cartridge / extended RAM ------------ */ - -static UINT8 mo5_reg_cart; - -int mo5_cartridge_load ( mess_image* image ) -{ - UINT8* pos = memory_region(REGION_CPU1) + 0x10000; - UINT64 size = image_length ( image ); - int i,j; - char name[129]; - - if ( size > 32 && size <= 0x04000 ) thom_cart_nb_banks = 1; - else if ( size == 0x08000 ) thom_cart_nb_banks = 2; - else if ( size == 0x10000 ) thom_cart_nb_banks = 4; - else { - logerror( "mo5_cartridge_load: invalid cartridge size %u\n", (unsigned) size ); - return INIT_FAIL; - } - - if ( image_fread( image, pos, size ) != size ) { - logerror( "mo5_cartridge_load: read error\n" ); - return INIT_FAIL; - } - - i = size - 32; - while ( i < size && !pos[i] ) i++; - for ( j = 0; i < size && pos[i] >= 0x20; j++, i++) name[j] = pos[i]; - name[j] = 0; - for ( i = 0; name[i]; i++) - if ( name[i] < ' ' || name[i] >= 127 ) name[i] = '?'; - PRINT (( "mo5_cartridge_load: cartridge \"%s\" banks=%i, size=%u\n", - name, thom_cart_nb_banks, (unsigned) size )); - - return INIT_PASS; -} - -static void mo5_update_cart_bank ( void ) -{ - static int old_bank; - int rom_is_ram = mo5_reg_cart & 4; - int bank = 0; - if ( rom_is_ram && thom_cart_nb_banks == 4 ) { - /* 64 KB ROM from "JANE" cartridge */ - thom_cart_write = THOM_CART_READ_ONLY; - bank = mo5_reg_cart & 3; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo5_update_cart_bank: CART is cartridge bank %i (A7CB style)\n", - thom_cart_bank ); -#endif - } - else if ( rom_is_ram ) { - /* 64 KB RAM from network extension */ - int write_enable = mo5_reg_cart & 8; - bank = 4 + ( mo5_reg_cart & 3 ); - thom_cart_write = write_enable ? THOM_CART_READ_WRITE : THOM_CART_READ_ONLY; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo5_update_cart_bank: CART is nanonetwork RAM bank %i (write-enable=%i)\n", - mo5_reg_cart & 3, write_enable ? 1 : 0 ); -#endif - } - else { - /* regular cartridge bank switch */ - if ( thom_cart_nb_banks ) bank = thom_cart_bank % thom_cart_nb_banks; - thom_cart_write = THOM_CART_WRITE_SWITCH; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo5_update_cart_bank: CART is internal / cartridge bank %i\n", - thom_cart_bank ); -#endif - } - memory_set_bank( THOM_CART_BANK, bank ); - old_bank = bank; -} - -WRITE8_HANDLER ( mo5_cartridge_w ) -{ - if ( thom_cart_write == THOM_CART_WRITE_SWITCH ) { - if ( offset >= 0x2000 ) return; - thom_cart_bank = offset & 3; - mo5_update_cart_bank(); - } - else if ( thom_cart_write == THOM_CART_READ_WRITE ) { - UINT8* p = thom_vram + 0x18000 + 0x4000 * (mo5_reg_cart & 3); - p[offset] = data; - } -} - -WRITE8_HANDLER ( mo5_ext_w ) -{ - mo5_reg_cart = data; - mo5_update_cart_bank(); -} - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET( mo5 ) -{ - LOG (( "mo5: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - to7_game_reset(); - to7_floppy_reset(); - to7_io_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mo5_init_timer(); - mea8000_reset(); - - /* video */ - thom_set_video_mode( THOM_VMODE_MO5 ); - thom_set_lightpen_callback( 3, mo5_lightpen_cb ); - thom_set_mode_point( 0 ); - thom_set_border_color( 0 ); - - /* memory */ - mo5_update_cart_bank(); - /* mo5_reg_cart not reset */ - /* thom_cart_bank not reset */ - - /* keyboard */ - mo5_keysel = 0; - - /* lightpen */ - to7_lightpen = 0; -} - -MACHINE_START ( mo5 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "mo5: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &mo5_sys ); - to7_game_init(); - to7_floppy_init( mem + 0x34000 ); - to7_io_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mo5_periodic_timer = mame_timer_alloc( mo5_periodic_cb ); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - mo5_reg_cart = 0; - thom_vram = mem + 0x30000; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( THOM_CART_BANK, 0, 8, mem + 0x10000, 0x4000 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( mo5_keysel ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( mo5_reg_cart ); - state_save_register_global_pointer( thom_vram, 0x2000 * 2 ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 8 ); - - return 0; -} - - - -/***************************** TO9 *************************/ - -/* ------------ IEEE extension ------------ */ - -/* TODO: figure out what this extension is... IEEE-488 ??? */ - -WRITE8_HANDLER ( to9_ieee_w ) -{ - logerror( "$%04x %f to9_ieee_w: unhandled write $%02X to register %i\n", - activecpu_get_previouspc(), timer_get_time(), data, offset ); -} - -READ8_HANDLER ( to9_ieee_r ) -{ - logerror( "$%04x %f to9_ieee_r: unhandled read from register %i\n", - activecpu_get_previouspc(), timer_get_time(), offset ); - return 0; -} - - -/* ------------ system gate-array ------------ */ - -#define TO9_LIGHTPEN_DECAL 8 - -READ8_HANDLER ( to9_gatearray_r ) -{ - struct thom_vsignal v = thom_get_vsignal(); - struct thom_vsignal l = - thom_get_lightpen_vsignal( TO9_LIGHTPEN_DECAL, to7_lightpen_step - 1, 0 ); - int count, inil, init, lt3; - count = to7_lightpen ? l.count : v.count; - inil = to7_lightpen ? l.inil : v.inil; - init = to7_lightpen ? l.init : v.init; - lt3 = to7_lightpen ? l.lt3 : v.lt3; - switch ( offset ) { - case 0: return (count >> 8) & 0xff; - case 1: return count & 0xff; - case 2: return (lt3 << 7) | (inil << 6); - case 3: return (v.init << 7) | (init << 6); /* != TO7/70 */ - default: - logerror( "$%04x to9_gatearray_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( to9_gatearray_w ) -{ - if ( ! offset ) to7_lightpen = data & 1; -} - - -/* ------------ video gate-array ------------ */ - -static UINT8 to9_palette_data[32]; -static UINT8 to9_palette_idx; - -/* style = 0 => TO9, =1 => TO8/TO9, =2 => MO6 modes */ -static void to9_set_video_mode( UINT8 data, int style ) -{ - switch ( data ) { - case 0x00: - if ( style == 2 ) thom_set_video_mode( THOM_VMODE_MO5 ); - else if ( style == 1 ) thom_set_video_mode( THOM_VMODE_TO770 ); - else thom_set_video_mode( THOM_VMODE_TO9 ); - break; - case 0x21: thom_set_video_mode( THOM_VMODE_BITMAP4 ); break; - case 0x41: thom_set_video_mode( THOM_VMODE_BITMAP4_ALT ); break; - case 0x2a: - if ( style==0 ) thom_set_video_mode( THOM_VMODE_80_TO9 ); - else thom_set_video_mode( THOM_VMODE_80 ); - break; - case 0x7b: thom_set_video_mode( THOM_VMODE_BITMAP16 ); break; - case 0x24: thom_set_video_mode( THOM_VMODE_PAGE1 ); break; - case 0x25: thom_set_video_mode( THOM_VMODE_PAGE2 ); break; - case 0x26: thom_set_video_mode( THOM_VMODE_OVERLAY ); break; - case 0x3f: thom_set_video_mode( THOM_VMODE_OVERLAY3 ); break; - default: - logerror( "to9_set_video_mode: unkown mode $%02X tr=%i phi=%i mod=%i\n", - data, (data >> 5) & 3, (data >> 3) & 2, data & 7 ); - } -} - - -READ8_HANDLER ( to9_vreg_r ) -{ - switch ( offset ) { - - case 0: /* palette data */ - { - UINT8 c = to9_palette_data[ to9_palette_idx ]; - to9_palette_idx = ( to9_palette_idx + 1 ) & 31; - return c; - } - - case 1: /* palette address */ - return to9_palette_idx; - - case 2: - case 3: - return 0; - - default: - logerror( "to9_vreg_r: invalid read offset %i\n", offset ); - return 0; - } -} - -WRITE8_HANDLER ( to9_vreg_w ) -{ -#if VERBOSE_VIDEO - logerror( "$%04x %f to9_vreg_w: off=%i ($%04X) data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xe7da + offset, data ); -#endif - - switch ( offset ) { - - case 0: /* palette data */ - { - UINT16 color, idx; - to9_palette_data[ to9_palette_idx ] = data; - idx = to9_palette_idx / 2; - color = to9_palette_data[ 2 * idx + 1 ]; - color = to9_palette_data[ 2 * idx ] | (color << 8); - thom_set_palette( idx ^ 8, color & 0x1fff ); - - to9_palette_idx = ( to9_palette_idx + 1 ) & 31; - } - break; - - case 1: /* palette address */ - to9_palette_idx = data & 31; - break; - - case 2: /* video mode */ - to9_set_video_mode( data, 0 ); - break; - - case 3: /* border color */ - thom_set_border_color( data & 15 ); - break; - - default: - logerror( "to9_vreg_w: invalid write offset %i data=$%02X\n", offset, data ); - } -} - -static void to9_palette_init ( void ) -{ - to9_palette_idx = 0; - memset( to9_palette_data, 0, sizeof( to9_palette_data ) ); - state_save_register_global( to9_palette_idx ); - state_save_register_global_array( to9_palette_data ); -} - - -/* ------------ RAM / ROM banking ------------ */ - -static UINT8 to9_soft_bank; - -static void to9_update_cart_bank ( void ) -{ - static int old_bank; - int bank = 0; - int slot = ( mc6846_get_output_port() >> 4 ) & 3; /* bits 4-5: ROM bank */ - - switch ( slot ) { - case 0: - /* BASIC (64 KB) */ - bank = 4 + to9_soft_bank; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to9_update_cart_bank: CART is BASIC bank %i\n", to9_soft_bank ); -#endif - break; - case 1: - /* software 1 (32 KB) */ - bank = 8 + (to9_soft_bank & 1); -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to9_update_cart_bank: CART is software 1 bank %i\n", to9_soft_bank ); -#endif - break; - case 2: - /* software 2 (32 KB) */ - bank = 10 + (to9_soft_bank & 1); -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to9_update_cart_bank: CART is software 2 bank %i\n", to9_soft_bank ); -#endif - break; - case 3: - /* external cartridge */ - if ( thom_cart_nb_banks ) bank = thom_cart_bank % thom_cart_nb_banks; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to9_update_cart_bank: CART is cartridge bank %i\n", - thom_cart_bank ); -#endif - break; - } - - memory_set_bank( THOM_CART_BANK, bank ); - old_bank = bank; -} - -/* write signal generates a bank switch */ -WRITE8_HANDLER ( to9_cartridge_w ) -{ - int slot = ( mc6846_get_output_port() >> 4 ) & 3; /* bits 4-5: ROM bank */ - if ( offset >= 0x2000 ) return; - if ( slot == 3 ) thom_cart_bank = offset & 3; - else to9_soft_bank = offset & 3; - to9_update_cart_bank(); -} - -static void to9_update_ram_bank ( void ) -{ - static int old_bank; - UINT8 port = mc6846_get_output_port(); - UINT8 portb = pia_get_output_b( THOM_PIA_SYS ); - UINT8 disk = ((port >> 2) & 1) | ((port >> 5) & 2); /* bits 6,2: RAM bank */ - int bank; - - switch ( portb & 0xf8 ) { - /* TO7/70 compatible */ - case 0xf0: bank = 0; break; - case 0xe8: bank = 1; break; - case 0x18: bank = 2; break; - case 0x98: bank = 3; break; - case 0x58: bank = 4; break; - case 0xd8: bank = 5; break; - /* 64 KB of virtual disk */ - case 0xf8: bank = 6 + disk ; break; - default: - logerror( "to9_update_ram_bank: unknown RAM bank pia=$%02X disk=%i\n", - portb & 0xf8, disk ); - return; - } - -#if VERBOSE_BANK - if ( old_bank != bank ) - logerror( "to9_update_ram_bank: bank %i selected (pia=$%02X disk=%i)\n", - bank, portb & 0xf8, disk ); -#endif - - memory_set_bank( THOM_RAM_BANK, bank ); - old_bank = bank; -} - - -/* ------------ keyboard (6850 ACIA + 6805 CPU) ------------ */ - -/* The 6805 chip scans the keyboard and sends ASCII codes to the 6909. - Data between the 6809 and 6805 is serialized at 9600 bauds. - On the 6809 side, a 6850 ACIA is used. - We do not emulate the seral line but pass bytes directly between the - keyboard and the 6850 registers. - Note that the keyboard protocol uses the parity bit as an extra data bit. -*/ - -/* normal mode: polling interval */ -#define TO9_KBD_POLL_PERIOD TIME_IN_MSEC( 10 ) - -/* peripherial mode: time between two bytes, and after last byte */ -#define TO9_KBD_BYTE_SPACE TIME_IN_MSEC( 0.3 ) -#define TO9_KBD_END_SPACE TIME_IN_MSEC( 9.1 ) - - -/* first and subsequent repeat periods, in TO9_KBD_POLL_PERIOD units */ -#define TO9_KBD_REPEAT_DELAY 80 /* 800 ms */ -#define TO9_KBD_REPEAT_PERIOD 7 /* 70 ms */ - - -static UINT8 to9_kbd_parity; /* 0=even, 1=odd, 2=no parity */ -static UINT8 to9_kbd_intr; /* interrupt mode */ -static UINT8 to9_kbd_in; /* data from keyboard */ -static UINT8 to9_kbd_status; /* status */ -static UINT8 to9_kbd_overrun; /* character lost */ - -static UINT8 to9_kbd_periph; /* peripherial mode */ -static UINT8 to9_kbd_byte_count; /* byte-count in peripherial mode */ -static UINT16 to9_mouse_x, to9_mouse_y; - -static UINT8 to9_kbd_last_key; /* for key repetition */ -static UINT16 to9_kbd_key_count; - -static UINT8 to9_kbd_caps; /* caps-lock */ -static UINT8 to9_kbd_pad; /* keypad outputs special codes */ - -static mame_timer* to9_kbd_timer; - - -/* quick keyboard scan */ -static int to9_kbd_ktest ( void ) -{ - int line, bit; - - for ( line = 0; line < 10; line++ ) { - UINT8 port = readinputport( THOM_INPUT_KEYBOARD + line ); - if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ - for ( bit = 0; bit < 8; bit++ ) - if ( ! (port & (1 << bit)) ) return 1; - } - return 0; -} - -static void to9_kbd_update_irq ( void ) -{ - if ( (to9_kbd_intr & 4) && (to9_kbd_status & ACIA_6850_RDRF) ) - to9_kbd_status |= ACIA_6850_irq; /* byte received interrupt */ - - if ( (to9_kbd_intr & 4) && (to9_kbd_status & ACIA_6850_OVRN) ) - to9_kbd_status |= ACIA_6850_irq; /* overrun interrupt */ - - if ( (to9_kbd_intr & 3) == 1 && (to9_kbd_status & ACIA_6850_TDRE) ) - to9_kbd_status |= ACIA_6850_irq; /* ready to transmit interrupt */ - - thom_irq_3( to9_kbd_status & ACIA_6850_irq ); -} - -READ8_HANDLER ( to9_kbd_r ) -{ - /* ACIA 6850 registers */ - - switch ( offset ) { - - case 0: /* get status */ - /* bit 0: data received */ - /* bit 1: ready to transmit data (always 1) */ - /* bit 2: data carrier detect (ignored) */ - /* bit 3: clear to send (ignored) */ - /* bit 4: framing error (ignored) */ - /* bit 5: overrun */ - /* bit 6: parity error */ - /* bit 7: interrupt */ -#if VERBOSE_KBD - logerror( "$%04x %f to9_kbd_r: status $%02X (rdrf=%i, tdre=%i, ovrn=%i, pe=%i, irq=%i)\n", - activecpu_get_previouspc(), timer_get_time(), to9_kbd_status, - (to9_kbd_status & ACIA_6850_RDRF) ? 1 : 0, - (to9_kbd_status & ACIA_6850_TDRE) ? 1 : 0, - (to9_kbd_status & ACIA_6850_OVRN) ? 1 : 0, - (to9_kbd_status & ACIA_6850_PE) ? 1 : 0, - (to9_kbd_status & ACIA_6850_irq) ? 1 : 0 ); -#endif - return to9_kbd_status; - - case 1: /* get input data */ - to9_kbd_status &= ~(ACIA_6850_irq | ACIA_6850_PE); - if ( to9_kbd_overrun ) to9_kbd_status |= ACIA_6850_OVRN; - else to9_kbd_status &= ~(ACIA_6850_OVRN | ACIA_6850_RDRF); - to9_kbd_overrun = 0; -#if VERBOSE_KBD - logerror( "$%04x %f to9_kbd_r: read data $%02X\n", - activecpu_get_previouspc(), timer_get_time(), to9_kbd_in ); -#endif - to9_kbd_update_irq(); - return to9_kbd_in; - - default: - logerror( "$%04x to9_kbd_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( to9_kbd_w ) -{ - /* ACIA 6850 registers */ - - switch ( offset ) { - - case 0: /* set control */ - /* bits 0-1: clock divide (ignored) or reset */ - if ( (data & 3) == 3 ) { - /* reset */ - to9_kbd_overrun = 0; - to9_kbd_status = ACIA_6850_TDRE; - to9_kbd_intr = 0; -#if VERBOSE_KBD - logerror( "$%04x %f to9_kbd_w: reset (data=$%02X)\n", - activecpu_get_previouspc(), timer_get_time(), data ); -#endif - } - else { - /* bits 2-4: parity */ - if ( (data & 0x18) == 0x10 ) to9_kbd_parity = 2; - else to9_kbd_parity = (data >> 2) & 1; - /* bits 5-6: interrupt on transmit */ - /* bit 7: interrupt on receive */ - to9_kbd_intr = data >> 5; -#if VERBOSE_KBD - logerror( "$%04x %f to9_kbd_w: set control to $%02X (parity=%i, intr in=%i out=%i)\n", - activecpu_get_previouspc(), timer_get_time(), - data, to9_kbd_parity, to9_kbd_intr >> 2, - (to9_kbd_intr & 3) ? 1 : 0 ); -#endif - } - to9_kbd_update_irq(); - break; - - case 1: /* output data */ - to9_kbd_status &= ~(ACIA_6850_irq | ACIA_6850_TDRE); - to9_kbd_update_irq(); - /* TODO: 1 ms delay here ? */ - to9_kbd_status |= ACIA_6850_TDRE; /* data transmit ready again */ - to9_kbd_update_irq(); - - switch ( data ) { - case 0xF8: - /* reset */ - to9_kbd_caps = 1; - to9_kbd_periph = 0; - to9_kbd_pad = 0; - break; - - case 0xF9: to9_kbd_caps = 1; break; - case 0xFA: to9_kbd_caps = 0; break; - case 0xFB: to9_kbd_pad = 1; break; - case 0xFC: to9_kbd_pad = 0; break; - case 0xFD: to9_kbd_periph = 1; break; - case 0xFE: to9_kbd_periph = 0; break; - - default: - logerror( "$%04x %f to9_kbd_w: unknown kbd command %02X\n", - activecpu_get_previouspc(), timer_get_time(), data ); - } - - thom_set_caps_led( ! to9_kbd_caps ); - - LOG(( "$%04x %f to9_kbd_w: kbd command %02X (caps=%i, pad=%i, periph=%i)\n", - activecpu_get_previouspc(), timer_get_time(), data, - to9_kbd_caps, to9_kbd_pad, to9_kbd_periph )); - - break; - - default: - logerror( "$%04x to9_kbd_w: invalid offset %i (data=$%02X) \n", - activecpu_get_previouspc(), offset, data ); - } -} - -/* send a key to the CPU, 8-bit + parity bit (0=even, 1=odd) - note: parity is not used as a checksum but to actually transmit a 9-th bit - of information! - */ -static void to9_kbd_send ( UINT8 data, int parity ) -{ - if ( to9_kbd_status & ACIA_6850_RDRF ) { - /* overrun will be set when the current valid byte is read */ - to9_kbd_overrun = 1; -#if VERBOSE_KBD - logerror( "%f to9_kbd_send: overrun => drop data=$%02X, parity=%i\n", - timer_get_time(), data, parity ); -#endif - } - else { - /* valid byte */ - to9_kbd_in = data; - parity ^= 1; /* ! */ - to9_kbd_status |= ACIA_6850_RDRF; /* raise data received flag */ - if ( to9_kbd_parity == 2 || to9_kbd_parity == parity ) - to9_kbd_status &= ~ACIA_6850_PE; /* parity OK */ - else - to9_kbd_status |= ACIA_6850_PE; /* parity error */ -#if VERBOSE_KBD - logerror( "%f to9_kbd_send: data=$%02X, parity=%i, status=$%02X\n", - timer_get_time(), data, parity, to9_kbd_status ); -#endif - } - to9_kbd_update_irq(); -} - -/* keycode => TO9 code (extended ASCII), shifted and un-shifted */ -static const int to9_kbd_code[80][2] = { - { 145, 150 }, { '_', '6' }, { 'Y', 'Y' }, { 'H', 'H' }, - { 11, 11 }, { 9, 9 }, { 30, 12 }, { 'N', 'N' }, - - { 146, 151 }, { '(', '5' }, { 'T', 'T' }, { 'G', 'G' }, - { '=', '+' }, { 8, 8 }, { 28, 28 }, { 'B', 'B' }, - - { 147, 152 }, { '\'', '4' }, { 'R', 'R' }, { 'F', 'F' }, - { 22, 22 }, { 155, 155 }, { 29, 127 }, { 'V', 'V' }, - - { 148, 153 }, { '"', '3' }, { 'E', 'E' }, { 'D', 'D' }, - { 161, 161 }, { 158, 158 }, - { 154, 154 }, { 'C', 'C' }, - - { 144, 149 }, { 128, '2' }, { 'Z', 'Z' }, { 'S', 'S' }, - { 162, 162 }, { 156, 156 }, - { 164, 164 }, { 'X', 'X' }, - - { '#', '@' }, { '*', '1' }, { 'A', 'A' }, { 'Q', 'Q' }, - { '[', '{' }, { 159, 159 }, { 160, 160 }, { 'W', 'W' }, - - { 2, 2 }, { 129, '7' }, { 'U', 'U' }, { 'J', 'J' }, - { ' ', ' ' }, { 163, 163 }, { 165, 165 }, - { ',', '?' }, - - { 0, 0 }, { '!', '8' }, { 'I', 'I' }, { 'K', 'K' }, - { '$', '&' }, { 10, 10 }, { ']', '}' }, { ';', '.' }, - - { 0, 0 }, { 130, '9' }, { 'O', 'O' }, { 'L', 'L' }, - { '-', '\\' }, { 132, '%' }, { 13, 13 }, { ':', '/' }, - - { 0, 0 }, { 131, '0' }, { 'P', 'P' }, { 'M', 'M' }, - { ')', 134 }, { '^', 133 }, { 157, 157 }, { '>', '<' } -}; - -/* returns the ASCII code for the key, or 0 for no key */ -static int to9_kbd_get_key( void ) -{ - int control = ! (readinputport( THOM_INPUT_KEYBOARD + 7 ) & 1); - int shift = ! (readinputport( THOM_INPUT_KEYBOARD + 9 ) & 1); - int key = -1, line, bit; - - for ( line = 0; line < 10; line++ ) { - UINT8 port = readinputport( THOM_INPUT_KEYBOARD + line ); - if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ - /* TODO: correct handling of simultaneous keystokes: - return the new key preferably & disable repeat - */ - for ( bit = 0; bit < 8; bit++ ) - if ( ! (port & (1 << bit)) ) - key = line * 8 + bit; - } - - if ( key == -1 ) { - to9_kbd_last_key = 0xff; - to9_kbd_key_count = 0; - return 0; - } - else if ( key == 64 ) { - /* caps lock */ - if ( to9_kbd_last_key == key ) return 0; /* no repeat */ - to9_kbd_last_key = key; - to9_kbd_caps = !to9_kbd_caps; - thom_set_caps_led( ! to9_kbd_caps ); - return 0; - } - else { - int asc; - asc = to9_kbd_code[key][shift]; - if ( ! asc ) return 0; - - /* keypad */ - if ( ! to9_kbd_pad ) { - if ( asc >= 154 && asc <= 163 ) asc += '0' - 154; - else if ( asc == 164 ) asc = '.'; - else if ( asc == 165 ) asc = 13; - } - - /* shifted letter */ - if ( asc >= 'A' && asc <= 'Z' && ( ! to9_kbd_caps ) && ( ! shift ) ) - asc += 'a' - 'A'; - - /* control */ - if ( control ) asc &= ~0x40; - - if ( key == to9_kbd_last_key ) { - /* repeat */ - to9_kbd_key_count++; - if ( to9_kbd_key_count < TO9_KBD_REPEAT_DELAY || - (to9_kbd_key_count - TO9_KBD_REPEAT_DELAY) % TO9_KBD_REPEAT_PERIOD ) - return 0; -#if VERBOSE_KBD - logerror( "to9_kbd_get_key: repeat key $%02X '%c'\n", asc, asc ); -#endif - return asc; - } - else { - to9_kbd_last_key = key; - to9_kbd_key_count = 0; -#if VERBOSE_KBD - logerror( "to9_kbd_get_key: key down $%02X '%c'\n", asc, asc ); -#endif - return asc; - } - } -} - -static void to9_kbd_timer_cb( int dummy ) -{ - if ( to9_kbd_periph ) { - /* peripherial mode: every 10 ms we send 4 bytes */ - int newx = readinputport( THOM_INPUT_GAME + 2 ); - int newy = readinputport( THOM_INPUT_GAME + 3 ); - - switch ( to9_kbd_byte_count ) { - - case 0: /* key */ - to9_kbd_send( to9_kbd_get_key(), 1 ); - break; - - case 1: /* x axis */ - to9_kbd_send( newx - to9_mouse_x, 0); - break; - - case 2: /* y axis */ - to9_kbd_send( newy - to9_mouse_y, 0); - break; - - case 3: /* axis overflow & buttons */ - { - int b = readinputport( THOM_INPUT_GAME + 4 ); - UINT8 data = 0; - if ( b & 1 ) data |= 1; - if ( b & 2 ) data |= 4; - to9_mouse_x = newx; - to9_mouse_y = newy; - to9_kbd_send( data, 0 ); - break; - } - } - - to9_kbd_byte_count = ( to9_kbd_byte_count + 1 ) & 3; - timer_adjust( to9_kbd_timer, - to9_kbd_byte_count ? TO9_KBD_BYTE_SPACE : TO9_KBD_END_SPACE, - 0, TIME_NEVER ); - } - else { - int key = to9_kbd_get_key(); - /* keyboard mode: send a byte only if a key is down */ - if ( key ) to9_kbd_send( key, 1 ); - timer_adjust( to9_kbd_timer, TO9_KBD_POLL_PERIOD, 0, TIME_NEVER ); - } -} - -static void to9_kbd_reset ( void ) -{ - LOG(( "to9_kbd_reset called\n" )); - to9_kbd_overrun = 0; /* no byte lost */ - to9_kbd_status = ACIA_6850_TDRE; /* clear to transmit */ - to9_kbd_intr = 0; /* interrupt disabled */ - to9_kbd_caps = 1; - to9_kbd_periph = 0; - to9_kbd_pad = 0; - to9_kbd_byte_count = 0; - thom_set_caps_led( ! to9_kbd_caps ); - to9_kbd_key_count = 0; - to9_kbd_last_key = 0xff; - to9_kbd_update_irq(); - timer_adjust( to9_kbd_timer, TO9_KBD_POLL_PERIOD, 0, TIME_NEVER ); -} - - -static void to9_kbd_init ( void ) -{ - LOG(( "to9_kbd_init called\n" )); - to9_kbd_timer = mame_timer_alloc( to9_kbd_timer_cb ); - state_save_register_global( to9_kbd_parity ); - state_save_register_global( to9_kbd_intr ); - state_save_register_global( to9_kbd_in ); - state_save_register_global( to9_kbd_status ); - state_save_register_global( to9_kbd_overrun ); - state_save_register_global( to9_kbd_last_key ); - state_save_register_global( to9_kbd_key_count ); - state_save_register_global( to9_kbd_caps ); - state_save_register_global( to9_kbd_periph ); - state_save_register_global( to9_kbd_pad ); - state_save_register_global( to9_kbd_byte_count ); - state_save_register_global( to9_mouse_x ); - state_save_register_global( to9_mouse_y ); -} - - -/* ------------ system PIA 6821 ------------ */ - -static void to9_update_centronics ( void ) -{ - UINT8 a = pia_get_output_a( THOM_PIA_SYS ); - UINT8 b = pia_get_output_b( THOM_PIA_SYS ); - UINT8 data = (a & 0xfe) | (b & 1); - centronics_write_data( 0, data ); - centronics_write_handshake( 0, (b & 2) ? CENTRONICS_STROBE : 0, - CENTRONICS_STROBE ); -#if VERBOSE_IO - logerror( "$%04x %f to9_update_centronics: data=$%02X strobe=%i\n", - activecpu_get_previouspc(), timer_get_time(), data, - (b & 2) ? 1 : 0 ); -#endif -} - -static READ8_HANDLER ( to9_sys_porta_in ) -{ - UINT8 ktest = to9_kbd_ktest(); -#if VERBOSE_KBD - logerror( "to9_sys_porta_in: ktest=%i\n", ktest ); -#endif - return ktest; -} - -static WRITE8_HANDLER ( to9_sys_porta_out ) -{ - to9_update_centronics(); /* bits 1-7: printer */ -} - -static WRITE8_HANDLER ( to9_sys_portb_out ) -{ - int to9_video_overlay = (data & 4) ? 1 : 0; /* bit 2: overlay, TODO */ - to9_update_centronics(); /* bits 0-1: printer */ - to9_update_ram_bank(); - if ( to9_video_overlay ) - logerror( "to9_sys_portb_out: overlay not handled\n" ); -} - -static const pia6821_interface to9_sys = { - to9_sys_porta_in, NULL, - NULL, NULL, NULL, NULL, - to9_sys_porta_out, to9_sys_portb_out, to7_set_cassette_motor, NULL, - thom_firq_1, thom_firq_1 -}; - -static CENTRONICS_CONFIG to9_centronics = { PRINTER_CENTRONICS, NULL }; - - -/* ------------ 6846 (timer, I/O) ------------ */ - -static WRITE8_HANDLER ( to9_timer_port_out ) -{ - thom_set_mode_point( data & 1 ); /* bit 0: video bank */ - to9_update_ram_bank(); - to9_update_cart_bank(); -} - -static const mc6846_interface to9_timer = { - to9_timer_port_out, NULL, to7_timer_cp2_out, - to7_timer_port_in, to7_timer_tco_out, - thom_irq_0 -}; - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( to9 ) -{ - LOG (( "to9: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mc6846_reset(); - to7_game_reset(); - to9_floppy_reset(); - to9_kbd_reset(); - thom_centronics_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mea8000_reset(); - - /* video */ - thom_set_video_mode( THOM_VMODE_TO9 ); - thom_set_lightpen_callback( 3, to7_lightpen_cb ); - thom_set_border_color( 8 ); - thom_set_mode_point( 0 ); - - /* bank selection PIA input float to 1 */ - pia_set_input_b( THOM_PIA_SYS, 0xf8 ); - - /* memory */ - to9_soft_bank = 0; - to9_update_cart_bank(); - to9_update_ram_bank(); - /* thom_cart_bank not reset */ - - /* lightpen */ - to7_lightpen = 0; -} - -MACHINE_START ( to9 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "to9: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &to9_sys ); - centronics_config( 0, &to9_centronics ); - mc6846_config( &to9_timer ); - to7_game_init(); - to9_floppy_init(); - to9_kbd_init(); - to9_palette_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_vram = mem + 0x68000; - thom_cart_bank = 0; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( THOM_CART_BANK, 0, 12, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_RAM_BANK, 0, 10, mem + 0x40000, 0x4000 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( to9_soft_bank ); - state_save_register_global_pointer( thom_vram, 0x2000 * 2 ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 4 ); - state_save_register_global_pointer( (mem + 0x40000), 0x4000 * 10 ); - - return 0; -} - - - -/***************************** TO8 *************************/ - -UINT8 to8_data_vpage; -UINT8 to8_cart_vpage; - -/* ------------ keyboard (6804) ------------ */ - -/* The 6804 chip scans the keyboard and sends keycodes to the 6809. - Data is serialized using variable pulse length encoding. - Unlike the TO9, there is no decoding chip on the 6809 side, only - 1-bit PIA ports (6821 & 6846). The 6809 does the decoding. - - We do not emulate the 6804 but pass serialized data directly through the - PIA ports. - - Note: if we conform to the (scarce) documentation the CPU tend to lock - waitting for keyboard input. - The protocol documentation is pretty scarce and does not account for these - behaviors! - The emulation code contains many hacks (delays, timeouts, spurious - pulses) to improve the stability. - This works well, but is not very accurate. -*/ - - -/* polling interval */ -#define TO8_KBD_POLL_PERIOD TIME_IN_MSEC( 1 ) - -/* first and subsequent repeat periods, in TO8_KBD_POLL_PERIOD units */ -#define TO8_KBD_REPEAT_DELAY 800 /* 800 ms */ -#define TO8_KBD_REPEAT_PERIOD 70 /* 70 ms */ - -/* timeout waiting for CPU */ -#define TO8_KBD_TIMEOUT TIME_IN_MSEC( 100 ) - -/* state */ -static UINT8 to8_kbd_ack; /* 1 = cpu inits / accepts transfers */ -static UINT16 to8_kbd_data; /* data to transmit */ -static UINT16 to8_kbd_step; /* transmission automaton state */ -static UINT8 to8_kbd_last_key; /* last key (for repetition) */ -static UINT32 to8_kbd_key_count; /* keypress time (for repetition) */ -static UINT8 to8_kbd_caps; /* caps lock */ - -static mame_timer* to8_kbd_timer; /* bit-send */ -static mame_timer* to8_kbd_signal; /* signal from CPU */ - - -/* quick keyboard scan */ -static int to8_kbd_ktest ( void ) -{ - int line, bit; - - if ( readinputport( THOM_INPUT_CONFIG ) & 2 ) return 0; /* disabled */ - - for ( line = 0; line < 10; line++ ) { - UINT8 port = readinputport( THOM_INPUT_KEYBOARD + line ); - if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ - for ( bit = 0; bit < 8; bit++ ) - if ( ! (port & (1 << bit)) ) return 1; - } - return 0; -} - - -/* keyboard scan & return keycode (or -1) */ -static int to8_kbd_get_key( void ) -{ - int control = (readinputport( THOM_INPUT_KEYBOARD + 7 ) & 1) ? 0 : 0x100; - int shift = (readinputport( THOM_INPUT_KEYBOARD + 9 ) & 1) ? 0 : 0x080; - int key = -1, line, bit; - - if ( readinputport( THOM_INPUT_CONFIG ) & 2 ) return -1; - - for ( line = 0; line < 10; line++ ) { - UINT8 port = readinputport( THOM_INPUT_KEYBOARD + line ); - if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ - /* TODO: correct handling of simultaneous keystokes: - return the new key preferably & disable repeat - */ - for ( bit = 0; bit < 8; bit++ ) - if ( ! (port & (1 << bit)) ) - key = line * 8 + bit; - } - - if ( key == -1 ) { - to8_kbd_last_key = 0xff; - to8_kbd_key_count = 0; - return -1; - } - else if ( key == 64 ) { - /* caps lock */ - if ( to8_kbd_last_key == key ) return -1; /* no repeat */ - to8_kbd_last_key = key; - to8_kbd_caps = !to8_kbd_caps; - if ( to8_kbd_caps ) key |= 0x080; /* auto-shift */ - thom_set_caps_led( ! to8_kbd_caps ); - return key; - } - else if ( key == to8_kbd_last_key ) { - /* repeat */ - to8_kbd_key_count++; - if ( to8_kbd_key_count < TO8_KBD_REPEAT_DELAY || - (to8_kbd_key_count - TO8_KBD_REPEAT_DELAY) % TO8_KBD_REPEAT_PERIOD ) - return -1; - return key | shift | control; - } - else { - to8_kbd_last_key = key; - to8_kbd_key_count = 0; - return key | shift | control; - } -} - - -/* step: - 0 = idle, key polling - 1 = wait for ack to go down (key to send) - 99-117 = key data transmit - 91-117 = signal - 255 = timeout - */ - -/* keyboard automaton */ -static void to8_kbd_timer_cb ( int dummy ) -{ - double d; - -#if VERBOSE_KBD - logerror( "%f to8_kbd_timer_cb: step=%i ack=%i data=$%03X\n", - timer_get_time(), to8_kbd_step, to8_kbd_ack, to8_kbd_data ); -#endif - - if( ! to8_kbd_step ) { - /* key polling */ - int k = to8_kbd_get_key(); - /* if not in transfer, send pulse from time to time - (helps avoiding CPU lock) - */ - if ( ! to8_kbd_ack ) mc6846_set_input_cp1( 0 ); - mc6846_set_input_cp1( 1 ); - if ( k == -1 ) d = TO8_KBD_POLL_PERIOD; - else { - /* got key! */ - #if VERBOSE_KBD - logerror( "to8_kbd_timer_cb: got key $%03X\n", k ); -#endif - to8_kbd_data = k; - to8_kbd_step = 1; - d = TIME_IN_USEC( 100 ); - } - } - else if ( to8_kbd_step == 255 ) { - /* timeout */ - to8_kbd_last_key = 0xff; - to8_kbd_key_count = 0; - to8_kbd_step = 0; - mc6846_set_input_cp1( 1 ); - d = TO8_KBD_POLL_PERIOD; - } - else if ( to8_kbd_step == 1 ) { - /* schedule timeout waiting for ack to go down */ - mc6846_set_input_cp1( 0 ); - to8_kbd_step = 255; - d = TO8_KBD_TIMEOUT; - } - else if ( to8_kbd_step == 117 ) { - /* schedule timeout waiting for ack to go up */ - mc6846_set_input_cp1( 0 ); - to8_kbd_step = 255; - d = TO8_KBD_TIMEOUT; - } - else if ( to8_kbd_step & 1 ) { - /* send silence between bits */ - mc6846_set_input_cp1( 0 ); - d = TIME_IN_USEC( 100 ); - to8_kbd_step++; - } - else { - /* send bit */ - int bpos = 8 - ( (to8_kbd_step - 100) / 2); - int bit = (to8_kbd_data >> bpos) & 1; - mc6846_set_input_cp1( 1 ); - d = TIME_IN_USEC( bit ? 56 : 38 ); - to8_kbd_step++; - } - timer_adjust( to8_kbd_timer, d, 0, TIME_NEVER ); -} - - -/* cpu <-> keyboard hand-check */ -static void to8_kbd_set_ack ( int data ) -{ - if ( data == to8_kbd_ack ) return; - to8_kbd_ack = data; - - if ( data ) { - double len = timer_timeelapsed( to8_kbd_signal ) * 1000. - 2.; -#if VERBOSE_KBD - logerror( "%f to8_kbd_set_ack: CPU end ack, len=%f\n", - timer_get_time(), len ); -#endif - if ( to8_kbd_data == 0xfff ) { - /* end signal from CPU */ - if ( len >= 0.6 && len <= 0.8 ) { - LOG (( "%f to8_kbd_set_ack: INIT signal\n", timer_get_time() )); - to8_kbd_last_key = 0xff; - to8_kbd_key_count = 0; - to8_kbd_caps = 1; - /* send back signal: TODO returned codes ? */ - to8_kbd_data = 0; - to8_kbd_step = 0; - timer_adjust( to8_kbd_timer, TIME_IN_MSEC( 1 ), 0, TIME_NEVER ); - } - else { - to8_kbd_step = 0; - timer_adjust( to8_kbd_timer, TO8_KBD_POLL_PERIOD, 0, TIME_NEVER ); - if ( len >= 1.2 && len <= 1.4 ) { - LOG (( "%f to8_kbd_set_ack: CAPS on signal\n", timer_get_time() )); - to8_kbd_caps = 1; - } - else if ( len >= 1.8 && len <= 2.0 ) { - LOG (( "%f to8_kbd_set_ack: CAPS off signal\n", timer_get_time() )); - to8_kbd_caps = 0; - } - } - thom_set_caps_led( ! to8_kbd_caps ); - } - else { - /* end key transmission */ - to8_kbd_step = 0; - timer_adjust( to8_kbd_timer, TO8_KBD_POLL_PERIOD, 0, TIME_NEVER ); - } - } - - else { - if ( to8_kbd_step == 255 ) { - /* CPU accepts key */ - to8_kbd_step = 99; - timer_adjust( to8_kbd_timer, TIME_IN_USEC( 400 ), 0, TIME_NEVER ); - } - else { - /* start signal from CPU */ - to8_kbd_data = 0xfff; - to8_kbd_step = 91; - timer_adjust( to8_kbd_timer, TIME_IN_USEC( 400 ), 0, TIME_NEVER ); - timer_adjust( to8_kbd_signal, TIME_NEVER, 0, TIME_NEVER ); - } -#if VERBOSE_KBD - logerror( "%f to8_kbd_set_ack: CPU ack, data=$%03X\n", timer_get_time(), - to8_kbd_data ); -#endif - } -} - -static void to8_kbd_reset ( void ) -{ - to8_kbd_last_key = 0xff; - to8_kbd_key_count = 0; - to8_kbd_step = 0; - to8_kbd_data = 0; - to8_kbd_ack = 1; - to8_kbd_caps = 1; - thom_set_caps_led( ! to8_kbd_caps ); - to8_kbd_timer_cb( 0 ); -} - -static void to8_kbd_init ( void ) -{ - to8_kbd_timer = mame_timer_alloc( to8_kbd_timer_cb ); - to8_kbd_signal = mame_timer_alloc( NULL ); - state_save_register_global( to8_kbd_ack ); - state_save_register_global( to8_kbd_data ); - state_save_register_global( to8_kbd_step ); - state_save_register_global( to8_kbd_last_key ); - state_save_register_global( to8_kbd_key_count ); - state_save_register_global( to8_kbd_caps ); -} - - -/* ------------ RAM / ROM banking ------------ */ - -static UINT8 to8_reg_ram; -static UINT8 to8_reg_cart; -static UINT8 to8_reg_sys1; -static UINT8 to8_reg_sys2; -static UINT8 to8_lightpen_intr; -static UINT8 to8_soft_select; -static UINT8 to8_soft_bank; - -static void to8_update_ram_bank ( void ) -{ - UINT8 bank = 0; - - if ( to8_reg_sys1 & 0x10 ) { - bank = to8_reg_ram & 31; -#if VERBOSE_BANK - if ( bank != to8_data_vpage ) - logerror( "to8_update_ram_bank: select bank %i (new style)\n", bank ); -#endif - } - else { - UINT8 portb = pia_get_output_b( THOM_PIA_SYS ); - switch ( portb & 0xf8 ) { - /* in compatibility mode, banks 5 and 6 are reversed wrt TO7/70 */ - case 0xf0: bank = 2; break; - case 0xe8: bank = 3; break; - case 0x18: bank = 4; break; - case 0x58: bank = 5; break; - case 0x98: bank = 6; break; - case 0xd8: bank = 7; break; - default: - logerror( "to8_update_ram_bank: unknown RAM bank=$%02X\n", portb & 0xf8 ); - } - #if VERBOSE_BANK - if ( bank != to8_data_vpage ) - logerror( "to8_update_ram_bank: select bank %i (old style)\n", bank ); -#endif - } - - /* due to adressing distortion, the 16 KB banked memory space is - split into two 8 KB spaces: - - 0xa000-0xbfff maps to 0x2000-0x3fff in 16 KB bank - - 0xc000-0xdfff maps to 0x0000-0x1fff in 16 KB bank - this is important if we map a bank that is also reachable by another, - undistorted space, such as cartridge, page 0 (video), or page 1 - */ - to8_data_vpage = bank; - memory_set_bank( TO8_DATA_LO, to8_data_vpage ); - memory_set_bank( TO8_DATA_HI, to8_data_vpage ); -} - -static void to8_update_cart_bank ( void ) -{ - static int old_bank; - int bank = 0; - - if ( to8_reg_cart & 0x20 ) { - /* RAM space */ - to8_cart_vpage = to8_reg_cart & 31; - bank = 8 + to8_cart_vpage; - thom_cart_write = - (to8_reg_cart & 0x40) ? THOM_CART_READ_WRITE : THOM_CART_READ_ONLY; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to8_update_cart_bank: CART is RAM bank %i (write-enable=%i)\n", - to8_cart_vpage, thom_cart_write == THOM_CART_READ_WRITE ); -#endif - } - else { - thom_cart_write = THOM_CART_WRITE_SWITCH; - if ( to8_soft_select ) { - /* internal software ROM space */ - bank = 4 + to8_soft_bank; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to8_update_cart_bank: CART is internal bank %i\n", - to8_soft_bank ); -#endif - } - else { - /* external cartridge ROM space */ - if ( thom_cart_nb_banks ) bank = thom_cart_bank % thom_cart_nb_banks; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "to8_update_cart_bank: CART is external cartridge bank %i\n", - thom_cart_bank ); -#endif - } - } - memory_set_bank( THOM_CART_BANK, bank ); - old_bank = bank; -} - -WRITE8_HANDLER ( to8_cartridge_w ) -{ - if ( thom_cart_write == THOM_CART_READ_ONLY ) return; - if ( thom_cart_write == THOM_CART_READ_WRITE ) to8_vcart_w( offset, data ); - else { - /* ROM bank switch */ - if ( offset >= 0x2000 ) return; - if ( to8_soft_select ) to8_soft_bank = offset & 3; - else thom_cart_bank = offset & 3; - to8_update_cart_bank(); - } -} - - -/* ------------ system gate-array ------------ */ - -#define TO8_LIGHTPEN_DECAL 16 - -READ8_HANDLER ( to8_gatearray_r ) -{ - struct thom_vsignal v = thom_get_vsignal(); - struct thom_vsignal l = - thom_get_lightpen_vsignal( TO8_LIGHTPEN_DECAL, to7_lightpen_step - 1, 6 ); - int count, inil, init, lt3; - UINT8 res; - count = to7_lightpen ? l.count : v.count; - inil = to7_lightpen ? l.inil : v.inil; - init = to7_lightpen ? l.init : v.init; - lt3 = to7_lightpen ? l.lt3 : v.lt3; - - switch ( offset ) { - - case 0: /* system 2 / lightpen register 1 */ - if ( to7_lightpen ) res = (count >> 8) & 0xff; - else res = to8_reg_sys2 & 0xf0; - break; - - case 1: /* ram register / lightpen register 2 */ - if ( to7_lightpen ) { - thom_firq_2( 0 ); - to8_lightpen_intr = 0; - res = count & 0xff; - } - else res = to8_reg_ram & 0x1f; - break; - - case 2: /* cartrige register / lightpen register 3 */ - if ( to7_lightpen ) res = (lt3 << 7) | (inil << 6); - else res = to8_reg_cart; - break; - - case 3: /* lightpen register 4 */ - res = - (v.init << 7) | (init << 6) | (v.inil << 5) | - (to8_lightpen_intr << 1) | to7_lightpen; - break; - - default: - logerror( "$%04x to8_gatearray_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - res = 0; - } - -#if VERBOSE_VIDEO - logerror( "$%04x %f to8_gatearray_r: off=%i ($%04X) res=$%02X lightpen=%i\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xe7e4 + offset, res, to7_lightpen ); -#endif - - return res; -} - -WRITE8_HANDLER ( to8_gatearray_w ) -{ -#if VERBOSE_VIDEO - logerror( "$%04x %f to8_gatearray_w: off=%i ($%04X) data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xe7e4 + offset, data ); -#endif - - switch ( offset ) { - - case 0: /* switch */ - to7_lightpen = data & 1; - break; - - case 1: /* ram register */ - if ( to8_reg_sys1 & 0x10 ) { - to8_reg_ram = data; - to8_update_ram_bank(); - } - break; - - case 2: /* cartridge register */ - to8_reg_cart = data; - to8_update_cart_bank(); - break; - - case 3: /* system register 1 */ - to8_reg_sys1 = data; - to8_update_ram_bank(); - to8_update_cart_bank(); - break; - - default: - logerror( "$%04x to8_gatearray_w: invalid offset %i (data=$%02X)\n", - activecpu_get_previouspc(), offset, data ); - } -} - - -/* ------------ video gate-array ------------ */ - -READ8_HANDLER ( to8_vreg_r ) -{ - switch ( offset ) { - - case 0: /* palette data */ - { - UINT8 c = to9_palette_data[ to9_palette_idx ]; - to9_palette_idx = ( to9_palette_idx + 1 ) & 31; - return c; - } - - case 1: /* palette address */ - return to9_palette_idx; - - case 2: - case 3: - return 0; - - default: - logerror( "to8_vreg_r: invalid read offset %i\n", offset ); - return 0; - } -} - -WRITE8_HANDLER ( to8_vreg_w ) -{ -#if VERBOSE_VIDEO - logerror( "$%04x %f to8_vreg_w: off=%i ($%04X) data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xe7da + offset, data ); -#endif - - switch ( offset ) { - - case 0: /* palette data */ - { - UINT16 color, idx; - to9_palette_data[ to9_palette_idx ] = data; - idx = to9_palette_idx / 2; - color = to9_palette_data[ 2 * idx + 1 ]; - color = to9_palette_data[ 2 * idx ] | (color << 8); - thom_set_palette( idx, color & 0x1fff ); - - to9_palette_idx = ( to9_palette_idx + 1 ) & 31; - } - break; - - case 1: /* palette address */ - to9_palette_idx = data & 31; - break; - - case 2: /* display register */ - to9_set_video_mode( data, 1 ); - break; - - case 3: /* system register 2 */ - to8_reg_sys2 = data; - thom_set_video_page( data >> 6 ); - thom_set_border_color( data & 15 ); - break; - - default: - logerror( "to8_vreg_w: invalid write offset %i data=$%02X\n", offset, data ); - } -} - - -/* ------------ system PIA 6821 ------------ */ - -static READ8_HANDLER ( to8_sys_porta_in ) -{ - int ktest = to8_kbd_ktest (); -#if VERBOSE_KBD - logerror( "$%04x %f: to8_sys_porta_in ktest=%i\n", - activecpu_get_previouspc(), timer_get_time(), ktest ); -#endif - return ktest; -} - -static WRITE8_HANDLER ( to8_sys_portb_out ) -{ - int to8_video_overlay = (data & 4) ? 1 : 0; /* bit 2: overlay, TODO */ - to9_update_centronics(); /* bits 0-1: printer */ - to8_update_ram_bank(); - if ( to8_video_overlay ) - logerror( "to8_sys_portb_out: overlay not handled\n" ); -} - -static const pia6821_interface to8_sys = { - to8_sys_porta_in, NULL, - NULL, NULL, NULL, NULL, - to9_sys_porta_out, to8_sys_portb_out, to7_set_cassette_motor, NULL, - NULL, NULL -}; - - -/* ------------ 6846 (timer, I/O) ------------ */ - -static READ8_HANDLER ( to8_timer_port_in ) -{ - int lightpen = (readinputport( THOM_INPUT_LIGHTPEN + 2 ) & 1) ? 2 : 0; - int cass = to7_get_cassette() ? 0x80 : 0; - int dtr = (centronics_read_handshake( 0 ) & CENTRONICS_NOT_BUSY) ? 0 : 0x40; - int lock = to8_kbd_caps ? 0 : 8; /* undocumented! */ - return lightpen | cass | dtr | lock; -} - -static WRITE8_HANDLER ( to8_timer_port_out ) -{ - int ack = (data & 0x20) ? 1 : 0; /* bit 5: keyboard ACK */ - int bios_bank = (data & 0x10) ? 1 : 0; /* bit 4: BIOS bank*/ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - memory_set_bank( TO8_FLOP_BANK, bios_bank ); - memory_set_bank( TO8_BIOS_BANK, bios_bank ); - to8_soft_select = (data & 0x04) ? 1 : 0; /* bit 2: internal ROM select */ - to8_update_cart_bank(); - to8_kbd_set_ack( ack ); -} - -static WRITE8_HANDLER ( to8_timer_cp2_out ) -{ - /* mute */ - to7_game_mute = data; - to7_game_sound_update(); -} - -static const mc6846_interface to8_timer = { - to8_timer_port_out, NULL, to8_timer_cp2_out, - to8_timer_port_in, to7_timer_tco_out, - thom_irq_0 -}; - - -/* ------------ lightpen ------------ */ - -/* direct connection to interrupt line instead of through a PIA */ -static void to8_lightpen_cb ( int step ) -{ - if ( ! to7_lightpen ) return; - thom_firq_2( 1 ); - to7_lightpen_step = step; - to8_lightpen_intr = 1; -} - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( to8 ) -{ - LOG (( "to8: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mc6846_reset(); - to7_game_reset(); - to8_floppy_reset(); - to8_kbd_reset(); - thom_centronics_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mea8000_reset(); - - /* gate-array */ - to7_lightpen = 0; - to8_reg_ram = 0; - to8_reg_cart = 0; - to8_reg_sys1 = 0; - to8_reg_sys2 = 0; - to8_lightpen_intr = 0; - to8_soft_select = 0; - - /* video */ - thom_set_video_mode( THOM_VMODE_TO770 ); - thom_set_lightpen_callback( 4, to8_lightpen_cb ); - thom_set_border_color( 0 ); - thom_set_mode_point( 0 ); - - /* bank selection PIA input float to 1 */ - pia_set_input_b( THOM_PIA_SYS, 0xf8 ); - - /* memory */ - to8_cart_vpage = 0; - to8_data_vpage = 0; - to8_soft_bank = 0; - to8_update_ram_bank(); - to8_update_cart_bank(); - memory_set_bank( TO8_FLOP_BANK, 0 ); - memory_set_bank( TO8_BIOS_BANK, 0 ); - /* thom_cart_bank not reset */ -} - -MACHINE_START ( to8 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "to8: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &to8_sys ); - centronics_config( 0, &to9_centronics ); - mc6846_config( &to8_timer ); - to7_game_init(); - to8_floppy_init(); - to8_kbd_init(); - to9_palette_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - thom_vram = mem + 0x30000; - memory_configure_bank( THOM_CART_BANK, 0, 40, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( TO8_SYS_LO, 0, 1, thom_vram + 0x6000, 0x4000 ); - memory_configure_bank( TO8_SYS_HI, 0, 1, thom_vram + 0x4000, 0x4000 ); - memory_configure_bank( TO8_DATA_LO, 0, 32, thom_vram + 0x2000, 0x4000 ); - memory_configure_bank( TO8_DATA_HI, 0, 32, thom_vram + 0x0000, 0x4000 ); - memory_configure_bank( TO8_FLOP_BANK, 0, 2, mem + 0xb0000, 0x2000 ); - memory_configure_bank( TO8_BIOS_BANK, 0, 2, mem + 0xb0800, 0x2000 ); - memory_set_bank( TO8_SYS_LO, 0 ); - memory_set_bank( TO8_SYS_HI, 0 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( to8_reg_ram ); - state_save_register_global( to8_reg_cart ); - state_save_register_global( to8_reg_sys1 ); - state_save_register_global( to8_reg_sys2 ); - state_save_register_global( to8_soft_select ); - state_save_register_global( to8_soft_bank ); - state_save_register_global( to8_lightpen_intr ); - state_save_register_global( to8_data_vpage ); - state_save_register_global( to8_cart_vpage ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 4 ); - state_save_register_global_pointer( (mem + 0x30000), 0x4000 * 32 ); - - return 0; -} - - - -/***************************** TO9+ *************************/ - -/* ------------ system PIA 6821 ------------ */ - -static const pia6821_interface to9p_sys = { - to9_sys_porta_in, NULL, - NULL, NULL, NULL, NULL, - to9_sys_porta_out, to8_sys_portb_out, to7_set_cassette_motor, NULL, - NULL, NULL -}; - - -/* ------------ 6846 (timer, I/O) ------------ */ - -static READ8_HANDLER ( to9p_timer_port_in ) -{ - int lightpen = (readinputport( THOM_INPUT_LIGHTPEN + 2 ) & 1) ? 2 : 0; - int cass = to7_get_cassette() ? 0x80 : 0; - int dtr = (centronics_read_handshake( 0 ) & CENTRONICS_NOT_BUSY) ? 0 : 0x40; - return lightpen | cass | dtr; -} - -static WRITE8_HANDLER ( to9p_timer_port_out ) -{ - int bios_bank = (data & 0x10) ? 1 : 0; /* bit 4: BIOS bank */ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - memory_set_bank( TO8_FLOP_BANK, bios_bank ); - memory_set_bank( TO8_BIOS_BANK, bios_bank ); - to8_soft_select = (data & 0x04) ? 1 : 0; /* bit 2: internal ROM select */ - to8_update_cart_bank(); -} - -static const mc6846_interface to9p_timer = { - to9p_timer_port_out, NULL, to8_timer_cp2_out, - to9p_timer_port_in, to7_timer_tco_out, - thom_irq_0 -}; - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( to9p ) -{ - LOG (( "to9p: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mc6846_reset(); - to7_game_reset(); - to8_floppy_reset(); - to9_kbd_reset(); - thom_centronics_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mea8000_reset(); - - /* gate-array */ - to7_lightpen = 0; - to8_reg_ram = 0; - to8_reg_cart = 0; - to8_reg_sys1 = 0; - to8_reg_sys2 = 0; - to8_lightpen_intr = 0; - to8_soft_select = 0; - - /* video */ - thom_set_video_mode( THOM_VMODE_TO770 ); - thom_set_lightpen_callback( 4, to8_lightpen_cb ); - thom_set_border_color( 0 ); - thom_set_mode_point( 0 ); - - /* bank selection PIA input float to 1 */ - pia_set_input_b( THOM_PIA_SYS, 0xf8 ); - - /* memory */ - to8_cart_vpage = 0; - to8_data_vpage = 0; - to8_soft_bank = 0; - to8_update_ram_bank(); - to8_update_cart_bank(); - memory_set_bank( TO8_FLOP_BANK, 0 ); - memory_set_bank( TO8_BIOS_BANK, 0 ); - /* thom_cart_bank not reset */ -} - -MACHINE_START ( to9p ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "to9p: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &to9p_sys ); - centronics_config( 0, &to9_centronics ); - mc6846_config( &to9p_timer ); - to7_game_init(); - to8_floppy_init(); - to9_kbd_init(); - to9_palette_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - thom_vram = mem + 0x30000; - memory_configure_bank( THOM_CART_BANK, 0, 40, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( TO8_SYS_LO, 0, 1, thom_vram + 0x6000, 0x4000 ); - memory_configure_bank( TO8_SYS_HI, 0, 1, thom_vram + 0x4000, 0x4000 ); - memory_configure_bank( TO8_DATA_LO, 0, 32, thom_vram + 0x2000, 0x4000 ); - memory_configure_bank( TO8_DATA_HI, 0, 32, thom_vram + 0x0000, 0x4000 ); - memory_configure_bank( TO8_FLOP_BANK, 0, 2, mem + 0xb0000, 0x2000 ); - memory_configure_bank( TO8_BIOS_BANK, 0, 2, mem + 0xb0800, 0x2000 ); - memory_set_bank( TO8_SYS_LO, 0 ); - memory_set_bank( TO8_SYS_HI, 0 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( to8_reg_ram ); - state_save_register_global( to8_reg_cart ); - state_save_register_global( to8_reg_sys1 ); - state_save_register_global( to8_reg_sys2 ); - state_save_register_global( to8_soft_select ); - state_save_register_global( to8_soft_bank ); - state_save_register_global( to8_lightpen_intr ); - state_save_register_global( to8_data_vpage ); - state_save_register_global( to8_cart_vpage ); - state_save_register_global_pointer( (mem + 0x10000), 0x4000 * 4 ); - state_save_register_global_pointer( (mem + 0x30000), 0x4000 * 32 ); - - return 0; -} - - -/****************** MO6 / Olivetti Prodest PC 128 *******************/ - - -/* ------------ RAM / ROM banking ------------ */ - -static void mo6_update_ram_bank ( void ) -{ - UINT8 bank = 0; - - if ( to8_reg_sys1 & 0x10 ) { - bank = to8_reg_ram & 7; /* 128 KB RAM only = 8 pages */ -#if VERBOSE_BANK - if ( bank != to8_data_vpage ) - logerror( "mo6_update_ram_bank: select bank %i (new style)\n", bank ); -#endif - } - to8_data_vpage = bank; - memory_set_bank( TO8_DATA_LO, to8_data_vpage ); - memory_set_bank( TO8_DATA_HI, to8_data_vpage ); -} - -static void mo6_update_cart_bank ( void ) -{ - int b = (pia_get_output_a( THOM_PIA_SYS ) >> 5) & 1; - static int old_bank; - int bank = 0; - - if ( ( ( to8_reg_sys1 & 0x40 ) && ( to8_reg_cart & 0x20 ) ) || - ( ! ( to8_reg_sys1 & 0x40 ) && ( mo5_reg_cart & 4 ) ) ) { - /* RAM space */ - if ( to8_reg_sys1 & 0x40 ) { - /* use a7e6 */ - to8_cart_vpage = to8_reg_cart & 7; /* 128 KB RAM only = 8 pages */ - bank = 8 + to8_cart_vpage; - thom_cart_write = - (to8_reg_cart & 0x40) ? THOM_CART_READ_WRITE : THOM_CART_READ_ONLY; - #if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo6_update_cart_bank: CART is RAM bank %i (write-enable=%i)\n", - to8_cart_vpage, thom_cart_write == THOM_CART_READ_WRITE ); -#endif - } - else if ( thom_cart_nb_banks == 4 ) { - /* "JANE"-style cartridge bank switching */ - bank = mo5_reg_cart & 3; - thom_cart_write = THOM_CART_READ_ONLY; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo6_update_cart_bank: CART is external cartridge bank %i (A7CB style)\n", - bank ); -#endif - } - else { - /* RAM from MO5 network extension */ - to8_cart_vpage = (mo5_reg_cart & 3) | 4; - bank = 8 + to8_cart_vpage; - thom_cart_write = - (mo5_reg_cart & 8) ? THOM_CART_READ_WRITE : THOM_CART_READ_ONLY; -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo6_update_cart_bank: CART is RAM bank %i (write-enable=%i) (MO5 compat.)\n", - to8_cart_vpage, thom_cart_write == THOM_CART_READ_WRITE ); -#endif - } - } - else { - /* ROM space */ - thom_cart_write = THOM_CART_READ_ONLY; - if ( to8_reg_sys2 & 0x20 ) { - /* internal ROM */ - if ( to8_reg_sys2 & 0x10) bank = b + 6; /* BASIC 128 */ - else bank = b + 4; /* BASIC 1 */ -#if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo6_update_cart_bank: CART is internal ROM bank %i\n", b ); -#endif - } - else { - /* cartridge */ - if ( thom_cart_nb_banks ) bank = thom_cart_bank % thom_cart_nb_banks; - #if VERBOSE_BANK - if ( bank != old_bank ) - logerror( "mo6_update_cart_bank: CART is external cartridge bank %i\n", - bank ); -#endif - } - } - - old_bank = bank; - memory_set_bank( THOM_CART_BANK, bank ); - memory_set_bank( TO8_BIOS_BANK, b ); -} - -WRITE8_HANDLER ( mo6_cartridge_w ) -{ - if ( thom_cart_write == THOM_CART_READ_WRITE ) to8_vcart_w( offset, data ); - else if ( thom_cart_write == THOM_CART_WRITE_SWITCH ) { - if ( offset >= 0x2000 ) return; - thom_cart_bank = offset & 3; - mo6_update_cart_bank(); - } -} - -WRITE8_HANDLER ( mo6_ext_w ) -{ - /* MO5 network extension compatible */ - mo5_reg_cart = data; - mo6_update_cart_bank(); -} - - -/* ------------ game 6821 PIA ------------ */ - -/* similar to SX 90-018, but with a gew differences: mute, printer */ - -static WRITE8_HANDLER ( mo6_game_porta_out ) -{ - /* centronics data */ - LOG (( "$%04x %f mo6_game_porta_out: CENTRONICS set data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), data )); - centronics_write_data( 0, data ); -} - -static READ8_HANDLER ( mo6_game_cb1_in ) -{ - int dtr = ( centronics_read_handshake( 0 ) & CENTRONICS_NOT_BUSY ) ? 0 : 1; - /* note: printer busy signal replaces button */ - LOG (( "$%04x %f mo6_game_cb1_in: CENTRONICS get dtr=%i\n", - activecpu_get_previouspc(), timer_get_time(), dtr )); - return dtr; -} - -static WRITE8_HANDLER ( mo6_game_cb2_out ) -{ - /* centronics strobe */ - LOG (( "$%04x %f mo6_game_cb2_out: CENTRONICS set strobe=%i\n", - activecpu_get_previouspc(), timer_get_time(), data )); - centronics_write_handshake( 0, data ? CENTRONICS_STROBE : 0, - CENTRONICS_STROBE ); -} - -static const pia6821_interface mo6_game = { - to7_game_porta_in, to7_game_portb_in, - NULL, mo6_game_cb1_in, NULL, NULL, - mo6_game_porta_out, to7_game_portb_out, NULL, mo6_game_cb2_out, - thom_irq_1, thom_irq_1 -}; - -static void mo6_game_update_cb ( int dummy ) -{ - /* unlike the TO8, CB1 & CB2 are not connected to buttons */ - if ( readinputport( THOM_INPUT_CONFIG ) & 1 ) { - UINT8 mouse = to7_get_mouse_signal(); - pia_set_input_ca1( THOM_PIA_GAME, mouse & 1 ); /* XA */ - pia_set_input_ca2( THOM_PIA_GAME, mouse & 2 ); /* YA */ - } - else { - /* joystick */ - UINT8 in = readinputport( THOM_INPUT_GAME ); - pia_set_input_ca1( THOM_PIA_GAME, in & 0x04 ); /* P1 action B */ - pia_set_input_ca2( THOM_PIA_GAME, in & 0x40 ); /* P1 action A */ - } -} - -static void mo6_game_init ( void ) -{ - LOG (( "mo6_game_init called\n" )); - pia_config( THOM_PIA_GAME, PIA_ALTERNATE_ORDERING, &mo6_game ); - to7_game_timer = mame_timer_alloc( mo6_game_update_cb ); - timer_adjust( to7_game_timer, TO7_GAME_POLL_PERIOD, 0, TO7_GAME_POLL_PERIOD ); - state_save_register_global( to7_game_sound ); -} - -static void mo6_game_reset ( void ) -{ - LOG (( "mo6_game_reset called\n" )); - pia_set_input_ca1( THOM_PIA_GAME, 0 ); - to7_game_sound = 0; - to7_game_mute = 0; - to7_game_sound_update(); -} - - -/* ------------ system PIA 6821 ------------ */ - -static READ8_HANDLER ( mo6_sys_porta_in ) -{ - return - (mo5_get_cassette() ? 0x80 : 0) | /* bit 7: cassette input */ - 8 | /* bit 3: kbd-line float up to 1 */ - ((readinputport( THOM_INPUT_LIGHTPEN + 2 ) & 1) ? 2 : 0); - /* bit 1: lightpen button */; -} - -static READ8_HANDLER ( mo6_sys_portb_in ) -{ - /* keyboard: 9 lines of 8 keys */ - UINT8 porta = pia_get_output_a( THOM_PIA_SYS ); - UINT8 portb = pia_get_output_b( THOM_PIA_SYS ); - int col = (portb >> 4) & 7; /* B bits 4-6: kbd column */ - int lin = (portb >> 1) & 7; /* B bits 1-3: kbd line */ - if ( ! (porta & 8) ) lin = 8; /* A bit 3: 9-th kbd line select */ - return - ( readinputport( THOM_INPUT_KEYBOARD + lin ) & (1 << col) ) - ? 0x80 : 0; /* bit 7: key up */ -} - -static WRITE8_HANDLER ( mo6_sys_porta_out ) -{ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - to7_game_mute = data & 4; /* bit 2: sound mute */ - thom_set_caps_led( (data & 16) ? 0 : 1 ) ; /* bit 4: keyboard led */ - mo5_set_cassette( (data & 0x40) ? 1 : 0 ); /* bit 6: cassette output */ - mo6_update_cart_bank(); /* bit 5: rom bank */ - to7_game_sound_update(); -} - -static WRITE8_HANDLER ( mo6_sys_portb_out ) -{ -#if !DISABLE_AUDIO - DAC_data_w( THOM_SOUND_BUZ, (data & 1) ? 0x80 : 0); /* bit 0: buzzer */ -#endif -} - -static const pia6821_interface mo6_sys = { - mo6_sys_porta_in, mo6_sys_portb_in, - NULL, NULL, NULL, NULL, - mo6_sys_porta_out, mo6_sys_portb_out, mo5_set_cassette_motor, NULL, - thom_firq_1, thom_irq_1 /* differs from TO */ -}; - - -/* ------------ system gate-array ------------ */ - -#define MO6_LIGHTPEN_DECAL 12 - -READ8_HANDLER ( mo6_gatearray_r ) -{ - struct thom_vsignal v = thom_get_vsignal(); - struct thom_vsignal l = - thom_get_lightpen_vsignal( MO6_LIGHTPEN_DECAL, to7_lightpen_step - 1, 6 ); - int count, inil, init, lt3; - UINT8 res; - count = to7_lightpen ? l.count : v.count; - inil = to7_lightpen ? l.inil : v.inil; - init = to7_lightpen ? l.init : v.init; - lt3 = to7_lightpen ? l.lt3 : v.lt3; - - switch ( offset ) { - - case 0: /* system 2 / lightpen register 1 */ - if ( to7_lightpen ) res = (count >> 8) & 0xff; - else res = to8_reg_sys2 & 0xf0; - break; - - case 1: /* ram register / lightpen register 2 */ - if ( to7_lightpen ) { - thom_firq_2( 0 ); - to8_lightpen_intr = 0; - res = count & 0xff; - } - else res = to8_reg_ram & 0x1f; - break; - - case 2: /* cartrige register / lightpen register 3 */ - if ( to7_lightpen ) res = (lt3 << 7) | (inil << 6); - else res = 0; - break; - - case 3: /* lightpen register 4 */ - res = - (v.init << 7) | (init << 6) | (v.inil << 5) | - (to8_lightpen_intr << 1) | to7_lightpen; - break; - - default: - logerror( "$%04x mo6_gatearray_r: invalid offset %i\n", - activecpu_get_previouspc(), offset ); - res = 0; - } - -#if VERBOSE_VIDEO - logerror( "$%04x %f mo6_gatearray_r: off=%i ($%04X) res=$%02X lightpen=%i\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xa7e4 + offset, res, to7_lightpen ); -#endif - - return res; -} - -WRITE8_HANDLER ( mo6_gatearray_w ) -{ -#if VERBOSE_VIDEO - logerror( "$%04x %f mo6_gatearray_w: off=%i ($%04X) data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xa7e4 + offset, data ); -#endif - - switch ( offset ) { - - case 0: /* switch */ - to7_lightpen = data & 1; - break; - - case 1: /* ram register */ - if ( to8_reg_sys1 & 0x10 ) { - to8_reg_ram = data; - mo6_update_ram_bank(); - } - break; - - case 2: /* cartridge register */ - to8_reg_cart = data; - mo6_update_cart_bank(); - break; - - case 3: /* system register 1 */ - to8_reg_sys1 = data; - mo6_update_ram_bank(); - mo6_update_cart_bank(); - break; - - default: - logerror( "$%04x mo6_gatearray_w: invalid offset %i (data=$%02X)\n", - activecpu_get_previouspc(), offset, data ); - } -} - - -/* ------------ video gate-array ------------ */ - -READ8_HANDLER ( mo6_vreg_r ) -{ - /* 0xa7dc from external floppy drive aliases the video gate-array */ - if ( ( offset == 3 ) && ( to8_reg_ram & 0x80 ) ) - return to7_floppy_r( 0xc ); - - switch ( offset ) { - - case 0: /* palette data */ - case 1: /* palette address */ - return to8_vreg_r( offset ); - - case 2: - case 3: - return 0; - - default: - logerror( "mo6_vreg_r: invalid read offset %i\n", offset ); - return 0; - } -} - -WRITE8_HANDLER ( mo6_vreg_w ) -{ -#if VERBOSE_VIDEO - logerror( "$%04x %f mo6_vreg_w: off=%i ($%04X) data=$%02X\n", - activecpu_get_previouspc(), timer_get_time(), - offset, 0xa7da + offset, data ); -#endif - - switch ( offset ) { - - case 0: /* palette data */ - case 1: /* palette address */ - to8_vreg_w( offset, data ); - return; - - case 2: /* display / external floppy register */ - if ( ( to8_reg_sys1 & 0x80 ) && ( to8_reg_ram & 0x80 ) ) - to7_floppy_w( 0xc, data ); - else to9_set_video_mode( data, 2 ); - break; - - case 3: /* system register 2 */ - to8_reg_sys2 = data; - thom_set_video_page( data >> 6 ); - thom_set_border_color( data & 15 ); - mo6_update_cart_bank(); - break; - - default: - logerror( "mo6_vreg_w: invalid write offset %i data=$%02X\n", - offset, data ); - } -} - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( mo6 ) -{ - LOG (( "mo6: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mo6_game_reset(); - to7_floppy_reset(); - thom_centronics_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mo5_init_timer(); - mea8000_reset(); - - /* gate-array */ - to7_lightpen = 0; - to8_reg_ram = 0; - to8_reg_cart = 0; - to8_reg_sys1 = 0; - to8_reg_sys2 = 0; - to8_lightpen_intr = 0; - - /* video */ - thom_set_video_mode( THOM_VMODE_MO5 ); - thom_set_lightpen_callback( 3, to8_lightpen_cb ); - thom_set_border_color( 0 ); - thom_set_mode_point( 0 ); - - /* memory */ - to8_cart_vpage = 0; - to8_data_vpage = 0; - mo6_update_ram_bank(); - mo6_update_cart_bank(); - /* mo5_reg_cart not reset */ - /* thom_cart_bank not reset */ -} - -MACHINE_START ( mo6 ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "mo6: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &mo6_sys ); - centronics_config( 0, &to9_centronics ); - mo6_game_init(); - to7_floppy_init( mem + 0x50000 ); - to9_palette_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mo5_periodic_timer = mame_timer_alloc( mo5_periodic_cb ); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - mo5_reg_cart = 0; - thom_vram = mem + 0x30000; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( TO8_SYS_LO, 0, 1, thom_vram + 0x6000, 0x4000 ); - memory_configure_bank( TO8_SYS_HI, 0, 1, thom_vram + 0x4000, 0x4000 ); - memory_configure_bank( TO8_DATA_LO, 0, 8, thom_vram + 0x2000, 0x4000 ); - memory_configure_bank( TO8_DATA_HI, 0, 8, thom_vram + 0x0000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 0, 4, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 4, 2, mem + 0x1f000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 6, 2, mem + 0x28000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 8, 8, thom_vram, 0x4000 ); - memory_configure_bank( TO8_BIOS_BANK, 0, 2, mem + 0x23000, 0x4000 ); - memory_set_bank( TO8_SYS_LO, 0 ); - memory_set_bank( TO8_SYS_HI, 0 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( to8_reg_ram ); - state_save_register_global( to8_reg_cart ); - state_save_register_global( to8_reg_sys1 ); - state_save_register_global( to8_reg_sys2 ); - state_save_register_global( to8_lightpen_intr ); - state_save_register_global( to8_data_vpage ); - state_save_register_global( to8_cart_vpage ); - state_save_register_global( mo5_reg_cart ); - state_save_register_global_pointer( (mem + 0x10000), 0x10000 ); - state_save_register_global_pointer( thom_vram, 0x4000 * 8 ); - - return 0; -} - - -/***************************** MO5 NR *************************/ - -/* ------------ network ( & external floppy) ------------ */ - -READ8_HANDLER ( mo5nr_net_r ) -{ - if ( to7_controller_type ) return to7_floppy_r ( offset ); - logerror( "$%04x %f mo5nr_net_r: read from reg %i\n", - activecpu_get_previouspc(), timer_get_time(), offset ); - if ( to7_controller_type ) return to7_floppy_r ( offset ); - return 0; -} - -WRITE8_HANDLER ( mo5nr_net_w ) -{ - if ( to7_controller_type ) to7_floppy_w ( offset, data ); - else - logerror( "$%04x %f mo5nr_net_w: write $%02X to reg %i\n", - activecpu_get_previouspc(), timer_get_time(), data, offset ); -} - - -/* ------------ printer ------------ */ - -/* Unlike the TO8, TO9, TO9+, MO6, the printer has its own ports and do not - go through the 6821 PIA. -*/ - -READ8_HANDLER ( mo5nr_prn_r ) -{ - switch ( offset ) { - - case 1: - return centronics_read_data( 0 ); - - case 3: - /* TODO: understand other bits */ - if ( centronics_read_handshake( 0 ) & CENTRONICS_NOT_BUSY ) return 0; - return 0x80; - - default: - logerror( "$%04x %f mo5nr_prn_r: unhandled read from reg %i\n", - activecpu_get_previouspc(), timer_get_time(), offset ); - return 0; - } -} - -WRITE8_HANDLER ( mo5nr_prn_w ) -{ - switch ( offset ) { - - case 1: - centronics_write_data( 0, data ); - break; - - case 3: - /* TODO: understand other bits */ - centronics_write_handshake( 0, ( data & 8 ) ? CENTRONICS_STROBE : 0, - CENTRONICS_STROBE ); - break; - - default: - logerror( "$%04x %f mo5nr_prn_w: unhandled to reg %i (data=$%02X)\n", - activecpu_get_previouspc(), timer_get_time(), offset, data ); - } -} - - -/* ------------ system PIA 6821 ------------ */ - -static READ8_HANDLER ( mo5nr_sys_portb_in ) -{ - /* keyboard: only 8 lines of 8 keys (MO6 has 9 lines) */ - UINT8 portb = pia_get_output_b( THOM_PIA_SYS ); - int col = (portb >> 4) & 7; /* B bits 4-6: kbd column */ - int lin = (portb >> 1) & 7; /* B bits 1-3: kbd line */ - return - ( readinputport( THOM_INPUT_KEYBOARD + lin ) & (1 << col) ) - ? 0x80 : 0; /* bit 7: key up */ -} - -static WRITE8_HANDLER ( mo5nr_sys_porta_out ) -{ - /* no keyboard LED */ - thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - to7_game_mute = data & 4; /* bit 2: sound mute */ - mo5_set_cassette( (data & 0x40) ? 1 : 0 ); /* bit 6: cassette output */ - mo6_update_cart_bank(); /* bit 5: rom bank */ - to7_game_sound_update(); -} - -static const pia6821_interface mo5nr_sys = { - mo6_sys_porta_in, mo5nr_sys_portb_in, - NULL, NULL, NULL, NULL, - mo5nr_sys_porta_out, mo6_sys_portb_out, mo5_set_cassette_motor, NULL, - thom_firq_1, thom_irq_1 /* differs from TO */ -}; - - -/* ------------ game 6821 PIA ------------ */ - -/* similar to the MO6, without the printer */ - -static const pia6821_interface mo5nr_game = { - to7_game_porta_in, to7_game_portb_in, - NULL, NULL, NULL, NULL, - mo6_game_porta_out, to7_game_portb_out, NULL, NULL, - thom_irq_1, thom_irq_1 -}; - -static void mo5nr_game_init ( void ) -{ - LOG (( "mo5nr_game_init called\n" )); - pia_config( THOM_PIA_GAME, PIA_ALTERNATE_ORDERING, &mo5nr_game ); - to7_game_timer = mame_timer_alloc( mo6_game_update_cb ); - timer_adjust( to7_game_timer, TO7_GAME_POLL_PERIOD, 0, TO7_GAME_POLL_PERIOD ); - state_save_register_global( to7_game_sound ); -} - -static void mo5nr_game_reset ( void ) -{ - LOG (( "mo5nr_game_reset called\n" )); - pia_set_input_ca1( THOM_PIA_GAME, 0 ); - to7_game_sound = 0; - to7_game_mute = 0; - to7_game_sound_update(); -} - - -/* ------------ init / reset ------------ */ - -MACHINE_RESET ( mo5nr ) -{ - LOG (( "mo5nr: machine reset called\n" )); - - /* subsystems */ - thom_irq_reset(); - pia_reset(); - mo5nr_game_reset(); - to7_floppy_reset(); - thom_centronics_reset(); - to7_modem_reset(); - to7_midi_reset(); - to7_rf57932_reset(); - mo5_init_timer(); - mea8000_reset(); - - /* gate-array */ - to7_lightpen = 0; - to8_reg_ram = 0; - to8_reg_cart = 0; - to8_reg_sys1 = 0; - to8_reg_sys2 = 0; - to8_lightpen_intr = 0; - - /* video */ - thom_set_video_mode( THOM_VMODE_MO5 ); - thom_set_lightpen_callback( 3, to8_lightpen_cb ); - thom_set_border_color( 0 ); - thom_set_mode_point( 0 ); - - /* memory */ - to8_cart_vpage = 0; - to8_data_vpage = 0; - mo6_update_ram_bank(); - mo6_update_cart_bank(); - /* mo5_reg_cart not reset */ - /* thom_cart_bank not reset */ -} - -MACHINE_START ( mo5nr ) -{ - UINT8* mem = memory_region(REGION_CPU1); - - LOG (( "mo5nr: machine start called\n" )); - - /* subsystems */ - thom_irq_init(); - pia_config( THOM_PIA_SYS, PIA_ALTERNATE_ORDERING, &mo5nr_sys ); - centronics_config( 0, &to9_centronics ); - mo5nr_game_init(); - to7_floppy_init( mem + 0x50000 ); - to9_palette_init(); - to7_modem_init(); - to7_midi_init(); - to7_rf57932_init(); - mo5_periodic_timer = mame_timer_alloc( mo5_periodic_cb ); - mea8000_config( THOM_SOUND_SPEECH, NULL ); - - /* memory */ - thom_cart_bank = 0; - mo5_reg_cart = 0; - thom_vram = mem + 0x30000; - memory_configure_bank( THOM_VRAM_BANK, 0, 2, thom_vram, 0x2000 ); - memory_configure_bank( TO8_SYS_LO, 0, 1, thom_vram + 0x6000, 0x4000 ); - memory_configure_bank( TO8_SYS_HI, 0, 1, thom_vram + 0x4000, 0x4000 ); - memory_configure_bank( TO8_DATA_LO, 0, 8, thom_vram + 0x2000, 0x4000 ); - memory_configure_bank( TO8_DATA_HI, 0, 8, thom_vram + 0x0000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 0, 4, mem + 0x10000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 4, 2, mem + 0x1f000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 6, 2, mem + 0x28000, 0x4000 ); - memory_configure_bank( THOM_CART_BANK, 8, 8, thom_vram, 0x4000 ); - memory_configure_bank( TO8_BIOS_BANK, 0, 2, mem + 0x23000, 0x4000 ); - memory_set_bank( TO8_SYS_LO, 0 ); - memory_set_bank( TO8_SYS_HI, 0 ); - - /* save-state */ - state_save_register_global( thom_cart_nb_banks ); - state_save_register_global( thom_cart_bank ); - state_save_register_global( thom_cart_write ); - state_save_register_global( to7_lightpen ); - state_save_register_global( to7_lightpen_step ); - state_save_register_global( to8_reg_ram ); - state_save_register_global( to8_reg_cart ); - state_save_register_global( to8_reg_sys1 ); - state_save_register_global( to8_reg_sys2 ); - state_save_register_global( to8_lightpen_intr ); - state_save_register_global( to8_data_vpage ); - state_save_register_global( to8_cart_vpage ); - state_save_register_global( mo5_reg_cart ); - state_save_register_global_pointer( (mem + 0x10000), 0x10000 ); - state_save_register_global_pointer( thom_vram, 0x4000 * 8 ); - - return 0; -} diff --git a/mess/machine/ti99_4x.c b/mess/machine/ti99_4x.c deleted file mode 100644 index aeeb89a53..000000000 --- a/mess/machine/ti99_4x.c +++ /dev/null @@ -1,3218 +0,0 @@ -/* - Machine code for TI99/4, TI-99/4A, TI-99/8, and SNUG SGCPU (a.k.a. 99/4P). - Raphael Nabet, 1999-2003. - Some code was originally derived from Ed Swartz's V9T9. - - References: - * The TI-99/4A Tech Pages. Great site with complete technical description - of the TI99/4a. - - * ftp.whtech.com has schematics and hardware documentations. The documents - of most general interest are: - - - Schematics for various extension cards are available in the same directory. - * V9T9 source code. This older emulator was often fairly accurate. - * Harald Glaab's site has software and documentation for the various SNUG - cards: 99/4P (nicknamed "SGCPU"), EVPC, BwG. - - * The TI-99/4 CPU ROM is the only source of information for the IR remote - handset controller protocol. I have written a document that explains - this protocol. - * TI-99/8 ROM source code (6 PC99 disk images): - - ... - - * TI-99/8 schematics. This is a valuable source of information, BUT the - schematics describe an early prototype (no Extended Basic, etc.). - - I have written an index for the signals on these schematics. - -Emulated: - * All TI99 basic console hardware, except a few tricks in TMS9901 emulation. - * Cartridges with ROM (either non-paged or paged), RAM (minimemory) and - GROM. Supercart and MBX support are not finished. - * Speech Synthesizer, with standard speech ROM (no speech ROM expansion). - * Disk emulation (SSSD disk images with TI fdc, both SSSD and DSDD with - SNUG's BwG and HFDC fdcs). - * Hard disk (HFDC and IDE). - * Mechatronics mouse. - - Compatibility looks quite good. - -Issues: - * floppy disk timings are not emulated (general issue) - -TODO: - * support for other peripherals and DSRs as documentation permits - * implement the EVPC palette chip - * finish 99/4p support: ROM6, HSGPL (implemented, but not fully debugged) - * save minimemory contents -*/ - -#include -#include "driver.h" -#include "tms9901.h" -#include "vidhrdw/tms9928a.h" -#include "vidhrdw/v9938.h" -#include "sndhrdw/spchroms.h" -#include "devices/cassette.h" -#include "ti99_4x.h" -#include "99_peb.h" -#include "994x_ser.h" -#include "99_dsk.h" -#include "99_ide.h" -#include "99_hsgpl.h" -#include "99_usbsm.h" - -#include "sound/tms5220.h" /* for tms5220_set_variant() */ -#include "sound/5220intf.h" -#include "sound/sn76496.h" - -#include "devices/harddriv.h" /* for device_init_mess_hd() */ -#include "smc92x4.h" /* for smc92x4_hd_load()/smc92x4_hd_unload() */ - - -/* prototypes */ -static READ16_HANDLER ( ti99_rspeech_r ); -static WRITE16_HANDLER ( ti99_wspeech_w ); - -static void tms9901_set_int1(int state); -static void tms9901_interrupt_callback(int intreq, int ic); -static int ti99_R9901_0(int offset); -static int ti99_R9901_1(int offset); -static int ti99_R9901_2(int offset); -static int ti99_R9901_3(int offset); - -static void ti99_handset_set_ack(int offset, int data); -static void ti99_handset_task(void); -static void mecmouse_poll(void); -static void ti99_KeyC(int offset, int data); -static void ti99_AlphaW(int offset, int data); - -static int ti99_8_R9901_0(int offset); -static int ti99_8_R9901_1(int offset); -static void ti99_8_KeyC(int offset, int data); -static void ti99_8_WCRUS(int offset, int data); -static void ti99_8_PTGEN(int offset, int data); - -static void ti99_CS_motor(int offset, int data); -static void ti99_audio_gate(int offset, int data); -static void ti99_CS_output(int offset, int data); - -static void ti99_8_internal_dsr_init(void); - -static void ti99_4p_internal_dsr_init(void); -static void ti99_TIxram_init(void); -static void ti99_sAMSxram_init(void); -static void ti99_4p_mapper_init(void); -static void ti99_myarcxram_init(void); -static void ti99_evpc_init(void); - -/* - pointer to extended RAM area -*/ -static UINT16 *xRAM_ptr; - -/* - Configuration -*/ -/* model of ti99 in emulation */ -static enum -{ - model_99_4, - model_99_4a, - model_99_8, - model_99_4p -} ti99_model; -/* memory extension type */ -static xRAM_kind_t xRAM_kind; -/* TRUE if speech synthesizer present */ -static char has_speech; -/* floppy disk controller type */ -static fdc_kind_t fdc_kind; -/* TRUE if ide card present */ -static char has_ide; -/* TRUE if evpc card present */ -static char has_evpc; -/* TRUE if rs232 card present */ -static char has_rs232; -/* TRUE if ti99/4 IR remote handset present */ -static char has_handset; -/* TRUE if hsgpl card present */ -static char has_hsgpl; -/* TRUE if mechatronics mouse present */ -static char has_mecmouse; -/* TRUE if usb-sm card present */ -static char has_usb_sm; - - -/* tms9901 setup */ -static const tms9901reset_param tms9901reset_param_ti99_4x = -{ - TMS9901_INT1 | TMS9901_INT2 | TMS9901_INTC, /* only input pins whose state is always known */ - - { /* read handlers */ - ti99_R9901_0, - ti99_R9901_1, - ti99_R9901_2, - ti99_R9901_3 - }, - - { /* write handlers */ - ti99_handset_set_ack, - NULL, - ti99_KeyC, - ti99_KeyC, - ti99_KeyC, - ti99_AlphaW, - ti99_CS_motor, - ti99_CS_motor, - ti99_audio_gate, - ti99_CS_output, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }, - - /* interrupt handler */ - tms9901_interrupt_callback, - - /* clock rate = 3MHz */ - 3000000. -}; - -static const tms9901reset_param tms9901reset_param_ti99_8 = -{ - TMS9901_INT1 | TMS9901_INT2 | TMS9901_INTC, /* only input pins whose state is always known */ - - { /* read handlers */ - ti99_8_R9901_0, - ti99_8_R9901_1, - ti99_R9901_2, - ti99_R9901_3 - }, - - { /* write handlers */ - ti99_8_KeyC, - ti99_8_KeyC, - ti99_8_KeyC, - ti99_8_KeyC, - ti99_8_WCRUS, - ti99_8_PTGEN, - ti99_CS_motor, - NULL, - ti99_audio_gate, - ti99_CS_output, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }, - - /* interrupt handler */ - tms9901_interrupt_callback, - - /* clock rate = 3.58MHz??? 2.68MHz??? */ - /*3579545.*/2684658.75 -}; - -/* handset interface */ -static int handset_buf; -static int handset_buflen; -static int handset_clock; -static int handset_ack; -enum -{ - max_handsets = 4 -}; - -/* mechatronics */ -static int mecmouse_sel; -static int mecmouse_read_y; -static int mecmouse_x, mecmouse_y; -static int mecmouse_x_buf, mecmouse_y_buf; - -/* keyboard interface */ -static int KeyCol; -static int AlphaLockLine; - -/* - GROM support. - -In short: - - TI99/4x hardware supports GROMs. GROMs are slow ROM devices, which are - interfaced via a 8-bit data bus, and include an internal address pointer - which is incremented after each read. This implies that accesses are - faster when reading consecutive bytes, although the address pointer can be - read and written at any time. - - They are generally used to store programs in GPL (Graphic Programming - Language: a proprietary, interpreted language - the interpreter takes most - of a TI99/4(a) CPU ROMs). They can used to store large pieces of data, - too. - - Both TI-99/4 and TI-99/4a include three GROMs, with some start-up code, - system routines and TI-Basic. TI99/4 includes an additional Equation - Editor. According to the preliminary schematics found on ftp.whtech.com, - TI-99/8 includes the three standard GROMs and 16 GROMs for the UCSD - p-system. TI99/2 does not include GROMs at all, and was not designed to - support any, although it should be relatively easy to create an expansion - card with the GPL interpreter and a /4a cartridge port. - -The simple way: - - Each GROM is logically 8kb long. - - Communication with GROM is done with 4 memory-mapped locations. You can read or write - a 16-bit address pointer, and read data from GROMs. One register allows to write data, too, - which would support some GRAMs, but AFAIK TI never built such GRAMs (although docs from TI - do refer to this possibility). - - Since address are 16-bit long, you can have up to 8 GROMs. So, a cartridge may - include up to 5 GROMs. (Actually, there is a way more GROMs can be used - see below...) - - The address pointer is incremented after each GROM operation, but it will always remain - within the bounds of the currently selected GROM (e.g. after 0x3fff comes 0x2000). - -Some details: - - Original TI-built GROM are 6kb long, but take 8kb in address space. The extra 2kb can be - read, and follow the following formula: - GROM[0x1800+offset] = GROM[0x0800+offset] | GROM[0x1000+offset]; - (sounds like address decoding is incomplete - we are lucky we don't burn any silicon when - doing so...) - - Needless to say, some hackers simulated 8kb GRAMs and GROMs with normal RAM/PROM chips and - glue logic. - -GPL ports: - - When accessing the GROMs registers, 8 address bits (cpu_addr & 0x03FC) may - be used as a port number, which permits the use of up to 256 independant - GROM ports, with 64kb of address space in each. TI99/4(a) ROMs can take - advantage of the first 16 ports: it will look for GPL programs in every - GROM of the 16 first ports. Additionally, while the other 240 ports cannot - contain standard GROMs with GPL code, they may still contain custom GROMs - with data. - - Note, however, that the TI99/4(a) console does not decode the page number, so console GROMs - occupy the first 24kb of EVERY port, and cartridge GROMs occupy the next 40kb of EVERY port - (with the exception of one demonstration from TI that implements several distinct ports). - (Note that the TI99/8 console does have the required decoder.) Fortunately, GROM drivers - have a relatively high impedance, and therefore extension cards can use TTL drivers to impose - another value on the data bus with no risk of burning the console GROMs. This hack permits - the addition of additionnal GROMs in other ports, with the only side effect that whenever - the address pointer in port N is altered, the address pointer of console GROMs in port 0 - is altered, too. Overriding the system GROMs with custom code is possible, too (some hackers - have done so), but I would not recommended it, as connecting such a device to a TI99/8 might - burn some drivers. - - The p-code card (-> UCSD Pascal system) contains 8 GROMs, all in port 16. This port is not - in the range recognized by the TI ROMs (0-15), and therefore it is used by the p-code DSR ROMs - as custom data. Additionally, some hackers used the extra ports to implement "GRAM" devices. -*/ -/* GROM_port_t: descriptor for a port of 8 GROMs */ -typedef struct GROM_port_t -{ - /* pointer to GROM data */ - UINT8 *data_ptr; - /* current address pointer for the active GROM in port (16 bits) */ - unsigned int addr; - /* GROM data buffer */ - UINT8 buf; - /* internal flip-flops that are set after the first access to the GROM - address so that next access is mapped to the LSB, and cleared after each - data access */ - char raddr_LSB, waddr_LSB; -} GROM_port_t; - -/* descriptor for console GROMs */ -GROM_port_t console_GROMs; - -/* true if hsgpl is enabled (i.e. has_hsgpl is true and hsgpl cru bit crdena is -set) */ -static char hsgpl_crdena; - -/* - Cartridge support -*/ -/* pointer on two 8kb cartridge pages */ -static UINT16 *cartridge_pages[2] = {NULL, NULL}; -static UINT8 *cartridge_pages_8[2] = {NULL, NULL}; -/* flag: TRUE if the cartridge is minimemory (4kb of battery-backed SRAM in 0x5000-0x5fff) */ -static char cartridge_minimemory = FALSE; -/* flag: TRUE if the cartridge is paged */ -static char cartridge_paged = FALSE; -/* flag: TRUE if the cartridge is MBX-style */ -static char cartridge_mbx = FALSE; -/* flag on the data for the current page (cartridge_pages[0] if cartridge is not paged) */ -static UINT16 *current_page_ptr; -static UINT8 *current_page_ptr_8; -/* keep track of cart file types - required for cleanup... */ -typedef enum slot_type_t { SLOT_EMPTY = -1, SLOT_GROM = 0, SLOT_CROM = 1, SLOT_DROM = 2, SLOT_MINIMEM = 3, SLOT_MBX = 4 } slot_type_t; -static slot_type_t slot_type[3] = { SLOT_EMPTY, SLOT_EMPTY, SLOT_EMPTY}; - -/* true if 99/4p rom6 is enabled */ -static int ti99_4p_internal_rom6_enable; -/* pointer to the ROM6 data */ -static UINT16 *ti99_4p_internal_ROM6; - - -/* ti99/8 hardware */ -static UINT8 ti99_8_CRUS; - -static UINT32 ti99_8_mapper_regs[16]; -static UINT8 ti99_8_mapper_status; -enum -{ - ms_WPE = 0x80, /* Write-Protect Error */ - ms_XCE = 0x40, /* eXeCute Error */ - ms_RPE = 0x20 /* Read-Protect Error */ -}; - -static UINT8 *xRAM_ptr_8; -static UINT8 *ROM0_ptr_8; -static UINT8 *ROM1_ptr_8; -static UINT8 *ROM2_ptr_8; -static UINT8 *ROM3_ptr_8; -static UINT8 *sRAM_ptr_8; - -/* tms9900_ICount: used to implement memory waitstates (hack) */ -/* tms9995_ICount: used to implement memory waitstates (hack) */ -/* NPW 23-Feb-2004 - externs no longer needed because we now use activecpu_adjust_icount() */ - - - -/*===========================================================================*/ -/* - General purpose code: - initialization, cart loading, etc. -*/ - -DRIVER_INIT( ti99_4 ) -{ - int i, j; - - - ti99_model = model_99_4; - has_evpc = FALSE; - - /* set up memory pointers */ - xRAM_ptr = (UINT16 *) (memory_region(REGION_CPU1) + offset_xram); - console_GROMs.data_ptr = memory_region(region_grom); - - /* Generate missing chunk of each console GROMs */ - for (i=0; i<2; i++) - for (j=0; j<0x800; j++) - { - console_GROMs.data_ptr[0x2000*i+0x1800+j] = console_GROMs.data_ptr[0x2000*i+0x0800+j] - | console_GROMs.data_ptr[0x2000*i+0x1000+j]; - } -} - -DRIVER_INIT( ti99_4a ) -{ - ti99_model = model_99_4a; - has_evpc = FALSE; - - /* set up memory pointers */ - xRAM_ptr = (UINT16 *) (memory_region(REGION_CPU1) + offset_xram); - console_GROMs.data_ptr = memory_region(region_grom); -} - -DRIVER_INIT( ti99_4ev ) -{ - ti99_model = model_99_4a; - has_evpc = TRUE; - - /* set up memory pointers */ - xRAM_ptr = (UINT16 *) (memory_region(REGION_CPU1) + offset_xram); - cartridge_pages[0] = (UINT16 *) (memory_region(REGION_CPU1)+offset_cart); - cartridge_pages[1] = (UINT16 *) (memory_region(REGION_CPU1)+offset_cart + 0x2000); - console_GROMs.data_ptr = memory_region(region_grom); -} - -DRIVER_INIT( ti99_8 ) -{ - ti99_model = model_99_8; - has_evpc = FALSE; - - /* set up memory pointers */ - xRAM_ptr_8 = memory_region(REGION_CPU1) + offset_xram_8; - ROM0_ptr_8 = memory_region(REGION_CPU1) + offset_rom0_8; - ROM1_ptr_8 = ROM0_ptr_8 + 0x2000; - ROM2_ptr_8 = ROM1_ptr_8 + 0x2000; - ROM3_ptr_8 = ROM2_ptr_8 + 0x2000; - sRAM_ptr_8 = memory_region(REGION_CPU1) + offset_sram_8; - - cartridge_pages_8[0] = memory_region(REGION_CPU1)+offset_cart_8; - cartridge_pages_8[1] = memory_region(REGION_CPU1)+offset_cart_8 + 0x2000; - console_GROMs.data_ptr = memory_region(region_grom); -} - -DRIVER_INIT( ti99_4p ) -{ - ti99_model = model_99_4p; - has_evpc = TRUE; - - /* set up memory pointers */ - xRAM_ptr = (UINT16 *) (memory_region(REGION_CPU1) + offset_xram_4p); - /*console_GROMs.data_ptr = memory_region(region_grom);*/ -} - -DEVICE_INIT( ti99_cart ) -{ - int id = image_index_in_device(image); - cartridge_pages[id] = (UINT16 *) (memory_region(REGION_CPU1) + offset_cart + (id * 0x2000)); - return INIT_PASS; -} - -/* - Load ROM. All files are in raw binary format. - 1st ROM: GROM (up to 40kb) - 2nd ROM: CPU ROM (8kb) - 3rd ROM: CPU ROM, 2nd page (8kb) - - We don't need to support 99/4p, as it has no cartridge port. -*/ -DEVICE_LOAD( ti99_cart ) -{ - /* Trick - we identify file types according to their extension */ - /* Note that if we do not recognize the extension, we revert to the slot location <-> type - scheme. I do this because the extension concept is quite unfamiliar to mac people - (I am dead serious). */ - /* Original idea by Norberto Bensa */ - const char *name = image_filename(image); - const char *ch, *ch2; - int id = image_index_in_device(image); - int i; - slot_type_t type = (slot_type_t) id; - - /* There is a circuitry in TI99/4(a) that resets the console when a - cartridge is inserted or removed. We emulate this instead of resetting the - emulator (which is the default in MESS). */ - /*cpunum_set_input_line(0, INPUT_LINE_RESET, PULSE_LINE); - tms9901_reset(0); - if (! has_evpc) - TMS9928A_reset(); - if (has_evpc) - v9938_reset();*/ - - ch = strrchr(name, '.'); - ch2 = (ch-1 >= name) ? ch-1 : ""; - - if (ch) - { - if ((! mame_stricmp(ch2, "g.bin")) || (! mame_stricmp(ch, ".grom")) || (! mame_stricmp(ch, ".g"))) - { - /* grom */ - type = SLOT_GROM; - } - else if ((! mame_stricmp(ch2, "c.bin")) || (! mame_stricmp(ch, ".crom")) || (! mame_stricmp(ch, ".c"))) - { - /* rom first page */ - type = SLOT_CROM; - } - else if ((! mame_stricmp(ch2, "d.bin")) || (! mame_stricmp(ch, ".drom")) || (! mame_stricmp(ch, ".d"))) - { - /* rom second page */ - type = SLOT_DROM; - } - else if ((! mame_stricmp(ch2, "m.bin")) || (! mame_stricmp(ch, ".mrom")) || (! mame_stricmp(ch, ".m"))) - { - /* rom minimemory */ - type = SLOT_MINIMEM; - } - else if ((! mame_stricmp(ch2, "b.bin")) || (! mame_stricmp(ch, ".brom")) || (! mame_stricmp(ch, ".b"))) - { - /* rom MBX */ - type = SLOT_MBX; - } - } - - slot_type[id] = type; - - switch (type) - { - case SLOT_EMPTY: - break; - - case SLOT_GROM: - image_fread(image, memory_region(region_grom) + 0x6000, 0xA000); - break; - - case SLOT_MINIMEM: - cartridge_minimemory = TRUE; - case SLOT_MBX: - if (type == SLOT_MBX) - cartridge_mbx = TRUE; - case SLOT_CROM: - if (ti99_model == model_99_8) - { - image_fread(image, cartridge_pages_8[0], 0x2000); - current_page_ptr_8 = cartridge_pages_8[0]; - } - else - { - image_fread(image, cartridge_pages[0], 0x2000); - for (i = 0; i < 0x1000; i++) - cartridge_pages[0][i] = BIG_ENDIANIZE_INT16(cartridge_pages[0][i]); - current_page_ptr = cartridge_pages[0]; - } - break; - - case SLOT_DROM: - cartridge_paged = TRUE; - if (ti99_model == model_99_8) - { - image_fread(image, cartridge_pages_8[1], 0x2000); - current_page_ptr_8 = cartridge_pages_8[0]; - } - else - { - image_fread(image, cartridge_pages[1], 0x2000); - for (i = 0; i < 0x1000; i++) - cartridge_pages[1][i] = BIG_ENDIANIZE_INT16(cartridge_pages[1][i]); - current_page_ptr = cartridge_pages[0]; - } - break; - } - - return INIT_PASS; -} - -DEVICE_UNLOAD( ti99_cart ) -{ - int id = image_index_in_device(image); - - /* There is a circuitry in TI99/4(a) that resets the console when a - cartridge is inserted or removed. We emulate this instead of resetting the - emulator (which is the default in MESS). */ - /*cpunum_set_input_line(0, INPUT_LINE_RESET, PULSE_LINE); - tms9901_reset(0); - if (! has_evpc) - TMS9928A_reset(); - if (has_evpc) - v9938_reset();*/ - - switch (slot_type[id]) - { - case SLOT_EMPTY: - break; - - case SLOT_GROM: - memset(memory_region(region_grom) + 0x6000, 0, 0xA000); - break; - - case SLOT_MINIMEM: - cartridge_minimemory = FALSE; - /* we should insert some code to save the minimem contents... */ - case SLOT_MBX: - if (slot_type[id] == SLOT_MBX) - cartridge_mbx = FALSE; - /* maybe we should insert some code to save the memory contents... */ - case SLOT_CROM: - if (ti99_model == model_99_8) - { - memset(cartridge_pages_8[0], 0, 0x2000); - } - else - { - memset(cartridge_pages[0], 0, 0x2000); - } - break; - - case SLOT_DROM: - cartridge_paged = FALSE; - if (ti99_model == model_99_8) - { - current_page_ptr_8 = cartridge_pages_8[0]; - } - else - { - current_page_ptr = cartridge_pages[0]; - } - break; - } - - slot_type[id] = SLOT_EMPTY; -} - -DEVICE_LOAD( ti99_hd ) -{ - int id = image_index_in_device(image); - return smc92x4_hd_load(image, id); -} - -DEVICE_UNLOAD( ti99_hd ) -{ - int id = image_index_in_device(image); - smc92x4_hd_unload(image, id); -} - -static const TMS9928a_interface tms9918_interface = -{ - TMS99x8, - 0x4000, - 0, 0, - tms9901_set_int2 -}; - -MACHINE_START( ti99_4_60hz ) -{ - TMS9928A_configure(&tms9918_interface); - return 0; -} - -static const TMS9928a_interface tms9929_interface = -{ - TMS9929, - 0x4000, - 0, 0, - tms9901_set_int2 -}; - -MACHINE_START( ti99_4_50hz ) -{ - TMS9928A_configure(&tms9929_interface); - return 0; -} - -static const TMS9928a_interface tms9918a_interface = -{ - TMS99x8A, - 0x4000, - 0, 0, - tms9901_set_int2 -}; - -MACHINE_START( ti99_4a_60hz ) -{ - TMS9928A_configure(&tms9918a_interface); - return 0; -} - -static const TMS9928a_interface tms9929a_interface = -{ - TMS9929A, - 0x4000, - 0, 0, - tms9901_set_int2 -}; - -MACHINE_START( ti99_4a_50hz ) -{ - TMS9928A_configure(&tms9929a_interface); - return 0; -} - -/* - ti99_init_machine(); called before ti99_load_rom... -*/ -MACHINE_RESET( ti99 ) -{ - /*console_GROMs.data_ptr = memory_region(region_grom);*/ - console_GROMs.addr = 0; - - if (ti99_model == model_99_8) - { - /* ... */ - ti99_8_CRUS = 1; /* ??? maybe there is a pull-up */ - } - else if (ti99_model == model_99_4p) - { - /* set up system ROM and scratch pad pointers */ - memory_set_bankptr(1, memory_region(REGION_CPU1) + offset_rom0_4p); /* system ROM */ - memory_set_bankptr(2, memory_region(REGION_CPU1) + offset_sram_4p); /* scratch pad */ - memory_set_bankptr(11, memory_region(REGION_CPU1) + offset_dram_4p); /* extra RAM for debugger */ - } - else - { - /* set up scratch pad pointer */ - memory_set_bankptr(1, memory_region(REGION_CPU1) + offset_sram); - } - - if (ti99_model != model_99_4p) - { /* reset cartridge mapper */ - if (ti99_model == model_99_8) - current_page_ptr_8 = cartridge_pages_8[0]; - else - current_page_ptr = cartridge_pages[0]; - } - - /* init tms9901 */ - if (ti99_model == model_99_8) - tms9901_init(0, & tms9901reset_param_ti99_8); - else - tms9901_init(0, & tms9901reset_param_ti99_4x); - - if (! has_evpc) - TMS9928A_reset(); - if (has_evpc) - v9938_reset(); - - /* clear keyboard interface state (probably overkill, but can't harm) */ - KeyCol = 0; - AlphaLockLine = 0; - - /* reset handset */ - handset_buf = 0; - handset_buflen = 0; - handset_clock = 0; - handset_ack = 0; - tms9901_set_single_int(0, 12, 0); - - /* read config */ - if (ti99_model == model_99_8) - xRAM_kind = xRAM_kind_99_8; /* hack */ - else if (ti99_model == model_99_4p) - xRAM_kind = xRAM_kind_99_4p_1Mb; /* hack */ - else - xRAM_kind = (readinputport(input_port_config) >> config_xRAM_bit) & config_xRAM_mask; - if (ti99_model == model_99_8) - has_speech = TRUE; - else - has_speech = (readinputport(input_port_config) >> config_speech_bit) & config_speech_mask; - fdc_kind = (readinputport(input_port_config) >> config_fdc_bit) & config_fdc_mask; - has_ide = (readinputport(input_port_config) >> config_ide_bit) & config_ide_mask; - has_rs232 = (readinputport(input_port_config) >> config_rs232_bit) & config_rs232_mask; - has_handset = (ti99_model == model_99_4) && ((readinputport(input_port_config) >> config_handsets_bit) & config_handsets_mask); - has_hsgpl = (ti99_model == model_99_4p) || ((readinputport(input_port_config) >> config_hsgpl_bit) & config_hsgpl_mask); - has_usb_sm = (readinputport(input_port_config) >> config_usbsm_bit) & config_usbsm_mask; - - /* set up optional expansion hardware */ - ti99_peb_init(ti99_model == model_99_4p, tms9901_set_int1, NULL); - - if (ti99_model == model_99_8) - ti99_8_internal_dsr_init(); - - if (ti99_model == model_99_4p) - ti99_4p_internal_dsr_init(); - - if (has_speech) - { - spchroms_interface speech_intf = { region_speech_rom }; - - spchroms_config(& speech_intf); - - if (ti99_model != model_99_8) - { - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x9000, 0x93ff, 0, 0, ti99_rspeech_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x9400, 0x97ff, 0, 0, ti99_wspeech_w); - - sndti_set_info_int(SOUND_TMS5220, 0, SNDINFO_INT_TMS5220_VARIANT, variant_tms0285); - } - } - else - { - if (ti99_model != model_99_8) - { - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x9000, 0x93ff, 0, 0, ti99_nop_8_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x9400, 0x97ff, 0, 0, ti99_nop_8_w); - } - } - - switch (xRAM_kind) - { - case xRAM_kind_none: - default: - /* reset mem handler to none */ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_nop_8_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_nop_8_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_nop_8_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_nop_8_w); - break; - case xRAM_kind_TI: - ti99_TIxram_init(); - break; - case xRAM_kind_super_AMS: - ti99_sAMSxram_init(); - break; - case xRAM_kind_99_4p_1Mb: - ti99_4p_mapper_init(); - break; - case xRAM_kind_foundation_128k: - case xRAM_kind_foundation_512k: - case xRAM_kind_myarc_128k: - case xRAM_kind_myarc_512k: - ti99_myarcxram_init(); - break; - case xRAM_kind_99_8: - /* nothing needs to be done */ - break; - } - - switch (fdc_kind) - { - case fdc_kind_TI: - ti99_fdc_init(); - break; -#if HAS_99CCFDC - case fdc_kind_CC: - ti99_ccfdc_init(); - break; -#endif - case fdc_kind_BwG: - ti99_bwg_init(); - break; - case fdc_kind_hfdc: - ti99_hfdc_init(); - break; - case fdc_kind_none: - break; - } - - if (has_ide) - { - ti99_ide_init(ti99_model == model_99_8); - ti99_ide_load_memcard(); - } - - if (has_rs232) - ti99_rs232_init(); - - if (has_hsgpl) - { - ti99_hsgpl_init(); - ti99_hsgpl_load_memcard(); - } - else - hsgpl_crdena = 0; - - if (has_usb_sm) - ti99_usbsm_init(ti99_model == model_99_8); - - if (has_evpc) - ti99_evpc_init(); - - /* initialize mechatronics mouse */ - mecmouse_sel = 0; - mecmouse_read_y = 0; - mecmouse_x = 0; - mecmouse_y = 0; -} - -void machine_stop_ti99(void) -{ - if (has_ide) - ti99_ide_save_memcard(); - - if (has_hsgpl) - ti99_hsgpl_save_memcard(); - - if (has_rs232) - ti99_rs232_cleanup(); - - tms9901_cleanup(0); -} - - -/* - video initialization. -*/ -VIDEO_START( ti99_4ev ) -{ - return v9938_init(Machine, MODEL_V9938, 0x20000, tms9901_set_int2); /* v38 with 128 kb of video RAM */ -} - -/* - VBL interrupt (mmm... actually, it happens when the beam enters the lower - border, so it is not a genuine VBI, but who cares ?) -*/ -void ti99_vblank_interrupt(void) -{ - TMS9928A_interrupt(); - if (has_handset) - ti99_handset_task(); - has_mecmouse = (readinputport(input_port_config) >> config_mecmouse_bit) & config_mecmouse_mask; - if (has_mecmouse) - mecmouse_poll(); -} - -void ti99_4ev_hblank_interrupt(void) -{ - static int line_count; - v9938_interrupt(); - if (++line_count == 262) - { - line_count = 0; - has_mecmouse = (readinputport(input_port_config) >> config_mecmouse_bit) & config_mecmouse_mask; - if (has_mecmouse) - mecmouse_poll(); - } -} - -/* - Backdoor function that is called by hsgpl, so that the machine code knows - whether hsgpl or console GROMs are active -*/ -void set_hsgpl_crdena(int data) -{ - hsgpl_crdena = (data != 0); -} - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark MEMORY HANDLERS -#endif -/* - Memory handlers. - - TODO: - * save minimem RAM when quitting - * actually implement GRAM support and GPL port support -*/ - -/* - Same as MRA16_NOP, but with an additionnal delay caused by the 16->8 bit - bus multiplexer. -*/ -READ16_HANDLER ( ti99_nop_8_r ) -{ - activecpu_adjust_icount(-4); - - return (0); -} - -WRITE16_HANDLER ( ti99_nop_8_w ) -{ - activecpu_adjust_icount(-4); -} - -/* - TI-99 cartridge port: attached to the 8-bit bus. - - Cartridges are usually made of ROM, through a few cartridges include some - RAM as well. Bank switching is common: I know three banking schemes, - namely TI, MBX and Supercart. The TI scheme writes a dummy value in - cartridge space, and the write address gives the bank number. The MBX - scheme has a cartridge bank register at 0x6fff. I think the Supercart - scheme has a cartridge bank register in CRU space, but I don't what the - register address is, and it is therefore not emulated. - - HSGPL maps here, too, in order to emulate cartridge ROM/RAM. -*/ -READ16_HANDLER ( ti99_cart_r ) -{ - activecpu_adjust_icount(-4); - - if (hsgpl_crdena) - /* hsgpl is enabled */ - return ti99_hsgpl_rom6_r(offset, mem_mask); - - if (cartridge_mbx && (offset >= 0x0600) && (offset <= 0x07fe)) - return (cartridge_pages[0])[offset]; - - return current_page_ptr[offset]; -} - -WRITE16_HANDLER ( ti99_cart_w ) -{ - activecpu_adjust_icount(-4); - - if (hsgpl_crdena) - /* hsgpl is enabled */ - ti99_hsgpl_rom6_w(offset, data, mem_mask); - else if (cartridge_minimemory && offset >= 0x800) - /* handle minimem RAM */ - COMBINE_DATA(current_page_ptr+offset); - else if (cartridge_mbx) - { /* handle MBX cart */ - /* RAM in 0x6c00-0x6ffd (presumably non-paged) */ - /* mapper at 0x6ffe */ - if ((offset >= 0x0600) && (offset <= 0x07fe)) - COMBINE_DATA(cartridge_pages[0]+offset); - else if ((offset == 0x07ff) && ACCESSING_MSB16) - current_page_ptr = cartridge_pages[cartridge_paged ? ((data >> 8) & 1) : 0]; - } - else if (cartridge_paged) - /* handle pager */ - current_page_ptr = cartridge_pages[offset & 1]; -} - -/* - 99/4p cartridge space: mapped either to internal ROM6 or to HSGPL. -*/ -READ16_HANDLER ( ti99_4p_cart_r ) -{ - if (ti99_4p_internal_rom6_enable) - return ti99_4p_internal_ROM6[offset]; - - activecpu_adjust_icount(-4); - - if (hsgpl_crdena) - /* hsgpl is enabled */ - return ti99_hsgpl_rom6_r(offset, mem_mask); - - return 0; -} - -WRITE16_HANDLER ( ti99_4p_cart_w ) -{ - if (ti99_4p_internal_rom6_enable) - { - ti99_4p_internal_ROM6 = (UINT16 *) (memory_region(REGION_CPU1) + (offset & 1) ? offset_rom6b_4p : offset_rom6_4p); - return; - } - - activecpu_adjust_icount(-4); - - if (hsgpl_crdena) - /* hsgpl is enabled */ - ti99_hsgpl_rom6_w(offset, data, mem_mask); -} - -/*---------------------------------------------------------------------------*/ -/* - memory-mapped register handlers. - -Theory: - - These are registers to communicate with several peripherals. - These registers are all 8-bit-wide, and are located at even adresses between - 0x8400 and 0x9FFE. - The registers are identified by (addr & 1C00), and, for VDP and GPL access, - by (addr & 2). These registers are either read-only or write-only. (Or, - more accurately, (addr & 4000) disables register read, whereas - !(addr & 4000) disables register write.) - - Memory mapped registers list: - - write sound chip. (8400-87FE) - - read VDP memory. (8800-8BFC), (addr&2) == 0 - - read VDP status. (8802-8BFE), (addr&2) == 2 - - write VDP memory. (8C00-8FFC), (addr&2) == 0 - - write VDP address and VDP register. (8C02-8FFE), (addr&2) == 2 - - read speech synthesis chip. (9000-93FE) - - write speech synthesis chip. (9400-97FE) - - read GPL memory. (9800-9BFC), (addr&2) == 0 (1) - - read GPL adress. (9802-9BFE), (addr&2) == 2 (1) - - write GPL memory. (9C00-9FFC), (addr&2) == 0 (1) - - write GPL adress. (9C02-9FFE), (addr&2) == 2 (1) - -(1) on some hardware, (addr & 0x3FC) provides a GPL page number. -*/ - -/* - TMS9919 sound chip write -*/ -WRITE16_HANDLER ( ti99_wsnd_w ) -{ - activecpu_adjust_icount(-4); - - SN76496_0_w(offset, (data >> 8) & 0xff); -} - -/* - TMS9918(A)/9928(A)/9929(A) VDP read -*/ -READ16_HANDLER ( ti99_rvdp_r ) -{ - activecpu_adjust_icount(-4); - - if (offset & 1) - { /* read VDP status */ - return ((int) TMS9928A_register_r(0)) << 8; - } - else - { /* read VDP RAM */ - return ((int) TMS9928A_vram_r(0)) << 8; - } -} - -/* - TMS9918(A)/9928(A)/9929(A) vdp write -*/ -WRITE16_HANDLER ( ti99_wvdp_w ) -{ - activecpu_adjust_icount(-4); - - if (offset & 1) - { /* write VDP address */ - TMS9928A_register_w(0, (data >> 8) & 0xff); - } - else - { /* write VDP data */ - TMS9928A_vram_w(0, (data >> 8) & 0xff); - } -} - -/* - V38 VDP read -*/ -READ16_HANDLER ( ti99_rv38_r ) -{ - activecpu_adjust_icount(-4); - - if (offset & 1) - { /* read VDP status */ - return ((int) v9938_status_r(0)) << 8; - } - else - { /* read VDP RAM */ - return ((int) v9938_vram_r(0)) << 8; - } -} - -/* - V38 vdp write -*/ -WRITE16_HANDLER ( ti99_wv38_w ) -{ - activecpu_adjust_icount(-4); - - switch (offset & 3) - { - case 0: - /* write VDP data */ - v9938_vram_w(0, (data >> 8) & 0xff); - break; - case 1: - /* write VDP address */ - v9938_command_w(0, (data >> 8) & 0xff); - break; - case 2: - /* write VDP palette */ - v9938_palette_w(0, (data >> 8) & 0xff); - break; - case 3: - /* write VDP register */ - v9938_register_w(0, (data >> 8) & 0xff); - break; - } -} - -/* - TMS0285 speech chip read -*/ -static READ16_HANDLER ( ti99_rspeech_r ) -{ - activecpu_adjust_icount(-(18+3)); /* this is just a minimum, it can be more */ - - return ((int) tms5220_status_r(offset)) << 8; -} - -#if 0 - -static void speech_kludge_callback(int dummy) -{ - if (! tms5220_ready_r()) - { - /* Weirdly enough, we are always seeing some problems even though - everything is working fine. */ - double time_to_ready = tms5220_time_to_ready(); - logerror("ti99/4a speech says aaargh!\n"); - logerror("(time to ready: %f -> %d)\n", time_to_ready, (int) ceil(3000000*time_to_ready)); - } -} - -#endif - -/* - TMS0285 speech chip write -*/ -static WRITE16_HANDLER ( ti99_wspeech_w ) -{ - activecpu_adjust_icount(-(54+3)); /* this is just an approx. minimum, it can be much more */ - -#if 1 - /* the stupid design of the tms5220 core means that ready is cleared when - there are 15 bytes in FIFO. It should be 16. Of course, if it were the - case, we would need to store the value on the bus, which would be more - complex. */ - if (! tms5220_ready_r()) - { - double time_to_ready = tms5220_time_to_ready(); - int cycles_to_ready = ceil(TIME_TO_CYCLES(0, time_to_ready)); - - logerror("time to ready: %f -> %d\n", time_to_ready, (int) cycles_to_ready); - - activecpu_adjust_icount(-cycles_to_ready); - timer_set(TIME_NOW, 0, /*speech_kludge_callback*/NULL); - } -#endif - - tms5220_data_w(offset, (data >> 8) & 0xff); -} - -/* - GPL read -*/ -READ16_HANDLER ( ti99_rgpl_r ) -{ - int reply; - - - activecpu_adjust_icount(-4 /*20+3*/); /* from 4 to 23? */ - - if (offset & 1) - { /* read GPL address */ - /* the console GROMs are always affected */ - console_GROMs.waddr_LSB = FALSE; /* right??? */ - - if (console_GROMs.raddr_LSB) - { - reply = (console_GROMs.addr << 8) & 0xff00; - console_GROMs.raddr_LSB = FALSE; - } - else - { - reply = console_GROMs.addr & 0xff00; - console_GROMs.raddr_LSB = TRUE; - } - } - else - { /* read GPL data */ - /* the console GROMs are always affected */ - reply = ((int) console_GROMs.buf) << 8; /* retreive buffer */ - - /* read ahead */ - console_GROMs.buf = console_GROMs.data_ptr[console_GROMs.addr]; - console_GROMs.addr = ((console_GROMs.addr + 1) & 0x1FFF) | (console_GROMs.addr & 0xE000); - console_GROMs.raddr_LSB = console_GROMs.waddr_LSB = FALSE; - } - - if (hsgpl_crdena) - /* hsgpl buffers are stronger than console GROM buffers */ - reply = ti99_hsgpl_gpl_r(offset, mem_mask); - - return reply; -} - -/* - GPL write -*/ -WRITE16_HANDLER ( ti99_wgpl_w ) -{ - activecpu_adjust_icount(-4/*20+3*/); /* from 4 to 23? */ - - if (offset & 1) - { /* write GPL address */ - /* the console GROMs are always affected */ - console_GROMs.raddr_LSB = FALSE; - - if (console_GROMs.waddr_LSB) - { - console_GROMs.addr = (console_GROMs.addr & 0xFF00) | ((data >> 8) & 0xFF); - - /* read ahead */ - console_GROMs.buf = console_GROMs.data_ptr[console_GROMs.addr]; - console_GROMs.addr = ((console_GROMs.addr + 1) & 0x1FFF) | (console_GROMs.addr & 0xE000); - - console_GROMs.waddr_LSB = FALSE; - } - else - { - console_GROMs.addr = (data & 0xFF00) | (console_GROMs.addr & 0xFF); - - console_GROMs.waddr_LSB = TRUE; - } - - } - else - { /* write GPL data */ - /* the console GROMs are always affected */ - /* BTW, console GROMs are never GRAMs, therefore there is no need to - actually write anything */ - /* read ahead */ - console_GROMs.buf = console_GROMs.data_ptr[console_GROMs.addr]; - console_GROMs.addr = ((console_GROMs.addr + 1) & 0x1FFF) | (console_GROMs.addr & 0xE000); - console_GROMs.raddr_LSB = console_GROMs.waddr_LSB = FALSE; - - } - - if (hsgpl_crdena) - ti99_hsgpl_gpl_w(offset, data, mem_mask); -} - -/* - GPL read -*/ -READ16_HANDLER ( ti99_4p_rgpl_r ) -{ - activecpu_adjust_icount(-4); /* HSGPL is located on 8-bit bus? */ - - return /*hsgpl_crdena ?*/ ti99_hsgpl_gpl_r(offset, mem_mask) /*: 0*/; -} - -/* - GPL write -*/ -WRITE16_HANDLER ( ti99_4p_wgpl_w ) -{ - activecpu_adjust_icount(-4); /* HSGPL is located on 8-bit bus? */ - - /*if (hsgpl_crdena)*/ - ti99_hsgpl_gpl_w(offset, data, mem_mask); -} - - -#if 0 -#pragma mark - -#pragma mark 99/8 MEMORY HANDLERS -#endif - - READ8_HANDLER ( ti99_8_r ) -{ - int page = offset >> 12; - UINT32 mapper_reg; - int reply = 0; - - if (ti99_8_CRUS) - { - /* memory mapped ports enabled */ - if ((offset >= 0x0000) && (offset < 0x2000)) - /* ROM? */ - return ROM0_ptr_8[offset & 0x1fff]; - else if ((offset >= 0x8000) && (offset < 0xa000)) - { - /* ti99 scratch pad and memory-mapped registers */ - /* 0x8000-0x9fff */ - switch ((offset - 0x8000) >> 10) - { - case 0: - /* RAM */ - reply = sRAM_ptr_8[offset & 0x1fff]; - break; - - case 1: - /* sound write + RAM */ - if (offset >= 0x8410) - reply = sRAM_ptr_8[offset & 0x1fff]; - break; - - case 2: - /* VDP read + mapper status */ - if (offset < 0x8810) - { - if (! (offset & 1)) - { - if (offset & 2) - /* read VDP status */ - reply = TMS9928A_register_r(0); - else - /* read VDP RAM */ - reply = TMS9928A_vram_r(0); - } - } - else - { - reply = ti99_8_mapper_status; - - ti99_8_mapper_status = 0; - } - break; - - case 4: - /* speech read */ - if (! (offset & 1)) - { - activecpu_adjust_icount(-16*4); /* this is just a minimum, it can be more */ - reply = tms5220_status_r(0); - } - break; - - case 6: - /* GPL read */ - if (! (offset & 1)) - reply = ti99_rgpl_r(offset >> 1, 0) >> 8; - break; - - default: - logerror("unmapped read offs=%d\n", (int) offset); - break; - } - return reply; - } - } - - mapper_reg = ti99_8_mapper_regs[page]; - offset = (mapper_reg + (offset & 0x0fff)) & 0x00ffffff; - - /* test read protect */ - /*if (mapper_reg & 0x20000000) - ;*/ - - /* test execute protect */ - /*if (mapper_reg & 0x40000000) - ;*/ - - if (offset < 0x010000) - /* Read RAM */ - reply = xRAM_ptr_8[offset]; - - if (offset >= 0xff0000) - { - switch ((offset >> 13) & 7) - { - default: - /* should never happen */ - case 0: - /* unassigned??? */ - case 1: - /* ??? */ - case 4: - /* internal DSR ROM??? (normally enabled with a write to CRU >2700) */ - case 7: - /* ??? */ - logerror("unmapped read page=%d offs=%d\n", (int) page, (int) offset); - break; - - case 2: - /* DSR space */ - reply = ti99_8_peb_r(offset & 0x1fff); - break; - - case 3: - /* cartridge space */ - offset &= 0x1fff; -#if 0 - if (hsgpl_crdena) - /* hsgpl is enabled */ - reply = ti99_hsgpl_rom6_r(offset, mem_mask); - else -#endif - - if (cartridge_mbx && (offset >= 0x0c00) && (offset <= 0x0ffd)) - reply = (cartridge_pages_8[0])[offset]; - else - reply = current_page_ptr_8[offset]; - break; - - case 5: - /* >2000 ROM (ROM1) */ - reply = ROM1_ptr_8[offset & 0x1fff]; - break; - - case 6: - /* >6000 ROM */ - reply = ROM3_ptr_8[offset & 0x1fff]; - break; - } - } - - return reply; -} - -WRITE8_HANDLER ( ti99_8_w ) -{ - int page = offset >> 12; - UINT32 mapper_reg; - - if (ti99_8_CRUS) - { - /* memory mapped ports enabled */ - if ((offset >= 0x0000) && (offset < 0x2000)) - /* ROM? */ - return; - else if ((offset >= 0x8000) && (offset < 0xa000)) - { - /* ti99 scratch pad and memory-mapped registers */ - /* 0x8000-0x9fff */ - switch ((offset - 0x8000) >> 10) - { - case 0: - /* RAM */ - sRAM_ptr_8[offset & 0x1fff] = data; - break; - - case 1: - /* sound write + RAM */ - if (offset < 0x8410) - SN76496_0_w(offset, data); - else - sRAM_ptr_8[offset & 0x1fff] = data; - break; - - case 2: - /* VDP read + mapper control */ - if (offset >= 0x8810) - { - int file = (data >> 1) & 3; - int i; - - if (data & 1) - { /* load */ - for (i=0; i<16; i++) - { - ti99_8_mapper_regs[i] = (sRAM_ptr_8[(file << 6) + (i << 2)] << 24) - | (sRAM_ptr_8[(file << 6) + (i << 2) + 1] << 16) - | (sRAM_ptr_8[(file << 6) + (i << 2) + 2] << 8) - | sRAM_ptr_8[(file << 6) + (i << 2) + 3]; - } - } - else - { /* save */ - for (i=0; i<16; i++) - { - sRAM_ptr_8[(file << 6) + (i << 2)] = ti99_8_mapper_regs[i] >> 24; - sRAM_ptr_8[(file << 6) + (i << 2) + 1] = ti99_8_mapper_regs[i] >> 16; - sRAM_ptr_8[(file << 6) + (i << 2) + 2] = ti99_8_mapper_regs[i] >> 8; - sRAM_ptr_8[(file << 6) + (i << 2) + 3] = ti99_8_mapper_regs[i]; - } - } - } - break; - - case 3: - /* VDP write */ - if (! (offset & 1)) - { - if (offset & 2) - /* read VDP status */ - TMS9928A_register_w(0, data); - else - /* read VDP RAM */ - TMS9928A_vram_w(0, data); - } - break; - - case 5: - /* speech write */ - if (! (offset & 1)) - { - activecpu_adjust_icount(-48*4); /* this is just an approx. minimum, it can be much more */ - - /* the stupid design of the tms5220 core means that ready is cleared when - there are 15 bytes in FIFO. It should be 16. Of course, if it were the - case, we would need to store the value on the bus, which would be more - complex. */ - if (! tms5220_ready_r()) - { - double time_to_ready = tms5220_time_to_ready(); - double d = ceil(TIME_TO_CYCLES(0, time_to_ready)); - int cycles_to_ready = ((int) (d + 3)) & ~3; - - logerror("time to ready: %f -> %d\n", time_to_ready, (int) cycles_to_ready); - - activecpu_adjust_icount(-cycles_to_ready); - timer_set(TIME_NOW, 0, /*speech_kludge_callback*/NULL); - } - - tms5220_data_w(offset, data); - } - break; - - case 7: - /* GPL write */ - if (! (offset & 1)) - ti99_wgpl_w(offset >> 1, data << 8, 0); - break; - - default: - logerror("unmapped write offs=%d data=%d\n", (int) offset, (int) data); - break; - } - return; - } - } - - mapper_reg = ti99_8_mapper_regs[page]; - offset = (mapper_reg + (offset & 0x0fff)) & 0x00ffffff; - - /* test write protect */ - /*if (mapper_reg & 0x80000000) - ;*/ - - if (offset < 0x010000) - { /* Write RAM */ - xRAM_ptr_8[offset] = data; - } - else if (offset >= 0xff0000) - { - switch ((offset >> 13) & 7) - { - default: - /* should never happen */ - case 0: - /* unassigned??? */ - case 1: - /* ??? */ - case 4: - /* internal DSR ROM??? (normally enabled with a write to CRU >2700) */ - case 7: - /* ??? */ - break; - - case 2: - /* DSR space */ - ti99_8_peb_w(offset & 0x1fff, data); - break; - - case 3: - /* cartridge space */ - offset &= 0x1fff; -#if 0 - if (hsgpl_crdena) - /* hsgpl is enabled */ - ti99_hsgpl_rom6_w(offset, data); - else -#endif - if (cartridge_minimemory && (offset >= 0x1000)) - /* handle minimem RAM */ - current_page_ptr_8[offset] = data; - else if (cartridge_mbx) - { /* handle MBX cart */ - /* RAM in 0x6c00-0x6ffd (presumably non-paged) */ - /* mapper at 0x6ffe */ - if ((offset >= 0x0c00) && (offset <= 0x0ffd)) - (cartridge_pages_8[0])[offset] = data; - else if (offset == 0x0ffe) - current_page_ptr_8 = cartridge_pages_8[cartridge_paged ? (data & 1) : 0]; - } - else if (cartridge_paged) - /* handle pager */ - current_page_ptr_8 = cartridge_pages_8[(offset & 2) >> 1]; - break; - - case 5: - /* >2000 ROM (ROM1) */ - break; - - case 6: - /* >6000 ROM */ - break; - } - } - else - logerror("unmapped write page=%d offs=%d\n", (int) page, (int) offset); -} - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark TI-99/4 HANDSETS -#endif -/* - Handset support (TI99/4 only) - - The ti99/4 was intended to support some so-called "IR remote handsets". - This feature was canceled at the last minute (reportedly ten minutes before - the introductory press conference in June 1979), but the first thousands of - 99/4 units had the required port, and the support code was seemingly not - deleted from ROMs until the introduction of the ti99/4a in 1981. You could - connect up to 4 20-key keypads, and up to 4 joysticks with a maximum - resolution of 15 levels on each axis. - - The keyboard DSR was able to couple two 20-key keypads together to emulate - a full 40-key keyboard. Keyboard modes 0, 1 and 2 would select either the - console keyboard with its two wired remote controllers (i.e. joysticks), or - remote handsets 1 and 2 with their associated IR remote controllers (i.e. - joysticks), according to which was currently active. -*/ - -/* - ti99_handset_poll_bus() - - Poll the current state of the 4-bit data bus that goes from the I/R - receiver to the tms9901. -*/ -static int ti99_handset_poll_bus(void) -{ - return (has_handset) ? (handset_buf & 0xf) : 0; -} - -/* - ti99_handset_ack_callback() - - Handle data acknowledge sent by the ti-99/4 handset ISR (through tms9901 - line P0). This function is called by a delayed timer 30us after the state - of P0 is changed, because, in one occasion, the ISR asserts the line before - it reads the data, so we need to delay the acknowledge process. -*/ -static void ti99_handset_ack_callback(int dummy) -{ - handset_clock = ! handset_clock; - handset_buf >>= 4; - handset_buflen--; - tms9901_set_single_int(0, 12, 0); - - if (handset_buflen == 1) - { - /* Unless I am missing something, the third and last nybble of the - message is not acknowledged by the DSR in any way, and the first nybble - of next message is not requested for either, so we need to decide on - our own when we can post a new event. Currently, we wait for 1000us - after the DSR acknowledges the second nybble. */ - timer_set(TIME_IN_USEC(1000), 0, ti99_handset_ack_callback); - } - - if (handset_buflen == 0) - /* See if we need to post a new event */ - ti99_handset_task(); -} - -/* - ti99_handset_set_ack() - - Handler for tms9901 P0 pin (handset data acknowledge) -*/ -static void ti99_handset_set_ack(int offset, int data) -{ - if (has_handset && handset_buflen && (data != handset_ack)) - { - handset_ack = data; - if (data == handset_clock) - /* I don't know what the real delay is, but 30us apears to be enough */ - timer_set(TIME_IN_USEC(30), 0, ti99_handset_ack_callback); - } -} - -/* - ti99_handset_post_message() - - Post a 12-bit message: trigger an interrupt on the tms9901, and store the - message in the I/R receiver buffer so that the handset ISR will read this - message. - - message: 12-bit message to post (only the 12 LSBits are meaningful) -*/ -static void ti99_handset_post_message(int message) -{ - /* post message and assert interrupt */ - handset_clock = 1; - handset_buf = ~ message; - handset_buflen = 3; - tms9901_set_single_int(0, 12, 1); -} - -/* - ti99_handset_poll_keyboard() - - Poll the current state of one given handset keypad. - - num: number of the keypad to poll (0-3) - - Returns TRUE if the handset state has changed and a message was posted. -*/ -static int ti99_handset_poll_keyboard(int num) -{ - static UINT8 previous_key[max_handsets]; - - UINT32 key_buf; - UINT8 current_key; - int i; - - - /* read current key state */ - key_buf = ( readinputport(input_port_IR_keypads+num) - | (readinputport(input_port_IR_keypads+num+1) << 16) ) >> (4*num); - - /* If a key was previously pressed, this key was not shift, and this key is - still down, then don't change the current key press. */ - if (previous_key[num] && (previous_key[num] != 0x24) - && (key_buf & (1 << (previous_key[num] & 0x1f)))) - { - /* check the shift modifier state */ - if (((previous_key[num] & 0x20) != 0) == ((key_buf & 0x0008) != 0)) - /* the shift modifier state has not changed */ - return FALSE; - else - { - /* the shift modifier state has changed: we need to update the - keyboard state */ - if (key_buf & 0x0008) - { /* shift has been pressed down */ - previous_key[num] = current_key = previous_key[num] | 0x20; - } - else - { /* shift has been pressed down */ - previous_key[num] = current_key = previous_key[num] & ~0x20; - } - /* post message */ - ti99_handset_post_message((((unsigned) current_key) << 4) | (num << 1)); - - return TRUE; - } - - } - - current_key = 0; /* default value if no key is down */ - for (i=0; i<20; i++) - { - if (key_buf & (1 << i)) - { - current_key = i + 1; - if (key_buf & 0x0008) - current_key |= 0x20; /* set shift flag */ - - if (current_key != 0x24) - /* If this is the shift key, any other key we may find will - have higher priority; otherwise, we may exit the loop and keep - the key we have just found. */ - break; - } - } - - if (current_key != previous_key[num]) - { - previous_key[num] = current_key; - - /* post message */ - ti99_handset_post_message((((unsigned) current_key) << 4) | (num << 1)); - - return TRUE; - } - - return FALSE; -} - -/* - ti99_handset_poll_joystick() - - Poll the current state of one given handset joystick. - - num: number of the joystick to poll (0-3) - - Returns TRUE if the handset state has changed and a message was posted. -*/ -static int ti99_handset_poll_joystick(int num) -{ - static UINT8 previous_joy[max_handsets]; - UINT8 current_joy; - int current_joy_x, current_joy_y; - int message; - - /* read joystick position */ - current_joy_x = readinputport(input_port_IR_joysticks+2*num); - current_joy_y = readinputport(input_port_IR_joysticks+2*num+1); - /* compare with last saved position */ - current_joy = current_joy_x | (current_joy_y << 4); - if (current_joy != previous_joy[num]) - { - /* save position */ - previous_joy[num] = current_joy; - - /* transform position to signed quantity */ - current_joy_x -= 7; - current_joy_y -= 7; - - message = 0; - - /* set sign */ - /* note that we set the sign if the joystick position is 0 to work - around a bug in the ti99/4 ROMs */ - if (current_joy_x <= 0) - { - message |= 0x040; - current_joy_x = - current_joy_x; - } - - if (current_joy_y <= 0) - { - message |= 0x400; - current_joy_y = - current_joy_y; - } - - /* convert absolute values to Gray code and insert in message */ - if (current_joy_x & 4) - current_joy_x ^= 3; - if (current_joy_x & 2) - current_joy_x ^= 1; - message |= current_joy_x << 3; - - if (current_joy_y & 4) - current_joy_y ^= 3; - if (current_joy_y & 2) - current_joy_y ^= 1; - message |= current_joy_y << 7; - - /* set joystick address */ - message |= (num << 1) | 0x1; - - /* post message */ - ti99_handset_post_message(message); - - return TRUE; - } - - return FALSE; -} - -/* - ti99_handset_task() - - Manage handsets, posting an event if the state of any handset has changed. -*/ -static void ti99_handset_task(void) -{ - int i; - - if (handset_buflen == 0) - { /* poll every handset */ - for (i=0; i> 1)) & 0x3); - } - else - { /* joystick */ - ti99_handset_poll_joystick((~ (handset_buf >> 1)) & 0x3); - } - } -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark MECHATRONICS MOUSE -#endif - -static void mecmouse_select(int sel) -{ - if (mecmouse_sel != (sel != 0)) - { - mecmouse_sel = (sel != 0); - if (mecmouse_sel) - { - if (! mecmouse_read_y) - { - /* sample mouse data for both axes */ - if (mecmouse_x < -4) - mecmouse_x_buf = -4; - else if (mecmouse_x > 3) - mecmouse_x_buf = 3; - else - mecmouse_x_buf = mecmouse_x; - mecmouse_x -= mecmouse_x_buf; - mecmouse_x_buf = (mecmouse_x_buf-1) & 7; - - if (mecmouse_y < -4) - mecmouse_y_buf = -4; - else if (mecmouse_y > 3) - mecmouse_y_buf = 3; - else - mecmouse_y_buf = mecmouse_y; - mecmouse_y -= mecmouse_y_buf; - mecmouse_y_buf = (mecmouse_y_buf-1) & 7; - } - } - else - mecmouse_read_y = ! mecmouse_read_y; - } -} - -static void mecmouse_poll(void) -{ - static int last_mx = 0, last_my = 0; - int new_mx, new_my; - int delta_x, delta_y; - - new_mx = readinputport(input_port_mousex); - new_my = readinputport(input_port_mousey); - - /* compute x delta */ - delta_x = new_mx - last_mx; - - /* check for wrap */ - if (delta_x > 0x80) - delta_x = 0x100-delta_x; - if (delta_x < -0x80) - delta_x = -0x100-delta_x; - - last_mx = new_mx; - - /* compute y delta */ - delta_y = new_my - last_my; - - /* check for wrap */ - if (delta_y > 0x80) - delta_y = 0x100-delta_y; - if (delta_y < -0x80) - delta_y = -0x100-delta_y; - - last_my = new_my; - - /* update state */ - mecmouse_x += delta_x; - mecmouse_y += delta_y; -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark TMS9901 INTERFACE -#endif -/* - TI99/4x-specific tms9901 I/O handlers - - See mess/machine/tms9901.c for generic tms9901 CRU handlers. - - BTW, although TMS9900 is generally big-endian, it is little endian as far as CRU is - concerned. (i.e. bit 0 is the least significant) - -KNOWN PROBLEMS: - * a read or write to bits 16-31 causes TMS9901 to quit timer mode. The problem is: - on a TI99/4A, any memory access causes a dummy CRU read. Therefore, TMS9901 can quit - timer mode even though the program did not explicitely ask... and THIS is impossible - to emulate efficiently (we would have to check every memory operation). -*/ -/* - TMS9901 interrupt handling on a TI99/4(a). - - TI99/4(a) uses the following interrupts: - INT1: external interrupt (used by RS232 controller, for instance) - INT2: VDP interrupt - TMS9901 timer interrupt (overrides INT3) - INT12: handset interrupt (only on a TI-99/4 with the handset prototypes) - - Three (occasionally four) interrupts are used by the system (INT1, INT2, - timer, and INT12 on a TI-99/4 with remote handset prototypes), out of 15/16 - possible interrupts. Keyboard pins can be used as interrupt pins, too, but - this is not emulated (it's a trick, anyway, and I don't know any program - which uses it). - - When an interrupt line is set (and the corresponding bit in the interrupt mask is set), - a level 1 interrupt is requested from the TMS9900. This interrupt request lasts as long as - the interrupt pin and the revelant bit in the interrupt mask are set. - - TIMER interrupts are kind of an exception, since they are not associated with an external - interrupt pin, and I guess it takes a write to the 9901 CRU bit 3 ("SBO 3") to clear - the pending interrupt (or am I wrong once again ?). - -nota: - All interrupt routines notify (by software) the TMS9901 of interrupt - recognition (with a "SBO n"). However, unless I am missing something, this - has absolutely no consequence on the TMS9901 (except for the TIMER - interrupt routine), and interrupt routines would work fine without this - SBO instruction. This is quite weird. Maybe the interrupt recognition - notification is needed on TMS9985, or any other weird variant of TMS9900 - (how about the TI-99 development system connected to a TI990/10?). -*/ - -/* - set the state of int1 (called by the peb core) -*/ -static void tms9901_set_int1(int state) -{ - tms9901_set_single_int(0, 1, state); -} - -/* - set the state of int2 (called by the tms9928 core) -*/ -void tms9901_set_int2(int state) -{ - tms9901_set_single_int(0, 2, state); -} - -/* - Called by the 9901 core whenever the state of INTREQ and IC0-3 changes -*/ -static void tms9901_interrupt_callback(int intreq, int ic) -{ - if (intreq) - { - /* On TI99, TMS9900 IC0-3 lines are not connected to TMS9901, - * but hard-wired to force level 1 interrupts */ - cpunum_set_input_line_and_vector(0, 0, ASSERT_LINE, 1); /* interrupt it, baby */ - } - else - { - cpunum_set_input_line(0, 0, CLEAR_LINE); - } -} - -/* - Read pins INT3*-INT7* of TI99's 9901. - - signification: - (bit 1: INT1 status) - (bit 2: INT2 status) - bit 3-7: keyboard status bits 0 to 4 -*/ -static int ti99_R9901_0(int offset) -{ - int answer; - - - if ((ti99_model == model_99_4) && (KeyCol == 7)) - answer = (ti99_handset_poll_bus() << 3) | 0x80; - else if (has_mecmouse && (KeyCol == ((ti99_model == model_99_4) ? 6 : 7))) - { - int buttons = readinputport(input_port_mouse_buttons) & 3; - - answer = (mecmouse_read_y ? mecmouse_y_buf : mecmouse_x_buf) << 4; - - if (! (buttons & 1)) - /* action button */ - answer |= 0x08; - if (! (buttons & 2)) - /* home button */ - answer |= 0x80; - } - else - answer = ((readinputport(input_port_keyboard + (KeyCol >> 1)) >> ((KeyCol & 1) * 8)) << 3) & 0xF8; - - if ((ti99_model == model_99_4a) || (ti99_model == model_99_4p)) - { - if (! AlphaLockLine) - answer &= ~ (readinputport(input_port_caps_lock) << 3); - } - - return answer; -} - -/* - Read pins INT8*-INT15* of TI99's 9901. - - signification: - bit 0-2: keyboard status bits 5 to 7 - bit 3: tape input mirror - (bit 4: IR remote handset interrupt) - bit 5-7: weird, not emulated -*/ -static int ti99_R9901_1(int offset) -{ - int answer; - - - if (/*(ti99_model == model_99_4) &&*/ (KeyCol == 7)) - answer = 0x07; - else - answer = ((readinputport(input_port_keyboard + (KeyCol >> 1)) >> ((KeyCol & 1) * 8)) >> 5) & 0x07; - - /* we don't take CS2 into account, as CS2 is a write-only unit */ - /*if (cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) > 0) - answer |= 8;*/ - - return answer; -} - -/* - Read pins P0-P7 of TI99's 9901. - - bit 1: handset data clock pin -*/ -static int ti99_R9901_2(int offset) -{ - return (has_handset && handset_clock) ? 2 : 0; -} - -/* - Read pins P8-P15 of TI99's 9901. - - bit 26: IR handset interrupt - bit 27: tape input -*/ -static int ti99_R9901_3(int offset) -{ - int answer; - - if (has_handset && (handset_buflen == 3)) - answer = 0; - else - answer = 4; /* on systems without handset, the pin is pulled up to avoid spurious interrupts */ - - /* we don't take CS2 into account, as CS2 is a write-only unit */ - if (cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) > 0) - answer |= 8; - - return answer; -} - - -/* - WRITE key column select (P2-P4) -*/ -static void ti99_KeyC(int offset, int data) -{ - if (data) - KeyCol |= 1 << (offset-2); - else - KeyCol &= ~ (1 << (offset-2)); - - if (has_mecmouse) - mecmouse_select(KeyCol == ((ti99_model == model_99_4) ? 6 : 7)); -} - -/* - WRITE alpha lock line - TI99/4a only (P5) -*/ -static void ti99_AlphaW(int offset, int data) -{ - if ((ti99_model == model_99_4a) || (ti99_model == model_99_4p)) - AlphaLockLine = data; -} - -/* - Read pins INT3*-INT7* of TI99's 9901. - - signification: - (bit 1: INT1 status) - (bit 2: INT2 status) - bits 3-4: unused? - bit 5: ??? - bit 6-7: keyboard status bits 0 through 1 -*/ -static int ti99_8_R9901_0(int offset) -{ - int answer; - - - if (has_mecmouse && (KeyCol == 15)) - { - int buttons = readinputport(input_port_mouse_buttons) & 3; - - answer = ((mecmouse_read_y ? mecmouse_y_buf : mecmouse_x_buf) << 7) & 0x80; - - if (! (buttons & 1)) - /* action button */ - answer |= 0x40; - } - else - answer = (readinputport(input_port_keyboard + KeyCol) << 6) & 0xC0; - - return answer; -} - -/* - Read pins INT8*-INT15* of TI99's 9901. - - signification: - bit 0-2: keyboard status bits 2 to 4 - bit 3: tape input mirror - (bit 4: IR remote handset interrupt) - bit 5-7: weird, not emulated -*/ -static int ti99_8_R9901_1(int offset) -{ - int answer; - - - if (has_mecmouse && (KeyCol == 15)) - { - int buttons = readinputport(input_port_mouse_buttons) & 3; - - answer = ((mecmouse_read_y ? mecmouse_y_buf : mecmouse_x_buf) << 1) & 0x03; - - if (! (buttons & 2)) - /* home button */ - answer |= 0x04; - } - else - answer = (readinputport(input_port_keyboard + KeyCol) >> 2) & 0x07; - - /* we don't take CS2 into account, as CS2 is a write-only unit */ - /*if (cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) > 0) - answer |= 8;*/ - - return answer; -} - -/* - WRITE key column select (P0-P3) -*/ -static void ti99_8_KeyC(int offset, int data) -{ - if (data) - KeyCol |= 1 << offset; - else - KeyCol &= ~ (1 << offset); - - if (has_mecmouse) - mecmouse_select(KeyCol == 15); -} - -static void ti99_8_WCRUS(int offset, int data) -{ - ti99_8_CRUS = data; -} - -static void ti99_8_PTGEN(int offset, int data) -{ - /* ... */ -} - -/* - command CS1/CS2 tape unit motor (P6-P7) -*/ -static void ti99_CS_motor(int offset, int data) -{ - mess_image *img = image_from_devtype_and_index(IO_CASSETTE, offset-6); - cassette_change_state(img, data ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR); -} - -/* - audio gate (P8) - - Set to 1 before using tape: this enables the mixing of tape input sound - with computer sound. - - We do not really need to emulate this as the tape recorder generates sound - on its own. -*/ -static void ti99_audio_gate(int offset, int data) -{ -} - -/* - tape output (P9) - I think polarity is correct, but don't take my word for it. -*/ -static void ti99_CS_output(int offset, int data) -{ - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 0), data ? +1 : -1); - if (ti99_model != model_99_8) /* 99/8 only has one tape port!!! */ - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 1), data ? +1 : -1); -} - - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark 99/8 INTERNAL DSR -#endif -/* - TI 99/8 internal DSR support. - - Includes a few specific signals, and an extra ROM. -*/ - -/* prototypes */ -static void ti99_8_internal_dsr_cru_w(int offset, int data); -static READ8_HANDLER(ti99_8_internal_dsr_r); - - -static const ti99_peb_card_handlers_t ti99_8_internal_dsr_handlers = -{ - NULL, - ti99_8_internal_dsr_cru_w, - ti99_8_internal_dsr_r, - NULL -}; - -/* pointer to the internal DSR ROM data */ -static UINT8 *ti99_8_internal_DSR; - - -/* set up handlers, and set initial state */ -static void ti99_8_internal_dsr_init(void) -{ - ti99_8_internal_DSR = memory_region(REGION_CPU1) + offset_rom0_8 + 0x4000; - - ti99_peb_set_card_handlers(0x2700, & ti99_8_internal_dsr_handlers); -} - -/* write CRU bit: - bit0: enable/disable internal DSR ROM, - bit1: hard reset */ -static void ti99_8_internal_dsr_cru_w(int offset, int data) -{ - switch (offset) - { - case 1: - /* hard reset -- not emulated */ - break; - } -} - -/* read internal DSR ROM */ -static READ8_HANDLER(ti99_8_internal_dsr_r) -{ - return ti99_8_internal_DSR[offset]; -} - - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark SGCPU INTERNAL DSR -#endif -/* - SNUG SGCPU (a.k.a. 99/4p) internal DSR support. - - Includes a few specific signals, and an extra ROM. -*/ - -/* prototypes */ -static void ti99_4p_internal_dsr_cru_w(int offset, int data); -static READ16_HANDLER(ti99_4p_internal_dsr_r); - - -static const ti99_peb_16bit_card_handlers_t ti99_4p_internal_dsr_handlers = -{ - NULL, - ti99_4p_internal_dsr_cru_w, - ti99_4p_internal_dsr_r, - NULL -}; - -/* pointer to the internal DSR ROM data */ -static UINT16 *ti99_4p_internal_DSR; - - -/* set up handlers, and set initial state */ -static void ti99_4p_internal_dsr_init(void) -{ - ti99_4p_internal_DSR = (UINT16 *) (memory_region(REGION_CPU1) + offset_rom4_4p); - ti99_4p_internal_ROM6 = (UINT16 *) (memory_region(REGION_CPU1) + offset_rom6_4p); - - ti99_peb_set_16bit_card_handlers(0x0f00, & ti99_4p_internal_dsr_handlers); - - ti99_4p_internal_rom6_enable = 0; - ti99_4p_peb_set_senila(0); - ti99_4p_peb_set_senilb(0); -} - -/* write CRU bit: - bit0: enable/disable internal DSR ROM, - bit1: enable/disable internal cartridge ROM - bit2: set/clear senila - bit3: set/clear senilb*/ -static void ti99_4p_internal_dsr_cru_w(int offset, int data) -{ - switch (offset) - { - case 1: - ti99_4p_internal_rom6_enable = data; - break; - case 2: - ti99_4p_peb_set_senila(data); - break; - case 3: - ti99_4p_peb_set_senilb(data); - break; - case 4: - /* 0: 16-bit (fast) memory timings */ - /* 1: 8-bit memory timings */ - break; - case 5: - /* if 0: "KBENA" mode (enable keyboard?) */ - /* if 1: "KBINH" mode (inhibit keyboard?) */ - break; - } -} - -/* read internal DSR ROM */ -static READ16_HANDLER(ti99_4p_internal_dsr_r) -{ - return ti99_4p_internal_DSR[offset]; -} - - - -#if 0 -#pragma mark - -#pragma mark MEMORY EXPANSION CARDS -#endif -/*===========================================================================*/ -/* - TI memory extension support. - - Simple 8-bit DRAM: 32kb in two chunks of 8kb and 24kb repectively. - Since the RAM is on the 8-bit bus, there is an additionnal delay. -*/ - -static READ16_HANDLER ( ti99_TIxramlow_r ); -static WRITE16_HANDLER ( ti99_TIxramlow_w ); -static READ16_HANDLER ( ti99_TIxramhigh_r ); -static WRITE16_HANDLER ( ti99_TIxramhigh_w ); - -static void ti99_TIxram_init(void) -{ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_TIxramlow_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_TIxramlow_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_TIxramhigh_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_TIxramhigh_w); -} - -/* low 8 kb: 0x2000-0x3fff */ -static READ16_HANDLER ( ti99_TIxramlow_r ) -{ - activecpu_adjust_icount(-4); - - return xRAM_ptr[offset]; -} - -static WRITE16_HANDLER ( ti99_TIxramlow_w ) -{ - activecpu_adjust_icount(-4); - - COMBINE_DATA(xRAM_ptr + offset); -} - -/* high 24 kb: 0xa000-0xffff */ -static READ16_HANDLER ( ti99_TIxramhigh_r ) -{ - activecpu_adjust_icount(-4); - - return xRAM_ptr[offset+0x1000]; -} - -static WRITE16_HANDLER ( ti99_TIxramhigh_w ) -{ - activecpu_adjust_icount(-4); - - COMBINE_DATA(xRAM_ptr + offset+0x1000); -} - - -/*===========================================================================*/ -/* - Super AMS memory extension support. - - Up to 1Mb of SRAM. Straightforward mapper, works with 4kb chunks. The mapper was designed - to be extendable with other RAM areas. -*/ - -/* prototypes */ -static void sAMS_cru_w(int offset, int data); -static READ8_HANDLER(sAMS_mapper_r); -static WRITE8_HANDLER(sAMS_mapper_w); - -static READ16_HANDLER ( ti99_sAMSxramlow_r ); -static WRITE16_HANDLER ( ti99_sAMSxramlow_w ); -static READ16_HANDLER ( ti99_sAMSxramhigh_r ); -static WRITE16_HANDLER ( ti99_sAMSxramhigh_w ); - - -static const ti99_peb_card_handlers_t sAMS_expansion_handlers = -{ - NULL, - sAMS_cru_w, - sAMS_mapper_r, - sAMS_mapper_w -}; - - -static int sAMS_mapper_on; -static int sAMSlookup[16]; - - -/* set up super AMS handlers, and set initial state */ -static void ti99_sAMSxram_init(void) -{ - int i; - - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_sAMSxramlow_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_sAMSxramlow_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_sAMSxramhigh_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_sAMSxramhigh_w); - - ti99_peb_set_card_handlers(0x1e00, & sAMS_expansion_handlers); - - sAMS_mapper_on = 0; - - for (i=0; i<16; i++) - sAMSlookup[i] = i << 11; -} - -/* write CRU bit: - bit0: enable/disable mapper registers in DSR space, - bit1: enable/disable address mapping */ -static void sAMS_cru_w(int offset, int data) -{ - if (offset == 1) - sAMS_mapper_on = data; -} - -/* read a mapper register */ -static READ8_HANDLER(sAMS_mapper_r) -{ - return (sAMSlookup[(offset >> 1) & 0xf] >> 11); -} - -/* write a mapper register */ -static WRITE8_HANDLER(sAMS_mapper_w) -{ - sAMSlookup[(offset >> 1) & 0xf] = ((int) data) << 11; -} - -/* low 8 kb: 0x2000-0x3fff */ -static READ16_HANDLER ( ti99_sAMSxramlow_r ) -{ - activecpu_adjust_icount(-4); - - if (sAMS_mapper_on) - return xRAM_ptr[(offset&0x7ff)+sAMSlookup[(0x1000+offset)>>11]]; - else - return xRAM_ptr[offset+0x1000]; -} - -static WRITE16_HANDLER ( ti99_sAMSxramlow_w ) -{ - activecpu_adjust_icount(-4); - - if (sAMS_mapper_on) - COMBINE_DATA(xRAM_ptr + (offset&0x7ff)+sAMSlookup[(0x1000+offset)>>11]); - else - COMBINE_DATA(xRAM_ptr + offset+0x1000); -} - -/* high 24 kb: 0xa000-0xffff */ -static READ16_HANDLER ( ti99_sAMSxramhigh_r ) -{ - activecpu_adjust_icount(-4); - - if (sAMS_mapper_on) - return xRAM_ptr[(offset&0x7ff)+sAMSlookup[(0x5000+offset)>>11]]; - else - return xRAM_ptr[offset+0x5000]; -} - -static WRITE16_HANDLER ( ti99_sAMSxramhigh_w ) -{ - activecpu_adjust_icount(-4); - - if (sAMS_mapper_on) - COMBINE_DATA(xRAM_ptr + (offset&0x7ff)+sAMSlookup[(0x5000+offset)>>11]); - else - COMBINE_DATA(xRAM_ptr + offset+0x5000); -} - - -/*===========================================================================*/ -/* - SNUG SGCPU (a.k.a. 99/4p) Super AMS clone support. - Compatible with Super AMS, but uses a 16-bit bus. - - Up to 1Mb of SRAM. Straightforward mapper, works with 4kb chunks. -*/ - -/* prototypes */ -static void ti99_4p_mapper_cru_w(int offset, int data); -static READ16_HANDLER(ti99_4p_mapper_r); -static WRITE16_HANDLER(ti99_4p_mapper_w); - - -static const ti99_peb_16bit_card_handlers_t ti99_4p_mapper_handlers = -{ - NULL, - ti99_4p_mapper_cru_w, - ti99_4p_mapper_r, - ti99_4p_mapper_w -}; - - -static int ti99_4p_mapper_on; -static int ti99_4p_mapper_lookup[16]; - - -/* set up handlers, and set initial state */ -static void ti99_4p_mapper_init(void) -{ - int i; - - /* Not required at run-time */ - /*memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x2fff, MRA16_BANK3); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x2fff, MWA16_BANK3); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x3000, 0x3fff, MRA16_BANK4); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x3000, 0x3fff, MWA16_BANK4); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xafff, MRA16_BANK5); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xafff, MWA16_BANK5); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xbfff, MRA16_BANK6); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xbfff, MWA16_BANK6); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, MRA16_BANK7); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, MWA16_BANK7); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, MRA16_BANK8); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, MWA16_BANK8); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, MRA16_BANK9); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, MWA16_BANK9); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xf000, 0xffff, MRA16_BANK10); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xf000, 0xffff, MWA16_BANK10);*/ - - ti99_peb_set_16bit_card_handlers(0x1e00, & ti99_4p_mapper_handlers); - - ti99_4p_mapper_on = 0; - - for (i=0; i<16; i++) - { - ti99_4p_mapper_lookup[i] = i << 11; - - /* update bank base */ - switch (i) - { - case 2: - case 3: - memory_set_bankptr(3+(i-2), xRAM_ptr + (i<<11)); - break; - - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - memory_set_bankptr(5+(i-10), xRAM_ptr + (i<<11)); - break; - } - } -} - -/* write CRU bit: - bit0: enable/disable mapper registers in DSR space, - bit1: enable/disable address mapping */ -static void ti99_4p_mapper_cru_w(int offset, int data) -{ - int i; - - if (offset == 1) - { - if (ti99_4p_mapper_on != data) - { - ti99_4p_mapper_on = data; - - for (i=0; i<16; i++) - { - /* update bank base */ - switch (i) - { - case 2: - case 3: - memory_set_bankptr(3+(i-2), xRAM_ptr + (ti99_4p_mapper_on ? (ti99_4p_mapper_lookup[i]) : (i<<11))); - break; - - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - memory_set_bankptr(5+(i-10), xRAM_ptr + (ti99_4p_mapper_on ? (ti99_4p_mapper_lookup[i]) : (i<<11))); - break; - } - } - } - } - -} - -/* read a mapper register */ -static READ16_HANDLER(ti99_4p_mapper_r) -{ - return (ti99_4p_mapper_lookup[offset & 0xf] >> 3); -} - -/* write a mapper register */ -static WRITE16_HANDLER(ti99_4p_mapper_w) -{ - int page = offset & 0xf; - - ti99_4p_mapper_lookup[page] = (data & 0xff00) << 3; - - if (ti99_4p_mapper_on) - { - /* update bank base */ - switch (page) - { - case 2: - case 3: - memory_set_bankptr(3+(page-2), xRAM_ptr+ti99_4p_mapper_lookup[page]); - break; - - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - memory_set_bankptr(5+(page-10), xRAM_ptr+ti99_4p_mapper_lookup[page]); - break; - } - } -} - - -/*===========================================================================*/ -/* - myarc-ish memory extension support (foundation, and myarc clones). - - Up to 512kb of RAM. Straightforward mapper, works with 32kb chunks. -*/ - -static int myarc_cru_r(int offset); -static void myarc_cru_w(int offset, int data); - -static READ16_HANDLER ( ti99_myarcxramlow_r ); -static WRITE16_HANDLER ( ti99_myarcxramlow_w ); -static READ16_HANDLER ( ti99_myarcxramhigh_r ); -static WRITE16_HANDLER ( ti99_myarcxramhigh_w ); - - -static const ti99_peb_card_handlers_t myarc_expansion_handlers = -{ - myarc_cru_r, - myarc_cru_w, - NULL, - NULL -}; - - -static int myarc_cur_page_offset; -static int myarc_page_offset_mask; - - -/* set up myarc handlers, and set initial state */ -static void ti99_myarcxram_init(void) -{ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_myarcxramlow_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, ti99_myarcxramlow_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_myarcxramhigh_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, ti99_myarcxramhigh_w); - - switch (xRAM_kind) - { - case xRAM_kind_foundation_128k: /* 128kb foundation */ - case xRAM_kind_myarc_128k: /* 128kb myarc clone */ - myarc_page_offset_mask = 0x0c000; - break; - case xRAM_kind_foundation_512k: /* 512kb foundation */ - case xRAM_kind_myarc_512k: /* 512kb myarc clone */ - myarc_page_offset_mask = 0x3c000; - break; - default: - break; /* let's just keep GCC's big mouth shut */ - } - - switch (xRAM_kind) - { - case xRAM_kind_foundation_128k: /* 128kb foundation */ - case xRAM_kind_foundation_512k: /* 512kb foundation */ - ti99_peb_set_card_handlers(0x1e00, & myarc_expansion_handlers); - break; - case xRAM_kind_myarc_128k: /* 128kb myarc clone */ - case xRAM_kind_myarc_512k: /* 512kb myarc clone */ - ti99_peb_set_card_handlers(0x1000, & myarc_expansion_handlers); - ti99_peb_set_card_handlers(0x1900, & myarc_expansion_handlers); - break; - default: - break; /* let's just keep GCC's big mouth shut */ - } - - myarc_cur_page_offset = 0; -} - -/* read CRU bit: - bit 1-2 (128kb) or 1-4 (512kb): read current map offset */ -static int myarc_cru_r(int offset) -{ - /*if (offset == 0)*/ /* right??? */ - { - return (myarc_cur_page_offset >> 14); - } -} - -/* write CRU bit: - bit 1-2 (128kb) or 1-4 (512kb): write map offset */ -static void myarc_cru_w(int offset, int data) -{ - offset &= 0x7; /* right??? */ - if (offset >= 1) - { - int mask = 1 << (offset-1+14); - - if (data) - myarc_cur_page_offset |= mask; - else - myarc_cur_page_offset &= ~mask; - - myarc_cur_page_offset &= myarc_page_offset_mask; - } -} - -/* low 8 kb: 0x2000-0x3fff */ -static READ16_HANDLER ( ti99_myarcxramlow_r ) -{ - activecpu_adjust_icount(-4); - - return xRAM_ptr[myarc_cur_page_offset + offset]; -} - -static WRITE16_HANDLER ( ti99_myarcxramlow_w ) -{ - activecpu_adjust_icount(-4); - - COMBINE_DATA(xRAM_ptr + myarc_cur_page_offset + offset); -} - -/* high 24 kb: 0xa000-0xffff */ -static READ16_HANDLER ( ti99_myarcxramhigh_r ) -{ - activecpu_adjust_icount(-4); - - return xRAM_ptr[myarc_cur_page_offset + offset+0x1000]; -} - -static WRITE16_HANDLER ( ti99_myarcxramhigh_w ) -{ - activecpu_adjust_icount(-4); - - COMBINE_DATA(xRAM_ptr + myarc_cur_page_offset + offset+0x1000); -} - - -/*===========================================================================*/ -#if 0 -#pragma mark - -#pragma mark EVPC VIDEO CARD -#endif -/* - SNUG's EVPC emulation -*/ - -/* prototypes */ -static int evpc_cru_r(int offset); -static void evpc_cru_w(int offset, int data); -static READ8_HANDLER(evpc_mem_r); -static WRITE8_HANDLER(evpc_mem_w); - -/* pointer to the evpc DSR area */ -static UINT8 *ti99_evpc_DSR; - -/* pointer to the evpc novram area */ -/*static UINT8 *ti99_evpc_novram;*/ - -static int RAMEN; - -static int evpc_dsr_page; - -static const ti99_peb_card_handlers_t evpc_handlers = -{ - evpc_cru_r, - evpc_cru_w, - evpc_mem_r, - evpc_mem_w -}; - - -/* - Reset evpc card, set up handlers -*/ -static void ti99_evpc_init(void) -{ - ti99_evpc_DSR = memory_region(region_dsr) + offset_evpc_dsr; - - RAMEN = 0; - evpc_dsr_page = 0; - - ti99_peb_set_card_handlers(0x1400, & evpc_handlers); -} - -/* - Read evpc CRU interface -*/ -static int evpc_cru_r(int offset) -{ - return 0; /* dip-switch value */ -} - -/* - Write evpc CRU interface -*/ -static void evpc_cru_w(int offset, int data) -{ - switch (offset) - { - case 0: - break; - - case 1: - if (data) - evpc_dsr_page |= 1; - else - evpc_dsr_page &= ~1; - break; - - case 2: - break; - - case 3: - RAMEN = data; - break; - - case 4: - if (data) - evpc_dsr_page |= 4; - else - evpc_dsr_page &= ~4; - break; - - case 5: - if (data) - evpc_dsr_page |= 2; - else - evpc_dsr_page &= ~2; - break; - - case 6: - break; - - case 7: - break; - } -} - - -static struct -{ - UINT8 read_index, write_index, mask; - bool read; - int state; - struct { UINT8 red, green, blue; } color[0x100]; - //int dirty; -} evpc_palette; - -/* - read a byte in evpc DSR space -*/ -static READ8_HANDLER(evpc_mem_r) -{ - UINT8 reply = 0; - - - if (offset < 0x1f00) - { - reply = ti99_evpc_DSR[offset+evpc_dsr_page*0x2000]; - } - else if (offset < 0x1ff0) - { - if (RAMEN) - { /* NOVRAM */ - reply = 0; - } - else - { - reply = ti99_evpc_DSR[offset+evpc_dsr_page*0x2000]; - } - } - else - { /* PALETTE */ - logerror("palette read, offset=%d\n", offset-0x1ff0); - switch (offset - 0x1ff0) - { - case 0: - /* Palette Read Address Register */ - logerror("EVPC palette address read\n"); - reply = evpc_palette.write_index; - break; - - case 2: - /* Palette Read Color Value */ - logerror("EVPC palette color read\n"); - if (evpc_palette.read) - { - switch (evpc_palette.state) - { - case 0: - reply = evpc_palette.color[evpc_palette.read_index].red; - break; - case 1: - reply = evpc_palette.color[evpc_palette.read_index].green; - break; - case 2: - reply = evpc_palette.color[evpc_palette.read_index].blue; - break; - } - evpc_palette.state++; - if (evpc_palette.state == 3) - { - evpc_palette.state = 0; - evpc_palette.read_index++; - } - } - break; - - case 4: - /* Palette Read Pixel Mask */ - logerror("EVPC palette mask read\n"); - reply = evpc_palette.mask; - break; - case 6: - /* Palette Read Address Register for Color Value */ - logerror("EVPC palette status read\n"); - if (evpc_palette.read) - reply = 0; - else - reply = 3; - break; - } - } - - return reply; -} - -/* - write a byte in evpc DSR space -*/ -static WRITE8_HANDLER(evpc_mem_w) -{ - if ((offset >= 0x1f00) && (offset < 0x1ff0) && RAMEN) - { /* NOVRAM */ - } - else if (offset >= 0x1ff0) - { /* PALETTE */ - logerror("palette write, offset=%d\n, data=%d", offset-0x1ff0, data); - switch (offset - 0x1ff0) - { - case 8: - /* Palette Write Address Register */ - logerror("EVPC palette address write (for write access)\n"); - evpc_palette.write_index = data; - evpc_palette.state = 0; - evpc_palette.read = 0; - break; - - case 10: - /* Palette Write Color Value */ - logerror("EVPC palette color write\n"); - if (! evpc_palette.read) - { - switch (evpc_palette.state) - { - case 0: - evpc_palette.color[evpc_palette.write_index].red = data; - break; - case 1: - evpc_palette.color[evpc_palette.write_index].green = data; - break; - case 2: - evpc_palette.color[evpc_palette.write_index].blue = data; - break; - } - evpc_palette.state++; - if (evpc_palette.state == 3) - { - evpc_palette.state = 0; - evpc_palette.write_index++; - } - //evpc_palette.dirty = 1; - } - break; - - case 12: - /* Palette Write Pixel Mask */ - logerror("EVPC palette mask write\n"); - evpc_palette.mask = data; - break; - - case 14: - /* Palette Write Address Register for Color Value */ - logerror("EVPC palette address write (for read access)\n"); - evpc_palette.read_index=data; - evpc_palette.state=0; - evpc_palette.read=1; - break; - } - } -} diff --git a/mess/machine/tx0.c b/mess/machine/tx0.c deleted file mode 100644 index b7ecf5ea6..000000000 --- a/mess/machine/tx0.c +++ /dev/null @@ -1,1265 +0,0 @@ -/* - TX-0 -* - Raphael Nabet, 2004 -*/ - -#include "driver.h" - -#include "cpu/pdp1/tx0.h" -#include "includes/tx0.h" -#include "vidhrdw/crt.h" - - -static void reader_callback(int dummy); -static void puncher_callback(int dummy); -static void prt_callback(int dummy); -static void dis_callback(int dummy); - - -/* tape reader registers */ -typedef struct tape_reader_t -{ - mess_image *fd; /* file descriptor of tape image */ - - int motor_on; /* 1-bit reader motor on */ - - int rcl; /* 1-bit reader clutch */ - int rc; /* 2-bit reader counter */ - - mame_timer *timer; /* timer to simulate reader timing */ -} tape_reader_t; - -static tape_reader_t tape_reader; - - -/* tape puncher registers */ -typedef struct tape_puncher_t -{ - mess_image *fd; /* file descriptor of tape image */ - - mame_timer *timer; /* timer to generate completion pulses */ -} tape_puncher_t; - -static tape_puncher_t tape_puncher; - - -/* typewriter registers */ -typedef struct typewriter_t -{ - mess_image *fd; /* file descriptor of output image */ - - mame_timer *prt_timer;/* timer to generate completion pulses */ -} typewriter_t; - -static typewriter_t typewriter; - - -/* crt display timer */ -static mame_timer *dis_timer; - - -/* magnetic tape unit registers */ -typedef struct magtape_t -{ - mess_image *img; /* image descriptor */ - - enum - { - MTS_UNSELECTED, - MTS_SELECTING, - MTS_SELECTED, - MTS_UNSELECTING - } state; - - int command; - int binary_flag; - - union - { - enum - { - MTBSS_STATE0, - MTBSS_STATE1, - MTBSS_STATE2, - MTBSS_STATE3, - MTBSS_STATE4, - MTBSS_STATE5, - MTBSS_STATE6 - } backspace_state; - struct - { - enum - { - MTRDS_STATE0, - MTRDS_STATE1, - MTRDS_STATE2, - MTRDS_STATE3, - MTRDS_STATE4, - MTRDS_STATE5, - MTRDS_STATE6 - } state; - int space_flag; - } read; - struct - { - enum - { - MTWTS_STATE0, - MTWTS_STATE1, - MTWTS_STATE2, - MTWTS_STATE3 - } state; - int counter; - } write; - } u; - - int sel_pending; - int cpy_pending; - - enum - { - MTIRGP_START, - MTIRGP_ENDMINUS1, - MTIRGP_END - } irg_pos; /* position relative to inter-record gap */ - - int long_parity; - - mame_timer *timer; /* timer to simulate reader timing */ -} magtape_t; - -static magtape_t magtape; - -enum -{ - PF_RWC = 040, - PF_EOR = 020, - PF_PC = 010, - PF_EOT = 004 -}; - - -static OPBASE_HANDLER(setOPbasefunc) -{ - /* just to get rid of the warnings */ - return -1; -} - - -static void tx0_machine_reset(running_machine *machine) -{ - /* reset device state */ - tape_reader.rcl = tape_reader.rc = 0; -} - - -static void tx0_machine_stop(running_machine *machine) -{ - /* the core will take care of freeing the timers, BUT we must set the variables - to NULL if we don't want to risk confusing the tape image init function */ - tape_reader.timer = tape_puncher.timer = typewriter.prt_timer = dis_timer = NULL; -} - - -MACHINE_START( tx0 ) -{ - memory_set_opbase_handler(0, setOPbasefunc);; - - tape_reader.timer = timer_alloc(reader_callback); - tape_puncher.timer = timer_alloc(puncher_callback); - typewriter.prt_timer = timer_alloc(prt_callback); - dis_timer = timer_alloc(dis_callback); - - add_reset_callback(machine, tx0_machine_reset); - add_exit_callback(machine, tx0_machine_stop); - return 0; -} - - -/* - perforated tape handling -*/ - -void tx0_tape_get_open_mode(const struct IODevice *dev, int id, - unsigned int *readable, unsigned int *writeable, unsigned int *creatable) -{ - /* unit 0 is read-only, unit 1 is write-only */ - if (id) - { - *readable = 0; - *writeable = 1; - *creatable = 1; - } - else - { - *readable = 1; - *writeable = 0; - *creatable = 0; - } -} - - -DEVICE_INIT( tx0_tape ) -{ - return INIT_PASS; -} - - -/* - Open a perforated tape image - - unit 0 is reader (read-only), unit 1 is puncher (write-only) -*/ -DEVICE_LOAD( tx0_tape ) -{ - int id = image_index_in_device(image); - - switch (id) - { - case 0: - /* reader unit */ - tape_reader.fd = image; - - /* start motor */ - tape_reader.motor_on = 1; - - /* restart reader IO when necessary */ - /* note that this function may be called before tx0_init_machine, therefore - before tape_reader.timer is allocated. It does not matter, as the clutch is never - down at power-up, but we must not call timer_enable with a NULL parameter! */ - if (tape_reader.timer) - { - if (tape_reader.motor_on && tape_reader.rcl) - { - /* delay is approximately 1/400s */ - timer_adjust(tape_reader.timer, TIME_IN_MSEC(2.5), 0, 0.); - } - else - { - timer_enable(tape_reader.timer, 0); - } - } - break; - - case 1: - /* punch unit */ - tape_puncher.fd = image; - break; - } - - return INIT_PASS; -} - -DEVICE_UNLOAD( tx0_tape ) -{ - int id = image_index_in_device(image); - - switch (id) - { - case 0: - /* reader unit */ - tape_reader.fd = NULL; - - /* stop motor */ - tape_reader.motor_on = 0; - - if (tape_reader.timer) - timer_enable(tape_reader.timer, 0); - break; - - case 1: - /* punch unit */ - tape_puncher.fd = NULL; - break; - } -} - -/* - Read a byte from perforated tape -*/ -static int tape_read(UINT8 *reply) -{ - if (tape_reader.fd && (image_fread(tape_reader.fd, reply, 1) == 1)) - return 0; /* unit OK */ - else - return 1; /* unit not ready */ -} - -/* - Write a byte to perforated tape -*/ -static void tape_write(UINT8 data) -{ - if (tape_puncher.fd) - image_fwrite(tape_puncher.fd, & data, 1); -} - -/* - common code for tape read commands (R1C, R3C, and read-in mode) -*/ -static void begin_tape_read(int binary) -{ - tape_reader.rcl = 1; - tape_reader.rc = (binary) ? 1 : 3; - - /* set up delay if tape is advancing */ - if (tape_reader.motor_on && tape_reader.rcl) - { - /* delay is approximately 1/400s */ - timer_adjust(tape_reader.timer, TIME_IN_MSEC(2.5), 0, 0.); - } - else - { - timer_enable(tape_reader.timer, 0); - } -} - - -/* - timer callback to simulate reader IO -*/ -static void reader_callback(int dummy) -{ - int not_ready; - UINT8 data; - int ac; - - - (void) dummy; - - if (tape_reader.rc) - { - not_ready = tape_read(& data); - if (not_ready) - { - tape_reader.motor_on = 0; /* let us stop the motor */ - } - else - { - if (data & 0100) - { - /* read current AC */ - ac = cpunum_get_reg(0, TX0_AC); - /* cycle right */ - ac = (ac >> 1) | ((ac & 1) << 17); - /* shuffle and insert data into AC */ - ac = (ac /*& 0333333*/) | ((data & 001) << 17) | ((data & 002) << 13) | ((data & 004) << 9) | ((data & 010) << 5) | ((data & 020) << 1) | ((data & 040) >> 3); - /* write modified AC */ - cpunum_set_reg(0, TX0_AC, ac); - - tape_reader.rc = (tape_reader.rc+1) & 3; - - if (tape_reader.rc == 0) - { /* IO complete */ - tape_reader.rcl = 0; - tx0_pulse_io_complete(); - } - } - } - } - - if (tape_reader.motor_on && tape_reader.rcl) - /* delay is approximately 1/400s */ - timer_adjust(tape_reader.timer, TIME_IN_MSEC(2.5), 0, 0.); - else - timer_enable(tape_reader.timer, 0); -} - -/* - timer callback to generate punch completion pulse -*/ -static void puncher_callback(int dummy) -{ - tx0_pulse_io_complete(); -} - -/* - Initiate read of a 6-bit word from tape -*/ -void tx0_io_r1l(void) -{ - begin_tape_read(0); -} - -/* - Initiate read of a 18-bit word from tape (used in read-in mode) -*/ -void tx0_io_r3l(void) -{ - begin_tape_read(1); -} - -/* - Write a 7-bit word to tape (7th bit clear) -*/ -void tx0_io_p6h(void) -{ - int ac; - - /* read current AC */ - ac = cpunum_get_reg(0, TX0_AC); - /* shuffle and punch 6-bit word */ - tape_write(((ac & 0100000) >> 15) | ((ac & 0010000) >> 11) | ((ac & 0001000) >> 7) | ((ac & 0000100) >> 3) | ((ac & 0000010) << 1) | ((ac & 0000001) << 5)); - - timer_adjust(tape_puncher.timer, TIME_IN_MSEC(15.8), 0, 0.); -} - -/* - Write a 7-bit word to tape (7th bit set) -*/ -void tx0_io_p7h(void) -{ - int ac; - - /* read current AC */ - ac = cpunum_get_reg(0, TX0_AC); - /* shuffle and punch 6-bit word */ - tape_write(((ac & 0100000) >> 15) | ((ac & 0010000) >> 11) | ((ac & 0001000) >> 7) | ((ac & 0000100) >> 3) | ((ac & 0000010) << 1) | ((ac & 0000001) << 5) | 0100); - - timer_adjust(tape_puncher.timer, TIME_IN_MSEC(15.8), 0, 0.); -} - - -/* - Typewriter handling - - The alphanumeric on-line typewriter is a standard device on tx-0: it can - both handle keyboard input and print output text. -*/ - -/* - Open a file for typewriter output -*/ -DEVICE_LOAD(tx0_typewriter) -{ - /* open file */ - typewriter.fd = image; - - return INIT_PASS; -} - -DEVICE_UNLOAD(tx0_typewriter) -{ - typewriter.fd = NULL; -} - -/* - Write a character to typewriter -*/ -static void typewriter_out(UINT8 data) -{ - tx0_typewriter_drawchar(data); - if (typewriter.fd) - image_fwrite(typewriter.fd, & data, 1); -} - -/* - timer callback to generate typewriter completion pulse -*/ -static void prt_callback(int dummy) -{ - (void) dummy; - tx0_pulse_io_complete(); -} - -/* - prt io callback -*/ -void tx0_io_prt(void) -{ - int ac; - int ch; - - /* read current AC */ - ac = cpunum_get_reg(0, TX0_AC); - /* shuffle and print 6-bit word */ - ch = ((ac & 0100000) >> 15) | ((ac & 0010000) >> 11) | ((ac & 0001000) >> 7) | ((ac & 0000100) >> 3) | ((ac & 0000010) << 1) | ((ac & 0000001) << 5); - typewriter_out(ch); - - timer_adjust(typewriter.prt_timer, TIME_IN_MSEC(100), 0, 0.); -} - - -/* - timer callback to generate crt completion pulse -*/ -static void dis_callback(int dummy) -{ - (void) dummy; - tx0_pulse_io_complete(); -} - -/* - Plot one point on crt -*/ -void tx0_io_dis(void) -{ - int ac; - int x; - int y; - - ac = cpunum_get_reg(0, TX0_AC); - x = ac >> 9; - y = ac & 0777; - tx0_plot(x, y); - - timer_adjust(dis_timer, TIME_IN_USEC(50), 0, 0.); -} - - -/* - Magtape support - - Magtape format: - - 7-track tape, 6-bit data, 1-bit parity - - -*/ - -static void schedule_select(void) -{ - double delay = 0.0; - - switch (magtape.command) - { - case 0: /* backspace */ - delay = TIME_IN_MSEC(4.6); - break; - case 1: /* read */ - delay = TIME_IN_MSEC(8.6); - break; - case 2: /* rewind */ - delay = TIME_IN_MSEC(12); - break; - case 3: /* write */ - delay = TIME_IN_MSEC(4.6); - break; - } - timer_adjust(magtape.timer, delay, 0, 0.); -} - -static void schedule_unselect(void) -{ - double delay = 0.0; - - switch (magtape.command) - { - case 0: /* backspace */ - delay = TIME_IN_MSEC(5.75); - break; - case 1: /* read */ - delay = TIME_IN_MSEC(1.75); - break; - case 2: /* rewind */ - delay = TIME_IN_MSEC(0); - break; - case 3: /* write */ - delay = TIME_IN_MSEC(5.75); - break; - } - timer_adjust(magtape.timer, delay, 0, 0.); -} - -DEVICE_INIT( tx0_magtape ) -{ - magtape.img = image; - - return INIT_PASS; -} - -/* - Open a magnetic tape image -*/ -DEVICE_LOAD( tx0_magtape ) -{ - magtape.img = image; - - magtape.irg_pos = MTIRGP_END; - - /* restart IO when necessary */ - /* note that this function may be called before tx0_init_machine, therefore - before magtape.timer is allocated. We must not call timer_enable with a - NULL parameter! */ - if (magtape.timer) - { - if (magtape.state == MTS_SELECTING) - schedule_select(); - } - - return INIT_PASS; -} - -DEVICE_UNLOAD( tx0_magtape ) -{ - magtape.img = NULL; - - if (magtape.timer) - { - if (magtape.state == MTS_SELECTING) - /* I/O has not actually started, we can cancel the selection */ - timer_enable(tape_reader.timer, 0); - if ((magtape.state == MTS_SELECTED) || ((magtape.state == MTS_SELECTING) && (magtape.command == 2))) - { /* unit has become unavailable */ - magtape.state = MTS_UNSELECTING; - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_RWC); - schedule_unselect(); - } - } -} - -static void magtape_callback(int dummy) -{ - UINT8 buf = 0; - int lr; - - (void) dummy; - - switch (magtape.state) - { - case MTS_UNSELECTING: - magtape.state = MTS_UNSELECTED; - - case MTS_UNSELECTED: - if (magtape.sel_pending) - { - int mar; - - mar = cpunum_get_reg(0, TX0_MAR); - - if ((mar & 03) != 1) - { /* unimplemented device: remain in unselected state and set rwc - flag? */ - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_RWC); - } - else - { - magtape.state = MTS_SELECTING; - - magtape.command = (mar & 014 >> 2); - - magtape.binary_flag = (mar & 020 >> 4); - - if (magtape.img) - schedule_select(); - } - - magtape.sel_pending = FALSE; - tx0_pulse_io_complete(); - } - break; - - case MTS_SELECTING: - magtape.state = MTS_SELECTED; - switch (magtape.command) - { - case 0: /* backspace */ - magtape.long_parity = 0177; - magtape.u.backspace_state = MTBSS_STATE0; - break; - case 1: /* read */ - magtape.long_parity = 0177; - magtape.u.read.state = MTRDS_STATE0; - break; - case 2: /* rewind */ - break; - case 3: /* write */ - magtape.long_parity = 0177; - magtape.u.write.state = MTWTS_STATE0; - switch (magtape.irg_pos) - { - case MTIRGP_START: - magtape.u.write.counter = 150; - break; - case MTIRGP_ENDMINUS1: - magtape.u.write.counter = 1; - break; - case MTIRGP_END: - magtape.u.write.counter = 0; - break; - } - break; - } - - case MTS_SELECTED: - switch (magtape.command) - { - case 0: /* backspace */ - if (image_ftell(magtape.img) == 0) - { /* tape at ldp */ - magtape.state = MTS_UNSELECTING; - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_RWC); - schedule_unselect(); - } - else if (image_fseek(magtape.img, -1, SEEK_CUR)) - { /* eject tape */ - image_unload(magtape.img); - } - else if (image_fread(magtape.img, &buf, 1) != 1) - { /* eject tape */ - image_unload(magtape.img); - } - else if (image_fseek(magtape.img, -1, SEEK_CUR)) - { /* eject tape */ - image_unload(magtape.img); - } - else - { - buf &= 0x7f; /* 7-bit tape, ignore 8th bit */ - magtape.long_parity ^= buf; - switch (magtape.u.backspace_state) - { - case MTBSS_STATE0: - /* STATE0 -> initial interrecord gap, longitudinal parity; - if longitudinal parity was all 0s, gap between longitudinal - parity and data, first byte of data */ - if (buf != 0) - magtape.u.backspace_state = MTBSS_STATE1; - break; - case MTBSS_STATE1: - /* STATE1 -> first byte of gap between longitudinal parity and - data, second byte of data */ - if (buf == 0) - magtape.u.backspace_state = MTBSS_STATE2; - else - magtape.u.backspace_state = MTBSS_STATE5; - break; - case MTBSS_STATE2: - /* STATE2 -> second byte of gap between longitudinal parity and - data */ - if (buf == 0) - magtape.u.backspace_state = MTBSS_STATE3; - else - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - break; - case MTBSS_STATE3: - /* STATE3 -> third byte of gap between longitudinal parity and - data */ - if (buf == 0) - magtape.u.backspace_state = MTBSS_STATE4; - else - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - break; - case MTBSS_STATE4: - /* STATE4 -> first byte of data word, first byte of - interrecord gap after data */ - if (buf == 0) - { - if (magtape.long_parity) - logerror("invalid longitudinal parity\n"); - /* set EOR and unselect... */ - magtape.state = MTS_UNSELECTING; - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_EOR); - schedule_unselect(); - magtape.irg_pos = MTIRGP_ENDMINUS1; - } - else - magtape.u.backspace_state = MTBSS_STATE5; - break; - case MTBSS_STATE5: - /* STATE5 -> second byte of data word */ - if (buf == 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - else - magtape.u.backspace_state = MTBSS_STATE6; - break; - case MTBSS_STATE6: - /* STATE6 -> third byte of data word */ - if (buf == 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - else - magtape.u.backspace_state = MTBSS_STATE6; - break; - } - if (magtape.state != MTS_UNSELECTING) - timer_adjust(magtape.timer, TIME_IN_USEC(66), 0, 0.); - } - break; - - case 1: /* read */ - if (image_fread(magtape.img, &buf, 1) != 1) - { /* I/O error or EOF? */ - /* The MAME fileio layer makes it very hard to make the - difference... MAME seems to assume that I/O errors never - happen, whereas it is really easy to cause one by - deconnecting an external drive the image is located on!!! */ - UINT64 offs; - offs = image_ftell(magtape.img); - if (image_fseek(magtape.img, 0, SEEK_END) || (offs != image_ftell(magtape.img))) - { /* I/O error */ - /* eject tape */ - image_unload(magtape.img); - } - else - { /* end of tape -> ??? */ - /* maybe we run past end of tape, so that tape is ejected from - upper reel and unit becomes unavailable??? */ - /*image_unload(magtape.img);*/ - /* Or do we stop at EOT mark??? */ - magtape.state = MTS_UNSELECTING; - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_EOT); - schedule_unselect(); - } - } - else - { - buf &= 0x7f; /* 7-bit tape, ignore 8th bit */ - magtape.long_parity ^= buf; - switch (magtape.u.read.state) - { - case MTRDS_STATE0: - /* STATE0 -> interrecord blank or first byte of data */ - if (buf != 0) - { - if (magtape.cpy_pending) - { /* read command */ - magtape.u.read.space_flag = FALSE; - tx0_pulse_io_complete(); - cpunum_set_reg(0, TX0_LR, ((cpunum_get_reg(0, TX0_LR) >> 1) & 0333333) - | ((buf & 040) << 12) | ((buf & 020) << 10) | ((buf & 010) << 8) | ((buf & 004) << 6) | ((buf & 002) << 4) | ((buf & 001) << 2)); - /* check parity */ - if (! (((buf ^ (buf >> 1) ^ (buf >> 2) ^ (buf >> 3) ^ (buf >> 4) ^ (buf >> 5) ^ (buf >> 6) ^ (buf >> 7)) & 1) ^ magtape.binary_flag)) - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_PC); - } - else - { /* space command */ - magtape.u.read.space_flag = TRUE; - } - magtape.u.read.state = MTRDS_STATE1; - } - break; - case MTRDS_STATE1: - /* STATE1 -> second byte of data word */ - if (buf == 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - if (!magtape.u.read.space_flag) - { - cpunum_set_reg(0, TX0_LR, ((cpunum_get_reg(0, TX0_LR) >> 1) & 0333333) - | ((buf & 040) << 12) | ((buf & 020) << 10) | ((buf & 010) << 8) | ((buf & 004) << 6) | ((buf & 002) << 4) | ((buf & 001) << 2)); - /* check parity */ - if (! (((buf ^ (buf >> 1) ^ (buf >> 2) ^ (buf >> 3) ^ (buf >> 4) ^ (buf >> 5) ^ (buf >> 6) ^ (buf >> 7)) & 1) ^ magtape.binary_flag)) - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_PC); - } - magtape.u.read.state = MTRDS_STATE2; - break; - case MTRDS_STATE2: - /* STATE2 -> third byte of data word */ - if (buf == 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - if (!magtape.u.read.space_flag) - { - cpunum_set_reg(0, TX0_LR, ((cpunum_get_reg(0, TX0_LR) >> 1) & 0333333) - | ((buf & 040) << 12) | ((buf & 020) << 10) | ((buf & 010) << 8) | ((buf & 004) << 6) | ((buf & 002) << 4) | ((buf & 001) << 2)); - /* check parity */ - if (! (((buf ^ (buf >> 1) ^ (buf >> 2) ^ (buf >> 3) ^ (buf >> 4) ^ (buf >> 5) ^ (buf >> 6) ^ (buf >> 7)) & 1) ^ magtape.binary_flag)) - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_PC); - /* synchronize with cpy instruction */ - if (magtape.cpy_pending) - tx0_pulse_io_complete(); - else - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_RWC); - } - magtape.u.read.state = MTRDS_STATE3; - break; - case MTRDS_STATE3: - /* STATE3 -> first byte of new word of data, or first byte - of gap between data and longitudinal parity */ - if (buf != 0) - { - magtape.u.read.state = MTRDS_STATE1; - if (!magtape.u.read.space_flag) - { - cpunum_set_reg(0, TX0_LR, ((cpunum_get_reg(0, TX0_LR) >> 1) & 0333333) - | ((buf & 040) << 12) | ((buf & 020) << 10) | ((buf & 010) << 8) | ((buf & 004) << 6) | ((buf & 002) << 4) | ((buf & 001) << 2)); - /* check parity */ - if (! (((buf ^ (buf >> 1) ^ (buf >> 2) ^ (buf >> 3) ^ (buf >> 4) ^ (buf >> 5) ^ (buf >> 6) ^ (buf >> 7)) & 1) ^ magtape.binary_flag)) - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_PC); - } - } - else - magtape.u.read.state = MTRDS_STATE4; - break; - case MTRDS_STATE4: - /* STATE4 -> second byte of gap between data and - longitudinal parity */ - if (buf != 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - else - magtape.u.read.state = MTRDS_STATE5; - break; - - case MTRDS_STATE5: - /* STATE5 -> third byte of gap between data and - longitudinal parity */ - if (buf != 0) - { - logerror("tape seems to be corrupt\n"); - /* eject tape */ - image_unload(magtape.img); - } - else - magtape.u.read.state = MTRDS_STATE6; - break; - - case MTRDS_STATE6: - /* STATE6 -> longitudinal parity */ - /* check parity */ - if (magtape.long_parity) - { - logerror("invalid longitudinal parity\n"); - /* no idea if the original tx-0 magtape controller - checks parity, but can't harm if we do */ - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_PC); - } - /* set EOR and unselect... */ - magtape.state = MTS_UNSELECTING; - cpunum_set_reg(0, TX0_PF, cpunum_get_reg(0, TX0_PF) | PF_EOR); - schedule_unselect(); - magtape.irg_pos = MTIRGP_START; - break; - } - if (magtape.state != MTS_UNSELECTING) - timer_adjust(magtape.timer, TIME_IN_USEC(66), 0, 0.); - } - break; - - case 2: /* rewind */ - magtape.state = MTS_UNSELECTING; - /* we rewind at 10*read speed (I don't know the real value) */ - timer_adjust(magtape.timer, TIME_IN_USEC(6.6)*image_ftell(magtape.img), 0, 0.); - //schedule_unselect(); - image_fseek(magtape.img, 0, SEEK_END); - magtape.irg_pos = MTIRGP_END; - break; - - case 3: /* write */ - switch (magtape.u.write.state) - { - case MTWTS_STATE0: - if (magtape.u.write.counter != 0) - { - magtape.u.write.counter--; - buf = 0; - break; - } - else - { - magtape.u.write.state = MTWTS_STATE1; - } - - case MTWTS_STATE1: - if (magtape.u.write.counter) - { - magtape.u.write.counter--; - lr = cpunum_get_reg(0, TX0_LR); - buf = ((lr >> 10) & 040) | ((lr >> 8) & 020) | ((lr >> 6) & 010) | ((lr >> 4) & 004) | ((lr >> 2) & 002) | (lr & 001); - buf |= ((buf << 1) ^ (buf << 2) ^ (buf << 3) ^ (buf << 4) ^ (buf << 5) ^ (buf << 6) ^ ((!magtape.binary_flag) << 6)) & 0100; - cpunum_set_reg(0, TX0_LR, lr >> 1); - } - else - { - if (magtape.cpy_pending) - { - tx0_pulse_io_complete(); - lr = cpunum_get_reg(0, TX0_LR); - buf = ((lr >> 10) & 040) | ((lr >> 8) & 020) | ((lr >> 6) & 010) | ((lr >> 4) & 004) | ((lr >> 2) & 002) | (lr & 001); - buf |= ((buf << 1) ^ (buf << 2) ^ (buf << 3) ^ (buf << 4) ^ (buf << 5) ^ (buf << 6) ^ ((!magtape.binary_flag) << 6)) & 0100; - cpunum_set_reg(0, TX0_LR, lr >> 1); - magtape.u.write.counter = 2; - break; - } - else - { - magtape.u.write.state = MTWTS_STATE2; - magtape.u.write.counter = 3; - } - } - - case MTWTS_STATE2: - if (magtape.u.write.counter != 0) - { - magtape.u.write.counter--; - buf = 0; - break; - } - else - { - buf = magtape.long_parity; - magtape.state = MTWTS_STATE3; - magtape.u.write.counter = 150; - } - break; - - case MTWTS_STATE3: - if (magtape.u.write.counter != 0) - { - magtape.u.write.counter--; - buf = 0; - break; - } - else - { - magtape.state = MTS_UNSELECTING; - schedule_unselect(); - magtape.irg_pos = MTIRGP_END; - } - break; - } - if (magtape.state != MTS_UNSELECTING) - { /* write data word */ - magtape.long_parity ^= buf; - if (image_fwrite(magtape.img, &buf, 1) != 1) - { /* I/O error */ - /* eject tape */ - image_unload(magtape.img); - } - else - timer_adjust(magtape.timer, TIME_IN_USEC(66), 0, 0.); - } - break; - } - break; - } -} - -void tx0_sel(void) -{ - magtape.sel_pending = TRUE; - - if (magtape.state == MTS_UNSELECTED) - { - if (0) - magtape_callback(0); - timer_adjust(magtape.timer, TIME_NOW, 0, 0.); - } -} - -void tx0_io_cpy(void) -{ - switch (magtape.state) - { - case MTS_UNSELECTED: - case MTS_UNSELECTING: - /* ignore instruction and set rwc flag? */ - tx0_pulse_io_complete(); - break; - - case MTS_SELECTING: - case MTS_SELECTED: - switch (magtape.command) - { - case 0: /* backspace */ - case 2: /* rewind */ - /* ignore instruction and set rwc flag? */ - tx0_pulse_io_complete(); - break; - case 1: /* read */ - case 3: /* write */ - magtape.cpy_pending = TRUE; - break; - } - break; - } -} - - -/* - callback which is called when reset line is pulsed - - IO devices should reset -*/ -void tx0_io_reset_callback(void) -{ - tape_reader.rcl = tape_reader.rc = 0; - if (tape_reader.timer) - timer_enable(tape_reader.timer, 0); - - if (tape_puncher.timer) - timer_enable(tape_puncher.timer, 0); - - if (typewriter.prt_timer) - timer_enable(typewriter.prt_timer, 0); - - if (dis_timer) - timer_enable(dis_timer, 0); -} - - -/* - typewriter keyboard handler -*/ -static void tx0_keyboard(void) -{ - int i; - int j; - - int typewriter_keys[4]; - static int old_typewriter_keys[4]; - - int typewriter_transitions; - int charcode, lr; - - - for (i=0; i<4; i++) - typewriter_keys[i] = readinputport(tx0_typewriter + i); - - for (i=0; i<4; i++) - { - typewriter_transitions = typewriter_keys[i] & (~ old_typewriter_keys[i]); - if (typewriter_transitions) - { - for (j=0; (((typewriter_transitions >> j) & 1) == 0) /*&& (j<16)*/; j++) - ; - charcode = (i << 4) + j; - /* shuffle and insert data into LR */ - /* BTW, I am not sure how the char code is combined with the - previous LR */ - lr = (1 << 17) | ((charcode & 040) << 10) | ((charcode & 020) << 8) | ((charcode & 010) << 6) | ((charcode & 004) << 4) | ((charcode & 002) << 2) | ((charcode & 001) << 1); - /* write modified LR */ - cpunum_set_reg(0, TX0_LR, lr); - tx0_typewriter_drawchar(charcode); /* we want to echo input */ - break; - } - } - - for (i=0; i<4; i++) - old_typewriter_keys[i] = typewriter_keys[i]; -} - -/* - Not a real interrupt - just handle keyboard input -*/ -INTERRUPT_GEN( tx0_interrupt ) -{ - int control_keys; - int tsr_keys; - - static int old_control_keys; - static int old_tsr_keys; - static int tsr_index = 0; - - int control_transitions; - int tsr_transitions; - - - /* read new state of control keys */ - control_keys = readinputport(tx0_control_switches); - - if (control_keys & tx0_control) - { - /* compute transitions */ - control_transitions = control_keys & (~ old_control_keys); - - if (control_transitions & tx0_stop_cyc0) - { - cpunum_set_reg(0, TX0_STOP_CYC0, !cpunum_get_reg(0, TX0_STOP_CYC0)); - } - if (control_transitions & tx0_stop_cyc1) - { - cpunum_set_reg(0, TX0_STOP_CYC1, !cpunum_get_reg(0, TX0_STOP_CYC1)); - } - if (control_transitions & tx0_gbl_cm_sel) - { - cpunum_set_reg(0, TX0_GBL_CM_SEL, !cpunum_get_reg(0, TX0_GBL_CM_SEL)); - } - if (control_transitions & tx0_stop) - { - cpunum_set_reg(0, TX0_RUN, 0); - cpunum_set_reg(0, TX0_RIM, 0); - } - if (control_transitions & tx0_restart) - { - cpunum_set_reg(0, TX0_RUN, 1); - cpunum_set_reg(0, TX0_RIM, 0); - } - if (control_transitions & tx0_read_in) - { /* set cpu to read instructions from perforated tape */ - tx0_pulse_reset(); - cpunum_set_reg(0, TX0_RUN, 0); - cpunum_set_reg(0, TX0_RIM, 1); - } - if (control_transitions & tx0_toggle_dn) - { - tsr_index++; - if (tsr_index == 18) - tsr_index = 0; - } - if (control_transitions & tx0_toggle_up) - { - tsr_index--; - if (tsr_index == -1) - tsr_index = 17; - } - if (control_transitions & tx0_cm_sel) - { - if (tsr_index >= 2) - { - UINT32 cm_sel = (UINT32) cpunum_get_reg(0, TX0_CM_SEL); - cpunum_set_reg(0, TX0_CM_SEL, cm_sel ^ (1 << (tsr_index - 2))); - } - } - if (control_transitions & tx0_lr_sel) - { - if (tsr_index >= 2) - { - UINT32 lr_sel = (UINT32) cpunum_get_reg(0, TX0_LR_SEL); - cpunum_set_reg(0, TX0_LR_SEL, (lr_sel ^ (1 << (tsr_index - 2)))); - } - } - - /* remember new state of control keys */ - old_control_keys = control_keys; - - - /* handle toggle switch register keys */ - tsr_keys = (readinputport(tx0_tsr_switches_MSW) << 16) | readinputport(tx0_tsr_switches_LSW); - - /* compute transitions */ - tsr_transitions = tsr_keys & (~ old_tsr_keys); - - /* update toggle switch register */ - if (tsr_transitions) - cpunum_set_reg(0, TX0_TBR+tsr_index, cpunum_get_reg(0, TX0_TBR+tsr_index) ^ tsr_transitions); - - /* remember new state of toggle switch register keys */ - old_tsr_keys = tsr_keys; - } - else - { - old_control_keys = 0; - old_tsr_keys = 0; - - tx0_keyboard(); - } -} - - diff --git a/mess/machine/vectrex.c b/mess/machine/vectrex.c deleted file mode 100644 index e260185f3..000000000 --- a/mess/machine/vectrex.c +++ /dev/null @@ -1,315 +0,0 @@ -#include "driver.h" -#include "vidhrdw/vector.h" -#include "machine/6522via.h" -#include "cpu/m6809/m6809.h" -#include "sound/ay8910.h" -#include "image.h" - -#include "includes/vectrex.h" - -#define VC_BLACK 0x00000000 -#define VC_RED 0x00ff0000 -#define VC_GREEN 0x0000ff00 -#define VC_BLUE 0x000000ff -#define VC_WHITE VC_RED|VC_GREEN|VC_BLUE -#define VC_DARKRED 0x00800000 - -#define PORTB 0 -#define PORTA 1 - -/********************************************************************* - Global variables - *********************************************************************/ -unsigned char vectrex_via_out[2]; -UINT32 vectrex_beam_color = VC_WHITE; /* the color of the vectrex beam */ -int vectrex_imager_status = 0; /* 0 = off, 1 = right eye, 2 = left eye */ -double imager_freq; -mame_timer *imager_timer; -int vectrex_lightpen_port=0; -UINT8 *vectrex_ram_base; -size_t vectrex_ram_size; - -/********************************************************************* - Local variables - *********************************************************************/ - -/* Colors for right and left eye */ -static UINT32 imager_colors[6] = {VC_WHITE,VC_WHITE,VC_WHITE,VC_WHITE,VC_WHITE,VC_WHITE}; - -/* Starting points of the three colors */ -/* Values taken from J. Nelson's drawings*/ -//static const double narrow_escape_angles[3] = {0,0.15277778, 0.34444444}; -//static const double minestorm_3d_angles[3] = {0,0.16111111, 0.18888888}; -//static const double crazy_coaster_angles[3] = {0,0.15277778, 0.34444444}; - -static const double minestorm_3d_angles[3] = {0,0.1692, 0.2086}; -static const double narrow_escape_angles[3] = {0,0.1631, 0.3305}; -static const double crazy_coaster_angles[3] = {0,0.1631, 0.3305}; - - -static const double unknown_game_angles[3] = {0,0.16666666, 0.33333333}; -static const double *vectrex_imager_angles = unknown_game_angles; -static unsigned char vectrex_imager_pinlevel=0x00; - -static int vectrex_verify_cart (char *data) -{ - /* Verify the file is accepted by the Vectrex bios */ - if (!memcmp(data,"g GCE", 5)) - return IMAGE_VERIFY_PASS; - else - return IMAGE_VERIFY_FAIL; -} - -/********************************************************************* - ROM load and id functions - *********************************************************************/ -DEVICE_LOAD( vectrex_cart ) -{ - image_fread(image, memory_region(REGION_CPU1), 0x8000); - - /* check image! */ - if (vectrex_verify_cart((char*)memory_region(REGION_CPU1)) == IMAGE_VERIFY_FAIL) - { - logerror("Invalid image!\n"); - return INIT_FAIL; - } - - vectrex_imager_angles = narrow_escape_angles; - - /* let's do this 3D detection with a strcmp using data inside the cart images */ - /* slightly prettier than having to hardcode CRCs */ - - /* handle 3D Narrow Escape but skip the 2-d hack of it from Fred Taft */ - if (!memcmp(memory_region(REGION_CPU1)+0x11,"NARROW",6) && (((char*)memory_region(REGION_CPU1))[0x39] == 0x0c)) - { - vectrex_imager_angles = narrow_escape_angles; - } - - if (!memcmp(memory_region(REGION_CPU1)+0x11,"CRAZY COASTER",13)) - { - vectrex_imager_angles = crazy_coaster_angles; - } - - if (!memcmp(memory_region(REGION_CPU1)+0x11,"3D MINE STORM",13)) - { - vectrex_imager_angles = minestorm_3d_angles; - } - - return INIT_PASS; -} - -/********************************************************************* - Vectrex configuration (mainly 3D Imager) - *********************************************************************/ -void vectrex_configuration(void) -{ - unsigned char cport = input_port_5_r (0); - - /* Vectrex 'dipswitch' configuration */ - - /* Imager control */ - if (cport & 0x01) /* Imager enabled */ - { - if (vectrex_imager_status == 0) - vectrex_imager_status = cport & 0x01; - - vector_add_point_function = cport & 0x02 ? vectrex_add_point_stereo: vectrex_add_point; - - switch ((cport>>2) & 0x07) - { - case 0x00: - imager_colors[0]=imager_colors[1]=imager_colors[2]=VC_BLACK; - break; - case 0x01: - imager_colors[0]=imager_colors[1]=imager_colors[2]=VC_DARKRED; - break; - case 0x02: - imager_colors[0]=imager_colors[1]=imager_colors[2]=VC_GREEN; - break; - case 0x03: - imager_colors[0]=imager_colors[1]=imager_colors[2]=VC_BLUE; - break; - case 0x04: - /* mine3 has a different color sequence */ - if (vectrex_imager_angles == minestorm_3d_angles) - { - imager_colors[0]=VC_GREEN; - imager_colors[1]=VC_RED; - } - else - { - imager_colors[0]=VC_RED; - imager_colors[1]=VC_GREEN; - } - imager_colors[2]=VC_BLUE; - break; - } - - switch ((cport>>5) & 0x07) - { - case 0x00: - imager_colors[3]=imager_colors[4]=imager_colors[5]=VC_BLACK; - break; - case 0x01: - imager_colors[3]=imager_colors[4]=imager_colors[5]=VC_DARKRED; - break; - case 0x02: - imager_colors[3]=imager_colors[4]=imager_colors[5]=VC_GREEN; - break; - case 0x03: - imager_colors[3]=imager_colors[4]=imager_colors[5]=VC_BLUE; - break; - case 0x04: - if (vectrex_imager_angles == minestorm_3d_angles) - { - imager_colors[3]=VC_GREEN; - imager_colors[4]=VC_RED; - } - else - { - imager_colors[3]=VC_RED; - imager_colors[4]=VC_GREEN; - } - imager_colors[5]=VC_BLUE; - break; - } - } - else - { - vector_add_point_function = vectrex_add_point; - vectrex_beam_color = VC_WHITE; - imager_colors[0]=imager_colors[1]=imager_colors[2]=imager_colors[3]=imager_colors[4]=imager_colors[5]=VC_WHITE; - } - vectrex_lightpen_port = (input_port_6_r (0) & 0x03); -} - -/********************************************************************* - VIA interface functions - *********************************************************************/ -void v_via_irq (int level) -{ - cpunum_set_input_line(0, M6809_IRQ_LINE, level); -} - - READ8_HANDLER( v_via_pb_r ) -{ - int pot; - pot = readinputport(((vectrex_via_out[PORTB] & 0x6)>>1) + 1) - 0x80; - - if (pot > (signed char)vectrex_via_out[PORTA]) - vectrex_via_out[PORTB] |= 0x20; - else - vectrex_via_out[PORTB] &= ~0x20; - - return vectrex_via_out[PORTB]; -} - - READ8_HANDLER( v_via_pa_r ) -{ - if ((!(vectrex_via_out[PORTB] & 0x10)) && (vectrex_via_out[PORTB] & 0x08)) - /* BDIR inactive, we can read the PSG. BC1 has to be active. */ - { - vectrex_via_out[PORTA] = AY8910_read_port_0_r (0) - & ~(vectrex_imager_pinlevel & 0x80); - vectrex_imager_pinlevel &= ~0x80; - } - return vectrex_via_out[PORTA]; -} - - READ8_HANDLER( s1_via_pb_r ) -{ - return (vectrex_via_out[PORTB] & ~0x40) | ((input_port_1_r(0) & 0x1)<<6); -} - -/********************************************************************* - 3D Imager support - *********************************************************************/ -static void vectrex_imager_change_color (int i) -{ - vectrex_beam_color = i; -} - -void vectrex_imager_right_eye (int param) -{ - int coffset; - double rtime = (1.0/imager_freq); - - if (vectrex_imager_status > 0) - { - vectrex_imager_status = param; - coffset = param>1?3:0; - timer_set (rtime * vectrex_imager_angles[0], imager_colors[coffset+2], vectrex_imager_change_color); - timer_set (rtime * vectrex_imager_angles[1], imager_colors[coffset+1], vectrex_imager_change_color); - timer_set (rtime * vectrex_imager_angles[2], imager_colors[coffset], vectrex_imager_change_color); - - if (param == 2) - { - timer_set (rtime * 0.50, 1, vectrex_imager_right_eye); - - /* Index hole sensor is connected to IO7 which triggers also CA1 of VIA */ - via_0_ca1_w (0, 1); - via_0_ca1_w (0, 0); - vectrex_imager_pinlevel |= 0x80; - } - } -} - -#define DAMPC (-0.2) -#define MMI (5.0) - -WRITE8_HANDLER ( vectrex_psg_port_w ) -{ - static int state; - static double sl, pwl; - double wavel, ang_acc, tmp; - int mcontrol; - - mcontrol = data & 0x40; /* IO6 controls the imager motor */ - - if (!mcontrol && mcontrol ^ state) - { - state = mcontrol; - tmp = timer_get_time(); - wavel = tmp - sl; - sl = tmp; - - if (wavel < 1) - { - /* The Vectrex sends a stream of pulses which controls the speed of - the motor using Pulse Width Modulation. Guessed parameters are MMI - (mass moment of inertia) of the color wheel, DAMPC (damping coefficient) - of the whole thing and some constants of the motor's torque/speed curve. - pwl is the negative pulse width and wavel is the whole wavelength. */ - - ang_acc = (50.0 - 1.55 * imager_freq) / MMI; - imager_freq += ang_acc * pwl + DAMPC*imager_freq/MMI * wavel; - - if (imager_freq > 1) - timer_adjust (imager_timer, MIN(1.0/imager_freq, timer_timeleft(imager_timer)), 2, 1.0/imager_freq); - } - } - if (mcontrol && mcontrol ^ state) - { - state = mcontrol; - pwl = timer_get_time() - sl; - } -} - -DRIVER_INIT( vectrex ) -{ - int i; - - /* Set the whole cart ROM area to 1. This is needed to work around a bug (?) - * in Minestorm where the exec-rom attempts to access a vector list here. - * 1 signals the end of the vector list. - */ - if (vectrex_verify_cart((char*)memory_region(REGION_CPU1)) == IMAGE_VERIFY_FAIL) - { - memset (memory_region(REGION_CPU1), 1, 0x8000); - } - - artwork_use_device_art(image_from_devtype_and_index(IO_CARTSLOT, 0), "mine"); - - for (i = 0; i < vectrex_ram_size; i++) - vectrex_ram_base[i] = rand(); -} diff --git a/mess/machine/vtech1.c b/mess/machine/vtech1.c deleted file mode 100644 index ce0c2b994..000000000 --- a/mess/machine/vtech1.c +++ /dev/null @@ -1,593 +0,0 @@ -/****************************************************************************** - -Video Technology Laser 110-310 computers: - - Video Technology Laser 110 - Sanyo Laser 110 - Video Technology Laser 200 - Salora Fellow - Texet TX-8000 - Video Technology VZ-200 - Video Technology Laser 210 - Dick Smith Electronics VZ-200 - Sanyo Laser 210 - Video Technology Laser 310 - Dick Smith Electronics VZ-300 - -Machine driver: - - Juergen Buchmueller , Dec 1999 - - everything - - Dirk Best , May 2004 - - clean up - - fixed mode 1 display (graphic mode) - - fixed loading of the DOS ROM - - preliminary printer emulation - - Dirk Best , March 2006 - - 64K bank switched memory implemented - - better printer emulation - - cartridge support - -Thanks go to: - - - Guy Thomason - - Jason Oakley - - Bushy Maunder - - and anybody else on the vzemu list :) - - Davide Moretti for the detailed description of the colors. - -Todo: - - - Lightpen - - RS232 serial - -****************************************************************************/ - - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6847.h" -#include "includes/vtech1.h" -#include "devices/cassette.h" -#include "devices/printer.h" -#include "cpu/z80/z80.h" -#include "sound/speaker.h" -#include "image.h" - -#define LOG_VTECH1_LATCH 0 -#define LOG_VTECH1_FDC 0 - -int vtech1_latch = -1; - -#define TRKSIZE_VZ 0x9a0 /* arbitrary (actually from analyzing format) */ -#define TRKSIZE_FM 3172 /* size of a standard FM mode track */ - -static UINT8 vtech1_track_x2[2] = {80, 80}; -static UINT8 vtech1_fdc_wrprot[2] = {0x80, 0x80}; -static UINT8 vtech1_fdc_status = 0; -static UINT8 vtech1_fdc_data[TRKSIZE_FM]; - -static int vtech1_data; - -static int vtech1_fdc_edge = 0; -static int vtech1_fdc_bits = 8; -static int vtech1_drive = -1; -static int vtech1_fdc_start = 0; -static int vtech1_fdc_write = 0; -static int vtech1_fdc_offs = 0; -static int vtech1_fdc_latch = 0; - -/****************************************************************************** - Machine Initialisation -******************************************************************************/ - -static void common_init_machine(int base) -{ - /* internal ram */ - memory_configure_bank(1, 0, 1, mess_ram, 0); - memory_set_bank(1, 0); - - /* expansion memory configuration */ - switch (mess_ram_size) { - case 18 * 1024: - case 22 * 1024: - case 32 * 1024: - /* install 16KB memory expansion */ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, base, base + 0x3fff, 0, 0, MRA8_BANK2); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, base, base + 0x3fff, 0, 0, MWA8_BANK2); - memory_configure_bank(2, 0, 1, mess_ram + base - 0x7800, 0); - memory_set_bank(2, 0); - - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, base + 0x4000, 0xffff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, base + 0x4000, 0xffff, 0, 0, MWA8_NOP); - break; - - case 66 * 1024: - case 4098 * 1024: - /* 64KB/4MB memory expansion */ - - /* install fixed first bank */ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0, MRA8_BANK2); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0xbfff, 0, 0, MWA8_BANK2); - memory_configure_bank(2, 0, 1, mess_ram + 0x800, 0); - memory_set_bank(2, 0); - - /* install the others, dynamically banked in */ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xffff, 0, 0, MRA8_BANK3); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xffff, 0, 0, MWA8_BANK3); - memory_configure_bank(3, 0, (mess_ram_size - 0x4800) / 0x4000, mess_ram + 0x4800, 0x4000); - memory_set_bank(3, 0); - break; - - default: - /* no memory expansion */ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, base, 0xffff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, base, 0xffff, 0, 0, MWA8_NOP); - break; - } -} - -MACHINE_START(laser110) -{ - common_init_machine(0x8000); - return 0; -} - -MACHINE_START(laser210) -{ - common_init_machine(0x9000); - return 0; -} - -MACHINE_START(laser310) -{ - common_init_machine(0xb800); - return 0; -} - - -/****************************************************************************** - Memory Bank Handling - - TODO: What happens when an invalid bank is selected? - Currently, we just ignore it and keep the current bank. -******************************************************************************/ - -WRITE8_HANDLER (vtech1_memory_bank_w) -{ - logerror("vtech1_memory_bank_w $%02X\n", data); - - if (data >= 1) - if ((data <= 3 && (mess_ram_size == (66 * 1024))) || (mess_ram_size == (4098 * 1024))) - memory_set_bank(3, data - 1); -} - - -/****************************************************************************** - Cassette Handling -******************************************************************************/ - -static mess_image *cassette_device_image(void) -{ - return image_from_devtype_and_index(IO_CASSETTE, 0); -} - - -/****************************************************************************** - Snapshot Handling -******************************************************************************/ - -SNAPSHOT_LOAD(vtech1) -{ - UINT8 header[24]; - UINT16 start, end; - - /* get the header */ - image_fread(image, &header, sizeof(header)); - - /* get start and end addresses */ - start = pick_integer_le(header, 22, 2); - end = start + snapshot_size - sizeof(header); - - /* check if we have enough ram */ - if (mess_ram_size < end - start) - return INIT_FAIL; - - /* write it to ram */ - image_fread(image, &mess_ram[start - 0x7800], end - start); - - /* patch variables depending on snapshot type */ - switch (header[21]) - { - case VZ_BASIC: - program_write_word_16le(0x78a4, start); /* start of basic program */ - program_write_byte_8(0x78f9, end % 256); /* end of basic program */ - program_write_byte_8(0x78fa, end / 256); - program_write_byte_8(0x78fb, end % 256); /* start variable table */ - program_write_byte_8(0x78fc, end / 256); - program_write_byte_8(0x78fd, end % 256); /* start free mem, end variable table */ - program_write_byte_8(0x78fe, end / 256); - break; - - case VZ_MCODE: - program_write_word_16le(0x788e, start); /* usr subroutine address */ - break; - - default: - image_seterror(image, IMAGE_ERROR_UNSUPPORTED, "Snapshot format not supported."); - return INIT_FAIL; - break; - } - - return INIT_PASS; -} - - -/****************************************************************************** - Floppy Handling -******************************************************************************/ - -static mess_image *vtech1_file(void) -{ - if (vtech1_drive < 0) - return NULL; - - return image_from_devtype_and_index(IO_FLOPPY, vtech1_drive); -} - -/* -int vtech1_floppy_id(int id) -{ - mame_file *file; - UINT8 buff[32]; - - file = image_fopen(IO_FLOPPY, id, FILETYPE_IMAGE, OSD_FOPEN_READ); - if (file) - { - mame_fread(file, buff, sizeof(buff)); - mame_fclose(file); - if( memcmp(buff, "\x80\x80\x80\x80\x80\x80\x00\xfe\0xe7\0x18\0xc3\x00\x00\x00\x80\x80", 16) == 0 ) - return 1; - } - return 0; -} -*/ - -DEVICE_LOAD(vtech1_floppy) -{ - int id = image_index_in_device(image); - - if (image_is_writable(image)) - vtech1_fdc_wrprot[id] = 0x00; - else - vtech1_fdc_wrprot[id] = 0x80; - - return INIT_PASS; -} - -static void vtech1_get_track(void) -{ - /* drive selected or and image file ok? */ - if (vtech1_drive >= 0 && image_exists(vtech1_file())) - { - int size, offs; - size = TRKSIZE_VZ; - offs = TRKSIZE_VZ * vtech1_track_x2[vtech1_drive]/2; - image_fseek(vtech1_file(), offs, SEEK_SET); - size = image_fread(vtech1_file(), vtech1_fdc_data, size); - if (LOG_VTECH1_FDC) - logerror("get track @$%05x $%04x bytes\n", offs, size); - } - vtech1_fdc_offs = 0; - vtech1_fdc_write = 0; -} - -static void vtech1_put_track(void) -{ - /* drive selected and image file ok? */ - if (vtech1_drive >= 0 && vtech1_file() != NULL) - { - int size, offs; - offs = TRKSIZE_VZ * vtech1_track_x2[vtech1_drive]/2; - image_fseek(vtech1_file(), offs + vtech1_fdc_start, SEEK_SET); - size = image_fwrite(vtech1_file(), &vtech1_fdc_data[vtech1_fdc_start], vtech1_fdc_write); - if (LOG_VTECH1_FDC) - logerror("put track @$%05X+$%X $%04X/$%04X bytes\n", offs, vtech1_fdc_start, size, vtech1_fdc_write); - } -} - -#define PHI0(n) (((n)>>0)&1) -#define PHI1(n) (((n)>>1)&1) -#define PHI2(n) (((n)>>2)&1) -#define PHI3(n) (((n)>>3)&1) - -READ8_HANDLER(vtech1_fdc_r) -{ - int data = 0xff; - switch (offset) - { - case 1: /* data (read-only) */ - if (vtech1_fdc_bits > 0) - { - if( vtech1_fdc_status & 0x80 ) - vtech1_fdc_bits--; - data = (vtech1_data >> vtech1_fdc_bits) & 0xff; - if (LOG_VTECH1_FDC) { - logerror("vtech1_fdc_r bits %d%d%d%d%d%d%d%d\n", - (data>>7)&1,(data>>6)&1,(data>>5)&1,(data>>4)&1, - (data>>3)&1,(data>>2)&1,(data>>1)&1,(data>>0)&1 ); - } - } - if (vtech1_fdc_bits == 0) - { - vtech1_data = vtech1_fdc_data[vtech1_fdc_offs]; - if (LOG_VTECH1_FDC) - logerror("vtech1_fdc_r %d : data ($%04X) $%02X\n", offset, vtech1_fdc_offs, vtech1_data); - if(vtech1_fdc_status & 0x80) - { - vtech1_fdc_bits = 8; - vtech1_fdc_offs = (vtech1_fdc_offs + 1) % TRKSIZE_FM; - } - vtech1_fdc_status &= ~0x80; - } - break; - case 2: /* polling (read-only) */ - /* fake */ - if (vtech1_drive >= 0) - vtech1_fdc_status |= 0x80; - data = vtech1_fdc_status; - break; - case 3: /* write protect status (read-only) */ - if (vtech1_drive >= 0) - data = vtech1_fdc_wrprot[vtech1_drive]; - if (LOG_VTECH1_FDC) - logerror("vtech1_fdc_r %d : write_protect $%02X\n", offset, data); - break; - } - return data; -} - -WRITE8_HANDLER(vtech1_fdc_w) -{ - int drive; - - switch (offset) - { - case 0: /* latch (write-only) */ - drive = (data & 0x10) ? 0 : (data & 0x80) ? 1 : -1; - if (drive != vtech1_drive) - { - vtech1_drive = drive; - if (vtech1_drive >= 0) - vtech1_get_track(); - } - if (vtech1_drive >= 0) - { - if ((PHI0(data) && !(PHI1(data) || PHI2(data) || PHI3(data)) && PHI1(vtech1_fdc_latch)) || - (PHI1(data) && !(PHI0(data) || PHI2(data) || PHI3(data)) && PHI2(vtech1_fdc_latch)) || - (PHI2(data) && !(PHI0(data) || PHI1(data) || PHI3(data)) && PHI3(vtech1_fdc_latch)) || - (PHI3(data) && !(PHI0(data) || PHI1(data) || PHI2(data)) && PHI0(vtech1_fdc_latch))) - { - if (vtech1_track_x2[vtech1_drive] > 0) - vtech1_track_x2[vtech1_drive]--; - if (LOG_VTECH1_FDC) - logerror("vtech1_fdc_w(%d) $%02X drive %d: stepout track #%2d.%d\n", offset, data, vtech1_drive, vtech1_track_x2[vtech1_drive]/2,5*(vtech1_track_x2[vtech1_drive]&1)); - if ((vtech1_track_x2[vtech1_drive] & 1) == 0) - vtech1_get_track(); - } - else - if ((PHI0(data) && !(PHI1(data) || PHI2(data) || PHI3(data)) && PHI3(vtech1_fdc_latch)) || - (PHI1(data) && !(PHI0(data) || PHI2(data) || PHI3(data)) && PHI0(vtech1_fdc_latch)) || - (PHI2(data) && !(PHI0(data) || PHI1(data) || PHI3(data)) && PHI1(vtech1_fdc_latch)) || - (PHI3(data) && !(PHI0(data) || PHI1(data) || PHI2(data)) && PHI2(vtech1_fdc_latch))) - { - if (vtech1_track_x2[vtech1_drive] < 2*40) - vtech1_track_x2[vtech1_drive]++; - if (LOG_VTECH1_FDC) - logerror("vtech1_fdc_w(%d) $%02X drive %d: stepin track #%2d.%d\n", offset, data, vtech1_drive, vtech1_track_x2[vtech1_drive]/2,5*(vtech1_track_x2[vtech1_drive]&1)); - if ((vtech1_track_x2[vtech1_drive] & 1) == 0) - vtech1_get_track(); - } - if ((data & 0x40) == 0) - { - vtech1_data <<= 1; - if ((vtech1_fdc_latch ^ data) & 0x20) - vtech1_data |= 1; - if ((vtech1_fdc_edge ^= 1) == 0) - { - if (--vtech1_fdc_bits == 0) - { - UINT8 value = 0; - vtech1_data &= 0xffff; - if (vtech1_data & 0x4000 ) value |= 0x80; - if (vtech1_data & 0x1000 ) value |= 0x40; - if (vtech1_data & 0x0400 ) value |= 0x20; - if (vtech1_data & 0x0100 ) value |= 0x10; - if (vtech1_data & 0x0040 ) value |= 0x08; - if (vtech1_data & 0x0010 ) value |= 0x04; - if (vtech1_data & 0x0004 ) value |= 0x02; - if (vtech1_data & 0x0001 ) value |= 0x01; - if (LOG_VTECH1_FDC) - logerror("vtech1_fdc_w(%d) data($%04X) $%02X <- $%02X ($%04X)\n", offset, vtech1_fdc_offs, vtech1_fdc_data[vtech1_fdc_offs], value, vtech1_data); - vtech1_fdc_data[vtech1_fdc_offs] = value; - vtech1_fdc_offs = (vtech1_fdc_offs + 1) % TRKSIZE_FM; - vtech1_fdc_write++; - vtech1_fdc_bits = 8; - } - } - } - /* change of write signal? */ - if ((vtech1_fdc_latch ^ data) & 0x40) - { - /* falling edge? */ - if (vtech1_fdc_latch & 0x40) - { - vtech1_fdc_start = vtech1_fdc_offs; - vtech1_fdc_edge = 0; - } - else - { - /* data written to track before? */ - if (vtech1_fdc_write) - vtech1_put_track(); - } - vtech1_fdc_bits = 8; - vtech1_fdc_write = 0; - } - } - vtech1_fdc_latch = data; - break; - } -} - - -/****************************************************************************** - Input Handling -******************************************************************************/ - -READ8_HANDLER(vtech1_lightpen_r) -{ - logerror("vtech1_lightpen_r(%d)\n", offset); - return 0xff; -} - -READ8_HANDLER(vtech1_joystick_r) -{ - int data = 0xff; - - if (!(offset & 1)) - data &= readinputportbytag("joystick_0"); - if (!(offset & 2)) - data &= readinputportbytag("joystick_0_arm"); - if (!(offset & 4)) - data &= readinputportbytag("joystick_1"); - if (!(offset & 8)) - data &= readinputportbytag("joystick_1_arm"); - - return data; -} - -READ8_HANDLER(vtech1_keyboard_r) -{ - static int cassette_bit = 0; - int row, data = 0xff; - char portname[11]; - double level; - - /* scan keyboard rows */ - for (row = 0; row < 8; row++) { - sprintf(portname, "keyboard_%d", row); - if (!(offset & (1 << row))) - data &= readinputportbytag(portname); - } - - if (cpu_getscanline() >= 16*12) - data &= ~0x80; - - /* cassette input is bit 5 (0x40) */ - level = cassette_input(cassette_device_image()); - if (level < -0.008) - cassette_bit = 0x00; - if (level > +0.008) - cassette_bit = 0x40; - - data &= ~cassette_bit; - - return data; -} - -/************************************************* - * bit function - * 7 not assigned - * 6 not assigned - * 5 speaker B - * 4 VDC background 0 green, 1 orange - * 3 VDC display mode 0 text, 1 graphics - * 2 cassette out (MSB) - * 1 cassette out (LSB) - * 0 speaker A - ************************************************/ -WRITE8_HANDLER(vtech1_latch_w) -{ - if (LOG_VTECH1_LATCH) - logerror("vtech1_latch_w $%02X\n", data); - - /* cassette data bits toggle? */ - if ((vtech1_latch ^ data ) & 0x06) - { - static double amp[4] = { +1.0, +0.5, -0.5, -1.0 }; - cassette_output(cassette_device_image(), amp[(data >> 1) & 3]); - } - - /* speaker data bits toggle? */ - if ((vtech1_latch ^ data ) & 0x41) - speaker_level_w(0, (data & 1) | ((data >> 5) & 2)); - - vtech1_latch = data; -} - - -/****************************************************************************** - Printer Handling -******************************************************************************/ - -/* -The VZ200/300 printer interface uses I/O port address OE Hex for the ASCII -character code data and strobe output, and address OOH for the busy/ready-bar -status input (bit 0). -*/ - -READ8_HANDLER(vtech1_printer_r) -{ - int data = 0xff; - - if (printer_status(image_from_devtype_and_index(IO_PRINTER, 0), 0)) - data &= ~0x01; - - return data; -} - -WRITE8_HANDLER(vtech1_printer_w) -{ - static int prn_data; - - switch (offset) { - case 0x0d: /* strobe data to printer */ - printer_output(image_from_devtype_and_index(IO_PRINTER, 0), prn_data); - break; - case 0x0e: /* load output latch */ - prn_data = data; - break; - default: - logerror("vtech1_printer_w $%02x, unknown offset %02x\n", data, offset); - } -} - - -/****************************************************************************** - Serial RS232 Handling -******************************************************************************/ - -READ8_HANDLER(vtech1_serial_r) -{ - int data = 0xff; - logerror("vtech1_serial_r offset $%02x\n", offset); - return data; -} - -WRITE8_HANDLER(vtech1_serial_w) -{ - logerror("vtech1_serial_w $%02x, offset %02x\n", data, offset); -} - - -/****************************************************************************** - Interrupt Handling -******************************************************************************/ - -INTERRUPT_GEN(vtech1_interrupt) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} diff --git a/mess/machine/vtech2.c b/mess/machine/vtech2.c deleted file mode 100644 index a5e7b31fc..000000000 --- a/mess/machine/vtech2.c +++ /dev/null @@ -1,555 +0,0 @@ -/*************************************************************************** - vtech2.c - - machine driver - Juergen Buchmueller MESS driver, Jan 2000 - Davide Moretti ROM dump and hardware description - - TODO: - Add loading images from WAV files. - Printer and RS232 support. - Check if the FDC is really the same as in the - Laser 210/310 (aka VZ200/300) series. - -****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "image.h" -#include "includes/vtech2.h" -#include "devices/cassette.h" -#include "sound/speaker.h" - -/* public */ -int laser_latch; - -/* static */ -static UINT8 *mem; -static int laser_bank_mask; /* up to 16 4K banks supported */ -static int laser_bank[4]; -static int laser_video_bank; - -#define TRKSIZE_VZ 0x9a0 /* arbitrary (actually from analyzing format) */ -#define TRKSIZE_FM 3172 /* size of a standard FM mode track */ - -static UINT8 laser_track_x2[2] = {80, 80}; -static UINT8 laser_fdc_wrprot[2] = {0x80, 0x80}; -static UINT8 laser_fdc_status = 0; -static UINT8 laser_fdc_data[TRKSIZE_FM]; -static int laser_data; -static int laser_fdc_edge = 0; -static int laser_fdc_bits = 8; -static int laser_drive = -1; -static int laser_fdc_start = 0; -static int laser_fdc_write = 0; -static int laser_fdc_offs = 0; -static int laser_fdc_latch = 0; - -/* write to banked memory (handle memory mapped i/o and videoram) */ -static void mwa_bank(int bank, int offs, int data); - -/* wrappers for bank #1 to #4 */ -static WRITE8_HANDLER ( mwa_bank1 ) { mwa_bank(0,offset,data); } -static WRITE8_HANDLER ( mwa_bank2 ) { mwa_bank(1,offset,data); } -static WRITE8_HANDLER ( mwa_bank3 ) { mwa_bank(2,offset,data); } -static WRITE8_HANDLER ( mwa_bank4 ) { mwa_bank(3,offset,data); } - -/* read from banked memory (handle memory mapped i/o) */ -static int mra_bank(int bank, int offs); - -/* wrappers for bank #1 to #4 */ -static READ8_HANDLER ( mra_bank1) { return mra_bank(0,offset); } -static READ8_HANDLER ( mra_bank2) { return mra_bank(1,offset); } -static READ8_HANDLER ( mra_bank3) { return mra_bank(2,offset); } -static READ8_HANDLER ( mra_bank4) { return mra_bank(3,offset); } - -/* read banked memory (handle memory mapped i/o) */ -static read8_handler mra_bank_soft[4] = -{ - mra_bank1, /* mapped in 0000-3fff */ - mra_bank2, /* mapped in 4000-7fff */ - mra_bank3, /* mapped in 8000-bfff */ - mra_bank4 /* mapped in c000-ffff */ -}; - -/* write banked memory (handle memory mapped i/o and videoram) */ -static write8_handler mwa_bank_soft[4] = -{ - mwa_bank1, /* mapped in 0000-3fff */ - mwa_bank2, /* mapped in 4000-7fff */ - mwa_bank3, /* mapped in 8000-bfff */ - mwa_bank4 /* mapped in c000-ffff */ -}; - -/* read banked memory (plain ROM/RAM) */ -static read8_handler mra_bank_hard[4] = -{ - MRA8_BANK1, /* mapped in 0000-3fff */ - MRA8_BANK2, /* mapped in 4000-7fff */ - MRA8_BANK3, /* mapped in 8000-bfff */ - MRA8_BANK4 /* mapped in c000-ffff */ -}; - -/* write banked memory (plain ROM/RAM) */ -static write8_handler mwa_bank_hard[4] = -{ - MWA8_BANK1, /* mapped in 0000-3fff */ - MWA8_BANK2, /* mapped in 4000-7fff */ - MWA8_BANK3, /* mapped in 8000-bfff */ - MWA8_BANK4 /* mapped in c000-ffff */ -}; - -DRIVER_INIT(laser) -{ - UINT8 *gfx = memory_region(REGION_GFX2); - int i; - - for (i = 0; i < 256; i++) - gfx[i] = i; - - laser_latch = -1; - mem = memory_region(REGION_CPU1); - - for (i = 0; i < sizeof(laser_bank) / sizeof(laser_bank[0]); i++) - laser_bank[i] = -1; -} - - - -static void laser_machine_init(int bank_mask, int video_mask) -{ - int i; - - laser_bank_mask = bank_mask; - laser_video_bank = video_mask; - videoram = mem + laser_video_bank * 0x04000; - logerror("laser_machine_init(): bank mask $%04X, video %d [$%05X]\n", laser_bank_mask, laser_video_bank, laser_video_bank * 0x04000); - - for (i = 0; i < sizeof(laser_bank) / sizeof(laser_bank[0]); i++) - laser_bank_select_w(i, 0); -} - -MACHINE_RESET( laser350 ) -{ - /* banks 0 to 3 only, optional ROM extension */ - laser_machine_init(0xf00f, 3); -} - -MACHINE_RESET( laser500 ) -{ - /* banks 0 to 2, and 4-7 only , optional ROM extension */ - laser_machine_init(0xf0f7, 7); -} - -MACHINE_RESET( laser700 ) -{ - /* all banks except #3 */ - laser_machine_init(0xfff7, 7); -} - - -WRITE8_HANDLER( laser_bank_select_w ) -{ - static const char *bank_name[16] = { - "ROM lo","ROM hi","MM I/O","Video RAM lo", - "RAM #0","RAM #1","RAM #2","RAM #3", - "RAM #4","RAM #5","RAM #6","RAM #7/Video RAM hi", - "ext ROM #0","ext ROM #1","ext ROM #2","ext ROM #3"}; - read8_handler read_handler; - write8_handler write_handler; - - offset %= 4; - data &= 15; - - if( data != laser_bank[offset] ) - { - laser_bank[offset] = data; - logerror("select bank #%d $%02X [$%05X] %s\n", offset+1, data, 0x4000 * (data & 15), bank_name[data]); - - /* memory mapped I/O bank selected? */ - if (data == 2) - { - read_handler = mra_bank_soft[offset]; - write_handler = mwa_bank_soft[offset]; - } - else - { - memory_set_bankptr(offset+1, &mem[0x4000*laser_bank[offset]]); - if( laser_bank_mask & (1 << data) ) - { - read_handler = mra_bank_hard[offset]; - write_handler = mwa_bank_hard[offset]; - - /* video RAM bank selected? */ - if( data == laser_video_bank ) - { - logerror("select bank #%d VIDEO!\n", offset+1); - } - } - else - { - logerror("select bank #%d MASKED!\n", offset+1); - read_handler = return8_FF; - write_handler = MWA8_NOP; - } - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, offset * 0x4000, offset * 0x4000 + 0x3fff, 0, 0, read_handler); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, offset * 0x4000, offset * 0x4000 + 0x3fff, 0, 0, write_handler); - } -} - -static mess_image *vtech2_cassette_image(void) -{ - return image_from_devtype_and_index(IO_CASSETTE, 0); -} - -/************************************************* - * memory mapped I/O read - * bit function - * 7 not assigned - * 6 column 6 - * 5 column 5 - * 4 column 4 - * 3 column 3 - * 2 column 2 - * 1 column 1 - * 0 column 0 - ************************************************/ -static int mra_bank(int bank, int offs) -{ - static int level_old = 0, cassette_bit = 0; - int level, data = 0xff; - - /* Laser 500/700 only: keyboard rows A through D */ - if( (offs & 0x00ff) == 0x00ff ) - { - static int row_a,row_b,row_c,row_d; - if( (offs & 0x0300) == 0x0000 ) /* keyboard row A */ - { - if( readinputport( 8) != row_a ) - { - row_a = readinputport(8); - data &= row_a; - } - } - if( (offs & 0x0300) == 0x0100 ) /* keyboard row B */ - { - if( readinputport( 9) != row_b ) - { - row_b = readinputport( 9); - data &= row_b; - } - } - if( (offs & 0x0300) == 0x0200 ) /* keyboard row C */ - { - if( readinputport(10) != row_c ) - { - row_c = readinputport(10); - data &= row_c; - } - } - if( (offs & 0x0300) == 0x0300 ) /* keyboard row D */ - { - if( readinputport(11) != row_d ) - { - row_d = readinputport(11); - data &= row_d; - } - } - } - else - { - /* All Lasers keyboard rows 0 through 7 */ - if( !(offs & 0x01) ) - data &= readinputport( 0); - if( !(offs & 0x02) ) - data &= readinputport( 1); - if( !(offs & 0x04) ) - data &= readinputport( 2); - if( !(offs & 0x08) ) - data &= readinputport( 3); - if( !(offs & 0x10) ) - data &= readinputport( 4); - if( !(offs & 0x20) ) - data &= readinputport( 5); - if( !(offs & 0x40) ) - data &= readinputport( 6); - if( !(offs & 0x80) ) - data &= readinputport( 7); - } - - /* what's bit 7 good for? tape input maybe? */ - level = cassette_input(vtech2_cassette_image()) * 65536.0; - if( level < level_old - 511 ) - cassette_bit = 0x00; - if( level > level_old + 511 ) - cassette_bit = 0x80; - level_old = level; - - data &= ~cassette_bit; - // logerror("bank #%d keyboard_r [$%04X] $%02X\n", bank, offs, data); - - return data; -} - -/************************************************* - * memory mapped I/O write - * bit function - * 7-6 not assigned - * 5 speaker B ??? - * 4 ??? - * 3 mode: 1 graphics, 0 text - * 2 cassette out (MSB) - * 1 cassette out (LSB) - * 0 speaker A - ************************************************/ -static void mwa_bank(int bank, int offs, int data) -{ - offs += 0x4000 * laser_bank[bank]; - switch (laser_bank[bank]) - { - case 0: /* ROM lower 16K */ - case 1: /* ROM upper 16K */ - logerror("bank #%d write to ROM [$%05X] $%02X\n", bank+1, offs, data); - break; - case 2: /* memory mapped output */ - if (data != laser_latch) - { - logerror("bank #%d write to I/O [$%05X] $%02X\n", bank+1, offs, data); - /* Toggle between graphics and text modes? */ - if ((data ^ laser_latch) & 0x01) - speaker_level_w(0, data & 1); - laser_latch = data; - } - break; - case 12: /* ext. ROM #1 */ - case 13: /* ext. ROM #2 */ - case 14: /* ext. ROM #3 */ - case 15: /* ext. ROM #4 */ - logerror("bank #%d write to ROM [$%05X] $%02X\n", bank+1, offs, data); - break; - default: /* RAM */ - if( laser_bank[bank] == laser_video_bank && mem[offs] != data ) - { - logerror("bank #%d write to videoram [$%05X] $%02X\n", bank+1, offs, data); - dirtybuffer[offs&0x3fff] = 1; - } - mem[offs] = data; - break; - } -} - -DEVICE_LOAD( laser_cart ) -{ - int size = 0; - - size = image_fread(image, &mem[0x30000], 0x10000); - laser_bank_mask &= ~0xf000; - if( size > 0 ) - laser_bank_mask |= 0x1000; - if( size > 0x4000 ) - laser_bank_mask |= 0x2000; - if( size > 0x8000 ) - laser_bank_mask |= 0x4000; - if( size > 0xc000 ) - laser_bank_mask |= 0x8000; - - return size > 0 ? INIT_PASS : INIT_FAIL; -} - -DEVICE_UNLOAD( laser_cart ) -{ - laser_bank_mask &= ~0xf000; - /* wipe out the memory contents to be 100% sure */ - memset(&mem[0x30000], 0xff, 0x10000); -} - -DEVICE_LOAD( laser_floppy ) -{ - UINT8 buff[32]; - - image_fread(image, buff, sizeof(buff)); - if (memcmp(buff, "\x80\x80\x80\x80\x80\x80\x00\xfe\0xe7\0x18\0xc3\x00\x00\x00\x80\x80", 16)) - return INIT_FAIL; - - return INIT_PASS; -} - -static mess_image *laser_file(void) -{ - return image_from_devtype_and_index(IO_FLOPPY, laser_drive); -} - -static void laser_get_track(void) -{ - sprintf(laser_frame_message, "#%d get track %02d", laser_drive, laser_track_x2[laser_drive]/2); - laser_frame_time = 30; - /* drive selected or and image file ok? */ - if( laser_drive >= 0 && laser_file() != NULL ) - { - int size, offs; - size = TRKSIZE_VZ; - offs = TRKSIZE_VZ * laser_track_x2[laser_drive]/2; - image_fseek(laser_file(), offs, SEEK_SET); - size = image_fread(laser_file(), laser_fdc_data, size); - logerror("get track @$%05x $%04x bytes\n", offs, size); - } - laser_fdc_offs = 0; - laser_fdc_write = 0; -} - -static void laser_put_track(void) -{ - /* drive selected and image file ok? */ - if( laser_drive >= 0 && laser_file() != NULL ) - { - int size, offs; - offs = TRKSIZE_VZ * laser_track_x2[laser_drive]/2; - image_fseek(laser_file(), offs + laser_fdc_start, SEEK_SET); - size = image_fwrite(laser_file(), &laser_fdc_data[laser_fdc_start], laser_fdc_write); - logerror("put track @$%05X+$%X $%04X/$%04X bytes\n", offs, laser_fdc_start, size, laser_fdc_write); - } -} - -#define PHI0(n) (((n)>>0)&1) -#define PHI1(n) (((n)>>1)&1) -#define PHI2(n) (((n)>>2)&1) -#define PHI3(n) (((n)>>3)&1) - - READ8_HANDLER( laser_fdc_r ) -{ - int data = 0xff; - switch( offset ) - { - case 1: /* data (read-only) */ - if( laser_fdc_bits > 0 ) - { - if( laser_fdc_status & 0x80 ) - laser_fdc_bits--; - data = (laser_data >> laser_fdc_bits) & 0xff; -#if 0 - logerror("laser_fdc_r bits %d%d%d%d%d%d%d%d\n", - (data>>7)&1,(data>>6)&1,(data>>5)&1,(data>>4)&1, - (data>>3)&1,(data>>2)&1,(data>>1)&1,(data>>0)&1 ); -#endif - } - if( laser_fdc_bits == 0 ) - { - laser_data = laser_fdc_data[laser_fdc_offs]; - logerror("laser_fdc_r %d : data ($%04X) $%02X\n", offset, laser_fdc_offs, laser_data); - if( laser_fdc_status & 0x80 ) - { - laser_fdc_bits = 8; - laser_fdc_offs = (laser_fdc_offs + 1) % TRKSIZE_FM; - } - laser_fdc_status &= ~0x80; - } - break; - case 2: /* polling (read-only) */ - /* fake */ - if( laser_drive >= 0 ) - laser_fdc_status |= 0x80; - data = laser_fdc_status; - break; - case 3: /* write protect status (read-only) */ - if( laser_drive >= 0 ) - data = laser_fdc_wrprot[laser_drive]; - logerror("laser_fdc_r %d : write_protect $%02X\n", offset, data); - break; - } - return data; -} - -WRITE8_HANDLER( laser_fdc_w ) -{ - int drive; - - switch( offset ) - { - case 0: /* latch (write-only) */ - drive = (data & 0x10) ? 0 : (data & 0x80) ? 1 : -1; - if( drive != laser_drive ) - { - laser_drive = drive; - if( laser_drive >= 0 ) - laser_get_track(); - } - if( laser_drive >= 0 ) - { - if( (PHI0(data) && !(PHI1(data) || PHI2(data) || PHI3(data)) && PHI1(laser_fdc_latch)) || - (PHI1(data) && !(PHI0(data) || PHI2(data) || PHI3(data)) && PHI2(laser_fdc_latch)) || - (PHI2(data) && !(PHI0(data) || PHI1(data) || PHI3(data)) && PHI3(laser_fdc_latch)) || - (PHI3(data) && !(PHI0(data) || PHI1(data) || PHI2(data)) && PHI0(laser_fdc_latch)) ) - { - if( laser_track_x2[laser_drive] > 0 ) - laser_track_x2[laser_drive]--; - logerror("laser_fdc_w(%d) $%02X drive %d: stepout track #%2d.%d\n", offset, data, laser_drive, laser_track_x2[laser_drive]/2,5*(laser_track_x2[laser_drive]&1)); - if( (laser_track_x2[laser_drive] & 1) == 0 ) - laser_get_track(); - } - else - if( (PHI0(data) && !(PHI1(data) || PHI2(data) || PHI3(data)) && PHI3(laser_fdc_latch)) || - (PHI1(data) && !(PHI0(data) || PHI2(data) || PHI3(data)) && PHI0(laser_fdc_latch)) || - (PHI2(data) && !(PHI0(data) || PHI1(data) || PHI3(data)) && PHI1(laser_fdc_latch)) || - (PHI3(data) && !(PHI0(data) || PHI1(data) || PHI2(data)) && PHI2(laser_fdc_latch)) ) - { - if( laser_track_x2[laser_drive] < 2*40 ) - laser_track_x2[laser_drive]++; - logerror("laser_fdc_w(%d) $%02X drive %d: stepin track #%2d.%d\n", offset, data, laser_drive, laser_track_x2[laser_drive]/2,5*(laser_track_x2[laser_drive]&1)); - if( (laser_track_x2[laser_drive] & 1) == 0 ) - laser_get_track(); - } - if( (data & 0x40) == 0 ) - { - laser_data <<= 1; - if( (laser_fdc_latch ^ data) & 0x20 ) - laser_data |= 1; - if( (laser_fdc_edge ^= 1) == 0 ) - { - if( --laser_fdc_bits == 0 ) - { - UINT8 value = 0; - laser_data &= 0xffff; - if( laser_data & 0x4000 ) value |= 0x80; - if( laser_data & 0x1000 ) value |= 0x40; - if( laser_data & 0x0400 ) value |= 0x20; - if( laser_data & 0x0100 ) value |= 0x10; - if( laser_data & 0x0040 ) value |= 0x08; - if( laser_data & 0x0010 ) value |= 0x04; - if( laser_data & 0x0004 ) value |= 0x02; - if( laser_data & 0x0001 ) value |= 0x01; - logerror("laser_fdc_w(%d) data($%04X) $%02X <- $%02X ($%04X)\n", offset, laser_fdc_offs, laser_fdc_data[laser_fdc_offs], value, laser_data); - laser_fdc_data[laser_fdc_offs] = value; - laser_fdc_offs = (laser_fdc_offs + 1) % TRKSIZE_FM; - laser_fdc_write++; - laser_fdc_bits = 8; - } - } - } - /* change of write signal? */ - if( (laser_fdc_latch ^ data) & 0x40 ) - { - /* falling edge? */ - if ( laser_fdc_latch & 0x40 ) - { - sprintf(laser_frame_message, "#%d put track %02d", laser_drive, laser_track_x2[laser_drive]/2); - laser_frame_time = 30; - laser_fdc_start = laser_fdc_offs; - laser_fdc_edge = 0; - } - else - { - /* data written to track before? */ - if( laser_fdc_write ) - laser_put_track(); - } - laser_fdc_bits = 8; - laser_fdc_write = 0; - } - } - laser_fdc_latch = data; - break; - } -} - - diff --git a/mess/machine/zx.c b/mess/machine/zx.c deleted file mode 100644 index d480a30c9..000000000 --- a/mess/machine/zx.c +++ /dev/null @@ -1,229 +0,0 @@ -/*************************************************************************** - zx.c - - machine driver - Juergen Buchmueller , Dec 1999 - -****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/z80/z80.h" -#include "includes/zx.h" -#include "devices/cassette.h" - -#define DEBUG_ZX81_PORTS 1 -#define DEBUG_ZX81_VSYNC 1 - -#define LOG_ZX81_IOR(_comment) { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOR: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, cpu_getscanline(), _comment); } -#define LOG_ZX81_IOW(_comment) { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOW: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, cpu_getscanline(), _comment); } -#define LOG_ZX81_VSYNC { if (DEBUG_ZX81_VSYNC) logerror("VSYNC starts in scanline: %d\n", cpu_getscanline()); } - -static UINT8 zx_tape_bit = 0x80; - -DRIVER_INIT ( zx ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, 0, 0x8000, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4000 + mess_ram_size - 1, 0, 0x8000, MWA8_BANK1); - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x4000); -} - -static OPBASE_HANDLER ( zx_setopbase ) -{ - if (address & 0x8000) - return zx_ula_r(address, REGION_CPU1); - return address; -} - -static OPBASE_HANDLER ( pc8300_setopbase ) -{ - if (address & 0x8000) - return zx_ula_r(address, REGION_GFX1); - return address; -} - -static void common_init_machine(opbase_handler setopbase) -{ - memory_set_opbase_handler(0, setopbase); - zx_tape_bit = 0x80; -} - -MACHINE_RESET ( zx80 ) -{ - common_init_machine(zx_setopbase); -} - -MACHINE_RESET ( zx81 ) -{ - common_init_machine(zx_setopbase); -} - -MACHINE_RESET ( pc8300 ) -{ - common_init_machine(pc8300_setopbase); -} - -static void zx_tape_pulse (int param) -{ - zx_tape_bit = 0x80; -} - -WRITE8_HANDLER ( zx_io_w ) -{ - if ((offset & 2) == 0) - { - timer_reset(ula_nmi, TIME_NEVER); - - LOG_ZX81_IOW("ULA NMIs off"); - } - else if ((offset & 1) == 0) - { - timer_adjust(ula_nmi, 0, 0, TIME_IN_CYCLES(207, 0)); - - LOG_ZX81_IOW("ULA NMIs on"); - - /* remove the IRQ */ - ula_irq_active = 0; - } - else - { - zx_ula_bkgnd(1); - if (ula_frame_vsync == 2) - { - cpu_spinuntil_time(cpu_getscanlinetime(Machine->screen[0].height - 1)); - ula_scanline_count = Machine->screen[0].height - 1; - logerror ("S: %d B: %d\n", cpu_getscanline(), cpu_gethorzbeampos()); - } - - LOG_ZX81_IOW("ULA IRQs on"); - } -} - -READ8_HANDLER ( zx_io_r ) -{ - int data = 0xff; - - if ((offset & 1) == 0) - { - int extra1 = readinputport(9); - int extra2 = readinputport(10); - - ula_scancode_count = 0; - if ((offset & 0x0100) == 0) - { - data &= readinputport(1); - /* SHIFT for extra keys */ - if (extra1 != 0xff || extra2 != 0xff) - data &= ~0x01; - } - if ((offset & 0x0200) == 0) - data &= readinputport(2); - if ((offset & 0x0400) == 0) - data &= readinputport(3); - if ((offset & 0x0800) == 0) - data &= readinputport(4) & extra1; - if ((offset & 0x1000) == 0) - data &= readinputport(5) & extra2; - if ((offset & 0x2000) == 0) - data &= readinputport(6); - if ((offset & 0x4000) == 0) - data &= readinputport(7); - if ((offset & 0x8000) == 0) - data &= readinputport(8); - if (Machine->screen[0].refresh > 55) - data &= ~0x40; - - if (ula_irq_active) - { - zx_ula_bkgnd(0); - ula_irq_active = 0; - - LOG_ZX81_IOR("ULA IRQs off"); - } - else - { - if ((cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) < -0.75) && zx_tape_bit) - { - zx_tape_bit = 0x00; - timer_set(TIME_IN_USEC(362.0), 0, zx_tape_pulse); - } - - data &= ~zx_tape_bit; - - LOG_ZX81_IOR("Tape"); - } - if (ula_frame_vsync == 3) - { - ula_frame_vsync = 2; - LOG_ZX81_VSYNC; - } - } - else - LOG_ZX81_IOR("Unmapped port"); - - return data; -} - -READ8_HANDLER ( pow3000_io_r ) -{ - int data = 0xff; - - if ((offset & 1) == 0) - { - int extra1 = readinputport(9); - int extra2 = readinputport(10); - - ula_scancode_count = 0; - if ((offset & 0x0100) == 0) - { - data &= readinputport(1) & extra1; - /* SHIFT for extra keys */ - if (extra1 != 0xff || extra2 != 0xff) - data &= ~0x01; - } - if ((offset & 0x0200) == 0) - data &= readinputport(2) & extra2; - if ((offset & 0x0400) == 0) - data &= readinputport(3); - if ((offset & 0x0800) == 0) - data &= readinputport(4); - if ((offset & 0x1000) == 0) - data &= readinputport(5); - if ((offset & 0x2000) == 0) - data &= readinputport(6); - if ((offset & 0x4000) == 0) - data &= readinputport(7); - if ((offset & 0x8000) == 0) - data &= readinputport(8); - if (Machine->screen[0].refresh > 55) - data &= ~0x40; - - if (ula_irq_active) - { - zx_ula_bkgnd(0); - ula_irq_active = 0; - LOG_ZX81_IOR("ULA IRQs off"); - } - else - { - if ((cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) < -0.75) && zx_tape_bit) - { - zx_tape_bit = 0x00; - timer_set(TIME_IN_USEC(362.0), 0, zx_tape_pulse); - } - - data &= ~zx_tape_bit; - - LOG_ZX81_IOR("Tape"); - } - if (ula_frame_vsync == 3) - { - ula_frame_vsync = 2; - LOG_ZX81_VSYNC; - } - } - else - LOG_ZX81_IOR("Unknown port"); - - return data; -} diff --git a/mess/mess.mak b/mess/mess.mak deleted file mode 100644 index c68399302..000000000 --- a/mess/mess.mak +++ /dev/null @@ -1,1145 +0,0 @@ -# this is a MESS build -MESS = 1 - -# core defines -COREDEFS += -DMESS - - - -#------------------------------------------------- -# specify available CPU cores; some of these are -# only for MAME and so aren't included -#------------------------------------------------- - -CPUS += Z80 -#CPUS += Z180 -CPUS += 8080 -#CPUS += 8085A -CPUS += M6502 -CPUS += M65C02 -CPUS += M65SC02 -#CPUS += M65CE02 -CPUS += M6509 -CPUS += M6510 -CPUS += M6510T -CPUS += M7501 -CPUS += M8502 -CPUS += N2A03 -#CPUS += DECO16 -CPUS += M4510 -CPUS += H6280 -CPUS += I86 -CPUS += I88 -CPUS += I186 -#CPUS += I188 -CPUS += I286 -CPUS += V20 -#CPUS += V30 -#CPUS += V33 -#CPUS += V60 -#CPUS += V70 -#CPUS += I8035 -CPUS += I8039 -CPUS += I8048 -#CPUS += N7751 -#CPUS += I8X41 -#CPUS += I8051 -#CPUS += I8052 -#CPUS += I8751 -#CPUS += I8752 -CPUS += M6800 -#CPUS += M6801 -#CPUS += M6802 -CPUS += M6803 -#CPUS += M6808 -#CPUS += HD63701 -#CPUS += NSC8105 -CPUS += M6805 -#CPUS += M68705 -#CPUS += HD63705 -CPUS += HD6309 -CPUS += M6809 -CPUS += M6809E -#CPUS += KONAMI -CPUS += M68000 -#CPUS += M68010 -CPUS += M68EC020 -#CPUS += M68020 -#CPUS += M68040 -#CPUS += T11 -CPUS += S2650 -#CPUS += TMS34010 -#CPUS += TMS34020 -CPUS += TMS9900 -#CPUS += TMS9940 -CPUS += TMS9980 -#CPUS += TMS9985 -#CPUS += TMS9989 -CPUS += TMS9995 -#CPUS += TMS99105A -#CPUS += TMS99110A -#CPUS += Z8000 -#CPUS += TMS32010 -#CPUS += TMS32025 -#CPUS += TMS32026 -#CPUS += TMS32031 -#CPUS += TMS32051 -#CPUS += CCPU -#CPUS += ADSP2100 -#CPUS += ADSP2101 -#CPUS += ADSP2104 -#CPUS += ADSP2105 -#CPUS += ADSP2115 -#CPUS += ADSP2181 -CPUS += PSXCPU -#CPUS += ASAP -#CPUS += UPD7810 -#CPUS += UPD7807 -CPUS += ARM -#CPUS += ARM7 -CPUS += JAGUAR -#CPUS += R3000 -CPUS += R4600 -#CPUS += R4650 -#CPUS += R4700 -CPUS += R5000 -#CPUS += QED5271 -#CPUS += RM7000 -CPUS += SH2 -#CPUS += DSP32C -#CPUS += PIC16C54 -#CPUS += PIC16C55 -#CPUS += PIC16C56 -#CPUS += PIC16C57 -#CPUS += PIC16C58 -CPUS += G65816 -CPUS += SPC700 -#CPUS += E116T -#CPUS += E116XT -#CPUS += E116XS -#CPUS += E116XSR -#CPUS += E132N -#CPUS += E132T -#CPUS += E132XN -#CPUS += E132XT -#CPUS += E132XS -#CPUS += E132XSR -#CPUS += GMS30C2116 -#CPUS += GMS30C2132 -#CPUS += GMS30C2216 -#CPUS += GMS30C2232 -CPUS += I386 -CPUS += I486 -CPUS += PENTIUM -#CPUS += MEDIAGX -#CPUS += I960 -#CPUS += H83002 -#CPUS += V810 -#CPUS += M37702 -#CPUS += M37710 -#CPUS += PPC403 -#CPUS += PPC602 -CPUS += PPC603 -#CPUS += SE3208 -#CPUS += MC68HC11 -#CPUS += ADSP21062 -#CPUS += DSP56156 -CPUS += RSP -#CPUS += ALPHA8201 -#CPUS += ALPHA8301 -CPUS += CDP1802 -#CPUS += COP420 -#CPUS += COP410 -#CPUS += TLCS90 -CPUS += APEXC -CPUS += CP1610 -CPUS += F8 -#CPUS += LH5801 -CPUS += PDP1 -CPUS += SATURN -CPUS += SC61860 -CPUS += TX0_64KW -CPUS += TX0_8KW -CPUS += Z80GB -#CPUS += TMS7000 -CPUS += TMS7000_EXL -CPUS += SM8500 -CPUS += V30MZ -CPUS += M68008 -#CPUS += TMS99000 -CPUS += TMS99010 -CPUS += TX0 -CPUS += COP411 -#------------------------------------------------- -# specify available sound cores; some of these are -# only for MAME and so aren't included -#------------------------------------------------- - -SOUNDS += CUSTOM -#SOUNDS += SAMPLES -SOUNDS += DAC -SOUNDS += DMADAC -SOUNDS += DISCRETE -SOUNDS += AY8910 -SOUNDS += YM2203 -SOUNDS += YM2151 -#SOUNDS += YM2608 -#SOUNDS += YM2610 -#SOUNDS += YM2610B -SOUNDS += YM2612 -#SOUNDS += YM3438 -SOUNDS += YM2413 -SOUNDS += YM3812 -#SOUNDS += YMZ280B -#SOUNDS += YM3526 -#SOUNDS += Y8950 -SOUNDS += SN76477 -SOUNDS += SN76496 -SOUNDS += POKEY -SOUNDS += TIA -SOUNDS += NES -SOUNDS += ASTROCADE -#SOUNDS += NAMCO -#SOUNDS += NAMCO_15XX -#SOUNDS += NAMCO_CUS30 -#SOUNDS += NAMCO_52XX -#SOUNDS += NAMCO_54XX -#SOUNDS += NAMCO_63701X -#SOUNDS += NAMCONA -#SOUNDS += TMS36XX -#SOUNDS += TMS3615 -#SOUNDS += TMS5110 -SOUNDS += TMS5220 -#SOUNDS += VLM5030 -#SOUNDS += ADPCM -SOUNDS += OKIM6295 -#SOUNDS += MSM5205 -#SOUNDS += MSM5232 -#SOUNDS += UPD7759 -#SOUNDS += HC55516 -#SOUNDS += K005289 -#SOUNDS += K007232 -SOUNDS += K051649 -#SOUNDS += K053260 -#SOUNDS += K054539 -#SOUNDS += SEGAPCM -#SOUNDS += RF5C68 -#SOUNDS += CEM3394 -#SOUNDS += C140 -SOUNDS += QSOUND -SOUNDS += SAA1099 -#SOUNDS += IREMGA20 -SOUNDS += ES5503 -#SOUNDS += ES5505 -#SOUNDS += ES5506 -#SOUNDS += BSMT2000 -#SOUNDS += YMF262 -#SOUNDS += YMF278B -#SOUNDS += GAELCO_CG1V -#SOUNDS += GAELCO_GAE1 -#SOUNDS += X1_010 -#SOUNDS += MULTIPCM -SOUNDS += C6280 -#SOUNDS += SP0250 -SOUNDS += SCSP -#SOUNDS += YMF271 -SOUNDS += PSXSPU -SOUNDS += CDDA -#SOUNDS += ICS2115 -#SOUNDS += ST0016 -#SOUNDS += C352 -#SOUNDS += VRENDER0 -#SOUNDS += VOTRAX -#SOUNDS += ES8712 -#SOUNDS += RF5C400 -SOUNDS += SPEAKER -#SOUNDS += CDP1869 -#SOUNDS += S14001A -SOUNDS += BEEP -SOUNDS += WAVE -SOUNDS += SID6581 -SOUNDS += SID8580 -#SOUNDS += SP0256 - -# Archive definitions -DRVLIBS = \ - $(OBJ)/acorn.a \ - $(OBJ)/advision.a \ - $(OBJ)/aim65.a \ - $(OBJ)/amiga.a \ - $(OBJ)/amstrad.a \ - $(OBJ)/apexc.a \ - $(OBJ)/apple.a \ - $(OBJ)/apf.a \ - $(OBJ)/aquarius.a \ - $(OBJ)/arcadia.a \ - $(OBJ)/ascii.a \ - $(OBJ)/at.a \ - $(OBJ)/atari.a \ - $(OBJ)/avigo.a \ - $(OBJ)/bally.a \ - $(OBJ)/bandai.a \ - $(OBJ)/be.a \ - $(OBJ)/cbm.a \ - $(OBJ)/cbmshare.a \ - $(OBJ)/cgenie.a \ - $(OBJ)/coco.a \ - $(OBJ)/coleco.a \ - $(OBJ)/compis.a \ - $(OBJ)/concept.a \ - $(OBJ)/cpschngr.a \ - $(OBJ)/dai.a \ - $(OBJ)/dgn_beta.a \ - $(OBJ)/ep128.a \ - $(OBJ)/exidy.a \ - $(OBJ)/fairch.a \ - $(OBJ)/galaxy.a \ - $(OBJ)/gce.a \ - $(OBJ)/hp48.a \ - $(OBJ)/intv.a \ - $(OBJ)/jupiter.a \ - $(OBJ)/kaypro.a \ - $(OBJ)/kim1.a \ - $(OBJ)/magnavox.a \ - $(OBJ)/mbee.a \ - $(OBJ)/mc10.a \ - $(OBJ)/mk1.a \ - $(OBJ)/mk2.a \ - $(OBJ)/luxor.a \ - $(OBJ)/lviv.a \ - $(OBJ)/lynx.a \ - $(OBJ)/motorola.a \ - $(OBJ)/mtx.a \ - $(OBJ)/multitch.a \ - $(OBJ)/nascom1.a \ - $(OBJ)/nec.a \ - $(OBJ)/necpc.a \ - $(OBJ)/nintendo.a \ - $(OBJ)/p2000.a \ - $(OBJ)/pc.a \ - $(OBJ)/pcshare.a \ - $(OBJ)/pdp1.a \ - $(OBJ)/pmd85.a \ - $(OBJ)/primo.a \ - $(OBJ)/rca.a \ - $(OBJ)/samcoupe.a \ - $(OBJ)/sega.a \ - $(OBJ)/sgi.a \ - $(OBJ)/sharp.a \ - $(OBJ)/sinclair.a \ - $(OBJ)/sony.a \ - $(OBJ)/sord.a \ - $(OBJ)/ssystem3.a \ - $(OBJ)/svi.a \ - $(OBJ)/svision.a \ - $(OBJ)/sym1.a \ - $(OBJ)/tangerin.a \ - $(OBJ)/tatung.a \ - $(OBJ)/teamconc.a \ - $(OBJ)/telmac.a \ - $(OBJ)/thomson.a \ - $(OBJ)/ti85.a \ - $(OBJ)/ti99.a \ - $(OBJ)/tiger.a \ - $(OBJ)/trs80.a \ - $(OBJ)/tutor.a \ - $(OBJ)/tx0.a \ - $(OBJ)/vc4000.a \ - $(OBJ)/veb.a \ - $(OBJ)/vtech.a \ - - - -$(OBJ)/neocd.a: \ - $(OBJ)/mess/systems/neocd.o \ - $(OBJ)/machine/neogeo.o \ - $(OBJ)/vidhrdw/neogeo.o \ - $(OBJ)/machine/pd4990a.o \ - -$(OBJ)/coleco.a: \ - $(OBJ)/mess/machine/coleco.o \ - $(OBJ)/mess/systems/coleco.o \ - $(OBJ)/mess/machine/adam.o \ - $(OBJ)/mess/systems/adam.o \ - $(OBJ)/mess/formats/adam_dsk.o \ - $(OBJ)/mess/systems/fnvision.o \ - - -$(OBJ)/arcadia.a: \ - $(OBJ)/mess/systems/arcadia.o \ - $(OBJ)/mess/sndhrdw/arcadia.o \ - $(OBJ)/mess/vidhrdw/arcadia.o \ - -$(OBJ)/sega.a: \ - $(OBJ)/mess/machine/genesis.o \ - $(OBJ)/mess/systems/genesis.o \ - $(OBJ)/mess/systems/saturn.o \ - $(OBJ)/machine/stvcd.o \ - $(OBJ)/machine/scudsp.o \ - $(OBJ)/vidhrdw/stvvdp1.o \ - $(OBJ)/vidhrdw/stvvdp2.o \ - $(OBJ)/sound/scsp.o \ - $(OBJ)/sound/scspdsp.o \ - $(OBJ)/mess/vidhrdw/smsvdp.o \ - $(OBJ)/mess/machine/sms.o \ - $(OBJ)/mess/systems/sms.o - -$(OBJ)/atari.a: \ - $(OBJ)/vidhrdw/tia.o \ - $(OBJ)/machine/atari.o \ - $(OBJ)/vidhrdw/atari.o \ - $(OBJ)/vidhrdw/antic.o \ - $(OBJ)/vidhrdw/gtia.o \ - $(OBJ)/mess/machine/atarifdc.o \ - $(OBJ)/mess/systems/atari.o \ - $(OBJ)/mess/machine/a7800.o \ - $(OBJ)/mess/systems/a7800.o \ - $(OBJ)/mess/vidhrdw/a7800.o \ - $(OBJ)/mess/systems/a2600.o \ - $(OBJ)/mess/systems/jaguar.o \ - $(OBJ)/sndhrdw/jaguar.o \ - $(OBJ)/vidhrdw/jaguar.o \ -# $(OBJ)/mess/systems/atarist.o - -$(OBJ)/gce.a: \ - $(OBJ)/mess/systems/vectrex.o \ - $(OBJ)/mess/vidhrdw/vectrex.o \ - $(OBJ)/mess/machine/vectrex.o \ - -$(OBJ)/nintendo.a: \ - $(OBJ)/mess/sndhrdw/gb.o \ - $(OBJ)/mess/vidhrdw/gb.o \ - $(OBJ)/mess/machine/gb.o \ - $(OBJ)/mess/systems/gb.o \ - $(OBJ)/mess/machine/nes_mmc.o \ - $(OBJ)/vidhrdw/ppu2c0x.o \ - $(OBJ)/mess/vidhrdw/nes.o \ - $(OBJ)/mess/machine/nes.o \ - $(OBJ)/mess/systems/nes.o \ - $(OBJ)/sndhrdw/snes.o \ - $(OBJ)/machine/snes.o \ - $(OBJ)/vidhrdw/snes.o \ - $(OBJ)/mess/systems/snes.o \ - $(OBJ)/mess/systems/n64.o \ - $(OBJ)/machine/n64.o \ - $(OBJ)/vidhrdw/n64.o \ - -$(OBJ)/amiga.a: \ - $(OBJ)/vidhrdw/amiga.o \ - $(OBJ)/machine/amiga.o \ - $(OBJ)/sndhrdw/amiga.o \ - $(OBJ)/machine/6526cia.o \ - $(OBJ)/mess/machine/amigafdc.o \ - $(OBJ)/mess/machine/amigakbd.o \ - $(OBJ)/mess/systems/amiga.o \ - -$(OBJ)/cbmshare.a: \ - $(OBJ)/machine/6526cia.o \ - $(OBJ)/mess/machine/tpi6525.o \ - $(OBJ)/mess/machine/cbm.o \ - $(OBJ)/mess/machine/cbmdrive.o \ - $(OBJ)/mess/machine/vc1541.o \ - $(OBJ)/mess/machine/cbmieeeb.o \ - $(OBJ)/mess/machine/cbmserb.o \ - $(OBJ)/mess/machine/c64.o \ - $(OBJ)/mess/machine/c65.o \ - $(OBJ)/mess/vidhrdw/vic6567.o \ - $(OBJ)/mess/machine/vc20tape.o - -$(OBJ)/cbm.a: \ - $(OBJ)/mess/vidhrdw/pet.o \ - $(OBJ)/mess/systems/pet.o \ - $(OBJ)/mess/machine/pet.o \ - $(OBJ)/mess/systems/c64.o \ - $(OBJ)/mess/machine/vc20.o \ - $(OBJ)/mess/systems/vc20.o \ - $(OBJ)/mess/sndhrdw/ted7360.o \ - $(OBJ)/mess/sndhrdw/t6721.o \ - $(OBJ)/mess/machine/c16.o \ - $(OBJ)/mess/systems/c16.o \ - $(OBJ)/mess/systems/cbmb.o \ - $(OBJ)/mess/machine/cbmb.o \ - $(OBJ)/mess/vidhrdw/cbmb.o \ - $(OBJ)/mess/systems/c65.o \ - $(OBJ)/mess/vidhrdw/vdc8563.o \ - $(OBJ)/mess/systems/c128.o \ - $(OBJ)/mess/machine/c128.o \ - $(OBJ)/mess/sndhrdw/vic6560.o \ - $(OBJ)/mess/vidhrdw/ted7360.o \ - $(OBJ)/mess/vidhrdw/vic6560.o - -$(OBJ)/coco.a: \ - $(OBJ)/mess/machine/6883sam.o \ - $(OBJ)/mess/machine/cococart.o \ - $(OBJ)/mess/machine/ds1315.o \ - $(OBJ)/mess/machine/m6242b.o \ - $(OBJ)/mess/machine/coco.o \ - $(OBJ)/mess/vidhrdw/coco.o \ - $(OBJ)/mess/systems/coco.o \ - $(OBJ)/mess/vidhrdw/coco3.o \ - $(OBJ)/mess/formats/cocopak.o \ - $(OBJ)/mess/formats/coco_cas.o \ - $(OBJ)/mess/formats/coco_dsk.o \ - $(OBJ)/mess/devices/coco_vhd.o \ - -$(OBJ)/mc10.a: \ - $(OBJ)/mess/machine/mc10.o \ - $(OBJ)/mess/systems/mc10.o \ - $(OBJ)/mess/formats/coco_cas.o \ - -$(OBJ)/dgn_beta.a: \ - $(OBJ)/mess/machine/dgn_beta.o \ - $(OBJ)/mess/vidhrdw/dgn_beta.o \ - $(OBJ)/mess/systems/dgn_beta.o \ - $(OBJ)/mess/formats/coco_dsk.o \ - -$(OBJ)/trs80.a: \ - $(OBJ)/mess/machine/trs80.o \ - $(OBJ)/mess/vidhrdw/trs80.o \ - $(OBJ)/mess/systems/trs80.o - -$(OBJ)/cgenie.a: \ - $(OBJ)/mess/systems/cgenie.o \ - $(OBJ)/mess/vidhrdw/cgenie.o \ - $(OBJ)/mess/sndhrdw/cgenie.o \ - $(OBJ)/mess/machine/cgenie.o \ - -$(OBJ)/pdp1.a: \ - $(OBJ)/mess/vidhrdw/pdp1.o \ - $(OBJ)/mess/machine/pdp1.o \ - $(OBJ)/mess/systems/pdp1.o \ - -$(OBJ)/apexc.a: \ - $(OBJ)/mess/systems/apexc.o - -$(OBJ)/kaypro.a: \ - $(OBJ)/mess/systems/kaypro.o \ - $(OBJ)/mess/machine/cpm_bios.o \ - $(OBJ)/mess/vidhrdw/kaypro.o \ - $(OBJ)/mess/sndhrdw/kaypro.o \ - $(OBJ)/mess/machine/kaypro.o \ - -$(OBJ)/sinclair.a: \ - $(OBJ)/mess/vidhrdw/border.o \ - $(OBJ)/mess/vidhrdw/spectrum.o \ - $(OBJ)/mess/vidhrdw/zx.o \ - $(OBJ)/mess/systems/zx.o \ - $(OBJ)/mess/machine/zx.o \ - $(OBJ)/mess/systems/spectrum.o \ - $(OBJ)/mess/machine/spectrum.o \ - $(OBJ)/mess/formats/zx81_p.o \ - $(OBJ)/mess/systems/ql.o \ - $(OBJ)/mess/formats/tzx_cas.o \ - -$(OBJ)/apple.a: \ - $(OBJ)/mess/vidhrdw/apple2.o \ - $(OBJ)/mess/machine/apple2.o \ - $(OBJ)/mess/systems/apple2.o \ - $(OBJ)/mess/vidhrdw/apple2gs.o \ - $(OBJ)/mess/machine/apple2gs.o \ - $(OBJ)/mess/systems/apple2gs.o \ - $(OBJ)/mess/formats/ap2_dsk.o \ - $(OBJ)/mess/formats/ap_dsk35.o \ - $(OBJ)/mess/machine/ay3600.o \ - $(OBJ)/mess/machine/lisa.o \ - $(OBJ)/mess/systems/lisa.o \ - $(OBJ)/mess/machine/applefdc.o \ - $(OBJ)/mess/machine/8530scc.o \ - $(OBJ)/mess/devices/sonydriv.o \ - $(OBJ)/mess/devices/appldriv.o \ - $(OBJ)/mess/sndhrdw/mac.o \ - $(OBJ)/mess/vidhrdw/mac.o \ - $(OBJ)/mess/machine/mac.o \ - $(OBJ)/mess/systems/mac.o \ - $(OBJ)/mess/vidhrdw/apple1.o \ - $(OBJ)/mess/machine/apple1.o \ - $(OBJ)/mess/systems/apple1.o \ - $(OBJ)/mess/vidhrdw/apple3.o \ - $(OBJ)/mess/machine/apple3.o \ - $(OBJ)/mess/systems/apple3.o \ - $(OBJ)/mess/machine/ncr5380.o - - -$(OBJ)/avigo.a: \ - $(OBJ)/mess/vidhrdw/avigo.o \ - $(OBJ)/mess/systems/avigo.o \ - -$(OBJ)/ti85.a: \ - $(OBJ)/mess/systems/ti85.o \ - $(OBJ)/mess/formats/ti85_ser.o \ - $(OBJ)/mess/vidhrdw/ti85.o \ - $(OBJ)/mess/machine/ti85.o \ - -$(OBJ)/rca.a: \ - $(OBJ)/mess/systems/studio2.o \ - $(OBJ)/mess/vidhrdw/studio2.o - -$(OBJ)/fairch.a: \ - $(OBJ)/mess/vidhrdw/channelf.o \ - $(OBJ)/mess/sndhrdw/channelf.o \ - $(OBJ)/mess/systems/channelf.o - -$(OBJ)/ti99.a: \ - $(OBJ)/mess/machine/tms9901.o \ - $(OBJ)/mess/machine/tms9902.o \ - $(OBJ)/mess/machine/ti99_4x.o \ - $(OBJ)/mess/machine/990_hd.o \ - $(OBJ)/mess/machine/990_tap.o \ - $(OBJ)/mess/machine/ti990.o \ - $(OBJ)/mess/machine/mm58274c.o \ - $(OBJ)/mess/machine/994x_ser.o \ - $(OBJ)/mess/machine/at29040.o \ - $(OBJ)/mess/machine/99_dsk.o \ - $(OBJ)/mess/machine/99_ide.o \ - $(OBJ)/mess/machine/99_peb.o \ - $(OBJ)/mess/machine/99_hsgpl.o \ - $(OBJ)/mess/machine/99_usbsm.o \ - $(OBJ)/mess/machine/smc92x4.o \ - $(OBJ)/mess/machine/strata.o \ - $(OBJ)/mess/machine/rtc65271.o \ - $(OBJ)/mess/machine/geneve.o \ - $(OBJ)/mess/machine/990_dk.o \ - $(OBJ)/mess/sndhrdw/spchroms.o \ - $(OBJ)/mess/systems/ti990_4.o \ - $(OBJ)/mess/systems/ti99_4x.o \ - $(OBJ)/mess/systems/ti99_4p.o \ - $(OBJ)/mess/systems/geneve.o \ - $(OBJ)/mess/systems/tm990189.o \ - $(OBJ)/mess/systems/ti99_8.o \ - $(OBJ)/mess/vidhrdw/911_vdt.o \ - $(OBJ)/mess/vidhrdw/733_asr.o \ - $(OBJ)/mess/systems/ti990_10.o \ - $(OBJ)/mess/systems/ti99_2.o \ - $(OBJ)/mess/systems/tutor.o \ - -$(OBJ)/tutor.a: \ - $(OBJ)/mess/systems/tutor.o - -$(OBJ)/bally.a: \ - $(OBJ)/sound/astrocde.o \ - $(OBJ)/mess/vidhrdw/astrocde.o \ - $(OBJ)/mess/machine/astrocde.o \ - $(OBJ)/mess/systems/astrocde.o - -$(OBJ)/pcshare.a: \ - $(OBJ)/machine/8237dma.o \ - $(OBJ)/machine/pic8259.o \ - $(OBJ)/machine/pcshare.o \ - $(OBJ)/mess/machine/pc_turbo.o \ - $(OBJ)/mess/sndhrdw/pc.o \ - $(OBJ)/mess/sndhrdw/sblaster.o \ - $(OBJ)/mess/machine/pc_fdc.o \ - $(OBJ)/mess/machine/pc_hdc.o \ - $(OBJ)/mess/machine/pc_joy.o \ - $(OBJ)/mess/vidhrdw/pc_video.o \ - $(OBJ)/mess/vidhrdw/pc_mda.o \ - $(OBJ)/mess/vidhrdw/pc_cga.o \ - $(OBJ)/mess/vidhrdw/cgapal.o \ - $(OBJ)/mess/vidhrdw/pc_vga.o \ - -$(OBJ)/pc.a: \ - $(OBJ)/mess/vidhrdw/pc_aga.o \ - $(OBJ)/mess/machine/ibmpc.o \ - $(OBJ)/mess/machine/tandy1t.o \ - $(OBJ)/mess/machine/amstr_pc.o \ - $(OBJ)/mess/machine/europc.o \ - $(OBJ)/mess/machine/pc.o \ - $(OBJ)/mess/systems/pc.o \ - $(OBJ)/mess/vidhrdw/pc_t1t.o - -$(OBJ)/at.a: \ - $(OBJ)/machine/8042kbdc.o \ - $(OBJ)/mess/machine/pc_ide.o \ - $(OBJ)/mess/machine/ps2.o \ - $(OBJ)/mess/machine/at.o \ - $(OBJ)/mess/systems/at.o \ - $(OBJ)/mess/machine/i82439tx.o - -$(OBJ)/p2000.a: \ - $(OBJ)/mess/vidhrdw/saa5050.o \ - $(OBJ)/mess/vidhrdw/p2000m.o \ - $(OBJ)/mess/systems/p2000t.o \ - $(OBJ)/mess/machine/p2000t.o \ - $(OBJ)/mess/machine/mc6850.o \ - $(OBJ)/mess/vidhrdw/osi.o \ - $(OBJ)/mess/sndhrdw/osi.o \ - $(OBJ)/mess/systems/osi.o \ - $(OBJ)/mess/machine/osi.o \ - -$(OBJ)/amstrad.a: \ - $(OBJ)/mess/systems/amstrad.o \ - $(OBJ)/mess/machine/amstrad.o \ - $(OBJ)/mess/vidhrdw/amstrad.o \ - $(OBJ)/mess/vidhrdw/pcw.o \ - $(OBJ)/mess/systems/pcw.o \ - $(OBJ)/mess/systems/pcw16.o \ - $(OBJ)/mess/vidhrdw/pcw16.o \ - $(OBJ)/mess/vidhrdw/nc.o \ - $(OBJ)/mess/systems/nc.o \ - $(OBJ)/mess/machine/nc.o \ - -$(OBJ)/veb.a: \ - $(OBJ)/mess/vidhrdw/kc.o \ - $(OBJ)/mess/systems/kc.o \ - $(OBJ)/mess/machine/kc.o \ - -$(OBJ)/nec.a: \ - $(OBJ)/mess/vidhrdw/vdc.o \ - $(OBJ)/mess/machine/pce.o \ - $(OBJ)/mess/systems/pce.o - -$(OBJ)/necpc.a: \ - $(OBJ)/mess/systems/pc8801.o \ - $(OBJ)/mess/machine/pc8801.o \ - $(OBJ)/mess/vidhrdw/pc8801.o \ - -$(OBJ)/ep128.a : \ - $(OBJ)/mess/sndhrdw/dave.o \ - $(OBJ)/mess/vidhrdw/epnick.o \ - $(OBJ)/mess/vidhrdw/enterp.o \ - $(OBJ)/mess/machine/enterp.o \ - $(OBJ)/mess/systems/enterp.o - -$(OBJ)/ascii.a : \ - $(OBJ)/mess/formats/fmsx_cas.o \ - $(OBJ)/mess/systems/msx.o \ - $(OBJ)/mess/machine/msx_slot.o \ - $(OBJ)/mess/machine/msx.o \ - -$(OBJ)/kim1.a : \ - $(OBJ)/mess/vidhrdw/kim1.o \ - $(OBJ)/mess/machine/kim1.o \ - $(OBJ)/mess/systems/kim1.o - -$(OBJ)/sym1.a : \ - $(OBJ)/mess/vidhrdw/sym1.o \ - $(OBJ)/mess/machine/sym1.o \ - $(OBJ)/mess/systems/sym1.o - -$(OBJ)/aim65.a : \ - $(OBJ)/mess/vidhrdw/aim65.o \ - $(OBJ)/mess/machine/aim65.o \ - $(OBJ)/mess/systems/aim65.o - -$(OBJ)/vc4000.a : \ - $(OBJ)/mess/sndhrdw/vc4000.o \ - $(OBJ)/mess/systems/vc4000.o \ - $(OBJ)/mess/vidhrdw/vc4000.o \ - -$(OBJ)/tangerin.a :\ - $(OBJ)/mess/devices/mfmdisk.o \ - $(OBJ)/mess/vidhrdw/microtan.o \ - $(OBJ)/mess/machine/microtan.o \ - $(OBJ)/mess/systems/microtan.o \ - $(OBJ)/mess/formats/oric_tap.o \ - $(OBJ)/mess/systems/oric.o \ - $(OBJ)/mess/vidhrdw/oric.o \ - $(OBJ)/mess/machine/oric.o \ - -$(OBJ)/vtech.a : \ - $(OBJ)/mess/vidhrdw/vtech1.o \ - $(OBJ)/mess/machine/vtech1.o \ - $(OBJ)/mess/systems/vtech1.o \ - $(OBJ)/mess/vidhrdw/vtech2.o \ - $(OBJ)/mess/machine/vtech2.o \ - $(OBJ)/mess/systems/vtech2.o \ - $(OBJ)/mess/formats/vt_cas.o \ - $(OBJ)/mess/formats/vt_dsk.o \ - -$(OBJ)/jupiter.a : \ - $(OBJ)/mess/systems/jupiter.o \ - $(OBJ)/mess/vidhrdw/jupiter.o \ - $(OBJ)/mess/machine/jupiter.o \ - -$(OBJ)/mbee.a : \ - $(OBJ)/mess/vidhrdw/mbee.o \ - $(OBJ)/mess/machine/mbee.o \ - $(OBJ)/mess/systems/mbee.o - -$(OBJ)/advision.a: \ - $(OBJ)/mess/vidhrdw/advision.o \ - $(OBJ)/mess/machine/advision.o \ - $(OBJ)/mess/systems/advision.o - -$(OBJ)/nascom1.a: \ - $(OBJ)/mess/vidhrdw/nascom1.o \ - $(OBJ)/mess/machine/nascom1.o \ - $(OBJ)/mess/systems/nascom1.o - -$(OBJ)/cpschngr.a: \ - $(OBJ)/machine/eeprom.o \ - $(OBJ)/mess/systems/cpschngr.o \ - $(OBJ)/vidhrdw/cps1.o - -$(OBJ)/mtx.a: \ - $(OBJ)/mess/systems/mtx.o - -$(OBJ)/acorn.a: \ - $(OBJ)/mess/machine/i8271.o \ - $(OBJ)/mess/machine/upd7002.o \ - $(OBJ)/mess/vidhrdw/saa505x.o \ - $(OBJ)/mess/vidhrdw/bbc.o \ - $(OBJ)/mess/machine/bbc.o \ - $(OBJ)/mess/systems/bbc.o \ - $(OBJ)/mess/systems/a310.o \ - $(OBJ)/mess/systems/z88.o \ - $(OBJ)/mess/vidhrdw/z88.o \ - $(OBJ)/mess/vidhrdw/atom.o \ - $(OBJ)/mess/systems/atom.o \ - $(OBJ)/mess/machine/atom.o \ - $(OBJ)/mess/formats/uef_cas.o \ - $(OBJ)/mess/formats/csw_cas.o \ - $(OBJ)/mess/vidhrdw/electron.o \ - $(OBJ)/mess/machine/electron.o \ - $(OBJ)/mess/systems/electron.o - -$(OBJ)/samcoupe.a: \ - $(OBJ)/mess/vidhrdw/coupe.o \ - $(OBJ)/mess/systems/coupe.o \ - $(OBJ)/mess/machine/coupe.o \ - -$(OBJ)/sharp.a: \ - $(OBJ)/mess/vidhrdw/mz700.o \ - $(OBJ)/mess/systems/mz700.o \ - $(OBJ)/mess/formats/mz_cas.o \ - $(OBJ)/mess/systems/pocketc.o \ - $(OBJ)/mess/vidhrdw/pc1401.o \ - $(OBJ)/mess/machine/pc1401.o \ - $(OBJ)/mess/vidhrdw/pc1403.o \ - $(OBJ)/mess/machine/pc1403.o \ - $(OBJ)/mess/vidhrdw/pc1350.o \ - $(OBJ)/mess/machine/pc1350.o \ - $(OBJ)/mess/vidhrdw/pc1251.o \ - $(OBJ)/mess/machine/pc1251.o \ - $(OBJ)/mess/vidhrdw/pocketc.o \ - $(OBJ)/mess/machine/mz700.o \ - -$(OBJ)/hp48.a: \ - $(OBJ)/mess/machine/hp48.o \ - $(OBJ)/mess/vidhrdw/hp48.o \ - $(OBJ)/mess/systems/hp48.o - -$(OBJ)/aquarius.a: \ - $(OBJ)/mess/systems/aquarius.o \ - $(OBJ)/mess/vidhrdw/aquarius.o \ - $(OBJ)/mess/machine/aquarius.o \ - -$(OBJ)/exidy.a: \ - $(OBJ)/mess/machine/hd6402.o \ - $(OBJ)/mess/systems/exidy.o \ - $(OBJ)/mess/vidhrdw/exidy.o \ - -$(OBJ)/galaxy.a: \ - $(OBJ)/mess/vidhrdw/galaxy.o \ - $(OBJ)/mess/systems/galaxy.o \ - $(OBJ)/mess/machine/galaxy.o \ - -$(OBJ)/lviv.a: \ - $(OBJ)/mess/vidhrdw/lviv.o \ - $(OBJ)/mess/systems/lviv.o \ - $(OBJ)/mess/machine/lviv.o \ - $(OBJ)/mess/formats/lviv_lvt.o - -$(OBJ)/pmd85.a: \ - $(OBJ)/mess/vidhrdw/pmd85.o \ - $(OBJ)/mess/systems/pmd85.o \ - $(OBJ)/mess/machine/pmd85.o \ - $(OBJ)/mess/formats/pmd_pmd.o - -$(OBJ)/magnavox.a: \ - $(OBJ)/mess/machine/odyssey2.o \ - $(OBJ)/mess/vidhrdw/odyssey2.o \ - $(OBJ)/mess/sndhrdw/odyssey2.o \ - $(OBJ)/mess/systems/odyssey2.o - -$(OBJ)/teamconc.a: \ - $(OBJ)/mess/vidhrdw/comquest.o \ - $(OBJ)/mess/systems/comquest.o - -$(OBJ)/svision.a: \ - $(OBJ)/mess/systems/svision.o \ - $(OBJ)/mess/sndhrdw/svision.o - -$(OBJ)/lynx.a: \ - $(OBJ)/mess/systems/lynx.o \ - $(OBJ)/mess/sndhrdw/lynx.o \ - $(OBJ)/mess/machine/lynx.o - -$(OBJ)/mk1.a: \ - $(OBJ)/cpu/f8/f3853.o \ - $(OBJ)/mess/vidhrdw/mk1.o \ - $(OBJ)/mess/systems/mk1.o - -$(OBJ)/mk2.a: \ - $(OBJ)/mess/systems/mk2.o - -$(OBJ)/ssystem3.a: \ - $(OBJ)/mess/vidhrdw/ssystem3.o \ - $(OBJ)/mess/systems/ssystem3.o - -$(OBJ)/motorola.a: \ - $(OBJ)/mess/vidhrdw/mekd2.o \ - $(OBJ)/mess/machine/mekd2.o \ - $(OBJ)/mess/systems/mekd2.o - -$(OBJ)/svi.a: \ - $(OBJ)/mess/machine/svi318.o \ - $(OBJ)/mess/systems/svi318.o \ - $(OBJ)/mess/formats/svi_cas.o - -$(OBJ)/intv.a: \ - $(OBJ)/mess/vidhrdw/intv.o \ - $(OBJ)/mess/vidhrdw/stic.o \ - $(OBJ)/mess/machine/intv.o \ - $(OBJ)/mess/sndhrdw/intv.o \ - $(OBJ)/mess/systems/intv.o - -$(OBJ)/apf.a: \ - $(OBJ)/mess/systems/apf.o \ - $(OBJ)/mess/machine/apf.o \ - $(OBJ)/mess/vidhrdw/apf.o \ - $(OBJ)/mess/formats/apf_apt.o - -$(OBJ)/sord.a: \ - $(OBJ)/mess/systems/sord.o \ - $(OBJ)/mess/formats/sord_cas.o - -$(OBJ)/tatung.a: \ - $(OBJ)/mess/systems/einstein.o - -$(OBJ)/sony.a: \ - $(OBJ)/mess/systems/psx.o \ - $(OBJ)/machine/psx.o \ - $(OBJ)/vidhrdw/psx.o - -$(OBJ)/dai.a: \ - $(OBJ)/mess/systems/dai.o \ - $(OBJ)/mess/vidhrdw/dai.o \ - $(OBJ)/mess/sndhrdw/dai.o \ - $(OBJ)/mess/machine/tms5501.o \ - $(OBJ)/mess/machine/dai.o \ - -$(OBJ)/concept.a: \ - $(OBJ)/mess/systems/concept.o \ - $(OBJ)/mess/machine/concept.o \ - $(OBJ)/mess/machine/corvushd.o - -$(OBJ)/bandai.a: \ - $(OBJ)/mess/systems/wswan.o \ - $(OBJ)/mess/machine/wswan.o \ - $(OBJ)/mess/vidhrdw/wswan.o \ - $(OBJ)/mess/sndhrdw/wswan.o - -$(OBJ)/compis.a: \ - $(OBJ)/mess/systems/compis.o \ - $(OBJ)/mess/machine/compis.o \ - $(OBJ)/mess/machine/mm58274c.o \ - $(OBJ)/mess/formats/cpis_dsk.o \ - $(OBJ)/mess/vidhrdw/i82720.o - -$(OBJ)/multitch.a: \ - $(OBJ)/mess/systems/mpf1.o \ - -$(OBJ)/telmac.a: \ - $(OBJ)/mess/systems/telmac.o \ - $(OBJ)/mess/vidhrdw/cdp186x.o \ - -$(OBJ)/exeltel.a: \ - $(OBJ)/mess/systems/exelv.o \ - -$(OBJ)/tx0.a: \ - $(OBJ)/mess/vidhrdw/crt.o \ - $(OBJ)/mess/systems/tx0.o \ - $(OBJ)/mess/machine/tx0.o \ - $(OBJ)/mess/vidhrdw/tx0.o \ - -$(OBJ)/luxor.a: \ - $(OBJ)/mess/systems/abc80.o \ - -$(OBJ)/sgi.a: \ - $(OBJ)/mess/machine/sgi.o \ - $(OBJ)/mess/systems/ip20.o \ - $(OBJ)/mess/systems/ip22.o \ - $(OBJ)/mess/machine/wd33c93.o \ - $(OBJ)/machine/scsihd.o \ - $(OBJ)/machine/scsicd.o \ - $(OBJ)/mess/vidhrdw/newport.o - -$(OBJ)/primo.a: \ - $(OBJ)/mess/systems/primo.o \ - $(OBJ)/mess/machine/primo.o \ - $(OBJ)/mess/vidhrdw/primo.o \ - $(OBJ)/mess/formats/primoptp.o - -$(OBJ)/be.a: \ - $(OBJ)/mess/systems/bebox.o \ - $(OBJ)/mess/machine/bebox.o \ - $(OBJ)/machine/pci.o \ - $(OBJ)/mess/machine/mpc105.o \ - $(OBJ)/mess/vidhrdw/cirrus.o \ - $(OBJ)/machine/intelfsh.o \ - $(OBJ)/machine/53c810.o - -$(OBJ)/thomson.a: \ - $(OBJ)/mess/machine/mc6854.o \ - $(OBJ)/mess/machine/mc6846.o \ - $(OBJ)/mess/systems/thomson.o \ - $(OBJ)/mess/machine/thomson.o \ - $(OBJ)/mess/vidhrdw/thomson.o \ - $(OBJ)/mess/devices/thomflop.o \ - $(OBJ)/mess/formats/thom_dsk.o \ - $(OBJ)/mess/formats/thom_cas.o \ - $(OBJ)/mess/sndhrdw/mea8000.o - -$(OBJ)/tiger.a: \ - $(OBJ)/mess/systems/gamecom.o \ - $(OBJ)/mess/machine/gamecom.o \ - $(OBJ)/mess/vidhrdw/gamecom.o - -# MESS specific core $(OBJ)s -COREOBJS += \ - $(EXPAT) \ - $(ZLIB) \ - $(OBJ)/vidhrdw/tms9928a.o \ - $(OBJ)/vidhrdw/v9938.o \ - $(OBJ)/machine/8255ppi.o \ - $(OBJ)/machine/6522via.o \ - $(OBJ)/machine/6821pia.o \ - $(OBJ)/machine/z80ctc.o \ - $(OBJ)/machine/z80pio.o \ - $(OBJ)/machine/z80sio.o \ - $(OBJ)/machine/idectrl.o \ - $(OBJ)/machine/6532riot.o \ - $(OBJ)/mess/mess.o \ - $(OBJ)/mess/mesvalid.o \ - $(OBJ)/mess/image.o \ - $(OBJ)/mess/messdriv.o \ - $(OBJ)/mess/device.o \ - $(OBJ)/mess/hashfile.o \ - $(OBJ)/mess/inputx.o \ - $(OBJ)/mess/artworkx.o \ - $(OBJ)/mess/uimess.o \ - $(OBJ)/mess/filemngr.o \ - $(OBJ)/mess/tapectrl.o \ - $(OBJ)/mess/compcfg.o \ - $(OBJ)/mess/utils.o \ - $(OBJ)/mess/eventlst.o \ - $(OBJ)/mess/mscommon.o \ - $(OBJ)/mess/pool.o \ - $(OBJ)/mess/cheatms.o \ - $(OBJ)/mess/opresolv.o \ - $(OBJ)/mess/muitext.o \ - $(OBJ)/mess/infomess.o \ - $(OBJ)/mess/formats/ioprocs.o \ - $(OBJ)/mess/formats/flopimg.o \ - $(OBJ)/mess/formats/cassimg.o \ - $(OBJ)/mess/formats/basicdsk.o \ - $(OBJ)/mess/formats/pc_dsk.o \ - $(OBJ)/mess/devices/mflopimg.o \ - $(OBJ)/mess/devices/cassette.o \ - $(OBJ)/mess/devices/cartslot.o \ - $(OBJ)/mess/devices/printer.o \ - $(OBJ)/mess/devices/bitbngr.o \ - $(OBJ)/mess/devices/snapquik.o \ - $(OBJ)/mess/devices/basicdsk.o \ - $(OBJ)/mess/devices/flopdrv.o \ - $(OBJ)/mess/devices/harddriv.o \ - $(OBJ)/mess/devices/idedrive.o \ - $(OBJ)/mess/devices/dsk.o \ - $(OBJ)/mess/devices/z80bin.o \ - $(OBJ)/mess/devices/chd_cd.o \ - $(OBJ)/mess/machine/6551.o \ - $(OBJ)/mess/machine/smartmed.o \ - $(OBJ)/mess/vidhrdw/m6847.o \ - $(OBJ)/mess/vidhrdw/m6845.o \ - $(OBJ)/mess/machine/msm8251.o \ - $(OBJ)/mess/machine/tc8521.o \ - $(OBJ)/mess/vidhrdw/crtc6845.o \ - $(OBJ)/mess/machine/28f008sa.o \ - $(OBJ)/mess/machine/am29f080.o \ - $(OBJ)/mess/machine/rriot.o \ - $(OBJ)/mess/machine/riot6532.o \ - $(OBJ)/machine/pit8253.o \ - $(OBJ)/machine/mc146818.o \ - $(OBJ)/mess/machine/uart8250.o \ - $(OBJ)/mess/machine/pc_mouse.o \ - $(OBJ)/mess/machine/pclpt.o \ - $(OBJ)/mess/machine/centroni.o \ - $(OBJ)/machine/pckeybrd.o \ - $(OBJ)/mess/machine/d88.o \ - $(OBJ)/mess/machine/nec765.o \ - $(OBJ)/mess/machine/wd17xx.o \ - $(OBJ)/mess/machine/serial.o \ - $(OBJ)/mess/formats/wavfile.o - - - -include mess/tools/imgtool/imgtool.mak - -DAT2HTML_OBJS = \ - $(OBJ)/mamecore.o \ - $(OBJ)/mess/tools/dat2html/dat2html.o \ - $(OBJ)/mess/tools/imgtool/stubs.o \ - $(OBJ)/mess/utils.o \ - -MESSDOCS_OBJS = \ - $(OBJ)/mamecore.o \ - $(OBJ)/mess/tools/messdocs/messdocs.o \ - $(OBJ)/mess/utils.o \ - $(OBJ)/mess/pool.o \ - $(OBJ)/mess/toolerr.o \ - $(EXPAT) \ - -MESSTEST_OBJS = \ - $(EXPAT) \ - $(IMGTOOL_LIB_OBJS) \ - $(OBJ)/mess/pile.o \ - $(OBJ)/mess/tools/messtest/main.o \ - $(OBJ)/mess/tools/messtest/core.o \ - $(OBJ)/mess/tools/messtest/testmess.o \ - $(OBJ)/mess/tools/messtest/testimgt.o \ - $(OBJ)/mess/tools/messtest/tststubs.o \ - $(OBJ)/mess/tools/messtest/tstutils.o \ - - - -# text files -TEXTS = sysinfo.htm - -mess.txt: $(EMULATORCLI) - @echo Generating $@... - @$(CURPATH)$(EMULATORCLI) -listtext -noclones -sortname > docs/mess.txt - -sysinfo.htm: dat2html$(EXE) - @echo Generating $@... - @$(CURPATH)dat2html$(EXE) sysinfo.dat - -mess/makedep/makedep$(EXE): $(wildcard mess/makedep/*.c) $(wildcard mess/makedep/*.h) - make -Cmess/makedep - - -#------------------------------------------------- -# MESS specific layouts -#------------------------------------------------- - -$(OBJ)/render.o: $(OBJ)/mess/layout/horizont.lh \ - $(OBJ)/mess/layout/vertical.lh \ - - - -$(OBJ)/mess/systems/coco.o: $(OBJ)/mess/layout/coco3.lh -$(OBJ)/mess/systems/svision.o: $(OBJ)/mess/layout/svision.lh -$(OBJ)/mess/systems/gb.o: $(OBJ)/mess/layout/gb.lh -$(OBJ)/mess/systems/mk2.o: $(OBJ)/mess/layout/mk2.lh - - - -#------------------------------------------------- -# MESS tool targets -#------------------------------------------------- - -TOOLS += dat2html$(EXE) messtest$(EXE) messdocs$(EXE) imgtool$(EXE) - -ifeq ($(MAMEOS),windows) -TOOLS += wimgtool$(EXE) -endif diff --git a/mess/pool.c b/mess/pool.c deleted file mode 100644 index 7990a5a69..000000000 --- a/mess/pool.c +++ /dev/null @@ -1,203 +0,0 @@ -/********************************************************************* - - pool.c - - Utility code for maintaining memory pools and tagged memory pools - -*********************************************************************/ - -#include -#include - -#include "osdepend.h" -#include "pool.h" -#include "utils.h" - -/*************************************************************************** - - Pool code - -***************************************************************************/ - -#ifdef DEBUG -#define GUARD_BYTES -#endif - -struct _memory_pool -{ - struct _memory_pool *next; - struct _memory_pool **prev; -#ifdef GUARD_BYTES - size_t size; - UINT32 canary; -#endif -}; - -void pool_init(memory_pool *pool) -{ - *pool = NULL; -} - -void pool_exit(memory_pool *pool) -{ - struct _memory_pool *mem; - struct _memory_pool *next; - - mem = (struct _memory_pool *) *pool; - while(mem) - { -#ifdef GUARD_BYTES - assert(mem->canary == 0xdeadbeef); - assert(!memcmp(&mem->canary, ((char *) (mem+1)) + mem->size, sizeof(mem->canary))); -#endif - next = mem->next; - free(mem); - mem = next; - } - *pool = NULL; -} - -void *pool_realloc(memory_pool *pool, void *ptr, size_t size) -{ - struct _memory_pool *block; - size_t actual_size; - - actual_size = sizeof(struct _memory_pool) + size; -#ifdef GUARD_BYTES - actual_size += sizeof(block->canary); -#endif - - if (ptr) - { - block = ((struct _memory_pool *) ptr) - 1; -#ifdef GUARD_BYTES - assert(block->canary == 0xdeadbeef); -#endif - block = realloc(block, actual_size); - if (!block) - return NULL; - } - else - { - block = malloc(actual_size); - if (!block) - return NULL; - block->next = (struct _memory_pool *) *pool; - block->prev = (struct _memory_pool **) pool; - } - if (block->next) - block->next->prev = &block->next; - *(block->prev) = block; - -#ifdef GUARD_BYTES - block->size = size; - block->canary = 0xdeadbeef; - memcpy(((char *) (block+1)) + size, &block->canary, sizeof(block->canary)); -#endif - return (void *) (block+1); -} - -void *pool_malloc(memory_pool *pool, size_t size) -{ - return pool_realloc(pool, NULL, size); -} - -char *pool_strdup(memory_pool *pool, const char *src) -{ - return src ? pool_strdup_len(pool, src, strlen(src)) : NULL; -} - -char *pool_strdup_len(memory_pool *pool, const char *src, size_t len) -{ - char *dst = NULL; - if (src) - { - dst = pool_malloc(pool, len + 1); - if (dst) - strncpyz(dst, src, len + 1); - } - return dst; -} - -void pool_freeptr(memory_pool *pool, void *ptr) -{ - struct _memory_pool *block; - - block = ((struct _memory_pool *) ptr) - 1; - - if (block->next) - block->next->prev = block->prev; - if (block->prev) - *(block->prev) = block->next; - - free(block); -} - - -/*************************************************************************** - - Tagpool code - -***************************************************************************/ - -struct tag_pool_header -{ - struct tag_pool_header *next; - const char *tagname; - void *tagdata; -}; - -void tagpool_init(tag_pool *tpool) -{ - pool_init(&tpool->mempool); - tpool->header = NULL; -} - -void tagpool_exit(tag_pool *tpool) -{ - pool_exit(&tpool->mempool); - tpool->header = NULL; -} - -void *tagpool_alloc(tag_pool *tpool, const char *tag, size_t size) -{ - struct tag_pool_header **header; - struct tag_pool_header *newheader; - - newheader = (struct tag_pool_header *) pool_malloc(&tpool->mempool, sizeof(struct tag_pool_header)); - if (!newheader) - return NULL; - - newheader->tagdata = pool_malloc(&tpool->mempool, size); - if (!newheader->tagdata) - return NULL; - - newheader->next = NULL; - newheader->tagname = tag; - memset(newheader->tagdata, 0, size); - - header = &tpool->header; - while (*header) - header = &(*header)->next; - *header = newheader; - - return newheader->tagdata; -} - -void *tagpool_lookup(tag_pool *tpool, const char *tag) -{ - struct tag_pool_header *header; - - assert(tpool); - - header = tpool->header; - while(header && strcmp(header->tagname, tag)) - header = header->next; - - /* a tagpool_lookup with an invalid tag is BAD */ - assert(header); - - return header->tagdata; -} - - diff --git a/mess/pool.h b/mess/pool.h deleted file mode 100644 index d97fcef06..000000000 --- a/mess/pool.h +++ /dev/null @@ -1,47 +0,0 @@ -/********************************************************************* - - pool.h - - Utility code for maintaining memory pools and tagged memory pools - -*********************************************************************/ - -#ifndef POOL_H -#define POOL_H - -#include - -/*************************************************************************** - - Pool code - -***************************************************************************/ - -typedef struct _memory_pool *memory_pool; - -void pool_init(memory_pool *pool); -void pool_exit(memory_pool *pool); -void *pool_malloc(memory_pool *pool, size_t size); -void *pool_realloc(memory_pool *pool, void *ptr, size_t size); -char *pool_strdup(memory_pool *pool, const char *src); -char *pool_strdup_len(memory_pool *pool, const char *src, size_t len); -void pool_freeptr(memory_pool *pool, void *ptr); - -/*************************************************************************** - - Tagpool code - -***************************************************************************/ - -typedef struct -{ - memory_pool mempool; - struct tag_pool_header *header; -} tag_pool; - -void tagpool_init(tag_pool *tpool); -void tagpool_exit(tag_pool *tpool); -void *tagpool_alloc(tag_pool *tpool, const char *tag, size_t size); -void *tagpool_lookup(tag_pool *tpool, const char *tag); - -#endif /* POOL_H */ diff --git a/mess/sndhrdw/lynx.c b/mess/sndhrdw/lynx.c deleted file mode 100644 index c8f40b65b..000000000 --- a/mess/sndhrdw/lynx.c +++ /dev/null @@ -1,388 +0,0 @@ -/****************************************************************************** - PeT mess@utanet.at 2000,2001 -******************************************************************************/ - -#include -#include - -#include "streams.h" -#include "mame.h" -#include "timer.h" - -#include "includes/lynx.h" - -/* accordingly to atari's reference manual - there were no stereo lynx produced (the manual knows only production until mid 1991) - the howard/developement board might have stereo support - the revised lynx 2 hardware might have stereo support at least at the stereo jacks - - some games support stereo -*/ - - -/* -AUDIO_A EQU $FD20 -AUDIO_B EQU $FD28 -AUDIO_C EQU $FD30 -AUDIO_D EQU $FD38 - -VOLUME_CNTRL EQU 0 -FEEDBACK_ENABLE EQU 1 ; enables 11/10/5..0 -OUTPUT_VALUE EQU 2 -SHIFTER_L EQU 3 -AUD_BAKUP EQU 4 -AUD_CNTRL1 EQU 5 -AUD_COUNT EQU 6 -AUD_CNTRL2 EQU 7 - -; AUD_CNTRL1 -FEEDBACK_7 EQU %10000000 -AUD_RESETDONE EQU %01000000 -AUD_INTEGRATE EQU %00100000 -AUD_RELOAD EQU %00010000 -AUD_CNTEN EQU %00001000 -AUD_LINK EQU %00000111 -; link timers (0->2->4 / 1->3->5->7->Aud0->Aud1->Aud2->Aud3->1 -AUD_64us EQU %00000110 -AUD_32us EQU %00000101 -AUD_16us EQU %00000100 -AUD_8us EQU %00000011 -AUD_4us EQU %00000010 -AUD_2us EQU %00000001 -AUD_1us EQU %00000000 - -; AUD_CNTRL2 (read only) -; B7..B4 ; shifter bits 11..8 -; B3 ; who knows -; B2 ; last clock state (0->1 causes count) -; B1 ; borrow in (1 causes count) -; B0 ; borrow out (count EQU 0 and borrow in) - -ATTEN_A EQU $FD40 -ATTEN_B EQU $FD41 -ATTEN_C EQU $FD42 -ATTEN_D EQU $FD43 -; B7..B4 attenuation left ear (0 silent ..15/16 volume) -; B3..B0 " right ear - -MPAN EQU $FD44 -; B7..B4 left ear -; B3..B0 right ear -; B7/B3 EQU Audio D -; a 1 enables attenuation for channel and side - - -MSTEREO EQU $FD50 ; a 1 disables audio connection -AUD_D_LEFT EQU %10000000 -AUD_C_LEFT EQU %01000000 -AUD_B_LEFT EQU %00100000 -AUD_A_LEFT EQU %00010000 -AUD_D_RIGHT EQU %00001000 -AUD_C_RIGHT EQU %00000100 -AUD_B_RIGHT EQU %00000010 -AUD_A_RIGHT EQU %00000001 - - */ -static sound_stream *mixer_channel; -static int usec_per_sample; -static int *shift_mask; -static int *shift_xor; - -typedef struct { - int nr; - union { - UINT8 data[8]; - struct { - UINT8 volume; - UINT8 feedback; - INT8 output; - UINT8 shifter; - UINT8 bakup; - UINT8 control1; - UINT8 counter; - UINT8 control2; - } n; - } reg; - UINT8 attenuation; - int mask; - int shifter; - int ticks; - int count; -} LYNX_AUDIO; -static LYNX_AUDIO lynx_audio[4]= { - { 0 }, - { 1 }, - { 2 }, - { 3 } -}; - -static void lynx_audio_reset_channel(LYNX_AUDIO *This) -{ - memset(This->reg.data, 0, (char*)(This+1)-(char*)(This->reg.data)); -} - -void lynx_audio_count_down(int nr) -{ - LYNX_AUDIO *This=lynx_audio+nr; - if (This->reg.n.control1&8 && (This->reg.n.control1&7)!=7) return; - if (nr==0) stream_update(mixer_channel); - This->count--; -} - -static void lynx_audio_shift(LYNX_AUDIO *channel) -{ - channel->shifter=((channel->shifter<<1)&0x3ff) - |shift_xor[channel->shifter&channel->mask]; - - if (channel->reg.n.control1&0x20) { - if (channel->shifter&1) { - channel->reg.n.output+=channel->reg.n.volume; - } else { - channel->reg.n.output-=channel->reg.n.volume; - } - } - switch (channel->nr) { - case 0: lynx_audio_count_down(1); break; - case 1: lynx_audio_count_down(2); break; - case 2: lynx_audio_count_down(3); break; - case 3: lynx_timer_count_down(1); break; - } -} - -static void lynx_audio_execute(LYNX_AUDIO *channel) -{ - if (channel->reg.n.control1&8) { // count_enable - channel->ticks+=usec_per_sample; - if ((channel->reg.n.control1&7)==7) { // timer input - if (channel->count<0) { - channel->count+=channel->reg.n.counter; - lynx_audio_shift(channel); - } - } else { - int t=1<<(channel->reg.n.control1&7); - for (;;) { - for (;(channel->ticks>=t)&&channel->count>=0; channel->ticks-=t) - channel->count--; - if (channel->tickscount<0) { - channel->count=channel->reg.n.counter; - lynx_audio_shift(channel); - } - } - } - if (!(channel->reg.n.control1&0x20)) { - channel->reg.n.output=channel->shifter&1?0-channel->reg.n.volume:channel->reg.n.volume; - } - } else { - channel->ticks=0; - channel->count=0; - } -} - -static UINT8 attenuation_enable; -static UINT8 master_enable; - -UINT8 lynx_audio_read(int offset) -{ - UINT8 data=0; - stream_update(mixer_channel); - switch (offset) { - case 0x20: case 0x21: case 0x22: case 0x24: case 0x25: - case 0x28: case 0x29: case 0x2a: case 0x2c: case 0x2d: - case 0x30: case 0x31: case 0x32: case 0x34: case 0x35: - case 0x38: case 0x39: case 0x3a: case 0x3c: case 0x3d: - data=lynx_audio[(offset>>3)&3].reg.data[offset&7]; - break; - case 0x23: case 0x2b: case 0x33: case 0x3b: - data=lynx_audio[(offset>>3)&3].shifter&0xff; - break; - case 0x26:case 0x2e:case 0x36:case 0x3e: - data=lynx_audio[(offset>>3)&3].count; - break; - case 0x27: case 0x2f: case 0x37: case 0x3f: - data=(lynx_audio[(offset>>3)&3].shifter>>4)&0xf0; - data|=lynx_audio[(offset>>3)&3].reg.data[offset&7]&0x0f; - break; - case 0x40: case 0x41: case 0x42: case 0x43: - data=lynx_audio[offset&3].attenuation; - break; - case 0x44: - data=attenuation_enable; - break; - case 0x50: - data=master_enable; - break; - } - return data; -} - -void lynx_audio_write(int offset, UINT8 data) -{ -// logerror("%.6f audio write %.2x %.2x\n", timer_get_time(), offset, data); - LYNX_AUDIO *channel=lynx_audio+((offset>>3)&3); - stream_update(mixer_channel); - switch (offset) { - case 0x20: case 0x22: case 0x24: case 0x26: - case 0x28: case 0x2a: case 0x2c: case 0x2e: - case 0x30: case 0x32: case 0x34: case 0x36: - case 0x38: case 0x3a: case 0x3c: case 0x3e: - lynx_audio[(offset>>3)&3].reg.data[offset&7]=data; - break; - case 0x23: case 0x2b: case 0x33: case 0x3b: - lynx_audio[(offset>>3)&3].reg.data[offset&7]=data; - lynx_audio[(offset>>3)&3].shifter&=~0xff; - lynx_audio[(offset>>3)&3].shifter|=data; - break; - case 0x27: case 0x2f: case 0x37: case 0x3f: - lynx_audio[(offset>>3)&3].reg.data[offset&7]=data; - lynx_audio[(offset>>3)&3].shifter&=~0xf00; - lynx_audio[(offset>>3)&3].shifter|=(data&0xf0)<<4; - break; - case 0x21: case 0x25: - case 0x29: case 0x2d: - case 0x31: case 0x35: - case 0x39: case 0x3d: - channel->reg.data[offset&7]=data; - channel->mask=channel->reg.n.feedback; - channel->mask|=(channel->reg.data[5]&0x80)<<1; - break; - case 0x40: case 0x41: case 0x42: case 0x43: // lynx2 only, howard extension board - lynx_audio[offset&3].attenuation=data; - break; - case 0x44: - attenuation_enable=data; //lynx2 only, howard extension board - break; - case 0x50: - master_enable=data;//lynx2 only, howard write only - break; - } -} - -/************************************/ -/* Sound handler update */ -/************************************/ -static void lynx_update (void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) -{ - int i, j; - LYNX_AUDIO *channel; - int v; - stream_sample_t *buffer = _buffer[0]; - - for (i = 0; i < length; i++, buffer++) - { - *buffer = 0; - for (channel=lynx_audio, j=0; jreg.n.output; - *buffer+=v*15; - } - } -} - -static void lynx2_update (void *param,stream_sample_t **inputs, stream_sample_t **buffer,int length) -{ - stream_sample_t *left=buffer[0], *right=buffer[1]; - int i, j; - LYNX_AUDIO *channel; - int v; - - for (i = 0; i < length; i++, left++, right++) - { - *left = 0; - *right= 0; - for (channel=lynx_audio, j=0; jreg.n.output; - if (!(master_enable&(0x10<attenuation>>4); - } else { - *left+=v*15; - } - } - if (!(master_enable&(1<attenuation&0xf); - } else { - *right+=v*15; - } - } - } - } -} - -static void lynx_audio_init(void) -{ - int i; - shift_mask = (int *) auto_malloc(512 * sizeof(int)); - assert(shift_mask); - - shift_xor = (int *) auto_malloc(4096 * sizeof(int)); - assert(shift_xor); - - for (i=0; i<512; i++) - { - shift_mask[i]=0; - if (i&1) shift_mask[i]|=1; - if (i&2) shift_mask[i]|=2; - if (i&4) shift_mask[i]|=4; - if (i&8) shift_mask[i]|=8; - if (i&0x10) shift_mask[i]|=0x10; - if (i&0x20) shift_mask[i]|=0x20; - if (i&0x40) shift_mask[i]|=0x400; - if (i&0x80) shift_mask[i]|=0x800; - if (i&0x100) shift_mask[i]|=0x80; - } - for (i=0; i<4096; i++) - { - int j; - shift_xor[i]=1; - for (j=4096/2; j>0; j>>=1) - { - if (i & j) - shift_xor[i] ^= 1; - } - } -} - -void lynx_audio_reset(void) -{ - int i; - for (i=0; isample_rate, 0, lynx_update); - - usec_per_sample = 1000000 / Machine->sample_rate; - - lynx_audio_init(); - return (void *) ~0; -} - - - -void *lynx2_custom_start(int clock, const struct CustomSound_interface *config) -{ - mixer_channel = stream_create(0, 2, Machine->sample_rate, 0, lynx2_update); - - usec_per_sample = 1000000 / Machine->sample_rate; - - lynx_audio_init(); - return (void *) ~0; -} - diff --git a/mess/sndhrdw/svision.c b/mess/sndhrdw/svision.c deleted file mode 100644 index b6e841ef4..000000000 --- a/mess/sndhrdw/svision.c +++ /dev/null @@ -1,85 +0,0 @@ -/*************************************************************************** - supervision sound hardware - - PeT mess@utanet.at -***************************************************************************/ - -#include - -#include "mame.h" -#include "timer.h" -#include "streams.h" - -#include "includes/svision.h" - -static sound_stream *mixer_channel; - -SVISION_CHANNEL svision_channel[2]; - -void svision_soundport_w (SVISION_CHANNEL *channel, int offset, int data) -{ - stream_update(mixer_channel); - logerror("%.6f channel 1 write %d %02x\n", timer_get_time(),offset&3, data); - channel->reg[offset]=data; - switch (offset) { - case 0: - case 1: - if (channel->reg[0]) { - if (channel==svision_channel) - channel->size=(int)((Machine->sample_rate*channel->reg[0]<<6)/4e6); - else - channel->size=(int)((Machine->sample_rate*channel->reg[0]<<6)/4e6); - } else channel->size=0; - channel->pos=0; - } - -} - - - -/************************************/ -/* Sound handler update */ -/************************************/ - -static void svision_update (void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length) -{ - stream_sample_t *left=_buffer[0], *right=_buffer[1]; - int i, j; - SVISION_CHANNEL *channel; - - for (i = 0; i < length; i++, left++, right++) - { - *left = 0; - *right = 0; - for (channel=svision_channel, j=0; jpos<=channel->size/2) - { - if (channel->reg[2]&0x40) - { - *left+=(channel->reg[2]&0xf)<<8; - } - if (channel->reg[2]&0x20) - { - *right+=(channel->reg[2]&0xf)<<8; - } - } - if (channel->reg[2]&0x60) - { - if (++channel->pos>=channel->size) - channel->pos=0; - } - } - } -} - -/************************************/ -/* Sound handler start */ -/************************************/ - -void *svision_custom_start(int clock, const struct CustomSound_interface *config) -{ - mixer_channel = stream_create(0, 2, Machine->sample_rate, 0, svision_update); - return (void *) ~0; -} - diff --git a/mess/systems/a7800.c b/mess/systems/a7800.c deleted file mode 100644 index 02dea36f4..000000000 --- a/mess/systems/a7800.c +++ /dev/null @@ -1,395 +0,0 @@ -/*************************************************************************** - - a7800.c - - Driver file to handle emulation of the Atari 7800. - - Dan Boris - - 2002/05/13 kubecj added more banks for bankswitching - added PAL machine description - changed clock to be precise - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6502.h" -#include "sound/tiaintf.h" -#include "devices/cartslot.h" -#include "machine/6532riot.h" -#include "includes/a7800.h" - -static ADDRESS_MAP_START(a7800_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x001F) AM_READWRITE(a7800_TIA_r, a7800_TIA_w) - AM_RANGE(0x0020, 0x003F) AM_READWRITE(a7800_MARIA_r, a7800_MARIA_w) - AM_RANGE(0x0040, 0x00FF) AM_READWRITE(MRA8_BANK5, a7800_RAM0_w) /* RAM0 */ - AM_RANGE(0x0100, 0x011F) AM_READWRITE(a7800_TIA_r, a7800_TIA_w) - AM_RANGE(0x0120, 0x013F) AM_READWRITE(a7800_MARIA_r, a7800_MARIA_w) - AM_RANGE(0x0140, 0x01FF) AM_READWRITE(MRA8_BANK6, MWA8_BANK6) /* RAM1 */ - AM_RANGE(0x0200, 0x021F) AM_READWRITE(a7800_TIA_r, a7800_TIA_w) - AM_RANGE(0x0220, 0x023F) AM_READWRITE(a7800_MARIA_r, a7800_MARIA_w) - AM_RANGE(0x0280, 0x029F) AM_READWRITE(r6532_0_r, r6532_0_w) - AM_RANGE(0x0300, 0x031F) AM_READWRITE(a7800_TIA_r, a7800_TIA_w) - AM_RANGE(0x0320, 0x033F) AM_READWRITE(a7800_MARIA_r, a7800_MARIA_w) - AM_RANGE(0x0480, 0x04FF) AM_RAM /* RIOT RAM */ - AM_RANGE(0x1800, 0x27FF) AM_RAM - AM_RANGE(0x2800, 0x2FFF) AM_READWRITE(MRA8_BANK7, MWA8_BANK7) /* MAINRAM */ - AM_RANGE(0x3000, 0x37FF) AM_READWRITE(MRA8_BANK7, MWA8_BANK7) /* MAINRAM */ - AM_RANGE(0x3800, 0x3FFF) AM_READWRITE(MRA8_BANK7, MWA8_BANK7) /* MAINRAM */ - - AM_RANGE(0x4000, 0x7FFF) AM_READ(MRA8_BANK1) /* f18 hornet */ - AM_RANGE(0x8000, 0x9FFF) AM_READ(MRA8_BANK2) /* sc */ - AM_RANGE(0xA000, 0xBFFF) AM_READ(MRA8_BANK3) /* sc + ac */ - AM_RANGE(0xC000, 0xDFFF) AM_READ(MRA8_BANK4) /* ac */ - AM_RANGE(0xE000, 0xFFFF) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0xFFFF) AM_WRITE(a7800_cart_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( a7800 ) - PORT_START /* IN0 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT ( 0xF0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT (0x7F, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_VBLANK) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START) PORT_NAME("Select") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x00, "Left Diff. Switch" ) PORT_CODE(KEYCODE_3) PORT_TOGGLE - PORT_DIPSETTING( 0x40, "A" ) - PORT_DIPSETTING( 0x00, "B" ) - PORT_DIPNAME( 0x80, 0x00, "Right Diff. Switch" ) PORT_CODE(KEYCODE_4) PORT_TOGGLE - PORT_DIPSETTING( 0x80, "A" ) - PORT_DIPSETTING( 0x00, "B" ) -INPUT_PORTS_END - -#define NTSC_GREY \ - 0x00,0x00,0x00, 0x25,0x25,0x25, 0x34,0x34,0x34, 0x4e,0x4e,0x4e, \ - 0x68,0x68,0x68, 0x75,0x75,0x75, 0x8e,0x8e,0x8e, 0xa4,0xa4,0xa4, \ - 0xb8,0xb8,0xb8, 0xc5,0xc5,0xc5, 0xd0,0xd0,0xd0, 0xd7,0xd7,0xd7, \ - 0xe1,0xe1,0xe1, 0xea,0xea,0xea, 0xf4,0xf4,0xf4, 0xff,0xff,0xff - -#define NTSC_GOLD \ - 0x41,0x20,0x00, 0x54,0x28,0x00, 0x76,0x37,0x00, 0x9a,0x50,0x00, \ - 0xc3,0x68,0x06, 0xe4,0x7b,0x07, 0xff,0x91,0x1a, 0xff,0xab,0x1d, \ - 0xff,0xc5,0x1f, 0xff,0xd0,0x3b, 0xff,0xd8,0x4c, 0xff,0xe6,0x51, \ - 0xff,0xf4,0x56, 0xff,0xf9,0x70, 0xff,0xff,0x90, 0xff,0xff,0xaa - -#define NTSC_ORANGE \ - 0x45,0x19,0x04, 0x72,0x1e,0x11, 0x9f,0x24,0x1e, 0xb3,0x3a,0x20, \ - 0xc8,0x51,0x20, 0xe3,0x69,0x20, 0xfc,0x81,0x20, 0xfd,0x8c,0x25, \ - 0xfe,0x98,0x2c, 0xff,0xae,0x38, 0xff,0xb9,0x46, 0xff,0xbf,0x51, \ - 0xff,0xc6,0x6d, 0xff,0xd5,0x87, 0xff,0xe4,0x98, 0xff,0xe6,0xab - -#define NTSC_RED_ORANGE \ - 0x5d,0x1f,0x0c, 0x7a,0x24,0x0d, 0x98,0x2c,0x0e, 0xb0,0x2f,0x0f, \ - 0xbf,0x36,0x24, 0xd3,0x4e,0x2a, 0xe7,0x62,0x3e, 0xf3,0x6e,0x4a, \ - 0xfd,0x78,0x54, 0xff,0x8a,0x6a, 0xff,0x98,0x7c, 0xff,0xa4,0x8b, \ - 0xff,0xb3,0x9e, 0xff,0xc2,0xb2, 0xff,0xd0,0xc3, 0xff,0xda,0xd0 - -#define NTSC_PINK \ - 0x4a,0x17,0x00, 0x72,0x1f,0x00, 0xa8,0x13,0x00, 0xc8,0x21,0x0a, \ - 0xdf,0x25,0x12, 0xec,0x3b,0x24, 0xfa,0x52,0x36, 0xfc,0x61,0x48, \ - 0xff,0x70,0x5f, 0xff,0x7e,0x7e, 0xff,0x8f,0x8f, 0xff,0x9d,0x9e, \ - 0xff,0xab,0xad, 0xff,0xb9,0xbd, 0xff,0xc7,0xce, 0xff,0xca,0xde - -#define NTSC_PURPLE \ - 0x49,0x00,0x36, 0x66,0x00,0x4b, 0x80,0x03,0x5f, 0x95,0x0f,0x74, \ - 0xaa,0x22,0x88, 0xba,0x3d,0x99, 0xca,0x4d,0xa9, 0xd7,0x5a,0xb6, \ - 0xe4,0x67,0xc3, 0xef,0x72,0xce, 0xfb,0x7e,0xda, 0xff,0x8d,0xe1, \ - 0xff,0x9d,0xe5, 0xff,0xa5,0xe7, 0xff,0xaf,0xea, 0xff,0xb8,0xec - -#define NTSC_PURPLE_BLUE \ - 0x48,0x03,0x6c, 0x5c,0x04,0x88, 0x65,0x0d,0x90, 0x7b,0x23,0xa7, \ - 0x93,0x3b,0xbf, 0x9d,0x45,0xc9, 0xa7,0x4f,0xd3, 0xb2,0x5a,0xde, \ - 0xbd,0x65,0xe9, 0xc5,0x6d,0xf1, 0xce,0x76,0xfa, 0xd5,0x83,0xff, \ - 0xda,0x90,0xff, 0xde,0x9c,0xff, 0xe2,0xa9,0xff, 0xe6,0xb6,0xff - -#define NTSC_BLUE1 \ - 0x05,0x1e,0x81, 0x06,0x26,0xa5, 0x08,0x2f,0xca, 0x26,0x3d,0xd4, \ - 0x44,0x4c,0xde, 0x4f,0x5a,0xec, 0x5a,0x68,0xff, 0x65,0x75,0xff, \ - 0x71,0x83,0xff, 0x80,0x91,0xff, 0x90,0xa0,0xff, 0x97,0xa9,0xff, \ - 0x9f,0xb2,0xff, 0xaf,0xbe,0xff, 0xc0,0xcb,0xff, 0xcd,0xd3,0xff - -#define NTSC_BLUE2 \ - 0x0b,0x07,0x79, 0x20,0x1c,0x8e, 0x35,0x31,0xa3, 0x46,0x42,0xb4, \ - 0x57,0x53,0xc5, 0x61,0x5d,0xcf, 0x6d,0x69,0xdb, 0x7b,0x77,0xe9, \ - 0x89,0x85,0xf7, 0x91,0x8d,0xff, 0x9c,0x98,0xff, 0xa7,0xa4,0xff, \ - 0xb2,0xaf,0xff, 0xbb,0xb8,0xff, 0xc3,0xc1,0xff, 0xd3,0xd1,0xff - -#define NTSC_LIGHT_BLUE \ - 0x1d,0x29,0x5a, 0x1d,0x38,0x76, 0x1d,0x48,0x92, 0x1d,0x5c,0xac, \ - 0x1d,0x71,0xc6, 0x32,0x86,0xcf, 0x48,0x9b,0xd9, 0x4e,0xa8,0xec, \ - 0x55,0xb6,0xff, 0x69,0xca,0xff, 0x74,0xcb,0xff, 0x82,0xd3,0xff, \ - 0x8d,0xda,0xff, 0x9f,0xd4,0xff, 0xb4,0xe2,0xff, 0xc0,0xeb,0xff - -#define NTSC_TURQUOISE \ - 0x00,0x4b,0x59, 0x00,0x5d,0x6e, 0x00,0x6f,0x84, 0x00,0x84,0x9c, \ - 0x00,0x99,0xbf, 0x00,0xab,0xca, 0x00,0xbc,0xde, 0x00,0xd0,0xf5, \ - 0x10,0xdc,0xff, 0x3e,0xe1,0xff, 0x64,0xe7,0xff, 0x76,0xea,0xff, \ - 0x8b,0xed,0xff, 0x9a,0xef,0xff, 0xb1,0xf3,0xff, 0xc7,0xf6,0xff - -#define NTSC_GREEN_BLUE \ - 0x00,0x48,0x00, 0x00,0x54,0x00, 0x03,0x6b,0x03, 0x0e,0x76,0x0e, \ - 0x18,0x80,0x18, 0x27,0x92,0x27, 0x36,0xa4,0x36, 0x4e,0xb9,0x4e, \ - 0x51,0xcd,0x51, 0x72,0xda,0x72, 0x7c,0xe4,0x7c, 0x85,0xed,0x85, \ - 0x99,0xf2,0x99, 0xb3,0xf7,0xb3, 0xc3,0xf9,0xc3, 0xcd,0xfc,0xcd - -#define NTSC_GREEN \ - 0x16,0x40,0x00, 0x1c,0x53,0x00, 0x23,0x66,0x00, 0x28,0x78,0x00, \ - 0x2e,0x8c,0x00, 0x3a,0x98,0x0c, 0x47,0xa5,0x19, 0x51,0xaf,0x23, \ - 0x5c,0xba,0x2e, 0x71,0xcf,0x43, 0x85,0xe3,0x57, 0x8d,0xeb,0x5f, \ - 0x97,0xf5,0x69, 0xa0,0xfe,0x72, 0xb1,0xff,0x8a, 0xbc,0xff,0x9a - -#define NTSC_YELLOW_GREEN \ - 0x2c,0x35,0x00, 0x38,0x44,0x00, 0x44,0x52,0x00, 0x49,0x56,0x00, \ - 0x60,0x71,0x00, 0x6c,0x7f,0x00, 0x79,0x8d,0x0a, 0x8b,0x9f,0x1c, \ - 0x9e,0xb2,0x2f, 0xab,0xbf,0x3c, 0xb8,0xcc,0x49, 0xc2,0xd6,0x53, \ - 0xcd,0xe1,0x53, 0xdb,0xef,0x6c, 0xe8,0xfc,0x79, 0xf2,0xff,0xab - -#define NTSC_ORANGE_GREEN \ - 0x46,0x3a,0x09, 0x4d,0x3f,0x09, 0x54,0x45,0x09, 0x6c,0x58,0x09, \ - 0x90,0x76,0x09, 0xab,0x8b,0x0a, 0xc1,0xa1,0x20, 0xd0,0xb0,0x2f, \ - 0xde,0xbe,0x3d, 0xe6,0xc6,0x45, 0xed,0xcd,0x4c, 0xf5,0xd8,0x62, \ - 0xfb,0xe2,0x76, 0xfc,0xee,0x98, 0xfd,0xf3,0xa9, 0xfd,0xf3,0xbe - -#define NTSC_LIGHT_ORANGE \ - 0x40,0x1a,0x02, 0x58,0x1f,0x05, 0x70,0x24,0x08, 0x8d,0x3a,0x13, \ - 0xab,0x51,0x1f, 0xb5,0x64,0x27, 0xbf,0x77,0x30, 0xd0,0x85,0x3a, \ - 0xe1,0x93,0x44, 0xed,0xa0,0x4e, 0xf9,0xad,0x58, 0xfc,0xb7,0x5c, \ - 0xff,0xc1,0x60, 0xff,0xca,0x69, 0xff,0xcf,0x7e, 0xff,0xda,0x96 - -static UINT8 a7800_palette[256*3] = -{ - NTSC_GREY, - NTSC_GOLD, - NTSC_ORANGE, - NTSC_RED_ORANGE, - NTSC_PINK, - NTSC_PURPLE, - NTSC_PURPLE_BLUE, - NTSC_BLUE1, - NTSC_BLUE2, - NTSC_LIGHT_BLUE, - NTSC_TURQUOISE, - NTSC_GREEN_BLUE, - NTSC_GREEN, - NTSC_YELLOW_GREEN, - NTSC_ORANGE_GREEN, - NTSC_LIGHT_ORANGE -}; - -static UINT8 a7800p_palette[256*3] = -{ - NTSC_GREY, - NTSC_ORANGE_GREEN, - NTSC_GOLD, - NTSC_ORANGE, - NTSC_RED_ORANGE, - NTSC_PINK, - NTSC_PURPLE, - NTSC_PURPLE_BLUE, - NTSC_BLUE1, - NTSC_BLUE1, - NTSC_BLUE2, - NTSC_LIGHT_BLUE, - NTSC_TURQUOISE, - NTSC_GREEN_BLUE, - NTSC_GREEN, - NTSC_YELLOW_GREEN -}; - -static unsigned short a7800_colortable[] = -{ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, - 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, - 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, - 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, - 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff -}; - - -/* Initialise the palette */ -static PALETTE_INIT(a7800) -{ - - palette_set_colors(machine, 0, a7800_palette, sizeof(a7800_palette) / 3); - memcpy(colortable,a7800_colortable,sizeof(a7800_colortable)); - -} - - -static PALETTE_INIT(a7800p) -{ - palette_set_colors(machine, 0, a7800p_palette, sizeof(a7800p_palette) / 3); - memcpy(colortable,a7800_colortable,sizeof(a7800_colortable)); -} - - -#define CLK_PAL 1773447 -#define CLK_NTSC 1789772 - - - -static MACHINE_DRIVER_START( a7800_ntsc ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, CLK_NTSC) /* 1.79Mhz (note: The clock switches to 1.19Mhz - * when the TIA or RIOT are accessed) */ - MDRV_CPU_PROGRAM_MAP(a7800_mem, 0) - MDRV_CPU_VBLANK_INT(a7800_interrupt,262) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( a7800 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(640,262) - MDRV_SCREEN_VISIBLE_AREA(0,319,25,45+204) - MDRV_PALETTE_LENGTH(sizeof(a7800_palette) / sizeof(a7800_palette[0]) / 3) - MDRV_COLORTABLE_LENGTH(sizeof(a7800_colortable) / sizeof(a7800_colortable[0])) - MDRV_PALETTE_INIT(a7800) - - MDRV_VIDEO_START(a7800) - MDRV_VIDEO_UPDATE(a7800) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(TIA, 31400) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MDRV_SOUND_ADD_TAG("pokey", POKEY, CLK_NTSC) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - - -static MACHINE_DRIVER_START( a7800_pal ) - MDRV_IMPORT_FROM( a7800_ntsc ) - - /* basic machine hardware */ - MDRV_CPU_REPLACE("main", M6502, CLK_PAL) /* 1.79Mhz (note: The clock switches to 1.19Mhz - * when the TIA or RIOT are accessed) */ - MDRV_CPU_VBLANK_INT(a7800_interrupt,312) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_SIZE(640,312) - MDRV_SCREEN_VISIBLE_AREA(0,319,50,50+225) - MDRV_PALETTE_INIT( a7800p ) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", POKEY, CLK_PAL) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START (a7800) - ROM_REGION(0x30000,REGION_CPU1,0) - ROM_LOAD ("7800.rom", 0xf000, 0x1000, CRC(5d13730c) SHA1(d9d134bb6b36907c615a594cc7688f7bfcef5b43)) -/* ROM_LOAD ("7800a.rom", 0xc000, 0x4000, CRC(649913e5)) */ - -ROM_END - -ROM_START (a7800p) - ROM_REGION(0x30000,REGION_CPU1,0) - //ROM_LOAD ("7800pal.rom", 0xF000, 0x1000, CRC(d5b61170 )) - ROM_LOAD ("7800pal.rom", 0xc000, 0x4000, CRC(d5b61170) SHA1(5a140136a16d1d83e4ff32a19409ca376a8df874)) -ROM_END - -static void a7800_ntsc_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a7800_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = a7800_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "a78"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(a7800_ntsc) - CONFIG_DEVICE(a7800_ntsc_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void a7800_pal_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a7800_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = a7800_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "a78"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(a7800_pal) - CONFIG_DEVICE(a7800_pal_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1986, a7800, 0, 0, a7800_ntsc, a7800, a7800_ntsc, a7800_ntsc, "Atari", "Atari 7800 NTSC" , 0) -CONS( 1986, a7800p, a7800, 0, a7800_pal, a7800, a7800_pal, a7800_pal, "Atari", "Atari 7800 PAL" , 0) diff --git a/mess/systems/adam.c b/mess/systems/adam.c deleted file mode 100644 index 396f214c4..000000000 --- a/mess/systems/adam.c +++ /dev/null @@ -1,717 +0,0 @@ -/*************************************************************************** - - adam.c - - Driver file to handle emulation of the ColecoAdam. - - Marat Fayzullin (ColEm source) - Marcel de Kogel (AdamEm source) - Mike Balfour - Ben Bruscella - Sean Young - Jose Moya - - -The Coleco ADAM is a Z80-based micro with all peripheral devices -attached to an internal serial serial bus (ADAMnet) managed by 6801 -microcontrollers (processor, internal RAM, internal ROM, serial port).Each -device had its own 6801, and the ADAMnet was managed by a "master" 6801 on -the ADAM motherboard. Each device was allotted a block of 21 bytes in Z80 -address space; device control was accomplished by poking function codes into -the first byte of each device control block (hereafter DCB) after setup of -other DCB locations with such things as: buffer address in Z80 space, # of -bytes to transfer, block # to access if it was a block device like a tape -or disk drive, etc. The master 6801 would interpret this data, and pass -along internal ADAMnet requests to the desired peripheral, which would then -send/receive its data and return the status of the operation. The status -codes were left in the same byte of the DCB as the function request, and -certain bits of the status byte would reflect done/working on it/error/ -not present, and error codes were left in another DCB byte for things like -CRC error, write protected disk, missing block, etc. - -ADAM's ROM operating system, EOS (Elementary OS), was constructed -similar to CP/M in that it provided both a filesystem (like BDOS) and raw -device interface (BIOS). At the file level, sequential files could be -created, opened, read, written, appended, closed, and deleted. Forward- -only random access was implemented (you could not move the R/W pointer -backward, except clear to the beginning!), and all files had to be -contiguous on disk/tape. Directories could be initialized or searched -for a matching filename (no wildcards allowed). At the device level, -individual devices could be read/written by block (for disks/tapes) or -character-by-character (for printer, keyboard, and a prototype serial -board which was never released). Devices could be checked for their -ADAMnet status, and reset if necessary. There was no function provided -to do low-level formatting of disks/tapes. - - At system startup, the EOS was loaded from ROM into the highest -8K of RAM, a function call made to initialize the ADAMnet, and then -any disks or tapes were checked for a boot medium; if found, block 0 of -the medium was loaded in, and a jump made to the start of the boot code. -The boot block would take over loading in the rest of the program. If no -boot media were found, a jump would be made to a ROM word processor (called -SmartWriter). - - Coleco designed the ADAMnet to have up to 15 devices attached. -Before they went bankrupt, Coleco had released a 64K memory expander and -a 300-baud internal modem, but surprisingly neither of these was an -ADAMnet device. Disassembly of the RAMdisk drivers in ADAM CP/M 2.2, and -of the ADAMlink terminal program revealed that these were simple port I/O -devices, banks of XRAM being accessed by a special memory switch port not -documented as part of the EOS. The modem did not even use the interrupt -capabilities of the Z80--it was simply polled. A combination serial/ -parallel interface, each port of which *was* an ADAMnet device, reached the -prototype stage, as did a 5MB hard disk, but neither was ever released to -the public. (One prototype serial/parallel board is still in existence, -but the microcontroller ROMs have not yet been succcessfully read.) So -when Coleco finally bailed out of the computer business, a maximum ADAM -system consisted of a daisy wheel printer, a keyboard, 2 tape drives, and -2 disk drives (all ADAMnet devices), a 64K expander and a 300-baud modem -(which were not ADAMnet devices). - - Third-party vendors reverse-engineered the modem (which had a -2651 UART at its heart) and made a popular serial interface board. It was -not an ADAMnet device, however, because nobody knew how to make a new ADAMnet -device (no design specs were ever released), and the 6801 microcontrollers -had unreadable mask ROMs. Disk drives, however, were easily upgraded from -160K to as high as 1MB because, for some unknown reason, the disk controller -boards used a separate microprocessor and *socketed* EPROM (which was -promptly disassembled and reworked). Hard drives were cobbled together from -a Kaypro-designed board and accessed as standard I/O port devices. A parallel -interface card was similarly set up at its own I/O port. - - Devices (15 max): - Device 0 = Master 6801 ADAMnet controller (uses the adam_pcb as DCB) - Device 1 = Keyboard - Device 2 = ADAM printer - Device 3 = Copywriter (projected) - Device 4 = Disk drive 1 - Device 5 = Disk drive 2 - Device 6 = Disk drive 3 (third party) - Device 7 = Disk drive 4 (third party) - Device 8 = Tape drive 1 - Device 9 = Tape drive 3 (projected) - Device 10 = Unused - Device 11 = Non-ADAMlink modem - Device 12 = Hi-resolution monitor - Device 13 = ADAM parallel interface (never released) - Device 14 = ADAM serial interface (never released) - Device 15 = Gateway - Device 24 = Tape drive 2 (share DCB with Tape1) - Device 25 = Tape drive 4 (projected, may have share DCB with Tape3) - Device 26 = Expansion RAM disk drive (third party ID, not used by Coleco) - - Terminology: - EOS = Elementary Operating System - DCB = Device Control Block Table (21bytes each DCB, DCB+16=dev#, DCB+0=Status Byte) (0xFD7C) - - 0 Status byte - 1-2 Buffer start address (lobyte, hibyte) - 3-4 Buffer length (lobyte, hibyte) - 5-8 Block number accessed (loword, hiword in lobyte, hibyte format) - 9 High nibble of device number - 10-15 Always zero (unknown purpose) - 16 Low nibble of device number - 17-18 Maximum block length (lobyte, hibyte) - 19 Device type (0 for block device, 1 for character device) - 20 Node type - - - Writing to byte0 requests the following operations: - 1 Return current status - 2 Soft reset - 3 Write - 4 Read - - - FCB = File Control Block Table (32bytes, 2 max each application) (0xFCB0) - OCB = Overlay Control Block Table - adam_pcb = Processor Control Block Table, 4bytes (adam_pcb+3 = Number of valid DCBs) (0xFEC0 relocatable), current adam_pcb=[0xFD70] - adam_pcb+0 = Status, 0=Request Status of Z80 -> must return 0x81..0x82 to sync Master 6801 clk with Z80 clk - adam_pcb+1,adam_pcb+2 = address of adam_pcb start - adam_pcb+3 = device # - - - Writing to byte0: - 1 Synchronize the Z80 clock (should return 0x81) - 2 Synchronize the Master 6801 clock (should return 0x82) - 3 Relocate adam_pcb - - - Status values: - 0x80 -> Success - 0x81 -> Z80 clock in sync - 0x82 -> Master 6801 clock in sync - 0x83 -> adam_pcb relocated - 0x9B -> Time Out - - DEV_ID = Device id - - - The ColecoAdam I/O map is contolled by the MIOC (Memory Input Output Controller): - - 20-3F (W) = Adamnet Writes - 20-3F (R) = Adamnet Reads - - 42-42 (W) = Expansion RAM page selection, only useful if expansion greater than 64k - - 40-40 (W) = Printer Data Out - 40-40 (R) = Printer (Returns 0x41) - - 5E-5E (RW)= Modem Data I/O - 5F-5F (RW)= Modem Data Control Status - - 60-7F (W) = Set Memory configuration - 60-7F (R) = Read Memory configuration - - 80-9F (W) = Set both controllers to keypad mode - 80-9F (R) = Not Connected - - A0-BF (W) = Video Chip (TMS9928A), A0=0 -> Write Register 0 , A0=1 -> Write Register 1 - A0-BF (R) = Video Chip (TMS9928A), A0=0 -> Read Register 0 , A0=1 -> Read Register 1 - - C0-DF (W) = Set both controllers to joystick mode - C0-DF (R) = Not Connected - - E0-FF (W) = Sound Chip (SN76496) - E0-FF (R) = Read Controller data, A1=0 -> read controller 1, A1=1 -> read controller 2 - -TO DO: - - Improve Keyboard "Simulation" (No ROM dumps available for the keyboard MC6801 AdamNet MCU) - - Add Tape "Simulation" (No ROM dumps available for the Tape MC6801 AdamNet MCU) - - Add Disc "Simulation" (No ROM dumps available for the Disc MC6801 AdamNet MCU) - - Add Full ColecoAdam emulation (every MC6801) if ROM dumps become available. - Do you have the ROM dumps?... let us know. - -***************************************************************************/ - - -#include "driver.h" -#include "sound/sn76496.h" -#include "vidhrdw/tms9928a.h" -#include "includes/adam.h" -#include "cpu/m6800/m6800.h" -#include "devices/cartslot.h" -#include "devices/mflopimg.h" -#include "formats/adam_dsk.h" - -static ADDRESS_MAP_START( adam_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x00000, 0x01fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK6 ) - AM_RANGE(0x02000, 0x03fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK7 ) - AM_RANGE(0x04000, 0x05fff) AM_READWRITE( MRA8_BANK3, MWA8_BANK8 ) - AM_RANGE(0x06000, 0x07fff) AM_READWRITE( MRA8_BANK4, MWA8_BANK9 ) - AM_RANGE(0x08000, 0x0ffff) AM_READWRITE( MRA8_BANK5, common_writes_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START ( adam_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x20, 0x3F) AM_READWRITE( adamnet_r, adamnet_w ) - AM_RANGE(0x60, 0x7F) AM_READWRITE( adam_memory_map_controller_r, adam_memory_map_controller_w ) - AM_RANGE(0x80, 0x9F) AM_WRITE( adam_paddle_toggle_off ) - AM_RANGE(0xA0, 0xBF) AM_READWRITE( adam_video_r, adam_video_w ) - AM_RANGE(0xC0, 0xDF) AM_WRITE( adam_paddle_toggle_on ) - AM_RANGE(0xE0, 0xFF) AM_READWRITE( adam_paddle_r, SN76496_0_w ) -ADDRESS_MAP_END - -/* -I do now know the real memory map of the Master 6801... -and the 6801 ASM code is a replacement coded for this driver. -*/ - -static ADDRESS_MAP_START( master6801_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0100, 0x3fff) AM_ROM /* Replacement Master ROM code */ - AM_RANGE( 0x4000, 0xffff) AM_READWRITE( master6801_ram_r, master6801_ram_w ) /* RAM Memory shared with Z80 not banked*/ -ADDRESS_MAP_END - -INPUT_PORTS_START( adam ) - PORT_START /* IN0 */ - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 (pad 1)") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 (pad 1)") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 (pad 1)") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 (pad 1)") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 (pad 1)") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 (pad 1)") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 (pad 1)") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 (pad 1)") PORT_CODE(KEYCODE_7) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (pad 1)") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (pad 1)") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("# (pad 1)") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". (pad 1)") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT ( 0xB0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT ( 0xB0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 (pad 2)") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 (pad 2)") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 (pad 2)") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 (pad 2)") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 (pad 2)") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 (pad 2)") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 (pad 2)") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 (pad 2)") PORT_CODE(KEYCODE_7_PAD) - - PORT_START /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (pad 2)") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (pad 2)") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("# (pad 2)") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". (pad 2)") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT ( 0xB0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN5 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT ( 0xB0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN6 */ - PORT_DIPNAME(0x0F, 0x00, "Controllers") - PORT_DIPSETTING(0x00, DEF_STR( None ) ) - PORT_DIPSETTING(0x01, "Driving Controller" ) - PORT_DIPSETTING(0x02, "Roller Controller" ) - PORT_DIPSETTING(0x04, "Super Action Controllers" ) - PORT_DIPSETTING(0x08, "Standard Controllers" ) - - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("SAC Blue Button P1") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("SAC Purple Button P1") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("SAC Blue Button P2") PORT_CODE(KEYCODE_Q) PORT_CODE(CODE_NONE ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("SAC Purple Button P2") PORT_CODE(KEYCODE_W) PORT_CODE(CODE_NONE ) PORT_PLAYER(2) - - PORT_START /* IN7, to emulate Extra Controls (Driving Controller, SAC P1 slider, Roller Controller X Axis) */ - PORT_BIT( 0x0f, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_MINMAX(0,0) PORT_CODE_DEC(KEYCODE_L) PORT_CODE_INC(KEYCODE_J) PORT_RESET - - PORT_START /* IN8, to emulate Extra Controls (SAC P2 slider, Roller Controller Y Axis) */ - PORT_BIT( 0x0f, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_MINMAX(0,0) PORT_CODE_DEC(KEYCODE_I) PORT_CODE_INC(KEYCODE_K) PORT_CODE_INC(CODE_NONE ) PORT_PLAYER(2) PORT_RESET - - -/* Keyboard with 75 Keys */ - - PORT_START /* IN9 0*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("WP/ESCAPE") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - - PORT_START /* IN10 1*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - - PORT_START /* IN11 2*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - - PORT_START /* IN12 3*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- `") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - - PORT_START /* IN13 4*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 _") PORT_CODE(KEYCODE_6) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - - PORT_START /* IN14 5*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+ =") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) - - PORT_START /* IN15 6*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey I") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey II") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey III") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey IV") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey V") PORT_CODE(KEYCODE_F5) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SoftKey VI") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - - PORT_START /* IN16 7*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("WILD CARD") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UNDO") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MOVE") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STORE") PORT_CODE(KEYCODE_END) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INSERT") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PRINT") PORT_CODE(KEYCODE_PRTSCR) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DELETE") PORT_CODE(KEYCODE_BACKSPACE) - - PORT_START /* IN17 8*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP ARROW") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN ARROW") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT ARROW") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT ARROW") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) - - PORT_START /* IN18 9*/ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LCONTROL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RCONTROL") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE - PORT_BIT (0xF8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -INPUT_PORTS_END - -/*************************************************************************** - - The interrupts come from the vdp. The vdp (tms9928a) interrupt can go up - and down; the Coleco only uses nmi interrupts (which is just a pulse). They - are edge-triggered: as soon as the vdp interrupt line goes up, an interrupt - is generated. Nothing happens when the line stays up or goes down. - - To emulate this correctly, we set a callback in the tms9928a (they - can occur mid-frame). At every frame we call the TMS9928A_interrupt - because the vdp needs to know when the end-of-frame occurs, but we don't - return an interrupt. - -***************************************************************************/ - -static INTERRUPT_GEN( adam_interrupt ) -{ - TMS9928A_interrupt(); - exploreKeyboard(); -} - -static void adam_vdp_interrupt (int state) -{ - static int last_state = 0; - - /* only if it goes up */ - if (state && !last_state) - { - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - last_state = state; -} - -void adam_paddle_callback (int param) -{ - int port7 = input_port_7_r (0); - int port8 = input_port_8_r (0); - - if (port7 == 0) - adam_joy_stat[0] = 0; - else if (port7 & 0x08) - adam_joy_stat[0] = -1; - else - adam_joy_stat[0] = 1; - - if (port8 == 0) - adam_joy_stat[1] = 0; - else if (port8 & 0x08) - adam_joy_stat[1] = -1; - else - adam_joy_stat[1] = 1; - - if (adam_joy_stat[0] || adam_joy_stat[1]) - cpunum_set_input_line (0, 0, HOLD_LINE); -} - -void set_memory_banks(void) -{ -/* -Lineal virtual memory map: - -0x00000, 0x07fff -> Lower Internal RAM -0x08000, 0x0ffff -> Upper Internal RAM -0x10000, 0x17fff -> Lower Expansion RAM -0x18000, 0x1ffff -> Upper Expansion RAM -0x20000, 0x27fff -> SmartWriter ROM -0x28000, 0x2ffff -> Cartridge -0x30000, 0x31fff -> OS7 ROM (ColecoVision ROM) -0x32000, 0x39fff -> EOS ROM -0x3A000, 0x41fff -> Used to Write Protect ROMs -*/ - UINT8 *BankBase; - BankBase = &memory_region(REGION_CPU1)[0x00000]; - - switch (adam_lower_memory) - { - case 0: /* SmartWriter ROM */ - if (adam_net_data & 0x02) - { - /* Read */ - memory_set_bankptr(1, BankBase+0x32000); /* No data here */ - memory_set_bankptr(2, BankBase+0x34000); /* No data here */ - memory_set_bankptr(3, BankBase+0x36000); /* No data here */ - memory_set_bankptr(4, BankBase+0x38000); /* EOS ROM */ - - /* Write */ - memory_set_bankptr(6, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(7, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(8, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(9, BankBase+0x3A000); /* Write protecting ROM */ - } - else - { - /* Read */ - memory_set_bankptr(1, BankBase+0x20000); /* SmartWriter ROM */ - memory_set_bankptr(2, BankBase+0x22000); - memory_set_bankptr(3, BankBase+0x24000); - memory_set_bankptr(4, BankBase+0x26000); - - /* Write */ - memory_set_bankptr(6, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(7, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(8, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(9, BankBase+0x3A000); /* Write protecting ROM */ - } - break; - case 1: /* Internal RAM */ - /* Read */ - memory_set_bankptr(1, BankBase); - memory_set_bankptr(2, BankBase+0x02000); - memory_set_bankptr(3, BankBase+0x04000); - memory_set_bankptr(4, BankBase+0x06000); - - /* Write */ - memory_set_bankptr(6, BankBase); - memory_set_bankptr(7, BankBase+0x02000); - memory_set_bankptr(8, BankBase+0x04000); - memory_set_bankptr(9, BankBase+0x06000); - break; - case 2: /* RAM Expansion */ - /* Read */ - memory_set_bankptr(1, BankBase+0x10000); - memory_set_bankptr(2, BankBase+0x12000); - memory_set_bankptr(3, BankBase+0x14000); - memory_set_bankptr(4, BankBase+0x16000); - - /* Write */ - memory_set_bankptr(6, BankBase+0x10000); - memory_set_bankptr(7, BankBase+0x12000); - memory_set_bankptr(8, BankBase+0x14000); - memory_set_bankptr(9, BankBase+0x16000); - break; - case 3: /* OS7 ROM (8k) + Internal RAM (24k) */ - /* Read */ - memory_set_bankptr(1, BankBase+0x30000); - memory_set_bankptr(2, BankBase+0x02000); - memory_set_bankptr(3, BankBase+0x04000); - memory_set_bankptr(4, BankBase+0x06000); - - /* Write */ - memory_set_bankptr(6, BankBase+0x3A000); /* Write protecting ROM */ - memory_set_bankptr(7, BankBase+0x02000); - memory_set_bankptr(8, BankBase+0x04000); - memory_set_bankptr(9, BankBase+0x06000); - } - - switch (adam_upper_memory) - { - case 0: /* Internal RAM */ - /* Read */ - memory_set_bankptr(5, BankBase+0x08000); - /*memory_set_bankptr(10, BankBase+0x08000);*/ - break; - case 1: /* ROM Expansion */ - break; - case 2: /* RAM Expansion */ - /* Read */ - memory_set_bankptr(5, BankBase+0x18000); - /*memory_set_bankptr(10, BankBase+0x18000);*/ - break; - case 3: /* Cartridge ROM */ - /* Read */ - memory_set_bankptr(5, BankBase+0x28000); - /*memory_set_bankptr(10, BankBase+0x3A000); *//* Write protecting ROM */ - break; - } -} - -void resetPCB(void) -{ - int i; - memory_region(REGION_CPU1)[adam_pcb] = 0x01; - - for (i = 0; i < 15; i++) - memory_region(REGION_CPU1)[(adam_pcb+4+i*21)&0xFFFF]=i+1; -} - -static const TMS9928a_interface tms9928a_interface = -{ - TMS99x8A, - 0x4000, - 0, 0, - adam_vdp_interrupt -}; - -static MACHINE_START( adam ) -{ - TMS9928A_configure(&tms9928a_interface); - return 0; -} - -static MACHINE_RESET( adam ) -{ - if (image_exists(image_from_devtype_and_index(IO_CARTSLOT, 0))) - { - /* ColecoVision Mode Reset (Cartridge Mounted) */ - adam_lower_memory = 3; /* OS7 + 24k RAM */ - adam_upper_memory = 3; /* Cartridge ROM */ - } - else - { - /* Adam Mode Reset */ - adam_lower_memory = 0; /* SmartWriter ROM/EOS */ - adam_upper_memory = 0; /* Internal RAM */ - } - - adam_net_data = 0; - set_memory_banks(); - adam_pcb=0xFEC0; - clear_keyboard_buffer(); - - memset(&memory_region(REGION_CPU1)[0x0000], 0xFF, 0x20000); /* Initializing RAM */ - timer_pulse(TIME_IN_MSEC(20), 0, adam_paddle_callback); -} - -static MACHINE_DRIVER_START( adam ) - /* Machine hardware */ - MDRV_CPU_ADD_TAG("Main", Z80, 3579545) /* 3.579545 Mhz */ - MDRV_CPU_PROGRAM_MAP(adam_mem, 0) - MDRV_CPU_IO_MAP(adam_io, 0) - - /* Master M6801 AdamNet controller */ - //MDRV_CPU_ADD(M6800, 4000000) /* 4.0 Mhz */ - //MDRV_CPU_PROGRAM_MAP(master6801_mem, 0) - - MDRV_CPU_VBLANK_INT(adam_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( adam ) - MDRV_MACHINE_RESET( adam ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* -os7.rom CRC(3AA93EF3) -eos.rom CRC(05A37A34) -wp.rom CRC(58D86A2A) -*/ -/* -Total Memory Size: 64k Internal RAM, 64k Expansion RAM, 32k SmartWriter ROM, 8k OS7, 32k Cartridge, 32k Extra - -Lineal virtual memory map: - -0x00000, 0x07fff -> Lower Internal RAM -0x08000, 0x0ffff -> Upper Internal RAM -0x10000, 0x17fff -> Lower Expansion RAM -0x18000, 0x1ffff -> Upper Expansion RAM -0x20000, 0x27fff -> SmartWriter ROM -0x28000, 0x2ffff -> Cartridge -0x30000, 0x31fff -> OS7 ROM (ColecoVision ROM) -0x32000, 0x39fff -> EOS ROM -0x3A000, 0x41fff -> Used to Write Protect ROMs -0x42000, 0x47fff -> Low unused EOS ROM -*/ -ROM_START (adam) - ROM_REGION( 0x42000, REGION_CPU1, 0) - ROM_LOAD ("wp.rom", 0x20000, 0x8000, CRC(58d86a2a) SHA1(d4aec4efe1431e56fe52d83baf9118542c525255)) - ROM_LOAD ("os7.rom", 0x30000, 0x2000, CRC(3aa93ef3) SHA1(45bedc4cbdeac66c7df59e9e599195c778d86a92)) - ROM_LOAD ("eos.rom", 0x38000, 0x2000, CRC(05a37a34) SHA1(ad3c20ef444f10af7ae8eb75c81e500d9b1bba3d)) - - ROM_CART_LOAD(0, "rom\0col\0bin\0", 0x28000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) - - //ROM_REGION( 0x10000, REGION_CPU2, 0) - //ROM_LOAD ("master68.rom", 0x0100, 0x0E4, CRC(619a47b8)) /* Replacement 6801 Master ROM */ -ROM_END - -static void adam_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_VERIFY: info->imgverify = adam_cart_verify; break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void adam_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_adam; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(adam) - CONFIG_DEVICE(adam_cartslot_getinfo) - CONFIG_DEVICE(adam_floppy_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, adam, 0, coleco, adam, adam, 0, adam, "Adam", "ColecoAdam" , 0) - diff --git a/mess/systems/advision.c b/mess/systems/advision.c deleted file mode 100644 index de95285c5..000000000 --- a/mess/systems/advision.c +++ /dev/null @@ -1,120 +0,0 @@ -/*************************************************************************** - - /systems/advision.c - - Driver file to handle emulation of the Entex Adventurevision. - -***************************************************************************/ - -/********************************************** -8048 Ports: -P1 Bit 0..1 - RAM bank select - Bit 3..7 - Keypad input - -P2 Bit 0..3 - A8-A11 - Bit 4..7 - Sound control/Video write address - -T1 Mirror sync pulse - -***********************************************/ - -#include "driver.h" -#include "cpu/i8039/i8039.h" -#include "cpu/cop400/cop400.h" -#include "vidhrdw/generic.h" -#include "includes/advision.h" -#include "devices/cartslot.h" - -static ADDRESS_MAP_START(advision_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x03FF) AM_READWRITE(MRA8_BANK1, MWA8_ROM) - AM_RANGE(0x0400, 0x0fff) AM_ROM - AM_RANGE(0x2000, 0x23ff) AM_RAM /* MAINRAM four banks */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(advision_sound_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x03FF) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(advision_ports, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x00, 0xff) AM_READWRITE(advision_MAINRAM_r, advision_MAINRAM_w) - AM_RANGE(I8039_p1, I8039_p1) AM_READWRITE(advision_getp1, advision_putp1) - AM_RANGE(I8039_p2, I8039_p2) AM_READWRITE(advision_getp2, advision_putp2) - AM_RANGE(I8039_t0, I8039_t0) AM_READ(advision_gett0) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(advision_gett1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(advision_sound_ports, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x00, 0xFF) AM_RAM - AM_RANGE(COP400_PORT_L, COP400_PORT_L) AM_READ(advision_getL) - AM_RANGE(COP400_PORT_G, COP400_PORT_G) AM_WRITE(advision_putG) - AM_RANGE(COP400_PORT_D, COP400_PORT_D) AM_WRITE(advision_putD) -ADDRESS_MAP_END - -INPUT_PORTS_START( advision ) - PORT_START /* IN0 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(1) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(1) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( advision ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", I8048, 14000000/15) - MDRV_CPU_PROGRAM_MAP(advision_mem, 0) - MDRV_CPU_IO_MAP(advision_ports, 0) - - MDRV_CPU_ADD(COP411, 52631) - MDRV_CPU_PROGRAM_MAP(advision_sound_mem,0) - MDRV_CPU_IO_MAP(advision_sound_ports,0) - - MDRV_SCREEN_REFRESH_RATE(8*15) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET( advision ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 200) - MDRV_SCREEN_VISIBLE_AREA(0,320-1,0,200-1) - MDRV_PALETTE_LENGTH(8+2) - MDRV_COLORTABLE_LENGTH(8*2) - MDRV_PALETTE_INIT(advision) - - MDRV_VIDEO_START(advision) - MDRV_VIDEO_UPDATE(advision) - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -ROM_START (advision) - ROM_REGION(0x2800,REGION_CPU1, 0) - ROM_LOAD ("avbios.rom", 0x1000, 0x400, CRC(279e33d1) SHA1(bf7b0663e9125c9bfb950232eab627d9dbda8460)) - ROM_CART_LOAD(0, "bin\0", 0x0000, 0x1000, ROM_NOMIRROR | ROM_FULLSIZE) - ROM_REGION(0x400,REGION_CPU2, 0) - ROM_LOAD ("avsound.bin",0,0x200,CRC(81e95975) SHA1(8b6f8c30dd3e9d8e43f1ea20fba2361b383790eb)) -ROM_END - -SYSTEM_CONFIG_START(advision) - CONFIG_DEVICE(cartslot_device_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS(1982, advision, 0, 0, advision, advision, 0, advision, "Entex", "Adventurevision", 0 ) - diff --git a/mess/systems/amiga.c b/mess/systems/amiga.c deleted file mode 100644 index b5658828e..000000000 --- a/mess/systems/amiga.c +++ /dev/null @@ -1,427 +0,0 @@ -/*************************************************************************** -Commodore Amiga - (c) 1985, Commodore Bussines Machines Co. - -Preliminary driver by: - -Ernesto Corvi -ernesto@imagina.com - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "sound/custom.h" -#include "includes/amiga.h" -#include "machine/amigafdc.h" -#include "machine/amigakbd.h" -#include "devices/chd_cd.h" -#include "inputx.h" - -/*************************************************************************** - Address maps -***************************************************************************/ - -static ADDRESS_MAP_START(amiga_mem, ADDRESS_SPACE_PROGRAM, 16) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x80000) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size) -#if AMIGA_ACTION_REPLAY_1 - AM_RANGE(0x9fc000, 0x9fffff) AM_RAMBANK(2) AM_BASE(&amiga_ar_ram) AM_SIZE(&amiga_ar_ram_size) -#endif - AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w) - AM_RANGE(0xc00000, 0xc7ffff) AM_RAM - AM_RANGE(0xc80000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs) /* Custom Chips */ - AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w) -#if AMIGA_ACTION_REPLAY_1 - AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION(REGION_USER2, 0) /* Cart ROM */ -#else - AM_RANGE(0xf00000, 0xf7ffff) AM_NOP -#endif - AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION(REGION_USER1, 0) /* System ROM - mirror */ -ADDRESS_MAP_END - -/* - * CDTV memory map (source: http://www.l8r.net/technical/cdtv-technical.html) - * - * 000000-0FFFFF Chip memory - * 100000-1FFFFF Space for extra chip memory (Megachip) - * 200000-9FFFFF Space for AutoConfig memory - * A00000-BFFFFF CIA chips - * C00000-C7FFFF Space for slow-fast memory - * C80000-DBFFFF Space - * DC0000-DC7FFF Power backed-up real time clock - * DC8000-DC87FF Non-volatile RAM - * DC8800-DCFFFF Space in non-volatile RAM decoded area - * DD0000-DEFFFF Space - * DF0000-DFFFFF Custom chips - * E00000-E7FFFF Memory card address space for front panel memory card - * E80000-E8FFFF AutoConfig configuration space - * E90000-E9FFFF First AutoConfig device, used by DMAC - * EA0000-EFFFFF Space for other AutoConfig devices - * F00000-F3FFFF CDTV ROM - * F40000-F7FFFF Space in CDTV ROM decoded area - * F80000-FBFFFF Space in Kickstart ROM decoded area (used by Kickstart 2) - * FC0000-FFFFFF Kickstart ROM - * - */ - -static ADDRESS_MAP_START(cdtv_mem, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x000000, 0x0fffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size) - AM_RANGE(0x100000, 0x9fffff) AM_NOP - AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w) - AM_RANGE(0xc00000, 0xdeffff) AM_NOP - AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs) /* Custom Chips */ - AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w) - AM_RANGE(0xf00000, 0xffffff) AM_ROM AM_REGION(REGION_USER1, 0) /* CDTV & System ROM */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(a1000_mem, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0xc0000) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size) - AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w) - AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs) /* Custom Chips */ - AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w) - AM_RANGE(0xf80000, 0xfbffff) AM_ROM AM_REGION(REGION_USER1, 0) /* Bootstrap ROM */ - AM_RANGE(0xfc0000, 0xffffff) AM_RAMBANK(2) /* Kickstart RAM */ -ADDRESS_MAP_END - -/*************************************************************************** - Inputs -***************************************************************************/ - -INPUT_PORTS_START( amiga ) - PORT_START_TAG("config") - PORT_CONFNAME( 0x20, 0x00, "Input Port 0 Device") - PORT_CONFSETTING( 0x00, "Mouse" ) - PORT_CONFSETTING( 0x20, DEF_STR(Joystick) ) - PORT_CONFNAME( 0x10, 0x10, "Input Port 1 Device") - PORT_CONFSETTING( 0x00, "Mouse" ) - PORT_CONFSETTING( 0x10, DEF_STR(Joystick) ) - - PORT_START_TAG("CIA0PORTA") - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("JOY0DAT") - PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(amiga_joystick_convert, "P1JOY") - PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("JOY1DAT") - PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(amiga_joystick_convert, "P2JOY") - PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("POTGO") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xaaff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("P1JOY") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - - PORT_START_TAG("P2JOY") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - - PORT_START_TAG("P0MOUSEX") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) - - PORT_START_TAG("P0MOUSEY") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) - - PORT_START_TAG("P1MOUSEX") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(2) - - PORT_START_TAG("P1MOUSEY") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(2) - - PORT_INCLUDE( amiga_keyboard ) - -INPUT_PORTS_END - -/*************************************************************************** - Machine drivers -***************************************************************************/ - -static struct CustomSound_interface amiga_custom_interface = -{ - amiga_sh_start -}; - -static MACHINE_DRIVER_START( ntsc ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 7159090) /* 7.15909 Mhz (NTSC) */ - MDRV_CPU_PROGRAM_MAP(amiga_mem, 0) - MDRV_CPU_VBLANK_INT(amiga_scanline_callback, 262) - MDRV_SCREEN_REFRESH_RATE(59.997) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET( amiga ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512*2, 262) - MDRV_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MDRV_PALETTE_LENGTH(4096) - MDRV_PALETTE_INIT( amiga ) - - MDRV_VIDEO_START(amiga) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(CUSTOM, 3579545) - MDRV_SOUND_CONFIG(amiga_custom_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - MDRV_SOUND_ROUTE(2, "right", 0.50) - MDRV_SOUND_ROUTE(3, "left", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cdtv ) - MDRV_IMPORT_FROM(ntsc) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(cdtv_mem, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( a1000 ) - MDRV_IMPORT_FROM(ntsc) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(a1000_mem, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pal ) - MDRV_IMPORT_FROM(ntsc) - - /* adjust for PAL specs */ - MDRV_CPU_REPLACE("main", M68000, 7093790) - MDRV_CPU_VBLANK_INT(amiga_scanline_callback, 312) - - MDRV_SCREEN_REFRESH_RATE(50) - - MDRV_SCREEN_SIZE(512*2, 312) - MDRV_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 300+8-1) -MACHINE_DRIVER_END - -/*************************************************************************** - - Amiga specific stuff - -***************************************************************************/ - -static UINT8 amiga_cia_0_portA_r( void ) -{ - UINT8 ret = readinputportbytag("CIA0PORTA") & 0xc0; /* Gameport 1 and 0 buttons */ - ret |= amiga_fdc_status_r(); - return ret; -} - -static void amiga_cia_0_portA_w( UINT8 data ) -{ - /* switch banks as appropriate */ - memory_set_bank(1, data & 1); - - /* swap the write handlers between ROM and bank 1 based on the bit */ - if ((data & 1) == 0) { - UINT32 mirror_mask = amiga_chip_ram_size; - - while( (mirror_mask<<1) < 0x100000 ) { - mirror_mask |= ( mirror_mask << 1 ); - } - - /* overlay disabled, map RAM on 0x000000 */ - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, amiga_chip_ram_size - 1, 0, mirror_mask, MWA16_BANK1); - } - else - /* overlay enabled, map Amiga system ROM on 0x000000 */ - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, MWA16_ROM); - - set_led_status( 0, ( data & 2 ) ? 0 : 1 ); /* bit 2 = Power Led on Amiga */ -} - -static UINT16 amiga_read_joy0dat(void) -{ - if ( readinputportbytag("config") & 0x20 ) { - /* Joystick */ - return readinputportbytag_safe("JOY0DAT", 0xffff); - } else { - /* Mouse */ - int input; - input = ( readinputportbytag("P0MOUSEX") & 0xff ); - input |= ( readinputportbytag("P0MOUSEY") & 0xff ) << 8; - return input; - } -} - -static UINT16 amiga_read_joy1dat(void) -{ - if ( readinputportbytag("config") & 0x10 ) { - /* Joystick */ - return readinputportbytag_safe("JOY1DAT", 0xffff); - } else { - /* Mouse */ - int input; - input = ( readinputportbytag("P1MOUSEX") & 0xff ); - input |= ( readinputportbytag("P1MOUSEY") & 0xff ) << 8; - return input; - } -} - -static UINT16 amiga_read_dskbytr(void) -{ - return amiga_fdc_get_byte(); -} - -static void amiga_write_dsklen(UINT16 data) -{ - if ( data & 0x8000 ) { - if ( CUSTOM_REG(REG_DSKLEN) & 0x8000 ) - amiga_fdc_setup_dma(); - } -} - -static DRIVER_INIT( amiga ) -{ - static const amiga_machine_interface amiga_intf = - { - ANGUS_CHIP_RAM_MASK, - amiga_cia_0_portA_r, NULL, /* CIA0 port A & B read */ - amiga_cia_0_portA_w, NULL, /* CIA0 port A & B write */ - NULL, NULL, /* CIA1 port A & B read */ - NULL, amiga_fdc_control_w, /* CIA1 port A & B write */ - amiga_read_joy0dat, amiga_read_joy1dat, /* joy0dat_r & joy1dat_r */ - NULL, /* potgo_w */ - amiga_read_dskbytr, amiga_write_dsklen, /* dskbytr_r & dsklen_w */ - NULL, /* serdat_w */ - NULL, /* scanline0_callback */ - NULL /* reset_callback */ - }; - - amiga_machine_config(&amiga_intf); - - /* set up memory */ - memory_configure_bank(1, 0, 1, amiga_chip_ram, 0); - memory_configure_bank(1, 1, 1, memory_region(REGION_USER1), 0); - - /* initialize keyboard */ - amigakbd_init(); -} - -static DRIVER_INIT( cdtv ) -{ - static const amiga_machine_interface amiga_intf = - { - FAT_ANGUS_CHIP_RAM_MASK, - amiga_cia_0_portA_r, NULL, /* CIA0 port A & B read */ - amiga_cia_0_portA_w, NULL, /* CIA0 port A & B write */ - NULL, NULL, /* CIA1 port A & B read */ - NULL, NULL, /* CIA1 port A & B write */ - amiga_read_joy0dat, amiga_read_joy1dat, /* joy0dat_r & joy1dat_r */ - NULL, /* potgo_w */ - amiga_read_dskbytr, amiga_write_dsklen, /* dskbytr_r & dsklen_w */ - NULL, /* serdat_w */ - NULL, /* scanline0_callback */ - NULL /* reset_callback */ - }; - - amiga_machine_config(&amiga_intf); - - /* set up memory */ - memory_configure_bank(1, 0, 1, amiga_chip_ram, 0); - memory_configure_bank(1, 1, 1, memory_region(REGION_USER1), 0); -} - -/*************************************************************************** - ROM loading -***************************************************************************/ - -SYSTEM_BIOS_START(amiga) - SYSTEM_BIOS_ADD(0, "kick13", "Kickstart 1.3 (34.5)") - SYSTEM_BIOS_ADD(1, "kick12", "Kickstart 1.2 (33.180)") - SYSTEM_BIOS_ADD(2, "kick204", "Kickstart 2.04 (37.175)") - SYSTEM_BIOS_ADD(3, "kick31", "Kickstart 3.1 (40.63)") -SYSTEM_BIOS_END - -ROM_START(a500n) - ROM_REGION16_BE(0x080000, REGION_USER1, 0) - ROMX_LOAD("315093.01", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88), ROM_GROUPWORD | ROM_BIOS(2)) - ROMX_LOAD("315093.02", 0x000000, 0x040000, CRC(c4f0f55f) SHA1(891e9a547772fe0c6c19b610baf8bc4ea7fcb785), ROM_GROUPWORD | ROM_BIOS(1)) - ROM_COPY(REGION_USER1, 0x000000, 0x040000, 0x040000) - ROMX_LOAD("390979.01", 0x000000, 0x080000, CRC(c3bdb240) SHA1(c5839f5cb98a7a8947065c3ed2f14f5f42e334a1), ROM_GROUPWORD | ROM_BIOS(3)) /* identical to 363968.01 */ - ROMX_LOAD("kick40063", 0x000000, 0x080000, CRC(fc24ae0d) SHA1(3b7f1493b27e212830f989f26ca76c02049f09ca), ROM_GROUPWORD | ROM_BIOS(4)) /* part number? */ - -#if AMIGA_ACTION_REPLAY_1 - ROM_REGION16_BE(0x080000, REGION_USER2, 0) - ROM_LOAD_OPTIONAL("ar1.bin", 0x000000, 0x010000, CRC(f82c4258) SHA1(843b433b2c56640e045d5fdc854dc6b1a4964e7c)) -#endif -ROM_END - -ROM_START(a500p) - ROM_REGION16_BE(0x080000, REGION_USER1, 0) - ROMX_LOAD("315093.01", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88), ROM_GROUPWORD | ROM_BIOS(2)) - ROMX_LOAD("315093.02", 0x000000, 0x040000, CRC(c4f0f55f) SHA1(891e9a547772fe0c6c19b610baf8bc4ea7fcb785), ROM_GROUPWORD | ROM_BIOS(1)) - ROM_COPY(REGION_USER1, 0x000000, 0x040000, 0x040000) - ROMX_LOAD("390979.01", 0x000000, 0x080000, CRC(c3bdb240) SHA1(c5839f5cb98a7a8947065c3ed2f14f5f42e334a1), ROM_GROUPWORD | ROM_BIOS(3)) /* identical to 363968.01 */ - ROMX_LOAD("kick40063", 0x000000, 0x080000, CRC(fc24ae0d) SHA1(3b7f1493b27e212830f989f26ca76c02049f09ca), ROM_GROUPWORD | ROM_BIOS(4)) /* part number? */ - -#if AMIGA_ACTION_REPLAY_1 - ROM_REGION16_BE(0x080000, REGION_USER2, 0) - ROM_LOAD_OPTIONAL("ar1.bin", 0x000000, 0x010000, CRC(f82c4258) SHA1(843b433b2c56640e045d5fdc854dc6b1a4964e7c)) -#endif -ROM_END - -ROM_START(a1000n) - ROM_REGION16_BE(0x080000, REGION_USER1, 0) - ROMX_LOAD("a1000.bin", 0x000000, 0x002000, CRC(62f11c04) SHA1(c87f9fada4ee4e69f3cca0c36193be822b9f5fe6), ROM_GROUPWORD) -ROM_END - -ROM_START(cdtv) - ROM_REGION16_BE(0x100000, REGION_USER1, 0) - ROM_LOAD16_BYTE("391008.01", 0x000000, 0x020000, CRC(791cb14b) SHA1(277a1778924496353ffe56be68063d2a334360e4)) - ROM_LOAD16_BYTE("391009.01", 0x000001, 0x020000, CRC(accbbc2e) SHA1(41b06d1679c6e6933c3378b7626025f7641ebc5c)) - ROM_COPY(REGION_USER1, 0x000000, 0x040000, 0x040000) - ROMX_LOAD( "315093.02", 0x080000, 0x040000, CRC(c4f0f55f) SHA1(891e9a547772fe0c6c19b610baf8bc4ea7fcb785), ROM_GROUPWORD) - ROM_COPY(REGION_USER1, 0x080000, 0x0c0000, 0x040000) -ROM_END - -/*************************************************************************** - System config -***************************************************************************/ - -SYSTEM_CONFIG_START(amiga) - CONFIG_DEVICE(amiga_floppy_getinfo) -SYSTEM_CONFIG_END - -static void cdtv_cd_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* CHD CD-ROM */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cdrom_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(cdtv) - CONFIG_DEVICE(cdtv_cd_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - Game drivers -***************************************************************************/ - -/* YEAR NAME PARENT BIOS COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ -COMP( 1985, a1000n, 0, 0, a1000, amiga, amiga, amiga, "Commodore Business Machines Co.", "Commodore Amiga 1000 (NTSC-OCS)", GAME_COMPUTER | GAME_NOT_WORKING ) -COMPB( 1987, a500n, 0, amiga, 0, ntsc, amiga, amiga, amiga, "Commodore Business Machines Co.", "Commodore Amiga 500 (NTSC-OCS)", GAME_COMPUTER | GAME_IMPERFECT_GRAPHICS ) -COMPB( 1987, a500p, a500n, amiga, 0, pal, amiga, amiga, amiga, "Commodore Business Machines Co.", "Commodore Amiga 500 (PAL-OCS)", GAME_COMPUTER | GAME_IMPERFECT_GRAPHICS ) -COMP( 1991, cdtv, 0, 0, cdtv, amiga, cdtv, cdtv, "Commodore Business Machines Co.", "Commodore Amiga CDTV (NTSC)", GAME_NOT_WORKING ) diff --git a/mess/systems/amstrad.c b/mess/systems/amstrad.c deleted file mode 100644 index 766c6bddc..000000000 --- a/mess/systems/amstrad.c +++ /dev/null @@ -1,2474 +0,0 @@ -/****************************************************************************** - - amstrad.c - system driver - - Amstrad Hardware: - - 8255 connected to AY-3-8912 sound generator, - keyboard, cassette, printer, crtc vsync output, - and some PCB links - - 6845 (either HD6845S, UM6845R or M6845) crtc graphics display - controller - - NEC765 floppy disc controller (CPC664,CPC6128) - - Z80 CPU running at 4Mhz (slowed by wait states on memory - access) - - custom ASIC "Gate Array" controlling rom paging, ram paging, - current display mode and colour palette - - Kevin Thacker [MESS driver] - - May-June 2004 - Yoann Courtois (aka Papagayo/ex GMC/ex PARADOX) - rewritting some code with hardware documentation from http://andercheran.aiind.upv.es/~amstrad - - June 2006 - Very preliminary CPC+ support. CPR cart image handling, secondary ROM register, ASIC unlock detection - Supported: - 12-bit palette, - 12-bit hardware sprites (largely works from what I've seen, some games have display issues), - Programmable Raster Interrupt (seems to work), - Split screen registers, - Soft scroll registers (only byte-by-byre horizontally for now), - Analogue controls (may well be completely wrong, I have no idea on how these should work), - Vectored interrupts for Z80 interrupt mode 2 (used by Pang), - DMA sound channels (may still be some issues, noticable in Navy Seals and Copter 271) - 04/07/06: Added interrupt vector support for IM 2. - Added soft scroll register implementation. Vertical adjustments are a bit shaky. - 05/07/06: Fixed hardware sprite offsets - 14/07/06: Added basic analogue control support. - 04/08/06: Fixed PRI and Split screen scanline offsets (based on code in Arnold ;)) - Implemented DMA sound channels - 06/08/06: Fixed CRTC palette if the ASIC was re-locked after already being unlocked and used. - This fixes Klax, which is now playable. - 08/08/06: Fixed up vertical soft scroll, now we just need to get a finer detail on horizontal soft scroll - (Only works on a byte level for now) - Fixed DMA pause function when the prescaler is set to 0. - - Tested with the Arnold 5 Diagnostic Cartridge. Mostly works fine, but the soft scroll test is - noticably wrong. - - Known issues with some games (as at 08/08/06): - Robocop 2: playable, but sprites cut out for some reason (possibly IRQ related, I think) every now and then. - Navy Seals: Playable, but has similar problems to Robocop 2. - Dick Tracy: Sprite visibility issues - Switchblade: has some slowdown when numerous enemies are on screen (normal?) - Epyx World of Sports: doesn't start at all. - Tennis Cup II: controls don't seem to work. - Fire and Forget II: playable, but the top half of the screen flickers - Crazy Cars II: playable, with slight shaking of horizon - No Exit: Display is wrong, but usable, uses demo-like techniques. - - -Some bugs left : ----------------- - - CRTC all type support (0,1,2,3,4) ? - - Gate Array and CRTC aren't synchronised. (The Gate Array can change the color every microseconds?) So the multi-rasters in one line aren't supported (see yao demo p007's part)! - - Implement full Asic for CPC+ emulation. Soft scroll is rather dodgy. 8-bit printer port (bit 3 of CRTC reg 12) not implemented. - ******************************************************************************/ -#include "driver.h" - -#include "includes/centroni.h" -#include "machine/8255ppi.h" /* for 8255 ppi */ -#include "cpu/z80/z80.h" /* for cycle tables */ -#include "vidhrdw/m6845.h" /* CRTC display */ -#include "includes/amstrad.h" -#include "machine/nec765.h" /* for floppy disc controller */ -#include "devices/dsk.h" /* for CPCEMU style disk images */ -#include "devices/snapquik.h" -#include "devices/cartslot.h" -#include "devices/printer.h" -#include "devices/cassette.h" -#include "inputx.h" -#include "sound/ay8910.h" - -#ifdef AMSTRAD_VIDEO_EVENT_LIST -/* for event list */ -#include "eventlst.h" -#endif - -#define MANUFACTURER_NAME 0x07 -#define TV_REFRESH_RATE 0x10 - -#define SYSTEM_CPC 0 -#define SYSTEM_PLUS 1 - -//int selected_crtc6845_address = 0; - -// &ff,&77,&b3,&51,&a8,&d4,&62,&39,&9c,&46,&2b,&15,&8a,&cd,&ee -// This is the sequence for unlocking the ASIC in the CPC+/GX4000 -// These are outed to port &bc00, after syncing the lock by outing a non-zero value then a zero to &bc00 -// To lock the ASIC again, repeat the sequence without the last &ee -unsigned char asic_unlock_seq[15] = -{ - 0xff, 0x77, 0xb3, 0x51, 0xa8, 0xd4, 0x62, 0x39, 0x9c, 0x46, 0x2b, 0x15, 0x8a, 0xcd, 0xee -}; - -int amstrad_system_type; -int amstrad_plus_lower; // CPC+/GX4000 cartridge bank loaded in lower ROM area -int amstrad_plus_lower_addr; // CPC+/GX4000 lower ROM area address / ASIC register page enable -int amstrad_plus_lower_enabled; // secondary lower ROM select in use? -int amstrad_plus_asic_enabled; // ASIC enabled -int amstrad_plus_asic_regpage; // ASIC register page enabled -int amstrad_plus_asic_seqptr; // current position in the ASIC unlocking sequence -int amstrad_plus_pri; // Programmable raster interrupt, 0=disabled. -int amstrad_plus_irq_cause; // part of the interrupt vector for IM 2. 6 = raster IRQ, 4 = DMA channel 2, 2 = DMA channel 1, 0 = DMA channel 0 -int amstrad_plus_scroll_x; // soft scroll - horizontal (0-15), in mode 2 pixels -int amstrad_plus_scroll_y; // soft scroll - vertical (0-7), in scanlines -int amstrad_plus_scroll_border; // soft scroll - extend border, any program that uses soft scrolling should enable this -int amstrad_plus_dma_status; -int amstrad_plus_dma_0_addr; // DMA channel address -int amstrad_plus_dma_1_addr; -int amstrad_plus_dma_2_addr; -int amstrad_plus_dma_prescaler[3]; // DMA channel prescaler -int amstrad_plus_dma_clear; // set if DMA interrupts are to be cleared automatically - -extern int amstrad_scanline; -extern int prev_reg; - -void amstrad_plus_seqcheck(int data); -static WRITE8_HANDLER( amstrad_plus_asic_4000_w ); -static WRITE8_HANDLER( amstrad_plus_asic_6000_w ); -static READ8_HANDLER( amstrad_plus_asic_4000_r ); -static READ8_HANDLER( amstrad_plus_asic_6000_r ); - -/* the hardware allows selection of 256 ROMs. Rom 0 is usually BASIC and Rom 7 is AMSDOS */ -/* With the CPC hardware, if a expansion ROM is not connected, BASIC rom will be selected instead */ -static unsigned char *Amstrad_ROM_Table[256]; -/* data present on input of ppi, and data written to ppi output */ -#define amstrad_ppi_PortA 0 -#define amstrad_ppi_PortB 1 -#define amstrad_ppi_PortC 2 - -static int ppi_port_inputs[3]; -static int ppi_port_outputs[3]; - - -/* keyboard line 0-9 */ -static int amstrad_keyboard_line; - -static unsigned char previous_amstrad_UpperRom_data; -static unsigned char previous_printer_data_byte; -/*------------------ - - Ram Management - - ------------------*/ -/* current selected upper rom */ -static unsigned char *Amstrad_UpperRom; -/* There are 8 different ram configurations which work on the currently selected 64k logical block. - The following tables show the possible ram configurations :*/ -static int RamConfigurations[8 * 4] = -{ - 0, 1, 2, 3, /* config 0 */ - 0, 1, 2, 7, /* config 1 */ - 4, 5, 6, 7, /* config 2 */ - 0, 3, 2, 7, /* config 3 */ - 0, 4, 2, 3, /* config 4 */ - 0, 5, 2, 3, /* config 5 */ - 0, 6, 2, 3, /* config 6 */ - 0, 7, 2, 3 /* config 7 */ -}; -/*------------------- - - Gate Array data - - -------------------*/ -/* Pen selection */ -static int amstrad_GateArray_PenSelected = 0; -/* Rom configuration */ -static int amstrad_GateArray_ModeAndRomConfiguration = 0; -/* Ram configuration */ -static int amstrad_GateArray_RamConfiguration = 0; -/* The gate array counts CRTC HSYNC pulses. (It has a internal 6-bit counter). */ -extern int amstrad_CRTC_HS_Counter; -/*------------- - - MULTIFACE - - -------------*/ -static void multiface_rethink_memory(void); -static WRITE8_HANDLER(multiface_io_write); -static void multiface_init(void); -static void multiface_stop(void); -static int multiface_hardware_enabled(void); -static void multiface_reset(void); -/* --------------------------------------- - - 27.05.2004 - PSG function selection - - --------------------------------------- -The databus of the PSG is connected to PPI Port A. -Data is read from/written to the PSG through this port. - -The PSG function, defined by the BC1,BC2 and BDIR signals, is controlled by bit 7 and bit 6 of PPI Port C. - -PSG function selection: ------------------------ -Function - -BDIR = PPI Port C Bit 7 and BC1 = PPI Port C Bit 6 - -PPI Port C Bit | PSG Function -BDIR BC1 | -0 0 | Inactive -0 1 | Read from selected PSG register. When function is set, the PSG will make the register data available to PPI Port A -1 0 | Write to selected PSG register. When set, the PSG will take the data at PPI Port A and write it into the selected PSG register -1 1 | Select PSG register. When set, the PSG will take the data at PPI Port A and select a register -*/ -/* PSG function selected */ -static unsigned char amstrad_Psg_FunctionSelected; - -static void update_psg(void) -{ - switch (amstrad_Psg_FunctionSelected) { - case 0: {/* Inactive */ - } break; - case 1: {/* b6 = 1 ? : Read from selected PSG register and make the register data available to PPI Port A */ - ppi_port_inputs[amstrad_ppi_PortA] = AY8910_read_port_0_r(0); - } break; - case 2: {/* b7 = 1 ? : Write to selected PSG register and write data to PPI Port A */ - AY8910_write_port_0_w(0, ppi_port_outputs[amstrad_ppi_PortA]); - } break; - case 3: {/* b6 and b7 = 1 ? : The register will now be selected and the user can read from or write to it. The register will remain selected until another is chosen.*/ - AY8910_control_port_0_w(0, ppi_port_outputs[amstrad_ppi_PortA]); - prev_reg = ppi_port_outputs[amstrad_ppi_PortA]; - } break; - default: { - } break; - } -} - -/* Read/Write 8255 PPI port A (connected to AY-3-8912 databus) */ -static READ8_HANDLER ( amstrad_ppi_porta_r ) -{ - update_psg(); - return ppi_port_inputs[amstrad_ppi_PortA]; -} - -static WRITE8_HANDLER ( amstrad_ppi_porta_w ) -{ - ppi_port_outputs[amstrad_ppi_PortA] = data; - update_psg(); -} - -/* - Read PPI Port B - - ------------------- -Bit Description -7 Cassette read data -6 Parallel/Printer port ready signal ("1" = not ready, "0" = Ready) -5 /EXP signal on expansion port (note 6) -4 50/60hz (link on PCB. For this MESS driver I have used the dipswitch feature) (note 5) -3 | PCB links to define manufacturer name. For this MESS driver I have used the dipswitch feature. (note 1) (note 4) -2 | (note 2) -1 | (note 3) -0 VSYNC State from 6845. "1" = VSYNC active, "0" = VSYNC inactive - -Note: - -1 On CPC464,CPC664,CPC6128 and GX4000 this is LK3 on the PCB. On the CPC464+ and CPC6128+ this is LK103 on the PCB. On the KC compact this is "1". -2 On CPC464,CPC664,CPC6128 and GX4000 this is LK2 on the PCB. On the CPC464+ and CPC6128+ this is LK102 on the PCB. On the KC compact this is "0". -3 On CPC464,CPC664,CPC6128 and GX4000 this is LK1 on the PCB. On the CPC464+ and CPC6128+ this is LK101 on the PCB. On the KC compact this is /TEST signal from the expansion port. -4 On the CPC464,CPC664,CPC6128,CPC464+,CPC6128+ and GX4000 bits 3,2 and 1 define the manufacturer name. See below to see the options available. The manufacturer name is defined on the PCB and cannot be changed through software. -5 On the CPC464,CPC664,CPC6128,CPC464+,CPC6128+ and GX4000 bit 4 defines the Screen refresh frequency. "1" = 50Hz, "0" = 60Hz. This is defined on the PCB and cannot be changed with software. On the KC compact bit 4 is "1" -6 This bit is connected to /EXP signal on the expansion port. - On the KC Compact this bit is used to define bit 7 of the printer data. - On the CPC, it is possible to use this bit to define bit 7 of the printer data, so a 8-bit printer port is made, with a hardware modification, - On the CPC this can be used by a expansion device to report it's presence. "1" = device connected, "0" = device not connected. This is not always used by all expansion devices. -*/ - -static READ8_HANDLER (amstrad_ppi_portb_r) -{ - int data = 0; -/* Set b7 with cassette tape input */ - if (cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) > 0.03) { - data |= (1<<7); - } -/* Set b6 with Parallel/Printer port ready */ - if (printer_status(image_from_devtype_and_index(IO_PRINTER, 0), 0)==0 ) { - data |= (1<<6); - } -/* Set b4-b1 50hz/60hz state and manufacturer name defined by links on PCB */ - data |= (ppi_port_inputs[amstrad_ppi_PortB] & 0x1e); - -/* Set b0 with VSync state from the CRTC */ - data |= amstrad_CRTC_VS; // crtc6845_vertical_sync_r(0); - - return data; -} - -/* 26-May-2005 - PPI Port C - ----------------------- -Bit Description Usage -7 PSG BDIR | PSG function selection -6 PSG BC1 | -5 Cassette Write data -4 Cassette Motor Control set bit to "1" for motor on, or "0" for motor off -3 | Keyboard line Select keyboard line to be scanned (0-15) -2 | -1 | -0 |*/ - -/* previous_ppi_portc_w value */ -static int previous_ppi_portc_w; - -static WRITE8_HANDLER ( amstrad_ppi_portc_w ) -{ - int changed_data; - - previous_ppi_portc_w = ppi_port_outputs[amstrad_ppi_PortC]; -/* Write the data to Port C */ - changed_data = previous_ppi_portc_w^data; - - ppi_port_outputs[amstrad_ppi_PortC] = data; - -/* get b7 and b6 (PSG Function Selected */ - amstrad_Psg_FunctionSelected = ((data & 0xC0)>>6); - -/* Perform PSG function */ - update_psg(); - -/* b5 Cassette Write data */ - if ((changed_data & 0x20) != 0) { - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 0), - ((data & 0x20) ? -1.0 : +1.0)); - } - -/* b4 Cassette Motor Control */ - if ((changed_data & 0x10) != 0) { - cassette_change_state(image_from_devtype_and_index(IO_CASSETTE, 0), - ((data & 0x10) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED), - CASSETTE_MASK_MOTOR); - } - -/* b3-b0 Keyboard line Select keyboard line to be scanned */ - amstrad_keyboard_line = (data & 0x0F); -} - -/* ----------------------------- - - amstrad_ppi8255_interface - - -----------------------------*/ -static ppi8255_interface amstrad_ppi8255_interface = -{ - 1, /* number of PPIs to emulate */ - {amstrad_ppi_porta_r}, /* port A read */ - {amstrad_ppi_portb_r}, /* port B read */ - {NULL}, /* port C read */ - {amstrad_ppi_porta_w}, /* port A write */ - {NULL}, /* port B write */ - {amstrad_ppi_portc_w} /* port C write */ -}; - -/* Amstrad NEC765 interface doesn't use interrupts or DMA! */ -static nec765_interface amstrad_nec765_interface = -{ - NULL, - NULL -}; - - -/* pointers to current ram configuration selected for banks */ -static unsigned char *AmstradCPC_RamBanks[4]; - -/* pointer to RAM used for the CPC+ ASIC memory-mapped registers */ -unsigned char *amstrad_plus_asic_ram; - -/*-------------------------- - - Ram and Rom management - - --------------------------*/ -/*----------------- - - Set Lower Rom - - -----------------*/ -void amstrad_setLowerRom(void) -{ - unsigned char *BankBase; - int banknum; -/* b2 : "1" Lower rom area disable or "0" Lower rom area enable */ - if(amstrad_system_type == SYSTEM_CPC) - { - if ((amstrad_GateArray_ModeAndRomConfiguration & (1<<2)) == 0) { - BankBase = &memory_region(REGION_CPU1)[0x010000]; - } else { - BankBase = AmstradCPC_RamBanks[0]; - } - memory_set_bankptr(1, BankBase); - memory_set_bankptr(2, BankBase+0x02000); - } - else // CPC+/GX4000 - { - banknum = amstrad_plus_lower_addr; - - if(banknum == 3) - banknum = 0; - - if(AmstradCPC_RamBanks[0] != NULL) - { - memory_set_bankptr(1, AmstradCPC_RamBanks[0]); - memory_set_bankptr(2, AmstradCPC_RamBanks[0]+0x2000); - memory_set_bankptr(3, AmstradCPC_RamBanks[1]); - memory_set_bankptr(4, AmstradCPC_RamBanks[1]+0x2000); - memory_set_bankptr(5, AmstradCPC_RamBanks[2]); - memory_set_bankptr(6, AmstradCPC_RamBanks[2]+0x2000); - } - - if ((amstrad_GateArray_ModeAndRomConfiguration & (1<<2)) == 0) - amstrad_plus_lower_enabled = 1; - else - amstrad_plus_lower_enabled = 0; - - if(amstrad_plus_lower_enabled == 1) - { // ASIC secondary lower ROM selection (bit 5: 1 = enabled) -// logerror("L-ROM: Lower ROM enabled, cart bank %i\n",amstrad_plus_lower); - BankBase = &memory_region(REGION_CPU1)[0x4000 * amstrad_plus_lower]; - if(BankBase != NULL) - { - switch(amstrad_plus_lower_addr) - { - case 0: -// logerror("L-ROM: located at &0000\n"); - memory_set_bankptr(1, BankBase); - memory_set_bankptr(2, BankBase+0x02000); - break; - case 1: -// logerror("L-ROM: located at &4000\n"); - memory_set_bankptr(3, BankBase); - memory_set_bankptr(4, BankBase+0x02000); - break; - case 2: -// logerror("L-ROM: located at &8000\n"); - memory_set_bankptr(5, BankBase); - memory_set_bankptr(6, BankBase+0x02000); - break; - case 3: -// logerror("L-ROM: located at &0000, ASIC registers enabled\n"); - memory_set_bankptr(1, BankBase); - memory_set_bankptr(2, BankBase+0x02000); - break; - } - } - } - } -} -/*----------------- - - Set Upper Rom - - -----------------*/ -void amstrad_setUpperRom(void) -{ - unsigned char *BankBase; -/* b3 : "1" Upper rom area disable or "0" Upper rom area enable */ - if ((amstrad_GateArray_ModeAndRomConfiguration & (1<<3)) == 0) { - BankBase = Amstrad_UpperRom; - } else { - BankBase = AmstradCPC_RamBanks[3]; - } - - if (BankBase) - { - memory_set_bankptr(7, BankBase); - memory_set_bankptr(8, BankBase+0x2000); - } -} - -void AmstradCPC_SetLowerRom(int Data) -{ - if(amstrad_plus_asic_enabled != 0) - { - amstrad_plus_lower = Data & 0x07; // only lower 8 cart banks available for lower ROM - amstrad_plus_lower_addr = (Data & 0x18) >> 3; // address of lower ROM area - if(amstrad_plus_lower_addr == 3) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, amstrad_plus_asic_4000_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, amstrad_plus_asic_6000_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, amstrad_plus_asic_4000_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, amstrad_plus_asic_6000_w); - amstrad_plus_asic_regpage = 1; // enable ASIC registers - } - else - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MRA8_BANK3); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MRA8_BANK4); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MWA8_BANK11); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MWA8_BANK12); - amstrad_plus_asic_regpage = 0; // disable ASIC registers - } -// logerror("SYS: Secondary ROM select (lower ROM) - data = %02x - cart bank %i, addr %i\n",Data,amstrad_plus_lower,amstrad_plus_lower_addr); - } - else - { // secondary ROM register not available if ASIC is locked - amstrad_plus_lower = 0; - amstrad_plus_lower_addr = 0; - } -// amstrad_setLowerRom(); -} - -void AmstradCPC_SetUpperRom(int Data) -{ - Amstrad_UpperRom = Amstrad_ROM_Table[Data & 0xFF]; -// logerror("H-ROM: set to ROM bank %i\n",Data); - amstrad_setUpperRom(); -} - -/* ASIC RAM */ -/* - ASIC RAM Layout. Always is mapped to &4000-&7fff - - Hardware sprites: 16 sprites, 16x16, basic zooming, 15 colour (12-bit palette) - Pixel data is 0 - 15 for sprite pen number, low 4 bits - &4000 - &400f Pixel data for first line of first sprite - &4010 - &401f Pixel data for second line of first sprite - ... ... - &40f0 - &40ff Pixel data for last (16th) line of first sprite - ... ... - &4100 - &41ff Pixel data for second sprite - &4200 - &42ff Third sprite - ... ... - &4f00 - &4fff Pixel data for last (16th) sprite - - &6000 - &607f Sprite properties (8 bytes each) - +0 Sprite X position LSB - +1 Sprite X position MSB - +2 Sprite Y position LSB (scanline) - +3 Sprite Y position MSB - +4 Sprite zoom - bits 3,2 X magnification, bits 1,0 Y magnification - Magnification: 00 = not displayed, 01 = x1, 10 = x2, 11 = x4 - - Palette: LSB first, presumably GGGGBBBBxxxxRRRR - &6400 - &641f Pen palette (12bpp, 2 bytes each, 16 total) - &6420 - &6421 Border palette (12bpp, 2 bytes) - &6422 - &643f Hardware sprite palette (12bpp, 2 bytes each, 15 total) - - Programmable Raster Interrupt: - &6800 Scanline for IRQ to be triggered after - If 0, raster interrupts and DMA interrupts occur - Otherwise, the PRI interrupt is triggered only - - Hardware split screen: - &6801 Scanline for split to occur at - &6802 LSB of screen address for split (like reg 12 of the 6845) - &6803 MSB of the above (like reg 13 of the 6845) - - Soft Scroll Control Register: - &6804 bits 3-0 - horizontal delay in mode 2 pixels (shifts display to the right) - bits 6-4 - added to the 3 LSBs for the scanline address (shifts display up) - bit 7 - extends the border by two bytes (16 mode 2 pixels), masking the bad data from the horizontal scroll - - Analogue paddle ports: - &6808 - &680f Analogue input, read-only, 6 bit - - PSG DMA channels: - &6c00 DMA channel 0 address LSB - &6c01 DMA channel 0 address MSB - &6c02 DMA channel 0 prescaler - &6c03 unused - &6c04-7 DMA channel 1 - &6c08-b DMA channel 2 - &6c0f Control and Status register - bit 7 - raster interrupt - bit 6 - DMA channel 0 interrupt - bit 5 - DMA channel 1 interrupt - bit 4 - DMA channel 2 interrupt - bit 3 - unused (write 0) - bit 2 - DMA channel 2 enable - bit 1 - DMA channel 1 enable - bit 0 - DMA channel 0 enable - - */ - -static WRITE8_HANDLER( amstrad_plus_asic_4000_w ) -{ - if(amstrad_plus_asic_regpage != 0) - { -// logerror("ASIC: Write to register at &%04x\n",offset+0x4000); - amstrad_plus_asic_ram[offset] = data; - } - else - { - *(AmstradCPC_RamBanks[1]+offset) = data; - } -} - -static WRITE8_HANDLER( amstrad_plus_asic_6000_w ) -{ - if(amstrad_plus_asic_regpage != 0) - { - amstrad_plus_asic_ram[offset+0x2000] = data; - if(offset >= 0x0422 && offset < 0x440) // ASIC sprite palette - { - int r,g,b; - - if((offset & 0x01) == 0) - { - g = (amstrad_plus_asic_ram[offset+0x2001] & 0x0f) << 4; - r = (amstrad_plus_asic_ram[offset+0x2000] & 0xf0); - b = (amstrad_plus_asic_ram[offset+0x2000] & 0x0f) << 4; - } - else - { - g = (amstrad_plus_asic_ram[offset+0x2000] & 0x0f) << 4; - r = (amstrad_plus_asic_ram[offset+0x1fff] & 0xf0); - b = (amstrad_plus_asic_ram[offset+0x1fff] & 0x0f) << 4; - offset--; - } - amstrad_plus_setspritecolour((offset - 0x422), r, g, b); - } - if(offset == 0x0800) // Programmable raster interrupt - { -// logerror("ASIC: Wrote %02x to PRI\n",data); - amstrad_plus_pri = data; - } - if(offset >= 0x0801 && offset <= 0x0803) // Split screen registers - { - int addr; - addr = amstrad_plus_asic_ram[0x2803] + (amstrad_plus_asic_ram[0x2802] << 8); // high byte first this time - amstrad_plus_setsplitline(amstrad_plus_asic_ram[0x2801],addr); - logerror("ASIC: Split screen at line %i, address &%04x\n",amstrad_plus_asic_ram[0x2801],addr); - } - if(offset == 0x0804) // Soft scroll register - { - amstrad_plus_scroll_border = data & 0x80; // border extend - covers garbage on the left when soft scrolling is used - amstrad_plus_scroll_x = data & 0x0f; // low 4 bits - amstrad_plus_scroll_y = (data & 0x70) >> 4; // next 3 bits - } - if(offset == 0x0805) // Interrupt vector register (for IM 2, used by Pang) - { - // high 5 bits go to interrupt vector - int vector; - - if(amstrad_plus_asic_enabled != 0) - { - vector = (data & 0xf8) + (amstrad_plus_irq_cause); - cpunum_set_input_line_vector(0, 0, vector); - logerror("ASIC: IM 2 vector write %02x, data = &%02x\n",vector,data); - } - amstrad_plus_dma_clear = data & 0x01; - } - // DMA channels - switch(offset) - { - case 0x0c00: - case 0x0c01: - amstrad_plus_dma_0_addr = (amstrad_plus_asic_ram[0x2c01] << 8) + amstrad_plus_asic_ram[0x2c00]; - amstrad_plus_dma_status &= ~0x01; - logerror("ASIC: DMA 0 address set to &%04x\n",amstrad_plus_dma_0_addr); - break; - case 0x0c04: - case 0x0c05: - amstrad_plus_dma_1_addr = (amstrad_plus_asic_ram[0x2c05] << 8) + amstrad_plus_asic_ram[0x2c04]; - amstrad_plus_dma_status &= ~0x02; - logerror("ASIC: DMA 1 address set to &%04x\n",amstrad_plus_dma_1_addr); - break; - case 0x0c08: - case 0x0c09: - amstrad_plus_dma_2_addr = (amstrad_plus_asic_ram[0x2c09] << 8) + amstrad_plus_asic_ram[0x2c08]; - amstrad_plus_dma_status &= ~0x04; - logerror("ASIC: DMA 2 address set to &%04x\n",amstrad_plus_dma_2_addr); - break; - case 0x0c02: - amstrad_plus_dma_prescaler[0] = data + 1; - logerror("ASIC: DMA 0 pause prescaler set to %i\n",data); - break; - case 0x0c06: - amstrad_plus_dma_prescaler[1] = data + 1; - logerror("ASIC: DMA 1 pause prescaler set to %i\n",data); - break; - case 0x0c0a: - amstrad_plus_dma_prescaler[2] = data + 1; - logerror("ASIC: DMA 2 pause prescaler set to %i\n",data); - break; - case 0x0c0f: - amstrad_plus_dma_status = data; - logerror("ASIC: DMA status write - %02x\n",data); - if(data & 0x40) - { - logerror("ASIC: DMA 0 IRQ acknowledge\n"); - cpunum_set_input_line(0,0,CLEAR_LINE); - amstrad_plus_irq_cause = 0x06; - amstrad_plus_asic_ram[0x2c0f] &= ~0x40; - } - if(data & 0x20) - { - logerror("ASIC: DMA 1 IRQ acknowledge\n"); - cpunum_set_input_line(0,0,CLEAR_LINE); - amstrad_plus_irq_cause = 0x06; - amstrad_plus_asic_ram[0x2c0f] &= ~0x20; - } - if(data & 0x10) - { - logerror("ASIC: DMA 2 IRQ acknowledge\n"); - cpunum_set_input_line(0,0,CLEAR_LINE); - amstrad_plus_irq_cause = 0x06; - amstrad_plus_asic_ram[0x2c0f] &= ~0x10; - } - break; - } - } - else - { - *(AmstradCPC_RamBanks[1]+offset+0x2000) = data; - } -} - -static READ8_HANDLER( amstrad_plus_asic_4000_r ) -{ -// logerror("RAM: read from &%04x, ASIC page = %i\n",offset+0x4000,amstrad_plus_asic_regpage); - if(amstrad_plus_asic_regpage != 0) - { - return amstrad_plus_asic_ram[offset]; - } - return *(AmstradCPC_RamBanks[1]+offset); -} - -static READ8_HANDLER( amstrad_plus_asic_6000_r ) -{ -// logerror("RAM: read from &%04x, ASIC page = %i\n",offset+0x6000,amstrad_plus_asic_regpage); - if(amstrad_plus_asic_regpage != 0) - { - // Analogue ports - if(offset == 0x0808) - { - return (readinputportbytag("analog1") & 0x3f); - } - if(offset == 0x0809) - { - return (readinputportbytag("analog2") & 0x3f); - } - if(offset == 0x080a) - { - return (readinputportbytag("analog3") & 0x3f); - } - if(offset == 0x080b) - { - return (readinputportbytag("analog4") & 0x3f); - } - if(offset == 0x080c || offset == 0x080e) - { - return 0x3f; - } - if(offset == 0x080d || offset == 0x080f) - { - return 0x00; - } -/* if(offset == 0x0c0f) // DMA status and control - { - int result = 0; - if(amstrad_plus_irq_cause == 0x00) - result |= 0x40; - if(amstrad_plus_irq_cause == 0x02) - result |= 0x20; - if(amstrad_plus_irq_cause == 0x04) - result |= 0x10; - if(amstrad_plus_irq_cause == 0x06) - result |= 0x80; - return result; - } -*/ - return amstrad_plus_asic_ram[offset+0x2000]; - } - - return *(AmstradCPC_RamBanks[1]+offset+0x2000); -} - -/*------------------ - - Rethink Memory - - ------------------*/ -void amstrad_rethinkMemory(void) -{ - /* the following is used for banked memory read/writes and for setting up - * opcode and opcode argument reads */ -/* bank 0 - 0x0000..0x03fff */ - amstrad_setLowerRom(); -/* bank 1 - 0x04000..0x07fff */ - if(amstrad_system_type == SYSTEM_CPC || amstrad_plus_asic_enabled == 0) - { - memory_set_bankptr(3, AmstradCPC_RamBanks[1]); - memory_set_bankptr(4, AmstradCPC_RamBanks[1]+0x2000); -/* bank 2 - 0x08000..0x0bfff */ - memory_set_bankptr(5, AmstradCPC_RamBanks[2]); - memory_set_bankptr(6, AmstradCPC_RamBanks[2]+0x2000); - } - else - amstrad_setLowerRom(); -/* bank 3 - 0x0c000..0x0ffff */ - amstrad_setUpperRom(); -/* other banks */ - memory_set_bankptr(9, AmstradCPC_RamBanks[0]); - memory_set_bankptr(10, AmstradCPC_RamBanks[0]+0x2000); - memory_set_bankptr(11, AmstradCPC_RamBanks[1]); - memory_set_bankptr(12, AmstradCPC_RamBanks[1]+0x2000); - memory_set_bankptr(13, AmstradCPC_RamBanks[2]); - memory_set_bankptr(14, AmstradCPC_RamBanks[2]+0x2000); - memory_set_bankptr(15, AmstradCPC_RamBanks[3]); - memory_set_bankptr(16, AmstradCPC_RamBanks[3]+0x2000); - -/* multiface hardware enabled? */ - if (multiface_hardware_enabled()) { - multiface_rethink_memory(); - } -} -/* simplified ram configuration - e.g. only correct for 128k machines - -RAM Expansion Bits - 7 6 5 4 3 2 1 0 -CPC6128 1 1 - - - s2 s1 s0 -Dk'tronics 256K Silicon Disk 1 1 1 b1 b0 b2 - - - -"-" - this bit is ignored. The value of this bit is not important. -"0" - this bit must be set to "0" -"1" - this bit must be set to "1" -"b0,b1,b2" - this bit is used to define the logical 64k block that the ram configuration uses -"s0,s1,s2" - this bit is used to define the ram configuration - -The CPC6128 has a 64k ram expansion built-in, giving 128K of RAM in this system. -In the CPC464,CPC664 and KC compact if a ram expansion is not present, then writing to this port has no effect and the ram will be in the same arrangement as if configuration 0 had been selected. -*/ -static void AmstradCPC_GA_SetRamConfiguration(void) -{ - int ConfigurationIndex = amstrad_GateArray_RamConfiguration & 0x07; - int BankIndex,i; - unsigned char *BankAddr; -/* if b5 = 0 */ - if(((amstrad_GateArray_RamConfiguration) & (1<<5)) == 0) { - for (i=0;i<4;i++) { - BankIndex = RamConfigurations[(ConfigurationIndex << 2) + i]; - BankAddr = mess_ram + (BankIndex << 14); - AmstradCPC_RamBanks[i] = BankAddr; - } - } else {/* Need to add the ram expansion configuration here ! */ - } - amstrad_rethinkMemory(); -} -/* ------------------- - - the Gate Array - - ------------------- -The gate array is controlled by I/O. The recommended I/O port address is &7Fxx. -The gate array is selected when bit 15 of the I/O port address is set to "0" and bit 14 of the I/O port address is set to "1". -The values of the other bits are ignored. -However, to avoid conflict with other devices in the system, these bits should be set to "1". - -The function to be performed is selected by writing data to the Gate-Array, bit 7 and 6 of the data define the function selected (see table below). -It is not possible to read from the Gate-Array. - -Bit 7 Bit 6 Function -0 0 Select pen -0 1 Select colour for selected pen -1 0 Select screen mode, rom configuration and interrupt control -1 1 Ram Memory Management (note 1) - -Note 1 : This function is not available in the Gate-Array, but is performed by a device at the same I/O port address location. In the CPC464,CPC664 and KC compact, this function is performed in a memory-expansion (e.g. Dk'Tronics 64K Ram Expansion), if this expansion is not present then the function is not available. In the CPC6128, this function is performed by a PAL located on the main PCB, or a memory-expansion. In the 464+ and 6128+ this function is performed by the ASIC or a memory expansion. Please read the document on Ram Management for more information.*/ - -void amstrad_GateArray_write(int dataToGateArray) -{ -/* Get Bit 7 and 6 of the dataToGateArray = Gate Array function selected */ - switch ((dataToGateArray & 0xc0)>>6) { -/* Pen selection - ------------- -Bit Value Function Bit Value Function -5 x not used 5 x not used -4 1 Select border 4 0 Select pen -3 x | ignored 3 x | Pen Number -2 x | 2 x | -1 x | 1 x | -0 x | 0 x | -*/ - case 0x00: { -/* Select Border Number, get b4 */ - amstrad_GateArray_PenSelected = dataToGateArray & (1<<4); -/* if b4 = 0 : Select Pen Number, get b3-b0 */ - if (amstrad_GateArray_PenSelected == 0) { - amstrad_GateArray_PenSelected = dataToGateArray & 0x0F; - } - } break; -/* Colour selection - ---------------- -Even though there is provision for 32 colours, only 27 are possible. -The remaining colours are duplicates of those already in the colour palette. - -Bit Value Function -5 x not used -4 x | Colour number -3 x | -2 x | -1 x | -0 x |*/ - case 0x01: { -#ifdef AMSTRAD_VIDEO_EVENT_LIST - EventList_AddItemOffset((EVENT_LIST_CODE_GA_COLOUR<<6) | PenIndex, AmstradCPC_PenColours[PenIndex], TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod())); -#else - amstrad_vh_update_colour(amstrad_GateArray_PenSelected, (dataToGateArray & 0x1F)); -#endif - } break; -/* Select screen mode and rom configuration - ---------------------------------------- -Bit Value Function -5 x not used -4 x Interrupt generation control -3 1 Upper rom area disable or 0 Upper rom area enable -2 1 Lower rom area disable or 0 Lower rom area enable -1 x | Mode selection -0 x | - -Screen mode selection : The settings for bits 1 and 0 and the corresponding screen mode are given in the table below. ------------------------ -b1 b0 Screen mode -0 0 Mode 0, 160x200 resolution, 16 colours -0 1 Mode 1, 320x200 resolution, 4 colours -1 0 Mode 2, 640x200 resolution, 2 colours -1 1 Mode 3, 160x200 resolution, 4 colours (note 1) - -This mode is not official. From the combinations possible, we can see that 4 modes can be defined, although the Amstrad only has 3. Mode 3 is similar to mode 0, because it has the same resolution, but it is limited to only 4 colours. -Mode changing is synchronised with HSYNC. If the mode is changed, it will take effect from the next HSYNC. - -Rom configuration selection : ------------------------------ -Bit 2 is used to enable or disable the lower rom area. The lower rom area occupies memory addressess &0000-&3fff and is used to access the operating system rom. When the lower rom area is is enabled, reading from &0000-&3FFF will return data in the rom. When a value is written to &0000-&3FFF, it will be written to the ram underneath the rom. When it is disabled, data read from &0000-&3FFF will return the data in the ram. -Similarly, bit 3 controls enabling or disabling of the upper rom area. The upper rom area occupies memory addressess &C000-&FFFF and is BASIC or any expansion roms which may be plugged into a rom board/box. See the document on upper rom selection for more details. When the upper rom area enabled, reading from &c000-&ffff, will return data in the rom. When data is written to &c000-&FFFF, it will be written to the ram at the same address as the rom. When the upper rom area is disabled, and data is read from &c000-&ffff the data returned will be the data in the ram. - -Bit 4 controls the interrupt generation. It can be used to delay interrupts.*/ - case 0x02: { - int Previous_GateArray_ModeAndRomConfiguration = amstrad_GateArray_ModeAndRomConfiguration; - /* If bit 5 is enabled on a CPC Plus/GX4000 when the ASIC is unlocked, sets the lower ROM position and cart bank - b5 = 1, b4b3 = RAM position for lower ROM area and if the ASIC registers are visible at &4000, - b2b1b0 = cartridge bank to read from lower ROM area (0-7 only) */ - if(amstrad_system_type == SYSTEM_PLUS && amstrad_plus_asic_enabled != 0) - { - if((dataToGateArray & 0x20) != 0) - { - AmstradCPC_SetLowerRom(dataToGateArray); - break; - } - else - { - Previous_GateArray_ModeAndRomConfiguration = amstrad_GateArray_ModeAndRomConfiguration; - amstrad_GateArray_ModeAndRomConfiguration = dataToGateArray; - } - } - else - { - Previous_GateArray_ModeAndRomConfiguration = amstrad_GateArray_ModeAndRomConfiguration; - amstrad_GateArray_ModeAndRomConfiguration = dataToGateArray; - } - -/* If bit 4 of the "Select screen mode and rom configuration" register of the Gate-Array is set to "1" - then the interrupt request is cleared and the 6-bit counter is reset to "0". */ - if ((amstrad_GateArray_ModeAndRomConfiguration & (1<<4)) != 0) { - amstrad_CRTC_HS_Counter = 0; - cpunum_set_input_line(0,0, CLEAR_LINE); - - } -/* b3b2 != 0 then change the state of upper or lower rom area and rethink memory */ - if (((amstrad_GateArray_ModeAndRomConfiguration & 0x0C)^(Previous_GateArray_ModeAndRomConfiguration & 0x0C)) != 0) { - amstrad_setLowerRom(); - amstrad_setUpperRom(); - } -/* b1b0 mode change? */ - if (((amstrad_GateArray_ModeAndRomConfiguration & 0x03)^(Previous_GateArray_ModeAndRomConfiguration & 0x03)) != 0) { -#ifdef AMSTRAD_VIDEO_EVENT_LIST - EventList_AddItemOffset((EVENT_LIST_CODE_GA_MODE<<6) , amstrad_GateArray_ModeAndRomConfiguration & 0x03, TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod())); -#else - amstrad_vh_update_mode(amstrad_GateArray_ModeAndRomConfiguration & 0x03); -#endif - } - } break; -/* Ram Memory Management - --------------------- -This function is not available in the Gate-Array, but is performed by a device at the same I/O port address location. -In the CPC464,CPC664 and KC compact, this function is performed in a memory-expansion (e.g. Dk'Tronics 64K Ram Expansion), if this expansion is not present then the function is not available. -In the CPC6128, this function is performed by a PAL located on the main PCB, or a memory-expansion. -In the 464+ and 6128+ this function is performed by the ASIC or a memory expansion. -*/ - case 0x03: { - amstrad_GateArray_RamConfiguration = dataToGateArray; - } break; - - default: { - } break; - } -} - -/* used for loading snapshot only ! */ -void AmstradCPC_PALWrite(int data) -{ - if ((data & 0x0c0)==0x0c0) { - amstrad_GateArray_RamConfiguration = data; - AmstradCPC_GA_SetRamConfiguration(); - } -} - -/* CRTC Differences - ---------------- -The following tables list the functions that can be accessed for each type: - -Type 0 -b1 b0 Function Read/Write -0 0 Select internal 6845 register Write Only -0 1 Write to selected internal 6845 register Write Only -1 0 - - -1 1 Read from selected internal 6845 register Read only - -Type 1 -b1 b0 Function Read/Write -0 0 Select internal 6845 register Write Only -0 1 Write to selected internal 6845 register Write Only -1 0 Read Status Register Read Only -1 1 Read from selected internal 6845 register Read only - -Type 2 -b1 b0 Function Read/Write -0 0 Select internal 6845 register Write Only -0 1 Write to selected internal 6845 register Write Only -1 0 - - -1 1 Read from selected internal 6845 register Read only - -Type 3 and 4 -b1 b0 Function Read/Write -0 0 Select internal 6845 register Write Only -0 1 Write to selected internal 6845 register Write Only -1 0 Read from selected internal 6845 register Read Only -1 1 Read from selected internal 6845 register Read only -*/ - -/* I/O port allocation - ------------------- - -Many thanks to Mark Rison for providing the original information. Thankyou to Richard Wilson for his discoveries concerning RAM management I/O decoding. - -This document will explain the decoding of the I/O ports. The port address is not decoded fully which means a hardware device can be accessed through more than one address, in addition, using some addressess can access more than one element of the hardware at the same time. The CPC IN/OUT design differs from the norm in that port numbers are defined using 16 bits, as opposed to the traditional 8 bits. - -IN r,(C)/OUT (C),r instructions: Bits b15-b8 come from the B register, bits b7-b0 come from "r" -IN A,(n)/OUT (n),A instructions: Bits b15-b8 come from the A register, bits b7-b0 come from "n" -Listed below are the internal hardware devices and the bit fields to which they respond. In the table: - -"-" means this bit is ignored, -"0" means the bit must be set to "0" for the hardware device to respond, -"1" means the bit must be set to "1" for the hardware device to respond. -"r1" and "r0" mean a bit used to define a register - -Hardware device Read/Write Port bits - b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 -Gate-Array Write Only 0 1 - - - - - - - - - - - - - - -RAM Configuration Write Only 0 - - - - - - - - - - - - - - - -CRTC Read/Write - 0 - - - - r1 r0 - - - - - - - - -ROM select Write only - - 0 - - - - - - - - - - - - - -Printer port Write only - - - 0 - - - - - - - - - - - - -8255 PPI Read/Write - - - - 0 - r1 r0 - - - - - - - - -Expansion Peripherals Read/Write - - - - - 0 - - - - - - - - - - - -*/ - -static READ8_HANDLER ( AmstradCPC_ReadPortHandler ) -{ - unsigned char data = 0xFF; - unsigned int r1r0 = (unsigned int)((offset & 0x0300) >> 8); - m6845_personality_t crtc_type; - - crtc_type = readinputportbytag_safe("crtc", 0); - crtc6845_set_personality(crtc_type); - - /* if b14 = 0 : CRTC Read selected */ - if ((offset & (1<<14)) == 0) - { - switch(r1r0) { - case 0x02: - /* CRTC Type 1 : Read Status Register - CRTC Type 3 or 4 : Read from selected internal 6845 register */ - switch(crtc_type) { - case M6845_PERSONALITY_UM6845R: - data = amstrad_CRTC_CR; /* Read Status Register */ - break; - case M6845_PERSONALITY_AMS40489: - case M6845_PERSONALITY_PREASIC: - data = crtc6845_register_r(0); - break; - default: - break; - } - break; - case 0x03: - /* All CRTC type : Read from selected internal 6845 register Read only */ - data = crtc6845_register_r(0); - break; - } - } - -/* if b11 = 0 : 8255 PPI Read selected - bits 9 and 8 then define the PPI function access as shown below: - -b9 b8 | PPI Function Read/Write status -0 0 | Port A data Read/Write -0 1 | Port B data Read/Write -1 0 | Port C data Read/Write -1 1 | Control Write Only -*/ - if ((offset & (1<<11)) == 0) - { - if (r1r0 < 0x03 ) - data = ppi8255_r(0, r1r0); - } -/* if b10 = 0 : Expansion Peripherals Read selected - -bits b7-b5 are used to select an expansion peripheral. Again, this is done by resetting the peripheral's bit: -Bit | Device -b7 | FDC -b6 | Reserved (was it ever used?) -b5 | Serial port - -In the case of the FDC, bits b8 and b0 are used to select the specific mode of operation; all the other bits (b9,b4-b1) are ignored: -b8 b0 Function Read/Write state -0 0 FDD motor control Write Only -0 1 not used N/A -1 0 Main Status register of FDC (MSR) Read Only -1 1 Data register of FDC Read/Write - -If b10 is reset but none of b7-b5 are reset, user expansion peripherals are selected. -The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which causes the expansion peripherals to reset. - */ - if ((offset & (1<<10)) == 0) { - if ((offset & (1<<10)) == 0) { - int b8b0 = ((offset & (1<<8)) >> (8 - 1)) | (offset & (0x01)); - switch (b8b0) { - case 0x02: { - data = nec765_status_r(0); - } break; - case 0x03: { - data = nec765_data_r(0); - } break; - default: { - } break; - } - } - } - return data; -} - -/* Offset handler for write */ -static WRITE8_HANDLER ( AmstradCPC_WritePortHandler ) -{ - if ((offset & (1<<15)) == 0) { -/* if b15 = 0 and b14 = 1 : Gate-Array Write Selected*/ - if ((offset & (1<<14)) != 0) { - amstrad_GateArray_write(data); - } -/* if b15 = 0 : RAM Configuration Write Selected*/ - AmstradCPC_GA_SetRamConfiguration(); - } -/*The Gate-Array and CRTC can't be selected simultaneously, which would otherwise cause potential display corruption.*/ -/* if b14 = 0 : CRTC Write Selected*/ - if ((offset & (1<<14)) == 0) { - switch ((offset & 0x0300) >> 8) { // r1r0 - case 0x00: {/* Select internal 6845 register Write Only */ -#ifdef AMSTRAD_VIDEO_EVENT_LIST - EventList_AddItemOffset((EVENT_LIST_CODE_CRTC_INDEX_WRITE<<6), data, TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod())); -#endif - crtc6845_address_w(0,data); - if(amstrad_system_type == SYSTEM_PLUS) - amstrad_plus_seqcheck(data); -// selected_crtc6845_address = (data & 0x1F); - } break; - case 0x01: {/* Write to selected internal 6845 register Write Only */ -#ifdef AMSTRAD_VIDEO_EVENT_LIST - EventList_AddItemOffset((EVENT_LIST_CODE_CRTC_WRITE<<6), data, TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod())); -#endif -// logerror("crtc6845 register (%02d : %04x)\n", selected_crtc6845_address, (data&0x3F)); - crtc6845_register_w(0,data); - } break; - default: { - } break; - } - } -/* ROM select before GateArrayWrite ?*/ -/* b13 = 0 : ROM select Write Selected*/ - if ((offset & (1<<13)) == 0) - { - if (previous_amstrad_UpperRom_data != (data & 0xff)) - { - AmstradCPC_SetUpperRom(data); - } - previous_amstrad_UpperRom_data = (data & 0xff); - } -/* b12 = 0 : Printer port Write Selected*/ - if ((offset & (1<<12)) == 0) { - /* on CPC, write to printer through LS chip */ - /* the amstrad is crippled with a 7-bit port :( */ - /* bit 7 of the data is the printer /strobe */ - - /* strobe state changed? */ - if (((previous_printer_data_byte^data) & (1<<7)) !=0 ) { - /* check for only one transition */ - if ((data & (1<<7)) == 0) { - /* output data to printer */ - printer_output(image_from_devtype_and_index(IO_PRINTER, 0), data & 0x07f); - } - } - previous_printer_data_byte = data; - } -/* if b11 = 0 : 8255 PPI Write selected - bits 9 and 8 then define the PPI function access as shown below: -b9 b8 | PPI Function Read/Write status -0 0 | Port A data Read/Write -0 1 | Port B data Read/Write -1 0 | Port C data Read/Write -1 1 | Control Write Only -*/ - if ((offset & (1<<11)) == 0) { - unsigned int Index = ((offset & 0x0300) >> 8); - ppi8255_w(0, Index, data); - } -/* if b10 = 0 : Expansion Peripherals Write selected */ - if ((offset & (1<<10)) == 0) { -/* bits b7-b5 are used to select an expansion peripheral. This is done by resetting the peripheral's bit: -Bit | Device -b7 | FDC -b6 | Reserved (was it ever used?) -b5 | Serial port - -In the case of the FDC, bits b8 and b0 are used to select the specific mode of operation; -all the other bits (b9,b4-b1) are ignored: -b8 b0 Function Read/Write state -0 0 FDD motor control Write Only -0 1 not used N/A -1 0 Main Status register of FDC (MSR) Read Only -1 1 Data register of FDC Read/Write - -If b10 is reset but none of b7-b5 are reset, user expansion peripherals are selected. -The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which causes the expansion peripherals to reset. -*/ - if ((offset & (1<<7)) == 0) { - unsigned int b8b0 = ((offset & 0x0100) >> (8 - 1)) | (offset & 0x01); - - switch (b8b0) { - case 0x00: - /* FDC Motor Control - Bit 0 defines the state of the FDD motor: - * "1" the FDD motor will be active. - * "0" the FDD motor will be in-active.*/ - floppy_drive_set_motor_state(image_from_devtype_and_index(IO_FLOPPY, 0), (data & 0x01)); - floppy_drive_set_motor_state(image_from_devtype_and_index(IO_FLOPPY, 1), (data & 0x01)); - floppy_drive_set_ready_state(image_from_devtype_and_index(IO_FLOPPY, 0), 1,1); - floppy_drive_set_ready_state(image_from_devtype_and_index(IO_FLOPPY, 1), 1,1); - break; - - case 0x03: /* Write Data register of FDC */ - nec765_data_w(0,data); - break; - default: - break; - } - } - } - multiface_io_write(offset,data); -} - -// Handler for checking the ASIC unlocking sequence -void amstrad_plus_seqcheck(int data) -{ - static int prev_data; - - if(data == 0 && prev_data != 0) - { - amstrad_plus_asic_seqptr = 0; // non-zero value followed by zero will sync the locking mechanism - } - if(data == asic_unlock_seq[amstrad_plus_asic_seqptr]) - { - amstrad_plus_asic_seqptr++; - if(amstrad_plus_asic_seqptr == 14 && amstrad_plus_asic_enabled != 0) - { - logerror("SYS: ASIC locked\n"); - amstrad_plus_asic_enabled = 0; - } - if(amstrad_plus_asic_seqptr >= 15) // end of sequence - { - logerror("SYS: ASIC unlocked\n"); - amstrad_plus_asic_enabled = 1; - } - } - prev_data = data; -} - -/****************************************************************************************** - Multiface emulation - ****************************************************************************************/ - -static unsigned char *multiface_ram; -static unsigned long multiface_flags; - -/* stop button has been pressed */ -#define MULTIFACE_STOP_BUTTON_PRESSED 0x0001 -/* ram/rom is paged into memory space */ -#define MULTIFACE_RAM_ROM_ENABLED 0x0002 -/* when visible OUT commands are performed! */ -#define MULTIFACE_VISIBLE 0x0004 - -/* multiface traps calls to 0x0065 when it is active. -This address has a RET and so executes no code. - -It is believed that it is used to make multiface invisible to programs */ - -/*#define MULTIFACE_0065_TOGGLE 0x0008*/ - - -/* used to setup computer if a snapshot was specified */ -static OPBASE_HANDLER( amstrad_multiface_opbaseoverride ) -{ - int pc; - - pc = activecpu_get_pc(); - - /* there are two places where CALL &0065 can be found - in the multiface rom. At this address there is a RET. - - To disable the multiface from being detected, the multiface - stop button must be pressed, then the program that was stopped - must be returned to. When this is done, the multiface cannot - be detected and the out operations to page the multiface - ram/rom into the address space will not work! */ - - /* I assume that the hardware in the multiface detects - the PC set to 0x065 and uses this to enable/disable the multiface - */ - - /* I also use this to allow the stop button to be pressed again */ - if (pc==0x0164) - { - /* first call? */ - multiface_flags |= MULTIFACE_VISIBLE; - } - else if (pc==0x0c98) - { - /* second call */ - - /* no longer visible */ - multiface_flags &= ~(MULTIFACE_VISIBLE|MULTIFACE_STOP_BUTTON_PRESSED); - - /* clear op base override */ - memory_set_opbase_handler(0,0); - } - - return pc; -} - -void multiface_init(void) -{ - /* after a reset the multiface is visible */ - multiface_flags = MULTIFACE_VISIBLE; - - /* allocate ram */ - multiface_ram = (unsigned char *)auto_malloc(8192); -} - -/* call when a system reset is done */ -void multiface_reset(void) -{ - /* stop button not pressed and ram/rom disabled */ - multiface_flags &= ~(MULTIFACE_STOP_BUTTON_PRESSED | - MULTIFACE_RAM_ROM_ENABLED); - /* as on the real hardware the multiface is visible after a reset! */ - multiface_flags |= MULTIFACE_VISIBLE; -} - -int multiface_hardware_enabled(void) -{ - if (multiface_ram!=NULL) - { - if ((readinputportbytag("multiface") & 0x01)!=0) - { - return 1; - } - } - - return 0; -} - -/* simulate the stop button has been pressed */ -void multiface_stop(void) -{ - /* multiface hardware enabled? */ - if (!multiface_hardware_enabled()) - return; - - /* if stop button not already pressed, do press action */ - /* pressing stop button while multiface is running has no effect */ - if ((multiface_flags & MULTIFACE_STOP_BUTTON_PRESSED)==0) - { - /* initialise 0065 toggle */ - /*multiface_flags &= ~MULTIFACE_0065_TOGGLE;*/ - - multiface_flags |= MULTIFACE_RAM_ROM_ENABLED; - - /* stop button has been pressed, furthur pressess will not issue a NMI */ - multiface_flags |= MULTIFACE_STOP_BUTTON_PRESSED; - - amstrad_GateArray_ModeAndRomConfiguration &=~0x04; - - /* page rom into memory */ - multiface_rethink_memory(); - - /* pulse the nmi line */ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - - /* initialise 0065 override to monitor calls to 0065 */ - memory_set_opbase_handler(0,amstrad_multiface_opbaseoverride); - } - -} - -static void multiface_rethink_memory(void) -{ - unsigned char *multiface_rom; - - /* multiface hardware enabled? */ - if (!multiface_hardware_enabled()) - return; - - multiface_rom = &memory_region(REGION_CPU1)[0x01C000]; - - if ( - ((multiface_flags & MULTIFACE_RAM_ROM_ENABLED)!=0) && - ((amstrad_GateArray_ModeAndRomConfiguration & 0x04) == 0) - ) - { - - /* set bank addressess */ - memory_set_bankptr(1, multiface_rom); - memory_set_bankptr(2, multiface_ram); - memory_set_bankptr(9, multiface_rom); - memory_set_bankptr(10, multiface_ram); - } -} - -/* any io writes are passed through here */ -static WRITE8_HANDLER(multiface_io_write) -{ - /* multiface hardware enabled? */ - if (!multiface_hardware_enabled()) - return; - - /* visible? */ - if (multiface_flags & MULTIFACE_VISIBLE) - { - if (offset==0x0fee8) - { - multiface_flags |= MULTIFACE_RAM_ROM_ENABLED; - amstrad_rethinkMemory(); - } - - if (offset==0x0feea) - { - multiface_flags &= ~MULTIFACE_RAM_ROM_ENABLED; - amstrad_rethinkMemory(); - } - } - - /* update multiface ram with data */ - /* these are decoded fully! */ - switch ((offset>>8) & 0x0ff) - { - /* gate array */ - case 0x07f: - { - switch (data & 0x0c0) - { - /* pen index */ - case 0x00: - { - multiface_ram[0x01fcf] = data; - - } - break; - - /* pen colour */ - case 0x040: - { - int pen_index; - - pen_index = multiface_ram[0x01fcf] & 0x0f; - - if (multiface_ram[0x01fcf] & 0x010) - { - - multiface_ram[0x01fdf + pen_index] = data; - } - else - { - multiface_ram[0x01f90 + pen_index] = data & 0x01f; - } - - } - break; - - /* rom/mode selection */ - case 0x080: - { - - multiface_ram[0x01fef] = data; - - } - break; - - /* ram configuration */ - case 0x0c0: - { - - multiface_ram[0x01fff] = data; - - } - break; - - default: - break; - - } - - } - break; - - - /* crtc register index */ - case 0x0bc: - { - multiface_ram[0x01cff] = data; - } - break; - - /* crtc register write */ - case 0x0bd: - { - int reg_index; - - reg_index = multiface_ram[0x01cff] & 0x0f; - - multiface_ram[0x01db0 + reg_index] = data; - } - break; - - - /* 8255 ppi control */ - case 0x0f7: - { - multiface_ram[0x017ff] = data; - - } - break; - - /* rom select */ - case 0x0df: - { - multiface_ram[0x01aac] = data; - } - break; - - default: - break; - - } - -} -/* called when cpu acknowledges int */ -/* reset top bit of interrupt line counter */ -/* this ensures that the next interrupt is no closer than 32 lines */ -static int amstrad_cpu_acknowledge_int(int cpu) -{ - // DMA interrupts can be automatically cleared if bit 0 of &6805 is set to 0 - if(amstrad_plus_asic_enabled != 0 && amstrad_plus_irq_cause != 0x06 && amstrad_plus_dma_clear & 0x01) - { - logerror("IRQ: Not cleared, IRQ was called by DMA [%i]\n",amstrad_plus_irq_cause); - amstrad_plus_asic_ram[0x2c0f] &= ~0x80; // not a raster interrupt, so this bit is reset - return (amstrad_plus_asic_ram[0x2805] & 0xf8) + amstrad_plus_irq_cause; - } - cpunum_set_input_line(0,0, CLEAR_LINE); - amstrad_CRTC_HS_Counter &= 0x1F; - if(amstrad_plus_asic_enabled != 0) - { - if(amstrad_plus_irq_cause == 6) // bit 7 is set "if last interrupt acknowledge cycle was caused by a raster interrupt" - amstrad_plus_asic_ram[0x2c0f] |= 0x80; - else - { - amstrad_plus_asic_ram[0x2c0f] &= ~0x80; - amstrad_plus_asic_ram[0x2c0f] &= (0x40 >> amstrad_plus_irq_cause/2); - } - return (amstrad_plus_asic_ram[0x2805] & 0xf8) + amstrad_plus_irq_cause; - } - return 0xFF; -} - -static VIDEO_EOF( amstrad ) -{ - if (readinputportbytag_safe("multiface", 0) & 0x02) - { - multiface_stop(); - } -} -/* sets up for a machine reset -All hardware is reset and the firmware is completely initialized -Once all tables and jumpblocks have been set up, -control is passed to the default entry in rom 0*/ -void amstrad_reset_machine(void) -{ - /* enable lower rom (OS rom) */ - amstrad_GateArray_write(0x089); - - /* set ram config 0 */ - amstrad_GateArray_write(0x0c0); - - // Get manufacturer name and TV refresh rate from PCB link (dipswitch for mess emulation) - ppi_port_inputs[amstrad_ppi_PortB] = (((readinputport(10)&MANUFACTURER_NAME)<<1) | (readinputport(10)&TV_REFRESH_RATE)); - - if(amstrad_system_type == SYSTEM_PLUS) - memset(amstrad_plus_asic_ram,0,16384); // clear ASIC RAM - - multiface_reset(); -} - -/* the following timings have been measured! */ -static UINT8 amstrad_cycle_table_op[256] = { - 4, 12, 8, 8, 4, 4, 8, 4, 4, 12, 8, 8, 4, 4, 8, 4, - 12, 12, 8, 8, 4, 4, 8, 4, 12, 12, 8, 8, 4, 4, 8, 4, - 8, 12, 20, 8, 4, 4, 8, 4, 8, 12, 20, 8, 4, 4, 8, 4, - 8, 12, 16, 8, 12, 12, 12, 4, 8, 12, 16, 8, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 8, 8, 8, 8, 8, 8, 4, 8, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 8, 12, 12, 12, 12, 16, 8, 16, 8, 12, 12, 4, 12, 20, 8, 16, - 8, 12, 12, 12, 12, 16, 8, 16, 8, 4, 12, 12, 12, 4, 8, 16, - 8, 12, 12, 24, 12, 16, 8, 16, 8, 4, 12, 4, 12, 4, 8, 16, - 8, 12, 12, 4, 12, 16, 8, 16, 8, 8, 12, 4, 12, 4, 8, 16 -}; - -static UINT8 amstrad_cycle_table_cb[256]= -{ - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4, - 4, 4, 4, 4, 4, 4, 12, 4, 4, 4, 4, 4, 4, 4, 12, 4 -}; - - -static UINT8 amstrad_cycle_table_ed[256]= -{ - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 12, 12, 12, 20, 4, 12, 4, 8, 12, 12, 12, 20, 4, 12, 4, 8, - 12, 12, 12, 20, 4, 12, 4, 8, 12, 12, 12, 20, 4, 12, 4, 8, - 12, 12, 12, 20, 4, 12, 4, 16, 12, 12, 12, 20, 4, 12, 4, 16, - 12, 12, 12, 20, 4, 12, 4, 4, 12, 12, 12, 20, 4, 12, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 16, 12, 16, 16, 4, 4, 4, 4, 16, 12, 16, 16, 4, 4, 4, 4, - 16, 12, 16, 16, 4, 4, 4, 4, 16, 12, 16, 16, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -}; - - -static UINT8 amstrad_cycle_table_xy[256]= -{ - 4, 12, 8, 8, 4, 4, 8, 4, 4, 12, 8, 8, 4, 4, 8, 4, - 12, 12, 8, 8, 4, 4, 8, 4, 12, 12, 8, 8, 4, 4, 8, 4, - 8, 12, 20, 8, 4, 4, 8, 4, 8, 12, 20, 8, 4, 4, 8, 4, - 8, 12, 16, 8, 20, 20, 20, 4, 8, 12, 16, 8, 4, 4, 8, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 16, 16, 16, 16, 16, 16, 4, 16, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 4, 4, 4, 4, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 16, 4, - 8, 12, 12, 12, 12, 16, 8, 16, 8, 12, 12, 4, 12, 20, 8, 16, - 8, 12, 12, 12, 12, 16, 8, 16, 8, 4, 12, 12, 12, 4, 8, 16, - 8, 12, 12, 24, 12, 16, 8, 16, 8, 4, 12, 4, 12, 4, 8, 16, - 8, 12, 12, 4, 12, 16, 8, 16, 8, 8, 12, 4, 12, 4, 8, 16 -}; - -static UINT8 amstrad_cycle_table_xycb[256]= -{ - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; - -static UINT8 amstrad_cycle_table_ex[256]= -{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 8, 4, 4, 0, 0, 0, 0, 4, 8, 4, 4, 0, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 -}; - -/* every 2us let's the crtc do the job !*/ -static void amstrad_update_video_1(int dummy) -{ - amstrad_vh_execute_crtc_cycles(2); -} - -static void amstrad_common_init(void) -{ - amstrad_GateArray_ModeAndRomConfiguration = 0; - amstrad_GateArray_RamConfiguration = 0; - amstrad_CRTC_HS_Counter = 2; - previous_amstrad_UpperRom_data = 0xff; - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MRA8_BANK1); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, MRA8_BANK2); -// if(amstrad_system_type == SYSTEM_CPC) -// { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MRA8_BANK3); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MRA8_BANK4); -// } -// else -// { -// memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, amstrad_plus_asic_4000_r); -// memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, amstrad_plus_asic_6000_r); -// } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0, MRA8_BANK5); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, MRA8_BANK6); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MRA8_BANK7); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, MRA8_BANK8); - - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, MWA8_BANK9); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, MWA8_BANK10); -// if(amstrad_system_type == SYSTEM_CPC) -// { - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, MWA8_BANK11); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, MWA8_BANK12); -// } -// else -// { -// memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, amstrad_plus_asic_4000_w); -// memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, amstrad_plus_asic_6000_w); -// } - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0, MWA8_BANK13); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, MWA8_BANK14); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, MWA8_BANK15); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, MWA8_BANK16); - - cpunum_reset(0); - if(amstrad_system_type == SYSTEM_CPC) - cpunum_set_input_line_vector(0, 0,0xff); - else - cpunum_set_input_line_vector(0, 0,0x00); - - nec765_init(&amstrad_nec765_interface,NEC765A/*?*/); - ppi8255_init(&amstrad_ppi8255_interface); - - floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 0), FLOPPY_DRIVE_SS_40); - floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 1), FLOPPY_DRIVE_SS_40); - -/* Every microsecond: - -The CRTC generates a memory address using it's MA and RA signal outputs -The Gate-Array fetches two bytes for each address*/ - -// timer_pulse(TIME_IN_USEC(AMSTRAD_US_PER_SCANLINE), 0, amstrad_vh_execute_crtc_cycles); - timer_pulse(TIME_IN_USEC(1), 0, amstrad_vh_execute_crtc_cycles); - - /* The opcode timing in the Amstrad is different to the opcode - timing in the core for the Z80 CPU. - - The Amstrad hardware issues a HALT for each memory fetch. - This has the effect of stretching the timing for Z80 opcodes, - so that they are all multiple of 4 T states long. All opcode - timings are a multiple of 1us in length. */ - - /* Using the cool code Juergen has provided, I will override - the timing tables with the values for the amstrad */ - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_op, amstrad_cycle_table_op); - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_cb, amstrad_cycle_table_cb); - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ed, amstrad_cycle_table_ed); - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xy, amstrad_cycle_table_xy); - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xycb, amstrad_cycle_table_xycb); - cpunum_set_info_ptr(0,CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ex, amstrad_cycle_table_ex); - - /* Juergen is a cool dude! */ - cpunum_set_irq_callback(0, amstrad_cpu_acknowledge_int); -} - -static MACHINE_RESET( amstrad ) -{ - int i; - - amstrad_system_type = SYSTEM_CPC; - - for (i=0; i<256; i++) - { - Amstrad_ROM_Table[i] = &memory_region(REGION_CPU1)[0x014000]; - } - - Amstrad_ROM_Table[7] = &memory_region(REGION_CPU1)[0x018000]; - amstrad_common_init(); - amstrad_reset_machine(); - - multiface_init(); - -} - -static MACHINE_RESET( plus ) -{ - int i; - - amstrad_system_type = SYSTEM_PLUS; - - for (i=0; i<128; i++) // fill ROM table - { - Amstrad_ROM_Table[i] = &memory_region(REGION_CPU1)[0x4000]; // BASIC in system cart - } - for(i=128;i<160;i++) - { - Amstrad_ROM_Table[i] = &memory_region(REGION_CPU1)[(i-128)*0x4000]; - } - Amstrad_ROM_Table[7] = &memory_region(REGION_CPU1)[0xc000]; // AMSDOS in system cart - - amstrad_plus_lower = 0; // cart bank 0 - amstrad_plus_lower_addr = 0; // at 0x0000, reg page disabled by default - amstrad_plus_lower_enabled = 1; // lower ROM enabled by default (as per usual) - amstrad_plus_asic_enabled = 0; // ASIC disabled - amstrad_plus_asic_regpage = 0; // ASIC register page disabled - amstrad_plus_asic_seqptr = 0; - amstrad_plus_pri = 0; // disable PRI - amstrad_plus_scroll_x = 0; - amstrad_plus_scroll_y = 0; - amstrad_plus_scroll_border = 0; // disable soft scroll - amstrad_plus_dma_status = 0; // disable all DMA channels - amstrad_plus_dma_0_addr = 0; - amstrad_plus_dma_prescaler[0] = 0; - amstrad_plus_dma_1_addr = 0; - amstrad_plus_dma_prescaler[1] = 0; - amstrad_plus_dma_2_addr = 0; - amstrad_plus_dma_prescaler[2] = 0; - amstrad_plus_dma_clear = 1; // by default, DMA interrupts must be cleared by writing to the DSCR (&6c0f) - amstrad_plus_irq_cause = 6; - - amstrad_common_init(); - amstrad_reset_machine(); - amstrad_plus_asic_ram[0x2805] = 0x01; // interrupt vector is undefined at startup, except that bit 0 is always 1. - AmstradCPC_GA_SetRamConfiguration(); - amstrad_plus_setsplitline(0,0); - // multiface_init(); -} - -static MACHINE_START( plus ) -{ - amstrad_plus_asic_ram = memory_region(REGION_USER1); // 16kB RAM for ASIC, memory-mapped registers. - return 0; -} - -static MACHINE_RESET( kccomp ) -{ - int i; - - amstrad_system_type = SYSTEM_CPC; - - for (i=0; i<256; i++) - { - Amstrad_ROM_Table[i] = &memory_region(REGION_CPU1)[0x014000]; - } - - amstrad_common_init(); - amstrad_reset_machine(); - - /* bit 1 = /TEST. When 0, KC compact will enter data transfer - sequence, where another system using the expansion port signals - DATA2,DATA1, /STROBE and DATA7 can transfer 256 bytes of program. - When the program has been transfered, it will be executed. This - is not supported in the driver */ - /* bit 3,4 are tied to +5V, bit 2 is tied to 0V */ - ppi_port_inputs[amstrad_ppi_PortB] = (1<<4) | (1<<3) | 2; -} - - -/* Memory is banked in 16k blocks. However, the multiface -pages the memory in 8k blocks! The ROM can -be paged into bank 0 and bank 3. */ -static ADDRESS_MAP_START(amstrad_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x00000, 0x01fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK9) - AM_RANGE(0x02000, 0x03fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK10) - AM_RANGE(0x04000, 0x05fff) AM_READWRITE(MRA8_BANK3, MWA8_BANK11) - AM_RANGE(0x06000, 0x07fff) AM_READWRITE(MRA8_BANK4, MWA8_BANK12) - AM_RANGE(0x08000, 0x09fff) AM_READWRITE(MRA8_BANK5, MWA8_BANK13) - AM_RANGE(0x0a000, 0x0bfff) AM_READWRITE(MRA8_BANK6, MWA8_BANK14) - AM_RANGE(0x0c000, 0x0dfff) AM_READWRITE(MRA8_BANK7, MWA8_BANK15) - AM_RANGE(0x0e000, 0x0ffff) AM_READWRITE(MRA8_BANK8, MWA8_BANK16) -ADDRESS_MAP_END - -/* I've handled the I/O ports in this way, because the ports -are not fully decoded by the CPC h/w. Doing it this way means -I can decode it myself and a lot of software should work */ -static ADDRESS_MAP_START(amstrad_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE(AmstradCPC_ReadPortHandler, AmstradCPC_WritePortHandler) -ADDRESS_MAP_END - -/* Additional notes for the AY-3-8912 in the CPC design -Port A of the AY-3-8912 is connected to the keyboard. -The data for a selected keyboard line can be read through Port A, as long as it is defined as input. -The operating system and I believe all programs assume this port has been defined as input. (NWC has found a bug in the Multiface 2 software. The Multiface does not reprogram the input/output state of the AY-3-8912's registers, therefore if port A is programmed as output, the keyboard will be unresponsive and it will not be possible to use the Multiface functions.) -When port B is defined as input (bit 7 of register 7 is set to "0"), a read of this port will return &FF. -*/ - -/* read PSG port A */ -static READ8_HANDLER ( amstrad_psg_porta_read ) -{ -/* Read CPC Keyboard - If keyboard matrix line 11-14 are selected, the byte is always &ff. - After testing on a real CPC, it is found that these never change, they always return &FF. */ - - if (amstrad_keyboard_line > 9) { - return 0xFF; - } else { - int amstrad_read_keyboard_line = amstrad_keyboard_line; - amstrad_keyboard_line = 0xFF; - return (readinputport(amstrad_read_keyboard_line) & 0xFF); - } -} - -static INPUT_PORTS_START( amstrad_keyboard ) - /* keyboard row 0 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 9") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 3") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad Enter") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) - - /* keyboard line 1 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Copy") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 7") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 1") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 0") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) - - /* keyboard row 2 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clr") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') PORT_CHAR('|') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - - /* keyboard row 3 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ \xC2\xA3") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR('^') PORT_CHAR('\xa3') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - - /* keyboard line 4 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CODE(',') PORT_CHAR('<') - - /* keyboard line 5 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - - /* keyboard line 6 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - - /* keyboard line 7 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - - /* keyboard line 8 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(26) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - - /* keyboard line 9 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_CODE(JOYCODE_1_UP) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_CODE(JOYCODE_1_DOWN) PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_CODE(JOYCODE_1_LEFT) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_CODE(JOYCODE_1_RIGHT) PORT_PLAYER(1) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_CODE(JOYCODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_CODE(JOYCODE_1_BUTTON2) PORT_PLAYER(1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_CODE(JOYCODE_1_BUTTON3) PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) -INPUT_PORTS_END - - -/* Steph 2000-10-27 I remapped the 'Machine Name' Dip Switches (easier to understand) */ - -INPUT_PORTS_START(amstrad) - - PORT_INCLUDE( amstrad_keyboard ) - -/* the following are defined as dipswitches, but are in fact solder links on the - * curcuit board. The links are open or closed when the PCB is made, and are set depending on which country - * the Amstrad system was to go to - -b3 b2 b1 Manufacturer Name (CPC and CPC+ only): -0 0 0 Isp -0 0 1 Triumph -0 1 0 Saisho -0 1 1 Solavox -1 0 0 Awa -1 0 1 Schneider -1 1 0 Orion -1 1 1 Amstrad*/ -PORT_START - PORT_DIPNAME( 0x07, 0x07, "Manufacturer Name" ) - PORT_DIPSETTING( 0x00, "Isp" ) - PORT_DIPSETTING( 0x01, "Triumph" ) - PORT_DIPSETTING( 0x02, "Saisho" ) - PORT_DIPSETTING( 0x03, "Solavox" ) - PORT_DIPSETTING( 0x04, "Awa" ) - PORT_DIPSETTING( 0x05, "Schneider" ) - PORT_DIPSETTING( 0x06, "Orion" ) - PORT_DIPSETTING( 0x07, "Amstrad" ) - - PORT_DIPNAME( 0x10, 0x10, "TV Refresh Rate" ) - PORT_DIPSETTING( 0x00, "60 Hz" ) - PORT_DIPSETTING( 0x10, "50 Hz" ) - -/* Part number Manufacturer Type number - UM6845 UMC 0 - HD6845S Hitachi 0 - UM6845R UMC 1 - MC6845 Motorola 2 - AMS40489 Amstrad 3 - Pre-ASIC??? Amstrad? 4 In the "cost-down" CPC6128, the CRTC functionality is integrated into a single ASIC IC. This ASIC is often refered to as the "Pre-ASIC" because it preceeded the CPC+ ASIC -As far as I know, the KC compact used HD6845S only. -*/ - PORT_START_TAG("crtc") - PORT_DIPNAME( 0xFF, M6845_PERSONALITY_UM6845R, "CRTC Type" ) - PORT_DIPSETTING(M6845_PERSONALITY_UM6845, "Type 0 - UM6845" ) - PORT_DIPSETTING(M6845_PERSONALITY_HD6845S, "Type 0 - HD6845S" ) - PORT_DIPSETTING(M6845_PERSONALITY_UM6845R, "Type 1 - UM6845R" ) - PORT_DIPSETTING(M6845_PERSONALITY_GENUINE, "Type 2 - MC6845" ) - PORT_DIPSETTING(M6845_PERSONALITY_AMS40489, "Type 3 - AMS40489" ) - PORT_DIPSETTING(M6845_PERSONALITY_PREASIC, "Type 4 - Pre-ASIC???" ) - - PORT_START_TAG("multiface") - PORT_CONFNAME(0x01, 0x00, "Multiface Hardware" ) - PORT_CONFSETTING(0x00, DEF_STR( Off) ) - PORT_CONFSETTING(0x01, DEF_STR( On) ) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Multiface Stop") PORT_CODE(KEYCODE_F1) - - PORT_START_TAG("green_display") - PORT_CONFNAME( 0x01, 0x00, "Color/Green Display" ) - PORT_CONFSETTING(0x00, "Color Display" ) - PORT_CONFSETTING(0x01, "Green Display" ) - -INPUT_PORTS_END - -INPUT_PORTS_START(kccomp) - PORT_INCLUDE( amstrad_keyboard ) -INPUT_PORTS_END - -INPUT_PORTS_START(plus) - PORT_INCLUDE( amstrad_keyboard ) - - PORT_START - PORT_DIPNAME( 0x07, 0x07, "Manufacturer Name" ) - PORT_DIPSETTING( 0x00, "Isp" ) - PORT_DIPSETTING( 0x01, "Triumph" ) - PORT_DIPSETTING( 0x02, "Saisho" ) - PORT_DIPSETTING( 0x03, "Solavox" ) - PORT_DIPSETTING( 0x04, "Awa" ) - PORT_DIPSETTING( 0x05, "Schneider" ) - PORT_DIPSETTING( 0x06, "Orion" ) - PORT_DIPSETTING( 0x07, "Amstrad" ) - - PORT_DIPNAME( 0x10, 0x10, "TV Refresh Rate" ) - PORT_DIPSETTING( 0x00, "60 Hz" ) - PORT_DIPSETTING( 0x10, "50 Hz" ) - - /* The CPC+ and GX4000 use the ASIC CRTC functionality */ - PORT_START_TAG("crtc") - PORT_DIPNAME( 0xFF, M6845_PERSONALITY_AMS40489, "CRTC Type" ) - PORT_DIPSETTING(M6845_PERSONALITY_UM6845, "Type 0 - UM6845" ) - PORT_DIPSETTING(M6845_PERSONALITY_HD6845S, "Type 0 - HD6845S" ) - PORT_DIPSETTING(M6845_PERSONALITY_UM6845R, "Type 1 - UM6845R" ) - PORT_DIPSETTING(M6845_PERSONALITY_GENUINE, "Type 2 - MC6845" ) - PORT_DIPSETTING(M6845_PERSONALITY_AMS40489, "Type 3 - AMS40489" ) - PORT_DIPSETTING(M6845_PERSONALITY_PREASIC, "Type 4 - Pre-ASIC???" ) - - /* The CPC+ and GX4000 adds support for analogue controllers. - Up to two joysticks or four paddles can be used, although the ASIC supports twice that. - Read at &6808-&680f in ASIC RAM - I am unsure if these are even close to correct */ - - PORT_START_TAG("analog1") - PORT_BIT( 0x3f ,0x3f, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_PLAYER(1) - PORT_START_TAG("analog2") - PORT_BIT( 0x3f ,0x3f, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_PLAYER(1) - PORT_START_TAG("analog3") - PORT_BIT( 0x3f ,0x3f, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_PLAYER(2) - PORT_START_TAG("analog4") - PORT_BIT( 0x3f ,0x3f, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_PLAYER(2) - // Not used, but are here for completeness - PORT_START_TAG("analog5") - PORT_BIT( 0x3f ,0x3f, IPT_PADDLE) PORT_SENSITIVITY(100) - PORT_START_TAG("analog6") - PORT_BIT( 0x3f ,0x3f, IPT_PADDLE) PORT_SENSITIVITY(100) - PORT_START_TAG("analog7") - PORT_BIT( 0x3f ,0x3f, IPT_PADDLE) PORT_SENSITIVITY(100) - PORT_START_TAG("analog8") - PORT_BIT( 0x3f ,0x3f, IPT_PADDLE) PORT_SENSITIVITY(100) -INPUT_PORTS_END -/* -------------------- - - AY8910_interface - - --------------------*/ -static struct AY8910interface ay8912_interface = -{ - amstrad_psg_porta_read, /* portA read */ - amstrad_psg_porta_read, /* portB read */ - NULL, /* portA write */ - NULL /* portB write */ -}; - - -static const gfx_layout asic_sprite_layout = -{ - 16,16, - 16, - 4, - { 4,5,6,7 }, - { 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120 }, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 16*16*8 -}; - -static const gfx_decode asic_sprite_gfxdecodeinfo[] = -{ - { REGION_USER1, 0, &asic_sprite_layout, 32, 1 }, - {-1} -}; - - - -/* actual clock to CPU is 4Mhz, but it is slowed by memory -accessess. A HALT is used for every memory access by the CPU. -This stretches the timing for opcodes, and gives an effective -speed of 3.8Mhz */ - -/* Info about structures below: - - The Amstrad has a CPU running at 4Mhz, slowed with wait states. - I have measured 19968 NOP instructions per frame, which gives, - 50.08 fps as the tv refresh rate. - - There are 312 lines on a PAL screen, giving 64us per line. - - There is only 50us visible per line, and 35*8 lines visible on the screen. - - This is the reason why the displayed area is not the same as the visible area. - */ - -static MACHINE_DRIVER_START( amstrad ) - /* Machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(amstrad_mem, 0) - MDRV_CPU_IO_MAP(amstrad_io, 0) - - MDRV_SCREEN_REFRESH_RATE(AMSTRAD_FPS) - MDRV_INTERLEAVE(1) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(19968)) - - MDRV_MACHINE_RESET( amstrad ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(800, 312) - /* Amstrad Monitor Visible AREA : 768x272 */ - MDRV_SCREEN_VISIBLE_AREA(0, ((AMSTRAD_SCREEN_WIDTH-32) - 1), 0, ((AMSTRAD_SCREEN_HEIGHT-40) - 1)) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(32) - MDRV_PALETTE_INIT( amstrad_cpc ) - - MDRV_VIDEO_START( amstrad ) - MDRV_VIDEO_UPDATE( amstrad ) - MDRV_VIDEO_EOF( amstrad ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(ay8912_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( kccomp ) - MDRV_IMPORT_FROM( amstrad ) - MDRV_SCREEN_REFRESH_RATE( AMSTRAD_FPS ) - MDRV_MACHINE_RESET( kccomp ) - MDRV_SCREEN_SIZE(800, 312) - MDRV_PALETTE_INIT( kccomp ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cpcplus ) - MDRV_IMPORT_FROM( amstrad ) - MDRV_SCREEN_REFRESH_RATE( AMSTRAD_FPS ) - MDRV_GFXDECODE( asic_sprite_gfxdecodeinfo ) - MDRV_MACHINE_START( plus ) - MDRV_MACHINE_RESET( plus ) - MDRV_SCREEN_SIZE(800, 312) - MDRV_PALETTE_LENGTH(4096+48) // extended 12-bit palette, and standard 32 colour palette - MDRV_COLORTABLE_LENGTH(4096+48) - MDRV_PALETTE_INIT( amstrad_plus ) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* cpc6128.rom contains OS in first 16k, BASIC in second 16k */ -/* cpcados.rom contains Amstrad DOS */ - - -static void cpc6128_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - default: legacydsk_device_getinfo(devclass, state, info); break; - } -} - -static void cpc6128_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void cpc6128_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(cpc6128) - CONFIG_RAM_DEFAULT(128 * 1024) - CONFIG_DEVICE(cpc6128_floppy_getinfo) - CONFIG_DEVICE(cpc6128_cassette_getinfo) - CONFIG_DEVICE(cpc6128_printer_getinfo) -SYSTEM_CONFIG_END - -static void cpcplus_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_amstrad_plus_cartridge; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "cpr"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void cpcplus_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sna"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_amstrad; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(cpcplus) - CONFIG_IMPORT_FROM(cpc6128) - CONFIG_DEVICE(cpcplus_cartslot_getinfo) - CONFIG_DEVICE(cpcplus_snapshot_getinfo) -SYSTEM_CONFIG_END - - -/* --------------------------------------------- - - Rom definition for the ROM loading system - - ---------------------------------------------*/ -/* I am loading the roms outside of the Z80 memory area, because they -are banked. */ -ROM_START(cpc6128) - /* this defines the total memory size - 64k ram, 16k OS, 16k BASIC, 16k DOS */ - ROM_REGION(0x020000, REGION_CPU1,0) - /* load the os to offset 0x01000 from memory base */ - ROM_LOAD("cpc6128.rom", 0x10000, 0x8000, CRC(9e827fe1) SHA1(5977adbad3f7c1e0e082cd02fe76a700d9860c30)) - ROM_LOAD("cpcados.rom", 0x18000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb)) - - /* optional Multiface hardware */ - ROM_LOAD_OPTIONAL("multface.rom", 0x01c000, 0x02000, CRC(f36086de) SHA1(1431ec628d38f000715545dd2186b684c5fe5a6f)) -ROM_END - -ROM_START(cpc6128f) - -/* this defines the total memory size (128kb))- 64k ram, 16k OS, 16k BASIC, 16k DOS +16k*/ - ROM_REGION(0x020000, REGION_CPU1,0) - -/* load the os to offset 0x01000 from memory base */ - ROM_LOAD("cpc6128f.rom", 0x10000, 0x8000, CRC(1574923b) SHA1(200d59076dfef36db061d6d7d21d80021cab1237)) - ROM_LOAD("cpcados.rom", 0x018000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb)) - - /* optional Multiface hardware */ - ROM_LOAD_OPTIONAL("multface.rom", 0x01c000, 0x2000, CRC(f36086de) SHA1(1431ec628d38f000715545dd2186b684c5fe5a6f)) -ROM_END - -ROM_START(cpc464) - /* this defines the total memory size - 64k ram, 16k OS, 16k BASIC, 16k DOS */ - ROM_REGION(0x01c000, REGION_CPU1,0) - /* load the os to offset 0x01000 from memory base */ - ROM_LOAD("cpc464.rom", 0x10000, 0x8000, CRC(40852f25) SHA1(56d39c463da60968d93e58b4ba0e675829412a20)) - ROM_LOAD("cpcados.rom", 0x18000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb)) -ROM_END - -ROM_START(cpc664) - /* this defines the total memory size - 64k ram, 16k OS, 16k BASIC, 16k DOS */ - ROM_REGION(0x01c000, REGION_CPU1,0) - /* load the os to offset 0x01000 from memory base */ - ROM_LOAD("cpc664.rom", 0x10000, 0x8000, CRC(9AB5A036) SHA1(073a7665527b5bd8a148747a3947dbd3328682c8)) - ROM_LOAD("cpcados.rom", 0x18000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb)) -ROM_END - - -ROM_START(kccomp) - ROM_REGION(0x018000, REGION_CPU1,0) - ROM_LOAD("kccos.rom", 0x10000, 0x04000, CRC(7f9ab3f7) SHA1(f828045e98e767f737fd93df0af03917f936ad08)) - ROM_LOAD("kccbas.rom", 0x14000, 0x04000, CRC(ca6af63d) SHA1(d7d03755099d0aff501fa5fffc9c0b14c0825448)) - ROM_REGION(0x018000+0x0800, REGION_PROMS, 0 ) - ROM_LOAD("farben.rom", 0x018000, 0x0800, CRC(a50fa3cf) SHA1(2f229ac9f62d56973139dad9992c208421bc0f51)) - - /* fake region - required by graphics decode structure */ - /*ROM_REGION(0x0c00, REGION_GFX1) */ -ROM_END - - -/* this system must have a cartridge installed to run */ -ROM_START(cpc6128p) - ROM_REGION(0x80000, REGION_CPU1,0) - ROM_REGION(0x4000, REGION_USER1,0) -ROM_END - -/* this system must have a cartridge installed to run */ -ROM_START(cpc464p) - ROM_REGION(0x80000, REGION_CPU1,0) - ROM_REGION(0x4000, REGION_USER1,0) -ROM_END - -/* this system must have a cartridge installed to run */ -ROM_START(gx4000) - ROM_REGION(0x80000, REGION_CPU1,0) - ROM_REGION(0x4000, REGION_USER1,0) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG, COMPANY FULLNAME */ -COMP( 1984, cpc464, 0, 0, amstrad, amstrad, 0, cpc6128, "Amstrad plc", "Amstrad/Schneider CPC464", 0) -COMP( 1985, cpc664, cpc464, 0, amstrad, amstrad, 0, cpc6128, "Amstrad plc", "Amstrad/Schneider CPC664", 0) -COMP( 1985, cpc6128, cpc464, 0, amstrad, amstrad, 0, cpc6128, "Amstrad plc", "Amstrad/Schneider CPC6128", 0) -COMP( 1985, cpc6128f, cpc464, 0, amstrad, amstrad, 0, cpc6128, "Amstrad plc", "Amstrad/Schneider CPC6128 Azerty French Keyboard", 0) -COMP( 1990, cpc464p, 0, 0, cpcplus, plus, 0, cpcplus, "Amstrad plc", "Amstrad CPC464+", 0) -COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, 0, cpcplus, "Amstrad plc", "Amstrad CPC6128+", 0) -COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, 0, cpc6128, "VEB Mikroelektronik", "KC Compact", 0) - diff --git a/mess/systems/apexc.c b/mess/systems/apexc.c deleted file mode 100644 index 9983856df..000000000 --- a/mess/systems/apexc.c +++ /dev/null @@ -1,890 +0,0 @@ -/* - systems/apexc.c : APEXC driver - - By Raphael Nabet - - see cpu/apexc.c for background and tech info -*/ - -#include "driver.h" -#include "cpu/apexc/apexc.h" -#include "vidhrdw/generic.h" - -static void apexc_teletyper_init(void); -static void apexc_teletyper_putchar(int character); - - -static MACHINE_START(apexc) -{ - apexc_teletyper_init(); - return 0; -} - - -/* - APEXC RAM loading/saving from cylinder image - - Note that, in an actual APEXC, the RAM contents are not read from the cylinder : - the cylinder IS the RAM. - - This feature is important : of course, the tape reader allows to enter programs, but you - still need an object code loader in memory. (Of course, the control panel enables - the user to enter such a loader manually, but it would take hours...) -*/ - -typedef struct cylinder -{ - mess_image *fd; - int writable; -} cylinder; - -cylinder apexc_cylinder; - -/* - Open cylinder image and read RAM -*/ -static int device_load_apexc_cylinder(mess_image *image) -{ - /* open file */ - apexc_cylinder.fd = image; - /* tell whether the image is writable */ - apexc_cylinder.writable = image_is_writable(image); - - if (apexc_cylinder.fd) - { /* load RAM contents */ - - image_fread(apexc_cylinder.fd, memory_region(REGION_CPU1), /*0x8000*/0x1000); -#ifdef LSB_FIRST - { /* fix endianness */ - UINT32 *RAM; - int i; - - RAM = (UINT32 *) memory_region(REGION_CPU1); - - for (i=0; i < /*0x2000*/0x0400; i++) - RAM[i] = BIG_ENDIANIZE_INT32(RAM[i]); - } -#endif - } - - return INIT_PASS; -} - -/* - Save RAM to cylinder image and close it -*/ -static void device_unload_apexc_cylinder(mess_image *image) -{ - if (apexc_cylinder.fd && apexc_cylinder.writable) - { /* save RAM contents */ - /* rewind file */ - image_fseek(apexc_cylinder.fd, 0, SEEK_SET); -#ifdef LSB_FIRST - { /* fix endianness */ - UINT32 *RAM; - int i; - - RAM = (UINT32 *) memory_region(REGION_CPU1); - - for (i=0; i < /*0x2000*/0x0400; i++) - RAM[i] = BIG_ENDIANIZE_INT32(RAM[i]); - } -#endif - /* write */ - image_fwrite(apexc_cylinder.fd, memory_region(REGION_CPU1), /*0x8000*/0x1000); - } -} - - -/* - APEXC tape support - - APEXC does all I/O on paper tape. There are 5 punch rows on tape. - - Both a reader (read-only), and a puncher (write-only) are provided. - - Tape output can be fed into a teletyper, in order to have text output : - - code Symbol - (binary) Letters Figures - 00000 0 - 00001 T 1 - 00010 B 2 - 00011 O 3 - 00100 E 4 - 00101 H 5 - 00110 N 6 - 00111 M 7 - 01000 A 8 - 01001 L 9 - 01010 R + - 01011 G - - 01100 I z - 01101 P . - 01110 C d - 01111 V = - 10000 Space - 10001 Z y - 10010 D theta (greek letter) - 10011 Line Space (i.e. LF) - 10100 S , - 10101 Y Sigma (greek letter) - 10110 F x - 10111 X / - 11000 Carriage Return - 11001 W phi (greek letter) - 11010 J - (dash ?) - 11011 Figures - 11100 U pi (greek letter) - 11101 Q ) - 11110 K ( - 11111 Letters -*/ - -typedef struct tape -{ - mess_image *fd; -} tape; - -tape apexc_tapes[2]; - - - -static void apexc_get_open_mode(const struct IODevice *dev, int id, - unsigned int *readable, unsigned int *writeable, unsigned int *creatable) -{ - /* unit 0 is read-only, unit 1 is write-only */ - if (id) - { - *readable = 0; - *writeable = 1; - *creatable = 1; - } - else - { - *readable = 1; - *writeable = 1; - *creatable = 1; - } -} - - - -static int device_init_apexc_tape(mess_image *image) -{ - return INIT_PASS; -} - - - -/* - Open a tape image -*/ -static int device_load_apexc_tape(mess_image *image) -{ - int id = image_index_in_device(image); - tape *t = &apexc_tapes[id]; - - /* open file */ - t->fd = image; - - return INIT_PASS; -} - -static READ8_HANDLER(tape_read) -{ - UINT8 reply; - - if (apexc_tapes[0].fd && (image_fread(apexc_tapes[0].fd, & reply, 1) == 1)) - return reply & 0x1f; - else - return 0; /* unit not ready - I don't know what we should do */ -} - -static WRITE8_HANDLER(tape_write) -{ - UINT8 data5 = (data & 0x1f); - - if (apexc_tapes[1].fd) - image_fwrite(apexc_tapes[1].fd, & data5, 1); - - apexc_teletyper_putchar(data & 0x1f); /* display on screen */ -} - -/* - APEXC control panel - - I know really little about the details, although the big picture is obvious. - - Things I know : - * "As well as starting and stopping the machine, [it] enables information to be inserted - manually and provides for the inspection of the contents of the memory via various - storage registers." (Booth, p. 2) - * "Data can be inserted manually from the control panel [into the control register]". - (Booth, p. 3) - * The contents of the R register can be edited, too. A button allows to clear - a complete X (or Y ???) field. (forgot the reference, but must be somewhere in Booth) - * There is no trace mode (Booth, p. 213) - - Since the control panel is necessary for the operation of the APEXC, I tried to - implement a commonplace control panel. I cannot tell how close the feature set and - operation of this control panel is to the original APEXC control panel, but it - cannot be too different in the basic principles. -*/ - - -/* defines for input port numbers */ -enum -{ - panel_control = 0, - panel_edit1, - panel_edit2 -}; - -/* defines for each bit and mask in input port panel_control */ -enum -{ - /* bit numbers */ - panel_run_bit = 0, - panel_CR_bit, - panel_A_bit, - panel_R_bit, - panel_HB_bit, - panel_ML_bit, - panel_mem_bit, - panel_write_bit, - - /* masks */ - panel_run = (1 << panel_run_bit), - panel_CR = (1 << panel_CR_bit), - panel_A = (1 << panel_A_bit), - panel_R = (1 << panel_R_bit), - panel_HB = (1 << panel_HB_bit), - panel_ML = (1 << panel_ML_bit), - panel_mem = (1 << panel_mem_bit), - panel_write = (1 << panel_write_bit) -}; - -/* fake input ports with keyboard keys */ -INPUT_PORTS_START(apexc) - - PORT_START /* 0 : panel control */ - PORT_BIT(panel_run, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Run/Stop") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(panel_CR, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read CR") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT(panel_A, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read A") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT(panel_R, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read R") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT(panel_HB, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read HB") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT(panel_ML, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read ML") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(panel_mem, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Read mem") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT(panel_write, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Write instead of read") PORT_CODE(KEYCODE_LSHIFT) - - PORT_START /* 1 : data edit #1 */ - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #10") PORT_CODE(KEYCODE_0) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #11") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #12") PORT_CODE(KEYCODE_W) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #13") PORT_CODE(KEYCODE_E) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #14") PORT_CODE(KEYCODE_R) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #15") PORT_CODE(KEYCODE_T) - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #16") PORT_CODE(KEYCODE_Y) - - PORT_START /* 2 : data edit #2 */ - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #17") PORT_CODE(KEYCODE_U) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #18") PORT_CODE(KEYCODE_I) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #19") PORT_CODE(KEYCODE_O) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #20") PORT_CODE(KEYCODE_P) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #21") PORT_CODE(KEYCODE_A) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #22") PORT_CODE(KEYCODE_S) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #23") PORT_CODE(KEYCODE_D) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #24") PORT_CODE(KEYCODE_F) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #25") PORT_CODE(KEYCODE_G) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #26") PORT_CODE(KEYCODE_H) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #27") PORT_CODE(KEYCODE_J) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #28") PORT_CODE(KEYCODE_K) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #29") PORT_CODE(KEYCODE_L) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #30") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #31") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle bit #32") PORT_CODE(KEYCODE_X) - -INPUT_PORTS_END - - -static UINT32 panel_data_reg; /* value of a data register on the control panel which can - be edited - the existence of this register is a personnal - guess */ - -/* - Not a real interrupt - just handle keyboard input -*/ -static void apexc_interrupt(void) -{ - UINT32 edit_keys; - int control_keys; - - static UINT32 old_edit_keys; - static int old_control_keys; - - int control_transitions; - - - /* read new state of edit keys */ - edit_keys = (readinputport(panel_edit1) << 16) | readinputport(panel_edit2); - - /* toggle data reg according to transitions */ - panel_data_reg ^= edit_keys & (~ old_edit_keys); - - /* remember new state of edit keys */ - old_edit_keys = edit_keys; - - - /* read new state of control keys */ - control_keys = readinputport(panel_control); - - /* compute transitions */ - control_transitions = control_keys & (~ old_control_keys); - - /* process commands */ - - if (control_transitions & panel_run) - { /* toggle run/stop state */ - cpunum_set_reg(0, APEXC_STATE, ! cpunum_get_reg(0, APEXC_STATE)); - } - - while (control_transitions & (panel_CR | panel_A | panel_R | panel_ML | panel_HB)) - { /* read/write a register */ - /* note that we must take into account the possibility of simulteanous keypresses - (which would be a goofy thing to do when reading, but a normal one when writing, - if the user wants to clear several registers at once) */ - int reg_id = -1; - - /* determinate value of reg_id */ - if (control_transitions & panel_CR) - { /* CR register selected ? */ - control_transitions &= ~panel_CR; /* clear so that it is ignored on next iteration */ - reg_id = APEXC_CR; /* matching register ID */ - } - else if (control_transitions & panel_A) - { - control_transitions &= ~panel_A; - reg_id = APEXC_A; - } - else if (control_transitions & panel_R) - { - control_transitions &= ~panel_R; - reg_id = APEXC_R; - } - else if (control_transitions & panel_HB) - { - control_transitions &= ~panel_HB; - reg_id = APEXC_WS; - } - else if (control_transitions & panel_ML) - { - control_transitions &= ~panel_ML; - reg_id = APEXC_ML; - } - - if (-1 != reg_id) - { - /* read/write register #reg_id */ - if (control_keys & panel_write) - /* write reg */ - cpunum_set_reg(0, reg_id, panel_data_reg); - else - /* read reg */ - panel_data_reg = cpunum_get_reg(0, reg_id); - } - } - - if (control_transitions & panel_mem) - { /* read/write memory */ - - if (control_keys & panel_write) - /* write memory */ - apexc_writemem(cpunum_get_reg(0, APEXC_ML_FULL), panel_data_reg); - else - /* read memory */ - panel_data_reg = apexc_readmem(cpunum_get_reg(0, APEXC_ML_FULL)); - } - - /* remember new state of control keys */ - old_control_keys = control_keys; -} - -/* - apexc video emulation. - - Since the APEXC has no video display, we display the control panel. - - Additionnally, We display one page of teletyper output. -*/ - -static unsigned char apexc_palette[] = -{ - 255, 255, 255, - 0, 0, 0, - 255, 0, 0, - 50, 0, 0 -}; - -static unsigned short apexc_colortable[] = -{ - 0, 1 -}; - -#define APEXC_PALETTE_SIZE sizeof(apexc_palette)/3 -#define APEXC_COLORTABLE_SIZE sizeof(apexc_colortable)/2 - -static mame_bitmap *apexc_bitmap; - -enum -{ - /* size and position of panel window */ - panel_window_width = 256, - panel_window_height = 64, - panel_window_offset_x = 0, - panel_window_offset_y = 0, - /* size and position of teletyper window */ - teletyper_window_width = 256, - teletyper_window_height = 128, - teletyper_window_offset_x = 0, - teletyper_window_offset_y = panel_window_height -}; - -static const rectangle panel_window = -{ - panel_window_offset_x, panel_window_offset_x+panel_window_width-1, /* min_x, max_x */ - panel_window_offset_y, panel_window_offset_y+panel_window_height-1,/* min_y, max_y */ -}; -static const rectangle teletyper_window = -{ - teletyper_window_offset_x, teletyper_window_offset_x+teletyper_window_width-1, /* min_x, max_x */ - teletyper_window_offset_y, teletyper_window_offset_y+teletyper_window_height-1,/* min_y, max_y */ -}; -enum -{ - teletyper_scroll_step = 8 -}; -static const rectangle teletyper_scroll_clear_window = -{ - teletyper_window_offset_x, teletyper_window_offset_x+teletyper_window_width-1, /* min_x, max_x */ - teletyper_window_offset_y+teletyper_window_height-teletyper_scroll_step, teletyper_window_offset_y+teletyper_window_height-1, /* min_y, max_y */ -}; -static const int var_teletyper_scroll_step = - teletyper_scroll_step; - -static PALETTE_INIT( apexc ) -{ - palette_set_colors(machine, 0, apexc_palette, APEXC_PALETTE_SIZE); - - memcpy(colortable, & apexc_colortable, sizeof(apexc_colortable)); -} - -static VIDEO_START( apexc ) -{ - apexc_bitmap = auto_bitmap_alloc(Machine->screen[0].width,Machine->screen[0].height); - fillbitmap(apexc_bitmap, Machine->pens[0], &/*Machine->visible_area*/teletyper_window); - return 0; -} - -/* draw a small 8*8 LED (well, there were no LEDs at the time, so let's call this a lamp ;-) ) */ -static void apexc_draw_led(mame_bitmap *bitmap, int x, int y, int state) -{ - int xx, yy; - - for (yy=1; yy<7; yy++) - for (xx=1; xx<7; xx++) - plot_pixel(bitmap, x+xx, y+yy, Machine->pens[state ? 2 : 3]); -} - -/* write a single char on screen */ -static void apexc_draw_char(mame_bitmap *bitmap, char character, int x, int y, int color) -{ - drawgfx(bitmap, Machine->gfx[0], character-32, color, 0, 0, - x+1, y, &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); -} - -/* write a string on screen */ -static void apexc_draw_string(mame_bitmap *bitmap, const char *buf, int x, int y, int color) -{ - while (* buf) - { - apexc_draw_char(bitmap, *buf, x, y, color); - - x += 8; - buf++; - } -} - - -static VIDEO_UPDATE( apexc ) -{ - int i; - char the_char; - - - /*if (full_refresh)*/ - { - fillbitmap(bitmap, Machine->pens[0], &/*Machine->visible_area*/panel_window); - apexc_draw_string(bitmap, "power", 8, 0, 0); - apexc_draw_string(bitmap, "running", 8, 8, 0); - apexc_draw_string(bitmap, "data :", 0, 24, 0); - } - - copybitmap(bitmap, apexc_bitmap, 0, 0, 0, 0, &teletyper_window, TRANSPARENCY_NONE, 0); - - - apexc_draw_led(bitmap, 0, 0, 1); - - apexc_draw_led(bitmap, 0, 8, cpunum_get_reg(0, APEXC_STATE)); - - for (i=0; i<32; i++) - { - apexc_draw_led(bitmap, i*8, 32, (panel_data_reg << i) & 0x80000000UL); - the_char = '0' + ((i + 1) % 10); - apexc_draw_char(bitmap, the_char, i*8, 40, 0); - if (((i + 1) % 10) == 0) - { - the_char = '0' + ((i + 1) / 10); - apexc_draw_char(bitmap, the_char, i*8, 48, 0); - } - } - return 0; -} - -static int letters; -static int pos; - -static void apexc_teletyper_init(void) -{ - letters = FALSE; - pos = 0; -} - -static void apexc_teletyper_linefeed(void) -{ - UINT8 buf[teletyper_window_width]; - int y; - - for (y=teletyper_window_offset_y; ypens, -1); - } - - fillbitmap(apexc_bitmap, Machine->pens[0], &teletyper_scroll_clear_window); -} - -static void apexc_teletyper_putchar(int character) -{ - static const char ascii_table[2][32] = - { - { - '0', '1', '2', '3', - '4', '5', '6', '7', - '8', '9', '+', '-', - 'z', '.', 'd', '=', - ' ', 'y', /*'@'*/'\200'/*theta*/,'\n'/*Line Space*/, - ',', /*'&'*/'\201'/*Sigma*/,'x', '/', - '\r'/*Carriage Return*/,/*'!'*/'\202'/*Phi*/,'_'/*???*/, '\0'/*Figures*/, - /*'#'*/'\203'/*pi*/,')', '(', '\0'/*Letters*/ - }, - { - ' '/*???*/, 'T', 'B', 'O', - 'E', 'H', 'N', 'M', - 'A', 'L', 'R', 'G', - 'I', 'P', 'C', 'V', - ' ', 'Z', 'D', '\n'/*Line Space*/, - 'S', 'Y', 'F', 'X', - '\r'/*Carriage Return*/,'W', 'J', '\0'/*Figures*/, - 'U', 'Q', 'K', '\0'/*Letters*/ - } - }; - - char buffer[2] = "x"; - - character &= 0x1f; - - switch (character) - { - case 19: - /* Line Space */ - apexc_teletyper_linefeed(); - break; - - case 24: - /* Carriage Return */ - pos = 0; - break; - - case 27: - /* Figures */ - letters = FALSE; - break; - - case 31: - /* Letters */ - letters = TRUE; - break; - - default: - /* Any printable character... */ - - if (pos >= 32) - { /* if past right border, wrap around */ - apexc_teletyper_linefeed(); /* next line */ - pos = 0; /* return to start of line */ - } - - /* print character */ - buffer[0] = ascii_table[letters][character]; /* lookup ASCII equivalent in table */ - buffer[1] = '\0'; /* terminate string */ - apexc_draw_string(apexc_bitmap, buffer, 8*pos, 176, 0); /* print char */ - pos++; /* step carriage forward */ - - break; - } -} - -enum -{ - apexc_charnum = /*96+4*/128, /* ASCII set + 4 special characters */ - /* for whatever reason, 96+4 breaks greek characters */ - - apexcfontdata_size = 8 * apexc_charnum -}; - -/* apexc driver init : builds a font for use by the teletyper */ -static DRIVER_INIT(apexc) -{ - UINT8 *dst; - - static const unsigned char fontdata6x8[apexcfontdata_size] = - { /* ASCII characters */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00, - 0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xf8,0x50,0xf8,0x50,0x00,0x00, - 0x20,0x70,0xc0,0x70,0x18,0xf0,0x20,0x00,0x40,0xa4,0x48,0x10,0x20,0x48,0x94,0x08, - 0x60,0x90,0xa0,0x40,0xa8,0x90,0x68,0x00,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00, - 0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00, - 0x20,0xa8,0x70,0xf8,0x70,0xa8,0x20,0x00,0x00,0x20,0x20,0xf8,0x20,0x20,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00, - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x00, - 0x70,0x88,0x08,0x10,0x20,0x40,0xf8,0x00,0x70,0x88,0x08,0x30,0x08,0x88,0x70,0x00, - 0x10,0x30,0x50,0x90,0xf8,0x10,0x10,0x00,0xf8,0x80,0xf0,0x08,0x08,0x88,0x70,0x00, - 0x70,0x80,0xf0,0x88,0x88,0x88,0x70,0x00,0xf8,0x08,0x08,0x10,0x20,0x20,0x20,0x00, - 0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x00,0x70,0x88,0x88,0x88,0x78,0x08,0x70,0x00, - 0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60, - 0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0xf8,0x00,0xf8,0x00,0x00,0x00, - 0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00,0x70,0x88,0x08,0x10,0x20,0x00,0x20,0x00, - 0x70,0x88,0xb8,0xa8,0xb8,0x80,0x70,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x00, - 0xf0,0x88,0x88,0xf0,0x88,0x88,0xf0,0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00, - 0xf0,0x88,0x88,0x88,0x88,0x88,0xf0,0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x00, - 0xf8,0x80,0x80,0xf0,0x80,0x80,0x80,0x00,0x70,0x88,0x80,0x98,0x88,0x88,0x70,0x00, - 0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00, - 0x08,0x08,0x08,0x08,0x88,0x88,0x70,0x00,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x00, - 0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x00, - 0x88,0xc8,0xa8,0x98,0x88,0x88,0x88,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00, - 0xf0,0x88,0x88,0xf0,0x80,0x80,0x80,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x08, - 0xf0,0x88,0x88,0xf0,0x88,0x88,0x88,0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00, - 0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00, - 0x88,0x88,0x88,0x88,0x88,0x50,0x20,0x00,0x88,0x88,0x88,0x88,0xa8,0xd8,0x88,0x00, - 0x88,0x50,0x20,0x20,0x20,0x50,0x88,0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x00, - 0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x30,0x20,0x20,0x20,0x20,0x20,0x30,0x00, - 0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x30,0x10,0x10,0x10,0x10,0x10,0x30,0x00, - 0x20,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, - 0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x00, - 0x80,0x80,0xf0,0x88,0x88,0x88,0xf0,0x00,0x00,0x00,0x70,0x88,0x80,0x80,0x78,0x00, - 0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x00,0x00,0x00,0x70,0x88,0xf8,0x80,0x78,0x00, - 0x18,0x20,0x70,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x70, - 0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x20,0x00, - 0x20,0x00,0x20,0x20,0x20,0x20,0x20,0xc0,0x80,0x80,0x90,0xa0,0xe0,0x90,0x88,0x00, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0xf0,0xa8,0xa8,0xa8,0xa8,0x00, - 0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00, - 0x00,0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x08, - 0x00,0x00,0xb0,0xc8,0x80,0x80,0x80,0x00,0x00,0x00,0x78,0x80,0x70,0x08,0xf0,0x00, - 0x20,0x20,0x70,0x20,0x20,0x20,0x18,0x00,0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x00, - 0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x00,0x00,0x00,0xa8,0xa8,0xa8,0xa8,0x50,0x00, - 0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x78,0x08,0x70, - 0x00,0x00,0xf8,0x10,0x20,0x40,0xf8,0x00,0x08,0x10,0x10,0x20,0x10,0x10,0x08,0x00, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x20,0x20,0x10,0x20,0x20,0x40,0x00, - 0x00,0x68,0xb0,0x00,0x00,0x00,0x00,0x00,0x20,0x50,0x20,0x50,0xa8,0x50,0x00,0x00, - - /* theta */ - 0x70, - 0x88, - 0x88, - 0xF8, - 0x88, - 0x88, - 0x70, - 0x00, - - /* Sigma */ - 0xf8, - 0x40, - 0x20, - 0x10, - 0x20, - 0x40, - 0xf8, - 0x00, - - /* Phi */ - 0x20, - 0x70, - 0xA8, - 0xA8, - 0xA8, - 0xA8, - 0x70, - 0x20, - - /* pi */ - 0x00, - 0x00, - 0xF8, - 0x50, - 0x50, - 0x50, - 0x50, - 0x00 - }; - - dst = memory_region(REGION_GFX1); - - memcpy(dst, fontdata6x8, apexcfontdata_size); -} - -static gfx_layout fontlayout = -{ - 6, 8, /* 6*8 characters */ - apexc_charnum, /* 96+4 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* straightforward layout */ - { 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 gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &fontlayout, 0, 1 }, - { -1 } /* end of array */ -}; - - -static ADDRESS_MAP_START(apexc_mem_map, ADDRESS_SPACE_PROGRAM, 32) -#if 0 - AM_RANGE(0x0000, 0x03ff) AM_READWRITE(MRA32_RAM, MWA32_RAM) /* 1024 32-bit words (expandable to 8192) */ - AM_RANGE(0x0400, 0x1fff) AM_READWRITE(MRA32_NOP, MWA32_NOP) -#else - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA32_RAM, MWA32_RAM) - AM_RANGE(0x1000, 0x7fff) AM_READWRITE(MRA32_NOP, MWA32_NOP) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START(apexc_io_map, ADDRESS_SPACE_IO, 8) - AM_RANGE(0, 0) AM_READWRITE(tape_read, tape_write) -ADDRESS_MAP_END - - -static MACHINE_DRIVER_START(apexc) - - /* basic machine hardware */ - /* APEXC CPU @ 2.0 kHz (memory word clock frequency) */ - MDRV_CPU_ADD(APEXC, 2000) - /*MDRV_CPU_CONFIG(NULL)*/ - MDRV_CPU_PROGRAM_MAP(apexc_mem_map, 0) - MDRV_CPU_IO_MAP(apexc_io_map, 0) - /* dummy interrupt: handles the control panel */ - MDRV_CPU_VBLANK_INT(apexc_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - /* video hardware does not exist, but we display a control panel and the typewriter output */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( apexc ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 192) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(APEXC_PALETTE_SIZE) - MDRV_COLORTABLE_LENGTH(APEXC_COLORTABLE_SIZE) - - MDRV_PALETTE_INIT(apexc) - MDRV_VIDEO_START(apexc) - MDRV_VIDEO_UPDATE(apexc) - -MACHINE_DRIVER_END - -ROM_START(apexc) - /*CPU memory space*/ - ROM_REGION32_BE(0x10000, REGION_CPU1, 0) - /* Note this computer has no ROM... */ - - ROM_REGION(apexcfontdata_size, REGION_GFX1, 0) - /* space filled with our font */ -ROM_END - -static void apexc_cylinder_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cylinder */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CYLINDER; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_RESET_ON_LOAD: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_apexc_cylinder; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_apexc_cylinder; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "apc"); break; - } -} - -static void apexc_punchtape_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* punchtape */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PUNCHTAPE; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_apexc_tape; break; - case DEVINFO_PTR_LOAD: info->load = device_load_apexc_tape; break; - case DEVINFO_PTR_GET_DISPOSITIONS: info->getdispositions = apexc_get_open_mode; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap"); break; - } -} - -SYSTEM_CONFIG_START(apexc) - CONFIG_DEVICE(apexc_cylinder_getinfo) - CONFIG_DEVICE(apexc_punchtape_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -/*COMP( c. 1951, apexc53, 0, 0, apexc53, apexc, apexc, apexc, "Booth", "APEXC (as described in 1953)" , 0)*/ -COMP( 1955, apexc, /*apexc53*/0, 0, apexc, apexc, apexc, apexc, "Booth", "APEXC (as described in 1957)" , 0) diff --git a/mess/systems/apf.c b/mess/systems/apf.c deleted file mode 100644 index 2a619e06b..000000000 --- a/mess/systems/apf.c +++ /dev/null @@ -1,681 +0,0 @@ -/****************************************************************************** - - ******************************************************************************/ -#include "driver.h" -#include "vidhrdw/m6847.h" -#include "includes/apf.h" - -#include "machine/6821pia.h" -#include "machine/wd17xx.h" -#include "devices/basicdsk.h" -#include "devices/cassette.h" -#include "formats/apf_apt.h" -#include "sound/speaker.h" - - /* -0000- 2000-2003 PIA of M1000. is itself repeated until 3fff. -She controls " keypads ", the way of video and the loudspeaker. Putting to 0 one of the 4 least -significant bits of 2002, the corresponding line of keys is ***reflxed mng in 2000 (32 keys altogether). -The other four bits of 2002 control the video way. Bit 0 of 2003 controls the interruptions. Bit 3 of 2003 controls -the loudspeaker. 4000-47ff ROM of M1000. is repeated until 5fff and in e000-ffff. 6000-6003 PIA of the APF. -is itself repeated until 63ff. She controls the keyboard of the APF and the cassette. The value of the -number that represents the three bits less significant of 6002 they determine the line of eight -keys that it is ***reflxed mng in 6000. Bit 4 of 6002 controls the motor of the cassette. Bit 5 of -6002 activates or deactivates the recording. Bit 5 of 6002 indicates the level of recording in -the cassette. 6400-64ff would be the interface Here series, optional. 6500-66ff would be the -disk controller Here, optional. 6800-77ff ROM (" cartridge ") 7800-7fff Probably ROM. The BASIC -leaves frees this zone. 8000-9fff ROM (" cartridge ") A000-BFFF ram (8 Kb) C000-DFFF ram -additional (8 Kb) E000-FFFF ROM of M1000 (to see 4000-47FF) The interruption activates with -the vertical synchronism of the video. routine that it executes is in the ROM of M1000 -and puts the video in way text during a short interval, so that the first line is seen of -text screen in the superior part of the graphical screen. -*/ - -/* 6600, 6500-6503 wd179x disc controller? 6400, 6401 */ -static unsigned char keyboard_data; -static unsigned char pad_data; - -static READ8_HANDLER(apf_m1000_pia_in_a_func) -{ - return pad_data; -} - -static READ8_HANDLER(apf_m1000_pia_in_b_func) -{ - return 0x0ff; -} - -static READ8_HANDLER(apf_m1000_pia_in_ca1_func) -{ - return 0; -} - -static READ8_HANDLER(apf_m1000_pia_in_cb1_func) -{ - return 0x00; -} - -static READ8_HANDLER(apf_m1000_pia_in_ca2_func) -{ - return 0; -} - -static READ8_HANDLER(apf_m1000_pia_in_cb2_func) -{ - return 0x00; -} - - -static WRITE8_HANDLER(apf_m1000_pia_out_a_func) -{ -} - -unsigned char previous_mode; - -static WRITE8_HANDLER(apf_m1000_pia_out_b_func) -{ - pad_data = 0x0ff; - - /* bit 7..4 video control */ - /* bit 3..0 keypad line select */ - if (data & 0x08) - pad_data &= readinputport(3); - if (data & 0x04) - pad_data &= readinputport(2); - if (data & 0x02) - pad_data &= readinputport(1); - if (data & 0x01) - pad_data &= readinputport(0); - - /* 1b standard, 5b, db */ - /* 0001 */ - /* 0101 */ - /* 1101 */ - - /* multi colour graphics mode */ - /* 158 = 1001 multi-colour graphics */ - /* 222 = 1101 mono graphics */ - // if (((previous_mode^data) & 0x0f0)!=0) - { - extern UINT8 apf_m6847_attr; - - /* not sure if this is correct - need to check */ - apf_m6847_attr = 0x00; - if (data & 0x80) apf_m6847_attr |= M6847_AG; - if (data & 0x40) apf_m6847_attr |= M6847_GM2; - if (data & 0x20) apf_m6847_attr |= M6847_GM1; - if (data & 0x10) apf_m6847_attr |= M6847_GM0; - previous_mode = data; - } -} - -static WRITE8_HANDLER(apf_m1000_pia_out_ca2_func) -{ -} - -static WRITE8_HANDLER(apf_m1000_pia_out_cb2_func) -{ - speaker_level_w(0, data); -} - -/* use bit 0 to identify state of irq from pia 0 */ -/* use bit 1 to identify state of irq from pia 0 */ -/* use bit 2 to identify state of irq from pia 1 */ -/* use bit 3 to identify state of irq from pia 1 */ -/* use bit 4 to identify state of irq from video */ - -unsigned char apf_ints; - -void apf_update_ints(void) -{ - cpunum_set_input_line(0, 0, apf_ints ? HOLD_LINE : CLEAR_LINE); -} - -static void apf_m1000_irq_a_func(int state) -{ - if (state) - { - apf_ints|=1; - } - else - { - apf_ints&=~1; - } - - apf_update_ints(); -} - - -static void apf_m1000_irq_b_func(int state) -{ - //logerror("pia 0 irq b %d\n",state); - - if (state) - { - apf_ints|=2; - } - else - { - apf_ints&=~2; - } - - apf_update_ints(); - -} - -static const pia6821_interface apf_m1000_pia_interface= -{ - apf_m1000_pia_in_a_func, - apf_m1000_pia_in_b_func, - apf_m1000_pia_in_ca1_func, - apf_m1000_pia_in_cb1_func, - apf_m1000_pia_in_ca2_func, - apf_m1000_pia_in_cb2_func, - apf_m1000_pia_out_a_func, - apf_m1000_pia_out_b_func, - apf_m1000_pia_out_ca2_func, - apf_m1000_pia_out_cb2_func, - apf_m1000_irq_a_func, - apf_m1000_irq_b_func -}; - - -static READ8_HANDLER(apf_imagination_pia_in_a_func) -{ - return keyboard_data; -} - -static READ8_HANDLER(apf_imagination_pia_in_b_func) -{ - unsigned char data; - - data = 0x000; - - if (cassette_input(image_from_devtype_and_index(IO_CASSETTE,0)) > 0.0038) - data =(1<<7); - - return data; -} - -static READ8_HANDLER(apf_imagination_pia_in_ca1_func) -{ - return 0x00; -} - -static READ8_HANDLER(apf_imagination_pia_in_cb1_func) -{ - return 0x00; -} - -static READ8_HANDLER(apf_imagination_pia_in_ca2_func) -{ - return 0x00; -} - -static READ8_HANDLER(apf_imagination_pia_in_cb2_func) -{ - return 0x00; -} - - -static WRITE8_HANDLER(apf_imagination_pia_out_a_func) -{ -} - -static WRITE8_HANDLER(apf_imagination_pia_out_b_func) -{ - /* bits 2..0 = keyboard line */ - /* bit 3 = ??? */ - /* bit 4 = cassette motor */ - /* bit 5 = ?? */ - /* bit 6 = cassette write data */ - /* bit 7 = ??? */ - - int keyboard_line; - - keyboard_line = data & 0x07; - - keyboard_data = readinputport(keyboard_line+4); - - /* bit 4: cassette motor control */ - cassette_change_state(image_from_devtype_and_index(IO_CASSETTE, 0), - (data & 0x10) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, - CASSETTE_MASK_MOTOR); - - /* bit 6: cassette write */ - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 0), - (data & 0x40) ? -1.0 : 1.0); -} - -static WRITE8_HANDLER(apf_imagination_pia_out_ca2_func) -{ -} - -static WRITE8_HANDLER(apf_imagination_pia_out_cb2_func) -{ -} - -static void apf_imagination_irq_a_func(int state) -{ - if (state) - { - apf_ints|=4; - } - else - { - apf_ints&=~4; - } - - apf_update_ints(); - -} - -static void apf_imagination_irq_b_func(int state) -{ - if (state) - { - apf_ints|=8; - } - else - { - apf_ints&=~8; - } - - apf_update_ints(); - -} - -static const pia6821_interface apf_imagination_pia_interface= -{ - apf_imagination_pia_in_a_func, - apf_imagination_pia_in_b_func, - apf_imagination_pia_in_ca1_func, - apf_imagination_pia_in_cb1_func, - apf_imagination_pia_in_ca2_func, - apf_imagination_pia_in_cb2_func, - apf_imagination_pia_out_a_func, - apf_imagination_pia_out_b_func, - apf_imagination_pia_out_ca2_func, - apf_imagination_pia_out_cb2_func, - apf_imagination_irq_a_func, - apf_imagination_irq_b_func -}; - - -extern unsigned char *apf_video_ram; - -static void apf_common_init(void) -{ - apf_ints = 0; - pia_config(0, PIA_STANDARD_ORDERING,&apf_m1000_pia_interface); - pia_reset(); -} - -static MACHINE_START( apf_imagination ) -{ - pia_config(1, PIA_STANDARD_ORDERING,&apf_imagination_pia_interface); - apf_common_init(); - wd179x_init(WD_TYPE_179X,NULL); - return 0; -} - -static MACHINE_START( apf_m1000 ) -{ - apf_common_init(); - return 0; -} - -static WRITE8_HANDLER(apf_dischw_w) -{ - int drive; - - /* bit 3 is index of drive to select */ - drive = (data>>3) & 0x01; - - wd179x_set_drive(drive); - - logerror("disc w %04x %04x\n",offset,data); -} - -static READ8_HANDLER(serial_r) -{ - logerror("serial r %04x\n",offset); - return 0x00; -} - -static WRITE8_HANDLER(serial_w) -{ - logerror("serial w %04x %04x\n",offset,data); -} - -static WRITE8_HANDLER(apf_wd179x_command_w) -{ - wd179x_command_w(offset,~data); -} - -static WRITE8_HANDLER(apf_wd179x_track_w) -{ - wd179x_track_w(offset,~data); -} - -static WRITE8_HANDLER(apf_wd179x_sector_w) -{ - wd179x_sector_w(offset,~data); -} - -static WRITE8_HANDLER(apf_wd179x_data_w) -{ - wd179x_data_w(offset,~data); -} - -static READ8_HANDLER(apf_wd179x_status_r) -{ - return ~wd179x_status_r(offset); -} - -static READ8_HANDLER(apf_wd179x_track_r) -{ - return ~wd179x_track_r(offset); -} - -static READ8_HANDLER(apf_wd179x_sector_r) -{ - return ~wd179x_sector_r(offset); -} - -static READ8_HANDLER(apf_wd179x_data_r) -{ - return wd179x_data_r(offset); -} - -static ADDRESS_MAP_START(apf_imagination_map, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x00000, 0x003ff) AM_RAM AM_BASE(&apf_video_ram) AM_MIRROR(0x1c00) - AM_RANGE( 0x02000, 0x03fff) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE( 0x04000, 0x047ff) AM_ROM AM_REGION(REGION_CPU1, 0x10000) AM_MIRROR(0x1800) - AM_RANGE( 0x06000, 0x063ff) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE( 0x06400, 0x064ff) AM_READWRITE(serial_r, serial_w) - AM_RANGE( 0x06500, 0x06500) AM_READWRITE(apf_wd179x_status_r, apf_wd179x_command_w) - AM_RANGE( 0x06501, 0x06501) AM_READWRITE(apf_wd179x_track_r, apf_wd179x_track_w) - AM_RANGE( 0x06502, 0x06502) AM_READWRITE(apf_wd179x_sector_r, apf_wd179x_sector_w) - AM_RANGE( 0x06503, 0x06503) AM_READWRITE(apf_wd179x_data_r, apf_wd179x_data_w) - AM_RANGE( 0x06600, 0x06600) AM_WRITE( apf_dischw_w) - AM_RANGE( 0x06800, 0x077ff) AM_ROM - AM_RANGE( 0x07800, 0x07fff) AM_NOP - AM_RANGE( 0x08000, 0x09fff) AM_ROM - AM_RANGE( 0x0a000, 0x0dfff) AM_RAM - AM_RANGE( 0x0e000, 0x0e7ff) AM_ROM AM_REGION(REGION_CPU1, 0x10000) AM_MIRROR(0x1800) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(apf_m1000_map, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x00000, 0x003ff) AM_RAM AM_BASE(&apf_video_ram) AM_MIRROR(0x1c00) - AM_RANGE( 0x02000, 0x03fff) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE( 0x04000, 0x047ff) AM_ROM AM_REGION(REGION_CPU1, 0x10000) AM_MIRROR(0x1800) - AM_RANGE( 0x06800, 0x077ff) AM_ROM - AM_RANGE( 0x08000, 0x09fff) AM_ROM - AM_RANGE( 0x0a000, 0x0dfff) AM_RAM - AM_RANGE( 0x0e000, 0x0e7ff) AM_ROM AM_REGION(REGION_CPU1, 0x10000) AM_MIRROR(0x1800) -ADDRESS_MAP_END - -INPUT_PORTS_START( apf_m1000) - /* line 0 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q") PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w") PORT_CODE(KEYCODE_W) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r") PORT_CODE(KEYCODE_R) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t") PORT_CODE(KEYCODE_T) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y") PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u") PORT_CODE(KEYCODE_U) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i") PORT_CODE(KEYCODE_I) - - /* line 1 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o") PORT_CODE(KEYCODE_O) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p") PORT_CODE(KEYCODE_P) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s") PORT_CODE(KEYCODE_S) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h") PORT_CODE(KEYCODE_H) - - /* line 2 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v") PORT_CODE(KEYCODE_V) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b") PORT_CODE(KEYCODE_B) - - /* line 3 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) -INPUT_PORTS_END - - -INPUT_PORTS_START( apf_imagination) - /* temp assignments , these are the keypad */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT (0x0f8, 0xf8, IPT_UNUSED) - - PORT_START - PORT_BIT (0x0ff, 0xff, IPT_UNUSED) - - PORT_START - PORT_BIT (0x0ff, 0xff, IPT_UNUSED) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x0fe, 0xfe, IPT_UNUSED) - - /* assignments with ** are known to be correct */ - /* keyboard line 0 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X)/**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)/**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)/**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2)/**/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A)/**/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1)/**/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) /**/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) /**/ - - /* keyboard line 1 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) /**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) /**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R)/**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3)/**/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F)/**/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4)/**/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E)/**/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) /**/ - - /* keyboard line 2 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N)/**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)/**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T)/**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) /**/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) /**/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5)/**/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)/**/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H)/**/ - - /* keyboard line 3 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) /**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) /**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I)/**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7)/**/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K)/**/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8)/**/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U)/**/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J)/**/ - - /* keyboard line 4 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) /**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) /**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) /**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) /**/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) /**/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) /**/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) /**/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) /**/ - - /* keyboard line 5 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) /**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_QUOTE) /**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) /**/ - PORT_BIT (0x08, 0x08, IPT_UNUSED) - PORT_BIT (0x10, 0x10, IPT_UNUSED) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) /**/ - PORT_BIT (0x40, 0x40, IPT_UNUSED) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) /**/ - - /* line 6 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) /**/ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) /**/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) /**/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FUNCTION?") PORT_CODE(KEYCODE_LCONTROL) /**/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("REPEAT") PORT_CODE(KEYCODE_TAB) /**/ - - PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_5_PAD) /* same as X */ - PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_6_PAD) /* same as Z */ - - /* line 7 */ - PORT_START - PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_9_PAD) - - /* - PORT_BIT (0x01, 0x01, IPT_UNUSED) - PORT_BIT (0x02, 0x02, IPT_UNUSED) - PORT_BIT (0x04, 0x04, IPT_UNUSED) */ - PORT_BIT (0x08, 0x08, IPT_UNUSED) - PORT_BIT (0x10, 0x10, IPT_UNUSED) - PORT_BIT (0x20, 0x20, IPT_UNUSED) - PORT_BIT (0x40, 0x40, IPT_UNUSED) - PORT_BIT (0x80, 0x80, IPT_UNUSED) - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( apf_imagination ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6800, 3750000) /* 7.8336 Mhz */ - MDRV_CPU_PROGRAM_MAP(apf_imagination_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - MDRV_INTERLEAVE(0) - - MDRV_MACHINE_START( apf_imagination ) - - /* video hardware */ - MDRV_VIDEO_START(apf) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( apf_m1000 ) - MDRV_IMPORT_FROM( apf_imagination ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( apf_m1000_map, 0 ) - MDRV_MACHINE_START( apf_m1000 ) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(apfimag) - ROM_REGION(0x10000+0x0800,REGION_CPU1,0) - ROM_LOAD("apf_4000.rom",0x010000, 0x00800, CRC(2a331a33) SHA1(387b90882cd0b66c192d9cbaa3bec250f897e4f1)) - ROM_LOAD("basic_68.rom",0x06800, 0x01000, CRC(ef049ab8) SHA1(c4c12aade95dd89a4750fe7f89d57256c93da068)) - ROM_LOAD("basic_80.rom",0x08000, 0x02000, CRC(a4c69fae) SHA1(7f98aa482589bf7c5a26d338fec105e797ba43f6)) -ROM_END - -ROM_START(apfm1000) - ROM_REGION(0x10000+0x0800,REGION_CPU1,0) - ROM_LOAD("apf_4000.rom",0x010000, 0x0800, CRC(2a331a33) SHA1(387b90882cd0b66c192d9cbaa3bec250f897e4f1)) -ROM_END - -static void apfimag_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) apf_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void apfimag_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_apfimag_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "apd"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( apfimag ) - CONFIG_DEVICE(apfimag_cassette_getinfo) - CONFIG_DEVICE(apfimag_floppy_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP(1977, apfimag, 0, 0, apf_imagination, apf_imagination, 0, apfimag, "APF Electronics Inc", "APF Imagination Machine" ,GAME_NOT_WORKING) -COMP(1978, apfm1000, 0, 0, apf_m1000, apf_m1000, 0, NULL, "APF Electronics Inc", "APF M-1000" ,GAME_NOT_WORKING) diff --git a/mess/systems/apple1.c b/mess/systems/apple1.c deleted file mode 100644 index a2cbd634f..000000000 --- a/mess/systems/apple1.c +++ /dev/null @@ -1,316 +0,0 @@ -/********************************************************************** - -Apple I - -CPU: 6502 @ 1.023 MHz - (Effective speed with RAM refresh waits is 0.960 MHz.) - -RAM: 4-8 KB on main board (4 KB standard) - - Additional memory could be added via the expansion - connector, but the user was responsible for making sure - the extra memory was properly interfaced. - - Some users replaced the onboard 4-kilobit RAM chips with - 16-kilobit RAM chips, increasing on-board memory to 32 KB, - but this required modifying the RAM interface circuitry. - -ROM: 256 bytes for Monitor program - - Optional cassette interface included 256 bytes for - cassette routines. - -Interrupts: None. - (The system board had jumpers to allow interrupts, but - these were not connected in a standard system.) - -Video: Dumb terminal, based on 7 1K-bit shift registers - -Sound: None - -Hardware: Motorola 6820 PIA for keyboard and display interface - -Memory map: - -$0000-$1FFF: RAM address space - $0000-$00FF: 6502 zero page - $0024-$002B: Zero page locations used by the Monitor - $0100-$01FF: 6502 processor stack - $0200-$027F: Keyboard input buffer storage used by the Monitor - $0280-$0FFF: RAM space available for a program in a 4 KB system - $1000-$1FFF: Extra RAM space available for a program in an 8 KB system - not using cassette BASIC - -$2000-$BFFF: Unused address space, available for RAM in systems larger - than 8 KB. - -$C000-$CFFF: Address space for optional cassette interface - $C000-$C0FF: Cassette interface I/O range - $C100-$C1FF: Cassette interface ROM - -$D000-$DFFF: I/O address space - $D010-$D013: Motorola 6820 PIA registers. - $D010: Keyboard input port - $D011: Control register for keyboard input port, with - key-available flag. - $D012: Display output port (bit 7 is a status input) - $D013: Control register for display output port - (PIA registers also mirrored at $D014-$D017, $D018-$D01B, $D01C-$D01F, - $D030-$D03F, $D050-$D05F, ... , $DFD0-$DFDF, $DFF0-$DFFF.) - -$E000-$EFFF: Extra RAM space available for a program in an 8 KB system - modified to use cassette BASIC - (The system simulated here always includes this RAM.) - -$F000-$FFFF: ROM address space - $FF00-$FFFF: Apple Monitor ROM - -**********************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "machine/6821pia.h" -#include "vidhrdw/generic.h" -#include "includes/apple1.h" -#include "devices/snapquik.h" -#include "devices/cassette.h" -#include "inputx.h" - -/* port i/o functions */ - -/* memory w/r functions */ - -static ADDRESS_MAP_START( apple1_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_NOP - - /* Cassette interface I/O space: */ - AM_RANGE(0xc000, 0xc0ff) AM_READWRITE(apple1_cassette_r, apple1_cassette_w) - /* Cassette interface ROM: */ - AM_RANGE(0xc100, 0xc1ff) AM_ROM - - AM_RANGE(0xc200, 0xcfff) AM_NOP - - /* In $D000-$DFFF, PIA is selected by address bit 4 being high, - and PIA registers are addressed with address bits 0-1. All - other address bits are ignored. Thus $D010-$D013 is mirrored - at all $Dxxx addresses with bit 4 high. */ - AM_RANGE(0xd010, 0xd013) AM_MIRROR(0x0fec) AM_READWRITE(pia_0_r, pia_0_w) - /* $Dxxx addresses with bit 4 low are NOPs. - (Note this uses AM_SPACE, not AM_RANGE.) */ - AM_SPACE(0xd000, 0xf010) AM_NOP - - /* We always include the remapped RAM for cassette BASIC, both for - simplicity and to allow the running of BASIC programs. */ - AM_RANGE(0xe000, 0xefff) AM_RAM - - AM_RANGE(0xf000, 0xfeff) AM_NOP - - /* Monitor ROM: */ - AM_RANGE(0xff00, 0xffff) AM_ROM -ADDRESS_MAP_END - -/* graphics output */ - -gfx_layout apple1_charlayout = -{ - 7, 8, /* character cell is 7 pixels wide by 8 pixels high */ - 64, /* 64 characters in 2513 character generator ROM */ - 1, /* 1 bitplane */ - { 0 }, - /* 5 visible pixels per row, starting at bit 3, with MSB being 0: */ - { 3, 4, 5, 6, 7 }, - /* pixel rows stored from top to bottom: */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8 * 8 /* 8 8-bit pixel rows per character */ -}; - -static gfx_decode apple1_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &apple1_charlayout, 0, 1}, - { -1 } -}; - -/* Monochrome monitors were not easy to get when the Apple I was - introduced, so most systems used a television display with an RF - modulator. Thus white seems like a more accurate foreground color - than green. */ - -static unsigned char apple1_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xff, 0xff, 0xff /* White */ -}; - -static unsigned short apple1_colortable[] = -{ - 0, 1 -}; - -static PALETTE_INIT( apple1 ) -{ - palette_set_colors(machine, 0, apple1_palette, sizeof(apple1_palette) / 3); - memcpy(colortable, apple1_colortable, sizeof (apple1_colortable)); -} - -/* keyboard input */ - -INPUT_PORTS_START( apple1 ) - PORT_START /* 0: first sixteen keys */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') - PORT_START /* 1: second sixteen keys */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_START /* 2: third sixteen keys */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backarrow") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR('_') - PORT_START /* 3: fourth sixteen keys */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) PORT_CHAR('\x1b') - PORT_START /* 4: shift keys */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_START /* 5: RESET and CLEAR SCREEN pushbutton switches */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F12) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_F2) -INPUT_PORTS_END - -/* sound output */ - -/* machine definition */ -static MACHINE_DRIVER_START( apple1 ) - /* basic machine hardware */ - /* Actual CPU speed is 1.023 MHz, but RAM refresh effectively - slows it to 960 kHz. */ - MDRV_CPU_ADD_TAG("main", M6502, 960000) /* 1.023 Mhz */ - MDRV_CPU_PROGRAM_MAP(apple1_map, 0) - MDRV_SCREEN_REFRESH_RATE(60) - /* Video is blanked for 70 out of 262 scanlines per refresh cycle. - Each scanline is composed of 65 character times, 40 of which - are visible, and each character time is 7 dot times; a dot time - is 2 cycles of the fundamental 14.31818 MHz oscillator. The - total blanking time is about 4450 microseconds. */ - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818))) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( apple1 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - /* It would be nice if we could implement some sort of display - overscan here. */ - MDRV_SCREEN_SIZE(40 * 7, 24 * 8) - MDRV_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1) - MDRV_GFXDECODE(apple1_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(sizeof (apple1_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof(apple1_colortable)/sizeof(unsigned short)) - MDRV_PALETTE_INIT(apple1) - - MDRV_VIDEO_START(apple1) - MDRV_VIDEO_UPDATE(apple1) -MACHINE_DRIVER_END - -ROM_START(apple1) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("apple1.rom", 0xff00, 0x0100, CRC(a30b6af5) SHA1(224767aa499dc98767e042f375ced1359be8a35f)) - /* 256-byte cassette interface ROM: */ - ROM_LOAD("cassette.rom", 0xc100, 0x0100, CRC(11da1692) SHA1(2c536977bd85797453dba0646e3e94e9ff4f9236)) - /* 512-byte Signetics 2513 character generator ROM: */ - ROM_REGION(0x0200, REGION_GFX1,0) - ROM_LOAD("apple1.vid", 0x0000, 0x0200, CRC(a7e567fc) SHA1(b18aae0a2d4f92f5a7e22640719bbc4652f3f4ee)) -ROM_END - -static void apple1_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "snp"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_apple1; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void apple1_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(apple1) - CONFIG_DEVICE(apple1_snapshot_getinfo) - CONFIG_DEVICE(apple1_cassette_getinfo) - /* Note that because we always include 4K of RAM at $E000-$EFFF, - the RAM amounts listed here will be 4K below the actual RAM - total. */ - CONFIG_RAM (0x1000) - CONFIG_RAM (0x2000) - CONFIG_RAM (0x3000) - CONFIG_RAM (0x4000) - CONFIG_RAM (0x5000) - CONFIG_RAM (0x6000) - CONFIG_RAM (0x7000) - CONFIG_RAM (0x8000) - CONFIG_RAM (0x9000) - CONFIG_RAM (0xA000) - CONFIG_RAM (0xB000) - CONFIG_RAM_DEFAULT (0xC000) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1976, apple1, 0, 0, apple1, apple1, apple1, apple1, "Apple Computer", "Apple I" , 0) diff --git a/mess/systems/apple2.c b/mess/systems/apple2.c deleted file mode 100644 index 19c8a6805..000000000 --- a/mess/systems/apple2.c +++ /dev/null @@ -1,945 +0,0 @@ -/*************************************************************************** - -Apple II - -This family of computers bank-switches everything up the wazoo. - -Remarkable features -------------------- - -Apple II (original model) -------------------------- - -RAM: 4/8/12/16/20/24/32/36/48 KB (according to the manual) - -ROM: 8 KB mapped to $E000-$FFFF -Empty ROM sockets mapped at $D000-$D7FF (usually occupied by Programmer's -Aid #1 chip) and $D800-$DFFF (usually empty, but a couple of 3rd party -chips were produced) - -HI-RES Palette has only 4 colors: 0 - black, 1 - green, 2 - purple, -3 - white - -Due to an hardware bug, green/purple artifacts are present in text mode -too! - -No 80 columns -No Open/Solid Apple keys -No Up/Down arrows key - -Users often connected the SHIFT key to the paddle #2 button (mapped to -$C063) in order to inform properly written software that characters were -to be intended upper/lower case - -*** TODO: Should MESS emulate this via a dipswitch? - -Integer BASIC in ROM, AppleSoft must be loaded from disk or tape - -No AutoStart ROM: once the machine was switched on, the user had to manually -perform the reset cycle pressing, guess what, RESET ;) - -Apple II+ ---------- - -RAM: 16/32/48 KB + extra 16 KB at $C000 if using Apple Language Card -ROM: 12 KB mapped to $D000-$DFFF - -HI-RES Palette has four more entries: 4 - black (again), 5 - orange, -6 - blue, 7 - white (again) - -No more artifact bug in text mode - -No 80 columns -No Open/Solid Apple keys -NO Up/Down arrows keys - -Users still did the SHIFT key mod - -AppleSoft BASIC in ROM - -AutoStart ROM - no more need to press RESET after switching the machine on - -Apple IIe ---------- - -RAM: 64 KB + optional bank of 64 KB (see 80 columns card) -ROM: 16 KB - -80 columns card: this card was available in two versions - one equipped -with 1 KB of memory to provide the extra RAM for the display, the other -equipped with full 64 KB of RAM - the 80 columns card is not included -in the standard configuration and is available as add-on. - -Open/Solid Apple keys mapped to buttons 0 and 1 of the paddle #1 -Up/Down arrows keys -Connector for an optional numeric keypad - -Apple begins manifacturing its machines with the SHIFT key mod - -Revision A motherboards cannot handle double-hires graphics, Revision B can - -*** TODO: Should MESS emulate this via a dipswitch? - -Apple IIe (enhanced) --------------------- - -The enhancement consists in bugfix of the ROM code, a 65c02 instead of the -6502 and a change in the character generator ROM which now includes the -so called "MouseText" characters (thus, no flashing characters in 80 -columns mode) - -Double hi-res mode is supported - -Apple IIe (Platinum) --------------------- - -Identical to IIe enhanced except for: - -The numerical keypad is integrated into the main keyboard (although the -internal connector is still present) - -The CLEAR key on the keypad generates the same character of the ESC key, -but some users did an hardware modification so that it generates CTRL-X - -*** TODO: Should MESS emulate this via a dipswitch? - -The 64 KB 80 columns card is built in - -Due to the SHIFT key mod, if the user press both SHIFT and the paddle -button where the shift key was connected, a short circuit is caused -and the power supply is shut down! - -Apple IIc ---------- - -Same as IIe enhanced (Rev B) except for: - -There are no slots in hardware. The machine however sees (for compatibility -reasons): - -Two Super Serial Cards in slots 1-2 -80 columns card (64 KB version) in slot 3 -Mouse in slot 4 -Easter Egg in slot 5 (!) -Disk II in slot 6 -External 5.25 drive in slot 7 - -MouseText characters - -No numerical keypad - -Switchables keyboard layouts (the user, via an external switch, can choose -between two layouts, i.e. US and German, and in the USA QWERTY and Dvorak) - -*** TODO: Should MESS emulate this? - -Apple IIc (UniDisk 3.5) ------------------------ - -Identical to IIc except for: - -ROM: 32 KB - -The disk firmware can handle up to four 3.5 disk drives or three 3.5 drives -and a 5.25 drive - -Preliminary support (but not working and never completed) for AppleTalk -network in slot 7 - -Apple IIc (Original Memory Expansion) -------------------------------------- - -ROMSET NOT DUMPED - -Identical to IIc except for: - -Support for Memory Expansion Board (mapped to slot 4) -This card can provide up to 1 MB of RAM in increments of 256 MB -The firmware in ROM sees the extra RAM as a RAMdisk - -Since the expansion is mapped to slot 4, mouse is now mapped to slot 7 - -Apple IIc (Revised Memory Expansion) ------------------------------------- - -ROMSET NOT DUMPED - -Identical to IIc (OME) except for bugfixes - -Apple IIc Plus --------------- - -Identical to IIc (RME) except for: - -The 65c02 works at 4MHz - -The machine has an internal "Apple 3.5" drive (which is DIFFERENT from the -UniDisk 3.5 drive!) - -The external drive port supports not only 5.25 drives but also UniDisk and -Apple 3.5 drives, allowing via daisy-chaining any combination of UniDisk, -Apple 3.5 and Apple 5.25 drives - up to three devices - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "includes/apple2.h" -#include "machine/ay3600.h" -#include "devices/appldriv.h" -#include "devices/mflopimg.h" -#include "formats/ap2_dsk.h" -#include "sound/ay8910.h" - -static ADDRESS_MAP_START( apple2_map, ADDRESS_SPACE_PROGRAM, 8 ) -ADDRESS_MAP_END - - -/************************************************************************** -***************************************************************************/ - -#define JOYSTICK_DELTA 80 -#define JOYSTICK_SENSITIVITY 50 -#define JOYSTICK_AUTOCENTER 80 -#define PADDLE_DELTA 10 -#define PADDLE_SENSITIVITY 10 -#define PADDLE_AUTOCENTER 0 - -static INPUT_PORTS_START( apple2_joystick ) - PORT_START_TAG("joystick_1_x") /* Joystick 1 X Axis */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_NAME("P1 Joystick X") - PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) - PORT_KEYDELTA(JOYSTICK_DELTA) - PORT_CENTERDELTA(JOYSTICK_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(1) PORT_RESET - PORT_CODE_DEC(KEYCODE_4_PAD) PORT_CODE_INC(KEYCODE_6_PAD) - PORT_CODE_DEC(JOYCODE_1_LEFT) PORT_CODE_INC(JOYCODE_1_RIGHT) - - PORT_START_TAG("joystick_1_y") /* Joystick 1 Y Axis */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y) PORT_NAME("P1 Joystick Y") - PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) - PORT_KEYDELTA(JOYSTICK_DELTA) - PORT_CENTERDELTA(JOYSTICK_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(1) PORT_RESET - PORT_CODE_DEC(KEYCODE_8_PAD) PORT_CODE_INC(KEYCODE_2_PAD) - PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(JOYCODE_1_DOWN) - - PORT_START_TAG("joystick_2_x") /* Joystick 2 X Axis */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_NAME("P2 Joystick X") - PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) - PORT_KEYDELTA(JOYSTICK_DELTA) - PORT_CENTERDELTA(JOYSTICK_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(2) PORT_RESET - PORT_CODE_DEC(JOYCODE_2_LEFT) PORT_CODE_INC(JOYCODE_2_RIGHT) - - PORT_START_TAG("joystick_2_y") /* Joystick 2 Y Axis */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y) PORT_NAME("P2 Joystick Y") - PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) - PORT_KEYDELTA(JOYSTICK_DELTA) - PORT_CENTERDELTA(JOYSTICK_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(2) PORT_RESET - PORT_CODE_DEC(JOYCODE_2_UP) PORT_CODE_INC(JOYCODE_2_DOWN) -INPUT_PORTS_END - -static INPUT_PORTS_START( apple2_paddle ) - PORT_START_TAG("paddle_0") - PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_NAME("P1 Paddle 0") - PORT_SENSITIVITY(PADDLE_SENSITIVITY) - PORT_KEYDELTA(PADDLE_DELTA) - PORT_CENTERDELTA(PADDLE_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(1) PORT_RESET - PORT_CODE_DEC(KEYCODE_4_PAD) PORT_CODE_INC(KEYCODE_6_PAD) - PORT_CODE_DEC(JOYCODE_1_LEFT) PORT_CODE_INC(JOYCODE_1_RIGHT) - - PORT_START_TAG("paddle_1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_NAME("P1 Paddle 1") - PORT_SENSITIVITY(PADDLE_SENSITIVITY) - PORT_KEYDELTA(PADDLE_DELTA) - PORT_CENTERDELTA(PADDLE_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(1) PORT_RESET - PORT_CODE_DEC(KEYCODE_8_PAD) PORT_CODE_INC(KEYCODE_2_PAD) - PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(JOYCODE_1_DOWN) - - PORT_START_TAG("paddle_2") - PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_NAME("P2 Paddle 0") - PORT_SENSITIVITY(PADDLE_SENSITIVITY) - PORT_KEYDELTA(PADDLE_DELTA) - PORT_CENTERDELTA(PADDLE_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(2) PORT_RESET - PORT_CODE_DEC(JOYCODE_2_LEFT) PORT_CODE_INC(JOYCODE_2_RIGHT) - - PORT_START_TAG("paddle_3") - PORT_BIT( 0xff, 0x80, IPT_PADDLE) PORT_NAME("P2 Paddle 1") - PORT_SENSITIVITY(PADDLE_SENSITIVITY) - PORT_KEYDELTA(PADDLE_DELTA) - PORT_CENTERDELTA(PADDLE_AUTOCENTER) - PORT_MINMAX(0,0xff) PORT_PLAYER(2) PORT_RESET - PORT_CODE_DEC(JOYCODE_2_UP) PORT_CODE_INC(JOYCODE_2_DOWN) -INPUT_PORTS_END - -static INPUT_PORTS_START( apple2_gameport ) - PORT_INCLUDE( apple2_joystick ) - //PORT_INCLUDE( apple2_paddle ) -INPUT_PORTS_END - -INPUT_PORTS_START( apple2 ) - PORT_START_TAG("keyb_0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - - PORT_START_TAG("keyb_1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - - PORT_START_TAG("keyb_2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - - PORT_START_TAG("keyb_3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - - PORT_START_TAG("keyb_4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - - PORT_START_TAG("keyb_5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M ]") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR(']') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N ^") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('^') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P @") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('@') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - - PORT_START_TAG("keyb_6") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - - PORT_START_TAG("keyb_special") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_CODE(KEYCODE_ENTER_PAD)PORT_CODE(JOYCODE_1_BUTTON2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_CODE(JOYCODE_2_BUTTON1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RESET") PORT_CODE(KEYCODE_F12) - - PORT_START_TAG("keyb_repeat") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("REPT") PORT_CODE(KEYCODE_BACKSLASH)PORT_CHAR('\\') - - /* other devices */ - PORT_INCLUDE( apple2_gameport ) -INPUT_PORTS_END - -INPUT_PORTS_START( apple2p ) - PORT_INCLUDE( apple2 ) - - PORT_START_TAG("reset_dip") - PORT_DIPNAME( 0x01, 0x01, "Reset" ) - PORT_DIPSETTING( 0x01, "CTRL-RESET" ) - PORT_DIPSETTING( 0x00, "RESET" ) -INPUT_PORTS_END - -static INPUT_PORTS_START( apple2_common ) - PORT_START_TAG("keyb_0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE)PORT_CHAR(8) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(10) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - - PORT_START_TAG("keyb_1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - - PORT_START_TAG("keyb_2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') - - PORT_START_TAG("keyb_3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') - - PORT_START_TAG("keyb_4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j') - - PORT_START_TAG("keyb_5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r') - - PORT_START_TAG("keyb_6") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w') - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y') - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z') -INPUT_PORTS_END - -static INPUT_PORTS_START( apple2_keypad ) - PORT_START_TAG("keypad_1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 (KP)") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 (KP)") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 (KP)") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 (KP)") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 (KP)") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 (KP)") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 (KP)") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 (KP)") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) - - PORT_START_TAG("keypad_2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (KP)") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (KP)") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ (KP)") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("* (KP)") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- (KP)") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ (KP)") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". (KP)") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter (KP)")PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) -INPUT_PORTS_END - -static INPUT_PORTS_START( apple2_special ) - PORT_START_TAG("keyb_special") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Open Apple") PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Solid Apple") PORT_CODE(KEYCODE_RALT) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_CODE(KEYCODE_ENTER_PAD)PORT_CODE(JOYCODE_1_BUTTON2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_CODE(JOYCODE_2_BUTTON1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RESET") PORT_CODE(KEYCODE_F12) -INPUT_PORTS_END - -INPUT_PORTS_START( apple2e ) - PORT_INCLUDE( apple2_common ) - PORT_INCLUDE( apple2_special ) - PORT_INCLUDE( apple2_gameport ) -INPUT_PORTS_END - -INPUT_PORTS_START( apple2ep ) - PORT_INCLUDE( apple2_common ) - PORT_INCLUDE( apple2_keypad ) - PORT_INCLUDE( apple2_special ) - PORT_INCLUDE( apple2_gameport ) -INPUT_PORTS_END - -/* according to Steve Nickolas (author of Dapple), our original palette would - * have been more appropriate for an Apple IIgs. So we've substituted in the - * Robert Munafo palette instead, which is more accurate on 8-bit Apples - */ -static const unsigned char apple2_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xE3, 0x1E, 0x60, /* Dark Red */ - 0x60, 0x4E, 0xBD, /* Dark Blue */ - 0xFF, 0x44, 0xFD, /* Purple */ - 0x00, 0xA3, 0x60, /* Dark Green */ - 0x9C, 0x9C, 0x9C, /* Dark Gray */ - 0x14, 0xCF, 0xFD, /* Medium Blue */ - 0xD0, 0xC3, 0xFF, /* Light Blue */ - 0x60, 0x72, 0x03, /* Brown */ - 0xFF, 0x6A, 0x3C, /* Orange */ - 0x9C, 0x9C, 0x9C, /* Light Grey */ - 0xFF, 0xA0, 0xD0, /* Pink */ - 0x14, 0xF5, 0x3C, /* Light Green */ - 0xD0, 0xDD, 0x8D, /* Yellow */ - 0x72, 0xFF, 0xD0, /* Aquamarine */ - 0xFF, 0xFF, 0xFF /* White */ -}; - -static gfx_layout apple2_text_layout = -{ - 14,8, /* 14*8 characters */ - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout apple2_dbltext_layout = -{ - 7,8, /* 7*8 characters */ - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 1, 2, 3, 4, 5, 6, 7 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_decode apple2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &apple2_text_layout, 0, 2 }, - { REGION_GFX1, 0x0000, &apple2_dbltext_layout, 0, 2 }, - { -1 } /* end of array */ -}; - -static gfx_layout apple2e_text_layout = -{ - 14,8, /* 14*8 characters */ - 1024, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout apple2e_dbltext_layout = -{ - 7,8, /* 7*8 characters */ - 1024, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 7, 6, 5, 4, 3, 2, 1 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_decode apple2e_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &apple2e_text_layout, 0, 2 }, - { REGION_GFX1, 0x0000, &apple2e_dbltext_layout, 0, 2 }, - { -1 } /* end of array */ -}; - -static const unsigned short apple2_colortable[] = -{ - 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, - 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, - 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, - 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, - 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, - 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, - 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, - 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, - 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, - 4, 8, 4, 9, 4, 10, 4, 11, 4, 12, 4, 13, 4, 14, 4, 15, - 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, - 5, 8, 5, 9, 5, 10, 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, - 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, - 6, 8, 6, 9, 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, - 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, - 7, 8, 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 7, 14, 7, 15, - 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, - 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 8, 13, 8, 14, 8, 15, - 9, 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, - 9, 8, 9, 9, 9, 10, 9, 11, 9, 12, 9, 13, 9, 14, 9, 15, - 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5, 10, 6, 10, 7, - 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 10, 13, 10, 14, 10, 15, - 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, - 11, 8, 11, 9, 11, 10, 11, 11, 11, 12, 11, 13, 11, 14, 11, 15, - 12, 0, 12, 1, 12, 2, 12, 3, 12, 4, 12, 5, 12, 6, 12, 7, - 12, 8, 12, 9, 12, 10, 12, 11, 12, 12, 12, 13, 12, 14, 12, 15, - 13, 0, 13, 1, 13, 2, 13, 3, 13, 4, 13, 5, 13, 6, 13, 7, - 13, 8, 13, 9, 13, 10, 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, - 14, 0, 14, 1, 14, 2, 14, 3, 14, 4, 14, 5, 14, 6, 14, 7, - 14, 8, 14, 9, 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, - 15, 0, 15, 1, 15, 2, 15, 3, 15, 4, 15, 5, 15, 6, 15, 7, - 15, 8, 15, 9, 15, 10, 15, 11, 15, 12, 15, 13, 15, 14, 15, 15 -}; - - -/* Initialize the palette */ -PALETTE_INIT( apple2 ) -{ - palette_set_colors(machine, 0, apple2_palette, sizeof(apple2_palette) / 3); - memcpy(colortable, apple2_colortable, sizeof(apple2_colortable)); -} - -static struct AY8910interface ay8910_interface = -{ - NULL -}; - -static MACHINE_DRIVER_START( apple2_common ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ - MDRV_CPU_PROGRAM_MAP(apple2_map, 0) - MDRV_CPU_VBLANK_INT(apple2_interrupt, 192/8) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( apple2 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(280*2, 192) - MDRV_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) - MDRV_PALETTE_LENGTH(sizeof(apple2_palette)/3) - MDRV_COLORTABLE_LENGTH(sizeof(apple2_colortable)/sizeof(unsigned short)) - MDRV_PALETTE_INIT(apple2) - - MDRV_VIDEO_START(apple2) - MDRV_VIDEO_UPDATE(apple2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD_TAG("A2DAC", DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MDRV_SOUND_ADD(AY8910, 1022727) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MDRV_SOUND_ADD(AY8910, 1022727) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( apple2 ) - MDRV_IMPORT_FROM( apple2_common ) - MDRV_GFXDECODE(apple2_gfxdecodeinfo) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( apple2p ) - MDRV_IMPORT_FROM( apple2_common ) - MDRV_VIDEO_START(apple2p) - MDRV_GFXDECODE(apple2_gfxdecodeinfo) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ace100 ) - MDRV_IMPORT_FROM( apple2_common ) - MDRV_VIDEO_START(apple2p) - MDRV_GFXDECODE(apple2_gfxdecodeinfo) -MACHINE_DRIVER_END - -ROM_START(las3000) - ROM_REGION(0x0800,REGION_GFX1,0) - ROM_LOAD ( "a2.chr", 0x0000, 0x0800, CRC(64f415c6) SHA1(f9d312f128c9557d9d6ac03bfad6c3ddf83e5659)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD ( "las3000.rom", 0x0000, 0x8000, CRC(9C7AEB09) SHA1(3302ADF41E258CF50210C19736948C8FA65E91DE)) - ROM_LOAD ( "l3kdisk.rom", 0x0500, 0x0100, CRC(2D4B1584) SHA1(989780B77E100598124DF7B72663E5A31A3339C0)) -ROM_END - -MACHINE_DRIVER_START( apple2e ) - MDRV_IMPORT_FROM( apple2_common ) - MDRV_VIDEO_START(apple2e) - MDRV_GFXDECODE(apple2e_gfxdecodeinfo) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( apple2ee ) - MDRV_IMPORT_FROM( apple2e ) - MDRV_CPU_REPLACE("main", M65C02, 1021800) /* close to actual CPU frequency of 1.020484 MHz */ -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( apple2c ) - MDRV_IMPORT_FROM( apple2ee ) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(apple2) - ROM_REGION(0x0800,REGION_GFX1,0) - ROM_LOAD ( "a2.chr", 0x0000, 0x0800, CRC(64f415c6) SHA1(f9d312f128c9557d9d6ac03bfad6c3ddf83e5659)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD_OPTIONAL ( "progaid1.rom", 0x1000, 0x0800, CRC(4234e88a) SHA1(c9a81d704dc2f0c3416c20f9c4ab71fedda937ed)) - -/* The area $D800-$DFFF in Apple II is reserved for 3rd party add-ons: - Maybe MESS should map this space to a CARTSLOT device? */ - - ROM_LOAD ( "a2.e0", 0x2000, 0x0800, CRC(c0a4ad3b) SHA1(bf32195efcb34b694c893c2d342321ec3a24b98f)) - ROM_LOAD ( "a2.e8", 0x2800, 0x0800, CRC(a99c2cf6) SHA1(9767d92d04fc65c626223f25564cca31f5248980)) - ROM_LOAD ( "a2.f0", 0x3000, 0x0800, CRC(62230d38) SHA1(f268022da555e4c809ca1ae9e5d2f00b388ff61c)) - ROM_LOAD ( "a2.f8", 0x3800, 0x0800, CRC(020a86d0) SHA1(52a18bd578a4694420009cad7a7a5779a8c00226)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2p) - ROM_REGION(0x0800,REGION_GFX1,0) - ROM_LOAD ( "a2.chr", 0x0000, 0x0800, CRC(64f415c6) SHA1(f9d312f128c9557d9d6ac03bfad6c3ddf83e5659)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ( "a2p.d0", 0x1000, 0x0800, CRC(6f05f949) SHA1(0287ebcef2c1ce11dc71be15a99d2d7e0e128b1e)) - ROM_LOAD ( "a2p.d8", 0x1800, 0x0800, CRC(1f08087c) SHA1(a75ce5aab6401355bf1ab01b04e4946a424879b5)) - ROM_LOAD ( "a2p.e0", 0x2000, 0x0800, CRC(2b8d9a89) SHA1(8d82a1da63224859bd619005fab62c4714b25dd7)) - ROM_LOAD ( "a2p.e8", 0x2800, 0x0800, CRC(5719871a) SHA1(37501be96d36d041667c15d63e0c1eff2f7dd4e9)) - ROM_LOAD ( "a2p.f0", 0x3000, 0x0800, CRC(9a04eecf) SHA1(e6bf91ed28464f42b807f798fc6422e5948bf581)) - ROM_LOAD ( "a2p.f8", 0x3800, 0x0800, CRC(079589c4) SHA1(a28852ff997b4790e53d8d0352112c4b1a395098)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2jp) - ROM_REGION(0x0800,REGION_GFX1,0) - ROM_LOAD ( "a2jp.chr", 0x0000, 0x0800, CRC(487104b5) SHA1(0a382be58db5215c4a3de53b19a72fab660d5da2)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ( "a2p.d0", 0x1000, 0x0800, CRC(6f05f949) SHA1(0287ebcef2c1ce11dc71be15a99d2d7e0e128b1e)) - ROM_LOAD ( "a2p.d8", 0x1800, 0x0800, CRC(1f08087c) SHA1(a75ce5aab6401355bf1ab01b04e4946a424879b5)) - ROM_LOAD ( "a2p.e0", 0x2000, 0x0800, CRC(2b8d9a89) SHA1(8d82a1da63224859bd619005fab62c4714b25dd7)) - ROM_LOAD ( "a2p.e8", 0x2800, 0x0800, CRC(5719871a) SHA1(37501be96d36d041667c15d63e0c1eff2f7dd4e9)) - ROM_LOAD ( "a2p.f0", 0x3000, 0x0800, CRC(9a04eecf) SHA1(e6bf91ed28464f42b807f798fc6422e5948bf581)) - ROM_LOAD ( "a2jp.f8", 0x3800, 0x0800, CRC(6ea8379b) SHA1(00a75ae3b58e1917ad640249366f654608589cf4)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(ace100) - ROM_REGION(0x0800,REGION_GFX1,0) - ROM_LOAD ( "a2.chr", 0x0000, 0x0800, NO_DUMP) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ( "ace100.rom", 0x1000, 0x3000, CRC(9d5ec94f) SHA1(8f2b3f2561788bebc7a805f620ec9e7ade973460)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2e) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2ealt.chr", 0x1000, 0x1000,CRC(816a86f1) SHA1(58ad0008df72896a18601e090ee0d58155ffa5be)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ( "a2e.cd", 0x0000, 0x2000, CRC(e248835e) SHA1(523838c19c79f481fa02df56856da1ec3816d16e)) - ROM_LOAD ( "a2e.ef", 0x2000, 0x2000, CRC(fc3d59d8) SHA1(8895a4b703f2184b673078f411f4089889b61c54)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2ee) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ( "a2ee.cd", 0x0000, 0x2000, CRC(443aa7c4) SHA1(3aecc56a26134df51e65e17f33ae80c1f1ac93e6)) - ROM_LOAD ( "a2ee.ef", 0x2000, 0x2000, CRC(95e10034) SHA1(afb09bb96038232dc757d40c0605623cae38088e)) - ROM_LOAD ( "disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2ep) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x4700,REGION_CPU1,0) - ROM_LOAD ("a2ept.cf", 0x0000, 0x4000, CRC(1d70b193) SHA1(b8ea90abe135a0031065e01697c4a3a20d51198b)) - ROM_LOAD ("disk2_33.rom", 0x4500, 0x0100, CRC(ce7144f6) SHA1(d4181c9f046aafc3fb326b381baac809d9e38d16)) /* Disk II ROM - DOS 3.3 version */ -ROM_END - -ROM_START(apple2c) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x4000,REGION_CPU1,0) - ROM_LOAD ( "a2c.128", 0x0000, 0x4000, CRC(f0edaa1b) SHA1(1a9b8aca5e32bb702ddb7791daddd60a89655729)) -ROM_END - -ROM_START(apple2c0) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("a2c.256", 0x0000, 0x8000, CRC(c8b979b3) SHA1(10767e96cc17bad0970afda3a4146564e6272ba1)) -ROM_END - -ROM_START(apple2c3) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("a2c.256", 0x0000, 0x8000, CRC(bc5a79ff) SHA1(5338d9baa7ae202457b6500fde5883dbdc86e5d3)) -ROM_END - -ROM_START(apple2c4) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("a2c.256", 0x0000, 0x8000, CRC(06f53328) SHA1(015061597c4cda7755aeb88b735994ffd2f235ca)) -ROM_END - -ROM_START(laser128) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("laser128.256", 0x0000, 0x8000, CRC(39E59ED3) SHA1(CBD2F45C923725BFD57F8548E65CC80B13BC18DA)) -ROM_END - -ROM_START(las128ex) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("las128ex.256", 0x0000, 0x8000, CRC(B67C8BA1) SHA1(8BD5F82A501B1CF9D988C7207DA81E514CA254B0)) -ROM_END - - -ROM_START(apple2cp) - ROM_REGION(0x2000,REGION_GFX1,0) - ROM_LOAD ( "a2e.chr", 0x0000, 0x1000,CRC(b081df66) SHA1(7060de104046736529c1e8a687a0dd7b84f8c51b)) - ROM_LOAD ( "a2eealt.chr", 0x1000, 0x1000,CRC(2651014d) SHA1(b2b5d87f52693817fc747df087a4aa1ddcdb1f10)) - - ROM_REGION(0x8700,REGION_CPU1,0) - ROM_LOAD("a2cplus.mon", 0x0000, 0x8000, CRC(0b996420) SHA1(1a27ae26966bbafd825d08ad1a24742d3e33557c)) -ROM_END - - -static void apple2_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_APPLE525_SPINFRACT_DIVIDEND: info->i = 15; break; - case DEVINFO_INT_APPLE525_SPINFRACT_DIVISOR: info->i = 16; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME+0: strcpy(info->s = device_temp_str(), "slot6disk1"); break; - case DEVINFO_STR_NAME+1: strcpy(info->s = device_temp_str(), "slot6disk2"); break; - case DEVINFO_STR_SHORT_NAME+0: strcpy(info->s = device_temp_str(), "s6d1"); break; - case DEVINFO_STR_SHORT_NAME+1: strcpy(info->s = device_temp_str(), "s6d2"); break; - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "Slot 6 Disk #1"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "Slot 6 Disk #2"); break; - - default: apple525_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(apple2_common) - CONFIG_DEVICE(apple2_floppy_getinfo) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(apple2) - CONFIG_IMPORT_FROM( apple2_common ) - CONFIG_RAM (4 * 1024) - CONFIG_RAM (8 * 1024) - CONFIG_RAM (12 * 1024) - CONFIG_RAM (16 * 1024) - CONFIG_RAM (20 * 1024) - CONFIG_RAM (24 * 1024) - CONFIG_RAM (32 * 1024) - CONFIG_RAM (36 * 1024) - CONFIG_RAM (48 * 1024) - CONFIG_RAM_DEFAULT (64 * 1024) /* At the moment the RAM bank $C000-$FFFF is available only if you choose */ - /* default configuration: on real machine is present also in configurations */ - /* with less memory, provided that the language card is installed */ -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(apple2p) - CONFIG_IMPORT_FROM( apple2_common ) - CONFIG_RAM (16 * 1024) - CONFIG_RAM (32 * 1024) - CONFIG_RAM (48 * 1024) - CONFIG_RAM_DEFAULT (64 * 1024) /* At the moment the RAM bank $C000-$FFFF is available only if you choose */ - /* default configuration: on real machine is present also in configurations */ - /* with less memory, provided that the language card is installed */ -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(apple2e) - CONFIG_IMPORT_FROM( apple2_common ) - CONFIG_RAM (64 * 1024) - CONFIG_RAM_DEFAULT (128 * 1024) -SYSTEM_CONFIG_END - - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1977, apple2, 0, 0, apple2, apple2, 0, apple2, "Apple Computer", "Apple ][" , 0) -COMP( 1979, apple2p, apple2, 0, apple2p, apple2p, 0, apple2p, "Apple Computer", "Apple ][+" , 0) -COMP( 1979, apple2jp, apple2, 0, apple2p, apple2p, 0, apple2p, "Apple Computer", "Apple ][j+" , 0) -COMP( 1982, ace100, apple2, 0, apple2, apple2e, 0, apple2, "Franklin Computer", "Franklin Ace 100" , 0) -COMP( 1983, apple2e, 0, apple2, apple2e, apple2e, 0, apple2e, "Apple Computer", "Apple //e" , 0) -COMP( 1985, apple2ee, apple2e, 0, apple2ee, apple2e, 0, apple2e, "Apple Computer", "Apple //e (enhanced)" , 0) -COMP( 1987, apple2ep, apple2e, 0, apple2ee, apple2ep, 0, apple2e, "Apple Computer", "Apple //e (Platinum)" , 0) -COMP( 1984, apple2c, 0, apple2, apple2c, apple2e, 0, apple2e, "Apple Computer", "Apple //c" , 0) -COMP( 1983, las3000, apple2, 0, apple2p, apple2p, 0, apple2p, "Video Technology", "Laser 3000", GAME_NOT_WORKING ) -COMP( 1987, laser128, 0, apple2c0, apple2c, apple2e, 0, apple2e, "Video Technology", "Laser 128 (rev 4)", GAME_NOT_WORKING ) -COMP( 1987, las128ex, apple2c, 0, apple2c, apple2e, 0, apple2e, "Video Technology", "Laser 128ex (rev 4a)", GAME_NOT_WORKING ) -COMP( 1985, apple2c0, apple2c, 0, apple2c, apple2e, 0, apple2e, "Apple Computer", "Apple //c (UniDisk 3.5)" , 0) -COMP( 1986, apple2c3, apple2c, 0, apple2c, apple2e, 0, apple2e, "Apple Computer", "Apple //c (Original Memory Expansion)" , 0) -COMP( 1986, apple2c4, apple2c, 0, apple2c, apple2e, 0, apple2e, "Apple Computer", "Apple //c (rev 4)" , GAME_NOT_WORKING ) -COMP( 1988, apple2cp, apple2c, 0, apple2c, apple2e, 0, apple2e, "Apple Computer", "Apple //c Plus" , 0) diff --git a/mess/systems/apple2gs.c b/mess/systems/apple2gs.c deleted file mode 100644 index 47540e026..000000000 --- a/mess/systems/apple2gs.c +++ /dev/null @@ -1,242 +0,0 @@ -/*************************************************************************** - - systems/apple2gs.c - - Apple IIgs - - TODO: - - Fix spurrious interrupt problem - - Fix 5.25" disks - - Optimize video code - - More RAM configurations - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "includes/apple2.h" -#include "machine/ay3600.h" -#include "devices/mflopimg.h" -#include "formats/ap2_dsk.h" -#include "includes/apple2gs.h" -#include "devices/sonydriv.h" -#include "devices/appldriv.h" -#include "sound/es5503.h" - -static gfx_layout apple2gs_text_layout = -{ - 14,8, /* 14*8 characters */ - 512, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout apple2gs_dbltext_layout = -{ - 7,8, /* 7*8 characters */ - 512, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 7, 6, 5, 4, 3, 2, 1 }, /* x offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_decode apple2gs_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &apple2gs_text_layout, 0, 2 }, - { REGION_GFX1, 0x0000, &apple2gs_dbltext_layout, 0, 2 }, - { -1 } /* end of array */ -}; - - - -static const unsigned char apple2gs_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xD0, 0x00, 0x30, /* Dark Red */ - 0x00, 0x00, 0x90, /* Dark Blue */ - 0xD0, 0x20, 0xD0, /* Purple */ - 0x00, 0x70, 0x20, /* Dark Green */ - 0x50, 0x50, 0x50, /* Dark Grey */ - 0x20, 0x20, 0xF0, /* Medium Blue */ - 0x60, 0xA0, 0xF0, /* Light Blue */ - 0x80, 0x50, 0x00, /* Brown */ - 0xF0, 0x60, 0x00, /* Orange */ - 0xA0, 0xA0, 0xA0, /* Light Grey */ - 0xF0, 0x90, 0x80, /* Pink */ - 0x10, 0xD0, 0x00, /* Light Green */ - 0xF0, 0xF0, 0x00, /* Yellow */ - 0x40, 0xF0, 0x90, /* Aquamarine */ - 0xF0, 0xF0, 0xF0 /* White */ -}; - -MACHINE_DRIVER_EXTERN( apple2e ); -INPUT_PORTS_EXTERN( apple2ep ); - -INPUT_PORTS_START( apple2gs ) - PORT_INCLUDE( apple2ep ) - - PORT_START_TAG("adb_mouse_x") - PORT_BIT( 0x7f, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_CODE(MOUSECODE_1_BUTTON2) PORT_NAME("Mouse Button 1") - - PORT_START_TAG("adb_mouse_y") - PORT_BIT( 0x7f, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_CODE(MOUSECODE_1_BUTTON1) PORT_NAME("Mouse Button 0") - -INPUT_PORTS_END - - - -/* Initialize the palette */ -static PALETTE_INIT( apple2gs ) -{ - extern PALETTE_INIT( apple2 ); - palette_init_apple2(machine, colortable, color_prom); - palette_set_colors(machine, 0, apple2gs_palette, sizeof(apple2gs_palette) / 3); -} - -static READ8_HANDLER( apple2gs_adc_read ) -{ - return 0x80; -} - -static struct ES5503interface es5503_interface = -{ - apple2gs_doc_irq, - apple2gs_adc_read -}; - -static MACHINE_DRIVER_START( apple2gs ) - MDRV_IMPORT_FROM( apple2e ) - MDRV_CPU_REPLACE("main", G65816, 1021800) - - MDRV_CPU_VBLANK_INT(apple2gs_interrupt, 200/8) - - MDRV_SCREEN_SIZE(640, 200) - MDRV_SCREEN_VISIBLE_AREA(0,639,0,199) - MDRV_PALETTE_LENGTH( 16+256 ) - MDRV_GFXDECODE( apple2gs_gfxdecodeinfo ) - - MDRV_MACHINE_START( apple2gs ) - - MDRV_PALETTE_INIT( apple2gs ) - MDRV_VIDEO_START( apple2gs ) - MDRV_VIDEO_UPDATE( apple2gs ) - - MDRV_NVRAM_HANDLER( apple2gs ) - - MDRV_SOUND_REPLACE("A2DAC", DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(ES5503, 0) - MDRV_SOUND_CONFIG(es5503_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(apple2gs) - ROM_REGION(0x1000,REGION_GFX1,0) - ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - - ROM_REGION(0x40000,REGION_CPU1,0) - ROM_LOAD("rom03", 0x0000, 0x40000, CRC(de7ddf29) SHA1(bc32bc0e8902946663998f56aea52be597d9e361)) -ROM_END - -ROM_START(apple2g1) - ROM_REGION(0x1000,REGION_GFX1,0) - ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("rom01", 0x0000, 0x20000, CRC(42f124b0) SHA1(e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37)) -ROM_END - -ROM_START(apple2g0) - ROM_REGION(0x1000,REGION_GFX1,0) - ROM_LOAD ( "apple2gs.chr", 0x0000, 0x1000, CRC(91e53cd8) SHA1(34e2443e2ef960a36c047a09ed5a93f471797f89)) - - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("rom0a.bin", 0x0000, 0x8000, CRC(9cc78238) SHA1(0ea82e10720a01b68722ab7d9f66efec672a44d3)) - ROM_LOAD("rom0b.bin", 0x8000, 0x8000, CRC(8baf2a79) SHA1(91beeb11827932fe10475252d8036a63a2edbb1c)) - ROM_LOAD("rom0c.bin", 0x10000, 0x8000, CRC(94c32caa) SHA1(4806d50d676b06f5213b181693fc1585956b98bb)) - ROM_LOAD("rom0d.bin", 0x18000, 0x8000, CRC(200a15b8) SHA1(0c2890bb169ead63369738bbd5f33b869f24c42a)) -ROM_END - - - -/* ----------------------------------------------------------------------- - * Floppy disk devices - * ----------------------------------------------------------------------- */ - -static void apple2gs_floppy35_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* 3.5" floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_SONYDRIV_ALLOWABLE_SIZES: info->i = SONY_FLOPPY_ALLOW400K | SONY_FLOPPY_ALLOW800K | SONY_FLOPPY_SUPPORT2IMG; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME+0: strcpy(info->s = device_temp_str(), "slot5disk1"); break; - case DEVINFO_STR_NAME+1: strcpy(info->s = device_temp_str(), "slot5disk2"); break; - case DEVINFO_STR_SHORT_NAME+0: strcpy(info->s = device_temp_str(), "s5d1"); break; - case DEVINFO_STR_SHORT_NAME+1: strcpy(info->s = device_temp_str(), "s5d2"); break; - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "Slot 5 Disk #1"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "Slot 5 Disk #2"); break; - - default: sonydriv_device_getinfo(devclass, state, info); break; - } -} - - - -static void apple2gs_floppy525_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* 5.25" floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_NOT_WORKING: /* info->i = 1; */ break; - case DEVINFO_INT_APPLE525_SPINFRACT_DIVIDEND: info->i = 15; break; - case DEVINFO_INT_APPLE525_SPINFRACT_DIVISOR: info->i = 16; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME+0: strcpy(info->s = device_temp_str(), "slot6disk1"); break; - case DEVINFO_STR_NAME+1: strcpy(info->s = device_temp_str(), "slot6disk2"); break; - case DEVINFO_STR_SHORT_NAME+0: strcpy(info->s = device_temp_str(), "s6d1"); break; - case DEVINFO_STR_SHORT_NAME+1: strcpy(info->s = device_temp_str(), "s6d2"); break; - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "Slot 6 Disk #1"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "Slot 6 Disk #2"); break; - - default: apple525_device_getinfo(devclass, state, info); break; - } -} - - - -/* ----------------------------------------------------------------------- */ - -SYSTEM_CONFIG_START(apple2gs) - CONFIG_DEVICE(apple2gs_floppy35_getinfo) - CONFIG_DEVICE(apple2gs_floppy525_getinfo) - - CONFIG_RAM_DEFAULT (2 * 1024 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1989, apple2gs, 0, apple2, apple2gs, apple2gs, 0, apple2gs, "Apple Computer", "Apple IIgs (ROM03)", GAME_NOT_WORKING ) -COMP( 1987, apple2g1, apple2gs, 0, apple2gs, apple2gs, 0, apple2gs, "Apple Computer", "Apple IIgs (ROM01)", GAME_NOT_WORKING ) -COMP( 1986, apple2g0, apple2gs, 0, apple2gs, apple2gs, 0, apple2gs, "Apple Computer", "Apple IIgs (ROM00)", GAME_NOT_WORKING ) diff --git a/mess/systems/aquarius.c b/mess/systems/aquarius.c deleted file mode 100644 index db8111524..000000000 --- a/mess/systems/aquarius.c +++ /dev/null @@ -1,250 +0,0 @@ -/************************************************************************ -Aquarius Memory map - - CPU: z80 - - Memory map - 0000 1fff BASIC - 2000 2fff expansion? - 3000 33ff screen ram - 3400 37ff colour ram - 3800 3fff RAM (standard) - 4000 7fff RAM (expansion) - 8000 ffff RAM (emulator only) - - Ports: Out - fc Buzzer, bit 0. - fe Printer. - - Ports: In - fc Tape in, bit 1. - fe Printer. - ff Keyboard, Bit set in .B selects keyboard matrix - line. Return bit 0 - 5 low for pressed key. - -************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/aquarius.h" - -/* structures */ - -/* port i/o functions */ - -ADDRESS_MAP_START( aquarius_io , ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0xfc, 0xfc) AM_WRITE( aquarius_port_fc_w) - AM_RANGE(0xfe, 0xfe) AM_READWRITE( aquarius_port_fe_r, aquarius_port_fe_w) - AM_RANGE(0xff, 0xff) AM_READWRITE( aquarius_port_ff_r, aquarius_port_ff_w) -ADDRESS_MAP_END - -/* Memory w/r functions */ - -ADDRESS_MAP_START( aquarius_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x2fff) AM_NOP - AM_RANGE(0x3000, 0x37ff) AM_READWRITE(videoram_r, aquarius_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x3800, 0x3fff) AM_RAM - AM_RANGE(0x4000, 0x7fff) AM_NOP - AM_RANGE(0x8000, 0xffff) AM_NOP -ADDRESS_MAP_END - -/* graphics output */ - -static gfx_layout aquarius_charlayout = -{ - 8, 8, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, - 4*8, 5*8, 6*8, 7*8, }, - 8 * 8 -}; - -static gfx_decode aquarius_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &aquarius_charlayout, 0, 256}, - { -1 } /* end of array */ -}; - -static unsigned char aquarius_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xff, 0x00, 0x00, /* Red */ - 0x00, 0xff, 0x00, /* Green */ - 0xff, 0xff, 0x00, /* Yellow */ - 0x00, 0x00, 0xff, /* Blue */ - 0x7f, 0x00, 0x7f, /* Violet */ - 0x7f, 0xff, 0xff, /* Light Blue-Green */ - 0xff, 0xff, 0xff, /* White */ - 0xc0, 0xc0, 0xc0, /* Light Gray */ - 0x00, 0xff, 0xff, /* Blue-Green */ - 0xff, 0x00, 0xff, /* Magenta */ - 0x00, 0x00, 0x7f, /* Dark Blue */ - 0xff, 0xff, 0x7f, /* Light Yellow */ - 0x7f, 0xff, 0x7f, /* Light Green */ - 0xff, 0x7f, 0x00, /* Orange */ - 0x7f, 0x7f, 0x7f, /* Dark Gray */ -}; - -static unsigned short aquarius_colortable[] = -{ - 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0,10, 0,11, 0,12, 0,13, 0,14, 0,15, 0, - 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1,10, 1,11, 1,12, 1,13, 1,14, 1,15, 1, - 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2,10, 2,11, 2,12, 2,13, 2,14, 2,15, 2, - 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3,10, 3,11, 3,12, 3,13, 3,14, 3,15, 3, - 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4,10, 4,11, 4,12, 4,13, 4,14, 4,15, 4, - 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5,10, 5,11, 5,12, 5,13, 5,14, 5,15, 5, - 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9, 6,10, 6,11, 6,12, 6,13, 6,14, 6,15, 6, - 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8, 7, 9, 7,10, 7,11, 7,12, 7,13, 7,14, 7,15, 7, - 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8, 9, 8,10, 8,11, 8,12, 8,13, 8,14, 8,15, 8, - 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9,10, 9,11, 9,12, 9,13, 9,14, 9,15, 9, - 0,10, 1,10, 2,10, 3,10, 4,10, 5,10, 6,10, 7,10, 8,10, 9,10,10,10,11,10,12,10,13,10,14,10,15,10, - 0,11, 1,11, 2,11, 3,11, 4,11, 5,11, 6,11, 7,11, 8,11, 9,11,10,11,11,11,12,11,13,11,14,11,15,11, - 0,12, 1,12, 2,12, 3,12, 4,12, 5,12, 6,12, 7,12, 8,12, 9,12,10,12,11,12,12,12,13,12,14,12,15,12, - 0,13, 1,13, 2,13, 3,13, 4,13, 5,13, 6,13, 7,13, 8,13, 9,13,10,13,11,13,12,13,13,13,14,13,15,13, - 0,14, 1,14, 2,14, 3,14, 4,14, 5,14, 6,14, 7,14, 8,14, 9,14,10,14,11,14,12,14,13,14,14,14,15,14, - 0,15, 1,15, 2,15, 3,15, 4,15, 5,15, 6,15, 7,15, 8,15, 9,15,10,15,11,15,12,15,13,15,14,15,15,15, -}; - -static PALETTE_INIT( aquarius ) -{ - palette_set_colors(machine, 0, aquarius_palette, sizeof(aquarius_palette) / 3); - memcpy(colortable, aquarius_colortable, sizeof (aquarius_colortable)); -} - -/* Keyboard input */ - -INPUT_PORTS_START (aquarius) - PORT_START /* 0: count = 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= + NEXT") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del \\") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": * PEEK") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Rtn") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; @ POKE") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". > VAL") PORT_CODE(KEYCODE_STOP) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 1: count = 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _ FOR") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ^") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 ?") PORT_CODE(KEYCODE_0) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L POINT") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", < STR$") PORT_CODE(KEYCODE_COMMA) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 2: count = 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ) COPY") PORT_CODE(KEYCODE_9) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K PRESET") PORT_CODE(KEYCODE_K) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N RIGHT$") PORT_CODE(KEYCODE_N) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J PSET") PORT_CODE(KEYCODE_J) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 3: count = 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 ( RETURN") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 ' GOSUB") PORT_CODE(KEYCODE_7) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B MID$") PORT_CODE(KEYCODE_B) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 4: count = 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 & ON") PORT_CODE(KEYCODE_6) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G BELL") PORT_CODE(KEYCODE_G) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V LEFT$") PORT_CODE(KEYCODE_V) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C STOP") PORT_CODE(KEYCODE_C) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F DATA") PORT_CODE(KEYCODE_F) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 5: count = 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % GOTO") PORT_CODE(KEYCODE_5) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T INPUT") PORT_CODE(KEYCODE_T) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ THEN") PORT_CODE(KEYCODE_4) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R RETYP") PORT_CODE(KEYCODE_R) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D READ") PORT_CODE(KEYCODE_D) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X DELINE") PORT_CODE(KEYCODE_X) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 6: count = 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # IF") PORT_CODE(KEYCODE_3) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E DIM") PORT_CODE(KEYCODE_E) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S STPLST") PORT_CODE(KEYCODE_S) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z CLOAD") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space CHR$") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A CSAVE") PORT_CODE(KEYCODE_A) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 7: count = 7 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \" LIST") PORT_CODE(KEYCODE_2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W REM") PORT_CODE(KEYCODE_W) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! RUN") PORT_CODE(KEYCODE_1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctl") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 8: Machine config */ - PORT_DIPNAME(0x03, 3, "RAM Size") - PORT_DIPSETTING(0, "4 Kb") - PORT_DIPSETTING(1, "20 Kb") - PORT_DIPSETTING(2, "56 Kb") -INPUT_PORTS_END - -/* Sound output */ - -static INTERRUPT_GEN( aquarius_interrupt ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -/* Machine definition */ -static MACHINE_DRIVER_START( aquarius ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3500000) - MDRV_CPU_PROGRAM_MAP(aquarius_mem, 0) - MDRV_CPU_IO_MAP(aquarius_io, 0) - MDRV_CPU_VBLANK_INT( aquarius_interrupt, 1 ) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( aquarius ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40 * 8, 24 * 8) - MDRV_SCREEN_VISIBLE_AREA(0, 40 * 8 - 1, 0, 24 * 8 - 1) - MDRV_GFXDECODE( aquarius_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof (aquarius_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (aquarius_colortable)) - MDRV_PALETTE_INIT( aquarius ) - - MDRV_VIDEO_START( aquarius ) - MDRV_VIDEO_UPDATE( aquarius ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -ROM_START(aquarius) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("aq2.rom", 0x0000, 0x2000, CRC(a2d15bcf) SHA1(ca6ef55e9ead41453efbf5062d6a60285e9661a6)) - ROM_REGION(0x0800, REGION_GFX1,0) - ROM_LOAD("aq2.chr", 0x0000, 0x0800, BAD_DUMP CRC(0b3edeed) SHA1(d2509839386b852caddcaa89cd376be647ba1492)) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1983, aquarius, 0, 0, aquarius, aquarius, 0, NULL, "Mattel", "Aquarius" , 0) diff --git a/mess/systems/astrocde.c b/mess/systems/astrocde.c deleted file mode 100644 index 2b251e44b..000000000 --- a/mess/systems/astrocde.c +++ /dev/null @@ -1,235 +0,0 @@ - -/**************************************************************************** - - Bally Astrocade Driver - - 09/23/98 - Added sound, added player 2 pot FMP - Added MWA8_ROM to fix Star Fortress problem - Added cartridge support - - 08/02/98 - First release based on original wow.c in MAME FMP - Added palette generation based on a function - Fixed collision detection - Fixed shifter operation - Fixed clock speed - Fixed Interrupt Rate and handling - (No Light pen support yet) - (No sound yet) - - Original header follows, some comments don't apply FMP - - ****************************************************************************/ - - /**************************************************************************** - - Bally Astrocade style games - - 02.02.98 - New IO port definitions MJC - Dirty Rectangle handling - Sparkle Circuit for Gorf - errorlog output conditional on MAME_DEBUG - - 03/04 98 - Extra Bases driver ATJ - Wow word driver - - ****************************************************************************/ - -#include "driver.h" -#include "sound/astrocde.h" -#include "vidhrdw/generic.h" -#include "includes/astrocde.h" -#include "devices/cartslot.h" - -/**************************************************************************** - * Bally Astrocade - ****************************************************************************/ - -ADDRESS_MAP_START( astrocade_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA8_ROM, astrocade_magicram_w) - AM_RANGE(0x1000, 0x3fff) AM_ROM /* Star Fortress writes in here?? */ - AM_RANGE(0x4000, 0x4fff) AM_READWRITE(MRA8_RAM, astrocade_videoram_w) AM_BASE(&astrocade_videoram) AM_SIZE(&videoram_size) /* ASG */ -ADDRESS_MAP_END - -ADDRESS_MAP_START( astrocade_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x07) AM_MIRROR(0xff00) AM_WRITE(astrocade_colour_register_w) - AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_READWRITE(astrocade_intercept_r, astrocade_mode_w) - AM_RANGE(0x09, 0x09) AM_MIRROR(0xff00) AM_WRITE(astrocade_colour_split_w) - AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_WRITE(astrocade_vertical_blank_w) - AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_WRITE(astrocade_colour_block_w) - AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(astrocade_magic_control_w) - AM_RANGE(0x0d, 0x0d) AM_MIRROR(0xff00) AM_WRITE(astrocade_interrupt_vector_w) - AM_RANGE(0x0e, 0x0e) AM_MIRROR(0xff00) AM_READWRITE(astrocade_video_retrace_r, astrocade_interrupt_enable_w) - AM_RANGE(0x0f, 0x0f) AM_MIRROR(0xff00) AM_WRITE(astrocade_interrupt_w) - /*AM_RANGE(0x0f, 0x0f) AM_MIRROR(0xff00) AM_READ(astrocade_horiz_r)*/ - AM_RANGE(0x10, 0x10) AM_MIRROR(0xff00) AM_READ(input_port_0_r) - AM_RANGE(0x11, 0x11) AM_MIRROR(0xff00) AM_READ(input_port_1_r) - AM_RANGE(0x12, 0x12) AM_MIRROR(0xff00) AM_READ(input_port_2_r) - AM_RANGE(0x13, 0x13) AM_MIRROR(0xff00) AM_READ(input_port_3_r) - AM_RANGE(0x14, 0x14) AM_MIRROR(0xff00) AM_READ(input_port_4_r) - AM_RANGE(0x15, 0x15) AM_MIRROR(0xff00) AM_READ(input_port_5_r) - AM_RANGE(0x16, 0x16) AM_MIRROR(0xff00) AM_READ(input_port_6_r) - AM_RANGE(0x17, 0x17) AM_MIRROR(0xff00) AM_READ(input_port_7_r) - AM_RANGE(0x10, 0x17) AM_MIRROR(0xff00) AM_WRITE(astrocade_sound1_w) /* Sound Stuff */ - AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff00) AM_READ(input_port_8_r) - AM_RANGE(0x1d, 0x1d) AM_MIRROR(0xff00) AM_READ(input_port_9_r) - AM_RANGE(0x1e, 0x1e) AM_MIRROR(0xff00) AM_READ(input_port_10_r) - AM_RANGE(0x1f, 0x1f) AM_MIRROR(0xff00) AM_READ(input_port_11_r) - AM_SPACE(0x18, 0xff) AM_WRITE(astrocade_soundblock1_w) - AM_RANGE(0x19, 0x19) AM_MIRROR(0xff00) AM_WRITE(astrocade_magic_expand_color_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( astrocde ) - PORT_START /* IN0 */ /* Player 1 Handle */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN1 */ /* Player 2 Handle */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN2 */ /* Player 3 Handle */ - - PORT_START /* IN3 */ /* Player 4 Handle */ - - PORT_START /* IN4 */ /* Keypad Column 0 (right) */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("% \xC3\xB7 [ ] LIST") PORT_CODE(KEYCODE_O) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ x J K L NEXT") PORT_CODE(KEYCODE_SLASH_PAD) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x - V W X IF") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- + & @ * GOTO") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ = # % : PRINT") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= WORDS Shift") PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN5 */ /* Keypad Column 1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93 HALT RUN") PORT_CODE(KEYCODE_PGDN) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CH 9 G H I STEP") PORT_CODE(KEYCODE_H) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 6 S T U RND") PORT_CODE(KEYCODE_9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 3 \xE2\x86\x91 . \xE2\x86\x93 BOX") PORT_CODE(KEYCODE_6) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 ERASE ( ; )") PORT_CODE(KEYCODE_3) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". BLUE Shift") PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN6 */ /* Keypad Column 2 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91 PAUSE / \\") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MS 8 D E F TO") PORT_CODE(KEYCODE_S) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 5 P Q R RETN") PORT_CODE(KEYCODE_8) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 2 \xE2\x86\x90 ' \xE2\x86\x92 LINE") PORT_CODE(KEYCODE_5) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 0 < \" > INPUT") PORT_CODE(KEYCODE_2) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 RED Shift") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN7 */ /* Keypad Column 3 (left) */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C GO +10") PORT_CODE(KEYCODE_C) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MR 7 A B C FOR") PORT_CODE(KEYCODE_R) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 4 M N O GOSB") PORT_CODE(KEYCODE_7) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 1 Y Z ! CLEAR") PORT_CODE(KEYCODE_4) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 SPACE $ , ?") PORT_CODE(KEYCODE_1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CE GREEN Shift") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN8 */ /* Player 1 Knob */ -#if 0 - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(0) PORT_MINMAX(255,KEYCODE_X) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(0) PORT_CODE_DEC(0) PORT_CODE_INC(4) - - PORT_START /* IN9 */ /* Player 2 Knob */ - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(0) PORT_MINMAX(255,KEYCODE_N) PORT_CODE_DEC(KEYCODE_M) PORT_CODE_INC(0) PORT_CODE_DEC(0) PORT_CODE_INC(4) -#else - PORT_BIT( 0xff, 0x00, IPT_PADDLE) PORT_SENSITIVITY(85) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_X) PORT_CODE_INC(KEYCODE_Z) PORT_PLAYER(1) - - PORT_START /* IN9 */ /* Player 2 Knob */ - PORT_BIT( 0xff, 0x00, IPT_PADDLE) PORT_SENSITIVITY(85) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_M) PORT_CODE_INC(KEYCODE_N) PORT_PLAYER(2) -#endif - PORT_START /* IN10 */ /* Player 3 Knob */ - - PORT_START /* IN11 */ /* Player 4 Knob */ - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( astrocde ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789000) /* 1.789 Mhz */ - MDRV_CPU_PROGRAM_MAP(astrocade_mem, 0) - MDRV_CPU_IO_MAP(astrocade_io, 0) - MDRV_CPU_VBLANK_INT(astrocade_interrupt,256) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(8*32) - MDRV_COLORTABLE_LENGTH(8) - MDRV_PALETTE_INIT( astrocade ) - - MDRV_VIDEO_START( generic ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -ROM_START( astrocde ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "astro.bin", 0x0000, 0x2000, CRC(ebc77f3a) SHA1(b902c941997c9d150a560435bf517c6a28137ecc)) -ROM_END - -ROM_START( astrocdw ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "bioswhit.bin", 0x0000, 0x2000, CRC(6eb53e79) SHA1(d84341feec1a0a0e8aa6151b649bc3cf6ef69fbf)) -ROM_END - -static void astrocde_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_astrocade_rom; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bin"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(astrocde) - CONFIG_DEVICE(astrocde_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1978, astrocde, 0, 0, astrocde, astrocde, 0, astrocde, "Bally Manufacturing", "Bally Professional Arcade", 0) -CONS( 1977, astrocdw, astrocde, 0, astrocde, astrocde, 0, astrocde, "Bally Manufacturing", "Bally Computer System", 0) diff --git a/mess/systems/at.c b/mess/systems/at.c deleted file mode 100644 index 57263d5c0..000000000 --- a/mess/systems/at.c +++ /dev/null @@ -1,734 +0,0 @@ -/*************************************************************************** - - IBM AT Compatibles - -***************************************************************************/ - -#include "driver.h" -#include "sound/3812intf.h" -#include "machine/8255ppi.h" -#include "machine/uart8250.h" -#include "machine/mc146818.h" -#include "machine/pic8259.h" -#include "vidhrdw/generic.h" -#include "devices/printer.h" - -#include "machine/pit8253.h" -#include "vidhrdw/pc_vga.h" -#include "vidhrdw/pc_cga.h" -#include "vidhrdw/pc_mda.h" -#include "vidhrdw/pc_video.h" -#include "includes/pc.h" - -#include "machine/pc_hdc.h" -#include "includes/pc_ide.h" -#include "machine/pc_fdc.h" -#include "machine/pc_joy.h" -#include "machine/pckeybrd.h" -#include "includes/pclpt.h" -#include "includes/sblaster.h" -#include "includes/pc_mouse.h" - -#include "includes/at.h" -#include "machine/8042kbdc.h" -#include "includes/ps2.h" - -#include "machine/pcshare.h" - -#include "devices/mflopimg.h" -#include "devices/harddriv.h" -#include "formats/pc_dsk.h" - -#include "machine/8237dma.h" -#include "machine/pci.h" -#include "memconv.h" - -/* window resizing with dirtybuffering traping in xmess window */ - -#define ym3812_StdClock 3579545 - -/* - adlib (YM3812/OPL2 chip), part of many many soundcards (soundblaster) - soundblaster: YM3812 also accessible at 0x228/9 (address jumperable) - soundblaster pro version 1: 2 YM3812 chips - at 0x388 both accessed, - at 0x220/1 left?, 0x222/3 right? (jumperable) - soundblaster pro version 2: 1 OPL3 chip - - pro audio spectrum +: 2 OPL2 - pro audio spectrum 16: 1 OPL3 - */ -#define ADLIB /* YM3812/OPL2 Chip */ -/* - creativ labs game blaster (CMS creativ music system) - 2 x saa1099 chips - also on sound blaster 1.0 - option on sound blaster 1.5 - - jumperable? normally 0x220 -*/ -#define GAMEBLASTER - -static ADDRESS_MAP_START( at_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x09ffff) AM_MIRROR(0xff000000) AM_RAMBANK(10) - AM_RANGE(0x0a0000, 0x0affff) AM_NOP - AM_RANGE(0x0b0000, 0x0b7fff) AM_NOP - AM_RANGE(0x0b8000, 0x0bffff) AM_READWRITE(MRA8_RAM, pc_video_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x0c0000, 0x0c7fff) AM_ROM - AM_RANGE(0x0c8000, 0x0c9fff) AM_ROM - AM_RANGE(0x0ca000, 0x0cffff) AM_RAM - AM_RANGE(0x0d0000, 0x0effff) AM_RAM - AM_RANGE(0x0f0000, 0x0fffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( at386_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(24) ) - AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK(10) - AM_RANGE(0x000a0000, 0x000b7fff) AM_NOP - AM_RANGE(0x000b8000, 0x000bffff) AM_READWRITE(MRA32_RAM, pc_video_videoram32_w) AM_BASE((UINT32 **) &videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x000c0000, 0x000c7fff) AM_ROM - AM_RANGE(0x000c8000, 0x000cffff) AM_ROM - AM_RANGE(0x000d0000, 0x000effff) AM_ROM - AM_RANGE(0x000f0000, 0x000fffff) AM_ROM AM_REGION(REGION_CPU1, 0x0f0000) - AM_RANGE(0x00ff0000, 0x00ffffff) AM_ROM AM_REGION(REGION_CPU1, 0x0f0000) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( at586_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK(10) - AM_RANGE(0x000a0000, 0x000b7fff) AM_NOP - AM_RANGE(0x000b8000, 0x000bffff) AM_READWRITE(MRA32_RAM, pc_video_videoram32_w) AM_BASE((UINT32 **) &videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0x20000) -ADDRESS_MAP_END - - - -static READ8_HANDLER(at_dma8237_1_r) -{ - return dma8237_1_r(offset / 2); -} - -static WRITE8_HANDLER(at_dma8237_1_w) -{ - dma8237_1_w(offset / 2, data); -} - -static READ32_HANDLER(at32_dma8237_1_r) -{ - return read32le_with_read8_handler(at_dma8237_1_r, offset, mem_mask); -} - -static WRITE32_HANDLER(at32_dma8237_1_w) -{ - write32le_with_write8_handler(at_dma8237_1_w, offset, data, mem_mask); -} - - - -static ADDRESS_MAP_START(at_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x003f) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x005f) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x006f) AM_READWRITE(kbdc8042_8_r, kbdc8042_8_w) - AM_RANGE(0x0070, 0x007f) AM_READWRITE(mc146818_port_r, mc146818_port_w) - AM_RANGE(0x0080, 0x009f) AM_READWRITE(at_page8_r, at_page8_w) - AM_RANGE(0x00a0, 0x00bf) AM_READWRITE(pic8259_1_r, pic8259_1_w) - AM_RANGE(0x00c0, 0x00df) AM_READWRITE(at_dma8237_1_r, at_dma8237_1_w) - AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(at_mfm_0_r, at_mfm_0_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x0220, 0x022f) AM_READWRITE(soundblaster_r, soundblaster_w) - AM_RANGE(0x0278, 0x027f) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_parallelport1_r, pc_parallelport1_w) -#ifdef ADLIB - AM_RANGE(0x0388, 0x0388) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x0389, 0x0389) AM_WRITE( YM3812_write_port_0_w) -#endif - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(at386_io, ADDRESS_SPACE_IO, 32) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(dma8237_32le_0_r, dma8237_32le_0_w) - AM_RANGE(0x0020, 0x003f) AM_READWRITE(pic8259_32le_0_r, pic8259_32le_0_w) - AM_RANGE(0x0040, 0x005f) AM_READWRITE(pit8253_32le_0_r, pit8253_32le_0_w) - AM_RANGE(0x0060, 0x006f) AM_READWRITE(kbdc8042_32le_r, kbdc8042_32le_w) - AM_RANGE(0x0070, 0x007f) AM_READWRITE(mc146818_port32le_r, mc146818_port32le_w) - AM_RANGE(0x0080, 0x009f) AM_READWRITE(at_page32_r, at_page32_w) - AM_RANGE(0x00a0, 0x00bf) AM_READWRITE(pic8259_32le_1_r, pic8259_32le_1_w) - AM_RANGE(0x00c0, 0x00df) AM_READWRITE(at32_dma8237_1_r, at32_dma8237_1_w) - AM_RANGE(0x0278, 0x027f) AM_READWRITE(pc32_parallelport2_r, pc32_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_32le_3_r, uart8250_32le_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_32le_1_r, uart8250_32le_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc32_HDC1_r, pc32_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc32_HDC2_r, pc32_HDC2_w) - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc32_parallelport1_r, pc32_parallelport1_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc32le_fdc_r, pc32le_fdc_w) - AM_RANGE(0x03bc, 0x03bf) AM_READWRITE(pc32_parallelport0_r, pc32_parallelport0_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_32le_0_r, uart8250_32le_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(at586_io, ADDRESS_SPACE_IO, 32) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(dma8237_32le_0_r, dma8237_32le_0_w) - AM_RANGE(0x0020, 0x003f) AM_READWRITE(pic8259_32le_0_r, pic8259_32le_0_w) - AM_RANGE(0x0040, 0x005f) AM_READWRITE(pit8253_32le_0_r, pit8253_32le_0_w) - AM_RANGE(0x0060, 0x006f) AM_READWRITE(kbdc8042_32le_r, kbdc8042_32le_w) - AM_RANGE(0x0070, 0x007f) AM_READWRITE(mc146818_port32le_r, mc146818_port32le_w) - AM_RANGE(0x0080, 0x009f) AM_READWRITE(at_page32_r, at_page32_w) - AM_RANGE(0x00a0, 0x00bf) AM_READWRITE(pic8259_32le_1_r, pic8259_32le_1_w) - AM_RANGE(0x00c0, 0x00df) AM_READWRITE(at32_dma8237_1_r, at32_dma8237_1_w) - AM_RANGE(0x0278, 0x027f) AM_READWRITE(pc32_parallelport2_r, pc32_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_32le_3_r, uart8250_32le_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_32le_1_r, uart8250_32le_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc32_HDC1_r, pc32_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc32_HDC2_r, pc32_HDC2_w) - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc32_parallelport1_r, pc32_parallelport1_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc32le_fdc_r, pc32le_fdc_w) - AM_RANGE(0x03bc, 0x03bf) AM_READWRITE(pc32_parallelport0_r, pc32_parallelport0_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_32le_0_r, uart8250_32le_0_w) - AM_RANGE(0x0cf8, 0x0cff) AM_READWRITE(pci_32le_r, pci_32le_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(ps2m30286_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x003f) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x005f) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x006f) AM_READWRITE(kbdc8042_8_r, kbdc8042_8_w) - AM_RANGE(0x0070, 0x007f) AM_READWRITE(mc146818_port_r, mc146818_port_w) - AM_RANGE(0x0080, 0x009f) AM_READWRITE(at_page8_r, at_page8_w) - AM_RANGE(0x00a0, 0x00bf) AM_READWRITE(pic8259_1_r, pic8259_1_w) - AM_RANGE(0x00c0, 0x00df) AM_READWRITE(at_dma8237_1_r, at_dma8237_1_w) - AM_RANGE(0x0100, 0x0107) AM_READWRITE(ps2_pos_r, ps2_pos_w) - AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(at_mfm_0_r, at_mfm_0_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x0220, 0x022f) AM_READWRITE(soundblaster_r, soundblaster_w) - AM_RANGE(0x0278, 0x027f) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_parallelport1_r, pc_parallelport1_w) -#ifdef ADLIB - AM_RANGE(0x0388, 0x0388) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x0389, 0x0389) AM_WRITE( YM3812_write_port_0_w) -#endif - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( atcga ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x00, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -INPUT_PORTS_START( atvga ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x08, 0x08, "VGA 1") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "VGA 2") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "VGA 3") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x00, "VGA 4") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x00, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -static unsigned i286_address_mask = 0x00ffffff; - - -#if defined(ADLIB) -/* irq line not connected to pc on adlib cards (and compatibles) */ -static void irqhandler(int linestate) {} - -static struct YM3812interface ym3812_interface = -{ - irqhandler -}; -#endif - - - -#define MDRV_CPU_ATPC(mem, port, type, clock, vblankfunc) \ - MDRV_CPU_ADD_TAG("main", type, clock) \ - MDRV_CPU_PROGRAM_MAP(mem##_map, 0) \ - MDRV_CPU_IO_MAP(port##_io, 0) \ - MDRV_CPU_VBLANK_INT(vblankfunc, 4) \ - MDRV_CPU_CONFIG(i286_address_mask) - -static MACHINE_DRIVER_START( atcga ) - /* basic machine hardware */ - MDRV_CPU_ATPC(at, at, I286, 12000000, NULL) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START( at ) - MDRV_MACHINE_RESET( at ) - - MDRV_IMPORT_FROM( pcvideo_cga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ps2m30286 ) - /* basic machine hardware */ - MDRV_CPU_ATPC(at, at, I286, 12000000, NULL) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_IMPORT_FROM( pcvideo_vga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( atvga ) - /* basic machine hardware */ - MDRV_CPU_ATPC(at, at, I286, 12000000, NULL) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_IMPORT_FROM( pcvideo_vga ) - - MDRV_MACHINE_START( at ) - MDRV_MACHINE_RESET( at ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( at386 ) - /* basic machine hardware */ - /* original at 6 mhz, at03 8 megahertz */ - MDRV_CPU_ATPC(at386, at386, I386, 12000000, NULL) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START( at ) - MDRV_MACHINE_RESET( at ) - - MDRV_IMPORT_FROM( pcvideo_cga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( at486 ) - MDRV_IMPORT_FROM( at386 ) - - MDRV_CPU_REPLACE("main", I486, 12000000) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( at586 ) - MDRV_IMPORT_FROM( at386 ) - - MDRV_CPU_REPLACE("main", PENTIUM, 60000000) - MDRV_CPU_PROGRAM_MAP(at586_map, 0) - MDRV_CPU_IO_MAP(at586_io, 0) -MACHINE_DRIVER_END - - - -#if 0 - // ibm at - // most likely 2 32 kbyte chips for 16 bit access - ROM_LOAD("atbios.bin", 0xf0000, 0x10000, CRC(674426be)) // BASIC C1.1, beeps - // split into 2 chips for 16 bit access - ROM_LOAD_EVEN("ibmat.0", 0xf0000, 0x8000, CRC(4995be7a)) - ROM_LOAD_ODD("ibmat.1", 0xf0000, 0x8000, CRC(c32713e4)) - - /* I know about a 1984 version in 2 32kb roms */ - - /* at, ami bios and diagnostics */ - ROM_LOAD_EVEN("rom01.bin", 0xf0000, 0x8000, CRC(679296a7)) - ROM_LOAD_ODD("rom02.bin", 0xf0000, 0x8000, CRC(65ae1f97)) - - /* */ - ROM_LOAD("neat286.bin", 0xf0000, 0x10000, CRC(07985d9b)) - // split into 2 chips for 16 bit access - ROM_LOAD_EVEN("neat.0", 0xf0000, 0x8000, CRC(4c36e61d)) - ROM_LOAD_ODD("neat.1", 0xf0000, 0x8000, CRC(4e90f294)) - - /* most likely 1 chip!, for lower costs */ - ROM_LOAD("at386.bin", 0xf0000, 0x10000, CRC(3df9732a)) - - /* at486 */ - ROM_LOAD("at486.bin", 0xf0000, 0x10000, CRC(31214616)) - - ROM_LOAD("", 0x??000, 0x2000, CRC()) -#endif - -ROM_START( ibmat ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("at111585.0", 0xf0000, 0x8000, CRC(4995be7a) SHA1(8e8e5c863ae3b8c55fd394e345d8cca48b6e575c)) - ROM_RELOAD(0xff0000,0x8000) - ROM_LOAD16_BYTE("at111585.1", 0xf0001, 0x8000, CRC(c32713e4) SHA1(22ed4e2be9f948682891e2fd056a97dbea01203c)) - ROM_RELOAD(0xff0001,0x8000) - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( i8530286 ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // saved from running machine - ROM_LOAD16_BYTE("ps2m30.0", 0xe0000, 0x10000, CRC(9965a634)) - ROM_RELOAD(0xfe0000,0x10000) - ROM_LOAD16_BYTE("ps2m30.1", 0xe0001, 0x10000, CRC(1448d3cb)) - ROM_RELOAD(0xfe0001,0x10000) -ROM_END - -ROM_START( at ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("at110387.1", 0xf0001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3)) - ROM_RELOAD(0xff0001,0x8000) - ROM_LOAD16_BYTE("at110387.0", 0xf0000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1)) - ROM_RELOAD(0xff0000,0x8000) - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( atvga ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f01e4be0) SHA1(95d75ff41bcb765e50bd87a8da01835fd0aa01d5)) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("at110387.1", 0xf0001, 0x8000, CRC(679296a7) SHA1(ae891314cac614dfece686d8e1d74f4763cf40e3)) - ROM_RELOAD(0xff0001,0x8000) - ROM_LOAD16_BYTE("at110387.0", 0xf0000, 0x8000, CRC(65ae1f97) SHA1(91a29c7deecf7a9afbba330e64e0eee9aafee4d1)) - ROM_RELOAD(0xff0000,0x8000) -ROM_END - -ROM_START( neat ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("at030389.0", 0xf0000, 0x8000, CRC(4c36e61d)) - ROM_RELOAD(0xff0000,0x8000) - ROM_LOAD16_BYTE("at030389.1", 0xf0001, 0x8000, CRC(4e90f294)) - ROM_RELOAD(0xff0001,0x8000) - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( at386 ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("at386.bin", 0xf0000, 0x10000, CRC(3df9732a) SHA1(def71567dee373dc67063f204ef44ffab9453ead)) - ROM_RELOAD(0xff0000,0x10000) - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( at486 ) - ROM_REGION(0x1000000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("at486.bin", 0xf0000, 0x10000, CRC(31214616) SHA1(51b41fa44d92151025fc9ad06e518e906935e689)) - ROM_RELOAD(0xff0000,0x10000) - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( at586 ) - ROM_REGION32_LE(0x40000, REGION_USER1, 0) - ROM_LOAD("wdbios.rom", 0x08000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("at586.bin", 0x20000, 0x20000, CRC(717037f5)) - - ROM_REGION(0x08100, REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -static void ibmat_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 3; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void ibmat_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_pc; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void ibmat_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - default: harddisk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(ibmat) - CONFIG_RAM_DEFAULT( (640+1024) * 1024 ) - CONFIG_DEVICE(ibmat_printer_getinfo) - CONFIG_DEVICE(ibmat_floppy_getinfo) - CONFIG_DEVICE(ibmat_harddisk_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP ( 1985, ibmat, 0, ibmpc, atcga, atcga, atcga, ibmat, "International Business Machines", "IBM PC/AT (CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1988, i8530286, ibmat, 0, ps2m30286, atvga, ps2m30286, ibmat, "International Business Machines", "IBM PS2 Model 30 286", GAME_NOT_WORKING ) -COMP ( 1987, at, ibmat, 0, atcga, atcga, atcga, ibmat, "", "PC/AT (CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1989, neat, ibmat, 0, atcga, atcga, atcga, ibmat, "", "NEAT (CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1988, at386, ibmat, 0, at386, atcga, at386, ibmat, "MITAC INC", "PC/AT 386(CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1990, at486, ibmat, 0, at486, atcga, at386, ibmat, "", "PC/AT 486(CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1990, at586, ibmat, 0, at586, atcga, at586, ibmat, "", "PC/AT 586(CGA, MF2 Keyboard)", GAME_NOT_WORKING ) -COMP ( 1987, atvga, 0, 0, atvga, atvga, at_vga, ibmat, "", "PC/AT (VGA, MF2 Keyboard)" , 0) diff --git a/mess/systems/atari.c b/mess/systems/atari.c deleted file mode 100644 index 8bb0b7f56..000000000 --- a/mess/systems/atari.c +++ /dev/null @@ -1,964 +0,0 @@ -/****************************************************************************** - Atari 400/800 - - MESS Driver - - Juergen Buchmueller, June 1998 -******************************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "includes/atari.h" -#include "devices/cartslot.h" -#include "sound/pokey.h" -#include "machine/6821pia.h" -#include "vidhrdw/gtia.h" -#include "inputx.h" - -/****************************************************************************** - Atari 800 memory map (preliminary) - - ***************** read access ******************* - range short description - 0000-9FFF RAM main memory - A000-BFFF RAM/ROM RAM or (banked) ROM cartridges - C000-CFFF ROM unused or monitor ROM - - ********* GTIA ******************************** - - D000 m0pf missile 0 playfield collisions - D001 m1pf missile 1 playfield collisions - D002 m2pf missile 2 playfield collisions - D003 m3pf missile 3 playfield collisions - D004 p0pf player 0 playfield collisions - D005 p1pf player 1 playfield collisions - D006 p2pf player 2 playfield collisions - D007 p3pf player 3 playfield collisions - D008 m0pl missile 0 player collisions - D009 m1pl missile 1 player collisions - D00A m2pl missile 2 player collisions - D00B m3pl missile 3 player collisions - D00C p0pl player 0 player collisions - D00D p1pl player 1 player collisions - D00E p2pl player 2 player collisions - D00F p3pl player 3 player collisions - D010 but0 button stick 0 - D011 but1 button stick 1 - D012 but2 button stick 2 - D013 but3 button stick 3 - D014 xff unused - D015 xff unused - D016 xff unused - D017 xff unused - D018 xff unused - D019 xff unused - D01A xff unused - D01B xff unused - D01C xff unused - D01D xff unused - D01E xff unused - D01F cons console keys - D020-D0FF repeated 7 times - - D100-D1FF xff - - ********* POKEY ******************************** - D200 pot0 paddle 0 - D201 pot1 paddle 1 - D202 pot2 paddle 2 - D203 pot3 paddle 3 - D204 pot4 paddle 4 - D205 pot5 paddle 5 - D206 pot6 paddle 6 - D207 pot7 paddle 7 - D208 potb all paddles - D209 kbcode keyboard scan code - D20A random random number generator - D20B xff unused - D20C xff unused - D20D serin serial input - D20E irqst IRQ status - D20F skstat sk status - D210-D2FF repeated 15 times - - ********* PIO ******************************** - D300 porta read pio port A - D301 portb read pio port B - D302 pactl read pio port A control - D303 pbctl read pio port B control - D304-D3FF repeated 63 times - - ********* ANTIC ******************************** - D400 xff unused - D401 xff unused - D402 xff unused - D403 xff unused - D404 xff unused - D405 xff unused - D406 xff unused - D407 xff unused - D408 xff unused - D409 xff unused - D40A xff unused - D40B vcount vertical (scanline) counter - D40C penh light pen horizontal pos - D40D penv light pen vertical pos - D40E xff unused - D40F nmist NMI status - - D500-D7FF xff unused memory - - D800-DFFF ROM floating point ROM - E000-FFFF ROM bios ROM - - ***************** write access ******************* - range short description - 0000-9FFF RAM main memory - A000-BFFF RAM/ROM RAM or (banked) ROM - C000-CFFF ROM unused or monitor ROM - - ********* GTIA ******************************** - D000 hposp0 player 0 horz position - D001 hposp1 player 1 horz position - D002 hposp2 player 2 horz position - D003 hposp3 player 3 horz position - D004 hposm0 missile 0 horz position - D005 hposm1 missile 0 horz position - D006 hposm2 missile 0 horz position - D007 hposm3 missile 0 horz position - D008 sizep0 size player 0 - D009 sizep1 size player 0 - D00A sizep2 size player 0 - D00B sizep3 size player 0 - D00C sizem size missiles - D00D grafp0 graphics data for player 0 - D00E grafp1 graphics data for player 1 - D00F grafp2 graphics data for player 2 - D010 grafp3 graphics data for player 3 - D011 grafm graphics data for missiles - D012 colpm0 color for player/missile 0 - D013 colpm1 color for player/missile 1 - D014 colpm2 color for player/missile 2 - D015 colpm3 color for player/missile 3 - D016 colpf0 color 0 playfield - D017 colpf1 color 1 playfield - D018 colpf2 color 2 playfield - D019 colpf3 color 3 playfield - D01A colbk background playfield - D01B prior priority select - D01C vdelay delay until vertical retrace - D01D gractl graphics control - D01E hitclr clear collisions - D01F wcons write console (speaker) - D020-D0FF repeated 7 times - - D100-D1FF xff unused - - ********* POKEY ******************************** - D200 audf1 frequency audio chan #1 - D201 audc1 control audio chan #1 - D202 audf2 frequency audio chan #2 - D203 audc2 control audio chan #2 - D204 audf3 frequency audio chan #3 - D205 audc3 control audio chan #3 - D206 audf4 frequency audio chan #4 - D207 audc4 control audio chan #4 - D208 audctl audio control - D209 stimer start timer - D20A skres sk reset - D20B potgo start pot AD conversion - D20C xff unused - D20D serout serial output - D20E irqen IRQ enable - D20F skctl sk control - D210-D2FF repeated 15 times - - ********* PIO ******************************** - D300 porta write pio port A (output or mask) - D301 portb write pio port B (output or mask) - D302 pactl write pio port A control - D303 pbctl write pio port B control - D304-D3FF repeated - - ********* ANTIC ******************************** - D400 dmactl write DMA control - D401 chactl write character control - D402 dlistl write display list lo - D403 dlisth write display list hi - D404 hscrol write horz scroll - D405 vscrol write vert scroll - D406 xff unused - D407 pmbash player/missile base addr hi - D408 xff unused - D409 chbash character generator base addr hi - D40A wsync wait for hsync - D40B xff unused - D40C xff unused - D40D xff unused - D40E nmien NMI enable - D40F nmires NMI reset - - D500-D7FF xff unused memory - - D800-DFFF ROM floating point ROM - E000-FFFF ROM BIOS ROM -******************************************************************************/ - -static ADDRESS_MAP_START(a400_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x9fff) AM_NOP /* RAM installed at runtime */ - AM_RANGE(0xa000, 0xbfff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xd0ff) AM_READWRITE(atari_gtia_r, atari_gtia_w) - AM_RANGE(0xd100, 0xd1ff) AM_NOP - AM_RANGE(0xd200, 0xd2ff) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0xd300, 0xd3ff) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(atari_antic_r, atari_antic_w) - AM_RANGE(0xd500, 0xd7ff) AM_NOP - AM_RANGE(0xd800, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(a800_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x9fff) AM_NOP /* RAM installed at runtime */ - AM_RANGE(0xa000, 0xbfff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xd0ff) AM_READWRITE(atari_gtia_r, atari_gtia_w) - AM_RANGE(0xd100, 0xd1ff) AM_NOP - AM_RANGE(0xd200, 0xd2ff) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0xd300, 0xd3ff) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(atari_antic_r, atari_antic_w) - AM_RANGE(0xd500, 0xd7ff) AM_NOP - AM_RANGE(0xd800, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(a800xl_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x4fff) AM_RAM - AM_RANGE(0x5000, 0x57ff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x5800, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xbfff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0xd000, 0xd0ff) AM_READWRITE(atari_gtia_r, atari_gtia_w) - AM_RANGE(0xd100, 0xd1ff) AM_NOP - AM_RANGE(0xd200, 0xd2ff) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0xd300, 0xd3ff) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(atari_antic_r, atari_antic_w) - AM_RANGE(0xd500, 0xd7ff) AM_NOP - AM_RANGE(0xd800, 0xffff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(a5200_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_RAM - AM_RANGE(0x4000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc0ff) AM_READWRITE(atari_gtia_r, atari_gtia_w) - AM_RANGE(0xd400, 0xd5ff) AM_READWRITE(atari_antic_r, atari_antic_w) - AM_RANGE(0xe800, 0xe8ff) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0xf800, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -int atari_input_disabled(void) -{ - return 0; -} - - - -#define JOYSTICK_DELTA 10 -#define JOYSTICK_SENSITIVITY 200 - -static INPUT_PORTS_START( atari_artifacting ) - PORT_START_TAG("artifacts") - PORT_CONFNAME(0x40, 0x00, "Television Artifacts" ) - PORT_CONFSETTING(0x00, DEF_STR( Off )) - PORT_CONFSETTING(0x40, DEF_STR( On )) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( atari_console ) - PORT_START_TAG("console") - PORT_BIT(0x04, 0x04, IPT_KEYBOARD) PORT_NAME("CONS.2: Option") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x02, 0x02, IPT_KEYBOARD) PORT_NAME("CONS.1: Select") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x01, 0x01, IPT_KEYBOARD) PORT_NAME("CONS.0: Start") PORT_CODE(KEYCODE_F1) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( atari_digital_joystick2 ) - PORT_START_TAG("djoy_0_1") /* IN1 digital joystick #1 + #2 (PIA port A) */ - PORT_BIT(0x01, 0x01, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_1_UP) PORT_PLAYER(1) - PORT_BIT(0x02, 0x02, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_1_DOWN) PORT_PLAYER(1) - PORT_BIT(0x04, 0x04, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_1_LEFT) PORT_PLAYER(1) - PORT_BIT(0x08, 0x08, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_1_RIGHT) PORT_PLAYER(1) - PORT_BIT(0x10, 0x10, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_2_UP) PORT_PLAYER(2) - PORT_BIT(0x20, 0x20, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_2_DOWN) PORT_PLAYER(2) - PORT_BIT(0x40, 0x40, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_2_LEFT) PORT_PLAYER(2) - PORT_BIT(0x80, 0x80, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_2_RIGHT) PORT_PLAYER(2) - - PORT_START_TAG("djoy_2_3") /* IN2 digital joystick #3 + #4 (PIA port B) */ - PORT_BIT(0x01, 0x01, IPT_UNUSED) - PORT_BIT(0x02, 0x02, IPT_UNUSED) - PORT_BIT(0x04, 0x04, IPT_UNUSED) - PORT_BIT(0x08, 0x08, IPT_UNUSED) - PORT_BIT(0x10, 0x10, IPT_UNUSED) - PORT_BIT(0x20, 0x20, IPT_UNUSED) - PORT_BIT(0x40, 0x40, IPT_UNUSED) - PORT_BIT(0x80, 0x80, IPT_UNUSED) - - PORT_START_TAG("djoy_b") /* IN3 digital joystick buttons (GTIA button bits) */ - PORT_BIT(0x01, 0x01, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x02, 0x02, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x04, 0x04, IPT_UNUSED) - PORT_BIT(0x08, 0x08, IPT_UNUSED) - PORT_BIT(0x10, 0x10, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x20, 0x20, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_2_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x40, 0x40, IPT_UNUSED) - PORT_BIT(0x80, 0x80, IPT_UNUSED) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( atari_digital_joystick4 ) - PORT_START_TAG("djoy_0_1") /* digital joystick #1 + #2 (PIA port A) */ - PORT_BIT(0x01, 0x01, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_1_UP) PORT_PLAYER(1) - PORT_BIT(0x02, 0x02, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_1_DOWN) PORT_PLAYER(1) - PORT_BIT(0x04, 0x04, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_1_LEFT) PORT_PLAYER(1) - PORT_BIT(0x08, 0x08, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_1_RIGHT) PORT_PLAYER(1) - PORT_BIT(0x10, 0x10, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_2_UP) PORT_PLAYER(2) - PORT_BIT(0x20, 0x20, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_2_DOWN) PORT_PLAYER(2) - PORT_BIT(0x40, 0x40, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_2_LEFT) PORT_PLAYER(2) - PORT_BIT(0x80, 0x80, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_2_RIGHT) PORT_PLAYER(2) - - PORT_START_TAG("djoy_2_3") /* digital joystick #3 + #4 (PIA port B) */ - PORT_BIT(0x01, 0x01, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_3_UP) PORT_PLAYER(3) - PORT_BIT(0x02, 0x02, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_3_DOWN) PORT_PLAYER(3) - PORT_BIT(0x04, 0x04, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_3_LEFT) PORT_PLAYER(3) - PORT_BIT(0x08, 0x08, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_3_RIGHT) PORT_PLAYER(3) - PORT_BIT(0x10, 0x10, IPT_JOYSTICK_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_4_UP) PORT_PLAYER(4) - PORT_BIT(0x20, 0x20, IPT_JOYSTICK_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_4_DOWN) PORT_PLAYER(4) - PORT_BIT(0x40, 0x40, IPT_JOYSTICK_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_4_LEFT) PORT_PLAYER(4) - PORT_BIT(0x80, 0x80, IPT_JOYSTICK_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_4_RIGHT) PORT_PLAYER(4) - - PORT_START_TAG("djoy_b") /* digital joystick buttons (GTIA button bits) */ - PORT_BIT(0x01, 0x01, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x02, 0x02, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x04, 0x04, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_3_BUTTON3) PORT_PLAYER(3) - PORT_BIT(0x08, 0x08, IPT_BUTTON1) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_4_BUTTON4) PORT_PLAYER(4) - PORT_BIT(0x10, 0x10, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x20, 0x20, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_2_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x40, 0x40, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_3_BUTTON3) PORT_PLAYER(3) - PORT_BIT(0x80, 0x80, IPT_BUTTON2) PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_4_BUTTON4) PORT_PLAYER(4) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( atari_keyboard ) - PORT_START_TAG("keyboard_0") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backsp") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) - - PORT_START_TAG("keyboard_1") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) - - PORT_START_TAG("keyboard_2") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ \\") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("* ^") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) - - PORT_START_TAG("keyboard_3") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", [") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". ]") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH2) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Atari") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Caps") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Insert") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Left)") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Right)") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Up)") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Down)") PORT_CODE(KEYCODE_DOWN) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( atari_analog_paddles ) - PORT_START_TAG("analog_0") /* IN8 analog in #1 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(1) PORT_REVERSE - - PORT_START_TAG("analog_1") /* IN9 analog in #2 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(2) PORT_REVERSE - - PORT_START_TAG("analog_2") /* IN10 analog in #3 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(3) PORT_REVERSE - - PORT_START_TAG("analog_3") /* IN11 analog in #4 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(4) PORT_REVERSE - - PORT_START_TAG("analog_4") /* IN12 analog in #5 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_REVERSE /* PORT_PLAYER(5) */ - - PORT_START_TAG("analog_5") /* IN13 analog in #6 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_REVERSE /* PORT_PLAYER(6) */ - - PORT_START_TAG("analog_6") /* IN14 analog in #7 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_REVERSE /* PORT_PLAYER(7) */ - - PORT_START_TAG("analog_7") /* IN15 analog in #8 */ - PORT_BIT(0xff, 0x74, IPT_PADDLE) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_REVERSE /* PORT_PLAYER(8) */ -INPUT_PORTS_END - - - -static INPUT_PORTS_START( a800 ) - PORT_INCLUDE( atari_artifacting ) - PORT_INCLUDE( atari_console ) - PORT_INCLUDE( atari_digital_joystick4 ) - PORT_INCLUDE( atari_keyboard ) - PORT_INCLUDE( atari_analog_paddles ) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( a800xl ) - PORT_INCLUDE( atari_artifacting ) - PORT_INCLUDE( atari_console ) - PORT_INCLUDE( atari_digital_joystick2 ) - PORT_INCLUDE( atari_keyboard ) - PORT_INCLUDE( atari_analog_paddles ) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( a5200 ) - PORT_INCLUDE( atari_artifacting ) - - PORT_START_TAG("djoy_b") /* lower/upper buttons */ - PORT_BIT(0x01, 0x01, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x02, 0x02, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT(0x04, 0x04, IPT_BUTTON1) PORT_PLAYER(3) - PORT_BIT(0x08, 0x08, IPT_BUTTON1) PORT_PLAYER(4) - PORT_BIT(0x10, 0x10, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT(0x20, 0x20, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x40, 0x40, IPT_BUTTON2) PORT_PLAYER(3) - PORT_BIT(0x80, 0x80, IPT_BUTTON2) PORT_PLAYER(4) - - /* KBCODE */ - /* Key bits Keypad code */ - /* ------------------- */ - /* none 0000 $FF */ - /* # 0001 $0B */ - /* 0 0010 $00 */ - /* * 0011 $0A */ - /* Reset 0100 $0E */ - /* 9 0101 $09 */ - /* 8 0110 $08 */ - /* 7 0111 $07 */ - /* Pause 1000 $0D */ - /* 6 1001 $06 */ - /* 5 1010 $05 */ - /* 4 1011 $04 */ - /* Start 1100 $0C */ - /* 3 1101 $03 */ - /* 2 1110 $02 */ - /* 1 1111 $01 */ - - PORT_START_TAG("keypad") - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Break)") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[#]") PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[0]") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[*]") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[9]") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[8]") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[7]") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[6]") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[5]") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[4]") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Start") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[3]") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[2]") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[1]") PORT_CODE(KEYCODE_1_PAD) - - PORT_START_TAG("analog_0") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(1) PORT_RESET - - PORT_START_TAG("analog_1") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(1) PORT_RESET - - PORT_START_TAG("analog_2") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(2) PORT_RESET - - PORT_START_TAG("analog_3") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(2) PORT_RESET - - PORT_START_TAG("analog_4") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(3) PORT_RESET - - PORT_START_TAG("analog_5") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(3) PORT_RESET - - PORT_START_TAG("analog_6") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(4) PORT_RESET - - PORT_START_TAG("analog_7") - PORT_BIT(0xff, 0x72, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(4) PORT_RESET - -INPUT_PORTS_END - - -static const UINT8 atari_palette[256*3] = -{ - /* Grey */ - 0x00,0x00,0x00, 0x25,0x25,0x25, 0x34,0x34,0x34, 0x4e,0x4e,0x4e, - 0x68,0x68,0x68, 0x75,0x75,0x75, 0x8e,0x8e,0x8e, 0xa4,0xa4,0xa4, - 0xb8,0xb8,0xb8, 0xc5,0xc5,0xc5, 0xd0,0xd0,0xd0, 0xd7,0xd7,0xd7, - 0xe1,0xe1,0xe1, 0xea,0xea,0xea, 0xf4,0xf4,0xf4, 0xff,0xff,0xff, - /* Gold */ - 0x41,0x20,0x00, 0x54,0x28,0x00, 0x76,0x37,0x00, 0x9a,0x50,0x00, - 0xc3,0x68,0x06, 0xe4,0x7b,0x07, 0xff,0x91,0x1a, 0xff,0xab,0x1d, - 0xff,0xc5,0x1f, 0xff,0xd0,0x3b, 0xff,0xd8,0x4c, 0xff,0xe6,0x51, - 0xff,0xf4,0x56, 0xff,0xf9,0x70, 0xff,0xff,0x90, 0xff,0xff,0xaa, - /* Orange */ - 0x45,0x19,0x04, 0x72,0x1e,0x11, 0x9f,0x24,0x1e, 0xb3,0x3a,0x20, - 0xc8,0x51,0x20, 0xe3,0x69,0x20, 0xfc,0x81,0x20, 0xfd,0x8c,0x25, - 0xfe,0x98,0x2c, 0xff,0xae,0x38, 0xff,0xb9,0x46, 0xff,0xbf,0x51, - 0xff,0xc6,0x6d, 0xff,0xd5,0x87, 0xff,0xe4,0x98, 0xff,0xe6,0xab, - /* Red-Orange */ - 0x5d,0x1f,0x0c, 0x7a,0x24,0x0d, 0x98,0x2c,0x0e, 0xb0,0x2f,0x0f, - 0xbf,0x36,0x24, 0xd3,0x4e,0x2a, 0xe7,0x62,0x3e, 0xf3,0x6e,0x4a, - 0xfd,0x78,0x54, 0xff,0x8a,0x6a, 0xff,0x98,0x7c, 0xff,0xa4,0x8b, - 0xff,0xb3,0x9e, 0xff,0xc2,0xb2, 0xff,0xd0,0xc3, 0xff,0xda,0xd0, - /* Pink */ - 0x4a,0x17,0x00, 0x72,0x1f,0x00, 0xa8,0x13,0x00, 0xc8,0x21,0x0a, - 0xdf,0x25,0x12, 0xec,0x3b,0x24, 0xfa,0x52,0x36, 0xfc,0x61,0x48, - 0xff,0x70,0x5f, 0xff,0x7e,0x7e, 0xff,0x8f,0x8f, 0xff,0x9d,0x9e, - 0xff,0xab,0xad, 0xff,0xb9,0xbd, 0xff,0xc7,0xce, 0xff,0xca,0xde, - /* Purple */ - 0x49,0x00,0x36, 0x66,0x00,0x4b, 0x80,0x03,0x5f, 0x95,0x0f,0x74, - 0xaa,0x22,0x88, 0xba,0x3d,0x99, 0xca,0x4d,0xa9, 0xd7,0x5a,0xb6, - 0xe4,0x67,0xc3, 0xef,0x72,0xce, 0xfb,0x7e,0xda, 0xff,0x8d,0xe1, - 0xff,0x9d,0xe5, 0xff,0xa5,0xe7, 0xff,0xaf,0xea, 0xff,0xb8,0xec, - /* Purple-Blue */ - 0x48,0x03,0x6c, 0x5c,0x04,0x88, 0x65,0x0d,0x90, 0x7b,0x23,0xa7, - 0x93,0x3b,0xbf, 0x9d,0x45,0xc9, 0xa7,0x4f,0xd3, 0xb2,0x5a,0xde, - 0xbd,0x65,0xe9, 0xc5,0x6d,0xf1, 0xce,0x76,0xfa, 0xd5,0x83,0xff, - 0xda,0x90,0xff, 0xde,0x9c,0xff, 0xe2,0xa9,0xff, 0xe6,0xb6,0xff, - /* Blue 1 */ - 0x05,0x1e,0x81, 0x06,0x26,0xa5, 0x08,0x2f,0xca, 0x26,0x3d,0xd4, - 0x44,0x4c,0xde, 0x4f,0x5a,0xec, 0x5a,0x68,0xff, 0x65,0x75,0xff, - 0x71,0x83,0xff, 0x80,0x91,0xff, 0x90,0xa0,0xff, 0x97,0xa9,0xff, - 0x9f,0xb2,0xff, 0xaf,0xbe,0xff, 0xc0,0xcb,0xff, 0xcd,0xd3,0xff, - /* Blue 2 */ - 0x0b,0x07,0x79, 0x20,0x1c,0x8e, 0x35,0x31,0xa3, 0x46,0x42,0xb4, - 0x57,0x53,0xc5, 0x61,0x5d,0xcf, 0x6d,0x69,0xdb, 0x7b,0x77,0xe9, - 0x89,0x85,0xf7, 0x91,0x8d,0xff, 0x9c,0x98,0xff, 0xa7,0xa4,0xff, - 0xb2,0xaf,0xff, 0xbb,0xb8,0xff, 0xc3,0xc1,0xff, 0xd3,0xd1,0xff, - /* Light-Blue */ - 0x1d,0x29,0x5a, 0x1d,0x38,0x76, 0x1d,0x48,0x92, 0x1d,0x5c,0xac, - 0x1d,0x71,0xc6, 0x32,0x86,0xcf, 0x48,0x9b,0xd9, 0x4e,0xa8,0xec, - 0x55,0xb6,0xff, 0x69,0xca,0xff, 0x74,0xcb,0xff, 0x82,0xd3,0xff, - 0x8d,0xda,0xff, 0x9f,0xd4,0xff, 0xb4,0xe2,0xff, 0xc0,0xeb,0xff, - /* Turquoise */ - 0x00,0x4b,0x59, 0x00,0x5d,0x6e, 0x00,0x6f,0x84, 0x00,0x84,0x9c, - 0x00,0x99,0xbf, 0x00,0xab,0xca, 0x00,0xbc,0xde, 0x00,0xd0,0xf5, - 0x10,0xdc,0xff, 0x3e,0xe1,0xff, 0x64,0xe7,0xff, 0x76,0xea,0xff, - 0x8b,0xed,0xff, 0x9a,0xef,0xff, 0xb1,0xf3,0xff, 0xc7,0xf6,0xff, - /* Green-Blue */ - 0x00,0x48,0x00, 0x00,0x54,0x00, 0x03,0x6b,0x03, 0x0e,0x76,0x0e, - 0x18,0x80,0x18, 0x27,0x92,0x27, 0x36,0xa4,0x36, 0x4e,0xb9,0x4e, - 0x51,0xcd,0x51, 0x72,0xda,0x72, 0x7c,0xe4,0x7c, 0x85,0xed,0x85, - 0x99,0xf2,0x99, 0xb3,0xf7,0xb3, 0xc3,0xf9,0xc3, 0xcd,0xfc,0xcd, - /* Green */ - 0x16,0x40,0x00, 0x1c,0x53,0x00, 0x23,0x66,0x00, 0x28,0x78,0x00, - 0x2e,0x8c,0x00, 0x3a,0x98,0x0c, 0x47,0xa5,0x19, 0x51,0xaf,0x23, - 0x5c,0xba,0x2e, 0x71,0xcf,0x43, 0x85,0xe3,0x57, 0x8d,0xeb,0x5f, - 0x97,0xf5,0x69, 0xa0,0xfe,0x72, 0xb1,0xff,0x8a, 0xbc,0xff,0x9a, - /* Yellow-Green */ - 0x2c,0x35,0x00, 0x38,0x44,0x00, 0x44,0x52,0x00, 0x49,0x56,0x00, - 0x60,0x71,0x00, 0x6c,0x7f,0x00, 0x79,0x8d,0x0a, 0x8b,0x9f,0x1c, - 0x9e,0xb2,0x2f, 0xab,0xbf,0x3c, 0xb8,0xcc,0x49, 0xc2,0xd6,0x53, - 0xcd,0xe1,0x53, 0xdb,0xef,0x6c, 0xe8,0xfc,0x79, 0xf2,0xff,0xab, - /* Orange-Green */ - 0x46,0x3a,0x09, 0x4d,0x3f,0x09, 0x54,0x45,0x09, 0x6c,0x58,0x09, - 0x90,0x76,0x09, 0xab,0x8b,0x0a, 0xc1,0xa1,0x20, 0xd0,0xb0,0x2f, - 0xde,0xbe,0x3d, 0xe6,0xc6,0x45, 0xed,0xcd,0x4c, 0xf5,0xd8,0x62, - 0xfb,0xe2,0x76, 0xfc,0xee,0x98, 0xfd,0xf3,0xa9, 0xfd,0xf3,0xbe, - /* Light-Orange */ - 0x40,0x1a,0x02, 0x58,0x1f,0x05, 0x70,0x24,0x08, 0x8d,0x3a,0x13, - 0xab,0x51,0x1f, 0xb5,0x64,0x27, 0xbf,0x77,0x30, 0xd0,0x85,0x3a, - 0xe1,0x93,0x44, 0xed,0xa0,0x4e, 0xf9,0xad,0x58, 0xfc,0xb7,0x5c, - 0xff,0xc1,0x60, 0xff,0xca,0x69, 0xff,0xcf,0x7e, 0xff,0xda,0x96 -}; - -static unsigned short atari_colortable[] = -{ - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, - 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, - 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, - 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, - 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, - 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, - 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, - 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, - 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, - 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, - 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, - 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff -}; - -/* Initialise the palette */ -static PALETTE_INIT( atari ) -{ - palette_set_colors(machine, 0, atari_palette, sizeof(atari_palette) / 3); - memcpy(colortable,atari_colortable,sizeof(atari_colortable)); -} - - - -static READ8_HANDLER( analog_0_r ) { return (UINT8) readinputportbytag("analog_0"); } -static READ8_HANDLER( analog_1_r ) { return (UINT8) readinputportbytag("analog_1"); } -static READ8_HANDLER( analog_2_r ) { return (UINT8) readinputportbytag("analog_2"); } -static READ8_HANDLER( analog_3_r ) { return (UINT8) readinputportbytag("analog_3"); } -static READ8_HANDLER( analog_4_r ) { return (UINT8) readinputportbytag("analog_4"); } -static READ8_HANDLER( analog_5_r ) { return (UINT8) readinputportbytag("analog_5"); } -static READ8_HANDLER( analog_6_r ) { return (UINT8) readinputportbytag("analog_6"); } -static READ8_HANDLER( analog_7_r ) { return (UINT8) readinputportbytag("analog_7"); } - - - -static struct POKEYinterface pokey_interface = -{ - { - analog_0_r, - analog_1_r, - analog_2_r, - analog_3_r, - analog_4_r, - analog_5_r, - analog_6_r, - analog_7_r - }, - 0, - atari_serin_r, - atari_serout_w, - atari_interrupt_cb, -}; - - - -static MACHINE_DRIVER_START( atari_common_nodac ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6510, FREQ_17_EXACT) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_VISIBLE_AREA(MIN_X, MAX_X, MIN_Y, MAX_Y) - MDRV_PALETTE_LENGTH(sizeof(atari_palette) / sizeof(atari_palette[0]) / 3) - MDRV_COLORTABLE_LENGTH(sizeof(atari_colortable) / sizeof(atari_colortable[0])) - MDRV_PALETTE_INIT(atari) - - MDRV_VIDEO_START(atari) - MDRV_VIDEO_UPDATE(atari) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(POKEY, FREQ_17_EXACT) - MDRV_SOUND_CONFIG(pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( atari_common ) - MDRV_IMPORT_FROM( atari_common_nodac ) - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a400 ) - MDRV_IMPORT_FROM( atari_common ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a400_mem, 0) - MDRV_CPU_VBLANK_INT(a400_interrupt, TOTAL_LINES_60HZ) - - MDRV_MACHINE_START( a400 ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a400pal ) - MDRV_IMPORT_FROM( atari_common ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a400_mem, 0) - MDRV_CPU_VBLANK_INT(a400_interrupt, TOTAL_LINES_50HZ) - - MDRV_MACHINE_START( a400 ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_50HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_50HZ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a800 ) - MDRV_IMPORT_FROM( atari_common ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a800_mem, 0) - MDRV_CPU_VBLANK_INT(a800_interrupt, TOTAL_LINES_60HZ) - - MDRV_MACHINE_START( a800 ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a800pal ) - MDRV_IMPORT_FROM( atari_common ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a800_mem, 0) - MDRV_CPU_VBLANK_INT(a800_interrupt, TOTAL_LINES_50HZ) - - MDRV_MACHINE_START( a800 ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_50HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_50HZ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a800xl ) - MDRV_IMPORT_FROM( atari_common ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a800xl_mem, 0) - MDRV_CPU_VBLANK_INT(a800xl_interrupt, TOTAL_LINES_60HZ) - - MDRV_MACHINE_START( a800xl ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( a5200 ) - MDRV_IMPORT_FROM( atari_common_nodac ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(a5200_mem, 0) - MDRV_CPU_VBLANK_INT(a5200_interrupt, TOTAL_LINES_60HZ) - - MDRV_MACHINE_START( a5200 ) - MDRV_SCREEN_REFRESH_RATE(FRAME_RATE_60HZ) - MDRV_SCREEN_SIZE(HWIDTH*8, TOTAL_LINES_60HZ) -MACHINE_DRIVER_END - - -ROM_START(a400) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 2 * 8K for cartridges */ - ROM_LOAD("floatpnt.rom", 0xd800, 0x0800, CRC(6a5d766e) SHA1(01a6044f7a81d409c938e7dfde0a1af5832229d2)) - ROM_LOAD("atari400.rom", 0xe000, 0x2000, CRC(cb4db9af) SHA1(4e784f4e2530110366f7e5d257d0f050de4201b2)) -ROM_END - -ROM_START(a400pal) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 2 * 8K for cartridges */ - ROM_LOAD("floatpnt.rom", 0xd800, 0x0800, CRC(6a5d766e) SHA1(01a6044f7a81d409c938e7dfde0a1af5832229d2)) - ROM_LOAD("atari400.rom", 0xe000, 0x2000, CRC(cb4db9af) SHA1(4e784f4e2530110366f7e5d257d0f050de4201b2)) -ROM_END - -ROM_START(a800) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 2 * 8K for cartridges */ - ROM_LOAD("floatpnt.rom", 0xd800, 0x0800, CRC(6a5d766e) SHA1(01a6044f7a81d409c938e7dfde0a1af5832229d2)) - ROM_LOAD("atari800.rom", 0xe000, 0x2000, CRC(cb4db9af) SHA1(4e784f4e2530110366f7e5d257d0f050de4201b2)) -ROM_END - -ROM_START(a800pal) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 2 * 8K for cartridges */ - ROM_LOAD("floatpnt.rom", 0xd800, 0x0800, CRC(6a5d766e) SHA1(01a6044f7a81d409c938e7dfde0a1af5832229d2)) - ROM_LOAD("atari800.rom", 0xe000, 0x2000, CRC(cb4db9af) SHA1(4e784f4e2530110366f7e5d257d0f050de4201b2)) -ROM_END - -ROM_START(a800xl) - ROM_REGION(0x18000,REGION_CPU1,0) /* 64K for the CPU + 16K + 2 * 8K for cartridges */ - ROM_LOAD("basic.rom", 0x10000, 0x2000, CRC(7d684184) SHA1(3693c9cb9bf3b41bae1150f7a8264992468fc8c0)) - ROM_LOAD("atarixl.rom", 0x14000, 0x4000, CRC(1f9cd270) SHA1(ae4f523ba08b6fd59f3cae515a2b2410bbd98f55)) -ROM_END - -ROM_START(a5200) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 16K for cartridges */ - ROM_LOAD("5200.rom", 0xf800, 0x0800, CRC(4248d3e3) SHA1(6ad7a1e8c9fad486fbec9498cb48bf5bc3adc530)) -ROM_END - -ROM_START(a5200a) - ROM_REGION(0x14000,REGION_CPU1,0) /* 64K for the CPU + 16K for cartridges */ - ROM_LOAD("5200a.rom", 0xf800, 0x0800, CRC(c2ba2613) SHA1(1d2a3f00109d75d2d79fecb565775eb95b7d04d5)) -ROM_END - -static void atari_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a800_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "atr,dsk,xfd"); break; - } -} - -SYSTEM_CONFIG_START(atari) - CONFIG_DEVICE(atari_floppy_getinfo) -SYSTEM_CONFIG_END - -static void a400_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a800_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_a800_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom,bin"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(a400) - CONFIG_IMPORT_FROM(atari) - CONFIG_RAM_DEFAULT(40 * 1024) - CONFIG_DEVICE(a400_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void a800_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a800_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_a800_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom,bin"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(a800) - CONFIG_IMPORT_FROM(atari) - CONFIG_RAM_DEFAULT(40 * 1024) - CONFIG_DEVICE(a800_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void a5200_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_a5200_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_a5200_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom,bin,a52"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(a5200) - CONFIG_RAM_DEFAULT(16 * 1024) - CONFIG_DEVICE(a5200_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP ( 1979, a400, 0, 0, a400, a800, 0, a400, "Atari", "Atari 400 (NTSC)" , 0) -COMP ( 1979, a400pal, a400, 0, a400pal, a800, 0, a400, "Atari", "Atari 400 (PAL)" , 0) -COMP ( 1979, a800, 0, 0, a800, a800, 0, a800, "Atari", "Atari 800 (NTSC)" , 0) -COMP ( 1979, a800pal, a800, 0, a800pal, a800, 0, a800, "Atari", "Atari 800 (PAL)" , 0) -COMP ( 1983, a800xl, a800, 0, a800xl, a800xl, 0, a800, "Atari", "Atari 800XL", GAME_NOT_WORKING ) -CONS ( 1982, a5200, 0, 0, a5200, a5200, 0, a5200, "Atari", "Atari 5200", 0) -CONS ( 1982, a5200a, a5200, 0, a5200, a5200, 0, a5200, "Atari", "Atari 5200 (alt)", 0) diff --git a/mess/systems/atom.c b/mess/systems/atom.c deleted file mode 100644 index 0c9d28ecc..000000000 --- a/mess/systems/atom.c +++ /dev/null @@ -1,340 +0,0 @@ -/*************************************************************************** -Acorn Atom: - -Memory map. - -CPU: 65C02 - 0000-00ff Zero page - 0100-01ff Stack - 0200-1fff RAM (expansion) - 0a00-0a04 FDC 8271 - 2000-21ff RAM (dos catalogue buffer) - 2200-27ff RAM (dos seq file buffer) - 2800-28ff RAM (float buffer) - 2900-7fff RAM (text RAM) - 8000-97ff VDG 6847 - 9800-9fff RAM (expansion) - a000-afff ROM (extension) - b000-b003 PPIA 8255 - b003-b7ff NOP - b800-bbff VIA 6522 - bc00-bfdf NOP - bfe0-bfe2 MOUSE - extension?? - bfe3-bfff NOP - c000-cfff ROM (basic) - d000-dfff ROM (float) - e000-efff ROM (dos) - f000-ffff ROM (kernel) - -Video: MC6847 - -Sound: Buzzer -Floppy: FDC8271 - -Hardware: PPIA 8255 - - output b000 0 - 3 keyboard row, 4 - 7 graphics mode - b002 0 cas output, 1 enable 2.4Khz, 2 buzzer, 3 colour set - - input b001 0 - 5 keyboard column, 6 CTRL key, 7 SHIFT key - b002 4 2.4kHz input, 5 cas input, 6 REPT key, 7 60 Hz input - - VIA 6522 - - - DOS: - - The original location of the 8271 memory mapped registers is 0xa00-0x0a04. - (This is the memory range assigned by Acorn in their design.) - - This is in the middle of the area for expansion RAM. Many Atom owners - thought this was a bad design and have modified their Atom's and dos rom - to use a different memory area. - - The atom driver in MESS uses the original memory area. - - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "machine/8255ppi.h" -#include "vidhrdw/m6847.h" -#include "includes/atom.h" -#include "includes/i8271.h" -#include "devices/basicdsk.h" -#include "devices/flopdrv.h" -#include "devices/printer.h" -#include "devices/cassette.h" -#include "machine/6522via.h" -#include "includes/centroni.h" - -/* functions */ - -/* port i/o functions */ - -/* memory w/r functions */ - -static ADDRESS_MAP_START( atom_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x09ff) AM_RAM - AM_RANGE(0x0a00, 0x0a04) AM_READWRITE(atom_8271_r, atom_8271_w) - AM_RANGE(0x0a05, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0x97ff) AM_RAM AM_BASE(&videoram) /* VDG 6847 */ - AM_RANGE(0x9800, 0x9fff) AM_RAM - AM_RANGE(0xb000, 0xb003) AM_READWRITE(ppi8255_0_r, ppi8255_0_w) /* PPIA 8255 */ - AM_RANGE(0xb800, 0xbbff) AM_READWRITE(via_0_r, via_0_w) /* VIA 6522 */ - AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( atomeb_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x09ff) AM_RAM - AM_RANGE(0x0a00, 0x0a04) AM_READWRITE(atom_8271_r, atom_8271_w) - AM_RANGE(0x0a05, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0x97ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) /* VDG 6847 */ - AM_RANGE(0x9800, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xafff) AM_READ(MRA8_BANK1) /* eprom data from eprom box */ - AM_RANGE(0xb000, 0xb003) AM_READWRITE(ppi8255_0_r, ppi8255_0_w) /* PPIA 8255 */ - AM_RANGE(0xb800, 0xbbff) AM_READWRITE(via_0_r, via_0_w) /* VIA 6522 */ - AM_RANGE(0xbfff, 0xbfff) AM_READWRITE(atom_eprom_box_r, atom_eprom_box_w) - AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -/* graphics output */ - -/* keyboard input */ - -/* not implemented: BREAK */ - -INPUT_PORTS_START (atom) - PORT_START /* 0 VBLANK */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("deadkey") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("escape") PORT_CODE(KEYCODE_ESC) - - PORT_START /* 2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("deadkey") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - - PORT_START /* 3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("up") PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - - PORT_START /* 4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - - PORT_START /* 5 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("caps lock") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("backspace") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - - PORT_START /* 6 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("uparrow") PORT_CODE(KEYCODE_TILDE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("copy") PORT_CODE(KEYCODE_TAB) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - - PORT_START /* 7 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("enter") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - - PORT_START /* 8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("deadkey") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - - PORT_START /* 9 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("deadkey") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - - PORT_START /* 10 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("space") PORT_CODE(KEYCODE_SPACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("deadkey") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - - PORT_START /* 11 CTRL & SHIFT */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LControl") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RControl") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LShift") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RShift") PORT_CODE(KEYCODE_RSHIFT) - - PORT_START /* 12 REPT key */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LAlt") PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RAlt") PORT_CODE(KEYCODE_RALT) - -INPUT_PORTS_END - -/* sound output */ - -/* machine definition */ -static MACHINE_DRIVER_START( atom ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M65C02, 1000000) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(atom_mem, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - MDRV_MACHINE_RESET( atom ) - - /* video hardware */ - MDRV_VIDEO_START(atom) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( atomeb ) - MDRV_IMPORT_FROM( atom ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(atomeb_mem, 0 ) - - MDRV_MACHINE_RESET( atomeb ) -MACHINE_DRIVER_END - - -ROM_START (atom) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("akernel.rom", 0xf000, 0x1000, CRC(c604db3d) SHA1(2621f27d652d4673e0a79aa669e729b8c3051ab6)) - ROM_LOAD ("dosrom.rom", 0xe000, 0x1000, CRC(c431a9b7) SHA1(71ea0a4b8d9c3caf9718fc7cc279f4306a23b39c)) - ROM_LOAD ("afloat.rom", 0xd000, 0x1000, CRC(81d86af7) SHA1(ebcde5b36cb3a3344567cbba4c7b9fde015f4802)) - ROM_LOAD ("abasic.rom", 0xc000, 0x1000, CRC(43798b9b) SHA1(a8ea19f10d4c98fbc1b666e5968f06d46af9a84c)) -ROM_END - -ROM_START (atomeb) - ROM_REGION (0x10000+0x09000, REGION_CPU1,0) - ROM_LOAD ("akernel.rom", 0xf000, 0x1000, CRC(c604db3d) SHA1(2621f27d652d4673e0a79aa669e729b8c3051ab6)) - ROM_LOAD ("dosrom.rom", 0xe000, 0x1000, CRC(c431a9b7) SHA1(71ea0a4b8d9c3caf9718fc7cc279f4306a23b39c)) - ROM_LOAD ("afloat.rom", 0xd000, 0x1000, CRC(81d86af7) SHA1(ebcde5b36cb3a3344567cbba4c7b9fde015f4802)) - ROM_LOAD ("abasic.rom", 0xc000, 0x1000, CRC(43798b9b) SHA1(a8ea19f10d4c98fbc1b666e5968f06d46af9a84c)) - /* roms from another oric emulator */ - ROM_LOAD ("axr1.rom",0x010000,0x1000, CRC(868fda8b) SHA1(f8417787c28818a7646b9b59d706ef890255049f)) - ROM_LOAD ("pcharme.rom",0x011000,0x1000, CRC(9e8bd79f) SHA1(66c57622448b448aa6080911dccb03456d0e3b81)) - ROM_LOAD ("gags.rom",0x012000,0x1000, CRC(35e1d713) SHA1(94cc2887ad9fea1849d1d53c64d0668e77696ef4)) - ROM_LOAD ("werom.rom",0x013000,0x1000, CRC(dfcb3bf8) SHA1(85a19146844da2d6f03e1cde37ee17429eedeb0d)) - ROM_LOAD ("unknown.rom",0x014000,0x1000, CRC(013b8f93) SHA1(b4341f116a6d1e0cbcd39d64e0b5d14a90dc0356)) - ROM_LOAD ("combox.rom",0x015000,0x1000, CRC(9c8210ab) SHA1(ea293f49a98721cdbdf985d6f2fe636290ef0e75)) - ROM_LOAD ("salfaa.rom",0x016000,0x1000, CRC(ef857b25) SHA1(b3812427233060972fa01faf3ce381a21576a5ed)) - ROM_LOAD ("mousebox.rom",0x017000,0x01000, CRC(0dff30e4) SHA1(b7c0b9c23fcc5cfdc06cb2d2a9e7c2658e248ef7)) - ROM_LOAD ("atomicw.rom",0x018000,0x1000, CRC(a3fd737d) SHA1(d418d9322c69c49106ed2c268ad0864c0f2c4c1b)) -ROM_END - -static void atom_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void atom_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_atom_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "ssd"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -static void atom_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void atom_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "atm"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_atom; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(atom) - CONFIG_DEVICE(atom_cassette_getinfo) - CONFIG_DEVICE(atom_floppy_getinfo) - CONFIG_DEVICE(atom_printer_getinfo) - CONFIG_DEVICE(atom_quickload_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1979, atom, 0, 0, atom, atom, 0, atom, "Acorn", "Atom" , 0) -COMP( 1979, atomeb, atom, 0, atomeb, atom, 0, atom, "Acorn", "Atom with Eprom Box" , 0) diff --git a/mess/systems/avigo.c b/mess/systems/avigo.c deleted file mode 100644 index 159ee0358..000000000 --- a/mess/systems/avigo.c +++ /dev/null @@ -1,977 +0,0 @@ -/****************************************************************************** - - avigo.c - - TI "Avigo" PDA - - - system driver - - Documentation: - Hans B Pufal - Avigo simulator - - - MEMORY MAP: - 0x0000-0x03fff: flash 0 block 0 - 0x4000-0x07fff: flash x block y - 0x8000-0x0bfff: ram block x, screen buffer, or flash x block y - 0xc000-0x0ffff: ram block 0 - - Hardware: - - Z80 CPU - - 16c500c UART - - amd29f080 flash-file memory x 3 (3mb) - - 128k ram - - stylus pen - - touch-pad screen - TODO: - Dissassemble the rom a bit and find out exactly - how memory paging works! - - I don't have any documentation on the hardware, so a lot of this - driver has been written using educated guesswork and a lot of help - from an existing emulation written by Hans Pufal. Hans's emulator - is also written from educated guesswork. - - Kevin Thacker [MESS driver] - - ******************************************************************************/ -#include "driver.h" -#include "includes/avigo.h" -#include "includes/am29f080.h" -#include "includes/tc8521.h" -#include "machine/uart8250.h" -#include "sound/speaker.h" - -static UINT8 avigo_key_line; -/* - bit 7: ?? high priority. When it occurs, clear this bit. - bit 6: pen int - An interrupt when pen is pressed against screen. - - bit 5: real time clock - - - bit 4: - - - bit 3: uart int - - - bit 2: synchronisation link interrupt???keyboard int ;; check bit 5 of port 1, - - bit 1: ??? (cleared in nmi, and then set again) - -*/ - -static UINT8 avigo_irq; - -/* bit 3 = speaker state */ -static UINT8 avigo_speaker_data; - -/* bits 0-5 define bank index */ -static unsigned long avigo_ram_bank_l; -static unsigned long avigo_ram_bank_h; -/* bits 0-5 define bank index */ -static unsigned long avigo_rom_bank_l; -static unsigned long avigo_rom_bank_h; -static unsigned long avigo_ad_control_status; -static int avigo_flash_at_0x4000; -static int avigo_flash_at_0x8000; -static void *avigo_banked_opbase[4]; - -static void avigo_setbank(int bank, void *address, read8_handler rh, write8_handler wh) -{ - if (address) - { - memory_set_bankptr(1+bank, address); - memory_set_bankptr(5+bank, address); - avigo_banked_opbase[bank] = ((UINT8 *) address) - (bank * 0x4000); - } - if (rh) - { - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, (bank * 0x4000), - (bank * 0x4000) + 0x3FFF, 0, 0, rh); - } - if (wh) - { - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, (bank * 0x4000), - (bank * 0x4000) + 0x3FFF, 0, 0, wh); - } -} - -/* memory 0x0000-0x03fff */ -static READ8_HANDLER(avigo_flash_0x0000_read_handler) -{ - int flash_offset = offset; - return amd_flash_bank_handler_r(0, flash_offset); -} - -/* memory 0x04000-0x07fff */ -static READ8_HANDLER(avigo_flash_0x4000_read_handler) -{ - - int flash_offset = (avigo_rom_bank_l<<14) | offset; - - // logerror("flash offset: %04x offset: %04x\n",flash_offset, offset); - - - return amd_flash_bank_handler_r(avigo_flash_at_0x4000, flash_offset); -} - -/* memory 0x0000-0x03fff */ -static WRITE8_HANDLER(avigo_flash_0x0000_write_handler) -{ - - int flash_offset = offset; - - amd_flash_bank_handler_w(0, flash_offset, data); -} - -/* memory 0x04000-0x07fff */ -static WRITE8_HANDLER(avigo_flash_0x4000_write_handler) -{ - - int flash_offset = (avigo_rom_bank_l<<14) | offset; - - // logerror("flash offset: %04x offset: %04x\n",flash_offset, offset); - - amd_flash_bank_handler_w(avigo_flash_at_0x4000, flash_offset, data); -} - -/* memory 0x08000-0x0bfff */ -static READ8_HANDLER(avigo_flash_0x8000_read_handler) -{ - - int flash_offset = (avigo_ram_bank_l<<14) | offset; - - // logerror("flash offset: %04x offset: %04x\n",flash_offset, offset); - - return amd_flash_bank_handler_r(avigo_flash_at_0x8000, flash_offset); -} - -/* memory 0x08000-0x0bfff */ -static WRITE8_HANDLER(avigo_flash_0x8000_write_handler) -{ - - int flash_offset = (avigo_ram_bank_l<<14) | offset; - - // logerror("flash offset: %04x offset: %04x\n",flash_offset, offset); - - amd_flash_bank_handler_w(avigo_flash_at_0x8000, flash_offset, data); -} - - -static void avigo_refresh_ints(void) -{ - if (avigo_irq!=0) - cpunum_set_input_line(0,0, HOLD_LINE); - else - cpunum_set_input_line(0,0, CLEAR_LINE); -} - - -/* previous input port data */ -static int previous_input_port_data[4]; -static int stylus_marker_x; -static int stylus_marker_y; -static int stylus_press_x; -static int stylus_press_y; - -/* this is not a real interrupt. This timer updates the stylus position from mouse -movements, and checks if the mouse button is pressed to emulate a press of the stylus to the screen. -*/ -static void avigo_dummy_timer_callback(int dummy) -{ - int i; - int current_input_port_data[4]; - int changed; - static int ox = 0, oy = 0; - int nx,ny; - int dx, dy; - - for (i=0; i<4; i++) - { - current_input_port_data[i] = readinputport(i); - } - - changed = current_input_port_data[3]^previous_input_port_data[3]; - - if ((changed & 0x01)!=0) - { - if ((current_input_port_data[3] & 0x01)!=0) - { - /* pen pressed to screen */ - - logerror("pen pressed interrupt\n"); - stylus_press_x = stylus_marker_x; - stylus_press_y = stylus_marker_y; - /* set pen interrupt */ - avigo_irq |= (1<<6); - } - else - { - stylus_press_x = 0; - stylus_press_y = 0; - } - } - - if ((changed & 0x02)!=0) - { - if ((current_input_port_data[3] & 0x02)!=0) - { - /* ????? causes a NMI */ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - } - - for (i=0; i<4; i++) - { - previous_input_port_data[i] = current_input_port_data[i]; - } - - nx = readinputport(4); - if (nx>=0x800) nx-=0x1000; - else if (nx<=-0x800) nx+=0x1000; - - dx = nx - ox; - ox = nx; - - ny = readinputport(5); - if (ny>=0x800) ny-=0x1000; - else if (ny<=-0x800) ny+=0x1000; - - dy = ny - oy; - oy = ny; - - stylus_marker_x +=dx; - stylus_marker_y +=dy; - - avigo_vh_set_stylus_marker_position(stylus_marker_x, stylus_marker_y); -#if 0 - /* not sure if keyboard generates an interrupt, or if something - is plugged in for synchronisation! */ - /* not sure if this is correct! */ - for (i=0; i<2; i++) - { - int changed; - int current; - current = ~current_input_port_data[i]; - - changed = ((current^(~previous_input_port_data[i])) & 0x07); - - if (changed!=0) - { - /* if there are 1 bits remaining, it means there is a bit - that has changed, the old state was off and new state is on */ - if (current & changed) - { - avigo_irq |= (1<<2); - break; - } - } - } -#endif - /* copy current to previous */ - memcpy(previous_input_port_data, current_input_port_data, sizeof(int)*4); - - /* refresh status of interrupts */ - avigo_refresh_ints(); -} - -/* does not do anything yet */ -static void avigo_tc8521_alarm_int(int state) -{ -//#if 0 - avigo_irq &=~(1<<5); - - if (state) - { - avigo_irq |= (1<<5); - } - - avigo_refresh_ints(); -//#endif -} - - -static struct tc8521_interface avigo_tc8521_interface = -{ - avigo_tc8521_alarm_int -}; - -static void avigo_refresh_memory(void) -{ - unsigned char *addr; - - switch (avigo_rom_bank_h) - { - /* 011 */ - case 0x03: - { - avigo_flash_at_0x4000 = 1; - } - break; - - /* 101 */ - case 0x05: - { - avigo_flash_at_0x4000 = 2; - } - break; - - default: - avigo_flash_at_0x4000 = 0; - break; - } - - addr = (unsigned char *)amd_flash_get_base(avigo_flash_at_0x4000); - addr = addr + (avigo_rom_bank_l<<14); - avigo_setbank(1, addr, avigo_flash_0x4000_read_handler, avigo_flash_0x4000_write_handler); - - switch (avigo_ram_bank_h) - { - /* %101 */ - /* screen */ - case 0x06: - avigo_setbank(2, NULL, avigo_vid_memory_r, avigo_vid_memory_w); - break; - - /* %001 */ - /* ram */ - case 0x01: - addr = mess_ram + ((avigo_ram_bank_l & 0x07)<<14); - avigo_setbank(2, addr, MRA8_BANK3, MWA8_BANK7); - break; - - /* %111 */ - case 0x03: - avigo_flash_at_0x8000 = 1; - - - addr = (unsigned char *)amd_flash_get_base(avigo_flash_at_0x8000); - addr = addr + (avigo_ram_bank_l<<14); - avigo_setbank(2, addr, avigo_flash_0x8000_read_handler, - MWA8_NOP /* avigo_flash_0x8000_write_handler */); - break; - - case 0x07: - avigo_flash_at_0x8000 = 0; - - addr = (unsigned char *)amd_flash_get_base(avigo_flash_at_0x8000); - addr = addr + (avigo_ram_bank_l<<14); - avigo_setbank(2, addr, avigo_flash_0x8000_read_handler, - MWA8_NOP /* avigo_flash_0x8000_write_handler */); - break; - } -} - - - -static void avigo_com_interrupt(int irq_num, int state) -{ - logerror("com int\r\n"); - - avigo_irq &= ~(1<<3); - - if (state) - { - avigo_irq |= (1<<3); - } - - avigo_refresh_ints(); -} - - - -static uart8250_interface avigo_com_interface[1]= -{ - { - TYPE16550, - 1843200, - avigo_com_interrupt, - NULL, - NULL - }, -}; - -/* this is needed because this driver uses handlers in memory that gets executed */ -static OPBASE_HANDLER( avigo_opbase_handler ) -{ - void *opbase; - - opbase = avigo_banked_opbase[address / 0x4000]; - if (opbase) - { - opcode_base = opcode_arg_base = opbase; - address = ~0; - } - return address; -} - -static void avigo_machine_reset(running_machine *machine) -{ - int i; - unsigned char *addr; - - memset(avigo_banked_opbase, 0, sizeof(avigo_banked_opbase)); - - /* initialise flash memory */ - amd_flash_init(0); - amd_flash_init(1); - amd_flash_init(2); - - /* install os into flash from rom image data */ - { - /* get base of rom data */ - char *rom = (char *)memory_region(REGION_CPU1)+0x010000; - char *flash; - - if (rom!=NULL) - { - /* copy first 1mb into first flash */ - flash = (char *)amd_flash_get_base(0); - if (flash) - memcpy(flash, rom, 0x0100000); - - /* copy second 1mb into second flash */ - flash = (char *)amd_flash_get_base(1); - if (flash) - memcpy(flash, rom+0x0100000, 0x0150000-0x0100000); - } - } - - - stylus_marker_x = AVIGO_SCREEN_WIDTH>>1; - stylus_marker_y = AVIGO_SCREEN_HEIGHT>>1; - stylus_press_x = 0; - stylus_press_y = 0; - avigo_vh_set_stylus_marker_position(stylus_marker_x, stylus_marker_y); - - /* if these files exist, they will overwrite the os installed - from the rom in the code above. - - This is ok. These files will be created by this driver and they will - contain the OS data in them! Since these files are in the flash - memory they can be written to. */ - - - amd_flash_restore(0, "avigof1.nv"); - amd_flash_reset(0); - - amd_flash_restore(1, "avigof2.nv"); - amd_flash_reset(1); - - amd_flash_restore(2, "avigof3.nv"); - amd_flash_reset(2); - - /* initialise settings for port data */ - for (i=0; i<4; i++) - { - previous_input_port_data[i] = readinputport(i); - } - - avigo_irq = 0; - avigo_rom_bank_l = 0; - avigo_rom_bank_h = 0; - avigo_ram_bank_l = 0; - avigo_ram_bank_h = 0; - avigo_flash_at_0x4000 = 0; - avigo_flash_at_0x8000 = 0; - - /* real time clock */ - tc8521_init(&avigo_tc8521_interface); - - /* serial/uart */ - uart8250_init(0, avigo_com_interface); - uart8250_reset(0); - - /* clear */ - memset(mess_ram, 0, 128*1024); - - memory_set_opbase_handler(0, avigo_opbase_handler); - - addr = (unsigned char *)amd_flash_get_base(0); - avigo_setbank(0, addr, avigo_flash_0x0000_read_handler, avigo_flash_0x0000_write_handler); - - avigo_setbank(3, mess_ram, NULL, NULL); - - /* 0x08000 is specially banked! */ - avigo_refresh_memory(); -} - -static void avigo_machine_stop(running_machine *machine) -{ - /* store and free flash memory */ - amd_flash_store(0, "avigof1.nv"); - amd_flash_finish(0); - - amd_flash_store(1, "avigof2.nv"); - amd_flash_finish(1); - - amd_flash_store(2, "avigof3.nv"); - amd_flash_finish(2); -} - -static MACHINE_START( avigo ) -{ - /* a timer used to check status of pen */ - /* an interrupt is generated when the pen is pressed to the screen */ - timer_pulse(TIME_IN_HZ(50), 0, avigo_dummy_timer_callback); - - add_reset_callback(machine, avigo_machine_reset); - add_exit_callback(machine, avigo_machine_stop); - return 0; -} - - -ADDRESS_MAP_START( avigo_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK5 ) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK6 ) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE( MRA8_BANK3, MWA8_BANK7 ) - AM_RANGE(0xc000, 0xffff) AM_READWRITE( MRA8_BANK4, MWA8_BANK8 ) -ADDRESS_MAP_END - - -static READ8_HANDLER(avigo_key_data_read_r) -{ - UINT8 data; - - data = 0x007; - - if (avigo_key_line & 0x01) - { - data &= readinputport(0); - } - - if (avigo_key_line & 0x02) - { - data &= readinputport(1); - } - - if (avigo_key_line & 0x04) - { - data &= readinputport(2); - - } - - /* if bit 5 is clear shows synchronisation logo! */ - /* bit 3 must be set, otherwise there is an infinite loop in startup */ - data |= (1<<3) | (1<<5); - - return data; -} - - -/* set key line(s) to read */ -/* bit 0 set for line 0, bit 1 set for line 1, bit 2 set for line 2 */ -static WRITE8_HANDLER(avigo_set_key_line_w) -{ - /* 5, 101, read back 3 */ - avigo_key_line = data; -} - -static READ8_HANDLER(avigo_irq_r) -{ - return avigo_irq; -} - -static WRITE8_HANDLER(avigo_irq_w) -{ - avigo_irq &= ~data; - - avigo_refresh_ints(); -} - -static READ8_HANDLER(avigo_rom_bank_l_r) -{ - return avigo_rom_bank_l; -} - -static READ8_HANDLER(avigo_rom_bank_h_r) -{ - return avigo_rom_bank_h; -} - -static READ8_HANDLER(avigo_ram_bank_l_r) -{ - return avigo_ram_bank_l; -} - -static READ8_HANDLER(avigo_ram_bank_h_r) -{ - return avigo_ram_bank_h; -} - - - -static WRITE8_HANDLER(avigo_rom_bank_l_w) -{ - logerror("rom bank l w: %04x\n", data); - - avigo_rom_bank_l = data & 0x03f; - - avigo_refresh_memory(); -} - -static WRITE8_HANDLER(avigo_rom_bank_h_w) -{ - logerror("rom bank h w: %04x\n", data); - - - /* 000 = flash 0 - 001 = ram select - 011 = flash 1 (rom at ram - block 1 select) - 101 = flash 2 - 110 = screen select? - 111 = flash 0 (rom at ram?) - - - */ - avigo_rom_bank_h = data; - - - avigo_refresh_memory(); -} - -static WRITE8_HANDLER(avigo_ram_bank_l_w) -{ - logerror("ram bank l w: %04x\n", data); - - avigo_ram_bank_l = data & 0x03f; - - avigo_refresh_memory(); -} - -static WRITE8_HANDLER(avigo_ram_bank_h_w) -{ - logerror("ram bank h w: %04x\n", data); - - avigo_ram_bank_h = data; - - avigo_refresh_memory(); -} - -static READ8_HANDLER(avigo_ad_control_status_r) -{ - logerror("avigo ad control read %02x\n", (int) avigo_ad_control_status); - return avigo_ad_control_status; -} - -static unsigned int avigo_ad_value; - -static WRITE8_HANDLER(avigo_ad_control_status_w) -{ - logerror("avigo ad control w %02x\n",data); - - if ((data & 0x070)==0x070) - { - /* bit 3 appears to select between 1 = x coord, 0 = y coord */ - /* when 6,5,4 = 1 */ - if ((data & 0x08)!=0) - { - logerror("a/d select x coordinate\n"); - logerror("x coord: %d\n",stylus_press_x); - - /* on screen range 0x060->0x03a0 */ - /* 832 is on-screen range */ - /* 5.2 a/d units per pixel */ - - if (stylus_press_x!=0) - { - /* this might not be totally accurate because hitable screen - area may include the border around the screen! */ - avigo_ad_value = ((int)(stylus_press_x * 5.2f))+0x060; - avigo_ad_value &= 0x03fc; - } - else - { - avigo_ad_value = 0; - } - - logerror("ad value: %d\n",avigo_ad_value); - stylus_press_x = 0; - - } - else - { - /* in the avigo rom, the y coordinate is inverted! */ - /* therefore a low value would be near the bottom of the display, - and a high value at the top */ - - /* total valid range 0x044->0x036a */ - /* 0x0350 is also checked */ - - /* assumption 0x044->0x0350 is screen area and - 0x0350->0x036a is panel at bottom */ - - /* 780 is therefore on-screen range */ - /* 3.25 a/d units per pixel */ - /* a/d unit * a/d range = total height */ - /* 3.25 * 1024.00 = 315.07 */ - - logerror("a/d select y coordinate\n"); - logerror("y coord: %d\n",stylus_press_y); - - if (stylus_press_y!=0) - { - avigo_ad_value = 1024 - (((stylus_press_y)*3.25f) + 0x040); - } - else - { - avigo_ad_value = 0; - } - - logerror("ad value: %d\n",avigo_ad_value); - stylus_press_y = 0; - } - } - - /* bit 0: 1 if a/d complete, 0 if a/d not complete */ - avigo_ad_control_status = data | 1; -} - -static READ8_HANDLER(avigo_ad_data_r) -{ - unsigned char data; - - data = 0; - - /* original */ - - /* status AND 11110111 */ - /* status OR 01110000 -> C20F */ - - switch (avigo_ad_control_status & 0x078) - { - /* x1110xxx */ - /* read upper 4 bits of 10 bit A/D number */ - case 0x070: - case 0x078: - { - /* upper 4 bits of 10 bit A/D number in bits 7-4 of data */ - /* bit 0 must be 0, bit 1 must be 0 */ - /* bit 3 must be 1. bit 2 can have any value */ - - logerror("a/d read upper 4 bits\n"); - data = ((avigo_ad_value>>6) & 0x0f)<<4; - data |= 8; - } - break; - - /* x0111xxx */ - case 0x038: - { - /* lower 6 bits of 10-bit A/D number in bits 7-2 of data */ - /* bit 0 must be 1, bit 1 must be 0 */ - - logerror("a/d lower 6-bits\n"); - data = ((avigo_ad_value & 0x03f)<<2); - data |= 1; - } - break; - - default: - break; - } - - /* x coord? */ - /* wait for bit 0 of status to become 1 */ - /* read data -> d */ - - - /* C20f AND 10111111 */ - /* C20f OR 00001000 */ - /* x0111xxx */ - - /* bit 1 must be 0, bit 0 must be 1 */ - /* read data -> e */ - - /* upper 4 bits of d contain data */ - /* bits 0 and 1 do not contain data of e, but all other bits do */ - - /* get bit 5 and 6 of d */ - /* and put into bit 0 and 1 of e */ - - /* C20f OR 01000000 */ - /* x1111xxx */ - - /* y coord? */ - /* bit 0 must be 0, bit 1 must be 0 */ - /* bit 3 must be 1. bit 2 can have any value */ - /* read data -> d */ - - /* C20f AND 10111111 */ - /* x0111xxx */ - - /* bit 1 must be 0, bit 0 must be 1 */ - /* read data -> e */ - - - /* original and 1111100 */ - /* original or 1111000 */ - /* 1111x00 */ - - - - /* if fails! */ - /* original */ - /* AND 1001100 */ - /* OR 1001000 */ - /* 1001x00 */ - - - /* AND 1101100 */ - /* OR 1101000 */ - /* 1101x00 */ - - /* 1111x00 */ - - logerror("avigo ad read %02x\n",data); - - return data; -} - - -static WRITE8_HANDLER(avigo_speaker_w) -{ - UINT8 previous_speaker; - - previous_speaker = avigo_speaker_data; - avigo_speaker_data = data; - - /* changed state? */ - if (((data^avigo_speaker_data) & (1<<3))!=0) - { - /* DAC output state */ - speaker_level_w(0,(data>>3) & 0x01); - } -} - -static READ8_HANDLER(avigo_unmapped_r) -{ - logerror("read unmapped port\n"); - return 0x0ff; -} - -/* port 0x04: - - bit 7: ??? if set, does a write 0x00 to 0x02e */ - - /* port 0x029: - port 0x02e */ -static READ8_HANDLER(avigo_04_r) -{ - /* must be both 0 for it to boot! */ - return 0x0ff^((1<<7) | (1<<5)); -} - - - -ADDRESS_MAP_START( avigo_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x000, 0x000) AM_READ( avigo_unmapped_r) - AM_RANGE(0x001, 0x001) AM_READWRITE( avigo_key_data_read_r, avigo_set_key_line_w ) - AM_RANGE(0x002, 0x002) AM_READ( avigo_unmapped_r) - AM_RANGE(0x003, 0x003) AM_READWRITE( avigo_irq_r, avigo_irq_w ) - AM_RANGE(0x004, 0x004) AM_READ( avigo_04_r) - AM_RANGE(0x005, 0x005) AM_READWRITE( avigo_rom_bank_l_r, avigo_rom_bank_l_w ) - AM_RANGE(0x006, 0x006) AM_READWRITE( avigo_rom_bank_h_r, avigo_rom_bank_h_w ) - AM_RANGE(0x007, 0x007) AM_READWRITE( avigo_ram_bank_l_r, avigo_ram_bank_l_w ) - AM_RANGE(0x008, 0x008) AM_READWRITE( avigo_ram_bank_h_r, avigo_ram_bank_h_w ) - AM_RANGE(0x009, 0x009) AM_READWRITE( avigo_ad_control_status_r, avigo_ad_control_status_w ) - AM_RANGE(0x00a, 0x00f) AM_READ( avigo_unmapped_r) - AM_RANGE(0x010, 0x01f) AM_READWRITE( tc8521_r, tc8521_w ) - AM_RANGE(0x020, 0x02c) AM_READ( avigo_unmapped_r) - AM_RANGE(0x028, 0x028) AM_WRITE( avigo_speaker_w) - AM_RANGE(0x02d, 0x02d) AM_READ( avigo_ad_data_r) - AM_RANGE(0x02e, 0x02f) AM_READ( avigo_unmapped_r) - AM_RANGE(0x030, 0x037) AM_READWRITE( uart8250_0_r, uart8250_0_w ) - AM_RANGE(0x038, 0x0ff) AM_READ( avigo_unmapped_r) -ADDRESS_MAP_END - - - -INPUT_PORTS_START(avigo) - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE UP") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE DOWN") PORT_CODE(KEYCODE_PGDN) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LIGHT") PORT_CODE(KEYCODE_L) - PORT_BIT (0x0f7, 0xf7, IPT_UNUSED) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TO DO") PORT_CODE(KEYCODE_T) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ADDRESS") PORT_CODE(KEYCODE_A) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SCHEDULE") PORT_CODE(KEYCODE_S) - PORT_BIT (0x0f7, 0xf7, IPT_UNUSED) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MEMO") PORT_CODE(KEYCODE_M) - PORT_BIT (0x0fe, 0xfe, IPT_UNUSED) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Pen/Stylus pressed") PORT_CODE(KEYCODE_Q) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("?? Causes a NMI") PORT_CODE(KEYCODE_W) PORT_CODE(JOYCODE_1_BUTTON2) - - /* these two ports are used to emulate the position of the pen/stylus on the screen */ - /* a cursor is drawn to indicate the position, so when a click is done, it will occur in the correct place */ - PORT_START /* Mouse - X AXIS */ - PORT_BIT( 0xfff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - Y AXIS */ - PORT_BIT( 0xfff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( avigo ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(avigo_mem, 0) - MDRV_CPU_IO_MAP(avigo_io, 0) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( avigo ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(640, 480) - MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(256) - MDRV_PALETTE_INIT( avigo ) - - MDRV_VIDEO_START( avigo ) - MDRV_VIDEO_UPDATE( avigo ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - - -ROM_START(avigo) - ROM_REGION((64*1024)+0x0150000, REGION_CPU1,0) - ROM_LOAD("avigo.rom", 0x010000, 0x0150000, CRC(160ee4a6) SHA1(4d09201a3876de16808bd92989f3d8d7182d72b3)) -ROM_END - -SYSTEM_CONFIG_START( avigo ) - CONFIG_RAM_DEFAULT (128*1024) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP(1997, avigo, 0, 0, avigo, avigo, 0, avigo, "Texas Instruments", "TI Avigo 100 PDA",GAME_NOT_WORKING) - diff --git a/mess/systems/bebox.c b/mess/systems/bebox.c deleted file mode 100644 index 07af5684d..000000000 --- a/mess/systems/bebox.c +++ /dev/null @@ -1,192 +0,0 @@ -/*************************************************************************** - - systems/bebox.c - - BeBox - -***************************************************************************/ - -#include "includes/bebox.h" -#include "vidhrdw/pc_vga.h" -#include "cpu/powerpc/ppc.h" -#include "machine/uart8250.h" -#include "machine/pic8259.h" -#include "machine/mc146818.h" -#include "machine/pc_fdc.h" -#include "machine/pci.h" -#include "machine/8237dma.h" -#include "machine/pckeybrd.h" -#include "machine/8042kbdc.h" -#include "machine/pit8253.h" -#include "devices/mflopimg.h" -#include "devices/chd_cd.h" -#include "devices/harddriv.h" -#include "formats/pc_dsk.h" -#include "vidhrdw/cirrus.h" -#include "memconv.h" - - -static READ8_HANDLER(at_dma8237_1_r) { return dma8237_1_r(offset / 2); } -static WRITE8_HANDLER(at_dma8237_1_w) { dma8237_1_w(offset / 2, data); } - -static READ64_HANDLER( bebox_dma8237_1_r ) -{ - return read64be_with_read8_handler(at_dma8237_1_r, offset, mem_mask); -} - -static WRITE64_HANDLER( bebox_dma8237_1_w ) -{ - write64be_with_write8_handler(at_dma8237_1_w, offset, data, mem_mask); -} - -static ADDRESS_MAP_START( bebox_mem, ADDRESS_SPACE_PROGRAM, 64 ) - AM_RANGE(0x7FFFF0F0, 0x7FFFF0F7) AM_READWRITE( bebox_cpu0_imask_r, bebox_cpu0_imask_w ) - AM_RANGE(0x7FFFF1F0, 0x7FFFF1F7) AM_READWRITE( bebox_cpu1_imask_r, bebox_cpu1_imask_w ) - AM_RANGE(0x7FFFF2F0, 0x7FFFF2F7) AM_READ( bebox_interrupt_sources_r ) - AM_RANGE(0x7FFFF3F0, 0x7FFFF3F7) AM_READWRITE( bebox_crossproc_interrupts_r, bebox_crossproc_interrupts_w ) - AM_RANGE(0x7FFFF4F0, 0x7FFFF4F7) AM_WRITE( bebox_processor_resets_w ) - - AM_RANGE(0x80000000, 0x8000001F) AM_READWRITE( dma8237_64be_0_r, dma8237_64be_0_w ) - AM_RANGE(0x80000020, 0x8000003F) AM_READWRITE( pic8259_64be_0_r, pic8259_64be_0_w ) - AM_RANGE(0x80000040, 0x8000005f) AM_READWRITE( pit8253_64be_0_r, pit8253_64be_0_w ) - AM_RANGE(0x80000060, 0x8000006F) AM_READWRITE( kbdc8042_64be_r, kbdc8042_64be_w ) - AM_RANGE(0x80000070, 0x8000007F) AM_READWRITE( mc146818_port64be_r, mc146818_port64be_w ) - AM_RANGE(0x80000080, 0x8000009F) AM_READWRITE( bebox_page_r, bebox_page_w) - AM_RANGE(0x800000A0, 0x800000BF) AM_READWRITE( pic8259_64be_1_r, pic8259_64be_1_w ) - AM_RANGE(0x800000C0, 0x800000DF) AM_READWRITE( bebox_dma8237_1_r, bebox_dma8237_1_w) - AM_RANGE(0x800001F0, 0x800001F7) AM_READWRITE( bebox_800001F0_r, bebox_800001F0_w ) - AM_RANGE(0x800002F8, 0x800002FF) AM_READWRITE( uart8250_64be_1_r, uart8250_64be_1_w ) - AM_RANGE(0x80000380, 0x80000387) AM_READWRITE( uart8250_64be_2_r, uart8250_64be_2_w ) - AM_RANGE(0x80000388, 0x8000038F) AM_READWRITE( uart8250_64be_3_r, uart8250_64be_3_w ) - AM_RANGE(0x800003F0, 0x800003F7) AM_READWRITE( bebox_800003F0_r, bebox_800003F0_w ) - AM_RANGE(0x800003F8, 0x800003FF) AM_READWRITE( uart8250_64be_0_r, uart8250_64be_0_w ) - AM_RANGE(0x80000480, 0x8000048F) AM_READWRITE( bebox_80000480_r, bebox_80000480_w ) - AM_RANGE(0x80000CF8, 0x80000CFF) AM_READWRITE( pci_64be_r, pci_64be_w ) - AM_RANGE(0x800042E8, 0x800042EF) AM_WRITE( cirrus_64be_42E8_w ) - - AM_RANGE(0xBFFFFFF0, 0xBFFFFFFF) AM_READ( bebox_interrupt_ack_r ) - - AM_RANGE(0xFFF00000, 0xFFF03FFF) AM_ROMBANK(2) - AM_RANGE(0xFFF04000, 0xFFFFFFFF) AM_READWRITE( bebox_flash_r, bebox_flash_w ) -ADDRESS_MAP_END - - -static ppc_config bebox_ppc_config = -{ - PPC_MODEL_603, /* 603 "Wart" */ - 0x10, /* Multiplier 1.0, Bus = 66MHz, Core = 66MHz */ - BUS_FREQUENCY_66MHZ -}; - -static ppc_config bebox2_ppc_config = -{ - PPC_MODEL_603E, /* 603E "Stretch", version 1.3 */ - 0x19, /* Multiplier 2.0, Bus = 66MHz, Core = 133MHz */ - BUS_FREQUENCY_66MHZ -}; - - -static MACHINE_DRIVER_START( bebox ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("ppc1", PPC603, 66000000) /* 66 MHz */ - MDRV_CPU_CONFIG(bebox_ppc_config) - MDRV_CPU_PROGRAM_MAP(bebox_mem, 0) - - MDRV_CPU_ADD_TAG("ppc2", PPC603, 66000000) /* 66 MHz */ - MDRV_CPU_CONFIG(bebox_ppc_config) - MDRV_CPU_PROGRAM_MAP(bebox_mem, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_IMPORT_FROM( pcvideo_vga ) - - MDRV_MACHINE_RESET( bebox ) - - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER( bebox ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bebox2 ) - MDRV_IMPORT_FROM( bebox ) - MDRV_CPU_REPLACE("ppc1", PPC603, 133000000) /* 133 MHz */ - MDRV_CPU_CONFIG(bebox2_ppc_config) - - MDRV_CPU_REPLACE("ppc2", PPC603, 133000000) /* 133 MHz */ - MDRV_CPU_CONFIG(bebox2_ppc_config) -MACHINE_DRIVER_END - -static INPUT_PORTS_START( bebox ) - PORT_INCLUDE( at_keyboard ) -INPUT_PORTS_END - -ROM_START(bebox) - ROM_REGION(0x00200000, REGION_USER1, ROMREGION_64BIT | ROMREGION_BE) - ROM_LOAD( "bootmain.rom", 0x000000, 0x20000, CRC(df2d19e0) SHA1(da86a7d23998dc953dd96a2ac5684faaa315c701) ) - ROM_REGION(0x4000, REGION_USER2, ROMREGION_64BIT | ROMREGION_BE) - ROM_LOAD( "bootnub.rom", 0x000000, 0x4000, CRC(5348d09a) SHA1(1b637a3d7a2b072aa128dd5c037bbb440d525c1a) ) -ROM_END - -ROM_START(bebox2) - ROM_REGION(0x00200000, REGION_USER1, ROMREGION_64BIT | ROMREGION_BE) - ROM_LOAD( "bootmain.rom", 0x000000, 0x20000, CRC(df2d19e0) SHA1(da86a7d23998dc953dd96a2ac5684faaa315c701) ) - ROM_REGION(0x4000, REGION_USER2, ROMREGION_64BIT | ROMREGION_BE) - ROM_LOAD( "bootnub.rom", 0x000000, 0x4000, CRC(5348d09a) SHA1(1b637a3d7a2b072aa128dd5c037bbb440d525c1a) ) -ROM_END - -static void bebox_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_pc; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void bebox_cdrom_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cdrom */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cdrom_device_getinfo(devclass, state, info); break; - } -} - -static void bebox_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: harddisk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(bebox) - CONFIG_RAM(8 * 1024 * 1024) - CONFIG_RAM(16 * 1024 * 1024) - CONFIG_RAM_DEFAULT(32 * 1024 * 1024) - CONFIG_DEVICE(bebox_floppy_getinfo) - CONFIG_DEVICE(bebox_cdrom_getinfo) - CONFIG_DEVICE(bebox_harddisk_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1995, bebox, 0, 0, bebox, bebox, bebox, bebox, "Be Incorporated", "BeBox Dual603-66", GAME_NOT_WORKING ) -COMP( 1996, bebox2, bebox, 0, bebox2, bebox, bebox, bebox, "Be Incorporated", "BeBox Dual603-133", GAME_NOT_WORKING ) diff --git a/mess/systems/cbmb.c b/mess/systems/cbmb.c deleted file mode 100644 index 3a61e815b..000000000 --- a/mess/systems/cbmb.c +++ /dev/null @@ -1,1013 +0,0 @@ -/*************************************************************************** - commodore b series computer - - PeT mess@utanet.at - - documentation - vice emulator - www.funet.fi -***************************************************************************/ - -/* -CBM B Series: 6509 @ 2MHz, 6545/6845 Video, 6526 CIA, 6581 SID, BASIC 4.0+ - (Sometimes called BASIC 4.5) - Commodore differentiated between the HP (High Profile) and - LP (Low Profile) series by naming all HP machine CBM. - (B128-80HP was CBM128-80). Also, any machine with optional - 8088 CPU card had 'X' after B or CBM (BX128-80). -* CBM B128-80HP 128kB, Detached Keyboard, Cream. GP -* CBM B128-80LP 128kB, One-Piece, Cream, New Keyboard. GP -* CBM B256-80HP 256kB, Detached Keyboard, Cream. -* CBM B256-80LP 256kB, One-Piece, Cream. GP -* CBM B128-40 6567, 6581, 6509, 6551, 128kB. In B128-80LP case. - CBM B256-40 6567, 6581, 6509, 6551, 256kB. In B128-80LP case. -* CBM B500 -* CBM B500 256kB. board same as B128-80. GP - -CBM 500 Series: 6509, 6567, 6581, 6551. - Sometimes called PET II series. -* CBM 500 256kB. (is this the 500, or should it 515?) EC -* CBM 505 64kB. -* CBM 510 128kB. -* CBM P500 64kB GP - -CBM 600 Series: Same as B series LP -* CBM 610 B128-80 LP CS -* CBM 620 B256-80 LP CS - -CBM 700 Series: Same as B series HP. Also named PET 700 Series -* CBM 700 B128-80 LP (Note this unit is out of place here) -* CBM 710 B128-80 HP SL -* CBM 720 B256-80 HP GP -* CBM 730 720 with 8088 coprocessor card - -CBM B or II Series -B128-80LP/610/B256-80LP/620 -Pet700 Series B128-80HP/710/B256-80HP/720/BX256-80HP/730 ---------------------------- -M6509 2 MHZ -CRTC6545 6845 video chip -RS232 Port/6551 -TAPE Port -IEEE488 Port -ROM Port -Monitor Port -Audio -reset -internal user port -internal processor/dram slot - optional 8088 cpu card -2 internal system bus slots - -LP/600 series -------------- -case with integrated powersupply - -HP/700 series -------------- -separated keyboard, integrated monitor, no monitor port -no standard monitor with tv frequencies, 25 character lines -with 14 lines per character (like hercules/pc mda) - -B128-80LP/610 -------------- -128 KB RAM - -B256-80LP/620 -------------- -256 KB RAM - -B128-80HP/710 -------------- -128 KB RAM - -B256-80HP/720 -------------- -256 KB RAM - -BX256-80LP/730 --------------- -(720 with cpu upgrade) -8088 upgrade CPU - -CBM Pet II Series -500/505/515/P500/B128-40/B256-40 --------------------------------- -LP/600 case -videochip vic6567 -2 gameports -m6509 clock 1? MHZ - -CBM 500 -------- -256 KB RAM - -CBM 505/P500 -------- -64 KB RAM - -CBM 510 -------- -128 KB RAM - - -state ------ -keyboard -no sound -no tape support - no system roms supporting build in tape connector found -no ieee488 support - no floppy support -no internal userport support -no internal slot1/slot2 support -no internal cpu/dram slot support -preliminary quickloader - -state 600/700 -------------- -dirtybuffer based video system - no lightpen support - no rasterline - -state 500 ------ -rasterline based video system - no lightpen support - no rasterline support - memory access not complete -no gameport a - no paddles 1,2 - no joystick 1 - no 2 button joystick/mouse joystick emulation - no mouse - no lightpen -no gameport b - paddles 3,4 - joystick 2 - 2 button joystick/mouse joystick emulation - no mouse - -Keys ----- -Some PC-Keyboards does not behave well when special two or more keys are -pressed at the same time -(with my keyboard printscreen clears the pressed pause key!) - -when problems start with -log and look into error.log file - */ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6509.h" -#include "sound/sid6581.h" -#include "machine/6526cia.h" - -#define VERBOSE_DBG 0 -#include "includes/cbm.h" -#include "includes/tpi6525.h" -#include "includes/vic6567.h" -#include "includes/crtc6845.h" -#include "includes/cbmserb.h" -#include "includes/vc1541.h" -#include "includes/vc20tape.h" - -#include "includes/cbmb.h" - -static ADDRESS_MAP_START( cbmb_readmem , ADDRESS_SPACE_PROGRAM, 8) -// AM_RANGE(0x00000, 0x00000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x00001, 0x00001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x00002, 0x0ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x10000, 0x10000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x10001, 0x10001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x10002, 0x1ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x20000, 0x20000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x20001, 0x20001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x20002, 0x2ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x30000, 0x30000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x30001, 0x30001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x30002, 0x3ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x40000, 0x40000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x40001, 0x40001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x40002, 0x4ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x50000, 0x50000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x50001, 0x50001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x50002, 0x5ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x60000, 0x60000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x60001, 0x60001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x60002, 0x6ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x70000, 0x70000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x70001, 0x70001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x70002, 0x7ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x80000, 0x80000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x80001, 0x80001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x80002, 0x8ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x90000, 0x90000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x90001, 0x90001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x90002, 0x9ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xa0000, 0xa0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xa0001, 0xa0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xa0002, 0xaffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xb0000, 0xb0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xb0001, 0xb0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xb0002, 0xbffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xc0000, 0xc0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xc0001, 0xc0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xc0002, 0xcffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xd0000, 0xd0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xd0001, 0xd0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xd0002, 0xdffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xe0000, 0xe0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xe0001, 0xe0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xe0002, 0xeffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xf0000, 0xf0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xf0001, 0xf0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xf0002, 0xf07ff) AM_READ( MRA8_RAM ) -#if 0 - AM_RANGE(0xf0800, 0xf0fff) AM_READ( MRA8_ROM ) -#endif - AM_RANGE(0xf1000, 0xf1fff) AM_READ( MRA8_ROM ) /* cartridges or ram */ - AM_RANGE(0xf2000, 0xf3fff) AM_READ( MRA8_ROM ) /* cartridges or ram */ - AM_RANGE(0xf4000, 0xf5fff) AM_READ( MRA8_ROM ) - AM_RANGE(0xf6000, 0xf7fff) AM_READ( MRA8_ROM ) - AM_RANGE(0xf8000, 0xfbfff) AM_READ( MRA8_ROM ) - /* {0xfc000, 0xfcfff, MRA8_ROM }, */ - AM_RANGE(0xfd000, 0xfd7ff) AM_READ( MRA8_ROM ) - AM_RANGE(0xfd800, 0xfd8ff) AM_READ( crtc6845_0_port_r ) - /* disk units */ - AM_RANGE(0xfda00, 0xfdaff) AM_READ( sid6581_0_port_r ) - /* db00 coprocessor */ - AM_RANGE(0xfdc00, 0xfdcff) AM_READ( cia_0_r ) - /* dd00 acia */ - AM_RANGE(0xfde00, 0xfdeff) AM_READ( tpi6525_0_port_r) - AM_RANGE(0xfdf00, 0xfdfff) AM_READ( tpi6525_1_port_r) - AM_RANGE(0xfe000, 0xfffff) AM_READ( MRA8_ROM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cbmb_writemem , ADDRESS_SPACE_PROGRAM, 8) -// AM_RANGE(0x00000, 0x00000) AM_WRITE( m6509_write_00000) AM_BASE( &cbmb_memory ) -// AM_RANGE(0x00001, 0x00001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x00002, 0x0ffff) AM_WRITE( MWA8_NOP ) -// AM_RANGE(0x10000, 0x10000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x10001, 0x10001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x10002, 0x1ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x20000, 0x20000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x20001, 0x20001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x20002, 0x2ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x30000, 0x30000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x30001, 0x30001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x30002, 0x3ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x40000, 0x40000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x40001, 0x40001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x40002, 0x4ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x50000, 0x50000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x50001, 0x50001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x50002, 0x5ffff) AM_WRITE( MWA8_NOP ) -// AM_RANGE(0x60000, 0x60000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x60001, 0x60001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x60002, 0x6ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x70000, 0x70000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x70001, 0x70001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x70002, 0x7ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x80000, 0x80000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x80001, 0x80001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x80002, 0x8ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x90000, 0x90000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x90001, 0x90001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x90002, 0x9ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xa0000, 0xa0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xa0001, 0xa0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xa0002, 0xaffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xb0000, 0xb0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xb0001, 0xb0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xb0002, 0xbffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xc0000, 0xc0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xc0001, 0xc0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xc0002, 0xcffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xd0000, 0xd0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xd0001, 0xd0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xd0002, 0xdffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xe0000, 0xe0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xe0001, 0xe0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xe0002, 0xeffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xf0000, 0xf0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xf0001, 0xf0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xf0002, 0xf07ff) AM_WRITE( MWA8_RAM ) - AM_RANGE(0xf1000, 0xf1fff) AM_WRITE( MWA8_ROM ) /* cartridges */ - AM_RANGE(0xf2000, 0xf3fff) AM_WRITE( MWA8_ROM ) /* cartridges */ - AM_RANGE(0xf4000, 0xf5fff) AM_WRITE( MWA8_ROM ) - AM_RANGE(0xf6000, 0xf7fff) AM_WRITE( MWA8_ROM ) - AM_RANGE(0xf8000, 0xfbfff) AM_WRITE( MWA8_ROM) AM_BASE( &cbmb_basic ) - AM_RANGE(0xfd000, 0xfd7ff) AM_WRITE( videoram_w) AM_BASE( &videoram) AM_SIZE(&videoram_size ) /* VIDEORAM */ - AM_RANGE(0xfd800, 0xfd8ff) AM_WRITE( crtc6845_0_port_w ) - /* disk units */ - AM_RANGE(0xfda00, 0xfdaff) AM_WRITE( sid6581_0_port_w) - /* db00 coprocessor */ - AM_RANGE(0xfdc00, 0xfdcff) AM_WRITE( cia_0_w) - /* dd00 acia */ - AM_RANGE(0xfde00, 0xfdeff) AM_WRITE( tpi6525_0_port_w) - AM_RANGE(0xfdf00, 0xfdfff) AM_WRITE( tpi6525_1_port_w) - AM_RANGE(0xfe000, 0xfffff) AM_WRITE( MWA8_ROM) AM_BASE( &cbmb_kernal ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cbm500_readmem , ADDRESS_SPACE_PROGRAM, 8) -// AM_RANGE(0x00000, 0x00000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x00001, 0x00001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x00002, 0x0ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x10000, 0x10000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x10001, 0x10001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x10002, 0x1ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x20000, 0x20000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x20001, 0x20001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x20002, 0x2ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x30000, 0x30000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x30001, 0x30001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x30002, 0x3ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x40000, 0x40000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x40001, 0x40001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x40002, 0x4ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x50000, 0x50000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x50001, 0x50001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x50002, 0x5ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x60000, 0x60000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x60001, 0x60001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x60002, 0x6ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x70000, 0x70000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x70001, 0x70001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x70002, 0x7ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x80000, 0x80000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x80001, 0x80001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x80002, 0x8ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0x90000, 0x90000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0x90001, 0x90001) AM_READ( m6509_read_00001 ) - AM_RANGE(0x90002, 0x9ffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xa0000, 0xa0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xa0001, 0xa0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xa0002, 0xaffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xb0000, 0xb0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xb0001, 0xb0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xb0002, 0xbffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xc0000, 0xc0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xc0001, 0xc0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xc0002, 0xcffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xd0000, 0xd0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xd0001, 0xd0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xd0002, 0xdffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xe0000, 0xe0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xe0001, 0xe0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xe0002, 0xeffff) AM_READ( MRA8_RAM) -// AM_RANGE(0xf0000, 0xf0000) AM_READ( m6509_read_00000 ) -// AM_RANGE(0xf0001, 0xf0001) AM_READ( m6509_read_00001 ) - AM_RANGE(0xf0002, 0xf07ff) AM_READ( MRA8_RAM ) -#if 0 - AM_RANGE(0xf0800, 0xf0fff) AM_READ( MRA8_ROM ) -#endif - AM_RANGE(0xf1000, 0xf1fff) AM_READ( MRA8_ROM ) /* cartridges or ram */ - AM_RANGE(0xf2000, 0xf3fff) AM_READ( MRA8_ROM ) /* cartridges or ram */ - AM_RANGE(0xf4000, 0xf5fff) AM_READ( MRA8_ROM ) - AM_RANGE(0xf6000, 0xf7fff) AM_READ( MRA8_ROM ) - AM_RANGE(0xf8000, 0xfbfff) AM_READ( MRA8_ROM ) - /* {0xfc000, 0xfcfff, MRA8_ROM }, */ - AM_RANGE(0xfd000, 0xfd3ff) AM_READ( MRA8_RAM ) /* videoram */ - AM_RANGE(0xfd400, 0xfd7ff) AM_READ( MRA8_RAM ) /* colorram */ - AM_RANGE(0xfd800, 0xfd8ff) AM_READ( vic2_port_r ) - /* disk units */ - AM_RANGE(0xfda00, 0xfdaff) AM_READ( sid6581_0_port_r ) - /* db00 coprocessor */ - AM_RANGE(0xfdc00, 0xfdcff) AM_READ( cia_0_r ) - /* dd00 acia */ - AM_RANGE(0xfde00, 0xfdeff) AM_READ( tpi6525_0_port_r) - AM_RANGE(0xfdf00, 0xfdfff) AM_READ( tpi6525_1_port_r) - AM_RANGE(0xfe000, 0xfffff) AM_READ( MRA8_ROM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cbm500_writemem , ADDRESS_SPACE_PROGRAM, 8) -// AM_RANGE(0x00000, 0x00000) AM_WRITE( m6509_write_00000) AM_BASE( &cbmb_memory ) -// AM_RANGE(0x00001, 0x00001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x00002, 0x0ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x10000, 0x10000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x10001, 0x10001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x10002, 0x1ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x20000, 0x20000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x20001, 0x20001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x20002, 0x2ffff) AM_WRITE( MWA8_NOP ) -// AM_RANGE(0x30000, 0x30000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x30001, 0x30001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x30002, 0x3ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x40000, 0x40000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x40001, 0x40001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x40002, 0x4ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x50000, 0x50000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x50001, 0x50001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x50002, 0x5ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x60000, 0x60000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x60001, 0x60001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x60002, 0x6ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x70000, 0x70000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x70001, 0x70001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x70002, 0x7ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0x80000, 0x80000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x80001, 0x80001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x80002, 0x8ffff) AM_WRITE( MWA8_NOP ) -// AM_RANGE(0x90000, 0x90000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0x90001, 0x90001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0x90002, 0x9ffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xa0000, 0xa0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xa0001, 0xa0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xa0002, 0xaffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xb0000, 0xb0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xb0001, 0xb0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xb0002, 0xbffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xc0000, 0xc0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xc0001, 0xc0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xc0002, 0xcffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xd0000, 0xd0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xd0001, 0xd0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xd0002, 0xdffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xe0000, 0xe0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xe0001, 0xe0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xe0002, 0xeffff) AM_WRITE( MWA8_RAM ) -// AM_RANGE(0xf0000, 0xf0000) AM_WRITE( m6509_write_00000 ) -// AM_RANGE(0xf0001, 0xf0001) AM_WRITE( m6509_write_00001 ) - AM_RANGE(0xf0002, 0xf07ff) AM_WRITE( MWA8_RAM ) - AM_RANGE(0xf1000, 0xf1fff) AM_WRITE( MWA8_ROM ) /* cartridges */ - AM_RANGE(0xf2000, 0xf3fff) AM_WRITE( MWA8_ROM ) /* cartridges */ - AM_RANGE(0xf4000, 0xf5fff) AM_WRITE( MWA8_ROM ) - AM_RANGE(0xf6000, 0xf7fff) AM_WRITE( MWA8_ROM ) - AM_RANGE(0xf8000, 0xfbfff) AM_WRITE( MWA8_ROM) AM_BASE( &cbmb_basic ) - AM_RANGE(0xfd000, 0xfd3ff) AM_WRITE( MWA8_RAM) AM_BASE( &cbmb_videoram ) - AM_RANGE(0xfd400, 0xfd7ff) AM_WRITE( cbmb_colorram_w) AM_BASE( &cbmb_colorram ) - AM_RANGE(0xfd800, 0xfd8ff) AM_WRITE( vic2_port_w ) - /* disk units */ - AM_RANGE(0xfda00, 0xfdaff) AM_WRITE( sid6581_0_port_w) - /* db00 coprocessor */ - AM_RANGE(0xfdc00, 0xfdcff) AM_WRITE( cia_0_w) - /* dd00 acia */ - AM_RANGE(0xfde00, 0xfdeff) AM_WRITE( tpi6525_0_port_w) - AM_RANGE(0xfdf00, 0xfdfff) AM_WRITE( tpi6525_1_port_w) - AM_RANGE(0xfe000, 0xfffff) AM_WRITE( MWA8_ROM) AM_BASE( &cbmb_kernal ) -ADDRESS_MAP_END - -#define DIPS_HELPER(bit, name, keycode) \ - PORT_BIT(bit, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(name) PORT_CODE(keycode) - -#define CBMB_KEYBOARD \ - PORT_START \ - DIPS_HELPER( 0x8000, "ESC", KEYCODE_ESC)\ - DIPS_HELPER( 0x4000, "1 !", KEYCODE_1)\ - DIPS_HELPER( 0x2000, "2 @", KEYCODE_2)\ - DIPS_HELPER( 0x1000, "3 #", KEYCODE_3)\ - DIPS_HELPER( 0x0800, "4 $", KEYCODE_4)\ - DIPS_HELPER( 0x0400, "5 %", KEYCODE_5)\ - DIPS_HELPER( 0x0200, "6 Arrow-Up", KEYCODE_6)\ - DIPS_HELPER( 0x0100, "7 &", KEYCODE_7)\ - DIPS_HELPER( 0x0080, "8 *", KEYCODE_8)\ - DIPS_HELPER( 0x0040, "9 (", KEYCODE_9)\ - DIPS_HELPER( 0x0020, "0 )", KEYCODE_0)\ - DIPS_HELPER( 0x0010, "-", KEYCODE_MINUS)\ - DIPS_HELPER( 0x0008, "= +", KEYCODE_EQUALS)\ - DIPS_HELPER( 0x0004, "Arrow-Left Pound", KEYCODE_TILDE)\ - DIPS_HELPER( 0x0002, "DEL INS", KEYCODE_BACKSPACE)\ - DIPS_HELPER( 0x0001, "TAB", KEYCODE_TAB)\ - PORT_START \ - DIPS_HELPER( 0x8000, "Q", KEYCODE_Q)\ - DIPS_HELPER( 0x4000, "W", KEYCODE_W)\ - DIPS_HELPER( 0x2000, "E", KEYCODE_E)\ - DIPS_HELPER( 0x1000, "R", KEYCODE_R)\ - DIPS_HELPER( 0x0800, "T", KEYCODE_T)\ - DIPS_HELPER( 0x0400, "Y", KEYCODE_Y)\ - DIPS_HELPER( 0x0200, "U", KEYCODE_U)\ - DIPS_HELPER( 0x0100, "I", KEYCODE_I)\ - DIPS_HELPER( 0x0080, "O", KEYCODE_O)\ - DIPS_HELPER( 0x0040, "P", KEYCODE_P)\ - DIPS_HELPER( 0x0020, "[", KEYCODE_OPENBRACE)\ - DIPS_HELPER( 0x0010, "]", KEYCODE_CLOSEBRACE)\ - DIPS_HELPER( 0x0008, "RETURN",KEYCODE_ENTER)\ - PORT_DIPNAME( 0x0004, 0, "(shift)SHIFT-LOCK (switch)") PORT_CODE(KEYCODE_CAPSLOCK)\ - PORT_DIPSETTING( 0, DEF_STR( Off ) )\ - PORT_DIPSETTING(4, DEF_STR( On ) )\ - DIPS_HELPER( 0x0002, "A", KEYCODE_A)\ - DIPS_HELPER( 0x0001, "S", KEYCODE_S)\ - PORT_START \ - DIPS_HELPER( 0x8000, "D", KEYCODE_D)\ - DIPS_HELPER( 0x4000, "F", KEYCODE_F)\ - DIPS_HELPER( 0x2000, "G", KEYCODE_G)\ - DIPS_HELPER( 0x1000, "H", KEYCODE_H)\ - DIPS_HELPER( 0x0800, "J", KEYCODE_J)\ - DIPS_HELPER( 0x0400, "K", KEYCODE_K)\ - DIPS_HELPER( 0x0200, "L", KEYCODE_L)\ - DIPS_HELPER( 0x0100, "; :", KEYCODE_COLON)\ - DIPS_HELPER( 0x0080, "\' \"", KEYCODE_QUOTE)\ - DIPS_HELPER( 0x0040, "PI", KEYCODE_BACKSLASH)\ - DIPS_HELPER( 0x0020, "(shift)Left-Shift", KEYCODE_LSHIFT)\ - DIPS_HELPER( 0x0010, "Z", KEYCODE_Z)\ - DIPS_HELPER( 0x0008, "X", KEYCODE_X)\ - DIPS_HELPER( 0x0004, "C", KEYCODE_C)\ - DIPS_HELPER( 0x0002, "V", KEYCODE_V)\ - DIPS_HELPER( 0x0001, "B", KEYCODE_B)\ - PORT_START \ - DIPS_HELPER( 0x8000, "N", KEYCODE_N)\ - DIPS_HELPER( 0x4000, "M", KEYCODE_M)\ - DIPS_HELPER( 0x2000, ", <", KEYCODE_COMMA)\ - DIPS_HELPER( 0x1000, ". >", KEYCODE_STOP)\ - DIPS_HELPER( 0x0800, "/ ?", KEYCODE_SLASH)\ - DIPS_HELPER( 0x0400, "(shift)Right-Shift", KEYCODE_RSHIFT)\ - DIPS_HELPER( 0x0200, "CBM", KEYCODE_RALT)\ - DIPS_HELPER( 0x0100, "CTRL", KEYCODE_RCONTROL)\ - DIPS_HELPER( 0x0080, "Space", KEYCODE_SPACE)\ - DIPS_HELPER( 0x0040, "f1", KEYCODE_F1)\ - DIPS_HELPER( 0x0020, "f2", KEYCODE_F2)\ - DIPS_HELPER( 0x0010, "f3", KEYCODE_F3)\ - DIPS_HELPER( 0x0008, "f4", KEYCODE_F4)\ - DIPS_HELPER( 0x0004, "f5", KEYCODE_F5)\ - DIPS_HELPER( 0x0002, "f6", KEYCODE_F6)\ - DIPS_HELPER( 0x0001, "f7", KEYCODE_F7)\ - PORT_START \ - DIPS_HELPER( 0x8000, "f8", KEYCODE_F8)\ - DIPS_HELPER( 0x4000, "f9", KEYCODE_F9)\ - DIPS_HELPER( 0x2000, "f10", KEYCODE_F10)\ - DIPS_HELPER( 0x1000, "CRSR Down", KEYCODE_DOWN)\ - DIPS_HELPER( 0x0800, "CRSR Up", KEYCODE_UP)\ - DIPS_HELPER( 0x0400, "CRSR Left", KEYCODE_LEFT)\ - DIPS_HELPER( 0x0200, "CRSR Right", KEYCODE_RIGHT)\ - DIPS_HELPER( 0x0100, "HOME CLR", KEYCODE_INSERT) - -#define CBMB_KEYBOARD2 \ - DIPS_HELPER( 0x0020, "STOP RUN", KEYCODE_DEL)\ - DIPS_HELPER( 0x0010, "NUM ?", KEYCODE_END)\ - DIPS_HELPER( 0x0008, "NUM CE", KEYCODE_PGDN)\ - DIPS_HELPER( 0x0004, "NUM *", KEYCODE_ASTERISK)\ - DIPS_HELPER( 0x0002, "NUM /", KEYCODE_SLASH_PAD)\ - DIPS_HELPER( 0x0001, "NUM 7", KEYCODE_7_PAD)\ - PORT_START \ - DIPS_HELPER( 0x8000, "NUM 8", KEYCODE_8_PAD)\ - DIPS_HELPER( 0x4000, "NUM 9", KEYCODE_9_PAD)\ - DIPS_HELPER( 0x2000, "NUM -", KEYCODE_MINUS_PAD)\ - DIPS_HELPER( 0x1000, "NUM 4", KEYCODE_4_PAD)\ - DIPS_HELPER( 0x0800, "NUM 5", KEYCODE_5_PAD)\ - DIPS_HELPER( 0x0400, "NUM 6", KEYCODE_6_PAD)\ - DIPS_HELPER( 0x0200, "NUM +", KEYCODE_PLUS_PAD)\ - DIPS_HELPER( 0x0100, "NUM 1", KEYCODE_1_PAD)\ - DIPS_HELPER( 0x0080, "NUM 2", KEYCODE_2_PAD)\ - DIPS_HELPER( 0x0040, "NUM 3", KEYCODE_3_PAD)\ - DIPS_HELPER( 0x0020, "NUM Enter", KEYCODE_ENTER_PAD)\ - DIPS_HELPER( 0x0010, "NUM 0", KEYCODE_0_PAD)\ - DIPS_HELPER( 0x0008, "NUM .", KEYCODE_DEL_PAD)\ - DIPS_HELPER( 0x0004, "NUM 00", KEYCODE_NUMLOCK)\ - -INPUT_PORTS_START (cbm600) - CBMB_KEYBOARD - DIPS_HELPER( 0x0080, "RVS OFF", KEYCODE_HOME) - DIPS_HELPER( 0x0040, "GRAPH NORM", KEYCODE_PGUP) - CBMB_KEYBOARD2 - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x200, IPT_UNUSED) /* ntsc */ - PORT_BIT (0x100, 0x000, IPT_UNUSED) /* cbm600 */ -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -#endif -INPUT_PORTS_END - -INPUT_PORTS_START (cbm600pal) - CBMB_KEYBOARD - DIPS_HELPER( 0x0080, "GRAPH NORM", KEYCODE_HOME) - DIPS_HELPER( 0x0040, "ASCII DIN", KEYCODE_PGUP) - CBMB_KEYBOARD2 - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x000, IPT_UNUSED) /* pal */ - PORT_BIT (0x100, 0x000, IPT_UNUSED) /* cbm600 */ -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -#endif -INPUT_PORTS_END - -INPUT_PORTS_START (cbm700) - CBMB_KEYBOARD - DIPS_HELPER( 0x0080, "RVS OFF", KEYCODE_HOME) - DIPS_HELPER( 0x0040, "GRAPH NORM", KEYCODE_PGUP) - CBMB_KEYBOARD2 - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x000, IPT_UNUSED) /* not used */ - PORT_BIT (0x100, 0x100, IPT_UNUSED) /* cbm700 */ -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -#endif -INPUT_PORTS_END - -INPUT_PORTS_START (cbm500) - CBMB_KEYBOARD - DIPS_HELPER( 0x0080, "RVS OFF", KEYCODE_HOME) - DIPS_HELPER( 0x0040, "GRAPH NORM", KEYCODE_PGUP) - CBMB_KEYBOARD2 - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x000, IPT_UNUSED) /* not used */ - PORT_BIT (0x100, 0x000, IPT_UNUSED) /* not used */ -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -#endif - /*C64_DIPS */ -INPUT_PORTS_END - -unsigned char cbm700_palette[] = -{ - 0,0,0, /* black */ - 0,0x80,0, /* green */ -}; - -static unsigned short cbmb_colortable[] = { - 0, 1 -}; - -static gfx_layout cbm600_charlayout = -{ - 8,16, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,1,2,3,4,5,6,7 }, - /* y offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 - }, - 8*16 -}; - -static gfx_layout cbm700_charlayout = -{ - 9,16, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,1,2,3,4,5,6,7,7 }, // 8.column will be cleared in cbm700_vh_start - /* y offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 - }, - 8*16 -}; - -static gfx_decode cbm600_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &cbm600_charlayout, 0, 1 }, - { REGION_GFX1, 0x1000, &cbm600_charlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static gfx_decode cbm700_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &cbm700_charlayout, 0, 1 }, - { REGION_GFX1, 0x1000, &cbm700_charlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static PALETTE_INIT( cbm700 ) -{ - palette_set_colors(machine, 0, cbm700_palette, sizeof(cbm700_palette) / 3); - memcpy(colortable,cbmb_colortable,sizeof(cbmb_colortable)); -} - -ROM_START (cbm610) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("901243.04a", 0xf8000, 0x2000, CRC(b0dcb56d) SHA1(08d333208060ee2ce84d4532028d94f71c016b96)) - ROM_LOAD ("901242.04a", 0xfa000, 0x2000, CRC(de04ea4f) SHA1(7c6de17d46a3343dc597d9b9519cf63037b31908)) - ROM_LOAD ("901244.04a", 0xfe000, 0x2000, CRC(09a5667e) SHA1(abb26418b9e1614a8f52bdeee0822d4a96071439)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901237.01", 0x0000, 0x1000, CRC(1acf5098) SHA1(e63bf18da48e5a53c99ef127c1ae721333d1d102)) -ROM_END - -ROM_START (cbm620) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("901241.03", 0xf8000, 0x2000, CRC(5c1f3347) SHA1(2d46be2cd89594b718cdd0a86d51b6f628343f42)) - ROM_LOAD ("901240.03", 0xfa000, 0x2000, CRC(72aa44e1) SHA1(0d7f77746290afba8d0abeb87c9caab9a3ad89ce)) - ROM_LOAD ("901244.04a", 0xfe000, 0x2000, CRC(09a5667e) SHA1(abb26418b9e1614a8f52bdeee0822d4a96071439)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901237.01", 0x0000, 0x1000, CRC(1acf5098) SHA1(e63bf18da48e5a53c99ef127c1ae721333d1d102)) -ROM_END - -ROM_START (cbm620hu) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("610u60.bin", 0xf8000, 0x4000, CRC(8eed0d7e) SHA1(9d06c5c3c012204eaaef8b24b1801759b62bf57e)) - ROM_LOAD ("kernhun.bin", 0xfe000, 0x2000, CRC(0ea8ca4d) SHA1(9977c9f1136ee9c04963e0b50ae0c056efa5663f)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("charhun.bin", 0x0000, 0x2000, CRC(1fb5e596) SHA1(3254e069f8691b30679b19a9505b6afdfedce6ac)) -ROM_END - -ROM_START (cbm710) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("901243.04a", 0xf8000, 0x2000, CRC(b0dcb56d) SHA1(08d333208060ee2ce84d4532028d94f71c016b96)) - ROM_LOAD ("901242.04a", 0xfa000, 0x2000, CRC(de04ea4f) SHA1(7c6de17d46a3343dc597d9b9519cf63037b31908)) - ROM_LOAD ("901244.04a", 0xfe000, 0x2000, CRC(09a5667e) SHA1(abb26418b9e1614a8f52bdeee0822d4a96071439)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901232.01", 0x0000, 0x1000, CRC(3a350bc3) SHA1(e7f3cbc8e282f79a00c3e95d75c8d725ee3c6287)) -ROM_END - -ROM_START (cbm720) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("901241.03", 0xf8000, 0x2000, CRC(5c1f3347) SHA1(2d46be2cd89594b718cdd0a86d51b6f628343f42)) - ROM_LOAD ("901240.03", 0xfa000, 0x2000, CRC(72aa44e1) SHA1(0d7f77746290afba8d0abeb87c9caab9a3ad89ce)) - ROM_LOAD ("901244.04a", 0xfe000, 0x2000, CRC(09a5667e) SHA1(abb26418b9e1614a8f52bdeee0822d4a96071439)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901232.01", 0x0000, 0x1000, CRC(3a350bc3) SHA1(e7f3cbc8e282f79a00c3e95d75c8d725ee3c6287)) -ROM_END - -ROM_START (cbm720se) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("901241.03", 0xf8000, 0x2000, CRC(5c1f3347) SHA1(2d46be2cd89594b718cdd0a86d51b6f628343f42)) - ROM_LOAD ("901240.03", 0xfa000, 0x2000, CRC(72aa44e1) SHA1(0d7f77746290afba8d0abeb87c9caab9a3ad89ce)) - ROM_LOAD ("901244.03", 0xfe000, 0x2000, CRC(87bc142b) SHA1(fa711f6082741b05a9c80744f5aee68dc8c1dcf4)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901233.03", 0x0000, 0x1000, CRC(09518b19) SHA1(2e28491e31e2c0a3b6db388055216140a637cd09)) -ROM_END - - -ROM_START (cbm500) - ROM_REGION (0x101000, REGION_CPU1, 0) - ROM_LOAD ("901236.02", 0xf8000, 0x2000, CRC(c62ab16f) SHA1(f50240407bade901144f7e9f489fa9c607834eca)) - ROM_LOAD ("901235.02", 0xfa000, 0x2000, CRC(20b7df33) SHA1(1b9a55f12f8cf025754d8029cc5324b474c35841)) - ROM_LOAD ("901234.02", 0xfe000, 0x2000, CRC(f46bbd2b) SHA1(097197d4d08e0b82e0466a5f1fbd49a24f3d2523)) - ROM_LOAD ("901225.01", 0x100000, 0x1000, CRC(ec4272ee) SHA1(adc7c31e18c7c7413d54802ef2f4193da14711aa)) -ROM_END - -#if 0 -/* in c16 and some other commodore machines: - cbm version in kernel at 0xff80 (offset 0x3f80) - 0x80 means pal version */ - - /* scrap */ - /* 0000 1fff --> 0000 - inverted 2000 - 2000 3fff --> 4000 - inverted 6000 */ - - /* 128 kb basic version */ - ROM_LOAD ("b128-8000.901243-02b.bin", 0xf8000, 0x2000, CRC(9d0366f9)) - ROM_LOAD ("b128-a000.901242-02b.bin", 0xfa000, 0x2000, CRC(837978b5)) - /* merged df83bbb9 */ - - ROM_LOAD ("b128-8000.901243-04a.bin", 0xf8000, 0x2000, CRC(b0dcb56d) SHA1(08d333208060ee2ce84d4532028d94f71c016b96)) - ROM_LOAD ("b128-a000.901242-04a.bin", 0xfa000, 0x2000, CRC(de04ea4f) SHA1(7c6de17d46a3343dc597d9b9519cf63037b31908)) - /* merged a8ff9372 */ - - /* some additions to 901242-04a */ - ROM_LOAD ("b128-a000.901242-04_3f.bin", 0xfa000, 0x2000, CRC(5a680d2a)) - - /* 256 kbyte basic version */ - ROM_LOAD ("b256-8000.610u60.bin", 0xf8000, 0x4000, CRC(8eed0d7e) SHA1(9d06c5c3c012204eaaef8b24b1801759b62bf57e)) - - ROM_LOAD ("b256-8000.901241-03.bin", 0xf8000, 0x2000, CRC(5c1f3347) SHA1(2d46be2cd89594b718cdd0a86d51b6f628343f42)) - ROM_LOAD ("b256-a000.901240-03.bin", 0xfa000, 0x2000, CRC(72aa44e1) SHA1(0d7f77746290afba8d0abeb87c9caab9a3ad89ce)) - /* merged 5db15870 */ - - /* monitor instead of tape */ - ROM_LOAD ("kernal.901244-03b.bin", 0xfe000, 0x2000, CRC(4276dbba)) - /* modified 03b for usage of vc1541 on tape port ??? */ - ROM_LOAD ("kernelnew", 0xfe000, 0x2000, CRC(19bf247e)) - ROM_LOAD ("kernal.901244-04a.bin", 0xfe000, 0x2000, CRC(09a5667e) SHA1(abb26418b9e1614a8f52bdeee0822d4a96071439)) - ROM_LOAD ("kernal.hungarian.bin", 0xfe000, 0x2000, CRC(0ea8ca4d) SHA1(9977c9f1136ee9c04963e0b50ae0c056efa5663f)) - - - /* 600 8x16 chars for 8x8 size - 128 ascii, 128 ascii graphics - inversion logic in hardware */ - ROM_LOAD ("characters.901237-01.bin", 0x0000, 0x1000, CRC(1acf5098) SHA1(e63bf18da48e5a53c99ef127c1ae721333d1d102)) - /* packing 128 national, national graphics, ascii, ascii graphics */ - ROM_LOAD ("characters-hungarian.bin", 0x0000, 0x2000, CRC(1fb5e596) SHA1(3254e069f8691b30679b19a9505b6afdfedce6ac)) - /* 700 8x16 chars for 9x14 size*/ - ROM_LOAD ("characters.901232-01.bin", 0x0000, 0x1000, CRC(3a350bc3) SHA1(e7f3cbc8e282f79a00c3e95d75c8d725ee3c6287)) - - ROM_LOAD ("vt52emu.bin", 0xf4000, 0x2000, CRC(b3b6173a)) - /* load address 0xf4000? */ - ROM_LOAD ("moni.bin", 0xfe000, 0x2000, CRC(43b08d1f)) - - ROM_LOAD ("profitext.bin", 0xf2000, 0x2000, CRC(ac622a2b)) - /* address ?*/ - ROM_LOAD ("sfd1001-copy-u59.bin", 0xf1000, 0x1000, CRC(1c0fd916)) - - ROM_LOAD ("", 0xfe000, 0x2000, CRC()) - - /* 500 */ - /* 128 basic, other colors than cbmb series basic */ - ROM_LOAD ("basic-lo.901236-02.bin", 0xf8000, 0x2000, CRC(c62ab16f) SHA1(f50240407bade901144f7e9f489fa9c607834eca)) - ROM_LOAD ("basic-hi.901235-02.bin", 0xfa000, 0x2000, CRC(20b7df33) SHA1(1b9a55f12f8cf025754d8029cc5324b474c35841)) - /* monitor instead of tape */ - ROM_LOAD ("kernal.901234-02.bin", 0xfe000, 0x2000, CRC(f46bbd2b) SHA1(097197d4d08e0b82e0466a5f1fbd49a24f3d2523)) - ROM_LOAD ("characters.901225-01.bin", 0x100000, 0x1000, CRC(ec4272ee) SHA1(adc7c31e18c7c7413d54802ef2f4193da14711aa)) - -#endif - - -static MACHINE_DRIVER_START( cbm600 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6509, 7833600) /* 7.8336 Mhz */ - MDRV_CPU_PROGRAM_MAP(cbmb_readmem, cbmb_writemem) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(0) - - MDRV_MACHINE_RESET( cbmb ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(640, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 200 - 1) - MDRV_GFXDECODE( cbm600_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof (cbm700_palette) / sizeof (cbm700_palette[0]) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (cbmb_colortable) / sizeof(cbmb_colortable[0])) - MDRV_PALETTE_INIT( cbm700 ) - - MDRV_VIDEO_START( generic ) - MDRV_VIDEO_UPDATE( cbmb ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SID6581, 1000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbm600pal ) - MDRV_IMPORT_FROM( cbm600 ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbm700 ) - MDRV_IMPORT_FROM( cbm600pal ) - MDRV_SCREEN_SIZE(720, 350) - MDRV_SCREEN_VISIBLE_AREA(0, 720 - 1, 0, 350 - 1) - MDRV_GFXDECODE( cbm700_gfxdecodeinfo ) - - MDRV_VIDEO_START( cbm700 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbm500 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6509, VIC6567_CLOCK) /* 7.8336 Mhz */ - MDRV_CPU_PROGRAM_MAP(cbm500_readmem, cbm500_writemem) - MDRV_CPU_PERIODIC_INT(vic2_raster_irq, TIME_IN_HZ(VIC2_HRETRACERATE)) - MDRV_SCREEN_REFRESH_RATE(VIC6567_VRETRACERATE) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(0) - - MDRV_MACHINE_RESET( cbmb ) - - MDRV_IMPORT_FROM( vh_vic2 ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SID6581, 1000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static DRIVER_INIT( cbm500 ) { cbm500_driver_init(); } -static DRIVER_INIT( cbm600 ) { cbm600_driver_init(); } -static DRIVER_INIT( cbm600hu ) { cbm600hu_driver_init(); } -static DRIVER_INIT( cbm600pal ) { cbm600pal_driver_init(); } -static DRIVER_INIT( cbm700 ) { cbm700_driver_init(); } - -static void cbmb_cbmcartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "crt,10,20,40,60"); break; - - default: cbmcartslot_device_getinfo(devclass, state, info); break; - } -} - -static void cbmb_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "p00,prg"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_cbmb; break; - - /* --- the following bits of info are returned as doubles --- */ - case DEVINFO_FLOAT_QUICKLOAD_DELAY: info->d = CBM_QUICKLOAD_DELAY; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(cbmb) - CONFIG_DEVICE(cbmb_cbmcartslot_getinfo) - CONFIG_DEVICE(cbmb_quickload_getinfo) -#ifdef PET_TEST_CODE - /* monitor OR tape routine in kernel */ - CONFIG_DEVICE(cbmfloppy_device_getinfo) -#endif -SYSTEM_CONFIG_END - -static void cbm500_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "p00,prg"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_cbm500; break; - - /* --- the following bits of info are returned as doubles --- */ - case DEVINFO_FLOAT_QUICKLOAD_DELAY: info->d = CBM_QUICKLOAD_DELAY; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(cbm500) - CONFIG_DEVICE(cbmb_cbmcartslot_getinfo) - CONFIG_DEVICE(cbm500_quickload_getinfo) -#ifdef PET_TEST_CODE - /* monitor OR tape routine in kernel */ - CONFIG_DEVICE(cbmfloppy_device_getinfo) -#endif -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP (1983, cbm500, 0, 0, cbm500, cbm500, cbm500, cbm500, "Commodore Business Machines Co.", "Commodore B128-40/Pet-II/P500 60Hz", GAME_NOT_WORKING) -COMP (1983, cbm610, 0, 0, cbm600, cbm600, cbm600, cbmb, "Commodore Business Machines Co.", "Commodore B128-80LP/610 60Hz", GAME_NOT_WORKING) -COMP (1983, cbm620, cbm610, 0, cbm600pal, cbm600pal, cbm600pal, cbmb, "Commodore Business Machines Co.", "Commodore B256-80LP/620 50Hz", GAME_NOT_WORKING) -COMP (1983, cbm620hu, cbm610, 0, cbm600pal, cbm600pal, cbm600hu, cbmb, "Commodore Business Machines Co.", "Commodore B256-80LP/620 Hungarian 50Hz", GAME_NOT_WORKING) -COMP (1983, cbm710, cbm610, 0, cbm700, cbm700, cbm700, cbmb, "Commodore Business Machines Co.", "Commodore B128-80HP/710", GAME_NOT_WORKING) -COMP (1983, cbm720, cbm610, 0, cbm700, cbm700, cbm700, cbmb, "Commodore Business Machines Co.", "Commodore B256-80HP/720", GAME_NOT_WORKING) -COMP (1983, cbm720se, cbm610, 0, cbm700, cbm700, cbm700, cbmb, "Commodore Business Machines Co.", "Commodore B256-80HP/720 Swedish/Finnish", GAME_NOT_WORKING) -#if 0 -COMP (1983, cbm730, cbm610, 0, cbmbx, cbmb, cbmb, cbmb, "Commodore Business Machines Co.", "Commodore BX128-80HP/BX256-80HP/730", GAME_NOT_WORKING) -#endif diff --git a/mess/systems/cgenie.c b/mess/systems/cgenie.c deleted file mode 100644 index 14bd0e66a..000000000 --- a/mess/systems/cgenie.c +++ /dev/null @@ -1,475 +0,0 @@ -/*************************************************************************** -HAD to change the PORT_ANALOG defs in this file... please check ;-) - -Colour Genie memory map - -CPU #1: -0000-3fff ROM basic & bios R D0-D7 - -4000-bfff RAM -c000-dfff ROM dos R D0-D7 -e000-efff ROM extra R D0-D7 -f000-f3ff color ram W/R D0-D3 -f400-f7ff font ram W/R D0-D7 -f800-f8ff keyboard matrix R D0-D7 -ffe0-ffe3 floppy motor W D0-D2 - floppy head select W D3 -ffec-ffef FDC WD179x R/W D0-D7 - ffec command W - ffec status R - ffed track R/W - ffee sector R/W - ffef data R/W - -Interrupts: -IRQ mode 1 -NMI -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/cgenie.h" -#include "devices/basicdsk.h" -#include "devices/cartslot.h" -#include "sound/ay8910.h" - -static ADDRESS_MAP_START (cgenie_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_ROM -// AM_RANGE(0x4000, 0xbfff) AM_RAM // set up in MACHINE_START -// AM_RANGE(0xc000, 0xdfff) AM_ROM // installed in cgenie_init_machine -// AM_RANGE(0xe000, 0xefff) AM_ROM // installed in cgenie_init_machine - AM_RANGE(0xf000, 0xf3ff) AM_READWRITE( cgenie_colorram_r, cgenie_colorram_w ) AM_BASE( &colorram ) - AM_RANGE(0xf400, 0xf7ff) AM_READWRITE( cgenie_fontram_r, cgenie_fontram_w) AM_BASE( &cgenie_fontram ) - AM_RANGE(0xf800, 0xf8ff) AM_READ( cgenie_keyboard_r ) - AM_RANGE(0xf900, 0xffdf) AM_NOP - AM_RANGE(0xffe0, 0xffe3) AM_READWRITE( cgenie_irq_status_r, cgenie_motor_w ) - AM_RANGE(0xffe4, 0xffeb) AM_NOP - AM_RANGE(0xffec, 0xffec) AM_READWRITE( cgenie_status_r, cgenie_command_w ) - AM_RANGE(0xffe4, 0xffeb) AM_NOP - AM_RANGE(0xffec, 0xffec) AM_WRITE( cgenie_command_w ) - AM_RANGE(0xffed, 0xffed) AM_READWRITE( cgenie_track_r, cgenie_track_w ) - AM_RANGE(0xffee, 0xffee) AM_READWRITE( cgenie_sector_r, cgenie_sector_w ) - AM_RANGE(0xffef, 0xffef) AM_READWRITE( cgenie_data_r, cgenie_data_w ) - AM_RANGE(0xfff0, 0xffff) AM_NOP -ADDRESS_MAP_END - -static ADDRESS_MAP_START (cgenie_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0xf8, 0xf8) AM_READWRITE( cgenie_sh_control_port_r, cgenie_sh_control_port_w ) - AM_RANGE(0xf9, 0xf9) AM_READWRITE( cgenie_sh_data_port_r, cgenie_sh_data_port_w ) - AM_RANGE(0xfa, 0xfa) AM_READWRITE( cgenie_index_r, cgenie_index_w ) - AM_RANGE(0xfb, 0xfb) AM_READWRITE( cgenie_register_r, cgenie_register_w ) - AM_RANGE(0xff, 0xff) AM_READWRITE( cgenie_port_ff_r, cgenie_port_ff_w ) -ADDRESS_MAP_END - -INPUT_PORTS_START( cgenie ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x80, 0x80, "Floppy Disc Drives") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "CG-DOS ROM C000-DFFF") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Extension E000-EFFF") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_BIT( 0x10, 0x10, IPT_DIPSWITCH_NAME) PORT_NAME("Video Display accuracy") PORT_CODE(KEYCODE_F5) PORT_TOGGLE - PORT_DIPSETTING( 0x10, "TV set" ) - PORT_DIPSETTING( 0x00, "RGB monitor" ) - PORT_BIT( 0x08, 0x08, IPT_DIPSWITCH_NAME) PORT_NAME("Virtual tape support") PORT_CODE(KEYCODE_F6) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT(0x07, 0x07, IPT_UNUSED) - -/************************************************************************** - +-------------------------------+ +-------------------------------+ - | 0 1 2 3 4 5 6 7 | | 0 1 2 3 4 5 6 7 | -+--+---+---+---+---+---+---+---+---+ +--+---+---+---+---+---+---+---+---+ -|0 | @ | A | B | C | D | E | F | G | |0 | ` | a | b | c | d | e | f | g | -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|1 | H | I | J | K | L | M | N | O | |1 | h | i | j | k | l | m | n | o | -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|2 | P | Q | R | S | T | U | V | W | |2 | p | q | r | s | t | u | v | w | -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|3 | X | Y | Z | [ |F-1|F-2|F-3|F-4| |3 | x | y | z | { |F-5|F-6|F-7|F-8| -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|4 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |4 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|5 | 8 | 9 | : | ; | , | - | . | / | |5 | 8 | 9 | * | + | < | = | > | ? | -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|6 |ENT|CLR|BRK|UP |DN |LFT|RGT|SPC| |6 |ENT|CLR|BRK|UP |DN |LFT|RGT|SPC| -| +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ -|7 |SHF|ALT|PUP|PDN|INS|DEL|CTL|END| |7 |SHF|ALT|PUP|PDN|INS|DEL|CTL|END| -+--+---+---+---+---+---+---+---+---+ +--+---+---+---+---+---+---+---+---+ -***************************************************************************/ - - PORT_START /* IN1 KEY ROW 0 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("0.0: @") - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("0.1: A a") PORT_CODE(KEYCODE_A) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("0.2: B b") PORT_CODE(KEYCODE_B) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("0.3: C c") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("0.4: D d") PORT_CODE(KEYCODE_D) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("0.5: E e") PORT_CODE(KEYCODE_E) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("0.6: F f") PORT_CODE(KEYCODE_F) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("0.7: G g") PORT_CODE(KEYCODE_G) - - PORT_START /* IN2 KEY ROW 1 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("1.0: H h") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("1.1: I i") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("1.2: J j") PORT_CODE(KEYCODE_J) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("1.3: K k") PORT_CODE(KEYCODE_K) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("1.4: L l") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("1.5: M m") PORT_CODE(KEYCODE_M) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("1.6: N n") PORT_CODE(KEYCODE_N) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("1.7: O o") PORT_CODE(KEYCODE_O) - - PORT_START /* IN3 KEY ROW 2 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("2.0: P p") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("2.1: Q q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("2.2: R r") PORT_CODE(KEYCODE_R) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("2.3: S s") PORT_CODE(KEYCODE_S) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("2.4: T t") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("2.5: U u") PORT_CODE(KEYCODE_U) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("2.6: V v") PORT_CODE(KEYCODE_V) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("2.7: W w") PORT_CODE(KEYCODE_W) - - PORT_START /* IN4 KEY ROW 3 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("3.0: X x") PORT_CODE(KEYCODE_X) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("3.1: Y y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("3.2: Z z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("3.3: [ {") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("3.4: F1 F5") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("3.5: F2 F6") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("3.6: F3 F7") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("3.7: F4 F8") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("3.4: \\ |") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("3.5: ] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("3.6: ^ ~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("3.7: _") PORT_CODE(KEYCODE_EQUALS) - - PORT_START /* IN5 KEY ROW 4 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("4.0: 0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("4.1: 1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("4.2: 2 \"") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("4.3: 3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("4.4: 4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("4.5: 5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("4.6: 6 &") PORT_CODE(KEYCODE_6) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("4.7: 7 '") PORT_CODE(KEYCODE_7) - - PORT_START /* IN6 KEY ROW 5 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("5.0: 8 (") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("5.1: 9 )") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("5.2: : +") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("5.3: ; *") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("5.4: , <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("5.5: - =") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("5.6: . >") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("5.7: / ?") PORT_CODE(KEYCODE_SLASH) - - PORT_START /* IN7 KEY ROW 6 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("6.0: ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("6.1: CLEAR") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("6.2: BREAK") PORT_CODE(KEYCODE_END) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("6.3: UP") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("6.4: DOWN") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("6.5: LEFT") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("6.6: RIGHT") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("6.7: SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("6.5: (BSP)") PORT_CODE(KEYCODE_BACKSPACE) - - PORT_START /* IN8 KEY ROW 7 */ - PORT_BIT(0x01, 0x00, IPT_KEYBOARD) PORT_NAME("7.0: SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x02, 0x00, IPT_KEYBOARD) PORT_NAME("7.1: MODSEL") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x04, 0x00, IPT_KEYBOARD) PORT_NAME("7.2: (PGUP)") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x08, 0x00, IPT_KEYBOARD) PORT_NAME("7.3: (PGDN)") PORT_CODE(KEYCODE_PGDN) - PORT_BIT(0x10, 0x00, IPT_KEYBOARD) PORT_NAME("7.4: (INS)") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x20, 0x00, IPT_KEYBOARD) PORT_NAME("7.5: (DEL)") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x40, 0x00, IPT_KEYBOARD) PORT_NAME("7.6: (CTRL)") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x80, 0x00, IPT_KEYBOARD) PORT_NAME("7.7: (ALTGR)") PORT_CODE(KEYCODE_RALT) - - PORT_START /* IN9 */ - PORT_BIT( 0xff, 0x60, IPT_AD_STICK_X) PORT_SENSITIVITY(40) PORT_KEYDELTA(0) PORT_MINMAX(0x00,0xcf ) PORT_PLAYER(1) - - PORT_START /* IN10 */ - PORT_BIT( 0xff, 0x60, IPT_AD_STICK_Y) PORT_SENSITIVITY(40) PORT_KEYDELTA(0) PORT_MINMAX(0x00,0xcf ) PORT_PLAYER(1) PORT_REVERSE - - PORT_START /* IN11 */ - PORT_BIT( 0xff, 0x60, IPT_AD_STICK_X) PORT_SENSITIVITY(40) PORT_KEYDELTA(0) PORT_MINMAX(0x00,0xcf ) PORT_PLAYER(2) - - PORT_START /* IN12 */ - PORT_BIT( 0xff, 0x60, IPT_AD_STICK_Y) PORT_SENSITIVITY(40) PORT_KEYDELTA(0) PORT_MINMAX(0x00,0xcf ) PORT_PLAYER(2) PORT_REVERSE - - /* Joystick Keypad */ - /* keypads were organized a 3 x 4 matrix and it looked */ - /* exactly like a our northern telephone numerical pads */ - /* The addressing was done with a single clear bit 0..6 */ - /* on i/o port A, while all other bits were set. */ - /* (e.g. 0xFE addresses keypad1 row 0, 0xEF keypad2 row 1) */ - - /* bit 0 1 2 3 */ - /* FE/F7 0 [3] [6] [9] [#] */ - /* FD/EF 1 [2] [5] [8] [0] */ - /* FB/DF 2 [1] [4] [7] [*] */ - - PORT_START /* IN13 */ - PORT_BIT(0x01, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [3]") PORT_CODE(KEYCODE_3_PAD) PORT_CODE(JOYCODE_1_BUTTON3) - PORT_BIT(0x02, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [6]") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_1_BUTTON6) - PORT_BIT(0x04, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [9]") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT(0x08, 0x00, IPT_BUTTON2) PORT_NAME("Joy 1 [#]") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT(0x10, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [2]") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_1_BUTTON2) - PORT_BIT(0x20, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [5]") PORT_CODE(KEYCODE_5_PAD) PORT_CODE(JOYCODE_1_BUTTON5) - PORT_BIT(0x40, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [8]") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT(0x80, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [0]") PORT_CODE(KEYCODE_0_PAD) - PORT_START /* IN14 */ - PORT_BIT(0x01, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [1]") PORT_CODE(KEYCODE_1_PAD) PORT_CODE(JOYCODE_1_BUTTON3) - PORT_BIT(0x02, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [4]") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_1_BUTTON6) - PORT_BIT(0x04, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 1 [7]") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT(0x08, 0x00, IPT_BUTTON1) PORT_NAME("Joy 1 [*]") PORT_CODE(KEYCODE_ASTERISK) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT(0x10, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [3]") PORT_CODE(JOYCODE_2_BUTTON2) - PORT_BIT(0x20, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [6]") PORT_CODE(JOYCODE_2_BUTTON5) - PORT_BIT(0x40, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [9]") - PORT_BIT(0x80, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [#]") PORT_CODE(JOYCODE_2_BUTTON1) - - PORT_START /* IN15 */ - PORT_BIT(0x01, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [2]") PORT_CODE(JOYCODE_2_BUTTON2) - PORT_BIT(0x02, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [5]") PORT_CODE(JOYCODE_2_BUTTON5) - PORT_BIT(0x04, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [8]") - PORT_BIT(0x08, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [0]") - PORT_BIT(0x10, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [1]") PORT_CODE(JOYCODE_2_BUTTON1) - PORT_BIT(0x20, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [4]") PORT_CODE(JOYCODE_2_BUTTON4) - PORT_BIT(0x40, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [7]") - PORT_BIT(0x80, 0x00, IPT_UNKNOWN) PORT_NAME("Joy 2 [*]") PORT_CODE(JOYCODE_2_BUTTON1) -INPUT_PORTS_END - -gfx_layout cgenie_charlayout = -{ - 8,8, /* 8*8 characters */ - 384, /* 256 fixed + 128 defineable characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* x offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout cgenie_gfxlayout = -{ - 8,8, /* 4*8 characters */ - 256, /* 256 graphics patterns */ - 2, /* 2 bits per pixel */ - { 0, 1 }, /* two bitplanes; 2 bit per pixel */ - { 0, 0, 2, 2, 4, 4, 6, 6}, /* x offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_decode cgenie_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &cgenie_charlayout, 0, 3*16}, - { REGION_GFX2, 0, &cgenie_gfxlayout, 3*16*2, 3*4}, - { -1 } /* end of array */ -}; - -static unsigned char cgenie_palette[] = { - 0*4, 0*4, 0*4, /* background */ - -/* this is the 'RGB monitor' version, strong and clean */ - 15*4, 15*4, 15*4, /* gray */ - 0*4, 48*4, 48*4, /* cyan */ - 60*4, 0*4, 0*4, /* red */ - 47*4, 47*4, 47*4, /* white */ - 55*4, 55*4, 0*4, /* yellow */ - 0*4, 56*4, 0*4, /* green */ - 42*4, 32*4, 0*4, /* orange */ - 63*4, 63*4, 0*4, /* light yellow */ - 0*4, 0*4, 48*4, /* blue */ - 0*4, 24*4, 63*4, /* light blue */ - 60*4, 0*4, 38*4, /* pink */ - 38*4, 0*4, 60*4, /* purple */ - 31*4, 31*4, 31*4, /* light gray */ - 0*4, 63*4, 63*4, /* light cyan */ - 58*4, 0*4, 58*4, /* magenta */ - 63*4, 63*4, 63*4, /* bright white */ - -/* this is the 'TV screen' version, weak and blurred by repeating pixels */ - 15*2+80, 15*2+80, 15*2+80, /* gray */ - 0*2+80, 48*2+80, 48*2+80, /* cyan */ - 60*2+80, 0*2+80, 0*2+80, /* red */ - 47*2+80, 47*2+80, 47*2+80, /* white */ - 55*2+80, 55*2+80, 0*2+80, /* yellow */ - 0*2+80, 56*2+80, 0*2+80, /* green */ - 42*2+80, 32*2+80, 0*2+80, /* orange */ - 63*2+80, 63*2+80, 0*2+80, /* light yellow */ - 0*2+80, 0*2+80, 48*2+80, /* blue */ - 0*2+80, 24*2+80, 63*2+80, /* light blue */ - 60*2+80, 0*2+80, 38*2+80, /* pink */ - 38*2+80, 0*2+80, 60*2+80, /* purple */ - 31*2+80, 31*2+80, 31*2+80, /* light gray */ - 0*2+80, 63*2+80, 63*2+80, /* light cyan */ - 58*2+80, 0*2+80, 58*2+80, /* magenta */ - 63*2+80, 63*2+80, 63*2+80, /* bright white */ - - 15*2+96, 15*2+96, 15*2+96, /* gray */ - 0*2+96, 48*2+96, 48*2+96, /* cyan */ - 60*2+96, 0*2+96, 0*2+96, /* red */ - 47*2+96, 47*2+96, 47*2+96, /* white */ - 55*2+96, 55*2+96, 0*2+96, /* yellow */ - 0*2+96, 56*2+96, 0*2+96, /* green */ - 42*2+96, 32*2+96, 0*2+96, /* orange */ - 63*2+96, 63*2+96, 0*2+96, /* light yellow */ - 0*2+96, 0*2+96, 48*2+96, /* blue */ - 0*2+96, 24*2+96, 63*2+96, /* light blue */ - 60*2+96, 0*2+96, 38*2+96, /* pink */ - 38*2+96, 0*2+96, 60*2+96, /* purple */ - 31*2+96, 31*2+96, 31*2+96, /* light gray */ - 0*2+96, 63*2+96, 63*2+96, /* light cyan */ - 58*2+96, 0*2+96, 58*2+96, /* magenta */ - 63*2+96, 63*2+96, 63*2+96, /* bright white */ - - -}; - -static unsigned short cgenie_colortable[] = -{ - 0, 1, 0, 2, 0, 3, 0, 4, /* RGB monitor set of text colors */ - 0, 5, 0, 6, 0, 7, 0, 8, - 0, 9, 0,10, 0,11, 0,12, - 0,13, 0,14, 0,15, 0,16, - - 0,17, 0,18, 0,19, 0,20, /* TV set text colors: darker */ - 0,21, 0,22, 0,23, 0,24, - 0,25, 0,26, 0,27, 0,28, - 0,29, 0,30, 0,31, 0,32, - - 0,33, 0,34, 0,35, 0,36, /* TV set text colors: a bit brighter */ - 0,37, 0,38, 0,39, 0,40, - 0,41, 0,42, 0,43, 0,44, - 0,45, 0,46, 0,47, 0,48, - - 0, 9, 7, 6, /* RGB monitor graphics colors */ - 0, 25, 23, 22, /* TV set graphics colors: darker */ - 0, 41, 39, 38, /* TV set graphics colors: a bit brighter */ -}; - -/* Initialise the palette */ -static PALETTE_INIT( cgenie ) -{ - palette_set_colors(machine, 0, cgenie_palette, sizeof(cgenie_palette) / 3); - memcpy(colortable, cgenie_colortable, sizeof(cgenie_colortable)); -} - - -static struct AY8910interface ay8910_interface = -{ - cgenie_psg_port_a_r, - cgenie_psg_port_b_r, - cgenie_psg_port_a_w, - cgenie_psg_port_b_w -}; - - - -static MACHINE_DRIVER_START( cgenie ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 2216800) /* 2,2168 Mhz */ - MDRV_CPU_PROGRAM_MAP(cgenie_mem, 0) - MDRV_CPU_IO_MAP(cgenie_io, 0) - MDRV_CPU_VBLANK_INT(cgenie_frame_interrupt,1) - MDRV_CPU_PERIODIC_INT(cgenie_timer_interrupt, TIME_IN_HZ(40)) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(4) - - MDRV_MACHINE_START( cgenie ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(48*8, (32)*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1,0*8,32*8-1) - MDRV_GFXDECODE( cgenie_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof(cgenie_palette) / sizeof(cgenie_palette[0]) / 3) - MDRV_COLORTABLE_LENGTH(sizeof(cgenie_colortable) / sizeof(cgenie_colortable[0])) - MDRV_PALETTE_INIT( cgenie ) - - MDRV_VIDEO_START( cgenie ) - MDRV_VIDEO_UPDATE( cgenie ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START (cgenie) - ROM_REGION(0x13000,REGION_CPU1,0) - ROM_LOAD ("cgenie.rom", 0x00000, 0x4000, CRC(d359ead7) SHA1(d8c2fc389ad38c45fba0ed556a7d91abac5463f4)) - ROM_LOAD ("cgdos.rom", 0x10000, 0x2000, CRC(2a96cf74) SHA1(6dcac110f87897e1ee7521aefbb3d77a14815893)) - ROM_CART_LOAD(0, "rom\0", 0x12000, 0x1000, ROM_NOMIRROR | ROM_OPTIONAL) - - ROM_REGION(0x0c00,REGION_GFX1,0) - ROM_LOAD ("cgenie1.fnt", 0x0000, 0x0800, CRC(4fed774a) SHA1(d53df8212b521892cc56be690db0bb474627d2ff)) - - /* Empty memory region for the character generator */ - ROM_REGION(0x0800,REGION_GFX2,0) - -ROM_END - -static void cgenie_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_cgenie_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -static void cgenie_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_WRITEABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_CREATABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_cgenie_cassette; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "cas"); break; - } -} - -SYSTEM_CONFIG_START(cgenie) - CONFIG_DEVICE(cartslot_device_getinfo) - CONFIG_DEVICE(cgenie_floppy_getinfo) - CONFIG_DEVICE(cgenie_cassette_getinfo) - CONFIG_RAM_DEFAULT (16 * 1024) - CONFIG_RAM (32 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, cgenie, 0, 0, cgenie, cgenie, 0, cgenie, "EACA Computers Ltd.", "Colour Genie EG2000" , 0) diff --git a/mess/systems/channelf.c b/mess/systems/channelf.c deleted file mode 100644 index f87e359d8..000000000 --- a/mess/systems/channelf.c +++ /dev/null @@ -1,294 +0,0 @@ -/****************************************************************** - * - * Fairchild Channel F driver - * - * Juergen Buchmueller - * Frank Palazzolo - * Sean Riddle - * - ******************************************************************/ - -#include "driver.h" -#include "image.h" -#include "vidhrdw/generic.h" -#include "includes/channelf.h" -#include "devices/cartslot.h" -#include "sound/custom.h" - -#ifndef VERBOSE -#define VERBOSE 0 -#endif - - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) /* x */ -#endif - -/* The F8 has latches on its port pins - * These mimic's their behavior - * [0]=port0, [1]=port1, [2]=port4, [3]=port5 - * - * Note: this should really be moved into f8.c, - * but it's complicated by possible peripheral usage. - * - * If the read/write operation is going external to the F3850 - * (or F3853, etc.), then the latching applies. However, relaying the - * port read/writes from the F3850 to a peripheral like the F3853 - * should not be latched in this way. (See mk1 driver) - * - * The f8 cannot determine how its ports are mapped at runtime, - * so it can't easily decide to latch or not. - * - * ...so it stays here for now. - */ - -static UINT8 latch[6]; /* SKR - inc by 2 for 2102 ports */ - -static UINT8 port_read_with_latch(UINT8 ext, UINT8 latch_state) -{ - return (~ext | latch_state); -} - -static READ8_HANDLER( channelf_port_0_r ) -{ - return port_read_with_latch(readinputport(0),latch[0]); -} - -static READ8_HANDLER( channelf_port_1_r ) -{ - UINT8 ext_value; - - if ((latch[0] & 0x40) == 0) - { - ext_value = readinputport(1); - } - else - { - ext_value = 0xc0 | readinputport(1); - } - return port_read_with_latch(ext_value,latch[1]); -} - -static READ8_HANDLER( channelf_port_4_r ) -{ - UINT8 ext_value; - - if ((latch[0] & 0x40) == 0) - { - ext_value = readinputport(2); - } - else - { - ext_value = 0xff; - } - return port_read_with_latch(ext_value,latch[2]); -} - -static READ8_HANDLER( channelf_port_5_r ) -{ - return port_read_with_latch(0xff,latch[3]); -} - -struct { /* SKR - 2102 RAM chip on carts 10 and 18 I/O ports */ - UINT8 d; /* data bit:inverted logic, but reading/writing cancel out */ - UINT8 r_w; /* inverted logic: 0 means read, 1 means write */ - UINT8 a[10]; /* addr bits: inverted logic, but reading/writing cancel out */ - UINT16 addr; /* calculated addr from addr bits */ - UINT8 ram[1024]; /* RAM array */ -} r2102; - -static READ8_HANDLER( channelf_2102A_r ) /* SKR */ -{ - UINT8 pdata; - - if(r2102.r_w==0) { - r2102.addr=(r2102.a[0]&1)+((r2102.a[1]<<1)&2)+((r2102.a[2]<<2)&4)+((r2102.a[3]<<3)&8)+((r2102.a[4]<<4)&16)+((r2102.a[5]<<5)&32)+((r2102.a[6]<<6)&64)+((r2102.a[7]<<7)&128)+((r2102.a[8]<<8)&256)+((r2102.a[9]<<9)&512); - r2102.d=r2102.ram[r2102.addr]&1; - pdata=latch[4]&0x7f; - pdata|=(r2102.d<<7); - LOG(("rhA: addr=%d, d=%d, r_w=%d, ram[%d]=%d, a[9]=%d, a[8]=%d, a[7]=%d, a[6]=%d, a[5]=%d, a[4]=%d, a[3]=%d, a[2]=%d, a[1]=%d, a[0]=%d\n",r2102.addr,r2102.d,r2102.r_w,r2102.addr,r2102.ram[r2102.addr],r2102.a[9],r2102.a[8],r2102.a[7],r2102.a[6],r2102.a[5],r2102.a[4],r2102.a[3],r2102.a[2],r2102.a[1],r2102.a[0])); - return port_read_with_latch(0xff,pdata); - } else - LOG(("rhA: r_w=%d\n",r2102.r_w)); - return port_read_with_latch(0xff,latch[4]); -} - -static READ8_HANDLER( channelf_2102B_r ) /* SKR */ -{ - LOG(("rhB\n")); - return port_read_with_latch(0xff,latch[5]); -} - -static WRITE8_HANDLER( channelf_port_0_w ) -{ - int offs; - - latch[0] = data; - - if (data & 0x20) - { - offs = channelf_row_reg*128+channelf_col_reg; - if (videoram[offs] != channelf_val_reg) - videoram[offs] = channelf_val_reg; - } -} - -static WRITE8_HANDLER( channelf_port_1_w ) -{ - latch[1] = data; - channelf_val_reg = ((data ^ 0xff) >> 6) & 0x03; -} - -static WRITE8_HANDLER( channelf_port_4_w ) -{ - latch[2] = data; - channelf_col_reg = (data | 0x80) ^ 0xff; -} - -static WRITE8_HANDLER( channelf_port_5_w ) -{ - latch[3] = data; - channelf_sound_w((data>>6)&3); - channelf_row_reg = (data | 0xc0) ^ 0xff; -} - -static WRITE8_HANDLER( channelf_2102A_w ) /* SKR */ -{ - latch[4]=data; - r2102.a[2]=(data>>2)&1; - r2102.a[3]=(data>>1)&1; - r2102.r_w=data&1; - r2102.addr=(r2102.a[0]&1)+((r2102.a[1]<<1)&2)+((r2102.a[2]<<2)&4)+((r2102.a[3]<<3)&8)+((r2102.a[4]<<4)&16)+((r2102.a[5]<<5)&32)+((r2102.a[6]<<6)&64)+((r2102.a[7]<<7)&128)+((r2102.a[8]<<8)&256)+((r2102.a[9]<<9)&512); - r2102.d=(data>>3)&1; - if(r2102.r_w==1) - r2102.ram[r2102.addr]=r2102.d; - LOG(("whA: data=%d, addr=%d, d=%d, r_w=%d, ram[%d]=%d\n",data,r2102.addr,r2102.d,r2102.r_w,r2102.addr,r2102.ram[r2102.addr])); -} - -static WRITE8_HANDLER( channelf_2102B_w ) /* SKR */ -{ - latch[5]=data; - r2102.a[9]=(data>>7)&1; - r2102.a[8]=(data>>6)&1; - r2102.a[7]=(data>>5)&1; - r2102.a[1]=(data>>4)&1; - r2102.a[6]=(data>>3)&1; - r2102.a[5]=(data>>2)&1; - r2102.a[4]=(data>>1)&1; - r2102.a[0]=data&1; - LOG(("whB: data=%d, a[9]=%d,a[8]=%d,a[0]=%d\n",data,r2102.a[9],r2102.a[8],r2102.a[0])); -} - -static ADDRESS_MAP_START( channelf_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0800, 0x27ff) AM_ROM /* Cartridge Data */ - AM_RANGE(0x2800, 0x2fff) AM_RAM /* Schach RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( channelf_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READWRITE(channelf_port_0_r, channelf_port_0_w) /* Front panel switches */ - AM_RANGE(0x01, 0x01) AM_READWRITE(channelf_port_1_r, channelf_port_1_w) /* Right controller */ - AM_RANGE(0x04, 0x04) AM_READWRITE(channelf_port_4_r, channelf_port_4_w) /* Left controller */ - AM_RANGE(0x05, 0x05) AM_READWRITE(channelf_port_5_r, channelf_port_5_w) - - AM_RANGE(0x20, 0x20) AM_READWRITE(channelf_2102A_r, channelf_2102A_w) /* SKR 2102 control and addr for cart 18 */ - AM_RANGE(0x21, 0x21) AM_READWRITE(channelf_2102B_r, channelf_2102B_w) /* SKR 2102 addr */ - AM_RANGE(0x24, 0x24) AM_READWRITE(channelf_2102A_r, channelf_2102A_w) /* SKR 2102 control and addr for cart 10 */ - AM_RANGE(0x25, 0x25) AM_READWRITE(channelf_2102B_r, channelf_2102B_w) /* SKR 2102 addr */ -ADDRESS_MAP_END - - - -INPUT_PORTS_START( channelf ) - PORT_START /* Front panel buttons */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_START ) /* START (1) */ - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) /* HOLD (2) */ - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) /* MODE (3) */ - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) /* TIME (4) */ - PORT_BIT ( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Right controller */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) /* C-CLOCKWISE */ PORT_PLAYER(1) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3) /* CLOCKWISE */ PORT_PLAYER(1) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) /* PULL UP */ PORT_PLAYER(1) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) /* PUSH DOWN */ PORT_PLAYER(1) - - PORT_START /* Left controller */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) /* C-CLOCKWISE */ PORT_PLAYER(2) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3) /* CLOCKWISE */ PORT_PLAYER(2) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) /* PULL UP */ PORT_PLAYER(2) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) /* PUSH DOWN */ PORT_PLAYER(2) - -INPUT_PORTS_END - -static struct CustomSound_interface channelf_sound_interface = -{ - channelf_sh_custom_start -}; - - -static MACHINE_DRIVER_START( channelf ) - /* basic machine hardware */ - MDRV_CPU_ADD(F8, 3579545/2) /* Colorburst/2 */ - MDRV_CPU_PROGRAM_MAP(channelf_map, 0) - MDRV_CPU_IO_MAP(channelf_io, 0) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(128, 64) - MDRV_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(0) - MDRV_PALETTE_INIT( channelf ) - - MDRV_VIDEO_START( channelf ) - MDRV_VIDEO_UPDATE( channelf ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(channelf_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -SYSTEM_BIOS_START( channelf ) - SYSTEM_BIOS_ADD( 0, "sl90025", "Luxor Video Entertainment System" ) - SYSTEM_BIOS_ADD( 1, "sl31253", "Channel F" ) -SYSTEM_BIOS_END - -ROM_START( channelf ) - ROM_REGION(0x10000,REGION_CPU1,0) - ROMX_LOAD("sl90025.rom", 0x0000, 0x0400, CRC(015c1e38) SHA1(759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2), ROM_BIOS(1)) - ROMX_LOAD("sl31253.rom", 0x0000, 0x0400, CRC(04694ed9) SHA1(81193965a374d77b99b4743d317824b53c3e3c78), ROM_BIOS(2)) - ROM_LOAD("sl31254.rom", 0x0400, 0x0400, CRC(9c047ba3) SHA1(8f70d1b74483ba3a37e86cf16c849d601a8c3d2c)) - ROM_CART_LOAD(0, "bin\0", 0x0800, 0x2000, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -SYSTEM_CONFIG_START( channelf ) - CONFIG_DEVICE(cartslot_device_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT BIOS COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONSB( 1976, channelf, 0, channelf, 0, channelf, channelf, 0, channelf, "Fairchild", "Channel F" , 0) - - diff --git a/mess/systems/coco.c b/mess/systems/coco.c deleted file mode 100644 index a5ed4130e..000000000 --- a/mess/systems/coco.c +++ /dev/null @@ -1,1151 +0,0 @@ -/*************************************************************************** - - coco.c - - TRS-80 Radio Shack Color Computer Family - - Mathis Rosenhauer (original driver) - Nate Woods (current maintainer) - Tim Lindner (VHD and other work) - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "machine/6821pia.h" -#include "vidhrdw/m6847.h" -#include "machine/6883sam.h" -#include "includes/coco.h" -#include "devices/basicdsk.h" -#include "includes/6551.h" -#include "formats/coco_dsk.h" -#include "formats/coco_cas.h" -#include "devices/printer.h" -#include "devices/mflopimg.h" -#include "devices/cassette.h" -#include "devices/bitbngr.h" -#include "devices/snapquik.h" -#include "devices/cartslot.h" -#include "devices/coco_vhd.h" -#include "sound/ay8910.h" -#include "coco3.lh" - -#define SHOW_FULL_AREA 0 -#define JOYSTICK_DELTA 10 -#define JOYSTICK_SENSITIVITY 100 - -static ADDRESS_MAP_START( coco_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x8000, 0xfeff) AM_RAMBANK(2) - AM_RANGE(0xff00, 0xff1f) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xff20, 0xff3f) AM_READWRITE(coco_pia_1_r, pia_1_w) - AM_RANGE(0xff40, 0xff8f) AM_READWRITE(coco_cartridge_r, coco_cartridge_w) - AM_RANGE(0xff90, 0xffbf) AM_NOP - AM_RANGE(0xffc0, 0xffdf) AM_WRITE(sam_w) - AM_RANGE(0xffe0, 0xffef) AM_NOP - AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x3ff0) -ADDRESS_MAP_END - - - -/* Note that the CoCo 3 doesn't use the SAM VDG mode registers - * - * Also, there might be other SAM registers that are ignored in the CoCo 3; - * I am not sure which ones are... - * - * Tepolt implies that $FFD4-$FFD7 and $FFDA-$FFDD are ignored on the CoCo 3, - * which would make sense, but I'm not sure. - */ -static ADDRESS_MAP_START( coco3_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAMBANK(1) - AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(2) - AM_RANGE(0x4000, 0x5fff) AM_RAMBANK(3) - AM_RANGE(0x6000, 0x7fff) AM_RAMBANK(4) - AM_RANGE(0x8000, 0x9fff) AM_RAMBANK(5) - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(6) - AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(7) - AM_RANGE(0xe000, 0xfdff) AM_RAMBANK(8) - AM_RANGE(0xfe00, 0xfeff) AM_RAMBANK(9) - AM_RANGE(0xff00, 0xff1f) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xff20, 0xff3f) AM_READWRITE(coco3_pia_1_r, pia_1_w) - AM_RANGE(0xff40, 0xff8f) AM_READWRITE(coco_cartridge_r, coco_cartridge_w) - AM_RANGE(0xff90, 0xff9f) AM_READWRITE(coco3_gime_r, coco3_gime_w) - AM_RANGE(0xffa0, 0xffaf) AM_READWRITE(coco3_mmu_r, coco3_mmu_w) - AM_RANGE(0xffb0, 0xffbf) AM_READWRITE(paletteram_r, coco3_palette_w) - AM_RANGE(0xffc0, 0xffdf) AM_WRITE(sam_w) - AM_RANGE(0xffe0, 0xffef) AM_NOP - AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x7ff0) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( d64_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_RAMBANK(1) - AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(2) - AM_RANGE(0xc000, 0xfeff) AM_RAMBANK(3) - AM_RANGE(0xff00, 0xff03) AM_READWRITE(pia_0_r, pia_0_w) AM_MIRROR(0x0018) - AM_RANGE(0xff04, 0xff07) AM_READWRITE(acia_6551_r, acia_6551_w) AM_MIRROR(0x0018) - AM_RANGE(0xff20, 0xff3f) AM_READWRITE(coco_pia_1_r, pia_1_w) - AM_RANGE(0xff40, 0xff8f) AM_READWRITE(coco_cartridge_r, coco_cartridge_w) - AM_RANGE(0xff90, 0xffbf) AM_NOP - AM_RANGE(0xffc0, 0xffdf) AM_WRITE(sam_w) - AM_RANGE(0xffe0, 0xffef) AM_NOP - AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x3ff0) -ADDRESS_MAP_END - -/* - Dragon 64 with compusense Plus addon, this provided an extra 64K of memory - and an 80x25 column text display, provided by a motorola 6845. - - Currently only the memory is emulated. -*/ - -static ADDRESS_MAP_START( d64_plus_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_RAMBANK(1) - AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(2) - AM_RANGE(0xc000, 0xfeff) AM_RAMBANK(3) - AM_RANGE(0xff00, 0xff03) AM_READWRITE(pia_0_r,pia_0_w) AM_MIRROR(0x0018) - AM_RANGE(0xff04, 0xff07) AM_READWRITE(acia_6551_r,acia_6551_w) AM_MIRROR(0x0018) - AM_RANGE(0xff20, 0xff3f) AM_READWRITE(coco_pia_1_r,pia_1_w) - AM_RANGE(0xff40, 0xff8f) AM_READWRITE(coco_cartridge_r, coco_cartridge_w) - AM_RANGE(0xff90, 0xffbf) AM_NOP - AM_RANGE(0xffc0, 0xffdf) AM_WRITE(sam_w) - AM_RANGE(0xffe0, 0xffe1) AM_NOP - AM_RANGE(0xffe2, 0xffe2) AM_READWRITE(plus_reg_r,plus_reg_w) /* Dragon plus control / status reg */ - AM_RANGE(0xffe3, 0xffef) AM_NOP - AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION(REGION_CPU1,0x3ff0) -ADDRESS_MAP_END - -/* - The Dragon Alpha was a prototype in development when Dragon Data went bust, - it is basically an enhanced Dragon 64, with built in modem, disk system, and - graphical boot rom. - - It has the following extra hardware :- - A third 6821 PIA mapped between FF24 and FF27 - An AY-8912, connected to the PIA. - - Port A of the PIA is connected as follows :- - - b0 BDIR of AY8912 - b1 BC1 of AY8912 - b2 Rom select, High= boot rom, low=BASIC rom - b3..7 not used. - - Port B - b0..7 connected to D0..7 of the AY8912. - - CB1 DRQ of WD2797. - - /irqa - /irqb both connected to 6809 FIRQ. - - - The analog outputs of the AY-8912 are connected to the standard sound multiplexer. - The AY8912 output port is used as follows :- - - b0..b3 /DS0../DS3 for the drive interface (through an inverter first). - b4 /motor for the drive interface (through an inverter first). - b5..b7 not used as far as I can tell. - - A 6850 for the modem. - - A WD2797, used as an internal disk interface, this is however connected in a slightly strange - way that I am yet to completely determine. - 19/10/2004, WD2797 is mapped between FF2C and FF2F, however the order of the registers is - reversed so the command Register is at the highest address instead of the lowest. The Data - request pin is connected to CB1(pin 18) of PIA2, to cause an firq, the INTRQ, is connected via - an inverter to the 6809's NMI. - - All these are as yet un-emulated. - - 29-Oct-2004, AY-8912 is now emulated. - 30-Oct-2004, Internal disk interface now emulated, Normal DragonDos rom replaced with a re-assembled - version, that talks to the alpha hardware (verified on a clone of the real machine). -*/ - - -static ADDRESS_MAP_START( dgnalpha_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_RAMBANK(1) - AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(2) - AM_RANGE(0xc000, 0xfeff) AM_RAMBANK(3) - AM_RANGE(0xff00, 0xff03) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xff04, 0xff07) AM_READWRITE(acia_6551_r, acia_6551_w) - AM_RANGE(0xff20, 0xff23) AM_READWRITE(coco_pia_1_r, pia_1_w) - AM_RANGE(0xff24, 0xff27) AM_READWRITE(pia_2_r, pia_2_w) /* Third PIA on Dragon Alpha */ - AM_RANGE(0xff2c, 0xff2f) AM_READWRITE(wd2797_r, wd2797_w) /* Alpha onboard disk interface */ - AM_RANGE(0xff40, 0xff8f) AM_READWRITE(coco_cartridge_r, coco_cartridge_w) - AM_RANGE(0xff90, 0xffbf) AM_NOP - AM_RANGE(0xffc0, 0xffdf) AM_WRITE(sam_w) - AM_RANGE(0xffe0, 0xffef) AM_NOP - AM_RANGE(0xfff0, 0xffff) AM_READ(dragon_alpha_mapped_irq_r) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( coco_joystick ) - PORT_START_TAG("joystick_right_x") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xFF) PORT_CODE_DEC(KEYCODE_4_PAD) PORT_CODE_INC(KEYCODE_6_PAD) PORT_CODE_DEC(JOYCODE_1_LEFT) PORT_CODE_INC(JOYCODE_1_RIGHT) PORT_PLAYER(1) - PORT_START_TAG("joystick_right_y") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xFF) PORT_CODE_DEC(KEYCODE_8_PAD) PORT_CODE_INC(KEYCODE_2_PAD) PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(JOYCODE_1_DOWN) PORT_PLAYER(1) - PORT_START_TAG("joystick_left_x") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xFF) PORT_CODE_DEC(KEYCODE_4_PAD) PORT_CODE_INC(KEYCODE_6_PAD) PORT_CODE_DEC(JOYCODE_2_LEFT) PORT_CODE_INC(JOYCODE_2_RIGHT) PORT_PLAYER(2) - PORT_START_TAG("joystick_left_y") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xFF) PORT_CODE_DEC(KEYCODE_8_PAD) PORT_CODE_INC(KEYCODE_2_PAD) PORT_CODE_DEC(JOYCODE_2_UP) PORT_CODE_INC(JOYCODE_2_DOWN) PORT_PLAYER(2) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( coco_joystick_buttons ) - PORT_START_TAG("joystick_buttons") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Right Button") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_CODE(MOUSECODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left Button") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON1) PORT_CODE(MOUSECODE_2_BUTTON1) PORT_PLAYER(2) -INPUT_PORTS_END - - - -static INPUT_PORTS_START( coco3_joystick_buttons ) - PORT_START_TAG("joystick_buttons") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Right Button 1") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_1_BUTTON1) PORT_CODE(MOUSECODE_1_BUTTON1) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Right Button 2") PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_1_BUTTON2) PORT_CODE(MOUSECODE_1_BUTTON2) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left Button 1") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON1) PORT_CODE(MOUSECODE_2_BUTTON1) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Left Button 2") PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_2_BUTTON2) PORT_CODE(MOUSECODE_2_BUTTON2) PORT_PLAYER(2) -INPUT_PORTS_END - - - -/* Dragon keyboard - - PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 - PA6: Ent Clr Brk N/c N/c N/c N/c Shift - PA5: X Y Z Up Dwn Lft Rgt Space - PA4: P Q R S T U V W - PA3: H I J K L M N O - PA2: @ A B C D E F G - PA1: 8 9 : ; , - . / - PA0: 0 1 2 3 4 5 6 7 - */ -INPUT_PORTS_START( dragon32 ) - PORT_START /* KEY ROW 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - - PORT_START /* KEY ROW 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - - PORT_START /* KEY ROW 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START /* KEY ROW 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START /* KEY ROW 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START /* KEY ROW 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(10) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(9) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - - PORT_START /* KEY ROW 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_HOME) PORT_CHAR(12) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_END) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT (0x78, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - PORT_INCLUDE( coco_joystick ) - PORT_INCLUDE( coco_joystick_buttons ) - PORT_INCLUDE( m6847_artifacting ) - -INPUT_PORTS_END - -/* CoCo keyboard - - PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 - PA6: Ent Clr Brk N/c N/c N/c N/c Shift - PA5: 8 9 : ; , - . / - PA4: 0 1 2 3 4 5 6 7 - PA3: X Y Z Up Dwn Lft Rgt Space - PA2: P Q R S T U V W - PA1: H I J K L M N O - PA0: @ A B C D E F G - */ -INPUT_PORTS_START( coco ) - PORT_START /* KEY ROW 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START /* KEY ROW 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START /* KEY ROW 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START /* KEY ROW 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(10) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(9) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - - PORT_START /* KEY ROW 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - - PORT_START /* KEY ROW 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - - PORT_START /* KEY ROW 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_HOME) PORT_CHAR(12) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_END) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x78, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - PORT_INCLUDE( coco_joystick ) - PORT_INCLUDE( coco_joystick_buttons ) - PORT_INCLUDE( m6847_artifacting ) - - PORT_START /* 13 */ - PORT_CONFNAME( 0x03, 0x00, "Real Time Clock" ) - PORT_CONFSETTING( 0x00, "Disto" ) - PORT_CONFSETTING( 0x01, "Cloud-9" ) -INPUT_PORTS_END - -/* CoCo 3 keyboard - - PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 - PA6: Ent Clr Brk Alt Ctr F1 F2 Shift - PA5: 8 9 : ; , - . / - PA4: 0 1 2 3 4 5 6 7 - PA3: X Y Z Up Dwn Lft Rgt Space - PA2: P Q R S T U V W - PA1: H I J K L M N O - PA0: @ A B C D E F G - */ -INPUT_PORTS_START( coco3 ) - PORT_START /* KEY ROW 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START /* KEY ROW 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START /* KEY ROW 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START /* KEY ROW 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(10) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(9) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - - PORT_START /* KEY ROW 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - - PORT_START /* KEY ROW 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') PORT_CHAR('_') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - - PORT_START /* KEY ROW 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_HOME) PORT_CHAR(12) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_END) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - PORT_INCLUDE( coco_joystick ) - PORT_INCLUDE( coco3_joystick_buttons ) - PORT_INCLUDE( m6847_artifacting ) - - PORT_START_TAG("joystick_mode") - PORT_CONFNAME( 0x70, 0x00, "Joystick Type" ) - PORT_CONFSETTING( 0x00, DEF_STR( Normal ) ) - PORT_CONFSETTING( 0x10, "Hi-Res Interface" ) - PORT_CONFSETTING( 0x30, "Hi-Res Interface (CoCoMax 3 Style)" ) - PORT_CONFSETTING( 0x20, "The Rat Graphics Mouse" ) - PORT_CONFSETTING( 0x40, "Diecom Light Gun Adaptor" ) - - PORT_START_TAG("real_time_clock") - PORT_CONFNAME( 0x03, 0x00, "Real Time Clock" ) - PORT_CONFSETTING( 0x00, "Disto" ) - PORT_CONFSETTING( 0x01, "Cloud-9" ) - - PORT_START_TAG("rat_mouse_x") - PORT_BIT( 0x03, 0x00, IPT_MOUSE_X) PORT_NAME("Rat Mouse X") PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_1_LEFT) PORT_CODE_INC(JOYCODE_1_RIGHT) PORT_PLAYER(1) - PORT_START_TAG("rat_mouse_y") - PORT_BIT( 0x03, 0x00, IPT_MOUSE_Y) PORT_NAME("Rat Mouse Y") PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(JOYCODE_1_DOWN) PORT_PLAYER(1) - - PORT_START_TAG("dclg_x") - PORT_BIT( 0x1ff, 266, IPT_LIGHTGUN_X ) PORT_NAME("Lightgun X") PORT_MINMAX(116,416) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(3) - PORT_START_TAG("dclg_y") - PORT_BIT( 0xff, 121, IPT_LIGHTGUN_X ) PORT_NAME("Lightgun Y") PORT_MINMAX(0,242) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(3) -INPUT_PORTS_END - -/* AY-8912 for Dragon Alpha, the AY-8912 simply an AY-8910 with only one io port. */ -static struct AY8910interface ay8912_interface = -{ - dgnalpha_psg_porta_read, /* portA read */ - NULL, /* portB read */ - dgnalpha_psg_porta_write, /* portA write */ - NULL /* portB write */ -}; - - -static MACHINE_DRIVER_START( dragon32 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(coco_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( dragon32 ) - - /* video hardware */ - MDRV_VIDEO_START(dragon) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dragon64 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(d64_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( dragon64 ) - - /* video hardware */ - MDRV_VIDEO_START(dragon) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( d64plus ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(d64_plus_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( dragon64 ) - - /* video hardware */ - MDRV_VIDEO_START(dragon) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dgnalpha ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(dgnalpha_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( dgnalpha ) - - /* video hardware */ - MDRV_VIDEO_START(dragon) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(ay8912_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tanodr64 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(d64_map, 0) - MDRV_SCREEN_REFRESH_RATE(COCO_FRAMES_PER_SECOND) /* Tano Dragon 64 is NTSC */ - - MDRV_MACHINE_START( tanodr64 ) - - /* video hardware */ - MDRV_VIDEO_START(dragon) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(coco_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( coco ) - - /* video hardware */ - MDRV_VIDEO_START(coco) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco2 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(coco_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( coco2 ) - - /* video hardware */ - MDRV_VIDEO_START(coco) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco2b ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(coco_map, 0) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - - MDRV_MACHINE_START( coco2 ) - - /* video hardware */ - MDRV_VIDEO_START(coco2b) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco3 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, COCO_CPU_SPEED_HZ) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(coco3_map, 0) - - MDRV_MACHINE_START( coco3 ) - - /* video hardware */ - MDRV_VIDEO_START(coco3) - MDRV_VIDEO_UPDATE(coco3) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_DEFAULT_LAYOUT(layout_coco3) - - MDRV_SCREEN_ADD("composite", 0) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - MDRV_SCREEN_SIZE(640, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - - MDRV_SCREEN_ADD("rgb", 0) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) - MDRV_SCREEN_SIZE(640, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco3p ) - MDRV_IMPORT_FROM( coco3 ) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - - /* video hardware */ - MDRV_VIDEO_START(coco3p) - MDRV_VIDEO_UPDATE(coco3) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(640, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 639, 1, 239) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( coco3h ) - MDRV_IMPORT_FROM( coco3 ) - MDRV_CPU_REPLACE( "main", HD6309, COCO_CPU_SPEED_HZ) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(dragon32) - ROM_REGION(0xC000,REGION_CPU1,0) - ROM_LOAD( "d32.rom", 0x0000, 0x4000, CRC(e3879310) SHA1(f2dab125673e653995a83bf6b793e3390ec7f65a)) - ROM_LOAD_OPTIONAL( "ddos10.rom", 0x4000, 0x2000, CRC(b44536f6) SHA1(a8918c71d319237c1e3155bb38620acb114a80bc)) -ROM_END - -ROM_START(dragon64) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD( "d64_1.rom", 0x0000, 0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042)) - ROM_LOAD( "d64_2.rom", 0x8000, 0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e)) - ROM_LOAD_OPTIONAL( "ddos10.rom", 0x4000, 0x2000, CRC(b44536f6) SHA1(a8918c71d319237c1e3155bb38620acb114a80bc)) -ROM_END - -ROM_START(d64plus) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD( "d64_1.rom", 0x0000, 0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042)) - ROM_LOAD( "d64_2.rom", 0x8000, 0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e)) - ROM_LOAD_OPTIONAL( "ddos10.rom", 0x4000, 0x2000, CRC(b44536f6) SHA1(a8918c71d319237c1e3155bb38620acb114a80bc)) -ROM_END - -ROM_START(tanodr64) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD( "d64_1.rom", 0x0000, 0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042)) - ROM_LOAD( "d64_2.rom", 0x8000, 0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e)) - ROM_LOAD_OPTIONAL( "sdtandy.rom", 0x4000, 0x2000, CRC(d4a9bfd1) SHA1(1db0ccaeb7ac63461f98ef091fa02ddd1fef9bac)) -ROM_END - -ROM_START(dgnalpha) - ROM_REGION(0x10000,REGION_CPU1,1) - ROM_LOAD( "alpha_bt.rom", 0x2000, 0x2000, CRC(c3dab585) SHA1(4a5851aa66eb426e9bb0bba196f1e02d48156068)) - ROM_LOAD( "alpha_ba.rom", 0x8000, 0x4000, CRC(84f68bf9) SHA1(1983b4fb398e3dd9668d424c666c5a0b3f1e2b69)) -ROM_END - -ROM_START(coco) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD( "bas10.rom", 0x2000, 0x2000, CRC(00b50aaa) SHA1(1f08455cd48ce6a06132aea15c4778f264e19539)) -ROM_END - -ROM_START(cocoe) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD( "bas11.rom", 0x2000, 0x2000, CRC(6270955a) SHA1(cecb7c24ff1e0ab5836e4a7a8eb1b8e01f1fded3)) - ROM_LOAD( "extbas10.rom", 0x0000, 0x2000, CRC(6111a086) SHA1(8aa58f2eb3e8bcfd5470e3e35e2b359e9a72848e)) - ROM_LOAD_OPTIONAL( "disk10.rom", 0x4000, 0x2000, CRC(b4f9968e) SHA1(04115be3f97952b9d9310b52f806d04f80b40d03)) -ROM_END - -ROM_START(coco2) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD( "bas12.rom", 0x2000, 0x2000, CRC(54368805) SHA1(0f14dc46c647510eb0b7bd3f53e33da07907d04f)) - ROM_LOAD( "extbas11.rom", 0x0000, 0x2000, CRC(a82a6254) SHA1(ad927fb4f30746d820cb8b860ebb585e7f095dea)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0x4000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) -ROM_END - -ROM_START(coco2b) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD( "bas13.rom", 0x2000, 0x2000, CRC(d8f4d15e) SHA1(28b92bebe35fa4f026a084416d6ea3b1552b63d3)) - ROM_LOAD( "extbas11.rom", 0x0000, 0x2000, CRC(a82a6254) SHA1(ad927fb4f30746d820cb8b860ebb585e7f095dea)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0x4000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) -ROM_END - -ROM_START(coco3) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD( "coco3.rom", 0x0000, 0x8000, CRC(b4c88d6c) SHA1(e0d82953fb6fd03768604933df1ce8bc51fc427d)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0xC000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0xE000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) -ROM_END - -ROM_START(coco3p) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD( "coco3p.rom", 0x0000, 0x8000, CRC(ff050d80) SHA1(631e383068b1f52a8f419f4114b69501b21cf379)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0xC000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) - ROM_LOAD_OPTIONAL( "disk11.rom", 0xE000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1)) -ROM_END - -ROM_START(cp400) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD("cp400bas.rom", 0x0000, 0x4000, CRC(878396a5) SHA1(292c545da3c77978e043b00a3dbc317201d18c3b)) - ROM_LOAD("cp400dsk.rom", 0x4000, 0x2000, CRC(e9ad60a0) SHA1(827697fa5b755f5dc1efb054cdbbeb04e405405b)) -ROM_END - -#define rom_coco3h rom_coco3 - -/*************************************************************************** - Bitbanger port -***************************************************************************/ - -static int coco_bitbanger_filter(mess_image *img, const int *pulses, int total_pulses, int total_duration) -{ - int i; - int result = 0; - int word; - int pos; - int pulse_type; - int c; - - if (total_duration >= 11) - { - word = 0; - pos = 0; - pulse_type = 0; - result = 1; - - for (i = 0; i < total_pulses; i++) - { - if (pulse_type) - word |= ((1 << pulses[i]) - 1) << pos; - pulse_type ^= 1; - pos += pulses[i]; - } - - c = (word >> 1) & 0xff; - printer_output(img, c); - } - return result; -} - -static const struct bitbanger_config coco_bitbanger_config = -{ - coco_bitbanger_filter, - 1.0 / 10.0, - 0.2, - 2, - 10, - 0, - 0 -}; - -/* ----------------------------------------------------------------------- */ - -/************************************* - * - * CoCo device getinfo functions - * - *************************************/ - -static void coco_bitbanger_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* bitbanger port */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_BITBANGER_CONFIG: info->p = (void *) &coco_bitbanger_config; break; - - default: bitbanger_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) coco_cassette_formats; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_coco; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME+0: strcpy(info->s = device_temp_str(), "floppydisk0"); break; - case DEVINFO_STR_NAME+1: strcpy(info->s = device_temp_str(), "floppydisk1"); break; - case DEVINFO_STR_NAME+2: strcpy(info->s = device_temp_str(), "floppydisk2"); break; - case DEVINFO_STR_NAME+3: strcpy(info->s = device_temp_str(), "floppydisk3"); break; - case DEVINFO_STR_SHORT_NAME+0: strcpy(info->s = device_temp_str(), "flop0"); break; - case DEVINFO_STR_SHORT_NAME+1: strcpy(info->s = device_temp_str(), "flop1"); break; - case DEVINFO_STR_SHORT_NAME+2: strcpy(info->s = device_temp_str(), "flop2"); break; - case DEVINFO_STR_SHORT_NAME+3: strcpy(info->s = device_temp_str(), "flop3"); break; - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "Floppy #0"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "Floppy #1"); break; - case DEVINFO_STR_DESCRIPTION+2: strcpy(info->s = device_temp_str(), "Floppy #2"); break; - case DEVINFO_STR_DESCRIPTION+3: strcpy(info->s = device_temp_str(), "Floppy #3"); break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_coco_rom; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_coco_rom; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "ccc,rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco3_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_coco3_rom; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_coco3_rom; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "ccc,rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "pak"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_coco_pak; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - - - -static void coco3_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "pak"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_coco3_pak; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -/************************************* -* -* Dragon only devices -* -**************************************/ - -static void dragon_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer port */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - - - -/************************************* - * - * CoCo sysconfig structures - * - *************************************/ - - -SYSTEM_CONFIG_START( generic_coco ) - CONFIG_DEVICE( coco_bitbanger_getinfo ) - CONFIG_DEVICE( coco_cassette_getinfo ) - CONFIG_DEVICE( coco_floppy_getinfo ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START( generic_coco12 ) - CONFIG_IMPORT_FROM( generic_coco ) - CONFIG_DEVICE( coco_cartslot_getinfo ) - CONFIG_DEVICE( coco_snapshot_getinfo ) -SYSTEM_CONFIG_END - -/* These have to be split up, as the CoCo has a bitbanger */ -/* where the Dragon has a paralell printer port */ -SYSTEM_CONFIG_START( generic_dragon ) - CONFIG_DEVICE( coco_cassette_getinfo ) - CONFIG_DEVICE( coco_floppy_getinfo ) - CONFIG_DEVICE( coco_cartslot_getinfo ) - CONFIG_DEVICE( coco_snapshot_getinfo ) - CONFIG_DEVICE( dragon_printer_getinfo ) -SYSTEM_CONFIG_END - - -/* ----------------------------------------------------------------------- */ - -SYSTEM_CONFIG_START( coco ) - CONFIG_IMPORT_FROM ( generic_coco12 ) - CONFIG_RAM (4 * 1024) - CONFIG_RAM (16 * 1024) - CONFIG_RAM (32 * 1024) - CONFIG_RAM_DEFAULT (64 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(coco2) - CONFIG_IMPORT_FROM ( generic_coco12 ) - CONFIG_RAM (16 * 1024) - CONFIG_RAM_DEFAULT (64 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(coco3) - CONFIG_IMPORT_FROM ( generic_coco ) - CONFIG_DEVICE( coco3_cartslot_getinfo ) - CONFIG_DEVICE( coco3_snapshot_getinfo ) - CONFIG_DEVICE( coco_vhd_device_getinfo ) - CONFIG_RAM (128 * 1024) - CONFIG_RAM_DEFAULT (512 * 1024) - CONFIG_RAM (2048 * 1024) - CONFIG_RAM (8192 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(dragon32) - CONFIG_IMPORT_FROM ( generic_dragon ) - CONFIG_RAM_DEFAULT (32 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(dragon64) - CONFIG_IMPORT_FROM ( generic_dragon ) - CONFIG_RAM_DEFAULT (64 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(d64plus) - CONFIG_IMPORT_FROM ( generic_dragon ) - CONFIG_RAM_DEFAULT (128 * 1024) // 64K normal RAM + 64K on plus board. -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(tanodr64) - CONFIG_IMPORT_FROM ( generic_dragon ) - CONFIG_RAM_DEFAULT (64 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(dgnalpha) - CONFIG_IMPORT_FROM ( generic_dragon ) - CONFIG_RAM_DEFAULT (64 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1980, coco, 0, 0, coco, coco, 0, coco, "Tandy Radio Shack", "Color Computer" , 0) -COMP( 1981, cocoe, coco, 0, coco, coco, 0, coco, "Tandy Radio Shack", "Color Computer (Extended BASIC 1.0)" , 0) -COMP( 1983, coco2, coco, 0, coco2, coco, 0, coco2, "Tandy Radio Shack", "Color Computer 2" , 0) -COMP( 1985?, coco2b, coco, 0, coco2b, coco, 0, coco2, "Tandy Radio Shack", "Color Computer 2B" , 0) -COMP( 1986, coco3, coco, 0, coco3, coco3, 0, coco3, "Tandy Radio Shack", "Color Computer 3 (NTSC)" , 0) -COMP( 1986, coco3p, coco, 0, coco3p, coco3, 0, coco3, "Tandy Radio Shack", "Color Computer 3 (PAL)" , 0) -COMP( 19??, coco3h, coco, 0, coco3h, coco3, 0, coco3, "Tandy Radio Shack", "Color Computer 3 (NTSC; HD6309)", GAME_COMPUTER_MODIFIED) -COMP( 1982, dragon32, coco, 0, dragon32, dragon32, 0, dragon32, "Dragon Data Ltd", "Dragon 32" , 0) -COMP( 1983, dragon64, coco, 0, dragon64, dragon32, 0, dragon64, "Dragon Data Ltd", "Dragon 64" , 0) -COMP( 1983, d64plus, coco, 0, d64plus, dragon32, 0, d64plus, "Dragon Data Ltd", "Dragon 64 Plus" , 0) -COMP( 1983, tanodr64, coco, 0, tanodr64, dragon32, 0, tanodr64, "Dragon Data Ltd/Tano Ltd","Tano Dragon 64 (NTSC)" , 0) -COMP( 1984, dgnalpha, coco, 0, dgnalpha, dragon32, 0, dgnalpha, "Dragon Data Ltd", "Dragon Alpha Prototype" , 0) -COMP( 1984, cp400, coco, 0, coco, coco, 0, coco, "Prologica", "CP400" , 0) diff --git a/mess/systems/coleco.c b/mess/systems/coleco.c deleted file mode 100644 index 4642cd54d..000000000 --- a/mess/systems/coleco.c +++ /dev/null @@ -1,294 +0,0 @@ -/*************************************************************************** - - coleco.c - - Driver file to handle emulation of the Colecovision. - - Marat Fayzullin (ColEm source) - Marcel de Kogel (AdamEm source) - Mike Balfour - Ben Bruscella - Sean Young - - NEWS: - - Modified memory map, now it has only 1k of RAM mapped on 8k Slot - - Modified I/O map, now it is handled as on a real ColecoVision: - The I/O map is broken into 4 write and 4 read ports: - 80-9F (W) = Set both controllers to keypad mode - 80-9F (R) = Not Connected - - A0-BF (W) = Video Chip (TMS9928A), A0=0 -> Write Register 0 , A0=1 -> Write Register 1 - A0-BF (R) = Video Chip (TMS9928A), A0=0 -> Read Register 0 , A0=1 -> Read Register 1 - - C0-DF (W) = Set both controllers to joystick mode - C0-DF (R) = Not Connected - - E0-FF (W) = Sound Chip (SN76496) - E0-FF (R) = Read Controller data, A1=0 -> read controller 1, A1=1 -> read controller 2 - - - Modified paddle handler, now it is handled as on a real ColecoVision - - Added support for a Driving Controller (Expansion Module #2), enabled via configuration - - Added support for a Roller Controller (Trackball), enabled via configuration - - Added support for two Super Action Controller, enabled via configuracion - - EXTRA CONTROLLERS INFO: - - -Driving Controller (Expansion Module #2). It consist of a steering wheel and a gas pedal. Only one - can be used on a real ColecoVision. The gas pedal is not analog, internally it is just a switch. - On a real ColecoVision, when the Driving Controller is enabled, the controller 1 do not work because - have been replaced by the Driving Controller, and controller 2 have to be used to start game, gear - shift, etc. - Driving Controller is just a spinner on controller 1 socket similar to the one on Roller Controller - and Super Action Controllers so you can use Roller Controller or Super Action Controllers to play - games requiring Driving Controller. - - -Roller Controller. Basically a trackball with four buttons (the two fire buttons from player 1 and - the two fire buttons from player 2). Only one Roller Controller can be used on a real ColecoVision. - Roller Controller is connected to both controller sockets and both controllers are conected to the Roller - Controller, it uses the spinner pins of both sockets to generate the X and Y signals (X from controller 1 - and the Y from controller 2) - - -Super Action Controllers. It is a hand controller with a keypad, four buttons (the two from - the player pad and two more), and a spinner. This was made primarily for two player sport games, but - will work for every other ColecoVision game. - -***************************************************************************/ - -#include "driver.h" -#include "sound/sn76496.h" -#include "vidhrdw/tms9928a.h" -#include "includes/coleco.h" -#include "devices/cartslot.h" - -READ8_HANDLER(coleco_video_r) -{ - return ((offset & 0x01) ? TMS9928A_register_r(1) : TMS9928A_vram_r(0)); -} - -WRITE8_HANDLER(coleco_video_w) -{ - (offset & 0x01) ? TMS9928A_register_w(1, data) : TMS9928A_vram_w(0, data); -} - -static ADDRESS_MAP_START( coleco_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x5fff) AM_NOP - AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( coleco_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x9f) AM_WRITE(coleco_paddle_toggle_off) - AM_RANGE(0xa0, 0xbf) AM_READWRITE(coleco_video_r, coleco_video_w) - AM_RANGE(0xc0, 0xdf) AM_WRITE(coleco_paddle_toggle_on) - AM_RANGE(0xe0, 0xff) AM_READWRITE(coleco_paddle_r, SN76496_0_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( coleco ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0 (pad 1)") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1 (pad 1)") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2 (pad 1)") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3 (pad 1)") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4 (pad 1)") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5 (pad 1)") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6 (pad 1)") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7 (pad 1)") PORT_CODE(KEYCODE_7) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8 (pad 1)") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9 (pad 1)") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("# (pad 1)") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(". (pad 1)") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0 (pad 2)") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1 (pad 2)") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2 (pad 2)") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3 (pad 2)") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4 (pad 2)") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5 (pad 2)") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6 (pad 2)") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7 (pad 2)") PORT_CODE(KEYCODE_7_PAD) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8 (pad 2)") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9 (pad 2)") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("# (pad 2)") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(". (pad 2)") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN6") - PORT_DIPNAME( 0x07, 0x00, "Extra Controllers" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x01, "Driving Controller" ) - PORT_DIPSETTING( 0x02, "Roller Controller" ) - PORT_DIPSETTING( 0x04, "Super Action Controllers" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("SAC Blue Button P1") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("SAC Purple Button P1") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("SAC Blue Button P2") PORT_CODE(KEYCODE_Q) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("SAC Purple Button P2") PORT_CODE(KEYCODE_W) PORT_PLAYER(2) - - PORT_START_TAG("IN7") // Extra Controls (Driving Controller, SAC P1 slider, Roller Controller X Axis) - PORT_BIT( 0x0f, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_MINMAX(0, 0) PORT_CODE_DEC(KEYCODE_L) PORT_CODE_INC(KEYCODE_J) PORT_RESET - - PORT_START_TAG("IN8") // Extra Controls (SAC P2 slider, Roller Controller Y Axis) - PORT_BIT( 0x0f, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_MINMAX(0, 0) PORT_CODE_DEC(KEYCODE_I) PORT_CODE_INC(KEYCODE_K) PORT_RESET PORT_PLAYER(2) -INPUT_PORTS_END - - - -/*************************************************************************** - - The interrupts come from the vdp. The vdp (tms9928a) interrupt can go up - and down; the Coleco only uses nmi interrupts (which is just a pulse). They - are edge-triggered: as soon as the vdp interrupt line goes up, an interrupt - is generated. Nothing happens when the line stays up or goes down. - - To emulate this correctly, we set a callback in the tms9928a (they - can occur mid-frame). At every frame we call the TMS9928A_interrupt - because the vdp needs to know when the end-of-frame occurs, but we don't - return an interrupt. - -***************************************************************************/ - -extern int JoyStat[2]; - -static INTERRUPT_GEN( coleco_interrupt ) -{ - TMS9928A_interrupt(); -} - -static void coleco_vdp_interrupt (int state) -{ - static int last_state = 0; - - // only if it goes up - if (state && !last_state) cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - last_state = state; -} - -void paddle_callback (int param) -{ - int port7 = readinputportbytag("IN7"); - int port8 = readinputportbytag("IN8"); - - if (port7 == 0) - JoyStat[0] = 0; - else if (port7 & 0x08) - JoyStat[0] = -1; - else - JoyStat[0] = 1; - - if (port8 == 0) - JoyStat[1] = 0; - else if (port8 & 0x08) - JoyStat[1] = -1; - else - JoyStat[1] = 1; - - if (JoyStat[0] || JoyStat[1]) - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static const TMS9928a_interface tms9928a_interface = -{ - TMS99x8A, - 0x4000, - 0, 0, - coleco_vdp_interrupt -}; - -static MACHINE_START( coleco ) -{ - TMS9928A_configure(&tms9928a_interface); - return 0; -} - -static MACHINE_RESET(coleco) -{ - cpunum_set_input_line_vector(0, 0, 0xff); - memset(&memory_region(REGION_CPU1)[0x6000], 0xff, 0x400); // initialize RAM - timer_pulse(TIME_IN_MSEC(20), 0, paddle_callback); -} - -static MACHINE_DRIVER_START( coleco ) - // basic machine hardware - MDRV_CPU_ADD(Z80, 7159090/2) // 3.579545 MHz - MDRV_CPU_PROGRAM_MAP(coleco_map, 0) - MDRV_CPU_IO_MAP(coleco_io_map, 0) - MDRV_CPU_VBLANK_INT(coleco_interrupt, 1) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(coleco) - MDRV_MACHINE_RESET(coleco) - - // video hardware - MDRV_IMPORT_FROM(tms9928a) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 7159090/2) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -ROM_START (coleco) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "coleco.rom", 0x0000, 0x2000, CRC(3aa93ef3) SHA1(45bedc4cbdeac66c7df59e9e599195c778d86a92) ) - ROM_CART_LOAD(0, "rom\0col\0bin\0", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START (colecoa) - // differences to 0x3aa93ef3 modified characters, added a pad 2 related fix - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "colecoa.rom", 0x0000, 0x2000, CRC(39bb16fc) SHA1(99ba9be24ada3e86e5c17aeecb7a2d68c5edfe59) ) - ROM_CART_LOAD(0, "rom\0col\0bin\0", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START (colecob) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "svi603.rom", 0x0000, 0x2000, CRC(19e91b82) SHA1(8a30abe5ffef810b0f99b86db38b1b3c9d259b78) ) - ROM_CART_LOAD(0, "rom\0col\0bin\0", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -static void coleco_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_VERIFY: info->imgverify = coleco_cart_verify; break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(coleco) - CONFIG_DEVICE(coleco_cartslot_getinfo) -SYSTEM_CONFIG_END - -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME -CONS( 1982, coleco, 0, 0, coleco, coleco, 0, coleco, "Coleco", "ColecoVision" , 0) -CONS( 1982, colecoa, coleco, 0, coleco, coleco, 0, coleco, "Coleco", "ColecoVision (Thick Characters)" , 0) -CONS( 1983, colecob, coleco, 0, coleco, coleco, 0, coleco, "Spectravideo", "SVI-603 Coleco Game Adapter" , 0) diff --git a/mess/systems/compis.c b/mess/systems/compis.c deleted file mode 100644 index 42dc8af77..000000000 --- a/mess/systems/compis.c +++ /dev/null @@ -1,273 +0,0 @@ -/****************************************************************************** - - systems/compis.c - machine driver - - Per Ola Ingvarsson - Tomas Karlsson - - Hardware: - - Intel 80186 CPU 8MHz, integrated DMA(8237?), PIC(8259?), PIT(8253?) - - Intel 80130 OSP Operating system processor (PIC 8259, PIT 8254) - - Intel 8274 MPSC Multi-protocol serial communications controller (NEC 7201) - - Intel 8255 PPI Programmable peripheral interface - - Intel 8253 PIT Programmable interval timer - - Intel 8251 USART Universal synchronous asynchronous receiver transmitter - - National 58174 Real-time clock (compatible with 58274) - Peripheral: - - Intel 82720 GDC Graphic display processor (NEC uPD 7220) - - Intel 8272 FDC Floppy disk controller (Intel iSBX-218A) - - Western Digital WD1002-05 Winchester controller - - Memory map: - - 00000-3FFFF RAM LMCS (Low Memory Chip Select) - 40000-4FFFF RAM MMCS 0 (Midrange Memory Chip Select) - 50000-5FFFF RAM MMCS 1 (Midrange Memory Chip Select) - 60000-6FFFF RAM MMCS 2 (Midrange Memory Chip Select) - 70000-7FFFF RAM MMCS 3 (Midrange Memory Chip Select) - 80000-EFFFF NOP - F0000-FFFFF ROM UMCS (Upper Memory Chip Select) - - ******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/i82720.h" -#include "includes/compis.h" -#include "devices/mflopimg.h" -#include "devices/printer.h" -#include "formats/cpis_dsk.h" -#include "cpuintrf.h" - -static ADDRESS_MAP_START( compis_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x00000, 0x3ffff) AM_RAM - AM_RANGE( 0x40000, 0x4ffff) AM_RAM - AM_RANGE( 0x50000, 0x5ffff) AM_RAM - AM_RANGE( 0x60000, 0x6ffff) AM_RAM - AM_RANGE( 0x70000, 0x7ffff) AM_RAM - AM_RANGE( 0x80000, 0xeffff) AM_NOP - AM_RANGE( 0xf0000, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( compis_io, ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x0001, 0x0008) AM_READWRITE( compis_ppi_r, compis_ppi_w ) /* PPI 8255 */ - AM_RANGE( 0x0080, 0x0087) AM_READWRITE( compis_pit_r, compis_pit_w ) /* PIT 8253 */ - AM_RANGE( 0x0100, 0x011a) AM_READWRITE( compis_rtc_r, compis_rtc_w ) /* RTC 58174 */ - AM_RANGE( 0x0280, 0x0282) AM_READWRITE( compis_osp_pic_r, compis_osp_pic_w ) /* PIC 8259 (80150/80130) */ -// AM_RANGE( 0x0288, 0x028e) AM_READWRITE( compis_osp_pit_r, compis_osp_pit_w ) /* PIT 8254 (80150/80130) */ - AM_RANGE( 0x0311, 0x031f) AM_READWRITE( compis_usart_r, compis_usart_w ) /* USART 8251 Keyboard */ - AM_RANGE( 0x0330, 0x033e) AM_READWRITE( compis_gdc_r, compis_gdc_w ) /* GDC 82720 PCS6:6 */ - AM_RANGE( 0x0340, 0x0342) AM_READWRITE( compis_fdc_r, compis_fdc_w ) /* iSBX0 (J8) FDC 8272 */ - AM_RANGE( 0x0351, 0x0351) AM_READ( compis_fdc_dack_r) /* iSBX0 (J8) DMA ACK */ - AM_RANGE( 0xff00, 0xffff) AM_READWRITE( i186_internal_port_r, i186_internal_port_w)/* CPU 80186 */ -//{ 0x0100, 0x017e, compis_null_r }, /* RTC */ -//{ 0x0180, 0x01ff, compis_null_r }, /* PCS3? */ -//{ 0x0200, 0x027f, compis_null_r }, /* Reserved */ -//{ 0x0280, 0x02ff, compis_null_r }, /* 80150 not used? */ -//{ 0x0300, 0x0300, compis_null_r }, /* Cassette motor */ -//{ 0x0301, 0x030f, compis_null_r}, /* DMA ACK Graphics */ -//{ 0x0310, 0x031e, compis_null_r }, /* SCC 8274 Int Ack */ -//{ 0x0320, 0x0320, compis_null_r }, /* SCC 8274 Serial port */ -//{ 0x0321, 0x032f, compis_null_r }, /* DMA Terminate */ -//{ 0x0331, 0x033f, compis_null_r }, /* DMA Terminate */ -//{ 0x0341, 0x034f, compis_null_r }, /* J8 CS1 (16-bit) */ -//{ 0x0350, 0x035e, compis_null_r }, /* J8 CS1 (8-bit) */ -//{ 0x0360, 0x036e, compis_null_r }, /* J9 CS0 (8/16-bit) */ -//{ 0x0361, 0x036f, compis_null_r }, /* J9 CS1 (16-bit) */ -//{ 0x0370, 0x037e, compis_null_r }, /* J9 CS1 (8-bit) */ -//{ 0x0371, 0x037f, compis_null_r }, /* J9 CS1 (8-bit) */ -//{ 0xff20, 0xffff, compis_null_r }, /* CPU 80186 */ -ADDRESS_MAP_END - -/* COMPIS Keyboard */ -INPUT_PORTS_START (compis) - PORT_START /* 0 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 /") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 =") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+ ?") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC2\xB4 `") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) - - PORT_START /* 1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\xA5 \xC3\x85") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\xBC \xC3\x9C") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) - - PORT_START /* 2 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\xB6 \xC3\x96") PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\xA4 \xC3\x84") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("'' *") PORT_CODE(KEYCODE_TILDE) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("< >") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - - PORT_START /* 3 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". :") PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LSSHIFT") PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LCTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RCTRL") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RSSHIFT") PORT_CODE(KEYCODE_RALT) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INPASSA") PORT_CODE(KEYCODE_INSERT) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S\xC3\x96K") PORT_CODE(KEYCODE_PRTSCR) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UTPL\xC3\x85NA") PORT_CODE(KEYCODE_DEL) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("START-STOP") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) - - PORT_START /* 4 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("AVBRYT") PORT_CODE(KEYCODE_SCRLOCK) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TABL") PORT_CODE(KEYCODE_PGUP) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TABR") PORT_CODE(KEYCODE_PGDN) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COMPIS !") PORT_CODE(KEYCODE_F3) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COMPIS ?") PORT_CODE(KEYCODE_F4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COMPIS |") PORT_CODE(KEYCODE_F5) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COMPIS S") PORT_CODE(KEYCODE_NUMLOCK) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 7") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 8") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 9") PORT_CODE(KEYCODE_9_PAD) - - PORT_START /* 5 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 4") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 5") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 6") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 1") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 2") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 3") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 0") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 00") PORT_CODE(KEYCODE_SLASH_PAD) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP 000") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP ENTER") PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP ,") PORT_CODE(KEYCODE_DEL_PAD) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP -") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KP +") PORT_CODE(KEYCODE_PLUS_PAD) - - PORT_START /* 6 */ - PORT_DIPNAME( 0x18, 0x00, "S8 Test mode") - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, "Remote" ) - PORT_DIPSETTING( 0x10, "Stand alone" ) - PORT_DIPSETTING( 0x18, "Reserved" ) - - PORT_START /* 7 */ - PORT_DIPNAME( 0x01, 0x00, "iSBX-218A DMA") - PORT_DIPSETTING( 0x01, "Enabled" ) - PORT_DIPSETTING( 0x00, "Disabled" ) -INPUT_PORTS_END - -static unsigned i86_address_mask = 0x000fffff; - -static const compis_gdc_interface i82720_interface = -{ - GDC_MODE_HRG, - 0x8000 -}; - -static MACHINE_DRIVER_START( compis ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", I186, 8000000) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(compis_mem, 0) - MDRV_CPU_IO_MAP(compis_io, 0) - MDRV_CPU_VBLANK_INT(compis_vblank_int, 1) - MDRV_CPU_CONFIG(i86_address_mask) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET(compis) - - MDRV_COMPISGDC( &i82720_interface ) - -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START (compis) - ROM_REGION (0x100000, REGION_CPU1, 0) - ROM_LOAD ("compis.rom", 0xf0000, 0x10000, CRC(89877688) SHA1(7daa1762f24e05472eafc025879da90fe61d0225)) -ROM_END - -static void compis_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void compis_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_compis; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(compis) - CONFIG_DEVICE(compis_printer_getinfo) - CONFIG_DEVICE(compis_floppy_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP(1985, compis, 0, 0, compis, compis, compis, compis, "Telenova", "Compis" , 0) diff --git a/mess/systems/concept.c b/mess/systems/concept.c deleted file mode 100644 index 788dee1e2..000000000 --- a/mess/systems/concept.c +++ /dev/null @@ -1,337 +0,0 @@ -/* - Corvus Concept driver - - Relatively simple 68k-based system - - * 256 or 512 kbytes of DRAM - * 4kbytes of SRAM - * 8kbyte boot ROM - * optional MacsBugs ROM - * two serial ports, keyboard, bitmapped display, simple sound, omninet - LAN port (seems more or less similar to AppleTalk) - * 4 expansion ports enable to add expansion cards, namely floppy disk - and hard disk controllers (the expansion ports are partially compatible - with Apple 2 expansion ports) - - Video: monochrome bitmapped display, 720*560 visible area (bitmaps are 768 - pixels wide in memory). One interesting feature is the fact that the - monitor can be rotated to give a 560*720 vertical display (you need to - throw a switch and reset the machine for the display rotation to be taken - into account, though). One oddity is that the video hardware scans the - display from the lower-left corner to the upper-left corner (or from the - upper-right corner to the lower-left if the screen is flipped). - Sound: simpler buzzer connected to the via shift register - Keyboard: intelligent controller, connected through an ACIA. See CCOS - manual pp. 76 through 78. and User Guide p. 2-1 through 2-9. - Clock: mm58174 RTC - - Raphael Nabet, Brett Wyer, 2003-2005 -*/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/concept.h" -#include "devices/mflopimg.h" -#include "formats/basicdsk.h" -#include "devices/harddriv.h" - -static ADDRESS_MAP_START(concept_memmap, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x000000, 0x000007) AM_ROM AM_REGION(REGION_CPU1, 0x010000) /* boot ROM mirror */ - AM_RANGE(0x000008, 0x000fff) AM_RAM /* static RAM */ - AM_RANGE(0x010000, 0x011fff) AM_ROM AM_REGION(REGION_CPU1, 0x010000) /* boot ROM */ - AM_RANGE(0x020000, 0x021fff) AM_ROM /* macsbugs ROM (optional) */ - AM_RANGE(0x030000, 0x03ffff) AM_READWRITE(concept_io_r,concept_io_w) /* I/O space */ - - AM_RANGE(0x080000, 0x0fffff) AM_RAM AM_BASE(&videoram16)/* AM_RAMBANK(2) */ /* DRAM */ -ADDRESS_MAP_END - -/* init with simple, fixed, B/W palette */ -/* Is the palette black on white or white on black??? */ -static PALETTE_INIT( concept ) -{ - palette_set_color(machine, 0, 0xff, 0xff, 0xff); - palette_set_color(machine, 1, 0x00, 0x00, 0x00); -} - -/* concept machine */ -static MACHINE_DRIVER_START( concept ) - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8182000) /* 16.364 Mhz / 2 */ - MDRV_CPU_PROGRAM_MAP(concept_memmap, 0) - MDRV_CPU_VBLANK_INT(concept_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) /* 50 or 60, jumper-selectable */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - MDRV_MACHINE_RESET(concept) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(720, 560) - MDRV_SCREEN_VISIBLE_AREA(0, 720-1, 0, 560-1) - MDRV_PALETTE_LENGTH(2) - MDRV_COLORTABLE_LENGTH(2) - MDRV_PALETTE_INIT(concept) - - MDRV_VIDEO_START(concept) - MDRV_VIDEO_UPDATE(concept) - - /* no sound? */ -MACHINE_DRIVER_END - - -INPUT_PORTS_START( concept ) - - PORT_START /* port 0: keys 0x00 through 0x0f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(right)") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(left)") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(down)") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD) - - PORT_START /* port 1: keys 0x10 through 0x1f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) - - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) - - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_BACKSLASH2) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT (r)") PORT_CODE(KEYCODE_RSHIFT) - - PORT_START /* port 2: keys 0x20 through 0x2f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) - - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - - PORT_START /* port 3: keys 0x30 through 0x3f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT (l)") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - - PORT_START /* port 4: keys 0x40 through 0x4f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CONTROL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("FAST") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("COMMAND") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(space)") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ALT") PORT_CODE(KEYCODE_RALT) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("00") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_DEL_PAD) - - PORT_START /* port 5: keys 0x50 through 0x5f */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(up)") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("???") PORT_CODE(KEYCODE_SLASH_PAD) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_PAUSE) - - PORT_START /* port 6: on-board DIP switches */ - PORT_DIPNAME(0x01, 0x00, "Omninet Address bit 0") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x01, DEF_STR( On )) - PORT_DIPNAME(0x02, 0x02, "Omninet Address bit 1") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x02, DEF_STR( On )) - PORT_DIPNAME(0x04, 0x00, "Omninet Address bit 2") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x04, DEF_STR( On )) - PORT_DIPNAME(0x08, 0x00, "Omninet Address bit 3") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x08, DEF_STR( On )) - PORT_DIPNAME(0x10, 0x00, "Omninet Address bit 4") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x10, DEF_STR( On )) - PORT_DIPNAME(0x20, 0x00, "Omninet Address bit 5") - PORT_DIPSETTING(0x00, DEF_STR( Off )) - PORT_DIPSETTING(0x20, DEF_STR( On )) - PORT_DIPNAME(0xc0, 0x00, "Type of Boot") - PORT_DIPSETTING(0x00, "Prompt fo type of Boot") // Documentation has 0x00 and 0xc0 reversed per boot PROM - PORT_DIPSETTING(0x40, "Boot from Omninet") - PORT_DIPSETTING(0x80, "Boot from Local Disk") - PORT_DIPSETTING(0xc0, "Boot from Diskette") - -#if 0 - PORT_START /* port 7: Display orientation */ - PORT_DIPNAME(0x01, 0x00, "Screen Orientation") - PORT_DIPSETTING(0x00, "Horizontal") - PORT_DIPSETTING(0x01, "Vertical") -#endif - -INPUT_PORTS_END - - -ROM_START( concept ) - ROM_REGION16_BE(0x100000,REGION_CPU1,0) /* 68k rom and ram */ - - // concept boot ROM -#if 0 - // version 0 level 6 release - ROM_LOAD16_BYTE("bootl06h", 0x010000, 0x1000, CRC(66b6b259)) - ROM_LOAD16_BYTE("bootl06l", 0x010001, 0x1000, CRC(600940d3)) -#elif 0 - // version 1 lvl 7 release - ROM_LOAD16_BYTE("bootl17h", 0x010000, 0x1000, CRC(6dd9718f)) - ROM_LOAD16_BYTE("bootl17l", 0x010001, 0x1000, CRC(107a3830)) -#elif 1 - // version 0 lvl 8 release - ROM_LOAD16_BYTE("bootl08h", 0x010000, 0x1000, CRC(ee479f51) SHA1(b20ba18564672196076e46507020c6d69a640a2f)) - ROM_LOAD16_BYTE("bootl08l", 0x010001, 0x1000, CRC(acaefd07) SHA1(de0c7eaacaf4c0652aa45e523cebce2b2993c437)) -#else - // version $F lvl 8 (development version found on a floppy disk along with - // the source code) - ROM_LOAD16_WORD("cc.prm", 0x010000, 0x2000, CRC(b5a87dab) SHA1(0da59af6cfeeb38672f71731527beac323d9c3d6)) -#endif - -#if 0 - // only known MACSbug release for the concept, with reset vector and - // entry point (the reset vector seems to be bogus: is the ROM dump bad, - // or were the ROMs originally loaded with buggy code?) - ROM_LOAD16_BYTE("macsbugh", 0x020000, 0x1000, CRC(aa357112)) - ROM_LOAD16_BYTE("macsbugl", 0x020001, 0x1000, CRC(b4b59de9)) -#endif - -ROM_END - - -static FLOPPY_OPTIONS_START(concept) -#if 1 - /* SSSD 8" */ - FLOPPY_OPTION(concept, "img\0", "Corvus Concept 8\" SSSD disk image", basicdsk_identify_default, basicdsk_construct_default, - HEADS([1]) - TRACKS([77]) - SECTORS([26]) - SECTOR_LENGTH([128]) - FIRST_SECTOR_ID([1])) -#elif 0 - /* SSDD 8" (according to ROMs) */ - FLOPPY_OPTION(concept, "img\0", "Corvus Concept 8\" SSDD disk image", basicdsk_identify_default, basicdsk_construct_default, - HEADS([1]) - TRACKS([77]) - SECTORS([26]) - SECTOR_LENGTH([256]) - FIRST_SECTOR_ID([1])) -#elif 0 - /* Apple II DSDD 5"1/4 (according to ROMs) */ - FLOPPY_OPTION(concept, "img\0", "Corvus Concept Apple II 5\"1/4 DSDD disk image", basicdsk_identify_default, basicdsk_construct_default, - HEADS([2]) - TRACKS([35]) - SECTORS([16]) - SECTOR_LENGTH([256]) - FIRST_SECTOR_ID([1])) -#elif 0 - /* actual formats found */ - FLOPPY_OPTION(concept, "img\0", "Corvus Concept 5\"1/4 DSDD disk image (256-byte sectors)", basicdsk_identify_default, basicdsk_construct_default, - HEADS([2]) - TRACKS([80]) - SECTORS([16]) - SECTOR_LENGTH([256]) - FIRST_SECTOR_ID([1])) -#else - FLOPPY_OPTION(concept, "img\0", "Corvus Concept 5\"1/4 DSDD disk image (512-byte sectors)", basicdsk_identify_default, basicdsk_construct_default, - HEADS([2]) - TRACKS([80]) - SECTORS([9]) - SECTOR_LENGTH([512]) - FIRST_SECTOR_ID([1])) -#endif -FLOPPY_OPTIONS_END - -static void concept_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_concept; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void concept_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* Hard Drive */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: harddisk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(concept) - /* The concept should eventually support floppies, hard disks, etc. */ - CONFIG_DEVICE(concept_floppy_getinfo) - CONFIG_DEVICE(concept_harddisk_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, concept, 0, 0, concept, concept, 0, concept, "Corvus Systems", "Concept" , 0) diff --git a/mess/systems/coupe.c b/mess/systems/coupe.c deleted file mode 100644 index aad8f5294..000000000 --- a/mess/systems/coupe.c +++ /dev/null @@ -1,479 +0,0 @@ -/*************************************************************************** - - SAM Coupe Driver - Written By Lee Hammerton - - - Sam Coupe Memory Map - Based around the current spectrum.c (for obvious reasons!!) - - CPU: - 0000-7fff Banked rom/ram - 8000-ffff Banked rom/ram - - -Interrupts: - -Changes: - - V0.2 - Added FDC support. - Based on 1771 document. Coupe had a 1772... (any difference?) - floppy supports only read sector single mode at present will add write sector - in next version. - Fixed up palette - had red & green wrong way round. - - - KT 26-Aug-2000 - Changed to use wd179x code. This is the same as the 1772. - - Coupe supports the basic disk image format, but can be changed in - the future to support others -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/coupe.h" -#include "machine/wd17xx.h" -#include "devices/basicdsk.h" -#include "sound/saa1099.h" -#include "sound/speaker.h" - -ADDRESS_MAP_START( coupe_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x3FFF) AM_RAMBANK(1) - AM_RANGE( 0x4000, 0x7FFF) AM_RAMBANK(2) - AM_RANGE( 0x8000, 0xBFFF) AM_RAMBANK(3) - AM_RANGE( 0xC000, 0xFFFF) AM_RAMBANK(4) -ADDRESS_MAP_END - -static INTERRUPT_GEN( coupe_line_interrupt ) -{ - mame_bitmap *bitmap = tmpbitmap; - int interrupted=0; /* This is used to allow me to clear the STAT flag (easiest way I can do it!) */ - - HPEN = CURLINE; - - if (LINE_INT<192) - { - if (CURLINE == LINE_INT) - { - /* No other interrupts can occur - NOT CORRECT!!! */ - STAT=0x1E; - cpunum_set_input_line(0, 0, PULSE_LINE); - interrupted=1; - } - } - - /* scan line on screen so draw last scan line (may need to alter this slightly!!) */ - if (CURLINE && (CURLINE-1) < 192) - { - switch ((VMPR & 0x60)>>5) - { - case 0: /* mode 1 */ - drawMode1_line(bitmap,(CURLINE-1)); - break; - case 1: /* mode 2 */ - drawMode2_line(bitmap,(CURLINE-1)); - break; - case 2: /* mode 3 */ - drawMode3_line(bitmap,(CURLINE-1)); - break; - case 3: /* mode 4 */ - drawMode4_line(bitmap,(CURLINE-1)); - break; - } - } - - CURLINE = (CURLINE + 1) % (192+10); - - if (CURLINE == 193) - { - if (interrupted) - STAT&=~0x08; - else - STAT=0x17; - - cpunum_set_input_line(0, 0, PULSE_LINE); - interrupted=1; - } - - if (!interrupted) - STAT=0x1F; -} - -static unsigned char getSamKey1(unsigned char hi) -{ - unsigned char result; - - hi=~hi; - result=0xFF; - - if (hi==0x00) - result &=readinputport(8) & 0x1F; - else - { - if (hi&0x80) result &= readinputport(7) & 0x1F; - if (hi&0x40) result &= readinputport(6) & 0x1F; - if (hi&0x20) result &= readinputport(5) & 0x1F; - if (hi&0x10) result &= readinputport(4) & 0x1F; - if (hi&0x08) result &= readinputport(3) & 0x1F; - if (hi&0x04) result &= readinputport(2) & 0x1F; - if (hi&0x02) result &= readinputport(1) & 0x1F; - if (hi&0x01) result &= readinputport(0) & 0x1F; - } - - return result; -} - -static unsigned char getSamKey2(unsigned char hi) -{ - unsigned char result; - - hi=~hi; - result=0xFF; - - if (hi==0x00) - { - /* does not map to any keys? */ - } - else - { - if (hi&0x80) result &= readinputport(7) & 0xE0; - if (hi&0x40) result &= readinputport(6) & 0xE0; - if (hi&0x20) result &= readinputport(5) & 0xE0; - if (hi&0x10) result &= readinputport(4) & 0xE0; - if (hi&0x08) result &= readinputport(3) & 0xE0; - if (hi&0x04) result &= readinputport(2) & 0xE0; - if (hi&0x02) result &= readinputport(1) & 0xE0; - if (hi&0x01) result &= readinputport(0) & 0xE0; - } - - return result; -} - - -static READ8_HANDLER( coupe_port_r ) -{ - if (offset==SSND_ADDR) /* Sound address request */ - return SOUND_ADDR; - - if (offset==HPEN_PORT) - return HPEN; - - switch (offset & 0xFF) - { - case DSK1_PORT+0: /* This covers the total range of ports for 1 floppy controller */ - case DSK1_PORT+4: - wd179x_set_side((offset >> 2) & 1); - return wd179x_status_r(0); - case DSK1_PORT+1: - case DSK1_PORT+5: - wd179x_set_side((offset >> 2) & 1); - return wd179x_track_r(0); - case DSK1_PORT+2: - case DSK1_PORT+6: - wd179x_set_side((offset >> 2) & 1); - return wd179x_sector_r(0); - case DSK1_PORT+3: - case DSK1_PORT+7: - wd179x_set_side((offset >> 2) & 1); - return wd179x_data_r(0); - case LPEN_PORT: - return LPEN; - case STAT_PORT: - return ((getSamKey2((offset >> 8)&0xFF))&0xE0) | STAT; - case LMPR_PORT: - return LMPR; - case HMPR_PORT: - return HMPR; - case VMPR_PORT: - return VMPR; - case KEYB_PORT: - return (getSamKey1((offset >> 8)&0xFF)&0x1F) | 0xE0; - case SSND_DATA: - return SOUND_REG[SOUND_ADDR]; - default: - logerror("Read Unsupported Port: %04x\n", offset); - break; - } - - return 0x0ff; -} - - -static WRITE8_HANDLER( coupe_port_w ) -{ - if (offset==SSND_ADDR) // Set sound address - { - SOUND_ADDR=data&0x1F; // 32 registers max - saa1099_control_port_0_w(0, SOUND_ADDR); - return; - } - - switch (offset & 0xFF) - { - case DSK1_PORT+0: // This covers the total range of ports for 1 floppy controller - case DSK1_PORT+4: - wd179x_set_side((offset >> 2) & 1); - wd179x_command_w(0, data); - break; - case DSK1_PORT+1: - case DSK1_PORT+5: - /* Track byte requested on address line */ - wd179x_set_side((offset >> 2) & 1); - wd179x_track_w(0, data); - break; - case DSK1_PORT+2: - case DSK1_PORT+6: - /* Sector byte requested on address line */ - wd179x_set_side((offset >> 2) & 1); - wd179x_sector_w(0, data); - break; - case DSK1_PORT+3: - case DSK1_PORT+7: - /* Data byte requested on address line */ - wd179x_set_side((offset >> 2) & 1); - wd179x_data_w(0, data); - break; - case CLUT_PORT: - CLUT[(offset >> 8)&0x0F]=data&0x7F; // set CLUT data - break; - case LINE_PORT: - LINE_INT=data; // Line to generate interrupt on - break; - case LMPR_PORT: - LMPR=data; - coupe_update_memory(); - break; - case HMPR_PORT: - HMPR=data; - coupe_update_memory(); - break; - case VMPR_PORT: - VMPR=data; - coupe_update_memory(); - break; - case BORD_PORT: - /* DAC output state */ - speaker_level_w(0,(data>>4) & 0x01); - break; - case SSND_DATA: - saa1099_write_port_0_w(0, data); - SOUND_REG[SOUND_ADDR] = data; - break; - default: - logerror("Write Unsupported Port: %04x,%02x\n", offset,data); - break; - } -} - -ADDRESS_MAP_START( coupe_io , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x0000, 0x0ffff) AM_READWRITE( coupe_port_r, coupe_port_w ) -ADDRESS_MAP_END - -static gfx_decode coupe_gfxdecodeinfo[] = { - {-1} -}; /* end of array */ - -INPUT_PORTS_START( coupe ) - PORT_START // FE 0 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - - PORT_START // FD 1 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) - - PORT_START // FB 2 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) - - PORT_START // F7 3 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) - - PORT_START // EF 4 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) - - PORT_START // DF 5 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\"") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F0") PORT_CODE(KEYCODE_F10) - - PORT_START // BF 6 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EDIT") PORT_CODE(KEYCODE_RALT) - - PORT_START // 7F 7 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SYMBOL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INV") PORT_CODE(KEYCODE_SLASH) - - PORT_START // FF 8 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) - -INPUT_PORTS_END - -/* Initialise the palette */ -static PALETTE_INIT( coupe ) -{ - unsigned char red,green,blue; - int a; - unsigned short coupe_colortable[128]; // 1-1 relationship to palette! - - for (a=0;a<128;a++) - { - /* decode colours for palette as follows : - * bit number 7 6 5 4 3 2 1 0 - * | | | | | | | - * nothing G+4 R+4 B+4 ALL+1 G+2 R+2 B+2 - * - * these values scaled up to 0-255 range would give modifiers of : +4 = +(4*36), +2 = +(2*36), +1 = *(1*36) - * not quite max of 255 but close enough for me! - */ - red=green=blue=0; - if (a&0x01) - blue+=2*36; - if (a&0x02) - red+=2*36; - if (a&0x04) - green+=2*36; - if (a&0x08) - { - red+=1*36; - green+=1*36; - blue+=1*36; - } - if (a&0x10) - blue+=4*36; - if (a&0x20) - red+=4*36; - if (a&0x40) - green+=4*36; - - palette_set_color(machine, a, red, green, blue); - coupe_colortable[a]=a; - } - memcpy(colortable,coupe_colortable,sizeof(coupe_colortable)); -} - - - -static MACHINE_DRIVER_START( coupe ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 6000000) /* 6 Mhz */ - MDRV_CPU_PROGRAM_MAP(coupe_mem, 0) - MDRV_CPU_IO_MAP(coupe_io, 0) - MDRV_CPU_VBLANK_INT(coupe_line_interrupt, 192 + 10) /* 192 scanlines + 10 lines of vblank (approx).. */ - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( coupe ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 24*8) - MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 24*8-1) - MDRV_GFXDECODE( coupe_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(128) - MDRV_PALETTE_INIT(coupe) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(coupe) - ROM_REGION(0x8000,REGION_CPU1,0) - ROM_LOAD("sam_rom0.rom", 0x0000, 0x4000, CRC(9954CF1A) SHA1(d92e3fd2a65dbf439d7050d9cea732a63640d567)) - ROM_LOAD("sam_rom1.rom", 0x4000, 0x4000, CRC(F031AED4) SHA1(a7f06facc6f0a3713215f4befc307914836706a4)) -ROM_END - -static void coupe_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_coupe_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(coupe) - CONFIG_RAM_DEFAULT(256 * 1024) - CONFIG_RAM(512 * 1024) - - CONFIG_DEVICE(coupe_floppy_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1989, coupe, 0, 0, coupe, coupe, 0, coupe, "Miles Gordon Technology plc", "Sam Coupe" , 0) diff --git a/mess/systems/dai.c b/mess/systems/dai.c deleted file mode 100644 index e7826a195..000000000 --- a/mess/systems/dai.c +++ /dev/null @@ -1,252 +0,0 @@ -/******************************************************************************* - -DAI driver by Krzysztof Strzecha and Nathan Woods - -What's new: ------------ -21.05.2004 TMS5501 fixes. Debug code cleanups. -06.03.2004 Stack overflow interrupt added. -05.09.2003 Rundom number generator added. Few video hardware bugs fixed. - Fixed few i8080 instructions, making much more BASIC games playable. - -Notes on emulation status and to do list: ------------------------------------------ -1. A lot to do. Too much to list. - -DAI technical information -========================== - -CPU: ----- - 8080 2MHz - - -Memory map: ------------ - 0000-bfff RAM - c000-dfff ROM (non-switchable) - e000-efff ROM (4 switchable banks) - f000-f7ff ROM extension (optional) - f800-f8ff SRAM (stack) - f900-ffff I/O - f900-faff spare - fb00-fbff AMD9511 math chip (optional) - fc00-fcff 8253 programmable interval timer - fd00-fdff discrete devices - fe00-feff 8255 PIO (DCE bus) - ff00-ffff timer + 5501 interrupt controller - -Interrupts: ------------ - - -Keyboard: ---------- - - -Video: ------ - - -Sound: ------- - - -Timings: --------- - - -*******************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/i8085/i8085.h" -#include "vidhrdw/generic.h" -#include "includes/dai.h" -#include "machine/pit8253.h" -#include "machine/8255ppi.h" -#include "machine/tms5501.h" -#include "devices/cassette.h" - -/* I/O ports */ -ADDRESS_MAP_START( dai_io , ADDRESS_SPACE_IO, 8) -ADDRESS_MAP_END - -/* memory w/r functions */ -ADDRESS_MAP_START( dai_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0xbfff) AM_RAMBANK(1) - AM_RANGE( 0xc000, 0xdfff) AM_ROM - AM_RANGE( 0xe000, 0xefff) AM_ROMBANK(2) - AM_RANGE( 0xf000, 0xf7ff) AM_WRITE( dai_stack_interrupt_circuit_w ) - AM_RANGE( 0xf800, 0xf8ff) AM_RAM - AM_RANGE( 0xfb00, 0xfbff) AM_READWRITE( amd9511_r, amd9511_w ) - AM_RANGE( 0xfc00, 0xfcff) AM_READWRITE( pit8253_0_r, pit8253_0_w ) - AM_RANGE( 0xfd00, 0xfdff) AM_READWRITE( dai_io_discrete_devices_r, dai_io_discrete_devices_w ) - AM_RANGE( 0xfe00, 0xfeff) AM_READWRITE( ppi8255_0_r, ppi8255_0_w ) - AM_RANGE( 0xff00, 0xffff) AM_READWRITE( tms5501_0_r, tms5501_0_w ) -ADDRESS_MAP_END - - -/* keyboard input */ -INPUT_PORTS_START (dai) - PORT_START /* [0] - port ff07 bit 0 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H h") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P p") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X x") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [1] - port ff07 bit 1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A a") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I i") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [2] - port ff07 bit 2 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B b") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J j") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R r") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [3] - port ff07 bit 3 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C c") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K k") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S s") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ ]") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('[') PORT_CHAR(']') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [4] - port ff07 bit 4 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D d") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L l") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T t") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('^') PORT_CHAR('~') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [5] - port ff07 bit 5 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E e") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M m") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U u") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [6] - port ff07 bit 6 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F f") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N n") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V v") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Rept") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [7] - port ff07 bit 7 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G g") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O o") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W w") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Char del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* [8] */ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_VBLANK) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT(0xcb, IP_ACTIVE_HIGH, IPT_UNUSED) -INPUT_PORTS_END - -static struct CassetteOptions dai_cassette_options = { - 1, /* channels */ - 16, /* bits per sample */ - 44100 /* sample frequency */ -}; - -/* machine definition */ -static MACHINE_DRIVER_START( dai ) - /* basic machine hardware */ - MDRV_CPU_ADD(8080, 2000000) - MDRV_CPU_PROGRAM_MAP(dai_mem, 0) - MDRV_CPU_IO_MAP(dai_io, 0) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( dai ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(1056, 542) - MDRV_SCREEN_VISIBLE_AREA(0, 1056-1, 0, 302-1) - MDRV_PALETTE_LENGTH(sizeof (dai_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (dai_colortable)) - MDRV_PALETTE_INIT( dai ) - - MDRV_VIDEO_START( dai ) - MDRV_VIDEO_UPDATE( dai ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(dai_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - -#define io_dai io_NULL - -ROM_START(dai) - ROM_REGION(0x14000,REGION_CPU1,0) - ROM_LOAD("dai.bin", 0xc000, 0x2000, CRC(ca71a7d5) SHA1(6bbe2336c717354beab2ae201debeb4fd055bdcb)) - ROM_LOAD("dai00.bin", 0x10000, 0x1000, CRC(fa7d39ac) SHA1(3d1824a1f273882f934249ef3cb1b38ef99de7b9)) - ROM_LOAD("dai01.bin", 0x11000, 0x1000, CRC(cb5809f2) SHA1(523656f0a9d98888cd3e2bd66886c589e9ae75b4)) - ROM_LOAD("dai02.bin", 0x12000, 0x1000, CRC(03f72d4a) SHA1(573d65dc82321970dcaf81d7638a02252ea18a7a)) - ROM_LOAD("dai03.bin", 0x13000, 0x1000, CRC(c475c96f) SHA1(96fc3cc4b8a2873f0d044bd8033d1e7b7197dd97)) - ROM_REGION(0x2000, REGION_GFX1,0) - ROM_LOAD ("nch.bin", 0x0000, 0x1000, CRC(a9f5b30b) SHA1(24119b2984ab4e50dc0dabae1065ff6d6c1f237d)) -ROM_END - - -static void dai_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_OPTIONS: info->p = (void *) &dai_cassette_options; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(dai) - CONFIG_RAM_DEFAULT(48 * 1024) - CONFIG_DEVICE(dai_cassette_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1978, dai, 0, 0, dai, dai, 0, dai, "Data Applications International", "DAI Personal Computer", 0) diff --git a/mess/systems/dgn_beta.c b/mess/systems/dgn_beta.c deleted file mode 100644 index 44f04efd8..000000000 --- a/mess/systems/dgn_beta.c +++ /dev/null @@ -1,386 +0,0 @@ -/*************************************************************************** - - systems\dgn_beta.c - - Dragon Beta prototype, based on two 68B09E processors, WD2797, 6845. - -Project Beta was the second machine that Dragon Data had in development at -the time they ceased trading, the first being Project Alpha (also know as the -Dragon Professional). - -The machine uses dual 68B09 cpus which both sit on the same bus and access -the same memory and IO chips ! The first is the main processor, used to run -user code, the second is uses as a DMA controler, to amongst other things -disk data transfers. The first processor controled the second by having the -halt and nmi lines from the second cpu connected to PIA output lines so -that the could be changed under OS control. The first CPU just passed -instructions for the block to be transfered in 5 low ram addresses and -generated an NMI on the second CPU. - -Project Beta like the other Dragons used a WD2797 floppy disk controler -which is memory mapped, and controled by the second CPU. - -Unlike the other Dragon machines, project Beta used a 68b45 to generate video, -and totally did away with the SAM. - -The machine has a 6551 ACIA chip, but I have not yet found where this is -memory mapped. - -Project Beta, had a custom MMU bilt from a combination of LSTTL logic, and -PAL programable logic. This MMU could address 256 blocks of 4K, giving a -total addressable range of 1 megabyte, of this the first 768KB could be RAM, -however tha machine by default, came with 256K or ram, and a 16K boot rom, -which contained an OS-9 Level 2 bootstrap. - -A lot of the infomrmation required to start work on this driver has been -infered from disassembly of the boot rom, and from what little hardware -documentation still exists. - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "machine/6821pia.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6845.h" -#include "includes/coco.h" -#include "includes/dgn_beta.h" -#include "devices/basicdsk.h" -#include "includes/6551.h" -#include "formats/coco_dsk.h" -#include "devices/mflopimg.h" -#include "devices/coco_vhd.h" - -/* - Colour codes are as below acording to os-9 headers, however the presise values - may not be quite correct, also this will need changing as the pallate seems to - be controled by a 4x4bit register file in the video hardware - The text video ram seems to be aranged of words of character, attribute - The colour codes are stored in the attribute byte along with : - Underline bit $40 - Flash bit $80 - -These are yet to be implemented. - -*/ - -unsigned char dgnbeta_palette[] = -{ - /*normal brightness */ - 0x00,0x00,0x00, /* black */ - 0x80,0x00,0x00, /* red */ - 0x00,0x80,0x00, /* green */ - 0x80,0x80,0x00, /* yellow */ - 0x00,0x00,0x80, /* blue */ - 0x80,0x00,0x80, /* magenta */ - 0x00,0x80,0x80, /* cyan */ - 0x80,0x80,0x80, /* white */ - - /*enhanced brightness*/ - 0x00,0x00,0x00, /* black */ - 0xFF,0x00,0x00, /* red */ - 0x00,0xFF,0x00, /* green */ - 0xFF,0xFF,0x00, /* yellow */ - 0x00,0x00,0xFF, /* blue */ - 0xFF,0x00,0xFF, /* magenta */ - 0x00,0xFF,0xFF, /* cyan */ - 0xFF,0xFF,0xFF /* white */ -}; - -/* - 2005-05-10 - - I *THINK* I know how the memory paging works, the 64K memory map is devided - into 16x 4K pages, what is mapped into each page is controled by the IO at - FE00-FE0F like so :- - - Location Memory page Initialised to - $FE00 $0000-$0FFF $00 - $FE01 $1000-$1FFF $00 (used as ram test page, when sizing memory) - $FE02 $2000-$2FFF $00 - $FE03 $3000-$3FFF $00 - $FE04 $4000-$4FFF $00 - $FE05 $5000-$5FFF $00 - $FE06 $6000-$6FFF $1F ($1F000) - $FE07 $7000-$7FFF $00 - $FE08 $8000-$8FFF $00 - $FE09 $9000-$9FFF $00 - $FE0A $A000-$AFFF $00 - $FE0B $B000-$BFFF $00 - $FE0C $C000-$CFFF $00 - $FE0D $D000-$DFFF $00 - $FE0E $E000-$EFFF $FE - $FE0F $F000-$FFFF $FF - - The value stored at each location maps it's page to a 4K page within a 1M address - space. Acording to the Beta product descriptions released by Dragon Data, the - machine could have up to 768K of RAM, if this where true then pages $00-$BF could - potentially be RAM, and pages $C0-$FF would be ROM. The initialisation code maps in - the memory as described above. - - At reset time the Paging would of course be disabled, as the boot rom needs to be - mapped in at $C000, the initalisation code would set up the mappings above and then - enable the paging hardware. - - It appears to be more complicated than this, whilst the above is true, there appear to - be 16 sets of banking registers, the active set is controled by the bottom 4 bits of - FCC0, bit 6 has something to do with enabling and disabling banking. - - 2005-11-28 - - The value $C0 is garanteed not to have any memory in it acording to the os9 headers, - quite how the MMU deals with this is still unknown to me. - - Bit 7 of $FCC0, sets maps in the system task which has fixed values for some pages, - the presise nature of this is yet to be descovered. - -*/ - -static ADDRESS_MAP_START( dgnbeta_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0FFF) AM_READWRITE(MRA8_BANK1 ,MWA8_BANK1) - AM_RANGE(0x1000, 0x1FFF) AM_READWRITE(MRA8_BANK2 ,MWA8_BANK2) - AM_RANGE(0x2000, 0x2FFF) AM_READWRITE(MRA8_BANK3 ,MWA8_BANK3) - AM_RANGE(0x3000, 0x3FFF) AM_READWRITE(MRA8_BANK4 ,MWA8_BANK4) - AM_RANGE(0x4000, 0x4FFF) AM_READWRITE(MRA8_BANK5 ,MWA8_BANK5) - AM_RANGE(0x5000, 0x5FFF) AM_READWRITE(MRA8_BANK6 ,MWA8_BANK6) - AM_RANGE(0x6000, 0x6FFF) AM_READWRITE(MRA8_BANK7 ,MWA8_BANK7) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x7000, 0x7FFF) AM_READWRITE(MRA8_BANK8 ,MWA8_BANK8) - AM_RANGE(0x8000, 0x8FFF) AM_READWRITE(MRA8_BANK9 ,MWA8_BANK9) - AM_RANGE(0x9000, 0x9FFF) AM_READWRITE(MRA8_BANK10 ,MWA8_BANK10) - AM_RANGE(0xA000, 0xAFFF) AM_READWRITE(MRA8_BANK11 ,MWA8_BANK11) - AM_RANGE(0xB000, 0xBFFF) AM_READWRITE(MRA8_BANK12 ,MWA8_BANK12) - AM_RANGE(0xC000, 0xCFFF) AM_READWRITE(MRA8_BANK13 ,MWA8_BANK13) - AM_RANGE(0xD000, 0xDFFF) AM_READWRITE(MRA8_BANK14 ,MWA8_BANK14) - AM_RANGE(0xE000, 0xEFFF) AM_READWRITE(MRA8_BANK15 ,MWA8_BANK15) - AM_RANGE(0xF000, 0xFBFF) AM_READWRITE(MRA8_BANK16 ,MWA8_BANK16) - AM_RANGE(0xfC00, 0xfC1F) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xFC20, 0xFC23) AM_READWRITE(pia_0_r ,pia_0_w) - AM_RANGE(0xFC24, 0xFC27) AM_READWRITE(pia_1_r ,pia_1_w) - AM_RANGE(0xFC28, 0xfC7F) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xfc80, 0xfc81) AM_READWRITE(dgnbeta_6845_r ,dgnbeta_6845_w) - AM_RANGE(0xfc82, 0xfC9F) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xFCA0, 0xFCA3) AM_READWRITE(MRA8_NOP ,colour_ram_w) /* 4x4bit colour ram for graphics modes */ - AM_RANGE(0xFCC0, 0xFCC3) AM_READWRITE(pia_2_r ,pia_2_w) - AM_RANGE(0xfcC4, 0xfcdf) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xfce0, 0xfce3) AM_READWRITE(dgnbeta_wd2797_r ,dgnbeta_wd2797_w) /* Onboard disk interface */ - AM_RANGE(0xfce4, 0xfdff) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xFE00, 0xFE0F) AM_READWRITE(dgn_beta_page_r ,dgn_beta_page_w) - AM_RANGE(0xfe10, 0xfEff) AM_READWRITE(MRA8_NOP ,MWA8_NOP) - AM_RANGE(0xFF00, 0xFFFF) AM_READWRITE(MRA8_BANK17 ,MWA8_BANK17) - -ADDRESS_MAP_END - - - -INPUT_PORTS_START( dgnbeta ) - PORT_START /* Key ROw 0 */ - /* Return shift if either shift key pressed */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - /* Return FuNction key, if either ALT key pressed */ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-ALT") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-ALT") PORT_CODE(KEYCODE_RALT) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_HOME) PORT_CHAR(12) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - - - /* Set control on either CTRL key */ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L-Ctrl") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R-Ctrl") PORT_CODE(KEYCODE_RCONTROL) - - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CapsLock") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(0x1B) - -/* PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_HOME) PORT_CHAR(12) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(0x1B) -*/ - - PORT_START /* Key row 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b") PORT_CODE(KEYCODE_B) PORT_CHAR('b') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j") PORT_CODE(KEYCODE_J) PORT_CHAR('j') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i") PORT_CODE(KEYCODE_I) PORT_CHAR('i') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u") PORT_CODE(KEYCODE_U) PORT_CHAR('u') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h") PORT_CODE(KEYCODE_H) PORT_CHAR('h') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - - PORT_START /* Key row 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n") PORT_CODE(KEYCODE_N) PORT_CHAR('n') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k") PORT_CODE(KEYCODE_K) PORT_CHAR('k') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o") PORT_CODE(KEYCODE_O) PORT_CHAR('o') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g") PORT_CODE(KEYCODE_G) PORT_CHAR('g') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - - PORT_START /* Key row 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m") PORT_CODE(KEYCODE_M) PORT_CHAR('m') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l") PORT_CODE(KEYCODE_L) PORT_CHAR('l') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p") PORT_CODE(KEYCODE_P) PORT_CHAR('p') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t") PORT_CODE(KEYCODE_T) PORT_CHAR('t') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f") PORT_CODE(KEYCODE_F) PORT_CHAR('f') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - - PORT_START /* Key row 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v") PORT_CODE(KEYCODE_V) PORT_CHAR('v') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d") PORT_CODE(KEYCODE_D) PORT_CHAR('d') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - - PORT_START /* Key row 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r") PORT_CODE(KEYCODE_R) PORT_CHAR('r') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s") PORT_CODE(KEYCODE_S) PORT_CHAR('s') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - - PORT_START /* Key row 7 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DELETE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c") PORT_CODE(KEYCODE_C) PORT_CHAR('c') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x") PORT_CODE(KEYCODE_X) PORT_CHAR('x') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - - PORT_START /* Key row 8 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ASTERISK") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('*') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_7") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR('7') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_4") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR('4') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_1") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('1') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e") PORT_CODE(KEYCODE_E) PORT_CHAR('e') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - - PORT_START /* Key row 9 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_0") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_8") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('8') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_5") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR('5') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_2") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('2') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w") PORT_CODE(KEYCODE_W) PORT_CHAR('w') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a") PORT_CODE(KEYCODE_A) PORT_CHAR('a') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - - PORT_START /* Key row 10 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_HASH") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR('#') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_9") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR('9') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_6") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('6') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAD_3") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR('3') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOT_PAD") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR('.') - - PORT_START -INPUT_PORTS_END - - -static const char *dgnbeta_floppy_getname(const struct IODevice *dev, int id, char *buf, size_t bufsize) -{ - /* Dragon people like their floppy drives zero counted */ - snprintf(buf, bufsize, "Floppy #%d", id); - return buf; -} - -static void dgnbeta_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_coco; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME+0: strcpy(info->s = device_temp_str(), "floppydisk0"); break; - case DEVINFO_STR_NAME+1: strcpy(info->s = device_temp_str(), "floppydisk1"); break; - case DEVINFO_STR_NAME+2: strcpy(info->s = device_temp_str(), "floppydisk2"); break; - case DEVINFO_STR_NAME+3: strcpy(info->s = device_temp_str(), "floppydisk3"); break; - case DEVINFO_STR_SHORT_NAME+0: strcpy(info->s = device_temp_str(), "flop0"); break; - case DEVINFO_STR_SHORT_NAME+1: strcpy(info->s = device_temp_str(), "flop1"); break; - case DEVINFO_STR_SHORT_NAME+2: strcpy(info->s = device_temp_str(), "flop2"); break; - case DEVINFO_STR_SHORT_NAME+3: strcpy(info->s = device_temp_str(), "flop3"); break; - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "Floppy #0"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "Floppy #1"); break; - case DEVINFO_STR_DESCRIPTION+2: strcpy(info->s = device_temp_str(), "Floppy #2"); break; - case DEVINFO_STR_DESCRIPTION+3: strcpy(info->s = device_temp_str(), "Floppy #3"); break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static PALETTE_INIT( dgnbeta ) -{ - palette_set_colors(machine, 0, dgnbeta_palette, sizeof(dgnbeta_palette) / 3); -} - -static MACHINE_DRIVER_START( dgnbeta ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809E, DGNBETA_CPU_SPEED_HZ) /* 2 Mhz */ - MDRV_CPU_PROGRAM_MAP(dgnbeta_map,0) - - /* both cpus in the beta share the same address/data busses */ - MDRV_CPU_ADD_TAG("dma", M6809E, DGNBETA_CPU_SPEED_HZ) /* 2 Mhz */ - MDRV_CPU_PROGRAM_MAP(dgnbeta_map,0) - - MDRV_SCREEN_REFRESH_RATE(DGNBETA_FRAMES_PER_SECOND) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(100)) - - MDRV_MACHINE_START( dgnbeta ) - - /* video hardware */ - - MDRV_SCREEN_SIZE(700,550) - MDRV_SCREEN_VISIBLE_AREA(0, 699, 0, 549) - MDRV_PALETTE_LENGTH(sizeof (dgnbeta_palette) / sizeof (dgnbeta_palette[0]) / 3) - MDRV_PALETTE_INIT( dgnbeta ) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - - MDRV_VIDEO_UPDATE( dgnbeta ) -MACHINE_DRIVER_END - -SYSTEM_BIOS_START( dgnbeta ) - SYSTEM_BIOS_ADD( 0, "bootrom", "Dragon beta OS9 boot rom (1984)" ) - SYSTEM_BIOS_ADD( 1, "testrom", "Dragon beta test rom (1984?)" ) - SYSTEM_BIOS_ADD( 2, "cfiles", "cfiles rom" ) - SYSTEM_BIOS_ADD( 3, "dfiles", "dfiles rom" ) -SYSTEM_BIOS_END - -ROM_START(dgnbeta) - ROM_REGION(0x4000,REGION_CPU1,0) - ROMX_LOAD("beta_bt.rom" ,0x0000 ,0x4000 ,CRC(4c54c1de) SHA1(141d9fcd2d187c305dff83fce2902a30072aed76), ROM_BIOS(1)) - ROMX_LOAD("beta_tst.rom" ,0x2000 ,0x2000 ,CRC(01d79d00) SHA1(343e08cf7656b5e8970514868df37ea0af1e2362), ROM_BIOS(2)) - ROMX_LOAD("beta_cfi.rom" ,0x2000 ,0x2000 ,CRC(d312e4c0) SHA1(5c00daac488eaf8d36d66de6ec6c746ab7b78ecf), ROM_BIOS(3)) - ROMX_LOAD("beta_dfi.rom" ,0x2000 ,0x2000 ,CRC(c4ad7f64) SHA1(50aa92a1c383321485d5a1aa41dfe4f90b3beaed), ROM_BIOS(4)) - - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD("betachar.rom" ,0x0000 ,0x2000 ,CRC(ca79d66c) SHA1(8e2090d471dd97a53785a7f44a49d3c8c85b41f2)) -ROM_END - -/* Ram size can now be configured, since the machine was known as either the Dragon Beta or */ -/* the Dragon 128, I have added a config for 128K, however, the only working machine known */ -/* to exist was fitted with 256K, so I have made this the default. Also available */ -/* documentation seems to sugest a maximum of 768K, so I have included configs increasing */ -/* in blocks of 128K up to this maximum. */ -SYSTEM_CONFIG_START(dgnbeta) - CONFIG_RAM(128 * 1024) - CONFIG_RAM_DEFAULT(RamSize * 1024) - CONFIG_RAM(384 * 1024) - CONFIG_RAM(512 * 1024) - CONFIG_RAM(640 * 1024) - CONFIG_RAM(768 * 1024) - CONFIG_DEVICE( dgnbeta_floppy_getinfo ) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT BIOS COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMPB( 1984, dgnbeta, 0, dgnbeta, 0, dgnbeta, dgnbeta, 0, dgnbeta, "Dragon Data Ltd", "Dragon Beta Prototype" , 0) diff --git a/mess/systems/electron.c b/mess/systems/electron.c deleted file mode 100644 index f1be193cc..000000000 --- a/mess/systems/electron.c +++ /dev/null @@ -1,232 +0,0 @@ -/****************************************************************************** - Acorn Electron driver - - MESS Driver By: - - Wilbert Pol - -I don't have a real system to verify the behaviour of the emulation. The things -that can be done through BASIC programs seem to behave properly (most of the time :). - -Incomplete: - - Sound (sound is too high?) - - Graphics (seems to be wrong for several games) - - 1MHz bus is not emulated - - Bus claiming by ULA is not implemented - -Missing: - - Support for ROM images - - Support for floppy disks - - Other peripherals - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/electron.h" -#include "devices/cassette.h" -#include "formats/uef_cas.h" - -unsigned short electron_colour_table[8]= -{ - 0,1,2,3,4,5,6,7 -}; - -unsigned char electron_palette[8*3]= -{ - 0x0ff,0x0ff,0x0ff, - 0x000,0x0ff,0x0ff, - 0x0ff,0x000,0x0ff, - 0x000,0x000,0x0ff, - 0x0ff,0x0ff,0x000, - 0x000,0x0ff,0x000, - 0x0ff,0x000,0x000, - 0x000,0x000,0x000 -}; - -static PALETTE_INIT( electron ) -{ - palette_set_colors(machine, 0, electron_palette, sizeof(electron_palette) / 3); - memcpy(colortable,electron_colour_table,sizeof(electron_colour_table)); -} - -static ADDRESS_MAP_START(electron_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x7fff) AM_RAM AM_REGION(REGION_CPU1, 0x00000) /* 32KB of RAM */ - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) /* Banked ROM pages */ - AM_RANGE(0xc000, 0xfbff) AM_ROM AM_REGION(REGION_USER1, 0x40000) /* OS ROM */ - AM_RANGE(0xfc00, 0xfcff) AM_READWRITE( electron_jim_r, electron_jim_w ) /* JIM pages */ - AM_RANGE(0xfd00, 0xfdff) AM_READWRITE( electron_1mhz_r, electron_1mhz_w ) /* 1MHz bus */ - AM_RANGE(0xfe00, 0xfeff) AM_READWRITE( electron_ula_r, electron_ula_w ) /* Electron ULA */ - AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION(REGION_USER1, 0x43f00) /* OS ROM continued */ -ADDRESS_MAP_END - -INPUT_PORTS_START( electron ) - /* Keyboard line 0 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT CURSOR") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("COPY") PORT_CODE(KEYCODE_END) - /* PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("") PORT_CODE(KEYCODE_) */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - - /* Keyboard line 1 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT CURSOR") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN CURSOR") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DELETE") PORT_CODE(KEYCODE_BACKSPACE) - - /* Keyboard line 2 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP CURSOR") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_QUOTE) - /* PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("") PORT_CODE(KEYCODE_) */ - - /* Keyboard line 3 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - - /* Keyboard line 4 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - - /* Keyboard line 5 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - - /* Keyboard line 6 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - - /* Keyboard line 7 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - - /* Keyboard line 8 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - - /* Keyboard line 9 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - - /* Keyboard line 10 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - - /* Keyboard line 11 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - - /* Keyboard line 12 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - - /* Keyboard line 13 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ESCAPE") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("FUNC") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - -INPUT_PORTS_END - -/* Electron Rom Load */ -ROM_START(electron) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_REGION( 0x44000, REGION_USER1, 0 ) /* OS Rom */ - ROM_LOAD( "os.rom", 0x40000, 0x4000, CRC(bf63fb1f) SHA1(a48b8fa0cfb09140e808ac8a187316c605a0b32e) ) /* Os rom */ - /* 00000 0 */ - /* 04000 1 */ - /* 08000 2 */ - /* 0c000 3 */ - /* 10000 4 */ - /* 14000 5 */ - /* 18000 6 */ - /* 1c000 7 */ - /* 20000 8 */ - /* 24000 9 */ - ROM_LOAD( "basic.rom", 0x28000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281) ) /* page 10, Basic rom */ - ROM_COPY( REGION_USER1, 0x28000, 0x2c000, 0x4000 ) /* page 11, Basic rom mirror */ - /* 30000 12 */ - /* 34000 13 */ - /* 38000 14 */ - /* 3c000 15 */ -ROM_END - -static MACHINE_DRIVER_START( electron ) - MDRV_CPU_ADD_TAG( "main", M6502, 2000000 ) - MDRV_CPU_PROGRAM_MAP( electron_mem, 0 ) - MDRV_CPU_VBLANK_INT( electron_scanline_interrupt, 312 ) /* scanline interrupt */ - MDRV_SCREEN_REFRESH_RATE( 50.08 ) - - MDRV_MACHINE_START( electron ) - - MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE( 640, 312 ) - MDRV_SCREEN_VISIBLE_AREA( 0, 640-1, 0, 256-1 ) - MDRV_PALETTE_LENGTH( 16 ) - MDRV_COLORTABLE_LENGTH( 16 ) - MDRV_PALETTE_INIT(electron) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - MDRV_SPEAKER_STANDARD_MONO( "mono" ) - MDRV_SOUND_ADD( BEEP, 0 ) - MDRV_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) -MACHINE_DRIVER_END - -static void electron_cassette_getinfo( const device_class *devclass, UINT32 state, union devinfo *info ) { - switch( state ) { - case DEVINFO_INT_COUNT: - info->i = 1; - break; - case DEVINFO_PTR_CASSETTE_FORMATS: - info->p = (void *)uef_cassette_formats; - break; - default: - cassette_device_getinfo( devclass, state, info ); - break; - } -} - -SYSTEM_CONFIG_START(electron) - CONFIG_DEVICE(electron_cassette_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP ( 1983, electron, 0, 0, electron, electron, 0, electron, "Acorn", "Acorn Electron", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) diff --git a/mess/systems/enterp.c b/mess/systems/enterp.c deleted file mode 100644 index 88cbf384a..000000000 --- a/mess/systems/enterp.c +++ /dev/null @@ -1,627 +0,0 @@ -/****************************************************************************** - * Enterprise 128k driver - * - * Kevin Thacker 1999. - * - * James Boulton [EP help] - * Jean-Pierre Malisse [EP help] - * - * EP Hardware: Z80 (CPU), Dave (Sound Chip + I/O) - * Nick (Graphics), WD1772 (FDC). 128k ram. - * - * For an 8-bit machine, this kicks ass! A sound - * Chip which is as powerful, or more powerful than - * the C64 SID, and a graphics chip capable of some - * really nice graphics. Pity it doesn't have HW sprites! - ******************************************************************************/ - -#include "driver.h" -#include "sndhrdw/dave.h" -#include "includes/enterp.h" -#include "vidhrdw/epnick.h" -#include "machine/wd17xx.h" -#include "cpuintrf.h" -#include "devices/basicdsk.h" -/* for CPCEMU style disk images */ -#include "devices/dsk.h" -#include "image.h" - -/* there are 64us per line, although in reality - about 50 are visible. */ -/* there are 312 lines per screen, although in reality - about 35*8 are visible */ -#define ENTERPRISE_SCREEN_WIDTH (50*16) -#define ENTERPRISE_SCREEN_HEIGHT (35*8) - -/* Enterprise bank allocations */ -#define MEM_EXOS_0 0 -#define MEM_EXOS_1 1 -#define MEM_CART_0 4 -#define MEM_CART_1 5 -#define MEM_CART_2 6 -#define MEM_CART_3 7 -#define MEM_EXDOS_0 0x020 -#define MEM_EXDOS_1 0x021 -/* basic 64k ram */ -#define MEM_RAM_0 ((unsigned int)0x0fc) -#define MEM_RAM_1 ((unsigned int)0x0fd) -#define MEM_RAM_2 ((unsigned int)0x0fe) -#define MEM_RAM_3 ((unsigned int)0x0ff) -/* additional 64k ram */ -#define MEM_RAM_4 ((unsigned int)0x0f8) -#define MEM_RAM_5 ((unsigned int)0x0f9) -#define MEM_RAM_6 ((unsigned int)0x0fa) -#define MEM_RAM_7 ((unsigned int)0x0fb) - -WRITE8_HANDLER ( Nick_reg_w ); - - -/* The Page index for each 16k page is programmed into -Dave. This index is a 8-bit number. The array below -defines what data is pointed to by each of these page index's -that can be selected. If NULL, when reading return floating -bus byte, when writing ignore */ -static unsigned char * Enterprise_Pages_Read[256]; -static unsigned char * Enterprise_Pages_Write[256]; - -/* index of keyboard line to read */ -static int Enterprise_KeyboardLine = 0; - -/* set read/write pointers for CPU page */ -static void Enterprise_SetMemoryPage(int CPU_Page, int EP_Page) -{ - memory_set_bankptr((CPU_Page+1), Enterprise_Pages_Read[EP_Page & 0x0ff]); - memory_set_bankptr((CPU_Page+5), Enterprise_Pages_Write[EP_Page & 0x0ff]); -} - -/* EP specific handling of dave register write */ -static void enterprise_dave_reg_write(int RegIndex, int Data) -{ - switch (RegIndex) - { - - case 0x010: - { - /* set CPU memory page 0 */ - Enterprise_SetMemoryPage(0, Data); - } - break; - - case 0x011: - { - /* set CPU memory page 1 */ - Enterprise_SetMemoryPage(1, Data); - } - break; - - case 0x012: - { - /* set CPU memory page 2 */ - Enterprise_SetMemoryPage(2, Data); - } - break; - - case 0x013: - { - /* set CPU memory page 3 */ - Enterprise_SetMemoryPage(3, Data); - } - break; - - case 0x015: - { - /* write keyboard line */ - Enterprise_KeyboardLine = Data & 15; - } - break; - - default: - break; - } -} - -static void enterprise_dave_reg_read(int RegIndex) -{ - switch (RegIndex) - { - case 0x015: - { - /* read keyboard line */ - Dave_setreg(0x015, - readinputport(Enterprise_KeyboardLine)); - } - break; - - case 0x016: - { - int ExternalJoystickInputs; - int ExternalJoystickPortInput = readinputport(10); - - if (Enterprise_KeyboardLine<=4) - { - ExternalJoystickInputs = ExternalJoystickPortInput>>(4-Enterprise_KeyboardLine); - } - else - { - ExternalJoystickInputs = 1; - } - - Dave_setreg(0x016, (0x0fe | (ExternalJoystickInputs & 0x01))); - } - break; - - default: - break; - } -} - -static void enterprise_dave_interrupt(int state) -{ - if (state) - cpunum_set_input_line(0,0,HOLD_LINE); - else - cpunum_set_input_line(0,0,CLEAR_LINE); -} - -/* enterprise interface to dave - ok, so Dave chip is unique -to Enterprise. But these functions make it nice and easy to see -whats going on. */ -DAVE_INTERFACE enterprise_dave_interface= -{ - enterprise_dave_reg_read, - enterprise_dave_reg_write, - enterprise_dave_interrupt, -}; - - -static void enterp_wd177x_callback(int); - -void Enterprise_Initialise() -{ - int i; - - for (i=0; i<256; i++) - { - /* reads to memory pages that are not set returns 0x0ff */ - Enterprise_Pages_Read[i] = mess_ram+0x020000; - /* writes to memory pages that are not set are ignored */ - Enterprise_Pages_Write[i] = mess_ram+0x024000; - } - - /* setup dummy read area so it will always return 0x0ff */ - memset(mess_ram+0x020000, 0x0ff, 0x04000); - - /* set read pointers */ - /* exos */ - Enterprise_Pages_Read[MEM_EXOS_0] = &memory_region(REGION_CPU1)[0x010000]; - Enterprise_Pages_Read[MEM_EXOS_1] = &memory_region(REGION_CPU1)[0x014000]; - /* basic */ - Enterprise_Pages_Read[MEM_CART_0] = &memory_region(REGION_CPU1)[0x018000]; - /* ram */ - Enterprise_Pages_Read[MEM_RAM_0] = mess_ram; - Enterprise_Pages_Read[MEM_RAM_1] = mess_ram + 0x04000; - Enterprise_Pages_Read[MEM_RAM_2] = mess_ram + 0x08000; - Enterprise_Pages_Read[MEM_RAM_3] = mess_ram + 0x0c000; - Enterprise_Pages_Read[MEM_RAM_4] = mess_ram + 0x010000; - Enterprise_Pages_Read[MEM_RAM_5] = mess_ram + 0x014000; - Enterprise_Pages_Read[MEM_RAM_6] = mess_ram + 0x018000; - Enterprise_Pages_Read[MEM_RAM_7] = mess_ram + 0x01c000; - /* exdos */ - Enterprise_Pages_Read[MEM_EXDOS_0] = &memory_region(REGION_CPU1)[0x01c000]; - Enterprise_Pages_Read[MEM_EXDOS_1] = &memory_region(REGION_CPU1)[0x020000]; - - /* set write pointers */ - Enterprise_Pages_Write[MEM_RAM_0] = mess_ram; - Enterprise_Pages_Write[MEM_RAM_1] = mess_ram + 0x04000; - Enterprise_Pages_Write[MEM_RAM_2] = mess_ram + 0x08000; - Enterprise_Pages_Write[MEM_RAM_3] = mess_ram + 0x0c000; - Enterprise_Pages_Write[MEM_RAM_4] = mess_ram + 0x010000; - Enterprise_Pages_Write[MEM_RAM_5] = mess_ram + 0x014000; - Enterprise_Pages_Write[MEM_RAM_6] = mess_ram + 0x018000; - Enterprise_Pages_Write[MEM_RAM_7] = mess_ram + 0x01c000; - - Dave_Init(); - - Dave_SetIFace(&enterprise_dave_interface); - - Dave_reg_w(0x010,0); - Dave_reg_w(0x011,0); - Dave_reg_w(0x012,0); - Dave_reg_w(0x013,0); - - cpunum_set_input_line_vector(0,0,0x0ff); - - wd179x_init(WD_TYPE_177X, enterp_wd177x_callback); - - floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 0), FLOPPY_DRIVE_DS_80); -} - -static READ8_HANDLER ( enterprise_wd177x_read ) -{ - switch (offset & 0x03) - { - case 0: - return wd179x_status_r(offset); - case 1: - return wd179x_track_r(offset); - case 2: - return wd179x_sector_r(offset); - case 3: - return wd179x_data_r(offset); - default: - break; - } - - return 0x0ff; -} - -static WRITE8_HANDLER ( enterprise_wd177x_write ) -{ - switch (offset & 0x03) - { - case 0: - wd179x_command_w(offset, data); - return; - case 1: - wd179x_track_w(offset, data); - return; - case 2: - wd179x_sector_w(offset, data); - return; - case 3: - wd179x_data_w(offset, data); - return; - default: - break; - } -} - - - -/* I've done this because the ram is banked in 16k blocks, and -the rom can be paged into bank 0 and bank 3. */ -ADDRESS_MAP_START( enterprise_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x00000, 0x03fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK5 ) - AM_RANGE( 0x04000, 0x07fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK6 ) - AM_RANGE( 0x08000, 0x0bfff) AM_READWRITE( MRA8_BANK3, MWA8_BANK7 ) - AM_RANGE( 0x0c000, 0x0ffff) AM_READWRITE( MRA8_BANK4, MWA8_BANK8 ) -ADDRESS_MAP_END - - - -/* bit 0 - select drive 0, - bit 1 - select drive 1, - bit 2 - select drive 2, - bit 3 - select drive 3 - bit 4 - side - bit 5 - mfm/fm select - bit 6 - disk change reset - bit 7 - in use -*/ - -static int EXDOS_GetDriveSelection(int data) -{ - if (data & 0x01) - return 0; - if (data & 0x02) - return 1; - if (data & 0x04) - return 2; - if (data & 0x08) - return 3; - return 0; -} - -static char EXDOS_CARD_R = 0; - -static void enterp_wd177x_callback(int State) -{ - if (State==WD179X_IRQ_CLR) - { - EXDOS_CARD_R &= ~0x02; - } - - if (State==WD179X_IRQ_SET) - { - EXDOS_CARD_R |= 0x02; - } - - if (State==WD179X_DRQ_CLR) - { - EXDOS_CARD_R &= ~0x080; - } - - if (State==WD179X_DRQ_SET) - { - EXDOS_CARD_R |= 0x080; - } -} - - - -static WRITE8_HANDLER ( exdos_card_w ) -{ - /* drive side */ - int head = (data>>4) & 0x01; - - int drive = EXDOS_GetDriveSelection(data); - - wd179x_set_drive(drive); - wd179x_set_side(head); -} - -/* bit 0 - ?? - bit 1 - IRQ from WD1772 - bit 2 - ?? - bit 3 - ?? - bit 4 - ?? - bit 5 - ?? - bit 6 - Disk change signal from disk drive - bit 7 - DRQ from WD1772 -*/ - - -static READ8_HANDLER ( exdos_card_r ) -{ - return EXDOS_CARD_R; -} - -ADDRESS_MAP_START( enterprise_io , ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x010, 0x017) AM_READWRITE( enterprise_wd177x_read, enterprise_wd177x_write ) - AM_RANGE( 0x018, 0x018) AM_READWRITE( exdos_card_r, exdos_card_w ) - AM_RANGE( 0x01c, 0x01c) AM_READWRITE( exdos_card_r, exdos_card_w ) - AM_RANGE( 0x080, 0x08f) AM_WRITE( Nick_reg_w ) - AM_RANGE( 0x0a0, 0x0bf) AM_READWRITE( Dave_reg_r, Dave_reg_w ) -ADDRESS_MAP_END - - - -/* -Enterprise Keyboard Matrix - - Bit -Line 0 1 2 3 4 5 6 7 -0 n \ b c v x z SHFT -1 h N/C g d f s a CTRL -2 u q y r t e w TAB -3 7 1 6 4 5 3 2 N/C -4 F4 F8 F3 F6 F5 F7 F2 F1 -5 8 N/C 9 - 0 ^ DEL N/C -6 j N/C k ; l : ] N/C -7 STOP DOWN RGHT UP HOLD LEFT RETN ALT -8 m ERSE , / . SHFT SPCE INS -9 i N/C o @ p [ N/C N/C - -N/C - Not connected or just dont know! -*/ - - -INPUT_PORTS_START( ep128 ) - /* keyboard line 0 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n") PORT_CODE(KEYCODE_N) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b") PORT_CODE(KEYCODE_B) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v") PORT_CODE(KEYCODE_V) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x") PORT_CODE(KEYCODE_X) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - - /* keyboard line 1 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g") PORT_CODE(KEYCODE_G) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d") PORT_CODE(KEYCODE_D) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f") PORT_CODE(KEYCODE_F) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s") PORT_CODE(KEYCODE_S) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a") PORT_CODE(KEYCODE_A) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - - /* keyboard line 2 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u") PORT_CODE(KEYCODE_U) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r") PORT_CODE(KEYCODE_R) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e") PORT_CODE(KEYCODE_E) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w") PORT_CODE(KEYCODE_W) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - - /* keyboard line 3 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - - /* keyboard line 4 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f4") PORT_CODE(KEYCODE_F4) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f8") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f3") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f6") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f5") PORT_CODE(KEYCODE_F5) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f7") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f2") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f1") PORT_CODE(KEYCODE_F1) - - /* keyboard line 5 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - - /* keyboard line 6 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j") PORT_CODE(KEYCODE_J) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k") PORT_CODE(KEYCODE_K) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - - /* keyboard line 7 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CODE(JOYCODE_1_UP) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOLD") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) - - - /* keyboard line 8 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m") PORT_CODE(KEYCODE_M) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ERASE") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INSERT") PORT_CODE(KEYCODE_INSERT) - - - /* keyboard line 9 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i") PORT_CODE(KEYCODE_I) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o") PORT_CODE(KEYCODE_O) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p") PORT_CODE(KEYCODE_P) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n/c") - - /* external joystick 1 */ - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXTERNAL JOYSTICK 1 RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXTERNAL JOYSTICK 1 LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXTERNAL JOYSTICK 1 DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXTERNAL JOYSTICK 1 UP") PORT_CODE(KEYCODE_UP) PORT_CODE(JOYCODE_1_UP) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXTERNAL JOYSTICK 1 FIRE") PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_1_BUTTON1) - - -INPUT_PORTS_END - -static struct CustomSound_interface dave_custom_sound = -{ - Dave_sh_start -}; - -/* 4Mhz clock, although it can be changed to 8 Mhz! */ - -static MACHINE_DRIVER_START( ep128 ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(enterprise_mem, 0) - MDRV_CPU_IO_MAP(enterprise_io, 0) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( enterprise ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT) - MDRV_SCREEN_VISIBLE_AREA(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1) - /* MDRV_GFXDECODE( enterprise ) */ - MDRV_PALETTE_LENGTH(NICK_PALETTE_SIZE) - MDRV_COLORTABLE_LENGTH(NICK_COLOURTABLE_SIZE) - MDRV_PALETTE_INIT( nick ) - - MDRV_VIDEO_START( enterprise ) - MDRV_VIDEO_UPDATE( enterprise ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(dave_custom_sound) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -ROM_START( ep128 ) - /* 128k ram + 32k rom (OS) + 16k rom (BASIC) + 32k rom (EXDOS) */ - ROM_REGION(0x24000,REGION_CPU1,0) - ROM_LOAD("exos.rom",0x10000,0x8000, CRC(d421795f) SHA1(6033a0535136c40c47137e4d1cd9273c06d5fdff)) - ROM_LOAD("exbas.rom",0x18000,0x4000, CRC(683cf455) SHA1(50a548d1df3ea86f9b5fa669afd8ff124050e776)) - ROM_LOAD("exdos.rom",0x1c000,0x8000, CRC(d1d7e157) SHA1(31c8be089526aa8aa019c380cdf51ddd3ee76454)) -ROM_END - -ROM_START( ep128a ) - /* 128k ram + 32k rom (OS) + 16k rom (BASIC) + 32k rom (EXDOS) */ - ROM_REGION(0x24000,REGION_CPU1,0) - ROM_LOAD("exos21.rom",0x10000,0x8000, CRC(982a3b44) SHA1(55315b20fecb4441a07ee4bc5dc7153f396e0a2e)) - ROM_LOAD("exbas.rom",0x18000,0x4000, CRC(683cf455) SHA1(50a548d1df3ea86f9b5fa669afd8ff124050e776)) - ROM_LOAD("exdos.rom",0x1c000,0x8000, CRC(d1d7e157) SHA1(31c8be089526aa8aa019c380cdf51ddd3ee76454)) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void ep128_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - default: legacydsk_device_getinfo(devclass, state, info); break; - } -} - -#if 0 -static void ep128_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = enterprise_floppy_init; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} -#endif - -SYSTEM_CONFIG_START(ep128) - CONFIG_RAM_DEFAULT((128*1024)+32768) - CONFIG_DEVICE(ep128_floppy_getinfo) -#if 0 - CONFIG_DEVICE(ep128_floppy_getinfo) -#endif -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG, COMPANY FULLNAME */ -COMP( 1984, ep128, 0, 0, ep128, ep128, 0, ep128, "Intelligent Software", "Enterprise 128", GAME_IMPERFECT_SOUND ) -COMP( 1984, ep128a, ep128, 0, ep128, ep128, 0, ep128, "Intelligent Software", "Enterprise 128 (EXOS 2.1)", GAME_IMPERFECT_SOUND ) - diff --git a/mess/systems/galaxy.c b/mess/systems/galaxy.c deleted file mode 100644 index 50b3d8e6c..000000000 --- a/mess/systems/galaxy.c +++ /dev/null @@ -1,183 +0,0 @@ -/*************************************************************************** -Galaksija driver by Krzysztof Strzecha - -18/04/2005 Possibilty to disable ROM 2. 2k, 22k, 38k and 54k memory - configurations added. -13/03/2005 Memory mapping improved. Palette corrected. Supprort for newer - version of snapshots added. Lot of cleanups. Keyboard mapping - corrected. -19/09/2002 malloc() replaced by image_malloc(). -15/09/2002 Snapshot loading fixed. Code cleanup. -31/01/2001 Snapshot loading corrected. -09/01/2001 Fast mode implemented (many thanks to Kevin Thacker). -07/01/2001 Keyboard corrected (still some keys unknown). - Horizontal screen positioning in video subsystem added. -05/01/2001 Keyboard implemented (some keys unknown). -03/01/2001 Snapshot loading added. -01/01/2001 Preliminary driver. - -To do: --Video subsystem 'real' emulation --Tape --Galaksija Plus - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/galaxy.h" -#include "devices/snapquik.h" - -ADDRESS_MAP_START (galaxy_readport, ADDRESS_SPACE_IO, 8) -ADDRESS_MAP_END - -ADDRESS_MAP_START (galaxy_writeport, ADDRESS_SPACE_IO, 8) -ADDRESS_MAP_END - - -ADDRESS_MAP_START (galaxy_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA8_ROM, MWA8_ROM) - AM_RANGE(0x2000, 0x2037) AM_MIRROR(0x07c0) AM_READ( galaxy_keyboard_r ) - AM_RANGE(0x2038, 0x203f) AM_MIRROR(0x07c0) AM_READWRITE( galaxy_latch_r, galaxy_latch_w ) -ADDRESS_MAP_END - - -static gfx_decode galaxy_gfxdecodeinfo[] = -{ - {REGION_GFX1, 0x0000, &galaxy_charlayout, 0, 2}, - {-1} -}; - -INPUT_PORTS_START (galaxy) - PORT_START /* line 0 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_START /* line 1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_START /* line 2 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_START /* line 3 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Righ") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) - PORT_START /* line 4 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_START /* line 5 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_START /* line 6 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Repeat") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("List") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_START /* port 7 */ - PORT_CONFNAME(0x01, 0x01, "ROM 2") - PORT_CONFSETTING(0x01, "Installed") - PORT_CONFSETTING(0x00, "Not installed") -INPUT_PORTS_END - -static MACHINE_DRIVER_START( galaxy ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) - MDRV_CPU_PROGRAM_MAP(galaxy_mem, 0) - MDRV_CPU_IO_MAP(galaxy_readport, galaxy_writeport) - MDRV_CPU_VBLANK_INT(galaxy_interrupt, 1) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( galaxy ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 218) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 218-1) - MDRV_GFXDECODE( galaxy_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof (galaxy_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (galaxy_colortable)) - MDRV_PALETTE_INIT( galaxy ) - - MDRV_VIDEO_START( galaxy ) - MDRV_VIDEO_UPDATE( galaxy ) -MACHINE_DRIVER_END - -ROM_START (galaxy) - ROM_REGION (0x10000, REGION_CPU1, ROMREGION_ERASEFF) - ROM_LOAD ("galrom1.bin", 0x0000, 0x1000, CRC(365f3e24) SHA1(ffc6bf2ec09eabdad76604a63f5dd697c30c4358)) - ROM_LOAD_OPTIONAL ("galrom2.bin", 0x1000, 0x1000, CRC(5dc5a100) SHA1(5d5ab4313a2d0effe7572bb129193b64cab002c1)) - ROM_REGION(0x0800, REGION_GFX1,0) - ROM_LOAD ("galchr.bin", 0x0000, 0x0800, CRC(5c3b5bb5) SHA1(19429a61dc5e55ddec3242a8f695e06dd7961f88)) -ROM_END - -static void galaxy_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "gal"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_galaxy; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(galaxy) - CONFIG_RAM(2 * 1024) - CONFIG_RAM_DEFAULT(6 * 1024) - CONFIG_RAM((6+16) * 1024) - CONFIG_RAM((6+32) * 1024) - CONFIG_RAM((6+48) * 1024) - CONFIG_DEVICE(galaxy_snapshot_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP(1983, galaxy, 0, 0, galaxy, galaxy, galaxy, galaxy, "", "Galaksija", 0) diff --git a/mess/systems/gamecom.c b/mess/systems/gamecom.c deleted file mode 100644 index 1acb2b7fa..000000000 --- a/mess/systems/gamecom.c +++ /dev/null @@ -1,162 +0,0 @@ -/*************************************************************************** - -Driver file to handle emulation of the Tiger Game.com by - Wilbert Pol - -Todo: - everything - - Finish memory map, fill in details - - Finish input ports - - Finish palette code - - Finish machine driver struct - - Finish cartslot code - - Etc, etc, etc. - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/gamecom.h" -#include "cpu/sm8500/sm8500.h" -#include "devices/cartslot.h" - -static ADDRESS_MAP_START(gamecom_mem_map, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x03FF ) AM_READWRITE( gamecom_internal_r, gamecom_internal_w ) /* CPU internal register file and RAM */ - AM_RANGE( 0x0400, 0x0FFF ) AM_NOP /* Nothing */ - AM_RANGE( 0x1000, 0x1FFF ) AM_ROM /* Internal ROM (initially), or External ROM/Flash. Controlled by MMU0 (never swapped out in game.com) */ - AM_RANGE( 0x2000, 0x3FFF ) AM_ROMBANK(1) /* External ROM/Flash. Controlled by MMU1 */ - AM_RANGE( 0x4000, 0x5FFF ) AM_ROMBANK(2) /* External ROM/Flash. Controlled by MMU2 */ - AM_RANGE( 0x6000, 0x7FFF ) AM_ROMBANK(3) /* External ROM/Flash. Controlled by MMU3 */ - AM_RANGE( 0x8000, 0x9FFF ) AM_ROMBANK(4) /* External ROM/Flash. Controlled by MMU4 */ - AM_RANGE( 0xA000, 0xDFFF ) AM_READWRITE( gamecom_vram_r, gamecom_vram_w ) /* VRAM */ - AM_RANGE( 0xE000, 0xFFFF ) AM_RAM /* Extended I/O, Extended RAM */ -ADDRESS_MAP_END - -static gfx_decode gamecom_gfxdecodeinfo[] = -{ - { -1 } /* end of array */ -}; - -SM8500_CONFIG gamecom_cpu_config = { - gamecom_handle_dma, - gamecom_update_timers -}; - -INPUT_PORTS_START( gamecom ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME( "Up" ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME( "Down" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME( "Left" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME( "Right" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME( "Menu" ) PORT_CODE( KEYCODE_M ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME( DEF_STR(Pause) ) PORT_CODE( KEYCODE_V ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME( "Sound" ) PORT_CODE( KEYCODE_B ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Button A" ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Button B" ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Button C" ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME( "Power(?)" ) PORT_CODE( KEYCODE_N ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Button D" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME( "Stylus press" ) PORT_CODE( KEYCODE_Z ) - - PORT_START - PORT_BIT( 0xff, 100, IPT_LIGHTGUN_X ) PORT_MINMAX(0,199) PORT_SENSITIVITY(50) PORT_KEYDELTA(8) - - PORT_START - PORT_BIT( 0xff, 80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,159) PORT_SENSITIVITY(50) PORT_KEYDELTA(8) -INPUT_PORTS_END - -#define GAMECOM_PALETTE_LENGTH 5 - -static unsigned char palette[] = -{ - 0xDF, 0xFF, 0x8F, /* White */ - 0x8F, 0xCF, 0x8F, /* Gray 3 */ - 0x6F, 0x8F, 0x4F, /* Gray 2 */ - 0x0F, 0x4F, 0x2F, /* Gray 1 */ - 0x00, 0x00, 0x00, /* Black */ -}; - -static PALETTE_INIT( gamecom ) -{ - int index; - for ( index = 0; index < GAMECOM_PALETTE_LENGTH; index++ ) - { - palette_set_color(machine, 4-index, palette[index*3+0], palette[index*3+1], palette[index*3+2] ); - colortable[index] = index; - } -} - -static MACHINE_DRIVER_START( gamecom ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG( "main", SM8500, 11059200/2 ) /* actually it's an sm8521 microcontroller containing an sm8500 cpu */ - MDRV_CPU_PROGRAM_MAP( gamecom_mem_map, 0 ) - MDRV_CPU_CONFIG( gamecom_cpu_config ) - MDRV_CPU_VBLANK_INT( gamecom_scanline, 200 ) - - MDRV_SCREEN_REFRESH_RATE( 59.732155 ) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( gamecom ) - - /* video hardware */ - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE( 200, 200 ) - MDRV_SCREEN_VISIBLE_AREA( 0, 199, 0, 159 ) - MDRV_GFXDECODE( gamecom_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH( GAMECOM_PALETTE_LENGTH ) - MDRV_COLORTABLE_LENGTH( GAMECOM_PALETTE_LENGTH ) - MDRV_PALETTE_INIT( gamecom ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO( "left", "right" ) - /* MDRV_SOUND_ADD( CUSTOM, 0 ) */ - /* MDRV_SOUND_CONFIG */ - MDRV_SOUND_ROUTE( 0, "left", 0.50 ) - MDRV_SOUND_ROUTE( 1, "right", 0.50 ) -MACHINE_DRIVER_END - -static void gamecom_cartslot_getinfo( const device_class *devclass, UINT32 state, union devinfo *info ) { - switch( state ) { - case DEVINFO_INT_COUNT: - info->i = 1; - break; - case DEVINFO_PTR_INIT: - info->init = device_init_gamecom_cart; - break; - case DEVINFO_PTR_LOAD: - info->load = device_load_gamecom_cart; - break; - case DEVINFO_STR_FILE_EXTENSIONS: - strcpy(info->s = device_temp_str(), "bin"); - break; - default: - cartslot_device_getinfo( devclass, state, info ); - break; - } -} - -SYSTEM_CONFIG_START( gamecom ) - CONFIG_DEVICE( gamecom_cartslot_getinfo ) -SYSTEM_CONFIG_END - -ROM_START( gamecom ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) - ROM_LOAD( "internal.bin", 0x1000, 0x1000, CRC(a0cec361) SHA1(03368237e8fed4a8724f3b4a1596cf4b17c96d33) ) - ROM_REGION( 0x40000, REGION_USER1, 0 ) - ROM_LOAD( "external.bin", 0x00000, 0x40000, CRC(e235a589) SHA1(97f782e72d738f4d7b861363266bf46b438d9b50) ) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1997, gamecom, 0, 0, gamecom, gamecom, 0, gamecom, "Tiger", "Game.com", GAME_NOT_WORKING ) - - diff --git a/mess/systems/gb.c b/mess/systems/gb.c deleted file mode 100644 index 7a3c877df..000000000 --- a/mess/systems/gb.c +++ /dev/null @@ -1,686 +0,0 @@ -/*************************************************************************** - - gb.c - - Driver file to handle emulation of the Nintendo Gameboy. - By: - - Hans de Goede 1998 - Anthony Kruize 2002 - Wilbert Pol 2004 (Megaduck/Cougar Boy) - - Todo list: - Done entries kept for historical reasons, besides that it's nice to see - what is already done instead of what has to be done. - -Priority: Todo: Done: - 2 Replace Marat's vidhrdw/gb.c by Playboy code * - 2 Clean & speed up vidhrdw/gb.c * - 2 Replace Marat's Z80gb/Z80gb.c by Playboy code * - 2 Transform Playboys Z80gb.c to big case method * - 2 Clean up Z80gb.c * - 2 Fix / optimise halt instruction * - 2 Do correct lcd stat timing In Progress - 2 Generate lcd stat interrupts * - 2 Replace Marat's code in machine/gb.c by Playboy code ? - 1 Check, and fix if needed flags bug which troubles ffa ? - 1 Save/restore battery backed ram * - 1 Add sound * - 0 Add supergb support * - 0 Add palette editting, save & restore - 0 Add somekind of backdrop support - 0 Speedups if remotly possible - - 2 = has to be done before first public release - 1 = should be added later on - 0 = bells and whistles - - -Timers -====== - -There seems to be some kind of selectable internal clock divider which is used to drive -the timer increments. This causes the first timer cycle to now always be a full cycle. -For instance in 1024 clock cycle mode, the first timer cycle could easily only take 400 -clock cycles. The next timer cycle will take the full 1024 clock cycles though. - -Interrupts -========== - -Taking an interrupt seems to take around 12(?) clock cycles. - - -Stat timing -=========== - -This timing table is accurate within 4 cycles: - | stat = 2 | stat = 3 | stat = 0 | -No sprites | 80 | 172 | 204 | -1 sprite | 80 | 182 | 194 | -2 sprites | 80 | 192 | 184 | -3 sprites | 80 | 202 | 174 | -4 sprites | 80 | 212 | 164 | -5 sprites | 80 | 222 | 154 | -6 sprites | 80 | 232 | 144 | -7 sprites | 80 | 242 | 134 | -8 sprites | 80 | 252 | 124 | -9 sprites | 80 | 262 | 114 | -10 sprites | 80 | 272 | 104 | - -In other words, each sprite on a line makes stat 3 last 10 cycles longer. - - -For lines 1 - 143 when stat changes to 2 the line counter is incremented. - -Line 153 is little odd timing wise. The line counter stays 153 for ~16-32 clock cycles -and is then rolls over to 0. - -When the line counter is changed it gets checked against the lyc register. - - -Mappers used in the gameboy -=========================== - -MBC1 Mapper -=========== - -The MBC1 mapper has two modes: 2MB ROM/8KB RAM or 512KB ROM/32KB RAM. -This mode is selected by writing into the 6000-7FFF memory area: -0bXXXXXXXB - B=0 - 2MB ROM/8KB RAM mode - B=1 - 512KB ROM/32KB RAM mode -The default behaviour is to be in 2MB ROM/8KB RAM mode. - -Writing a value ( 0bXXXBBBBB ) into the 2000-3FFF memory area selects the -lower 5 bits of the ROM bank to select for the 4000-7FFF memory area. If a -value of 0bXXX00000 is written then this will autmatically be changed to -0bXXX00001 by the mbc chip. - -Writing a value (0bXXXXXXBB ) into the 4000-5FFF memory area either selects -the RAM bank to use or bits 6 and 7 for the ROM bank to use for the 4000-7FFF -memory area. This behaviour depends on the memory moddel chosen. - -The RAM sections are enabled by writing the value 0bXXX1010 into the 0000-1FFF -memory area. Writing any other value disables the RAM section. - -Some unanswered cases: -#1 - Set mode 0 - - Set lower bank bits to 1F - - Set high bank bits to 01 => bank #3F - - Set mode 1 - - What ROM bank is now at 4000-7FFF, bank #1F or bank #3F? - -#2 - Set mode 1 - - Set ram area #1 - - Set mode 0 - - What ram area is now at A000-BFFF, ram bank 00 or ram bank 01? - - -MBC2 Mapper -=========== - -The MBC2 mapper includes 512x4bits of builtin RAM. - -0000-1FFF - Writing to this area enables (value 0bXXXX1010) or disables (any - other value than 0bXXXX1010) the RAM. In order to perform this - function bit 12 of the address must be reset, so usable areas are - 0000-00FF, 0200-02FF, 0400-04FF, 0600-06FF, ..., 1E00-1EFF. -2000-3FFF - Writing to this area selects the rom bank to appear at 4000-7FFF. - Only bits 3-0 are used to select the bank number. If a value of - 0bXXXX0000 is written then this is automatically changed into - 0bXXXX0001 by the mapper. - In order to perform the rom banking bit 12 of the address must be - set, so usable areas are 2100-21FF, 2300-23FF, 2500-25FF, 2700- - 27FF, ..., 3F00-3FFF. - -Some unanswered cases: -#1 - Set rom bank to 8 for a 4 bank rom image. - - What rom bank appears at 4000-7FFF, bank #0 or bank #1 ? - - -MBC3 Mapper -=========== - -The MBC3 mapper cartridges can include a RTC chip. - -0000-1FFF - Writing to this area enables (value 0x0A) or disables (0x00) the - RAM and RTC registers. -2000-3FFF - Writing to this area selects the rom bank to appear at 4000-7FFF. - Bits 6-0 are used to select the bank number. If a value of - 0bX0000000 is written then this is autmatically changed into - 0bX0000001 by the mapper. -4000-5FFF - Writing to this area selects the RAM bank or the RTC register to - read. - XXXX00bb - Select RAM bank bb. - XXXX1rrr - Select RTC register rrr. Accepted values for rrr are: - 000 - Seconds (0x00-0x3B) - 001 - Minutes (0x00-0x3B) - 010 - Hours (0x00-0x17) - 011 - Bits 7-0 of the day counter - 100 - bit 0 - Bit 8 of the day counter - bit 6 - Halt RTC timer ( 0 = timer active, 1 = halted) - bit 7 - Day counter overflow flag -6000-7FFF - Writing 0x00 followed by 0x01 latches the RTC data. This latching - method is used for reading the RTC registers. - -Some unanswered cases: -#1 - Set rom bank to 8(/16/32/64) for a 4(/8/16/32) bank image. - - What rom bank appears at 4000-7FFF, bank #0 or bank #1 ? - - -MBC5 Mapper -=========== - -0000-1FFF - Writing to this area enables (0x0A) or disables (0x00) the RAM area. -2000-2FFF - Writing to this area updates bits 7-0 of the rom bank number to - appear at 4000-7FFF. -3000-3FFF - Writing to this area updates bit 8 of the rom bank number to appear - at 4000-7FFF. -4000-5FFF - Writing to this area select the RAM bank number to use. If the - cartridge includes a Rumble Pack then bit 3 is used to control - rumble motor (0 - disable motor, 1 - enable motor). - - -MBC7 Mapper (Used by Kirby's Tilt n' Tumble) -=========== - -Status: not supported yet. - - -TAMA5 Mapper (Used by Tamagotchi 3) -============ - -Status: partially supported. - -The TAMA5 mapper includes a special RTC chip which communicates through the -RAM area (0xA000-0xBFFF); most notably addresses 0xA000 and 0xA001 seem to -be used. In this setup 0xA001 acts like a control register and 0xA000 like -a data register. - -Accepted values by the TAMA5 control register: -0x00 - Writing to 0xA000 will set bits 3-0 for rom bank selection. -0x01 - Writing to 0xA000 will set bits (7-?)4 for rom bank selection. - -0x04 - Bits 3-0 of the value to write -0x05 - Bits 4-7 of the value to write -0x06 - Address control hi - bit 0 - Bit 4 for the address - bit 3-1 - 000 - Write a byte to the 32 byte memory. The data to be - written must be set in registers 0x04 (lo nibble) and - 0x05 (hi nibble). - - 001 - Read a byte from the 32 byte memory. The data read - will be available in registers 0x0C (lo nibble) and - 0x0D (hi nibble). - - 010 - Unknown (occurs just after having started a game and - entered a date) (execution at address 1A19) - - 011 - Unknown (not encountered yet) - - 100 - Unknown (occurs during booting a game; appears to be - some kind of read command as it is followed by a read - of the 0x0C register) (execution at address 1B5B) - - 101 - Unknown (not encountered yet) - - 110 - Unknown (not encountered yet) - - 111 - Unknown (not encountered yet) -0x07 - Address control lo - bit 3-0 - bits 3-0 for the address - -0x0A - After writing this the lowest 2 bits of A000 determine whether the - TAMA5 chip is ready to accept the next command. If the lowest 2 bits - hold the value 01 then the TAMA5 chip is ready for the next command. - -0x0C - Reading from A000 will return bits 3-0 of the data -0x0D - Reading from A000 will return bits 7-4 of the data - -0x04 - RTC controls? -> RTC/memory? -0x05 - Write time/memomry? -0x06 - RTC controls? -0x07 - RTC controls? - -Unknown sequences: -During booting a game (1B5B: -04 <- 00, 06 <- 08, 07 <- 01, followed by read 0C -when value read from 0C equals 00 followed by the sequence: -04 <- 01, 06 <- 08, 07 <- 01, followed by read 0C -the value read from 0C is checked for non-zero, don't know the consequences for either -yet. - -Initialization after starting a game: -At address 1A19: -06 <- 05, 07 <- 02, followed by read 0C, if != 0F => OK, otherwise do something. - - -HuC1 mapper -=========== - -Status: not supported yet. - - -HuC3 mapper -=========== - -Status: not supported yet. - - -***************************************************************************/ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/z80gb/z80gb.h" -#include "includes/gb.h" -#include "devices/cartslot.h" -#include "rendlay.h" -#include "gb.lh" - -/* Initial value of the cpu registers (hacks until we get bios dumps) */ -static UINT16 sgb_cpu_regs[6] = { 0x01B0, 0x0013, 0x00D8, 0x014D, 0xFFFE, 0x0100 }; /* Super GameBoy */ -static UINT16 mgb_cpu_regs[6] = { 0xFFB0, 0x0013, 0x00D8, 0x014D, 0xFFFE, 0x0100 }; /* GameBoy Pocket / Super GameBoy 2 */ -static UINT16 cgb_cpu_regs[6] = { 0x11B0, 0x0013, 0x00D8, 0x014D, 0xFFFE, 0x0100 }; /* GameBoy Color / Gameboy Advance */ -static UINT16 megaduck_cpu_regs[6] = { 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFE, 0x0000 }; /* Megaduck */ - -Z80GB_CONFIG dmg_cpu_reset = { NULL, gb_timer_callback }; -Z80GB_CONFIG sgb_cpu_reset = { sgb_cpu_regs, gb_timer_callback }; -Z80GB_CONFIG mgb_cpu_reset = { mgb_cpu_regs, gb_timer_callback }; -Z80GB_CONFIG cgb_cpu_reset = { cgb_cpu_regs, gb_timer_callback }; -Z80GB_CONFIG megaduck_cpu_reset = { megaduck_cpu_regs, gb_timer_callback }; - -static ADDRESS_MAP_START(gb_map, ADDRESS_SPACE_PROGRAM, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x00ff) AM_ROMBANK(5) /* BIOS or ROM */ - AM_RANGE(0x0100, 0x3fff) AM_ROMBANK(10) /* ROM bank */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* 16k switched ROM bank */ - AM_RANGE(0x8000, 0x9fff) AM_RAM AM_WRITE( gb_vram_w ) AM_BASE(&gb_vram) /* 8k VRAM */ - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(2) /* 8k switched RAM bank (cartridge) */ - AM_RANGE(0xc000, 0xfdff) AM_RAM /* 8k low RAM, echo RAM */ - AM_RANGE(0xfe00, 0xfe9f) AM_RAM AM_WRITE( gb_oam_w ) AM_BASE(&gb_oam) /* OAM RAM */ - AM_RANGE(0xfea0, 0xfeff) AM_NOP /* Unused */ - AM_RANGE(0xff00, 0xff0f) AM_READWRITE( gb_io_r, gb_io_w ) /* I/O */ - AM_RANGE(0xff10, 0xff26) AM_READWRITE( gb_sound_r, gb_sound_w ) /* sound registers */ - AM_RANGE(0xff27, 0xff2f) AM_NOP /* unused */ - AM_RANGE(0xff30, 0xff3f) AM_READWRITE( gb_wave_r, gb_wave_w ) /* Wave ram */ - AM_RANGE(0xff40, 0xff7f) AM_READWRITE( gb_video_r, gb_io2_w) /* Video controller & BIOS flip-flop */ - AM_RANGE(0xff80, 0xfffe) AM_RAM /* High RAM */ - AM_RANGE(0xffff, 0xffff) AM_READWRITE( gb_ie_r, gb_ie_w ) /* Interrupt enable register */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(sgb_map, ADDRESS_SPACE_PROGRAM, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_ROMBANK(5) /* 16k fixed ROM bank */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* 16k switched ROM bank */ - AM_RANGE(0x8000, 0x9fff) AM_RAM AM_WRITE( gb_vram_w ) AM_BASE(&gb_vram) /* 8k VRAM */ - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(2) /* 8k switched RAM bank (cartridge) */ - AM_RANGE(0xc000, 0xfdff) AM_RAM /* 8k low RAM, echo RAM */ - AM_RANGE(0xfe00, 0xfe9f) AM_RAM AM_WRITE( gb_oam_w ) AM_BASE(&gb_oam) /* OAM RAM */ - AM_RANGE(0xfea0, 0xfeff) AM_NOP /* Unused */ - AM_RANGE(0xff00, 0xff0f) AM_READWRITE( gb_io_r, sgb_io_w ) /* I/O */ - AM_RANGE(0xff10, 0xff26) AM_READWRITE( gb_sound_r, gb_sound_w ) /* sound registers */ - AM_RANGE(0xff27, 0xff2f) AM_NOP /* unused */ - AM_RANGE(0xff30, 0xff3f) AM_READWRITE( gb_wave_r, gb_wave_w ) /* Wave RAM */ - AM_RANGE(0xff40, 0xff7f) AM_READWRITE( gb_video_r, gb_io2_w ) /* Video controller & BIOS flip-flop */ - AM_RANGE(0xff80, 0xfffe) AM_RAM /* High RAM */ - AM_RANGE(0xffff, 0xffff) AM_READWRITE( gb_ie_r, gb_ie_w ) /* Interrupt enable register */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(gbc_map, ADDRESS_SPACE_PROGRAM, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_ROMBANK(5) /* 16k fixed ROM bank */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* 16k switched ROM bank */ - AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(4) AM_WRITE( gbc_vram_w ) /* 8k switched VRAM bank */ - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(2) /* 8k switched RAM bank (on cartridge) */ - AM_RANGE(0xc000, 0xcfff) AM_RAM /* 4k fixed RAM bank */ - AM_RANGE(0xd000, 0xdfff) AM_RAMBANK(3) /* 4k switched RAM bank */ - AM_RANGE(0xe000, 0xfdff) AM_RAM /* echo RAM */ - AM_RANGE(0xfe00, 0xfe9f) AM_RAM AM_WRITE( gb_oam_w ) AM_BASE(&gb_oam) /* OAM RAM */ - AM_RANGE(0xfea0, 0xfeff) AM_NOP /* unused */ - AM_RANGE(0xff00, 0xff0f) AM_READWRITE( gb_io_r, gb_io_w ) /* I/O */ - AM_RANGE(0xff10, 0xff26) AM_READWRITE( gb_sound_r, gb_sound_w ) /* sound controller */ - AM_RANGE(0xff27, 0xff2f) AM_NOP /* unused */ - AM_RANGE(0xff30, 0xff3f) AM_READWRITE( gb_wave_r, gb_wave_w ) /* Wave RAM */ - AM_RANGE(0xff40, 0xff7f) AM_READWRITE( gbc_io2_r, gbc_io2_w ) /* Other I/O and video controller */ - AM_RANGE(0xff80, 0xfffe) AM_RAM /* high RAM */ - AM_RANGE(0xffff, 0xffff) AM_READWRITE( gb_ie_r, gb_ie_w ) /* Interrupt enable register */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(megaduck_map, ADDRESS_SPACE_PROGRAM, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_ROMBANK(10) /* 16k switched ROM bank */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* 16k switched ROM bank */ - AM_RANGE(0x8000, 0x9fff) AM_RAM AM_WRITE( gb_vram_w ) AM_BASE(&gb_vram) /* 8k VRAM */ - AM_RANGE(0xa000, 0xbfff) AM_NOP /* unused? */ - AM_RANGE(0xc000, 0xfe9f) AM_RAM /* 8k low RAM, echo RAM */ - AM_RANGE(0xfe00, 0xfe9f) AM_RAM AM_WRITE( gb_oam_w ) AM_BASE(&gb_oam) /* OAM RAM */ - AM_RANGE(0xfea0, 0xfeff) AM_NOP /* unused */ - AM_RANGE(0xff00, 0xff0f) AM_READWRITE( gb_io_r, gb_io_w ) /* I/O */ - AM_RANGE(0xff10, 0xff1f) AM_READWRITE( megaduck_video_r, megaduck_video_w ) /* video controller */ - AM_RANGE(0xff20, 0xff2f) AM_READWRITE( megaduck_sound_r1, megaduck_sound_w1) /* sound controller pt1 */ - AM_RANGE(0xff30, 0xff3f) AM_READWRITE( gb_wave_r, gb_wave_w ) /* wave ram */ - AM_RANGE(0xff40, 0xff46) AM_READWRITE( megaduck_sound_r2, megaduck_sound_w2) /* sound controller pt2 */ - AM_RANGE(0xff47, 0xff7f) AM_NOP /* unused */ - AM_RANGE(0xff80, 0xfffe) AM_RAM /* high RAM */ - AM_RANGE(0xffff, 0xffff) AM_READWRITE( gb_ie_r, gb_ie_w ) /* interrupt enable register */ -ADDRESS_MAP_END - -static gfx_decode gb_gfxdecodeinfo[] = -{ - { -1 } /* end of array */ -}; - -INPUT_PORTS_START( gameboy ) - PORT_START /* IN0 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_NAME("Left") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_NAME("Right") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_NAME("Up") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_NAME("Down") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Button A") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("Button B") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START) PORT_NAME("Start") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SELECT) PORT_NAME("Select") -INPUT_PORTS_END - -static unsigned char palette[] = -{ -/* Simple black and white palette */ -/* 0xFF,0xFF,0xFF, - 0xB0,0xB0,0xB0, - 0x60,0x60,0x60, - 0x00,0x00,0x00 */ - -/* Possibly needs a little more green in it */ - 0xFF,0xFB,0x87, /* Background */ - 0xB1,0xAE,0x4E, /* Light */ - 0x84,0x80,0x4E, /* Medium */ - 0x4E,0x4E,0x4E, /* Dark */ - -/* Palette for GameBoy Pocket/Light */ - 0xC4,0xCF,0xA1, /* Background */ - 0x8B,0x95,0x6D, /* Light */ - 0x6B,0x73,0x53, /* Medium */ - 0x41,0x41,0x41, /* Dark */ -}; - -static unsigned char palette_megaduck[] = { - 0x6B, 0xA6, 0x4A, 0x43, 0x7A, 0x63, 0x25, 0x59, 0x55, 0x12, 0x42, 0x4C -}; - -/* Initialise the palette */ -static PALETTE_INIT( gb ) -{ - int ii; - for( ii = 0; ii < 4; ii++) - { - palette_set_color(machine, ii, palette[ii*3+0], palette[ii*3+1], palette[ii*3+2]); - colortable[ii] = ii; - } -} - -static PALETTE_INIT( gbp ) -{ - int ii; - for( ii = 0; ii < 4; ii++) - { - palette_set_color(machine, ii, palette[(ii + 4)*3+0], palette[(ii + 4)*3+1], palette[(ii + 4)*3+2]); - colortable[ii] = ii; - } -} - -static PALETTE_INIT( sgb ) -{ - int ii, r, g, b; - - for( ii = 0; ii < 32768; ii++ ) - { - r = (ii & 0x1F) << 3; - g = ((ii >> 5) & 0x1F) << 3; - b = ((ii >> 10) & 0x1F) << 3; - palette_set_color(machine, ii, r, g, b ); - } - - /* Some default colours for non-SGB games */ - colortable[0] = 32767; - colortable[1] = 21140; - colortable[2] = 10570; - colortable[3] = 0; - /* The rest of the colortable can be black */ - for( ii = 4; ii < 8*16; ii++ ) - colortable[ii] = 0; -} - -static PALETTE_INIT( gbc ) -{ - int ii, r, g, b; - - for( ii = 0; ii < 32768; ii++ ) - { - r = (ii & 0x1F) << 3; - g = ((ii >> 5) & 0x1F) << 3; - b = ((ii >> 10) & 0x1F) << 3; - palette_set_color( machine, ii, r, g, b ); - } - - /* Background is initialised as white */ - for( ii = 0; ii < 8*4; ii++ ) - colortable[ii] = 32767; - /* Sprites are supposed to be uninitialized, but we'll make them black */ - for( ii = 8*4; ii < 16*4; ii++ ) - colortable[ii] = 0; -} - -static PALETTE_INIT( megaduck ) { - int ii; - for( ii = 0; ii < 4; ii++) { - palette_set_color(machine, ii, palette_megaduck[ii*3+0], palette_megaduck[ii*3+1], palette_megaduck[ii*3+2]); - colortable[ii] = ii; - } -} - -static struct CustomSound_interface gameboy_sound_interface = -{ gameboy_sh_start, 0, 0 }; - - -static MACHINE_DRIVER_START( gameboy ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80GB, 4194304) /* 4.194304 Mhz */ - MDRV_CPU_PROGRAM_MAP(gb_map, 0) - MDRV_CPU_CONFIG(dmg_cpu_reset) - MDRV_CPU_VBLANK_INT(gb_scanline_interrupt, 154) /* 1 int each scanline ! */ - - MDRV_SCREEN_REFRESH_RATE(DMG_FRAMES_PER_SECOND) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( gb ) - MDRV_MACHINE_RESET( gb ) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_DEFAULT_LAYOUT(layout_gb) -// MDRV_SCREEN_SIZE(20*8, 18*8) - MDRV_SCREEN_SIZE( 458, 154 ) - MDRV_SCREEN_VISIBLE_AREA(0*8, 20*8-1, 0*8, 18*8-1) - MDRV_GFXDECODE(gb_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(4) - MDRV_PALETTE_INIT(gb) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(gameboy_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( supergb ) - MDRV_IMPORT_FROM(gameboy) - MDRV_CPU_REPLACE("main", Z80GB, 4295454) /* 4.295454 Mhz */ - MDRV_CPU_PROGRAM_MAP(sgb_map, 0) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_CONFIG(sgb_cpu_reset) - - MDRV_MACHINE_RESET( sgb ) - - MDRV_DEFAULT_LAYOUT(layout_horizont) /* runs on a TV, not an LCD */ - MDRV_SCREEN_SIZE(32*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_PALETTE_LENGTH(32768) - MDRV_COLORTABLE_LENGTH(8*16) /* 8 palettes of 16 colours */ - MDRV_PALETTE_INIT(sgb) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gbpocket ) - MDRV_IMPORT_FROM(gameboy) - MDRV_CPU_MODIFY("main") - MDRV_CPU_CONFIG(mgb_cpu_reset) - MDRV_MACHINE_RESET( gbpocket ) - MDRV_PALETTE_INIT(gbp) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gbcolor ) - MDRV_IMPORT_FROM(gameboy) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP( gbc_map, 0 ) - MDRV_CPU_CONFIG(cgb_cpu_reset) - - MDRV_MACHINE_RESET(gbc) - - MDRV_PALETTE_LENGTH(32768) - MDRV_COLORTABLE_LENGTH(16*4) /* 16 palettes of 4 colours */ - MDRV_PALETTE_INIT(gbc) -MACHINE_DRIVER_END - -static void gameboy_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_gb_cart; break; - case DEVINFO_PTR_LOAD: info->load = device_load_gb_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "gb,gmb,cgb,gbc,sgb"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void gameboy_cartslot_getinfo_gb(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_MUST_BE_LOADED: info->i = 0; break; - - default: gameboy_cartslot_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(gameboy) - CONFIG_DEVICE(gameboy_cartslot_getinfo) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(gameboy_gb) - CONFIG_DEVICE(gameboy_cartslot_getinfo_gb) -SYSTEM_CONFIG_END - -static MACHINE_DRIVER_START( megaduck ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80GB, 4194304) /* 4.194304 Mhz */ - MDRV_CPU_PROGRAM_MAP( megaduck_map, 0 ) - MDRV_CPU_VBLANK_INT(gb_scanline_interrupt, 154) /* 1 int each scanline ! */ - MDRV_CPU_CONFIG(megaduck_cpu_reset) - - MDRV_SCREEN_REFRESH_RATE(DMG_FRAMES_PER_SECOND) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( megaduck ) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(20*8, 18*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 20*8-1, 0*8, 18*8-1) - MDRV_GFXDECODE(gb_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(4) - MDRV_PALETTE_INIT(megaduck) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(gameboy_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - -static void megaduck_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_megaduck_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bin"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(megaduck) - CONFIG_DEVICE(megaduck_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( gameboy ) - ROM_REGION( 0x0100, REGION_CPU1, 0 ) - ROM_LOAD( "dmg_boot.bin", 0x0000, 0x0100, CRC(59c8598e) SHA1(4ed31ec6b0b175bb109c0eb5fd3d193da823339f) ) -ROM_END - -ROM_START( supergb ) - ROM_REGION( 0x10000, REGION_CPU1, ROMREGION_ERASEFF ) -/* ROM_LOAD( "sgb_boot.bin", 0x0000, 0x0100, NO_DUMP ) */ -ROM_END - -ROM_START( gbpocket ) - ROM_REGION( 0x10000, REGION_CPU1, ROMREGION_ERASEFF ) -/* ROM_LOAD( "gbp_boot.bin", 0x0000, 0x0100, NO_DUMP ) */ -ROM_END - -ROM_START( gbcolor ) - ROM_REGION( 0x10000, REGION_CPU1, ROMREGION_ERASEFF ) -/* ROM_LOAD( "gbc_boot.bin", 0x0000, 0x0100, NO_DUMP ) */ -ROM_END - - -ROM_START( megaduck ) - ROM_REGION( 0x10000, REGION_CPU1, ROMREGION_ERASEFF ) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1990, gameboy, 0, 0, gameboy, gameboy, 0, gameboy_gb, "Nintendo", "GameBoy" , 0) -CONS( 1994, supergb, 0, gameboy, supergb, gameboy, 0, gameboy, "Nintendo", "Super GameBoy" , 0) -CONS( 1996, gbpocket, gameboy, 0, gbpocket, gameboy, 0, gameboy, "Nintendo", "GameBoy Pocket" , 0) -CONS( 1998, gbcolor, 0, gameboy, gbcolor, gameboy, 0, gameboy, "Nintendo", "GameBoy Color" , 0) - -/* Sound is not 100% yet, it generates some sounds which could be ok. Since we're lacking a real - system there's no way to verify. Same goes for the colors of the LCD. We are no using the default - GameBoy green colors */ -CONS( 1993, megaduck, 0, 0, megaduck, gameboy, 0, megaduck,"Creatronic/Videojet/Timlex/Cougar", "MegaDuck/Cougar Boy" , 0) - diff --git a/mess/systems/genesis.c b/mess/systems/genesis.c deleted file mode 100644 index f6572b288..000000000 --- a/mess/systems/genesis.c +++ /dev/null @@ -1,529 +0,0 @@ -/*************************************************************************** - -Sega Genesis/MegaDrive Memory Map (preliminary) - -Main CPU (68k) - -$000000 - $3fffff : Cartridge ROM -$400000 - $9fffff : Reserved by Sega (unused?) -$a00000 - $a0ffff : shared RAM w/Z80 -$a10000 - $a10fff : IO -$a11000 - $a11fff : Controls - $a11000 : memory mode (16-bit) - $a11100 : Z80 bus request (16) - $a11200 : Z80 reset (16) -$c00000 - $dfffff : Video Display Processor (VDP) - $c00000 : data (16-bit, mirrored) - $c00004 : control (16, m) - $c00008 : hv counter (16, m) - $c00011 : psg 76489 (8) -$ff0000 - $ffffff : RAM - -Interrupts: - level 6 - vertical - level 4 - horizontal - level 2 - external - -Sound CPU (Z80) - -$0000 - $1fff : RAM -$2000 - $3fff : Reserved (RAM?) -$4001 - $4003 : ym2612 registers -$6000 : bank register -$7f11 : psg 76489 -$8000 - $ffff : shared RAM w/68k - - -Gareth S. Long - -In Memory Of Haruki Ikeda - -***************************************************************************/ - -#include "driver.h" -#include "sound/2612intf.h" -#include "vidhrdw/generic.h" -#include "includes/genesis.h" -#include "devices/cartslot.h" -#include "inputx.h" - -int genesis_region; -int genesis_is_ntsc; - -/* code taken directly from GoodGEN by Cowering */ -static int genesis_isfunkySMD(unsigned char *buf,unsigned int len) -{ - /* aq quiz */ - if (!strncmp("UZ(-01 ", (const char *) &buf[0xf0], 8)) - return 1; - - /* Phelios USA redump */ - /* target earth */ - /* klax (namcot) */ - if (buf[0x2080] == ' ' && buf[0x0080] == 'S' && buf[0x2081] == 'E' && buf[0x0081] == 'G') - return 1; - - /* jap baseball 94 */ - if (!strncmp("OL R-AEAL", (const char *) &buf[0xf0], 9)) - return 1; - - /* devilish Mahjonng Tower */ - if (!strncmp("optrEtranet", (const char *) &buf[0xf3], 11)) - return 1; - - /* golden axe 2 beta */ - if (buf[0x0100] == 0x3c && buf[0x0101] == 0 && buf[0x0102] == 0 && buf[0x0103] == 0x3c) - return 1; - - /* omega race */ - if (!strncmp("OEARC ", (const char *) &buf[0x90], 8)) - return 1; - - /* budokan beta */ - if ((len >= 0x6708+8) && !strncmp(" NTEBDKN", (const char *) &buf[0x6708], 8)) - return 1; - - /* cdx pro 1.8 bios */ - if (!strncmp("so fCXP", (const char *) &buf[0x2c0], 7)) - return 1; - - /* ishido (hacked) */ - if (!strncmp("sio-Wyo ", (const char *) &buf[0x0090], 8)) - return 1; - - /* onslaught */ - if (!strncmp("SS CAL ", (const char *) &buf[0x0088], 8)) - return 1; - - /* tram terror pirate */ - if ((len >= 0x3648 + 8) && !strncmp("SG NEPIE", (const char *) &buf[0x3648], 8)) - return 1; - - /* breath of fire 3 chinese */ - if (buf[0x0007] == 0x1c && buf[0x0008] == 0x0a && buf[0x0009] == 0xb8 && buf[0x000a] == 0x0a) - return 1; - - /*tetris pirate */ - if ((len >= 0x1cbe + 5) && !strncmp("@TTI>", (const char *) &buf[0x1cbe], 5)) - return 1; - - return 0; -} - - - -/* code taken directly from GoodGEN by Cowering */ -static int genesis_isSMD(unsigned char *buf,unsigned int len) -{ - if (buf[0x2080] == 'S' && buf[0x80] == 'E' && buf[0x2081] == 'G' && buf[0x81] == 'A') - return 1; - return genesis_isfunkySMD(buf,len); -} - - - -static int genesis_isfunkyBIN(unsigned char *buf,unsigned int len) -{ - /* all the special cases for crappy headered roms */ - /* aq quiz */ - if (!strncmp("QUIZ (G-3051", (const char *) &buf[0x1e0], 12)) - return 1; - - /* phelios USA redump */ - /* target earth */ - /* klax namcot */ - if (buf[0x0104] == 'A' && buf[0x0101] == 'S' && buf[0x0102] == 'E' && buf[0x0103] == 'G') - return 1; - - /* jap baseball 94 */ - if (!strncmp("WORLD PRO-B", (const char *) &buf[0x1e0], 11)) - return 1; - - /* devlish mahj tower */ - if (!strncmp("DEVILISH MAH", (const char *) &buf[0x120], 12)) - return 1; - - /* golden axe 2 beta */ - if ((len >= 0xe40a+4) && !strncmp("SEGA", (const char *) &buf[0xe40a], 4)) - return 1; - - /* omega race */ - if (!strncmp(" OMEGA RAC", (const char *) &buf[0x120], 10)) - return 1; - - /* budokan beta */ - if ((len >= 0x4e18+8) && !strncmp("BUDOKAN.", (const char *) &buf[0x4e18], 8)) - return 1; - - /* cdx 1.8 bios */ - if ((len >= 0x588+8) && !strncmp(" CDX PRO", (const char *) &buf[0x588], 8)) - return 1; - - /* ishido (hacked) */ - if (!strncmp("Ishido - ", (const char *) &buf[0x120], 9)) - return 1; - - /* onslaught */ - if (!strncmp("(C)ACLD 1991", (const char *) &buf[0x118], 12)) - return 1; - - /* trampoline terror pirate */ - if ((len >= 0x2c70+9) && !strncmp("DREAMWORK", (const char *) &buf[0x2c70], 9)) - return 1; - - /* breath of fire 3 chinese */ - if (buf[0x000f] == 0x1c && buf[0x0010] == 0x00 && buf[0x0011] == 0x0a && buf[0x0012] == 0x5c) - return 1; - - /* tetris pirate */ - if ((len >= 0x397f+6) && !strncmp("TETRIS", (const char *) &buf[0x397f], 6)) - return 1; - - return 0; -} - - - -static int genesis_isBIN(unsigned char *buf,unsigned int len) -{ - if (buf[0x0100] == 'S' && buf[0x0101] == 'E' && buf[0x0102] == 'G' && buf[0x0103] == 'A') - return 1; - return genesis_isfunkyBIN(buf,len); -} - - - -static int genesis_verify_cart(unsigned char *temp,unsigned int len) -{ - int retval = IMAGE_VERIFY_FAIL; - - /* is this an SMD file..? */ - if (genesis_isSMD(&temp[0x200],len)) - retval = IMAGE_VERIFY_PASS; - - /* How about a BIN file..? */ - if ((retval == IMAGE_VERIFY_FAIL) && genesis_isBIN(&temp[0],len)) - retval = IMAGE_VERIFY_PASS; - - /* maybe a .md file? (rare) */ - if ((retval == IMAGE_VERIFY_FAIL) && (temp[0x080] == 'E') && (temp[0x081] == 'A') && (temp[0x082] == 'M' || temp[0x082] == 'G')) - retval = IMAGE_VERIFY_PASS; - - if (retval == IMAGE_VERIFY_FAIL) - logerror("Invalid Image!\n"); - - return retval; -} - -int device_load_genesis_cart(mess_image *image) -{ - unsigned char *tmpROMnew, *tmpROM; - unsigned char *secondhalf; - unsigned char *rawROM; - int relocate; - int length; - int ptr, x; - unsigned char *ROM; - - rawROM = memory_region(REGION_USER1); - ROM = rawROM /*+ 512 */; - -// genesis_soundram = memory_region(REGION_CPU2); - - length = image_fread(image, rawROM + 0x2000, 0x400200); - logerror("image length = 0x%x\n", length); - - if (length < 1024 + 512) - goto bad; /* smallest known rom is 1.7K */ - - if (genesis_verify_cart(&rawROM[0x2000],(unsigned)length) == IMAGE_VERIFY_FAIL) - goto bad; - - if (genesis_isSMD(&rawROM[0x2200],(unsigned)length)) /* is this a SMD file..? */ - { - - tmpROMnew = ROM; - tmpROM = ROM + 0x2000 + 512; - - for (ptr = 0; ptr < (0x400000) / (8192); ptr += 2) - { - for (x = 0; x < 8192; x++) - { - *tmpROMnew++ = *(tmpROM + ((ptr + 1) * 8192) + x); - *tmpROMnew++ = *(tmpROM + ((ptr + 0) * 8192) + x); - } - } - - relocate = 0; - - } - else - /* check if it's a MD file */ - if ((rawROM[0x2080] == 'E') && - (rawROM[0x2081] == 'A') && - (rawROM[0x2082] == 'M' || rawROM[0x2082] == 'G')) /* is this a MD file..? */ - { - - tmpROMnew = malloc(length); - secondhalf = &tmpROMnew[length >> 1]; - - if (!tmpROMnew) - { - logerror("Memory allocation failed reading roms!\n"); - goto bad; - } - - memcpy(tmpROMnew, ROM + 0x2000, length); - - for (ptr = 0; ptr < length; ptr += 2) - { - - ROM[ptr] = secondhalf[ptr >> 1]; - ROM[ptr + 1] = tmpROMnew[ptr >> 1]; - } - free(tmpROMnew); - relocate = 0; - - } - else - /* BIN it is, then */ - { - relocate = 0x2000; - } - - ROM = memory_region(REGION_USER1); /* 68000 ROM region */ - - for (ptr = 0; ptr < 0x402000; ptr += 2) /* mangle bytes for littleendian machines */ - { -#ifdef LSB_FIRST - int temp = ROM[relocate + ptr]; - - ROM[ptr] = ROM[relocate + ptr + 1]; - ROM[ptr + 1] = temp; -#else - ROM[ptr] = ROM[relocate + ptr]; - ROM[ptr + 1] = ROM[relocate + ptr + 1]; -#endif - } - - return INIT_PASS; - -bad: - return INIT_FAIL; -} - - - -/* Main Genesis 68k */ - -static ADDRESS_MAP_START( genesis_68000_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x3fffff) AM_ROM AM_BASE(&genesis_cartridge) // cartridge area - AM_RANGE(0xa00000, 0xa07fff) AM_READWRITE(genesis_68000_z80_read, genesis_68000_z80_write) AM_MIRROR(0x8000) // z80 area - /* 0xa08000, 0xa0ffff mirrors above */ - AM_RANGE(0xa10000, 0xa1001f) AM_READWRITE(genesis_68000_io_r, genesis_68000_io_w) - AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(genesis_68000_z80_busreq_r, genesis_68000_z80_busreq_w) - AM_RANGE(0xa11200, 0xa11201) AM_WRITE(genesis_68000_z80_reset_w) - - AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(genesis_68000_vdp_r, genesis_68000_vdp_w) /* 0x20 in size, masked in handler */ - - AM_RANGE(0xe00000, 0xe0ffff) AM_RAMBANK(2) AM_MIRROR(0x1f0000) - /* 0xe10000, 0xffffff mirrors above */ -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( genesis_z80_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM // AM_MIRROR(0x2000) - /* 0x2000, 0x3fff mirrors above */ -// AM_RANGE(0x4000, 0x5fff) AM_READ(z80_ym2612_r) - AM_RANGE(0x4000, 0x4000) AM_READ(YM2612_status_port_0_A_r) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(z80_ym2612_w) -// AM_RANGE(0x4000, 0x4000) AM_WRITE(YM2612_control_port_0_A_w) -// AM_RANGE(0x4001, 0x4001) AM_WRITE(YM2612_data_port_0_A_w) -// AM_RANGE(0x4002, 0x4002) AM_WRITE(YM2612_control_port_0_B_w) -// AM_RANGE(0x4003, 0x4003) AM_WRITE(YM2612_data_port_0_B_w) - - AM_RANGE(0x6000, 0x60ff) AM_WRITE(genesis_z80_bank_sel_w) - - AM_RANGE(0x7f00, 0x7fff) AM_WRITE(genesis_z80_vdp_w) -// AM_RANGE(0x7f00, 0x7fff) AM_READ(genesis_z80_vdp_r) - - AM_RANGE(0x8000, 0xffff) AM_READ(genesis_banked_68k_r) - -// AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_RAM) - - -ADDRESS_MAP_END - - - -INPUT_PORTS_START( genesis ) - PORT_START /* IN0 player 1 controller */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("P1 Button A") PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("P1 Button B") PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("P1 Button C") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START) PORT_NAME("P1 Start") PORT_PLAYER(1) - - PORT_START /* IN1 player 2 controller */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("P2 Button A") PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("P2 Button B") PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("P2 Button C") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START) PORT_NAME("P2 Start") PORT_PLAYER(2) -INPUT_PORTS_END - - - -static struct YM2612interface ym3438_interface = -{ - NULL /* ym3438_interrupt */ -}; - - - -static MACHINE_DRIVER_START( gen_ntsc ) - - MDRV_CPU_ADD_TAG("main", M68000, 7670000) - MDRV_CPU_PROGRAM_MAP(genesis_68000_mem, 0) - MDRV_CPU_VBLANK_INT(genesis_interrupt,262) // use timers instead? - - MDRV_CPU_ADD(Z80, 3580000) - MDRV_CPU_PROGRAM_MAP(genesis_z80_mem, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(128*8, 128*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) -// MDRV_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1) - - MDRV_PALETTE_LENGTH(0x200) - - MDRV_INTERLEAVE(100) - - - MDRV_MACHINE_RESET(genesis) - - MDRV_VIDEO_START(genesis) - MDRV_VIDEO_UPDATE(genesis) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(YM2612, 7670000) - MDRV_SOUND_CONFIG(ym3438_interface) /* 8 MHz ?? */ - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - MDRV_SOUND_ADD(SN76496, 3580000) /* 3.58 MHz */ - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ADD(SN76496, 3580000) /* 3.58 MHz */ - MDRV_SOUND_ROUTE(1, "right", 0.50) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gen_pal ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(gen_ntsc) -// MDRV_CPU_MODIFY("main") -// MDRV_CPU_VBLANK_INT(genesis_interrupt,xxx) // use timers instead? more per frame? - - MDRV_SCREEN_REFRESH_RATE(50) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) -MACHINE_DRIVER_END - -/* we don't use the bios rom (its not needed and only provides security on early models) */ - -ROM_START(gen_usa) - ROM_REGION(0x415000, REGION_CPU1, 0) - ROM_REGION(0x405000, REGION_USER1, 0) - ROM_REGION( 0x10000, REGION_CPU2, 0) -ROM_END - -ROM_START(gen_eur) - ROM_REGION(0x415000, REGION_CPU1, 0) - ROM_REGION(0x405000, REGION_USER1, 0) - ROM_REGION( 0x10000, REGION_CPU2, 0) -ROM_END - -ROM_START(gen_jpn) - ROM_REGION(0x415000, REGION_CPU1, 0) - ROM_REGION(0x405000, REGION_USER1, 0) - ROM_REGION( 0x10000, REGION_CPU2, 0) -ROM_END - -static void genesis_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_genesis_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = NULL; /*genesis_partialhash*/ break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "smd,bin,md"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(genesis) - CONFIG_DEVICE(genesis_cartslot_getinfo) -SYSTEM_CONFIG_END - -DRIVER_INIT(gen_usa) -{ - genesis_is_ntsc = 1; // vdp status flag ... - genesis_region = 0x80; // read via io - -/* - D7 : Console is 1= Export (USA, Europe, etc.) 0= Domestic (Japan) - D6 : Video type is 1= PAL, 0= NTSC -*/ - init_genesis(machine); -} - - -DRIVER_INIT(gen_eur) -{ - genesis_is_ntsc = 0; // vdp status flag ... - genesis_region = 0xc0; // read via io - - init_genesis(machine); -} - - -DRIVER_INIT(gen_jpn) -{ - genesis_is_ntsc = 1; // vdp status flag ... - genesis_region = 0x00; // read via io - - init_genesis(machine); -} - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1988, gen_usa, 0, 0, gen_ntsc, genesis, gen_usa, genesis, "Sega", "Genesis (USA, NTSC)" , 0) -CONS( 1988, gen_eur, gen_usa, 0, gen_pal, genesis, gen_eur, genesis, "Sega", "Megadrive (Europe, PAL)" , 0) -CONS( 1988, gen_jpn, gen_usa, 0, gen_ntsc, genesis, gen_jpn, genesis, "Sega", "Megadrive (Japan, NTSC)" , 0) diff --git a/mess/systems/geneve.c b/mess/systems/geneve.c deleted file mode 100644 index 7922c8875..000000000 --- a/mess/systems/geneve.c +++ /dev/null @@ -1,653 +0,0 @@ -/* - MESS Driver for the Myarc Geneve 9640. - Raphael Nabet, 2003. - - The Geneve has two operation modes. One is compatible with the TI-99/4a, - the other is not. - - - General architecture: - - TMS9995@12MHz (including 256 bytes of on-chip 16-bit RAM and a timer), - V9938, SN76496 (compatible with TMS9919), TMS9901, MM58274 RTC, 512 kbytes - of 1-wait-state CPU RAM (expandable to almost 2 Mbytes), 32 kbytes of - 0-wait-state CPU RAM (expandable to 64 kbytes), 128 kbytes of VRAM - (expandable to 192 kbytes). - - - Memory map: - - 64-kbyte CPU address space is mapped to a 2-Mbyte virtual address space. - 8 8-kbyte pages are available simultaneously, out of a total of 256. - - Page map (regular console): - >00->3f: 512kbytes of CPU RAM (pages >36 and >37 are used to emulate - cartridge CPU ROMs in ti99 mode, and pages >38 through >3f are used to - emulate console and cartridge GROMs in ti99 mode) - >40->7f: optional Memex RAM (except >7a and >7c that are mirrors of >ba and - >bc?) - >80->b7: PE-bus space using spare address lines (AMA-AMC)? Used by RAM - extension (Memex or PE-Bus 512k card). - >b8->bf: PE-bus space (most useful pages are >ba: DSR space and >bc: speech - synthesizer page; other pages are used by RAM extension) - >c0->e7: optional Memex RAM - >e8->ef: 64kbytes of 0-wait-state RAM (with 32kbytes of SRAM installed, - only even pages (>e8, >ea, >ec and >ee) are available) - >f0->f1: boot ROM - >f2->fe: optional Memex RAM? (except >fa and >fc that are mirrors of >ba - and >bc?) - >ff: always empty? - - Page map (genmod console): - >00->39, >40->b9, >bb, >bd->ef, f2->fe: Memex RAM (except >3a, >3c, >7a, - >7c, >fa and >fc that are mirrors of >ba and >bc?) (I don't know if - >e8->ef is on the Memex board or the Geneve motherboard) - >ba: DSR space - >bc: speech synthesizer space - >f0->f1: boot ROM - >ff: always empty? - - >00->3f: switch-selectable(?): 512kbytes of onboard RAM (1-wait-state DRAM) - or first 512kbytes of the Memex Memory board (0-wait-state SRAM). The - latter setting is incompatible with TI mode. - - Note that >bc is actually equivalent to >8000->9fff on the /4a bus, - therefore the speech synthesizer is only available at offsets >1800->1bff - (read port) and >1c00->1fff (write port). OTOH, if you installed a FORTI - sound card, it will be available in the same page at offsets >0400->7ff. - - - Unpaged locations (ti99 mode): - >8000->8007: memory page registers (>8000 for page 0, >8001 for page 1, - etc. register >8003 is ignored (this page is hard-wired to >36->37). - >8008: key buffer - >8009->800f: ??? - >8010->801f: clock chip - >8400->9fff: sound, VDP, speech, and GROM registers (according to one - source, the GROM and sound registers are only available if page >3 - is mapped in at location >c000 (register 6). I am not sure the Speech - registers are implemented, though I guess they are.) - Note that >8020->83ff is mapped to regular CPU RAM according to map - register 4. - - Unpaged locations (native mode): - >f100: VDP data port (read/write) - >f102: VDP address/status port (read/write) - >f104: VDP port 2 - >f106: VDP port 3 - >f108->f10f: VDP mirror (used by Barry Boone's converted Tomy cartridges) - >f110->f117: memory page registers (>f110 for page 0, >f111 for page 1, - etc.) - >f118: key buffer - >f119->f11f: ??? - >f120: sound chip - >f121->f12f: ??? - >f130->f13f: clock chip - - Unpaged locations (tms9995 locations): - >f000->f0fb and >fffc->ffff: tms9995 RAM - >fffa->fffb: tms9995 timer register - Note: accessing tms9995 locations will also read/write corresponding paged - locations. - - - GROM emulator: - - The GPL interface is accessible only in TI99 mode. GPL data is fetched - from pages >38->3f. It uses a straight 16-bit address pointer. The - address pointer is incremented when the read data and write data ports - are accessed, and when the second byte of the GPL address is written. A - weird consequence of this is the fact that GPL data is always off by one - byte, i.e. GPL bytes 0, 1, 2... are stored in bytes 1, 2, 3... of pages - >38->3f (byte 0 of page >38 corresponds to GPL address >ffff). - - I think that I have once read that the geneve GROM emulator does not - emulate wrap-around within a GROM, i.e. address >1fff is followed by >2000 - (instead of >0000 with a real GROM). - - There are two ways to implement GPL address load and store. - One is maintaining 2 flags (one for address read and one for address write) - that tell if you are accessing address LSB: these flags must be cleared - whenever data is read, and the read flag must be cleared when the write - address port is written to. - The other is to shift the register and always read/write the MSByte of the - address pointer. The LSByte is copied to the MSbyte when the address is - read, whereas the former MSByte is copied to the LSByte when the address is - written. The address pointer must be incremented after the address is - written to. It will not harm if it is incremented after the address is - read, provided the LSByte has been cleared. - - - Cartridge emulator: - - The cartridge interface is in the >6000->7fff area. - - If CRU bit @>F7C is set, the cartridge area is always mapped to virtual - page >36. Writes in the >6000->6fff area are ignored if the CRU bit @>F7D - is 0, whereas writes in the >7000->7fff area are ignored if the CRU bit - @>F7E is 0. - - If CRU bit @>F7C is clear, the cartridge area is mapped either to virtual - page >36 or to page >37 according to which page is currently selected. - Writing data to address >6000->7fff will select page >36 if A14 is 0, - >37 if A14 is 1. - - - CRU map: - - Base >0000: tms9901 - tms9901 pin assignment: - int1: external interrupt (INTA on PE-bus) (connected to tms9995 (int4/EC)* - pin as well) - int2: VDP interrupt - int3-int7: joystick port inputs (fire, left, right, down, up) - int8: keyboard interrupt (asserted when key buffer full) - int9/p13: unused - int10/p12: third mouse button - int11/p11: clock interrupt? - int12/p10: INTB from PE-bus - int13/p9: (used as output) - int14/p8: unused - int15/p7: (used as output) - p0: PE-bus reset line - p1: VDP reset line - p2: joystick select (0 for joystick 1, 1 for joystick 2) - p3-p5: unused - p6: keyboard reset line - p7/int15: external mem cycles 0=long, 1=short - p9/int13: vdp wait cycles 1=add 15 cycles, 0=add none - - Base >1EE0 (>0F70): tms9995 flags and geneve mode register - bits 0-1: tms9995 flags - Bits 2-4: tms9995 interrupt state register - Bits 5-15: tms9995 user flags - overlaps geneve mode, but hopefully the - geneve registers are write-only, so no real conflict happens - TMS9995 user flags: - Bit 5: 0 if NTSC, 1 if PAL video - Bit 6: unused??? - Bit 7: some keyboard flag, set to 1 if caps is on - Geneve gate array + TMS9995 user flags: - Bit 8: 1 = allow keyboard clock - Bit 9: 0 = clear keyboard input buffer, 1 = allow keyboard buffer to be - loaded - Bit 10: 1 = geneve mode, 0 = ti99 mode - Bit 11: 1 = ROM mode, 0 = map mode - Bit 12: 0 = Enable cartridge paging - Bit 13: 0 = protect cartridge range >6000->6fff - Bit 14: 0 = protect cartridge range >7000->7fff - bit 15: 1 = add 1 extra wait state when accessing 0-wait-state SRAM??? - - - Keyboard interface: - - The XT keyboard interface is described in various places on the internet, - like (http://www-2.cs.cmu.edu/afs/cs/usr/jmcm/www/info/key2.txt). It is a - synchronous unidirectional serial interface: the data line is driven by the - keyboard to send data to the CPU; the CTS/clock line has a pull up resistor - and can be driven low by both keyboard and CPU. To send data to the CPU, - the keyboard pulses the clock line low 9 times, and the Geneve samples all - 8 bits of data (plus one start bit) on each falling edge of the clock. - When the key code buffer is full, the Geneve gate array asserts the kbdint* - line (connected to 9901 INT8*). The Geneve gate array will hold the - CTS/clock line low as long as the keyboard buffer is full or CRU bit @>F78 - is 0. Writing a 0 to >F79 will clear the Geneve keyboard buffer, and - writing a 1 will resume normal operation: you need to write a 0 to >F78 - before clearing >F79, or the keyboard will be enabled to send data the gate - array when >F79 is is set to 0, and any such incoming data from the - keyboard will be cleared as soon as it is buffered by the gate array. -*/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/v9938.h" - -#include "includes/geneve.h" -#include "machine/ti99_4x.h" -#include "machine/tms9901.h" -#include "sndhrdw/spchroms.h" -#include "machine/99_peb.h" -#include "machine/994x_ser.h" -#include "machine/99_dsk.h" -#include "machine/99_ide.h" -#include "devices/mflopimg.h" -#include "machine/smartmed.h" -#include "sound/5220intf.h" -#include "devices/harddriv.h" - -/* - memory map -*/ - -static ADDRESS_MAP_START(memmap, ADDRESS_SPACE_PROGRAM, 8) - - AM_RANGE(0x0000, 0xffff) AM_READWRITE(geneve_r, geneve_w) - -ADDRESS_MAP_END - - -/* - CRU map -*/ - -static ADDRESS_MAP_START(writecru, ADDRESS_SPACE_IO, 8) - - AM_RANGE(0x0000, 0x07ff) AM_WRITE(tms9901_0_cru_w) - AM_RANGE(0x0800, 0x0fff) AM_WRITE(geneve_peb_mode_cru_w) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START(readcru, ADDRESS_SPACE_IO, 8) - - AM_RANGE(0x0000, 0x00ff) AM_READ(tms9901_0_cru_r) - AM_RANGE(0x0100, 0x01ff) AM_READ(geneve_peb_cru_r) - -ADDRESS_MAP_END - - -/* - Input ports, used by machine code for keyboard and joystick emulation. -*/ - -#define AT_KEYB_HELPER(bit, text, key1) \ - PORT_BIT( bit, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(text) PORT_CODE(key1) - -/* 101-key PC XT keyboard + TI joysticks */ -INPUT_PORTS_START(geneve) - - PORT_START /* config */ - PORT_BIT( config_speech_mask << config_speech_bit, 1 << config_speech_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Speech synthesis") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_speech_bit, DEF_STR( On ) ) - PORT_BIT( config_fdc_mask << config_fdc_bit, fdc_kind_hfdc << config_fdc_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Floppy disk controller") - PORT_DIPSETTING( fdc_kind_none << config_fdc_bit, DEF_STR( None ) ) - PORT_DIPSETTING( fdc_kind_TI << config_fdc_bit, "Texas Instruments SD" ) -#if HAS_99CCFDC - PORT_DIPSETTING( fdc_kind_CC << config_fdc_bit, "CorComp" ) -#endif - PORT_DIPSETTING( fdc_kind_BwG << config_fdc_bit, "SNUG's BwG" ) - PORT_DIPSETTING( fdc_kind_hfdc << config_fdc_bit, "Myarc's HFDC" ) - PORT_BIT( config_ide_mask << config_ide_bit, /*1 << config_ide_bit*/0, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's IDE card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_ide_bit, DEF_STR( On ) ) - PORT_BIT( config_rs232_mask << config_rs232_bit, 1 << config_rs232_bit, IPT_DIPSWITCH_NAME) PORT_NAME("TI RS232 card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_rs232_bit, DEF_STR( On ) ) - PORT_BIT( config_usbsm_mask << config_usbsm_bit, 1 << config_usbsm_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's USB-SM card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_usbsm_bit, DEF_STR( On ) ) - - PORT_START /* col 1: "wired handset 1" (= joystick 1) */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(1UP)", CODE_NONE, OSD_JOY_UP*/) PORT_PLAYER(1) - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(1DOWN)", CODE_NONE, OSD_JOY_DOWN, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(1RIGHT)", CODE_NONE, OSD_JOY_RIGHT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(1LEFT)", CODE_NONE, OSD_JOY_LEFT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(1FIRE)", CODE_NONE, OSD_JOY_FIRE, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0007, IP_ACTIVE_HIGH, IPT_UNUSED) - /* col 2: "wired handset 2" (= joystick 2) */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(2UP)", CODE_NONE, OSD_JOY2_UP, 0*/) PORT_PLAYER(2) - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(2DOWN)", CODE_NONE, OSD_JOY2_DOWN, 0*/) PORT_PLAYER(2) - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(2RIGHT)", CODE_NONE, OSD_JOY2_RIGHT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(2LEFT)", CODE_NONE, OSD_JOY2_LEFT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(2FIRE)", CODE_NONE, OSD_JOY2_FIRE, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0700, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START /* mouse buttons */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("mouse button 1") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("mouse button 2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("mouse button 3") - - PORT_START /* Mouse - X AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - Y AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* IN3 */ - PORT_BIT ( 0x0001, 0x0000, IPT_UNUSED ) /* unused scancode 0 */ - AT_KEYB_HELPER( 0x0002, "Esc", KEYCODE_ESC ) /* Esc 01 81 */ - AT_KEYB_HELPER( 0x0004, "1 !", KEYCODE_1 ) /* 1 02 82 */ - AT_KEYB_HELPER( 0x0008, "2 @", KEYCODE_2 ) /* 2 03 83 */ - AT_KEYB_HELPER( 0x0010, "3 #", KEYCODE_3 ) /* 3 04 84 */ - AT_KEYB_HELPER( 0x0020, "4 $", KEYCODE_4 ) /* 4 05 85 */ - AT_KEYB_HELPER( 0x0040, "5 %", KEYCODE_5 ) /* 5 06 86 */ - AT_KEYB_HELPER( 0x0080, "6 ^", KEYCODE_6 ) /* 6 07 87 */ - AT_KEYB_HELPER( 0x0100, "7 &", KEYCODE_7 ) /* 7 08 88 */ - AT_KEYB_HELPER( 0x0200, "8 *", KEYCODE_8 ) /* 8 09 89 */ - AT_KEYB_HELPER( 0x0400, "9 (", KEYCODE_9 ) /* 9 0A 8A */ - AT_KEYB_HELPER( 0x0800, "0 )", KEYCODE_0 ) /* 0 0B 8B */ - AT_KEYB_HELPER( 0x1000, "- _", KEYCODE_MINUS ) /* - 0C 8C */ - AT_KEYB_HELPER( 0x2000, "= +", KEYCODE_EQUALS ) /* = 0D 8D */ - AT_KEYB_HELPER( 0x4000, "Backspace", KEYCODE_BACKSPACE ) /* Backspace 0E 8E */ - AT_KEYB_HELPER( 0x8000, "Tab", KEYCODE_TAB ) /* Tab 0F 8F */ - - PORT_START /* IN4 */ - AT_KEYB_HELPER( 0x0001, "Q", KEYCODE_Q ) /* Q 10 90 */ - AT_KEYB_HELPER( 0x0002, "W", KEYCODE_W ) /* W 11 91 */ - AT_KEYB_HELPER( 0x0004, "E", KEYCODE_E ) /* E 12 92 */ - AT_KEYB_HELPER( 0x0008, "R", KEYCODE_R ) /* R 13 93 */ - AT_KEYB_HELPER( 0x0010, "T", KEYCODE_T ) /* T 14 94 */ - AT_KEYB_HELPER( 0x0020, "Y", KEYCODE_Y ) /* Y 15 95 */ - AT_KEYB_HELPER( 0x0040, "U", KEYCODE_U ) /* U 16 96 */ - AT_KEYB_HELPER( 0x0080, "I", KEYCODE_I ) /* I 17 97 */ - AT_KEYB_HELPER( 0x0100, "O", KEYCODE_O ) /* O 18 98 */ - AT_KEYB_HELPER( 0x0200, "P", KEYCODE_P ) /* P 19 99 */ - AT_KEYB_HELPER( 0x0400, "[ {", KEYCODE_OPENBRACE ) /* [ 1A 9A */ - AT_KEYB_HELPER( 0x0800, "] }", KEYCODE_CLOSEBRACE ) /* ] 1B 9B */ - AT_KEYB_HELPER( 0x1000, "Enter", KEYCODE_ENTER ) /* Enter 1C 9C */ - AT_KEYB_HELPER( 0x2000, "L-Ctrl", KEYCODE_LCONTROL ) /* Left Ctrl 1D 9D */ - AT_KEYB_HELPER( 0x4000, "A", KEYCODE_A ) /* A 1E 9E */ - AT_KEYB_HELPER( 0x8000, "S", KEYCODE_S ) /* S 1F 9F */ - - PORT_START /* IN5 */ - AT_KEYB_HELPER( 0x0001, "D", KEYCODE_D ) /* D 20 A0 */ - AT_KEYB_HELPER( 0x0002, "F", KEYCODE_F ) /* F 21 A1 */ - AT_KEYB_HELPER( 0x0004, "G", KEYCODE_G ) /* G 22 A2 */ - AT_KEYB_HELPER( 0x0008, "H", KEYCODE_H ) /* H 23 A3 */ - AT_KEYB_HELPER( 0x0010, "J", KEYCODE_J ) /* J 24 A4 */ - AT_KEYB_HELPER( 0x0020, "K", KEYCODE_K ) /* K 25 A5 */ - AT_KEYB_HELPER( 0x0040, "L", KEYCODE_L ) /* L 26 A6 */ - AT_KEYB_HELPER( 0x0080, "; :", KEYCODE_COLON ) /* ; 27 A7 */ - AT_KEYB_HELPER( 0x0100, "' \"", KEYCODE_QUOTE ) /* ' 28 A8 */ - AT_KEYB_HELPER( 0x0200, "` ~", KEYCODE_TILDE ) /* ` 29 A9 */ - AT_KEYB_HELPER( 0x0400, "L-Shift", KEYCODE_LSHIFT ) /* Left Shift 2A AA */ - AT_KEYB_HELPER( 0x0800, "\\ |", KEYCODE_BACKSLASH ) /* \ 2B AB */ - AT_KEYB_HELPER( 0x1000, "Z", KEYCODE_Z ) /* Z 2C AC */ - AT_KEYB_HELPER( 0x2000, "X", KEYCODE_X ) /* X 2D AD */ - AT_KEYB_HELPER( 0x4000, "C", KEYCODE_C ) /* C 2E AE */ - AT_KEYB_HELPER( 0x8000, "V", KEYCODE_V ) /* V 2F AF */ - - PORT_START /* IN6 */ - AT_KEYB_HELPER( 0x0001, "B", KEYCODE_B ) /* B 30 B0 */ - AT_KEYB_HELPER( 0x0002, "N", KEYCODE_N ) /* N 31 B1 */ - AT_KEYB_HELPER( 0x0004, "M", KEYCODE_M ) /* M 32 B2 */ - AT_KEYB_HELPER( 0x0008, ", <", KEYCODE_COMMA ) /* , 33 B3 */ - AT_KEYB_HELPER( 0x0010, ". >", KEYCODE_STOP ) /* . 34 B4 */ - AT_KEYB_HELPER( 0x0020, "/ ?", KEYCODE_SLASH ) /* / 35 B5 */ - AT_KEYB_HELPER( 0x0040, "R-Shift", KEYCODE_RSHIFT ) /* Right Shift 36 B6 */ - AT_KEYB_HELPER( 0x0080, "KP * (PrtScr)",KEYCODE_ASTERISK ) /* Keypad * (PrtSc) 37 B7 */ - AT_KEYB_HELPER( 0x0100, "Alt", KEYCODE_LALT ) /* Left Alt 38 B8 */ - AT_KEYB_HELPER( 0x0200, "Space", KEYCODE_SPACE ) /* Space 39 B9 */ - AT_KEYB_HELPER( 0x0400, "Caps", KEYCODE_CAPSLOCK ) /* Caps Lock 3A BA */ - AT_KEYB_HELPER( 0x0800, "F1", KEYCODE_F1 ) /* F1 3B BB */ - AT_KEYB_HELPER( 0x1000, "F2", KEYCODE_F2 ) /* F2 3C BC */ - AT_KEYB_HELPER( 0x2000, "F3", KEYCODE_F3 ) /* F3 3D BD */ - AT_KEYB_HELPER( 0x4000, "F4", KEYCODE_F4 ) /* F4 3E BE */ - AT_KEYB_HELPER( 0x8000, "F5", KEYCODE_F5 ) /* F5 3F BF */ - - PORT_START /* IN7 */ - AT_KEYB_HELPER( 0x0001, "F6", KEYCODE_F6 ) /* F6 40 C0 */ - AT_KEYB_HELPER( 0x0002, "F7", KEYCODE_F7 ) /* F7 41 C1 */ - AT_KEYB_HELPER( 0x0004, "F8", KEYCODE_F8 ) /* F8 42 C2 */ - AT_KEYB_HELPER( 0x0008, "F9", KEYCODE_F9 ) /* F9 43 C3 */ - AT_KEYB_HELPER( 0x0010, "F10", KEYCODE_F10 ) /* F10 44 C4 */ - AT_KEYB_HELPER( 0x0020, "NumLock", KEYCODE_NUMLOCK ) /* Num Lock 45 C5 */ - AT_KEYB_HELPER( 0x0040, "ScrLock (F14)",KEYCODE_SCRLOCK ) /* Scroll Lock 46 C6 */ - AT_KEYB_HELPER( 0x0080, "KP 7 (Home)", KEYCODE_7_PAD ) /* Keypad 7 (Home) 47 C7 */ - AT_KEYB_HELPER( 0x0100, "KP 8 (Up)", KEYCODE_8_PAD ) /* Keypad 8 (Up arrow) 48 C8 */ - AT_KEYB_HELPER( 0x0200, "KP 9 (PgUp)", KEYCODE_9_PAD ) /* Keypad 9 (PgUp) 49 C9 */ - AT_KEYB_HELPER( 0x0400, "KP -", KEYCODE_MINUS_PAD ) /* Keypad - 4A CA */ - AT_KEYB_HELPER( 0x0800, "KP 4 (Left)", KEYCODE_4_PAD ) /* Keypad 4 (Left arrow) 4B CB */ - AT_KEYB_HELPER( 0x1000, "KP 5", KEYCODE_5_PAD ) /* Keypad 5 4C CC */ - AT_KEYB_HELPER( 0x2000, "KP 6 (Right)", KEYCODE_6_PAD ) /* Keypad 6 (Right arrow) 4D CD */ - AT_KEYB_HELPER( 0x4000, "KP +", KEYCODE_PLUS_PAD ) /* Keypad + 4E CE */ - AT_KEYB_HELPER( 0x8000, "KP 1 (End)", KEYCODE_1_PAD ) /* Keypad 1 (End) 4F CF */ - - PORT_START /* IN8 */ - AT_KEYB_HELPER( 0x0001, "KP 2 (Down)", KEYCODE_2_PAD ) /* Keypad 2 (Down arrow) 50 D0 */ - AT_KEYB_HELPER( 0x0002, "KP 3 (PgDn)", KEYCODE_3_PAD ) /* Keypad 3 (PgDn) 51 D1 */ - AT_KEYB_HELPER( 0x0004, "KP 0 (Ins)", KEYCODE_0_PAD ) /* Keypad 0 (Ins) 52 D2 */ - AT_KEYB_HELPER( 0x0008, "KP . (Del)", KEYCODE_DEL_PAD ) /* Keypad . (Del) 53 D3 */ - PORT_BIT ( 0x0030, 0x0000, IPT_UNUSED ) - AT_KEYB_HELPER( 0x0040, "(84/102)\\", KEYCODE_BACKSLASH2 ) /* Backslash 2 56 D6 */ - AT_KEYB_HELPER( 0x0080, "(101)F11", KEYCODE_F11 ) /* F11 57 D7 */ - AT_KEYB_HELPER( 0x0100, "(101)F12", KEYCODE_F12 ) /* F12 58 D8 */ - PORT_BIT ( 0xfe00, 0x0000, IPT_UNUSED ) - - PORT_START /* IN9 */ - AT_KEYB_HELPER( 0x0001, "(101)KP Enter", KEYCODE_ENTER_PAD ) /* PAD Enter 60 e0 */ - AT_KEYB_HELPER( 0x0002, "(101)R-Control", KEYCODE_RCONTROL ) /* Right Control 61 e1 */ - AT_KEYB_HELPER( 0x0004, "(101)ALTGR", KEYCODE_RALT ) /* ALTGR 64 e4 */ - - AT_KEYB_HELPER( 0x0008, "(101)KP /", KEYCODE_SLASH_PAD ) /* PAD Slash 62 e2 */ - - AT_KEYB_HELPER( 0x0010, "(101)Home", KEYCODE_HOME ) /* Home 66 e6 */ - AT_KEYB_HELPER( 0x0020, "(101)Cursor Up", KEYCODE_UP ) /* Up 67 e7 */ - AT_KEYB_HELPER( 0x0040, "(101)Page Up", KEYCODE_PGUP ) /* Page Up 68 e8 */ - AT_KEYB_HELPER( 0x0080, "(101)Cursor Left", KEYCODE_LEFT ) /* Left 69 e9 */ - AT_KEYB_HELPER( 0x0100, "(101)Cursor Right",KEYCODE_RIGHT ) /* Right 6a ea */ - AT_KEYB_HELPER( 0x0200, "(101)End", KEYCODE_END ) /* End 6b eb */ - AT_KEYB_HELPER( 0x0400, "(101)Cursor Down", KEYCODE_DOWN ) /* Down 6c ec */ - AT_KEYB_HELPER( 0x0800, "(101)Page Down", KEYCODE_PGDN ) /* Page Down 6d ed */ - AT_KEYB_HELPER( 0x1000, "(101)Insert", KEYCODE_INSERT ) /* Insert 6e ee */ - AT_KEYB_HELPER( 0x2000, "(101)Delete", KEYCODE_DEL ) /* Delete 6f ef */ - - AT_KEYB_HELPER( 0x4000, "(101)PrtScr (F13)",KEYCODE_PRTSCR ) /* Print Screen 63 e3 */ - AT_KEYB_HELPER( 0x8000, "(101)Pause (F15)", KEYCODE_PAUSE ) /* Pause 65 e5 */ - - PORT_START /* IN10 */ - PORT_BIT ( 0xffff, 0x0000, IPT_UNUSED ) -#if 0 - AT_KEYB_HELPER( 0x0001, "Print Screen", KEYCODE_PRTSCR ) /* Print Screen alternate 77 f7 */ - AT_KEYB_HELPER( 0x2000, "Left Win", CODE_NONE ) /* Left Win 7d fd */ - AT_KEYB_HELPER( 0x4000, "Right Win", CODE_NONE ) /* Right Win 7e fe */ - AT_KEYB_HELPER( 0x8000, "Menu", CODE_NONE ) /* Menu 7f ff */ -#endif - -INPUT_PORTS_END - - - - -static struct TMS5220interface tms5220interface = -{ - NULL, /* no IRQ callback */ -#if 1 - spchroms_read, /* speech ROM read handler */ - spchroms_load_address, /* speech ROM load address handler */ - spchroms_read_and_branch /* speech ROM read and branch handler */ -#endif -}; - - -static MACHINE_DRIVER_START(geneve_60hz) - - /* basic machine hardware */ - /* TMS9995 CPU @ 12.0 MHz */ - MDRV_CPU_ADD(TMS9995, 12000000) - /*MDRV_CPU_CONFIG(0)*/ - MDRV_CPU_PROGRAM_MAP(memmap, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(geneve_hblank_interrupt, 262) /* 262.5 in 60Hz, 312.5 in 50Hz */ - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(60) /* or 50Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( geneve ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512 + 32, (212 + 28) * 2) - MDRV_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1) - - /*MDRV_GFXDECODE(NULL)*/ - MDRV_PALETTE_LENGTH(512) - MDRV_COLORTABLE_LENGTH(512) - - MDRV_PALETTE_INIT(v9938) - MDRV_VIDEO_START(geneve) - /*MDRV_VIDEO_EOF(name)*/ - MDRV_VIDEO_UPDATE(generic_bitmapped) - - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - -MACHINE_DRIVER_END - - -/* - ROM loading - - Note that we use the same ROMset for 50Hz and 60Hz versions. -*/ - -ROM_START(geneve) - /*CPU memory space*/ - ROM_REGION(region_cpu1_len_geneve, REGION_CPU1, 0) - ROM_LOAD("genbt100.bin", offset_rom_geneve, 0x4000, CRC(8001e386) SHA1(b44618b54dabac3882543e18555d482b299e0109)) /* CPU ROMs */ - - /*DSR ROM space*/ - ROM_REGION(region_dsr_len, region_dsr, 0) - ROM_LOAD_OPTIONAL("disk.bin", offset_fdc_dsr, 0x2000, CRC(8f7df93f) SHA1(ed91d48c1eaa8ca37d5055bcf67127ea51c4cad5)) /* TI disk DSR ROM */ -#if HAS_99CCFDC - ROM_LOAD_OPTIONAL("ccfdc.bin", offset_ccfdc_dsr, 0x4000, BAD_DUMP CRC(f69cc69d)) /* CorComp disk DSR ROM */ -#endif - ROM_LOAD_OPTIONAL("bwg.bin", offset_bwg_dsr, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ - ROM_LOAD_OPTIONAL("hfdc.bin", offset_hfdc_dsr, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ - ROM_LOAD_OPTIONAL("rs232.bin", offset_rs232_dsr, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ - - /*TMS5220 ROM space*/ - ROM_REGION(0x8000, region_speech_rom, 0) - ROM_LOAD_OPTIONAL("spchrom.bin", 0x0000, 0x8000, CRC(58b155f7) SHA1(382292295c00dff348d7e17c5ce4da12a1d87763)) /* system speech ROM */ -ROM_END - -ROM_START(genmod) - /*CPU memory space*/ - ROM_REGION(region_cpu1_len_geneve, REGION_CPU1, 0) - ROM_LOAD("gnmbt100.bin", offset_rom_geneve, 0x4000, CRC(19b89479) SHA1(6ef297eda78dc705946f6494e9d7e95e5216ec47)) /* CPU ROMs */ - - /*DSR ROM space*/ - ROM_REGION(region_dsr_len, region_dsr, 0) - ROM_LOAD_OPTIONAL("disk.bin", offset_fdc_dsr, 0x2000, CRC(8f7df93f) SHA1(ed91d48c1eaa8ca37d5055bcf67127ea51c4cad5)) /* TI disk DSR ROM */ -#if HAS_99CCFDC - ROM_LOAD_OPTIONAL("ccfdc.bin", offset_ccfdc_dsr, 0x4000, BAD_DUMP CRC(f69cc69d)) /* CorComp disk DSR ROM */ -#endif - ROM_LOAD_OPTIONAL("bwg.bin", offset_bwg_dsr, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ - ROM_LOAD_OPTIONAL("hfdc.bin", offset_hfdc_dsr, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ - ROM_LOAD_OPTIONAL("rs232.bin", offset_rs232_dsr, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ - - /*TMS5220 ROM space*/ - ROM_REGION(0x8000, region_speech_rom, 0) - ROM_LOAD_OPTIONAL("spchrom.bin", 0x0000, 0x8000, CRC(58b155f7) SHA1(382292295c00dff348d7e17c5ce4da12a1d87763)) /* system speech ROM */ -ROM_END - -static void geneve_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_ti99; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void geneve_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_HARDDISK; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 3; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_mess_hd; break; - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_hd; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_hd; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "hd"); break; - } -} - -static void geneve_parallel_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* parallel */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PARALLEL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_4_pio; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_4_pio; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -static void geneve_serial_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* serial */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_SERIAL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_4_rs232; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_4_rs232; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -static void geneve_memcard_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* memcard */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_MEMCARD; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_smartmedia; break; - case DEVINFO_PTR_LOAD: info->load = device_load_smartmedia; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_smartmedia; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -SYSTEM_CONFIG_START(geneve) - CONFIG_DEVICE(geneve_floppy_getinfo) - CONFIG_DEVICE(geneve_harddisk_getinfo) - CONFIG_DEVICE(ti99_ide_harddisk_getinfo) - CONFIG_DEVICE(geneve_parallel_getinfo) - CONFIG_DEVICE(geneve_serial_getinfo) - CONFIG_DEVICE(geneve_memcard_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1987?,geneve, 0, 0, geneve_60hz, geneve, geneve, geneve, "Myarc", "Geneve 9640" , 0) -COMP( 199??,genmod, geneve, 0, geneve_60hz, geneve, genmod, geneve, "Myarc", "Geneve 9640 (with Genmod modification)" , 0) diff --git a/mess/systems/hp48.c b/mess/systems/hp48.c deleted file mode 100644 index af86a2ff2..000000000 --- a/mess/systems/hp48.c +++ /dev/null @@ -1,241 +0,0 @@ -/****************************************************************************** - hp48 - Peter.Trauner@jk.uni-linz.ac.at May 2000 -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/saturn/saturn.h" - -#include "includes/hp48.h" - -/* hp28s - 0-0x3ffff rom - 0xc0000- 0xcffff ram also mapped at 0xd0000-0xdffff */ - -static ADDRESS_MAP_START(hp48_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x00000, 0xfffff) AM_ROM // configured at runtime, complexe mmu -ADDRESS_MAP_END - -#define DIPS_HELPER(bit, name, keycode, r) \ - PORT_BIT(bit, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(name) PORT_CODE(keycode) PORT_CODE(r) - - -INPUT_PORTS_START( hp48s ) -#if 1 - PORT_START - DIPS_HELPER( 0x80, " A", KEYCODE_A, CODE_NONE) - DIPS_HELPER( 0x40, " B", KEYCODE_B, CODE_NONE) - DIPS_HELPER( 0x20, " C", KEYCODE_C, CODE_NONE) - DIPS_HELPER( 0x10, " D", KEYCODE_D, CODE_NONE) - DIPS_HELPER( 0x08, " E", KEYCODE_E, CODE_NONE) - DIPS_HELPER( 0x04, " F", KEYCODE_F, CODE_NONE) - DIPS_HELPER( 0x02, "MTH G PRINT", KEYCODE_G, CODE_NONE) - DIPS_HELPER( 0x01, "PRG H I/0", KEYCODE_H, CODE_NONE) - PORT_START - DIPS_HELPER( 0x80, "CST I MODES", KEYCODE_I, CODE_NONE) - DIPS_HELPER( 0x40, "VAR J MEMORY", KEYCODE_J, CODE_NONE) - DIPS_HELPER( 0x20, "up K LIBRARY", KEYCODE_K, KEYCODE_UP) - DIPS_HELPER( 0x10, "NXT L PREV", KEYCODE_L, CODE_NONE) - DIPS_HELPER( 0x08, "' M UP HOME", KEYCODE_M, CODE_NONE) - DIPS_HELPER( 0x04, "STO N DEF RCL", KEYCODE_N, CODE_NONE) - DIPS_HELPER( 0x02, "EVAL O ->Q ->NUM", KEYCODE_P, CODE_NONE) - DIPS_HELPER( 0x01, "left P GRAPH", KEYCODE_P, KEYCODE_LEFT) - PORT_START - DIPS_HELPER( 0x80, "down Q REVIEW", KEYCODE_Q, KEYCODE_DOWN) - DIPS_HELPER( 0x40, "right R SWAP", KEYCODE_R, KEYCODE_RIGHT) - DIPS_HELPER( 0x20, "SIN S ASIN a", KEYCODE_S, CODE_NONE) - DIPS_HELPER( 0x10, "COS T ACOS Integral", KEYCODE_T, CODE_NONE) - DIPS_HELPER( 0x08, "TAN U ATAN sum", KEYCODE_U, CODE_NONE) - DIPS_HELPER( 0x04, "sqrt V square root", KEYCODE_V, CODE_NONE) - DIPS_HELPER( 0x02, "power W 10^x LOG", KEYCODE_W, CODE_NONE) - DIPS_HELPER( 0x01, "1/x X e^x LN", KEYCODE_X, CODE_NONE) - PORT_START - DIPS_HELPER( 0x80, "ENTER EQUATION MATRIX", KEYCODE_ENTER, KEYCODE_ENTER_PAD) - DIPS_HELPER( 0x40, "+/- Y EDIT VISIT", KEYCODE_Y, CODE_NONE) - DIPS_HELPER( 0x20, "EEX Z 2D 3D", KEYCODE_Z, CODE_NONE) - DIPS_HELPER( 0x10, "DEL PURGE", KEYCODE_DEL, CODE_NONE) - DIPS_HELPER( 0x08, "<-- DROP CLR", KEYCODE_BACKSPACE, CODE_NONE) - DIPS_HELPER( 0x04, "alpha USR ENTRY", KEYCODE_LSHIFT, KEYCODE_RSHIFT) - DIPS_HELPER( 0x02, "7 SOLVE", KEYCODE_7, KEYCODE_7_PAD) - DIPS_HELPER( 0x01, "8 PLOT", KEYCODE_8, KEYCODE_8_PAD) - PORT_START - DIPS_HELPER( 0x80, "9 ALGEBRA", KEYCODE_9, KEYCODE_9_PAD) - DIPS_HELPER( 0x40, "divide () #", KEYCODE_SLASH, KEYCODE_SLASH_PAD) - DIPS_HELPER( 0x20, "orange", KEYCODE_LCONTROL, KEYCODE_RCONTROL) - DIPS_HELPER( 0x10, "4 TIME", KEYCODE_4, KEYCODE_4_PAD) - DIPS_HELPER( 0x08, "5 STAT", KEYCODE_5, KEYCODE_5_PAD) - DIPS_HELPER( 0x04, "6 UNITS", KEYCODE_6, KEYCODE_6_PAD) - DIPS_HELPER( 0x02, "* [] _", KEYCODE_BACKSPACE, KEYCODE_ASTERISK) - DIPS_HELPER( 0x01, "blue", KEYCODE_LALT, KEYCODE_RALT) - PORT_START - DIPS_HELPER( 0x80, "1 RAD POLAR", KEYCODE_1, KEYCODE_1_PAD) - DIPS_HELPER( 0x40, "2 STACK ARG", KEYCODE_2, KEYCODE_2_PAD) - DIPS_HELPER( 0x20, "3 CMD MENU", KEYCODE_3, KEYCODE_3_PAD) - DIPS_HELPER( 0x10, "- <<>> \"\"", KEYCODE_MINUS, KEYCODE_MINUS_PAD) - DIPS_HELPER( 0x08, "ON CONT OFF", KEYCODE_F1, CODE_NONE) - DIPS_HELPER( 0x04, "0 = ->", KEYCODE_0, KEYCODE_0_PAD) - DIPS_HELPER( 0x02, ". , enter", KEYCODE_STOP, KEYCODE_DEL_PAD) - DIPS_HELPER( 0x01, "SPC Pi angle", KEYCODE_SPACE, CODE_NONE) - PORT_START - DIPS_HELPER( 0x80, "+ {} ::", KEYCODE_EQUALS, KEYCODE_PLUS_PAD) - -#else - PORT_START - PORT_BIT ( 0x20, 0, IPT_UNUSED ) - DIPS_HELPER( 0x10, "B", KEYCODE_F2) - DIPS_HELPER( 0x08, "C", KEYCODE_F3) - DIPS_HELPER( 0x04, "D", KEYCODE_F4) - DIPS_HELPER( 0x02, "E", KEYCODE_F5) - DIPS_HELPER( 0x01, "F", KEYCODE_F6) - PORT_START - PORT_BIT ( 0x20, 0, IPT_UNUSED ) - DIPS_HELPER( 0x10, "PRG", KEYCODE_A) - DIPS_HELPER( 0x08, "CST", KEYCODE_B) - DIPS_HELPER( 0x04, "VAR", KEYCODE_C) - DIPS_HELPER( 0x02, "up", KEYCODE_UP) - DIPS_HELPER( 0x01, "NXT", KEYCODE_D) - PORT_START - PORT_BIT ( 0x20, 0, IPT_UNUSED ) - DIPS_HELPER( 0x10, "STO", KEYCODE_E) - DIPS_HELPER( 0x08, "EVL", KEYCODE_F) - DIPS_HELPER( 0x04, "left", KEYCODE_LEFT) - DIPS_HELPER( 0x02, "down", KEYCODE_DOWN) - DIPS_HELPER( 0x01, "right", KEYCODE_RIGHT) - PORT_START - PORT_BIT ( 0x20, 0, IPT_UNUSED ) - DIPS_HELPER( 0x10, "COS", CODE_DEFAULT) - DIPS_HELPER( 0x08, "TAN", KEYCODE_H) - DIPS_HELPER( 0x04, "sqt", KEYCODE_LEFT) - DIPS_HELPER( 0x02, "pwr", KEYCODE_DOWN) - DIPS_HELPER( 0x01, "inv", KEYCODE_RIGHT) - PORT_START - DIPS_HELPER( 0x20, DEF_STR( On) , KEYCODE_NUMLOCK) - DIPS_HELPER( 0x10, "ENT", KEYCODE_I) - DIPS_HELPER( 0x08, "+/-", KEYCODE_MINUS) - DIPS_HELPER( 0x04, "EEX", KEYCODE_LEFT) - DIPS_HELPER( 0x02, "DEL", KEYCODE_BACKSPACE) - DIPS_HELPER( 0x01, "<==", KEYCODE_ENTER_PAD) - PORT_START - DIPS_HELPER( 0x20, "alp", KEYCODE_LALT) - DIPS_HELPER( 0x10, "SIN", KEYCODE_J) - DIPS_HELPER( 0x08, "7", KEYCODE_7_PAD) - DIPS_HELPER( 0x04, "8", KEYCODE_8_PAD) - DIPS_HELPER( 0x02, "9", KEYCODE_9_PAD) - DIPS_HELPER( 0x01, "/", KEYCODE_SLASH_PAD) - PORT_START - DIPS_HELPER( 0x20, "yel", KEYCODE_LSHIFT) - DIPS_HELPER( 0x10, "MTH", KEYCODE_K) - DIPS_HELPER( 0x08, "4", KEYCODE_4_PAD) - DIPS_HELPER( 0x04, "5", KEYCODE_5_PAD) - DIPS_HELPER( 0x02, "6", KEYCODE_6_PAD) - DIPS_HELPER( 0x01, "*", KEYCODE_ASTERISK) - PORT_START - DIPS_HELPER( 0x20, "blu", KEYCODE_LSHIFT) - DIPS_HELPER( 0x10, "A", KEYCODE_F1) - DIPS_HELPER( 0x08, "1", KEYCODE_1_PAD) - DIPS_HELPER( 0x04, "2", KEYCODE_2_PAD) - DIPS_HELPER( 0x02, "3", KEYCODE_3_PAD) - DIPS_HELPER( 0x01, "-", KEYCODE_MINUS_PAD) - PORT_START - PORT_BIT ( 0x20, 0, IPT_UNUSED ) - DIPS_HELPER( 0x10, "'", KEYCODE_L) - DIPS_HELPER( 0x08, "0", KEYCODE_0_PAD) - DIPS_HELPER( 0x04, ".", KEYCODE_DEL_PAD) - DIPS_HELPER( 0x02, "SPC", KEYCODE_SPACE) - DIPS_HELPER( 0x01, "+", KEYCODE_PLUS_PAD) -#endif -INPUT_PORTS_END - - -static gfx_layout hp48_charlayout = -{ - 2,16, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,0 }, - /* y offsets */ - { - 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 - }, - 1*8 -}; - -static gfx_decode hp48_gfxdecodeinfo[] = { - { REGION_GFX1, 0x0000, &hp48_charlayout, 0, 8 }, - { -1 } /* end of array */ -}; - -static SATURN_CONFIG config={ - hp48_out, hp48_in, - hp48_mem_reset, hp48_mem_config, hp48_mem_unconfig, hp48_mem_id, - hp48_crc -}; - - -static MACHINE_DRIVER_START( hp48s ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", SATURN, 4000000) /* 2 MHz */ - MDRV_CPU_PROGRAM_MAP(hp48_mem, 0) - MDRV_CPU_CONFIG(config) - MDRV_SCREEN_REFRESH_RATE(64) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( hp48 ) - - /* video hardware (well, actually there was no video ;) */ - /* scanned with 300 dpi, scaled x 55%, y 55% for perfect display 2x2 pixels */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(339, 775) - MDRV_SCREEN_VISIBLE_AREA(0, 339-1, 0, 775-1) - MDRV_GFXDECODE( hp48_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH( 248 ) - MDRV_COLORTABLE_LENGTH( sizeof (hp48_colortable) / sizeof(hp48_colortable[0][0]) ) - MDRV_PALETTE_INIT( hp48 ) - - MDRV_VIDEO_START( hp48 ) - MDRV_VIDEO_UPDATE( hp48 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hp48g ) - MDRV_IMPORT_FROM( hp48s ) - MDRV_CPU_REPLACE( "main", SATURN, 8000000 ) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(hp48_mem, 0) - MDRV_CPU_CONFIG(config) -MACHINE_DRIVER_END - -ROM_START(hp48s) - ROM_REGION(0x1c0000,REGION_CPU1, 0) - /* version at 0x7fff0 little endian 6 characters */ - /* 0x3fff8 in byte wide rom */ -// ROM_LOAD("sxrom-a", 0x00000, 0x40000, CRC(a87696c7) SHA1(3271b103ad99254d069e20171beb418ace72cc90)) -// ROM_LOAD("sxrom-b", 0x00000, 0x40000, CRC(034f6ce4) SHA1(acd256f2efee868ce402008f4131d94b312e60bc)) -// ROM_LOAD("sxrom-c", 0x00000, 0x40000, CRC(a9a0279d) SHA1(fee852d43ae6941d07a9d0d31f37e68e4f9051b1)) -// ROM_LOAD("sxrom-d", 0x00000, 0x40000, CRC(6e71244e) SHA1(893f29abd17434db7da986b27dc10c48f458d3aa)) -// ROM_LOAD("sxrom-e", 0x00000, 0x40000, CRC(704ffa08) SHA1(0d498d135bf729c1d775cce522528837729e2e94)) - ROM_LOAD("sxrom-e", 0x00000, 0x40000, CRC(d4f1390b) SHA1(f6be01a05aedefa8a285d480e33458447cf2bdaa)) // differences only in the hardware window -// ROM_LOAD("rom.sx", 0x00000, 0x40000, CRC(5619ccaf)) //revision E bad dump -// ROM_LOAD("sxrom-j", 0x00000, 0x40000, CRC(1a6378ef) SHA1(5235f5379f1fd7edfe9bb6bf466b60d279163e73)) - ROM_REGION(0x100,REGION_GFX1,0) -ROM_END - -ROM_START(hp48g) - ROM_REGION(0x580000,REGION_CPU1, 0) - /* version at 0x7ffbf little endian 6 characters */ -// ROM_LOAD("gxrom-k", 0x00000, 0x80000, CRC(bdd5d2ee) SHA1(afa1498238e991b1e3d07fb8b4c227b115f7bcc1)) -// ROM_LOAD("gxrom-l", 0x00000, 0x80000, CRC(70958e6b) SHA1(8eebac69ff804086247b989bf320e57a2d8a59a7)) -// ROM_LOAD("gxrom-m", 0x00000, 0x80000, CRC(e21a09e4) SHA1(09932d543594e459eeb94a79654168cd15e79a87)) -// ROM_LOAD("gxrom-p", 0x00000, 0x80000, CRC(27f90428) SHA1(b98312716ff81b9b439002c2ec7a07b9808440fb)) - ROM_LOAD("gxrom-r", 0x00000, 0x80000, CRC(00ee1a62)) -// ROM_LOAD("rom.gx", 0x00000, 0x80000, CRC(d6bb68c5)) //revision R bad dump - ROM_REGION(0x100,REGION_GFX1,0) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG MONITOR COMPANY FULLNAME */ -COMP(1989, hp48s, 0, 0, hp48s, hp48s, hp48s, NULL, "Hewlett Packard", "HP48S/SX", 0) -COMP(1993, hp48g, 0, 0, hp48g, hp48s, hp48g, NULL, "Hewlett Packard", "HP48G/GX", 0) diff --git a/mess/systems/intv.c b/mess/systems/intv.c deleted file mode 100644 index 8841a6109..000000000 --- a/mess/systems/intv.c +++ /dev/null @@ -1,503 +0,0 @@ -/************************************************************************ - * Mattel Intellivision + Keyboard Component Drivers - * - * Frank Palazzolo - * Kyle Davis - * - * TBD: - * Map game controllers correctly (right controller + 16 way) - * Add tape support (intvkbd) - * Add runtime tape loading - * Fix memory system workaround - * (memory handler stuff in CP1610, debugger, and shared mem) - * STIC - * reenable dirty support - * Cleanup - * Separate stic & vidhrdw better, get rid of *2 for kbd comp - * Add better runtime cart loading - * Switch to tilemap system - * - ************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/stic.h" -#include "includes/intv.h" -#include "devices/cartslot.h" -#include "sound/ay8910.h" - -#ifndef VERBOSE -#ifdef MAME_DEBUG -#define VERBOSE 1 -#else -#define VERBOSE 0 -#endif -#endif - -static unsigned char intv_palette[] = -{ - 0x00, 0x00, 0x00, /* BLACK */ - 0x00, 0x2D, 0xFF, /* BLUE */ - 0xFF, 0x3D, 0x10, /* RED */ - 0xC9, 0xCF, 0xAB, /* TAN */ - 0x38, 0x6B, 0x3F, /* DARK GREEN */ - 0x00, 0xA7, 0x56, /* GREEN */ - 0xFA, 0xEA, 0x50, /* YELLOW */ - 0xFF, 0xFC, 0xFF, /* WHITE */ - 0xBD, 0xAC, 0xC8, /* GRAY */ - 0x24, 0xB8, 0xFF, /* CYAN */ - 0xFF, 0xB4, 0x1F, /* ORANGE */ - 0x54, 0x6E, 0x00, /* BROWN */ - 0xFF, 0x4E, 0x57, /* PINK */ - 0xA4, 0x96, 0xFF, /* LIGHT BLUE */ - 0x75, 0xCC, 0x80, /* YELLOW GREEN */ - 0xB5, 0x1A, 0x58 /* PURPLE */ -}; - -static PALETTE_INIT( intv ) -{ - int i,j; - - /* Two copies of the palette */ - palette_set_colors(machine, 0, intv_palette, sizeof(intv_palette) / 3); - palette_set_colors(machine, sizeof(intv_palette) / 3, intv_palette, sizeof(intv_palette) / 3); - - /* Two copies of the color table */ - for(i=0;i<16;i++) - { - for(j=0;j<16;j++) - { - *colortable++ = i; - *colortable++ = j; - } - } - for(i=0;i<16;i++) - { - for(j=0;j<16;j++) - { - *colortable++ = i+16; - *colortable++ = j+16; - } - } -} - -static struct AY8910interface ay8910_interface = -{ - intv_right_control_r, - intv_left_control_r, - 0, - 0 -}; - -/* graphics output */ - -gfx_layout intv_gromlayout = -{ - 16, 16, - 256, - 1, - { 0 }, - { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7}, - { 0*16, 0*16, 1*16, 1*16, 2*16, 2*16, 3*16, 3*16, - 4*16, 4*16, 5*16, 5*16, 6*16, 6*16, 7*16, 7*16 }, - 8 * 16 -}; - -gfx_layout intv_gramlayout = -{ - 16, 16, - 64, - 1, - { 0 }, - { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7}, - { 0*8, 0*8, 1*8, 1*8, 2*8, 2*8, 3*8, 3*8, - 4*8, 4*8, 5*8, 5*8, 6*8, 6*8, 7*8, 7*8 }, - 8 * 8 -}; - -gfx_layout intvkbd_charlayout = -{ - 8, 8, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8 * 8 -}; - -static gfx_decode intv_gfxdecodeinfo[] = -{ - { REGION_CPU1, 0x3000<<1, &intv_gromlayout, 0, 256}, - { 0, 0, &intv_gramlayout, 0, 256 }, /* Dynamically decoded from RAM */ - { -1 } -}; - -static gfx_decode intvkbd_gfxdecodeinfo[] = -{ - { REGION_CPU1, 0x3000<<1, &intv_gromlayout, 0, 256}, - { 0, 0, &intv_gramlayout, 0, 256 }, /* Dynamically decoded from RAM */ - { REGION_GFX1, 0x0000, &intvkbd_charlayout, 0, 256}, - { -1 } -}; - -INPUT_PORTS_START( intv ) - PORT_START /* IN0 */ /* Right Player Controller Starts Here */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - - PORT_START /* IN1 */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("But1") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("But2") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("But3") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NA") - - PORT_START /* IN2 */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PGUP") PORT_CODE(KEYCODE_PGUP) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PGDN") PORT_CODE(KEYCODE_PGDN) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("END") PORT_CODE(KEYCODE_END) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) - - PORT_START /* IN3 */ /* Left Player Controller Starts Here */ - - PORT_START /* IN4 */ - - PORT_START /* IN5 */ - -INPUT_PORTS_END - -/* - Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - Row 0 NC NC NC NC NC NC CTRL SHIFT - Row 1 NC NC NC NC NC NC RPT LOCK - Row 2 NC / , N V X NC SPC - Row 3 (right) . M B C Z NC CLS - Row 4 (down) ; K H F S NC TAB - Row 5 ] P I Y R W NC Q - Row 6 (up) - 9 7 5 3 NC 1 - Row 7 = 0 8 6 4 2 NC [ - Row 8 (return)(left) O U T E NC ESC - Row 9 DEL ' L J G D NC A -*/ - -INPUT_PORTS_START( intvkbd ) - PORT_START /* IN0 */ /* Keyboard Row 0 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - - PORT_START /* IN1 */ /* Keyboard Row 1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("REPEAT") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LOCK") PORT_CODE(KEYCODE_RSHIFT) - - PORT_START /* IN2 */ /* Keyboard Row 2 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NC") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - - PORT_START /* IN3 */ /* Keyboard Row 3 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cls") PORT_CODE(KEYCODE_LALT) - - PORT_START /* IN4 */ /* Keyboard Row 4 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) - - PORT_START /* IN5 */ /* Keyboard Row 5 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - - PORT_START /* IN6 */ /* Keyboard Row 6 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("_") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - - PORT_START /* IN7 */ /* Keyboard Row 7 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) - - PORT_START /* IN8 */ /* Keyboard Row 8 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) - - PORT_START /* IN9 */ /* Keyboard Row 9 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(BS)") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(?)") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - - PORT_START /* IN10 */ /* For tape drive testing... */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) -INPUT_PORTS_END - -static ADDRESS_MAP_START( intv_mem , ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x0000, 0x003f) AM_READWRITE( stic_r, stic_w ) - AM_RANGE(0x0100, 0x01ef) AM_READWRITE( intv_ram8_r, intv_ram8_w ) - AM_RANGE(0x01f0, 0x01ff) AM_READWRITE( AY8914_directread_port_0_lsb_r, AY8914_directwrite_port_0_lsb_w ) - AM_RANGE(0x0200, 0x035f) AM_READWRITE( intv_ram16_r, intv_ram16_w ) - AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION(REGION_CPU1, 0x1000<<1) /* Exec ROM, 10-bits wide */ - AM_RANGE(0x3000, 0x37ff) AM_ROM AM_REGION(REGION_CPU1, 0x3000<<1) /* GROM, 8-bits wide */ - AM_RANGE(0x3800, 0x39ff) AM_READWRITE( intv_gram_r, intv_gram_w ) /* GRAM, 8-bits wide */ - AM_RANGE(0x4800, 0x7fff) AM_ROM /* Cartridges? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( intvkbd_mem , ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x0000, 0x003f) AM_READWRITE( stic_r, stic_w ) - AM_RANGE(0x0100, 0x01ef) AM_READWRITE( intv_ram8_r, intv_ram8_w ) - AM_RANGE(0x01f0, 0x01ff) AM_READWRITE( AY8914_directread_port_0_lsb_r, AY8914_directwrite_port_0_lsb_w ) - AM_RANGE(0x0200, 0x035f) AM_READWRITE( intv_ram16_r, intv_ram16_w ) - AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION(REGION_CPU1, 0x1000<<1) /* Exec ROM, 10-bits wide */ - AM_RANGE(0x3000, 0x37ff) AM_ROM AM_REGION(REGION_CPU1, 0x3000<<1) /* GROM, 8-bits wide */ - AM_RANGE(0x3800, 0x39ff) AM_READWRITE( intv_gram_r, intv_gram_w ) /* GRAM, 8-bits wide */ - AM_RANGE(0x4800, 0x6fff) AM_ROM /* Cartridges? */ - AM_RANGE(0x7000, 0x7fff) AM_ROM AM_REGION(REGION_CPU1, 0x7000<<1) /* Keyboard ROM */ - AM_RANGE(0x8000, 0xbfff) AM_READWRITE( MRA16_RAM, intvkbd_dualport16_w ) AM_BASE(&intvkbd_dualport_ram) /* Dual-port RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( intv2_mem , ADDRESS_SPACE_PROGRAM, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(0xff) ) /* Required because of probing */ - AM_RANGE( 0x0000, 0x3fff) AM_READWRITE( intvkbd_dualport8_lsb_r, intvkbd_dualport8_lsb_w ) /* Dual-port RAM */ - AM_RANGE( 0x4000, 0x7fff) AM_READWRITE( intvkbd_dualport8_msb_r, intvkbd_dualport8_msb_w ) /* Dual-port RAM */ - AM_RANGE( 0xb7f8, 0xb7ff) AM_RAM /* ??? */ - AM_RANGE( 0xb800, 0xbfff) AM_READWRITE( videoram_r, videoram_w ) /* Text Display */ - AM_RANGE( 0xc000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static INTERRUPT_GEN( intv_interrupt2 ) -{ - cpunum_set_input_line(1, 0, PULSE_LINE); -} - -static MACHINE_DRIVER_START( intv ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", CP1610, 3579545/4) /* Colorburst/4 */ - MDRV_CPU_PROGRAM_MAP(intv_mem, 0) - MDRV_CPU_VBLANK_INT(intv_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(59.92) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( intv ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 24*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1) - MDRV_GFXDECODE( intv_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(2 * 2 * 16 * 16) - MDRV_PALETTE_INIT( intv ) - - MDRV_VIDEO_START( intv ) - MDRV_VIDEO_UPDATE( intv ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(AY8910, 3579545/2) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( intvkbd ) - MDRV_IMPORT_FROM( intv ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(intvkbd_mem, 0) - - MDRV_CPU_ADD(M6502, 3579545/2) /* Colorburst/2 */ - MDRV_CPU_PROGRAM_MAP(intv2_mem, 0) - MDRV_CPU_VBLANK_INT(intv_interrupt2,1) - - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_GFXDECODE( intvkbd_gfxdecodeinfo ) - MDRV_VIDEO_START( intvkbd ) - MDRV_VIDEO_UPDATE( intvkbd ) -MACHINE_DRIVER_END - -ROM_START(intv) - ROM_REGION(0x10000<<1,REGION_CPU1,0) - ROM_LOAD16_WORD( "exec.bin", (0x1000<<1)+0, 0x2000, CRC(cbce86f7) SHA1(5a65b922b562cb1f57dab51b73151283f0e20c7a)) - ROM_LOAD16_BYTE( "grom.bin", (0x3000<<1)+1, 0x0800, CRC(683a4158) SHA1(f9608bb4ad1cfe3640d02844c7ad8e0bcd974917)) -ROM_END - -ROM_START(intvsrs) - ROM_REGION(0x10000<<1,REGION_CPU1,0) - ROM_LOAD16_WORD( "searsexc.bin", (0x1000<<1)+0, 0x2000, CRC(ea552a22) SHA1(834339de056d42a35571cae7fd5b04d1344001e9)) - ROM_LOAD16_BYTE( "grom.bin", (0x3000<<1)+1, 0x0800, CRC(683a4158) SHA1(f9608bb4ad1cfe3640d02844c7ad8e0bcd974917)) -ROM_END - -ROM_START(intvkbd) - ROM_REGION(0x10000<<1,REGION_CPU1,0) - ROM_LOAD16_WORD( "exec.bin", 0x1000<<1, 0x2000, CRC(cbce86f7) SHA1(5a65b922b562cb1f57dab51b73151283f0e20c7a)) - ROM_LOAD16_BYTE( "grom.bin", (0x3000<<1)+1, 0x0800, CRC(683a4158) SHA1(f9608bb4ad1cfe3640d02844c7ad8e0bcd974917)) - ROM_LOAD16_WORD( "024.u60", 0x7000<<1, 0x1000, CRC(4f7998ec) SHA1(ec006d0ae9002e9d56d83a71f5f2eddd6a456a40)) - ROM_LOAD16_BYTE( "4d72.u62", 0x7800<<1, 0x0800, CRC(aa57c594) SHA1(741860d489d90f5882ca53daa3169b6abacdf130)) - ROM_LOAD16_BYTE( "4d71.u63", (0x7800<<1)+1, 0x0800, CRC(069b2f0b) SHA1(070850bb32f8474107cc52c5183cfaa32d640f9a)) - - ROM_REGION(0x10000,REGION_CPU2,0) - ROM_LOAD( "0104.u20", 0xc000, 0x1000, CRC(5c6f1256) SHA1(271931fb354dfae6a1a5697ee888924a89a15ca8)) - ROM_RELOAD( 0xe000, 0x1000 ) - ROM_LOAD("cpu2d.u21", 0xd000, 0x1000, CRC(2c2dba33) SHA1(0db5d177fec3f8ae89abeef2e6900ad4f3460266)) - ROM_RELOAD( 0xf000, 0x1000 ) - - ROM_REGION(0x00800,REGION_GFX1,0) - ROM_LOAD( "4c52.u34", 0x0000, 0x0800, CRC(cbeb2e96) SHA1(f0e17adcd278fb376c9f90833c7fbbb60193dbe3)) -ROM_END - -static void intv_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_intv_cart; break; - case DEVINFO_PTR_LOAD: info->load = device_load_intv_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "int,rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(intv) - CONFIG_DEVICE(intv_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void intvkbd_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_intvkbd_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "int,rom,bin"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void intvkbd_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_WRITEABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_CREATABLE: info->i = 0; /* INVALID */ break; - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_RESET_ON_LOAD: info->i = 1; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap"); break; - } -} - -SYSTEM_CONFIG_START(intvkbd) - CONFIG_DEVICE(intvkbd_cartslot_getinfo) -#if 0 - CONFIG_DEVICE(intvkbd_cassette_getinfo) -#endif -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1979, intv, 0, 0, intv, intv, NULL, intv, "Mattel", "Intellivision", GAME_NOT_WORKING ) -CONS( 1981, intvsrs, 0, 0, intv, intv, NULL, intv, "Mattel", "Intellivision (Sears)", GAME_NOT_WORKING ) -COMP( 1981, intvkbd, 0, 0, intvkbd, intvkbd, NULL, intvkbd, "Mattel", "Intellivision Keyboard Component (Unreleased)", GAME_NOT_WORKING) diff --git a/mess/systems/jupiter.c b/mess/systems/jupiter.c deleted file mode 100644 index 6b447ad2a..000000000 --- a/mess/systems/jupiter.c +++ /dev/null @@ -1,258 +0,0 @@ -/*************************************************************************** -Jupiter Ace memory map - - CPU: Z80 - 0000-1fff ROM - 2000-22ff unused - 2300-23ff RAM (cassette buffer) - 2400-26ff RAM (screen) - 2700-27ff RAM (edit buffer) - 2800-2bff unused - 2c00-2fff RAM (char set) - 3000-3bff unused - 3c00-47ff RAM (standard) - 4800-87ff RAM (16K expansion) - 8800-ffff RAM (Expansion) - -Interrupts: - - IRQ: - 50Hz vertical sync - -Ports: - - Out 0xfe: - Tape and buzzer - - In 0xfe: - Keyboard input and buzzer -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/jupiter.h" -#include "devices/cartslot.h" - -/* memory w/r functions */ -ADDRESS_MAP_START( jupiter_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x22ff) AM_NOP - AM_RANGE(0x2300, 0x23ff) AM_RAM - AM_RANGE(0x2400, 0x26ff) AM_READWRITE(videoram_r, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x2700, 0x27ff) AM_RAM - AM_RANGE(0x2800, 0x2bff) AM_NOP - AM_RANGE(0x2c00, 0x2fff) AM_READWRITE(MRA8_RAM, jupiter_vh_charram_w) AM_BASE(&jupiter_charram) AM_SIZE(&jupiter_charram_size) - AM_RANGE(0x3000, 0x3bff) AM_NOP - AM_RANGE(0x3c00, 0x47ff) AM_RAM - AM_RANGE(0x4800, 0x87ff) AM_RAM - AM_RANGE(0x8800, 0xffff) AM_RAM -ADDRESS_MAP_END - -/* port i/o functions */ -ADDRESS_MAP_START( jupiter_io , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00fe, 0xfffe) AM_WRITE( jupiter_port_fe_w ) - AM_RANGE( 0xfefe, 0xfefe) AM_READ( jupiter_port_fefe_r ) - AM_RANGE( 0xfdfe, 0xfdfe) AM_READ( jupiter_port_fdfe_r ) - AM_RANGE( 0xfbfe, 0xfbfe) AM_READ( jupiter_port_fbfe_r ) - AM_RANGE( 0xf7fe, 0xf7fe) AM_READ( jupiter_port_f7fe_r ) - AM_RANGE( 0xeffe, 0xeffe) AM_READ( jupiter_port_effe_r ) - AM_RANGE( 0xdffe, 0xdffe) AM_READ( jupiter_port_dffe_r ) - AM_RANGE( 0xbffe, 0xbffe) AM_READ( jupiter_port_bffe_r ) - AM_RANGE( 0x7ffe, 0x7ffe) AM_READ( jupiter_port_7ffe_r ) -ADDRESS_MAP_END - -/* graphics output */ - -gfx_layout jupiter_charlayout = -{ - 8, 8, /* 8x8 characters */ - 128, /* 128 characters */ - 1, /* 1 bits per pixel */ - {0}, /* no bitplanes; 1 bit per pixel */ - {0, 1, 2, 3, 4, 5, 6, 7}, - {0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, - 8*8 /* each character takes 8 consecutive bytes */ -}; - -static gfx_decode jupiter_gfxdecodeinfo[] = -{ - {REGION_CPU1, 0x2c00, &jupiter_charlayout, 0, 2}, - {-1} -}; /* end of array */ - -static unsigned char jupiter_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xff, 0xff, 0xff /* White */ -}; - -static unsigned short jupiter_colortable[] = -{ - 0, 1, - 1, 0 -}; - -static PALETTE_INIT( jupiter ) -{ - palette_set_colors(machine, 0, jupiter_palette, sizeof(jupiter_palette) / 3); - memcpy (colortable, jupiter_colortable, sizeof (jupiter_colortable)); -} - -/* keyboard input */ - -INPUT_PORTS_START (jupiter) - PORT_START /* 0: 0xFEFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SYM SHFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - - PORT_START /* 1: 0xFDFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - - PORT_START /* 2: 0xFBFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - - PORT_START /* 3: 0xF7FE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - - PORT_START /* 4: 0xEFFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - - PORT_START /* 5: 0xDFFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - - PORT_START /* 6: 0xBFFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - - PORT_START /* 7: 0x7FFE */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_START /* 8: machine config */ - PORT_DIPNAME( 0x03, 2, "RAM Size") - PORT_DIPSETTING(0, "3Kb") - PORT_DIPSETTING(1, "19Kb") - PORT_DIPSETTING(2, "49Kb") -INPUT_PORTS_END - -/* Sound output */ - -static INTERRUPT_GEN( jupiter_interrupt ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -/* machine definition */ -static MACHINE_DRIVER_START( jupiter ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3250000) /* 3.25 Mhz */ - MDRV_CPU_PROGRAM_MAP(jupiter_mem, 0) - MDRV_CPU_IO_MAP(jupiter_io, 0) - MDRV_CPU_VBLANK_INT(jupiter_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( jupiter ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32 * 8, 24 * 8) - MDRV_SCREEN_VISIBLE_AREA(0, 32 * 8 - 1, 0, 24 * 8 - 1) - MDRV_GFXDECODE( jupiter_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof(jupiter_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (jupiter_colortable)) - MDRV_PALETTE_INIT( jupiter ) - - MDRV_VIDEO_START( jupiter ) - MDRV_VIDEO_UPDATE( jupiter ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -ROM_START (jupiter) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("jupiter.lo", 0x0000, 0x1000, CRC(dc8438a5) SHA1(8fa97eb71e5dd17c7d190c6587ee3840f839347c)) - ROM_LOAD ("jupiter.hi", 0x1000, 0x1000, CRC(4009f636) SHA1(98c5d4bcd74bcf014268cf4c00b2007ea5cc21f3)) -ROM_END - -static void jupiter_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_jupiter_ace; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "ace"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void jupiter_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_RESET_ON_LOAD: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_jupiter_tap; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_jupiter_tap; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap"); break; - } -} - -SYSTEM_CONFIG_START(jupiter) - CONFIG_DEVICE(jupiter_cartslot_getinfo) - CONFIG_DEVICE(jupiter_cassette_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1981, jupiter, 0, 0, jupiter, jupiter, 0, jupiter, "Cantab", "Jupiter Ace" , 0) diff --git a/mess/systems/lviv.c b/mess/systems/lviv.c deleted file mode 100644 index 73228f846..000000000 --- a/mess/systems/lviv.c +++ /dev/null @@ -1,510 +0,0 @@ -/******************************************************************************* - -PK-01 Lviv driver by Krzysztof Strzecha - -Big thanks go to: -Anton V. Ignatichev for informations about Lviv hardware. -Dr. Volodimir Mosorov for two Lviv machines. - -What's new: ------------ -28.02.2003 Snapshot veryfing function added. -07.01.2003 Support for .SAV snapshots. Joystick support (there are strange - problems with "Doroga (1991)(-)(Ru).lvt". -21.12.2002 Cassette support rewritten, WAVs saving and loading are working now. -08.12.2002 Comments on emulation status updated. Changed 'lvive' to 'lvivp'. - ADC r instruction in 8080 core fixed (Arkanoid works now). - Orginal keyboard layout added. -20.07.2002 "Reset" key fixed. 8080 core fixed (all BASIC commands works). - now). Unsupported .lvt files versions aren't now loaded. -xx.07.2002 Improved port and memory mapping (Raphael Nabet). - Hardware description updated (Raphael Nabet). -27.03.2002 CPU clock changed to 2.5MHz. - New Lviv driver added for different ROM revision. -24.03.2002 Palette emulation. - Bit 7 of port 0xc1 emulated - speaker enabled/disabled. - Some notes about hardware added. - "Reset" key added. -23.03.2002 Hardware description and notes on emulation status added. - Few changes in keyboard mapping. - -Notes on emulation status and to do list: ------------------------------------------ -1. LIMITATION: Printer is not emulated. -2. LIMITATION: Timings are not implemented, due to it emulated machine runs - twice fast as orginal. -3. LIMITATION: .RSS files are not supported. -4. LIMITATION: Some usage notes and trivia are needed in sysinfo.dat. - -Lviv technical information -========================== - -CPU: ----- - 8080 2.5MHz (2MHz in first machines) - -Memory map: ------------ - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-3fff ROM mirror #1 - 4000-7fff ROM mirror #2 - 8000-bfff ROM mirror #3 - c000-ffff ROM - - normal map with video RAM off: - 0000-3fff RAM - 4000-7fff RAM - 8000-bfff RAM - c000-ffff ROM - - normal map with video RAM on: - 0000-3fff mirrors 8000-bfff - 4000-7fff video RAM - 8000-bfff RAM - c000-ffff ROM - -Interrupts: ------------ - No interrupts in Lviv. - -Ports: ------- - Only A4-A5 are decoded. A2-A3 is ignored in the console, but could be used by extension - devices. - - C0-C3 8255 PPI - Port A: extension slot output, printer data - bits 0-4 joystick scanner output - Port B: palette control, extension slot input or output - sound on/off - bit 7 sound on/off - bits 0-6 palette select - Port C: memory page changing, tape input and output, - printer control, sound - bits 0-3 extension slot input - bits 4-7 extension slot output - bit 7: joystick scanner input - bit 6: printer control AC/busy - bit 5: not used - bit 4: tape in - bit 3: not used - bit 2: printer control SC/strobe - bit 1: memory paging, 0 - video ram, 1 - ram - bit 0: tape out, sound - - D0-D3 8255 PPI - Port A: - keyboard scaning - Port B: - keyboard reading - Port C: - keyboard scaning/reading - -Keyboard: ---------- - Reset - connected to CPU reset line - - Port D0 - --------T-------T-------T-------T-------T-------T-------T-------ª - | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | - +-------+-------+-------+-------+-------+-------+-------+-------+---ª - | Shift | ; | | CLS | Space | R | G | 6 | 0 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | Q |Russian| | (G) | B | O | [ | 7 | 1 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | ^ | Key | J | (B) | @ | L | ] | 8 | 2 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | X | P | N | 5 | Alt | Del | Enter | Ready | 3 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ Port D1 - | T | A | E | 4 | _ | . | Run | Tab | 4 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | I | W | K | 3 | Latin | \ | : | - | 5 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | M | Y | U | 2 | / | V | H | 0 | 6 | - +-------+-------+-------+-------+-------+-------+-------+-------+---+ - | S | F | C | 1 | , | D | Z | 9 | 7 | - L-------+-------+-------+-------+-------+-------+-------+-------+---- - - Port D2 - --------T-------T-------T-------ª - | 3 | 2 | 1 | 0 | - +-------+-------+-------+-------+-----ª - | Right | Home |ScrPrn |PrnLock| 4 | - +-------+-------+-------+-------+-----+ - | Up | F5 | F0 |ScrLock| 5 | - +-------+-------+-------+-------+-----+ Port D2 - | Left | F4 | F1 | Sound | 6 | - +-------+-------+-------+-------+-----+ - | Down | F3 | F2 | (R) | 7 | - L-------+-------+-------+-------+------ - - Notes: - CLS - clear screen - (G) - clear screen with border and set COLOR 0,0,0 - (B) - clear screen with border and set COLOR 1,0,6 - (R) - clear screen with border and set COLOR 0,7,3 - Sound - sound on/off - ScrLock - screen lock - PrnLock - printer on/off - ScrPrn - screen and printer output mode - Russian - russian keyboard mode - Latin - latin keyboard mode - Right - cursor key - Up - cursor key - Left - cursor key - Down - cursor key - Keyword - BASIC keyword - - -Video: ------ - Screen resolution is 256x256 pixels. 4 colors at once are possible, - but there is a posiibility of palette change. Bits 0..6 of port 0xc1 - are used for palette setting. - - One byte of video-RAM sets 4 pixels. Colors of pixels are corrected - by current palette. Each bits combination (2 bits sets one pixel on - the display), corrected with palette register, sets REAL pixel color. - - PBx - bit of port 0xC1 numbered x - R,G,B - output color components - == - "is equal" - ! - inversion - - 00 R = PB3 == PB4; G = PB5; B = PB2 == PB6; - 01 R = PB4; G = !PB5; B = PB6; - 10 R = PB0 == PB4; G = PB5; B = !PB6; - 11 R = !PB4; G = PB1 == PB5; B = PB6; - - Bit combinations are result of concatenation of approprate bits of - high and low byte halfs. - - Example: - ~~~~~~~~ - - Some byte of video RAM: 1101 0001 - Value of port 0xC1: x000 1110 - - 1101 - 0001 - ---- - 10 10 00 11 - - 1st pixel (10): R = 1; G = 0; B = 1; - 2nd pixel (10): R = 1; G = 0; B = 1; - 3rd pixel (00): R = 0; G = 0; B = 0; - 4th pixel (11): R = 1; G = 0; B = 0; - - -Sound: ------- - Buzzer connected to port 0xc2 (bit 0). - Bit 7 of port 0xc1 - enable/disable speaker. - - -Timings: --------- - - The CPU timing is controlled by a KR580GF24 (Sovietic copy of i8224) connected to a 18MHz(?) - oscillator. CPU frequency must be 18MHz/9 = 2MHz. - - Memory timing uses a 8-phase clock, derived from a 20MHz(?) video clock (called VCLK0 here: - in the schematics, it comes from pin 6 of V8, and it is labelled "0'" in the video clock bus). - This clock is divided by G7, G6 and D5 to generate the signals we call VCLK1-VCLK11. The memory - clock phases Phi0-Phi7 are generated in D7, whereas PHI'14 and PHI'15 are generated in D8. - - When the CPU accesses RAM, wait states are inserted until the RAM transfer is complete. - - CPU clock: 18MHz/9 = 2MHz - memory cycle time: 20MHz/8 = 2.5MHz - CPU memory access time: (min) approx. 9/20MHz = 450ns - (max) approx. 25/20MHz = 1250ns - pixel clock: 20MHz/4 = 5MHz - screen size: 256*256 - HBL: 64 pixel clock cycles - VBL: 64 lines - horizontal frequency: 5MHZ/(256+64) = 15.625kHz - vertical frequency: 15.625kHz/(256+64) = 48.83Hz - - |<--------VIDEO WINDOW--------->|<----------CPU WINDOW--------->|<-- - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - VCLK0 |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| | - _ ___ ___ ___ ___ ___ ___ ___ ___ ___ - VCLK1 |___| |___| |___| |___| |___| |___| |___| |___| |___| | - _ _______ _______ _______ _______ - VCLK2 |_______| |_______| |_______| |_______| |______| - _ _______________ _______________ - VCLK3 |_______________| |_______________| |_______ - _ _______________________________ - VCLK4 |_______________________________| |_______ - - _ _ _ - PHI0 _| |_____________________________| |_____________________________| |_____ - _ _ _ - PHI1 _____| |_____________________________| |_____________________________| |_ - _ _ - PHI2 _________| |_____________________________| |_____________________________ - _ _ - PHI3 _____________| |_____________________________| |_________________________ - _ _ - PHI4 _________________| |_____________________________| |_____________________ - _ _ - PHI5 _____________________| |_____________________________| |_________________ - _ _ - PHI6 _________________________| |_____________________________| |_____________ - _ _ - PHI7 _____________________________| |_____________________________| |_________ - _ - PHI'14 _________________________________________________________| |_____________ - _ - PHI'15 _____________________________________________________________| |_________ - __________ __________________________________________________ - RAS* \___________/ \_a_________/ - ______________ __________________________________________ - CAS* \_______________/ \_a_____________/ - _________________________________________________________________________ - WR* \_b_________//////// - _________________________________________________________________________ - WRM* \\\\\\\\\\\\\\\\\\\\\\\\\\_b__________________________________/////////// - _________________________________________________________________________ - RDM* \\\\\\\\\\\\\\\\\\\\\\\\\\_c __________________________________/////////// - _________________________________________________________________________ - RA \\\\\\\\\\\\\\\\\\\\\\\\\\_a__________________________________/ - - DRAM - ADDRESS video row /\ video column /XXX\CPU row (a)/\ CPU column (a) /\ video row - - a: only if the CPU is requesting a RAM read/write - b: only if the CPU is requesting a RAM write - c: only if the CPU is requesting a RAM read - -*******************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/i8085/i8085.h" -#include "machine/8255ppi.h" -#include "vidhrdw/generic.h" -#include "includes/lviv.h" -#include "devices/snapquik.h" -#include "devices/cassette.h" -#include "formats/lviv_lvt.h" - -/* I/O ports */ - -ADDRESS_MAP_START( lviv_readport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_READ( lviv_io_r ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( lviv_writeport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_WRITE( lviv_io_w ) -ADDRESS_MAP_END - -/* memory w/r functions */ - -ADDRESS_MAP_START( lviv_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) -ADDRESS_MAP_END - - -/* keyboard input */ -INPUT_PORTS_START (lviv) - PORT_START /* 2nd PPI port A bit 0 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ready") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_START /* 2nd PPI port A bit 1 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_U) PORT_CHAR('g') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_I) PORT_CHAR('[') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_O) PORT_CHAR(']') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Run") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("* :") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR(':') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('h') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_P) PORT_CHAR('z') - PORT_START /* 2nd PPI port A bit 2 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_H) PORT_CHAR('r') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_J) PORT_CHAR('o') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_K) PORT_CHAR('l') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_END) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_COLON) PORT_CHAR('v') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_L) PORT_CHAR('d') - PORT_START /* 2nd PPI port A bit 3 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_COMMA) PORT_CHAR('b') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_STOP) PORT_CHAR('@') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Alt") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("_") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('_') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Latin") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_HOME) PORT_CHAR(',') PORT_CHAR('<') - PORT_START /* 2nd PPI port A bit 4 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cls") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(G)") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(B)") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_START /* 2nd PPI port A bit 5 low */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_Q) PORT_CHAR('j') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_Y) PORT_CHAR('n') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_T) PORT_CHAR('e') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_R) PORT_CHAR('k') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_E) PORT_CHAR('u') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_W) PORT_CHAR('c') - PORT_START /* 2nd PPI port A bit 6 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Russian") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Key") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_G) PORT_CHAR('p') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_F) PORT_CHAR('a') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_D) PORT_CHAR('w') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_S) PORT_CHAR('y') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_A) PORT_CHAR('f') - PORT_START /* 2nd PPI port A bit 7 low */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Z) PORT_CHAR('q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_X) PORT_CHAR('^') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_M) PORT_CHAR('x') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_N) PORT_CHAR('t') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_B) PORT_CHAR('i') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_V) PORT_CHAR('m') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_C) PORT_CHAR('s') - PORT_START /* 2nd PPI port C bit 0 low */ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PrnLck") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ScrLck") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Sound") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(R)") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) - PORT_START /* 2nd PPI port C bit 1 low */ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ScrPrn") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F0") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10)) - PORT_START /* 2nd PPI port C bit 2 low */ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Home") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11)) - PORT_START /* 2nd PPI port C bit 3 low */ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_START /* CPU */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) - PORT_START /* Joystick */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) -INPUT_PORTS_END - - - -/* machine definition */ -static MACHINE_DRIVER_START( lviv ) - /* basic machine hardware */ - MDRV_CPU_ADD(8080, 2500000) - MDRV_CPU_PROGRAM_MAP(lviv_mem, 0) - MDRV_CPU_IO_MAP(lviv_readport, lviv_writeport) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( lviv ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MDRV_PALETTE_LENGTH(sizeof (lviv_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (lviv_colortable)) - MDRV_PALETTE_INIT( lviv ) - - MDRV_VIDEO_START( lviv ) - MDRV_VIDEO_UPDATE( lviv ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static void lviv_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) lviv_lvt_format; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void lviv_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sav"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_lviv; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_BIOS_START( lviv ) -SYSTEM_BIOS_ADD( 0, "lviv", "Lviv/L'vov" ) -SYSTEM_BIOS_ADD( 1, "lviva", "Lviv/L'vov (alternate)" ) -SYSTEM_BIOS_ADD( 2, "lvivp", "Lviv/L'vov (prototype)" ) -SYSTEM_BIOS_END - -ROM_START(lviv) -ROM_REGION(0x14000,REGION_CPU1,0) -ROMX_LOAD("lviv.bin", 0x10000, 0x4000, CRC(44a347d9) SHA1(74e067493b2b7d9ab17333202009a1a4f5e460fd), ROM_BIOS(1)) -ROMX_LOAD("lviva.bin", 0x10000, 0x4000, CRC(551622f5) SHA1(b225f3542b029d767b7db9dce562e8a3f77f92a2), ROM_BIOS(2)) -ROMX_LOAD("lvivp.bin", 0x10000, 0x4000, CRC(f171c282) SHA1(c7dc2bdb02400e6b5cdcc50040eb06f506a7ed84), ROM_BIOS(3)) -ROM_END - -SYSTEM_CONFIG_START(lviv) - CONFIG_RAM_DEFAULT(64 * 1024) - /* 9-Oct-2003 - Changed to lvt because lv? is an invalid file extension */ - CONFIG_DEVICE(lviv_cassette_getinfo) - CONFIG_DEVICE(lviv_snapshot_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT BIOS COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMPB( 1989, lviv, 0, lviv, 0, lviv, lviv, 0, lviv, "V. I. Lenin", "Lviv" , 0) diff --git a/mess/systems/lynx.c b/mess/systems/lynx.c deleted file mode 100644 index be697c334..000000000 --- a/mess/systems/lynx.c +++ /dev/null @@ -1,441 +0,0 @@ -/****************************************************************************** - PeT mess@utanet.at 2000,2001 - - info found in bastian schick's bll - and in cc65 for lynx - -******************************************************************************/ - -#include - -#include "driver.h" -#include "image.h" -#include "cpu/m6502/m6502.h" -#include "devices/snapquik.h" -#include "devices/cartslot.h" -#include "includes/lynx.h" -#include "vidhrdw/generic.h" -#include "hash.h" - -static int rotate=0; -int lynx_rotate; -static int lynx_line_y; -UINT32 lynx_palette[0x10]; - -static ADDRESS_MAP_START( lynx_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0xfbff) AM_RAM AM_BASE(&lynx_mem_0000) - AM_RANGE(0xfc00, 0xfcff) AM_RAM AM_BASE(&lynx_mem_fc00) - AM_RANGE(0xfd00, 0xfdff) AM_RAM AM_BASE(&lynx_mem_fd00) - AM_RANGE(0xfe00, 0xfff7) AM_READWRITE( MRA8_BANK3, MWA8_RAM ) AM_BASE(&lynx_mem_fe00) AM_SIZE(&lynx_mem_fe00_size) - AM_RANGE(0xfff8, 0xfff8) AM_RAM - AM_RANGE(0xfff9, 0xfff9) AM_READWRITE( lynx_memory_config_r, lynx_memory_config_w ) - AM_RANGE(0xfffa, 0xffff) AM_READWRITE( MRA8_BANK4, MWA8_RAM ) AM_BASE(&lynx_mem_fffa) -ADDRESS_MAP_END - -INPUT_PORTS_START( lynx ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("A") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("B") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Opt 2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Opt 1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_3) - // power on and power off buttons - PORT_START - PORT_DIPNAME ( 0x03, 3, "90 Degree Rotation") - PORT_DIPSETTING( 2, "Counterclockwise" ) - PORT_DIPSETTING( 1, "Clockwise" ) - PORT_DIPSETTING( 0, DEF_STR( None ) ) - PORT_DIPSETTING( 3, "Crcfile" ) -INPUT_PORTS_END - -static INTERRUPT_GEN( lynx_frame_int ) -{ - lynx_rotate=rotate; - if ((readinputport(2)&3)!=3) - lynx_rotate=readinputport(2)&3; -} - -static UINT8 lynx_read_vram(UINT16 address) -{ - UINT8 result = 0x00; - if (address <= 0xfbff) - result = lynx_mem_0000[address - 0x0000]; - else if (address <= 0xfcff) - result = lynx_mem_fc00[address - 0xfc00]; - else if (address <= 0xfdff) - result = lynx_mem_fd00[address - 0xfd00]; - else if (address <= 0xfff7) - result = lynx_mem_fe00[address - 0xfe00]; - else if (address >= 0xfffa) - result = lynx_mem_fffa[address - 0xfffa]; - return result; -} - -/* -DISPCTL EQU $FD92 ; set to $D by INITMIKEY - -; B7..B4 0 -; B3 1 EQU color -; B2 1 EQU 4 bit mode -; B1 1 EQU flip screen -; B0 1 EQU video DMA enabled -*/ -void lynx_draw_lines(int newline) -{ - static int height=-1, width=-1; - int h,w; - int x, yend; - UINT16 j; // clipping needed! - UINT8 byte; - UINT16 *line; - - if (video_skip_this_frame()) newline=-1; - - if (newline==-1) - yend = 102; - else - yend = newline; - - if (yend > 102) - yend=102; - - if (yend==lynx_line_y) - { - if (newline==-1) - lynx_line_y=0; - return; - } - - j=(mikey.data[0x94]|(mikey.data[0x95]<<8))+lynx_line_y*160/2; - if (mikey.data[0x92]&2) - j-=160*102/2-1; - - if (lynx_rotate&3) - { - /* rotation */ - h=160; w=102; - if ( ((lynx_rotate==1)&&(mikey.data[0x92]&2)) - ||( (lynx_rotate==2)&&!(mikey.data[0x92]&2)) ) - { - for (;lynx_line_y=0;j++,x-=2) - { - byte = lynx_read_vram(j); - line[x + 1] = lynx_palette[(byte >> 4) & 0x0f]; - line[x + 0] = lynx_palette[(byte >> 0) & 0x0f]; - } - } - } - else - { - for (;lynx_line_y> 4) & 0x0f]; - line[x + 1] = lynx_palette[(byte >> 0) & 0x0f]; - } - } - } - } - else - { - w=160; h=102; - if ( mikey.data[0x92]&2) - { - for (;lynx_line_y=0;j++,x-=2) - { - byte = lynx_read_vram(j); - line[x + 1] = lynx_palette[(byte >> 4) & 0x0f]; - line[x + 0] = lynx_palette[(byte >> 0) & 0x0f]; - } - } - } - else - { - for (;lynx_line_y> 4) & 0x0f]; - line[x + 1] = lynx_palette[(byte >> 0) & 0x0f]; - } - } - } - } - if (newline==-1) - { - lynx_line_y=0; - if ((w!=width)||(h!=height)) - { - width=w; - height=h; - video_screen_set_visarea(0, 0, width-1, 0, height-1); - } - } -} - -static PALETTE_INIT( lynx ) -{ - int i; - - for (i=0; i< 0x1000; i++) - { - palette_set_color(machine, i, - ((i >> 0) & 0x0f) * 0x11, - ((i >> 4) & 0x0f) * 0x11, - ((i >> 8) & 0x0f) * 0x11); - } -} - -struct CustomSound_interface lynx_sound_interface = -{ - lynx_custom_start -}; - -struct CustomSound_interface lynx2_sound_interface = -{ - lynx2_custom_start -}; - - -static MACHINE_DRIVER_START( lynx ) - /* basic machine hardware */ - MDRV_CPU_ADD(M65SC02, 4000000) /* vti core, integrated in vlsi, stz, but not bbr bbs */ - MDRV_CPU_PROGRAM_MAP(lynx_mem, 0) - MDRV_CPU_VBLANK_INT(lynx_frame_int, 1) - MDRV_SCREEN_REFRESH_RATE(LCD_FRAMES_PER_SECOND) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( lynx ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - /*MDRV_SCREEN_SIZE(160, 102)*/ - MDRV_SCREEN_SIZE(160, 160) - MDRV_SCREEN_VISIBLE_AREA(0, 160-1, 0, 102-1) - MDRV_PALETTE_LENGTH(0x1000) - MDRV_COLORTABLE_LENGTH(0) - MDRV_PALETTE_INIT( lynx ) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(lynx_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( lynx2 ) - MDRV_IMPORT_FROM( lynx ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(lynx2_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - - -/* these 2 dumps are saved from an running machine, - and therefor the rom byte at 0xff09 is not readable! - (memory configuration) - these 2 dumps differ only in this byte! -*/ -ROM_START(lynx) - ROM_REGION(0x200,REGION_CPU1, 0) - ROM_LOAD("lynx.bin", 0, 0x200, CRC(e1ffecb6) SHA1(de60f2263851bbe10e5801ef8f6c357a4bc077e6)) - ROM_REGION(0x100,REGION_GFX1, 0) - ROM_REGION(0x100000, REGION_USER1, 0) -ROM_END - -ROM_START(lynxa) - ROM_REGION(0x200,REGION_CPU1, 0) - ROM_LOAD("lynxa.bin", 0, 0x200, CRC(0d973c9d) SHA1(e4ed47fae31693e016b081c6bda48da5b70d7ccb)) - ROM_REGION(0x100,REGION_GFX1, 0) - ROM_REGION(0x100000, REGION_USER1, 0) -ROM_END - -ROM_START(lynx2) - ROM_REGION(0x200,REGION_CPU1, 0) - ROM_LOAD("lynx2.bin", 0, 0x200, NO_DUMP) - ROM_REGION(0x100,REGION_GFX1, 0) - ROM_REGION(0x100000, REGION_USER1, 0) -ROM_END - - - -void lynx_partialhash(char *dest, const unsigned char *data, - unsigned long length, unsigned int functions) -{ - if (length <= 64) - return; - hash_compute(dest, &data[64], length - 64, functions); -} - - - -static int lynx_verify_cart (char *header) -{ - - logerror("Trying Header Compare\n"); - - if (strncmp("LYNX",&header[0],4) && strncmp("BS9",&header[6],3)) { - logerror("Not an valid Lynx image\n"); - return IMAGE_VERIFY_FAIL; - } - logerror("returning ID_OK\n"); - return IMAGE_VERIFY_PASS; -} - -static void lynx_crc_keyword(mess_image *image) -{ - const char *info; - - info = image_extrainfo(image); - rotate = 0; - - if (info) - { - if(strcmp(info, "ROTATE90DEGREE")==0) - rotate = 1; - else if (strcmp(info, "ROTATE270DEGREE")==0) - rotate = 2; - } -} - -static int device_load_lynx_cart(mess_image *image) -{ - UINT8 *rom = memory_region(REGION_USER1); - int size; - UINT8 header[0x40]; -/* 64 byte header - LYNX - intelword lower counter size - 0 0 1 0 - 32 chars name - 22 chars manufacturer -*/ - - size = image_length(image); - if (image_fread(image, header, 0x40)!=0x40) - { - logerror("%s load error\n", image_filename(image)); - return 1; - } - - /* Check the image */ - if (lynx_verify_cart((char*)header) == IMAGE_VERIFY_FAIL) - { - return INIT_FAIL; - } - - size-=0x40; - lynx_granularity=header[4]|(header[5]<<8); - - logerror ("%s %dkb cartridge with %dbyte granularity from %s\n", - header+10,size/1024,lynx_granularity, header+42); - - if (image_fread(image, rom, size) != size) - { - logerror("%s load error\n", image_filename(image)); - return 1; - } - - lynx_crc_keyword(image); - - return 0; -} - -static QUICKLOAD_LOAD( lynx ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - UINT8 header[10]; // 80 08 dw Start dw Len B S 9 3 - // maybe the first 2 bytes must be used to identify the endianess of the file - UINT16 start; - - if (image_fread(image, header, sizeof(header)) != sizeof(header)) - return INIT_FAIL; - - quickload_size -= sizeof(header); - start = header[3] | (header[2]<<8); //! big endian format in file format for little endian cpu - - if (image_fread(image, rom+start, quickload_size) != quickload_size) - return INIT_FAIL; - - rom[0xfffc+0x200] = start&0xff; - rom[0xfffd+0x200] = start>>8; - - lynx_crc_keyword(image_from_devtype_and_index(IO_QUICKLOAD, 0)); - return 0; -} - -static void lynx_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_lynx_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = lynx_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "lnx"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void lynx_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "o"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_lynx; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(lynx) - CONFIG_DEVICE(lynx_cartslot_getinfo) - CONFIG_DEVICE(lynx_quickload_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG MONITOR COMPANY FULLNAME */ -CONS( 1989, lynx, 0, 0, lynx, lynx, 0, lynx, "Atari", "Lynx", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND) -CONS( 1989, lynxa, lynx, 0, lynx, lynx, 0, lynx, "Atari", "Lynx (alternate rom save!)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND) -CONS( 1991, lynx2, lynx, 0, lynx2, lynx, 0, lynx, "Atari", "Lynx II", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND) diff --git a/mess/systems/mac.c b/mess/systems/mac.c deleted file mode 100644 index 333fe04fd..000000000 --- a/mess/systems/mac.c +++ /dev/null @@ -1,423 +0,0 @@ -/* - * Mac Plus & 512ke emulation - * - * Nate Woods, Raphael Nabet - * - * - * 0x000000 - 0x3fffff RAM/ROM (switches based on overlay) - * 0x400000 - 0x4fffff ROM - * 0x580000 - 0x5fffff 5380 NCR/Symbios SCSI peripherals chip (Mac Plus only) - * 0x600000 - 0x6fffff RAM - * 0x800000 - 0x9fffff Zilog 8530 SCC (Serial Control Chip) Read - * 0xa00000 - 0xbfffff Zilog 8530 SCC (Serial Control Chip) Write - * 0xc00000 - 0xdfffff IWM (Integrated Woz Machine; floppy) - * 0xe80000 - 0xefffff Rockwell 6522 VIA - * 0xf00000 - 0xffffef ??? (the ROM appears to be accessing here) - * 0xfffff0 - 0xffffff Auto Vector - * - * - * Interrupts: - * M68K: - * Level 1 from VIA - * Level 2 from SCC - * Level 4 : Interrupt switch (not implemented) - * - * VIA: - * CA1 from VBLANK - * CA2 from 1 Hz clock (RTC) - * CB1 from Keyboard Clock - * CB2 from Keyboard Data - * SR from Keyboard Data Ready - * - * SCC: - * PB_EXT from mouse Y circuitry - * PA_EXT from mouse X circuitry - * - */ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "machine/6522via.h" -#include "devices/sonydriv.h" -#include "devices/harddriv.h" -#include "includes/mac.h" - - -static ADDRESS_MAP_START(mac512ke_map, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x800000, 0x9fffff) AM_READ(mac_scc_r) - AM_RANGE(0xa00000, 0xbfffff) AM_WRITE(mac_scc_w) - AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(mac_iwm_r, mac_iwm_w) - AM_RANGE(0xe80000, 0xefffff) AM_READWRITE(mac_via_r, mac_via_w) - AM_RANGE(0xfffff0, 0xffffff) AM_READWRITE(mac_autovector_r, mac_autovector_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(macplus_map, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x580000, 0x5fffff) AM_READWRITE(macplus_scsi_r, macplus_scsi_w) - AM_RANGE(0x800000, 0x9fffff) AM_READ(mac_scc_r) - AM_RANGE(0xa00000, 0xbfffff) AM_WRITE(mac_scc_w) - AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(mac_iwm_r, mac_iwm_w) - AM_RANGE(0xe80000, 0xefffff) AM_READWRITE(mac_via_r, mac_via_w) - AM_RANGE(0xfffff0, 0xffffff) AM_READWRITE(mac_autovector_r, mac_autovector_w) -ADDRESS_MAP_END - - - -static struct CustomSound_interface custom_interface = -{ - mac_sh_start -}; - -static MACHINE_DRIVER_START( mac512ke ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 7833600) /* 7.8336 Mhz */ - MDRV_CPU_PROGRAM_MAP(mac512ke_map, 0) - MDRV_CPU_VBLANK_INT(mac_interrupt, 370) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( mac ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 342) - MDRV_SCREEN_VISIBLE_AREA(0, 512-1, 0, 342-1) - MDRV_PALETTE_LENGTH(2) - MDRV_COLORTABLE_LENGTH(2) - MDRV_PALETTE_INIT(mac) - - MDRV_VIDEO_START(mac) - MDRV_VIDEO_UPDATE(mac) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER(mac) -MACHINE_DRIVER_END - - - -static MACHINE_DRIVER_START( macplus ) - MDRV_IMPORT_FROM( mac512ke ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(macplus_map, 0) -MACHINE_DRIVER_END - - - -INPUT_PORTS_START( macplus ) - PORT_START /* 0: Mouse - button */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button") PORT_CODE(MOUSECODE_1_BUTTON1) - - PORT_START /* 1: Mouse - X AXIS */ - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* 2: Mouse - Y AXIS */ - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - /* R Nabet 000531 : pseudo-input ports with keyboard layout */ - /* we only define US layout for keyboard - international layout is different! */ - /* note : 16 bits at most per port! */ - - /* main keyboard pad */ - - PORT_START /* 3 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) /* extra key on ISO : */ - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - - PORT_START /* 4 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - - PORT_START /* 5 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"') - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - - PORT_START /* 6 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("`") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~') - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR('\010') - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED) /* keyboard Enter : */ - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED) /* escape: */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED) /* ??? */ - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Command") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Option") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED) /* Control: */ - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED) /* keypad pseudo-keycode */ - PORT_BIT( 0xE000, IP_ACTIVE_HIGH, IPT_UNUSED) /* ??? */ - - /* keypad */ - PORT_START /* 7 */ - PORT_BIT (0x0001, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". (KP)") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("* (KP)") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) - PORT_BIT (0x0038, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ (KP)") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear (KP)") PORT_CODE(/*KEYCODE_NUMLOCK*/KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= (KP)") PORT_CODE(/*CODE_OTHER*/KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK)) - PORT_BIT (0x0E00, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter (KP)") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ (KP)") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR(UCHAR_MAMEKEY(SLASH_PAD)) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- (KP)") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) - PORT_BIT (0x8000, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START /* 8 */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 (KP)") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 (KP)") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 (KP)") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 (KP)") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 (KP)") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 (KP)") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 (KP)") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 (KP)") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (KP)") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (KP)") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) - PORT_BIT( 0xE000, IP_ACTIVE_HIGH, IPT_UNUSED) - - /* Arrow keys */ - PORT_START /* 9 */ - PORT_BIT( 0x0003, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right Arrow") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x0038, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left Arrow") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down Arrow") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0x1E00, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up Arrow") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0xC000, IP_ACTIVE_HIGH, IPT_UNUSED) - -INPUT_PORTS_END - - - -/*************************************************************************** - - Game driver(s) - - The Mac driver uses a convention of placing the BIOS in REGION_USER1 - -***************************************************************************/ - -ROM_START( mac512ke ) - ROM_REGION16_BE(0x20000, REGION_USER1, 0) - ROM_LOAD16_WORD( "macplus.rom", 0x00000, 0x20000, CRC(b2102e8e) SHA1(7d2f808a045aa3a1b242764f0e2c7d13e288bf1f)) -ROM_END - - -ROM_START( macplus ) - ROM_REGION16_BE(0x20000, REGION_USER1, 0) - ROM_LOAD16_WORD( "macplus.rom", 0x00000, 0x20000, CRC(b2102e8e) SHA1(7d2f808a045aa3a1b242764f0e2c7d13e288bf1f)) -ROM_END - - -ROM_START( macse ) - ROM_REGION16_BE(0x40000, REGION_USER1, 0) - ROM_LOAD16_WORD( "macse.rom", 0x00000, 0x40000, CRC(0f7ff80c) SHA1(58532b7d0d49659fd5228ac334a1b094f0241968)) -ROM_END - - -static void mac128512_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_SONYDRIV_ALLOWABLE_SIZES: info->i = SONY_FLOPPY_ALLOW400K; break; - - default: sonydriv_device_getinfo(devclass, state, info); break; - } -} - -static void mac_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_SONYDRIV_ALLOWABLE_SIZES: info->i = SONY_FLOPPY_ALLOW400K | SONY_FLOPPY_ALLOW800K; break; - - default: sonydriv_device_getinfo(devclass, state, info); break; - } -} - -static void mac_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - default: harddisk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(mac128k) - CONFIG_DEVICE(mac128512_floppy_getinfo) - CONFIG_RAM_DEFAULT(0x020000) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(mac512k) - CONFIG_DEVICE(mac128512_floppy_getinfo) - CONFIG_RAM_DEFAULT(0x080000) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(macplus) - CONFIG_DEVICE(mac_floppy_getinfo) - CONFIG_DEVICE(mac_harddisk_getinfo) - CONFIG_RAM (0x080000) - CONFIG_RAM_DEFAULT (0x100000) - CONFIG_RAM (0x200000) - CONFIG_RAM (0x280000) - CONFIG_RAM (0x400000) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(macse) - CONFIG_DEVICE(mac_floppy_getinfo) - CONFIG_DEVICE(mac_harddisk_getinfo) - CONFIG_RAM_DEFAULT (0x100000) - CONFIG_RAM (0x200000) - CONFIG_RAM (0x280000) - CONFIG_RAM (0x400000) -SYSTEM_CONFIG_END - - - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -/*COMP( 1984, mac128k, 0, 0, mac128k, macplus, mac128k512k, macplus, "Apple Computer", "Macintosh 128k", 0 ) -COMP( 1984, mac512k, mac128k, 0, mac128k, macplus, mac128k512k, macplus, "Apple Computer", "Macintosh 512k", 0 )*/ -COMP( 1986, mac512ke, macplus, 0, mac512ke, macplus, mac512ke, mac512k, "Apple Computer", "Macintosh 512ke", 0 ) -COMP( 1986, macplus, 0, 0, macplus, macplus, macplus, macplus, "Apple Computer", "Macintosh Plus", 0 ) -COMP( 1987, macse, 0, 0, macplus, macplus, macse, macse, "Apple Computer", "Macintosh SE", GAME_NOT_WORKING ) - - - -/* ----------------------------------------------------------------------- */ - -#if 0 - -/* Early Mac2 driver - does not work at all, but enabled me to disassemble the ROMs */ - -static ADDRESS_MAP_START (mac2_mem, ADDRESS_SPACE_PROGRAM, 16) - - AM_RANGE( 0x00000000, 0x007fffff) AM_RAM - AM_RANGE( 0x00800000, 0x008fffff) AM_ROM - AM_RANGE( 0x00900000, 0x00ffffff) AM_NOP - -ADDRESS_MAP_END - -static void mac2_init_machine( void ) -{ - memset(memory_region(REGION_CPU1), 0, 0x800000); -} - - -static struct MachineDriver machine_driver_mac2 = -{ - /* basic machine hardware */ - { - { - CPU_M68020, - 16000000, /* +/- 16 Mhz */ - mac2_mem,0,0,0, - 0,0, - } - }, - 60, DEFAULT_REAL_60HZ_VBLANK_DURATION, /* frames per second, vblank duration */ - 1, - mac2_init_machine, - 0, - - /* video hardware */ - 640, 480, /* screen width, screen height */ - { 0, 640-1, 0, 480-1 }, /* visible_area */ - - 0, /* graphics decode info */ - 2, 2, /* number of colors, colortable size */ - mac_init_palette, /* convert color prom */ - - VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK, - 0, - mac_vh_start, - mac_vh_stop, - mac_vh_screenrefresh, - - /* sound hardware */ - 0,0,0,0, - { - - }, - - mac_nvram_handler -}; - -//#define input_ports_mac2 NULL - -INPUT_PORTS_START( mac2 ) - -INPUT_PORTS_END - -ROM_START( mac2 ) - ROM_REGION(0x00900000,REGION_CPU1,0) /* for ram, etc */ - ROM_LOAD_WIDE( "256k.rom", 0x800000, 0x40000, NO_DUMP) -ROM_END - -COMPX( 1987, mac2, 0, mac2, mac2, 0/*mac2*/, "Apple Computer", "Macintosh II", GAME_NOT_WORKING ) - -#endif - diff --git a/mess/systems/mbee.c b/mess/systems/mbee.c deleted file mode 100644 index 5e8b82a6c..000000000 --- a/mess/systems/mbee.c +++ /dev/null @@ -1,392 +0,0 @@ -/*************************************************************************** - microbee.c - - system driver - Juergen Buchmueller , Jan 2000 - - Brett Selwood, Andrew Davies (technical assistance) - - Microbee memory map (preliminary) - - 0000-7FFF RAM - 8000-BFFF SYSTEM roms (bas522a.rom, bas522b.rom) - C000-DFFF Edasm or WBee (edasm.rom or wbeee12.rom, optional) - E000-EFFF Telcom (tecl321.rom; optional) - F000-F7FF Video RAM - F800-FFFF PCG RAM (graphics), Colour RAM (banked) - - Microbee 56KB ROM memory map (preliminary) - - 0000-DFFF RAM - E000-EFFF ROM 56kb.rom CP/M bootstrap loader - F000-F7FF Video RAM - F800-FFFF PCG RAM (graphics), Colour RAM (banked) - - Microbee 32 came in three versions: - IE: features a terminal emulator mapped at $E000 - (maybe there is a keyword to activate it?) - - PC: features an editor/assembler - type EDASM to run - - PC85: features the WordBee wordprocessor - type EDASM to run - (maybe the ROM was patched to use another keyword?) - -***************************************************************************/ - -#include -#include "driver.h" -#include "machine/z80ctc.h" -#include "machine/z80pio.h" -#include "machine/z80sio.h" -#include "vidhrdw/generic.h" -#include "machine/wd17xx.h" -#include "includes/mbee.h" -#include "devices/basicdsk.h" -#include "devices/cartslot.h" -#include "devices/cassette.h" -#include "devices/z80bin.h" -#include "inputx.h" -#include "cpu/z80/z80daisy.h" - -#define VERBOSE 1 - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) /* x */ -#endif - -static ADDRESS_MAP_START(mbee_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x7fff) AM_RAM AM_READ( mbee_lowram_r ) AM_BASE( &mbee_workram ) - AM_RANGE(0x8000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_videoram_r, mbee_videoram_w) AM_BASE(&pcgram) AM_SIZE(&videoram_size) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbee_pcg_color_r, mbee_pcg_color_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(mbee56_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_videoram_r, mbee_videoram_w) AM_BASE(&pcgram) AM_SIZE(&videoram_size) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbee_pcg_color_r, mbee_pcg_color_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(mbee_ports, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_READWRITE(mbee_pio_r, mbee_pio_w) - AM_RANGE(0x08, 0x08) AM_READWRITE(mbee_pcg_color_latch_r, mbee_pcg_color_latch_w) - AM_RANGE(0x0a, 0x0a) AM_READWRITE(mbee_color_bank_r, mbee_color_bank_w) - AM_RANGE(0x0b, 0x0b) AM_READWRITE(mbee_video_bank_r, mbee_video_bank_w) - AM_RANGE(0x0c, 0x0c) AM_READWRITE(m6545_status_r, m6545_index_w) - AM_RANGE(0x0d, 0x0d) AM_READWRITE(m6545_data_r, m6545_data_w) - AM_RANGE(0x44, 0x44) AM_READWRITE(wd179x_status_r, wd179x_command_w) - AM_RANGE(0x45, 0x45) AM_READWRITE(wd179x_track_r, wd179x_track_w) - AM_RANGE(0x46, 0x46) AM_READWRITE(wd179x_sector_r, wd179x_sector_w) - AM_RANGE(0x47, 0x47) AM_READWRITE(wd179x_data_r, wd179x_data_w) - AM_RANGE(0x48, 0x48) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( mbee ) - PORT_START /* IN0 KEY ROW 0 [000] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_START /* IN1 KEY ROW 1 [080] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_START /* IN2 KEY ROW 2 [100] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_START /* IN3 KEY ROW 3 [180] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('^') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_DEL) PORT_CHAR(8) - PORT_START /* IN4 KEY ROW 4 [200] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_START /* IN5 KEY ROW 5 [280] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_START /* IN6 KEY ROW 6 [300] */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Escape") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Linefeed") PORT_CODE(KEYCODE_HOME) PORT_CHAR(10) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_END) PORT_CHAR(3) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_START /* IN7 KEY ROW 7 [380] */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L-Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R-Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_START /* IN8 extra keys */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Up)") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Down)") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Left)") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Right)") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Insert)") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - -const gfx_layout mbee_charlayout = -{ - 8,16, /* 8 x 16 characters */ - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - /* y offsets triple height: use each line three times */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 8*16 /* every char takes 16 bytes */ -}; - -static gfx_decode mbee_gfxdecodeinfo[] = -{ - { REGION_CPU1, 0xf000, &mbee_charlayout, 0, 256}, - { -1 } /* end of array */ -}; - -static const UINT8 palette[] = -{ - 0x00,0x00,0x00, /* black */ - 0xf0,0x00,0x00, /* red */ - 0x00,0xf0,0x00, /* green */ - 0xf0,0xf0,0x00, /* yellow */ - 0x00,0x00,0xf0, /* blue */ - 0xf0,0x00,0xf0, /* magenta */ - 0x00,0xf0,0xf0, /* cyan */ - 0xf0,0xf0,0xf0, /* white */ - 0x08,0x08,0x08, /* black */ - 0xe0,0x08,0x08, /* red */ - 0x08,0xe0,0x08, /* green */ - 0xe0,0xe0,0x08, /* yellow */ - 0x08,0x08,0xe0, /* blue */ - 0xe0,0x08,0xe0, /* magenta */ - 0x08,0xe0,0xe0, /* cyan */ - 0xe0,0xe0,0xe0, /* white */ - 0x10,0x10,0x10, /* black */ - 0xd0,0x10,0x10, /* red */ - 0x10,0xd0,0x10, /* green */ - 0xd0,0xd0,0x10, /* yellow */ - 0x10,0x10,0xd0, /* blue */ - 0xd0,0x10,0xd0, /* magenta */ - 0x10,0xd0,0xd0, /* cyan */ - 0xd0,0xd0,0xd0, /* white */ - 0x18,0x18,0x18, /* black */ - 0xe0,0x18,0x18, /* red */ - 0x18,0xe0,0x18, /* green */ - 0xe0,0xe0,0x18, /* yellow */ - 0x18,0x18,0xe0, /* blue */ - 0xe0,0x18,0xe0, /* magenta */ - 0x18,0xe0,0xe0, /* cyan */ - 0xe0,0xe0,0xe0 /* white */ -}; - -static PALETTE_INIT( mbee ) -{ - int i; - palette_set_colors(machine, 0, palette, sizeof(palette) / 3); - for( i = 0; i < 256; i++ ) - { - colortable[2*i+0] = i / 32; - colortable[2*i+1] = i & 31; - } -} - -static const struct z80_irq_daisy_chain mbee_daisy_chain[] = -{ - { z80pio_reset, z80pio_irq_state, z80pio_irq_ack, z80pio_irq_reti, 0 }, /* PIO number 0 */ - { 0, 0, 0, 0, -1} /* end mark */ -}; - - - -static MACHINE_DRIVER_START( mbee ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3375000) /* 3.37500 Mhz */ - MDRV_CPU_PROGRAM_MAP(mbee_mem, 0) - MDRV_CPU_IO_MAP(mbee_ports, 0) - /* MDRV_CPU_CONFIG(mbee_daisy_chain) */ - MDRV_CPU_VBLANK_INT(mbee_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( mbee ) - MDRV_MACHINE_START( mbee ) - - MDRV_GFXDECODE(mbee_gfxdecodeinfo) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(70*8, 310) - MDRV_SCREEN_VISIBLE_AREA(0*8, 70*8-1, 0, 19*16-1) - MDRV_PALETTE_LENGTH(sizeof(palette)/sizeof(palette[0])/3) - MDRV_COLORTABLE_LENGTH(256 * 2) - MDRV_PALETTE_INIT(mbee) - - MDRV_VIDEO_START(mbee) - MDRV_VIDEO_UPDATE(mbee) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mbee56 ) - MDRV_IMPORT_FROM( mbee ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP(mbee56_mem, 0) - MDRV_MACHINE_START( mbee56 ) -MACHINE_DRIVER_END - - -ROM_START( mbee ) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("bas522a.rom", 0x8000, 0x2000, CRC(7896a696) SHA1(a158f7803296766160e1f258dfc46134735a9477)) - ROM_LOAD("bas522b.rom", 0xa000, 0x2000, CRC(b21d9679) SHA1(332844433763331e9483409cd7da3f90ac58259d)) - ROM_LOAD("edasm.rom", 0xc000, 0x2000, CRC(1af1b3a9) SHA1(d035a997c2dbbb3918b3395a3a5a1076aa203ee5)) - ROM_LOAD("charrom.bin", 0xf000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0)) -ROM_END - -ROM_START( mbeepc85 ) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("bas522a.rom", 0x8000, 0x2000, CRC(7896a696) SHA1(a158f7803296766160e1f258dfc46134735a9477)) - ROM_LOAD("bas522b.rom", 0xa000, 0x2000, CRC(b21d9679) SHA1(332844433763331e9483409cd7da3f90ac58259d)) - ROM_LOAD("wbee12.rom", 0xc000, 0x2000, CRC(0fc21cb5) SHA1(33b3995988fc51ddef1568e160dfe699867adbd5)) - ROM_LOAD("charrom.bin", 0xf000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0)) -ROM_END - -ROM_START( mbeepc ) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("bas522a.rom", 0x8000, 0x2000, CRC(7896a696) SHA1(a158f7803296766160e1f258dfc46134735a9477)) - ROM_LOAD("bas522b.rom", 0xa000, 0x2000, CRC(b21d9679) SHA1(332844433763331e9483409cd7da3f90ac58259d)) - ROM_LOAD("telc321.rom", 0xe000, 0x2000, CRC(15b9d2df) SHA1(6e7606099d036f87230b3595eb873be60c190f11)) - ROM_LOAD("charrom.bin", 0xf000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0)) -ROM_END - -ROM_START( mbee56 ) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("56kb.rom", 0xe000, 0x1000, CRC(28211224) SHA1(b6056339402a6b2677b0e6c57bd9b78a62d20e4f)) - ROM_LOAD("charrom.bin", 0xf000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0)) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void mbee_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void mbee_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_mbee_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void mbee_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_basicdsk_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - - - -SYSTEM_CONFIG_START(mbee) - CONFIG_DEVICE(mbee_cassette_getinfo) - CONFIG_DEVICE(mbee_cartslot_getinfo) - CONFIG_DEVICE(mbee_floppy_getinfo) - CONFIG_DEVICE(z80bin_quickload_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, mbee, 0, 0, mbee, mbee, 0, mbee, "Applied Technology", "Microbee 32 IC" , 0) -COMP( 1982, mbeepc, mbee, 0, mbee, mbee, 0, mbee, "Applied Technology", "Microbee 32 PC" , 0) -COMP( 1985?,mbeepc85, mbee, 0, mbee, mbee, 0, mbee, "Applied Technology", "Microbee 32 PC85" , 0) -COMP( 1983, mbee56, mbee, 0, mbee56, mbee, 0, mbee, "Applied Technology", "Microbee 56" , 0) - diff --git a/mess/systems/mc10.c b/mess/systems/mc10.c deleted file mode 100644 index 2081e59d4..000000000 --- a/mess/systems/mc10.c +++ /dev/null @@ -1,178 +0,0 @@ -/*************************************************************************** - - mc10.c - - TRS-80 Radio Shack MicroColor Computer - - Nate Woods - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6800/m6800.h" -#include "vidhrdw/m6847.h" -#include "includes/mc10.h" -#include "devices/cassette.h" -#include "formats/coco_cas.h" -#include "inputx.h" - - -static ADDRESS_MAP_START( mc10_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0100, 0x3fff) AM_NOP /* unused */ - AM_RANGE(0xbfff, 0xbfff) AM_READWRITE(mc10_bfff_r, mc10_bfff_w) - AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x0000) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mc10_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(M6803_PORT1, M6803_PORT1) AM_READWRITE(mc10_port1_r, mc10_port1_w) - AM_RANGE(M6803_PORT2, M6803_PORT2) AM_READWRITE(mc10_port2_r, mc10_port2_w) -ADDRESS_MAP_END - -/* MC-10 keyboard - - PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 - PA6: Ctl N/c Brk N/c N/c N/c N/c Shift - PA5: 8 9 : ; , - . / - PA4: 0 1 2 3 4 5 6 7 - PA3: X Y Z N/c N/c N/c Ent Space - PA2: P Q R S T U V W - PA1: H I J K L M N O - PA0: @ A B C D E F G - */ -INPUT_PORTS_START( mc10 ) - PORT_START /* KEY ROW 0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('@') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START /* KEY ROW 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START /* KEY ROW 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START /* KEY ROW 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x38, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(10) - - PORT_START /* KEY ROW 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - - PORT_START /* KEY ROW 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - - PORT_START /* KEY ROW 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CONTROL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_END) PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT(0x78, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - PORT_START /* 7 */ - PORT_DIPNAME( 0x80, 0x00, "16K RAM module" ) - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x80, DEF_STR( Yes )) - PORT_DIPNAME( 0x40, 0x00, "DOS extension" ) - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x40, DEF_STR( Yes )) - - PORT_INCLUDE( m6847_artifacting ) - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( mc10 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6803, 894886) /* 0,894886 Mhz */ - MDRV_CPU_PROGRAM_MAP(mc10_mem, 0) - MDRV_CPU_IO_MAP(mc10_io, 0) - MDRV_SCREEN_REFRESH_RATE(60) - - MDRV_MACHINE_START(mc10) - - /* video hardware */ - MDRV_VIDEO_START(mc10) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -ROM_START(mc10) - ROM_REGION(0x2000,REGION_CPU1,0) - ROM_LOAD("mc10.rom", 0x0000, 0x2000, CRC(11fda97e) SHA1(4afff2b4c120334481aab7b02c3552bf76f1bc43)) -ROM_END - -static void mc10_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) coco_cassette_formats; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_PLAY; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(mc10) - CONFIG_DEVICE( mc10_cassette_getinfo ) - CONFIG_RAM_DEFAULT (4 * 1024) - CONFIG_RAM (16 * 1024) - CONFIG_RAM (32 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1983, mc10, 0, 0, mc10, mc10, 0, mc10, "Tandy Radio Shack", "MC-10" , GAME_SUPPORTS_SAVE) - diff --git a/mess/systems/mekd2.c b/mess/systems/mekd2.c deleted file mode 100644 index 7393dc5da..000000000 --- a/mess/systems/mekd2.c +++ /dev/null @@ -1,221 +0,0 @@ -/****************************************************************************** - Motorola Evaluation Kit 6800 D2 - MEK6800D2 - - system driver - - Juergen Buchmueller , Jan 2000 - - memory map - - range short description - 0000-00ff RAM 256 bytes RAM - 0100-01ff RAM optional 256 bytes RAM - 6000-63ff PROM optional PROM - or - 6000-67ff ROM optional ROM - 8004-8007 PIA - 8008 ACIA cassette interface - 8020-8023 PIA keyboard interface - a000-a07f RAM 128 bytes RAM (JBUG scratch) - c000-c3ff PROM optional PROM - or - c000-c7ff ROM optional ROM - e000-e3ff ROM JBUG monitor program - e400-ffff -/- not used - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "devices/cartslot.h" -#include "includes/mekd2.h" - -#ifndef VERBOSE -#define VERBOSE 1 -#endif - -#if VERBOSE -#define LOG(x) logerror(x) -#else -#define LOG(x) /* x */ -#endif - -static READ8_HANDLER(mekd2_pia_r) { return 0xff; } -static READ8_HANDLER(mekd2_cas_r) { return 0xff; } -static READ8_HANDLER(mekd2_kbd_r) { return 0xff; } - -UINT8 pia[8]; - -static WRITE8_HANDLER(mekd2_pia_w) { } -static WRITE8_HANDLER(mekd2_cas_w) { } - -static WRITE8_HANDLER(mekd2_kbd_w) -{ - pia[offset] = data; - switch( offset ) - { - case 2: - if( data & 0x20 ) - { - videoram[0*2+0] = ~pia[0]; - videoram[0*2+1] = 14; - } - if( data & 0x10 ) - { - videoram[1*2+0] = ~pia[0]; - videoram[1*2+1] = 14; - } - if( data & 0x08 ) - { - videoram[2*2+0] = ~pia[0]; - videoram[2*2+1] = 14; - } - if( data & 0x04 ) - { - videoram[3*2+0] = ~pia[0]; - videoram[3*2+1] = 14; - } - if( data & 0x02 ) - { - videoram[4*2+0] = ~pia[0]; - videoram[4*2+1] = 14; - } - if( data & 0x01 ) - { - videoram[5*2+0] = ~pia[0]; - videoram[5*2+1] = 14; - } - break; - } -} - - -static ADDRESS_MAP_START( mekd2_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x00ff) AM_RAM -// AM_RANGE(0x0100, 0x01ff) AM_RAM /* optional, set up in mekd2_init_machine */ -// AM_RANGE(0x6000, 0x67ff) AM_ROM /* -"- */ -// AM_RANGE(0x8004, 0x8007) AM_READWRITE(mekd2_pia_r, mekd2_pia_w) -// AM_RANGE(0x8008, 0x8008) AM_READWRITE(mekd2_cas_r, mekd2_cas_w) - AM_RANGE(0x8020, 0x8023) AM_WRITE(mekd2_kbd_w) /* mekd2_kbd_r */ - AM_RANGE(0xa000, 0xa07f) AM_RAM -// AM_RANGE(0xc000, 0xc7ff) AM_RAM /* optional, set up in mekd2_init_machine */ - AM_RANGE(0xe000, 0xe3ff) AM_ROM AM_MIRROR(0x1c00) /* JBUG ROM */ -ADDRESS_MAP_END - -INPUT_PORTS_START( mekd2 ) - PORT_START /* IN0 keys row 0 */ -INPUT_PORTS_END - -static gfx_layout led_layout = -{ - 18, 24, /* 16 x 24 LED 7segment displays */ - 128, /* 128 codes */ - 1, /* 1 bit per pixel */ - { 0 }, /* no bitplanes */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9,10,11,12,13,14,15, - 16,17 }, - { 0*24, 1*24, 2*24, 3*24, - 4*24, 5*24, 6*24, 7*24, - 8*24, 9*24,10*24,11*24, - 12*24,13*24,14*24,15*24, - 16*24,17*24,18*24,19*24, - 20*24,21*24,22*24,23*24, - 24*24,25*24,26*24,27*24, - 28*24,29*24,30*24,31*24 }, - 24 * 24, /* every LED code takes 32 times 18 (aligned 24) bit words */ -}; - -static gfx_layout key_layout = -{ - 24, 18, /* 24 * 18 keyboard icons */ - 24, /* 24 codes */ - 2, /* 2 bit per pixel */ - { 0, 1 }, /* two bitplanes */ - { 0*2, 1*2, 2*2, 3*2, 4*2, 5*2, 6*2, 7*2, - 8*2, 9*2,10*2,11*2,12*2,13*2,14*2,15*2, - 16*2,17*2,18*2,19*2,20*2,21*2,22*2,23*2 }, - { 0*24*2, 1*24*2, 2*24*2, 3*24*2, 4*24*2, 5*24*2, 6*24*2, 7*24*2, - 8*24*2, 9*24*2,10*24*2,11*24*2,12*24*2,13*24*2,14*24*2,15*24*2, - 16*24*2,17*24*2 }, - 18 * 24 * 2, /* every icon takes 18 rows of 24 * 2 bits */ -}; - -static gfx_decode gfxdecodeinfo[] = -{ - { 1, 0, &led_layout, 0, 16 }, - { 2, 0, &key_layout, 16*2, 2 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( mekd2 ) - /* basic machine hardware */ - MDRV_CPU_ADD(M6800, 614400) /* 614.4 kHz */ - MDRV_CPU_PROGRAM_MAP(mekd2_mem, 0) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(600, 768) - MDRV_SCREEN_VISIBLE_AREA(0, 600-1, 0, 768-1) - MDRV_GFXDECODE( gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(21 + 32768) - MDRV_COLORTABLE_LENGTH(256) - MDRV_PALETTE_INIT( mekd2 ) - - MDRV_VIDEO_START( mekd2 ) - MDRV_VIDEO_UPDATE( mekd2 ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -ROM_START(mekd2) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("jbug.rom", 0xe000, 0x0400, CRC(a2a56502) SHA1(60b6e48f35fe4899e29166641bac3e81e3b9d220)) - ROM_REGION(128 * 24 * 3,REGION_GFX1,0) - /* space filled with 7segement graphics by mekd2_init_driver */ - ROM_REGION( 24 * 18 * 3 * 2,REGION_GFX2,0) - /* space filled with key icons by mekd2_init_driver */ -ROM_END - -static void mekd2_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_mekd2_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "d2"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(mekd2) - CONFIG_DEVICE(mekd2_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1977, mekd2, 0, 0, mekd2, mekd2, mekd2, mekd2, "Motorola", "MEK6800D2" , 0) diff --git a/mess/systems/msx.c b/mess/systems/msx.c deleted file mode 100644 index 41ae85ced..000000000 --- a/mess/systems/msx.c +++ /dev/null @@ -1,2305 +0,0 @@ -/* -** msx.c : driver for MSX -** -** Todo: -** - Add support for other MSX models (de,fr,jp,ru etc.) -*/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "machine/8255ppi.h" -#include "vidhrdw/tms9928a.h" -#include "vidhrdw/v9938.h" -#include "includes/msx_slot.h" -#include "includes/msx.h" -#include "devices/basicdsk.h" -#include "devices/printer.h" -#include "devices/cartslot.h" -#include "devices/cassette.h" -#include "formats/fmsx_cas.h" -#include "sound/ay8910.h" - -static ADDRESS_MAP_START (readmem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x1fff) AM_READ( MRA8_BANK1 ) - AM_RANGE( 0x2000, 0x3fff) AM_READ( MRA8_BANK2 ) - AM_RANGE( 0x4000, 0x5fff) AM_READ( MRA8_BANK3 ) - AM_RANGE( 0x6000, 0x7ff7) AM_READ( MRA8_BANK4 ) - AM_RANGE( 0x7ff8, 0x7fff) AM_READ( MRA8_BANK5 ) - AM_RANGE( 0x8000, 0x97ff) AM_READ( MRA8_BANK6 ) - AM_RANGE( 0x9800, 0x9fff) AM_READ( MRA8_BANK7 ) - AM_RANGE( 0xa000, 0xb7ff) AM_READ( MRA8_BANK8 ) - AM_RANGE( 0xb800, 0xbfff) AM_READ( MRA8_BANK9 ) - AM_RANGE( 0xc000, 0xdfff) AM_READ( MRA8_BANK10 ) - AM_RANGE( 0xe000, 0xfffe) AM_READ( MRA8_BANK11 ) - AM_RANGE( 0xffff, 0xffff) AM_READ( msx_sec_slot_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x0000) AM_WRITE( msx_superloadrunner_w ) - AM_RANGE( 0x0001, 0x3fff) AM_WRITE( msx_page0_w ) - AM_RANGE( 0x4000, 0x7fff) AM_WRITE( msx_page1_w ) - AM_RANGE( 0x8000, 0xbfff) AM_WRITE( msx_page2_w ) - AM_RANGE( 0xc000, 0xfffe) AM_WRITE( msx_page3_w ) - AM_RANGE( 0xffff, 0xffff) AM_WRITE( msx_sec_slot_w ) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START (readport, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(0xff) ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x90, 0x91) AM_READ( msx_printer_r ) - AM_RANGE( 0xa0, 0xa7) AM_READ( msx_psg_r ) - AM_RANGE( 0xa8, 0xab) AM_READ( ppi8255_0_r ) - AM_RANGE( 0x98, 0x98) AM_READ( TMS9928A_vram_r ) - AM_RANGE( 0x99, 0x99) AM_READ( TMS9928A_register_r ) - AM_RANGE( 0xd9, 0xd9) AM_READ( msx_kanji_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (writeport, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x77, 0x77) AM_WRITE( msx_90in1_w ) - AM_RANGE( 0x7c, 0x7d) AM_WRITE( msx_fmpac_w ) - AM_RANGE( 0x90, 0x91) AM_WRITE( msx_printer_w ) - AM_RANGE( 0xa0, 0xa7) AM_WRITE( msx_psg_w ) - AM_RANGE( 0xa8, 0xab) AM_WRITE( ppi8255_0_w ) - AM_RANGE( 0x98, 0x98) AM_WRITE( TMS9928A_vram_w ) - AM_RANGE( 0x99, 0x99) AM_WRITE( TMS9928A_register_w ) - AM_RANGE( 0xd8, 0xd9) AM_WRITE( msx_kanji_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (readport2, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(0xff) ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x90, 0x91) AM_READ( msx_printer_r ) - AM_RANGE( 0xa0, 0xa7) AM_READ( msx_psg_r ) - AM_RANGE( 0xa8, 0xab) AM_READ( ppi8255_0_r ) - AM_RANGE( 0x98, 0x98) AM_READ( v9938_vram_r ) - AM_RANGE( 0x99, 0x99) AM_READ( v9938_status_r ) - AM_RANGE( 0xb5, 0xb5) AM_READ( msx_rtc_reg_r ) - AM_RANGE( 0xd9, 0xd9) AM_READ( msx_kanji_r ) - AM_RANGE( 0xfc, 0xff) AM_READ( msx_ram_mapper_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (writeport2, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x77, 0x77) AM_WRITE( msx_90in1_w ) - AM_RANGE( 0x7c, 0x7d) AM_WRITE( msx_fmpac_w ) - AM_RANGE( 0x90, 0x91) AM_WRITE( msx_printer_w ) - AM_RANGE( 0xa0, 0xa7) AM_WRITE( msx_psg_w ) - AM_RANGE( 0xa8, 0xab) AM_WRITE( ppi8255_0_w ) - AM_RANGE( 0x98, 0x98) AM_WRITE( v9938_vram_w ) - AM_RANGE( 0x99, 0x99) AM_WRITE( v9938_command_w ) - AM_RANGE( 0x9a, 0x9a) AM_WRITE( v9938_palette_w ) - AM_RANGE( 0x9b, 0x9b) AM_WRITE( v9938_register_w ) - AM_RANGE( 0xb4, 0xb4) AM_WRITE( msx_rtc_latch_w ) - AM_RANGE( 0xb5, 0xb5) AM_WRITE( msx_rtc_reg_w ) - AM_RANGE( 0xd8, 0xd9) AM_WRITE( msx_kanji_w ) - AM_RANGE( 0xfc, 0xff) AM_WRITE( msx_ram_mapper_w ) -ADDRESS_MAP_END - -/* start define for the special ports (DIPS, joystick, mouse) */ -static INPUT_PORTS_START( msx_dips ) - PORT_START /* 6 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x80, 0, "Game port 1") - PORT_DIPSETTING( 0x00, DEF_STR( Joystick )) - PORT_DIPSETTING( 0x80, "Mouse") - - PORT_START /* 7 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x80, 0, "Game port 2") - PORT_DIPSETTING( 0x00, DEF_STR( Joystick )) - PORT_DIPSETTING( 0x80, "Mouse") - - PORT_START /* 8 */ - PORT_DIPNAME( 0x40, 0, "Swap game port 1 and 2") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0, "SIMPL") - PORT_DIPSETTING( 0x00, DEF_STR ( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR ( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Enforce 4/8 sprites/line") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x03, 0, "Render resolution") - PORT_DIPSETTING( 0, DEF_STR( High )) - PORT_DIPSETTING( 1, DEF_STR( Low )) - PORT_DIPSETTING( 2, "Auto" ) - - PORT_START /* 9 */ - PORT_BIT( 0xff00, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* 10 */ - PORT_BIT( 0xff00, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(2) - PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(2) - /* end define for the special ports (DIPS, joystick, mouse) */ -INPUT_PORTS_END - - -#define KEYB_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - -#define KEYB_EXPERT11_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - -#define KEYB_HOTBIT_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 \"") PORT_CODE(KEYCODE_6) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - -#define KEYB_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - -#define KEYB_HOTBIT_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ ^") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' `") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\" `") PORT_CODE(KEYCODE_BACKSLASH2) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\x87 \xC3\xA7") PORT_CODE(KEYCODE_ASTERISK) - -#define KEYB_EXPERT11_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 '") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("{ }") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' `") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ ]") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("~ ^") PORT_CODE(KEYCODE_TILDE) - -#define KEYB_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - -#define KEYB_HOTBIT_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("~ ^") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ ]") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". :") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("< >") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - -#define KEYB_EXPERT10_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\x87 \xC3\xA7") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - -#define KEYB_EXPERT11_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("* @") PORT_CODE(KEYCODE_ASTERISK) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\x87 \xC3\xA7") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": ;") PORT_CODE(KEYCODE_COLON) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - -#define KEYB_ROW3 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) - -#define KEYB_ROW4 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) - -#define KEYB_ROW5 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) - -#define KEYB_ROW6 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CODE") PORT_CODE(KEYCODE_PGDN) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - -#define KEYB_EXPERT11_ROW6 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LGRAPH") PORT_CODE(KEYCODE_PGUP) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RGRAPH") PORT_CODE(KEYCODE_PGDN) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - -#define KEYB_ROW7 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_RCONTROL) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SELECT") PORT_CODE(KEYCODE_END) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - -#define KEYB_ROW8 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INSERT") PORT_CODE(KEYCODE_INSERT) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) - -#define KEYB_ROW9 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM *") PORT_CODE(KEYCODE_ASTERISK) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM +") PORT_CODE(KEYCODE_PLUS_PAD) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM /") PORT_CODE(KEYCODE_SLASH_PAD) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 0") PORT_CODE(KEYCODE_0_PAD) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 1") PORT_CODE(KEYCODE_1_PAD) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 2") PORT_CODE(KEYCODE_2_PAD) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 3") PORT_CODE(KEYCODE_3_PAD) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 4") PORT_CODE(KEYCODE_4_PAD) - -#define KEYB_ROW10 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 5") PORT_CODE(KEYCODE_5_PAD) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 6") PORT_CODE(KEYCODE_6_PAD) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 7") PORT_CODE(KEYCODE_7_PAD) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 8") PORT_CODE(KEYCODE_8_PAD) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 9") PORT_CODE(KEYCODE_9_PAD) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM -") PORT_CODE(KEYCODE_MINUS_PAD) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM ,") PORT_CODE(KEYCODE_ENTER_PAD) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM .") PORT_CODE(KEYCODE_DEL_PAD) - -INPUT_PORTS_START( msx ) - - PORT_START /* 0 */ - KEYB_ROW0 - KEYB_ROW1 - - PORT_START /* 1 */ - KEYB_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( msxuk ) - - PORT_START /* 0 */ - KEYB_ROW0 - KEYB_ROW1 - - PORT_START /* 1 */ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC2\xA3 ~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dead Key") - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -#define KEYB_JAP_ROW0 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) - -#define KEYB_JAP_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC2\xA5 |") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ `") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ }") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) - -#define KEYB_KOR_ROW1 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("WON |") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ `") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT (0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ }") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT (0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) - -#define KEYB_JAP_ROW2 \ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(" _") PORT_CODE(KEYCODE_F8) \ - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - -INPUT_PORTS_START( msxjp ) - - PORT_START /* 0 */ - KEYB_JAP_ROW0 - KEYB_JAP_ROW1 - - PORT_START /* 1 */ - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KANA") PORT_CODE(KEYCODE_PGDN) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( msxkr ) - - PORT_START /* 0 */ - KEYB_JAP_ROW0 - KEYB_KOR_ROW1 - - PORT_START /* 1 */ - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Hangul") PORT_CODE(KEYCODE_PGDN) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( hotbit ) - - PORT_START /* 0 */ - KEYB_HOTBIT_ROW0 - KEYB_HOTBIT_ROW1 - - PORT_START /* 1 */ - KEYB_HOTBIT_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -#define KEYB_EXPERT11_ROW9 \ - PORT_BIT (0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+") PORT_CODE(KEYCODE_8) \ - PORT_BIT (0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_9) \ - PORT_BIT (0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("*") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT (0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0xf000, IP_ACTIVE_LOW, IPT_UNUSED) \ - -INPUT_PORTS_START( expert11 ) - - PORT_START /* 0 */ - KEYB_EXPERT11_ROW0 - KEYB_EXPERT11_ROW1 - - PORT_START /* 1 */ - KEYB_EXPERT11_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_EXPERT11_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - KEYB_EXPERT11_ROW9 - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( expert10 ) - - PORT_START /* 0 */ - KEYB_ROW0 - KEYB_ROW1 - - PORT_START /* 1 */ - KEYB_EXPERT10_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_EXPERT11_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - KEYB_EXPERT11_ROW9 - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( msx2 ) - - PORT_START /* 0 */ - KEYB_ROW0 - KEYB_ROW1 - - PORT_START /* 1 */ - KEYB_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - KEYB_ROW6 - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - KEYB_ROW9 - - PORT_START /* 5 */ - KEYB_ROW10 - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( msx2jp ) - - PORT_START /* 0 */ - KEYB_JAP_ROW0 - KEYB_JAP_ROW1 - - PORT_START /* 1 */ - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KANA") PORT_CODE(KEYCODE_PGDN) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - KEYB_ROW9 - - PORT_START /* 5 */ - KEYB_ROW10 - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - -INPUT_PORTS_START( msx2kr ) - - PORT_START /* 0 */ - KEYB_JAP_ROW0 - KEYB_KOR_ROW1 - - PORT_START /* 1 */ - KEYB_JAP_ROW2 - KEYB_ROW3 - - PORT_START /* 2 */ - KEYB_ROW4 - KEYB_ROW5 - - PORT_START /* 3 */ - PORT_BIT (0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_PGUP) - PORT_BIT (0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT (0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Hangul") PORT_CODE(KEYCODE_PGDN) - PORT_BIT (0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT (0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - KEYB_ROW7 - - PORT_START /* 4 */ - KEYB_ROW8 - PORT_BIT (0xff00, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_START /* 5 */ - PORT_BIT (0xffff, IP_ACTIVE_LOW, IPT_UNUSED) \ - - PORT_INCLUDE( msx_dips ) -INPUT_PORTS_END - - -static struct AY8910interface ay8910_interface = -{ - msx_psg_port_a_r, - msx_psg_port_b_r, - msx_psg_port_a_w, - msx_psg_port_b_w -}; - -static VIDEO_START( msx2 ) -{ - return v9938_init(machine, MODEL_V9938, 0x20000, msx_vdp_interrupt); -} - -static MACHINE_DRIVER_START( msx ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3579545) /* 3.579545 Mhz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(msx_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( msx ) - MDRV_MACHINE_RESET( msx ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - MDRV_SCREEN_SIZE(15 + 256 + 15, 27 + 192 + 24) - MDRV_SCREEN_VISIBLE_AREA(15 - 8, 15 + 256 + 8 - 1, 27 - 24, 27 + 192 + 24 - 1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 1789773) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MDRV_SOUND_ADD(K051649, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( msx_pal ) - MDRV_IMPORT_FROM( msx ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( msx2 ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3579545) /* 3.579545 Mhz */ - MDRV_CPU_PROGRAM_MAP(readmem, writemem) - MDRV_CPU_IO_MAP(readport2,writeport2) - MDRV_CPU_VBLANK_INT(msx2_interrupt,262) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( msx2 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512 + 32, (212 + 28) * 2) - MDRV_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1) - MDRV_PALETTE_LENGTH(512) - MDRV_COLORTABLE_LENGTH(512) - MDRV_PALETTE_INIT( v9938 ) - - MDRV_VIDEO_START( msx2 ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 1789773) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - MDRV_SOUND_ADD(K051649, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_NVRAM_HANDLER( msx2 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( msx2_pal ) - MDRV_IMPORT_FROM( msx2 ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START (msx) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("msx.rom", 0x0000, 0x8000, CRC(8205795e) SHA1(829c00c3114f25b3dae5157c0a238b52a3ac37db)) -ROM_END - -MSX_LAYOUT_INIT (msx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (hb75d) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("75dbios.rom", 0x0000, 0x8000, CRC(7e2b32dd) SHA1(38a645febd0e0fe86d594f27c2d14be995acc730)) - ROM_LOAD ("75dnote.rom", 0x8000, 0x4000, CRC(8aae0494) SHA1(97ce59892573cac3c440efff6d74c8a1c29a5ad3)) -ROM_END - -MSX_LAYOUT_INIT (hb75d) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (hb75p) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("75pbios.rom", 0x0000, 0x8000, CRC(e9ccd789) SHA1(8963fc041975f31dc2ab1019cfdd4967999de53e)) - ROM_LOAD ("75pnote.rom", 0x8000, 0x4000, CRC(492b12f8) SHA1(b262aedc71b445303f84efe5e865cbb71fd7d952)) -ROM_END - -MSX_LAYOUT_INIT (hb75p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (hb501p) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("501pbios.rom", 0x0000, 0x8000, CRC(0f488dd8) SHA1(5e7c8eab238712d1e18b0219c0f4d4dae180420d)) -ROM_END - -MSX_LAYOUT_INIT (hb501p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (hb201p) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("201pbios.rom", 0x0000, 0x8000, CRC(0f488dd8) SHA1(5e7c8eab238712d1e18b0219c0f4d4dae180420d)) - ROM_LOAD ("201pnote.rom", 0x8000, 0x4000, CRC(1ff9b6ec) SHA1(e84d3ec7a595ee36b50e979683c84105c1871857)) -ROM_END - -MSX_LAYOUT_INIT (hb201p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (svi738) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("738bios.rom", 0x0000, 0x8000, CRC(ad007d62) SHA1(c53b3f2c00f31683914f7452f3f4d94ae2929c0d)) - ROM_LOAD ("738disk.rom", 0x8000, 0x4000, CRC(acd27a36) SHA1(99a40266bc296cef1d432cb0caa8df1a7e570be4)) - ROM_LOAD ("738232c.rom", 0xc000, 0x4000, CRC(af568506) SHA1(9de525e042d7345f6b725a696bd1b6fef69ecbf1)) -ROM_END - -MSX_LAYOUT_INIT (svi738) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) -MSX_LAYOUT_END - -ROM_START (cf2000) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("2000bios.rom", 0x0000, 0x8000, CRC(ee229390) SHA1(302afb5d8be26c758309ca3df611ae69cced2821)) -ROM_END - -MSX_LAYOUT_INIT (cf2000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (cf1200) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("1200bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf1200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (cf2700) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("2700bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf2700) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (cf3000) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("3000bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (cf3000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (cf3300) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("3300bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) - ROM_LOAD ("3300disk.rom", 0x8000, 0x4000, CRC(549f1d90) SHA1(f1525de4e0b60a6687156c2a96f8a8b2044b6c56)) -ROM_END - -MSX_LAYOUT_INIT (cf3300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 1, 2, DISK_ROM2, 0x4000, 0x8000) -MSX_LAYOUT_END - -ROM_START (fs4000) - ROM_REGION (0x38000 ,REGION_CPU1, 0) - ROM_LOAD ("4000bios.rom", 0x0000, 0x8000, CRC(071135e0) SHA1(df48902f5f12af8867ae1a87f255145f0e5e0774)) - ROM_LOAD ("4000word.rom", 0x8000, 0x8000, CRC(950b6c87) SHA1(931d6318774bd495a32ec3dabf8d0edfc9913324)) - ROM_LOAD ("4000kdr.rom", 0x10000, 0x8000, CRC(ebaa5a1e) SHA1(77bd67d5d10d459d343e79eafcd8e17eb0f209dd)) - ROM_LOAD ("4000kfn.rom", 0x18000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) -ROM_END - -MSX_LAYOUT_INIT (fs4000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x10000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_KANJI (0x18000) -MSX_LAYOUT_END - -ROM_START (fs1300) - ROM_REGION (0x8000, REGION_CPU1, 0) - ROM_LOAD ("1300bios.rom", 0x0000, 0x8000, CRC(5ad03407) SHA1(c7a2c5baee6a9f0e1c6ee7d76944c0ab1886796c)) -ROM_END - -MSX_LAYOUT_INIT (fs1300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (hb201) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("201bios.rom", 0x0000, 0x8000, CRC(ee229390) SHA1(302afb5d8be26c758309ca3df611ae69cced2821)) - ROM_LOAD ("201note.rom", 0x8000, 0x8000, CRC(d280186e) SHA1(1c8270207b5cc14414a52ffcdece65094f70774e)) -ROM_END - -MSX_LAYOUT_INIT (hb201) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (dpc100) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("100bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("100han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc100) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (dpc180) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("180bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("180han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc180) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - - -ROM_START (dpc200) - ROM_REGION (0xc000, REGION_CPU1, 0) - ROM_LOAD ("200bios.rom", 0x0000, 0x8000, CRC(3ab0cd3b) SHA1(171b587bd5a947a13f3114120b6e7baca3b57d78)) - ROM_LOAD ("200han.rom", 0x8000, 0x4000, CRC(97478efb) SHA1(4421fa2504cbce18f7c84b5ea97f04e017007f07)) -ROM_END - -MSX_LAYOUT_INIT (dpc200) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) -MSX_LAYOUT_END - -ROM_START (hotbit11) - ROM_REGION (0x8000, REGION_CPU1,0) - ROM_LOAD ("hotbit11.rom", 0x0000, 0x8000, CRC(b6942694) SHA1(663f8c512d04d213fa616b0db5eefe3774012a4b)) -ROM_END - -MSX_LAYOUT_INIT (hotbit11) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (hotbit12) - ROM_REGION (0x8000, REGION_CPU1,0) - ROM_LOAD ("hotbit12.rom", 0x0000, 0x8000, CRC(f59a4a0c) SHA1(9425815446d468058705bae545ffa13646744a87)) -ROM_END - -MSX_LAYOUT_INIT (hotbit12) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (expert10) - ROM_REGION (0x8000, REGION_CPU1,0) - ROM_LOAD ("expbios.rom", 0x0000, 0x8000, CRC(07610d77) SHA1(ef3e010eb57e4476700a3bbff9d2119ab3acdf62)) -ROM_END - -MSX_LAYOUT_INIT (expert10) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (expert11) - ROM_REGION (0xc000, REGION_CPU1,0) - ROM_LOAD ("exppbios.rom", 0x0000, 0x8000, CRC(efb4b972) SHA1(d6720845928ee848cfa88a86accb067397685f02)) - ROM_LOAD ("exppdemo.rom", 0x8000, 0x4000, CRC(a9bbef64) SHA1(d4cea8c815f3eeabe0c6a1c845f902ec4318bf6b)) -ROM_END - -MSX_LAYOUT_INIT (expert11) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (expertdp) - ROM_REGION (0xc000, REGION_CPU1,0) - ROM_LOAD ("eddpbios.rom", 0x0000, 0x8000, CRC(efb4b972) SHA1(d6720845928ee848cfa88a86accb067397685f02)) - ROM_LOAD ("eddpdisk.rom", 0x8000, 0x4000, CRC(549f1d90) SHA1(f1525de4e0b60a6687156c2a96f8a8b2044b6c56)) -ROM_END - -MSX_LAYOUT_INIT (expertdp) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0x8000) -MSX_LAYOUT_END - -ROM_START (msx2) - ROM_REGION (0x20000, REGION_CPU1,0) - ROM_LOAD ("msx2.rom", 0x0000, 0x8000, CRC(f05ed518) SHA1(5e1a4bd6826b29302a1eb88c340477e7cbd0b50a)) - ROM_LOAD ("msx2ext.rom", 0x8000, 0x4000, CRC(95db2959) SHA1(e7905d16d2ccd57a013c122dc432106cd59ef52c)) - ROM_LOAD_OPTIONAL ("disk.rom", 0xc000, 0x4000, CRC(b7c58fad) SHA1(bc517b4a248c3a1338c5efc937b0128b6a783808)) - ROM_LOAD_OPTIONAL ("fmpac.rom", 0x10000, 0x10000, CRC(0e84505d) SHA1(9d789166e3caf28e4742fe933d962e99618c633d)) -ROM_END - -MSX_LAYOUT_INIT (msx2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8220) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8220bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8220ext.rom", 0x8000, 0x4000, CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - ROM_LOAD ("8220pen.rom", 0xc000, 0x4000, CRC(3d38c53e) SHA1(cb754aed85b3e97a7d3c5894310df7ca18f89f41)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8220) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8220a) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8220bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8220ext.rom", 0x8000, 0x4000, CRC(06e4f5e6) SHA1(f5eb0a396097572589f2a6efeed045044e9425e4)) - ROM_LOAD ("8220pena.rom", 0xc000, 0x4000, CRC(17817b5a) SHA1(5df95d033ae70b107697b69470126ce1b7ae9eb5)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8220a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (vg8235) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8235bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8235ext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8235disk.rom", 0xc000, 0x4000, CRC(51daeb25) SHA1(8954e59aa79310c7b719ecf0cde1e82fb731dcd1)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (vg8235) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8245) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8245bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8245ext.rom", 0x8000, 0x4000, CRC(95db2959) SHA1(e7905d16d2ccd57a013c122dc432106cd59ef52c)) - ROM_LOAD ("8245disk.rom", 0xc000, 0x4000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8245) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8250) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8250bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8250ext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8250disk.rom", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8250) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8255) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8255bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8255ext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8255disk.rom", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8255) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (nms8280) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("8280bios.rom", 0x0000, 0x8000, CRC(6cdaf3a5) SHA1(6103b39f1e38d1aa2d84b1c3219c44f1abb5436e)) - ROM_LOAD ("8280ext.rom", 0x8000, 0x4000, CRC(66237ecf) SHA1(5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02)) - ROM_LOAD ("8280disk.rom", 0xc000, 0x04000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (nms8280) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_RAMIO_SET_BITS (0xf8) -MSX_LAYOUT_END - -ROM_START (fs5500) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("5500bios.rom", 0x0000, 0x8000, CRC(5bf38e13) SHA1(44e0dd215b2a9f0770dd76fb49187c05b083eed9)) - ROM_LOAD ("5500ext.rom", 0x8000, 0x4000, CRC(3c42c367) SHA1(4be8371f3b03e70ddaca495958345f3c4f8e2d36)) - ROM_LOAD ("5500disk.rom", 0xc000, 0x4000, CRC(1e7d6512) SHA1(78cd7f847e77fd8cd51a647efb2725ba93f4c471)) - ROM_LOAD ("5500null.rom", 0x10000, 0x10000, CRC(deab7e4e) SHA1(472a55b0ba289b0f4e538bb4c8b826dede3a40bb)) - ROM_LOAD ("5500imp.rom", 0x20000, 0x8000, CRC(6173a88c) SHA1(b677a861b67e8763a11d5dcf52416b42493ade57)) - ROM_LOAD ("5500kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("5500kfn.rom", 0x30000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) -ROM_END - -MSX_LAYOUT_INIT (fs5500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 3, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) -MSX_LAYOUT_END - -ROM_START (fs4500) - ROM_REGION (0x94000, REGION_CPU1,0) - ROM_LOAD ("4500bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4500ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("4500font.rom", 0x20000, 0x4000, CRC(4bd54f95) SHA1(3ce8e35790eb4689b21e14c7ecdd4b63943ee158)) - ROM_LOAD ("4500buns.rom", 0x24000, 0x8000, CRC(c9398e11) SHA1(e89ea1e8e583392e2dd9debb8a4b6a162f58ba91)) - ROM_LOAD ("4500jush.rom", 0x2c000, 0x8000, CRC(4debfd2d) SHA1(6442c1c5cece64c6dae90cc6ae3675f070d93e06)) - ROM_LOAD ("4500wor1.rom", 0x34000, 0xc000, CRC(0c8b5cfb) SHA1(3f047469b62d93904005a0ea29092e892724ce0b)) - ROM_LOAD ("4500wor2.rom", 0x40000, 0xc000, CRC(d9909451) SHA1(4c8ea05c09b40c41888fa18db065575a317fda16)) - ROM_LOAD ("4500kdr1.rom", 0x4c000, 0x4000, CRC(f8c7f0db) SHA1(df07e89fa0b1c7874f9cdf184c136f964fea4ff4)) - ROM_LOAD ("4500kdr2.rom", 0x50000, 0x4000, CRC(69e87c31) SHA1(c63db26660da96af56f8a7d3ea18544b9ae5a37c)) - ROM_LOAD ("4500kfn.rom", 0x54000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) - ROM_LOAD ("4500budi.rom", 0x74000, 0x20000, CRC(f94590f8) SHA1(1ebb06062428fcdc66808a03761818db2bba3c73)) -ROM_END - -MSX_LAYOUT_INIT (fs4500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 3, ROM, 0xc000, 0x34000) - MSX_LAYOUT_SLOT (3, 0, 3, 1, ROM, 0x4000, 0x4c000) - MSX_LAYOUT_SLOT (3, 1, 0, 3, ROM, 0xc000, 0x40000) - MSX_LAYOUT_SLOT (3, 1, 3, 1, ROM, 0x4000, 0x50000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_KANJI (0x54000) -/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */ -MSX_LAYOUT_END - -ROM_START (fs4700) - ROM_REGION (0x94000, REGION_CPU1,0) - ROM_LOAD ("4700bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4700ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_LOAD ("4700disk.rom", 0xc000, 0x4000, CRC(1e7d6512) SHA1(78cd7f847e77fd8cd51a647efb2725ba93f4c471)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("4700font.rom", 0x20000, 0x4000, CRC(4bd54f95) SHA1(3ce8e35790eb4689b21e14c7ecdd4b63943ee158)) - ROM_LOAD ("4700buns.rom", 0x24000, 0x8000, CRC(c9398e11) SHA1(e89ea1e8e583392e2dd9debb8a4b6a162f58ba91)) - ROM_LOAD ("4700jush.rom", 0x2c000, 0x8000, CRC(4debfd2d) SHA1(6442c1c5cece64c6dae90cc6ae3675f070d93e06)) - ROM_LOAD ("4700wor1.rom", 0x34000, 0xc000, CRC(5f39a727) SHA1(f5af1d2a8bcf247f78847e1a9d995e581df87e8e)) - ROM_LOAD ("4700wor2.rom", 0x40000, 0xc000, CRC(d9909451) SHA1(4c8ea05c09b40c41888fa18db065575a317fda16)) - ROM_LOAD ("4700kdr1.rom", 0x4c000, 0x4000, CRC(f8c7f0db) SHA1(df07e89fa0b1c7874f9cdf184c136f964fea4ff4)) - ROM_LOAD ("4700kdr2.rom", 0x50000, 0x4000, CRC(69e87c31) SHA1(c63db26660da96af56f8a7d3ea18544b9ae5a37c)) - ROM_LOAD ("4700kfn.rom", 0x54000, 0x20000, CRC(956dc96d) SHA1(9ed3ab6d893632b9246e91b412cd5db519e7586b)) - ROM_LOAD ("4700budi.rom", 0x74000, 0x20000, CRC(f94590f8) SHA1(1ebb06062428fcdc66808a03761818db2bba3c73)) -ROM_END - -MSX_LAYOUT_INIT (fs4700) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 3, ROM, 0xc000, 0x34000) - MSX_LAYOUT_SLOT (3, 0, 3, 1, ROM, 0x4000, 0x4c000) - MSX_LAYOUT_SLOT (3, 1, 0, 3, ROM, 0xc000, 0x40000) - MSX_LAYOUT_SLOT (3, 1, 3, 1, ROM, 0x4000, 0x50000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x54000) -/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */ -MSX_LAYOUT_END - -ROM_START (fs5000) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("5000bios.rom", 0x0000, 0x8000, CRC(a44ea707) SHA1(59967765d6e9328909dee4dac1cbe4cf9d47d315)) - ROM_LOAD ("5000ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("5000disk.rom", 0xc000, 0x4000, CRC(ae4e65b7) SHA1(073feb8bb645d935e099afaf61e6f04f52adee42)) - ROM_LOAD ("5000null.rom", 0x10000, 0x10000, CRC(deab7e4e) SHA1(472a55b0ba289b0f4e538bb4c8b826dede3a40bb)) - ROM_LOAD ("5000rtc.rom", 0x20000, 0x8000, CRC(03351598) SHA1(98bbfa3ab07b7a5cad55d7ddf7cbd9440caa2a86)) - ROM_LOAD ("5000kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("5000kfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) -ROM_END - -MSX_LAYOUT_INIT (fs5000) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (0, 3, 0, 4, ROM, 0x10000, 0x10000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (3, 1, 1, 1, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fs4600) - ROM_REGION (0x170000, REGION_CPU1,0) - ROM_LOAD ("4600bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("4600ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("4600disk.rom", 0xc000, 0x4000, CRC(ae4e65b7) SHA1(073feb8bb645d935e099afaf61e6f04f52adee42)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("4600fon1.rom", 0x20000, 0x4000, CRC(7391389b) SHA1(31292b9ca9fe7d1d8833530f44c0a5671bfefe4e)) - ROM_LOAD ("4600fon2.rom", 0x24000, 0x4000, CRC(c3a6b445) SHA1(02155fc25c9bd23e1654fe81c74486351e1ecc28)) - ROM_LOAD ("4600kdr.rom", 0x28000, 0x8000, CRC(b2db6bf5) SHA1(3a9a942ed888dd641cddf8deada1879c454df3c6)) - ROM_LOAD ("4600kfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) - ROM_LOAD ("4600kf12.rom", 0x50000, 0x20000, CRC(340d1ef7) SHA1(a7a23dc01314e88381eee88b4878b39931ab4818)) - ROM_LOAD ("4600firm.rom", 0x70000, 0x100000, CRC(1df57472) SHA1(005794c10a4237de3907ba4a44d436078d3c06c2)) -ROM_END - -MSX_LAYOUT_INIT (fs4600) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 2, 0, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (0, 2, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 3, 0, 1, ROM, 0x4000, 0x24000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, ASCII16, 0x100000, 0x70000) /* National FS-4600 Mapper must be emulated */ - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, DISK_ROM2, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x30000) -/* MSX_LAYOUT_KANJI_12 (0x50000) */ /* Matsushita 12 dots Kanji ROM must be emulated */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("a1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("deskpac1.rom", 0x20000, 0x8000, CRC(99c48147) SHA1(63098f27beac9eca6b39d837d2a552395df33fe1)) - ROM_LOAD ("deskpac2.rom", 0x28000, 0x8000, CRC(7f6f4aa1) SHA1(7f5b76605e3d898cc4b5aacf1d7682b82fe84353)) -ROM_END - -MSX_LAYOUT_INIT (fsa1) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64 KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) -MSX_LAYOUT_END - -ROM_START (fsa1a) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("a1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("deskpa1a.rom", 0x20000, 0x8000, CRC(25b5b170) SHA1(d9307bfdaab1312d25e38af7c0d3a7671a9f716b)) - ROM_LOAD ("deskpac2.rom", 0x28000, 0x8000, CRC(7f6f4aa1) SHA1(7f5b76605e3d898cc4b5aacf1d7682b82fe84353)) -ROM_END - -MSX_LAYOUT_INIT (fsa1a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) -MSX_LAYOUT_END - -ROM_START (fsa1mk2) - ROM_REGION (0x34000, REGION_CPU1,0) - ROM_LOAD ("a1mkbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1mk2ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("cockpit1.rom", 0x20000, 0x8000, CRC(0eda3f57) SHA1(2752cd89754c05abdf7c23cba132d38e3ef0f27d)) - ROM_LOAD ("cockpit2.rom", 0x28000, 0x4000, CRC(756d7128) SHA1(e194d290ebfa4595ce0349ea2fc15442508485b0)) - ROM_LOAD ("cockpit3.rom", 0x2c000, 0x8000, CRC(c1945676) SHA1(a3f4e2e4934074925d775afe30ac72f150ede543)) -ROM_END - -MSX_LAYOUT_INIT (fsa1mk2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64 KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1f) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("a1fbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1fext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("a1fdisk.rom", 0xc000, 0x4000, CRC(d24cd452) SHA1(141e61cc8e0e51382e508fbd77a34b778a4f8444)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fkdr.rom", 0x20000, 0x8000, CRC(2dbea5ec) SHA1(ea35cc2cad9cfdf56cae224d8ee41579de37f000)) - ROM_LOAD ("a1fcock.rom", 0x28000, 0x8000, CRC(5c2948cd) SHA1(4a99f2444f29c2b642efd6f084081d6fd96bfa9b)) - ROM_LOAD ("a1fkfn.rom", 0x30000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) -ROM_END - -MSX_LAYOUT_INIT (fsa1f) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1fm) - ROM_REGION (0x180000, REGION_CPU1,0) - ROM_LOAD ("a1fmbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("a1fmext.rom", 0x8000, 0x4000, CRC(ad295b5d) SHA1(d552319a19814494e3016de4b8f010e8f7b97e02)) - ROM_LOAD ("a1fmdisk.rom", 0xc000, 0x4000, CRC(d24cd452) SHA1(141e61cc8e0e51382e508fbd77a34b778a4f8444)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fmmod.rom", 0x20000, 0x20000, CRC(925dbeeb) SHA1(2367ad17bc6bfaaf7b94a009ae26d508bdcf5565)) - ROM_LOAD ("a1fmkfn.rom", 0x40000, 0x20000, CRC(c61ddc5d) SHA1(5e872d5853698731a0ed22fb72dbcdfd59cd19c3)) - ROM_LOAD ("a1fmkf12.rom", 0x60000, 0x20000, CRC(340d1ef7) SHA1(a7a23dc01314e88381eee88b4878b39931ab4818)) - ROM_LOAD ("a1fmfirm.rom", 0x80000, 0x100000, CRC(8ce0ece7) SHA1(f89e3d8f3b6855c29d71d3149cc762e0f6918ad5)) -ROM_END - -MSX_LAYOUT_INIT (fsa1fm) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) -/* MSX_LAYOUT_SLOT (3, 1, 1, 2, MODEM_ROM, 0x20000, 0x20000) */ /* Modem Mapper of FS-CM1/A1FM must be emulated */ -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 0, 4, FSA1FM_ROM, 0x100000, 0x80000) */ /* Panasonic FS-A1FM Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x40000) -/* MSX_LAYOUT_KANJI_12 (0x60000) */ /* Matsushita 12 dots Kanji ROM must be emulated */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf500) - ROM_REGION (0x40000, REGION_CPU1, 0) - ROM_LOAD ("f500bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f500ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_LOAD ("f500disk.rom", 0xc000, 0x4000, CRC(f7f5b0ea) SHA1(e93b8da1e8dddbb3742292b0e5e58731b90e9313)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f500kfn.rom", 0x20000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf500) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (0, 2, 0, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x20000) -MSX_LAYOUT_END - -ROM_START (hbf900) - ROM_REGION (0x44000, REGION_CPU1, 0) - ROM_LOAD ("f900bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f900ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f900disk.rom", 0xc000, 0x4000, CRC(f83d0ea6) SHA1(fc760d1d7b16370abc7eea39955f230b95b37df6)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f900util.rom", 0x20000, 0x4000, CRC(bc6c7c66) SHA1(558b7383544542cf7333700ff90c3efbf93ba2a3)) - ROM_LOAD ("f900kfn.rom", 0x24000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf900) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x10000) - MSX_LAYOUT_KANJI (0x24000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf900a) - ROM_REGION (0x44000, REGION_CPU1, 0) - ROM_LOAD ("f900bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f900ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f900disa.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f900util.rom", 0x20000, 0x4000, CRC(bc6c7c66) SHA1(558b7383544542cf7333700ff90c3efbf93ba2a3)) - ROM_LOAD ("f900kfn.rom", 0x24000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799)) -ROM_END - -MSX_LAYOUT_INIT (hbf900a) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x10000) - MSX_LAYOUT_KANJI (0x24000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf1) - ROM_REGION (0x34000, REGION_CPU1,0) - ROM_LOAD ("f1bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f1ext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("f1note1.rom", 0x20000, 0x4000, CRC(84810ea8) SHA1(9db72bb78792595a12499c821048504dc96ef848)) - ROM_LOAD ("f1note2.rom", 0x24000, 0x8000, CRC(e32e5ee0) SHA1(aa78fc9bcd2343f84cf790310a768ee47f90c841)) - ROM_LOAD ("f1note3.rom", 0x2c000, 0x8000, CRC(73eb9329) SHA1(58accf41a90693874b86ce98d8d43c27beb8b6dc)) -ROM_END - -MSX_LAYOUT_INIT (hbf1) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x24000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (hbf12) - ROM_REGION (0x34000, REGION_CPU1,0) - ROM_LOAD ("f12bios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd)) - ROM_LOAD ("f12ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("f12note1.rom", 0x20000, 0x4000, CRC(dcacf970) SHA1(30d914cda2180889a40a3328e0a0c1327f4eaa10)) - ROM_LOAD ("f12note2.rom", 0x24000, 0x8000, CRC(b0241a61) SHA1(ed2fea5c2a3c2e58d4f69f9d636e08574486a2b1)) - ROM_LOAD ("f12note3.rom", 0x2c000, 0x8000, CRC(44a10e6a) SHA1(917d1c079e03c4a44de864f123d03c4e32c8daae)) -ROM_END - -MSX_LAYOUT_INIT (hbf12) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0x20000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x24000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, ROM, 0x8000, 0x2c000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf1xd) - ROM_REGION (0x20000, REGION_CPU1,0) - ROM_LOAD ("f1xdbios.rom", 0x0000, 0x8000, CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("f1xdext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f1xddisk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf1xd) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf1xdm2) - ROM_REGION (0x20000, REGION_CPU1,0) - ROM_LOAD ("f1m2bios.rom", 0x0000, 0x8000, CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("f1m2ext.rom", 0x8000, 0x4000, CRC(43e7a7fc) SHA1(0fbd45ef3dd7bb82d4c31f1947884f411f1ca344)) - ROM_LOAD ("f1m2disk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf1xdm2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (phc23) - ROM_REGION (0x20000, REGION_CPU1,0) - ROM_LOAD ("23bios.rom", 0x0000, 0x8000, CRC(ba81b3dd) SHA1(4ce41fcc1a603411ec4e99556409c442078f0ecf)) - ROM_LOAD ("23ext.rom", 0x8000, 0x4000, CRC(90ca25b5) SHA1(fd9fa78bac25aa3c0792425b21d14e364cf7eea4)) - ROM_FILL (0xc000, 0x14000, 0) -ROM_END - -MSX_LAYOUT_INIT (phc23) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */ -MSX_LAYOUT_END - -ROM_START (cpc300) - ROM_REGION (0x28000, REGION_CPU1, 0) - ROM_LOAD ("300bios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - ROM_LOAD ("300ext.rom", 0x8000, 0x8000, CRC(d64da39c) SHA1(fb51c505adfbc174df94289fa894ef969f5357bc)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("300han.rom", 0x20000, 0x8000, CRC(e78cd87f) SHA1(47a9d9a24e4fc6f9467c6e7d61a02d45f5a753ef)) -ROM_END - -MSX_LAYOUT_INIT (cpc300) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x8000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (cpc400) - ROM_REGION (0x50000, REGION_CPU1, 0) - ROM_LOAD ("400bios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - ROM_LOAD ("400disk.rom", 0x8000, 0x4000, CRC(5fa517df) SHA1(914f6ccb25d78621186001f2f5e2aaa2d628cd0c)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("400ext.rom", 0x20000, 0x8000, CRC(2ba104a3) SHA1(b6d3649a6647fa9f6bd61efc317485a20901128f)) - ROM_LOAD ("400han.rom", 0x28000, 0x8000, CRC(a8ead5e3) SHA1(87936f808423dddfd00629056d6807b4be1dc63e)) - ROM_LOAD ("400kfn.rom", 0x30000, 0x20000, CRC(b663c605) SHA1(965f4982790f1817bcbabbb38c8777183b231a55)) -ROM_END - -MSX_LAYOUT_INIT (cpc400) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (cpc400s) - ROM_REGION (0x50000, REGION_CPU1, 0) - ROM_LOAD ("400sbios.rom", 0x0000, 0x8000, CRC(53850907) SHA1(affa3c5cd8db79a1450ad8a7f405a425b251653d)) - ROM_LOAD ("400sdisk.rom", 0x8000, 0x4000, CRC(5fa517df) SHA1(914f6ccb25d78621186001f2f5e2aaa2d628cd0c)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("400sext.rom", 0x20000, 0x8000, CRC(2ba104a3) SHA1(b6d3649a6647fa9f6bd61efc317485a20901128f)) - ROM_LOAD ("400shan.rom", 0x28000, 0x8000, CRC(975e7a31) SHA1(6a50295ea35e720ba6f4ba5616c3441128b384ed)) - ROM_LOAD ("400skfn.rom", 0x30000, 0x20000, CRC(fa85368c) SHA1(30fff22e3e3d464993707488442721a5e56a9707)) -ROM_END - -MSX_LAYOUT_INIT (cpc400s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_SLOT (0, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (0, 3, 0, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 1, 2, DISK_ROM2, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf9p) - ROM_REGION (0x28000, REGION_CPU1, 0) - ROM_LOAD ("f9pbios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("f9pext.rom", 0x8000, 0x4000, CRC(7c456c8b) SHA1(7b4a96402847decfc110ff9eda713bdcd218bd83)) - ROM_LOAD ("f9pfirm1.rom", 0xc000, 0x4000, CRC(dea2cb50) SHA1(8cc1f7ceeef745bb34e80253971e137213671486)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f9pfirm2.rom", 0x20000, 0x8000, CRC(ea97069f) SHA1(2d1880d1f5a6944fcb1b198b997a3d90ecd1903d)) -ROM_END - -MSX_LAYOUT_INIT (hbf9p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 1, ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf500p) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("500pbios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("500pext.rom", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("500pdisk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf500p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 0, 2, 2, RAM, 0x8000, 0x8000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (0, 2, 0, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, ROM, 0x10000, 0x10000) -MSX_LAYOUT_END - -ROM_START (hbf700d) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("700dbios.rom", 0x0000, 0x8000, CRC(e975aa79) SHA1(cef16eb95502ba6ab2265fcafcedde470a101541)) - ROM_LOAD ("700dext.rom", 0x8000, 0x4000, CRC(7c456c8b) SHA1(7b4a96402847decfc110ff9eda713bdcd218bd83)) - ROM_LOAD ("700ddisk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700d) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf700p) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("700pbios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("700pext.rom", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("700pdisk.rom", 0xc000, 0x4000, CRC(1d9cc7f6) SHA1(3376cf9dd2b1ac9b41bf6bf6598b33136e86f9d5)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf700s) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("700sbios.rom", 0x0000, 0x8000, CRC(c2b889a5) SHA1(4811956f878c3e03da46317f787cdc4bebc86f47)) - ROM_LOAD ("700sext.rom", 0x8000, 0x4000, CRC(dc0951bd) SHA1(1e9a955943aeea9b1807ddf1250ba6436d8dd276)) - ROM_LOAD ("700sdisk.rom", 0xc000, 0x4000, CRC(1d9cc7f6) SHA1(3376cf9dd2b1ac9b41bf6bf6598b33136e86f9d5)) - ROM_FILL (0x10000, 0x10000, 0) -ROM_END - -MSX_LAYOUT_INIT (hbf700s) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 0, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM_MM, 0x40000, 0x0000) /* 256KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbg900p) - ROM_REGION (0x28000, REGION_CPU1, 0) - ROM_LOAD ("g900bios.rom", 0x0000, 0x8000, CRC(b31c851d) SHA1(0de3c802057560560a03d7965fcc4cff69f8575c)) - ROM_LOAD ("g900ext.rom", 0x8000, 0x4000, CRC(8f84f783) SHA1(3288894e1be6af705871499b23c85732dbc40993)) - ROM_LOAD ("g900disk.rom", 0xc000, 0x4000, CRC(54c73ad6) SHA1(12f2cc79b3d09723840bae774be48c0d721ec1c6)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("g900232c.rom", 0x20000, 0x4000, CRC(06cf1da6) SHA1(373aa82d0426830880a7344ef98f7309d93814c7)) - ROM_LOAD ("g900util.rom", 0x24000, 0x4000, CRC(d0417c20) SHA1(8779b004e7605a3c419825f0373a5d8fa84e1d5b)) -ROM_END - -MSX_LAYOUT_INIT (hbg900p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (0, 1, 1, 2, DISK_ROM, 0x4000, 0xc000) -/* MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x20000) */ /* RS232C must be emulated */ - MSX_LAYOUT_SLOT (0, 3, 1, 1, ROM, 0x4000, 0x24000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (msx2p) - ROM_REGION (0x48000, REGION_CPU1,0) - ROM_LOAD ("msx2p.rom", 0x0000, 0x8000, CRC(00870134) SHA1(e2fbd56e42da637609d23ae9df9efd1b4241b18a)) - ROM_LOAD ("msx2pext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD_OPTIONAL ("disk.rom", 0xc000, 0x4000, CRC(b7c58fad) SHA1(bc517b4a248c3a1338c5efc937b0128b6a783808)) - ROM_LOAD_OPTIONAL ("fmpac.rom", 0x10000, 0x10000, CRC(0e84505d) SHA1(9d789166e3caf28e4742fe933d962e99618c633d)) - ROM_LOAD ("msx2pkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("msx2pkfn.rom", 0x28000, 0x20000, CRC(b244f6cf) SHA1(e0e99cd91e88ce2676445663f832c835d74d6fd4)) -ROM_END - -MSX_LAYOUT_INIT (msx2p) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x20000, 0x0000) /* 128KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_KANJI (0x28000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1fx) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("a1fxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1fxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1fxdisk.rom", 0xc000, 0x4000, CRC(905daa1b) SHA1(bb59c849898d46a23fdbd0cc04ab35088e74a18d)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1fxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1fxcock.rom", 0x28000, 0x8000, CRC(f662e6eb) SHA1(9d67fab55b85f4ac4f5924323a70020eb8589057)) - ROM_LOAD ("a1fxkfn.rom", 0x30000, 0x20000, CRC(b244f6cf) SHA1(e0e99cd91e88ce2676445663f832c835d74d6fd4)) -ROM_END - -MSX_LAYOUT_INIT (fsa1fx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1wx) - ROM_REGION (0x270000, REGION_CPU1,0) - ROM_LOAD ("a1wxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1wxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wxdisk.rom", 0xc000, 0x4000, CRC(905daa1b) SHA1(bb59c849898d46a23fdbd0cc04ab35088e74a18d)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1wxmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wxkfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wxfirm.rom", 0x70000, 0x200000, CRC(283f3250) SHA1(d37ab4bd2bfddd8c97476cbe7347ae581a6f2972)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1wxa) - ROM_REGION (0x270000, REGION_CPU1,0) - ROM_LOAD ("a1wxbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("a1wxext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wxdisk.rom", 0xc000, 0x4000, CRC(905daa1b) SHA1(bb59c849898d46a23fdbd0cc04ab35088e74a18d)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wxkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("a1wxmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wxkfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wxfira.rom", 0x70000, 0x200000, CRC(58440a8e) SHA1(8e0d4a77e7d5736e8225c2df4701509363eb230f)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wxa) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (fsa1wsx) - ROM_REGION (0x270000, REGION_CPU1,0) - ROM_LOAD ("a1wsbios.rom", 0x0000, 0x8000, CRC(358ec547) SHA1(f4433752d3bf876bfefb363c749d4d2e08a218b6)) - ROM_LOAD ("a1wsext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("a1wsdisk.rom", 0xc000, 0x4000, CRC(17fa392b) SHA1(7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("a1wskdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("a1wsmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("a1wskfn.rom", 0x30000, 0x40000, CRC(1f6406fb) SHA1(5aff2d9b6efc723bc395b0f96f0adfa83cc54a49)) - ROM_LOAD ("a1wsfirm.rom", 0x70000, 0x200000, CRC(e363595d) SHA1(3330d9b6b76e3c4ccb7cf252496ed15d08b95d3f)) -ROM_END - -MSX_LAYOUT_INIT (fsa1wsx) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (0, 2, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ -/* MSX_LAYOUT_SLOT (3, 3, 1, 4, PANASONIC08, 0x200000, 0x70000) */ /* Panasonic 08KB Mapper must be emulated */ - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf1xdj) - ROM_REGION (0x170000, REGION_CPU1,0) - ROM_LOAD ("f1xjbios.rom", 0x0000, 0x8000, CRC(00870134) SHA1(e2fbd56e42da637609d23ae9df9efd1b4241b18a)) - ROM_LOAD ("f1xjext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("f1xjdisk.rom", 0xc000, 0x4000, CRC(a21f5266) SHA1(c1bb307a570ab833e3bfcc4a58a4f4e12dc1df0f)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f1xjkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("f1xjmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("f1xjkfn.rom", 0x30000, 0x40000, CRC(7016dfd0) SHA1(218d91eb6df2823c924d3774a9f455492a10aecb)) - ROM_LOAD ("f1xjfirm.rom", 0x70000, 0x100000, CRC(77be583f) SHA1(ade0c5ba5574f8114d7079050317099b4519e88f)) -ROM_END - -MSX_LAYOUT_INIT (hbf1xdj) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) -/* MSX_LAYOUT_SLOT (0, 3, 1, 4, SONY08, 0x100000, 0x70000) */ /* Sony 08KB MSX-JE Mapper must be emulated */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (hbf1xv) - ROM_REGION (0x170000, REGION_CPU1,0) - ROM_LOAD ("f1xvbios.rom", 0x0000, 0x8000, CRC(2c7ed27b) SHA1(174c9254f09d99361ff7607630248ff9d7d8d4d6)) - ROM_LOAD ("f1xvext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("f1xvdisk.rom", 0xc000, 0x4000, CRC(04e4e533) SHA1(5a4e7dbbfb759109c7d2a3b38bda9c60bf6ffef5)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("f1xvkdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("f1xvmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_FILL (0x2c000, 0x4000, 0) - ROM_LOAD ("f1xvkfn.rom", 0x30000, 0x40000, CRC(7016dfd0) SHA1(218d91eb6df2823c924d3774a9f455492a10aecb)) - ROM_LOAD ("f1xvfirm.rom", 0x70000, 0x100000, CRC(77be583f) SHA1(ade0c5ba5574f8114d7079050317099b4519e88f)) -ROM_END - -MSX_LAYOUT_INIT (hbf1xv) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) -/* MSX_LAYOUT_SLOT (0, 3, 1, 4, SONY08, 0x100000, 0x70000) */ /* Sony 08KB MSX-JE Mapper must be emulated */ - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (phc70fd) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("70fdbios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("70fdext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("70fddisk.rom", 0xc000, 0x4000, CRC(db7f1125) SHA1(9efa744be8355675e7bfdd3976bbbfaf85d62e1d)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("70fdkdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("70fdmus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_LOAD ("70fdbas.rom", 0x2c000, 0x4000, CRC(da7be246) SHA1(22b3191d865010264001b9d896186a9818478a6b)) - ROM_LOAD ("70fdkfn.rom", 0x30000, 0x20000, CRC(c9651b32) SHA1(84a645becec0a25d3ab7a909cde1b242699a8662)) -ROM_END - -MSX_LAYOUT_INIT (phc70fd) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x2c000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (phc70fd2) - ROM_REGION (0x70000, REGION_CPU1,0) - ROM_LOAD ("70f2bios.rom", 0x0000, 0x8000, CRC(19771608) SHA1(e90f80a61d94c617850c415e12ad70ac41e66bb7)) - ROM_LOAD ("70f2ext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_LOAD ("70f2disk.rom", 0xc000, 0x4000, CRC(db7f1125) SHA1(9efa744be8355675e7bfdd3976bbbfaf85d62e1d)) - ROM_FILL (0x10000, 0x10000, 0) - ROM_LOAD ("70f2kdr.rom", 0x20000, 0x8000, CRC(a068cba9) SHA1(1ef3956f7f918873fb9b031339bba45d1e5e5878)) - ROM_LOAD ("70f2mus.rom", 0x28000, 0x4000, CRC(5c32eb29) SHA1(aad42ba4289b33d8eed225d42cea930b7fc5c228)) - ROM_LOAD ("70f2bas.rom", 0x2c000, 0x4000, CRC(da7be246) SHA1(22b3191d865010264001b9d896186a9818478a6b)) - ROM_LOAD ("70f2kfn.rom", 0x30000, 0x40000, CRC(9a850db9) SHA1(bcdb4dae303dfe5234f372d70a5e0271d3202c36)) -ROM_END - -MSX_LAYOUT_INIT (phc70fd2) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) -/* MSX_LAYOUT_SLOT (3, 2, 1, 2, DISK_ROM, 0x4000, 0xc000) */ /* FDC Emulation of TC8566AF must be emulated */ - MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x28000) - MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x2c000) - MSX_LAYOUT_KANJI (0x30000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -ROM_START (phc35j) - ROM_REGION (0x48000, REGION_CPU1,0) - ROM_LOAD ("35jbios.rom", 0x0000, 0x8000, CRC(358ec547) SHA1(f4433752d3bf876bfefb363c749d4d2e08a218b6)) - ROM_LOAD ("35jext.rom", 0x8000, 0x4000, CRC(b8ba44d3) SHA1(fe0254cbfc11405b79e7c86c7769bd6322b04995)) - ROM_FILL (0xc000, 0x14000, 0) - ROM_LOAD ("35jkdr.rom", 0x20000, 0x8000, CRC(b4fc574d) SHA1(dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06)) - ROM_LOAD ("35jkfn.rom", 0x28000, 0x20000, CRC(c9651b32) SHA1(84a645becec0a25d3ab7a909cde1b242699a8662)) -ROM_END - -MSX_LAYOUT_INIT (phc35j) - MSX_LAYOUT_SLOT (0, 0, 0, 2, ROM, 0x8000, 0x0000) - MSX_LAYOUT_SLOT (1, 0, 0, 4, CARTRIDGE1, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000) - MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */ - MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000) - MSX_LAYOUT_SLOT (3, 1, 1, 2, ROM, 0x8000, 0x20000) - MSX_LAYOUT_KANJI (0x28000) - MSX_LAYOUT_RAMIO_SET_BITS (0x80) -MSX_LAYOUT_END - -static void msx_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_msx_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -static void msx_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = MSX_MAX_CARTS; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_msx_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_msx_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "mx1,rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void msx_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) fmsx_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void msx_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(msx) - CONFIG_DEVICE(msx_floppy_getinfo) - CONFIG_DEVICE(msx_cartslot_getinfo) - CONFIG_DEVICE(msx_cassette_getinfo) - CONFIG_DEVICE(msx_printer_getinfo) -SYSTEM_CONFIG_END - -MSX_DRIVER_LIST - MSX_DRIVER (msx) - MSX_DRIVER (hb75d) - MSX_DRIVER (hb75p) - MSX_DRIVER (hb501p) - MSX_DRIVER (hb201p) - MSX_DRIVER (svi738) - MSX_DRIVER (cf2000) - MSX_DRIVER (cf1200) - MSX_DRIVER (cf2700) - MSX_DRIVER (cf3000) - MSX_DRIVER (cf3300) - MSX_DRIVER (fs4000) - MSX_DRIVER (fs1300) - MSX_DRIVER (hb201) - MSX_DRIVER (dpc100) - MSX_DRIVER (dpc180) - MSX_DRIVER (dpc200) - MSX_DRIVER (hotbit11) - MSX_DRIVER (hotbit12) - MSX_DRIVER (expert10) - MSX_DRIVER (expert11) - MSX_DRIVER (expertdp) - MSX_DRIVER (msx2) - MSX_DRIVER (nms8220) - MSX_DRIVER (nms8220a) - MSX_DRIVER (vg8235) - MSX_DRIVER (nms8245) - MSX_DRIVER (nms8250) - MSX_DRIVER (nms8255) - MSX_DRIVER (nms8280) - MSX_DRIVER (hbf9p) - MSX_DRIVER (hbf500p) - MSX_DRIVER (hbf700d) - MSX_DRIVER (hbf700p) - MSX_DRIVER (hbf700s) - MSX_DRIVER (hbg900p) - MSX_DRIVER (fs5500) - MSX_DRIVER (fs4500) - MSX_DRIVER (fs4700) - MSX_DRIVER (fs5000) - MSX_DRIVER (fs4600) - MSX_DRIVER (fsa1) - MSX_DRIVER (fsa1a) - MSX_DRIVER (fsa1mk2) - MSX_DRIVER (fsa1f) - MSX_DRIVER (fsa1fm) - MSX_DRIVER (hbf500) - MSX_DRIVER (hbf900) - MSX_DRIVER (hbf900a) - MSX_DRIVER (hbf1) - MSX_DRIVER (hbf12) - MSX_DRIVER (hbf1xd) - MSX_DRIVER (hbf1xdm2) - MSX_DRIVER (phc23) - MSX_DRIVER (cpc300) - MSX_DRIVER (cpc400) - MSX_DRIVER (cpc400s) - MSX_DRIVER (msx2p) - MSX_DRIVER (fsa1fx) - MSX_DRIVER (fsa1wx) - MSX_DRIVER (fsa1wxa) - MSX_DRIVER (fsa1wsx) - MSX_DRIVER (hbf1xdj) - MSX_DRIVER (hbf1xv) - MSX_DRIVER (phc70fd2) - MSX_DRIVER (phc35j) -MSX_DRIVER_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1983, msx, 0, 0, msx_pal, msx, msx, msx, "ASCII & Microsoft", "MSX" , 0) -COMP( 1983, hb75d, msx, 0, msx_pal, msx, msx, msx, "Sony", "HB-75D (Germany)" , 0) -COMP( 1983, hb75p, msx, 0, msx_pal, msx, msx, msx, "Sony", "HB-75P" , 0) -COMP( 1984, hb501p, msx, 0, msx_pal, msx, msx, msx, "Sony", "HB-501P" , 0) -COMP( 1985, hb201p, msx, 0, msx_pal, msx, msx, msx, "Sony", "HB-201P" , 0) -COMP(1985, svi738, msx, 0, msx_pal, msx, msx, msx, "Spectravideo", "SVI-738", GAME_NOT_WORKING ) -COMP( 1983, cf2000, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "CF-2000 (Japan)" , 0) -COMP( 1984, cf1200, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "CF-1200 (Japan)" , 0) -COMP( 1984, cf2700, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "CF-2700 (Japan)" , 0) -COMP( 1984, cf3000, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "CF-3000 (Japan)" , 0) -COMP(1985, cf3300, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "CF-3300 (Japan)", GAME_NOT_WORKING ) -COMP( 1985, fs4000, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "FS-4000 (Japan)" , 0) -COMP( 1985, fs1300, msx, 0, msx, msxjp, msx, msx, "National / Matsushita", "FS-1300 (Japan)" , 0) -COMP( 1985, hb201, msx, 0, msx, msxjp, msx, msx, "Sony", "HB-201 (Japan)" , 0) -COMP( 1984, dpc100, msx, 0, msx, msxkr, msx, msx, "Daewoo", "IQ-1000 DPC-100 (Korea)" , 0) -COMP( 1984, dpc180, msx, 0, msx, msxkr, msx, msx, "Daewoo", "IQ-1000 DPC-180 (Korea)" , 0) -COMP( 1984, dpc200, msx, 0, msx, msxkr, msx, msx, "Daewoo", "IQ-1000 DPC-200 (Korea)" , 0) -COMP( 1985, hotbit11, msx, 0, msx, hotbit, msx, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.1" , 0) -COMP( 1985, hotbit12, msx, 0, msx, hotbit, msx, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.2" , 0) -COMP( 1983, expert10, msx, 0, msx, expert10, msx, msx, "Gradiente", "Expert (Brazil)" , 0) -COMP( 1984, expert11, msx, 0, msx, expert11, msx, msx, "Gradiente", "Expert Plus (Brazil)" , 0) -COMP(1985, expertdp, msx, 0, msx, expert11, msx, msx, "Gradiente", "Expert DDPlus (Brazil)", GAME_NOT_WORKING ) -COMP (1985, msx2, 0, msx, msx2_pal, msx2, msx2, msx, "ASCII & Microsoft", "MSX2", 0) -COMP (1986, nms8220, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8220 / 1st released version", 0) -COMP (1986, nms8220a, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8220 / 2nd released version", 0) -COMP (1986, vg8235, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "VG-8235", 0) -COMP (1986, nms8245, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8245", 0) -COMP (1986, nms8250, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8250", 0) -COMP (1986, nms8255, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8255", 0) -COMP (1986, nms8280, msx2, 0, msx2_pal, msx2, msx2, msx, "Philips", "NMS-8280", 0) -COMP (1985, hbf9p, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-F9P" , 0) -COMP (1985, hbf500p, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-F500P", 0) -COMP (1985, hbf700d, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-F700D (Germany)" , 0) -COMP (1985, hbf700p, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-F700P" , 0) -COMP (1985, hbf700s, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-F700S (Spain)", 0) -COMP(1986, hbg900p, msx2, 0, msx2_pal, msx2, msx2, msx, "Sony", "HB-G900P", GAME_NOT_WORKING ) -COMP(1985, fs5500, msx2, 0, msx2, msx2jp, msx2, msx, "National / Matsushita", "FS-5500F1/F2 (Japan)", GAME_NOT_WORKING ) -COMP(1986, fs4500, msx2, 0, msx2, msx2jp, msx2, msx, "National / Matsushita", "FS-4500 (Japan)", GAME_NOT_WORKING ) -COMP(1986, fs4700, msx2, 0, msx2, msx2jp, msx2, msx, "National / Matsushita", "FS-4700 (Japan)", GAME_NOT_WORKING ) -COMP(1986, fs5000, msx2, 0, msx2, msx2jp, msx2, msx, "National / Matsushita", "FS-5000F2 (Japan)", GAME_NOT_WORKING ) -COMP(1986, fs4600, msx2, 0, msx2, msx2jp, msx2, msx, "National / Matsushita", "FS-4600 (Japan)", GAME_NOT_WORKING ) -COMP (1986, fsa1, msx2, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan)", 0) -COMP (1986, fsa1a, msx2, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan)", 0) -COMP (1987, fsa1mk2, msx2, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1MK2 (Japan)", 0) -COMP(1987, fsa1f, msx2, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1F (Japan)", GAME_NOT_WORKING ) -COMP(1987, fsa1fm, msx2, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1FM (Japan)", GAME_NOT_WORKING ) -COMP (1986, hbf500, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F500 (Japan)", 0) -COMP (1986, hbf900, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F900 / 1st released version (Japan)", 0) -COMP (1986, hbf900a, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F900 / 2nd released version (Japan)", 0) -COMP(1986, hbf1, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1 (Japan)", GAME_NOT_WORKING ) -COMP(1987, hbf12, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1II (Japan)", GAME_NOT_WORKING ) -COMP (1987, hbf1xd, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1XD (Japan)", 0) -COMP (1988, hbf1xdm2, msx2, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1XDMK2 (Japan)", 0) -COMP (1988, phc23, msx2, 0, msx2, msx2jp, msx2, msx, "Sanyo", "WAVY PHC-23 (Japan)", 0) -COMP (1986, cpc300, msx2, 0, msx2, msx2kr, msx2, msx, "Daewoo", "IQ-2000 CPC-300 (Korea)", 0) -COMP(1986, cpc400, msx2, 0, msx2, msx2kr, msx2, msx, "Daewoo", "X-II CPC-400 (Korea)", GAME_NOT_WORKING ) -COMP(1986, cpc400s, msx2, 0, msx2, msx2kr, msx2, msx, "Daewoo", "X-II CPC-400S (Korea)", GAME_NOT_WORKING ) -COMP (1988, msx2p, 0, msx, msx2, msx2jp, msx2, msx, "ASCII & Microsoft", "MSX2+", 0) -COMP(1988, fsa1fx, msx2p, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", GAME_NOT_WORKING ) -COMP(1988, fsa1wx, msx2p, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", GAME_NOT_WORKING ) -COMP(1988, fsa1wxa, msx2p, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", GAME_NOT_WORKING ) -COMP(1989, fsa1wsx, msx2p, 0, msx2, msx2jp, msx2, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", GAME_NOT_WORKING ) -COMP(1988, hbf1xdj, msx2p, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1XDJ (Japan)", GAME_NOT_WORKING ) -COMP(1989, hbf1xv, msx2p, 0, msx2, msx2jp, msx2, msx, "Sony", "HB-F1XV (Japan)", GAME_NOT_WORKING ) -COMP(1988, phc70fd, msx2p, 0, msx2, msx2jp, msx2, msx, "Sanyo", "WAVY PHC-70FD (Japan)", GAME_NOT_WORKING ) -COMP(1988, phc70fd2, msx2p, 0, msx2, msx2jp, msx2, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", GAME_NOT_WORKING ) -COMP (1989, phc35j, msx2p, 0, msx2, msx2jp, msx2, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0) - diff --git a/mess/systems/nascom1.c b/mess/systems/nascom1.c deleted file mode 100644 index 17c439e6a..000000000 --- a/mess/systems/nascom1.c +++ /dev/null @@ -1,363 +0,0 @@ -/************************************************************************ -Nascom Memory map - - CPU: z80 - 0000-03ff ROM (Nascom1 Monitor) - 0400-07ff ROM (Nascom2 Monitor extension) - 0800-0bff RAM (Screen) - 0c00-0c7f RAM (OS workspace) - 0c80-0cff RAM (extended OS workspace) - 0d00-0f7f RAM (Firmware workspace) - 0f80-0fff RAM (Stack space) - 1000-8fff RAM (User space) - 9000-97ff RAM (Programmable graphics RAM/User space) - 9800-afff RAM (Colour graphics RAM/User space) - b000-b7ff ROM (OS extensions) - b800-bfff ROM (WP/Naspen software) - c000-cfff ROM (Disassembler/colour graphics software) - d000-dfff ROM (Assembler/Basic extensions) - e000-ffff ROM (Nascom2 Basic) - - Interrupts: - - Ports: - OUT (00) 0: Increment keyboard scan - 1: Reset keyboard scan - 2: - 3: Read from cassette - 4: - 5: - 6: - 7: - IN (00) Read keyboard - OUT (01) Write to cassette/serial - IN (01) Read from cassette/serial - OUT (02) Unused - IN (02) ? - - Monitors: - Nasbug1 1K Original Nascom1 - Nasbug2 1K - Nasbug3 Probably non existing - Nasbug4 2K - Nassys1 2K Original Nascom2 - Nassys2 Probably non existing - Nassys3 2K - Nassys4 2K - T4 2K - -************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/nascom1.h" -#include "devices/cartslot.h" - -/* Memory w/r functions */ -ADDRESS_MAP_START( nascom1_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0800, 0x0bff) AM_READWRITE( videoram_r, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x0c00, 0x0fff) AM_RAM - AM_RANGE(0x1000, 0x13ff) AM_RAM /* 1Kb */ - AM_RANGE(0x1400, 0x4fff) AM_RAM /* 16Kb */ - AM_RANGE(0x5000, 0x8fff) AM_RAM /* 32Kb */ - AM_RANGE(0x9000, 0xafff) AM_RAM /* 40Kb */ - AM_RANGE(0xb000, 0xffff) AM_ROM -ADDRESS_MAP_END - -/* port i/o functions */ -ADDRESS_MAP_START( nascom1_io , ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READWRITE( nascom1_port_00_r, nascom1_port_00_w ) - AM_RANGE(0x01, 0x01) AM_READWRITE( nascom1_port_01_r, nascom1_port_01_w ) - AM_RANGE(0x02, 0x02) AM_READ( nascom1_port_02_r ) -ADDRESS_MAP_END - -/* graphics output */ - -static gfx_layout nascom1_charlayout = -{ - 8, 16, - 128, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8,10*8,11*8,12*8,13*8,14*8,15*8 }, - 8 * 16 -}; - -static gfx_decode nascom1_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &nascom1_charlayout, 0, 1}, - {-1} -}; - -static gfx_layout nascom2_charlayout = -{ - 8, 14, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, - 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8 }, - 8 * 16 -}; - -static gfx_decode nascom2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &nascom2_charlayout, 0, 1}, - {-1} -}; - -static unsigned char nascom1_palette[] = -{ - 0x00, 0x00, 0x00, /* Black */ - 0xff, 0xff, 0xff /* White */ -}; - -static unsigned short nascom1_colortable[] = -{ - 0, 1 -}; - -static PALETTE_INIT( nascom1 ) -{ - palette_set_colors(machine, 0, nascom1_palette, sizeof(nascom1_palette) / 3); - memcpy(colortable, nascom1_colortable, sizeof (nascom1_colortable)); -} - -/* Keyboard input */ - -INPUT_PORTS_START (nascom1) - PORT_START /* 0: count = 0 */ - PORT_BIT(0x6f, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) - - PORT_START /* 1: count = 1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("up") PORT_CODE(KEYCODE_UP) - - PORT_START /* 2: count = 2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("left") PORT_CODE(KEYCODE_LEFT) - - PORT_START /* 3: count = 3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("down") PORT_CODE(KEYCODE_DOWN) - - PORT_START /* 4: count = 4 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("right") PORT_CODE(KEYCODE_RIGHT) - - PORT_START /* 5: count = 5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 6: count = 6 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(":") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 7: count = 7 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 8: count = 8 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x58, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_QUOTE) - PORT_START /* 9: Machine config */ - PORT_DIPNAME(0x03, 3, "RAM Size") - PORT_DIPSETTING(0, "1Kb") - PORT_DIPSETTING(1, "16Kb") - PORT_DIPSETTING(2, "32Kb") - PORT_DIPSETTING(3, "40Kb") -INPUT_PORTS_END - -/* Sound output */ - -static INTERRUPT_GEN( nascom_interrupt ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -/* Machine definition */ -static MACHINE_DRIVER_START( nascom1 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 1000000) - MDRV_CPU_PROGRAM_MAP(nascom1_mem, 0) - MDRV_CPU_IO_MAP(nascom1_io, 0) - MDRV_CPU_VBLANK_INT(nascom_interrupt, 1) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( nascom1 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(48 * 8, 16 * 16) - MDRV_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 16 - 1) - MDRV_GFXDECODE( nascom1_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH( sizeof (nascom1_palette) / 3 ) - MDRV_COLORTABLE_LENGTH( sizeof (nascom1_colortable) ) - MDRV_PALETTE_INIT( nascom1 ) - - MDRV_VIDEO_START( generic ) - MDRV_VIDEO_UPDATE( nascom1 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( nascom2 ) - MDRV_IMPORT_FROM( nascom1 ) - MDRV_CPU_REPLACE( "main", Z80, 2000000 ) - MDRV_SCREEN_SIZE(48 * 8, 16 * 14) - MDRV_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 14 - 1) - MDRV_GFXDECODE( nascom2_gfxdecodeinfo ) - MDRV_VIDEO_UPDATE( nascom2 ) -MACHINE_DRIVER_END - -ROM_START(nascom1) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("nasbugt1.rom", 0x0000, 0x0400, CRC(8ea07054) SHA1(3f9a8632826003d6ea59d2418674d0fb09b83a4c)) - ROM_REGION(0x0800, REGION_GFX1,0) - ROM_LOAD("nascom1.chr", 0x0000, 0x0800, CRC(33e92a04) SHA1(be6e1cc80e7f95a032759f7df19a43c27ff93a52)) -ROM_END - -ROM_START(nascom1a) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("nasbugt2.rom", 0x0000, 0x0400, CRC(e371b58a) SHA1(485b20a560b587cf9bb4208ba203b12b3841689b)) - ROM_REGION(0x0800, REGION_GFX1,0) - ROM_LOAD("nascom1.chr", 0x0000, 0x0800, CRC(33e92a04) SHA1(be6e1cc80e7f95a032759f7df19a43c27ff93a52)) -ROM_END - -ROM_START(nascom1b) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("nasbugt4.rom", 0x0000, 0x0800, CRC(f391df68) SHA1(00218652927afc6360c57e77d6a4fd32d4e34566)) - ROM_REGION(0x0800, REGION_GFX1,0) - ROM_LOAD("nascom1.chr", 0x0000, 0x0800, CRC(33e92a04) SHA1(be6e1cc80e7f95a032759f7df19a43c27ff93a52)) -ROM_END - -ROM_START(nascom2) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("nassys1.rom", 0x0000, 0x0800, CRC(b6300716) SHA1(29da7d462ba3f569f70ed3ecd93b981f81c7adfa)) - ROM_LOAD("basic.rom", 0xe000, 0x2000, CRC(5cb5197b) SHA1(c41669c2b6d6dea808741a2738426d97bccc9b07)) - ROM_REGION(0x1000, REGION_GFX1,0) - ROM_LOAD("nascom1.chr", 0x0000, 0x0800, CRC(33e92a04) SHA1(be6e1cc80e7f95a032759f7df19a43c27ff93a52)) - ROM_LOAD("nasgra.chr", 0x0800, 0x0800, CRC(2bc09d32) SHA1(d384297e9b02cbcb283c020da51b3032ff62b1ae)) -ROM_END - -ROM_START(nascom2a) - ROM_REGION(0x10000, REGION_CPU1,0) - ROM_LOAD("nassys3.rom", 0x0000, 0x0800, CRC(3da17373) SHA1(5fbda15765f04e4cd08cf95c8d82ce217889f240)) - ROM_LOAD("basic.rom", 0xe000, 0x2000, CRC(5cb5197b) SHA1(c41669c2b6d6dea808741a2738426d97bccc9b07)) - ROM_REGION(0x1000, REGION_GFX1,0) - ROM_LOAD("nascom1.chr", 0x0000, 0x0800, CRC(33e92a04) SHA1(be6e1cc80e7f95a032759f7df19a43c27ff93a52)) - ROM_LOAD("nasgra.chr", 0x0800, 0x0800, CRC(2bc09d32) SHA1(d384297e9b02cbcb283c020da51b3032ff62b1ae)) -ROM_END - -SYSTEM_CONFIG_START(nascom) -#ifdef CART - CONFIG_DEVICE_CARTSLOT_REQ(1, "nas\0bin\0", nascom1_init_cartridge, NULL, NULL) -#endif -SYSTEM_CONFIG_END - -static void nascom1_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_nascom1_cassette; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_nascom1_cassette; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "nas,bin"); break; - } -} - -SYSTEM_CONFIG_START(nascom1) - CONFIG_IMPORT_FROM(nascom) - CONFIG_DEVICE(nascom1_cassette_getinfo) -SYSTEM_CONFIG_END - -static void nascom2_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_nascom1_cassette; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_nascom1_cassette; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "cas,nas,bin"); break; - } -} - -SYSTEM_CONFIG_START(nascom2) - CONFIG_IMPORT_FROM(nascom) - CONFIG_DEVICE(nascom2_cassette_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1978, nascom1, 0, 0, nascom1, nascom1, 0, nascom1, "Nascom Microcomputers", "Nascom 1 (NasBug T1)" , 0) -COMP( 1978, nascom1a, nascom1, 0, nascom1, nascom1, 0, nascom1, "Nascom Microcomputers", "Nascom 1 (NasBug T2)" , 0) -COMP( 1978, nascom1b, nascom1, 0, nascom1, nascom1, 0, nascom1, "Nascom Microcomputers", "Nascom 1 (NasBug T4)" , 0) -COMP( 1979, nascom2, nascom1, 0, nascom2, nascom1, 0, nascom2, "Nascom Microcomputers", "Nascom 2 (NasSys 1)" , 0) -COMP( 1979, nascom2a, nascom1, 0, nascom2, nascom1, 0, nascom2, "Nascom Microcomputers", "Nascom 2 (NasSys 3)" , 0) diff --git a/mess/systems/nes.c b/mess/systems/nes.c deleted file mode 100644 index 57f7a31c6..000000000 --- a/mess/systems/nes.c +++ /dev/null @@ -1,407 +0,0 @@ -/*************************************************************************** - - nes.c - - Driver file to handle emulation of the Nintendo Entertainment System (Famicom). - - MESS driver by Brad Oliver (bradman@pobox.com), NES sound code by Matt Conte. - Based in part on the old xNes code, by Nicolas Hamel, Chuck Mason, Brad Oliver, - Richard Bannister and Jeff Mitchell. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/ppu2c0x.h" -#include "includes/nes.h" -#include "cpu/m6502/m6502.h" -#include "devices/cartslot.h" -#include "sound/nes_apu.h" -#include "inputx.h" - -unsigned char *battery_ram; - -static READ8_HANDLER( psg_4015_r ) -{ - return NESPSG_0_r(0x15); -} - -static WRITE8_HANDLER( psg_4015_w ) -{ - NESPSG_0_w(0x15, data); -} - -static WRITE8_HANDLER( psg_4017_w ) -{ - NESPSG_0_w(0x17, data); -} - -static WRITE8_HANDLER(nes_vh_sprite_dma_w) -{ - ppu2c0x_spriteram_dma(0, data); -} - -static ADDRESS_MAP_START( nes_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x1800) /* RAM */ - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(ppu2c0x_0_r, ppu2c0x_0_w) /* PPU registers */ - AM_RANGE(0x4000, 0x4013) AM_READWRITE(NESPSG_0_r, NESPSG_0_w) /* PSG primary registers */ - AM_RANGE(0x4014, 0x4014) AM_WRITE(nes_vh_sprite_dma_w) /* stupid address space hole */ - AM_RANGE(0x4015, 0x4015) AM_READWRITE(psg_4015_r, psg_4015_w) /* PSG status / first control register */ - AM_RANGE(0x4016, 0x4016) AM_READWRITE(nes_IN0_r, nes_IN0_w) /* IN0 - input port 1 */ - AM_RANGE(0x4017, 0x4017) AM_READWRITE(nes_IN1_r, psg_4017_w) /* IN1 - input port 2 / PSG second control register */ - AM_RANGE(0x4100, 0x5fff) AM_READWRITE(nes_low_mapper_r, nes_low_mapper_w) /* Perform unholy acts on the machine */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( nes ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P1 A") PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_1_BUTTON1 ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P1 B") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_1_BUTTON2 ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("P1 Up") PORT_CODE(KEYCODE_UP) PORT_CODE(JOYCODE_1_UP ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("P1 Down") PORT_CODE(KEYCODE_DOWN) PORT_CODE(JOYCODE_1_DOWN ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("P1 Left") PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_1_LEFT ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("P1 Right") PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_1_RIGHT ) PORT_CATEGORY(1) PORT_PLAYER(1) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P2 A") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON1 ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P2 B") PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_2_BUTTON2 ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("P2 Up") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_2_UP ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("P2 Down") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_2_DOWN ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("P2 Left") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_2_LEFT ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("P2 Right") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_2_RIGHT ) PORT_CATEGORY(2) PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CATEGORY(3) PORT_PLAYER(3) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CATEGORY(4) PORT_PLAYER(4) - - PORT_START /* IN4 - P1 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(5) PORT_PLAYER(1) - PORT_START /* IN5 - P1 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(5) PORT_PLAYER(1) - PORT_START /* IN6 - P1 zapper trigger */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Lightgun Trigger") PORT_CATEGORY(5) PORT_PLAYER(1) - - PORT_START /* IN7 - P2 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(6) PORT_PLAYER(2) - PORT_START /* IN8 - P2 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(6) PORT_PLAYER(2) - PORT_START /* IN9 - P2 zapper trigger */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Lightgun 2 Trigger") PORT_CATEGORY(6) PORT_PLAYER(2) - - PORT_START /* IN10 - arkanoid paddle */ - PORT_BIT( 0xff, 0x7f, IPT_PADDLE) PORT_SENSITIVITY(25) PORT_KEYDELTA(3) PORT_MINMAX(0x62,0xf2 ) PORT_CATEGORY(7) - - PORT_START /* IN11 - configuration */ - PORT_CATEGORY_CLASS( 0x000f, 0x0001, "P1 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0001, "Gamepad", 1 ) - PORT_CATEGORY_ITEM( 0x0002, "Zapper 1", 5 ) - PORT_CATEGORY_ITEM( 0x0003, "Zapper 2", 6 ) - PORT_CATEGORY_CLASS( 0x00f0, 0x0010, "P2 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0010, "Gamepad", 2 ) - PORT_CATEGORY_ITEM( 0x0020, "Zapper 1", 5 ) - PORT_CATEGORY_ITEM( 0x0030, "Zapper 2", 6 ) - PORT_CATEGORY_ITEM( 0x0040, "Arkanoid paddle", 7 ) - PORT_CATEGORY_CLASS( 0x0f00, 0x0000, "P3 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0100, "Gamepad", 3 ) - PORT_CATEGORY_CLASS( 0xf000, 0x0000, "P4 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x1000, "Gamepad", 4 ) - - PORT_START /* IN12 - configuration */ - PORT_CONFNAME( 0x01, 0x00, "Draw Top/Bottom 8 Lines") - PORT_CONFSETTING( 0x01, DEF_STR(No) ) - PORT_CONFSETTING( 0x00, DEF_STR(Yes) ) - PORT_CONFNAME( 0x02, 0x00, "Enforce 8 Sprites/line") - PORT_CONFSETTING( 0x02, DEF_STR(No) ) - PORT_CONFSETTING( 0x00, DEF_STR(Yes) ) -INPUT_PORTS_END - -INPUT_PORTS_START( famicom ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P1 A") PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_1_BUTTON1 ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P1 B") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_1_BUTTON2 ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("P1 Up") PORT_CODE(KEYCODE_UP) PORT_CODE(JOYCODE_1_UP ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("P1 Down") PORT_CODE(KEYCODE_DOWN) PORT_CODE(JOYCODE_1_DOWN ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("P1 Left") PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_1_LEFT ) PORT_CATEGORY(1) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("P1 Right") PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_1_RIGHT ) PORT_CATEGORY(1) PORT_PLAYER(1) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P2 A") PORT_CODE(KEYCODE_0_PAD) PORT_CODE(JOYCODE_2_BUTTON1 ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P2 B") PORT_CODE(KEYCODE_DEL_PAD) PORT_CODE(JOYCODE_2_BUTTON2 ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("P2 Up") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(JOYCODE_2_UP ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("P2 Down") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(JOYCODE_2_DOWN ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("P2 Left") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(JOYCODE_2_LEFT ) PORT_CATEGORY(2) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("P2 Right") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(JOYCODE_2_RIGHT ) PORT_CATEGORY(2) PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CATEGORY(3) PORT_PLAYER(3) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CATEGORY(3) PORT_PLAYER(3) - - PORT_START /* IN3 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_SELECT) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_START) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_CATEGORY(4) PORT_PLAYER(4) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_CATEGORY(4) PORT_PLAYER(4) - - PORT_START /* IN4 - P1 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(5) PORT_PLAYER(1) - PORT_START /* IN5 - P1 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(5) PORT_PLAYER(1) - PORT_START /* IN6 - P1 zapper trigger */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Lightgun Trigger") PORT_CATEGORY(5) PORT_PLAYER(1) - - PORT_START /* IN7 - P2 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(6) PORT_PLAYER(2) - PORT_START /* IN8 - P2 zapper */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_MINMAX(0,255 ) PORT_CATEGORY(6) PORT_PLAYER(2) - PORT_START /* IN9 - P2 zapper trigger */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Lightgun 2 Trigger") PORT_CATEGORY(6) PORT_PLAYER(2) - - PORT_START /* IN10 - arkanoid paddle */ - PORT_BIT( 0xff, 0x7f, IPT_PADDLE) PORT_SENSITIVITY(25) PORT_KEYDELTA(3) PORT_MINMAX(0x62,0xf2 ) PORT_CATEGORY(7) - - PORT_START /* IN11 - configuration */ - PORT_CATEGORY_CLASS( 0x000f, 0x0001, "P1 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0001, "Gamepad", 1 ) - PORT_CATEGORY_ITEM( 0x0002, "Zapper 1", 5 ) - PORT_CATEGORY_ITEM( 0x0003, "Zapper 2", 6 ) - PORT_CATEGORY_CLASS( 0x00f0, 0x0010, "P2 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0010, "Gamepad", 2 ) - PORT_CATEGORY_ITEM( 0x0020, "Zapper 1", 5 ) - PORT_CATEGORY_ITEM( 0x0030, "Zapper 2", 6 ) - PORT_CATEGORY_ITEM( 0x0040, "Arkanoid paddle", 7 ) - PORT_CATEGORY_CLASS( 0x0f00, 0x0000, "P3 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x0100, "Gamepad", 3 ) - PORT_CATEGORY_CLASS( 0xf000, 0x0000, "P4 Controller") - PORT_CATEGORY_ITEM( 0x0000, "Unconnected", 0 ) - PORT_CATEGORY_ITEM( 0x1000, "Gamepad", 4 ) - - PORT_START /* IN12 - fake keys */ -// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Change Disk Side") -INPUT_PORTS_END - -/* This layout is not changed at runtime */ -gfx_layout nes_vram_charlayout = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 8*8, 0 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static struct NESinterface nes_interface = -{ - 0 -}; - -static struct NESinterface nespal_interface = -{ - 0 -}; - -ROM_START( nes ) - ROM_REGION( 0x10000, REGION_CPU1,0 ) /* Main RAM + program banks */ - ROM_REGION( 0x2000, REGION_GFX1,0 ) /* VROM */ - ROM_REGION( 0x2000, REGION_GFX2,0 ) /* VRAM */ - ROM_REGION( 0x10000, REGION_USER1,0 ) /* WRAM */ -ROM_END - -ROM_START( nespal ) - ROM_REGION( 0x10000, REGION_CPU1,0 ) /* Main RAM + program banks */ - ROM_REGION( 0x2000, REGION_GFX1,0 ) /* VROM */ - ROM_REGION( 0x2000, REGION_GFX2,0 ) /* VRAM */ - ROM_REGION( 0x10000, REGION_USER1,0 ) /* WRAM */ -ROM_END - -ROM_START( famicom ) - ROM_REGION( 0x10000, REGION_CPU1,0 ) /* Main RAM + program banks */ - ROM_LOAD_OPTIONAL ("disksys.rom", 0xe000, 0x2000, CRC(5e607dcf) SHA1(57fe1bdee955bb48d357e463ccbf129496930b62)) - - ROM_REGION( 0x2000, REGION_GFX1,0 ) /* VROM */ - ROM_REGION( 0x2000, REGION_GFX2,0 ) /* VRAM */ - ROM_REGION( 0x10000, REGION_USER1,0 ) /* WRAM */ -ROM_END - -ROM_START( famitwin ) - ROM_REGION( 0x10000, REGION_CPU1,0 ) /* Main RAM + program banks */ - ROM_LOAD_OPTIONAL ("disksys.rom", 0xe000, 0x2000, CRC(4df24a6c) SHA1(e4e41472c454f928e53eb10e0509bf7d1146ecc1)) - - ROM_REGION( 0x2000, REGION_GFX1,0 ) /* VROM */ - ROM_REGION( 0x2000, REGION_GFX2,0 ) /* VRAM */ - ROM_REGION( 0x10000, REGION_USER1,0 ) /* WRAM */ -ROM_END - - - -static MACHINE_DRIVER_START( nes ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", N2A03, NTSC_CLOCK) - MDRV_CPU_PROGRAM_MAP(nes_map, 0) - MDRV_SCREEN_REFRESH_RATE(60.098) - // This isn't used so much to calulate the vblank duration (the PPU code tracks that manually) but to determine - // the number of cycles in each scanline for the PPU scanline timer. Since the PPU has 20 vblank scanlines + 2 - // non-rendering scanlines, we compensate. This ends up being 2500 cycles for the non-rendering portion, 2273 - // cycles for the actual vblank period. - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((113.66/(NTSC_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_NTSC-PPU_VBLANK_FIRST_SCANLINE+1+2))) - - MDRV_MACHINE_START( nes ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 30*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MDRV_PALETTE_INIT(nes) - MDRV_VIDEO_START(nes_ntsc) - MDRV_VIDEO_UPDATE(nes) - - MDRV_PALETTE_LENGTH(4*16*8) - MDRV_COLORTABLE_LENGTH(4*8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD_TAG("nessound", NES, NTSC_CLOCK) - MDRV_SOUND_CONFIG(nes_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( nespal ) - MDRV_IMPORT_FROM( nes ) - - /* basic machine hardware */ - MDRV_CPU_REPLACE("main", N2A03, PAL_CLOCK) - MDRV_SCREEN_REFRESH_RATE(53.355) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((106.53/(PAL_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_PAL-PPU_VBLANK_FIRST_SCANLINE+1+2))) - - MDRV_VIDEO_START(nes_pal) - - /* sound hardware */ - MDRV_SOUND_REPLACE("nessound", NES, PAL_CLOCK) - MDRV_SOUND_CONFIG(nespal_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -static void nes_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_nes_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = nes_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "nes"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(nes) - CONFIG_DEVICE(nes_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void famicom_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_nes_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = nes_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "nes"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void famicom_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_nes_disk; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_nes_disk; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk,fds"); break; - } -} - -SYSTEM_CONFIG_START(famicom) - CONFIG_DEVICE(famicom_cartslot_getinfo) - CONFIG_DEVICE(famicom_floppy_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1983, famicom, 0, 0, nes, famicom, 0, famicom, "Nintendo", "Famicom" , GAME_NOT_WORKING) -CONS( 1986, famitwin, famicom, 0, nes, famicom, 0, famicom, "Sharp", "Famicom Twin" , GAME_NOT_WORKING) -CONS( 1985, nes, 0, 0, nes, nes, 0, nes, "Nintendo", "Nintendo Entertainment System (NTSC)" , 0) -CONS( 1987, nespal, nes, 0, nespal, nes, 0, nes, "Nintendo", "Nintendo Entertainment System (PAL)" , 0) - diff --git a/mess/systems/odyssey2.c b/mess/systems/odyssey2.c deleted file mode 100644 index 8a29e58a7..000000000 --- a/mess/systems/odyssey2.c +++ /dev/null @@ -1,194 +0,0 @@ -/*************************************************************************** - - /systems/odyssey2.c - - Driver file to handle emulation of the Odyssey2. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/i8039/i8039.h" -#include "vidhrdw/generic.h" -#include "includes/odyssey2.h" -#include "devices/cartslot.h" -#include "inputx.h" - -ADDRESS_MAP_START( odyssey2_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x03FF) AM_ROM - AM_RANGE( 0x0400, 0x0BFF) AM_RAMBANK(1) - AM_RANGE( 0x0C00, 0x0FFF) AM_RAMBANK(2) -ADDRESS_MAP_END - -ADDRESS_MAP_START( odyssey2_io , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_READWRITE( odyssey2_bus_r, odyssey2_bus_w) - AM_RANGE( I8039_p1, I8039_p1) AM_READWRITE( odyssey2_getp1, odyssey2_putp1 ) - AM_RANGE( I8039_p2, I8039_p2) AM_READWRITE( odyssey2_getp2, odyssey2_putp2 ) - AM_RANGE( I8039_bus, I8039_bus) AM_READWRITE( odyssey2_getbus, odyssey2_putbus ) - AM_RANGE( I8039_t1, I8039_t1) AM_READ( odyssey2_t1_r ) -ADDRESS_MAP_END - -INPUT_PORTS_START( odyssey2 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("?? :") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("?? $") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR('+') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_START /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') - PORT_START /* IN5 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR('*') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR('/') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(DEF_STR( Yes )) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(DEF_STR( No )) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLR") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\r') - PORT_START /* IN6 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT ( 0xe0, 0xe0, IPT_UNUSED ) - PORT_START /* IN7 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT ( 0xe0, 0xe0, IPT_UNUSED ) -INPUT_PORTS_END - -static gfx_layout odyssey2_graphicslayout = -{ - 8,1, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - }, - /* y offsets */ - { 0 }, - 1*8 -}; - - -static gfx_layout odyssey2_spritelayout = -{ - 8,1, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { - 7,6,5,4,3,2,1,0 - }, - /* y offsets */ - { 0 }, - 1*8 -}; - -static gfx_decode odyssey2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &odyssey2_graphicslayout, 0, 2 }, - { REGION_GFX1, 0x0000, &odyssey2_spritelayout, 0, 2 }, - { -1 } /* end of array */ -}; - -static MACHINE_DRIVER_START( odyssey2 ) - /* basic machine hardware */ - MDRV_CPU_ADD(I8048, 1790000/5) /* 1.79 MHz */ - MDRV_CPU_PROGRAM_MAP(odyssey2_mem, 0) - MDRV_CPU_IO_MAP(odyssey2_io, 0) - MDRV_CPU_VBLANK_INT(odyssey2_line, 262) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( odyssey2 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - - MDRV_SCREEN_SIZE(320,300) - MDRV_SCREEN_VISIBLE_AREA(0,160-1,0,240-1) - MDRV_GFXDECODE( odyssey2_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(24) - MDRV_COLORTABLE_LENGTH(2) - MDRV_PALETTE_INIT( odyssey2 ) - - MDRV_VIDEO_START( odyssey2 ) - MDRV_VIDEO_UPDATE( odyssey2 ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(odyssey2_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -ROM_START (odyssey2) - ROM_REGION(0x10000,REGION_CPU1,0) /* safer for the memory handler/bankswitching??? */ - ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee)) - ROM_REGION(0x100, REGION_GFX1, 0) - - ROM_REGION(0x2000, REGION_USER1, 0) - ROM_CART_LOAD(0, "bin\0", 0x0000, 0x2000, ROM_MIRROR) -ROM_END - -SYSTEM_CONFIG_START(odyssey2) - CONFIG_DEVICE(cartslot_device_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ -COMP( 1982, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2, odyssey2, "Magnavox", "Odyssey 2", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) -/* philips g7000/videopac */ diff --git a/mess/systems/oric.c b/mess/systems/oric.c deleted file mode 100644 index c2e2252bd..000000000 --- a/mess/systems/oric.c +++ /dev/null @@ -1,615 +0,0 @@ -/********************************************************************* - - systems/oric.c - - Systems supported by this driver: - - Oric 1, - Oric Atmos, - Oric Telestrat, - Pravetz 8D - - Pravetz is a Bulgarian copy of the Oric Atmos and uses - Apple 2 disc drives for storage. - - This driver originally by Paul Cook, rewritten by Kevin Thacker. - -*********************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/oric.h" -#include "includes/centroni.h" -#include "devices/printer.h" -#include "devices/mflopimg.h" -#include "devices/cassette.h" -#include "formats/ap2_dsk.h" -#include "formats/oric_tap.h" -#include "sound/ay8910.h" -#include "machine/6522via.h" -#include "includes/6551.h" - -#include "includes/apple2.h" - -/* - Explaination of memory regions: - - I have split the memory region &c000-&ffff in this way because: - - All roms (os, microdisc and jasmin) use the 6502 IRQ vectors at the end - of memory &fff8-&ffff, but they are different sizes. The os is 16k, microdisc - is 8k and jasmin is 2k. - - There is also 16k of ram at &c000-&ffff which is normally masked - by the os rom, but when the microdisc or jasmin interfaces are used, - this ram can be accessed. For the microdisc and jasmin, the ram not - covered by the roms for these interfaces, can be accessed - if it is enabled. - - MRA8_BANK1,MRA8_BANK2 and MRA8_BANK3 are used for a 16k rom. - MRA8_BANK2 and MRA8_BANK3 are used for a 8k rom. - MRA8_BANK3 is used for a 2k rom. - - 0x0300-0x03ff is I/O access. It is not defined below because the - memory is setup dynamically depending on hardware that has been selected (microdisc, jasmin, apple2) etc. - -*/ - - -static ADDRESS_MAP_START(oric_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0xbfff) AM_RAM AM_BASE( &oric_ram ) - AM_RANGE( 0xc000, 0xdfff) AM_READWRITE( MRA8_BANK1, MWA8_BANK5 ) - AM_RANGE( 0xe000, 0xf7ff) AM_READWRITE( MRA8_BANK2, MWA8_BANK6 ) - AM_RANGE( 0xf800, 0xffff) AM_READWRITE( MRA8_BANK3, MWA8_BANK7 ) -ADDRESS_MAP_END - -/* -The telestrat has the memory regions split into 16k blocks. -Memory region &c000-&ffff can be ram or rom. */ -static ADDRESS_MAP_START(telestrat_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x02ff) AM_RAM - AM_RANGE( 0x0300, 0x030f) AM_READWRITE( via_0_r, via_0_w ) - AM_RANGE( 0x0310, 0x031b) AM_READWRITE( oric_microdisc_r, oric_microdisc_w ) - AM_RANGE( 0x031c, 0x031f) AM_READWRITE( acia_6551_r, acia_6551_w ) - AM_RANGE( 0x0320, 0x032f) AM_READWRITE( via_1_r, via_1_w ) - AM_RANGE( 0x0400, 0xbfff) AM_RAM - AM_RANGE( 0xc000, 0xffff) AM_READWRITE( MRA8_BANK1, MWA8_BANK2 ) -ADDRESS_MAP_END - - -#define INPUT_PORT_ORIC \ - PORT_START /* IN0 */ \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) \ - \ - PORT_START /* KEY ROW 0 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 ^") PORT_CODE(KEYCODE_7) \ - \ - PORT_START /* KEY ROW 1 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) \ - \ - PORT_START /* KEY ROW 2 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) \ - \ - PORT_START /* KEY ROW 3 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x20, 0x00, IPT_UNUSED) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- \xC2\xA3") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) \ - \ - PORT_START /* KEY ROW 4 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) \ - \ - PORT_START /* KEY ROW 5 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) \ - \ - PORT_START /* KEY ROW 6 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) \ - \ - PORT_START /* KEY ROW 7 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x40, 0x00, IPT_UNUSED) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - -#define INPUT_PORT_ORICA \ - PORT_START /* IN0 */ \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) \ - \ - PORT_START /* KEY ROW 0 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 ^") PORT_CODE(KEYCODE_7) \ - \ - PORT_START /* KEY ROW 1 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) \ - \ - PORT_START /* KEY ROW 2 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) \ - \ - PORT_START /* KEY ROW 3 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT (0x20, 0x00, IPT_UNUSED) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- \xC2\xA3") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) \ - \ - PORT_START /* KEY ROW 4 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) \ - \ - PORT_START /* KEY ROW 5 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("FUNCT") PORT_CODE(KEYCODE_INSERT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) \ - \ - PORT_START /* KEY ROW 6 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) \ - \ - PORT_START /* KEY ROW 7 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT (0x40, 0x00, IPT_UNUSED) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - -#define INPUT_PORT_PRAV8D \ - PORT_START /* IN0 */ \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) \ - \ - PORT_START /* KEY ROW 0 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X (MYAGKEEY ZNAHK)") PORT_CODE(KEYCODE_X) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V (ZHEH)") PORT_CODE(KEYCODE_V) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N (EHN)") PORT_CODE(KEYCODE_N) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) \ - \ - PORT_START /* KEY ROW 1 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D (DEH)") PORT_CODE(KEYCODE_D) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q (YAH)") PORT_CODE(KEYCODE_Q) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("OCB") PORT_CODE(KEYCODE_ESC) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F (EHF)") PORT_CODE(KEYCODE_F) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R (ERH)") PORT_CODE(KEYCODE_R) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T (TEH)") PORT_CODE(KEYCODE_T) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J (EE KRATKOYEH)") PORT_CODE(KEYCODE_J) \ - \ - PORT_START /* KEY ROW 2 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C (TSEH)") PORT_CODE(KEYCODE_C) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z (ZEH)") PORT_CODE(KEYCODE_Z) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MK") PORT_CODE(KEYCODE_LCONTROL) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B (BEH)") PORT_CODE(KEYCODE_B) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M (EHM)") PORT_CODE(KEYCODE_M) \ - \ - PORT_START /* KEY ROW 3 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] (SCHYAH)") PORT_CODE(KEYCODE_CLOSEBRACE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_EQUALS) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C/L") PORT_CODE(KEYCODE_INSERT) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_COLON) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ (SHAH)") PORT_CODE(KEYCODE_OPENBRACE) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K (KAH)") PORT_CODE(KEYCODE_K) \ - \ - PORT_START /* KEY ROW 4 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) \ - \ - PORT_START /* KEY ROW 5 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("@ (YOO)") PORT_CODE(KEYCODE_TILDE) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ (EH)") PORT_CODE(KEYCODE_BACKSLASH) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P (PEH)") PORT_CODE(KEYCODE_P) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O (OH)") PORT_CODE(KEYCODE_O) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I (EE)") PORT_CODE(KEYCODE_I) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U (OO)") PORT_CODE(KEYCODE_U) \ - \ - PORT_START /* KEY ROW 6 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W (VEH)") PORT_CODE(KEYCODE_W) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S (EHS)") PORT_CODE(KEYCODE_S) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A (AH)") PORT_CODE(KEYCODE_A) \ - PORT_BIT (0x10, 0x00, IPT_UNUSED) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E (YEH)") PORT_CODE(KEYCODE_E) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G (GEH)") PORT_CODE(KEYCODE_G) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H (KHAH)") PORT_CODE(KEYCODE_H) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y (TVYORDIY ZNAHK)") PORT_CODE(KEYCODE_Y) \ - \ - PORT_START /* KEY ROW 7 */ \ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) \ - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^ (CHEH)") PORT_CODE(KEYCODE_HOME) \ - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) \ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) \ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) \ - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) \ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L (EHL)") PORT_CODE(KEYCODE_L) \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) - -INPUT_PORTS_START(oric) - INPUT_PORT_ORIC - PORT_START - /* floppy interface */ - PORT_DIPNAME( 0x07, 0x00, "Floppy disc interface" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x01, "Microdisc" ) - PORT_DIPSETTING( 0x02, "Jasmin" ) -/* PORT_DIPSETTING( 0x03, "Low 8D DOS" ) */ -/* PORT_DIPSETTING( 0x04, "High 8D DOS" ) */ - - /* vsync cable hardware. This is a simple cable connected to the video output - to the monitor/television. The sync signal is connected to the cassette input - allowing interrupts to be generated from the vsync signal. */ - PORT_DIPNAME(0x08, 0x00, "Vsync cable hardware") - PORT_DIPSETTING(0x0, DEF_STR( Off) ) - PORT_DIPSETTING(0x8, DEF_STR( On) ) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_VBLANK) -INPUT_PORTS_END - -INPUT_PORTS_START(orica) - INPUT_PORT_ORICA - PORT_START - /* floppy interface */ - PORT_DIPNAME( 0x07, 0x00, "Floppy disc interface" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x01, "Microdisc" ) - PORT_DIPSETTING( 0x02, "Jasmin" ) -/* PORT_DIPSETTING( 0x03, "Low 8D DOS" ) */ -/* PORT_DIPSETTING( 0x04, "High 8D DOS" ) */ - - /* vsync cable hardware. This is a simple cable connected to the video output - to the monitor/television. The sync signal is connected to the cassette input - allowing interrupts to be generated from the vsync signal. */ - PORT_DIPNAME(0x08, 0x00, "Vsync cable hardware") - PORT_DIPSETTING(0x0, DEF_STR( Off) ) - PORT_DIPSETTING(0x8, DEF_STR( On) ) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_VBLANK) -INPUT_PORTS_END - -INPUT_PORTS_START(prav8d) - INPUT_PORT_PRAV8D - /* force apple2 disc interface for pravetz */ - PORT_START - PORT_DIPNAME( 0x07, 0x00, "Floppy disc interface" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x03, "Low 8D DOS" ) - PORT_DIPSETTING( 0x04, "High 8D DOS" ) - PORT_DIPNAME(0x08, 0x00, "Vsync cable hardware") - PORT_DIPSETTING(0x0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x8, DEF_STR( On ) ) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_VBLANK) -INPUT_PORTS_END - -INPUT_PORTS_START(telstrat) - INPUT_PORT_ORICA - PORT_START - /* vsync cable hardware. This is a simple cable connected to the video output - to the monitor/television. The sync signal is connected to the cassette input - allowing interrupts to be generated from the vsync signal. */ - PORT_BIT (0x07, 0x00, IPT_UNUSED) - PORT_DIPNAME(0x08, 0x00, "Vsync cable hardware") - PORT_DIPSETTING(0x0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x8, DEF_STR( On ) ) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_VBLANK) - /* left joystick port */ - PORT_START - PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 0 UP") PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 0 DOWN") PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 0 LEFT") PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 0 RIGHT") PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 0 FIRE 1") PORT_CODE(JOYCODE_1_UP) - /* right joystick port */ - PORT_START - PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 1 UP") PORT_CODE(JOYCODE_2_RIGHT) - PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 1 DOWN") PORT_CODE(JOYCODE_2_LEFT) - PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 1 LEFT") PORT_CODE(JOYCODE_2_BUTTON1) - PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 1 RIGHT") PORT_CODE(JOYCODE_2_DOWN) - PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("JOYSTICK 1 FIRE 1") PORT_CODE(JOYCODE_2_UP) - -INPUT_PORTS_END - -static unsigned char oric_palette[8*3] = -{ - 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, -}; - -static const unsigned short oric_colortable[8] = -{ - 0,1,2,3,4,5,6,7 -}; - -/* Initialise the palette */ -static PALETTE_INIT( oric ) -{ - palette_set_colors(machine, 0, oric_palette, sizeof(oric_palette) / 3); - memcpy(colortable, oric_colortable,sizeof(oric_colortable)); -} - - - -static struct AY8910interface oric_ay_interface = -{ - 0, - 0, - oric_psg_porta_write, - 0 -}; - - -static MACHINE_DRIVER_START( oric ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 1000000) - MDRV_CPU_PROGRAM_MAP(oric_mem, 0) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( oric ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*6, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 28*8-1) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(8) - MDRV_PALETTE_INIT( oric ) - - MDRV_VIDEO_START( oric ) - MDRV_VIDEO_UPDATE( oric ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(oric_ay_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( telstrat) - MDRV_IMPORT_FROM( oric ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( telestrat_mem, 0 ) - - MDRV_MACHINE_START( telestrat ) -MACHINE_DRIVER_END - - -ROM_START(oric1) - ROM_REGION(0x10000+0x04000+0x02000+0x0800,REGION_CPU1,0) - ROM_LOAD ("basic10.rom", 0x10000, 0x4000, CRC(f18710b4) SHA1(333116e6884d85aaa4dfc7578a91cceeea66d016)) - ROM_LOAD_OPTIONAL ("microdis.rom",0x014000, 0x02000, CRC(a9664a9c) SHA1(0d2ef6e67322f48f4b7e08d8bbe68827e2074561)) - ROM_LOAD_OPTIONAL ("jasmin.rom", 0x016000, 0x800, CRC(37220e89) SHA1(70e59b8abd67092f050462abc6cb5271e4c15f01)) -ROM_END - -ROM_START(orica) - ROM_REGION(0x10000+0x04000+0x02000+0x0800,REGION_CPU1,0) - ROM_LOAD ("basic11b.rom", 0x10000, 0x4000, CRC(c3a92bef) SHA1(9451a1a09d8f75944dbd6f91193fc360f1de80ac)) - ROM_LOAD_OPTIONAL ("microdis.rom",0x014000, 0x02000, CRC(a9664a9c) SHA1(0d2ef6e67322f48f4b7e08d8bbe68827e2074561)) - ROM_LOAD_OPTIONAL ("jasmin.rom", 0x016000, 0x800, CRC(37220e89) SHA1(70e59b8abd67092f050462abc6cb5271e4c15f01)) -ROM_END - -ROM_START(telstrat) - ROM_REGION(0x010000+(0x04000*4), REGION_CPU1,0) - ROM_LOAD ("telmatic.rom", 0x010000, 0x02000, CRC(94358dc6) SHA1(35f92a0477a88f5cf564971125047ffcfa02ec10)) - ROM_LOAD ("teleass.rom", 0x014000, 0x04000, CRC(68b0fde6) SHA1(9e9af51dae3199cccf49ab3f0d47e2b9be4ba97d)) - ROM_LOAD ("hyperbas.rom", 0x018000, 0x04000, CRC(1d96ab50) SHA1(f5f70a0eb59f8cd6c261e179ae78ef906f68ed63)) - ROM_LOAD ("telmon24.rom", 0x01c000, 0x04000, CRC(aa727c5d) SHA1(86fc8dc0932f983efa199e31ae05a4424772f959)) -ROM_END - -ROM_START(prav8d) - ROM_REGION (0x10000+0x4000+0x0100+0x200,REGION_CPU1,0) - ROM_LOAD ("pravetzt.rom", 0x10000, 0x4000, CRC(58079502) SHA1(7afc276cb118adff72e4f16698f94bf3b2c64146)) - ROM_LOAD_OPTIONAL ("8ddoslo.rom", 0x014000, 0x0100, CRC(0c82f636) SHA1(b29d151a0dfa3c7cd50439b51d0a8f95559bc2b6)) - ROM_LOAD_OPTIONAL ("8ddoshi.rom",0x014100, 0x0200, CRC(66309641) SHA1(9c2e82b3c4d385ade6215fcb89f8b92e6fd2bf4b)) -ROM_END - -ROM_START(prav8dd) - ROM_REGION (0x10000+0x4000+0x0100+0x0200,REGION_CPU1,0) - ROM_LOAD ("8d.rom", 0x10000, 0x4000, CRC(b48973ef) SHA1(fd47c977fc215a3b577596a7483df53e8a1e9c83)) - ROM_LOAD_OPTIONAL ("8ddoslo.rom", 0x014000, 0x0100, CRC(0c82f636) SHA1(b29d151a0dfa3c7cd50439b51d0a8f95559bc2b6)) - ROM_LOAD_OPTIONAL ("8ddoshi.rom",0x014100, 0x0200, CRC(66309641) SHA1(9c2e82b3c4d385ade6215fcb89f8b92e6fd2bf4b)) -ROM_END - -ROM_START(prav8dda) - ROM_REGION (0x10000+0x4000+0x0100+0x200,REGION_CPU1,0) - ROM_LOAD ("pravetzd.rom", 0x10000, 0x4000, CRC(f8d23821) SHA1(f87ad3c5832773b6e0614905552a80c98dc8e2a5)) - ROM_LOAD_OPTIONAL ("8ddoslo.rom", 0x014000, 0x0100, CRC(0c82f636) SHA1(b29d151a0dfa3c7cd50439b51d0a8f95559bc2b6)) - ROM_LOAD_OPTIONAL ("8ddoshi.rom",0x014100, 0x0200, CRC(66309641) SHA1(9c2e82b3c4d385ade6215fcb89f8b92e6fd2bf4b)) -ROM_END - -static void oric_common_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) oric_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void oric_common_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(oric_common) - CONFIG_DEVICE(oric_common_cassette_getinfo) - CONFIG_DEVICE(oric_common_printer_getinfo) -SYSTEM_CONFIG_END - -static void oric1_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_oric_floppy; break; - case DEVINFO_PTR_LOAD: info->load = device_load_oric_floppy; break; - case DEVINFO_PTR_STATUS: /* info->status = floppy_status; */ break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - } -} - -SYSTEM_CONFIG_START(oric1) - CONFIG_IMPORT_FROM(oric_common) - CONFIG_DEVICE(oric1_floppy_getinfo) -SYSTEM_CONFIG_END - -static void prav8_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_apple2; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(prav8) - CONFIG_IMPORT_FROM(oric_common) - CONFIG_DEVICE(prav8_floppy_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1983, oric1, 0, 0, oric, oric, 0, oric1, "Tangerine", "Oric 1" , 0) -COMP( 1984, orica, oric1, 0, oric, orica, 0, oric1, "Tangerine", "Oric Atmos" , 0) -COMP( 1985, prav8d, oric1, 0, oric, prav8d, 0, prav8, "Pravetz", "Pravetz 8D", 0) -COMP( 1989, prav8dd, oric1, 0, oric, prav8d, 0, prav8, "Pravetz", "Pravetz 8D (Disk ROM)", GAME_COMPUTER_MODIFIED) -COMP( 1992, prav8dda, oric1, 0, oric, prav8d, 0, prav8, "Pravetz", "Pravetz 8D (Disk ROM, RadoSoft)", GAME_COMPUTER_MODIFIED) -COMP( 1986, telstrat, oric1, 0, telstrat, telstrat, 0, oric1, "Tangerine", "Oric Telestrat", GAME_NOT_WORKING ) diff --git a/mess/systems/osi.c b/mess/systems/osi.c deleted file mode 100644 index 90bb29a93..000000000 --- a/mess/systems/osi.c +++ /dev/null @@ -1,293 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "inputx.h" -#include "machine/mc6850.h" -#include "sound/discrete.h" - -WRITE8_HANDLER( sb2m600_videoram_w ); -VIDEO_START( sb2m600 ); -VIDEO_START( uk101 ); -VIDEO_UPDATE( sb2m600 ); -extern discrete_sound_block sb2m600_discrete_interface[]; -READ8_HANDLER( osi_keyboard_r ); -WRITE8_HANDLER ( sb2m600b_keyboard_w ); -WRITE8_HANDLER ( uk101_keyboard_w ); -int device_load_sb2m600_cassette(mess_image *image); -void device_unload_sb2m600_cassette(mess_image *image); -READ8_HANDLER( osi470_floppy_status_r ); -WRITE8_HANDLER( osi470_floppy_control_w ); -DRIVER_INIT( sb2m600 ); - -/* Memory Maps */ - -ADDRESS_MAP_START( sb2m600_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM - AM_RANGE(0x1000, 0x1fff) AM_RAM - AM_RANGE(0xa000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc000) AM_READ(osi470_floppy_status_r) - AM_RANGE(0xc002, 0xc002) AM_WRITE(osi470_floppy_control_w) - AM_RANGE(0xc010, 0xc011) AM_READWRITE(acia6850_1_r, acia6850_1_w) - AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(sb2m600_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xdf00, 0xdf00) AM_READWRITE(osi_keyboard_r, sb2m600b_keyboard_w) - AM_RANGE(0xf000, 0xf001) AM_READWRITE(acia6850_0_r, acia6850_0_w) - AM_RANGE(0xf800, 0xffff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( uk101_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM - AM_RANGE(0x1000, 0x1fff) AM_RAM - AM_RANGE(0xa000, 0xbfff) AM_ROM - AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(sb2m600_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xdf00, 0xdf00) AM_READWRITE(osi_keyboard_r, uk101_keyboard_w) - AM_RANGE(0xf000, 0xf001) AM_READWRITE(acia6850_0_r, acia6850_0_w) - AM_RANGE(0xf800, 0xffff) AM_ROM -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( sb2m600 ) - PORT_START_TAG("ROW0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_TAB) PORT_CHAR(27) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("REPEAT") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') - - PORT_START_TAG("ROW1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - - PORT_START_TAG("ROW2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - - PORT_START_TAG("ROW3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - - PORT_START_TAG("ROW4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START_TAG("ROW5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LINE FEED") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(10) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - - PORT_START_TAG("ROW6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RUB OUT") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - - PORT_START_TAG("ROW7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') -INPUT_PORTS_END - -INPUT_PORTS_START( uk101 ) - PORT_INCLUDE(sb2m600) - - PORT_MODIFY("ROW0") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('~') - - PORT_MODIFY("ROW5") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') -INPUT_PORTS_END - -/* Graphics Layouts */ - -static gfx_layout sb2m600_charlayout = -{ - 8, 8, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8 * 8 -}; - -static gfx_layout uk101_charlayout = -{ - 8, 16, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 0*8, 1*8, 1*8, 2*8, 2*8, 3*8, 3*8, - 4*8, 4*8, 5*8, 5*8, 6*8, 6*8, 7*8, 7*8 }, - 8 * 8 -}; - -/* Graphics Decode Information */ - -static gfx_decode sb2m600_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &sb2m600_charlayout, 0, 1 }, - { -1 } -}; - -static gfx_decode uk101_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &uk101_charlayout, 0, 1 }, - { -1 } -}; - -/* Machine Drivers */ - -#define X1 3932160 - -static MACHINE_DRIVER_START( sb2m600 ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", M6502, X1/4) // .98304 MHz - MDRV_CPU_PROGRAM_MAP(sb2m600_mem, 0) - MDRV_SCREEN_REFRESH_RATE(X1/256/256) // 60 Hz - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) - MDRV_GFXDECODE(sb2m600_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - MDRV_COLORTABLE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(sb2m600) - MDRV_VIDEO_UPDATE(sb2m600) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(sb2m600_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -#define XL1 8000000 - -static MACHINE_DRIVER_START( uk101 ) - // basic machine hardware - MDRV_CPU_ADD(M6502, XL1/8) // 1 MHz - MDRV_CPU_PROGRAM_MAP(uk101_mem, 0) - MDRV_SCREEN_REFRESH_RATE(50) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*16) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*16-1) - MDRV_GFXDECODE(uk101_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - MDRV_COLORTABLE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(uk101) - MDRV_VIDEO_UPDATE(sb2m600) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( sb2m600b ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "basus01.u9", 0xa000, 0x0800, CRC(f4f5dec0) SHA1(b41bf24b4470b6e969d32fe48d604637276f846e) ) - ROM_LOAD( "basuk02.u10", 0xa800, 0x0800, CRC(0039ef6a) SHA1(1397f0dc170c16c8e0c7d02e63099e986e86385b) ) - ROM_LOAD( "basus03.u11", 0xb000, 0x0800, CRC(ca25f8c1) SHA1(f5e8ee93a5e0656657d0cc60ef44e8a24b8b0a80) ) - ROM_LOAD( "basus04.u12", 0xb800, 0x0800, CRC(8ee6030e) SHA1(71f210163e4268cba2dd78a97c4d8f5dcebf980e) ) - ROM_LOAD( "monde01.u13", 0xf800, 0x0800, CRC(95a44d2e) SHA1(4a0241c4015b94c436d0f0f58b3dd9d5207cd847) ) - - ROM_REGION( 0x800, REGION_GFX1,0) - ROM_LOAD( "chgsup2.u41", 0x0000, 0x0800, CRC(735f5e0a) SHA1(87c6271497c5b00a974d905766e91bb965180594) ) -ROM_END - -ROM_START( uk101 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "basuk01.ic9", 0xa000, 0x0800, CRC(9d3caa92) SHA1(b2c3d1af0c4f3cead1dbd44aaf5a11680880f772) ) - ROM_LOAD( "basuk02.ic10", 0xa800, 0x0800, CRC(0039ef6a) SHA1(1397f0dc170c16c8e0c7d02e63099e986e86385b) ) - ROM_LOAD( "basuk03.ic11", 0xb000, 0x0800, CRC(0d011242) SHA1(54bd33522a5d1991086eeeff3a4f73c026be45b6) ) - ROM_LOAD( "basuk04.ic12", 0xb800, 0x0800, CRC(667223e8) SHA1(dca78be4b98317413376d69119942d692e39575a) ) - ROM_LOAD( "monuk02.ic13", 0xf800, 0x0800, CRC(04ac5822) SHA1(2bbbcd0ca18103fd68afcf64a7483653b925d83e) ) - - ROM_REGION( 0x800, REGION_GFX1, 0 ) - ROM_LOAD( "chguk101.ic41", 0x0000, 0x0800, CRC(fce2c84a) SHA1(baa66a7a48e4d62282671ef53abfaf450b888b70) ) -ROM_END - -/* System Configuration */ - -static void sb2m600_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_sb2m600_cassette; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_sb2m600_cassette; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bas"); break; - } -} - -SYSTEM_CONFIG_START(sb2m600) - CONFIG_DEVICE(sb2m600_cassette_getinfo) - CONFIG_RAM_DEFAULT(4 * 1024) - CONFIG_RAM(8 * 1024) -SYSTEM_CONFIG_END - -/* System Drivers */ - -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME -COMP( 1978, sb2m600b, 0, 0, sb2m600, sb2m600, sb2m600, sb2m600, "Ohio Scientific", "Superboard II Model 600 (Rev. B)" , 0) -COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, sb2m600, sb2m600, "Compukit", "UK101" , 0) diff --git a/mess/systems/pc.c b/mess/systems/pc.c deleted file mode 100644 index 208dacc9a..000000000 --- a/mess/systems/pc.c +++ /dev/null @@ -1,1683 +0,0 @@ -/*************************************************************************** - - systems/pc.c - - PC-XT memory map - - 00000-9FFFF RAM - A0000-AFFFF NOP or videoram EGA/VGA - B0000-B7FFF videoram MDA, page #0 - B8000-BFFFF videoram CGA and/or MDA page #1, T1T mapped RAM - C0000-C7FFF NOP or ROM EGA/VGA - C8000-C9FFF ROM XT HDC #1 - CA000-CBFFF ROM XT HDC #2 - D0000-EFFFF NOP or 'adapter RAM' - F0000-FDFFF NOP or ROM Basic + other Extensions - FE000-FFFFF ROM - -***************************************************************************/ - -#include "driver.h" -#include "machine/8255ppi.h" -#include "machine/uart8250.h" -#include "machine/mc146818.h" -#include "machine/pic8259.h" -#include "vidhrdw/generic.h" - -#include "machine/pit8253.h" -#include "vidhrdw/pc_vga.h" -#include "vidhrdw/pc_cga.h" -#include "vidhrdw/pc_mda.h" -#include "vidhrdw/pc_aga.h" -#include "vidhrdw/pc_t1t.h" -#include "vidhrdw/pc_video.h" - -#include "includes/pc_ide.h" -#include "machine/pc_fdc.h" -#include "machine/pc_joy.h" -#include "machine/pckeybrd.h" -#include "includes/pclpt.h" -#include "includes/sblaster.h" -#include "includes/pc_mouse.h" - -#include "includes/europc.h" -#include "includes/tandy1t.h" -#include "includes/amstr_pc.h" -#include "includes/ibmpc.h" - -#include "machine/pcshare.h" -#include "includes/pc.h" - -#include "machine/pc_hdc.h" -#include "devices/printer.h" -#include "devices/mflopimg.h" -#include "devices/harddriv.h" -#include "formats/pc_dsk.h" - -#include "machine/8237dma.h" -#include "sound/sn76496.h" -#include "sound/3812intf.h" - -#include "inputx.h" - -#define ym3812_StdClock 3579545 - -/* - adlib (YM3812/OPL2 chip), part of many many soundcards (soundblaster) - soundblaster: YM3812 also accessible at 0x228/9 (address jumperable) - soundblaster pro version 1: 2 YM3812 chips - at 0x388 both accessed, - at 0x220/1 left?, 0x222/3 right? (jumperable) - soundblaster pro version 2: 1 OPL3 chip - - pro audio spectrum +: 2 OPL2 - pro audio spectrum 16: 1 OPL3 - */ -#define ADLIB /* YM3812/OPL2 Chip */ -/* - creative labs game blaster (CMS creative music system) - 2 x saa1099 chips - also on sound blaster 1.0 - option on sound blaster 1.5 - - jumperable? normally 0x220 -*/ -#define GAMEBLASTER - - - -// IO Expansion, only a little bit for ibm bios self tests -//#define EXP_ON - -static ADDRESS_MAP_START( pc_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x9ffff) AM_READWRITE(MRA8_BANK10, MWA8_BANK10) - AM_RANGE(0xa0000, 0xbffff) AM_NOP - AM_RANGE(0xc0000, 0xc7fff) AM_ROM - AM_RANGE(0xc8000, 0xcffff) AM_ROM - AM_RANGE(0xd0000, 0xeffff) AM_NOP - AM_RANGE(0xf0000, 0xfffff) AM_ROM -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(pc_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x000f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x0021) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x0043) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x0063) AM_READWRITE(ppi8255_0_r, ppi8255_0_w) - AM_RANGE(0x0080, 0x0087) AM_READWRITE(pc_page_r, pc_page_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) -#ifdef EXP_ON - AM_RANGE(0x0210, 0x0217) AM_READWRITE(pc_EXP_r, pc_EXP_w) -#endif - AM_RANGE(0x0240, 0x0257) AM_READWRITE(pc_rtc_r, pc_rtc_w) - AM_RANGE(0x0278, 0x027b) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0340, 0x0357) AM_READ(return8_FF) /* anonymous bios should not recogniced realtimeclock */ - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_parallelport1_r, pc_parallelport1_w) -#ifdef ADLIB - AM_RANGE(0x0388, 0x0388) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x0389, 0x0389) AM_WRITE( YM3812_write_port_0_w) -#endif - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( europc_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x9ffff) AM_READWRITE(MRA8_BANK10, MWA8_BANK10) - AM_RANGE(0xa0000, 0xaffff) AM_NOP - AM_RANGE(0xb0000, 0xbffff) AM_READWRITE(pc_aga_videoram_r, pc_aga_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xc0000, 0xc7fff) AM_NOP - AM_RANGE(0xc8000, 0xcffff) AM_ROM - AM_RANGE(0xd0000, 0xeffff) AM_NOP - AM_RANGE(0xf0000, 0xfffff) AM_ROM -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(europc_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x000f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x0021) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x0043) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x0063) AM_READWRITE(europc_pio_r, europc_pio_w) - AM_RANGE(0x0080, 0x0087) AM_READWRITE(pc_page_r, pc_page_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x0250, 0x025f) AM_READWRITE(europc_jim_r, europc_jim_w) - AM_RANGE(0x0278, 0x027b) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e0, 0x02e0) AM_READ (europc_jim2_r) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037b) AM_READWRITE(pc_parallelport1_r, pc_parallelport1_w) -#ifdef ADLIB - AM_RANGE(0x0388, 0x0388) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x0389, 0x0389) AM_WRITE( YM3812_write_port_0_w) -#endif -// AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(tandy1000_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x9ffff) AM_READWRITE(MRA8_BANK10, MWA8_BANK10) - AM_RANGE(0xa0000, 0xaffff) AM_RAM - AM_RANGE(0xb0000, 0xb7fff) AM_NOP - AM_RANGE(0xb8000, 0xbffff) AM_READWRITE(pc_t1t_videoram_r, pc_video_videoram_w) - AM_RANGE(0xc0000, 0xc7fff) AM_NOP - AM_RANGE(0xc8000, 0xc9fff) AM_ROM - AM_RANGE(0xca000, 0xcffff) AM_NOP - AM_RANGE(0xd0000, 0xeffff) AM_NOP - AM_RANGE(0xf0000, 0xfffff) AM_ROM -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(tandy1000_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x000f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x0021) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x0043) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x0063) AM_READWRITE(tandy1000_pio_r, tandy1000_pio_w) - AM_RANGE(0x0080, 0x0087) AM_READWRITE(pc_page_r, pc_page_w) - AM_RANGE(0x00c0, 0x00c0) AM_WRITE( SN76496_0_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037f) AM_READWRITE(pc_t1t_p37x_r, pc_t1t_p37x_w) - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03d0, 0x03df) AM_READWRITE(pc_T1T_r, pc_T1T_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START(pc200_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x000f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x0021) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x0043) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x0065) AM_READWRITE(pc1640_port60_r, pc1640_port60_w) - AM_RANGE(0x0078, 0x0078) AM_READWRITE(pc1640_mouse_x_r, pc1640_mouse_x_w) - AM_RANGE(0x007a, 0x007a) AM_READWRITE(pc1640_mouse_y_r, pc1640_mouse_y_w) - AM_RANGE(0x0080, 0x0087) AM_READWRITE(pc_page_r, pc_page_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x0278, 0x027b) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037b) AM_READWRITE(pc200_port378_r, pc_parallelport1_w) - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( pc1640_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x9ffff) AM_READWRITE(MRA8_BANK10, MWA8_BANK10) - AM_RANGE(0xa0000, 0xbffff) AM_NOP - AM_RANGE(0xc0000, 0xc7fff) AM_ROM - AM_RANGE(0xc8000, 0xcffff) AM_ROM - AM_RANGE(0xd0000, 0xfbfff) AM_NOP - AM_RANGE(0xfc000, 0xfffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START(pc1640_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0x000f) AM_READWRITE(dma8237_0_r, dma8237_0_w) - AM_RANGE(0x0020, 0x0021) AM_READWRITE(pic8259_0_r, pic8259_0_w) - AM_RANGE(0x0040, 0x0043) AM_READWRITE(pit8253_0_r, pit8253_0_w) - AM_RANGE(0x0060, 0x0065) AM_READWRITE(pc1640_port60_r, pc1640_port60_w) - AM_RANGE(0x0070, 0x0071) AM_READWRITE(mc146818_port_r, mc146818_port_w) - AM_RANGE(0x0078, 0x0078) AM_READWRITE(pc1640_mouse_x_r, pc1640_mouse_x_w) - AM_RANGE(0x007a, 0x007a) AM_READWRITE(pc1640_mouse_y_r, pc1640_mouse_y_w) - AM_RANGE(0x0080, 0x0087) AM_READWRITE(pc_page_r, pc_page_w) - AM_RANGE(0x0200, 0x0207) AM_READWRITE(pc_JOY_r, pc_JOY_w) - AM_RANGE(0x0278, 0x027b) AM_READWRITE(pc_parallelport2_r, pc_parallelport2_w) - AM_RANGE(0x02e8, 0x02ef) AM_READWRITE(uart8250_3_r, uart8250_3_w) - AM_RANGE(0x02f8, 0x02ff) AM_READWRITE(uart8250_1_r, uart8250_1_w) - AM_RANGE(0x0320, 0x0323) AM_READWRITE(pc_HDC1_r, pc_HDC1_w) - AM_RANGE(0x0324, 0x0327) AM_READWRITE(pc_HDC2_r, pc_HDC2_w) - AM_RANGE(0x0378, 0x037b) AM_READWRITE(pc1640_port378_r, pc_parallelport1_w) - AM_RANGE(0x03bc, 0x03be) AM_READWRITE(pc_parallelport0_r, pc_parallelport0_w) - AM_RANGE(0x03e8, 0x03ef) AM_READWRITE(uart8250_2_r, uart8250_2_w) - AM_RANGE(0x03f0, 0x03f7) AM_READWRITE(pc_fdc_r, pc_fdc_w) - AM_RANGE(0x03f8, 0x03ff) AM_READWRITE(uart8250_0_r, uart8250_0_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( pcmda ) - PORT_START /* IN0 */ - PORT_BIT ( 0x80, 0x80, IPT_VBLANK ) - PORT_BIT ( 0x7f, 0x7f, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x30, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16/ 64/256K" ) - PORT_DIPSETTING( 0x04, "2 - 32/128/512K" ) - PORT_DIPSETTING( 0x08, "3 - 48/192/576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64/256/640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x02, DEF_STR(Yes) ) - PORT_DIPNAME( 0x01, 0x01, "Any floppy drive installed") - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x01, DEF_STR(Yes) ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x80, DEF_STR(Yes) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x40, DEF_STR(Yes) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x20, DEF_STR(Yes) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -INPUT_PORTS_START( pccga ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x20, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( pc_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ - - PORT_START /* IN20 */ - PORT_CONFNAME( 0x03, 0x00, "CGA character set") - PORT_CONFSETTING(0x00, DEF_STR( Normal )) - PORT_CONFSETTING(0x01, "Alternative") - PORT_CONFNAME( 0x1C, 0x00, "CGA monitor type") - PORT_CONFSETTING(0x00, "Colour RGB") - PORT_CONFSETTING(0x04, "Mono RGB") - PORT_CONFSETTING(0x08, "Colour composite") - PORT_CONFSETTING(0x0C, "Television") - PORT_CONFSETTING(0x10, "LCD") - PORT_CONFNAME( 0xE0, 0x00, "CGA chipset") - PORT_CONFSETTING(0x00, "IBM") - PORT_CONFSETTING(0x20, "Amstrad PC1512") - PORT_CONFSETTING(0x40, "Amstrad PPC512") - PORT_CONFSETTING(0x60, "ATI") - PORT_CONFSETTING(0x80, "Paradise") -INPUT_PORTS_END - -INPUT_PORTS_START( europc ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - EUROPC_KEYBOARD - - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bondwell ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x20, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "Turbo Switch" ) - PORT_DIPSETTING( 0x00, "Off (4.77 MHz)" ) - PORT_DIPSETTING( 0x02, "On (12 MHz)" ) - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -INPUT_PORTS_START( xtcga ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x20, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "Turbo Switch" ) - PORT_DIPSETTING( 0x00, "Off (4.77 MHz)" ) - PORT_DIPSETTING( 0x02, "On (12 MHz)" ) - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( pc_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ - - PORT_START /* IN20 */ - PORT_CONFNAME( 0x03, 0x00, "CGA character set") - PORT_CONFSETTING(0x00, DEF_STR( Normal )) - PORT_CONFSETTING(0x01, "Alternative") - PORT_CONFNAME( 0x1C, 0x00, "CGA monitor type") - PORT_CONFSETTING(0x00, "Colour RGB") - PORT_CONFSETTING(0x04, "Mono RGB") - PORT_CONFSETTING(0x08, "Colour composite") - PORT_CONFSETTING(0x0C, "Television") - PORT_CONFSETTING(0x10, "LCD") - PORT_CONFNAME( 0xE0, 0x00, "CGA chipset") - PORT_CONFSETTING(0x00, "IBM") - PORT_CONFSETTING(0x20, "Amstrad PC1512") - PORT_CONFSETTING(0x40, "Amstrad PPC512") - PORT_CONFSETTING(0x60, "ATI") - PORT_CONFSETTING(0x80, "Paradise") -INPUT_PORTS_END - -INPUT_PORTS_START( tandy1t ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT ( 0xff, 0xff, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_BIT ( 0x30, 0x00, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_BIT ( 0x06, 0x00, IPT_UNUSED ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( t1000_keyboard ) - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -INPUT_PORTS_START( pc200 ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x07, "Name/Language") - PORT_DIPSETTING( 0x00, "English/less checks" ) - PORT_DIPSETTING( 0x01, DEF_STR( Italian ) ) //prego attendere - PORT_DIPSETTING( 0x02, "V.g. v\xC3\xA4nta" ) - PORT_DIPSETTING( 0x03, "Vent et cjeblik" ) // seldom c - PORT_DIPSETTING( 0x04, DEF_STR( Spanish ) ) //Por favor - PORT_DIPSETTING( 0x05, DEF_STR( French ) ) //patientez - PORT_DIPSETTING( 0x06, DEF_STR( German ) ) // bitte warten - PORT_DIPSETTING( 0x07, DEF_STR( English ) ) // please wait - PORT_DIPNAME( 0x08, 0x00, "37a 0x40") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x08, "0x08" ) - PORT_DIPNAME( 0x10, 0x00, "37a 0x80") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x10, "0x10" ) - PORT_DIPNAME( 0x30, 0x00, "Integrated Graphics Adapter") - PORT_DIPSETTING( 0x00, "CGA 1" ) - PORT_DIPSETTING( 0x10, "CGA 2" ) - PORT_DIPSETTING( 0x20, "external" ) - PORT_DIPSETTING( 0x30, "MDA" ) - PORT_DIPNAME( 0xc0, 0x80, "Startup Mode") - PORT_DIPSETTING( 0x00, "external Color 80 Columns" ) - PORT_DIPSETTING( 0x40, "Color 40 Columns" ) - PORT_DIPSETTING( 0x80, "Color 80 Columns" ) - PORT_DIPSETTING( 0xc0, DEF_STR( Mono ) ) - PORT_START /* IN2 */ -PORT_BIT ( 0x80, 0x80, IPT_UNUSED ) // com 1 on motherboard - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) -PORT_BIT ( 0x04, 0x04, IPT_UNUSED ) // lpt 1 on motherboard - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x00, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ - - PORT_START /* IN20 */ - PORT_CONFNAME( 0x03, 0x03, "IDA character set") - PORT_CONFSETTING(0x00, "Greek") - PORT_CONFSETTING(0x01, "Norwegian (Codepage 860)") - PORT_CONFSETTING(0x02, "Portugese (Codepage 865)") - PORT_CONFSETTING(0x03, "Default (Codepage 437)") - PORT_CONFNAME( 0x1C, 0x00, "CGA monitor type") - PORT_CONFSETTING(0x00, "Colour RGB") - PORT_CONFSETTING(0x04, "Mono RGB") - PORT_CONFSETTING(0x0C, "Television") - PORT_BIT ( 0xE0, 0x40, IPT_UNUSED ) /* Chipset is always PPC512 */ - -INPUT_PORTS_END - -INPUT_PORTS_START( pc1512 ) - PORT_START /* IN0 */ - PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED ) - PORT_BIT ( 0x08, 0x08, IPT_VBLANK ) - PORT_BIT ( 0x07, 0x07, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x07, "Name/Language") - PORT_DIPSETTING( 0x00, "English/less checks" ) - PORT_DIPSETTING( 0x01, DEF_STR( Italian ) ) //prego attendere - PORT_DIPSETTING( 0x02, "V.g. v\xC3\xA4nta" ) - PORT_DIPSETTING( 0x03, "Vent et cjeblik" ) // seldom c - PORT_DIPSETTING( 0x04, DEF_STR( Spanish ) ) //Por favor - PORT_DIPSETTING( 0x05, DEF_STR( French ) ) //patientez - PORT_DIPSETTING( 0x06, DEF_STR( German ) ) // bitte warten - PORT_DIPSETTING( 0x07, DEF_STR( English ) ) // please wait - PORT_BIT( 0x20, 0x20, IPT_UNUSED ) // pc1512 integrated special cga - PORT_BIT( 0xc0, 0x00, IPT_UNUSED ) // not used in pc1512 - PORT_BIT( 0xe00, 0x00, IPT_UNUSED ) // not used in pc1512 - PORT_BIT( 0xe000, 0x00, IPT_UNUSED ) // not used in pc1512 - PORT_START /* IN2 */ -PORT_BIT ( 0x80, 0x80, IPT_UNUSED ) // com 1 on motherboard - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) -PORT_BIT ( 0x04, 0x04, IPT_UNUSED ) // lpt 1 on motherboard - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x00, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( amstrad_keyboard ) /* IN4 - IN14 */ - - PORT_INCLUDE( pc_joystick_none ) - - PORT_START /* IN20 */ - PORT_CONFNAME( 0x03, 0x03, "CGA character set") - PORT_CONFSETTING(0x00, "Greek") - PORT_CONFSETTING(0x01, "Danish 2") - PORT_CONFSETTING(0x02, "Danish 1") - PORT_CONFSETTING(0x03, "Default") - PORT_CONFNAME( 0x1C, 0x00, "CGA monitor type") - PORT_CONFSETTING(0x00, "Colour RGB") - PORT_CONFSETTING(0x04, "Mono RGB") - PORT_BIT ( 0xE0, 0x20, IPT_UNUSED ) /* Chipset is always PC1512 */ -INPUT_PORTS_END - -INPUT_PORTS_START( pc1640 ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x08, 0x08, "VGA 1") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "VGA 2") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "VGA 3") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "VGA 4") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Paradise EGA 5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Paradise EGA 6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Paradise EGA 7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Paradise EGA 8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x07, "Name/Language") - PORT_DIPNAME( 0x07, 0x07, "Name/Language") -// PORT_DIPSETTING( 0x00, "PC 512k" ) // machine crashes with ega bios at 0xc0000 - PORT_DIPSETTING( 0x01, DEF_STR( Italian ) ) //prego attendere - PORT_DIPSETTING( 0x02, "V.g. v\xC3\xA4nta" ) - PORT_DIPSETTING( 0x03, "Vent et cjeblik" ) // seldom c - PORT_DIPSETTING( 0x04, DEF_STR( Spanish ) ) //Por favor - PORT_DIPSETTING( 0x05, DEF_STR( French ) ) //patientez - PORT_DIPSETTING( 0x06, DEF_STR( German ) ) // bitte warten - PORT_DIPSETTING( 0x07, DEF_STR( English ) ) // please wait - PORT_BIT( 0x20, 0x00, IPT_UNUSED ) // not pc1512 integrated special cga - PORT_DIPNAME( 0x40, 0x00, "37a 0x40") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x40, "0x40" ) - PORT_DIPNAME( 0x80, 0x00, "37a 0x80") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x80, "0x80" ) -#if 0 - PORT_DIPNAME( 0x200, 0x00, "37a 0x20 after 27[8a] read (font?)") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x200, "0x20" ) - PORT_DIPNAME( 0x400, 0x00, "37a 0x40 after 27[8a] read (font?)") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x400, "0x40" ) - PORT_DIPNAME( 0x800, 0x00, "37a 0x80 after 27[8a] read (font?)") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x800, "0x80" ) - PORT_DIPNAME( 0x2000, 0x00, "37a 0x20 after 427a read") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x2000, "0x20" ) - PORT_DIPNAME( 0x4000, 0x00, " 37a 0x40 after 427a read") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x4000, "0x40" ) - PORT_DIPNAME( 0x8000, 0x00, " 37a 0x80 after 427a read") - PORT_DIPSETTING( 0x00, "0x00" ) - PORT_DIPSETTING( 0x8000, "0x80" ) -#else - PORT_DIPNAME( 0xe00, 0x600, "37a after 427a read") - PORT_DIPSETTING( 0x000, "?0standard" ) // diaresis a, seldom c, acut u, circumflex e, grave a, acute e - PORT_DIPSETTING( 0x200, "?scandinavian" ) //diaresis a, o slashed, acute u, circumflex e, grave a, acute e - PORT_DIPSETTING( 0x600, "?spain" ) // tilde a, seldom c, acute u, circumflex e, grave a, acute e - PORT_DIPSETTING( 0xa00, "?greeck" ) // E, circumflex ???,micro, I, Z, big kappa? - PORT_DIPSETTING( 0xe00, "?standard" ) // diaresis a, seldom e, acute u, circumflex e, grave a, acute e - PORT_DIPNAME( 0xe000, 0x00, "37a after 427a read") - PORT_DIPSETTING( 0x0000, "?Integrated Graphic Adapter IGA (EGA)" ) - PORT_DIPSETTING( 0x2000, "?External EGA/VGA" ) - PORT_DIPSETTING( 0x6000, "CGA 40 Columns" ) - PORT_DIPSETTING( 0xa000, "CGA 80 Columns" ) - PORT_DIPSETTING( 0xe000, "MDA/Hercules/Multiple Graphic Adapters" ) -#endif - PORT_START /* IN2 */ -PORT_BIT ( 0x80, 0x80, IPT_UNUSED ) // com 1 on motherboard - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) -PORT_BIT ( 0x04, 0x04, IPT_UNUSED ) // lpt 1 on motherboard - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x00, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */ - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( amstrad_keyboard ) /* IN4 - IN14 */ - -// PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - -INPUT_PORTS_END - -INPUT_PORTS_START( xtvga ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x08, 0x08, "VGA 1") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "VGA 2") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "VGA 3") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x00, "VGA 4") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPNAME( 0x30, 0x00, "Graphics adapter") - PORT_DIPSETTING( 0x00, "EGA/VGA" ) - PORT_DIPSETTING( 0x10, "Color 40x25" ) - PORT_DIPSETTING( 0x20, "Color 80x25" ) - PORT_DIPSETTING( 0x30, "Monochrome" ) - PORT_DIPNAME( 0x0c, 0x0c, "RAM banks") - PORT_DIPSETTING( 0x00, "1 - 16 64 256K" ) - PORT_DIPSETTING( 0x04, "2 - 32 128 512K" ) - PORT_DIPSETTING( 0x08, "3 - 48 192 576K" ) - PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" ) - PORT_DIPNAME( 0x02, 0x00, "80387 installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x01, "Floppy installed") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_START /* IN2 */ - PORT_DIPNAME( 0x80, 0x80, "COM1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "COM2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, "COM3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, "COM4: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "LPT1: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "LPT2: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "LPT3: enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Game port enable") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0xf0, 0x80, "Serial mouse") - PORT_DIPSETTING( 0x80, "COM1" ) - PORT_DIPSETTING( 0x40, "COM2" ) - PORT_DIPSETTING( 0x20, "COM3" ) - PORT_DIPSETTING( 0x10, "COM4" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "HDC1 (C800:0 port 320-323)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "HDC2 (CA00:0 port 324-327)") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "Turbo Switch" ) - PORT_DIPSETTING( 0x00, "Off (4.77 MHz)" ) - PORT_DIPSETTING( 0x02, "On (12 MHz)" ) - PORT_BIT( 0x01, 0x01, IPT_UNUSED ) - - PORT_INCLUDE( at_keyboard ) /* IN4 - IN11 */ - PORT_INCLUDE( pc_mouse_microsoft ) /* IN12 - IN14 */ - PORT_INCLUDE( pc_joystick ) /* IN15 - IN19 */ -INPUT_PORTS_END - -static unsigned i86_address_mask = 0x000fffff; - -#if defined(ADLIB) -/* irq line not connected to pc on adlib cards (and compatibles) */ -static void pc_irqhandler(int linestate) {} - -static struct YM3812interface ym3812_interface = -{ - pc_irqhandler -}; -#endif - -#define MDRV_CPU_PC(mem, port, type, clock, vblankfunc) \ - MDRV_CPU_ADD_TAG("main", type, clock) \ - MDRV_CPU_PROGRAM_MAP(mem##_map, 0) \ - MDRV_CPU_IO_MAP(port##_io, 0) \ - MDRV_CPU_VBLANK_INT(vblankfunc, 4) \ - MDRV_CPU_CONFIG(i86_address_mask) - - -static MACHINE_DRIVER_START( pcmda ) - /* basic machine hardware */ - MDRV_CPU_PC(pc, pc, V20, 4772720, pc_mda_frame_interrupt) /* 4,77 Mhz */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_mda) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(80*9, 25*14) - MDRV_SCREEN_VISIBLE_AREA(0,80*9-1, 0,25*14-1) - MDRV_GFXDECODE(pc_mda_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(sizeof(cga_palette) / sizeof(cga_palette[0])) - MDRV_COLORTABLE_LENGTH(sizeof(mda_colortable) / sizeof(mda_colortable[0])) - MDRV_PALETTE_INIT(pc_mda) - - MDRV_VIDEO_START(pc_mda) - MDRV_VIDEO_UPDATE(pc_video) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pccga ) - /* basic machine hardware */ - MDRV_CPU_PC(pc, pc, I88, 4772720, pc_cga_frame_interrupt) /* 4,77 Mhz */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_cga) - - MDRV_IMPORT_FROM( pcvideo_cga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( europc ) - /* basic machine hardware */ - MDRV_CPU_PC(europc, europc, I88, 4772720*2, pc_aga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_aga) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(80*9, 25*14) - MDRV_SCREEN_VISIBLE_AREA(0,80*9-1, 0,25*14-1) - MDRV_GFXDECODE(europc_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(sizeof(cga_palette) / sizeof(cga_palette[0])) - MDRV_COLORTABLE_LENGTH((sizeof(cga_colortable)+sizeof(mda_colortable) )/sizeof(cga_colortable[0])) - MDRV_PALETTE_INIT(pc_aga) - - MDRV_VIDEO_START(pc_aga) - MDRV_VIDEO_UPDATE(pc_video) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif - - MDRV_NVRAM_HANDLER( europc_rtc ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( xtcga ) - /* basic machine hardware */ - MDRV_CPU_PC(pc, pc, I86, 12000000, pc_cga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_cga) - - MDRV_IMPORT_FROM( pcvideo_cga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pc200 ) - /* basic machine hardware */ - MDRV_CPU_PC(pc1640, pc200, I86, 8000000, pc_aga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_aga) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(80*8, 25*14) - MDRV_SCREEN_VISIBLE_AREA(0,80*8-1, 0,25*14-1) - MDRV_GFXDECODE(aga_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(sizeof(cga_palette) / sizeof(cga_palette[0])) - MDRV_COLORTABLE_LENGTH((sizeof(cga_colortable)+sizeof(mda_colortable) )/sizeof(cga_colortable[0])) - MDRV_PALETTE_INIT(pc_aga) - - MDRV_VIDEO_START(pc200) /* PC200 needs its own video init */ - MDRV_VIDEO_UPDATE(pc_video) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pc1512 ) - /* basic machine hardware */ - MDRV_CPU_PC(pc1640, pc1640, I86, 8000000, pc_cga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_aga) - - MDRV_IMPORT_FROM( pcvideo_pc1512 ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pc1640 ) - /* basic machine hardware */ - MDRV_CPU_PC(pc1640, pc1640, I86, 8000000, pc_vga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_vga) - - MDRV_IMPORT_FROM(pcvideo_pc1640) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER( mc146818 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( xtvga ) - /* basic machine hardware */ - MDRV_CPU_PC(pc, pc, I86, 12000000, pc_vga_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_vga) - - MDRV_IMPORT_FROM( pcvideo_vga ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#ifdef ADLIB - MDRV_SOUND_ADD(YM3812, ym3812_StdClock) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -#endif -#ifdef GAMEBLASTER - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SAA1099, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -#endif -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( t1000hx ) - /* basic machine hardware */ - MDRV_CPU_PC(tandy1000, tandy1000, I88, 8000000, tandy1000_frame_interrupt) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(pc_t1t) - - MDRV_IMPORT_FROM( pcvideo_t1000hx ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(pc_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MDRV_SOUND_ADD(SN76496, 2386360) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - - MDRV_NVRAM_HANDLER( tandy1000 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( t1000sx ) - MDRV_IMPORT_FROM( t1000hx ) - MDRV_IMPORT_FROM( pcvideo_t1000sx ) -MACHINE_DRIVER_END - -#if 0 - //pcjr roms? (incomplete dump, most likely 64 kbyte) - // basic c1.20 - ROM_LOAD("basic.rom", 0xf6000, 0x8000, CRC(0c19c1a8)) - // ??? - ROM_LOAD("bios.rom", 0x??000, 0x2000, CRC(98463f95)) - - /* turbo xt */ - /* basic c1.10 */ - ROM_LOAD("rom05.bin", 0xf6000, 0x2000, CRC(80d3cf5d)) - ROM_LOAD("rom04.bin", 0xf8000, 0x2000, CRC(673a4acc)) - ROM_LOAD("rom03.bin", 0xfa000, 0x2000, CRC(aac3fc37)) - ROM_LOAD("rom02.bin", 0xfc000, 0x2000, CRC(3062b3fc)) - /* sw1 0x60 readback fails write 301 to screen fe3b7 */ - /* disk problems no disk gives 601 */ - /* 5000-026 08/16/82 */ - ROM_LOAD("rom01.bin", 0xfe000, 0x2000, CRC(5c3f0256)) - - /* anonymous works nice */ - ROM_LOAD("pcxt.rom", 0xfe000, 0x02000, CRC(031aafad)) - - ROM_LOAD("bondwell.bin", 0xfe000, 0x2000, CRC(d435a405)) - - /* europc */ - ROM_LOAD("50145", 0xf8000, 0x8000, CRC(1775a11d)) // V2.07 -// ROM_LOAD("eurobios.bin", 0xf8000, 0x8000, CRC(52185223)) scrap - /* cga, hercules character set */ - ROM_LOAD("50146", 0x00000, 0x02000, CRC(1305dcf5)) //D1.0 - - // ibm pc - // most likely 8 kbyte chips - ROM_LOAD("basicpc.bin", 0xf6000, 0x8000, CRC(ebacb791)) // IBM C1.1 - // split into 8 kbyte parts - // the same as in the basic c1.10 as in the turboxt - // 1501-476 10/27/82 - ROM_LOAD("biospc.bin", 0xfe000, 0x2000, CRC(e88792b3)) - - /* tandy 1000 hx */ - ROM_LOAD("tandy1t.rom", 0xf0000, 0x10000, CRC(d37a1d5f)) - - // ibm xt - ROM_LOAD("xthdd.c8", 0xc8000, 0x2000, CRC(a96317da)) - ROM_LOAD("biosxt.bin", 0xf0000, 0x10000, CRC(36c32fde)) // BASIC C1.1 - // split into 2 chips for 16 bit access - ROM_LOAD_EVEN("ibmxt.0", 0xf0000, 0x8000, CRC(83727c42)) - ROM_LOAD_ODD("ibmxt.1", 0xf0000, 0x8000, CRC(2a629953)) - - /* pc xt mfm controller - 2 harddisks 17 sectors, 4 head, 613 tracks - serves 2 controllers? 0x320-3, 0x324-7, dma 3, irq5 - movable, works at 0xee000 */ - /* western digital 06/28/89 */ - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4)) - - /* lcs 6210d asic i2.1 09/01/1988 */ - /* problematic, currently showing menu and calls int21 (hangs)! */ - ROM_LOAD("xthdd.rom", 0xc8000, 0x02000, CRC(a96317da)) -#endif - -ROM_START( ibmpc ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("basicc11.f6", 0xf6000, 0x2000, CRC(80d3cf5d) SHA1(64769b7a8b60ffeefa04e4afbec778069a2840c9)) - ROM_LOAD("basicc11.f8", 0xf8000, 0x2000, CRC(673a4acc) SHA1(082ae803994048e225150f771794ca305f73d731)) - ROM_LOAD("basicc11.fa", 0xfa000, 0x2000, CRC(aac3fc37) SHA1(c9e0529470edf04da093bb8c8ae2536c688c1a74)) - ROM_LOAD("basicc11.fc", 0xfc000, 0x2000, CRC(3062b3fc) SHA1(5134dd64721cbf093d059ee5d3fd09c7f86604c7)) - ROM_LOAD("pc102782.bin", 0xfe000, 0x2000, CRC(e88792b3) SHA1(40fce6a94dda4328a8b608c7ae2f39d1dc688af4)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( ibmpca ) - ROM_REGION(0x100000,REGION_CPU1,0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("basicc11.f6", 0xf6000, 0x2000, CRC(80d3cf5d) SHA1(64769b7a8b60ffeefa04e4afbec778069a2840c9)) - ROM_LOAD("basicc11.f8", 0xf8000, 0x2000, CRC(673a4acc) SHA1(082ae803994048e225150f771794ca305f73d731)) - ROM_LOAD("basicc11.fa", 0xfa000, 0x2000, CRC(aac3fc37) SHA1(c9e0529470edf04da093bb8c8ae2536c688c1a74)) - ROM_LOAD("basicc11.fc", 0xfc000, 0x2000, CRC(3062b3fc) SHA1(5134dd64721cbf093d059ee5d3fd09c7f86604c7)) - ROM_LOAD("pc081682.bin", 0xfe000, 0x2000, CRC(5c3f0256) SHA1(b42c78abd0a9c630a2f972ad2bae46d83c3a2a09)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( bondwell ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) // taken from other machine - ROM_LOAD("bondwell.bin", 0xfe000, 0x2000, CRC(d435a405)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) // taken from cga -ROM_END - -ROM_START( pcmda ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("pcxt.rom", 0xfe000, 0x02000, CRC(031aafad) SHA1(a641b505bbac97b8775f91fe9b83d9afdf4d038f)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("mda.rom", 0x00000, 0x02000, CRC(0bf56d70) SHA1(c2a8b10808bf51a3c123ba3eb1e9dd608231916f)) // taken from original IBM MDA -ROM_END - -ROM_START( pc ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) -// ROM_LOAD("xthdd.rom", 0xc8000, 0x02000, CRC(a96317da)) - ROM_LOAD("pcxt.rom", 0xfe000, 0x02000, CRC(031aafad) SHA1(a641b505bbac97b8775f91fe9b83d9afdf4d038f)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( europc ) - ROM_REGION(0x100000,REGION_CPU1, 0) - // hdd bios integrated! - ROM_LOAD("50145", 0xf8000, 0x8000, CRC(1775a11d) SHA1(54430d4d0462860860397487c9c109e6f70db8e3)) // V2.07 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("50146", 0x00000, 0x02000, CRC(1305dcf5) SHA1(aca488a16ae4ff05a1f4d14574379ff49cd48343)) //D1.0 -ROM_END - - -ROM_START( ibmpcjr ) - ROM_REGION(0x100000,REGION_CPU1, 0) -#ifndef MESS_DEBUG - ROM_LOAD("bios.rom", 0xf0000, 0x10000,CRC( 0)) -#else - ROM_LOAD("basic.rom", 0xf6000, 0x8000, CRC(0c19c1a8)) - ROM_LOAD("bios.rom", 0xfe000, 0x2000, CRC(98463f95)) -#endif - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( t1000hx ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // partlist says it has 1 128kbyte rom - ROM_LOAD("t1000hx.e0", 0xe0000, 0x10000, CRC(61dbf242) SHA1(555b58d8aa8e0b0839259621c44b832d993beaef)) - ROM_LOAD("tandy1t.rom", 0xf0000, 0x10000, CRC(d37a1d5f) SHA1(5ec031c31a7967cc3fd53a535d81833e4a1c385e)) - ROM_REGION(0x08000,REGION_GFX1, 0) - // expects 8x9 charset! - ROM_LOAD("50146", 0x00000, 0x02000, BAD_DUMP CRC(1305dcf5) SHA1(aca488a16ae4ff05a1f4d14574379ff49cd48343)) //taken from europc, 9th blank -ROM_END - -ROM_START( t1000sx ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // partlist says it has 1 128kbyte rom - ROM_LOAD("t1000hx.e0", 0xe0000, 0x10000, CRC(61dbf242) SHA1(555b58d8aa8e0b0839259621c44b832d993beaef)) - ROM_LOAD("t1000sx.f0", 0xf0000, 0x10000, CRC(0e016ecf)) - ROM_REGION(0x08000,REGION_GFX1, 0) - // expects 8x9 charset! - ROM_LOAD("50146", 0x00000, 0x02000, BAD_DUMP CRC(1305dcf5) SHA1(aca488a16ae4ff05a1f4d14574379ff49cd48343)) //taken from europc, 9th blank -ROM_END - -ROM_START( ibmxt ) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("xt050986.0", 0xf0000, 0x8000, CRC(83727c42) SHA1(1b218f96aa9570beef5c1f2d7b07433b21dc4599)) - ROM_LOAD16_BYTE("xt050986.1", 0xf0001, 0x8000, CRC(2a629953) SHA1(048bb1a0b437ae7b93a4d71648cee12e5e37892c)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("cga.chr", 0x00000, 0x01000, CRC(42009069) SHA1(ed08559ce2d7f97f68b9f540bddad5b6295294dd)) -ROM_END - -ROM_START( xtvga ) - ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f01e4be0) SHA1(95d75ff41bcb765e50bd87a8da01835fd0aa01d5)) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD("pcxt.rom", 0xfe000, 0x02000, CRC(031aafad) SHA1(a641b505bbac97b8775f91fe9b83d9afdf4d038f)) -ROM_END - -ROM_START( pc200 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // special bios at 0xe0000 !? - ROM_LOAD16_BYTE("pc20v2.0", 0xfc001, 0x2000, CRC(41302eb8) SHA1(8b4b2afea543b96b45d6a30365281decc15f2932)) // v2 - ROM_LOAD16_BYTE("pc20v2.1", 0xfc000, 0x2000, CRC(71b84616) SHA1(4135102a491b25fc659d70b957e07649f3eacf24)) // v2 - // also mapped to f0000, f4000, f8000 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40109.bin", 0x00000, 0x08000, CRC(a8b67639) SHA1(99663bfb61798526e092205575370c2ad34249a1)) -ROM_END - -ROM_START( pc20 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - - // special bios at 0xe0000 !? - // This is probably referring to a check for the Amstrad RP5-2 diagnostic - // card, which can be plugged into an Amstrad XT for troubleshooting purposes. - // - John Elliott - ROM_LOAD16_BYTE("pc20v2.0", 0xfc001, 0x2000, CRC(41302eb8) SHA1(8b4b2afea543b96b45d6a30365281decc15f2932)) // v2 - ROM_LOAD16_BYTE("pc20v2.1", 0xfc000, 0x2000, CRC(71b84616) SHA1(4135102a491b25fc659d70b957e07649f3eacf24)) // v2 - // also mapped to f0000, f4000, f8000 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40109.bin", 0x00000, 0x08000, CRC(a8b67639) SHA1(99663bfb61798526e092205575370c2ad34249a1)) -ROM_END - -ROM_START( ppc512 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // special bios at 0xe0000 !? - ROM_LOAD16_BYTE("40107.v1", 0xfc001, 0x2000, CRC(4e37e769)) // v1.9 - ROM_LOAD16_BYTE("40108.v1", 0xfc000, 0x2000, CRC(4f0302d9)) // v1.9 - // also mapped to f0000, f4000, f8000 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40109.bin", 0x00000, 0x08000, CRC(a8b67639) SHA1(99663bfb61798526e092205575370c2ad34249a1)) -ROM_END - -ROM_START( ppc640 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - // special bios at 0xe0000 !? - ROM_LOAD16_BYTE("40107.v2", 0xfc001, 0x2000, CRC(0785b63e)) // v2.1 - ROM_LOAD16_BYTE("40108.v2", 0xfc000, 0x2000, CRC(5351cf8c)) // v2.1 - // also mapped to f0000, f4000, f8000 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40109.bin", 0x00000, 0x08000, CRC(a8b67639) SHA1(99663bfb61798526e092205575370c2ad34249a1)) -ROM_END - -ROM_START( pc1512 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("40044.v1", 0xfc001, 0x2000, CRC(668fcc94) SHA1(74002f5cc542df442eec9e2e7a18db3598d8c482)) // v1 - ROM_LOAD16_BYTE("40043.v1", 0xfc000, 0x2000, CRC(f72f1582) SHA1(7781d4717917262805d514b331ba113b1e05a247)) // v1 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40045.bin", 0x00000, 0x02000, CRC(dd5e030f) SHA1(7d858bbb2e8d6143aa67ab712edf5f753c2788a7)) -ROM_END - -ROM_START( pc1512v2 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("40043.v2", 0xfc001, 0x2000, CRC(d2d4d2de) SHA1(c376fd1ad23025081ae16c7949e88eea7f56e1bb)) // v2 - ROM_LOAD16_BYTE("40044.v2", 0xfc000, 0x2000, CRC(1aec54fa) SHA1(b12fd73cfc35a240ed6da4dcc4b6c9910be611e0)) // v2 - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40078.bin", 0x00000, 0x02000, CRC(ae9c0d04) SHA1(bc8dc4dcedeea5bc1c04986b1f105ad93cb2ebcd)) -ROM_END - -ROM_START( pc1640 ) -// ROM_REGION(0x100000,REGION_CPU1, 0) - ROM_REGION16_LE(0x100000,REGION_CPU1, 0) - ROM_LOAD("40100", 0xc0000, 0x8000, CRC(d2d1f1ae) SHA1(98302006ee38a17c09bd75504cc18c0649174e33)) // this bios seams to be made for the amstrad pc - ROM_LOAD("wdbios.rom", 0xc8000, 0x02000, CRC(8e9e2bd4) SHA1(601d7ceab282394ebab50763c267e915a6a2166a)) - ROM_LOAD16_BYTE("40043.v3", 0xfc001, 0x2000, CRC(e40a1513) SHA1(447eff2057e682e51b1c7593cb6fad0e53879fa8)) // v3 - ROM_LOAD16_BYTE("40044.v3", 0xfc000, 0x2000, CRC(f1c074f3) SHA1(a055ea7e933d137623c22fe24004e870653c7952)) - ROM_REGION(0x08100,REGION_GFX1, 0) - ROM_LOAD("40045.bin", 0x00000, 0x02000, CRC(dd5e030f) SHA1(7d858bbb2e8d6143aa67ab712edf5f753c2788a7)) -ROM_END - -static void ibmpc_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_pc; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void ibmpc_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 3; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void ibmpc_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - default: harddisk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(ibmpc) - CONFIG_RAM_DEFAULT( 640 * 1024 ) - CONFIG_DEVICE(ibmpc_printer_getinfo) - CONFIG_DEVICE(ibmpc_floppy_getinfo) - CONFIG_DEVICE(ibmpc_harddisk_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, ibmpc, 0, 0, pccga, pccga, pccga, ibmpc, "International Business Machines", "IBM PC 10/27/82" , 0) -COMP( 1982, ibmpca, ibmpc, 0, pccga, pccga, pccga, ibmpc, "International Business Machines", "IBM PC 08/16/82" , 0) -COMP( 1987, pc, ibmpc, 0, pccga, pccga, pccga, ibmpc, "", "PC (CGA)" , 0) -COMP( 1985, bondwell, ibmpc, 0, pccga, bondwell, bondwell, ibmpc, "Bondwell Holding", "BW230 (PRO28 Series)", GAME_NOT_WORKING ) -COMP( 1988, europc, ibmpc, 0, europc, europc, europc, ibmpc, "Schneider Rdf. AG", "EURO PC", 0) - -// pcjr (better graphics, better sound) -COMP( 1983, ibmpcjr, ibmpc, 0, t1000hx, tandy1t, t1000hx, ibmpc, "International Business Machines", "IBM PC Jr", GAME_NOT_WORKING|GAME_IMPERFECT_COLORS ) -COMP( 1987, t1000hx, ibmpc, 0, t1000hx, tandy1t, t1000hx, ibmpc, "Tandy Radio Shack", "Tandy 1000HX", 0) -COMP( 1987, t1000sx, ibmpc, 0, t1000sx, tandy1t, t1000hx, ibmpc, "Tandy Radio Shack", "Tandy 1000SX", 0) - -// xt class (pc but 8086) -COMP( 1986, ibmxt, ibmpc, 0, xtcga, xtcga, pccga, ibmpc, "International Business Machines", "IBM PC/XT (CGA)" , 0) -COMP( 1988, pc200, ibmpc, 0, pc200, pc200, pc200, ibmpc, "Sinclair Research", "PC200 Professional Series", 0) -COMP( 1988, pc20, ibmpc, 0, pc200, pc200, pc200, ibmpc, "Amstrad plc", "Amstrad PC20" , 0) -COMP( 1987, ppc512, ibmpc, 0, pc200, pc200, pc200, ibmpc, "Amstrad plc", "Amstrad PPC512", 0) -COMP( 1987, ppc640, ibmpc, 0, pc200, pc200, pc200, ibmpc, "Amstrad plc", "Amstrad PPC640", 0) -COMP( 1986, pc1512, ibmpc, 0, pc1512, pc1512, pc1512, ibmpc, "Amstrad plc", "Amstrad PC1512 (version 1)", 0) -COMP( 198?, pc1512v2, ibmpc, 0, pc1512, pc1512, pc1512, ibmpc, "Amstrad plc", "Amstrad PC1512 (version 2)", 0) -COMP( 1987, pc1640, ibmpc, 0, pc1640, pc1640, pc1640, ibmpc, "Amstrad plc", "Amstrad PC1640 / PC6400 (US)", GAME_NOT_WORKING ) -// pc2086 pc1512 with vga?? -COMP ( 1987, pcmda, ibmpc, 0, pcmda, pcmda, pcmda, ibmpc, "", "PC (MDA)" , 0) -COMP ( 1987, xtvga, ibmpc, 0, xtvga, xtvga, pc_vga, ibmpc, "", "PC/XT (VGA, MF2 Keyboard)" , 0) - diff --git a/mess/systems/pc8801.c b/mess/systems/pc8801.c deleted file mode 100644 index 765a04ada..000000000 --- a/mess/systems/pc8801.c +++ /dev/null @@ -1,595 +0,0 @@ -/*************************************************************************** - - $Id: pc8801.c,v 1.51 2007/01/19 03:28:56 npwoods Exp $ - -***************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/pc8801.h" -#include "machine/nec765.h" -#include "machine/8255ppi.h" -#include "includes/d88.h" -#include "devices/basicdsk.h" -#include "sound/2203intf.h" - -static gfx_layout char_layout_40L_h = -{ - 8, 4, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 0, 0, 1, 1, 2, 2, 3, 3 }, - { 0*8, 0*8, 1*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_layout char_layout_40R_h = -{ - 8, 4, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 4, 4, 5, 5, 6, 6, 7, 7 }, - { 0*8, 0*8, 1*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_layout char_layout_80_h = -{ - 8, 4, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 0*8, 1*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_layout char_layout_40L_l = -{ - 8, 2, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 0, 0, 1, 1, 2, 2, 3, 3 }, - { 0*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_layout char_layout_40R_l = -{ - 8, 2, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 4, 4, 5, 5, 6, 6, 7, 7 }, - { 0*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_layout char_layout_80_l = -{ - 8, 2, /* 16 x 4 graphics */ - 1024, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0x1000*8 }, /* no bitplanes */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8 }, - 8 * 2 /* code takes 8 times 8 bits */ -}; - -static gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &char_layout_80_l, 0, 16 }, - { REGION_GFX1, 0, &char_layout_40L_l, 0, 16 }, - { REGION_GFX1, 0, &char_layout_40R_l, 0, 16 }, - { REGION_GFX1, 0, &char_layout_80_h, 0, 16 }, - { REGION_GFX1, 0, &char_layout_40L_h, 0, 16 }, - { REGION_GFX1, 0, &char_layout_40R_h, 0, 16 }, - {-1} -}; /* end of array */ - -/* Macro for DIPSW-1 */ -#define DIPSW_1_1 \ - PORT_DIPNAME( 0x01, 0x01, "Terminal mode" ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_1_2 \ - PORT_DIPNAME( 0x02, 0x00, "Text width" ) \ - PORT_DIPSETTING( 0x02, "40 chars/line" ) \ - PORT_DIPSETTING( 0x00, "80 chars/line" ) -#define DIPSW_1_3 \ - PORT_DIPNAME( 0x04, 0x00, "Text height" ) \ - PORT_DIPSETTING( 0x04, "20 lines/screen" ) \ - PORT_DIPSETTING( 0x00, "25 lines/screen" ) -#define DIPSW_1_4 \ - PORT_DIPNAME( 0x08, 0x08, "Enable S parameter" ) \ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_1_5 \ - PORT_DIPNAME( 0x10, 0x00, "Enable DEL code" ) \ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_1_6 \ - PORT_DIPNAME( 0x20, 0x20, "Memory wait" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_1_7 \ - PORT_DIPNAME( 0x40, 0x40, "Disable CMD SING" ) \ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -/* Macro for DIPSW-2 */ -#define DIPSW_2_1 \ - PORT_DIPNAME( 0x01, 0x01, "Parity generate" ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_2_2 \ - PORT_DIPNAME( 0x02, 0x00, "Parity type" ) \ - PORT_DIPSETTING( 0x00, "Even" ) \ - PORT_DIPSETTING( 0x02, "Odd" ) -#define DIPSW_2_3 \ - PORT_DIPNAME( 0x04, 0x00, "Serial character length" ) \ - PORT_DIPSETTING( 0x04, "7 bits/char" ) \ - PORT_DIPSETTING( 0x00, "8 bits/char" ) -#define DIPSW_2_4 \ - PORT_DIPNAME( 0x08, 0x08, "Stop bit length" ) \ - PORT_DIPSETTING( 0x08, "1" ) \ - PORT_DIPSETTING( 0x00, "2" ) -#define DIPSW_2_5 \ - PORT_DIPNAME( 0x10, 0x10, "Enable X parameter" ) \ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_2_6 \ - PORT_DIPNAME( 0x20, 0x20, "Duplex mode" ) \ - PORT_DIPSETTING( 0x20, "half duplex" ) \ - PORT_DIPSETTING( 0x00, "full duplex" ) -#define DIPSW_2_7 \ - PORT_DIPNAME( 0x40, 0x00, "Boot from internal FD" ) \ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -#define DIPSW_2_8 \ - PORT_DIPNAME( 0x80, 0x80, "Disable internal FD" ) \ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -/* Macro for other switch */ -#define SW_V1V2N \ - PORT_DIPNAME( 0x03, 0x01, "Basic mode" ) \ - PORT_DIPSETTING( 0x02, "N-BASIC" ) \ - PORT_DIPSETTING( 0x03, "N88-BASIC (V1)" ) \ - PORT_DIPSETTING( 0x01, "N88-BASIC (V2)" ) - -#define SW_HS \ - PORT_DIPNAME( 0x04, 0x04, "Speed mode" ) \ - PORT_DIPSETTING( 0x00, "Slow" ) \ - PORT_DIPSETTING( 0x04, DEF_STR( High ) ) - -#define SW_8MHZ \ - PORT_DIPNAME( 0x08, 0x00, "Main CPU clock" ) \ - PORT_DIPSETTING( 0x00, "4MHz" ) \ - PORT_DIPSETTING( 0x08, "8MHz" ) - -#define SW_4MHZ_ONLY \ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - -#define SW_SERIAL \ - PORT_DIPNAME( 0xf0, 0x80, "Serial speed" ) \ - PORT_DIPSETTING( 0x10, "75bps" ) \ - PORT_DIPSETTING( 0x20, "150bps" ) \ - PORT_DIPSETTING( 0x30, "300bps" ) \ - PORT_DIPSETTING( 0x40, "600bps" ) \ - PORT_DIPSETTING( 0x50, "1200bps" ) \ - PORT_DIPSETTING( 0x60, "2400bps" ) \ - PORT_DIPSETTING( 0x70, "4800bps" ) \ - PORT_DIPSETTING( 0x80, "9600bps" ) \ - PORT_DIPSETTING( 0x90, "19200bps" ) - -#define SW_EXTMEM \ - PORT_DIPNAME( 0x1f, 0x00, "Extension memory" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) \ - PORT_DIPSETTING( 0x01, "32KB (PC-8012-02 x 1)" ) \ - PORT_DIPSETTING( 0x02, "64KB (PC-8012-02 x 2)" ) \ - PORT_DIPSETTING( 0x03, "128KB (PC-8012-02 x 4)" ) \ - PORT_DIPSETTING( 0x04, "128KB (PC-8801-02N x 1)" ) \ - PORT_DIPSETTING( 0x05, "256KB (PC-8801-02N x 2)" ) \ - PORT_DIPSETTING( 0x06, "512KB (PC-8801-02N x 4)" ) \ - PORT_DIPSETTING( 0x07, "1M (PIO-8234H-1M x 1)" ) \ - PORT_DIPSETTING( 0x08, "2M (PIO-8234H-2M x 1)" ) \ - PORT_DIPSETTING( 0x09, "4M (PIO-8234H-2M x 2)" ) \ - PORT_DIPSETTING( 0x0a, "8M (PIO-8234H-2M x 4)" ) \ - PORT_DIPSETTING( 0x0b, "1.1M (PIO-8234H-1M x 1 + PC-8801-02N x 1)" ) \ - PORT_DIPSETTING( 0x0c, "2.1M (PIO-8234H-2M x 1 + PC-8801-02N x 1)" ) \ - PORT_DIPSETTING( 0x0d, "4.1M (PIO-8234H-2M x 2 + PC-8801-02N x 1)" ) - -#define DUMMY_ROW \ - PORT_START \ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - - -INPUT_PORTS_START( pc88sr ) - /* [0] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 0") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 1") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 2") PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 3") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 4") PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 5") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 6") PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 7") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) - - /* [1] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 8") PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad 9") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad *") PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad +") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad =") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) /* BAD */ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad ,") PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK)) /* BAD */ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad .") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("pad return") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13) - - /* [2] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('~') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') - - /* [3] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - - /* [4] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - - /* [5] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('[') PORT_CHAR('{') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(']') PORT_CHAR('}') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - - /* [6] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - - /* [7] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(" _") PORT_CODE(KEYCODE_END) PORT_CHAR(0) PORT_CHAR('_') - - /* [8] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOME/CLR") PORT_CODE(KEYCODE_HOME) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INS/DEL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_INSERT) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRPH") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("KANA") PORT_CODE(KEYCODE_SCRLOCK) /* BAD */ PORT_TOGGLE - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) - - /* [9] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) /* BAD */ PORT_CHAR(UCHAR_MAMEKEY(F3)) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) /* BAD */ PORT_CHAR(UCHAR_MAMEKEY(F4)) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27 /* BAD */) - - /* [10] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9 /* BAD */) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HELP") PORT_CODE(KEYCODE_END) PORT_CODE(CODE_NONE /* BAD? */) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COPY") PORT_CODE(KEYCODE_PRTSCR) PORT_CODE(CODE_NONE /* BAD? */) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR('-') - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHAR('/') - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CODE(CODE_NONE /* BAD? */) PORT_TOGGLE - - /* [11] */ - PORT_START - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ROLL UP") PORT_CODE(KEYCODE_PGUP) PORT_CODE(CODE_NONE /* BAD? */) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ROLL DOWN") PORT_CODE(KEYCODE_PGDN) PORT_CODE(CODE_NONE /* BAD? */) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - DUMMY_ROW /* port 0x0c */ \ - DUMMY_ROW /* port 0x0d */ \ - DUMMY_ROW /* port 0x0e */ \ - DUMMY_ROW /* port 0x0f */ - - PORT_START /* EXSWITCH */ - SW_V1V2N - SW_HS - SW_4MHZ_ONLY - SW_SERIAL - - PORT_START /* DIP-SW1 */ - DIPSW_1_1 - DIPSW_1_2 - DIPSW_1_3 - DIPSW_1_4 - DIPSW_1_5 - DIPSW_1_6 - DIPSW_1_7 - - PORT_START /* DIP-SW2 */ - DIPSW_2_1 - DIPSW_2_2 - DIPSW_2_3 - DIPSW_2_4 - DIPSW_2_5 - DIPSW_2_6 - DIPSW_2_7 - DIPSW_2_8 - - PORT_START /* extension memory setting */ - SW_EXTMEM - -INPUT_PORTS_END - - -ADDRESS_MAP_START( pc8801_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x5fff) AM_RAMBANK(1) - AM_RANGE(0x6000, 0x7fff) AM_RAMBANK(2) - AM_RANGE(0x8000, 0x83ff) AM_RAMBANK(3) - AM_RANGE(0x8400, 0xbfff) AM_RAMBANK(4) - AM_RANGE(0xc000, 0xefff) AM_RAMBANK(5) - AM_RANGE(0xf000, 0xffff) AM_RAMBANK(6) -ADDRESS_MAP_END - -ADDRESS_MAP_START( pc88sr_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00, 0x00) AM_READ( input_port_0_r ) /* keyboard */ - AM_RANGE(0x01, 0x01) AM_READ( input_port_1_r ) /* keyboard */ - AM_RANGE(0x02, 0x02) AM_READ( input_port_2_r ) /* keyboard */ - AM_RANGE(0x03, 0x03) AM_READ( input_port_3_r ) /* keyboard */ - AM_RANGE(0x04, 0x04) AM_READ( input_port_4_r ) /* keyboard */ - AM_RANGE(0x05, 0x05) AM_READ( input_port_5_r ) /* keyboard */ - AM_RANGE(0x06, 0x06) AM_READ( input_port_6_r ) /* keyboard */ - AM_RANGE(0x07, 0x07) AM_READ( input_port_7_r ) /* keyboard */ - AM_RANGE(0x08, 0x08) AM_READ( input_port_8_r ) /* keyboard */ - AM_RANGE(0x09, 0x09) AM_READ( input_port_9_r ) /* keyboard */ - AM_RANGE(0x0a, 0x0a) AM_READ( input_port_10_r ) /* keyboard */ - AM_RANGE(0x0b, 0x0b) AM_READ( input_port_11_r ) /* keyboard */ - AM_RANGE(0x0c, 0x0c) AM_READ( input_port_12_r ) /* keyboard */ - AM_RANGE(0x0d, 0x0d) AM_READ( input_port_13_r ) /* keyboard */ - AM_RANGE(0x0e, 0x0e) AM_READ( input_port_14_r ) /* keyboard */ - AM_RANGE(0x0f, 0x0f) AM_READ( input_port_15_r ) /* keyboard */ - AM_RANGE(0x10, 0x10) AM_WRITE( pc8801_calender ) /* printer and clock and UOP3 */ - AM_RANGE(0x20, 0x21) AM_NOP /* RS-232C and cassette (not yet) */ - AM_RANGE(0x30, 0x30) AM_READWRITE( pc88sr_inport_30, pc88sr_outport_30 ) /* DIP-SW1 */ - AM_RANGE(0x31, 0x31) AM_READWRITE( pc88sr_inport_31, pc88sr_outport_31 ) /* DIP-SW2 */ - AM_RANGE(0x32, 0x32) AM_READWRITE( pc88sr_inport_32, pc88sr_outport_32 ) - AM_RANGE(0x34, 0x35) AM_WRITE( pc88sr_ALU ) - AM_RANGE(0x40, 0x40) AM_READWRITE( pc88sr_inport_40, pc88sr_outport_40 ) - AM_RANGE(0x44, 0x44) AM_READWRITE( YM2203_status_port_0_r, YM2203_control_port_0_w ) - AM_RANGE(0x45, 0x45) AM_READWRITE( YM2203_read_port_0_r, YM2203_write_port_0_w ) - AM_RANGE(0x46, 0x47) AM_NOP /* OPNA extra port (not yet) */ - AM_RANGE(0x50, 0x51) AM_READWRITE( pc8801_crtc_read, pc8801_crtc_write ) - AM_RANGE(0x52, 0x5b) AM_WRITE( pc8801_palette_out ) - AM_RANGE(0x5c, 0x5c) AM_READ( pc8801_vramtest ) - AM_RANGE(0x5c, 0x5f) AM_WRITE( pc8801_vramsel ) - AM_RANGE(0x60, 0x68) AM_READWRITE( pc8801_dmac_read, pc8801_dmac_write ) - AM_RANGE(0x6e, 0x6e) AM_NOP /* CPU clock info (not yet) */ - AM_RANGE(0x6f, 0x6f) AM_NOP /* RS-232C speed ctrl (not yet) */ - AM_RANGE(0x70, 0x70) AM_READWRITE( pc8801_inport_70, pc8801_outport_70 ) - AM_RANGE(0x71, 0x71) AM_READWRITE( pc88sr_inport_71, pc88sr_outport_71 ) - AM_RANGE(0x78, 0x78) AM_WRITE( pc8801_outport_78 ) /* text window increment */ - AM_RANGE(0x90, 0x9f) AM_NOP /* CD-ROM (unknown -- not yet) */ - AM_RANGE(0xa0, 0xa3) AM_NOP /* music & network (unknown -- not yet) */ - AM_RANGE(0xa8, 0xad) AM_NOP /* second sound board (not yet) */ - AM_RANGE(0xb4, 0xb5) AM_NOP /* Video art board (unknown -- not yet) */ - AM_RANGE(0xc1, 0xc1) AM_NOP /* (unknown -- not yet) */ - AM_RANGE(0xc2, 0xcf) AM_NOP /* music (unknown -- not yet) */ - AM_RANGE(0xd0, 0xd7) AM_NOP /* music & GP-IB (unknown -- not yet) */ - AM_RANGE(0xd8, 0xd8) AM_NOP /* GP-IB (unknown -- not yet) */ - AM_RANGE(0xdc, 0xdf) AM_NOP /* MODEM (unknown -- not yet) */ - AM_RANGE(0xe2, 0xe3) AM_READWRITE( pc8801_read_extmem, pc8801_write_extmem ) /* expand RAM select */ - AM_RANGE(0xe4, 0xe4) AM_WRITE( pc8801_write_interrupt_level ) - AM_RANGE(0xe6, 0xe6) AM_WRITE( pc8801_write_interrupt_mask ) - AM_RANGE(0xe7, 0xe7) AM_NOP /* (unknown -- not yet) */ - AM_RANGE(0xe8, 0xeb) AM_READWRITE( pc8801_read_kanji1, pc8801_write_kanji1 ) - AM_RANGE(0xec, 0xed) AM_READWRITE( pc8801_read_kanji2, pc8801_write_kanji2 ) /* JIS level2 Kanji ROM */ - AM_RANGE(0xf0, 0xf1) AM_NOP /* Kana to Kanji dictionary ROM select (not yet) */ - AM_RANGE(0xf3, 0xf3) AM_NOP /* DMA floppy (unknown -- not yet) */ - AM_RANGE(0xf4, 0xf7) AM_NOP /* DMA 5'floppy (may be not released) */ - AM_RANGE(0xf8, 0xfb) AM_NOP /* DMA 8'floppy (unknown -- not yet) */ - AM_RANGE(0xfc, 0xff) AM_READWRITE( ppi8255_0_r, ppi8255_0_w ) -ADDRESS_MAP_END - -static INTERRUPT_GEN( pc8801fd_interrupt ) -{ -} - -ADDRESS_MAP_START( pc8801fd_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x07ff) AM_ROM - AM_RANGE( 0x4000, 0x7fff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START( pc8801fd_io , ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0xf8, 0xf8) AM_READ( pc8801fd_nec765_tc ) - AM_RANGE(0xfa, 0xfa) AM_READ( nec765_status_r ) - AM_RANGE(0xfb, 0xfb) AM_READWRITE( nec765_data_r, nec765_data_w ) - AM_RANGE(0xfc, 0xff) AM_READWRITE( ppi8255_1_r, ppi8255_1_w ) -ADDRESS_MAP_END - -ROM_START (pc88srl) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD ("n80.rom", 0x00000, 0x8000, CRC(27e1857d) SHA1(5b922ed9de07d2a729bdf1da7b57c50ddf08809a)) - ROM_LOAD ("n88.rom", 0x08000, 0x8000, CRC(a0fc0473) SHA1(3b31fc68fa7f47b21c1a1cb027b86b9e87afbfff)) - ROM_LOAD ("n88_0.rom", 0x10000, 0x2000, CRC(710a63ec) SHA1(d239c26ad7ac5efac6e947b0e9549b1534aa970d)) - ROM_LOAD ("n88_1.rom", 0x12000, 0x2000, CRC(c0bd2aa6) SHA1(8528eef7946edf6501a6ccb1f416b60c64efac7c)) - ROM_LOAD ("n88_2.rom", 0x14000, 0x2000, CRC(af2b6efa) SHA1(b7c8bcea219b77d9cc3ee0efafe343cc307425d1)) - ROM_LOAD ("n88_3.rom", 0x16000, 0x2000, CRC(7713c519) SHA1(efce0b51cab9f0da6cf68507757f1245a2867a72)) - ROM_REGION(0x10000,REGION_CPU2,0) - ROM_LOAD ("disk.rom", 0x0000, 0x0800, CRC(2158d307) SHA1(bb7103a0818850a039c67ff666a31ce49a8d516f)) - ROM_REGION(0x40000,REGION_GFX1,0) - ROM_LOAD ("kanji1.rom", 0x00000, 0x20000, CRC(6178bd43) SHA1(82e11a177af6a5091dd67f50a2f4bafda84d6556)) - ROM_LOAD ("kanji2.rom", 0x20000, 0x20000, CRC(154803cc) SHA1(7e6591cd465cbb35d6d3446c5a83b46d30fafe95)) -ROM_END - -ROM_START (pc88srh) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD ("n80.rom", 0x00000, 0x8000, CRC(27e1857d) SHA1(5b922ed9de07d2a729bdf1da7b57c50ddf08809a)) - ROM_LOAD ("n88.rom", 0x08000, 0x8000, CRC(a0fc0473) SHA1(3b31fc68fa7f47b21c1a1cb027b86b9e87afbfff)) - ROM_LOAD ("n88_0.rom", 0x10000, 0x2000, CRC(710a63ec) SHA1(d239c26ad7ac5efac6e947b0e9549b1534aa970d)) - ROM_LOAD ("n88_1.rom", 0x12000, 0x2000, CRC(c0bd2aa6) SHA1(8528eef7946edf6501a6ccb1f416b60c64efac7c)) - ROM_LOAD ("n88_2.rom", 0x14000, 0x2000, CRC(af2b6efa) SHA1(b7c8bcea219b77d9cc3ee0efafe343cc307425d1)) - ROM_LOAD ("n88_3.rom", 0x16000, 0x2000, CRC(7713c519) SHA1(efce0b51cab9f0da6cf68507757f1245a2867a72)) - ROM_REGION(0x10000,REGION_CPU2,0) - ROM_LOAD ("disk.rom", 0x0000, 0x0800, CRC(2158d307) SHA1(bb7103a0818850a039c67ff666a31ce49a8d516f)) - ROM_REGION(0x40000,REGION_GFX1,0) - ROM_LOAD ("kanji1.rom", 0x00000, 0x20000, CRC(6178bd43) SHA1(82e11a177af6a5091dd67f50a2f4bafda84d6556)) - ROM_LOAD ("kanji2.rom", 0x20000, 0x20000, CRC(154803cc) SHA1(7e6591cd465cbb35d6d3446c5a83b46d30fafe95)) -ROM_END - -static READ8_HANDLER(opn_dummy_input){return 0xff;} - -static struct YM2203interface ym2203_interface = -{ - opn_dummy_input, - opn_dummy_input, - 0, - 0, - pc88sr_sound_interupt -}; - - -static MACHINE_DRIVER_START( pc88srl ) - /* basic machine hardware */ - - /* main CPU */ - MDRV_CPU_ADD_TAG("main", Z80, 4000000) /* 4 Mhz */ - MDRV_CPU_PROGRAM_MAP(pc8801_mem, 0) - MDRV_CPU_IO_MAP(pc88sr_io, 0) - MDRV_CPU_VBLANK_INT(pc8801_interrupt,1) - - /* sub CPU(5 inch floppy drive) */ - MDRV_CPU_ADD_TAG("sub", Z80, 4000000) /* 4 Mhz */ - MDRV_CPU_PROGRAM_MAP(pc8801fd_mem, 0) - MDRV_CPU_IO_MAP(pc8801fd_io, 0) - MDRV_CPU_VBLANK_INT(pc8801fd_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(5000) - - MDRV_MACHINE_RESET( pc88srl ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - /*MDRV_ASPECT_RATIO(8,5)*/ - MDRV_SCREEN_SIZE(640, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) - MDRV_GFXDECODE( gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(18) - MDRV_COLORTABLE_LENGTH(32) - MDRV_PALETTE_INIT( pc8801 ) - - MDRV_VIDEO_START(pc8801) - MDRV_VIDEO_UPDATE(pc8801) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(YM2203, 3993600) - MDRV_SOUND_CONFIG(ym2203_interface) /* Should be accurate */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MDRV_SOUND_ADD(BEEP, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pc88srh ) - MDRV_IMPORT_FROM( pc88srl ) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_INTERLEAVE(6000) - - MDRV_MACHINE_RESET( pc88srh ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - /*MDRV_ASPECT_RATIO(8, 5)*/ - MDRV_SCREEN_SIZE(640, 400) - MDRV_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) -MACHINE_DRIVER_END - -static void pc88_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_d88image_floppy; break; - case DEVINFO_PTR_LOAD: info->load = device_load_d88image_floppy; break; - case DEVINFO_PTR_STATUS: /* info->status = floppy_status; */ break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "d88"); break; - } -} - -SYSTEM_CONFIG_START(pc88) - CONFIG_DEVICE(pc88_floppy_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1985, pc88srl, 0, 0, pc88srl, pc88sr, 0, pc88, "Nippon Electronic Company", "PC-8801 MKIISR (Lores display, VSYNC 15KHz)", 0 ) -COMP( 1985, pc88srh, pc88srl, 0, pc88srh, pc88sr, 0, pc88, "Nippon Electronic Company", "PC-8801 MKIISR (Hires display, VSYNC 24KHz)", 0 ) diff --git a/mess/systems/pce.c b/mess/systems/pce.c deleted file mode 100644 index ad24ce77b..000000000 --- a/mess/systems/pce.c +++ /dev/null @@ -1,364 +0,0 @@ -/**************************************************************************** - - PC-Engine / Turbo Grafx 16 driver - by Charles Mac Donald - E-Mail: cgfm2@hooked.net - - Thanks to David Shadoff and Brian McPhail for help with the driver. - -****************************************************************************/ - -/********************************************************************** - To-Do List: -- convert h6280-based drivers to internal memory map for the I/O region -- test sprite collision and overflow interrupts -- sprite precaching -- fix RCR interrupt -- rewrite the base renderer loop -- Add CD support -- SuperGrafix Driver -- Banking for SF2 (and others?) -- Add 6 button joystick support -- Add 263 line mode -- Sprite DMA should use vdc VRAM functions -**********************************************************************/ - -/********************************************************************** - Known Bugs -*********************************************************************** -- Afterburner 2 crashes: RTI to BRK, BRK vector -> BRK -- TV Sports games freeze. -- Adventure Island black screens: v-blank as pulse, not assert? -- Street Fighter 2: missing letter on title screen -- Deep Blue: missing graphics -- Aero Blasters: no title screen -- Darius Plus: locks up because of PC wrapping? -- Cyber Knight: bad graphics -- Rastan Saga 2: bad graphics -- Ankuku Densetsu: graphics flake out during intro -- Racing Damashii: windows lose borders, track misaligned -- Violent Soldier: corruption on title screen -**********************************************************************/ - -#include - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/vdc.h" -#include "cpu/h6280/h6280.h" -#include "includes/pce.h" -#include "devices/cartslot.h" -#include "sound/c6280.h" -#include "hash.h" - -static INTERRUPT_GEN( pce_interrupt ) -{ - int ret = 0; - - /* bump current scanline */ - vdc.curline = (vdc.curline + 1) % VDC_LPF; - vdc.current_segment_line++; - - if(vdc.curline==0) - { - //state is now in the VDS region, nothing even tries to draw here. - vdc.top_blanking=(vdc.vdc_data[VPR].b.l&0x1F)+1; - vdc.top_overscan=(vdc.vdc_data[VPR].b.h)+2; - vdc.current_bitmap_line=0; - vdc.current_segment=STATE_TOPBLANK; - vdc.current_segment_line=0; - vdc.active_lines = vdc.physical_height = 1 + ( vdc.vdc_data[VDW].w & 0x01FF ); - vdc.bottomfill=vdc.vdc_data[VCR].b.l; - } - - switch(vdc.current_segment) - { - case STATE_TOPBLANK: - { - if(vdc.current_segment_line == vdc.top_blanking) - { - vdc.current_segment=STATE_TOPFILL; - vdc.current_segment_line=0; - } - break; - } - case STATE_TOPFILL: - { - if(vdc.current_segment_line == vdc.top_overscan) - { - vdc.current_segment=STATE_ACTIVE; - vdc.current_segment_line=0; - vdc.y_scroll = vdc.vdc_data[BYR].w; - } - break; - } - case STATE_ACTIVE: - { - if(vdc.current_segment_line == vdc.active_lines) - { - vdc.current_segment_line=0; - if(vdc.bottomfill != 0) - { - vdc.current_segment=STATE_BOTTOMFILL; - vdc.status |= VDC_VD; - if(vdc.vdc_data[CR].w & CR_VR) - { - - ret = 1; - } - - /* do VRAM > SATB DMA if the enable bit is set or the DVSSR reg. was written to */ - if((vdc.vdc_data[DCR].w & DCR_DSR) || vdc.dvssr_write) - { - if(vdc.dvssr_write) vdc.dvssr_write = 0; - memcpy(&vdc.sprite_ram, &vdc.vram[vdc.vdc_data[DVSSR].w<<1], 512); - vdc.status |= VDC_DS; /* set satb done flag */ - - /* generate interrupt if needed */ - if(vdc.vdc_data[DCR].w & DCR_DSC) - ret = 1; - } - - } - else vdc.current_segment=STATE_TOPBLANK; - } - break; - } - case STATE_BOTTOMFILL: - { - if(vdc.current_segment_line == vdc.bottomfill) - { - vdc.current_segment_line=0; - vdc.current_segment=STATE_TOPBLANK; - } - break; - } - - default:break; - } - - /* draw a line of the display */ - if(vdc.curline >= FIRST_VISIBLE && vdc.curline < (LAST_VISIBLE)) - { - switch(vdc.current_segment) - { - default: - draw_black_line(vdc.current_bitmap_line); - break; - case STATE_TOPFILL: - case STATE_BOTTOMFILL: - draw_overscan_line(vdc.current_bitmap_line); - break; - case STATE_ACTIVE: - pce_refresh_line(vdc.current_bitmap_line, vdc.current_segment_line); - break; - } - vdc.current_bitmap_line++; - } - else - { - //rendering can take place here, but it's never on screen! - switch(vdc.current_segment) - { - default: - draw_black_line(243); - break; - case STATE_TOPFILL: - case STATE_BOTTOMFILL: - draw_overscan_line(243); - break; - case STATE_ACTIVE: - pce_refresh_line(243, vdc.current_segment_line); - break; - } - } - - - /* generate interrupt on line compare if necessary */ - if(vdc.vdc_data[CR].w & CR_RC) - if(vdc.curline == (((vdc.vdc_data[RCR].w-64)+vdc.top_blanking+vdc.top_overscan)%263)) - { - vdc.status |= VDC_RR; - ret = 1; - } - - /* handle frame events */ - if(vdc.curline == 261 && vdc.current_segment != STATE_BOTTOMFILL) - { - vdc.status |= VDC_VD; /* set vblank flag */ - - /* do VRAM > SATB DMA if the enable bit is set or the DVSSR reg. was written to */ - if((vdc.vdc_data[DCR].w & DCR_DSR) || vdc.dvssr_write) - { - if(vdc.dvssr_write) vdc.dvssr_write = 0; -#ifdef MAME_DEBUG - assert(((vdc.vdc_data[DVSSR].w<<1) + 512) <= 0x10000); -#endif - memcpy(&vdc.sprite_ram, &vdc.vram[vdc.vdc_data[DVSSR].w<<1], 512); - vdc.status |= VDC_DS; /* set satb done flag */ - - /* generate interrupt if needed */ - if(vdc.vdc_data[DCR].w & DCR_DSC) - { - ret = 1; - } - } - - if(vdc.vdc_data[CR].w & CR_VR) /* generate IRQ1 if enabled */ - { - ret = 1; - } - } - if (ret) - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -ADDRESS_MAP_START( pce_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x000000, 0x1EDFFF) AM_ROM - AM_RANGE( 0x1EE000, 0x1EFFFF) AM_RAM - AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000) AM_BASE( &pce_user_ram ) - AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_r, vdc_w ) - AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE( vce_r, vce_w ) - AM_RANGE( 0x1FE800, 0x1FEBFF) AM_READWRITE( C6280_r, C6280_0_w ) - AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_READWRITE( H6280_timer_r, H6280_timer_w ) - AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE( pce_joystick_r, pce_joystick_w ) - AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( H6280_irq_status_r, H6280_irq_status_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( pce_io , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_r, vdc_w ) -ADDRESS_MAP_END - -/* todo: alternate forms of input (multitap, mouse, etc.) */ -INPUT_PORTS_START( pce ) - - PORT_START /* Player 1 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* button I */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* button II */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* select */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* run */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) -#if 0 - PORT_START /* Fake dipswitches for system config */ - PORT_DIPNAME( 0x01, 0x01, "Console type") - PORT_DIPSETTING( 0x00, "Turbo-Grafx 16") - PORT_DIPSETTING( 0x01, "PC-Engine") - - PORT_DIPNAME( 0x01, 0x01, "Joystick type") - PORT_DIPSETTING( 0x00, "2 Button") - PORT_DIPSETTING( 0x01, "6 Button") -#endif -INPUT_PORTS_END - - -#if 0 -static gfx_layout pce_bg_layout = -{ - 8, 8, - 2048, - 4, - {0x00*8, 0x01*8, 0x10*8, 0x11*8 }, - {0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 }, - 32*8, -}; - -static gfx_layout pce_obj_layout = -{ - 16, 16, - 512, - 4, - {0x00*8, 0x20*8, 0x40*8, 0x60*8}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 128*8, -}; - -static gfx_decode pce_gfxdecodeinfo[] = -{ - { 1, 0x0000, &pce_bg_layout, 0, 0x10 }, - { 1, 0x0000, &pce_obj_layout, 0x100, 0x10 }, - {-1} -}; -#endif - - -static MACHINE_DRIVER_START( pce ) - /* basic machine hardware */ - MDRV_CPU_ADD(H6280, 7195090) - MDRV_CPU_PROGRAM_MAP(pce_mem, 0) - MDRV_CPU_IO_MAP(pce_io, 0) - MDRV_CPU_VBLANK_INT(pce_interrupt, VDC_LPF) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(45*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 45*8-1, 0*8, 32*8-1) - /* MDRV_GFXDECODE( pce_gfxdecodeinfo ) */ - MDRV_PALETTE_LENGTH(512) - MDRV_COLORTABLE_LENGTH(512) - - MDRV_VIDEO_START( pce ) - MDRV_VIDEO_UPDATE( pce ) - - MDRV_NVRAM_HANDLER( pce ) - MDRV_SPEAKER_STANDARD_STEREO("left","right") - MDRV_SOUND_ADD(C6280, 21477270/6) - MDRV_SOUND_ROUTE(0, "left", 1.00) - MDRV_SOUND_ROUTE(1, "right", 1.00) -MACHINE_DRIVER_END - -static void pce_partialhash(char *dest, const unsigned char *data, - unsigned long length, unsigned int functions) -{ - if ( ( length <= PCE_HEADER_SIZE ) || ( length & PCE_HEADER_SIZE ) ) { - hash_compute(dest, &data[PCE_HEADER_SIZE], length - PCE_HEADER_SIZE, functions); - } else { - hash_compute(dest, data, length, functions); - } -} - -static void pce_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_pce_cart; break; - case DEVINFO_PTR_PARTIAL_HASH: info->partialhash = pce_partialhash; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "pce"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(pce) - CONFIG_DEVICE(pce_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -#define rom_pce NULL -#define rom_tg16 NULL - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1987, pce, 0, 0, pce, pce, pce, pce, "Nippon Electronic Company", "PC Engine", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -CONS( 1989, tg16, pce, 0, pce, pce, tg16, pce, "Nippon Electronic Company", "TurboGrafx 16", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) - diff --git a/mess/systems/pdp1.c b/mess/systems/pdp1.c deleted file mode 100644 index 59863abdb..000000000 --- a/mess/systems/pdp1.c +++ /dev/null @@ -1,513 +0,0 @@ -/* - -Driver for a PDP1 emulator. - - Digital Equipment Corporation - Brian Silverman (original Java Source) - Vadim Gerasimov (original Java Source) - Chris Salomon (MESS driver) - Raphael Nabet (MESS driver) - -Initially, this was a conversion of a JAVA emulator -(although code has been edited extensively ever since). -I have tried contacting the author, but heard as yet nothing of him, -so I don't know if it all right with him, but after all -> he did -release the source, so hopefully everything will be fine (no his -name is not Marat). - -Note: naturally I have no PDP1, I have never seen one, nor have I any -programs for it. - -The first supported program was: - -SPACEWAR! - -The first Videogame EVER! - -When I saw the java emulator, running that game I was quite intrigued to -include a driver for MESS. -I think the historical value of SPACEWAR! is enormous. - -Two other programs are supported: Munching squares and LISP. - -Added Debugging and Disassembler... - - -Also: -ftp://minnie.cs.adfa.oz.au/pub/PDP-11/Sims/Supnik_2.3/software/lispswre.tar.gz -Is a packet which includes the original LISP as source and -binary form plus a makro assembler for PDP1 programs. - -For more documentation look at the source for the driver, -and the cpu/pdp1/pdp1.c file (information about the whereabouts of information -and the java source). - -*/ - -#include - -#include "driver.h" - -#include "cpu/pdp1/pdp1.h" -#include "includes/pdp1.h" -#include "vidhrdw/crt.h" - -/* - * - * The loading storing OS... is not emulated (I haven't a clue where to - * get programs for the machine) - * - */ - - - - - -/* every memory handler is the same for now */ - -/* note: MEMORY HANDLERS used everywhere, since we don't need bytes, we - * need 18 bit words, the handler functions return integers, so it should - * be all right to use them. - * This gives sometimes IO warnings! - */ -#ifdef SUPPORT_ODD_WORD_SIZES -#define pdp1_read_mem MRA32_RAM -#define pdp1_write_mem MWA32_RAM -#endif -static ADDRESS_MAP_START(pdp1_map, ADDRESS_SPACE_PROGRAM, 32) -#if 0 - AM_RANGE(0x0000, 0xffff) AM_READWRITE(pdp1_read_mem, pdp1_write_mem) -#else - AM_RANGE(0x00000, 0x3ffff) AM_READWRITE(pdp1_read_mem, pdp1_write_mem) -#endif -ADDRESS_MAP_END - - -INPUT_PORTS_START( pdp1 ) - - PORT_START /* 0: spacewar controllers */ - PORT_BIT( ROTATE_LEFT_PLAYER1, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("Spin Left Player 1") PORT_CODE(KEYCODE_A) PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT( ROTATE_RIGHT_PLAYER1, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("Spin Right Player 1") PORT_CODE(KEYCODE_S) PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT( THRUST_PLAYER1, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Thrust Player 1") PORT_CODE(KEYCODE_D) PORT_CODE(JOYCODE_1_BUTTON1) - PORT_BIT( FIRE_PLAYER1, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Fire Player 1") PORT_CODE(KEYCODE_F) PORT_CODE(JOYCODE_1_BUTTON2) - PORT_BIT( ROTATE_LEFT_PLAYER2, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("Spin Left Player 2") PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_2_LEFT ) PORT_PLAYER(2) - PORT_BIT( ROTATE_RIGHT_PLAYER2, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("Spin Right Player 2") PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_2_RIGHT ) PORT_PLAYER(2) - PORT_BIT( THRUST_PLAYER2, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Thrust Player 2") PORT_CODE(KEYCODE_UP) PORT_CODE(JOYCODE_2_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( FIRE_PLAYER2, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Fire Player 2") PORT_CODE(KEYCODE_DOWN) PORT_CODE(JOYCODE_2_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( HSPACE_PLAYER1, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hyperspace Player 1") PORT_CODE(KEYCODE_Z) PORT_CODE(JOYCODE_1_BUTTON3) - PORT_BIT( HSPACE_PLAYER2, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Hyperspace Player 2") PORT_CODE(KEYCODE_SLASH) PORT_CODE(JOYCODE_2_BUTTON3 ) PORT_PLAYER(2) - - PORT_START /* 1: various pdp1 operator control panel switches */ - PORT_BIT(pdp1_control, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("control panel key") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(pdp1_extend, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("extend") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(pdp1_start_nobrk, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("start (sequence break disabled)") PORT_CODE(KEYCODE_U) - PORT_BIT(pdp1_start_brk, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("start (sequence break enabled)") PORT_CODE(KEYCODE_I) - PORT_BIT(pdp1_stop, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("stop") PORT_CODE(KEYCODE_O) - PORT_BIT(pdp1_continue, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("continue") PORT_CODE(KEYCODE_P) - PORT_BIT(pdp1_examine, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("examine") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(pdp1_deposit, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("deposit") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(pdp1_read_in, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("read in") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(pdp1_reader, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("reader") - PORT_BIT(pdp1_tape_feed, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("tape feed") - PORT_BIT(pdp1_single_step, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("single step") PORT_CODE(KEYCODE_STOP) - PORT_BIT(pdp1_single_inst, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("single inst") PORT_CODE(KEYCODE_SLASH) - - PORT_START /* 2: operator control panel sense switches */ - PORT_DIPNAME( 040, 000, "Sense Switch 1") PORT_CODE(KEYCODE_1_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 040, DEF_STR( On ) ) - PORT_DIPNAME( 020, 000, "Sense Switch 2") PORT_CODE(KEYCODE_2_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 020, DEF_STR( On ) ) - PORT_DIPNAME( 010, 000, "Sense Switch 3") PORT_CODE(KEYCODE_3_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 010, DEF_STR( On ) ) - PORT_DIPNAME( 004, 000, "Sense Switch 4") PORT_CODE(KEYCODE_4_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 004, DEF_STR( On ) ) - PORT_DIPNAME( 002, 002, "Sense Switch 5") PORT_CODE(KEYCODE_5_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 002, DEF_STR( On ) ) - PORT_DIPNAME( 001, 000, "Sense Switch 6") PORT_CODE(KEYCODE_6_PAD) - PORT_DIPSETTING( 000, DEF_STR( Off ) ) - PORT_DIPSETTING( 001, DEF_STR( On ) ) - - PORT_START /* 3: operator control panel test address switches */ - PORT_BIT( 0100000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Extension Test Address Switch 3") PORT_CODE(KEYCODE_1) - PORT_BIT( 0040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Extension Test Address Switch 4") PORT_CODE(KEYCODE_2) - PORT_BIT( 0020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Extension Test Address Switch 5") PORT_CODE(KEYCODE_3) - PORT_BIT( 0010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Extension Test Address Switch 6") PORT_CODE(KEYCODE_4) - PORT_BIT( 0004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 7") PORT_CODE(KEYCODE_5) - PORT_BIT( 0002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 8") PORT_CODE(KEYCODE_6) - PORT_BIT( 0001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 9") PORT_CODE(KEYCODE_7) - PORT_BIT( 0000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 10") PORT_CODE(KEYCODE_8) - PORT_BIT( 0000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 11") PORT_CODE(KEYCODE_9) - PORT_BIT( 0000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 12") PORT_CODE(KEYCODE_0) - PORT_BIT( 0000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 13") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 14") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 15") PORT_CODE(KEYCODE_Q) - PORT_BIT( 0000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 16") PORT_CODE(KEYCODE_W) - PORT_BIT( 0000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 17") PORT_CODE(KEYCODE_E) - PORT_BIT( 0000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Address Switch 18") PORT_CODE(KEYCODE_R) - - PORT_START /* 4: operator control panel test word switches MSB */ - PORT_BIT( 0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 1") PORT_CODE(KEYCODE_A) - PORT_BIT( 0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 2") PORT_CODE(KEYCODE_S) - - PORT_START /* 5: operator control panel test word switches LSB */ - PORT_BIT( 0100000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 3") PORT_CODE(KEYCODE_D) - PORT_BIT( 0040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 4") PORT_CODE(KEYCODE_F) - PORT_BIT( 0020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 5") PORT_CODE(KEYCODE_G) - PORT_BIT( 0010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 6") PORT_CODE(KEYCODE_H) - PORT_BIT( 0004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 7") PORT_CODE(KEYCODE_J) - PORT_BIT( 0002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 8") PORT_CODE(KEYCODE_K) - PORT_BIT( 0001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 9") PORT_CODE(KEYCODE_L) - PORT_BIT( 0000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 10") PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 11") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 12") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 13") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 14") PORT_CODE(KEYCODE_X) - PORT_BIT( 0000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 15") PORT_CODE(KEYCODE_C) - PORT_BIT( 0000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 16") PORT_CODE(KEYCODE_V) - PORT_BIT( 0000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 17") PORT_CODE(KEYCODE_B) - PORT_BIT( 0000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Test Word Switch 18") PORT_CODE(KEYCODE_N) - - /* - Note that I can see 2 additional keys whose purpose is unknown to me. - The caps look like "MAR REL" for the leftmost one and "MAR SET" for - rightmost one: maybe they were used to set the margin (I don't have the - manual for the typewriter). - */ - PORT_START /* 6: typewriter codes 00-17 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Space)") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 \"") PORT_CODE(KEYCODE_1) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 '") PORT_CODE(KEYCODE_2) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 ~") PORT_CODE(KEYCODE_3) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 (implies)") PORT_CODE(KEYCODE_4) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 (or)") PORT_CODE(KEYCODE_5) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 (and)") PORT_CODE(KEYCODE_6) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 <") PORT_CODE(KEYCODE_7) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 >") PORT_CODE(KEYCODE_8) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (up arrow)") PORT_CODE(KEYCODE_9) - - PORT_START /* 7: typewriter codes 20-37 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 (right arrow)") PORT_CODE(KEYCODE_0) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", =") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab Key") PORT_CODE(KEYCODE_TAB) - - PORT_START /* 8: typewriter codes 40-57 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing middle dot) _") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- +") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(") ]") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing overstrike) |") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("( [") PORT_CODE(KEYCODE_MINUS) - - PORT_START /* 9: typewriter codes 60-77 */ - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Lower Case") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". (multiply)") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Upper case") PORT_CODE(KEYCODE_RSHIFT) - /* hack to support my macintosh which does not differentiate the Right Shift key */ - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Upper case") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) - - PORT_START /* 10: pseudo-input port with config */ - PORT_BIT( 0x0003, 0x0002, IPT_DIPSWITCH_NAME) PORT_NAME("RAM size") - PORT_DIPSETTING( 0x0000, "4kw" ) - PORT_DIPSETTING( 0x0001, "32kw") - PORT_DIPSETTING( 0x0002, "64kw") - PORT_BIT( 0x0004, 0x0000, IPT_DIPSWITCH_NAME) PORT_NAME("Hardware multiply") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( On ) ) - PORT_BIT( 0x0008, 0x0000, IPT_DIPSWITCH_NAME) PORT_NAME("Hardware divide") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - PORT_BIT( 0x0010, 0x0000, IPT_DIPSWITCH_NAME) PORT_NAME("Type 20 sequence break system") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, "Type 32 light pen") PORT_CODE(KEYCODE_ENTER_PAD) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - - PORT_START /* 11: pseudo-input port with lightpen status */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("select larger light pen tip") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("select smaller light pen tip") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("light pen down") - - PORT_START /* 12: lightpen - X AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) PORT_RESET - - PORT_START /* 13: lightpen - Y AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) PORT_RESET - - -INPUT_PORTS_END - - -static gfx_layout fontlayout = -{ - 6, 8, /* 6*8 characters */ - pdp1_charnum, /* 96+4 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* straightforward layout */ - { 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 gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &fontlayout, 0, 3 }, - { -1 } /* end of array */ -}; - - -/* - The static palette only includes the pens for the control panel and - the typewriter, as the CRT palette is generated dynamically. - - The CRT palette defines various levels of intensity between white and - black. Grey levels follow an exponential law, so that decrementing the - color index periodically will simulate the remanence of a cathode ray tube. -*/ -static const UINT8 palette[] = -{ - 0xFF,0xFF,0xFF, /* white */ - 0x00,0xFF,0x00, /* green */ - 0x00,0x40,0x00, /* dark green */ - 0xFF,0x00,0x00, /* red */ - 0x80,0x80,0x80 /* light gray */ -}; - -static const UINT16 pdp1_colortable[] = -{ - pen_panel_bg, pen_panel_caption, - pen_typewriter_bg, pen_black, - pen_typewriter_bg, pen_red -}; - -/* Initialise the palette */ -static PALETTE_INIT( pdp1 ) -{ - /* rgb components for the two color emissions */ - const double r1 = .1, g1 = .1, b1 = .924, r2 = .7, g2 = .7, b2 = .076; - /* half period in seconds for the two color emissions */ - const double half_period_1 = .05, half_period_2 = .20; - /* refresh period in seconds */ - const double update_period = 1./refresh_rate; - double decay_1, decay_2; - double cur_level_1, cur_level_2; - int i; - int r, g, b; - - - /* initialize CRT palette */ - - /* compute the decay factor per refresh frame */ - decay_1 = pow(.5, update_period / half_period_1); - decay_2 = pow(.5, update_period / half_period_2); - - cur_level_1 = cur_level_2 = 255.; /* start with maximum level */ - - for (i=pen_crt_max_intensity; i>0; i--) - { - /* compute the current color */ - r = (int) ((r1*cur_level_1 + r2*cur_level_2) + .5); - g = (int) ((g1*cur_level_1 + g2*cur_level_2) + .5); - b = (int) ((b1*cur_level_1 + b2*cur_level_2) + .5); - /* write color in palette */ - palette_set_color(machine, i, r, g, b); - /* apply decay for next iteration */ - cur_level_1 *= decay_1; - cur_level_2 *= decay_2; - } - - palette_set_color(machine, 0, 0, 0, 0); - - /* load static palette */ - palette_set_colors(machine, pen_crt_num_levels, palette, sizeof(palette) / sizeof(palette[0]) / 3); - - memcpy(colortable, pdp1_colortable, sizeof(pdp1_colortable)); -} - - -pdp1_reset_param_t pdp1_reset_param = -{ - { /* external iot handlers. NULL means that the iot is unimplemented, unless there are - parentheses around the iot name, in which case the iot is internal to the cpu core. */ - /* I put a ? when the source is the handbook, since a) I have used the maintainance manual - as the primary source (as it goes more into details) b) the handbook and the maintainance - manual occasionnally contradict each other. */ - /* dia, dba, dcc, dra are documented in MIT PDP-1 COMPUTER MODIFICATION - BULLETIN no. 2 (drumInstrWriteup.bin/drumInstrWriteup.txt), and are - similar to IOT documented in Parallel Drum Type 23 Instruction Manual. */ - /* (iot) rpa rpb tyo tyi ppa ppb dpy */ - NULL, iot_rpa, iot_rpb, iot_tyo, iot_tyi, iot_ppa, iot_ppb, iot_dpy, - /* spacewar */ - NULL, iot_011, NULL, NULL, NULL, NULL, NULL, NULL, - /* lag glf?/jsp? gpl?/gpr?/gcf? */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - /* rrb rcb? rcc? cks mcs mes mel */ - iot_rrb, NULL, NULL, iot_cks, NULL, NULL, NULL, NULL, - /* cad? rac? rbc? pac lpr/lfb/lsp swc/sci/sdf?/shr? scv? */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - /* (dsc) (asc) (isb) (cac) (lsm) (esm) (cbs) */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - /* icv? dia dba dcc dra mri|rlc? mrf/inr?/ccr? */ - NULL, iot_dia, iot_dba, iot_dcc, iot_dra, NULL, NULL, NULL, - /* mcb|dur? mwc|mtf? mrc|sfc?... msm|cgo? (eem/lem) mic muf */ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - }, - pdp1_tape_read_binary, - pdp1_io_sc_callback, - 0, /* extend mode support defined in input ports and pdp1_init_machine */ - 0, /* hardware multiply/divide support defined in input ports and pdp1_init_machine */ - 0 /* type 20 sequence break system support defined in input ports and pdp1_init_machine */ -}; - - -static MACHINE_DRIVER_START(pdp1) - - /* basic machine hardware */ - /* PDP1 CPU @ 200 kHz (no master clock, but the instruction and memory rate is 200 kHz) */ - MDRV_CPU_ADD(PDP1, 1000000/*the CPU core uses microsecond counts*/) - MDRV_CPU_CONFIG(pdp1_reset_param) - MDRV_CPU_PROGRAM_MAP(pdp1_map, 0) - MDRV_CPU_VBLANK_INT(pdp1_interrupt, 1) /* dummy interrupt: handles input */ - - MDRV_SCREEN_REFRESH_RATE(refresh_rate) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START( pdp1 ) - - /* video hardware (includes the control panel and typewriter output) */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(virtual_width, virtual_height) - MDRV_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(pen_crt_num_levels + (sizeof(palette) / sizeof(palette[0]) / 3)) - MDRV_COLORTABLE_LENGTH(sizeof(pdp1_colortable) / sizeof(pdp1_colortable[0])) - - MDRV_PALETTE_INIT(pdp1) - MDRV_VIDEO_START(pdp1) - MDRV_VIDEO_EOF(crt) - MDRV_VIDEO_UPDATE(pdp1) -MACHINE_DRIVER_END - -/* - pdp1 can address up to 65336 18 bit words when extended (4096 otherwise). -*/ -ROM_START(pdp1) - ROM_REGION(pdp1_fontdata_size, REGION_GFX1, 0) - /* space filled with our font */ -ROM_END - -static void pdp1_punchtape_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* punchtape */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PUNCHTAPE; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_pdp1_tape; break; - case DEVINFO_PTR_LOAD: info->load = device_load_pdp1_tape; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_pdp1_tape; break; - case DEVINFO_PTR_GET_DISPOSITIONS: info->getdispositions = pdp1_get_open_mode; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap,rim"); break; - } -} - -static void pdp1_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PRINTER; break; - case DEVINFO_INT_READABLE: info->i = 0; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_pdp1_typewriter; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_pdp1_typewriter; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "typ"); break; - } -} - -static void pdp1_cylinder_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cylinder */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CYLINDER; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_pdp1_drum; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_pdp1_drum; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "drm"); break; - } -} - -SYSTEM_CONFIG_START(pdp1) - /*CONFIG_RAM_DEFAULT(4 * 1024) - CONFIG_RAM(32 * 1024) - CONFIG_RAM(64 * 1024)*/ - CONFIG_DEVICE(pdp1_punchtape_getinfo) - CONFIG_DEVICE(pdp1_printer_getinfo) - CONFIG_DEVICE(pdp1_cylinder_getinfo) -SYSTEM_CONFIG_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1961, pdp1, 0, 0, pdp1, pdp1, 0, pdp1, "Digital Equipment Corporation", "PDP-1" , 0) diff --git a/mess/systems/pet.c b/mess/systems/pet.c deleted file mode 100644 index 2854f5e71..000000000 --- a/mess/systems/pet.c +++ /dev/null @@ -1,1015 +0,0 @@ -/*************************************************************************** - commodore pet series computer - - PeT mess@utanet.at - - documentation - vice emulator - www.funet.fi - andre fachat (vice emulator, docu, web site, excellent keyboard pictures) - -***************************************************************************/ - -/* -PET 2000 Series:Renamed to CBM 20XX, XX = RAM, when Philips forbid PET use. - Most CBM renamed units powered up in lowercase and had a - different keyboard config, while the PET machines booted in - uppercase. B and N notation alternately put after RAM amount - in name (PET 2001B-32 = PET 2001-32B) - Black (B) or Blue (N) Trim, 9" (9) or 12" (2) screen, - Built-In Cassette with Chiclet Keys (C), - Business Style Keyboard with No Graphics on Keys (K), or - Home Computer with Number Keys and Graphics on Keys (H), - Green/White screen (G) or Black/White screen (W) -* PET 2001-4K 4kB, CB GP -* PET 2001-8K 8kB, CN9 GP -* PET 2001-8C 8kB, CN9W, SN#0620733, No "WAIT 6502,X" GL -* PET 2001-8C 8kB, CB9G, SN#0629836, No "WAIT 6502,X" GL - PET 2001-16K 16kB, CN9 - PET 2001-32K 32kB, CN9 - PET 2001B-8 8kB, K2 - PET 2001B-16 16kB, K2 - PET 2001B-32 32kB, BK9W, boots in lowercase RB - PET 2001B-32 32kB, K2 - PET 2001N-8 8kB, H2 -* PET 2001N-16 16kB, H9 CH - PET 2001N-16 16kB, H2 -* PET 2001N-32 32kB, H, BASIC 4.0, CS -* PET 2001NT Teacher's PET. Same as 2001N, just rebadged -* MDS 6500 Modified 2001N-32 with matching 2040 drive. 500 made. GP - -CBM 3000 Series: 40 Col. Screen, BASIC 2.0-2.3, Same Board as Thin 4000 - 3001 series in Germany were just 2001's with big Keyboard. -* CBM 3008 8kB, 9" Screen. EG -* CBM 3016 16kB -* CBM 3032 32kB. SL - -CBM 4000 Thin Series: 9" Screen, 40 Column Only, Basic 4.0. -CBM 4000 Fat Series: 12" Screen, Upgradeable to 80 Column, When upgraded - to 80 Columns, the systems were 8000's. - CBM 4004 4kB, One Piece. -* CBM 4008 8kB, One Piece. SF -* CBM 4016 16kB, One Piece. KK -* CBM 4032 32kB, One Piece JB -* CBM 4064 Educator 64 in 40XX case. green screen (no Fat option) GP -CBM 8000 Series:12" Screen, 80 Column, BASIC 4.0 - SK means "SoftKey", or "Separated Keyboard" All -SK and d - units were enclosed in CBM 700/B series HP cases. - CBM 8008 8kB, One Piece - CBM 8016 16kB, One Piece -* CBM 8032 32kB, One Piece GP -* CBM 8032-32 B 8032 in Higher Profile case (HP). Could install LP drives. GP -* CBM 8032 SK 32kB, Detached Keyboard, SK = SoftKey or Separated Keyboard.EG - CBM 8096 96kB, 8032 with 64kB ram card -* CBM 8096 SK 96kB, Detached Keyboard. -* CBM 8096d 8096 + 8250LP SL -* CBM 8296 128kB, Detached Keyboard, Brown like 64, LOS-96 OS TL -* CBM 8296d 8296 + 8250LP SL -* "CASSIE" Synergistics Inc. rebadged 8032 AH - -SuperPet Series:Sold in Germany as MMF (MicroMainFrame) 9000 - Machines sold in Italy had 134kB of RAM. -* CBM SP9000 Dual uP 6502/6809, 96kB RAM, business keyboard. GP - -CBM 200 Series -* CBM 200 CBM 8032 SK VM - CBM 210 ??? -* CBM 220 CBM 8096 SK - - - -basically 3 types of motherboards -no crtc (only 60 hz?) -crtc 40 columns ( 50 or 60 hz ) -crtc 80 columns ( 60 or 60 hz ) -(board version able to do 40 and 80 columns) - -3 types of basic roms -basic 1 (only 40 columns, no crtc, with graphics) -basic 2 (only 40 columns version, no crtc) -basic 4 - -2 types of keyboard and roms -normal (with graphic) (80 columns versions only by 3 parties) -business -different mapping/system roms! - -state ------ -keyboard -no sound (were available) -no tape drives -no ieee488 interface - no floppy disk support -quickloader - -Keys ----- -Some PC-Keyboards does not behave well when special two or more keys are -pressed at the same time -(with my keyboard printscreen clears the pressed pause key!) - -when problems start with -log and look into error.log file - */ - -#include "driver.h" - -#define VERBOSE_DBG 0 -#include "includes/cbm.h" -#include "machine/6821pia.h" -#include "machine/6522via.h" -#include "vidhrdw/generic.h" -#include "includes/pet.h" -#include "includes/crtc6845.h" -#include "includes/cbmserb.h" -#include "includes/cbmieeeb.h" -/*#include "includes/vc1541.h" */ - -static ADDRESS_MAP_START(pet_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size ) - AM_RANGE(0xa000, 0xe7ff) AM_ROM - AM_RANGE(0xe810, 0xe813) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xe820, 0xe823) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0xe840, 0xe84f) AM_READWRITE(via_0_r, via_0_w) -/* {0xe900, 0xe91f, cbm_ieee_state }, // for debugging */ - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pet40_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size ) - AM_RANGE(0xa000, 0xe7ff) AM_ROM - AM_RANGE(0xe810, 0xe813) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xe820, 0xe823) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0xe840, 0xe84f) AM_READWRITE(via_0_r, via_0_w) - AM_RANGE(0xe880, 0xe881) AM_READWRITE(crtc6845_0_port_r, crtc6845_0_port_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pet80_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x8000, 0x8fff) AM_RAMBANK(1) - AM_RANGE(0x9000, 0x9fff) AM_RAMBANK(2) - AM_RANGE(0xa000, 0xafff) AM_RAMBANK(3) - AM_RANGE(0xb000, 0xbfff) AM_RAMBANK(4) - AM_RANGE(0xc000, 0xe7ff) AM_RAMBANK(6) -#if 1 - AM_RANGE(0xe800, 0xefff) AM_RAMBANK(7) -#else - AM_RANGE(0xe810, 0xe813) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xe820, 0xe823) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0xe840, 0xe84f) AM_READWRITE(via_0_r, via_0_w) - AM_RANGE(0xe880, 0xe881) AM_READWRITE(crtc6845_0_port_r, crtc6845_0_port_w) -#endif - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_BANK8) - AM_RANGE(0xf000, 0xffef) AM_WRITE(MWA8_BANK8) - AM_RANGE(0xfff1, 0xffff) AM_WRITE(MWA8_BANK9) -ADDRESS_MAP_END - - -/* 0xe880 crtc - 0xefe0 6702 encoder - 0xeff0 acia6551 - - 0xeff8 super pet system latch -61432 SuperPET system latch - bit 0 1=6502, 0=6809 - bit 1 0=read only - bit 3 diagnostic sense: set to 1 to switch to 6502 - -61436 SuperPET bank select latch - bit 0-3 bank - bit 7 1=enable system latch - -*/ -static ADDRESS_MAP_START( superpet_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x7fff) AM_RAM AM_SHARE(1) AM_BASE(&pet_memory) - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE(2) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xa000, 0xe7ff) AM_ROM - AM_RANGE(0xe810, 0xe813) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xe820, 0xe823) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0xe840, 0xe84f) AM_READWRITE(via_0_r, via_0_w) - AM_RANGE(0xe880, 0xe881) AM_READWRITE(crtc6845_0_port_r, crtc6845_0_port_w) - /* 0xefe0, 0xefe3, mos 6702 */ - /* 0xeff0, 0xeff3, acia6551 */ - AM_RANGE(0xeff8, 0xefff) AM_READWRITE(superpet_r, superpet_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( superpet_m6809_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x7fff) AM_RAM AM_SHARE(1) /* same memory as m6502 */ - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE(2) /* same memory as m6502 */ - AM_RANGE(0x9000, 0x9fff) AM_RAMBANK(1) /* 64 kbyte ram turned in */ - AM_RANGE(0xa000, 0xe7ff) AM_ROM - AM_RANGE(0xe810, 0xe813) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0xe820, 0xe823) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0xe840, 0xe84f) AM_READWRITE(via_0_r, via_0_w) - AM_RANGE(0xe880, 0xe881) AM_READWRITE(crtc6845_0_port_r, crtc6845_0_port_w) - AM_RANGE(0xeff8, 0xefff) AM_READWRITE(superpet_r, superpet_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -#define DIPS_HELPER(bit, name, keycode) \ - PORT_BIT(bit, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(name) PORT_CODE(keycode) - -#define PET_KEYBOARD \ - PORT_START \ - DIPS_HELPER( 0x8000, "At", KEYCODE_TILDE)\ - DIPS_HELPER( 0x4000, "!", KEYCODE_1)\ - DIPS_HELPER( 0x2000, "\"", KEYCODE_2)\ - DIPS_HELPER( 0x1000, "#", KEYCODE_3)\ - DIPS_HELPER( 0x0800, "$", KEYCODE_4)\ - DIPS_HELPER( 0x0400, "%", KEYCODE_5)\ - DIPS_HELPER( 0x0200, "'", KEYCODE_6)\ - DIPS_HELPER( 0x0100, "&", KEYCODE_7)\ - DIPS_HELPER( 0x0080, "\\", KEYCODE_8)\ - DIPS_HELPER( 0x0040, "(", KEYCODE_9)\ - DIPS_HELPER( 0x0020, ")", KEYCODE_0)\ - DIPS_HELPER( 0x0010, "Arrow-Left", KEYCODE_MINUS)\ - DIPS_HELPER( 0x0008, "[", KEYCODE_EQUALS)\ - DIPS_HELPER( 0x0004, "]", KEYCODE_BACKSPACE)\ - DIPS_HELPER( 0x0002, "RVS OFF", KEYCODE_TAB)\ - DIPS_HELPER( 0x0001, "Q", KEYCODE_Q)\ - PORT_START \ - DIPS_HELPER( 0x8000, "W", KEYCODE_W)\ - DIPS_HELPER( 0x4000, "E", KEYCODE_E)\ - DIPS_HELPER( 0x2000, "R", KEYCODE_R)\ - DIPS_HELPER( 0x1000, "T", KEYCODE_T)\ - DIPS_HELPER( 0x0800, "Y", KEYCODE_Y)\ - DIPS_HELPER( 0x0400, "U", KEYCODE_U)\ - DIPS_HELPER( 0x0200, "I", KEYCODE_I)\ - DIPS_HELPER( 0x0100, "O", KEYCODE_O)\ - DIPS_HELPER( 0x0080, "P", KEYCODE_P)\ - DIPS_HELPER( 0x0040, "Arrow-Up Pi", KEYCODE_OPENBRACE)\ - DIPS_HELPER( 0x0020, "<", KEYCODE_CLOSEBRACE)\ - DIPS_HELPER( 0x0010, ">", KEYCODE_BACKSLASH)\ - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(left shift)SHIFT-LOCK (switch)") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE\ - DIPS_HELPER( 0x0004, "A", KEYCODE_A)\ - DIPS_HELPER( 0x0002, "S", KEYCODE_S)\ - DIPS_HELPER( 0x0001, "D", KEYCODE_D)\ - PORT_START \ - DIPS_HELPER( 0x8000, "F", KEYCODE_F)\ - DIPS_HELPER( 0x4000, "G", KEYCODE_G)\ - DIPS_HELPER( 0x2000, "H", KEYCODE_H)\ - DIPS_HELPER( 0x1000, "J", KEYCODE_J)\ - DIPS_HELPER( 0x0800, "K", KEYCODE_K)\ - DIPS_HELPER( 0x0400, "L", KEYCODE_L)\ - DIPS_HELPER( 0x0200, ":", KEYCODE_COLON)\ - DIPS_HELPER( 0x0100, "STOP RUN", KEYCODE_QUOTE)\ - DIPS_HELPER( 0x0080, "RETURN",KEYCODE_ENTER)\ - DIPS_HELPER( 0x0040, "Left-Shift", KEYCODE_LSHIFT)\ - DIPS_HELPER( 0x0020, "Z", KEYCODE_Z)\ - DIPS_HELPER( 0x0010, "X", KEYCODE_X)\ - DIPS_HELPER( 0x0008, "C", KEYCODE_C)\ - DIPS_HELPER( 0x0004, "V", KEYCODE_V)\ - DIPS_HELPER( 0x0002, "B", KEYCODE_B)\ - DIPS_HELPER( 0x0001, "N", KEYCODE_N)\ - PORT_START \ - DIPS_HELPER( 0x8000, "M", KEYCODE_M)\ - DIPS_HELPER( 0x4000, ",", KEYCODE_COMMA)\ - DIPS_HELPER( 0x2000, ";", KEYCODE_STOP)\ - DIPS_HELPER( 0x1000, "?", KEYCODE_SLASH)\ - DIPS_HELPER( 0x0800, "Right-Shift", KEYCODE_RSHIFT)\ - DIPS_HELPER( 0x0400, "Space", KEYCODE_SPACE)\ - DIPS_HELPER( 0x0200, "HOME CLR", KEYCODE_HOME)\ - DIPS_HELPER( 0x0100, "DOWN UP", KEYCODE_DOWN)\ - DIPS_HELPER( 0x0080, "RIGHT LEFT", KEYCODE_RIGHT)\ - DIPS_HELPER( 0x0040, "DEL INST", KEYCODE_DEL)\ - DIPS_HELPER( 0x0020, "NUM 7", KEYCODE_7_PAD)\ - DIPS_HELPER( 0x0010, "NUM 8", KEYCODE_8_PAD)\ - DIPS_HELPER( 0x0008, "NUM 9", KEYCODE_9_PAD)\ - DIPS_HELPER( 0x0004, "NUM /", KEYCODE_SLASH_PAD)\ - DIPS_HELPER( 0x0002, "NUM 4", KEYCODE_4_PAD)\ - DIPS_HELPER( 0x0001, "NUM 5", KEYCODE_5_PAD)\ - PORT_START \ - DIPS_HELPER( 0x8000, "NUM 6", KEYCODE_6_PAD)\ - DIPS_HELPER( 0x4000, "NUM *", KEYCODE_ASTERISK)\ - DIPS_HELPER( 0x2000, "NUM 1", KEYCODE_1_PAD)\ - DIPS_HELPER( 0x1000, "NUM 2", KEYCODE_2_PAD)\ - DIPS_HELPER( 0x0800, "NUM 3", KEYCODE_3_PAD)\ - DIPS_HELPER( 0x0400, "NUM +", KEYCODE_PLUS_PAD)\ - DIPS_HELPER( 0x0200, "NUM 0", KEYCODE_0_PAD)\ - DIPS_HELPER( 0x0100, "NUM .", KEYCODE_DEL_PAD)\ - DIPS_HELPER( 0x0080, "NUM -", KEYCODE_MINUS_PAD)\ - DIPS_HELPER( 0x0040, "NUM =", KEYCODE_ENTER_PAD)\ - DIPS_HELPER( 0x0020, "(right-shift cursor-down)Special CRSR Up", KEYCODE_UP)\ - DIPS_HELPER( 0x0010, "(right-shift cursor-right)Special CRSR Left", KEYCODE_LEFT)\ - -#define PET_B_KEYBOARD \ - PORT_START \ - DIPS_HELPER( 0x8000, "Arrow-Left", KEYCODE_TILDE)\ - DIPS_HELPER( 0x4000, "1 !", KEYCODE_1)\ - DIPS_HELPER( 0x2000, "2 \"", KEYCODE_2)\ - DIPS_HELPER( 0x1000, "3 #", KEYCODE_3)\ - DIPS_HELPER( 0x0800, "4 $", KEYCODE_4)\ - DIPS_HELPER( 0x0400, "5 %", KEYCODE_5)\ - DIPS_HELPER( 0x0200, "6 &", KEYCODE_6)\ - DIPS_HELPER( 0x0100, "7 '", KEYCODE_7)\ - DIPS_HELPER( 0x0080, "8 (", KEYCODE_8)\ - DIPS_HELPER( 0x0040, "9 )", KEYCODE_9)\ - DIPS_HELPER( 0x0020, "0", KEYCODE_0)\ - DIPS_HELPER( 0x0010, ": *", KEYCODE_MINUS)\ - DIPS_HELPER( 0x0008, "- =", KEYCODE_EQUALS)\ - DIPS_HELPER( 0x0004, "Arrow-Up", KEYCODE_BACKSPACE)\ - DIPS_HELPER( 0x0002, "CRSR RIGHT LEFT", KEYCODE_RIGHT)\ - DIPS_HELPER( 0x0001, "STOP RUN", KEYCODE_END)\ - PORT_START \ - DIPS_HELPER( 0x8000, "TAB", KEYCODE_TAB)\ - DIPS_HELPER( 0x4000, "Q", KEYCODE_Q)\ - DIPS_HELPER( 0x2000, "W", KEYCODE_W)\ - DIPS_HELPER( 0x1000, "E", KEYCODE_E)\ - DIPS_HELPER( 0x0800, "R", KEYCODE_R)\ - DIPS_HELPER( 0x0400, "T", KEYCODE_T)\ - DIPS_HELPER( 0x0200, "Y", KEYCODE_Y)\ - DIPS_HELPER( 0x0100, "U", KEYCODE_U)\ - DIPS_HELPER( 0x0080, "I", KEYCODE_I)\ - DIPS_HELPER( 0x0040, "O", KEYCODE_O)\ - DIPS_HELPER( 0x0020, "P", KEYCODE_P)\ - DIPS_HELPER( 0x0010, "[", KEYCODE_OPENBRACE)\ - DIPS_HELPER( 0x0008, "\\", KEYCODE_CLOSEBRACE)\ - DIPS_HELPER( 0x0004, "CRSR DOWN UP", KEYCODE_DOWN)\ - DIPS_HELPER( 0x0002, "DEL INST", KEYCODE_DEL)\ - DIPS_HELPER( 0x0001, "ESC",KEYCODE_ESC)\ - PORT_START \ - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(left shift)SHIFT-LOCK (switch)") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE\ - DIPS_HELPER( 0x4000, "A", KEYCODE_A)\ - DIPS_HELPER( 0x2000, "S", KEYCODE_S)\ - DIPS_HELPER( 0x1000, "D", KEYCODE_D)\ - DIPS_HELPER( 0x0800, "F", KEYCODE_F)\ - DIPS_HELPER( 0x0400, "G", KEYCODE_G)\ - DIPS_HELPER( 0x0200, "H", KEYCODE_H)\ - DIPS_HELPER( 0x0100, "J", KEYCODE_J)\ - DIPS_HELPER( 0x0080, "K", KEYCODE_K)\ - DIPS_HELPER( 0x0040, "L", KEYCODE_L)\ - DIPS_HELPER( 0x0020, "; +", KEYCODE_COLON)\ - DIPS_HELPER( 0x0010, "At", KEYCODE_QUOTE)\ - DIPS_HELPER( 0x0008, "]", KEYCODE_BACKSLASH)\ - DIPS_HELPER( 0x0004, "RETURN",KEYCODE_ENTER)\ - DIPS_HELPER( 0x0002, "RVS Off",KEYCODE_INSERT)\ - DIPS_HELPER( 0x0001, "Left-Shift", KEYCODE_LSHIFT)\ - PORT_START \ - DIPS_HELPER( 0x8000, "Z", KEYCODE_Z)\ - DIPS_HELPER( 0x4000, "X", KEYCODE_X)\ - DIPS_HELPER( 0x2000, "C", KEYCODE_C)\ - DIPS_HELPER( 0x1000, "V", KEYCODE_V)\ - DIPS_HELPER( 0x0800, "B", KEYCODE_B)\ - DIPS_HELPER( 0x0400, "N", KEYCODE_N)\ - DIPS_HELPER( 0x0200, "M", KEYCODE_M)\ - DIPS_HELPER( 0x0100, ", <", KEYCODE_COMMA)\ - DIPS_HELPER( 0x0080, ". >", KEYCODE_STOP)\ - DIPS_HELPER( 0x0040, "/ ?", KEYCODE_SLASH)\ - DIPS_HELPER( 0x0020, "Right-Shift", KEYCODE_RSHIFT)\ - DIPS_HELPER( 0x0010, "REPEAT", KEYCODE_LALT)\ - DIPS_HELPER( 0x0008, "HOME CLR", KEYCODE_HOME)\ - DIPS_HELPER( 0x0004, "Space", KEYCODE_SPACE)\ - DIPS_HELPER( 0x0002, "NUM 7", KEYCODE_7_PAD)\ - DIPS_HELPER( 0x0001, "NUM 8", KEYCODE_8_PAD)\ - PORT_START \ - DIPS_HELPER( 0x8000, "NUM 9", KEYCODE_9_PAD)\ - DIPS_HELPER( 0x4000, "NUM 4", KEYCODE_4_PAD)\ - DIPS_HELPER( 0x2000, "NUM 5", KEYCODE_5_PAD)\ - DIPS_HELPER( 0x1000, "NUM 6", KEYCODE_6_PAD)\ - DIPS_HELPER( 0x0800, "NUM 1", KEYCODE_1_PAD)\ - DIPS_HELPER( 0x0400, "NUM 2", KEYCODE_2_PAD)\ - DIPS_HELPER( 0x0200, "NUM 3", KEYCODE_3_PAD)\ - DIPS_HELPER( 0x0100, "NUM 0", KEYCODE_0_PAD)\ - DIPS_HELPER( 0x0080, "NUM .", KEYCODE_DEL_PAD)\ - DIPS_HELPER( 0x0040, "(right-shift cursor-down)Special CRSR Up", KEYCODE_UP)\ - DIPS_HELPER( 0x0020, "(right-shift cursor-right)Special CRSR Left", KEYCODE_LEFT)\ - -INPUT_PORTS_START (pet) - PET_KEYBOARD - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x000, IPT_UNUSED) /* normal keyboard/bios */ - PORT_DIPNAME ( 0x180, 0x180, "Memory") - PORT_DIPSETTING( 0, "4KByte" ) - PORT_DIPSETTING( 0x80, "8KByte" ) - PORT_DIPSETTING( 0x100, "16KByte" ) - PORT_DIPSETTING( 0x180, "32KByte" ) - PORT_BIT (8, 0, IPT_UNUSED) /* no 8096 hardware */ - PORT_BIT (4, 0, IPT_UNUSED) /* no superpet switch */ - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START (petb) - PET_B_KEYBOARD - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x200, IPT_UNUSED) /* business keyboard/bios */ - PORT_DIPNAME ( 0x180, 0x180, "Memory") - PORT_DIPSETTING( 0, "4KByte" ) - PORT_DIPSETTING( 0x80, "8KByte" ) - PORT_DIPSETTING( 0x100, "16KByte" ) - PORT_DIPSETTING( 0x180, "32KByte" ) - PORT_BIT (8, 0, IPT_UNUSED) /* no 8096 hardware */ - PORT_BIT (4, 0, IPT_UNUSED) /* no superpet switch */ - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START (cbm8096) - PET_B_KEYBOARD - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x200, IPT_UNUSED) /* business keyboard/bios */ - PORT_BIT (0x180, 0x180, IPT_UNUSED) /* 32 kb Memory */ - PORT_DIPNAME ( 0x08, 0x08, "CBM8096, 8296 Expansion Memory") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x08, DEF_STR( Yes ) ) - PORT_BIT (4, 0, IPT_UNUSED) /* no superpet switch */ - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START (superpet) - PET_B_KEYBOARD - PORT_START - DIPS_HELPER( 0x8000, "Quickload", KEYCODE_F8) -#ifdef PET_TEST_CODE - PORT_DIPNAME ( 0x4000, 0x4000, "Tape Drive/Device 1") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x4000, DEF_STR( On ) ) - PORT_DIPNAME ( 0x2000, 0x00, " Tape Sound") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING(0x2000, DEF_STR( On ) ) - DIPS_HELPER( 0x1000, "Tape Drive Play", KEYCODE_F5) - DIPS_HELPER( 0x0800, "Tape Drive Record", KEYCODE_F6) - DIPS_HELPER( 0x0400, "Tape Drive Stop", KEYCODE_F7) -#endif - PORT_BIT (0x200, 0x200, IPT_UNUSED) /* business keyboard/bios */ - PORT_BIT (0x180, 0x180, IPT_UNUSED) /* 32KByte */ - PORT_BIT (8, 0, IPT_UNUSED) /* no 8096 hardware */ - PORT_DIPNAME ( 4, 4, "CPU Select") - PORT_DIPSETTING( 0, "M6502" ) - PORT_DIPSETTING( 4, "M6809" ) - PORT_DIPNAME ( 0x02, 0x02, "IEEE488 Bus/Dev 8/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING(0x02, DEF_STR( Yes ) ) - PORT_DIPNAME ( 0x01, 0x00, "IEEE488 Bus/Dev 9/Floppy Sim") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 1, DEF_STR( Yes ) ) -INPUT_PORTS_END - -unsigned char pet_palette[] = -{ - 0,0,0, /* black */ - 0,0x80,0, /* green */ -}; - -static unsigned short pet_colortable[][2] = { - { 0, 1 }, - /* reverse */ - { 1, 0 } -}; - -static gfx_layout pet_charlayout = -{ - 8,8, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,1,2,3,4,5,6,7 }, - /* y offsets */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - }, - 8*8 -}; - -static gfx_layout pet80_charlayout = -{ - 8,16, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,1,2,3,4,5,6,7 }, - /* y offsets */ - { - 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 - }, - 8*16 -}; - -static gfx_decode pet_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &pet_charlayout, 0, 1 }, - { REGION_GFX1, 0x0800, &pet_charlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static gfx_decode pet80_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &pet80_charlayout, 0, 1 }, - { REGION_GFX1, 0x1000, &pet80_charlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static gfx_decode superpet_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &pet80_charlayout, 0, 1 }, - { REGION_GFX1, 0x1000, &pet80_charlayout, 0, 1 }, - { REGION_GFX1, 0x2000, &pet80_charlayout, 0, 1 }, - { REGION_GFX1, 0x3000, &pet80_charlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static PALETTE_INIT( pet ) -{ - palette_set_colors(machine, 0, pet_palette, sizeof(pet_palette) / 3); - memcpy(colortable, pet_colortable, sizeof(colortable)); -} - -/* basic 1 */ -ROM_START (pet) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901447.09", 0xc000, 0x800, CRC(03cf16d0) SHA1(1330580c0614d3556a389da4649488ba04a60908)) - ROM_LOAD ("901447.02", 0xc800, 0x800, CRC(69fd8a8f) SHA1(70c0f4fa67a70995b168668c957c3fcf2c8641bd)) - ROM_LOAD ("901447.03", 0xd000, 0x800, CRC(d349f2d4) SHA1(4bf2c20c51a63d213886957485ebef336bb803d0)) - ROM_LOAD ("901447.04", 0xd800, 0x800, CRC(850544eb) SHA1(d293972d529023d8fd1f493149e4777b5c253a69)) - ROM_LOAD ("901447.05", 0xe000, 0x800, CRC(9e1c5cea) SHA1(f02f5fb492ba93dbbd390f24c10f7a832dec432a)) - ROM_LOAD ("901447.06", 0xf000, 0x800, CRC(661a814a) SHA1(960717282878e7de893d87242ddf9d1512be162e)) - ROM_LOAD ("901447.07", 0xf800, 0x800, CRC(c4f47ad1) SHA1(d440f2510bc52e20c3d6bc8b9ded9cea7f462a9c)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.08", 0x0000, 0x800, CRC(54f32f45) SHA1(3e067cc621e4beafca2b90cb8f6dba975df2855b)) -ROM_END - -/* basic 2 */ -ROM_START (pet2) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.01", 0xc000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44)) - ROM_LOAD ("901465.02", 0xd000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac)) - ROM_LOAD ("901447.24", 0xe000, 0x800, CRC(e459ab32) SHA1(5e5502ce32f5a7e387d65efe058916282041e54b)) - ROM_LOAD ("901465.03", 0xf000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.08", 0x0000, 0x800, CRC(54f32f45) SHA1(3e067cc621e4beafca2b90cb8f6dba975df2855b)) -ROM_END - -/* basic 2 business */ -ROM_START (pet2b) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.01", 0xc000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44)) - ROM_LOAD ("901465.02", 0xd000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac)) - ROM_LOAD ("901474.01", 0xe000, 0x800, CRC(05db957e) SHA1(174ace3a8c0348cd21d39cc864e2adc58b0101a9)) - ROM_LOAD ("901465.03", 0xf000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.10", 0x0000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db)) -ROM_END - -/* basic 4 business */ -ROM_START (pet4b) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901474.02", 0xe000, 0x800, CRC(75ff4af7) SHA1(0ca5c4e8f532f914cb0bf86ea9900f20f0a655ce)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.10", 0x0000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db)) -ROM_END - -/* basic 4 crtc*/ -ROM_START (pet4) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901499.01", 0xe000, 0x800, CRC(5f85bdf8) SHA1(8cbf086c1ce4dfb2a2fe24c47476dfb878493dee)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.08", 0x0000, 0x800, CRC(54f32f45) SHA1(3e067cc621e4beafca2b90cb8f6dba975df2855b)) -ROM_END - -/* basic 4 crtc 50 hz */ -ROM_START (pet4pal) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901498.01", 0xe000, 0x800, CRC(3370e359) SHA1(05af284c914d53a52987b5f602466de75765f650)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x1000, REGION_GFX1, 0) - ROM_LOAD ("901447.08", 0x0000, 0x800, CRC(54f32f45) SHA1(3e067cc621e4beafca2b90cb8f6dba975df2855b)) -ROM_END - -/* basic 4 business 80 columns */ -ROM_START (pet80) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901474.03", 0xe000, 0x800, CRC(5674dd5e) SHA1(c605fa343fd77c73cbe1e0e9567e2f014f6e7e30)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901447.10", 0x0000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db)) -ROM_END - -/* basic 4 business 80 columns 50 hz */ -ROM_START (pet80pal) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901474.04", 0xe000, 0x800, CRC(abb000e7) SHA1(66887061b6c4ebef7d6efb90af9afd5e2c3b08ba)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901447.10", 0x0000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db)) -ROM_END - -ROM_START (cbm80ger) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("german.bin", 0xe000, 0x800, CRC(1c1e597d) SHA1(7ac75ed73832847623c9f4f197fe7fb1a73bb41c)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("chargen.de", 0x0000, 0x800, CRC(3bb8cb87) SHA1(a4f0df13473d7f9cd31fd62cfcab11318e2fb1dc)) -ROM_END - -ROM_START (cbm80swe) - ROM_REGION (0x20000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("editswe.bin", 0xe000, 0x800, CRC(75901dd7) SHA1(2ead0d83255a344a42bb786428353ca48d446d03)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x2000, REGION_GFX1, 0) - ROM_LOAD ("901447.14", 0x0000, 0x800, CRC(48c77d29) SHA1(aa7c8ff844d16ec05e2b32acc586c58d9e35388c)) -ROM_END - -ROM_START (superpet) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("901474.04", 0xe000, 0x800, CRC(abb000e7) SHA1(66887061b6c4ebef7d6efb90af9afd5e2c3b08ba)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x10000, REGION_CPU2, 0) - ROM_LOAD ("901898.01", 0xa000, 0x1000, CRC(728a998b) SHA1(0414b3ab847c8977eb05c2fcc72efcf2f9d92871)) - ROM_LOAD ("901898.02", 0xb000, 0x1000, CRC(6beb7c62) SHA1(df154939b934d0aeeb376813ec1ba0d43c2a3378)) - ROM_LOAD ("901898.03", 0xc000, 0x1000, CRC(5db4983d) SHA1(6c5b0cce97068f8841112ba6d5cd8e568b562fa3)) - ROM_LOAD ("901898.04", 0xd000, 0x1000, CRC(f55fc559) SHA1(b42a2050a319a1ffca7868a8d8d635fadd37ec37)) - ROM_LOAD ("901897.01", 0xe000, 0x800, CRC(b2cee903) SHA1(e8ce8347451a001214a5e71a13081b38b4be23bc)) - ROM_LOAD ("901898.05", 0xf000, 0x1000, CRC(f42df0cb) SHA1(9b4a5134d20345171e7303445f87c4e0b9addc96)) - ROM_REGION (0x4000, REGION_GFX1, 0) - ROM_LOAD ("901640.01", 0x0000, 0x1000, CRC(ee8229c4) SHA1(bf346f11595a3e65e55d6aeeaa2c0cec807b66c7)) -ROM_END - -/* swedish m6809 roms needed */ -ROM_START (mmf9000) - ROM_REGION (0x10000, REGION_CPU1, 0) - ROM_LOAD ("901465.23", 0xb000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc)) - ROM_LOAD ("901465.20", 0xc000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a)) - ROM_LOAD ("901465.21", 0xd000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8)) - ROM_LOAD ("editswe.bin", 0xe000, 0x800, CRC(75901dd7) SHA1(2ead0d83255a344a42bb786428353ca48d446d03)) - ROM_LOAD ("901465.22", 0xf000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806)) - ROM_REGION (0x20000, REGION_CPU2, 0) - ROM_LOAD ("901898.01", 0xa000, 0x1000, CRC(728a998b) SHA1(0414b3ab847c8977eb05c2fcc72efcf2f9d92871)) - ROM_LOAD ("901898.02", 0xb000, 0x1000, CRC(6beb7c62) SHA1(df154939b934d0aeeb376813ec1ba0d43c2a3378)) - ROM_LOAD ("901898.03", 0xc000, 0x1000, CRC(5db4983d) SHA1(6c5b0cce97068f8841112ba6d5cd8e568b562fa3)) - ROM_LOAD ("901898.04", 0xd000, 0x1000, CRC(f55fc559) SHA1(b42a2050a319a1ffca7868a8d8d635fadd37ec37)) - ROM_LOAD ("901897.01", 0xe000, 0x800, CRC(b2cee903) SHA1(e8ce8347451a001214a5e71a13081b38b4be23bc)) - ROM_LOAD ("901898.05", 0xf000, 0x1000, CRC(f42df0cb) SHA1(9b4a5134d20345171e7303445f87c4e0b9addc96)) - ROM_REGION (0x4000, REGION_GFX1, 0) - ROM_LOAD("charswe.bin", 0x0000, 0x1000, CRC(da1cd630)) -ROM_END - -#if 0 -/* in c16 and some other commodore machines: - cbm version in kernel at 0xff80 (offset 0x3f80) - 0x80 means pal version */ - - /* 901447-09 + 901447-02 + 901447-03 + 901447-04 */ - ROM_LOAD ("basic1", 0xc000, 0x2000, CRC(aff78300)) - /* same as 901439-01, maybe same as 6540-011 */ - ROM_LOAD ("rom-1-c000.901447-01.bin", 0xc000, 0x800, CRC(a055e33a)) - /* same as 901439-09, 6540-019 */ - ROM_LOAD ("rom-1-c000.901447-09.bin", 0xc000, 0x800, CRC(03cf16d0)) - /* same as 901439-05, 6540-012 */ - ROM_LOAD ("rom-1-c800.901447-02.bin", 0xc800, 0x800, CRC(69fd8a8f)) - /* same as 901439-02, 6540-013 */ - ROM_LOAD ("rom-1-d000.901447-03.bin", 0xd000, 0x800, CRC(d349f2d4)) - /* same as 901439-06, 6540-014 */ - ROM_LOAD ("rom-1-d800.901447-04.bin", 0xd800, 0x800, CRC(850544eb)) - - /* 901465-01 + 901465-02 */ - ROM_LOAD ("basic2", 0xc000, 0x2000, CRC(cf35e68b)) - /* 6540-020 + 6540-021 */ - ROM_LOAD ("basic-2-c000.901465-01.bin", 0xc000, 0x1000, CRC(63a7fe4a)) - /* 6540-022 + 6540-023 */ - ROM_LOAD ("basic-2-d000.901465-02.bin", 0xd000, 0x1000, CRC(ae4cb035)) - - /* 901465-23 901465-20 901465-21 */ - ROM_LOAD ("basic4", 0xb000, 0x3000, CRC(2a940f0a)) - ROM_LOAD ("basic-4-b000.901465-19.bin", 0xb000, 0x1000, CRC(3a5f5721)) - ROM_LOAD ("basic-4-b000.901465-23.bin", 0xb000, 0x1000, CRC(ae3deac0)) - ROM_LOAD ("basic-4-c000.901465-20.bin", 0xc000, 0x1000, CRC(0fc17b9c)) - ROM_LOAD ("basic-4-d000.901465-21.bin", 0xd000, 0x1000, CRC(36d91855)) - - /* same as 901439-03, 6540-015 */ - ROM_LOAD ("rom-1-e000.901447-05.bin", 0xe000, 0x800, CRC(9e1c5cea)) - - ROM_LOAD ("edit-2-b.901474-01.bin", 0xe000, 0x800, CRC(05db957e)) - /* same as 6540-024 */ - ROM_LOAD ("edit-2-n.901447-24.bin", 0xe000, 0x800, CRC(e459ab32)) - - ROM_LOAD ("edit-4-40-n-50hz.901498-01.bin", 0xe000, 0x800, CRC(3370e359)) - ROM_LOAD ("edit-4-40-n-60hz.901499-01.bin", 0xe000, 0x800, CRC(5f85bdf8)) - ROM_LOAD ("edit-4-b.901474-02.bin", 0xe000, 0x800, CRC(75ff4af7)) - - ROM_LOAD ("edit-4-80-b-60hz.901474-03.bin", 0xe000, 0x800, CRC(5674dd5e)) - /* week 36 year 81 */ - ROM_LOAD ("edit-4-80-b-50hz.901474-04-3681.bin", 0xe000, 0x800, CRC(c1ffca3a)) - ROM_LOAD ("edit-4-80-b-50hz.901474-04.bin", 0xe000, 0x800, CRC(abb000e7)) - ROM_LOAD ("edit-4-80-b-50hz.901474-04?.bin", 0xe000, 0x800, CRC(845a44e6)) - ROM_LOAD ("edit-4-80-b-50hz.german.bin", 0xe000, 0x800, CRC(1c1e597d)) - ROM_LOAD ("edit-4-80-b-50hz.swedish.bin", 0xe000, 0x800, CRC(75901dd7)) - - /* 901447-06 + 901447-07 */ - ROM_LOAD ("kernal1", 0xf000, 0x1000, CRC(f0186492)) - /* same as 901439-04, 6540-016 */ - ROM_LOAD ("rom-1-f000.901447-06.bin", 0xf000, 0x800, CRC(661a814a)) - /* same as 904139-07, 6540-018 */ - ROM_LOAD ("rom-1-f800.901447-07.bin", 0xf800, 0x800, CRC(c4f47ad1)) - - ROM_LOAD ("kernal-2.901465-03.bin", 0xf000, 0x1000, CRC(f02238e2)) - - ROM_LOAD ("kernal-4.901465-22.bin", 0xf000, 0x1000, CRC(cc5298a1)) - - /* graphics */ - /* 6540-010 = 901439-08 */ - - ROM_LOAD ("characters-1.901447-08.bin", 0x0000, 0x800, CRC(54f32f45)) - /* business */ - /* vice chargen */ - ROM_LOAD ("characters-2.901447-10.bin", 0x0000, 0x800, CRC(d8408674)) - ROM_LOAD ("chargen.de", 0x0000, 0x800, CRC(3bb8cb87)) - ROM_LOAD ("characters-hungarian.bin", 0x0000, 0x800, CRC(a02d8122)) - ROM_LOAD ("characters-swedish.901447-14.bin", 0x0000, 0x800, CRC(48c77d29)) - - ROM_LOAD ("", 0xe000, 0x800, CRC()) - - /* editor rom */ - ROM_LOAD ("Execudesk.bin", 0xe000, 0x1000, CRC(bef0eaa1)) - - ROM_LOAD ("PaperClip.bin", 0xa000, 0x1000, CRC(8fb11d4b)) - - /* superpet */ - ROM_LOAD ("waterloo-a000.901898-01.bin", 0xa000, 0x1000, CRC(728a998b)) - ROM_LOAD ("waterloo-b000.901898-02.bin", 0xb000, 0x1000, CRC(6beb7c62)) - ROM_LOAD ("waterloo-c000.901898-03.bin", 0xc000, 0x1000, CRC(5db4983d)) - ROM_LOAD ("waterloo-d000.901898-04.bin", 0xd000, 0x1000, CRC(f55fc559)) - ROM_LOAD ("waterloo-e000.901897-01.bin", 0xe000, 0x800, CRC(b2cee903)) - ROM_LOAD ("waterloo-f000.901898-05.bin", 0xf000, 0x1000, CRC(f42df0cb)) - /* 256 chars commodore pet, 256 chars ascii m6809 */ - ROM_LOAD ("characters.901640-01.bin", 0x0000, 0x1000, CRC(ee8229c4)) - /* 901447-14 and the 256 chars ascii from 901640-01 */ - ROM_LOAD ("characters.swedish.bin", 0x0000, 0x1000, CRC(da1cd630)) - - /* scrap */ - /* fixed bits */ - ROM_LOAD ("324878-01.bin", 0x?000, 0x2000, CRC(d262bacd)) - ROM_LOAD ("324878-02.bin", 0x?000, 0x2000, CRC(5e00476d)) -#endif - -static MACHINE_DRIVER_START( pet ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 7833600) /* 7.8336 Mhz */ - MDRV_CPU_PROGRAM_MAP(pet_mem, 0) - MDRV_CPU_VBLANK_INT(pet_frame_interrupt, 1) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(0) - - MDRV_MACHINE_RESET( pet ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 320 - 1, 0, 200 - 1) - MDRV_GFXDECODE( pet_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof (pet_palette) / sizeof (pet_palette[0]) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (pet_colortable) / sizeof(pet_colortable[0][0])) - MDRV_PALETTE_INIT( pet ) - - MDRV_VIDEO_START( generic ) - MDRV_VIDEO_UPDATE( pet ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pet40 ) - MDRV_IMPORT_FROM( pet ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( pet40_mem, 0 ) - MDRV_VIDEO_UPDATE( pet40 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pet40pal ) - MDRV_IMPORT_FROM( pet40 ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pet80 ) - MDRV_IMPORT_FROM( pet ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( pet80_mem, 0 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(640, 250) - MDRV_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 250 - 1) - MDRV_GFXDECODE( pet80_gfxdecodeinfo ) - MDRV_VIDEO_UPDATE( pet80 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pet80pal ) - MDRV_IMPORT_FROM( pet80 ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( superpet ) - MDRV_IMPORT_FROM( pet80 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( superpet_mem, 0 ) - - /* m6809 cpu */ - MDRV_CPU_ADD_TAG("main", M6809, 1000000) - MDRV_CPU_PROGRAM_MAP(superpet_m6809_mem, 0) - MDRV_CPU_VBLANK_INT(pet_frame_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(50) - - /* video hardware */ - MDRV_GFXDECODE( superpet_gfxdecodeinfo ) -MACHINE_DRIVER_END - -#define rom_cbm30 rom_pet2 -#define rom_cbm30 rom_pet2 -#define rom_cbm30b rom_pet2b -#define rom_cbm40 rom_pet4 -#define rom_cbm40pal rom_pet4pal -#define rom_cbm40b rom_pet4b -#define rom_cbm80 rom_pet80 -#define rom_cbm80pal rom_pet80pal - -static void pet_cbmcartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "crt,a0,b0"); break; - - default: cbmcartslot_device_getinfo(devclass, state, info); break; - } -} - -static void pet_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "p00,prg"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_cbm_pet; break; - - /* --- the following bits of info are returned as doubles --- */ - case DEVINFO_FLOAT_QUICKLOAD_DELAY: info->d = CBM_QUICKLOAD_DELAY; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -static void pet1_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "p00,prg"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_cbm_pet1; break; - - /* --- the following bits of info are returned as doubles --- */ - case DEVINFO_FLOAT_QUICKLOAD_DELAY: info->d = CBM_QUICKLOAD_DELAY; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(pet) - CONFIG_DEVICE(pet_cbmcartslot_getinfo) - CONFIG_DEVICE(cbmfloppy_device_getinfo) - CONFIG_DEVICE(pet1_quickload_getinfo) - CONFIG_RAM(4 * 1024) - CONFIG_RAM(8 * 1024) - CONFIG_RAM(16 * 1024) - CONFIG_RAM_DEFAULT(32 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(pet2) - CONFIG_DEVICE(pet_cbmcartslot_getinfo) - CONFIG_DEVICE(cbmfloppy_device_getinfo) - CONFIG_DEVICE(pet_quickload_getinfo) - CONFIG_RAM(4 * 1024) - CONFIG_RAM(8 * 1024) - CONFIG_RAM(16 * 1024) - CONFIG_RAM_DEFAULT(32 * 1024) -SYSTEM_CONFIG_END - -static void pet4_cbmcartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "crt,a0"); break; - - default: cbmcartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(pet4) - CONFIG_DEVICE(pet4_cbmcartslot_getinfo) - CONFIG_DEVICE(cbmfloppy_device_getinfo) - CONFIG_DEVICE(pet_quickload_getinfo) - CONFIG_RAM(4 * 1024) - CONFIG_RAM(8 * 1024) - CONFIG_RAM(16 * 1024) - CONFIG_RAM_DEFAULT(32 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(pet4_32) - CONFIG_DEVICE(pet4_cbmcartslot_getinfo) - CONFIG_DEVICE(cbmfloppy_device_getinfo) - CONFIG_DEVICE(pet_quickload_getinfo) - CONFIG_RAM_DEFAULT(32 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME COMPAT PARENT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP (1977, pet, 0, 0, pet, pet, pet1, pet, "Commodore Business Machines Co.", "PET2001/CBM20xx Series (Basic 1)", GAME_NO_SOUND) -COMP (1979, cbm30, 0, pet, pet, pet, pet, pet2, "Commodore Business Machines Co.", "Commodore 30xx (Basic 2)", GAME_NO_SOUND) -COMP (1979, cbm30b, 0, pet, pet, petb, pet, pet2, "Commodore Business Machines Co.", "Commodore 30xx (Basic 2) (business keyboard)",GAME_NO_SOUND) -COMP (1982, cbm40, 0, pet, pet40, pet, pet40, pet4, "Commodore Business Machines Co.", "Commodore 40xx FAT (CRTC) 60Hz", GAME_NO_SOUND) -COMP (1982, cbm40pal, 0, pet, pet40pal, pet, pet40, pet4, "Commodore Business Machines Co.", "Commodore 40xx FAT (CRTC) 50Hz", GAME_NO_SOUND) -COMP (1979, cbm40b, 0, pet, pet, petb, pet, pet4, "Commodore Business Machines Co.", "Commodore 40xx THIN (business keyboard)", GAME_NO_SOUND) -COMP (1981, cbm80, 0, pet, pet80, cbm8096, cbm80, pet4_32, "Commodore Business Machines Co.", "Commodore 80xx 60Hz", GAME_NO_SOUND) -COMP (1981, cbm80pal, 0, pet, pet80pal, cbm8096, cbm80, pet4_32, "Commodore Business Machines Co.", "Commodore 80xx 50Hz", GAME_NO_SOUND) -COMP (1981, cbm80ger, 0, pet, pet80pal, cbm8096, cbm80, pet4_32, "Commodore Business Machines Co.", "Commodore 80xx German (50Hz)", GAME_NO_SOUND) -COMP (1981, cbm80swe, 0, pet, pet80pal, cbm8096, cbm80, pet4_32, "Commodore Business Machines Co.", "Commodore 80xx Swedish (50Hz)", GAME_NO_SOUND) -COMP (1981, superpet, 0, pet, superpet, superpet,superpet,pet4_32, "Commodore Business Machines Co.", "Commodore SP9000/MMF9000 (50Hz)", GAME_NO_SOUND|GAME_NOT_WORKING) - -// please leave the following as testdriver only -COMP (198?, mmf9000, 0, pet, superpet, superpet,superpet,pet4, "Commodore Business Machines Co.", "MMF9000 (50Hz) Swedish", 0) diff --git a/mess/systems/pmd85.c b/mess/systems/pmd85.c deleted file mode 100644 index 6dd1369be..000000000 --- a/mess/systems/pmd85.c +++ /dev/null @@ -1,669 +0,0 @@ -/******************************************************************************* - -PMD-85 driver by Krzysztof Strzecha - -What's new: ------------ - -27.06.2004 Mato crash fixed. -21.05.2004 V.24 / Tape switch added. V.24 is not emulated. -25.04.2004 PMD-85.1 tape emulation with support for .pmd format files added. -19.04.2004 Verified PMD-85.1 and PMD-85.2 monitor roms and replaced with - unmodified ones. - Memory system cleanups. -03.04.2004 PMD-85.3 and Mato (PMD-85.2 clone) drivers. - Preliminary and not working tape support. - Reset key fixed. PMD-85.1 fixed. -15.03.2004 Added drivers for: PMD-85.2, PMD-85.2A, PMD-85.2B and Didaktik - Alfa (PMD-85.1 clone). Keyboard finished. Natural keyboard added. - Memory system rewritten. I/O system rewritten. Support for Basic - ROM module added. Video emulation rewritten. -30.11.2002 Memory mapping improved. -06.07.2002 Preliminary driver. - -Notes on emulation status and to do list: ------------------------------------------ - -1. V.24. -2. Tape emulation for other machines than PMD-85.1. -3. Flash video attribute. -4. External interfaces connectors (K2-K5). -5. Speaker. -6. Verify PMD-85.2A, PMD-85.3, Didaktik Alfa and Mato monitor roms. -7. Verify all Basic roms. -8. 8251 in Didaktik Alfa. -9. Colors (if any). -10. PMD-85, Didaktik Alfa 2 and Didaktik Beta (ROMs and documentation needed). -11. FDD interface (ROMs and disk images needed). -12. "Duch & Pampuch" Mato game displays scores with incorrect characters. - -PMD-85 technical information -============================ - -Memory map: ------------ - - PMD-85.1, PMD-85.2 - ------------------ - - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-0fff ROM mirror #1 - 1000-1fff not mapped - 2000-2fff ROM mirror #2 - 3000-3fff not mapped - 4000-7fff Video RAM mirror #1 - 8000-8fff ROM - 9000-9fff not mapped - a000-afff ROM mirror #3 - b000-bfff not mapped - c000-ffff Video RAM - - normal map: - 0000-7fff RAM - 8000-8fff ROM - 9000-9fff not mapped - a000-afff ROM mirror #1 - b000-bfff not mapped - c000-ffff Video RAM - - Didaktik Alfa (PMD-85.1 clone) - ------------------------------ - - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-0fff ROM mirror - 1000-33ff BASIC mirror - 3400-3fff not mapped - 4000-7fff Video RAM mirror - 8000-8fff ROM - 9000-b3ff BASIC - b400-bfff not mapped - c000-ffff Video RAM - - normal map: - 0000-7fff RAM - 8000-8fff ROM - 9000-b3ff BASIC - b400-bfff not mapped - c000-ffff Video RAM - - PMD-85.2A, PMD-85.2B - -------------------- - - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-0fff ROM mirror #1 - 1000-1fff RAM #2 mirror - 2000-2fff ROM mirror #2 - 3000-3fff RAM #3 mirror - 4000-7fff Video RAM mirror #1 - 8000-8fff ROM - 9000-9fff RAM #2 - a000-afff ROM mirror #3 - b000-bfff RAM #3 - c000-ffff Video RAM - - normal map: - 0000-7fff RAM #1 - 8000-8fff ROM - 9000-9fff RAM #2 - a000-afff ROM mirror #1 - b000-bfff RAM #3 - c000-ffff Video RAM - - PMD-85.3 - -------- - - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-1fff ROM mirror #1 read, RAM write - 2000-3fff ROM mirror #2 read, RAM write - 4000-5fff ROM mirror #3 read, RAM write - 6000-7fff ROM mirror #4 read, RAM write - 8000-9fff ROM mirror #5 read, RAM write - a000-bfff ROM mirror #6 read, RAM write - c000-dfff ROM mirror #7 read, Video RAM #1 write - e000-ffff ROM, Video RAM #2 write - - normal map: - 0000-bfff RAM - c000-dfff Video RAM #1 - e000-ffff Video RAM #2 / ROM read, Video RAM #2 write - - Mato - ---- - - start-up map (cleared by the first I/O write operation done by the CPU): - 0000-3fff ROM mirror #1 - 4000-7fff Video RAM mirror #1 - 8000-bfff ROM - c000-ffff Video RAM - - normal map: - 0000-7fff RAM - 8000-bfff ROM - c000-ffff Video RAM - -I/O ports ---------- - - I/O board - --------- - 1xxx11aa external interfaces connector (K2) - - 0xxx11aa I/O board interfaces - 000111aa 8251 (casette recorder, V24) - 010011aa 8255 (GPIO/0, GPIO/1) - 010111aa 8253 - 011111aa 8255 (IMS-2) - I/O board is not supported by Mato. - - Motherboard - ----------- - 1xxx01aa 8255 (keyboard, speaker, LEDs) - PMD-85.3 memory banking - Mato cassette recorder - - ROM Module - ---------- - 1xxx10aa 8255 (ROM reading) - ROM module is not supported by Didaktik Alfa and Mato. - - -*******************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/i8085/i8085.h" -#include "vidhrdw/generic.h" -#include "devices/cassette.h" -#include "includes/pmd85.h" -#include "formats/pmd_pmd.h" - -/* I/O ports */ - -ADDRESS_MAP_START( pmd85_readport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_READ( pmd85_io_r ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( pmd85_writeport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_WRITE( pmd85_io_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( mato_readport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_READ( mato_io_r ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( mato_writeport , ADDRESS_SPACE_IO, 8) - AM_RANGE( 0x00, 0xff) AM_WRITE( mato_io_w ) -ADDRESS_MAP_END - -/* memory w/r functions */ - -ADDRESS_MAP_START( pmd85_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x1000, 0x1fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x2000, 0x2fff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0x3000, 0x3fff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK5, MWA8_BANK5) - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(MRA8_BANK6, MWA8_ROM) - AM_RANGE(0x9000, 0x9fff) AM_READWRITE(MRA8_NOP, MWA8_NOP) - AM_RANGE(0xa000, 0xafff) AM_READWRITE(MRA8_BANK7, MWA8_ROM) - AM_RANGE(0xb000, 0xbfff) AM_READWRITE(MRA8_NOP, MWA8_NOP) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK8, MWA8_BANK8) -ADDRESS_MAP_END - -ADDRESS_MAP_START( pmd852a_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x1000, 0x1fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x2000, 0x2fff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0x3000, 0x3fff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK5, MWA8_BANK5) - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(MRA8_BANK6, MWA8_ROM) - AM_RANGE(0x9000, 0x9fff) AM_READWRITE(MRA8_BANK7, MWA8_BANK7) - AM_RANGE(0xa000, 0xafff) AM_READWRITE(MRA8_BANK8, MWA8_ROM) - AM_RANGE(0xb000, 0xbfff) AM_READWRITE(MRA8_BANK9, MWA8_BANK9) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK10, MWA8_BANK10) -ADDRESS_MAP_END - -ADDRESS_MAP_START( pmd853_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x1fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK9) - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK10) - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(MRA8_BANK3, MWA8_BANK11) - AM_RANGE(0x6000, 0x7fff) AM_READWRITE(MRA8_BANK4, MWA8_BANK12) - AM_RANGE(0x8000, 0x9fff) AM_READWRITE(MRA8_BANK5, MWA8_BANK13) - AM_RANGE(0xa000, 0xbfff) AM_READWRITE(MRA8_BANK6, MWA8_BANK14) - AM_RANGE(0xc000, 0xdfff) AM_READWRITE(MRA8_BANK7, MWA8_BANK15) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(MRA8_BANK8, MWA8_BANK16) -ADDRESS_MAP_END - -ADDRESS_MAP_START( alfa_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x1000, 0x33ff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x3400, 0x3fff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(MRA8_BANK5, MWA8_ROM) - AM_RANGE(0x9000, 0xb3ff) AM_READWRITE(MRA8_BANK6, MWA8_ROM) - AM_RANGE(0xb400, 0xbfff) AM_READWRITE(MRA8_NOP, MWA8_NOP) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK7, MWA8_BANK7) -ADDRESS_MAP_END - -ADDRESS_MAP_START( mato_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE(MRA8_BANK3, MWA8_ROM) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) -ADDRESS_MAP_END - -/* keyboard input */ - -#define PMD85_KEYBOARD_MAIN \ - PORT_START /* port 0x00 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K0") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(F1)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x01 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F2)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('1') PORT_CHAR('\"') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x02 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F3)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x03 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F4)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x04 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F5)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x05 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F6)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x06 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F7)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 \'") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x07 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F8)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x08 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F9)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('0') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x09 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K9") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F10)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 -") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('-') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0a */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K10") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F11)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("_ =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('_') PORT_CHAR('=') \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0b */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K11") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F12)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Blank") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(UCHAR_MAMEKEY(ESC)) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ ^") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') PORT_CHAR('^') \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ ]") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('[') PORT_CHAR(']') \ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0c */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("WRK") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INS PTL") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_CHAR(UCHAR_MAMEKEY(TAB)) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("<-") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("|<-") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) \ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0d */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C-D") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(DEL)) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^\\") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(HOME)) \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("END") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(END)) \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL1") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0e */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLR") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RCL") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("->") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("->|") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) \ - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL2") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) \ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_START /* port 0x0f */ \ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) \ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_MAMEKEY(LSHIFT)) \ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT)) \ - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Stop") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))\ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) - -#define PMD85_KEYBOARD_RESET \ - PORT_START /* port 0x10 */ \ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) - -#define PMD85_DIPSWITCHES \ - PORT_START /* port 0x11 */ \ - PORT_CONFNAME( 0x01, 0x00, "Basic ROM Module" ) \ - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) \ - PORT_CONFNAME( 0x02, 0x00, "Tape/V.24" ) \ - PORT_CONFSETTING( 0x00, "Tape" ) \ - PORT_CONFSETTING( 0x02, "V.24" ) - -#define ALFA_DIPSWITCHES \ - PORT_START /* port 0x11 */ \ - PORT_CONFNAME( 0x02, 0x00, "Tape/V.24" ) \ - PORT_CONFSETTING( 0x00, "Tape" ) \ - PORT_CONFSETTING( 0x02, "V.24" ) - -INPUT_PORTS_START (pmd85) - PMD85_KEYBOARD_MAIN - PMD85_KEYBOARD_RESET - PMD85_DIPSWITCHES -INPUT_PORTS_END - -INPUT_PORTS_START (alfa) - PMD85_KEYBOARD_MAIN - PMD85_KEYBOARD_RESET - ALFA_DIPSWITCHES -INPUT_PORTS_END - -INPUT_PORTS_START (mato) - PORT_START /* port 0x00 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 \'") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x01 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x02 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x03 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x04 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= _") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('=') PORT_CHAR('_') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 -") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('-') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ ^") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') PORT_CHAR('^') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x05 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('<') - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x06 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("<-") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("->") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x07 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EOL") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_START /* port 0x08 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Stop") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_MAMEKEY(LSHIFT)) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_MAMEKEY(RSHIFT)) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Continue") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_START /* port 0x09 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RST") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) -INPUT_PORTS_END - - - -/* machine definition */ -static MACHINE_DRIVER_START( pmd85 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", 8080, 2000000) /* 2.048MHz ??? */ - MDRV_CPU_PROGRAM_MAP(pmd85_mem, 0) - MDRV_CPU_IO_MAP(pmd85_readport, pmd85_writeport) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( pmd85 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(288, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 288-1, 0, 256-1) - MDRV_PALETTE_LENGTH(sizeof (pmd85_palette) / 3) - MDRV_COLORTABLE_LENGTH(sizeof (pmd85_colortable)) - MDRV_PALETTE_INIT( pmd85 ) - - MDRV_VIDEO_START( pmd85 ) - MDRV_VIDEO_UPDATE( pmd85 ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pmd852a ) - MDRV_IMPORT_FROM( pmd85 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pmd852a_mem, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pmd853 ) - MDRV_IMPORT_FROM( pmd85 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pmd853_mem, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( alfa ) - MDRV_IMPORT_FROM( pmd85 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(alfa_mem, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mato ) - MDRV_IMPORT_FROM( pmd85 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mato_mem, 0) - MDRV_CPU_IO_MAP(mato_readport, mato_writeport) -MACHINE_DRIVER_END - -ROM_START(pmd851) - ROM_REGION(0x11000,REGION_CPU1,0) - ROM_LOAD("pmd85-1.bin", 0x10000, 0x1000, CRC(ef50b416) SHA1(afa3ec0d03228adc5287a4cba905ce7ad0497dff)) - ROM_REGION(0x2400,REGION_USER1,0) - ROM_LOAD_OPTIONAL("pmd85-1.bas", 0x0000, 0x2400, CRC(4fc37d45) SHA1(3bd0f92f37a3f2ee539916dc75508bda37433a72)) -ROM_END - -ROM_START(pmd852) - ROM_REGION(0x11000,REGION_CPU1,0) - ROM_LOAD("pmd85-2.bin", 0x10000, 0x1000, CRC(d4786f63) SHA1(6facdf37bb012714244b012a0c4bd715a956e42b)) - ROM_REGION(0x2400,REGION_USER1,0) - ROM_LOAD_OPTIONAL("pmd85-2.bas", 0x0000, 0x2400, CRC(fc4a3ebf) SHA1(3bfc0e9a5cd5187da573b5d539d7246358125a88)) -ROM_END - -ROM_START(pmd852a) - ROM_REGION(0x11000,REGION_CPU1,0) - ROM_LOAD("pmd85-2a.bin", 0x10000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) - ROM_REGION(0x2400,REGION_USER1,0) - ROM_LOAD_OPTIONAL("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) -ROM_END - -ROM_START(pmd852b) - ROM_REGION(0x11000,REGION_CPU1,0) - ROM_LOAD("pmd85-2a.bin", 0x10000, 0x1000, CRC(5a9a961b) SHA1(7363341596367d08b9a98767c6585ce18dfd03af)) - ROM_REGION(0x2400,REGION_USER1,0) - ROM_LOAD_OPTIONAL("pmd85-2a.bas", 0x0000, 0x2400, CRC(6ff379ad) SHA1(edcaf2420cac9771596ead5c86c41116b228eca3)) -ROM_END - -ROM_START(pmd853) - ROM_REGION(0x12000,REGION_CPU1,0) - ROM_LOAD("pmd85-3.bin", 0x10000, 0x2000, CRC(83e22c47) SHA1(5f131e27ae3ec8907adbe5cd228c67d131066084)) - ROM_REGION(0x2800,REGION_USER1,0) - ROM_LOAD_OPTIONAL("pmd85-3.bas", 0x0000, 0x2800, CRC(1e30e91d) SHA1(d086040abf4c0a7e5da8cf4db7d1668a1d9309a4)) -ROM_END - -ROM_START(alfa) - ROM_REGION(0x13400,REGION_CPU1,0) - ROM_LOAD("alfa.bin", 0x10000, 0x1000, CRC(e425eedb) SHA1(db93b5de1e16b5ae71be08feb083a2ac15759495)) - ROM_LOAD("alfa.bas", 0x11000, 0x2400, CRC(9a73bfd2) SHA1(74314d989846f64e715f64deb84cb177fa62f4a9)) -ROM_END - -ROM_START(mato) - ROM_REGION(0x14000,REGION_CPU1,0) - ROM_LOAD("mato.bin", 0x10000, 0x4000, CRC(574110a6) SHA1(4ff2cd4b07a1a700c55f92e5b381c04f758fb461)) -ROM_END - -ROM_START(matoh) - ROM_REGION(0x14000,REGION_CPU1,0) - ROM_LOAD("matoh.bin", 0x10000, 0x4000, CRC(ca25880d) SHA1(38ce0b6a26d48a09fdf96863c3eaf3705aca2590)) -ROM_END - -static struct CassetteOptions pmd85_cassette_options = { - 1, /* channels */ - 16, /* bits per sample */ - 7200 /* sample frequency */ -}; - -static void pmd85_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) pmd85_pmd_format; break; - case DEVINFO_PTR_CASSETTE_OPTIONS: info->p = (void *) &pmd85_cassette_options; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(pmd85) - CONFIG_RAM_DEFAULT(64 * 1024) - CONFIG_DEVICE(pmd85_cassette_getinfo) -SYSTEM_CONFIG_END - - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1985, pmd851, 0, 0, pmd85, pmd85, pmd851, pmd85, "Tesla", "PMD-85.1" , 0) -COMP( 1985, pmd852, pmd851, 0, pmd85, pmd85, pmd851, pmd85, "Tesla", "PMD-85.2" , 0) -COMP( 1985, pmd852a, pmd851, 0, pmd852a, pmd85, pmd852a, pmd85, "Tesla", "PMD-85.2A" , 0) -COMP( 1985, pmd852b, pmd851, 0, pmd852a, pmd85, pmd852a, pmd85, "Tesla", "PMD-85.2B" , 0) -COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd853, pmd85, "Tesla", "PMD-85.3" , 0) -COMP( 1986, alfa, pmd851, 0, alfa, alfa, alfa, pmd85, "Didaktik", "Alfa" , 0) -COMP( 1985, mato, pmd851, 0, mato, mato, mato, pmd85, "Statny", "Mato (Basic ROM)" , 0) -COMP( 1989, matoh, pmd851, 0, mato, mato, mato, pmd85, "Statny", "Mato (Games ROM)" , 0) diff --git a/mess/systems/primo.c b/mess/systems/primo.c deleted file mode 100644 index 2b922e7ab..000000000 --- a/mess/systems/primo.c +++ /dev/null @@ -1,445 +0,0 @@ -/******************************************************************************* - -Primo driver by Krzysztof Strzecha - -What's new: ------------ -2005.05.19 - Primo B-32 and B-48 testdrivers added. -2005.05.15 - EPROM+RAM expansion. - Support for .pp files improved. - Some cleanups. -2005.05.12 - Memory fixed for A-48 model what make it fully working. - Fixed address of second video memory area. - -To do: - 1. Disk - 2. V.24 / tape control - 3. CDOS autoboot - 4. Joystick - 5. Printer - 6. .PRI format - -Primo variants: - A-32 - 16kB RAM + 16KB ROM - A-48 - 32kB RAM + 16KB ROM - A-64 - 48kB RAM + 16KB ROM - B-64 - 48kB RAM + 16KB ROM - -CPU: - U880D (DDR clone of Z80), 2.5Mhz - -Memory map: - A-32 - 0000-3fff ROM - 4000-7fff RAM - 8000-bfff not mapped - c000-ffff not mapped - - A-48 - 0000-3fff ROM - 4000-7fff RAM - 8000-bfff RAM - c000-ffff not mapped - - A-64, B-64 - 0000-3fff ROM - 4000-7fff RAM - 8000-bfff RAM - c000-ffff RAM - -I/O Ports: - Write: - 00h-3fh - bit 7 - NMI - 0 - disable - 1 - enable - bit 6 - joystick register shift - bit 5 - V.24 (2) / tape control - bit 4 - speaker - bit 3 - display page - 0 - secondary - 1 - primary - bit 2 - V.24 (1) / tape control - bit 1 - cassette output - bit 0 / - 00 - -110mV - 01 - 0V - 10 - 0V - 11 - 110mV - 40h-ffh (B models only) - bit 7 - not used - bit 6 - not used - bit 5 - SCLK - bit 4 - SDATA - bit 3 - not used - bit 2 - SRQ - bit 1 - ATN - bit 0 - not used - Read: - 00h-3fh - bit 7 - not used - bit 6 - not used - bit 5 - VBLANK - bit 4 - I4 - bit 3 - I3 - bit 2 - cassette input - bit 1 - reset - bit 0 - keyboard input - 40h-ffh (B models only) - bit 7 - not used - bit 6 - not used - bit 5 - SCLK - bit 4 - SDATA - bit 3 - SRQ - bit 2 - joystick 2 - bit 1 - ATN - bit 0 - joystick 1 - -Interrupts: - NMI - 20ms (50HZ), can be disbled/enabled by I/O write - -*******************************************************************************/ -#include "driver.h" -#include "inputx.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "devices/cassette.h" -#include "devices/snapquik.h" -#include "devices/cartslot.h" -#include "includes/cbmserb.h" -#include "includes/primo.h" -#include "formats/primoptp.h" - - -ADDRESS_MAP_START( primoa_port, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x00, 0x3f ) AM_READWRITE( primo_be_1_r, primo_ki_1_w ) - AM_RANGE( 0xfd, 0xfd ) AM_WRITE( primo_FD_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( primob_port, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x00, 0x3f ) AM_READWRITE( primo_be_1_r, primo_ki_1_w ) - AM_RANGE( 0x40, 0x7f ) AM_READWRITE( primo_be_2_r, primo_ki_2_w ) - AM_RANGE( 0xfd, 0xfd ) AM_WRITE( primo_FD_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( primo32_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK(1) - AM_RANGE( 0x4000, 0x7fff ) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START( primo48_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK(1) - AM_RANGE( 0x4000, 0x7fff ) AM_RAM - AM_RANGE( 0x8000, 0xbfff ) AM_RAM AM_MIRROR ( 0x4000 ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( primo64_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE( 0x0000, 0x3fff ) AM_RAMBANK(1) - AM_RANGE( 0x4000, 0xffff ) AM_RAM -ADDRESS_MAP_END - -INPUT_PORTS_START( primo ) - PORT_START_TAG( "IN0" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UPPER") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CTR") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_START_TAG( "IN1" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 /") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/') - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_START_TAG( "IN2" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("+ ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('+') PORT_CHAR('?') - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0 =") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("> <") PORT_CODE(KEYCODE_HOME) PORT_CHAR('>') PORT_CHAR('<') - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("- |") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('|') - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". :") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';') - PORT_START_TAG( "IN3" ) - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("?") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(UCHAR_MAMEKEY(F2)) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("* \'") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('*') PORT_CHAR('\'') - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xC2\xA3") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(F3)) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CLS") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RETRUN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(UCHAR_MAMEKEY(ENTER)) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xE2\x80\x9A") PORT_CODE(KEYCODE_COLON) PORT_CHAR(UCHAR_MAMEKEY(F4)) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xC2\xA2") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(UCHAR_MAMEKEY(F5)) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xC2\xA0") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(UCHAR_MAMEKEY(F6)) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xE2\x80\x9D") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(UCHAR_MAMEKEY(F7)) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BRK") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) - PORT_START_TAG( "RESET" ) /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START_TAG( "CPU_CLOCK" ) /* IN5 */ - PORT_CONFNAME( 0x01, 0x00, "CPU clock" ) - PORT_CONFSETTING( 0x00, "2.50 MHz" ) - PORT_CONFSETTING( 0x01, "3.75 MHz" ) - PORT_START_TAG( "MEMORY_EXPANSION" ) /* IN6 */ - PORT_CONFNAME( 0x01, 0x00, "EPROM+RAM Expansion" ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( primoa32 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG( "main", Z80, 2500000 ) - MDRV_CPU_PROGRAM_MAP( primo32_mem, 0 ) - MDRV_CPU_IO_MAP( primoa_port, 0 ) - MDRV_SCREEN_REFRESH_RATE( 50 ) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC( 2500 )) - MDRV_CPU_VBLANK_INT( primo_vblank_interrupt, 1 ) - MDRV_INTERLEAVE( 1 ) - - MDRV_MACHINE_RESET( primoa ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE( 256, 192 ) - MDRV_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) - MDRV_PALETTE_LENGTH( sizeof (primo_palette) / 3 ) - MDRV_COLORTABLE_LENGTH( sizeof (primo_colortable) ) - MDRV_PALETTE_INIT( primo ) - - MDRV_VIDEO_START( primo ) - MDRV_VIDEO_UPDATE( primo ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( primoa48 ) - MDRV_IMPORT_FROM( primoa32 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( primo48_mem, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( primoa64 ) - MDRV_IMPORT_FROM( primoa32 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( primo64_mem, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( primob32 ) - MDRV_IMPORT_FROM( primoa32 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_IO_MAP( primob_port, 0 ) - - MDRV_MACHINE_RESET( primob ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( primob48 ) - MDRV_IMPORT_FROM( primoa48 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_IO_MAP( primob_port, 0 ) - - MDRV_MACHINE_RESET( primob ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( primob64 ) - MDRV_IMPORT_FROM( primoa64 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_IO_MAP( primob_port, 0 ) - - MDRV_MACHINE_RESET( primob ) -MACHINE_DRIVER_END - -ROM_START( primoa32 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "a32_1.rom", 0x10000, 0x1000, CRC(4e91c1a4) SHA1(bf6e41b6b36a2556a50065e9acfd8cd57968f039) ) - ROM_LOAD( "a32_2.rom", 0x11000, 0x1000, CRC(81a8a0fb) SHA1(df75bd7774969cabb062e50da6004f2efbde489e) ) - ROM_LOAD( "a32_3.rom", 0x12000, 0x1000, CRC(a97de2f5) SHA1(743c76121f5b9e1eab35c8c00797311f58da5243) ) - ROM_LOAD( "a32_4.rom", 0x13000, 0x1000, CRC(70f84bc8) SHA1(9ae1c06531edf20c14ba47e78c0747dd2a92612a) ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -ROM_START( primoa48 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "a48_1.rom", 0x10000, 0x1000, CRC(7de6ad6f) SHA1(f2fd6fac4f9bc57c646efe40281758bb7c3f56e1) ) - ROM_LOAD( "a48_2.rom", 0x11000, 0x1000, CRC(81a8a0fb) SHA1(df75bd7774969cabb062e50da6004f2efbde489e) ) - ROM_LOAD( "a48_3.rom", 0x12000, 0x1000, CRC(a97de2f5) SHA1(743c76121f5b9e1eab35c8c00797311f58da5243) ) - ROM_LOAD( "a48_4.rom", 0x13000, 0x1000, CRC(e4d0c452) SHA1(4a98ff7502f1236445250d6b4e1c34850734350e) ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -ROM_START( primoa64 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "a64_1.rom", 0x10000, 0x1000, CRC(6a7a9b9b) SHA1(e9ce16f90d9a799a26a9cef09d9ee6a6d7749484) ) - ROM_LOAD( "a64_2.rom", 0x11000, 0x1000, CRC(81a8a0fb) SHA1(df75bd7774969cabb062e50da6004f2efbde489e) ) - ROM_LOAD( "a64_3.rom", 0x12000, 0x1000, CRC(a97de2f5) SHA1(743c76121f5b9e1eab35c8c00797311f58da5243) ) - ROM_LOAD( "a64_4.rom", 0x13000, 0x1000, CRC(e4d0c452) SHA1(4a98ff7502f1236445250d6b4e1c34850734350e) ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -ROM_START( primob32 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "b32.rom", 0x10000, 0x4000, NO_DUMP ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -ROM_START( primob48 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "b48.rom", 0x10000, 0x4000, NO_DUMP ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -ROM_START( primob64 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "b64.rom", 0x10000, 0x4000, CRC(73305e4d) SHA1(c090c3430cdf19eed8363377b981e1c21a4ed169) ) - ROM_CART_LOAD(1, "rom\0", 0x14000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) - ROM_CART_LOAD(0, "rom\0", 0x18000, 0x4000, ROM_FILL_FF | ROM_OPTIONAL) -ROM_END - -static struct CassetteOptions primo_cassette_options = { - 1, /* channels */ - 16, /* bits per sample */ - 22050 /* sample frequency */ -}; - -static void primo_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) primo_ptp_format; break; - case DEVINFO_PTR_CASSETTE_OPTIONS: info->p = (void *) &primo_cassette_options; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void primo_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "pss"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_primo; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void primo_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "pp"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_primo; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -static void primo_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_DESCRIPTION+0: strcpy(info->s = device_temp_str(), "EPROM Expansion Bank #1"); break; - case DEVINFO_STR_DESCRIPTION+1: strcpy(info->s = device_temp_str(), "EPROM Expansion Bank #2"); break; - case DEVINFO_STR_DESCRIPTION+2: strcpy(info->s = device_temp_str(), "EPROM Expansion Bank #3"); break; - case DEVINFO_STR_DESCRIPTION+3: strcpy(info->s = device_temp_str(), "EPROM Expansion Bank #4"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void primo_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_NOT_WORKING: info->i = 1; break; - - default: cbmfloppy_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( primoa ) - CONFIG_DEVICE(primo_cassette_getinfo) - CONFIG_DEVICE(primo_snapshot_getinfo) - CONFIG_DEVICE(primo_quickload_getinfo) - CONFIG_DEVICE(primo_cartslot_getinfo) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START( primob ) - CONFIG_IMPORT_FROM( primoa ) - CONFIG_DEVICE(primo_floppy_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP ( 1984, primoa32, 0, 0, primoa32, primo, primo32, primoa, "Microkey", "Primo A-32" , 0) -COMP ( 1984, primoa48, primoa32, 0, primoa48, primo, primo48, primoa, "Microkey", "Primo A-48" , 0) -COMP ( 1984, primoa64, primoa32, 0, primoa64, primo, primo64, primoa, "Microkey", "Primo A-64" , 0) -COMP ( 1984, primob32, primoa32, 0, primob32, primo, primo32, primob, "Microkey", "Primo B-32" , 0) -COMP ( 1984, primob48, primoa32, 0, primob48, primo, primo48, primob, "Microkey", "Primo B-48" , 0) -COMP ( 1984, primob64, primoa32, 0, primob64, primo, primo64, primob, "Microkey", "Primo B-64" , 0) diff --git a/mess/systems/saturn.c b/mess/systems/saturn.c deleted file mode 100644 index eb6bc25dc..000000000 --- a/mess/systems/saturn.c +++ /dev/null @@ -1,2472 +0,0 @@ -/* Sega Saturn - -Driver by David Haywood,Angelo Salese,Olivier Galibert & Mariusz Wojcieszek -SCSP driver provided by R.Belmont,based on ElSemi's SCSP sound chip emulator -CD Block driver provided by ANY,based on sthief original emulator -Many thanks to Guru,Fabien & Runik for the help given. - -MESS conversion by R. Belmont - -Hardware overview: ------------------- --two SH-2 CPUs,in a master/slave configuration.The master cpu is used to -boot-up and to do the most of the work,the slave one does extra work that could be -too much for a single cpu.They both shares all the existant devices; --a M68000 CPU,used to drive sound(the SCSP chip).The program is uploaded via the -SH-2 cpus; --a SMPC (System Manager & Peripheral Control),used to drive all the -devices on the board; --a SCU (System Control Unit),mainly used to do DMA operations and to drive interrupts,it -also has a DSP; --an (optional for the ST-V) SH-1 CPU,used to be the CD driver; --An A-Bus,where the cart ROM area is located; --A B-Bus,where the Video Hardware & the SCU sections are located; --Two VDPs chips(named as 1 & 2),used for the video section: - -VDP1 is used to render sprites & polygons. - -VDP2 is for the tilemap system,there are: - 4 effective normal layers; - 2 roz layers; - 1 back layer; - 1 line layer; - The VDP2 is capable of the following things (in order): - -dynamic resolution (up to 704x512) & various interlacing modes; - -mosaic process; - -scrolling,scaling,horizontal & vertical cell scrolling & linescroll for the - normal planes, the roz ones can also rotate; - -versatile window system,used for various effects; - -alpha-blending,refered as Color Calculation in the docs; - -shadow effects; - -global rgb brightness control,separate for every plane; - -Memory map: ------------ - -0x00000000, 0x0007ffff BIOS ROM -0x00080000, 0x000fffff Unused -0x00100000, 0x00100080 SMPC -0x00100080, 0x0017ffff Unused -0x00180000, 0x0018ffff Back Up Ram -0x00190000, 0x001fffff Unused -0x00200000, 0x002fffff Work Ram-L -0x00300000, 0x00ffffff Unused -0x01000000, 0x01000003 MINIT -0x01000004, 0x017fffff Unused -0x01800000, 0x01800003 SINIT -0x01800004, 0x01ffffff Unused -0x02000000, 0x03ffffff A-BUS CS0 -0x04000000, 0x04ffffff A-BUS CS1 -0x05000000, 0x057fffff A-BUS DUMMY -0x05800000, 0x058fffff A-BUS CS2 -0x05900000, 0x059fffff Unused -0x05a00000, 0x05b00ee3 Sound Region -0x05b00ee4, 0x05bfffff Unused -0x05c00000, 0x05cbffff VDP 1 -0x05cc0000, 0x05cfffff Unused -0x05d00000, 0x05d00017 VDP 1 regs -0x05d00018, 0x05dfffff Unused -0x05e00000, 0x05e7ffff VDP2 -0x05e80000, 0x05efffff VDP2 Extra RAM,accessible thru the VRAMSZ register -0x05f00000, 0x05f00fff VDP2 Color RAM -0x05f01000, 0x05f7ffff Unused -0x05f80000 0x05f8011f VDP2 regs -0x05f80120, 0x05fdffff Unused -0x05fe0000, 0x05fe00cf SCU regs -0x05fe00d0, 0x05ffffff Unused -0x06000000, 0x060fffff Work Ram-H -0x06100000, 0x07ffffff Unused - -*the unused locations aren't known if they are really unused or not,needs verification,most -of them seem just mirrors of the previous valid memory allocated. - -ToDo / Notes: -------------- - --To enter into an Advanced Test Mode,keep pressed the Test Button (F2) on the start-up. - -(Main issues) --complete the Master/Slave communication. --clean up the IC13 rom loading. --Clean-ups and split the various chips(SCU,SMPC)into their respective files. --CD block:complete it & add proper CD image support into MAME. --the Cart-Dev mode...we need the proper ST-V Cart-Dev bios to be dumped in order to - make this work,but probably this will never be done... --fix some strange sound cpu memory accesses,there are various issues about this. --finish the DSP core. --Complete the window system in VDP2 (Still in progress). --Add the RS232c interface (serial port),needed by fhboxers. --(PCB owners) check if the clocks documented in the manuals are really right for ST-V. --SCSP to master irq: see if there is a sound cpu mask bit. --Does the cpunum_set_clock really works?Investigate. --We need to check every game if can be completed or there are any hanging/crash/protection - issues on them. --Memo: Some tests done on the original & working PCB,to be implemented: - -The AD-Stick returns 0x00 or a similar value. - -The Ports E,F & G must return 0xff - -The regular BIOS tests (Memory Test) changes his background color at some point to - several gradients of red,green and blue.Current implementation remains black.I dunno - if this is a framebuffer write or a funky transparency issue (i.e TRANSPARENT_NONE - should instead show the back layer). - -RBG0 rotating can be checked on the "Advanced Test" menu thru the VDP1/VDP2 check. - It rotates clockwise IIRC.Also the ST-V logo when the game is in Multi mode rotates too. - -The MIDI communication check fails even on a ST-V board,somebody needs to check if there - is a MIDI port on the real PCB... - -(per-game issues) --groovef: hangs soon after loaded,caused by two memory addresses in the Work RAM-H range. - Kludged for now to work. --various: find idle skip if possible. --suikoenb/shanhigw + others: why do we get 2 credits on startup with sound enabled? --colmns97/puyosun/mausuke/cotton2/cottonbm: interrupt issues? we can't check the SCU mask - on SMPC or controls fail --mausuke/bakubaku/grdforce: need to sort out transparency on the colour mapped sprites --bakubaku/colmns97/vfkids: no sound? Caused by missing irq? --myfairld: Doesn't work with -sound enabled because of a sound ram check at relative - addresses of $700/$710/$720/$730,so I'm not removing the NOT_WORKING flag due of that.Also - Micronet programmers had the "great" idea to *not* use the ST-V input standards,infact - joystick panel is mapped with input_port(10) instead of input_port(2),so for now use - the mahjong panel instead. --kiwames: the VDP1 sprites refresh is too slow,causing the "Draw by request" mode to - flicker.Moved back to default ATM... --pblbeach: Sprites are offset, because it doesn't clear vdp1 local coordinates set by bios, - I guess that they are cleared when some vdp1 register is written (kludged for now) --decathlt: Is currently using a strange protection DMA abus control,and it uses some sort of RLE - compression/encryption that serves as a gfxdecode. --vmahjong: the vdp1 textures are too dark(women). --findlove: controls doesn't work? --Weird design choices: - introdon: has the working button as BUTTON2 and not BUTTON1 - batmanfr: BUTTON1 isn't used at all. --seabass: Player sprite is corrupt/missing during movements,caused - by incomplete framebuffer switching. --sss: Missing backgrounds during gameplay. <- seems just too dark (night),probably - just the positioning isn't correct... --elandore: Polygons structures/textures aren't right in gameplay,known as protection - for the humans structures,imperfect VDP1 emulation for the dragons. --hanagumi: ending screens have corrupt graphics. (*untested*) --znpwfv: missing Gouraud shading on distorted sprites and polygons --znpwfv,twcup98: missing "two screens" mode in RBG emulation --batmanfr: Missing sound,caused by an extra ADSP chip which is on the cart.The CPU is a - ADSP-2181,and it's the same used by NBA Jam Extreme (ZN game). --twcup98: missing Tecmo logo --vfremix: hangs after second match --sokyugrt: gameplay seems to be not smooth, timing? --Here's the list of unmapped read/writes: -* -cpu #0 (PC=0000365C): unmapped program memory dword write to 057FFFFC = 000D0000 & FFFF0000 -cpu #0 (PC=00003654): unmapped program memory dword write to 057FFFFC = 000C0000 & FFFF0000 -*bakubaku: -cpu #0 (PC=0601022E): unmapped program memory dword write to 02000000 = 00000000 & FFFFFFFF -cpu #0 (PC=0601023A): unmapped program memory dword write to 02000000 = 00000000 & FFFFFFFF - -*/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "cpu/sh2/sh2.h" -#include "machine/stvcd.h" -#include "machine/scudsp.h" -#include "sound/scsp.h" -#include "devices/chd_cd.h" - -extern UINT32* stv_vdp2_regs; -extern UINT32* stv_vdp2_vram; -extern UINT32* stv_vdp2_cram; -extern UINT32* stv_vdp1_vram; - -#define USE_SLAVE 1 - -#ifdef MAME_DEBUG -#define LOG_CDB 1 -#define LOG_SMPC 0 -#define LOG_SCU 0 -#define LOG_IRQ 0 -#else -#define LOG_CDB 0 -#define LOG_SMPC 0 -#define LOG_SCU 0 -#define LOG_IRQ 0 -#endif - -#define MASTER_CLOCK_352 57272800 -#define MASTER_CLOCK_320 53748200 - -/**************************************************************************************/ -/*to be added into a stv Header file,remember to remove all the static...*/ - -static UINT8 *smpc_ram; -//static void stv_dump_ram(void); - -UINT32* stv_workram_l; -UINT32* stv_workram_h; -UINT32* stv_backupram; -UINT32* stv_scu; -static UINT32* ioga; -static UINT16* scsp_regs; -static UINT16* sound_ram; - -int stv_vblank,stv_hblank; -int stv_enable_slave_sh2; -/*SMPC stuff*/ -static UINT8 NMI_reset; -static void system_reset(void); -static UINT8 en_68k; -/*SCU stuff*/ -static int timer_0; /* Counter for Timer 0 irq*/ -static int timer_1; /* Counter for Timer 1 irq*/ -/*Maybe add these in a struct...*/ -static UINT32 scu_src_0, /* Source DMA lv 0 address*/ - scu_src_1, /* lv 1*/ - scu_src_2, /* lv 2*/ - scu_dst_0, /* Destination DMA lv 0 address*/ - scu_dst_1, /* lv 1*/ - scu_dst_2, /* lv 2*/ - scu_src_add_0, /* Source Addition for DMA lv 0*/ - scu_src_add_1, /* lv 1*/ - scu_src_add_2, /* lv 2*/ - scu_dst_add_0, /* Destination Addition for DMA lv 0*/ - scu_dst_add_1, /* lv 1*/ - scu_dst_add_2; /* lv 2*/ -static INT32 scu_size_0, /* Transfer DMA size lv 0*/ - scu_size_1, /* lv 1*/ - scu_size_2; /* lv 2*/ - -static void dma_direct_lv0(void); /*DMA level 0 direct transfer function*/ -static void dma_direct_lv1(void); /*DMA level 1 direct transfer function*/ -static void dma_direct_lv2(void); /*DMA level 2 direct transfer function*/ -static void dma_indirect_lv0(void); /*DMA level 0 indirect transfer function*/ -static void dma_indirect_lv1(void); /*DMA level 1 indirect transfer function*/ -static void dma_indirect_lv2(void); /*DMA level 2 indirect transfer function*/ - - -int minit_boost,sinit_boost; -double minit_boost_timeslice, sinit_boost_timeslice; - -static int scanline; - - -/*A-Bus IRQ checks,where they could be located these?*/ -#define ABUSIRQ(_irq_,_vector_,_mask_) \ - if(!(stv_scu[40] & _mask_)) { cpunum_set_input_line_and_vector(0, _irq_, HOLD_LINE , _vector_); } -#if 0 -if(stv_scu[42] & 1)//IRQ ACK -{ - ABUSIRQ(7,0x50,0x00010000); - ABUSIRQ(7,0x51,0x00020000); - ABUSIRQ(7,0x52,0x00040000); - ABUSIRQ(7,0x53,0x00080000); - ABUSIRQ(4,0x54,0x00100000); - ABUSIRQ(4,0x55,0x00200000); - ABUSIRQ(4,0x56,0x00400000); - ABUSIRQ(4,0x57,0x00800000); - ABUSIRQ(1,0x58,0x01000000); - ABUSIRQ(1,0x59,0x02000000); - ABUSIRQ(1,0x5a,0x04000000); - ABUSIRQ(1,0x5b,0x08000000); - ABUSIRQ(1,0x5c,0x10000000); - ABUSIRQ(1,0x5d,0x20000000); - ABUSIRQ(1,0x5e,0x40000000); - ABUSIRQ(1,0x5f,0x80000000); -} -#endif - -/**************************************************************************************/ - -/* - -CD Block / SH-1 Handling - -*/ - -/* SMPC - System Manager and Peripheral Control - -*/ -/* SMPC Addresses - -00 -01 -w Input Register 0 (IREG) -02 -03 -w Input Register 1 -04 -05 -w Input Register 2 -06 -07 -w Input Register 3 -08 -09 -w Input Register 4 -0a -0b -w Input Register 5 -0c -0d -w Input Register 6 -0e -0f -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -1a -1b -1c -1d -1e -1f -w Command Register (COMREG) -20 -21 r- Output Register 0 (OREG) -22 -23 r- Output Register 1 -24 -25 r- Output Register 2 -26 -27 r- Output Register 3 -28 -29 r- Output Register 4 -2a -2b r- Output Register 5 -2c -2d r- Output Register 6 -2e -2f r- Output Register 7 -30 -31 r- Output Register 8 -32 -33 r- Output Register 9 -34 -35 r- Output Register 10 -36 -37 r- Output Register 11 -38 -39 r- Output Register 12 -3a -3b r- Output Register 13 -3c -3d r- Output Register 14 -3e -3f r- Output Register 15 -40 -41 r- Output Register 16 -42 -43 r- Output Register 17 -44 -45 r- Output Register 18 -46 -47 r- Output Register 19 -48 -49 r- Output Register 20 -4a -4b r- Output Register 21 -4c -4d r- Output Register 22 -4e -4f r- Output Register 23 -50 -51 r- Output Register 24 -52 -53 r- Output Register 25 -54 -55 r- Output Register 26 -56 -57 r- Output Register 27 -58 -59 r- Output Register 28 -5a -5b r- Output Register 29 -5c -5d r- Output Register 30 -5e -5f r- Output Register 31 -60 -61 r- SR -62 -63 rw SF -64 -65 -66 -67 -68 -69 -6a -6b -6c -6d -6e -6f -70 -71 -72 -73 -74 -75 rw PDR1 -76 -77 rw PDR2 -78 -79 -w DDR1 -7a -7b -w DDR2 -7c -7d -w IOSEL2/1 -7e -7f -w EXLE2/1 -*/ -static UINT8 IOSEL1; -static UINT8 IOSEL2; -static UINT8 EXLE1; -static UINT8 EXLE2; -static UINT8 PDR1; -static UINT8 PDR2; - -#define SH2_DIRECT_MODE_PORT_1 IOSEL1 = 1 -#define SH2_DIRECT_MODE_PORT_2 IOSEL2 = 1 -#define SMPC_CONTROL_MODE_PORT_1 IOSEL1 = 0 -#define SMPC_CONTROL_MODE_PORT_2 IOSEL2 = 0 - -int DectoBCD(int num) -{ - int i, cnt = 0, tmp, res = 0; - - while (num > 0) - { - tmp = num; - while (tmp >= 10) tmp %= 10; - for (i=0; i> 24; } - if (!(mem_mask & 0x00ff0000)) { byte = 1; writedata = data >> 16; } - if (!(mem_mask & 0x0000ff00)) { byte = 2; writedata = data >> 8; } - if (!(mem_mask & 0x000000ff)) { byte = 3; writedata = data >> 0; } - - writedata &= 0xff; - - offset += byte; - - stv_SMPC_w8(offset,writedata); -} - - -/* -(Preliminary) explaination about this: -VBLANK-OUT is used at the start of the vblank period.It also sets the timer zero -variable to 0. -If the Timer Compare register is zero too,the Timer 0 irq is triggered. - -HBLANK-IN is used at the end of each scanline except when in VBLANK-IN/OUT periods. - -The timer 0 is also incremented by one at each HBLANK and checked with the value -of the Timer Compare register;if equal,the timer 0 irq is triggered here too. -Notice that the timer 0 compare register can be more than the VBLANK maximum range,in -this case the timer 0 irq is simply never triggered.This is a known Sega Saturn/ST-V "bug". - -VBLANK-IN is used at the end of the vblank period. - -SCU register[36] is the timer zero compare register. -SCU register[40] is for IRQ masking. -*/ - -/* to do, update bios idle skips so they work better with this arrangement.. */ - - -static INTERRUPT_GEN( stv_interrupt ) -{ - scanline = 261-cpu_getiloops(); - - stv_hblank = 0; - - if(scanline == 0) - { - if(!(stv_scu[40] & 2))/*VBLANK-OUT*/ - { - if(LOG_IRQ) logerror ("Interrupt: VBlank-OUT at scanline %04x, Vector 0x41 Level 0x0e\n",scanline); - cpunum_set_input_line_and_vector(0, 0xe, HOLD_LINE , 0x41); - } - stv_vblank = 0; - } - else if(scanline <= 223 && scanline >= 1)/*Correct?*/ - { - timer_0++; - timer_1++; - stv_hblank = 1; - /*TODO: check this...*/ - /*Timer 1 handling*/ - if((stv_scu[38] & 1)) - { - if((!(stv_scu[40] & 0x10)) && (!(stv_scu[38] & 0x80))) - { - if(LOG_IRQ) logerror ("Interrupt: Timer 1 at scanline %04x, Vector 0x44 Level 0x0b\n",scanline); - cpunum_set_input_line_and_vector(0, 0xb, HOLD_LINE, 0x44 ); - } - else if((!(stv_scu[40] & 0x10)) && (stv_scu[38] & 0x80)) - { - if(timer_1 == (stv_scu[36] & 0x1ff)) - { - if(LOG_IRQ) logerror ("Interrupt: Timer 1 at scanline %04x, Vector 0x44 Level 0x0b\n",scanline); - cpunum_set_input_line_and_vector(0, 0xb, HOLD_LINE, 0x44 ); - } - } - } - if(timer_0 == (stv_scu[36] & 0x1ff)) - { - if(!(stv_scu[40] & 8))/*Timer 0*/ - { - if(LOG_IRQ) logerror ("Interrupt: Timer 0 at scanline %04x, Vector 0x43 Level 0x0c\n",scanline); - cpunum_set_input_line_and_vector(0, 0xc, HOLD_LINE, 0x43 ); - } - } - - /*TODO:use this *at the end* of the draw line.*/ - if(!(stv_scu[40] & 4))/*HBLANK-IN*/ - { - if(LOG_IRQ) logerror ("Interrupt: HBlank-In at scanline %04x, Vector 0x42 Level 0x0d\n",scanline); - cpunum_set_input_line_and_vector(0, 0xd, HOLD_LINE , 0x42); - } - } - else if(scanline == 224) - { - timer_0 = 0; - timer_1 = 0; - - if(!(stv_scu[40] & 1))/*VBLANK-IN*/ - { - if(LOG_IRQ) logerror ("Interrupt: VBlank IN at scanline %04x, Vector 0x40 Level 0x0f\n",scanline); - cpunum_set_input_line_and_vector(0, 0xf, HOLD_LINE , 0x40); - } - stv_vblank = 1; - - if(timer_0 == (stv_scu[36] & 0x1ff)) - { - if(!(stv_scu[40] & 8))/*Timer 0*/ - { - if(LOG_IRQ) logerror ("Interrupt: Timer 0 at scanline %04x, Vector 0x43 Level 0x0c\n",scanline); - cpunum_set_input_line_and_vector(0, 0xc, HOLD_LINE, 0x43 ); - } - } - if(!(stv_scu[40] & 0x2000)) /*Sprite draw end irq*/ - cpunum_set_input_line_and_vector(0, 2, HOLD_LINE , 0x4d); - } -} - -/* -I/O overview: - PORT-A 1st player inputs - PORT-B 2nd player inputs - PORT-C system input - PORT-D system output - PORT-E I/O 1 - PORT-F I/O 2 - PORT-G I/O 3 - PORT-AD AD-Stick inputs?(Fake for now...) - SERIAL COM - -offsets: - 0h PORT-A - 0l PORT-B - 1h PORT-C - 1l PORT-D - 2h PORT-E - 2l PORT-F (extra button layout) - 3h PORT-G - 3l - 4h PORT-SEL - 4l - 5h SERIAL COM WRITE - 5l - 6h SERIAL COM READ - 6l - 7h - 7l PORT-AD -*/ -static UINT8 port_ad[] = -{ - 0xcc,0xb2,0x99,0x7f,0x66,0x4c,0x33,0x19 -}; - -static UINT8 port_sel,mux_data; - -#define HI_WORD_ACCESS (mem_mask & 0x00ff0000) == 0 -#define LO_WORD_ACCESS (mem_mask & 0x000000ff) == 0 - -READ32_HANDLER ( stv_io_r32 ) -{ - static int i= -1; - - switch(offset) - { - case 0: - switch(port_sel) - { - case 0x77: return 0xff000000|(readinputport(2) << 16) |0x0000ff00|(readinputport(3)); - case 0x67: - { - switch(mux_data) - { - /*Mahjong panel interface,bit wise(ACTIVE LOW)*/ - case 0xfe: return 0xff000000 | (readinputport(7) << 16) | 0x0000ff00 | (readinputport(12)); - case 0xfd: return 0xff000000 | (readinputport(8) << 16) | 0x0000ff00 | (readinputport(13)); - case 0xfb: return 0xff000000 | (readinputport(9) << 16) | 0x0000ff00 | (readinputport(14)); - case 0xf7: return 0xff000000 | (readinputport(10) << 16) | 0x0000ff00 | (readinputport(15)); - case 0xef: return 0xff000000 | (readinputport(11) << 16) | 0x0000ff00 | (readinputport(16)); - /*Joystick panel*/ - default: - //popmessage("%02x MUX DATA",mux_data); - return (readinputport(2) << 16) | (readinputport(3)); - } - } - //default: - default: - //popmessage("%02x PORT SEL",port_sel); - return (readinputport(2) << 16) | (readinputport(3)); - } - case 1: - return (readinputport(4) << 16) | (ioga[1]); - case 2: - switch(port_sel) - { - case 0x77: return (readinputport(5) << 16) | (readinputport(6)); - case 0x67: return 0xffffffff;/**/ - case 0x20: return 0xffff0000 | (ioga[2] & 0xffff); - case 0x10: return ((ioga[2] & 0xffff) << 16) | 0xffff; - case 0x60: return 0xffffffff;/**/ - default: - //popmessage("offs: 2 %02x",port_sel); - return 0xffffffff; - } - break; - case 3: - switch(port_sel) - { - case 0x60: return ((ioga[2] & 0xffff) << 16) | 0xffff; - default: - //popmessage("offs: 3 %02x",port_sel); - return 0xffffffff; - } - break; - case 6: - switch(port_sel) - { - case 0x60: return ioga[5]; - default: - //popmessage("offs: 6 %02x",port_sel); - return 0xffffffff; - } - break; - case 7: - popmessage("Read from PORT_AD"); - i++; - return port_ad[i & 7]; - default: - return ioga[offset]; - } -} - -WRITE32_HANDLER ( stv_io_w32 ) -{ - switch(offset) - { - case 1: - if(LO_WORD_ACCESS) - { - /*Why does the BIOS tests these as ACTIVE HIGH?A program bug?*/ - ioga[1] = (data) & 0xff; - coin_counter_w(0,~data & 0x01); - coin_counter_w(1,~data & 0x02); - coin_lockout_w(0,~data & 0x04); - coin_lockout_w(1,~data & 0x08); - /* - other bits reserved - */ - } - break; - case 2: - if(HI_WORD_ACCESS) - { - ioga[2] = data >> 16; - mux_data = ioga[2]; - } - else if(LO_WORD_ACCESS) - ioga[2] = data; - break; - case 3: - if(HI_WORD_ACCESS) - ioga[3] = data; - break; - case 4: - if(HI_WORD_ACCESS) - port_sel = (data & 0xffff0000) >> 16; - break; - case 5: - if(HI_WORD_ACCESS) - ioga[5] = data; - break; - } -} - -/* - -SCU Handling - -*/ - -/********************************************************************************** -SCU Register Table -offset,relative address -Registers are in long words. -=================================================================================== -0 0000 Level 0 DMA Set Register -1 0004 -2 0008 -3 000c -4 0010 -5 0014 -6 0018 -7 001c -8 0020 Level 1 DMA Set Register -9 0024 -10 0028 -11 002c -12 0030 -13 0034 -14 0038 -15 003c -16 0040 Level 2 DMA Set Register -17 0044 -18 0048 -19 004c -20 0050 -21 0054 -22 0058 -23 005c -24 0060 DMA Forced Stop -25 0064 -26 0068 -27 006c -28 0070 -29 0074 -30 0078 -31 007c DMA Status Register -32 0080 DSP Program Control Port -33 0084 DSP Program RAM Data Port -34 0088 DSP Data RAM Address Port -35 008c DSP Data RAM Data Port -36 0090 Timer 0 Compare Register -37 0094 Timer 1 Set Data Register -38 0098 Timer 1 Mode Register -39 009c -40 00a0 Interrupt Mask Register -41 00a4 Interrupt Status Register -42 00a8 A-Bus Interrupt Acknowledge -43 00ac -44 00b0 A-Bus Set Register -45 00b4 -46 00b8 A-Bus Refresh Register -47 00bc -48 00c0 -49 00c4 SCU SDRAM Select Register -50 00c8 SCU Version Register -51 00cc -52 00cf -=================================================================================== -DMA Status Register(32-bit): -xxxx xxxx x--- xx-- xx-- xx-- xx-- xx-- UNUSED ----- ---- -x-- ---- ---- ---- ---- ---- DMA DSP-Bus access ----- ---- --x- ---- ---- ---- ---- ---- DMA B-Bus access ----- ---- ---x ---- ---- ---- ---- ---- DMA A-Bus access ----- ---- ---- --x- ---- ---- ---- ---- DMA lv 1 interrupt ----- ---- ---- ---x ---- ---- ---- ---- DMA lv 0 interrupt ----- ---- ---- ---- --x- ---- ---- ---- DMA lv 2 in stand-by ----- ---- ---- ---- ---x ---- ---- ---- DMA lv 2 in operation ----- ---- ---- ---- ---- --x- ---- ---- DMA lv 1 in stand-by ----- ---- ---- ---- ---- ---x ---- ---- DMA lv 1 in operation ----- ---- ---- ---- ---- ---- --x- ---- DMA lv 0 in stand-by ----- ---- ---- ---- ---- ---- ---x ---- DMA lv 0 in operation ----- ---- ---- ---- ---- ---- ---- --x- DSP side DMA in stand-by ----- ---- ---- ---- ---- ---- ---- ---x DSP side DMA in operation - -**********************************************************************************/ -/* -DMA TODO: --Verify if there are any kind of bugs,do clean-ups,use better comments - and macroize for better reading... --Add timings(but how fast are each DMA?). --Add level priority & DMA status register. --Add DMA start factor conditions that are different than 7. --Add byte data type transfer. --Set boundaries. -*/ - -#define DIRECT_MODE(_lv_) (!(stv_scu[5+(_lv_*8)] & 0x01000000)) -#define INDIRECT_MODE(_lv_) (stv_scu[5+(_lv_*8)] & 0x01000000) -#define DRUP(_lv_) (stv_scu[5+(_lv_*8)] & 0x00010000) -#define DWUP(_lv_) (stv_scu[5+(_lv_*8)] & 0x00000100) - -#define DMA_STATUS (stv_scu[31]) -/*These macros sets the various DMA status flags.*/ -#define D0MV_1 if(!(DMA_STATUS & 0x10)) DMA_STATUS^=0x10 -#define D1MV_1 if(!(DMA_STATUS & 0x100)) DMA_STATUS^=0x100 -#define D2MV_1 if(!(DMA_STATUS & 0x1000)) DMA_STATUS^=0x1000 -#define D0MV_0 if(DMA_STATUS & 0x10) DMA_STATUS^=0x10 -#define D1MV_0 if(DMA_STATUS & 0x100) DMA_STATUS^=0x100 -#define D2MV_0 if(DMA_STATUS & 0x1000) DMA_STATUS^=0x1000 - -UINT32 scu_index_0,scu_index_1,scu_index_2; -static UINT8 scsp_to_main_irq; - -static UINT32 scu_add_tmp; - -/*For area checking*/ -#define ABUS(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x02000000) && ((scu_##_lv_ & 0x07ffffff) <= 0x04ffffff) -#define BBUS(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x05a00000) && ((scu_##_lv_ & 0x07ffffff) <= 0x05ffffff) -#define VDP1_REGS(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x05d00000) && ((scu_##_lv_ & 0x07ffffff) <= 0x05dfffff) -#define VDP2(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x05e00000) && ((scu_##_lv_ & 0x07ffffff) <= 0x05fdffff) -#define WORK_RAM_L(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x00200000) && ((scu_##_lv_ & 0x07ffffff) <= 0x002fffff) -#define WORK_RAM_H(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x06000000) && ((scu_##_lv_ & 0x07ffffff) <= 0x060fffff) -#define SOUND_RAM(_lv_) ((scu_##_lv_ & 0x07ffffff) >= 0x05a00000) && ((scu_##_lv_ & 0x07ffffff) <= 0x05afffff) - -READ32_HANDLER( stv_scu_r32 ) -{ - /*TODO: write only registers must return 0...*/ - //popmessage("%02x",DMA_STATUS); - //if (offset == 23) - //{ - //Super Major League reads here??? - //} - - // Saturn BIOS needs this (need to investigate further) - if (offset == 32) - { - return 0x00100000; - } - - if (offset == 31) - { - if(LOG_SCU) logerror("(PC=%08x) DMA status reg read\n",activecpu_get_pc()); - return stv_scu[offset]; - } - else if ( offset == 35 ) - { - if(LOG_SCU) logerror( "DSP mem read at %08X\n", stv_scu[34]); - return dsp_ram_addr_r(); - } - else if( offset == 41) - { - logerror("(PC=%08x) IRQ status reg read\n",activecpu_get_pc()); - /*TODO:for now we're activating everything here,but we need to return the proper active irqs*/ - return 0xffffffff; - } - else if( offset == 50 ) - { - logerror("(PC=%08x) SCU version reg read\n",activecpu_get_pc()); - return 0x00000000;/*SCU Version 0*/ - } - else - { - if(LOG_SCU) logerror("(PC=%08x) SCU reg read at %d = %08x\n",activecpu_get_pc(),offset,stv_scu[offset]); - return stv_scu[offset]; - } -} - -WRITE32_HANDLER( stv_scu_w32 ) -{ - COMBINE_DATA(&stv_scu[offset]); - - switch(offset) - { - /*LV 0 DMA*/ - case 0: scu_src_0 = ((stv_scu[0] & 0x07ffffff) >> 0); break; - case 1: scu_dst_0 = ((stv_scu[1] & 0x07ffffff) >> 0); break; - case 2: scu_size_0 = ((stv_scu[2] & 0x000fffff) >> 0); break; - case 3: - /*Read address add value for DMA lv 0*/ - if(stv_scu[3] & 0x100) - scu_src_add_0 = 4; - else - scu_src_add_0 = 1; - - /*Write address add value for DMA lv 0*/ - switch(stv_scu[3] & 7) - { - case 0: scu_dst_add_0 = 2; break; - case 1: scu_dst_add_0 = 4; break; - case 2: scu_dst_add_0 = 8; break; - case 3: scu_dst_add_0 = 16; break; - case 4: scu_dst_add_0 = 32; break; - case 5: scu_dst_add_0 = 64; break; - case 6: scu_dst_add_0 = 128; break; - case 7: scu_dst_add_0 = 256; break; - } - break; - case 4: -/* --stv_scu[4] bit 0 is DMA starting bit. - Used when the start factor is 7.Toggle after execution. --stv_scu[4] bit 8 is DMA Enable bit. - This is an execution mask flag. --stv_scu[5] bit 0,bit 1 and bit 2 is DMA starting factor. - It must be 7 for this specific condition. --stv_scu[5] bit 24 is Indirect Mode/Direct Mode (0/1). -*/ - if(stv_scu[4] & 1 && ((stv_scu[5] & 7) == 7) && stv_scu[4] & 0x100) - { - if(DIRECT_MODE(0)) { dma_direct_lv0(); } - else { dma_indirect_lv0(); } - - stv_scu[4]^=1;//disable starting bit. - - /*Sound IRQ*/ - if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) - { - //cpunum_set_input_line_and_vector(0, 9, HOLD_LINE , 0x46); - logerror("SCSP: Main CPU interrupt\n"); - #if 0 - if((scu_dst_0 & 0x7ffffff) != 0x05a00000) - { - if(!(stv_scu[40] & 0x1000)) - { - cpunum_set_input_line_and_vector(0, 3, HOLD_LINE, 0x4c); - logerror("SCU: Illegal DMA interrupt\n"); - } - } - #endif - } - } - break; - case 5: - if(INDIRECT_MODE(0)) - { - if(LOG_SCU) logerror("Indirect Mode DMA lv 0 set\n"); - if(!DWUP(0)) scu_index_0 = scu_dst_0; - } - - /*Start factor enable bits,bit 2,bit 1 and bit 0*/ - if((stv_scu[5] & 7) != 7) - if(LOG_SCU) logerror("Start factor chosen for lv 0 = %d\n",stv_scu[5] & 7); - break; - /*LV 1 DMA*/ - case 8: scu_src_1 = ((stv_scu[8] & 0x07ffffff) >> 0); break; - case 9: scu_dst_1 = ((stv_scu[9] & 0x07ffffff) >> 0); break; - case 10: scu_size_1 = ((stv_scu[10] & 0x00001fff) >> 0); break; - case 11: - /*Read address add value for DMA lv 1*/ - if(stv_scu[11] & 0x100) - scu_src_add_1 = 4; - else - scu_src_add_1 = 1; - - /*Write address add value for DMA lv 1*/ - switch(stv_scu[11] & 7) - { - case 0: scu_dst_add_1 = 2; break; - case 1: scu_dst_add_1 = 4; break; - case 2: scu_dst_add_1 = 8; break; - case 3: scu_dst_add_1 = 16; break; - case 4: scu_dst_add_1 = 32; break; - case 5: scu_dst_add_1 = 64; break; - case 6: scu_dst_add_1 = 128; break; - case 7: scu_dst_add_1 = 256; break; - } - break; - case 12: - if(stv_scu[12] & 1 && ((stv_scu[13] & 7) == 7) && stv_scu[12] & 0x100) - { - if(DIRECT_MODE(1)) { dma_direct_lv1(); } - else { dma_indirect_lv1(); } - - stv_scu[12]^=1; - - /*Sound IRQ*/ - if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) - { - //cpunum_set_input_line_and_vector(0, 9, HOLD_LINE , 0x46); - logerror("SCSP: Main CPU interrupt\n"); - } - } - break; - case 13: - if(INDIRECT_MODE(1)) - { - if(LOG_SCU) logerror("Indirect Mode DMA lv 1 set\n"); - if(!DWUP(1)) scu_index_1 = scu_dst_1; - } - - if((stv_scu[13] & 7) != 7) - if(LOG_SCU) logerror("Start factor chosen for lv 1 = %d\n",stv_scu[13] & 7); - break; - /*LV 2 DMA*/ - case 16: scu_src_2 = ((stv_scu[16] & 0x07ffffff) >> 0); break; - case 17: scu_dst_2 = ((stv_scu[17] & 0x07ffffff) >> 0); break; - case 18: scu_size_2 = ((stv_scu[18] & 0x00001fff) >> 0); break; - case 19: - /*Read address add value for DMA lv 2*/ - if(stv_scu[19] & 0x100) - scu_src_add_2 = 4; - else - scu_src_add_2 = 1; - - /*Write address add value for DMA lv 2*/ - switch(stv_scu[19] & 7) - { - case 0: scu_dst_add_2 = 2; break; - case 1: scu_dst_add_2 = 4; break; - case 2: scu_dst_add_2 = 8; break; - case 3: scu_dst_add_2 = 16; break; - case 4: scu_dst_add_2 = 32; break; - case 5: scu_dst_add_2 = 64; break; - case 6: scu_dst_add_2 = 128; break; - case 7: scu_dst_add_2 = 256; break; - } - break; - case 20: - if(stv_scu[20] & 1 && ((stv_scu[21] & 7) == 7) && stv_scu[20] & 0x100) - { - if(DIRECT_MODE(2)) { dma_direct_lv2(); } - else { dma_indirect_lv2(); } - - stv_scu[20]^=1; - - /*Sound IRQ*/ - if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) - { - //cpunum_set_input_line_and_vector(0, 9, HOLD_LINE , 0x46); - logerror("SCSP: Main CPU interrupt\n"); - } - } - break; - case 21: - if(INDIRECT_MODE(2)) - { - if(LOG_SCU) logerror("Indirect Mode DMA lv 2 set\n"); - if(!DWUP(2)) scu_index_2 = scu_dst_2; - } - - if((stv_scu[21] & 7) != 7) - if(LOG_SCU) logerror("Start factor chosen for lv 2 = %d\n",stv_scu[21] & 7); - break; - case 24: - if(LOG_SCU) logerror("DMA Forced Stop Register set = %02x\n",stv_scu[24]); - break; - case 31: if(LOG_SCU) logerror("Warning: DMA status WRITE! Offset %02x(%d)\n",offset*4,offset); break; - /*DSP section*/ - /*Use functions so it is easier to work out*/ - case 32: - dsp_prg_ctrl(data); - if(LOG_SCU) logerror("SCU DSP: Program Control Port Access %08x\n",data); - break; - case 33: - dsp_prg_data(data); - if(LOG_SCU) logerror("SCU DSP: Program RAM Data Port Access %08x\n",data); - break; - case 34: - dsp_ram_addr_ctrl(data); - if(LOG_SCU) logerror("SCU DSP: Data RAM Address Port Access %08x\n",data); - break; - case 35: - dsp_ram_addr_w(data); - if(LOG_SCU) logerror("SCU DSP: Data RAM Data Port Access %08x\n",data); - break; - case 36: if(LOG_SCU) logerror("timer 0 compare data = %03x\n",stv_scu[36]);break; - case 37: if(LOG_SCU) logerror("timer 1 set data = %08x\n",stv_scu[37]); break; - case 38: if(LOG_SCU) logerror("timer 1 mode data = %08x\n",stv_scu[38]); break; - case 40: - /*An interrupt is masked when his specific bit is 1.*/ - /*Are bit 16-bit 31 for External A-Bus irq mask like the status register?*/ - /*What is 0x00000080 setting?Is it valid?*/ - - /*Take out the common settings to keep logging quiet.*/ - if(stv_scu[40] != 0xfffffffe && - stv_scu[40] != 0xfffffffc && - stv_scu[40] != 0xffffffff) - { - if(LOG_SCU) logerror("cpu #%d (PC=%08X) IRQ mask reg set %08x = %d%d%d%d|%d%d%d%d|%d%d%d%d|%d%d%d%d\n", - cpu_getactivecpu(), activecpu_get_pc(), - stv_scu[offset], - stv_scu[offset] & 0x8000 ? 1 : 0, /*A-Bus irq*/ - stv_scu[offset] & 0x4000 ? 1 : 0, /**/ - stv_scu[offset] & 0x2000 ? 1 : 0, /*Sprite draw end irq(VDP1)*/ - stv_scu[offset] & 0x1000 ? 1 : 0, /*Illegal DMA irq*/ - stv_scu[offset] & 0x0800 ? 1 : 0, /*Lv 0 DMA end irq*/ - stv_scu[offset] & 0x0400 ? 1 : 0, /*Lv 1 DMA end irq*/ - stv_scu[offset] & 0x0200 ? 1 : 0, /*Lv 2 DMA end irq*/ - stv_scu[offset] & 0x0100 ? 1 : 0, /*PAD irq*/ - stv_scu[offset] & 0x0080 ? 1 : 0, /*System Manager(SMPC) irq*/ - stv_scu[offset] & 0x0040 ? 1 : 0, /*Snd req*/ - stv_scu[offset] & 0x0020 ? 1 : 0, /*DSP irq end*/ - stv_scu[offset] & 0x0010 ? 1 : 0, /*Timer 1 irq*/ - stv_scu[offset] & 0x0008 ? 1 : 0, /*Timer 0 irq*/ - stv_scu[offset] & 0x0004 ? 1 : 0, /*HBlank-IN*/ - stv_scu[offset] & 0x0002 ? 1 : 0, /*VBlank-OUT*/ - stv_scu[offset] & 0x0001 ? 1 : 0);/*VBlank-IN*/ - } - break; - case 41: - /*This is r/w by introdon...*/ - if(LOG_SCU) logerror("IRQ status reg set:%08x\n",stv_scu[41]); - break; - case 42: if(LOG_SCU) logerror("A-Bus IRQ ACK %08x\n",stv_scu[42]); break; - case 49: if(LOG_SCU) logerror("SCU SDRAM set: %02x\n",stv_scu[49]); break; - default: if(LOG_SCU) logerror("Warning: unused SCU reg set %d = %08x\n",offset,data); - } -} - -static void dma_direct_lv0() -{ - static UINT32 tmp_src,tmp_dst,tmp_size; - if(LOG_SCU) logerror("DMA lv 0 transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_0,scu_dst_0,scu_size_0); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_0,scu_dst_add_0); - - D0MV_1; - - if(scu_size_0 == 0) scu_size_0 = 0x00100000; - - scsp_to_main_irq = 0; - - /*set here the boundaries checks*/ - /*...*/ - - if(SOUND_RAM(dst_0)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if((scu_dst_add_0 != scu_src_add_0) && (ABUS(src_0))) - { - logerror("A-Bus invalid transfer,sets to default\n"); - scu_add_tmp = (scu_dst_add_0*0x100) | (scu_src_add_0); - scu_dst_add_0 = scu_src_add_0 = 4; - scu_add_tmp |= 0x80000000; - } - /*Let me know if you encounter any of these three*/ - if(ABUS(dst_0)) - { - logerror("A-Bus invalid write\n"); - /*...*/ - } - if(WORK_RAM_L(dst_0)) - { - logerror("WorkRam-L invalid write\n"); - /*...*/ - } - if(VDP2(src_0)) - { - logerror("VDP-2 invalid read\n"); - /*...*/ - } - if(VDP1_REGS(dst_0)) - { - logerror("VDP1 register access,must be in word units\n"); - scu_add_tmp = (scu_dst_add_0*0x100) | (scu_src_add_0); - scu_dst_add_0 = scu_src_add_0 = 2; - scu_add_tmp |= 0x80000000; - } - if(DRUP(0)) - { - logerror("Data read update = 1,read address add value must be 1 too\n"); - scu_add_tmp = (scu_dst_add_0*0x100) | (scu_src_add_0); - scu_src_add_0 = 4; - scu_add_tmp |= 0x80000000; - } - - if (WORK_RAM_H(dst_0) && (scu_dst_add_0 != 4)) - { - scu_add_tmp = (scu_dst_add_0*0x100) | (scu_src_add_0); - scu_dst_add_0 = 4; - scu_add_tmp |= 0x80000000; - } - - tmp_size = scu_size_0; - if(!(DRUP(0))) tmp_src = scu_src_0; - if(!(DWUP(0))) tmp_dst = scu_dst_0; - - for (; scu_size_0 > 0; scu_size_0-=scu_dst_add_0) - { - if(scu_dst_add_0 == 2) - program_write_word(scu_dst_0,program_read_word(scu_src_0)); - else if(scu_dst_add_0 == 8) - { - program_write_word(scu_dst_0,program_read_word(scu_src_0)); - program_write_word(scu_dst_0+2,program_read_word(scu_src_0)); - program_write_word(scu_dst_0+4,program_read_word(scu_src_0+2)); - program_write_word(scu_dst_0+6,program_read_word(scu_src_0+2)); - } - else - { - program_write_word(scu_dst_0,program_read_word(scu_src_0)); - program_write_word(scu_dst_0+2,program_read_word(scu_src_0+2)); - } - - scu_dst_0+=scu_dst_add_0; - scu_src_0+=scu_src_add_0; - } - - scu_size_0 = tmp_size; - if(!(DRUP(0))) scu_src_0 = tmp_src; - if(!(DWUP(0))) scu_dst_0 = tmp_dst; - - if(LOG_SCU) logerror("DMA transfer END\n"); - if(!(stv_scu[40] & 0x800))/*Lv 0 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 5, HOLD_LINE , 0x4b); - - if(scu_add_tmp & 0x80000000) - { - scu_dst_add_0 = (scu_add_tmp & 0xff00) >> 8; - scu_src_add_0 = (scu_add_tmp & 0x00ff) >> 0; - scu_add_tmp^=0x80000000; - } - - D0MV_0; -} - -static void dma_direct_lv1() -{ - static UINT32 tmp_src,tmp_dst,tmp_size; - if(LOG_SCU) logerror("DMA lv 1 transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_1,scu_dst_1,scu_size_1); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_1,scu_dst_add_1); - - D1MV_1; - - if(scu_size_1 == 0) scu_size_1 = 0x00002000; - - scsp_to_main_irq = 0; - - /*set here the boundaries checks*/ - /*...*/ - - if(SOUND_RAM(dst_1)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if((scu_dst_add_1 != scu_src_add_1) && (ABUS(src_1))) - { - logerror("A-Bus invalid transfer,sets to default\n"); - scu_add_tmp = (scu_dst_add_1*0x100) | (scu_src_add_1); - scu_dst_add_1 = scu_src_add_1 = 4; - scu_add_tmp |= 0x80000000; - } - /*Let me know if you encounter any of these ones*/ - if(ABUS(dst_1)) - { - logerror("A-Bus invalid write\n"); - /*...*/ - } - if(WORK_RAM_L(dst_1)) - { - logerror("WorkRam-L invalid write\n"); - /*...*/ - } - if(VDP1_REGS(dst_1)) - { - logerror("VDP1 register access,must be in word units\n"); - scu_add_tmp = (scu_dst_add_1*0x100) | (scu_src_add_1); - scu_dst_add_1 = scu_src_add_1 = 2; - scu_add_tmp |= 0x80000000; - } - if(VDP2(src_1)) - { - logerror("VDP-2 invalid read\n"); - /*...*/ - } - if(DRUP(1)) - { - logerror("Data read update = 1,read address add value must be 1 too\n"); - scu_add_tmp = (scu_dst_add_1*0x100) | (scu_src_add_1); - scu_src_add_1 = 4; - scu_add_tmp |= 0x80000000; - } - - if (WORK_RAM_H(dst_1) && (scu_dst_add_1 != 4)) - { - scu_add_tmp = (scu_dst_add_1*0x100) | (scu_src_add_1); - scu_src_add_1 = 4; - scu_add_tmp |= 0x80000000; - } - - tmp_size = scu_size_1; - if(!(DRUP(1))) tmp_src = scu_src_1; - if(!(DWUP(1))) tmp_dst = scu_dst_1; - - for (; scu_size_1 > 0; scu_size_1-=scu_dst_add_1) - { - if(scu_dst_add_1 == 2) - program_write_word(scu_dst_1,program_read_word(scu_src_1)); - else - { - program_write_word(scu_dst_1,program_read_word(scu_src_1)); - program_write_word(scu_dst_1+2,program_read_word(scu_src_1+2)); - } - - scu_dst_1+=scu_dst_add_1; - scu_src_1+=scu_src_add_1; - } - - scu_size_1 = tmp_size; - if(!(DRUP(1))) scu_src_1 = tmp_src; - if(!(DWUP(1))) scu_dst_1 = tmp_dst; - - if(LOG_SCU) logerror("DMA transfer END\n"); - if(!(stv_scu[40] & 0x400))/*Lv 1 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 6, HOLD_LINE , 0x4a); - - if(scu_add_tmp & 0x80000000) - { - scu_dst_add_1 = (scu_add_tmp & 0xff00) >> 8; - scu_src_add_1 = (scu_add_tmp & 0x00ff) >> 0; - scu_add_tmp^=0x80000000; - } - - D1MV_0; -} - -static void dma_direct_lv2() -{ - static UINT32 tmp_src,tmp_dst,tmp_size; - if(LOG_SCU) logerror("DMA lv 2 transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_2,scu_dst_2,scu_size_2); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_2,scu_dst_add_2); - - D2MV_1; - - scsp_to_main_irq = 0; - - if(scu_size_2 == 0) scu_size_2 = 0x00002000; - - /*set here the boundaries checks*/ - /*...*/ - - if(SOUND_RAM(dst_2)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if((scu_dst_add_2 != scu_src_add_2) && (ABUS(src_2))) - { - logerror("A-Bus invalid transfer,sets to default\n"); - scu_add_tmp = (scu_dst_add_2*0x100) | (scu_src_add_2); - scu_dst_add_2 = scu_src_add_2 = 4; - scu_add_tmp |= 0x80000000; - } - /*Let me know if you encounter any of these ones*/ - if(ABUS(dst_2)) - { - logerror("A-Bus invalid write\n"); - /*...*/ - } - if(WORK_RAM_L(dst_2)) - { - logerror("WorkRam-L invalid write\n"); - /*...*/ - } - if(VDP1_REGS(dst_2)) - { - logerror("VDP1 register access,must be in word units\n"); - scu_add_tmp = (scu_dst_add_2*0x100) | (scu_src_add_2); - scu_dst_add_2 = scu_src_add_2 = 2; - scu_add_tmp |= 0x80000000; - } - if(VDP2(src_2)) - { - logerror("VDP-2 invalid read\n"); - /*...*/ - } - if(DRUP(2)) - { - logerror("Data read update = 1,read address add value must be 1 too\n"); - scu_add_tmp = (scu_dst_add_2*0x100) | (scu_src_add_2); - scu_src_add_2 = 4; - scu_add_tmp |= 0x80000000; - } - - if (WORK_RAM_H(dst_2) && (scu_dst_add_2 != 4)) - { - scu_add_tmp = (scu_dst_add_2*0x100) | (scu_src_add_2); - scu_src_add_2 = 4; - scu_add_tmp |= 0x80000000; - } - - tmp_size = scu_size_2; - if(!(DRUP(2))) tmp_src = scu_src_2; - if(!(DWUP(2))) tmp_dst = scu_dst_2; - - for (; scu_size_2 > 0; scu_size_2-=scu_dst_add_2) - { - if(scu_dst_add_2 == 2) - program_write_word(scu_dst_2,program_read_word(scu_src_2)); - else - { - program_write_word(scu_dst_2,program_read_word(scu_src_2)); - program_write_word(scu_dst_2+2,program_read_word(scu_src_2+2)); - } - - scu_dst_2+=scu_dst_add_2; - scu_src_2+=scu_src_add_2; - } - - scu_size_2 = tmp_size; - if(!(DRUP(2))) scu_src_2 = tmp_src; - if(!(DWUP(2))) scu_dst_2 = tmp_dst; - - if(LOG_SCU) logerror("DMA transfer END\n"); - if(!(stv_scu[40] & 0x200))/*Lv 2 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 6, HOLD_LINE , 0x49); - - if(scu_add_tmp & 0x80000000) - { - scu_dst_add_2 = (scu_add_tmp & 0xff00) >> 8; - scu_src_add_2 = (scu_add_tmp & 0x00ff) >> 0; - scu_add_tmp^=0x80000000; - } - - D2MV_0; -} - -static void dma_indirect_lv0() -{ - /*Helper to get out of the cycle*/ - UINT8 job_done = 0; - /*temporary storage for the transfer data*/ - UINT32 tmp_src; - - D0MV_1; - - scsp_to_main_irq = 0; - - if(scu_index_0 == 0) { scu_index_0 = scu_dst_0; } - - do{ - tmp_src = scu_index_0; - - /*Thanks for Runik of Saturnin for pointing this out...*/ - scu_size_0 = program_read_dword(scu_index_0); - scu_src_0 = program_read_dword(scu_index_0+8); - scu_dst_0 = program_read_dword(scu_index_0+4); - - /*Indirect Mode end factor*/ - if(scu_src_0 & 0x80000000) - job_done = 1; - - if(SOUND_RAM(dst_0)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if(LOG_SCU) logerror("DMA lv 0 indirect mode transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_0,scu_dst_0,scu_size_0); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_0,scu_dst_add_0); - - //guess,but I believe it's right. - scu_src_0 &=0x07ffffff; - scu_dst_0 &=0x07ffffff; - scu_size_0 &=0xfffff; - - for (; scu_size_0 > 0; scu_size_0-=scu_dst_add_0) - { - if(scu_dst_add_0 == 2) - program_write_word(scu_dst_0,program_read_word(scu_src_0)); - else - { - /* some games, eg columns97 are a bit weird, I'm not sure this is correct - they start a dma on a 2 byte boundary in 4 byte add mode, using the dword reads we - can't access 2 byte boundaries, and the end of the sprite list never gets marked, - the length of the transfer is also set to a 2 byte boundary, maybe the add values - should be different, I don't know */ - program_write_word(scu_dst_0,program_read_word(scu_src_0)); - program_write_word(scu_dst_0+2,program_read_word(scu_src_0+2)); - } - scu_dst_0+=scu_dst_add_0; - scu_src_0+=scu_src_add_0; - } - - //if(DRUP(0)) program_write_dword(tmp_src+8,scu_src_0|job_done ? 0x80000000 : 0); - //if(DWUP(0)) program_write_dword(tmp_src+4,scu_dst_0); - - scu_index_0 = tmp_src+0xc; - - }while(job_done == 0); - - if(!(stv_scu[40] & 0x800))/*Lv 0 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 5, HOLD_LINE , 0x4b); - - D0MV_0; -} - -static void dma_indirect_lv1() -{ - /*Helper to get out of the cycle*/ - UINT8 job_done = 0; - /*temporary storage for the transfer data*/ - UINT32 tmp_src; - - D1MV_1; - - scsp_to_main_irq = 0; - - if(scu_index_1 == 0) { scu_index_1 = scu_dst_1; } - - do{ - tmp_src = scu_index_1; - - scu_size_1 = program_read_dword(scu_index_1); - scu_src_1 = program_read_dword(scu_index_1+8); - scu_dst_1 = program_read_dword(scu_index_1+4); - - /*Indirect Mode end factor*/ - if(scu_src_1 & 0x80000000) - job_done = 1; - - if(SOUND_RAM(dst_1)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if(LOG_SCU) logerror("DMA lv 1 indirect mode transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_1,scu_dst_1,scu_size_1); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_1,scu_dst_add_1); - - //guess,but I believe it's right. - scu_src_1 &=0x07ffffff; - scu_dst_1 &=0x07ffffff; - scu_size_1 &=0xffff; - - - for (; scu_size_1 > 0; scu_size_1-=scu_dst_add_1) - { - - if(scu_dst_add_1 == 2) - program_write_word(scu_dst_1,program_read_word(scu_src_1)); - else - { - /* some games, eg columns97 are a bit weird, I'm not sure this is correct - they start a dma on a 2 byte boundary in 4 byte add mode, using the dword reads we - can't access 2 byte boundaries, and the end of the sprite list never gets marked, - the length of the transfer is also set to a 2 byte boundary, maybe the add values - should be different, I don't know */ - program_write_word(scu_dst_1,program_read_word(scu_src_1)); - program_write_word(scu_dst_1+2,program_read_word(scu_src_1+2)); - } - scu_dst_1+=scu_dst_add_1; - scu_src_1+=scu_src_add_1; - } - - //if(DRUP(1)) program_write_dword(tmp_src+8,scu_src_1|job_done ? 0x80000000 : 0); - //if(DWUP(1)) program_write_dword(tmp_src+4,scu_dst_1); - - scu_index_1 = tmp_src+0xc; - - }while(job_done == 0); - - if(!(stv_scu[40] & 0x400))/*Lv 1 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 6, HOLD_LINE , 0x4a); - - D1MV_0; -} - -static void dma_indirect_lv2() -{ - /*Helper to get out of the cycle*/ - UINT8 job_done = 0; - /*temporary storage for the transfer data*/ - UINT32 tmp_src; - - D2MV_1; - - scsp_to_main_irq = 0; - - if(scu_index_2 == 0) { scu_index_2 = scu_dst_2; } - - do{ - tmp_src = scu_index_2; - - scu_size_2 = program_read_dword(scu_index_2); - scu_src_2 = program_read_dword(scu_index_2+8); - scu_dst_2 = program_read_dword(scu_index_2+4); - - /*Indirect Mode end factor*/ - if(scu_src_2 & 0x80000000) - job_done = 1; - - if(SOUND_RAM(dst_2)) - { - logerror("Sound RAM DMA write\n"); - scsp_to_main_irq = 1; - } - - if(LOG_SCU) logerror("DMA lv 2 indirect mode transfer START\n" - "Start %08x End %08x Size %04x\n",scu_src_2,scu_dst_2,scu_size_2); - if(LOG_SCU) logerror("Start Add %04x Destination Add %04x\n",scu_src_add_2,scu_dst_add_2); - - //guess,but I believe it's right. - scu_src_2 &=0x07ffffff; - scu_dst_2 &=0x07ffffff; - scu_size_2 &=0xffff; - - for (; scu_size_2 > 0; scu_size_2-=scu_dst_add_2) - { - if(scu_dst_add_2 == 2) - program_write_word(scu_dst_2,program_read_word(scu_src_2)); - else - { - /* some games, eg columns97 are a bit weird, I'm not sure this is correct - they start a dma on a 2 byte boundary in 4 byte add mode, using the dword reads we - can't access 2 byte boundaries, and the end of the sprite list never gets marked, - the length of the transfer is also set to a 2 byte boundary, maybe the add values - should be different, I don't know */ - program_write_word(scu_dst_2,program_read_word(scu_src_2)); - program_write_word(scu_dst_2+2,program_read_word(scu_src_2+2)); - } - - scu_dst_2+=scu_dst_add_2; - scu_src_2+=scu_src_add_2; - } - - //if(DRUP(2)) program_write_dword(tmp_src+8,scu_src_2|job_done ? 0x80000000 : 0); - //if(DWUP(2)) program_write_dword(tmp_src+4,scu_dst_2); - - scu_index_2 = tmp_src+0xc; - - }while(job_done == 0); - - if(!(stv_scu[40] & 0x200))/*Lv 2 DMA end irq*/ - cpunum_set_input_line_and_vector(0, 6, HOLD_LINE , 0x49); - - D2MV_0; -} - - -/**************************************************************************************/ - -WRITE32_HANDLER( stv_sh2_soundram_w ) -{ - COMBINE_DATA(sound_ram+offset*2+1); - data >>= 16; - mem_mask >>= 16; - COMBINE_DATA(sound_ram+offset*2); -} - -READ32_HANDLER( stv_sh2_soundram_r ) -{ - return (sound_ram[offset*2]<<16)|sound_ram[offset*2+1]; -} - -static READ32_HANDLER( stv_scsp_regs_r32 ) -{ - offset <<= 1; - return (SCSP_0_r(offset+1, 0xffff) | (SCSP_0_r(offset, 0xffff)<<16)); -} - -static WRITE32_HANDLER( stv_scsp_regs_w32 ) -{ - offset <<= 1; - SCSP_0_w(offset, data>>16, mem_mask >> 16); - SCSP_0_w(offset+1, data, mem_mask); -} - -/* communication,SLAVE CPU acquires data from the MASTER CPU and triggers an irq. * - * Enter into Radiant Silver Gun specific menu for a test... */ -static WRITE32_HANDLER( minit_w ) -{ - logerror("cpu #%d (PC=%08X) MINIT write = %08x\n",cpu_getactivecpu(), activecpu_get_pc(),data); - cpu_boost_interleave(minit_boost_timeslice, TIME_IN_USEC(minit_boost)); - cpu_trigger(1000); - cpunum_set_info_int(1, CPUINFO_INT_SH2_FRT_INPUT, PULSE_LINE); -} - -static WRITE32_HANDLER( sinit_w ) -{ - logerror("cpu #%d (PC=%08X) SINIT write = %08x\n",cpu_getactivecpu(), activecpu_get_pc(),data); - cpu_boost_interleave(sinit_boost_timeslice, TIME_IN_USEC(sinit_boost)); - cpunum_set_info_int(0, CPUINFO_INT_SH2_FRT_INPUT, PULSE_LINE); -} - -extern WRITE32_HANDLER ( stv_vdp2_vram_w ); -extern READ32_HANDLER ( stv_vdp2_vram_r ); - -extern WRITE32_HANDLER ( stv_vdp2_cram_w ); -extern READ32_HANDLER ( stv_vdp2_cram_r ); - -extern WRITE32_HANDLER ( stv_vdp2_regs_w ); -extern READ32_HANDLER ( stv_vdp2_regs_r ); - -extern VIDEO_START ( stv_vdp2 ); -extern VIDEO_UPDATE( stv_vdp2 ); - -extern READ32_HANDLER( stv_vdp1_regs_r ); -extern WRITE32_HANDLER( stv_vdp1_regs_w ); -extern READ32_HANDLER ( stv_vdp1_vram_r ); -extern WRITE32_HANDLER ( stv_vdp1_vram_w ); - -extern WRITE32_HANDLER ( stv_vdp1_framebuffer0_w ); -extern READ32_HANDLER ( stv_vdp1_framebuffer0_r ); - -extern WRITE32_HANDLER ( stv_vdp1_framebuffer1_w ); -extern READ32_HANDLER ( stv_vdp1_framebuffer1_r ); - -static READ32_HANDLER( stv_sh2_random_r ) -{ - return 0xffffffff; -} - -static READ32_HANDLER( saturn_unk_r ) -{ - return 0; -} - -static ADDRESS_MAP_START( saturn_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x0007ffff) AM_ROM // bios - AM_RANGE(0x00100000, 0x0010007f) AM_READWRITE(stv_SMPC_r32, stv_SMPC_w32) - AM_RANGE(0x00200000, 0x002fffff) AM_RAM AM_MIRROR(0x100000) AM_SHARE(2) AM_BASE(&stv_workram_l) - AM_RANGE(0x01000000, 0x01000003) AM_WRITE(minit_w) - AM_RANGE(0x01406f40, 0x01406f43) AM_WRITE(minit_w) // prikura seems to write here .. - AM_RANGE(0x01800000, 0x01800003) AM_WRITE(sinit_w) - AM_RANGE(0x02000000, 0x04ffffff) AM_READNOP AM_WRITENOP // cartridge space - AM_RANGE(0x05800000, 0x0589ffff) AM_READWRITE(stvcd_r, stvcd_w) - /* Sound */ - AM_RANGE(0x05a00000, 0x05a7ffff) AM_READWRITE(stv_sh2_soundram_r, stv_sh2_soundram_w) - AM_RANGE(0x05b00000, 0x05b00fff) AM_READWRITE(stv_scsp_regs_r32, stv_scsp_regs_w32) - /* VDP1 */ - /*0x05c00000-0x05c7ffff VRAM*/ - /*0x05c80000-0x05c9ffff Frame Buffer 0*/ - /*0x05ca0000-0x05cbffff Frame Buffer 1*/ - /*0x05d00000-0x05d7ffff VDP1 Regs */ - AM_RANGE(0x05c00000, 0x05c7ffff) AM_READWRITE(stv_vdp1_vram_r, stv_vdp1_vram_w) - AM_RANGE(0x05c80000, 0x05cbffff) AM_READWRITE(stv_vdp1_framebuffer0_r, stv_vdp1_framebuffer0_w) - AM_RANGE(0x05d00000, 0x05d0001f) AM_READWRITE(stv_vdp1_regs_r, stv_vdp1_regs_w) - AM_RANGE(0x05e00000, 0x05efffff) AM_READWRITE(stv_vdp2_vram_r, stv_vdp2_vram_w) - AM_RANGE(0x05f00000, 0x05f7ffff) AM_READWRITE(stv_vdp2_cram_r, stv_vdp2_cram_w) - AM_RANGE(0x05f80000, 0x05fbffff) AM_READWRITE(stv_vdp2_regs_r, stv_vdp2_regs_w) - AM_RANGE(0x05fe0000, 0x05fe00cf) AM_READWRITE(stv_scu_r32, stv_scu_w32) - AM_RANGE(0x06000000, 0x060fffff) AM_RAM AM_MIRROR(0x01f00000) AM_SHARE(3) AM_BASE(&stv_workram_h) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_REGION(REGION_CPU3, 0) AM_BASE(&sound_ram) - AM_RANGE(0x100000, 0x100fff) AM_READWRITE(SCSP_0_r, SCSP_0_w) -ADDRESS_MAP_END - -#define STV_PLAYER_INPUTS(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) - -INPUT_PORTS_START( saturn ) - PORT_START - PORT_DIPNAME( 0x01, 0x01, "PDR1" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, "PDR2" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - STV_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START - STV_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) -/* - PORT_START - STV_PLAYER_INPUTS(3, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START - STV_PLAYER_INPUTS(4, BUTTON1, BUTTON2, BUTTON3, BUTTON4) -*/ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1P Push Switch") PORT_CODE(KEYCODE_7) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("2P Push Switch") PORT_CODE(KEYCODE_8) - - /*This *might* be unused...*/ - PORT_START - PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - /*Extra button layout,used by Power Instinct 3 & Suikoenbu*/ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - /*We don't need these,AFAIK the country code doesn't work either...*/ - #if 0 - PORT_START //7 - PORT_DIPNAME( 0x0f, 0x01, "Country" ) - PORT_DIPSETTING( 0x01, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x02, "Asia Ntsc" ) - PORT_DIPSETTING( 0x04, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x08, "Sud America Ntsc" ) - PORT_DIPSETTING( 0x06, "Korea" ) - PORT_DIPSETTING( 0x0a, "Asia Pal" ) - PORT_DIPSETTING( 0x0c, "Europe/Other Pal" ) - PORT_DIPSETTING( 0x0d, "Sud America Pal" ) - - PORT_START /* Pad data 1a */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("B") PORT_CODE(KEYCODE_U) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("C") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("A") PORT_CODE(KEYCODE_T) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Start") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Up") PORT_CODE(KEYCODE_I) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Down") PORT_CODE(KEYCODE_K) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left") PORT_CODE(KEYCODE_J) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right") PORT_CODE(KEYCODE_L) - - PORT_START /* Pad data 1b */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L trig") PORT_CODE(KEYCODE_A) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Z") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Y") PORT_CODE(KEYCODE_W) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("X") PORT_CODE(KEYCODE_E) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R trig") PORT_CODE(KEYCODE_S) - #endif -INPUT_PORTS_END - -DRIVER_INIT ( saturn ) -{ - mame_system_time systime; - - /* get the current date/time from the core */ - mame_get_current_datetime(Machine, &systime); - - /* amount of time to boost interleave for on MINIT / SINIT, needed for communication to work */ - minit_boost = 400; - sinit_boost = 400; - minit_boost_timeslice = 0; - sinit_boost_timeslice = 0; - - smpc_ram = auto_malloc (0x80); - stv_scu = auto_malloc (0x100); - scsp_regs = auto_malloc (0x1000); - - smpc_ram[0x23] = DectoBCD(systime.local_time.year / 100); - smpc_ram[0x25] = DectoBCD(systime.local_time.year % 100); - smpc_ram[0x27] = (systime.local_time.weekday << 4) | (systime.local_time.month + 1); - smpc_ram[0x29] = DectoBCD(systime.local_time.mday); - smpc_ram[0x2b] = DectoBCD(systime.local_time.hour); - smpc_ram[0x2d] = DectoBCD(systime.local_time.minute); - smpc_ram[0x2f] = DectoBCD(systime.local_time.second); - smpc_ram[0x31] = 0x00; //CTG1=0 CTG0=0 (correct??) -// smpc_ram[0x33] = readinputport(7); - smpc_ram[0x5f] = 0x10; -} - -static int scsp_last_line = 0; - -MACHINE_START( saturn ) -{ - SCSP_set_ram_base(0, sound_ram); - - // save states - state_save_register_global_pointer(smpc_ram, 0x80); - state_save_register_global_pointer(stv_scu, 0x100/4); - state_save_register_global_pointer(scsp_regs, 0x1000/2); - state_save_register_global(stv_vblank); - state_save_register_global(stv_hblank); - state_save_register_global(stv_enable_slave_sh2); - state_save_register_global(NMI_reset); - state_save_register_global(en_68k); - state_save_register_global(timer_0); - state_save_register_global(timer_1); - state_save_register_global(scanline); - state_save_register_global(IOSEL1); - state_save_register_global(IOSEL2); - state_save_register_global(EXLE1); - state_save_register_global(EXLE2); - state_save_register_global(PDR1); - state_save_register_global(PDR2); - state_save_register_global(port_sel); - state_save_register_global(mux_data); - state_save_register_global(scsp_last_line); - - return 0; -} - -MACHINE_RESET( saturn ) -{ - // don't let the slave cpu and the 68k go anywhere - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - stv_enable_slave_sh2 = 0; - cpunum_set_input_line(2, INPUT_LINE_RESET, ASSERT_LINE); - - timer_0 = 0; - timer_1 = 0; - en_68k = 0; - NMI_reset = 1; - smpc_ram[0x21] = (0x80) | ((NMI_reset & 1) << 6); - - cpunum_set_clock(0, MASTER_CLOCK_320/2); - cpunum_set_clock(1, MASTER_CLOCK_320/2); - cpunum_set_clock(2, MASTER_CLOCK_320/5); - - stvcd_reset(); -} - -static const gfx_layout tiles8x8x4_layout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tiles16x16x4_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, - 32*8+0, 32*8+4, 32*8+8, 32*8+12, 32*8+16, 32*8+20, 32*8+24, 32*8+28, - - }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 32*16, 32*17,32*18, 32*19,32*20,32*21,32*22,32*23 - - }, - 32*32 -}; - -static const gfx_layout tiles8x8x8_layout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0, 8, 16, 24, 32, 40, 48, 56 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -static const gfx_layout tiles16x16x8_layout = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0, 8, 16, 24, 32, 40, 48, 56, - 64*8+0, 65*8, 66*8, 67*8, 68*8, 69*8, 70*8, 71*8 - - }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 64*16, 64*17, 64*18, 64*19, 64*20, 64*21, 64*22, 64*23 - }, - 128*16 -}; - - - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tiles8x8x4_layout, 0x00, (0x80*(2+1)) }, - { REGION_GFX1, 0, &tiles16x16x4_layout, 0x00, (0x80*(2+1)) }, - { REGION_GFX1, 0, &tiles8x8x8_layout, 0x00, (0x08*(2+1)) }, - { REGION_GFX1, 0, &tiles16x16x8_layout, 0x00, (0x08*(2+1)) }, - - /* vdp1 .. pointless for drawing but can help us debug */ - { REGION_GFX2, 0, &tiles8x8x4_layout, 0x00, 0x100 }, - { REGION_GFX2, 0, &tiles16x16x4_layout, 0x00, 0x100 }, - { REGION_GFX2, 0, &tiles8x8x8_layout, 0x00, 0x20 }, - { REGION_GFX2, 0, &tiles16x16x8_layout, 0x00, 0x20 }, - - { -1 } /* end of array */ -}; - -struct sh2_config sh2_conf_master = { 0 }; -struct sh2_config sh2_conf_slave = { 1 }; - -static void scsp_irq(int irq) -{ - // don't bother the 68k if it's off - if (!en_68k) - { - return; - } - - if (irq > 0) - { - scsp_last_line = irq; - cpunum_set_input_line(2, irq, ASSERT_LINE); - } - else if (irq < 0) - { - cpunum_set_input_line(2, -irq, CLEAR_LINE); - } - else - { - cpunum_set_input_line(2, scsp_last_line, CLEAR_LINE); - } -} - -static struct SCSPinterface scsp_interface = -{ - REGION_CPU3, - 0, - scsp_irq -}; - -static MACHINE_DRIVER_START( saturn ) - - /* basic machine hardware */ - MDRV_CPU_ADD(SH2, MASTER_CLOCK_352/2) // 28.6364 MHz - MDRV_CPU_PROGRAM_MAP(saturn_mem, 0) - MDRV_CPU_VBLANK_INT(stv_interrupt,264)/*264 lines,224 display lines*/ - MDRV_CPU_CONFIG(sh2_conf_master) - - MDRV_CPU_ADD(SH2, MASTER_CLOCK_352/2) // 28.6364 MHz - MDRV_CPU_PROGRAM_MAP(saturn_mem, 0) - MDRV_CPU_CONFIG(sh2_conf_slave) - - MDRV_CPU_ADD(M68000, MASTER_CLOCK_352/5) //11.46 MHz - MDRV_CPU_PROGRAM_MAP(sound_mem, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(192)) // guess, needed to force video update after V-Blank OUT interrupt - - MDRV_MACHINE_START(saturn) - MDRV_MACHINE_RESET(saturn) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(1024, 1024) - MDRV_SCREEN_VISIBLE_AREA(0*8, 703, 0*8, 512) // we need to use a resolution as high as the max size it can change to - MDRV_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_VIDEO_START(stv_vdp2) - MDRV_VIDEO_UPDATE(stv_vdp2) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(SCSP, 0) - MDRV_SOUND_CONFIG(scsp_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -ROM_START(saturn) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH2 code */ - ROM_LOAD("sega_101.bin", 0x00000000, 0x00080000, CRC(224b752c)) - ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ - ROM_COPY( REGION_CPU1,0,0,0x080000) - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* VDP2 GFX */ - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* VDP1 GFX */ -ROM_END - -ROM_START(saturnus) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH2 code */ - ROM_LOAD("sega_us.bin", 0x00000000, 0x00080000, CRC(f90f0089)) - ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ - ROM_COPY( REGION_CPU1,0,0,0x080000) - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* VDP2 GFX */ - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* VDP1 GFX */ -ROM_END - -ROM_START(saturneu) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH2 code */ - ROM_LOAD("sega_eu.bin", 0x00000000, 0x00080000, CRC(4afcf0fa)) - ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ - ROM_COPY( REGION_CPU1,0,0,0x080000) - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* VDP2 GFX */ - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* VDP1 GFX */ -ROM_END - -static void saturn_chdcd_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* CHD CD-ROM */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cdrom_device_getinfo(devclass, state, info); - } -} - -SYSTEM_CONFIG_START( saturn ) - CONFIG_DEVICE(saturn_chdcd_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS(1994, saturn, 0, 0, saturn, saturn, saturn, saturn, "Sega", "Saturn (Japan v1.01)", GAME_NOT_WORKING) -CONS(1994, saturnus, 0, 0, saturn, saturn, saturn, saturn, "Sega", "Saturn (US)", GAME_NOT_WORKING) -CONS(1994, saturneu, 0, 0, saturn, saturn, saturn, saturn, "Sega", "Saturn (Europe)", GAME_NOT_WORKING) - - diff --git a/mess/systems/sms.c b/mess/systems/sms.c deleted file mode 100644 index de2b8ec3c..000000000 --- a/mess/systems/sms.c +++ /dev/null @@ -1,365 +0,0 @@ -/****************************************************************************** - Contributors: - - Marat Fayzullin (MG source) - Charles Mac Donald - Mathis Rosenhauer - Brad Oliver - Michael Luong - - To do: - - - PSG control for Game Gear (needs custom SN76489 with stereo output for each channel) - - SIO interface for Game Gear (needs netplay, I guess) - - SMS lightgun support - - LCD persistence emulation for GG - - SMS 3D glass support - - The Game Gear SIO and PSG hardware are not emulated but have some - placeholders in 'machine/sms.c' - - Changes: - Apr 02 - Added raster palette effects for SMS & GG (ML) - - Added sprite collision (ML) - - Added zoomed sprites (ML) - May 02 - Fixed paging bug (ML) - - Fixed sprite and tile priority bug (ML) - - Fixed bug #66 (ML) - - Fixed bug #78 (ML) - - try to implement LCD persistence emulation for GG (ML) - Jun 10, 02 - Added bios emulation (ML) - Jun 12, 02 - Added PAL & NTSC systems (ML) - Jun 25, 02 - Added border emulation (ML) - Jun 27, 02 - Version bits for Game Gear (bits 6 of port 00) (ML) - Nov-Dec, 05 - Numerous cleanups, fixes, updates (WP) - - ******************************************************************************/ - -#include "driver.h" -#include "sound/sn76496.h" -#include "sound/2413intf.h" -#include "vidhrdw/generic.h" -#include "includes/sms.h" -#include "devices/cartslot.h" - -static ADDRESS_MAP_START( sms_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03FF) AM_ROMBANK(1) /* First 0x0400 part always points to first page */ - AM_RANGE(0x0400, 0x3FFF) AM_ROMBANK(2) /* switchable rom bank */ - AM_RANGE(0x4000, 0x7FFF) AM_ROMBANK(3) /* switchable rom bank */ - AM_RANGE(0x8000, 0xBFFF) AM_READWRITE(MRA8_BANK4, sms_cartram_w) /* ROM bank / on-cart RAM */ - AM_RANGE(0xC000, 0xDFFB) AM_MIRROR(0x2000) AM_RAM /* RAM (mirror at 0xE000) */ - AM_RANGE(0xDFFC, 0xDFFF) AM_RAM /* RAM "underneath" frame registers */ - AM_RANGE(0xFFFC, 0xFFFF) AM_READWRITE(sms_mapper_r, sms_mapper_w) /* Bankswitch control */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sms_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(sms_bios_w) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_WRITE(sms_version_w) - AM_RANGE(0x40, 0x7F) AM_READWRITE(sms_vdp_curline_r, SN76496_0_w) - AM_RANGE(0x80, 0x80) AM_MIRROR(0x3e) AM_READWRITE(sms_vdp_data_r, sms_vdp_data_w) - AM_RANGE(0x80, 0x81) AM_MIRROR(0x3e) AM_READWRITE(sms_vdp_ctrl_r, sms_vdp_ctrl_w) - AM_RANGE(0xC0, 0xC0) AM_MIRROR(0x1e) AM_READ(sms_input_port_0_r) - AM_RANGE(0xC1, 0xC1) AM_MIRROR(0x1e) AM_READ(sms_version_r) - AM_RANGE(0xE0, 0xE0) AM_MIRROR(0x0e) AM_READ(sms_input_port_0_r) - AM_RANGE(0xE1, 0xE1) AM_MIRROR(0x0e) AM_READ(sms_version_r) - AM_RANGE(0xF0, 0xF0) AM_READWRITE(sms_input_port_0_r, sms_YM2413_register_port_0_w) - AM_RANGE(0xF1, 0xF1) AM_READWRITE(sms_version_r, sms_YM2413_data_port_0_w) - AM_RANGE(0xF2, 0xF2) AM_READWRITE(sms_fm_detect_r, sms_fm_detect_w) - AM_RANGE(0xF3, 0xF3) AM_READ(sms_version_r) - AM_RANGE(0xF4, 0xF4) AM_MIRROR(0x02) AM_READ(sms_input_port_0_r) - AM_RANGE(0xF5, 0xF5) AM_MIRROR(0x02) AM_READ(sms_version_r) - AM_RANGE(0xF8, 0xF8) AM_MIRROR(0x06) AM_READ(sms_input_port_0_r) - AM_RANGE(0xF9, 0xF9) AM_MIRROR(0x06) AM_READ(sms_version_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gg_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00, 0x00) AM_READ(gg_input_port_2_r) - AM_RANGE(0x01, 0x05) AM_READWRITE(gg_sio_r, gg_sio_w) - AM_RANGE(0x06, 0x06) AM_READWRITE(gg_psg_r, gg_psg_w) - AM_RANGE(0x07, 0x07) AM_WRITE(sms_version_w) - AM_RANGE(0x08, 0x08) AM_MIRROR(0x06) AM_WRITE(sms_bios_w) - AM_RANGE(0x09, 0x09) AM_MIRROR(0x06) AM_WRITE(sms_version_w) - AM_RANGE(0x10, 0x10) AM_MIRROR(0x0e) AM_WRITE(sms_bios_w) - AM_RANGE(0x11, 0x11) AM_MIRROR(0x0e) AM_WRITE(sms_version_w) - AM_RANGE(0x20, 0x20) AM_MIRROR(0x1e) AM_WRITE(sms_bios_w) - AM_RANGE(0x21, 0x21) AM_MIRROR(0x1e) AM_WRITE(sms_version_w) - AM_RANGE(0x40, 0x7F) AM_READWRITE(sms_vdp_curline_r, SN76496_0_w) - AM_RANGE(0x80, 0x80) AM_MIRROR(0x3e) AM_READWRITE(sms_vdp_data_r, sms_vdp_data_w) - AM_RANGE(0x80, 0x81) AM_MIRROR(0x3e) AM_READWRITE(sms_vdp_ctrl_r, sms_vdp_ctrl_w) - AM_RANGE(0xC0, 0xC0) AM_READ(input_port_0_r) - AM_RANGE(0xC1, 0xC1) AM_READ(input_port_1_r) - AM_RANGE(0xDC, 0xDC) AM_READ(input_port_0_r) - AM_RANGE(0xDD, 0xDD) AM_READ(input_port_1_r) -ADDRESS_MAP_END - - -INPUT_PORTS_START( sms ) - - PORT_START /* IN0 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_8WAY - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_8WAY - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_8WAY - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* Software Reset bit */ - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_START ) /* Game Gear START */ - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START(sms) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3597545) - MDRV_CPU_PROGRAM_MAP(sms_mem, 0) - MDRV_CPU_IO_MAP(sms_io, 0) - MDRV_CPU_VBLANK_INT(sms, NTSC_Y_PIXELS) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START(sms) - MDRV_MACHINE_RESET(sms) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(NTSC_X_PIXELS, NTSC_Y_PIXELS) - MDRV_SCREEN_VISIBLE_AREA( LBORDER_X_PIXELS, LBORDER_X_PIXELS + 255, TBORDER_Y_PIXELS, TBORDER_Y_PIXELS + 239 ) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(0) - /*MDRV_PALETTE_INIT(sms)*/ - - MDRV_VIDEO_START(sms) - MDRV_VIDEO_UPDATE(sms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 4194304) /* 4.194304 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(smspal) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3597545) - MDRV_CPU_PROGRAM_MAP(sms_mem, 0) - MDRV_CPU_IO_MAP(sms_io, 0) - MDRV_CPU_VBLANK_INT(sms, PAL_Y_PIXELS) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START(sms) - MDRV_MACHINE_RESET(sms) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(PAL_X_PIXELS, PAL_Y_PIXELS) - MDRV_SCREEN_VISIBLE_AREA( LBORDER_X_PIXELS, LBORDER_X_PIXELS + 255, TBORDER_Y_PIXELS, TBORDER_Y_PIXELS + 239 ) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(0) - /*MDRV_PALETTE_INIT(sms)*/ - - MDRV_VIDEO_START(sms) - MDRV_VIDEO_UPDATE(sms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 4194304) /* 4.194304 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(smsfm) - MDRV_IMPORT_FROM(sms) - - MDRV_SOUND_ADD(YM2413, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(gamegear) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3597545) - MDRV_CPU_PROGRAM_MAP(sms_mem, 0) - MDRV_CPU_IO_MAP(gg_io, 0) - MDRV_CPU_VBLANK_INT(sms, NTSC_Y_PIXELS) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START(sms) - MDRV_MACHINE_RESET(sms) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(NTSC_X_PIXELS, NTSC_Y_PIXELS) - MDRV_SCREEN_VISIBLE_AREA(6*8, 26*8-1, 3*8, 21*8-1) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(0) - - MDRV_VIDEO_START(sms) - MDRV_VIDEO_UPDATE(sms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 4194304) /* 4.194304 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_DRIVER_END - -/* - sms (no bios, fake driver) - smsumd3d (1986) -*/ -SYSTEM_BIOS_START( sms ) - SYSTEM_BIOS_ADD( 0, "bios13", "US/European BIOS v1.3 (1986)" ) /* smsu13 */ -/* SYSTEM_BIOS_ADD( 1, "missiled", "US/European BIOS with Missile Defense 3D (1986)" ) smsumd3d */ - SYSTEM_BIOS_ADD( 1, "hangonsh", "US/European BIOS v2.4 with Hang On and Safari Hunt (1988)" ) /* smsuhs24 */ - SYSTEM_BIOS_ADD( 2, "hangon", "US/European BIOS v3.4 with Hang On (1988)" ) /* smseh34 */ - SYSTEM_BIOS_ADD( 3, "missiled", "US/European BIOS v4.4 with Missile Defense 3D (1988)" ) - SYSTEM_BIOS_ADD( 4, "alexkidd", "US/European BIOS with Alex Kidd in Miracle World (1990)" ) /* smsuam */ -SYSTEM_BIOS_END - -SYSTEM_BIOS_START( smsj ) - SYSTEM_BIOS_ADD( 0, "jbios21", "Sega Mark III/Sega Master System/Samsung Gamboy - Japanese SMS BIOS v2.1" ) /* smsj21 (+fm) (1985), smsm3 (1984), smsss (+fm) (198?) */ -SYSTEM_BIOS_END - -/* - smsemd3d (1986) - smspal (no bios, fake driver) -*/ -SYSTEM_BIOS_START( smspal ) - SYSTEM_BIOS_ADD( 0, "bios13", "Sega Master System - US/European BIOS v1.3 (1986)" ) /* smse13 */ -/* SYSTEM_BIOS_ADD( 1, "missiled", "US/European BIOS with Missile Defense 3D (1986)" ) smsemd3d */ - SYSTEM_BIOS_ADD( 1, "hangonsh", "Sega Master System Plus - US/European BIOS v2.4 with Hang On and Safari Hunt (1988)" ) /* smsehs24 */ - SYSTEM_BIOS_ADD( 2, "hangon", "Sega Master System - US/European BIOS v3.4 with Hang On (1988)" ) /* smseh34 */ - SYSTEM_BIOS_ADD( 3, "missiled", "US/European BIOS v4.4 with Missile Defense 3D (1988)" ) - SYSTEM_BIOS_ADD( 4, "alexkidd", "Sega Master System II - US/European BIOS with Alex Kidd in Miracle World (1990)" ) /* smseam */ - SYSTEM_BIOS_ADD( 5, "sonic", "Sega Master System II/Tec Toy Master System III Compact (Brazil) - European/Brazilian BIOS with Sonic the Hedgehog (1991)" ) /* smsesh, smsbsh */ -SYSTEM_BIOS_END - -ROM_START(sms) - ROM_REGION(CPU_ADDRESSABLE_SIZE, REGION_CPU1, 0) - ROM_REGION(0x40000, REGION_USER1, 0) - ROMX_LOAD("bios13fx.rom", 0x0000, 0x2000, CRC(0072ED54) SHA1(c315672807d8ddb8d91443729405c766dd95cae7), ROM_BIOS(1)) - ROMX_LOAD("hshbios.rom", 0x0000, 0x20000, CRC(91E93385) SHA1(9e179392cd416af14024d8f31c981d9ee9a64517), ROM_BIOS(2)) - ROMX_LOAD("hangbios.rom", 0x0000, 0x20000, CRC(8EDF7AC6) SHA1(51fd6d7990f62cd9d18c9ecfc62ed7936169107e), ROM_BIOS(3)) - ROMX_LOAD("missiled.rom", 0x0000, 0x20000, CRC(E79BB689) SHA1(aa92ae576ca670b00855e278378d89e9f85e0351), ROM_BIOS(4)) - ROMX_LOAD("akbios.rom", 0x0000, 0x20000, CRC(CF4A09EA) SHA1(3af7b66248d34eb26da40c92bf2fa4c73a46a051), ROM_BIOS(5)) -ROM_END - -ROM_START(smspal) - ROM_REGION(CPU_ADDRESSABLE_SIZE, REGION_CPU1, 0) - ROM_REGION(0x40000, REGION_USER1, 0) - ROMX_LOAD("bios13fx.rom", 0x0000, 0x2000, CRC(0072ED54) SHA1(c315672807d8ddb8d91443729405c766dd95cae7), ROM_BIOS(1)) - ROMX_LOAD("hshbios.rom", 0x0000, 0x20000, CRC(91E93385) SHA1(9e179392cd416af14024d8f31c981d9ee9a64517), ROM_BIOS(2)) - ROMX_LOAD("hangbios.rom", 0x0000, 0x20000, CRC(8EDF7AC6) SHA1(51fd6d7990f62cd9d18c9ecfc62ed7936169107e), ROM_BIOS(3)) - ROMX_LOAD("missiled.rom", 0x0000, 0x20000, CRC(E79BB689) SHA1(aa92ae576ca670b00855e278378d89e9f85e0351), ROM_BIOS(4)) - ROMX_LOAD("akbios.rom", 0x0000, 0x20000, CRC(CF4A09EA) SHA1(3af7b66248d34eb26da40c92bf2fa4c73a46a051), ROM_BIOS(5)) - ROMX_LOAD("sonbios.rom", 0x0000, 0x40000, CRC(81C3476B) SHA1(6aca0e3dffe461ba1cb11a86cd4caf5b97e1b8df), ROM_BIOS(6)) -ROM_END - -ROM_START(smsm3) - ROM_REGION(CPU_ADDRESSABLE_SIZE, REGION_CPU1, 0) - ROM_REGION(0x4000, REGION_USER1, 0) - ROMX_LOAD("jbios21.rom", 0x0000, 0x2000, CRC(48D44A13) SHA1(a8c1b39a2e41137835eda6a5de6d46dd9fadbaf2), ROM_BIOS(1)) -ROM_END - -#define rom_smsj21 rom_smsm3 - -SYSTEM_BIOS_START( gamegear ) - SYSTEM_BIOS_ADD( 0, "none", "No BIOS" ) /* gamegear */ - SYSTEM_BIOS_ADD( 1, "majesco", "Majesco BIOS" ) /* gamg */ -SYSTEM_BIOS_END - -ROM_START(gamegear) - ROM_REGION(CPU_ADDRESSABLE_SIZE, REGION_CPU1,0) - ROMX_LOAD("majbios.rom", 0x0000, 0x0400, CRC(0EBEA9D4) SHA1(914aa165e3d879f060be77870d345b60cfeb4ede), ROM_BIOS(2)) -ROM_END - -#define rom_gamegeaj rom_gamegear - -static void sms_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 0; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_sms_cart; break; - case DEVINFO_PTR_LOAD: info->load = device_load_sms_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sms"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(sms) - CONFIG_DEVICE(sms_cartslot_getinfo) -SYSTEM_CONFIG_END - -static void gamegear_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "gg"); break; - - default: sms_cartslot_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(gamegear) - CONFIG_DEVICE(gamegear_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPATIBLE MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONSB( 1986, sms, 0, sms, 0, sms, sms, 0, sms, "Sega", "Sega Master System/Sega Master System Plus/Sega Master System II" , FLAG_BIOS_FULL ) -CONSB( 1986, smspal, sms, smspal, 0, smspal, sms, 0, sms, "Sega", "Sega Master System/Sega Master System Plus/Sega Master System II/Tec Toy Master System III Compact (Brazil)" , FLAG_BIOS_FULL ) -CONSB( 1984, smsm3, 0, smsj, 0, sms, sms, 0, sms, "Sega", "Sega Mark III" , FLAG_REGION_JAPAN | FLAG_BIOS_2000 ) -CONSB( 1985, smsj21, smsm3, smsj, 0, smsfm, sms, 0, sms, "Sega", "Sega Master System/Samsung Gamboy" , FLAG_REGION_JAPAN | FLAG_BIOS_2000 | FLAG_FM ) - -CONSB( 1990, gamegear, 0, gamegear, sms, gamegear, sms, 0, gamegear, "Sega", "Sega Game Gear - European/American" , FLAG_GAMEGEAR ) -CONSB( 1990, gamegeaj, gamegear, gamegear, 0, gamegear, sms, 0, gamegear, "Sega", "Sega Game Gear - Japanese" , FLAG_REGION_JAPAN | FLAG_GAMEGEAR | FLAG_BIOS_0400 ) - diff --git a/mess/systems/snes.c b/mess/systems/snes.c deleted file mode 100644 index d8087e04d..000000000 --- a/mess/systems/snes.c +++ /dev/null @@ -1,556 +0,0 @@ -/*************************************************************************** - - snes.c - - Driver file to handle emulation of the Nintendo Super NES. - - R. Belmont - Anthony Kruize - Based on the original MESS driver by Lee Hammerton (aka Savoury Snax) - - Driver is preliminary right now. - - The memory map included below is setup in a way to make it easier to handle - Mode 20 and Mode 21 ROMs. - - Todo (in no particular order): - - Fix additional sound bugs - - Emulate extra chips - superfx, dsp2, sa-1 etc. - - Add horizontal mosaic, hi-res. interlaced etc to video emulation. - - Fix support for Mode 7. (In Progress) - - Handle interleaved roms (maybe even multi-part roms, but how?) - - Add support for running at 3.58Mhz at the appropriate time. - - I'm sure there's lots more ... - -***************************************************************************/ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/snes.h" -#include "devices/cartslot.h" -#include "inputx.h" - -static ADDRESS_MAP_START( snes_map, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x000000, 0x2fffff) AM_READWRITE(snes_r_bank1, snes_w_bank1) /* I/O and ROM (repeats for each bank) */ - AM_RANGE(0x300000, 0x3fffff) AM_READWRITE(snes_r_bank2, snes_w_bank2) /* I/O and ROM (repeats for each bank) */ - AM_RANGE(0x400000, 0x5fffff) AM_READWRITE(snes_r_bank3, MWA8_ROM) /* ROM (and reserved in Mode 20) */ - AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(snes_r_bank6, snes_w_bank6) /* used by Mode 20 DSP-1 */ - AM_RANGE(0x700000, 0x77ffff) AM_READWRITE(snes_r_sram, snes_w_sram) /* 256KB Mode 20 save ram + reserved from 0x8000 - 0xffff */ - AM_RANGE(0x780000, 0x7dffff) AM_NOP /* Reserved */ - AM_RANGE(0x7e0000, 0x7fffff) AM_RAM /* 8KB Low RAM, 24KB High RAM, 96KB Expanded RAM */ - AM_RANGE(0x800000, 0xffffff) AM_READWRITE(snes_r_bank4, snes_w_bank4) /* Mirror and ROM */ -ADDRESS_MAP_END - -static READ8_HANDLER( spc_ram_100_r ) -{ - return spc_ram_r(offset + 0x100); -} - -static WRITE8_HANDLER( spc_ram_100_w ) -{ - spc_ram_w(offset + 0x100, data); -} - -static ADDRESS_MAP_START( spc_map, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x00ef) AM_READWRITE(spc_ram_r, spc_ram_w) AM_BASE(&spc_ram) /* lower 32k ram */ - AM_RANGE(0x00f0, 0x00ff) AM_READWRITE(spc_io_r, spc_io_w) /* spc io */ - AM_RANGE(0x0100, 0xffff) AM_WRITE(spc_ram_100_w) - AM_RANGE(0x0100, 0xffbf) AM_READ(spc_ram_100_r) - AM_RANGE(0xffc0, 0xffff) AM_READ(spc_ipl_r) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( snes ) - PORT_START /* IN 0 : Joypad 1 - L */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("P1 Button A") PORT_PLAYER(1) PORT_CODE(KEYCODE_D) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("P1 Button X") PORT_PLAYER(1) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("P1 Button L") PORT_PLAYER(1) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("P1 Button R") PORT_PLAYER(1) PORT_CODE(KEYCODE_Z) - PORT_START /* IN 1 : Joypad 1 - H */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P1 Button B") PORT_PLAYER(1) PORT_CODE(KEYCODE_C) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P1 Button Y") PORT_PLAYER(1) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SELECT) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - - PORT_START /* IN 2 : Joypad 2 - L */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("P2 Button A") PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("P2 Button X") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("P2 Button L") PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("P2 Button R") PORT_PLAYER(2) - PORT_START /* IN 3 : Joypad 2 - H */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P2 Button B") PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P2 Button Y") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SELECT) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - - PORT_START /* IN 4 : Joypad 3 - L */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("P3 Button A") PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("P3 Button X") PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("P3 Button L") PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("P3 Button R") PORT_PLAYER(3) - PORT_START /* IN 5 : Joypad 3 - H */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P3 Button B") PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P3 Button Y") PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SELECT) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(3) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(3) - - PORT_START /* IN 6 : Joypad 4 - L */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("P4 Button A") PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("P4 Button X") PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("P4 Button L") PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("P4 Button R") PORT_PLAYER(4) - PORT_START /* IN 7 : Joypad 4 - H */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("P4 Button B") PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("P4 Button Y") PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SELECT) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_PLAYER(4) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_PLAYER(4) - - PORT_START /* IN 8 : Configuration */ - PORT_CONFNAME( 0x1, 0x1, "Enforce 32 sprites/line" ) - PORT_CONFSETTING( 0x0, DEF_STR( No ) ) - PORT_CONFSETTING( 0x1, DEF_STR( Yes ) ) - -#ifdef MAME_DEBUG - PORT_START /* IN 9 : debug switches */ - PORT_DIPNAME( 0x3, 0x0, "Browse tiles" ) - PORT_DIPSETTING( 0x0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1, "2bpl" ) - PORT_DIPSETTING( 0x2, "4bpl" ) - PORT_DIPSETTING( 0x3, "8bpl" ) - PORT_DIPNAME( 0xc, 0x0, "Browse maps" ) - PORT_DIPSETTING( 0x0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4, "2bpl" ) - PORT_DIPSETTING( 0x8, "4bpl" ) - PORT_DIPSETTING( 0xc, "8bpl" ) - - PORT_START /* IN 10 : debug switches */ - PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Toggle BG 1") PORT_PLAYER(2) - PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("Toggle BG 2") PORT_PLAYER(2) - PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Toggle BG 3") PORT_PLAYER(2) - PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_NAME("Toggle BG 4") PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Toggle Objects") PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_NAME("Toggle Main/Sub") PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Toggle Back col") PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_NAME("Toggle Windows") PORT_PLAYER(3) - - PORT_START /* IN 11 : debug input */ - PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_NAME("Pal prev") - PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_NAME("Pal next") - PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_NAME("Toggle Transparency") PORT_PLAYER(4) -#endif -INPUT_PORTS_END - -static struct CustomSound_interface snes_sound_interface = -{ snes_sh_start, 0, 0 }; - -static gfx_decode gfxdecodeinfo[] = -{ - { -1 } /* end of array */ -}; - -static PALETTE_INIT( snes ) -{ - int i, r, g, b; - - for( i = 0; i < 32768; i++ ) - { - r = (i & 0x1F) << 3; - g = ((i >> 5) & 0x1F) << 3; - b = ((i >> 10) & 0x1F) << 3; - palette_set_color(machine, i, r, g, b ); - } - - /* The colortable can be black */ - for( i = 0; i < 256; i++ ) - colortable[i] = 0; -} - - - -/* Loads the battery backed RAM into the appropriate memory area */ -static void snes_load_sram(void) -{ - UINT8 ii; - UINT8 *battery_ram, *ptr; - - battery_ram = (UINT8 *)malloc( snes_cart.sram_max ); - ptr = battery_ram; - image_battery_load( image_from_devtype_and_index(IO_CARTSLOT,0), battery_ram, snes_cart.sram_max ); - - if( snes_cart.mode == SNES_MODE_20 ) - { - for( ii = 0; ii < 8; ii++ ) - { - memmove( &snes_ram[0x700000 + (ii * 0x010000)], ptr, 0x7fff ); - ptr += 0x7fff; - } - } - else - { - for( ii = 0; ii < 16; ii++ ) - { - memmove( &snes_ram[0x306000 + (ii * 0x010000)], ptr, 0x1fff ); - ptr += 0x1fff; - } - } - - free( battery_ram ); -} - -/* Saves the battery backed RAM from the appropriate memory area */ -static void snes_save_sram(void) -{ - UINT8 ii; - UINT8 *battery_ram, *ptr; - - battery_ram = (UINT8 *)malloc( snes_cart.sram_max ); - ptr = battery_ram; - - if( snes_cart.mode == SNES_MODE_20 ) - { - for( ii = 0; ii < 8; ii++ ) - { - memmove( ptr, &snes_ram[0x700000 + (ii * 0x010000)], 0x8000 ); - ptr += 0x8000; - } - } - else - { - for( ii = 0; ii < 16; ii++ ) - { - memmove( ptr, &snes_ram[0x306000 + (ii * 0x010000)], 0x2000 ); - ptr += 0x2000; - } - } - - image_battery_save( image_from_devtype_and_index(IO_CARTSLOT,0), battery_ram, snes_cart.sram_max ); - - free( battery_ram ); -} - - - -static void snes_machine_stop(running_machine *machine) -{ - /* Save SRAM */ - if( snes_cart.sram > 0 ) - snes_save_sram(); -} - -static MACHINE_START( snes_mess ) -{ - add_exit_callback(machine, snes_machine_stop); - return machine_start_snes(machine); -} - -static int device_load_snes_cart(mess_image *image) -{ - int i; - UINT16 totalblocks, readblocks; - UINT32 offset; - UINT8 header[512], sample[0xffff]; - UINT8 valid_mode20, valid_mode21; - - /* Cart types */ - static struct - { - INT16 Code; - const char *Name; - } CartTypes[] = - { - { 0, "ROM" }, - { 1, "ROM,RAM" }, - { 2, "ROM,SRAM" }, - { 3, "ROM,DSP1" }, - { 4, "ROM,RAM,DSP1" }, - { 5, "ROM,SRAM,DSP1" }, - { 19, "ROM,SuperFX" }, - { 21, "ROM,SRAM,SuperFX"}, - { 69, "ROM,SRAM,S-DD1" }, - {227, "ROM,Z80GB" }, - {243, "ROM,?(1)" }, - {246, "ROM,DSP2" }, - { -1, "UNKNOWN" } - }; - - /* Some known countries */ - const char *countries[] = - { - "Japan (NTSC)", - "USA (NTSC)", - "Australia, Europe, Oceania & Asia (PAL)", - "Sweden (PAL)", - "Finland (PAL)", - "Denmark (PAL)", - "France (PAL)", - "Holland (PAL)", - "Spain (PAL)", - "Germany, Austria & Switzerland (PAL)", - "Italy (PAL)", - "Hong Kong & China (PAL)", - "Indonesia (PAL)", - "South Korea (NTSC)", - "UNKNOWN" - }; - - new_memory_region(Machine, REGION_CPU1, 0x1000000,0); - - snes_ram = memory_region( REGION_CPU1 ); - memset( snes_ram, 0, 0x1000000 ); - - /* Check for a header (512 bytes) */ - offset = 512; - image_fread( image, header, 512 ); - if( (header[8] == 0xaa) && (header[9] == 0xbb) && (header[10] == 0x04) ) - { - /* Found an SWC identifier */ - logerror( "Found header(SWC) - Skipped\n" ); - } - else if( (header[0] | (header[1] << 8)) == (((image_length(image) - 512) / 1024) / 8) ) - { - /* Some headers have the rom size at the start, if this matches with the - * actual rom size, we probably have a header */ - logerror( "Found header(size) - Skipped\n" ); - } - else if( (image_length(image) % 0x8000) == 512 ) - { - /* As a last check we'll see if there's exactly 512 bytes extra to this - * image. */ - logerror( "Found header(extra) - Skipped\n" ); - } - else - { - /* No header found so go back to the start of the file */ - logerror( "No header found.\n" ); - offset = 0; - image_fseek( image, offset, SEEK_SET ); - } - - /* We need to take a sample of 128kb to test what mode we need to be in */ - image_fread( image, sample, 0xffff ); - image_fseek( image, offset, SEEK_SET ); /* Rewind */ - /* Now to determine if this is a lo-ROM or a hi-ROM */ - valid_mode20 = snes_validate_infoblock( sample, 0x7fc0 ); - valid_mode21 = snes_validate_infoblock( sample, 0xffc0 ); - if( valid_mode20 >= valid_mode21 ) - { - snes_cart.mode = SNES_MODE_20; - snes_cart.sram_max = 0x40000; - } - else if( valid_mode21 > valid_mode20 ) - { - snes_cart.mode = SNES_MODE_21; - snes_cart.sram_max = 0x20000; - } - - /* Find the number of blocks in this ROM */ - totalblocks = ((image_length(image) - offset) >> (snes_cart.mode == SNES_MODE_20 ? 15 : 16)); - - /* FIXME: Insert crc check here */ - - readblocks = 0; - if( snes_cart.mode == SNES_MODE_20 ) - { - /* In mode 20, all blocks are 32kb. There are upto 96 blocks, giving a - * total of 24mbit(3mb) of ROM. - * The first 48 blocks are located in banks 0x00 to 0x2f at address - * 0x8000. They are mirrored in banks 0x80 to 0xaf. - * The next 16 blocks are located in banks 0x30 to 0x3f at address - * 0x8000. They are mirrored in banks 0xb0 to 0xbf. - * The final 32 blocks are located in banks 0x40 - 0x5f at address - * 0x8000. They are mirrored in banks 0xc0 to 0xdf. - */ - i = 0; - while( i < 96 && readblocks <= totalblocks ) - { - image_fread( image, &snes_ram[(i++ * 0x10000) + 0x8000], 0x8000); - readblocks++; - } - } - else /* Mode 21 */ - { - /* In mode 21, all blocks are 64kb. There are upto 96 blocks, giving a - * total of 48mbit(6mb) of ROM. - * The first 64 blocks are located in banks 0xc0 to 0xff. The top 32k of - * each bank is mirrored in banks 0x00 to 0x3f. - * The final 32 blocks are located in banks 0x40 to 0x5f. - */ - - /* read first 64 blocks */ - i = 0; - while( i < 64 && readblocks <= totalblocks ) - { - image_fread( image, &snes_ram[0xc00000 + (i++ * 0x10000)], 0x10000); - readblocks++; - } - /* read the next 32 blocks */ - i = 0; - while( i < 32 && readblocks <= totalblocks ) - { - image_fread( image, &snes_ram[0x400000 + (i++ * 0x10000)], 0x10000); - readblocks++; - } - } - - /* Find the amount of sram */ - snes_cart.sram = snes_r_bank1(0x00ffd8); - if( snes_cart.sram > 0 ) - { - snes_cart.sram = ((1 << (snes_cart.sram + 3)) / 8); - if( snes_cart.sram > snes_cart.sram_max ) - snes_cart.sram = snes_cart.sram_max; - } - - /* Log snes_cart information */ - { - char title[21], romid[4], companyid[2]; - UINT8 country; - logerror( "ROM DETAILS\n" ); - logerror( "\tTotal blocks: %d (%dmb)\n", totalblocks, totalblocks / (snes_cart.mode == SNES_MODE_20 ? 32 : 16) ); - logerror( "\tROM bank size: %s (LoROM: %d , HiROM: %d)\n", (snes_cart.mode == SNES_MODE_20) ? "LoROM" : "HiROM", valid_mode20, valid_mode21 ); - for( i = 0; i < 2; i++ ) - companyid[i] = snes_r_bank1(0x00ffb0 + i); - logerror( "\tCompany ID: %s\n", companyid ); - for( i = 0; i < 4; i++ ) - romid[i] = snes_r_bank1(0x00ffb2 + i); - logerror( "\tROM ID: %s\n", romid ); - logerror( "HEADER DETAILS\n" ); - for( i = 0; i < 21; i++ ) - title[i] = snes_r_bank1(0x00ffc0 + i); - logerror( "\tName: %s\n", title ); - logerror( "\tSpeed: %s [%d]\n", ((snes_r_bank1(0x00ffd5) & 0xf0)) ? "FastROM" : "SlowROM", (snes_r_bank1(0x00ffd5) & 0xf0) >> 4 ); - logerror( "\tBank size: %s [%d]\n", (snes_r_bank1(0x00ffd5) & 0xf) ? "HiROM" : "LoROM", snes_r_bank1(0x00ffd5) & 0xf ); - for( i = 0; i < 12; i++ ) - { - if( CartTypes[i].Code == snes_r_bank1(0x00ffd6) ) - break; - } - logerror( "\tType: %s [%d]\n", CartTypes[i].Name, snes_r_bank1(0x00ffd6) ); - logerror( "\tSize: %d megabits [%d]\n", 1 << (snes_r_bank1(0x00ffd7) - 7), snes_r_bank1(0x00ffd7) ); - logerror( "\tSRAM: %d kilobits [%d]\n", snes_cart.sram * 8, snes_ram[0xffd8] ); - country = snes_r_bank1(0x00ffd9); - if( country > 14 ) - country = 14; - logerror( "\tCountry: %s [%d]\n", countries[country], snes_r_bank1(0x00ffd9) ); - logerror( "\tLicense: %s [%X]\n", "", snes_r_bank1(0x00ffda) ); - logerror( "\tVersion: 1.%d\n", snes_r_bank1(0x00ffdb) ); - logerror( "\tInv Checksum: %X %X\n", snes_r_bank1(0x00ffdd), snes_r_bank1(0x00ffdc) ); - logerror( "\tChecksum: %X %X\n", snes_r_bank1(0x00ffdf), snes_r_bank1(0x00ffde) ); - logerror( "\tNMI Address: %2X%2Xh\n", snes_r_bank1(0x00fffb), snes_r_bank1(0x00fffa) ); - logerror( "\tStart Address: %2X%2Xh\n", snes_r_bank1(0x00fffd), snes_r_bank1(0x00fffc) ); - } - - /* Load SRAM */ - snes_load_sram(); - - /* All done */ - return INIT_PASS; -} - - -static MACHINE_DRIVER_START( snes ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", G65816, MCLK_NTSC/6) /* 2.68Mhz, also 3.58Mhz */ - MDRV_CPU_PROGRAM_MAP(snes_map, 0) - - MDRV_CPU_ADD_TAG("sound", SPC700, 1024000) /* 1.024 Mhz */ - MDRV_CPU_PROGRAM_MAP(spc_map, 0) - MDRV_CPU_VBLANK_INT(NULL, 0) - - MDRV_INTERLEAVE(800) - - MDRV_MACHINE_START( snes_mess ) - MDRV_MACHINE_RESET( snes ) - - /* video hardware */ - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( snes ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32768) - MDRV_COLORTABLE_LENGTH(257) - MDRV_PALETTE_INIT( snes ) - - MDRV_SCREEN_ADD("main", 0) - MDRV_SCREEN_RAW_PARAMS(DOTCLK_NTSC, SNES_HTOTAL, 0, SNES_SCR_WIDTH, SNES_VTOTAL_NTSC, 0, SNES_SCR_HEIGHT_NTSC) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(snes_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 1.00) - MDRV_SOUND_ROUTE(1, "right", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( snespal ) - MDRV_IMPORT_FROM(snes) - MDRV_CPU_REPLACE("main", G65816, MCLK_PAL/6) - - MDRV_SCREEN_MODIFY("main") - MDRV_SCREEN_RAW_PARAMS(DOTCLK_PAL, SNES_HTOTAL, 0, SNES_SCR_WIDTH, SNES_VTOTAL_PAL, 0, SNES_SCR_HEIGHT_PAL) -MACHINE_DRIVER_END - -static void snes_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_snes_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "smc,sfc,fig,swc"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(snes) - CONFIG_DEVICE(snes_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(snes) - ROM_REGION(0x100, REGION_USER5, 0) /* IPL ROM */ - ROM_LOAD("spc700.rom", 0, 0x40, CRC(44bb3a40) SHA1(97e352553e94242ae823547cd853eecda55c20f0)) /* boot rom */ - ROM_REGION(0x800, REGION_USER6, 0) /* add-on chip ROMs (DSP, SFX, etc) */ - ROM_LOAD("dsp1data.bin", 0x000000, 0x000800, CRC(4b02d66d) SHA1(1534f4403d2a0f68ba6e35186fe7595d33de34b1)) -ROM_END - -ROM_START(snespal) - ROM_REGION(0x100, REGION_USER5, 0) /* IPL ROM */ - ROM_LOAD("spc700.rom", 0, 0x40, CRC(44bb3a40) SHA1(97e352553e94242ae823547cd853eecda55c20f0)) /* boot rom */ - ROM_REGION(0x800, REGION_USER6, 0) /* add-on chip ROMs (DSP, SFX, etc) */ - ROM_LOAD("dsp1data.bin", 0x000000, 0x000800, CRC(4b02d66d) SHA1(1534f4403d2a0f68ba6e35186fe7595d33de34b1)) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ -CONS( 1989, snes, 0, 0, snes, snes, 0, snes, "Nintendo", "Super Nintendo Entertainment System (NTSC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -CONS( 1991, snespal, snes, 0, snespal, snes, 0, snes, "Nintendo", "Super Nintendo Entertainment System (PAL)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) diff --git a/mess/systems/spectrum.c b/mess/systems/spectrum.c deleted file mode 100644 index 8da9bcb24..000000000 --- a/mess/systems/spectrum.c +++ /dev/null @@ -1,2389 +0,0 @@ -/*************************************************************************** - Spectrum/Inves/TK90X etc. memory map: - - CPU: - 0000-3fff ROM - 4000-ffff RAM - - Spectrum 128/+2/+2a/+3 memory map: - - CPU: - 0000-3fff Banked ROM/RAM (banked rom only on 128/+2) - 4000-7fff Banked RAM - 8000-bfff Banked RAM - c000-ffff Banked RAM - - TS2068 memory map: (Can't have both EXROM and DOCK active) - The 8K EXROM can be loaded into multiple pages. - - CPU: - 0000-1fff ROM / EXROM / DOCK (Cartridge) - 2000-3fff ROM / EXROM / DOCK - 4000-5fff \ - 6000-7fff \ - 8000-9fff |- RAM / EXROM / DOCK - a000-bfff | - c000-dfff / - e000-ffff / - - -Interrupts: - -Changes: - -29/1/2000 KT - Implemented initial +3 emulation. -30/1/2000 KT - Improved input port decoding for reading and therefore - correct keyboard handling for Spectrum and +3. -31/1/2000 KT - Implemented buzzer sound for Spectrum and +3. - Implementation copied from Paul Daniel's Jupiter driver. - Fixed screen display problems with dirty chars. - Added support to load .Z80 snapshots. 48k support so far. -13/2/2000 KT - Added Interface II, Kempston, Fuller and Mikrogen - joystick support. -17/2/2000 DJR - Added full key descriptions and Spectrum+ keys. - Fixed Spectrum +3 keyboard problems. -17/2/2000 KT - Added tape loading from WAV/Changed from DAC to generic - speaker code. -18/2/2000 KT - Added tape saving to WAV. -27/2/2000 KT - Took DJR's changes and added my changes. -27/2/2000 KT - Added disk image support to Spectrum +3 driver. -27/2/2000 KT - Added joystick I/O code to the Spectrum +3 I/O handler. -14/3/2000 DJR - Tape handling dipswitch. -26/3/2000 DJR - Snapshot files are now classifed as snapshots not - cartridges. -04/4/2000 DJR - Spectrum 128 / +2 Support. -13/4/2000 DJR - +4 Support (unofficial 48K hack). -13/4/2000 DJR - +2a Support (rom also used in +3 models). -13/4/2000 DJR - TK90X, TK95 and Inves support (48K clones). -21/4/2000 DJR - TS2068 and TC2048 support (TC2048 Supports extra video - modes but doesn't have bank switching or sound chip). -09/5/2000 DJR - Spectrum +2 (France, Spain), +3 (Spain). -17/5/2000 DJR - Dipswitch to enable/disable disk drives on +3 and clones. -27/6/2000 DJR - Changed 128K/+3 port decoding (sound now works in Zub 128K). -06/8/2000 DJR - Fixed +3 Floppy support -10/2/2001 KT - Re-arranged code and split into each model emulated. - Code is split into 48k, 128k, +3, tc2048 and ts2048 - segments. 128k uses some of the functions in 48k, +3 - uses some functions in 128, and tc2048/ts2048 use some - of the functions in 48k. The code has been arranged so - these functions come in some kind of "override" order, - read functions changed to use READ8_HANDLER and write - functions changed to use WRITE8_HANDLER. - Added Scorpion256 preliminary. -18/6/2001 DJR - Added support for Interface 2 cartridges. -xx/xx/2001 KS - TS-2068 sound fixed. - Added support for DOCK cartridges for TS-2068. - Added Spectrum 48k Psycho modified rom driver. - Added UK-2086 driver. -23/12/2001 KS - 48k machines are now able to run code in screen memory. - Programs which keep their code in screen memory - like monitors, tape copiers, decrunchers, etc. - works now. - Fixed problem with interrupt vector set to 0xffff (much - more 128k games works now). - A useful used trick on the Spectrum is to set - interrupt vector to 0xffff (using the table - which contain 0xff's) and put a byte 0x18 hex, - the opcode for JR, at this address. The first - byte of the ROM is a 0xf3 (DI), so the JR will - jump to 0xfff4, where a long JP to the actual - interrupt routine is put. Due to unideal - bankswitching in MAME this JP were to 0001 what - causes Spectrum to reset. Fixing this problem - made much more software runing (i.e. Paperboy). - Corrected frames per second value for 48k and 128k - Sincalir machines. - There are 50.08 frames per second for Spectrum - 48k what gives 69888 cycles for each frame and - 50.021 for Spectrum 128/+2/+2A/+3 what gives - 70908 cycles for each frame. - Remaped some Spectrum+ keys. - Presing F3 to reset was seting 0xf7 on keyboard - input port. Problem occured for snapshots of - some programms where it was readed as pressing - key 4 (which is exit in Tapecopy by R. Dannhoefer - for example). - Added support to load .SP snapshots. - Added .BLK tape images support. - .BLK files are identical to .TAP ones, extension - is an only difference. -08/03/2002 KS - #FF port emulation added. - Arkanoid works now, but is not playable due to - completly messed timings. - -Initialisation values used when determining which model is being emulated: - 48K Spectrum doesn't use either port. - 128K/+2 Bank switches with port 7ffd only. - +3/+2a Bank switches with both ports. - -Notes: - 1. No contented memory. - 2. No hi-res colour effects (need contended memory first for accurate timing). - 3. Multiface 1 and Interface 1 not supported. - 4. Horace and the Spiders cartridge doesn't run properly. - 5. Tape images not supported: - .TZX, .SPC, .ITM, .PAN, .TAP(Warajevo), .VOC, .ZXS. - 6. Snapshot images not supported: - .ACH, .PRG, .RAW, .SEM, .SIT, .SNX, .ZX, .ZXS, .ZX82. - 7. 128K emulation is not perfect - the 128K machines crash and hang while - running quite a lot of games. - 8. Disk errors occur on some +3 games. - 9. Video hardware of all machines is timed incorrectly. -10. EXROM and HOME cartridges are not emulated. -11. The TK90X and TK95 roms output 0 to port #df on start up. -12. The purpose of this port is unknown (probably display mode as TS2068) and - thus is not emulated. - -Very detailed infos about the ZX Spectrum +3e can be found at - -http://www.z88forever.org.uk/zxplus3e/ - -*******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/spectrum.h" -#include "eventlst.h" -#include "devices/snapquik.h" -#include "devices/cartslot.h" -#include "devices/cassette.h" -#include "sound/ay8910.h" -#include "sound/speaker.h" -#include "formats/tzx_cas.h" - -/* +3 hardware */ -#include "machine/nec765.h" -#include "cpuintrf.h" -#include "devices/dsk.h" - - -extern void spectrum_128_update_memory(void); -extern void spectrum_plus3_update_memory(void); - - -static struct AY8910interface spectrum_ay_interface = -{ - NULL -}; - - -/****************************************************************************************************/ -/* Spectrum 48k functions */ - -/* - bit 7-5: not used - bit 4: Ear output/Speaker - bit 3: MIC/Tape Output - bit 2-0: border colour -*/ - -static int motor_toggle_previous = 0; -static int cassette_motor_mode = 0; - -int PreviousFE = 0; - -static WRITE8_HANDLER(spectrum_port_fe_w) -{ - unsigned char Changed; - - Changed = PreviousFE^data; - - /* border colour changed? */ - if ((Changed & 0x07)!=0) - { - /* yes - send event */ - EventList_AddItemOffset(0x0fe, data & 0x07, TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod())); - } - - if ((Changed & (1<<4))!=0) - { - /* DAC output state */ - speaker_level_w(0,(data>>4) & 0x01); - } - - if ((Changed & (1<<3))!=0) - { - /* write cassette data */ - cassette_output(image_from_devtype_and_index(IO_CASSETTE, 0), (data & (1<<3)) ? -1.0 : +1.0); - } - - PreviousFE = data; -} - - - - -static ADDRESS_MAP_START (spectrum_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x57ff) AM_READWRITE( spectrum_characterram_r, spectrum_characterram_w ) - AM_RANGE(0x5800, 0x5aff) AM_READWRITE( spectrum_colorram_r, spectrum_colorram_w ) - AM_RANGE(0x5b00, 0xffff) AM_RAM -ADDRESS_MAP_END - -/* KT: more accurate keyboard reading */ -/* DJR: Spectrum+ keys added */ -static READ8_HANDLER(spectrum_port_fe_r) -{ - int lines = offset>>8; - int data = 0xff; - - int cs_extra1 = readinputport(8) & 0x1f; - int cs_extra2 = readinputport(9) & 0x1f; - int cs_extra3 = readinputport(10) & 0x1f; - int ss_extra1 = readinputport(11) & 0x1f; - int ss_extra2 = readinputport(12) & 0x1f; - - if ( readinputport(17) & 0x01 ) { - if ( motor_toggle_previous == 0 ) { - cassette_motor_mode = cassette_motor_mode ^ 0x01; - cassette_change_state( image_from_devtype_and_index( IO_CASSETTE, 0 ), cassette_motor_mode ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR ); - } - motor_toggle_previous = 1; - } else { - motor_toggle_previous = 0; - } - - /* Caps - V */ - if ((lines & 1)==0) - { - data &= readinputport(0); - /* CAPS for extra keys */ - if (cs_extra1 != 0x1f || cs_extra2 != 0x1f || cs_extra3 != 0x1f) - data &= ~0x01; - } - - /* A - G */ - if ((lines & 2)==0) - data &= readinputport(1); - - /* Q - T */ - if ((lines & 4)==0) - data &= readinputport(2); - - /* 1 - 5 */ - if ((lines & 8)==0) - data &= readinputport(3) & cs_extra1; - - /* 6 - 0 */ - if ((lines & 16)==0) - data &= readinputport(4) & cs_extra2; - - /* Y - P */ - if ((lines & 32)==0) - data &= readinputport(5) & ss_extra1; - - /* H - Enter */ - if ((lines & 64)==0) - data &= readinputport(6); - - /* B - Space */ - if ((lines & 128)==0) - { - data &= readinputport(7) & cs_extra3 & ss_extra2; - /* SYMBOL SHIFT for extra keys */ - if (ss_extra1 != 0x1f || ss_extra2 != 0x1f) - data &= ~0x02; - } - - data |= (0xe0); /* Set bits 5-7 - as reset above */ - - /* cassette input from wav */ - if (cassette_input(image_from_devtype_and_index(IO_CASSETTE, 0)) > 0.0038 ) - { - data &= ~0x40; - } - - /* Issue 2 Spectrums default to having bits 5, 6 & 7 set. - Issue 3 Spectrums default to having bits 5 & 7 set and bit 6 reset. */ - if (readinputport(16) & 0x80) - data ^= (0x40); - return data; -} - -/* kempston joystick interface */ -static READ8_HANDLER(spectrum_port_1f_r) -{ - return readinputport(13) & 0x1f; -} - -/* fuller joystick interface */ -static READ8_HANDLER(spectrum_port_7f_r) -{ - return readinputport(14) | (0xff^0x8f); -} - -/* mikrogen joystick interface */ -static READ8_HANDLER(spectrum_port_df_r) -{ - return readinputport(15) | (0xff^0x1f); -} - -static READ8_HANDLER ( spectrum_port_r ) -{ - if ((offset & 1)==0) - return spectrum_port_fe_r(offset); - - if ((offset & 0xff)==0x1f) - return spectrum_port_1f_r(offset); - - if ((offset & 0xff)==0x7f) - return spectrum_port_7f_r(offset); - - if ((offset & 0xff)==0xdf) - return spectrum_port_df_r(offset); - - return cpu_getscanline()<193 ? spectrum_colorram[(cpu_getscanline()&0xf8)<<2]:0xff; -} - -static WRITE8_HANDLER ( spectrum_port_w ) -{ - if ((offset & 1)==0) - spectrum_port_fe_w(offset,data); - else - { - logerror("Write %02x to Port: %04x\n", data, offset); - } -} - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (spectrum_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( spectrum_port_r, spectrum_port_w ) -ADDRESS_MAP_END - - -/****************************************************************************************************/ -/* functions and data used by spectrum 128, spectrum +2, spectrum +3 and scorpion */ -static unsigned char *spectrum_ram = NULL; - -static void spectrum_alloc_ram(int ram_size_in_k) -{ - spectrum_ram = (unsigned char *)auto_malloc(ram_size_in_k*1024); - memset(spectrum_ram, 0, ram_size_in_k*1024); -} - - -/****************************************************************************************************/ -/* Spectrum 128 specific functions */ - -int spectrum_128_port_7ffd_data = -1; -unsigned char *spectrum_128_screen_location = NULL; - -static WRITE8_HANDLER(spectrum_128_port_7ffd_w) -{ - /* D0-D2: RAM page located at 0x0c000-0x0ffff */ - /* D3 - Screen select (screen 0 in ram page 5, screen 1 in ram page 7 */ - /* D4 - ROM select - which rom paged into 0x0000-0x03fff */ - /* D5 - Disable paging */ - - /* disable paging? */ - if (spectrum_128_port_7ffd_data & 0x20) - return; - - /* store new state */ - spectrum_128_port_7ffd_data = data; - - /* update memory */ - spectrum_128_update_memory(); -} - -extern void spectrum_128_update_memory(void) -{ - unsigned char *ChosenROM; - int ROMSelection; - - if (spectrum_128_port_7ffd_data & 8) - { - logerror("SCREEN 1: BLOCK 7\n"); - spectrum_128_screen_location = spectrum_ram + (7<<14); - } - else - { - logerror("SCREEN 0: BLOCK 5\n"); - spectrum_128_screen_location = spectrum_ram + (5<<14); - } - - /* select ram at 0x0c000-0x0ffff */ - { - int ram_page; - unsigned char *ram_data; - - ram_page = spectrum_128_port_7ffd_data & 0x07; - ram_data = spectrum_ram + (ram_page<<14); - - memory_set_bankptr(4, ram_data); - memory_set_bankptr(8, ram_data); - - logerror("RAM at 0xc000: %02x\n",ram_page); - } - - /* ROM switching */ - ROMSelection = ((spectrum_128_port_7ffd_data>>4) & 0x01); - - /* rom 0 is 128K rom, rom 1 is 48 BASIC */ - - ChosenROM = memory_region(REGION_CPU1) + 0x010000 + (ROMSelection<<14); - - memory_set_bankptr(1, ChosenROM); - - logerror("rom switch: %02x\n", ROMSelection); -} - - - -static WRITE8_HANDLER(spectrum_128_port_bffd_w) -{ - AY8910_write_port_0_w(0, data); -} - -static WRITE8_HANDLER(spectrum_128_port_fffd_w) -{ - AY8910_control_port_0_w(0, data); -} - -static READ8_HANDLER(spectrum_128_port_fffd_r) -{ - return AY8910_read_port_0_r(0); -} - -static READ8_HANDLER ( spectrum_128_port_r ) -{ - if ((offset & 1)==0) - { - return spectrum_port_fe_r(offset); - } - - if ((offset & 2)==0) - { - switch ((offset>>14) & 0x03) - { - default: - break; - - case 3: - return spectrum_128_port_fffd_r(offset); - } - } - - /* don't think these are correct! */ - if ((offset & 0xff)==0x1f) - return spectrum_port_1f_r(offset); - - if ((offset & 0xff)==0x7f) - return spectrum_port_7f_r(offset); - - if ((offset & 0xff)==0xdf) - return spectrum_port_df_r(offset); - - return cpu_getscanline()<193 ? spectrum_128_screen_location[0x1800|(cpu_getscanline()&0xf8)<<2]:0xff; -} - -static WRITE8_HANDLER ( spectrum_128_port_w ) -{ - if ((offset & 1)==0) - spectrum_port_fe_w(offset,data); - - /* Only decodes on A15, A14 & A1 */ - else if ((offset & 2)==0) - { - switch ((offset>>8) & 0xc0) - { - case 0x40: - spectrum_128_port_7ffd_w(offset, data); - break; - case 0x80: - spectrum_128_port_bffd_w(offset, data); - break; - case 0xc0: - spectrum_128_port_fffd_w(offset, data); - break; - default: - logerror("Write %02x to 128 port: %04x\n", data, offset); - } - } - else - { - logerror("Write %02x to 128 port: %04x\n", data, offset); - } -} - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (spectrum_128_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( spectrum_128_port_r, spectrum_128_port_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (spectrum_128_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x3fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK5 ) - AM_RANGE( 0x4000, 0x7fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK6 ) - AM_RANGE( 0x8000, 0xbfff) AM_READWRITE( MRA8_BANK3, MWA8_BANK7 ) - AM_RANGE( 0xc000, 0xffff) AM_READWRITE( MRA8_BANK4, MWA8_BANK8 ) -ADDRESS_MAP_END - -static MACHINE_RESET( spectrum_128 ) -{ - spectrum_alloc_ram(128); - - /* 0x0000-0x3fff always holds ROM */ - - /* Bank 5 is always in 0x4000 - 0x7fff */ - memory_set_bankptr(2, spectrum_ram + (5<<14)); - memory_set_bankptr(6, spectrum_ram + (5<<14)); - - /* Bank 2 is always in 0x8000 - 0xbfff */ - memory_set_bankptr(3, spectrum_ram + (2<<14)); - memory_set_bankptr(7, spectrum_ram + (2<<14)); - - /* set initial ram config */ - spectrum_128_port_7ffd_data = 0; - spectrum_128_update_memory(); - - machine_reset_spectrum(machine); -} - -/****************************************************************************************************/ -/* Spectrum + 3 specific functions */ -/* This driver uses some of the spectrum_128 functions. The +3 is similar to a spectrum 128 -but with a disc drive */ - -int spectrum_plus3_port_1ffd_data = -1; - - -static nec765_interface spectrum_plus3_nec765_interface = -{ - NULL, - NULL -}; - - -static int spectrum_plus3_memory_selections[]= -{ - 0,1,2,3, - 4,5,6,7, - 4,5,6,3, - 4,7,6,3 -}; - -static WRITE8_HANDLER(spectrum_plus3_port_3ffd_w) -{ - if (~readinputport(16) & 0x20) - nec765_data_w(0,data); -} - -static READ8_HANDLER(spectrum_plus3_port_3ffd_r) -{ - if (readinputport(16) & 0x20) - return 0xff; - else - return nec765_data_r(0); -} - - -static READ8_HANDLER(spectrum_plus3_port_2ffd_r) -{ - if (readinputport(16) & 0x20) - return 0xff; - else - return nec765_status_r(0); -} - - -void spectrum_plus3_update_memory(void) -{ - if (spectrum_128_port_7ffd_data & 8) - { - logerror("+3 SCREEN 1: BLOCK 7\n"); - spectrum_128_screen_location = spectrum_ram + (7<<14); - } - else - { - logerror("+3 SCREEN 0: BLOCK 5\n"); - spectrum_128_screen_location = spectrum_ram + (5<<14); - } - - if ((spectrum_plus3_port_1ffd_data & 0x01)==0) - { - int ram_page; - unsigned char *ram_data; - - /* ROM switching */ - unsigned char *ChosenROM; - int ROMSelection; - - /* select ram at 0x0c000-0x0ffff */ - ram_page = spectrum_128_port_7ffd_data & 0x07; - ram_data = spectrum_ram + (ram_page<<14); - - memory_set_bankptr(4, ram_data); - memory_set_bankptr(8, ram_data); - - logerror("RAM at 0xc000: %02x\n",ram_page); - - /* Reset memory between 0x4000 - 0xbfff in case extended paging was being used */ - /* Bank 5 in 0x4000 - 0x7fff */ - memory_set_bankptr(2, spectrum_ram + (5<<14)); - memory_set_bankptr(6, spectrum_ram + (5<<14)); - - /* Bank 2 in 0x8000 - 0xbfff */ - memory_set_bankptr(3, spectrum_ram + (2<<14)); - memory_set_bankptr(7, spectrum_ram + (2<<14)); - - - ROMSelection = ((spectrum_128_port_7ffd_data>>4) & 0x01) | - ((spectrum_plus3_port_1ffd_data>>1) & 0x02); - - /* rom 0 is editor, rom 1 is syntax, rom 2 is DOS, rom 3 is 48 BASIC */ - - ChosenROM = memory_region(REGION_CPU1) + 0x010000 + (ROMSelection<<14); - - memory_set_bankptr(1, ChosenROM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x3fff, 0, 0, MWA8_ROM); - - logerror("rom switch: %02x\n", ROMSelection); - } - else - { - /* Extended memory paging */ - - int *memory_selection; - int MemorySelection; - unsigned char *ram_data; - - MemorySelection = (spectrum_plus3_port_1ffd_data>>1) & 0x03; - - memory_selection = &spectrum_plus3_memory_selections[(MemorySelection<<2)]; - - ram_data = spectrum_ram + (memory_selection[0]<<14); - memory_set_bankptr(1, ram_data); - memory_set_bankptr(5, ram_data); - /* allow writes to 0x0000-0x03fff */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x3fff, 0, 0, MWA8_BANK5); - - ram_data = spectrum_ram + (memory_selection[1]<<14); - memory_set_bankptr(2, ram_data); - memory_set_bankptr(6, ram_data); - - ram_data = spectrum_ram + (memory_selection[2]<<14); - memory_set_bankptr(3, ram_data); - memory_set_bankptr(7, ram_data); - - ram_data = spectrum_ram + (memory_selection[3]<<14); - memory_set_bankptr(4, ram_data); - memory_set_bankptr(8, ram_data); - - logerror("extended memory paging: %02x\n",MemorySelection); - } -} - - - -static WRITE8_HANDLER(spectrum_plus3_port_7ffd_w) -{ - /* D0-D2: RAM page located at 0x0c000-0x0ffff */ - /* D3 - Screen select (screen 0 in ram page 5, screen 1 in ram page 7 */ - /* D4 - ROM select - which rom paged into 0x0000-0x03fff */ - /* D5 - Disable paging */ - - /* disable paging? */ - if (spectrum_128_port_7ffd_data & 0x20) - return; - - /* store new state */ - spectrum_128_port_7ffd_data = data; - - /* update memory */ - spectrum_plus3_update_memory(); -} - -static WRITE8_HANDLER(spectrum_plus3_port_1ffd_w) -{ - - /* D0-D1: ROM/RAM paging */ - /* D2: Affects if d0-d1 work on ram/rom */ - /* D3 - Disk motor on/off */ - /* D4 - parallel port strobe */ - - floppy_drive_set_motor_state(image_from_devtype_and_index(IO_FLOPPY, 0), data & (1<<3)); - floppy_drive_set_motor_state(image_from_devtype_and_index(IO_FLOPPY, 1), data & (1<<3)); - floppy_drive_set_ready_state(image_from_devtype_and_index(IO_FLOPPY, 0), 1, 1); - floppy_drive_set_ready_state(image_from_devtype_and_index(IO_FLOPPY, 1), 1, 1); - - spectrum_plus3_port_1ffd_data = data; - - /* disable paging? */ - if ((spectrum_128_port_7ffd_data & 0x20)==0) - { - /* no */ - spectrum_plus3_update_memory(); - } -} - -/* decoding as per spectrum FAQ on www.worldofspectrum.org */ -static READ8_HANDLER ( spectrum_plus3_port_r ) -{ - if ((offset & 1)==0) - { - return spectrum_port_fe_r(offset); - } - - if ((offset & 2)==0) - { - switch ((offset>>14) & 0x03) - { - /* +3 fdc,memory,centronics */ - case 0: - { - switch ((offset>>12) & 0x03) - { - /* +3 centronics */ - case 0: - break; - - /* +3 fdc status */ - case 2: - return spectrum_plus3_port_2ffd_r(offset); - /* +3 fdc data */ - case 3: - return spectrum_plus3_port_3ffd_r(offset); - - default: - break; - } - } - break; - - /* 128k AY data */ - case 3: - return spectrum_128_port_fffd_r(offset); - - default: - break; - } - } - - return cpu_getscanline()<193 ? spectrum_128_screen_location[0x1800|(cpu_getscanline()&0xf8)<<2]:0xff; -} - -static WRITE8_HANDLER ( spectrum_plus3_port_w ) -{ - if ((offset & 1)==0) - spectrum_port_fe_w(offset,data); - - /* the following is not decoded exactly, need to check - what is correct! */ - - if ((offset & 2)==0) - { - switch ((offset>>14) & 0x03) - { - /* +3 fdc,memory,centronics */ - case 0: - { - switch ((offset>>12) & 0x03) - { - /* +3 centronics */ - case 0: - { - - - } - break; - - /* +3 memory */ - case 1: - spectrum_plus3_port_1ffd_w(offset, data); - break; - - /* +3 fdc data */ - case 3: - spectrum_plus3_port_3ffd_w(offset,data); - break; - - default: - break; - } - } - break; - - /* 128k memory */ - case 1: - spectrum_plus3_port_7ffd_w(offset, data); - break; - - /* 128k AY data */ - case 2: - spectrum_128_port_bffd_w(offset, data); - break; - - /* 128K AY register */ - case 3: - spectrum_128_port_fffd_w(offset, data); - - default: - break; - } - } - -/*logerror("Write %02x to +3 port: %04x\n", data, offset); */ -} - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (spectrum_plus3_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( spectrum_plus3_port_r, spectrum_plus3_port_w ) -ADDRESS_MAP_END - -static MACHINE_RESET( spectrum_plus3 ) -{ - spectrum_alloc_ram(128); - - nec765_init(&spectrum_plus3_nec765_interface, NEC765A); - - floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 0), FLOPPY_DRIVE_SS_40); - floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 1), FLOPPY_DRIVE_SS_40); - - /* Initial configuration */ - spectrum_128_port_7ffd_data = 0; - spectrum_plus3_port_1ffd_data = 0; - spectrum_plus3_update_memory(); - - machine_reset_spectrum(machine); -} - - -/****************************************************************************************************/ -/* TS2048 specific functions */ - - -int ts2068_port_ff_data = -1; /* Display enhancement control */ -int ts2068_port_f4_data = -1; /* Horizontal Select Register */ - -static READ8_HANDLER(ts2068_port_f4_r) -{ - return ts2068_port_f4_data; -} - -static WRITE8_HANDLER(ts2068_port_f4_w) -{ - ts2068_port_f4_data = data; - ts2068_update_memory(); -} - -static WRITE8_HANDLER(ts2068_port_f5_w) -{ - AY8910_control_port_0_w(0, data); -} - -static READ8_HANDLER(ts2068_port_f6_r) -{ - /* TODO - Reading from register 14 reads the joystick ports - set bit 8 of address to read joystick #1 - set bit 9 of address to read joystick #2 - if both bits are set then OR values - Bit 0 up, 1 down, 2 left, 3 right, 7 fire active low. Other bits 1 - */ - return AY8910_read_port_0_r(0); -} - -static WRITE8_HANDLER(ts2068_port_f6_w) -{ - AY8910_write_port_0_w(0, data); -} - -static READ8_HANDLER(ts2068_port_ff_r) -{ - return ts2068_port_ff_data; -} - -static WRITE8_HANDLER(ts2068_port_ff_w) -{ - /* Bits 0-2 Video Mode Select - Bits 3-5 64 column mode ink/paper selection - (See ts2068_vh_screenrefresh for more info) - Bit 6 17ms Interrupt Inhibit - Bit 7 Cartridge (0) / EXROM (1) select - */ - ts2068_port_ff_data = data; - ts2068_update_memory(); - logerror("Port %04x write %02x\n", offset, data); -} - - -static READ8_HANDLER ( ts2068_port_r ) -{ - switch (offset & 0xff) - { - /* Note: keys only decoded on port #fe not all even ports so - ports #f4 & #f6 correctly read */ - case 0xf4: return ts2068_port_f4_r(offset); - case 0xf6: return ts2068_port_f6_r(offset); - case 0xff: return ts2068_port_ff_r(offset); - - case 0xfe: return spectrum_port_fe_r(offset); - case 0x1f: return spectrum_port_1f_r(offset); - case 0x7f: return spectrum_port_7f_r(offset); - case 0xdf: return spectrum_port_df_r(offset); - } - logerror("Read from port: %04x\n", offset); - - return 0xff; -} - -static WRITE8_HANDLER ( ts2068_port_w ) -{ -/* Ports #fd & #fc were reserved by Timex for bankswitching and are not used - by either the hardware or system software. - Port #fb is the Thermal printer port and works exactly as the Sinclair - Printer - ie not yet emulated. -*/ - switch (offset & 0xff) - { - case 0xfe: spectrum_port_fe_w(offset,data); break; - case 0xf4: ts2068_port_f4_w(offset,data); break; - case 0xf5: ts2068_port_f5_w(offset,data); break; - case 0xf6: ts2068_port_f6_w(offset,data); break; - case 0xff: ts2068_port_ff_w(offset,data); break; - default: - logerror("Write %02x to Port: %04x\n", data, offset); - } -} - - - -/******************************************************************* - * - * Bank switch between the 3 internal memory banks HOME, EXROM - * and DOCK (Cartridges). The HOME bank contains 16K ROM in the - * 0-16K area and 48K RAM fills the rest. The EXROM contains 8K - * ROM and can appear in every 8K segment (ie 0-8K, 8-16K etc). - * The DOCK is empty and is meant to be occupied by cartridges - * you can plug into the cartridge dock of the 2068. - * - * The address space is divided into 8 8K chunks. Bit 0 of port - * #f4 corresponds to the 0-8K chunk, bit 1 to the 8-16K chunk - * etc. If the bit is 0 then the chunk is controlled by the HOME - * bank. If the bit is 1 then the chunk is controlled by either - * the DOCK or EXROM depending on bit 7 of port #ff. Note this - * means that that the Z80 can't see chunks of the EXROM and DOCK - * at the same time. - * - *******************************************************************/ -void ts2068_update_memory(void) -{ - unsigned char *ChosenROM, *ExROM, *DOCK; - read8_handler rh; - write8_handler wh; - - DOCK = timex_cart_data; - - ExROM = memory_region(REGION_CPU1) + 0x014000; - - if (ts2068_port_f4_data & 0x01) - { - if (ts2068_port_ff_data & 0x80) - { - rh = MRA8_BANK1; - wh = MWA8_ROM; - memory_set_bankptr(1, ExROM); - logerror("0000-1fff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(1, DOCK); - rh = MRA8_BANK1; - if (timex_cart_chunks&0x01) - wh = MWA8_BANK9; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("0000-1fff Cartridge\n"); - } - } - else - { - ChosenROM = memory_region(REGION_CPU1) + 0x010000; - memory_set_bankptr(1, ChosenROM); - rh = MRA8_BANK1; - wh = MWA8_ROM; - logerror("0000-1fff HOME\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x1fff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x02) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(2, ExROM); - rh = MRA8_BANK2; - wh = MWA8_ROM; - logerror("2000-3fff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(2, DOCK+0x2000); - rh = MRA8_BANK2; - if (timex_cart_chunks&0x02) - wh = MWA8_BANK10; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("2000-3fff Cartridge\n"); - } - } - else - { - ChosenROM = memory_region(REGION_CPU1) + 0x012000; - memory_set_bankptr(2, ChosenROM); - rh = MRA8_BANK2; - wh = MWA8_ROM; - logerror("2000-3fff HOME\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x3fff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x04) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(3, ExROM); - rh = MRA8_BANK3; - wh = MWA8_ROM; - logerror("4000-5fff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(3, DOCK+0x4000); - rh = MRA8_BANK3; - if (timex_cart_chunks&0x04) - wh = MWA8_BANK11; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("4000-5fff Cartridge\n"); - } - } - else - { - memory_set_bankptr(3, mess_ram); - memory_set_bankptr(11, mess_ram); - rh = MRA8_BANK3; - wh = MWA8_BANK11; - logerror("4000-5fff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x08) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(4, ExROM); - rh = MRA8_BANK4; - wh = MWA8_ROM; - logerror("6000-7fff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(4, DOCK+0x6000); - rh = MRA8_BANK4; - if (timex_cart_chunks&0x08) - wh = MWA8_BANK12; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("6000-7fff Cartridge\n"); - } - } - else - { - memory_set_bankptr(4, mess_ram + 0x2000); - memory_set_bankptr(12, mess_ram + 0x2000); - rh = MRA8_BANK4; - wh = MWA8_BANK12; - logerror("6000-7fff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x7fff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x10) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(5, ExROM); - rh = MRA8_BANK5; - wh = MWA8_ROM; - logerror("8000-9fff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(5, DOCK+0x8000); - rh = MRA8_BANK5; - if (timex_cart_chunks&0x10) - wh = MWA8_BANK13; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("8000-9fff Cartridge\n"); - } - } - else - { - memory_set_bankptr(5, mess_ram + 0x4000); - memory_set_bankptr(13, mess_ram + 0x4000); - rh = MRA8_BANK5; - wh = MWA8_BANK13; - logerror("8000-9fff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0,rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0,wh); - - if (ts2068_port_f4_data & 0x20) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(6, ExROM); - rh = MRA8_BANK6; - wh = MWA8_ROM; - logerror("a000-bfff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(6, DOCK+0xa000); - rh = MRA8_BANK6; - if (timex_cart_chunks&0x20) - wh = MWA8_BANK14; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("a000-bfff Cartridge\n"); - } - } - else - { - memory_set_bankptr(6, mess_ram + 0x6000); - memory_set_bankptr(14, mess_ram + 0x6000); - rh = MRA8_BANK6; - wh = MWA8_BANK14; - logerror("a000-bfff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xbfff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x40) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(7, ExROM); - rh = MRA8_BANK7; - wh = MWA8_ROM; - logerror("c000-dfff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(7, DOCK+0xc000); - rh = MRA8_BANK7; - if (timex_cart_chunks&0x40) - wh = MWA8_BANK15; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("c000-dfff Cartridge\n"); - } - } - else - { - memory_set_bankptr(7, mess_ram + 0x8000); - memory_set_bankptr(15, mess_ram + 0x8000); - rh = MRA8_BANK7; - wh = MWA8_BANK15; - logerror("c000-dfff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xdfff, 0, 0, wh); - - if (ts2068_port_f4_data & 0x80) - { - if (ts2068_port_ff_data & 0x80) - { - memory_set_bankptr(8, ExROM); - rh = MRA8_BANK8; - wh = MWA8_ROM; - logerror("e000-ffff EXROM\n"); - } - else - { - if (timex_cart_type == TIMEX_CART_DOCK) - { - memory_set_bankptr(8, DOCK+0xe000); - rh = MRA8_BANK8; - if (timex_cart_chunks&0x80) - wh = MWA8_BANK16; - else - wh = MWA8_ROM; - } - else - { - rh = MRA8_NOP; - wh = MWA8_ROM; - } - logerror("e000-ffff Cartridge\n"); - } - } - else - { - memory_set_bankptr(8, mess_ram + 0xa000); - memory_set_bankptr(16, mess_ram + 0xa000); - rh = MRA8_BANK8; - wh = MWA8_BANK16; - logerror("e000-ffff RAM\n"); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xffff, 0, 0, wh); -} - - -static ADDRESS_MAP_START (ts2068_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( ts2068_port_r, ts2068_port_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (ts2068_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x1fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK9 ) - AM_RANGE(0x2000, 0x3fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK10 ) - AM_RANGE(0x4000, 0x5fff) AM_READWRITE( MRA8_BANK3, MWA8_BANK11 ) - AM_RANGE(0x6000, 0x7fff) AM_READWRITE( MRA8_BANK4, MWA8_BANK12 ) - AM_RANGE(0x8000, 0x9fff) AM_READWRITE( MRA8_BANK5, MWA8_BANK13 ) - AM_RANGE(0xa000, 0xbfff) AM_READWRITE( MRA8_BANK6, MWA8_BANK14 ) - AM_RANGE(0xc000, 0xdfff) AM_READWRITE( MRA8_BANK7, MWA8_BANK15 ) - AM_RANGE(0xe000, 0xffff) AM_READWRITE( MRA8_BANK8, MWA8_BANK16 ) -ADDRESS_MAP_END - - -static MACHINE_RESET( ts2068 ) -{ - ts2068_port_ff_data = 0; - ts2068_port_f4_data = 0; - ts2068_update_memory(); - - machine_reset_spectrum(machine); -} - - -/****************************************************************************************************/ -/* TC2048 specific functions */ - - -static void tc2048_port_ff_w(int offset, int data) -{ - ts2068_port_ff_data = data; - logerror("Port %04x write %02x\n", offset, data); -} - -static READ8_HANDLER ( tc2048_port_r ) -{ - if ((offset & 1)==0) - return spectrum_port_fe_r(offset); - switch (offset & 0xff) - { - case 0xff: return ts2068_port_ff_r(offset); - case 0x1f: return spectrum_port_1f_r(offset); - case 0x7f: return spectrum_port_7f_r(offset); - case 0xdf: return spectrum_port_df_r(offset); - } - - logerror("Read from port: %04x\n", offset); - return 0xff; -} - -static WRITE8_HANDLER ( tc2048_port_w ) -{ - if ((offset & 1)==0) - spectrum_port_fe_w(offset,data); - else if ((offset & 0xff)==0xff) - tc2048_port_ff_w(offset,data); - else - { - logerror("Write %02x to Port: %04x\n", data, offset); - } -} - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (tc2048_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( tc2048_port_r, tc2048_port_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START (tc2048_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x3fff) AM_ROM - AM_RANGE( 0x4000, 0xffff) AM_READWRITE( MRA8_BANK1, MWA8_BANK2 ) -ADDRESS_MAP_END - -static MACHINE_RESET( tc2048 ) -{ - memory_set_bankptr(1, mess_ram); - memory_set_bankptr(2, mess_ram); - ts2068_port_ff_data = 0; - - machine_reset_spectrum(machine); -} - - -/****************************************************************************************************/ -/* BETADISK/TR-DOS disc controller emulation */ -/* microcontroller KR1818VG93 is a russian wd179x clone */ -#include "machine/wd17xx.h" - -/* -DRQ (D6) and INTRQ (D7). -DRQ - signal showing request of data by microcontroller -INTRQ - signal of completion of execution of command. -*/ - -static int betadisk_status; -static int betadisk_active; -static void (*betadisk_memory_update)(void); - -static OPBASE_HANDLER(betadisk_opbase_handler) -{ - - int pc; - - pc = activecpu_get_pc(); - - if ((pc & 0xc000)!=0x0000) - { - /* outside rom area */ - betadisk_active = 0; - - betadisk_memory_update(); - } - else - { - /* inside rom area, switch on betadisk */ - // betadisk_active = 1; - - // betadisk_memory_update(); - } - - - return pc & 0x0ffff; -} - -static void betadisk_wd179x_callback(int state) -{ - switch (state) - { - case WD179X_DRQ_SET: - { - betadisk_status |= (1<<6); - } - break; - - case WD179X_DRQ_CLR: - { - betadisk_status &=~(1<<6); - } - break; - - case WD179X_IRQ_SET: - { - betadisk_status |= (1<<7); - } - break; - - case WD179X_IRQ_CLR: - { - betadisk_status &=~(1<<7); - } - break; - } -} - -/* these are active only when betadisk is enabled */ -static WRITE8_HANDLER(betadisk_w) -{ - - if (betadisk_active) - { - - } -} - - -/* these are active only when betadisk is enabled */ -static READ8_HANDLER(betadisk_r) -{ - if (betadisk_active) - { - /* decoding of these ports might be wrong - to be checked! */ - if ((offset & 0x01f)==0x01f) - { - switch (offset & 0x0ff) - { - - } - } - - } - - return 0x0ff; -} - -static void betadisk_init(void) -{ - betadisk_active = 0; - betadisk_status = 0x03f; - wd179x_init(WD_TYPE_179X,&betadisk_wd179x_callback); -} - -/****************************************************************************************************/ -/* Zs Scorpion 256 */ - -/* -port 7ffd. full compatibility with Zx spectrum 128. digits are: - -D0-D2 - number of RAM page to put in C000-FFFF -D3 - switch of address for RAM of screen. 0 - 4000, 1 - c000 -D4 - switch of ROM : 0-zx128, 1-zx48 -D5 - 1 in this bit will block further output in port 7FFD, until reset. -*/ - -/* -port 1ffd - additional port for resources of computer. - -D0 - block of ROM in 0-3fff. when set to 1 - allows read/write page 0 of RAM -D1 - selects ROM expansion. this rom contains main part of service monitor. -D2 - not used -D3 - used for output in RS-232C -D4 - extended RAM. set to 1 - connects RAM page with number 8-15 in - C000-FFFF. number of page is given in gidits D0-D2 of port 7FFD -D5 - signal of strobe for interface centronics. to form the strobe has to be - set to 1. -D6-D7 - not used. ( yet ? ) -*/ - -/* rom 0=zx128, 1=zx48, 2 = service monitor, 3=tr-dos */ - -static int scorpion_256_port_1ffd_data = 0; - -static void scorpion_update_memory(void) -{ - unsigned char *ChosenROM; - int ROMSelection; - read8_handler rh; - write8_handler wh; - - if (spectrum_128_port_7ffd_data & 8) - { - logerror("SCREEN 1: BLOCK 7\n"); - spectrum_128_screen_location = spectrum_ram + (7<<14); - } - else - { - logerror("SCREEN 0: BLOCK 5\n"); - spectrum_128_screen_location = spectrum_ram + (5<<14); - } - - /* select ram at 0x0c000-0x0ffff */ - { - int ram_page; - unsigned char *ram_data; - - ram_page = (spectrum_128_port_7ffd_data & 0x07) | ((scorpion_256_port_1ffd_data & (1<<4))>>1); - ram_data = spectrum_ram + (ram_page<<14); - - memory_set_bankptr(4, ram_data); - memory_set_bankptr(8, ram_data); - - logerror("RAM at 0xc000: %02x\n",ram_page); - } - - if (scorpion_256_port_1ffd_data & (1<<0)) - { - /* ram at 0x0000 */ - logerror("RAM at 0x0000\n"); - - /* connect page 0 of ram to 0x0000 */ - rh = MRA8_BANK1; - wh = MWA8_BANK5; - memory_set_bankptr(1, spectrum_ram+(8<<14)); - memory_set_bankptr(5, spectrum_ram+(8<<14)); - } - else - { - /* rom at 0x0000 */ - logerror("ROM at 0x0000\n"); - - /* connect page 0 of rom to 0x0000 */ - rh = MRA8_BANK1; - wh = MWA8_NOP; - - if (scorpion_256_port_1ffd_data & (1<<1)) - { - ROMSelection = 2; - } - else - { - - /* ROM switching */ - ROMSelection = ((spectrum_128_port_7ffd_data>>4) & 0x01); - } - - /* rom 0 is 128K rom, rom 1 is 48 BASIC */ - ChosenROM = memory_region(REGION_CPU1) + 0x010000 + (ROMSelection<<14); - - memory_set_bankptr(1, ChosenROM); - - logerror("rom switch: %02x\n", ROMSelection); - } - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x3fff, 0, 0, rh); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x3fff, 0, 0, wh); -} - - -static WRITE8_HANDLER(scorpion_port_7ffd_w) -{ - logerror("scorpion 7ffd w: %02x\n", data); - - /* disable paging? */ - if (spectrum_128_port_7ffd_data & 0x20) - return; - - /* store new state */ - spectrum_128_port_7ffd_data = data; - - /* update memory */ - scorpion_update_memory(); -} - -static WRITE8_HANDLER(scorpion_port_1ffd_w) -{ - logerror("scorpion 1ffd w: %02x\n", data); - - scorpion_256_port_1ffd_data = data; - - /* disable paging? */ - if ((spectrum_128_port_7ffd_data & 0x20)==0) - { - scorpion_update_memory(); - } -} - - -/* not sure if decoding is full or partial on scorpion */ -/* TO BE CHECKED! */ -static READ8_HANDLER(scorpion_port_r) -{ - if ((offset & 1)==0) - { - return spectrum_port_fe_r(offset); - } - - /* KT: the following is not decoded exactly, need to check what - is correct */ - if ((offset & 2)==0) - { - switch ((offset>>8) & 0xff) - { - case 0xff: return spectrum_128_port_fffd_r(offset); - case 0x1f: return spectrum_port_1f_r(offset); - case 0x7f: return spectrum_port_7f_r(offset); - case 0xdf: return spectrum_port_df_r(offset); - } - } -#if 0 - switch (offset & 0x0ff) - { - case 0x01f: - return wd179x_status_r(offset); - case 0x03f: - return wd179x_track_r(offset); - case 0x05f: - return wd179x_sector_r(offset); - case 0x07f: - return wd179x_data_r(offset); - case 0x0ff: - return betadisk_status; - } -#endif - logerror("Read from scorpion port: %04x\n", offset); - - return 0xff; -} - - -/* not sure if decoding is full or partial on scorpion */ -/* TO BE CHECKED! */ -static WRITE8_HANDLER(scorpion_port_w) -{ - if ((offset & 1)==0) - spectrum_port_fe_w(offset,data); - - else if ((offset & 2)==0) - { - switch ((offset>>8) & 0xf0) - { - case 0x70: - scorpion_port_7ffd_w(offset, data); - break; - case 0xb0: - spectrum_128_port_bffd_w(offset, data); - break; - case 0xf0: - spectrum_128_port_fffd_w(offset, data); - break; - case 0x10: - scorpion_port_1ffd_w(offset, data); - break; - default: - logerror("Write %02x to scorpion port: %04x\n", data, offset); - } - } - else - { - logerror("Write %02x to scorpion port: %04x\n", data, offset); - } -} - - - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (scorpion_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE(scorpion_port_r, scorpion_port_w) -ADDRESS_MAP_END - -static MACHINE_RESET( scorpion ) -{ - spectrum_alloc_ram(256); - - /* Bank 5 is always in 0x4000 - 0x7fff */ - memory_set_bankptr(2, spectrum_ram + (5<<14)); - memory_set_bankptr(6, spectrum_ram + (5<<14)); - - /* Bank 2 is always in 0x8000 - 0xbfff */ - memory_set_bankptr(3, spectrum_ram + (2<<14)); - memory_set_bankptr(7, spectrum_ram + (2<<14)); - - spectrum_128_port_7ffd_data = 0; - scorpion_256_port_1ffd_data = 0; - - scorpion_update_memory(); - - betadisk_init(); -} - -/****************************************************************************************************/ -/* pentagon */ - -static READ8_HANDLER(pentagon_port_r) -{ - return 0x0ff; -} - - -static WRITE8_HANDLER(pentagon_port_w) -{ -} - - - -/* ports are not decoded full. -The function decodes the ports appropriately */ -static ADDRESS_MAP_START (pentagon_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x0000, 0xffff) AM_READWRITE( pentagon_port_r, pentagon_port_w ) -ADDRESS_MAP_END - -static MACHINE_RESET( pentagon ) -{ - spectrum_alloc_ram(128); - - /* Bank 5 is always in 0x4000 - 0x7fff */ - memory_set_bankptr(2, spectrum_ram + (5<<14)); - memory_set_bankptr(6, spectrum_ram + (5<<14)); - - /* Bank 2 is always in 0x8000 - 0xbfff */ - memory_set_bankptr(3, spectrum_ram + (2<<14)); - memory_set_bankptr(7, spectrum_ram + (2<<14)); - - betadisk_init(); -} - -/****************************************************************************************************/ - -static gfx_layout spectrum_charlayout = { - 8,8, - 256, - 1, /* 1 bits per pixel */ - - { 0 }, /* no bitplanes; 1 bit per pixel */ - - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0, 8*256, 16*256, 24*256, 32*256, 40*256, 48*256, 56*256 }, - - 8 /* every char takes 1 consecutive byte */ -}; - -static gfx_decode spectrum_gfxdecodeinfo[] = { - { 0, 0x0, &spectrum_charlayout, 0, 0x80 }, - { 0, 0x0, &spectrum_charlayout, 0, 0x80 }, - { 0, 0x0, &spectrum_charlayout, 0, 0x80 }, - { -1 } /* end of array */ -}; - -INPUT_PORTS_START( spectrum ) - PORT_START /* [0] 0xFEFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z COPY : LN BEEP") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X CLEAR Pound EXP INK") PORT_CODE(KEYCODE_X) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CONT ? LPRINT PAPER") PORT_CODE(KEYCODE_C) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V CLS / LLIST FLASH") PORT_CODE(KEYCODE_V) - - PORT_START /* [1] 0xFDFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A NEW STOP READ ~") PORT_CODE(KEYCODE_A) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S SAVE NOT RESTORE |") PORT_CODE(KEYCODE_S) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DIM STEP DATA \\") PORT_CODE(KEYCODE_D) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F FOR TO SGN {") PORT_CODE(KEYCODE_F) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO THEN ABS }") PORT_CODE(KEYCODE_G) - - PORT_START /* [2] 0xFBFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q PLOT <= SIN ASN") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W DRAW <> COS ACS") PORT_CODE(KEYCODE_W) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E REM >= TAN ATN") PORT_CODE(KEYCODE_E) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R RUN < INT VERIFY") PORT_CODE(KEYCODE_R) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T RAND > RND MERGE") PORT_CODE(KEYCODE_T) - - /* interface II uses this port for joystick */ - PORT_START /* [3] 0xF7FE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! BLUE DEF FN") PORT_CODE(KEYCODE_1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @ RED FN") PORT_CODE(KEYCODE_2) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # MAGENTA LINE") PORT_CODE(KEYCODE_3) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ GREEN OPEN#") PORT_CODE(KEYCODE_4) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % CYAN CLOSE#") PORT_CODE(KEYCODE_5) - - /* protek clashes with interface II! uses 5 = left, 6 = down, 7 = up, 8 = right, 0 = fire */ - PORT_START /* [4] 0xEFFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 _ BLACK FORMAT") PORT_CODE(KEYCODE_0) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ) POINT") PORT_CODE(KEYCODE_9) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 ( CAT") PORT_CODE(KEYCODE_8) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 ' WHITE ERASE") PORT_CODE(KEYCODE_7) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 & YELLOW MOVE") PORT_CODE(KEYCODE_6) - - PORT_START /* [5] 0xDFFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P PRINT \" TAB (c)") PORT_CODE(KEYCODE_P) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O POKE ; PEEK OUT") PORT_CODE(KEYCODE_O) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT AT CODE IN") PORT_CODE(KEYCODE_I) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF OR CHR$ ]") PORT_CODE(KEYCODE_U) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y RETURN AND STR$ [") PORT_CODE(KEYCODE_Y) - - PORT_START /* [6] 0xBFFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L LET = USR ATTR") PORT_CODE(KEYCODE_L) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K LIST + LEN SCREEN$") PORT_CODE(KEYCODE_K) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J LOAD - VAL VAL$") PORT_CODE(KEYCODE_J) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H GOSUB ^ SQR CIRCLE") PORT_CODE(KEYCODE_H) - - PORT_START /* [7] 0x7FFE */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SYMBOL SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M PAUSE . PI INVERSE") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N NEXT , INKEY$ OVER") PORT_CODE(KEYCODE_N) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B BORDER * BIN BRIGHT") PORT_CODE(KEYCODE_B) - - PORT_START /* [8] Spectrum+ Keys (set CAPS + 1-5) */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EDIT (CAPS + 1)") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS LOCK (CAPS + 2)") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRUE VID (CAPS + 3)") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INV VID (CAPS + 4)") PORT_CODE(KEYCODE_END) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cursor left (CAPS + 5)") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [9] Spectrum+ Keys (set CAPS + 6-0) */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL (CAPS + 0)") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH (CAPS + 9)") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cursor right (CAPS + 8)") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cursor up (CAPS + 7)") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cursor down (CAPS + 6)") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [10] Spectrum+ Keys (set CAPS + SPACE and CAPS + SYMBOL */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EXT MODE") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [11] Spectrum+ Keys (set SYMBOL SHIFT + O/P */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\"") PORT_CODE(KEYCODE_F4) - /* PORT_BITX(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD, "\"", KEYCODE_QUOTE, CODE_NONE ) */ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [12] Spectrum+ Keys (set SYMBOL SHIFT + N/M */ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0xf3, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [13] Kempston joystick interface */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KEMPSTON JOYSTICK RIGHT") PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KEMPSTON JOYSTICK LEFT") PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KEMPSTON JOYSTICK DOWN") PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KEMPSTON JOYSTICK UP") PORT_CODE(JOYCODE_1_UP) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KEMPSTON JOYSTICK FIRE") PORT_CODE(JOYCODE_1_BUTTON1) - - PORT_START /* [14] Fuller joystick interface */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FULLER JOYSTICK UP") PORT_CODE(JOYCODE_1_UP) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FULLER JOYSTICK DOWN") PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FULLER JOYSTICK LEFT") PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FULLER JOYSTICK RIGHT") PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FULLER JOYSTICK FIRE") PORT_CODE(JOYCODE_1_BUTTON1) - - PORT_START /* [15] Mikrogen joystick interface */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIKROGEN JOYSTICK UP") PORT_CODE(JOYCODE_1_UP) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIKROGEN JOYSTICK DOWN") PORT_CODE(JOYCODE_1_DOWN) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIKROGEN JOYSTICK RIGHT") PORT_CODE(JOYCODE_1_RIGHT) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIKROGEN JOYSTICK LEFT") PORT_CODE(JOYCODE_1_LEFT) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIKROGEN JOYSTICK FIRE") PORT_CODE(JOYCODE_1_BUTTON1) - - - PORT_START /* [16] */ - PORT_DIPNAME(0x80, 0x00, "Hardware Version") - PORT_DIPSETTING(0x00, "Issue 2" ) - PORT_DIPSETTING(0x80, "Issue 3" ) - PORT_DIPNAME(0x40, 0x00, "End of .TAP action") - PORT_DIPSETTING(0x00, "Disable .TAP support" ) - PORT_DIPSETTING(0x40, "Rewind tape to start (to reload earlier levels)" ) - PORT_DIPNAME(0x20, 0x00, "+3/+2a etc. Disk Drive") - PORT_DIPSETTING(0x00, "Enabled" ) - PORT_DIPSETTING(0x20, "Disabled" ) - PORT_BIT(0x1f, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* [17] Toggle cassette motor */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Motor") PORT_CODE(KEYCODE_F1) - -INPUT_PORTS_END - -static unsigned char spectrum_palette[16*3] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, - 0xbf, 0x00, 0x00, 0xbf, 0x00, 0xbf, - 0x00, 0xbf, 0x00, 0x00, 0xbf, 0xbf, - 0xbf, 0xbf, 0x00, 0xbf, 0xbf, 0xbf, - - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, -}; - -static unsigned short spectrum_colortable[128*2] = { - 0,0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, - 1,0, 1,1, 1,2, 1,3, 1,4, 1,5, 1,6, 1,7, - 2,0, 2,1, 2,2, 2,3, 2,4, 2,5, 2,6, 2,7, - 3,0, 3,1, 3,2, 3,3, 3,4, 3,5, 3,6, 3,7, - 4,0, 4,1, 4,2, 4,3, 4,4, 4,5, 4,6, 4,7, - 5,0, 5,1, 5,2, 5,3, 5,4, 5,5, 5,6, 5,7, - 6,0, 6,1, 6,2, 6,3, 6,4, 6,5, 6,6, 6,7, - 7,0, 7,1, 7,2, 7,3, 7,4, 7,5, 7,6, 7,7, - - 8,8, 8,9, 8,10, 8,11, 8,12, 8,13, 8,14, 8,15, - 9,8, 9,9, 9,10, 9,11, 9,12, 9,13, 9,14, 9,15, - 10,8, 10,9, 10,10, 10,11, 10,12, 10,13, 10,14, 10,15, - 11,8, 11,9, 11,10, 11,11, 11,12, 11,13, 11,14, 11,15, - 12,8, 12,9, 12,10, 12,11, 12,12, 12,13, 12,14, 12,15, - 13,8, 13,9, 13,10, 13,11, 13,12, 13,13, 13,14, 13,15, - 14,8, 14,9, 14,10, 14,11, 14,12, 14,13, 14,14, 14,15, - 15,8, 15,9, 15,10, 15,11, 15,12, 15,13, 15,14, 15,15 -}; -/* Initialise the palette */ -static PALETTE_INIT( spectrum ) -{ - palette_set_colors(machine, 0, spectrum_palette, sizeof(spectrum_palette) / 3); - memcpy(colortable, spectrum_colortable, sizeof(spectrum_colortable)); -} - -static INTERRUPT_GEN( spec_interrupt ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - - - -static MACHINE_DRIVER_START( spectrum ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3500000) /* 3.5 Mhz */ - MDRV_CPU_PROGRAM_MAP(spectrum_mem, 0) - MDRV_CPU_IO_MAP(spectrum_io, 0) - MDRV_CPU_VBLANK_INT(spec_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(50.08) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( spectrum ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) - MDRV_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - MDRV_GFXDECODE( spectrum_gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(256) - MDRV_PALETTE_INIT( spectrum ) - - MDRV_VIDEO_START( spectrum ) - MDRV_VIDEO_UPDATE( spectrum ) - MDRV_VIDEO_EOF( spectrum ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spectrum_128 ) - MDRV_IMPORT_FROM( spectrum ) - - MDRV_CPU_REPLACE("main", Z80, 3500000) /* 3.5 Mhz */ - MDRV_CPU_PROGRAM_MAP(spectrum_128_mem, 0) - MDRV_CPU_IO_MAP(spectrum_128_io, 0) - MDRV_SCREEN_REFRESH_RATE(50.021) - - MDRV_MACHINE_RESET( spectrum_128 ) - - /* video hardware */ - MDRV_VIDEO_START( spectrum_128 ) - MDRV_VIDEO_UPDATE( spectrum_128 ) - - /* sound hardware */ - MDRV_SOUND_ADD(AY8910, 1773400) - MDRV_SOUND_CONFIG(spectrum_ay_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spectrum_plus3 ) - MDRV_IMPORT_FROM( spectrum_128 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(spectrum_plus3_io, 0) - MDRV_SCREEN_REFRESH_RATE(50.01) - - MDRV_MACHINE_RESET( spectrum_plus3 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ts2068 ) - MDRV_IMPORT_FROM( spectrum_128 ) - MDRV_CPU_REPLACE("main", Z80, 3580000) /* 3.58 Mhz */ - MDRV_CPU_PROGRAM_MAP(ts2068_mem, 0) - MDRV_CPU_IO_MAP(ts2068_io, 0) - MDRV_SCREEN_REFRESH_RATE(60) - - MDRV_MACHINE_RESET( ts2068 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT) - MDRV_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1) - - MDRV_VIDEO_UPDATE( ts2068 ) - MDRV_VIDEO_EOF( ts2068 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( uk2086 ) - MDRV_IMPORT_FROM( ts2068 ) - MDRV_SCREEN_REFRESH_RATE(50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tc2048 ) - MDRV_IMPORT_FROM( spectrum ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tc2048_mem, 0) - MDRV_CPU_IO_MAP(tc2048_io, 0) - MDRV_SCREEN_REFRESH_RATE(50) - - MDRV_MACHINE_RESET( tc2048 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) - MDRV_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - - MDRV_VIDEO_START( spectrum_128 ) - MDRV_VIDEO_UPDATE( tc2048 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( scorpion ) - MDRV_IMPORT_FROM( spectrum_128 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(scorpion_io, 0) - MDRV_MACHINE_RESET( scorpion ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pentagon ) - MDRV_IMPORT_FROM( spectrum_128 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(pentagon_io, 0) - MDRV_MACHINE_RESET( pentagon ) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START(spectrum) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("spectrum.rom", 0x0000, 0x4000, CRC(ddee531f) SHA1(5ea7c2b824672e914525d1d5c419d71b84a426a2)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specbusy) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("48-busy.rom", 0x0000, 0x4000, CRC(1511cddb) SHA1(ab3c36daad4325c1d3b907b6dc9a14af483d14ec)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpsch) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("48-psych.rom", 0x0000, 0x4000, CRC(cd60b589) SHA1(0853e25857d51dd41b20a6dbc8e80f028c5befaa)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specgrot) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("48-groot.rom", 0x0000, 0x4000, CRC(abf18c45) SHA1(51165cde68e218512d3145467074bc7e786bf307)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specimc) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("48-imc.rom", 0x0000, 0x4000, CRC(d1be99ee) SHA1(dee814271c4d51de257d88128acdb324fb1d1d0d)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(speclec) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("80-lec.rom", 0x0000, 0x4000, CRC(5b5c92b1) SHA1(bb7a77d66e95d2e28ebb610e543c065e0d428619)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(spec128) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD("zx128_0.rom",0x10000,0x4000, CRC(e76799d2) SHA1(4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5)) - ROM_LOAD("zx128_1.rom",0x14000,0x4000, CRC(b96a36be) SHA1(80080644289ed93d71a1103992a154cc9802b2fa)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(spec128s) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD("zx128s0.rom",0x10000,0x4000, CRC(453d86b2) SHA1(968937b1c750f0ef6205f01c6db4148da4cca4e3)) - ROM_LOAD("zx128s1.rom",0x14000,0x4000, CRC(6010e796) SHA1(bea3f397cc705eafee995ea629f4a82550562f90)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpls2) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD("zxp2_0.rom",0x10000,0x4000, CRC(5d2e8c66) SHA1(72703f9a3e734f3c23ec34c0727aae4ccbef9a91)) - ROM_LOAD("zxp2_1.rom",0x14000,0x4000, CRC(98b1320b) SHA1(de8b0d2d0379cfe7c39322a086ca6da68c7f23cb)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpl2a) - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("p2a41_0.rom",0x10000,0x4000, CRC(30c9f490) SHA1(62ec15a4af56cd1d206d0bd7011eac7c889a595d)) - ROM_LOAD("p2a41_1.rom",0x14000,0x4000, CRC(a7916b3f) SHA1(1a7812c383a3701e90e88d1da086efb0c033ac72)) - ROM_LOAD("p2a41_2.rom",0x18000,0x4000, CRC(c9a0b748) SHA1(8df145d10ff78f98138682ea15ebccb2874bf759)) - ROM_LOAD("p2a41_3.rom",0x1c000,0x4000, CRC(b88fd6e3) SHA1(be365f331942ec7ec35456b641dac56a0dbfe1f0)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpls3) - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("pl3-0.rom",0x10000,0x4000, CRC(17373da2) SHA1(e319ed08b4d53a5e421a75ea00ea02039ba6555b)) - ROM_LOAD("pl3-1.rom",0x14000,0x4000, CRC(f1d1d99e) SHA1(c9969fc36095a59787554026a9adc3b87678c794)) - ROM_LOAD("pl3-2.rom",0x18000,0x4000, CRC(3dbf351d) SHA1(22e50c6ba4157a3f6a821bd9937cd26e292775c6)) - ROM_LOAD("pl3-3.rom",0x1c000,0x4000, CRC(04448eaa) SHA1(65f031caa8148a5493afe42c41f4929deab26b4e)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpls4) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("plus4.rom",0x0000,0x4000, CRC(7e0f47cb) SHA1(c103e89ef58e6ade0c01cea0247b332623bd9a30)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(tk90x) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("tk90x.rom",0x0000,0x4000, CRC(3e785f6f) SHA1(9a943a008be13194fb006bddffa7d22d2277813f)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(tk95) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("tk95.rom",0x0000,0x4000, CRC(17368e07) SHA1(94edc401d43b0e9a9cdc1d35de4b6462dc414ab3)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(inves) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("inves.rom",0x0000,0x4000, CRC(8ff7a4d1) SHA1(d020440638aff4d39467128413ef795677be9c23)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(tc2048) - ROM_REGION(0x10000,REGION_CPU1,0) - ROM_LOAD("tc2048.rom",0x0000,0x4000, CRC(f1b5fa67) SHA1(febb2d495b6eda7cdcb4074935d6e9d9f328972d)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(ts2068) - ROM_REGION(0x16000,REGION_CPU1,0) - ROM_LOAD("ts2068_h.rom",0x10000,0x4000, CRC(bf44ec3f) SHA1(1446cb2780a9dedf640404a639fa3ae518b2d8aa)) - ROM_LOAD("ts2068_x.rom",0x14000,0x2000, CRC(ae16233a) SHA1(7e265a2c1f621ed365ea23bdcafdedbc79c1299c)) -ROM_END - -ROM_START(uk2086) - ROM_REGION(0x16000,REGION_CPU1,0) - ROM_LOAD("uk2086_h.rom",0x10000,0x4000, CRC(5ddc0ca2) SHA1(1d525fe5cdc82ab46767f665ad735eb5363f1f51)) - ROM_LOAD("ts2068_x.rom",0x14000,0x2000, CRC(ae16233a) SHA1(7e265a2c1f621ed365ea23bdcafdedbc79c1299c)) -ROM_END - -ROM_START(specp2fr) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD("plus2fr0.rom",0x10000,0x4000, CRC(c684c535) SHA1(56684c4c85a616e726a50707483b9a42d8e724ed)) - ROM_LOAD("plus2fr1.rom",0x14000,0x4000, CRC(f5e509c5) SHA1(7e398f62689c9d90a36d3a101351ec9987207308)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specp2sp) - ROM_REGION(0x18000,REGION_CPU1,0) - ROM_LOAD("plus2sp0.rom",0x10000,0x4000, CRC(e807d06e) SHA1(8259241b28ff85441f1bedc2bee53445767c51c5)) - ROM_LOAD("plus2sp1.rom",0x14000,0x4000, CRC(41981d4b) SHA1(ec0d5a158842d20601b4fbeaefc6668db979d0e1)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specp3sp) - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("plus3sp0.rom",0x10000,0x4000, CRC(1f86147a) SHA1(e9b0a60a1a8def511d59090b945d175bdc646346)) - ROM_LOAD("plus3sp1.rom",0x14000,0x4000, CRC(a8ac4966) SHA1(4e48f196427596c7990c175d135c15a039c274a4)) - ROM_LOAD("plus3sp2.rom",0x18000,0x4000, CRC(f6bb0296) SHA1(09fc005625589ef5992515957ce7a3167dec24b2)) - ROM_LOAD("plus3sp3.rom",0x1c000,0x4000, CRC(f6d25389) SHA1(ec8f644a81e2e9bcb58ace974103ea960361bad2)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specpl3e) - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("roma-en.rom",0x10000,0x8000, CRC(2d533344) SHA1(5ff2dae32eb745d87e0b54c595d1d20a866f316f)) - ROM_LOAD("romb-en.rom",0x18000,0x8000, CRC(ef8d5d92) SHA1(983aa53aa76e25a3af123c896016bacf6829b72b)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(specp3es) - ROM_REGION(0x20000,REGION_CPU1,0) - ROM_LOAD("roma-es.rom",0x10000,0x8000, CRC(ba694b4b) SHA1(d15d9e43950483cffc79f1cfa89ecb114a88f6c2)) - ROM_LOAD("romb-es.rom",0x18000,0x8000, CRC(61ed94db) SHA1(935b14c13db75d872de8ad0d591aade0adbbc355)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(scorpion) - ROM_REGION(0x020000, REGION_CPU1, 0) - ROM_LOAD("scorp0.rom",0x010000, 0x4000, CRC(0eb40a09)) - ROM_LOAD("scorp1.rom",0x014000, 0x4000, CRC(9d513013)) - ROM_LOAD("scorp2.rom",0x018000, 0x4000, CRC(fd0d3ce1)) - ROM_LOAD("scorp3.rom",0x01c000, 0x4000, CRC(1fe1d003)) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -ROM_START(pentagon) - ROM_REGION(0x020000, REGION_CPU1, 0) - ROM_CART_LOAD(0, "rom\0", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -static void spectrum_common_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED; break; - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *)tzx_cassette_formats; break; - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void spectrum_common_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sna,z80,sp"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_spectrum; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void spectrum_common_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "scr"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_spectrum; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(spectrum_common) - CONFIG_DEVICE(spectrum_common_cassette_getinfo) - CONFIG_DEVICE(spectrum_common_snapshot_getinfo) - CONFIG_DEVICE(spectrum_common_quickload_getinfo) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(spectrum) - CONFIG_IMPORT_FROM(spectrum_common) - CONFIG_DEVICE(cartslot_device_getinfo) -SYSTEM_CONFIG_END - -static void specpls3_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - default: legacydsk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(specpls3) - CONFIG_IMPORT_FROM(spectrum_common) - CONFIG_DEVICE(specpls3_floppy_getinfo) -SYSTEM_CONFIG_END - -static void ts2068_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_timex_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_timex_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dck"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(ts2068) - CONFIG_IMPORT_FROM(spectrum_common) - CONFIG_DEVICE(ts2068_cartslot_getinfo) - CONFIG_RAM_DEFAULT(48 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(tc2048) - CONFIG_IMPORT_FROM(spectrum) - CONFIG_RAM_DEFAULT(48 * 1024) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1982, spectrum, 0, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum" , 0) -COMP( 2000, specpls4, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum +4", GAME_COMPUTER_MODIFIED ) -COMP( 1994, specbusy, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum (BusySoft Upgrade v1.18)", GAME_COMPUTER_MODIFIED ) -COMP( ????, specpsch, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum (Maly's Psycho Upgrade)", GAME_COMPUTER_MODIFIED ) -COMP( ????, specgrot, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum (De Groot's Upgrade)", GAME_COMPUTER_MODIFIED ) -COMP( 1985, specimc, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum (Collier's Upgrade)", GAME_COMPUTER_MODIFIED ) -COMP( 1987, speclec, spectrum, 0, spectrum, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum (LEC Upgrade)", GAME_COMPUTER_MODIFIED ) -COMP( 1986, inves, spectrum, 0, spectrum, spectrum, 0, spectrum, "Investronica", "Inves Spectrum 48K+" , 0) -COMP( 1985, tk90x, spectrum, 0, spectrum, spectrum, 0, spectrum, "Micro Digital", "TK-90x Color Computer" , 0) -COMP( 1986, tk95, spectrum, 0, spectrum, spectrum, 0, spectrum, "Micro Digital", "TK-95 Color Computer" , 0) -COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, 0, tc2048, "Timex of Portugal", "TC-2048" , 0) -COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, 0, ts2068, "Timex Sinclair", "TS-2068" , 0) -COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, 0, ts2068, "Unipolbrit", "UK-2086 ver. 1.2" , 0) - -COMP( 1986, spec128, 0, 0, spectrum_128, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum 128" ,GAME_NOT_WORKING) -COMP( 1985, spec128s, spec128, 0, spectrum_128, spectrum, 0, spectrum, "Sinclair Research", "ZX Spectrum 128 (Spain)" ,GAME_NOT_WORKING) -COMP( 1986, specpls2, spec128, 0, spectrum_128, spectrum, 0, spectrum, "Amstrad plc", "ZX Spectrum +2" ,GAME_NOT_WORKING) -COMP( 1987, specpl2a, spec128, 0, spectrum_plus3,spectrum, 0, specpls3, "Amstrad plc", "ZX Spectrum +2a" ,GAME_NOT_WORKING) -COMP( 1987, specpls3, spec128, 0, spectrum_plus3,spectrum, 0, specpls3, "Amstrad plc", "ZX Spectrum +3" ,GAME_NOT_WORKING) - -COMP( 1986, specp2fr, spec128, 0, spectrum_128, spectrum, 0, spectrum, "Amstrad plc", "ZX Spectrum +2 (France)" ,GAME_NOT_WORKING) -COMP( 1986, specp2sp, spec128, 0, spectrum_128, spectrum, 0, spectrum, "Amstrad plc", "ZX Spectrum +2 (Spain)" ,GAME_NOT_WORKING) -COMP( 1987, specp3sp, spec128, 0, spectrum_plus3,spectrum, 0, specpls3, "Amstrad plc", "ZX Spectrum +3 (Spain)" ,GAME_NOT_WORKING) -COMP( 2000, specpl3e, spec128, 0, spectrum_plus3,spectrum, 0, specpls3, "Amstrad plc", "ZX Spectrum +3e" , GAME_NOT_WORKING|GAME_COMPUTER_MODIFIED ) -COMP( 2000, specp3es, spec128, 0, spectrum_plus3,spectrum, 0, specpls3, "Amstrad plc", "ZX Spectrum +3e (Spain)" , GAME_NOT_WORKING|GAME_COMPUTER_MODIFIED ) - -COMP( ????, scorpion, 0, 0, scorpion, spectrum, 0, specpls3, "Zonov and Co.", "Zs Scorpion 256", GAME_NOT_WORKING) -COMP( ????, pentagon, spectrum, 0, pentagon, spectrum, 0, specpls3, "???", "Pentagon", GAME_NOT_WORKING) diff --git a/mess/systems/studio2.c b/mess/systems/studio2.c deleted file mode 100644 index 817e32d42..000000000 --- a/mess/systems/studio2.c +++ /dev/null @@ -1,378 +0,0 @@ -/****************************************************************************** - PeT mess@utanet.at May 2000 - - Paul Robson's Emulator at www.classicgaming.com/studio2 made it possible -******************************************************************************/ - -#include "driver.h" -#include "image.h" -#include "cpu/cdp1802/cdp1802.h" -#include "devices/cartslot.h" -#include "includes/studio2.h" -#include "inputx.h" -#include "sound/beep.h" - -#define ST2_HEADER_SIZE 256 - -extern READ8_HANDLER( cdp1861_video_enable_r ); - -static UINT8 keylatch; - -/* vidhrdw */ - -static unsigned char studio2_palette[] = -{ - 0, 0, 0, - 255,255,255 -}; - -static unsigned short studio2_colortable[1][2] = { - { 0, 1 }, -}; - -static PALETTE_INIT( studio2 ) -{ - palette_set_colors(machine, 0, studio2_palette, sizeof(studio2_palette) / 3); - memcpy(colortable,studio2_colortable,sizeof(studio2_colortable)); -} - -/* Read/Write Handlers */ - -static WRITE8_HANDLER( keylatch_w ) -{ - keylatch = data & 0x0f; -} - -static WRITE8_HANDLER( bankswitch_w ) -{ - memory_set_bankptr(1, memory_region(REGION_CPU1)); -} - -/* Memory Maps */ - -static ADDRESS_MAP_START( studio2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0800, 0x09ff) AM_RAM - AM_RANGE(0x0a00, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( studio2_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(cdp1861_video_enable_r) - AM_RANGE(0x02, 0x02) AM_WRITE(keylatch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vip_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAMBANK(1) // rom mapped in at reset, switched to ram with out 4 - AM_RANGE(0x0400, 0x0fff) AM_RAM - AM_RANGE(0x8000, 0x83ff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vip_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(cdp1861_video_enable_r) - AM_RANGE(0x02, 0x02) AM_WRITE(keylatch_w) - AM_RANGE(0x04, 0x04) AM_WRITE(bankswitch_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( studio2 ) - PORT_START - PORT_BIT( 0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 2") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_W) - PORT_BIT( 0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_E) - PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 1/Left 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_D) - - PORT_START - PORT_BIT( 0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 0") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 1") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 2") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 3") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 4") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 5") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 6") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 7") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 8") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) - PORT_BIT( 0x200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Player 2/Right 9") PORT_CODE(KEYCODE_3_PAD) -INPUT_PORTS_END - -INPUT_PORTS_START( vip ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 MW") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A MR") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B TR") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F TW") PORT_CODE(KEYCODE_F) - - PORT_START -INPUT_PORTS_END - -/* Graphics Layouts */ - -static gfx_layout studio2_charlayout = -{ - 32,1, - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { - 0, 0, 0, 0, - 1, 1, 1, 1, - 2, 2, 2, 2, - 3, 3, 3, 3, - 4, 4, 4, 4, - 5, 5, 5, 5, - 6, 6, 6, 6, - 7, 7, 7, 7 - }, - /* y offsets */ - { 0 }, - 1*8 -}; - -/* Graphics Decode Information */ - -static gfx_decode studio2_gfxdecodeinfo[] = { - { REGION_GFX1, 0x0000, &studio2_charlayout, 0, 2 }, - { -1 } /* end of array */ -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( studio2_frame_int ) -{ -} - -/* CDP1802 Configuration */ - -/* studio 2 - output q speaker (300 hz tone on/off) - f1 dma_activ - f3 on player 2 key pressed - f4 on player 1 key pressed - inp 1 video on - out 2 read key value selects keys to put at f3/f4 */ - -/* vip - out 1 turns video off - out 2 set keyboard multiplexer (bit 0..3 selects key) - out 4 switch ram at 0000 - inp 1 turn on video - q sound - f1 vertical blank line (low when displaying picture - f2 tape input (high when tone read) - f3 keyboard in - */ - -static int studio2_in_ef(void) -{ - int a=0; - if (studio2_get_vsync()) a|=1; - - if (readinputport(0)&(1<i = 1; - break; - case DEVINFO_PTR_LOAD: - info->load = device_load_studio2_cart; - break; - case DEVINFO_STR_FILE_EXTENSIONS: - strcpy(info->s = device_temp_str(), "st2"); - break; - default: - cartslot_device_getinfo( devclass, state, info ); - break; - } -} - -SYSTEM_CONFIG_START(studio2) - /* maybe quickloader */ - /* tape */ - /* cartridges at 0x400-0x7ff ? */ - CONFIG_DEVICE(studio2_cartslot_getinfo) -SYSTEM_CONFIG_END - -/* Driver Initialization */ - -static void setup_beep(int dummy) { - beep_set_state( 0, 0 ); - beep_set_frequency( 0, 300 ); -} - -static DRIVER_INIT( studio2 ) -{ - int i; - UINT8 *gfx = memory_region(REGION_GFX1); - for (i=0; i<256; i++) - gfx[i]=i; - timer_set(0.0, 0, setup_beep); -} - -static DRIVER_INIT( vip ) -{ - int i; - UINT8 *gfx = memory_region(REGION_GFX1); - for (i=0; i<256; i++) - gfx[i]=i; - memory_region(REGION_CPU1)[0x8022] = 0x3e; //bn3, default monitor - timer_set(0.0, 0, setup_beep); -} - -/* Game Drivers */ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -// rca cosmac elf development board (2 7segment leds, some switches/keys) -// rca cosmac elf2 16 key keyblock -CONS(1977, vip, 0, 0, vip, vip, vip, studio2, "RCA", "COSMAC VIP", GAME_NOT_WORKING ) -CONS(1976, studio2, 0, 0, studio2, studio2, studio2, studio2, "RCA", "Studio II", 0 ) -// hanimex mpt-02 -// colour studio 2 (m1200) with little color capability diff --git a/mess/systems/svi318.c b/mess/systems/svi318.c deleted file mode 100644 index 348be48b2..000000000 --- a/mess/systems/svi318.c +++ /dev/null @@ -1,479 +0,0 @@ -/* -** svi318.c : driver for Spectravideo SVI-318 and SVI-328 -** -** Sean Young, Tomas Karlsson -*/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "machine/8255ppi.h" -#include "vidhrdw/tms9928a.h" -#include "includes/svi318.h" -#include "machine/wd17xx.h" -#include "devices/basicdsk.h" -#include "devices/printer.h" -#include "devices/cartslot.h" -#include "devices/cassette.h" -#include "formats/svi_cas.h" -#include "sound/dac.h" -#include "sound/ay8910.h" - -static ADDRESS_MAP_START( svi318_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE( 0x0000, 0x7fff) AM_READWRITE( MRA8_BANK1, svi318_writemem0 ) - AM_RANGE( 0x8000, 0xbfff) AM_READ( MRA8_BANK2 ) - AM_RANGE( 0xc000, 0xffff) AM_READ( MRA8_BANK3 ) - AM_RANGE( 0x8000, 0xffff) AM_WRITE( svi318_writemem1 ) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( svi318_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(0xff) ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x10, 0x11) AM_WRITE( svi318_printer_w ) - AM_RANGE( 0x12, 0x12) AM_READ( svi318_printer_r ) - AM_RANGE( 0x30, 0x30) AM_READWRITE( wd179x_status_r, wd179x_command_w ) - AM_RANGE( 0x31, 0x31) AM_READWRITE( wd179x_track_r, wd179x_track_w ) - AM_RANGE( 0x32, 0x32) AM_READWRITE( wd179x_sector_r, wd179x_sector_w ) - AM_RANGE( 0x33, 0x33) AM_READWRITE( wd179x_data_r, wd179x_data_w ) - AM_RANGE( 0x34, 0x34) AM_READWRITE( svi318_fdc_irqdrq_r, svi318_fdc_drive_motor_w ) - AM_RANGE( 0x38, 0x38) AM_WRITE( svi318_fdc_density_side_w ) - AM_RANGE( 0x80, 0x80) AM_WRITE( TMS9928A_vram_w ) - AM_RANGE( 0x81, 0x81) AM_WRITE( TMS9928A_register_w ) - AM_RANGE( 0x84, 0x84) AM_READ( TMS9928A_vram_r ) - AM_RANGE( 0x85, 0x85) AM_READ( TMS9928A_register_r ) - AM_RANGE( 0x88, 0x88) AM_WRITE( AY8910_control_port_0_w ) - AM_RANGE( 0x8c, 0x8c) AM_WRITE( AY8910_write_port_0_w ) - AM_RANGE( 0x90, 0x90) AM_READ( AY8910_read_port_0_r ) - AM_RANGE( 0x96, 0x97) AM_WRITE( svi318_ppi_w ) - AM_RANGE( 0x98, 0x9a) AM_READ( svi318_ppi_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( svi318_io2, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(0xff) ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE( 0x10, 0x11) AM_WRITE( svi318_printer_w ) - AM_RANGE( 0x12, 0x12) AM_READ( svi318_printer_r ) - AM_RANGE( 0x30, 0x30) AM_READWRITE( wd179x_status_r, wd179x_command_w ) - AM_RANGE( 0x31, 0x31) AM_READWRITE( wd179x_track_r, wd179x_track_w ) - AM_RANGE( 0x32, 0x32) AM_READWRITE( wd179x_sector_r, wd179x_sector_w ) - AM_RANGE( 0x33, 0x33) AM_READWRITE( wd179x_data_r, wd179x_data_w ) - AM_RANGE( 0x34, 0x34) AM_READWRITE( svi318_fdc_irqdrq_r, svi318_fdc_drive_motor_w ) - AM_RANGE( 0x38, 0x38) AM_WRITE( svi318_fdc_density_side_w ) - AM_RANGE( 0x50, 0x51) AM_READWRITE( svi318_crtc_r, svi318_crtc_w ) - AM_RANGE( 0x58, 0x58) AM_WRITE( svi318_crtcbank_w ) - AM_RANGE( 0x80, 0x80) AM_WRITE( TMS9928A_vram_w ) - AM_RANGE( 0x81, 0x81) AM_WRITE( TMS9928A_register_w ) - AM_RANGE( 0x84, 0x84) AM_READ( TMS9928A_vram_r ) - AM_RANGE( 0x85, 0x85) AM_READ( TMS9928A_register_r ) - AM_RANGE( 0x88, 0x88) AM_WRITE( AY8910_control_port_0_w ) - AM_RANGE( 0x8c, 0x8c) AM_WRITE( AY8910_write_port_0_w ) - AM_RANGE( 0x90, 0x90) AM_READ( AY8910_read_port_0_r ) - AM_RANGE( 0x96, 0x97) AM_WRITE( svi318_ppi_w ) - AM_RANGE( 0x98, 0x9a) AM_READ( svi318_ppi_r ) -ADDRESS_MAP_END - -/* - Keyboard status table - - Bit#:| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | - | | | | | | | | | - Line: | | | | | | | | | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 0 | "7" | "6" | "5" | "4" | "3" | "2" | "1" | "0" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 1 | "/" | "." | "=" | "," | "'" | ":" | "9" | "8" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 2 | "G" | "F" | "E" | "D" | "C" | "B" | "A" | "-" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 3 | "O" | "N" | "M" | "L" | "K" | "J" | "I" | "H" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 4 | "W" | "V" | "U" | "T" | "S" | "R" | "Q" | "P" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 5 | UP | BS | "]" | "\" | "[" | "Z" | "Y" | "X" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 6 |LEFT |ENTER|STOP | ESC |RGRAP|LGRAP|CTRL |SHIFT| - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 7 |DOWN | INS | CLS | F5 | F4 | F3 | F2 | F1 | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 8 |RIGHT| |PRINT| SEL |CAPS | DEL | TAB |SPACE| - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 9* | "7" | "6" | "5" | "4" | "3" | "2" | "1" | "0" | - ---------+-----+-----+-----+-----+-----+-----+-----+-----| - 10* | "," | "." | "/" | "*" | "-" | "+" | "9" | "8" | - ---------------------------------------------------------- - * Numcerical keypad (SVI-328 only) -*/ - -INPUT_PORTS_START( svi318_keys ) - - PORT_START /* 0 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - - PORT_START /* 1 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": ;") PORT_CODE(KEYCODE_COLON) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - - PORT_START /* 2 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C") PORT_CODE(KEYCODE_C) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D") PORT_CODE(KEYCODE_D) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E") PORT_CODE(KEYCODE_E) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F") PORT_CODE(KEYCODE_F) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G") PORT_CODE(KEYCODE_G) - - PORT_START /* 3 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) - - PORT_START /* 4 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P") PORT_CODE(KEYCODE_P) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R") PORT_CODE(KEYCODE_R) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S") PORT_CODE(KEYCODE_S) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T") PORT_CODE(KEYCODE_T) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U") PORT_CODE(KEYCODE_U) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W") PORT_CODE(KEYCODE_W) - - PORT_START /* 5 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ ~") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) - - PORT_START /* 6 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT GRAPH") PORT_CODE(KEYCODE_LALT) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT GRAPH") PORT_CODE(KEYCODE_RALT) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) - - PORT_START /* 7 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLS") PORT_CODE(KEYCODE_HOME) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INS") PORT_CODE(KEYCODE_INSERT) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) - - PORT_START /* 8 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SELECT") PORT_CODE(KEYCODE_PAUSE) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PRINT") PORT_CODE(KEYCODE_PRTSCR) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) -INPUT_PORTS_END - -INPUT_PORTS_START( svi318 ) - - PORT_INCLUDE( svi318_keys ) - - PORT_START /* 9 */ - PORT_BIT (0xff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 10 */ - PORT_BIT (0xff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* 11 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - - PORT_START /* 12 */ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - - PORT_START /* 13 */ - PORT_DIPNAME( 0x20, 0x20, "Enforce 4 sprites/line") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x01, 0x00, "Bank 21 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Bank 22 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Bank 31 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Bank 32 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - - PORT_START /* 14 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT CTRL") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) - -INPUT_PORTS_END - - -INPUT_PORTS_START ( svi328 ) - - PORT_INCLUDE(svi318_keys) - - PORT_START /* 9 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 0") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 1") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 2") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 3") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 4") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 5") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 6") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 7") PORT_CODE(KEYCODE_7_PAD) - - PORT_START /* 10 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 8") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM 9") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM +") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM -") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM *") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM /") PORT_CODE(KEYCODE_SLASH_PAD) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM .") PORT_CODE(KEYCODE_LALT) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NUM ,") PORT_CODE(KEYCODE_RALT) - - PORT_START /* 11 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - - PORT_START /* 12 */ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON1) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - - PORT_START /* 13 */ - PORT_DIPNAME( 0x20, 0x20, "Enforce 4 sprites/line") - PORT_DIPSETTING( 0, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x02, 0x00, "Bank 22 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Bank 31 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Bank 32 RAM") - PORT_DIPSETTING( 0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - - PORT_START /* 14 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT SHIFT") PORT_CODE(KEYCODE_RSHIFT) - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT CTRL") PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED) - -INPUT_PORTS_END - -static struct AY8910interface ay8910_interface = -{ - svi318_psg_port_a_r, - NULL, - NULL, - svi318_psg_port_b_w -}; - -static MACHINE_DRIVER_START( svi318 ) - /* Basic machine hardware */ - MDRV_CPU_ADD_TAG( "main", Z80, 3579545 ) /* 3.579545 Mhz */ - MDRV_CPU_PROGRAM_MAP( svi318_mem, 0 ) - MDRV_CPU_IO_MAP( svi318_io, 0 ) - MDRV_CPU_VBLANK_INT( svi318_interrupt, 1 ) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( svi318 ) - MDRV_MACHINE_RESET( svi318 ) - - /* Video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* Sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 1789773) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( svi328b ) - MDRV_IMPORT_FROM( svi318 ) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP( svi318_io2, 0 ) - MDRV_MACHINE_RESET( svi328b ) - - /* video hardware */ - MDRV_SCREEN_SIZE(640, 400) - MDRV_SCREEN_VISIBLE_AREA(0,640-1, 0, 400-1) - MDRV_VIDEO_UPDATE( svi328b ) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START (svi318) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("svi100.rom", 0x0000, 0x8000, CRC(98d48655) SHA1(07758272df475e5e06187aa3574241df1b14035b)) -ROM_END - -ROM_START (svi328) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("svi110.rom", 0x0000, 0x8000, CRC(709904e9) SHA1(7d8daf52f78371ca2c9443e04827c8e1f98c8f2c)) -ROM_END - -ROM_START (svi328a) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("svi111.rom", 0x0000, 0x8000, CRC(bc433df6) SHA1(10349ce675f6d6d47f0976e39cb7188eba858d89)) -ROM_END - -ROM_START (svi328b) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("svi111.rom", 0x0000, 0x8000, CRC(bc433df6) SHA1(10349ce675f6d6d47f0976e39cb7188eba858d89)) - ROM_REGION( 0x1000, REGION_GFX1, 0) - ROM_LOAD ("svi806.rom", 0x0000, 0x1000, CRC(850bc232) SHA1(ed45cb0e9bd18a9d7bd74f87e620f016a7ae840f)) -ROM_END - -ROM_START (svi328c) - ROM_REGION (0x10000, REGION_CPU1,0) - ROM_LOAD ("svi111.rom", 0x0000, 0x8000, CRC(bc433df6) SHA1(10349ce675f6d6d47f0976e39cb7188eba858d89)) - ROM_REGION( 0x1000, REGION_GFX1, 0) - ROM_LOAD ("svi806se.rom", 0x0000, 0x1000, CRC(daea8956) SHA1(3f16d5513ad35692488ae7d864f660e76c6e8ed3)) -ROM_END - -static void svi318_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void svi318_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) svi_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void svi318_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_svi318_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_svi318_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void svi318_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_svi318_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(svi318) - CONFIG_DEVICE(svi318_printer_getinfo) - CONFIG_DEVICE(svi318_cassette_getinfo) - CONFIG_DEVICE(svi318_cartslot_getinfo) - CONFIG_DEVICE(svi318_floppy_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP(1983, svi318, 0, 0, svi318, svi318, svi318, svi318, "Spectravideo", "SVI-318 (SV BASIC v1.0)" , 0) -COMP(1983, svi328, svi318, 0, svi318, svi328, svi318, svi318, "Spectravideo", "SVI-328 (SV BASIC v1.1)" , 0) -COMP(1983, svi328a, svi318, 0, svi318, svi328, svi318, svi318, "Spectravideo", "SVI-328 (SV BASIC v1.11)" , 0) -COMP(1983, svi328b, svi318, 0, svi328b, svi328, svi318, svi318, "Spectravideo", "SVI-328 + 80 column card", GAME_NOT_WORKING ) -COMP(1983, svi328c, svi318, 0, svi328b, svi328, svi318, svi318, "Spectravideo", "SVI-328 + 80 column card (Swedish)", GAME_NOT_WORKING ) diff --git a/mess/systems/svision.c b/mess/systems/svision.c deleted file mode 100644 index 2ff8fb1bd..000000000 --- a/mess/systems/svision.c +++ /dev/null @@ -1,389 +0,0 @@ -/****************************************************************************** - watara supervision handheld - - PeT mess@utanet.at in december 2000 -******************************************************************************/ - -#include -#include "driver.h" -#include "image.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6502.h" - -#include "includes/svision.h" -#include "devices/cartslot.h" - -#include "svision.lh" -/* -supervision -watara - -cartridge code is m65c02 or something more (65ce02?) - - - -4 mhz quartz - -right dil28 ram? 8kb? -left dil28 ??? - -integrated speaker -stereo phone jack -40 pin connector for cartridges -com port (9 pol dsub) pc at rs232? -looked at -5 4 3 2 1 - 9 8 7 6 -2 black -->vlsi -3 brown -->vlsi -4 yellow -->vlsi -5 red vlsi -7 violett -9 white - -port for 6V power supply - -on/off switch -volume control analog -contrast control analog - - - - -cartridge connector (look at the cartridge) - /oe or /ce 1 40 +5v (picture side) - a0 2 39 nc - a1 3 38 nc - a2 4 37 nc - a3 5 36 nc - a4 6 35 nc in crystball - a5 7 34 d0 - a6 8 33 d1 - a7 9 32 d2 - a8 10 31 d3 - a9 11 30 d4 - a10 12 29 d5 - a11 13 28 d6 - a12 14 27 d7 - a13 15 26 nc - a14 16 25 nc - a15 17 24 nc - a16?18 23 nc - a17?19 22 gnd connected with 21 in crystalball - a18?20 21 (shorter pin in crystalball) - -adapter for dumping as 27c4001 - -cryst ball: -a16,a17,a18 not connected - -delta hero: -a16,a17,a18 not connected - - -ordering of pins in the cartridge! -21,22 connected -idea: it is a 27512, and pin are in this ordering - -+5V 40 -a15 17 -a12 14 -a7 9 -a6 8 -a5 7 -a4 6 -a3 5 -a2 4 -a1 3 -a0 2 -d0 34 -d1 33 -d2 32 -gnd 21! -d3 31 -d4 30 -d5 29 -d6 28 -d7 27 -ce 21 (gnd) -a10 12 -oe 1 -a11 13 -a9 11 -a8 10 -a13 15 -a14 16 -*/ - -static UINT8 *svision_reg; -/* - 0x2000 0xa0 something to do with video dma? - 0x2001 0xa0 something to do with video dma? - 0x2010,11,12 audio channel - offset 0,1 frequency; offset 1 always zero? - offset 2: - 0, 0x60-0x6f - bit 0..3: volume?? - bit 5: on left?? - bit 6: on right?? - 0x2014,15,16 audio channel - 0x2020 buttons and pad - 0x2022 0x0f ? - 0x2023 timer? - next interrupt at 256*value? - writing sets timer and clear interrupt request? - fast irq in crystball needed for timing - slower irq in deltahero with music? - 0x2026 bank switching - 0x2027 - bit 0: 0x2023 timer interrupt occured - - 0x2041-0x2053 - 0x3041- - */ - -struct -{ - mame_timer *timer1; - int timer1_shot; -} svision; - -static void svision_timer(int param) -{ - svision.timer1_shot = TRUE; - cpunum_set_input_line(0, M65C02_IRQ_LINE, ASSERT_LINE); -} - -static void svision_update_banks(void) -{ - UINT8 *cart_rom = memory_region(REGION_USER1); - memory_set_bankptr(1, cart_rom + ((svision_reg[0x26] & 0x60) << 9)); - memory_set_bankptr(2, cart_rom + 0xC000); -} - -static READ8_HANDLER(svision_r) -{ - int data = svision_reg[offset]; - switch (offset) { - case 0x20: - data = readinputport(0); - break; - - case 0x27: - if (svision.timer1_shot) - data |= 1; //crystball irq routine - break; - - case 0x24: - case 0x25://deltahero irq routine read - break; - - default: - logerror("%.6f svision read %04x %02x\n",timer_get_time(),offset,data); - break; - } - - return data; -} - -static WRITE8_HANDLER(svision_w) -{ - svision_reg[offset] = data; - switch (offset) { - case 0x26: /* bits 5,6 memory management for a000? */ - svision_update_banks(); - break; - - case 0x23: /* delta hero irq routine write */ - cpunum_set_input_line(0, M65C02_IRQ_LINE, CLEAR_LINE); - svision.timer1_shot=FALSE; - timer_reset(svision.timer1, TIME_IN_CYCLES(data*256, 0)); - break; - - case 0x10: - case 0x11: - case 0x12: - svision_soundport_w(svision_channel+0, offset&3, data); - break; - - case 0x14: - case 0x15: - case 0x16: - svision_soundport_w(svision_channel+1, offset&3, data); - break; - - default: - logerror("%.6f svision write %04x %02x\n",timer_get_time(),offset,data); - break; - } -} - -static ADDRESS_MAP_START( svision_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x1fff) AM_RAM - AM_RANGE( 0x2000, 0x3fff) AM_READWRITE(svision_r, svision_w) AM_BASE(&svision_reg) - AM_RANGE( 0x4000, 0x5fff) AM_RAM AM_BASE(&videoram) - AM_RANGE( 0x6000, 0x7fff) AM_ROM - AM_RANGE( 0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE( 0xc000, 0xffff) AM_ROMBANK(2) -ADDRESS_MAP_END - -INPUT_PORTS_START( svision ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("B") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("A") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SELECT) PORT_NAME("Select") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START) PORT_NAME("Start/Pause") -INPUT_PORTS_END - -/* most games contain their graphics in roms, and have hardware to - draw complete rectangular objects */ - -/* palette in red, green, blue triples */ -static unsigned char svision_palette[] = -{ - /* these are necessary to appease the MAME core */ - 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, -#if 0 - /* greens grabbed from a scan of a handheld - * in its best adjustment for contrast - */ - 53, 73, 42, - 42, 64, 47, - 22, 42, 51, - 22, 25, 32 -#else - /* grabbed from chris covell's black white pics */ - 0xe0, 0xe0, 0xe0, - 0xb9, 0xb9, 0xb9, - 0x54, 0x54, 0x54, - 0x12, 0x12, 0x12 -#endif -}; - -static PALETTE_INIT( svision ) -{ - palette_set_colors(machine, 0, svision_palette, sizeof(svision_palette) / 3); -} - -static VIDEO_UPDATE( svision ) -{ - int x, y; - UINT8 *vram = videoram + (svision_reg[2] / 4); - UINT8 *vram_line; - UINT16 *line; - UINT8 b; - - for (y = 0; y < 160; y++) - { - line = BITMAP_ADDR16(bitmap, y, 0); - vram_line = &vram[y * 0x30]; - - for (x = 0; x < 160; x += 4) - { - b = *(vram_line++); - line[3] = ((b >> 6) & 0x03) + 2; - line[2] = ((b >> 4) & 0x03) + 2; - line[1] = ((b >> 2) & 0x03) + 2; - line[0] = ((b >> 0) & 0x03) + 2; - line += 4; - } - } - return 0; -} - -static INTERRUPT_GEN( svision_frame_int ) -{ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static DRIVER_INIT( svision ) -{ - svision.timer1 = timer_alloc(svision_timer); -} - -static MACHINE_RESET( svision ) -{ - svision.timer1_shot = FALSE; - svision_update_banks(); -} - -struct CustomSound_interface svision_sound_interface = -{ - svision_custom_start -}; - - -static MACHINE_DRIVER_START( svision ) - /* basic machine hardware */ - MDRV_CPU_ADD(M65C02, 4000000) /* ? stz used! speed? */ - MDRV_CPU_PROGRAM_MAP(svision_mem, 0) - MDRV_CPU_VBLANK_INT(svision_frame_int, 1) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( svision ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) /* lcd */ - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - /*MDRV_ASPECT_RATIO(160, 160)*/ - MDRV_SCREEN_SIZE(160, 160) - MDRV_SCREEN_VISIBLE_AREA(0, 160-1, 0, 160-1) - MDRV_PALETTE_LENGTH(sizeof(svision_palette) / (sizeof(svision_palette[0]) * 3)) - MDRV_PALETTE_INIT( svision ) - - MDRV_VIDEO_UPDATE( svision ) - MDRV_DEFAULT_LAYOUT(layout_svision) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(svision_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(0, "right", 0.50) -MACHINE_DRIVER_END - -ROM_START(svision) - ROM_REGION( 0x8000, REGION_CPU1, 0) - - ROM_REGION(0x10000, REGION_USER1, 0) - ROM_CART_LOAD(0, "bin\0ws\0sv\0", 0x0000, 0x10000, ROM_MIRROR) -ROM_END - -/* deltahero - c000 - dd6a clear 0x2000 at ($57/58) (0x4000) - deb6 clear hardware regs - e35d clear hardware reg - e361 clear hardware reg - e3a4 - c200 - - nmi c053 ? - irq c109 - e3f7 - def4 - routines: - dd6a clear 0x2000 at ($57/58) (0x4000) - */ - -SYSTEM_CONFIG_START(svision) - CONFIG_DEVICE(cartslot_device_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS(1992, svision, 0, 0, svision, svision, svision, svision, "Watara", "Supervision", GAME_IMPERFECT_SOUND) -// marketed under a ton of firms and names - diff --git a/mess/systems/telmac.c b/mess/systems/telmac.c deleted file mode 100644 index f1e8feed3..000000000 --- a/mess/systems/telmac.c +++ /dev/null @@ -1,1047 +0,0 @@ -/* - - telmac.c - - - MESS Driver by Curt Coder - - - Telmac 1800 - ----------- - (c) 10/1977 Telercas Oy, Finland - - CPU: CDP1802 1.76 MHz - RAM: 2 KB (4 KB) - ROM: 512 B - - Video: CDP1861 1.76 MHz (OSM-200) - Resolution: 32x64 - - Designer: Osmo Kainulainen - Keyboard: OS-70 A (QWERTY, hexadecimal keypad) - - - Oscom 1000B - ----------- - (c) 197? Oscom Oy, Finland - - CPU: CDP1802A ? MHz - - Enhanced Telmac 1800 with built-in CRT board. - - - Telmac 2000 - ----------- - (c) 1980 Telercas Oy, Finland - - CPU: CDP1802A 1.75 MHz - RAM: 16 KB - ROM: 512 B / 2 KB (TOOL-2000) - - Video: CDP1864 1.75 MHz - Color RAM: 512 B - - Colors: 8 fg, 4 bg - Resolution: 64x192 - Sound: frequency control, volume on/off - Keyboard: ASCII, KB-16, KB-64 - - - Telmac 2000E - ------------ - (c) 1980 Telercas Oy, Finland - - CPU: CDP1802A 1.75 MHz - RAM: 8 KB - ROM: 8 KB - - Video: CDP1864 1.75 MHz - Color RAM: 1 KB - - Colors: 8 fg, 4 bg - Resolution: 64x192 - Sound: frequency control, volume on/off - Keyboard: ASCII (RCA VP-601/VP-611), KB-16/KB-64 - - SBASIC: 24.0 - - - Oscom Nano - ---------- - (c) 1981 Oscom Oy, Finland - - CPU: CDP1802A ? MHz - ROM: 512 B / 1 KB - - Small form factor version of Telmac 1800. Combined text and graphics output. - - - Telmac TMC-121/111/112 - ---------------------- - (c) 198? Telercas Oy, Finland - - CPU: CDP1802A ? MHz - - Built from Telmac 2000 series cards. Huge metal box. - - - Telmac TMC-600 (Series I/Series II) - ----------------------------------- - (c) 1982 Telercas Oy, Finland - - CPU: CDP1802A 3.58 MHz - - RAM: 8 KB, expansion to 28 KB - ROM: 20 KB, on-board expansion 8 KB - - Video RAM: 1 KB - Color RAM: 512 B - - SBASIC: 24.2/24.3 - - Video: CDP1870 5.626 MHz supports only tilemap gfx - CDP1869 5.626 MHz sound generator, address decoder - Resolution: 240 x 216 - Colors: 8 fg, 8 bg, blink attribute - Sound: 8 octaves, white noise generator, volume control - Charset: 96 ASCII chars, 128 graphic symbols, character size 6x9 / 12x18 (double size mode) - - Keyboard: - DEL, 1 !, 2 ", 3 #, 4 $, 5 %, 6 &, 7 /, 8 (, 9 ), 0, = -, ~ ^, @, BREAK - CTRL, Q, W, E, R, T, Y, U, I, O, P, Å, + ;, RETURN - SHIFT LOCK, A, S, D, F, G, H, J, K, L, Ö, Ä, * :, LINE FEED - SHIFT, Z, X, C, V, B, N, M, < , > ., ? /, SHIFT - SPACE - - Numeric keypad: - 7, 8, 9, UP, ESC - 4, 5, 6, RIGHT, [] - 1, 2, 3, DOWN, CTRL - ,, 0, ., LEFT, ALT MODE - - Devices: Cassette using a standard 5-pin DIN connector. (Any tape recorder will do) - Centronics Printer/RF Modulator - RTC using Telmac TMC-700 expansion (also includes new SBASIC commands) - -*/ - -/* - - 2003-05-20 Project started - 2003-05-21 Telmac TMC-600 (Sarja II) acquired, unit broken - 2003-06-22 Preliminary driver, missing ROMs among other things - 2003-07-28 Added some TMC-1800 info - 2003-07-31 Added some computer info - 2004-01-04 Reformatted inputs and added memory map for tmc600 - 2004-01-06 Fixed some code - 2004-01-19 Dumped ROMs, hooked up display and keyboard - 2004-01-27 Scanned in Telmac 2000 manual - 2004-01-28 Scanned in Telmac 2000E manual - 2004-01-29 Added Telmac 2000 code - 2004-02-03 Modified cdp1802.c to use regular ports instead of out_n/in_n callback functions - 2004-02-04 Figured out the keyboard except for one key, the port update fixed reading, still a bit too quick to repeat - 2004-02-19 Examined the connection between 1802 and 1869 on the pcb with a multimeter, added vismac_w - 2004-02-22 Separated video code to vidhrdw/cdp186x.c - 2004-03-21 Cleaned up - 2004-04-11 More cleanup - 2004-04-29 Fixed CDP1802 core -> gfx anomalies now gone, fixed scrolling, bkg color & dblsize - 2004-08-12 Added colorram and cursor blink approximation, cdp1869 tone output - 2004-08-13 Added printer output, quickload, more devices - -*/ - -/* - - TODO: - - - tmc1800: monitor rom - - tmc2000t: tool2000 rom - - tmc2000e: sbasic roms - - tmc600: all roms - - tmc600a: 151182+sbdos, sb33.4 fixrom - - tmc600as: all roms, what is this white-case machine anyway? - - tmc600: keyboard repeat delay is WAY too short - - tmc600: natural keyboard needs fixing - - tmc600: does SCREEN @4700 show only a partial picture? verify from real tmc600 - - tmc600: real cdp1869 video emulation instead of a simple tilemap hack - - tmc600: cdp1869 white noise emulation - - tmc600: real-time clock - - schematics for all machines - -*/ - -#include "driver.h" -#include "inputx.h" -#include "cpu/cdp1802/cdp1802.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/cdp186x.h" -#include "devices/printer.h" -#include "devices/basicdsk.h" -#include "devices/cassette.h" -#include "devices/snapquik.h" -#include "sound/beep.h" - -static int keylatch, vismac_latch; - -/* Read/Write Handlers */ - -static READ8_HANDLER( vismac_r ) -{ - return 0; -} - -static WRITE8_HANDLER( vismac_w ) -{ -} - -static WRITE8_HANDLER( vismac_register_w ) -{ - vismac_latch = data; -} - -static WRITE8_HANDLER( vismac_data_w ) -{ - UINT16 word = activecpu_get_reg(activecpu_get_reg(CDP1802_X) + CDP1802_R0) - 1; // TODO: why -1? - - switch (vismac_latch) - { - case 0x20: - // set character color - case 0x30: - // write cdp1869 command on the data bus - cdp1869_instruction_w(0, vismac_latch / 0x10, data); - break; - default: - // write cdp1870 command using the address bus bits as data - cdp1869_instruction_w(0, vismac_latch / 0x10, word); - break; - } -} - -static READ8_HANDLER( floppy_r ) -{ - return 0; -} - -static WRITE8_HANDLER( floppy_w ) -{ -} - -static WRITE8_HANDLER( printer_w ) -{ - printer_output(image_from_devtype_and_index(IO_PRINTER, 0), data); -} - -static READ8_HANDLER( ascii_keyboard_r ) -{ - return 0; -} - -static READ8_HANDLER( io_r ) -{ - return 0; -} - -static WRITE8_HANDLER( io_w ) -{ -} - -static WRITE8_HANDLER( io_select_w ) -{ -} - -static WRITE8_HANDLER( tmc2000_bankswitch_w ) -{ - if (data & 0x01) - { - // enable Color RAM - memory_install_read8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x81ff, 0, 0, MRA8_RAM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x81ff, 0, 0, MWA8_RAM ); - memory_set_bankptr(1, &colorram); - } - else - { - // enable ROM - memory_install_read8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x81ff, 0, 0, MRA8_ROM ); - memory_install_write8_handler( 0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x81ff, 0, 0, MWA8_ROM ); - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x8000); - } - - cdp1864_tone_divisor_latch_w(0, data); -} - -static WRITE8_HANDLER( keyboard_latch_w ) -{ - keylatch = data; -} - -/* Memory Maps */ - -// Telmac 1800 - -static ADDRESS_MAP_START( tmc1800_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM // Work RAM - AM_RANGE(0x0800, 0x0fff) AM_RAM // Expanded RAM - AM_RANGE(0x8000, 0x81ff) AM_ROM // Monitor ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tmc1800_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x02, 0x02) AM_WRITE(keyboard_latch_w) -ADDRESS_MAP_END - -// Telmac 2000 - -static ADDRESS_MAP_START( tmc2000_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_RAM // Work RAM - AM_RANGE(0x4000, 0x7fff) AM_RAM // Expanded RAM - AM_RANGE(0x8000, 0x81ff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) // Monitor ROM / Color RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tmc2000_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READWRITE(cdp1864_audio_enable_r, cdp1864_step_background_color_w) - AM_RANGE(0x02, 0x02) AM_WRITE(keyboard_latch_w) - AM_RANGE(0x04, 0x04) AM_READWRITE(cdp1864_audio_disable_r, tmc2000_bankswitch_w) -ADDRESS_MAP_END - -// Telmac 2000 (TOOL-2000) - -static ADDRESS_MAP_START( tmc2000t_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_RAM // Work RAM - AM_RANGE(0x4000, 0x7fff) AM_RAM // Expanded RAM - AM_RANGE(0x8000, 0x87ff) AM_ROM // TOOL-2000 ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tmc2000t_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READWRITE(cdp1864_audio_enable_r, cdp1864_step_background_color_w) - AM_RANGE(0x02, 0x02) AM_WRITE(keyboard_latch_w) - AM_RANGE(0x04, 0x04) AM_READWRITE(cdp1864_audio_disable_r, cdp1864_tone_divisor_latch_w) -ADDRESS_MAP_END - -// Telmac 2000E - -static ADDRESS_MAP_START( tmc2000e_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAM // Work RAM - AM_RANGE(0xc000, 0xdfff) AM_ROM // Monitor ROM - AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE(&colorram) // Color RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tmc2000e_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_WRITE(cdp1864_tone_divisor_latch_w) - AM_RANGE(0x02, 0x02) AM_WRITE(cdp1864_step_background_color_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(ascii_keyboard_r, keyboard_latch_w) - AM_RANGE(0x04, 0x04) AM_READWRITE(io_r, io_w) - AM_RANGE(0x05, 0x05) AM_READWRITE(vismac_r, vismac_w) - AM_RANGE(0x06, 0x06) AM_READWRITE(floppy_r, floppy_w) - AM_RANGE(0x07, 0x07) AM_READWRITE(input_port_8_r, io_select_w) -ADDRESS_MAP_END - -// Telmac TMC-600 - -static ADDRESS_MAP_START( tmc600_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM // SBASIC ROM - AM_RANGE(0x4000, 0x4fff) AM_ROM // SBASIC Expansion ROM 1 (SB040282) - AM_RANGE(0x5000, 0x5fff) AM_ROM // SBASIC Expansion ROM 2 (SBDOS) - AM_RANGE(0x6000, 0x63ff) AM_RAM // SBASIC Work RAM - AM_RANGE(0x6400, 0x7fff) AM_RAM // Work RAM - AM_RANGE(0x8000, 0xf7ff) AM_RAM // Expanded RAM - AM_RANGE(0xf800, 0xfbff) AM_RAM AM_WRITE(cdp1869_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xfc00, 0xfdff) AM_RAM // Color RAM ??? - AM_RANGE(0xfe00, 0xffff) AM_RAM // ??? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tmc600_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x03, 0x03) AM_WRITE(keyboard_latch_w) - AM_RANGE(0x04, 0x04) AM_WRITE(printer_w) - AM_RANGE(0x05, 0x05) AM_WRITE(vismac_data_w) - AM_RANGE(0x06, 0x06) AM_WRITE(floppy_w) - AM_RANGE(0x07, 0x07) AM_WRITE(vismac_register_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( tmc1800 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('1') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('2') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR('3') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR('4') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR('5') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('6') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR('7') - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('8') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') -INPUT_PORTS_END - -INPUT_PORTS_START( tmc2000e ) - PORT_START_TAG("DSW0") // System Configuration DIPs - PORT_DIPNAME( 0x80, 0x00, "Keyboard Type" ) - PORT_DIPSETTING( 0x00, "ASCII" ) - PORT_DIPSETTING( 0x80, "Matrix" ) - PORT_DIPNAME( 0x40, 0x00, "Operating System" ) - PORT_DIPSETTING( 0x00, "TOOL" ) - PORT_DIPSETTING( 0x40, "Floppy" ) - PORT_DIPNAME( 0x30, 0x00, "Display Interface" ) - PORT_DIPSETTING( 0x00, "PAL" ) - PORT_DIPSETTING( 0x10, "CDG-80" ) - PORT_DIPSETTING( 0x20, "VISMAC" ) - PORT_DIPSETTING( 0x30, "UART" ) - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - // ram placement 0000-0fff ... f000-ffff - - PORT_START - PORT_CONFNAME( 0xf000, 0xc000, "ROM Address" ) - PORT_CONFSETTING( 0x0000, "0000-1FFF" ) - PORT_CONFSETTING( 0x2000, "2000-3FFF" ) - PORT_CONFSETTING( 0x4000, "4000-5FFF" ) - PORT_CONFSETTING( 0x6000, "6000-7FFF" ) - PORT_CONFSETTING( 0x8000, "8000-9FFF" ) - PORT_CONFSETTING( 0xa000, "A000-BFFF" ) - PORT_CONFSETTING( 0xc000, "C000-DFFF" ) - PORT_CONFSETTING( 0xe000, "E000-FFFF" ) - - PORT_START - PORT_CONFNAME( 0xf000, 0xc000, "Startup Address" ) - PORT_CONFSETTING( 0x0000, "0000" ) - PORT_CONFSETTING( 0x1000, "1000" ) - PORT_CONFSETTING( 0x2000, "2000" ) - PORT_CONFSETTING( 0x3000, "3000" ) - PORT_CONFSETTING( 0x4000, "4000" ) - PORT_CONFSETTING( 0x5000, "5000" ) - PORT_CONFSETTING( 0x6000, "6000" ) - PORT_CONFSETTING( 0x7000, "7000" ) - PORT_CONFSETTING( 0x8000, "8000" ) - PORT_CONFSETTING( 0x9000, "9000" ) - PORT_CONFSETTING( 0xa000, "A000" ) - PORT_CONFSETTING( 0xb000, "B000" ) - PORT_CONFSETTING( 0xc000, "C000" ) - PORT_CONFSETTING( 0xd000, "D000" ) - PORT_CONFSETTING( 0xe000, "E000" ) - PORT_CONFSETTING( 0xf000, "F000" ) -INPUT_PORTS_END - -INPUT_PORTS_START( tmc600 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('6') PORT_CHAR('&') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR('7') PORT_CHAR('/') - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(':') PORT_CHAR('*') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(';') PORT_CHAR('+') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('@') PORT_CHAR('\\') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O') - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('Å') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('Ä') - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR('Ö') - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BREAK") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("(space)") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E2") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL1") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL2") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL)) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E1") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - - PORT_START_TAG("IN7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("(unknown)") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LINE FEED") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static gfx_layout charlayout_normal_size = -{ - CDP1869_CHAR_WIDTH, CDP1869_CHAR_HEIGHT_PAL, - 256, - 1, - { 0 }, - { 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 2048*8 }, - 8*8 -}; - -static gfx_layout charlayout_double_size = -{ - CDP1869_CHAR_WIDTH*2, CDP1869_CHAR_HEIGHT_PAL*2, - 256, - 1, - { 0 }, - { 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }, - { 0*8, 0*8, 1*8, 1*8, 2*8, 2*8, 3*8, 3*8, 4*8, 4*8, 5*8, 5*8, 6*8, 6*8, 7*8, 7*8, 2048*8, 2048*8 }, - 8*8 -}; - -/* Graphics Decode Information */ - -static gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout_normal_size, 0, 128 }, - { REGION_GFX1, 0, &charlayout_double_size, 0, 128 }, - { -1 } -}; - -/* CDP1802 Interfaces */ - -// Telmac 1800 - -static void tmc1800_video_dma(int cycles) -{ -} - -static void tmc1800_out_q(int level) -{ -} - -static int tmc1800_in_ef(void) -{ - int flags = 0; - - /* - EF1 ? - EF2 ? - EF3 keyboard - EF4 ? - */ - - // keyboard - if (~readinputport(keylatch / 8) & (1 << (keylatch % 8))) flags |= EF3; - - return flags; -} - -static CDP1802_CONFIG tmc1800_config = -{ - tmc1800_video_dma, - tmc1800_out_q, - tmc1800_in_ef -}; - -// Telmac 2000 - -static void tmc2000_video_dma(int cycles) -{ -} - -static void tmc2000_out_q(int level) -{ - // CDP1864 sound generator on/off - cdp1864_audio_output_w(level); - - // set Q led status - set_led_status(1, level); -} - -static int tmc2000_in_ef(void) -{ - int flags = 0; - - /* - EF1 ? - EF2 ? - EF3 keyboard - EF4 ? - */ - - // keyboard - if (~readinputport(keylatch / 8) & (1 << (keylatch % 8))) flags |= EF3; - - return flags; -} - -static CDP1802_CONFIG tmc2000_config = -{ - tmc2000_video_dma, - tmc2000_out_q, - tmc2000_in_ef -}; - -// Telmac 2000E - -static void tmc2000e_video_dma(int cycles) -{ -} - -static void tmc2000e_out_q(int level) -{ - // CDP1864 sound generator on/off - cdp1864_audio_output_w(level); - - // set Q led status - // leds: Wait, Q, Power - set_led_status(1, level); - - // tape control - // floppy control (FDC-6) -} - -static int tmc2000e_in_ef(void) -{ - int flags = 0; - - /* - EF1 CDP1864 - EF2 tape, floppy - EF3 keyboard - EF4 I/O port - */ - - // keyboard - if (~readinputport(keylatch / 8) & (1 << (keylatch % 8))) flags |= EF3; - - return flags; -} - -static CDP1802_CONFIG tmc2000e_config = -{ - tmc2000e_video_dma, - tmc2000e_out_q, - tmc2000e_in_ef -}; - -// Telmac TMC-600 - -static void tmc600_out_q(int level) -{ - //logerror("q level: %u\n", level); -} - -static int tmc600_in_ef(void) -{ - int flags = 0; - - /* - EF1 ? - EF2 ? - EF3 keyboard - EF4 ? - */ - - // keyboard - if (~readinputport(keylatch / 8) & (1 << (keylatch % 8))) flags |= EF3; - - return flags; -} - -static CDP1802_CONFIG tmc600_config = -{ - NULL, - tmc600_out_q, - tmc600_in_ef -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( telmac_frame_int ) -{ -} - -/* Machine Initialization */ - -static MACHINE_RESET( tmc2000 ) -{ - // set program counter to 0x8000 -} - -static MACHINE_RESET( tmc2000e ) -{ - // set program counter to selected value -} - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( tmc1800 ) - // basic system hardware - MDRV_CPU_ADD_TAG("main", CDP1802, CDP1864_CLK_FREQ) // 1.75 MHz - MDRV_CPU_PROGRAM_MAP(tmc1800_map, 0) - MDRV_CPU_IO_MAP(tmc1800_io_map, 0) - MDRV_CPU_VBLANK_INT(telmac_frame_int, 1) - MDRV_CPU_CONFIG(tmc1800_config) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tmc2000 ) - // basic system hardware - MDRV_CPU_ADD_TAG("main", CDP1802, CDP1864_CLK_FREQ) // 1.75 MHz - MDRV_CPU_PROGRAM_MAP(tmc2000_map, 0) - MDRV_CPU_IO_MAP(tmc2000_io_map, 0) - MDRV_CPU_VBLANK_INT(telmac_frame_int, 1) - MDRV_CPU_CONFIG(tmc2000_config) - - MDRV_MACHINE_RESET(tmc2000) - - MDRV_SCREEN_REFRESH_RATE(CDP1864_FPS) // 50.08 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(CDP1864_SCREEN_WIDTH, CDP1864_SCANLINES) - MDRV_SCREEN_VISIBLE_AREA(1*8, 13*8-1, 20, CDP1864_SCANLINES-4) - MDRV_PALETTE_LENGTH(8) - - MDRV_PALETTE_INIT(tmc2000) - MDRV_VIDEO_START(generic_bitmapped) - MDRV_VIDEO_UPDATE(cdp1864) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(BEEP, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tmc2000t ) - MDRV_IMPORT_FROM(tmc2000) - - // basic system hardware - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tmc2000t_map, 0) - MDRV_CPU_IO_MAP(tmc2000t_io_map, 0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tmc2000e ) - MDRV_IMPORT_FROM(tmc2000) - - MDRV_MACHINE_RESET(tmc2000e) - - // basic system hardware - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tmc2000e_map, 0) - MDRV_CPU_IO_MAP(tmc2000e_io_map, 0) - MDRV_CPU_CONFIG(tmc2000e_config) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tmc600 ) - // basic system hardware - MDRV_CPU_ADD(CDP1802, 3579545) // 3.58 MHz TODO: where is this derived from? - MDRV_CPU_PROGRAM_MAP(tmc600_map, 0) - MDRV_CPU_IO_MAP(tmc600_io_map, 0) - MDRV_CPU_VBLANK_INT(telmac_frame_int, 1) - MDRV_CPU_CONFIG(tmc600_config) - - MDRV_SCREEN_REFRESH_RATE(CDP1869_FPS_PAL) // 50.09 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(CDP1869_SCREEN_WIDTH, CDP1869_SCANLINES_PAL) - MDRV_SCREEN_VISIBLE_AREA(0, CDP1869_SCREEN_WIDTH-4*CDP1869_CHAR_WIDTH, 0, CDP1869_SCANLINES_PAL-4) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(2*8) - - MDRV_PALETTE_INIT(cdp1869) - MDRV_VIDEO_START(cdp1869) - MDRV_VIDEO_UPDATE(cdp1869) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(BEEP, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -// MDRV_SOUND_ADD(CUSTOM, cdp1869_sound) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( tmc1800 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "monitor", 0x8000, 0x0200, NO_DUMP ) -ROM_END - -ROM_START( tmc2000 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "200.m5", 0x0000, 0x0200, CRC(7f8e7ce4) SHA1(3302628f9a57ce456347f37c9a970be6390465e7) ) - ROM_RELOAD( 0x8000, 0x0200 ) // TODO: how to start program counter at 0x8000? -ROM_END - -ROM_START( tmc2000t ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "tool2000", 0x8000, 0x0800, NO_DUMP ) -ROM_END - -ROM_START( tmc2000e ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1", 0xc000, 0x0800, NO_DUMP ) - ROM_LOAD( "2", 0xc800, 0x0800, NO_DUMP ) - ROM_LOAD( "3", 0xd000, 0x0800, NO_DUMP ) - ROM_LOAD( "4", 0xd800, 0x0800, NO_DUMP ) -ROM_END - -ROM_START( tmc600 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1", 0x0000, 0x1000, NO_DUMP ) - ROM_LOAD( "2", 0x1000, 0x1000, NO_DUMP ) - ROM_LOAD( "3", 0x2000, 0x1000, NO_DUMP ) - ROM_LOAD( "4", 0x3000, 0x1000, NO_DUMP ) - ROM_LOAD( "190482_2", 0x4000, 0x1000, NO_DUMP ) - ROM_LOAD( "sbdos", 0x5000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "chargen", 0x0000, 0x1000, NO_DUMP ) -ROM_END - -ROM_START( tmc600a ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1", 0x0000, 0x1000, CRC(95d1292a) SHA1(1fa52d59d3005f8ac74a32c2164fdb22947c2748) ) - ROM_LOAD( "2", 0x1000, 0x1000, CRC(2c8f3d17) SHA1(f14e8adbcddeaeaa29b1e7f3dfa741f4e230f599) ) - ROM_LOAD( "3", 0x2000, 0x1000, CRC(dd58a128) SHA1(be9bdb0fc5e0cc3dcc7f2fb7ccab69bf5b043803) ) - ROM_LOAD( "4", 0x3000, 0x1000, CRC(b7d241fa) SHA1(6f3eadf86c4e3aaf93d123e302a18dc4d9db964b) ) - ROM_LOAD( "151182", 0x4000, 0x1000, CRC(c1a8d9d8) SHA1(4552e1f06d0e338ba7b0f1c3a20b8a51c27dafde) ) - ROM_LOAD( "sbdos", 0x5000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "chargen", 0x0000, 0x1000, CRC(93f92cbf) SHA1(371156fb38fa5319c6fde537ccf14eed94e7adfb) ) -ROM_END - -ROM_START( tmc600as ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1", 0x0000, 0x1000, NO_DUMP ) - ROM_LOAD( "2", 0x1000, 0x1000, NO_DUMP ) - ROM_LOAD( "3", 0x2000, 0x1000, NO_DUMP ) - ROM_LOAD( "4", 0x3000, 0x1000, NO_DUMP ) - ROM_LOAD( "5", 0x4000, 0x1000, NO_DUMP ) - ROM_LOAD( "6", 0x5000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "chargen", 0x0000, 0x1000, NO_DUMP ) -ROM_END - -/* System Configuration */ - -QUICKLOAD_LOAD( tmc600 ) -{ -/* int i; - int size = mame_fsize(fp); - UINT8 *buffer = malloc(size); - - if (!buffer) - return INIT_FAIL; -logerror("malloc ok\n"); - - mame_fread(fp, buffer, size); -logerror("read ok\n"); - - for (i = 0; i < size; i++) - program_write_byte(0x6300 + i, buffer[i]); -logerror("memwrite ok\n"); - - free(buffer); -*/ - image_fread(image, memory_region(REGION_CPU1) + 0x6300, 0x9500); - - return INIT_PASS; -} - -static void tmc1800_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( tmc1800 ) - CONFIG_RAM_DEFAULT ( 2 * 1024) - CONFIG_RAM ( 4 * 1024) - CONFIG_DEVICE(tmc1800_cassette_getinfo) -SYSTEM_CONFIG_END - -static void tmc2000_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( tmc2000 ) - CONFIG_RAM_DEFAULT (16 * 1024) - CONFIG_RAM (32 * 1024) - CONFIG_DEVICE(tmc2000_cassette_getinfo) -SYSTEM_CONFIG_END - -static void tmc2000e_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( tmc2000e ) - CONFIG_RAM_DEFAULT ( 8 * 1024) - CONFIG_DEVICE(tmc2000e_cassette_getinfo) -SYSTEM_CONFIG_END - -static void tmc600_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void tmc600_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_basicdsk_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - - default: legacybasicdsk_device_getinfo(devclass, state, info); break; - } -} - -static void tmc600_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void tmc600_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sbp"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_QUICKLOAD_LOAD: info->f = (genf *) quickload_load_tmc600; break; - - default: quickload_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START( tmc600 ) - CONFIG_RAM_DEFAULT ( 9 * 1024) - CONFIG_RAM (30 * 1024) - CONFIG_DEVICE(tmc600_cassette_getinfo) - CONFIG_DEVICE(tmc600_floppy_getinfo) - CONFIG_DEVICE(tmc600_printer_getinfo) - CONFIG_DEVICE(tmc600_quickload_getinfo) -SYSTEM_CONFIG_END - -static void setup_beep(int dummy) -{ - beep_set_volume(0, 0); - beep_set_state(0, 1); -} - -static DRIVER_INIT( telmac ) -{ - timer_set(0.0, 0, setup_beep); -} - - - -/* System Drivers */ - -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME -COMP( 1977, tmc1800, 0, 0, tmc1800, tmc1800, telmac, tmc1800, "Telercas Oy", "Telmac 1800", GAME_NOT_WORKING ) -COMP( 1980, tmc2000, 0, tmc1800, tmc2000, tmc1800, telmac, tmc2000, "Telercas Oy", "Telmac 2000", GAME_NOT_WORKING ) -COMP( 1980, tmc2000t, tmc2000, tmc1800, tmc2000t, tmc1800, telmac, tmc2000, "Telercas Oy", "Telmac 2000 (TOOL-2000)", GAME_NOT_WORKING ) -COMP( 1980, tmc2000e, 0, 0, tmc2000e, tmc2000e, telmac, tmc2000e, "Telercas Oy", "Telmac 2000E", GAME_NOT_WORKING ) -COMP( 1982, tmc600, 0, 0, tmc600, tmc600, telmac, tmc600, "Telercas Oy", "Telmac TMC-600 (Series I)", GAME_NOT_WORKING ) -COMP( 1982, tmc600a, tmc600, 0, tmc600, tmc600, telmac, tmc600, "Telercas Oy", "Telmac TMC-600 (Series II)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -COMP( 1982, tmc600as, tmc600, 0, tmc600, tmc600, telmac, tmc600, "Telercas Oy", "Telmac TMC-600 AS", GAME_NOT_WORKING ) diff --git a/mess/systems/thomson.c b/mess/systems/thomson.c deleted file mode 100644 index ff810bdd7..000000000 --- a/mess/systems/thomson.c +++ /dev/null @@ -1,2320 +0,0 @@ -/********************************************************************** - - Copyright (C) Antoine Mine' 2006 - - Thomson 8-bit micro-computers. - - A 6809E-based French family of personal computers developed in the 80's. - Despite their rather high price and poor design , they were quite popular - in France, probably due to the government plan "Informatique pour tous" - (Computer Science for Everyone) to put a network of MO5 computers in every - school during 1984-1986. And maybe their very popular light-pen. - - Drivers - - t9000 Thomson T9000 (early TO7 prototype, oct 1980) - - to7 Thomson TO7 (nov 1982) - - to770 Thomson TO7/70 (scarcely enhanced TO7, 1984) - - mo5 Thomson MO5 (entry-game, TO7-incompatible, jun 1984) - - to9 Thomson TO9 (high-end TO7/70 successor, sep 1985) - - mo5e Thomson MO5E (export MO5 version, 1986) - - to8 Thomson TO8 (next generation of TO7/70, sep 1986) - - to9p Thomson TO9+ (improved TO9 with TO8 technology, sep 1986) - - mo6 Thomson MO6 (improved MO5 with TO8 technology, sep 1986) - - mo5nr Thomson MO5NR (network-enhanced MO6, 1986) - - to8d Thomson TO8D (TO8 with integrated floppy, dec 1987) - - pro128 Olivetti Prodest PC 128 (Italian MO6, built by Thomson, 1986) - - We do not consider here the few 16-bit computers built by Thomson - (68000-based Micromega 32, 8088-based Micromega 16 or the TO16: Thomson's own - 8088-based PC). - - You may distinguish three families: - * TO7,TO7/70,TO8,TO8D (family computers) - * TO9,TO9+ (professional desktop look with separate keyboard and monitor) - * MO5,MO5E,MO5NR,MO6 (cheaper, less extensible family) - Computers in both TO families are compatible. Computers in the MO family are - compatible. However, the TO and MO families are incompatible - (different memory-mapping). - - Note that the TO8, TO9+ and MO6 were produced at the same time, using very - similar technologies, but with different cost/feature trade-offs and - different compatibility (MO6 is MO5-compatible, TO9+ is TO9-compatible and - TO8 and TO9+ are TO7-compatible). - Also note that the MO5NR is actually based on MO6 design, not MO5 - (although both MO5NR and MO6 are MO5-compatible) - - Also of interest are the Platini and Hinault versions of the MO5 - (plain MO5 inside, but with custom, signed box-case). - There were several versions of TO7/70 and MO5 with alternate keyboards. - - Thomson stopped producing micro-computers in jan 1990. - -**********************************************************************/ - -/* TODO (roughly in decreasing priority order): - ---- - - - test the new game extension with all software - - test that recent changes to 6821 port A do not break the driver - - add PORT_CHAR in keyboard - - support all cartridge bank switching methods - - THMFC1 support for single density - - internal TO9 mouse port (untested) - - better state save - - support for CD 90-015 floppy controller - - floppy: 2-sided or 4-sided .fd images - - printer post-processing => postscript - - RS232 serial port extensions: CC 90-232, RF 57-932 - - modem, teltel extension: MD 90-120 / MD 90-333 (need controller ROM?) - - IEEE extension - - TV overlay (IN 57-001) (@) - - digitisation extension (DI 90-011) (@) - - barcode reader (@) - - (@) means MESS is lacking support for this kind of device / feature anyway - -*/ - -#include "driver.h" -#include "device.h" -#include "inputx.h" -#include "machine/6821pia.h" -#include "machine/mc6846.h" -#include "includes/6551.h" -#include "machine/thomson.h" -#include "vidhrdw/thomson.h" -#include "sndhrdw/mea8000.h" -#include "devices/cartslot.h" -#include "devices/printer.h" -#include "devices/cassette.h" -#include "formats/thom_cas.h" -#include "devices/thomflop.h" -#include "formats/thom_dsk.h" -#include "includes/serial.h" - - -/**************************** common *******************************/ - -/* layout */ -static const char layout_thomson[] = "thomson"; - -#define KEY(pos,name,key) \ - PORT_BIT ( 1<<(pos), IP_ACTIVE_LOW, IPT_KEYBOARD ) \ - PORT_NAME ( name ) \ - PORT_CODE ( KEYCODE_##key ) - -#define PAD(mask,player,name,port,dir,key) \ - PORT_BIT ( mask, IP_ACTIVE_LOW, IPT_##port ) \ - PORT_NAME ( "P" #player " " name ) \ - PORT_CODE( JOYCODE_##player##_##dir ) \ - PORT_CODE( KEYCODE_##key ) \ - PORT_PLAYER ( player ) - - -/* ------------- game port ------------- */ - -/* - Two generations of game port extensions were developped - - - CM 90-112 (model 1) - connect up to two 8-position 1-button game pads - - - SX 90-018 (model 2) - connect either two 8-position 2-button game pads - or a 2-button mouse (not both at the same time!) - - We emulate the SX 90-018 as it is fully compatible with the CM 90-112. - - Notes: - * all extensions are compatible with all Thomson computers. - * the SX 90-018 extension is integrated within the TO8(D) - * the TO9 has its own, different mouse port - * all extensions are based on a Motorola 6821 PIA - * all extensions include a 6-bit sound DAC - * most pre-TO8 software (including TO9) do not recognise the mouse nor the - second button of each pad - * the mouse cannot be used at the same time as the pads: they use the same - 6821 input ports & physical port; we use a config switch to tell MESS - whether pads or a mouse is connected - * the mouse should not be used at the same time as the sound DAC: they use - the same 6821 ports, either as input or output; starting from the TO8, - there is a 'mute' signal to cut the DAC output and avoid producing an - audible buzz whenever the mouse is moved; unfortunately, mute is not - available on the TO7(/70), TO9 and MO5. -*/ - -INPUT_PORTS_START( thom_game_port ) - -/* joysticks, common to CM 90-112 & SX 90-018 */ - PORT_START_TAG ( "game_port_directions" ) - PAD ( 0x01, 1, "Up", JOYSTICK_UP, UP, UP) - PAD ( 0x02, 1, "Down", JOYSTICK_DOWN, DOWN, DOWN ) - PAD ( 0x04, 1, "Left", JOYSTICK_LEFT, LEFT, LEFT ) - PAD ( 0x08, 1, "Right", JOYSTICK_RIGHT, RIGHT, RIGHT ) - PAD ( 0x10, 2, "Up", JOYSTICK_UP, UP, 8_PAD ) - PAD ( 0x20, 2, "Down", JOYSTICK_DOWN, DOWN, 2_PAD ) - PAD ( 0x40, 2, "Left", JOYSTICK_LEFT, LEFT, 4_PAD ) - PAD ( 0x80, 2, "Right", JOYSTICK_RIGHT, RIGHT, 6_PAD ) - - PORT_START_TAG ( "game_port_buttons" ) - PAD ( 0x40, 1, "Action A", BUTTON1, BUTTON1, LCONTROL ) - PAD ( 0x80, 2, "Action A", BUTTON1, BUTTON1, RCONTROL ) - -/* joysticks, SX 90-018 specific */ - PAD ( 0x04, 1, "Action B", BUTTON2, BUTTON2, LALT ) - PAD ( 0x08, 2, "Action B", BUTTON2, BUTTON2, RALT ) - PORT_BIT ( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT ( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) /* ? */ - -/* mouse, SX 90-018 specific */ - PORT_START_TAG ( "mouse_x" ) - PORT_BIT ( 0xffff, 0x00, IPT_MOUSE_X ) - PORT_NAME ( "Mouse X" ) - PORT_SENSITIVITY ( 150 ) - PORT_CODE( MOUSECODE_1_ANALOG_X ) - PORT_PLAYER (1) - - PORT_START_TAG ( "mouse_y" ) - PORT_BIT ( 0xffff, 0x00, IPT_MOUSE_Y ) - PORT_NAME ( "Mouse Y" ) - PORT_SENSITIVITY ( 150 ) - PORT_CODE( MOUSECODE_1_ANALOG_Y ) - PORT_PLAYER (1) - - PORT_START_TAG ( "mouse_button" ) - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_NAME ( "Left Mouse Button" ) - PORT_CODE( MOUSECODE_1_BUTTON1 ) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_NAME ( "Right Mouse Button" ) - PORT_CODE( MOUSECODE_1_BUTTON3 ) - -INPUT_PORTS_END - - -/* ------------ lightpen ------------ */ - -INPUT_PORTS_START( thom_lightpen ) - - PORT_START_TAG ( "lightpen_x" ) - PORT_BIT ( 0xffff, THOM_TOTAL_WIDTH/2, IPT_LIGHTGUN_X ) - PORT_NAME ( "Lightpen X" ) - PORT_MINMAX( 0, THOM_TOTAL_WIDTH ) - PORT_SENSITIVITY( 50 ) - PORT_CODE( MOUSECODE_1_ANALOG_X ) - PORT_CROSSHAIR(X, 1.0, 0.0, 0) - - PORT_START_TAG ( "lightpen_y" ) - PORT_BIT ( 0xffff, THOM_TOTAL_HEIGHT/2, IPT_LIGHTGUN_Y ) - PORT_NAME ( "Lightpen Y" ) - PORT_MINMAX ( 0, THOM_TOTAL_HEIGHT ) - PORT_SENSITIVITY( 50 ) - PORT_CODE( MOUSECODE_1_ANALOG_Y ) - PORT_CROSSHAIR(Y, 1.0, 0.0, 0) - - PORT_START_TAG ( "lightpen_button" ) - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_NAME ( "Lightpen Button" ) - PORT_CODE( MOUSECODE_1_BUTTON1 ) - -INPUT_PORTS_END - - -/* ------------ cartridge ------------ */ - -static void to7_cartridge_getinfo( const device_class *devclass, - UINT32 state, union devinfo *info ) -{ - switch ( state ) { - case DEVINFO_INT_COUNT: - info->i = 1; - break; - case DEVINFO_PTR_LOAD: - info->load = to7_cartridge_load; - break; - case DEVINFO_STR_FILE_EXTENSIONS: - strcpy( info->s = device_temp_str(), "m7,rom" ); - break; - default: - cartslot_device_getinfo( devclass, state, info ); - } -} - -static void mo5_cartridge_getinfo( const device_class *devclass, - UINT32 state, union devinfo *info ) -{ - switch ( state ) { - case DEVINFO_INT_COUNT: - info->i = 1; - break; - case DEVINFO_PTR_LOAD: - info->load = mo5_cartridge_load; - break; - case DEVINFO_STR_FILE_EXTENSIONS: - strcpy( info->s = device_temp_str(), "m5,rom" ); - break; - default: - cartslot_device_getinfo( devclass, state, info ); - } -} - - -/* ------------ printer ------------ */ - -static void thom_printer_getinfo ( const device_class *devclass, - UINT32 state, union devinfo *info ) -{ - switch ( state ) { - case DEVINFO_INT_COUNT: - info->i = 1; - break; - default: - printer_device_getinfo( devclass, state, info ); - } -} - - -/* ------------ serial ------------ */ - -static const char* thom_serial_names[3][3]= - { { "cc90232", "c232", "RS232 (older, CC 90-232)" }, - { "rf57932", "r232", "RS232 (newer, RF 57-932)" }, - { "modem", "modm", "Modem" } }; - -static void thom_serial_getinfo ( const device_class *devclass, - UINT32 state, union devinfo *info ) -{ - switch ( state ) { - case DEVINFO_INT_COUNT: - info->i = 3; - break; - case DEVINFO_INT_TYPE: - info->i = IO_SERIAL; - break; - case DEVINFO_INT_READABLE: - info->i = 1; - break; - case DEVINFO_INT_WRITEABLE: - info->i = 1; - break; - case DEVINFO_INT_CREATABLE: - info->i = 1; - break; - - case DEVINFO_PTR_INIT: - info->init = thom_serial_init; - break; - case DEVINFO_PTR_LOAD: - info->load = thom_serial_load; - break; - case DEVINFO_PTR_UNLOAD: - info->unload = thom_serial_unload; - break; - - case DEVINFO_STR_NAME+0: - case DEVINFO_STR_NAME+1: - case DEVINFO_STR_NAME+2: - strcpy( info->s = device_temp_str(), - thom_serial_names[ state - DEVINFO_STR_NAME ][ 0 ] ); - return; - case DEVINFO_STR_SHORT_NAME+0: - case DEVINFO_STR_SHORT_NAME+1: - case DEVINFO_STR_SHORT_NAME+2: - strcpy( info->s = device_temp_str(), - thom_serial_names[ state - DEVINFO_STR_SHORT_NAME ][ 1 ] ); - return; - case DEVINFO_STR_DESCRIPTION+0: - case DEVINFO_STR_DESCRIPTION+1: - case DEVINFO_STR_DESCRIPTION+2: - strcpy( info->s = device_temp_str(), - thom_serial_names[ state - DEVINFO_STR_DESCRIPTION ][ 2 ] ); - return; - - case DEVINFO_STR_DEV_FILE: - strcpy( info->s = device_temp_str(), "serial" ); - break; - case DEVINFO_STR_FILE_EXTENSIONS: - strcpy( info->s = device_temp_str(), "txt" ); - break; - } -} - - - -/************************** T9000 / TO7 ******************************* - -TO7 (1982) ---- - -First computer by Thomson. -Note that the computer comes with only a minimal BIOS and requires an -external cartridge to be usable. -Most software are distributed on cassette and require the BASIC 1.0 cartridge -to be present (-cart basic.m7), as only it provides the necessary OS -capabilities (e.g., a cassette loader). -To use disks, you will need both a BASIC 1.0 cartridge and a BASIC DOS -boot floppy. - -* chips: - - 1 MHz Motorola 6809E CPU - - 1 Motorola 6821 PIA (+3 for I/O, game, and modem extensions) - - 1 Motorola 6846 timer, I/O, ROM - -* memory: - - 8 KB base user RAM - + 16 KB extended user RAM (EM 90-016) = 24 KB total user RAM emulated - - 6 KB BIOS ROM - - 6-bit x 8 K color RAM + 8-bit x 8 K point RAM, bank switched - - 2 to 8 KB ROM comes with the floppy drive / network controller - -* video: - 320x200 pixels with color constraints (2 colors per horizontal - 8-pixel span), 8-color pixel palette, - 50 Hz (tweaked SECAM) - -* devices: - - AZERTY keyboard, 58-keys, French with accents - - cartridge 16 KB (up to 64 KB using bank-switching), - the MESS cartridge device is named -cart - - cassette 900 bauds (frequency signals: 0=4.5Khz, 1=6.3KHz) - the MESS cassette device is named -cass - - 1-bit internal buzzer - - lightpen, with 8-pixel horizontal resolution, 1-pixel vertical - - SX 90-018 game & music extension - . 6-bit DAC sound - . two 8-position 2-button game pads - . 2-button mouse - . based on a Motorola 6821 PIA - - CC 90-232 I/O extension: - . CENTRONICS (printer) - . RS232 (unemulated) - . based on a Motorola 6821 PIA - . NOTE: you cannot use the CENTRONICS and RS232 at the same time - - RF 57-932: RS232 extension, based on a SY 6551 ACIA (unemulated) - - MD 90-120: MODEM, TELETEL extension (unemulated) - . 1 Motorola 6850 ACIA - . 1 Motorola 6821 PIA - . 1 EFB 7513 MODEM FSK V13, full duplex - . PTT-, VELI7Y-, and V23-compatible MODEM (up to 1200 bauds) - . seems to come with an extra ROM - - 5"1/2 floppy drive extension - . CD 90-640 floppy controller, based on a Western Digital 2793 - . DD 90-320 double-density double-sided 5"1/4 floppy - (2 drives considered as 4 simple-face drives: 0/1 for the first drive, - 2/3 for the second drive, 1 and 3 for upper sides, 0 and 2 for lower - sides) - . floppies are 40 tracks/side, 16 sectors/track, 128 or 256 bytes/sector - = from 80 KB one-sided single-density, to 320 KB two-sided double-density - . MESS floppy devices are named -flop0 to -flop3 - - alternate 5"1/2 floppy drive extension (unemulated) - . CD 90-015 floppy controller (no information on this) - . UD 90-070 5"1/4 single-sided single density floppy drive - - alternate 3"1/2 floppy drive extension - . CD 90-351 floppy controller, based on a custom Thomson gate-array - . DD 90-352 3"1/2 floppy drives - - alternate QDD floppy drive extension - . CQ 90-028 floppy controller, based on a Motorola 6852 SSDA - . QD 90-028 quickdrive 2"8 (QDD), only one drive, signe side - - speech synthesis extension: based on a Philips / Signetics MEA 8000 - (cannot be used with the MODEM) - - MIDIPAK MIDI extension, uses a EF 6850 ACIA - - NR 07-005: network extension, MC 6854 based, 2 KB ROM & 64 KB RAM - (build by the French Leanord company) - - -T9000 (1980) ------ - -Early TO7 prototype. -The hardware seems to be the exactly same. Only the BIOS is different. -It has some bug that were corrected later for the TO7. -Actually, the two computers are undistinguishable, except for the different -startup screen, and a couple BIOS addresses. -They can run the same software and accept the same devices and extensions. - - -**********************************************************************/ - - -/* ------------ address maps ------------ */ - -static ADDRESS_MAP_START ( to7, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x3fff ) AM_ROMBANK ( THOM_CART_BANK ) /* 4 * 16 KB */ - AM_WRITE ( to7_cartridge_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to7_vram_w ) - AM_RANGE ( 0x6000, 0x7fff ) AM_RAM /* base user memory 8 KB */ - AM_RANGE ( 0x8000, 0xbfff ) AM_RAM /* extension user memory 16 KB */ - AM_RANGE ( 0xc000, 0xdfff ) AM_NOP /* unused 8 KB*/ - AM_RANGE ( 0xe000, 0xe7bf ) AM_ROMBANK ( THOM_FLOP_BANK ) - AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_READWRITE ( mc6846_r, mc6846_w ) - AM_RANGE ( 0xe7c8, 0xe7cb ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xe7cc, 0xe7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xe7d0, 0xe7df ) AM_READWRITE ( to7_floppy_r, to7_floppy_w ) - AM_RANGE ( 0xe7e0, 0xe7e3 ) AM_READWRITE ( pia_2_r, pia_2_w ) - AM_RANGE ( 0xe7e8, 0xe7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) - AM_RANGE ( 0xe7f2, 0xe7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xe7f8, 0xe7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xe7fe, 0xe7ff ) AM_READWRITE ( to7_modem_mea8000_r, - to7_modem_mea8000_w ) - AM_RANGE ( 0xe800, 0xffff ) AM_ROM /* system bios */ - -/* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ -/* 0x20000 - 0x23fff: 16 KB video RAM (actually 8 K x 8 bits + 8 K x 6 bits) */ -/* 0x24000 - 0x27fff: 16 KB floppy ROM controllers */ - -ADDRESS_MAP_END - - - -/* ------------ ROMS ------------ */ - -/* external floppy controllers */ -#define ROM_FLOPPY( base ) \ - /* no controller */ \ - ROM_FILL( base, 0x800, 0x39 ) \ - /* CD 90-640 (5"1/4) */ \ - ROM_LOAD ( "cd90-640.rom", base+0x800, 0x7c0, \ - CRC(5114c0a5) \ - MD5(e5b609dd90b26c9974a46cd54eab4216) ) \ - /* CD 90-351 (3"1/2) */ \ - ROM_LOAD ( "cd-351-0.rom", base+0x1000, 0x7c0, \ - CRC(2c0159fd) \ - MD5(74b61b2905e355419c497b5520706aa0) ) \ - ROM_LOAD ( "cd-351-1.rom", base+0x1800, 0x7c0, \ - CRC(8e58d159) \ - MD5(e2a2cd1be213bc340bb8e9ebbed95d0d) ) \ - ROM_LOAD ( "cd-351-2.rom", base+0x2000, 0x7c0, \ - CRC(c9228b60) \ - MD5(087e52f007dd24a385adea39f80682a3) ) \ - ROM_LOAD ( "cd-351-3.rom", base+0x2800, 0x7c0, \ - CRC(3ca8e5dc) \ - MD5(e01dceb2295fa548a4f74cf0487c3f6d) ) \ - /* CQ 90-028 (2"8, aka QDD) */ \ - ROM_LOAD ( "cq90-028.rom", base+0x3000, 0x7c0, \ - CRC(ca4dba3d) \ - MD5(0f58e167bf6ebcd2cbba946be2084fbe) ) - -/* external floppy / network controller: 8 banks */ -#define ROM_FLOPPY5( base ) \ - ROM_FLOPPY( base ) \ - ROM_LOAD ( "nano5.rom", base+0x3800, 0x7c0, \ - CRC(2f756868) \ - MD5(06ff309276d4fc656e99a8ad1ca67899) ) - -#define ROM_FLOPPY7( base ) \ - ROM_FLOPPY( base ) \ - ROM_LOAD ( "nano7.rom", base+0x3800, 0x7c0, \ - CRC(42a1d1a6) \ - MD5(77da8cfc9e0a14ef2ed7034f5941b542) ) - - -ROM_START ( to7 ) - ROM_REGION ( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD ( "to7.rom", 0xe800, 0x1800, - CRC(0e7826da) - MD5(5bf18521bf35293de942645f690b2845) ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) - ROM_FLOPPY7 ( 0x24000 ) -ROM_END - -ROM_START ( t9000 ) - ROM_REGION ( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD ( "t9000.rom", 0xe800, 0x1800, - CRC(daa8cfbf) - MD5(b3007f26e7b621c1a4f0fd2c287f80b9) ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) - ROM_FLOPPY7 ( 0x24000 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( to7_config ) - PORT_START_TAG ( "config" ) - - PORT_CONFNAME ( 0x01, 0x00, "Game Port" ) - PORT_CONFSETTING ( 0x00, DEF_STR( Joystick ) ) - PORT_CONFSETTING ( 0x01, "Mouse" ) - -INPUT_PORTS_END - -INPUT_PORTS_START ( to7_vconfig ) - PORT_START_TAG ( "vconfig" ) - - PORT_CONFNAME ( 0x03, 0x00, "Border" ) - PORT_CONFSETTING ( 0x00, "Normal (56x47)" ) - PORT_CONFSETTING ( 0x01, "Small (16x16)" ) - PORT_CONFSETTING ( 0x02, DEF_STR ( None ) ) - - PORT_CONFNAME ( 0x0c, 0x08, "Resolution" ) - PORT_CONFSETTING ( 0x00, DEF_STR ( Low ) ) - PORT_CONFSETTING ( 0x04, DEF_STR ( High ) ) - PORT_CONFSETTING ( 0x08, "Auto" ) - -INPUT_PORTS_END - -INPUT_PORTS_START ( to7_mconfig ) - PORT_START_TAG ( "mconfig" ) - - PORT_CONFNAME ( 0x01, 0x01, "E7FE-F port" ) - PORT_CONFSETTING ( 0x00, "Modem (unemulated)" ) - PORT_CONFSETTING ( 0x01, "Speech" ) - -INPUT_PORTS_END - -INPUT_PORTS_START ( to7_fconfig ) - PORT_START_TAG ( "fconfig" ) - - PORT_CONFNAME ( 0x07, 0x02, "Floppy (reset)" ) - PORT_CONFSETTING ( 0x00, DEF_STR ( None ) ) - PORT_CONFSETTING ( 0x01, "CD 90-640 (5\"1/4)" ) - PORT_CONFSETTING ( 0x02, "CD 90-351 (3\"1/2)" ) - PORT_CONFSETTING ( 0x03, "CQ 90-028 (2\"8 QDD)" ) - PORT_CONFSETTING ( 0x04, "Network" ) - - PORT_CONFNAME ( 0xf8, 0x08, "Network ID" ) - PORT_CONFSETTING ( 0x00, "0 (Master)" ) - PORT_CONFSETTING ( 0x08, "1" ) - PORT_CONFSETTING ( 0x10, "2" ) - PORT_CONFSETTING ( 0x18, "3" ) - PORT_CONFSETTING ( 0x20, "4" ) - PORT_CONFSETTING ( 0x28, "5" ) - PORT_CONFSETTING ( 0x30, "6" ) - PORT_CONFSETTING ( 0x38, "7" ) - PORT_CONFSETTING ( 0x40, "8" ) - PORT_CONFSETTING ( 0x48, "9" ) - PORT_CONFSETTING ( 0x50, "10" ) - PORT_CONFSETTING ( 0x58, "11" ) - PORT_CONFSETTING ( 0x60, "12" ) - PORT_CONFSETTING ( 0x68, "13" ) - PORT_CONFSETTING ( 0x70, "14" ) - PORT_CONFSETTING ( 0x78, "15" ) - PORT_CONFSETTING ( 0x80, "16" ) - PORT_CONFSETTING ( 0x88, "17" ) - PORT_CONFSETTING ( 0x90, "18" ) - PORT_CONFSETTING ( 0x98, "19" ) - PORT_CONFSETTING ( 0xa0, "20" ) - PORT_CONFSETTING ( 0xa8, "21" ) - PORT_CONFSETTING ( 0xb0, "22" ) - PORT_CONFSETTING ( 0xb8, "23" ) - PORT_CONFSETTING ( 0xc0, "24" ) - PORT_CONFSETTING ( 0xc8, "25" ) - PORT_CONFSETTING ( 0xd0, "26" ) - PORT_CONFSETTING ( 0xd8, "27" ) - PORT_CONFSETTING ( 0xe0, "28" ) - PORT_CONFSETTING ( 0xe8, "29" ) - PORT_CONFSETTING ( 0xf0, "30" ) - PORT_CONFSETTING ( 0xf8, "31" ) - -INPUT_PORTS_END - - -INPUT_PORTS_START ( to7_keyboard ) - PORT_START_TAG ( "keyboard_0" ) - KEY ( 0, "SHIFT", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) - PORT_BIT ( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_1" ) - KEY ( 0, "W", W ) - KEY ( 1, "UP", UP ) - KEY ( 2, "C \303\247", C ) - KEY ( 3, "CLEAR", ESC ) - KEY ( 4, "ENTER", ENTER ) - KEY ( 5, "CONTROL", LCONTROL ) - KEY ( 6, "ACCENT", END ) - KEY ( 7, "STOP", TAB ) - PORT_START_TAG ( "keyboard_2" ) - KEY ( 0, "X", X ) - KEY ( 1, "LEFT", LEFT ) - KEY ( 2, "V", V ) - KEY ( 3, "Q", Q ) - KEY ( 4, "* :", QUOTE ) - KEY ( 5, "A", A ) - KEY ( 6, "+ ;", EQUALS ) - KEY ( 7, "1 !", 1 ) - PORT_START_TAG ( "keyboard_3" ) - KEY ( 0, "SPACE CAPS-LOCK", SPACE ) - KEY ( 1, "DOWN", DOWN ) - KEY ( 2, "B", B ) - KEY ( 3, "S", S ) - KEY ( 4, "/ ?", SLASH ) - KEY ( 5, "Z \305\223", Z) - KEY ( 6, "- =", MINUS ) - KEY ( 7, "2 \" \302\250", 2 ) - PORT_START_TAG ( "keyboard_4" ) - KEY ( 0, "@ \342\206\221", TILDE ) - KEY ( 1, "RIGHT", RIGHT ) - KEY ( 2, "M", M ) - KEY ( 3, "D", D ) - KEY ( 4, "P", P ) - KEY ( 5, "E", E ) - KEY ( 6, "0 \140", 0 ) - KEY ( 7, "3 #", 3 ) - PORT_START_TAG ( "keyboard_5" ) - KEY ( 0, ". >", STOP ) - KEY ( 1, "HOME", HOME ) - KEY ( 2, "L", L ) - KEY ( 3, "F", F ) - KEY ( 4, "O", O ) - KEY ( 5, "R", R ) - KEY ( 6, "9 )", 9 ) - KEY ( 7, "4 $", 4 ) - PORT_START_TAG ( "keyboard_6" ) - KEY ( 0, ", <", COMMA ) - KEY ( 1, "INSERT", INSERT ) - KEY ( 2, "K", K ) - KEY ( 3, "G", G ) - KEY ( 4, "I", I ) - KEY ( 5, "T", T ) - KEY ( 6, "8 (", 8 ) - KEY ( 7, "5 %", 5 ) - PORT_START_TAG ( "keyboard_7" ) - KEY ( 0, "N", N ) - KEY ( 1, "DELETE", DEL ) - KEY ( 2, "J \305\222", J ) - KEY ( 3, "H \302\250", H ) - KEY ( 4, "U", U ) - KEY ( 5, "Y", Y ) - KEY ( 6, "7 ' \302\264", 7 ) - KEY ( 7, "6 &", 6 ) - - /* unused */ - PORT_START_TAG ( "keyboard_8" ) - PORT_START_TAG ( "keyboard_9" ) - -INPUT_PORTS_END - -INPUT_PORTS_START ( to7 ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( to7_keyboard ) - PORT_INCLUDE ( to7_config ) - PORT_INCLUDE ( to7_fconfig ) - PORT_INCLUDE ( to7_vconfig ) - PORT_INCLUDE ( to7_mconfig ) -INPUT_PORTS_END - -INPUT_PORTS_START ( t9000 ) - PORT_INCLUDE ( to7 ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( to7 ) - CONFIG_DEVICE ( to7_cartridge_getinfo ) - CONFIG_DEVICE ( to7_cassette_getinfo ) - CONFIG_DEVICE ( thom_floppy_getinfo ) - CONFIG_DEVICE ( thom_printer_getinfo ) - CONFIG_DEVICE ( thom_serial_getinfo ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START ( t9000 ) - CONFIG_IMPORT_FROM ( to7 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( to7 ) - - MDRV_MACHINE_START ( to7 ) - MDRV_MACHINE_RESET ( to7 ) - -/* cpu */ - MDRV_CPU_ADD_TAG ( "main", M6809, 1000000 ) - MDRV_CPU_PROGRAM_MAP ( to7, 0 ) - -/* video */ -/* Finally, I figured it out. The video hardware overclocks the SECAM - framerate from 50 Hz to 1/0.019968 Hz to get 312 64us lines per frame, - i.e., 19.968 ms per frame, not 20 ms -*/ - MDRV_SCREEN_REFRESH_RATE ( /*50*/ 1./0.019968 ) - MDRV_INTERLEAVE ( 0 ) - MDRV_VIDEO_ATTRIBUTES ( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT( BITMAP_FORMAT_INDEXED16 ) - MDRV_SCREEN_SIZE ( THOM_TOTAL_WIDTH * 2, THOM_TOTAL_HEIGHT ) - MDRV_SCREEN_VISIBLE_AREA ( 0, THOM_TOTAL_WIDTH * 2 - 1, - 0, THOM_TOTAL_HEIGHT - 1 ) - MDRV_PALETTE_LENGTH ( 4097 ) /* 12-bit color + transparency */ - MDRV_PALETTE_INIT ( thom ) - MDRV_VIDEO_START ( thom ) - MDRV_VIDEO_UPDATE ( thom ) - MDRV_VIDEO_EOF ( thom ) - MDRV_DEFAULT_LAYOUT( layout_thomson ) - -/* sound */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD ( DAC, 0 ) - MDRV_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.) /* 1-bit buzzer */ - MDRV_SOUND_ADD ( DAC, 0 ) - MDRV_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.) /* 6-bit game extention DAC */ - MDRV_SOUND_ADD ( DAC, 0 ) - MDRV_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.) /* speech synthesis */ - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START ( t9000 ) - MDRV_IMPORT_FROM ( to7 ) -MACHINE_DRIVER_END - - -COMP ( 1982, to7, 0, 0, to7, to7, NULL, to7, "Thomson", "TO7", - 0 /*GAME_SUPPORTS_SAVE*/ ) - -COMP ( 1980, t9000, to7, 0, t9000, t9000, NULL, t9000, "Thomson", "T9000", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - -/***************************** TO7/70 ********************************* - -TO7/70 ( 1984) ------- - -Enhanced TO7. -The TO7/70 supports virtually all TO7 software and most TO7 devices and -extensions (floppy, game, communucation, etc.). -As the TO7, it is only usable with a cartridge, and most software require -the BASIC 1.0 cartridge to be present. -Though, you may also use the more advanced BASIC 128 (-cart basic128.m7): -it allows BASIC programs to access all the memory and the video capabilities, -includes its own DOS (no need for a boot disk), but may not be compatible -with all games. - -It has the following modifications: - -* chips: - - custom logics for video, lightpen, address map has been replaced with an - integrated Gate-Array (Motorola MC 1300 ALS) - -* memory: - - 48 KB user base RAM (16 KB unswitchable + 2 switchable banks of 16 KB) - + 64 KB user extended RAM (EM 97-064, as 4 extra 16 KB banks) - = 112 KB total user RAM emulated - - now 8-bit x 8 K color RAM (instead of 6-bit x 8 K) - -* video: - - 16-color fixed palette instead of 8-color (but same constraints) - - IN 57-001: TV overlay extension, not implemented - (black becomes transparent and shows the TV image) - -* devices: - - lightpen management has changed, it now has 1-pixel horizontal resolution - - keyboard management has changed (but the keys are the same) - - -TO7/70 arabic (198?) -------------- - -TO7/70 with an alternate ROM. -Together with a special (64 KB) BASIC 128 cartridge (-cart basic128a.m7), -it allows typing in arabic. -Use Ctrl+W to switch to arabic, and Ctrl+F to switch back to latin. -In latin mode, Ctrl+U / Ctrl+X to start / stop typing in-line arabic. -In arabic mode, Ctrl+E / Ctrl+X to start / stop typing in-line latin. - -**********************************************************************/ - -static ADDRESS_MAP_START ( to770, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x3fff ) AM_ROMBANK ( THOM_CART_BANK ) /* 4 * 16 KB */ - AM_WRITE ( to7_cartridge_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x6000, 0x9fff ) AM_RAM /* base user memory 16 KB */ - AM_RANGE ( 0xa000, 0xdfff ) AM_RAMBANK ( THOM_RAM_BANK )/* 6 * 16 KB */ - AM_RANGE ( 0xe000, 0xe7bf ) AM_ROMBANK ( THOM_FLOP_BANK ) - AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_READWRITE ( mc6846_r, mc6846_w ) - AM_RANGE ( 0xe7c8, 0xe7cb ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xe7cc, 0xe7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xe7d0, 0xe7df ) AM_READWRITE ( to7_floppy_r, to7_floppy_w ) - AM_RANGE ( 0xe7e0, 0xe7e3 ) AM_READWRITE ( pia_2_r, pia_2_w ) - AM_RANGE ( 0xe7e4, 0xe7e7 ) AM_READWRITE ( to770_gatearray_r, - to770_gatearray_w ) - AM_RANGE ( 0xe7e8, 0xe7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) - AM_RANGE ( 0xe7f2, 0xe7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xe7f8, 0xe7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xe7fe, 0xe7ff ) AM_READWRITE ( to7_modem_mea8000_r, - to7_modem_mea8000_w ) - AM_RANGE ( 0xe800, 0xffff ) AM_ROM /* system bios */ - -/* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ -/* 0x20000 - 0x37fff: 96 KB banked RAM */ -/* 0x38000 - 0x3bfff: 16 KB video RAM */ -/* 0x3c000 - 0x3ffff: 16 KB floppy ROM controllers */ - -ADDRESS_MAP_END - - - -/* ------------ ROMS ------------ */ - -ROM_START ( to770 ) - ROM_REGION ( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD ( "to770.rom", 0xe800, 0x1800, /* BIOS */ - CRC(89518862) - MD5(61402c35b75faeb4b74b815f323fff3d) ) - ROM_FLOPPY7 ( 0x3c000 ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) -ROM_END - -ROM_START ( to770a ) - ROM_REGION ( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD ( "to770a.rom", 0xe800, 0x1800, - CRC(378ea808) - MD5(6b63aa135107beee243967a2da0e5453) ) - ROM_FLOPPY7 ( 0x3c000 ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( to770 ) - PORT_INCLUDE ( to7 ) - - PORT_MODIFY ( "keyboard_1" ) - KEY ( 2, "C \302\250 \303\247", C ) - PORT_MODIFY ( "keyboard_4" ) - KEY ( 6, "0 \303\240 \140", 0 ) - PORT_MODIFY ( "keyboard_5" ) - KEY ( 6, "9 ) \303\247", 9 ) - PORT_MODIFY ( "keyboard_6" ) - KEY ( 6, "8 ( \303\271", 8 ) - PORT_MODIFY ( "keyboard_7" ) - KEY ( 6, "7 ' \303\250 \302\264", 7 ) - KEY ( 7, "6 & \303\251", 6 ) - -INPUT_PORTS_END - -/* arabic version (QWERTY keyboard) */ -INPUT_PORTS_START ( to770a ) - PORT_INCLUDE ( to770 ) - - PORT_MODIFY ( "keyboard_1" ) - KEY ( 0, "Z", Z ) - PORT_MODIFY ( "keyboard_2" ) - KEY ( 3, "A", A ) - KEY ( 5, "Q", Q ) - PORT_MODIFY ( "keyboard_3" ) - KEY ( 5, "W", W) - PORT_MODIFY ( "keyboard_4" ) - KEY ( 0, ". >", STOP ) - KEY ( 2, "@ \342\206\221", TILDE ) - KEY ( 6, "0 \302\243 \302\260 \140", 0 ) - PORT_MODIFY ( "keyboard_5" ) - KEY ( 0, ", <", COMMA ) - KEY ( 6, "9 ) \303\261", 9 ) - PORT_MODIFY ( "keyboard_6" ) - KEY ( 0, "M", M ) - KEY ( 6, "8 ( \303\274", 8 ) - PORT_START_TAG ( "keyboard_7" ) - KEY ( 6, "7 ' \303\266 \302\264", 7 ) - KEY ( 7, "6 & \303\244", 6 ) - -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( to770 ) - CONFIG_IMPORT_FROM ( to7 ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START ( to770a ) - CONFIG_IMPORT_FROM ( to770 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( to770 ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( to770 ) - MDRV_MACHINE_RESET ( to770 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( to770, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START ( to770a ) - MDRV_IMPORT_FROM ( to770 ) -MACHINE_DRIVER_END - -COMP ( 1984, to770, 0, 0, to770, to770, NULL, to770, "Thomson", "TO7/70", - 0 /*GAME_SUPPORTS_SAVE*/ ) - -COMP ( 1984, to770a, to770, 0, to770a, to770a, NULL, to770a, "Thomson", - "TO7/70 arabic", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - -/************************* MO5 / MO5E ********************************* - -MO5 (1984) ---- - -The MO5 is Thomson's attempt to provide a less costly micro-computer, using -the same technology as the TO7/70. -It has less memory and is less expandable. The MC6846 timer has disapeared. -The BIOS has been throughly rewritten and uses a more compact call scheme. -This, and the fact that the address map has changed, makes the MO5 completely -TO7 software incompatible (except for pure BASIC programs). -Moreover, the MO5 has incompatible cassette and cartridge formats. -Unlike the TO7, the BASIC 1.0 is integrated and the MO5 can be used "as-is". - -* chips: - - 1 MHz Motorola 6809E CPU - - 1 Motorola 6821 PIA (+3 for I/O, game, and modem extensions) - - Motorola 1300 ALS Gate-Array - -* memory: - - 32 KB base user RAM - - 64 KB extended user RAM (4 x 16 KB banks) with the network extension - - 16 KB combined BASIC and BIOS ROM - - 8 KB color RAM + 8 KB point RAM, bank switched - - 2 to 8 KB floppy ROM comes with the floppy drive / network extension - -* video: - - as the TO7/70 but with different color encoding, - 320x200 pixels with color constraints, 16-color fixed palette - - IN 57-001: TV overlay extension (not implemented) - -* devices: - - AZERTY keyboard, 58-keys, slightlty different from the TO7 - . the right SHIFT key has been replaced with a BASIC key - . no caps-lock led - - the famous lightpen is optional - - cassette 1200 bauds (frequency signals: 0=4.5Khz, 1=6.3KHz), - TO7-incompatible - - optional cartridge, up to 64 KB, incompatible with TO7, - masks the integrated BASIC ROM - - game & music, I/O, floppy, network extensions: identical to TO7 - - speech synthesis extension: identical to TO7 - - MIDIPAK MIDI extension: identical to TO7 - -MO5E (1986) ----- - -This is a special MO5 version for the export market (mainly Germany). -Although coming in a different (nicer) case, it is internally similar to -the MO5 and is fully compatible. -Differences include: - - much better keyboard; some are QWERTY instead of AZERTY (we emulate QWERTY) - - a different BIOS and integrated BASIC - - the game extension is integrated - - -**********************************************************************/ - -static ADDRESS_MAP_START ( mo5, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x1fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x2000, 0x9fff ) AM_RAM /* base user memory 32 KB */ - AM_RANGE ( 0xa000, 0xa7bf ) AM_ROMBANK ( THOM_FLOP_BANK ) - AM_RANGE ( 0xa7c0, 0xa7c3 ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xa7cb, 0xa7cb ) AM_WRITE ( mo5_ext_w ) - AM_RANGE ( 0xa7cc, 0xa7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xa7d0, 0xa7df ) AM_READWRITE ( to7_floppy_r, to7_floppy_w ) - AM_RANGE ( 0xa7e0, 0xa7e3 ) AM_READWRITE ( pia_2_r, pia_2_w ) - AM_RANGE ( 0xa7e4, 0xa7e7 ) AM_READWRITE ( mo5_gatearray_r, - mo5_gatearray_w ) - AM_RANGE ( 0xa7e8, 0xa7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) - AM_RANGE ( 0xa7f2, 0xa7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xa7fe, 0xa7ff ) AM_READWRITE ( mea8000_r, mea8000_w ) - AM_RANGE ( 0xb000, 0xefff ) AM_ROMBANK ( THOM_CART_BANK ) - AM_WRITE ( mo5_cartridge_w ) - AM_RANGE ( 0xf000, 0xffff ) AM_ROM /* system bios */ - -/* 0x10000 - 0x1ffff: 16 KB integrated BASIC / 64 KB external cartridge */ -/* 0x20000 - 0x2ffff: 64 KB banked RAM extension */ -/* 0x30000 - 0x33fff: 16 KB video RAM */ -/* 0x34000 - 0x3ffff: 16 KB floppy ROM controllers */ - -ADDRESS_MAP_END - - - -/* ------------ ROMS ------------ */ - -ROM_START ( mo5 ) - ROM_REGION ( 0x38000, REGION_CPU1, 0 ) - ROM_LOAD ( "mo5.rom", 0xf000, 0x1000, - CRC(f0ea9140) - MD5(ab3533a7132f90933acce80e256ae459) ) - ROM_LOAD ( "basic5.rom", 0x11000, 0x3000, - CRC(c2c11b9d) - MD5(f992a912093d3e8f165f225f74345b57) ) - ROM_FLOPPY5 ( 0x34000 ) -ROM_END - -ROM_START ( mo5e ) - ROM_REGION ( 0x38000, REGION_CPU1, 0 ) - ROM_LOAD ( "mo5e.rom", 0xf000, 0x1000, - CRC(6520213a) - MD5(434c42b96c31a341e13085048cdc8eae) ) - ROM_LOAD ( "basic5e.rom", 0x11000, 0x3000, - CRC(934a72b2) - MD5(6404a7f49ec28937decd905d2a3cbb28) ) - ROM_FLOPPY5 ( 0x34000 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( mo5 ) - PORT_INCLUDE ( to770 ) - - PORT_MODIFY ( "keyboard_0" ) - KEY ( 1, "BASIC", RCONTROL) - PORT_BIT ( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -/* QWERTY version */ -INPUT_PORTS_START ( mo5e ) - PORT_INCLUDE ( to770a ) - - PORT_MODIFY ( "keyboard_0" ) - KEY ( 1, "BASIC", RCONTROL) - PORT_BIT ( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( mo5 ) - CONFIG_DEVICE ( mo5_cartridge_getinfo ) - CONFIG_DEVICE ( mo5_cassette_getinfo ) - CONFIG_DEVICE ( thom_floppy_getinfo ) - CONFIG_DEVICE ( thom_printer_getinfo ) - CONFIG_DEVICE ( thom_serial_getinfo ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START ( mo5e ) - CONFIG_IMPORT_FROM ( mo5 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( mo5 ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( mo5 ) - MDRV_MACHINE_RESET ( mo5 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( mo5, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START ( mo5e ) - MDRV_IMPORT_FROM ( mo5 ) -MACHINE_DRIVER_END - - -COMP ( 1984, mo5, 0, 0, mo5, mo5, NULL, mo5, "Thomson", "MO5", - 0 /*GAME_SUPPORTS_SAVE*/ ) - -COMP ( 1986, mo5e, mo5, 0, mo5e, mo5e, NULL, mo5e, "Thomson", "MO5E", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - -/********************************* TO9 ******************************* - -TO9 (1985) ---- - -The TO9 is the successor of the TO7/70. -It is a high-end product: it integrates 96 KB of base RAM, 128 KB of -software in ROM, a floppy drive. It has improved graphics capabilities -(several video modes, a palette of 4096 colors, thanks to the use of -a dedicated video gate-array). -The ROM contains the old BASIC 1.0 for compatibility and the newer BASIC 128. -It has a more professional, desktop look, with a separate keyboard, and an -optional mouse. -It is also quite compatible with the TO7 and TO7/70 (but not the MO5). -However, it also has many problems. The integrated BASIC 128 can only access -128 KB of memory, which forces the 64 KB extension to be managed as a virtual -disk. The early versions of the software ROM has many bugs. The integrated -floppy drive is one-sided. -It was replaced quickly with the improved TO9+. - -* chips: - - 1 MHz Motorola 6809E CPU - - 1 Motorola 6821 PIA (+2 for game, modem extensions) - - 1 Motorola 6846 timer, PIA - - 1 Motorola 6805 + 1 Motorola 6850 (keyboard & mouse control) - - 1 Western Digital 2793 (disk controller) - - 3 gate-arrays (address decoding, system, video) - -* memory: - - 112 KB base RAM - - 64 KB extension RAM (as virtual disk) - - 6 KB BIOS ROM + 2 KB floppy BIOS - - 128 KB software ROM (BASIC 1, BASIC 128, extended BIOS, - DOS and configuration GUI, two software: "Paragraphe" and - "Fiches et dossiers") - - 16 KB video RAM - -* video: - - 8 video modes: - o 320x200, 16 colors with constraints (TO7/70 compatible) - o 320x200, 4 colors without constraints - o 160x200, 16 colors without constraints - o 640x200, 2 colors - o 320x200, 2 colors, two pages - . page one - . page two - . pages overlaid - o 160x200, 2 colors, four pages overlaid - - palette: 16 colors can be chosen among 4096 - -* devices: - - AZERTY keyboard, 81-keys, French with accents, keypad & function keys - - cartridge, up to 64 KB, TO7 compatible - - two-button mouse connected to the keyboard (not working yet) - - lightpen, with 1-pixel vertical and horizontal resolution - - 1-bit internal buzzer - - cassette 900 bauds, TO7 compatible - - integrated parallel CENTRONICS (printer emulated) - - SX 90-018: game extension (identical to the TO7) - - RF 57-932: RS232 extension (identical to the TO7) - - MD 90-120: MODEM extension (identical to the TO7) - - IEEE extension ? (unemulated) - - floppy: - . integrated floppy controller, based on WD2793 - . integrated one-sided double-density 3"1/2 - . external two-sided double-density 3"1/2, 5"1/4 or QDD (extension) - . floppies are TO7 and MO5 compatible - - speech synthesis extension: identical to TO7 - - MIDIPAK MIDI extension: identical to TO7 - -**********************************************************************/ - -static ADDRESS_MAP_START ( to9, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x3fff ) AM_ROMBANK ( THOM_CART_BANK )/* 12 * 16 KB */ - AM_WRITE ( to9_cartridge_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x6000, 0x9fff ) AM_RAM /* unbanked memory 16 KB */ - AM_RANGE ( 0xa000, 0xdfff ) AM_RAMBANK ( THOM_RAM_BANK )/* 10 * 16 KB */ - AM_RANGE ( 0xe000, 0xe7af ) AM_ROM /* floppy BIOS */ - AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_READWRITE ( mc6846_r, mc6846_w ) - AM_RANGE ( 0xe7c8, 0xe7cb ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xe7cc, 0xe7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xe7d0, 0xe7d9 ) AM_READWRITE ( to9_floppy_r, to9_floppy_w ) - AM_RANGE ( 0xe7da, 0xe7dd ) AM_READWRITE ( to9_vreg_r, to9_vreg_w ) - AM_RANGE ( 0xe7de, 0xe7df ) AM_READWRITE ( to9_kbd_r, to9_kbd_w ) - AM_RANGE ( 0xe7e4, 0xe7e7 ) AM_READWRITE ( to9_gatearray_r, - to9_gatearray_w ) - AM_RANGE ( 0xe7e8, 0xe7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) -/* AM_RANGE ( 0xe7f0, 0xe7f7 ) AM_READWRITE ( to9_ieee_r, to9_ieee_w ) */ - AM_RANGE ( 0xe7f2, 0xe7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xe7f8, 0xe7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xe7fe, 0xe7ff ) AM_READWRITE ( to7_modem_mea8000_r, - to7_modem_mea8000_w ) - AM_RANGE ( 0xe800, 0xffff ) AM_ROM /* system bios */ - -/* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ -/* 0x20000 - 0x3ffff: 128 KB internal software ROM */ -/* 0x40000 - 0x67fff: 160 KB banked RAM */ -/* 0x68000 - 0x6bfff: 16 KB video RAM */ - -ADDRESS_MAP_END - - - -/* ------------ ROMS ------------ */ - -/* NOT WORKING - these bios seem heavily patched (probably to work with specific emulators - that trap some bios calls) - */ - -ROM_START ( to9 ) - ROM_REGION ( 0x6c000, REGION_CPU1, 0 ) - ROM_LOAD ( "to9.rom", 0xe000, 0x2000, /* BIOS & floppy controller */ - CRC(f9278bf7) - MD5(507f0c482462b70b816fd23cf6791179) ) - - /* BASIC & software */ - ROM_LOAD ( "basic9-0.rom", 0x20000, 0x4000, - CRC(c7bac620) - MD5(095d0f94ab506ab5da1e73ae550ee2bc) ) - ROM_LOAD ( "basic9-1.rom", 0x24000, 0x4000, - CRC(ea5f3e43) - MD5(ce29a894c31db083acf6bdf015a02b5e) ) - ROM_LOAD ( "basic9-2.rom", 0x28000, 0x4000, - CRC(0f5581b3) - MD5(02279e22b8bfe29e750fb62671e3951d) ) - ROM_LOAD ( "basic9-3.rom", 0x2c000, 0x4000, - CRC(6b5b19e3) - MD5(dac4b33a8cbebf64916b35515e0693c8) ) - ROM_LOAD ( "soft9-0a.rom", 0x30000, 0x4000, - CRC(8cee157e) - MD5(3dab712e800351b4f639790595b12101) ) - ROM_LOAD ( "soft9-1a.rom", 0x34000, 0x4000, - CRC(cf39ac93) - MD5(bcd744cdbd022cd9e2651e87792cd742) ) - ROM_LOAD ( "soft9-0b.rom", 0x38000, 0x4000, - CRC(033aee3f) - MD5(1a4d3549c78328479361e867d240f285) ) - ROM_LOAD ( "soft9-1b.rom", 0x3c000, 0x4000, - CRC(214fe527) - MD5(3dc2820fbe7b81a3936f731b44f23cbe) ) - - ROM_FILL( 0x10000, 0x10000, 0x39 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( to9_keyboard ) - PORT_START_TAG ( "keyboard_0" ) - KEY ( 0, "F2 F7", F2 ) - KEY ( 1, "_ 6", 6 ) - KEY ( 2, "Y", Y ) - KEY ( 3, "H \302\250", H ) - KEY ( 4, "UP", UP ) - KEY ( 5, "RIGHT", RIGHT ) - KEY ( 6, "HOME CLEAR", HOME ) - KEY ( 7, "N", N ) - PORT_START_TAG ( "keyboard_1" ) - KEY ( 0, "F3 F8", F3 ) - KEY ( 1, "( 5", 5 ) - KEY ( 2, "T", T ) - KEY ( 3, "G", G ) - KEY ( 4, "= +", EQUALS ) - KEY ( 5, "LEFT", LEFT ) - KEY ( 6, "INS", INSERT ) - KEY ( 7, "B \302\264", B ) - PORT_START_TAG ( "keyboard_2" ) - KEY ( 0, "F4 F9", F4 ) - KEY ( 1, "' 4", 4 ) - KEY ( 2, "R", R ) - KEY ( 3, "F", F ) - KEY ( 4, "ACCENT", END ) - KEY ( 5, "1-PAD", 1_PAD ) - KEY ( 6, "DELETE BACKSPACE", DEL ) - KEY ( 7, "V", V ) - PORT_START_TAG ( "keyboard_3" ) - KEY ( 0, "F5 F10", F5 ) - KEY ( 1, "\" 3", 3 ) - KEY ( 2, "E", E ) - KEY ( 3, "D", D ) - KEY ( 4, "7-PAD", 7_PAD ) - KEY ( 5, "4-PAD", 4_PAD ) - KEY ( 6, "0-PAD", 0_PAD ) - KEY ( 7, "C \136", C ) - PORT_START_TAG ( "keyboard_4" ) - KEY ( 0, "F1 F6", F1 ) - KEY ( 1, "\303\251 2", 2 ) - KEY ( 2, "Z", Z ) - KEY ( 3, "S", S ) - KEY ( 4, "8-PAD", 8_PAD ) - KEY ( 5, "2-PAD", 2_PAD ) - KEY ( 6, ".-PAD", DEL_PAD ) - KEY ( 7, "X", X ) - PORT_START_TAG ( "keyboard_5" ) - KEY ( 0, "# @", TILDE ) - KEY ( 1, "* 1", 1 ) - KEY ( 2, "A \140", A ) - KEY ( 3, "Q", Q ) - KEY ( 4, "[ {", QUOTE ) - KEY ( 5, "5-PAD", 5_PAD ) - KEY ( 6, "6-PAD", 6_PAD ) - KEY ( 7, "W", W ) - PORT_START_TAG ( "keyboard_6" ) - KEY ( 0, "STOP", TAB ) - KEY ( 1, "\303\250 7", 7 ) - KEY ( 2, "U", U ) - KEY ( 3, "J", J ) - KEY ( 4, "SPACE", SPACE ) - KEY ( 5, "9-PAD", 9_PAD ) - KEY ( 6, "ENTER-PAD", ENTER_PAD ) - KEY ( 7, ", ?", COMMA ) - PORT_START_TAG ( "keyboard_7" ) - KEY ( 0, "CONTROL", LCONTROL ) - KEY ( 1, "! 8", 8 ) - KEY ( 2, "I", I ) - KEY ( 3, "K", K ) - KEY ( 4, "$ &", CLOSEBRACE ) - KEY ( 5, "DOWN", DOWN ) - KEY ( 6, "] }", BACKSLASH ) - KEY ( 7, "; .", STOP ) - PORT_START_TAG ( "keyboard_8" ) - KEY ( 0, "CAPS-LOCK", CAPSLOCK ) - KEY ( 1, "\303\247 9", 9 ) - KEY ( 2, "O", O ) - KEY ( 3, "L", L ) - KEY ( 4, "- \\", BACKSPACE ) - KEY ( 5, "\303\271 %", COLON ) - KEY ( 6, "ENTER", ENTER ) - KEY ( 7, ": /", SLASH ) - PORT_START_TAG ( "keyboard_9" ) - KEY ( 0, "SHIFT", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) - KEY ( 1, "\303\240 0", 0 ) - KEY ( 2, "P", P ) - KEY ( 3, "M", M ) - KEY ( 4, ") \302\260", MINUS ) - KEY ( 5, "\342\206\221 \302\250", OPENBRACE ) - KEY ( 6, "3-PAD", 3_PAD ) - KEY ( 7, "> <", BACKSLASH2 ) -INPUT_PORTS_END - -INPUT_PORTS_START ( to9_fconfig ) - PORT_START_TAG ( "fconfig" ) -INPUT_PORTS_END - -INPUT_PORTS_START ( to9 ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( to9_keyboard ) - PORT_INCLUDE ( to7_config ) - PORT_INCLUDE ( to9_fconfig ) - PORT_INCLUDE ( to7_vconfig ) - PORT_INCLUDE ( to7_mconfig ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( to9 ) - CONFIG_IMPORT_FROM ( to7 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( to9 ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( to9 ) - MDRV_MACHINE_RESET ( to9 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( to9, 0 ) -MACHINE_DRIVER_END - - -COMP ( 1985, to9, 0, 0, to9, to9, NULL, to9, "Thomson", "TO9", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - -/******************************** TO8 ******************************** - -TO8 (1986) ---- - -The TO8 was meant to replace the TO7/70 as a home-computer. -It includes and improves on the technology from the TO9 (improved video, -256 KB of RAM fully managed by the new BASIC 512, more integrated gate-array). -It has a more compact Amiga-like look, no separate keyboard, no integrated -floppy drive (although the controller is integrated), no software in ROM, -less extension slots. Also, the game & music extension is now integrated. -It is quite compatible with the TO7 and TO7/70, and with the TO9 to some -extent. -The TO8 was quite popular and became the de-facto gamming computer in the -Thomson family. - -* chips: - - 1 MHz Motorola 6809E CPU - - 2 Motorola 6821 PIAs (system, game, +1 in modem extension) - - 1 Motorola 6846 timer, PIA - - 1 Motorola 6804 (keyboard) - - 2 gate-arrays (system & video, floppy controller) - -* memory: - - 256 KB base RAM - + 256 KB extended RAM (EM 88-256) = 512 KB total RAM emulated - - 16 KB BIOS ROM - - 64 KB software ROM (BASIC 1, BASIC 512, extended BIOS) - - unified memory view via improved bank switching - -* video: - improved wrt TO9: a 9-th video mode, 4 video pages (shared with main RAM) - border color has its 4-th index bit inverted - -* devices: - - same keyboard as T09: AZERTY 81-keys - (but no 6850 controller, the 6804 is directly connected to the 6821 & 6846) - - cartridge, up to 64 KB, TO7 compatible - - two-button serial mouse (TO9-incompatible) - - lightpen, with 1-pixel vertical and horizontal resolution - - two 8-position 2-button game pads (SX 90-018 extension integrated) - - 6-bit DAC sound (NOTE: 1-bit buzzer is gone) - - cassette 900 bauds, TO7 compatible - - integrated parallel CENTRONICS (printer emulated) - - RF 57-932: RS232 extension (identical to the TO7) - - MD 90-120: MODEM extension (identical to the TO7?) - - IEEE extension ? - - floppy: - . integrated floppy controller, based on custom Thomson gate-array - . no integrated drive - . up to two external two-sided double-density 3"1/2, 5"1/4 or QDD drives - . floppies are TO7 and MO5 compatible - - speech synthesis extension: identical to TO7 - - MIDIPAK MIDI extension: identical to TO7 - -TO8D (1987) ----- - -The TO8D is simply a TO8 with an integrated 3"1/2 floppy drive. - -**********************************************************************/ - - -static ADDRESS_MAP_START ( to8, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x3fff ) AM_RAMBANK ( THOM_CART_BANK ) /* 8 * 16 KB */ - AM_WRITE ( to8_cartridge_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x6000, 0x7fff ) AM_RAMBANK ( TO8_SYS_LO ) - AM_WRITE ( to8_sys_lo_w ) - AM_RANGE ( 0x8000, 0x9fff ) AM_RAMBANK ( TO8_SYS_HI ) - AM_WRITE ( to8_sys_hi_w ) - AM_RANGE ( 0xa000, 0xbfff ) AM_RAMBANK ( TO8_DATA_LO ) - AM_WRITE ( to8_data_lo_w ) - AM_RANGE ( 0xc000, 0xdfff ) AM_RAMBANK ( TO8_DATA_HI ) - AM_WRITE ( to8_data_hi_w ) - AM_RANGE ( 0xe000, 0xe7af ) AM_ROMBANK ( TO8_FLOP_BANK ) /* 2 * 2 KB */ - AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_READWRITE ( mc6846_r, mc6846_w ) - AM_RANGE ( 0xe7c8, 0xe7cb ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xe7cc, 0xe7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xe7d0, 0xe7d9 ) AM_READWRITE ( to8_floppy_r, to8_floppy_w ) - AM_RANGE ( 0xe7da, 0xe7dd ) AM_READWRITE ( to8_vreg_r, to8_vreg_w ) - AM_RANGE ( 0xe7e4, 0xe7e7 ) AM_READWRITE ( to8_gatearray_r, - to8_gatearray_w ) - AM_RANGE ( 0xe7e8, 0xe7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) -/* AM_RANGE ( 0xe7f0, 0xe7f7 ) AM_READWRITE ( to9_ieee_r, to9_ieee_w ) */ - AM_RANGE ( 0xe7f2, 0xe7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xe7f8, 0xe7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xe7fe, 0xe7ff ) AM_READWRITE ( to7_modem_mea8000_r, - to7_modem_mea8000_w ) - AM_RANGE ( 0xe800, 0xffff ) AM_ROMBANK ( TO8_BIOS_BANK ) /* 2 * 6 KB */ - -/* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ -/* 0x20000 - 0x2ffff: 64 KB internal software ROM */ -/* 0x30000 - 0xaffff: 512 KB total RAM (including video) */ -/* 0xb0000 - 0xb3fff: 16 KB BIOS ROM */ - -ADDRESS_MAP_END - - -/* ------------ ROMS ------------ */ - -ROM_START ( to8 ) - ROM_REGION ( 0xb4000, REGION_CPU1, 0 ) - - /* BIOS & floppy */ - ROM_LOAD ( "to8-0.rom", 0xb0000, 0x2000, - CRC(3c4a640a) - MD5(97c9b803305031daf6bffa671f7667c2) ) - ROM_LOAD ( "to8-1.rom", 0xb2000, 0x2000, - CRC(cb9bae2d) - MD5(6ca0ebe022f9c433373eaed403aaf0ce) ) - - /* BASIC */ - ROM_LOAD ( "basic8-0.rom", 0x20000, 0x4000, - CRC(e5a00fb3) - MD5(6c33e3cd79bd6c675634b172594bbfec) ) - ROM_LOAD ( "basic8-1.rom", 0x24000, 0x4000, - CRC(4b241e63) - MD5(360cbf42078bf8c80a283828bf6ee4e6) ) - ROM_LOAD ( "basic8-2.rom", 0x28000, 0x4000, - CRC(0f5581b3) - MD5(02279e22b8bfe29e750fb62671e3951d) ) - ROM_LOAD ( "basic8-3.rom", 0x2c000, 0x4000, - CRC(f552e7e3) - MD5(56c1e929ef4be6771cac7157d169132f) ) - - ROM_FILL( 0x10000, 0x10000, 0x39 ) -ROM_END - -ROM_START ( to8d ) - ROM_REGION ( 0xb4000, REGION_CPU1, 0 ) - - /* BIOS & floppy */ - ROM_LOAD ( "to8d-0.rom", 0xb0000, 0x2000, - CRC(30ea4950) - MD5(7704c1148b8761e9ce650ef1aa7ded69) ) - ROM_LOAD ( "to8d-1.rom", 0xb2000, 0x2000, - CRC(926cf0ca) - MD5(3e202c3914e16c5ede32ab2bd2a61a5e) ) - - /* BASIC */ - ROM_LOAD ( "basic8-0.rom", 0x20000, 0x4000, - CRC(e5a00fb3) - MD5(6c33e3cd79bd6c675634b172594bbfec) ) - ROM_LOAD ( "basic8-1.rom", 0x24000, 0x4000, - CRC(4b241e63) - MD5(360cbf42078bf8c80a283828bf6ee4e6) ) - ROM_LOAD ( "basic8-2.rom", 0x28000, 0x4000, - CRC(0f5581b3) - MD5(02279e22b8bfe29e750fb62671e3951d) ) - ROM_LOAD ( "basic8-3.rom", 0x2c000, 0x4000, - CRC(f552e7e3) - MD5(56c1e929ef4be6771cac7157d169132f) ) - - ROM_FILL( 0x10000, 0x10000, 0x39 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( to8_config ) - PORT_START_TAG ( "config" ) - - PORT_CONFNAME ( 0x01, 0x00, "Game Port" ) - PORT_CONFSETTING ( 0x00, DEF_STR( Joystick ) ) - PORT_CONFSETTING ( 0x01, "Mouse" ) - - PORT_CONFNAME ( 0x02, 0x00, "Keyboard" ) - PORT_CONFSETTING ( 0x00, "Enabled" ) - PORT_CONFSETTING ( 0x02, "Disabled" ) - -INPUT_PORTS_END - - -INPUT_PORTS_START ( to8 ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( to9_keyboard ) - PORT_INCLUDE ( to8_config ) - PORT_INCLUDE ( to9_fconfig ) - PORT_INCLUDE ( to7_vconfig ) - PORT_INCLUDE ( to7_mconfig ) -INPUT_PORTS_END - - -INPUT_PORTS_START ( to8d ) - PORT_INCLUDE ( to8 ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( to8 ) - CONFIG_IMPORT_FROM ( to7 ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START ( to8d ) - CONFIG_IMPORT_FROM ( to8 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( to8 ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( to8 ) - MDRV_MACHINE_RESET ( to8 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( to8, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START ( to8d ) - MDRV_IMPORT_FROM ( to8 ) -MACHINE_DRIVER_END - - -COMP ( 1986, to8, 0, 0, to8, to8, NULL, to8, "Thomson", "TO8", - 0 /*GAME_SUPPORTS_SAVE*/ ) - -COMP ( 1987, to8d, to8, 0, to8d, to8d, NULL, to8d, "Thomson", "TO8D", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - -/******************************** TO9+ ******************************* - -TO9+ (1986) ----- - -The TO9+ is the direct successor of the T09 as Thomson's high-end -product: desktop look, 512 KB of RAM, integrated floppy drive and -modem. Some software integrated in ROM on the TO9 are now supplied on -floppies. -Internally, the TO9+ is based more on TO8 technology than T09 -(same gate-arrays). -It has enhanced communication capabilities by integrating either the -MODEM or the RS232 extension. -It should be compatible with the TO9 and, to some extent, with the TO7, TO7/70 -and TO8. -It uses the same video gate-array and floppy controller. - -The differences with the TO8 are: - -* chips: - - 1 Motorola 6805 + 1 Motorola 6850 (keyboard) - - 3 Motorola 6821 PIAs (system, game, modem) - -* memory: - - 512 KB RAM (not extendable) - -* devices: - - same keyboard as T08/TO9 (AZERTY 81-keys) but different controller - - RF 57-932: RS232 (identical to the TO7) sometimes integrated - - MD 90-120: MODEM (identical to the TO7?) sometimes integrated - - IEEE extension ? - - floppy: one two-sided double-density 3"1/2 floppy drive is integrated - - RS 52-932 RS232 extension ? - - digitisation extension - -**********************************************************************/ - -static ADDRESS_MAP_START ( to9p, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x3fff ) AM_RAMBANK ( THOM_CART_BANK ) /* 8 * 16 KB */ - AM_WRITE ( to8_cartridge_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x6000, 0x7fff ) AM_RAMBANK ( TO8_SYS_LO ) - AM_WRITE ( to8_sys_lo_w ) - AM_RANGE ( 0x8000, 0x9fff ) AM_RAMBANK ( TO8_SYS_HI ) - AM_WRITE ( to8_sys_hi_w ) - AM_RANGE ( 0xa000, 0xbfff ) AM_RAMBANK ( TO8_DATA_LO ) - AM_WRITE ( to8_data_lo_w ) - AM_RANGE ( 0xc000, 0xdfff ) AM_RAMBANK ( TO8_DATA_HI ) - AM_WRITE ( to8_data_hi_w ) - AM_RANGE ( 0xe000, 0xe7af ) AM_ROMBANK ( TO8_FLOP_BANK ) /* 2 * 2 KB */ - AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_READWRITE ( mc6846_r, mc6846_w ) - AM_RANGE ( 0xe7c8, 0xe7cb ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xe7cc, 0xe7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xe7d0, 0xe7d9 ) AM_READWRITE ( to8_floppy_r, to8_floppy_w ) - AM_RANGE ( 0xe7da, 0xe7dd ) AM_READWRITE ( to8_vreg_r, to8_vreg_w ) - AM_RANGE ( 0xe7de, 0xe7df ) AM_READWRITE ( to9_kbd_r, to9_kbd_w ) - AM_RANGE ( 0xe7e4, 0xe7e7 ) AM_READWRITE ( to8_gatearray_r, - to8_gatearray_w ) - AM_RANGE ( 0xe7e8, 0xe7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) -/* AM_RANGE ( 0xe7f0, 0xe7f7 ) AM_READWRITE ( to9_ieee_r, to9_ieee_w ) */ - AM_RANGE ( 0xe7f2, 0xe7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xe7f8, 0xe7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xe7fe, 0xe7ff ) AM_READWRITE ( to7_modem_mea8000_r, - to7_modem_mea8000_w ) - AM_RANGE ( 0xe800, 0xffff ) AM_ROMBANK ( TO8_BIOS_BANK ) /* 2 * 6 KB */ - -/* 0x10000 - 0x1ffff: 64 KB external ROM cartridge */ -/* 0x20000 - 0x2ffff: 64 KB internal software ROM */ -/* 0x30000 - 0xaffff: 512 KB total RAM (including video) */ -/* 0xb0000 - 0xb3fff: 16 KB BIOS ROM */ - -ADDRESS_MAP_END - - -/* ------------ ROMS ------------ */ - -ROM_START ( to9p ) - ROM_REGION ( 0xb4000, REGION_CPU1, 0 ) - - /* BIOS & floppy */ - ROM_LOAD ( "to9p-0.rom", 0xb0000, 0x2000, - CRC(a2731296) - MD5(dfb6bfe5ae6142395fe4d1b854b7f6ff) ) - ROM_LOAD ( "to9p-1.rom", 0xb2000, 0x2000, - CRC(c52ce315) - MD5(66bba93895d27c788b25a8b48c8d3799) ) - - /* BASIC */ - ROM_LOAD ( "basicp-0.rom", 0x20000, 0x4000, - CRC(e5a00fb3) - MD5(6c33e3cd79bd6c675634b172594bbfec) ) - ROM_LOAD ( "basicp-1.rom", 0x24000, 0x4000, - CRC(4b241e63) - MD5(360cbf42078bf8c80a283828bf6ee4e6) ) - ROM_LOAD ( "basicp-2.rom", 0x28000, 0x4000, - CRC(0f5581b3) - MD5(02279e22b8bfe29e750fb62671e3951d) ) - ROM_LOAD ( "basicp-3.rom", 0x2c000, 0x4000, - CRC(ebe9c8d9) - MD5(67e7f2de15bcd2ee9dac7974da478901) ) - - ROM_FILL( 0x10000, 0x10000, 0x39 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( to9p ) - PORT_INCLUDE ( to8 ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( to9p ) - CONFIG_IMPORT_FROM ( to8 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( to9p ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( to9p ) - MDRV_MACHINE_RESET ( to9p ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( to9p, 0 ) -MACHINE_DRIVER_END - -COMP ( 1986, to9p, 0, 0, to9p, to9p, NULL, to9p, "Thomson", "TO9+", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - - -/******************************** MO6 ******************************** - -MO6 (1986) ---- - -The MO6 is the (long awaited) successor to the MO5. -It is based on TO8 technology (same system & video gate-array). -However, it is lower-end and cheaper: less memory (128 KB RAM, not -extensible), no floppy controller but an integrated cassette recorder. -The MO6 is MO5 compatible, but not compatible with the TO family. - -* chips: - - 1 MHz Motorola 6809E CPU - - 2 Motorola 6821 PIAs (system, game) - - 1 gate-array (system & video, identical to the TO8) - -* memory: - - 128 KB RAM (not extendable) - - 8 KB BIOS ROM - - 24 KB BASIC 1 ROM - - 32 KB BASIC 128 & extended BIOS ROM - -* video: - all modes from the TO8, but the TO7/70-compatible mode is replaced with - an MO5-compatible one - -* devices: - - AZERTY keyboard, 69 keys, no keyboard controller (scanning is done - periodically by the 6809) - - MO5-compatible cartridge - - two-button mouse (TO8-like) - - optional lightpen - - integrated game port (similar to SX 90-018) - . 6-bit DAC sound - . two 8-position 2-button game pads - . two-button mouse - - integrated cassette reader 1200 bauds (MO5 compatible) and 2400 bauds - - parallel CENTRONICS (printer emulated) - - RF 57-932: RS232 extension (identical to the TO7), or RF 90-932 (???) - - IEEE extension ? - - no integrated controller, but external TO7 floppy controllers & drives - are possible - - speech synthesis extension: identical to TO7 ? - - MIDIPAK MIDI extension: identical to TO7 ? - - -Olivetti Prodest PC 128 (1986) ------------------------ - -Italian version of the MO6, built by Thomson and sold by Olivetti. -Except from the ROM, it is very similar to the MO6. -Do not confuse with the Olivetti Prodest PC 128 Systema (or 128s) which is -based on the Acorn BBC Master Compact. Or with the Olivetti PC 1, which is -a PC XT. - - -**********************************************************************/ - -static ADDRESS_MAP_START ( mo6, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x1fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x2000, 0x3fff ) AM_RAMBANK ( TO8_SYS_LO ) - AM_WRITE ( to8_sys_lo_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( TO8_SYS_HI ) - AM_WRITE ( to8_sys_hi_w ) - AM_RANGE ( 0x6000, 0x7fff ) AM_RAMBANK ( TO8_DATA_LO ) - AM_WRITE ( to8_data_lo_w ) - AM_RANGE ( 0x8000, 0x9fff ) AM_RAMBANK ( TO8_DATA_HI ) - AM_WRITE ( to8_data_hi_w ) - AM_RANGE ( 0xa000, 0xa7bf ) AM_ROMBANK ( THOM_FLOP_BANK ) - AM_RANGE ( 0xa7c0, 0xa7c3 ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xa7cb, 0xa7cb ) AM_WRITE ( mo6_ext_w ) - AM_RANGE ( 0xa7cc, 0xa7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xa7d0, 0xa7d9 ) AM_READWRITE ( to7_floppy_r, to7_floppy_w ) - AM_RANGE ( 0xa7da, 0xa7dd ) AM_READWRITE ( mo6_vreg_r, mo6_vreg_w ) - AM_RANGE ( 0xa7e4, 0xa7e7 ) AM_READWRITE ( mo6_gatearray_r, - mo6_gatearray_w ) - AM_RANGE ( 0xa7e8, 0xa7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) -/* AM_RANGE ( 0xa7f0, 0xa7f7 ) AM_READWRITE ( to9_ieee_r, to9_ieee_w )*/ - AM_RANGE ( 0xa7f2, 0xa7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xa7fe, 0xa7ff ) AM_READWRITE ( mea8000_r, mea8000_w ) - AM_RANGE ( 0xb000, 0xefff ) AM_ROMBANK ( THOM_CART_BANK ) - AM_WRITE ( mo6_cartridge_w ) - AM_RANGE ( 0xf000, 0xffff ) AM_ROMBANK ( TO8_BIOS_BANK ) - -/* 0x10000 - 0x1ffff: 64 KB external cartridge */ -/* 0x20000 - 0x2ffff: 64 KB BIOS ROM */ -/* 0x30000 - 0x4ffff: 128 KB RAM */ -/* 0x50000 - 0x53fff: 16 KB floppy ROM controllers */ - -ADDRESS_MAP_END - - -/* ------------ ROMS ------------ */ - -ROM_START ( mo6 ) - ROM_REGION ( 0x54000, REGION_CPU1, 0 ) - - /* BIOS */ - ROM_LOAD ( "mo6-0.rom", 0x23000, 0x1000, - CRC(0446eef6) - MD5(192c44506f347b02030eb3ec862b850f) ) - ROM_LOAD ( "mo6-1.rom", 0x27000, 0x1000, - CRC(eb6df8d4) - MD5(7ff810d9b7e6900d8904336b6114ebd7) ) - - /* BASIC */ - ROM_LOAD ( "basic6-0.rom", 0x20000, 0x3000, - CRC(18789833) - MD5(08edc429b44e581b3c826ac81b06cd2b) ) - ROM_LOAD ( "basic6-1.rom", 0x24000, 0x3000, - CRC(c9b4d6f4) - MD5(03f82e6d26547dd23fca7c420b6952c4) ) - ROM_LOAD ( "basic6-2.rom", 0x28000, 0x4000, - CRC(08eac9bb) - MD5(4f5d0bb8dea45d85d8551c09888423d1) ) - ROM_LOAD ( "basic6-3.rom", 0x2c000, 0x4000, - CRC(19d66dc4) - MD5(c2c4dab28d42adf4ea264270ea889c4f) ) - - ROM_FLOPPY5 ( 0x50000 ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) -ROM_END - -ROM_START ( pro128 ) - ROM_REGION ( 0x54000, REGION_CPU1, 0 ) - - /* BIOS */ - ROM_LOAD ( "pro128-0.rom", 0x23000, 0x1000, - CRC(a8aef291) - MD5(b7d937421754b79587050208b8c3beb2) ) - ROM_LOAD ( "pro128-1.rom", 0x27000, 0x1000, - CRC(5b3340ec) - MD5(9b7f4505195d12a5efceaac26bcb4079) ) - - /* BASIC */ - ROM_LOAD ( "basico-0.rom", 0x20000, 0x3000, - CRC(98b10d5e) - MD5(96ce523fe27cd3935195f4218deb6277) ) - ROM_LOAD ( "basico-1.rom", 0x24000, 0x3000, - CRC(721d2124) - MD5(73cfdcd1638932ef8ebc639cbc6e2dd0) ) - ROM_LOAD ( "basico-2.rom", 0x28000, 0x4000, - CRC(135438ab) - MD5(d155a93aa1a2b1b5102bb5e0acdb3391) ) - ROM_LOAD ( "basico-3.rom", 0x2c000, 0x4000, - CRC(2c2befa6) - MD5(5e31d779961ed1ae7fc800489277f96a) ) - - ROM_FLOPPY5 ( 0x50000 ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) -ROM_END - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( mo6_keyboard ) - - PORT_START_TAG ( "keyboard_0" ) - KEY ( 0, "N", N ) - KEY ( 1, ", ?", COMMA ) - KEY ( 2, "; .", STOP ) - KEY ( 3, "# @", TILDE ) - KEY ( 4, "SPACE", SPACE ) - KEY ( 5, "X", X ) - KEY ( 6, "W", W ) - KEY ( 7, "SHIFT", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) - PORT_START_TAG ( "keyboard_1" ) - KEY ( 0, "DELETE BACKSPACE", DEL ) - KEY ( 1, "INS", INSERT ) - KEY ( 2, "> <", BACKSLASH2 ) - KEY ( 3, "RIGHT", RIGHT ) - KEY ( 4, "DOWN", DOWN ) - KEY ( 5, "LEFT", LEFT ) - KEY ( 6, "UP", UP ) - KEY ( 7, "BASIC", RCONTROL ) - PORT_START_TAG ( "keyboard_2" ) - KEY ( 0, "J", J ) - KEY ( 1, "K", K ) - KEY ( 2, "L", L ) - KEY ( 3, "M", M ) - KEY ( 4, "B \302\264", B ) - KEY ( 5, "V", V ) - KEY ( 6, "C \136", C ) - KEY ( 7, "CAPS-LOCK", CAPSLOCK ) - PORT_START_TAG ( "keyboard_3" ) - KEY ( 0, "H \302\250", H ) - KEY ( 1, "G", G ) - KEY ( 2, "F", F ) - KEY ( 3, "D", D ) - KEY ( 4, "S", S ) - KEY ( 5, "Q", Q ) - KEY ( 6, "HOME CLEAR", HOME ) - KEY ( 7, "F1 F6", F1 ) - PORT_START_TAG ( "keyboard_4" ) - KEY ( 0, "U", U ) - KEY ( 1, "I", I ) - KEY ( 2, "O", O ) - KEY ( 3, "P", P ) - KEY ( 4, ": /", SLASH ) - KEY ( 5, "$ &", CLOSEBRACE ) - KEY ( 6, "ENTER", ENTER ) - KEY ( 7, "F2 F7", F2 ) - PORT_START_TAG ( "keyboard_5" ) - KEY ( 0, "Y", Y ) - KEY ( 1, "T", T ) - KEY ( 2, "R", R ) - KEY ( 3, "E", E ) - KEY ( 4, "Z", Z ) - KEY ( 5, "A \140", A ) - KEY ( 6, "CONTROL", LCONTROL ) - KEY ( 7, "F3 F8", F3 ) - PORT_START_TAG ( "keyboard_6" ) - KEY ( 0, "7 \303\250", 7 ) - KEY ( 1, "8 !", 8 ) - KEY ( 2, "9 \303\247", 9 ) - KEY ( 3, "0 \303\240", 0 ) - KEY ( 4, "- \\", BACKSPACE ) - KEY ( 5, "= +", EQUALS ) - KEY ( 6, "ACCENT", END ) - KEY ( 7, "F4 F9", F4 ) - PORT_START_TAG ( "keyboard_7" ) - KEY ( 0, "6 _", 6 ) - KEY ( 1, "5 (", 5 ) - KEY ( 2, "4 '", 4 ) - KEY ( 3, "3 \"", 3 ) - KEY ( 4, "2 \303\251", 2 ) - KEY ( 5, "1 *", 1 ) - KEY ( 6, "STOP", TAB ) - KEY ( 7, "F5 F10", F5 ) - PORT_START_TAG ( "keyboard_8" ) - KEY ( 0, "[ {", QUOTE ) - KEY ( 1, "] }", BACKSLASH ) - KEY ( 2, ") \302\260", MINUS ) - KEY ( 3, "\342\206\221 \302\250", OPENBRACE ) - KEY ( 4, "\303\271 %", COLON ) - PORT_BIT ( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* unused */ - PORT_START_TAG ( "keyboard_9" ) - -INPUT_PORTS_END - -/* QWERTY version */ -INPUT_PORTS_START ( pro128_keyboard ) - PORT_INCLUDE ( mo6_keyboard ) - - PORT_MODIFY ( "keyboard_0" ) - KEY ( 1, "M", M ) - KEY ( 2, ", ;", COMMA ) - KEY ( 3, "[ {", QUOTE ) - KEY ( 6, "Z", Z ) - KEY ( 7, "SHIFT", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) - PORT_MODIFY ( "keyboard_1" ) - KEY ( 2, "- _", MINUS ) - PORT_MODIFY ( "keyboard_2" ) - KEY ( 3, "\303\221", TILDE ) - PORT_MODIFY ( "keyboard_3" ) - KEY ( 5, "A \140", A ) - PORT_MODIFY ( "keyboard_4" ) - KEY ( 4, ". :", STOP ) - KEY ( 5, "+ *", BACKSPACE ) - PORT_MODIFY ( "keyboard_5" ) - KEY ( 4, "W", W ) - KEY ( 5, "Q", Q ) - PORT_MODIFY ( "keyboard_6" ) - KEY ( 0, "7 /", 7 ) - KEY ( 1, "8 (", 8 ) - KEY ( 2, "9 )", 9 ) - KEY ( 3, "0 =", 0 ) - KEY ( 4, "' \302\243", CLOSEBRACE ) - KEY ( 5, "] }", BACKSLASH ) - PORT_MODIFY ( "keyboard_7" ) - KEY ( 0, "6 &", 6 ) - KEY ( 1, "5 %", 5 ) - KEY ( 2, "4 $", 4 ) - KEY ( 3, "3 \302\247", 3 ) - KEY ( 4, "2 \"", 2 ) - KEY ( 5, "1 !", 1 ) - PORT_MODIFY ( "keyboard_8" ) - KEY ( 0, "> <", BACKSLASH2 ) - KEY ( 1, "# \342\206\221", EQUALS ) - KEY ( 2, "\303\247 ?", COLON ) - KEY ( 3, "\302\277 @", SLASH ) - KEY ( 4, "\302\241 \302\250", OPENBRACE ) - -INPUT_PORTS_END - - -INPUT_PORTS_START ( mo6 ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( mo6_keyboard ) - PORT_INCLUDE ( to7_config ) - PORT_INCLUDE ( to7_fconfig ) - PORT_INCLUDE ( to7_vconfig ) -INPUT_PORTS_END - -INPUT_PORTS_START ( pro128 ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( pro128_keyboard ) - PORT_INCLUDE ( to7_config ) - PORT_INCLUDE ( to7_fconfig ) - PORT_INCLUDE ( to7_vconfig ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( mo6 ) - CONFIG_IMPORT_FROM ( mo5 ) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START ( pro128 ) - CONFIG_IMPORT_FROM ( mo6 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( mo6 ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( mo6 ) - MDRV_MACHINE_RESET ( mo6 ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( mo6, 0 ) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START ( pro128 ) - MDRV_IMPORT_FROM ( mo6 ) -MACHINE_DRIVER_END - -COMP ( 1986, mo6, 0, 0, mo6, mo6, NULL, mo6, "Thomson", "MO6", - 0 /*GAME_SUPPORTS_SAVE*/ ) - -COMP ( 1986, pro128, mo6, 0, pro128, pro128, NULL, pro128, "Olivetti / Thomson", "Prodest PC 128", - 0 /*GAME_SUPPORTS_SAVE*/ ) - - - - -/****************************** MO5NR ******************************** - -MO5 NR (1986) ------- - -Despite its name, the MO5 NR is much more related to the MO6 than to the MO5. -It can be though as the network-enhanced version of the MO6. -It is both MO5 and MO6 compatible (but not TO-compatible). - -Here are the differences between the MO6 and MO5NR: - -* chips: - - integrated MC 6854 network controller - -* memory: - - extra 2 KB ROM for the integrated network controller, - can be masked by the ROM from the external floppy controller - -* video: identical - -* devices: - - AZERTY keyboard has only 58 keys, and no caps-lock led - - CENTRONICS printer handled differently - - MO5-compatible network (probably identical to NR 07-005 extension) - - extern floppy controller & drive possible, masks the network - -**********************************************************************/ - -static ADDRESS_MAP_START ( mo5nr, ADDRESS_SPACE_PROGRAM, 8 ) - - AM_RANGE ( 0x0000, 0x1fff ) AM_RAMBANK ( THOM_VRAM_BANK ) - AM_WRITE ( to770_vram_w ) - AM_RANGE ( 0x2000, 0x3fff ) AM_RAMBANK ( TO8_SYS_LO ) - AM_WRITE ( to8_sys_lo_w ) - AM_RANGE ( 0x4000, 0x5fff ) AM_RAMBANK ( TO8_SYS_HI ) - AM_WRITE ( to8_sys_hi_w ) - AM_RANGE ( 0x6000, 0x7fff ) AM_RAMBANK ( TO8_DATA_LO ) - AM_WRITE ( to8_data_lo_w ) - AM_RANGE ( 0x8000, 0x9fff ) AM_RAMBANK ( TO8_DATA_HI ) - AM_WRITE ( to8_data_hi_w ) - AM_RANGE ( 0xa000, 0xa7bf ) AM_ROMBANK ( THOM_FLOP_BANK ) - AM_RANGE ( 0xa7c0, 0xa7c3 ) AM_READWRITE ( pia_0_r, pia_0_w ) - AM_RANGE ( 0xa7cb, 0xa7cb ) AM_WRITE ( mo6_ext_w ) - AM_RANGE ( 0xa7cc, 0xa7cf ) AM_READWRITE ( pia_1_r, pia_1_w ) - AM_RANGE ( 0xa7d0, 0xa7d9 ) AM_READWRITE ( mo5nr_net_r, mo5nr_net_w ) - AM_RANGE ( 0xa7da, 0xa7dd ) AM_READWRITE ( mo6_vreg_r, mo6_vreg_w ) - AM_RANGE ( 0xa7e0, 0xa7e3 ) AM_READWRITE ( mo5nr_prn_r, mo5nr_prn_w ) - AM_RANGE ( 0xa7e4, 0xa7e7 ) AM_READWRITE ( mo6_gatearray_r, - mo6_gatearray_w ) - AM_RANGE ( 0xa7e8, 0xa7eb ) AM_READWRITE ( acia_6551_r, acia_6551_w ) -/* AM_RANGE ( 0xa7f0, 0xa7f7 ) AM_READWRITE ( to9_ieee_r, to9_ieee_w ) */ - AM_RANGE ( 0xa7f2, 0xa7f3 ) AM_READWRITE ( to7_midi_r, to7_midi_w ) - AM_RANGE ( 0xa7f8, 0xa7fb ) AM_READWRITE ( pia_3_r, pia_3_w ) - AM_RANGE ( 0xa7fe, 0xa7ff ) AM_READWRITE ( mea8000_r, mea8000_w ) - AM_RANGE ( 0xb000, 0xefff ) AM_RAMBANK ( THOM_CART_BANK ) /* 8 * 16 KB */ - AM_WRITE ( mo6_cartridge_w ) - AM_RANGE ( 0xf000, 0xffff ) AM_ROMBANK ( TO8_BIOS_BANK ) - -/* 0x10000 - 0x1ffff: 64 KB external cartridge */ -/* 0x20000 - 0x2ffff: 64 KB BIOS ROM */ -/* 0x30000 - 0x4ffff: 128 KB RAM */ -/* 0x50000 - 0x53fff: 16 KB floppy ROM controllers */ - -ADDRESS_MAP_END - - -/* ------------ ROMS ------------ */ - -ROM_START ( mo5nr ) - ROM_REGION ( 0x54000, REGION_CPU1, 0 ) - - /* BIOS */ - ROM_LOAD ( "mo5nr-0.rom", 0x23000, 0x1000, - CRC(06e31115) - MD5(5826a0190d7d0eb9a03c327072198a5d) ) - ROM_LOAD ( "mo5nr-1.rom", 0x27000, 0x1000, - CRC(7cda17c9) - MD5(ede3dd012cd15ad5066581522ce724b5) ) - - /* BASIC */ - ROM_LOAD ( "basicn-0.rom", 0x20000, 0x3000, - CRC(fae9e691) - MD5(03c7d856a17b34c7b295b22038c89c8f) ) - ROM_LOAD ( "basicn-1.rom", 0x24000, 0x3000, - CRC(cf134dd7) - MD5(e8069cd0857735e856ac0125b473b696) ) - ROM_LOAD ( "basicn-2.rom", 0x28000, 0x4000, - CRC(b69d2e0d) - MD5(cd11f0244c0cd30fd315c14e83b21381) ) - ROM_LOAD ( "basicn-3.rom", 0x2c000, 0x4000, - CRC(7785610f) - MD5(c67c65ac66c5f82bea3fcb83c2308a51) ) - - ROM_FLOPPY5 ( 0x50000 ) - ROM_FILL ( 0x10000, 0x10000, 0x39 ) /* TODO: network ROM */ -ROM_END - - - - -/* ------------ inputs ------------ */ - -INPUT_PORTS_START ( mo5nr_keyboard ) - - PORT_START_TAG ( "keyboard_0" ) - KEY ( 0, "N", N ) - KEY ( 1, ", <", COMMA ) - KEY ( 2, ". >", STOP ) - KEY ( 3, "@ \342\206\221", TILDE ) - KEY ( 4, "SPACE CAPS-LOCK", SPACE ) - KEY ( 5, "X", X ) - KEY ( 6, "W", W ) - KEY ( 7, "SHIFT", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) - PORT_START_TAG ( "keyboard_1" ) - KEY ( 0, "DELETE", DEL ) - KEY ( 1, "INS", INSERT ) - KEY ( 2, "HOME", HOME ) - KEY ( 3, "RIGHT", RIGHT ) - KEY ( 4, "DOWN", DOWN ) - KEY ( 5, "LEFT", LEFT ) - KEY ( 6, "UP", UP ) - KEY ( 7, "BASIC", RCONTROL ) - PORT_START_TAG ( "keyboard_2" ) - KEY ( 0, "J", J ) - KEY ( 1, "K", K ) - KEY ( 2, "L", L ) - KEY ( 3, "M", M ) - KEY ( 4, "B \140", B ) - KEY ( 5, "V", V ) - KEY ( 6, "C \136", C ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_3" ) - KEY ( 0, "H \302\250", H ) - KEY ( 1, "G", G ) - KEY ( 2, "F", F ) - KEY ( 3, "D", D ) - KEY ( 4, "S", S ) - KEY ( 5, "Q", Q ) - KEY ( 6, "CLEAR", ESC ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_4" ) - KEY ( 0, "U", U ) - KEY ( 1, "I", I ) - KEY ( 2, "O", O ) - KEY ( 3, "P", P ) - KEY ( 4, "/ ?", SLASH ) - KEY ( 5, "* :", QUOTE ) - KEY ( 6, "ENTER", ENTER ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_5" ) - KEY ( 0, "Y", Y ) - KEY ( 1, "T", T ) - KEY ( 2, "R", R ) - KEY ( 3, "E", E ) - KEY ( 4, "Z", Z ) - KEY ( 5, "A \140", A ) - KEY ( 6, "CONTROL", LCONTROL ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_6" ) - KEY ( 0, "7 ' \303\250", 7 ) - KEY ( 1, "8 ( \303\271", 8 ) - KEY ( 2, "9 ) \303\247", 9 ) - KEY ( 3, "0 \303\240", 0 ) - KEY ( 4, "- =", MINUS ) - KEY ( 5, "+ ;", EQUALS ) - KEY ( 6, "ACCENT", END ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG ( "keyboard_7" ) - KEY ( 0, "6 & \303\251", 6 ) - KEY ( 1, "5 %", 5 ) - KEY ( 2, "4 $", 4 ) - KEY ( 3, "3 #", 3 ) - KEY ( 4, "2 \"", 2 ) - KEY ( 5, "1 !", 1 ) - KEY ( 6, "STOP", TAB ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* unused */ - PORT_START_TAG ( "keyboard_8" ) - PORT_START_TAG ( "keyboard_9" ) - -INPUT_PORTS_END - -INPUT_PORTS_START ( mo5nr ) - PORT_INCLUDE ( thom_lightpen ) - PORT_INCLUDE ( thom_game_port ) - PORT_INCLUDE ( mo5nr_keyboard ) - PORT_INCLUDE ( to7_config ) - PORT_INCLUDE ( to7_fconfig ) - PORT_INCLUDE ( to7_vconfig ) -INPUT_PORTS_END - - -/* ------------ config ------------ */ - -SYSTEM_CONFIG_START ( mo5nr ) - CONFIG_IMPORT_FROM ( mo6 ) -SYSTEM_CONFIG_END - - -/* ------------ driver ------------ */ - -static MACHINE_DRIVER_START ( mo5nr ) - MDRV_IMPORT_FROM ( to7 ) - MDRV_MACHINE_START ( mo5nr ) - MDRV_MACHINE_RESET ( mo5nr ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP ( mo5nr, 0 ) -MACHINE_DRIVER_END - -COMP ( 1986, mo5nr, 0, 0, mo5nr, mo5nr, NULL, mo5nr, "Thomson", "MO5 NR", - 0 /*GAME_SUPPORTS_SAVE*/ ) diff --git a/mess/systems/ti85.c b/mess/systems/ti85.c deleted file mode 100644 index 533bc0a9f..000000000 --- a/mess/systems/ti85.c +++ /dev/null @@ -1,560 +0,0 @@ -/*************************************************************************** -TI-85 and TI-86 drivers by Krzysztof Strzecha - -Notes: -1. After start TI-85 waits for ON key interrupt, so press ON key to start - calculator. -2. Only difference beetwen all TI-85 drivers is ROM version. -3. TI-86 is TI-85 with more RAM and ROM. -4. Only difference beetwen all TI-86 drivers is ROM version. -5. Video engine (with grayscale support) based on the idea found in VTI source - emulator written by Rusty Wagner. -6. NVRAM is saved properly only when calculator is turned off before exiting MESS. -7. To receive data from TI press "R" immediately after TI starts to send data. -8. To request screen dump from calculator press "S". -9. TI-81 have not serial link. - -Needed: -1. Info about ports 3 (bit 2 seems to be allways 0) and 4. -2. Any info on TI-81 hardware. -3. ROM dumps of unemulated models. -4. Artworks. - -New: -05/10/2002 TI-85 serial link works again. -17/09/2002 TI-85 snapshots loading fixed. Few code cleanups. - TI-86 SNAPSHOT LOADING DOESNT WORK. - TI-85, TI-86 SERIAL LINK DOESNT WORK. -08/09/2001 TI-81, TI-85, TI-86 modified to new core. - TI-81, TI-85, TI-86 reset corrected. -21/08/2001 TI-81, TI-85, TI-86 NVRAM corrected. -20/08/2001 TI-81 ON/OFF fixed. - TI-81 ROM bank switching added (port 5). - TI-81 NVRAM support added. -15/08/2001 TI-81 kayboard is now mapped as it should be. -14/08/2001 TI-81 preliminary driver added. -05/07/2001 Serial communication corrected (transmission works now after reset). -02/07/2001 Many source cleanups. - PCR added. -01/07/2001 Possibility to request screen dump from TI (received dumps are saved - as t85i file). -29/06/2001 Received variables can be saved now. -19/06/2001 Possibility to receive variables from calculator (they are nor saved - yet). -17/06/2001 TI-86 reset fixed. -15/06/2001 Possibility to receive memory backups from calculator. -07/06/2001 TI-85 reset fixed. - Work on receiving data from calculator started. -04/06/2001 TI-85 is able to receive variables and memory backups. -14/05/2001 Many source cleanups. -11/05/2001 Release years corrected. Work on serial link started. -26/04/2001 NVRAM support added. -25/04/2001 Video engine totaly rewriten so grayscale works now. -17/04/2001 TI-86 snapshots loading added. - ti86grom driver added. -16/04/2001 Sound added. - Five TI-86 drivers added (all features of TI-85 drivers without - snapshot loading). -13/04/2001 Snapshot loading (VTI 2.0 save state files). -18/02/2001 Palette (not perfect). - Contrast control (port 2) implemented. - LCD ON/OFF implemented (port 3). - Interrupts corrected (port 3) - ON/OFF and APD works now. - Artwork added. -09/02/2001 Keypad added. - 200Hz timer interrupts implemented. - ON key and its interrupts implemented. - Calculator is now fully usable. -02/02/2001 Preliminary driver - -To do: -- port 7 (TI-86) -- port 4 (all models) -- artwork (all models) -- add TI-82, TI-83 and TI-83+ drivers - - -TI-81 memory map - - CPU: Z80 2MHz - 0000-7fff ROM - 8000-ffff RAM (?) - -TI-85 memory map - - CPU: Z80 6MHz - 0000-3fff ROM 0 - 4000-7fff ROM 1-7 (switched) - 8000-ffff RAM - -TI-86 memory map - - CPU: Z80 6MHz - 0000-3fff ROM 0 - 4000-7fff ROM 0-15 or RAM 0-7 (switched) - 7000-bfff ROM 0-15 or RAM 0-7 (switched) - c000-ffff RAM 0 - -Interrupts: - - IRQ: 200Hz timer - ON key - -TI-81 ports: - 0: Video buffer offset (write only) - 1: Keypad - 2: Contrast (write only) - 3: ON status, LCD power - 4: Video buffer width, interrupt control (write only) - 5: ? - 6: - 7: ? - -TI-85 ports: - 0: Video buffer offset (write only) - 1: Keypad - 2: Contrast (write only) - 3: ON status, LCD power - 4: Video buffer width, interrupt control (write only) - 5: Memory page - 6: Power mode - 7: Link - -TI-86 ports: - 0: Video buffer offset (write only) - 1: Keypad - 2: Contrast (write only) - 3: ON status, LCD power - 4: Power mode - 5: Memory page - 6: Memory page - 7: Link - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/generic.h" -#include "includes/ti85.h" -#include "devices/snapquik.h" - -/* port i/o functions */ - -ADDRESS_MAP_START( ti81_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE( ti85_port_0000_r, ti85_port_0000_w ) - AM_RANGE(0x0001, 0x0001) AM_READWRITE( ti85_port_0001_r, ti85_port_0001_w ) - AM_RANGE(0x0002, 0x0002) AM_READWRITE( ti85_port_0002_r, ti85_port_0002_w ) - AM_RANGE(0x0003, 0x0003) AM_READWRITE( ti85_port_0003_r, ti85_port_0003_w ) - AM_RANGE(0x0004, 0x0004) AM_READWRITE( ti85_port_0004_r, ti85_port_0004_w ) - AM_RANGE(0x0005, 0x0005) AM_READWRITE( ti85_port_0005_r, ti85_port_0005_w ) - AM_RANGE(0x0007, 0x0007) AM_WRITE( ti81_port_0007_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START( ti85_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE( ti85_port_0000_r, ti85_port_0000_w ) - AM_RANGE(0x0001, 0x0001) AM_READWRITE( ti85_port_0001_r, ti85_port_0001_w ) - AM_RANGE(0x0002, 0x0002) AM_READWRITE( ti85_port_0002_r, ti85_port_0002_w ) - AM_RANGE(0x0003, 0x0003) AM_READWRITE( ti85_port_0003_r, ti85_port_0003_w ) - AM_RANGE(0x0004, 0x0004) AM_READWRITE( ti85_port_0004_r, ti85_port_0004_w ) - AM_RANGE(0x0005, 0x0005) AM_READWRITE( ti85_port_0005_r, ti85_port_0005_w ) - AM_RANGE(0x0006, 0x0006) AM_READWRITE( ti85_port_0006_r, ti85_port_0006_w ) - AM_RANGE(0x0007, 0x0007) AM_READWRITE( ti85_port_0007_r, ti85_port_0007_w ) -ADDRESS_MAP_END - -ADDRESS_MAP_START( ti86_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE( ti85_port_0000_r, ti85_port_0000_w ) - AM_RANGE(0x0001, 0x0001) AM_READWRITE( ti85_port_0001_r, ti85_port_0001_w ) - AM_RANGE(0x0002, 0x0002) AM_READWRITE( ti85_port_0002_r, ti85_port_0002_w ) - AM_RANGE(0x0003, 0x0003) AM_READWRITE( ti85_port_0003_r, ti85_port_0003_w ) - AM_RANGE(0x0004, 0x0004) AM_READWRITE( ti85_port_0006_r, ti85_port_0006_w ) - AM_RANGE(0x0005, 0x0005) AM_READWRITE( ti86_port_0005_r, ti86_port_0005_w ) - AM_RANGE(0x0006, 0x0006) AM_READWRITE( ti86_port_0006_r, ti86_port_0006_w ) - AM_RANGE(0x0007, 0x0007) AM_READWRITE( ti85_port_0007_r, ti85_port_0007_w ) -ADDRESS_MAP_END - -/* memory w/r functions */ - -ADDRESS_MAP_START( ti81_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK3 ) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK4 ) - AM_RANGE(0x8000, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START( ti85_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK3 ) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK4 ) - AM_RANGE(0x8000, 0xffff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START( ti86_mem , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE( MRA8_BANK1, MWA8_BANK5 ) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE( MRA8_BANK2, MWA8_BANK6 ) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE( MRA8_BANK3, MWA8_BANK7 ) - AM_RANGE(0xc000, 0xffff) AM_READWRITE( MRA8_BANK4, MWA8_BANK8 ) -ADDRESS_MAP_END - -/* keyboard input */ -INPUT_PORTS_START (ti81) - PORT_START /* bit 0 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(-)") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_F5) - PORT_START /* bit 1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("STORE") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TRACE") PORT_CODE(KEYCODE_F4) - PORT_START /* bit 2 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LN") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ZOOM") PORT_CODE(KEYCODE_F3) - PORT_START /* bit 3 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("*") PORT_CODE(KEYCODE_L) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LOG") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RANGE") PORT_CODE(KEYCODE_F2) - PORT_START /* bit 4 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(")") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("EE") PORT_CODE(KEYCODE_END) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x^2") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y=") PORT_CODE(KEYCODE_F1) - PORT_START /* bit 5 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_P) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAN") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("COS") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SIN") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x^-1") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2nd") PORT_CODE(KEYCODE_LALT) - PORT_START /* bit 6 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_PGDN) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("VARS") PORT_CODE(KEYCODE_F9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PRGM") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MATRX") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MATH") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("INS") PORT_CODE(KEYCODE_TILDE) - PORT_START /* bit 7 */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MODE") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X|T") PORT_CODE(KEYCODE_X) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ALPHA") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) - PORT_START /* ON */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ON/OFF") PORT_CODE(KEYCODE_Q) -INPUT_PORTS_END - -INPUT_PORTS_START (ti85) - PORT_START /* bit 0 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(-)") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) - PORT_START /* bit 1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("STORE") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_START /* bit 2 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - PORT_START /* bit 3 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("*") PORT_CODE(KEYCODE_L) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x^2") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_START /* bit 4 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(")") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("EE") PORT_CODE(KEYCODE_END) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LN") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_START /* bit 5 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^") PORT_CODE(KEYCODE_P) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TAN") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("COS") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SIN") PORT_CODE(KEYCODE_INSERT) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LOG") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2nd") PORT_CODE(KEYCODE_LALT) - PORT_START /* bit 6 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_PGDN) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CUSTOM") PORT_CODE(KEYCODE_F9) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PRGM") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("STAT") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("EXIT") PORT_CODE(KEYCODE_ESC) - PORT_START /* bit 7 */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("x-VAR") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ALPHA") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("MORE") PORT_CODE(KEYCODE_TILDE) - PORT_START /* ON */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ON/OFF") PORT_CODE(KEYCODE_Q) - PORT_START /* receive data from calculator */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Receive data") PORT_CODE(KEYCODE_R) - PORT_START /* screen dump requesting */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Screen dump request") PORT_CODE(KEYCODE_S) -INPUT_PORTS_END - - - -/* machine definition */ -static MACHINE_DRIVER_START( ti81 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 2000000) /* 2 MHz */ - MDRV_CPU_PROGRAM_MAP(ti81_mem, 0) - MDRV_CPU_IO_MAP(ti81_io, 0) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START( ti81 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(96, 64) - MDRV_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1) - MDRV_PALETTE_LENGTH(32*7 + 32768) - MDRV_COLORTABLE_LENGTH(32*7 + 32768) - MDRV_PALETTE_INIT( ti85 ) - - MDRV_VIDEO_START( ti85 ) - MDRV_VIDEO_UPDATE( ti85 ) - - MDRV_NVRAM_HANDLER( ti81 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ti85 ) - MDRV_IMPORT_FROM( ti81 ) - MDRV_CPU_REPLACE("main", Z80, 6000000) /* 6 MHz */ - MDRV_CPU_PROGRAM_MAP(ti85_mem, 0) - MDRV_CPU_IO_MAP(ti85_io, 0) - - MDRV_MACHINE_START( ti85 ) - - MDRV_SCREEN_SIZE(128, 64) - MDRV_SCREEN_VISIBLE_AREA(0, 128-1, 0, 64-1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_NVRAM_HANDLER( ti85 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ti86 ) - MDRV_IMPORT_FROM( ti85 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ti86_mem, 0) - MDRV_CPU_IO_MAP(ti86_io, 0) - - MDRV_MACHINE_START( ti86 ) - - MDRV_NVRAM_HANDLER( ti86 ) -MACHINE_DRIVER_END - - -ROM_START (ti81) - ROM_REGION (0x18000, REGION_CPU1,0) - ROM_LOAD ("ti81.bin", 0x10000, 0x8000, CRC(94ac58e2) SHA1(ba915cfe2fe50a452ef8287db8f2244e29056d54)) -ROM_END - -ROM_START (ti85) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v30a.bin", 0x10000, 0x20000, CRC(de4c0b1a) SHA1(f4cf4b8309372dbe26187bb279545f5d4bd48fc1)) -ROM_END - -ROM_START (ti85v40) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v40.bin", 0x10000, 0x20000, CRC(a1723a17) SHA1(ff5866636bb3f206a6bf39cc9c9dc8308332aaf0)) -ROM_END - -ROM_START (ti85v50) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v50.bin", 0x10000, 0x20000, CRC(781fa403) SHA1(bf20d520d8efd7e5ae269789ca4b3c71848ac32a)) -ROM_END - -ROM_START (ti85v60) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v60.bin", 0x10000, 0x20000, CRC(b694a117) SHA1(36d58e2723e5ae4ffe0f8da691fa9a83bfe9e06b)) -ROM_END - -ROM_START (ti85v80) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v80.bin", 0x10000, 0x20000, CRC(7f296338) SHA1(765d5c612b6ffc0d1ded8f79bcbe880b1b562a98)) -ROM_END - -ROM_START (ti85v90) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v90.bin", 0x10000, 0x20000, CRC(6a0a94d0) SHA1(7742bf8a6929a21d06f306b494fc03b1fbdfe3e4)) -ROM_END - -ROM_START (ti85v100) - ROM_REGION (0x30000, REGION_CPU1,0) - ROM_LOAD ("ti85v100.bin", 0x10000, 0x20000, CRC(053325b0) SHA1(36da1080c34e7b53cbe8463be5804e30e4a50dc8)) -ROM_END - -ROM_START (ti86) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86v12.bin", 0x10000, 0x40000, CRC(bdf16105) SHA1(e40b22421c31bf0af104518b748ae79cd21d9c57)) -ROM_END - -ROM_START (ti86v13) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86v13.bin", 0x10000, 0x40000, CRC(073ef70f) SHA1(5702d4bb835bdcbfa8075ffd620fca0eaf3a1592)) -ROM_END - -ROM_START (ti86v14) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86v14.bin", 0x10000, 0x40000, CRC(fe6e2986) SHA1(23e0fb9a1763d5b9a7b0e593f09c2ff30c760866)) -ROM_END - -ROM_START (ti86v15) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86v15.bin", 0x10000, 0x40000, BAD_DUMP CRC(e6e10546)) -ROM_END - -ROM_START (ti86v16) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86v16.bin", 0x10000, 0x40000, CRC(37e02acc) SHA1(b5ad204885e5dde23a22f18f8d5eaffca69d638d)) -ROM_END - -ROM_START (ti86grom) - ROM_REGION (0x50000, REGION_CPU1,0) - ROM_LOAD ("ti86grom.bin", 0x10000, 0x40000, CRC(d2c67280) SHA1(d5c41f6584fe209ed3c615bda58c35469782f3cd)) -ROM_END - -static void ti85_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sav"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_ti8x; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void ti85_serial_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* serial */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_SERIAL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_ti85_serial; break; - case DEVINFO_PTR_LOAD: info->load = device_load_ti85_serial; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti85_serial; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "85p,85s,85i,85n,85c,85l,85k,85m,85v,85d,85e,85r,85g,85b"); break; - } -} - -SYSTEM_CONFIG_START(ti85) - CONFIG_DEVICE(ti85_serial_getinfo) - CONFIG_DEVICE(ti85_snapshot_getinfo) -SYSTEM_CONFIG_END - -static void ti86_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "sav"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_ti8x; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void ti86_serial_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* serial */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_SERIAL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_ti85_serial; break; - case DEVINFO_PTR_LOAD: info->load = device_load_ti85_serial; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti85_serial; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "86p,86s,86i,86n,86c,86l,86k,86m,86v,86d,86e,86r,86g"); break; - } -} - -SYSTEM_CONFIG_START(ti86) - CONFIG_DEVICE(ti86_serial_getinfo) - CONFIG_DEVICE(ti86_snapshot_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1990, ti81, 0, 0, ti81, ti81, 0, NULL, "Texas Instruments", "TI-81 Ver. 1.8" , 0) - -COMP( 1992, ti85, 0, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 3.0a" , 0) -COMP( 1992, ti85v40, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 4.0" , 0) -COMP( 1992, ti85v50, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 5.0" , 0) -COMP( 1992, ti85v60, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 6.0" , 0) -COMP( 1992, ti85v80, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 8.0" , 0) -COMP( 1992, ti85v90, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 9.0" , 0) -COMP( 1992, ti85v100, ti85, 0, ti85, ti85, 0, ti85, "Texas Instruments", "TI-85 ver. 10.0" , 0) - -COMP( 1997, ti86, 0, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 ver. 1.2" , 0) -COMP( 1997, ti86v13, ti86, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 ver. 1.3" , 0) -COMP( 1997, ti86v14, ti86, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 ver. 1.4" , 0) -COMP( 1997, ti86v15, ti86, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 ver. 1.5" , 0) -COMP( 1997, ti86v16, ti86, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 ver. 1.6" , 0) -COMP( 1997, ti86grom, ti86, 0, ti86, ti85, 0, ti86, "Texas Instruments", "TI-86 homebrew rom by Daniel Foesch" , 0) diff --git a/mess/systems/ti99_4x.c b/mess/systems/ti99_4x.c deleted file mode 100644 index f95e62e58..000000000 --- a/mess/systems/ti99_4x.c +++ /dev/null @@ -1,955 +0,0 @@ -/* - MESS Driver for TI-99/4 and TI-99/4A Home Computers. - Raphael Nabet, 1999-2003. - - see machine/ti99_4x.c for some details and references -*/ - -/* - TI99/4 info: - -Similar to TI99/4a, except for the following: - * tms9918/9928 has no bitmap mode - * smaller, 40-key keyboard - * many small differences in the contents of system ROMs - -Historical notes: TI made several last minute design changes. - * TI99/4 prototypes had an extra port for an I/R joystick and keypad interface. - * early TI99/4 prototypes were designed for a tms9985, not a tms9900. -*/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/tms9928a.h" -#include "vidhrdw/v9938.h" - -#include "machine/ti99_4x.h" -#include "machine/tms9901.h" -#include "sndhrdw/spchroms.h" -#include "machine/99_peb.h" -#include "machine/994x_ser.h" -#include "machine/99_dsk.h" -#include "machine/99_ide.h" -#include "machine/99_hsgpl.h" -#include "devices/mflopimg.h" -#include "devices/harddriv.h" -#include "devices/cassette.h" -#include "devices/harddriv.h" -#include "machine/smartmed.h" -#include "sound/5220intf.h" - -/* - memory map -*/ - -static ADDRESS_MAP_START(memmap, ADDRESS_SPACE_PROGRAM, 16) - - AM_RANGE(0x0000, 0x1fff) AM_ROM /*system ROM*/ - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*lower 8kb of RAM extension - installed dynamically*/ - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(ti99_4x_peb_r, ti99_4x_peb_w) /*DSR ROM space*/ - AM_RANGE(0x6000, 0x7fff) AM_READWRITE(ti99_cart_r, ti99_cart_w) /*cartridge memory*/ - AM_RANGE(0x8000, 0x80ff) AM_MIRROR(0x0300) AM_RAMBANK(1) /*RAM PAD, mirrored 4 times*/ - AM_RANGE(0x8400, 0x87ff) AM_READWRITE(ti99_nop_8_r, ti99_wsnd_w) /*soundchip write*/ - AM_RANGE(0x8800, 0x8bff) AM_READWRITE(ti99_rvdp_r, ti99_nop_8_w) /*vdp read*/ - AM_RANGE(0x8C00, 0x8fff) AM_READWRITE(ti99_nop_8_r, ti99_wvdp_w) /*vdp write*/ - AM_RANGE(0x9000, 0x93ff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*speech read - installed dynamically*/ - AM_RANGE(0x9400, 0x97ff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*speech write - installed dynamically*/ - AM_RANGE(0x9800, 0x9bff) AM_READWRITE(ti99_rgpl_r, ti99_nop_8_w) /*GPL read*/ - AM_RANGE(0x9c00, 0x9fff) AM_READWRITE(ti99_nop_8_r, ti99_wgpl_w) /*GPL write*/ - AM_RANGE(0xa000, 0xffff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*upper 24kb of RAM extension - installed dynamically*/ - -ADDRESS_MAP_END - -static ADDRESS_MAP_START(memmap_4ev, ADDRESS_SPACE_PROGRAM, 16) - - AM_RANGE(0x0000, 0x1fff) AM_ROM /*system ROM*/ - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*lower 8kb of RAM extension - installed dynamically*/ - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(ti99_4x_peb_r, ti99_4x_peb_w) /*DSR ROM space*/ - AM_RANGE(0x6000, 0x7fff) AM_READWRITE(ti99_cart_r, ti99_cart_w) /*cartridge memory*/ - AM_RANGE(0x8000, 0x80ff) AM_MIRROR(0x0300) AM_RAMBANK(1) /*RAM PAD, mirrored 4 times*/ - AM_RANGE(0x8400, 0x87ff) AM_READWRITE(ti99_nop_8_r, ti99_wsnd_w) /*soundchip write*/ - AM_RANGE(0x8800, 0x8bff) AM_READWRITE(ti99_rv38_r, ti99_nop_8_w) /*vdp read*/ - AM_RANGE(0x8C00, 0x8fff) AM_READWRITE(ti99_nop_8_r, ti99_wv38_w) /*vdp write*/ - AM_RANGE(0x9000, 0x93ff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*speech read - installed dynamically*/ - AM_RANGE(0x9400, 0x97ff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*speech write - installed dynamically*/ - AM_RANGE(0x9800, 0x9bff) AM_READWRITE(ti99_rgpl_r, ti99_nop_8_w) /*GPL read*/ - AM_RANGE(0x9c00, 0x9fff) AM_READWRITE(ti99_nop_8_r, ti99_wgpl_w) /*GPL write*/ - AM_RANGE(0xa000, 0xffff) AM_READWRITE(ti99_nop_8_r, ti99_nop_8_w) /*upper 24kb of RAM extension - installed dynamically*/ - -ADDRESS_MAP_END - -/* - CRU map -*/ - -static ADDRESS_MAP_START(writecru, ADDRESS_SPACE_IO, 8) - - AM_RANGE(0x0000, 0x07ff) AM_WRITE(tms9901_0_cru_w) - AM_RANGE(0x0800, 0x0fff) AM_WRITE(ti99_4x_peb_cru_w) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START(readcru, ADDRESS_SPACE_IO, 8) - - AM_RANGE(0x0000, 0x00ff) AM_READ(tms9901_0_cru_r) - AM_RANGE(0x0100, 0x01ff) AM_READ(ti99_4x_peb_cru_r) - -ADDRESS_MAP_END - - -/* - Input ports, used by machine code for TI keyboard and joystick emulation. -*/ - -/* TI99/4a: 48-key keyboard, plus two optional joysticks (2 shift keys) */ -INPUT_PORTS_START(ti99_4a) - - /* 1 port for config */ - PORT_START /* config */ - PORT_BIT( config_xRAM_mask << config_xRAM_bit, xRAM_kind_TI << config_xRAM_bit, IPT_DIPSWITCH_NAME) PORT_NAME("RAM extension") - PORT_DIPSETTING( xRAM_kind_none << config_xRAM_bit, DEF_STR( None ) ) - PORT_DIPSETTING( xRAM_kind_TI << config_xRAM_bit, "Texas Instruments 32kb") - PORT_DIPSETTING( xRAM_kind_super_AMS << config_xRAM_bit, "Super AMS 1Mb") - PORT_DIPSETTING( xRAM_kind_foundation_128k << config_xRAM_bit, "Foundation 128kb") - PORT_DIPSETTING( xRAM_kind_foundation_512k << config_xRAM_bit, "Foundation 512kb") - PORT_DIPSETTING( xRAM_kind_myarc_128k << config_xRAM_bit, "Myarc look-alike 128kb") - PORT_DIPSETTING( xRAM_kind_myarc_512k << config_xRAM_bit, "Myarc look-alike 512kb") - PORT_BIT( config_speech_mask << config_speech_bit, 1 << config_speech_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Speech synthesis") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_speech_bit, DEF_STR( On ) ) - PORT_BIT( config_fdc_mask << config_fdc_bit, fdc_kind_hfdc << config_fdc_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Floppy disk controller") - PORT_DIPSETTING( fdc_kind_none << config_fdc_bit, DEF_STR( None ) ) - PORT_DIPSETTING( fdc_kind_TI << config_fdc_bit, "Texas Instruments SD" ) -#if HAS_99CCFDC - PORT_DIPSETTING( fdc_kind_CC << config_fdc_bit, "CorComp" ) -#endif - PORT_DIPSETTING( fdc_kind_BwG << config_fdc_bit, "SNUG's BwG" ) - PORT_DIPSETTING( fdc_kind_hfdc << config_fdc_bit, "Myarc's HFDC" ) - PORT_BIT( config_ide_mask << config_ide_bit, 1 << config_ide_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's IDE card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_ide_bit, DEF_STR( On ) ) - PORT_BIT( config_rs232_mask << config_rs232_bit, 1 << config_rs232_bit, IPT_DIPSWITCH_NAME) PORT_NAME("TI RS232 card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_rs232_bit, DEF_STR( On ) ) - PORT_BIT( config_hsgpl_mask << config_hsgpl_bit, 0/*1 << config_hsgpl_bit*/, IPT_DIPSWITCH_NAME) PORT_NAME("SNUG HSGPL card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_hsgpl_bit, DEF_STR( On ) ) - PORT_BIT( config_mecmouse_mask << config_mecmouse_bit, 0, IPT_DIPSWITCH_NAME) PORT_NAME("Mechatronics Mouse") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_mecmouse_bit, DEF_STR( On ) ) - PORT_BIT( config_usbsm_mask << config_usbsm_bit, 1 << config_usbsm_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's USB-SM card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_usbsm_bit, DEF_STR( On ) ) - - - /* 3 ports for mouse */ - PORT_START /* Mouse - X AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - Y AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - buttons */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) - - - /* 4 ports for keyboard and joystick */ - PORT_START /* col 0 */ - PORT_BIT(0x0088, IP_ACTIVE_LOW, IPT_UNUSED) - /* The original control key is located on the left, but we accept the - right control key as well */ - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - /* TI99/4a has a second shift key which maps the same */ - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - /* The original function key is located on the right, but we accept the - left alt key as well */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FCTN") PORT_CODE(KEYCODE_RALT) PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(SPACE)") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= + QUIT") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') - /* col 1 */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X (DOWN)") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W ~") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR('~') - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S (LEFT)") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @ INS") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ( BACK") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O '") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR('\'') - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - - PORT_START /* col 2 */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C `") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') PORT_CHAR('`') - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E (UP)") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D (RIGHT)") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # ERASE") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 * REDO") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I ?") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_CHAR('?') - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - /* col 3 */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R [") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_CHAR('[') - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F {") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_CHAR('{') - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ CLEAR") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 & AID") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U _") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_CHAR('_') - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - - PORT_START /* col 4 */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T ]") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_CHAR(']') - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G }") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_CHAR('}') - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % BEGIN") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^ PROC'D") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - /* col 5 */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z \\") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_CHAR('\\') - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A |") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR('|') - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! DEL") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P \"") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_CHAR('\"') - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ -") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('-') - - PORT_START /* col 6: "wired handset 1" (= joystick 1) */ - PORT_BIT(0x00E0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(1UP)", CODE_NONE, OSD_JOY_UP*/) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(1DOWN)", CODE_NONE, OSD_JOY_DOWN, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(1RIGHT)", CODE_NONE, OSD_JOY_RIGHT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(1LEFT)", CODE_NONE, OSD_JOY_LEFT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(1FIRE)", CODE_NONE, OSD_JOY_FIRE, 0*/) PORT_PLAYER(1) - /* col 7: "wired handset 2" (= joystick 2) */ - PORT_BIT(0xE000, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(2UP)", CODE_NONE, OSD_JOY2_UP, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(2DOWN)", CODE_NONE, OSD_JOY2_DOWN, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(2RIGHT)", CODE_NONE, OSD_JOY2_RIGHT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(2LEFT)", CODE_NONE, OSD_JOY2_LEFT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(2FIRE)", CODE_NONE, OSD_JOY2_FIRE, 0*/) PORT_PLAYER(2) - - - PORT_START /* one more port for Alpha line */ - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Alpha Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE - -INPUT_PORTS_END - - -#define JOYSTICK_DELTA 10 -#define JOYSTICK_SENSITIVITY 100 - -/* TI99/4: 41-key keyboard, plus two optional joysticks (2 space keys) */ -INPUT_PORTS_START(ti99_4) - - /* 1 port for config */ - PORT_START /* config */ - PORT_BIT( config_xRAM_mask << config_xRAM_bit, xRAM_kind_TI << config_xRAM_bit, IPT_DIPSWITCH_NAME) PORT_NAME("RAM extension") - PORT_DIPSETTING( xRAM_kind_none << config_xRAM_bit, DEF_STR( None ) ) - PORT_DIPSETTING( xRAM_kind_TI << config_xRAM_bit, "Texas Instruments 32kb") - PORT_DIPSETTING( xRAM_kind_super_AMS << config_xRAM_bit, "Super AMS 1Mb") - PORT_DIPSETTING( xRAM_kind_foundation_128k << config_xRAM_bit, "Foundation 128kb") - PORT_DIPSETTING( xRAM_kind_foundation_512k << config_xRAM_bit, "Foundation 512kb") - PORT_DIPSETTING( xRAM_kind_myarc_128k << config_xRAM_bit, "Myarc look-alike 128kb") - PORT_DIPSETTING( xRAM_kind_myarc_512k << config_xRAM_bit, "Myarc look-alike 512kb") - PORT_BIT( config_speech_mask << config_speech_bit, 1 << config_speech_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Speech synthesis") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_speech_bit, DEF_STR( On ) ) - PORT_BIT( config_fdc_mask << config_fdc_bit, fdc_kind_hfdc << config_fdc_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Floppy disk controller") - PORT_DIPSETTING( fdc_kind_none << config_fdc_bit, DEF_STR( None ) ) - PORT_DIPSETTING( fdc_kind_TI << config_fdc_bit, "Texas Instruments SD" ) -#if HAS_99CCFDC - PORT_DIPSETTING( fdc_kind_CC << config_fdc_bit, "CorComp" ) -#endif - PORT_DIPSETTING( fdc_kind_BwG << config_fdc_bit, "SNUG's BwG" ) - PORT_DIPSETTING( fdc_kind_hfdc << config_fdc_bit, "Myarc's HFDC" ) - PORT_BIT( config_ide_mask << config_ide_bit, /*1 << config_ide_bit*/0, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's IDE card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_ide_bit, DEF_STR( On ) ) - PORT_BIT( config_rs232_mask << config_rs232_bit, 1 << config_rs232_bit, IPT_DIPSWITCH_NAME) PORT_NAME("TI RS232 card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_rs232_bit, DEF_STR( On ) ) - PORT_BIT( config_handsets_mask << config_handsets_bit, /*1 << config_handsets_bit*/0, IPT_DIPSWITCH_NAME) PORT_NAME("I/R remote handset") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_handsets_bit, DEF_STR( On ) ) - PORT_BIT( config_hsgpl_mask << config_hsgpl_bit, 0/*1 << config_hsgpl_bit*/, IPT_DIPSWITCH_NAME) PORT_NAME("SNUG HSGPL card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_hsgpl_bit, DEF_STR( On ) ) - PORT_BIT( config_mecmouse_mask << config_mecmouse_bit, 0, IPT_DIPSWITCH_NAME) PORT_NAME("Mechatronics Mouse") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_mecmouse_bit, DEF_STR( On ) ) - PORT_BIT( config_usbsm_mask << config_usbsm_bit, 1 << config_usbsm_bit, IPT_DIPSWITCH_NAME) PORT_NAME("Nouspickel's USB-SM card") - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 1 << config_usbsm_bit, DEF_STR( On ) ) - - - /* 3 ports for mouse */ - PORT_START /* Mouse - X AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - Y AXIS */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_MINMAX(0,0) PORT_PLAYER(1) - - PORT_START /* Mouse - buttons */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) - - - /* 4 ports for keyboard and joystick */ - PORT_START /* col 0 */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q QUIT") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(SPACE)") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - /* TI99/4 has a second space key which maps the same */ - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(' ') - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P \"") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('"') - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L =") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('=') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - /* col 1 */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W BEGIN") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A AID") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z BACK") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O +") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('+') - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K /") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('/') - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", .") PORT_CODE(KEYCODE_STOP) PORT_CHAR(',') PORT_CHAR('.') - - PORT_START /* col 2 */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E UP") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S LEFT") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X DOWN") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I -") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('-') - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J ^") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('^') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M ;") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR(';') - /* col 3 */ - PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R REDO") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D RIGHT") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CLEAR") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U _") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('_') - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H <") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('<') - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N :") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR(':') - - PORT_START /* col 4 */ - PORT_BIT(0x0080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T ERASE") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F DEL") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V PROC'D") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('\'') - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y >") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('>') - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G INS") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B ?") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('?') - /* col 5: "wired handset 1" (= joystick 1) */ - PORT_BIT(0xE000, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(1UP)", CODE_NONE, OSD_JOY_UP*/) PORT_PLAYER(1) - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(1DOWN)", CODE_NONE, OSD_JOY_DOWN, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(1RIGHT)", CODE_NONE, OSD_JOY_RIGHT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(1LEFT)", CODE_NONE, OSD_JOY_LEFT, 0*/) PORT_PLAYER(1) - PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(1FIRE)", CODE_NONE, OSD_JOY_FIRE, 0*/) PORT_PLAYER(1) - - PORT_START /* col 6: "wired handset 2" (= joystick 2) */ - PORT_BIT(0x00E0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP/*, "(2UP)", CODE_NONE, OSD_JOY2_UP, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN/*, "(2DOWN)", CODE_NONE, OSD_JOY2_DOWN, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT/*, "(2RIGHT)", CODE_NONE, OSD_JOY2_RIGHT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT/*, "(2LEFT)", CODE_NONE, OSD_JOY2_LEFT, 0*/) PORT_PLAYER(2) - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_BUTTON1/*, "(2FIRE)", CODE_NONE, OSD_JOY2_FIRE, 0*/) PORT_PLAYER(2) - /* col 7: never used (selects IR remote handset instead) */ - /*PORT_BITX(0xFF00, IP_ACTIVE_LOW, IPT_UNUSED, DEF_STR( Unused ), CODE_NONE, CODE_NONE)*/ - - - /* 13 pseudo-ports for IR remote handsets */ - - /* 8 pseudo-ports for the 4 IR joysticks */ - PORT_START /* joystick 1, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) PORT_RESET - - PORT_START /* joystick 1, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(1) PORT_REVERSE PORT_RESET - - PORT_START /* joystick 2, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) PORT_RESET - - PORT_START /* joystick 2, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(2) PORT_REVERSE PORT_RESET - - PORT_START /* joystick 3, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) PORT_RESET - - PORT_START /* joystick 3, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(3) PORT_REVERSE PORT_RESET - - PORT_START /* joystick 4, X axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_X) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) PORT_RESET - - PORT_START /* joystick 4, Y axis */ - PORT_BIT( 0xf, 0x7, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0,0xe) PORT_PLAYER(4) PORT_REVERSE PORT_RESET - - /* 5 pseudo-ports for the 4 IR remote keypads */ - PORT_START /* keypad 1, keys 1 to 16 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(1) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(1) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(1) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(1) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(1) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(1) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(1) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(1) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(1) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(1) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(1) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) - - PORT_START /* keypad 1, keys 17 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(1) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(1) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(1) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(1) - /* keypad 2, keys 1 to 12 */ - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(2) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(2) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(2) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(2) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(2) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(2) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(2) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(2) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(2) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(2) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(2) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(2) - - PORT_START /* keypad 2, keys 13 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(2) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(2) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(2) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(2) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(2) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(2) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(2) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(2) - /* keypad 3, keys 1 to 8 */ - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: CLR") PORT_CODE(KEYCODE_1) PORT_PLAYER(3) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: GO") PORT_CODE(KEYCODE_Q) PORT_PLAYER(3) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: SET") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(3) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NEXT") PORT_CODE(KEYCODE_LSHIFT) PORT_PLAYER(3) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 7") PORT_CODE(KEYCODE_2) PORT_PLAYER(3) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 4") PORT_CODE(KEYCODE_W) PORT_PLAYER(3) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 1") PORT_CODE(KEYCODE_A) PORT_PLAYER(3) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: STOP") PORT_CODE(KEYCODE_Z) PORT_PLAYER(3) - - PORT_START /* keypad 3, keys 9 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 8") PORT_CODE(KEYCODE_3) PORT_PLAYER(3) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 5") PORT_CODE(KEYCODE_E) PORT_PLAYER(3) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 2") PORT_CODE(KEYCODE_S) PORT_PLAYER(3) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 0") PORT_CODE(KEYCODE_X) PORT_PLAYER(3) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 9") PORT_CODE(KEYCODE_4) PORT_PLAYER(3) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 6") PORT_CODE(KEYCODE_R) PORT_PLAYER(3) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: 3") PORT_CODE(KEYCODE_D) PORT_PLAYER(3) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: E =") PORT_CODE(KEYCODE_C) PORT_PLAYER(3) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (div)") PORT_CODE(KEYCODE_5) PORT_PLAYER(3) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: (mul)") PORT_CODE(KEYCODE_T) PORT_PLAYER(3) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: NO -") PORT_CODE(KEYCODE_F) PORT_PLAYER(3) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3: YES +") PORT_CODE(KEYCODE_V) PORT_PLAYER(3) - /* keypad 4, keys 1 to 4 */ - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: CLR") PORT_CODE(KEYCODE_6) PORT_PLAYER(4) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: GO") PORT_CODE(KEYCODE_Y) PORT_PLAYER(4) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: SET") PORT_CODE(KEYCODE_G) PORT_PLAYER(4) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NEXT") PORT_CODE(KEYCODE_B) PORT_PLAYER(4) - - PORT_START /* keypad 4, keys 5 to 20 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 7") PORT_CODE(KEYCODE_7) PORT_PLAYER(4) - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 4") PORT_CODE(KEYCODE_U) PORT_PLAYER(4) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 1") PORT_CODE(KEYCODE_H) PORT_PLAYER(4) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: STOP") PORT_CODE(KEYCODE_N) PORT_PLAYER(4) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 8") PORT_CODE(KEYCODE_8) PORT_PLAYER(4) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 5") PORT_CODE(KEYCODE_I) PORT_PLAYER(4) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 2") PORT_CODE(KEYCODE_J) PORT_PLAYER(4) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 0") PORT_CODE(KEYCODE_M) PORT_PLAYER(4) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 9") PORT_CODE(KEYCODE_9) PORT_PLAYER(4) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 6") PORT_CODE(KEYCODE_O) PORT_PLAYER(4) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: 3") PORT_CODE(KEYCODE_K) PORT_PLAYER(4) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: E =") PORT_CODE(KEYCODE_STOP) PORT_PLAYER(4) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (div)") PORT_CODE(KEYCODE_0) PORT_PLAYER(4) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: (mul)") PORT_CODE(KEYCODE_P) PORT_PLAYER(4) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: NO -") PORT_CODE(KEYCODE_L) PORT_PLAYER(4) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4: YES +") PORT_CODE(KEYCODE_ENTER) PORT_PLAYER(4) - -INPUT_PORTS_END - -/* - TMS0285 speech synthesizer -*/ -static struct TMS5220interface tms5220interface = -{ - NULL, /* no IRQ callback */ - spchroms_read, /* speech ROM read handler */ - spchroms_load_address, /* speech ROM load address handler */ - spchroms_read_and_branch /* speech ROM read and branch handler */ -}; - - - -static MACHINE_DRIVER_START(ti99_4_60hz) - - /* basic machine hardware */ - /* TMS9900 CPU @ 3.0 MHz */ - MDRV_CPU_ADD(TMS9900, 3000000) - /*MDRV_CPU_CONFIG(0)*/ - MDRV_CPU_PROGRAM_MAP(memmap, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(ti99_vblank_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( ti99_4_60hz ) - MDRV_MACHINE_RESET( ti99 ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(ti99_4_50hz) - - /* basic machine hardware */ - /* TMS9900 CPU @ 3.0 MHz */ - MDRV_CPU_ADD(TMS9900, 3000000) - /*MDRV_CPU_CONFIG(0)*/ - MDRV_CPU_PROGRAM_MAP(memmap, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(ti99_vblank_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( ti99_4_50hz ) - MDRV_MACHINE_RESET( ti99 ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(ti99_4a_60hz) - - /* basic machine hardware */ - /* TMS9900 CPU @ 3.0 MHz */ - MDRV_CPU_ADD(TMS9900, 3000000) - /*MDRV_CPU_CONFIG(0)*/ - MDRV_CPU_PROGRAM_MAP(memmap, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(ti99_vblank_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( ti99_4a_60hz ) - MDRV_MACHINE_RESET( ti99 ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(ti99_4a_50hz) - - /* basic machine hardware */ - /* TMS9900 CPU @ 3.0 MHz */ - MDRV_CPU_ADD(TMS9900, 3000000) - /*MDRV_CPU_CONFIG(0)*/ - MDRV_CPU_PROGRAM_MAP(memmap, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(ti99_vblank_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( ti99_4a_50hz ) - MDRV_MACHINE_RESET( ti99 ) - - /* video hardware */ - MDRV_IMPORT_FROM(tms9928a) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(ti99_4ev_60hz) - - /* basic machine hardware */ - /* TMS9900 CPU @ 3.0 MHz */ - MDRV_CPU_ADD(TMS9900, 3000000) - MDRV_CPU_PROGRAM_MAP(memmap_4ev, 0) - MDRV_CPU_IO_MAP(readcru, writecru) - MDRV_CPU_VBLANK_INT(ti99_4ev_hblank_interrupt, 263) /* 262.5 in 60Hz, 312.5 in 50Hz */ - - MDRV_SCREEN_REFRESH_RATE(60) /* or 50Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET( ti99 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512+32, (212+28)*2) - MDRV_SCREEN_VISIBLE_AREA(0, 512+32 - 1, 0, (212+28)*2 - 1) - - MDRV_PALETTE_LENGTH(512) - MDRV_COLORTABLE_LENGTH(512) - - MDRV_PALETTE_INIT(v9938) - MDRV_VIDEO_START(ti99_4ev) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(SN76496, 3579545) /* 3.579545 MHz */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MDRV_SOUND_ADD(TMS5220, 680000L) - MDRV_SOUND_CONFIG(tms5220interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - -MACHINE_DRIVER_END - - -/* - ROM loading - - Note that we use the same ROMset for 50Hz and 60Hz versions. -*/ - -ROM_START(ti99_4) - /*CPU memory space*/ - ROM_REGION16_BE(region_cpu1_len, REGION_CPU1, 0) - ROM_LOAD16_BYTE("u610.bin", 0x0000, 0x1000, CRC(6fcf4b15) SHA1(d085213c64701d429ae535f9a4ac8a50427a8343)) /* CPU ROMs high */ - ROM_LOAD16_BYTE("u611.bin", 0x0001, 0x1000, CRC(491c21d1) SHA1(7741ae9294c51a44a78033d1b77c01568a6bbfb9)) /* CPU ROMs low */ - - /*GROM memory space*/ - ROM_REGION(0x10000, region_grom, 0) - ROM_LOAD("u500.bin", 0x0000, 0x1800, CRC(aa757e13) SHA1(4658d3d01c0131c283a30cebd12e76754d41a84a)) /* system GROM 0 */ - ROM_LOAD("u501.bin", 0x2000, 0x1800, CRC(c863e460) SHA1(6d849a76011273a069a98ed0c3feaf13831c942f)) /* system GROM 1 */ - ROM_LOAD("u502.bin", 0x4000, 0x1800, CRC(b0eda548) SHA1(725e3f26f8c819f356e4bb405b4102b5ae1e0e70)) /* system GROM 1 */ - - /*DSR ROM space*/ - ROM_REGION(region_dsr_len, region_dsr, 0) - ROM_LOAD_OPTIONAL("disk.bin", offset_fdc_dsr, 0x2000, CRC(8f7df93f) SHA1(ed91d48c1eaa8ca37d5055bcf67127ea51c4cad5)) /* TI disk DSR ROM */ -#if HAS_99CCFDC - ROM_LOAD_OPTIONAL("ccfdc.bin", offset_ccfdc_dsr, 0x4000, BAD_DUMP CRC(f69cc69d)) /* CorComp disk DSR ROM */ -#endif - ROM_LOAD_OPTIONAL("bwg.bin", offset_bwg_dsr, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ - ROM_LOAD_OPTIONAL("hfdc.bin", offset_hfdc_dsr, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ - ROM_LOAD_OPTIONAL("rs232.bin", offset_rs232_dsr, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ - - /* HSGPL memory space */ - ROM_REGION(region_hsgpl_len, region_hsgpl, 0) - - /*TMS5220 ROM space*/ - ROM_REGION(0x8000, region_speech_rom, 0) - ROM_LOAD_OPTIONAL("spchrom.bin", 0x0000, 0x8000, CRC(58b155f7) SHA1(382292295c00dff348d7e17c5ce4da12a1d87763)) /* system speech ROM */ -ROM_END - -ROM_START(ti99_4a) - /*CPU memory space*/ - ROM_REGION16_BE(region_cpu1_len, REGION_CPU1, 0) - ROM_LOAD16_WORD("994arom.bin", 0x0000, 0x2000, CRC(db8f33e5) SHA1(6541705116598ab462ea9403c00656d6353ceb85)) /* system ROMs */ - - /*GROM memory space*/ - ROM_REGION(0x10000, region_grom, 0) - ROM_LOAD("994agrom.bin", 0x0000, 0x6000, CRC(af5c2449) SHA1(0c5eaad0093ed89e9562a2c0ee6a370bdc9df439)) /* system GROMs */ - - /*DSR ROM space*/ - ROM_REGION(region_dsr_len, region_dsr, 0) - ROM_LOAD_OPTIONAL("disk.bin", offset_fdc_dsr, 0x2000, CRC(8f7df93f) SHA1(ed91d48c1eaa8ca37d5055bcf67127ea51c4cad5)) /* TI disk DSR ROM */ -#if HAS_99CCFDC - ROM_LOAD_OPTIONAL("ccfdc.bin", offset_ccfdc_dsr, 0x4000, BAD_DUMP CRC(f69cc69d)) /* CorComp disk DSR ROM */ -#endif - ROM_LOAD_OPTIONAL("bwg.bin", offset_bwg_dsr, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ - ROM_LOAD_OPTIONAL("hfdc.bin", offset_hfdc_dsr, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ - ROM_LOAD_OPTIONAL("rs232.bin", offset_rs232_dsr, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ - - /* HSGPL memory space */ - ROM_REGION(region_hsgpl_len, region_hsgpl, 0) - - /*TMS5220 ROM space*/ - ROM_REGION(0x8000, region_speech_rom, 0) - ROM_LOAD_OPTIONAL("spchrom.bin", 0x0000, 0x8000, CRC(58b155f7) SHA1(382292295c00dff348d7e17c5ce4da12a1d87763)) /* system speech ROM */ -ROM_END - -ROM_START(ti99_4ev) - /*CPU memory space*/ - ROM_REGION16_BE(region_cpu1_len, REGION_CPU1, 0) - ROM_LOAD16_WORD("994arom.bin", 0x0000, 0x2000, CRC(db8f33e5) SHA1(6541705116598ab462ea9403c00656d6353ceb85)) /* system ROMs */ - - /*GROM memory space*/ - ROM_REGION(0x10000, region_grom, 0) - ROM_LOAD("994agr38.bin", 0x0000, 0x6000, CRC(bdd9f09b) SHA1(9b058a55d2528d2a6a69d7081aa296911ed7c0de)) /* system GROMs */ - - /*DSR ROM space*/ - ROM_REGION(region_dsr_len, region_dsr, 0) - ROM_LOAD_OPTIONAL("disk.bin", offset_fdc_dsr, 0x2000, CRC(8f7df93f) SHA1(ed91d48c1eaa8ca37d5055bcf67127ea51c4cad5)) /* TI disk DSR ROM */ -#if HAS_99CCFDC - ROM_LOAD_OPTIONAL("ccfdc.bin", offset_ccfdc_dsr, 0x4000, BAD_DUMP CRC(f69cc69d)) /* CorComp disk DSR ROM */ -#endif - ROM_LOAD_OPTIONAL("bwg.bin", offset_bwg_dsr, 0x8000, CRC(06f1ec89) SHA1(6ad77033ed268f986d9a5439e65f7d391c4b7651)) /* BwG disk DSR ROM */ - ROM_LOAD_OPTIONAL("hfdc.bin", offset_hfdc_dsr, 0x4000, CRC(66fbe0ed) SHA1(11df2ecef51de6f543e4eaf8b2529d3e65d0bd59)) /* HFDC disk DSR ROM */ - ROM_LOAD_OPTIONAL("rs232.bin", offset_rs232_dsr, 0x1000, CRC(eab382fb) SHA1(ee609a18a21f1a3ddab334e8798d5f2a0fcefa91)) /* TI rs232 DSR ROM */ - ROM_LOAD("evpcdsr.bin", offset_evpc_dsr, 0x10000, CRC(a062b75d) SHA1(6e8060f86e3bb9c36f244d88825e3fe237bfe9a9)) /* evpc DSR ROM */ - - /* HSGPL memory space */ - ROM_REGION(region_hsgpl_len, region_hsgpl, 0) - - /*TMS5220 ROM space*/ - ROM_REGION(0x8000, region_speech_rom, 0) - ROM_LOAD_OPTIONAL("spchrom.bin", 0x0000, 0x8000, CRC(58b155f7) SHA1(382292295c00dff348d7e17c5ce4da12a1d87763)) /* system speech ROM */ -ROM_END - -#define rom_ti99_4e rom_ti99_4 -#define rom_ti99_4ae rom_ti99_4a - -/* a TI99 console only had one cartridge slot, but cutting the ROMs - * in 3 files seems to be the only way to handle cartridges until I use - * a headered format. - * Note that there sometimes was a speech ROM slot in the speech synthesizer, - * and you could plug quite a lot of GROMs in the side port. Neither of these - * are emulated. - */ - -static void ti99_4_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 2; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void ti99_4_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CARTSLOT; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 3; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_ti99_cart; break; - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bin,c,d,g,m,crom,drom,grom,mrom"); break; - } -} - -static void ti99_4_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 4; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_FLOPPY_OPTIONS: info->p = (void *) floppyoptions_ti99; break; - - default: floppy_device_getinfo(devclass, state, info); break; - } -} - -static void ti99_4_harddisk_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* harddisk */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_HARDDISK; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 3; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_mess_hd; break; - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_hd; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_hd; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "hd"); break; - } -} - -static void ti99_4_parallel_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* parallel */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PARALLEL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_4_pio; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_4_pio; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -static void ti99_4_serial_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* serial */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_SERIAL; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_4_rs232; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_4_rs232; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -#if 0 -static void ti99_4_quickload_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* quickload */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_QUICKLOAD; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_RESET_ON_LOAD: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_ti99_hsgpl; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_ti99_hsgpl; break; - } -} -#endif - -static void ti99_4_memcard_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* memcard */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_MEMCARD; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_smartmedia; break; - case DEVINFO_PTR_LOAD: info->load = device_load_smartmedia; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_smartmedia; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), ""); break; - } -} - -SYSTEM_CONFIG_START(ti99_4) - CONFIG_DEVICE(ti99_4_cassette_getinfo) - CONFIG_DEVICE(ti99_4_cartslot_getinfo) - CONFIG_DEVICE(ti99_4_floppy_getinfo) - CONFIG_DEVICE(ti99_4_harddisk_getinfo) - CONFIG_DEVICE(ti99_ide_harddisk_getinfo) - CONFIG_DEVICE(ti99_4_parallel_getinfo) - CONFIG_DEVICE(ti99_4_serial_getinfo) - /*CONFIG_DEVICE(ti99_4_quickload_getinfo)*/ - CONFIG_DEVICE(ti99_4_memcard_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1979, ti99_4, 0, 0, ti99_4_60hz, ti99_4, ti99_4, ti99_4, "Texas Instruments", "TI99/4 Home Computer (US)" , 0) -COMP( 1980, ti99_4e, ti99_4, 0, ti99_4_50hz, ti99_4, ti99_4, ti99_4, "Texas Instruments", "TI99/4 Home Computer (Europe)" , 0) -COMP( 1981, ti99_4a, 0, 0, ti99_4a_60hz, ti99_4a, ti99_4a, ti99_4, "Texas Instruments", "TI99/4A Home Computer (US)" , 0) -COMP( 1981, ti99_4ae, ti99_4a, 0, ti99_4a_50hz, ti99_4a, ti99_4a, ti99_4, "Texas Instruments", "TI99/4A Home Computer (Europe)" , 0) -COMP( 1994, ti99_4ev, ti99_4a, 0, ti99_4ev_60hz,ti99_4a, ti99_4ev,ti99_4, "Texas Instruments", "TI99/4A Home Computer with EVPC" , 0) diff --git a/mess/systems/tx0.c b/mess/systems/tx0.c deleted file mode 100644 index 69fefe0d8..000000000 --- a/mess/systems/tx0.c +++ /dev/null @@ -1,501 +0,0 @@ -/* - TX-0 - - Raphael Nabet, 2004 -*/ - -#include -#include "driver.h" - -#include "cpu/pdp1/tx0.h" -#include "includes/tx0.h" -#include "vidhrdw/crt.h" - - -/* pointer to TX-0 RAM */ -static UINT32 *tx0_memory; - - -/* - driver init function - - Set up the tx0_memory pointer -*/ -static DRIVER_INIT( tx0 ) -{ - UINT8 *dst; - - static const unsigned char fontdata6x8[tx0_fontdata_size] = - { /* ASCII characters */ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00, - 0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xf8,0x50,0xf8,0x50,0x00,0x00, - 0x20,0x70,0xc0,0x70,0x18,0xf0,0x20,0x00,0x40,0xa4,0x48,0x10,0x20,0x48,0x94,0x08, - 0x60,0x90,0xa0,0x40,0xa8,0x90,0x68,0x00,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00, - 0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00, - 0x20,0xa8,0x70,0xf8,0x70,0xa8,0x20,0x00,0x00,0x20,0x20,0xf8,0x20,0x20,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00, - 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x00, - 0x70,0x88,0x08,0x10,0x20,0x40,0xf8,0x00,0x70,0x88,0x08,0x30,0x08,0x88,0x70,0x00, - 0x10,0x30,0x50,0x90,0xf8,0x10,0x10,0x00,0xf8,0x80,0xf0,0x08,0x08,0x88,0x70,0x00, - 0x70,0x80,0xf0,0x88,0x88,0x88,0x70,0x00,0xf8,0x08,0x08,0x10,0x20,0x20,0x20,0x00, - 0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x00,0x70,0x88,0x88,0x88,0x78,0x08,0x70,0x00, - 0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60, - 0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0xf8,0x00,0xf8,0x00,0x00,0x00, - 0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00,0x70,0x88,0x08,0x10,0x20,0x00,0x20,0x00, - 0x70,0x88,0xb8,0xa8,0xb8,0x80,0x70,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x00, - 0xf0,0x88,0x88,0xf0,0x88,0x88,0xf0,0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00, - 0xf0,0x88,0x88,0x88,0x88,0x88,0xf0,0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x00, - 0xf8,0x80,0x80,0xf0,0x80,0x80,0x80,0x00,0x70,0x88,0x80,0x98,0x88,0x88,0x70,0x00, - 0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00, - 0x08,0x08,0x08,0x08,0x88,0x88,0x70,0x00,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x00, - 0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x00, - 0x88,0xc8,0xa8,0x98,0x88,0x88,0x88,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00, - 0xf0,0x88,0x88,0xf0,0x80,0x80,0x80,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x08, - 0xf0,0x88,0x88,0xf0,0x88,0x88,0x88,0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00, - 0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00, - 0x88,0x88,0x88,0x88,0x88,0x50,0x20,0x00,0x88,0x88,0x88,0x88,0xa8,0xd8,0x88,0x00, - 0x88,0x50,0x20,0x20,0x20,0x50,0x88,0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x00, - 0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x30,0x20,0x20,0x20,0x20,0x20,0x30,0x00, - 0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x30,0x10,0x10,0x10,0x10,0x10,0x30,0x00, - 0x20,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, - 0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x00, - 0x80,0x80,0xf0,0x88,0x88,0x88,0xf0,0x00,0x00,0x00,0x70,0x88,0x80,0x80,0x78,0x00, - 0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x00,0x00,0x00,0x70,0x88,0xf8,0x80,0x78,0x00, - 0x18,0x20,0x70,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x70, - 0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x20,0x00, - 0x20,0x00,0x20,0x20,0x20,0x20,0x20,0xc0,0x80,0x80,0x90,0xa0,0xe0,0x90,0x88,0x00, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0xf0,0xa8,0xa8,0xa8,0xa8,0x00, - 0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00, - 0x00,0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x08, - 0x00,0x00,0xb0,0xc8,0x80,0x80,0x80,0x00,0x00,0x00,0x78,0x80,0x70,0x08,0xf0,0x00, - 0x20,0x20,0x70,0x20,0x20,0x20,0x18,0x00,0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x00, - 0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x00,0x00,0x00,0xa8,0xa8,0xa8,0xa8,0x50,0x00, - 0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x78,0x08,0x70, - 0x00,0x00,0xf8,0x10,0x20,0x40,0xf8,0x00,0x08,0x10,0x10,0x20,0x10,0x10,0x08,0x00, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x20,0x20,0x10,0x20,0x20,0x40,0x00, - 0x00,0x68,0xb0,0x00,0x00,0x00,0x00,0x00,0x20,0x50,0x20,0x50,0xa8,0x50,0x00,0x00, - }; - - /* set up memory regions */ - tx0_memory = (UINT32 *) memory_region(REGION_CPU1); - - /* set up our font */ - dst = memory_region(REGION_GFX1); - - memcpy(dst, fontdata6x8, tx0_fontdata_size); -} - - -static READ18_HANDLER(tx0_read_mem) -{ - return tx0_memory ? tx0_memory[offset] : 0; -} - -static WRITE18_HANDLER(tx0_write_mem) -{ - if (tx0_memory) - tx0_memory[offset] = data; -} - - -static ADDRESS_MAP_START(tx0_64kw_map, ADDRESS_SPACE_PROGRAM, 32) - AM_RANGE(0x0000, 0xffff) AM_READWRITE(tx0_read_mem, tx0_write_mem) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(tx0_8kw_map, ADDRESS_SPACE_PROGRAM, 32) - AM_RANGE(0x0000, 0x1fff) AM_READWRITE(tx0_read_mem, tx0_write_mem) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( tx0 ) - - PORT_START /* 0: various tx0 operator control panel switches */ - PORT_BIT(tx0_control, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("control panel key") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(tx0_stop_cyc0, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("stop at cycle 0") PORT_CODE(KEYCODE_Q) - PORT_BIT(tx0_stop_cyc1, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("stop at cycle 1") PORT_CODE(KEYCODE_W) - PORT_BIT(tx0_gbl_cm_sel, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CM select") PORT_CODE(KEYCODE_E) - PORT_BIT(tx0_stop, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("stop") PORT_CODE(KEYCODE_P) - PORT_BIT(tx0_restart, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("restart") PORT_CODE(KEYCODE_O) - PORT_BIT(tx0_read_in, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("read in") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(tx0_toggle_dn, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("edit next toggle switch register") PORT_CODE(KEYCODE_DOWN) - PORT_BIT(tx0_toggle_up, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("edit previous toggle switch register") PORT_CODE(KEYCODE_UP) - PORT_BIT(tx0_cm_sel, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TSS CM switch") PORT_CODE(KEYCODE_A) - PORT_BIT(tx0_lr_sel, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("TSS LR switch") PORT_CODE(KEYCODE_SLASH) - - PORT_START /* 1: operator control panel toggle switch register switches MS */ - PORT_BIT( 0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 0") PORT_CODE(KEYCODE_S) - PORT_BIT( 0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 1") PORT_CODE(KEYCODE_D) - - PORT_START /* 2: operator control panel toggle switch register switches LS */ - PORT_BIT( 0100000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 2") PORT_CODE(KEYCODE_F) - PORT_BIT( 0040000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 3") PORT_CODE(KEYCODE_G) - PORT_BIT( 0020000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 4") PORT_CODE(KEYCODE_H) - PORT_BIT( 0010000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 5") PORT_CODE(KEYCODE_J) - PORT_BIT( 0004000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 6") PORT_CODE(KEYCODE_K) - PORT_BIT( 0002000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 7") PORT_CODE(KEYCODE_L) - PORT_BIT( 0001000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 8") PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0000400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 9") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0000200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 10") PORT_CODE(KEYCODE_X) - PORT_BIT( 0000100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 11") PORT_CODE(KEYCODE_C) - PORT_BIT( 0000040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 12") PORT_CODE(KEYCODE_V) - PORT_BIT( 0000020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 13") PORT_CODE(KEYCODE_B) - PORT_BIT( 0000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 14") PORT_CODE(KEYCODE_N) - PORT_BIT( 0000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 15") PORT_CODE(KEYCODE_M) - PORT_BIT( 0000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 16") PORT_CODE(KEYCODE_COMMA) - PORT_BIT( 0000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 17") PORT_CODE(KEYCODE_STOP) - - PORT_START /* 3: typewriter codes 00-17 */ - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("| _") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Space)") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= :") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("+ /") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) - - PORT_START /* 4: typewriter codes 20-37 */ - PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". )") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". (") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- +") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - - PORT_START /* 5: typewriter codes 40-57 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab Key") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - - PORT_START /* 6: typewriter codes 60-77 */ - PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Upper case") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Lower Case") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) - -INPUT_PORTS_END - - -static gfx_layout fontlayout = -{ - 6, 8, /* 6*8 characters */ - tx0_charnum, /* 96+xx characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* straightforward layout */ - { 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 gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &fontlayout, 0, 3 }, - { -1 } /* end of array */ -}; - - -/* - The static palette only includes the pens for the control panel and - the typewriter, as the CRT palette is generated dynamically. - - The CRT palette defines various levels of intensity between white and - black. Grey levels follow an exponential law, so that decrementing the - color index periodically will simulate the remanence of a cathode ray tube. -*/ -static const unsigned char palette[] = -{ - 0xFF,0xFF,0xFF, /* white */ - 0x00,0xFF,0x00, /* green */ - 0x00,0x40,0x00, /* dark green */ - 0xFF,0x00,0x00, /* red */ - 0x80,0x80,0x80 /* light gray */ -}; - -static const unsigned short tx0_colortable[] = -{ - pen_panel_bg, pen_panel_caption, - pen_typewriter_bg, pen_black, - pen_typewriter_bg, pen_red -}; - -/* Initialise the palette */ -static PALETTE_INIT( tx0 ) -{ - /* rgb components for the two color emissions */ - const double r1 = .1, g1 = .1, b1 = .924, r2 = .7, g2 = .7, b2 = .076; - /* half period in seconds for the two color emissions */ - const double half_period_1 = .05, half_period_2 = .20; - /* refresh period in seconds */ - const double update_period = 1./refresh_rate; - double decay_1, decay_2; - double cur_level_1, cur_level_2; -#ifdef MAME_DEBUG - /* level at which we stop emulating the decay and say the pixel is black */ - double cut_level = .02; -#endif - int i; - int r, g, b; - - - /* initialize CRT palette */ - - /* compute the decay factor per refresh frame */ - decay_1 = pow(.5, update_period / half_period_1); - decay_2 = pow(.5, update_period / half_period_2); - - cur_level_1 = cur_level_2 = 255.; /* start with maximum level */ - - for (i=pen_crt_max_intensity; i>0; i--) - { - /* compute the current color */ - r = (int) ((r1*cur_level_1 + r2*cur_level_2) + .5); - g = (int) ((g1*cur_level_1 + g2*cur_level_2) + .5); - b = (int) ((b1*cur_level_1 + b2*cur_level_2) + .5); - /* write color in palette */ - palette_set_color(machine, i, r, g, b); - /* apply decay for next iteration */ - cur_level_1 *= decay_1; - cur_level_2 *= decay_2; - } - -#ifdef MAME_DEBUG - { - int recommended_pen_crt_num_levels; - if (decay_1 > decay_2) - recommended_pen_crt_num_levels = ceil(log(cut_level)/log(decay_1))+1; - else - recommended_pen_crt_num_levels = ceil(log(cut_level)/log(decay_2))+1; - if (recommended_pen_crt_num_levels != pen_crt_num_levels) - mame_printf_debug("File %s line %d: recommended value for pen_crt_num_levels is %d\n", __FILE__, __LINE__, recommended_pen_crt_num_levels); - } - /*if ((cur_level_1 > 255.*cut_level) || (cur_level_2 > 255.*cut_level)) - mame_printf_debug("File %s line %d: Please take higher value for pen_crt_num_levels or smaller value for decay\n", __FILE__, __LINE__);*/ -#endif - - palette_set_color(machine, 0, 0, 0, 0); - - /* load static palette */ - palette_set_colors(machine, pen_crt_num_levels, palette, sizeof(palette) / sizeof(palette[0]) / 3); - - memcpy(colortable, tx0_colortable, sizeof(tx0_colortable)); -} - - -tx0_reset_param_t tx0_reset_param = -{ - { - tx0_io_cpy, - tx0_io_r1l, - tx0_io_dis, - tx0_io_r3l, - tx0_io_prt, - /*tx0_io_typ*/NULL, - tx0_io_p6h, - tx0_io_p7h - }, - tx0_sel, - tx0_io_reset_callback -}; - - -static MACHINE_DRIVER_START(tx0_64kw) - - /* basic machine hardware */ - /* TX0 CPU @ approx. 167 kHz (no master clock, but the memory cycle time is - approximately 6usec) */ - MDRV_CPU_ADD(TX0_64KW, 166667) - MDRV_CPU_CONFIG(tx0_reset_param) - MDRV_CPU_PROGRAM_MAP(tx0_64kw_map, 0) - /*MDRV_CPU_PORTS(readport, writeport)*/ - /* dummy interrupt: handles input */ - MDRV_CPU_VBLANK_INT(tx0_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(refresh_rate) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( tx0 ) - - /* video hardware (includes the control panel and typewriter output) */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(virtual_width, virtual_height) - MDRV_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(pen_crt_num_levels + (sizeof(palette) / sizeof(palette[0]) / 3)) - MDRV_COLORTABLE_LENGTH(sizeof(tx0_colortable) / sizeof(tx0_colortable[0])) - - MDRV_PALETTE_INIT(tx0) - MDRV_VIDEO_START(tx0) - MDRV_VIDEO_EOF(crt) - MDRV_VIDEO_UPDATE(tx0) - - /* no sound */ - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(tx0_8kw) - - /* basic machine hardware */ - /* TX0 CPU @ approx. 167 kHz (no master clock, but the memory cycle time is - approximately 6usec) */ - MDRV_CPU_ADD(TX0_8KW, 166667) - MDRV_CPU_CONFIG(tx0_reset_param) - MDRV_CPU_PROGRAM_MAP(tx0_8kw_map, 0) - /*MDRV_CPU_PORTS(readport, writeport)*/ - /* dummy interrupt: handles input */ - MDRV_CPU_VBLANK_INT(tx0_interrupt, 1) - /*MDRV_CPU_PERIODIC_INT(func, rate)*/ - - MDRV_SCREEN_REFRESH_RATE(refresh_rate) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - /*MDRV_INTERLEAVE(interleave)*/ - - MDRV_MACHINE_START( tx0 ) - - /* video hardware (includes the control panel and typewriter output) */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(virtual_width, virtual_height) - MDRV_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(pen_crt_num_levels + (sizeof(palette) / sizeof(palette[0]) / 3)) - MDRV_COLORTABLE_LENGTH(sizeof(tx0_colortable) / sizeof(tx0_colortable[0])) - - MDRV_PALETTE_INIT(tx0) - MDRV_VIDEO_START(tx0) - MDRV_VIDEO_EOF(crt) - MDRV_VIDEO_UPDATE(tx0) - - /* no sound */ - -MACHINE_DRIVER_END - -ROM_START(tx0_64kw) - /*CPU memory space*/ - ROM_REGION(0x10000 * sizeof(UINT32),REGION_CPU1,0) - /* Note this computer has no ROM... */ - - ROM_REGION(tx0_fontdata_size, REGION_GFX1, 0) - /* space filled with our font */ -ROM_END - -ROM_START(tx0_8kw) - /*CPU memory space*/ - ROM_REGION(0x2000 * sizeof(UINT32),REGION_CPU1,0) - /* Note this computer has no ROM... */ - - ROM_REGION(tx0_fontdata_size, REGION_GFX1, 0) - /* space filled with our font */ -ROM_END - -static void tx0_punchtape_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* punchtape */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PUNCHTAPE; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_tx0_tape; break; - case DEVINFO_PTR_LOAD: info->load = device_load_tx0_tape; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_tx0_tape; break; - case DEVINFO_PTR_GET_DISPOSITIONS: info->getdispositions = tx0_tape_get_open_mode; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap,rim"); break; - } -} - -static void tx0_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_PRINTER; break; - case DEVINFO_INT_READABLE: info->i = 0; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_tx0_typewriter; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_tx0_typewriter; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "typ"); break; - } -} - -static void tx0_magtape_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* magtape */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_CASSETTE; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_tx0_magtape; break; - case DEVINFO_PTR_LOAD: info->load = device_load_tx0_magtape; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_tx0_magtape; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "tap"); break; - } -} - -SYSTEM_CONFIG_START(tx0) - CONFIG_DEVICE(tx0_punchtape_getinfo) - CONFIG_DEVICE(tx0_magtape_getinfo) - CONFIG_DEVICE(tx0_printer_getinfo) -SYSTEM_CONFIG_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1956, tx0_64kw, 0, 0, tx0_64kw, tx0, tx0, tx0, "MIT", "TX-0 original demonstrator (64 kWords of RAM)" , 0) -COMP( 1962, tx0_8kw, 0, 0, tx0_8kw, tx0, tx0, tx0, "MIT", "TX-0 upgraded system (8 kWords of RAM)" , 0) diff --git a/mess/systems/vectrex.c b/mess/systems/vectrex.c deleted file mode 100644 index 54dfc0827..000000000 --- a/mess/systems/vectrex.c +++ /dev/null @@ -1,241 +0,0 @@ -/***************************************************************** - -GCE Vectrex - -Mathis Rosenhauer -Christopher Salomon (technical advice) -Bruce Tomlin (hardware info) - -*****************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/vector.h" -#include "machine/6522via.h" -#include "includes/vectrex.h" -#include "devices/cartslot.h" -#include "sound/ay8910.h" - -ADDRESS_MAP_START( vectrex_map , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x7fff) AM_ROM - AM_RANGE( 0xc800, 0xcbff) AM_RAM AM_MIRROR( 0x0400 ) AM_BASE(&vectrex_ram_base) AM_SIZE(&vectrex_ram_size) - AM_RANGE( 0xd000, 0xd7ff) AM_READWRITE( via_0_r, via_0_w ) - AM_RANGE( 0xe000, 0xffff) AM_ROM -ADDRESS_MAP_END - -INPUT_PORTS_START( vectrex ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(2) - - PORT_START /* IN1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_REVERSE - - PORT_START /* IN3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_PLAYER(2) - - PORT_START /* IN4 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(2) - - PORT_START /* IN5 */ - //PORT_DIPNAME( 0x01, 0x00, "3D Imager", CODE_NONE ) - PORT_DIPNAME( 0x01, 0x00, "3D Imager") - PORT_DIPSETTING(0x00, DEF_STR ( Off )) - PORT_DIPSETTING(0x01, DEF_STR ( On )) - //PORT_DIPNAME( 0x02, 0x00, "Separate images", CODE_NONE ) - PORT_DIPNAME( 0x02, 0x00, "Separate images") - PORT_DIPSETTING(0x00, DEF_STR ( No )) - PORT_DIPSETTING(0x02, DEF_STR ( Yes )) - //PORT_DIPNAME( 0x1c, 0x10, "Left eye", CODE_NONE ) - PORT_DIPNAME( 0x1c, 0x10, "Left eye") - PORT_DIPSETTING(0x00, "Black") - PORT_DIPSETTING(0x04, "Red") - PORT_DIPSETTING(0x08, "Green") - PORT_DIPSETTING(0x0c, "Blue") - PORT_DIPSETTING(0x10, "Color") - //PORT_DIPNAME( 0xe0, 0x80, "Right eye", CODE_NONE ) - PORT_DIPNAME( 0xe0, 0x80, "Right eye") - PORT_DIPSETTING(0x00, "Black") - PORT_DIPSETTING(0x20, "Red") - PORT_DIPSETTING(0x40, "Green") - PORT_DIPSETTING(0x60, "Blue") - PORT_DIPSETTING(0x80, "Color") - - PORT_START /* IN6 */ - PORT_DIPNAME( 0x03, 0x00, "Lightpen") - PORT_DIPSETTING(0x00, DEF_STR ( Off )) - PORT_DIPSETTING(0x01, "left port") - PORT_DIPSETTING(0x02, "right port") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_CODE(MOUSECODE_1_BUTTON1) - - PORT_START /* Lightpen - X AXIS */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(1) PORT_PLAYER(1) - - PORT_START /* Lightpen - Y AXIS */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(1) PORT_PLAYER(1) - - -INPUT_PORTS_END - - - -static struct AY8910interface ay8910_interface = -{ - input_port_0_r, - 0, - vectrex_psg_port_w, - 0 -}; - - -static MACHINE_DRIVER_START( vectrex ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809, 1500000) /* 1.5 Mhz */ - MDRV_CPU_PROGRAM_MAP(vectrex_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 299) - MDRV_PALETTE_LENGTH(256 + 32768) - /*MDRV_ASPECT_RATIO(3, 4)*/ - - MDRV_VIDEO_START( vectrex ) - MDRV_VIDEO_UPDATE( vectrex ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static void vectrex_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_vectrex_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bin,gam,vec"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(vectrex) - CONFIG_DEVICE(vectrex_cartslot_getinfo) -SYSTEM_CONFIG_END - -ROM_START(vectrex) - ROM_REGION(0x10000,REGION_CPU1, 0) - ROM_LOAD("system.img", 0xe000, 0x2000, CRC(ba13fb57) SHA1(65d07426b520ddd3115d40f255511e0fd2e20ae7)) -ROM_END - - -/***************************************************************** - - RA+A Spectrum I+ - - The Spectrum I+ was a modified Vectrex. It had a 32K ROM cart - and 2K additional battery backed RAM (0x8000 - 0x87ff). PB6 - was used to signal inserted coins to the VIA. The unit was - controlled by 8 buttons (2x4 buttons of controller 1 and 2). - Each button had a LED which were mapped to 0xa000. - The srvice mode can be accessed by pressing button - 8 during startup. As soon as all LEDs light up, - press 2 and 3 without releasing 8. Then release 8 and - after that 2 and 3. You can leave the screen where you enter - ads by pressing 8 several times. - - Character matrix is: - - btn| 1 2 3 4 5 6 7 8 - ---+------------------------ - 1 | 0 1 2 3 4 5 6 7 - 2 | 8 9 A B C D E F - 3 | G H I J K L M N - 4 | O P Q R S T U V - 5 | W X Y Z sp ! " # - 6 | $ % & ' ( ) * + - 7 | , - _ / : ; ? = - 8 |bs ret up dn l r hom esc - - The first page of ads is shown with the "result" of the - test. Remaining pages are shown in attract mode. If no extra - ram is present, the word COLOR is scrolled in big vector! - letters in attract mode. - -*****************************************************************/ - -ADDRESS_MAP_START( raaspec_map , ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x7fff) AM_ROM - AM_RANGE( 0x8000, 0x87ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE( 0xa000, 0xa000) AM_WRITE( raaspec_led_w ) - AM_RANGE( 0xc800, 0xcbff) AM_RAM AM_RAM AM_MIRROR( 0x0400 ) - AM_RANGE( 0xd000, 0xd7ff) AM_READWRITE ( via_0_r, via_0_w) - AM_RANGE( 0xe000, 0xffff) AM_ROM -ADDRESS_MAP_END - -INPUT_PORTS_START( raaspec ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) - -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( raaspec ) - MDRV_IMPORT_FROM( vectrex ) - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( raaspec_map, 0 ) - MDRV_NVRAM_HANDLER(generic_0fill) - - MDRV_PALETTE_LENGTH(254) - - MDRV_VIDEO_START( raaspec ) -MACHINE_DRIVER_END - -ROM_START(raaspec) - ROM_REGION(0x10000,REGION_CPU1, 0) - ROM_LOAD("spectrum.bin", 0x0000, 0x8000, CRC(20af7f3f) SHA1(7ce85db8dd32687ad7629631ae113820371faf7c)) - ROM_LOAD("system.img", 0xe000, 0x2000, CRC(ba13fb57) SHA1(65d07426b520ddd3115d40f255511e0fd2e20ae7)) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -CONS( 1982, vectrex, 0, 0, vectrex, vectrex, vectrex, vectrex, "General Consumer Electronics", "Vectrex" , ROT270) -CONS( 1984, raaspec, vectrex, 0, raaspec, raaspec, 0, NULL, "Roy Abel & Associates", "Spectrum I+" , ROT270) diff --git a/mess/systems/vtech1.c b/mess/systems/vtech1.c deleted file mode 100644 index 55974848e..000000000 --- a/mess/systems/vtech1.c +++ /dev/null @@ -1,524 +0,0 @@ -/****************************************************************************** - -Video Technology Laser 110-310 computers: - - Video Technology Laser 110 - Sanyo Laser 110 - Video Technology Laser 200 - Salora Fellow - Texet TX-8000 - Video Technology VZ-200 - Video Technology Laser 210 - Dick Smith Electronics VZ-200 - Sanyo Laser 210 - Video Technology Laser 310 - Dick Smith Electronics VZ-300 - -System driver: - - Juergen Buchmueller , Dec 1999 - - everything - - Dirk Best , May 2004 - - clean up - - fixed parent/clone relationsips and memory size for the Laser 200 - - fixed loading of the DOS ROM - - added BASIC V2.1 - - added SHA1 checksums - - Dirk Best , March 2006 - - 64KB memory expansion (banked) - - cartridge support - -Thanks go to: - - - Guy Thomason - - Jason Oakley - - Bushy Maunder - - and anybody else on the vzemu list :) - - Davide Moretti for the detailed description of the colors - - Leslie Milburn - -Memory maps: - - Laser 110/200 - 0000-1FFF 8K ROM 0 - 2000-3FFF 8K ROM 1 - 4000-5FFF 8K DOS ROM or other cartridges (optional) - 6000-67FF 2K reserved for rom cartridges - 6800-6FFF 2K memory mapped I/O - R: keyboard - W: cassette I/O, speaker, VDP control - 7000-77FF 2K video RAM - 7800-7FFF 2K internal user RAM - 8800-C7FF 16K memory expansion - 8000-BFFF 64K memory expansion, first bank - C000-FFFF 64K memory expansion, other banks - - Laser 210 - 0000-1FFF 8K ROM 0 - 2000-3FFF 8K ROM 1 - 4000-5FFF 8K DOS ROM or other cartridges (optional) - 6000-67FF 2K reserved for rom cartridges - 6800-6FFF 2K memory mapped I/O - R: keyboard - W: cassette I/O, speaker, VDP control - 7000-77FF 2K video RAM - 7800-8FFF 6K internal user RAM (3x2K: U2, U3, U4) - 9000-CFFF 16K memory expansion - 8000-BFFF 64K memory expansion, first bank - C000-FFFF 64K memory expansion, other banks - - Laser 310 - 0000-3FFF 16K ROM - 4000-5FFF 8K DOS ROM or other cartridges (optional) - 6000-67FF 2K reserved for rom cartridges - 6800-6FFF 2K memory mapped I/O - R: keyboard - W: cassette I/O, speaker, VDP control - 7000-77FF 2K video RAM - 7800-B7FF 16K internal user RAM - B800-F7FF 16K memory expansion - 8000-BFFF 64K memory expansion, first bank - C000-FFFF 64K memory expansion, other banks - -Todo: - - - Figure out which machines were shipped with which ROM version - where not known (currently only a guess) - - Lightpen support - - External keyboard? (and maybe the other strange I/O stuff which is - commented out at the moment...) - -Notes: - - - The only known dumped cartridge is the DOS ROM: - CRC(b6ed6084) SHA1(59d1cbcfa6c5e1906a32704fbf0d9670f0d1fd8b) - - -******************************************************************************/ - - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6847.h" -#include "includes/vtech1.h" -#include "devices/cartslot.h" -#include "devices/snapquik.h" -#include "devices/cassette.h" -#include "devices/printer.h" -#include "devices/z80bin.h" -#include "formats/vt_cas.h" -#include "sound/speaker.h" -#include "inputx.h" - - -/****************************************************************************** - Address Maps -******************************************************************************/ - -/* Note: Expansion memory is dynamically mapped in machine/vtech1.c */ - -static ADDRESS_MAP_START(laser110_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_ROM /* basic rom */ - AM_RANGE(0x4000, 0x5fff) AM_ROM /* dos rom or other catridges */ - AM_RANGE(0x6000, 0x67ff) AM_ROM /* reserved for cartridges */ - AM_RANGE(0x6800, 0x6fff) AM_READWRITE(vtech1_keyboard_r, vtech1_latch_w) - AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) /* (6847) */ - AM_RANGE(0x7800, 0x7fff) AM_RAMBANK(1) /* 2KB user ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(laser210_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_ROM /* basic rom */ - AM_RANGE(0x4000, 0x5fff) AM_ROM /* dos rom or other catridges */ - AM_RANGE(0x6000, 0x67ff) AM_ROM /* reserved for cartridges */ - AM_RANGE(0x6800, 0x6fff) AM_READWRITE(vtech1_keyboard_r, vtech1_latch_w) - AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) /* U7 (6847) */ - AM_RANGE(0x7800, 0x8fff) AM_RAMBANK(1) /* 6KB user ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(laser310_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x0000, 0x3fff) AM_ROM /* basic rom */ - AM_RANGE(0x4000, 0x5fff) AM_ROM /* dos rom or other catridges */ - AM_RANGE(0x6000, 0x67ff) AM_ROM /* reserved for cartridges */ - AM_RANGE(0x6800, 0x6fff) AM_READWRITE(vtech1_keyboard_r, vtech1_latch_w) - AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) /* (6847) */ - AM_RANGE(0x7800, 0xb7ff) AM_RAMBANK(1) /* 16KB user ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START(vtech1_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x0f) AM_READWRITE(vtech1_printer_r, vtech1_printer_w) - AM_RANGE(0x10, 0x1f) AM_READWRITE(vtech1_fdc_r, vtech1_fdc_w) - AM_RANGE(0x20, 0x2f) AM_READ(vtech1_joystick_r) - AM_RANGE(0x30, 0x3f) AM_READWRITE(vtech1_serial_r, vtech1_serial_w) - AM_RANGE(0x40, 0x4f) AM_READ(vtech1_lightpen_r) - AM_RANGE(0x50, 0x5f) AM_NOP /* Real time clock (proposed) */ - AM_RANGE(0x60, 0x6f) AM_NOP /* External keyboard */ - AM_RANGE(0x70, 0x7f) AM_WRITE(vtech1_memory_bank_w) - AM_RANGE(0x80, 0xff) AM_NOP -// AM_RANGE(0xc9, 0xca) AM_NOP /* Eprom programmer */ -// AM_RANGE(0xd8, 0xe7) AM_NOP /* Auto boot at 8000-9fff (proposed) */ -// AM_RANGE(0xe8, 0xf7) AM_NOP /* RDOS at 6000-67ff (proposed) */ -// AM_RANGE(0xf0, 0xf3) AM_NOP /* 24 bit I/O interface */ -// AM_RANGE(0xf8, 0xff) AM_NOP /* RAM Disk at 4000-5fff (proposed) */ -// AM_RANGE(0xe0, 0xff) AM_NOP /* D. Newcombes Rom Board */ -ADDRESS_MAP_END - - -/****************************************************************************** - Input Ports -******************************************************************************/ - -INPUT_PORTS_START(vtech1) - PORT_START_TAG("keyboard_0") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R RETURN LEFT$") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q FOR CHR$") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E NEXT LEN(") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W TO VAL(") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T THEN MID$") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - - PORT_START_TAG("keyboard_1") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F GOSUB RND(") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A MODE( ASC(") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DIM RESTORE") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S STEP STR$(") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO STOP") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - - PORT_START_TAG("keyboard_2") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V LPRINT USR") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z PEEK( INP") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CONT COPY") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X POKE OUT") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B LLIST SOUND") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - - PORT_START_TAG("keyboard_3") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ VERIFY ATN(") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! CSAVE SIN(") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 # CRUN TAN(") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \" CLOAD COS(") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % LIST LOG(") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') - - PORT_START_TAG("keyboard_4") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M \\ \xE2\x86\x90") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('\\') PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE \xE2\x86\x93") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHAR('~') PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", < \xE2\x86\x92") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". > \xE2\x86\x91") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N ^ COLOR USING") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('^') - - PORT_START_TAG("keyboard_5") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 ' END SGN(") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 @ DATA INT(") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('@') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 ( NEW SQR(") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- = [Break]") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') PORT_CHAR(UCHAR_MAMEKEY(CANCEL)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ) READ ABS(") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 & RUN EXP(") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') - - PORT_START_TAG("keyboard_6") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF INKEY$") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P ] PRINT NOT") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR(']') - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT AND") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN [Function]") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O [ LET OR") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('[') - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y ELSE RIGHT$(") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - - PORT_START_TAG("keyboard_7") - PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J REM RESET") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; + [Rubout]") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_CHAR(UCHAR_MAMEKEY(DEL)) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K / TAB( POINT") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('/') - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": * [Inverse]") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L ? [Insert]") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('?') PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H CLS SET") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - - PORT_START_TAG("joystick_0") - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) - - PORT_START_TAG("joystick_0_arm") - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1) - PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START_TAG("joystick_1") - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) - - PORT_START_TAG("joystick_1_arm") - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2) - PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED) -INPUT_PORTS_END - - -/****************************************************************************** - Audio Initialisation -******************************************************************************/ - -static INT16 speaker_levels[] = {-32768, 0, 32767, 0}; - -static struct Speaker_interface speaker_interface = -{ - 4, - speaker_levels -}; - - -/****************************************************************************** - Machine Drivers -******************************************************************************/ - -static MACHINE_DRIVER_START(laser110) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, VTECH1_CLK) /* 3.57950 Mhz */ - MDRV_CPU_PROGRAM_MAP(laser110_mem, 0) - MDRV_CPU_IO_MAP(vtech1_io, 0) - MDRV_CPU_VBLANK_INT(vtech1_interrupt,1) - MDRV_SCREEN_REFRESH_RATE(M6847_PAL_FRAMES_PER_SECOND) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_START(laser110) - - /* video hardware */ - MDRV_VIDEO_START(vtech1m) - MDRV_VIDEO_UPDATE(m6847) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(320, 25+192+26) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 1, 239) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_CONFIG(speaker_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(laser200) - MDRV_IMPORT_FROM(laser110) - - MDRV_VIDEO_START(vtech1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(laser210) - MDRV_IMPORT_FROM(laser200) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(laser210_mem, 0) - - MDRV_MACHINE_START(laser210) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START(laser310) - MDRV_IMPORT_FROM( laser200 ) - MDRV_CPU_REPLACE( "main", Z80, VZ300_XTAL1_CLK/5) /* 3.546894 Mhz */ - MDRV_CPU_PROGRAM_MAP(laser310_mem, 0) - - MDRV_MACHINE_START(laser310) -MACHINE_DRIVER_END - - -/****************************************************************************** - ROM Definitions -******************************************************************************/ - -ROM_START(laser110) - ROM_REGION(0x6800, REGION_CPU1, 0) - ROM_LOAD("vtechv12.u09", 0x0000, 0x2000, CRC(99412d43) SHA1(6aed8872a0818be8e1b08ecdfd92acbe57a3c96d)) - ROM_LOAD("vtechv12.u10", 0x2000, 0x2000, CRC(e4c24e8b) SHA1(9d8fb3d24f3d4175b485cf081a2d5b98158ab2fb)) - ROM_CART_LOAD(0, "rom\0", 0x4000, 0x27ff, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -/* The VZ-200 sold in Germany and the Netherlands came with BASIC V1.1, which - is currently not dumped. */ -ROM_START(vz200de) - ROM_REGION(0x6800, REGION_CPU1, 0) - ROM_LOAD("vtechv11.u09", 0x0000, 0x2000, NO_DUMP) - ROM_LOAD("vtechv11.u10", 0x2000, 0x2000, NO_DUMP) - ROM_CART_LOAD(0, "rom\0", 0x4000, 0x27ff, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -#define rom_las110de rom_laser110 -#define rom_laser200 rom_laser110 -#define rom_fellow rom_laser110 - -/* It's possible that the Texet TX8000 came with BASIC V1.0, but this - needs to be verified */ -#define rom_tx8000 rom_laser110 - -ROM_START(laser210) - ROM_REGION(0x6800, REGION_CPU1, 0) - ROM_LOAD("vtechv20.u09", 0x0000, 0x2000, CRC(cc854fe9) SHA1(6e66a309b8e6dc4f5b0b44e1ba5f680467353d66)) - ROM_LOAD("vtechv20.u10", 0x2000, 0x2000, CRC(7060f91a) SHA1(8f3c8f24f97ebb98f3c88d4e4ba1f91ffd563440)) - ROM_CART_LOAD(0, "rom\0", 0x4000, 0x27ff, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -#define rom_las210de rom_laser210 -#define rom_vz200 rom_laser210 - -SYSTEM_BIOS_START(laser310) - SYSTEM_BIOS_ADD(0, "basic20", "BASIC V2.0") - SYSTEM_BIOS_ADD(1, "basic21", "BASIC V2.1 (hack)") -SYSTEM_BIOS_END - -ROM_START(laser310) - ROM_REGION(0x6800, REGION_CPU1, 0) - ROMX_LOAD("vtechv20.u12", 0x0000, 0x4000, CRC(613de12c) SHA1(f216c266bc09b0dbdbad720796e5ea9bc7d91e53), ROM_BIOS(1)) - ROMX_LOAD("vtechv21.u12", 0x0000, 0x4000, CRC(f7df980f) SHA1(5ba14a7a2eedca331b033901080fa5d205e245ea), ROM_BIOS(2)) - ROM_CART_LOAD(0, "rom\0", 0x4000, 0x27ff, ROM_NOMIRROR | ROM_OPTIONAL) -ROM_END - -#define rom_vz300 rom_laser310 - - -/****************************************************************************** - System Config -******************************************************************************/ - -static void vtech1_printer_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* printer */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - default: printer_device_getinfo(devclass, state, info); break; - } -} - -static void vtech1_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) vtech1_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void vtech1_snapshot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* snapshot */ - switch(state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "vz"); break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_SNAPSHOT_LOAD: info->f = (genf *) snapshot_load_vtech1; break; - - /* --- the following bits of info are returned as doubles --- */ - case DEVINFO_FLOAT_SNAPSHOT_DELAY: info->d = 0.5; break; - - default: snapshot_device_getinfo(devclass, state, info); break; - } -} - -static void vtech1_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 1; break; - case DEVINFO_INT_CREATABLE: info->i = 1; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_vtech1_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - } -} - -/* Memory expansions available for the Laser/VZ computers: - - - a 16kb expansion without banking - - a 64kb expansion where the first bank is fixed and the other 3 are - banked in as needed - - a banked memory expansion similar to the 64kb one, that the user could - fill themselves with memory up to 4MB total. - - They are externally connected devices. The 16kb extension is different - between Laser 110/210/310 computers, though it could be relativly - easily modified to work on another model. */ - -SYSTEM_CONFIG_START(vtech1) - CONFIG_DEVICE(vtech1_printer_getinfo) - CONFIG_DEVICE(cartslot_device_getinfo) - CONFIG_DEVICE(vtech1_cassette_getinfo) - CONFIG_DEVICE(vtech1_snapshot_getinfo) - CONFIG_DEVICE(vtech1_floppy_getinfo) - CONFIG_DEVICE(z80bin_quickload_getinfo) - CONFIG_RAM_DEFAULT (66 * 1024) /* with 64K memory expansion */ - CONFIG_RAM (4098 * 1024) /* with 4MB memory expansion */ -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(laser110) - CONFIG_IMPORT_FROM (vtech1) - CONFIG_RAM ( 2 * 1024) /* standard */ - CONFIG_RAM (18 * 1024) /* with 16K memory expansion */ -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(laser210) - CONFIG_IMPORT_FROM (vtech1) - CONFIG_RAM ( 6 * 1024) /* standard */ - CONFIG_RAM (22 * 1024) /* with 16K memory expansion */ -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(laser310) - CONFIG_IMPORT_FROM (vtech1) - CONFIG_RAM (16 * 1024) /* standard */ - CONFIG_RAM (32 * 1024) /* with 16K memory expansion */ -SYSTEM_CONFIG_END - - -/****************************************************************************** - Drivers -******************************************************************************/ - -/* YEAR NAME PARENT BIOS COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ -COMP( 1983, laser110, 0, 0, laser110, vtech1, NULL, laser110, "Video Technology", "Laser 110" , 0) -COMP( 1983, las110de, laser110, 0, laser110, vtech1, NULL, laser110, "Sanyo", "Laser 110 (Germany)" , 0) - -COMP( 1983, laser200, 0, 0, laser200, vtech1, NULL, laser110, "Video Technology", "Laser 200" , 0) -COMP( 1983, vz200de, laser200, 0, laser200, vtech1, NULL, laser110, "Video Technology", "VZ-200 (Germany & Netherlands)", 0) -COMP( 1983, fellow, laser200, 0, laser200, vtech1, NULL, laser110, "Salora", "Fellow (Finland)" , 0) -COMP( 1983, tx8000, laser200, 0, laser200, vtech1, NULL, laser110, "Texet", "TX-8000 (UK)" , 0) - -COMP( 1984, laser210, 0, 0, laser210, vtech1, NULL, laser210, "Video Technology", "Laser 210" , 0) -COMP( 1984, vz200, laser210, 0, laser210, vtech1, NULL, laser210, "Dick Smith Electronics", "VZ-200 (Oceania)" , 0) -COMP( 1984, las210de, laser210, 0, laser210, vtech1, NULL, laser210, "Sanyo", "Laser 210 (Germany)" , 0) - -COMPB(1984, laser310, 0, laser310, 0, laser310, vtech1, NULL, laser310, "Video Technology", "Laser 310" , 0) -COMPB(1984, vz300, laser310, laser310, 0, laser310, vtech1, NULL, laser310, "Dick Smith Electronics", "VZ-300 (Oceania)" , 0) diff --git a/mess/systems/vtech2.c b/mess/systems/vtech2.c deleted file mode 100644 index acf2fa73e..000000000 --- a/mess/systems/vtech2.c +++ /dev/null @@ -1,609 +0,0 @@ -/*************************************************************************** - vtech2.c - - system driver - Juergen Buchmueller MESS driver, Jan 2000 - Davide Moretti ROM dump and hardware description - - LASER 350 (it has only 16K of RAM) - FFFF|-------| - | Empty | - | 5 | - C000|-------| - | RAM | - | 3 | - 8000|-------|-------|-------| - | ROM |Display| I/O | - | 1 | 3 | 2 | - 4000|-------|-------|-------| - | ROM | - | 0 | - 0000|-------| - - - Laser 500/700 with 64K of RAM and - Laser 350 with 64K RAM expansion module - FFFF|-------| - | RAM | - | 5 | - C000|-------| - | RAM | - | 4 | - 8000|-------|-------|-------| - | ROM |Display| I/O | - | 1 | 7 | 2 | - 4000|-------|-------|-------| - | ROM | - | 0 | - 0000|-------| - - - Bank REGION_CPU1 Contents - 0 0x00000 - 0x03fff ROM 1st half - 1 0x04000 - 0x07fff ROM 2nd half - 2 n/a I/O 2KB area (mirrored 8 times?) - 3 0x0c000 - 0x0ffff Display RAM (16KB) present in Laser 350 only! - 4 0x10000 - 0x13fff RAM #4 - 5 0x14000 - 0x17fff RAM #5 - 6 0x18000 - 0x1bfff RAM #6 - 7 0x1c000 - 0x1ffff RAM #7 (Display RAM with 64KB) - 8 0x20000 - 0x23fff RAM #8 (Laser 700 or 128KB extension) - 9 0x24000 - 0x27fff RAM #9 - A 0x28000 - 0x2bfff RAM #A - B 0x2c000 - 0x2ffff RAM #B - C 0x30000 - 0x33fff ROM expansion - D 0x34000 - 0x34fff ROM expansion - E 0x38000 - 0x38fff ROM expansion - F 0x3c000 - 0x3ffff ROM expansion - - TODO: - Add ROMs and drivers for the Laser100, 110, - 210 and 310 machines and the Texet 8000. - They should probably go to the vtech1.c files, though. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/vtech2.h" -#include "devices/cartslot.h" -#include "devices/cassette.h" -#include "formats/vt_cas.h" - -#define VERBOSE 0 - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) /* x */ -#endif - -static ADDRESS_MAP_START(vtech2_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE(MRA8_BANK1, MWA8_BANK1) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK2, MWA8_BANK2) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE(MRA8_BANK3, MWA8_BANK3) - AM_RANGE(0xc000, 0xffff) AM_READWRITE(MRA8_BANK4, MWA8_BANK4) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(vtech2_io, ADDRESS_SPACE_IO, 8) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x10, 0x1f) AM_READWRITE(laser_fdc_r, laser_fdc_w) - AM_RANGE(0x40, 0x43) AM_WRITE(laser_bank_select_w) - AM_RANGE(0x44, 0x44) AM_WRITE(laser_bg_mode_w) - AM_RANGE(0x45, 0x45) AM_WRITE(laser_two_color_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( laser350 ) - PORT_START /* IN0 KEY ROW 0 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - - PORT_START /* IN1 KEY ROW 1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - - PORT_START /* IN2 KEY ROW 2 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* TAB not on the Laser350 */ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - - PORT_START /* IN3 KEY ROW 3 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* ESC not on the Laser350 */ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) - - PORT_START /* IN4 KEY ROW 4 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - - PORT_START /* IN5 KEY ROW 5 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* BS not on the Laser350 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - - PORT_START /* IN6 KEY ROW 6 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - - PORT_START /* IN7 KEY ROW 7 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* GRAPH not on the Laser350 */ - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - - PORT_START /* IN8 KEY ROW A */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* not on the Laser350 */ - - PORT_START /* IN9 KEY ROW B */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* not on the Laser350 */ - - PORT_START /* IN10 KEY ROW C */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* not on the Laser350 */ - - PORT_START /* IN11 KEY ROW D */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* not on the Laser350 */ - - PORT_START /* IN12 Tape control */ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tape start") PORT_CODE(KEYCODE_SLASH_PAD) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tape stop") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tape rewind") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT (0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - -INPUT_PORTS_END - -INPUT_PORTS_START( laser500 ) - PORT_START /* IN0 KEY ROW 0 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) - - PORT_START /* IN1 KEY ROW 1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) - - PORT_START /* IN2 KEY ROW 2 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAB") PORT_CODE(KEYCODE_TAB) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) - - PORT_START /* IN3 KEY ROW 3 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) - - PORT_START /* IN4 KEY ROW 4 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) - - PORT_START /* IN5 KEY ROW 5 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BS") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) - - PORT_START /* IN6 KEY ROW 6 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) - - PORT_START /* IN7 KEY ROW 7 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPH") PORT_CODE(KEYCODE_LALT) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_TILDE) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) - - PORT_START /* IN8 KEY ROW A */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN9 KEY ROW B */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) - - PORT_START /* IN10 KEY ROW C */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CAPS") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DLINE") PORT_CODE(KEYCODE_PGUP) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_UP) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_LEFT) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_RIGHT) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_DOWN) - - PORT_START /* IN11 KEY ROW D */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xC3\xA6") PORT_CODE(KEYCODE_ASTERISK) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INS") PORT_CODE(KEYCODE_INSERT) - -INPUT_PORTS_END - -static gfx_layout charlayout_80 = -{ - 8,8, /* 8 x 8 characters */ - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - /* y offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout charlayout_40 = -{ - 8*2,8, /* 8*2 x 8 characters */ - 256, /* 256 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* no bitplanes; 1 bit per pixel */ - /* x offsets */ - { 0,0, 1,1, 2,2, 3,3, 4,4, 5,5, 6,6, 7,7 }, - /* y offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - 8*8 /* every char takes 8 bytes */ -}; - -static gfx_layout gfxlayout_1bpp = -{ - 8,1, /* 8x1 pixels */ - 256, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0 }, /* no bitplanes */ - /* x offsets */ - { 7,6,5,4,3,2,1,0 }, - /* y offsets */ - { 0 }, - 8 /* one byte per code */ -}; - -static gfx_layout gfxlayout_1bpp_dw = -{ - 8*2,1, /* 8 times 2x1 pixels */ - 256, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0 }, /* no bitplanes */ - /* x offsets */ - { 7,7,6,6,5,5,4,4,3,3,2,2,1,1,0,0 }, - /* y offsets */ - { 0 }, - 8 /* one byte per code */ -}; - -static gfx_layout gfxlayout_1bpp_qw = -{ - 8*4,1, /* 8 times 4x1 pixels */ - 256, /* 256 codes */ - 1, /* 1 bit per pixel */ - { 0 }, /* no bitplanes */ - /* x offsets */ - { 7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,0,0,0,0 }, - /* y offsets */ - { 0 }, - 8 /* one byte per code */ -}; - -static gfx_layout gfxlayout_4bpp = -{ - 2*4,1, /* 2 times 4x1 pixels */ - 256, /* 256 codes */ - 4, /* 4 bit per pixel */ - { 0,1,2,3 }, /* four bitplanes */ - /* x offsets */ - { 4,4,4,4, 0,0,0,0 }, - /* y offsets */ - { 0 }, - 2*4 /* one byte per code */ -}; - -static gfx_layout gfxlayout_4bpp_dh = -{ - 2*4,2, /* 2 times 4x2 pixels */ - 256, /* 256 codes */ - 4, /* 4 bit per pixel */ - { 0,1,2,3 }, /* four bitplanes */ - /* x offsets */ - { 4,4,4,4, 0,0,0,0 }, - /* y offsets */ - { 0,0 }, - 2*4 /* one byte per code */ -}; - -static gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout_80, 0, 256 }, - { REGION_GFX1, 0, &charlayout_40, 0, 256 }, - { REGION_GFX2, 0, &gfxlayout_1bpp, 0, 256 }, - { REGION_GFX2, 0, &gfxlayout_1bpp_dw, 0, 256 }, - { REGION_GFX2, 0, &gfxlayout_1bpp_qw, 0, 256 }, - { REGION_GFX2, 0, &gfxlayout_4bpp, 2*256, 1 }, - { REGION_GFX2, 0, &gfxlayout_4bpp_dh, 2*256, 1 }, - { -1 } /* end of array */ -}; - - -static unsigned char vt_palette[] = -{ - 0, 0, 0, /* black */ - 0, 0,127, /* blue */ - 0,127, 0, /* green */ - 0,127,127, /* cyan */ - 127, 0, 0, /* red */ - 127, 0,127, /* magenta */ - 127,127, 0, /* yellow */ - 160,160,160, /* bright grey */ - 127,127,127, /* dark grey */ - 0, 0,255, /* bright blue */ - 0,255, 0, /* bright green */ - 0,255,255, /* bright cyan */ - 255, 0, 0, /* bright red */ - 255, 0,255, /* bright magenta */ - 255,255, 0, /* bright yellow */ - 255,255,255, /* bright white */ -}; - -/* Initialise the palette */ -static PALETTE_INIT( vtech2 ) -{ - int i; - - palette_set_colors(machine, 0, vt_palette, sizeof(vt_palette) / 3); - - for (i = 0; i < 256; i++) - { - colortable[2*i] = i%16; - colortable[2*i+1] = i/16; - } - for (i = 0; i < 16; i++) - colortable[2*256+i] = i; -} - -static INTERRUPT_GEN( vtech2_interrupt ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static MACHINE_DRIVER_START( laser350 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 3694700) /* 3.694700 Mhz */ - MDRV_CPU_PROGRAM_MAP(vtech2_mem, 0) - MDRV_CPU_IO_MAP(vtech2_io, 0) - MDRV_CPU_VBLANK_INT(vtech2_interrupt, 1) - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_MACHINE_RESET( laser350 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(88*8, 24*8+32) - MDRV_SCREEN_VISIBLE_AREA(0*8, 88*8-1, 0*8, 24*8+32-1) - MDRV_GFXDECODE( gfxdecodeinfo ) - MDRV_PALETTE_LENGTH(sizeof(vt_palette)/sizeof(vt_palette[0])/3) - MDRV_COLORTABLE_LENGTH(256*2+16) - MDRV_PALETTE_INIT(vtech2) - - MDRV_VIDEO_START(laser) - MDRV_VIDEO_UPDATE(laser) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( laser500 ) - MDRV_IMPORT_FROM( laser350 ) - MDRV_MACHINE_RESET( laser500 ) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( laser700 ) - MDRV_IMPORT_FROM( laser350 ) - MDRV_MACHINE_RESET( laser700 ) -MACHINE_DRIVER_END - - -ROM_START(laser350) - ROM_REGION(0x40000,REGION_CPU1,0) - ROM_LOAD("laserv3.rom", 0x00000, 0x08000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) - ROM_REGION(0x00800,REGION_GFX1,0) - ROM_LOAD("laser.fnt", 0x00000, 0x00800, CRC(ed6bfb2a) SHA1(95e247021a10167b9de1d6ffc91ec4ba83b0ec87)) - ROM_REGION(0x00100,REGION_GFX2,0) - /* initialized in init_laser */ -ROM_END - - -ROM_START(laser500) - ROM_REGION(0x40000,REGION_CPU1,0) - ROM_LOAD("laserv3.rom", 0x00000, 0x08000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) - ROM_REGION(0x00800,REGION_GFX1,0) - ROM_LOAD("laser.fnt", 0x00000, 0x00800, CRC(ed6bfb2a) SHA1(95e247021a10167b9de1d6ffc91ec4ba83b0ec87)) - ROM_REGION(0x00100,REGION_GFX2,0) - /* initialized in init_laser */ -ROM_END - -ROM_START(laser700) - ROM_REGION(0x40000,REGION_CPU1,0) - ROM_LOAD("laserv3.rom", 0x00000, 0x08000, CRC(9bed01f7) SHA1(3210fddfab2f4c7855fa902fb8e2fc18d10d48f1)) - ROM_REGION(0x00800,REGION_GFX1,0) - ROM_LOAD("laser.fnt", 0x00000, 0x00800, CRC(ed6bfb2a) SHA1(95e247021a10167b9de1d6ffc91ec4ba83b0ec87)) - ROM_REGION(0x00100,REGION_GFX2,0) - /* initialized in init_laser */ -ROM_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void laser_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) vtech2_cassette_formats; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -static void laser_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_laser_cart; break; - case DEVINFO_PTR_UNLOAD: info->unload = device_unload_laser_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "rom"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -static void laser_floppy_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* floppy */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TYPE: info->i = IO_FLOPPY; break; - case DEVINFO_INT_READABLE: info->i = 1; break; - case DEVINFO_INT_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_CREATABLE: info->i = 0; break; - case DEVINFO_INT_COUNT: info->i = 2; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_LOAD: info->load = device_load_laser_floppy; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "dsk"); break; - } -} - -SYSTEM_CONFIG_START(laser) - CONFIG_DEVICE(laser_cassette_getinfo) - CONFIG_DEVICE(laser_cartslot_getinfo) - CONFIG_DEVICE(laser_floppy_getinfo) -SYSTEM_CONFIG_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ -COMP( 1984?, laser350, 0, 0, laser350, laser350, laser, laser, "Video Technology", "Laser 350" , 0) -COMP( 1984?, laser500, laser350, 0, laser500, laser500, laser, laser, "Video Technology", "Laser 500" , 0) -COMP( 1984?, laser700, laser350, 0, laser700, laser500, laser, laser, "Video Technology", "Laser 700" , 0) diff --git a/mess/systems/wswan.c b/mess/systems/wswan.c deleted file mode 100644 index 191846d41..000000000 --- a/mess/systems/wswan.c +++ /dev/null @@ -1,216 +0,0 @@ -/*************************************************************************** - - wswan.c - - Driver file to handle emulation of the Bandai WonderSwan - By: - - Anthony Kruize - Wilbert Pol - - Based on the WStech documentation by Judge and Dox. - - Known issues/TODOs: - - Get the V30MZ core into MAME, still need to remove some nec specific - instructions and fix the flags handling of the div/mul instructions. - - Add support for noise sound - - Add support for voice sound - - Add support for enveloped sound - - Perform video DMA at proper timing. - - Add sound DMA. - - Setup some reasonable values in the internal EEPROM area? - - Add (real/proper) RTC support. - - Look into timing issues like in Puzzle Bobble. VBlank interrupt lasts very long - which causes sprites to be disabled until about 10%-40% of drawing the screen. - The real unit seems to display things fine, need a real unit + real cart to - verify. - - Is background color setting really ok? - - Get a dump of the internal BIOSes. - - Swan Crystal can handle up to 512Mbit ROMs?????? - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/wswan.h" -#include "devices/cartslot.h" -#include "sound/custom.h" - -static ADDRESS_MAP_START (wswan_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x00000, 0x03fff) AM_RAM /* 16kb RAM / 4 colour tiles */ - AM_RANGE(0x04000, 0x0ffff) AM_NOP /* nothing */ - AM_RANGE(0x10000, 0x1ffff) AM_READWRITE( wswan_sram_r, wswan_sram_w ) /* SRAM bank */ - AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK(2) /* ROM bank 1 */ - AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK(3) /* ROM bank 2 */ - AM_RANGE(0x40000, 0x4ffff) AM_ROMBANK(4) /* ROM bank 3 */ - AM_RANGE(0x50000, 0x5ffff) AM_ROMBANK(5) /* ROM bank 4 */ - AM_RANGE(0x60000, 0x6ffff) AM_ROMBANK(6) /* ROM bank 5 */ - AM_RANGE(0x70000, 0x7ffff) AM_ROMBANK(7) /* ROM bank 6 */ - AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK(8) /* ROM bank 7 */ - AM_RANGE(0x90000, 0x9ffff) AM_ROMBANK(9) /* ROM bank 8 */ - AM_RANGE(0xA0000, 0xAffff) AM_ROMBANK(10) /* ROM bank 9 */ - AM_RANGE(0xB0000, 0xBffff) AM_ROMBANK(11) /* ROM bank 10 */ - AM_RANGE(0xC0000, 0xCffff) AM_ROMBANK(12) /* ROM bank 11 */ - AM_RANGE(0xD0000, 0xDffff) AM_ROMBANK(13) /* ROM bank 12 */ - AM_RANGE(0xE0000, 0xEffff) AM_ROMBANK(14) /* ROM bank 13 */ - AM_RANGE(0xF0000, 0xFffff) AM_ROMBANK(15) /* ROM bank 14 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START (wscolor_mem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE(0x00000, 0x0ffff) AM_RAM /* 16kb RAM / 4 colour tiles, 16 colour tiles + palettes */ - AM_RANGE(0x10000, 0x1ffff) AM_READWRITE( wswan_sram_r, wswan_sram_w ) /* SRAM bank */ - AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK(2) /* ROM bank 1 */ - AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK(3) /* ROM bank 2 */ - AM_RANGE(0x40000, 0x4ffff) AM_ROMBANK(4) /* ROM bank 3 */ - AM_RANGE(0x50000, 0x5ffff) AM_ROMBANK(5) /* ROM bank 4 */ - AM_RANGE(0x60000, 0x6ffff) AM_ROMBANK(6) /* ROM bank 5 */ - AM_RANGE(0x70000, 0x7ffff) AM_ROMBANK(7) /* ROM bank 6 */ - AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK(8) /* ROM bank 7 */ - AM_RANGE(0x90000, 0x9ffff) AM_ROMBANK(9) /* ROM bank 8 */ - AM_RANGE(0xA0000, 0xAffff) AM_ROMBANK(10) /* ROM bank 9 */ - AM_RANGE(0xB0000, 0xBffff) AM_ROMBANK(11) /* ROM bank 10 */ - AM_RANGE(0xC0000, 0xCffff) AM_ROMBANK(12) /* ROM bank 11 */ - AM_RANGE(0xD0000, 0xDffff) AM_ROMBANK(13) /* ROM bank 12 */ - AM_RANGE(0xE0000, 0xEffff) AM_ROMBANK(14) /* ROM bank 13 */ - AM_RANGE(0xF0000, 0xFffff) AM_ROMBANK(15) /* ROM bank 14 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START (wswan_io, ADDRESS_SPACE_IO, 8) - AM_RANGE(0x00, 0xff) AM_READWRITE( wswan_port_r, wswan_port_w ) /* I/O ports */ -ADDRESS_MAP_END - -INPUT_PORTS_START( wswan ) - PORT_START /* IN 0 : cursors (X1-X4) */ - PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("X1 - Up") - PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("X3 - Down") - PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_NAME("X4 - Left") - PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_NAME("X2 - Right") - PORT_START /* IN 1 : Buttons */ - PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Start") - PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Button A") - PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Button B") - PORT_START /* IN 2 : cursors (Y1-Y4) */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y1 - Left") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y3 - Right") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y4 - Down") PORT_CODE(KEYCODE_S) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y2 - Up") PORT_CODE(KEYCODE_W) -INPUT_PORTS_END - -static gfx_decode gfxdecodeinfo[] = -{ { -1 } /* end of array */ }; - -/* WonderSwan can display 16 shades of grey */ -static PALETTE_INIT( wswan ) -{ - int ii; - for( ii = 0; ii < 16; ii++ ) - { - UINT8 shade = ii * (256 / 16); - palette_set_color(machine, 15 - ii, shade, shade, shade ); - } -} - -static PALETTE_INIT( wscolor ) { - int i; - for( i = 0; i < 4096; i++ ) { - int r = ( i & 0x0F00 ) >> 8; - int g = ( i & 0x00F0 ) >> 4; - int b = i & 0x000F; - palette_set_color(machine, i, r << 4, g << 4, b << 4 ); - } -} - -static struct CustomSound_interface wswan_sound_interface = -{ - wswan_sh_start -}; - -static MACHINE_DRIVER_START( wswan ) - /* Basic machine hardware */ - MDRV_CPU_ADD_TAG("main", V30MZ, 3072000) - MDRV_CPU_PROGRAM_MAP(wswan_mem, 0) - MDRV_CPU_IO_MAP(wswan_io, 0) - MDRV_CPU_VBLANK_INT(wswan_scanline_interrupt, 159) /* 1 int each scanline */ - - MDRV_SCREEN_REFRESH_RATE(75) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(1) - - MDRV_NVRAM_HANDLER( wswan ) - - MDRV_MACHINE_START( wswan ) - MDRV_MACHINE_RESET( wswan ) - - MDRV_VIDEO_START( generic_bitmapped ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE( WSWAN_X_PIXELS, WSWAN_X_PIXELS ) - MDRV_SCREEN_VISIBLE_AREA(0*8, WSWAN_X_PIXELS - 1, 0, WSWAN_X_PIXELS - 1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(4*16) - MDRV_PALETTE_INIT(wswan) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(wswan_sound_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( wscolor ) - MDRV_IMPORT_FROM(wswan) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(wscolor_mem, 0) - MDRV_MACHINE_START( wscolor ) - MDRV_PALETTE_LENGTH(4096) - MDRV_PALETTE_INIT( wscolor ) -MACHINE_DRIVER_END - -static void wswan_cartslot_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cartslot */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - case DEVINFO_INT_MUST_BE_LOADED: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_INIT: info->init = device_init_wswan_cart; break; - case DEVINFO_PTR_LOAD: info->load = device_load_wswan_cart; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "ws,wsc"); break; - - default: cartslot_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(wswan) - CONFIG_DEVICE(wswan_cartslot_getinfo) -SYSTEM_CONFIG_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( wswan ) - ROM_REGION( 0x100000, REGION_CPU1, ROMREGION_ERASEFF ) -// ROM_LOAD_OPTIONAL( "ws_bios.bin", 0x0000, 0x0001, NO_DUMP ) -ROM_END - -ROM_START( wscolor ) - ROM_REGION( 0x100000, REGION_CPU1, ROMREGION_ERASEFF ) -// ROM_LOAD_OPTIONAL( "wsc_bios.bin", 0x0000, 0x0001, NO_DUMP ) -ROM_END - -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME*/ -CONS( 1999, wswan, 0, 0, wswan, wswan, 0, wswan, "Bandai", "WonderSwan", GAME_IMPERFECT_SOUND ) -CONS( 2000, wscolor, wswan, 0, wscolor, wswan, 0, wswan, "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND ) - diff --git a/mess/systems/zx.c b/mess/systems/zx.c deleted file mode 100644 index 6b36fda6b..000000000 --- a/mess/systems/zx.c +++ /dev/null @@ -1,622 +0,0 @@ -/*************************************************************************** - zx.c - - Orginal driver by: - Juergen Buchmueller , Dec 1999 - - Fixes and additions by Krzysztof Strzecha: - 07.06.2004 Tape loading added. Some cleanups of debug code. - Fixed stupid bug in timings (vblank duration). - GAME_NOT_WORKING flag removed. - 29.05.2004 CPU clock, number of scanlines, vblank duration corrected. - Some cleanups. Two non-working TESTDRIVERS added. - 14.05.2004 Finally fixed and readded. - - To do: - Tape saving (needs changes in video hardware emulation). - Some memory areas are not mirrored as they should. - Video hardware is not fully emulated, so it does not support pseudo - hi-res and hi-res modes. - Some memory packs are unemulated. - -****************************************************************************/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "cpu/z80/z80.h" -#include "includes/zx.h" -#include "devices/cassette.h" -#include "formats/zx81_p.h" - -/* Memory Maps */ - -ADDRESS_MAP_START( zx80_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_ROM - AM_RANGE(0x8000, 0xffff) AM_NOP -ADDRESS_MAP_END - -ADDRESS_MAP_START( zx81_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x8000, 0xffff) AM_NOP -ADDRESS_MAP_END - -ADDRESS_MAP_START( pc8300_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x4000, 0x7fff) AM_RAM // PC8300 comes with 16K RAM - AM_RANGE(0x8000, 0xffff) AM_NOP -ADDRESS_MAP_END - -static ADDRESS_MAP_START( zx80_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0xffff) AM_READWRITE(zx_io_r, zx_io_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( zx80 ) - PORT_START_TAG("IN0") - - PORT_START_TAG("IN1") // KEY ROW 0 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") // KEY ROW 1 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") // KEY ROW 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN4") // KEY ROW 3 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 EDIT") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 AND") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 THEN") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 TO") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 LEFT") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN5") // KEY ROW 4 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 RUBOUT") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 GRAPHICS") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 RIGHT") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 UP") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 DOWN") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") // KEY ROW 5 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P PRINT") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O POKE") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y RETURN") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") // KEY ROW 6 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") // KEY ROW 7 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE \xC2\xA3") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHAR('£') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". ,") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(',') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M >") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('>') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N >") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('<') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN9") // special keys 1 - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN10") // special keys 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPHICS") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( zx81 ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x80, 0x00, "16K RAM module" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - PORT_BIT( 0x7e, 0x0f, IPT_UNUSED ) - - PORT_START_TAG("IN1") // KEY ROW 0 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z :") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR(':') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X ;") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR(';') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C ?") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('?') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V /") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('/') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") // KEY ROW 1 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A NEW STOP") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S SAVE LPRINT") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DIM SLOW") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F FOR FAST") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO LLIST") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") // KEY ROW 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q PLOT \"\"") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W UNPLOT OR") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E REM STEP") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R RUN <=") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T RAND <>") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN4") // KEY ROW 3 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 EDIT") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 AND") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 THEN") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 TO") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 LEFT") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN5") // KEY ROW 4 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 RUBOUT") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 GRAPHICS") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 RIGHT") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 UP") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 DOWN") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") // KEY ROW 5 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P PRINT \"") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O POKE )") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT (") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U IF $") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y RETURN >=") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") // KEY ROW 6 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L LET =") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K LIST +") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J LOAD -") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H GOSUB **") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") // KEY ROW 7 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE \xC2\xA3") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_CHAR('£') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". ,") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(',') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M PAUSE >") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('>') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N NEXT >") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('<') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B SCROLL *") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN9") // special keys 1 - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN10") // special keys 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPHICS") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( pow3000 ) - PORT_START_TAG("IN0") - PORT_BIT( 0xfe, 0x0f, IPT_UNUSED ) - - PORT_START_TAG("IN1") // KEY ROW 0 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") // KEY ROW 1 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") // KEY ROW 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN4") // KEY ROW 3 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN5") // KEY ROW 4 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") // KEY ROW 5 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") // KEY ROW 6 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") // KEY ROW 7 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN9") // special keys 1 - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN10") // special keys 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("GRAPHICS") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_SHIFT_2) - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static gfx_layout zx_char_layout = -{ - 8, 8, /* 8x8 pixels */ - 64, /* 64 codes */ - 1, /* 1 bit per pixel */ - {0}, /* no bitplanes */ - /* x offsets */ - {0, 1, 2, 3, 4, 5, 6, 7}, - /* y offsets */ - {0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8}, - 8 * 8 /* eight bytes per code */ -}; - -/* Graphics Decode Information */ - -static gfx_decode zx80_gfxdecodeinfo[] = -{ - { REGION_CPU1, 0x0e00, &zx_char_layout, 0, 2 }, - { -1 } -}; - -static gfx_decode zx81_gfxdecodeinfo[] = -{ - { REGION_CPU1, 0x1e00, &zx_char_layout, 0, 2 }, - { -1 } -}; - -static gfx_decode pc8300_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &zx_char_layout, 0, 2 }, - { -1 } -}; - -static gfx_decode pow3000_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &zx_char_layout, 0, 2 }, - { -1 } -}; - -/* Palette Initialization */ - -static unsigned char zx80_palette[] = -{ - 255,255,255, /* white */ - 0, 0, 0, /* black */ -}; - -static unsigned char zx81_palette[] = -{ - 255,255,255, /* white */ - 0, 0, 0, /* black */ -}; - -static unsigned char ts1000_palette[] = -{ - 64,244,244, /* cyan */ - 0, 0, 0, /* black */ -}; - -static unsigned short zx_colortable[] = -{ - 0, 1, /* white on black */ - 1, 0 /* black on white */ -}; - -static PALETTE_INIT( zx80 ) -{ - palette_set_colors(machine, 0, zx80_palette, sizeof(zx80_palette) / 3); - memcpy(colortable, zx_colortable, sizeof (zx_colortable)); -} - -static PALETTE_INIT( zx81 ) -{ - palette_set_colors(machine, 0, zx81_palette, sizeof(zx81_palette) / 3); - memcpy(colortable, zx_colortable, sizeof (zx_colortable)); -} - -static PALETTE_INIT( ts1000 ) -{ - palette_set_colors(machine, 0, ts1000_palette, sizeof(ts1000_palette) / 3); - memcpy(colortable, zx_colortable, sizeof (zx_colortable)); -} - - - -#define ZX81_CPU_CLOCK 3250000 -#define ZX81_CYCLES_PER_SCANLINE 207 -#define ZX81_PIXELS_PER_SCANLINE 256 -#define ZX81_CYCLES_PER_VBLANK 1235 -#define ZX81_VBLANK_DURATION (1.0*ZX81_CYCLES_PER_VBLANK/ZX81_CPU_CLOCK*1000*1000) - -#define ZX81_PAL_SCANLINES 304 -#define ZX81_PAL_FRAMES_PER_SECOND (1.0*ZX81_CPU_CLOCK/(ZX81_PAL_SCANLINES*ZX81_CYCLES_PER_SCANLINE+ZX81_CYCLES_PER_VBLANK)) - -#define ZX81_NTSC_SCANLINES 256 -#define ZX81_NTSC_FRAMES_PER_SECOND (1.0*ZX81_CPU_CLOCK/(ZX81_NTSC_SCANLINES*ZX81_CYCLES_PER_SCANLINE+ZX81_CYCLES_PER_VBLANK)) - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( zx80 ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", Z80, ZX81_CPU_CLOCK) - MDRV_CPU_PROGRAM_MAP(zx80_map, 0) - MDRV_CPU_IO_MAP(zx80_io_map, 0) - MDRV_SCREEN_REFRESH_RATE(ZX81_PAL_FRAMES_PER_SECOND) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(ZX81_VBLANK_DURATION)) - - MDRV_MACHINE_RESET(zx80) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(ZX81_PIXELS_PER_SCANLINE, ZX81_PAL_SCANLINES) - MDRV_SCREEN_VISIBLE_AREA(0, ZX81_PIXELS_PER_SCANLINE-1, 0, ZX81_PAL_SCANLINES-1) - MDRV_GFXDECODE(zx80_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(6) - MDRV_COLORTABLE_LENGTH(4) - MDRV_PALETTE_INIT(zx80) - - MDRV_VIDEO_START(zx) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MDRV_SOUND_ADD(WAVE, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( zx81 ) - MDRV_IMPORT_FROM(zx80) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(zx81_map, 0) - - MDRV_MACHINE_RESET(zx81) - - MDRV_GFXDECODE(zx81_gfxdecodeinfo) - MDRV_PALETTE_INIT(zx81) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ts1000 ) - MDRV_IMPORT_FROM(zx81) - - MDRV_SCREEN_REFRESH_RATE(ZX81_NTSC_FRAMES_PER_SECOND) - - MDRV_SCREEN_SIZE(ZX81_PIXELS_PER_SCANLINE, ZX81_NTSC_SCANLINES) - MDRV_SCREEN_VISIBLE_AREA(0, ZX81_PIXELS_PER_SCANLINE-1, 0, ZX81_NTSC_SCANLINES-1) - MDRV_PALETTE_INIT(ts1000) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pc8300 ) - MDRV_IMPORT_FROM(ts1000) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pc8300_map, 0) - - MDRV_MACHINE_RESET(pc8300) - MDRV_GFXDECODE(pc8300_gfxdecodeinfo) - MDRV_PALETTE_INIT(zx81) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pow3000 ) - MDRV_IMPORT_FROM(ts1000) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pc8300_map, 0) - - MDRV_MACHINE_RESET(pc8300) - MDRV_GFXDECODE(pow3000_gfxdecodeinfo) - MDRV_PALETTE_INIT(zx81) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START(zx80) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "zx80.rom", 0x0000, 0x1000, CRC(4c7fc597) SHA1(b6769a3197c77009e0933e038c15b43cf4c98c7a) ) -ROM_END - -ROM_START(aszmic) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "aszmic.rom", 0x0000, 0x1000, CRC(6c123536) SHA1(720867cbfafafc8c7438bbc325a77eaef571e5c0) ) -ROM_END - -ROM_START(zx81) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "zx81.rom", 0x0000, 0x2000, CRC(fcbbd617) SHA1(a0ade36540561cc1691bb6f0c42ceae12484a102) ) -ROM_END - -ROM_START(zx81a) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "zx81a.rom", 0x0000, 0x2000, CRC(4b1dd6eb) SHA1(7b143ee964e9ada89d1f9e88f0bd48d919184cfc) ) -ROM_END - -ROM_START(zx81b) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "zx81b.rom", 0x0000, 0x2000, CRC(522c37b8) SHA1(c6d8e06cb936989f6e1cc7a56d1f092da854a515) ) -ROM_END - -ROM_START(h4th) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "h4th.rom", 0x0000, 0x2000, CRC(257d5a32) ) -ROM_END - -ROM_START(tree4th) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "tree4th.rom", 0x0000, 0x2000, CRC(71616238) ) -ROM_END - -ROM_START(ts1000) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "zx81a.rom", 0x0000, 0x2000, CRC(4b1dd6eb) SHA1(7b143ee964e9ada89d1f9e88f0bd48d919184cfc) ) -ROM_END - -ROM_START(pc8300) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD( "8300_org.rom", 0x0000, 0x2000, CRC(a350f2b1) SHA1(6a9be484556cc27a9cd9d71085d2027c6243333f) ) - - ROM_REGION( 0x200, REGION_GFX1, 0 ) - ROM_LOAD( "8300_fnt.bin",0x0000, 0x0200, CRC(6bd0408c) SHA1(34a7a5afee511dc8bba28eccf305c873d80a557a) ) -ROM_END - -ROM_START(pow3000) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD("pow3000.rom", 0x0000, 0x2000, CRC(8a49b2c3) SHA1(9b22daf2f3a991aa6a358ef95b091654c3ca1bdf) ) - - ROM_REGION( 0x200, REGION_GFX1, 0 ) - ROM_LOAD( "pow3000.chr", 0x0000, 0x0200, CRC(1c42fe46) SHA1(5b30ba77c8f57065d106db69964c9ff2e4221760) ) -ROM_END - -ROM_START(lambda) - ROM_REGION( 0x10000, REGION_CPU1,0 ) - ROM_LOAD("lambda.rom", 0x0000, 0x2000, CRC(8a49b2c3) SHA1(9b22daf2f3a991aa6a358ef95b091654c3ca1bdf) ) - - ROM_REGION( 0x200, REGION_GFX1, 0 ) - ROM_LOAD( "8300_fnt.bin", 0x0000, 0x0200, CRC(6bd0408c) SHA1(34a7a5afee511dc8bba28eccf305c873d80a557a) ) -ROM_END - -/* System Configuration */ - -static struct CassetteOptions zx81_cassette_options = { - 1, /* channels */ - 16, /* bits per sample */ - 44100 /* sample frequency */ -}; - -static void zx80_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) zx80_o_format; break; - case DEVINFO_PTR_CASSETTE_OPTIONS: info->p = (void *) &zx81_cassette_options; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(zx80) - CONFIG_DEVICE(zx80_cassette_getinfo) - CONFIG_RAM_DEFAULT(1 * 1024) - CONFIG_RAM(16 * 1024) -SYSTEM_CONFIG_END - -static void zx81_cassette_getinfo(const device_class *devclass, UINT32 state, union devinfo *info) -{ - /* cassette */ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_COUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_PTR_CASSETTE_FORMATS: info->p = (void *) zx81_p_format; break; - case DEVINFO_PTR_CASSETTE_OPTIONS: info->p = (void *) &zx81_cassette_options; break; - - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_CASSETTE_DEFAULT_STATE: info->i = CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED; break; - - default: cassette_device_getinfo(devclass, state, info); break; - } -} - -SYSTEM_CONFIG_START(zx81) - CONFIG_DEVICE(zx81_cassette_getinfo) - CONFIG_RAM_DEFAULT(1 * 1024) - CONFIG_RAM(16 * 1024) -SYSTEM_CONFIG_END - -SYSTEM_CONFIG_START(pc8300) - CONFIG_DEVICE(zx81_cassette_getinfo) - CONFIG_RAM_DEFAULT(16 * 1024) -SYSTEM_CONFIG_END - -/* Game Drivers */ - -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME -COMP(1980, zx80, 0, 0, zx80, zx80, zx, zx80, "Sinclair Research", "ZX-80" , 0) -COMP(1981, aszmic, zx80, 0, zx80, zx80, zx, zx80, "Sinclair Research", "ZX.Aszmic" , 0) -COMP(1981, zx81, 0, 0, zx81, zx81, zx, zx81, "Sinclair Research", "ZX-81" , 0) -COMP(198?, zx81a, zx81, 0, zx81, zx81, zx, zx81, "Sinclair Research", "ZX-81 (2nd rev)" , 0) -COMP(198?, zx81b, zx81, 0, zx81, zx81, zx, zx81, "Sinclair Research", "ZX-81 (3rd rev)" , 0) -COMP(198?, h4th, zx81, 0, zx81, zx81, zx, zx81, "Sinclair Research", "Sinclair ZX-81 Forth by David Husband", GAME_NOT_WORKING) -COMP(198?, tree4th, zx81, 0, zx81, zx81, zx, zx81, "Sinclair Research", "Sinclair ZX-81 Tree-Forth by Tree Systems", GAME_NOT_WORKING) -COMP(1982, ts1000, zx81, 0, ts1000, zx81, zx, zx81, "Timex Sinclair", "Timex Sinclair 1000" , 0) -COMP(1984, pc8300, zx81, 0, pc8300, pow3000,zx, pc8300, "Your Computer", "PC8300" , 0) -COMP(1983, pow3000, zx81, 0, pow3000,pow3000,zx, pc8300, "Creon Enterprises", "Power 3000" , 0) -COMP(1982, lambda, zx81, 0, pc8300, pow3000,zx, zx81, "Lambda Electronics Ltd", "Lambda 8300" , 0) diff --git a/mess/tools/imgtool/windows/wimgtool.mak b/mess/tools/imgtool/windows/wimgtool.mak deleted file mode 100644 index 91cee412d..000000000 --- a/mess/tools/imgtool/windows/wimgtool.mak +++ /dev/null @@ -1,19 +0,0 @@ -WIMGTOOL_OBJS=\ - $(IMGTOOL_LIB_OBJS) \ - $(OBJ)/mess/pile.o \ - $(OBJ)/mess/toolerr.o \ - $(OBJ)/mess/windows/opcntrl.o \ - $(OBJ)/mess/windows/winutils.o \ - $(OBJ)/mess/tools/imgtool/stubs.o \ - $(OBJ)/mess/tools/imgtool/windows/wmain.o \ - $(OBJ)/mess/tools/imgtool/windows/wimgtool.o \ - $(OBJ)/mess/tools/imgtool/windows/attrdlg.o \ - $(OBJ)/mess/tools/imgtool/windows/assoc.o \ - $(OBJ)/mess/tools/imgtool/windows/assocdlg.o \ - $(OBJ)/mess/tools/imgtool/windows/hexview.o \ - $(OBJ)/mess/tools/imgtool/windows/secview.o \ - $(OBJ)/mess/tools/imgtool/windows/wimgtool.res \ - -$(OBJ)/mess/tools/imgtool/$(MAMEOS)/%.res: mess/tools/imgtool/$(MAMEOS)/%.rc - @echo Compiling resources $<... - $(RC) $(RCDEFS) $(RCFLAGS) --include-dir mess/tools/imgtool/$(MAMEOS) -o $@ -i $< diff --git a/mess/tools/messroms/c64savec.prg b/mess/tools/messroms/c64savec.prg deleted file mode 100644 index 98a43401a..000000000 Binary files a/mess/tools/messroms/c64savec.prg and /dev/null differ diff --git a/mess/tools/messroms/cbm.txt b/mess/tools/messroms/cbm.txt deleted file mode 100644 index 16f659608..000000000 --- a/mess/tools/messroms/cbm.txt +++ /dev/null @@ -1,115 +0,0 @@ -If you want to dump one and need help contact us. - -Commodore Pet -------------- -character rom not visible to the cpu!? - - -Commodore VIC20 ---------------- -character rom at 8000-8fff -basic rom at c000-dfff -kernel rom at e000-ffff -cartridges plain at 2000-7fff, a000-bfff(most) - - -Commodore Plus4/C16/C116 ------------------------- -kernel rom is not complete visible to the cpu. -bankswitching makes it more complex. - - -Commodore 64 ------------- -basic mapped at a000-bfff: -poke43,0:poke44,160:poke45,0:poke46,192:save"0:basic64",8 - -kernel mapped e000-ffff: -for i=0 to 8191:poke 32*256+i, peek(224*256+i): next -poke43,0:poke44,32:poke45,0:poke46,64:save"0:kernel64",8 - -character mapped at d000-dfff -machine language neccessary, assembler program in the 128 section, -if you want to do a basic loader for this program -load mess/messroms/c64savec.prg -load"c64savec",8,1 -sys 32*256 -poke 43,0:poke44,192:poke45,0:poke46,208:save"0:char64",8 - - -Commodore CBMB series ---------------------- -character rom not visible to the cpu!? - - -Commodore 128 -------------- -in the monitor program -s "drive:name",device,start,end - -s "0:basic",8,f4000,fc000 -s "0:editor",8,fc000,fd000 -s "0:kernel",8,ee000,f0000 -s "0:char128",8,ed000,ee000 - -c64 roms like in the c64 in c64mode - -c64 charset -in c128 mode -monitor -a 2000 sei -lda #33 -sta 1 -ldy #0 -sty fa -sty fc -lda #c0 -sta fd -lda #d0 -sta fb -ldx #10 -lda (fa),y -sta (fc),y -iny -bne 2015 -inc fb -inc fd -dex -bne 2015 -lda #37 -sta 1 -cli -rts -(additional enter to end assembler input) -x (to leave monitor) -go64 (answer with y) -sys 32*256 -poke 43,0:poke44,192:poke45,0:poke46,208:save"0:char64",8 - -z80 rom difficult (writing a cpm program) - - -Commodore 65 ------------- -in the monitor -s "0:bios",8,20000,40000 - - -Commodore 1541/1551/1571 GCR disks ----------------------------------- -msdos utility star commander allows connection of 1541/1571 disk drives -at the pc parallel port with a simple adapter. - - -Commodore 1571 MFM disks ------------------------- -are theoretical readable in pc disk drives -special programs neccessary - - -Commodore 65/1581 disks ------------------------ -are readable in pc disk drives, -special program neccessary -or configure linux floppy disk driver for physical access and create an image -imgtool for accessing files in the image diff --git a/mess/tools/messroms/comp.h b/mess/tools/messroms/comp.h deleted file mode 100644 index 86d3acf11..000000000 --- a/mess/tools/messroms/comp.h +++ /dev/null @@ -1,230 +0,0 @@ -/* this file could be generated with mess later */ -static struct { - const char *text; - int crc32[0x20]; -} computer[]={ - { "studio2", { 0xa494b339 } }, - - { "astrocde" , { 0xebc77f3a } }, - - { "advision" , { 0x279e33d1 } }, - - { "channelf" , { 0x04694ed9, 0x9c047ba3 } }, - - { "famicom" , { 0x5e607dcf } }, - - { "coleco" , { 0x3aa93ef3 } }, - - { "vectrex" , { 0xba13fb57 } }, - { "raaspec" , { 0x20af7f3f, 0xba13fb57 } }, - - { "odyssey2" , { 0x8016a315 } }, - - { "a5200" , { 0x4248d3e3 } }, - { "a7800" , { 0x649913e5 } }, - { "a400" , { 0x6a5d766e, 0xcb4db9af } }, - { "a400pal" , { 0x6a5d766e, 0xcb4db9af } }, - { "a400" , { 0x6a5d766e, 0xcb4db9af } }, - { "a400pal" , { 0x6a5d766e, 0xcb4db9af } }, - { "a800xl" , { 0x7d684184, 0x1f9cd270 } }, - - { "apple1" , { 0xa30b6af5, 0xbe70bb85 } }, - { "apple2c" , { 0xf0edaa1b, 0x2651014d } }, - { "apple2c0" , { 0xc8b979b3, 0x2651014d } }, - { "apple2cp" , { 0x0b996420, 0x2651014d } }, - { "apple2e" , { 0xe248835e, 0xfc3d59d8, 0xce7144f6, 0x816a86f1 } }, - { "apple2ee" , { 0x443aa7c4, 0x95e10034, 0xce7144f6, 0x2651014d } }, - { "apple2ep" , { 0x02b648c8, 0xce7144f6, 0x2651014d } }, - - { "lisa2" , { 0xadfd4516, 0x546d6603, 0xbc6364f1, 0x75904783 } }, - - { "mac512ke" , { 0xb2102e8e } }, - { "macplus" , { 0xb2102e8e } }, - - { "atom" , { 0xc604db3d, 0x81d86af7, 0x43798b9b } }, - { "bbca" , { 0x3c14fc70, 0x79434781 } }, - { "bbcb" , { 0x3c14fc70, 0xe7e2a294, 0x9a50231f, 0xc1505821, 0x557ce483, 0x4345359f, 0x9fb8d13f, 0x79434781} }, - - - { "cpc464", { 0x40852f25, 0x1fe22ecd } }, - { "cpc664", { 0x9ab5a036, 0x1fe22ecd } }, - { "cpc6128", { 0x9e827fe1, 0x1fe22ecd, 0xf36086de } }, - { "kccomp", { 0x7f9ab3f7, 0xca6af63d} }, - { "pcw16" , { 0xc642f498 } }, - { "nc100", { 0x849884f9 } }, - { "nc200", { 0xbb8180e7} }, - - - { "pet", { 0x03cf16d0, 0x69fd8a8f, 0xd349f2d4, 0x850544eb, 0x9e1c5cea, 0x661a814a, 0xc4f47ad1, 0x54f32f45 } }, - { "cbm30", { 0x63a7fe4a, 0xae4cb035, 0xe459ab32, 0xf02238e2, 0x54f32f45 } }, - { "cbm30b", { 0x63a7fe4a, 0xae4cb035, 0x05db957e, 0xf02238e2, 0xd8408674 } }, - { "cbm40", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x5f85bdf8, 0xcc5298a1, 0x54f32f45 } }, - { "cbm40pal", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x3370e359, 0xcc5298a1, 0x54f32f45 } }, - { "cbm40b", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x75ff4af7, 0xcc5298a1, 0xd8408674} }, - { "cbm80", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x5674dd5e, 0xcc5298a1, 0xd8408674} }, - { "cbm80pal", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0xabb000e7, 0xcc5298a1, 0xd8408674} }, - { "cbm80ger", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x1c1e597d, 0xcc5298a1, 0x3bb8cb87} }, - { "cbm80swe", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0x75901dd7, 0xcc5298a1, 0x48c77d29} }, - { "superpet", { 0xae3deac0, 0x0fc17b9c, 0x36d91855, 0xabb000e7, 0xcc5298a1, - 0x728a998b, 0x6beb7c62, 0x5db4983d, 0xf55fc559, 0xb2cee903, 0xf42df0cb, 0xee8229c4 } }, - - { "c16", { 0x74eaae87, 0x71c07bd4 } }, - { "c16hun", { 0x74eaae87, 0x775f60c5 } }, - { "c16c", { 0x74eaae87, 0x71c07bd4, 0x6d16d024 } }, - { "plus4", { 0x74eaae87, 0x70295038, 0x4fd1d8cb, 0x70295038 } }, - { "plus4c", { 0x74eaae87, 0x70295038, 0x4fd1d8cb, 0x70295038, 0x6d16d024 } }, - { "c364", { 0x74eaae87, 0x84fd4f7a, 0x4fd1d8cb, 0x70295038, 0x5227c2ee } }, - - { "vic20", { 0xdb4c43c1,0xe5e7c174,0x83e032a6 } }, - { "vc20", { 0xdb4c43c1,0xe5e7c174,0x83e032a6 } }, - { "vic20swe", { 0xdb4c43c1,0xb2a60662,0xd808551d } }, - { "vic20i", { 0xdb4c43c1,0xe5e7c174,0x83e032a6,0xd37b6335 } }, - - { "c65", { 0x0888b50f } }, - { "c65e", { 0x3ee40b06 } }, - { "c65d", { 0x12527742 } }, - { "c65c", { 0xe8235dd4 } }, - { "c65ger", { 0xb025805c } }, - { "c65a", { 0xc5d8d32e } }, - - { "c64" , { 0xf833d117, 0xdbe3e7c7, 0xec4272ee } }, - { "vic64s" , { 0xf833d117, 0xf10c2c25, 0xbee9b3fd } }, - { "cbm4064" , { 0xf833d117, 0x789c8cc5 , 0xec4272ee } }, - { "c64gs" , { 0xb0a9c2da, 0xec4272ee } }, - { "sx64" , { 0xf833d117, 0x2c5965d4, 0xec4272ee } }, - { "vip64" , { 0xf833d117, 0x7858d3d7, 0xbee9b3fd } }, - - { "cbm500", { 0xc62ab16f, 0x20b7df33, 0xf46bbd2b, 0xec4272ee} }, - { "cbm610", { 0xb0dcb56d, 0xde04ea4f, 0x09a5667e, 0x1acf5098 } }, - { "cbm620", { 0x8eed0d7e, 0x0ea8ca4d, 0x1fb5e596 } }, - { "cbm710", { 0xb0dcb56d, 0xde04ea4f, 0x09a5667e, 0x3a350bc3 } }, - { "cbm720", { 0x5c1f3347, 0x72aa44e1, 0x09a5667e, 0x3a350bc3 } }, - - { "c128" , { 0x9f9c355b, 0x6e2c91a7, 0x0010ec31, 0xba456b8e, 0x6aaaafe6} }, - { "c128ger" , { 0xaf1ae1e8, 0xeb6e2c8f, 0xfe5a2db1 } }, - { "c128fra" , { 0x9f9c355b, 0x6e2c91a7, 0x0010ec31, 0x2df282b8, 0xbad36b88} }, - { "c128ita" , { 0x9f9c355b, 0x6e2c91a7, 0x0010ec31, 0x74d6b084, 0xbad36b8 } }, - { "c128d" , { 0xaf1ae1e8, 0xeedc120a, 0x6aaaafe6, 0x3889b8b8} }, - - { "pc1251" , { 0xf7287aca, 0x93ecb629 } }, - { "pc1350" , { 0x79a924bc, 0x158b28e2 } }, - { "pc1401" , { 0x44bee438, 0x69b9d587 } }, - - { "ibmpc" , { 0x80d3cf5d,0x673a4acc ,0xaac3fc37,0x3062b3fc,0xe88792b3 } }, - { "ibmpca" , { 0x5c3f0256 } }, - { "pc" , { 0x031aafad } }, - { "bondwell" , { 0xd435a405 } }, - { "europc" , { 0x1775a11d, 0x1305dcf5 } }, - { "ibmxt" , { 0x83727c42, 0x2a629953 } }, - { "pc1512" , { 0x668fcc94, 0xf72f1582 } }, - { "pc1640" , { 0xd2d1f1ae, 0xe40a1513, 0xf1c074f3 } }, - { "ibmat" , { 0x4995be7a, 0xc32713e4 } }, - { "at" , { 0x679296a7, 0x65ae1f97 } }, - { "neat" , { 0x4c36e61d, 0x4e90f294 } }, - - { "zx80" , { 0x4c7fc597 } }, - { "aszmic" , { 0x6c123536 } }, - { "zx81" , { 0x4b1dd6eb } }, - { "ts1000" , { 0x4b1dd6eb } }, - { "pc8300" , { 0xa350f2b1, 0x6bd0408c } }, - { "pow3000" , { 0x8a49b2c3, 0x1c42fe46 } }, - - { "spectrum" , { 0xddee531f} }, - { "specpls4" , { 0x7e0f47cb } }, - { "specbusy" , { 0x1511cddb } }, - { "specgrot" , { 0xabf18c45 } }, - { "specimc" , { 0xd1be99ee } }, - { "speclec" , { 0x5b5c92b1 } }, - { "inves" , { 0x8ff7a4d1 } }, - { "tk90x" , { 0x3e785f6f } }, - { "tk95" , { 0x17368e07 } }, - { "tc2048" , { 0xf1b5fa67 } }, - { "ts2068" , { 0xbf44ec3f, 0xae16233a } }, - - { "spec128" , { 0xe76799d2, 0xb96a36be } }, - { "spec128s" , { 0x453d86b2, 0x6010e796 } }, - { "specpls2" , { 0x5d2e8c66, 0x98b1320b } }, - { "specp2fr" , { 0xc684c535, 0xf5e509c5 } }, - { "specp2sp" , { 0xe807d06e, 0x41981d4b } }, - { "specpl2a" , { 0x30c9f490, 0xa7916b3f, 0xc9a0b748, 0xb88fd6e3 } }, - { "specpls3" , { 0x17373da2, 0xf1d1d99e, 0x3dbf351d, 0x04448eaa } }, - { "specp3sp" , { 0x1f86147a, 0xa8ac4966, 0xf6bb0296, 0xf6d25389 } }, - { "specpl3e" , { 0x7c20e2c9, 0x4a700c7e } }, - - { "amiga" , { 0xf6290043 } }, - - { "kim1" , { 0xa2a56502, 0x2b08e923 } }, - - { "microtan" , { 0x3e09d384, 0x75105113, 0xee6e8412, 0xbd87fd34, 0x9fd233ee, 0x7e215313, 0xc8221d9e, 0x3b3c5360 } }, - { "oric1" , { 0xf18710b4 } }, - { "orica" , { 0xc3a92bef } }, - - { "laser110" , { 0x99412d43, 0xe4c24e8b, 0xead006a1 } }, - { "laser200" , { 0x99412d43, 0xe4c24e8b, 0xead006a1 } }, - { "tx8000" , { 0x99412d43, 0xe4c24e8b, 0xead006a1 } }, - { "laser210" , { 0xcc854fe9, 0x7060f91a, 0xead006a1 } }, - { "vz200" , { 0xcc854fe9, 0x7060f91a, 0xead006a1 } }, - { "fellow" , { 0xcc854fe9, 0x7060f91a, 0xead006a1 } }, - { "laser310" , { 0x613de12c, 0xead006a1 } }, - { "vz300" , { 0x613de12c, 0xead006a1 } }, - { "laser350" , { 0x9bed01f7, 0xed6bfb2a } }, - { "laser500" , { 0x9bed01f7, 0xed6bfb2a } }, - { "laser700" , { 0x9bed01f7, 0xed6bfb2a } }, - - { "kc85_4", { 0xdfe34b08, 0x57d9ab02, 0xd64cd50b } }, - - { "trs80l1" , { 0x70d06dff, 0x0033f2b9 } }, - { "trs80" , { 0x83dbbbe2, 0x05818718, 0x306e5d66, 0x0033f2b9 } }, - { "trs80alt" , { 0xbe46faf5, 0x6c791c2d, 0x55b3ad13, 0x0033f2b9 } }, - { "sys80" , { 0x8f5214de, 0x46e88fbf, 0x306e5d66, 0x0033f2b9 } }, - - { "mbee" , { 0x7896a696, 0xb21d9679, 0x0fc21cb5, 0xb85a9565 } }, - { "mbee56k" , { 0x28211224, 0xb85a9565 } }, - - { "kaypro" , { 0x5f72da5b, 0xd10cd036 } }, - - { "ep128" , { 0xd421795f, 0x683cf455, 0xd1d7e157 } }, - { "ep128a" , { 0x982a3b44, 0x683cf455, 0xd1d7e157 } }, - - { "jupiter" , { 0xdc8438a5, 0x4009f636} }, - - { "mz700" , { 0x4c6c6b7b, 0x42b9e8fb } }, - { "mz700j" , { 0x4c6c6b7b, 0x425eedf5 } }, - { "mz800" , { 0x0c281675, 0x42b9e8fb } }, - - { "ti99_4a" , { 0xdb8f33e5, 0x8f7df93f, 0xaf5c2449, 0x58b155f7 } }, - { "ti99_4ae" , { 0xdb8f33e5, 0x8f7df93f, 0xaf5c2449, 0x58b155f7 } }, - - { "coco" , { 0x54368805, 0xa82a6254, 0x0b9c5415 } }, - { "coco3" , { 0xb4c88d6c, 0x0b9c5415 } }, - { "dragon32" , { 0xe3879310 } }, - { "cp400" , { 0x878396a5, 0xe9ad60a0 } }, - { "mc10" , { 0x11fda97e } }, - - { "msx" , { 0x94ee12f3 } }, - { "msxj" , { 0xee229390 } }, - { "msxkr" , { 0x3ab0cd3b, 0x97478efb } }, - { "msxuk" , { 0xe9ccd789 } }, - - { "cgenie" , { 0xd359ead7, 0x2a96cf74, 0x4fed774a } }, - - { "aquarius" , { 0xa2d15bcf, 0xf4c12112} }, - - { "mtx512" , { 0x9ca858cc, 0x87b4e59c, 0x9d7538c3 } }, - - { "coupe" , { 0x9954cf1a, 0xf031aed4 } }, - - { "nascom1" , { 0xe371b58a, 0x33e92a04 } }, - { "nascom2" , { 0xb6300716, 0x5cb5197b, 0x33e92a04, 0x2bc09d32 } }, - - { "p2000t" , { 0x650784a3, 0x9d9d38f9, 0x873e81c1 } }, - { "p2000m" , { 0x650784a3, 0x9d9d38f9, 0x873e81c1 } }, - - { "uk101" , { 0x9d3caa92, 0x0039ef6a, 0x0d011242, 0x667223e8, 0x04ac5822, 0xfce2c84a } }, - { "superbrd" , { 0xf4f5dec0, 0x0039ef6a, 0xca25f8c1, 0x8ee6030e, 0xe5b7028d, 0xec94afe7} }, - -#if 0 - { "" , { , , } }, -#endif - -}; diff --git a/mess/tools/messroms/cvhp48.c b/mess/tools/messroms/cvhp48.c deleted file mode 100644 index 3793168db..000000000 --- a/mess/tools/messroms/cvhp48.c +++ /dev/null @@ -1,40 +0,0 @@ -/* this is a quite simple utility for - converting the hp48 romfile from its format -00000: 0123456789abcdef -into plain binary */ - -/* params: - inputstream hp48 romfile ascii - outputstream hp48 romfile binary -*/ - -#include - -int main(void) -{ - int addr=0, neu, line, i; - int v,v1; - - for (line=0; line<0x8000; line++, addr+=0x10) { // hp48s/sx -// for (line=0; line<0x10000; line++, addr+=0x10) { //hp48g/gx - if (1!=fscanf(stdin, "%05x:\n", &neu) ) { - fprintf(stderr, "look into this 20 line source\n"); - exit(1); - } - - if ( neu!=addr ) { - fprintf(stderr, "%.5x %.5x\n",neu,addr); - exit(1); - } - fprintf(stderr,"%.5x:", addr); - for (i=0; i<0x8; i++) { - if (2!=fscanf(stdin,"%1x%1x",&v,&v1)) ; - v=v|(v1<<4); - fprintf(stderr,"%02x", v); - fwrite(&v, 1, 1, stdout); - } - fprintf(stderr, "\n"); - } - - return 0; -} diff --git a/mess/tools/messroms/dump1000.c b/mess/tools/messroms/dump1000.c deleted file mode 100644 index c7857ab5f..000000000 --- a/mess/tools/messroms/dump1000.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include -#include - -/* -simple dos utility to dump the -bankswitched roms of several -tandy modells (1000rl, 1000rlx, 2500xl, ...) - -usage of dumppc is still recommended, to dump -ega/vga bios roms, network card bootroms, ... -usage of dumpat might be usefull - -memory modell large required -*/ - -/* - dma hardware might/will have problems with - rom chips - graphics card memory - - --> copy it always to normal ram, before fwrite - */ -char buffer[0x4000]; - -int main(void) -{ - char far *source; - unsigned long adr, adr2; - int oldpage, page, i, j; - FILE *file; - union REGS regs, oregs; - - regs.x.ax=0x7002; - int86(0x15, ®s, &oregs); - oldpage=oregs.h.al; - if (oregs.x.cflag) printf("doesn't support int 15 ax=0x7002\n"); - - file=fopen("dump1000.bin","wb"); - - /* 0x12 gives (0x12+1)*65536 big file - small enough to fit on a 1.2mb disk - large enough to hold big roms - banks 0x10, 0x11 show if rom is larger than 1 megabyte */ - for (page=0; page<0x12; page++) { - - regs.x.ax=0x7003; - regs.h.dl=page; - int86(0x15, ®s, &oregs); - if (oregs.x.cflag) break; - - for (i=0;i<0x100;i+=0x40) { - - - source=MK_FP(0xe000,(i<<8)); - for (j=0;j<0x4000;j++) buffer[j]=source[j]; - - fwrite(buffer,1,0x4000,file); - } - } - - regs.x.ax=0x7003; - regs.h.dl=oldpage; - int86(0x15, ®s, &oregs); - if (oregs.x.cflag) - printf("doesn't support int 15 ax=0x7003 dl=%.2x\n",oldpage); - - for (i=0;i<0x100;i+=0x40) { - source=MK_FP(0xf000,(i<<8)); - for (j=0;j<0x4000;j++) buffer[j]=source[j]; - fwrite(buffer,1,0x4000,file); - } - - fclose(file); - return 0; -} diff --git a/mess/tools/messroms/dump1000.txt b/mess/tools/messroms/dump1000.txt deleted file mode 100644 index 68b655d8d..000000000 --- a/mess/tools/messroms/dump1000.txt +++ /dev/null @@ -1,28 +0,0 @@ -MSDOS utility for saving -tandy 1000rl, 1000rlx, 2500xl, ... -bankswitched rom (7 or 15 64kbyte banks at 0xe0000) - -using dumppc is still useful on tandy 1000, ... -using dumpat should not be useful on tandy 1000, ... - -creates dump1000.bin, remember to rename -it after creating the image - -depends an API in bios -will write following if API is not present - doesn't support int 15 ax=0x7002 - doesn't support int 15 ax=0x7003 dl=02 - - -invocation: -make sure rom shadow in bios -setup is turned off -load plain dos -(no windows, no memory manager, -best clean disk) -make sure there are upto 1.1MB disk (in many cases 512kb are enough) -space free -run dump1000 - -PeT 29.August 2001 - diff --git a/mess/tools/messroms/dumpat.c b/mess/tools/messroms/dumpat.c deleted file mode 100644 index 52015c81d..000000000 --- a/mess/tools/messroms/dumpat.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include - -/* -simple dos utility to dump the -the extended/protected rom area of 286 or 386 based ibm pc at compatibles -(286 0xf00000-0xffffff - 386 0xfff00000-0xffffffff) -might work on 286 based pure pc's (not at's) - -Some at's, tandy 1000's contain additional bios software at the -protected mode addresses, not visible or accessible to normal dos. - -usage of dumppc is still recommended, to dump -ega/vga bios roms, network card bootroms, ... - -(may have troubles in virtuel 8086 -of the 80386 processors) - -memory modell large required -*/ - -/* if you are familiar with -debug or other such utilities -its better to use the utility */ - -char buffer[0x4000]= { 0 }; - -struct _TABLE { - char res[0x10]; - struct { - unsigned short limit; - unsigned short address_low; - unsigned char address_high; - unsigned char rights; - unsigned char rights386; - unsigned char address_high386; - } src, dest; - char res2[0x10]; -} global_descriptor_table={ - { 0 }, - { 0xffff, 0, 0, 0x93, 0, 0 }, - { 0xffff, 0, 0, 0x93, 0, 0 }, -}; - -int main(void) -{ - unsigned long adr, adr2; - FILE *file; - union REGS regs, oregs; - struct SREGS segs; - - file=fopen("dumpat.bin","wb"); - - // hopefully the i386 addresses gives 286 addresses in 286 based systems -// for (adr=0x00f00000ul; adr!=0x01000000ul; adr+=0x4000) { - for (adr=0xfff00000ul; adr!=0x00000000ul; adr+=0x4000ul) { - - regs.x.cx=0x4000/2; - regs.h.ah=0x87; - segs.es=FP_SEG(&global_descriptor_table); - regs.x.si=FP_OFF(&global_descriptor_table); - - memset(&global_descriptor_table, 0, sizeof(global_descriptor_table)); - global_descriptor_table.src.limit=0xffff; - global_descriptor_table.src.address_low=adr&0xffff; - global_descriptor_table.src.address_high=(adr>>16)&0xff; - global_descriptor_table.src.address_high386=(adr>>24); - global_descriptor_table.src.rights=0x93; - - adr2=FP_OFF(buffer)+((unsigned long)FP_SEG(buffer)<<4); - global_descriptor_table.dest.limit=0xffff; - global_descriptor_table.dest.address_low=adr2&0xffff; - global_descriptor_table.dest.address_high=(adr2>>16)&0xff; - global_descriptor_table.dest.address_high386=(adr2>>24); - global_descriptor_table.dest.rights=0x93; - -asm cli; - int86x(0x15, ®s, &oregs, &segs); -asm sti; - printf("ah:%.2x adr %lx\n", oregs.h.ah, adr); - fwrite(buffer,1,0x4000,file); - } - - fclose(file); - return 0; -} diff --git a/mess/tools/messroms/dumpat.txt b/mess/tools/messroms/dumpat.txt deleted file mode 100644 index cae313647..000000000 --- a/mess/tools/messroms/dumpat.txt +++ /dev/null @@ -1,25 +0,0 @@ -MSDOS utility for saving the -memory region "protected mode rom area" -(0xfff0000 - 0xffffffff on 386) -(hopefully 0xf00000 - 0xffffff on 286, when not let me know, and I -will add/generate an dump286 for the 286 protected mode) - -In many cases it is the same rom mapped at 0xf0000, -but in rare cases (advanced bios, some tandy 1000) -or new systems it is different. - -creates dumpat.bin, remember to rename -it after creating the image - -invocation: -make sure rom shadow in bios -setup is turned off -load plain dos -(no windows, no memory manager, -best clean disk) -make sure there are 1MB disk -space free -run dumpat - -PeT 7.January 2001 - diff --git a/mess/tools/messroms/dumppc.c b/mess/tools/messroms/dumppc.c deleted file mode 100644 index 39991c50c..000000000 --- a/mess/tools/messroms/dumppc.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -/* -simple dos utility to dump the -the rom area of pc's - -(may have troubles in virtuel 8086 -of the 80386 processors) - -memory modell large required -*/ - -/* if you are familiar with -debug or other such utilities -its better to use the utility */ - -char buffer[0x4000]; - -int main(void) -{ - char far *dest; - unsigned long seg; - int i; - FILE *file; - - file=fopen("dump.bin","wb"); - - for (seg=0xc000; seg<0x10000; seg+=0x400) { - - dest=MK_FP(seg,0); - - for (i=0;i<0x4000;i++) buffer[i]=dest[i]; - - fwrite(buffer,1,0x4000,file); - } - - fclose(file); - return 0; -} diff --git a/mess/tools/messroms/dumppc.txt b/mess/tools/messroms/dumppc.txt deleted file mode 100644 index dbde97d4c..000000000 --- a/mess/tools/messroms/dumppc.txt +++ /dev/null @@ -1,25 +0,0 @@ -MSDOS utility for saving the -memory region 0xc000:0 - 0xf000:0xffff -(rom area) - -creates dump.bin, remember to rename -it after creating the image - -invocation: -make sure rom shadow in bios -setup is turned off -load plain dos -(no windows, no memory manager, -best clean disk) -make sure there are 256kB disk -space free -run dumppc - -PeT 29.June 2000 - -0xc0000-0xc7fff in many systems vga bios -0xf0000-0xfffff system bios - -in newer systems (with flash bios) -the complete bios is NOT mapped in -this memory area! \ No newline at end of file diff --git a/mess/tools/messroms/main.c b/mess/tools/messroms/main.c deleted file mode 100644 index 12ba299d8..000000000 --- a/mess/tools/messroms/main.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - based on unix romident -*/ - -#include -#include -#include -#include -#include -#include -#include "stdarg.h" - -#include "unzip.h" -#include "zlib.h" - -#include "roms.h" -#include "comp.h" - -#ifndef CLIB_DECL -#define CLIB_DECL -#endif - -#define ARRAY_LENGTH(a) (sizeof(a)/sizeof(a[0])) - -enum { GOOD_SIZED_ROMS, ALL_ROMS }; - -void CLIB_DECL logerror(const char *text,...) -{ - va_list arg; - va_start(arg,text); - if (0) - vfprintf(stderr,text,arg); - va_end(arg); -} - -void get_dirname(char *s, char *d) -{ - char* slash = strrchr(s,'/'); - if (slash) { - int len = slash-s; - strncpy(d,s,len); - d += len; - } else { - *(d++)='.'; - } - *d = 0; -} - -void get_filename(char *s, char *d) -{ - char* slash = strrchr(s,'/'); - if (slash) - ++slash; - else - slash = s; - strcpy(d,slash); -} - -int hex2int(char *crcstr) -{ - int s = 0, i, v = 0, m = 1; - char d; - do { - s++; - } while ((crcstr[s]!=0)&&(crcstr[s]!=' ')); - s--; - for (i=s;i>=0;i--) { - if (crcstr[i]>='a') crcstr[i]-=32; - d = toupper(crcstr[i]); - if ((d>='0') && (d<='9')) v+=m*(int)(d-'0'); - if ((d>='A') && (d<='F')) v+=m*(10+(int)(d-'A')); - m = m * 16; - } - return v; -} - -void print_computer(int crc_32) -{ - int i, j; - - for (i=0; iname, zipf->crc32, zipf->uncompressed_size, mode); - } - closezip(zip); - return 0; -} - -int ident_dir(char *fn, int mode) -{ - struct dirent* d; - DIR* dd = opendir(fn); - if (!dd) return 1; - d = readdir(dd); - while (d) { - struct stat st; - char path[512]; - sprintf(path,"%s/%s",fn,d->d_name); - if (stat(path,&st)!=0) return 1; - if (!S_ISDIR(st.st_mode)) { - if (ident_file(fn, d->d_name, st.st_size, mode)) return 1; - } - d = readdir(dd); - } - return 0; -} - -void ident(char *fn, int mode) -{ - int l; - struct stat st; - if (stat(fn,&st)!=0) { - fprintf(stderr,"error in stat file %s\n", fn); - return; - } - if (!S_ISDIR(st.st_mode)) { - l = strlen(fn); - if (l>4 && (strcmp(&fn[l-4], ".zip")==0 || strcmp(&fn[l-4], ".ZIP")==0)) { - ident_zip(fn, mode); - } else { - char dir[512]; - char file[512]; - get_dirname(fn,dir); - get_filename(fn,file); - ident_file(dir, file, -1, mode); - } - } else { - ident_dir(fn, mode); - } -} - -#if defined(_MSC_VER) -int DECL_SPEC main(int argc, char **argv) -#else -int main(int argc, char **argv) -#endif -{ - int nf; - int mode = GOOD_SIZED_ROMS; - - printf("MESSROMS alpha0.1\n"); - - if (argc<2) { - printf("Error, specify atleast one file name !\n"); - return 1; - } - - for (nf=1;nf -#include -#include -#include -#include -#include - -/* simple linux utility (needs root privileg) - dumps 24pin dil package - (gnd 12, +5v 24, d0..d2 9..11, d3..d7 13..17) - ct eprop needed - -eprop - a7 +5v - a6 a8 - a5 a9 - a4 a11 - a3 a13 - a2 a10 - a1 a12 - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 -*/ - -// gcc -O -// important because of inb, outb - - -/* - 2716 - - a7 +5v - a6 a8 - a5 a9 - a4 vpp (hi?) - a3 /oe - a2 a10 - a1 /CE - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 -*/ - -/* - bally 9316 - - 0x1000 zero - 0x800 data - 0x2800 zero - - a7 +5v - a6 a8 - a5 a9 - a4 lo (/cs?) - a3 lo (/cs?) - a2 a10 - a1 hi (cs?) - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 - */ - -/* - 2732 - 0x1000 data - 0x3000 zero - - a7 +5v - a6 a8 - a5 a9 - a4 a11 - a3 /oe vpp - a2 a10 - a1 /CE - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 -*/ - -/* signetics c19082 notes - first 0x2800 bytes zero - 0x800 data - 0x800 byte zero - 0x800 data - - a7 +5v - a6 a8 - a5 a9 - a4 !hi (a11 eprop) - a3 hi (a13 eprop) - a2 a10 - a1 a11 (a12 eprop) - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 - - commands to extract data from dump: - dd if=dil24.bin of=lo bs=2048 count=1 skip=5 - dd if=dil24.bin of=hi bs=2048 count=1 skip=7 - cat lo hi >c19082.bin - */ - -/* signetics c19081 notes - first 0x2000 bytes zero - 0x800 data - 0x800 byte zero - 0x800 data - 0x800 byte zero - - a7 +5v - a6 a8 - a5 a9 - a4 !lo (a11 eprop) - a3 hi (a13 eprop) - a2 a10 - a1 a11 (a12 eprop) - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 - - commands to extract data from dump: - dd if=dil24.bin of=lo bs=2048 count=1 skip=4 - dd if=dil24.bin of=hi bs=2048 count=1 skip=6 - cat lo hi >c19081.bin - */ - -/* cn45048 notes - 0x800 data - 0x800 zero - 0x800 data - 0x2800 zero - - a7 +5v - a6 a8 - a5 a9 - a4 lo (!cs?) - a3 lo (!oe?) - a2 a10 - a1 a11 - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 - - commands to extract data from dump: - dd if=dil24.bin of=lo bs=2048 count=1 - dd if=dil24.bin of=hi bs=2048 count=1 skip=2 - cat lo hi >cn45048.bin -*/ - -/* mos 6332 notes - 0x800 zero - 0x800 data - 0x800 zero - 0x800 data - 0x2000 zero - - a7 +5v - a6 a8 - a5 a9 - a4 hi (cs?) - a3 lo (!cs?) - a2 a10 - a1 a11 - a0 d7 - d0 d6 - d1 d5 - d2 d4 - gnd d3 - - commands to extract data from dump: - dd if=dil24.bin of=lo bs=2048 count=1 skip=1 - dd if=dil24.bin of=hi bs=2048 count=1 skip=3 - cat lo hi >mos6332.bin - */ - -#define PORT_BASE 0x3e0 - -void wait_ticks(int c) -{ - struct timeval now, last; - unsigned long long a,b; - gettimeofday(&last,NULL); - a=1000000ull*last.tv_sec+last.tv_usec; - for (;;) { - gettimeofday(&now,NULL); - b=1000000ull*now.tv_sec+now.tv_usec; - if (b-a>c) break; - } -} - -int port[8]={0}; - -void out_port(int value, int off) -{ - port[off]=value; - outb(value, PORT_BASE+off); -} - -void out_addr(int addr) -{ - int temp; - - out_port(addr&0xff,0); - - temp=port[1]; - temp&=~0xf; - temp|=(addr>>8)&0xf; - out_port(temp, 1); - - temp=port[3]; - temp&=~0x41; - if (addr&0x1000) temp|=0x40; - if (addr&0x2000) temp|=1; - out_port(temp,3); -} - -int main(void) -{ - int value, i; - unsigned char data[0x4000]; - FILE *file; - - ioperm(PORT_BASE,8,1); - - out_port(0,0); - out_port(0,1); // CS on - out_port(0,2); // - out_port(0,6); // vpp off - - out_port(4,3); // VCC on, VCC=5V, Socket=24pin, /OE=0, read - - wait_ticks (100000); - -// for (i=0; i<0x40; i++) { - for (i=0; i<0x4000; i++) { - out_addr(i); - wait_ticks(100); - value=inb(PORT_BASE+4); - data[i]=value; - if ((i&0xf)==0) printf("%.4x:",i); - printf(" %.2x", value); - if ((i&0xf)==0xf) printf("\n"); - } - out_port(0xf8,2); // led off - out_port(0,3); //VCC off - out_port(0,6); //VPP off - out_port(0,0); - - file=fopen("dil24.bin","wb"); - fwrite(data,1,sizeof(data),file); - fclose(file); - - return 0; -} diff --git a/mess/tools/messroms/read6332.c b/mess/tools/messroms/read6332.c deleted file mode 100644 index cb4f7fb3e..000000000 --- a/mess/tools/messroms/read6332.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include -#include -#include -#include -#include - -/* simple linux utility (needs root privileg) - dumps mos 6332 roms - ct eprop needed */ - -// gcc -O -// important because of inb, outb - -#define PORT_BASE 0x3e0 - -void wait_ticks(int c) -{ - struct timeval now, last; - unsigned long long a,b; - gettimeofday(&last,NULL); - a=1000000ull*last.tv_sec+last.tv_usec; - for (;;) { - gettimeofday(&now,NULL); - b=1000000ull*now.tv_sec+now.tv_usec; - if (b-a>c) break; - } -} - -/* - ct eprop - 8 bit socket - - 1 A7 - 2 A6 - 3 A5 - 4 A4 - 5 A3 - 6 A2 - 7 A1 - 8 A0 - 9 D0 - 10 D1 - 11 D2 - 12 GND - - 13 D3 - 14 D4 - 15 D5 - 16 D6 - 17 D7 - 18 /CE should be A11! - 19 A10 - 20 /OE should be !CS - 21 A11 should be CS - 22 A9 - 23 A8 - 24 5V - - */ - -/* - mos 6332 - 4 kbyte 8bit rom - - 1 A7 - 2 A6 - 3 A5 - 4 A4 - 5 A3 - 6 A2 - 7 A1 - 8 A0 - 9 D0 - 10 D1 - 11 D2 - 12 GND - - 13 D3 - 14 D4 - 15 D5 - 16 D6 - 17 D7 - 18 A11 - 19 A10 - 20 CS1 - 21 CS2 - 22 A9 - 23 A8 - 24 5V - - */ - - -int port[8]={0}; - -void out_port(int value, int off) -{ - port[off]=value; - outb(value, PORT_BASE+off); -} - -void out_addr(int addr) -{ - int temp; - - out_port(addr&0xff,0); - - temp=port[1]; - temp&=~7; - temp|=(addr>>8)&7; - out_port(temp, 1); - - temp=port[3]; - temp&=~0x40; - if (addr&0x800) temp|=0x40; - out_port(temp,3); -} - -int main(void) -{ - int value, i; - unsigned char data[0x1000]; - FILE *file; - - ioperm(PORT_BASE,8,1); - - out_port(0,0); - out_port(8,1); // CS on - out_port(0,2); // - out_port(0,6); // vpp off - - out_port(4,3); // VCC on, VCC=5V, Socket=24pin, /OE=0, read - - wait_ticks (100000); - -// for (i=0; i<0x40; i++) { - for (i=0; i<0x1000; i++) { - out_addr(i); - wait_ticks(100); - value=inb(PORT_BASE+4); - data[i]=value; - printf("%.4x %.2x\n", i, value); - } - out_port(0xf8,2); // led off - out_port(0,3); //VCC off - out_port(0,6); //VPP off - out_port(0,0); - - file=fopen("6332.bin","wb"); - fwrite(data,1,sizeof(data),file); - fclose(file); - - return 0; -} diff --git a/mess/tools/messroms/read6530.c b/mess/tools/messroms/read6530.c deleted file mode 100644 index 4c5645b3a..000000000 --- a/mess/tools/messroms/read6530.c +++ /dev/null @@ -1,199 +0,0 @@ -#include -#include -#include -#include -#include -#include - -/* simple linux utility (needs root privileg) - dumps mos 6530 roms - ct eprop needed - you have to pick out - the position of registers - (64 bytes something like ff 00 ) - the position of ram - (64 bytes, most ff) - the position of the rom - (1024 bytes data) - unused is in my eprommer zero -*/ - -// gcc -O -// important because of inb, outb - -#define PORT_BASE 0x3e0 - -void wait_ticks(int c) -{ - struct timeval now, last; - unsigned long long a,b; - gettimeofday(&last,NULL); - a=1000000ull*last.tv_sec+last.tv_usec; - for (;;) { - gettimeofday(&now,NULL); - b=1000000ull*now.tv_sec+now.tv_usec; - if (b-a>c) break; - } -} - -/* - ct eprop - 8 bit socket - - 1 A19 - 2 A16 - 3 A15 - 4 A12 - 5 A7 - 6 A6 - 7 A5 - 8 A4 - 9 A3 - 10 A2 - 11 A1 - 12 A0 - 13 D0 - 14 D1 - 15 D2 - 16 GND - - 17 D3 - 18 D4 - 19 D5 - 20 D6 - 21 D7 - 22 /CE - 23 A10 - 24 /OE - 25 A11 - 26 A9 - 27 A8 - 28 A13 - 29 A14 - 30 A17 - 31 A18 - 32 5V - - */ - -/* - mos 6530 - - 1 GND - 2 PA0 - 3 Phi2 connected to ce (simulating clock seams important) - 4 RS0 (A10) - 5 A9 - 6 A8 - 7 A7 - 8 A6 - 9 R/W - 10 A5 - 11 A4 - 12 A3 - 13 A2 - 14 A1 - 15 A0 - 16 /RES connected to a13 - 17 PB7, /IRQ - 18 PB6, CS1 (A11) - 19 PB5, CS2 (A12) - 20 5V - - 21 PB4 - 22 PB3 - 23 PB2 - 24 PB1 - 25 PB0 - 26 D7 - 27 D6 - 28 D5 - 29 D4 - 30 D3 - 31 D2 - 32 D1 - 33 D0 - 34 PA7 - 35 PA6 - 36 PA5 - 37 PA4 - 38 PA3 - 39 PA2 - 40 PA1 - -connected a0..a12, d0..d7, gnd, 5v, R/W - - */ - - -int port[8]={0}; - -void out_port(int value, int off) -{ - port[off]=value; - outb(value, PORT_BASE+off); -} - -void out_addr(int addr) -{ - int temp; - - out_port(addr&0xff,0); - - temp=port[1]; - temp&=~0x1f; - temp|=(addr>>8)&0x1f; - out_port(temp, 1); -} - -void clk(void) -{ - out_port(port[3]&~0x40,3); - wait_ticks(1); - out_port(0x40|port[3],3); - wait_ticks(1); -} - -int main(void) -{ - int value, i; - unsigned char data[0x2000]; - FILE *file; - - ioperm(PORT_BASE,8,1); - - out_port(0,0); - out_port(0,1); // reset - out_port(0x20,2); // 32 pol led - out_port(0,6); // vpp off - - out_port(0x11,3); // VCC on, VCC=5V, Socket=24pin, /OE=0, read - - wait_ticks (100000); - - clk(); - out_port(0x20|port[1],1); // reset off - clk(); - - - for (i=0; i<0x2000; i++) { - if ((i&0xf)==0) printf("%.4x:",i); - out_addr(i); - clk(); - wait_ticks(1); - value=inb(PORT_BASE+4); - data[i]=value; - printf("%.2x",value); - if ((i&0xf)==0xf) printf("\n"); - } - out_port(0xf8,2); // led off - out_port(0,3); //VCC off - out_port(0,6); //VPP off - out_port(0,0); - - file=fopen("6530.bin","wb"); - fwrite(data,1,sizeof(data),file); - fclose(file); - - return 0; -} diff --git a/mess/tools/messroms/roms.h b/mess/tools/messroms/roms.h deleted file mode 100644 index 7a38aa1f4..000000000 --- a/mess/tools/messroms/roms.h +++ /dev/null @@ -1,1602 +0,0 @@ -/* the main goal of the list is to identify - roms - currently not used - bad dumps - merged, combined, modified sets */ - -static struct { - int crc32; int size; const char *text; -} roms[]= { - { 0x5be0a51f, 0x200, "VIP monitor" }, - { 0x3e0f50f0, 0x200, "VIP chip8 interpreter" }, - { 0xa494b339, 0x800, "STUDIO2 bios" }, - - { 0x279e33d1 , 0x400, "ADVENTURE VISION bios" }, - - { 0x04694ed9 , 0x400, "31253 CHANNELF" }, - { 0x9c047ba3 , 0x400, "31254 CHANNELF" }, - { 0x2882c02d , 0x800, "MERGED! CHANNELF 31253+31254" }, - - { 0xebc77f3a , 0x2000, "ASTROCADE" }, - - { 0x3aa93ef3 , 0x2000, "COLECO" }, - { 0x39bb16fc , 0x2000, "COLECO alternate" }, - { 0x05a37a34, 0x2000, "ADAM eos" }, - { 0x58d86a2a, 0x8000, "ADAM wp" }, - - { 0xba13fb57 , 0x2000, "VECTREX" }, - { 0x20af7f3f , 0x8000, "RAASPEC" }, - - { 0x8016a315 , 0x400, "ODYSSEY2" }, - - { 0x5e607dcf, 0x2000, "FAMICOM disk" }, - { 0x38000b6b, 0x40, "SNES" }, - - { 0xcbce86f7, 0x2000, "INTV" }, - { 0x683a4158, 0x800, "INTV" }, - - { 0xe6ef1ee1, 0x800, "TV-Spielcomputer" }, - - { 0x05602697, 0x800, "FUNVISION/CREATIVISION" }, - -/* Sony Playstation ***********************************************************/ - { 0x37157331, 0x80000, "Sony Playstation DTHL-3000 v2.2A (95.12.04)" }, - { 0x1e26792f, 0x80000, "Sony Playstation DTHL-3002 v2.2E (95.12.04)" }, - { 0x3b601fc8, 0x80000, "Sony Playstation SCPH-1000 J (94.09.22)" }, - { 0x37157331, 0x80000, "Sony Playstation SCPH-1001 v2.2A (95.12.04)" }, - { 0x24fc7e17, 0x80000, "Sony Playstation SCPH-5000 v2.2J (95.12.04)" }, - { 0x8c93a399, 0x80000, "Sony Playstation SCPH-5000 v2.2J (95.12.04) (alt)" }, - { 0xff3eeb8c, 0x80000, "Sony Playstation SCPH-5500 v3.0J (96.09.09)" }, - { 0x4d9e7c86, 0x80000, "Sony Playstation SCPH-5502 v3.0E (97.01.06)" }, - { 0xec541cd0, 0x80000, "Sony Playstation SCPH-7000 v4.0J (97.08.18)" }, - { 0x502224b6, 0x80000, "Sony Playstation SCPH-7001 v4.1A (97.12.16)" }, - { 0x8d8cb7e4, 0x80000, "Sony Playstation SCPH-7003 v3.0A (97.11.18)" }, - { 0x318178bf, 0x80000, "Sony Playstation SCPH-7502 v4.1E (97.12.16)" }, - - { 0x39bff762, 0x80000, "Sony Playstation Bleem! v5.1" }, - - -/* Sega Consoles **************************************************************/ - { 0xf691f9c7, 0x8000, "SC3000 basic 2j" }, - { 0x155fd01f, 0x8000, "SC3000 basic 31" }, - - { 0x3f888cf4, 0x800, "Sega Genesis" }, - - { 0x5c12eae8, 0x100, "Sega 32X (M68000)" }, - { 0xdd9c46b8, 0x800, "Sega 32X (master SH2)" }, - { 0xbfda1fe5, 0x400, "Sega 32X (slave SH2)" }, - - { 0x9d2da8f2, 0x20000, "Sega Mega CD 1.00J (911217)" }, - { 0xd344f125, 0x20000, "Sega Mega CD 2.00E (930106)" }, - - { 0xc6d10268, 0x20000, "Sega CD 1.10U (921110)" }, - - { 0x2aba43c2, 0x80000, "Sega Saturn 1.00 (940921)" }, - { 0x4afcf0fa, 0x80000, "Sega Saturn 1.00 (941115)" }, - { 0x224b752c, 0x80000, "Sega Saturn 1.01 (941228)" }, - - { 0x574fd2c3, 0x80000, "Sega ST-V 1.13J (950425)" }, - { 0xbf7dbdd7, 0x80000, "Sega ST-V 1.13U (950425)" }, - -/* NEC ***********(************************************************************/ - { 0xf82771f1, 0x2000, "PCEngine cdrom bios" }, - - { 0xe983ad21, 0x8000, "BAD DUMP PC6001 (2nd half 0xff)" }, - { 0x1a63a57a, 0x2000, "BAD DUMP PC6001 (1st and 2nd half equal)" }, - { 0x950ac401, 0x8000, "PC6001 basic" }, //62? - { 0xb5364f8b, 0x2000, "PC6001 char" }, - { 0x20c8f3eb, 0x8000, "PC6001 kanji" }, - { 0x49b4f917, 0x4000, "PC6001 voice" }, - - { 0xc0b01772, 0x8000, "PC6601 basic" }, - { 0xd2434f29, 0x2000, "PC6601 char" }, - { 0x3ce48c33, 0x2000, "PC6601 char" }, - { 0xf952b567, 0x8000, "PC6601 kanji" }, - { 0x91d078c1, 0x4000, "PC6601 voice" }, - - { 0x516b1be3, 0x8000, "PC6601 basic" }, //68?? - { 0x331473a9, 0x2000, "PC6601 char" }, - { 0x03ba2cf1, 0x2000, "PC6601 char" }, - { 0x07318218, 0x2000, "PC6601 system2" }, - { 0x37ff3829, 0x4000, "PC6601 voice" }, - - { 0x27e1857d , 0x8000, "PC8801mk2sr 00000 PC-8001 basic 1.5 debug 1.0c" }, - { 0xa0fc0473 , 0x8000, "PC8801mk2sr 08000 N-88 basic 1.4" }, - { 0x710a63ec , 0x2000, "PC8801mk2sr 10000" }, - { 0xc0bd2aa6 , 0x2000, "PC8801mk2sr 12000" }, - { 0xaf2b6efa , 0x2000, "PC8801mk2sr 14000" }, - { 0x7713c519 , 0x2000, "PC8801mk2sr 16000" }, - { 0x2158d307 , 0x800, "PC8801 disk" }, - { 0x6178bd43 , 0x20000, "PC8801 charrom" }, - { 0x154803cc , 0x20000, "PC8801 charrom (empty 0xff)" }, - { 0xeb1d90ca, 0x1c000, "PC8801? (32kb N-88 basic 1.9 08000,8kb 0e000, 8kb?, 8kb 10000, 8kb 12000,8kb 14000,8kb 16000,8kb ?,24kb PC-8001 Basic 1.8 00000" }, - { 0x7a6edb47, 0x1800, "PC8801 char?" }, - { 0x0f60c51f, 0x20000, "PC8801 kanji1?" }, - { 0x8e67a330, 0x20000, "PC8801 kanji2?" }, - { 0x04f60f50 , 0x420, "OVERDUMP PC8801 disk extension? (remove first 32 bytes)" }, - - { 0x6e299128 , 0x8000, "BAD DUMP/ROM? PC9821 00000" }, - { 0xf2a262b0 , 0x8000, "BAD DUMP/ROM? PC9821 c8000" }, - { 0x5dda57cc , 0x8000, "BAD DUMP/ROM? PC9821 d8000" }, - { 0x4e32081e , 0x8000, "PC9821 e8000" }, - { 0x4da85a6c , 0x8000, "PC9821 f0000" }, - { 0x2b1e45b1 , 0x8000, "MODIFIED? PC9821 f8000" }, - -/* Apple Computers ************************************************************/ - -/* apple I */ - { 0xa30b6af5 , 0x100, "APPLE1 bios" }, - { 0xbe70bb85 , 0x400, "APPLE1 characterset bad dump?" }, - { 0xa3f2d66f , 0x400, "APPLE1 characterset" }, - -/* apple II */ - { 0x24d73c7b, 0x1000, "APPLE2 d000" }, - { 0x0d494efd, 0x1000, "APPLE2 e000" }, - { 0xb58f1ca1, 0x1000, "APPLE2 f000" }, - { 0xf66f9c26 , 0x3000, "MERGED APPLE2? (0x24d73c7b+0x0d494efd+0xb58f1ca1)" }, - - { 0xe248835e , 0x2000, "APPLE2E bios c000 (?+0x24d73c7b)" }, - { 0xfc3d59d8 , 0x2000, "APPLE2E bios e000 (0x0d494efd+?)" }, - { 0x443aa7c4 , 0x2000, "APPLE2EE bios c000" }, - { 0x95e10034 , 0x2000, "APPLE2EE bios e000" }, - - { 0x65989942, 0x4000, "BAD DUMP APPLE2E (0x?+0x95e10034!+0x443aa7c4+0x95e10034!)" }, - - { 0x02b648c8 , 0x4000, "APPLE2EP bios c000" }, - { 0xf0edaa1b , 0x4000, "APPLE2C bios" }, - { 0xc8b979b3 , 0x8000, "APPLE2C0 bios" }, - { 0x0b996420 , 0x8000, "APPLE2CP bios" }, - - { 0xce7144f6 , 0x100, "APPLE2E disk" }, - { 0x816a86f1 , 0x1000, "APPLE2E characterset" }, - { 0x2651014d , 0x1000, "APPLE2C characterset" }, - - { 0x42f124b0 , 0x20000, "APPLE2GS" }, - - { 0xecfceb45 , 0x800, "INCOMPLETE? APPLE characterset ???" }, - { 0xc506efb9 , 0x800, "INCOMPLETE? APPLE characterset ???" }, - { 0x2b6da315 , 0x1000, "BAD DUMP? APPLE characterset 0xc506efb9+0xc506efb9!" }, - { 0x0b0759cc , 0x1000, "BAD DUMP? APPLE characterset (first half 0xff)+0xc506efb9" }, - -/* apple III */ - -/* lisa */ - { 0xadfd4516 , 0x2000, "LISA2 hi" }, - { 0x546d6603 , 0x2000, "LISA2 lo" }, - { 0xbc6364f1 , 0x1000, "LISA2 6504" }, - { 0x75904783 , 0x100, "LISA2 vidprom" }, - - { 0xb72a2c70, 0x100, "lisa vidprom ??" }, - { 0x223f3917, 0x100, "lisa vidprom few differences to 0xb72a2c70 ??" }, - { 0xe343fe74, 0x1000, "lisa ??" }, - { 0x8c67959a, 0x1000, "lisa ??" }, - { 0xef19130f, 0x1000, "lisa ??" }, - { 0xa26ef1c6, 0x800, "lisa ??" }, - { 0x25e86e95, 0x2000, "lisa ??" }, - { 0xe693057b, 0x2000, "lisa ??" }, - { 0x80add605, 0x2000, "lisa 68000 hi??" }, - { 0xedf5222f, 0x2000, "lisa 68000 lo??" }, - -/* macintosh */ - { 0x7cacd18f , 0x020000, "Macintosh Plus v2 Lonely Heifers 342-0341+342-0342 (4d1eeae1)" }, - { 0xb2102e8e , 0x020000, "Macintosh Plus v3 Loud Harmonicas 342-0341+342-0342 (4d1f8172)" }, - { 0xf69697e6 , 0x010000, "Macintosh Plus v3 Loud Harmonicas 342-0341 (4d1f8172) EVEN" }, - { 0x49f25913 , 0x010000, "Macintosh Plus v3 Loud Harmonicas 342-0342 (4d1f8172) ODD" }, - { 0xce3b966f , 0x040000, "Macintosh II(HDFD), IIx, IIcx, SE/30 342-0639+342-0640+342-0641+342-0642 (97221136)" }, - { 0x71681726 , 0x080000, "Macintosh LC 342-0392+342-0393+342-0394+342-0395 (350eacf0)" }, - { 0xa92145b3 , 0x080000, "Macintosh IIci, LC-II 342-0476+342-0475+342-0474+342-0473 (35c28f5f)" }, - { 0x46adbf74 , 0x080000, "Macintosh IIci 342-0736+342-0735+342-0734+342-0733 (368cadfe)" }, - { 0x1735e7a5 , 0x100000, "Macintosh LC 630, Performa 630 (06684214)" }, - { 0x88ea2081 , 0x100000, "Macintosh Quadra 700, Quadra 900 (420dbff3)" }, - { 0xa893cb0f , 0x100000, "Macintosh Performa 450, Performa 550 (?) (ede66cbd)" }, - { 0xb8514689 , 0x100000, "Macintosh LC 475, Performa 475, Quadra 605 (ff7439ee)" }, - { 0x4e70e3c0 , 0x100000, "Macintosh Centris 650, Quadra 650 (f1acad13)" }, - { 0xe578f5f3 , 0x100000, "Macintosh LC-III, Performa 460 (ecbbc41c)" }, - { 0x59e6960f , 0x100000, "Macintosh LC 580, Performa 580 (064dc91d)" }, - { 0x66cf9f2f , 0x200000, "Macintosh PowerBook 520 (b6909089)" }, - - { 0xb86ed854 , 0x100000, "Macintosh Unknown (ecfa989b)" }, - - { 0x6eb97aff , 0x010000, "BAD DUMP Macintosh Plus v2 Lonely Heifers 342-0341 (4d1eeae1) EVEN" }, - { 0xbfdc37d1 , 0x010000, "BAD DUMP Macintosh Plus v2 Lonely Heifers 342-0342 (4d1eeae1) ODD" }, - { 0x7624ef58 , 0x020000, "BAD DUMP Macintosh Plus v2 Lonely Heifers 342-0341+342-0342 (4d1eeae1)" }, - { 0xf7c4b876 , 0x01ffff, "INCOMPLETE BAD DUMP Macintosh Plus v2 Lonely Heifers 342-0341+342-0342 (4d1eeae1)" }, - { 0xe133094a , 0x021d50, "OVER DUMP Macintosh Plus v3 Loud Harmonicas 342-0341+342-0342 (4d1f8172)" }, - { 0xa39fb2b9 , 0x400000, "BAD DUMP Power Mac (96cd923d)" }, - - -/* Acorn **********************************************************************/ - { 0xc604db3d , 0x1000, "ATOM kernel" }, - { 0x81d86af7 , 0x1000, "ATOM floating point" }, - { 0x43798b9b , 0x1000, "ATOM basic" }, - { 0xc431a9b7 , 0x1000, "ATOM dos" }, - { 0x3c14fc70 , 0x4000, "PROTON kernel" }, - { 0x79434781 , 0x4000, "PROTON basic" }, - { 0xe7e2a294 , 0x4000, "PROTON advromm" }, - { 0x9a50231f , 0x4000, "PROTON exmon" }, - { 0xc1505821 , 0x4000, "PROTON help" }, - { 0x557ce483 , 0x4000, "PROTON toolkit" }, - { 0x4345359f , 0x4000, "PROTON view" }, - { 0x9fb8d13f , 0x4000, "PROTON dfs144" }, - - { 0xc1adde84 , 0x80000, "ARCHIMEDES 310 bios 20000" }, - { 0x15d89664 , 0x80000, "ARCHIMEDES 310 bios 28000" }, - { 0xa81ceb7c , 0x80000, "ARCHIMEDES 310 bios 30000" }, - { 0x707b0c6c , 0x80000, "ARCHIMEDES 310 bios 38000" }, - -/* Atari 400/800 Computers *****************************************************/ - { 0x6a5d766e , 0x0800, "Atari 400/800 floating point d800 (CO12399B?)" }, - { 0x8e547f56 , 0x1000, "Atari 400/800 PAL A e000 (CO15199?)" }, - { 0xbe55b413 , 0x1000, "Atari 400/800 PAL A f000 (CO15299?)" }, - { 0x6ea08467 , 0x1000, "Atari 400/800 PAL B? (few differences to NTSC B) e000" }, - { 0x7509ffc4 , 0x1000, "Atari 400/800 PAL B? (few differences to NTSC B) f000" }, - { 0xd818f3e8 , 0x1000, "Atari 400/800 NTSC B e000 (CO12499B?)" }, - { 0xc1690a9b , 0x1000, "Atari 400/800 NTSC B f000 (CO14599B?)" }, - - { 0x72b3fed4 , 0x2800, "MERGED Atari 400/800 PAL A (CO12399B+CO15199+CO15299?)" }, - { 0xcb4db9af , 0x2000, "MERGED Atari 400/800 PAL B? (e000+f000)" }, - { 0x3e28a1fe , 0x2800, "MERGED Atari 400/800 PAL B? (d000+e000+f000)" }, - { 0x0e86d61d , 0x2800, "MERGED Atari 400/800 NTSC B (CO12399B+CO12499B+CO14599B?)" }, - -/* Atari XL/XE Computers *****************************************************/ - { 0x643bcc98 , 0x4000, "Atari 600XL rev. 01 (CO62024)" }, - { 0x1f9cd270 , 0x4000, "Atari XL/XE rev. 02 (CO61598B)" }, - { 0x29f133f7 , 0x4000, "Atari 800XE rev. 03 (C300717)" }, - { 0x0391386b , 0x2000, "Atari 1200XL rev. 10 part 1 (CO60616A)" }, - { 0xb502f1e7 , 0x2000, "Atari 1200XL rev. 10 part 2 (CO60617A)" }, - { 0x89d5661d , 0x1000, "Atari XL/XE BASIC rev. A part 1 (co12402)" }, - { 0x4b4e6762 , 0x1000, "Atari XL/XE BASIC rev. A part 2 (co14502)" }, - { 0xf0202fb3 , 0x2000, "Atari XL/XE BASIC rev. B (CO60302A)" }, - { 0x7d684184 , 0x2000, "Atari XL/XE BASIC rev. C (CO24947A)" }, - - { 0xc5c11546 , 0x4000, "MERGED Atari 1200XL rev. 10 (CO60616A+CO60617A)" }, - { 0x4bec4de2 , 0x2000, "MERGED Atari XL/XE BASIC rev. A (CO12402+CO14502)" }, - { 0x1eaf4002 , 0x4000, "PART Atari XEGS rev. 04 (C101687)" }, - -/* Atari 800/800XL OS replacements *********************************************/ - { 0xa1fb9bfa , 0x4000 , "Atari 800XL Qmeg OS ver. 2.3" }, - { 0xbe14e47e , 0x4000 , "Atari 800XL Qmeg OS ver. 3.0" }, - { 0x8cd48719 , 0x4000 , "Atari 800XL Qmeg OS ver. 3.2" }, - { 0x78f2c102 , 0x4000 , "Atari 800XL Qmeg OS ver. 3.8" }, - { 0x64ccfc53 , 0x4000 , "Atari 800XL Qmeg OS ver. 4.2" }, - { 0xbe2242da , 0x4000 , "Atari 800XL Qmeg OS ver. 4.3" }, - -/* Atari 8-bit computers external devices **************************************/ - { 0xf10064a3 , 0x1000 , "Atari 1060 CP/M Module boot ROM"}, - { 0xd1c68dda , 0x1000 , "Atari 1060 CP/M Module character set ROM"}, - -/* Atari ST/STF/SFM/STFM/Mega ST/Mega STE/Stacey *******************************/ - /* info on Atari ST TOS dumps taken from dat by TOSEC team */ - /* not verified, probably needs many corrections */ - { 0x16e3e979 , 0x30000 , "Atari 520/1040ST TOS v1.0 (De) (1985)" }, - { 0x2b7f2117 , 0x30000 , "Atari 520/1040ST TOS v1.0 (Fr) (1985)" }, - { 0x1a586c64 , 0x30000 , "Atari 520/1040ST TOS v1.0 (Uk) (1985)" }, - { 0xd331af30 , 0x30000 , "Atari 520/1040ST TOS v1.0 (Us) (1985)" }, - { 0x5fe16c66 , 0x30000 , "Atari 520/1040ST/STF/SFM/STFM, Mega ST 2/4 TOS v1.2 (later 1.02) (Ch) (1987)" }, - { 0x8688fce6 , 0x30000 , "Atari 520/1040ST/STF/SFM/STFM, Mega ST 2/4 TOS v1.2 (later 1.02) (Fr) (1987)" }, - { 0x673fd0c2 , 0x30000 , "Atari 520/1040ST/STF/SFM/STFM, Mega ST 2/4 TOS v1.2 (later 1.02) (Sw) (1987)" }, - { 0x3b5cd0c5 , 0x30000 , "Atari 520/1040ST/STF/SFM/STFM, Mega ST 2/4 TOS v1.2 (later 1.02) (Uk) (1987)" }, - { 0xd3c32283 , 0x30000 , "Atari 520/1040ST/STF/SFM/STFM, Mega ST 2/4 TOS v1.2 (later 1.02) (Us) (1987)" }, - { 0xe58f0bdf , 0x30000 , "Atari Stacey, 520/1040STFM, Mega ST 1/2/4 TOS v1.4 (later 1.04) (Ch) (1989)" }, - { 0xf4e8ecd2 , 0x30000 , "Atari Stacey, 520/1040STFM, Mega ST 1/2/4 TOS v1.4 (later 1.04) (Sp) (1989)" }, - { 0x80ecfdce , 0x30000 , "Atari Stacey, 520/1040STFM, Mega ST 1/2/4 TOS v1.4 (later 1.04) (Sw) (1989)" }, - { 0xa50d1d43 , 0x30000 , "Atari Stacey, 520/1040STFM, Mega ST 1/2/4 TOS v1.4 (later 1.04) (Uk) (1989)" }, - { 0x90f4fbff , 0x30000 , "Atari Stacey, 520/1040STFM, Mega ST 1/2/4 TOS v1.4 (later 1.04) (Us) (1989)" }, - { 0x7c67c5c9 , 0x40000 , "Atari 1040STE TOS v1.6 (De) (1989)" }, - { 0xb6e58a46 , 0x40000 , "Atari 1040STE TOS v1.6 (Fr) (1989)" }, - { 0x2cdeb5e5 , 0x40000 , "Atari 1040STE TOS v1.62 (De) (1990)" }, - { 0x90f124b1 , 0x40000 , "Atari 1040STE TOS v1.62 (Sw) (1990)" }, - { 0xd1c6f2fa , 0x40000 , "Atari 1040STE TOS v1.62 (Uk) (1990)" }, - { 0x1c1a4eba , 0x40000 , "Atari 1040STE TOS v1.62 (Uk) (1990) (alt)" }, - { 0x6372e5bd , 0x40000 , "Atari 1040STE TOS v1.62 (Us) (1990)" }, - { 0x27b83d2f , 0x40000 , "Atari Mega STE TOS v2.05 (Fr) (1990)" }, - { 0xb28bf5a1 , 0x40000 , "Atari Mega STE TOS v2.05 (It) (1990)" }, - { 0x6d49ccbe , 0x40000 , "Atari Mega STE TOS v2.05 (Sw) (1990)" }, - { 0xd8845f8d , 0x40000 , "Atari Mega STE TOS v2.05 (Us) (1990)" }, - { 0x8c4fe57d , 0x40000 , "Atari Mega STE TOS v2.06 (Ch) (1991)" }, - { 0x143cd2ab , 0x40000 , "Atari Mega STE TOS v2.06 (De) (1991)" }, - { 0xe3a99ca7 , 0x40000 , "Atari Mega STE TOS v2.06 (Fr) (1991)" }, - { 0xbe61906d , 0x40000 , "Atari Mega STE TOS v2.06 (Sw) (1991)" }, - { 0x08538e39 , 0x40000 , "Atari Mega STE TOS v2.06 (Uk) (1991)" }, - { 0x3f2f840f , 0x40000 , "Atari Mega STE TOS v2.06 (Us) (1991)" }, - { 0x3c3e811c , 0x30000 , "Atari ST Kaos TOS v1.4 (De) (1989)" }, - { 0x2efbfd7e , 0x30000 , "Atari ST Kaos TOS v1.4.3 (Ch) (1991)" }, - - { 0xe50e6bf9 , 0x2ff80 , "BAD DUMP Atari 520/1040ST TOS v1.0 (Ch) (1985)" }, - { 0xa2e25337 , 0x40000 , "BAD DUMP Atari 1040STE TOS v1.6 (Fr) (1989)" }, - { 0xde62800c , 0x30000 , "BAD DUMP Atari 1040STE TOS v1.6 (Uk) (1989)" }, - { 0xcf40329c , 0x40000 , "BAD DUMP Atari Mega STE TOS v2.06 (Uk) (1991)" }, - -/* Atari consoles **************************************************************/ - { 0x4248d3e3 , 0x0800, "Atari 5200 BIOS" }, - { 0x649913e5 , 0x1000, "Atari 7800 BIOS" }, - - { 0xe1ffecb6, 0x200, "Atari Lynx saved (fff9 not authentic)" }, - { 0x0d973c9d, 0x200, "Atari Lynx saved (fff9 not authentic) (alt)" }, - { 0x7a91840c, 0x200, "Atari Lynx dummy boot image" }, - - { 0xfb731aaa, 0x20000, "Atari Jaguar (boot)" }, - { 0x687068d5, 0x40000, "Atari Jaguar (cd)" }, - -/* amstrad *********************************************************************/ - { 0x0219bb74 , 0x4000, "CPC6128 os" }, - { 0xcdb86700 , 0x4000, "CPC6128 os french" }, - { 0xa9937f75 , 0x4000, "CPC6128 os spanish" }, - { 0x7f9ab3f7 , 0x4000, "KCCOMPACT os" }, - { 0xca6af63d , 0x4000, "CPC basic" }, - { 0x4ff8190c , 0x4000, "CPC6128 basic french" }, - { 0xb6e4acd2 , 0x4000, "CPC6128 basic spanish" }, - { 0x40852f25, 0x8000, "CPC464" }, - { 0x39185397, 0x8000, "CPC464 Danish (homebrew?)" }, - { 0x9ab5a036, 0x8000, "CPC664" }, - { 0x9e827fe1, 0x8000, "MERGED CPC6128 0x0219bb74+0xca6af63d" }, - { 0x1fe22ecd, 0x4000, "CPC Disk" }, - { 0x37f1bb31, 0x4000, "BAD DUMP CPC Disk (1st half equal 0x1fe22ecd, 2nd half 0)" }, - { 0xf36086de, 0x2000, "CPC Multiface" }, - - { 0xbec456b1, 0x4000, "CPC464+ os" }, - { 0xc0cb1145, 0x4000, "CPC464+ basic" }, - { 0xf6159e18, 0x4000, "BAD DUMP CPC464+ disk (2nd half ff)" }, - - { 0xdf31eb22, 480, "REPROGRAMMED PCW8256 older than 0x679b0287" }, - { 0x621d58a7, 589, "REPROGRAMMED PCW8256 older than 0x679b0287" }, - { 0xb3140dcb, 608, "REPROGRAMMED PCW8256 older than 0x679b0287" }, - { 0x679b0287, 608, "REPROGRAMMED PCW8256" }, - { 0xc642f498 , 0x80000, "PCW16 045" }, - - { 0x849884f9, 0x40000, "NC100" }, - { 0xa699eca3, 0x40000, "NC100a" }, - { 0xbb8180e7, 0x80000, "NC200" }, - -/* commodore pet series *******************************************************************/ - { 0xa055e33a, 0x800, "901447-01, 901439-01, maybe 6540-011 PET basic1 c000" }, - { 0x03cf16d0, 0x800, "901447-09, 901439-09, 6540-019 PET basic1 c000 newer revision" }, - { 0x69fd8a8f, 0x800, "901447-02, 901439-05, 6540-012 PET basic1 c800" }, - { 0xd349f2d4, 0x800, "901447-03, 901439-02, 6540-013 PET basic1 d000" }, - { 0x850544eb, 0x800, "901447-04, 901439-06, 6540-014 PET basic1 d800" }, - { 0x9e1c5cea, 0x800, "901447-05, 901439-03, 6540-015 PET e000" }, - { 0x661a814a, 0x800, "901447-06, 901439-04, 6540-016 PET f000" }, - { 0xc4f47ad1, 0x800, "901447-07, 904139-07, 6540-018 PET f800" }, - - { 0x63a7fe4a, 0x1000, "901465-01 PET basic2 c000" }, - { 0xae4cb035, 0x1000, "901465-02 PET basic2 d000" }, - { 0xe459ab32, 0x800, "901447-24, 6540-024 PET e000" }, - { 0x05db957e, 0x800, "901474-01 PET business keyboard e000" }, - { 0xf02238e2, 0x1000, "901465-03 PET f000" }, - - { 0x3a5f5721, 0x1000, "901465-19 PET basic4 b000" }, - { 0xae3deac0, 0x1000, "901465-23 PET basic4 b000 newer revision" }, - { 0x0fc17b9c, 0x1000, "901465-20 PET basic4 c000" }, - { 0x36d91855, 0x1000, "901465-21 PET basic4 d000" }, - { 0x5f85bdf8, 0x800, "901499-01 PET crtc 60hertz e000" }, - { 0x3370e359, 0x800, "901498-01 PET crtc 50hertz e000" }, - { 0x75ff4af7, 0x800, "901474-02 PET business keyboard e000" }, - { 0x5674dd5e, 0x800, "901474-03 PET 80columns business keyboard, 60 hertz e000" }, - { 0xc1ffca3a, 0x800, "901474-04-3681 PET 80columns business keyboard, 50 hertz e000 (1981, week36)" }, - { 0x845a44e6, 0x800, "901474-04? PET 80columns business keyboard, 50 hertz e000" }, - { 0xabb000e7, 0x800, "901474-04 PET 80columns business keyboard, 50 hertz e000" }, - { 0x1c1e597d, 0x800, "? PET 80columns business keyboard, 50 Hertz, german e000" }, - { 0x75901dd7, 0x800, "? PET 80columns business keyboard, 50 Hertz, swedish e000" }, - { 0xcc5298a1, 0x1000, "901465-22 PET f000" }, - - { 0x54f32f45, 0x800, "901447-08 PET 8x8 petscii character set" },/* 6540-010 = 901439-08 */ - { 0xd8408674, 0x800, "901447-10 PET 8x8 business character set" }, - { 0x3bb8cb87, 0x800, "? PET 8x8 business german character set" }, - { 0x48c77d29, 0x800, "901447-14 PET 8x8 business swedish character set" }, - { 0xa02d8122, 0x800, "? PET 8x8 business hungarian character set" }, // Editor rom missing - - { 0xd262bacd, 0x2000, "BAD DUMP! 324878-01 PET cost reduced set" }, - { 0x5e00476d, 0x2000, "BAD DUMP! 324878-02 PET cost reduced set" }, - - { 0xaff78300, 0x2000, "MERGED! PET 901447-09 + 901447-02 + 901447-03 + 901447-04" }, - { 0xf0186492, 0x1000, "MERGED! PET 901447-06 + 901447-07" }, - { 0xcf35e68b, 0x2000, "MERGED! PET 901465-01 + 901465-02" }, - { 0x2a940f0a, 0x3000, "MERGED! PET 901465-23 + 901465-20 + 901465-21" }, - - { 0x728a998b, 0x1000, "901898-01 SUPERPET m6809 a000" }, - { 0x6beb7c62, 0x1000, "901898-02 SUPERPET m6809 b000" }, - { 0x5db4983d, 0x1000, "901898-03 SUPERPET m6809 c000" }, - { 0xf55fc559, 0x1000, "901898-04 SUPERPET m6809 d000" }, - { 0xb2cee903, 0x800, "901897-01 SUPERPET m6809 e000" }, - { 0xf42df0cb, 0x1000, "901898-05 SUPERPET m6809 f000" }, - - { 0xee8229c4, 0x1000, "901640-01 SUPERPET 8x8chars 256 PETSCII, 256 ASCII" }, - { 0xda1cd630, 0x1000, "? SUPERPET 8x8chars 256 PETSCII Swedish, 256 ASCII\n9014147-14+256 chars ascii from above)" }, - -/* Commodore C16/C116/Plus4/1551 *************************************************************/ - { 0x74eaae87, 0x4000, "318006.01 PLUS4 Basic 8000" }, - { 0xdbdc3319, 0x4000, "318004.01 PLUS4 Kernel PAL R1 c000" }, - { 0x77bab934, 0x4000, "318004.03 PLUS4 Kernel Pal R3 c000" }, - { 0xbe54ed79, 0x4000, "318004.04 PLUS4 Kernel Pal R4 c000" }, - { 0x71c07bd4, 0x4000, "318004.05 PLUS4 Kernel Pal R5 c000" }, - { 0x775f60c5, 0x4000, "318004.05 PLUS4 Kernel Pal R5, hungarian character set, HACK? c000" }, - { 0x84fd4f7a, 0x4000, "? PLUS4 Kernel NTSC R1 c000" }, - { 0x799a633d, 0x4000, "318005.04 PLUS4 Kernel NTSC R4 c000" }, - { 0x70295038, 0x4000, "318005.05 PLUS4 Kernel NTSC R5 c000" }, - { 0x4fd1d8cb, 0x4000, "317053.01 PLUS4 3PLUS1 8000/bank2" }, - { 0x109de2fc, 0x4000, "317054.01 PLUS4 3PLUS1 c000/bank2" }, - { 0x5227c2ee, 0x4000, "? PLUS4 voice 8000/bank4" }, - { 0x6d16d024, 0x4000, "318008.01 C1551/PLUS4 Floppy c000" }, - { 0xaab61387, 0x4000, "BAD DUMP of 317054.01 (from running machine) PLUS4 3PLUS1 c000/bank2" }, - { 0x7d464449, 0x8000, "BAD DUMP of 317053.01 + 317054.01 (from running machine) PLUS4 3PLUS1 8000/bank2" }, - { 0xf284199b, 0x800, "UNUSEABLE PART PLUS4 character set d000" }, - { 0x5b6a2b88, 0x800, "UNUSEABLE PART PLUS4 hungarian character set d000" }, - -/* Commodore VIC20 **************************************************************************/ - { 0xdb4c43c1, 0x2000, "901486.01 VIC20 Basic c000" }, - { 0xe5e7c174, 0x2000, "901486.06 VIC20 Kernel NTSC e000" }, - { 0x4be07cb4, 0x2000, "901486.07 VIC20 Kernel PAL e000" }, - { 0x83e032a6, 0x1000, "901460.03 VIC20 character set 8000" }, - { 0xd808551d, 0x1000, "nec22101.207 VIC20 swedish character set 8000" }, - { 0xb2a60662, 0x2000, "nec22081.206 VIC20 swedish Kernel e000" }, - { 0xfcfd8a4b, 0x1000, "901460.02 VIC1001 character set 8000" }, - { 0x336900d7, 0x2000, "901486.02 VIC1001 NTSC-M e000" }, - { 0xd37b6335, 0x800, "325329-04 VIC20 IEEE Cartridge b000" }, - -/* Commodore 65 Prototype ******************************************************************/ - { 0x0888b50f, 0x20000, "C65 911001" }, - { 0x3ee40b06, 0x20000, "C65 910828" }, - { 0x12527742, 0x20000, "C65 910626" }, - { 0xe8235dd4, 0x20000, "C65 910523" }, - { 0xb025805c, 0x20000, "C65 910429 German" }, - { 0xc5d8d32e, 0x20000, "C65 910111" }, - { 0x0670b3b6, 0x2000, "UNUSEABLE PART C65 c64 basic" }, - { 0xc85f9781, 0x2000, "UNUSEABLE PART C65 c64 kernel" }, - -/* commodore b series *********************************************************************/ - { 0x9d0366f9, 0x2000, "901243-02b CBMB basic 128kb f8000" }, - { 0x837978b5, 0x2000, "901242-02b CBMB basic 128kb fa000" }, - { 0xb0dcb56d, 0x2000, "901243-04a CBMB basic 128kb f8000" }, - { 0xde04ea4f, 0x2000, "901242-04a CBMB basic 128kb fa000" }, - { 0x5a680d2a, 0x2000, "?901242-04 CBMB some additions to 901242-04a fa000" }, - { 0x8eed0d7e, 0x4000, "? CBMB basic 256kb f8000" }, - { 0x5c1f3347, 0x2000, "901241-03 CBMB basic 256kb f8000" }, - { 0x72aa44e1, 0x2000, "901240-03 CBMB basic 256kb fa000" }, - { 0x4276dbba, 0x2000, "901244-03b CBMB kernel monitor instead of tape fe000" }, - { 0x87bc142b, 0x2000, "901244-03 CBMB Kernel swedish/finish fe000" }, - { 0x19bf247e, 0x2000, "? CBMB kernel fe000" }, - { 0x09a5667e, 0x2000, "901244-04a CBMB kernel fe000" }, - { 0x0ea8ca4d, 0x2000, "? CBMB hungarian kernel fe000" }, - { 0x1acf5098, 0x1000, "901237-01 CBMB 8x8 in 8x16 2x128 character set (needs inversion hardware)" }, - { 0x1fb5e596, 0x2000, "? CBMB 8x8 in 8x16 2x256 hungarian character" }, - { 0x3a350bc3, 0x1000, "901232-01 CBMB 9x14 in 8x16 2x128 character set (needs inversion hardware)" }, - { 0x09518b19, 0x1000, "901233-03 CBMB swedish/finnish 9x14 in 8x16 2x128 character set (needs inversion hardware)" }, - { 0xc62ab16f, 0x2000, "901236-02 CBM500 basic 128kb f8000" }, - { 0x20b7df33, 0x2000, "901235-02 CBM500 basic 128kb fa000" }, - { 0xf46bbd2b, 0x2000, "901234-02 CBM500 kernal monitor instead of type fe000" }, - { 0xec4272ee, 0x1000, "901225-01 CBM500 8x8 character set" }, - { 0x9a468e5d, 0x4000, "MERGED! CBM500 901236-02 + 901235-02" }, - { 0xdf83bbb9, 0x4000, "MERGED! CBMB 901243-02b + 901242-02b" }, - { 0xa8ff9372, 0x4000, "MERGED! CBMB 901243-04a + 901242-04a" }, - { 0x5db15870, 0x4000, "MERGED! CBMB 901241-03 + 901240-03" }, - -/* commodore 64 ********************************************************************/ - { 0xf833d117 , 0x2000, "901226.01 C64 basic a000" }, - { 0x2b1b7381 , 0x2000, "SCRAP? C64 kernel e000" }, // modified for alec 64 - { 0xb8f49365 , 0x2000, "SCRAP C64 kernel speeddos, unique copyright" }, - { 0xbeed6d49 , 0x2000, "SCRAP? C64 kernel" }, - { 0xcfb58230 , 0x2000, "SCRAP? C64 kernel" }, - { 0x6ec94629 , 0x2000, "SCRAP? C64 kernel (basic x 2)" }, - { 0xdce782fa , 0x2000, "901227.01 C64 kernel r1" }, - { 0xa5c687b3 , 0x2000, "901227.02 C64 kernel r2" }, - { 0xdbe3e7c7 , 0x2000, "901227.03 C64 kernel r3" }, - { 0xf1098d37 , 0x2000, "BAD DUMP, UNUSEABLE PART! C64 901227.03" }, - { 0x8f294c51 , 0x2000, "325017-02 C64 swedish kernel r2?" }, - { 0xf10c2c25 , 0x2000, "901227-03? C64 swedish kernel r3?" }, - { 0x789c8cc5 , 0x2000, "901246.01 C64 pet64 kernel" }, - { 0x2c5965d4 , 0x4000, "251104.04 C64 SX64 kernel" }, - { 0x7858d3d7 , 0x4000, "251104.04? C64 SX64 swedish kernel" }, - { 0x58065128 , 0x4000, "??? C64 DX64 kernel" }, - { 0xf80eb87b , 0x2000, "??? C64 kernel few differences to 901227.02" }, - { 0x8e5c500d , 0x2000, "??? C64 kernel few differences to 901227.03" }, - { 0xc13310c2 , 0x2000, "??? C64 kernel few differences 901227.03" }, - { 0x97d9a4df , 0x2000, "??? C64 kernel 64er system v1" }, - { 0x5096b3bd , 0x2000, "??? C64 kernel 64er system v3" }, - { 0x4e54d020 , 0x2000, "??? C64 kernel Exos v3" }, - { 0x26f3339e , 0x2000, "??? C64 kernel Exos v3 2 bytes different to 0x4e54d020" }, - { 0x2f79984c , 0x2000, "??? C64 kernel Jiffydos v6.01" }, - { 0xc9bb21bc , 0x2000, "??? C64 kernel Dolphin mager" }, - { 0xffaeb9bc , 0x2000, "??? C64 kernel Dolphin dos20" }, - { 0x8438e77b , 0x2000, "??? C64 kernel speeddos plus" }, - { 0x10aee0ae , 0x2000, "??? C64 kernel speeddos plus + 2.0" }, - { 0xe801dadc , 0x2000, "??? C64 kernel 80 column" }, - { 0xe6c763a2 , 0x2000, "??? C64 kernel cockroach turbo-rom v1" }, - { 0x41dad9fe , 0x2000, "??? C64 kernel mikrotronic system professional dos" }, - { 0x0010ec31 , 0x4000, "251913-01 C64 cost reduced (901225-01 + 901227-03)" }, - { 0xb0a9c2da , 0x4000, "390852.01 C64GS a000,e000" }, - { 0xec4272ee , 0x1000, "901225.01 C64 8x8 character set d000" }, - { 0x2bc73556 , 0x1000, "BAD DUMP, UNUSEABLE PART! C64 901225.01" }, - { 0xbee9b3fd , 0x1000, "325018-02 C64 swedish character set d000" }, - -/* commodore 128 *************************************************************************/ - { 0x2ee6e2fa , 0x4000, "318018-02 C128 basic r0 4000" }, - { 0xd551fce0 , 0x4000, "318019-02 C128 basic r0 8000" }, - { 0xe857df90 , 0x8000, "318022-01 C128 basic r0 4000 (318018-02 + 318019-02)" }, - { 0xbc07ed87 , 0x8000, "252343-03 C128 basic r? 4000 (maybe 318018-03 + 318019-03)" }, - { 0x9f9c355b , 0x4000, "318018-04 C128 basic r1 1986 4000" }, - { 0x6e2c91a7 , 0x4000, "318019-04 C128 basic r1 1986 8000" }, - { 0xaf1ae1e8 , 0x8000, "318022-02 C128 basic r1 1986 4000 (318018-04 + 318019-04)" }, - { 0x1e94bb02 , 0x4000, "318020-03 C128 Kernel r0 c000" }, - { 0xba456b8e , 0x4000, "318020-05 C128 Kernel r1 1986 c000" }, - { 0xa51e2168 , 0x4000, "315078-01 C128 Kernel german c000" }, - { 0xb275bb2e , 0x4000, "315078-02 C128 Kernel german c000" }, - { 0x2df282b8 , 0x4000, "? C128 Kernel french (0x3e086a24 z80bios 0xca5e1179)" }, - { 0xd3ecea84 , 0x4000, "? C128 Kernel finish1 (0x71002a97 z80bios 0x167b8364)" }, - { 0x9526fac4 , 0x4000, "? C128 Kernel finish2 (0xb7ff5efe z80bios 0x5ce42fc8)" }, - { 0x74d6b084 , 0x4000, "? C128 Kernel italian (0x8df58148 z80bios 0x7b0d2140)" }, - { 0x66673e8b , 0x4000, "318079-01? C128 Kernal italian newer (0x155e9ed6 z80bios 0x922c6c49)" }, - { 0xa5406848 , 0x4000, "? C128 Kernel norwegian (0x84c55911 z80bios 0x3ba48012)" }, - { 0xeedc120a , 0x8000, "318023-02 C128 c64+kernel (252913-01+318020-05=" }, - { 0xcc6bdb69 , 0x8000, "252343-04 C128 c64+kernel (252913-01+0x98f2a2ed maybe 318020-04)" }, - { 0xeb6e2c8f , 0x8000, "318077-01 C128 c64+kernel german(251913-01+0xbff7550b)" }, - { 0xcb4e1719 , 0x8000, "318034-01 Ker.Sw/Fi C128 c64+kernel swedish (901226.01+ 0xf10c2c25 +0x1cf7f729)" }, - { 0x0a5928b0 , 0x9000, "UNUSEABLE PART! C128 318022-01+kernal ? c000" }, - { 0xd65ebc56 , 0x2000, "UNUSEABLE PART! C128 Kernel ? e000" }, - { 0x3e086a24 , 0x1000, "UNUSEABLE PART! C128 Kernel french c000" }, - { 0xca5e1179 , 0x2000, "UNUSEABLE PART! C128 Kernel french e000" }, - { 0x71002a97 , 0x1000, "UNUSEABLE PART! C128 Kernel finish1 c000" }, - { 0x167b8364 , 0x2000, "UNUSEABLE PART! C128 Kernel finish1 e000" }, - { 0xb7ff5efe , 0x1000, "UNUSEABLE PART! C128 Kernel finish2 c000" }, - { 0x5ce42fc8 , 0x2000, "UNUSEABLE PART! C128 Kernel finish2 e000" }, - { 0x8df58148 , 0x1000, "UNUSEABLE PART! C128 Kernel italian c000" }, - { 0x7b0d2140 , 0x2000, "UNUSEABLE PART! C128 Kernel italian e000" }, - { 0x155e9ed6 , 0x1000, "UNUSEABLE PART! C128 Kernal italian c000 newer" }, - { 0x922c6c49 , 0x2000, "UNUSEABLE PART! C128 Kernal italian e000 newer" }, - { 0x84c55911 , 0x1000, "UNUSEABLE PART! C128 Kernel norwegian c000" }, - { 0x3ba48012 , 0x2000, "UNUSEABLE PART! C128 Kernel norwegian e000" }, - { 0xc38d83c6 , 0x1000, "UNUSEABLE PART! C128 Z80 Bios d000" }, - { 0xae33c5a3 , 0x1000, "UNUSEABLE PART! C128 character set (2nd half 390059-01)" }, - { 0x6aaaafe6 , 0x2000, "390059-01 C128 8x8 character set c64, c128" }, - { 0xfe5a2db1 , 0x2000, "315079-01 C128 8x8 character set c64, c128 german" }, - { 0x7a70d9b8 , 0x2000, "325181-01 C128 8x8 character set c64, c128 swedish" }, - { 0xbad36b88 , 0x2000, "325167-01 I/F/B C128 8x8 characters sets" }, //italian and french verified to be the same - -/* commodore ieee bus devices ******************************************************/ - { 0x0ab338dc, 0x400, "901466-04 CBM2040 dos 2 6530" }, - { 0x25b5eed5, 0x1000, "901468-06 CBM2040 dos 1 e000" }, - { 0x9b09ae83, 0x1000, "901468-07 CBM2040 dos 1 f000" }, - { 0xb7157458, 0x1000, "901468-11 CBM2040 dos 2 d000" }, - { 0x02c44ff9, 0x1000, "901468-12 CBM2040 dos 2 e000" }, - { 0xcbd785b3, 0x1000, "901468-13 CBM2040 dos 2 f000" }, - { 0xbc4d4872, 0x1000, "901468-14 CBM2040 dos 2r d000" }, - { 0xb6970533, 0x1000, "901468-15 CBM2040 dos 2r e000" }, - { 0x1f5eefb7, 0x1000, "901468-16 CBM2040 dos 2r f000" }, - { 0xd04c1fbb , 0x2000, "MERGED! 901468-06+901468-07" }, - { 0xf4967a7f , 0x3000, "MERGED! 901468-11+901468-12+901468-13" }, - { 0x40e0ebaa , 0x3000, "MERGED! 901468-14+901468-15+901468-16" }, - - { 0xee4b893b, 0x2000, "901484-03 CBM2031 C000" }, - { 0x6a629054, 0x2000, "901484-05 CBM2031 E000" }, - { 0x21b80fdf , 0x4000, "MERGED! 901484-03+901484-05" }, - - { 0xf0aa31bd, 0x400, "251257-02A CBM1001 FDC" }, - { 0x0073b8b2, 0x2000, "901887-01 CBM8050 DOS 2.7 c000" }, - { 0xde9b6132, 0x2000, "901888-01 CBM8050 DOS 2.7 e000" }, - { 0xa23337eb, 0x800, "901467-01 CBM8050 ?" }, - { 0x09a609b9, 0x2000, "901482-03 CBM8050 dos 2.5 c000" }, - { 0x1bcf9df9, 0x2000, "901482-04 CBM8050 dos 2.5 e000" }, - { 0x3cbd2756, 0x2000, "901482-06 CBM8050 dos 2.5r c000" }, - { 0xc7532d90, 0x2000, "901482-07 CBM8050 dos 2.5r e000" }, - { 0x9e83fa70, 0x400, "901483-03 CBM8050 dos2.5 micropolis" }, - { 0x2915327a, 0x400, "901869-01 CBM8050 dos2.7 mpi" }, - { 0xbab998c9, 0x400, "901885-04 CBM8050 dos2.7 micropolis" }, - { 0x87e6a94e , 0x4000, "MERGED! 901887-01+901888-01" }, - - { 0xcb07b2db, 0x800, "BADDUMP! 300541-001 CBM8280" }, - { 0x3c6eee1e, 0x2000, "300542-001 CBM8280 c000" }, - { 0xf58e665e, 0x2000, "300543-001 CBM8280 e000" }, - - { 0x99e096f7, 0x800, "300515-001 CBM9090 4c" }, - { 0x566df630, 0x2000, "BADDUMP! 300517-001? CBM9090 7d" }, - { 0x49adf4fb, 0x800, "300515-002 CBM9060 4c" }, - { 0x2d758a14, 0x2000, "300516-002 CBM9060 7c" }, - { 0xf0382bc3, 0x2000, "300517-002 CBM9060 7d" }, - - { 0xc6bb0977 , 0x2000, "? CBM4023 printer 4023 /P 360-02 (1526 hardware?)" }, - { 0xb6d8519c , 0x1000, "901472-06 CBM3022 printer" }, - { 0xe5c4a58c , 0x2000, "325320-02 CBM8023P printer" }, - { 0x9d662c74 , 0x2000, "? CBM8028 printer german cpu" }, - { 0x209e70a1 , 0x800, "? CBM8028 printer german car" }, - { 0x05d30d5f , 0x800, "? CBM8028 printer german dsy" }, - -/* commodore serial bus devices ************************************************/ - { 0x29ae9752 , 0x2000, "325302-01 CBM1540 c000" }, - { 0x10b39158 , 0x2000, "325303-01 CBM1540 e000" }, - { 0x9a48d3f0 , 0x2000, "901229-01 CBM1541 e000" }, - { 0xb29bab75 , 0x2000, "901229-02 CBM1541 e000" }, - { 0x9126e74a , 0x2000, "901229-03 CBM1541 e000" }, - { 0x361c9f37 , 0x2000, "901229-05 CBM1541 e000" }, - { 0x899fa3c5 , 0x4000, "251968-03 CBM1541II c000" }, - { 0x1b3ca08d , 0x4000, "251968-01 CBM1541C c000" }, - { 0x2d862d20 , 0x4000, "251968-02 CBM1541C c000" }, - { 0x5b84bcef , 0x2000, "? CBM1541 c000 (with 0x2d8c1fde gives CBM1541II rom)" }, - { 0x2d8c1fde , 0x2000, "? CBM1541 e000 (with 0x5b84bcef gives CBM1541II rom" }, - { 0x57224cde , 0x4000, "MERGED! (0x29ae9752 + 0x361c9f37)" }, - { 0xd3a5789c , 0x4000, "MERGED! (0x29ae9752 + 0xb29bab75)" }, - { 0xdd409902 , 0x4000, "? CBM1541 jiffydos upgrade (together with c64 v6.01?)" }, - { 0x71708062 , 0x4000, "? CBM1541 64er upgrade (together with 64er system v3?)" }, - { 0xf9db1eac , 0x4000, "? CBM1541 Speeddos upgrade (together with speeddos plus +?)" }, - { 0xbd8e42b2 , 0x6000, "? Dolphin (CBM1541 compatible) a000" }, - { 0x5a0c7937 , 0x8000, "315090.01 CBM1570 bios 8000" }, - { 0x3889b8b8 , 0x8000, "310654.03 CBM1571 bios 8000" }, - { 0x5755bae3 , 0x8000, "310654-05 CBM1571 8000" }, - { 0xf24efcc4 , 0x8000, "318047-01 CBM1571 8000" }, - { 0x113af078 , 0x8000, "318045-01 CBM1581 bios 8000" }, - { 0xa9011b84 , 0x8000, "318045-02 CBM1581 bios 8000" }, - { 0xecc223cd , 0x8000, "? CBM1581 beta 8000" }, - { 0xe08801d7 , 0x8000, "? CBM1581 modified 8000" }, - - { 0x3ef63c59 , 0x2000, "? CBM1526 printer rev05?" }, - { 0x21051f69 , 0x2000, "? CBM1526 printer rev07b scandinavian?" }, - { 0x38f85b4a , 0x2000, "? CBM1526 printer rev07c?" }, - { 0xf8a9f45c , 0x10000, "? CBM1230 printer pdl2 german" }, - - { 0xecc43f0f , 0x1000, "Wiesemann Interface (CBM Serial bus to Centronics Printer)" }, - -/* Commodore AMIGA *************************************************************/ - /* info on AMIGA Kickstart dumps taken from dats by TOSEC team */ - /* not verified, probably needs many corrections */ - { 0x428a9a4b , 0x40000 , "Amiga Kickstart 0.7 (27.3) (NTSC) (A1000) (Commodore) (1985)" }, - { 0x299790ff , 0x40000 , "Amiga Kickstart 1.0 (NTSC) (A1000) (Commodore) (1985)" }, - { 0xd060572a , 0x40000 , "Amiga Kickstart 1.1 (31.34) (NTSC) (A1000) (Commodore) (1985)" }, - { 0xec86dae2 , 0x40000 , "Amiga Kickstart 1.1 (31.34) (PAL) (A1000) (Commodore) (1986)" }, - { 0x9ed783d0 , 0x40000 , "Amiga Kickstart 1.2 (33.166) (A1000) (Commodore) (1986)" }, - { 0xa6ce1636 , 0x40000 , "Amiga Kickstart 1.2 (33.180) (A500-A2000) (Commodore) (1986)" }, - { 0xc4f0f55f , 0x40000 , "Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore) (1987)" }, - { 0xa3ba6116 , 0x40000 , "Amiga Kickstart 1.4 (36.015) (A500-A2000) Alpha Release 15 (Commodore) (1989)" }, - { 0x39779507 , 0x80000 , "Amiga Kickstart 1.4 (36.02.20) (A3000) Alpha Release 18 (Commodore) (1989)" }, - { 0xb333d3c6 , 0x80000 , "Amiga Kickstart 2.0 (36.143) (A3000) (Commodore) (1990)" }, - { 0x234a7233 , 0x80000 , "Amiga Kickstart 2.0 (37.175) (A3000) (Commodore) (1991)" }, - { 0x8da9bd72 , 0x80000 , "Amiga Kickstart 2.0 (37.175.20) Development (Commodore) (1991)" }, - { 0xca2685fd , 0x80000 , "Amiga Kickstart 2.0 (37.210) (A2500) (Commodore) (1991)" }, - { 0x4c0c1603 , 0x80000 , "Amiga Kickstart 2.0 (37.210) (A3000) (Commodore) (1991)" }, - { 0x83028fb5 , 0x80000 , "Amiga Kickstart 2.0 (37.299) (A600) (Commodore) (1991)" }, - { 0x64466c2a , 0x80000 , "Amiga Kickstart 2.0 (37.300) (A600) (Commodore) (1991)" }, - { 0x43b0df7b , 0x80000 , "Amiga Kickstart 2.0 (37.350) (A600) (Commodore) (1992)" }, - { 0xc3bdb240 , 0x80000 , "Amiga Kickstart 2.04 (37.175) (A500+) (Commodore) (1991)" }, - { 0x6c9b07d2 , 0x80000 , "Amiga Kickstart 3.0 (39.106) (A1200) (Commodore) (1992)" }, - { 0x9e6ac152 , 0x80000 , "Amiga Kickstart 3.0 (39.106) (A4000) (Commodore) (1992)" }, - { 0xbcec8e55 , 0x80000 , "Amiga Kickstart 3.1 (40.055) (A3000) (Commodore) (1993)" }, - { 0x1e62d4a5 , 0x80000 , "Amiga Kickstart 3.1 (40.060) (CD32) (Commodore) (1993)" }, - { 0xfc24ae0d , 0x80000 , "Amiga Kickstart 3.1 (40.063) (A600) (Commodore) (1993)" }, - { 0xb506177b , 0x80000 , "Amiga Kickstart 3.1 (40.063) (A600) (Commodore) (1993) (alt)" }, - { 0x1483a091 , 0x80000 , "Amiga Kickstart 3.1 (40.068) (A1200) (Commodore) (1993)" }, - { 0x4d1575a6 , 0x80000 , "Amiga Kickstart 3.1 (40.068) (A1200) (Commodore) (1993) (alt)" }, - { 0xd6bae334 , 0x80000 , "Amiga Kickstart 3.1 (40.068) (A4000) (Commodore) (1993)" }, - { 0x88136ca9 , 0x80000 , "Amiga Kickstart 3.1 (40.068) (A600) (Commodore) (1993)" }, - { 0x1d9aa278 , 0x80000 , "Amiga Kickstart 3.1 (40.069) (A1200) (Commodore) (1993)" }, - { 0x917100a0 , 0x80000 , "Amiga Kickstart 3.1 (40.070) (A4000) (Commodore) (1993) (alt)" }, - { 0x3f0056d3 , 0x80000 , "Amiga Kickstart 3.1 (40.070) (A4000T) (Commodore) (1993)" }, - { 0xe75a53f4 , 0x80000 , "Amiga Kickstart 3.5 (40.071) (OS3.5) (Commodore) (1996)" }, - - { 0xda979111 , 0x40000 , "MODIFIED Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore) (1987)" }, - { 0xe0f37258 , 0x40000 , "MODIFIED Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore-Cloanto) (1987)" }, - { 0x74680d37 , 0x40000 , "MODIFIED Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Guardian 1.2) (Commodore-Transactor) (1988)" }, - { 0x43b6dd22 , 0x80000 , "MODIFIED Amiga Kickstart 3.1 (40.068) (A4000) (Commodore-Cloanto) (1993)" }, - { 0xbabd04c5 , 0x80000 , "MODIFIED Amiga Kickstart 3.1 (40.068) (A4000) (ShapeShifter) (Commodore) (1993)" }, - - { 0xb95e1d73 , 0x40000 , "BAD DUMP Amiga Kickstart 1.2 (33.166) (A1000) (Commodore) (1986)" }, - { 0x42baa124 , 0x40000 , "BAD DUMP Amiga Kickstart 1.3 (34.1001) (CDTV) (Commodore) (1991)" }, - { 0x09a9fab2 , 0x40000 , "BAD DUMP Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore) (1987) (early build)" }, - { 0x63f473ab , 0x80000 , "BAD DUMP Amiga Kickstart 3.1 (40.070) (A4000) (Commodore) (1993) (alt)" }, - - { 0x1cb4eb2f , 0x6F980 , "BAD/OVER DUMP Amiga Kickstart 1.2 (33.180) (A500-A2000) (Commodore) (1986)" }, - - { 0xde142fa9 , 0x80000 , "OVER DUMP Amiga Kickstart 1.1 (31.34) (NTSC) (A1000) (Commodore) (1985)" }, - { 0xdcc0b32f , 0x80000 , "OVER DUMP Amiga Kickstart 1.1 (31.34) (PAL) (A1000) (Commodore-Cloanto) (1986)" }, - { 0xb5f86782 , 0x80000 , "OVER DUMP Amiga Kickstart 1.2 (33.180) (A500-A2000) (Commodore) (1986)" }, - { 0xf6290043 , 0x80000 , "OVER DUMP Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore) (1987)" }, - { 0x3cac66c7 , 0x80a00 , "OVER DUMP Amiga Kickstart 3.1 (40.055) (A3000) (Commodore) (1993)" }, - - { 0xad01f2fe , 0x80000 , "OVER DUMP, MODIFIED Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore) (1987) { 0xh]" }, - { 0xfbb4799d , 0x80000 , "OVER DUMP, MODIFIED Amiga Kickstart 1.3 (34.5) (A500-A2500-A3000-CDTV) (Commodore-Cloanto) (1987)" }, - -/* ibm pc and compatibles ******************************************************/ - { 0x80d3cf5d , 0x2000, "IBM PC basic c1.10 f6000" }, - { 0x673a4acc , 0x2000, "IBM PC basic c1.10 f8000" }, - { 0xaac3fc37 , 0x2000, "IBM PC basic c1.10 fa000" }, - { 0x3062b3fc , 0x2000, "IBM PC basic c1.10 fc000" }, - { 0xebacb791 , 0x8000, "MERGED! (0x80d3cf5d + 0x673a4acc + 0xaac3fc37 + 0x5c3f0256)" }, - { 0x5c3f0256 , 0x2000, "IBM PC bios fe000 5000-026 08/16/82" }, - { 0xe88792b3 , 0x2000, "IBM PC bios fe000 1501-476 10/27/82" }, - { 0x031aafad , 0x2000, "PC bios fe000" }, - { 0xd435a405 , 0x2000, "Bondwell PC fe000" }, - { 0x1775a11d , 0x8000, "50145 Europc bios f8000 V2.07" }, - { 0x1305dcf5 , 0x2000, "50146 Europc character sets" }, - { 0xecca89c8 , 0x8000, "50145? Europc II bios V3.01" }, - { 0x0c19c1a8 , 0x8000, "INCOMPLETE IBM PC Junior basic c1.2 f6000 (f0000-f5fff missing)" }, - { 0x98463f95 , 0x2000, "INCOMPLETE IBM PC Junior bios fe000 (f0000-f5fff missing)" }, - { 0xc3bcb418 , 0x8002, "OVERDUMP IBM PC Junior basic cartridge (additional 2 bytes)" }, - { 0x850276fc , 0x4000, "Tandy 1000/a/hd 1.01.00" }, - { 0xb6760881 , 0x10000, "OVERDUMP Tandy 1000 1.01.00" }, - { 0x7cde748a , 0x4000, "Tandy 1000ex/sx 1.02.00" }, - { 0x0e016ecf , 0x10000, "OVERDUMP Tandy 1000 1.02.00 (last 16kbyte)" }, - { 0x1ae69276 , 0x10000, "OVERDUMP Tandy 1000 1.02.00 (last 16kbyte)(different fillbyte)" }, - { 0x9b34765c , 0x8000, "Tandy 1000tx 1.03.00" }, // most likely 2 16kbyte chips - { 0xf607533b , 0x10000, "OVERDUMP Tandy 1000 1.03.00 (last 32kbyte)" }, - { 0x6f3acd80 , 0x20000, "Tandy 1000 HX bios (2.00.00)" }, - // tandy 1000rl 2.00.01 - { 0xe5e534e6 , 0x1000, "RECONSTRUCTED Tandy 1000 HX characterset" }, - { 0x61dbf242 , 0x10000, "UNUSEABLE PART Tandy 1000 HX bios (1st half of 0x6f3acd80)" }, - { 0xd37a1d5f , 0x10000, "UNUSEABLE PART Tandy 1000 HX bios (2nd half of 0x6f3acd80)" }, - { 0x83727c42 , 0x8000, "IBM XT bios even f0000" }, - { 0x2a629953 , 0x8000, "IBM XT bios odd f0000" }, - { 0x71b84616 , 0x2000, "Amstrad PC20 bios even fc000 (v2)" }, - { 0x41302eb8 , 0x2000, "Amstrad PC20 bios odd fc000 (v2)" }, - { 0x668fcc94 , 0x2000, "40044 Amstrad PC1512 bios even fc000 (v1)" }, - { 0xf72f1582 , 0x2000, "40043 Amstrad PC1512 bios odd fc000 (v1)" }, - { 0xd2d1f1ae, 0x8000, "40100 Amstrad PC1640 ega bios c0000" }, - { 0xe40a1513 , 0x2000, "40043 Amstrad PC1640 bios odd fc000 (v3)" }, - { 0xf1c074f3 , 0x2000, "40044 Amstrad PC1640 bios even fc000 (v3)" }, - { 0x664f5360 , 0x80000, "Tandy 1000 RLX (2.00.00)" }, - { 0x11cb1983, 0x10000, "UNUSEABLE PART TANDY 1000 RLX (last 64kbyte)" }, - { 0xf518ab17 , 0x10000, "INCOMPLETE Tandy1td? (DAC) (2.00.00)" }, - { 0xe288f12c , 0x10000, "INCOMPLETE Tandy 1000TL/2? (2.00.00)" }, - { 0x4995be7a , 0x8000, "IBM AT bios even f0000" }, - { 0xc32713e4 , 0x8000, "IBM AT bios odd f0000" }, - { 0x679296a7 , 0x8000, "AT ami bios even f0000" }, - { 0x65ae1f97 , 0x8000, "AT ami bios odd f0000" }, - { 0x4c36e61d , 0x8000, "NEAT ami bios even f0000" }, - { 0x4e90f294 , 0x8000, "NEAT ami bios odd f0000" }, - { 0x1a81237c , 0x8000, "INCOMPLETE Tandy 2500XL" }, - { 0x819377af , 0x20000, "INCOMPLETE Tandy 2500XL" }, - { 0x3df9732a , 0x10000, "AT386 bios f0000" }, - { 0x31214616 , 0x10000, "AT486 bios f0000" }, - { 0x8e9e2bd4 , 0x2000, "PC harddisk controller bios c8000" }, - { 0xa96317da , 0x2000, "PC harddisk controller bios c8000" }, - { 0x318c5f43 , 0x8000, "PC oak vga bios c0000" }, - { 0xa903540d , 0x8000, "PC et4000 vga bios oem c0000" }, - { 0xf01e4be0 , 0x8000, "PC et4000 vga vios c0000" }, - { 0xaca81498 , 0x2000, "PC aga character sets" }, - { 0x7e8c9d76 , 0x1000, "AUTHENTIC? PC hercules character set" }, - { 0xac1686f3 , 0x1000, "NOT AUTHENTIC PC hercules character set" }, - { 0xa362ffe6 , 0x800, "AUTHENTIC? PC cga character set" }, - { 0x42009069 , 0x1000, "AUTHENTIC? PC cga character set" }, - -/* applied computer techniques (act)/ apricot */ - { 0x30b3f803 , 0x1000, "Sirius1 rom fe000" }, - { 0x2bf3c0e4 , 0x1000, "Sirius1 rom ff000" }, - { 0x0da581b7 , 0x2000, "Sirius1 rom newer" }, - { 0x9bf49f7d , 0x400, "Sirius1 disk controller" }, - { 0xadc601bd , 0x800, "Sirius1 gcr en-/decoder? rom" }, - - { 0xbfd46ada, 0x4000, "Apricot F bios 3.1.1 even" }, - { 0x67ad5b3a, 0x4000, "Apricot F Bios 3.1.1 odd" }, - { 0xfecfad9b, 0x8000, "COMBINED Apricot F bios 3.1.1" }, - -/* Sinclair ZX-80 Computer and Clones ******************************************/ - { 0x4c7fc597 , 0x1000 , "Sinclair ZX-80" }, - { 0x6c123536 , 0x1000 , "ZX Aszmic" }, - - -/* Sinclair ZX-81 Computer and Clones ******************************************/ - { 0x4b1dd6eb , 0x2000 , "Sinclair ZX-81" }, - { 0x71616238 , 0x2000 , "Sinclair ZX-81 Tree-Forth by Tree Systems" }, - { 0x257d5a32 , 0x2000 , "Sinclair ZX-81 Forth by David Husband" }, - { 0x4b1dd6eb , 0x2000 , "Timex TS-1000" }, - { 0xa350f2b1 , 0x2000 , "Your Computer PC-8300" }, - { 0x6bd0408c , 0x0100 , "Your Computer PC-8300 (font)" }, - { 0x8a49b2c3 , 0x2000 , "Creon Enterprises Power 3000" }, - { 0x1c42fe46 , 0x0100 , "Creon Enterprises Power 3000 (font)" }, - - -/* Sinclair ZX Spectrum Computers and Clones ***********************************/ - -/* original roms */ - { 0xddee531f , 0x4000 , "ZX Spectrum 48K" }, - { 0xf051746e , 0x4000 , "ZX Spectrum 48K (spanish)" }, - - { 0xe76799d2 , 0x4000 , "ZX Spectrum 128K (0000h)" }, - { 0xb96a36be , 0x4000 , "ZX Spectrum 128K (4000h)" }, - { 0x453d86b2 , 0x4000 , "ZX Spectrum 128K (spanish) (0000h)" }, - { 0x6010e796 , 0x4000 , "ZX Spectrum 128K (spanish) (4000h)" }, - { 0x5d2e8c66 , 0x4000 , "ZX Spectrum 128K Plus 2 (0000h)" }, - { 0x98b1320b , 0x4000 , "ZX Spectrum 128K Plus 2 (4000h)" }, - { 0xc684c535 , 0x4000 , "ZX Spectrum 128K Plus 2 (0000h) (french)" }, - { 0xf5e509c5 , 0x4000 , "ZX Spectrum 128K Plus 2 (4000h) (french)" }, - { 0xe807d06e , 0x4000 , "ZX Spectrum 128K Plus 2 (0000h) (spanish)" }, - { 0x41981d4b , 0x4000 , "ZX Spectrum 128K Plus 2 (4000h) (spanish)" }, - { 0x30c9f490 , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (0000h)" }, - { 0xa7916b3f , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (4000h)" }, - { 0xc9a0b748 , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (8000h)" }, - { 0xb88fd6e3 , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (c000h)" }, - { 0x17373da2 , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (0000h)" }, - { 0xf1d1d99e , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (4000h)" }, - { 0x3dbf351d , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (8000h)" }, - { 0x04448eaa , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (c000h)" }, - { 0x1f86147a , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (0000h) (spanish)" }, - { 0xa8ac4966 , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (4000h) (spanish)" }, - { 0xf6bb0296 , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (8000h) (spanish)" }, - { 0xf6d25389 , 0x4000 , "ZX Spectrum 128K Plus 3 v4.0 (c000h) (spanish)" }, - { 0x2cbe8995 , 0x8000 , "MERGED ZX Spectrum 128K" }, - { 0x0437b160 , 0x8000 , "MERGED ZX Spectrum 128K (spanish)" }, - { 0xe7a517dc , 0x8000 , "MERGED ZX Spectrum 128K Plus 2" }, - { 0x8f769de7 , 0x8000 , "MERGED ZX Spectrum 128K Plus 2 (french)" }, - { 0x5660f4b4 , 0x8000 , "MERGED ZX Spectrum 128K Plus 2 (spanish)" }, - { 0x80808d82 , 0x8000 , "MERGED ZX Spectrum 128K Plus 2A v4.1 (0000h+4000h)" }, - { 0x61f2b50c , 0x8000 , "MERGED ZX Spectrum 128K Plus 2A v4.1 (8000h+c000h)" }, - { 0xbe0d9ec4 , 0x10000, "MERGED ZX Spectrum 128K Plus 2A v4.1" }, - { 0x96e3c17a , 0x10000, "MERGED ZX Spectrum 128K Plus 3 v4.0" }, - { 0x0ade13f8 , 0x10000, "MERGED ZX Spectrum 128K Plus 3 v4.0 (spanish)" }, - -/* hacks and modified roms */ - { 0x1511cddb , 0x4000 , "ZX Spectrum 48K by Busysoft v1.18 (13.03.1994)" }, - { 0x07017c6d , 0x4000 , "ZX Spectrum 48K by Busysoft v1.40 (22.04.1997)" }, - { 0xb8db4c06 , 0x4000 , "ZX Spectrum 48K by Busysoft v3.08 for MB-02 interface" }, - { 0xabf18c45 , 0x4000 , "ZX Spectrum 48K by De Groot" }, - { 0x56189781 , 0x4000 , "ZX Spectrum 48K Turbo by (c)Rak" }, - { 0x3f5c87b1 , 0x4000 , "ZX Spectrum 48K by Pera Putnik for FDD" }, - { 0xbd48db54 , 0x4000 , "ZX Spectrum 48K by Pera Putnik for IDE HDD" }, - { 0x7e0f47cb , 0x4000 , "ZX Spectrum 48K Plus 4 by Andrew Owen" }, - { 0xd1be99ee , 0x4000 , "ZX Spectrum 48K IMC by Ian Collier" }, - { 0x5b5c92b1 , 0x4000 , "ZX Spectrum 48K by Lec v1.6 for 80kB" }, - { 0xcd60b589 , 0x4000 , "ZX Spectrum 48K Psycho by Maly of Illuson Rules" }, - { 0xb81c570c , 0x4000 , "ZX Spectrum 48K HDT" }, - { 0xcdb52350 , 0x4000 , "ZX Spectrum 48K back-up ROM by REX" }, - { 0xfd3b0413 , 0x4000 , "ZX Spectrum 48K Turbo v2.3" }, - { 0x338b6e87 , 0x4000 , "ZX Spectrum 48K Turbo+ v4.4" }, - { 0x20634416 , 0x4000 , "ZX Spectrum 128K Plus 2 ZXVGS v0.22 by Yarek (0000h)" }, - { 0xf3736047 , 0x4000 , "ZX Spectrum 128K Plus 2 ZXVGS v0.22 by Yarek (4000h)" }, - { 0x994acbd9 , 0x4000 , "ZX Spectrum 128K Plus 2c by Namco (0000h)" }, - { 0x95eb4751 , 0x4000 , "ZX Spectrum 128K Plus 2c by Namco (4000h)" }, - { 0xeea9ac71 , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (0000h) modified Cristian Secara" }, - { 0x64a2098c , 0x4000 , "ZX Spectrum 128K Plus 2A v4.1 (4000h) modified Cristian Secara" }, - { 0xad99380a , 0x8000 , "MERGED ZX Spectrum 128K Plus 2A v4.1 (0000h+4000h) modified by Cristian Secara" }, - { 0x07727895 , 0x8000 , "MERGED ZX Spectrum 128K Plus 2A v4.1 (8000h+c000h) modified by Cristian Secara with 4ms head stepper motor timing" }, - { 0x72a54e75 , 0x8000 , "MERGED ZX Spectrum 128K Plus 2c by Namco" }, - { 0x7c20e2c9 , 0x8000 , "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.62 for HD EIDE (8bit) (0000h+4000h)" }, - { 0x4a700c7e , 0x8000 , "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.62 for HD EIDE (8bit) (8000h+c000h)" }, - { 0xc60852ae , 0x8000 , "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.87 for HD EIDE (8bit) (0000h+4000h)" }, - { 0xe73a7797 , 0x8000 , "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.87 for HD EIDE (8bit) (8000h+c000h)" }, - { 0x17c28286 , 0x10000, "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.62 for HD EIDE (8bit)" }, - { 0xe585879d , 0x10000, "MERGED ZX Spectrum 128K Plus 3e by Gary Lancaster v0.87 for HD EIDE (8bit)" }, - -/* homebrew roms replacemts ****************************************************/ - { 0xea8c760b , 0x4000 , "Mr Gluk Reset Service v5.1 128K (Edit)" }, - { 0xfe44b86a , 0x4000 , "Mr Gluk Reset Service v5.2i 128K (Edit)" }, - { 0x479515ef , 0x4000 , "Mr Gluk Reset Service v5.3 128K (Edit)" }, - - { 0x0f186d59 , 0x8000 , "MERGED Real Commander v1.96 128K (0000h+4000h)" }, - - { 0x801a9522 , 0x8000 , "MERGED Quick Commander v2.6 128K (0000h+4000h)" }, - { 0xe0286f40 , 0x8000 , "MERGED Quick Commander v2.61 128K (0000h+4000h)" }, - { 0x8fa43b6a , 0x8000 , "MERGED Quick Commander v2.6fix 128K (0000h+4000h)" }, - - { 0xad2ebd9b , 0x4000 , "NEOS v1.0 128K 32c" }, - { 0xa3bcfaab , 0x4000 , "NEOS v1.0 128K 64c" }, - { 0x1657fa43 , 0x4000 , "NEOS v1.0 Pentagon 512K 64c" }, - { 0x364ae09a , 0x4000 , "NEOS v1.0 Scorpion 256 64c" }, - - { 0x62ab3640 , 0x4000 , "ISO-ROM 48K v2.2" }, - { 0x0dbdc78b , 0x4000 , "ISO-ROM 128K (Ramramis 128K) (8000h)" }, - { 0x9a06aaaf , 0x4000 , "ISO-ROM 128K (Ramramis 48K) (c000h)" }, - { 0xd43fce83 , 0x8000 , "MERGED ISO-ROM 128K (1993)" }, - { 0x1f24cbed , 0x8000 , "MERGED ISO-ROM 128K (1994)" }, - { 0xa5b614b9 , 0x8000 , "MERGED ISO-ROM 128K (1994) (alt 1)" }, - { 0x2ffdef36 , 0x8000 , "MERGED ISO-ROM 128K (1994) (alt 2)" }, - -/* clones */ - { 0x8ff7a4d1 , 0x4000 , "INVES Spectrum 48K+ (spanish)" }, - { 0x1a401bbc , 0x4000 , "Halley Computaction SP v4.1" }, - - { 0x3e785f6f , 0x4000 , "Micro Digital TK-90x Color Computer" }, - { 0x17368e07 , 0x4000 , "Micro Digital TK-95 Color Computer" }, - - { 0x6ab16f36 , 0x2000 , "Elwro 800-3 Junior basic (0000h)" }, - { 0xa743eb80 , 0x2000 , "Elwro 800-3 Junior basic (2000h)" }, - { 0xde5fa37d , 0x2000 , "Elwro 800-3 Junior boot" }, - - { 0xf1b5fa67 , 0x4000 , "Timex TC-2048" }, - - { 0xbf44ec3f , 0x4000 , "Timex TS-2068 (main)" }, - { 0xae16233a , 0x2000 , "Timex TS-2068 (shadow)" }, - - { 0x5ddc0ca2 , 0x4000 , "Unipolbrit UK-2086 (main)" }, - { 0xae16233a , 0x2000 , "Unipolbrit UK-2086 (shadow)" }, - - { 0x2ee3a992 , 0x4000 , "Didaktik Gama" }, - { 0x5e3f1f66 , 0x4000 , "Didaktik Gama Polak" }, - { 0x76f2db1e , 0x4000 , "Didaktik Skalica" }, - { 0x16bca748 , 0x8000 , "MERGED Didaktik M 128K" }, - { 0x6079a929 , 0x4000 , "Didaktik Tape Emulator for D40" }, - - { 0x124ad9e0 , 0x4000 , "Pentagon 128K (0000h)" }, - { 0x08ad241c , 0x4000 , "Pentagon 128K 1993 (0000h)" }, - { 0xa41575ba , 0x4000 , "Pentagon 128K 1990 with monitor (4000h)" }, - { 0x04e910f5 , 0x4000 , "Pentagon 128K 1991 by (c)RaK with Monitor (0000h)" }, - { 0xceb4005d , 0x4000 , "Pentagon 128K 1991 by (c)RaK with Monitor (4000h)" }, - { 0x09c9e7e1 , 0x4000 , "Pentagon 128K 1991 SOS89R (4000h)" }, - { 0x63041c61 , 0x4000 , "Pentagon 128K ZXVGS v0.22 by Yarek (0000h)" }, - { 0xf3736047 , 0x4000 , "Pentagon 128K ZXVGS v0.22 by Yarek (4000h)" }, - { 0xaa1ce4bd , 0x8000 , "MERGED Pentagon 128K" }, - { 0x34d04bae , 0x8000 , "MERGED Pentagon 128K (spanish)" }, - { 0x4e142f83 , 0x8000 , "MERGED Pentagon 128K 1991 by (c)RaK with Monitor" }, - - { 0x0eb40a09 , 0x4000 , "ZS Scorpion 256K with Service Monitor v2.92 (0000h)" }, - { 0x9d513013 , 0x4000 , "ZS Scorpion 256K with Service Monitor v2.92 (4000h)" }, - { 0xfd0d3ce1 , 0x4000 , "ZS Scorpion 256K with Service Monitor v2.92 (8000h)" }, - { 0x1fe1d003 , 0x4000 , "ZS Scorpion 256K with Service Monitor v2.92 (c000h)" }, - { 0xfef73c28 , 0x10000, "MERGED ZS Scorpion 256K with Service Monitor v2.92" }, - { 0x99f57ce1 , 0x10000, "MERGED ZS Scorpion 256K with Service Monitor v2.94" }, - { 0x9fcf893d , 0x20000, "MERGED ZS Scorpion 256K with Service Monitor and SMUC support v4.02" }, - { 0x19a45d83 , 0x20000, "MERGED ZS Scorpion 256K with Service Monitor and SMUC support v4.02 (supplied with z80s)" }, - { 0x2bbe25f9 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (00000h+04000h)" }, - { 0xc704b419 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (08000h+0C000h)" }, - { 0x0ae7fa29 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (10000h+14000h)" }, - { 0x94f10136 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (18000h+1C000h)" }, - { 0x66e427bc , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (20000h+24000h)" }, - { 0x7305005c , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (28000h+2C000h)" }, - { 0x1c38a7d9 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (30000h+34000h)" }, - { 0xf5bcc64a , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (38000h+3C000h)" }, - { 0x3c7e1a68 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (40000h+44000h)" }, - { 0xc704b419 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (48000h+4C000h)" }, - { 0xfee49fa2 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (50000h+54000h)" }, - { 0x6b42f7f2 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (58000h+5C000h)" }, - { 0xd988ed6e , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (60000h+64000h)" }, - { 0x81e72164 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (68000h+6C000h)" }, - { 0x71363ff7 , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (70000h+74000h)" }, - { 0xe980585f , 0x8000 , "MERGED ZS Scorpion 256K Professional Extension (78000h+7C000h)" }, - { 0xb02d89de , 0x80000, "MERGED ZS Scorpion 256K Professional Extension" }, - - { 0x2b31851d , 0x4000 , "Profi 48K" }, - { 0x314f6b57 , 0x10000, "MERGED Profi 1024K by T-REX" }, - { 0xa932676f , 0x10000, "MERGED Profi 1024K by Micco Software v2.0" }, - - { 0x7fbf2d43 , 0x8000 , "MERGED Kay 1024 1998" }, - { 0xab99c31e , 0x10000, "MERGED Kay 1024 2000 v0.2" }, - { 0x67351caa , 0x10000, "MERGED Kay 1024 2000 v0.3" }, - - { 0x658c98f1 , 0x4000 , "ATM v1.06 (0000h)" }, - { 0x8fe367f9 , 0x4000 , "ATM v1.06 (4000h)" }, - { 0x124ad9e0 , 0x4000 , "ATM v1.06 (8000h)" }, - { 0xf352f2ab , 0x4000 , "ATM v1.06 (c000h)" }, - { 0x658c98f1 , 0x4000 , "ATM Turbo 2 (0000h)" }, - { 0xbc3f6b2b , 0x4000 , "ATM Turbo 2 (4000h)" }, - { 0x124ad9e0 , 0x4000 , "ATM Turbo 2 (8000h)" }, - { 0x5869d8c4 , 0x4000 , "ATM Turbo 2 (c000h)" }, - { 0x4912e249 , 0x10000, "MERGED ATM v1.03" }, - { 0x75350b37 , 0x10000, "MERGED ATM v1.06" }, - { 0xd2afed84 , 0x0800 , "ATM Test ROM" }, - { 0x3da62267 , 0x0f00 , "ATM Test ROM v3.0" }, - - { 0x9cb9c060 , 0x20000, "MERGED Sprinter (1999.10.05)" }, - { 0x6a6df9d0 , 0x8000 , "MERGED Sprinter (1999.10.05) (08000h+0c000h)" }, - { 0x3f6a3e29 , 0x4000 , "Sprinter (1999.10.05) (04000h)" }, - - { 0xc40aefbd , 0x10000, "MERGED GrandRomMax 1995" }, - { 0xb7860784 , 0x10000, "MERGED GrandRomMax 2001 with QuickCommander 2.6 and TRDOS 5.04 (english)" }, - - { 0x9954cf1a , 0x4000 , "Sam Coupe (part 1)" }, - { 0xf031aed4 , 0x4000 , "Sam Coupe (part 2)" }, - { 0xc8310db2 , 0x4000 , "Sam Coupe ZXVGS 0.16 by Yarek" }, - -/* external devices ************************************************************/ - { 0x262bd888 , 0x4000 , "SamRam (part 1)" }, - { 0x793b7eb7 , 0x4000 , "SamRam (part 2)" }, - { 0x60efaf07 , 0x4000 , "SamRam (part 2) (alt)" }, - - { 0xe72a12ae , 0x2000 , "Interface 1 v1" }, - { 0xbb66dd1e , 0x2000 , "Interface 1 v2" }, - { 0x85ae5586 , 0x4000 , "Interface 1 v2 modified by Ian Collier 1985" }, - { 0x10f51133 , 0x4000 , "MERGED Interface 1 (v2+v1)" }, - - { 0x4b31a971 , 0x2000 , "Multiface 1 (Romantic Robot)" }, - { 0x8d8cfd39 , 0x2000 , "Multiface 128 v3.5 (87.1) (Romantic Robot)" }, - { 0x78ec8cfd , 0x2000 , "Multiface 128 v3.6 (87.2) (Romantic Robot)" }, - { 0x2d594640 , 0x2000 , "Multiface 3 v3.c (Romantic Robot)" }, - { 0x3a26e84b , 0x2000 , "Multiprint v1987.5 (Romantic Robot)" }, - - { 0x3b9bbca3 , 0x4000 , "Genie 128K Disassembler v2.1" }, - - { 0x82047489 , 0x2000 , "Disciple GDOS3 v3.0" }, - { 0x569f7e55 , 0x2000 , "Disciple +D G+DOS v1.A" }, - { 0x1fe7f4fa , 0x2000 , "Disciple Uni-DOS" }, - { 0x60920496 , 0x2000 , "Disciple +D Uni-DOS" }, - - { 0x619973f9 , 0x2000 , "Opus Discovery v1.2" }, - { 0x50f0eae0 , 0x2000 , "Opus Discovery v2.2" }, - { 0xd042b32a , 0x2000 , "Opus Discovery QuickDOS for FDD 720Kb" }, - - { 0x1ccf4add , 0x0800 , "Timex FDD-3000 Internal ROM" }, - { 0xe9db941c , 0x1000 , "Timex FDD-3000 Interface" }, - { 0xa0a9779c , 0x1000 , "Timex FDD-3000 Interface modified for +3" }, - { 0x77c517f4 , 0x1000 , "Timex FDD-3000 Interface with square ULA modified for 128K" }, - - { 0xe6de2629 , 0x0800 , "MB-02 BootRom" }, - { 0x513accb2 , 0x4000 , "MB-02 Interface v3.08 by Busysoft" }, - - { 0x179d4600 , 0x2000 , "Rotronics Wafadrive v1.08" }, - - { 0x27547714 , 0x4000 , "D80 Didaktik Disk Interface" }, - - { 0x3e3cdd4c , 0x4000 , "Beta 128 TR-DOS v5.01" }, - { 0x121889b0 , 0x4000 , "Beta 128 TR-DOS v5.03" }, - { 0xb90ee684 , 0x4000 , "Beta 128 TR-DOS v5.03 ZXVGS v0.22 by Yaro" }, - { 0x10751aba , 0x4000 , "Beta 128 TR-DOS v5.03 (supplied with r80)" }, - { 0xc43d717f , 0x4000 , "Beta 128 TR-DOS v5.03 (supplied with x128)" }, - { 0x561662f2 , 0x4000 , "Beta 128 TR-DOS v5.03 (supplied with speccy)" }, - { 0x23dbc387 , 0x4000 , "Beta 128 TR-DOS v5.03 (supplied with z80)" }, - { 0x1c5a25b1 , 0x4000 , "Beta 128 TR-DOS v5.03 (supplied with z80) (alt)" }, - { 0x2f97fe06 , 0x4000 , "Beta 128 TR-DOS v5.03M" }, - { 0xba310874 , 0x4000 , "Beta 128 TR-DOS v5.04" }, - { 0xda170c65 , 0x4000 , "Beta 128 TR-DOS v5.04.1 & LPrint-III for Profi by Michael Markowsky" }, - { 0x0d3f8b43 , 0x4000 , "Beta 128 TR-DOS v5.04EM by Elsy Corp" }, - { 0xab3100d8 , 0x4000 , "Beta 128 TR-DOS v5.04F" }, - { 0x2f2cb630 , 0x4000 , "Beta 128 TR-DOS v5.04M" }, - { 0x522ebbd6 , 0x4000 , "Beta 128 TR-DOS v5.04S" }, - { 0xe212d1e0 , 0x4000 , "Beta 128 TR-DOS v5.04T" }, - { 0x8d943e6b , 0x4000 , "Beta 128 TR-DOS v5.04T (supplied with ZX Emulator)" }, - { 0x2334b8c6 , 0x4000 , "Beta 128 TR-DOS v5.04TM" }, - { 0xfdff3810 , 0x4000 , "Beta 128 TR-DOS v5.05" }, - { 0x03b76c8f , 0x4000 , "Beta 128 TR-DOS v5.05 (alt)" }, - { 0x9ba15549 , 0x4000 , "Beta 128 TR-DOS v5.05H by Rst7" }, - { 0xb615d6c4 , 0x4000 , "Beta 128 TR-DOS v5.12" }, - { 0xedb74f8c , 0x4000 , "Beta 128 TR-DOS v5.12F" }, - { 0x6b1c17f3 , 0x4000 , "Beta 128 TR-DOS v5.13F" }, - { 0xbad0c0a0 , 0x4000 , "Beta 128 TR-DOS v5.13FM" }, - { 0xd8882a8c , 0x4000 , "Beta 128 TR-DOS v6.04 by PoS" }, - { 0xe73394cb , 0x4000 , "Beta 128 TR-DOS v6.04M Profi+ by PoS" }, - { 0x56d3c2db , 0x4000 , "Beta 128 TR-DOS v6.05E 1024K C.W. Remix for Resident" }, - { 0x6b44fdd7 , 0x4000 , "Beta 128 TR-DOS v6.06H Profi+ by PCCC" }, - { 0x5c998d53 , 0x4000 , "Beta 128 TR-DOS v6.08 Profi+ by PCCC" }, - { 0x91028924 , 0x4000 , "Beta 128 TR-DOS v6.09 Profi+ by PoS" }, - - { 0x3c3483e5 , 0x0800 , "ZX Lprint EuroElectronics Interface" }, - { 0xa5014f40 , 0x0800 , "ZX Lprint MKIII Interface" }, - - { 0xce7cf52e , 0x0800 , "Currah microSpeech" }, - { 0x1431505c , 0x2000 , "Modem Prism VTX 5000 v3.1" }, - { 0x7a365ba6 , 0x8000 , "General Sound v1.04" }, - { 0xe938a510 , 0x1000 , "ZS Scorpion 256K AT-XT Keyboard & Mouse Interface" }, - -/* probably useless roms *******************************************************/ - { 0x2959719b , 0x02000 , "PART ZX Spectrum 48K (0000h-1fffh)" }, - { 0x87369b50 , 0x03000 , "MERGED Sinclair ZX-80 & ZX-81" }, - { 0x05ad8750 , 0x0a000 , "MERGED ZX Spectrum roms (262bd888+60efaf07+9e5392aa)" }, - { 0x6d96f172 , 0x10000 , "MERGED ZX Spectrum roms (help screen+124ad9e0+b96a36be+c43d717f)" }, - { 0xe640a642 , 0x10000 , "MERGED ZX Spectrum roms (help screen+124ad9e0+b96a36be+561662f2)" }, - { 0x863c7e0b , 0x10000 , "MERGED ZX Spectrum roms (help screen+124ad9e0+b96a36be+2f97fe06)" }, - { 0xf8a79acc , 0x16000 , "MERGED ZX Spectrum roms (ddee531f+9e5392aa+262bd888+793b7eb7+b96a36be+e76799d2)" }, - { 0x23af5893 , 0x20000 , "MERGED ZX Spectrum roms (ddee531f+9e5392aa+262bd888+793b7eb7+b96a36be+e76799d2+8c7e6a55+9191480c+78ec8cfd)" }, - { 0x9f54a710 , 0x20000 , "MERGED ZX Spectrum roms (ddee531f+9e5392aa+262bd888+793b7eb7+b96a36be+e76799d2+dd6f66ca+05b041fc+78ec8cfd)" }, - { 0xad99f054 , 0x20000 , "MERGED ZX Spectrum roms (ddee531f+9e5392aa+262bd888+793b7eb7+b96a36be+e76799d2+27d4c5f6+4250c4cd+78ec8cfd)" }, - { 0xf8635431 , 0x20000 , "MERGED ZX Spectrum roms (ddee531f+bb66dd1e+262bd888+793b7eb7+b96a36be+e76799d2+dd6f66ca+05b041fc+78ec8cfd)" }, - { 0xe0fda867 , 0x20000 , "MERGED ZX Spectrum roms (ddee531f+9e5392aa+262bd888+793b7eb7+b96a36be+124ad9e0+8c7e6a55+9191480c+78ec8cfd)" }, - { 0x2ae772ba , 0x30000 , "MERGED ZX Spectrum roms (ddee531f+e76799d2+b96a36be+5d2e8c66+98b1320b+17373da2+f1d1d99e+3dbf351d+04448eaa+bf44ec3f+ae16233a+filled with 00h)" }, - { 0xe55b40f8 , 0x0c000 , "MERGED ZX Spectrum 48K + ZX Spectrum 128K" }, - { 0x545f8520 , 0x04000 , "MODIFIED ZX Spectrum 48K by Lec v1.6 for 80kB (modified for Psim)" }, - { 0x996bc458 , 0x04000 , "MODIFIED ZX Spectrum 48K (modified for ZX Spectrum Simulator)" }, - { 0x705192c7 , 0x04000 , "MODIFIED ZX Spectrum 128K (4000h) (modified to be use as 48K ROM in SpecEm)" }, - { 0x9e5392aa , 0x02000 , "MODIFIED Interface 1 v2 (modified for z80 pre-v4)" }, - { 0xeed3e349 , 0x04000 , "MODIFIED ISO-ROM 128K (Ramramis 128K) (8000h) (modified for X128)" }, - { 0xf473991e , 0x02000 , "MODIFIED Multiface 128 v3.6 (87.2) (Romantic Robot)" }, - { 0xca7622c1 , 0x04000 , "OVERDUMP Multiface 1 (Romantic Robot)" }, - { 0xff83b282 , 0x04000 , "Disciple GDOS3 v3.0 with System 3b" }, - { 0x27d4c5f6 , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & Epson printer code" }, - { 0x4250c4cd , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & HP printer code" }, - { 0xdd6f66ca , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & Epson printer code (alt)" }, - { 0x05b041fc , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & HP printer code (alt)" }, - { 0x8c7e6a55 , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & Epson printer code (alt 2)" }, - { 0x9191480c , 0x04000 , "Disciple GDOS3 v3.0 with System 3b & HP printer code (alt 2)" }, - { 0x6edbf20a , 0x04000 , "Disciple +D G+DOS v1.A with System 2a" }, - { 0x44c8e6ce , 0x04000 , "Disciple +D G+DOS v1.A with System 2a (alt)" }, - - -/* Sinclair QL Computer ********************************************************/ - { 0xc7143fc7, 0xc000 , "Sinclair QL ah" }, - { 0xe2b94296, 0xc000 , "Sinclair QL jm" }, - { 0xe2ac3b71, 0xc000 , "Sinclair QL tb" }, - { 0x0f95aab5, 0xc000 , "Sinclair QL js" }, - { 0x953f8f51, 0xc000 , "Sinclair QL js (patched for use with 4MB memory systems)" }, - { 0xfa74b1e8, 0xc000 , "Sinclair QL mg" }, - { 0x5cc6b3ac, 0xc000 , "Sinclair QL mg (german)" }, - { 0x15931c02, 0xc000 , "Sinclair QL mg (italian)" }, - { 0x7cba78d3, 0xc000 , "Sinclair QL mguk (mg with new facilites by John Alexander)" }, - { 0x54e93572, 0xc000 , "Sinclair QL mf (german)" }, - { 0x930befe3, 0xc000 , "Sinclair QL Minerva 1.89 (QDOS replacement)" }, - - -/* Cambridge Computer Z88 Personal Organiser *********************************************/ - { 0x0ae7d0fc, 0x20000, "Cambridge Computer Z88 v2.2" }, - { 0xdad01338, 0x20000, "Cambridge Computer Z88 v2.5 (swedish)" }, - { 0x293f35c8, 0x20000, "Cambridge Computer Z88 v2.6 (norwegian)" }, - { 0x802cb9aa, 0x20000, "Cambridge Computer Z88 v3.0" }, - { 0xa56d732c, 0x20000, "Cambridge Computer Z88 v3.13 (swiss)" }, - { 0x9468d677, 0x20000, "Cambridge Computer Z88 v3.17 (turkish)" }, - { 0xd7eaf937, 0x20000, "Cambridge Computer Z88 v3.18 (german)" }, - { 0x7a08af73, 0x20000, "Cambridge Computer Z88 v3.19 (spanish)" }, - { 0xbaa80408, 0x20000, "Cambridge Computer Z88 v3.21 (danish)" }, - { 0x13f54308, 0x20000, "Cambridge Computer Z88 v3.23 (italian)" }, - { 0x218fbb72, 0x20000, "Cambridge Computer Z88 v3.26 (french)" }, - { 0x1356d440, 0x20000, "Cambridge Computer Z88 v4.0" }, - - -/* tandy *************************************************************************/ - { 0x73316e3e , 0x2000, "NOT AUTHENTIC? COCO basic 1.0" }, - { 0x6270955a , 0x2000, "COCO basic 1.1" }, - { 0x54368805 , 0x2000, "COCO basic 1.2" }, - { 0xd8f4d15e , 0x2000, "COCO basic 1.3" }, - { 0xa04a8732 , 0x2000, "COCO basic 1.3 (1byte different to 0xd8f4d15e" }, - { 0x6111a086 , 0x2000, "NOT AUTHENTIC? COCO extbasic 1.0" }, - { 0xa82a6254 , 0x2000, "COCO extbasic 1.1" }, - { 0x2ea0fb7f , 0x4000, "MERGED! COCO extbasic 1.1 0xa82a6254+0x54368805" }, - { 0x318ba789 , 0x4010, "OVERDUMP COCO extbasic 1.1 (remove first 16bytes)=0x2ea0fb7f" }, - { 0xb4f9968e , 0x2000, "COCO disk 1.0" }, - { 0x0b9c5415 , 0x2000, "COCO disk 1.1" }, - { 0x7eaa44e3 , 0x2000, "COCO disk (2bytes different to 0x0b9c5415" }, - { 0x5fb295a7 , 0x6000, "MERGED! 0xa82a6254+0x54368805+0x7eaa44e3" }, - { 0xb4c88d6c , 0x8000, "COCO3" }, - { 0x31aec822 , 0x7e00, "INCOMPLETE COCO3 saved from running machine 0xb4c88d6c without end" }, - { 0xdfce21e5 , 0x7f00, "INCOMPLETE COCO3 saved from running machine" }, - { 0x7d48ba8e , 0x2000, "??? COCO3 disk?" }, - { 0xe3879310 , 0x4000, "DRAGON32" }, - { 0xdcab048d , 0x4010, "Overdump DRAGON32 (remove first 16bytes)=0xe3879310" }, - { 0xb44536f6 , 0x2000, "DRAGON DOS 1.0" }, - { 0x878396a5 , 0x4000, "CP400 basic" }, - { 0xe9ad60a0 , 0x2000, "CP400 disk" }, - { 0x11fda97e , 0x2000, "MC10" }, - { 0x17893a42 , 0x4000, "Dragon64? d64rom2 1.0 1983" }, - { 0x84f68bf9 , 0x4000, "Dragon64? dragrom 1.0 1982" }, - { 0xcedc6a52 , 0x4010, "Overdump Dragon64? (remove first 16bytes)=0x17893a42" }, - { 0x615236cc , 0x4010, "Overdump Dragon64? (remove first 16bytes)=0x84f68bf9" }, - - { 0x70d06dff , 0x1000, "TRS80 Level1 0000" }, - { 0x83dbbbe2 , 0x1000, "TRS80 0000" }, - { 0x05818718 , 0x1000, "TRS80 1000" }, - { 0x306e5d66 , 0x1000, "TRS80 2000" }, - { 0xd6fd9041 , 0x3000, "MERGED! 0x83dbbbe2+0x05818718+0x306e5d66" }, - { 0xbe46faf5 , 0x1000, "TRS80 alternate 0000" }, - { 0x6c791c2d , 0x1000, "TRS80 alternate 1000" }, - { 0x55b3ad13 , 0x1000, "TRS80 alternate 2000" }, - { 0xa8e60d9a , 0x3000, "MERGED! 0xbe46faf5+0x6c791c2d+0x55b3ad13" }, - { 0x8f5214de , 0x1000, "SYS80 0000" }, - { 0x46e88fbf , 0x1000, "SYS80 1000" }, - { 0x2bfef8f7 , 0x3000, "MERGED! 0x8f5214de+0x46e88fbf+0x306e5d66" }, - { 0x37c59db2 , 0x1000, "TRS80 level 2 (7 differences to 0x83dbbbe2)" }, - { 0x0d8a132e , 0x3000, "MERGED TRS80 level 2 (0x37c59db2+0x05818718+306e5d66)" }, - { 0xbddbf843 , 0x3800, "MERGED! trs80 model 3" }, - { 0x1a92d54d , 0x3800, "TRS80 model 4 (first 0x3000 byte same as 0xbddbf843" }, - { 0x7ff336f4 , 504, "SCRAP? TRS80 disk?" }, - { 0x0033f2b9 , 0x400, "TRS80 char 128 6x8 char Arrows (should be the same as 0xac21c5a2)" }, - { 0x2d9b8d3d , 0xc00, "MODIFIED? 256 TRS81 6x12 char [/]" }, - { 0xac21c5a2 , 0xc00, "MODIFIED? 256 TRS81 6x12 char Arrows" }, - { 0xacfc3200 , 0xc00, "MODIFIED? 256 TRS81 6x12 char real lower case letters, 0-31 are also big letters" }, - { 0xc7039103 , 0x1500, "TRS80 448 8x12 char" }, - { 0xddd8f7b2 , 0x1500, "TRS80 448 8x12 char international" }, - { 0x9820d71a , 0x1500, "TRS80 448 8x12 char linegraphics" }, - - { 0xe09f7e91 , 0x800, "TRS80 lnw80 0000" }, - { 0xac297d99 , 0x800, "TRS80 lnw80 0800" }, - { 0xc4303568 , 0x800, "TRS80 lnw80 1000" }, - { 0x3a5ea239 , 0x800, "TRS80 lnw80 1800" }, - { 0x2ba025d7 , 0x800, "TRS80 lnw80 2000" }, - { 0xed547445 , 0x800, "TRS80 lnw80 2800" }, - { 0xc89b27df , 0x800, "TRS80 lnw80 chars" }, - { 0xade91df3 , 0x800, "TRS80 lnw80a 0000" }, - { 0xf94b094a , 0x800, "TRS80 lnw80a 0800" }, - { 0x5ebe7fa7 , 0x800, "TRS80 lnw80a 1000" }, - { 0xf97391f5 , 0x800, "TRS80 lnw80a 1800" }, - { 0x3f7fe632 , 0x800, "TRS80 lnw80a 2000" }, - { 0x70772471 , 0x800, "TRS80 lnw80a 2800" }, - { 0x9f6e5c16 , 0x800, "TRS80 lnw80a bad dump?" }, - -/* msx ***************************************************************************/ - { 0xd9ec9db7 , 0x4000, "MSX basic" }, - { 0x2f74e2c5 , 0x4000, "MSX basic 0xd9ec9db7 with some modifications" }, - { 0x86f11f42 , 0x4007, "MODIFIED MSX 0x2f74e2c5 with 7 byte header" }, - { 0xdaec9af0 , 0x4000, "MSX bios" }, - { 0x94ee12f3 , 0x8000, "MERGED MSX 0xd9ec9db7+0xdaec9af0" }, - { 0xb3cbf2cd , 0x8000, "MSX casema? differences to 0x94ee12f3 in the first 16k" }, - { 0xee229390 , 0x8000, "MSXJ" }, - { 0xe9ccd789 , 0x8000, "MSXUK" }, - { 0x3ab0cd3b , 0x8000, "MSXKR" }, - { 0xa781f7ca , 0x8000, "MSXKR 0x3ab0cd3b hacked to boot like jap/eu msx for increased compatiblity" }, - - { 0x97478efb , 0x4000, "BAD DUMP? MSXKR han" }, - - { 0x2949cb19 , 0x4000, "MSX ru disk" }, - { 0xaf445c3d , 0x4000, "MSX shrpdisk" }, - { 0x6704ef81 , 0x4000, "MSX gradisk" }, - { 0xeb8e1d5b , 0x4000, "MSX fmsxdisk" }, - { 0x71162b96 , 0x4000, "MSX disk" }, - - { 0x07610d77, 0x8000, "EXPERT 1.0" }, - { 0xefb4b972, 0x8000, "EXPERT 1.1" }, - { 0xb6942694, 0x8000, "HOTBIT 1.1" }, - { 0xf59a4a0c, 0x8000, "HOTBIT 1.2" }, - - { 0x77b94ae0,0x8000, "MSXTR" }, - { 0x937c8dbb,0x8000, "MSXTR" }, - { 0x70aea0fe,0x4000, "MSXTR ext" }, - { 0xf5f93437,0x4000, "MSXTR mus" }, - { 0xa068cba9,0x8000, "MSXTR kanji" }, - { 0x7016dfd0,0x40000, "MSXTR kanji 256k" }, - - { 0xf05ed518,0x8000, "MSX2" }, - { 0x95db2959,0x4000, "MSX2 ext" }, - { 0x6cdaf3a5,0x8000, "MSX21" }, - { 0x66237ecf,0x4000, "MSX21 ext" }, - { 0x9b3e7b97,0x8000, "MSX2 japan" }, - { 0x43e7a7fc,0x4000, "MSX2 japan X" }, - { 0x0531dea4,0x8000, "MSX2 casema" }, - { 0x53850907,0x8000, "MSX2 k" }, - - { 0x00870134,0x8000, "MSX2+" }, - { 0xb8ba44d3,0x4000, "MSX2+ ext" }, - { 0xc9651b32,0x20000, "MSX2+ kanji 128k" }, - - { 0x98d48655,0x8000, "SVI 1.0" }, - { 0x709904e9,0x8000, "SVI 1.1" }, - { 0xbc433df6,0x8000, "SVI 1.11" }, - -/* sharp ***************************************************************************/ - { 0x4c6c6b7b , 0x1000, "MZ700" }, - { 0x42b9e8fb , 0x1000, "MZ700 font" }, - { 0x425eedf5 , 0x1000, "MZ700 font japan" }, - { 0x0c281675 , 0x2000, "MZ800" }, - - { 0xdca8f879 , 0x4000, "PC1500A rom" }, - - { 0x44bee438 , 0x2000, "SC61860A08 5H 13LD PC1401 cpu rom" }, - { 0x69b9d587 , 0x8000, "5S1 SC613256 D30 PC1401" }, - { 0xf7287aca , 0x2000, "PC1251 cpu rom" }, - { 0x93ecb629 , 0x4000, "PC1251 basic rom" }, - { 0x79a924bc , 0x2000, "PC1350 cpu rom" }, - { 0x158b28e2 , 0x8000, "PC1350 basic rom" }, - - { 0x588c500b, 0x2000, "PC1403 internal" }, - { 0x1fa65140, 0x4000, "PC1403 external 1of4" }, - { 0x4a7da6ab, 0x4000, "PC1403 external 2of4" }, - { 0x9925174f, 0x4000, "PC1403 external 3of4" }, - { 0xfa5df9ec, 0x4000, "PC1403 external 4of4" }, - - { 0x9f3195f1 ,0xc0000, "X68000 charset" }, - { 0x72bdf532 ,0x20000, "X68000 1.00 1987/05/07" }, - -/* texas instruments ****************************************************************/ - { 0xdb8f33e5 , 0x2000, "TI99_4A arom" }, - { 0x8f7df93f , 0x2000, "TI99_4A disk" }, - { 0xaf5c2449 , 0x6000, "TI99_4A agrom" }, - { 0x58b155f7 , 0x8000, "TI99_4A speech" }, - { 0x0a0b0c42 , 0x100, "94519209 TI990_4" }, - { 0xd078af61 , 0x100, "94519210 TI990_4" }, - { 0x6cf7d4a0 , 0x100, "94519211 TI990_4" }, - { 0xd9522458 , 0x100, "94519212 TI990_4" }, - { 0x8719b04e , 0x100, "94519113 TI990_4" }, - { 0x72a040e0 , 0x100, "94519114 TI990_4" }, - { 0x9ccf8cca , 0x100, "94519115 TI990_4" }, - { 0xfa387bf3 , 0x100, "94519116 TI990_4" }, - -/* Texas Instruments Personal Organisers ***************************************/ - { 0x160ee4a6 , 0x150000, "Texas Instruments AVIGO v1.004 (english)" }, - { 0x8180d674 , 0x150000, "Texas Instruments AVIGO v1.004 (french)" }, - { 0x124a5679 , 0x160000, "Texas Instruments AVIGO v1.004 (german)" }, - { 0x3eb41e47 , 0x150000, "Texas Instruments AVIGO v1.004 (spainish)" }, - { 0x24b4076f , 0x160000, "Texas Instruments AVIGO v1.004 (italian)" }, - -/* Texas Instruments Calculators ***********************************************/ - { 0x94ac58e2 , 0x08000 , "Texas Instruments TI-81 v1.8" }, - - { 0xe2f5721c , 0x20000 , "Texas Instruments TI-82 v16.0" }, - { 0x0fc956d4 , 0x20000 , "Texas Instruments TI-82 v17.0" }, - { 0x6a320f03 , 0x20000 , "Texas Instruments TI-82 v18.0" }, - { 0xed4cf9ff , 0x20000 , "Texas Instruments TI-82 v19.0" }, - - { 0x7ee5d27b , 0x40000 , "Texas Instruments TI-83 v1.0200" }, - { 0x926f72a4 , 0x40000 , "Texas Instruments TI-83 v1.0300" }, - { 0xdccb73d3 , 0x40000 , "Texas Instruments TI-83 v1.0400" }, - { 0x2eae1cf0 , 0x40000 , "Texas Instruments TI-83 v1.0600" }, - { 0x4bf05697 , 0x40000 , "Texas Instruments TI-83 v1.07000" }, - { 0x0c6aafcc , 0x40000 , "Texas Instruments TI-83 v1.08000" }, - { 0x7faee2d2 , 0x40000 , "Texas Instruments TI-83 v1.10" }, - - { 0x281c9375 , 0x80000 , "Texas Instruments TI-83+ v1.03" }, - { 0x690d9d30 , 0x80000 , "Texas Instruments TI-83+ v1.03 (alt)" }, - { 0x62683990 , 0x80000 , "Texas Instruments TI-83+ v1.10" }, - { 0xddca5026 , 0x80000 , "Texas Instruments TI-83+ v1.12" }, - - { 0xde4c0b1a , 0x20000 , "Texas Instruments TI-85 v3.0a" }, - { 0xa1723a17 , 0x20000 , "Texas Instruments TI-85 v4.0" }, - { 0x781fa403 , 0x20000 , "Texas Instruments TI-85 v5.0" }, - { 0xb694a117 , 0x20000 , "Texas Instruments TI-85 v6.0" }, - { 0x7f296338 , 0x20000 , "Texas Instruments TI-85 v8.0" }, - { 0x6a0a94d0 , 0x20000 , "Texas Instruments TI-85 v9.0" }, - { 0x053325b0 , 0x20000 , "Texas Instruments TI-85 v10.0" }, - - { 0xbdf16105 , 0x40000 , "Texas Instruments TI-86 v1.2" }, - { 0x073ef70f , 0x40000 , "Texas Instruments TI-86 v1.3" }, - { 0xfe6e2986 , 0x40000 , "Texas Instruments TI-86 v1.4" }, - { 0x37e02acc , 0x40000 , "Texas Instruments TI-86 v1.6" }, - { 0xd2c67280 , 0x40000 , "Texas Instruments TI-86 GROM (homebrew rom by Daniel Foesch)" }, - - { 0x264b34ad , 0x200000 , "Texas Instruments TI-89 (hardware 1) v1.00" }, - { 0x95199934 , 0x200000 , "Texas Instruments TI-89 (hardware 1) v1.00 (alt 1)" }, - { 0xb9059e06 , 0x200000 , "Texas Instruments TI-89 (hardware 1) v1.00 (alt 2)" }, - { 0x3bc0b474 , 0x200000 , "Texas Instruments TI-89 (hardware 1) v1.05" }, - { 0xfa6745e9 , 0x200000 , "Texas Instruments TI-89 (hardware 1) v2.01" }, - { 0xa3a74eca , 0x200000 , "Texas Instruments TI-89 (hardware 1) v2.03" }, - { 0x83817402 , 0x200000 , "Texas Instruments TI-89 (hardware 2) v1.05" }, - { 0x5e0400a9 , 0x200000 , "Texas Instruments TI-89 (hardware 2) v2.03" }, - - { 0x4a343833 , 0x100000 , "Texas Instruments TI-92 v1.11 (external)" }, - { 0x67878d52 , 0x100000 , "Texas Instruments TI-92 v1.11 (internal)" }, - { 0x9a6947a0 , 0x100000 , "Texas Instruments TI-92 v1.12 (external)" }, - { 0x316c8196 , 0x100000 , "Texas Instruments TI-92 v1.3 (external)" }, - { 0x239e9405 , 0x100000 , "Texas Instruments TI-92 v1.4 (external)" }, - { 0x83e27cc5 , 0x100000 , "Texas Instruments TI-92 v1.7 (external)" }, - { 0x5afb5863 , 0x200000 , "Texas Instruments TI-92 v2.1 (external)" }, - - { 0xc651a586 , 0x200000 , "Texas Instruments TI-92+ v1.00" }, - { 0x18f9002f , 0x200000 , "Texas Instruments TI-92+ v1.01" }, - { 0x826b1539 , 0x200000 , "Texas Instruments TI-92+ v1.01 (alt 1)" }, - { 0xcd945824 , 0x200000 , "Texas Instruments TI-92+ v1.05" }, - - { 0xda466be0 , 0x80000 , "BAD DUMP Texas Instruments TI-83+ v1.03" }, - { 0xad770061 , 0x80000 , "BAD DUMP Texas Instruments TI-83+ v1.12" }, - { 0x889dadc7 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v4.0" }, - { 0xd723e107 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v5.0" }, - { 0xcd13d4f1 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v6.0" }, - { 0x32ad5c28 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v8.0" }, - { 0xceed0ef5 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v9.0" }, - { 0x706fd864 , 0x20000 , "BAD DUMP Texas Instruments TI-85 v10.0" }, - { 0xe6e10546 , 0x40000 , "BAD DUMP Texas Instruments TI-86 v1.5" }, - { 0x5f1c2391 , 0x100000 , "BAD DUMP Texas Instruments TI-92 v1.11 (internal)" }, - { 0xfe2b6e77 , 0x200000 , "BAD DUMP Texas Instruments TI-92+ v1.01" }, - { 0x1ed2f479 , 0x100000 , "OVER DUMP Texas Instruments TI-83+ v1.10" }, - -/*******************************************************************************/ - { 0xd359ead7 , 0x4000, "CGENIE bios" }, - { 0x2a96cf74 , 0x2000, "CGENIE dos" }, - { 0x4fed774a , 0x800, "CGENIE font" }, - - { 0xa2d15bcf , 0x2000, "AQUARIUS" }, - { 0x5cfa5b42 , 0x2000, "AQUARIUS radofin? (1byte different to 0xa2d15bcf)" }, - { 0x0b3edeed , 0x800, "AQUARIUS character" }, - - { 0x9ca858cc , 0x2000, "MTX ???" }, - { 0x87b4e59c , 0x2000, "MTX ???" }, - { 0x9d7538c3 , 0x2000, "MTX ???" }, - - { 0xe371b58a , 0x400, "NASCOM 1 nasbugt2" }, - { 0xb6300716 , 0x800, "NASCOM 2 nassys1" }, - { 0x5cb5197b , 0x2000, "NASCOM 2 basic" }, - { 0x33e92a04 , 0x800, "NOT BAD DUMP! NASCOM 1 nascom1.chr" }, - { 0x2bc09d32 , 0x800, "NASCOM 2 nasgra.chr" }, - - { 0xdc7cf06a , 0x1000, "MERGED NASCOM nascom1.chr 0x33e92a04+?" }, - { 0xacaa3a31 , 0x1000, "MERGED NASCOM nasgra.chr 0x33e92a04+0x2bc09d32" }, - { 0x3da17373 , 0x800, "NASCOM nassys3" }, - { 0xf391df68 , 0x800, "NASCOM nasbugt4" }, - { 0x6c144399 , 0x800, "NASCOM sysex" }, - { 0xac4d33b0 , 0x0500, "BAD DUMP NASCOM nascom1.chr" }, - - { 0x99412d43 , 0x2000, "LASER110" }, - { 0xe4c24e8b , 0x2000, "LASER110" }, - { 0xead006a1 , 0xc00, "LASER110 characters" }, - { 0xcc854fe9 , 0x2000, "LASER210" }, - { 0x7060f91a , 0x2000, "LASER210" }, - { 0x613de12c , 0x4000, "LASER310" }, - { 0x9bed01f7 , 0x8000, "LASER350" }, - { 0xed6bfb2a , 0x800, "LASER350 chars" }, - - { 0xdfe34b08 , 0x2000, "KC85 basic" }, - { 0xfe2932e3 , 0x2000, "KC85_3? basic (1 byte different to 0xdfe34b08)" }, - { 0xbd30cd2d , 0x2000, "KC85_3? bios" }, - { 0x52bc2199 , 0x2000, "KC85_3 bios?" }, - { 0x57d9ab02 , 0x1000, "KC85_4 os c000" }, - { 0xd64cd50b , 0x2000, "KC85_4 os e000" }, - { 0x4a6c9a47 , 0x2000, "KC85_3 disk" }, - { 0x639e4864 , 0x2000, "KC85_3 tape" }, - { 0x37cc2080 , 0x2000, "KC85_4 disk" }, - { 0xee273933 , 0x2000, "KC85_4 tape" }, - - { 0x7896a696 , 0x2000, "MBEE basic 8000" }, - { 0xb21d9679 , 0x2000, "MBEE basic a000" }, - { 0x0fc21cb5 , 0x2000, "MBEE" }, - { 0x47a56a9a , 0x1000, "BAD DUMP? MBEE char" }, - { 0x28211224 , 0x1000, "MBEE 56k" }, - { 0x1f9fcee4 , 0x1000, "MBEE 128k char" }, - { 0x995c53db , 0x2000, "MBEE 128k" }, - { 0x1af1b3a9 , 0x2000, "MBEE edasm" }, - { 0x15b9d2df , 0x2000, "MBEE telc321" }, - - { 0x5f72da5b , 0x1000, "KAYPRO char" }, - { 0xd10cd036 , 5632, "REPROGRAMMED? KAYPRO" }, - - { 0xd421795f , 0x8000, "ENTERPRISE128 os" }, - { 0x683cf455 , 0x4000, "ENTERPRISE128 basic" }, - { 0xd1d7e157 , 0x8000, "ENTERPRISE128 dos" }, - { 0x982a3b44 , 0x8000, "ENTERPRIES128 os 21" }, - - { 0xdc8438a5 , 0x1000, "JUPITER " }, - { 0x4009f636 , 0x1000, "JUPITER" }, - { 0xe5b1f5f6 , 0x2000, "MERGED! JUPITER 0xdc8438a5+0x4009f636" }, - - { 0x650784a3 , 0x1000, "P2000 bios" }, - { 0x9d9d38f9 , 0x4000, "P2000 basic" }, - { 0x873e81c1 , 2240, "BAD DUMP P2000 character" }, - - { 0x3e09d384 , 0x1000, "MICROTAN" }, - { 0x75105113 , 0x1000, "MICROTAN" }, - { 0xee6e8412 , 0x800, "MICROTAN" }, - { 0xbd87fd34 , 0x800, "MICROTAN" }, - { 0x9fd233ee , 0x800, "MICROTAN" }, - { 0x7e215313 , 0x400, "MICROTAN" }, - { 0xc8221d9e , 0x400, "MICROTAN" }, - { 0x3b3c5360 , 0x800, "MICROTAN character" }, - - { 0xf18710b4 , 0x4000, "ORIC1 basic 10" }, - { 0x07a5a667 , 0x4000, "ORIC basic 11 de" }, - { 0x2539bb8d , 0x4000, "ORIC basic 11 es" }, - { 0x02bd82f5 , 0x4000, "ORIC basic 11 fr" }, - { 0xc593bee6 , 0x4000, "ORIC basic 11 se" }, - { 0x52b5ed9b , 0x4000, "ORIC basic 11 uk" }, - { 0xc3a92bef , 0x4000, "ORICA basic 11b (few differences to uk)" }, - { 0xa9664a9c , 0x2000, "ORIC microdisk" }, - { 0x37220e89 , 0x800, "ORIC jasmin" }, - { 0x58079502 , 0x4000, "PRAVETZ8D" }, - { 0xb48973ef , 0x4000, "PRAVETZ8Dd" }, - { 0xf8d23821 , 0x4000, "PRAVETZ8Dda" }, - { 0x94358dc6 , 0x2000, "STRATOS telmatic" }, - { 0x68b0fde6 , 0x4000, "STRATOS teleass" }, - { 0x1d96ab50 , 0x4000, "STRATOS hyperbas" }, - { 0xaa727c5d , 0x4000, "STRATOS telmon24" }, - { 0xcda92497 , 0x4000, "STRATOS telmon24 fr" }, - - { 0x32f0d1ef , 0x4000, "Scrap Einstein" }, - { 0xec134953 , 0x2000, "Einstein" }, - - { 0x5c3b5bb5, 0x800, "BAD DUMP? Galaxy char" }, - { 0x365f3e24, 0x1000, "Galaxy" }, - { 0x5dc5a100, 0x1000, "Galaxy" }, - - { 0xfae922cb, 0x20, "SORCERER address decoding prom" }, - { 0x4a7e1cdd, 0x400, "SORCERER character set" }, - { 0xac924f67, 0x800, "SORCERER monitor e000" }, - { 0xead1d0f6, 0x800, "SORCERER monitor e800" }, - { 0x1dd20d80, 0x800, "SORCERER basic c000" }, - { 0x1068a3f8, 0x800, "SORCERER basic c800" }, - { 0xe6332518, 0x800, "SORCERER basic d000" }, - { 0xa370cb19, 0x800, "SORCERER basic d800" }, - - { 0xe6ea96dc ,0x1000, "ZRT80" }, - { 0x4dbdc60f ,0x800, "ZRT80 char" }, - - { 0x44a347d9 ,0x4000, "PK-01 Lviv" }, - { 0x551622f5 ,0x4000, "PK-01 Lviv (alternate)" }, - { 0xf171c282 ,0x4000, "PK-01 Lviv (prototype)" }, - -/* Palm OS PDA *****************************************************************/ - /* some of this roms may be modified */ - /* most of them are probably hacked to turn off flash support */ - /* only USR Pilot and Palm Pilot have ROMS */ - /* the rest have flash memory, which can be mmodified by user */ - - { 0x82030062 , 0x080000, "USR Pilot 1000/5000 OS v1.0" }, - { 0x6ed137b1 , 0x080000, "USR Pilot 1000/5000 OS v1.0.3 (german)" }, - { 0xbaa5b36a , 0x100000, "Palm Pilot Professional OS v2.0 Pro" }, - { 0x40ea8baa , 0x100000, "Palm Pilot Professional OS v2.0 Pro (modified)" }, - { 0x0c6f533e , 0x0ea000, "Palm Pilot Professional OS v2.0.2+ Pro (debug)" }, - { 0x4f31e1c9 , 0x119000, "Palm III OS v3.0" }, - { 0xfaaafc62 , 0x130000, "Palm III OS v3.0 (french)" }, - { 0x8a2f7468 , 0x130000, "Palm III OS v3.0 (german)" }, - { 0x60cb2ae7 , 0x130000, "Palm III OS v3.0 (spanish)" }, - { 0xa0b059f9 , 0x119000, "Palm III OS v3.0 (debug)" }, - { 0x467ff0de , 0x148000, "Palm III OS v3.3" }, - { 0x785e771b , 0x150000, "Palm III OS v3.3 (german) (ID 00X00XX00XXX-C)" }, - { 0xedb269d8 , 0x180000, "Palm III OS v3.5" }, - { 0x50961ee6 , 0x180000, "Palm III OS v3.5 (debug)" }, - { 0x280f1090 , 0x198000, "Palm III OS v4.0" }, - { 0x70bedb7e , 0x180000, "Palm IIIc OS v3.5" }, - { 0x38a191e2 , 0x180000, "Palm IIIc OS v3.5 (debug)" }, - { 0x922dd0fa , 0x180000, "Palm IIIc OS v3.5 beta" }, - { 0xefb05a31 , 0x198000, "Palm IIIc OS v4.0" }, - { 0xc3ea0bb7 , 0x258000, "Palm IIIc OS v4.0 (EFIGS)" }, - { 0xd5e03642 , 0x278000, "Palm IIIc OS v4.0 (EFIGS) (debug)" }, - { 0x695f379e , 0x258000, "Palm IIIc OS v4.0 (EFIGS) (alt)" }, - { 0x006a977f , 0x268000, "Palm IIIc OS v4.0 (japanese)" }, - { 0x53cb10a2 , 0x280000, "Palm IIIc OS v4.0 (japanese) (debug)" }, - { 0x5a64ef2b , 0x128000, "Palm IIIe/IIIx/V OS v3.1" }, - { 0xb1db61b8 , 0x128000, "Palm IIIe/IIIx/V OS v3.1 E31" }, - { 0xdc560ed1 , 0x138000, "Palm IIIx/V/Vx OS v3.3" }, - { 0x0011f920 , 0x140000, "Palm IIIx/V/Vx OS v3.3 (ID 00X000X00000-R)" }, - { 0x08ee205e , 0x150000, "Palm IIIx/V/Vx OS v3.3 (german) (ID 00X000X00000-R)" }, - { 0x20c79493 , 0x140000, "Palm IIIx/V/Vx OS v3.3 (ID 10EV19Q96BTW-V)" }, - { 0x30da34a1 , 0x148000, "Palm IIIx/V/Vx OS v3.3 (debug)" }, - { 0xb9fdb1ce , 0x178000, "Palm IIIx/V/Vx OS v3.5" }, - { 0x85412370 , 0x180000, "Palm IIIx/V/Vx OS v3.5 (alt)" }, - { 0xc8ddb563 , 0x180000, "Palm IIIx/V/Vx OS v3.5 (german)" }, - { 0x1f0f5841 , 0x188000, "Palm IIIx/V/Vx OS v3.5 (ID 10HA14M07KHB-J)" }, - { 0x4c700386 , 0x178000, "Palm IIIx/V/Vx OS v3.5 (debug)" }, - { 0x9531c50c , 0x118000, "Palm IIIx/V/Vx OS v3.5.2 (modified)" }, - { 0xcfbdef34 , 0x198000, "Palm IIIx/V/Vx OS v4.0" }, - { 0xb7b0eb15 , 0x258000, "Palm IIIx/V/Vx OS v4.0 (EFIGS)" }, - { 0xe06cfa55 , 0x1b8000, "Palm V/Vx OS v4.0 (debug)" }, - { 0x0c53d604 , 0x238000, "Palm V/Vx OS v4.0 (full) (debug)" }, - { 0x39f24dc0 , 0x358000, "Palm V/Vx OS v4.0 (EFIGS)" }, - { 0x80b78ab7 , 0x338000, "Palm V/Vx OS v4.0 (EFIGS) (debug)" }, - { 0x0fe71ec1 , 0x350000, "Palm V/Vx OS v4.0 (japanese) (full) (debug)" }, - { 0x29b5d84e , 0x1F0000, "Palm VII OS v3.2" }, - { 0x9bd7c6fe , 0x178000, "Palm m100 OS v3.5.1" }, - { 0xdd93b80f , 0x1f0000, "Palm m505 OS v4.0" }, - { 0xd1f37309 , 0x210000, "Palm m505 OS v4.0 (debug)" }, - - { 0xb47295a8 , 0x200000, "Handspring Visor OS v3.1" }, - { 0x93cded38 , 0x200000, "Handspring Visor OS v3.1H2" }, - { 0xc9e55271 , 0x200000, "Handspring Visor Platinum/Prism/Edge OS v3.5.2H1.1" }, - - { 0x482c4e3b , 0x190000, "Sony CLIE PEG-S300 OS v3.5.0" }, - { 0x361ba712 , 0x190000, "Sony CLIE PEG-S300 OS v3.5.1" }, - { 0xd39dc1e2 , 0x3b0000, "Sony CLIE PEG-S300 OS v3.5.1 (japanese)" }, - { 0x566d18ec , 0x3b0000, "Sony CLIE PEG-S500c OS v3.5.1 (japanese)" }, - - { 0x382e2432 , 0x1c0000, "TRG Pro OS v3.5.3 (16.07.2001)" }, - { 0x7aa24b38 , 0x1c0000, "TRG Pro OS v3.5.3 (21.06.2000)" }, - { 0xfab125a9 , 0x1f8000, "HandEra 330 OS v3.5.3" }, - - { 0xd0bdba79 , 0x1f8000, "IBM WorkPad OS v3.1 (japanese)" }, - - -/* Hewlett Packard Calculators *************************************************/ - { 0x3f2d9469 , 0x400000, "Hewlett Packard HP-39G (1 nibble stored in byte)" }, - { 0xa87696c7 , 0x40000 , "Hewlett Packard HP-48S ver. a" }, - { 0x034f6ce4 , 0x40000 , "Hewlett Packard HP-48S ver. b" }, - { 0xa9a0279d , 0x40000 , "Hewlett Packard HP-48S ver. c" }, - { 0x6e71244e , 0x40000 , "Hewlett Packard HP-48S ver. d" }, - { 0x704ffa08 , 0x40000 , "Hewlett Packard HP-48S ver. e" }, - { 0x1a6378ef , 0x40000 , "Hewlett Packard HP-48S ver. j" }, - { 0xbdd5d2ee , 0x80000 , "Hewlett Packard HP-48G ver. k" }, - { 0x70958e6b , 0x80000 , "Hewlett Packard HP-48G ver. l" }, - { 0xe21a09e4 , 0x80000 , "Hewlett Packard HP-48G ver. m" }, - { 0x27f90428 , 0x80000 , "Hewlett Packard HP-48G ver. p" }, - { 0x00ee1a62 , 0x80000 , "Hewlett Packard HP-48G ver. r" }, - - { 0xd4f1390b , 0x40000 , "SAVE Hewlett Packard HP-48S ver. e (diffs only in hardware window)" }, - - { 0x5619ccaf , 0x40000 , "BAD DUMP Hewlett Packard HP-48S ver. e" }, - { 0xd6bb68c5 , 0x80000 , "BAD DUMP Hewlett Packard HP-48G ver. r" }, - - - { 0xa2a56502 , 0x400, "6530-003 KIM1 1800" }, - { 0x2b08e923 , 0x400, "6530-002 KIM1 1c00" }, - - { 0x075b0bbd , 0x2000, "SYM1 basic ???" }, - { 0x7a4b1e12 , 0x1000, "SYM1 ???" }, - - { 0x0878b399 , 0x1000, "AIM65" }, - { 0xd7b42d2a , 0x1000, "AIM65" }, - { 0x36a61f39 , 0x1000, "AIM65" }, - { 0xd01914b0 , 0x1000, "AIM65" }, - { 0x90e44afe , 0x1000, "AIM65" }, - - { 0xa2a56502 , 0x400, "MEKD" }, - - { 0x9d3caa92 , 0x800, "UK101" }, - { 0x0d011242 , 0x800, "UK101" }, - { 0x667223e8 , 0x800, "UK101" }, - { 0x04ac5822 , 0x800, "UK101" }, - { 0xfce2c84a , 0x800, "UK101" }, - { 0xf4f5dec0 , 0x800, "SUPERBRD" }, - { 0x0039ef6a , 0x800, "SUPERBRD/UK101" }, - { 0xca25f8c1 , 0x800, "SUPERBRD" }, - { 0x8ee6030e , 0x800, "SUPERBRD" }, - { 0xe5b7028d , 0x800, "SUPERBRD" }, - { 0xec94afe7 , 0x800, "SUPERBRD" }, - - { 0x278f7bf3 , 0x800, "7916E C48091 82c210-1 Chess Champion MK1 (2716 compatible)" }, - { 0x4f28c443 , 0x400, "MOS6530 024 1879 Chess Champion MK2" }, - { 0x6f10991b , 0x1000, "MOS6332 005 2179 Chess Champion MK2 (not full 2732 compatible)" }, - { 0x9ea46ed3 , 0x1000, "Signetics c19081e Chess Champion MK3 (not full 2732 compatible)" }, - { 0x52741e0b , 0x1000, "Signetics c19082 Chess Champion MK3 (not full 2732 compatible)" }, - - { 0x2bf4b1a8 , 0x80000, "Epoxy DIL32 Comquest Plus German (dumped as 278001, gave 2 identical halfes" }, - - /* centronics based devices */ - { 0x62ba054e, 0x10000, "Printer Star LC10 nx1p 2.1" }, - { 0x191384a6, 0x10000, "Printer Star LC10 Color nx1p 1.6 c l" }, - -#if 0 - { 0x , 0x000, "" }, -#endif - -}; diff --git a/mess/tools/messroms/showchar.c b/mess/tools/messroms/showchar.c deleted file mode 100644 index 95f8ee43d..000000000 --- a/mess/tools/messroms/showchar.c +++ /dev/null @@ -1,107 +0,0 @@ -#include -#include -#include -#include -#include -/* -simple dos utility to show the complete character set -of graphics chips - -memory modell large required -*/ - -#define CURRENT_MODE *(char*)MK_FP(0x40, 0x49) -#define COLUMNS *(short*)MK_FP(0x40, 0x4a) -#define PORT *(short*)MK_FP(0x40, 0x63) - -// use this to show all 16 character lines of the tandy1000hx -// pc junior graphics adapter -#define TANDY1000HX - -int main(void) -{ - char screen[25][40][2]; - int x,y,c,i; - - // cprintf bells - - textmode(BW40); - cprintf("this screen should work on all\x0d\x0a" - "\"generic\" msdos compatibles\x0d\x0a"); -#ifdef TANDY1000HX - cprintf("!!next screen might not work on all\x0d\x0a" - "compatibles\x0d\x0a"); -#endif - gettext(1,1,40,25,screen); - for (y=5,c=0; y<25; y++) { - for (x=0; x<40; x++) { - if (c<256 && x<39 ) { - screen[y][x][0]=c; - if (x%3==2) c++; - } else - screen[y][x][0]=' '; -// screen[y][x][1]=0x7; - } - } - puttext(1,1,40,25,screen); - getch(); - -#ifdef TANDY1000HX - textmode(BW40); - gettext(1,1,40,25,screen); - for (y=0,c=0; y<13; y++) { - for (x=0; x<40; x++) { - if (c<256) { - screen[y][x][0]=c; - if (x%2==1) c++; - } else - screen[y][x][0]=' '; -// screen[y][x][1]=0x7; - } - } - puttext(1,1,40,25,screen); - -/* - tandy 1000 hx tv mode (8 lines high chars) - -$13 = {crtc = 0x89317a0, mode_control = 40 '(', color_select = 48 '0', - status = 0 '\000', full_refresh = 0, reg = {index = 0 '\000', - data = "\000\017", '\000' , "\001\002\003\004\005\006\a\b\t\n\013\f\r\016\017"}, bank = 63 '?', pc_blink = 64, pc_framecnt = 28696, - displayram = 0x40be1000 "B\aI\aO\aS\a \aR\aO\aM\a \av\ae\ar\as\ai\ao\an\a \a0\a2\a.\a0\a0\a.\a0\a0\a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \aC\ao\am\ap\aa\at\ai\ab\ai\al\ai\at\ay\a \aS\ao\af\at\aw\aa\ar\ae\a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \aC\ao\ap\ay\ar\ai\ag\ah\at\a \a(\aC\a)\a \a1\a9\a8\a4\a,\a1\a"...} - - - tandy 1000 hx monochrome mode (9? line high chars) -$14 = {crtc = 0x89317a0, mode_control = 41 ')', color_select = 48 '0', - status = 0 '\000', full_refresh = 0, reg = {index = 0 '\000', - data = "\000\017", '\000' , "\a\a\a\a\a\a\a\b\017\017\017\017\017\017\017"}, bank = 63 '?', pc_blink = 64, pc_framecnt = 39181, - displayram = 0x40be1000 "B\aI\aO\aS\a \aR\aO\aM\a \av\ae\ar\as\ai\ao\an\a \a0\a2\a.\a0\a0\a.\a0\a0\a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \aC\ao\am\ap\aa\at\ai\ab\ai\al\ai\at\ay\a \aS\ao\af\at\aw\aa\a"...} - - -/* - 0x3d4 index - 0x3d5 data - 00 h total (56) - 01 h display (40) - 02 h sync (45) - 03 h sync width (8) - 04 v total (31) - 05 v 0..3 total adjust (6) - 06 v rows 0..6 (25) - 07 v sync in rows 0..6 (28) - 09 lines in raw -1 (7) -*/ - assert(PORT==0x3d4); - outp(PORT, 4); outp(PORT+1,15); - outp(PORT, 5); outp(PORT+1,14); - outp(PORT, 6); outp(PORT+1,13); - outp(PORT, 7); outp(PORT+1,14); - outp(PORT, 9); outp(PORT+1,15); - - - getch(); -#endif - textmode(BW40); - - - return 0; -} diff --git a/mess/tools/messroms/showchar.txt b/mess/tools/messroms/showchar.txt deleted file mode 100644 index b8826db1a..000000000 --- a/mess/tools/messroms/showchar.txt +++ /dev/null @@ -1,9 +0,0 @@ -Short MSDOS utility to display IBM PC/XT/AT/PCjr. character set, by PeT - -TO BE USED ONLY IN REAL DOS MODE!!! - -The character generator ROM is not easily dumpable without an EPROM reader: -compile and run this program then make a snapshot of the resulting screens... - -then mail the images to a MESSDEV member! ;) - diff --git a/mess/tools/messroms/svision.txt b/mess/tools/messroms/svision.txt deleted file mode 100644 index b03af959c..000000000 --- a/mess/tools/messroms/svision.txt +++ /dev/null @@ -1,52 +0,0 @@ -supervision -watara - -cartridge connector (look at the cartridge) - /oe or /ce 1 40 +5v (picture side) - a0 2 39 nc - a1 3 38 nc - a2 4 37 nc - a3 5 36 nc - a4 6 35 nc in crystalball - a5 7 34 d0 - a6 8 33 d1 - a7 9 32 d2 - a8 10 31 d3 - a9 11 30 d4 - a10 12 29 d5 - a11 13 28 d6 - a12 14 27 d7 - a13 15 26 nc - a14 16 25 nc - a15 17 24 nc - a16?18 23 nc - a17?19 22 gnd connected with 21 in crystalball - a18?20 21 (shorter pin in crystalball) - -27c4001 pinout - vpp 1 32 +5v - a16 2 31 a18 - a15 3 30 a17 - a12 4 29 a14 - a7 5 28 a13 - a6 6 27 a8 - a5 7 26 a9 - a4 8 25 a11 - a3 9 24 /oe - a2 10 23 a10 - a1 11 22 /ce - a0 12 21 d7 - d0 13 20 d6 - d1 14 19 d5 - d2 15 18 d4 - gnd 16 17 d3 - -building an adapter: -connect d0..d7,a0..a18,gnd,+5v,/oe - -oe connected to ce on eprommer side caused troubles with -my original eprommer software with delta hero. - -connecting oe to oe could have fixed this. -(my quick program switched both for short read cycles) - diff --git a/mess/tools/messroms/tc.txt b/mess/tools/messroms/tc.txt deleted file mode 100644 index 3af4887ed..000000000 --- a/mess/tools/messroms/tc.txt +++ /dev/null @@ -1,25 +0,0 @@ -TC531000 (128k x 8 rom) -TC571001 (128k x 8 eprom) -------------------------- - -major difference to standard pinout -/OE is used as A16! - - -(1M) 128k x 8 mask rom (TC531000) TC571001 EPROM - Vpp 1 +-v-+ 32 Vcc - OE/ 2 | | 31 PGM/ -A15 1 +-v-+ 28 Vdd A15 3 | | 30 nc -A12 2 | | 27 A14 A12 4 | | 29 A14 -A7 3 | | 26 A13 A7 5 | | 28 A13 -A6 4 | | 25 A8 A6 6 | | 27 A8 -A5 5 | | 24 A9 A5 7 | | 26 A9 -A4 6 | | 23 A11 A4 8 | | 25 A11 -A3 7 | | 22 A16 A3 9 | | 24 A16 -A2 8 | | 21 A10 A2 10 | | 23 A10 -A1 9 | | 20 CE/ A1 11 | | 22 CE/ -A0 10 | | 19 D7 A0 12 | | 21 D7 -D0 11 | | 18 D6 D0 13 | | 20 D6 -D1 12 | | 17 D5 D1 14 | | 19 D5 -D2 13 | | 16 D4 D2 15 | | 18 D4 -GND 14 +---+ 15 D3 GND 16 +---+ 17 D3 diff --git a/mess/tools/messtest/core.c b/mess/tools/messtest/core.c deleted file mode 100644 index 0cd30bffa..000000000 --- a/mess/tools/messtest/core.c +++ /dev/null @@ -1,515 +0,0 @@ -/********************************************************************* - - core.c - - MESS testing code - -*********************************************************************/ - -#include -#include -#include - -#ifdef WIN32 -#include -#include -#include "strconv.h" -#endif /* WIN32 */ - -#include "core.h" -#include "testmess.h" -#include "testimgt.h" -#include "osdepend.h" -#include "pool.h" -#include "pile.h" -#include "inputx.h" - -#define EOLN (CRLF == 1 ? "\r" : (CRLF == 2 ? "\n" : (CRLF == 3 ? "\r\n" : NULL))) - -/* ----------------------------------------------------------------------- */ - -typedef enum -{ - BLOBSTATE_INITIAL, - BLOBSTATE_AFTER_0, - BLOBSTATE_AFTER_STAR, - BLOBSTATE_HEX, - BLOBSTATE_SINGLEQUOTES, - BLOBSTATE_DOUBLEQUOTES -} blobparse_state_t; - -static const char *current_testcase_name; -static int is_failure; - - - -void error_report(const char *message) -{ - fprintf(stderr, "%s: %s\n", - current_testcase_name, - message); - is_failure = 1; -} - - - -void error_reportf(const char *fmt, ...) -{ - char buf[1024]; - va_list va; - - va_start(va, fmt); - vsnprintf(buf, sizeof(buf) / sizeof(buf[0]), fmt, va); - va_end(va); - - error_report(buf); -} - - - -void error_missingattribute(const char *attribute) -{ - error_reportf("Missing attribute '%s'\n", attribute); -} - - - -void error_outofmemory(void) -{ - error_reportf("Out of memory\n"); -} - - - -void error_invalidmemregion(const char *s) -{ - error_reportf("Invalid memory region '%s'\n", s); -} - - - -void error_baddevicetype(const char *s) -{ - error_reportf("Bad device type '%s'\n", s); -} - - - -void messtest_get_data(xml_data_node *node, mess_pile *pile) -{ - void *ptr; - int i = 0; - size_t j, size; - int found; - char c; - char quote_char; - blobparse_state_t blobstate = BLOBSTATE_INITIAL; - const char *s; - size_t len; - int multiple = 0; - - s = node->value ? node->value : ""; - len = strlen(s); - - while(i < len) - { - /* read next character */ - c = s[i++]; - - switch(blobstate) - { - case BLOBSTATE_INITIAL: - if ((c == '\0') || isspace(c)) - { - /* ignore EOF and whitespace */ - } - else if (c == '0') - { - blobstate = BLOBSTATE_AFTER_0; - } - else if (c == '*') - { - blobstate = BLOBSTATE_AFTER_STAR; - multiple = (size_t) -1; - } - else if (c == '\'') - { - blobstate = BLOBSTATE_SINGLEQUOTES; - } - else if (c == '\"') - { - blobstate = BLOBSTATE_DOUBLEQUOTES; - } - else - goto parseerror; - break; - - case BLOBSTATE_AFTER_0: - if (tolower(c) == 'x') - { - blobstate = BLOBSTATE_HEX; - } - else - goto parseerror; - break; - - case BLOBSTATE_AFTER_STAR: - if (isdigit(c)) - { - /* add this digit to the multiple */ - if (multiple == (size_t) -1) - multiple = 0; - else - multiple *= 10; - multiple += c - '0'; - } - else if ((c != '\0') && isspace(c) && (multiple == (size_t) -1)) - { - /* ignore whitespace */ - } - else - { - /* do the multiplication */ - size = pile_size(pile); - ptr = pile_detach(pile); - - for (j = 0; j < multiple; j++) - pile_write(pile, ptr, size); - - free(ptr); - blobstate = BLOBSTATE_INITIAL; - } - break; - - case BLOBSTATE_HEX: - if ((c == '\0') || isspace(c)) - { - blobstate = BLOBSTATE_INITIAL; - } - else - { - found = FALSE; - i--; - while(((i + 2) <= len) && isxdigit(s[i]) && isxdigit(s[i+1])) - { - c = (hexdigit(s[i]) << 4) | hexdigit(s[i+1]); - pile_putc(pile, c); - i += 2; - found = TRUE; - } - if (!found) - goto parseerror; - } - break; - - case BLOBSTATE_SINGLEQUOTES: - case BLOBSTATE_DOUBLEQUOTES: - quote_char = blobstate == BLOBSTATE_SINGLEQUOTES ? '\'' : '\"'; - if (c == quote_char) - { - blobstate = BLOBSTATE_INITIAL; - } - else if (c != '\0') - { - pile_putc(pile, c); - } - else - goto parseerror; - break; - } - } - return; - -parseerror: - error_report("Parse Error"); - return; -} - - - -/* this external entity handler allows us to do things like this: - * - * - * ]> - */ -static int external_entity_handler(XML_Parser parser, - const XML_Char *context, - const XML_Char *base, - const XML_Char *systemId, - const XML_Char *publicId) -{ - XML_Parser extparser = NULL; - int rc = 0, i; - char buf[256]; - static const char *mamekey_prefix = "mamekey_"; - input_code c; - - buf[0] = '\0'; - - /* only supportr our own schema */ - if (strcmp(systemId, "http://www.mess.org/messtest/")) - goto done; - - extparser = XML_ExternalEntityParserCreate(parser, context, "us-ascii"); - if (!extparser) - goto done; - - /* does this use the 'mamekey' prefix? */ - if ((strlen(context) > strlen(mamekey_prefix)) && !memcmp(context, - mamekey_prefix, strlen(mamekey_prefix))) - { - context += strlen(mamekey_prefix); - c = 0; - - /* this is interim until we can come up with a real solution */ - snprintf(buf, sizeof(buf) / sizeof(buf[0]), "KEYCODE_%s", context); - for (i = 0; buf[i]; i++) - buf[i] = toupper(buf[i]); - - code_init(NULL); - c = token_to_code(buf); - - if (c != CODE_NONE) - { - snprintf(buf, sizeof(buf) / sizeof(buf[0]), "<%s%s>&#%d;", - mamekey_prefix, context, - UCHAR_MAMEKEY_BEGIN + c, - mamekey_prefix, context); - - if (XML_Parse(extparser, buf, strlen(buf), 0) == XML_STATUS_ERROR) - goto done; - } - } - else if (!strcmp(context, "eoln")) - { - snprintf(buf, sizeof(buf) / sizeof(buf[0]), "%s", EOLN); - - if (XML_Parse(extparser, buf, strlen(buf), 0) == XML_STATUS_ERROR) - goto done; - } - - if (XML_Parse(extparser, NULL, 0, 1) == XML_STATUS_ERROR) - goto done; - - rc = 1; -done: - if (extparser) - XML_ParserFree(extparser); - return rc; -} - - - -static void parse_init(XML_Parser parser) -{ - XML_SetExternalEntityRefHandler(parser, external_entity_handler); -} - - - -static size_t parse_read(void *param, void *buffer, size_t length) -{ - return fread(buffer, 1, length, (FILE *) param); -} - - - -static int parse_eof(void *param) -{ - return feof((FILE *) param); -} - - - -static void node_tests(xml_data_node *tests_node, int *test_count, int *failure_count) -{ - xml_data_node *child_node; - - for (child_node = tests_node->child; child_node; child_node = child_node->next) - { - if (!strcmp(child_node->name, "tests")) - { - node_tests(child_node, test_count, failure_count); - } - else if (!strcmp(child_node->name, "test")) - { - /* a MESS test */ - node_testmess(child_node); - - (*test_count)++; - if (is_failure) - (*failure_count)++; - } - else if (!strcmp(child_node->name, "imgtooltest")) - { - /* an Imgtool test */ - node_testimgtool(child_node); - - (*test_count)++; - if (is_failure) - (*failure_count)++; - } - } -} - - - -int messtest(const struct messtest_options *opts, int *test_count, int *failure_count) -{ - char saved_directory[1024]; - FILE *file; - int result = -1; - char *script_directory; - xml_parse_options parse_options; - xml_parse_error parse_error; - xml_data_node *root_node; - xml_data_node *tests_node; - mess_pile pile; - const char *xml; - size_t sz; - char buf[256]; - - *test_count = 0; - *failure_count = 0; - - pile_init(&pile); - - /* open the script file */ - file = fopen(opts->script_filename, "r"); - if (!file) - { - fprintf(stderr, "%s: Cannot open file\n", opts->script_filename); - goto done; - } - - /* read the file */ - while(!feof(file)) - { - sz = fread(buf, 1, sizeof(buf), file); - pile_write(&pile, buf, sz); - } - pile_writebyte(&pile, '\0', 1); - xml = (const char *) pile_getptr(&pile); - - /* save the current working directory, and change to the test directory */ - saved_directory[0] = '\0'; - if (!opts->preserve_directory) - { - script_directory = osd_dirname(opts->script_filename); - if (script_directory) - { - osd_getcurdir(saved_directory, sizeof(saved_directory) / sizeof(saved_directory[0])); - osd_setcurdir(script_directory); - free(script_directory); - } - } - - /* set up parse options */ - memset(&parse_options, 0, sizeof(parse_options)); - parse_options.init_parser = parse_init; - parse_options.flags = XML_PARSE_FLAG_WHITESPACE_SIGNIFICANT; - parse_options.error = &parse_error; - - /* do the parse */ - root_node = xml_string_read(xml, &parse_options); - if (!root_node) - { - fprintf(stderr, "%s:%d:%d: %s\n", - opts->script_filename, - parse_error.error_line, - parse_error.error_column, - parse_error.error_message); - goto done; - } - - /* find the tests node */ - tests_node = xml_get_sibling(root_node->child, "tests"); - if (!tests_node) - goto done; - - node_tests(tests_node, test_count, failure_count); - result = 0; - -done: - /* restore the directory */ - if (saved_directory[0]) - osd_setcurdir(saved_directory); - pile_delete(&pile); - return result; -} - - - -void report_message(messtest_messagetype_t msgtype, const char *fmt, ...) -{ - char buf[1024]; - va_list va; - const char *prefix1; - const char *prefix2; - int column_filename = 15; - int column_tag = 3; - int column_message = 80 - column_filename - column_tag; - int last_space, base, i; - - va_start(va, fmt); - vsnprintf(buf, sizeof(buf) / sizeof(buf[0]), fmt, va); - va_end(va); - - prefix1 = current_testcase_name; - prefix2 = msgtype ? "***" : "..."; - - base = 0; - last_space = -1; - i = 0; - do - { - if ((buf[i] == '\0') || (i - base > column_message)) - { - if (buf[i] && (last_space > 0)) - buf[last_space] = '\0'; - else - last_space = i; - printf("%-*s %-*s %s\n", - column_filename, prefix1, - column_tag, prefix2, - &buf[base]); - - base = last_space + 1; - last_space = -1; - prefix1 = ""; - prefix2 = ""; - } - else if (isspace(buf[i])) - { - last_space = i; - } - } - while(buf[i++]); - - /* did we abort? */ -/* if ((msgtype == MSG_FAILURE) && (state != STATE_ABORTED)) - { - state = STATE_ABORTED; - final_time = timer_get_time(); - if (final_time > 0.0) - dump_screenshot(); - } -*/ -} - - - -void report_testcase_begin(const char *testcase_name) -{ - current_testcase_name = testcase_name; - is_failure = FALSE; -} - - - -void report_testcase_ran(int failure) -{ - is_failure = failure; -} diff --git a/mess/tools/messtest/main.c b/mess/tools/messtest/main.c deleted file mode 100644 index ebef632a6..000000000 --- a/mess/tools/messtest/main.c +++ /dev/null @@ -1,181 +0,0 @@ -/********************************************************************* - - main.c - - MESS testing main module - -*********************************************************************/ - -#include - -#include "core.h" -#include "hashfile.h" -#include "options.h" -#include "../imgtool/imgtool.h" - -#ifdef WIN32 -#include -#include "windows/glob.h" -#endif /* WIN32 */ - -extern int mame_validitychecks(int game); - -static int test_count, failure_count; - -static const options_entry messtest_opts[] = -{ - { "", NULL, OPTION_REPEATS, NULL }, - { "" }, - { "dumpscreenshots;ds", "0", OPTION_BOOLEAN, "always dump screenshots" }, - { "preservedir;pd", "0", OPTION_BOOLEAN, "preserve current directory" }, - { "rdtsc", "0", OPTION_BOOLEAN, "use the RDTSC instruction for timing; faster but may result in uneven performance" }, - { "priority", "0", 0, "thread priority for the main game thread; range from -15 to 1" }, - - // file and directory options - { NULL, NULL, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" }, - { "rompath;rp;biospath;bp", "roms", 0, "path to ROMsets and hard disk images" }, -#ifdef MESS - { "hashpath;hash_directory;hash","hash", 0, "path to hash files" }, -#endif /* MESS */ - { "samplepath;sp", "samples", 0, "path to samplesets" }, - { "artpath;artwork_directory", "artwork", 0, "path to artwork files" }, - { "ctrlrpath;ctrlr_directory", "ctrlr", 0, "path to controller definitions" }, - { "inipath", ".;ini", 0, "path to ini files" }, - { "fontpath", ".", 0, "path to font files" }, - - { NULL, NULL, OPTION_HEADER, "CORE OUTPUT DIRECTORY OPTIONS" }, - { "cfg_directory", "cfg", 0, "directory to save configurations" }, - { "nvram_directory", "nvram", 0, "directory to save nvram contents" }, - { "memcard_directory", "memcard", 0, "directory to save memory card contents" }, - { "input_directory", "inp", 0, "directory to save input device logs" }, - { "state_directory", "sta", 0, "directory to save states" }, - { "snapshot_directory", "snap", 0, "directory to save screenshots" }, - { "diff_directory", "diff", 0, "directory to save hard drive image difference files" }, - { "comment_directory", "comments", 0, "directory to save debugger comments" }, - - { NULL, NULL, OPTION_HEADER, "CORE FILENAME OPTIONS" }, - { "cheat_file", "cheat.dat", 0, "cheat filename" }, - - { NULL } -}; - - - -/************************************* - * - * Main and argument parsing/handling - * - *************************************/ - -static void handle_arg(const char *arg) -{ - int this_test_count; - int this_failure_count; - struct messtest_options opts; - - /* setup options */ - memset(&opts, 0, sizeof(opts)); - opts.script_filename = arg; - if (options_get_bool("preservedir")) - opts.preserve_directory = 1; - if (options_get_bool("dumpscreenshots")) - opts.dump_screenshots = 1; - - if (messtest(&opts, &this_test_count, &this_failure_count)) - exit(-1); - - test_count += this_test_count; - failure_count += this_failure_count; -} - - - -#ifdef WIN32 -static void win_expand_wildcards(int *argc, char **argv[]) -{ - int i; - glob_t g; - - memset(&g, 0, sizeof(g)); - - for (i = 0; i < *argc; i++) - glob((*argv)[i], (g.gl_pathc > 0) ? GLOB_APPEND|GLOB_NOCHECK : GLOB_NOCHECK, NULL, &g); - - *argc = g.gl_pathc; - *argv = g.gl_pathv; -} -#endif /* WIN32 */ - - - -#ifdef WIN32 -int CLIB_DECL utf8_main(int argc, char *argv[]) -#else -int CLIB_DECL main(int argc, char *argv[]) -#endif -{ - int result = -1; - clock_t begin_time; - double elapsed_time; - -#ifdef WIN32 - /* expand wildcards so '*' can be used; this is not UNIX */ - win_expand_wildcards(&argc, &argv); -#else - { - /* this is for XMESS */ - extern const char *cheatfile; - extern const char *db_filename; - - cheatfile = db_filename = NULL; - } -#endif /* WIN32 */ - - test_count = 0; - failure_count = 0; - - /* since the cpuintrf and sndintrf structures are filled dynamically now, we - * have to init first */ - cpuintrf_init(NULL); - sndintrf_init(NULL); - - /* register options */ - options_init(NULL); - options_free_entries(); - options_add_entries(messtest_opts); - options_set_option_callback(OPTION_UNADORNED(0), handle_arg); - - /* run MAME's validity checks; if these fail cop out now */ - /* NPW 16-Sep-2006 - commenting this out because this cannot be run outside of MAME */ - //if (mame_validitychecks(-1)) - // goto done; - /* run Imgtool's validity checks; if these fail cop out now */ - if (imgtool_validitychecks()) - goto done; - - begin_time = clock(); - - /* parse the commandline */ - if (options_parse_command_line(argc, argv)) - { - fprintf(stderr, "Error while parsing cmdline\n"); - goto done; - } - - if (test_count > 0) - { - elapsed_time = ((double) (clock() - begin_time)) / CLOCKS_PER_SEC; - - fprintf(stderr, "Tests complete; %i test(s), %i failure(s), elapsed time %.2f\n", - test_count, failure_count, elapsed_time); - } - else - { - fprintf(stderr, "Usage: %s [test1] [test2]...\n", argv[0]); - } - result = failure_count; - -done: - return result; -} - diff --git a/mess/tools/mkhdimg/mkhdimg.c b/mess/tools/mkhdimg/mkhdimg.c deleted file mode 100644 index 5c785d723..000000000 --- a/mess/tools/mkhdimg/mkhdimg.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - - I don't know who originally wrote this so I cannot give the proper credit. - I have kept the original source in the archive for referance. - The modifications I have made are released into the Public Domain. - This file was modified to support variable hard disk sizes in M.E.S.S. v0.37b1 - and works as of that version. The Western Digital 1004A that is emulated in - M.E.S.S. is limited to 1024 Cylinders and 16 heads. The sector size is limited - to 512 bytes as well as the sectors per track being limited to 17, this is - also due to the WD1004A's limitations. - - Randy Rains, AKA Mad Hatchet April, 21, 2000 - -*/ - -#include -#include -#include -#include "osdepend.h" -#include "utils.h" - -#define SECTORS 17 -#define MAGIC 0xaa55 -#define ECC 11 -#define CONTROL 5 -#define DIPSWITCH 0xff - -#define SECLEN 512 -static void acerr(void); /* command line argument error */ -static void serr(void); /* size error */ - -int CLIB_DECL main(int ac, char **av) /* ac == Argument Count? av == Argument Variable? */ -{ -FILE *img; -unsigned char buffer[SECLEN]; -long TOTALBYTES; -int c, h, s, CYLINDERS, HEADS; - - if (ac < 3) /* check number of command line options */ - { - acerr(); - return 1; - } - CYLINDERS = atoi(av[2]); /* make sure cylinders does not exceed 1024 */ - if (CYLINDERS > 1024) - - { - serr(); - return 1; - } - - HEADS = atoi(av[3]); /* make sure heads does not exceed 16 */ - if (HEADS > 16) - { - serr(); - return 1; - } - - - av[1]=strcat(av[1],".img"); - img = fopen(av[1], "wb"); - - - TOTALBYTES = (CYLINDERS*HEADS*SECTORS*512)+512; - - fprintf(stderr, "Creating file named %s, of %ld bytes,\n",av[1],TOTALBYTES); - fprintf(stderr, "Using %d cylinders, %d heads, %d sectors.\n",CYLINDERS,HEADS,SECTORS); - - memset(buffer, 0, 512); - - /* fill in the drive geometry information */ - buffer[0x1ad] = CYLINDERS & 0xff; /* cylinders */ - buffer[0x1ae] = (CYLINDERS >> 8) & 3; - buffer[0x1af] = HEADS; /* heads */ - buffer[0x1b0] = (CYLINDERS+1) & 0xff; /* write precompensation */ - buffer[0x1b1] = ((CYLINDERS+1) >> 8) & 3; - buffer[0x1b2] = (CYLINDERS+1) & 0xff; /* reduced write current */ - buffer[0x1b3] = ((CYLINDERS+1) >> 8) & 3; - buffer[0x1b4] = ECC; /* ECC length */ - buffer[0x1b5] = CONTROL; /* control (step rate) */ - buffer[0x1b6] = CYLINDERS & 0xff; /* parking cylinder */ - buffer[0x1b7] = (CYLINDERS >> 8) & 3; - buffer[0x1b8] = 0x00; /* no idea */ - buffer[0x1b9] = 0x00; - buffer[0x1ba] = 0x00; - buffer[0x1bb] = 0x00; - buffer[0x1bc] = 0x00; - buffer[0x1bd] = SECTORS; /* some non zero value */ - buffer[0x1fe] = MAGIC & 0xff; - buffer[0x1ff] = (MAGIC >> 8) & 0xff; - - - if (fwrite(buffer, 1, SECLEN, img) != SECLEN) { - fprintf(stderr, "failed to write MBR of %s\n", av[1]); - return 1; - } - - /* write F6 patterns throughout the image */ - memset(buffer, 0xf6, sizeof(buffer)); - - for (c = 0; c < CYLINDERS; c++) { - for (h = 0; h < HEADS; h++) { - printf("\rwriting cylinder %4d, head %2d", c, h); - fflush(stdout); - for (s = 0; s < SECTORS; s++) { - if (fwrite(buffer, 1, SECLEN, img) != SECLEN) { - fprintf(stderr, "failed to write C%d, H%d, S%d of %s\n", c, h, s, av[1]); - return 1; - } - } - } - } - - fclose(img); - - return 0; - -} - void acerr(void) -{ - - fprintf(stderr, "usage: mhimg filename CYLINDERS HEADS\n"); - fprintf(stderr, "used to create an empty hard disk image for use with "); - fprintf(stderr, "MESS' PC-XT emulation.\n"); - fprintf(stderr, "size will equal (CYLINDERS*HEADS*17*512)+512, bytes.\n"); - fprintf(stderr, "CYLINDERS must be in the range of 0 to 1024.\n"); - fprintf(stderr, "HEADS must be in the range of 0 to 16.\n"); - fprintf(stderr, "DO NOT include a file extension in the filename!(.img)\n"); -} - -void serr(void) -{ - fprintf(stderr, "CYLINDERS cannot exceed 1024 and HEADS cannot exceed 16!\n"); -} diff --git a/mess/tools/mkimage/mkimage.c b/mess/tools/mkimage/mkimage.c deleted file mode 100644 index bc38aa28b..000000000 --- a/mess/tools/mkimage/mkimage.c +++ /dev/null @@ -1,145 +0,0 @@ -/***************************************************************************** - * - * mkimage.c - * Make CP/M image file(s) for different formats - * This is intended to be used with (and uses) M.E.S.S. - * Copyright (c) 1998 Juergen Buchmueller, all rights reserved. - * - * - This source code is released as freeware for non-commercial purposes. - * - You are free to use and redistribute this code in modified or - * unmodified form, provided you list me in the credits. - * - If you modify this source code, you must add a notice to each modified - * source file that it has been changed. If you're a nice person, you - * will clearly mark each change too. :) - * - If you wish to use this for commercial purposes, please contact me at - * pullmoll@t-online.de - * - The author of this copywritten work reserves the right to change the - * terms of its usage and license at any time, including retroactively - * - This entire notice must remain in the source code. - * - *****************************************************************************/ - -#include -#include -#include "utils.h" - -/* The Win32 port requires this constant for variable arg routines and main */ -#ifndef CLIB_DECL -#define CLIB_DECL -#endif - -typedef unsigned char byte; -typedef unsigned short word; - -typedef enum { - DEN_FM_LO = 0, - DEN_FM_HI, - DEN_MFM_LO, - DEN_MFM_HI -} DENSITY; - -typedef enum { - ORD_SIDES = 0, - ORD_CYLINDERS, - ORD_EAGLE -} ORDER; - -typedef struct { - word spt; /* sectors per track */ - byte bsh; /* block shift */ - byte blm; /* block mask */ - byte exm; /* extent mask */ - word dsm; /* drive storage max sector */ - word drm; /* directory max sector */ - byte al0; /* allocation bits low */ - byte al1; /* allocation bits high */ - word cks; /* check sectors (drm+1)/4 if media is removable */ - word off; /* offset (boot sectors) */ -} cpm_dpb; - -typedef struct { - const char *id; /* short name */ - const char *name; /* long name */ - const char *ref; /* id reference */ - DENSITY density; /* fdd density */ - word cylinders; /* number of cylinders */ - byte sides; /* number of sides */ - byte spt; /* sectors per track */ - word seclen; /* sector length */ - byte skew; /* sector skew */ - byte side1[32]; /* side number, sector numbers */ - byte side2[32]; /* side number, sector numbers */ - ORDER order; /* sector ordering */ - const char *label; /* disk label */ - cpm_dpb dpb; /* associated dpb */ -} dsk_fmt; - -#include "machine/cpm_disk.c" - -void usage(void) -{ - fprintf(stderr, "usage:\tmkimage [-option | format image.dsk]\n"); - fprintf(stderr, "\toption can be one of the following\n"); - fprintf(stderr, "-list\tlist available formats to stdout\n"); - fprintf(stderr, "\totherwise you must specify a format and an image name\n"); -} - -int CLIB_DECL main(int ac, char **av) -{ -int i, track, side, sector; -FILE *fd; -char buff[4096]; - if (ac < 2) - { - usage(); - exit(1); - } - if (!mame_stricmp(av[1], "-list")) - { - for (i = 0; formats[i].id; i++) - printf("%s\t%s\n", formats[i].id, formats[i].name); - return 0; - } - if (ac < 3) - { - usage(); - exit(1); - } - for (i = 0; formats[i].id; i++) - { - if (!mame_stricmp(formats[i].id, av[1])) - break; - } - if (!formats[i].id) - { - fprintf(stderr, "format '%s' not supported\n", av[1]); - exit(1); - } - fd = fopen(av[2], "wb"); - if (!fd) - { - fprintf(stderr, "can't create image '%s'\n", av[2]); - exit(1); - } - for (track = 0; track < formats[i].cylinders; track++) - { - for (side = 0; side < formats[i].sides; side++) - { - for (sector = 0; sector < formats[i].spt; sector++) - { - memset(buff, 0xe5, formats[i].seclen); - sprintf(buff + 0*32 +1, "%-4.4s TRACK %3d", formats[i].id, track); - sprintf(buff + 1*32 +1, "SIDE %3d HEAD ID %3d", side, (side) ? formats[i].side2[0] : formats[i].side1[0]); - sprintf(buff + 2*32 +1, "SECTOR %3d SECTOR ID %3d", sector, (side) ? formats[i].side2[sector+1] : formats[i].side1[sector+1]); - if (fwrite(buff, 1, formats[i].seclen, fd) != formats[i].seclen) - { - fprintf(stderr, "error writing to '%s'\n", av[2]); - exit(1); - } - } - } - } - fclose(fd); - return 0; -} - diff --git a/mess/vidhrdw/a7800.c b/mess/vidhrdw/a7800.c deleted file mode 100644 index 9714cc85c..000000000 --- a/mess/vidhrdw/a7800.c +++ /dev/null @@ -1,603 +0,0 @@ -/*************************************************************************** - - vidhrdw/a7800.c - - Routines to control the Atari 7800 video hardware - - TODO: - precise DMA cycle stealing - - 2003-06-23 ericball Kangaroo mode & 320 mode & other stuff - - 2002-05-14 kubecj vblank dma stop fix - - 2002-05-13 kubecj fixed 320C mode (displayed 2 pixels instead of one!) - noticed that Jinks uses 0x02-320D mode - implemented the mode - completely unsure if good! - implemented some Maria CTRL variables - - 2002-05-12 kubecj added cases for 0x01-160A, 0x05-160B as stated by docs - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/m6502/m6502.h" - -#include "includes/a7800.h" - - -#define TRIGGER_HSYNC 64717 - -#define READ_MEM(x) program_read_byte(x) - -/*static unsigned char *ROM; */ - -/********** Maria ***********/ - -#define DPPH 0x2c -#define DPPL 0x30 -#define CTRL 0x3c - -int maria_palette[8][4]; -int maria_write_mode; -int maria_scanline; -unsigned int maria_dll; -unsigned int maria_dl; -int maria_holey; -int maria_offset; -int maria_vblank; -int maria_dli; -int maria_dmaon; /* dma is enabled */ -int maria_dodma; /* doing dma right now */ -int maria_wsync; -int maria_backcolor; - -int maria_color_kill; -int maria_cwidth; -int maria_bcntl; -int maria_kangaroo; -int maria_rm; - -unsigned int maria_charbase; - -// 20030621 ericball define using logical operations -#define inc_hpos() { hpos = (hpos + 1) & 0x1FF; } -#define inc_hpos_by_2() { hpos = (hpos + 2) & 0x1FF; } - -/*************************************************************************** - - Start the video hardware emulation. - -***************************************************************************/ -VIDEO_START( a7800 ) -{ - int i; - - if (video_start_generic_bitmapped(machine)) - return 1; - - for(i=0; i<8; i++) - { - maria_palette[i][0]=0; - maria_palette[i][1]=0; - maria_palette[i][2]=0; - maria_palette[i][3]=0; - } - - maria_write_mode=0; - maria_scanline=0; - maria_dmaon=0; - maria_vblank=0x80; - maria_dll=0; - maria_dodma=0; - maria_wsync=0; - - maria_color_kill = 0; - maria_cwidth = 0; - maria_bcntl = 0; - maria_kangaroo = 0; - maria_rm = 0; - - return 0; -} - -/*************************************************************************** - - Stop the video hardware emulation. - -***************************************************************************/ - -static void maria_draw_scanline(void) -{ - unsigned int graph_adr,data_addr; - int width,hpos,pal,mode,ind; - unsigned int dl; - int x, d, c, i; - int ind_bytes; - UINT16 *scanline; - - /* set up scanline */ - scanline = BITMAP_ADDR16(tmpbitmap, maria_scanline, 0); - for (i = 0; i < 320; i++) - scanline[i] = maria_backcolor; - - /* Process this DLL entry */ - dl = maria_dl; - - /* Step through DL's */ - while ((READ_MEM(dl + 1) & 0x5F) != 0) - { - - /* Extended header */ - if (!(READ_MEM(dl+1) & 0x1F)) - { - graph_adr = (READ_MEM(dl+2) << 8) | READ_MEM(dl); - width = ((READ_MEM(dl+3) ^ 0xff) & 0x1F) + 1; - hpos = READ_MEM(dl+4)*2; - pal = READ_MEM(dl+3) >> 5; - maria_write_mode = (READ_MEM(dl+1) & 0x80) >> 5; - ind = READ_MEM(dl+1) & 0x20; - dl+=5; - } - /* Normal header */ - else - { - graph_adr = (READ_MEM(dl+2) << 8) | READ_MEM(dl); - width = ((READ_MEM(dl+1) ^ 0xff) & 0x1F) + 1; - hpos = READ_MEM(dl+3)*2; - pal = READ_MEM(dl+1) >> 5; - ind = 0x00; - dl+=4; - } - - mode = maria_rm | maria_write_mode; - - /*logerror("%x DL: ADR=%x width=%x hpos=%x pal=%x mode=%x ind=%x\n",maria_scanline,graph_adr,width,hpos,pal,mode,ind );*/ - - for (x=0; x 0) - { - ind_bytes--; - d = READ_MEM(data_addr++); - - switch (mode) - { - case 0x00: /* 160A (160x2) */ - case 0x01: /* 160A (160x2) */ - c = (d & 0xC0) >> 6; - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][c]; - scanline[hpos + 1] = maria_palette[pal][c]; - } - inc_hpos_by_2(); - - c = (d & 0x30) >> 4; - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][c]; - scanline[hpos + 1] = maria_palette[pal][c]; - } - inc_hpos_by_2(); - - c = (d & 0x0C) >> 2; - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][c]; - scanline[hpos + 1] = maria_palette[pal][c]; - } - inc_hpos_by_2(); - - c = (d & 0x03); - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][c]; - scanline[hpos + 1] = maria_palette[pal][c]; - } - inc_hpos_by_2(); - break; - - case 0x02: /* 320D used by Jinks! */ - c = pal & 0x04; - if ( d & 0xC0 || pal & 0x03 || maria_kangaroo ) - { - scanline[hpos + 0] = maria_palette[c][((d & 0x80) >> 6) | ((pal & 2) >> 1)]; - scanline[hpos + 1] = maria_palette[c][((d & 0x40) >> 5) | ((pal & 1) >> 0)]; - } - inc_hpos_by_2(); - - if ( d & 0x30 || pal & 0x03 || maria_kangaroo ) - { - scanline[hpos + 0] = maria_palette[c][((d & 0x20) >> 4) | ((pal & 2) >> 1)]; - scanline[hpos + 1] = maria_palette[c][((d & 0x10) >> 3) | ((pal & 1) >> 0)]; - } - inc_hpos_by_2(); - - if ( d & 0x0C || pal & 0x03 || maria_kangaroo ) - { - scanline[hpos + 0] = maria_palette[c][((d & 0x08) >> 2) | ((pal & 2) >> 1)]; - scanline[hpos + 1] = maria_palette[c][((d & 0x04) >> 1) | ((pal & 1) >> 0)]; - } - inc_hpos_by_2(); - - if ( d & 0x03 || pal & 0x03 || maria_kangaroo ) - { - scanline[hpos + 0] = maria_palette[c][((d & 0x02) << 0) | ((pal & 2) >> 1)]; - scanline[hpos + 1] = maria_palette[c][((d & 0x01) << 1) | ((pal & 1) >> 0)]; - } - inc_hpos_by_2(); - - break; - - case 0x03: /* MODE 320A */ - if (d & 0xC0 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][(d & 0x80) >> 6]; - scanline[hpos + 1] = maria_palette[pal][(d & 0x40) >> 5]; - } - inc_hpos_by_2(); - - if ( d & 0x30 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][(d & 0x20) >> 4]; - scanline[hpos + 1] = maria_palette[pal][(d & 0x10) >> 3]; - } - inc_hpos_by_2(); - - if (d & 0x0C || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][(d & 0x08) >> 2]; - scanline[hpos + 1] = maria_palette[pal][(d & 0x04) >> 1]; - } - inc_hpos_by_2(); - - if (d & 0x03 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][(d & 0x02)]; - scanline[hpos + 1] = maria_palette[pal][(d & 0x01) << 1]; - } - inc_hpos_by_2(); - break; - - case 0x04: /* 160B (160x4) */ - case 0x05: /* 160B (160x4) */ - c = (d & 0xC0) >> 6; - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c]; - scanline[hpos + 1] = maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c]; - } - inc_hpos_by_2(); - - c = (d & 0x30) >> 4; - if (c || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[(pal & 0x04) | (d & 0x03)][c]; - scanline[hpos + 1] = maria_palette[(pal & 0x04) | (d & 0x03)][c]; - } - inc_hpos_by_2(); - break; - - case 0x06: /* MODE 320B */ - if (d & 0xCC || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][((d & 0x80) >> 6) | ((d & 0x08) >> 3)]; - scanline[hpos + 1] = maria_palette[pal][((d & 0x40) >> 5) | ((d & 0x04) >> 2)]; - } - inc_hpos_by_2(); - - if ( d & 0x33 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[pal][((d & 0x20) >> 4) | ((d & 0x02) >> 1)]; - scanline[hpos + 1] = maria_palette[pal][((d & 0x10) >> 3) | (d & 0x01)]; - } - inc_hpos_by_2(); - break; - - case 0x07: /* (320C mode) */ - if (d & 0xC0 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x80) >> 6]; - scanline[hpos + 1] = maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x40) >> 5]; - } - inc_hpos_by_2(); - - if ( d & 0x30 || maria_kangaroo) - { - scanline[hpos + 0] = maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x20) >> 4]; - scanline[hpos + 1] = maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x10) >> 3]; - } - inc_hpos_by_2(); - break; - - } /* endswitch (mode) */ - } /* endwhile (ind_bytes > 0)*/ - } /* endfor (x=0; x> 5; - maria_dli = READ_MEM(maria_dll) & 0x80; - /* logerror("DLL=%x\n",maria_dll); */ - /* logerror("DLL: DL = %x dllctrl = %x\n",maria_dl,ROM[maria_dll]); */ - } - - /*logerror( "vblank end on line %d\n", frame_scanline );*/ - } - - /* moved start of vblank up (to prevent dma/dli happen on line -4) - this fix made PR Baseball happy - Kung-Fu Master looks worse - don't know about others yet */ - if( frame_scanline == ( a7800_lines - 4 ) ) - { - /* vblank starts 4 scanlines before end of screen */ - - maria_vblank = 0x80; - - /* fixed 2002/05/14 kubecj - when going vblank, dma must be stopped - otherwise system tries to read past end of dll - causing false dlis to occur, mainly causing wild - screen flickering - - games fixed: - Ace of Aces - Mean 18 - Ninja Golf (end of levels) - Choplifter - Impossible Mission - Jinks - */ - - maria_dodma = 0; - /*logerror( "vblank on line %d\n\n", frame_scanline );*/ - } - - - if( ( frame_scanline > 15 ) && maria_dodma ) - { - if (maria_scanline < ( a7800_lines - 4 ) ) - maria_draw_scanline(); - - if( maria_offset == 0 ) - { - maria_dll+=3; - maria_dl = (READ_MEM(maria_dll+1) << 8) | READ_MEM(maria_dll+2); - maria_offset = READ_MEM(maria_dll) & 0x0f; - maria_holey = (READ_MEM(maria_dll) & 0x60) >> 5; - maria_dli = READ_MEM(maria_dll) & 0x80; - } - else - { - maria_offset--; - } - } - - if( maria_dli ) - { - /*logerror( "dli on line %d [%02X] [%02X] [%02X]\n", frame_scanline, ROM[0x7E], ROM[0x7C], ROM[0x7D] );*/ - } - - if( maria_dli ) - { - maria_dli = 0; - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - -} - -/*************************************************************************** - - Refresh the video screen - -***************************************************************************/ -/* This routine is called at the start of vblank to refresh the screen */ -VIDEO_UPDATE( a7800 ) -{ - maria_scanline = 0; - video_update_generic_bitmapped(machine, screen, bitmap, cliprect); - return 0; -} - - -/****** MARIA ***************************************/ - - READ8_HANDLER( a7800_MARIA_r ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - switch (offset) - { - case 0x08: - return maria_vblank; - - default: - logerror("undefined MARIA read %x\n",offset); - return ROM[0x20 + offset]; - } -} - -WRITE8_HANDLER( a7800_MARIA_w ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - switch (offset) - { - case 0x00: - maria_backcolor = Machine->pens[data]; - // 20030621 ericball added maria_palette[pal][0] to make kanagroo mode easier - maria_palette[0][0]=maria_backcolor; - maria_palette[1][0]=maria_backcolor; - maria_palette[2][0]=maria_backcolor; - maria_palette[3][0]=maria_backcolor; - maria_palette[4][0]=maria_backcolor; - maria_palette[5][0]=maria_backcolor; - maria_palette[6][0]=maria_backcolor; - maria_palette[7][0]=maria_backcolor; - break; - case 0x01: - maria_palette[0][1] = Machine->pens[data]; - break; - case 0x02: - maria_palette[0][2] = Machine->pens[data]; - break; - case 0x03: - maria_palette[0][3] = Machine->pens[data]; - break; - case 0x04: - cpu_spinuntil_trigger(TRIGGER_HSYNC); - maria_wsync=1; - break; - - case 0x05: - maria_palette[1][1] = Machine->pens[data]; - break; - case 0x06: - maria_palette[1][2] = Machine->pens[data]; - break; - case 0x07: - maria_palette[1][3] = Machine->pens[data]; - break; - - case 0x09: - maria_palette[2][1] = Machine->pens[data]; - break; - case 0x0A: - maria_palette[2][2] = Machine->pens[data]; - break; - case 0x0B: - maria_palette[2][3] = Machine->pens[data]; - break; - - case 0x0D: - maria_palette[3][1] = Machine->pens[data]; - break; - case 0x0E: - maria_palette[3][2] = Machine->pens[data]; - break; - case 0x0F: - maria_palette[3][3] = Machine->pens[data]; - break; - - case 0x11: - maria_palette[4][1] = Machine->pens[data]; - break; - case 0x12: - maria_palette[4][2] = Machine->pens[data]; - break; - case 0x13: - maria_palette[4][3] = Machine->pens[data]; - break; - case 0x14: - maria_charbase = (data << 8); - break; - case 0x15: - maria_palette[5][1] = Machine->pens[data]; - break; - case 0x16: - maria_palette[5][2] = Machine->pens[data]; - break; - case 0x17: - maria_palette[5][3] = Machine->pens[data]; - break; - - case 0x19: - maria_palette[6][1] = Machine->pens[data]; - break; - case 0x1A: - maria_palette[6][2] = Machine->pens[data]; - break; - case 0x1B: - maria_palette[6][3] = Machine->pens[data]; - break; - - case 0x1C: - /*logerror("MARIA CTRL=%x\n",data);*/ - maria_color_kill = data & 0x80; - if ((data & 0x60) == 0x40) - maria_dmaon = 1; - else - maria_dmaon = maria_dodma = 0; - - maria_cwidth = data & 0x10; - maria_bcntl = data & 0x08; - maria_kangaroo = data & 0x04; - maria_rm = data & 0x03; - - /*logerror( "MARIA CTRL: CK:%d DMA:%d CW:%d BC:%d KM:%d RM:%d\n", - maria_color_kill ? 1 : 0, - ( data & 0x60 ) >> 5, - maria_cwidth ? 1 : 0, - maria_bcntl ? 1 : 0, - maria_kangaroo ? 1 : 0, - maria_rm );*/ - - break; - case 0x1D: - maria_palette[7][1] = Machine->pens[data]; - break; - case 0x1E: - maria_palette[7][2] = Machine->pens[data]; - break; - case 0x1F: - maria_palette[7][3] = Machine->pens[data]; - break; - } - ROM[ 0x20 + offset ] = data; -} - diff --git a/mess/vidhrdw/advision.c b/mess/vidhrdw/advision.c deleted file mode 100644 index fd2c2edea..000000000 --- a/mess/vidhrdw/advision.c +++ /dev/null @@ -1,120 +0,0 @@ -/*************************************************************************** - - vidhrdw/advision.c - - Routines to control the Adventurevision video hardware - - Video hardware is composed of a vertical array of 40 LEDs which is - reflected off a spinning mirror. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/advision.h" - -static UINT8 advision_led_latch[8]; -static UINT8 *advision_display; - -int advision_vh_hpos; - - -/*************************************************************************** - - Start the video hardware emulation. - -***************************************************************************/ -VIDEO_START( advision ) -{ - advision_vh_hpos = 0; - advision_display = (UINT8 *)auto_malloc(8 * 8 * 256); - memset(advision_display, 0, 8 * 8 * 256); - return 0; -} - -/*************************************************************************** - - Stop the video hardware emulation. - -***************************************************************************/ - -PALETTE_INIT( advision ) -{ - int i; - for( i = 0; i < 8; i++ ) - { - /* 8 shades of RED */ - palette_set_color(machine, i, i * 0x22, 0x00, 0x00); - colortable[i*2+0] = 0; - colortable[i*2+0] = i; - } - - palette_set_color(machine, 8, 0x55, 0x55, 0x55); /* DK GREY - for MAME text only */ - palette_set_color(machine, 9, 0xf0, 0xf0, 0xf0); /* LT GREY - for MAME text only */ -} - -void advision_vh_write(int data) -{ - if (advision_videobank >= 1 && advision_videobank <=5) - { - advision_led_latch[advision_videobank] = data; - } -} - -void advision_vh_update(int x) -{ - UINT8 *dst = &advision_display[x]; - int y; - - for( y = 0; y < 8; y++ ) - { - UINT8 data = advision_led_latch[7-y]; - if( (data & 0x80) == 0 ) dst[0 * 256] = 8; - if( (data & 0x40) == 0 ) dst[1 * 256] = 8; - if( (data & 0x20) == 0 ) dst[2 * 256] = 8; - if( (data & 0x10) == 0 ) dst[3 * 256] = 8; - if( (data & 0x08) == 0 ) dst[4 * 256] = 8; - if( (data & 0x04) == 0 ) dst[5 * 256] = 8; - if( (data & 0x02) == 0 ) dst[6 * 256] = 8; - if( (data & 0x01) == 0 ) dst[7 * 256] = 8; - advision_led_latch[7-y] = 0xff; - dst += 8 * 256; - } -} - - -/*************************************************************************** - - Refresh the video screen - -***************************************************************************/ - -VIDEO_UPDATE( advision ) -{ - int x, y, bit; - - static int framecount = 0; - - if( (framecount++ % 8) == 0 ) - { - advision_framestart = 1; - advision_vh_hpos = 0; - } - - for( x = (framecount%2)*128; x < (framecount%2)*128+128; x++ ) - { - UINT8 *led = &advision_display[x]; - for( y = 0; y < 8; y++ ) - { - for( bit = 0; bit < 8; bit++ ) - { - if( *led > 0 ) - plot_pixel(bitmap, 85 + x, 30 + 2 *( y * 8 + bit), Machine->pens[--(*led)]); - led += 256; - } - } - } - return 0; -} - - diff --git a/mess/vidhrdw/amstrad.c b/mess/vidhrdw/amstrad.c deleted file mode 100644 index 898aed58d..000000000 --- a/mess/vidhrdw/amstrad.c +++ /dev/null @@ -1,1127 +0,0 @@ -/*************************************************************************** - - amstrad.c.c - - Functions to emulate the video hardware of the amstrad CPC. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/amstrad.h" -#include "cpuintrf.h" - -/* CRTC emulation code */ -#include "vidhrdw/m6845.h" - -#include "sound/ay8910.h" - -static crtc6845_state amstrad_vidhrdw_6845_state; -int prev_reg; - -extern int amstrad_plus_asic_enabled; -extern int amstrad_plus_pri; -extern int amstrad_system_type; -extern int amstrad_plus_irq_cause; -extern int amstrad_plus_scroll_x; -extern int amstrad_plus_scroll_y; -extern int amstrad_plus_scroll_border; - -extern int amstrad_plus_dma_status; -extern int amstrad_plus_dma_0_addr; // DMA channel address -extern int amstrad_plus_dma_1_addr; -extern int amstrad_plus_dma_2_addr; -extern int amstrad_plus_dma_prescaler[3]; // DMA channel prescaler - -int amstrad_plus_dma_repeat[3]; // marks the location of the channels' last repeat -int amstrad_plus_dma_pause[3]; // pause count -int amstrad_plus_dma_loopcount[3]; // counts loops taken on this channel - -extern unsigned char *amstrad_plus_asic_ram; - -int amstrad_plus_split_scanline; // ASIC split screen -int amstrad_plus_split_address; -int amstrad_screen_width; // width in bytes - -void amstrad_plus_handle_dma(void); - -#ifdef MAME_DEBUG -extern int amstrad_plus_lower_enabled; -#endif - -/*************************************************************************** - Start the video hardware emulation. -***************************************************************************/ - -/* CRTC status */ -static int amstrad_CRTC_MA = 0; /* MA = Memory Address output */ -static int amstrad_CRTC_RA = 0; /* RA = Row Address output */ -static int amstrad_CRTC_HS = 0; /* HS = Horizontal Sync */ -int amstrad_CRTC_VS = 0; /* VS = Vertical Sync */ -static int amstrad_CRTC_DE = 0; /* DE = Display Enabled */ -int amstrad_CRTC_CR = 0; /* CR = Cursor Enabled */ - -/* this is the real pixel position */ -static int x_screen_pos; -static int y_screen_pos; - -/* this is the pixel position of the start of a scanline for the amstrad screen */ -static int x_screen_offset = -224; -static int y_screen_offset = -32; - -/* display origin - used to align hardware sprites */ -static int display_x; -static int display_y; -int display_update; // flag to get location at first DE - -/* this contains the colours in Machine->pens form.*/ -/* this is updated from the eventlist and reflects the current state -of the render colours - these may be different to the current colour palette values */ -/* colours can be changed at any time and will take effect immediatly */ -static unsigned long amstrad_GateArray_render_colours[17]; -/* The gate array counts CRTC HSYNC pulses. (It has a internal 6-bit counter). */ -int amstrad_CRTC_HS_Counter; -/* 2 HSYNCS after the VSYNC Counter */ -static int amstrad_CRTC_HS_After_VS_Counter; - -static mame_bitmap *amstrad_bitmap; - -static int amstrad_scanline; -static int border_counter; // counts length of the soft scroll border extend - -/* the mode is re-loaded at each HSYNC */ -/* current mode to render */ -static int amstrad_render_mode; -static void (*draw_function)(void); -/* current programmed mode */ -static int amstrad_current_mode; - -static unsigned long Mode0Lookup[256]; -static unsigned long Mode1Lookup[256]; -static unsigned long Mode3Lookup[256]; - -/* The Amstrad CPC has a fixed palette of 27 colours generated from 3 levels of Red, Green and Blue. -The hardware allows selection of 32 colours, but these extra colours are copies of existing colours.*/ - -unsigned char amstrad_palette[32 * 3] = -{ - 0x080, 0x080, 0x080, /* white */ - 0x080, 0x080, 0x080, /* white */ - 0x000, 0x0ff, 0x080, /* sea green */ - 0x0ff, 0x0ff, 0x080, /* pastel yellow */ - 0x000, 0x000, 0x080, /* blue */ - 0x0ff, 0x000, 0x080, /* purple */ - 0x000, 0x080, 0x080, /* cyan */ - 0x0ff, 0x080, 0x080, /* pink */ - 0x0ff, 0x000, 0x080, /* purple */ - 0x0ff, 0x0ff, 0x080, /* pastel yellow */ - 0x0ff, 0x0ff, 0x000, /* bright yellow */ - 0x0ff, 0x0ff, 0x0ff, /* bright white */ - 0x0ff, 0x000, 0x000, /* bright red */ - 0x0ff, 0x000, 0x0ff, /* bright magenta */ - 0x0ff, 0x080, 0x000, /* orange */ - 0x0ff, 0x080, 0x0ff, /* pastel magenta */ - 0x000, 0x000, 0x080, /* blue */ - 0x000, 0x0ff, 0x080, /* sea green */ - 0x000, 0x0ff, 0x000, /* bright green */ - 0x000, 0x0ff, 0x0ff, /* bright cyan */ - 0x000, 0x000, 0x000, /* black */ - 0x000, 0x000, 0x0ff, /* bright blue */ - 0x000, 0x080, 0x000, /* green */ - 0x000, 0x080, 0x0ff, /* sky blue */ - 0x080, 0x000, 0x080, /* magenta */ - 0x080, 0x0ff, 0x080, /* pastel green */ - 0x080, 0x0ff, 0x080, /* lime */ - 0x080, 0x0ff, 0x0ff, /* pastel cyan */ - 0x080, 0x000, 0x000, /* Red */ - 0x080, 0x000, 0x0ff, /* mauve */ - 0x080, 0x080, 0x000, /* yellow */ - 0x080, 0x080, 0x0ff /* pastel blue */ -}; - -/* the green brightness is equal to the firmware colour index */ -unsigned char amstrad_green_palette[32 * 3] = -{ - 0x000, 0x07F, 0x000, /*13*/ - 0x000, 0x07F, 0x000, /*13*/ - 0x000, 0x0BA, 0x000, /*19*/ - 0x000, 0x0F5, 0x000, /*25*/ - 0x000, 0x009, 0x000, /*1*/ - 0x000, 0x044, 0x000, /*7*/ - 0x000, 0x062, 0x000, /*10*/ - 0x000, 0x09C, 0x000, /*16*/ - 0x000, 0x044, 0x000, /*7*/ - 0x000, 0x0F5, 0x000, /*25*/ - 0x000, 0x0EB, 0x000, /*24*/ - 0x000, 0x0FF, 0x000, /*26*/ - 0x000, 0x03A, 0x000, /*6*/ - 0x000, 0x04E, 0x000, /*8*/ - 0x000, 0x093, 0x000, /*15*/ - 0x000, 0x0A6, 0x000, /*17*/ - 0x000, 0x009, 0x000, /*1*/ - 0x000, 0x0BA, 0x000, /*19*/ - 0x000, 0x0B0, 0x000, /*18*/ - 0x000, 0x0C4, 0x000, /*20*/ - 0x000, 0x000, 0x000, /*0*/ - 0x000, 0x013, 0x000, /*2*/ - 0x000, 0x058, 0x000, /*9*/ - 0x000, 0x06B, 0x000, /*11*/ - 0x000, 0x027, 0x000, /*4*/ - 0x000, 0x0D7, 0x000, /*22*/ - 0x000, 0x0CD, 0x000, /*21*/ - 0x000, 0x0E1, 0x000, /*23*/ - 0x000, 0x01D, 0x000, /*3*/ - 0x000, 0x031, 0x000, /*5*/ - 0x000, 0x075, 0x000, /*12*/ - 0x000, 0x089, 0x000 /*14*/ -}; -/* Initialise the palette */ -PALETTE_INIT( amstrad_cpc ) -{ - if ( ((readinputportbytag("green_display")) & 0x01)==0 ) - palette_set_colors(machine, 0, amstrad_palette, sizeof(amstrad_palette) / 3); - else - palette_set_colors(machine, 0, amstrad_green_palette, sizeof(amstrad_green_palette) / 3); -} - -/*************************************************************************/ -/* KC Compact - -The palette is defined by a colour rom. The only rom dump that exists (from the KC-Club webpage) -is 2K, which seems correct. In this rom the same 32 bytes of data is repeated throughout the rom. - -When a I/O write is made to "Gate Array" to select the colour, Bit 7 and 6 are used by the -"Gate Array" to define the function, bit 7 = 0, bit 6 = 1. In the Amstrad CPC, bits 4..0 -define the hardware colour number, but in the KC Compact, it seems bits 5..0 -define the hardware colour number allowing 64 colours to be chosen. - -It is possible therefore that the colour rom could be reprogrammed, so that other colour -selections could be chosen allowing 64 different colours to be used. But this has not been tested -and co - -colour rom byte: - -Bit Function -7 not used -6 not used -5,4 Green value -3,2 Red value -1,0 Blue value - -Green value, Red value, Blue value: 0 = 0%, 01/10 = 50%, 11 = 100%. -The 01 case is not used, it is unknown if this produces a different amount of colour. -*/ - -static unsigned char kccomp_get_colour_element(int colour_value) -{ - switch (colour_value) - { - case 0: - return 0x00; - case 1: - return 0x60; - case 2: - return 0x60; - case 3: - return 0xff; - } - - return 0xff; -} - - -/* the colour rom has the same 32 bytes repeated, but it might be possible to put a new rom in -with different data and be able to select the other entries - not tested on a real kc compact yet -and not supported by this driver */ -PALETTE_INIT( kccomp ) -{ - int i; - - color_prom = color_prom+0x018000; - - for (i=0; i<32; i++) - { - colortable[i] = i; - palette_set_color(machine, i, - kccomp_get_colour_element((color_prom[i]>>2) & 0x03), - kccomp_get_colour_element((color_prom[i]>>4) & 0x03), - kccomp_get_colour_element((color_prom[i]>>0) & 0x03)); - } -} - - -/******************************************** -Amstrad Plus - -The Amstrad Plus has a 4096 colour palette -*********************************************/ - -PALETTE_INIT( amstrad_plus ) -{ - int i; - - palette_set_colors(machine, 0, amstrad_palette, sizeof(amstrad_palette) / 3); - for ( i = 0; i < 0x1000; i++ ) - { - int r, g, b; - - r = ( i >> 8 ) & 0x0f; - g = ( i >> 4 ) & 0x0f; - b = i & 0x0f; - - r = ( r << 4 ) | ( r ); - g = ( g << 4 ) | ( g ); - b = ( b << 4 ) | ( b ); - - palette_set_color(machine, i+48, g, r, b); - colortable[i+48] = i+48; // take into account the original palette, and sprite palette - } -} - -void amstrad_plus_setspritecolour(unsigned int off, int r, int g, int b) -{ - palette_set_color(Machine, (off/2) + 33, r, g, b); -} - -static void amstrad_init_lookups(void) -{ - int i; - - for (i=0; i<256; i++) - { - int pen; - - pen = ( - ((i & (1<<7))>>(7-0)) | - ((i & (1<<3))>>(3-1)) | - ((i & (1<<5))>>(5-2)) | - ((i & (1<<1))<<2) - ); - - Mode0Lookup[i] = pen; - - Mode3Lookup[i] = pen & 0x03; - - pen = ( - ( ( (i & (1<<7)) >>7) <<0) | - ( ( (i & (1<<3)) >>3) <<1) - ); - - Mode1Lookup[i] = pen; - - } -} -/* Set the new colour from the GateArray */ -void amstrad_vh_update_colour(int PenIndex, int hw_colour_index) -{ - int val; -/* int cpu_cycles = ((cycles_currently_ran()>>2)-1) & 63; - - logerror("color is changed(%d,%d) = %d\n",PenIndex, cpu_cycles, Machine->pens[hw_colour_index]); - amstrad_GateArray_colours_ischanged++; - amstrad_GateArray_changed_colours[cpu_cycles][PenIndex] = Machine->pens[hw_colour_index]; -*/ - amstrad_GateArray_render_colours[PenIndex] = Machine->pens[hw_colour_index]; - if(amstrad_system_type != 0) - { // CPC+/GX4000 - normal palette changes through the Gate Array also makes the corresponding change in the ASIC palette - val = amstrad_palette[hw_colour_index*3+2] >> 4; - val += amstrad_palette[hw_colour_index*3] & 0xf0; - amstrad_plus_asic_ram[0x2400+PenIndex*2] = val; - val = amstrad_palette[hw_colour_index*3+1] >> 4; - amstrad_plus_asic_ram[0x2401+PenIndex*2] = val; - } -} - -/* Set the new screen mode (0,1,2,4) from the GateArray */ -void amstrad_vh_update_mode(int new_mode) -{ - amstrad_current_mode = new_mode; - -} - -static void amstrad_draw_screen_disabled(void) -{ - int colour; - - if(amstrad_system_type == 0) - plot_box(amstrad_bitmap,x_screen_pos,y_screen_pos,AMSTRAD_CHARACTERS*2,1,amstrad_GateArray_render_colours[16]); - else - { - colour = 48 + amstrad_plus_asic_ram[0x2420]; - colour += amstrad_plus_asic_ram[0x2421] << 8; - plot_box(amstrad_bitmap,x_screen_pos,y_screen_pos,AMSTRAD_CHARACTERS*2,1,colour); - } -} - -/* mode 0 - low resolution - 16 colours */ -static void amstrad_plus_draw_screen_enabled_mode_0(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); - /* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int cpcpen, messpen; - - unsigned char data; - - if(border_counter > 0) - { - if(border_counter > 0) - amstrad_draw_screen_disabled(); - border_counter--; - return; - } - - addr -= (amstrad_plus_scroll_x / 8); // adjust for soft scroll register - if(ra > 0x07) - addr += amstrad_screen_width; - addr &= 0xffff; - data = mess_ram[addr]; - cpcpen = Mode0Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode0Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+4,y,4,1,messpen); - - data = mess_ram[addr+1]; - - cpcpen = Mode0Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+8,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode0Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+12,y,4,1,messpen); -} - -/* mode 1 - medium resolution - 4 colours */ -static void amstrad_plus_draw_screen_enabled_mode_1(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - - int i, cpcpen, messpen; - unsigned char data1; - unsigned char data2; - - if(border_counter > 0) - { - if(border_counter > 0) - amstrad_draw_screen_disabled(); - border_counter--; - return; - } - - addr -= (amstrad_plus_scroll_x / 8); // adjust for soft scroll register - if(ra > 0x07) - addr += amstrad_screen_width; - addr &= 0xffff; - data1 = mess_ram[addr]; - data2 = mess_ram[addr+1]; - - for (i=0;i<4;i++) { - cpcpen = Mode1Lookup[data1& 0xFF]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x,y,2,1,messpen); - - cpcpen = Mode1Lookup[data2]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+8,y,2,1,messpen); - - x += 2; - data1 = data1<<1; - data2 = data2<<1; - } -} - -/* mode 2: high resolution - 2 colours */ -static void amstrad_plus_draw_screen_enabled_mode_2(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int i, cpcpen, messpen; - unsigned long data; - - if(border_counter > 0) - { - if(border_counter > 0) - amstrad_draw_screen_disabled(); - border_counter--; - return; - } - if(ra > 0x07) // soft scroll adjust - addr += amstrad_screen_width; - addr &= 0xffff; - data = (mess_ram[addr]<<8) | mess_ram[addr+1]; - - for (i=0; i<16; i++) - { - cpcpen = (data>>15) & 0x01; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_pixel(bitmap,x,y,messpen); - x++; - data = data<<1; - } -} - -/* undocumented mode. low resolution - 4 colours */ -static void amstrad_plus_draw_screen_enabled_mode_3(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int cpcpen, messpen; - unsigned char data; - - if(border_counter > 0) - { - if(border_counter > 0) - amstrad_draw_screen_disabled(); - border_counter--; - return; - } - - addr -= (amstrad_plus_scroll_x / 8); // adjust for soft scroll register - if(ra > 0x07) - addr += amstrad_screen_width; - addr &= 0xffff; - data = mess_ram[addr]; - - cpcpen = Mode3Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode3Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+4,y,4,1,messpen); - - data = mess_ram[addr+1]; - - cpcpen = Mode3Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+8,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode3Lookup[data]; - messpen = 48 + (amstrad_plus_asic_ram[0x2400+cpcpen*2]);//amstrad_GateArray_render_colours[cpcpen]; - messpen += (amstrad_plus_asic_ram[0x2401+cpcpen*2]) << 8; - plot_box(bitmap,x+12,y,4,1,messpen); -} - -/* mode 0 - low resolution - 16 colours */ -static void amstrad_draw_screen_enabled_mode_0(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); - /* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int cpcpen, messpen; - - unsigned char data = mess_ram[addr]; - - if(amstrad_system_type == 1) - { - amstrad_plus_draw_screen_enabled_mode_0(); - return; - } - - cpcpen = Mode0Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode0Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+4,y,4,1,messpen); - - data = mess_ram[addr+1]; - - cpcpen = Mode0Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+8,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode0Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+12,y,4,1,messpen); -} - -/* mode 1 - medium resolution - 4 colours */ -static void amstrad_draw_screen_enabled_mode_1(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - - int i, cpcpen, messpen; - unsigned char data1 = mess_ram[addr]; - unsigned char data2 = mess_ram[addr+1]; - - if(amstrad_system_type == 1) - { - amstrad_plus_draw_screen_enabled_mode_1(); - return; - } - - for (i=0;i<4;i++) { - cpcpen = Mode1Lookup[data1& 0xFF]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x,y,2,1,messpen); - - cpcpen = Mode1Lookup[data2]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+8,y,2,1,messpen); - - x += 2; - data1 = data1<<1; - data2 = data2<<1; - } -} - -/* mode 2: high resolution - 2 colours */ -static void amstrad_draw_screen_enabled_mode_2(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int i, cpcpen, messpen; - unsigned long data = (mess_ram[addr]<<8) | mess_ram[addr+1]; - - if(amstrad_system_type == 1) - { - amstrad_plus_draw_screen_enabled_mode_2(); - return; - } - - for (i=0; i<16; i++) - { - cpcpen = (data>>15) & 0x01; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_pixel(bitmap,x,y,messpen); - x++; - data = data<<1; - } -} - -/* undocumented mode. low resolution - 4 colours */ -static void amstrad_draw_screen_enabled_mode_3(void) -{ - mame_bitmap *bitmap = amstrad_bitmap; - - int ma = amstrad_CRTC_MA; // crtc6845_memory_address_r(0); - int ra = amstrad_CRTC_RA; // crtc6845_row_address_r(0); -/* calc mem addr to fetch data from based on ma, and ra */ - unsigned int addr = (((ma>>(4+8)) & 0x03)<<14) | - ((ra & 0x07)<<11) | - ((ma & 0x03ff)<<1); - - int x = x_screen_pos; - int y = y_screen_pos; - int cpcpen, messpen; - unsigned char data = mess_ram[addr]; - - if(amstrad_system_type == 1) - { - amstrad_plus_draw_screen_enabled_mode_3(); - return; - } - - cpcpen = Mode3Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode3Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+4,y,4,1,messpen); - - data = mess_ram[addr+1]; - - cpcpen = Mode3Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+8,y,4,1,messpen); - - data = data<<1; - - cpcpen = Mode3Lookup[data]; - messpen = amstrad_GateArray_render_colours[cpcpen]; - plot_box(bitmap,x+12,y,4,1,messpen); -} - -/* execute crtc_execute_cycles of crtc */ -void amstrad_vh_execute_crtc_cycles(int dummy) -{ - crtc6845_clock(); // Clock the 6845 - if ((x_screen_pos >= 0) && (x_screen_pos < AMSTRAD_SCREEN_WIDTH) && (y_screen_pos >= 0)) - { - /* render the screen */ - (draw_function)(); - } - x_screen_pos += (AMSTRAD_CHARACTERS*2); // Move to next raster -/* }*/ -} - -/* - ASIC hardware sprites - 16 sprites, 15 colours, 4096 colour palette - - ASIC sprite memory map, must be mapped in using the secondary lower ROM select register - - &4000 - &4fff Sprite bitmap data, lower 4 bits. - - &6000 - &607f Sprite properties, 8 bytes each - byte 0-1: Sprite X location - byte 2-3: Sprite Y location - byte 5: Sprite magnication (LSB first) - bit 0-1: Y Magnification - bit 2-3: X magnification - 00 = not displayed - 01 = x1 - 10 = x2 - 11 = x4 - - &6422 - &643f Sprite palette, 12-bit, xxxxGGGGRRRRBBBB, sprite pens 1-15 (0 is always transparent) -*/ -void amstrad_plus_sprite_draw(mame_bitmap* scr_bitmap) -{ - int spr; // sprite number - int xloc,yloc; - int xmag,ymag; // sprite properties - int sprptr; // sprite location in ASIC RAM - rectangle rect; - - // get display bounds from CRTC registers (sprites are bound and clipped to inside the border) - rect.min_x = display_x;//(((vid.registers[0] - 1) - (vid.registers[2] - 1))*4)+8; - rect.max_x = rect.min_x + (crtc6845_get_register(1) * 16); - rect.min_y = display_y;//(((vid.registers[4] - 1) - (vid.registers[7] - 1))*4)+4; - rect.max_y = rect.min_y + (crtc6845_get_register(6) * (crtc6845_get_register(9)+1)); - - for(spr=0;spr<16;spr++) - { - sprptr = 0x2000 + (8*spr); - xmag = (amstrad_plus_asic_ram[sprptr+4] & 0x0c) >> 2; - ymag = amstrad_plus_asic_ram[sprptr+4] & 0x03; - if(xmag != 0 && ymag != 0) - { - xmag = 1<<(15+xmag); - ymag = 1<<(15+ymag); - xloc = amstrad_plus_asic_ram[sprptr] + (amstrad_plus_asic_ram[sprptr+1] << 8); - xloc += rect.min_x; - yloc = amstrad_plus_asic_ram[sprptr+2] + (amstrad_plus_asic_ram[sprptr+3] << 8); - yloc += rect.min_y; - decodechar(Machine->gfx[0],spr,amstrad_plus_asic_ram,Machine->drv->gfxdecodeinfo[0].gfxlayout); - drawgfxzoom(scr_bitmap,Machine->gfx[0],spr,0,0,0,xloc,yloc,&rect, - TRANSPARENCY_COLOR,32,xmag,ymag); - } - } -} - -/* - CPC+ / GX4000 ASIC split screen registers -*/ -void amstrad_plus_setsplitline(unsigned int line, unsigned int address) -{ - amstrad_plus_split_scanline = line; - amstrad_plus_split_address = address; -} - -/* -DMA commands - -0RDDh LOAD R,D Load 8 bit data D to PSG register R (0<=R<=15) -1NNNh PAUSE N Pause for N prescaled ticks (0> 8); - AY8910_write_port_0_w(0,command & 0x00ff); - AY8910_control_port_0_w(0,prev_reg); - logerror("DMA %i: LOAD %i, %i\n",channel,(command & 0x0f00) >> 8, command & 0x00ff); - break; - case 0x1000: // Pause for n HSYNCs (0 - 4095) - amstrad_plus_dma_pause[channel] = (command & 0x0fff) - 1; - logerror("DMA %i: PAUSE %i\n",channel,command & 0x0fff); - break; - case 0x2000: // Beginning of repeat loop - amstrad_plus_dma_repeat[channel] = *addr; - amstrad_plus_dma_loopcount[channel] = (command & 0x0fff); - logerror("DMA %i: REPEAT %i\n",channel,command & 0x0fff); - break; - case 0x4000: // Control functions - if(command & 0x01) // Loop back to last Repeat instruction - { - if(amstrad_plus_dma_loopcount[channel] > 0) - { - (*addr) = amstrad_plus_dma_repeat[channel]; - logerror("DMA %i: LOOP (%i left)\n",channel,amstrad_plus_dma_loopcount[channel]); - amstrad_plus_dma_loopcount[channel]--; - } - else - logerror("DMA %i: LOOP (end)\n",channel); - } - if(command & 0x10) // Cause interrupt - { - amstrad_plus_irq_cause = channel * 2; - amstrad_plus_asic_ram[0x2c0f] |= (0x40 >> channel); - cpunum_set_input_line(0,0,ASSERT_LINE); - logerror("DMA %i: INT\n",channel); - } - if(command & 0x20) // Stop processing on this channel - { - amstrad_plus_dma_status &= ~(0x01 << channel); - logerror("DMA %i: STOP\n",channel); - } - break; - default: - logerror("DMA: Unknown DMA command - %04x - at address &%04x\n",command,*addr); - } - (*addr)+=2; // point to next DMA instruction -} - -void amstrad_plus_handle_dma() -{ - if(amstrad_plus_dma_status & 0x01) // DMA channel 0 - amstrad_plus_dma_parse(0,&amstrad_plus_dma_0_addr); - - if(amstrad_plus_dma_status & 0x02) // DMA channel 1 - amstrad_plus_dma_parse(1,&amstrad_plus_dma_1_addr); - - if(amstrad_plus_dma_status & 0x04) // DMA channel 2 - amstrad_plus_dma_parse(2,&amstrad_plus_dma_2_addr); -} - -/************************************************************************ - * amstrad CRTC 6845 Status - ************************************************************************/ -/* CRTC - Set the new Memory Address output */ -static void amstrad_Set_MA(int offset, int data) -{ - amstrad_CRTC_MA = data; -} -/* CRTC - Set the new Row Address output */ -static void amstrad_Set_RA(int offset, int data) -{ - if(amstrad_plus_asic_enabled == 0 && amstrad_plus_scroll_y == 0) - amstrad_CRTC_RA = data; - else - amstrad_CRTC_RA = data + amstrad_plus_scroll_y; -} - -/* CRTC - Set new Display Enabled Status*/ -static void amstrad_Set_DE(int offset, int data) -{ - amstrad_CRTC_DE = data; - - if (amstrad_CRTC_DE == 0) - { - draw_function = amstrad_draw_screen_disabled; - } - else - { - if(display_update == 1 && amstrad_plus_asic_enabled != 0) // first scanline - { - if(amstrad_plus_scroll_y != 0) - amstrad_screen_width = crtc6845_get_register(1) * 2; - display_x = x_screen_pos; - display_y = y_screen_pos; - display_update = 0; - } - - switch (amstrad_current_mode) { - case 0x00: - draw_function = amstrad_draw_screen_enabled_mode_0; - break; - case 0x01: - draw_function = amstrad_draw_screen_enabled_mode_1; - break; - case 0x02: - draw_function = amstrad_draw_screen_enabled_mode_2; - break; - case 0x03: - draw_function = amstrad_draw_screen_enabled_mode_3; - break; - } - } -} - -/* CRTC - Set new Horizontal Sync Status */ -static void amstrad_Set_HS(int offset, int data) -{ - if (data != 0) - { - amstrad_render_mode = amstrad_current_mode; - x_screen_pos = x_screen_offset; - } - else - { - /* End of CRTC_HSync */ - if (y_screen_pos= 32) - { - if(amstrad_plus_pri == 0 || amstrad_plus_asic_enabled == 0) - { - cpunum_set_input_line(0,0, ASSERT_LINE); - } - } - amstrad_CRTC_HS_Counter = 0; - } - } - - if (amstrad_CRTC_HS_Counter == 52) - { - amstrad_CRTC_HS_Counter = 0; - if(amstrad_plus_pri == 0 || amstrad_plus_asic_enabled == 0) - { - cpunum_set_input_line(0,0, ASSERT_LINE); - } - } - if(amstrad_plus_asic_enabled != 0) - { - // CPC+/GX4000 Programmable Raster Interrupt (disabled if &6800 in ASIC RAM is 0) - if(amstrad_plus_pri != 0) - { - if(crtc6845_get_row_counter() == ((amstrad_plus_pri >> 3) & 0x1f) && crtc6845_get_scanline_counter() == (amstrad_plus_pri & 0x07)) - { -// logerror("PRI: triggered, scanline %i, VSync width = %i\n",amstrad_scanline,vid.vertical_sync_width); - cpunum_set_input_line(0,0,ASSERT_LINE); - amstrad_plus_irq_cause = 0x06; // raster interrupt vector - amstrad_CRTC_HS_Counter &= ~0x20; // ASIC PRI resets the MSB of the raster counter - } - } - // CPC+/GX4000 Split screen registers (disabled if &6801 in ASIC RAM is 0) - if(amstrad_plus_split_scanline != 0) - { - if(crtc6845_get_row_counter() == ((amstrad_plus_split_scanline >> 3) & 0x1f) && crtc6845_get_scanline_counter() == (amstrad_plus_split_scanline & 0x07)) // split occurs here (hopefully) - { - crtc6845_state vid; - crtc6845_get_state(0,&vid); -// logerror("SSCR: Split screen occured at scanline %i",amstrad_plus_split_scanline); - vid.Memory_Address_of_next_Character_Row = vid.Memory_Address_of_this_Character_Row = amstrad_plus_split_address; - vid.Memory_Address = amstrad_plus_split_address; - crtc6845_set_state(0,&vid); - } - } - // CPC+/GX4000 soft scroll register - if(amstrad_plus_scroll_border != 0) - { - border_counter = 1; // border extended to cover garbage data from using the soft scroll functions - } - // CPC+/GX4000 DMA channels - amstrad_plus_handle_dma(); // a DMA command is handled at the leading edge of HSYNC (every 64us) - } - } - amstrad_CRTC_HS = data; - if(amstrad_scanline > 311) // 312 scanlines by default - amstrad_scanline = 0; -} - -/* CRTC - Set new Vertical Sync Status*/ -static void amstrad_Set_VS(int offset, int data) -{ -/* New CRTC_VSync */ -// if (((amstrad_CRTC_VS^data) != 0)&&(data != 0)) { - if (data != 0) { - y_screen_pos = y_screen_offset; - x_screen_pos = x_screen_offset; -/* Reset the amstrad_CRTC_HS_After_VS_Counter */ - amstrad_CRTC_HS_After_VS_Counter = 2; - display_update = 1; - } - amstrad_CRTC_VS = data; -} - -/* CRTC - Set new Cursor Status */ -static void amstrad_Set_CR(int offset, int data) -{ - amstrad_CRTC_CR = data; -} -/* The cursor is not used on Amstrad. The CURSOR signal is available on the Expansion port for other hardware to use. */ - -static struct crtc6845_interface amstrad6845= { - amstrad_Set_MA, // Memory Address register - amstrad_Set_RA, // Row Address register - amstrad_Set_HS, // Horizontal status - amstrad_Set_VS, // Vertical status - amstrad_Set_DE, // Display Enabled status - amstrad_Set_CR, // Cursor status -}; - -/************************************************************************ - * amstrad_vh_screenrefresh - * resfresh the amstrad video screen - ************************************************************************/ - -VIDEO_UPDATE( amstrad ) -{ - rectangle rect; - - rect.min_x = 0; - rect.max_x = AMSTRAD_SCREEN_WIDTH-1; - rect.min_y = 0; - rect.max_y = AMSTRAD_SCREEN_HEIGHT-1; - -#ifdef MAME_DEBUG - if(code_pressed(KEYCODE_Z) && amstrad_system_type == 1) - { - int x; - for(x=0;x<32;x+=2) - { - amstrad_plus_asic_ram[0x2400+x] = ((x/2)<< 4) + x/2; - amstrad_plus_asic_ram[0x2401+x] = x/2; - } - } -#endif - copybitmap(bitmap, amstrad_bitmap, 0,0,0,0,&rect, TRANSPARENCY_NONE,0); - if(amstrad_plus_asic_enabled != 0) - amstrad_plus_sprite_draw(bitmap); - amstrad_scanline = y_screen_pos - 32; - return 0; -} - - - -/************************************************************************ - * amstrad_vh_start - * Initialize the amstrad video emulation - ************************************************************************/ - -VIDEO_START( amstrad ) -{ - amstrad_init_lookups(); - - crtc6845_start(); - crtc6845_config(&amstrad6845); - crtc6845_reset(0); - crtc6845_get_state(0, &amstrad_vidhrdw_6845_state); - - draw_function = amstrad_draw_screen_disabled; - - amstrad_CRTC_HS_After_VS_Counter = 2; - x_screen_pos = x_screen_offset; - y_screen_pos = y_screen_offset; - - amstrad_bitmap = auto_bitmap_alloc_format(AMSTRAD_SCREEN_WIDTH, AMSTRAD_SCREEN_HEIGHT, BITMAP_FORMAT_INDEXED16); - display_update = 1; - - return 0; - -} diff --git a/mess/vidhrdw/apf.c b/mess/vidhrdw/apf.c deleted file mode 100644 index b60e5166c..000000000 --- a/mess/vidhrdw/apf.c +++ /dev/null @@ -1,54 +0,0 @@ -/****************************************************************************** - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6847.h" -#include "includes/apf.h" - -UINT8 *apf_video_ram; -UINT8 apf_m6847_attr; - -static ATTR_CONST UINT8 apf_get_attributes(UINT8 c) -{ - /* this seems to be the same so far, as it gives the same result as vapf */ - UINT8 result = apf_m6847_attr; - if (c & 0x40) result |= M6847_INV; - if (c & 0x80) result |= M6847_AS; - return result; -} - - - -static void apf_vsync_int(int line) -{ - extern unsigned int apf_ints; - if (line) - apf_ints |= 0x10; - else - apf_ints &= ~0x10; - apf_update_ints(); -} - - - -static const UINT8 *apf_get_video_ram(int scanline) -{ - return &apf_video_ram[(scanline / 12) * 0x20 + 0x200]; -} - - - -VIDEO_START(apf) -{ - m6847_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = M6847_VERSION_ORIGINAL_NTSC; - cfg.field_sync_callback = apf_vsync_int; - cfg.get_attributes = apf_get_attributes; - cfg.get_video_ram = apf_get_video_ram; - m6847_init(&cfg); - return 0; -} diff --git a/mess/vidhrdw/apple1.c b/mess/vidhrdw/apple1.c deleted file mode 100644 index fcb40dc0a..000000000 --- a/mess/vidhrdw/apple1.c +++ /dev/null @@ -1,252 +0,0 @@ -/*************************************************************************** - - apple1.c - - Functions to emulate the video hardware of the Apple I. - - The Apple I video hardware was basically a dumb video terminal; in - fact it was based on Steve Wozniak's own design for a simple video - terminal. It had 40 columns by 24 lines of uppercase-only text. - Text could only be output at 60 characters per second, one character - per video frame. The cursor (a blinking @) could only be advanced - using spaces or carriage returns. Carriage returns were the only - control characters recognized. Previously written text could not be - altered, only scrolled off the top of the screen. - - The video memory used seven 1k-bit dynamic shift registers. Six of - these held the 6-bit visible character codes, and one stored the - cursor location as a simple bitmap--the bit for the cursor position - was set to 0, and all the other bits were 1. - - These shift registers were continuously recirculated, completing one - cycle per video frame. As a new line of characters was about to be - scanned by the video beam, that character line would be recirculated - into the shift registers and would simultaneously be stored into a - 6x40-bit line buffer (also a shift register). At this point, if the - cursor location was in this line, a new character could be written - into that location in the shift registers and the cursor could be - advanced. (Carriage returns were not written into the shift - registers; they only advanced the cursor.) - - The characters in the line buffer were recirculated 7 times to - display the 8 scan lines of the characters, before being replaced by - a new line of characters from the main shift registers. - - Cursor blinking was performed by a Signetics 555 timer IC whose - output was gated into the character code signals as they passed into - the line buffer. - - Character images were provided by a Signetics 2513 character - generator ROM, a chip also used in computer terminals such as the - ADM-3A. This ROM had 9 address lines and 5 data lines; it contained - 64 character images, each 5 pixels wide by 8 pixels high, with one - line of pixels being blank for vertical separation. The video - circuitry added the 2 pixels of horizontal separation for each - character. - - A special CLEAR SCREEN switch on the keyboard, directly connected to - the video hardware, could be used to clear the video memory and - return the cursor to the home position. This was completely - independant of the processor. - - A schematic of the Apple I video hardware can be found in the - Apple-1 Operation Manual; look for the schematic titled "Terminal - Section". Most of the functionality modeled here was determined by - reading this schematic. Many of the chips used were standard 74xx - TTL chips, but the shift registers used for the video memory and - line buffer were Signetics 25xx PMOS ICs. These were already - becoming obsolete when the Apple I was built, and detailed - information on them is very hard to find today. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/apple1.h" -#include "mscommon.h" - -static struct terminal *apple1_terminal; - -int apple1_vh_clrscrn_pressed = 0; /* flag for CLEAR SCREEN switch */ - -/* The cursor blinking is generated by a free-running timer with a - 0.52-second period. It is on for 2/3 of this period and off for - 1/3. */ -#define CURSOR_OFF_LENGTH TIME_IN_SEC(0.52/3) - -/**************************************************************************/ - -static int apple1_getcursorcode(int original_code) -{ - /* Cursor uses symbol 0 (an @ sign) in the character generator ROM. */ - return 0; -} - -/**************************************************************************/ - -VIDEO_START( apple1 ) -{ - apple1_terminal = terminal_create( - 0, /* graphics font 0 (the only one we have) */ - 32, /* Blank character is symbol 32 in the ROM */ - 8, /* use 8 bits for the character code */ - apple1_getcursorcode, - 40, 24); /* 40 columns, 24 rows */ - if (!apple1_terminal) - return 1; - - terminal_setcursor(apple1_terminal, 0, 0); - return 0; -} - -/* This function handles all writes to the video display. */ -void apple1_vh_dsp_w (int data) -{ - int x, y; - int cursor_x, cursor_y; - - /* While CLEAR SCREEN is being held down, the hardware is forced - to clear the video memory, so video writes have no effect. */ - if (apple1_vh_clrscrn_pressed) - return; - - /* The video display port only accepts the 7 lowest bits of the char. */ - data &= 0x7f; - - terminal_getcursor(apple1_terminal, &cursor_x, &cursor_y); - - if (data == '\r') { - /* Carriage-return moves the cursor to the start of the next - line. */ - cursor_x = 0; - cursor_y++; - } - else if (data < ' ') { - /* Except for carriage-return, the video hardware completely - ignores all control characters. */ - return; - } - else { - /* For visible characters, only 6 bits of the ASCII code are - used, because the 2513 character generator ROM only - contains 64 symbols. The low 5 bits of the ASCII code are - used directly. Bit 6 is ignored, since it is the same for - all the available characters in the ROM. Bit 7 is inverted - before being used as the high bit of the 6-bit ROM symbol - index, because the block of 32 ASCII symbols containing the - uppercase letters comes first in the ROM. */ - - int romindx = (data & 0x1f) | (((data ^ 0x40) & 0x40) >> 1); - - terminal_putchar(apple1_terminal, cursor_x, cursor_y, romindx); - if (cursor_x < 39) - { - cursor_x++; - } - else - { - cursor_x = 0; - cursor_y++; - } - } - - /* If the cursor went past the bottom line, scroll the text up one line. */ - if (cursor_y == 24) - { - for (y = 1; y < 24; y++) - for (x = 0; x < 40; x++) - terminal_putchar(apple1_terminal, x, y-1, - terminal_getchar(apple1_terminal, x, y)); - - for (x = 0; x < 40; x++) - terminal_putblank(apple1_terminal, x, 23); - - cursor_y--; - } - - terminal_setcursor(apple1_terminal, cursor_x, cursor_y); -} - -/* This function handles clearing the video display on cold-boot or in - response to a press of the CLEAR SCREEN switch. */ -void apple1_vh_dsp_clr (void) -{ - terminal_setcursor(apple1_terminal, 0, 0); - terminal_clear(apple1_terminal); -} - -/* Calculate how long it will take for the display to assert the RDA - signal in response to a video display write. This signal indicates - the display has completed the write and is ready to accept another - write. */ -double apple1_vh_dsp_time_to_ready (void) -{ - int cursor_x, cursor_y; - int cursor_scanline; - double scanline_period = cpu_getscanlineperiod(); - double cursor_hfrac; - - /* The video hardware refreshes the screen by reading the - character codes from its circulating shift-register memory. - Because of the way this memory works, a new character can only - be written into the cursor location at the moment this location - is about to be read. This happens during the first scanline of - the cursor's character line, when the beam reaches the cursor's - horizontal position. */ - - terminal_getcursor(apple1_terminal, &cursor_x, &cursor_y); - cursor_scanline = cursor_y * apple1_charlayout.height; - - /* Each scanline is composed of 455 pixel times. The first 175 of - these are the horizontal blanking period; the remaining 280 are - for the visible part of the scanline. */ - cursor_hfrac = (175 + cursor_x * apple1_charlayout.width) / 455; - - if (cpu_getscanline() == cursor_scanline) { - /* cpu_gethorzbeampos() doesn't account for the horizontal - blanking interval; it acts as if the scanline period is - entirely composed of visible pixel times. However, we can - still use it to find what fraction of the current scanline - period has elapsed. */ - double current_hfrac = cpu_gethorzbeampos() / - Machine->screen[0].width; - if (current_hfrac < cursor_hfrac) - return scanline_period * (cursor_hfrac - current_hfrac); - } - - return cpu_getscanlinetime(cursor_scanline) + - scanline_period * cursor_hfrac; -} - -/* Blink the cursor on or off, as appropriate. */ -static void apple1_vh_cursor_blink (void) -{ - static int blink_on = 1; /* cursor is visible initially */ - int new_blink_on; - - /* The cursor is on for 2/3 of its blink period and off for 1/3. - This is most easily handled by dividing the total elapsed time - by the length of the off-portion of the cycle, giving us the - number of one-third-cycles elapsed, then checking the result - modulo 3. */ - - if (((int) (timer_get_time() / CURSOR_OFF_LENGTH)) % 3 < 2) - new_blink_on = 1; - else - new_blink_on = 0; - - if (new_blink_on != blink_on) { /* have we changed state? */ - if (new_blink_on) - terminal_showcursor(apple1_terminal); - else - terminal_hidecursor(apple1_terminal); - blink_on = new_blink_on; - } -} - -VIDEO_UPDATE( apple1 ) -{ - apple1_vh_cursor_blink(); - terminal_draw(bitmap, NULL, apple1_terminal); - return 0; -} diff --git a/mess/vidhrdw/apple2.c b/mess/vidhrdw/apple2.c deleted file mode 100644 index a74e597f6..000000000 --- a/mess/vidhrdw/apple2.c +++ /dev/null @@ -1,520 +0,0 @@ -/*************************************************************************** - - vidhrdw/apple2.c - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/apple2.h" -#include "profiler.h" - -/***************************************************************************/ - -static const UINT8 *a2_videoram; -static UINT32 a2_videomask; -static UINT32 old_a2; -static tilemap *text_tilemap; -static tilemap *dbltext_tilemap; -static tilemap *lores_tilemap; -static int text_videobase; -static int dbltext_videobase; -static int lores_videobase; -static int fgcolor, bgcolor, flash; -static int alt_charset_value; -static UINT16 *hires_artifact_map; -static UINT16 *dhires_artifact_map; -static UINT8 *lores_tiledata; - -#define BLACK 0 -#define DKRED 1 -#define DKBLUE 2 -#define PURPLE 3 -#define DKGREEN 4 -#define DKGRAY 5 -#define BLUE 6 -#define LTBLUE 7 -#define BROWN 8 -#define ORANGE 9 -#define GRAY 10 -#define PINK 11 -#define GREEN 12 -#define YELLOW 13 -#define AQUA 14 -#define WHITE 15 - -#define ALWAYS_REFRESH 0 -#define FLASH_PERIOD TIME_IN_SEC(0.25) -#define PROFILER_VIDEOTOUCH PROFILER_USER3 - -/*************************************************************************** - helpers -***************************************************************************/ - -INLINE UINT32 effective_a2(void) -{ - return a2 & a2_videomask; -} - - - -static void apple2_draw_tilemap(mame_bitmap *bitmap, const rectangle *cliprect, - int beginrow, int endrow, tilemap *tm, int raw_videobase, int *tm_videobase) -{ - rectangle new_cliprect; - - new_cliprect = *cliprect; - - if (new_cliprect.min_y < beginrow) - new_cliprect.min_y = beginrow; - if (new_cliprect.max_y > endrow) - new_cliprect.max_y = endrow; - if (new_cliprect.min_y > new_cliprect.max_y) - return; - - if (raw_videobase != *tm_videobase) - { - *tm_videobase = raw_videobase; - tilemap_mark_all_tiles_dirty(tm); - } - tilemap_draw(bitmap, &new_cliprect, tm, 0, 0); -} - -/*************************************************************************** - text -***************************************************************************/ - -static void apple2_generaltext_gettileinfo(int gfxset, int videobase, int memory_offset) -{ - int character; - int current_fgcolor = fgcolor; - int current_bgcolor = bgcolor; - int i; - - character = a2_videoram[videobase + memory_offset]; - - if (effective_a2() & VAR_ALTCHARSET) - { - character |= alt_charset_value; - } - else if (flash && (character >= 0x40) && (character <= 0x7f)) - { - i = current_fgcolor; - current_fgcolor = current_bgcolor; - current_bgcolor = i; - } - - SET_TILE_INFO( - gfxset, /* gfx */ - character, /* character */ - (current_fgcolor * 16) + current_bgcolor, /* color */ - 0); /* flags */ -} - -static void apple2_text_gettileinfo(int memory_offset) -{ - apple2_generaltext_gettileinfo(0, text_videobase, memory_offset); -} - -static void apple2_dbltext_gettileinfo(int memory_offset) -{ - apple2_generaltext_gettileinfo(1, dbltext_videobase, memory_offset); -} - -static UINT32 apple2_text_getmemoryoffset(UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows) -{ - /* Special Apple II addressing. Gotta love it. */ - return (((row & 0x07) << 7) | ((row & 0x18) * 5 + col)); -} - -static UINT32 apple2_dbltext_getmemoryoffset(UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows) -{ - return apple2_text_getmemoryoffset(col / 2, row, num_cols / 2, num_rows) + ((col % 2) ? 0x00000 : 0x10000); -} - -static void apple2_text_draw(mame_bitmap *bitmap, const rectangle *cliprect, int page, int beginrow, int endrow) -{ - if (effective_a2() & VAR_80COL) - apple2_draw_tilemap(bitmap, cliprect, beginrow, endrow, dbltext_tilemap, page ? 0x800 : 0x400, &dbltext_videobase); - else - apple2_draw_tilemap(bitmap, cliprect, beginrow, endrow, text_tilemap, page ? 0x800 : 0x400, &text_videobase); -} - -void apple2_set_fgcolor(int color) -{ - if (color != fgcolor) - { - tilemap_mark_all_tiles_dirty(text_tilemap); - tilemap_mark_all_tiles_dirty(dbltext_tilemap); - fgcolor = color; - } -} - -void apple2_set_bgcolor(int color) -{ - if (color != bgcolor) - { - tilemap_mark_all_tiles_dirty(text_tilemap); - tilemap_mark_all_tiles_dirty(dbltext_tilemap); - bgcolor = color; - } -} - -int apple2_get_fgcolor(void) -{ - return fgcolor; -} - -int apple2_get_bgcolor(void) -{ - return bgcolor; -} - -/*************************************************************************** - low resolution graphics -***************************************************************************/ - -static void apple2_lores_gettileinfo(int memory_offset) -{ - static pen_t pal_data[2]; - int ch; - - tile_info.tile_number = 0; - tile_info.pen_data = lores_tiledata; - tile_info.pal_data = pal_data; - tile_info.pen_usage = 0; - tile_info.flags = 0; - - ch = a2_videoram[lores_videobase + memory_offset]; - pal_data[0] = (ch >> 0) & 0x0f; - pal_data[1] = (ch >> 4) & 0x0f; -} - -static void apple2_lores_draw(mame_bitmap *bitmap, const rectangle *cliprect, int page, int beginrow, int endrow) -{ - apple2_draw_tilemap(bitmap, cliprect, beginrow, endrow, lores_tilemap, page ? 0x800 : 0x400, &lores_videobase); -} - -/*************************************************************************** - high resolution graphics -***************************************************************************/ - -static UINT32 apple2_hires_getmemoryoffset(UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows) -{ - /* Special Apple II addressing. Gotta love it. */ - return apple2_text_getmemoryoffset(col, row / 8, num_cols, num_rows) | ((row & 7) << 10); -} - -struct drawtask_params -{ - mame_bitmap *bitmap; - const UINT8 *vram; - int beginrow; - int rowcount; - int columns; -}; - -static void apple2_hires_draw_task(void *param, int task_num, int task_count) -{ - struct drawtask_params *dtparams; - mame_bitmap *bitmap; - const UINT8 *vram; - int beginrow; - int endrow; - int row, col, b; - int offset; - int columns; - UINT8 vram_row[82]; - UINT16 v; - UINT16 *p; - UINT32 w; - UINT16 *artifact_map_ptr; - - dtparams = (struct drawtask_params *) param; - - bitmap = dtparams->bitmap; - vram = dtparams->vram; - beginrow = dtparams->beginrow + (dtparams->rowcount * task_num / task_count); - endrow = dtparams->beginrow + (dtparams->rowcount * (task_num+1) / task_count) - 1; - columns = dtparams->columns; - - vram_row[0] = 0; - vram_row[columns + 1] = 0; - - assert((columns == 40) || (columns == 80)); - - for (row = beginrow; row <= endrow; row++) - { - for (col = 0; col < 40; col++) - { - offset = apple2_hires_getmemoryoffset(col, row, 0, 0); - - switch(columns) { - case 40: - vram_row[1+col] = vram[offset]; - break; - - case 80: - vram_row[1+(col*2)+0] = vram[offset + 0x10000]; - vram_row[1+(col*2)+1] = vram[offset + 0x00000]; - break; - } - } - - p = BITMAP_ADDR16(bitmap, row, 0); - - for (col = 0; col < columns; col++) - { - w = (((UINT32) vram_row[col+0] & 0x7f) << 0) - | (((UINT32) vram_row[col+1] & 0x7f) << 7) - | (((UINT32) vram_row[col+2] & 0x7f) << 14); - - switch(columns) { - case 40: - artifact_map_ptr = &hires_artifact_map[((vram_row[col+1] & 0x80) >> 7) * 16]; - for (b = 0; b < 7; b++) - { - v = artifact_map_ptr[((w >> (b + 7-1)) & 0x07) | (((b ^ col) & 0x01) << 3)]; - *(p++) = v; - *(p++) = v; - } - break; - - case 80: - for (b = 0; b < 7; b++) - { - v = dhires_artifact_map[((((w >> (b + 7-1)) & 0x0F) * 0x11) >> (((2-(col*7+b))) & 0x03)) & 0x0F]; - *(p++) = v; - } - break; - - default: - assert(0); - break; - } - } - } -} - -static void apple2_hires_draw(mame_bitmap *bitmap, const rectangle *cliprect, int page, int beginrow, int endrow) -{ - struct drawtask_params dtparams; - - if (beginrow < cliprect->min_y) - beginrow = cliprect->min_y; - if (endrow > cliprect->max_y) - endrow = cliprect->max_y; - if (endrow < beginrow) - return; - - dtparams.vram = a2_videoram + (page ? 0x4000 : 0x2000); - dtparams.bitmap = bitmap; - dtparams.beginrow = beginrow; - dtparams.rowcount = (endrow + 1) - beginrow; - dtparams.columns = ((effective_a2() & (VAR_DHIRES|VAR_80COL)) == (VAR_DHIRES|VAR_80COL)) ? 80 : 40; - - osd_parallelize(apple2_hires_draw_task, &dtparams, dtparams.rowcount); -} - - - -/*************************************************************************** - video core -***************************************************************************/ - -int apple2_video_start(const UINT8 *vram, size_t vram_size, UINT32 ignored_softswitches, int hires_modulo) -{ - int i, j; - UINT16 c; - UINT8 *apple2_font; - - static const UINT8 hires_artifact_color_table[] = - { - BLACK, PURPLE, GREEN, WHITE, - BLACK, BLUE, ORANGE, WHITE - }; - - static const UINT8 dhires_artifact_color_table[] = - { - BLACK, DKGREEN, BROWN, GREEN, - DKRED, DKGRAY, ORANGE, YELLOW, - DKBLUE, BLUE, GRAY, AQUA, - PURPLE, LTBLUE, PINK, WHITE - }; - - fgcolor = 15; - bgcolor = 0; - flash = 0; - apple2_font = memory_region(REGION_GFX1); - alt_charset_value = memory_region_length(REGION_GFX1) / 16; - a2_videoram = vram; - - text_tilemap = tilemap_create( - apple2_text_gettileinfo, - apple2_text_getmemoryoffset, - TILEMAP_OPAQUE, - 7*2, 8, - 40, 24); - - dbltext_tilemap = tilemap_create( - apple2_dbltext_gettileinfo, - apple2_dbltext_getmemoryoffset, - TILEMAP_OPAQUE, - 7, 8, - 80, 24); - - lores_tilemap = tilemap_create( - apple2_lores_gettileinfo, - apple2_text_getmemoryoffset, - TILEMAP_OPAQUE, - 14, 8, - 40, 24); - - /* 2^3 dependent pixels * 2 color sets * 2 offsets */ - hires_artifact_map = auto_malloc(sizeof(UINT16) * 8 * 2 * 2); - - /* 2^4 dependent pixels */ - dhires_artifact_map = auto_malloc(sizeof(UINT16) * 16); - - /* 14x8 */ - lores_tiledata = auto_malloc(sizeof(UINT8) * 14 * 8); - - /* build lores_tiledata */ - memset(lores_tiledata + 0*14, 0, 4*14); - memset(lores_tiledata + 4*14, 1, 4*14); - - /* build hires artifact map */ - for (i = 0; i < 8; i++) - { - for (j = 0; j < 2; j++) - { - if (i & 0x02) - { - if ((i & 0x05) != 0) - c = 3; - else - c = j ? 2 : 1; - } - else - { - if ((i & 0x05) == 0x05) - c = j ? 1 : 2; - else - c = 0; - } - hires_artifact_map[ 0 + j*8 + i] = hires_artifact_color_table[(c + 0) % hires_modulo]; - hires_artifact_map[16 + j*8 + i] = hires_artifact_color_table[(c + 4) % hires_modulo]; - } - } - - /* build double hires artifact map */ - for (i = 0; i < 16; i++) - { - dhires_artifact_map[i] = dhires_artifact_color_table[i]; - } - - memset(&old_a2, 0, sizeof(old_a2)); - text_videobase = lores_videobase = 0; - a2_videomask = ~ignored_softswitches; - return 0; -} - - - -VIDEO_START( apple2 ) -{ - if (apple2_video_start(mess_ram, mess_ram_size, VAR_80COL | VAR_ALTCHARSET | VAR_DHIRES, 4)) - return 1; - - /* hack to fix the colors on apple2/apple2p */ - fgcolor = 0; - bgcolor = 15; - return 0; -} - - -VIDEO_START( apple2p ) -{ - if (apple2_video_start(mess_ram, mess_ram_size, VAR_80COL | VAR_ALTCHARSET | VAR_DHIRES, 8)) - return 1; - - /* hack to fix the colors on apple2/apple2p */ - fgcolor = 0; - bgcolor = 15; - return 0; -} - - -VIDEO_START( apple2e ) -{ - return apple2_video_start(mess_ram, mess_ram_size, 0, 8); -} - - -VIDEO_UPDATE( apple2 ) -{ - int page; - int new_flash; - UINT32 new_a2; - - new_flash = ((int) (timer_get_time() / FLASH_PERIOD)) & 1; - if (flash != new_flash) - { - flash = new_flash; - tilemap_mark_all_tiles_dirty(text_tilemap); - tilemap_mark_all_tiles_dirty(dbltext_tilemap); - } - - /* read out relevant softswitch variables; to see what has changed */ - new_a2 = effective_a2(); - if (new_a2 & VAR_80STORE) - new_a2 &= ~VAR_PAGE2; - new_a2 &= VAR_TEXT | VAR_MIXED | VAR_HIRES | VAR_DHIRES | VAR_80COL | VAR_PAGE2 | VAR_ALTCHARSET; - - if (ALWAYS_REFRESH || (new_a2 != old_a2)) - { - old_a2 = new_a2; - tilemap_mark_all_tiles_dirty(text_tilemap); - tilemap_mark_all_tiles_dirty(dbltext_tilemap); - tilemap_mark_all_tiles_dirty(lores_tilemap); - } - - /* choose which page to use */ - page = (new_a2 & VAR_PAGE2) ? 1 : 0; - - if (effective_a2() & VAR_TEXT) - { - apple2_text_draw(bitmap, cliprect, page, 0, 191); - } - else if ((effective_a2() & VAR_HIRES) && (effective_a2() & VAR_MIXED)) - { - apple2_hires_draw(bitmap, cliprect, page, 0, 159); - apple2_text_draw(bitmap, cliprect, page, 160, 191); - } - else if (effective_a2() & VAR_HIRES) - { - apple2_hires_draw(bitmap, cliprect, page, 0, 191); - } - else if (effective_a2() & VAR_MIXED) - { - apple2_lores_draw(bitmap, cliprect, page, 0, 159); - apple2_text_draw(bitmap, cliprect, page, 160, 191); - } - else - { - apple2_lores_draw(bitmap, cliprect, page, 0, 191); - } - return 0; -} - -void apple2_video_touch(offs_t offset) -{ - profiler_mark(PROFILER_VIDEOTOUCH); - if (offset >= text_videobase) - tilemap_mark_tile_dirty(text_tilemap, offset - text_videobase); - if (offset >= dbltext_videobase) - tilemap_mark_tile_dirty(dbltext_tilemap, offset - dbltext_videobase); - if (offset >= lores_videobase) - tilemap_mark_tile_dirty(lores_tilemap, offset - text_videobase); - profiler_mark(PROFILER_END); -} diff --git a/mess/vidhrdw/apple2gs.c b/mess/vidhrdw/apple2gs.c deleted file mode 100644 index c27ade0a3..000000000 --- a/mess/vidhrdw/apple2gs.c +++ /dev/null @@ -1,132 +0,0 @@ -/********************************************************************* - - vidhrdw/apple2gs.c - - Apple IIgs video code - -*********************************************************************/ - -#include "mame.h" -#include "includes/apple2.h" -#include "includes/apple2gs.h" - - - -static mame_bitmap *apple2gs_legacy_gfx; -UINT16 apple2gs_bordercolor; - -VIDEO_START( apple2gs ) -{ - apple2gs_bordercolor = 0; - - if (apple2_video_start(apple2gs_slowmem, 0x20000, 0, 8)) - return 1; - - apple2gs_legacy_gfx = auto_bitmap_alloc(560, 192); - if (!apple2gs_legacy_gfx) - return 1; - - return 0; -} - - - -VIDEO_UPDATE( apple2gs ) -{ - const UINT8 *vram; - UINT16 *scanline; - UINT8 scb, b; - int i, j, row, col, palette; - UINT16 last_pixel = 0, pixel; - rectangle new_cliprect; - - if (apple2gs_newvideo & 0x80) - { - /* use Apple IIgs super hires video */ - for (i = 0; i < 256; i++) - { - palette_set_color(machine, i + 16, - ((apple2gs_slowmem[0x19E00 + (i * 2) + 1] >> 0) & 0x0F) * 17, - ((apple2gs_slowmem[0x19E00 + (i * 2) + 0] >> 4) & 0x0F) * 17, - ((apple2gs_slowmem[0x19E00 + (i * 2) + 0] >> 0) & 0x0F) * 17); - } - - for (row = 0; row < 200; row++) - { - scb = apple2gs_slowmem[0x19D00 + row]; - palette = ((scb & 0x0f) << 4) + 16; - - vram = &apple2gs_slowmem[0x12000 + (row * 160)]; - scanline = BITMAP_ADDR16(bitmap, row, 0); - - if (scb & 0x80) - { - for (col = 0; col < 160; col++) - { - b = vram[col]; - scanline[col * 4 + 0] = palette + 0 + ((b >> 6) & 0x03); - scanline[col * 4 + 1] = palette + 4 + ((b >> 4) & 0x03); - scanline[col * 4 + 2] = palette + 8 + ((b >> 2) & 0x03); - scanline[col * 4 + 3] = palette + 12 + ((b >> 0) & 0x03); - } - } - else - { - for (col = 0; col < 160; col++) - { - b = vram[col]; - pixel = (b >> 4) & 0x0f; - - if ((scb & 0x20) && !pixel) - pixel = last_pixel; - else - last_pixel = pixel; - pixel += palette; - scanline[col * 4 + 0] = pixel; - scanline[col * 4 + 1] = pixel; - - b = vram[col]; - pixel = (b >> 0) & 0x0f; - - if ((scb & 0x20) && !pixel) - pixel = last_pixel; - else - last_pixel = pixel; - pixel += palette; - scanline[col * 4 + 2] = pixel; - scanline[col * 4 + 3] = pixel; - } - } - } - } - else - { - /* call legacy Apple II video rendering */ - new_cliprect.min_x = MAX(cliprect->min_x - 40, 0); - new_cliprect.min_y = MAX(cliprect->min_y - 4, 0); - new_cliprect.max_x = MIN(cliprect->max_x - 40, 559); - new_cliprect.max_y = MIN(cliprect->max_y - 4, 191); - if ((new_cliprect.max_x > new_cliprect.min_x) && (new_cliprect.max_y > new_cliprect.min_y)) - video_update_apple2(machine, screen, apple2gs_legacy_gfx, &new_cliprect); - - for (i = 0; i < 192; i++) - { - scanline = BITMAP_ADDR16(bitmap, i + 4, 0); - - for (j = 0; j < 40; j++) - { - scanline[j + 0] = apple2gs_bordercolor; - scanline[j + 40 + 560] = apple2gs_bordercolor; - } - memcpy(scanline + 40, BITMAP_ADDR16(apple2gs_legacy_gfx, i, 0), 560 * sizeof(UINT16)); - } - - for (i = 0; i < 4; i++) - { - memset16(BITMAP_ADDR16(bitmap, i + 0, 0), apple2gs_bordercolor, 640); - memset16(BITMAP_ADDR16(bitmap, i + 4 + 192, 0), apple2gs_bordercolor, 640); - } - } - return 0; -} - diff --git a/mess/vidhrdw/aquarius.c b/mess/vidhrdw/aquarius.c deleted file mode 100644 index 8abde0566..000000000 --- a/mess/vidhrdw/aquarius.c +++ /dev/null @@ -1,54 +0,0 @@ -/*************************************************************************** - - aquarius.c - - Functions to emulate the video hardware of the aquarius. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/aquarius.h" - -static tilemap *aquarius_tilemap; - -/**************************************************************************/ - -static void aquarius_gettileinfo(int memory_offset) -{ - SET_TILE_INFO( - 0, /* gfx */ - videoram[memory_offset + 40], /* character */ - videoram[memory_offset + 0x400], /* color */ - 0) /* flags */ -} - -VIDEO_START( aquarius ) -{ - aquarius_tilemap = tilemap_create( - aquarius_gettileinfo, - tilemap_scan_rows, - TILEMAP_OPAQUE, - 8, 8, - 40, 24); - - return 0; -} - -VIDEO_UPDATE( aquarius ) -{ - tilemap_draw(bitmap, NULL, aquarius_tilemap, 0, 0); - return 0; -} - -WRITE8_HANDLER( aquarius_videoram_w ) -{ - if (videoram[offset] != data) - { - if ((offset >= 40) && (offset < 40+960)) - tilemap_mark_tile_dirty(aquarius_tilemap, offset - 40); - else if ((offset >= 0x400) && (offset < 0x400+960)) - tilemap_mark_tile_dirty(aquarius_tilemap, offset - 0x400); - videoram[offset] = data; - } -} diff --git a/mess/vidhrdw/arcadia.c b/mess/vidhrdw/arcadia.c deleted file mode 100644 index b781a6b3b..000000000 --- a/mess/vidhrdw/arcadia.c +++ /dev/null @@ -1,856 +0,0 @@ -/****************************************************************************** - PeT mess@utanet.at 2001 -******************************************************************************/ -#include "driver.h" - -#include "includes/arcadia.h" - -/* - emulation of signetics 2637 video/audio device - - seams to me like a special microcontroller - mask programmed - 1k x 8 ram available; only first 0x300 bytes mapped to cpu - */ - -/* -0x18fe bit 4 set means sound off? - -Sound is implemented on the latest code version, but I lost the -source to it. I *think* it's a straightforward value to frequency -calculation, might be 7874/(n+1) (from the Acetronic system), -but it is almost certainly something like - -Clock Freq / (2^Something) / (Byte Data + 1) - -It is more or less right on the release version, so a bit of -experimenting should come up with the right code. - -I also believe (and this isn't clear from the tech I think) that -the CPU is frozen during display time. - -PSR - - - Technical Information about the Emerson Arcadia 2001 - -Written by Paul Robson (autismuk@aol.com) - -Created on 25th June 1998. -Last updated on 22nd July 1998. - -Introduction ------------- - -This document is an attempt to exactly describe the internal workings of -the Emerson Arcadia 2001 Videogame Console. - -1. General ----------- - -- Signetics 2650 CPU at 3.58 Mhz -- 1k x 8 of RAM (physically present but mostly unavailable :-( ) -- 128 x 208 pixel resolution (alternate 128 x 104 mode available) -- 16 x 26 background display (2 colour 8 x 8 pixel characters) (can be 16x13= -) -- 4 x 8 x 8 Sprites (2 colour 8 x 8 pixels) -- total of 8 user defined characters available... jaw drops in amazement. -- 2 x 2 axis Analogue Joysticks -- 2 x 12 button Controllers -- 3 buttons on system unit and CPU Reset -- Single channel beeper - -2. Memory map -------------- - -The memory map of the 2001 is below. - -0000..0FFF 4k ROM Block 1 (first 4k of a cartridge) -1000..17FF (Unmapped) -1800..18CF Screen display , upper 13 lines, characters/palette high bit= -s -18D0..18EF Free for user programs. -18F0..18F7 Sprite coordinates y0x0y1x1y2x2y3x3 (Section 10). - The sprite uses a UDG 0 =3D $1980,1 =3D $1988,2 =3D $1990 3=20= -=3D $1998 -18F8..18FB User memory. -18FC A control byte, function unknown [is almost always EE ED or=20= -EF] -18FD..18FE Sound Hardware Pitch & Volume. The 3 high bits of 18FE contr= -ol - the horizontal scanline scrolling. -18FF Current Character Line -1900..1902 Keypad Player 1 -1903 Unmapped -1904..1906 Keypad Player 2 -1907 Unmapped -1908 Controller Buttons -1909..197F Unmapped -1980..19BF User defined characters (8 possible, 8 bytes per character) -19C0..19F7 Unknown usage - not used for anything, apparently. -19F8 Screen resolution (bit 6) -19F9 Background Colour / Colour #0 (bits 0..5) -19FA Sprite Colour 2 & 3 (bits 0..5) -19FB Sprite Colour 0 & 1 (bits 0..5) -19FC..19FD Sprite-Sprite & Sprite-Background Collision bits (see later) -19FE..19FF Paddles (read only) 19FE is Player 2 , 19FF is Player 1 -1A00..1ACF Screen display , lower 13 lines, characters/palette high bit= -s -1AD0..1AFF User memory -1B00..1FFF Unmapped -2000..2FFF 4k ROM Block 2 (for 8k carts such as Jungler) -3000..7FFF Unknown. The flyers talk about the ability to have 28k - carts. This would only be feasible if 0000-7FFF was all ROM - except for the '1111' page. - -3. Video Memory ---------------- - -The screen table is at 1800-CF and 1A00-CF. Each page has 13 lines of the -screen (16 bytes per line,26 lines in total, 208 scan lines). The 2 most -significant bits of each byte are colour data, the 6 least significant -are character data. The resolution of the Arcadia is 128 x 208 pixels. - -It is possible to halve the screen resolution so 1A00..1ACF can -be used for code. This is controlled by bit 6 of $19F8. - -The byte at location $18FF is the current Character Line address, lower -4 bits only. The start line goes from 1800 to 18C0 then from 1900 to 19C0. -The 4 least significant bits of this count 0123456789ABC0123456789ABC, -going to D when in vertical blank. The 4 most significant bits are always -'1'. Some games do use this for scrolling effects - a good example of this -is the routine at $010F in Alien Invaders which scrolls the various bits of -the screen about using the memory locations $18FF and $18FE. - -The screen can be scrolled upto 7 pixels to the left using the high 3 bits -of $18FE. This is used in Alien Invaders. - -A line beginning with $C0 contains block graphics. Each square contains -3 wide x 2 high pixels, coloured as normal. The 3 least significant bits -are the top, the next 3 bits are the bottom. Alien Invaders uses this for -shields. The graphics are returned to normal for the next line. - -The VBlank signal (maybe VSYNC) is connected to the SENSE input. This is -logic '1' when the system is in VBLANK. - -The Flag line does.... something graphical - it might make the sprites -half width/double height perhaps. Breakaway sets this when the bats are -double size in vertical mode. - -4. Character codes ------------------- - -Character codes 00..37 to be in a ROM somewhere in the Emerson. These -are known, others may be discovered by comparing the screen snapshots -against the character tables. If the emulator displays an exclamation -mark you've found one. Get a snapshot to see what it looks like -normally and let me know. Codes 38..3F are taken from RAM. - -00 (space) -01..0F Graphic Characters -10..19 0..9 -1A..33 A..Z -34 Decimal Point -35..37 Unknown - Control Characters ? -38..3F User Defined Characters (8 off, from 1980..19FF) - -Character data is stored 8 bits per character , as a single plane graphic -The 2nd and 3rd bits of palette data come from the screen tables, so there -are two colours per character and 4 possible palette selections for the -background. - -A character set is available from Paul Robson (autismuk@aol.com) on -request. - -5. ROM Images -------------- - -ROM Images are loaded into 0000-0FFF. If the ROM is an 8k ROM it is -also loaded into 2000-2FFF. I do not know how 12k images or greater -are mapped but I doubt that many exist (there is very little RAM -available for user programs). - -6. Controls ------------ - -All key controls are indicated by a bit going to '1'. Unused bits at -the memory location are set to zero. - -Keypads -------- - -1900-1902 (Player 1) 1904-1906 (Player 2) - -The keypads are arranged as follows :- - - 1 2 3 - 4 5 6 - 7 8 9 - Enter 0 Clear - -Row 1/4/7 is 1900/4, Row 2/5/8/0 is 1901/5 and Row 3/6/9 is 1902/6 -The topmost key is bit 3, the lowermost key is bit 0. - -Location $1908 contains bit 0 Start,bit 1 Option,bit 2 Difficulty. -These keys are "latched" i.e. a press causes a logic 1 to appear -on the current frame. - -The paddles are mapped onto 19FE (player 2) and 19FF (player 1). The -currently selected direction seems to toggle every frame, and the -only way it seems to be possible to work out which axis is being -accessed is to count the number of frames. Each game I have tried -is doing this. "Cat Tracks" swaps the paddles every game ; the reason -is as yet unknown. - -The fire buttons are equivalent to Keypad #2 e.g. they are 1901 and -1905 bit 3. - -7. Sound --------- - -Single channel buzz. Need to do more with this ! - -18FC control byte ? -18FD pitch -18FE volume ? (lower 4 bits) - -8. Sprites ----------- - -Sprite pointers are at 18F0..18F7 (there are four of them). The graphics -used are the ones in the 1980..19BF UDG table (the first four). - -Sprite addresses (x,y) are converted to offsets in the 128 x 208 as follows=20= -:- - -1) 1's complement the y coordinate -2) subtract 16 from the y coordinate -3) subtract 44 from the x coordinate - -9. Palette ----------- - -The Palette is encoded between 19F8-19FB. This section describes the method -by which colours are allocated. There are 8 colours, information is coded 3=20 -bits per colour (usually 2 colours per byte) - - Colour Code Name Colour Elements - ------ ---- ---- --------------- - 7 111 Black (GRB =3D 000) - 6 110 Blue (GRB =3D 001) - 5 101 Red (GRB =3D 010) - 4 100 Magenta (GRB =3D 011) - 3 011 Green (GRB =3D 100) - 2 010 Cyan (GRB =3D 101) - 1 001 Yellow (GRB =3D 110) - 0 000 White (GRB =3D 111) - -Bits 0..2 of $19F9 are the background colour -Bits 3..5 of $19F9 are the colours of tile set 0 - tiles 1,2 and 3 are generated by adding 2,4,6 to the colour. - this is probably what the xor gates are for ! -Bits 0..5 of $19FB are the colours of Sprites 0 & 1 (sprite 1 is low bits) -Bits 0..5 of $19FA are the colours of Sprites 2 & 3 (sprite 3 is low bits) - -Bits 6..7 of $19F9..B and all of $19F8 (except bit 6) currently has -no known function. Brightness ??? - -10. Collision Detection ------------------------ - -Bits are set to zero on a collision - I think they are reset at the -frame start. There are two locations : one is for sprite/background -collisions, one is for sprite/sprite collisions. - -19FC bits 0..3 are collision between sprites 0..3 and the background. - -19FD bit 0 is sprite 0 / 1 collision - bit 1 is sprite 0 / 2 collision - bit 2 is sprite 0 / 3 collision - bit 3 is sprite 1 / 2 collision - bit 4 is sprite 1 / 3 collision (guess) - bit 5 is sprite 2 / 3 collision (guess) - -11. Other information ---------------------- - -Interrupts are not supported.. maybe. All cartridges have a RETC UN -at 0003 (presumably the interrupt vector). This may be called on VSYNC -or VBLANK, but until I find a cart which uses it, who cares ! - -The Read/Write 2650 CPU Commands do not appear to be connected to -anything in hardware. No cartridge has been found which uses them. -The emulator crashes to the debugger with these commands, as it does -with any illegal commands. - -12. Frame Description ---------------------- - -This describes the frame rendition (for NTSC). The description Starts at -the end of a display frame, e.g. scanline 216 on the diagram. For a PAL -machine these will be slightly different - however I don't think that -this would affect anything because of the way timing is usually done on -games, and the fact that scanline level operations are virtually -impossible. - -1. Set the VBLANK (SENSE) line to logic 1, indicating entry of vblank -2. Set the current character address to $FD (off screen) -3. Wait for 46+8 Scanlines. (see frame diagram) -4. Set the VBLANK (SENSE) line to logic 0. -5. Reset the Collision Bytes to $FF -6. For 1800..18C0, then for 1A00..1AC0 (if not low resolution) -6a. Set the current character address to $Fx -6b. wait for 8 (standard) or 16 (low resolution) Scanlines -6c. Render the line using the current character & vertical scroll data -6d. Draw all sprites which terminate in the area just drawn. -7. Restart the frame (from Stage 1). - -Stage 5 can be replaced by execute 208 Scanlines if this is not a 'redraw' -frame. - -0 --------------------------- - ! Initial Vertical Blank ! -8 --------------------------- - ! Display (208 scanlines) ! -216 --------------------------- - ! Frame Retrace ! -262 --------------------------- - ---------------------------------------------------------------- - -pet additions: -Golf has a 4kbyte block at 0x0000 and a 2kbyte block at 0x4000. - -19f9 bit 6 -switches between the axes of the analog stick -of both? players -(must not affect ad converter immediately) - -Sprites are used around the playfield a lot -(space vultures, grand slam tennis, space attack, ...) -some cartridges think the left 16? pixels are not displayed -so I display a 32 pixel frame left and right, -a 8 pixel frame at the top and a bottom frame of 24 pixel - -character color ((ch&0xc0)>>5) | ((mem[0x19f9]&8)>>3) - -1903 palladium player 1 4 additional keys -1907 palladium player 2 4 additional keys - -19f8 bit 6 - off 13 charlines - on 26 charlines -19f9 - bit 7 - off doublescan - on no doublescan - -19f8 bit 7 graphics mode on (lower 6 bits descripe rectangles) -0xc0 in line switches to graphics mode in this line -0x40 in line switches to char mode in this line - 22111000 - 22111000 - 22111000 - 22111000 - 55444333 - 55444333 - 55444333 - 55444333 - -sprite doublescanned (vertical enlarged) -sprite 0 0x19fb bit 7 -sprite 1 0x19fb bit 6 -sprite 2 0x19fa bit 7 -sprite 3 0x19fa bit 6 - -18fc crtc vertical position register -in PAL palladium - 0xff 16*16+6 visible - about 8 lines above and below - 0x00 in PAL palladium - 7 lines visible - -18fd - bit 7 on - alternate character mode color2x2 - (2 backgrounds, 2 foreground colors) - -color2x2 - character bit 7 -> background select - 0 19f8 bits 2..0 - 1 19f9 bits 2..0 - character bit 6 -> foreground select - 0 19f8 bits 5..3 - 1 19f9 bits 5..3 - -normal mode: - character bit 7..6 foreground colors bits 2..1 - 19f9 bits 0..2 ->background color - 19f9 bit3 foreground color bit 0 - -19f8, 19f9 readback alway 0xff -1900 readback 0x5y -17bf readback 0x54 -1b00 holds value for a moment, gets 0x50 - -sprite y position - basically the same as crtc vertical psoition register, but 1 line later - -sprite x position - not 44 but 43 - -*/ - - -static UINT8 arcadia_rectangle[0x40][8]; -static UINT8 chars[0x40][8]={ - // read from the screen generated from a palladium - { 0,0,0,0,0,0,0,0 }, // 00 (space) - { 1,2,4,8,16,32,64,128 }, // ; 01 (\) - { 128,64,32,16,8,4,2,1 }, // ; 02 (/) - { 255,255,255,255,255,255,255,255 }, //; 03 (solid block) - { 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00 },// 04 (?) - { 3,3,3,3,3,3,3,3 }, // ; 05 (half square right on) - { 0,0,0,0,0,0,255,255 }, // ; 06 (horz lower line) - { 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 },// 07 (half square left on) - { 0xff,0xff,3,3,3,3,3,3 }, // 08 (?) - { 0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 },// 09 (?) - { 192,192,192,192,192,192,255,255 }, //; 0A (!_) - { 3,3,3,3,3,3,255,255 }, // ; 0B (_!) - { 1,3,7,15,31,63,127,255 }, // ; 0C (diagonal block) - { 128,192,224,240,248,252,254,255 }, //; 0D (diagonal block) - { 255,254,252,248,240,224,192,128 }, //; 0E (diagonal block) - { 255,127,63,31,15,7,3,1 }, // ; 0F (diagonal block) - { 0x00,0x1c,0x22,0x26,0x2a,0x32,0x22,0x1c },// 10 0 - { 0x00,0x08,0x18,0x08,0x08,0x08,0x08,0x1c },// 10 1 - { 0x00,0x1c,0x22,0x02,0x0c,0x10,0x20,0x3e },// 10 2 - { 0x00,0x3e,0x02,0x04,0x0c,0x02,0x22,0x1c },// 10 3 - { 0x00,0x04,0x0c,0x14,0x24,0x3e,0x04,0x04 },// 10 4 - { 0x00,0x3e,0x20,0x3c,0x02,0x02,0x22,0x1c },// 10 5 - { 0x00,0x0c,0x10,0x20,0x3c,0x22,0x22,0x1c },// 10 6 - { 0x00,0x7c,0x02,0x04,0x08,0x10,0x10,0x10 },// 10 7 - { 0x00,0x1c,0x22,0x22,0x1c,0x22,0x22,0x1c },// 10 8 - { 0x00,0x1c,0x22,0x22,0x3e,0x02,0x04,0x18 },// 10 9 - { 0x00,0x08,0x14,0x22,0x22,0x3e,0x22,0x22 },// 10 A - { 0x00,0x3c,0x22,0x22,0x3c,0x22,0x22,0x3c },// 10 B - { 0x00,0x1c,0x22,0x20,0x20,0x20,0x22,0x1c },// 10 C - { 0x00,0x3c,0x22,0x22,0x22,0x22,0x22,0x3c },// 10 D - { 0x00,0x3e,0x20,0x20,0x3c,0x20,0x20,0x3e },// 10 E - { 0x00,0x3e,0x20,0x20,0x3c,0x20,0x20,0x20 },// 10 F - { 0x00,0x1e,0x20,0x20,0x20,0x26,0x22,0x1e },// 10 G - { 0x00,0x22,0x22,0x22,0x3e,0x22,0x22,0x22 },// 10 H - { 0x00,0x1c,0x08,0x08,0x08,0x08,0x08,0x1c },// 10 I - { 0x00,0x02,0x02,0x02,0x02,0x02,0x22,0x1c },// 10 J - { 0x00,0x22,0x24,0x28,0x30,0x28,0x24,0x22 },// 10 K - { 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x3e },// 10 L - { 0x00,0x22,0x36,0x2a,0x2a,0x22,0x22,0x22 },// 10 M - { 0x00,0x22,0x22,0x32,0x2a,0x26,0x22,0x22 },// 10 N - { 0x00,0x1c,0x22,0x22,0x22,0x22,0x22,0x1c },// 10 O - { 0x00,0x3c,0x22,0x22,0x3c,0x20,0x20,0x20 },// 10 P - { 0x00,0x1c,0x22,0x22,0x22,0x2a,0x24,0x1a },// 10 Q - { 0x00,0x3c,0x22,0x22,0x3c,0x28,0x24,0x22 },// 10 R - { 0x00,0x1c,0x22,0x20,0x1c,0x02,0x22,0x1c },// 10 S - { 0x00,0x3e,0x08,0x08,0x08,0x08,0x08,0x08 },// 10 T - { 0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x1c },// 10 U - { 0x00,0x22,0x22,0x22,0x22,0x22,0x14,0x08 },// 10 V - { 0x00,0x22,0x22,0x22,0x2a,0x2a,0x36,0x22 },// 10 W - { 0x00,0x22,0x22,0x14,0x08,0x14,0x22,0x22 },// 10 X - { 0x00,0x22,0x22,0x14,0x08,0x08,0x08,0x08 },// 10 Y - { 0x00,0x3e,0x02,0x04,0x08,0x10,0x20,0x3e },// 10 Z - { 0,0,0,0,0,0,0,8 }, // 34 . - { 0,0,0,0,0,8,8,0x10 }, // 35 , - { 0,0,8,8,0x3e,8,8,0 }, // 36 + - { 0,8,0x1e,0x28,0x1c,0xa,0x3c,8 }, // 37 $ - // 8x user defined -}; - -static struct { - int line; - int charline; - int shift; - int ad_delay; - int ad_select; - int ypos; - bool graphics; - bool doublescan; - bool lines26; - bool multicolor; - struct { int x, y; } pos[4]; - UINT8 bg[262][16+2*XPOS/8]; - int breaker; - union { - UINT8 data[0x400]; - struct { - // 0x1800 - UINT8 chars1[13][16]; - UINT8 ram1[2][16]; - struct { - UINT8 y,x; - } pos[4]; - UINT8 ram2[4]; - UINT8 vpos; - UINT8 sound1, sound2; - UINT8 char_line; - // 0x1900 - UINT8 pad1a, pad1b, pad1c, pad1d; - UINT8 pad2a, pad2b, pad2c, pad2d; - UINT8 keys, unmapped3[0x80-9]; - UINT8 chars[8][8]; - UINT8 unknown[0x38]; - UINT8 pal[4]; - UINT8 collision_bg, - collision_sprite; - UINT8 ad[2]; - // 0x1a00 - UINT8 chars2[13][16]; - UINT8 ram3[3][16]; - } d; - } reg; - mame_bitmap *bitmap; -} arcadia_video={ 0 }; - -VIDEO_START( arcadia ) -{ - int i; - for (i=0; i<0x40; i++) - { - arcadia_rectangle[i][0]=0; - arcadia_rectangle[i][4]=0; - if (i&1) arcadia_rectangle[i][0]|=3; - if (i&2) arcadia_rectangle[i][0]|=0x1c; - if (i&4) arcadia_rectangle[i][0]|=0xe0; - if (i&8) arcadia_rectangle[i][4]|=3; - if (i&0x10) arcadia_rectangle[i][4]|=0x1c; - if (i&0x20) arcadia_rectangle[i][4]|=0xe0; - arcadia_rectangle[i][1]=arcadia_rectangle[i][2]=arcadia_rectangle[i][3]=arcadia_rectangle[i][0]; - arcadia_rectangle[i][5]=arcadia_rectangle[i][6]=arcadia_rectangle[i][7]=arcadia_rectangle[i][4]; - } - - arcadia_video.bitmap = auto_bitmap_alloc(Machine->screen[0].width, Machine->screen[0].height); - return 0; -} - -READ8_HANDLER(arcadia_video_r) -{ - UINT8 data=0; - switch (offset) { - case 0xff: data=arcadia_video.charline|0xf0;break; - case 0x100: data=input_port_1_r(0);break; - case 0x101: data=input_port_2_r(0);break; - case 0x102: data=input_port_3_r(0);break; - case 0x103: data=input_port_4_r(0);break; - case 0x104: data=input_port_5_r(0);break; - case 0x105: data=input_port_6_r(0);break; - case 0x106: data=input_port_7_r(0);break; - case 0x107: data=input_port_8_r(0);break; - case 0x108: data=input_port_0_r(0);break; -#if 0 - case 0x1fe: - if (arcadia_video.ad_select) data=input_port_10_r(0)<<3; - else data=input_port_9_r(0)<<3; - break; - case 0x1ff: - if (arcadia_video.ad_select) data=input_port_7_r(0)<<3; - else data=input_port_8_r(0)<<3; - break; -#else - case 0x1fe: - data = 0x80; - if (arcadia_video.ad_select) { - if (input_port_9_r(0)&0x10) data=0; - if (input_port_9_r(0)&0x20) data=0xff; - } else { - if (input_port_9_r(0)&0x40) data=0xff; - if (input_port_9_r(0)&0x80) data=0; - } - break; - case 0x1ff: - data = 0x6f; // 0x7f too big for alien invaders (movs right) - if (arcadia_video.ad_select) { - if (input_port_9_r(0)&0x1) data=0; - if (input_port_9_r(0)&0x2) data=0xff; - } else { - if (input_port_9_r(0)&0x4) data=0xff; - if (input_port_9_r(0)&0x8) data=0; - } - break; -#endif - default: - data=arcadia_video.reg.data[offset]; - } - return data; -} - -WRITE8_HANDLER(arcadia_video_w) -{ - switch (offset) { - case 0xfc: - arcadia_video.reg.data[offset]=data; - arcadia_video.ypos=255-data+YPOS; - break; - case 0xfd: - arcadia_video.reg.data[offset]=data; - arcadia_soundport_w(offset&3, data); - arcadia_video.multicolor=data&0x80; - break; - case 0xfe: - arcadia_video.reg.data[offset]=data; - arcadia_soundport_w(offset&3, data); - arcadia_video.shift=(data>>5); - break; - case 0xf0: case 0xf2: case 0xf4: case 0xf6: - arcadia_video.reg.data[offset]=data; - arcadia_video.pos[(offset>>1)&3].y=(data^0xff)+1; - break; - case 0xf1: case 0xf3: case 0xf5: case 0xf7: - arcadia_video.reg.data[offset]=data; - arcadia_video.pos[(offset>>1)&3].x=data-43; - break; - case 0x180: case 0x181: case 0x182: case 0x183: case 0x184: case 0x185: case 0x186: case 0x187: - case 0x188: case 0x189: case 0x18a: case 0x18b: case 0x18c: case 0x18d: case 0x18e: case 0x18f: - case 0x190: case 0x191: case 0x192: case 0x193: case 0x194: case 0x195: case 0x196: case 0x197: - case 0x198: case 0x199: case 0x19a: case 0x19b: case 0x19c: case 0x19d: case 0x19e: case 0x19f: - case 0x1a0: case 0x1a1: case 0x1a2: case 0x1a3: case 0x1a4: case 0x1a5: case 0x1a6: case 0x1a7: - case 0x1a8: case 0x1a9: case 0x1aa: case 0x1ab: case 0x1ac: case 0x1ad: case 0x1ae: case 0x1af: - case 0x1b0: case 0x1b1: case 0x1b2: case 0x1b3: case 0x1b4: case 0x1b5: case 0x1b6: case 0x1b7: - case 0x1b8: case 0x1b9: case 0x1ba: case 0x1bb: case 0x1bc: case 0x1bd: case 0x1be: case 0x1bf: - arcadia_video.reg.data[offset]=data; - chars[0x38|((offset>>3)&7)][offset&7]=data; - break; - case 0x1f8: - arcadia_video.reg.data[offset]=data; - arcadia_video.lines26=data&0x40; - arcadia_video.graphics=data&0x80; - break; - case 0x1f9: - arcadia_video.reg.data[offset]=data; - arcadia_video.doublescan=!(data&0x80); - arcadia_video.ad_delay=10; - break; - default: - arcadia_video.reg.data[offset]=data; - } -} - -INLINE void arcadia_draw_char(mame_bitmap *bitmap, UINT8 *ch, int color, - int y, int x) -{ - int k,b; - if (arcadia_video.multicolor) { - int c; - if (color&0x40) c=arcadia_video.reg.d.pal[1]; - else c=arcadia_video.reg.d.pal[0]; - Machine->gfx[0]->colortable[1]=Machine->pens[(c>>3)&7]; - - if (color&0x80) c=arcadia_video.reg.d.pal[1]; - else c=arcadia_video.reg.d.pal[0]; - Machine->gfx[0]->colortable[0]=Machine->pens[c&7]; - - } else { - Machine->gfx[0]->colortable[1]= - Machine->pens[((arcadia_video.reg.d.pal[1]>>3)&1)|((color>>5)&6)]; - } - - if (arcadia_video.doublescan) { - for (k=0; (k<8)&&(yheight); k++, y+=2) { - b=ch[k]; - arcadia_video.bg[y][x>>3]|=b>>(x&7); - arcadia_video.bg[y][(x>>3)+1]|=b<<(8-(x&7)); - - if (y+1height) { - arcadia_video.bg[y+1][x>>3]|=b>>(x&7); - arcadia_video.bg[y+1][(x>>3)+1]|=b<<(8-(x&7)); - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y, - 0, TRANSPARENCY_NONE,0); - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y+1, - 0, TRANSPARENCY_NONE,0); - } - } - } else { - for (k=0; (k<8)&&(yheight); k++, y++) { - b=ch[k]; - arcadia_video.bg[y][x>>3]|=b>>(x&7); - arcadia_video.bg[y][(x>>3)+1]|=b<<(8-(x&7)); - - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y, - 0, TRANSPARENCY_NONE,0); - } - } -} - -INLINE void arcadia_vh_draw_line(mame_bitmap *bitmap, - int y, UINT8 chars1[16]) -{ - int x, ch, j, h; - bool graphics=arcadia_video.graphics; - h=arcadia_video.doublescan?16:8; - - if (bitmap->height-arcadia_video.lineheight-arcadia_video.line; - plot_box(bitmap, 0, y, bitmap->width, h, Machine->gfx[0]->colortable[0]); - memset(arcadia_video.bg[y], 0, sizeof(arcadia_video.bg[0])*h); - for (x=XPOS+arcadia_video.shift, j=0; j<16;j++,x+=8) { - ch=chars1[j]; - // hangman switches with 0x40 - // alien invaders shield lines start with 0xc0 - if ((ch&0x3f)==0) { - switch (ch) { - case 0xc0: graphics=TRUE;break; - case 0x40: graphics=FALSE;break; -// case 0x80: -// alien invaders shields are empty 0x80 -// popmessage(5, "graphics code 0x80 used"); - } - } - if (graphics) - arcadia_draw_char(bitmap, arcadia_rectangle[ch&0x3f], ch, y, x); - else - arcadia_draw_char(bitmap, chars[ch&0x3f], ch, y, x); - } -} - -static int arcadia_sprite_collision(int n1, int n2) -{ - int k, b1, b2, x; - if (arcadia_video.pos[n1].x+8<=arcadia_video.pos[n2].x) return FALSE; - if (arcadia_video.pos[n1].x>=arcadia_video.pos[n2].x+8) return FALSE; - for (k=0; k<8; k++) { - if (arcadia_video.pos[n1].y+k=arcadia_video.pos[n2].y+8) break; - x=arcadia_video.pos[n1].x-arcadia_video.pos[n2].x; - b1=arcadia_video.reg.d.chars[n1][k]; - b2=arcadia_video.reg.d.chars[n2][arcadia_video.pos[n1].y+k-arcadia_video.pos[n2].y]; - if (x<0) b2>>=-x; - if (x>0) b1>>=x; - if (b1&b2) return TRUE; - } - return FALSE; -} - -static void arcadia_draw_sprites(mame_bitmap *bitmap) -{ - int i, k, x, y; - UINT8 b; - - arcadia_video.reg.d.collision_bg|=0xf; - arcadia_video.reg.d.collision_sprite|=0x3f; - for (i=0; i<4; i++) { - bool doublescan = FALSE; - if (arcadia_video.pos[i].y<=-YPOS) continue; - if (arcadia_video.pos[i].y>=bitmap->height-YPOS-8) continue; - if (arcadia_video.pos[i].x<=-XPOS) continue; - if (arcadia_video.pos[i].x>=128+XPOS-8) continue; - - switch (i) { - case 0: - Machine->gfx[0]->colortable[1]=Machine->pens[(arcadia_video.reg.d.pal[3]>>3)&7]; - doublescan=arcadia_video.reg.d.pal[3]&0x80?FALSE:TRUE; - break; - case 1: - Machine->gfx[0]->colortable[1]=Machine->pens[arcadia_video.reg.d.pal[3]&7]; - doublescan=arcadia_video.reg.d.pal[3]&0x40?FALSE:TRUE; - break; - case 2: - Machine->gfx[0]->colortable[1]=Machine->pens[(arcadia_video.reg.d.pal[2]>>3)&7]; - doublescan=arcadia_video.reg.d.pal[2]&0x80?FALSE:TRUE; - break; - case 3: - Machine->gfx[0]->colortable[1]=Machine->pens[arcadia_video.reg.d.pal[2]&7]; - doublescan=arcadia_video.reg.d.pal[2]&0x40?FALSE:TRUE; - break; - } - for (k=0; k<8; k++) { - b=arcadia_video.reg.d.chars[i][k]; - x=arcadia_video.pos[i].x+XPOS; - if (!doublescan) { - y=arcadia_video.pos[i].y+YPOS+k; - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y, - 0, TRANSPARENCY_PEN,0); - } else { - y=arcadia_video.pos[i].y+YPOS+k*2; - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y, - 0, TRANSPARENCY_PEN,0); - drawgfx(bitmap, Machine->gfx[0], b,0, - 0,0,x,y+1, - 0, TRANSPARENCY_PEN,0); - } - if (arcadia_video.reg.d.collision_bg&(1<>3]<<8) - |arcadia_video.bg[y][(x>>3)+1]) ) - arcadia_video.reg.d.collision_bg&=~(1<gfx[0]->colortable[0]=Machine->pens[arcadia_video.reg.d.pal[1]&7]; - - if (arcadia_video.linescreen[0].width, 1, Machine->gfx[0]->colortable[0]); - memset(arcadia_video.bg[arcadia_video.line], 0, sizeof(arcadia_video.bg[0])); - } - else - { - int h=arcadia_video.doublescan?16:8; - - arcadia_video.charline=(arcadia_video.line-arcadia_video.ypos)/h; - - if (arcadia_video.charline<13) - { - if (((arcadia_video.line-arcadia_video.ypos)&(h-1))==0) { - arcadia_vh_draw_line(arcadia_video.bitmap, arcadia_video.charline*h+arcadia_video.ypos, - arcadia_video.reg.d.chars1[arcadia_video.charline]); - } - } - else if (arcadia_video.lines26 && (arcadia_video.charline<26)) - { - if (((arcadia_video.line-arcadia_video.ypos)&(h-1))==0) - { - arcadia_vh_draw_line(arcadia_video.bitmap, arcadia_video.charline*h+arcadia_video.ypos, - arcadia_video.reg.d.chars2[arcadia_video.charline-13]); - } - arcadia_video.charline-=13; - } - else - { - arcadia_video.charline=0xd; - plot_box(arcadia_video.bitmap, 0, arcadia_video.line, Machine->screen[0].width, 1, Machine->gfx[0]->colortable[0]); - memset(arcadia_video.bg[arcadia_video.line], 0, sizeof(arcadia_video.bg[0])); - } - } - if (arcadia_video.line==261) - arcadia_draw_sprites(arcadia_video.bitmap); -} - -READ8_HANDLER(arcadia_vsync_r) -{ - return arcadia_video.line>=216?0x80:0; -} - -VIDEO_UPDATE( arcadia ) -{ - copybitmap(bitmap, arcadia_video.bitmap, 0, 0, 0, 0, cliprect, TRANSPARENCY_NONE, 0); - return 0; -} diff --git a/mess/vidhrdw/astrocde.c b/mess/vidhrdw/astrocde.c deleted file mode 100644 index b805705ab..000000000 --- a/mess/vidhrdw/astrocde.c +++ /dev/null @@ -1,412 +0,0 @@ -/*************************************************************************** - - vidhrdw.c - - Functions to emulate the video hardware of the machine. - - * History * - - MJC - 01.02.98 - Line based dirty colour / dirty rectangle handling - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/z80/z80.h" -#include "includes/astrocde.h" - -#include /* for sin() and cos() */ - -unsigned char *astrocade_videoram; -int magic_expand_color, magic_control, magic_expand_flipflop, collision; - -static int ColourSplit=0; /* Colour System vars */ -static int Colour[8] = {0,0,0,0,0,0,0,0}; - -static unsigned int LeftColourCheck=0x00000000; -static unsigned int RightColourCheck=0x00000000; -static unsigned int LeftLineColour[256]; -static unsigned int RightLineColour[256]; - -static int VerticalBlank = 204; -static int BackgroundData = 0; -static int LastShifter = 0; -static int astrocade_mode = 0; - -/* These are the bits of the Magic Register */ -static const unsigned char SHIFT_MASK = 0x03; -static const unsigned char ROTATE_MASK = 0x04; -static const unsigned char EXPAND_MASK = 0x08; -static const unsigned char OR_MASK = 0x10; -static const unsigned char XOR_MASK = 0x20; -static const unsigned char FLOP_MASK = 0x40; - -/* ======================================================================= */ - -enum { FAKE_BLK,FAKE_YLW,FAKE_BLU,FAKE_RED,FAKE_WHT }; - -static unsigned short fake_colortable[] = -{ - FAKE_BLK,FAKE_YLW,FAKE_BLU,FAKE_RED, - FAKE_BLK,FAKE_WHT,FAKE_BLK,FAKE_RED /* not used by the game, here only for the dip switch menu */ -}; - -PALETTE_INIT( astrocade ) -{ - /* This routine builds a palette using a transformation from */ - /* the YUV (Y, B-Y, R-Y) to the RGB color space */ - - /* It also returns a fake colortable, for the menus */ - - int i,j; - - float Y, RY, BY; /* Y, R-Y, and B-Y signals as generated by the game */ - /* Y = Luminance -> (0 to 1) */ - /* R-Y = Color along R-Y axis -> C*(-1 to +1) */ - /* B-Y = Color along B-Y axis -> C*(-1 to +1) */ - float R, G, B; - - float brightest = 1.0; /* Approx. Luminance values for the extremes -> (0 to 1) */ - float dimmest = 0.0; - float C = 0.75; /* Approx. Chroma intensity */ - - /* The astrocade has a 256 color palette */ - /* 32 colors, with 8 luminance levels for each color */ - /* The 32 colors circle around the YUV color space, */ - /* with the exception of the first 8 which are grayscale */ - - /* Note: to simulate a B&W monitor, set C=0 and all */ - /* colors will appear as the first 8 grayscales */ - - for(i=0;i<32;i++) - { - RY = C*sin(i*2.0*M_PI/32.0); - if (i == 0) - BY = 0; - else - BY = C*cos(i*2.0*M_PI/32.0); - - for(j=0;j<8;j++) - { - Y = (j/7.0)*(brightest-dimmest)+dimmest; - - /* Transform to RGB */ - - R = (RY+Y)*255; - G = (Y - 0.299*(RY+Y) - 0.114*(BY+Y))/0.587*255; - B = (BY+Y)*255; - - /* Clipping, in case of saturation */ - - if (R < 0) - R = 0; - if (R > 255) - R = 255; - if (G < 0) - G = 0; - if (G > 255) - G = 255; - if (B < 0) - B = 0; - if (B > 255) - B = 255; - - /* Round, and set the value */ - palette_set_color(machine, i*8+j, floor(R+.5), floor(G+.5), floor(B+.5)); - } - } - - /* Set the fake colortable for the dip switch menus, etc. */ - - colortable = fake_colortable; -} - -WRITE8_HANDLER ( astrocade_vertical_blank_w ) -{ - VerticalBlank = data; -} - - READ8_HANDLER ( astrocade_intercept_r ) -{ - int res; - - res = collision; - collision = 0; - - return res; -} - - - READ8_HANDLER ( astrocade_video_retrace_r ) -{ - extern int CurrentScan; - - return CurrentScan; -} - -/* Switches colour registers at this zone - 40 zones */ -/* Also sets the background colors */ - -WRITE8_HANDLER ( astrocade_colour_split_w ) -{ - ColourSplit = data&0x3f; - - if (astrocade_mode == 1) - ColourSplit <<= 1; - - BackgroundData = ((data&0xc0) >> 6) * 0x55; - -#ifdef MAME_DEBUG - logerror("Colour split set to %02d\n",ColourSplit); -#endif -} - -/* This selects commercial (high res, arcade) or - consumer (low res, astrocade) mode */ - -WRITE8_HANDLER ( astrocade_mode_w ) -{ - astrocade_mode = data & 0x01; -} - -WRITE8_HANDLER ( astrocade_colour_register_w ) -{ - if(Colour[offset] != data) - { - Colour[offset] = data; - - if(offset>3) - LeftColourCheck = (Colour[4] << 24) | (Colour[5] << 16) | (Colour[6] < 8) | Colour[7]; - else - RightColourCheck = (Colour[0] << 24) | (Colour[1] << 16) | (Colour[2] < 8) | Colour[3]; - } - -#ifdef MAME_DEBUG - logerror("Colour %01x set to %02x\n",offset,data); -#endif -} - -WRITE8_HANDLER ( astrocade_colour_block_w ) -{ - static int color_reg_num = 7; - - Colour[color_reg_num] = data; - -#ifdef MAME_DEBUG - logerror("Colour block write: color %x set to %x\n", color_reg_num,data); -#endif - - if (color_reg_num == 0) - color_reg_num = 7; - else - color_reg_num--; - - LeftColourCheck = (Colour[4] << 24) | (Colour[5] << 16) | (Colour[6] < 8) | Colour[7]; - RightColourCheck = (Colour[0] << 24) | (Colour[1] << 16) | (Colour[2] < 8) | Colour[3]; - -} - -WRITE8_HANDLER ( astrocade_videoram_w ) -{ - if ((offset < 0x1000) && (astrocade_videoram[offset] != data)) - { - astrocade_videoram[offset] = data; - } -} - - -WRITE8_HANDLER ( astrocade_magic_expand_color_w ) -{ -#ifdef MAME_DEBUG -// logerror("%04x: magic_expand_color = %02x\n",cpu_getpc(),data); -#endif - - magic_expand_color = data; -} - - -WRITE8_HANDLER ( astrocade_magic_control_w ) -{ -#ifdef MAME_DEBUG -// logerror("%04x: magic_control = %02x\n",cpu_getpc(),data); -#endif - magic_expand_flipflop = 0; /* initialize the expand nibble */ - LastShifter = 0; /* clear the shifter */ - - magic_control = data; -} - -WRITE8_HANDLER ( astrocade_magicram_w ) -{ - unsigned int data1,shift,bits,bibits,stib,k,old_data; - -#ifdef MAME_DEBUG -// logerror("%04x: magicram_w(%04x) = %02x, magic_register = %02x\n",cpu_getpc(),offset,data,magic_control); -#endif - - if (magic_control & EXPAND_MASK) /* expand mode */ - { - bits = data; - - /* if flip-flop set, expand lower half */ - /* otherwise do upper half */ - - if (magic_expand_flipflop) - bits <<= 4; - - /* now what we want to expand is in bits 4-7 */ - - bibits = 0; - for (k = 0;k < 4;k++) - { - bibits <<= 2; - if (bits & 0x80) - bibits |= (magic_expand_color >> 2) & 0x03; - else - bibits |= magic_expand_color & 0x03; - bits <<= 1; - } - - data = bibits; - } - - /* rotating or shifting */ - - data1 = 0; - - if (magic_control & ROTATE_MASK) - { - /* Rotate not implemented */ - /* (Only functional in commercial mode) */ - } - else - { - shift = (magic_control & SHIFT_MASK); - - if (shift) - { - while (shift > 0) - { - data1 >>= 2; - data1 |= (data & 0x03) << 6; - - data >>= 2; - - shift--; - } - - data |= LastShifter; - LastShifter = data1; - - } - } - - /* flopping */ - - if (magic_control & FLOP_MASK) /* copy backwards */ - { - bits = data; - stib = 0; - for (k = 0;k < 4;k++) - { - stib >>= 2; - stib |= (bits & 0xc0); - bits <<= 2; - } - - data = stib; - - bits = data1; - stib = 0; - for (k = 0;k < 4;k++) - { - stib >>= 2; - stib |= (bits & 0xc0); - bits <<= 2; - } - - data1 = stib; - } - - /* OR or XOR */ - - if (magic_control & 0x30) - { - old_data = astrocade_videoram[offset]; - collision &= 0x0f; - - if (data | old_data) - { - if ((data & 0x03) && (old_data & 0x03)) - collision |= 0x88; - if ((data & 0x0c) && (old_data & 0x0c)) - collision |= 0x44; - if ((data & 0x30) && (old_data & 0x30)) - collision |= 0x22; - if ((data & 0xc0) && (old_data & 0xc0)) - collision |= 0x11; - } - } - - if (magic_control & XOR_MASK) - data ^= astrocade_videoram[offset]; /* draw in XOR mode */ - else if (magic_control & OR_MASK) - data |= astrocade_videoram[offset]; /* draw in OR mode */ - - /* else draw in copy mode */ - - astrocade_videoram_w(offset,data); - - magic_expand_flipflop ^= 1; -} - -void astrocade_copy_line(int line) -{ - /* Copy one line to bitmap, using current colour register settings */ - - int memloc; - int i,x,num_bytes; - int data,color; - - if (astrocade_mode == 0) - { - memloc = line/2 * 40; - num_bytes = 40; - } - else - { - num_bytes = 80; - memloc = line * 80; - } - - LeftLineColour[line] = LeftColourCheck; - RightLineColour[line] = RightColourCheck; - - for(i=0;i=i*4;x--) - { - color = data & 03; - - if (ipens[Colour[color]]); - plot_pixel(tmpbitmap,2*x+1,line,Machine->pens[Colour[color]]); - } - else - plot_pixel(tmpbitmap,x,line,Machine->pens[Colour[color]]); - - data >>= 2; - } - - } -} - diff --git a/mess/vidhrdw/atom.c b/mess/vidhrdw/atom.c deleted file mode 100644 index e9ff92d07..000000000 --- a/mess/vidhrdw/atom.c +++ /dev/null @@ -1,44 +0,0 @@ -/****************************************************************************** - -atom.c - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6847.h" -#include "includes/atom.h" - -static ATTR_CONST UINT8 atom_get_attributes(UINT8 c) -{ - extern UINT8 atom_8255_porta; - extern UINT8 atom_8255_portc; - UINT8 result = 0x00; - if (c & 0x40) result |= M6847_AS | M6847_INTEXT; - if (c & 0x80) result |= M6847_INV; - if (atom_8255_porta & 0x80) result |= M6847_GM2; - if (atom_8255_porta & 0x40) result |= M6847_GM1; - if (atom_8255_porta & 0x20) result |= M6847_GM0; - if (atom_8255_porta & 0x10) result |= M6847_AG; - if (atom_8255_portc & 0x08) result |= M6847_CSS; - return result; -} - -static const UINT8 *atom_get_video_ram(int scanline) -{ - return videoram + (scanline / 12) * 0x20; -} - -VIDEO_START( atom ) -{ - m6847_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = M6847_VERSION_ORIGINAL_PAL; - cfg.get_attributes = atom_get_attributes; - cfg.get_video_ram = atom_get_video_ram; - m6847_init(&cfg); - - return 0; -} - diff --git a/mess/vidhrdw/avigo.c b/mess/vidhrdw/avigo.c deleted file mode 100644 index 4b15e8d7f..000000000 --- a/mess/vidhrdw/avigo.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************** - - avigo.c - - Functions to emulate the video hardware of the TI Avigo 100 PDA - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/avigo.h" - -/*************************************************************************** - Start the video hardware emulation. -***************************************************************************/ - -/* backdrop */ -struct artwork_info *avigo_backdrop; - -/* mem size = 0x017c0 */ - -static unsigned char *avigo_video_memory; - -/* current column to read/write */ -static UINT8 avigo_screen_column = 0; - -//#define AVIGO_VIDEO_DEBUG - -static int stylus_x; -static int stylus_y; - - -/* colour table filled in from avigo colour table*/ -static UINT32 stylus_color_table[3] = {0,0,0}; - -static gfx_layout pointerlayout = -{ - 8, 8, - 1, - 2, - {0, 64}, - {0, 1, 2, 3, 4, 5, 6, 7}, - {0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8}, - 8 * 8 -}; - -static UINT8 pointermask[] = -{ - 0x00, 0x70, 0x60, 0x50, 0x08, 0x04, 0x00, 0x00, /* blackmask */ - 0xf0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00 /* whitemask */ -}; - -static gfx_element *stylus_pointer; - -void avigo_vh_set_stylus_marker_position(int x,int y) -{ - stylus_x = x; - stylus_y = y; -} - - READ8_HANDLER(avigo_vid_memory_r) -{ - unsigned char *ptr; - - if (offset==0) - { - return avigo_screen_column; - } - - if ((offset<0x0100) || (offset>=0x01f0)) - { -#ifdef AVIGO_VIDEO_DEBUG - logerror("vid mem read: %04x\n", offset); -#endif - return 0; - - } - - /* 0x0100-0x01f0 contains data for selected column */ - ptr = avigo_video_memory + avigo_screen_column + ((offset-0x0100)*(AVIGO_SCREEN_WIDTH>>3)); - - return ptr[0]; -} - -WRITE8_HANDLER(avigo_vid_memory_w) -{ - if (offset==0) - { - /* select column to read/write */ - avigo_screen_column = data; -#ifdef AVIGO_VIDEO_DEBUG - logerror("vid mem column write: %02x\n",data); -#endif - if (data>=(AVIGO_SCREEN_WIDTH>>3)) - { -#ifdef AVIGO_VIDEO_DEBUG - logerror("error: vid mem column write: %02x\n",data); -#endif - } - return; - } - - if ((offset<0x0100) || (offset>=0x01f0)) - { -#ifdef AVIGO_VIDEO_DEBUG - logerror("vid mem write: %04x %02x\n", offset, data); -#endif - return; - } - - if ((offset>=0x0100) && (offset<=0x01f0)) - { - unsigned char *ptr; - - /* 0x0100-0x01f0 contains data for selected column */ - ptr = avigo_video_memory + avigo_screen_column + ((offset-0x0100)*(AVIGO_SCREEN_WIDTH>>3)); - - ptr[0] = data; - - return; - } -} - -VIDEO_START( avigo ) -{ - /* current selected column to read/write */ - avigo_screen_column = 0; - - /* allocate video memory */ - avigo_video_memory = auto_malloc(((AVIGO_SCREEN_WIDTH>>3)*AVIGO_SCREEN_HEIGHT)); -/* - backdrop_refresh(avigo_backdrop); -*/ - Machine->gfx[0] = stylus_pointer = allocgfx(&pointerlayout); - decodegfx(stylus_pointer, pointermask, 0, 1); - stylus_pointer->colortable = stylus_color_table; - stylus_pointer->total_colors = 3; - stylus_color_table[1] = Machine->pens[0]; - stylus_color_table[2] = Machine->pens[1]; - return 0; -} - -/* two colours */ -static unsigned short avigo_colour_table[AVIGO_NUM_COLOURS] = -{ - 0, 1 -}; - -/* black/white */ -static unsigned char avigo_palette[AVIGO_NUM_COLOURS * 3] = -{ - 0x0ff, 0x0ff, 0x0ff, - 0x000, 0x000, 0x000 -}; - - -/* Initialise the palette */ -PALETTE_INIT( avigo ) -{ -/* char *backdrop_name; - int used = 2; */ - palette_set_colors(machine, 0, avigo_palette, sizeof(avigo_palette) / 3); - memcpy(colortable, avigo_colour_table, sizeof (avigo_colour_table)); - - /* load backdrop */ -#if 0 - backdrop_name = malloc(strlen(Machine->gamedrv->name)+4+1); - - if (backdrop_name!=NULL) - { - strcpy(backdrop_name, Machine->gamedrv->name); - strcat(backdrop_name, ".png"); - - logerror("%s\n",backdrop_name); - - artwork_load(&avigo_backdrop, backdrop_name, used,Machine->drv->total_colors-used); - - if (avigo_backdrop) - { -#ifdef AVIGO_VIDEO_DEBUG - logerror("backdrop %s successfully loaded\n", backdrop_name); -#endif - memcpy (&sys_palette[used * 3], avigo_backdrop->orig_palette, - avigo_backdrop->num_pens_used * 3 * sizeof (unsigned char)); - } - else - { - logerror("no backdrop loaded\n"); - } - - free(backdrop_name); - backdrop_name = NULL; - } -#endif -} -unsigned int avigo_ad_x; -unsigned int avigo_ad_y; - - - -/*************************************************************************** - Draw the game screen in the given mame_bitmap. - Do NOT call osd_update_display() from this function, - it will be called by the main emulation engine. -***************************************************************************/ -VIDEO_UPDATE( avigo ) -{ - int y; - int b; - int x; - int pens[2]; - rectangle r; - - /* draw avigo display */ - pens[0] = Machine->pens[0]; - pens[1] = Machine->pens[1]; - - for (y=0; y>3)); - - x = 0; - for (by=((AVIGO_SCREEN_WIDTH>>3)-1); by>=0; by--) - { - int px; - unsigned char byte; - - byte = line_ptr[0]; - - px = x; - for (b=7; b>=0; b--) - { - plot_pixel(bitmap, px, y, pens[(byte>>7) & 0x01]); - px++; - byte = byte<<1; - } - - x = px; - - line_ptr = line_ptr+1; - } - } - - r.min_x = 0; - r.max_x = AVIGO_SCREEN_WIDTH; - r.min_y = 0; - r.max_y = AVIGO_SCREEN_HEIGHT; - - /* draw stylus marker */ - drawgfx (bitmap, stylus_pointer, 0, 0, 0, 0, - stylus_x, stylus_y, &r, TRANSPARENCY_PEN, 0); - - { - - char avigo_text[256]; - sprintf(avigo_text,"X: %03x Y: %03x",avigo_ad_x, avigo_ad_y); - // FIXME - //ui_draw_text(avigo_text, 0, 200); - } - { - int xb,yb,zb,ab,bb; - char avigo_text[256]; - xb =cpunum_read_byte(0,0x0c1cf) & 0x0ff; - yb = cpunum_read_byte(0,0x0c1d0) & 0x0ff; - zb =cpunum_read_byte(0,0x0c1d1) & 0x0ff; - ab = cpunum_read_byte(0,0x0c1d2) & 0x0ff; - bb =cpunum_read_byte(0,0x0c1d3) & 0x0ff; - - sprintf(avigo_text,"Xb: %02x Yb: %02x zb: %02x ab:%02x bb:%02x",xb, yb,zb,ab,bb); - // FIXME - //ui_draw_text(avigo_text, 0, 216+16); - } - return 0; -} - diff --git a/mess/vidhrdw/cbmb.c b/mess/vidhrdw/cbmb.c deleted file mode 100644 index b3ec594fd..000000000 --- a/mess/vidhrdw/cbmb.c +++ /dev/null @@ -1,115 +0,0 @@ -/*************************************************************************** - - PeT mess@utanet.at - -***************************************************************************/ - -#include "driver.h" - -#include "vidhrdw/generic.h" -#include "includes/crtc6845.h" -#include "mscommon.h" -#include "includes/cbmb.h" - -static int cbmb_font=0; - -void cbm600_vh_init(void) -{ - UINT8 *gfx = memory_region(REGION_GFX1); - int i; - - /* inversion logic on board */ - for (i=0; i<0x800; i++) { - gfx[0x1000+i]=gfx[0x800+i]; - gfx[0x1800+i]=gfx[0x1000+i]^0xff; - gfx[0x800+i]=gfx[i]^0xff; - } -} - -void cbm700_vh_init(void) -{ - UINT8 *gfx = memory_region(REGION_GFX1); - int i; - for (i=0; i<0x800; i++) { - gfx[0x1000+i]=gfx[0x800+i]; - gfx[0x1800+i]=gfx[0x1000+i]^0xff; - gfx[0x800+i]=gfx[i]^0xff; - } -} - -VIDEO_START( cbm700 ) -{ - int i; - - /* remove pixel column 9 for character codes 0 - 175 and 224 - 255 */ - for( i = 0; i < 256; i++) - { -// if( i < 176 || i > 223 ) - { - int y; - for( y = 0; y < Machine->gfx[0]->height; y++ ) { - Machine->gfx[0]->gfxdata[(i * Machine->gfx[0]->height + y) * Machine->gfx[0]->width + 8] = 0; - Machine->gfx[1]->gfxdata[(i * Machine->gfx[1]->height + y) * Machine->gfx[1]->width + 8] = 0; - } - } - } - - return video_start_generic(machine); -} - -void cbmb_vh_cursor(struct crtc6845_cursor *cursor) -{ - dirtybuffer[cursor->pos]=1; -} - -void cbmb_vh_set_font(int font) -{ - cbmb_font=font; -} - -VIDEO_UPDATE( cbmb ) -{ - int x, y, i; - rectangle rect, rect2; - int w=crtc6845_get_char_columns(crtc6845); - int h=crtc6845_get_char_lines(crtc6845); - int height=crtc6845_get_char_height(crtc6845); - int start=crtc6845_get_start(crtc6845)&0x7ff; - struct crtc6845_cursor cursor; - int full_refresh = 1; - - rect.min_x=Machine->screen[0].visarea.min_x; - rect.max_x=Machine->screen[0].visarea.max_x; - if (full_refresh) { - memset(dirtybuffer, 1, videoram_size); - } - - crtc6845_time(crtc6845); - crtc6845_get_cursor(crtc6845, &cursor); - - for (y=0, rect.min_y=0, rect.max_y=height-1, i=start; ygfx[cbmb_font], - videoram[i], 0, 0, 0, Machine->gfx[cbmb_font]->width*x,height*y, - &rect,TRANSPARENCY_NONE,0); - if ((cursor.on)&&(i==cursor.pos)) { - int k=height-cursor.top; - rect2=rect; - rect2.min_y+=cursor.top; - if (cursor.bottom0) - plot_box(bitmap, Machine->gfx[cbmb_font]->width*x, - height*y+cursor.top, - Machine->gfx[cbmb_font]->width, k, Machine->pens[1]); - } - - dirtybuffer[i]=0; - } - } - } - return 0; -} - diff --git a/mess/vidhrdw/cdp186x.c b/mess/vidhrdw/cdp186x.c deleted file mode 100644 index fb3e8936d..000000000 --- a/mess/vidhrdw/cdp186x.c +++ /dev/null @@ -1,411 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/cdp1802/cdp1802.h" -#include "vidhrdw/cdp186x.h" -#include "sound/beep.h" - -/* - - RCA CDP1864 Video Chip - - http://homepage.mac.com/ruske/cosmacelf/cdp1864.pdf - -*/ - -static CDP1864_CONFIG cdp1864; - -PALETTE_INIT( tmc2000 ) -{ - int background_color_sequence[] = { 5, 7, 6, 3 }; - - palette_set_color(machine, 0, 0x4c, 0x96, 0x1c ); // white - palette_set_color(machine, 1, 0x4c, 0x00, 0x1c ); // purple - palette_set_color(machine, 2, 0x00, 0x96, 0x1c ); // cyan - palette_set_color(machine, 3, 0x00, 0x00, 0x1c ); // blue - palette_set_color(machine, 4, 0x4c, 0x96, 0x00 ); // yellow - palette_set_color(machine, 5, 0x4c, 0x00, 0x00 ); // red - palette_set_color(machine, 6, 0x00, 0x96, 0x00 ); // green - palette_set_color(machine, 7, 0x00, 0x00, 0x00 ); // black - - cdp1864_set_background_color_sequence_w(background_color_sequence); -} - -PALETTE_INIT( tmc2000e ) // TODO: incorrect colors? -{ - int background_color_sequence[] = { 2, 0, 1, 4 }; - - palette_set_color(machine, 0, 0x00, 0x00, 0x00 ); // black 0 % of max luminance - palette_set_color(machine, 1, 0x00, 0x97, 0x00 ); // green 59 - palette_set_color(machine, 2, 0x00, 0x00, 0x1c ); // blue 11 - palette_set_color(machine, 3, 0x00, 0xb3, 0xb3 ); // cyan 70 - palette_set_color(machine, 4, 0x4c, 0x00, 0x00 ); // red 30 - palette_set_color(machine, 5, 0xe3, 0xe3, 0x00 ); // yellow 89 - palette_set_color(machine, 6, 0x68, 0x00, 0x68 ); // magenta 41 - palette_set_color(machine, 7, 0xff, 0xff, 0xff ); // white 100 - - cdp1864_set_background_color_sequence_w(background_color_sequence); -} - -void cdp1864_set_background_color_sequence_w(int color[]) -{ - int i; - for (i = 0; i < 4; i++) - cdp1864.bgcolseq[i] = color[i]; -} - -WRITE8_HANDLER( cdp1864_step_background_color_w ) -{ - cdp1864.display = 1; - if (++cdp1864.bgcolor > 3) cdp1864.bgcolor = 0; -} - -WRITE8_HANDLER( cdp1864_tone_divisor_latch_w ) -{ - beep_set_frequency(0, CDP1864_CLK_FREQ / 8 / 4 / (data + 1) / 2); -} - -void cdp1864_audio_output_w(int value) -{ - beep_set_state(0, value); -} - -READ8_HANDLER( cdp1864_audio_enable_r ) -{ - beep_set_state(0, 1); - return 0; -} - -READ8_HANDLER( cdp1864_audio_disable_r ) -{ - beep_set_state(0, 0); - return 0; -} - -void cdp1864_enable_w(int value) -{ - cdp1864.display = value; -} - -void cdp1864_reset_w(void) -{ - int i; - - cdp1864.bgcolor = 0; - - for (i = 0; i < 4; i++) - cdp1864.bgcolseq[i] = i; - - cdp1864_audio_output_w(0); - cdp1864_tone_divisor_latch_w(0, CDP1864_DEFAULT_LATCH); -} - -VIDEO_UPDATE( cdp1864 ) -{ - fillbitmap(bitmap, cdp1864.bgcolseq[cdp1864.bgcolor], cliprect); - // TODO: draw videoram to screen using DMA - return 0; -} - -/* - - RCA CDP1869/70/76 Video Interface System (VIS) - - http://homepage.mac.com/ruske/cosmacelf/cdp1869.pdf - -*/ - -static tilemap *normal_tilemap, *double_tilemap; - -static CDP1869_CONFIG cdp1869; - -WRITE8_HANDLER( cdp1869_videoram_w ) -{ - videoram[offset] = data; - colorram[offset] = cdp1869.fgcolor; -} - -static unsigned short colortable_cdp1869[] = -{ - 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07 -}; - -PALETTE_INIT( cdp1869 ) -{ - palette_set_color(machine, 0, 0x00, 0x00, 0x00 ); // black 0 % of max luminance - palette_set_color(machine, 1, 0x00, 0x97, 0x00 ); // green 59 - palette_set_color(machine, 2, 0x00, 0x00, 0x1c ); // blue 11 - palette_set_color(machine, 3, 0x00, 0xb3, 0xb3 ); // cyan 70 - palette_set_color(machine, 4, 0x4c, 0x00, 0x00 ); // red 30 - palette_set_color(machine, 5, 0xe3, 0xe3, 0x00 ); // yellow 89 - palette_set_color(machine, 6, 0x68, 0x00, 0x68 ); // magenta 41 - palette_set_color(machine, 7, 0xff, 0xff, 0xff ); // white 100 - - memcpy(colortable, colortable_cdp1869, sizeof(colortable_cdp1869)); -} - -static int blink; - -static void get_normal_tile_info(int tile_index) -{ - int offs = tile_index + cdp1869.hma; - int addr = (offs >= 960) ? (offs - 960) : offs; - int code = videoram[addr]; - int color = colorram[addr] & 0x07; - - // HACK to make the cursor blink, cdp1869.pdf doesn't cover blinking so it's all guesswork - if (colorram[addr] & 0x08) - { - if (blink > 50) // one second hidden - { - color = cdp1869.bkg; - } - if (blink > 100) // one second visible - { - blink = 0; - } - } - - SET_TILE_INFO(0, code, color, 0) -} - -static void get_double_tile_info(int tile_index) -{ - int offs = tile_index + cdp1869.hma; - int addr = (offs >= 240) ? (offs - 240) : offs; - int code = videoram[addr]; - int color = colorram[addr] & 0x07; - - if (colorram[addr] & 0x08) - { - if (blink > 50) - { - color = cdp1869.bkg; - } - if (blink > 100) - { - blink = 0; - } - } - - SET_TILE_INFO(1, code, color, 0) -} - -VIDEO_START( cdp1869 ) -{ - colorram = auto_malloc(videoram_size); - memset(colorram, 0, videoram_size); - - normal_tilemap = tilemap_create(get_normal_tile_info, tilemap_scan_rows, - TILEMAP_TRANSPARENT, 6, 9, 40, 24); - - double_tilemap = tilemap_create(get_double_tile_info, tilemap_scan_rows, - TILEMAP_TRANSPARENT, 12, 18, 20, 24); - - tilemap_set_transparent_pen(normal_tilemap, 0); - tilemap_set_transparent_pen(double_tilemap, 0); - - tilemap_set_scrolldx(normal_tilemap, 60, 0); - tilemap_set_scrolldy(normal_tilemap, 44, 0); - tilemap_set_scrolldx(double_tilemap, 60, 0); - tilemap_set_scrolldy(double_tilemap, 44, 0); - - cdp1869.ntsc_pal = 1; - - return 0; -} - -VIDEO_UPDATE( cdp1869 ) -{ - rectangle clip; - - clip.min_x = Machine->screen[0].visarea.min_x + 60; - clip.max_x = Machine->screen[0].visarea.max_x - 36; - clip.min_y = Machine->screen[0].visarea.min_y + 44; - clip.max_y = Machine->screen[0].visarea.max_y - 48; - - tilemap_mark_all_tiles_dirty(ALL_TILEMAPS); - - if (cdp1869.dispoff) - fillbitmap(bitmap, get_black_pen(machine), cliprect); - else - { - fillbitmap(bitmap, cdp1869.bkg, cliprect); - - if (cdp1869.freshorz && cdp1869.fresvert) - tilemap_draw(bitmap, &clip, normal_tilemap, 0, 0); - else - tilemap_draw(bitmap, &clip, double_tilemap, 0, 0); - } - - blink++; - return 0; -} - -void cdp1869_set_tone_volume(int which, int value) -{ - beep_set_volume(0, value); -} - -void cdp1869_set_tone_frequency(int which, int value) -{ - beep_set_frequency(0, value); -} - -void cdp1869_set_noise_volume(int which, int value) -{ - // TODO: white noise -} - -void cdp1869_set_noise_frequency(int which, int value) -{ - // TODO: white noise -} - -void cdp1869_instruction_w(int which, int n, int data) -{ - int cpuclk = cdp1869.ntsc_pal ? CDP1869_CPU_CLK_PAL : CDP1869_CPU_CLK_NTSC; - - switch (n) - { - case 2: - // set character color - cdp1869.fgcolor = data; - break; - case 3: - /* - bit description - - 0 bkg green - 1 bkg blue - 2 bkg red - 3 cfc - 4 disp off - 5 colb0 - 6 colb1 - 7 fres horz - */ - - cdp1869.bkg = (data & 0x07); - cdp1869.cfc = (data & 0x08) >> 3; - cdp1869.dispoff = (data & 0x10) >> 4; - cdp1869.col = (data & 0x60) >> 5; - cdp1869.freshorz = (data & 0x80) >> 7; - break; - - case 4: - /* - bit description - - 0 tone amp 2^0 - 1 tone amp 2^1 - 2 tone amp 2^2 - 3 tone amp 2^3 - 4 tone freq sel0 - 5 tone freq sel1 - 6 tone freq sel2 - 7 tone off - 8 tone / 2^0 - 9 tone / 2^1 - 10 tone / 2^2 - 11 tone / 2^3 - 12 tone / 2^4 - 13 tone / 2^5 - 14 tone / 2^6 - 15 always 0 - */ - - cdp1869.toneamp = (data & 0x0f); - cdp1869.tonefreq = (data & 0x70) >> 4; - cdp1869.toneoff = (data & 0x80) >> 7; - cdp1869.tonediv = (data & 0x7f00) >> 8; - - cdp1869_set_tone_volume(0, cdp1869.toneoff ? 0 : (1.666 * cdp1869.toneamp)); - cdp1869_set_tone_frequency(0, cpuclk / (512 >> cdp1869.tonefreq) / (cdp1869.tonediv + 1)); - break; - - case 5: - /* - bit description - - 0 cmem access mode - 1 x - 2 x - 3 9-line - 4 x - 5 16 line hi-res - 6 double page - 7 fres vert - 8 wn amp 2^0 - 9 wn amp 2^1 - 10 wn amp 2^2 - 11 wn amp 2^3 - 12 wn freq sel0 - 13 wn freq sel1 - 14 wn freq sel2 - 15 wn off - */ - - cdp1869.cmem = (data & 0x01); - cdp1869.line9 = (data & 0x08) >> 3; - cdp1869.line16 = (data & 0x20) >> 5; - cdp1869.dblpage = (data & 0x40) >> 6; - cdp1869.fresvert = (data & 0x80) >> 7; - cdp1869.wnamp = (data & 0x0f00) >> 8; - cdp1869.wnfreq = (data & 0x7000) >> 12; - cdp1869.wnoff = (data & 0x8000) >> 15; - - cdp1869_set_noise_volume(0, cdp1869.wnoff ? 0 : (1.666 * cdp1869.wnamp)); - cdp1869_set_noise_frequency(0, cpuclk / (4096 >> cdp1869.wnfreq)); - break; - - case 6: - /* - bit description - - 0 pma0 reg - 1 pma1 reg - 2 pma2 reg - 3 pma3 reg - 4 pma4 reg - 5 pma5 reg - 6 pma6 reg - 7 pma7 reg - 8 pma8 reg - 9 pma9 reg - 10 pma10 reg - 11 x - 12 x - 13 x - 14 x - 15 x - */ - - cdp1869.pma = data & 0x7ff; - break; - - case 7: - /* - bit description - - 0 x - 1 x - 2 hma2 reg - 3 hma3 reg - 4 hma4 reg - 5 hma5 reg - 6 hma6 reg - 7 hma7 reg - 8 hma8 reg - 9 hma9 reg - 10 hma10 reg - 11 x - 12 x - 13 x - 14 x - 15 x - */ - - cdp1869.hma = data & 0x7fc; - break; - } -} diff --git a/mess/vidhrdw/cdp186x.h b/mess/vidhrdw/cdp186x.h deleted file mode 100644 index aabdede74..000000000 --- a/mess/vidhrdw/cdp186x.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - - ________________ - INLACE 1 ---| \/ |--- 40 Vdd - CLK IN_ 2 ---| |--- 39 AUD - CLR OUT_ 3 ---| |--- 38 CLR IN_ - AOE 4 ---| |--- 37 DMA0_ - SC1 5 ---| |--- 36 INT_ - SC0 6 ---| |--- 35 TPA - MRD_ 7 ---| |--- 34 TPB - BUS 7 8 ---| |--- 33 EVS - BUS 6 9 ---| |--- 32 V SYNC - BUS 5 10 ---| CDP1864C |--- 31 H SYNC - BUS 4 11 ---| top view |--- 30 C SYNC_ - BUS 3 12 ---| |--- 29 RED - BUS 2 13 ---| |--- 28 BLUE - BUS 1 14 ---| |--- 27 GREEN - BUS 0 15 ---| |--- 26 BCK GND_ - CON_ 16 ---| |--- 25 BURST - N2 17 ---| |--- 24 ALT - EF_ 18 ---| |--- 23 R DATA - N0 19 ---| |--- 22 G DATA - Vss 20 ---|________________|--- 21 B DATA - - -*/ - -#define CDP1864_CLK_FREQ 1750000 -#define CDP1864_DEFAULT_LATCH 0x35 - -#define CDP1864_SCREEN_WIDTH 14 * 8 -#define CDP1864_SCANLINES 312 - -#define CDP1864_FPS (CDP1864_CLK_FREQ / CDP1864_SCREEN_WIDTH) / CDP1864_SCANLINES - -typedef struct -{ - int display; - int bgcolor; - int bgcolseq[4]; -} CDP1864_CONFIG; - -void cdp1864_set_background_color_sequence_w(int color[]); -void cdp1864_audio_output_w(int value); -void cdp1864_enable_w(int value); -void cdp1864_reset_w(void); - - READ8_HANDLER( cdp1864_audio_enable_r ); - READ8_HANDLER( cdp1864_audio_disable_r ); -WRITE8_HANDLER( cdp1864_step_background_color_w ); -WRITE8_HANDLER( cdp1864_tone_divisor_latch_w ); - -PALETTE_INIT( tmc2000 ); -PALETTE_INIT( tmc2000e ); -VIDEO_UPDATE( cdp1864 ); - -/* - - ________________ ________________ - TPA 1 ---| \/ |--- 40 Vdd PREDISPLAY_ 1 ---| \/ |--- 40 Vdd - TPB 2 ---| |--- 39 PMSEL *DISPLAY_ 2 ---| |--- 39 PAL/NTSC_ - MRD_ 3 ---| |--- 38 PMWR_ PCB 3 ---| |--- 38 CPUCLK - MWR_ 4 ---| |--- 37 *CMSEL CCB1 4 ---| |--- 37 XTAL (DOT) - MA0/8 5 ---| |--- 36 CMWR_ BUS7 5 ---| |--- 36 XTAL (DOT)_ - MA1/9 6 ---| |--- 35 PMA0 CCB0 6 ---| |--- 35 *ADDRSTB_ - MA2/10 7 ---| |--- 34 PMA1 BUS6 7 ---| |--- 34 MRD_ - MA3/11 8 ---| |--- 33 PMA2 CDB5 8 ---| |--- 33 TPB - MA4/12 9 ---| |--- 32 PMA3 BUS5 9 ---| |--- 32 *CMSEL - MA5/13 10 ---| CDP1869C |--- 31 PMA4 CDB4 10 ---| CDP1870/76C |--- 31 BURST - MA6/14 11 ---| top view |--- 30 PMA5 BUS4 11 ---| top view |--- 30 *H SYNC_ - MA7/15 12 ---| |--- 29 PMA6 CDB3 12 ---| |--- 29 COMPSYNC_ - N0 13 ---| |--- 28 PMA7 BUS3 13 ---| |--- 28 LUM / (RED)^ - N1 14 ---| |--- 27 PMA8 CDB2 14 ---| |--- 27 PAL CHROM / (BLUE)^ - N2 15 ---| |--- 26 PMA9 BUS2 15 ---| |--- 26 NTSC CHROM / (GREEN)^ - *H SYNC_ 16 ---| |--- 25 CMA3/PMA10 CDB1 16 ---| |--- 25 XTAL_ (CHROM) - *DISPLAY_ 17 ---| |--- 24 CMA2 BUS1 17 ---| |--- 24 XTAL (CHROM) - *ADDRSTB_ 18 ---| |--- 23 CMA1 CDB0 18 ---| |--- 23 EMS_ - SOUND 19 ---| |--- 22 CMA0 BUS0 19 ---| |--- 22 EVS_ - VSS 20 ---|________________|--- 21 *N=3_ Vss 20 ---|________________|--- 21 *N=3_ - - - * = INTERCHIP CONNECTIONS ^ = FOR THE RGB BOND-OUT OPTION (CDP1876C) _ = ACTIVE LOW - -*/ - -#define CDP1869_DOT_CLK_PAL 5626000 -#define CDP1869_DOT_CLK_NTSC 5670000 -#define CDP1869_COLOR_CLK_PAL 8867236 -#define CDP1869_COLOR_CLK_NTSC 7159090 - -#define CDP1869_CPU_CLK_PAL CDP1869_DOT_CLK_PAL / 2 -#define CDP1869_CPU_CLK_NTSC CDP1869_DOT_CLK_NTSC / 2 - -#define CDP1869_CHAR_WIDTH 6 -#define CDP1869_CHAR_HEIGHT_PAL 9 -#define CDP1869_CHAR_HEIGHT_NTSC 8 - -#define CDP1869_SCREEN_WIDTH (60 * CDP1869_CHAR_WIDTH) -#define CDP1869_SCANLINES_PAL 312 -#define CDP1869_SCANLINES_NTSC 262 - -#define CDP1869_FPS_PAL (CDP1869_DOT_CLK_PAL / CDP1869_SCREEN_WIDTH) / CDP1869_SCANLINES_PAL -#define CDP1869_FPS_NTSC (CDP1869_DOT_CLK_NTSC / CDP1869_SCREEN_WIDTH) / CDP1869_SCANLINES_NTSC - -typedef struct -{ - bool ntsc_pal; // 0 = NTSC, 1 = PAL - bool dispoff, toneoff, wnoff; - UINT8 tonediv, tonefreq, toneamp; - UINT8 wnfreq, wnamp; - bool fresvert, freshorz; - bool dblpage, line16, line9, cmem, cfc; - UINT8 col, bkg; - UINT16 pma, hma; - UINT8 fgcolor; // HACK -} CDP1869_CONFIG; - -void cdp1869_instruction_w(int which, int n, int data); - -WRITE8_HANDLER( cdp1869_videoram_w ); - -PALETTE_INIT( cdp1869 ); -VIDEO_START( cdp1869 ); -VIDEO_UPDATE( cdp1869 ); diff --git a/mess/vidhrdw/cgenie.c b/mess/vidhrdw/cgenie.c deleted file mode 100644 index 54d7b04e6..000000000 --- a/mess/vidhrdw/cgenie.c +++ /dev/null @@ -1,489 +0,0 @@ -/*************************************************************************** - - cgenie.c - - Functions to emulate the video controller 6845. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/cgenie.h" - -int cgenie_font_offset[4] = {0, 0, 0, 0}; - -static CRTC6845 crt; -static int graphics = 0; -static mame_bitmap *dlybitmap = NULL; -static UINT8 *cleanbuffer = NULL; -static UINT8 *colorbuffer = NULL; -static int update_all = 0; -static int off_x = 0; -static int off_y = 0; - - -/*************************************************************************** - - Start the video hardware emulation. - -***************************************************************************/ -VIDEO_START( cgenie ) -{ - videoram_size = 0x4000; - - if( video_start_generic(machine) != 0 ) - return 1; - - dlybitmap = auto_bitmap_alloc(Machine->screen[0].width, Machine->screen[0].height); - - cleanbuffer = (UINT8*)auto_malloc(64 * 32 * 8); - memset(cleanbuffer, 0, 64 * 32 * 8); - - colorbuffer = (UINT8*)auto_malloc(64 * 32 * 8); - memset(colorbuffer, 0, 64 * 32 * 8); - - return 0; -} - -/*************************************************************************** - - Calculate the horizontal and vertical offset for the - current register settings of the 6845 CRTC - -***************************************************************************/ -static void cgenie_offset_xy(void) -{ - if( crt.horizontal_sync_pos ) - off_x = crt.horizontal_total - crt.horizontal_sync_pos - 14; - else - off_x = -15; - - off_y = (crt.vertical_total - crt.vertical_sync_pos) * - (crt.scan_lines + 1) + crt.vertical_adjust - - 32; - - if( off_y < 0 ) - off_y = 0; - - if( off_y > 128 ) - off_y = 128; - -// logerror("cgenie offset x:%d y:%d\n", off_x, off_y); -} - - -/*************************************************************************** - Write to an indexed register of the 6845 CRTC -***************************************************************************/ -WRITE8_HANDLER ( cgenie_register_w ) -{ - int addr; - - switch (crt.idx) - { - case 0: - if( crt.horizontal_total == data ) - break; - crt.horizontal_total = data; - cgenie_offset_xy(); - break; - case 1: - if( crt.horizontal_displayed == data ) - break; - crt.horizontal_displayed = data; - break; - case 2: - if( crt.horizontal_sync_pos == data ) - break; - crt.horizontal_sync_pos = data; - cgenie_offset_xy(); - break; - case 3: - crt.horizontal_length = data; - break; - case 4: - if( crt.vertical_total == data ) - break; - crt.vertical_total = data; - cgenie_offset_xy(); - break; - case 5: - if( crt.vertical_adjust == data ) - break; - crt.vertical_adjust = data; - cgenie_offset_xy(); - break; - case 6: - if( crt.vertical_displayed == data ) - break; - crt.vertical_displayed = data; - break; - case 7: - if( crt.vertical_sync_pos == data ) - break; - crt.vertical_sync_pos = data; - cgenie_offset_xy(); - break; - case 8: - crt.crt_mode = data; - break; - case 9: - data &= 15; - if( crt.scan_lines == data ) - break; - crt.scan_lines = data; - cgenie_offset_xy(); - break; - case 10: - if( crt.cursor_top == data ) - break; - crt.cursor_top = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - case 11: - if( crt.cursor_bottom == data ) - break; - crt.cursor_bottom = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - case 12: - data &= 63; - if( crt.screen_address_hi == data ) - break; - update_all = 1; - crt.screen_address_hi = data; - break; - case 13: - if( crt.screen_address_lo == data ) - break; - update_all = 1; - crt.screen_address_lo = data; - break; - case 14: - data &= 63; - if( crt.cursor_address_hi == data ) - break; - crt.cursor_address_hi = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - case 15: - if( crt.cursor_address_lo == data ) - break; - crt.cursor_address_lo = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - } -} - -/*************************************************************************** - Write to the index register of the 6845 CRTC -***************************************************************************/ -WRITE8_HANDLER ( cgenie_index_w ) -{ - crt.idx = data & 15; -} - -/*************************************************************************** - Read from an indexed register of the 6845 CRTC -***************************************************************************/ - READ8_HANDLER ( cgenie_register_r ) -{ - return cgenie_get_register(crt.idx); -} - -/*************************************************************************** - Read from a register of the 6845 CRTC -***************************************************************************/ -int cgenie_get_register(int indx) -{ - switch (indx) - { - case 0: - return crt.horizontal_total; - case 1: - return crt.horizontal_displayed; - case 2: - return crt.horizontal_sync_pos; - case 3: - return crt.horizontal_length; - case 4: - return crt.vertical_total; - case 5: - return crt.vertical_adjust; - case 6: - return crt.vertical_displayed; - case 7: - return crt.vertical_sync_pos; - case 8: - return crt.crt_mode; - case 9: - return crt.scan_lines; - case 10: - return crt.cursor_top; - case 11: - return crt.cursor_bottom; - case 12: - return crt.screen_address_hi; - case 13: - return crt.screen_address_lo; - case 14: - return crt.cursor_address_hi; - case 15: - return crt.cursor_address_lo; - } - return 0; -} - -/*************************************************************************** - Read the index register of the 6845 CRTC -***************************************************************************/ - READ8_HANDLER ( cgenie_index_r ) -{ - return crt.idx; -} - -/*************************************************************************** - Switch mode between character generator and graphics -***************************************************************************/ -void cgenie_mode_select(int mode) -{ - graphics = (mode) ? 1 : 0; -} - -/*************************************************************************** - Invalidate a range of characters with codes from l to h -***************************************************************************/ -void cgenie_invalidate_range(int l, int h) -{ - int base = 256 * crt.screen_address_hi + crt.screen_address_lo; - int size = crt.horizontal_displayed * crt.vertical_displayed; - int addr; - int i; - - for (addr = 0; addr < size; addr++) - { - i = (base + addr) & 0x3fff; - if( videoram[i] >= l && videoram[i] <= h ) - dirtybuffer[i] = 1; - } -} - - -static void cgenie_refresh_monitor(mame_bitmap * bitmap, int full_refresh) -{ - int i, address, offset, cursor, size, code, x, y; - rectangle r; - - if( crt.vertical_displayed == 0 || crt.horizontal_displayed == 0 ) - { - fillbitmap(bitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - } - else - { - offset = 256 * crt.screen_address_hi + crt.screen_address_lo; - size = crt.horizontal_displayed * crt.vertical_displayed; - cursor = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - - if( full_refresh ) - { - full_refresh = 0; - fillbitmap(bitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - for( i = offset; i < offset + size; i++ ) - dirtybuffer[i] = 1; - } - - /* - * for every character in the Video RAM, check if it has been modified since - * last time and update it accordingly. - */ - for( address = 0; address < size; address++ ) - { - i = (offset + address) & 0x3fff; - x = address % crt.horizontal_displayed + off_x; - y = address / crt.horizontal_displayed; - if( dirtybuffer[i] || (update_all && - (cleanbuffer[y * 64 + x] != videoram[i] || - colorbuffer[y * 64 + x] != colorram[i & 0x3ff])) ) - { - r.min_x = x * 8; - r.max_x = r.min_x + 7; - r.min_y = y * (crt.scan_lines + 1) + off_y; - r.max_y = r.min_y + crt.scan_lines; - - colorbuffer[y * 64 + x] = colorram[i & 0x3ff]; - cleanbuffer[y * 64 + x] = videoram[i]; - dirtybuffer[i] = 0; - - if( graphics ) - { - /* get graphics code */ - code = videoram[i]; - drawgfx(bitmap, Machine->gfx[1], code, 0, - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - } - else - { - /* get character code */ - code = videoram[i]; - /* translate defined character sets */ - code += cgenie_font_offset[(code >> 6) & 3]; - drawgfx(bitmap, Machine->gfx[0], code, colorram[i&0x3ff], - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - } - - if( i == cursor ) - { - rectangle rc; - - /* check if cursor turned off */ - if( (crt.cursor_top & 0x60) == 0x20 ) - continue; - dirtybuffer[i] = 1; - if( (crt.cursor_top & 0x60) == 0x60 ) - { - crt.cursor_visible = 1; - } - else - { - crt.cursor_phase++; - crt.cursor_visible = (crt.cursor_phase >> 3) & 1; - } - if( !crt.cursor_visible ) - continue; - rc.min_x = r.min_x; - rc.max_x = r.max_x; - rc.min_y = r.min_y + (crt.cursor_top & 15); - rc.max_y = r.min_y + (crt.cursor_bottom & 15); - drawgfx(bitmap, Machine->gfx[0], 0x7f, colorram[i&0x3ff], - 0, 0, rc.min_x, rc.min_y, &rc, TRANSPARENCY_NONE, 0); - } - } - } - } - update_all = 0; -} - -static void cgenie_refresh_tv_set(mame_bitmap * bitmap, int full_refresh) -{ - int i, address, offset, cursor, size, code, x, y; - rectangle r; - - if( crt.vertical_displayed == 0 || crt.horizontal_displayed == 0 ) - { - fillbitmap(tmpbitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - fillbitmap(dlybitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - } - else - { - offset = 256 * crt.screen_address_hi + crt.screen_address_lo; - size = crt.horizontal_displayed * crt.vertical_displayed; - cursor = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - - if( full_refresh ) - { - full_refresh = 0; - fillbitmap(tmpbitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - fillbitmap(dlybitmap, Machine->remapped_colortable[0], &Machine->screen[0].visarea); - for (i = offset; i < offset + size; i++) - dirtybuffer[i] = 1; - } - - /* - * for every character in the Video RAM, check if it has been modified since - * last time and update it accordingly. - */ - for( address = 0; address < size; address++ ) - { - i = (offset + address) & 0x3fff; - x = address % crt.horizontal_displayed + off_x; - y = address / crt.horizontal_displayed; - if( dirtybuffer[i] || (update_all && - (cleanbuffer[y * 64 + x] != videoram[i] || - colorbuffer[y * 64 + x] != colorram[i & 0x3ff])) ) - { - r.min_x = x * 8; - r.max_x = r.min_x + 7; - r.min_y = y * (crt.scan_lines + 1) + off_y; - r.max_y = r.min_y + crt.scan_lines; - - colorbuffer[y * 64 + x] = colorram[i & 0x3ff]; - cleanbuffer[y * 64 + x] = videoram[i]; - dirtybuffer[i] = 0; - - if( graphics ) - { - /* get graphics code */ - code = videoram[i]; - drawgfx(tmpbitmap, Machine->gfx[1], code, 1, - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - drawgfx(dlybitmap, Machine->gfx[1], code, 2, - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - } - else - { - /* get character code */ - code = videoram[i]; - /* translate defined character sets */ - code += cgenie_font_offset[(code >> 6) & 3]; - drawgfx(tmpbitmap, Machine->gfx[0], code, colorram[i&0x3ff] + 16, - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - drawgfx(dlybitmap, Machine->gfx[0], code, colorram[i&0x3ff] + 32, - 0, 0, r.min_x, r.min_y, &r, TRANSPARENCY_NONE, 0); - } - - if( i == cursor ) - { - rectangle rc; - - /* check if cursor turned off */ - if( (crt.cursor_top & 0x60) == 0x20 ) - continue; - dirtybuffer[i] = 1; - if( (crt.cursor_top & 0x60) == 0x60 ) - { - crt.cursor_visible = 1; - } - else - { - crt.cursor_phase++; - crt.cursor_visible = (crt.cursor_phase >> 3) & 1; - } - if( !crt.cursor_visible ) - continue; - rc.min_x = r.min_x; - rc.max_x = r.max_x; - rc.min_y = r.min_y + (crt.cursor_top & 15); - rc.max_y = r.min_y + (crt.cursor_bottom & 15); - drawgfx(tmpbitmap, Machine->gfx[0], 0x7f, colorram[i&0x3ff] + 16, - 0, 0, rc.min_x, rc.min_y, &rc, TRANSPARENCY_NONE, 0); - drawgfx(dlybitmap, Machine->gfx[0], 0x7f, colorram[i&0x3ff] + 32, - 0, 0, rc.min_x, rc.min_y, &rc, TRANSPARENCY_NONE, 0); - } - } - } - } - update_all = 0; - copybitmap(bitmap, tmpbitmap, 0, 0, 0, 0, - &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - copybitmap(bitmap, dlybitmap, 0, 0, 1, 0, - &Machine->screen[0].visarea, TRANSPARENCY_COLOR, 0); -} - -/*************************************************************************** - Draw the game screen in the given mame_bitmap. - Do NOT call osd_update_display() from this function, - it will be called by the main emulation engine. -***************************************************************************/ -VIDEO_UPDATE( cgenie ) -{ - int full_refresh = 1; - if( cgenie_tv_mode ) - cgenie_refresh_tv_set(bitmap,full_refresh); - else - cgenie_refresh_monitor(bitmap,full_refresh); - return 0; -} diff --git a/mess/vidhrdw/channelf.c b/mess/vidhrdw/channelf.c deleted file mode 100644 index e52737060..000000000 --- a/mess/vidhrdw/channelf.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/channelf.h" - -UINT8 channelf_val_reg = 0; -UINT8 channelf_row_reg = 0; -UINT8 channelf_col_reg = 0; - -static UINT8 channelf_palette[] = { - 0x00, 0x00, 0x00, /* black */ - 0xff, 0xff, 0xff, /* white */ - 0xff, 0x00, 0x00, /* red */ - 0x00, 0xff, 0x00, /* green */ - 0x00, 0x00, 0xff, /* blue */ - 0xbf, 0xbf, 0xbf, /* ltgray */ - 0xbf, 0xff, 0xbf, /* ltgreen */ - 0xbf, 0xbf, 0xff /* ltblue */ -}; - -#define BLACK 0 -#define WHITE 1 -#define RED 2 -#define GREEN 3 -#define BLUE 4 -#define LTGRAY 5 -#define LTGREEN 6 -#define LTBLUE 7 - -static UINT16 colormap[] = { - BLACK, WHITE, WHITE, WHITE, - LTBLUE, BLUE, RED, GREEN, - LTGRAY, BLUE, RED, GREEN, - LTGREEN, BLUE, RED, GREEN, -}; - -/* Initialise the palette */ -PALETTE_INIT( channelf ) -{ - palette_set_colors(machine, 0, channelf_palette, sizeof(channelf_palette) / 3); -} - -VIDEO_START( channelf ) -{ - videoram_size = 0x2000; - videoram = auto_malloc(videoram_size); - return video_start_generic(machine); -} - -static int recalc_palette_offset(int reg1, int reg2) -{ - /* Note: This is based on the decoding they used to */ - /* determine which palette this line is using */ - - return ((reg2&0x2)|(reg1>>1)) << 2; -} - -VIDEO_UPDATE( channelf ) -{ - int x,y,offset, palette_offset; - int pen, color; - - for(y=0;y<64;y++) - { - palette_offset = recalc_palette_offset(videoram[y*128+125]&3,videoram[y*128+126]&3); - for (x=0;x<128;x++) - { - offset = y*128+x; - color = palette_offset+(videoram[offset]&3); - pen = Machine->pens[colormap[color]]; - plot_pixel(bitmap, x, y, pen); - } - } - return 0; -} - - diff --git a/mess/vidhrdw/coco.c b/mess/vidhrdw/coco.c deleted file mode 100644 index 1f2b0ae72..000000000 --- a/mess/vidhrdw/coco.c +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************** - - Video hardware for CoCo/Dragon family - - driver by Nathan Woods - - See mess/machine/coco.c for references - - TODO: Determine how the CoCo 2B (which used the M6847T1 was hooked up - to the M6847T1 chip to generate its text video modes. My best guess is as - follows: - - GM0 would enable lowercase if INV is off, and force INV on by default - GM1 would toggle INV - GM2 enables an alternate border - -***************************************************************************/ - -#include -#include - -#include "driver.h" -#include "machine/6821pia.h" -#include "machine/6883sam.h" -#include "vidhrdw/m6847.h" -#include "vidhrdw/generic.h" -#include "includes/coco.h" - - -/************************************* - * - * Code - * - *************************************/ - -ATTR_CONST UINT8 coco_get_attributes(UINT8 c) -{ - UINT8 result = 0x00; - UINT8 pia1_pb = pia_get_output_b(1); - - if (c & 0x40) result |= M6847_INV; - if (c & 0x80) result |= M6847_AS; - if (pia1_pb & 0x08) result |= M6847_CSS; - if (pia1_pb & 0x10) result |= M6847_GM0 | M6847_INTEXT; - if (pia1_pb & 0x20) result |= M6847_GM1; - if (pia1_pb & 0x40) result |= M6847_GM2; - if (pia1_pb & 0x80) result |= M6847_AG; - return result; -} - - - -static void coco_horizontal_sync_callback(int data) -{ - pia_0_ca1_w(0, data); -} - - - -static void coco_field_sync_callback(int data) -{ - pia_0_cb1_w(0, data); -} - - - -static void internal_video_start_coco(m6847_type type) -{ - m6847_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = type; - - /* NPW 14-May-2006 - Ugly hack; using CPU timing factor seems to break some - * Dragon games */ - if (Machine->gamedrv->name[0] == 'c') - cfg.cpu0_timing_factor = 4; - - cfg.get_attributes = coco_get_attributes; - cfg.get_video_ram = sam_m6847_get_video_ram; - cfg.horizontal_sync_callback = coco_horizontal_sync_callback; - cfg.field_sync_callback = coco_field_sync_callback; - - m6847_init(&cfg); -} - - - -VIDEO_START( dragon ) -{ - internal_video_start_coco(M6847_VERSION_ORIGINAL_PAL); - return 0; -} - -VIDEO_START( coco ) -{ - internal_video_start_coco(M6847_VERSION_ORIGINAL_NTSC); - return 0; -} - -VIDEO_START( coco2b ) -{ - internal_video_start_coco(M6847_VERSION_M6847T1_NTSC); - return 0; -} - diff --git a/mess/vidhrdw/coupe.c b/mess/vidhrdw/coupe.c deleted file mode 100644 index e039c31f8..000000000 --- a/mess/vidhrdw/coupe.c +++ /dev/null @@ -1,181 +0,0 @@ -/*************************************************************************** - - SAM Coupe Driver - Written By Lee Hammerton - - Functions to emulate the video hardware of the coupe. - - At present these are not done using the mame driver standard, they are - simply plot pixelled.. I will fix this in a future version. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" - -#include "includes/coupe.h" - -unsigned char *sam_screen; - -void drawMode4_line(mame_bitmap *bitmap,int y) -{ - int x; - unsigned char tmp=0; - - for (x=0;x<256;) - { - tmp=*(sam_screen + (x/2) + (y*128)); -#ifdef MONO - if (tmp>>4) - { - plot_pixel(bitmap, x*2, y, Machine->pens[127]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[127]); - } - else - { - plot_pixel(bitmap, x*2, y, Machine->pens[0]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[0]); - } - x++; - if (tmp&0x0F) - { - plot_pixel(bitmap, x*2, y, Machine->pens[127]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[127]); - } - else - { - plot_pixel(bitmap, x*2, y, Machine->pens[0]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[0]); - } - x++; -#else - plot_pixel(bitmap, x*2, y, Machine->pens[CLUT[tmp>>4]]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[CLUT[tmp>>4]]); - x++; - plot_pixel(bitmap, x*2, y, Machine->pens[CLUT[tmp&0x0F]]); - plot_pixel(bitmap, x*2+1, y, Machine->pens[CLUT[tmp&0x0F]]); - x++; -#endif - } -} - -void drawMode3_line(mame_bitmap *bitmap,int y) -{ - int x; - unsigned char tmp=0; - - for (x=0;x<512;) - { - tmp=*(sam_screen + (x/4) + (y*128)); -#ifdef MONO - if (tmp>>6) - plot_pixel(bitmap,x,y,Machine->pens[127]); - else - plot_pixel(bitmap,x,y,Machine->pens[0]); - x++; - if ((tmp>>4)&0x03) - plot_pixel(bitmap,x,y,Machine->pens[127]); - else - plot_pixel(bitmap,x,y,Machine->pens[0]); - x++; - if ((tmp>>2)&0x03) - plot_pixel(bitmap,x,y,Machine->pens[127]); - else - plot_pixel(bitmap,x,y,Machine->pens[0]); - x++; - if (tmp&0x03) - plot_pixel(bitmap,x,y,Machine->pens[127]); - else - plot_pixel(bitmap,x,y,Machine->pens[0]); - x++; -#else - plot_pixel(bitmap,x,y,Machine->pens[CLUT[tmp>>6]]); - x++; - plot_pixel(bitmap,x,y,Machine->pens[CLUT[(tmp>>4)&0x03]]); - x++; - plot_pixel(bitmap,x,y,Machine->pens[CLUT[(tmp>>2)&0x03]]); - x++; - plot_pixel(bitmap,x,y,Machine->pens[CLUT[tmp&0x03]]); - x++; -#endif - } -} - -void drawMode2_line(mame_bitmap *bitmap,int y) -{ - int x,b,scrx; - unsigned char tmp=0; - unsigned short ink,pap; - unsigned char *attr; - - attr=sam_screen + 32*192 + y*32; - - scrx=0; - for (x=0;x<256/8;x++) - { - tmp=*(sam_screen + x + (y*32)); -#ifdef MONO - ink=127; - pap=0; -#else - ink=CLUT[(*attr) & 0x07]; - pap=CLUT[((*attr)>>3) & 0x07]; -#endif - attr++; - - for (b=0x80;b!=0;b>>=1) - { - if (tmp&b) - { - plot_pixel(bitmap,scrx++,y,Machine->pens[ink]); - plot_pixel(bitmap,scrx++,y,Machine->pens[ink]); - } - else - { - plot_pixel(bitmap,scrx++,y,Machine->pens[pap]); - plot_pixel(bitmap,scrx++,y,Machine->pens[pap]); - } - } - } -} - -void drawMode1_line(mame_bitmap *bitmap,int y) -{ - int x,b,scrx,scry; - unsigned char tmp=0; - unsigned short ink,pap; - unsigned char *attr; - - attr=sam_screen + 32*192 + (y/8)*32; - - scrx=0; - scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - for (x=0;x<256/8;x++) - { - tmp=*(sam_screen + x + (y*32)); -#ifdef MONO - ink=127; - pap=0; -#else - ink=CLUT[(*attr) & 0x07]; - pap=CLUT[((*attr)>>3) & 0x07]; -#endif - attr++; - for (b=0x80;b!=0;b>>=1) - { - if (tmp&b) - { - plot_pixel(bitmap,scrx++,scry,Machine->pens[ink]); - plot_pixel(bitmap,scrx++,scry,Machine->pens[ink]); - } - else - { - plot_pixel(bitmap,scrx++,scry,Machine->pens[pap]); - plot_pixel(bitmap,scrx++,scry,Machine->pens[pap]); - } - } - } -} - - - - diff --git a/mess/vidhrdw/crtc6845.c b/mess/vidhrdw/crtc6845.c deleted file mode 100644 index a7a215262..000000000 --- a/mess/vidhrdw/crtc6845.c +++ /dev/null @@ -1,339 +0,0 @@ -/*************************************************************************** - - Motorola 6845 CRT controller and emulation - - This code emulates the functionality of the 6845 chip, and also - supports the functionality of chips related to the 6845 - - Peter Trauner - Nathan Woods - - Registers - 00 - Horiz. total characters - 01 - Horiz. displayed characters per line - 02 - Horiz. synch position - 03 - Horiz. synch width in characters - 04 - Vert. total lines - 05 - Vert. total adjust (scan lines) - 06 - Vert. displayed rows - 07 - Vert. synch position (character rows) - 08 - Interlace mode - 09 - Maximum scan line address - 0A - Cursor start (scan line) - 0B - Cursor end (scan line) - 0C - Start address (MSB) - 0D - Start address (LSB) - 0E - Cursor address (MSB) (read/write) - 0F - Cursor address (LSB) (read/write) - 10 - Light pen (MSB) (read only) - 11 - Light pen (LSB) (read only) - -***************************************************************************/ - -#include -#include "mame.h" -#include "vidhrdw/generic.h" -#include "state.h" - -#include "mscommon.h" -#include "includes/crtc6845.h" - -/*************************************************************************** - - Constants & macros - -***************************************************************************/ - -#define VERBOSE 0 - -#if VERBOSE -#define DBG_LOG(N,M,A) \ - if(VERBOSE>=N){ if( M )logerror("%11.6f: %-24s",timer_get_time(),(char*)M ); logerror A; } -#else -#define DBG_LOG(N,M,A) -#endif - -/*************************************************************************** - - Type definitions - -***************************************************************************/ - -struct crtc6845 -{ - struct crtc6845_config config; - UINT8 reg[18]; - UINT8 idx; - double cursor_time; - int cursor_on; -}; - -struct reg_mask -{ - UINT8 store_mask; - UINT8 read_mask; -}; - -struct crtc6845 *crtc6845; - -/*************************************************************************** - - Local variables - -***************************************************************************/ - -/*------------------------------------------------- - crtc6845_reg_mask - an array specifying how - much of any given register "registers", per - m6845 personality --------------------------------------------------*/ - -static const struct reg_mask crtc6845_reg_mask[2][18] = -{ - { - /* M6845_PERSONALITY_GENUINE */ - { 0xff, 0x00 }, { 0xff, 0x00 }, { 0xff, 0x00 }, { 0xff, 0x00 }, - { 0x7f, 0x00 }, { 0x1f, 0x00 }, { 0x7f, 0x00 }, { 0x7f, 0x00 }, - { 0x3f, 0x00 }, { 0x1f, 0x00 }, { 0x7f, 0x00 }, { 0x1f, 0x00 }, - { 0x3f, 0x3f }, { 0xff, 0xff }, { 0x3f, 0x3f }, { 0xff, 0xff }, - { 0xff, 0x3f }, { 0xff, 0xff } - }, - { - /* M6845_PERSONALITY_PC1512 */ - { 0x00, 0x00 }, { 0x00, 0x00 }, { 0x00, 0x00 }, { 0x00, 0x00 }, - { 0x00, 0x00 }, { 0x00, 0x00 }, { 0x00, 0x00 }, { 0x00, 0x00 }, - { 0x00, 0x00 }, { 0x1f, 0x00 }, { 0x7f, 0x00 }, { 0x1f, 0x00 }, - { 0x3f, 0x3f }, { 0xff, 0xff }, { 0x3f, 0x3f }, { 0xff, 0xff }, - { 0xff, 0x3f }, { 0xff, 0xff } - } -}; - -/* The PC1512 has not got a full MC6845; the first 9 registers act as if they - * had these hardwired values: */ -static UINT8 pc1512_defaults[] = -{ - 113, 80, 90, 10, 127, 6, 100, 112, 2 -}; - -/*************************************************************************** - - Functions - -***************************************************************************/ - -static void crtc6845_state_postload(void) -{ - if (dirtybuffer && videoram_size) - memset(dirtybuffer, 1, videoram_size); -} - -struct crtc6845 *crtc6845_init(const struct crtc6845_config *config) -{ - struct crtc6845 *crtc; - int idx; - - crtc = auto_malloc(sizeof(struct crtc6845)); - memset(crtc, 0, sizeof(*crtc)); - crtc->cursor_time = timer_get_time(); - crtc->config = *config; - crtc6845 = crtc; - - /* Hardwire the values which can't be changed in the PC1512 version */ - if (config->personality == M6845_PERSONALITY_PC1512) - { - for (idx = 0; idx < sizeof(pc1512_defaults); idx++) - { - crtc->reg[idx] = pc1512_defaults[idx]; - } - } - - state_save_register_item_array("crtc6845", 0, crtc->reg); - state_save_register_item("crtc6845", 0, crtc->idx); - state_save_register_func_postload(crtc6845_state_postload); - return crtc; -} - -#define REG(x) (crtc->reg[x]) - -static int crtc6845_clocks_in_frame(struct crtc6845 *crtc) -{ - int clocks=CRTC6845_COLUMNS*CRTC6845_LINES; - switch (CRTC6845_INTERLACE_MODE) { - case CRTC6845_INTERLACE_SIGNAL: // interlace generation of video signals only - case CRTC6845_INTERLACE: // interlace - return clocks/2; - default: - return clocks; - } -} - -void crtc6845_set_clock(struct crtc6845 *crtc, int freq) -{ - assert(crtc); - crtc->config.freq = freq; -} - -void crtc6845_time(struct crtc6845 *crtc) -{ - double neu, ftime; - struct crtc6845_cursor cursor; - - neu = timer_get_time(); - - if (crtc6845_clocks_in_frame(crtc) == 0.0) - return; - - ftime = crtc6845_clocks_in_frame(crtc) * 16.0 / crtc->config.freq; - - if (CRTC6845_CURSOR_MODE==CRTC6845_CURSOR_32FRAMES) - ftime*=2; - - if (neu-crtc->cursor_time>ftime) - { - crtc->cursor_time += ftime; - crtc6845_get_cursor(crtc, &cursor); - - if (crtc->config.cursor_changed) - crtc->config.cursor_changed(&cursor); - - crtc->cursor_on ^= 1; - } -} - -int crtc6845_get_char_columns(struct crtc6845 *crtc) -{ - return CRTC6845_CHAR_COLUMNS; -} - -int crtc6845_get_char_height(struct crtc6845 *crtc) -{ - return CRTC6845_CHAR_HEIGHT; -} - -int crtc6845_get_char_lines(struct crtc6845 *crtc) -{ - return CRTC6845_CHAR_LINES; -} - -int crtc6845_get_start(struct crtc6845 *crtc) -{ - return CRTC6845_VIDEO_START; -} - - -void crtc6845_set_char_columns(struct crtc6845 *crtc, UINT8 columns) -{ - crtc->reg[1] = columns; -} - - -void crtc6845_set_char_lines(struct crtc6845 *crtc, UINT8 lines) -{ - crtc->reg[6] = lines; -} - - -int crtc6845_get_personality(struct crtc6845 *crtc) -{ - return crtc->config.personality; -} - -void crtc6845_get_cursor(struct crtc6845 *crtc, struct crtc6845_cursor *cursor) -{ - switch (CRTC6845_CURSOR_MODE) { - case CRTC6845_CURSOR_OFF: - cursor->on = 0; - break; - - case CRTC6845_CURSOR_16FRAMES: - case CRTC6845_CURSOR_32FRAMES: - cursor->on = crtc->cursor_on; - break; - - default: - cursor->on = 1; - break; - } - - cursor->pos = CRTC6845_CURSOR_POS; - cursor->top = CRTC6845_CURSOR_TOP; - cursor->bottom = CRTC6845_CURSOR_BOTTOM; -} - -UINT8 crtc6845_port_r(struct crtc6845 *crtc, int offset) -{ - UINT8 val = 0xff; - int idx; - - if (offset & 1) - { - idx = crtc->idx & 0x1f; - if (idx < (sizeof(crtc->reg) / sizeof(crtc->reg[0]))) - val = crtc->reg[idx] & crtc6845_reg_mask[crtc->config.personality][idx].read_mask; - } - else - { - val = crtc->idx; - } - return val; -} - -int crtc6845_port_w(struct crtc6845 *crtc, int offset, UINT8 data) -{ - struct crtc6845_cursor cursor; - int idx; - UINT8 mask; - - if (offset & 1) - { - /* write to a 6845 register, if supported */ - idx = crtc->idx & 0x1f; - if (idx < (sizeof(crtc->reg) / sizeof(crtc->reg[0]))) - { - mask = crtc6845_reg_mask[crtc->config.personality][idx].store_mask; - /* Don't zero out bits not covered by the mask. */ - crtc->reg[crtc->idx] &= ~mask; - crtc->reg[crtc->idx] |= (data & mask); - - /* are there special consequences to writing to this register? */ - switch (idx) { - case 0xa: - case 0xb: - case 0xe: - case 0xf: - crtc6845_get_cursor(crtc, &cursor); - if (crtc->config.cursor_changed) - crtc->config.cursor_changed(&cursor); - break; - } - - /* since the PC1512 does not support the number of lines register directly, - * this value is keyed off of register 9 - */ - if ((crtc->config.personality == M6845_PERSONALITY_PC1512) && (idx == 9)) - { - UINT8 char_height; - char_height = crtc6845_get_char_height(crtc); - crtc6845_set_char_lines(crtc, 200 ); // / char_height); - } - return TRUE; - } - } - else - { - /* change the idx register */ - crtc->idx = data; - } - return FALSE; -} - - READ8_HANDLER ( crtc6845_0_port_r ) -{ - return crtc6845_port_r(crtc6845, offset); -} - -WRITE8_HANDLER ( crtc6845_0_port_w ) -{ - crtc6845_port_w(crtc6845, offset, data); -} - diff --git a/mess/vidhrdw/dai.c b/mess/vidhrdw/dai.c deleted file mode 100644 index 55fee2376..000000000 --- a/mess/vidhrdw/dai.c +++ /dev/null @@ -1,774 +0,0 @@ -/*************************************************************************** - - dai.c - - Functions to emulate the video hardware of DAI. - - Krzysztof Strzecha - - All video modes are emulated but not fully tested yet. - VIDEO_UPDATE function needs strong cleanup and optimalisation. - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/dai.h" - -#define DEBUG_DAI_VIDEO 0 - -#if DEBUG_DAI_VIDEO - #define LOG_DAI_VIDEO_LINE(_mode, _unit, _resolution, _repeat, _scan) logerror ("Mode: %02x, Unit: %02x, Resolution: %02x, Repeat: %d, Current line: %d\n", _mode, _unit, _resolution, _repeat, _scan) -#else - #define LOG_DAI_VIDEO_LINE(_mode, _unit, _resolution, _repeat, _scan) -#endif - -unsigned char dai_palette[16*3] = -{ - 0x00, 0x00, 0x00, /* 0 Black */ - 0x00, 0x00, 0x8b, /* 1 Dark Blue */ - 0xb1, 0x00, 0x95, /* 2 Purple Red */ - 0xff, 0x00, 0x00, /* 3 Red */ - 0x75, 0x2e, 0x50, /* 4 Purple Brown */ - 0x00, 0xb2, 0x38, /* 5 Emerald Green */ - 0x98, 0x62, 0x00, /* 6 Kakhi Brown */ - 0xae, 0x7a, 0x00, /* 7 Mustard Brown */ - 0x89, 0x89, 0x89, /* 8 Grey */ - 0xa1, 0x6f, 0xff, /* 9 Middle Blue */ - 0xff, 0xa5, 0x00, /* 10 Orange */ - 0xff, 0x99, 0xff, /* 11 Pink */ - 0x9e, 0xf4, 0xff, /* 12 Light Blue */ - 0xb3, 0xff, 0xbb, /* 13 Light Green */ - 0xff, 0xff, 0x28, /* 14 Light Yellow */ - 0xff, 0xff, 0xff, /* 15 White */ -}; - -unsigned short dai_colortable[1][16] = -{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } -}; - -static unsigned short dai_4_colours_palette[4]; - -PALETTE_INIT( dai ) -{ - palette_set_colors(machine, 0, dai_palette, sizeof(dai_palette) / 3); - memcpy(colortable, dai_colortable, sizeof (dai_colortable)); -} - - -VIDEO_START( dai ) -{ - return 0; -} - -VIDEO_UPDATE( dai ) -{ - int i, j, k, l; - - UINT8* char_rom = memory_region(REGION_GFX1); - - UINT16 dai_video_memory_start = 0xbfff; - UINT16 dai_scan_lines = 604; /* scan lines of PAL tv */ - - UINT16 current_scan_line = 0; - UINT16 current_video_memory_address = dai_video_memory_start; - - UINT8 mode; /* mode byte of line - bits 0-3 - line repeat count - bits 4-5 - resolution control - bits 6-7 - display mode control */ - UINT8 colour; /* colour byte of line - bits 0-3 - one of 16 colours - bits 4-5 - colour register for update - bit 6 - if unset force 'unit colour mode' - bit 7 - enable coulor change - if unset bits 0-5 are ignored */ - UINT8 line_repeat_count; /* number of horizontalraster scans - for which same data will be displayed - 0000 - 2 lines - each additional repeat adds 2 scans */ - UINT8 horizontal_resolution; /* number of blobs per line - 00 - 88 (low resolution graphics) - 01 - 176 (medium resolution graphics) - 10 - 352 (high resolution graphics) - 11 - 528 (text with 66 chars per line) */ - UINT8 display_mode; /* determine how data will be used - to generate the picture - 00 - four colour graphics - 01 - four colour characters - 10 - sixteen colour graphics - 11 - sixteen colour characters */ - UINT8 unit_mode; - - UINT8 current_data_1, current_data_2; - - UINT8 current_colour; - - while (current_scan_line < dai_scan_lines) - { - mode = program_read_byte(current_video_memory_address--); - colour = program_read_byte(current_video_memory_address--); - line_repeat_count = mode & 0x0f; - horizontal_resolution = (mode & 0x30) >> 4; - display_mode = (mode & 0xc0) >> 6; - unit_mode = (colour & 0x40) >> 6; - - if (colour & 0x80) - dai_4_colours_palette[(colour & 0x30) >> 4] = colour & 0x0f; - - switch (display_mode) - { - - case 0x00: /* 4 colour grahics modes */ - switch (horizontal_resolution) - { - - case 0x00: /* 88 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - - for (i=0; i<11; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<11; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x01: /* 176 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<22; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<22; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x02: /* 352 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<44; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<44; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x03: /* 528 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<66; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<66; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)]; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - } - break; - - case 0x01: /* 4 colour characters */ - switch (horizontal_resolution) - { - - case 0x00: /* 11 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (i=0; i<11; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<11; i++) - { - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - } - break; - case 0x01: /* 22 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (i=0; i<22; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<22; i++) - { - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - } - break; - case 0x02: /* 44 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (i=0; i<44; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<44; i++) - { - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - case 0x03: /* 66 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (i=0; i<66; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<66; i++) - { - current_data_1 = program_read_byte(current_video_memory_address); - current_data_2 = program_read_byte(current_video_memory_address-3); - current_video_memory_address-=2; - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = dai_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)]; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - } - break; - case 0x02: /* 16 colour graphics */ - switch (horizontal_resolution) - { - - case 0x00: /* 88 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - - for (i=0; i<11; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<11; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x01: /* 176 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<22; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<22; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x02: /* 352 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<44; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<44; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - - case 0x03: /* 528 pixels */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<66; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<66; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((current_data_1>>(7-k)) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - } - break; - case 0x03: /* 16 colour characters */ - switch (horizontal_resolution) - { - - case 0x00: /* 11 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<11; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<11; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<12; l++) - plot_pixel(bitmap, (i*8+k)*12+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - } - break; - case 0x01: /* 22 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<22; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - case 1: - for (i=0; i<22; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<6; l++) - plot_pixel(bitmap, (i*8+k)*6+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - current_video_memory_address-=2; - break; - } - break; - case 0x02: /* 44 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<44; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<44; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<3; l++) - plot_pixel(bitmap, (i*8+k)*3+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - case 0x03: /* 66 chars */ - switch (unit_mode) - { - case 0: - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (i=0; i<66; i++) - { - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - case 1: - for (i=0; i<66; i++) - { - current_data_1 = program_read_byte(current_video_memory_address--); - current_data_2 = program_read_byte(current_video_memory_address--); - for (j=0; j<=line_repeat_count; j++) - { - for (k=0; k<8; k++) - { - current_colour = ((char_rom[current_data_1*16+j]>>k) & 0x01) ? (current_data_2>>4)&0x0f : current_data_2&0x0f; - for (l=0; l<2; l++) - plot_pixel(bitmap, (i*8+k)*2+l, current_scan_line/2 + j, Machine->pens[current_colour]); - } - } - } - break; - } - break; - } - break; - } - current_scan_line += line_repeat_count*2+2; - LOG_DAI_VIDEO_LINE(display_mode, unit_mode, horizontal_resolution, line_repeat_count, current_scan_line); - } - return 0; -} diff --git a/mess/vidhrdw/dgn_beta.c b/mess/vidhrdw/dgn_beta.c deleted file mode 100644 index df89659d4..000000000 --- a/mess/vidhrdw/dgn_beta.c +++ /dev/null @@ -1,854 +0,0 @@ -/* - vidhrdw/dgn_beta.c - -The Dragon Beta uses a 68B45 for it's display generation, this is used in the -conventional wat with a character generator ROM in the two text modes, which are -standard 40x25 and 80x25. In adition to the 6845 there is some TTL logic which -provides colour and attributes. In text modes the video ram is organised as pairs -of character and attribute, in alternate bytes. - -The attributes decode as follows :- - - 7-6-5-4-3-2-1-0 - f-u-F-F-F-B-B-B - - f=flash - u=underline - - FFF = foreground colour - BBB = bakcground colour - - 000 black - 001 red - 010 green - 011 yellow - 100 blue - 101 magenta - 110 cyan - 111 white - - If flash is true, foreground and background colours will be exchanged. - -It is interesting to note that the 6845 uses 16 bit wide access to the ram, in contrast -to the 8 bit accesses from the CPUs, this allows each increment of the MA lines to move -2 bytes at a time, and therefore feed both the character rom and the attribute decode -circuit simultaniously. - -The RAM addresses are made up of two parts, the MA0..13 from the 6845, plus two output -lines from the 6821 PIA, I28, the lines are BP6 and PB7, with PB7 being the most -significant. This effectivly allows the 6845 access to the first 128K of memory, as there -are 16 address lines, accessing a 16 bit wide memory. - -The relationship between how the cpu sees the RAM, and the way the 6845 sees it is simply -CPU addr=2x6845 addr. So for the default video address of $1F000, the CPU sees this as -being at $1F000 (after DAT trasnlation). The 6845 is programmed to start it's MA lines -counting at $3800, plus A14 and A15 being supplied by PB6 and PB7 from I28, gives an address -of $F800, which is the same as $1F000 / 2. - -I am currently at this time not sure of how any of the graphics modes, work, this will need -further investigation. - -However the modes supported are :- - -Text Modes - width height colours - 40 25 8 - 80 25 8 -Graphics modes - 320 256 4 - 320 256 16 - 640 512 4 - 640 256 4** - 640 512 2 - -Looking at the parts of the circuit sheet that I have seen it looks like the graphics modes -are driven using a combination of the 6845 MA and RA lines to address more than 64K or memory -which is needed for some of the modes above (specifically, 640x512x4, which needs 80K). - -2006-11-30, Text mode is almost completely implemented, in both 40 and 80 column modes. -I have made a start on implementing the graphics modes of the beta, drawing from technical -documents, from the project, this is still a work in progress. I have however managed to get -it to display a distorted graphical image, so I know I am going in the correct direction ! - -** 2006-12-05, this mode is not documented in any of the printed documentation, however it -is supported and displayed by the graphics test rom, it is basically the 640x512x4 mode with -half the number of vertical lines, and in non-interlaced mode. - -It seems that the 640x512 modes operate the 6845 in interlaced mode, just how this affects -the access to the video memory is unclear to me at the moment. - -*/ - -#include "driver.h" -#include "inputx.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/m6845.h" -#include "mscommon.h" - -#include "includes/dgn_beta.h" - -#ifdef MAME_DEBUG -#include "debug/debugcpu.h" -#include "debug/debugcon.h" -#endif - -//#define LOG_VIDEO - -/* Names for 6845 regs, to save having to remember their offsets */ -/* perhaps these should move into 6845 header ? */ -typedef enum { - H_TOTAL = 0, // Horizontal total - H_DISPLAYED, // Horizontal displayed - H_SYNC_POS, // Horizontal sync pos - H_SYNC_WIDTH, // Horizontal sync width - V_TOTAL, // Vertical total - V_TOTAL_ADJ, // Vertical total adjust - V_DISPLAYED, // Vertical displayed - V_SYNC_POS, // Vertical sync pos - INTERLACE, // Interlace - MAX_SCAN, // Maximum scan line - CURS_START, // Cursor start pos - CURS_END, // Cursor end pos - START_ADDR_H, // Start address High - START_ADDR_L, // Start address low - CURS_H, // Cursor addr High - CURS_L // CURSOR addr Low -} crtc6845_regs; - -static int beta_6845_RA = 0; -static int beta_scr_x = 0; -static int beta_scr_y = 0; -static int beta_HSync = 0; -static int beta_VSync = 0; -static int beta_DE = 0; - -//static BETA_VID_MODES VIDMODE = TEXT_40x25; - -#ifdef MAME_DEBUG -static int LogRegWrites = 0; // Log register writes to debug console. -static int BoxColour = 1; -static int BoxMinX = 100; -static int BoxMinY = 100; -static int BoxMaxX = 500; -static int BoxMaxY = 500; -static int HSyncMin = 0; -static int VSyncMin = 0; -static int DEPos = 0; - -// Debugginc commands and handlers. -static void ToggleRegLog(int ref, int params, const char *param[]); -static void RegLog(int offset, int data); -static void FillScreen(int ref, int params, const char *param[]); -static void ScreenBox(int ref, int params, const char *param[]); -static void VidToggle(int ref, int params, const char *param[]); -static void ShowVidLimits(int ref, int params, const char *param[]); -static void SetClkMax(int ref, int params, const char *param[]); -#endif /* MAME_DEBUG */ - -static mame_bitmap *bit; -static int MinAddr = 0xFFFF; -static int MaxAddr = 0x0000; -static int MinX = 0xFFFF; -static int MaxX = 0x0000; -static int MinY = 0xFFFF; -static int MaxY = 0x0000; - -static int VidAddr = 0; // Last address reg written - -#ifdef MAME_DEBUG -static int NoScreen = 0; -#endif /* MAME_DEBUG */ - -static void beta_Set_RA(int offset, int data); -static void beta_Set_HSync(int offset, int data); -static void beta_Set_VSync(int offset, int data); -static void beta_Set_DE(int offset, int data); - -static struct crtc6845_interface -beta_crtc6845_interface= { - 0, // Memory Address register - beta_Set_RA, // Row Address register - beta_Set_HSync, // Horizontal status - beta_Set_VSync, // Vertical status - beta_Set_DE, // Display Enabled status - 0, // Cursor status - 0 -}; - -static int ClkMax; /* max crtc clock, used to timeout screen refresh */ -static int GCtrl; /* Graphics control reg, from I28 PB0..5, PB6-7, top address lines for text mode */ - -static int FlashCount; /* Flash counter, IC2, LS393 decade counter */ -static int FlashBit; /* Flash bit, FL input to I38 */ -static int DoubleY; /* Double height latch, 'Y' in I38 */ -static int DoubleHL; /* Double height second row 'HL' in I38 */ - -static int ColourRAM[4]; /* I59, 74ls670, 4x4bit colour ram for graphics modes */ - -static int Field; /* will be 0 or 1, for even or odd field, used by interlaced display */ -static int DrawInterlace; /* Should we draw interlaced or not ? */ - -typedef enum { - INTERLACE_OFF=0, /* No interlace mode, normal drawing */ - INTERLACE_ON=1, /* Interlaced mode, use Field to determine which field to draw */ - INTERLACE_AT_VS=2 /* Turn on interlace at next VSync, then go to INTERLACE */ -} INTERLACE_MODES; - -#define Background 1 /* Background colour, red now so I can see where border is ! */ - -/* GCtrl bitmasks, infered from bits of Beta schematic */ -#define GCtrlWI 0x01 -#define GCtrlSWChar 0x02 /* Character set select */ -#define GCtrlHiLo 0x04 /* Hi/Lo res graphics, Hi=1, Lo=0 */ -#define GCtrlChrGfx 0x08 /* Character=1 / Graphics=0 */ -#define GCtrlControl 0x10 /* Control bit, sets direct drive mode */ -#define GCtrlFS 0x20 /* labeled F/S, not yet sure of function Fast or Slow scan ? */ -#define GCtrlAddrLines 0xC0 /* Top two address lines for text mode */ - -#define IsTextMode (GCtrl & GCtrlChrGfx) ? 1 : 0 // Is this text mode ? -#define IsGfx16 ((~GCtrl & GCtrlChrGfx) && (~GCtrl & GCtrlControl)) ? 1 : 0 // is this 320x256x16bpp mode -#define IsGfx2 ((GCtrl & GCtrlHiLo) && (~GCtrl & GCtrlFS)) ? 1 : 0 // Is this a 2 colour mode -#define SWChar (GCtrl & GCtrlSWChar)>>1 // Swchar bit - -//static int beta_state; - -/* Set video control register from I28 port B, the control register is laid out as */ -/* follows :- */ -/* bit function */ -/* 0 WI, unknown */ -/* 1 Character set select, drives A12 of character rom in text mode */ -/* 2 High (1) or Low(0) resolution if in graphics mode. */ -/* 3 Text (1) or Graphics(0) mode */ -/* 4 Control bit, Selects between colour palate and drirect drive */ -/* 5 F/S bit, 1=80 bytes/line, 0=40bytes/line */ -/* 6 Effective A14, to ram, in text mode */ -/* 7 Effective A15, to ram, in text mode */ -/* the top two address lines for the video ram, are supplied by the BB6 and PB7 on */ -/* 6821-I28, this allows the 6845 to access the full 64K address range, however */ -/* since the ram data is addressed as a 16bit wide unit, this allows the 6845 */ -/* access to the first 128K or ram. */ -void vid_set_gctrl(int data) -{ - GCtrl=data; -#ifdef MAME_DEBUG - if (LogRegWrites) - debug_console_printf("I28-PB=$%2X, %2X-%s-%s-%s-%s-%s-%s PC=%4X\n", - data, - data & GCtrlAddrLines, - data & GCtrlFS ? "FS" : " ", - data & GCtrlControl ? "CT" : " ", - data & GCtrlChrGfx ? "Ch" : "Gf", - data & GCtrlHiLo ? "Hi" : "Lo", - data & GCtrlSWChar ? "C0" : "C1", - data & GCtrlWI ? "Wi" : " ", - activecpu_get_pc()); - - -#endif -} - -// called when the 6845 changes the character row -static void beta_Set_RA(int offset, int data) -{ - beta_6845_RA=data; -} - -// called when the 6845 changes the HSync -static void beta_Set_HSync(int offset, int data) -{ - int Dots; /* Pixels per 16 bits */ - - beta_HSync=data; - - if(IsGfx16) - Dots=2; - else - Dots=8; - - if(!beta_HSync) - { - int HT=crtc6845_get_register(H_TOTAL); // Get H total - int HS=crtc6845_get_register(H_SYNC_POS); // Get Hsync pos - int HW=crtc6845_get_register(H_SYNC_WIDTH)&0xF; // Hsync width (in chars) - - beta_scr_y++; -// beta_scr_x=0-(((HT-HS)-HW)*8); // Number of dots after HS to wait before start of next line - beta_scr_x=0-((HT-(HS+HW))*Dots); - -//debug_console_printf("HT=%d, HS=%d, HW=%d, (HS+HW)=%d, HT-(HS+HW)=%d\n",HT,HS,HW,(HS+HW),(HT-(HS+HW))); -//debug_console_printf("Scanline=%d, row=%d\n",crtc6845_get_scanline_counter(),crtc6845_get_row_counter()); -#ifdef MAME_DEBUG - HSyncMin=beta_scr_x; -#endif - } -} - -// called when the 6845 changes the VSync -static void beta_Set_VSync(int offset, int data) -{ - beta_VSync=data; - if (!beta_VSync) - { - beta_scr_y = -20; - FlashCount++; - if(FlashCount==10) - { - FlashCount=0; // Reset counter - FlashBit=(!FlashBit) & 0x01; // Invert flash bit. - } - - if (DrawInterlace==INTERLACE_AT_VS) - { - DrawInterlace=INTERLACE_ON; - Field=0; - } - else if (DrawInterlace==INTERLACE_ON) - { - Field=(Field+1) & 0x01; /* Invert field */ -// debug_console_printf("Invert field=%d\n",Field); - } -#ifdef MAME_DEBUG - VSyncMin=beta_scr_y; -#endif - } - - dgn_beta_frame_interrupt(data); -} - -static void beta_Set_DE(int offset, int data) -{ - beta_DE = data; - -#ifdef MAME_DEBUG - if(beta_DE) - DEPos=beta_scr_x; -#endif -} - -/* Video init */ -void init_video(void) -{ - /* initialise 6845 */ - crtc6845_config(&beta_crtc6845_interface); - crtc6845_set_personality(M6845_PERSONALITY_HD6845S); - - GCtrl=0; - - videoram=mess_ram; - - ClkMax=65000; - FlashCount=0; - FlashBit=0; - DoubleHL=1; /* Default to normal height */ - DoubleY=1; - DrawInterlace=INTERLACE_OFF; /* No interlace by default */ - -#ifdef MAME_DEBUG - /* setup debug commands */ - if (options.mame_debug) - { - debug_console_register_command("beta_vid_log", CMDFLAG_NONE, 0, 0, 0,ToggleRegLog); - debug_console_register_command("beta_vid_fill", CMDFLAG_NONE, 0, 0, 0,FillScreen); - debug_console_register_command("beta_vid_box", CMDFLAG_NONE, 0, 0, 5,ScreenBox); - debug_console_register_command("beta_vid", CMDFLAG_NONE, 0, 0, 0,VidToggle); - debug_console_register_command("beta_vid_limits", CMDFLAG_NONE, 0, 0, 0,ShowVidLimits); - debug_console_register_command("beta_vid_clkmax", CMDFLAG_NONE, 0, 0, 1,SetClkMax); - } - LogRegWrites=0; -#endif /* MAME_DEBUG */ -} - -/**************************/ -/** Text screen handlers **/ -/**************************/ - -/* Plot a pixel on beta text screen, takes care of doubling height and width where needed */ -void plot_text_pixel(int x, int y,int Dot,int Colour, int CharsPerLine, mame_bitmap *bitmap) -{ - int PlotX; - int PlotY; - int Double = (~GCtrl & GCtrlHiLo); - - /* We do this so that we can plot 40 column characters twice as wide */ - if(Double) - { - PlotX=(x+Dot)*2; - } - else - { - PlotX=(x+Dot); - } - - PlotY=y*2; - - /* Error check, make sure we're drawing onm the actual bitmap ! */ - if (((PlotX+1)width) && ((PlotY+1)height)) - { - /* As the max resolution of the beta is 640x512, we need to draw characters */ - /* 2 pixel lines high as the with a screen of 40 or 80 by 25 lines of 10 pixels high */ - /* the effective character to pixel resolution is 320x250 or 640x250 */ - /* Plot characters twice as wide in 40 col mode */ - if(Double) - { - plot_pixel(bitmap, (PlotX+0), (PlotY+0),Colour); - plot_pixel(bitmap, (PlotX+1), (PlotY+0),Colour); - - plot_pixel(bitmap, (PlotX+0), (PlotY+1),Colour); - plot_pixel(bitmap, (PlotX+1), (PlotY+1),Colour); - } - else - { - plot_pixel(bitmap, PlotX, (PlotY+0),Colour); - plot_pixel(bitmap, PlotX, (PlotY+1),Colour); - } - } -} - -static void beta_plot_char_line(int x,int y, mame_bitmap *bitmap) -{ - int CharsPerLine = crtc6845_get_register(H_DISPLAYED); // Get chars per line. - unsigned char *data = memory_region(REGION_GFX1); // ptr to char rom - int Dot; - unsigned char data_byte; - int char_code; - int crtcAddr; // Character to draw - int Offset; - int FgColour; // Foreground colour - int BgColour; // Background colour - int CursorOn = crtc6845_cursor_enabled_r(0); - int Invert; - int UnderLine; // Underline - int FlashChar; // Flashing char - int ULActive; // Underline active - - bit=bitmap; - - if (beta_DE) - { - /* The beta text RAM contains alternate character and attribute bytes */ - /* Top two address lines from PIA, IC28 PB6,7 */ - crtcAddr=crtc6845_memory_address_r(0)-1; - Offset=(crtcAddr | ((GCtrl & GCtrlAddrLines)<<8))*2; - if (Offset<0) - Offset=0; - - /* Get the character to display */ - char_code = videoram[Offset]; - - /* Extract non-colour attributes, in character set 1, undeline is used */ - /* We will extract the colours below, when we have decoded inverse */ - /* to indicate a double height character */ - UnderLine=(videoram[Offset+1] & 0x40) >> 6; - FlashChar=(videoram[Offset+1] & 0x80) >> 7; - - // underline is active for character set 0, on character row 9 - ULActive=(UnderLine && (beta_6845_RA==9) && ~SWChar); - - /* If Character set one, and undeline set, latch double height */ - DoubleY=(UnderLine & SWChar & DoubleHL) | - (SWChar & ~DoubleY & DoubleHL) | - (SWChar & ~DoubleY & (beta_6845_RA==9)); - - /* Invert forground and background if flashing char and flash acive */ - Invert=(FlashChar & FlashBit); - - /* Underline inverts flash */ - if (ULActive) - Invert=~Invert; - - /* Cursor on also inverts */ - if (CursorOn) - Invert=~Invert; - - /* Invert colours if invert is true */ - if(!Invert) - { - FgColour = (videoram[Offset+1] & 0x38) >> 3; - BgColour = (videoram[Offset+1] & 0x07); - } - else - { - BgColour = (videoram[Offset+1] & 0x38) >> 3; - FgColour = (videoram[Offset+1] & 0x07); - } - - /* The beta Character ROM has characters of 8x10, each aligned to a 16 byte boundry */ - data_byte = data[(char_code*16) + beta_6845_RA]; - - for (Dot=0; Dot<8; Dot++) - { - if (data_byte & 0x080) - plot_text_pixel(x,y,Dot,FgColour,CharsPerLine,bitmap); - else - plot_text_pixel(x,y,Dot,BgColour,CharsPerLine,bitmap); - - data_byte = data_byte<<1; - } - } - else - { - for (Dot=0; Dot<8; Dot++) - plot_text_pixel(x,y,Dot,Background,CharsPerLine,bitmap); - - } - -} - -/******************************/ -/** Graphics screen handlers **/ -/******************************/ - -/* Plot a pixel on the graphics screen, similar to character plotter above */ -/* May merge at some point in the future, if they turn out to be sufficiently similar ! */ -void plot_gfx_pixel(int x, int y, int Dot, int Colour, mame_bitmap *bitmap) -{ - int DoubleX = (~GCtrl & GCtrlHiLo) ? 1 : 0; - int DoubleY = (~crtc6845_get_register(INTERLACE) & 0x03) ? 1 : 0; - int PlotX; - int PlotY; - - if (DoubleX) - PlotX=(x+Dot)*2; - else - PlotX=x+Dot; - - if(DoubleY) - PlotY=(y)*2; - else - PlotY=y; - - if(DrawInterlace==INTERLACE_ON) - { - PlotY=(y*2);//+Field; - DoubleY=0; -// debug_console_printf("Field=%d\n",Field); - } - - /* Error check, make sure we're drawing on the actual bitmap ! */ - if (((PlotX+1)width) && ((PlotY+1)height)) - { - /* As the max resolution of the beta is 640x512, we need to draw pixels */ - /* twice as high and twice as wide when plotting in 320x modes */ - if(DoubleX) - { - plot_pixel(bitmap, (PlotX+0), (PlotY+0),Colour); - plot_pixel(bitmap, (PlotX+1), (PlotY+0),Colour); - } - - /* Plot pixels twice as high if in x256 modes */ - if (DoubleY) - { - plot_pixel(bitmap, (PlotX+0), (PlotY+1),Colour); - plot_pixel(bitmap, (PlotX+1), (PlotY+1),Colour); - } - - if (~(DoubleX | DoubleY)) - { - plot_pixel(bitmap, PlotX, PlotY,Colour); - } - } -} - -/* Get and plot a graphics bixel block */ - -static void beta_plot_gfx_line(int x,int y, mame_bitmap *bitmap) -{ - int crtcAddr; - int Addr; - int Red; - int Green; - int Blue; - int Intense; - int Colour; - int Dot; - int Hi; - int Lo; - int Word; - int Dots; /* pixesls per byte */ - - /* We have to do this here so that it is correct for border and drawing area ! */ - if (IsGfx16) - Dots=4; - else if (IsGfx2) - Dots=16; - else - Dots=8; - - if (beta_DE) - { - /* Calculate address of graphics pixels */ - crtcAddr=(crtc6845_memory_address_r(0) & 0x1FFF); - Addr=((crtcAddr<<3) | (beta_6845_RA & 0x07))*2; - - if(AddrMaxAddr) - MaxAddr=Addr; - - if(x>MaxX) MaxX=x; - if(xMaxY) MaxY=y; - if(y>4; - Green =(Hi & 0x0F); - Blue =(Hi & 0xF0)>>4; - Colour=((Intense&0x08) | (Red&0x08)>>1) | ((Green&0x08)>>2) | ((Blue&0x08)>>3); - - for (Dot=0;Dot>15)]; - plot_gfx_pixel(x,y,Dot,Colour,bitmap); - -// Colour=ColourRAM[((Word&0x0080)>>7)]; -// plot_gfx_pixel(x,y,Dot+1,Colour,bitmap); - - Hi=Word&0x8000; - Word=((Word<<1)&0xFFFE) | (Hi>>15); - } - } - else - { - for (Dot=0;Dot>14) | ((Word&0x80)>>7)]; - plot_gfx_pixel(x,y,Dot,Colour,bitmap); - - Hi=Word&0x8000; - Word=((Word<<1)&0xFFFE) | (Hi>>15); - } - } - - } - else - { - for (Dot=0;Dot=0) && (beta_scr_x<699) && (beta_scr_y>=0) && (beta_scr_y<549)) - { - if(IsTextMode) - beta_plot_char_line(beta_scr_x, beta_scr_y, bitmap); - else - beta_plot_gfx_line(beta_scr_x, beta_scr_y, bitmap); - } - - /* In direct drive mode we have 4bpp, so 4 pixels per word, so increment x by 4 */ - /* In lookup mode we have 2bpp, so 8 pixels per word, so increment by 8 */ - /* In text mode characters are 8 pixels wide, so increment by 8 */ - if (IsGfx16) - beta_scr_x+=4; - else if (IsGfx2) - beta_scr_x+=16; - else - beta_scr_x+=8; - - // Clock the 6845 - crtc6845_clock(); - c++; - } - } - return 0; -} - -/* Read and write handlers for CPU interface to 6845 */ -READ8_HANDLER(dgnbeta_6845_r) -{ - return crtc6845_register_r(offset); -} - -WRITE8_HANDLER(dgnbeta_6845_w) -{ - if(offset&0x1) - { - crtc6845_register_w(offset,data); - - if(VidAddr==INTERLACE) - { - DrawInterlace=(data & 0x03) ? INTERLACE_AT_VS : INTERLACE_OFF; - } - } - else - { - crtc6845_address_w(offset,data); - VidAddr=data; /* Record reg being written to */ - } -#ifdef MAME_DEBUG - if (LogRegWrites) - RegLog(offset,data); -#endif -} - -/* Write handler for colour, pallate ram */ -WRITE8_HANDLER(colour_ram_w) -{ - ColourRAM[offset]=data&0x0f; /* Colour ram 4 bit and write only to CPU */ -} - -/************************************* - * - * Debugging - * - *************************************/ - -#ifdef MAME_DEBUG -static void ToggleRegLog(int ref, int params, const char *param[]) -{ - LogRegWrites=!LogRegWrites; - - debug_console_printf("6845 register write info set : %d\n",LogRegWrites); -} - - -static void RegLog(int offset, int data) -{ - char RegName[16]; - - switch (VidAddr) - { - case H_TOTAL : sprintf(RegName,"H Total "); break; - case H_DISPLAYED : sprintf(RegName,"H Displayed "); break; - case H_SYNC_POS : sprintf(RegName,"H Sync Pos "); break; - case H_SYNC_WIDTH : sprintf(RegName,"H Sync Width "); break; - case V_TOTAL : sprintf(RegName,"V Total "); break; - case V_TOTAL_ADJ : sprintf(RegName,"V Total Adj "); break; - case V_DISPLAYED : sprintf(RegName,"V Displayed "); break; - case V_SYNC_POS : sprintf(RegName,"V Sync Pos "); break; - case INTERLACE : sprintf(RegName,"Interlace "); break; - case MAX_SCAN : sprintf(RegName,"Max Scan Line"); break; - case CURS_START : sprintf(RegName,"Cusror Start "); break; - case CURS_END : sprintf(RegName,"Cusrsor End "); break; - case START_ADDR_H : sprintf(RegName,"Start Addr H "); break; - case START_ADDR_L : sprintf(RegName,"Start Addr L "); break; - case CURS_H : sprintf(RegName,"Cursor H "); break; - case CURS_L : sprintf(RegName,"Cursor L "); break; - } - - if(offset&0x1) - debug_console_printf("6845 write Reg %s Addr=%3d Data=%3d ($%2.2X) \n",RegName,VidAddr,data,data); -} - -static void FillScreen(int ref, int params, const char *param[]) -{ - int x,y; - - for(x=1;x<899;x++) - { - for(y=1;y<699;y++) - { - plot_pixel(bit,x,y,x&0x7); - } - } - NoScreen=1; -} - -static void ScreenBox(int ref, int params, const char *param[]) -{ - int x,y; - - if(params>0) sscanf(param[0],"%d",&BoxMinX); - if(params>1) sscanf(param[1],"%d",&BoxMinY); - if(params>2) sscanf(param[2],"%d",&BoxMaxX); - if(params>3) sscanf(param[3],"%d",&BoxMaxY); - if(params>4) sscanf(param[4],"%d",&BoxColour); - - for(x=BoxMinX;x0) sscanf(param[0],"%d",&ClkMax); -} - -#endif diff --git a/mess/vidhrdw/electron.c b/mess/vidhrdw/electron.c deleted file mode 100644 index 94754ded4..000000000 --- a/mess/vidhrdw/electron.c +++ /dev/null @@ -1,252 +0,0 @@ -/****************************************************************************** - Acorn Electron driver - - MESS Driver By: - - Wilbert Pol - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/electron.h" - -/* - From the ElectrEm site: - -Timing is somewhat of a thorny issue on the Electron. It is almost certain the Electron could have been a much faster machine if BBC Micro OS level compatibility had not been not a design requirement. - -When accessing the ROM regions, the CPU always runs at 2Mhz. When accessing the FC (1 Mhz bus) or FD (JIM) pages, the CPU always runs at 1Mhz. - -The timing for RAM accesses varies depending on the graphics mode, and how many bytes are required to be read by the video circuits per scanline. When accessing RAM in modes 4-6, the CPU is simply moved to a 1Mhz clock. This occurs for any RAM access at any point during the frame. - -In modes 0-3, if the CPU tries to access RAM at any time during which the video circuits are fetching bytes, it is halted by means of receiving a stopped clock until the video circuits next stop fetching bytes. - -Each scanline is drawn in exactly 64us, and of that the video circuits fetch bytes for 40us. In modes 0, 1 and 2, 256 scanlines have pixels on, whereas in mode 3 only 250 scanlines are affected as mode 3 is a 'spaced' mode. - -As opposed to one clock generator which changes pace, the 1Mhz and 2Mhz clocks are always available, so the ULA acts to simply change which clock is piped to the CPU. This means in half of all cases, a further 2Mhz cycle is lost waiting for the 2Mhz and 1Mhz clocks to synchronise during a 2Mhz to 1Mhz step. - -The video circuits run from a constant 2Mhz clock, and generate 312 scanlines a frame, one scanline every 128 cycles. This actually gives means the Electron is running at 50.08 frames a second. - -Creating a scanline numbering scheme where the first scanline with pixels is scanline 0, in all modes the end of display interrupt is generated at the end of scanline 255, and the RTC interrupt is generated upon the end of scanline 99. - -From investigating some code for vertical split modes printed in Electron User volume 7, issue 7 it seems that the exact timing of the end of display interrupt is somewhere between 24 and 40 cycles after the end of pixels. This may coincide with HSYNC. I have no similarly accurate timing for the real time clock interrupt at this time. - -Mode changes are 'immediate', so any change in RAM access timing occurs exactly after the write cycle of the changing instruction. Similarly palette changes take effect immediately. VSYNC is not signalled in any way. - -*/ - -static int map4[256]; -static int map16[256]; - -void electron_video_init( void ) { - int i; - for( i = 0; i < 256; i++ ) { - map4[i] = ( ( i & 0x10 ) >> 3 ) | ( i & 0x01 ); - map16[i] = ( ( i & 0x40 ) >> 3 ) | ( ( i & 0x10 ) >> 2 ) | ( ( i & 0x04 ) >> 1 ) | ( i & 0x01 ); - } -} - -INLINE UINT8 read_vram( UINT16 addr ) { - return ula.vram[ addr % ula.screen_size ]; -} - -void electron_drawline( void ) { - int i; - int x = 0; - int pal[16]; - rectangle r = Machine->screen[0].visarea; - r.min_y = r.max_y = ula.scanline; - - /* set up palette */ - switch( ula.screen_mode ) { - case 0: case 3: case 4: case 6: case 7: /* 2 colour mode */ - pal[0] = ula.current_pal[0]; - pal[1] = ula.current_pal[8]; - break; - case 1: case 5: /* 4 colour mode */ - pal[0] = ula.current_pal[0]; - pal[1] = ula.current_pal[2]; - pal[2] = ula.current_pal[8]; - pal[3] = ula.current_pal[10]; - break; - case 2: /* 16 colour mode */ - for( i = 0; i < 16; i++ ) { - pal[i] = ula.current_pal[i]; - } - break; - } - /* draw line */ - switch( ula.screen_mode ) { - case 0: - for( i = 0; i < 80; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)& 1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)& 1] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x280 - 8 ); - } - break; - case 1: - x = 0; - for( i = 0; i < 80; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x280 - 8 ); - } - break; - case 2: - for( i = 0; i < 80; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map16[pattern>>0]] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x280 - 8 ); - } - break; - case 3: - if ( ( ula.scanline > 249 ) || ( ula.scanline % 10 >= 8 ) ) { - fillbitmap( tmpbitmap, Machine->pens[7], &r ); - } else { - for( i = 0; i < 80; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)&1] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x280 - 8 ); - } - } - break; - case 4: - case 7: - for( i = 0; i < 40; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)&1] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x140 - 8 ); - } - break; - case 5: - for( i = 0; i < 40; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>3]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>2]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>1]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[map4[pattern>>0]] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline & 0x07 ) == 7 ) { - ula.screen_addr += ( 0x140 - 8 ); - } - break; - case 6: - if ( ( ula.scanline > 249 ) || ( ula.scanline % 10 >= 8 ) ) { - fillbitmap( tmpbitmap, Machine->pens[7], &r ); - } else { - for( i = 0; i < 40; i++ ) { - UINT8 pattern = read_vram( ula.screen_addr + i * 8 ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>7)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>6)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>5)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>4)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>3)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>2)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>1)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)&1] ] ); - plot_pixel( tmpbitmap, x++, ula.scanline, Machine->pens[ pal[(pattern>>0)&1] ] ); - } - ula.screen_addr += 1; - if ( ( ula.scanline % 10 ) == 7 ) { - ula.screen_addr += ( 0x140 - 8 ); - } - } - break; - } -} - -INTERRUPT_GEN( electron_scanline_interrupt ) { - if ( ula.scanline < 256 ) { - electron_drawline(); - } - ula.scanline = ( ula.scanline + 1 ) % 312; - if ( ula.scanline == 100 ) { - electron_interrupt_handler( INT_SET, INT_RTC ); - } - if ( ula.scanline == 256 ) { - electron_interrupt_handler( INT_SET, INT_DISPLAY_END ); - } - if ( ula.scanline == 0 ) { - ula.screen_addr = ula.screen_start - ula.screen_base; - } -} - diff --git a/mess/vidhrdw/enterp.c b/mess/vidhrdw/enterp.c deleted file mode 100644 index 802b5609c..000000000 --- a/mess/vidhrdw/enterp.c +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************** - - Functions to emulate the video hardware of the Enterprise. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/nick.h" -#include "vidhrdw/epnick.h" -#include "includes/enterp.h" - -/*************************************************************************** - Start the video hardware emulation. -***************************************************************************/ -VIDEO_START( enterprise ) -{ - Nick_vh_start(); - return video_start_generic_bitmapped(machine); -} - -/*************************************************************************** - Draw the game screen in the given mame_bitmap. - Do NOT call osd_update_display() from this function, - it will be called by the main emulation engine. -***************************************************************************/ -VIDEO_UPDATE( enterprise ) -{ - Nick_DoScreen(tmpbitmap); - return video_update_generic_bitmapped(machine, screen, bitmap, cliprect); -} - diff --git a/mess/vidhrdw/exidy.c b/mess/vidhrdw/exidy.c deleted file mode 100644 index 855ffbe6e..000000000 --- a/mess/vidhrdw/exidy.c +++ /dev/null @@ -1,97 +0,0 @@ -/*************************************************************************** - - exidy.c - - Functions to emulate the video hardware of the Exidy Sorcerer - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "../includes/exidy.h" - -/*************************************************************************** - Start the video hardware emulation. -***************************************************************************/ - -VIDEO_START( exidy ) -{ - return 0; -} - -/* two colours */ -static unsigned short exidy_colour_table[EXIDY_NUM_COLOURS] = -{ - 0, 1 -}; - -/* black/white */ -static unsigned char exidy_palette[EXIDY_NUM_COLOURS * 3] = -{ - 0x000, 0x000, 0x000, - 0x0ff, 0x0ff, 0x0ff -}; - - -/* Initialise the palette */ -PALETTE_INIT( exidy ) -{ - palette_set_colors(machine, 0, exidy_palette, sizeof(exidy_palette) / 3); - memcpy(colortable, exidy_colour_table, sizeof (exidy_colour_table)); -} - -/*************************************************************************** - Draw the game screen in the given mame_bitmap. - Do NOT call osd_update_display() from this function, - it will be called by the main emulation engine. -***************************************************************************/ -VIDEO_UPDATE( exidy ) -{ - int x,y; - int pens[2]; - - pens[0] = Machine->pens[0]; - pens[1] = Machine->pens[1]; - - for (y=0; y>3; y++) - { - for (x=0; x>3; x++) - { - int cheight, cwidth; - int char_addr; - int ch; - - /* get char from z80 address space */ - ch = program_read_byte(0x0f080 + (y<<6) + x) & 0x0ff; - - /* prom at 0x0f800, user chars from 0x0fc00 */ - char_addr = 0x0f800 + (ch<<3); - - for (cheight=0; cheight<8; cheight++) - { - int byte; - int px,py; - - /* read byte of graphics data from z80 memory */ - /* either prom or ram */ - byte = program_read_byte(char_addr+cheight); - - px = (x<<3); - py = (y<<3)+cheight; - for (cwidth=0; cwidth<8; cwidth++) - { - int pen; - - pen = (byte>>7) & 0x001; - pen = pens[pen]; - - plot_pixel(bitmap,px, py,pen); - px++; - byte = byte<<1; - } - } - } - } - return 0; -} - diff --git a/mess/vidhrdw/galaxy.c b/mess/vidhrdw/galaxy.c deleted file mode 100644 index e05edac89..000000000 --- a/mess/vidhrdw/galaxy.c +++ /dev/null @@ -1,111 +0,0 @@ -/*************************************************************************** - - galaxy.c - - Functions to emulate the video hardware of the Galaksija. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/galaxy.h" -#include "cpu/z80/z80.h" - -static int horizontal_pos = 0x0b; - -gfx_layout galaxy_charlayout = -{ - 8, 13, /* 8x8 characters */ - 128, /* 128 characters */ - 1, /* 1 bits per pixel */ - {0}, /* no bitplanes; 1 bit per pixel */ - {7, 6, 5, 4, 3, 2, 1, 0}, - {0*128*8, 1*128*8, 2*128*8, 3*128*8, - 4*128*8, 5*128*8, 6*128*8, 7*128*8, - 8*128*8, 9*128*8, 10*8*128, 11*128*8, 12*128*8}, - 8 /* each character takes 1 consecutive byte */ -}; - -unsigned char galaxy_palette[2*3] = -{ - 0xff, 0xff, 0xff, /* White */ - 0x00, 0x00, 0x00 /* Black */ -}; - -unsigned short galaxy_colortable[1][2] = -{ - {0, 1} -}; - -PALETTE_INIT( galaxy ) -{ - palette_set_colors(machine, 0, galaxy_palette, sizeof(galaxy_palette) / 3); - memcpy(colortable, galaxy_colortable, sizeof (galaxy_colortable)); -} - -VIDEO_START( galaxy ) -{ - return 0; -} - -VIDEO_UPDATE( galaxy ) -{ - int offs; - rectangle black_area = {0,0,0,16*13}; - static int fast_mode = FALSE; - int full_refresh = 1; - - UINT8* videoram = mess_ram; - - if (!galaxy_interrupts_enabled) - { - black_area.min_x = 0; - black_area.max_x = 32*8-1; - black_area.min_y = 0; - black_area.max_y = 16*13-1; - fillbitmap(bitmap, Machine->pens[1], &black_area); - fast_mode = TRUE; - return 0; - } - - if (horizontal_pos!=program_read_byte(0x2ba8)) - { - full_refresh=1; - horizontal_pos = program_read_byte(0x2ba8); - if (horizontal_pos > 0x0b) - { - black_area.min_x = 0; - black_area.max_x = 8*(horizontal_pos-0x0b)-1; - } - if (horizontal_pos < 0x0b) - { - black_area.min_x = 8*(21+horizontal_pos); - black_area.max_x = 32*8-1; - } - if (horizontal_pos == 0x0b) - black_area.min_x = black_area.max_x = 0; - fillbitmap(bitmap, Machine->pens[1], &black_area); - } - - for( offs = 0; offs < 512; offs++ ) - { - int sx, sy; - int code = videoram[offs]; - - sx = (offs % 32) * 8 + horizontal_pos*8-88; - - if (sx>=0 && sx<32*8) - { - if ((code>63 && code<96) || (code>127 && code<192)) - code-=64; - if (code>191) - code-=128; - sy = (offs / 32) * 13; - drawgfx(bitmap, Machine->gfx[0], code & 0x7f, 1, 0,0, sx,sy, - NULL, TRANSPARENCY_NONE, 0); - } - } - - galaxy_interrupts_enabled = FALSE; - return 0; -} diff --git a/mess/vidhrdw/gamecom.c b/mess/vidhrdw/gamecom.c deleted file mode 100644 index 33149b7bb..000000000 --- a/mess/vidhrdw/gamecom.c +++ /dev/null @@ -1,68 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/gamecom.h" - -#define Y_PIXELS 200 - -int scanline; -unsigned int base_address; - -void gamecom_video_init( void ) { - scanline = 0; -} - -INTERRUPT_GEN( gamecom_scanline ) { - // draw line - if ( scanline == 0 ) { - base_address = ( internal_registers[SM8521_LCDC] & 0x40 ) ? 0x2000 : 0x0000; - } - if ( ! internal_registers[SM8521_LCDC] & 0x80 ) { - rectangle rec; - rec.min_x = 0; - rec.max_x = Y_PIXELS - 1; - rec.min_y = rec.max_y = scanline; - fillbitmap( tmpbitmap, Machine->pens[ 0 ], &rec ); - return; - } else { - UINT8 *line = &gamecom_vram[ base_address + 40 * scanline ]; - int pal[4]; - int i; - - switch( internal_registers[SM8521_LCDC] & 0x30 ) { - case 0x00: - pal[0] = 4; - pal[1] = 3; - pal[2] = 2; - pal[3] = 0; - break; - case 0x10: - pal[0] = 4; - pal[1] = 3; - pal[2] = 1; - pal[3] = 0; - break; - case 0x20: - pal[0] = 4; - pal[1] = 3; - pal[2] = 1; - pal[3] = 0; - break; - case 0x30: - pal[0] = 4; - pal[1] = 2; - pal[2] = 1; - pal[3] = 0; - break; - } - for( i = 0; i < 40; i++ ) { - UINT8 p = line[i]; - plot_pixel( tmpbitmap, scanline, i * 4 , Machine->pens[ pal[ ( p >> 6 ) & 3 ] ] ); - plot_pixel( tmpbitmap, scanline, i * 4 + 1, Machine->pens[ pal[ ( p >> 4 ) & 3 ] ] ); - plot_pixel( tmpbitmap, scanline, i * 4 + 2, Machine->pens[ pal[ ( p >> 2 ) & 3 ] ] ); - plot_pixel( tmpbitmap, scanline, i * 4 + 3, Machine->pens[ pal[ ( p ) & 3 ] ] ); - } - } - - scanline = ( scanline + 1 ) % Y_PIXELS; -} - diff --git a/mess/vidhrdw/gb.c b/mess/vidhrdw/gb.c deleted file mode 100644 index fff87f8a8..000000000 --- a/mess/vidhrdw/gb.c +++ /dev/null @@ -1,1321 +0,0 @@ -/*************************************************************************** - - gb.c - - Video file to handle emulation of the Nintendo GameBoy. - - Original code Carsten Sorensen 1998 - Mess modifications, bug fixes and speedups Hans de Goede 1998 - Bug fixes, SGB and GBC code Anthony Kruize 2002 - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/gb.h" -#include "cpu/z80gb/z80gb.h" -#include "profiler.h" - -#define LCDCONT gb_vid_regs[0x0] /* LCD control register */ -#define LCDSTAT gb_vid_regs[0x1] /* LCD status register */ -#define SCROLLY gb_vid_regs[0x2] /* Starting Y position of the background */ -#define SCROLLX gb_vid_regs[0x3] /* Starting X position of the background */ -#define CURLINE gb_vid_regs[0x4] /* Current screen line being scanned */ -#define CMPLINE gb_vid_regs[0x5] /* Gen. int. when scan reaches this line */ -#define BGRDPAL gb_vid_regs[0x7] /* Background palette */ -#define SPR0PAL gb_vid_regs[0x8] /* Sprite palette #0 */ -#define SPR1PAL gb_vid_regs[0x9] /* Sprite palette #1 */ -#define WNDPOSY gb_vid_regs[0xA] /* Window Y position */ -#define WNDPOSX gb_vid_regs[0xB] /* Window X position */ -#define KEY1 gb_vid_regs[0x0D] /* Prepare speed switch */ -#define HDMA1 gb_vid_regs[0x11] /* HDMA source high byte */ -#define HDMA2 gb_vid_regs[0x12] /* HDMA source low byte */ -#define HDMA3 gb_vid_regs[0x13] /* HDMA destination high byte */ -#define HDMA4 gb_vid_regs[0x14] /* HDMA destination low byte */ -#define HDMA5 gb_vid_regs[0x15] /* HDMA length/mode/start */ -#define GBCBCPS gb_vid_regs[0x28] /* Backgound palette spec */ -#define GBCBCPD gb_vid_regs[0x29] /* Backgound palette data */ -#define GBCOCPS gb_vid_regs[0x2A] /* Object palette spec */ -#define GBCOCPD gb_vid_regs[0x2B] /* Object palette data */ - -#define _NR_GB_VID_REGS 0x40 - -static UINT8 bg_zbuf[160]; -UINT8 gb_vid_regs[_NR_GB_VID_REGS]; -UINT8 gb_bpal[4]; /* Background palette */ -UINT8 gb_spal0[4]; /* Sprite 0 palette */ -UINT8 gb_spal1[4]; /* Sprite 1 palette */ -UINT8 *gb_oam = NULL; -UINT8 *gb_vram = NULL; -int gbc_hdma_enabled; -UINT8 *gb_chrgen; /* Character generator */ -UINT8 *gb_bgdtab; /* Background character table */ -UINT8 *gb_wndtab; /* Window character table */ -UINT8 gb_tile_no_mod; -UINT8 *gbc_chrgen; /* Character generator */ -UINT8 *gbc_bgdtab; /* Background character table */ -UINT8 *gbc_wndtab; /* Window character table */ - -struct layer_struct { - UINT8 enabled; - UINT8 *bg_tiles; - UINT8 *bg_map; - UINT8 xindex; - UINT8 xshift; - UINT8 xstart; - UINT8 xend; - /* GBC specific */ - UINT16 *gbc_tiles[2]; - UINT8 *gbc_map; - INT16 bgline; -}; - -struct gb_lcd_struct { - int window_lines_drawn; - - int lcd_warming_up; /* Has the video hardware just been switched on? */ - int lcd_on; /* Is the video hardware on? */ - - /* Things used to render current line */ - int current_line; /* Current line */ - int sprCount; /* Number of sprites on current line */ - int sprite[10]; /* References to sprites to draw on current line */ -} gb_lcd; - -void (*refresh_scanline)(void); - -/* - Select which sprites should be drawn for the current scanline and return the - number of sprites selected. - */ -int gb_select_sprites( void ) { - int i, yindex, line, height; - UINT8 *oam = gb_oam + 39 * 4; - - gb_lcd.sprCount = 0; - - /* If video hardware is enabled and sprites are enabled */ - if ( ( LCDCONT & 0x80 ) && ( LCDCONT & 0x02 ) ) { - /* Check for stretched sprites */ - if ( LCDCONT & 0x04 ) { - height = 16; - } else { - height = 8; - } - - yindex = gb_lcd.current_line; - line = gb_lcd.current_line + 16; - - for( i = 39; i >= 0; i-- ) { - if ( line >= oam[0] && line < ( oam[0] + height ) && oam[1] && oam[1] < 168 ) { - /* We limit the sprite count to max 10 here; - proper games should not exceed this... */ - if ( gb_lcd.sprCount < 10 ) { - gb_lcd.sprite[gb_lcd.sprCount] = i; - gb_lcd.sprCount++; - } - } - } - } - return gb_lcd.sprCount; -} - -INLINE void gb_update_sprites (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 height, tilemask, line, *oam, *vram; - int i, yindex; - - if (LCDCONT & 0x04) - { - height = 16; - tilemask = 0xFE; - } - else - { - height = 8; - tilemask = 0xFF; - } - - yindex = gb_lcd.current_line; - line = gb_lcd.current_line + 16; - - oam = gb_oam + 39 * 4; - vram = gb_vram; - for (i = 39; i >= 0; i--) - { - /* if sprite is on current line && x-coordinate && x-coordinate is < 168 */ - if (line >= oam[0] && line < (oam[0] + height) && oam[1] && oam[1] < 168) - { - UINT16 data; - UINT8 bit, *spal; - int xindex, adr; - - spal = (oam[3] & 0x10) ? gb_spal1 : gb_spal0; - xindex = oam[1] - 8; - if (oam[3] & 0x40) /* flip y ? */ - { - adr = (oam[2] & tilemask) * 16 + (height - 1 - line + oam[0]) * 2; - } - else - { - adr = (oam[2] & tilemask) * 16 + (line - oam[0]) * 2; - } - data = (vram[adr + 1] << 8) | vram[adr]; - - switch (oam[3] & 0xA0) - { - case 0xA0: /* priority is set (behind bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if (colour && !bg_zbuf[xindex]) - plot_pixel(bitmap, xindex, yindex, Machine->pens[spal[colour]]); - data >>= 1; - } - break; - case 0x20: /* priority is not set (overlaps bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if (colour) - plot_pixel(bitmap, xindex, yindex, Machine->pens[spal[colour]]); - data >>= 1; - } - break; - case 0x80: /* priority is set (behind bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if (colour && !bg_zbuf[xindex]) - plot_pixel(bitmap, xindex, yindex, Machine->pens[spal[colour]]); - data <<= 1; - } - break; - case 0x00: /* priority is not set (overlaps bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if (colour) - plot_pixel(bitmap, xindex, yindex, Machine->pens[spal[colour]]); - data <<= 1; - } - break; - } - } - oam -= 4; - } -} - -/* this should be recoded to become incremental */ -void gb_refresh_scanline (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 *zbuf = bg_zbuf; - int l = 0, yindex = gb_lcd.current_line; - - /* layer info layer[0]=background, layer[1]=window */ - struct layer_struct layer[2]; - - profiler_mark(PROFILER_VIDEO); - - /* Take care of some initializations */ - if ( gb_lcd.current_line == 0x00 ) { - gb_lcd.window_lines_drawn = 0; - } - - /* if background or screen disabled clear line */ - if ((LCDCONT & 0x81) != 0x81) - { - rectangle r = Machine->screen[0].visarea; - r.min_y = r.max_y = yindex; - fillbitmap(bitmap, Machine->pens[0], &r); - } - - /* if lcd disabled return */ - if (!(LCDCONT & 0x80)) - return; - - /* Window is enabled if the hardware says so AND the current scanline is - * within the window AND the window X coordinate is <=166 */ - layer[1].enabled = ((LCDCONT & 0x20) && gb_lcd.current_line >= WNDPOSY && WNDPOSX <= 166) ? 1 : 0; - - /* BG is enabled if the hardware says so AND (window_off OR (window_on - * AND window's X position is >=7 ) ) */ - layer[0].enabled = ((LCDCONT & 0x01) && ((!layer[1].enabled) || (layer[1].enabled && WNDPOSX >= 7))) ? 1 : 0; - - if (layer[0].enabled) - { - int bgline; - - bgline = (SCROLLY + gb_lcd.current_line) & 0xFF; - - layer[0].bg_map = gb_bgdtab; - layer[0].bg_map += (bgline << 2) & 0x3E0; - layer[0].bg_tiles = gb_chrgen + ( (bgline & 7) << 1 ); - layer[0].xindex = SCROLLX >> 3; - layer[0].xshift = SCROLLX & 7; - layer[0].xstart = 0; - layer[0].xend = 160; - } - - if (layer[1].enabled) - { - int bgline, xpos; - - bgline = gb_lcd.window_lines_drawn; - xpos = WNDPOSX - 7; /* Window is offset by 7 pixels */ - if (xpos < 0) - xpos = 0; - - layer[1].bg_map = gb_wndtab; - layer[1].bg_map += (bgline << 2) & 0x3E0; - layer[1].bg_tiles = gb_chrgen + ( (bgline & 7) << 1); - layer[1].xindex = 0; - layer[1].xshift = 0; - layer[1].xstart = xpos; - layer[1].xend = 160 - xpos; - layer[0].xend = xpos; - } - - while (l < 2) - { - /* - * BG display on - */ - UINT8 *map, xidx, bit, i; - UINT8 *tiles; - UINT16 data; - int xindex, tile_index; - - if (!layer[l].enabled) - { - l++; - continue; - } - - map = layer[l].bg_map; - tiles = layer[l].bg_tiles; - xidx = layer[l].xindex; - bit = layer[l].xshift; - i = layer[l].xend; - - tile_index = (map[xidx] ^ gb_tile_no_mod) * 16; - data = tiles[tile_index] | ( tiles[tile_index+1] << 8 ); - data <<= bit; - - xindex = layer[l].xstart; - while (i) - { - while ((bit < 8) && i) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - plot_pixel(bitmap, xindex, yindex, Machine->pens[gb_bpal[colour]]); - xindex++; - *zbuf++ = colour; - data <<= 1; - bit++; - i--; - } - xidx = (xidx + 1) & 31; - bit = 0; - tile_index = (map[xidx] ^ gb_tile_no_mod) * 16; - data = tiles[tile_index] | ( tiles[tile_index+1] << 8 ); - } - l++; - } - - if (LCDCONT & 0x02) - gb_update_sprites(); - - if ( layer[1].enabled ) { - gb_lcd.window_lines_drawn++; - } - - profiler_mark(PROFILER_END); -} - -/* --- Super Gameboy Specific --- */ - -INLINE void sgb_update_sprites (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 height, tilemask, line, *oam, *vram, pal; - INT16 i, yindex; - - if (LCDCONT & 0x04) - { - height = 16; - tilemask = 0xFE; - } - else - { - height = 8; - tilemask = 0xFF; - } - - /* Offset to center of screen */ - yindex = gb_lcd.current_line + SGB_YOFFSET; - line = gb_lcd.current_line + 16; - - oam = gb_oam + 39 * 4; - vram = gb_vram; - for (i = 39; i >= 0; i--) - { - /* if sprite is on current line && x-coordinate && x-coordinate is < 168 */ - if (line >= oam[0] && line < (oam[0] + height) && oam[1] && oam[1] < 168) - { - UINT16 data; - UINT8 bit, *spal; - INT16 xindex; - int adr; - - spal = (oam[3] & 0x10) ? gb_spal1 : gb_spal0; - xindex = oam[1] - 8; - if (oam[3] & 0x40) /* flip y ? */ - { - adr = (oam[2] & tilemask) * 16 + (height -1 - line + oam[0]) * 2; - } - else - { - adr = (oam[2] & tilemask) * 16 + (line - oam[0]) * 2; - } - data = (vram[adr + 1] << 8) | vram[adr]; - - /* Find the palette to use */ - pal = sgb_pal_map[(xindex >> 3)][((yindex - SGB_YOFFSET) >> 3)] << 2; - - /* Offset to center of screen */ - xindex += SGB_XOFFSET; - - switch (oam[3] & 0xA0) - { - case 0xA0: /* priority is set (behind bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if ((xindex >= SGB_XOFFSET && xindex <= SGB_XOFFSET + 160) && colour && !bg_zbuf[xindex - SGB_XOFFSET]) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + spal[colour]]); - data >>= 1; - } - break; - case 0x20: /* priority is not set (overlaps bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if ((xindex >= SGB_XOFFSET && xindex <= SGB_XOFFSET + 160) && colour) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + spal[colour]]); - data >>= 1; - } - break; - case 0x80: /* priority is set (behind bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if ((xindex >= SGB_XOFFSET && xindex <= SGB_XOFFSET + 160) && colour && !bg_zbuf[xindex - SGB_XOFFSET]) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + spal[colour]]); - data <<= 1; - } - break; - case 0x00: /* priority is not set (overlaps bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if ((xindex >= SGB_XOFFSET && xindex <= SGB_XOFFSET + 160) && colour) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + spal[colour]]); - data <<= 1; - } - break; - } - } - oam -= 4; - } -} - -void sgb_refresh_scanline (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 *zbuf = bg_zbuf; - int l = 0, yindex = gb_lcd.current_line; - - /* layer info layer[0]=background, layer[1]=window */ - struct layer_struct layer[2]; - - profiler_mark(PROFILER_VIDEO); - - /* Handle SGB mask */ - switch( sgb_window_mask ) - { - case 1: /* Freeze screen */ - return; - case 2: /* Blank screen (black) */ - { - rectangle r = Machine->screen[0].visarea; - r.min_x = SGB_XOFFSET; - r.max_x -= SGB_XOFFSET; - r.min_y = SGB_YOFFSET; - r.max_y -= SGB_YOFFSET; - fillbitmap( bitmap, Machine->pens[0], &r ); - } return; - case 3: /* Blank screen (white - or should it be color 0?) */ - { - rectangle r = Machine->screen[0].visarea; - r.min_x = SGB_XOFFSET; - r.max_x -= SGB_XOFFSET; - r.min_y = SGB_YOFFSET; - r.max_y -= SGB_YOFFSET; - fillbitmap( bitmap, Machine->pens[32767], &r ); - } return; - } - - /* Draw the "border" if we're on the first line */ - if( gb_lcd.current_line == 0 ) - { - sgb_refresh_border(); - } - - /* if background or screen disabled clear line */ - if ((LCDCONT & 0x81) != 0x81) - { - rectangle r = Machine->screen[0].visarea; - r.min_x = SGB_XOFFSET; - r.max_x -= SGB_XOFFSET; - r.min_y = r.max_y = yindex + SGB_YOFFSET; - fillbitmap(bitmap, Machine->pens[0], &r); - } - - /* if lcd disabled return */ - if (!(LCDCONT & 0x80)) - return; - - /* Window is enabled if the hardware says so AND the current scanline is - * within the window AND the window X coordinate is <=166 */ - layer[1].enabled = ((LCDCONT & 0x20) && gb_lcd.current_line >= WNDPOSY && WNDPOSX <= 166) ? 1 : 0; - - /* BG is enabled if the hardware says so AND (window_off OR (window_on - * AND window's X position is >=7 ) ) */ - layer[0].enabled = ((LCDCONT & 0x01) && ((!layer[1].enabled) || (layer[1].enabled && WNDPOSX >= 7))) ? 1 : 0; - - if (layer[0].enabled) - { - int bgline; - - bgline = (SCROLLY + gb_lcd.current_line) & 0xFF; - - layer[0].bg_map = gb_bgdtab; - layer[0].bg_map += (bgline << 2) & 0x3E0; - layer[0].bg_tiles = gb_chrgen + ( (bgline & 7) << 1); - layer[0].xindex = SCROLLX >> 3; - layer[0].xshift = SCROLLX & 7; - layer[0].xstart = 0; - layer[0].xend = 160; - } - - if (layer[1].enabled) - { - int bgline, xpos; - - bgline = (gb_lcd.current_line - WNDPOSY) & 0xFF; - /* Window X position is offset by 7 so we'll need to adust */ - xpos = WNDPOSX - 7; - if (xpos < 0) - xpos = 0; - - layer[1].bg_map = gb_wndtab; - layer[1].bg_map += (bgline << 2) & 0x3E0; - layer[1].bg_tiles = gb_chrgen + ( (bgline & 7) << 1); - layer[1].xindex = 0; - layer[1].xshift = 0; - layer[1].xstart = xpos; - layer[1].xend = 160 - xpos; - layer[0].xend = xpos; - } - - while (l < 2) - { - /* - * BG display on - */ - UINT8 *map, xidx, bit, i, pal; - UINT8 *tiles; - UINT16 data; - int xindex, tile_index; - - if (!layer[l].enabled) - { - l++; - continue; - } - - map = layer[l].bg_map; - tiles = layer[l].bg_tiles; - xidx = layer[l].xindex; - bit = layer[l].xshift; - i = layer[l].xend; - - - tile_index = (map[xidx] ^ gb_tile_no_mod) * 16; - data = tiles[tile_index] | ( tiles[tile_index+1] << 8 ); - data <<= bit; - - xindex = layer[l].xstart; - - /* Figure out which palette we're using */ - pal = sgb_pal_map[(xindex >> 3)][(yindex >> 3)] << 2; - - while (i) - { - while ((bit < 8) && i) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - plot_pixel(bitmap, xindex + SGB_XOFFSET, yindex + SGB_YOFFSET, Machine->remapped_colortable[pal + gb_bpal[colour]]); - xindex++; - *zbuf++ = colour; - data <<= 1; - bit++; - i--; - } - xidx = (xidx + 1) & 31; - pal = sgb_pal_map[(xindex >> 3)][(yindex >> 3)] << 2; - bit = 0; - tile_index = (map[xidx] ^ gb_tile_no_mod) * 16; - data = tiles[tile_index] | ( tiles[tile_index+1] << 8 ); - } - l++; - } - - if (LCDCONT & 0x02) - sgb_update_sprites(); - - profiler_mark(PROFILER_END); -} - -void sgb_refresh_border(void) -{ - UINT16 *tiles, *tiles2, data, data2; - UINT16 *map; - UINT16 yidx, xidx, xindex; - UINT8 pal, i; - mame_bitmap *bitmap = tmpbitmap; - - map = (UINT16 *)sgb_tile_map - 32; - - for( yidx = 0; yidx < 224; yidx++ ) - { - xindex = 0; - map += (yidx % 8) ? 0 : 32; - for( xidx = 0; xidx < 32; xidx++ ) - { - if( map[xidx] & 0x8000 ) /* Vertical flip */ - tiles = (UINT16 *)sgb_tile_data + (7 - (yidx % 8)); - else /* No vertical flip */ - tiles = (UINT16 *)sgb_tile_data + (yidx % 8); - tiles2 = tiles + 8; - - pal = (map[xidx] & 0x1C00) >> 10; - if( pal == 0 ) - pal = 1; - pal <<= 4; - - if( sgb_hack ) /* A few games do weird stuff */ - { - UINT16 tileno = map[xidx] & 0xFF; - if( tileno >= 128 ) tileno = ((64 + tileno) % 128) + 128; - else tileno = (64 + tileno) % 128; - data = tiles[tileno * 16]; - data2 = tiles2[tileno * 16]; - } - else - { - data = tiles[(map[xidx] & 0xFF) * 16]; - data2 = tiles2[(map[xidx] & 0xFF) * 16]; - } - - for( i = 0; i < 8; i++ ) - { - register UINT8 colour; - if( (map[xidx] & 0x4000) ) /* Horizontal flip */ - { - colour = ((data & 0x0001) ? 1 : 0) | - ((data & 0x0100) ? 2 : 0) | - ((data2 & 0x0001) ? 4 : 0) | - ((data2 & 0x0100) ? 8 : 0); - data >>= 1; - data2 >>= 1; - } - else /* No horizontal flip */ - { - colour = ((data & 0x0080) ? 1 : 0) | - ((data & 0x8000) ? 2 : 0) | - ((data2 & 0x0080) ? 4 : 0) | - ((data2 & 0x8000) ? 8 : 0); - data <<= 1; - data2 <<= 1; - } - /* A slight hack below so we don't draw over the GB screen. - * Drawing there is allowed, but due to the way we draw the - * scanline, it can obscure the screen even when it shouldn't. - */ - if( !((yidx >= SGB_YOFFSET && yidx < SGB_YOFFSET + 144) && - (xindex >= SGB_XOFFSET && xindex < SGB_XOFFSET + 160)) ) - { - plot_pixel(bitmap, xindex, yidx, Machine->remapped_colortable[pal + colour]); - } - xindex++; - } - } - } -} - -/* --- Gameboy Color Specific --- */ - -INLINE void gbc_update_sprites (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 height, tilemask, line, *oam; - int i, xindex, yindex; - - if (LCDCONT & 0x04) - { - height = 16; - tilemask = 0xFE; - } - else - { - height = 8; - tilemask = 0xFF; - } - - yindex = gb_lcd.current_line; - line = gb_lcd.current_line + 16; - - oam = gb_oam + 39 * 4; - for (i = 39; i >= 0; i--) - { - /* if sprite is on current line && x-coordinate && x-coordinate is < 168 */ - if (line >= oam[0] && line < (oam[0] + height) && oam[1] && oam[1] < 168) - { - UINT16 data; - UINT8 bit, pal; - - /* Handle mono mode for GB games */ - if( gbc_mode == GBC_MODE_MONO ) - pal = (oam[3] & 0x10) ? 8 : 4; - else - pal = GBC_PAL_OBJ_OFFSET + ((oam[3] & 0x7) * 4); - - xindex = oam[1] - 8; - if (oam[3] & 0x40) /* flip y ? */ - { - data = *((UINT16 *) &GBC_VRAMMap[(oam[3] & 0x8)>>3][(oam[2] & tilemask) * 16 + (height - 1 - line + oam[0]) * 2]); - } - else - { - data = *((UINT16 *) &GBC_VRAMMap[(oam[3] & 0x8)>>3][(oam[2] & tilemask) * 16 + (line - oam[0]) * 2]); - } -#ifndef LSB_FIRST - data = (data << 8) | (data >> 8); -#endif - - switch (oam[3] & 0xA0) - { - case 0xA0: /* priority is set (behind bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if (colour && !bg_zbuf[xindex]) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + colour]); - data >>= 1; - } - break; - case 0x20: /* priority is not set (overlaps bgnd & wnd, flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x0100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - if((bg_zbuf[xindex] & 0x80) && (bg_zbuf[xindex] & 0x7f) && (LCDCONT & 0x1)) - colour = 0; - if (colour) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + colour]); - data >>= 1; - } - break; - case 0x80: /* priority is set (behind bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if (colour && !bg_zbuf[xindex]) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + colour]); - data <<= 1; - } - break; - case 0x00: /* priority is not set (overlaps bgnd & wnd, don't flip x) */ - for (bit = 0; bit < 8; bit++, xindex++) - { - register int colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - if((bg_zbuf[xindex] & 0x80) && (bg_zbuf[xindex] & 0x7f) && (LCDCONT & 0x1)) - colour = 0; - if (colour) - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[pal + colour]); - data <<= 1; - } - break; - } - } - oam -= 4; - } -} - -void gbc_refresh_scanline (void) -{ - mame_bitmap *bitmap = tmpbitmap; - UINT8 *zbuf = bg_zbuf; - int l = 0, yindex = gb_lcd.current_line; - - /* layer info layer[0]=background, layer[1]=window */ - struct layer_struct layer[2]; - - profiler_mark(PROFILER_VIDEO); - - /* if background or screen disabled clear line */ - if ((LCDCONT & 0x81) != 0x81) - { - rectangle r = Machine->screen[0].visarea; - r.min_y = r.max_y = yindex; - fillbitmap(bitmap, Machine->pens[0], &r); - } - - /* if lcd disabled return */ - if (!(LCDCONT & 0x80)) - return; - - /* Window is enabled if the hardware says so AND the current scanline is - * within the window AND the window X coordinate is <=166 */ - layer[1].enabled = ((LCDCONT & 0x20) && gb_lcd.current_line >= WNDPOSY && WNDPOSX <= 166) ? 1 : 0; - - /* BG is enabled if the hardware says so AND (window_off OR (window_on - * AND window's X position is >=7 ) ) */ - layer[0].enabled = ((LCDCONT & 0x01) && ((!layer[1].enabled) || (layer[1].enabled && WNDPOSX >= 7))) ? 1 : 0; - - if (layer[0].enabled) - { - int bgline; - - bgline = (SCROLLY + gb_lcd.current_line) & 0xFF; - - layer[0].bgline = bgline; - layer[0].bg_map = gb_bgdtab; - layer[0].bg_map += (bgline << 2) & 0x3E0; - layer[0].gbc_map = gbc_bgdtab; - layer[0].gbc_map += (bgline << 2) & 0x3E0; - layer[0].gbc_tiles[0] = (UINT16 *)gb_chrgen + (bgline & 7); - layer[0].gbc_tiles[1] = (UINT16 *)gbc_chrgen + (bgline & 7); - layer[0].xindex = SCROLLX >> 3; - layer[0].xshift = SCROLLX & 7; - layer[0].xstart = 0; - layer[0].xend = 160; - } - - if (layer[1].enabled) - { - int bgline, xpos; - - bgline = (gb_lcd.current_line - WNDPOSY) & 0xFF; - /* Window X position is offset by 7 so we'll need to adust */ - xpos = WNDPOSX - 7; - if (xpos < 0) - xpos = 0; - - layer[1].bgline = bgline; - layer[1].bg_map = gb_wndtab; - layer[1].bg_map += (bgline << 2) & 0x3E0; - layer[1].gbc_map = gbc_wndtab; - layer[1].gbc_map += (bgline << 2) & 0x3E0; - layer[1].gbc_tiles[0] = (UINT16 *)gb_chrgen + (bgline & 7); - layer[1].gbc_tiles[1] = (UINT16 *)gbc_chrgen + (bgline & 7); - layer[1].xindex = 0; - layer[1].xshift = 0; - layer[1].xstart = xpos; - layer[1].xend = 160 - xpos; - layer[0].xend = xpos; - } - - while (l < 2) - { - /* - * BG display on - */ - UINT8 *map, *gbcmap, xidx, bit, i; - UINT16 *tiles, data; - int xindex; - - if (!layer[l].enabled) - { - l++; - continue; - } - - map = layer[l].bg_map; - gbcmap = layer[l].gbc_map; - xidx = layer[l].xindex; - bit = layer[l].xshift; - i = layer[l].xend; - - tiles = layer[l].gbc_tiles[(gbcmap[xidx] & 0x8) >> 3]; - if( (gbcmap[xidx] & 0x40) >> 6 ) /* vertical flip */ - tiles -= ((layer[l].bgline & 7) << 1) - 7; - data = (UINT16)(tiles[(map[xidx] ^ gb_tile_no_mod) * 8] << bit); -#ifndef LSB_FIRST - data = (data << 8) | (data >> 8); -#endif - - xindex = layer[l].xstart; - while (i) - { - while ((bit < 8) && i) - { - register int colour; - if( ((gbcmap[xidx] & 0x20) >> 5) ) /* horizontal flip */ - { - colour = ((data & 0x100) ? 2 : 0) | ((data & 0x0001) ? 1 : 0); - data >>= 1; - } - else /* no horizontal flip */ - { - colour = ((data & 0x8000) ? 2 : 0) | ((data & 0x0080) ? 1 : 0); - data <<= 1; - } - plot_pixel(bitmap, xindex, yindex, Machine->remapped_colortable[(((gbcmap[xidx] & 0x7) * 4) + colour)]); - xindex++; - /* If the priority bit is set then bump up the value, we'll - * check this when drawing sprites */ - *zbuf++ = colour + (gbcmap[xidx] & 0x80); - bit++; - i--; - } - xidx = (xidx + 1) & 31; - bit = 0; - tiles = layer[l].gbc_tiles[(gbcmap[xidx] & 0x8) >> 3]; - if( (gbcmap[xidx] & 0x40) >> 6 ) /* vertical flip */ - tiles -= ((layer[l].bgline & 7) << 1) - 7; - data = (UINT16)(tiles[(map[xidx] ^ gb_tile_no_mod) * 8]); - } - l++; - } - - if (LCDCONT & 0x02) - gbc_update_sprites(); - - profiler_mark(PROFILER_END); -} - -void gb_video_init( void ) { - int i; - - gb_chrgen = gb_vram; - gb_bgdtab = gb_vram + 0x1C00; - gb_wndtab = gb_vram + 0x1C00; - - gb_vid_regs[0x06] = 0xFF; - for( i = 0x0c; i < _NR_GB_VID_REGS; i++ ) { - gb_vid_regs[i] = 0xFF; - } - - LCDSTAT = 0x80; - gb_lcd.current_line = CURLINE = 0x00; - CMPLINE = 0xF0; - SCROLLX = SCROLLY = 0x00; - WNDPOSX = WNDPOSY = 0x00; - - /* Initialize palette arrays */ - for( i = 0; i < 4; i++ ) { - gb_bpal[i] = gb_spal0[i] = gb_spal1[i] = i; - } - - /* set the scanline refresh function */ - refresh_scanline = gb_refresh_scanline; -} - -void sgb_video_init( void ) { - gb_video_init(); - - /* Override the scanline refresh function */ - refresh_scanline = sgb_refresh_scanline; -} - -void gbc_video_init( void ) { - gb_video_init(); - - gb_chrgen = GBC_VRAMMap[0]; - gbc_chrgen = GBC_VRAMMap[1]; - gb_bgdtab = gb_wndtab = GBC_VRAMMap[0] + 0x1C00; - gbc_bgdtab = gbc_wndtab = GBC_VRAMMap[1] + 0x1C00; - - /* Override the scanline refresh function */ - refresh_scanline = gbc_refresh_scanline; - - /* HDMA disabled */ - gbc_hdma_enabled = 0; -} - -void gbc_hdma(UINT16 length) { - UINT16 src, dst; - - src = ((UINT16)HDMA1 << 8) | (HDMA2 & 0xF0); - dst = ((UINT16)(HDMA3 & 0x1F) << 8) | (HDMA4 & 0xF0); - dst |= 0x8000; - while( length > 0 ) { - program_write_byte_8( dst++, program_read_byte_8( src++ ) ); - length--; - } - HDMA1 = src >> 8; - HDMA2 = src & 0xF0; - HDMA3 = 0x1f & (dst >> 8); - HDMA4 = dst & 0xF0; - HDMA5--; - if( (HDMA5 & 0x7f) == 0 ) { - HDMA5 = 0xff; - gbc_hdma_enabled = 0; - } -} - -void gb_increment_scanline( void ) { - gb_lcd.current_line = ( gb_lcd.current_line + 1 ) % 154; - if ( LCDCONT & 0x80 ) { - CURLINE = gb_lcd.current_line; - if ( CURLINE == CMPLINE ) { - LCDSTAT |= 0x04; - /* Generate lcd interrupt if requested */ - if ( LCDSTAT & 0x40 ) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - } else { - LCDSTAT &= 0xFB; - } - } -} - -int gb_skip_increment_scanline = 0; - -/* Handle changing LY to 00 on line 153 */ -void gb_scanline_start_frame( int param ) { - gb_increment_scanline(); /* LY 153 -> 00 */ - gb_skip_increment_scanline = 1; - /* Initialize some other internal things to start drawing a frame ? */ - /* Initialize window state machine(?) */ -} - -void gb_scanline_interrupt_set_mode0 (int param) { - /* refresh current scanline */ - refresh_scanline(); - - /* only perform mode changes when LCD controller is still on */ - if (LCDCONT & 0x80) { - /* Set Mode 0 lcdstate */ - LCDSTAT &= 0xFC; - /* Generate lcd interrupt if requested */ - if( LCDSTAT & 0x08 ) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - - /* Check for HBLANK DMA */ - if( gbc_hdma_enabled && (gb_lcd.current_line < 144) ) - gbc_hdma(0x10); - } -} - -void gb_scanline_interrupt_set_mode3 (int param) { - int mode3_cycles = 172 /*+ gb_select_sprites() * 10*/; - - /* only perform mode changes when LCD controller is still on */ - if (LCDCONT & 0x80) { - /* Set Mode 3 lcdstate */ - LCDSTAT = (LCDSTAT & 0xFC) | 0x03; - } - /* Second lcdstate change after aprox 172+#sprites*10 clock cycles / 60 uS */ - timer_set ( TIME_IN_CYCLES(mode3_cycles,0), 0, gb_scanline_interrupt_set_mode0 ); -} - -void gb_video_scanline_interrupt (void) { - /* skip incrementing scanline when entering scanline 0 */ - if ( ! gb_skip_increment_scanline ) { - gb_increment_scanline(); - } else { - gb_skip_increment_scanline = 0; - } - - if (gb_lcd.current_line < 144) { - if ( LCDCONT & 0x80 ) { - /* Set Mode 2 lcdstate */ - LCDSTAT = (LCDSTAT & 0xFC) | 0x02; - /* Generate lcd interrupt if requested */ - if (LCDSTAT & 0x20) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - } - - /* First lcdstate change after aprox 80 clock cycles / 19 uS */ - timer_set ( TIME_IN_CYCLES(80,0), 0, gb_scanline_interrupt_set_mode3); - } else { - /* Generate VBlank interrupt (if display is enabled) */ - if (gb_lcd.current_line == 144 && ( LCDCONT & 0x80 ) ) { - /* Cause VBlank interrupt */ - cpunum_set_input_line(0, VBL_INT, HOLD_LINE); - /* Set VBlank lcdstate */ - LCDSTAT = (LCDSTAT & 0xFC) | 0x01; - /* Generate lcd interrupt if requested */ - if( LCDSTAT & 0x10 ) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - } - if ( gb_lcd.current_line == 153 ) { - timer_set( TIME_IN_CYCLES(32,0), 0, gb_scanline_start_frame ); - } - } -} - -READ8_HANDLER( gb_video_r ) { - return gb_vid_regs[offset]; -} - -/* Ignore write when LCD is on and STAT is 02 or 03 */ -int gb_video_oam_locked( void ) { - if ( ( LCDCONT & 0x80 ) && ( LCDSTAT & 0x02 ) ) { - return 1; - } - return 0; -} - -/* Ignore write when LCD is on and STAT is not 03 */ -int gb_video_vram_locked( void ) { - if ( ( LCDCONT & 0x80 ) && ( ( LCDSTAT & 0x03 ) == 0x03 ) ) { - return 1; - } - return 0; -} - -WRITE8_HANDLER ( gb_video_w ) { - switch (offset) { - case 0x00: /* LCDC - LCD Control */ - gb_chrgen = gb_vram + ((data & 0x10) ? 0x0000 : 0x0800); - gb_tile_no_mod = (data & 0x10) ? 0x00 : 0x80; - gb_bgdtab = gb_vram + ((data & 0x08) ? 0x1C00 : 0x1800 ); - gb_wndtab = gb_vram + ((data & 0x40) ? 0x1C00 : 0x1800 ); - /* if LCD controller is switched off, set STAT and LY to 00 */ - if ( ! ( data & 0x80 ) ) { - LCDSTAT &= ~0x03; - CURLINE = 0; - } - /* If LCD is being switched on */ - if ( !( LCDCONT & 0x80 ) && ( data & 0x80 ) ) { - gb_lcd.current_line = 0; - /* Check for LY=LYC coincidence */ - if ( CURLINE == CMPLINE ) { - LCDSTAT |= 0x04; - /* Generate lcd interrupt if requested */ - if ( LCDSTAT & 0x40 ) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - } - } - break; - case 0x01: /* STAT - LCD Status */ - data = 0x80 | (data & 0x78) | (LCDSTAT & 0x07); - /* - Check for the STAT bug: - Writing to STAT when the STAT mode is 1 or 0 - causes a STAT interrupt to be triggered. - */ - if ( LCDCONT & 0x80 ) { - switch ( LCDSTAT & 0x03 ) { - case 0x00: - case 0x01: - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - break; - } - } - break; - case 0x04: /* LY - LCD Y-coordinate */ - return; - case 0x06: /* DMA - DMA Transfer and Start Address */ - { - UINT8 *P = gb_oam; - offset = (UINT16) data << 8; - for (data = 0; data < 0xA0; data++) - *P++ = program_read_byte_8 (offset++); - } - return; - case 0x07: /* BGP - Background Palette */ - gb_bpal[0] = data & 0x3; - gb_bpal[1] = (data & 0xC) >> 2; - gb_bpal[2] = (data & 0x30) >> 4; - gb_bpal[3] = (data & 0xC0) >> 6; - break; - case 0x08: /* OBP0 - Object Palette 0 */ - gb_spal0[0] = data & 0x3; - gb_spal0[1] = (data & 0xC) >> 2; - gb_spal0[2] = (data & 0x30) >> 4; - gb_spal0[3] = (data & 0xC0) >> 6; - break; - case 0x09: /* OBP1 - Object Palette 1 */ - gb_spal1[0] = data & 0x3; - gb_spal1[1] = (data & 0xC) >> 2; - gb_spal1[2] = (data & 0x30) >> 4; - gb_spal1[3] = (data & 0xC0) >> 6; - break; - case 0x02: /* SCY - Scroll Y */ - case 0x03: /* SCX - Scroll X */ - case 0x05: /* LYC - LCD Y-compare */ - case 0x0A: /* WY - Window Y position */ - case 0x0B: /* WX - Window X position */ - break; - default: /* Unknown register, no change */ - return; - } - gb_vid_regs[ offset ] = data; -} - -WRITE8_HANDLER ( gbc_video_w ) { - static const UINT16 gbc_to_gb_pal[4] = {32767, 21140, 10570, 0}; - static UINT16 BP = 0, OP = 0; - - switch( offset ) { - case 0x00: /* LCDC - LCD Control */ - gb_chrgen = GBC_VRAMMap[0] + ((data & 0x10) ? 0x0000 : 0x0800); - gbc_chrgen = GBC_VRAMMap[1] + ((data & 0x10) ? 0x0000 : 0x0800); - gb_tile_no_mod = (data & 0x10) ? 0x00 : 0x80; - gb_bgdtab = GBC_VRAMMap[0] + ((data & 0x08) ? 0x1C00 : 0x1800); - gbc_bgdtab = GBC_VRAMMap[1] + ((data & 0x08) ? 0x1C00 : 0x1800); - gb_wndtab = GBC_VRAMMap[0] + ((data & 0x40) ? 0x1C00 : 0x1800); - gbc_wndtab = GBC_VRAMMap[1] + ((data & 0x40) ? 0x1C00 : 0x1800); - /* if LCD controller is switched off, set STAT to 00 */ - if ( ! ( data & 0x80 ) ) { - LCDSTAT &= ~0x03; - CURLINE = 0; - } - /* If LCD is being switched on */ - if ( !( LCDCONT & 0x80 ) && ( data & 0x80 ) ) { - gb_lcd.current_line = 0; - /* Check for LY=LYC coincidence */ - if ( CURLINE == CMPLINE ) { - LCDSTAT |= 0x04; - /* Generate lcd interrupt if requested */ - if ( LCDSTAT & 0x40 ) - cpunum_set_input_line(0, LCD_INT, HOLD_LINE); - } - } - break; - case 0x01: /* STAT - LCD Status */ - data = 0x80 | (data & 0x78) | (LCDSTAT & 0x07); - break; - case 0x07: /* BGP - GB background palette */ - /* Some GBC games are lazy and still call this */ - if( gbc_mode == GBC_MODE_MONO ) { - Machine->remapped_colortable[0] = gbc_to_gb_pal[(data & 0x03)]; - Machine->remapped_colortable[1] = gbc_to_gb_pal[(data & 0x0C) >> 2]; - Machine->remapped_colortable[2] = gbc_to_gb_pal[(data & 0x30) >> 4]; - Machine->remapped_colortable[3] = gbc_to_gb_pal[(data & 0xC0) >> 6]; - } - break; - case 0x08: /* OBP0 - GB Object 0 palette */ - if( gbc_mode == GBC_MODE_MONO ) /* Some GBC games are lazy and still call this */ - { - Machine->remapped_colortable[4] = gbc_to_gb_pal[(data & 0x03)]; - Machine->remapped_colortable[5] = gbc_to_gb_pal[(data & 0x0C) >> 2]; - Machine->remapped_colortable[6] = gbc_to_gb_pal[(data & 0x30) >> 4]; - Machine->remapped_colortable[7] = gbc_to_gb_pal[(data & 0xC0) >> 6]; - } - break; - case 0x09: /* OBP1 - GB Object 1 palette */ - if( gbc_mode == GBC_MODE_MONO ) /* Some GBC games are lazy and still call this */ - { - Machine->remapped_colortable[8] = gbc_to_gb_pal[(data & 0x03)]; - Machine->remapped_colortable[9] = gbc_to_gb_pal[(data & 0x0C) >> 2]; - Machine->remapped_colortable[10] = gbc_to_gb_pal[(data & 0x30) >> 4]; - Machine->remapped_colortable[11] = gbc_to_gb_pal[(data & 0xC0) >> 6]; - } - break; - case 0x11: /* HDMA1 - HBL General DMA - Source High */ - break; - case 0x12: /* HDMA2 - HBL General DMA - Source Low */ - data &= 0xF0; - break; - case 0x13: /* HDMA3 - HBL General DMA - Destination High */ - data &= 0x1F; - break; - case 0x14: /* HDMA4 - HBL General DMA - Destination Low */ - data &= 0xF0; - break; - case 0x15: /* HDMA5 - HBL General DMA - Mode, Length */ - if( !(data & 0x80) ) - { - if( gbc_hdma_enabled ) - { - gbc_hdma_enabled = 0; - data = HDMA5 & 0x80; - } - else - { - /* General DMA */ - gbc_hdma( ((data & 0x7F) + 1) * 0x10 ); - lcd_time -= ((KEY1 & 0x80)?110:220) + (((data & 0x7F) + 1) * 7.68); - data = 0xff; - } - } - else - { - /* H-Blank DMA */ - gbc_hdma_enabled = 1; - data &= 0x7f; - } - break; - case 0x28: /* BCPS - Background palette specification */ - break; - case 0x29: /* BCPD - background palette data */ - if( GBCBCPS & 0x1 ) - Machine->remapped_colortable[(GBCBCPS & 0x3e) >> 1] = ((UINT16)(data & 0x7f) << 8) | BP; - else - BP = data; - if( GBCBCPS & 0x80 ) - { - GBCBCPS++; - GBCBCPS &= 0xBF; - } - break; - case 0x2A: /* OCPS - Object palette specification */ - break; - case 0x2B: /* OCPD - Object palette data */ - if( GBCOCPS & 0x1 ) - Machine->remapped_colortable[GBC_PAL_OBJ_OFFSET + ((GBCOCPS & 0x3e) >> 1)] = ((UINT16)(data & 0x7f) << 8) | OP; - else - OP = data; - if( GBCOCPS & 0x80 ) - { - GBCOCPS++; - GBCOCPS &= 0xBF; - } - break; - /* Undocumented registers */ - case 0x2C: - /* bit 0 can be read/written */ - logerror( "Write to undocumented register: %X = %X\n", offset, data ); - data = 0xFE | ( data & 0x01 ); - break; - case 0x32: - case 0x33: - case 0x34: - /* whole byte can be read/written */ - logerror( "Write to undocumented register: %X = %X\n", offset, data ); - break; - case 0x35: - /* bit 4-6 can be read/written */ - logerror( "Write to undocumented register: %X = %X\n", offset, data ); - data = 0x8F | ( data & 0x70 ); - break; - case 0x36: - case 0x37: - logerror( "Write to undocumented register: %X = %X\n", offset, data ); - return; - default: - /* we didn't handle the write, so pass it to the GB handler */ - gb_video_w( offset, data ); - return; - } - - gb_vid_regs[offset] = data; -} - diff --git a/mess/vidhrdw/hp48.c b/mess/vidhrdw/hp48.c deleted file mode 100644 index 16ba9da08..000000000 --- a/mess/vidhrdw/hp48.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" - -#include "includes/hp48.h" - -static unsigned char hp48_palette[] = -{ - 49,70,64, /* background */ - 40,35,55, /* symbol color */ - 49,72,73, /* lcd light */ - 37,42,64 /* lcd dark */ -}; - -/* 32 contrast steps */ -unsigned short hp48_colortable[0x20][2] = { - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - - { 0, 2 }, - { 0, 2 }, - { 0, 2 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 0, 3 }, - { 2, 3 }, - { 2, 3 }, - - { 2, 3 }, - { 2, 3 }, - { 2, 3 }, - { 2, 3 }, - { 2, 3 }, - { 2, 3 }, - { 2, 3 }, - { 2, 3 } -}; - -PALETTE_INIT( hp48 ) -{ - palette_set_colors(machine, 0, hp48_palette, sizeof(hp48_palette) / 3); - memcpy(colortable,hp48_colortable,sizeof(hp48_colortable)); -} - -VIDEO_START( hp48 ) -{ - videoram_size = 6 * 2 + 24; - videoram = (UINT8*) auto_malloc (videoram_size); - -#if 0 - { - char backdrop_name[200]; - /* try to load a backdrop for the machine */ - sprintf (backdrop_name, "%s.png", Machine->gamedrv->name); - backdrop_load(backdrop_name, 8); - } -#endif - - return video_start_generic(machine); -} - -static void hp48_draw_special(mame_bitmap *bitmap,int x, int y, const char *figure, int color) -{ - int j, xi=0; - for (j=0; figure[j]; j++) { - switch (figure[j]) { - case '1': - plot_pixel(bitmap, x+xi, y, color); - xi++; - break; - case ' ': - xi++; - break; - case '\r': - xi=0; - y++; - break; - }; - } -} - - -#define LCD_LINES (hp48_hardware.data[0x28]|((hp48_hardware.data[0x29]&3)<<4) - -static const char *hp48_orange={ - "11111111111\r" - "111 1111111\r" - "11 1111111\r" - "1 1\r" - "11 11111 1\r" - "111 11111 1\r" - "111111111 1" -}, *hp48_blue= { - "11111111111\r" - "1111111 111\r" - "1111111 11\r" - "1 1\r" - "1 11111 11\r" - "1 11111 111\r" - "1 111111111" -}, *hp48_alpha= { - " 1\r" - " 11111 1\r" - " 1 1\r" - " 1 1\r" - " 1 1\r" - " 1 11\r" - " 11111 1" -}, *hp48_alarm= { - " 1 1\r" - " 1 1 1 1\r" - "1 1 1 1 1\r" - "1 1 111 1 1\r" - "1 1 1 1 1\r" - " 1 1 1 1\r" - " 1 1" -}, *hp48_busy= { - "11111111\r" - " 1 1\r" - " 1 1\r" - " 11\r" - " 1 1\r" - " 1 1\r" - "11111111" -}, *hp48_transmit={ - " 11\r" - "1 1 1\r" - " 1 1\r" - "1111111111\r" - " 1 1\r" - "1 1 1\r" - " 11" -}; - -#define DOWN 98 -#define RIGHT 40 -#define LCD_ENABLE hp48_hardware.data[0]&8 -#define LCD_VERTICAL_OFFSET hp48_hardware.data[0]&7 -#define LCD_BASE_ADDRESS (hp48_hardware.data[0x20]|(hp48_hardware.data[0x21]<<4)\ - |(hp48_hardware.data[0x22]<<8)|(hp48_hardware.data[0x23]<<12)\ - |(hp48_hardware.data[0x24]<<16)) - -#define LCD_LINE_OFFSET (hp48_hardware.data[0x25]|(hp48_hardware.data[0x26]<<4)\ - |(hp48_hardware.data[0x27]<<8)) - -VIDEO_UPDATE( hp48 ) -{ - int x, y, i; - int color[2]; - int contrast=(hp48_hardware.data[1]|((hp48_hardware.data[2]&1)<<4)); - - /* HJB: we cannot initialize array with values from other arrays, thus... */ - color[0] = Machine->pens[0]; -// color[0] = Machine->pens[1]; - color[1] = Machine->pens[1]; - - - for (y=0,i=LCD_BASE_ADDRESS; y<64; y+=8, i+=LCD_LINE_OFFSET) { - for (x=0; x<131; x++) { - drawgfx(bitmap, Machine->gfx[0], - program_read_byte(i+x), - contrast,0,0, - x*2+RIGHT,y*2+DOWN, - 0, TRANSPARENCY_NONE,0); - } - } - - hp48_draw_special(bitmap,RIGHT+12,DOWN-13,hp48_orange, - hp48_hardware.data[0xb]&1?color[1]:color[0]); - hp48_draw_special(bitmap,RIGHT+57,DOWN-13,hp48_blue, - hp48_hardware.data[0xb]&2?color[1]:color[0]); - hp48_draw_special(bitmap,RIGHT+102,DOWN-13,hp48_alpha, - hp48_hardware.data[0xb]&4?color[1]:color[0]); - hp48_draw_special(bitmap,RIGHT+147,DOWN-13,hp48_alarm, - hp48_hardware.data[0xb]&8?color[1]:color[0]); - hp48_draw_special(bitmap,RIGHT+192,DOWN-13,hp48_busy, - hp48_hardware.data[0xc]&1?color[1]:color[0]); - hp48_draw_special(bitmap,RIGHT+237,DOWN-13,hp48_transmit, - hp48_hardware.data[0xc]&2?color[1]:color[0]); - return 0; -} diff --git a/mess/vidhrdw/intv.c b/mess/vidhrdw/intv.c deleted file mode 100644 index 16426be2f..000000000 --- a/mess/vidhrdw/intv.c +++ /dev/null @@ -1,909 +0,0 @@ -#include "driver.h" -#include "includes/intv.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/stic.h" - -#define FOREGROUND_BIT 0x0010 - -VIDEO_START( intv ) -{ - //int i,j,k; - - if (video_start_generic_bitmapped(machine)) - return 1; - -/* - for (i = 0; i < 8; i++) { - struct intv_sprite_type* s = &intv_sprite[i]; - s->visible = 0; - s->xpos = 0; - s->ypos = 0; - s->coll = 0; - s->collision = 0; - s->doublex = 0; - s->doubley = 0; - s->quady = 0; - s->xflip = 0; - s->yflip = 0; - s->behind_foreground = 0; - s->grom = 0; - s->card = 0; - s->color = 0; - s->doubleyres = 0; - s->dirty = 1; - for (j = 0; j < 16; j++) { - for (k = 0; k < 128; k++) { - intv_sprite_buffers[i][j][k] = 0; - } - } - intv_collision_registers[i] = 0; - } - for(i = 0; i < 4; i++) { - intv_color_stack[i] = 0; - } - intv_color_stack_mode = 0; - intv_color_stack_offset = 0; - intv_stic_handshake = 0; - intv_border_color = 0; - intv_col_delay = 0; - intv_row_delay = 0; - intv_left_edge_inhibit = 0; - intv_top_edge_inhibit = 0; - - intv_gramdirty = 1; - for(i=0;i<64;i++) { - intv_gram[i] = 0; - intv_gramdirtybytes[i] = 1; - } -*/ - - return 0; -} - -/* NPW 20-Apr-2002 - Changing this to fix compilation errors with MSVC */ -#ifdef max -#undef max -#endif -#define max my_max - -#ifdef min -#undef min -#endif -#define min my_min - -static int max(int v1, int v2) { - return (v1 > v2 ? v1 : v2); -} - -static int min(int v1, int v2) { - return (v1 < v2 ? v1 : v2); -} - -static int sprites_collide(int spriteNum0, int spriteNum1) { - UINT8 x1, x2, y1, y2, w1, w2, h1, h2, x0, y0, r0y, r1y, - width, height, x, y; - - struct intv_sprite_type* s1 = &intv_sprite[spriteNum0]; - struct intv_sprite_type* s2 = &intv_sprite[spriteNum1]; - - x1 = s1->xpos-8; x2 = s2->xpos-8; - y1 = s1->ypos-8; y2 = s2->ypos-8; - w1 = 8 * (s1->doublex ? 2 : 1); - w2 = 8 * (s2->doublex ? 2 : 1); - h1 = 8 * (s1->quady ? 4 : 1) * (s1->doubley ? 2 : 1) * - (s1->doubleyres ? 2 : 1); - h2 = 8 * (s2->quady ? 4 : 1) * (s2->doubley ? 2 : 1) * - (s2->doubleyres ? 2 : 1); - - if ((x1 + w1 <= x2) || (y1 + h1 <= y2) || - (x1 >= x2 + w2) || (y1 >= y2 + h2)) - return FALSE; - - //iterate over the intersecting bits to see if any touch - x0 = max(x1, x2); - y0 = max(y1, y2); - r0y = 2*(y0-y1); - r1y = 2*(y0-y2); - width = min(x1+w1, x2+w2) - x0; - height = (min(y1+h1, y2+h2) - y0) * 2; - for (x = 0; x < width; x++) { - for (y = 0; y < height; y++) { - if (intv_sprite_buffers[spriteNum0][x0-x1+x][r0y+y] && - intv_sprite_buffers[spriteNum1][x0-x2+x][r1y+y]) - return TRUE; - } - } - - return FALSE; -} - -static void determine_sprite_collisions(void) -{ - //check sprite to sprite collisions - int i, j; - for (i = 0; i < 7; i++) { - struct intv_sprite_type* s1 = &intv_sprite[i]; - if (s1->xpos == 0 || !s1->coll) - continue; - - for (j = i+1; j < 8; j++) { - struct intv_sprite_type* s2 = &intv_sprite[j]; - if (s2->xpos == 0 || !s2->coll) - continue; - - if (sprites_collide(i, j)) { - s1->collision |= (1 << j); - s2->collision |= (1 << i); - } - } - } -} - -static void render_sprites(void) -{ - INT32 cardMemoryLocation, pixelSize; - INT32 spritePixelHeight; - INT32 nextMemoryLocation; - INT32 nextData; - INT32 nextX; - INT32 nextY; - INT32 xInc; - INT32 i, j; - - UINT8* memory = memory_region(REGION_CPU1); - - for (i = 0; i < 8; i++) { - struct intv_sprite_type* s = &intv_sprite[i]; - - if (s->grom) - cardMemoryLocation = (s->card << 3); - else - cardMemoryLocation = ((s->card & 0x003F) << 3); - - pixelSize = (s->quady ? 4 : 1) * (s->doubley ? 2 : 1); - spritePixelHeight = 8 * pixelSize * (s->doubleyres ? 2 : 1); - - for (j = 0; j < spritePixelHeight; j++) { - nextMemoryLocation = (cardMemoryLocation + (j/pixelSize)); - if (s->grom) - nextData = memory[(0x3000+nextMemoryLocation)<<1]; - else if (nextMemoryLocation < 0x200) - nextData = intv_gram[nextMemoryLocation]; - else - nextData = 0xFFFF; - nextX = (s->xflip ? (s->doublex ? 15 : 7) : 0); - nextY = (s->yflip ? (spritePixelHeight - j - 1) : j); - xInc = (s->xflip ? -1: 1); - intv_sprite_buffers[i][nextX][nextY] = ((nextData & 0x0080) != 0); - intv_sprite_buffers[i][nextX + xInc][nextY] = (s->doublex - ? ((nextData & 0x0080) != 0) - : ((nextData & 0x0040) != 0)); - intv_sprite_buffers[i][nextX + (2*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0040) != 0) - : ((nextData & 0x0020) != 0)); - intv_sprite_buffers[i][nextX + (3*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0040) != 0) - : ((nextData & 0x0010) != 0)); - intv_sprite_buffers[i][nextX + (4*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0020) != 0) - : ((nextData & 0x0008) != 0)); - intv_sprite_buffers[i][nextX + (5*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0020) != 0) - : ((nextData & 0x0004) != 0)); - intv_sprite_buffers[i][nextX + (6*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0010) != 0) - : ((nextData & 0x0002) != 0)); - intv_sprite_buffers[i][nextX + (7*xInc)][nextY] = (s->doublex - ? ((nextData & 0x0010) != 0) - : ((nextData & 0x0001) != 0)); - if (!s->doublex) - continue; - - intv_sprite_buffers[i][nextX + (8*xInc)][nextY] = - ((nextData & 0x0008) != 0); - intv_sprite_buffers[i][nextX + (9*xInc)][nextY] = - ((nextData & 0x0008) != 0); - intv_sprite_buffers[i][nextX + (10*xInc)][nextY] = - ((nextData & 0x0004) != 0); - intv_sprite_buffers[i][nextX + (11*xInc)][nextY] = - ((nextData & 0x0004) != 0); - intv_sprite_buffers[i][nextX + (12*xInc)][nextY] = - ((nextData & 0x0002) != 0); - intv_sprite_buffers[i][nextX + (13*xInc)][nextY] = - ((nextData & 0x0002) != 0); - intv_sprite_buffers[i][nextX + (14*xInc)][nextY] = - ((nextData & 0x0001) != 0); - intv_sprite_buffers[i][nextX + (15*xInc)][nextY] = - ((nextData & 0x0001) != 0); - } - - } -} - -static void render_line(mame_bitmap *bitmap, UINT8 nextByte, UINT16 x, UINT16 y, - UINT8 fgcolor, UINT8 bgcolor) -{ - UINT32 color = (nextByte & 0x80 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x, y, color); - plot_pixel(bitmap, x+1, y, color); - plot_pixel(bitmap, x, y+1, color); - plot_pixel(bitmap, x+1, y+1, color); - - color = (nextByte & 0x40 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+2, y, color); - plot_pixel(bitmap, x+3, y, color); - plot_pixel(bitmap, x+2, y+1, color); - plot_pixel(bitmap, x+3, y+1, color); - - color = (nextByte & 0x20 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+4, y, color); - plot_pixel(bitmap, x+5, y, color); - plot_pixel(bitmap, x+4, y+1, color); - plot_pixel(bitmap, x+5, y+1, color); - - color = (nextByte & 0x10 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+6, y, color); - plot_pixel(bitmap, x+7, y, color); - plot_pixel(bitmap, x+6, y+1, color); - plot_pixel(bitmap, x+7, y+1, color); - - color = (nextByte & 0x08 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+8, y, color); - plot_pixel(bitmap, x+9, y, color); - plot_pixel(bitmap, x+8, y+1, color); - plot_pixel(bitmap, x+9, y+1, color); - - color = (nextByte & 0x04 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+10, y, color); - plot_pixel(bitmap, x+11, y, color); - plot_pixel(bitmap, x+10, y+1, color); - plot_pixel(bitmap, x+11, y+1, color); - - color = (nextByte & 0x02 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+12, y, color); - plot_pixel(bitmap, x+13, y, color); - plot_pixel(bitmap, x+12, y+1, color); - plot_pixel(bitmap, x+13, y+1, color); - - color = (nextByte & 0x01 ? Machine->pens[fgcolor] - : Machine->pens[bgcolor]); - plot_pixel(bitmap, x+14, y, color); - plot_pixel(bitmap, x+15, y, color); - plot_pixel(bitmap, x+14, y+1, color); - plot_pixel(bitmap, x+15, y+1, color); -} - -static void render_colored_squares(mame_bitmap *bitmap, UINT16 x, UINT16 y, - UINT8 color0, UINT8 color1, UINT8 color2, UINT8 color3) -{ - plot_box(bitmap, x, y, 8, 8, Machine->pens[color0]); - plot_box(bitmap, x+8, y, 8, 8, Machine->pens[color1]); - plot_box(bitmap, x, y+8, 8, 8, Machine->pens[color2]); - plot_box(bitmap, x+8, y+8, 8, 8, Machine->pens[color3]); -} - -static void render_color_stack_mode(mame_bitmap *bitmap) -{ - UINT8 h, csPtr = 0, nexty = 0; - UINT16 nextCard, nextx = 0; - for (h = 0; h < 240; h++) { - nextCard = intv_ram16[h]; - - //colored squares mode - if ((nextCard & 0x1800) == 0x1000) { - UINT8 csColor = intv_color_stack[csPtr]; - UINT8 color0 = nextCard & 0x0007; - UINT8 color1 = (nextCard & 0x0038) >> 3; - UINT8 color2 = (nextCard & 0x01C0) >> 6; - UINT8 color3 = ((nextCard & 0x2000) >> 11) | - ((nextCard & 0x0600) >> 9); - render_colored_squares(bitmap, nextx, nexty, - (color0 == 7 ? csColor : (color0 | FOREGROUND_BIT)), - (color1 == 7 ? csColor : (color1 | FOREGROUND_BIT)), - (color2 == 7 ? csColor : (color2 | FOREGROUND_BIT)), - (color3 == 7 ? csColor : (color3 | FOREGROUND_BIT))); - } - //color stack mode - else { - UINT8 isGrom, j; - UINT16 memoryLocation, fgcolor, bgcolor; - UINT8* memory; - - //advance the color pointer, if necessary - if (nextCard & 0x2000) - csPtr = (csPtr+1) & 0x03; - - fgcolor = ((nextCard & 0x1000) >> 9) | - (nextCard & 0x0007) | FOREGROUND_BIT; - bgcolor = intv_color_stack[csPtr] & 0x0F; - - isGrom = !(nextCard & 0x0800); - if (isGrom) { - memoryLocation = 0x3000 + (nextCard & 0x07F8); - memory = memory_region(REGION_CPU1); - for (j = 0; j < 16; j+=2) - render_line(bitmap, memory[(memoryLocation<<1)+j], - nextx, nexty+j, fgcolor, bgcolor); - } - else { - memoryLocation = (nextCard & 0x01F8); - memory = intv_gram; - for (j = 0; j < 16; j+=2) - render_line(bitmap, memory[memoryLocation+(j>>1)], - nextx, nexty+j, fgcolor, bgcolor); - } - } - nextx += 16; - if (nextx == 320) { - nextx = 0; - nexty += 16; - } - } -} - -static void render_fg_bg_mode(mame_bitmap *bitmap) -{ - UINT8 i, j, isGrom, fgcolor, bgcolor, nexty = 0; - UINT16 nextCard, memoryLocation, nextx = 0; - UINT8* memory; - - for (i = 0; i < 240; i++) { - nextCard = intv_ram16[i]; - fgcolor = (nextCard & 0x0007) | FOREGROUND_BIT; - bgcolor = ((nextCard & 0x2000) >> 11) | - ((nextCard & 0x1600) >> 9); - - isGrom = !(nextCard & 0x0800); - if (isGrom) { - memoryLocation = 0x3000 + (nextCard & 0x01F8); - memory = memory_region(REGION_CPU1); - for (j = 0; j < 16; j+=2) - render_line(bitmap, memory[(memoryLocation<<1)+j], - nextx, nexty+j, fgcolor, bgcolor); - } - else { - memoryLocation = (nextCard & 0x01F8); - memory = intv_gram; - for (j = 0; j < 16; j+=2) - render_line(bitmap, memory[memoryLocation+(j>>1)], - nextx, nexty+j, fgcolor, bgcolor); - } - - nextx += 16; - if (nextx == 320) { - nextx = 0; - nexty += 16; - } - } -} - -static void copy_sprites_to_background(mame_bitmap *bitmap) -{ - UINT8 width, currentPixel; - UINT8 borderCollision, foregroundCollision; - UINT8 spritePixelHeight, x, y; - INT16 leftX, nextY, i; - INT32 nextX; - - for (i = 7; i >= 0; i--) { - struct intv_sprite_type *s = &intv_sprite[i]; - if (s->xpos == 0 || - (!s->coll && !s->visible)) - continue; - - borderCollision = FALSE; - foregroundCollision = FALSE; - - spritePixelHeight = 8 * (s->quady ? 4 : 1) * - (s->doubley ? 2 : 1) * (s->doubleyres ? 2 : 1); - width = 8 * (s->doublex ? 2 : 1); - - leftX = (s->xpos-8)*2; - nextY = (s->ypos-8)*2; - - for (y = 0; y < spritePixelHeight; y++) { - for (x = 0; x < width; x++) { - //if this sprite pixel is not on, then don't paint it - if (!intv_sprite_buffers[i][x][y]) - continue; - - nextX = leftX + (x<<1); - //if the next pixel location is on the border, then we - //have a border collision and we can ignore painting it - if (nextX < (intv_row_delay ? 8 : 0) || nextX > 317 || - nextY < (intv_col_delay ? 16 : 0) || nextY > 191) - { - borderCollision = TRUE; - continue; - } - - currentPixel = read_pixel(bitmap, nextX, nextY); - - //check for foreground collision - if (currentPixel & FOREGROUND_BIT) { - foregroundCollision = TRUE; - if (s->behind_foreground) - continue; - } - - if (s->visible) { - plot_pixel(bitmap, nextX, nextY, Machine->pens[s->color] | - (currentPixel & FOREGROUND_BIT)); - plot_pixel(bitmap, nextX+1, nextY, Machine->pens[s->color] | - (currentPixel & FOREGROUND_BIT)); - } - } - nextY++; - } - - //update the collision bits - if (s->coll) { - if (foregroundCollision) - s->collision |= 0x0100; - if (borderCollision) - s->collision |= 0x0200; - } - } -} - -static void render_background(mame_bitmap *bitmap) -{ - if (intv_color_stack_mode) - render_color_stack_mode(bitmap); - else - render_fg_bg_mode(bitmap); -} - -/* -static void draw_background(mame_bitmap *bitmap, int transparency) -{ - // First, draw the background - int offs = 0; - int value = 0; - int row,col; - int fgcolor,bgcolor = 0; - int code; - - int colora, colorb, colorc, colord; - - int n_bit; - int p_bit; - int g_bit; - - int j; - - if (intv_color_stack_mode == 1) - { - intv_color_stack_offset = 0; - for(row = 0; row < 12; row++) - { - for(col = 0; col < 20; col++) - { - value = intv_ram16[offs]; - - n_bit = value & 0x2000; - p_bit = value & 0x1000; - g_bit = value & 0x0800; - - if (p_bit && (!g_bit)) // colored squares mode - { - colora = value&0x7; - colorb = (value>>3)&0x7; - colorc = (value>>6)&0x7; - colord = ((n_bit>>11)&0x4) + ((value>>9)&0x3); - // color 7 if the top of the color stack in this mode - if (colora == 7) colora = intv_color_stack[3]; - if (colorb == 7) colorb = intv_color_stack[3]; - if (colorc == 7) colorc = intv_color_stack[3]; - if (colord == 7) colord = intv_color_stack[3]; - plot_box(bitmap,col*16,row*16,8,8,Machine->pens[colora]); - plot_box(bitmap,col*16+8,row*16,8,8,Machine->pens[colorb]); - plot_box(bitmap,col*16,row*16+8,8,8,Machine->pens[colorc]); - plot_box(bitmap,col*16+8,row*16+8,8,8,Machine->pens[colord]); - } - else // normal color stack mode - { - if (n_bit) // next color - { - intv_color_stack_offset += 1; - intv_color_stack_offset &= 3; - } - - if (p_bit) // pastel color set - fgcolor = (value&0x7) + 8; - else - fgcolor = value&0x7; - - bgcolor = intv_color_stack[intv_color_stack_offset]; - code = (value>>3)&0xff; - - if (g_bit) // read from gram - { - code %= 64; // keep from going outside the array - //if (intv_gramdirtybytes[code] == 1) - { - decodechar(Machine->gfx[1], - code, - intv_gram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); - intv_gramdirtybytes[code] = 0; - } - // Draw GRAM char - drawgfx(bitmap,Machine->gfx[1], - code, - bgcolor*16+fgcolor, - 0,0,col*16,row*16, - 0,transparency,bgcolor); - - for(j=0;j<8;j++) - { - //plot_pixel(bitmap, col*16+j*2, row*16+7*2+1, Machine->pens[1]); - //plot_pixel(bitmap, col*16+j*2+1, row*16+7*2+1, Machine->pens[1]); - } - - } - else // read from grom - { - drawgfx(bitmap,Machine->gfx[0], - code, - bgcolor*16+fgcolor, - 0,0,col*16,row*16, - 0,transparency,bgcolor); - - for(j=0;j<8;j++) - { - //plot_pixel(bitmap, col*16+j*2, row*16+7*2+1, Machine->pens[2]); - //plot_pixel(bitmap, col*16+j*2+1, row*16+7*2+1, Machine->pens[2]); - } - } - } - offs++; - } // next col - } // next row - } - else - { - // fg/bg mode goes here - for(row = 0; row < 12; row++) - { - for(col = 0; col < 20; col++) - { - value = intv_ram16[offs]; - fgcolor = value & 0x07; - bgcolor = ((value & 0x2000)>>11)+((value & 0x1600)>>9); - code = (value & 0x01f8)>>3; - - if (value & 0x0800) // read for GRAM - { - //if (intv_gramdirtybytes[code] == 1) - { - decodechar(Machine->gfx[1], - code, - intv_gram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); - intv_gramdirtybytes[code] = 0; - } - // Draw GRAM char - drawgfx(bitmap,Machine->gfx[1], - code, - bgcolor*16+fgcolor, - 0,0,col*16,row*16, - 0,transparency,bgcolor); - } - else // read from GROM - { - drawgfx(bitmap,Machine->gfx[0], - code, - bgcolor*16+fgcolor, - 0,0,col*16,row*16, - 0,transparency,bgcolor); - } - offs++; - } // next col - } // next row - } -} -*/ - -/* TBD: need to handle sprites behind foreground? */ -/* -static void draw_sprites(mame_bitmap *bitmap, int behind_foreground) -{ - int i; - int code; - - for(i=7;i>=0;--i) - { - struct intv_sprite_type *s = &intv_sprite[i]; - if (s->visible && (s->behind_foreground == behind_foreground)) - { - code = s->card; - if (!s->grom) - { - code %= 64; // keep from going outside the array - if (s->yres == 1) - { - //if (intv_gramdirtybytes[code] == 1) - { - decodechar(Machine->gfx[1], - code, - intv_gram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); - intv_gramdirtybytes[code] = 0; - } - // Draw GRAM char - drawgfxzoom(bitmap,Machine->gfx[1], - code, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - } - else - { - //if ((intv_gramdirtybytes[code] == 1) || (intv_gramdirtybytes[code+1] == 1)) - { - decodechar(Machine->gfx[1], - code, - intv_gram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); - decodechar(Machine->gfx[1], - code+1, - intv_gram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); - intv_gramdirtybytes[code] = 0; - intv_gramdirtybytes[code+1] = 0; - } - // Draw GRAM char - drawgfxzoom(bitmap,Machine->gfx[1], - code, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16+(s->yflip)*s->ysize*8, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - drawgfxzoom(bitmap,Machine->gfx[1], - code+1, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16+(1-s->yflip)*s->ysize*8, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - } - } - else - { - if (s->yres == 1) - { - // Draw GROM char - drawgfxzoom(bitmap,Machine->gfx[0], - code, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - } - else - { - drawgfxzoom(bitmap,Machine->gfx[0], - code, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16+(s->yflip)*s->ysize*8, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - drawgfxzoom(bitmap,Machine->gfx[0], - code+1, - s->color, - s->xflip,s->yflip, - s->xpos*2-16,s->ypos*2-16+(1-s->yflip)*s->ysize*8, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,0, - 0x8000*s->xsize, 0x8000*s->ysize); - } - } - } - } -} -*/ - -static void draw_borders(mame_bitmap *bm) -{ - if (intv_left_edge_inhibit) - { - plot_box(bm,0,0,16-intv_col_delay*2,16*12,Machine->pens[intv_border_color]); - } - if (intv_top_edge_inhibit) - { - plot_box(bm,0,0,16*20,16-intv_row_delay*2,Machine->pens[intv_border_color]); - } -} - -static int col_delay = 0; -static int row_delay = 0; - -void stic_screenrefresh() -{ - int i; - - logerror("%g: SCREEN_REFRESH\n",timer_get_time()); - - if (intv_stic_handshake != 0) - { - intv_stic_handshake = 0; - // Render the background - render_background(tmpbitmap); - // Render the sprites into their buffers - render_sprites(); - for (i = 0; i < 8; i++) - intv_sprite[i].collision = 0; - // Copy the sprites to the background - copy_sprites_to_background(tmpbitmap); - determine_sprite_collisions(); - for (i = 0; i < 8; i++) - intv_collision_registers[i] |= intv_sprite[i].collision; - /* draw the screen borders if enabled */ - draw_borders(tmpbitmap); - } - else - { - /* STIC disabled, just fill with border color */ - fillbitmap(tmpbitmap,Machine->pens[intv_border_color],&Machine->screen[0].visarea); - } - col_delay = intv_col_delay; - row_delay = intv_row_delay; -} - -VIDEO_UPDATE( intv ) -{ - copybitmap(bitmap,tmpbitmap,0,0, - col_delay*2,row_delay*2, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - return 0; -} - -VIDEO_START( intvkbd ) -{ - videoram_size = 0x0800; - videoram = auto_malloc(videoram_size); - - if (video_start_generic(machine)) - return 1; - - return video_start_intv(machine); -} - -/* very rudimentary support for the tms9927 character generator IC */ - -static UINT8 tms9927_cursor_col; -static UINT8 tms9927_cursor_row; -static UINT8 tms9927_last_row; -/* initialized to non-zero, because we divide by it */ -static UINT8 tms9927_num_rows = 25; - - READ8_HANDLER( intvkbd_tms9927_r ) -{ - UINT8 rv; - switch (offset) - { - case 8: - rv = tms9927_cursor_row; - break; - case 9: - /* note: this is 1-based */ - rv = tms9927_cursor_col; - break; - case 11: - tms9927_last_row = (tms9927_last_row + 1) % tms9927_num_rows; - rv = tms9927_last_row; - break; - default: - rv = 0; - } - return rv; -} - -WRITE8_HANDLER( intvkbd_tms9927_w ) -{ - switch (offset) - { - case 3: - tms9927_num_rows = (data & 0x3f) + 1; - break; - case 6: - tms9927_last_row = data; - break; - case 11: - tms9927_last_row = (tms9927_last_row + 1) % tms9927_num_rows; - break; - case 12: - /* note: this is 1-based */ - tms9927_cursor_col = data; - break; - case 13: - tms9927_cursor_row = data; - break; - } -} - -VIDEO_UPDATE( intvkbd ) -{ - int x,y,offs; - int current_row; -// char c; - - /* Draw the underlying INTV screen first */ - video_update_intv(machine, screen, bitmap, cliprect); - - /* if the intvkbd text is not blanked, overlay it */ - if (!intvkbd_text_blanked) - { - current_row = (tms9927_last_row + 1) % tms9927_num_rows; - for(y=0;y<24;y++) - { - for(x=0;x<40;x++) - { - offs = current_row*64+x; - drawgfx(bitmap,Machine->gfx[2], - videoram[offs], - 7, /* white */ - 0,0, - x*8,y*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - } - if (current_row == tms9927_cursor_row) - { - /* draw the cursor as a solid white block */ - /* (should use a filled rect here!) */ - drawgfx(bitmap,Machine->gfx[2], - 191, /* a block */ - 7, /* white */ - 0,0, - (tms9927_cursor_col-1)*8,y*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - } - current_row = (current_row + 1) % tms9927_num_rows; - } - } - -#if 0 - // debugging - c = tape_motor_mode_desc[tape_motor_mode][0]; - drawgfx(bitmap,Machine->gfx[2], - c, - 1, - 0,0, - 0*8,0*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - for(y=0;y<5;y++) - { - drawgfx(bitmap,Machine->gfx[2], - tape_unknown_write[y]+'0', - 1, - 0,0, - 0*8,(y+2)*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - } - drawgfx(bitmap,Machine->gfx[2], - tape_unknown_write[5]+'0', - 1, - 0,0, - 0*8,8*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - drawgfx(bitmap,Machine->gfx[2], - tape_interrupts_enabled+'0', - 1, - 0,0, - 0*8,10*8, - &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); -#endif - return 0; -} diff --git a/mess/vidhrdw/jupiter.c b/mess/vidhrdw/jupiter.c deleted file mode 100644 index d0cea3b75..000000000 --- a/mess/vidhrdw/jupiter.c +++ /dev/null @@ -1,69 +0,0 @@ -/*************************************************************************** - - jupiter.c - - Functions to emulate the video hardware of the Jupiter Ace. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/jupiter.h" - -unsigned char *jupiter_charram; -size_t jupiter_charram_size; - -VIDEO_START( jupiter ) -{ - if( video_start_generic(machine) ) - return 1; - return 0; -} - -WRITE8_HANDLER( jupiter_vh_charram_w ) -{ - int chr = offset / 8, offs; - - if( data == jupiter_charram[offset] ) - return; /* no change */ - - jupiter_charram[offset] = data; - - /* decode character graphics again */ - decodechar(Machine->gfx[0], chr, jupiter_charram, &jupiter_charlayout); - - /* mark all visible characters with that code dirty */ - for( offs = 0; offs < videoram_size; offs++ ) - { - if( videoram[offs] == chr ) - dirtybuffer[offs] = 1; - } -} - -VIDEO_UPDATE( jupiter ) -{ - int offs; - int full_refresh = 1; - - /* do we need a full refresh? */ - if( full_refresh ) - memset(dirtybuffer, 1, videoram_size); - - for( offs = 0; offs < videoram_size; offs++ ) - { - if( dirtybuffer[offs] ) - { - int code = videoram[offs]; - int sx, sy; - - sy = (offs / 32) * 8; - sx = (offs % 32) * 8; - - drawgfx(bitmap, Machine->gfx[0], code & 0x7f, (code & 0x80) ? 1 : 0, 0,0, sx,sy, - &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - - dirtybuffer[offs] = 0; - } - } - return 0; -} diff --git a/mess/vidhrdw/kim1.c b/mess/vidhrdw/kim1.c deleted file mode 100644 index 5dbf7bff6..000000000 --- a/mess/vidhrdw/kim1.c +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - KIM-1 - - video driver - - Juergen Buchmueller, Jan 2000 - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/kim1.h" - -PALETTE_INIT( kim1 ) -{ - int i; - - /* initialize 16 colors with shades of red (orange) */ - for (i = 0; i < 16; i++) - { - palette_set_color(machine, i, - 24 + (i + 1) * (i + 1) - 1, - (i + 1) * (i + 1) / 4, - 0); - colortable[2 * i + 0] = 1; - colortable[2 * i + 1] = i; - } - - palette_set_color(machine, 16, 0, 0, 0); - palette_set_color(machine, 17, 30, 30, 30); - palette_set_color(machine, 18, 90, 90, 90); - palette_set_color(machine, 19, 50, 50, 50); - palette_set_color(machine, 20, 255, 255, 255); - - colortable[2 * 16 + 0 * 4 + 0] = 17; - colortable[2 * 16 + 0 * 4 + 1] = 18; - colortable[2 * 16 + 0 * 4 + 2] = 19; - colortable[2 * 16 + 0 * 4 + 3] = 20; - - colortable[2 * 16 + 1 * 4 + 0] = 17; - colortable[2 * 16 + 1 * 4 + 1] = 17; - colortable[2 * 16 + 1 * 4 + 2] = 19; - colortable[2 * 16 + 1 * 4 + 3] = 15; -} - -VIDEO_START( kim1 ) -{ - videoram_size = 6 * 2 + 24; - videoram = auto_malloc (videoram_size); - - return video_start_generic(machine); -} - -VIDEO_UPDATE( kim1 ) -{ - int x, y; - - fillbitmap(bitmap, get_black_pen(machine), NULL); - - for (x = 0; x < 6; x++) - { - int sy = 408; - int sx = machine->screen[0].width - 212 + x * 30 + ((x >= 4) ? 6 : 0); - - drawgfx (bitmap, machine->gfx[0], videoram[2 * x + 0], videoram[2 * x + 1], - 0, 0, sx, sy, &machine->screen[0].visarea, TRANSPARENCY_PEN, 0); - } - - for (y = 0; y < 6; y++) - { - int sy = 516 + y * 36; - - for (x = 0; x < 4; x++) - { - static int layout[6][4] = - { - {22, 19, 21, 23}, - {16, 17, 20, 18}, - {12, 13, 14, 15}, - { 8, 9, 10, 11}, - { 4, 5, 6, 7}, - { 0, 1, 2, 3} - }; - int sx = machine->screen[0].width - 182 + x * 37; - int color, code = layout[y][x]; - - color = (readinputport (code / 7) & (0x40 >> (code % 7))) ? 0 : 1; - - videoram[6 * 2 + code] = color; - drawgfx (bitmap, machine->gfx[1], layout[y][x], color, - 0, 0, sx, sy, &machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - } - } - return 0; -} - - diff --git a/mess/vidhrdw/lviv.c b/mess/vidhrdw/lviv.c deleted file mode 100644 index b1881afac..000000000 --- a/mess/vidhrdw/lviv.c +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************** - - lviv.c - - Functions to emulate the video hardware of PK-01 Lviv. - - Krzysztof Strzecha - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/lviv.h" - -unsigned char lviv_palette[8*3] = -{ - 0x00, 0x00, 0x00, - 0x00, 0x00, 0xa4, - 0x00, 0xa4, 0x00, - 0x00, 0xa4, 0xa4, - 0xa4, 0x00, 0x00, - 0xa4, 0x00, 0xa4, - 0xa4, 0xa4, 0x00, - 0xa4, 0xa4, 0xa4 -}; - -unsigned short lviv_colortable[1][4] = -{ - { 0, 0, 0, 0 } -}; - -PALETTE_INIT( lviv ) -{ - palette_set_colors(machine, 0, lviv_palette, sizeof(lviv_palette) / 3); - memcpy(colortable, lviv_colortable, sizeof (lviv_colortable)); -} - - -void lviv_update_palette (UINT8 pal) -{ - lviv_colortable[0][0] = 0; - lviv_colortable[0][1] = 0; - lviv_colortable[0][2] = 0; - lviv_colortable[0][3] = 0; - - lviv_colortable[0][0] |= (((pal>>3)&0x01) == ((pal>>4)&0x01)) ? 0x04 : 0x00; - lviv_colortable[0][0] |= ((pal>>5)&0x01) ? 0x02 : 0x00; - lviv_colortable[0][0] |= (((pal>>2)&0x01) == ((pal>>6)&0x01)) ? 0x01 : 0x00; - - lviv_colortable[0][1] |= ((pal&0x01) == ((pal>>4)&0x01)) ? 0x04 : 0x00; - lviv_colortable[0][1] |= ((pal>>5)&0x01) ? 0x02 : 0x00; - lviv_colortable[0][1] |= ((pal>>6)&0x01) ? 0x00 : 0x01; - - lviv_colortable[0][2] |= ((pal>>4)&0x01) ? 0x04 : 0x00; - lviv_colortable[0][2] |= ((pal>>5)&0x01) ? 0x00 : 0x02; - lviv_colortable[0][2] |= ((pal>>6)&0x01) ? 0x01 : 0x00; - - lviv_colortable[0][3] |= ((pal>>4)&0x01) ? 0x00 : 0x04; - lviv_colortable[0][3] |= (((pal>>1)&0x01) == ((pal>>5)&0x01)) ? 0x02 : 0x00; - lviv_colortable[0][3] |= ((pal>>6)&0x01) ? 0x01 : 0x00; -} - -VIDEO_START( lviv ) -{ - return 0; -} - -VIDEO_UPDATE( lviv ) -{ - int x,y; - int pen; - UINT8 data; - - for (y=0; y<256; y++) - for (x=0; x<256; x+=4) - { - data = lviv_video_ram[y*64+x/4]; - - pen = lviv_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))]; - plot_pixel(bitmap, x, y, Machine->pens[pen]); - - pen = lviv_colortable[0][((data & 0x04) >> 2) | ((data & 0x40) >> (2+3))]; - plot_pixel(bitmap, x+1, y, Machine->pens[pen]); - - pen = lviv_colortable[0][((data & 0x02) >> 1) | ((data & 0x20) >> (1+3))]; - plot_pixel(bitmap, x+2, y, Machine->pens[pen]); - - pen = lviv_colortable[0][((data & 0x01) >> 0) | ((data & 0x10) >> (0+3))]; - plot_pixel(bitmap, x+3, y, Machine->pens[pen]); - } - return 0; -} diff --git a/mess/vidhrdw/mbee.c b/mess/vidhrdw/mbee.c deleted file mode 100644 index 2662551b3..000000000 --- a/mess/vidhrdw/mbee.c +++ /dev/null @@ -1,564 +0,0 @@ -/*************************************************************************** - microbee.c - - video hardware - Juergen Buchmueller , Dec 1999 - -****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/mbee.h" - -typedef struct { // CRTC 6545 - UINT8 horizontal_total; - UINT8 horizontal_displayed; - UINT8 horizontal_sync_pos; - UINT8 horizontal_length; - UINT8 vertical_total; - UINT8 vertical_adjust; - UINT8 vertical_displayed; - UINT8 vertical_sync_pos; - UINT8 crt_mode; - UINT8 scan_lines; - UINT8 cursor_top; - UINT8 cursor_bottom; - UINT8 screen_address_hi; - UINT8 screen_address_lo; - UINT8 cursor_address_hi; - UINT8 cursor_address_lo; - UINT8 lpen_hi; - UINT8 lpen_lo; - UINT8 transp_hi; - UINT8 transp_lo; - UINT8 idx; - UINT8 cursor_visible; - UINT8 cursor_phase; - UINT8 lpen_strobe; - UINT8 update_strobe; -} CRTC6545; - -static CRTC6545 crt; -static int off_x = 0; -static int off_y = 0; -static int framecnt = 0; -static int update_all = 0; -static int m6545_color_bank = 0; -static int m6545_video_bank = 0; -static int mbee_pcg_color_latch = 0; - -char mbee_frame_message[128+1]; -int mbee_frame_counter; - - -UINT8 *pcgram; - -/* from mess/systems/microbee.c */ -extern gfx_layout mbee_charlayout; - - -WRITE8_HANDLER ( mbee_pcg_color_latch_w ) -{ - logerror("mbee pcg_color_latch_w $%02X\n", data); - mbee_pcg_color_latch = data; -} - - READ8_HANDLER ( mbee_pcg_color_latch_r ) -{ - int data = mbee_pcg_color_latch; - logerror("mbee pcg_color_latch_r $%02X\n", data); - return data; -} - -WRITE8_HANDLER ( mbee_videoram_w ) -{ - if( videoram[offset] != data ) - { - logerror("mbee videoram [$%04X] <- $%02X\n", offset, data); - videoram[offset] = data; - colorram[offset] = 2; - dirtybuffer[offset] = 1; - } -} - - READ8_HANDLER ( mbee_videoram_r ) -{ - int data; - if( m6545_video_bank & 0x01 ) - { - data = pcgram[offset]; - logerror("mbee pcgram [$%04X] -> $%02X\n", offset, data); - } - else - { - data = videoram[offset]; - logerror("mbee videoram [$%04X] -> $%02X\n", offset, data); - } - return data; -} - -WRITE8_HANDLER ( mbee_pcg_color_w ) -{ - if( (m6545_video_bank & 0x01) || (mbee_pcg_color_latch & 0x40) == 0 ) - { - if( pcgram[0x0800+offset] != data ) - { - int chr = 0x80 + offset / 16; - int i; - - logerror("mbee pcgram [$%04X] <- $%02X\n", offset, data); - pcgram[0x0800+offset] = data; - /* decode character graphics again */ - decodechar(Machine->gfx[0], chr, pcgram, &mbee_charlayout); - - /* mark all visible characters with that code dirty */ - for( i = 0; i < videoram_size; i++ ) - { - if( videoram[i] == chr ) - dirtybuffer[i] = 1; - } - } - } - else - { - if( colorram[offset] != data ) - { - logerror("colorram [$%04X] <- $%02X\n", offset, data); - colorram[offset] = data; - dirtybuffer[offset] = 1; - } - } -} - - READ8_HANDLER ( mbee_pcg_color_r ) -{ - int data; - - if( mbee_pcg_color_latch & 0x40 ) - data = colorram[offset]; - else - data = pcgram[0x0800+offset]; - return data; -} - -static int keyboard_matrix_r(int offs) -{ - int port = (offs >> 7) & 7; - int bit = (offs >> 4) & 7; - int data = (readinputport(port) >> bit) & 1; - int extra = readinputport(8); - - if( extra & 0x01 ) /* extra: cursor up */ - { - if( port == 7 && bit == 1 ) data = 1; /* Control */ - if( port == 0 && bit == 5 ) data = 1; /* E */ - } - if( extra & 0x02 ) /* extra: cursor down */ - { - if( port == 7 && bit == 1 ) data = 1; /* Control */ - if( port == 3 && bit == 0 ) data = 1; /* X */ - } - if( extra & 0x04 ) /* extra: cursor left */ - { - if( port == 7 && bit == 1 ) data = 1; /* Control */ - if( port == 2 && bit == 3 ) data = 1; /* S */ - } - if( extra & 0x08 ) /* extra: cursor right */ - { - if( port == 7 && bit == 1 ) data = 1; /* Control */ - if( port == 0 && bit == 4 ) data = 1; /* D */ - } - if( extra & 0x10 ) /* extra: insert */ - { - if( port == 7 && bit == 1 ) data = 1; /* Control */ - if( port == 2 && bit == 6 ) data = 1; /* V */ - } - if( data ) - { - crt.lpen_lo = offs & 0xff; - crt.lpen_hi = (offs >> 8) & 0x03; - crt.lpen_strobe = 1; - logerror("mbee keyboard_matrix_r $%03X (port:%d bit:%d) = %d\n", offs, port, bit, data); - } - return data; -} - -static void m6545_offset_xy(void) -{ - if( crt.horizontal_sync_pos ) - off_x = crt.horizontal_total - crt.horizontal_sync_pos - 23; - else - off_x = -24; - - off_y = (crt.vertical_total - crt.vertical_sync_pos) * - (crt.scan_lines + 1) + crt.vertical_adjust; - - if( off_y < 0 ) - off_y = 0; - - if( off_y > 128 ) - off_y = 128; - - logerror("6545 offset x:%d y:%d\n", off_x, off_y); -} - - READ8_HANDLER ( mbee_color_bank_r ) -{ - int data = m6545_color_bank; - logerror("6545 color_bank_r $%02X\n", data); - return data; -} - -WRITE8_HANDLER ( mbee_color_bank_w ) -{ - logerror("6545 color_bank_w $%02X\n", data); - m6545_color_bank = data; -} - - READ8_HANDLER ( mbee_video_bank_r ) -{ - int data = m6545_video_bank; - logerror("6545 video_bank_r $%02X\n", data); - return data; -} - -WRITE8_HANDLER ( mbee_video_bank_w ) -{ - logerror("6545 video_bank_w $%02X\n", data); - m6545_video_bank = data; -} - -static void m6545_update_strobe(int param) -{ - int data; - data = keyboard_matrix_r(param); - crt.update_strobe = 1; - if( data ) - { - logerror("6545 update_strobe_cb $%04X = $%02X\n", param, data); - } -} - - READ8_HANDLER ( m6545_status_r ) -{ - int data = 0, y = cpu_getscanline(); - - if( y < Machine->screen[0].visarea.min_y || - y > Machine->screen[0].visarea.max_y ) - data |= 0x20; /* vertical blanking */ - if( crt.lpen_strobe ) - data |= 0x40; /* lpen register full */ - if( crt.update_strobe ) - data |= 0x80; /* update strobe has occured */ - logerror("6545 status_r $%02X\n", data); - return data; -} - - READ8_HANDLER ( m6545_data_r ) -{ - int addr, data = 0; - - switch( crt.idx ) - { -/* These are write only on a Rockwell 6545 */ -#if 0 - case 0: - return crt.horizontal_total; - case 1: - return crt.horizontal_displayed; - case 2: - return crt.horizontal_sync_pos; - case 3: - return crt.horizontal_length; - case 4: - return crt.vertical_total; - case 5: - return crt.vertical_adjust; - case 6: - return crt.vertical_displayed; - case 7: - return crt.vertical_sync_pos; - case 8: - return crt.crt_mode; - case 9: - return crt.scan_lines; - case 10: - return crt.cursor_top; - case 11: - return crt.cursor_bottom; - case 12: - return crt.screen_address_hi; - case 13: - return crt.screen_address_lo; -#endif - case 14: - data = crt.cursor_address_hi; - break; - case 15: - data = crt.cursor_address_lo; - break; - case 16: - logerror("6545 lpen_hi_r $%02X (lpen:%d upd:%d)\n", crt.lpen_hi, crt.lpen_strobe, crt.update_strobe); - crt.lpen_strobe = 0; - crt.update_strobe = 0; - data = crt.lpen_hi; - break; - case 17: - logerror("6545 lpen_lo_r $%02X (lpen:%d upd:%d)\n", crt.lpen_lo, crt.lpen_strobe, crt.update_strobe); - crt.lpen_strobe = 0; - crt.update_strobe = 0; - data = crt.lpen_lo; - break; - case 18: - logerror("6545 transp_hi_r $%02X\n", crt.transp_hi); - data = crt.transp_hi; - break; - case 19: - logerror("6545 transp_lo_r $%02X\n", crt.transp_lo); - data = crt.transp_lo; - break; - case 31: - /* shared memory latch */ - addr = crt.transp_hi * 256 + crt.transp_lo; - logerror("6545 transp_latch $%04X\n", addr); - m6545_update_strobe(addr); - break; - default: - logerror("6545 read unmapped port $%X\n", crt.idx); - } - return data; -} - -WRITE8_HANDLER ( m6545_index_w ) -{ - crt.idx = data & 0x1f; -} - -WRITE8_HANDLER ( m6545_data_w ) -{ - int addr; - - switch( crt.idx ) - { - case 0: - if( crt.horizontal_total == data ) - break; - crt.horizontal_total = data; - logerror("6545 horizontal total %d\n", data); - m6545_offset_xy(); - break; - case 1: - if( crt.horizontal_displayed == data ) - break; - crt.horizontal_displayed = data; - logerror("6545 horizontal displayed %d\n", data); - break; - case 2: - if( crt.horizontal_sync_pos == data ) - break; - crt.horizontal_sync_pos = data; - logerror("6545 horizontal sync pos %d\n", data); - m6545_offset_xy(); - break; - case 3: - crt.horizontal_length = data; - logerror("6545 horizontal length %d\n", data); - break; - case 4: - if( crt.vertical_total == data ) - break; - crt.vertical_total = data; - logerror("6545 vertical total %d\n", data); - m6545_offset_xy(); - break; - case 5: - if( crt.vertical_adjust == data ) - break; - crt.vertical_adjust = data; - logerror("6545 vertical adjust %d\n", data); - m6545_offset_xy(); - break; - case 6: - if( crt.vertical_displayed == data ) - break; - logerror("6545 vertical displayed %d\n", data); - crt.vertical_displayed = data; - break; - case 7: - if( crt.vertical_sync_pos == data ) - break; - crt.vertical_sync_pos = data; - logerror("6545 vertical sync pos %d\n", data); - m6545_offset_xy(); - break; - case 8: - crt.crt_mode = data; - - { - logerror("6545 mode_w $%02X\n", data); - logerror(" interlace %d\n", data & 3); - logerror(" addr mode %d\n", (data >> 2) & 1); - logerror(" refresh RAM %s\n", ((data >> 3) & 1) ? "transparent" : "shared"); - logerror(" disp enb, skew %d\n", (data >> 4) & 3); - logerror(" pin 34 %s\n", ((data >> 6) & 1) ? "update strobe" : "RA4"); - logerror(" update read mode %s\n", ((data >> 7) & 1) ? "interleaved" : "during h/v-blank"); - } - break; - case 9: - data &= 15; - if( crt.scan_lines == data ) - break; - crt.scan_lines = data; - logerror("6545 scanlines %d\n", data); - m6545_offset_xy(); - break; - case 10: - if( crt.cursor_top == data ) - break; - crt.cursor_top = data; - logerror("6545 cursor top %d/$%02X\n", data & 31, data); - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - case 11: - if( crt.cursor_bottom == data ) - break; - crt.cursor_bottom = data; - logerror("6545 cursor bottom %d/$%02X\n", data & 31, data); - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - break; - case 12: - data &= 63; - if( crt.screen_address_hi == data ) - break; - update_all = 1; - crt.screen_address_hi = data; - logerror("6545 screen address hi $%02X\n", data); - break; - case 13: - if( crt.screen_address_lo == data ) - break; - update_all = 1; - crt.screen_address_lo = data; - logerror("6545 screen address lo $%02X\n", data); - break; - case 14: - data &= 63; - if( crt.cursor_address_hi == data ) - break; - crt.cursor_address_hi = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - logerror("6545 cursor address hi $%02X\n", data); - break; - case 15: - if( crt.cursor_address_lo == data ) - break; - crt.cursor_address_lo = data; - addr = 256 * crt.cursor_address_hi + crt.cursor_address_lo; - dirtybuffer[addr] = 1; - logerror("6545 cursor address lo $%02X\n", data); - break; - case 16: - /* lpen hi is read only */ - break; - case 17: - /* lpen lo is read only */ - break; - case 18: - data &= 63; - if( crt.transp_hi == data ) - break; - crt.transp_hi = data; - logerror("6545 transp_hi_w $%02X\n", data); - break; - case 19: - if( crt.transp_lo == data ) - break; - crt.transp_lo = data; - logerror("6545 transp_lo_w $%02X\n", data); - break; - case 31: - /* shared memory latch */ - addr = crt.transp_hi * 256 + crt.transp_lo; - logerror("6545 transp_latch $%04X\n", addr); - m6545_update_strobe(addr); - break; - default: - logerror("6545 write unmapped port $%X <- $%02X\n", crt.idx, data); - } -} - -VIDEO_START( mbee ) -{ - if( video_start_generic(machine) ) - return 1; - videoram = auto_malloc(0x800); - colorram = auto_malloc(0x800); - memset(dirtybuffer, 1, videoram_size); - - return 0; -} - -VIDEO_UPDATE( mbee ) -{ - int offs, cursor, screen_; - int full_refresh = 1; - - if( mbee_frame_counter > 0 ) - { - if( --mbee_frame_counter == 0 ) - full_refresh = 1; - else - { - popmessage("%s", mbee_frame_message); - } - } - - if( full_refresh ) - { - memset(dirtybuffer, 1, videoram_size); - } - - for( offs = 0x000; offs < 0x380; offs += 0x10 ) - keyboard_matrix_r(offs); - - framecnt++; - - cursor = crt.cursor_address_hi * 256 + crt.cursor_address_lo; - screen_ = crt.screen_address_hi * 256 + crt.screen_address_lo; - for( offs = screen_; offs < crt.horizontal_displayed * crt.vertical_displayed + screen_; offs++ ) - { - if( dirtybuffer[offs] ) - { - int sx, sy, code, color; - sy = off_y + ((offs - screen_) / crt.horizontal_displayed) * (crt.scan_lines + 1); - sx = (off_x + ((offs - screen_) % crt.horizontal_displayed)) * 8; - code = videoram[offs]; - color = colorram[offs]; - drawgfx( bitmap,Machine->gfx[0],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - if( offs == cursor && (crt.cursor_top & 0x60) != 0x20 ) - { - if( (crt.cursor_top & 0x60) == 0x60 || (framecnt & 16) == 0 ) - { - int x, y; - for( y = (crt.cursor_top & 31); y <= (crt.cursor_bottom & 31); y++ ) - { - if( y > crt.scan_lines ) - break; - for( x = 0; x < 8; x++ ) - plot_pixel(bitmap,sx+x,sy+y, Machine->pens[color]); - } - dirtybuffer[offs] = 1; - } - } - } - } - return 0; -} - - - diff --git a/mess/vidhrdw/mekd2.c b/mess/vidhrdw/mekd2.c deleted file mode 100644 index 15d147c01..000000000 --- a/mess/vidhrdw/mekd2.c +++ /dev/null @@ -1,121 +0,0 @@ -/****************************************************************************** - Motorola Evaluation Kit 6800 D2 - MEK6800D2 - - video driver - - Juergen Buchmueller , Jan 2000 - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" - -#include "includes/mekd2.h" - -#ifndef VERBOSE -#define VERBOSE 1 -#endif - -#if VERBOSE -#define LOG(x) logerror(x) -#else -#define LOG(x) /* x */ -#endif - -PALETTE_INIT( mekd2 ) -{ - int i; - - /* initialize 16 colors with shades of red (orange) */ - for (i = 0; i < 16; i++) - { - palette_set_color(machine, i, - 24 + (i + 1) * (i + 1) - 1, - (i + 1) * (i + 1) / 4, - 0); - - colortable[2 * i + 0] = 1; - colortable[2 * i + 1] = i; - } - - palette_set_color(machine, 16, 0, 0, 0); - palette_set_color(machine, 17, 30, 30, 30); - palette_set_color(machine, 18, 90, 90, 90); - palette_set_color(machine, 19, 50, 50, 50); - palette_set_color(machine, 20, 255, 255, 255); - - colortable[2 * 16 + 0 * 4 + 0] = 17; - colortable[2 * 16 + 0 * 4 + 1] = 18; - colortable[2 * 16 + 0 * 4 + 2] = 19; - colortable[2 * 16 + 0 * 4 + 3] = 20; - - colortable[2 * 16 + 1 * 4 + 0] = 17; - colortable[2 * 16 + 1 * 4 + 1] = 17; - colortable[2 * 16 + 1 * 4 + 2] = 19; - colortable[2 * 16 + 1 * 4 + 3] = 15; -} - -VIDEO_START( mekd2 ) -{ - videoram_size = 6 * 2 + 24; - videoram = (UINT8*)auto_malloc (videoram_size); - -#if 0 - { - char backdrop_name[200]; - /* try to load a backdrop for the machine */ - sprintf(backdrop_name, "%s.png", Machine->gamedrv->name); - backdrop_load(backdrop_name, 2); - } -#endif - - return video_start_generic(machine); -} - -VIDEO_UPDATE( mekd2 ) -{ - int x, y; - - for (x = 0; x < 6; x++) - { - int sy = 408; - int sx = Machine->screen[0].width - 212 + x * 30 + ((x >= 4) ? 6 : 0); - - drawgfx (bitmap, Machine->gfx[0], - videoram[2 * x + 0], videoram[2 * x + 1], - 0, 0, sx, sy, NULL, TRANSPARENCY_PEN, 0); - } - - for (y = 0; y < 6; y++) - { - int sy = 516 + y * 36; - - for (x = 0; x < 4; x++) - { - static int layout[6][4] = - { - {22, 19, 21, 23}, - {16, 17, 20, 18}, - {12, 13, 14, 15}, - { 8, 9, 10, 11}, - { 4, 5, 6, 7}, - { 0, 1, 2, 3} - }; - int sx = Machine->screen[0].width - 182 + x * 37; - int color, code = layout[y][x]; - - color = (readinputport (code / 7) & (0x40 >> (code % 7))) ? 0 : 1; - - videoram[6 * 2 + code] = color; - drawgfx (bitmap, Machine->gfx[1], - layout[y][x], color, - 0, 0, sx, sy, NULL, - TRANSPARENCY_NONE, 0); - } - } - - return 0; -} - - diff --git a/mess/vidhrdw/nascom1.c b/mess/vidhrdw/nascom1.c deleted file mode 100644 index 4d4fc988b..000000000 --- a/mess/vidhrdw/nascom1.c +++ /dev/null @@ -1,58 +0,0 @@ -/*************************************************************************** - - nascom1.c - - Functions to emulate the video hardware of the nascom1. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/nascom1.h" - -VIDEO_UPDATE( nascom1 ) -{ - int sy, sx; - - for (sx = 0; sx < 48; sx++) - { - drawgfx (bitmap, Machine->gfx[0], videoram[0x03ca + sx], - 1, 0, 0, sx * 8, 0, &Machine->screen[0].visarea, - TRANSPARENCY_NONE, 0); - } - - for (sy = 0; sy < 15; sy++) - { - for (sx = 0; sx < 48; sx++) - { - drawgfx (bitmap, Machine->gfx[0], videoram[0x000a + (sy * 64) + sx], - 1, 0, 0, sx * 8, (sy + 1) * 16, &Machine->screen[0].visarea, - TRANSPARENCY_NONE, 0); - } - } - return 0; -} - -VIDEO_UPDATE( nascom2 ) -{ - int sy, sx; - - for (sx = 0; sx < 48; sx++) - { - drawgfx (bitmap, Machine->gfx[0], videoram[0x03ca + sx], - 1, 0, 0, sx * 8, 0, &Machine->screen[0].visarea, - TRANSPARENCY_NONE, 0); - } - - for (sy = 0; sy < 15; sy++) - { - for (sx = 0; sx < 48; sx++) - { - drawgfx (bitmap, Machine->gfx[0], videoram[0x000a + (sy * 64) + sx], - 1, 0, 0, sx * 8, (sy + 1) * 14, &Machine->screen[0].visarea, - TRANSPARENCY_NONE, 0); - } - } - return 0; -} - diff --git a/mess/vidhrdw/nes.c b/mess/vidhrdw/nes.c deleted file mode 100644 index f9c5ee27f..000000000 --- a/mess/vidhrdw/nes.c +++ /dev/null @@ -1,164 +0,0 @@ -/*************************************************************************** - - vidhrdw/nes.c - - Routines to control the unique NES video hardware/PPU. - -***************************************************************************/ - -#include - -#include "driver.h" -#include "vidhrdw/ppu2c0x.h" -#include "vidhrdw/generic.h" -#include "includes/nes.h" -#include "machine/nes_mmc.h" - -mame_bitmap *nes_zapper_hack; -int nes_vram_sprite[8]; /* Used only by mmc5 for now */ - -static void ppu_nmi(int num, int *ppu_regs) -{ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static void nes_vh_reset(running_machine *machine) -{ - ppu2c0x_reset( 0, 1 ); -} - - - -static void nes_vh_start(ppu_t ppu_type, double scanlines_per_frame) -{ - ppu2c0x_interface ppu_interface; - - nes_zapper_hack = NULL; - - memset(&ppu_interface, 0, sizeof(ppu_interface)); - ppu_interface.type = ppu_type; - ppu_interface.num = 1; - ppu_interface.vrom_region[0] = nes.chr_chunks ? REGION_GFX1 : REGION_INVALID; - ppu_interface.mirroring[0] = PPU_MIRROR_NONE; - ppu_interface.nmi_handler[0] = ppu_nmi; - - ppu2c0x_init(&ppu_interface); - ppu2c0x_set_vidaccess_callback(0, nes_ppu_vidaccess); - ppu2c0x_set_scanlines_per_frame(0, ceil(scanlines_per_frame)); - - if (nes.four_screen_vram) - { - ppu2c0x_set_mirroring(0, PPU_MIRROR_4SCREEN); - } - else - { - switch(nes.hard_mirroring) - { - case 0: - ppu2c0x_set_mirroring(0, PPU_MIRROR_HORZ); - break; - case 1: - ppu2c0x_set_mirroring(0, PPU_MIRROR_VERT); - break; - } - } - - add_reset_callback(Machine, nes_vh_reset); - - /* Reset the mapper variables. Will also mark the char-gen ram as dirty */ - mapper_reset(nes.mapper); -} - - - -VIDEO_START( nes_ntsc ) -{ - nes_vh_start(PPU_2C02, PPU_NTSC_SCANLINES_PER_FRAME); - return 0; -} - -VIDEO_START( nes_pal ) -{ - nes_vh_start(PPU_2C07, PPU_PAL_SCANLINES_PER_FRAME); - return 0; -} - -PALETTE_INIT( nes ) -{ - ppu2c0x_init_palette(0); -} - -static void draw_sight(mame_bitmap *bitmap, int playerNum, int x_center, int y_center) -{ - int x,y; - UINT16 color; - - if (playerNum == 2) - color = Machine->pens[0]; /* grey */ - else - color = Machine->pens[0x30]; /* white */ - - if (x_center<2) x_center=2; - if (x_center>253) x_center=253; - - if (y_center<2) y_center=2; - if (y_center>253) y_center=253; - - for(y = y_center-5; y < y_center+6; y++) - if((y >= 0) && (y < 256)) - plot_pixel (bitmap, x_center, y, color); - - for(x = x_center-5; x < x_center+6; x++) - if((x >= 0) && (x < 256)) - plot_pixel (bitmap, x, y_center, color); -} - -/*************************************************************************** - - Display refresh - -***************************************************************************/ -VIDEO_UPDATE( nes ) -{ - int sights = 0; - - nes_zapper_hack = bitmap; - - /* render the ppu */ - ppu2c0x_render( 0, bitmap, 0, 0, 0, 0 ); - - /* figure out what sights to draw, and draw them */ - if ((readinputport(PORT_CONFIG1) & 0x000f) == 0x0002) - sights |= 0x0001; - if ((readinputport(PORT_CONFIG1) & 0x000f) == 0x0003) - sights |= 0x0002; - if ((readinputport(PORT_CONFIG1) & 0x00f0) == 0x0020) - sights |= 0x0001; - if ((readinputport(PORT_CONFIG1) & 0x00f0) == 0x0030) - sights |= 0x0002; - if (sights & 0x0001) - draw_sight(bitmap, 1, readinputport(PORT_ZAPPER0_X), readinputport(PORT_ZAPPER0_Y)); - if (sights & 0x0002) - draw_sight(bitmap, 2, readinputport(PORT_ZAPPER1_X), readinputport(PORT_ZAPPER1_Y)); - - /* if this is a disk system game, check for the flip-disk key */ - if (nes.mapper == 20) - { - if (readinputport(PORT_FLIPKEY) & 0x01) - { - nes_fds.current_side++; - if (nes_fds.current_side > nes_fds.sides) - nes_fds.current_side = 0; - - if (nes_fds.current_side == 0) - { - popmessage("No disk inserted."); - } - else - { - popmessage("Disk set to side %d", nes_fds.current_side); - } - } - } - return 0; -} diff --git a/mess/vidhrdw/odyssey2.c b/mess/vidhrdw/odyssey2.c deleted file mode 100644 index 8c0f7de5d..000000000 --- a/mess/vidhrdw/odyssey2.c +++ /dev/null @@ -1,464 +0,0 @@ -/*************************************************************************** - - vidhrdw/odyssey2.c - -***************************************************************************/ - -#include -#include "driver.h" -#include "cpu/i8039/i8039.h" -#include "vidhrdw/generic.h" -#include "includes/odyssey2.h" - - -/* character sprite colors - dark grey, red, green, orange, blue, violet, light grey, white - dark back / grid colors - black, dark blue, dark green, light green, red, violet, orange, light grey - light back / grid colors - black, blue, green, light green, red, violet, orange, light grey */ - -UINT8 odyssey2_colors[] = -{ - /* Background,Grid Dim */ - 0x00,0x00,0x00, - 0x00,0x00,0xFF, /* Blue */ - 0x00,0x80,0x00, /* DK Green */ - 0xff,0x9b,0x60, - 0xCC,0x00,0x00, /* Red */ - 0xa9,0x80,0xff, - 0x82,0xfd,0xdb, - 0xFF,0xFF,0xFF, - - /* Background,Grid Bright */ - - 0x80,0x80,0x80, - 0x50,0xAE,0xFF, /* Blue */ - 0x00,0xFF,0x00, /* Dk Green */ - 0x82,0xfb,0xdb, /* Lt Grey */ - 0xEC,0x02,0x60, /* Red */ - 0xa9,0x80,0xff, /* Violet */ - 0xff,0x9b,0x60, /* Orange */ - 0xFF,0xFF,0xFF, - - /* Character,Sprite colors */ - 0x71,0x71,0x71, /* Dark Grey */ - 0xFF,0x80,0x80, /* Red */ - 0x00,0xC0,0x00, /* Green */ - 0xff,0x9b,0x60, /* Orange */ - 0x50,0xAE,0xFF, /* Blue */ - 0xa9,0x80,0xff, /* Violet */ - 0x82,0xfb,0xdb, /* Lt Grey */ - 0xff,0xff,0xff /* White */ -}; - -UINT8 o2_shape[0x40][8]={ - { 0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 }, // 0 - { 0x18,0x38,0x18,0x18,0x18,0x18,0x3C,0x00 }, - { 0x3C,0x66,0x0C,0x18,0x30,0x60,0x7E,0x00 }, - { 0x7C,0xC6,0x06,0x3C,0x06,0xC6,0x7C,0x00 }, - { 0xCC,0xCC,0xCC,0xFE,0x0C,0x0C,0x0C,0x00 }, - { 0xFE,0xC0,0xC0,0x7C,0x06,0xC6,0x7C,0x00 }, - { 0x7C,0xC6,0xC0,0xFC,0xC6,0xC6,0x7C,0x00 }, - { 0xFE,0x06,0x0C,0x18,0x30,0x60,0xC0,0x00 }, - { 0x7C,0xC6,0xC6,0x7C,0xC6,0xC6,0x7C,0x00 }, - { 0x7C,0xC6,0xC6,0x7E,0x06,0xC6,0x7C,0x00 }, - { 0x00,0x18,0x18,0x00,0x18,0x18,0x00,0x00 }, - { 0x18,0x7E,0x58,0x7E,0x58,0x7E,0x18,0x00 }, - { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, - { 0x3C,0x66,0x0C,0x18,0x18,0x00,0x18,0x00 }, - { 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFE,0x00 }, - { 0xFC,0xC6,0xC6,0xFC,0xC0,0xC0,0xC0,0x00 }, - { 0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00 }, - { 0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00 }, - { 0xFE,0xC0,0xC0,0xF8,0xC0,0xC0,0xFE,0x00 }, - { 0xFC,0xC6,0xC6,0xFC,0xD8,0xCC,0xC6,0x00 }, - { 0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00 }, - { 0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 }, - { 0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00 }, - { 0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 }, - { 0x7C,0xC6,0xC6,0xC6,0xDE,0xCC,0x76,0x00 }, - { 0x7C,0xC6,0xC0,0x7C,0x06,0xC6,0x7C,0x00 }, - { 0xFC,0xC6,0xC6,0xC6,0xC6,0xC6,0xFC,0x00 }, - { 0xFE,0xC0,0xC0,0xF8,0xC0,0xC0,0xC0,0x00 }, - { 0x7C,0xC6,0xC0,0xC0,0xCE,0xC6,0x7E,0x00 }, - { 0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00 }, - { 0x06,0x06,0x06,0x06,0x06,0xC6,0x7C,0x00 }, - { 0xC6,0xCC,0xD8,0xF0,0xD8,0xCC,0xC6,0x00 }, - { 0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0x00 }, - { 0x7E,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00 }, - { 0xC6,0xC6,0x6C,0x38,0x6C,0xC6,0xC6,0x00 }, - { 0x7C,0xC6,0xC0,0xC0,0xC0,0xC6,0x7C,0x00 }, - { 0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x00 }, - { 0xFC,0xC6,0xC6,0xFC,0xC6,0xC6,0xFC,0x00 }, - { 0xC6,0xEE,0xFE,0xD6,0xC6,0xC6,0xC6,0x00 }, - { 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00 }, - { 0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00 }, - { 0x00,0x66,0x3C,0x18,0x3C,0x66,0x00,0x00 }, - { 0x00,0x18,0x00,0x7E,0x00,0x18,0x00,0x00 }, - { 0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00 }, - { 0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00 }, - { 0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0x00 }, - { 0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x00 }, - { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00 }, - { 0xCE,0xDB,0xDB,0xDB,0xDB,0xDB,0xCE,0x00 }, - { 0x00,0x00,0x3C,0x7E,0x7E,0x7E,0x3C,0x00 }, - { 0x1C,0x1C,0x18,0x1E,0x18,0x18,0x1C,0x00 }, - { 0x1C,0x1C,0x18,0x1E,0x18,0x34,0x26,0x00 }, - { 0x38,0x38,0x18,0x78,0x18,0x2C,0x64,0x00 }, - { 0x38,0x38,0x18,0x78,0x18,0x18,0x38,0x00 }, - { 0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00 }, - { 0x18,0x3C,0x7E,0xFF,0xFF,0x18,0x18,0x00 }, - { 0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0x00 }, - { 0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,0x00 }, - { 0x38,0x38,0x12,0xFE,0xB8,0x28,0x6C,0x00 }, - { 0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x00 }, - { 0x00,0x00,0x0C,0x08,0x08,0x7F,0x3E,0x00 }, - { 0x00,0x03,0x63,0xFF,0xFF,0x18,0x08,0x00 }, - { 0x00,0x00,0x00,0x10,0x38,0xFF,0x7E,0x00 } -}; - - -static UINT8 *odyssey2_display; -int odyssey2_vh_hpos; - -union { - UINT8 reg[0x100]; - struct { - struct { - UINT8 y,x,color,res; - } sprites[4]; - struct { - UINT8 y,x,ptr,color; - } foreground[12]; - struct { - struct { - UINT8 y,x,ptr,color; - } single[4]; - } quad[4]; - UINT8 shape[4][8]; - UINT8 control; - UINT8 status; - UINT8 collision; - UINT8 color; - UINT8 y; - UINT8 x; - UINT8 res; - UINT8 shift1,shift2,shift3; - UINT8 sound; - UINT8 res2[5+0x10]; - UINT8 hgrid[2][0x10]; - UINT8 vgrid[0x10]; - } s; -} o2_vdc= { { 0 } }; - -static UINT8 collision; -static int line; -static double line_time; -static UINT32 o2_snd_shift[2]; - -/*************************************************************************** - - Start the video hardware emulation. - -***************************************************************************/ -VIDEO_START( odyssey2 ) -{ - o2_snd_shift[0] = Machine->sample_rate / 983; - o2_snd_shift[1] = Machine->sample_rate / 3933; - - odyssey2_vh_hpos = 0; - odyssey2_display = (UINT8 *) auto_malloc(8 * 8 * 256); - memset(odyssey2_display, 0, 8 * 8 * 256); - return 0; -} - -/*************************************************************************** - - Stop the video hardware emulation. - -***************************************************************************/ - -PALETTE_INIT( odyssey2 ) -{ - palette_set_colors(machine, 0, odyssey2_colors, sizeof(odyssey2_colors) / 3); - colortable[0] = 0; - colortable[1] = 1; -} - -extern READ8_HANDLER ( odyssey2_video_r ) -{ - UINT8 data=0; - int h; - switch (offset) { - case 0xa1: - h=(int)((timer_get_time()-line_time)*Machine->drv->cpu[0].cpu_clock); - if (h>15) data|=1; - if ((line>240)&&(line<260)) data|=8; - break; - case 0xa2: data=collision;break; - case 0xa4: data=line;break; - case 0xa5: - data=(int)((timer_get_time()-line_time)*Machine->drv->cpu[0].cpu_clock)*8; - break; - default: - data=o2_vdc.reg[offset]; - } - return data; -} - -extern WRITE8_HANDLER ( odyssey2_video_w ) -{ - /* Update the sound */ - if( offset >= 0xa7 && offset <= 0xaa ) - stream_update( odyssey2_sh_channel ); - - o2_vdc.reg[offset]=data; -} - -extern READ8_HANDLER ( odyssey2_t1_r ) -{ - static int t=FALSE; - t=!t; - return t; -} - -INTERRUPT_GEN( odyssey2_line ) -{ - line_time = timer_get_time(); - line = (line + 1) % 262; - - switch (line) { - case 252: - cpunum_set_input_line(0, 0, ASSERT_LINE); /* vsync?? */ - break; - case 253: - cpunum_set_input_line(0, 0, CLEAR_LINE); /* vsync?? */ - break; - } -} - -INLINE void odyssey2_draw_box(UINT8 bg[][320], int x, int y, int width, int height, UINT8 color) -{ - int x1,y1; - for (y1 = 0; y1 < height; y1++) - { - for (x1 = 0; x1 < width; x1++) - bg[y+y1][x+x1] |= color; - } -} - -INLINE void odyssey2_draw(UINT8 bg[][320], UINT8 code, int x, int y, int scale_x, int scale_y, UINT8 color) -{ - int m,x1,y1; - for (m=0x80; m>0; m>>=1, x+=scale_x) - { - if (code & m) - { - for (y1=0; y1>1))&0x1ff; - Machine->gfx[0]->colortable[1]=Machine->pens[16+((color&0xe)>>1)]; - - // don't ask me about the technical background, but also this height thingy is needed - // invaders aliens (!) and shoot (-) - n = 8-(ptr&7)-((y>>1)&7); - if (n<3) n+=7; - for (i=0; i=bitmap->height) break; - odyssey2_draw(bg, ((char*)o2_shape)[offset], x, y+i*2, 1, 2, 0x80); - drawgfxzoom(bitmap, Machine->gfx[0], ((char*)o2_shape)[offset],0, - 0,0,x,y+i*2, - 0, TRANSPARENCY_PEN,0, 0x10000, 0x20000); - offset=(offset+1)&0x1ff; - } -} - -/*************************************************************************** - - Refresh the video screen - -***************************************************************************/ - -VIDEO_UPDATE( odyssey2 ) -{ - int i, j, x, y; - int color; - UINT8 bg[300][320]= { { 0 } }; - - assert(bitmap->width<=ARRAY_LENGTH(bg[0]) - && bitmap->height<=ARRAY_LENGTH(bg)); - - plot_box(bitmap, 0, 0, bitmap->width, bitmap->height, Machine->pens[(o2_vdc.s.color>>3)&0x7]); - if (o2_vdc.s.control & 8) - { - // grid 8 points right compared to characters, sprites -#define WIDTH 16 -#define HEIGHT 24 - int w=2; - color=o2_vdc.s.color&7; - color|=(o2_vdc.s.color>>3)&8; - for (i=0, x=0; x<9; x++, i++) { - for (j=1, y=0; y<9; y++, j<<=1) { - if ( ((j<=0x80)&&(o2_vdc.s.hgrid[0][i]&j)) - ||((j>0x80)&&(o2_vdc.s.hgrid[1][i]&1)) ) - { - odyssey2_draw_box(bg,8+x*WIDTH,24+y*HEIGHT, WIDTH,3, 0x20); - plot_box(bitmap,8+x*WIDTH,24+y*HEIGHT,WIDTH,3,Machine->pens[color]); - } - } - } - if (o2_vdc.s.control&0x80) w=WIDTH; - for (i=0, x=0; x<10; x++, i++) { - for (j=1, y=0; y<8; y++, j<<=1) - { - if (o2_vdc.s.vgrid[i]&j) { - odyssey2_draw_box(bg,8+x*WIDTH,24+y*HEIGHT,w,HEIGHT, 0x10); - plot_box(bitmap,8+x*WIDTH,24+y*HEIGHT,w,HEIGHT,Machine->pens[color]); - } - } - } - } - if (o2_vdc.s.control&0x20) - { - for (i=0; igfx[0]->colortable[1]=Machine->pens[16+((o2_vdc.s.sprites[i].color>>3)&7)]; - y=o2_vdc.s.sprites[i].y; - x=o2_vdc.s.sprites[i].x; - for (j=0; j<8; j++) - { - if (o2_vdc.s.sprites[i].color&4) - { - if (y+4*j>=bitmap->height) break; - odyssey2_draw_sprite(bg, o2_vdc.s.shape[i][j], x, y+j*4, 2, 4, 1<gfx[1], o2_vdc.s.shape[i][j],0, - 0,0,x,y+j*4, - 0, TRANSPARENCY_PEN,0,0x20000, 0x40000); - } - else - { - if (y+j*2>=bitmap->height) break; - odyssey2_draw_sprite(bg, o2_vdc.s.shape[i][j], x, y+j*2, 1, 2, 1<gfx[1], o2_vdc.s.shape[i][j],0, - 0,0,x,y+j*2, - 0, TRANSPARENCY_PEN,0, 0x10000, 0x20000); - } - } - } - } - collision=0; -// for (y=0; yheight; y++) { -// for (x=0; xwidth; x++) { - for (y=0; y<300; y++) - { - for (x=0; x<320; x++) - { - switch (bg[y][x]) { - case 0: case 1: case 2: case 4: case 8: - case 0x10: case 0x20: case 0x80: - break; - - default: - if (bg[y][x]&o2_vdc.s.collision) - { - collision|=bg[y][x]&(~o2_vdc.s.collision); - } - break; - } - } - } - return 0; -} - -void odyssey2_sh_update( void *param,stream_sample_t **inputs, stream_sample_t **_buffer,int length ) -{ - static UINT32 signal; - static UINT16 count = 0; - int ii; - int period; - stream_sample_t *buffer = _buffer[0]; - - /* Generate the signal */ - signal = o2_vdc.s.shift3 | (o2_vdc.s.shift2 << 8) | (o2_vdc.s.shift1 << 16); - - if( o2_vdc.s.sound & 0x80 ) /* Sound is enabled */ - { - for( ii = 0; ii < length; ii++, buffer++ ) - { - *buffer = 0; - *buffer = signal & 0x1; - period = (o2_vdc.s.sound & 0x20) ? 11 : 44; - if( ++count >= period ) - { - count = 0; - signal >>= 1; - /* Loop sound */ - if( o2_vdc.s.sound & 0x40 ) - { - signal |= *buffer << 23; - } - } - - /* Throw an interrupt if enabled */ - if( o2_vdc.s.control & 0x4 ) - { - cpunum_set_input_line(0, 1, HOLD_LINE); /* Is this right? */ - } - - /* Adjust volume */ - *buffer *= o2_vdc.s.sound & 0xf; - /* Pump the volume up */ - *buffer <<= 10; - } - } - else - { - /* Sound disabled, so clear the buffer */ - for( ii = 0; ii < length; ii++, buffer++ ) - *buffer = 0; - } -} diff --git a/mess/vidhrdw/oric.c b/mess/vidhrdw/oric.c deleted file mode 100644 index f52f323fc..000000000 --- a/mess/vidhrdw/oric.c +++ /dev/null @@ -1,385 +0,0 @@ -/*************************************************************************** - - vidhrdw/oric.c - - All graphic effects are supported including mid-line changes. - There may be some small bugs. - - TODO: - - speed up this code a bit? - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/oric.h" - -static void oric_vh_update_flash(void); -static void oric_vh_update_attribute(int c); -static void oric_refresh_charset(void); - -/* current state of the display */ -/* some attributes persist until they are turned off. -This structure holds this persistant information */ -struct oric_vh_state -{ - /* foreground and background colour used for rendering */ - /* if flash attribute is set, these two will both be equal - to background colour */ - int active_foreground_colour; - int active_background_colour; - /* current foreground and background colour */ - int foreground_colour; - int background_colour; - int mode; - /* text attributes */ - int text_attributes; - - unsigned long read_addr; - - /* current addr to fetch data */ - unsigned char *char_data; - /* base of char data */ - unsigned char *char_base; - - /* if (1<<3), display graphics, if 0, hide graphics */ - int flash_state; - /* current count */ - int flash_count; -}; - - -static struct oric_vh_state vh_state; - -static void oric_vh_timer_callback(int reg) -{ - /* update flash count */ - vh_state.flash_count++; - if (vh_state.flash_count == 30) - { - vh_state.flash_count = 0; - vh_state.flash_state ^=(1<<3); - oric_vh_update_flash(); - } -} - -VIDEO_START( oric ) -{ - /* initialise flash timer */ - vh_state.flash_count = 0; - vh_state.flash_state = 0; - timer_pulse(TIME_IN_HZ(50), 0, oric_vh_timer_callback); - /* mode */ - oric_vh_update_attribute((1<<3)|(1<<4)); - return 0; -} - - -static void oric_vh_update_flash(void) -{ - /* flash active? */ - if (vh_state.text_attributes & (1<<2)) - { - /* yes */ - - /* show or hide text? */ - if (vh_state.flash_state) - { - /* hide */ - /* set foreground and background to be the same */ - vh_state.active_foreground_colour = vh_state.background_colour; - vh_state.active_background_colour = vh_state.background_colour; - return; - } - } - - - /* show */ - vh_state.active_foreground_colour = vh_state.foreground_colour; - vh_state.active_background_colour = vh_state.background_colour; -} - -/* the alternate charset follows from the standard charset. -Each charset holds 128 chars with 8 bytes for each char. - -The start address for the standard charset is dependant on the video mode */ -static void oric_refresh_charset(void) -{ - /* alternate char set? */ - if ((vh_state.text_attributes & (1<<0))==0) - { - /* no */ - vh_state.char_data = vh_state.char_base; - } - else - { - /* yes */ - vh_state.char_data = vh_state.char_base + (128*8); - } -} - -/* update video hardware state depending on the new attribute */ -static void oric_vh_update_attribute(int c) -{ - /* attribute */ - int attribute = c & 0x03f; - - switch ((attribute>>3) & 0x03) - { - case 0: - { - /* set foreground colour */ - vh_state.foreground_colour = attribute & 0x07; - oric_vh_update_flash(); - } - break; - - case 1: - { - vh_state.text_attributes = attribute & 0x07; - - oric_refresh_charset(); - - /* text attributes */ - oric_vh_update_flash(); - } - break; - - case 2: - { - /* set background colour */ - vh_state.background_colour = attribute & 0x07; - oric_vh_update_flash(); - } - break; - - case 3: - { - /* set video mode */ - vh_state.mode = attribute & 0x07; - - /* a different charset base is used depending on the video mode */ - /* hires takes all the data from 0x0a000 through to about 0x0bf68, - so the charset is moved to 0x09800 */ - /* text mode starts at 0x0bb80 and so the charset is in a different location */ - if (vh_state.mode & (1<<2)) - { - /* set screen memory base and standard charset location for this mode */ - vh_state.read_addr = 0x0a000; - if (oric_ram) - vh_state.char_base = oric_ram + (unsigned long)0x09800; - else - vh_state.char_base = memory_get_read_ptr(0, ADDRESS_SPACE_PROGRAM, 0x09800); - - /* changing the mode also changes the position of the standard charset - and alternative charset */ - oric_refresh_charset(); - } - else - { - /* set screen memory base and standard charset location for this mode */ - vh_state.read_addr = 0x0bb80; - if (oric_ram) - vh_state.char_base = oric_ram + (unsigned long)0x0b400; - else - vh_state.char_base = memory_get_read_ptr(0, ADDRESS_SPACE_PROGRAM, 0x0b400); - - /* changing the mode also changes the position of the standard charset - and alternative charset */ - oric_refresh_charset(); - } - } - break; - - default: - break; - } -} - - -/* render 6-pixels using foreground and background colours specified */ -/* used in hires and text mode */ -static void oric_vh_render_6pixels(mame_bitmap *bitmap,int x,int y, int fg, int bg,int data, int invert_flag) -{ - int i; - int pens[2]; - int px; - - /* invert? */ - if (invert_flag) - { - fg ^=0x07; - bg ^=0x07; - } - - pens[1] = Machine->pens[fg]; - pens[0] = Machine->pens[bg]; - - px = x; - for (i=0; i<6; i++) - { - int col; - - col = pens[(data>>5) & 0x01]; - plot_pixel(bitmap,px, y, col); - px++; - data = data<<1; - } -} - - - - - -/*************************************************************************** - oric_vh_screenrefresh -***************************************************************************/ -VIDEO_UPDATE( oric ) -{ - unsigned char *RAM; - int byte_offset; - int y; - unsigned long read_addr_base; - int hires_active; - - RAM = oric_ram; - - /* set initial base */ - read_addr_base = vh_state.read_addr; - - /* is hires active? */ - if (vh_state.mode & (1<<2)) - { - hires_active = 1; - } - else - { - hires_active = 0; - } - - - for (y = 0; y < 224; y++) - { - int x = 0; - - /* foreground colour white */ - oric_vh_update_attribute(7); - /* background colour black */ - oric_vh_update_attribute((1<<3)); - - oric_vh_update_attribute((1<<4)); - - for (byte_offset=0; byte_offset<40; byte_offset++) - { - int c; - unsigned long read_addr; - - /* after line 200 all rendering is done in text mode */ - if (y<200) - { - /* calculate fetch address based on current line and - current mode */ - if (hires_active) - { - read_addr = (unsigned long)read_addr_base + (unsigned long)byte_offset + (unsigned long)(y*40); - } - else - { - int char_line; - - char_line = (y>>3); - read_addr = (unsigned long)read_addr_base + (unsigned long)byte_offset + (unsigned long)(char_line*40); - } - } - else - { - int char_line; - - char_line = ((y-200)>>3); - read_addr = (unsigned long)read_addr_base + (unsigned long)byte_offset + (unsigned long)(char_line*40); - } - - /* fetch data */ - c = RAM ? RAM[read_addr] : program_read_byte_8(read_addr); - - /* if bits 6 and 5 are zero, the byte contains a serial attribute */ - if ((c & ((1<<6) | (1<<5)))==0) - { - oric_vh_update_attribute(c); - - /* display background colour when attribute has been found */ - oric_vh_render_6pixels(bitmap,x,y,vh_state.active_foreground_colour, vh_state.active_background_colour, 0,(c & 0x080)); - - if (y<200) - { - /* is hires active? */ - if (vh_state.mode & (1<<2)) - { - hires_active = 1; - } - else - { - hires_active = 0; - } - - read_addr_base = vh_state.read_addr; - } - } - else - { - /* hires? */ - if (hires_active) - { - int pixel_data = c & 0x03f; - /* plot hires pixels */ - oric_vh_render_6pixels(bitmap,x,y,vh_state.active_foreground_colour, vh_state.active_background_colour, pixel_data,(c & 0x080)); - } - else - { - int char_index; - int char_data; - int ch_line; - - char_index = (c & 0x07f); - - ch_line = y & 7; - - /* is double height set? */ - if (vh_state.text_attributes & (1<<1)) - { - /* if char line is even, top half of character is displayed, - if char line is odd, bottom half of character is displayed */ - int double_height_flag = ((y>>3) & 0x01); - - /* calculate line to fetch */ - ch_line = (ch_line>>1) + (double_height_flag<<2); - } - - /* fetch pixel data for this char line */ - char_data = vh_state.char_data[(char_index<<3) | ch_line] & 0x03f; - - /* draw! */ - oric_vh_render_6pixels(bitmap,x,y, - vh_state.active_foreground_colour, - vh_state.active_background_colour, char_data, (c & 0x080)); - } - - } - - x=x+6; - } - - /* after 200 lines have been drawn, force a change of the read address */ - /* there are 200 lines of hires/text mode, then 24 lines of text mode */ - /* the mode can't be changed in the last 24 lines. */ - if (y==199) - { - /* mode */ - read_addr_base = (unsigned long)0x0bf68; - hires_active = 0; - } - } - return 0; -} - - diff --git a/mess/vidhrdw/osi.c b/mess/vidhrdw/osi.c deleted file mode 100644 index 0b210ff93..000000000 --- a/mess/vidhrdw/osi.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "driver.h" -#include "vidhrdw/generic.h" - -static tilemap *bg_tilemap; - -WRITE8_HANDLER( sb2m600_videoram_w ) -{ - if (videoram[offset] != data) - { - videoram[offset] = data; - tilemap_mark_tile_dirty(bg_tilemap, offset); - } -} - -static void get_bg_tile_info(int tile_index) -{ - int code = videoram[tile_index]; - - SET_TILE_INFO(0, code, 0, 0) -} - -VIDEO_START( sb2m600 ) -{ - bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_rows, - TILEMAP_OPAQUE, 8, 8, 32, 32); - - return 0; -} - -VIDEO_START( uk101 ) -{ - bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_rows, - TILEMAP_OPAQUE, 8, 16, 32, 32); - - return 0; -} - -VIDEO_UPDATE( sb2m600 ) -{ - tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0); - return 0; -} diff --git a/mess/vidhrdw/pc8801.c b/mess/vidhrdw/pc8801.c deleted file mode 100644 index 1c85f04f1..000000000 --- a/mess/vidhrdw/pc8801.c +++ /dev/null @@ -1,920 +0,0 @@ -/*************************************************************************** - - $Id: pc8801.c,v 1.21 2006/09/15 02:51:43 npwoods Exp $ - -***************************************************************************/ - -#include "driver.h" -#include "includes/pc8801.h" - -/* NPW 23-Oct-2001 - Adding this so that it compiles */ -#define palette_transparent_pen 0 - -unsigned char *pc88sr_textRAM=NULL; -int pc8801_is_24KHz; -static unsigned char *gVRAM=NULL; -static int selected_vram; -static int crtcON,textON,text_width=40,text_height=20,text_invert,text_color; -static int text_cursor,text_cursorX,text_cursorY; -static int blink_period=24; -static int analog_palette; -static int ALU1,ALU2,ALUON; -static unsigned char ALU_save0,ALU_save1,ALU_save2; - -static int dmac_FL; -static UINT16 dmac_addr[3],dmac_size[3]; -static UINT8 dmac_flag,dmac_status; - -enum -{ - noblink_underline, - blink_underline, - noblink_block, - blink_block -} cursor_mode; - -enum -{ - parameter0, - parameter1, - parameter2, - parameter3, - parameter4, - cursorx, - cursory, - lpenx, - lpeny, - other -} crtc_state; - -typedef enum -{ - GRAPH_NO, - GRAPH_200_COL, - GRAPH_200_BW, - GRAPH_400_BW -} GMODE; - -static GMODE gmode=GRAPH_NO; -static int disp_plane[3]; - -#define TX_SEC 0x0001 -#define TX_BL 0x0002 -#define TX_REV 0x0004 -#define TX_CUR 0x0008 -#define TX_OL 0x0010 -#define TX_UL 0x0020 -#define TX_GL 0x1000 -#define TX_COL_MASK 0xe000 -#define TX_COL_SHIFT 13 -#define TX_80 0x0000 -#define TX_40L 0x0100 -#define TX_40R 0x0200 -#define TX_WID_MASK 0x0300 -#define TX_WID_SHIFT 8 - -static char *graph_dirty=NULL; -static unsigned short *attr_tmp=NULL,*attr_old=NULL,*text_old=NULL; -static mame_bitmap *wbm1,*wbm2; - -#define TRAM(x,y) (pc88sr_is_highspeed ? \ - pc88sr_textRAM[(dmac_addr[2]+(x)+(y)*120)&0xfff] : \ - pc8801_mainRAM[(dmac_addr[2]+(x)+(y)*120)&0xffff]) -#define ATTR_TMP(x,y) (attr_tmp[(x)+(y)*80]) -#define TEXT_OLD(x,y) (text_old[(x)+(y)*80]) -#define ATTR_OLD(x,y) (attr_old[(x)+(y)*80]) -#define GRP_DIRTY(x,y) (graph_dirty[(x)+(y)*80]) - -void pc8801_video_init (int hireso) -{ - wbm1 = auto_bitmap_alloc(Machine->screen[0].width, Machine->screen[0].height); - wbm2 = auto_bitmap_alloc(Machine->screen[0].width, Machine->screen[0].height); - pc8801_is_24KHz=hireso; - crtcON=0; - textON=1; - - dmac_FL=0; - dmac_addr[0]=dmac_size[0]=0; - dmac_addr[1]=dmac_size[1]=0; - dmac_addr[2]=dmac_size[2]=0; - dmac_flag=dmac_status=0; - - gVRAM = (UINT8*) auto_malloc(0xc000); - pc88sr_textRAM = (UINT8*) auto_malloc(0x1000); - attr_tmp = auto_malloc(sizeof(unsigned short)*80*25); - attr_old = auto_malloc(sizeof(unsigned short)*80*100); - text_old = auto_malloc(sizeof(unsigned short)*80*100); - graph_dirty = auto_malloc(80*100); - - if (!wbm1 || !wbm2) - { - logerror ("pc8801: out of memory!\n"); - return; - } - - memset(gVRAM,0,0xc000); - memset(pc88sr_textRAM,0,0x1000); - selected_vram=0; - ALUON=0; - analog_palette=0; -} - -static WRITE8_HANDLER(write_gvram) -{ - int x,y; - - if(gVRAM[offset]!=data) { - gVRAM[offset]=data; - switch(gmode) { - case GRAPH_200_COL: - case GRAPH_200_BW: - x=(offset&0x3fff)%80; - y=(offset&0x3fff)/80/2; - break; - case GRAPH_400_BW: - x=(offset&0x3fff)%80; - y=(offset&0x3fff)/80/4+(offset/0x4000)*50; - break; - case GRAPH_NO: - default: - return; - } - if(y<100) GRP_DIRTY(x,y)=1; - } -} - -/* NPW 8-Feb-2004 - This pseudo template stuff is an abomination. Whomever wrote this should be shot */ - -#define VVV \ - XXX(0) \ - XXX(1) \ - XXX(2) - -#define XXX(n) \ -static WRITE8_HANDLER(write_gvram##n##_bank5){write_gvram(offset+0x4000*n,data);} \ -static WRITE8_HANDLER(write_gvram##n##_bank6){write_gvram(offset+0x4000*n+0x3000,data);} - VVV -#undef XXX - -#define YYY \ - XXX(0) \ - XXX(1) \ - XXX(2) \ - XXX(3) \ - XXX(4) \ - XXX(5) \ - XXX(6) \ - XXX(7) - -#define ZZZ \ - XXX(0) \ - XXX(1) \ - XXX(2) \ - XXX(3) - -#define XXX(x) \ -static READ8_HANDLER(read_gvram_alu##x) \ -{ \ - ALU_save0 = gVRAM[offset+0x0000]; \ - ALU_save1 = gVRAM[offset+0x4000]; \ - ALU_save2 = gVRAM[offset+0x8000]; \ - return \ - (x & 1 ? gVRAM[offset+0x0000] : ~gVRAM[offset+0x0000]) & \ - (x & 2 ? gVRAM[offset+0x4000] : ~gVRAM[offset+0x4000]) & \ - (x & 4 ? gVRAM[offset+0x8000] : ~gVRAM[offset+0x8000]); \ -} \ -static READ8_HANDLER(read_gvram_alu##x##_bank5){return read_gvram_alu##x(offset);} \ -static READ8_HANDLER(read_gvram_alu##x##_bank6){return read_gvram_alu##x(offset+0x3000);} - -YYY - -#undef XXX - -static WRITE8_HANDLER(write_gvram_alu0) -{ -#define WWW(x) \ - switch(ALU1&(0x11<=0 || text_cursorX<80) && - (text_cursorY>=0 || text_cursorY<25)) { - ATTR_TMP(text_cursorX,text_cursorY)|=TX_CUR; - } - - /* display draw */ - for(y=0;y<100;y++) - { - ty=y/(100/text_height); - oy=y%(100/text_height); - for(x=0;x<80;x++) { - /* text */ - if(text_width==40) { - tx=x&(~1); - } else { - tx=x; - } - attr_new=ATTR_TMP(tx,ty); - if(oy<4) { - text_new=TRAM(tx,ty)*4+oy; - } else { - text_new=0; - } - if(attr_new&TX_SEC) { - text_new=0; - attr_new&=~TX_SEC; - } - if(attr_new&TX_BL) { - attr_new&=~TX_BL; - if((blink_count/blink_period)&1) attr_new^=TX_REV; - } - if(attr_new&TX_CUR) { - attr_new&=~TX_CUR; - switch(cursor_mode) { - case noblink_underline: - attr_new^=TX_UL; - break; - case blink_underline: - if(blink_count/blink_period) attr_new^=TX_UL; - break; - case noblink_block: - attr_new^=TX_REV; - break; - case blink_block: - if(blink_count/blink_period) attr_new^=TX_REV; - break; - } - } - if((attr_new&TX_UL) && oy!=3) { - attr_new&=~TX_UL; - } - if((attr_new&TX_OL) && oy!=0) { - attr_new&=~TX_OL; - } - if(text_invert) { - attr_new^=TX_REV; - } - if(!crtcON || ((dmac_flag&0x04)==0x00) || !textON) { - text_new=0; - attr_new=7 << TX_COL_SHIFT; - } - if(text_width==40) { - if(x&1) { - attr_new|=TX_40R; - } else { - attr_new|=TX_40L; - } - } else { - attr_new|=TX_80; - } - if(text_new!=TEXT_OLD(x,y) || - attr_new!=ATTR_OLD(x,y) || - GRP_DIRTY(x,y) || - full_refresh) { - plot_box(wbm2,x*8,y*BLOCK_YSIZE,8,BLOCK_YSIZE,palette_transparent_pen); - ct=Machine->pens[((attr_new&TX_COL_MASK)>>TX_COL_SHIFT)+8]; - TEXT_OLD(x,y)=text_new; - ATTR_OLD(x,y)=attr_new; - if(attr_new&TX_GL) { - /* low resolution(N-BASIC mode) graphics */ - text_new>>=(text_new&3); - if(attr_new&TX_REV) { - text_new=~text_new; - } - switch(attr_new&TX_WID_MASK) { - case TX_80: - if(text_new&0x04) plot_box(wbm2,x*8,y*BLOCK_YSIZE,4,BLOCK_YSIZE,ct); - if(text_new&0x40) plot_box(wbm2,x*8+4,y*BLOCK_YSIZE,4,BLOCK_YSIZE,ct); - break; - case TX_40L: - if(text_new&0x04) plot_box(wbm2,x*8,y*BLOCK_YSIZE,8,BLOCK_YSIZE,ct); - break; - case TX_40R: - if(text_new&0x40) plot_box(wbm2,x*8,y*BLOCK_YSIZE,8,BLOCK_YSIZE,ct); - break; - } - } else { - /* normal text */ - drawgfx(wbm2,Machine->gfx - [((attr_new&TX_WID_MASK)>>TX_WID_SHIFT)+ - (pc8801_is_24KHz ? 3 : 0)], - text_new, - ((attr_new&TX_REV) ? 8 : 0) - + ((attr_new&TX_COL_MASK)>>TX_COL_SHIFT), - 0,0,x*8,y*BLOCK_YSIZE, - &Machine->screen[0].visarea,TRANSPARENCY_PEN, - (attr_new&TX_REV) ? 1 : 0); - } - if(attr_new&TX_UL) { - plot_box(wbm2,x*8,y*BLOCK_YSIZE+(pc8801_is_24KHz ? 3 : 1),8,1, - (attr_new&TX_REV) ? palette_transparent_pen : ct); - } - if(attr_new&TX_OL) { - plot_box(wbm2,x*8,y*BLOCK_YSIZE,8,1, - (attr_new&TX_REV) ? palette_transparent_pen : ct); - } - - /* graphics */ - GRP_DIRTY(x,y)=0; - if(pc8801_is_24KHz) { - switch(gmode) { - case GRAPH_200_COL: - for(gy=0;gy<2;gy++) { - for(gx=0;gx<8;gx++) { - cg= - (((gVRAM[0x0000+x+y*2*80+gy*80] << gx) & 0x80) >> 7) | - (((gVRAM[0x4000+x+y*2*80+gy*80] << gx) & 0x80) >> 6) | - (((gVRAM[0x8000+x+y*2*80+gy*80] << gx) & 0x80) >> 5); - plot_pixel(wbm1,x*8+gx,y*4+gy*2,Machine->pens[cg]); - plot_pixel(wbm1,x*8+gx,y*4+gy*2+1,Machine->pens[17]); - } - } - break; - case GRAPH_200_BW: - for(gy=0;gy<2;gy++) { - for(gx=0;gx<8;gx++) { - cg= - (((gVRAM[0x0000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[0]) || - (((gVRAM[0x4000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[1]) || - (((gVRAM[0x8000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[2]) ? - ((attr_new&TX_COL_MASK)>>TX_COL_SHIFT)+8 : 16; - plot_pixel(wbm1,x*8+gx,y*4+gy*2,Machine->pens[cg]); - plot_pixel(wbm1,x*8+gx,y*4+gy*2+1,Machine->pens[17]); - } - } - break; - case GRAPH_400_BW: - for(gy=0;gy<4;gy++) { - for(gx=0;gx<8;gx++) { - cg= - ((gVRAM[(y<50 ? 0x0000 : 0x4000)+x+(y%50)*4*80+gy*80] << gx) - & 0x80) && - disp_plane[y<200 ? 0 : 1] ? - ((attr_new&TX_COL_MASK)>>TX_COL_SHIFT)+8 : 16; - plot_pixel(wbm1,x*8+gx,y*4+gy,Machine->pens[cg]); - } - } - break; - case GRAPH_NO: - default: - plot_box(wbm1,x*8,y*4,8,4,Machine->pens[16]); - break; - } - } else { - switch(gmode) { - case GRAPH_200_COL: - for(gy=0;gy<2;gy++) { - for(gx=0;gx<8;gx++) { - cg= - (((gVRAM[0x0000+x+y*2*80+gy*80] << gx) & 0x80) >> 7) | - (((gVRAM[0x4000+x+y*2*80+gy*80] << gx) & 0x80) >> 6) | - (((gVRAM[0x8000+x+y*2*80+gy*80] << gx) & 0x80) >> 5); - plot_pixel(wbm1,x*8+gx,y*2+gy,Machine->pens[cg]); - } - } - break; - case GRAPH_200_BW: - for(gy=0;gy<2;gy++) { - for(gx=0;gx<8;gx++) { - cg= - (((gVRAM[0x0000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[0]) || - (((gVRAM[0x4000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[1]) || - (((gVRAM[0x8000+x+y*2*80+gy*80] << gx) & 0x80) && - disp_plane[2]) ? - ((attr_new&TX_COL_MASK)>>TX_COL_SHIFT)+8 : 16; - plot_pixel(wbm1,x*8+gx,y*2+gy,Machine->pens[cg]); - } - } - break; - case GRAPH_NO: - default: - plot_box(wbm1,x*8,y*2,8,2,Machine->pens[16]); - break; - } - } - } - } - } - - copybitmap(wbm1,wbm2,0,0,0,0, - &Machine->screen[0].visarea,TRANSPARENCY_PEN,palette_transparent_pen); - copybitmap(bitmap,wbm1,0,0,0,0, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - return 0; -} - -PALETTE_INIT( pc8801 ) -{ - int i; - - for (i = 0; i < 8; i++) - palette_set_color(machine, i, 0, 0, 0); /* for graphics */ - - /* for text */ - for (i = 0; i < 8; i++) - { - palette_set_color(machine, i+8, - (i & 2) ? 0xff : 0x00, - (i & 4) ? 0xff : 0x00, - (i & 1) ? 0xff : 0x00); - colortable[i*2+0] = 0; - colortable[i*2+1] = i+8; - colortable[(i+8)*2+0] = i+8; - colortable[(i+8)*2+1] = 0; - } - - /* for background and scanline */ - palette_set_color(machine, 16, 0, 0, 0); - palette_set_color(machine, 17, 0, 0, 0); -} - -WRITE8_HANDLER(pc8801_crtc_write) -{ - if(offset==1) { - /* command */ - switch(data&0xe0) { - case 0x00: - /* disp stop / initilize */ - crtcON=0; - crtc_state=parameter0; - return; - case 0x20: - /* disp on */ - crtcON=1; - text_invert=((data&1)!=0x00); - return; - case 0x40: - /* case 0x43: */ - /* interupt mask */ - return; - case 0x60: - /* get light pen point */ - crtc_state=lpenx; - return; - case 0x80: - /* set cursor */ - crtc_state=cursorx; - text_cursor=((data&1)!=0x00); - return; - default: - logerror("pc8801:illegal crtc command 0x%.2x.\n",data); - return; - } - } else { - /* parameter */ - switch(crtc_state) { - case parameter0: - crtc_state=parameter1; - if(data==0xce) return; - logerror("pc8801:illegal crtc parameter0 0x%.2x.\n",data); - return; - case parameter1: - crtc_state=parameter2; - switch(data&0xc0) { - case 0x00: - blink_period=8; - break; - case 0x40: - blink_period=16; - break; - case 0x80: - blink_period=24; - break; - case 0xc0: - blink_period=32; - break; - } - if((data&0x3f)==0x13) { - text_height=20; - return; - } else if((data&0x3f)==0x18) { - text_height=25; - return; - } - logerror("pc8801:illegal crtc parameter1 0x%.2x.\n",data); - return; - case parameter2: - crtc_state=parameter3; - switch(data&0x60) { - case 0x00: - cursor_mode=noblink_underline; - break; - case 0x20: - cursor_mode=blink_underline; - break; - case 0x40: - cursor_mode=noblink_block; - break; - case 0x60: - cursor_mode=blink_block; - break; - } - if(!pc8801_is_24KHz && (data&0x9f)==0x09 && text_height==20) { - return; - } else if(!pc8801_is_24KHz && (data&0x9f)==0x07 && text_height==25) { - return; - } else if(pc8801_is_24KHz && (data&0x9f)==0x13 && text_height==20) { - return; - } else if(pc8801_is_24KHz && (data&0x9f)==0x0f && text_height==25) { - return; - } - logerror("pc8801:illegal crtc parameter2 0x%.2x.\n",data); - return; - case parameter3: - crtc_state=parameter4; - if(!pc8801_is_24KHz && data==0xbe && text_height==20) { - return; - } else if(!pc8801_is_24KHz && data==0xde && text_height==25) { - return; - } else if(pc8801_is_24KHz && data==0x38 && text_height==20) { - return; - } else if(pc8801_is_24KHz && data==0x58 && text_height==25) { - return; - } - logerror("pc8801:illegal crtc parameter3 0x%.2x.\n",data); - return; - case parameter4: - crtc_state=other; - if(data==0x13) { - text_color=0; - return; - } else if(data==0x53) { - text_color=1; - return; - } - logerror("pc8801:illegal crtc parameter4 0x%.2x.\n",data); - return; - case cursorx: - crtc_state=cursory; - text_cursorX=data; - return; - case cursory: - crtc_state=other; - text_cursorY=data; - return; - default: - logerror("pc8801:illegal crtc parameter 0x%.2x.\n",data); - return; - } - } -} - - READ8_HANDLER(pc8801_crtc_read) -{ - if(offset==0) { - /* light pen point */ - switch(crtc_state) { - case lpenx: - crtc_state=lpeny; - return 0xff; - case lpeny: - crtc_state=other; - return 0xff; - default: - logerror("pc8801:illegal light pen read\n"); - return 0xff; - } - } else { - /* status */ - return crtcON ? 0x10 : 0x00; - } -} - -WRITE8_HANDLER(pc8801_dmac_write) -{ - switch(offset) { - case 8: - dmac_FL=0; - dmac_flag=data; - return; - case 1: - case 3: - case 5: - case 7: - if(dmac_FL==0) { - dmac_FL=1; - dmac_size[offset/2]=(dmac_size[offset/2]&0xff00)|(data&0x00ff); - return; - } else { - dmac_FL=0; - dmac_size[offset/2]=(dmac_size[offset/2]&0x00ff)|((data<<8)&0xff00); - return; - } - case 0: - case 2: - case 4: - case 6: - if(dmac_FL==0) { - dmac_FL=1; - dmac_addr[offset/2]=(dmac_addr[offset/2]&0xff00)|(data&0x00ff); - return; - } else { - dmac_FL=0; - dmac_addr[offset/2]=(dmac_addr[offset/2]&0x00ff)|((data<<8)&0xff00); - return; - } - } -} - - READ8_HANDLER(pc8801_dmac_read) -{ - switch(offset) { - case 8: - return dmac_status; - case 1: - case 3: - case 5: - case 7: - if(dmac_FL==0) { - dmac_FL=1; - return(dmac_size[offset/2]&0x00ff); - } else { - dmac_FL=0; - return((dmac_size[offset/2]>>8)&0x00ff); - } - case 0: - case 2: - case 4: - case 6: - if(dmac_FL==0) { - dmac_FL=1; - return(dmac_addr[offset/2]&0x00ff); - } else { - dmac_FL=0; - return((dmac_addr[offset/2]>>8)&0x00ff); - } - } - return 0; -} - -WRITE8_HANDLER(pc88sr_disp_30) -{ - text_width=((data&0x01)==0x00) ? 40 : 80; -} - -WRITE8_HANDLER(pc88sr_disp_31) -{ - GMODE gmode_new; - - gmode_new=GRAPH_NO; - switch(data&0x19) { - case 0x00: - case 0x01: - case 0x10: - case 0x11: - gmode_new=GRAPH_NO; - break; - case 0x08: - gmode_new=pc8801_is_24KHz ? GRAPH_400_BW : GRAPH_200_BW; - break; - case 0x09: - gmode_new=GRAPH_200_BW; - break; - case 0x18: - case 0x19: - gmode_new=GRAPH_200_COL; - break; - } - if(gmode!=gmode_new) { - gmode=gmode_new; - } -} - -WRITE8_HANDLER(pc8801_palette_out) -{ - int palno; - int i; - static int r[10],g[10],b[10]; - - if(offset==0) { - palno=16; - } else if(offset==1) { - textON = (data&1)==0x00; - for(i=0;i<3;i++) { - if(disp_plane[i] != ((data&(2<> 1) & 0x03); - r[offset] = - ((data << 2) & 0xe0) | - ((data >> 1) & 0x1c) | - ((data >> 4) & 0x03); - } else { - g[offset] = - ((data << 5) & 0xe0) | - ((data << 2) & 0x1c) | - ((data >> 1) & 0x03); - } - } else { - b[offset] = (data & 1) ? 0xff : 0x00; - r[offset] = (data & 2) ? 0xff : 0x00; - g[offset] = (data & 4) ? 0xff : 0x00; - } - palette_set_color(Machine, palno,r[offset],g[offset],b[offset]); -} diff --git a/mess/vidhrdw/pdp1.c b/mess/vidhrdw/pdp1.c deleted file mode 100644 index 1be1819b3..000000000 --- a/mess/vidhrdw/pdp1.c +++ /dev/null @@ -1,608 +0,0 @@ -/* - vidhrdw/pdp1.c - - PDP1 video emulation. - - We emulate three display devices: - * CRT screen - * control panel - * typewriter output - - For the actual emulation of these devices look at the machine/pdp1.c. This - file only includes the display routines. - - Raphael Nabet 2002-2004 - Based on earlier work by Chris Salomon -*/ - -#include - -#include "driver.h" - -#include "cpu/pdp1/pdp1.h" -#include "includes/pdp1.h" -#include "vidhrdw/crt.h" - - -static mame_bitmap *panel_bitmap; -static mame_bitmap *typewriter_bitmap; - -static const rectangle typewriter_bitmap_bounds = -{ - 0, typewriter_window_width-1, /* min_x, max_x */ - 0, typewriter_window_height-1, /* min_y, max_y */ -}; - -static const rectangle panel_bitmap_bounds = -{ - 0, panel_window_width-1, /* min_x, max_x */ - 0, panel_window_height-1, /* min_y, max_y */ -}; - -static void pdp1_draw_panel_backdrop(mame_bitmap *bitmap); -static void pdp1_draw_panel(mame_bitmap *bitmap); - -static lightpen_t lightpen_state, previous_lightpen_state; -static void pdp1_erase_lightpen(mame_bitmap *bitmap); -static void pdp1_draw_lightpen(mame_bitmap *bitmap); - -/* - video init -*/ -VIDEO_START( pdp1 ) -{ - /* alloc bitmaps for our private fun */ - panel_bitmap = auto_bitmap_alloc(panel_window_width, panel_window_height); - if (!panel_bitmap) - return 1; - - typewriter_bitmap = auto_bitmap_alloc(typewriter_window_width, typewriter_window_height); - if (!typewriter_bitmap) - return 1; - - /* set up out bitmaps */ - pdp1_draw_panel_backdrop(panel_bitmap); - - fillbitmap(typewriter_bitmap, Machine->pens[pen_typewriter_bg], &typewriter_bitmap_bounds); - - /* initialize CRT */ - if (video_start_crt(pen_crt_num_levels, crt_window_offset_x, crt_window_offset_y, crt_window_width, crt_window_height)) - return 1; - - return 0; -} - - -/* - schedule a pixel to be plotted -*/ -void pdp1_plot(int x, int y) -{ - /* compute pixel coordinates and plot */ - x = x*crt_window_width/01777; - y = y*crt_window_height/01777; - crt_plot(x, y); -} - - -/* - video_update_pdp1: effectively redraw the screen -*/ -VIDEO_UPDATE( pdp1 ) -{ - pdp1_erase_lightpen(bitmap); - video_update_crt(bitmap); - pdp1_draw_lightpen(bitmap); - - pdp1_draw_panel(panel_bitmap); - copybitmap(bitmap, panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - - copybitmap(bitmap, typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - return 0; -} - - - -/* - Operator control panel code -*/ - -enum -{ - x_panel_col1_offset = 8, - x_panel_col2_offset = x_panel_col1_offset+144+8, - x_panel_col3_offset = x_panel_col2_offset+96+8 -}; - -enum -{ - /* column 1: registers, test word, test address */ - y_panel_pc_offset = 0, - y_panel_ma_offset = y_panel_pc_offset+2*8, - y_panel_mb_offset = y_panel_ma_offset+2*8, - y_panel_ac_offset = y_panel_mb_offset+2*8, - y_panel_io_offset = y_panel_ac_offset+2*8, - y_panel_ta_offset = y_panel_io_offset+2*8, /* test address and extend switch */ - y_panel_tw_offset = y_panel_ta_offset+2*8, - - /* column 2: 1-bit indicators */ - y_panel_run_offset = 8, - y_panel_cyc_offset = y_panel_run_offset+8, - y_panel_defer_offset = y_panel_cyc_offset+8, - y_panel_hs_cyc_offset = y_panel_defer_offset+8, - y_panel_brk_ctr_1_offset = y_panel_hs_cyc_offset+8, - y_panel_brk_ctr_2_offset = y_panel_brk_ctr_1_offset+8, - y_panel_ov_offset = y_panel_brk_ctr_2_offset+8, - y_panel_rim_offset = y_panel_ov_offset+8, - y_panel_sbm_offset = y_panel_rim_offset+8, - y_panel_exd_offset = y_panel_sbm_offset+8, - y_panel_ioh_offset = y_panel_exd_offset+8, - y_panel_ioc_offset = y_panel_ioh_offset+8, - y_panel_ios_offset = y_panel_ioc_offset+8, - - /* column 3: power, single step, single inst, sense, flags, instr... */ - y_panel_power_offset = 8, - y_panel_sngl_step_offset = y_panel_power_offset+8, - y_panel_sngl_inst_offset = y_panel_sngl_step_offset+8, - y_panel_sep1_offset = y_panel_sngl_inst_offset+8, - y_panel_ss_offset = y_panel_sep1_offset+8, - y_panel_sep2_offset = y_panel_ss_offset+3*8, - y_panel_pf_offset = y_panel_sep2_offset+8, - y_panel_ir_offset = y_panel_pf_offset+2*8 -}; - -/* draw a small 8*8 LED (or is this a lamp? ) */ -static void pdp1_draw_led(mame_bitmap *bitmap, int x, int y, int state) -{ - int xx, yy; - - for (yy=1; yy<7; yy++) - for (xx=1; xx<7; xx++) - plot_pixel(bitmap, x+xx, y+yy, Machine->pens[state ? pen_lit_lamp : pen_unlit_lamp]); -} - -/* draw nb_bits leds which represent nb_bits bits in value */ -static void pdp1_draw_multipleled(mame_bitmap *bitmap, int x, int y, int value, int nb_bits) -{ - while (nb_bits) - { - nb_bits--; - - pdp1_draw_led(bitmap, x, y, (value >> nb_bits) & 1); - - x += 8; - } -} - - -/* draw a small 8*8 switch */ -static void pdp1_draw_switch(mame_bitmap *bitmap, int x, int y, int state) -{ - int xx, yy; - int i; - - /* erase area */ - for (yy=0; yy<8; yy++) - for (xx=0; xx<8; xx++) - plot_pixel(bitmap, x+xx, y+yy, Machine->pens[pen_panel_bg]); - - - /* draw nut (-> circle) */ - for (i=0; i<4;i++) - { - plot_pixel(bitmap, x+2+i, y+1, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+2+i, y+6, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+1, y+2+i, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+6, y+2+i, Machine->pens[pen_switch_nut]); - } - plot_pixel(bitmap, x+2, y+2, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+5, y+2, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+2, y+5, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+5, y+5, Machine->pens[pen_switch_nut]); - - /* draw button (->disc) */ - if (! state) - y += 4; - for (i=0; i<2;i++) - { - plot_pixel(bitmap, x+3+i, y, Machine->pens[pen_switch_button]); - plot_pixel(bitmap, x+3+i, y+3, Machine->pens[pen_switch_button]); - } - for (i=0; i<4;i++) - { - plot_pixel(bitmap, x+2+i, y+1, Machine->pens[pen_switch_button]); - plot_pixel(bitmap, x+2+i, y+2, Machine->pens[pen_switch_button]); - } -} - - -/* draw nb_bits switches which represent nb_bits bits in value */ -static void pdp1_draw_multipleswitch(mame_bitmap *bitmap, int x, int y, int value, int nb_bits) -{ - while (nb_bits) - { - nb_bits--; - - pdp1_draw_switch(bitmap, x, y, (value >> nb_bits) & 1); - - x += 8; - } -} - - -/* write a single char on screen */ -static void pdp1_draw_char(mame_bitmap *bitmap, char character, int x, int y, int color) -{ - drawgfx(bitmap, Machine->gfx[0], character-32, color, 0, 0, - x+1, y, &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); -} - -/* write a string on screen */ -static void pdp1_draw_string(mame_bitmap *bitmap, const char *buf, int x, int y, int color) -{ - while (* buf) - { - pdp1_draw_char(bitmap, *buf, x, y, color); - - x += 8; - buf++; - } -} - - -/* - draw the operator control panel (fixed backdrop) -*/ -static void pdp1_draw_panel_backdrop(mame_bitmap *bitmap) -{ - /* fill with black */ - fillbitmap(panel_bitmap, Machine->pens[pen_panel_bg], &panel_bitmap_bounds); - - /* column 1: registers, test word, test address */ - pdp1_draw_string(bitmap, "program counter", x_panel_col1_offset, y_panel_pc_offset, color_panel_caption); - pdp1_draw_string(bitmap, "memory address", x_panel_col1_offset, y_panel_ma_offset, color_panel_caption); - pdp1_draw_string(bitmap, "memory buffer", x_panel_col1_offset, y_panel_mb_offset, color_panel_caption); - pdp1_draw_string(bitmap, "accumulator", x_panel_col1_offset, y_panel_ac_offset, color_panel_caption); - pdp1_draw_string(bitmap, "in-out", x_panel_col1_offset, y_panel_io_offset, color_panel_caption); - pdp1_draw_string(bitmap, "extend address", x_panel_col1_offset-8, y_panel_ta_offset, color_panel_caption); - pdp1_draw_string(bitmap, "test word", x_panel_col1_offset, y_panel_tw_offset, color_panel_caption); - - /* column separator */ - plot_box(bitmap, x_panel_col2_offset-4, panel_window_offset_y+8, 1, 96, pen_panel_caption); - - /* column 2: 1-bit indicators */ - pdp1_draw_string(bitmap, "run", x_panel_col2_offset+8, y_panel_run_offset, color_panel_caption); - pdp1_draw_string(bitmap, "cycle", x_panel_col2_offset+8, y_panel_cyc_offset, color_panel_caption); - pdp1_draw_string(bitmap, "defer", x_panel_col2_offset+8, y_panel_defer_offset, color_panel_caption); - pdp1_draw_string(bitmap, "h. s. cycle", x_panel_col2_offset+8, y_panel_hs_cyc_offset, color_panel_caption); - pdp1_draw_string(bitmap, "brk. ctr. 1", x_panel_col2_offset+8, y_panel_brk_ctr_1_offset, color_panel_caption); - pdp1_draw_string(bitmap, "brk. ctr. 2", x_panel_col2_offset+8, y_panel_brk_ctr_2_offset, color_panel_caption); - pdp1_draw_string(bitmap, "overflow", x_panel_col2_offset+8, y_panel_ov_offset, color_panel_caption); - pdp1_draw_string(bitmap, "read in", x_panel_col2_offset+8, y_panel_rim_offset, color_panel_caption); - pdp1_draw_string(bitmap, "seq. break", x_panel_col2_offset+8, y_panel_sbm_offset, color_panel_caption); - pdp1_draw_string(bitmap, "extend", x_panel_col2_offset+8, y_panel_exd_offset, color_panel_caption); - pdp1_draw_string(bitmap, "i-o halt", x_panel_col2_offset+8, y_panel_ioh_offset, color_panel_caption); - pdp1_draw_string(bitmap, "i-o com'ds", x_panel_col2_offset+8, y_panel_ioc_offset, color_panel_caption); - pdp1_draw_string(bitmap, "i-o sync", x_panel_col2_offset+8, y_panel_ios_offset, color_panel_caption); - - /* column separator */ - plot_box(bitmap, x_panel_col3_offset-4, panel_window_offset_y+8, 1, 96, pen_panel_caption); - - /* column 3: power, single step, single inst, sense, flags, instr... */ - pdp1_draw_string(bitmap, "power", x_panel_col3_offset+16, y_panel_power_offset, color_panel_caption); - pdp1_draw_string(bitmap, "single step", x_panel_col3_offset+16, y_panel_sngl_step_offset, color_panel_caption); - pdp1_draw_string(bitmap, "single inst.", x_panel_col3_offset+16, y_panel_sngl_inst_offset, color_panel_caption); - /* separator */ - plot_box(bitmap, x_panel_col3_offset+8, y_panel_sep1_offset+4, 96, 1, pen_panel_caption); - pdp1_draw_string(bitmap, "sense switches", x_panel_col3_offset, y_panel_ss_offset, color_panel_caption); - /* separator */ - plot_box(bitmap, x_panel_col3_offset+8, y_panel_sep2_offset+4, 96, 1, pen_panel_caption); - pdp1_draw_string(bitmap, "program flags", x_panel_col3_offset, y_panel_pf_offset, color_panel_caption); - pdp1_draw_string(bitmap, "instruction", x_panel_col3_offset, y_panel_ir_offset, color_panel_caption); -} - -/* - draw the operator control panel (dynamic elements) -*/ -static void pdp1_draw_panel(mame_bitmap *bitmap) -{ - /* column 1: registers, test word, test address */ - pdp1_draw_multipleled(bitmap, x_panel_col1_offset+2*8, y_panel_pc_offset+8, cpunum_get_reg(0, PDP1_PC), 16); - pdp1_draw_multipleled(bitmap, x_panel_col1_offset+2*8, y_panel_ma_offset+8, cpunum_get_reg(0, PDP1_MA), 16); - pdp1_draw_multipleled(bitmap, x_panel_col1_offset, y_panel_mb_offset+8, cpunum_get_reg(0, PDP1_MB), 18); - pdp1_draw_multipleled(bitmap, x_panel_col1_offset, y_panel_ac_offset+8, cpunum_get_reg(0, PDP1_AC), 18); - pdp1_draw_multipleled(bitmap, x_panel_col1_offset, y_panel_io_offset+8, cpunum_get_reg(0, PDP1_IO), 18); - pdp1_draw_switch(bitmap, x_panel_col1_offset, y_panel_ta_offset+8, cpunum_get_reg(0, PDP1_EXTEND_SW)); - pdp1_draw_multipleswitch(bitmap, x_panel_col1_offset+2*8, y_panel_ta_offset+8, cpunum_get_reg(0, PDP1_TA), 16); - pdp1_draw_multipleswitch(bitmap, x_panel_col1_offset, y_panel_tw_offset+8, cpunum_get_reg(0, PDP1_TW), 18); - - /* column 2: 1-bit indicators */ - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_run_offset, cpunum_get_reg(0, PDP1_RUN)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_cyc_offset, cpunum_get_reg(0, PDP1_CYC)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_defer_offset, cpunum_get_reg(0, PDP1_DEFER)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_hs_cyc_offset, 0); /* not emulated */ - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_brk_ctr_1_offset, cpunum_get_reg(0, PDP1_BRK_CTR) & 1); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_brk_ctr_2_offset, cpunum_get_reg(0, PDP1_BRK_CTR) & 2); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_ov_offset, cpunum_get_reg(0, PDP1_OV)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_rim_offset, cpunum_get_reg(0, PDP1_RIM)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_sbm_offset, cpunum_get_reg(0, PDP1_SBM)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_exd_offset, cpunum_get_reg(0, PDP1_EXD)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_ioh_offset, cpunum_get_reg(0, PDP1_IOH)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_ioc_offset, cpunum_get_reg(0, PDP1_IOC)); - pdp1_draw_led(bitmap, x_panel_col2_offset, y_panel_ios_offset, cpunum_get_reg(0, PDP1_IOS)); - - /* column 3: power, single step, single inst, sense, flags, instr... */ - pdp1_draw_led(bitmap, x_panel_col3_offset, y_panel_power_offset, 1); /* always on */ - pdp1_draw_switch(bitmap, x_panel_col3_offset+8, y_panel_power_offset, 1); /* always on */ - pdp1_draw_led(bitmap, x_panel_col3_offset, y_panel_sngl_step_offset, cpunum_get_reg(0, PDP1_SNGL_STEP)); - pdp1_draw_switch(bitmap, x_panel_col3_offset+8, y_panel_sngl_step_offset, cpunum_get_reg(0, PDP1_SNGL_STEP)); - pdp1_draw_led(bitmap, x_panel_col3_offset, y_panel_sngl_inst_offset, cpunum_get_reg(0, PDP1_SNGL_INST)); - pdp1_draw_switch(bitmap, x_panel_col3_offset+8, y_panel_sngl_inst_offset, cpunum_get_reg(0, PDP1_SNGL_INST)); - pdp1_draw_multipleled(bitmap, x_panel_col3_offset, y_panel_ss_offset+8, cpunum_get_reg(0, PDP1_SS), 6); - pdp1_draw_multipleswitch(bitmap, x_panel_col3_offset, y_panel_ss_offset+2*8, cpunum_get_reg(0, PDP1_SS), 6); - pdp1_draw_multipleled(bitmap, x_panel_col3_offset, y_panel_pf_offset+8, cpunum_get_reg(0, PDP1_PF), 6); - pdp1_draw_multipleled(bitmap, x_panel_col3_offset, y_panel_ir_offset+8, cpunum_get_reg(0, PDP1_IR), 5); -} - - -/* - Typewriter code -*/ - - -static int pos; - -static int case_shift; - -static int color = color_typewriter_black; - -enum -{ - typewriter_line_height = 8, - typewriter_write_offset_y = typewriter_window_height-typewriter_line_height, - typewriter_scroll_step = typewriter_line_height -}; -static const rectangle typewriter_scroll_clear_window = -{ - 0, typewriter_window_width-1, /* min_x, max_x */ - typewriter_window_height-typewriter_scroll_step, typewriter_window_height-1, /* min_y, max_y */ -}; - -enum -{ - tab_step = 8 -}; - - -static void pdp1_typewriter_linefeed(void) -{ - UINT8 buf[typewriter_window_width]; - int y; - - for (y=0; ypens, -1); - } - - fillbitmap(typewriter_bitmap, Machine->pens[pen_typewriter_bg], &typewriter_scroll_clear_window); -} - -void pdp1_typewriter_drawchar(int character) -{ - static const char ascii_table[2][64] = - { /* n-s = non-spacing */ - { /* lower case */ - ' ', '1', '2', '3', - '4', '5', '6', '7', - '8', '9', '*', '*', - '*', '*', '*', '*', - '0', '/', 's', 't', - 'u', 'v', 'w', 'x', - 'y', 'z', '*', ',', - '*',/*black*/ '*',/*red*/ '*',/*Tab*/ '*', - '\200',/*n-s middle dot*/'j', 'k', 'l', - 'm', 'n', 'o', 'p', - 'q', 'r', '*', '*', - '-', ')', '\201',/*n-s overstrike*/'(', - '*', 'a', 'b', 'c', - 'd', 'e', 'f', 'g', - 'h', 'i', '*',/*Lower Case*/ '.', - '*',/*Upper Case*/ '*',/*Backspace*/ '*', '*'/*Carriage Return*/ - }, - { /* upper case */ - ' ', '"', '\'', '~', - '\202',/*implies*/ '\203',/*or*/ '\204',/*and*/ '<', - '>', '\205',/*up arrow*/ '*', '*', - '*', '*', '*', '*', - '\206',/*right arrow*/'?', 'S', 'T', - 'U', 'V', 'W', 'X', - 'Y', 'Z', '*', '=', - '*',/*black*/ '*',/*red*/ '*',/*Tab*/ '*', - '_',/*n-s???*/ 'J', 'K', 'L', - 'M', 'N', 'O', 'P', - 'Q', 'R', '*', '*', - '+', ']', '|',/*n-s???*/ '[', - '*', 'A', 'B', 'C', - 'D', 'E', 'F', 'G', - 'H', 'I', '*',/*Lower Case*/ '\207',/*multiply*/ - '*',/*Upper Case*/ '*',/*Backspace*/ '*', '*'/*Carriage Return*/ - } - }; - - - - character &= 0x3f; - - switch (character) - { - case 034: - /* Black */ - color = color_typewriter_black; - break; - - case 035: - /* Red */ - color = color_typewriter_red; - break; - - case 036: - /* Tab */ - pos = pos + tab_step - (pos % tab_step); - break; - - case 072: - /* Lower case */ - case_shift = 0; - break; - - case 074: - /* Upper case */ - case_shift = 1; - break; - - case 075: - /* Backspace */ - if (pos) - pos--; - break; - - case 077: - /* Carriage Return */ - pos = 0; - pdp1_typewriter_linefeed(); - break; - - default: - /* Any printable character... */ - - if (pos >= 80) - { /* if past right border, wrap around. (Right???) */ - pdp1_typewriter_linefeed(); /* next line */ - pos = 0; /* return to start of line */ - } - - /* print character (lookup ASCII equivalent in table) */ - pdp1_draw_char(typewriter_bitmap, ascii_table[case_shift][character], - 8*pos, typewriter_write_offset_y, - color); /* print char */ - - if ((character!= 040) && (character!= 056)) /* 040 and 056 are non-spacing characters */ - pos++; /* step carriage forward */ - - break; - } -} - - - -/* - lightpen code -*/ - -void pdp1_update_lightpen_state(const lightpen_t *new_state) -{ - lightpen_state = *new_state; -} - -#if 1 -static void pdp1_draw_circle(mame_bitmap *bitmap, int x, int y, int radius, int color_) -{ - int interval; - int a; - - x = x*crt_window_width/01777; - y = y*crt_window_width/01777; - radius = radius*crt_window_width/01777; - - interval = ceil(radius/sqrt(2)); - - for (a=0; a<=interval; a++) - { - int b = sqrt(radius*radius-a*a) + .5; - - if ((x-a >= 0) && (y-b >= 0)) - plot_pixel(bitmap, x-a, y-b, color_); - if ((x-a >= 0) && (y+b <= crt_window_height-1)) - plot_pixel(bitmap, x-a, y+b, color_); - if ((x+a <= crt_window_width-1) && (y-b >= 0)) - plot_pixel(bitmap, x+a, y-b, color_); - if ((x+a <= crt_window_width-1) && (y+b <= crt_window_height-1)) - plot_pixel(bitmap, x+a, y+b, color_); - - if ((x-b >= 0) && (y-a >= 0)) - plot_pixel(bitmap, x-b, y-a, color_); - if ((x-b >= 0) && (y+a <= crt_window_height-1)) - plot_pixel(bitmap, x-b, y+a, color_); - if ((x+b <= crt_window_width-1) && (y-a >= 0)) - plot_pixel(bitmap, x+b, y-a, color_); - if ((x+b <= crt_window_width-1) && (y+a <= crt_window_height-1)) - plot_pixel(bitmap, x+b, y+a, color_); - } -} -#else -static void pdp1_draw_circle(mame_bitmap *bitmap, int x, int y, int radius, int color) -{ - float fx, fy; - float interval; - - - fx = (float)x*crt_window_width/01777; - fy = (float)y*crt_window_height/01777; - - interval = radius/sqrt(2); - - for (x=/*ceil*/(fx-interval); x<=fx+interval; x++) - { - float dy = sqrt(radius*radius-(x-fx)*(x-fx)); - - if ((x >= 0) && (x <= crt_window_width-1) && (fy-dy >= 0)) - plot_pixel(bitmap, x, fy-dy, color); - if ((x >= 0) && (x <= crt_window_width-1) && (y+dy <= crt_window_height-1)) - plot_pixel(bitmap, x, fy+dy, color); - } - for (y=/*ceil*/(fy-interval); y<=fy+interval; y++) - { - float dx = sqrt(radius*radius-(y-fy)*(y-fy)); - - if ((fx-dx >= 0) && (y >= 0) && (y <= crt_window_height-1)) - plot_pixel(bitmap, fx-dx, y, color); - if ((fx+dx <= crt_window_width-1) && (y >= 0) && (y <= crt_window_height-1)) - plot_pixel(bitmap, fx+dx, y, color); - } -} -#endif - -static void pdp1_erase_lightpen(mame_bitmap *bitmap) -{ - if (previous_lightpen_state.active) - { - /*if (previous_lightpen_state.x>0) - plot_pixel(bitmap, previous_lightpen_state.x/2-1, previous_lightpen_state.y/2, pen_black); - if (previous_lightpen_state.x<1023) - plot_pixel(bitmap, previous_lightpen_state.x/2+1, previous_lightpen_state.y/2, pen_black); - if (previous_lightpen_state.y>0) - plot_pixel(bitmap, previous_lightpen_state.x/2, previous_lightpen_state.y/2-1, pen_black); - if (previous_lightpen_state.y<1023) - plot_pixel(bitmap, previous_lightpen_state.x/2, previous_lightpen_state.y/2+1, pen_black);*/ - pdp1_draw_circle(bitmap, previous_lightpen_state.x, previous_lightpen_state.y, previous_lightpen_state.radius, pen_black); - } -} - -static void pdp1_draw_lightpen(mame_bitmap *bitmap) -{ - if (lightpen_state.active) - { - int color_ = lightpen_state.down ? pen_lightpen_pressed : pen_lightpen_nonpressed; - /*if (lightpen_state.x>0) - plot_pixel(bitmap, lightpen_state.x/2-1, lightpen_state.y/2, color); - if (lightpen_state.x<1023) - plot_pixel(bitmap, lightpen_state.x/2+1, lightpen_state.y/2, color); - if (lightpen_state.y>0) - plot_pixel(bitmap, lightpen_state.x/2, lightpen_state.y/2-1, color); - if (lightpen_state.y<1023) - plot_pixel(bitmap, lightpen_state.x/2, lightpen_state.y/2+1, color);*/ - pdp1_draw_circle(bitmap, lightpen_state.x, lightpen_state.y, lightpen_state.radius, color_); - } - previous_lightpen_state = lightpen_state; -} diff --git a/mess/vidhrdw/pet.c b/mess/vidhrdw/pet.c deleted file mode 100644 index 013fe6686..000000000 --- a/mess/vidhrdw/pet.c +++ /dev/null @@ -1,139 +0,0 @@ -/*************************************************************************** - - commodore pet discrete video circuit - - PeT mess@utanet.at - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "mscommon.h" - -#include "includes/crtc6845.h" -#include "includes/pet.h" - -void pet_vh_init (void) -{ - UINT8 *gfx = memory_region(REGION_GFX1); - int i; - - /* inversion logic on board */ - for (i = 0; i < 0x400; i++) - { - gfx[0x800+i] = gfx[0x400+i]; - gfx[0x400+i] = gfx[i]^0xff; - gfx[0xc00+i] = gfx[0x800+i]^0xff; - } -} - -void pet80_vh_init (void) -{ - UINT8 *gfx = memory_region(REGION_GFX1); - int i; - - /* inversion logic on board */ - for (i = 0; i < 0x400; i++) { - gfx[0x800+i] = gfx[0x400+i]; - gfx[0x400+i] = gfx[i]^0xff; - gfx[0x0c00+i] = gfx[0x800+i]^0xff; - } - // I assume the hardware logic is not displaying line 8 and 9 of char - // I draw it like lines would be 8-15 are black! - for (i=511; i>=0; i--) { - memcpy(gfx+i*16, gfx+i*8, 8); - memset(gfx+i*16+8, 0, 8); - } -} - -void superpet_vh_init (void) -{ - UINT8 *gfx = memory_region(REGION_GFX1); - int i; - - for (i=0; i<0x400; i++) { - gfx[0x1000+i]=gfx[0x800+i]; - gfx[0x1800+i]=gfx[0xc00+i]; - gfx[0x1c00+i]=gfx[0x1800+i]^0xff; - gfx[0x1400+i]=gfx[0x1000+i]^0xff; - gfx[0x800+i]=gfx[0x400+i]; - gfx[0xc00+i]=gfx[0x800+i]^0xff; - gfx[0x400+i]=gfx[i]^0xff; - } - // I assume the hardware logic is not displaying line 8 and 9 of char - // I draw it like lines 8-15 are black! - for (i=1023; i>=0; i--) { - memcpy(gfx+i*16, gfx+i*8, 8); - memset(gfx+i*16+8, 0, 8); - } -} - -// commodore pet discrete video circuit -VIDEO_UPDATE( pet ) -{ - int x, y, i; - - for (y=0, i=0; y<25;y++) - { - for (x=0;x<40;x++, i++) - { - drawgfx(bitmap,Machine->gfx[pet_font], - videoram[i], 0, 0, 0, 8*x,8*y, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - } - } - return 0; -} - -// commodore pet crtc video circuit for 40 columns display (standard crtc6845) -VIDEO_UPDATE( pet40 ) -{ - int x, y, i; - int w=crtc6845_get_char_columns(crtc6845); - int h=crtc6845_get_char_lines(crtc6845); - int height=crtc6845_get_char_height(crtc6845); - int start=crtc6845_get_start(crtc6845)&0x3ff; - - for (y=0, i=start; ygfx[pet_font], - videoram[i], 0, 0, 0, 8*x,height*y, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - } - } - return 0; -} - -// special hardware to allow crtc programmed for pet 40 column mode! to generate -// 80 column display! -VIDEO_UPDATE( pet80 ) -{ - int x, y, i; - rectangle rect; - int w=crtc6845_get_char_columns(crtc6845); - int h=crtc6845_get_char_lines(crtc6845); - int height=crtc6845_get_char_height(crtc6845); - int start=crtc6845_get_start(crtc6845)&0x3ff; - - rect.min_x = Machine->screen[0].visarea.min_x; - rect.max_x = Machine->screen[0].visarea.max_x; - - for (y=0, rect.min_y=0, rect.max_y=height-1, i=start; ygfx[pet_font], - videoram[2*i], 0, 0, 0, 16*x,height*y, - &rect,TRANSPARENCY_NONE,0); - - drawgfx(bitmap,Machine->gfx[pet_font], - videoram[2*i+1], 0, 0, 0, 16*x+8,height*y, - &rect,TRANSPARENCY_NONE,0); - } - } - return 0; -} - diff --git a/mess/vidhrdw/pmd85.c b/mess/vidhrdw/pmd85.c deleted file mode 100644 index b1efc606c..000000000 --- a/mess/vidhrdw/pmd85.c +++ /dev/null @@ -1,68 +0,0 @@ -/*************************************************************************** - - pmd85.c - - Functions to emulate the video hardware of PMD-85. - - Krzysztof Strzecha - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/pmd85.h" - -unsigned char pmd85_palette[3*3] = -{ - 0x00, 0x00, 0x00, - 0x7f, 0x7f, 0x7f, - 0xff, 0xff, 0xff -}; - -unsigned short pmd85_colortable[1][3] ={ - { 0, 1, 2 } -}; - -PALETTE_INIT( pmd85 ) -{ - palette_set_colors(machine, 0, pmd85_palette, sizeof(pmd85_palette) / 3); - memcpy(colortable, pmd85_colortable, sizeof (pmd85_colortable)); -} - -VIDEO_START( pmd85 ) -{ - return 0; -} - -static void pmd85_draw_scanline(mame_bitmap *bitmap, int pmd85_scanline) -{ - int x, i; - int pen0, pen1; - UINT8 data; - - /* set up scanline */ - UINT16 *scanline = BITMAP_ADDR16(bitmap, pmd85_scanline, 0); - - /* address of current line in PMD-85 video memory */ - UINT8* pmd85_video_ram_line = mess_ram + 0xc000 + 0x40*pmd85_scanline; - - for (x=0; x<288; x+=6) - { - data = pmd85_video_ram_line[x/6]; - pen0 = 0; - pen1 = data & 0x80 ? 1 : 2; - - for (i=0; i<6; i++) - scanline[x+i] = Machine->pens[(data & (0x01<pens[(data & (0x80>>i)) ? 1 : 0]; - - } -} - -VIDEO_UPDATE( primo ) -{ - int primo_scanline; - - for (primo_scanline=0; primo_scanline<192; primo_scanline++) - primo_draw_scanline(bitmap, primo_scanline); - return 0; -} diff --git a/mess/vidhrdw/spectrum.c b/mess/vidhrdw/spectrum.c deleted file mode 100644 index dffe1774c..000000000 --- a/mess/vidhrdw/spectrum.c +++ /dev/null @@ -1,546 +0,0 @@ -/*************************************************************************** - - spectrum.c - - Functions to emulate the video hardware of the ZX Spectrum. - - Changes: - - DJR 08/02/00 - Added support for FLASH 1. - DJR 16/05/00 - Support for TS2068/TC2048 hires and 64 column modes. - DJR 19/05/00 - Speeded up Spectrum 128 screen refresh. - DJR 23/05/00 - Preliminary support for border colour emulation. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/spectrum.h" -#include "eventlst.h" -#include "vidhrdw/border.h" - -unsigned char *spectrum_characterram; -unsigned char *spectrum_colorram; -unsigned char *charsdirty; -static int frame_number; /* Used for handling FLASH 1 */ -static int flash_invert; - -/*************************************************************************** - Start the video hardware emulation. -***************************************************************************/ -VIDEO_START( spectrum ) -{ - frame_number = 0; - flash_invert = 0; - spectrum_characterram = auto_malloc(0x1800); - - spectrum_colorram = auto_malloc(0x300); - - charsdirty = auto_malloc(0x300); - - memset(charsdirty,1,0x300); - EventList_Initialise(30000); - return 0; -} - -/* screen is stored as: -32 chars wide. first 0x100 bytes are top scan of lines 0 to 7 */ - -WRITE8_HANDLER (spectrum_characterram_w) -{ - spectrum_characterram[offset] = data; - - charsdirty[((offset & 0x0f800)>>3) + (offset & 0x0ff)] = 1; -} - - READ8_HANDLER (spectrum_characterram_r) -{ - return(spectrum_characterram[offset]); -} - - -WRITE8_HANDLER (spectrum_colorram_w) -{ - /* Will eventually be used to emulate hi-res colour effects. No point - doing it now as contented memory is not emulated so timings will - be way off. (eg Zynaps taking 212 cycles not 224 per scanline) - */ -/* EventList_AddItemOffset(offset+0x5800, data, cpu_getcurrentcycles()); */ - - spectrum_colorram[offset] = data; - charsdirty[offset] = 1; -} - - READ8_HANDLER (spectrum_colorram_r) -{ - return(spectrum_colorram[offset]); -} - -/* return the color to be used inverting FLASHing colors if necessary */ -INLINE unsigned char get_display_color (unsigned char color, int invert) -{ - if (invert && (color & 0x80)) - return (color & 0xc0) + ((color & 0x38) >> 3) + ((color & 0x07) << 3); - else - return color; -} - -/* Code to change the FLASH status every 25 frames. Note this must be - independent of frame skip etc. */ -VIDEO_EOF( spectrum ) -{ - EVENT_LIST_ITEM *pItem; - int NumItems; - - frame_number++; - if (frame_number >= 25) - { - frame_number = 0; - flash_invert = !flash_invert; - } - - /* Empty event buffer for undisplayed frames noting the last border - colour (in case colours are not changed in the next frame). */ - NumItems = EventList_NumEvents(); - if (NumItems) - { - pItem = EventList_GetFirstItem(); - set_last_border_color ( pItem[NumItems-1].Event_Data ); - EventList_Reset(); - EventList_SetOffsetStartTime ( TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod()) ); - logerror ("Event log reset in callback fn.\n"); - } -} - - -/* Update FLASH status for ts2068. Assumes flash update every 1/2s. */ -VIDEO_EOF( ts2068 ) -{ - EVENT_LIST_ITEM *pItem; - int NumItems; - - frame_number++; - if (frame_number >= 30) - { - frame_number = 0; - flash_invert = !flash_invert; - } - - /* Empty event buffer for undisplayed frames noting the last border - colour (in case colours are not changed in the next frame). */ - NumItems = EventList_NumEvents(); - if (NumItems) - { - pItem = EventList_GetFirstItem(); - set_last_border_color ( pItem[NumItems-1].Event_Data ); - EventList_Reset(); - EventList_SetOffsetStartTime ( TIME_TO_CYCLES(0,cpu_getscanline()*cpu_getscanlineperiod()) ); - logerror ("Event log reset in callback fn.\n"); - } -} - -/*************************************************************************** - Update the spectrum screen display. - - The screen consists of 312 scanlines as follows: - 64 border lines (the last 48 are actual border lines; the others may be - border lines or vertical retrace) - 192 screen lines - 56 border lines - - Each screen line has 48 left border pixels, 256 screen pixels and 48 right - border pixels. - - Each scanline takes 224 T-states divided as follows: - 128 Screen (reads a screen and ATTR byte [8 pixels] every 4 T states) - 24 Right border - 48 Horizontal retrace - 24 Left border - - The 128K Spectrums have only 63 scanlines before the TV picture (311 total) - and take 228 T-states per scanline. - -***************************************************************************/ - -VIDEO_UPDATE( spectrum ) -{ - int count; - int full_refresh = 1; - static int last_invert = 0; - - if (full_refresh) - { - memset(charsdirty,1,0x300); - last_invert = flash_invert; - } - else - { - /* Update all flashing characters when necessary */ - if (last_invert != flash_invert) - { - for (count=0;count<0x300;count++) - if (spectrum_colorram[count] & 0x80) - charsdirty[count] = 1; - last_invert = flash_invert; - } - } - - for (count=0;count<32*8;count++) - { - if (charsdirty[count]) { - decodechar( Machine->gfx[0],count,spectrum_characterram, - Machine->drv->gfxdecodeinfo[0].gfxlayout ); - } - - if (charsdirty[count+256]) { - decodechar( Machine->gfx[1],count,&spectrum_characterram[0x800], - Machine->drv->gfxdecodeinfo[0].gfxlayout ); - } - - if (charsdirty[count+512]) { - decodechar( Machine->gfx[2],count,&spectrum_characterram[0x1000], - Machine->drv->gfxdecodeinfo[0].gfxlayout ); - } - } - - for (count=0;count<32*8;count++) - { - int sx=count%32; - int sy=count/32; - unsigned char color; - - if (charsdirty[count]) { - color=get_display_color(spectrum_colorram[count], - flash_invert); - drawgfx(bitmap,Machine->gfx[0], - count, - color, - 0,0, - (sx*8)+SPEC_LEFT_BORDER,(sy*8)+SPEC_TOP_BORDER, - 0,TRANSPARENCY_NONE,0); - charsdirty[count] = 0; - } - - if (charsdirty[count+256]) { - color=get_display_color(spectrum_colorram[count+0x100], - flash_invert); - drawgfx(bitmap,Machine->gfx[1], - count, - color, - 0,0, - (sx*8)+SPEC_LEFT_BORDER,((sy+8)*8)+SPEC_TOP_BORDER, - 0,TRANSPARENCY_NONE,0); - charsdirty[count+256] = 0; - } - - if (charsdirty[count+512]) { - color=get_display_color(spectrum_colorram[count+0x200], - flash_invert); - drawgfx(bitmap,Machine->gfx[2], - count, - color, - 0,0, - (sx*8)+SPEC_LEFT_BORDER,((sy+16)*8)+SPEC_TOP_BORDER, - 0,TRANSPARENCY_NONE,0); - charsdirty[count+512] = 0; - } -} - - /* When screen refresh is called there is only one blank line - (synchronised with start of screen data) before the border lines. - There should be 16 blank lines after an interrupt is called. - */ - draw_border(bitmap, full_refresh, - SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER, - SPEC_LEFT_BORDER, SPEC_DISPLAY_XSIZE, SPEC_RIGHT_BORDER, - SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES, - SPEC_RIGHT_BORDER_CYCLES, SPEC_RETRACE_CYCLES, 200, 0xfe); - return 0; -} - -VIDEO_START( spectrum_128 ) -{ - frame_number = 0; - flash_invert = 0; - - EventList_Initialise(30000); - - return 0; -} - -/* Refresh the spectrum 128 screen (code modified from COUPE.C) */ -VIDEO_UPDATE( spectrum_128 ) -{ - /* for now do a full-refresh */ - int x, y, b, scrx, scry; - unsigned short ink, pap; - unsigned char *attr, *scr; - int full_refresh = 1; - - scr=spectrum_128_screen_location; - - for (y=0; y<192; y++) - { - scrx=SPEC_LEFT_BORDER; - scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - attr=spectrum_128_screen_location + ((scry>>3)*32) + 0x1800; - - for (x=0;x<32;x++) - { - /* Get ink and paper colour with bright */ - if (flash_invert && (*attr & 0x80)) - { - ink=((*attr)>>3) & 0x0f; - pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - } - else - { - ink=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - pap=((*attr)>>3) & 0x0f; - } - - for (b=0x80;b!=0;b>>=1) - { - if (*scr&b) - plot_pixel(bitmap,scrx++,SPEC_TOP_BORDER+scry,Machine->pens[ink]); - else - plot_pixel(bitmap,scrx++,SPEC_TOP_BORDER+scry,Machine->pens[pap]); - } - scr++; - attr++; - } - } - - draw_border(bitmap, full_refresh, - SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER, - SPEC_LEFT_BORDER, SPEC_DISPLAY_XSIZE, SPEC_RIGHT_BORDER, - SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES, - SPEC_RIGHT_BORDER_CYCLES, SPEC128_RETRACE_CYCLES, 200, 0xfe); - return 0; -} - -/******************************************************************* - * - * Update the TS2068 display. - * - * Port ff is used to set the display mode. - * - * bits 2..0 Video Mode Select - * 000 = Primary DFILE active (at 0x4000-0x5aff) - * 001 = Secondary DFILE active (at 0x6000-0x7aff) - * 010 = Extended Colour Mode (chars at 0x4000-0x57ff, colors 0x6000-0x7aff) - * 110 = 64 column mode (columns 0,2,4,...62 from DFILE 1 - * columns 1,3,5,...63 from DFILE 2) - * other = unpredictable results - * - * bits 5..3 64 column mode ink/paper selection (attribute value in brackets) - * 000 = Black/White (56) 100 = Green/Magenta (28) - * 001 = Blue/Yellow (49) 101 = Cyan/Red (21) - * 010 = Red/Cyan (42) 110 = Yellow/Blue (14) - * 011 = Magenta/Green (35) 111 = White/Black (7) - * - *******************************************************************/ - -/* Draw a scanline in TS2068/TC2048 hires mode (code modified from COUPE.C) */ -static void ts2068_hires_scanline(mame_bitmap *bitmap, int y, int borderlines) -{ - int x,b,scrx,scry; - unsigned short ink,pap; - unsigned char *attr, *scr; - - scrx=TS2068_LEFT_BORDER; - scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - - scr=mess_ram + y*32; - attr=scr + 0x2000; - - for (x=0;x<32;x++) - { - /* Get ink and paper colour with bright */ - if (flash_invert && (*attr & 0x80)) - { - ink=((*attr)>>3) & 0x0f; - pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - } - else - { - ink=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - pap=((*attr)>>3) & 0x0f; - } - - for (b=0x80;b!=0;b>>=1) - { - if (*scr&b) - { - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[ink]); - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[ink]); - } - else - { - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[pap]); - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[pap]); - } - } - scr++; - attr++; - } -} - -/* Draw a scanline in TS2068/TC2048 64-column mode */ -static void ts2068_64col_scanline(mame_bitmap *bitmap, int y, int borderlines, unsigned short inkcolor) -{ - int x,b,scrx,scry; - unsigned char *scr1, *scr2; - - scrx=TS2068_LEFT_BORDER; - scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - - scr1=mess_ram + y*32; - scr2=scr1 + 0x2000; - - for (x=0;x<32;x++) - { - for (b=0x80;b!=0;b>>=1) - { - if (*scr1&b) - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[inkcolor]); - else - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[7-inkcolor]); - } - scr1++; - - for (b=0x80;b!=0;b>>=1) - { - if (*scr2&b) - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[inkcolor]); - else - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[7-inkcolor]); - } - scr2++; - } -} - -/* Draw a scanline in TS2068/TC2048 lores (normal Spectrum) mode */ -static void ts2068_lores_scanline(mame_bitmap *bitmap, int y, int borderlines, int screen) -{ - int x,b,scrx,scry; - unsigned short ink,pap; - unsigned char *attr, *scr; - - scrx=TS2068_LEFT_BORDER; - scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); - - scr = mess_ram + y*32 + screen*0x2000; - attr = mess_ram + ((scry>>3)*32) + screen*0x2000 + 0x1800; - - for (x=0;x<32;x++) - { - /* Get ink and paper colour with bright */ - if (flash_invert && (*attr & 0x80)) - { - ink=((*attr)>>3) & 0x0f; - pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - } - else - { - ink=((*attr) & 0x07) + (((*attr)>>3) & 0x08); - pap=((*attr)>>3) & 0x0f; - } - - for (b=0x80;b!=0;b>>=1) - { - if (*scr&b) - { - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[ink]); - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[ink]); - } - else - { - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[pap]); - plot_pixel(bitmap,scrx++,scry+borderlines,Machine->pens[pap]); - } - } - scr++; - attr++; - } -} - -VIDEO_UPDATE( ts2068 ) -{ - /* for now TS2068 will do a full-refresh */ - int count; - int full_refresh = 1; - - if ((ts2068_port_ff_data & 7) == 6) - { - /* 64 Column mode */ - unsigned short inkcolor = (ts2068_port_ff_data & 0x38) >> 3; - for (count = 0; count < 192; count++) - ts2068_64col_scanline(bitmap, count, TS2068_TOP_BORDER, inkcolor); - } - else if ((ts2068_port_ff_data & 7) == 2) - { - /* Extended Color mode */ - for (count = 0; count < 192; count++) - ts2068_hires_scanline(bitmap, count, TS2068_TOP_BORDER); - } - else if ((ts2068_port_ff_data & 7) == 1) - { - /* Screen 6000-7aff */ - for (count = 0; count < 192; count++) - ts2068_lores_scanline(bitmap, count, TS2068_TOP_BORDER, 1); - } - else - { - /* Screen 4000-5aff */ - for (count = 0; count < 192; count++) - ts2068_lores_scanline(bitmap, count, TS2068_TOP_BORDER, 0); - } - - draw_border(bitmap, full_refresh, - TS2068_TOP_BORDER, SPEC_DISPLAY_YSIZE, TS2068_BOTTOM_BORDER, - TS2068_LEFT_BORDER, TS2068_DISPLAY_XSIZE, TS2068_RIGHT_BORDER, - SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES, - SPEC_RIGHT_BORDER_CYCLES, SPEC_RETRACE_CYCLES, 200, 0xfe); - return 0; -} - -VIDEO_UPDATE( tc2048 ) -{ - /* for now TS2068 will do a full-refresh */ - int count; - int full_refresh = 1; - - if ((ts2068_port_ff_data & 7) == 6) - { - /* 64 Column mode */ - unsigned short inkcolor = (ts2068_port_ff_data & 0x38) >> 3; - for (count = 0; count < 192; count++) - ts2068_64col_scanline(bitmap, count, SPEC_TOP_BORDER, inkcolor); - } - else if ((ts2068_port_ff_data & 7) == 2) - { - /* Extended Color mode */ - for (count = 0; count < 192; count++) - ts2068_hires_scanline(bitmap, count, SPEC_TOP_BORDER); - } - else if ((ts2068_port_ff_data & 7) == 1) - { - /* Screen 6000-7aff */ - for (count = 0; count < 192; count++) - ts2068_lores_scanline(bitmap, count, SPEC_TOP_BORDER, 1); - } - else - { - /* Screen 4000-5aff */ - for (count = 0; count < 192; count++) - ts2068_lores_scanline(bitmap, count, SPEC_TOP_BORDER, 0); - } - - draw_border(bitmap, full_refresh, - SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER, - TS2068_LEFT_BORDER, TS2068_DISPLAY_XSIZE, TS2068_RIGHT_BORDER, - SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES, - SPEC_RIGHT_BORDER_CYCLES, SPEC_RETRACE_CYCLES, 200, 0xfe); - return 0; -} diff --git a/mess/vidhrdw/studio2.c b/mess/vidhrdw/studio2.c deleted file mode 100644 index c53f38e94..000000000 --- a/mess/vidhrdw/studio2.c +++ /dev/null @@ -1,115 +0,0 @@ -/****************************************************************************** - PeT mess@utanet.at 2000 -******************************************************************************/ -#include "driver.h" -#include "cpu/cdp1802/cdp1802.h" - -#include "includes/studio2.h" - -/* - emulation of the rcata10171v1 (cdp1861) video controller - */ - - -static struct { - UINT8 data[128][8]; - void *timer; - int line; - int dma_activ; - int state; - int count; -} studio2_video={ { {0} } }; - -int studio2_get_vsync(void) -{ - return !studio2_video.dma_activ; -} - -#define COLUMNS 14 -#define LINES 256 -void studio2_video_dma(int cycles) -{ - int i; - - switch (studio2_video.state) { - case 0: // deactivated - break; - case 1: - studio2_video.count=29; - studio2_video.line=0; - studio2_video.state=10; - cpunum_set_input_line(0, CDP1802_IRQ_STATE, PULSE_LINE); - studio2_video.dma_activ=1; - break; - case 2: - studio2_video.count-=cycles; - if (studio2_video.count<0) { - studio2_video.line=0; - studio2_video.state=10; - studio2_video.count+=COLUMNS; - } - break; - case 10: - studio2_video.count-=cycles; - if (studio2_video.count<=0) { - for (i=0; i<8; i++) { - studio2_video.data[studio2_video.line][i]=cdp1802_dma_read(); - } - studio2_video.count+=COLUMNS-8; - if (++studio2_video.line>=128) { - studio2_video.dma_activ=0; - // turn off irq line !? - studio2_video.count+=2*COLUMNS; - studio2_video.state++; - } - } - break; - case 11: - studio2_video.count-=cycles; - if (studio2_video.count<=0) { -// while dma_activ is high Register0 is corrected for doublescanning -// after is it waiting for it going high again - studio2_video.dma_activ=1; - studio2_video.count+=COLUMNS; - studio2_video.state++; - if (++studio2_video.line>=256) studio2_video.state=1; - } - break; - case 12: - studio2_video.count-=cycles; - if (studio2_video.count<=0) { - studio2_video.dma_activ=0; - studio2_video.count+=COLUMNS; - studio2_video.state=11; - if (++studio2_video.line>=256) studio2_video.state=1; - } - break; - } -} - -VIDEO_START( studio2 ) -{ - /* video chip is initially disabled */ - studio2_video.state=0; - return 0; -} - -VIDEO_UPDATE( studio2 ) -{ - int x, y, j; - - for (y=0; y<128;y++) { - for (x=0, j=0; j<8;j++,x+=8*4) - drawgfx(bitmap, Machine->gfx[0], studio2_video.data[y][j],0, - 0,0,x,y, - 0, TRANSPARENCY_NONE,0); - } - return 0; -} - - READ8_HANDLER( cdp1861_video_enable_r ) -{ - studio2_video.state=1; - return 0; //? -} - diff --git a/mess/vidhrdw/sym1.c b/mess/vidhrdw/sym1.c deleted file mode 100644 index fe8e7f301..000000000 --- a/mess/vidhrdw/sym1.c +++ /dev/null @@ -1,154 +0,0 @@ -/****************************************************************************** - SYM-1 - - PeT mess@utanet.at May 2000 - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" - -#include "includes/sym1.h" - -UINT8 sym1_led[6]= {0}; - -static unsigned char sym1_palette[] = -{ - 0x20,0x02,0x05, - 0xc0, 0, 0 -}; - -PALETTE_INIT( sym1 ) -{ - palette_set_colors(machine, 0, sym1_palette, sizeof(sym1_palette) / 3); -} - -VIDEO_START( sym1 ) -{ - videoram_size = 6 * 2 + 24; - videoram = (UINT8*) auto_malloc (videoram_size); - -#if 0 - { - char backdrop_name[200]; - /* try to load a backdrop for the machine */ - sprintf (backdrop_name, "%s.png", Machine->gamedrv->name); - backdrop_load(backdrop_name, 3); - } -#endif - - if (video_start_generic(machine) != 0) - return 1; - - return 0; -} - -static const char led[] = - " aaaaaaaaa\r" - " ff aaaaaaaaa bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " ff bb\r" - " gggggggg\r" - " ee gggggggg cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee cc\r" - " ee ddddddddd cc\r" - "ii ddddddddd hh\r" - "ii hh"; - -static void sym1_draw_7segment(mame_bitmap *bitmap,int value, int x, int y) -{ - int i, xi, yi, mask, color; - - for (i=0, xi=0, yi=0; led[i]; i++) { - mask=0; - switch (led[i]) { - case 'a': mask=1; break; - case 'b': mask=2; break; - case 'c': mask=4; break; - case 'd': mask=8; break; - case 'e': mask=0x10; break; - case 'f': mask=0x20; break; - case 'g': mask=0x40; break; - case 'h': mask=0x80; break; - } - - if (mask!=0) { - color=Machine->pens[(value&mask)?1:0]; - plot_pixel(bitmap, x+xi, y+yi, color); - } - if (led[i]!='\r') xi++; - else { yi++, xi=0; } - } -} - -static const struct { - int x,y; -} sym1_led_pos[8]={ - {594,262}, - {624,262}, - {653,262}, - {682,262}, - {711,262}, - {741,262}, - {80,228}, - {360,32} -}; - -static const char* single_led= -" 111\r" -"11111\r" -"11111\r" -"11111\r" -" 111" -; - -static void sym1_draw_led(mame_bitmap *bitmap,INT16 color, int x, int y) -{ - int j, xi=0; - for (j=0; single_led[j]; j++) { - switch (single_led[j]) { - case '1': - plot_pixel(bitmap, x+xi, y, color); - xi++; - break; - case ' ': - xi++; - break; - case '\r': - xi=0; - y++; - break; - }; - } -} - -VIDEO_UPDATE( sym1 ) -{ - int i; - - for (i=0; i<6; i++) { - sym1_draw_7segment(bitmap, sym1_led[i], sym1_led_pos[i].x, sym1_led_pos[i].y); -// sym1_draw_7segment(bitmap, sym1_led[i], sym1_led_pos[i].x-160, sym1_led_pos[i].y-120); - sym1_led[i]=0; - } - - sym1_draw_led(bitmap, Machine->pens[1], - sym1_led_pos[6].x, sym1_led_pos[6].y); - sym1_draw_led(bitmap, Machine->pens[1], - sym1_led_pos[7].x, sym1_led_pos[7].y); - return 0; -} - diff --git a/mess/vidhrdw/thomson.c b/mess/vidhrdw/thomson.c deleted file mode 100644 index 1e21a2edd..000000000 --- a/mess/vidhrdw/thomson.c +++ /dev/null @@ -1,1091 +0,0 @@ -/********************************************************************** - - Copyright (C) Antoine Mine' 2006 - - Thomson 8-bit computers - -**********************************************************************/ - -#include "math.h" -#include "driver.h" -#include "timer.h" -#include "state.h" -#include "cpu/m6809/m6809.h" -#include "machine/6821pia.h" -#include "machine/mc6846.h" -#include "machine/thomson.h" -#include "vidhrdw/thomson.h" - - -#define VERBOSE 0 - - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif - -#define PRINT(x) mame_printf_info x - - -/* One GPL is what is drawn in 1 us by the video system in the active window. - Most of the time, it corresponds to a 8-pixel wide horizontal span. - For some TO8/9/9+/MO6 modes, it can be 4-pixel or 16-pixel wide. - There are always 40 GPLs in an active row, and it is always defined by - two bytes in video memory (0x2000 bytes appart). -*/ - -#define THOM_GPL_PER_LINE 40 - - -/****************** dynamic screen size *****************/ - -/* We allow choosing dynamically: - - the border size - - whether we use 640 pixels or 320 pixels in an active row - (now this is automatically choosen by default for each frame) - */ - -static UINT16 thom_bwidth; -static UINT16 thom_bheight; -/* border size */ - -static UINT8 thom_hires; -/* 0 = low res: 320x200 active area (faster) - 1 = hi res: 640x200 active area (can represent all video modes) - */ - -static UINT8 thom_hires_better; -/* 1 = a 640 mode was used in the last frame */ - -static int thom_update_screen_size( void ) -{ - UINT8 p = readinputport( THOM_INPUT_VCONFIG ); - int new_w, new_h, changed = 0; - switch ( p & 3 ) { - case 0: thom_bwidth = 56; thom_bheight = 47; break; /* as in original (?) */ - case 1: thom_bwidth = 16; thom_bheight = 16; break; /* small */ - default: thom_bwidth = 0; thom_bheight = 0; break; /* none */ - } - - switch ( p & 0xc ) { - case 0: thom_hires = 0; break; /* low */ - case 4: thom_hires = 1; break; /* high */ - default: thom_hires = thom_hires_better; break; /* auto */ - } - - new_w = ( 320 + thom_bwidth * 2 ) * ( thom_hires + 1 ) - 1; - new_h = ( 200 + thom_bheight * 2 ) /** (thom_hires + 1 )*/ - 1; - if ( ( Machine->screen[0].visarea.max_x != new_w ) || - ( Machine->screen[0].visarea.max_y != new_h ) ) { - changed = 1; - video_screen_set_visarea( 0, 0, new_w, 0, new_h ); - } - - return changed; -} - - - -/*********************** video timing ******************************/ - -/* we use our own video timing to precisely cope with VBLANK and HBLANK */ - -static mame_timer* thom_video_timer; /* time elapsed from begining of frame */ - -/* elapsed time from begining of frame, in us */ -INLINE unsigned thom_video_elapsed ( void ) -{ - unsigned u; - mame_time elapsed = mame_timer_timeelapsed( thom_video_timer ); - u = SUBSECONDS_TO_DOUBLE( elapsed.subseconds ) / TIME_IN_USEC( 1 ); - if ( u >= 19968 ) u = 19968; - return u; -} - -struct thom_vsignal thom_get_vsignal ( void ) -{ - struct thom_vsignal v; - int gpl = thom_video_elapsed() - 64 * THOM_BORDER_HEIGHT - 7; - if ( gpl < 0 ) gpl += 19968; - - v.inil = ( gpl & 63 ) <= 40; - - v.init = gpl < (64 * THOM_ACTIVE_HEIGHT - 24); - - v.lt3 = ( gpl & 8 ) ? 1 : 0; - - v.line = gpl >> 6; - - v.count = v.line * 320 + ( gpl & 63 ) * 8; - - return v; -} - - -/************************** lightpen *******************************/ - -static void thom_get_lightpen_pos( int*x, int* y ) -{ - *x = readinputport( THOM_INPUT_LIGHTPEN ); - *y = readinputport( THOM_INPUT_LIGHTPEN + 1 ); - if ( *x < 0 ) *x = 0; - if ( *y < 0 ) *y = 0; - if ( *x > 2 * thom_bwidth + 319 ) *x = 2 * thom_bwidth + 319; - if ( *y > 2 * thom_bheight + 199 ) *y = 2 * thom_bheight + 199; -} - -struct thom_vsignal thom_get_lightpen_vsignal ( int xdec, int ydec, int xdec2 ) -{ - struct thom_vsignal v; - int x, y; - int gpl; - - thom_get_lightpen_pos( &x, &y ); - x += xdec - thom_bwidth; - y += ydec - thom_bheight; - - gpl = (x >> 3) + y * 64; - if ( gpl < 0 ) gpl += 19968; - - v.inil = (gpl & 63) <= 41; - - v.init = (gpl <= 64 * THOM_ACTIVE_HEIGHT - 24); - - v.lt3 = ( gpl & 8 ) ? 1 : 0; - - v.line = y; - - if ( v.inil && v.init ) - v.count = - ( gpl >> 6 ) * 320 + /* line */ - ( gpl & 63 ) * 8 + /* gpl inside line */ - ( (x + xdec2) & 7 ); /* pixel inside gpl */ - else v.count = 0; - - return v; -} - - -/* number of lightpen call-backs per frame */ -static int thom_lightpen_nb; - -/* called thom_lightpen_nb times */ -static mame_timer *thom_lightpen_timer; - -/* lightpen callback function to call from timer */ -static void (*thom_lightpen_cb) ( int ); - -void thom_set_lightpen_callback ( int nb, void (*cb) ( int step ) ) -{ - LOG (( "%f thom_set_lightpen_callback called\n", timer_get_time() )); - thom_lightpen_nb = nb; - thom_lightpen_cb = cb; -} - -static void thom_lightpen_step ( int step ) -{ - if ( thom_lightpen_cb ) thom_lightpen_cb( step ); - if ( step < thom_lightpen_nb ) - timer_adjust( thom_lightpen_timer, TIME_IN_USEC( 64 ), step + 1, 0 ); -} - - -/***************** scan-line oriented engine ***********************/ - -/* This code, common for all Thomson machines, emulates the TO8 - video hardware, with its 16-colors chosen among 4096, 9 video modes, - and 4 video pages. Moreover, it emulates changing the palette several times - per frame to simulate more than 16 colors per frame (and the same for mode - and page switchs) and cooper effects (distinguishing the left and right - border color of each row). - - TO7, TO7/70 and MO5 video hardware are much simpler (8 or 16 fixed colors, - one mode and one video page). Although the three are different, they can all - be emulated by the TO8 video hardware. - Thus, we use the same TO8-emulation code to deal with these simpler - hardware (although it is somewhat of an overkill). - */ - - -/* ---------------- state & state changes ---------------- */ - -UINT8* thom_vram; /* pointer to video memory */ - -static mame_timer* thom_scanline_timer; /* scan-line udpate */ - -static UINT16 thom_last_pal[16]; /* palette at last scanline start */ -static UINT16 thom_pal[16]; /* current palette */ -static UINT8 thom_pal_changed; /* whether pal != old_pal */ -static UINT8 thom_border_index; /* current border color index */ - -/* the left and right border color for each row (including top and bottom - border rows); -1 means unchanged wrt last scanline -*/ -static INT16 thom_border_l[THOM_TOTAL_HEIGHT+1]; -static INT16 thom_border_r[THOM_TOTAL_HEIGHT+1]; - -/* active area, updated one scan-line at a time every 64us, - then blitted in VIDEO_UPDATE - */ -static UINT16 thom_vbody[640*200]; - -static UINT8 thom_vmode; /* current vide mode */ -static UINT8 thom_vpage; /* current video page */ - -/* this stores the video mode & page at each GPL in the current line - (-1 means unchanged) - */ -static INT16 thom_vmodepage[41]; -static UINT8 thom_vmodepage_changed; - -/* one dirty flag for each video memory line */ -static UINT8 thom_vmem_dirty[205]; - -/* set to 1 if undirty scanlines need to be redrawn due to other video state - changes */ -static UINT8 thom_vstate_dirty; -static UINT8 thom_vstate_last_dirty; - -/* returns 1 if the mode is 640 pixel wide, 0 if it is 160 or 320 */ -static int thom_mode_is_hires( int mode ) -{ - return ( mode == THOM_VMODE_80 ) || ( mode == THOM_VMODE_80_TO9 ); -} - -/* either the border index or its palette entry has changed */ -static void thom_border_changed( void ) -{ - unsigned l = thom_video_elapsed(); - unsigned y = l >> 6; - unsigned x = l & 63; - unsigned color = thom_pal[ thom_border_index ]; - if ( y >= THOM_TOTAL_HEIGHT ) { - /* end of page */ - thom_border_r[ THOM_TOTAL_HEIGHT ] = color; - } - else if ( ! x ) { - /* start of line */ - thom_border_l[ y ] = color; - thom_border_r[ y ] = color; - } - else if ( x <= 19 ) { - /* between left and right border */ - /* NOTE: this makes the lower right part of the color picker blink - in the TO8/TO9/TO9+, which actually happens on the real computer! - */ - thom_border_r[ y ] = color; - thom_border_l[ y + 1 ] = color; - } - else { - /* end of line */ - thom_border_l[ y + 1 ] = color; - thom_border_r[ y + 1 ] = color; - } -} - -/* the video mode or page has changed */ -static void thom_gplinfo_changed( void ) -{ - unsigned l = thom_video_elapsed() - THOM_BORDER_HEIGHT * 64 - 7; - unsigned y = l >> 6; - unsigned x = l & 63; - int modepage = ((int)thom_vmode << 8) | thom_vpage; - if ( y >= 200 || x>= 40 ) thom_vmodepage[ 40 ] = modepage; - else thom_vmodepage[ x ] = modepage; - thom_vmodepage_changed = 1; - thom_vstate_dirty = 1; -} - -void thom_set_border_color ( unsigned index ) -{ - assert( index < 16 ); - if ( index != thom_border_index ) { - thom_border_index = index; - thom_border_changed(); - } -} - -void thom_set_palette ( unsigned index, UINT16 color ) -{ - assert( index < 16 ); - if ( color != 0x1000 ) color &= 0xfff; - if ( thom_pal[ index ] == color ) return; - thom_pal[ index ] = color; - if ( index == thom_border_index ) thom_border_changed(); - thom_pal_changed = 1; - thom_vstate_dirty = 1; -} - -void thom_set_video_mode ( unsigned mode ) -{ - assert( mode < THOM_VMODE_NB ); - if ( mode != thom_vmode ) { - thom_vmode = mode; - thom_gplinfo_changed(); - thom_hires_better |= thom_mode_is_hires( mode ); - } -} - -void thom_set_video_page ( unsigned page ) -{ - assert( page < THOM_NB_PAGES ); - if ( page != thom_vpage ) { - thom_vpage = page; - thom_gplinfo_changed(); - } -} - - -/* -------------- drawing --------------- */ - -typedef void ( *thom_scandraw ) ( UINT8* vram, UINT16* dst, UINT16* pal, - int org, int len ); - -#define UPDATE( name, res ) \ - static void name##_scandraw_##res ( UINT8* vram, UINT16* dst, UINT16* pal, \ - int org, int len ) \ - { \ - unsigned gpl; \ - vram += org; \ - dst += org * res; \ - for ( gpl = 0; gpl < len; gpl++, dst += res, vram++ ) { \ - UINT8 rama = vram[ 0 ]; \ - UINT8 ramb = vram[ 0x2000 ]; - -#define UPDATE_HI( name ) UPDATE( name, 16 ) -#define UPDATE_LOW( name ) UPDATE( name, 8 ) - -#define END_UPDATE } } - - -/* 320x200, 16-colors, constraints: 2 distinct colors per GPL (8 pixels) */ -/* this also works for TO7, assuming the 2 top bits of each color byte are 1 */ -UPDATE_HI( to770 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ]; - c[1] = Machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( to770 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ ((ramb & 7) | ((ramb>>4) & 8)) ^ 8 ] ]; - c[1] = Machine->pens[ pal[ ((ramb >> 3) & 15) ^ 8 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; -} -END_UPDATE - -/* as above, different (more logical but TO7-incompatible) color encoding */ -UPDATE_HI( mo5 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ ramb & 15 ] ]; - c[1] = Machine->pens[ pal[ ramb >> 4 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( mo5 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ ramb & 15 ] ]; - c[1] = Machine->pens[ pal[ ramb >> 4 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; -} -END_UPDATE - -/* as to770, but with pastel color bit unswitched */ -UPDATE_HI( to9 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ]; - c[1] = Machine->pens[ pal[ (ramb >> 3) & 15 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( to9 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ (ramb & 7) | ((ramb>>4) & 8) ] ]; - c[1] = Machine->pens[ pal[ (ramb >> 3) & 15 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; -} -END_UPDATE - -/* 320x200, 4-colors, no constraint */ -UPDATE_HI( bitmap4 ) -{ - int i; - pen_t c[2][2]; - c[0][0] = Machine->pens[ pal[ 0 ] ]; - c[0][1] = Machine->pens[ pal[ 1 ] ]; - c[1][0] = Machine->pens[ pal[ 2 ] ]; - c[1][1] = Machine->pens[ pal[ 3 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1, ramb >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ] [ ramb & 1 ]; -} -END_UPDATE -UPDATE_LOW( bitmap4 ) -{ - int i; - pen_t c[2][2]; - c[0][0] = Machine->pens[ pal[ 0 ] ]; - c[0][1] = Machine->pens[ pal[ 1 ] ]; - c[1][0] = Machine->pens[ pal[ 2 ] ]; - c[1][1] = Machine->pens[ pal[ 3 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1, ramb >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ] [ ramb & 1 ]; -} -END_UPDATE - -/* as above, but using 2-bit pixels instead of 2 planes of 1-bit pixels */ -UPDATE_HI( bitmap4alt ) -{ - int i; - pen_t c[4]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 1 ] ]; - c[2] = Machine->pens[ pal[ 2 ] ]; - c[3] = Machine->pens[ pal[ 3 ] ]; - for ( i = 0; i < 8; i += 2, ramb >>= 2 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ ramb & 3 ]; - for ( i = 0; i < 8; i += 2, rama >>= 2 ) - dst[ 7 - i ] = dst[ 6 - i ] = c[ rama & 3 ]; -} -END_UPDATE -UPDATE_LOW( bitmap4alt ) -{ - int i; - pen_t c[4]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 1 ] ]; - c[2] = Machine->pens[ pal[ 2 ] ]; - c[3] = Machine->pens[ pal[ 3 ] ]; - for ( i = 0; i < 4; i++, ramb >>= 2 ) - dst[ 7 - i ] = c[ ramb & 3 ]; - for ( i = 0; i < 4; i++, rama >>= 2 ) - dst[ 3 - i ] = c[ rama & 3 ]; -} -END_UPDATE - -/* 160x200, 16-colors, no constraint */ -UPDATE_HI( bitmap16 ) -{ - dst[ 0] = dst[ 1] = dst[ 2] = dst[ 3] = Machine->pens[ pal[ rama >> 4 ] ]; - dst[ 4] = dst[ 5] = dst[ 6] = dst[ 7] = Machine->pens[ pal[ rama & 15 ] ]; - dst[ 8] = dst[ 9] = dst[10] = dst[11] = Machine->pens[ pal[ ramb >> 4 ] ]; - dst[12] = dst[13] = dst[14] = dst[15] = Machine->pens[ pal[ ramb & 15 ] ]; -} -END_UPDATE -UPDATE_LOW( bitmap16 ) -{ - dst[0] = dst[1] = Machine->pens[ pal[ rama >> 4 ] ]; - dst[2] = dst[3] = Machine->pens[ pal[ rama & 15 ] ]; - dst[4] = dst[5] = Machine->pens[ pal[ ramb >> 4 ] ]; - dst[6] = dst[7] = Machine->pens[ pal[ ramb & 15 ] ]; -} -END_UPDATE - -/* 640x200 (80 text column), 2-colors, no constraint */ -UPDATE_HI( mode80 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 1 ] ]; - for ( i = 0; i < 8; i++, ramb >>= 1 ) - dst[ 15 - i ] = c[ ramb & 1 ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( mode80 ) -{ - /* 640-pixel mode but 320 pixels emulated => we merge pixels */ - int i; - pen_t c[4]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = c[2] = c[3] = Machine->pens[ pal[ 1 ] ]; - for ( i = 0; i < 4; i++, ramb >>= 2 ) - dst[ 7 - i ] = c[ ramb & 3 ]; - for ( i = 0; i < 4; i++, rama >>= 2 ) - dst[ 3 - i ] = c[ rama & 3 ]; -} -END_UPDATE - -/* as above, but TO9 flavor */ -UPDATE_HI( mode80_to9 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 6 ] ]; - for ( i = 0; i < 8; i++, ramb >>= 1 ) - dst[ 15 - i ] = c[ ramb & 1 ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( mode80_to9 ) -{ - int i; - pen_t c[4]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = c[2] = c[3] = Machine->pens[ pal[ 6 ] ]; - for ( i = 0; i < 4; i++, ramb >>= 2 ) - dst[ 7 - i ] = c[ ramb & 3 ]; - for ( i = 0; i < 4; i++, rama >>= 2 ) - dst[ 3 - i ] = c[ rama & 3 ]; -} -END_UPDATE - -/* 320x200, 2-colors, two pages (untested) */ -UPDATE_HI( page1 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 1 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ rama & 1 ]; - (void)ramb; -} -END_UPDATE -UPDATE_LOW( page1 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 1 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1 ) - dst[ 7 - i ] = c[ rama & 1 ]; - (void)ramb; -} -END_UPDATE - -UPDATE_HI( page2 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 2 ] ]; - for ( i = 0; i < 16; i += 2, ramb >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ ramb & 1 ]; - (void)rama; -} -END_UPDATE -UPDATE_LOW( page2 ) -{ - int i; - pen_t c[2]; - c[0] = Machine->pens[ pal[ 0 ] ]; - c[1] = Machine->pens[ pal[ 2 ] ]; - for ( i = 0; i < 8; i++, ramb >>= 1 ) - dst[ 7 - i ] = c[ ramb & 1 ]; - (void)rama; -} -END_UPDATE - -/* 320x200, 2-colors, two overlaid pages (untested) */ -UPDATE_HI( overlay ) -{ - int i; - pen_t c[2][2]; - c[0][0] = Machine->pens[ pal[ 0 ] ]; - c[0][1] = c[1][1] = Machine->pens[ pal[ 1 ] ]; - c[1][0] = Machine->pens[ pal[ 2 ] ]; - for ( i = 0; i < 16; i += 2, rama >>= 1, ramb >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = c[ ramb & 1 ] [ rama & 1 ]; -} -END_UPDATE -UPDATE_LOW( overlay ) -{ - int i; - pen_t c[2][2]; - c[0][0] = Machine->pens[ pal[ 0 ] ]; - c[0][1] = c[1][1] = Machine->pens[ pal[ 1 ] ]; - c[1][0] = Machine->pens[ pal[ 2 ] ]; - for ( i = 0; i < 8; i++, rama >>= 1, ramb >>= 1 ) - dst[ 7 - i ] = c[ ramb & 1 ] [ rama & 1 ]; -} -END_UPDATE - -/* 160x200, 4-colors, four overlaid pages (untested) */ -UPDATE_HI( overlay3 ) -{ - static const int p[2][2][2][2] = - { { { { 0, 1 }, { 2, 1 }, }, { { 4, 1 }, { 2, 1 } } }, - { { { 8, 1 }, { 2, 1 }, }, { { 4, 1 }, { 2, 1 } } } }; - int i; - for ( i = 0; i < 16; i += 4, rama >>= 1, ramb >>= 1 ) - dst[ 15 - i ] = dst[ 14 - i ] = dst[ 13 - i ] = dst[ 12 - i ] = - Machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ] - [ rama & 1 ] [ (rama >> 4) & 1 ] ] ]; -} -END_UPDATE -UPDATE_LOW( overlay3 ) -{ - static const int p[2][2][2][2] = - { { { { 0, 1 }, { 2, 1 }, }, { { 4, 1 }, { 2, 1 } } }, - { { { 8, 1 }, { 2, 1 }, }, { { 4, 1 }, { 2, 1 } } } }; - int i; - for ( i = 0; i < 8; i += 2, rama >>= 1, ramb >>= 1 ) - dst[ 7 - i ] = dst[ 6 - i ] = - Machine->pens[ pal[ p[ ramb & 1 ] [ (ramb >> 4) & 1 ] - [ rama & 1 ] [ (rama >> 4) & 1 ] ] ]; -} -END_UPDATE - -#define FUN(x) { x##_scandraw_8, x##_scandraw_16 } - -const thom_scandraw thom_scandraw_funcs[THOM_VMODE_NB][2] = { - FUN(to770), FUN(mo5), FUN(bitmap4), FUN(bitmap4alt), FUN(mode80), - FUN(bitmap16), FUN(page1), FUN(page2), FUN(overlay), FUN(overlay3), - FUN(to9), FUN(mode80_to9), -}; - -/* called at the start of each scanline in the active area, just after - left border (-1<=y<199), and also after the last scanline (y=199) -*/ -void thom_scanline_start( int y ) -{ - /* update active-area */ - if ( y >= 0 && - (thom_vstate_dirty || thom_vstate_last_dirty || thom_vmem_dirty[y]) ) { - int x = 0; - while ( x < 40 ) { - int xx = x; - unsigned mode = thom_vmodepage[x] >> 8; - unsigned page = thom_vmodepage[x] & 0xff; - assert( mode < THOM_VMODE_NB ); - assert( page < 4 ); - do { xx++; } while ( xx < 40 && thom_vmodepage[xx] == -1 ); - thom_scandraw_funcs[ mode ][ thom_hires ] - ( thom_vram + y * 40 + page * 0x4000, - thom_vbody + y * 320 * (thom_hires+1), - thom_last_pal, x, xx-x ); - x = xx; - } - thom_vmem_dirty[y] = 0; - } - - /* prepare for next scanline */ - if ( y == 199 ) timer_adjust( thom_scanline_timer, TIME_NEVER, 0, 0); - else { - - if ( thom_vmodepage_changed ) { - int x, m = 0; - for ( x = 0; x <= 40; x++ ) - if ( thom_vmodepage[x] !=-1 ) { - m = thom_vmodepage[x]; - thom_vmodepage[x] = -1; - } - thom_vmodepage[0] = m; - thom_vmodepage_changed = 0; - } - - if ( thom_pal_changed ) { - memcpy( thom_last_pal, thom_pal, 32 ); - thom_pal_changed = 0; - } - - timer_adjust( thom_scanline_timer, TIME_IN_USEC(64), y + 1, 0); - } -} - - -/* -------------- misc --------------- */ - -static UINT32 thom_mode_point; - -static UINT32 thom_floppy_wcount; -static UINT32 thom_floppy_rcount; - -#define FLOP_STATE (thom_floppy_wcount ? 2 : thom_floppy_rcount ? 1 : 0) - -void thom_set_mode_point ( int point ) -{ - assert( point >= 0 && point <= 1 ); - thom_mode_point = ( ! point ) * 0x2000; - memory_set_bank( THOM_VRAM_BANK, ! point ); -} - -void thom_floppy_active ( int write ) -{ - int fold = FLOP_STATE, fnew; - /* stays up for a few frames */ - if ( write ) thom_floppy_wcount = 25; - else thom_floppy_rcount = 25; - /* update icon */ - fnew = FLOP_STATE; - if ( fold != fnew ) output_set_value( "floppy", fnew ); -} - - -/* -------------- main update function --------------- */ - -VIDEO_UPDATE ( thom ) -{ - int y, ypos; - const int scale = thom_hires ? 2 : 1; - const int xbleft = thom_bwidth * scale; - const int xbright = ( thom_bwidth + THOM_ACTIVE_WIDTH ) * scale; - const int xright = ( thom_bwidth * 2 + THOM_ACTIVE_WIDTH ) * scale; - const int xwidth = THOM_ACTIVE_WIDTH * scale; - const int yup = THOM_BORDER_HEIGHT + THOM_ACTIVE_HEIGHT; - const int ybot = THOM_BORDER_HEIGHT + thom_bheight + 200; - UINT16* v = thom_vbody; - pen_t border = Machine->pens[ 0 ]; - rectangle wrect = { 0, xright - 1, 0, 0 }; - rectangle lrect = { 0, xbleft - 1, 0, 0 }; - rectangle rrect = { xbright, xright - 1, 0, 0 }; - - LOG (( "%f thom: video update called\n", timer_get_time() )); - - /* upper border */ - for ( y = 0; y < THOM_BORDER_HEIGHT - thom_bheight; y++ ) - if ( thom_border_l[ y ] != -1 ) border = Machine->pens[ thom_border_l[ y ] ]; - ypos = 0; - while ( y < THOM_BORDER_HEIGHT ) { - if ( thom_border_l[ y ] != -1 ) border = Machine->pens[ thom_border_l[ y ] ]; - wrect.min_y = ypos; - do { y++; ypos ++ /* += scale */; } - while ( y < THOM_BORDER_HEIGHT && thom_border_l[ y ] == -1 ); - wrect.max_y = ypos - 1; - fillbitmap( bitmap, border, &wrect ); - } - - /* left border */ - while ( y < yup ) { - if ( thom_border_l[ y ] != -1 ) border = Machine->pens[ thom_border_l[ y ] ]; - lrect.min_y = ypos; - do { y++; ypos ++ /* += scale */; } - while ( y < yup && thom_border_l[ y ] == -1 ); - lrect.max_y = ypos - 1; - fillbitmap( bitmap, border, &lrect ); - } - - /* lower border */ - while (y < ybot ) { - if ( thom_border_l[ y ] != -1 ) border = Machine->pens[ thom_border_l[ y ] ]; - wrect.min_y = ypos; - do { y++; ypos ++ /* += scale */; } - while ( y < ybot && thom_border_l[ y ] == -1 ); - wrect.max_y = ypos - 1; - fillbitmap( bitmap, border, &wrect ); - } - - /* right border */ - for ( y = 0; y < THOM_BORDER_HEIGHT; y++ ) - if ( thom_border_r[ y ] != -1 ) border = Machine->pens[ thom_border_r[ y ] ]; - ypos = thom_bheight /* * scale */; - while ( y < yup ) { - if ( thom_border_r[ y ] != -1 ) border = Machine->pens[ thom_border_r[ y ] ]; - rrect.min_y = ypos; - do { y++; ypos ++ /* += scale */; } - while ( y < yup && thom_border_r[ y ] == -1 ); - rrect.max_y = ypos - 1; - fillbitmap( bitmap, border, &rrect ); - } - - /* active area */ - ypos = thom_bheight /* * scale */; - for ( y = 0; y < 200; v += xwidth, y++ , ypos ++ /* += scale */ ) { - draw_scanline16( bitmap, xbleft, ypos, xwidth, v, NULL, -1 ); -#if 0 - if ( thom_hires ) - draw_scanline16( bitmap, xbleft, ypos+1, xwidth, v, NULL, -1 ); -#endif - } - - return 0; -} - - - -/* -------------- frame start ------------------ */ - -static mame_timer *thom_init_timer; - -static void (*thom_init_cb) ( int ); - -void thom_set_init_callback ( void (*cb) ( int init ) ) -{ - LOG (( "thom_set_init_callback called\n" )); - thom_init_cb = cb; -} - -static void thom_set_init ( int init ) -{ - LOG (( "%f thom_set_init: %i\n", timer_get_time(), init )); - if ( thom_init_cb ) thom_init_cb( init ); - if ( ! init ) - timer_adjust( thom_init_timer, TIME_IN_USEC( 64 * THOM_ACTIVE_HEIGHT - 24 ), - 1-init, 0 ); -} - -/* call this at the very begining of each new frame */ -VIDEO_EOF ( thom ) -{ - int fnew, fold = FLOP_STATE; - int i; - UINT16 b = 0; - struct thom_vsignal l = thom_get_lightpen_vsignal( 0, -1, 0 ); - - LOG (( "%f thom: video eof called\n", timer_get_time() )); - - /* floppy indicator count */ - if ( thom_floppy_wcount ) thom_floppy_wcount--; - if ( thom_floppy_rcount ) thom_floppy_rcount--; - fnew = FLOP_STATE; - if ( fnew != fold ) output_set_value( "floppy", fnew ); - - /* prepare state for next frame */ - for ( i = 0; i <= THOM_TOTAL_HEIGHT; i++ ) { - if ( thom_border_l[ i ] != -1 ) b = thom_border_l[ i ]; - if ( thom_border_r[ i ] != -1 ) b = thom_border_r[ i ]; - } - memset( thom_border_l, 0xff, sizeof( thom_border_l ) ); - memset( thom_border_r, 0xff, sizeof( thom_border_r ) ); - thom_border_l[ 0 ] = b; - thom_border_r[ 0 ] = b; - thom_vstate_last_dirty = thom_vstate_dirty; - thom_vstate_dirty = 0; - - /* schedule first init signal */ - timer_adjust( thom_init_timer, TIME_IN_USEC( 64 * THOM_BORDER_HEIGHT + 7 ), 0, 0 ); - - /* schedule first lightpen signal */ - l.line &= ~1; /* hack (avoid lock in MO6 palette selection) */ - timer_adjust( thom_lightpen_timer, - TIME_IN_USEC( 64 * ( THOM_BORDER_HEIGHT + l.line - 2 ) + 16 ), - 0, 0 ); - - /* schedule first active-area scanline call-back */ - timer_adjust( thom_scanline_timer, TIME_IN_USEC( 64 * THOM_BORDER_HEIGHT + 7), - -1, 0 ); - - /* reset video frame time */ - mame_timer_adjust( thom_video_timer, time_zero, 0, time_never ); - - /* update screen size according to user options */ - if ( thom_update_screen_size() ) - thom_vstate_dirty = 1; - - /* hi-res automatic */ - thom_hires_better = thom_mode_is_hires( thom_vmode ); -} - - -/* -------------- initialization --------------- */ - -static const UINT16 thom_pal_init[16] = { - 0x1000, /* 0: black */ 0x000f, /* 1: red */ - 0x00f0, /* 2: geen */ 0x00ff, /* 3: yellow */ - 0x0f00, /* 4: blue */ 0x0f0f, /* 5: purple */ - 0x0ff0, /* 6: cyan */ 0x0fff, /* 7: white */ - 0x0777, /* 8: gray */ 0x033a, /* 9: pink */ - 0x03a3, /* a: light green */ 0x03aa, /* b: light yellow */ - 0x0a33, /* c: light blue */ 0x0a3a, /* d: redish pink */ - 0x0ee7, /* e: light cyan */ 0x007b, /* f: orange */ -}; - -VIDEO_START ( thom ) -{ - LOG (( "thom: video start called\n" )); - - /* scan-line state */ - memcpy( thom_last_pal, thom_pal_init, 32 ); - memcpy( thom_pal, thom_pal_init, 32 ); - memset( thom_border_l, 0xff, sizeof( thom_border_l ) ); - memset( thom_border_r, 0xff, sizeof( thom_border_r ) ); - memset( thom_vbody, 0, sizeof( thom_vbody ) ); - memset( thom_vmodepage, 0, sizeof( thom_vmodepage ) ); - memset( thom_vmem_dirty, 0, sizeof( thom_vmem_dirty ) ); - thom_border_l[ 0 ] = 0; - thom_border_r[ 0 ] = 0; - thom_vmode = 0; - thom_vpage = 0; - thom_border_index = 0; - thom_vstate_dirty = 1; - thom_vstate_last_dirty = 1; - state_save_register_global_array( thom_last_pal ); - state_save_register_global_array( thom_pal ); - state_save_register_global_array( thom_border_l ); - state_save_register_global_array( thom_border_r ); - state_save_register_global_array( thom_vbody ); - state_save_register_global_array( thom_vmodepage ); - state_save_register_global_array( thom_vmem_dirty ); - state_save_register_global( thom_pal_changed ); - state_save_register_global( thom_vmodepage_changed ); - state_save_register_global( thom_vmode ); - state_save_register_global( thom_vpage ); - state_save_register_global( thom_border_index ); - state_save_register_global( thom_vstate_dirty ); - state_save_register_global( thom_vstate_last_dirty ); - - thom_mode_point = 0; - state_save_register_global( thom_mode_point ); - memory_set_bank( THOM_VRAM_BANK, 0 ); - - thom_floppy_rcount = 0; - thom_floppy_wcount = 0; - state_save_register_global( thom_floppy_wcount ); - state_save_register_global( thom_floppy_rcount ); - - thom_video_timer = mame_timer_alloc( NULL ); - - thom_scanline_timer = mame_timer_alloc( thom_scanline_start ); - - thom_lightpen_nb = 0; - thom_lightpen_cb = NULL; - thom_lightpen_timer = mame_timer_alloc( thom_lightpen_step ); - - thom_init_cb = NULL; - thom_init_timer = mame_timer_alloc( thom_set_init ); - - video_eof_thom(machine); - - state_save_register_global( thom_bwidth ); - state_save_register_global( thom_bheight ); - state_save_register_global( thom_hires ); - state_save_register_global( thom_hires_better ); - - return 0; -} - -PALETTE_INIT ( thom ) -{ - float gamma = 0.6; - unsigned i; - - LOG (( "thom: palette init called\n" )); - - for ( i = 0; i < 4097; i++ ) { - UINT8 r = 255. * pow( (i & 15) / 15., gamma ); - UINT8 g = 255. * pow( ((i>> 4) & 15) / 15., gamma ); - UINT8 b = 255. * pow( ((i >> 8) & 15) / 15., gamma ); - /* UINT8 alpha = i & 0x1000 ? 0 : 255; TODO: transparency */ - palette_set_color(machine, i, r, g, b ); - } -} - - -/***************************** TO7 / T9000 *************************/ - -/* write to video memory through addresses 0x4000-0x5fff */ -WRITE8_HANDLER ( to7_vram_w ) -{ - assert( offset >= 0 && offset < 0x2000 ); - /* force two topmost color bits to 1 */ - if ( thom_mode_point ) data |= 0xc0; - if ( thom_vram[ offset + thom_mode_point ] == data ) return; - thom_vram[ offset + thom_mode_point ] = data; - /* dirty whole scanline */ - thom_vmem_dirty[ offset / 40 ] = 1; -} - -/* bits 0-13 : latched gpl of lightpen position */ -/* bit 14: latched INIT */ -/* bit 15: latched INIL */ -unsigned to7_lightpen_gpl ( int decx, int decy ) -{ - int x,y; - thom_get_lightpen_pos( &x, &y ); - x -= thom_bwidth; - y -= thom_bheight; - if ( x < 0 || y < 0 || x >= 320 || y >= 200 ) return 0; - x += decx; - y += decy; - return y*40 + x/8 + (x < 320 ? 0x4000 : 0) + 0x8000; -} - - - -/***************************** TO7/70 ******************************/ - -/* write to video memory through addresses 0x4000-0x5fff (TO) - or 0x0000-0x1fff (MO) */ -WRITE8_HANDLER ( to770_vram_w ) -{ - assert( offset >= 0 && offset < 0x2000 ); - if ( thom_vram[ offset + thom_mode_point ] == data ) return; - thom_vram[ offset + thom_mode_point ] = data; - /* dirty whole scanline */ - thom_vmem_dirty[ offset / 40 ] = 1; -} - - -/***************************** TO8 ******************************/ - -/* write to video memory through system space (always page 1) */ -WRITE8_HANDLER ( to8_sys_lo_w ) -{ - UINT8* dst = thom_vram + offset + 0x6000; - assert( offset >= 0 && offset < 0x2000 ); - if ( *dst == data ) return; - *dst = data; - /* dirty whole scanline */ - thom_vmem_dirty[ offset / 40 ] = 1; -} - -WRITE8_HANDLER ( to8_sys_hi_w ) -{ - UINT8* dst = thom_vram + offset + 0x4000; - assert( offset >= 0 && offset < 0x2000 ); - if ( *dst == data ) return; - *dst = data; - /* dirty whole scanline */ - thom_vmem_dirty[ offset / 40 ] = 1; -} - -/* write to video memory through data space */ -WRITE8_HANDLER ( to8_data_lo_w ) -{ - UINT8* dst = thom_vram + offset + 0x4000 * to8_data_vpage + 0x2000; - assert( offset >= 0 && offset < 0x2000 ); - if ( *dst == data ) return; - *dst = data; - /* dirty whole scanline */ - if ( to8_data_vpage >= 4 ) return; - thom_vmem_dirty[ offset / 40 ] = 1; -} - -WRITE8_HANDLER ( to8_data_hi_w ) -{ - UINT8* dst = thom_vram + offset + 0x4000 * to8_data_vpage; - assert( offset >= 0 && offset < 0x2000 ); - if ( *dst == data ) return; - *dst = data; - /* dirty whole scanline */ - if ( to8_data_vpage >= 4 ) return; - thom_vmem_dirty[ offset / 40 ] = 1; -} - -/* write to video memory page through cartridge addresses space */ -WRITE8_HANDLER ( to8_vcart_w ) -{ - UINT8* dst = thom_vram + offset + 0x4000 * to8_cart_vpage; - assert( offset>=0 && offset < 0x4000 ); - if ( *dst == data ) return; - *dst = data; - /* dirty whole scanline */ - if ( to8_cart_vpage >= 4 ) return; - thom_vmem_dirty[ (offset & 0x1fff) / 40 ] = 1; -} - diff --git a/mess/vidhrdw/ti85.c b/mess/vidhrdw/ti85.c deleted file mode 100644 index 4ff756042..000000000 --- a/mess/vidhrdw/ti85.c +++ /dev/null @@ -1,184 +0,0 @@ -/*************************************************************************** - TI-85 driver by Krzysztof Strzecha - - Functions to emulate the video hardware of the TI-85 - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/ti85.h" - -#define TI81_VIDEO_MEMORY_SIZE 768 -#define TI81_SCREEN_X_SIZE 12 -#define TI81_SCREEN_Y_SIZE 64 -#define TI81_NUMBER_OF_FRAMES 6 - -#define TI85_VIDEO_MEMORY_SIZE 1024 -#define TI85_SCREEN_X_SIZE 16 -#define TI85_SCREEN_Y_SIZE 64 -#define TI85_NUMBER_OF_FRAMES 6 - -#define TI86_VIDEO_MEMORY_SIZE 1024 -#define TI86_SCREEN_X_SIZE 16 -#define TI86_SCREEN_Y_SIZE 64 -#define TI86_NUMBER_OF_FRAMES 6 - -static int ti_video_memory_size; -static int ti_screen_x_size; -static int ti_screen_y_size; -static int ti_number_of_frames; - -static UINT8 * ti85_frames; - -unsigned char ti85_palette[32*7][3] = -{ - { 0xae, 0xcd, 0xb0 }, { 0xaa, 0xc9, 0xae }, { 0xa6, 0xc5, 0xad }, { 0xa3, 0xc1, 0xab }, { 0x9f, 0xbd, 0xaa }, { 0x9b, 0xb9, 0xa8 }, { 0x98, 0xb5, 0xa7 }, //0x00 - { 0xae, 0xcd, 0xb0 }, { 0xa9, 0xc8, 0xae }, { 0xa4, 0xc3, 0xac }, { 0xa0, 0xbe, 0xaa }, { 0x9b, 0xb9, 0xa8 }, { 0x96, 0xb4, 0xa6 }, { 0x92, 0xaf, 0xa4 }, //0x01 - { 0xae, 0xcd, 0xb0 }, { 0xa8, 0xc7, 0xad }, { 0xa2, 0xc1, 0xab }, { 0x9d, 0xbb, 0xa9 }, { 0x97, 0xb5, 0xa6 }, { 0x91, 0xaf, 0xa4 }, { 0x8c, 0xa9, 0xa2 }, //0x02 - { 0xae, 0xcd, 0xb0 }, { 0xa7, 0xc6, 0xad }, { 0xa0, 0xbf, 0xaa }, { 0x9a, 0xb8, 0xa7 }, { 0x93, 0xb1, 0xa4 }, { 0x8c, 0xaa, 0xa1 }, { 0x86, 0xa3, 0x9f }, //0x03 - { 0xae, 0xcd, 0xb0 }, { 0xa6, 0xc5, 0xac }, { 0x9f, 0xbd, 0xa9 }, { 0x97, 0xb5, 0xa6 }, { 0x90, 0xad, 0xa3 }, { 0x88, 0xa5, 0xa0 }, { 0x81, 0x9d, 0x9d }, //0x04 - { 0xae, 0xcd, 0xb0 }, { 0xa5, 0xc4, 0xac }, { 0x9d, 0xbb, 0xa8 }, { 0x94, 0xb2, 0xa5 }, { 0x8c, 0xa9, 0xa1 }, { 0x83, 0xa0, 0x9d }, { 0x7b, 0x97, 0x9a }, //0x05 - { 0xae, 0xcd, 0xb0 }, { 0xa4, 0xc3, 0xac }, { 0x9b, 0xb9, 0xa8 }, { 0x91, 0xaf, 0xa4 }, { 0x88, 0xa5, 0xa0 }, { 0x7e, 0x9b, 0x9c }, { 0x75, 0x92, 0x98 }, //0x06 - { 0xae, 0xcd, 0xb0 }, { 0xa3, 0xc2, 0xab }, { 0x99, 0xb7, 0xa7 }, { 0x8e, 0xac, 0xa3 }, { 0x84, 0xa1, 0x9e }, { 0x79, 0x96, 0x9a }, { 0x6f, 0x8c, 0x96 }, //0x07 - { 0xae, 0xcd, 0xb0 }, { 0xa2, 0xc1, 0xab }, { 0x97, 0xb5, 0xa6 }, { 0x8c, 0xa9, 0xa1 }, { 0x80, 0x9d, 0x9c }, { 0x75, 0x91, 0x97 }, { 0x6a, 0x86, 0x93 }, //0x08 - { 0xae, 0xcd, 0xb0 }, { 0xa1, 0xc0, 0xaa }, { 0x95, 0xb3, 0xa5 }, { 0x89, 0xa6, 0xa0 }, { 0x7c, 0x99, 0x9b }, { 0x70, 0x8c, 0x96 }, { 0x64, 0x80, 0x91 }, //0x09 - { 0xae, 0xcd, 0xb0 }, { 0xa0, 0xbf, 0xaa }, { 0x93, 0xb1, 0xa4 }, { 0x86, 0xa3, 0x9f }, { 0x78, 0x95, 0x99 }, { 0x6b, 0x87, 0x93 }, { 0x5e, 0x7a, 0x8e }, //0x0a - { 0xae, 0xcd, 0xb0 }, { 0x9f, 0xbe, 0xaa }, { 0x91, 0xaf, 0xa4 }, { 0x83, 0xa0, 0x9e }, { 0x74, 0x91, 0x98 }, { 0x66, 0x82, 0x92 }, { 0x58, 0x74, 0x8c }, //0x0b - { 0xae, 0xcd, 0xb0 }, { 0x9e, 0xbd, 0xa9 }, { 0x8f, 0xad, 0xa3 }, { 0x80, 0x9e, 0x9d }, { 0x71, 0x8e, 0x96 }, { 0x62, 0x7e, 0x90 }, { 0x53, 0x6f, 0x8a }, //0x0c - { 0xa9, 0xc8, 0xae }, { 0x9a, 0xb9, 0xa8 }, { 0x8c, 0xaa, 0xa2 }, { 0x7e, 0x9b, 0x9c }, { 0x6f, 0x8c, 0x96 }, { 0x61, 0x7d, 0x90 }, { 0x53, 0x6f, 0x8a }, //0x0d - { 0xa4, 0xc3, 0xac }, { 0x96, 0xb5, 0xa6 }, { 0x89, 0xa7, 0xa0 }, { 0x7b, 0x99, 0x9b }, { 0x6e, 0x8b, 0x95 }, { 0x60, 0x7d, 0x8f }, { 0x53, 0x6f, 0x8a }, //0x0e - { 0xa0, 0xbe, 0xaa }, { 0x93, 0xb0, 0xa4 }, { 0x86, 0xa3, 0x9f }, { 0x79, 0x96, 0x9a }, { 0x6c, 0x89, 0x94 }, { 0x5f, 0x7c, 0x8f }, { 0x53, 0x6f, 0x8a }, //0x0f - { 0x9b, 0xba, 0xa8 }, { 0x8f, 0xad, 0xa3 }, { 0x83, 0xa1, 0x9e }, { 0x77, 0x94, 0x99 }, { 0x6b, 0x88, 0x94 }, { 0x5f, 0x7b, 0x8f }, { 0x53, 0x6f, 0x8a }, //0x10 - { 0x97, 0xb5, 0xa6 }, { 0x8b, 0xa9, 0xa1 }, { 0x80, 0x9d, 0x9c }, { 0x75, 0x92, 0x98 }, { 0x69, 0x86, 0x93 }, { 0x5e, 0x7a, 0x8e }, { 0x53, 0x6f, 0x8a }, //0x11 - { 0x92, 0xb0, 0xa4 }, { 0x87, 0xa5, 0x9f }, { 0x7d, 0x9a, 0x9b }, { 0x72, 0x8f, 0x97 }, { 0x68, 0x84, 0x92 }, { 0x5d, 0x79, 0x8e }, { 0x53, 0x6f, 0x8a }, //0x12 - { 0x8e, 0xac, 0xa2 }, { 0x84, 0xa1, 0x9e }, { 0x7a, 0x97, 0x9a }, { 0x70, 0x8d, 0x96 }, { 0x66, 0x83, 0x92 }, { 0x5c, 0x79, 0x8e }, { 0x53, 0x6f, 0x8a }, //0x13 - { 0x89, 0xa7, 0xa0 }, { 0x80, 0x9d, 0x9c }, { 0x77, 0x94, 0x98 }, { 0x6e, 0x8b, 0x95 }, { 0x65, 0x81, 0x91 }, { 0x5c, 0x78, 0x8d }, { 0x53, 0x6f, 0x8a }, //0x14 - { 0x85, 0xa2, 0x9e }, { 0x7c, 0x99, 0x9a }, { 0x74, 0x91, 0x97 }, { 0x6c, 0x88, 0x94 }, { 0x63, 0x80, 0x90 }, { 0x5b, 0x77, 0x8d }, { 0x53, 0x6f, 0x8a }, //0x15 - { 0x80, 0x9e, 0x9d }, { 0x78, 0x96, 0x99 }, { 0x71, 0x8e, 0x96 }, { 0x69, 0x86, 0x93 }, { 0x62, 0x7e, 0x90 }, { 0x5a, 0x76, 0x8d }, { 0x53, 0x6f, 0x8a }, //0x16 - { 0x7c, 0x99, 0x9b }, { 0x75, 0x92, 0x98 }, { 0x6e, 0x8b, 0x95 }, { 0x67, 0x84, 0x92 }, { 0x60, 0x7d, 0x8f }, { 0x59, 0x76, 0x8c }, { 0x53, 0x6f, 0x8a }, //0x17 - { 0x77, 0x94, 0x99 }, { 0x71, 0x8d, 0x96 }, { 0x6b, 0x87, 0x94 }, { 0x65, 0x81, 0x91 }, { 0x5f, 0x7b, 0x8f }, { 0x59, 0x75, 0x8c }, { 0x53, 0x6f, 0x8a }, //0x18 - { 0x73, 0x90, 0x97 }, { 0x6d, 0x8a, 0x94 }, { 0x68, 0x85, 0x92 }, { 0x63, 0x7f, 0x90 }, { 0x5d, 0x7a, 0x8e }, { 0x58, 0x74, 0x8c }, { 0x53, 0x6f, 0x8a }, //0x19 - { 0x6e, 0x8b, 0x95 }, { 0x69, 0x86, 0x93 }, { 0x65, 0x81, 0x91 }, { 0x60, 0x7d, 0x8f }, { 0x5c, 0x78, 0x8d }, { 0x57, 0x73, 0x8b }, { 0x53, 0x6f, 0x8a }, //0x1a - { 0x6a, 0x86, 0x93 }, { 0x66, 0x82, 0x91 }, { 0x62, 0x7e, 0x90 }, { 0x5e, 0x7a, 0x8e }, { 0x5a, 0x76, 0x8d }, { 0x56, 0x72, 0x8b }, { 0x53, 0x6f, 0x8a }, //0x1b - { 0x65, 0x82, 0x91 }, { 0x62, 0x7e, 0x8f }, { 0x5f, 0x7b, 0x8e }, { 0x5c, 0x78, 0x8d }, { 0x59, 0x75, 0x8c }, { 0x56, 0x72, 0x8b }, { 0x53, 0x6f, 0x8a }, //0x1c - { 0x61, 0x7d, 0x8f }, { 0x5e, 0x7a, 0x8e }, { 0x5c, 0x78, 0x8d }, { 0x5a, 0x76, 0x8c }, { 0x57, 0x73, 0x8b }, { 0x55, 0x71, 0x8a }, { 0x53, 0x6f, 0x8a }, //0x1d - { 0x5c, 0x78, 0x8d }, { 0x5a, 0x76, 0x8c }, { 0x59, 0x75, 0x8c }, { 0x57, 0x73, 0x8b }, { 0x56, 0x72, 0x8b }, { 0x54, 0x70, 0x8a }, { 0x53, 0x6f, 0x8a }, //0x1e - { 0x57, 0x74, 0x8c }, { 0x56, 0x73, 0x8b }, { 0x55, 0x72, 0x8b }, { 0x55, 0x71, 0x8b }, { 0x54, 0x70, 0x8a }, { 0x53, 0x6f, 0x8a }, { 0x53, 0x6f, 0x8a } //0x1f -}; - -unsigned short ti85_colortable[32][7] = -{ - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }, - { 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }, - { 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14 }, - { 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b }, - { 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22 }, - { 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29 }, - { 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30 }, - { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37 }, - { 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e }, - { 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45 }, - { 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c }, - { 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53 }, - { 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a }, - { 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61 }, - { 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 }, - { 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f }, - { 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76 }, - { 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d }, - { 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84 }, - { 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b }, - { 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92 }, - { 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99 }, - { 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0 }, - { 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7 }, - { 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae }, - { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5 }, - { 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc }, - { 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3 }, - { 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca }, - { 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1 }, - { 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8 }, - { 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf } -}; - -PALETTE_INIT( ti85 ) -{ - int used = sizeof (ti85_palette) / 3; - int i; - - for (i = 0; i < used; i++) - palette_set_color(machine, i, ti85_palette[i][0], ti85_palette[i][1], ti85_palette[i][2]); - memcpy (colortable, ti85_colortable, sizeof (ti85_colortable)); - - if (!strncmp(Machine->gamedrv->name, "ti81", 4)) - { - ti_video_memory_size = TI81_VIDEO_MEMORY_SIZE; - ti_screen_x_size = TI81_SCREEN_X_SIZE; - ti_screen_y_size = TI81_SCREEN_Y_SIZE; - ti_number_of_frames = TI81_NUMBER_OF_FRAMES; - } - if (!strncmp(Machine->gamedrv->name, "ti85", 4)) - { - ti_video_memory_size = TI85_VIDEO_MEMORY_SIZE; - ti_screen_x_size = TI85_SCREEN_X_SIZE; - ti_screen_y_size = TI85_SCREEN_Y_SIZE; - ti_number_of_frames = TI85_NUMBER_OF_FRAMES; - } - if (!strncmp(Machine->gamedrv->name, "ti86", 4)) - { - ti_video_memory_size = TI86_VIDEO_MEMORY_SIZE; - ti_screen_x_size = TI86_SCREEN_X_SIZE; - ti_screen_y_size = TI86_SCREEN_Y_SIZE; - ti_number_of_frames = TI86_NUMBER_OF_FRAMES; - } - - ti85_frames = (UINT8 *) auto_malloc(ti_number_of_frames*ti_video_memory_size*sizeof (UINT8)); - memset (ti85_frames, 0, sizeof(UINT8)*ti_number_of_frames*ti_video_memory_size); -} - -VIDEO_START( ti85 ) -{ - return 0; -} - -VIDEO_UPDATE( ti85 ) -{ - int x,y,b; - int brightnes; - int lcdmem; - - if (!ti85_LCD_status || !ti85_timer_interrupt_mask) - { - for (y=0; ypens[ti85_colortable[ti85_LCD_contrast&0x1f][6]]); - return 0; - } - - lcdmem = ((ti85_LCD_memory_base & 0x3F) + 0xc0) << 0x08; - - memcpy (ti85_frames, ti85_frames+ti_video_memory_size, sizeof (UINT8) * (ti_number_of_frames-1) * ti_video_memory_size); - - for (y=0; y>(7-b)) & 0x01) - + ((*(ti85_frames+1*ti_video_memory_size+y*ti_screen_x_size+x)>>(7-b)) & 0x01) - + ((*(ti85_frames+2*ti_video_memory_size+y*ti_screen_x_size+x)>>(7-b)) & 0x01) - + ((*(ti85_frames+3*ti_video_memory_size+y*ti_screen_x_size+x)>>(7-b)) & 0x01) - + ((*(ti85_frames+4*ti_video_memory_size+y*ti_screen_x_size+x)>>(7-b)) & 0x01) - + ((*(ti85_frames+5*ti_video_memory_size+y*ti_screen_x_size+x)>>(7-b)) & 0x01); - - plot_pixel(bitmap, x*8+b, y, Machine->pens[ti85_colortable[ti85_LCD_contrast&0x1f][brightnes]]); - } - return 0; -} - diff --git a/mess/vidhrdw/tx0.c b/mess/vidhrdw/tx0.c deleted file mode 100644 index 562b76e68..000000000 --- a/mess/vidhrdw/tx0.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - TX-0 - - Raphael Nabet, 2004 -*/ - -#include "driver.h" - -#include "cpu/pdp1/tx0.h" -#include "includes/tx0.h" -#include "vidhrdw/crt.h" - - -static mame_bitmap *panel_bitmap; -static mame_bitmap *typewriter_bitmap; - -static const rectangle panel_bitmap_bounds = -{ - 0, panel_window_width-1, /* min_x, max_x */ - 0, panel_window_height-1, /* min_y, max_y */ -}; - -static const rectangle typewriter_bitmap_bounds = -{ - 0, typewriter_window_width-1, /* min_x, max_x */ - 0, typewriter_window_height-1, /* min_y, max_y */ -}; - -static void tx0_draw_panel_backdrop(mame_bitmap *bitmap); -static void tx0_draw_panel(mame_bitmap *bitmap); - - - -/* - video init -*/ -VIDEO_START( tx0 ) -{ - /* alloc bitmaps for our private fun */ - panel_bitmap = auto_bitmap_alloc(panel_window_width, panel_window_height); - if (!panel_bitmap) - return 1; - - typewriter_bitmap = auto_bitmap_alloc(typewriter_window_width, typewriter_window_height); - if (!typewriter_bitmap) - return 1; - - /* set up out bitmaps */ - tx0_draw_panel_backdrop(panel_bitmap); - - fillbitmap(typewriter_bitmap, Machine->pens[pen_typewriter_bg], &typewriter_bitmap_bounds); - - /* initialize CRT */ - if (video_start_crt(pen_crt_num_levels, crt_window_offset_x, crt_window_offset_y, crt_window_width, crt_window_height)) - return 1; - - return 0; -} - - -/* - schedule a pixel to be plotted -*/ -void tx0_plot(int x, int y) -{ - /* compute pixel coordinates and plot */ - x = x*crt_window_width/0777; - y = y*crt_window_height/0777; - crt_plot(x, y); -} - - -/* - video_update_tx0: effectively redraw the screen -*/ -VIDEO_UPDATE( tx0 ) -{ - video_update_crt(bitmap); - - tx0_draw_panel(panel_bitmap); - copybitmap(bitmap, panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - - copybitmap(bitmap, typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, &Machine->screen[0].visarea, TRANSPARENCY_NONE, 0); - return 0; -} - - - -/* - Operator control panel code -*/ - -enum -{ - x_panel_col1a_offset = 0, - x_panel_col1b_offset = 24, - x_panel_col2_offset = x_panel_col1a_offset+184+8 -}; - -enum -{ - /* column 1: registers, test accumulator, test buffer, toggle switch storage */ - y_panel_pc_offset = 0, - y_panel_mar_offset = y_panel_pc_offset+2*8, - y_panel_mbr_offset = y_panel_mar_offset+2*8, - y_panel_ac_offset = y_panel_mbr_offset+2*8, - y_panel_lr_offset = y_panel_ac_offset+2*8, - y_panel_xr_offset = y_panel_lr_offset+2*8, - y_panel_tbr_offset = y_panel_xr_offset+2*8, - y_panel_tac_offset = y_panel_tbr_offset+2*8, - y_panel_tss_offset = y_panel_tac_offset+2*8, - - /* column 2: stop c0, stop c1, cm sel, 1-bit indicators, instr, flags */ - y_panel_stop_c0_offset = 8, - y_panel_stop_c1_offset = y_panel_stop_c0_offset+8, - y_panel_gbl_cm_sel_offset = y_panel_stop_c1_offset+8, - y_panel_run_offset = y_panel_gbl_cm_sel_offset+8, - y_panel_cycle1_offset = y_panel_run_offset+8, - y_panel_cycle2_offset = y_panel_cycle1_offset+8, - y_panel_rim_offset = y_panel_cycle2_offset+8, - y_panel_ioh_offset = y_panel_rim_offset+8, - y_panel_ios_offset = y_panel_ioh_offset+8, - y_panel_ir_offset = y_panel_ios_offset+8, - y_panel_pf_offset = y_panel_ir_offset+2*8 -}; - -/* draw a small 8*8 LED (or is this a lamp? ) */ -static void tx0_draw_led(mame_bitmap *bitmap, int x, int y, int state) -{ - int xx, yy; - - for (yy=1; yy<7; yy++) - for (xx=1; xx<7; xx++) - plot_pixel(bitmap, x+xx, y+yy, Machine->pens[state ? pen_lit_lamp : pen_unlit_lamp]); -} - -/* draw nb_bits leds which represent nb_bits bits in value */ -static void tx0_draw_multipleled(mame_bitmap *bitmap, int x, int y, int value, int nb_bits) -{ - while (nb_bits) - { - nb_bits--; - - tx0_draw_led(bitmap, x, y, (value >> nb_bits) & 1); - - x += 8; - } -} - - -/* draw a small 8*8 switch */ -static void tx0_draw_switch(mame_bitmap *bitmap, int x, int y, int state) -{ - int xx, yy; - int i; - - /* erase area */ - for (yy=0; yy<8; yy++) - for (xx=0; xx<8; xx++) - plot_pixel(bitmap, x+xx, y+yy, Machine->pens[pen_panel_bg]); - - - /* draw nut (-> circle) */ - for (i=0; i<4;i++) - { - plot_pixel(bitmap, x+2+i, y+1, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+2+i, y+6, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+1, y+2+i, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+6, y+2+i, Machine->pens[pen_switch_nut]); - } - plot_pixel(bitmap, x+2, y+2, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+5, y+2, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+2, y+5, Machine->pens[pen_switch_nut]); - plot_pixel(bitmap, x+5, y+5, Machine->pens[pen_switch_nut]); - - /* draw button (->disc) */ - if (! state) - y += 4; - for (i=0; i<2;i++) - { - plot_pixel(bitmap, x+3+i, y, Machine->pens[pen_switch_button]); - plot_pixel(bitmap, x+3+i, y+3, Machine->pens[pen_switch_button]); - } - for (i=0; i<4;i++) - { - plot_pixel(bitmap, x+2+i, y+1, Machine->pens[pen_switch_button]); - plot_pixel(bitmap, x+2+i, y+2, Machine->pens[pen_switch_button]); - } -} - - -/* draw nb_bits switches which represent nb_bits bits in value */ -static void tx0_draw_multipleswitch(mame_bitmap *bitmap, int x, int y, int value, int nb_bits) -{ - while (nb_bits) - { - nb_bits--; - - tx0_draw_switch(bitmap, x, y, (value >> nb_bits) & 1); - - x += 8; - } -} - - -/* write a single char on screen */ -static void tx0_draw_char(mame_bitmap *bitmap, char character, int x, int y, int color) -{ - drawgfx(bitmap, Machine->gfx[0], character-32, color, 0, 0, - x+1, y, &Machine->screen[0].visarea, TRANSPARENCY_PEN, 0); -} - -/* write a string on screen */ -static void tx0_draw_string(mame_bitmap *bitmap, const char *buf, int x, int y, int color) -{ - while (* buf) - { - tx0_draw_char(bitmap, *buf, x, y, color); - - x += 8; - buf++; - } -} - - -/* draw a vertical line */ -static void tx0_draw_vline(mame_bitmap *bitmap, int x, int y, int height, int color) -{ - while (height--) - plot_pixel(bitmap, x, y++, color); -} - -/* draw a horizontal line */ -static void tx0_draw_hline(mame_bitmap *bitmap, int x, int y, int width, int color) -{ - while (width--) - plot_pixel(bitmap, x++, y, color); -} - - -/* - draw the operator control panel (fixed backdrop) -*/ -static void tx0_draw_panel_backdrop(mame_bitmap *bitmap) -{ - int i; - char buf[3]; - - /* fill with black */ - fillbitmap(panel_bitmap, Machine->pens[pen_panel_bg], &panel_bitmap_bounds); - - /* column 1: registers, test accumulator, test buffer, toggle switch storage */ - tx0_draw_string(bitmap, "program counter", x_panel_col1b_offset, y_panel_pc_offset, color_panel_caption); - tx0_draw_string(bitmap, "memory address reg.", x_panel_col1b_offset, y_panel_mar_offset, color_panel_caption); - tx0_draw_string(bitmap, "memory buffer reg.", x_panel_col1b_offset, y_panel_mbr_offset, color_panel_caption); - tx0_draw_string(bitmap, "accumulator", x_panel_col1b_offset, y_panel_ac_offset, color_panel_caption); - tx0_draw_string(bitmap, "live register", x_panel_col1b_offset, y_panel_lr_offset, color_panel_caption); - tx0_draw_string(bitmap, "index register", x_panel_col1b_offset, y_panel_xr_offset, color_panel_caption); - tx0_draw_string(bitmap, "TBR", x_panel_col1b_offset, y_panel_tbr_offset, color_panel_caption); - tx0_draw_string(bitmap, "TAC", x_panel_col1b_offset, y_panel_tac_offset, color_panel_caption); - tx0_draw_string(bitmap, "cm", x_panel_col1a_offset+8, y_panel_tss_offset, color_panel_caption); - tx0_draw_string(bitmap, "TSS", x_panel_col1a_offset+24, y_panel_tss_offset, color_panel_caption); - tx0_draw_string(bitmap, "lr", x_panel_col1a_offset+168, y_panel_tss_offset, color_panel_caption); - for (i=0; i<16; i++) - { - sprintf(buf, "%2o", i); - tx0_draw_string(bitmap, buf, x_panel_col1a_offset, y_panel_tss_offset+8+i*8, color_panel_caption); - } - - /* column separator */ - tx0_draw_vline(bitmap, x_panel_col2_offset-4, 8, 248, pen_panel_caption); - - /* column 2: stop c0, stop c1, cm sel, 1-bit indicators, instr, flags */ - tx0_draw_string(bitmap, "stop c0", x_panel_col2_offset+8, y_panel_stop_c0_offset, color_panel_caption); - tx0_draw_string(bitmap, "stop c1", x_panel_col2_offset+8, y_panel_stop_c1_offset, color_panel_caption); - tx0_draw_string(bitmap, "cm select", x_panel_col2_offset+8, y_panel_gbl_cm_sel_offset, color_panel_caption); - tx0_draw_string(bitmap, "run", x_panel_col2_offset+8, y_panel_run_offset, color_panel_caption); - tx0_draw_string(bitmap, "cycle1", x_panel_col2_offset+8, y_panel_cycle1_offset, color_panel_caption); - tx0_draw_string(bitmap, "cycle2", x_panel_col2_offset+8, y_panel_cycle2_offset, color_panel_caption); - tx0_draw_string(bitmap, "read in", x_panel_col2_offset+8, y_panel_rim_offset, color_panel_caption); - tx0_draw_string(bitmap, "i-o halt", x_panel_col2_offset+8, y_panel_ioh_offset, color_panel_caption); - tx0_draw_string(bitmap, "i-o sync", x_panel_col2_offset+8, y_panel_ios_offset, color_panel_caption); - tx0_draw_string(bitmap, "instr", x_panel_col2_offset+8, y_panel_ir_offset, color_panel_caption); - tx0_draw_string(bitmap, "pgm flags", x_panel_col2_offset+8, y_panel_pf_offset, color_panel_caption); -} - - -/* - draw the operator control panel (dynamic elements) -*/ -static void tx0_draw_panel(mame_bitmap *bitmap) -{ - int cm_sel, lr_sel; - int i; - - /* column 1: registers, test accumulator, test buffer, toggle switch storage */ - tx0_draw_multipleled(bitmap, x_panel_col1b_offset+2*8, y_panel_pc_offset+8, cpunum_get_reg(0, TX0_PC), 16); - tx0_draw_multipleled(bitmap, x_panel_col1b_offset+2*8, y_panel_mar_offset+8, cpunum_get_reg(0, TX0_MAR), 16); - tx0_draw_multipleled(bitmap, x_panel_col1b_offset, y_panel_mbr_offset+8, cpunum_get_reg(0, TX0_MBR), 18); - tx0_draw_multipleled(bitmap, x_panel_col1b_offset, y_panel_ac_offset+8, cpunum_get_reg(0, TX0_AC), 18); - tx0_draw_multipleled(bitmap, x_panel_col1b_offset, y_panel_lr_offset+8, cpunum_get_reg(0, TX0_LR), 18); - tx0_draw_multipleled(bitmap, x_panel_col1b_offset+4*8, y_panel_xr_offset+8, cpunum_get_reg(0, TX0_XR), 14); - tx0_draw_multipleswitch(bitmap, x_panel_col1b_offset, y_panel_tbr_offset+8, cpunum_get_reg(0, TX0_TBR), 18); - tx0_draw_multipleswitch(bitmap, x_panel_col1b_offset, y_panel_tac_offset+8, cpunum_get_reg(0, TX0_TAC), 18); - cm_sel = cpunum_get_reg(0, TX0_CM_SEL); - lr_sel = cpunum_get_reg(0, TX0_LR_SEL); - for (i=0; i<16; i++) - { - tx0_draw_switch(bitmap, x_panel_col1a_offset+16, y_panel_tss_offset+8+i*8, (cm_sel >> i) & 1); - tx0_draw_multipleswitch(bitmap, x_panel_col1a_offset+24, y_panel_tss_offset+8+i*8, cpunum_get_reg(0, TX0_TSS00+i), 18); - tx0_draw_switch(bitmap, x_panel_col1a_offset+168, y_panel_tss_offset+8+i*8, (lr_sel >> i) & 1); - } - - /* column 2: stop c0, stop c1, cm sel, 1-bit indicators, instr, flags */ - tx0_draw_switch(bitmap, x_panel_col2_offset, y_panel_stop_c0_offset, cpunum_get_reg(0, TX0_STOP_CYC0)); - tx0_draw_switch(bitmap, x_panel_col2_offset, y_panel_stop_c1_offset, cpunum_get_reg(0, TX0_STOP_CYC1)); - tx0_draw_switch(bitmap, x_panel_col2_offset, y_panel_gbl_cm_sel_offset, cpunum_get_reg(0, TX0_GBL_CM_SEL)); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_run_offset, cpunum_get_reg(0, TX0_RUN)); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_cycle1_offset, cpunum_get_reg(0, TX0_CYCLE) & 1); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_cycle2_offset, cpunum_get_reg(0, TX0_CYCLE) & 2); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_rim_offset, cpunum_get_reg(0, TX0_RIM)); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_ioh_offset, cpunum_get_reg(0, TX0_IOH)); - tx0_draw_led(bitmap, x_panel_col2_offset, y_panel_ios_offset, cpunum_get_reg(0, TX0_IOS)); - tx0_draw_multipleled(bitmap, x_panel_col2_offset, y_panel_ir_offset+8, cpunum_get_reg(0, TX0_IR), 5); - tx0_draw_multipleled(bitmap, x_panel_col2_offset, y_panel_pf_offset+8, cpunum_get_reg(0, TX0_PF), 6); -} - - - -/* - Typewriter code -*/ - - -static int pos; - -static int case_shift; - -static int color = color_typewriter_black; - -enum -{ - typewriter_line_height = 8, - typewriter_write_offset_y = typewriter_window_height-typewriter_line_height, - typewriter_scroll_step = typewriter_line_height -}; -static const rectangle typewriter_scroll_clear_window = -{ - 0, typewriter_window_width-1, /* min_x, max_x */ - typewriter_window_height-typewriter_scroll_step, typewriter_window_height-1, /* min_y, max_y */ -}; - -enum -{ - tab_step = 8 -}; - - -static void tx0_typewriter_linefeed(void) -{ - UINT8 buf[typewriter_window_width]; - int y; - - for (y=0; ypens, -1); - } - - fillbitmap(typewriter_bitmap, Machine->pens[pen_typewriter_bg], &typewriter_scroll_clear_window); -} - -void tx0_typewriter_drawchar(int character) -{ - static const char ascii_table[2][64] = - { - { /* lower case */ - '\0', '\0', 'e', '8', - '\0', '|', 'a', '3', - ' ', '=', 's', '4', - 'i', '+', 'u', '2', - '\0',/*color shift*/'.', 'd', '5', - 'r', '1', 'j', '7', - 'n', ',', 'f', '6', - 'c', '-', 'k', '\0', - 't', '\0', 'z', '\0',/*back space*/ - 'l', '\0',/*tab*/ 'w', '\0', - 'h', '\0',/*carr. return*/'y', '\0', - 'p', '\0', 'q', '\0', - 'o', '\0',/*stop*/ 'b', '\0', - 'g', '\0', '9', '\0', - 'm', '\0',/*upper case*/ 'x', '\0', - 'v', '\0',/*lower case*/ '0', '\0'/*delete*/ - }, - { /* upper case */ - '\0', '\0', 'E', '\210', - '\0', '_', 'A', '\203', - ' ', ':', 'S', '\204', - 'I', '/', 'U', '\202', - '\0',/*color shift*/')', 'D', '\205', - 'R', '\201', 'J', '\207', - 'N', '(', 'F', '\206', - 'C', '\212',/*macron*/ 'K', '\0', - 'T', '\0', 'Z', '\0',/*back space*/ - 'L', '\0',/*tab*/ 'W', '\0', - 'H', '\0',/*carr. return*/'Y', '\0', - 'P', '\0', 'Q', '\0', - 'O', '\0',/*stop*/ 'B', '\0', - 'G', '\0', '\211', '\0', - 'M', '\0',/*upper case*/ 'X', '\0', - 'V', '\0',/*lower case*/ '\200', '\0'/*delete*/ - } - }; - - - - character &= 0x3f; - - switch (character) - { - case 020: - /* color shift */ - /*color = color_typewriter_black; - color = color_typewriter_red;*/ - break; - - case 043: - /* Backspace */ - if (pos) - pos--; - break; - - case 045: - /* Tab */ - pos = pos + tab_step - (pos % tab_step); - break; - - case 051: - /* Carriage Return */ - pos = 0; - tx0_typewriter_linefeed(); - break; - - case 061: - /* Stop */ - /* ?????? */ - break; - - case 071: - /* Upper case */ - case_shift = 1; - break; - - case 075: - /* Lower case */ - case_shift = 0; - break; - - case 077: - /* Delete */ - /* ?????? */ - break; - - default: - /* Any printable character... */ - - if (pos >= 80) - { /* if past right border, wrap around. (Right???) */ - tx0_typewriter_linefeed(); /* next line */ - pos = 0; /* return to start of line */ - } - - /* print character (lookup ASCII equivalent in table) */ - tx0_draw_char(typewriter_bitmap, ascii_table[case_shift][character], - 8*pos, typewriter_write_offset_y, - color); /* print char */ - - pos++; /* step carriage forward */ - break; - } -} diff --git a/mess/vidhrdw/v9938mod.c b/mess/vidhrdw/v9938mod.c deleted file mode 100644 index d682db2e4..000000000 --- a/mess/vidhrdw/v9938mod.c +++ /dev/null @@ -1,736 +0,0 @@ -/* - * This file is included for a number of different situations: - * V9938_WIDTH : can be 512 + 32 or 256 + 16 - * V9938_BPP : can be 8 or 16 - */ - -#if (V9938_WIDTH < 512) - #if (V9938_BPP == 8) - #define PEN_TYPE UINT8 - #define FNAME(name) v9938_##name##_8s - #else - #define PEN_TYPE UINT16 - #define FNAME(name) v9938_##name##_16s - #endif -#else - #if (V9938_BPP == 8) - #define PEN_TYPE UINT8 - #define FNAME(name) v9938_##name##_8 - #else - #define PEN_TYPE UINT16 - #define FNAME(name) v9938_##name##_16 - #endif -#endif - - -#define V9938_BORDER_FUNC(name) \ - static void FNAME (name) (PEN_TYPE *ln) - -#define V9938_MODE_FUNC(name) \ - static void FNAME (name) (PEN_TYPE *ln, int line) - -#define V9938_SPRITE_FUNC(name) \ - static void FNAME (name) (PEN_TYPE *ln, UINT8 *col) - -V9938_BORDER_FUNC (default_border) - { - PEN_TYPE pen; - int i; - - pen = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; - i = V9938_WIDTH; - while (i--) *ln++ = pen; - - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_BORDER_FUNC (graphic7_border) - { - PEN_TYPE pen; - int i; - - pen = Machine->pens[pal_ind256[vdp.contReg[7]]]; - i = V9938_WIDTH; - while (i--) *ln++ = pen; - - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_BORDER_FUNC (graphic5_border) - { - int i; - PEN_TYPE pen0; -#if (V9938_WIDTH > 512) - PEN_TYPE pen1; - - pen1 = Machine->pens[pal_ind16[(vdp.contReg[7]&0x03)]]; - pen0 = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - i = (V9938_WIDTH) / 2; - while (i--) { *ln++ = pen0; *ln++ = pen1; } -#else - pen0 = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - i = V9938_WIDTH; - while (i--) *ln++ = pen0; -#endif - vdp.size_now = RENDER_HIGH; - } - -V9938_MODE_FUNC (mode_text1) - { - int pattern, x, xx, name, xxx; - PEN_TYPE fg, bg, pen; - UINT8 *nametbl, *patterntbl; - - patterntbl = vdp.vram + (vdp.contReg[4] << 11); - nametbl = vdp.vram + (vdp.contReg[2] << 10); - - fg = Machine->pens[pal_ind16[vdp.contReg[7] >> 4]]; - bg = Machine->pens[pal_ind16[vdp.contReg[7] & 15]]; - - name = (line/8)*40; - - pen = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; - - xxx = vdp.offset_x + 8; -#if (V9938_WIDTH > 512) - xxx *= 2; -#endif - while (xxx--) *ln++ = pen; - - for (x=0;x<40;x++) - { - pattern = patterntbl[(nametbl[name] * 8) + - ((line + vdp.contReg[23]) & 7)]; - for (xx=0;xx<6;xx++) - { - *ln++ = (pattern & 0x80) ? fg : bg; -#if (V9938_WIDTH > 512) - *ln++ = (pattern & 0x80) ? fg : bg; -#endif - pattern <<= 1; - } - /* width height 212, characters start repeating at the bottom */ - name = (name + 1) & 0x3ff; - } - - xxx = (16 - vdp.offset_x) + 8; -#if (V9938_WIDTH > 512) - xxx *= 2; -#endif - while (xxx--) *ln++ = pen; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_text2) - { - int pattern, x, charcode, name, xxx, patternmask, colourmask; - PEN_TYPE fg, bg, fg0, bg0, pen; - UINT8 *nametbl, *patterntbl, *colourtbl; - - patterntbl = vdp.vram + (vdp.contReg[4] << 11); - colourtbl = vdp.vram + ((vdp.contReg[3] & 0xf8) << 6) + (vdp.contReg[10] << 14); -#if 0 - colourmask = ((vdp.contReg[3] & 7) << 5) | 0x1f; /* cause a bug in Forth+ v1.0 on Geneve */ -#else - colourmask = ((vdp.contReg[3] & 7) << 6) | 0x3f; /* verify! */ -#endif - nametbl = vdp.vram + ((vdp.contReg[2] & 0xfc) << 10); - patternmask = ((vdp.contReg[2] & 3) << 10) | 0x3ff; /* seems correct */ - - fg = Machine->pens[pal_ind16[vdp.contReg[7] >> 4]]; - bg = Machine->pens[pal_ind16[vdp.contReg[7] & 15]]; - fg0 = Machine->pens[pal_ind16[vdp.contReg[12] >> 4]]; - bg0 = Machine->pens[pal_ind16[vdp.contReg[12] & 15]]; - - name = (line/8)*80; - - xxx = vdp.offset_x + 8; - pen = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH > 512) - xxx *= 2; -#endif - while (xxx--) *ln++ = pen; - - for (x=0;x<80;x++) - { - charcode = nametbl[name&patternmask]; - if (vdp.blink) - { - pattern = colourtbl[(name/8)&colourmask]; - if (pattern & (0x80 >> (name & 7) ) ) - { - pattern = patterntbl[(charcode * 8) + - ((line + vdp.contReg[23]) & 7)]; - -#if (V9938_WIDTH > 512) - *ln++ = (pattern & 0x80) ? fg0 : bg0; - *ln++ = (pattern & 0x40) ? fg0 : bg0; - *ln++ = (pattern & 0x20) ? fg0 : bg0; - *ln++ = (pattern & 0x10) ? fg0 : bg0; - *ln++ = (pattern & 0x08) ? fg0 : bg0; - *ln++ = (pattern & 0x04) ? fg0 : bg0; -#else - *ln++ = (pattern & 0x80) ? fg0 : bg0; - *ln++ = (pattern & 0x20) ? fg0 : bg0; - *ln++ = (pattern & 0x08) ? fg0 : bg0; -#endif - - name++; - continue; - } - } - - pattern = patterntbl[(charcode * 8) + - ((line + vdp.contReg[23]) & 7)]; - -#if (V9938_WIDTH > 512) - *ln++ = (pattern & 0x80) ? fg : bg; - *ln++ = (pattern & 0x40) ? fg : bg; - *ln++ = (pattern & 0x20) ? fg : bg; - *ln++ = (pattern & 0x10) ? fg : bg; - *ln++ = (pattern & 0x08) ? fg : bg; - *ln++ = (pattern & 0x04) ? fg : bg; -#else - *ln++ = (pattern & 0x80) ? fg : bg; - *ln++ = (pattern & 0x20) ? fg : bg; - *ln++ = (pattern & 0x08) ? fg : bg; -#endif - - name++; - } - - xxx = 16 - vdp.offset_x + 8; -#if (V9938_WIDTH > 512) - xxx *= 2; -#endif - while (xxx--) *ln++ = pen; - vdp.size_now = RENDER_HIGH; - } - -V9938_MODE_FUNC (mode_multi) - { - UINT8 *nametbl, *patterntbl, colour; - int name, line2, x, xx; - PEN_TYPE pen, pen_bg; - - nametbl = vdp.vram + (vdp.contReg[2] << 10); - patterntbl = vdp.vram + (vdp.contReg[4] << 11); - - line2 = (line - vdp.contReg[23]) & 255; - name = (line2/8)*32; - - pen_bg = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH < 512) - xx = vdp.offset_x; -#else - xx = vdp.offset_x * 2; -#endif - while (xx--) *ln++ = pen_bg; - - for (x=0;x<32;x++) - { - colour = patterntbl[(nametbl[name] * 8) + ((line2/4)&7)]; - pen = Machine->pens[pal_ind16[colour>>4]]; - /* eight pixels */ - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; -#endif - pen = Machine->pens[pal_ind16[colour&15]]; - /* eight pixels */ - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; - *ln++ = pen; -#endif - name++; - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen_bg; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_graphic1) - { - PEN_TYPE fg, bg, pen; - UINT8 *nametbl, *patterntbl, *colourtbl; - int pattern, x, xx, line2, name, charcode, colour, xxx; - - nametbl = vdp.vram + (vdp.contReg[2] << 10); - colourtbl = vdp.vram + (vdp.contReg[3] << 6) + (vdp.contReg[10] << 14); - patterntbl = vdp.vram + (vdp.contReg[4] << 11); - - line2 = (line - vdp.contReg[23]) & 255; - - name = (line2/8)*32; - - pen = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH < 512) - xxx = vdp.offset_x; -#else - xxx = vdp.offset_x * 2; -#endif - while (xxx--) *ln++ = pen; - - for (x=0;x<32;x++) - { - charcode = nametbl[name]; - colour = colourtbl[charcode/8]; - fg = Machine->pens[pal_ind16[colour>>4]]; - bg = Machine->pens[pal_ind16[colour&15]]; - pattern = patterntbl[charcode * 8 + (line2 & 7)]; - - for (xx=0;xx<8;xx++) - { - *ln++ = (pattern & 0x80) ? fg : bg; -#if (V9938_WIDTH > 512) - *ln++ = (pattern & 0x80) ? fg : bg; -#endif - pattern <<= 1; - } - name++; - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_graphic23) - { - PEN_TYPE fg, bg, pen; - UINT8 *nametbl, *patterntbl, *colourtbl; - int pattern, x, xx, line2, name, charcode, - colour, colourmask, patternmask, xxx; - - colourmask = (vdp.contReg[3] & 0x7f) * 8 | 7; - patternmask = (vdp.contReg[4] & 0x03) * 256 | (colourmask & 255); - - nametbl = vdp.vram + (vdp.contReg[2] << 10); - colourtbl = vdp.vram + ((vdp.contReg[3] & 0x80) << 6) + (vdp.contReg[10] << 14); - patterntbl = vdp.vram + ((vdp.contReg[4] & 0x3c) << 11); - - line2 = (line + vdp.contReg[23]) & 255; - name = (line2/8)*32; - - pen = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH < 512) - xxx = vdp.offset_x; -#else - xxx = vdp.offset_x * 2; -#endif - while (xxx--) *ln++ = pen; - - for (x=0;x<32;x++) - { - charcode = nametbl[name] + (line2&0xc0)*4; - colour = colourtbl[(charcode&colourmask)*8+(line2&7)]; - pattern = patterntbl[(charcode&patternmask)*8+(line2&7)]; - fg = Machine->pens[pal_ind16[colour>>4]]; - bg = Machine->pens[pal_ind16[colour&15]]; - for (xx=0;xx<8;xx++) - { - *ln++ = (pattern & 0x80) ? fg : bg; -#if (V9938_WIDTH > 512) - *ln++ = (pattern & 0x80) ? fg : bg; -#endif - pattern <<= 1; - } - name++; - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_graphic4) - { - UINT8 *nametbl, colour; - int line2, linemask, x, xx; - PEN_TYPE pen, pen_bg; - - linemask = ((vdp.contReg[2] & 0x1f) << 3) | 7; - - line2 = ((line + vdp.contReg[23]) & linemask) & 255; - - nametbl = vdp.vram + ((vdp.contReg[2] & 0x40) << 10) + line2 * 128; - if ( (vdp.contReg[2] & 0x20) && (V9938_SECOND_FIELD) ) - nametbl += 0x8000; - - pen_bg = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH < 512) - xx = vdp.offset_x; -#else - xx = vdp.offset_x * 2; -#endif - while (xx--) *ln++ = pen_bg; - - for (x=0;x<128;x++) - { - colour = *nametbl++; - pen = Machine->pens[pal_ind16[colour>>4]]; - *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; -#endif - pen = Machine->pens[pal_ind16[colour&15]]; - *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; -#endif - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen_bg; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_graphic5) - { - UINT8 *nametbl, colour; - int line2, linemask, x, xx; - PEN_TYPE pen_bg0[4]; -#if (V9938_WIDTH > 512) - PEN_TYPE pen_bg1[4]; -#endif - - linemask = ((vdp.contReg[2] & 0x1f) << 3) | 7; - - line2 = ((line + vdp.contReg[23]) & linemask) & 255; - - nametbl = vdp.vram + ((vdp.contReg[2] & 0x40) << 10) + line2 * 128; - if ( (vdp.contReg[2] & 0x20) && (V9938_SECOND_FIELD) ) - nametbl += 0x8000; - -#if (V9938_WIDTH > 512) - pen_bg1[0] = Machine->pens[pal_ind16[(vdp.contReg[7]&0x03)]]; - pen_bg0[0] = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - - xx = vdp.offset_x; - while (xx--) { *ln++ = pen_bg0[0]; *ln++ = pen_bg1[0]; } - - x = (vdp.contReg[8] & 0x20) ? 0 : 1; - - for (;x<4;x++) - { - pen_bg0[x] = Machine->pens[pal_ind16[x]]; - pen_bg1[x] = Machine->pens[pal_ind16[x]]; - } - - for (x=0;x<128;x++) - { - colour = *nametbl++; - - *ln++ = pen_bg0[colour>>6]; - *ln++ = pen_bg1[(colour>>4)&3]; - *ln++ = pen_bg0[(colour>>2)&3]; - *ln++ = pen_bg1[(colour&3)]; - } - - pen_bg1[0] = Machine->pens[pal_ind16[(vdp.contReg[7]&0x03)]]; - pen_bg0[0] = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - xx = 16 - vdp.offset_x; - while (xx--) { *ln++ = pen_bg0[0]; *ln++ = pen_bg1[0]; } -#else - pen_bg0[0] = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - - x = (vdp.contReg[8] & 0x20) ? 0 : 1; - - for (;x<4;x++) - pen_bg0[x] = Machine->pens[pal_ind16[x]]; - - xx = vdp.offset_x; - while (xx--) *ln++ = pen_bg0[0]; - - for (x=0;x<128;x++) - { - colour = *nametbl++; - *ln++ = pen_bg0[colour>>6]; - *ln++ = pen_bg0[(colour>>2)&3]; - } - - pen_bg0[0] = Machine->pens[pal_ind16[((vdp.contReg[7]>>2)&0x03)]]; - xx = 16 - vdp.offset_x; - while (xx--) *ln++ = pen_bg0[0]; -#endif - vdp.size_now = RENDER_HIGH; - } - -V9938_MODE_FUNC (mode_graphic6) - { - UINT8 colour; - int line2, linemask, x, xx, nametbl; - PEN_TYPE pen_bg, fg0; -#if (V9938_WIDTH > 512) - PEN_TYPE fg1; -#endif - - linemask = ((vdp.contReg[2] & 0x1f) << 3) | 7; - - line2 = ((line + vdp.contReg[23]) & linemask) & 255; - - nametbl = line2 << 8 ; - if ( (vdp.contReg[2] & 0x20) && (V9938_SECOND_FIELD) ) - nametbl += 0x10000; - - pen_bg = Machine->pens[pal_ind16[(vdp.contReg[7]&0x0f)]]; -#if (V9938_WIDTH < 512) - xx = vdp.offset_x; -#else - xx = vdp.offset_x * 2; -#endif - while (xx--) *ln++ = pen_bg; - - if (vdp.contReg[2] & 0x40) - { - for (x=0;x<32;x++) - { - nametbl++; - colour = vdp.vram[((nametbl&1) << 16) | (nametbl>>1)]; - fg0 = Machine->pens[pal_ind16[colour>>4]]; -#if (V9938_WIDTH < 512) - *ln++ = fg0; *ln++ = fg0; - *ln++ = fg0; *ln++ = fg0; - *ln++ = fg0; *ln++ = fg0; - *ln++ = fg0; *ln++ = fg0; -#else - fg1 = Machine->pens[pal_ind16[colour&15]]; - *ln++ = fg0; *ln++ = fg1; *ln++ = fg0; *ln++ = fg1; - *ln++ = fg0; *ln++ = fg1; *ln++ = fg0; *ln++ = fg1; - *ln++ = fg0; *ln++ = fg1; *ln++ = fg0; *ln++ = fg1; - *ln++ = fg0; *ln++ = fg1; *ln++ = fg0; *ln++ = fg1; -#endif - nametbl += 7; - } - } - else - { - for (x=0;x<256;x++) - { - colour = vdp.vram[((nametbl&1) << 16) | (nametbl>>1)]; - *ln++ = Machine->pens[pal_ind16[colour>>4]]; -#if (V9938_WIDTH > 512) - *ln++ = Machine->pens[pal_ind16[colour&15]]; -#endif - nametbl++; - } - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen_bg; - vdp.size_now = RENDER_HIGH; - } - -V9938_MODE_FUNC (mode_graphic7) - { - UINT8 colour; - int line2, linemask, x, xx, nametbl; - PEN_TYPE pen, pen_bg; - - linemask = ((vdp.contReg[2] & 0x1f) << 3) | 7; - - line2 = ((line + vdp.contReg[23]) & linemask) & 255; - - nametbl = line2 << 8; - if ( (vdp.contReg[2] & 0x20) && (V9938_SECOND_FIELD) ) - nametbl += 0x10000; - - pen_bg = Machine->pens[pal_ind256[vdp.contReg[7]]]; -#if (V9938_WIDTH < 512) - xx = vdp.offset_x; -#else - xx = vdp.offset_x * 2; -#endif - while (xx--) *ln++ = pen_bg; - - if (vdp.contReg[2] & 0x40) - { - for (x=0;x<32;x++) - { - nametbl++; - colour = vdp.vram[((nametbl&1) << 16) | (nametbl>>1)]; - pen = Machine->pens[pal_ind256[colour]]; - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; - *ln++ = pen; *ln++ = pen; -#endif - nametbl++; - } - } - else - { - for (x=0;x<256;x++) - { - colour = vdp.vram[((nametbl&1) << 16) | (nametbl>>1)]; - pen = Machine->pens[pal_ind256[colour]]; - *ln++ = pen; -#if (V9938_WIDTH > 512) - *ln++ = pen; -#endif - nametbl++; - } - } - - xx = 16 - vdp.offset_x; -#if (V9938_WIDTH > 512) - xx *= 2; -#endif - while (xx--) *ln++ = pen_bg; - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_MODE_FUNC (mode_unknown) - { - PEN_TYPE fg, bg; - int x; - - fg = Machine->pens[pal_ind16[vdp.contReg[7] >> 4]]; - bg = Machine->pens[pal_ind16[vdp.contReg[7] & 15]]; - -#if (V9938_WIDTH < 512) - x = vdp.offset_x; - while (x--) *ln++ = bg; - - x = 256; - while (x--) *ln++ = fg; - - x = 16 - vdp.offset_x; - while (x--) *ln++ = bg; -#else - x = vdp.offset_x * 2; - while (x--) *ln++ = bg; - - x = 512; - while (x--) *ln++ = fg; - - x = (16 - vdp.offset_x) * 2; - while (x--) *ln++ = bg; -#endif - if (vdp.size_now != RENDER_HIGH) vdp.size_now = RENDER_LOW; - } - -V9938_SPRITE_FUNC (default_draw_sprite) - { - int i; -#if (V9938_WIDTH > 512) - ln += vdp.offset_x * 2; -#else - ln += vdp.offset_x; -#endif - - for (i=0;i<256;i++) - { - if (col[i] & 0x80) - { - *ln++ = Machine->pens[pal_ind16[col[i]&0x0f]]; -#if (V9938_WIDTH > 512) - *ln++ = Machine->pens[pal_ind16[col[i]&0x0f]]; -#endif - } - else -#if (V9938_WIDTH > 512) - ln += 2; -#else - ln++; -#endif - } - } -V9938_SPRITE_FUNC (graphic5_draw_sprite) - { - int i; -#if (V9938_WIDTH > 512) - ln += vdp.offset_x * 2; -#else - ln += vdp.offset_x; -#endif - - for (i=0;i<256;i++) - { - if (col[i] & 0x80) - { - *ln++ = Machine->pens[pal_ind16[(col[i]>>2)&0x03]]; -#if (V9938_WIDTH > 512) - *ln++ = Machine->pens[pal_ind16[col[i]&0x03]]; -#endif - } - else -#if (V9938_WIDTH > 512) - ln += 2; -#else - ln++; -#endif - } - } - - -V9938_SPRITE_FUNC (graphic7_draw_sprite) - { - static const UINT16 g7_ind16[16] = { - 0, 2, 192, 194, 48, 50, 240, 242, - 482, 7, 448, 455, 56, 63, 504, 511 }; - int i; - -#if (V9938_WIDTH > 512) - ln += vdp.offset_x * 2; -#else - ln += vdp.offset_x; -#endif - - for (i=0;i<256;i++) - { - if (col[i] & 0x80) - { - *ln++ = Machine->pens[g7_ind16[col[i]&0x0f]]; -#if (V9938_WIDTH > 512) - *ln++ = Machine->pens[g7_ind16[col[i]&0x0f]]; -#endif - } - else -#if (V9938_WIDTH > 512) - ln += 2; -#else - ln++; -#endif - } - } - - -#undef PEN_TYPE -#undef FNAME -#undef V9938_BORDER_FUNC -#undef V9938_MODE_FUNC -#undef V9938_SPRITE_FUNC diff --git a/mess/vidhrdw/vectrex.c b/mess/vidhrdw/vectrex.c deleted file mode 100644 index 794e091cf..000000000 --- a/mess/vidhrdw/vectrex.c +++ /dev/null @@ -1,474 +0,0 @@ -#include -#include "driver.h" -#include "vidhrdw/vector.h" -#include "vidhrdw/generic.h" -#include "machine/6522via.h" -#include "cpu/m6809/m6809.h" -#include "sound/ay8910.h" -#include "sound/dac.h" -#include "mscommon.h" - -#include "includes/vectrex.h" - -#define RAMP_DELAY 6.333e-6 -#define SH_DELAY RAMP_DELAY - -#define VEC_SHIFT 16 -#define INT_PER_CLOCK 600 -#define VECTREX_CLOCK 1500000 - -#define PORTB 0 -#define PORTA 1 - -#ifndef M_SQRT1_2 -#define M_SQRT1_2 0.70710678118654752440 -#endif - -/********************************************************************* - Local variables - *********************************************************************/ -static WRITE8_HANDLER ( v_via_pa_w ); -static WRITE8_HANDLER( v_via_pb_w ); -static WRITE8_HANDLER ( v_via_ca2_w ); -static WRITE8_HANDLER ( v_via_cb2_w ); - -static struct via6522_interface vectrex_via6522_interface = -{ - v_via_pa_r, v_via_pb_r, /* read PA/B */ - 0, 0, 0, 0, /* read ca1, cb1, ca2, cb2 */ - v_via_pa_w, v_via_pb_w, /* write PA/B */ - 0, 0, v_via_ca2_w, v_via_cb2_w, /* write ca1, cb1, ca2, cb2 */ - v_via_irq, /* IRQ */ -}; - -static int x_center, y_center, x_max, y_max; -static int x_int, y_int; /* X, Y integrators IC LF347*/ -static int lightpen_down=0, pen_x, pen_y; /* Lightpen position */ -static mame_timer *lp_t; -static int blank; - -/* Analog signals: 0 : X-axis sample and hold IC LF347 - * coupled by the MUX CD4052 - * 1 : Y-axis sample and hold IC LF347 - * 2 : "0" reference charge capacitor - * 3 : Z-axis (brightness signal) sample and hold IC LF347 - * 4 : MPU sound resistive netowrk - */ - -#define ASIG_Y 0 -#define ASIG_X 1 -#define ASIG_ZR 2 -#define ASIG_Z 3 -#define ASIG_MPU 4 - -#define NVECT 10000 - -static int analog_sig[5]; - -static double start_time; -static int last_point_x, last_point_y, last_point_z, last_point=0; -static double last_point_starttime; -static float z_factor; -static int vectrex_point_index = 0; -static double vectrex_persistance = 0.05; - -struct vectrex_point -{ - int x; int y; - rgb_t col; - int intensity; - double time; -}; - -static struct vectrex_point vectrex_points[NVECT]; -void (*vector_add_point_function) (int, int, rgb_t, int) = vectrex_add_point; - -void vectrex_add_point (int x, int y, rgb_t color, int intensity) -{ - struct vectrex_point *newpoint; - - vectrex_point_index = (vectrex_point_index+1) % NVECT; - newpoint = &vectrex_points[vectrex_point_index]; - - newpoint->x = x; - newpoint->y = y; - newpoint->col = color; - newpoint->intensity = intensity; - newpoint->time = timer_get_time(); -} - -/********************************************************************* - Lightpen - *********************************************************************/ -static void lightpen_trigger (int param) -{ - if (vectrex_lightpen_port & 1) - { - via_0_ca1_w (0, 1); - via_0_ca1_w (0, 0); - } - if (vectrex_lightpen_port & 2) - { - cpunum_set_input_line(0, M6809_FIRQ_LINE, PULSE_LINE); - } -} - -static int lightpen_check (void) -{ - int dx,dy; - if (lightpen_down) - { - dx=abs(pen_x-x_int); - dy=abs(pen_y-y_int); - if (dx<500000 && dy<500000) - return 1; - } - return 0; -} - -static void lightpen_show (void) -{ - int color; - - if (vectrex_lightpen_port != 0) - { - if (readinputport(6)&0x10) - { - lightpen_down=1; - color=0x00ff0000; - } - else - { - lightpen_down=0; - color=0x00ffffff; - } - - pen_x = readinputport(8)*(x_max/0xff); - pen_y = readinputport(7)*(y_max/0xff); - - vector_add_point(pen_x-250000,pen_y-250000,0,0xff); - vector_add_point(pen_x+250000,pen_y+250000,color,0xff); - vector_add_point(pen_x+250000,pen_y-250000,0,0xff); - vector_add_point(pen_x-250000,pen_y+250000,color,0xff); - } - else - lightpen_down=0; -} - -/********************************************************************* - Screen updating - *********************************************************************/ -VIDEO_UPDATE( vectrex ) -{ - int i, v; - double starttime; - - vectrex_configuration(); - lightpen_show(); - - starttime = timer_get_time() - vectrex_persistance; - if (starttime < 0) starttime = 0; - i = vectrex_point_index; - - /* Find the oldest vector we want to display */ - for (v=0; ((vectrex_points[i].time > starttime) && (v < NVECT)); v++) - { - i--; - if (i<0) i = NVECT - 1; - } - - /* start black */ - vector_add_point(vectrex_points[i].x, vectrex_points[i].y, vectrex_points[i].col, 0); - - while (i != vectrex_point_index) - { - vector_add_point(vectrex_points[i].x,vectrex_points[i].y,vectrex_points[i].col, vectrex_points[i].intensity); - i = (i+1) % NVECT; - } - - video_update_vector(machine, screen, bitmap, cliprect); - vector_clear_list(); - return 0; -} - -/********************************************************************* - Vector functions - *********************************************************************/ -void vectrex_add_point_stereo (int x, int y, rgb_t color, int intensity) -{ - if (vectrex_imager_status == 2) /* left = 1, right = 2 */ - vectrex_add_point ((int)(y*M_SQRT1_2), (int)(((x_max-x)*M_SQRT1_2)+y_center), color, intensity); - else - vectrex_add_point ((int)(y*M_SQRT1_2), (int)((x_max-x)*M_SQRT1_2), color, intensity); -} - -INLINE void vectrex_zero_integrators(void) -{ - if (last_point) - vector_add_point_function (last_point_x, last_point_y, vectrex_beam_color, - MIN((int)(last_point_z*((timer_get_time()-last_point_starttime)*3E4)),255)); - last_point = 0; - - x_int=x_center+(analog_sig[ASIG_ZR]*INT_PER_CLOCK); - y_int=y_center+(analog_sig[ASIG_ZR]*INT_PER_CLOCK); - vector_add_point_function (x_int, y_int, vectrex_beam_color, 0); -} - -INLINE void vectrex_dot(void) -{ - if (!last_point) - { - last_point_x = x_int; - last_point_y = y_int; - last_point_z = analog_sig[ASIG_Z] > 0? (int)(analog_sig[ASIG_Z] * z_factor): 0; - last_point_starttime = timer_get_time(); - last_point = 1; - } -} - -INLINE void vectrex_solid_line(double int_time, int blank) -{ - int z = analog_sig[ASIG_Z] > 0? (int)(analog_sig[ASIG_Z]*z_factor): 0; - int length = (int)(VECTREX_CLOCK * INT_PER_CLOCK * int_time); - - /* The BIOS draws lines as follows: First put a pattern in the VIA SR (this causes a dot). Then - * turn on RAMP and let the integrators do their job (this causes a line to be drawn). - * Obviously this first dot isn't needed so we optimize it away :) but we have to take care - * not to optimize _all_ dots, that's why we do draw the dot if the following line is - * black (a move). */ - if (last_point && (!blank || !z)) - vector_add_point_function(last_point_x, last_point_y, vectrex_beam_color, - MIN((int)(last_point_z*((timer_get_time()-last_point_starttime)*3E4)),255)); - last_point = 0; - - x_int += (int)(length * (analog_sig[ASIG_X] - analog_sig[ASIG_ZR])); - y_int += (int)(length * (analog_sig[ASIG_Y] + analog_sig[ASIG_ZR])); - vector_add_point_function(x_int, y_int, vectrex_beam_color, z * blank); -} - -/********************************************************************* - Startup and stop - *********************************************************************/ -VIDEO_START( vectrex ) -{ - int width, height; - - width = Machine->screen[0].width; - height = Machine->screen[0].height; - - x_center=((Machine->screen[0].visarea.max_x - -Machine->screen[0].visarea.min_x) / 2) << VEC_SHIFT; - y_center=((Machine->screen[0].visarea.max_y - -Machine->screen[0].visarea.min_y) / 2) << VEC_SHIFT; - x_max = Machine->screen[0].visarea.max_x << VEC_SHIFT; - y_max = Machine->screen[0].visarea.max_y << VEC_SHIFT; - - via_config(0, &vectrex_via6522_interface); - via_reset(); - z_factor = 2; - - imager_freq = 1; - - imager_timer = timer_alloc(vectrex_imager_right_eye); - if (!imager_timer) - return 1; - timer_adjust(imager_timer, 1.0/imager_freq, 2, 1.0/imager_freq); - - - lp_t = mame_timer_alloc(lightpen_trigger); - - return video_start_vector(machine); -} - - -/********************************************************************* - VIA interface functions - *********************************************************************/ -INLINE void vectrex_multiplexer (int mux) -{ - analog_sig[mux + 1]=(signed char)vectrex_via_out[PORTA]; - if (mux == 3) - DAC_data_w(0,(signed char)vectrex_via_out[PORTA]+0x80); -} - -static WRITE8_HANDLER ( v_via_pb_w ) -{ - if (!(data & 0x80)) - { - /* RAMP is active */ - if ((vectrex_via_out[PORTB] & 0x80)) - { - /* RAMP was inactive before */ - start_time = timer_get_time()+RAMP_DELAY; - - if (lightpen_down) - { - /* Simple lin. algebra to check if pen is near - * the line defined by (ASIG_X,ASIG_Y). - * If that is the case, set a timer which goes - * off when the beam reaches the pen. Exact - * timing is important here. - * - * lightpen - * ^ - * _ /| - * b / | - * / | - * / |d - * / | - * / | - * ------+---------> beam path - * l | _ - * a - */ - double a2, b2, ab, d2; - ab = (double)(pen_x-x_int)*analog_sig[ASIG_X] - +(double)(pen_y-y_int)*analog_sig[ASIG_Y]; - if (ab>0) - { - a2 = (analog_sig[ASIG_X]*analog_sig[ASIG_X] - +analog_sig[ASIG_Y]*analog_sig[ASIG_Y]); - b2 = (double)(pen_x-x_int)*(pen_x-x_int) - +(double)(pen_y-y_int)*(pen_y-y_int); - d2=b2-ab*ab/a2; - if (d2<2e10 && analog_sig[ASIG_Z]*blank>0) - timer_adjust(lp_t, ab/a2/(VECTREX_CLOCK*INT_PER_CLOCK),0,0); - } - } - } - - if (!(data & 0x1) && (vectrex_via_out[PORTB] & 0x1)) - /* MUX has been enabled */ - /* This is a rare case used by some new games */ - { - double time_now = timer_get_time()+SH_DELAY; - vectrex_solid_line(time_now-start_time, blank); - start_time = time_now; - } - } - else - { - /* RAMP is inactive */ - if (!(vectrex_via_out[PORTB] & 0x80)) - { - /* RAMP was active before - we can draw the line */ - vectrex_solid_line(timer_get_time()-start_time+RAMP_DELAY, blank); - /* Cancel running timer, line already finished */ - if (lightpen_down) - timer_adjust(lp_t,TIME_NEVER ,0,0); - } - } - - /* Sound */ - if (data & 0x10) - { - /* BDIR active, PSG latches */ - if (data & 0x08) /* BC1 (do we select a reg or write it ?) */ - AY8910_control_port_0_w (0, vectrex_via_out[PORTA]); - else - AY8910_write_port_0_w (0, vectrex_via_out[PORTA]); - } - - if (!(data & 0x1) && (vectrex_via_out[PORTB] & 0x1)) - /* MUX has been enabled, so check with which signal the MUX - * coulpes the DAC output. */ - vectrex_multiplexer ((data >> 1) & 0x3); - - vectrex_via_out[PORTB] = data; -} - -static WRITE8_HANDLER ( v_via_pa_w ) -{ - double time_now; - - if (!(vectrex_via_out[PORTB] & 0x80)) /* RAMP active (low) ? */ - { - /* The game changes the sample and hold ICs (X/Y axis) - * during line draw (curved vectors) - * Draw the vector with the current settings - * before updating the signals. - */ - time_now = timer_get_time() + SH_DELAY; - vectrex_solid_line(time_now - start_time, blank); - start_time = time_now; - } - /* DAC output always goes into Y integrator */ - vectrex_via_out[PORTA] = analog_sig[ASIG_Y] = (signed char)data; - - if (!(vectrex_via_out[PORTB] & 0x1)) - /* MUX is enabled, so check with which signal the MUX - * coulpes the DAC output. */ - vectrex_multiplexer ((vectrex_via_out[PORTB] >> 1) & 0x3); -} - -static WRITE8_HANDLER ( v_via_ca2_w ) -{ - if (!data) /* ~ZERO low ? Then zero integrators*/ - vectrex_zero_integrators(); -} - -static WRITE8_HANDLER ( v_via_cb2_w ) -{ - double time_now; - if (blank != data) - { - if (vectrex_via_out[PORTB] & 0x80) - { - /* RAMP inactive */ - /* This generates a dot (here we take the dwell time into account) */ - - if (data) - vectrex_dot(); - } - else - { - /* RAMP active - * Take MAX because RAMP is slower than BLANK - */ - time_now = MAX(timer_get_time(),start_time); - vectrex_solid_line(time_now - start_time, blank); - start_time = time_now; - } - if (data & lightpen_check()) - lightpen_trigger(0); - - blank = data; - } -} - -/***************************************************************** - - RA+A Spectrum I+ - -*****************************************************************/ - -static struct via6522_interface spectrum1_via6522_interface = -{ - /*inputs : A/B,CA/B1,CA/B2 */ v_via_pa_r, s1_via_pb_r, 0, 0, 0, 0, - /*outputs: A/B,CA/B1,CA/B2 */ v_via_pa_w, v_via_pb_w, 0, 0, v_via_ca2_w, v_via_cb2_w, - /*irq */ v_via_irq, -}; - -WRITE8_HANDLER( raaspec_led_w ) -{ - logerror("Spectrum I+ LED: %i%i%i%i%i%i%i%i\n", - (data>>7)&0x1, (data>>6)&0x1, (data>>5)&0x1, (data>>4)&0x1, - (data>>3)&0x1, (data>>2)&0x1, (data>>1)&0x1, data&0x1); -} - -VIDEO_START( raaspec ) -{ - x_center=((Machine->screen[0].visarea.max_x - -Machine->screen[0].visarea.min_x)/2) << VEC_SHIFT; - y_center=((Machine->screen[0].visarea.max_y - -Machine->screen[0].visarea.min_y)/2) << VEC_SHIFT; - x_max = Machine->screen[0].visarea.max_x << VEC_SHIFT; - y_max = Machine->screen[0].visarea.max_y << VEC_SHIFT; - - via_config(0, &spectrum1_via6522_interface); - via_reset(); - z_factor = 2; - - raaspec_led_w (0, 0xff); - return video_start_vector(machine); -} diff --git a/mess/vidhrdw/vtech1.c b/mess/vidhrdw/vtech1.c deleted file mode 100644 index 4c3ab2616..000000000 --- a/mess/vidhrdw/vtech1.c +++ /dev/null @@ -1,117 +0,0 @@ -/****************************************************************************** - -Video Technology Laser 110-310 computers: - - Video Technology Laser 110 - Sanyo Laser 110 - Video Technology Laser 200 - Salora Fellow - Texet TX-8000 - Video Technology VZ-200 - Video Technology Laser 210 - Dick Smith Electronics VZ-200 - Sanyo Laser 210 - Video Technology Laser 310 - Dick Smith Electronics VZ-300 - -Video hardware: - - Juergen Buchmueller , Dec 1999 - - Thanks go to: - - Guy Thomason - - Jason Oakley - - Bushy Maunder - - and anybody else on the vzemu list :) - - Davide Moretti for the detailed description of the colors. - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/vtech1.h" -#include "vidhrdw/m6847.h" - - -/****************************************************************************** - Palette Initialisation -******************************************************************************/ - -UINT32 vtech1_palette_mono[16]; -UINT32 vtech1_palette_color[16]; - -/* note - Juergen's colors do not match the colors in the m6847 code */ -static UINT8 vtech1_palette[] = -{ - 0, 224, 0, /* green */ - 208, 255, 0, /* yellow (greenish) */ - 0, 0, 255, /* blue */ - 255, 0, 0, /* red */ - 224, 224, 144, /* buff */ - 0, 255, 160, /* cyan (greenish) */ - 255, 0, 255, /* magenta */ - 240, 112, 0, /* orange */ - 0, 0, 0, /* black (block graphics) */ - 0, 224, 0, /* green */ - 0, 0, 0, /* black (block graphics) */ - 224, 224, 144, /* buff */ - 0, 64, 0, /* dark green (alphanumeric characters) */ - 0, 224, 24, /* bright green (alphanumeric characters) */ - 64, 16, 0, /* dark orange (alphanumeric characters) */ - 255, 196, 24, /* bright orange (alphanumeric characters) */ -}; - - -static ATTR_CONST UINT8 vtech1_get_attributes(UINT8 c) -{ - UINT8 result = 0x00; - if (c & 0x40) result |= M6847_INV; - if (c & 0x80) result |= M6847_AS; - if (vtech1_latch & 0x10) result |= M6847_CSS; - if (vtech1_latch & 0x08) result |= M6847_AG | M6847_GM1; - return result; -} - - -static const UINT8 *vtech1_get_video_ram(int scanline) -{ - return videoram + (scanline / (vtech1_latch & 0x08 ? 3 : 12)) * 0x20; -} - - -VIDEO_START( vtech1m ) -{ - m6847_config cfg; - int i; - - /* TODO: Monochrome should be moved into M6847 code */ - for (i = 0; i < sizeof(vtech1_palette_mono); i++) - { - int mono; - mono = (int)(vtech1_palette[i*3+0] * 0.299); /* red */ - mono += (int)(vtech1_palette[i*3+1] * 0.587); /* green */ - mono += (int)(vtech1_palette[i*3+2] * 0.114); /* blue */ - vtech1_palette_mono[i] = (mono << 16) + (mono << 8) + mono; - } - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = M6847_VERSION_ORIGINAL_PAL; - cfg.get_attributes = vtech1_get_attributes; - cfg.get_video_ram = vtech1_get_video_ram; - cfg.custom_palette = vtech1_palette_mono; - m6847_init(&cfg); - return 0; -} - - -VIDEO_START( vtech1 ) -{ - m6847_config cfg; - - memset(&cfg, 0, sizeof(cfg)); - cfg.type = M6847_VERSION_ORIGINAL_PAL; - cfg.get_attributes = vtech1_get_attributes; - cfg.get_video_ram = vtech1_get_video_ram; - m6847_init(&cfg); - return 0; -} diff --git a/mess/vidhrdw/vtech2.c b/mess/vidhrdw/vtech2.c deleted file mode 100644 index eefde1598..000000000 --- a/mess/vidhrdw/vtech2.c +++ /dev/null @@ -1,365 +0,0 @@ -/*************************************************************************** - vtech2.c - - video hardware - Juergen Buchmueller MESS driver, Jan 2000 - Davide Moretti ROM dump and hardware description - -****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" - -#include "includes/vtech2.h" - -#define BORDER_H 64 -#define BORDER_V 32 - -/* from machine/laser350.c */ -//extern int laser_latch; - -/* public */ -char laser_frame_message[64+1]; -int laser_frame_time = 0; - -/* - * when in text mode (bit 3 of I/O area = 0) - * bit 3 2 1 0 mode - * 0 x x 0 40 columns x 24 rows display RAM at bank 7 1F800-1FFFF - * 1 x x 0 40 columns x 24 rows display RAM at bank 3 0F800-0FFFF - * 0 x x 1 80 columns x 24 rows display RAM at bank 7 1F800-1FFFF - * 1 x x 1 80 columns x 24 rows display RAM at bank 3 0F800-0FFFF - * - * when in graphics mode (bit 3 of I/O area = 1) - * bit 3 2 1 0 mode - * 0 0 0 x GR5 bank 7 1C000-1FFFF - * 1 0 0 x GR5 bank 3 0C000-0FFFF - * 0 0 1 0 GR4 bank 7 1C000-1FFFF - * 1 0 1 0 GR4 bank 3 0C000-0FFFF - * 0 0 1 1 GR3 bank 7 1C000-1FFFF - * 1 0 1 1 GR3 bank 3 1C000-1FFFF - * 0 1 0 x GR0 bank 7 1E000-1FFFF - * 1 1 0 x GR0 bank 3 0E000-0FFFF - * 0 1 1 0 GR2 bank 7 1E000-1FFFF - * 1 1 1 0 GR2 bank 3 0E000-0FFFF - * 0 1 1 1 GR1 bank 7 1E000-1FFFF - * 1 1 1 1 GR1 bank 3 0E000-0FFFF - */ -static int laser_bg_mode = 0; -static int laser_two_color = 0; - -VIDEO_START( laser ) -{ - videoram_size = 0x04000; - dirtybuffer = (UINT8*) auto_malloc(videoram_size); - return 0; -} - -static int offs_2[192] = { - 0x0000,0x0800,0x1000,0x1800,0x2000,0x2800,0x3000,0x3800, - 0x0100,0x0900,0x1100,0x1900,0x2100,0x2900,0x3100,0x3900, - 0x0200,0x0a00,0x1200,0x1a00,0x2200,0x2a00,0x3200,0x3a00, - 0x0300,0x0b00,0x1300,0x1b00,0x2300,0x2b00,0x3300,0x3b00, - 0x0400,0x0c00,0x1400,0x1c00,0x2400,0x2c00,0x3400,0x3c00, - 0x0500,0x0d00,0x1500,0x1d00,0x2500,0x2d00,0x3500,0x3d00, - 0x0600,0x0e00,0x1600,0x1e00,0x2600,0x2e00,0x3600,0x3e00, - 0x0700,0x0f00,0x1700,0x1f00,0x2700,0x2f00,0x3700,0x3f00, - 0x0050,0x0850,0x1050,0x1850,0x2050,0x2850,0x3050,0x3850, - 0x0150,0x0950,0x1150,0x1950,0x2150,0x2950,0x3150,0x3950, - 0x0250,0x0a50,0x1250,0x1a50,0x2250,0x2a50,0x3250,0x3a50, - 0x0350,0x0b50,0x1350,0x1b50,0x2350,0x2b50,0x3350,0x3b50, - 0x0450,0x0c50,0x1450,0x1c50,0x2450,0x2c50,0x3450,0x3c50, - 0x0550,0x0d50,0x1550,0x1d50,0x2550,0x2d50,0x3550,0x3d50, - 0x0650,0x0e50,0x1650,0x1e50,0x2650,0x2e50,0x3650,0x3e50, - 0x0750,0x0f50,0x1750,0x1f50,0x2750,0x2f50,0x3750,0x3f50, - 0x00a0,0x08a0,0x10a0,0x18a0,0x20a0,0x28a0,0x30a0,0x38a0, - 0x01a0,0x09a0,0x11a0,0x19a0,0x21a0,0x29a0,0x31a0,0x39a0, - 0x02a0,0x0aa0,0x12a0,0x1aa0,0x22a0,0x2aa0,0x32a0,0x3aa0, - 0x03a0,0x0ba0,0x13a0,0x1ba0,0x23a0,0x2ba0,0x33a0,0x3ba0, - 0x04a0,0x0ca0,0x14a0,0x1ca0,0x24a0,0x2ca0,0x34a0,0x3ca0, - 0x05a0,0x0da0,0x15a0,0x1da0,0x25a0,0x2da0,0x35a0,0x3da0, - 0x06a0,0x0ea0,0x16a0,0x1ea0,0x26a0,0x2ea0,0x36a0,0x3ea0, - 0x07a0,0x0fa0,0x17a0,0x1fa0,0x27a0,0x2fa0,0x37a0,0x3fa0 -}; - -static int offs_1[192] = { - 0x2000,0x2080,0x2800,0x2880,0x3000,0x3080,0x3800,0x3880, - 0x2100,0x2180,0x2900,0x2980,0x3100,0x3180,0x3900,0x3980, - 0x2200,0x2280,0x2a00,0x2a80,0x3200,0x3280,0x3a00,0x3a80, - 0x2300,0x2380,0x2b00,0x2b80,0x3300,0x3380,0x3b00,0x3b80, - 0x2400,0x2480,0x2c00,0x2c80,0x3400,0x3480,0x3c00,0x3c80, - 0x2500,0x2580,0x2d00,0x2d80,0x3500,0x3580,0x3d00,0x3d80, - 0x2600,0x2680,0x2e00,0x2e80,0x3600,0x3680,0x3e00,0x3e80, - 0x2700,0x2780,0x2f00,0x2f80,0x3700,0x3780,0x3f00,0x3f80, - 0x2028,0x20a8,0x2828,0x28a8,0x3028,0x30a8,0x3828,0x38a8, - 0x2128,0x21a8,0x2928,0x29a8,0x3128,0x31a8,0x3928,0x39a8, - 0x2228,0x22a8,0x2a28,0x2aa8,0x3228,0x32a8,0x3a28,0x3aa8, - 0x2328,0x23a8,0x2b28,0x2ba8,0x3328,0x33a8,0x3b28,0x3ba8, - 0x2428,0x24a8,0x2c28,0x2ca8,0x3428,0x34a8,0x3c28,0x3ca8, - 0x2528,0x25a8,0x2d28,0x2da8,0x3528,0x35a8,0x3d28,0x3da8, - 0x2628,0x26a8,0x2e28,0x2ea8,0x3628,0x36a8,0x3e28,0x3ea8, - 0x2728,0x27a8,0x2f28,0x2fa8,0x3728,0x37a8,0x3f28,0x3fa8, - 0x2050,0x20d0,0x2850,0x28d0,0x3050,0x30d0,0x3850,0x38d0, - 0x2150,0x21d0,0x2950,0x29d0,0x3150,0x31d0,0x3950,0x39d0, - 0x2250,0x22d0,0x2a50,0x2ad0,0x3250,0x32d0,0x3a50,0x3ad0, - 0x2350,0x23d0,0x2b50,0x2bd0,0x3350,0x33d0,0x3b50,0x3bd0, - 0x2450,0x24d0,0x2c50,0x2cd0,0x3450,0x34d0,0x3c50,0x3cd0, - 0x2550,0x25d0,0x2d50,0x2dd0,0x3550,0x35d0,0x3d50,0x3dd0, - 0x2650,0x26d0,0x2e50,0x2ed0,0x3650,0x36d0,0x3e50,0x3ed0, - 0x2750,0x27d0,0x2f50,0x2fd0,0x3750,0x37d0,0x3f50,0x3fd0 -}; - -static int offs_0[96] = { - 0x2000,0x2800,0x3000,0x3800,0x2100,0x2900,0x3100,0x3900, - 0x2200,0x2a00,0x3200,0x3a00,0x2300,0x2b00,0x3300,0x3b00, - 0x2400,0x2c00,0x3400,0x3c00,0x2500,0x2d00,0x3500,0x3d00, - 0x2600,0x2e00,0x3600,0x3e00,0x2700,0x2f00,0x3700,0x3f00, - 0x2050,0x2850,0x3050,0x3850,0x2150,0x2950,0x3150,0x3950, - 0x2250,0x2a50,0x3250,0x3a50,0x2350,0x2b50,0x3350,0x3b50, - 0x2450,0x2c50,0x3450,0x3c50,0x2550,0x2d50,0x3550,0x3d50, - 0x2650,0x2e50,0x3650,0x3e50,0x2750,0x2f50,0x3750,0x3f50, - 0x20a0,0x28a0,0x30a0,0x38a0,0x21a0,0x29a0,0x31a0,0x39a0, - 0x22a0,0x2aa0,0x32a0,0x3aa0,0x23a0,0x2ba0,0x33a0,0x3ba0, - 0x24a0,0x2ca0,0x34a0,0x3ca0,0x25a0,0x2da0,0x35a0,0x3da0, - 0x26a0,0x2ea0,0x36a0,0x3ea0,0x27a0,0x2fa0,0x37a0,0x3fa0 -}; - -VIDEO_UPDATE( laser ) -{ - int offs, x, y; - int full_refresh = 1; - - if( full_refresh ) - { - fillbitmap(bitmap, Machine->pens[(laser_bg_mode >> 4) & 15], &Machine->screen[0].visarea); - memset(dirtybuffer, 1, videoram_size); - } - - if (laser_latch & 0x08) - { - /* graphics modes */ - switch (laser_bg_mode & 7) - { - case 0: - case 1: - /* - * GR 5 - * 640x192 1bpp - */ - for( y = 0; y < 192; y++ ) - { - offs = offs_2[y]; - for( x = 0; x < 80; x++, offs++ ) - { - if( dirtybuffer[offs] ) - { - int sx, sy, code, color = laser_two_color; - sy = BORDER_V/2 + y; - sx = BORDER_H/2 + x * 8; - code = videoram[offs]; - drawgfx(bitmap,Machine->gfx[2],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - } - } - } - break; - - case 2: - /* - * GR 4 - * 320x192 1bpp with two colors per 8 pixels - */ - for( y = 0; y < 192; y++ ) - { - offs = offs_2[y]; - for( x = 0; x < 40; x++, offs += 2 ) - { - if( dirtybuffer[offs] || dirtybuffer[offs+1] ) - { - int sx, sy, code, color; - sy = BORDER_V/2 + y; - sx = BORDER_H/2 + x * 16; - code = videoram[offs]; - color = videoram[offs+1]; - drawgfx(bitmap,Machine->gfx[3],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = dirtybuffer[offs+1] = 0; - } - } - } - break; - - case 3: - /* - * GR 3 - * 160x192 4bpp - */ - for( y = 0; y < 192; y++ ) - { - offs = offs_2[y]; - for( x = 0; x < 80; x++, offs++ ) - { - if( dirtybuffer[offs] ) - { - int sx, sy, code; - sy = BORDER_V/2 + y; - sx = BORDER_H/2 + x * 8; - code = videoram[offs]; - drawgfx(bitmap,Machine->gfx[5],code,0,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - } - } - } - break; - - case 4: - case 5: - /* - * GR 0 - * 160x96 4bpp - */ - for( y = 0; y < 96; y++ ) - { - offs = offs_0[y]; - for( x = 0; x < 80; x++, offs++ ) - { - if( dirtybuffer[offs] ) - { - int sx, sy, code; - sy = BORDER_V/2 + y * 2; - sx = BORDER_H/2 + x * 8; - code = videoram[offs]; - drawgfx(bitmap,Machine->gfx[6],code,0,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - } - } - } - break; - - case 6: - /* - * GR 2 - * 320x192 1bpp - */ - for( y = 0; y < 192; y++ ) - { - offs = offs_1[y]; - for( x = 0; x < 40; x++, offs++ ) - { - if( dirtybuffer[offs] ) - { - int sx, sy, code, color = laser_two_color; - sy = BORDER_V/2 + y; - sx = BORDER_H/2 + x * 16; - code = videoram[offs]; - drawgfx(bitmap,Machine->gfx[3],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - } - } - } - break; - - case 7: - /* - * GR 1 - * 160x192 1bpp with two colors per 8 pixels - */ - for( y = 0; y < 192; y++ ) - { - offs = offs_1[y]; - for( x = 0; x < 20; x++, offs += 2 ) - { - if( dirtybuffer[offs] || dirtybuffer[offs+1] ) - { - int sx, sy, code, color; - sy = BORDER_V/2 + y; - sx = BORDER_H/2 + x * 32; - code = videoram[offs]; - color = videoram[offs+1]; - drawgfx(bitmap,Machine->gfx[4],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = dirtybuffer[offs+1] = 0; - } - } - } - break; - } - } - else - { - /* text modes */ - if (laser_bg_mode & 1) - { - /* 80 columns text mode */ - for( y = 0; y < 24; y++ ) - { - offs = ((y & 7) << 8) + ((y >> 3) * 80); - for( x = 0; x < 80; x++, offs++ ) - { - if( dirtybuffer[0x3800+offs] ) - { - int sx, sy, code, color = laser_two_color; - sy = BORDER_V/2 + y * 8; - sx = BORDER_H/2 + x * 8; - code = videoram[0x3800+offs]; - drawgfx(bitmap,Machine->gfx[0],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[offs] = 0; - } - } - } - } - else - { - /* 40 columns text mode */ - for( y = 0; y < 24; y++ ) - { - offs = ((y & 7) << 8) + ((y >> 3) * 80); - for( x = 0; x < 40; x++, offs += 2 ) - { - if( dirtybuffer[0x3800+offs] || dirtybuffer[0x3801+offs] ) - { - int sx, sy, code, color = 0; - sy = BORDER_V/2 + y * 8; - sx = BORDER_H/2 + x * 16; - code = videoram[0x3800+offs]; - color = videoram[0x3801+offs]; - drawgfx(bitmap,Machine->gfx[1],code,color,0,0,sx,sy, - &Machine->screen[0].visarea,TRANSPARENCY_NONE,0); - dirtybuffer[0x3800+offs] = dirtybuffer[0x3801+offs] = 0; - } - } - } - } - } - - if( laser_frame_time > 0 ) - { - popmessage("%s", laser_frame_message); - } - return 0; -} - -WRITE8_HANDLER( laser_bg_mode_w ) -{ - if (laser_bg_mode != data) - { - laser_bg_mode = data; - logerror("laser border:$%X mode:$%X\n", data >> 4, data & 15); - } -} - -WRITE8_HANDLER( laser_two_color_w ) -{ - if (laser_two_color != data) - { - laser_two_color = data; - logerror("laser foreground:$%X background:$%X\n", data >> 4, data & 15); - } -} - - diff --git a/mess/vidhrdw/wswan.c b/mess/vidhrdw/wswan.c deleted file mode 100644 index 42b8d3e5d..000000000 --- a/mess/vidhrdw/wswan.c +++ /dev/null @@ -1,607 +0,0 @@ -/*************************************************************************** - - wswan.c - - File to handle video emulation of the Bandai WonderSwan. - - Anthony Kruize - Wilbert Pol - -***************************************************************************/ -#include "driver.h" -#include "vidhrdw/generic.h" -#include "includes/wswan.h" - -static int pal[16][16]; - -INLINE void wswan_plot_pixel(int x, int y, int pen) { - y += 5*8; - if ( vdp.display_vertical ) { - plot_pixel( tmpbitmap, y, 28*8 - 1 - x, pen ); - } else { - plot_pixel( tmpbitmap, x, y, pen ); - } -} - -INLINE void wswan_fillbitmap( int pen, rectangle *rec ) { - /* Fill empty area above line 0 when filling line 0 */ - if ( vdp.current_line != 0 ) { - rec->min_y = rec->min_y + 5*8; - } - - /* Fill empty area below line 143 when filling line 143 */ - if ( vdp.current_line != 143 ) { - rec->max_y = rec->max_y + 5*8; - } else { - rec->max_y = 28*8; - } - - if ( vdp.display_vertical ) { - rectangle rec2; - rec2.min_y = 28*8 - 1 - rec->max_x; - rec2.max_y = 28*8 - 1 - rec->min_x; - rec2.min_x = rec->min_y; - rec2.max_x = rec->max_y; - fillbitmap( tmpbitmap, pen, &rec2 ); - } else { - fillbitmap( tmpbitmap, pen, rec ); - } -} - -void wswan_setup_palettes(void) { - int i,j; - - if ( vdp.color_mode ) { - for( i = 0; i < 16; i++ ) { - for( j = 0; j < 16; j++ ) { - pal[i][j] = ( ( vdp.palette_vram[ ( i << 5 ) + j*2 + 1 ] << 8 ) | vdp.palette_vram[ ( i << 5 ) + j*2 ] ) & 0x0FFF; - } - } - } else { - for( i = 0; i < 16; i++ ) { - pal[i][0] = ws_portram[ 0x20 + ( i << 1 ) ] & 0x07; - pal[i][1] = ( ws_portram[ 0x20 + ( i << 1 ) ] >> 4 ) & 0x07; - pal[i][2] = ws_portram[ 0x21 + ( i << 1 ) ] & 0x07; - pal[i][3] = ( ws_portram[ 0x21 + ( i << 1 ) ] >> 4 ) & 0x07; - } - } -} - -void wswan_draw_background(void) { - UINT16 map_addr; - UINT8 start_column; - int column; - - map_addr = vdp.layer_bg_address + ( ( ( vdp.current_line + vdp.layer_bg_scroll_y ) & 0xF8 ) << 3 ); - start_column = ( vdp.layer_bg_scroll_x >> 3 ); - for( column = 0; column < 29; column++ ) { - int tile_data, tile_number, tile_palette, tile_line, tile_address; - UINT32 plane0=0, plane1=0, plane2=0, plane3=0; - int x, x_offset; - - tile_data = ( vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) + 1 ] << 8 ) - | vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) ]; - tile_number = tile_data & 0x01FF; - tile_palette = ( tile_data >> 9 ) & 0x0F; - - tile_line = ( vdp.current_line + vdp.layer_bg_scroll_y ) & 0x07; - if ( tile_data & 0x8000 ) { - tile_line = 7 - tile_line; - } - - if ( vdp.colors_16 ) { - tile_address = ( ( tile_data & 0x2000 ) ? 0x8000 : 0x4000 ) + ( tile_number * 32 ) + ( tile_line << 2 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 24 ) | ( vdp.vram[ tile_address + 1 ] << 16 ) | ( vdp.vram[ tile_address + 2 ] << 8 ) | vdp.vram[ tile_address + 3 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = vdp.vram[ tile_address + 2 ] << 2; - plane3 = vdp.vram[ tile_address + 3 ] << 3; - } - } else { - tile_address = 0x2000 + ( tile_number * 16 ) + ( tile_line << 1 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 8 ) | vdp.vram[ tile_address + 1 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = 0; - plane3 = 0; - } - } - - for( x = 0; x < 8; x++ ) { - int col; - if ( vdp.tile_packed ) { - if ( vdp.colors_16 ) { - col = plane0 & 0x0F; - plane0 = plane0 >> 4; - } else { - col = plane0 & 0x03; - plane0 = plane0 >> 2; - } - } else { - col = ( plane3 & 8 ) | ( plane2 & 4 ) | ( plane1 & 2 ) | ( plane0 & 1 ); - plane3 = plane3 >> 1; - plane2 = plane2 >> 1; - plane1 = plane1 >> 1; - plane0 = plane0 >> 1; - } - if ( tile_data & 0x4000 ) { - x_offset = x + ( column << 3 ) - ( vdp.layer_bg_scroll_x & 0x07 ); - } else { - x_offset = 7 - x + ( column << 3 ) - ( vdp.layer_bg_scroll_x & 0x07 ); - } - if ( x_offset >= 0 && x_offset < WSWAN_X_PIXELS ) { - if ( vdp.colors_16 ) { - if ( col ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - /* Hmmmm, what should we do here... Is this correct?? */ - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } - } - } else { - if ( col || !(tile_palette & 4 ) ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[vdp.main_palette[pal[tile_palette][col]]] ); - } - } - } - } - } - } -} - -void wswan_draw_foreground_0( void ) { - UINT16 map_addr; - UINT8 start_column; - int column; - map_addr = vdp.layer_fg_address + ( ( ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0xF8 ) << 3 ); - start_column = ( vdp.layer_fg_scroll_x >> 3 ); - for( column = 0; column < 29; column++ ) { - UINT32 plane0 = 0, plane1 = 0, plane2 = 0, plane3 = 0; - int x, x_offset, tile_line, tile_address; - int tile_data = ( vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) + 1 ] << 8 ) - | vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) ]; - int tile_number = tile_data & 0x01FF; - int tile_palette = ( tile_data >> 9 ) & 0x0F; - - tile_line = ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0x07; - if ( tile_data & 0x8000 ) { - tile_line = 7 - tile_line; - } - - if ( vdp.colors_16 ) { - tile_address = ( ( tile_data & 0x2000 ) ? 0x8000 : 0x4000 ) + ( tile_number * 32 ) + ( tile_line << 2 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 24 ) | ( vdp.vram[ tile_address + 1 ] << 16 ) | ( vdp.vram[ tile_address + 2 ] << 8 ) | vdp.vram[ tile_address + 3 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = vdp.vram[ tile_address + 2 ] << 2; - plane3 = vdp.vram[ tile_address + 3 ] << 3; - } - } else { - tile_address = 0x2000 + ( tile_number * 16 ) + ( tile_line << 1 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 8 ) | vdp.vram[ tile_address + 1 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = 0; - plane3 = 0; - } - } - - for( x = 0; x < 8; x++ ) { - int col; - if ( vdp.tile_packed ) { - if ( vdp.colors_16 ) { - col = plane0 & 0x0F; - plane0 = plane0 >> 4; - } else { - col = plane0 & 0x03; - plane0 = plane0 >> 2; - } - } else { - col = ( plane3 & 8 ) | ( plane2 & 4 ) | ( plane1 & 2 ) | ( plane0 & 1 ); - plane3 = plane3 >> 1; - plane2 = plane2 >> 1; - plane1 = plane1 >> 1; - plane0 = plane0 >> 1; - } - if ( tile_data & 0x4000 ) { - x_offset = x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } else { - x_offset = 7 - x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } - if ( x_offset >= 0 && x_offset < WSWAN_X_PIXELS ) { - if ( vdp.colors_16 ) { - if ( col ) { -// if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); -// } else { -// /* Hmmmm, what should we do here... Is this correct?? */ -// wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); -// } - } - } else { - if ( col || !(tile_palette & 4 ) ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[vdp.main_palette[pal[tile_palette][col]]] ); - } - } - } - } - } - } -} - -void wswan_draw_foreground_2( void ) { - UINT16 map_addr; - UINT8 start_column; - int column; - map_addr = vdp.layer_fg_address + ( ( ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0xF8 ) << 3 ); - start_column = ( vdp.layer_fg_scroll_x >> 3 ); - for( column = 0; column < 29; column++ ) { - UINT32 plane0 = 0, plane1 = 0, plane2 = 0, plane3 = 0; - int x, x_offset, tile_line, tile_address; - int tile_data = ( vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) + 1 ] << 8 ) - | vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) ]; - int tile_number = tile_data & 0x01FF; - int tile_palette = ( tile_data >> 9 ) & 0x0F; - - tile_line = ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0x07; - if ( tile_data & 0x8000 ) { - tile_line = 7 - tile_line; - } - - if ( vdp.colors_16 ) { - tile_address = ( ( tile_data & 0x2000 ) ? 0x8000 : 0x4000 ) + ( tile_number * 32 ) + ( tile_line << 2 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 24 ) | ( vdp.vram[ tile_address + 1 ] << 16 ) | ( vdp.vram[ tile_address + 2 ] << 8 ) | vdp.vram[ tile_address + 3 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = vdp.vram[ tile_address + 2 ] << 2; - plane3 = vdp.vram[ tile_address + 3 ] << 3; - } - } else { - tile_address = 0x2000 + ( tile_number * 16 ) + ( tile_line << 1 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 8 ) | vdp.vram[ tile_address + 1 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = 0; - plane3 = 0; - } - } - - for( x = 0; x < 8; x++ ) { - int col; - if ( vdp.tile_packed ) { - if ( vdp.colors_16 ) { - col = plane0 & 0x0F; - plane0 = plane0 >> 4; - } else { - col = plane0 & 0x03; - plane0 = plane0 >> 2; - } - } else { - col = ( plane3 & 8 ) | ( plane2 & 4 ) | ( plane1 & 2 ) | ( plane0 & 1 ); - plane3 = plane3 >> 1; - plane2 = plane2 >> 1; - plane1 = plane1 >> 1; - plane0 = plane0 >> 1; - } - if ( tile_data & 0x4000 ) { - x_offset = x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } else { - x_offset = 7 - x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } - if ( x_offset >= 0 && x_offset >= vdp.window_fg_left && x_offset < vdp.window_fg_right && x_offset < WSWAN_X_PIXELS ) { - if ( vdp.colors_16 ) { - if ( col ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - /* Hmmmm, what should we do here... Is this correct?? */ - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } - } - } else { - if ( col || !(tile_palette & 4 ) ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[vdp.main_palette[pal[tile_palette][col]]] ); - } - } - } - } - } - } -} - -void wswan_draw_foreground_3( void ) { - UINT16 map_addr; - UINT8 start_column; - int column; - map_addr = vdp.layer_fg_address + ( ( ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0xF8 ) << 3 ); - start_column = ( vdp.layer_fg_scroll_x >> 3 ); - for( column = 0; column < 29; column++ ) { - UINT32 plane0 = 0, plane1 = 0, plane2 = 0, plane3 = 0; - int x, x_offset, tile_line, tile_address; - int tile_data = ( vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) + 1 ] << 8 ) - | vdp.vram[ map_addr + ( ( ( start_column + column ) & 0x1F ) << 1 ) ]; - int tile_number = tile_data & 0x01FF; - int tile_palette = ( tile_data >> 9 ) & 0x0F; - - tile_line = ( vdp.current_line + vdp.layer_fg_scroll_y ) & 0x07; - if ( tile_data & 0x8000 ) { - tile_line = 7 - tile_line; - } - - if ( vdp.colors_16 ) { - tile_address = ( ( tile_data & 0x2000 ) ? 0x8000 : 0x4000 ) + ( tile_number * 32 ) + ( tile_line << 2 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 24 ) | ( vdp.vram[ tile_address + 1 ] << 16 ) | ( vdp.vram[ tile_address + 2 ] << 8 ) | vdp.vram[ tile_address + 3 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = vdp.vram[ tile_address + 2 ] << 2; - plane3 = vdp.vram[ tile_address + 3 ] << 3; - } - } else { - tile_address = 0x2000 + ( tile_number * 16 ) + ( tile_line << 1 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 8 ) | vdp.vram[ tile_address + 1 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = 0; - plane3 = 0; - } - } - - for( x = 0; x < 8; x++ ) { - int col; - if ( vdp.tile_packed ) { - if ( vdp.colors_16 ) { - col = plane0 & 0x0F; - plane0 = plane0 >> 4; - } else { - col = plane0 & 0x03; - plane0 = plane0 >> 2; - } - } else { - col = ( plane3 & 8 ) | ( plane2 & 4 ) | ( plane1 & 2 ) | ( plane0 & 1 ); - plane3 = plane3 >> 1; - plane2 = plane2 >> 1; - plane1 = plane1 >> 1; - plane0 = plane0 >> 1; - } - if ( tile_data & 0x4000 ) { - x_offset = x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } else { - x_offset = 7 - x + ( column << 3 ) - ( vdp.layer_fg_scroll_x & 0x07 ); - } - if ( ( x_offset >= 0 && x_offset < vdp.window_fg_left ) || ( x_offset >= vdp.window_fg_right && x_offset < WSWAN_X_PIXELS ) ) { - if ( vdp.colors_16 ) { - if ( col ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - /* Hmmmm, what should we do here... Is this correct?? */ - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } - } - } else { - if ( col || !(tile_palette & 4 ) ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[vdp.main_palette[pal[tile_palette][col]]] ); - } - } - } - } - } - } -} - -void wswan_handle_sprites( int mask ) { - int i; - if ( vdp.sprite_count == 0 ) - return; - for( i = vdp.sprite_first + vdp.sprite_count - 1; i >= vdp.sprite_first; i-- ) { - UINT8 x, y; - UINT16 tile_data; - int tile_line; - - tile_data = ( vdp.vram[ vdp.sprite_table_address + i * 4 + 1 ] << 8 ) - | vdp.vram[ vdp.sprite_table_address + i * 4 ]; - y = vdp.vram[ vdp.sprite_table_address + i * 4 + 2 ]; - x = vdp.vram[ vdp.sprite_table_address + i * 4 + 3 ]; - tile_line = vdp.current_line - y; - tile_line = tile_line & 0xFF; - if ( ( tile_line >= 0 ) && ( tile_line < 8 ) && ( ( tile_data & mask ) == mask ) ) { - UINT32 plane0 = 0, plane1 = 0, plane2 = 0, plane3 = 0; - int j, x_offset, tile_address; - int tile_number = tile_data & 0x01FF; - int tile_palette = 8 + ( ( tile_data >> 9 ) & 0x07 ); - int check_clip = 0; - if ( tile_data & 0x8000 ) { - tile_line = 7 - tile_line; - } - - if ( vdp.colors_16 ) { - tile_address = 0x4000 + ( tile_number * 32 ) + ( tile_line << 2 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 24 ) | ( vdp.vram[ tile_address + 1 ] << 16 ) | ( vdp.vram[ tile_address + 2 ] << 8 ) | vdp.vram[ tile_address + 3 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = vdp.vram[ tile_address + 2 ] << 2; - plane3 = vdp.vram[ tile_address + 3 ] << 3; - } - } else { - tile_address = 0x2000 + ( tile_number * 16 ) + ( tile_line << 1 ); - if ( vdp.tile_packed ) { - plane0 = ( vdp.vram[ tile_address + 0 ] << 8 ) | vdp.vram[ tile_address + 1 ]; - } else { - plane0 = vdp.vram[ tile_address + 0 ]; - plane1 = vdp.vram[ tile_address + 1 ] << 1; - plane2 = 0; - plane3 = 0; - } - } - - if ( vdp.window_sprites_enable ) { - if ( tile_data & 0x1000 ) { - if ( vdp.current_line >= vdp.window_sprites_top && vdp.current_line <= vdp.window_sprites_bottom ) { - check_clip = 1; - } - } else { - if ( vdp.current_line < vdp.window_sprites_top || vdp.current_line > vdp.window_sprites_bottom ) { - continue; - } - } - } - - for ( j = 0; j < 8; j++ ) { - int col; - if ( vdp.tile_packed ) { - if ( vdp.colors_16 ) { - col = plane0 & 0x0F; - plane0 = plane0 >> 4; - } else { - col = plane0 & 0x03; - plane0 = plane0 >> 2; - } - } else { - col = ( plane3 & 8 ) | ( plane2 & 4 ) | ( plane1 & 2 ) | ( plane0 & 1 ); - plane3 = plane3 >> 1; - plane2 = plane2 >> 1; - plane1 = plane1 >> 1; - plane0 = plane0 >> 1; - } - if ( tile_data & 0x4000 ) { - x_offset = x + j; - } else { - x_offset = x + 7 - j; - } - x_offset = x_offset & 0xFF; - if ( vdp.window_sprites_enable ) { - if ( tile_data & 0x1000 && check_clip ) { - if ( x_offset >= vdp.window_sprites_left && x_offset <= vdp.window_sprites_right ) { - continue; - } - } else { - if ( x_offset < vdp.window_sprites_left || x_offset > vdp.window_sprites_right ) { -// continue; - } - } - } - if ( x_offset >= 0 && x_offset < WSWAN_X_PIXELS ) { - if ( vdp.colors_16 ) { - if ( col ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - /* Hmmmm, what should we do here... Is this correct?? */ - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } - } - } else { - if ( col || !(tile_palette & 4 ) ) { - if ( vdp.color_mode ) { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[pal[tile_palette][col]] ); - } else { - wswan_plot_pixel( x_offset, vdp.current_line, Machine->pens[vdp.main_palette[pal[tile_palette][col]]] ); - } - } - } - } - } - } - } -} - -void wswan_refresh_scanline(void) -{ - rectangle rec; - - wswan_setup_palettes(); - - rec.min_x = 0; - rec.max_x = WSWAN_X_PIXELS; - rec.min_y = rec.max_y = vdp.current_line; - if ( ws_portram[0x14] ) { - /* Not sure if these background color checks and settings are correct */ - if ( vdp.color_mode && vdp.colors_16 ) { - wswan_fillbitmap( Machine->pens[ pal[ws_portram[0x01]>>4][ws_portram[0x01]&0x0F] ], &rec ); - } else { - wswan_fillbitmap( Machine->pens[ vdp.main_palette[ws_portram[0x01]&0x07] ], &rec ); - } - } else { - wswan_fillbitmap( Machine->pens[ 0 ], &rec ); - return; - } - - /* - * Draw background layer - */ - if ( vdp.layer_bg_enable ) { - wswan_draw_background(); - } - - /* - * Draw sprites between background and foreground layers - */ - if ( vdp.sprites_enable ) { - wswan_handle_sprites( 0 ); - } - - /* - * Draw foreground layer, taking window settings into account - */ - if ( vdp.layer_fg_enable ) { - switch( vdp.window_fg_mode ) { - case 0: /* FG inside & outside window area */ - wswan_draw_foreground_0(); - break; - case 1: /* ??? */ - logerror( "Unknown foreground mode 1 set\n" ); - break; - case 2: /* FG only inside window area */ - if ( vdp.current_line >= vdp.window_fg_top && vdp.current_line <= vdp.window_fg_bottom ) { - wswan_draw_foreground_2(); - } - break; - case 3: /* FG only outside window area */ - if ( vdp.current_line < vdp.window_fg_top || vdp.current_line > vdp.window_fg_bottom ) { - wswan_draw_foreground_0(); - } else { - wswan_draw_foreground_3(); - } - break; - } - } - - /* - * Draw sprites in front of foreground layer - */ - if ( vdp.sprites_enable ) { - wswan_handle_sprites( 0x2000 ); - } -} - diff --git a/mess/vidhrdw/zx.c b/mess/vidhrdw/zx.c deleted file mode 100644 index adecfc6a6..000000000 --- a/mess/vidhrdw/zx.c +++ /dev/null @@ -1,198 +0,0 @@ -/*************************************************************************** - zx.c - - video hardware - Juergen Buchmueller , Dec 1999 - - The ZX has a very unorthodox video RAM system. To start a scanline, - the CPU must jump to video RAM at 0xC000, which is a mirror of the - RAM at 0x4000. The video chip (ULA?) pulls a switcharoo and changes - the video bytes as they are fetched by the CPU. - - The video chip draws the scanline until a HALT instruction (0x76) is - reached, which indicates no further video RAM for this scanline. Any - other video byte is used to generate a tile and at the same time, - appears to the CPU as a NOP (0x00) instruction. - -****************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/z80/z80.h" -#include "includes/zx.h" -#include "sound/dac.h" - -mame_timer *ula_nmi = NULL; -mame_timer *ula_irq = NULL; -int ula_nmi_active, ula_irq_active; -int ula_frame_vsync = 0; -int ula_scancode_count = 0; -int ula_scanline_count = 0; -int old_x = 0; -int old_y = 0; -int old_c = 0; - -/* - * Toggle the video output between black and white. - * This happens whenever the ULA scanline IRQs are enabled/disabled. - * Normally this is done during the synchronized zx_ula_r() function, - * which outputs 8 pixels per code, but if the video sync is off - * (during tape IO or sound output) zx_ula_bkgnd() is used to - * simulate the display of a ZX80/ZX81. - */ -void zx_ula_bkgnd(int color) -{ - if (ula_frame_vsync == 0 && color != old_c) - { - int y, new_x, new_y; - rectangle r; - mame_bitmap *bitmap = tmpbitmap; - - new_y = cpu_getscanline(); - new_x = cpu_gethorzbeampos(); -/* logerror("zx_ula_bkgnd: %3d,%3d - %3d,%3d\n", old_x, old_y, new_x, new_y);*/ - y = old_y; - for (;;) - { - if (y == new_y) - { - r.min_x = old_x; - r.max_x = new_x; - r.min_y = r.max_y = y; - fillbitmap(bitmap, Machine->pens[color], &r); - break; - } - else - { - r.min_x = old_x; - r.max_x = Machine->screen[0].visarea.max_x; - r.min_y = r.max_y = y; - fillbitmap(bitmap, Machine->pens[color], &r); - old_x = 0; - } - if (++y == Machine->screen[0].height) - y = 0; - } - old_x = (new_x + 1) % Machine->screen[0].width; - old_y = new_y; - old_c = color; - DAC_data_w(0, color ? 255 : 0); - } -} - -/* - * PAL: 310 total lines, - * 0.. 55 vblank - * 56..247 192 visible lines - * 248..303 vblank - * 304... vsync - * NTSC: 262 total lines - * 0.. 31 vblank - * 32..223 192 visible lines - * 224..233 vblank - */ -static void zx_ula_nmi(int param) -{ - /* - * An NMI is issued on the ZX81 every 64us for the blanked - * scanlines at the top and bottom of the display. - */ - rectangle r = Machine->screen[0].visarea; - mame_bitmap *bitmap = tmpbitmap; - - r.min_y = r.max_y = cpu_getscanline(); - fillbitmap(bitmap, Machine->pens[1], &r); - logerror("ULA %3d[%d] NMI, R:$%02X, $%04x\n", cpu_getscanline(), ula_scancode_count, (unsigned) cpunum_get_reg(0, Z80_R), (unsigned) cpunum_get_reg(0, Z80_PC)); - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - if (++ula_scanline_count == Machine->screen[0].height) - ula_scanline_count = 0; -} - -static void zx_ula_irq(int param) -{ - /* - * An IRQ is issued on the ZX80/81 whenever the R registers - * bit 6 goes low. In MESS this IRQ timed from the first read - * from the copy of the DFILE in the upper 32K in zx_ula_r(). - */ - if (ula_irq_active) - { - logerror("ULA %3d[%d] IRQ, R:$%02X, $%04x\n", cpu_getscanline(), ula_scancode_count, (unsigned) cpunum_get_reg(0, Z80_R), (unsigned) cpunum_get_reg(0, Z80_PC)); - - ula_irq_active = 0; - if (++ula_scancode_count == 8) - ula_scancode_count = 0; - cpunum_set_input_line(0, 0, HOLD_LINE); - if (++ula_scanline_count == Machine->screen[0].height) - ula_scanline_count = 0; - } -} - -int zx_ula_r(int offs, int region) -{ - mame_bitmap *bitmap = tmpbitmap; - int x, y, chr, data, ireg, rreg, cycles, offs0 = offs, halted = 0; - UINT8 *chrgen, *rom = memory_region(REGION_CPU1); - UINT16 *scanline; - - if (!ula_irq_active) - { - ula_frame_vsync = 3; - - chrgen = memory_region(region); - ireg = cpunum_get_reg(0, Z80_I) << 8; - rreg = cpunum_get_reg(0, Z80_R); - y = cpu_getscanline(); - - cycles = 4 * (64 - (rreg & 63)); - timer_set(TIME_IN_CYCLES(cycles, 0), 0, zx_ula_irq); - ula_irq_active = 1; - scanline = BITMAP_ADDR16(bitmap, y, 0); - - for (x = 0; x < 256; x += 8) - { - chr = rom[offs & 0x7fff]; -/* if (!halted) - logerror("ULA %3d[%d] VID, R:$%02X, PC:$%04x, CHR:%02x\n", y, ula_scancode_count, rreg, offs & 0x7fff, chr);*/ - if (chr & 0x40) - { - halted = 1; - rom[offs] = chr; - data = 0x00; - } - else - { - data = chrgen[ireg | ((chr & 0x3f) << 3) | ula_scancode_count]; - rom[offs] = 0x00; - if (chr & 0x80) - data ^= 0xff; - offs++; - } - - scanline[x + 0] = (data >> 7) & 1; - scanline[x + 1] = (data >> 6) & 1; - scanline[x + 2] = (data >> 5) & 1; - scanline[x + 3] = (data >> 4) & 1; - scanline[x + 4] = (data >> 3) & 1; - scanline[x + 5] = (data >> 2) & 1; - scanline[x + 6] = (data >> 1) & 1; - scanline[x + 7] = (data >> 0) & 1; - } - } - - return rom[offs0]; -} - -VIDEO_START( zx ) -{ - ula_nmi = timer_alloc(zx_ula_nmi); - ula_irq_active = 0; - return video_start_generic_bitmapped(machine); -} - -VIDEO_EOF( zx ) -{ - /* decrement video synchronization counter */ - if (ula_frame_vsync) - --ula_frame_vsync; -} diff --git a/mess/windows/windows.mak b/mess/windows/windows.mak deleted file mode 100644 index ab486a667..000000000 --- a/mess/windows/windows.mak +++ /dev/null @@ -1,46 +0,0 @@ -########################################################################### -# -# windows.mak -# -# MESS Windows-specific makefile -# -########################################################################### - - -CFLAGS += -DWINUI -DEMULATORDLL=\"$(EMULATORDLL)\" -RCFLAGS += -DMESS - -LIBS += -lcomdlg32 - -OSOBJS += \ - $(OBJ)/mess/windows/configms.o \ - $(OBJ)/mess/windows/dialog.o \ - $(OBJ)/mess/windows/menu.o \ - $(OBJ)/mess/windows/mess.res \ - $(OBJ)/mess/windows/messlib.o \ - $(OBJ)/mess/windows/opcntrl.o \ - $(OBJ)/mess/windows/tapedlg.o - -OSDCOREOBJS += \ - $(OBJ)/mess/windows/winmess.o \ - $(OBJ)/mess/windows/winutils.o \ - $(OBJ)/mess/windows/parallel.o \ - $(OBJ)/mess/windows/glob.o - - - -#------------------------------------------------- -# generic rules for the resource compiler -#------------------------------------------------- - -$(OBJ)/mess/$(MAMEOS)/%.res: mess/$(MAMEOS)/%.rc - @echo Compiling resources $<... - $(RC) $(RCDEFS) $(RCFLAGS) --include-dir mess/$(MAMEOS) -o $@ -i $< - -$(OBJ)/ui/%.res: src/ui/%.rc - @echo Compiling resources $<... - $(RC) $(RCDEFS) $(RCFLAGS) --include-dir src/ui -o $@ -i $< - -$(OBJ)/mess/ui/%.res: mess/ui/%.rc - @echo Compiling resources $<... - $(RC) $(RCDEFS) $(RCFLAGS) --include-dir mess/ui --include-dir src/ui --include-dir src -o $@ -i $< diff --git a/nvram/dir.txt b/nvram/dir.txt deleted file mode 100644 index c15559409..000000000 --- a/nvram/dir.txt +++ /dev/null @@ -1 +0,0 @@ -nvram files will be stored here. \ No newline at end of file diff --git a/roms/dir.txt b/roms/dir.txt index d604363aa..6a07c9246 100644 --- a/roms/dir.txt +++ b/roms/dir.txt @@ -1,15 +1 @@ -All SYSTEM ROMs files (System BIOSes) go in this Directory if they are -zipped! ;-) - -eg. coleco.zip - a7800.zip - vectrex.zip - -etc..... - -If they are unzipped, place them in the systems subfolder: - -eg. roms\coleco - roms\a7800 - roms\vectrex - +Place ROM directories here diff --git a/snap/dir.txt b/snap/dir.txt deleted file mode 100644 index 4a268f6d4..000000000 --- a/snap/dir.txt +++ /dev/null @@ -1 +0,0 @@ -Screenshots will be stored here. \ No newline at end of file diff --git a/software/dir.txt b/software/dir.txt deleted file mode 100644 index 8cf9593ba..000000000 --- a/software/dir.txt +++ /dev/null @@ -1,69 +0,0 @@ -All SYSTEM SOFTWARE files go in this Directory. Heres a description - -- MESS supports a softwarepath= global setting (in the [directories] section - of mess.cfg) and this is overrideable per driver (in the [driver] sections) - Default for softwarepath= is .;SOFTWARE -- Support for samplepath= is disabled (code is still there in case we ever - need samples in MESS) -- OSD_FILETYPE_ROM uses the biospath= setting from now on (MAME rompath=) - Default for biospath= is .;BIOS -- OSD_FILETYPE_IMAGE_R and _RW use the softwarepath= settings from now on, - so BIOS ROMs can be kept separate from carts, floppy, harddisk etc. images. - -The search paths/files are for a hypothetic system driver 'sys': - -extensions of carts for sys = .rom, .bin -softwarepath = .;x:/software - -mess sys -cart cart - -./cart -./sys/cart -./cart.zip containing cart -./sys/cart.zip containing cart -x:/software/cart -x:/software/sys/cart -x:/software/cart.zip containing cart -x:/software/sys/cart.zip containing cart ----> assume it failed, because the real extension is .bin -./cart.rom -./sys/cart.rom -./cart.zip containing cart.rom -./sys/cart.zip containing cart.rom -x:/software/cart.rom -x:/software/sys/cart.rom -x:/software/cart.zip containing cart.rom -x:/software/sys/cart.zip containing cart.rom ----> still not found, so image_fopen() tries .bin now -./cart.bin -./sys/cart.bin -./cart.zip containing cart.bin -./sys/cart.zip containing cart.bin -x:/software/cart.bin -x:/software/sys/cart.bin -x:/software/cart.zip containing cart.bin -x:/software/sys/cart.zip containing cart.bin - -As you can see it might take quite some time until an image is found, -with two directories on the path already, that's why the main -softwarepath= setting should be short. If you have many, different -drives/paths where you store software, you better use the system -specific overrides like this: - -[sys] -biospath=x:/sys -softwarepath=x:/sys - -[sys2] -biospath=roms -sofwarepath=z:/somewhere/sys2 - -However, if you have a 'complete set' you would be done (mostly) if you only -change the [directories] setting for biospath= and softwarepath= to -the drive/path where your mirrored files are. - -One extension to the searches that might make sense would be to -also look into a path/ext/cart.ext directory, that means you -could have subirectories for eg. dsk, cas, vz, bin or whatever the -extensions of the system are. - diff --git a/src/config.c b/src/config.c deleted file mode 100644 index e00960407..000000000 --- a/src/config.c +++ /dev/null @@ -1,362 +0,0 @@ -/*************************************************************************** - - config.c - - Configuration file I/O. - - Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. - Visit http://mamedev.org for licensing and usage restrictions. - -***************************************************************************/ - -#include "driver.h" -#include "config.h" -#include "xmlfile.h" - - -#define DEBUG_CONFIG 0 - - - -/*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define CONFIG_VERSION 10 - - - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -typedef struct _config_type config_type; -struct _config_type -{ - struct _config_type * next; /* next in line */ - const char * name; /* node name */ - config_callback load; /* load callback */ - config_callback save; /* save callback */ -}; - - - -/*************************************************************************** - GLOBAL VARIABLES -***************************************************************************/ - -static config_type *typelist; - - - -/*************************************************************************** - FUNCTION PROTOTYPES -***************************************************************************/ - -static int config_load_xml(mame_file *file, int type); -static int config_save_xml(mame_file *file, int type); - - - -/*************************************************************************** - CORE IMPLEMENTATION -***************************************************************************/ - -/************************************* - * - * Reset the configuration callbacks - * - *************************************/ - -void config_init(running_machine *machine) -{ - typelist = NULL; - -#ifdef MESS - mess_config_init(machine); -#endif -} - - - -/************************************* - * - * Register to be involved in config - * save/load - * - *************************************/ - -void config_register(const char *nodename, config_callback load, config_callback save) -{ - config_type *newtype; - config_type **ptype; - - /* allocate a new type */ - newtype = auto_malloc(sizeof(*newtype)); - newtype->next = NULL; - newtype->name = nodename; - newtype->load = load; - newtype->save = save; - - /* add us to the end */ - for (ptype = &typelist; *ptype; ptype = &(*ptype)->next) ; - *ptype = newtype; -} - - - -/************************************* - * - * Settings save/load frontend - * - *************************************/ - -int config_load_settings(void) -{ - mame_file_error filerr; - config_type *type; - mame_file *file; - int loaded = 0; - char *fname; - - /* loop over all registrants and call their init function */ - for (type = typelist; type; type = type->next) - (*type->load)(CONFIG_TYPE_INIT, NULL); - - /* now load the controller file */ - if (options.controller != NULL) - { - /* open the config file */ - fname = assemble_2_strings(options.controller, ".cfg"); - filerr = mame_fopen(SEARCHPATH_CTRLR, fname, OPEN_FLAG_READ, &file); - free(fname); - - if (filerr != FILERR_NONE) - fatalerror("Could not load controller file %s.cfg", options.controller); - - /* load the XML */ - if (!config_load_xml(file, CONFIG_TYPE_CONTROLLER)) - fatalerror("Could not load controller file %s.cfg", options.controller); - mame_fclose(file); - } - - /* next load the defaults file */ - filerr = mame_fopen(SEARCHPATH_CONFIG, "default.cfg", OPEN_FLAG_READ, &file); - if (filerr == FILERR_NONE) - { - config_load_xml(file, CONFIG_TYPE_DEFAULT); - mame_fclose(file); - } - - /* finally, load the game-specific file */ - fname = assemble_2_strings(Machine->basename, ".cfg"); - filerr = mame_fopen(SEARCHPATH_CONFIG, fname, OPEN_FLAG_READ, &file); - free(fname); - - if (filerr == FILERR_NONE) - { - loaded = config_load_xml(file, CONFIG_TYPE_GAME); - mame_fclose(file); - } - - /* loop over all registrants and call their final function */ - for (type = typelist; type; type = type->next) - (*type->load)(CONFIG_TYPE_FINAL, NULL); - - /* if we didn't find a saved config, return 0 so the main core knows that it */ - /* is the first time the game is run and it should diplay the disclaimer. */ - return loaded; -} - - -void config_save_settings(void) -{ - mame_file_error filerr; - config_type *type; - mame_file *file; - char *fname; - - /* loop over all registrants and call their init function */ - for (type = typelist; type; type = type->next) - (*type->save)(CONFIG_TYPE_INIT, NULL); - - /* save the defaults file */ - filerr = mame_fopen(SEARCHPATH_CONFIG, "default.cfg", OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, &file); - if (filerr == FILERR_NONE) - { - config_save_xml(file, CONFIG_TYPE_DEFAULT); - mame_fclose(file); - } - - /* finally, save the game-specific file */ - fname = assemble_2_strings(Machine->basename, ".cfg"); - filerr = mame_fopen(SEARCHPATH_CONFIG, fname, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, &file); - free(fname); - - if (filerr == FILERR_NONE) - { - config_save_xml(file, CONFIG_TYPE_GAME); - mame_fclose(file); - } - - /* loop over all registrants and call their final function */ - for (type = typelist; type; type = type->next) - (*type->save)(CONFIG_TYPE_FINAL, NULL); -} - - - -/************************************* - * - * XML file load - * - *************************************/ - -static int config_load_xml(mame_file *file, int which_type) -{ - xml_data_node *root, *confignode, *systemnode; - config_type *type; - const char *srcfile; - int version, count; - - /* read the file */ - root = xml_file_read(file, NULL); - if (!root) - goto error; - - /* find the config node */ - confignode = xml_get_sibling(root->child, "mameconfig"); - if (!confignode) - goto error; - - /* validate the config data version */ - version = xml_get_attribute_int(confignode, "version", 0); - if (version != CONFIG_VERSION) - goto error; - - /* strip off all the path crap from the source filename */ - srcfile = strrchr(Machine->gamedrv->source_file, '/'); - if (!srcfile) - srcfile = strrchr(Machine->gamedrv->source_file, '\\'); - if (!srcfile) - srcfile = strrchr(Machine->gamedrv->source_file, ':'); - if (!srcfile) - srcfile = Machine->gamedrv->source_file; - else - srcfile++; - - /* loop over all system nodes in the file */ - count = 0; - for (systemnode = xml_get_sibling(confignode->child, "system"); systemnode; systemnode = xml_get_sibling(systemnode->next, "system")) - { - /* look up the name of the system here; skip if none */ - const char *name = xml_get_attribute_string(systemnode, "name", ""); - - /* based on the file type, determine whether we have a match */ - switch (which_type) - { - case CONFIG_TYPE_GAME: - /* only match on the specific game name */ - if (strcmp(name, Machine->gamedrv->name) != 0) - continue; - break; - - case CONFIG_TYPE_DEFAULT: - /* only match on default */ - if (strcmp(name, "default") != 0) - continue; - break; - - case CONFIG_TYPE_CONTROLLER: - { - const game_driver *clone_of; - /* match on: default, game name, source file name, parent name, grandparent name */ - if (strcmp(name, "default") != 0 && - strcmp(name, Machine->gamedrv->name) != 0 && - strcmp(name, srcfile) != 0 && - ((clone_of = driver_get_clone(Machine->gamedrv)) == NULL || strcmp(name, clone_of->name) != 0) && - (clone_of == NULL || ((clone_of = driver_get_clone(clone_of)) == NULL) || strcmp(name, clone_of->name) != 0)) - continue; - break; - } - } - - /* log that we are processing this entry */ - if (DEBUG_CONFIG) - mame_printf_debug("Entry: %s -- processing\n", name); - - /* loop over all registrants and call their load function */ - for (type = typelist; type; type = type->next) - (*type->load)(which_type, xml_get_sibling(systemnode->child, type->name)); - count++; - } - - /* error if this isn't a valid game match */ - if (count == 0) - goto error; - - /* free the parser */ - xml_file_free(root); - return 1; - -error: - if (root) - xml_file_free(root); - return 0; -} - - - -/************************************* - * - * XML file save - * - *************************************/ - -static int config_save_xml(mame_file *file, int which_type) -{ - xml_data_node *root = xml_file_create(); - xml_data_node *confignode, *systemnode; - config_type *type; - - /* if we don't have a root, bail */ - if (!root) - return 0; - - /* create a config node */ - confignode = xml_add_child(root, "mameconfig", NULL); - if (!confignode) - goto error; - xml_set_attribute_int(confignode, "version", CONFIG_VERSION); - - /* create a system node */ - systemnode = xml_add_child(confignode, "system", NULL); - if (!systemnode) - goto error; - xml_set_attribute(systemnode, "name", (which_type == CONFIG_TYPE_DEFAULT) ? "default" : Machine->gamedrv->name); - - /* create the input node and write it out */ - /* loop over all registrants and call their save function */ - for (type = typelist; type; type = type->next) - { - xml_data_node *curnode = xml_add_child(systemnode, type->name, NULL); - if (!curnode) - goto error; - (*type->save)(which_type, curnode); - - /* if nothing was added, just nuke the node */ - if (!curnode->value && !curnode->child) - xml_delete_node(curnode); - } - - /* flush the file */ - xml_file_write(root, file); - - /* free and get out of here */ - xml_file_free(root); - return 1; - -error: - xml_file_free(root); - return 0; -} diff --git a/src/core.mak b/src/core.mak deleted file mode 100644 index 5df85d913..000000000 --- a/src/core.mak +++ /dev/null @@ -1,142 +0,0 @@ -########################################################################### -# -# core.mak -# -# MAME core makefile -# -# Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team. -# Visit http://mamedev.org for licensing and usage restrictions. -# -########################################################################### - - -#------------------------------------------------- -# the core object files (without target specific -# objects; those are added in the target.mak -# files) -#------------------------------------------------- - -COREOBJS = \ - $(OBJ)/audit.o \ - $(OBJ)/cdrom.o \ - $(OBJ)/chd.o \ - $(OBJ)/cheat.o \ - $(OBJ)/config.o \ - $(OBJ)/cpuexec.o \ - $(OBJ)/cpuint.o \ - $(OBJ)/cpuintrf.o \ - $(OBJ)/drawgfx.o \ - $(OBJ)/driver.o \ - $(OBJ)/fileio.o \ - $(OBJ)/harddisk.o \ - $(OBJ)/hash.o \ - $(OBJ)/info.o \ - $(OBJ)/input.o \ - $(OBJ)/inptport.o \ - $(OBJ)/jedparse.o \ - $(OBJ)/mame.o \ - $(OBJ)/mamecore.o \ - $(OBJ)/md5.o \ - $(OBJ)/memory.o \ - $(OBJ)/options.o \ - $(OBJ)/output.o \ - $(OBJ)/palette.o \ - $(OBJ)/png.o \ - $(OBJ)/render.o \ - $(OBJ)/rendfont.o \ - $(OBJ)/rendlay.o \ - $(OBJ)/rendutil.o \ - $(OBJ)/restrack.o \ - $(OBJ)/romload.o \ - $(OBJ)/sha1.o \ - $(OBJ)/sound.o \ - $(OBJ)/sndintrf.o \ - $(OBJ)/state.o \ - $(OBJ)/streams.o \ - $(OBJ)/tilemap.o \ - $(OBJ)/timer.o \ - $(OBJ)/ui.o \ - $(OBJ)/uigfx.o \ - $(OBJ)/uimenu.o \ - $(OBJ)/uitext.o \ - $(OBJ)/unicode.o \ - $(OBJ)/unzip.o \ - $(OBJ)/validity.o \ - $(OBJ)/version.o \ - $(OBJ)/video.o \ - $(OBJ)/xmlfile.o \ - $(OBJ)/sound/filter.o \ - $(OBJ)/sound/flt_vol.o \ - $(OBJ)/sound/flt_rc.o \ - $(OBJ)/sound/wavwrite.o \ - $(OBJ)/machine/eeprom.o \ - $(OBJ)/machine/generic.o \ - $(OBJ)/sndhrdw/generic.o \ - $(OBJ)/vidhrdw/generic.o \ - $(OBJ)/vidhrdw/vector.o \ - -ifdef X86_MIPS3_DRC -COREOBJS += $(OBJ)/x86drc.o -else -ifdef X86_PPC_DRC -COREOBJS += $(OBJ)/x86drc.o -endif -endif - - - -#------------------------------------------------- -# additional dependencies -#------------------------------------------------- - -$(OBJ)/video.o: rendersw.c - - - -#------------------------------------------------- -# core layouts -#------------------------------------------------- - -$(OBJ)/rendlay.o: $(OBJ)/layout/dualhovu.lh \ - $(OBJ)/layout/dualhsxs.lh \ - $(OBJ)/layout/dualhuov.lh \ - $(OBJ)/layout/horizont.lh \ - $(OBJ)/layout/triphsxs.lh \ - $(OBJ)/layout/vertical.lh \ - $(OBJ)/layout/ho20ffff.lh \ - $(OBJ)/layout/ho2eff2e.lh \ - $(OBJ)/layout/ho4f893d.lh \ - $(OBJ)/layout/ho88ffff.lh \ - $(OBJ)/layout/hoa0a0ff.lh \ - $(OBJ)/layout/hoffe457.lh \ - $(OBJ)/layout/hoffff20.lh \ - $(OBJ)/layout/voffff20.lh \ - -$(OBJ)/video.o: $(OBJ)/layout/snap.lh - - - -#------------------------------------------------- -# additional core files needed for the debugger -#------------------------------------------------- - -ifdef DEBUG -COREOBJS += \ - $(OBJ)/profiler.o \ - $(OBJ)/debug/debugcmd.o \ - $(OBJ)/debug/debugcmt.o \ - $(OBJ)/debug/debugcon.o \ - $(OBJ)/debug/debugcpu.o \ - $(OBJ)/debug/debughlp.o \ - $(OBJ)/debug/debugvw.o \ - $(OBJ)/debug/express.o \ - $(OBJ)/debug/textbuf.o -endif - - - -#------------------------------------------------- -# set of tool targets -#------------------------------------------------- - -TOOLS += romcmp$(EXE) chdman$(EXE) jedutil$(EXE) file2str$(EXE) diff --git a/src/cpu/apexc/apexc.c b/src/cpu/apexc/apexc.c deleted file mode 100644 index c0fb16214..000000000 --- a/src/cpu/apexc/apexc.c +++ /dev/null @@ -1,922 +0,0 @@ -/* - cpu/apexc/apexc.c: APE(X)C CPU emulation - - By Raphael Nabet - - APE(X)C (All Purpose Electronic X-ray Computer) was a computer built by Andrew D. Booth - and others for the Birkbeck College, in London, which was used to compute cristal - structure using X-ray diffraction. - - It was one of the APEC series of computer, which were simple electronic computers - built in the early 1950s for various British Universities. Known members of this series - are: - * APE(X)C: Birkbeck College, London (before 1953 (1951?)) - * APE(N)C: Board of Mathematical Machines, Oslo - * APE(H)C: British Tabulating Machine Company - * APE(R)C: British Rayon Research Association - * UCC: University College, London (circa january 1956) - * MAC (Magnetic Automatic Calculator): "built by Wharf Engineering Laboratories" - (february 1955), which used some germanium diodes - * The HEC (built by the British Tabulating Machine Company), a commercial machine sold - in two models at least (HEC 2M and HEC 4) (before 1955) - - References: - * Andrew D. Booth & Kathleen H. V. Booth: Automatic Digital Calculators, 2nd edition - (Buttersworth Scientific Publications, 1956) (referred to as 'Booth&Booth') - * Kathleen H. V. Booth: Programming for an Automatic Digital Calculator - (Buttersworth Scientific Publications, 1958) (referred to as 'Booth') - * Digital Engineering Newsletter vol 7 nb 1 p 60 and vol 8 nb 1 p 60-61 provided some - dates -*/ - -/* - Generals specs: - * 32-bit data word size (10-bit addresses): uses fixed-point, 2's complement arithmetic - * CPU has one accumulator (A) and one register (R), plus a Control Register (this is - what we would call an "instruction register" nowadays). No Program Counter, each - instruction contains the address of the next instruction (!). - * memory is composed of 256 (maximal value only found on the UCC - APE(X)C only has - 32 tracks) circular magnetic tracks of 32 words: only 32 tracks can - be accessed at a time (the 16 first ones, plus 16 others chosen by the programmer), - and the rotation rate is 3750rpm (62.5 rotations per second). - * two I/O units: tape reader and tape puncher. A teletyper was designed to read - specially-encoded punched tapes and print decoded text. (See /systems/apexc.c) - * machine code has 15 instructions (!), including add, substract, shift, multiply (!), - test and branch, input and punch. A so-called vector mode allow to repeat the same - operation 32 times with 32 successive memory locations. Note the lack of bitwise - and/or/xor (!) . - * 1 kIPS, although memory access times make this figure fairly theorical (drum rotation - time: 16ms, which would allow about 60IPS when no optimization is made) - * there is no indirect addressing whatever, although dynamic modification of opcodes (!) - allows to simulate it... - * a control panel allows operation and debugging of the machine. (See /systems/apexc.c) - - Conventions: - Bits are numbered in big-endian order, starting with 1: bit #1 is the - MSBit, and bit #32 is the LSBit. - - References: - * Andrew D. Booth & Kathleen H. V. Booth: Automatic Digital Calculators, 2nd edition - (Buttersworth Scientific Publications, 1956) - * Kathleen H. V. Booth: Programming for an Automatic Digital Calculator - (Buttersworth Scientific Publications, 1958) -*/ - -/* - Machine code (reference: Booth): - - Format of a machine instruction: -bits: 1-5 6-10 11-15 16-20 21-25 26-31 32 -field: X address X address Y address Y address Function C6 Vector - (track) (location) (track) (location) - - Meaning of fields: - X: address of an operand, or immediate, or meaningless, depending on Function - (When X is meaningless, it should be a duplicate of Y. Maybe this is because - X is unintentionnally loaded into the memory address register, and if track # is - different, we add unneeded track switch delays (this theory is either wrong or - incomplete, since it cannot be true for B or X)) - Y: address of the next instruction - Function: code for the actual instruction executed - C6: immediate value used by shift, multiply and store operations - Vector: repeat operation 32 times (on all 32 consecutive locations of a track, - starting with the location given by the X field) - - Function code: - # Mnemonic C6 Description - - 0 Stop - - 2 I(y) Input. A 5-bit word is read from tape and loaded - into the 5 MSBits of R. (These bits of R must be - cleared initially.) - - 4 P(y) Punch. The 5 MSBits of R are punched onto the - output tape. - - 6 B<(x)>=(y) Branch. If A<0, next instruction is fetched from @x, whereas - if A>=0, next instruction is fetched from @y - - 8 l (y) n Shift left: the 64 bits of A and R are rotated left n times. - n - - 10 r (y) 64-n Shift right: the 64 bits of A and R are shifted right n times. - n The sign bit of A is duplicated. - - 14 X (x)(y) 33-n Multiply the contents of *track* x by the last n digits of the - n number in R, sending the 32 MSBs to A and 31 LSBs to R - - 16 +c(x)(y) A <- (x) - - 18 -c(x)(y) A <- -(x) - - 20 +(x)(y) A <- A+(x) - - 22 -(x)(y) A <- A-(x) - - 24 T(x)(y) R <- (x) - - 26 R (x)(y) 32+n Store first or last bits of R into (x). The remaining bits of (x) - 1-n are unaffected. "The contents of R are filled with 0s or 1s - according as the original contents were positive or negative". - R (x)(y) n-1 - n-32 - - 28 A (x)(y) 32+n Same as 26, except that source is A, and the contents of A are - 1-n not modified. - - A (x)(y) n-1 - n-32 - - 30 S(x)(y) Block Head switch. This enables the block of heads specified - in x to be loaded into the working store. - - Note: Mnemonics use subscripts (!), which I tried to render the best I could. Also, - ">=" is actually one single character. Last, "1-n" and "n-32" in store mnemonics - are the actual sequences "1 *DASH* " and " *DASH* 32" - (these are NOT formulas with substract signs). - - Note2: Short-hand notations: X stands for X , A for A , and R for R . - 32 1-32 1-32 - - Note3: Vectors instruction are notated with a subscript 'v' following the basic - mnemonic. For instance: - - A (x)(y), + (x)(y) - v v - - are the vector counterparts of A(x)(y) and +(x)(y). - - - - - Note that the code has been presented so far as it was in 1957. It appears that - it was somewhat different in 1953 (Booth&Booth): - - Format of a machine instruction: - Format for r, l, A: -bits: 1-9 10-15 16-17 18-21 22-30 31-32 -field: X address C6 spare Function Y address spare - Format for other instructions: -bits: 1-9 10-17 18-21 22-30 31-32 -field: X address D Function Y address D (part 2) - - Meaning of fields: - D (i.e. drum #): MSBs for the address of the X operand. I don't know whether this feature - was actually implemented, since it is said in Booth&Booth that the APE(X)C does - not use this feature (it had only one drum of 16 tracks at the time, hence the 9 - address bits). - - Function code: - # Mnemonic C6 Description - - 1 A (x)(y) 32+n(?) record first bits of A in (x). The remaining bits of x - 1-n are unaffected. - - 2 +c(x)(y) A <- (x) - - 3 -c(x)(y) A <- -(x) - - 4 +(x)(y) A <- A+(x) - - 5 -(x)(y) A <- A-(x) - - 6 T(x)(y) R <- (x) - - 7 X (x)(y) Multiply the contents of (x) by the number in R, - sending the 32 MSBs to A and 31 LSBs to R - - 8 r (y) 64-n(?) Shift right: the 64 bits of A and R are shifted right n times. - n The sign bit of A is duplicated. - - 9 l (y) n(?) Shift left: the 64 bits of A and R are rotated left n times. - n - - 10 R (x)(y) 32+n record R into (x). - 1-n "the contents of R are filled with 0s or 1s - according as the original contents were positive or negative". - - 11 B<(x)>=(y) Branch. If A<0, next instruction is read from @x, whereas - if A>=0, next instruction is read from @y - - 12 Print(y) Punch. Contents of A are printed. - - 13 C(d+x) branch ("switch Control") to instruction located in position - (D:X) - - 14 Stop - - You will notice the absence of input instruction. It seems that program and data were - meant to be entered with a teletyper or a card reader located on the control panel. - - I don't know whether this computer really was in operation with this code. Handle - these info with caution. -*/ - -/* - memory interface: - - Data is exchanged on a 1-bit (!) data bus, 10-bit address bus. - - While the bus is 1-bit wide, read/write operation can only be take place on word - (i.e. 32 bit) boundaries. However, it is possible to store only the n first bits or - n last bits of a word, leaving other bits in memory unaffected. - - The LSBits are transferred first, since this enables to perform bit-per-bit add and - substract. Otherwise, the CPU would need an additionnal register to store the second - operand, and it would be probably slower, since the operation could only - take place after all the data has been transfered. - - Memory operations are synchronous with 2 clocks found on the memory controller: - * word clock: a pulse on each word boundary (3750rpm*32 -> 2kHz) - * bit clock: a pulse when a bit is present on the bus (word clock * 32 -> 64kHz) - - CPU operation is synchronous with these clocks, too. For instance, the AU does bit-per-bit - addition and substraction with a memory operand, synchronously with bit clock, - starting and stopping on word clock boundaries. Similar thing with a Fetch operation. - - There is a 10-bit memory location (i.e. address) register on the memory controller. - It is loaded with the contents of X after when instruction fetch is complete, and - with the contents of Y when instruction execution is complete, so that the next fetch - can be executed correctly. -*/ - -/* - Instruction timings: - - - References: Booth p. 14 for the table below - - - Mnemonic delay in word clock cycles - - I 32 - - P 32 - - B 0 - - l 1 if n>=32 (i.e. C6>=32) (see 4.) - n 2 if n<32 (i.e. C6<32) - - r 1 if n<=32 (i.e. C6>=32) (see 4.) - n 2 if n>32 (i.e. C6<32) - - X 32 - - +c, -c, +, -, T 0 - - R , R , A , A 1 (see 1. & 4.) - 1-n n-32 1-n n-32 - - track switch 6 (see 2.) - - vector 12 (see 3.) - - - (S and stop are missing in the table) - - - Note that you must add the fetch delay (at least 1 cycle), and, when applicable, the - operand read/write delay (at least 1 cycle). - - - Notes: - - 1. The delay is applied after the store is done (from the analysis of the example - in Booth p.52) - - 2. I guess that the memory controller needs 6 cycles to stabilize whenever track - switching occurs, i.e. when X does not refer to the current track, and then when Y - does not refer to the same track as X. This matches various examples in Booth, - although it appears that this delay is not applied when X is not read (cf cross-track - B in Booth p. 49). - However, and here comes the wacky part, analysis of Booth p. 55 shows that - no additionnal delay is caused by an X instruction having its X operand - on another track. Maybe, just maybe, this is related to the fact that X does not - need to take the word count into account, any word in track is as good as any (yet, - this leaves the question of why this optimization could not be applied to vector - operations unanswered). - - 3. This is an ambiguous statement. Analysis of Booth p. 55 shows that - an instance of an Av instruction with its destination on another track takes no more - than 45 cycles, as follow: - * 1 cycle for fetch - * 6-cycle delay (at most) before write starts (-> track switch) - * 32 memory cycles - * 6-cycle delay (at most) after write completion (-> track switch) - It appears that the delay associated with the vector mode is not distinguishable from - the delay caused by track switch and even the delay associated to the Av instruction. - Is there really a specific delay associated with the vector mode? To know this, we - would need to see a vector instruction on the same track as its operands, which is - unlikely to be seen (the only reasonnable application I can see is running a '+_v' - to compute the checksum of the current track). - - 4. Example in Booth p. 76 ("20/4 A (27/27) (21/2)") seems to imply that - when doing a store with a destination on a track other than the track where next - instruction is located, the 1-cycle post-store delay is merged with the 6-cycle track - switch delay. (I assume this because there is lots of room on track 21, and if - the delays were not merged, it should be easy to move the instruction forward - to speed up loop execution time. - Similarly, example in Booth p. 49-50 ("4/24 l 32 (5/31)") seems to show that - a similar delay merge occurs when doing a shift with the next instruction located on - another track. -*/ - -#include "driver.h" -#include "apexc.h" -#include "debugger.h" - -typedef struct -{ - UINT32 a; /* accumulator */ - UINT32 r; /* register */ - UINT32 cr; /* control register (i.e. instruction register) */ - int ml; /* memory location (current track in working store, and requested - word position within track) (10 bits) */ - int working_store; /* current working store (group of 16 tracks) (1-15) */ - int current_word; /* current word position within track (0-31) */ - - int running; /* 1 flag: */ - /* running: flag implied by the existence of the stop instruction */ -} apexc_regs; - -static apexc_regs apexc; - -int apexc_ICount; - -/* decrement ICount by n */ -#define DELAY(n) {apexc_ICount -= (n); apexc.current_word = (apexc.current_word + (n)) & 0x1f;} - - -/* - word accessor functions - - take a 10-bit word address - 5 bits (MSBs): track address within working store - 5 bits (LSBs): word position within track - - 'special' flag: if true, read first word found in track (used by X instruction only) - - 'mask': one bit is set for each bit to write (used by store instructions) - - memory latency delays are taken into account, but not track switching delays -*/ - -/* compute complete word address (i.e. translate a logical track address (expressed -in current working store) to an absolute track address) */ -static int effective_address(int address) -{ - if (address & 0x200) - { - address = (address & 0x1FF) | (apexc.working_store) << 9; - } - - return address; -} - -/* read word */ -static UINT32 word_read(int address, int special) -{ - UINT32 result; - - /* compute absolute track address */ - address = effective_address(address); - - if (special) - { - /* ignore word position in x - use current position instead */ - address = (address & ~ 0x1f) | apexc.current_word; - } - else - { - /* wait for requested word to appear under the heads */ - DELAY(((address /*& 0x1f*/) - apexc.current_word) & 0x1f); - } - - /* read 32 bits */ -#if 0 - /* note that the APEXC reads LSBits first */ - result = 0; - for (i=0; i<31; i++) - { - /*if (mask & (1 << i))*/ - result |= bit_read((address << 5) | i) << i; - } -#else - result = apexc_readmem(address); -#endif - - /* read takes one memory cycle */ - DELAY(1); - - return result; -} - -/* write word (or part of a word, according to mask) */ -static void word_write(int address, UINT32 data, UINT32 mask) -{ - /* compute absolute track address */ - address = effective_address(address); - - /* wait for requested word to appear under the heads */ - DELAY(((address /*& 0x1f*/) - apexc.current_word) & 0x1f); - - /* write 32 bits according to mask */ -#if 0 - /* note that the APEXC reads LSBits first */ - for (i=0; i<31; i++) - { - if (mask & (1 << i)) - bit_write((address << 5) | i, (data >> i) & 1); - } -#else - apexc_writemem_masked(address, data, mask); -#endif - - /* write takes one memory cycle (2, actually, but the 2nd cycle is taken into - account in execute) */ - DELAY(1); -} - -/* - I/O accessors - - no address is used, these functions just punch or read 5 bits -*/ - -static int papertape_read(void) -{ - return io_read_byte_8(0) & 0x1f; -} - -static void papertape_punch(int data) -{ - io_write_byte_8(0, data); -} - -/* - now for emulation code -*/ - -/* - set the memory location (i.e. address) register, and compute the associated delay -*/ -INLINE int load_ml(int address, int vector) -{ - int delay; - - /* additionnal delay appears if we switch tracks */ - if (((apexc.ml & 0x3E0) != (address & 0x3E0)) /*|| vector*/) - delay = 6; /* if tracks are different, delay to allow for track switching */ - else - delay = 0; /* else, no problem */ - - apexc.ml = address; /* save ml */ - - return delay; -} - -/* - execute one instruction - - TODO: - * test!!! - - NOTE: - * I do not know whether we should fetch instructions at the beginning or the end of the - instruction cycle. Either solution is roughly equivalent to the other, but changes - the control panel operation (and I know virtually nothing on the control panel). - Currently, I fetch each instruction right after executing the previous instruction, so that - the user may enter an instruction into the control register with the control panel, then - execute it. - This solution makes timing simulation much simpler, too. -*/ -static void execute(void) -{ - int x, y, function, c6, vector; /* instruction fields */ - int i = 0; /* misc counter */ - int has_operand; /* true if instruction is an AU operation with an X operand */ - static const char has_operand_table[32] = /* table for has_operand - one entry for each function code */ - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0 - }; - int delay1; /* pre-operand-access delay */ - int delay2; /* post-operation delay */ - int delay3; /* pre-operand-fetch delay */ - - /* first isolate the instruction fields */ - x = (apexc.cr >> 22) & 0x3FF; - y = (apexc.cr >> 12) & 0x3FF; - function = (apexc.cr >> 7) & 0x1F; - c6 = (apexc.cr >> 1) & 0x3F; - vector = apexc.cr & 1; - - function &= 0x1E; /* this is a mere guess - the LSBit is reserved for future additions */ - - /* determinates if we need to read an operand*/ - has_operand = has_operand_table[function]; - - if (has_operand) - { - /* load ml with X */ - delay1 = load_ml(x, vector); - /* burn pre-operand-access delay if needed */ - if (delay1) - { - DELAY(delay1); - } - } - - delay2 = 0; /* default */ - - do - { - switch (function) - { - case 0: - /* stop */ - - apexc.running = FALSE; - - /* BTW, I don't know whether stop loads y into ml or not, and whether - subsequent fetch is done */ - break; - - case 2: - /* I */ - /* I do not know whether the CPU does an OR or whatever, but since docs say that - the 5 bits must be cleared initially, an OR kind of makes sense */ - apexc.r |= papertape_read() << 27; - delay2 = 32; /* no idea whether this should be counted as an absolute delay - or as a value in delay2 */ - break; - - case 4: - /* P */ - papertape_punch((apexc.r >> 27) & 0x1f); - delay2 = 32; /* no idea whether this should be counted as an absolute delay - or as a value in delay2 */ - break; - - case 6: - /* B<(x)>=(y) */ - /* I have no idea what we should do if the vector bit is set */ - if (apexc.a & 0x80000000UL) - { - /* load ml with X */ - delay1 = load_ml(x, vector); - /* burn pre-fetch delay if needed */ - if (delay1) - { - DELAY(delay1); - } - /* and do fetch at X */ - goto special_fetch; - } - /* else, the instruction ends with a normal fetch */ - break; - - case 8: - /* l_n */ - delay2 = (c6 & 0x20) ? 1 : 2; /* if more than 32 shifts, it takes more time */ - - /* Yes, this code is inefficient, but this must be the way the APEXC does it ;-) */ - while (c6 != 0) - { - int shifted_bit = 0; - - /* shift and increment c6 */ - shifted_bit = apexc.r & 1; - apexc.r >>= 1; - if (apexc.a & 1) - apexc.r |= 0x80000000UL; - apexc.a >>= 1; - if (shifted_bit) - apexc.a |= 0x80000000UL; - - c6 = (c6+1) & 0x3f; - } - - break; - - case 10: - /* r_n */ - delay2 = (c6 & 0x20) ? 1 : 2; /* if more than 32 shifts, it takes more time */ - - /* Yes, this code is inefficient, but this must be the way the APEXC does it ;-) */ - while (c6 != 0) - { - /* shift and increment c6 */ - apexc.r >>= 1; - if (apexc.a & 1) - apexc.r |= 0x80000000UL; - apexc.a = ((INT32) apexc.a) >> 1; - - c6 = (c6+1) & 0x3f; - } - - break; - - case 12: - /* unused function code. I assume this results into a NOP, for lack of any - specific info... */ - - break; - - case 14: - /* X_n(x) */ - - /* Yes, this code is inefficient, but this must be the way the APEXC does it ;-) */ - /* algorithm found in Booth&Booth, p. 45-48 */ - { - int shifted_bit; - - apexc.a = 0; - shifted_bit = 0; - while (1) - { - /* note we read word at current word position */ - if (shifted_bit && ! (apexc.r & 1)) - apexc.a += word_read(x, 1); - else if ((! shifted_bit) && (apexc.r & 1)) - apexc.a -= word_read(x, 1); - else - /* Even if we do not read anything, the loop still takes 1 cycle of - the memory word clock. */ - /* Anyway, maybe we still read the data even if we do not use it. */ - DELAY(1); - - /* exit if c6 reached 32 ("c6 & 0x20" is simpler to implement and - essentially equivalent, so this is most likely the actual implementation) */ - if (c6 & 0x20) - break; - - /* else increment c6 and shift */ - c6 = (c6+1) & 0x3f; - - /* shift */ - shifted_bit = apexc.r & 1; - apexc.r >>= 1; - if (apexc.a & 1) - apexc.r |= 0x80000000UL; - apexc.a = ((INT32) apexc.a) >> 1; - } - } - - //DELAY(32); /* mmmh... we have already counted 32 wait states */ - /* actually, if (n < 32) (which is an untypical case), we do not have 32 wait - states. Question is: do we really have 32 wait states if (n < 32), or is - the timing table incomplete? */ - break; - - case 16: - /* +c(x) */ - apexc.a = + word_read(apexc.ml, 0); - break; - - case 18: - /* -c(x) */ - apexc.a = - word_read(apexc.ml, 0); - break; - - case 20: - /* +(x) */ - apexc.a += word_read(apexc.ml, 0); - break; - - case 22: - /* -(x) */ - apexc.a -= word_read(apexc.ml, 0); - break; - - case 24: - /* T(x) */ - apexc.r = word_read(apexc.ml, 0); - break; - - case 26: - /* R_(1-n)(x) & R_(n-32)(x) */ - - { - UINT32 mask; - - if (c6 & 0x20) - mask = 0xFFFFFFFFUL << (64 - c6); - else - mask = 0xFFFFFFFFUL >> c6; - - word_write(apexc.ml, apexc.r, mask); - } - - apexc.r = (apexc.r & 0x80000000UL) ? 0xFFFFFFFFUL : 0; - - delay2 = 1; - break; - - case 28: - /* A_(1-n)(x) & A_(n-32)(x) */ - - { - UINT32 mask; - - if (c6 & 0x20) - mask = 0xFFFFFFFFUL << (64 - c6); - else - mask = 0xFFFFFFFFUL >> c6; - - word_write(apexc.ml, apexc.a, mask); - } - - delay2 = 1; - break; - - case 30: - /* S(x) */ - apexc.working_store = (x >> 5) & 0xf; /* or is it (x >> 6)? */ - DELAY(32); /* no idea what the value is... All I know is that it takes much - more time than track switching (which takes 6 cycles) */ - break; - } - if (vector) - /* increment word position in vector operations */ - apexc.ml = (apexc.ml & 0x3E0) | ((apexc.ml + 1) & 0x1F); - } while (vector && has_operand && (++i < 32)); /* iterate 32 times if vector bit is set */ - /* the has_operand is a mere guess */ - - /* load ml with Y */ - delay3 = load_ml(y, 0); - - /* compute max(delay2, delay3) */ - if (delay2 > delay3) - delay3 = delay2; - - /* burn pre-fetch delay if needed */ - if (delay3) - { - DELAY(delay3); - } - - /* entry point after a successful Branch (which alters the normal instruction sequence, - in order not to load ml with Y) */ -special_fetch: - - /* fetch current instruction into control register */ - apexc.cr = word_read(apexc.ml, 0); -} - - -static void apexc_init(int index, int clock, const void *config, int (*irqcallback)(int)) -{ -} - -static void apexc_reset(void) -{ - /* mmmh... I don't know what happens on reset with an actual APEXC. */ - - apexc.working_store = 1; /* mere guess */ - apexc.current_word = 0; /* well, we do have to start somewhere... */ - - /* next two lines are just the product of my bold fantasy */ - apexc.cr = 0; /* first instruction executed will be a stop */ - apexc.running = TRUE; /* this causes the CPU to load the instruction at 0/0, - which enables easy booting (just press run on the panel) */ -} - -static void apexc_get_context(void *dst) -{ - if (dst) - * ((apexc_regs*) dst) = apexc; -} - -static void apexc_set_context(void *src) -{ - if (src) - apexc = * ((apexc_regs*)src); -} - -static int apexc_execute(int cycles) -{ - apexc_ICount = cycles; - - do - { - CALL_MAME_DEBUG; - - if (apexc.running) - execute(); - else - { - DELAY(apexc_ICount); /* burn cycles once for all */ - } - } while (apexc_ICount > 0); - - return cycles - apexc_ICount; -} - -static void apexc_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - /*case CPUINFO_INT_INPUT_STATE + ...:*/ /* no interrupts */ - - case CPUINFO_INT_PC: - /* keep address 9 LSBits - 10th bit depends on whether we are accessing the permanent - track group or a switchable one */ - apexc.ml = info->i & 0x1ff; - if (info->i & 0x1e00) - { /* we are accessing a switchable track group */ - apexc.ml |= 0x200; /* set 10th bit */ - - if (((info->i >> 9) & 0xf) != apexc.working_store) - { /* we need to do a store switch */ - apexc.working_store = ((info->i >> 9) & 0xf); - } - } - break; - - case CPUINFO_INT_SP: (void) info->i; /* no SP */ break; - - case CPUINFO_INT_REGISTER + APEXC_CR: apexc.cr = info->i; break; - case CPUINFO_INT_REGISTER + APEXC_A: apexc.a = info->i; break; - case CPUINFO_INT_REGISTER + APEXC_R: apexc.r = info->i; break; - case CPUINFO_INT_REGISTER + APEXC_ML: apexc.ml = info->i & 0x3ff; break; - case CPUINFO_INT_REGISTER + APEXC_WS: apexc.working_store = info->i & 0xf; break; - case CPUINFO_INT_REGISTER + APEXC_STATE: apexc.running = info->i ? TRUE : FALSE; break; - } -} - -void apexc_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(apexc); break; - case CPUINFO_INT_INPUT_LINES: info->i = 0; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 2; /* IIRC */ break; - case CPUINFO_INT_MAX_CYCLES: info->i = 75; /* IIRC */ break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 15; /*13+2 ignored bits to make double word address*/ break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = /*5*/8; /* no I/O bus, but we use address 0 for punchtape I/O */ break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = /*0*/1; /*0 is quite enough but the MAME core does not understand*/ break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_SP: info->i = 0; /* no SP */ break; - case CPUINFO_INT_PC: - /* no PC - return memory location register instead, this should be - equivalent unless executed in the midst of an instruction */ - info->i = effective_address(apexc.ml); - break; - case CPUINFO_INT_PREVIOUSPC: info->i = 0; /* no PC */ break; - - /*case CPUINFO_INT_INPUT_STATE + ...:*/ /* no interrupts */ - - case CPUINFO_INT_REGISTER + APEXC_CR: info->i = apexc.cr; break; - case CPUINFO_INT_REGISTER + APEXC_A: info->i = apexc.a; break; - case CPUINFO_INT_REGISTER + APEXC_R: info->i = apexc.r; break; - case CPUINFO_INT_REGISTER + APEXC_ML: info->i = apexc.ml; break; - case CPUINFO_INT_REGISTER + APEXC_WS: info->i = apexc.working_store; break; - case CPUINFO_INT_REGISTER + APEXC_STATE: info->i = apexc.running; break; - case CPUINFO_INT_REGISTER + APEXC_ML_FULL: info->i = effective_address(apexc.ml); break; - - case CPUINFO_PTR_SET_INFO: info->setinfo = apexc_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = apexc_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = apexc_set_context; break; - case CPUINFO_PTR_INIT: info->init = apexc_init; break; - case CPUINFO_PTR_RESET: info->reset = apexc_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = apexc_execute; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; - -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = apexc_dasm; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &apexc_ICount; break; - - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "APEXC"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "APEC"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; - - case CPUINFO_STR_FLAGS: sprintf(info->s = cpuintrf_temp_str(), "%c", (apexc.running) ? 'R' : 'S'); break; - - case CPUINFO_STR_REGISTER + APEXC_CR: sprintf(info->s = cpuintrf_temp_str(), "CR:%08X", apexc.cr); break; - case CPUINFO_STR_REGISTER + APEXC_A: sprintf(info->s = cpuintrf_temp_str(), "A :%08X", apexc.a); break; - case CPUINFO_STR_REGISTER + APEXC_R: sprintf(info->s = cpuintrf_temp_str(), "R :%08X", apexc.r); break; - case CPUINFO_STR_REGISTER + APEXC_ML: sprintf(info->s = cpuintrf_temp_str(), "ML:%03X", apexc.ml); break; - case CPUINFO_STR_REGISTER + APEXC_WS: sprintf(info->s = cpuintrf_temp_str(), "WS:%01X", apexc.working_store); break; - - case CPUINFO_STR_REGISTER + APEXC_STATE: sprintf(info->s = cpuintrf_temp_str(), "CPU state:%01X", apexc.running ? TRUE : FALSE); break; - } -} diff --git a/src/cpu/cdp1802/1802tbl.c b/src/cpu/cdp1802/1802tbl.c deleted file mode 100644 index 9fbb7dd2f..000000000 --- a/src/cpu/cdp1802/1802tbl.c +++ /dev/null @@ -1,452 +0,0 @@ -#define M program_read_byte -#define MW program_write_byte - -#define D cdp1802.d -#define DF cdp1802.df -#define P cdp1802.p -#define X cdp1802.x -#define Q cdp1802.q -#define I cdp1802.i -#define N cdp1802.n -#define T cdp1802.t -#define IE cdp1802.ie - -#define R(index) cdp1802.reg[index].w.l -#define R0(index) cdp1802.reg[index].b.l -#define R1(index) cdp1802.reg[index].b.h - -#define PC R(P) - - -//#define LOG_ICODE -#ifdef LOG_ICODE -static void cdp1802_log_icode(void) -{ - // logs the i-code - UINT16 adr = R(5); - UINT8 u = M(adr), u2 = M(adr + 1); - UINT16 i = (u << 8) | u2; - - switch (u&0xf0) { - case 0: - logerror("chip 8 icode %.4x: %.4x call 1802 %.3x\n",adr, i, i&0xfff); - break; - case 0x10: - logerror("chip 8 icode %.4x: %.4x jmp %.3x\n",adr, i, i&0xfff); - break; - case 0x20: - logerror("chip 8 icode %.4x: %.4x call %.3x\n",adr, i, i&0xfff); - break; - case 0x30: - logerror("chip 8 icode %.4x: %.4x jump if r%x !=0 %.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - case 0x40: - logerror("chip 8 icode %.4x: %.4x jump if r%x ==0 %.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - case 0x50: - logerror("chip 8 icode %.4x: %.4x skip if r%x!=%.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - case 0x60: - logerror("chip 8 icode %.4x: %.4x load r%x,%.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - case 0x70: - if (u!=0x70) - logerror("chip 8 icode %.4x: %.4x add r%x,%.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - else - logerror("chip 8 icode %.4x: %.4x dec r0, jump if not zero %.2x\n",adr, i, - i&0xff); - break; - case 0x80: - switch (u2&0xf) { - case 0: - logerror("chip 8 icode %.4x: %.4x r%x:=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 1: - logerror("chip 8 icode %.4x: %.4x r%x|=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 2: - logerror("chip 8 icode %.4x: %.4x r%x&=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 3: - logerror("chip 8 icode %.4x: %.4x r%x^=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 4: - logerror("chip 8 icode %.4x: %.4x r%x+=r%x, rb carry\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 5: - logerror("chip 8 icode %.4x: %.4x r%x=r%x-r%x, rb carry\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4,(i&0xf00)>>8); - break; - case 6: - logerror("chip 8 icode %.4x: %.4x r%x>>=1, rb LSB\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 7: - logerror("chip 8 icode %.4x: %.4x r%x-=r%x, rb carry\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 0xe: - logerror("chip 8 icode %.4x: %.4x r%x<<=1, rb MSB\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - default: - logerror("chip 8 i-code %.4x %.2x %.2x\n",R(5), - M(R(5)), - M(R(5)+1)); - } - break; - case 0x90: - switch (u2&0xf) { - case 0: - logerror("chip 8 icode %.4x: %.4x skip if r%x!=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 1:case 3: case 5: case 7: case 9: case 0xb: case 0xd: case 0xf: - logerror("chip 8 icode %.4x: %.4x r%x:=r%x\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 2:case 6: case 0xa: case 0xe: - logerror("chip 8 icode %.4x: %.4x r%x:=Memory[r%x]\n",adr, i, - (i&0xf00)>>8,(i&0xf0)>>4); - break; - case 4:case 0xc: - logerror("chip 8 icode %.4x: %.4x Memory[r%x]\n:=r%x",adr, i, - (i&0xf0)>>4,(i&0xf00)>>8); - break; - case 8: - logerror("chip 8 icode %.4x: %.4x Memory[r%x]\n:=BCD(r%x), r%x+=3",adr, i, - (i&0xf0)>>4,(i&0xf00)>>8,(i&0xf0)>>4); - break; - default: - logerror("chip 8 i-code %.4x %.2x %.2x\n",R(5), - M(R(5)), - M(R(5)+1)); - } - break; - case 0xa0: - logerror("chip 8 icode %.4x: %.4x index register:=%.3x\n",adr, i, - i&0xfff); - break; - case 0xb0: - logerror("chip 8 icode %.4x: %.4x store %.2x at index register, add %x to index register\n",adr, i, - i&0xff,(i&0xf00)>>8); - break; - case 0xc0: - if (u==0xc0) - logerror("chip 8 icode %.4x: %.4x return from subroutine\n",adr, i); - else - logerror("chip 8 icode %.4x: %.4x r%x:=random&%.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - case 0xd0: - logerror("chip 8 icode %.4x: %.4x if key %x goto %.2x\n",adr, i, - (i&0xf00)>>8,i&0xff); - break; - default: - logerror("chip 8 i-code %.4x %.2x %.2x\n",R(5), - M(R(5)), - M(R(5)+1)); - } -} -#endif - -INLINE void cdp1802_add(UINT8 data) -{ - int i; - - i = D + data; - D = i & 0xff; - DF = i & 0x100; -} - -INLINE void cdp1802_add_carry(UINT8 data) -{ - int i; - - if (DF) - i = D + data + 1; - else - i = D + data; - - D = i & 0xff; - DF = i & 0x100; -} - -INLINE void cdp1802_sub(UINT8 left, UINT8 right) -{ - int i; - - i = left - right; - - D = i & 0xff; - DF = (i >= 0); -} - -INLINE void cdp1802_sub_carry(UINT8 left, UINT8 right) -{ - int i; - - if (DF) - i = left - right; - else - i = left - right - 1; - - D = i & 0xff; - DF = (i >= 0); -} - -INLINE UINT16 cdp1802_read_operand_word(void) -{ - UINT16 a = cpu_readop(PC++) << 8; - a |= cpu_readop(PC++); - return a; -} - -INLINE void cdp1802_long_branch(int flag) -{ - UINT16 new = cdp1802_read_operand_word(); - if (flag) PC = new; -} - -INLINE void cdp1802_long_skip(int flag) -{ - if (flag) PC += 2; -} - -INLINE void cdp1802_short_branch(int flag) -{ - UINT8 new = cpu_readop(PC++); - if (flag) R0(P) = new; -} - -INLINE void cdp1802_short_branch_ef(int flag, int mask) -{ - int b = 0; - UINT8 new = cpu_readop(PC++); - - if (cdp1802.config && cdp1802.config->in_ef) - b = cdp1802.config->in_ef() & mask ? 1 : 0; - - if (flag == b) R0(P) = new; -} - -INLINE void cdp1802_q(int level) -{ - Q = level; - - if (cdp1802.config && cdp1802.config->out_q) - cdp1802.config->out_q(level); -} - -INLINE void cdp1802_read_px(void) -{ - UINT8 i = M(R(X)++); - - P = i & 0xf; - X = i >> 4; - change_pc(PC); -} - -INLINE void cdp1802_out_n(int n) -{ - UINT8 i = M(R(X)++); - - io_write_byte(n, i); -} - -INLINE void cdp1802_in_n(int n) -{ - UINT8 i = io_read_byte(n); - - D = i; - MW(R(X), i); -} - -static void cdp1802_instruction(void) -{ - int oper; - int b; - -#ifdef LOG_ICODE - if (PC == 0x6b) cdp1802_log_icode(); // if you want to have the icodes in the debuglog -#endif - - oper = cpu_readop(PC++); - - I = (oper & 0xf0) >> 4; - N = oper & 0x0f; - - switch (oper & 0xf0) - { - case 0: - if (oper == 0) - cdp1802.idle = 1; - else - D = M(R(N)); - break; - case 0x10: R(N)++; break; - case 0x20: R(N)--; break; - case 0x40: D = M(R(N)++); break; - case 0x50: MW(R(N), D); break; - case 0x80: D = R0(N); break; - case 0x90: D = R1(N); break; - case 0xa0: R0(N) = D; break; - case 0xb0: R1(N) = D; break; - case 0xd0: P = N; change_pc(PC); break; - case 0xe0: X = N; break; - default: - switch (oper & 0xf8) - { - case 0x60: - if (oper == 0x60) - R(X)++; - else - cdp1802_out_n(oper & 7); - break; - case 0x68: - /* - - A note about INP 0 (0x68) from Tom Pittman's "A Short Course in Programming": - - If you look carefully, you will notice that we never studied the opcode "68". - That's because it is not a defined 1802 instruction. It has the form of an INP - instruction, but 0 is not a defined input port, so if you execute it (try it!) - nothing is input. "Nothing" is the answer to a question; it is data, and something - will be put in the accumulator and memory (so now you know what the computer uses - to mean "nothing"). - - However, since the result of the "68" opcode is unpredictable, it should not be - used in your programs. In fact, "68" is the first byte of a series of additional - instructions for the 1804 and 1805 microprocessors. - - http://www.ittybittycomputers.com/IttyBitty/ShortCor.htm - - */ - cdp1802_in_n(oper & 7); - break; - default: - switch (oper) - { - case 0x30: cdp1802_short_branch(1); break; - case 0x31: cdp1802_short_branch(Q); break; - case 0x32: cdp1802_short_branch(D == 0); break; - case 0x33: cdp1802_short_branch(DF); break; - - case 0x34: cdp1802_short_branch_ef(1, EF1); break; - case 0x35: cdp1802_short_branch_ef(1, EF2); break; - case 0x36: cdp1802_short_branch_ef(1, EF3); break; - case 0x37: cdp1802_short_branch_ef(1, EF4); break; - - case 0x38: cdp1802_short_branch(0); break; - case 0x39: cdp1802_short_branch(!Q); break; - case 0x3a: cdp1802_short_branch(D != 0); break; - case 0x3b: cdp1802_short_branch(!DF); break; - - case 0x3c: cdp1802_short_branch_ef(0, EF1); break; - case 0x3d: cdp1802_short_branch_ef(0, EF2); break; - case 0x3e: cdp1802_short_branch_ef(0, EF3); break; - case 0x3f: cdp1802_short_branch_ef(0, EF4); break; - - case 0x70: cdp1802_read_px(); IE = 1; break; - case 0x71: cdp1802_read_px(); IE = 0; break; - - case 0x72: D = M(R(X)++); break; - case 0x73: MW(R(X)--, D); break; - - case 0x74: cdp1802_add_carry(M(R(X))); break; - case 0x75: cdp1802_sub_carry(M(R(X)), D); break; - - case 0x76: - b = DF; - DF = D & 1; - D >>= 1; - if (b) D |= 0x80; - break; - - case 0x77: cdp1802_sub_carry(D, M(R(X))); break; - case 0x78: MW(R(X), T); break; - - case 0x79: - T = (X << 4) | P; - MW(R(2), T); - X = P; - R(2)--; - break; - - case 0x7a: cdp1802_q(0); break; - case 0x7b: cdp1802_q(1); break; - - case 0x7c: cdp1802_add_carry(M(PC++)); break; - case 0x7d: cdp1802_sub_carry(M(PC++), D); break; - - case 0x7e: - b = DF; - DF = D & 0x80; - D <<= 1; - if (b) D |= 1; - break; - - case 0x7f: cdp1802_sub_carry(D, M(PC++)); break; - - case 0xc0: cdp1802_long_branch(1); cdp1802_ICount -= 1; break; - case 0xc1: cdp1802_long_branch(Q); cdp1802_ICount -= 1; break; - case 0xc2: cdp1802_long_branch(D == 0); cdp1802_ICount -= 1; break; - case 0xc3: cdp1802_long_branch(DF); cdp1802_ICount -= 1; break; - - case 0xc4: /* NOP */ cdp1802_ICount -= 1; break; - - case 0xc5: cdp1802_long_skip(!Q); cdp1802_ICount -= 1; break; - case 0xc6: cdp1802_long_skip(D != 0); cdp1802_ICount -= 1; break; - case 0xc7: cdp1802_long_skip(!DF); cdp1802_ICount -= 1; break; - case 0xc8: cdp1802_long_skip(1); cdp1802_ICount -= 1; break; - - case 0xc9: cdp1802_long_branch(!Q); cdp1802_ICount -= 1; break; - case 0xca: cdp1802_long_branch(D != 0); cdp1802_ICount -= 1; break; - case 0xcb: cdp1802_long_branch(!DF); cdp1802_ICount -= 1; break; - - case 0xcc: cdp1802_long_skip(IE); cdp1802_ICount -= 1; break; - case 0xcd: cdp1802_long_skip(Q); cdp1802_ICount -= 1; break; - case 0xce: cdp1802_long_skip(D == 0); cdp1802_ICount -= 1; break; - case 0xcf: cdp1802_long_skip(DF); cdp1802_ICount -= 1; break; - - case 0xf0: D = M(R(X)); break; - case 0xf1: D |= M(R(X)); break; - case 0xf2: D &= M(R(X)); break; - case 0xf3: D ^= M(R(X)); break; - - case 0xf4: cdp1802_add(M(R(X))); break; - case 0xf5: cdp1802_sub(M(R(X)), D); break; - case 0xf6: DF = D & 1; D >>= 1; break; - case 0xf7: cdp1802_sub(D, M(R(X))); break; - - case 0xf8: D = M(PC++); break; - case 0xf9: D |= M(PC++); break; - case 0xfa: D &= M(PC++); break; - case 0xfb: D ^= M(PC++); break; - - case 0xfc: cdp1802_add(M(PC++)); break; - case 0xfd: cdp1802_sub(M(PC++), D); break; - case 0xfe: DF = D & 0x80; D <<= 1; break; - case 0xff: cdp1802_sub(D, M(PC++)); break; - - default: - logerror("cpu cdp1802 unknown opcode %.2x at %.4x\n",oper, PC-1); - break; - } - break; - } - break; - } - - cdp1802_ICount -= 2; -} diff --git a/src/cpu/cdp1802/cdp1802.c b/src/cpu/cdp1802/cdp1802.c deleted file mode 100644 index 21912f7a0..000000000 --- a/src/cpu/cdp1802/cdp1802.c +++ /dev/null @@ -1,312 +0,0 @@ -/***************************************************************************** - * - * Copyright (c) 2000 Peter Trauner, all rights reserved. - * - * - This source code is released as freeware for non-commercial purposes. - * - You are free to use and redistribute this code in modified or - * unmodified form, provided you list me in the credits. - * - If you modify this source code, you must add a notice to each modified - * source file that it has been changed. If you're a nice person, you - * will clearly mark each change too. :) - * - If you wish to use this for commercial purposes, please contact me at - * peter.trauner@jk.uni-linz.ac.at - * - The author of this copywritten work reserves the right to change the - * terms of its usage and license at any time, including retroactively - * - This entire notice must remain in the source code. - * - *****************************************************************************/ -#include -#include "driver.h" -#include "state.h" -#include "debugger.h" -#include "cdp1802.h" - - -/**************************************************************************** - * The CDP1802 registers. - ****************************************************************************/ -typedef struct -{ - CDP1802_CONFIG *config; - - PAIR reg[0x10]; - int p, x; // indices to reg, p program count, x data pointer - int n, i; - - UINT8 d, b, t; // xp after entering interrupt - - UINT16 oldpc; - - int df, ie, q; - int irq_state; - - int idle; - int dma_cycles; -} CDP1802_Regs; - -static int cdp1802_ICount; - -static CDP1802_Regs cdp1802; - -/*************************************************************** - * include the opcode macros, functions and tables - ***************************************************************/ -#include "1802tbl.c" - -static void cdp1802_get_context (void *dst) -{ - if (dst) - { - *(CDP1802_Regs *)dst = cdp1802; - } -} - -static void cdp1802_set_context (void *src) -{ - if (src) - { - cdp1802 = *(CDP1802_Regs *)src; - change_pc(PC); - } -} - -static void cdp1802_init(int index, int clock, const void *config, int (*irqcallback)(int)) -{ - cdp1802.config = (CDP1802_CONFIG *) config; -} - -static void cdp1802_reset(void) -{ - I = 0; - N = 0; - cdp1802_q(0); - IE = 1; - - // initialization cycle, requires 9 clock pulses - // interrupt and DMA servicing is suppressed - - X = 0; - P = 0; - R(0) = 0; - - change_pc(PC); - - cdp1802.idle = 0; - cdp1802.dma_cycles = 0; -} - -static int cdp1802_execute(int cycles) -{ - int ref = cycles; - cdp1802_ICount = cycles; - - change_pc(PC); - - do - { - cdp1802.oldpc = PC; - - CALL_MAME_DEBUG; - - if (!cdp1802.idle) - cdp1802_instruction(); - else - cdp1802_ICount--; - - if (cdp1802.config->dma) - { - cdp1802.config->dma(ref-cdp1802_ICount); - ref = cdp1802_ICount; - } - } while (cdp1802_ICount > 0); - - return cycles - cdp1802_ICount; -} - -static void cdp1802_set_irq_line(int irqline, int state) -{ - cdp1802.idle = 0; - - if (IE) - { - T = (X << 4) | P; - X = 2; - P = 1; - IE = 0; - change_pc(PC); - cdp1802.irq_state = state; - } -} - -void cdp1802_dma_write(UINT8 data) -{ - MW(R(0)++, data); - cdp1802.idle = 0; - cdp1802_ICount--; -} - -int cdp1802_dma_read(void) -{ - cdp1802.idle = 0; - cdp1802_ICount--; - return M(R(0)++); -} - -/************************************************************************** - * Generic set_info - **************************************************************************/ - -static void cdp1802_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - case CPUINFO_INT_INPUT_STATE + CDP1802_IRQ_STATE: cdp1802_set_irq_line(CDP1802_IRQ, info->i); break; - - case CPUINFO_INT_REGISTER + CDP1802_P: cdp1802.p = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_X: cdp1802.x = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_T: cdp1802.t = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_D: cdp1802.d = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_B: cdp1802.b = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R0: cdp1802.reg[0].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R1: cdp1802.reg[1].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R2: cdp1802.reg[2].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R3: cdp1802.reg[3].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R4: cdp1802.reg[4].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R5: cdp1802.reg[5].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R6: cdp1802.reg[6].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R7: cdp1802.reg[7].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R8: cdp1802.reg[8].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_R9: cdp1802.reg[9].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Ra: cdp1802.reg[0xa].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Rb: cdp1802.reg[0xb].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Rc: cdp1802.reg[0xc].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Rd: cdp1802.reg[0xd].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Re: cdp1802.reg[0xe].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Rf: cdp1802.reg[0xf].w.l = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_DF: cdp1802.df = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_IE: cdp1802.ie = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_Q: cdp1802_q(info->i); break; - case CPUINFO_INT_REGISTER + CDP1802_N: cdp1802.n = info->i; break; - case CPUINFO_INT_REGISTER + CDP1802_I: cdp1802.i = info->i; break; - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + CDP1802_PC: PC = info->i; break; - } -} - -/**************************************************************************** - * Return a formatted string for a register - ****************************************************************************/ -void cdp1802_get_info(UINT32 state, cpuinfo *info) -{ - switch(state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(cdp1802); break; - case CPUINFO_INT_INPUT_LINES: info->i = 1; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 8; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; - case CPUINFO_INT_MAX_CYCLES: info->i = 19; break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 8; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 8; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 3; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_INPUT_STATE + CDP1802_IRQ_STATE: info->i = cdp1802.irq_state; break; - - case CPUINFO_INT_PREVIOUSPC: info->i = cdp1802.oldpc; break; - - case CPUINFO_INT_SP: info->i = 0; break; - case CPUINFO_INT_REGISTER + CDP1802_P: info->i = cdp1802.p; break; - case CPUINFO_INT_REGISTER + CDP1802_X: info->i = cdp1802.x; break; - case CPUINFO_INT_REGISTER + CDP1802_T: info->i = cdp1802.t; break; - case CPUINFO_INT_REGISTER + CDP1802_D: info->i = cdp1802.d; break; - case CPUINFO_INT_REGISTER + CDP1802_B: info->i = cdp1802.b; break; - case CPUINFO_INT_REGISTER + CDP1802_R0: info->i = cdp1802.reg[0].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R1: info->i = cdp1802.reg[1].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R2: info->i = cdp1802.reg[2].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R3: info->i = cdp1802.reg[3].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R4: info->i = cdp1802.reg[4].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R5: info->i = cdp1802.reg[5].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R6: info->i = cdp1802.reg[6].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R7: info->i = cdp1802.reg[7].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R8: info->i = cdp1802.reg[8].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_R9: info->i = cdp1802.reg[9].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Ra: info->i = cdp1802.reg[0xa].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Rb: info->i = cdp1802.reg[0xb].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Rc: info->i = cdp1802.reg[0xc].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Rd: info->i = cdp1802.reg[0xd].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Re: info->i = cdp1802.reg[0xe].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_Rf: info->i = cdp1802.reg[0xf].w.l; break; - case CPUINFO_INT_REGISTER + CDP1802_DF: info->i = cdp1802.df; break; - case CPUINFO_INT_REGISTER + CDP1802_IE: info->i = cdp1802.ie; break; - case CPUINFO_INT_REGISTER + CDP1802_Q: info->i = cdp1802.q; break; - case CPUINFO_INT_REGISTER + CDP1802_N: info->i = cdp1802.n; break; - case CPUINFO_INT_REGISTER + CDP1802_I: info->i = cdp1802.i; break; - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + CDP1802_PC: info->i = PC; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = cdp1802_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = cdp1802_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = cdp1802_set_context; break; - case CPUINFO_PTR_INIT: info->init = cdp1802_init; break; - case CPUINFO_PTR_RESET: info->reset = cdp1802_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = cdp1802_execute; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = cdp1802_dasm; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cdp1802_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s, "CDP1802"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "CDP1802"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright (c) 2000 Peter Trauner, all rights reserved."); break; - - case CPUINFO_STR_REGISTER + CDP1802_PC: sprintf(info->s, "PC:%.4x", PC); break; - case CPUINFO_STR_REGISTER + CDP1802_R0: sprintf(info->s, "R0:%.4x", cdp1802.reg[0].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R1: sprintf(info->s, "R1:%.4x", cdp1802.reg[1].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R2: sprintf(info->s, "R2:%.4x", cdp1802.reg[2].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R3: sprintf(info->s, "R3:%.4x", cdp1802.reg[3].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R4: sprintf(info->s, "R4:%.4x", cdp1802.reg[4].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R5: sprintf(info->s, "R5:%.4x", cdp1802.reg[5].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R6: sprintf(info->s, "R6:%.4x", cdp1802.reg[6].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R7: sprintf(info->s, "R7:%.4x", cdp1802.reg[7].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R8: sprintf(info->s, "R8:%.4x", cdp1802.reg[8].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_R9: sprintf(info->s, "R9:%.4x", cdp1802.reg[9].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Ra: sprintf(info->s, "Ra:%.4x", cdp1802.reg[0xa].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Rb: sprintf(info->s, "Rb:%.4x", cdp1802.reg[0xb].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Rc: sprintf(info->s, "Rc:%.4x", cdp1802.reg[0xc].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Rd: sprintf(info->s, "Rd:%.4x", cdp1802.reg[0xd].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Re: sprintf(info->s, "Re:%.4x", cdp1802.reg[0xe].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_Rf: sprintf(info->s, "Rf:%.4x", cdp1802.reg[0xf].w.l); break; - case CPUINFO_STR_REGISTER + CDP1802_P: sprintf(info->s, "P:%x", cdp1802.p); break; - case CPUINFO_STR_REGISTER + CDP1802_X: sprintf(info->s, "X:%x", cdp1802.x); break; - case CPUINFO_STR_REGISTER + CDP1802_D: sprintf(info->s, "D:%.2x", cdp1802.d); break; - case CPUINFO_STR_REGISTER + CDP1802_B: sprintf(info->s, "B:%.2x", cdp1802.b); break; - case CPUINFO_STR_REGISTER + CDP1802_T: sprintf(info->s, "T:%.2x", cdp1802.t); break; - case CPUINFO_STR_REGISTER + CDP1802_DF: sprintf(info->s, "DF:%x", cdp1802.df); break; - case CPUINFO_STR_REGISTER + CDP1802_IE: sprintf(info->s, "IE:%x", cdp1802.ie); break; - case CPUINFO_STR_REGISTER + CDP1802_Q: sprintf(info->s, "Q:%x", cdp1802.q); break; - case CPUINFO_STR_REGISTER + CDP1802_N: sprintf(info->s, "N:%x", cdp1802.n); break; - case CPUINFO_STR_REGISTER + CDP1802_I: sprintf(info->s, "I:%x", cdp1802.i); break; - case CPUINFO_STR_FLAGS: sprintf(info->s, - "%s%s%s", - cdp1802.df ? "DF" : "..", - cdp1802.ie ? "IE" : "..", - cdp1802.q ? "Q" : "."); break; - } -} diff --git a/src/cpu/cdp1802/cdp1802.h b/src/cpu/cdp1802/cdp1802.h deleted file mode 100644 index 1d6b9946a..000000000 --- a/src/cpu/cdp1802/cdp1802.h +++ /dev/null @@ -1,96 +0,0 @@ -/***************************************************************************** - * - * cdp1802.h - * portable cosmac cdp1802 emulator interface - * - * Copyright (c) 2000 Peter Trauner, all rights reserved. - * - * - This source code is released as freeware for non-commercial purposes. - * - You are free to use and redistribute this code in modified or - * unmodified form, provided you list me in the credits. - * - If you modify this source code, you must add a notice to each modified - * source file that it has been changed. If you're a nice person, you - * will clearly mark each change too. :) - * - If you wish to use this for commercial purposes, please contact me at - * peter.trauner@jk.uni-linz.ac.at - * - The author of this copywritten work reserves the right to change the - * terms of its usage and license at any time, including retroactively - * - This entire notice must remain in the source code. - * - *****************************************************************************/ - -#ifndef _CDP1802_H -#define _CDP1802_H - -#include "cpuintrf.h" - -#define CDP1802_INT_NONE 0 -#define CDP1802_IRQ 1 - -// CDP1802 I/O Flags - -enum { - EF1 = 1, - EF2 = 2, - EF3 = 4, - EF4 = 8 -}; - -// CDP1802 Registers - -enum { - CDP1802_PC = 1, - CDP1802_P, // Designates which register is Program Counter - CDP1802_X, // Designates which register is Data Pointer - CDP1802_D, // Data Register (Accumulator) - CDP1802_B, // Auxiliary Holding Register - CDP1802_T, // Holds old X, P after Interrupt (X is high nibble) - - CDP1802_R0, // 1 of 16 Scratchpad Registers - CDP1802_R1, - CDP1802_R2, - CDP1802_R3, - CDP1802_R4, - CDP1802_R5, - CDP1802_R6, - CDP1802_R7, - CDP1802_R8, - CDP1802_R9, - CDP1802_Ra, - CDP1802_Rb, - CDP1802_Rc, - CDP1802_Rd, - CDP1802_Re, - CDP1802_Rf, - - CDP1802_DF, // Data Flag (ALU Carry) - CDP1802_IE, // Interrupt Enable - CDP1802_Q, // Output Flip-Flop - CDP1802_N, // Holds Low-Order Instruction Digit - CDP1802_I, // Holds High-Order Instruction Digit - CDP1802_IRQ_STATE, -}; - -// CDP1802 Configuration - -typedef struct { - /* called after execution of an instruction with cycles, - return cycles taken by dma hardware */ - void (*dma)(int cycles); - void (*out_q)(int level); - int (*in_ef)(void); -} CDP1802_CONFIG; - - -void cdp1802_dma_write(UINT8 data); -int cdp1802_dma_read(void); - -extern int cdp1802_icount; // cycle count - -void cdp1802_get_info(UINT32 state, cpuinfo *info); - -#ifdef MAME_DEBUG -offs_t cdp1802_dasm(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram); -#endif /* MAME_DEBUG */ - -#endif diff --git a/src/cpu/cpu.mak b/src/cpu/cpu.mak deleted file mode 100644 index 2a8c021f1..000000000 --- a/src/cpu/cpu.mak +++ /dev/null @@ -1,1271 +0,0 @@ -########################################################################### -# -# cpu.mak -# -# Rules for building CPU cores -# -# Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team. -# Visit http://mamedev.org for licensing and usage restrictions. -# -########################################################################### - - -#------------------------------------------------- -# Acorn ARM series -#------------------------------------------------- - -CPUDEFS += -DHAS_ARM=$(if $(filter ARM,$(CPUS)),1,0) -CPUDEFS += -DHAS_ARM7=$(if $(filter ARM7,$(CPUS)),1,0) - -ifneq ($(filter ARM,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/arm -CPUOBJS += $(OBJ)/cpu/arm/arm.o -DBGOBJS += $(OBJ)/cpu/arm/armdasm.o -$(OBJ)/cpu/arm/arm.o: arm.c arm.h -endif - -ifneq ($(filter ARM7,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/arm7 -CPUOBJS += $(OBJ)/cpu/arm7/arm7.o -DBGOBJS += $(OBJ)/cpu/arm7/arm7dasm.o -$(OBJ)/cpu/arm7/arm7.o: arm7.c arm7.h arm7exec.c -endif - - - -#------------------------------------------------- -# Advanced Digital Chips SE3208 -#------------------------------------------------- - -CPUDEFS += -DHAS_SE3208=$(if $(filter SE3208,$(CPUS)),1,0) - -ifneq ($(filter SE3208,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/se3208 -CPUOBJS += $(OBJ)/cpu/se3208/se3208.o -DBGOBJS += $(OBJ)/cpu/se3208/se3208dis.o -$(OBJ)/cpu/se3208/se3208.o: se3208.c se3208.h se3208dis.c -endif - - - -#------------------------------------------------- -# Alpha 8201 -#------------------------------------------------- - -CPUDEFS += -DHAS_ALPHA8201=$(if $(filter ALPHA8201,$(CPUS)),1,0) -CPUDEFS += -DHAS_ALPHA8301=$(if $(filter ALPHA8301,$(CPUS)),1,0) - -ifneq ($(filter ALPHA8201 ALPHA8301,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/alph8201 -CPUOBJS += $(OBJ)/cpu/alph8201/alph8201.o -DBGOBJS += $(OBJ)/cpu/alph8201/8201dasm.o -$(OBJ)/cpu/alph8201/alph8201.o: alph8201.c alph8201.h -endif - - - -#------------------------------------------------- -# Analog Devices ADSP21xx series -#------------------------------------------------- - -CPUDEFS += -DHAS_ADSP2100=$(if $(filter ADSP2100,$(CPUS)),1,0) -CPUDEFS += -DHAS_ADSP2101=$(if $(filter ADSP2101,$(CPUS)),1,0) -CPUDEFS += -DHAS_ADSP2104=$(if $(filter ADSP2104,$(CPUS)),1,0) -CPUDEFS += -DHAS_ADSP2105=$(if $(filter ADSP2105,$(CPUS)),1,0) -CPUDEFS += -DHAS_ADSP2115=$(if $(filter ADSP2115,$(CPUS)),1,0) -CPUDEFS += -DHAS_ADSP2181=$(if $(filter ADSP2181,$(CPUS)),1,0) - -ifneq ($(filter ADSP2100 ADSP2101 ADSP2104 ADSP2105 ADSP2115 ADSP2181,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/adsp2100 -CPUOBJS += $(OBJ)/cpu/adsp2100/adsp2100.o -DBGOBJS += $(OBJ)/cpu/adsp2100/2100dasm.o -$(OBJ)/cpu/adsp2100/adsp2100.o: adsp2100.c adsp2100.h 2100ops.c -endif - - - -#------------------------------------------------- -# Analog Devices "Sharc" ADSP21062 -#------------------------------------------------- - -CPUDEFS += -DHAS_ADSP21062=$(if $(filter ADSP21062,$(CPUS)),1,0) - -ifneq ($(filter ADSP21062,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/sharc -CPUOBJS += $(OBJ)/cpu/sharc/sharc.o -DBGOBJS += $(OBJ)/cpu/sharc/sharcdsm.o -$(OBJ)/cpu/sharc/sharc.o: sharc.c sharc.h sharcops.c sharcops.h sharcdsm.c sharcdsm.h compute.c sharcdma.c sharcmem.c -endif - - - -#------------------------------------------------- -# APEXC -#------------------------------------------------- - -ifneq ($(filter APEXC,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/apexc -CPUDEFS += -DHAS_APEXC=1 -CPUOBJS += $(OBJ)/cpu/apexc/apexc.o -DBGOBJS += $(OBJ)/cpu/apexc/apexcdsm.o -$(OBJ)/cpu/apexc/apexc.o: apexc.c apexc.h -else -CPUDEFS += -DHAS_APEXC=0 -endif - - - -#------------------------------------------------- -# AT&T DSP32C -#------------------------------------------------- - -CPUDEFS += -DHAS_DSP32C=$(if $(filter DSP32C,$(CPUS)),1,0) - -ifneq ($(filter DSP32C,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/dsp32 -CPUOBJS += $(OBJ)/cpu/dsp32/dsp32.o -DBGOBJS += $(OBJ)/cpu/dsp32/dsp32dis.o -$(OBJ)/cpu/dsp32/dsp32.o: dsp32.c dsp32.h -endif - - - -#------------------------------------------------- -# Atari custom RISC processor -#------------------------------------------------- - -CPUDEFS += -DHAS_ASAP=$(if $(filter ASAP,$(CPUS)),1,0) - -ifneq ($(filter ASAP,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/asap -CPUOBJS += $(OBJ)/cpu/asap/asap.o -DBGOBJS += $(OBJ)/cpu/asap/asapdasm.o -$(OBJ)/cpu/asap/asap.o: asap.c asap.h -endif - - - -#------------------------------------------------- -# Atari Jaguar custom DSPs -#------------------------------------------------- - -CPUDEFS += -DHAS_JAGUAR=$(if $(filter JAGUAR,$(CPUS)),1,0) - -ifneq ($(filter JAGUAR,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/jaguar -CPUOBJS += $(OBJ)/cpu/jaguar/jaguar.o -DBGOBJS += $(OBJ)/cpu/jaguar/jagdasm.o -$(OBJ)/cpu/jaguar/jaguar.o: jaguar.c jaguar.h -endif - - - -#------------------------------------------------- -# RCA CDP1802 -#------------------------------------------------- - -CPUDEFS += -DHAS_CDP1802=$(if $(filter CDP1802,$(CPUS)),1,0) - -ifneq ($(filter CDP1802,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/cdp1802 -CPUOBJS += $(OBJ)/cpu/cdp1802/cdp1802.o -DBGOBJS += $(OBJ)/cpu/cdp1802/1802dasm.o -$(OBJ)/cpu/cdp1802/cdp1802.o: cdp1802.c cdp1802.h 1802tbl.c -endif - - - -#------------------------------------------------- -# National Semiconductor COP410 -#------------------------------------------------- - -CPUDEFS += -DHAS_COP410=$(if $(filter COP410,$(CPUS)),1,0) - -ifneq ($(filter COP410,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/cop400 -CPUOBJS += $(OBJ)/cpu/cop400/cop410.o -DBGOBJS += $(OBJ)/cpu/cop400/cop410ds.o -$(OBJ)/cpu/cop400/cop410.o: cop410.c cop400.h 410ops.c -endif - - - -#------------------------------------------------- -# National Semiconductor COP411 -#------------------------------------------------- - -CPUDEFS += -DHAS_COP411=$(if $(filter COP411,$(CPUS)),1,0) - -ifneq ($(filter COP411,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/cop400 -CPUOBJS += $(OBJ)/cpu/cop400/cop410.o -DBGOBJS += $(OBJ)/cpu/cop400/cop410ds.o -$(OBJ)/cpu/cop400/cop410.o: cop410.c cop400.h 410ops.c -endif - - - -#------------------------------------------------- -# National Semiconductor COP420 -#------------------------------------------------- - -CPUDEFS += -DHAS_COP420=$(if $(filter COP420,$(CPUS)),1,0) - -ifneq ($(filter COP420,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/cop400 -CPUOBJS += $(OBJ)/cpu/cop400/cop420.o -DBGOBJS += $(OBJ)/cpu/cop400/cop420ds.o -$(OBJ)/cpu/cop400/cop420.o: cop420.c cop400.h 410ops.c 420ops.c -endif - - - -#------------------------------------------------- -# CP1610 -#------------------------------------------------- - -ifneq ($(filter CP1610,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/cp1610 -CPUDEFS += -DHAS_CP1610=1 -CPUOBJS += $(OBJ)/cpu/cp1610/cp1610.o -DBGOBJS += $(OBJ)/cpu/cp1610/1610dasm.o -$(OBJ)/cpu/cp1610/cp1610.o: cp1610.c cp1610.h -else -CPUDEFS += -DHAS_CP1610=0 -endif - - - -#------------------------------------------------- -# Cinematronics vector "CPU" -#------------------------------------------------- - -CPUDEFS += -DHAS_CCPU=$(if $(filter CCPU,$(CPUS)),1,0) - -ifneq ($(filter CCPU,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/ccpu -CPUOBJS += $(OBJ)/cpu/ccpu/ccpu.o -DBGOBJS += $(OBJ)/cpu/ccpu/ccpudasm.o -$(OBJ)/cpu/ccpu/ccpu.o: ccpu.c ccpu.h -endif - - - -#------------------------------------------------- -# DEC T-11 -#------------------------------------------------- - -CPUDEFS += -DHAS_T11=$(if $(filter T11,$(CPUS)),1,0) - -ifneq ($(filter T11,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/t11 -CPUOBJS += $(OBJ)/cpu/t11/t11.o -DBGOBJS += $(OBJ)/cpu/t11/t11dasm.o -$(OBJ)/cpu/t11/t11.o: t11.c t11.h t11ops.c t11table.c -endif - - - -#------------------------------------------------- -# F8 -#------------------------------------------------- - -ifneq ($(filter F8,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/f8 -CPUDEFS += -DHAS_F8=1 -CPUOBJS += $(OBJ)/cpu/f8/f8.o -DBGOBJS += $(OBJ)/cpu/f8/f8dasm.o -$(OBJ)/cpu/f8/f8.o: f8.c f8.h -else -CPUDEFS += -DHAS_F8=0 -endif - - - -#------------------------------------------------- -# G65816 -#------------------------------------------------- - -CPUDEFS += -DHAS_G65816=$(if $(filter G65816,$(CPUS)),1,0) - -ifneq ($(filter G65816,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/g65816 -CPUOBJS += $(OBJ)/cpu/g65816/g65816.o -CPUOBJS += $(OBJ)/cpu/g65816/g65816o0.o -CPUOBJS += $(OBJ)/cpu/g65816/g65816o1.o -CPUOBJS += $(OBJ)/cpu/g65816/g65816o2.o -CPUOBJS += $(OBJ)/cpu/g65816/g65816o3.o -CPUOBJS += $(OBJ)/cpu/g65816/g65816o4.o -DBGOBJS += $(OBJ)/cpu/g65816/g65816ds.o -$(OBJ)/cpu/g65816/g65816.o: g65816.c g65816.h g65816cm.h g65816op.h -$(OBJ)/cpu/g65816/g65816o0.o: g65816o0.c g65816.h g65816cm.h g65816op.h -$(OBJ)/cpu/g65816/g65816o1.o: g65816o1.c g65816.h g65816cm.h g65816op.h -$(OBJ)/cpu/g65816/g65816o2.o: g65816o2.c g65816.h g65816cm.h g65816op.h -$(OBJ)/cpu/g65816/g65816o3.o: g65816o3.c g65816.h g65816cm.h g65816op.h -$(OBJ)/cpu/g65816/g65816o4.o: g65816o4.c g65816.h g65816cm.h g65816op.h -endif - - - -#------------------------------------------------- -# Hitachi 6309 -#------------------------------------------------- - -CPUDEFS += -DHAS_HD6309=$(if $(filter HD6309,$(CPUS)),1,0) - -ifneq ($(filter HD6309,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/hd6309 -CPUOBJS += $(OBJ)/cpu/hd6309/hd6309.o -DBGOBJS += $(OBJ)/cpu/hd6309/6309dasm.o -$(OBJ)/cpu/hd6309/hd6309.o: hd6309.c hd6309.h 6309ops.c 6309tbl.c -endif - - - -#------------------------------------------------- -# Hitachi H8/3002 -#------------------------------------------------- - -CPUDEFS += -DHAS_H83002=$(if $(filter H83002,$(CPUS)),1,0) - -ifneq ($(filter H83002,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/h83002 -CPUOBJS += $(OBJ)/cpu/h83002/h83002.o $(OBJ)/cpu/h83002/h8periph.o -DBGOBJS += $(OBJ)/cpu/h83002/h8disasm.o -$(OBJ)/cpu/h83002/h83002.o: h83002.c h83002.h h8priv.h -$(OBJ)/cpu/h83002/h8disasm.o: h8disasm.c -$(OBJ)/cpu/h83002/h8periph.o: h8periph.c h8priv.h -endif - - - -#------------------------------------------------- -# Hitachi SH2 -#------------------------------------------------- - -CPUDEFS += -DHAS_SH2=$(if $(filter SH2,$(CPUS)),1,0) - -ifneq ($(filter SH2,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/sh2 -CPUOBJS += $(OBJ)/cpu/sh2/sh2.o -DBGOBJS += $(OBJ)/cpu/sh2/sh2dasm.o -$(OBJ)/cpu/sh2/sh2.o: sh2.c sh2.h -endif - - - -#------------------------------------------------- -# Hudsonsoft 6280 -#------------------------------------------------- - -CPUDEFS += -DHAS_H6280=$(if $(filter H6280,$(CPUS)),1,0) - -ifneq ($(filter H6280,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/h6280 -CPUOBJS += $(OBJ)/cpu/h6280/h6280.o -DBGOBJS += $(OBJ)/cpu/h6280/6280dasm.o -$(OBJ)/cpu/h6280/h6280.o: h6280.c h6280.h h6280ops.h tblh6280.c -endif - - - -#------------------------------------------------- -# Hyperstone E1 series -#------------------------------------------------- - -CPUDEFS += -DHAS_E116T=$(if $(filter E116T,$(CPUS)),1,0) -CPUDEFS += -DHAS_E116XT=$(if $(filter E116XT,$(CPUS)),1,0) -CPUDEFS += -DHAS_E116XS=$(if $(filter E116XS,$(CPUS)),1,0) -CPUDEFS += -DHAS_E116XSR=$(if $(filter E116XSR,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132N=$(if $(filter E132N,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132T=$(if $(filter E132T,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132XN=$(if $(filter E132XN,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132XT=$(if $(filter E132XT,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132XS=$(if $(filter E132XS,$(CPUS)),1,0) -CPUDEFS += -DHAS_E132XSR=$(if $(filter E132XSR,$(CPUS)),1,0) -CPUDEFS += -DHAS_GMS30C2116=$(if $(filter GMS30C2116,$(CPUS)),1,0) -CPUDEFS += -DHAS_GMS30C2132=$(if $(filter GMS30C2132,$(CPUS)),1,0) -CPUDEFS += -DHAS_GMS30C2216=$(if $(filter GMS30C2216,$(CPUS)),1,0) -CPUDEFS += -DHAS_GMS30C2232=$(if $(filter GMS30C2232,$(CPUS)),1,0) - -ifneq ($(filter E116T E116XT E116XS E116XSR E132N E132T E132XN E132XT E132XS E132XSR GMS30C2116 GMS30C2132 GMS30C2216 GMS30C2232,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/e132xs -CPUOBJS += $(OBJ)/cpu/e132xs/e132xs.o -DBGOBJS += $(OBJ)/cpu/e132xs/32xsdasm.o -$(OBJ)/cpu/e132xs/e132xs.o: e132xs.c e132xs.h -endif - - - -#------------------------------------------------- -# Intel 8080/8085A -#------------------------------------------------- - -CPUDEFS += -DHAS_8080=$(if $(filter 8080,$(CPUS)),1,0) -CPUDEFS += -DHAS_8085A=$(if $(filter 8085A,$(CPUS)),1,0) - -ifneq ($(filter 8080 8085A,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i8085 -CPUOBJS += $(OBJ)/cpu/i8085/i8085.o -DBGOBJS += $(OBJ)/cpu/i8085/8085dasm.o -$(OBJ)/cpu/i8085/i8085.o: i8085.c i8085.h i8085cpu.h i8085daa.h -endif - - - -#------------------------------------------------- -# Intel 8039 and derivatives -#------------------------------------------------- - -CPUDEFS += -DHAS_I8035=$(if $(filter I8035,$(CPUS)),1,0) -CPUDEFS += -DHAS_I8039=$(if $(filter I8039,$(CPUS)),1,0) -CPUDEFS += -DHAS_I8048=$(if $(filter I8048,$(CPUS)),1,0) -CPUDEFS += -DHAS_N7751=$(if $(filter N7751,$(CPUS)),1,0) - -ifneq ($(filter I8035 I8039 I8048 N7751,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i8039 -CPUOBJS += $(OBJ)/cpu/i8039/i8039.o -DBGOBJS += $(OBJ)/cpu/i8039/8039dasm.o -$(OBJ)/cpu/i8039/i8039.o: i8039.c i8039.h -endif - - - -#------------------------------------------------- -# Intel 8x41 -#------------------------------------------------- - -CPUDEFS += -DHAS_I8X41=$(if $(filter I8X41,$(CPUS)),1,0) - -ifneq ($(filter I8X41,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i8x41 -CPUOBJS += $(OBJ)/cpu/i8x41/i8x41.o -DBGOBJS += $(OBJ)/cpu/i8x41/8x41dasm.o -$(OBJ)/cpu/i8x41/i8x41.o: i8x41.c i8x41.h -endif - - - -#------------------------------------------------- -# Intel 8051 and derivatives -#------------------------------------------------- - -CPUDEFS += -DHAS_I8051=$(if $(filter I8051,$(CPUS)),1,0) -CPUDEFS += -DHAS_I8052=$(if $(filter I8052,$(CPUS)),1,0) -CPUDEFS += -DHAS_I8751=$(if $(filter I8751,$(CPUS)),1,0) -CPUDEFS += -DHAS_I8752=$(if $(filter I8752,$(CPUS)),1,0) - -ifneq ($(filter I8051 I8052 I8751 I8752,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i8051 -CPUOBJS += $(OBJ)/cpu/i8051/i8051.o -DBGOBJS += $(OBJ)/cpu/i8051/8051dasm.o -$(OBJ)/cpu/i8051/i8051.o: i8051.c i8051.h i8051ops.c -endif - - - -#------------------------------------------------- -# Intel 8086 series -#------------------------------------------------- - -CPUDEFS += -DHAS_I86=$(if $(filter I86,$(CPUS)),1,0) -CPUDEFS += -DHAS_I88=$(if $(filter I88,$(CPUS)),1,0) -CPUDEFS += -DHAS_I186=$(if $(filter I186,$(CPUS)),1,0) -CPUDEFS += -DHAS_I188=$(if $(filter I188,$(CPUS)),1,0) -CPUDEFS += -DHAS_I286=$(if $(filter I286,$(CPUS)),1,0) -CPUDEFS += -DHAS_I386=$(if $(filter I386,$(CPUS)),1,0) -CPUDEFS += -DHAS_I486=$(if $(filter I486,$(CPUS)),1,0) -CPUDEFS += -DHAS_PENTIUM=$(if $(filter PENTIUM,$(CPUS)),1,0) -CPUDEFS += -DHAS_MEDIAGX=$(if $(filter MEDIAGX,$(CPUS)),1,0) - -ifneq ($(filter I86 I88 I186 I188,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i86 -CPUOBJS += $(OBJ)/cpu/i86/i86.o -DBGOBJS += $(OBJ)/cpu/i386/i386dasm.o -$(OBJ)/cpu/i86/i86.o: i86.c instr86.c instr186.c i86.h i86intf.h i186intf.h ea.h host.h modrm.h -endif - -ifneq ($(filter I286,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i86 -CPUOBJS += $(OBJ)/cpu/i86/i286.o -DBGOBJS += $(OBJ)/cpu/i386/i386dasm.o -$(OBJ)/cpu/i86/i86.o: i86.c instr286.c i86.h i286intf.h ea.h host.h modrm.h -endif - -ifneq ($(filter I386 I486 PENTIUM MEDIAGX,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i386 -CPUOBJS += $(OBJ)/cpu/i386/i386.o -DBGOBJS += $(OBJ)/cpu/i386/i386dasm.o -$(OBJ)/cpu/i386/i386.o: i386.c i386.h i386intf.h i386op16.c i386op32.c i386ops.c i486ops.c pentops.c x87ops.c i386ops.h cycles.h -endif - - - -#------------------------------------------------- -# Intel i960 -#------------------------------------------------- - -CPUDEFS += -DHAS_I960=$(if $(filter I960,$(CPUS)),1,0) - -ifneq ($(filter I960,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/i960 -CPUOBJS += $(OBJ)/cpu/i960/i960.o -DBGOBJS += $(OBJ)/cpu/i960/i960dis.o -$(OBJ)/cpu/i960/i960.o: i960.c i960.h -endif - - - -#------------------------------------------------- -# Konami custom CPU (6809-based) -#------------------------------------------------- - -CPUDEFS += -DHAS_KONAMI=$(if $(filter KONAMI,$(CPUS)),1,0) - -ifneq ($(filter KONAMI,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/konami -CPUOBJS += $(OBJ)/cpu/konami/konami.o -DBGOBJS += $(OBJ)/cpu/konami/knmidasm.o -$(OBJ)/cpu/konami/konami.o: konami.c konami.h konamops.c konamtbl.c -endif - - - -#------------------------------------------------- -# LH5801 -#------------------------------------------------- - -ifneq ($(filter LH5801,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/lh5801 -CPUDEFS += -DHAS_LH5801=1 -CPUOBJS += $(OBJ)/cpu/lh5801/lh5801.o -DBGOBJS += $(OBJ)/cpu/lh5801/5801dasm.o -$(OBJ)/cpu/lh5801/lh5801.o: lh5801.c 5801tbl.c lh5801.h -else -CPUDEFS += -DHAS_LH5801=0 -endif - - - -#------------------------------------------------- -# Microchip PIC16C5x -#------------------------------------------------- - -CPUDEFS += -DHAS_PIC16C54=$(if $(filter PIC16C54,$(CPUS)),1,0) -CPUDEFS += -DHAS_PIC16C55=$(if $(filter PIC16C55,$(CPUS)),1,0) -CPUDEFS += -DHAS_PIC16C56=$(if $(filter PIC16C56,$(CPUS)),1,0) -CPUDEFS += -DHAS_PIC16C57=$(if $(filter PIC16C57,$(CPUS)),1,0) -CPUDEFS += -DHAS_PIC16C58=$(if $(filter PIC16C58,$(CPUS)),1,0) - -ifneq ($(filter PIC16C54 PIC16C55 PIC16C56 PIC16C57 PIC16C58,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/pic16c5x -CPUOBJS += $(OBJ)/cpu/pic16c5x/pic16c5x.o -DBGOBJS += $(OBJ)/cpu/pic16c5x/16c5xdsm.o -$(OBJ)/cpu/pic16c5x/pic16c5x.o: pic16c5x.c pic16c5x.h -endif - - - -#------------------------------------------------- -# MIPS R3000 (MIPS I/II) series -#------------------------------------------------- - -CPUDEFS += -DHAS_R3000=$(if $(filter R3000,$(CPUS)),1,0) - -ifneq ($(filter R3000,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/r3000 -CPUOBJS += $(OBJ)/cpu/mips/r3000.o -DBGOBJS += $(OBJ)/cpu/mips/r3kdasm.o -$(OBJ)/cpu/mips/r3000.o: r3000.c r3000.h -endif - - - -#------------------------------------------------- -# MIPS R4000 (MIPS III/IV) series -#------------------------------------------------- - -CPUDEFS += -DHAS_R4600=$(if $(filter R4600,$(CPUS)),1,0) -CPUDEFS += -DHAS_R4650=$(if $(filter R4650,$(CPUS)),1,0) -CPUDEFS += -DHAS_R4700=$(if $(filter R4700,$(CPUS)),1,0) -CPUDEFS += -DHAS_R5000=$(if $(filter R5000,$(CPUS)),1,0) -CPUDEFS += -DHAS_QED5271=$(if $(filter QED5271,$(CPUS)),1,0) -CPUDEFS += -DHAS_RM7000=$(if $(filter RM7000,$(CPUS)),1,0) - -ifneq ($(filter R4600 R4650 R4700 R5000 QED5271 RM7000,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/mips -ifdef X86_MIPS3_DRC -CPUOBJS += $(OBJ)/cpu/mips/mips3drc.o -$(OBJ)/cpu/mips/mips3drc.o: mips3drc.c mdrcold.c mips3.h -else -CPUOBJS += $(OBJ)/cpu/mips/mips3.o -$(OBJ)/cpu/mips/mips3.o: mips3.c mips3.h -endif -DBGOBJS += $(OBJ)/cpu/mips/mips3dsm.o -endif - - - -#------------------------------------------------- -# Mitsubishi M37702 and M37710 (based on 65C816) -#------------------------------------------------- - -CPUDEFS += -DHAS_M37702=$(if $(filter M37702,$(CPUS)),1,0) -CPUDEFS += -DHAS_M37710=$(if $(filter M37710,$(CPUS)),1,0) - -ifneq ($(filter M37702 M37710,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m37710 -CPUOBJS += $(OBJ)/cpu/m37710/m37710.o -CPUOBJS += $(OBJ)/cpu/m37710/m37710o0.o -CPUOBJS += $(OBJ)/cpu/m37710/m37710o1.o -CPUOBJS += $(OBJ)/cpu/m37710/m37710o2.o -CPUOBJS += $(OBJ)/cpu/m37710/m37710o3.o -CPUOBJS += $(OBJ)/cpu/m37710/m7700ds.o -$(OBJ)/cpu/m37710/m37710.o: m37710.c m37710.h m37710o0.c m37710o1.c m37710o2.c m37710o3.c m37710op.h m7700ds.h -$(OBJ)/cpu/m37710/m37710o0.o: m37710.h m37710o0.c m37710op.h m7700ds.h -$(OBJ)/cpu/m37710/m37710o1.o: m37710.h m37710o1.c m37710op.h m7700ds.h -$(OBJ)/cpu/m37710/m37710o2.o: m37710.h m37710o2.c m37710op.h m7700ds.h -$(OBJ)/cpu/m37710/m37710o3.o: m37710.h m37710o3.c m37710op.h m7700ds.h -$(OBJ)/cpu/m37710/m7700ds.o: m7700ds.c m7700ds.h -endif - - - -#------------------------------------------------- -# Mostek 6502 and its many derivatives -#------------------------------------------------- - -CPUDEFS += -DHAS_M6502=$(if $(filter M6502,$(CPUS)),1,0) -CPUDEFS += -DHAS_M65C02=$(if $(filter M65C02,$(CPUS)),1,0) -CPUDEFS += -DHAS_M65SC02=$(if $(filter M65SC02,$(CPUS)),1,0) -CPUDEFS += -DHAS_M65CE02=$(if $(filter M65CE02,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6509=$(if $(filter M6509,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6510=$(if $(filter M6510 M6510T M7501 M8502,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6510T=$(if $(filter M6510T,$(CPUS)),1,0) -CPUDEFS += -DHAS_M7501=$(if $(filter M7501,$(CPUS)),1,0) -CPUDEFS += -DHAS_M8502=$(if $(filter M8502,$(CPUS)),1,0) -CPUDEFS += -DHAS_N2A03=$(if $(filter N2A03,$(CPUS)),1,0) -CPUDEFS += -DHAS_DECO16=$(if $(filter DECO16,$(CPUS)),1,0) -CPUDEFS += -DHAS_M4510=$(if $(filter M4510,$(CPUS)),1,0) - -ifneq ($(filter M6502 M65C02 M65SC02 M6510 M6510T M7501 M8502 N2A03 DECO16,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6502 -CPUOBJS += $(OBJ)/cpu/m6502/m6502.o -DBGOBJS += $(OBJ)/cpu/m6502/6502dasm.o -$(OBJ)/cpu/m6502/m6502.o: m6502.c m6502.h ops02.h t6502.c t65c02.c t65sc02.c t6510.c tdeco16.c -endif - -ifneq ($(filter M65CE02,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6502 -CPUOBJS += $(OBJ)/cpu/m6502/m65ce02.o -DBGOBJS += $(OBJ)/cpu/m6502/6502dasm.o -$(OBJ)/cpu/m6502/m65ce02.o: m65ce02.c m65ce02.h opsce02.h t65ce02.c -endif - -ifneq ($(filter M6509,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6502 -CPUOBJS += $(OBJ)/cpu/m6502/m6509.o -DBGOBJS += $(OBJ)/cpu/m6502/6502dasm.o -$(OBJ)/cpu/m6502/m6509.o: m6509.c m6509.h ops09.h t6509.c -endif - -ifneq ($(filter M4510,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6502 -CPUOBJS += $(OBJ)/cpu/m6502/m4510.o -DBGOBJS += $(OBJ)/cpu/m6502/6502dasm.o -endif - - - -#------------------------------------------------- -# Motorola 680x -#------------------------------------------------- - -CPUDEFS += -DHAS_M6800=$(if $(filter M6800,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6801=$(if $(filter M6801,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6802=$(if $(filter M6802,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6803=$(if $(filter M6803,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6808=$(if $(filter M6808,$(CPUS)),1,0) -CPUDEFS += -DHAS_HD63701=$(if $(filter HD63701,$(CPUS)),1,0) -CPUDEFS += -DHAS_NSC8105=$(if $(filter NSC8105,$(CPUS)),1,0) - -ifneq ($(filter M6800 M6801 M6802 M6803 M6808 HD63701 NSC8105,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6800 -CPUOBJS += $(OBJ)/cpu/m6800/m6800.o -DBGOBJS += $(OBJ)/cpu/m6800/6800dasm.o -$(OBJ)/cpu/m6800/m6800.o: m6800.c m6800.h 6800ops.c 6800tbl.c -endif - - - -#------------------------------------------------- -# Motorola 6805 -#------------------------------------------------- - -CPUDEFS += -DHAS_M6805=$(if $(filter M6805,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68705=$(if $(filter M68705,$(CPUS)),1,0) -CPUDEFS += -DHAS_HD63705=$(if $(filter HD63705,$(CPUS)),1,0) - -ifneq ($(filter M6805 M68705 HD63705,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6805 -CPUOBJS += $(OBJ)/cpu/m6805/m6805.o -DBGOBJS += $(OBJ)/cpu/m6805/6805dasm.o -$(OBJ)/cpu/m6805/m6805.o: m6805.c m6805.h 6805ops.c -endif - - - -#------------------------------------------------- -# Motorola 6809 -#------------------------------------------------- - -CPUDEFS += -DHAS_M6809=$(if $(filter M6809,$(CPUS)),1,0) -CPUDEFS += -DHAS_M6809E=$(if $(filter M6809E,$(CPUS)),1,0) - -ifneq ($(filter M6809 M6809E,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m6809 -CPUOBJS += $(OBJ)/cpu/m6809/m6809.o -DBGOBJS += $(OBJ)/cpu/m6809/6809dasm.o -$(OBJ)/cpu/m6809/m6809.o: m6809.c m6809.h 6809ops.c 6809tbl.c -endif - - - -#------------------------------------------------- -# Motorola 68HC11 -#------------------------------------------------- - -CPUDEFS += -DHAS_MC68HC11=$(if $(filter MC68HC11,$(CPUS)),1,0) - -ifneq ($(filter MC68HC11,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/mc68hc11 -CPUOBJS += $(OBJ)/cpu/mc68hc11/mc68hc11.o -DBGOBJS += $(OBJ)/cpu/mc68hc11/hc11dasm.o -$(OBJ)/cpu/mc68hc11/mc68hc11.o: mc68hc11.c hc11dasm.c -endif - - - -#------------------------------------------------- -# Motorola 68000 series -#------------------------------------------------- - -CPUDEFS += -DHAS_M68000=$(if $(filter M68000,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68008=$(if $(filter M68008,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68010=$(if $(filter M68010,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68EC020=$(if $(filter M68EC020,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68020=$(if $(filter M68020,$(CPUS)),1,0) -CPUDEFS += -DHAS_M68040=$(if $(filter M68040,$(CPUS)),1,0) - -ifneq ($(filter M68000 M68008 M68010 M68EC020 M68020 M68040,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/m68000 -CPUOBJS += $(OBJ)/cpu/m68000/m68kcpu.o $(OBJ)/cpu/m68000/m68kmame.o $(OBJ)/cpu/m68000/m68kops.o -DBGOBJS += $(OBJ)/cpu/m68000/m68kdasm.o - -# when we compile source files we need to include generated files from the OBJ directory -$(OBJ)/cpu/m68000/%.o: src/cpu/m68000/%.c - @echo Compiling $<... - $(CC) $(CDEFS) $(CFLAGS) -I$(OBJ)/cpu/m68000 -c $< -o $@ - -# when we compile generated files we need to include stuff from the src directory -$(OBJ)/cpu/m68000/%.o: $(OBJ)/cpu/m68000/%.c - @echo Compiling $<... - $(CC) $(CDEFS) $(CFLAGS) -Isrc/cpu/m68000 -c $< -o $@ - -# rule to generate the C files -$(OBJ)/cpu/m68000/m68kops.c: $(OBJ)/cpu/m68000/m68kmake$(EXE) m68k_in.c - @echo Generating M68K source files... - $(OBJ)/cpu/m68000/m68kmake$(EXE) $(OBJ)/cpu/m68000 src/cpu/m68000/m68k_in.c - -# rule to build the generator -$(OBJ)/cpu/m68000/m68kmake$(EXE): $(OBJ)/cpu/m68000/m68kmake.o $(OSDCORELIB) - @echo Linking $@... - $(LD) $(LDFLAGS) $(OSDBGLDFLAGS) $^ $(LIBS) -o $@ - -# rule to ensure we build the header before building the core CPU file -$(OBJ)/cpu/m68000/m68kcpu.o: $(OBJ)/cpu/m68000/m68kops.c - -endif - - - -#------------------------------------------------- -# Motorola/Freescale dsp56k -#------------------------------------------------- - -CPUDEFS += -DHAS_DSP56156=$(if $(filter DSP56156,$(CPUS)),1,0) - -ifneq ($(filter DSP56156,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/dsp56k -CPUOBJS += $(OBJ)/cpu/dsp56k/dsp56k.o -DBGOBJS += $(OBJ)/cpu/dsp56k/dsp56dsm.o -$(OBJ)/cpu/dsp56k/dsp56k.o: dsp56k.c dsp56ops.c dsp56k.h -endif - - - -#------------------------------------------------- -# PDP-1 -#------------------------------------------------- - -ifneq ($(filter PDP1,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/pdp1 -CPUDEFS += -DHAS_PDP1=1 -CPUOBJS += $(OBJ)/cpu/pdp1/pdp1.o -DBGOBJS += $(OBJ)/cpu/pdp1/pdp1dasm.o -$(OBJ)/cpu/pdp1/pdp1.o: pdp1.c pdp1.h -else -CPUDEFS += -DHAS_PDP1=0 -endif - - - -#------------------------------------------------- -# Motorola PowerPC series -#------------------------------------------------- - -CPUDEFS += -DHAS_PPC403=$(if $(filter PPC403,$(CPUS)),1,0) -CPUDEFS += -DHAS_PPC602=$(if $(filter PPC602,$(CPUS)),1,0) -CPUDEFS += -DHAS_PPC603=$(if $(filter PPC603,$(CPUS)),1,0) - -ifneq ($(filter PPC403 PPC602 PPC603,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/powerpc -ifdef X86_PPC_DRC -CPUOBJS += $(OBJ)/cpu/powerpc/ppcdrc.o -$(OBJ)/cpu/powerpc/ppcdrc.o: ppcdrc.c ppc.h drc_ops.c drc_ops.h ppc_ops.c ppc_mem.c ppc403.c ppc602.c ppc603.c -else -CPUOBJS += $(OBJ)/cpu/powerpc/ppc.o -$(OBJ)/cpu/powerpc/ppc.o: ppc.c ppc.h ppc_ops.c ppc_ops.c ppc_mem.c ppc403.c ppc602.c ppc603.c -endif -DBGOBJS += $(OBJ)/cpu/powerpc/ppc_dasm.o -endif - - - -#------------------------------------------------- -# NEC V-series Intel-compatible -#------------------------------------------------- - -CPUDEFS += -DHAS_V20=$(if $(filter V20,$(CPUS)),1,0) -CPUDEFS += -DHAS_V30=$(if $(filter V30,$(CPUS)),1,0) -CPUDEFS += -DHAS_V33=$(if $(filter V33,$(CPUS)),1,0) - -ifneq ($(filter V20 V30 V33,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/nec -CPUOBJS += $(OBJ)/cpu/nec/nec.o -DBGOBJS += $(OBJ)/cpu/i386/i386dasm.o -$(OBJ)/cpu/nec/nec.o: nec.c nec.h necintrf.h necea.h nechost.h necinstr.h necmodrm.h -endif - - - -#------------------------------------------------- -# NEC V60/V70 -#------------------------------------------------- - -CPUDEFS += -DHAS_V60=$(if $(filter V60,$(CPUS)),1,0) -CPUDEFS += -DHAS_V70=$(if $(filter V70,$(CPUS)),1,0) - -ifneq ($(filter V60 V70,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/v60 -CPUOBJS += $(OBJ)/cpu/v60/v60.o -DBGOBJS += $(OBJ)/cpu/v60/v60d.o -$(OBJ)/cpu/v60/v60.o: am.c am1.c am2.c am3.c op12.c op2.c op3.c op4.c op5.c op6.c op7a.c optable.c v60.c v60.h v60d.c -endif - - - -#------------------------------------------------- -# NEC V810 (uPD70732) -#------------------------------------------------- - -CPUDEFS += -DHAS_V810=$(if $(filter V810,$(CPUS)),1,0) - -ifneq ($(filter V810,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/v810 -CPUOBJS += $(OBJ)/cpu/v810/v810.o -DBGOBJS += $(OBJ)/cpu/v810/v810dasm.o -$(OBJ)/cpu/v810/v810.o: v810.c v810.h -endif - - - -#------------------------------------------------- -# NEC uPD7810 series -#------------------------------------------------- - -CPUDEFS += -DHAS_UPD7810=$(if $(filter UPD7810,$(CPUS)),1,0) -CPUDEFS += -DHAS_UPD7807=$(if $(filter UPD7807,$(CPUS)),1,0) - -ifneq ($(filter UPD7810 UPD7807,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/upd7810 -CPUOBJS += $(OBJ)/cpu/upd7810/upd7810.o -DBGOBJS += $(OBJ)/cpu/upd7810/7810dasm.o -$(OBJ)/cpu/upd7810/upd7810.o: upd7810.c 7810tbl.c 7810ops.c upd7810.h -endif - - - -#------------------------------------------------- -# Nintendo/SGI RSP (R3000-based + vector processing) -#------------------------------------------------- - -CPUDEFS += -DHAS_RSP=$(if $(filter RSP,$(CPUS)),1,0) - -ifneq ($(filter RSP,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/rsp -CPUOBJS += $(OBJ)/cpu/rsp/rsp.o -DBGOBJS += $(OBJ)/cpu/rsp/rsp_dasm.o -$(OBJ)/cpu/rsp/rsp.o: rsp.c rsp.h -endif - - - -#------------------------------------------------- -# Saturn -#------------------------------------------------- - -ifneq ($(filter SATURN,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/saturn -CPUDEFS += -DHAS_SATURN=1 -CPUOBJS += $(OBJ)/cpu/saturn/saturn.o -DBGOBJS += $(OBJ)/cpu/saturn/saturnds.o -$(OBJ)/cpu/saturn/saturn.o: saturn.c sattable.c satops.c saturn.h sat.h -else -CPUDEFS += -DHAS_SATURN=0 -endif - - - -#------------------------------------------------- -# Signetics 2650 -#------------------------------------------------- - -CPUDEFS += -DHAS_S2650=$(if $(filter S2650,$(CPUS)),1,0) - -ifneq ($(filter S2650,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/s2650 -CPUOBJS += $(OBJ)/cpu/s2650/s2650.o -DBGOBJS += $(OBJ)/cpu/s2650/2650dasm.o -$(OBJ)/cpu/s2650/s2650.o: s2650.c s2650.h s2650cpu.h -endif - - - -#------------------------------------------------- -# SC61860 -#------------------------------------------------- - -ifneq ($(filter SC61860,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/sc61860 -CPUDEFS += -DHAS_SC61860=1 -CPUOBJS += $(OBJ)/cpu/sc61860/sc61860.o -DBGOBJS += $(OBJ)/cpu/sc61860/scdasm.o -$(OBJ)/cpu/sc61860/sc61860.o: sc61860.h sc.h scops.c sctable.c -else -CPUDEFS += -DHAS_SC61860=0 -endif - - - -#------------------------------------------------- -# SM8500 -#------------------------------------------------- - -ifneq ($(filter SM8500,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/sm8500 -CPUDEFS += -DHAS_SM8500=1 -CPUOBJS += $(OBJ)/cpu/sm8500/sm8500.o -DBGOBJS += $(OBJ)/cpu/sm8500/sm8500d.o -$(OBJ)/cpu/sm8500/sm8500.o: sm8500.c sm8500.h sm85ops.h -else -CPUDEFS += -DHAS_SM8500=0 -endif - - - -#------------------------------------------------- -# Sony/Nintendo SPC700 -#------------------------------------------------- - -CPUDEFS += -DHAS_SPC700=$(if $(filter SPC700,$(CPUS)),1,0) - -ifneq ($(filter SPC700,$(CPUS)),) -SPCD = cpu/spc700 -OBJDIRS += $(OBJ)/cpu/spc700 -CPUOBJS += $(OBJ)/cpu/spc700/spc700.o -DBGOBJS += $(OBJ)/cpu/spc700/spc700ds.o -$(OBJ)/cpu/spc700/spc700.o: spc700.c spc700.h -endif - - - -#------------------------------------------------- -# Sony PlayStation CPU (R3000-based + GTE) -#------------------------------------------------- - -CPUDEFS += -DHAS_PSXCPU=$(if $(filter PSXCPU,$(CPUS)),1,0) - -ifneq ($(filter PSXCPU,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/mips -CPUOBJS += $(OBJ)/cpu/mips/psx.o -DBGOBJS += $(OBJ)/cpu/mips/mipsdasm.o -$(OBJ)/cpu/mips/psx.o: psx.c psx.h -endif - - - -#------------------------------------------------- -# Texas Instruments TMS7000 series -#------------------------------------------------- - -ifneq ($(filter TMS7000,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms7000 -CPUDEFS += -DHAS_TMS7000=1 -CPUOBJS += $(OBJ)/cpu/tms7000/tms7000.o -DBGOBJS += $(OBJ)/cpu/tms7000/7000dasm.o -$(OBJ)/cpu/tms7000/tms7000.o: tms7000.h tms7000.c -$(OBJ)/cpu/tms7000/7000dasm.o: tms7000.h 7000dasm.c -else -CPUDEFS += -DHAS_TMS7000=0 -endif - -ifneq ($(filter TMS7000_EXL,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms7000 -CPUDEFS += -DHAS_TMS7000_EXL=1 -CPUOBJS += $(OBJ)/cpu/tms7000/tms7000.o -DBGOBJS += $(OBJ)/cpu/tms7000/7000dasm.o -$(OBJ)/cpu/tms7000/tms7000.o: tms7000.h tms7000.c -$(OBJ)/cpu/tms7000/7000dasm.o: tms7000.h 7000dasm.c -else -CPUDEFS += -DHAS_TMS7000_EXL=0 -endif - - - -#------------------------------------------------- -# Texas Instruments TMS99xx series -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS9900=$(if $(filter TMS9900,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS9940=$(if $(filter TMS9940,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS9980=$(if $(filter TMS9980,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS9985=$(if $(filter TMS9985,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS9989=$(if $(filter TMS9989,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS9995=$(if $(filter TMS9995,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS99105A=$(if $(filter TMS99105A,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS99110A=$(if $(filter TMS99110A,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS99000=$(if $(filter TMS99000,$(CPUS)),1,0) -CPUDEFS += -DHAS_TI990_10=$(if $(filter TMS99010,$(CPUS)),1,0) - -ifneq ($(filter TMS9900 TMS9940 TMS99000,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms9900 -CPUOBJS += $(OBJ)/cpu/tms9900/tms9900.o -DBGOBJS += $(OBJ)/cpu/tms9900/9900dasm.o -$(OBJ)/cpu/tms9900/tms9900.o: tms9900.c tms9900.h 99xxcore.h 9900stat.h -endif - -ifneq ($(filter TMS9980 TMS9985 TMS9989,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms9900 -CPUOBJS += $(OBJ)/cpu/tms9900/tms9980a.o -DBGOBJS += $(OBJ)/cpu/tms9900/9900dasm.o -$(OBJ)/cpu/tms9900/tms9980a.o: tms9980a.c tms9900.h 99xxcore.h 99xxstat.h -endif - -ifneq ($(filter TMS9995 TMS99105A TMS99110A,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms9900 -CPUOBJS += $(OBJ)/cpu/tms9900/tms9995.o -DBGOBJS += $(OBJ)/cpu/tms9900/9900dasm.o -$(OBJ)/cpu/tms9900/tms9995.o: tms9995.c tms9900.h 99xxcore.h 99xxstat.h -endif - -ifneq ($(filter TMS99010,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms9900 -CPUOBJS += $(OBJ)/cpu/tms9900/ti990_10.o -DBGOBJS += $(OBJ)/cpu/tms9900/9900dasm.o -$(OBJ)/cpu/tms9900/ti990_10.o: ti990_10.c tms9900.h 99xxcore.h 99xxstat.h -endif - - - -#------------------------------------------------- -# Texas Instruments TMS340x0 graphics controllers -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS34010=$(if $(filter TMS34010,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS34020=$(if $(filter TMS34020,$(CPUS)),1,0) - -ifneq ($(filter TMS34010 TMS34020,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms34010 -CPUOBJS += $(OBJ)/cpu/tms34010/tms34010.o $(OBJ)/cpu/tms34010/34010fld.o -DBGOBJS += $(OBJ)/cpu/tms34010/34010dsm.o -$(OBJ)/cpu/tms34010/tms34010.o: tms34010.c tms34010.h 34010ops.c 34010gfx.c 34010tbl.c -endif - - - -#------------------------------------------------- -# Texas Instruments TMS3201x DSP -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS32010=$(if $(filter TMS32010,$(CPUS)),1,0) - -ifneq ($(filter TMS32010,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms32010 -CPUOBJS += $(OBJ)/cpu/tms32010/tms32010.o -DBGOBJS += $(OBJ)/cpu/tms32010/32010dsm.o -$(OBJ)/cpu/tms32010/tms32010.o: tms32010.c tms32010.h -endif - - - -#------------------------------------------------- -# Texas Instruments TMS3202x DSP -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS32025=$(if $(filter TMS32025,$(CPUS)),1,0) -CPUDEFS += -DHAS_TMS32026=$(if $(filter TMS32026,$(CPUS)),1,0) - -ifneq ($(filter TMS32025 TMS32026,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms32025 -CPUOBJS += $(OBJ)/cpu/tms32025/tms32025.o -DBGOBJS += $(OBJ)/cpu/tms32025/32025dsm.o -$(OBJ)/cpu/tms32025/tms32025.o: tms32025.c tms32025.h -endif - - - -#------------------------------------------------- -# Texas Instruments TMS3203x DSP -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS32031=$(if $(filter TMS32031,$(CPUS)),1,0) - -ifneq ($(filter TMS32031,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms32031 -CPUOBJS += $(OBJ)/cpu/tms32031/tms32031.o -DBGOBJS += $(OBJ)/cpu/tms32031/dis32031.o -$(OBJ)/cpu/tms32031/tms32031.o: tms32031.c tms32031.h 32031ops.c -endif - - - -#------------------------------------------------- -# Texas Instruments TMS3205x DSP -#------------------------------------------------- - -CPUDEFS += -DHAS_TMS32051=$(if $(filter TMS32051,$(CPUS)),1,0) - -ifneq ($(filter TMS32051,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tms32051 -CPUOBJS += $(OBJ)/cpu/tms32051/tms32051.o -DBGOBJS += $(OBJ)/cpu/tms32051/dis32051.o -$(OBJ)/cpu/tms32051/tms32051.o: tms32051.c tms32051.h -endif - - - -#------------------------------------------------- -# Toshiba TLCS-90 Series -#------------------------------------------------- - -CPUDEFS += -DHAS_TLCS90=$(if $(filter TLCS90,$(CPUS)),1,0) -ifneq ($(filter TLCS90,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/tlcs90 -CPUOBJS += $(OBJ)/cpu/tlcs90/tlcs90.o -#DBGOBJS += $(OBJ)/cpu/tlcs90/tlcs90.o -$(OBJ)/cpu/tlcs90/tlcs90.o: tlcs90.c tlcs90.h -endif - - - -#------------------------------------------------- -# TX0 -#------------------------------------------------- - -ifneq ($(filter TX0,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/pdp1 -CPUDEFS += -DHAS_TX0_64KW=1 -DHAS_TX0_8KW=1 -CPUOBJS += $(OBJ)/cpu/pdp1/tx0.o -DBGOBJS += $(OBJ)/cpu/pdp1/tx0dasm.o -$(OBJ)/cpu/pdp1/tx0.o: tx0.h tx0.c -$(OBJ)/cpu/pdp1/tx0dasm.o: tx0.h tx0dasm.c -else -CPUDEFS += -DHAS_TX0_64KW=0 -DHAS_TX0_8KW=0 -endif - - - -#------------------------------------------------- -# V30MZ -#------------------------------------------------- - -ifneq ($(filter V30MZ,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/v30mz -CPUDEFS += -DHAS_V30MZ=1 -CPUOBJS += $(OBJ)/cpu/v30mz/v30mz.o -DBGOBJS += $(OBJ)/cpu/i386/i386dasm.o -$(OBJ)/cpu/v30mz/v30mz.o: v30mz.c v30mz.h necmodrm.h necinstr.h necea.h nechost.h necintrf.h -else -CPUDEFS += -DHAS_V30MZ=0 -endif - - - -#------------------------------------------------- -# Zilog Z80 -#------------------------------------------------- - -CPUDEFS += -DHAS_Z80=$(if $(filter Z80,$(CPUS)),1,0) - -ifneq ($(filter Z80,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/z80 -CPUOBJS += $(OBJ)/cpu/z80/z80.o $(OBJ)/cpu/z80/z80daisy.o -DBGOBJS += $(OBJ)/cpu/z80/z80dasm.o -$(OBJ)/cpu/z80/z80.o: z80.c z80.h -endif - - - -#------------------------------------------------- -# Zilog Z180 -#------------------------------------------------- - -CPUDEFS += -DHAS_Z180=$(if $(filter Z180,$(CPUS)),1,0) - -ifneq ($(filter Z180,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/z180 -CPUOBJS += $(OBJ)/cpu/z180/z180.o $(OBJ)/cpu/z80/z80daisy.o -DBGOBJS += $(OBJ)/cpu/z180/z180dasm.o -$(OBJ)/cpu/z180/z180.o: z180.c z180.h z180daa.h z180op.c z180ops.h z180tbl.h z180cb.c z180dd.c z180ed.c z180fd.c z180xy.c -endif - - - -#------------------------------------------------- -# Zilog Z8000 -#------------------------------------------------- - -CPUDEFS += -DHAS_Z8000=$(if $(filter Z8000,$(CPUS)),1,0) -ifneq ($(filter Z8000,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/z8000 -CPUOBJS += $(OBJ)/cpu/z8000/z8000.o -DBGOBJS += $(OBJ)/cpu/z8000/8000dasm.o -$(OBJ)/cpu/z8000/z8000.o: z8000.c z8000.h z8000cpu.h z8000dab.h z8000ops.c z8000tbl.c -endif - - - -#------------------------------------------------- -# Game Boy Z-80 -#------------------------------------------------- - -ifneq ($(filter Z80GB,$(CPUS)),) -OBJDIRS += $(OBJ)/cpu/z80gb -CPUDEFS += -DHAS_Z80GB=1 -CPUOBJS += $(OBJ)/cpu/z80gb/z80gb.o -DBGOBJS += $(OBJ)/cpu/z80gb/z80gbd.o -$(OBJ)/cpu/z80gb/z80gb.o: z80gb.c z80gb.h daa_tab.h opc_cb.h opc_main.h -else -CPUDEFS += -DHAS_Z80GB=0 -endif diff --git a/src/cpu/mips/psx.c b/src/cpu/mips/psx.c deleted file mode 100644 index e1a3e9a48..000000000 --- a/src/cpu/mips/psx.c +++ /dev/null @@ -1,3646 +0,0 @@ -/* - * Sony CXD8530AQ/CXD8530BQ/CXD8530CQ/CXD8661R - * - * PSX CPU emulator for the MAME project written by smf - * Thanks to Farfetch'd for information on the delay slot bug - * - * The PSX CPU is a custom r3000a with a built in - * geometry transform engine, no mmu & no data cache. - * - * There is a stall circuit for load delays, but - * it doesn't work if the load occurs in a branch - * delay slot. - * - */ - -#include "ui.h" -#include "debugger.h" -#include "psx.h" - -#define LOG_BIOSCALL ( 0 ) - -#define EXC_INT ( 0 ) -#define EXC_ADEL ( 4 ) -#define EXC_ADES ( 5 ) -#define EXC_SYS ( 8 ) -#define EXC_BP ( 9 ) -#define EXC_RI ( 10 ) -#define EXC_CPU ( 11 ) -#define EXC_OVF ( 12 ) - -#define CP0_RANDOM ( 1 ) -#define CP0_BADVADDR ( 8 ) -#define CP0_SR ( 12 ) -#define CP0_CAUSE ( 13 ) -#define CP0_EPC ( 14 ) -#define CP0_PRID ( 15 ) - -#define SR_IEC ( 1L << 0 ) -#define SR_KUC ( 1L << 1 ) -#define SR_ISC ( 1L << 16 ) -#define SR_SWC ( 1L << 17 ) -#define SR_TS ( 1L << 21 ) -#define SR_BEV ( 1L << 22 ) -#define SR_RE ( 1L << 25 ) -#define SR_CU0 ( 1L << 28 ) -#define SR_CU1 ( 1L << 29 ) -#define SR_CU2 ( 1L << 30 ) -#define SR_CU3 ( 1L << 31 ) - -#define CAUSE_EXC ( 31L << 2 ) -#define CAUSE_IP ( 255L << 8 ) -#define CAUSE_IP2 ( 1L << 10 ) -#define CAUSE_IP3 ( 1L << 11 ) -#define CAUSE_IP4 ( 1L << 12 ) -#define CAUSE_IP5 ( 1L << 13 ) -#define CAUSE_IP6 ( 1L << 14 ) -#define CAUSE_IP7 ( 1L << 15 ) -#define CAUSE_CE ( 3L << 28 ) -#define CAUSE_CE0 ( 0L << 28 ) -#define CAUSE_CE1 ( 1L << 28 ) -#define CAUSE_CE2 ( 2L << 28 ) -#define CAUSE_BD ( 1L << 31 ) - -static const char *delayn[] = -{ - "pc", "at", "v0", "v1", "a0", "a1", "a2", "a3", - "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", - "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", - "t8", "t9", "k0", "k1", "gp", "sp", "fp", "ra", - "pc" -}; - -#define REGPC ( 32 ) - -typedef struct -{ - UINT32 op; - UINT32 pc; - UINT32 delayv; - UINT32 delayr; - UINT32 hi; - UINT32 lo; - UINT32 r[ 32 ]; - UINT32 cp0r[ 32 ]; - PAIR cp2cr[ 32 ]; - PAIR cp2dr[ 32 ]; - int (*irq_callback)(int irqline); -} mips_cpu_context; - -static mips_cpu_context mipscpu; - -static int mips_ICount = 0; - -static UINT32 mips_mtc0_writemask[]= -{ - 0xffffffff, /* INDEX */ - 0x00000000, /* RANDOM */ - 0xffffff00, /* ENTRYLO */ - 0x00000000, - 0xffe00000, /* CONTEXT */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, /* BADVADDR */ - 0x00000000, - 0xffffffc0, /* ENTRYHI */ - 0x00000000, - 0xf27fff3f, /* SR */ - 0x00000300, /* CAUSE */ - 0x00000000, /* EPC */ - 0x00000000, /* PRID */ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000 -}; - -#if 0 -void GTELOG(const char *a,...) -{ - va_list va; - char s_text[ 1024 ]; - va_start( va, a ); - vsprintf( s_text, a, va ); - va_end( va ); - logerror( "%08x: GTE: %08x %s\n", mipscpu.pc, INS_COFUN( mipscpu.op ), s_text ); -} -#else -INLINE void GTELOG(const char *a, ...) {} -#endif - -static UINT32 getcp2dr( int n_reg ); -static void setcp2dr( int n_reg, UINT32 n_value ); -static UINT32 getcp2cr( int n_reg ); -static void setcp2cr( int n_reg, UINT32 n_value ); -static void docop2( int gteop ); -static void mips_exception( int exception ); - -static void mips_stop( void ) -{ -#ifdef MAME_DEBUG - DEBUGGER_BREAK; - CALL_MAME_DEBUG; -#endif -} - -#if LOG_BIOSCALL - -static const struct -{ - int address; - int operation; - const char *prototype; -} bioscalls[] = -{ - { 0xa0, 0x00, "int open(const char *name, int mode)" }, - { 0xa0, 0x01, "int lseek(int fd, int offset, int whence)" }, - { 0xa0, 0x02, "int read(int fd, void *buf, int nbytes)" }, - { 0xa0, 0x03, "int write(int fd, void *buf, int nbytes)" }, - { 0xa0, 0x04, "int close(int fd)" }, - { 0xa0, 0x05, "int ioctl(int fd, int cmd, int arg)" }, - { 0xa0, 0x06, "void exit(int code)" }, - { 0xa0, 0x07, "sys_a0_07()" }, - { 0xa0, 0x08, "char getc(int fd)" }, - { 0xa0, 0x09, "void putc(char c, int fd)" }, - { 0xa0, 0x0a, "todigit()" }, - { 0xa0, 0x0b, "double atof(const char *s)" }, - { 0xa0, 0x0c, "long strtoul(const char *s, char **ptr, int base)" }, - { 0xa0, 0x0d, "unsigned long strtol(const char *s, char **ptr, int base)" }, - { 0xa0, 0x0e, "int abs(int val)" }, - { 0xa0, 0x0f, "long labs(long lval)" }, - { 0xa0, 0x10, "long atoi(const char *s)" }, - { 0xa0, 0x11, "int atol(const char *s)" }, - { 0xa0, 0x12, "atob()" }, - { 0xa0, 0x13, "int setjmp(jmp_buf *ctx)" }, - { 0xa0, 0x14, "void longjmp(jmp_buf *ctx, int value)" }, - { 0xa0, 0x15, "char *strcat(char *dst, const char *src)" }, - { 0xa0, 0x16, "char *strncat(char *dst, const char *src, size_t n)" }, - { 0xa0, 0x17, "int strcmp(const char *dst, const char *src)" }, - { 0xa0, 0x18, "int strncmp(const char *dst, const char *src, size_t n)" }, - { 0xa0, 0x19, "char *strcpy(char *dst, const char *src)" }, - { 0xa0, 0x1a, "char *strncpy(char *dst, const char *src, size_t n)" }, - { 0xa0, 0x1b, "size_t strlen(const char *s)" }, - { 0xa0, 0x1c, "int index(const char *s, int c)" }, - { 0xa0, 0x1d, "int rindex(const char *s, int c)" }, - { 0xa0, 0x1e, "char *strchr(const char *s, int c)" }, - { 0xa0, 0x1f, "char *strrchr(const char *s, int c)" }, - { 0xa0, 0x20, "char *strpbrk(const char *dst, const char *src)" }, - { 0xa0, 0x21, "size_t strspn(const char *s, const char *set)" }, - { 0xa0, 0x22, "size_t strcspn(const char *s, const char *set)" }, - { 0xa0, 0x23, "char *strtok(char *s, const char *set)" }, - { 0xa0, 0x24, "char *strstr(const char *s, const char *set)" }, - { 0xa0, 0x25, "int toupper(int c)" }, - { 0xa0, 0x26, "int tolower(int c)" }, - { 0xa0, 0x27, "void bcopy(const void *src, void *dst, size_t len)" }, - { 0xa0, 0x28, "void bzero(void *ptr, size_t len)" }, - { 0xa0, 0x29, "int bcmp(const void *ptr1, const void *ptr2, int len)" }, - { 0xa0, 0x2a, "void *memcpy(void *dst, const void *src, size_t n)" }, - { 0xa0, 0x2b, "void *memset(void *dst, char c, size_t n)" }, - { 0xa0, 0x2c, "void *memmove(void *dst, const void *src, size_t n)" }, - { 0xa0, 0x2d, "int memcmp(const void *dst, const void *src, size_t n)" }, - { 0xa0, 0x2e, "void *memchr(const void *s, int c, size_t n)" }, - { 0xa0, 0x2f, "int rand()" }, - { 0xa0, 0x30, "void srand(unsigned int seed)" }, - { 0xa0, 0x31, "void qsort(void *base, int nel, int width, int (*cmp)(void *, void *))" }, - { 0xa0, 0x32, "double strtod(const char *s, char **endptr)" }, - { 0xa0, 0x33, "void *malloc(int size)" }, - { 0xa0, 0x34, "void free(void *buf)" }, - { 0xa0, 0x35, "void *lsearch(void *key, void *base, int belp, int width, int (*cmp)(void *, void *))" }, - { 0xa0, 0x36, "void *bsearch(void *key, void *base, int nel, int size, int (*cmp)(void *, void *))" }, - { 0xa0, 0x37, "void *calloc(int size, int n)" }, - { 0xa0, 0x38, "void *realloc(void *buf, int n)" }, - { 0xa0, 0x39, "InitHeap(void *block, int size)" }, - { 0xa0, 0x3a, "void _exit(int code)" }, - { 0xa0, 0x3b, "char getchar(void)" }, - { 0xa0, 0x3c, "void putchar(char c)" }, - { 0xa0, 0x3d, "char *gets(char *s)" }, - { 0xa0, 0x3e, "void puts(const char *s)" }, - { 0xa0, 0x3f, "int printf(const char *fmt, ...)" }, - { 0xa0, 0x40, "sys_a0_40()" }, - { 0xa0, 0x41, "int LoadTest(const char *name, struct EXEC *header)" }, - { 0xa0, 0x42, "int Load(const char *name, struct EXEC *header)" }, - { 0xa0, 0x43, "int Exec(struct EXEC *header, int argc, char **argv)" }, - { 0xa0, 0x44, "void FlushCache()" }, - { 0xa0, 0x45, "void InstallInterruptHandler()" }, - { 0xa0, 0x46, "GPU_dw(int x, int y, int w, int h, long *data)" }, - { 0xa0, 0x47, "mem2vram(int x, int y, int w, int h, long *data)" }, - { 0xa0, 0x48, "SendGPU(int status)" }, - { 0xa0, 0x49, "GPU_cw(long cw)" }, - { 0xa0, 0x4a, "GPU_cwb(long *pkt, int len)" }, - { 0xa0, 0x4b, "SendPackets(void *ptr)" }, - { 0xa0, 0x4c, "sys_a0_4c()" }, - { 0xa0, 0x4d, "int GetGPUStatus()" }, - { 0xa0, 0x4e, "GPU_sync()" }, - { 0xa0, 0x4f, "sys_a0_4f()" }, - { 0xa0, 0x50, "sys_a0_50()" }, - { 0xa0, 0x51, "int LoadExec(const char *name, int, int)" }, - { 0xa0, 0x52, "GetSysSp()" }, - { 0xa0, 0x53, "sys_a0_53()" }, - { 0xa0, 0x54, "_96_init()" }, - { 0xa0, 0x55, "_bu_init()" }, - { 0xa0, 0x56, "_96_remove()" }, - { 0xa0, 0x57, "sys_a0_57()" }, - { 0xa0, 0x58, "sys_a0_58()" }, - { 0xa0, 0x59, "sys_a0_59()" }, - { 0xa0, 0x5a, "sys_a0_5a()" }, - { 0xa0, 0x5b, "dev_tty_init()" }, - { 0xa0, 0x5c, "dev_tty_open()" }, - { 0xa0, 0x5d, "dev_tty_5d()" }, - { 0xa0, 0x5e, "dev_tty_ioctl()" }, - { 0xa0, 0x5f, "dev_cd_open()" }, - { 0xa0, 0x60, "dev_cd_read()" }, - { 0xa0, 0x61, "dev_cd_close()" }, - { 0xa0, 0x62, "dev_cd_firstfile()" }, - { 0xa0, 0x63, "dev_cd_nextfile()" }, - { 0xa0, 0x64, "dev_cd_chdir()" }, - { 0xa0, 0x65, "dev_card_open()" }, - { 0xa0, 0x66, "dev_card_read()" }, - { 0xa0, 0x67, "dev_card_write()" }, - { 0xa0, 0x68, "dev_card_close()" }, - { 0xa0, 0x69, "dev_card_firstfile()" }, - { 0xa0, 0x6a, "dev_card_nextfile()" }, - { 0xa0, 0x6b, "dev_card_erase()" }, - { 0xa0, 0x6c, "dev_card_undelete()" }, - { 0xa0, 0x6d, "dev_card_format()" }, - { 0xa0, 0x6e, "dev_card_rename()" }, - { 0xa0, 0x6f, "dev_card_6f()" }, - { 0xa0, 0x70, "_bu_init()" }, - { 0xa0, 0x71, "_96_init()" }, - { 0xa0, 0x72, "_96_remove()" }, - { 0xa0, 0x73, "sys_a0_73()" }, - { 0xa0, 0x74, "sys_a0_74()" }, - { 0xa0, 0x75, "sys_a0_75()" }, - { 0xa0, 0x76, "sys_a0_76()" }, - { 0xa0, 0x77, "sys_a0_77()" }, - { 0xa0, 0x78, "_96_CdSeekL()" }, - { 0xa0, 0x79, "sys_a0_79()" }, - { 0xa0, 0x7a, "sys_a0_7a()" }, - { 0xa0, 0x7b, "sys_a0_7b()" }, - { 0xa0, 0x7c, "_96_CdGetStatus()" }, - { 0xa0, 0x7d, "sys_a0_7d()" }, - { 0xa0, 0x7e, "_96_CdRead()" }, - { 0xa0, 0x7f, "sys_a0_7f()" }, - { 0xa0, 0x80, "sys_a0_80()" }, - { 0xa0, 0x81, "sys_a0_81()" }, - { 0xa0, 0x82, "sys_a0_82()" }, - { 0xa0, 0x83, "sys_a0_83()" }, - { 0xa0, 0x84, "sys_a0_84()" }, - { 0xa0, 0x85, "_96_CdStop()" }, - { 0xa0, 0x84, "sys_a0_84()" }, - { 0xa0, 0x85, "sys_a0_85()" }, - { 0xa0, 0x86, "sys_a0_86()" }, - { 0xa0, 0x87, "sys_a0_87()" }, - { 0xa0, 0x88, "sys_a0_88()" }, - { 0xa0, 0x89, "sys_a0_89()" }, - { 0xa0, 0x8a, "sys_a0_8a()" }, - { 0xa0, 0x8b, "sys_a0_8b()" }, - { 0xa0, 0x8c, "sys_a0_8c()" }, - { 0xa0, 0x8d, "sys_a0_8d()" }, - { 0xa0, 0x8e, "sys_a0_8e()" }, - { 0xa0, 0x8f, "sys_a0_8f()" }, - { 0xa0, 0x90, "sys_a0_90()" }, - { 0xa0, 0x91, "sys_a0_91()" }, - { 0xa0, 0x92, "sys_a0_92()" }, - { 0xa0, 0x93, "sys_a0_93()" }, - { 0xa0, 0x94, "sys_a0_94()" }, - { 0xa0, 0x95, "sys_a0_95()" }, - { 0xa0, 0x96, "AddCDROMDevice()" }, - { 0xa0, 0x97, "AddMemCardDevice()" }, - { 0xa0, 0x98, "DisableKernelIORedirection()" }, - { 0xa0, 0x99, "EnableKernelIORedirection()" }, - { 0xa0, 0x9a, "sys_a0_9a()" }, - { 0xa0, 0x9b, "sys_a0_9b()" }, - { 0xa0, 0x9c, "void SetConf(int Event, int TCB, int Stack)" }, - { 0xa0, 0x9d, "void GetConf(int *Event, int *TCB, int *Stack)" }, - { 0xa0, 0x9e, "sys_a0_9e()" }, - { 0xa0, 0x9f, "void SetMem(int size)" }, - { 0xa0, 0xa0, "_boot()" }, - { 0xa0, 0xa1, "SystemError()" }, - { 0xa0, 0xa2, "EnqueueCdIntr()" }, - { 0xa0, 0xa3, "DequeueCdIntr()" }, - { 0xa0, 0xa4, "sys_a0_a4()" }, - { 0xa0, 0xa5, "ReadSector(int count, int sector, void *buffer)" }, - { 0xa0, 0xa6, "get_cd_status()" }, - { 0xa0, 0xa7, "bufs_cb_0()" }, - { 0xa0, 0xa8, "bufs_cb_1()" }, - { 0xa0, 0xa9, "bufs_cb_2()" }, - { 0xa0, 0xaa, "bufs_cb_3()" }, - { 0xa0, 0xab, "_card_info()" }, - { 0xa0, 0xac, "_card_load()" }, - { 0xa0, 0xad, "_card_auto()" }, - { 0xa0, 0xae, "bufs_cb_4()" }, - { 0xa0, 0xaf, "sys_a0_af()" }, - { 0xa0, 0xb0, "sys_a0_b0()" }, - { 0xa0, 0xb1, "sys_a0_b1()" }, - { 0xa0, 0xb2, "do_a_long_jmp()" }, - { 0xa0, 0xb3, "sys_a0_b3()" }, - { 0xa0, 0xb4, "GetKernelInfo(int sub_function)" }, - { 0xb0, 0x00, "SysMalloc()" }, - { 0xb0, 0x01, "sys_b0_01()" }, - { 0xb0, 0x02, "sys_b0_02()" }, - { 0xb0, 0x03, "sys_b0_03()" }, - { 0xb0, 0x04, "sys_b0_04()" }, - { 0xb0, 0x05, "sys_b0_05()" }, - { 0xb0, 0x06, "sys_b0_06()" }, - { 0xb0, 0x07, "void DeliverEvent(u_long class, u_long event)" }, - { 0xb0, 0x08, "long OpenEvent(u_long class, long spec, long mode, long (*func)())" }, - { 0xb0, 0x09, "long CloseEvent(long event)" }, - { 0xb0, 0x0a, "long WaitEvent(long event)" }, - { 0xb0, 0x0b, "long TestEvent(long event)" }, - { 0xb0, 0x0c, "long EnableEvent(long event)" }, - { 0xb0, 0x0d, "long DisableEvent(long event)" }, - { 0xb0, 0x0e, "OpenTh()" }, - { 0xb0, 0x0f, "CloseTh()" }, - { 0xb0, 0x10, "ChangeTh()" }, - { 0xb0, 0x11, "sys_b0_11()" }, - { 0xb0, 0x12, "int InitPAD(char *buf1, int len1, char *buf2, int len2)" }, - { 0xb0, 0x13, "int StartPAD(void)" }, - { 0xb0, 0x14, "int StopPAD(void)" }, - { 0xb0, 0x15, "PAD_init(u_long nazo, u_long *pad_buf)" }, - { 0xb0, 0x16, "u_long PAD_dr()" }, - { 0xb0, 0x17, "void ReturnFromException(void)" }, - { 0xb0, 0x18, "ResetEntryInt()" }, - { 0xb0, 0x19, "HookEntryInt()" }, - { 0xb0, 0x1a, "sys_b0_1a()" }, - { 0xb0, 0x1b, "sys_b0_1b()" }, - { 0xb0, 0x1c, "sys_b0_1c()" }, - { 0xb0, 0x1d, "sys_b0_1d()" }, - { 0xb0, 0x1e, "sys_b0_1e()" }, - { 0xb0, 0x1f, "sys_b0_1f()" }, - { 0xb0, 0x20, "UnDeliverEvent(int class, int event)" }, - { 0xb0, 0x21, "sys_b0_21()" }, - { 0xb0, 0x22, "sys_b0_22()" }, - { 0xb0, 0x23, "sys_b0_23()" }, - { 0xb0, 0x24, "sys_b0_24()" }, - { 0xb0, 0x25, "sys_b0_25()" }, - { 0xb0, 0x26, "sys_b0_26()" }, - { 0xb0, 0x27, "sys_b0_27()" }, - { 0xb0, 0x28, "sys_b0_28()" }, - { 0xb0, 0x29, "sys_b0_29()" }, - { 0xb0, 0x2a, "sys_b0_2a()" }, - { 0xb0, 0x2b, "sys_b0_2b()" }, - { 0xb0, 0x2c, "sys_b0_2c()" }, - { 0xb0, 0x2d, "sys_b0_2d()" }, - { 0xb0, 0x2e, "sys_b0_2e()" }, - { 0xb0, 0x2f, "sys_b0_2f()" }, - { 0xb0, 0x2f, "sys_b0_30()" }, - { 0xb0, 0x31, "sys_b0_31()" }, - { 0xb0, 0x32, "int open(const char *name, int access)" }, - { 0xb0, 0x33, "int lseek(int fd, long pos, int seektype)" }, - { 0xb0, 0x34, "int read(int fd, void *buf, int nbytes)" }, - { 0xb0, 0x35, "int write(int fd, void *buf, int nbytes)" }, - { 0xb0, 0x36, "close(int fd)" }, - { 0xb0, 0x37, "int ioctl(int fd, int cmd, int arg)" }, - { 0xb0, 0x38, "exit(int exitcode)" }, - { 0xb0, 0x39, "sys_b0_39()" }, - { 0xb0, 0x3a, "char getc(int fd)" }, - { 0xb0, 0x3b, "putc(int fd, char ch)" }, - { 0xb0, 0x3c, "char getchar(void)" }, - { 0xb0, 0x3d, "putchar(char ch)" }, - { 0xb0, 0x3e, "char *gets(char *s)" }, - { 0xb0, 0x3f, "puts(const char *s)" }, - { 0xb0, 0x40, "int cd(const char *path)" }, - { 0xb0, 0x41, "int format(const char *fs)" }, - { 0xb0, 0x42, "struct DIRENTRY* firstfile(const char *name, struct DIRENTRY *dir)" }, - { 0xb0, 0x43, "struct DIRENTRY* nextfile(struct DIRENTRY *dir)" }, - { 0xb0, 0x44, "int rename(const char *oldname, const char *newname)" }, - { 0xb0, 0x45, "int delete(const char *name)" }, - { 0xb0, 0x46, "undelete()" }, - { 0xb0, 0x47, "AddDevice()" }, - { 0xb0, 0x48, "RemoveDevice()" }, - { 0xb0, 0x49, "PrintInstalledDevices()" }, - { 0xb0, 0x4a, "InitCARD()" }, - { 0xb0, 0x4b, "StartCARD()" }, - { 0xb0, 0x4c, "StopCARD()" }, - { 0xb0, 0x4d, "sys_b0_4d()" }, - { 0xb0, 0x4e, "_card_write()" }, - { 0xb0, 0x4f, "_card_read()" }, - { 0xb0, 0x50, "_new_card()" }, - { 0xb0, 0x51, "void *Krom2RawAdd(int code)" }, - { 0xb0, 0x52, "sys_b0_52()" }, - { 0xb0, 0x53, "sys_b0_53()" }, - { 0xb0, 0x54, "long _get_errno(void)" }, - { 0xb0, 0x55, "long _get_error(long fd)" }, - { 0xb0, 0x56, "GetC0Table()" }, - { 0xb0, 0x57, "GetB0Table()" }, - { 0xb0, 0x58, "_card_chan()" }, - { 0xb0, 0x59, "sys_b0_59()" }, - { 0xb0, 0x5a, "sys_b0_5a()" }, - { 0xb0, 0x5b, "ChangeClearPAD(int, int)" }, - { 0xb0, 0x5c, "_card_status()" }, - { 0xb0, 0x5d, "_card_wait()" }, - { 0xc0, 0x00, "InitRCnt()" }, - { 0xc0, 0x01, "InitException()" }, - { 0xc0, 0x02, "SysEnqIntRP(int index, long *queue)" }, - { 0xc0, 0x03, "SysDeqIntRP(int index, long *queue)" }, - { 0xc0, 0x04, "int get_free_EvCB_slot(void)" }, - { 0xc0, 0x05, "get_free_TCB_slot()" }, - { 0xc0, 0x06, "ExceptionHandler()" }, - { 0xc0, 0x07, "InstallExceptionHandlers()" }, - { 0xc0, 0x08, "SysInitMemory()" }, - { 0xc0, 0x09, "SysInitKMem()" }, - { 0xc0, 0x0a, "ChangeClearRCnt()" }, - { 0xc0, 0x0b, "SystemError()" }, - { 0xc0, 0x0c, "InitDefInt()" }, - { 0xc0, 0x0d, "sys_c0_0d()" }, - { 0xc0, 0x0e, "sys_c0_0e()" }, - { 0xc0, 0x0f, "sys_c0_0f()" }, - { 0xc0, 0x10, "sys_c0_10()" }, - { 0xc0, 0x11, "sys_c0_11()" }, - { 0xc0, 0x12, "InstallDevices()" }, - { 0xc0, 0x13, "FlushStdInOutPut()" }, - { 0xc0, 0x14, "sys_c0_14()" }, - { 0xc0, 0x15, "_cdevinput()" }, - { 0xc0, 0x16, "_cdevscan()" }, - { 0xc0, 0x17, "char _circgetc(struct device_buf *circ)" }, - { 0xc0, 0x18, "_circputc(char c, struct device_buf *circ)" }, - { 0xc0, 0x19, "ioabort(const char *str)" }, - { 0xc0, 0x1a, "sys_c0_1a()" }, - { 0xc0, 0x1b, "KernelRedirect(int flag)" }, - { 0xc0, 0x1c, "PatchA0Table()" }, - { 0x00, 0x00, NULL } -}; - -static UINT32 log_bioscall_parameter( int parm ) -{ - if( parm < 4 ) - { - return activecpu_get_reg( MIPS_R4 + parm ); - } - else - { - return program_read_dword_32le( activecpu_get_reg( MIPS_R29 ) + ( parm * 4 ) ); - } -} - -static const char *log_bioscall_string( int parm ) -{ - int pos; - UINT32 address; - static char string[ 1024 ]; - - address = log_bioscall_parameter( parm ); - if( address == 0 ) - { - return "NULL"; - } - - pos = 0; - string[ pos++ ] = '\"'; - - for( ;; ) - { - UINT8 c = program_read_byte_32le( address ); - if( c == 0 ) - { - break; - } - else if( c == '\t' ) - { - string[ pos++ ] = '\\'; - string[ pos++ ] = 't'; - } - else if( c == '\r' ) - { - string[ pos++ ] = '\\'; - string[ pos++ ] = 'r'; - } - else if( c == '\n' ) - { - string[ pos++ ] = '\\'; - string[ pos++ ] = 'n'; - } - else if( c < 32 || c > 127 ) - { - string[ pos++ ] = '\\'; - string[ pos++ ] = ( ( c / 64 ) % 8 ) + '0'; - string[ pos++ ] = ( ( c / 8 ) % 8 ) + '0'; - string[ pos++ ] = ( ( c / 1 ) % 8 ) + '0'; - } - else - { - string[ pos++ ] = c; - } - address++; - } - - string[ pos++ ] = '\"'; - string[ pos++ ] = 0; - - return string; -} - -static const char *log_bioscall_hex( int parm ) -{ - static char string[ 1024 ]; - - sprintf( string, "0x%08x", log_bioscall_parameter( parm ) ); - - return string; -} - -static const char *log_bioscall_char( int parm ) -{ - int c; - static char string[ 1024 ]; - - c = log_bioscall_parameter( parm ); - if( c < 32 || c > 127 ) - { - sprintf( string, "0x%02x", c ); - } - else - { - sprintf( string, "'%c'", c ); - } - - return string; -} - -static void log_bioscall( void ) -{ - int address = activecpu_get_reg( MIPS_PC ) - 0x04; - if( address == 0xa0 || - address == 0xb0 || - address == 0xc0 ) - { - char buf[ 1024 ]; - int operation = activecpu_get_reg( MIPS_R9 ) & 0xff; - int bioscall = 0; - - if( ( address == 0xa0 && operation == 0x3c ) || - ( address == 0xb0 && operation == 0x3d ) ) - { - putchar( log_bioscall_parameter( 0 ) ); - } - - if( ( address == 0xa0 && operation == 0x03 ) || - ( address == 0xb0 && operation == 0x35 ) ) - { - int fd = log_bioscall_parameter( 0 ); - int buf = log_bioscall_parameter( 1 ); - int nbytes = log_bioscall_parameter( 2 ); - if( fd == 1 ) - { - while( nbytes > 0 ) - { - UINT8 c = program_read_byte_32le( buf ); - putchar( c ); - nbytes--; - buf++; - } - } - } - - while( bioscalls[ bioscall ].prototype != NULL && - ( bioscalls[ bioscall ].address != address || - bioscalls[ bioscall ].operation != operation ) ) - { - bioscall++; - } - - if( bioscalls[ bioscall ].prototype != NULL ) - { - const char *prototype = bioscalls[ bioscall ].prototype; - const char *parmstart = NULL; - int parm = 0; - int parmlen = -1; - int brackets = 0; - int pos = 0; - - while( *( prototype ) != 0 ) - { - int ch = *( prototype ); - switch( ch ) - { - case '(': - brackets++; - prototype++; - if( brackets == 1 ) - { - buf[ pos++ ] = ch; - parmstart = prototype; - } - break; - case ')': - if( brackets == 1 ) - { - parmlen = prototype - parmstart; - } - prototype++; - brackets--; - break; - case ',': - if( brackets == 1 ) - { - parmlen = prototype - parmstart; - } - prototype++; - break; - default: - if( brackets == 0 ) - { - buf[ pos++ ] = ch; - } - prototype++; - break; - } - - if( parmlen >= 0 ) - { - while( parmlen > 0 && parmstart[ 0 ] == ' ' ) - { - parmstart++; - parmlen--; - } - while( parmlen > 0 && parmstart[ parmlen - 1 ] == ' ' ) - { - parmlen--; - } - - if( parmlen == 0 || - ( parmlen == 4 && memcmp( parmstart, "void", 4 ) == 0 ) ) - { - parm = -1; - } - else if( parmlen == 3 && memcmp( parmstart, "...", 3 ) == 0 ) - { - if( parm > 0 ) - { - UINT32 format = log_bioscall_parameter( parm - 1 ); - const char *parmstr = NULL; - int percent = 0; - for( ;; ) - { - UINT8 c = program_read_byte_32le( format ); - if( c == 0 ) - { - break; - } - if( percent == 0 ) - { - if( c == '%' ) - { - percent = 1; - } - } - else - { - if( c == '%' ) - { - percent = 0; - } - else if( c == '*' ) - { - parmstr = log_bioscall_hex( parm ); - } - else if( c == 's' ) - { - parmstr = log_bioscall_string( parm ); - percent = 0; - } - else if( c == 'c' ) - { - parmstr = log_bioscall_char( parm ); - percent = 0; - } - else if( c != '-' && c != '.' && c != 'l' && ( c < '0' || c > '9' ) ) - { - parmstr = log_bioscall_hex( parm ); - percent = 0; - } - } - - if( parmstr != NULL ) - { - if( parm > 0 ) - { - buf[ pos++ ] = ','; - } - buf[ pos++ ] = ' '; - - strcpy( &buf[ pos ], parmstr ); - pos += strlen( parmstr ); - parmstr = NULL; - - parm++; - } - format++; - } - } - } - else if( parmlen > 0 ) - { - const char *parmstr; - - int typelen = parmlen; - while( typelen > 0 && parmstart[ typelen - 1 ] != ' ' && parmstart[ typelen - 1 ] != '*' ) - { - typelen--; - } - - if( typelen == 5 && memcmp( parmstart, "char ", 5 ) == 0 ) - { - parmstr = log_bioscall_char( parm ); - } - else if( typelen == 12 && memcmp( parmstart, "const char *", 12 ) == 0 ) - { - parmstr = log_bioscall_string( parm ); - } - else - { - parmstr = log_bioscall_hex( parm ); - } - - if( parm > 0 ) - { - buf[ pos++ ] = ','; - } - buf[ pos++ ] = ' '; - - strcpy( &buf[ pos ], parmstr ); - pos += strlen( parmstr ); - } - - parmlen = -1; - parm++; - - if( ch == ',' ) - { - parmstart = prototype; - } - else - { - if( parm > 0 ) - { - buf[ pos++ ] = ' '; - } - buf[ pos++ ] = ch; - } - } - } - buf[ pos ] = 0; - } - else - { - sprintf( buf, "unknown_%02x_%02x", address, operation ); - } - logerror( "%08x: bioscall %s\n", (unsigned int)activecpu_get_reg( MIPS_R31 ) - 8, buf ); - } -} - -static void log_syscall( void ) -{ - char buf[ 1024 ]; - int operation = activecpu_get_reg( MIPS_R4 ); - switch( operation ) - { - case 0: - strcpy( buf, "void Exception()" ); - break; - case 1: - strcpy( buf, "void EnterCriticalSection()" ); - break; - case 2: - strcpy( buf, "void ExitCriticalSection()" ); - break; - default: - sprintf( buf, "unknown_%02x", operation ); - break; - } - logerror( "%08x: syscall %s\n", (unsigned int)activecpu_get_reg( MIPS_R31 ) - 8, buf ); -} - -#endif - -INLINE void mips_set_cp0r( int reg, UINT32 value ) -{ - mipscpu.cp0r[ reg ] = value; - if( reg == CP0_SR || reg == CP0_CAUSE ) - { - if( ( mipscpu.cp0r[ CP0_SR ] & SR_IEC ) != 0 && ( mipscpu.cp0r[ CP0_SR ] & mipscpu.cp0r[ CP0_CAUSE ] & CAUSE_IP ) != 0 ) - { - mips_exception( EXC_INT ); - } - else if( mipscpu.delayr != REGPC && ( mipscpu.pc & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, mipscpu.pc ); - } - } -} - -INLINE void mips_commit_delayed_load( void ) -{ - if( mipscpu.delayr != 0 ) - { - mipscpu.r[ mipscpu.delayr ] = mipscpu.delayv; - mipscpu.delayr = 0; - mipscpu.delayv = 0; - } -} - -INLINE void mips_delayed_branch( UINT32 n_adr ) -{ - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else if( mipscpu.delayr == REGPC ) - { - mipscpu.pc = mipscpu.delayv; - change_pc( mipscpu.delayv ); - mipscpu.delayv = n_adr; - } - else - { - mips_commit_delayed_load(); - mipscpu.delayr = REGPC; - mipscpu.delayv = n_adr; - mipscpu.pc += 4; - } -} - -INLINE void mips_set_pc( unsigned val ) -{ - mipscpu.pc = val; - - change_pc( val ); - mipscpu.delayr = 0; - mipscpu.delayv = 0; -} - -INLINE void mips_advance_pc( void ) -{ - if( mipscpu.delayr == REGPC ) - { - mips_set_pc( mipscpu.delayv ); - } - else - { - mips_commit_delayed_load(); - mipscpu.pc += 4; - } -} - -INLINE void mips_load( UINT32 n_r, UINT32 n_v ) -{ - mips_advance_pc(); - if( n_r != 0 ) - { - mipscpu.r[ n_r ] = n_v; - } -} - -INLINE void mips_delayed_load( UINT32 n_r, UINT32 n_v ) -{ - if( mipscpu.delayr == REGPC ) - { - mips_set_pc( mipscpu.delayv ); - mipscpu.delayr = n_r; - mipscpu.delayv = n_v; - } - else - { - mips_commit_delayed_load(); - mipscpu.pc += 4; - if( n_r != 0 ) - { - mipscpu.r[ n_r ] = n_v; - } - } -} - -static void mips_exception( int exception ) -{ - mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~0x3f ) | ( ( mipscpu.cp0r[ CP0_SR ] << 2 ) & 0x3f ) ); - if( mipscpu.delayr == REGPC ) - { - mips_set_cp0r( CP0_EPC, mipscpu.pc - 4 ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_EXC ) | CAUSE_BD | ( exception << 2 ) ); - } - else - { - mips_commit_delayed_load(); - mips_set_cp0r( CP0_EPC, mipscpu.pc ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~( CAUSE_EXC | CAUSE_BD ) ) | ( exception << 2 ) ); - } - if( mipscpu.cp0r[ CP0_SR ] & SR_BEV ) - { - mips_set_pc( 0xbfc00180 ); - } - else - { - mips_set_pc( 0x80000080 ); - } -} - -static void mips_init( int index, int clock, const void *config, int (*irqcallback)(int) ) -{ - mipscpu.irq_callback = irqcallback; - - state_save_register_item( "psxcpu", index, mipscpu.op ); - state_save_register_item( "psxcpu", index, mipscpu.pc ); - state_save_register_item( "psxcpu", index, mipscpu.delayv ); - state_save_register_item( "psxcpu", index, mipscpu.delayr ); - state_save_register_item( "psxcpu", index, mipscpu.hi ); - state_save_register_item( "psxcpu", index, mipscpu.lo ); - state_save_register_item_array( "psxcpu", index, mipscpu.r ); - state_save_register_item_array( "psxcpu", index, mipscpu.cp0r ); - state_save_register_item_array( "psxcpu", index, mipscpu.cp2cr ); - state_save_register_item_array( "psxcpu", index, mipscpu.cp2dr ); -} - -static void mips_reset( void ) -{ - mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~( SR_TS | SR_SWC | SR_KUC | SR_IEC ) ) | SR_BEV ); - mips_set_cp0r( CP0_RANDOM, 63 ); /* todo: */ - mips_set_cp0r( CP0_PRID, 0x00000200 ); /* todo: */ - mips_set_pc( 0xbfc00000 ); -} - -static void mips_exit( void ) -{ -} - -static int mips_execute( int cycles ) -{ - UINT32 n_res; - - mips_ICount = cycles; - do - { -#if LOG_BIOSCALL - log_bioscall(); -#endif - - CALL_MAME_DEBUG; - - mipscpu.op = cpu_readop32( mipscpu.pc ); - switch( INS_OP( mipscpu.op ) ) - { - case OP_SPECIAL: - switch( INS_FUNCT( mipscpu.op ) ) - { - case FUNCT_SLL: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] << INS_SHAMT( mipscpu.op ) ); - break; - case FUNCT_SRL: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] >> INS_SHAMT( mipscpu.op ) ); - break; - case FUNCT_SRA: - mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] >> INS_SHAMT( mipscpu.op ) ); - break; - case FUNCT_SLLV: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] << ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); - break; - case FUNCT_SRLV: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] >> ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); - break; - case FUNCT_SRAV: - mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] >> ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); - break; - case FUNCT_JR: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - mips_delayed_branch( mipscpu.r[ INS_RS( mipscpu.op ) ] ); - } - break; - case FUNCT_JALR: - n_res = mipscpu.pc + 8; - mips_delayed_branch( mipscpu.r[ INS_RS( mipscpu.op ) ] ); - if( INS_RD( mipscpu.op ) != 0 ) - { - mipscpu.r[ INS_RD( mipscpu.op ) ] = n_res; - } - break; - case FUNCT_SYSCALL: -#if LOG_BIOSCALL - log_syscall(); -#endif - mips_exception( EXC_SYS ); - break; - case FUNCT_BREAK: - mips_exception( EXC_BP ); - break; - case FUNCT_MFHI: - mips_load( INS_RD( mipscpu.op ), mipscpu.hi ); - break; - case FUNCT_MTHI: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - mips_advance_pc(); - mipscpu.hi = mipscpu.r[ INS_RS( mipscpu.op ) ]; - } - break; - case FUNCT_MFLO: - mips_load( INS_RD( mipscpu.op ), mipscpu.lo ); - break; - case FUNCT_MTLO: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - mips_advance_pc(); - mipscpu.lo = mipscpu.r[ INS_RS( mipscpu.op ) ]; - } - break; - case FUNCT_MULT: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - INT64 n_res64; - n_res64 = MUL_64_32_32( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ], (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - mipscpu.lo = LO32_32_64( n_res64 ); - mipscpu.hi = HI32_32_64( n_res64 ); - } - break; - case FUNCT_MULTU: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - UINT64 n_res64; - n_res64 = MUL_U64_U32_U32( mipscpu.r[ INS_RS( mipscpu.op ) ], mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - mipscpu.lo = LO32_U32_U64( n_res64 ); - mipscpu.hi = HI32_U32_U64( n_res64 ); - } - break; - case FUNCT_DIV: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - UINT32 n_div; - UINT32 n_mod; - if( mipscpu.r[ INS_RT( mipscpu.op ) ] != 0 ) - { - n_div = (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] / (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ]; - n_mod = (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] % (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ]; - mips_advance_pc(); - mipscpu.lo = n_div; - mipscpu.hi = n_mod; - } - else - { - mips_advance_pc(); - } - } - break; - case FUNCT_DIVU: - if( INS_RD( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else - { - UINT32 n_div; - UINT32 n_mod; - if( mipscpu.r[ INS_RT( mipscpu.op ) ] != 0 ) - { - n_div = mipscpu.r[ INS_RS( mipscpu.op ) ] / mipscpu.r[ INS_RT( mipscpu.op ) ]; - n_mod = mipscpu.r[ INS_RS( mipscpu.op ) ] % mipscpu.r[ INS_RT( mipscpu.op ) ]; - mips_advance_pc(); - mipscpu.lo = n_div; - mipscpu.hi = n_mod; - } - else - { - mips_advance_pc(); - } - } - break; - case FUNCT_ADD: - { - n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] + mipscpu.r[ INS_RT( mipscpu.op ) ]; - if( (INT32)( ~( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) - { - mips_exception( EXC_OVF ); - } - else - { - mips_load( INS_RD( mipscpu.op ), n_res ); - } - } - break; - case FUNCT_ADDU: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] + mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_SUB: - n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] - mipscpu.r[ INS_RT( mipscpu.op ) ]; - if( (INT32)( ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) - { - mips_exception( EXC_OVF ); - } - else - { - mips_load( INS_RD( mipscpu.op ), n_res ); - } - break; - case FUNCT_SUBU: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] - mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_AND: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] & mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_OR: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] | mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_XOR: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_NOR: - mips_load( INS_RD( mipscpu.op ), ~( mipscpu.r[ INS_RS( mipscpu.op ) ] | mipscpu.r[ INS_RT( mipscpu.op ) ] ) ); - break; - case FUNCT_SLT: - mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case FUNCT_SLTU: - mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] < mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - default: - mips_exception( EXC_RI ); - break; - } - break; - case OP_REGIMM: - switch( INS_RT( mipscpu.op ) ) - { - case RT_BLTZ: - if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case RT_BGEZ: - if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] >= 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case RT_BLTZAL: - n_res = mipscpu.pc + 8; - if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - mipscpu.r[ 31 ] = n_res; - break; - case RT_BGEZAL: - n_res = mipscpu.pc + 8; - if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] >= 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - mipscpu.r[ 31 ] = n_res; - break; - } - break; - case OP_J: - mips_delayed_branch( ( ( mipscpu.pc + 4 ) & 0xf0000000 ) + ( INS_TARGET( mipscpu.op ) << 2 ) ); - break; - case OP_JAL: - n_res = mipscpu.pc + 8; - mips_delayed_branch( ( ( mipscpu.pc + 4 ) & 0xf0000000 ) + ( INS_TARGET( mipscpu.op ) << 2 ) ); - mipscpu.r[ 31 ] = n_res; - break; - case OP_BEQ: - if( mipscpu.r[ INS_RS( mipscpu.op ) ] == mipscpu.r[ INS_RT( mipscpu.op ) ] ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case OP_BNE: - if( mipscpu.r[ INS_RS( mipscpu.op ) ] != mipscpu.r[ INS_RT( mipscpu.op ) ] ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case OP_BLEZ: - if( INS_RT( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] <= 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case OP_BGTZ: - if( INS_RT( mipscpu.op ) != 0 ) - { - mips_exception( EXC_RI ); - } - else if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] > 0 ) - { - mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); - } - else - { - mips_advance_pc(); - } - break; - case OP_ADDI: - { - UINT32 n_imm; - n_imm = MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] + n_imm; - if( (INT32)( ~( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_imm ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) - { - mips_exception( EXC_OVF ); - } - else - { - mips_load( INS_RT( mipscpu.op ), n_res ); - } - } - break; - case OP_ADDIU: - mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); - break; - case OP_SLTI: - mips_load( INS_RT( mipscpu.op ), (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); - break; - case OP_SLTIU: - mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] < (UINT32)MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); - break; - case OP_ANDI: - mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] & INS_IMMEDIATE( mipscpu.op ) ); - break; - case OP_ORI: - mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] | INS_IMMEDIATE( mipscpu.op ) ); - break; - case OP_XORI: - mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] ^ INS_IMMEDIATE( mipscpu.op ) ); - break; - case OP_LUI: - mips_load( INS_RT( mipscpu.op ), INS_IMMEDIATE( mipscpu.op ) << 16 ); - break; - case OP_COP0: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) != 0 && ( mipscpu.cp0r[ CP0_SR ] & SR_CU0 ) == 0 ) - { - mips_exception( EXC_CPU ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE0 ); - } - else - { - switch( INS_RS( mipscpu.op ) ) - { - case RS_MFC: - mips_delayed_load( INS_RT( mipscpu.op ), mipscpu.cp0r[ INS_RD( mipscpu.op ) ] ); - break; - case RS_CFC: - /* todo: */ - logerror( "%08x: COP0 CFC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_MTC: - n_res = ( mipscpu.cp0r[ INS_RD( mipscpu.op ) ] & ~mips_mtc0_writemask[ INS_RD( mipscpu.op ) ] ) | - ( mipscpu.r[ INS_RT( mipscpu.op ) ] & mips_mtc0_writemask[ INS_RD( mipscpu.op ) ] ); - mips_advance_pc(); - mips_set_cp0r( INS_RD( mipscpu.op ), n_res ); - break; - case RS_CTC: - /* todo: */ - logerror( "%08x: COP0 CTC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_BC: - switch( INS_RT( mipscpu.op ) ) - { - case RT_BCF: - /* todo: */ - logerror( "%08x: COP0 BCF not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RT_BCT: - /* todo: */ - logerror( "%08x: COP0 BCT not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - default: - /* todo: */ - logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - default: - switch( INS_CO( mipscpu.op ) ) - { - case 1: - switch( INS_CF( mipscpu.op ) ) - { - case CF_RFE: - mips_advance_pc(); - mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~0xf ) | ( ( mipscpu.cp0r[ CP0_SR ] >> 2 ) & 0xf ) ); - break; - default: - /* todo: */ - logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - default: - /* todo: */ - logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - } - } - break; - case OP_COP1: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU1 ) == 0 ) - { - mips_exception( EXC_CPU ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE1 ); - } - else - { - switch( INS_RS( mipscpu.op ) ) - { - case RS_MFC: - /* todo: */ - logerror( "%08x: COP1 BCT not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_CFC: - /* todo: */ - logerror( "%08x: COP1 CFC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_MTC: - /* todo: */ - logerror( "%08x: COP1 MTC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_CTC: - /* todo: */ - logerror( "%08x: COP1 CTC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RS_BC: - switch( INS_RT( mipscpu.op ) ) - { - case RT_BCF: - /* todo: */ - logerror( "%08x: COP1 BCF not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RT_BCT: - /* todo: */ - logerror( "%08x: COP1 BCT not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - default: - /* todo: */ - logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - default: - switch( INS_CO( mipscpu.op ) ) - { - case 1: - /* todo: */ - logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - default: - /* todo: */ - logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - } - } - break; - case OP_COP2: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) - { - mips_exception( EXC_CPU ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); - } - else - { - switch( INS_RS( mipscpu.op ) ) - { - case RS_MFC: - mips_delayed_load( INS_RT( mipscpu.op ), getcp2dr( INS_RD( mipscpu.op ) ) ); - break; - case RS_CFC: - mips_delayed_load( INS_RT( mipscpu.op ), getcp2cr( INS_RD( mipscpu.op ) ) ); - break; - case RS_MTC: - setcp2dr( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - break; - case RS_CTC: - setcp2cr( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - break; - case RS_BC: - switch( INS_RT( mipscpu.op ) ) - { - case RT_BCF: - /* todo: */ - logerror( "%08x: COP2 BCF not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case RT_BCT: - /* todo: */ - logerror( "%08x: COP2 BCT not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - default: - /* todo: */ - logerror( "%08x: COP2 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - default: - switch( INS_CO( mipscpu.op ) ) - { - case 1: - docop2( INS_COFUN( mipscpu.op ) ); - mips_advance_pc(); - break; - default: - /* todo: */ - logerror( "%08x: COP2 unknown command %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_advance_pc(); - break; - } - break; - } - } - break; - case OP_LB: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LB SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), MIPS_BYTE_EXTEND( program_read_byte_32le( n_adr ^ 3 ) ) ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), MIPS_BYTE_EXTEND( program_read_byte_32le( n_adr ) ) ); - } - } - break; - case OP_LH: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LH SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), MIPS_WORD_EXTEND( program_read_word_32le( n_adr ^ 2 ) ) ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), MIPS_WORD_EXTEND( program_read_word_32le( n_adr ) ) ); - } - } - break; - case OP_LWL: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LWL SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x00ffffff ) | ( (UINT32)program_read_byte_32le( n_adr + 3 ) << 24 ); - break; - case 1: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x0000ffff ) | ( (UINT32)program_read_word_32le( n_adr + 1 ) << 16 ); - break; - case 2: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x000000ff ) | ( (UINT32)program_read_byte_32le( n_adr - 1 ) << 8 ) | ( (UINT32)program_read_word_32le( n_adr ) << 16 ); - break; - default: - n_res = program_read_dword_32le( n_adr - 3 ); - break; - } - mips_delayed_load( INS_RT( mipscpu.op ), n_res ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x00ffffff ) | ( (UINT32)program_read_byte_32le( n_adr ) << 24 ); - break; - case 1: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x0000ffff ) | ( (UINT32)program_read_word_32le( n_adr - 1 ) << 16 ); - break; - case 2: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x000000ff ) | ( (UINT32)program_read_word_32le( n_adr - 2 ) << 8 ) | ( (UINT32)program_read_byte_32le( n_adr ) << 24 ); - break; - default: - n_res = program_read_dword_32le( n_adr - 3 ); - break; - } - mips_delayed_load( INS_RT( mipscpu.op ), n_res ); - } - } - break; - case OP_LW: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LW SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), program_read_dword_32le( n_adr ) ); - } - } - break; - case OP_LBU: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LBU SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), program_read_byte_32le( n_adr ^ 3 ) ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), program_read_byte_32le( n_adr ) ); - } - } - break; - case OP_LHU: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LHU SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), program_read_word_32le( n_adr ^ 2 ) ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - mips_delayed_load( INS_RT( mipscpu.op ), program_read_word_32le( n_adr ) ); - } - } - break; - case OP_LWR: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LWR SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 3: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffffff00 ) | program_read_byte_32le( n_adr - 3 ); - break; - case 2: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffff0000 ) | program_read_word_32le( n_adr - 2 ); - break; - case 1: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xff000000 ) | program_read_word_32le( n_adr - 1 ) | ( (UINT32)program_read_byte_32le( n_adr + 1 ) << 16 ); - break; - default: - n_res = program_read_dword_32le( n_adr ); - break; - } - mips_delayed_load( INS_RT( mipscpu.op ), n_res ); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 3: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffffff00 ) | program_read_byte_32le( n_adr ); - break; - case 2: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffff0000 ) | program_read_word_32le( n_adr ); - break; - case 1: - n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xff000000 ) | program_read_byte_32le( n_adr ) | ( (UINT32)program_read_word_32le( n_adr + 1 ) << 8 ); - break; - default: - n_res = program_read_dword_32le( n_adr ); - break; - } - mips_delayed_load( INS_RT( mipscpu.op ), n_res ); - } - } - break; - case OP_SB: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: SB SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_byte_32le( n_adr ^ 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - } - } - break; - case OP_SH: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: SH SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_word_32le( n_adr ^ 2, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - } - } - break; - case OP_SWL: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: SWL SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - program_write_byte_32le( n_adr + 3, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); - break; - case 1: - program_write_word_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); - break; - case 2: - program_write_byte_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); - program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); - break; - case 3: - program_write_dword_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - } - mips_advance_pc(); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); - break; - case 1: - program_write_word_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); - break; - case 2: - program_write_word_32le( n_adr - 2, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); - program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); - break; - case 3: - program_write_dword_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - } - mips_advance_pc(); - } - } - break; - case OP_SW: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ -/* used by bootstrap - logerror( "%08x: SW SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); -*/ - mips_advance_pc(); - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - mips_advance_pc(); - } - } - break; - case OP_SWR: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: SWR SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case 1: - program_write_word_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - program_write_byte_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); - break; - case 2: - program_write_word_32le( n_adr - 2, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case 3: - program_write_byte_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - } - mips_advance_pc(); - } - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - switch( n_adr & 3 ) - { - case 0: - program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case 1: - program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - program_write_word_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); - break; - case 2: - program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - case 3: - program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); - break; - } - mips_advance_pc(); - } - } - break; - case OP_LWC1: - /* todo: */ - logerror( "%08x: COP1 LWC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case OP_LWC2: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) - { - mips_exception( EXC_CPU ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: LWC2 SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADEL ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - /* todo: delay? */ - setcp2dr( INS_RT( mipscpu.op ), program_read_dword_32le( n_adr ) ); - mips_advance_pc(); - } - } - break; - case OP_SWC1: - /* todo: */ - logerror( "%08x: COP1 SWC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - break; - case OP_SWC2: - if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) - { - mips_exception( EXC_CPU ); - mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); - } - else if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) - { - /* todo: */ - logerror( "%08x: SWC2 SR_ISC not supported\n", mipscpu.pc ); - mips_stop(); - mips_advance_pc(); - } - else - { - UINT32 n_adr; - n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); - if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) - { - mips_exception( EXC_ADES ); - mips_set_cp0r( CP0_BADVADDR, n_adr ); - } - else - { - program_write_dword_32le( n_adr, getcp2dr( INS_RT( mipscpu.op ) ) ); - mips_advance_pc(); - } - } - break; - default: - logerror( "%08x: unknown opcode %08x\n", mipscpu.pc, mipscpu.op ); - mips_stop(); - mips_exception( EXC_RI ); - break; - } - mips_ICount--; - } while( mips_ICount > 0 ); - - return cycles - mips_ICount; -} - -static void mips_get_context( void *dst ) -{ - if( dst ) - { - *(mips_cpu_context *)dst = mipscpu; - } -} - -static void mips_set_context( void *src ) -{ - if( src ) - { - mipscpu = *(mips_cpu_context *)src; - change_pc( mipscpu.pc ); - } -} - -static void set_irq_line( int irqline, int state ) -{ - UINT32 ip; - - switch( irqline ) - { - case MIPS_IRQ0: - ip = CAUSE_IP2; - break; - case MIPS_IRQ1: - ip = CAUSE_IP3; - break; - case MIPS_IRQ2: - ip = CAUSE_IP4; - break; - case MIPS_IRQ3: - ip = CAUSE_IP5; - break; - case MIPS_IRQ4: - ip = CAUSE_IP6; - break; - case MIPS_IRQ5: - ip = CAUSE_IP7; - break; - default: - return; - } - - switch( state ) - { - case CLEAR_LINE: - mips_set_cp0r( CP0_CAUSE, mipscpu.cp0r[ CP0_CAUSE ] & ~ip ); - break; - case ASSERT_LINE: - mips_set_cp0r( CP0_CAUSE, mipscpu.cp0r[ CP0_CAUSE ] |= ip ); - if( mipscpu.irq_callback ) - { - /* HOLD_LINE interrupts are not supported by the architecture. - By acknowledging the interupt here they are treated like PULSE_LINE - interrupts, so if the interrupt isn't enabled it will be ignored. - There is also a problem with PULSE_LINE interrupts as the interrupt - pending bits aren't latched the emulated code won't know what caused - the interrupt. */ - (*mipscpu.irq_callback)( irqline ); - } - break; - } -} - -/**************************************************************************** - * Return a formatted string for a register - ****************************************************************************/ - -#ifdef MAME_DEBUG -static offs_t mips_dasm(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) -{ - return DasmMIPS( buffer, pc, opram ); -} -#endif /* MAME_DEBUG */ - -/* preliminary gte code */ - -#define VXY0 ( mipscpu.cp2dr[ 0 ].d ) -#define VX0 ( mipscpu.cp2dr[ 0 ].w.l ) -#define VY0 ( mipscpu.cp2dr[ 0 ].w.h ) -#define VZ0 ( mipscpu.cp2dr[ 1 ].w.l ) -#define VXY1 ( mipscpu.cp2dr[ 2 ].d ) -#define VX1 ( mipscpu.cp2dr[ 2 ].w.l ) -#define VY1 ( mipscpu.cp2dr[ 2 ].w.h ) -#define VZ1 ( mipscpu.cp2dr[ 3 ].w.l ) -#define VXY2 ( mipscpu.cp2dr[ 4 ].d ) -#define VX2 ( mipscpu.cp2dr[ 4 ].w.l ) -#define VY2 ( mipscpu.cp2dr[ 4 ].w.h ) -#define VZ2 ( mipscpu.cp2dr[ 5 ].w.l ) -#define RGB ( mipscpu.cp2dr[ 6 ].d ) -#define R ( mipscpu.cp2dr[ 6 ].b.l ) -#define G ( mipscpu.cp2dr[ 6 ].b.h ) -#define B ( mipscpu.cp2dr[ 6 ].b.h2 ) -#define CODE ( mipscpu.cp2dr[ 6 ].b.h3 ) -#define OTZ ( mipscpu.cp2dr[ 7 ].w.l ) -#define IR0 ( mipscpu.cp2dr[ 8 ].d ) -#define IR1 ( mipscpu.cp2dr[ 9 ].d ) -#define IR2 ( mipscpu.cp2dr[ 10 ].d ) -#define IR3 ( mipscpu.cp2dr[ 11 ].d ) -#define SXY0 ( mipscpu.cp2dr[ 12 ].d ) -#define SX0 ( mipscpu.cp2dr[ 12 ].w.l ) -#define SY0 ( mipscpu.cp2dr[ 12 ].w.h ) -#define SXY1 ( mipscpu.cp2dr[ 13 ].d ) -#define SX1 ( mipscpu.cp2dr[ 13 ].w.l ) -#define SY1 ( mipscpu.cp2dr[ 13 ].w.h ) -#define SXY2 ( mipscpu.cp2dr[ 14 ].d ) -#define SX2 ( mipscpu.cp2dr[ 14 ].w.l ) -#define SY2 ( mipscpu.cp2dr[ 14 ].w.h ) -#define SXYP ( mipscpu.cp2dr[ 15 ].d ) -#define SXP ( mipscpu.cp2dr[ 15 ].w.l ) -#define SYP ( mipscpu.cp2dr[ 15 ].w.h ) -#define SZ0 ( mipscpu.cp2dr[ 16 ].w.l ) -#define SZ1 ( mipscpu.cp2dr[ 17 ].w.l ) -#define SZ2 ( mipscpu.cp2dr[ 18 ].w.l ) -#define SZ3 ( mipscpu.cp2dr[ 19 ].w.l ) -#define RGB0 ( mipscpu.cp2dr[ 20 ].d ) -#define R0 ( mipscpu.cp2dr[ 20 ].b.l ) -#define G0 ( mipscpu.cp2dr[ 20 ].b.h ) -#define B0 ( mipscpu.cp2dr[ 20 ].b.h2 ) -#define CD0 ( mipscpu.cp2dr[ 20 ].b.h3 ) -#define RGB1 ( mipscpu.cp2dr[ 21 ].d ) -#define R1 ( mipscpu.cp2dr[ 21 ].b.l ) -#define G1 ( mipscpu.cp2dr[ 21 ].b.h ) -#define B1 ( mipscpu.cp2dr[ 21 ].b.h2 ) -#define CD1 ( mipscpu.cp2dr[ 21 ].b.h3 ) -#define RGB2 ( mipscpu.cp2dr[ 22 ].d ) -#define R2 ( mipscpu.cp2dr[ 22 ].b.l ) -#define G2 ( mipscpu.cp2dr[ 22 ].b.h ) -#define B2 ( mipscpu.cp2dr[ 22 ].b.h2 ) -#define CD2 ( mipscpu.cp2dr[ 22 ].b.h3 ) -#define RES1 ( mipscpu.cp2dr[ 23 ].d ) -#define MAC0 ( mipscpu.cp2dr[ 24 ].d ) -#define MAC1 ( mipscpu.cp2dr[ 25 ].d ) -#define MAC2 ( mipscpu.cp2dr[ 26 ].d ) -#define MAC3 ( mipscpu.cp2dr[ 27 ].d ) -#define IRGB ( mipscpu.cp2dr[ 28 ].d ) -#define ORGB ( mipscpu.cp2dr[ 29 ].d ) -#define LZCS ( mipscpu.cp2dr[ 30 ].d ) -#define LZCR ( mipscpu.cp2dr[ 31 ].d ) - -#define D1 ( mipscpu.cp2cr[ 0 ].d ) -#define R11 ( mipscpu.cp2cr[ 0 ].w.l ) -#define R12 ( mipscpu.cp2cr[ 0 ].w.h ) -#define R13 ( mipscpu.cp2cr[ 1 ].w.l ) -#define R21 ( mipscpu.cp2cr[ 1 ].w.h ) -#define D2 ( mipscpu.cp2cr[ 2 ].d ) -#define R22 ( mipscpu.cp2cr[ 2 ].w.l ) -#define R23 ( mipscpu.cp2cr[ 2 ].w.h ) -#define R31 ( mipscpu.cp2cr[ 3 ].w.l ) -#define R32 ( mipscpu.cp2cr[ 3 ].w.h ) -#define D3 ( mipscpu.cp2cr[ 4 ].d ) -#define R33 ( mipscpu.cp2cr[ 4 ].w.l ) -#define TRX ( mipscpu.cp2cr[ 5 ].d ) -#define TRY ( mipscpu.cp2cr[ 6 ].d ) -#define TRZ ( mipscpu.cp2cr[ 7 ].d ) -#define L11 ( mipscpu.cp2cr[ 8 ].w.l ) -#define L12 ( mipscpu.cp2cr[ 8 ].w.h ) -#define L13 ( mipscpu.cp2cr[ 9 ].w.l ) -#define L21 ( mipscpu.cp2cr[ 9 ].w.h ) -#define L22 ( mipscpu.cp2cr[ 10 ].w.l ) -#define L23 ( mipscpu.cp2cr[ 10 ].w.h ) -#define L31 ( mipscpu.cp2cr[ 11 ].w.l ) -#define L32 ( mipscpu.cp2cr[ 11 ].w.h ) -#define L33 ( mipscpu.cp2cr[ 12 ].w.l ) -#define RBK ( mipscpu.cp2cr[ 13 ].d ) -#define GBK ( mipscpu.cp2cr[ 14 ].d ) -#define BBK ( mipscpu.cp2cr[ 15 ].d ) -#define LR1 ( mipscpu.cp2cr[ 16 ].w.l ) -#define LR2 ( mipscpu.cp2cr[ 16 ].w.h ) -#define LR3 ( mipscpu.cp2cr[ 17 ].w.l ) -#define LG1 ( mipscpu.cp2cr[ 17 ].w.h ) -#define LG2 ( mipscpu.cp2cr[ 18 ].w.l ) -#define LG3 ( mipscpu.cp2cr[ 18 ].w.h ) -#define LB1 ( mipscpu.cp2cr[ 19 ].w.l ) -#define LB2 ( mipscpu.cp2cr[ 19 ].w.h ) -#define LB3 ( mipscpu.cp2cr[ 20 ].w.l ) -#define RFC ( mipscpu.cp2cr[ 21 ].d ) -#define GFC ( mipscpu.cp2cr[ 22 ].d ) -#define BFC ( mipscpu.cp2cr[ 23 ].d ) -#define OFX ( mipscpu.cp2cr[ 24 ].d ) -#define OFY ( mipscpu.cp2cr[ 25 ].d ) -#define H ( mipscpu.cp2cr[ 26 ].w.l ) -#define DQA ( mipscpu.cp2cr[ 27 ].w.l ) -#define DQB ( mipscpu.cp2cr[ 28 ].d ) -#define ZSF3 ( mipscpu.cp2cr[ 29 ].w.l ) -#define ZSF4 ( mipscpu.cp2cr[ 30 ].w.l ) -#define FLAG ( mipscpu.cp2cr[ 31 ].d ) - -static UINT32 getcp2dr( int n_reg ) -{ - if( n_reg == 1 || n_reg == 3 || n_reg == 5 || n_reg == 8 || n_reg == 9 || n_reg == 10 || n_reg == 11 ) - { - mipscpu.cp2dr[ n_reg ].d = (INT32)(INT16)mipscpu.cp2dr[ n_reg ].d; - } - else if( n_reg == 17 || n_reg == 18 || n_reg == 19 ) - { - mipscpu.cp2dr[ n_reg ].d = (UINT32)(UINT16)mipscpu.cp2dr[ n_reg ].d; - } - else if( n_reg == 29 ) - { - ORGB = ( ( IR1 >> 7 ) & 0x1f ) | ( ( IR2 >> 2 ) & 0x3e0 ) | ( ( IR3 << 3 ) & 0x7c00 ); - } - GTELOG( "get CP2DR%u=%08x", n_reg, mipscpu.cp2dr[ n_reg ].d ); - return mipscpu.cp2dr[ n_reg ].d; -} - -static void setcp2dr( int n_reg, UINT32 n_value ) -{ - GTELOG( "set CP2DR%u=%08x", n_reg, n_value ); - mipscpu.cp2dr[ n_reg ].d = n_value; - - if( n_reg == 15 ) - { - SXY0 = SXY1; - SXY1 = SXY2; - SXY2 = SXYP; - } - else if( n_reg == 28 ) - { - IR1 = ( IRGB & 0x1f ) << 4; - IR2 = ( IRGB & 0x3e0 ) >> 1; - IR3 = ( IRGB & 0x7c00 ) >> 6; - } - else if( n_reg == 30 ) - { - UINT32 n_lzcs = LZCS; - UINT32 n_lzcr = 0; - - if( ( n_lzcs & 0x80000000 ) == 0 ) - { - n_lzcs = ~n_lzcs; - } - while( ( n_lzcs & 0x80000000 ) != 0 ) - { - n_lzcr++; - n_lzcs <<= 1; - } - LZCR = n_lzcr; - } -} - -static UINT32 getcp2cr( int n_reg ) -{ - GTELOG( "get CP2CR%u=%08x", n_reg, mipscpu.cp2cr[ n_reg ].d ); - return mipscpu.cp2cr[ n_reg ].d; -} - -static void setcp2cr( int n_reg, UINT32 n_value ) -{ - GTELOG( "set CP2CR%u=%08x", n_reg, n_value ); - mipscpu.cp2cr[ n_reg ].d = n_value; -} - -INLINE INT32 LIM( INT32 n_value, INT32 n_max, INT32 n_min, UINT32 n_flag ) -{ - if( n_value > n_max ) - { - FLAG |= n_flag; - return n_max; - } - else if( n_value < n_min ) - { - FLAG |= n_flag; - return n_min; - } - return n_value; -} - -INLINE INT64 BOUNDS( INT64 n_value, INT64 n_max, int n_maxflag, INT64 n_min, int n_minflag ) -{ - if( n_value > n_max ) - { - FLAG |= 1 << n_maxflag; - } - else if( n_value < n_min ) - { - FLAG |= 1 << n_minflag; - } - return n_value; -} - -#define A1( a ) BOUNDS( ( a ), 0x7fffffff, 30, -(INT64)0x80000000, 27 ) -#define A2( a ) BOUNDS( ( a ), 0x7fffffff, 29, -(INT64)0x80000000, 26 ) -#define A3( a ) BOUNDS( ( a ), 0x7fffffff, 28, -(INT64)0x80000000, 25 ) -#define Lm_B1( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 31 ) | ( 1 << 24 ) ) -#define Lm_B2( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 31 ) | ( 1 << 23 ) ) -#define Lm_B3( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 31 ) | ( 1 << 22 ) ) -#define Lm_C1( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 21 ) ) -#define Lm_C2( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 20 ) ) -#define Lm_C3( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 19 ) ) -#define Lm_D( a ) LIM( ( a ), 0xffff, 0x0000, ( 1 << 31 ) | ( 1 << 18 ) ) - -INLINE UINT32 Lm_E( UINT32 n_z ) -{ - if( n_z <= H / 2 ) - { - n_z = H / 2; - FLAG |= ( 1 << 31 ) | ( 1 << 17 ); - } - if( n_z == 0 ) - { - n_z = 1; - } - return n_z; -} - -#define F( a ) BOUNDS( ( a ), 0x7fffffff, ( 1 << 31 ) | ( 1 << 16 ), -(INT64)0x80000000, ( 1 << 31 ) | ( 1 << 15 ) ) -#define Lm_G1( a ) LIM( ( a ), 0x3ff, -0x400, ( 1 << 31 ) | ( 1 << 14 ) ) -#define Lm_G2( a ) LIM( ( a ), 0x3ff, -0x400, ( 1 << 31 ) | ( 1 << 13 ) ) -#define Lm_H( a ) LIM( ( a ), 0xfff, 0x000, ( 1 << 12 ) ) - -static void docop2( int gteop ) -{ - int n_sf; - int n_v; - int n_lm; - int n_pass; - UINT16 n_v1; - UINT16 n_v2; - UINT16 n_v3; - const UINT16 **p_n_mx; - const UINT32 **p_n_cv; - static const UINT16 n_zm = 0; - static const UINT32 n_zc = 0; - static const UINT16 *p_n_vx[] = { &VX0, &VX1, &VX2 }; - static const UINT16 *p_n_vy[] = { &VY0, &VY1, &VY2 }; - static const UINT16 *p_n_vz[] = { &VZ0, &VZ1, &VZ2 }; - static const UINT16 *p_n_rm[] = { &R11, &R12, &R13, &R21, &R22, &R23, &R31, &R32, &R33 }; - static const UINT16 *p_n_lm[] = { &L11, &L12, &L13, &L21, &L22, &L23, &L31, &L32, &L33 }; - static const UINT16 *p_n_cm[] = { &LR1, &LR2, &LR3, &LG1, &LG2, &LG3, &LB1, &LB2, &LB3 }; - static const UINT16 *p_n_zm[] = { &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm }; - static const UINT16 **p_p_n_mx[] = { p_n_rm, p_n_lm, p_n_cm, p_n_zm }; - static const UINT32 *p_n_tr[] = { &TRX, &TRY, &TRZ }; - static const UINT32 *p_n_bk[] = { &RBK, &GBK, &BBK }; - static const UINT32 *p_n_fc[] = { &RFC, &GFC, &BFC }; - static const UINT32 *p_n_zc[] = { &n_zc, &n_zc, &n_zc }; - static const UINT32 **p_p_n_cv[] = { p_n_tr, p_n_bk, p_n_fc, p_n_zc }; - - switch( GTE_FUNCT( gteop ) ) - { - case 0x01: - if( gteop == 0x0180001 ) - { - GTELOG( "RTPS" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT32)TRX << 12 ) + ( (INT16)R11 * (INT16)VX0 ) + ( (INT16)R12 * (INT16)VY0 ) + ( (INT16)R13 * (INT16)VZ0 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT32)TRY << 12 ) + ( (INT16)R21 * (INT16)VX0 ) + ( (INT16)R22 * (INT16)VY0 ) + ( (INT16)R23 * (INT16)VZ0 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT32)TRZ << 12 ) + ( (INT16)R31 * (INT16)VX0 ) + ( (INT16)R32 * (INT16)VY0 ) + ( (INT16)R33 * (INT16)VZ0 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - SZ0 = SZ1; - SZ1 = SZ2; - SZ2 = SZ3; - SZ3 = Lm_D( (INT32)MAC3 ); - SXY0 = SXY1; - SXY1 = SXY2; - SX2 = Lm_G1( F( (INT64)(INT32)OFX + ( (INT64)(INT16)IR1 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ); - SY2 = Lm_G2( F( (INT64)(INT32)OFY + ( (INT64)(INT16)IR2 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ); - MAC0 = F( (INT64)(INT32)DQB + ( (INT64)(INT16)DQA * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ); - IR0 = Lm_H( (INT32)MAC0 >> 12 ); - return; - } - break; - case 0x06: - if( gteop == 0x0400006 || - gteop == 0x1400006 || - gteop == 0x0155cc6 ) - { - GTELOG( "NCLIP" ); - FLAG = 0; - - MAC0 = F( ( (INT64)(INT16)SX0 * (INT16)SY1 ) + ( (INT16)SX1 * (INT16)SY2 ) + ( (INT16)SX2 * (INT16)SY0 ) - ( (INT16)SX0 * (INT16)SY2 ) - ( (INT16)SX1 * (INT16)SY0 ) - ( (INT16)SX2 * (INT16)SY1 ) ); - return; - } - break; - case 0x0c: - if( GTE_OP( gteop ) == 0x17 ) - { - GTELOG( "OP" ); - n_sf = 12 * GTE_SF( gteop ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT32)D2 * (INT16)IR3 ) - ( (INT64)(INT32)D3 * (INT16)IR2 ) ) >> n_sf ); - MAC2 = A2( ( ( (INT64)(INT32)D3 * (INT16)IR1 ) - ( (INT64)(INT32)D1 * (INT16)IR3 ) ) >> n_sf ); - MAC3 = A3( ( ( (INT64)(INT32)D1 * (INT16)IR2 ) - ( (INT64)(INT32)D2 * (INT16)IR1 ) ) >> n_sf ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - return; - } - break; - case 0x10: - if( gteop == 0x0780010 ) - { - GTELOG( "DPCS" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)R << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - ( R << 4 ), 0 ) ) ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)G << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - ( G << 4 ), 0 ) ) ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)B << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - ( B << 4 ), 0 ) ) ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x11: - if( gteop == 0x0980011 ) - { - GTELOG( "INTPL" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT16)IR1 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - (INT16)IR1, 0 ) ) ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)IR2 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - (INT16)IR2, 0 ) ) ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)IR3 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - (INT16)IR3, 0 ) ) ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 ); - return; - } - break; - case 0x12: - if( GTE_OP( gteop ) == 0x04 ) - { - GTELOG( "MVMVA" ); - n_sf = 12 * GTE_SF( gteop ); - p_n_mx = p_p_n_mx[ GTE_MX( gteop ) ]; - n_v = GTE_V( gteop ); - if( n_v < 3 ) - { - n_v1 = *p_n_vx[ n_v ]; - n_v2 = *p_n_vy[ n_v ]; - n_v3 = *p_n_vz[ n_v ]; - } - else - { - n_v1 = IR1; - n_v2 = IR2; - n_v3 = IR3; - } - p_n_cv = p_p_n_cv[ GTE_CV( gteop ) ]; - n_lm = GTE_LM( gteop ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT32)*p_n_cv[ 0 ] << 12 ) + ( (INT16)*p_n_mx[ 0 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 1 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 2 ] * (INT16)n_v3 ) ) >> n_sf ); - MAC2 = A2( ( ( (INT64)(INT32)*p_n_cv[ 1 ] << 12 ) + ( (INT16)*p_n_mx[ 3 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 4 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 5 ] * (INT16)n_v3 ) ) >> n_sf ); - MAC3 = A3( ( ( (INT64)(INT32)*p_n_cv[ 2 ] << 12 ) + ( (INT16)*p_n_mx[ 6 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 7 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 8 ] * (INT16)n_v3 ) ) >> n_sf ); - - IR1 = Lm_B1( (INT32)MAC1, n_lm ); - IR2 = Lm_B2( (INT32)MAC2, n_lm ); - IR3 = Lm_B3( (INT32)MAC3, n_lm ); - return; - } - break; - case 0x13: - if( gteop == 0x0e80413 ) - { - GTELOG( "NCDS" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x14: - if( gteop == 0x1280414 ) - { - GTELOG( "CDP" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( MAC1, 1 ); - IR2 = Lm_B2( MAC2, 1 ); - IR3 = Lm_B3( MAC3, 1 ); - MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); - IR1 = Lm_B1( MAC1, 1 ); - IR2 = Lm_B2( MAC2, 1 ); - IR3 = Lm_B3( MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x16: - if( gteop == 0x0f80416 ) - { - GTELOG( "NCDT" ); - FLAG = 0; - - for( n_v = 0; n_v < 3; n_v++ ) - { - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); - MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - } - return; - } - break; - case 0x1b: - if( gteop == 0x108041b ) - { - GTELOG( "NCCS" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); - MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); - MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x1c: - if( gteop == 0x138041c ) - { - GTELOG( "CC" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( MAC1, 1 ); - IR2 = Lm_B2( MAC2, 1 ); - IR3 = Lm_B3( MAC3, 1 ); - MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); - MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); - MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); - IR1 = Lm_B1( MAC1, 1 ); - IR2 = Lm_B2( MAC2, 1 ); - IR3 = Lm_B3( MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x1e: - if( gteop == 0x0c8041e ) - { - GTELOG( "NCS" ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x20: - if( gteop == 0x0d80420 ) - { - GTELOG( "NCT" ); - FLAG = 0; - - for( n_v = 0; n_v < 3; n_v++ ) - { - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - } - return; - } - break; - case 0x28: - if( GTE_OP( gteop ) == 0x0a && GTE_LM( gteop ) == 1 ) - { - GTELOG( "SQR" ); - n_sf = 12 * GTE_SF( gteop ); - FLAG = 0; - - MAC1 = A1( ( (INT64)(INT16)IR1 * (INT16)IR1 ) >> n_sf ); - MAC2 = A2( ( (INT64)(INT16)IR2 * (INT16)IR2 ) >> n_sf ); - MAC3 = A3( ( (INT64)(INT16)IR3 * (INT16)IR3 ) >> n_sf ); - IR1 = Lm_B1( MAC1, 1 ); - IR2 = Lm_B2( MAC2, 1 ); - IR3 = Lm_B3( MAC3, 1 ); - return; - } - break; - // DCPL 0x29 - case 0x2a: - if( gteop == 0x0f8002a ) - { - GTELOG( "DPCT" ); - FLAG = 0; - - for( n_pass = 0; n_pass < 3; n_pass++ ) - { - MAC1 = A1( ( ( (INT64)R0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - ( R0 << 4 ), 0 ) ) ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)G0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - ( G0 << 4 ), 0 ) ) ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)B0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - ( B0 << 4 ), 0 ) ) ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - } - return; - } - break; - case 0x2d: - if( gteop == 0x158002d ) - { - GTELOG( "AVSZ3" ); - FLAG = 0; - - MAC0 = F( ( (INT64)(INT16)ZSF3 * SZ1 ) + ( (INT16)ZSF3 * SZ2 ) + ( (INT16)ZSF3 * SZ3 ) ); - OTZ = Lm_D( (INT32)MAC0 >> 12 ); - return; - } - break; - case 0x2e: - if( gteop == 0x168002e ) - { - GTELOG( "AVSZ4" ); - FLAG = 0; - - MAC0 = F( ( (INT64)(INT16)ZSF4 * SZ0 ) + ( (INT16)ZSF4 * SZ1 ) + ( (INT16)ZSF4 * SZ2 ) + ( (INT16)ZSF4 * SZ3 ) ); - OTZ = Lm_D( (INT32)MAC0 >> 12 ); - return; - } - break; - case 0x30: - if( gteop == 0x0280030 ) - { - GTELOG( "RTPT" ); - FLAG = 0; - - for( n_v = 0; n_v < 3; n_v++ ) - { - MAC1 = A1( ( ( (INT64)(INT32)TRX << 12 ) + ( (INT16)R11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT32)TRY << 12 ) + ( (INT16)R21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT32)TRZ << 12 ) + ( (INT16)R31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - SZ0 = SZ1; - SZ1 = SZ2; - SZ2 = SZ3; - SZ3 = Lm_D( (INT32)MAC3 ); - SXY0 = SXY1; - SXY1 = SXY2; - SX2 = Lm_G1( F( ( (INT64)(INT32)OFX + ( (INT64)(INT16)IR1 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ) ); - SY2 = Lm_G2( F( ( (INT64)(INT32)OFY + ( (INT64)(INT16)IR2 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ) ); - MAC0 = F( (INT64)(INT32)DQB + ( (INT64)(INT16)DQA * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ); - IR0 = Lm_H( (INT32)MAC0 >> 12 ); - } - return; - } - break; - case 0x3d: - if( GTE_OP( gteop ) == 0x09 || - GTE_OP( gteop ) == 0x19 ) - { - GTELOG( "GPF" ); - n_sf = 12 * GTE_SF( gteop ); - FLAG = 0; - - MAC1 = A1( ( (INT64)(INT16)IR0 * (INT16)IR1 ) >> n_sf ); - MAC2 = A2( ( (INT64)(INT16)IR0 * (INT16)IR2 ) >> n_sf ); - MAC3 = A3( ( (INT64)(INT16)IR0 * (INT16)IR3 ) >> n_sf ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x3e: - if( GTE_OP( gteop ) == 0x1a ) - { - GTELOG( "GPL" ); - n_sf = 12 * GTE_SF( gteop ); - FLAG = 0; - - MAC1 = A1( ( ( (INT64)(INT32)MAC1 << n_sf ) + ( (INT16)IR0 * (INT16)IR1 ) ) >> n_sf ); - MAC2 = A2( ( ( (INT64)(INT32)MAC2 << n_sf ) + ( (INT16)IR0 * (INT16)IR2 ) ) >> n_sf ); - MAC3 = A3( ( ( (INT64)(INT32)MAC3 << n_sf ) + ( (INT16)IR0 * (INT16)IR3 ) ) >> n_sf ); - IR1 = Lm_B1( (INT32)MAC1, 0 ); - IR2 = Lm_B2( (INT32)MAC2, 0 ); - IR3 = Lm_B3( (INT32)MAC3, 0 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - return; - } - break; - case 0x3f: - if( gteop == 0x108043f || - gteop == 0x118043f ) - { - GTELOG( "NCCT" ); - FLAG = 0; - - for( n_v = 0; n_v < 3; n_v++ ) - { - MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); - MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); - MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); - MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); - MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); - IR1 = Lm_B1( (INT32)MAC1, 1 ); - IR2 = Lm_B2( (INT32)MAC2, 1 ); - IR3 = Lm_B3( (INT32)MAC3, 1 ); - CD0 = CD1; - CD1 = CD2; - CD2 = CODE; - R0 = R1; - R1 = R2; - R2 = Lm_C1( (INT32)MAC1 >> 4 ); - G0 = G1; - G1 = G2; - G2 = Lm_C2( (INT32)MAC2 >> 4 ); - B0 = B1; - B1 = B2; - B2 = Lm_C3( (INT32)MAC3 >> 4 ); - } - return; - } - break; - } - ui_popup_time( 1, "unknown GTE op %08x", gteop ); - logerror( "%08x: unknown GTE op %08x\n", mipscpu.pc, gteop ); - mips_stop(); -} - -/************************************************************************** - * Generic set_info - **************************************************************************/ - -static void mips_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ0: set_irq_line(MIPS_IRQ0, info->i); break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ1: set_irq_line(MIPS_IRQ1, info->i); break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ2: set_irq_line(MIPS_IRQ2, info->i); break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ3: set_irq_line(MIPS_IRQ3, info->i); break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ4: set_irq_line(MIPS_IRQ4, info->i); break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ5: set_irq_line(MIPS_IRQ5, info->i); break; - - case CPUINFO_INT_PC: mips_set_pc( info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_PC: mips_set_pc( info->i ); break; - case CPUINFO_INT_SP: /* no stack */ break; - case CPUINFO_INT_REGISTER + MIPS_DELAYV: mipscpu.delayv = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_DELAYR: if( info->i <= REGPC ) mipscpu.delayr = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_HI: mipscpu.hi = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_LO: mipscpu.lo = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R0: mipscpu.r[ 0 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R1: mipscpu.r[ 1 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R2: mipscpu.r[ 2 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R3: mipscpu.r[ 3 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R4: mipscpu.r[ 4 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R5: mipscpu.r[ 5 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R6: mipscpu.r[ 6 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R7: mipscpu.r[ 7 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R8: mipscpu.r[ 8 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R9: mipscpu.r[ 9 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R10: mipscpu.r[ 10 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R11: mipscpu.r[ 11 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R12: mipscpu.r[ 12 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R13: mipscpu.r[ 13 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R14: mipscpu.r[ 14 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R15: mipscpu.r[ 15 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R16: mipscpu.r[ 16 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R17: mipscpu.r[ 17 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R18: mipscpu.r[ 18 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R19: mipscpu.r[ 19 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R20: mipscpu.r[ 20 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R21: mipscpu.r[ 21 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R22: mipscpu.r[ 22 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R23: mipscpu.r[ 23 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R24: mipscpu.r[ 24 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R25: mipscpu.r[ 25 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R26: mipscpu.r[ 26 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R27: mipscpu.r[ 27 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R28: mipscpu.r[ 28 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R29: mipscpu.r[ 29 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R30: mipscpu.r[ 30 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_R31: mipscpu.r[ 31 ] = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R0: mips_set_cp0r( 0, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R1: mips_set_cp0r( 1, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R2: mips_set_cp0r( 2, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R3: mips_set_cp0r( 3, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R4: mips_set_cp0r( 4, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R5: mips_set_cp0r( 5, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R6: mips_set_cp0r( 6, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R7: mips_set_cp0r( 7, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R8: mips_set_cp0r( 8, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R9: mips_set_cp0r( 9, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R10: mips_set_cp0r( 10, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R11: mips_set_cp0r( 11, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R12: mips_set_cp0r( 12, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R13: mips_set_cp0r( 13, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R14: mips_set_cp0r( 14, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R15: mips_set_cp0r( 15, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R16: mips_set_cp0r( 16, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R17: mips_set_cp0r( 17, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R18: mips_set_cp0r( 18, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R19: mips_set_cp0r( 19, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R20: mips_set_cp0r( 20, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R21: mips_set_cp0r( 21, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R22: mips_set_cp0r( 22, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R23: mips_set_cp0r( 23, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R24: mips_set_cp0r( 24, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R25: mips_set_cp0r( 25, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R26: mips_set_cp0r( 26, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R27: mips_set_cp0r( 27, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R28: mips_set_cp0r( 28, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R29: mips_set_cp0r( 29, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R30: mips_set_cp0r( 30, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP0R31: mips_set_cp0r( 31, info->i ); break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR0: mipscpu.cp2dr[ 0 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR1: mipscpu.cp2dr[ 1 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR2: mipscpu.cp2dr[ 2 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR3: mipscpu.cp2dr[ 3 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR4: mipscpu.cp2dr[ 4 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR5: mipscpu.cp2dr[ 5 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR6: mipscpu.cp2dr[ 6 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR7: mipscpu.cp2dr[ 7 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR8: mipscpu.cp2dr[ 8 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR9: mipscpu.cp2dr[ 9 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR10: mipscpu.cp2dr[ 10 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR11: mipscpu.cp2dr[ 11 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR12: mipscpu.cp2dr[ 12 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR13: mipscpu.cp2dr[ 13 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR14: mipscpu.cp2dr[ 14 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR15: mipscpu.cp2dr[ 15 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR16: mipscpu.cp2dr[ 16 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR17: mipscpu.cp2dr[ 17 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR18: mipscpu.cp2dr[ 18 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR19: mipscpu.cp2dr[ 19 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR20: mipscpu.cp2dr[ 20 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR21: mipscpu.cp2dr[ 21 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR22: mipscpu.cp2dr[ 22 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR23: mipscpu.cp2dr[ 23 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR24: mipscpu.cp2dr[ 24 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR25: mipscpu.cp2dr[ 25 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR26: mipscpu.cp2dr[ 26 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR27: mipscpu.cp2dr[ 27 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR28: mipscpu.cp2dr[ 28 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR29: mipscpu.cp2dr[ 29 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR30: mipscpu.cp2dr[ 30 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR31: mipscpu.cp2dr[ 31 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR0: mipscpu.cp2cr[ 0 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR1: mipscpu.cp2cr[ 1 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR2: mipscpu.cp2cr[ 2 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR3: mipscpu.cp2cr[ 3 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR4: mipscpu.cp2cr[ 4 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR5: mipscpu.cp2cr[ 5 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR6: mipscpu.cp2cr[ 6 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR7: mipscpu.cp2cr[ 7 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR8: mipscpu.cp2cr[ 8 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR9: mipscpu.cp2cr[ 9 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR10: mipscpu.cp2cr[ 10 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR11: mipscpu.cp2cr[ 11 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR12: mipscpu.cp2cr[ 12 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR13: mipscpu.cp2cr[ 13 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR14: mipscpu.cp2cr[ 14 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR15: mipscpu.cp2cr[ 15 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR16: mipscpu.cp2cr[ 16 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR17: mipscpu.cp2cr[ 17 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR18: mipscpu.cp2cr[ 18 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR19: mipscpu.cp2cr[ 19 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR20: mipscpu.cp2cr[ 20 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR21: mipscpu.cp2cr[ 21 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR22: mipscpu.cp2cr[ 22 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR23: mipscpu.cp2cr[ 23 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR24: mipscpu.cp2cr[ 24 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR25: mipscpu.cp2cr[ 25 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR26: mipscpu.cp2cr[ 26 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR27: mipscpu.cp2cr[ 27 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR28: mipscpu.cp2cr[ 28 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR29: mipscpu.cp2cr[ 29 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR30: mipscpu.cp2cr[ 30 ].d = info->i; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR31: mipscpu.cp2cr[ 31 ].d = info->i; break; - } -} - - - -/************************************************************************** - * Generic get_info - **************************************************************************/ - -static void mips_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(mipscpu); break; - case CPUINFO_INT_INPUT_LINES: info->i = 6; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; - case CPUINFO_INT_MAX_CYCLES: info->i = 40; break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ0: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x400) ? ASSERT_LINE : CLEAR_LINE; break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ1: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x800) ? ASSERT_LINE : CLEAR_LINE; break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ2: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x1000) ? ASSERT_LINE : CLEAR_LINE; break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ3: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x2000) ? ASSERT_LINE : CLEAR_LINE; break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ4: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x4000) ? ASSERT_LINE : CLEAR_LINE; break; - case CPUINFO_INT_INPUT_STATE + MIPS_IRQ5: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x8000) ? ASSERT_LINE : CLEAR_LINE; break; - - case CPUINFO_INT_PREVIOUSPC: /* not implemented */ break; - - case CPUINFO_INT_PC: info->i = mipscpu.pc; break; - case CPUINFO_INT_REGISTER + MIPS_PC: info->i = mipscpu.pc; break; - case CPUINFO_INT_SP: - /* because there is no hardware stack and the pipeline causes the cpu to execute the - instruction after a subroutine call before the subroutine is executed there is little - chance of cmd_step_over() in mamedbg.c working. */ - info->i = 0; break; - case CPUINFO_INT_REGISTER + MIPS_DELAYV: info->i = mipscpu.delayv; break; - case CPUINFO_INT_REGISTER + MIPS_DELAYR: info->i = mipscpu.delayr; break; - case CPUINFO_INT_REGISTER + MIPS_HI: info->i = mipscpu.hi; break; - case CPUINFO_INT_REGISTER + MIPS_LO: info->i = mipscpu.lo; break; - case CPUINFO_INT_REGISTER + MIPS_R0: info->i = mipscpu.r[ 0 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R1: info->i = mipscpu.r[ 1 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R2: info->i = mipscpu.r[ 2 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R3: info->i = mipscpu.r[ 3 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R4: info->i = mipscpu.r[ 4 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R5: info->i = mipscpu.r[ 5 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R6: info->i = mipscpu.r[ 6 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R7: info->i = mipscpu.r[ 7 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R8: info->i = mipscpu.r[ 8 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R9: info->i = mipscpu.r[ 9 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R10: info->i = mipscpu.r[ 10 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R11: info->i = mipscpu.r[ 11 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R12: info->i = mipscpu.r[ 12 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R13: info->i = mipscpu.r[ 13 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R14: info->i = mipscpu.r[ 14 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R15: info->i = mipscpu.r[ 15 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R16: info->i = mipscpu.r[ 16 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R17: info->i = mipscpu.r[ 17 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R18: info->i = mipscpu.r[ 18 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R19: info->i = mipscpu.r[ 19 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R20: info->i = mipscpu.r[ 20 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R21: info->i = mipscpu.r[ 21 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R22: info->i = mipscpu.r[ 22 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R23: info->i = mipscpu.r[ 23 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R24: info->i = mipscpu.r[ 24 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R25: info->i = mipscpu.r[ 25 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R26: info->i = mipscpu.r[ 26 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R27: info->i = mipscpu.r[ 27 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R28: info->i = mipscpu.r[ 28 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R29: info->i = mipscpu.r[ 29 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R30: info->i = mipscpu.r[ 30 ]; break; - case CPUINFO_INT_REGISTER + MIPS_R31: info->i = mipscpu.r[ 31 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R0: info->i = mipscpu.cp0r[ 0 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R1: info->i = mipscpu.cp0r[ 1 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R2: info->i = mipscpu.cp0r[ 2 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R3: info->i = mipscpu.cp0r[ 3 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R4: info->i = mipscpu.cp0r[ 4 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R5: info->i = mipscpu.cp0r[ 5 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R6: info->i = mipscpu.cp0r[ 6 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R7: info->i = mipscpu.cp0r[ 7 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R8: info->i = mipscpu.cp0r[ 8 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R9: info->i = mipscpu.cp0r[ 9 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R10: info->i = mipscpu.cp0r[ 10 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R11: info->i = mipscpu.cp0r[ 11 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R12: info->i = mipscpu.cp0r[ 12 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R13: info->i = mipscpu.cp0r[ 13 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R14: info->i = mipscpu.cp0r[ 14 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R15: info->i = mipscpu.cp0r[ 15 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R16: info->i = mipscpu.cp0r[ 16 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R17: info->i = mipscpu.cp0r[ 17 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R18: info->i = mipscpu.cp0r[ 18 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R19: info->i = mipscpu.cp0r[ 19 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R20: info->i = mipscpu.cp0r[ 20 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R21: info->i = mipscpu.cp0r[ 21 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R22: info->i = mipscpu.cp0r[ 22 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R23: info->i = mipscpu.cp0r[ 23 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R24: info->i = mipscpu.cp0r[ 24 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R25: info->i = mipscpu.cp0r[ 25 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R26: info->i = mipscpu.cp0r[ 26 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R27: info->i = mipscpu.cp0r[ 27 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R28: info->i = mipscpu.cp0r[ 28 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R29: info->i = mipscpu.cp0r[ 29 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R30: info->i = mipscpu.cp0r[ 30 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP0R31: info->i = mipscpu.cp0r[ 31 ]; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR0: info->i = mipscpu.cp2dr[ 0 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR1: info->i = mipscpu.cp2dr[ 1 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR2: info->i = mipscpu.cp2dr[ 2 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR3: info->i = mipscpu.cp2dr[ 3 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR4: info->i = mipscpu.cp2dr[ 4 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR5: info->i = mipscpu.cp2dr[ 5 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR6: info->i = mipscpu.cp2dr[ 6 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR7: info->i = mipscpu.cp2dr[ 7 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR8: info->i = mipscpu.cp2dr[ 8 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR9: info->i = mipscpu.cp2dr[ 9 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR10: info->i = mipscpu.cp2dr[ 10 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR11: info->i = mipscpu.cp2dr[ 11 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR12: info->i = mipscpu.cp2dr[ 12 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR13: info->i = mipscpu.cp2dr[ 13 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR14: info->i = mipscpu.cp2dr[ 14 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR15: info->i = mipscpu.cp2dr[ 15 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR16: info->i = mipscpu.cp2dr[ 16 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR17: info->i = mipscpu.cp2dr[ 17 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR18: info->i = mipscpu.cp2dr[ 18 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR19: info->i = mipscpu.cp2dr[ 19 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR20: info->i = mipscpu.cp2dr[ 20 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR21: info->i = mipscpu.cp2dr[ 21 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR22: info->i = mipscpu.cp2dr[ 22 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR23: info->i = mipscpu.cp2dr[ 23 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR24: info->i = mipscpu.cp2dr[ 24 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR25: info->i = mipscpu.cp2dr[ 25 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR26: info->i = mipscpu.cp2dr[ 26 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR27: info->i = mipscpu.cp2dr[ 27 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR28: info->i = mipscpu.cp2dr[ 28 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR29: info->i = mipscpu.cp2dr[ 29 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR30: info->i = mipscpu.cp2dr[ 30 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2DR31: info->i = mipscpu.cp2dr[ 31 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR0: info->i = mipscpu.cp2cr[ 0 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR1: info->i = mipscpu.cp2cr[ 1 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR2: info->i = mipscpu.cp2cr[ 2 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR3: info->i = mipscpu.cp2cr[ 3 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR4: info->i = mipscpu.cp2cr[ 4 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR5: info->i = mipscpu.cp2cr[ 5 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR6: info->i = mipscpu.cp2cr[ 6 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR7: info->i = mipscpu.cp2cr[ 7 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR8: info->i = mipscpu.cp2cr[ 8 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR9: info->i = mipscpu.cp2cr[ 9 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR10: info->i = mipscpu.cp2cr[ 10 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR11: info->i = mipscpu.cp2cr[ 11 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR12: info->i = mipscpu.cp2cr[ 12 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR13: info->i = mipscpu.cp2cr[ 13 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR14: info->i = mipscpu.cp2cr[ 14 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR15: info->i = mipscpu.cp2cr[ 15 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR16: info->i = mipscpu.cp2cr[ 16 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR17: info->i = mipscpu.cp2cr[ 17 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR18: info->i = mipscpu.cp2cr[ 18 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR19: info->i = mipscpu.cp2cr[ 19 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR20: info->i = mipscpu.cp2cr[ 20 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR21: info->i = mipscpu.cp2cr[ 21 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR22: info->i = mipscpu.cp2cr[ 22 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR23: info->i = mipscpu.cp2cr[ 23 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR24: info->i = mipscpu.cp2cr[ 24 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR25: info->i = mipscpu.cp2cr[ 25 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR26: info->i = mipscpu.cp2cr[ 26 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR27: info->i = mipscpu.cp2cr[ 27 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR28: info->i = mipscpu.cp2cr[ 28 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR29: info->i = mipscpu.cp2cr[ 29 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR30: info->i = mipscpu.cp2cr[ 30 ].d; break; - case CPUINFO_INT_REGISTER + MIPS_CP2CR31: info->i = mipscpu.cp2cr[ 31 ].d; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = mips_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = mips_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = mips_set_context; break; - case CPUINFO_PTR_INIT: info->init = mips_init; break; - case CPUINFO_PTR_RESET: info->reset = mips_reset; break; - case CPUINFO_PTR_EXIT: info->exit = mips_exit; break; - case CPUINFO_PTR_EXECUTE: info->execute = mips_execute; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = mips_dasm; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &mips_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s, "PSX CPU"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "mipscpu"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.5"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright 2005 smf"); break; - - case CPUINFO_STR_FLAGS: strcpy(info->s, " "); break; - - case CPUINFO_STR_REGISTER + MIPS_PC: sprintf( info->s, "pc :%08x", mipscpu.pc ); break; - case CPUINFO_STR_REGISTER + MIPS_DELAYV: sprintf( info->s, "delay :%08x", mipscpu.delayv ); break; - case CPUINFO_STR_REGISTER + MIPS_DELAYR: sprintf( info->s, "delay %s:%02x", delayn[ mipscpu.delayr ], mipscpu.delayr ); break; - case CPUINFO_STR_REGISTER + MIPS_HI: sprintf( info->s, "hi :%08x", mipscpu.hi ); break; - case CPUINFO_STR_REGISTER + MIPS_LO: sprintf( info->s, "lo :%08x", mipscpu.lo ); break; - case CPUINFO_STR_REGISTER + MIPS_R0: sprintf( info->s, "zero :%08x", mipscpu.r[ 0 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R1: sprintf( info->s, "at :%08x", mipscpu.r[ 1 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R2: sprintf( info->s, "v0 :%08x", mipscpu.r[ 2 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R3: sprintf( info->s, "v1 :%08x", mipscpu.r[ 3 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R4: sprintf( info->s, "a0 :%08x", mipscpu.r[ 4 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R5: sprintf( info->s, "a1 :%08x", mipscpu.r[ 5 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R6: sprintf( info->s, "a2 :%08x", mipscpu.r[ 6 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R7: sprintf( info->s, "a3 :%08x", mipscpu.r[ 7 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R8: sprintf( info->s, "t0 :%08x", mipscpu.r[ 8 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R9: sprintf( info->s, "t1 :%08x", mipscpu.r[ 9 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R10: sprintf( info->s, "t2 :%08x", mipscpu.r[ 10 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R11: sprintf( info->s, "t3 :%08x", mipscpu.r[ 11 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R12: sprintf( info->s, "t4 :%08x", mipscpu.r[ 12 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R13: sprintf( info->s, "t5 :%08x", mipscpu.r[ 13 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R14: sprintf( info->s, "t6 :%08x", mipscpu.r[ 14 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R15: sprintf( info->s, "t7 :%08x", mipscpu.r[ 15 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R16: sprintf( info->s, "s0 :%08x", mipscpu.r[ 16 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R17: sprintf( info->s, "s1 :%08x", mipscpu.r[ 17 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R18: sprintf( info->s, "s2 :%08x", mipscpu.r[ 18 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R19: sprintf( info->s, "s3 :%08x", mipscpu.r[ 19 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R20: sprintf( info->s, "s4 :%08x", mipscpu.r[ 20 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R21: sprintf( info->s, "s5 :%08x", mipscpu.r[ 21 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R22: sprintf( info->s, "s6 :%08x", mipscpu.r[ 22 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R23: sprintf( info->s, "s7 :%08x", mipscpu.r[ 23 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R24: sprintf( info->s, "t8 :%08x", mipscpu.r[ 24 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R25: sprintf( info->s, "t9 :%08x", mipscpu.r[ 25 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R26: sprintf( info->s, "k0 :%08x", mipscpu.r[ 26 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R27: sprintf( info->s, "k1 :%08x", mipscpu.r[ 27 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R28: sprintf( info->s, "gp :%08x", mipscpu.r[ 28 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R29: sprintf( info->s, "sp :%08x", mipscpu.r[ 29 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R30: sprintf( info->s, "fp :%08x", mipscpu.r[ 30 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_R31: sprintf( info->s, "ra :%08x", mipscpu.r[ 31 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R0: sprintf( info->s, "Index :%08x", mipscpu.cp0r[ 0 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R1: sprintf( info->s, "Random :%08x", mipscpu.cp0r[ 1 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R2: sprintf( info->s, "EntryLo :%08x", mipscpu.cp0r[ 2 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R3: sprintf( info->s, "cp0r3 :%08x", mipscpu.cp0r[ 3 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R4: sprintf( info->s, "Context :%08x", mipscpu.cp0r[ 4 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R5: sprintf( info->s, "cp0r5 :%08x", mipscpu.cp0r[ 5 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R6: sprintf( info->s, "cp0r6 :%08x", mipscpu.cp0r[ 6 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R7: sprintf( info->s, "cp0r7 :%08x", mipscpu.cp0r[ 7 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R8: sprintf( info->s, "BadVAddr:%08x", mipscpu.cp0r[ 8 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R9: sprintf( info->s, "cp0r9 :%08x", mipscpu.cp0r[ 9 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R10: sprintf( info->s, "EntryHi :%08x", mipscpu.cp0r[ 10 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R11: sprintf( info->s, "cp0r11 :%08x", mipscpu.cp0r[ 11 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R12: sprintf( info->s, "SR :%08x", mipscpu.cp0r[ 12 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R13: sprintf( info->s, "Cause :%08x", mipscpu.cp0r[ 13 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R14: sprintf( info->s, "EPC :%08x", mipscpu.cp0r[ 14 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R15: sprintf( info->s, "PRId :%08x", mipscpu.cp0r[ 15 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R16: sprintf( info->s, "cp0r16 :%08x", mipscpu.cp0r[ 16 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R17: sprintf( info->s, "cp0r17 :%08x", mipscpu.cp0r[ 17 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R18: sprintf( info->s, "cp0r18 :%08x", mipscpu.cp0r[ 18 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R19: sprintf( info->s, "cp0r19 :%08x", mipscpu.cp0r[ 19 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R20: sprintf( info->s, "cp0r20 :%08x", mipscpu.cp0r[ 20 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R21: sprintf( info->s, "cp0r21 :%08x", mipscpu.cp0r[ 21 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R22: sprintf( info->s, "cp0r22 :%08x", mipscpu.cp0r[ 22 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R23: sprintf( info->s, "cp0r23 :%08x", mipscpu.cp0r[ 23 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R24: sprintf( info->s, "cp0r24 :%08x", mipscpu.cp0r[ 24 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R25: sprintf( info->s, "cp0r25 :%08x", mipscpu.cp0r[ 25 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R26: sprintf( info->s, "cp0r26 :%08x", mipscpu.cp0r[ 26 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R27: sprintf( info->s, "cp0r27 :%08x", mipscpu.cp0r[ 27 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R28: sprintf( info->s, "cp0r28 :%08x", mipscpu.cp0r[ 28 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R29: sprintf( info->s, "cp0r29 :%08x", mipscpu.cp0r[ 29 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R30: sprintf( info->s, "cp0r30 :%08x", mipscpu.cp0r[ 30 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP0R31: sprintf( info->s, "cp0r31 :%08x", mipscpu.cp0r[ 31 ] ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR0: sprintf( info->s, "vxy0 :%08x", mipscpu.cp2dr[ 0 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR1: sprintf( info->s, "vz0 :%08x", mipscpu.cp2dr[ 1 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR2: sprintf( info->s, "vxy1 :%08x", mipscpu.cp2dr[ 2 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR3: sprintf( info->s, "vz1 :%08x", mipscpu.cp2dr[ 3 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR4: sprintf( info->s, "vxy2 :%08x", mipscpu.cp2dr[ 4 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR5: sprintf( info->s, "vz2 :%08x", mipscpu.cp2dr[ 5 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR6: sprintf( info->s, "rgb :%08x", mipscpu.cp2dr[ 6 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR7: sprintf( info->s, "otz :%08x", mipscpu.cp2dr[ 7 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR8: sprintf( info->s, "ir0 :%08x", mipscpu.cp2dr[ 8 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR9: sprintf( info->s, "ir1 :%08x", mipscpu.cp2dr[ 9 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR10: sprintf( info->s, "ir2 :%08x", mipscpu.cp2dr[ 10 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR11: sprintf( info->s, "ir3 :%08x", mipscpu.cp2dr[ 11 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR12: sprintf( info->s, "sxy0 :%08x", mipscpu.cp2dr[ 12 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR13: sprintf( info->s, "sxy1 :%08x", mipscpu.cp2dr[ 13 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR14: sprintf( info->s, "sxy2 :%08x", mipscpu.cp2dr[ 14 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR15: sprintf( info->s, "sxyp :%08x", mipscpu.cp2dr[ 15 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR16: sprintf( info->s, "sz0 :%08x", mipscpu.cp2dr[ 16 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR17: sprintf( info->s, "sz1 :%08x", mipscpu.cp2dr[ 17 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR18: sprintf( info->s, "sz2 :%08x", mipscpu.cp2dr[ 18 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR19: sprintf( info->s, "sz3 :%08x", mipscpu.cp2dr[ 19 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR20: sprintf( info->s, "rgb0 :%08x", mipscpu.cp2dr[ 20 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR21: sprintf( info->s, "rgb1 :%08x", mipscpu.cp2dr[ 21 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR22: sprintf( info->s, "rgb2 :%08x", mipscpu.cp2dr[ 22 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR23: sprintf( info->s, "res1 :%08x", mipscpu.cp2dr[ 23 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR24: sprintf( info->s, "mac0 :%08x", mipscpu.cp2dr[ 24 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR25: sprintf( info->s, "mac1 :%08x", mipscpu.cp2dr[ 25 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR26: sprintf( info->s, "mac2 :%08x", mipscpu.cp2dr[ 26 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR27: sprintf( info->s, "mac3 :%08x", mipscpu.cp2dr[ 27 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR28: sprintf( info->s, "irgb :%08x", mipscpu.cp2dr[ 28 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR29: sprintf( info->s, "orgb :%08x", mipscpu.cp2dr[ 29 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR30: sprintf( info->s, "lzcs :%08x", mipscpu.cp2dr[ 30 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2DR31: sprintf( info->s, "lzcr :%08x", mipscpu.cp2dr[ 31 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR0: sprintf( info->s, "r11r12 :%08x", mipscpu.cp2cr[ 0 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR1: sprintf( info->s, "r13r21 :%08x", mipscpu.cp2cr[ 1 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR2: sprintf( info->s, "r22r23 :%08x", mipscpu.cp2cr[ 2 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR3: sprintf( info->s, "r31r32 :%08x", mipscpu.cp2cr[ 3 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR4: sprintf( info->s, "r33 :%08x", mipscpu.cp2cr[ 4 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR5: sprintf( info->s, "trx :%08x", mipscpu.cp2cr[ 5 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR6: sprintf( info->s, "try :%08x", mipscpu.cp2cr[ 6 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR7: sprintf( info->s, "trz :%08x", mipscpu.cp2cr[ 7 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR8: sprintf( info->s, "l11l12 :%08x", mipscpu.cp2cr[ 8 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR9: sprintf( info->s, "l13l21 :%08x", mipscpu.cp2cr[ 9 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR10: sprintf( info->s, "l22l23 :%08x", mipscpu.cp2cr[ 10 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR11: sprintf( info->s, "l31l32 :%08x", mipscpu.cp2cr[ 11 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR12: sprintf( info->s, "l33 :%08x", mipscpu.cp2cr[ 12 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR13: sprintf( info->s, "rbk :%08x", mipscpu.cp2cr[ 13 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR14: sprintf( info->s, "gbk :%08x", mipscpu.cp2cr[ 14 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR15: sprintf( info->s, "bbk :%08x", mipscpu.cp2cr[ 15 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR16: sprintf( info->s, "lr1lr2 :%08x", mipscpu.cp2cr[ 16 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR17: sprintf( info->s, "lr31g1 :%08x", mipscpu.cp2cr[ 17 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR18: sprintf( info->s, "lg2lg3 :%08x", mipscpu.cp2cr[ 18 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR19: sprintf( info->s, "lb1lb2 :%08x", mipscpu.cp2cr[ 19 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR20: sprintf( info->s, "lb3 :%08x", mipscpu.cp2cr[ 20 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR21: sprintf( info->s, "rfc :%08x", mipscpu.cp2cr[ 21 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR22: sprintf( info->s, "gfc :%08x", mipscpu.cp2cr[ 22 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR23: sprintf( info->s, "bfc :%08x", mipscpu.cp2cr[ 23 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR24: sprintf( info->s, "ofx :%08x", mipscpu.cp2cr[ 24 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR25: sprintf( info->s, "ofy :%08x", mipscpu.cp2cr[ 25 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR26: sprintf( info->s, "h :%08x", mipscpu.cp2cr[ 26 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR27: sprintf( info->s, "dqa :%08x", mipscpu.cp2cr[ 27 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR28: sprintf( info->s, "dqb :%08x", mipscpu.cp2cr[ 28 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR29: sprintf( info->s, "zsf3 :%08x", mipscpu.cp2cr[ 29 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR30: sprintf( info->s, "zsf4 :%08x", mipscpu.cp2cr[ 30 ].d ); break; - case CPUINFO_STR_REGISTER + MIPS_CP2CR31: sprintf( info->s, "flag :%08x", mipscpu.cp2cr[ 31 ].d ); break; - } -} - - -#if (HAS_PSXCPU) -/************************************************************************** - * CPU-specific set_info - **************************************************************************/ - -void psxcpu_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s, "PSX CPU"); break; - - default: - mips_get_info(state, info); - break; - } -} -#endif diff --git a/src/cpu/pdp1/pdp1.c b/src/cpu/pdp1/pdp1.c deleted file mode 100644 index e097171cd..000000000 --- a/src/cpu/pdp1/pdp1.c +++ /dev/null @@ -1,1895 +0,0 @@ -/* - * Note: Original Java source written by: - * - * Barry Silverman mailto:barry@disus.com or mailto:bss@media.mit.edu - * Vadim Gerasimov mailto:vadim@media.mit.edu - * - * Basically, it has been rewritten entirely in order to perform cycle-level simulation - * (with only a few flip-flops being set one cycle too early or too late). I don't know if - * it is a good thing or a bad thing (it makes emulation more accurate, but slower, and - * code is more complex and less readable), but it appears to be the only way we could emulate - * mid-instruction sequence break. And it enables us to emulate the control panel fairly - * accurately. - * - * Additionnally, IOT functions have been modified to be external: IOT callback pointers are set - * at emulation initiation, and most IOT callback functions are part of the machine emulation. - * - * - * for the runnable java applet, with applet and Spacewar! source, go to: - * http://lcs.www.media.mit.edu/groups/el/projects/spacewar/ - * - * for a complete html version of the pdp1 handbook go to: - * http://www.dbit.com/~greeng3/pdp1/index.html - * - * there is another java simulator (by the same people) which runs the - * original pdp1 LISP interpreter, go to: - * http://lcs.www.media.mit.edu/groups/el/projects/pdp1 - * - * Another PDP1 emulator (or simulator) is at: - * ftp://minnie.cs.adfa.oz.au/pub/PDP-11/Sims/Supnik_2.3 - * It seems to emulate pdp1 I/O more accurately than we do. - * However, there is no CRT emulation. - * - * and finally, there is a nice article about SPACEWAR!, go to: - * http://ars-www.uchicago.edu/~eric/lore/spacewar/spacewar.html - * - * some extra documentation is available on spies: - * http://www.spies.com/~aek/pdf/dec/pdp1/ - * The file "F17_PDP1Maint.pdf" explains operation procedures and much of the internals of pdp-1. - * It was the main reference for this emulator. - * The file "F25_PDP1_IO.pdf" has interesting information on the I/O system, too. - * - * Following is an extract from the handbook: - * - * INTRODUCTION - * - * The Programmed Data Processor (PDP-1) is a high speed, solid state digital computer designed to - * operate with many types of input-output devices with no internal machine changes. It is a single - * address, single instruction, stored program computer with powerful program features. Five-megacycle - * circuits, a magnetic core memory and fully parallel processing make possible a computation rate of - * 100,000 additions per second. The PDP-1 is unusually versatile. It is easy to install, operate and - * maintain. Conventional 110-volt power is used, neither air conditioning nor floor reinforcement is - * necessary, and preventive maintenance is provided for by built-in marginal checking circuits. - * - * PDP-1 circuits are based on the designs of DEC's highly successful and reliable System Modules. - * Flip-flops and most switches use saturating transistors. Primary active elements are - * Micro-Alloy-Diffused transistors. - * - * The entire computer occupies only 17 square feet of floor space. It consists of four equipment frames, - * one of which is used as the operating station. - * - * CENTRAL PROCESSOR - * - * The Central Processor contains the control, arithmetic and memory addressing elements, and the memory - * buffer register. The word length is 18 binary digits. Instructions are performed in multiples of the - * memory cycle time of five microseconds. Add, subtract, deposit, and load, for example, are two-cycle - * instructions requiring 10 microseconds. Multiplication requires and average of 20 microseconds. - * Program features include: single address instructions, multiple step indirect addressing and logical - * arithmetic commands. Console features include: flip-flop indicators grouped for convenient octal - * reading, six program flags for automatic setting and computer sensing, and six sense switches for - * manual setting and computer sensing. - * - * MEMORY SYSTEM - * - * The coincident-current, magnetic core memory of a standard PDP-1 holds 4096 words of 18 bits each. - * Memory capacity may be readily expanded, in increments of 4096 words, to a maximum of 65,536 words. - * The read-rewrite time of the memory is five microseconds, the basic computer rate. Driving currents - * are automatically adjusted to compensate for temperature variations between 50 and 110 degrees - * Fahrenheit. The core memory storage may be supplemented by up to 24 magnetic tape transports. - * - * INPUT-OUTPUT - * - * PDP-1 is designed to operate a variety of buffered input-output devices. Standard equipment consistes - * of a perforated tape reader with a read speed of 400 lines per second, and alphanuermic typewriter for - * on-line operation in both input and output, and a perforated tape punch (alphanumeric or binary) with - * a speed of 63 lines per second. A variety of optional equipment is available, including the following: - * - * Precision CRT Display Type 30 - * Ultra-Precision CRT Display Type 31 - * Symbol Generator Type 33 - * Light Pen Type 32 - * Oscilloscope Display Type 34 - * Card Punch Control Type 40-1 - * Card Reader and Control Type 421 - * Magnetic Tape Transport Type 50 - * Programmed Magnetic Tape Control Type 51 - * Automatic Magnetic Tape Control Type 52 - * Automatic Magnetic Tape Control Type 510 - * Parallel Drum Type 23 - * Automatic Line Printer and Control Type 64 - * 18-bit Real Time Clock - * 18-bit Output Relay Buffer Type 140 - * Multiplexed A-D Converter Type 138/139 - * - * All in-out operations are performed through the In-Out Register or through the high speed input-output - * channels. - * - * The PDP-1 is also available with the optional Sequence Break System. This is a multi-channel priority - * interrupt feature which permits concurrent operation of several in-out devices. A one-channel Sequence - * Break System is included in the standard PDP-1. Optional Sequence Break Systems consist of 16, 32, 64, - * 128, and 256 channels. - * - * ... - * - * BASIC INSTRUCTIONS - * - * OPER. TIME - * INSTRUCTION CODE # EXPLANATION (usec) - * ------------------------------------------------------------------------------ - * add Y 40 Add C(Y) to C(AC) 10 - * and Y 02 Logical AND C(Y) with C(AC) 10 - * cal Y 16 Equals jda 100 10 - * dac Y 24 Deposit C(AC) in Y 10 - * dap Y 26 Deposit contents of address part of AC in Y 10 - * dio Y 32 Deposit C(IO) in Y 10 - * dip Y 30 Deposit contents of instruction part of AC in Y 10 - * div Y 56 Divide 40 max - * dzm Y 34 Deposit zero in Y 10 - * idx Y 44 Index (add one) C(Y), leave in Y & AC 10 - * ior Y 04 Inclusive OR C(Y) with C(AC) 10 - * iot Y 72 In-out transfer, see below - * isp Y 46 Index and skip if result is positive 10 - * jda Y 17 Equals dac Y and jsp Y+1 10 - * jmp Y 60 Take next instruction from Y 5 - * jsp Y 62 Jump to Y and save program counter in AC 5 - * lac Y 20 Load the AC with C(Y) 10 - * law N 70 Load the AC with the number N 5 - * law-N 71 Load the AC with the number -N 5 - * lio Y 22 Load IO with C(Y) 10 - * mul Y 54 Multiply 25 max - * opr 76 Operate, see below 5 - * sad Y 50 Skip next instruction if C(AC) <> C(Y) 10 - * sas Y 52 Skip next instruction if C(AC) = C(Y) 10 - * sft 66 Shift, see below 5 - * skp 64 Skip, see below 5 - * sub Y 42 Subtract C(Y) from C(AC) 10 - * xct Y 10 Execute instruction in Y 5+ - * xor Y 06 Exclusive OR C(Y) with C(AC) 10 - * - * OPERATE GROUP - * - * OPER. TIME - * INSTRUCTION CODE # EXPLANATION (usec) - * ------------------------------------------------------------------------------ - * cla 760200 Clear AC 5 - * clf 76000f Clear selected Program Flag (f = flag #) 5 - * cli 764000 Clear IO 5 - * cma 761000 Complement AC 5 - * hlt 760400 Halt 5 - * lap 760100 Load AC with Program Counter 5 - * lat 762200 Load AC from Test Word switches 5 - * nop 760000 No operation 5 - * stf 76001f Set selected Program Flag 5 - * - * IN-OUT TRANSFER GROUP - * - * PERFORATED TAPE READER - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * rpa 720001 Read Perforated Tape Alphanumeric - * rpb 720002 Read Perforated Tape Binary - * rrb 720030 Read Reader Buffer - * - * PERFORATED TAPE PUNCH - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * ppa 720005 Punch Perforated Tape Alphanumeric - * ppb 720006 Punch Perforated Tape Binary - * - * ALPHANUMERIC ON-LINE TYPEWRITER - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * tyo 720003 Type Out - * tyi 720004 Type In - * - * SEQUENCE BREAK SYSTEM TYPE 120 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * esm 720055 Enter Sequence Break Mode - * lsm 720054 Leave Sequence Break Mode - * cbs 720056 Clear Sequence Break System - * dsc 72kn50 Deactivate Sequence Break Channel - * asc 72kn51 Activate Sequence Break Channel - * isb 72kn52 Initiate Sequence Break - * cac 720053 Clear All Channels - * - * HIGH SPEED DATA CONTROL TYPE 131 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * swc 72x046 Set Word Counter - * sia 720346 Set Location Counter - * sdf 720146 Stop Data Flow - * rlc 720366 Read Location Counter - * shr 720446 Set High Speed Channel Request - * - * PRECISION CRT DISPLAY TYPE 30 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * dpy 720007 Display One Point - * - * SYMBOL GENERATOR TYPE 33 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * gpl 722027 Generator Plot Left - * gpr 720027 Generator Plot Right - * glf 722026 Load Format - * gsp 720026 Space - * sdb 722007 Load Buffer, No Intensity - * - * ULTRA-PRECISION CRT DISPLAY TYPE 31 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * dpp 720407 Display One Point on Ultra Precision CRT - * - * CARD PUNCH CONTROL TYPE 40-1 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * lag 720044 Load a Group - * pac 720043 Punch a Card - * - * CARD READER TYPE 421 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * rac 720041 Read Card Alpha - * rbc 720042 Read Card Binary - * rcc 720032 Read Card Column - * - * PROGRAMMED MAGNETIC TAPE CONTROL TYPE 51 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * msm 720073 Select Mode - * mcs 720034 Check Status - * mcb 720070 Clear Buffer - * mwc 720071 Write a Character - * mrc 720072 Read Character - * - * AUTOMATIC MAGNETIC TAPE CONTROL TYPE 52 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * muf 72ue76 Tape Unit and FinalT - * mic 72ue75 Initial and Command - * mrf 72u067 Reset Final - * mri 72ug66 Reset Initial - * mes 72u035 Examine States - * mel 72u036 Examine Location - * inr 72ur67 Initiate a High Speed Channel Request - * ccr 72s067 Clear Command Register - * - * AUTOMATIC MAGNETIC TAPE CONTROL TYPE 510 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * sfc 720072 Skip if Tape Control Free - * rsr 720172 Read State Register - * crf 720272 Clear End-of-Record Flip-Flop - * cpm 720472 Clear Proceed Mode - * dur 72xx70 Load Density, Unit, Rewind - * mtf 73xx71 Load Tape Function Register - * cgo 720073 Clear Go - * - * MULTIPLEXED A-D CONVERTER TYPE 138/139 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * rcb 720031 Read Converter Buffer - * cad 720040 Convert a Voltage - * scv 72mm47 Select Multiplexer (1 of 64 Channels) - * icv 720060 Index Multiplexer - * - * AUTOMATIC LINE PRINTER TYPE 64 - * - * INSTRUCTION CODE # EXPLANATION - * ------------------------------------------------------------------------------ - * clrbuf 722045 Clear Buffer - * lpb 720045 Load Printer Buffer - * pas 721x45 Print and Space - * - * SKIP GROUP - * - * OPER. TIME - * INSTRUCTION CODE # EXPLANATION (usec) - * ------------------------------------------------------------------------------ - * sma 640400 Dkip on minus AC 5 - * spa 640200 Skip on plus AC 5 - * spi 642000 Skip on plus IO 5 - * sza 640100 Skip on ZERO (+0) AC 5 - * szf 6400f Skip on ZERO flag 5 - * szo 641000 Skip on ZERO overflow (and clear overflow) 5 - * szs 6400s0 Skip on ZERO sense switch 5 - * - * SHIFT/ROTATE GROUP - * - * OPER. TIME - * INSTRUCTION CODE # EXPLANATION (usec) - * ------------------------------------------------------------------------------ - * ral 661 Rotate AC left 5 - * rar 671 Rotate AC right 5 - * rcl 663 Rotate Combined AC & IO left 5 - * rcr 673 Rotate Combined AC & IO right 5 - * ril 662 Rotate IO left 5 - * rir 672 Rotate IO right 5 - * sal 665 Shift AC left 5 - * sar 675 Shift AC right 5 - * scl 667 Shift Combined AC & IO left 5 - * scr 677 Shift Combined AC & IO right 5 - * sil 666 Shift IO left 5 - * sir 676 Shift IO right 5 - */ - - -/* - TODO: - * support other extensions as time permits -*/ - - -#include -#include -#include "driver.h" -#include "debugger.h" -#include "pdp1.h" - -#define LOG 0 -#define LOG_EXTRA 0 - -#ifndef LOG_IOT_EXTRA -#define LOG_IOT_EXTRA 0 -#endif - - -static void execute_instruction(void); -static void null_iot (int op2, int nac, int mb, int *io, int ac); -static void lem_eem_iot(int op2, int nac, int mb, int *io, int ac); -static void sbs_iot(int op2, int nac, int mb, int *io, int ac); -static void type_20_sbs_iot(int op2, int nac, int mb, int *io, int ac); -static void pulse_start_clear(void); - - -/* PDP1 Registers */ -typedef struct -{ - /* processor registers */ - UINT32 pc; /* program counter (12, 15 or 16 bits) */ - int ir; /* basic operation code of current instruction (5 bits) */ - int mb; /* memory buffer (used for holding the current instruction only) (18 bits) */ - int ma; /* memory address (12, 15 or 16 bits) */ - int ac; /* accumulator (18 bits) */ - int io; /* i/o register (18 bits) */ - int pf; /* program flag register (6 bits) */ - - /* operator panel switches */ - int ta; /* current state of the 12 or 16 address switches */ - int tw; /* current state of the 18 test word switches */ - int ss; /* current state of the 6 sense switches on the operator panel (6 bits) */ - unsigned int sngl_step : 1; /* stop every memory cycle */ - unsigned int sngl_inst : 1; /* stop every instruction */ - unsigned int extend_sw : 1; /* extend switch (loaded into the extend flip-flop on start/read-in) */ - - /* processor state flip-flops */ - unsigned int run : 1; /* processor is running */ - unsigned int cycle : 1; /* processor is in the midst of an instruction */ - unsigned int defer : 1; /* processor is handling deferred (i.e. indirect) addressing */ - unsigned int brk_ctr : 2; /* break counter */ - unsigned int ov; /* overflow flip-flop */ - unsigned int rim : 1; /* processor is in read-in mode */ - - unsigned int sbm : 1; /* processor is in sequence break mode (i.e. interrupts are enabled) */ - - unsigned int exd : 1; /* extend mode: processor is in extend mode */ - unsigned int exc : 1; /* extend-mode cycle: current instruction cycle is done in extend mode */ - unsigned int ioc : 1; /* i-o commands: seems to be equivalent to (! ioh) */ - unsigned int ioh : 1; /* i-o halt: processor is executing an Input-Output Transfer wait */ - unsigned int ios : 1; /* i-o synchronizer: set on i-o operation completion */ - - /* sequence break system */ - unsigned int irq_state : 16; /* mirrors the state of the interrupt pins */ - unsigned int b1 : 16; /* interrupt enable */ - unsigned int b2 : 16; /* interrupt pulse request pending - asynchronous with computer operation (set by pulses on irq_state, cleared when interrupt is taken) */ - /*unsigned int b3 : 16;*/ /* interrupt request pending - synchronous with computer operation (logical or of irq_state and b2???) */ - unsigned int b4 : 16; /* interrupt in progress */ - - /* additional emulator state variables */ - int rim_step; /* current step in rim execution */ - int sbs_request; /* interrupt request (i.e. (b3 & (~ b4)) && (! sbm)) */ - int sbs_level; /* interrupt request level (first bit in (b3 & (~ b4)) */ - int sbs_restore; /* set when a jump instruction is an interrupt return */ - int no_sequence_break; /* disable sequence break recognition for one cycle */ - - /* callback for the iot instruction */ - void (*extern_iot[64])(int op2, int nac, int mb, int *io, int ac); - /* read a word from the perforated tape reader */ - void (*read_binary_word)(void); - /* called when sc is pulsed: IO devices should reset */ - void (*io_sc_callback)(void); - - /* 0: no extend support, 1: extend with 15-bit address, 2: extend with 16-bit address */ - int extend_support; - - int extended_address_mask; /* 07777 with no extend support, 077777 or 0177777 with extend support */ - int address_extension_mask; /* 00000 with no extend support, 070000 or 0170000 with extend support */ - - /* 1 to use hardware multiply/divide (MUL, DIV) instead of MUS, DIS */ - int hw_mul_div; - - /* 1 for 16-line sequence break system, 0 for default break system */ - int type_20_sbs; -} -pdp1_Regs; - - -static pdp1_Regs pdp1; - -#define PC pdp1.pc -#define IR pdp1.ir -#define MB pdp1.mb -#define MA pdp1.ma -#define AC pdp1.ac -#define IO pdp1.io -#define OV pdp1.ov -#define EXD pdp1.exd -/* note that we start counting flags/sense switches at 1, therefore n is in [1,6] */ -#define FLAGS pdp1.pf -#define READFLAG(n) ((pdp1.pf >> (6-(n))) & 1) -#define WRITEFLAG(n, data) (pdp1.pf = (pdp1.pf & ~(1 << (6-(n)))) | (((data) & 1) << (6-(n)))) -#define SENSE_SW pdp1.ss -#define READSENSE(n) ((pdp1.ss >> (6-(n))) & 1) -#define WRITESENSE(n, data) (pdp1.ss = (pdp1.ss & ~(1 << (6-(n)))) | (((data) & 1) << (6-(n)))) - -#define EXTENDED_ADDRESS_MASK pdp1.extended_address_mask -#define ADDRESS_EXTENSION_MASK pdp1.address_extension_mask -#define BASE_ADDRESS_MASK 0007777 - -#define INCREMENT_PC (PC = (PC & ADDRESS_EXTENSION_MASK) | ((PC+1) & BASE_ADDRESS_MASK)) -#define DECREMENT_PC (PC = (PC & ADDRESS_EXTENSION_MASK) | ((PC-1) & BASE_ADDRESS_MASK)) -#define INCREMENT_MA (MA = (MA & ADDRESS_EXTENSION_MASK) | ((MA+1) & BASE_ADDRESS_MASK)) -#define PREVIOUS_PC ((PC & ADDRESS_EXTENSION_MASK) | ((PC-1) & BASE_ADDRESS_MASK)) - -/* public globals */ -static signed int pdp1_ICount; - - - -/* - Interrupts are called "sequence break" in pdp1, but the general idea is the same. - - There are several interrupt lines. With the standard sequence break system, all lines - are logically or'ed to trigger a single interrupt level. Interrupts can be triggered - by either a pulse or a level on the interrupt lines. With the optional type 120 sequence - break system, each of 16 lines triggers is wired to a different priority level: additionnally, - each interrupt line can be masked out, and interrupt can be triggered through software. - - Also, instructions can be interrupted in the middle of execution. This is done by - decrementing the PC register: therefore the instruction is re-executed from start. - - Interrupt routines should not execute most IOT, as the interrupt may interrupt another. - - More details can be found in the handbook and the maintenance manual. -*/ -/* - This function MUST be called every time pdp1.sbm, pdp1.b4, pdp1.irq_state or pdp1.b2 change. -*/ -static void field_interrupt(void) -{ - /* current_irq: 1 bit for each active pending interrupt request - Pending interrupts are in b3 (simulated by (pdp1.irq_state & pdp1.b1) | pdp1.b2)), but they - are only honored if no higher priority interrupt routine is in execution (one bit set in b4 - for each routine in execution). The revelant mask is created with (pdp1.b4 | (- pdp1.b4)), - as the carry chain (remember that -b4 = (~ b4) + 1) does precisely what we want. - b4: 0001001001000 - -b4: 1110110111000 - b4|-b4:1111111111000 - Neat, uh? - */ - int current_irq = ((pdp1.irq_state & pdp1.b1) | pdp1.b2) & ~ (pdp1.b4 | (- pdp1.b4)); - int i; - - if (pdp1.sbm && current_irq) - { - pdp1.sbs_request = 1; - for (i=0; /*i<16 &&*/ (! ((current_irq >> i) & 1)); i++) - ; - pdp1.sbs_level = i; - } - else - pdp1.sbs_request = 0; -} - -static void pdp1_set_irq_line (int irqline, int state) -{ - if (irqline == INPUT_LINE_NMI) - { - /* no specific NMI line */ - } - else if ((irqline >= 0) && (irqline < (pdp1.type_20_sbs ? 1 : 16))) - { - unsigned int new_state = state ? 1 : 0; - - if (((pdp1.irq_state >> irqline) & 1) != new_state) - { - pdp1.irq_state = (pdp1.irq_state & ~ (1 << irqline)) | (new_state << irqline); - - if ((new_state) && ((pdp1.b1 >> irqline) & 1)) - pdp1.b2 |= (new_state << irqline); - - /*pdp1.b3 = pdp1.irq_state | pdp1.b2;*/ - - field_interrupt(); /* interrupt state has changed */ - } - } -} - - -static void pdp1_init(int index, int clock, const void *config, int (*irqcallback)(int)) -{ - const pdp1_reset_param_t *param = config; - int i; - - /* clean-up */ - memset (&pdp1, 0, sizeof (pdp1)); - - /* set up params and callbacks */ - for (i=0; i<64; i++) - { - pdp1.extern_iot[i] = (param && param->extern_iot[i]) - ? param->extern_iot[i] - : null_iot; - } - pdp1.read_binary_word = (param) ? param->read_binary_word : NULL; - pdp1.io_sc_callback = (param) ? param->io_sc_callback : NULL; - pdp1.extend_support = (param) ? param->extend_support : 0; - pdp1.hw_mul_div = (param) ? param->hw_mul_div : 0; - pdp1.type_20_sbs = (param) ? param->type_20_sbs : 0; - - switch (pdp1.extend_support) - { - default: - pdp1.extend_support = 0; - case 0: /* no extension */ - pdp1.extended_address_mask = 07777; - pdp1.address_extension_mask = 00000; - break; - case 1: /* 15-bit extension */ - pdp1.extended_address_mask = 077777; - pdp1.address_extension_mask = 070000; - break; - case 2: /* 16-bit extension */ - pdp1.extended_address_mask = 0177777; - pdp1.address_extension_mask = 0170000; - break; - } - - if (pdp1.extend_support) - { - pdp1.extern_iot[074] = lem_eem_iot; - } - pdp1.extern_iot[054] = pdp1.extern_iot[055] = pdp1.extern_iot[056] = sbs_iot; - if (pdp1.type_20_sbs) - { - pdp1.extern_iot[050] = pdp1.extern_iot[051] = pdp1.extern_iot[052] = pdp1.extern_iot[053] - = type_20_sbs_iot; - } - - /* reset CPU flip-flops */ - pulse_start_clear(); -} - -static void pdp1_reset (void) -{ - /* nothing to do */ -} - -static void pdp1_get_context (void *dst) -{ - if (dst) - *(pdp1_Regs *) dst = pdp1; -} - -static void pdp1_set_context (void *src) -{ - if (src) - pdp1 = *(pdp1_Regs *) src; -} - - -/* - flags: - * 1 for each instruction which supports indirect addressing (memory reference instructions, - except cal and jda, and with the addition of jmp and jsp) - * 2 for memory reference instructions -*/ -static const char instruction_kind[32] = -{ -/* and ior xor xct cal/jda */ - 0, 3, 3, 3, 3, 0, 0, 2, -/* lac lio dac dap dip dio dzm */ - 3, 3, 3, 3, 3, 3, 3, 0, -/* add sub idx isp sad sas mus dis */ - 3, 3, 3, 3, 3, 3, 3, 3, -/* jmp jsp skp sft law iot opr */ - 1, 1, 0, 0, 0, 0, 0, 0 -}; - - -/* execute instructions on this CPU until icount expires */ -static int pdp1_execute(int cycles) -{ - pdp1_ICount = cycles; - - do - { - CALL_MAME_DEBUG; - - - /* ioh should be cleared at the end of the instruction cycle, and ios at the - start of next instruction cycle, but who cares? */ - if (pdp1.ioh && pdp1.ios) - { - pdp1.ioh = 0; - pdp1.ios = 0; - } - - - if ((! pdp1.run) && (! pdp1.rim)) - pdp1_ICount = 0; /* if processor is stopped, just burn cycles */ - else if (pdp1.rim) - { - switch (pdp1.rim_step) - { - case 0: - /* read first word as instruction */ - if (pdp1.read_binary_word) - (*pdp1.read_binary_word)(); /* data will be transferred to IO register */ - pdp1.rim_step = 1; - break; - - case 1: - if (! pdp1.ios) - { /* transfer incomplete: wait some more */ - pdp1_ICount = 0; - } - else - { /* data transfer complete */ - pdp1.ios = 0; - - MB = IO; - IR = MB >> 13; /* basic opcode */ - if (IR == JMP) /* jmp instruction ? */ - { - PC = (MA & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - pdp1.rim = 0; /* exit read-in mode */ - pdp1.run = 1; - pdp1.rim_step = 0; - } - else if ((IR == DIO) || (IR == DAC)) /* dio or dac instruction ? */ - { /* there is a discrepancy: the pdp1 handbook tells that only dio should be used, - but the lisp tape uses the dac instruction instead */ - /* Yet maintainance manual p. 6-25 states clearly that the data is located - in IO and transfered to MB, so DAC is likely to be a mistake. */ - pdp1.rim_step = 2; - } - else - { - /* what the heck? */ - if (LOG) - logerror("It seems this tape should not be operated in read-in mode\n"); - - pdp1.rim = 0; /* exit read-in mode (right???) */ - pdp1.rim_step = 0; - } - } - break; - - case 2: - /* read second word as data */ - if (pdp1.read_binary_word) - (*pdp1.read_binary_word)(); /* data will be transferred to IO register */ - pdp1.rim_step = 3; - break; - - case 3: - if (! pdp1.ios) - { /* transfer incomplete: wait some more */ - pdp1_ICount = 0; - } - else - { /* data transfer complete */ - pdp1.ios = 0; - - MA = (PC & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - - MB = IO; - WRITE_PDP_18BIT(MA, MB); - - pdp1.rim_step = 0; - } - break; - } - } - else - { - /* yes, interrupt can occur in the midst of an instruction (impressing, huh?) */ - /* Note that break cannot occur during a one-cycle jump that is deferred only once, - or another break cycle. Also, it cannot interrupt the long cycle 1 of automatic - multiply/divide. (maintainance manual 6-19) */ - if (pdp1.sbs_request && (! pdp1.no_sequence_break) && (! pdp1.brk_ctr)) - { /* begin sequence break */ - pdp1.brk_ctr = 1; - } - if (pdp1.brk_ctr) - { /* sequence break in progress */ - switch (pdp1.brk_ctr) - { - case 1: - if (pdp1.cycle) - DECREMENT_PC; /* set PC to point to aborted instruction, so that it can be re-run */ - - pdp1.b4 |= (1 << pdp1.sbs_level); /* set "interrupt in progress" flag */ - pdp1.b2 &= ~(1 << pdp1.sbs_level); /* clear interrupt request */ - field_interrupt(); - MA = pdp1.sbs_level << 2; /* always 0 with standard sequence break system */ - MB = AC; /* save AC to MB */ - AC = (OV << 17) | (EXD << 16) | PC; /* save OV/EXD/PC to AC */ - EXD = OV = 0; /* according to maintainance manual p. 8-17 and ?-?? */ - pdp1.cycle = pdp1.defer = pdp1.exc = 0; /* mere guess */ - WRITE_PDP_18BIT(MA, MB); /* save former AC to memory */ - INCREMENT_MA; - pdp1_ICount -= 5; - pdp1.brk_ctr++; - break; - - case 2: - WRITE_PDP_18BIT(MA, MB = AC); /* save former OV/EXD/PC to memory */ - INCREMENT_MA; - pdp1_ICount -= 5; - pdp1.brk_ctr++; - break; - - case 3: - WRITE_PDP_18BIT(MA, MB = IO); /* save IO to memory */ - INCREMENT_MA; - PC = MA; - pdp1_ICount -= 5; - pdp1.brk_ctr = 0; - break; - } - } - else - { - if (pdp1.no_sequence_break) - pdp1.no_sequence_break = 0; - - if (! pdp1.cycle) - { /* no instruction in progress: time to fetch a new instruction, I guess */ - MB = READ_PDP_18BIT(MA = PC); - INCREMENT_PC; - IR = MB >> 13; /* basic opcode */ - - if ((instruction_kind[IR] & 1) && (MB & 010000)) - { - pdp1.defer = 1; - pdp1.cycle = 1; /* instruction shall be executed later */ - - /* detect deferred one-cycle jumps */ - if ((IR == JMP) || (IR == JSP)) - { - pdp1.no_sequence_break = 1; - /* detect JMP *(4*n+1) to memory module 0 if in sequence break mode */ - if (((MB & 0777703) == 0610001) && (pdp1.sbm) && ! (MA & 0170000)) - { - int level = (MB & 0000074) >> 2; - - if ((pdp1.type_20_sbs) || (level == 0)) - { - pdp1.b4 &= ~(1 << level); - field_interrupt(); - if (pdp1.extend_support) - EXD = 1; /* according to maintainance manual p. 6-33 */ - pdp1.sbs_restore = 1; - } - } - } - } - else if (instruction_kind[IR] & 2) - pdp1.cycle = 1; /* instruction shall be executed later */ - else - execute_instruction(); /* execute instruction at once */ - - pdp1_ICount -= 5; - } - else if (pdp1.defer) - { /* defer cycle : handle indirect addressing */ - MA = (PC & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - - MB = READ_PDP_18BIT(MA); - - /* determinate new value of pdp1.defer */ - if (EXD) - { - pdp1.defer = 0; - pdp1.exc = 1; - } - else - pdp1.defer = (MB & 010000) ? 1 : 0; - - /* execute JMP and JSP immediately if applicable */ - if ((! pdp1.defer) && (! (instruction_kind[IR] & 2))) - { - execute_instruction(); /* execute instruction at once */ - /*pdp1.cycle = 0;*/ - pdp1.exc = 0; - - if (pdp1.sbs_restore) - { /* interrupt return: according to maintainance manual p. 6-33 */ - if (pdp1.extend_support) - EXD = (MB >> 16) & 1; - OV = (MB >> 17) & 1; - pdp1.sbs_restore = 0; - } - } - - pdp1_ICount -= 5; - } - else - { /* memory reference instruction in cycle 1 */ - if (pdp1.exc) - { - MA = MB & EXTENDED_ADDRESS_MASK; - pdp1.exc = 0; - } - else - MA = (PC & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - - execute_instruction(); /* execute instruction */ - - pdp1_ICount -= 5; - } - - if ((pdp1.sngl_inst) && (! pdp1.cycle)) - pdp1.run = 0; - } - if (pdp1.sngl_step) - pdp1.run = 0; - } - } - while (pdp1_ICount > 0); - - return cycles - pdp1_ICount; -} - - -static void pdp1_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - case CPUINFO_INT_INPUT_STATE + 0: - case CPUINFO_INT_INPUT_STATE + 1: - case CPUINFO_INT_INPUT_STATE + 2: - case CPUINFO_INT_INPUT_STATE + 3: - case CPUINFO_INT_INPUT_STATE + 4: - case CPUINFO_INT_INPUT_STATE + 5: - case CPUINFO_INT_INPUT_STATE + 6: - case CPUINFO_INT_INPUT_STATE + 7: - case CPUINFO_INT_INPUT_STATE + 8: - case CPUINFO_INT_INPUT_STATE + 9: - case CPUINFO_INT_INPUT_STATE + 10: - case CPUINFO_INT_INPUT_STATE + 11: - case CPUINFO_INT_INPUT_STATE + 12: - case CPUINFO_INT_INPUT_STATE + 13: - case CPUINFO_INT_INPUT_STATE + 14: - case CPUINFO_INT_INPUT_STATE + 15: pdp1_set_irq_line(state-CPUINFO_INT_INPUT_STATE, info->i); break; - - case CPUINFO_INT_SP: (void) info->i; /* no SP */ break; - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + PDP1_PC: PC = info->i & EXTENDED_ADDRESS_MASK; break; - case CPUINFO_INT_REGISTER + PDP1_IR: IR = info->i & 037; /* weird idea */ break; - case CPUINFO_INT_REGISTER + PDP1_MB: MB = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + PDP1_MA: MA = info->i & EXTENDED_ADDRESS_MASK; break; - case CPUINFO_INT_REGISTER + PDP1_AC: AC = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + PDP1_IO: IO = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + PDP1_OV: OV = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_PF: FLAGS = info->i & 077; break; - case CPUINFO_INT_REGISTER + PDP1_PF1: WRITEFLAG(1, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_PF2: WRITEFLAG(2, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_PF3: WRITEFLAG(3, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_PF4: WRITEFLAG(4, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_PF5: WRITEFLAG(5, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_PF6: WRITEFLAG(6, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_TA: pdp1.ta = info->i & 0177777 /*07777 with simpler control panel*/; break; - case CPUINFO_INT_REGISTER + PDP1_TW: pdp1.tw = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + PDP1_SS: SENSE_SW = info->i & 077; break; - case CPUINFO_INT_REGISTER + PDP1_SS1: WRITESENSE(1, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SS2: WRITESENSE(2, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SS3: WRITESENSE(3, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SS4: WRITESENSE(4, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SS5: WRITESENSE(5, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SS6: WRITESENSE(6, info->i ? 1 : 0); break; - case CPUINFO_INT_REGISTER + PDP1_SNGL_STEP: pdp1.sngl_step = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_SNGL_INST: pdp1.sngl_inst = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_EXTEND_SW: pdp1.extend_sw = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_RUN: pdp1.run = info->i ? 1 : 0; break; -#if LOG - case CPUINFO_INT_REGISTER + PDP1_CYC: logerror("pdp1_set_reg to cycle flip-flop ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + PDP1_DEFER: logerror("pdp1_set_reg to defer flip-flop ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + PDP1_BRK_CTR: logerror("pdp1_set_reg to break counter ignored\n");/* no way!*/ break; -#endif - case CPUINFO_INT_REGISTER + PDP1_RIM: pdp1.rim = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_SBM: pdp1.sbm = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + PDP1_EXD: EXD = (pdp1.extend_support && info->i) ? 1 : 0; break; -#if LOG - case CPUINFO_INT_REGISTER + PDP1_IOC: logerror("pdp1_set_reg to ioc flip-flop ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + PDP1_IOH: logerror("pdp1_set_reg to ioh flip-flop ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + PDP1_IOS: logerror("pdp1_set_reg to ios flip-flop ignored\n");/* no way!*/ break; -#endif - case CPUINFO_INT_REGISTER + PDP1_START_CLEAR: pulse_start_clear(); break; - case CPUINFO_INT_REGISTER + PDP1_IO_COMPLETE: pdp1.ios = 1; break; - } -} - - -void pdp1_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(pdp1); break; - case CPUINFO_INT_INPUT_LINES: info->i = 16; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 5; /* 5us cycle time */ break; - case CPUINFO_INT_MAX_CYCLES: info->i = 31; /* we emulate individual 5us cycle, but MUL/DIV have longer timings */ break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 18; /*16+2 ignored bits to make double word address*/ break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_SP: info->i = 0; /* no SP */ break; - case CPUINFO_INT_PC: info->i = PC; break; - case CPUINFO_INT_PREVIOUSPC: info->i = 0; /* TODO??? */ break; - - case CPUINFO_INT_INPUT_STATE + 0: - case CPUINFO_INT_INPUT_STATE + 1: - case CPUINFO_INT_INPUT_STATE + 2: - case CPUINFO_INT_INPUT_STATE + 3: - case CPUINFO_INT_INPUT_STATE + 4: - case CPUINFO_INT_INPUT_STATE + 5: - case CPUINFO_INT_INPUT_STATE + 6: - case CPUINFO_INT_INPUT_STATE + 7: - case CPUINFO_INT_INPUT_STATE + 8: - case CPUINFO_INT_INPUT_STATE + 9: - case CPUINFO_INT_INPUT_STATE + 10: - case CPUINFO_INT_INPUT_STATE + 11: - case CPUINFO_INT_INPUT_STATE + 12: - case CPUINFO_INT_INPUT_STATE + 13: - case CPUINFO_INT_INPUT_STATE + 14: - case CPUINFO_INT_INPUT_STATE + 15: info->i = (pdp1.irq_state >> (state-CPUINFO_INT_INPUT_STATE)) & 1; break; - - case CPUINFO_INT_REGISTER + PDP1_PC: info->i = PC; break; - case CPUINFO_INT_REGISTER + PDP1_IR: info->i = IR; break; - case CPUINFO_INT_REGISTER + PDP1_MB: info->i = MB; break; - case CPUINFO_INT_REGISTER + PDP1_MA: info->i = MA; break; - case CPUINFO_INT_REGISTER + PDP1_AC: info->i = AC; break; - case CPUINFO_INT_REGISTER + PDP1_IO: info->i = IO; break; - case CPUINFO_INT_REGISTER + PDP1_OV: info->i = OV; break; - case CPUINFO_INT_REGISTER + PDP1_PF: info->i = FLAGS; break; - case CPUINFO_INT_REGISTER + PDP1_PF1: info->i = READFLAG(1); break; - case CPUINFO_INT_REGISTER + PDP1_PF2: info->i = READFLAG(2); break; - case CPUINFO_INT_REGISTER + PDP1_PF3: info->i = READFLAG(3); break; - case CPUINFO_INT_REGISTER + PDP1_PF4: info->i = READFLAG(4); break; - case CPUINFO_INT_REGISTER + PDP1_PF5: info->i = READFLAG(5); break; - case CPUINFO_INT_REGISTER + PDP1_PF6: info->i = READFLAG(6); break; - case CPUINFO_INT_REGISTER + PDP1_TA: info->i = pdp1.ta; break; - case CPUINFO_INT_REGISTER + PDP1_TW: info->i = pdp1.tw; break; - case CPUINFO_INT_REGISTER + PDP1_SS: info->i = SENSE_SW; break; - case CPUINFO_INT_REGISTER + PDP1_SS1: info->i = READSENSE(1); break; - case CPUINFO_INT_REGISTER + PDP1_SS2: info->i = READSENSE(2); break; - case CPUINFO_INT_REGISTER + PDP1_SS3: info->i = READSENSE(3); break; - case CPUINFO_INT_REGISTER + PDP1_SS4: info->i = READSENSE(4); break; - case CPUINFO_INT_REGISTER + PDP1_SS5: info->i = READSENSE(5); break; - case CPUINFO_INT_REGISTER + PDP1_SS6: info->i = READSENSE(6); break; - case CPUINFO_INT_REGISTER + PDP1_SNGL_STEP: info->i = pdp1.sngl_step; break; - case CPUINFO_INT_REGISTER + PDP1_SNGL_INST: info->i = pdp1.sngl_inst; break; - case CPUINFO_INT_REGISTER + PDP1_EXTEND_SW: info->i = pdp1.extend_sw; break; - case CPUINFO_INT_REGISTER + PDP1_RUN: info->i = pdp1.run; break; - case CPUINFO_INT_REGISTER + PDP1_CYC: info->i = pdp1.cycle; break; - case CPUINFO_INT_REGISTER + PDP1_DEFER: info->i = pdp1.defer; break; - case CPUINFO_INT_REGISTER + PDP1_BRK_CTR: info->i = pdp1.brk_ctr; break; - case CPUINFO_INT_REGISTER + PDP1_RIM: info->i = pdp1.rim; break; - case CPUINFO_INT_REGISTER + PDP1_SBM: info->i = pdp1.sbm; break; - case CPUINFO_INT_REGISTER + PDP1_EXD: info->i = EXD; break; - case CPUINFO_INT_REGISTER + PDP1_IOC: info->i = pdp1.ioc; break; - case CPUINFO_INT_REGISTER + PDP1_IOH: info->i = pdp1.ioh; break; - case CPUINFO_INT_REGISTER + PDP1_IOS: info->i = pdp1.ios; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = pdp1_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = pdp1_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = pdp1_set_context; break; - case CPUINFO_PTR_INIT: info->init = pdp1_init; break; - case CPUINFO_PTR_RESET: info->reset = pdp1_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = pdp1_execute; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; - -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = pdp1_dasm; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &pdp1_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "PDP1"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "DEC PDP-1"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "2.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), - "Brian Silverman (original Java Source)\n" - "Vadim Gerasimov (original Java Source)\n" - "Chris Salomon (MESS driver)\n" - "Raphael Nabet (MESS driver)\n"); - break; - - case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c-%c%c%c%c%c%c", - (FLAGS & 040) ? '1' : '.', - (FLAGS & 020) ? '2' : '.', - (FLAGS & 010) ? '3' : '.', - (FLAGS & 004) ? '4' : '.', - (FLAGS & 002) ? '5' : '.', - (FLAGS & 001) ? '6' : '.', - (SENSE_SW & 040) ? '1' : '.', - (SENSE_SW & 020) ? '2' : '.', - (SENSE_SW & 010) ? '3' : '.', - (SENSE_SW & 004) ? '4' : '.', - (SENSE_SW & 002) ? '5' : '.', - (SENSE_SW & 001) ? '6' : '.'); - break; - - - case CPUINFO_STR_REGISTER + PDP1_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + PDP1_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + PDP1_MB: sprintf(info->s = cpuintrf_temp_str(), "MB:0%06o", MB); break; - case CPUINFO_STR_REGISTER + PDP1_MA: sprintf(info->s = cpuintrf_temp_str(), "MA:0%06o", MA); break; - case CPUINFO_STR_REGISTER + PDP1_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + PDP1_IO: sprintf(info->s = cpuintrf_temp_str(), "IO:0%06o", IO); break; - case CPUINFO_STR_REGISTER + PDP1_OV: sprintf(info->s = cpuintrf_temp_str(), "OV:%X", OV); break; - case CPUINFO_STR_REGISTER + PDP1_PF: sprintf(info->s = cpuintrf_temp_str(), "FLAGS:0%02o", FLAGS); break; - case CPUINFO_STR_REGISTER + PDP1_PF1: sprintf(info->s = cpuintrf_temp_str(), "FLAG1:%X", READFLAG(1)); break; - case CPUINFO_STR_REGISTER + PDP1_PF2: sprintf(info->s = cpuintrf_temp_str(), "FLAG2:%X", READFLAG(2)); break; - case CPUINFO_STR_REGISTER + PDP1_PF3: sprintf(info->s = cpuintrf_temp_str(), "FLAG3:%X", READFLAG(3)); break; - case CPUINFO_STR_REGISTER + PDP1_PF4: sprintf(info->s = cpuintrf_temp_str(), "FLAG4:%X", READFLAG(4)); break; - case CPUINFO_STR_REGISTER + PDP1_PF5: sprintf(info->s = cpuintrf_temp_str(), "FLAG5:%X", READFLAG(5)); break; - case CPUINFO_STR_REGISTER + PDP1_PF6: sprintf(info->s = cpuintrf_temp_str(), "FLAG6:%X", READFLAG(6)); break; - case CPUINFO_STR_REGISTER + PDP1_TA: sprintf(info->s = cpuintrf_temp_str(), "TA:0%06o", pdp1.ta); break; - case CPUINFO_STR_REGISTER + PDP1_TW: sprintf(info->s = cpuintrf_temp_str(), "TW:0%06o", pdp1.tw); break; - case CPUINFO_STR_REGISTER + PDP1_SS: sprintf(info->s = cpuintrf_temp_str(), "SS:0%02o", SENSE_SW); break; - case CPUINFO_STR_REGISTER + PDP1_SS1: sprintf(info->s = cpuintrf_temp_str(), "SENSE1:%X", READSENSE(1)); break; - case CPUINFO_STR_REGISTER + PDP1_SS2: sprintf(info->s = cpuintrf_temp_str(), "SENSE2:%X", READSENSE(2)); break; - case CPUINFO_STR_REGISTER + PDP1_SS3: sprintf(info->s = cpuintrf_temp_str(), "SENSE3:%X", READSENSE(3)); break; - case CPUINFO_STR_REGISTER + PDP1_SS4: sprintf(info->s = cpuintrf_temp_str(), "SENSE4:%X", READSENSE(4)); break; - case CPUINFO_STR_REGISTER + PDP1_SS5: sprintf(info->s = cpuintrf_temp_str(), "SENSE5:%X", READSENSE(5)); break; - case CPUINFO_STR_REGISTER + PDP1_SS6: sprintf(info->s = cpuintrf_temp_str(), "SENSE6:%X", READSENSE(6)); break; - case CPUINFO_STR_REGISTER + PDP1_SNGL_STEP: sprintf(info->s = cpuintrf_temp_str(), "SNGLSTEP:%X", pdp1.sngl_step); break; - case CPUINFO_STR_REGISTER + PDP1_SNGL_INST: sprintf(info->s = cpuintrf_temp_str(), "SNGLINST:%X", pdp1.sngl_inst); break; - case CPUINFO_STR_REGISTER + PDP1_EXTEND_SW: sprintf(info->s = cpuintrf_temp_str(), "EXS:%X", pdp1.extend_sw); break; - case CPUINFO_STR_REGISTER + PDP1_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", pdp1.run); break; - case CPUINFO_STR_REGISTER + PDP1_CYC: sprintf(info->s = cpuintrf_temp_str(), "CYC:%X", pdp1.cycle); break; - case CPUINFO_STR_REGISTER + PDP1_DEFER: sprintf(info->s = cpuintrf_temp_str(), "DF:%X", pdp1.defer); break; - case CPUINFO_STR_REGISTER + PDP1_BRK_CTR: sprintf(info->s = cpuintrf_temp_str(), "BRKCTR:%X", pdp1.brk_ctr); break; - case CPUINFO_STR_REGISTER + PDP1_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", pdp1.rim); break; - case CPUINFO_STR_REGISTER + PDP1_SBM: sprintf(info->s = cpuintrf_temp_str(), "SBM:%X", pdp1.sbm); break; - case CPUINFO_STR_REGISTER + PDP1_EXD: sprintf(info->s = cpuintrf_temp_str(), "EXD:%X", EXD); break; - case CPUINFO_STR_REGISTER + PDP1_IOC: sprintf(info->s = cpuintrf_temp_str(), "IOC:%X", pdp1.ioc); break; - case CPUINFO_STR_REGISTER + PDP1_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", pdp1.ioh); break; - case CPUINFO_STR_REGISTER + PDP1_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", pdp1.ios); break; - } -} - - -/* execute one instruction */ -static void execute_instruction(void) -{ - switch (IR) - { - case AND: /* Logical And */ - AC &= (MB = READ_PDP_18BIT(MA)); - break; - case IOR: /* Inclusive Or */ - AC |= (MB = READ_PDP_18BIT(MA)); - break; - case XOR: /* Exclusive Or */ - AC ^= (MB = READ_PDP_18BIT(MA)); - break; - case XCT: /* Execute */ - MB = READ_PDP_18BIT(MA); - IR = MB >> 13; /* basic opcode */ - if ((instruction_kind[IR] & 1) && (MB & 010000)) - { - pdp1.defer = 1; - /*pdp1.cycle = 1;*/ /* instruction shall be executed later */ - goto no_fetch; /* fall through to next instruction */ - } - else if (instruction_kind[IR] & 2) - { - /*pdp1.cycle = 1;*/ /* instruction shall be executed later */ - goto no_fetch; /* fall through to next instruction */ - } - else - execute_instruction(); /* execute instruction at once */ - break; - case CALJDA: /* Call subroutine and Jump and Deposit Accumulator instructions */ - if (MB & 010000) - /* JDA */ - MA = (PC & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - else - /* CAL: equivalent to JDA 100 */ - /* Note that I cannot tell for sure what happens to extension bits, but I did notice - that setting the extension bits to 0 would make cal basically useless, since - there would be no simple way the call routine could return to the callee - if it were located in another module with extend mode off (i.e. exd == 0). */ - MA = (PC & ADDRESS_EXTENSION_MASK) | 0100; - - WRITE_PDP_18BIT(MA, (MB = AC)); - INCREMENT_MA; - AC = (OV << 17) | (EXD << 16) | PC; - PC = MA; - break; - case LAC: /* Load Accumulator */ - AC = (MB = READ_PDP_18BIT(MA)); - break; - case LIO: /* Load i/o register */ - IO = (MB = READ_PDP_18BIT(MA)); - break; - case DAC: /* Deposit Accumulator */ - WRITE_PDP_18BIT(MA, (MB = AC)); - break; - case DAP: /* Deposit Address Part */ - WRITE_PDP_18BIT(MA, (MB = ((READ_PDP_18BIT(MA) & 0770000) | (AC & 0007777)))); - break; - case DIP: /* Deposit Instruction Part */ - WRITE_PDP_18BIT(MA, (MB = ((READ_PDP_18BIT(MA) & 0007777) | (AC & 0770000)))); - break; - case DIO: /* Deposit I/O Register */ - WRITE_PDP_18BIT(MA, (MB = IO)); - break; - case DZM: /* Deposit Zero in Memory */ - WRITE_PDP_18BIT(MA, (MB = 0)); - break; - case ADD: /* Add */ - { - /* overflow is set if the 2 operands have the same sign and the final result has another */ - int ov2; /* 1 if the operands have the same sign*/ - - MB = READ_PDP_18BIT(MA); - - ov2 = ((AC & 0400000) == (MB & 0400000)); - - AC = AC + MB; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - /* I think we need to check for overflow before checking for -0, - because the sum -0+-0 = -0 = +0 would generate an overflow - otherwise. */ - if (ov2 && ((AC & 0400000) != (MB & 0400000))) - OV = 1; - - if (AC == 0777777) /* check for -0 */ - AC = 0; - - break; - } - case SUB: /* Subtract */ - { /* maintainance manual 7-14 seems to imply that substract does not test for -0. - The sim 2.3 source says so explicitely, though they do not give a reference. - It sounds a bit weird, but the reason is probably that doing so would - require additionnal logic that does not exist. */ - /* overflow is set if the 2 operands have the same sign and the final result has another */ - int ov2; /* 1 if the operands have the same sign*/ - - AC ^= 0777777; - - MB = READ_PDP_18BIT(MA); - - ov2 = ((AC & 0400000) == (MB & 0400000)); - - AC = AC + MB; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - if (ov2 && ((AC & 0400000) != (MB & 0400000))) - OV = 1; - - AC ^= 0777777; - - break; - } - case IDX: /* Index */ - AC = READ_PDP_18BIT(MA) + 1; - - #if 0 - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 */ - AC = 0; - #else - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - #endif - - WRITE_PDP_18BIT(MA, (MB = AC)); - break; - case ISP: /* Index and Skip if Positive */ - AC = READ_PDP_18BIT(MA) + 1; - - #if 0 - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 */ - AC = 0; - #else - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - #endif - - WRITE_PDP_18BIT(MA, (MB = AC)); - if ((AC & 0400000) == 0) - INCREMENT_PC; - break; - case SAD: /* Skip if Accumulator and Y differ */ - if (AC != (MB = READ_PDP_18BIT(MA))) - INCREMENT_PC; - break; - case SAS: /* Skip if Accumulator and Y are the same */ - if (AC == (MB = READ_PDP_18BIT(MA))) - INCREMENT_PC; - break; - case MUS_MUL: /* Multiply Step or Multiply */ - if (pdp1.hw_mul_div) - { /* MUL */ - int scr; - int smb, srm; - double etime = 4.; /* approximative */ - - IO = MB = AC; - MB = READ_PDP_18BIT(MA); - scr = 0; - if (MB & 0400000) - { - smb = 1; - MB = MB ^ 0777777; - } - else - smb = 0; - if (IO & 0400000) - { - srm = 1; - IO = IO ^ 0777777; - } - else - srm = 0; - AC = 0; - scr++; - while (scr < 022) - { - if (IO & 1) - { - /*assert(! (AC & 0400000));*/ - AC = AC + MB; - /* we can save carry around since both numbers are positive */ - /*AC = (AC + (AC >> 18)) & 0777777;*/ - etime += .65; /* approximative */ - } - IO = (IO >> 1) | ((AC & 1) << 17); - AC = AC >> 1; - scr++; - } - if (smb ^ srm) - { - AC = AC ^ 0777777; - IO = IO ^ 0777777; - } - - pdp1_ICount -= etime+.5; /* round to closest */ - } - else - { /* MUS */ - /* should we check for -0??? (Maintainance manual 7-14 seems to imply we should not: - as a matter of fact, since the MUS instruction is supposed to have positive operands, - there is no need to check for -0, therefore such a simplification does not sound - absurd.) */ - if ((IO & 1) == 1) - { - AC = AC + (MB = READ_PDP_18BIT(MA)); - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - } - IO = (IO >> 1 | AC << 17) & 0777777; - AC >>= 1; - } - break; - case DIS_DIV: /* Divide Step or Divide */ - if (pdp1.hw_mul_div) - { /* DIV */ - /* As a side note, the order of -0 detection and overflow checking does not matter, - because the sum of two positive number cannot give 0777777 (since positive - numbers are 0377777 at most, their sum is 0777776 at most). - Additionnally, we cannot have carry set and a result equal to 0777777 (since numbers - are 0777777 at most, their sum is 01777776 at most): this is nice, because it makes - the sequence: - AC = (AC + (AC >> 18)) & 0777777; // propagate carry around - if (AC == 0777777) // check for -0 - AC = 0; - equivalent to: - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - which is a bit more efficient. */ - int acl; - int scr; - int smb, srm; - double etime = 0; /* approximative */ - - MB = READ_PDP_18BIT(MA); - scr = 0; - if (MB & 0400000) - { - smb = 1; - } - else - { - smb = 0; - MB = MB ^ 0777777; - } - if (AC & 0400000) - { - srm = 1; - AC = AC ^ 0777777; - IO = IO ^ 0777777; - } - else - srm = 0; - while (1) - { - AC = (AC + MB); - #if 1 - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 */ - AC = 0; - #else - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - #endif - if (MB & 0400000) - MB = MB ^ 0777777; - - if (((scr == 0) && ! (AC & 0400000)) - || (scr == 022)) - break; - - scr++; - - if (! (AC & 0400000)) - MB = MB ^ 0777777; - - acl = AC >> 17; - AC = (AC << 1 | IO >> 17) & 0777777; - IO = ((IO << 1 | acl) & 0777777) ^ 1; - if (acl) - { - AC++; - AC = (AC + (AC >> 18)) & 0777777; - etime += .6; /* approximative */ - } - } - - AC = (AC + MB); - #if 1 - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 */ - AC = 0; - #else - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - #endif - - if (scr) - { - INCREMENT_PC; - AC = AC >> 1; - } - - if (srm && (AC != 0)) - AC = AC ^ 0777777; - - if (((! scr) && (srm)) - || (scr && (srm ^ smb) && (IO != 0))) - IO = IO ^ 0777777; - - if (scr) - { - MB = AC; - AC = IO; - IO = MB; - } - if (scr) - etime += 20; /* approximative */ - else - etime += 2; /* approximative */ - - pdp1_ICount -= etime+.5; /* round to closest */ - } - else - { /* DIS */ - int acl; - - acl = AC >> 17; - AC = (AC << 1 | IO >> 17) & 0777777; - IO = ((IO << 1 | acl) & 0777777) ^ 1; - MB = READ_PDP_18BIT(MA); - if (IO & 1) - AC += (MB ^ 0777777); - else - /* Note that if AC+MB = 0777777, we are in trouble. I don't - know how a real PDP-1 behaves in this case. */ - AC += MB + 1; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 */ - AC = 0; - } - break; - case JMP: /* Jump */ - if (pdp1.exc) - PC = MB & EXTENDED_ADDRESS_MASK; - else - PC = (MA & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - break; - case JSP: /* Jump and Save Program Counter */ - AC = (OV << 17) | (EXD << 16) | PC; - if (pdp1.exc) - PC = MB & EXTENDED_ADDRESS_MASK; - else - PC = (MA & ADDRESS_EXTENSION_MASK) | (MB & BASE_ADDRESS_MASK); - break; - case SKP: /* Skip Instruction Group */ - { - int cond = ((MB & 0100) && (AC == 0)) /* ZERO Accumulator */ - || ((MB & 0200) && (AC >> 17 == 0)) /* Plus Accumulator */ - || ((MB & 0400) && (AC >> 17 == 1)) /* Minus Accumulator */ - || ((MB & 01000) && (OV == 0)) /* ZERO Overflow */ - || ((MB & 02000) && (IO >> 17 == 0)) /* Plus I/O Register */ - || (((MB & 7) != 0) && (((MB & 7) == 7) ? ! FLAGS : ! READFLAG(MB & 7))) /* ZERO Flag (deleted by mistake in PDP-1 handbook) */ - || (((MB & 070) != 0) && (((MB & 070) == 070) ? ! SENSE_SW : ! READSENSE((MB & 070) >> 3))); /* ZERO Switch */ - - if (! (MB & 010000)) - { - if (cond) - INCREMENT_PC; - } - else - { - if (!cond) - INCREMENT_PC; - } - if (MB & 01000) - OV = 0; - break; - } - case SFT: /* Shift Instruction Group */ - { - /* Bit 5 specifies direction of shift, Bit 6 specifies the character of the shift - (arithmetic or logical), Bits 7 and 8 enable the registers (01 = AC, 10 = IO, - and 11 = both) and Bits 9 through 17 specify the number of steps. */ - int nshift = 0; - int mask = MB & 0777; - - while (mask != 0) - { - nshift += mask & 1; - mask >>= 1; - } - switch ((MB >> 9) & 017) - { - int i; - - case 1: /* ral rotate accumulator left */ - for (i = 0; i < nshift; i++) - AC = (AC << 1 | AC >> 17) & 0777777; - break; - case 2: /* ril rotate i/o register left */ - for (i = 0; i < nshift; i++) - IO = (IO << 1 | IO >> 17) & 0777777; - break; - case 3: /* rcl rotate AC and IO left */ - for (i = 0; i < nshift; i++) - { - int tmp = AC; - - AC = (AC << 1 | IO >> 17) & 0777777; - IO = (IO << 1 | tmp >> 17) & 0777777; - } - break; - case 5: /* sal shift accumulator left */ - for (i = 0; i < nshift; i++) - AC = ((AC << 1 | AC >> 17) & 0377777) + (AC & 0400000); - break; - case 6: /* sil shift i/o register left */ - for (i = 0; i < nshift; i++) - IO = ((IO << 1 | IO >> 17) & 0377777) + (IO & 0400000); - break; - case 7: /* scl shift AC and IO left */ - for (i = 0; i < nshift; i++) - { - int tmp = AC; - - AC = ((AC << 1 | IO >> 17) & 0377777) + (AC & 0400000); /* shouldn't that be IO?, no it is the sign! */ - IO = (IO << 1 | tmp >> 17) & 0777777; - } - break; - case 9: /* rar rotate accumulator right */ - for (i = 0; i < nshift; i++) - AC = (AC >> 1 | AC << 17) & 0777777; - break; - case 10: /* rir rotate i/o register right */ - for (i = 0; i < nshift; i++) - IO = (IO >> 1 | IO << 17) & 0777777; - break; - case 11: /* rcr rotate AC and IO right */ - for (i = 0; i < nshift; i++) - { - int tmp = AC; - - AC = (AC >> 1 | IO << 17) & 0777777; - IO = (IO >> 1 | tmp << 17) & 0777777; - } - break; - case 13: /* sar shift accumulator right */ - for (i = 0; i < nshift; i++) - AC = (AC >> 1) + (AC & 0400000); - break; - case 14: /* sir shift i/o register right */ - for (i = 0; i < nshift; i++) - IO = (IO >> 1) + (IO & 0400000); - break; - case 15: /* scr shift AC and IO right */ - for (i = 0; i < nshift; i++) - { - int tmp = AC; - - AC = (AC >> 1) + (AC & 0400000); /* shouldn't that be IO, no it is the sign */ - IO = (IO >> 1 | tmp << 17) & 0777777; - } - break; - default: - if (LOG) - logerror("Undefined shift: 0%06o at 0%06o\n", MB, PREVIOUS_PC); - break; - } - break; - } - case LAW: /* Load Accumulator with N */ - AC = MB & 07777; - if (MB & 010000) - AC ^= 0777777; - break; - case IOT: /* In-Out Transfer Instruction Group */ - /* - The variations within this group of instructions perform all the in-out control - and information transfer functions. If Bit 5 (normally the Indirect Address bit) - is a ONE, the computer will enter a special waiting state until the completion pulse - from the activated device has returned. When this device delivers its completion, - the computer will resume operation of the instruction sequence. - - The computer may be interrupted from the special waiting state to serve a sequence - break request or a high speed channel request. - - Most in-out operations require a known minimum time before completion. This time - may be utilized for programming. The appropriate In-Out Transfer can be given with - no in-out wait (Bit 5 a ZERO and Bit 6 a ONE). The instruction sequence then - continues. This sequence must include an iot instruction 730000 which performs - nothing but the in-out wait. The computer will then enter the special waiting state - until the device returns the in-out restart pulse. If the device has already - returned the completion pulse before the instruction 730000, the computer will - proceed immediately. - - Bit 6 determines whether a completion pulse will or will not be received from - the in-out device. When it is different than Bit 5, a completion pulse will be - received. When it is the same as Bit 5, a completion pulse will not be received. - - In addition to the control function of Bits 5 and 6, Bits 7 through 11 are also - used as control bits serving to extend greatly the power of the iot instructions. - For example, Bits 12 through 17, which are used to designate a class of input or - output devices such as typewriters, may be further defined by Bits 7 through 11 - as referring to Typewriter 1, 2, 3, etc. In several of the optional in-out devices, - in particular the magnetic tape, Bits 7 through 11 specify particular functions - such as forward, backward etc. If a large number of specialized devices are to - be attached, these bits may be used to further the in-out transfer instruction - to perform totally distinct functions. - - Note that ioc is supposed to be set at the beggining of the memory cycle after - ioh is cleared. - However, we cannot set ioc at the beggining of every memory cycle as we - did before, because it breaks in the following case: - a) IOT instruction enables IO wait - b) sequence break in the middle of IO-halt - c) ioh is cleared in middle of sequence break routine - d) re-execute IOT instruction. Unfortunately, ioc has been cleared, therefore - we perform an IOT command pulse and IO wait again, which is completely WRONG. - Therefore ioc is cleared only after a IOT with wait is executed. - */ - if (MB & 010000) - { /* IOT with IO wait */ - if (pdp1.ioc) - { /* the iot command line is pulsed only if ioc is asserted */ - (*pdp1.extern_iot[MB & 0000077])(MB & 0000077, (MB & 0004000) == 0, MB, &IO, AC); - - pdp1.ioh = 1; /* enable io wait */ - - pdp1.ioc = 0; /* actually happens at the start of next memory cycle */ - - /* test ios now in case the IOT callback has sent a completion pulse immediately */ - if (pdp1.ioh && pdp1.ios) - { - /* ioh should be cleared at the end of the instruction cycle, and ios at the - start of next instruction cycle, but who cares? */ - pdp1.ioh = 0; - pdp1.ios = 0; - } - } - - if (pdp1.ioh) - DECREMENT_PC; - else - pdp1.ioc = 1; /* actually happens at the start of next memory cycle */ - } - else - { /* IOT with no IO wait */ - (*pdp1.extern_iot[MB & 0000077])(MB & 0000077, (MB & 0004000) != 0, MB, &IO, AC); - } - break; - case OPR: /* Operate Instruction Group */ - { - int nflag; - - if (MB & 00200) /* clear AC */ - AC = 0; - if (MB & 04000) /* clear I/O register */ - IO = 0; - if (MB & 02000) /* load Accumulator from Test Word */ - AC |= pdp1.tw; - if (MB & 00100) /* load Accumulator with Program Counter */ - AC |= (OV << 17) | (EXD << 16) | PC; - nflag = MB & 7; - if (nflag) - { - if (nflag == 7) - FLAGS = (MB & 010) ? 077 : 000; - else - WRITEFLAG(nflag, (MB & 010) ? 1 : 0); - } - if (MB & 01000) /* Complement AC */ - AC ^= 0777777; - if (MB & 00400) /* Halt */ - { - if (LOG_EXTRA) - logerror("PDP1 Program executed HALT: at 0%06o\n", PREVIOUS_PC); - - pdp1.run = 0; - } - break; - } - default: - if (LOG) - logerror("Illegal instruction: 0%06o at 0%06o\n", MB, PREVIOUS_PC); - - /* let us stop the CPU, like a real pdp-1 */ - pdp1.run = 0; - - break; - } - pdp1.cycle = 0; -no_fetch: - ; -} - - -/* - Handle unimplemented IOT -*/ -static void null_iot(int op2, int nac, int mb, int *io, int ac) -{ - /* Note that the dummy IOT 0 is used to wait for the completion pulse - generated by the a pending IOT (IOT with completion pulse but no IO wait) */ - if (LOG_IOT_EXTRA) - { - if (op2 == 000) - logerror("IOT sync instruction: mb=0%06o, pc=0%06o\n", (unsigned) mb, (unsigned) cpunum_get_reg(0, PDP1_PC)); - } - if (LOG) - { - if (op2 != 000) - logerror("Not supported IOT command (no external IOT function given) 0%06o at 0%06o\n", mb, PREVIOUS_PC); - } -} - - -/* - Memory expansion control (type 15) - - IOT 74: LEM/EEM -*/ -static void lem_eem_iot(int op2, int nac, int mb, int *io, int ac) -{ - if (! pdp1.extend_support) /* extend mode supported? */ - { - if (LOG) - logerror("Ignoring internal error in file " __FILE__ " line %d.\n", __LINE__); - return; - } - if (LOG_EXTRA) - { - logerror("EEM/LEM instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - } - EXD = (mb & 0004000) ? 1 : 0; -} - - -/* - Standard sequence break system - - IOT 54: lsm - IOT 55: esm - IOT 56: cbs -*/ -static void sbs_iot(int op2, int nac, int mb, int *io, int ac) -{ - switch (op2) - { - case 054: /* LSM */ - if (LOG_EXTRA) - logerror("LSM instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.sbm = 0; - field_interrupt(); - break; - case 055: /* ESM */ - if (LOG_EXTRA) - logerror("ESM instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.sbm = 1; - field_interrupt(); - break; - case 056: /* CBS */ - if (LOG_EXTRA) - logerror("CBS instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - /*pdp1.b3 = 0;*/ - pdp1.b4 = 0; - field_interrupt(); - break; - default: - if (LOG) - logerror("Ignoring internal error in file " __FILE__ " line %d.\n", __LINE__); - - break; - } -} - - -/* - type 20 sequence break system - - IOT 50: dsc - IOT 51: asc - IOT 52: isb - IOT 53: cac -*/ -static void type_20_sbs_iot(int op2, int nac, int mb, int *io, int ac) -{ - int channel, mask; - if (! pdp1.type_20_sbs) /* type 20 sequence break system supported? */ - { - if (LOG) - logerror("Ignoring internal error in file " __FILE__ " line %d.\n", __LINE__); - return; - } - channel = (mb >> 6) & 017; - mask = 1 << channel; - switch (op2) - { - case 050: /* DSC */ - if (LOG_EXTRA) - logerror("DSC instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.b1 &= ~mask; - field_interrupt(); - break; - case 051: /* ASC */ - if (LOG_EXTRA) - logerror("ASC instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.b1 |= mask; - field_interrupt(); - break; - case 052: /* ISB */ - if (LOG_EXTRA) - logerror("ISB instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.b2 |= mask; - field_interrupt(); - break; - case 053: /* CAC */ - if (LOG_EXTRA) - logerror("CAC instruction: mb=0%06o, pc=0%06o\n", mb, pdp1.pc); - - pdp1.b1 = 0; - field_interrupt(); - break; - default: - if (LOG) - logerror("Ignoring internal error in file " __FILE__ " line %d.\n", __LINE__); - - break; - } - -} - - -/* - Simulate a pulse on start/clear line: - reset most registers and flip-flops, and initialize a few emulator state - variables. -*/ -static void pulse_start_clear(void) -{ - /* processor registers */ - PC = 0; /* according to maintainance manual p. 6-17 */ - IR = 0; /* according to maintainance manual p. 6-13 */ - /*MB = 0;*/ /* ??? */ - /*MA = 0;*/ /* ??? */ - /*AC = 0;*/ /* ??? */ - /*IO = 0;*/ /* ??? */ - /*PF = 0;*/ /* ??? */ - - /* processor state flip-flops */ - pdp1.run = 0; /* ??? */ - pdp1.cycle = 0; /* mere guess */ - pdp1.defer = 0; /* mere guess */ - pdp1.brk_ctr = 0; /* mere guess */ - pdp1.ov = 0; /* according to maintainance manual p. 7-18 */ - pdp1.rim = 0; /* ??? */ - pdp1.sbm = 0; /* ??? */ - EXD = 0; /* according to maintainance manual p. 8-16 */ - pdp1.exc = 0; /* according to maintainance manual p. 8-16 */ - pdp1.ioc = 1; /* according to maintainance manual p. 6-10 */ - pdp1.ioh = 0; /* according to maintainance manual p. 6-10 */ - pdp1.ios = 0; /* according to maintainance manual p. 6-10 */ - - pdp1.b1 = pdp1.type_20_sbs ? 0 : 1; /* mere guess */ - pdp1.b2 = 0; /* mere guess */ - pdp1.b4 = 0; /* mere guess */ - - - pdp1.rim_step = 0; - pdp1.sbs_restore = 0; /* mere guess */ - pdp1.no_sequence_break = 0; /* mere guess */ - - field_interrupt(); - - /* now, we kindly ask IO devices to reset, too */ - if (pdp1.io_sc_callback) - (*pdp1.io_sc_callback)(); -} diff --git a/src/cpu/pdp1/tx0.c b/src/cpu/pdp1/tx0.c deleted file mode 100644 index bd840c8c7..000000000 --- a/src/cpu/pdp1/tx0.c +++ /dev/null @@ -1,1320 +0,0 @@ -/* - TX-0 emulator - - Two variants: - * initial model 64kWord RAM - * later model 8kWord RAM - - Raphael Nabet 2004 -*/ - -#include -#include -#include "driver.h" -#include "debugger.h" -#include "tx0.h" - -#define LOG 0 -#define LOG_EXTRA 0 - -static void execute_instruction_64kw(void); -static void execute_instruction_8kw(void); -static void pulse_reset(void); - - -/* TX-0 Registers */ -typedef struct -{ - /* processor registers */ - int mbr; /* memory buffer register (18 bits) */ - int ac; /* accumulator (18 bits) */ - int mar; /* memory address register (16 (64kW) or 13 (8kW) bits) */ - int pc; /* program counter (16 (64kW) or 13 (8kW) bits) */ - int ir; /* instruction register (2 (64kW) or 5 (8kW) bits) */ - int lr; /* live register (18 bits) */ - int xr; /* index register (14 bits) (8kW only) */ - int pf; /* program flags (6 bits expandable to 10) (8kW only) */ - - /* operator panel switches */ - int tbr; /* toggle switch buffer register (18 bits) */ - int tac; /* toggle switch accumulator (18 bits) */ - int tss[16]; /* toggle switch storage (18 bits * 16) */ - unsigned int cm_sel : 16; /* individual cm select (1 bit * 16) */ - unsigned int lr_sel : 16; /* individual lr select (1 bit * 16) */ - unsigned int gbl_cm_sel : 1;/* global cm select (1 bit) */ - unsigned int stop_cyc0 : 1; /* stop on cycle 0 */ - unsigned int stop_cyc1 : 1; /* stop on cycle 1 */ - - /* processor state flip-flops */ - unsigned int run : 1; /* processor is running */ - unsigned int rim : 1; /* processor is in read-in mode */ - unsigned int cycle : 2; /* 0 -> fetch */ - /* 1 -> execute (except for taken branches) */ - /* 2 -> extra execute cycle for SXA and ADO */ - - unsigned int ioh : 1; /* i-o halt: processor is executing an Input-Output Transfer wait */ - unsigned int ios : 1; /* i-o synchronizer: set on i-o operation completion */ - - /* additional emulator state variables */ - int rim_step; /* current step in rim execution */ - - int address_mask; /* address mask */ - int ir_mask; /* IR mask */ - - /* 8 standard I/O handlers: - 0: cpy (8kW only) - 1: r1l - 2: dis - 3: r3l - 4: prt - 5: reserved - 6: p6h - 7: p7h */ - void (*io_handlers[8])(void); - /* select instruction handler */ - void (*sel_handler)(void); - /* called when reset line is pulsed: IO devices should reset */ - void (*io_reset_callback)(void); -} -tx0_Regs; - -#define io_handler_rim 3 - -static tx0_Regs tx0; - -#define PC tx0.pc -#define IR tx0.ir -#define MBR tx0.mbr -#define MAR tx0.mar -#define AC tx0.ac -#define LR tx0.lr -#define XR tx0.xr -#define PF tx0.pf - -#define ADDRESS_MASK_64KW 0177777 -#define ADDRESS_MASK_8KW 0017777 - -#define INCREMENT_PC_64KW (PC = (PC+1) & ADDRESS_MASK_64KW) -#define INCREMENT_PC_8KW (PC = (PC+1) & ADDRESS_MASK_8KW) - -/* public globals */ -static signed int tx0_ICount; - - -static int tx0_read(offs_t address) -{ - if ((address >= 16) || (tx0.gbl_cm_sel) || ((tx0.cm_sel >> address) & 1)) - /* core memory (CM) */ - return READ_TX0_18BIT(address); - else if ((tx0.lr_sel >> address) & 1) - /* live register (LR) */ - return LR; - else - /* toggle switch storage (TSS) */ - return tx0.tss[address]; -} - -static void tx0_write(offs_t address, int data) -{ - if ((address >= 16) || (tx0.gbl_cm_sel) || ((tx0.cm_sel >> address) & 1)) - /* core memory (CM) */ - WRITE_TX0_18BIT(address, data); - else if ((tx0.lr_sel >> address) & 1) - /* live register (LR) */ - LR = data; - else - /* toggle switch storage (TSS) */ - /* TSS is read-only */ - ; -} - -static void tx0_init_common(int is_64kw, int index, int clock, const void *config, int (*irqcallback)(int)) -{ - int i; - tx0_reset_param_t *param = (tx0_reset_param_t *) config; - - /* clean-up */ - memset (&tx0, 0, sizeof (tx0)); - - /* set up params and callbacks */ - for (i=0; i<8; i++) - tx0.io_handlers[i] = (param) ? param->io_handlers[i] : NULL; - tx0.sel_handler = (param) ? param->sel_handler : NULL; - tx0.io_reset_callback = (param) ? param->io_reset_callback : NULL; - - tx0.address_mask = is_64kw ? ADDRESS_MASK_64KW : ADDRESS_MASK_8KW; - tx0.ir_mask = is_64kw ? 03 : 037; -} - -static void tx0_init_64kw(int index, int clock, const void *config, int (*irqcallback)(int)) -{ - tx0_init_common(1, index, clock, config, irqcallback); -} - -static void tx0_init_8kw(int index, int clock, const void *config, int (*irqcallback)(int)) -{ - tx0_init_common(0, index, clock, config, irqcallback); -} - -static void tx0_reset(void) -{ - /* reset CPU flip-flops */ - pulse_reset(); - - tx0.gbl_cm_sel = 1; /* HACK */ -} - -static void tx0_get_context(void *dst) -{ - if (dst) - *(tx0_Regs *) dst = tx0; -} - -static void tx0_set_context(void *src) -{ - if (src) - tx0 = *(tx0_Regs *) src; -} - - -/* execute instructions on this CPU until icount expires */ -static int tx0_execute_64kw(int cycles) -{ - tx0_ICount = cycles; - - do - { - CALL_MAME_DEBUG; - - - if (tx0.ioh && tx0.ios) - { - tx0.ioh = 0; - tx0.ios = 0; - } - - - if ((! tx0.run) && (! tx0.rim)) - tx0_ICount = 0; /* if processor is stopped, just burn cycles */ - else if (tx0.rim) - { - switch (tx0.rim_step) - { - case 0: - /* read first word as instruction */ - AC = 0; - if (tx0.io_handlers[io_handler_rim]) - (*tx0.io_handlers[io_handler_rim])(); /* data will be transferred to AC */ - tx0.rim_step = 1; - break; - - case 1: - if (! tx0.ios) - { /* transfer incomplete: wait some more */ - tx0_ICount = 0; - } - else - { /* data transfer complete */ - tx0.ios = 0; - - MBR = AC; - IR = MBR >> 16; /* basic opcode */ - if ((IR == 2) || (IR == 1)) /* trn or add instruction? */ - { - PC = MBR & ADDRESS_MASK_64KW; - tx0.rim = 0; /* exit read-in mode */ - tx0.run = (IR == 2) ? 1 : 0; /* stop if add instruction */ - tx0.rim_step = 0; - } - else if ((IR == 0) || (IR == 3)) /* sto or opr instruction? */ - { - MAR = MBR & ADDRESS_MASK_64KW; - tx0.rim_step = 2; - } - } - break; - - case 2: - /* read second word as data */ - AC = 0; - if (tx0.io_handlers[io_handler_rim]) - (*tx0.io_handlers[io_handler_rim])(); /* data will be transferred to AC */ - tx0.rim_step = 3; - break; - - case 3: - if (! tx0.ios) - { /* transfer incomplete: wait some more */ - tx0_ICount = 0; - } - else - { /* data transfer complete */ - tx0.ios = 0; - - tx0_write(MAR, MBR = AC); - - tx0.rim_step = 0; - } - break; - } - } - else - { - if (tx0.cycle == 0) - { /* fetch new instruction */ - MBR = tx0_read(MAR = PC); - INCREMENT_PC_64KW; - IR = MBR >> 16; /* basic opcode */ - MAR = MBR & ADDRESS_MASK_64KW; - } - - if (! tx0.ioh) - { - if ((tx0.stop_cyc0 && (tx0.cycle == 0)) - || (tx0.stop_cyc1 && (tx0.cycle == 1))) - tx0.run = 0; - - execute_instruction_64kw(); /* execute instruction */ - } - - tx0_ICount --; - } - } - while (tx0_ICount > 0); - - return cycles - tx0_ICount; -} - -/* execute instructions on this CPU until icount expires */ -static int tx0_execute_8kw(int cycles) -{ - tx0_ICount = cycles; - - do - { - CALL_MAME_DEBUG; - - - if (tx0.ioh && tx0.ios) - { - tx0.ioh = 0; - tx0.ios = 0; - } - - - if ((! tx0.run) && (! tx0.rim)) - tx0_ICount = 0; /* if processor is stopped, just burn cycles */ - else if (tx0.rim) - { - switch (tx0.rim_step) - { - case 0: - /* read first word as instruction */ - AC = 0; - if (tx0.io_handlers[io_handler_rim]) - (*tx0.io_handlers[io_handler_rim])(); /* data will be transferred to AC */ - tx0.rim_step = 1; - break; - - case 1: - if (! tx0.ios) - { /* transfer incomplete: wait some more */ - tx0_ICount = 0; - } - else - { /* data transfer complete */ - tx0.ios = 0; - - MBR = AC; - IR = MBR >> 13; /* basic opcode */ - if ((IR == 16) || (IR == 8)) /* trn or add instruction? */ - { - PC = MBR & ADDRESS_MASK_8KW; - tx0.rim = 0; /* exit read-in mode */ - tx0.run = (IR == 16) ? 1 : 0; /* stop if add instruction */ - tx0.rim_step = 0; - } - else if ((IR == 0) || (IR == 24)) /* sto or opr instruction? */ - { - MAR = MBR & ADDRESS_MASK_8KW; - tx0.rim_step = 2; - } - } - break; - - case 2: - /* read second word as data */ - AC = 0; - if (tx0.io_handlers[io_handler_rim]) - (*tx0.io_handlers[io_handler_rim])(); /* data will be transferred to AC */ - tx0.rim_step = 3; - break; - - case 3: - if (! tx0.ios) - { /* transfer incomplete: wait some more */ - tx0_ICount = 0; - } - else - { /* data transfer complete */ - tx0.ios = 0; - - tx0_write(MAR, MBR = AC); - - tx0.rim_step = 0; - } - break; - } - } - else - { - if (tx0.cycle == 0) - { /* fetch new instruction */ - MBR = tx0_read(MAR = PC); - INCREMENT_PC_8KW; - IR = MBR >> 13; /* basic opcode */ - MAR = MBR & ADDRESS_MASK_8KW; - } - - if (! tx0.ioh) - { - if ((tx0.stop_cyc0 && (tx0.cycle == 0)) - || (tx0.stop_cyc1 && (tx0.cycle == 1))) - tx0.run = 0; - - execute_instruction_8kw(); /* execute instruction */ - } - - tx0_ICount -= 1; - } - } - while (tx0_ICount > 0); - - return cycles - tx0_ICount; -} - - -static void tx0_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - case CPUINFO_INT_SP: (void) info->i; /* no SP */ break; - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + TX0_PC: PC = info->i & tx0.address_mask; break; - case CPUINFO_INT_REGISTER + TX0_IR: IR = info->i & tx0.ir_mask; /* weird idea */break; - case CPUINFO_INT_REGISTER + TX0_MBR: MBR = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_MAR: MAR = info->i & tx0.address_mask; break; - case CPUINFO_INT_REGISTER + TX0_AC: AC = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_LR: LR = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_XR: XR = info->i & 0037777; break; - case CPUINFO_INT_REGISTER + TX0_PF: PF = info->i & 077; break; - case CPUINFO_INT_REGISTER + TX0_TBR: tx0.tbr = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_TAC: tx0.tac = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_TSS00: - case CPUINFO_INT_REGISTER + TX0_TSS01: - case CPUINFO_INT_REGISTER + TX0_TSS02: - case CPUINFO_INT_REGISTER + TX0_TSS03: - case CPUINFO_INT_REGISTER + TX0_TSS04: - case CPUINFO_INT_REGISTER + TX0_TSS05: - case CPUINFO_INT_REGISTER + TX0_TSS06: - case CPUINFO_INT_REGISTER + TX0_TSS07: - case CPUINFO_INT_REGISTER + TX0_TSS10: - case CPUINFO_INT_REGISTER + TX0_TSS11: - case CPUINFO_INT_REGISTER + TX0_TSS12: - case CPUINFO_INT_REGISTER + TX0_TSS13: - case CPUINFO_INT_REGISTER + TX0_TSS14: - case CPUINFO_INT_REGISTER + TX0_TSS15: - case CPUINFO_INT_REGISTER + TX0_TSS16: - case CPUINFO_INT_REGISTER + TX0_TSS17: tx0.tss[state-(CPUINFO_INT_REGISTER + TX0_TSS00)] = info->i & 0777777; break; - case CPUINFO_INT_REGISTER + TX0_CM_SEL: tx0.cm_sel = info->i & 0177777; break; - case CPUINFO_INT_REGISTER + TX0_LR_SEL: tx0.lr_sel = info->i & 0177777; break; - case CPUINFO_INT_REGISTER + TX0_GBL_CM_SEL: tx0.gbl_cm_sel = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC0: tx0.stop_cyc0 = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC1: tx0.stop_cyc1 = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + TX0_RUN: tx0.run = info->i ? 1 : 0; break; - case CPUINFO_INT_REGISTER + TX0_RIM: tx0.rim = info->i ? 1 : 0; break; -#if LOG - case CPUINFO_INT_REGISTER + TX0_CYCLE: logerror("tx0_set_reg to cycle counter ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + TX0_IOH: logerror("tx0_set_reg to ioh flip-flop ignored\n");/* no way!*/ break; - case CPUINFO_INT_REGISTER + TX0_IOS: logerror("tx0_set_reg to ios flip-flop ignored\n");/* no way!*/ break; -#endif - case CPUINFO_INT_REGISTER + TX0_RESET: pulse_reset(); break; - case CPUINFO_INT_REGISTER + TX0_IO_COMPLETE:tx0.ios = 1; break; - } -} - - -void tx0_64kw_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(tx0); break; - case CPUINFO_INT_INPUT_LINES: info->i = 0; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; - case CPUINFO_INT_MAX_CYCLES: info->i = 3; break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = -2; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_SP: info->i = 0; /* no SP */ break; - case CPUINFO_INT_PC: info->i = PC; break; - case CPUINFO_INT_PREVIOUSPC: info->i = 0; /* TODO??? */ break; - - case CPUINFO_INT_REGISTER + TX0_PC: info->i = PC; break; - case CPUINFO_INT_REGISTER + TX0_IR: info->i = IR; break; - case CPUINFO_INT_REGISTER + TX0_MBR: info->i = MBR; break; - case CPUINFO_INT_REGISTER + TX0_MAR: info->i = MAR; break; - case CPUINFO_INT_REGISTER + TX0_AC: info->i = AC; break; - case CPUINFO_INT_REGISTER + TX0_LR: info->i = LR; break; - case CPUINFO_INT_REGISTER + TX0_XR: info->i = XR; break; - case CPUINFO_INT_REGISTER + TX0_PF: info->i = PF; break; - case CPUINFO_INT_REGISTER + TX0_TBR: info->i = tx0.tbr; break; - case CPUINFO_INT_REGISTER + TX0_TAC: info->i = tx0.tac; break; - case CPUINFO_INT_REGISTER + TX0_TSS00: - case CPUINFO_INT_REGISTER + TX0_TSS01: - case CPUINFO_INT_REGISTER + TX0_TSS02: - case CPUINFO_INT_REGISTER + TX0_TSS03: - case CPUINFO_INT_REGISTER + TX0_TSS04: - case CPUINFO_INT_REGISTER + TX0_TSS05: - case CPUINFO_INT_REGISTER + TX0_TSS06: - case CPUINFO_INT_REGISTER + TX0_TSS07: - case CPUINFO_INT_REGISTER + TX0_TSS10: - case CPUINFO_INT_REGISTER + TX0_TSS11: - case CPUINFO_INT_REGISTER + TX0_TSS12: - case CPUINFO_INT_REGISTER + TX0_TSS13: - case CPUINFO_INT_REGISTER + TX0_TSS14: - case CPUINFO_INT_REGISTER + TX0_TSS15: - case CPUINFO_INT_REGISTER + TX0_TSS16: - case CPUINFO_INT_REGISTER + TX0_TSS17: info->i = tx0.tss[state-(CPUINFO_INT_REGISTER + TX0_TSS00)]; break; - case CPUINFO_INT_REGISTER + TX0_CM_SEL: info->i = tx0.cm_sel; break; - case CPUINFO_INT_REGISTER + TX0_LR_SEL: info->i = tx0.lr_sel; break; - case CPUINFO_INT_REGISTER + TX0_GBL_CM_SEL: info->i = tx0.gbl_cm_sel; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC0: info->i = tx0.stop_cyc0; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC1: info->i = tx0.stop_cyc1; break; - case CPUINFO_INT_REGISTER + TX0_RUN: info->i = tx0.run; break; - case CPUINFO_INT_REGISTER + TX0_RIM: info->i = tx0.rim; break; - case CPUINFO_INT_REGISTER + TX0_CYCLE: info->i = tx0.cycle; break; - case CPUINFO_INT_REGISTER + TX0_IOH: info->i = tx0.ioh; break; - case CPUINFO_INT_REGISTER + TX0_IOS: info->i = tx0.ios; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = tx0_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = tx0_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = tx0_set_context; break; - case CPUINFO_PTR_INIT: info->init = tx0_init_64kw; break; - case CPUINFO_PTR_RESET: info->reset = tx0_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = tx0_execute_64kw; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; - -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = tx0_dasm_64kw; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tx0_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; - - case CPUINFO_STR_FLAGS: strcpy(info->s = cpuintrf_temp_str(), ""); break; - - case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s = cpuintrf_temp_str(), "MBR:0%06o", MBR); break; - case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s = cpuintrf_temp_str(), "MAR:0%06o", MAR); break; - case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s = cpuintrf_temp_str(), "LR:0%06o", LR); break; - case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s = cpuintrf_temp_str(), "XR:0%05o", XR); break; - case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s = cpuintrf_temp_str(), "PF:0%02o", PF); break; break; - case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s = cpuintrf_temp_str(), "TBR:0%06o", tx0.tbr); break; - case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s = cpuintrf_temp_str(), "TAC:0%06o", tx0.tac); break; - case CPUINFO_STR_REGISTER + TX0_TSS00: - case CPUINFO_STR_REGISTER + TX0_TSS01: - case CPUINFO_STR_REGISTER + TX0_TSS02: - case CPUINFO_STR_REGISTER + TX0_TSS03: - case CPUINFO_STR_REGISTER + TX0_TSS04: - case CPUINFO_STR_REGISTER + TX0_TSS05: - case CPUINFO_STR_REGISTER + TX0_TSS06: - case CPUINFO_STR_REGISTER + TX0_TSS07: - case CPUINFO_STR_REGISTER + TX0_TSS10: - case CPUINFO_STR_REGISTER + TX0_TSS11: - case CPUINFO_STR_REGISTER + TX0_TSS12: - case CPUINFO_STR_REGISTER + TX0_TSS13: - case CPUINFO_STR_REGISTER + TX0_TSS14: - case CPUINFO_STR_REGISTER + TX0_TSS15: - case CPUINFO_STR_REGISTER + TX0_TSS16: - case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s = cpuintrf_temp_str(), "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; - case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "CMSEL:0%06o", tx0.cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s = cpuintrf_temp_str(), "LRSEL:0%06o", tx0.lr_sel); break; - case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "GBLCMSEL:%X", tx0.gbl_cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC0:%X", tx0.stop_cyc0); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC1:%X", tx0.stop_cyc1); break; - case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", tx0.run); break; - case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", tx0.rim); break; - case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s = cpuintrf_temp_str(), "CYCLE:%X", tx0.cycle); break; - case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", tx0.ioh); break; - case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", tx0.ios); break; - } -} - -void tx0_8kw_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(tx0); break; - case CPUINFO_INT_INPUT_LINES: info->i = 0; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; - case CPUINFO_INT_MAX_CYCLES: info->i = 3; break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 13; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = -2; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_SP: info->i = 0; /* no SP */ break; - case CPUINFO_INT_PC: info->i = PC; break; - case CPUINFO_INT_PREVIOUSPC: info->i = 0; /* TODO??? */ break; - - case CPUINFO_INT_REGISTER + TX0_PC: info->i = PC; break; - case CPUINFO_INT_REGISTER + TX0_IR: info->i = IR; break; - case CPUINFO_INT_REGISTER + TX0_MBR: info->i = MBR; break; - case CPUINFO_INT_REGISTER + TX0_MAR: info->i = MAR; break; - case CPUINFO_INT_REGISTER + TX0_AC: info->i = AC; break; - case CPUINFO_INT_REGISTER + TX0_LR: info->i = LR; break; - case CPUINFO_INT_REGISTER + TX0_XR: info->i = XR; break; - case CPUINFO_INT_REGISTER + TX0_PF: info->i = PF; break; - case CPUINFO_INT_REGISTER + TX0_TBR: info->i = tx0.tbr; break; - case CPUINFO_INT_REGISTER + TX0_TAC: info->i = tx0.tac; break; - case CPUINFO_INT_REGISTER + TX0_TSS00: - case CPUINFO_INT_REGISTER + TX0_TSS01: - case CPUINFO_INT_REGISTER + TX0_TSS02: - case CPUINFO_INT_REGISTER + TX0_TSS03: - case CPUINFO_INT_REGISTER + TX0_TSS04: - case CPUINFO_INT_REGISTER + TX0_TSS05: - case CPUINFO_INT_REGISTER + TX0_TSS06: - case CPUINFO_INT_REGISTER + TX0_TSS07: - case CPUINFO_INT_REGISTER + TX0_TSS10: - case CPUINFO_INT_REGISTER + TX0_TSS11: - case CPUINFO_INT_REGISTER + TX0_TSS12: - case CPUINFO_INT_REGISTER + TX0_TSS13: - case CPUINFO_INT_REGISTER + TX0_TSS14: - case CPUINFO_INT_REGISTER + TX0_TSS15: - case CPUINFO_INT_REGISTER + TX0_TSS16: - case CPUINFO_INT_REGISTER + TX0_TSS17: info->i = tx0.tss[state-(CPUINFO_INT_REGISTER + TX0_TSS00)]; break; - case CPUINFO_INT_REGISTER + TX0_CM_SEL: info->i = tx0.cm_sel; break; - case CPUINFO_INT_REGISTER + TX0_LR_SEL: info->i = tx0.lr_sel; break; - case CPUINFO_INT_REGISTER + TX0_GBL_CM_SEL: info->i = tx0.gbl_cm_sel; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC0: info->i = tx0.stop_cyc0; break; - case CPUINFO_INT_REGISTER + TX0_STOP_CYC1: info->i = tx0.stop_cyc1; break; - case CPUINFO_INT_REGISTER + TX0_RUN: info->i = tx0.run; break; - case CPUINFO_INT_REGISTER + TX0_RIM: info->i = tx0.rim; break; - case CPUINFO_INT_REGISTER + TX0_CYCLE: info->i = tx0.cycle; break; - case CPUINFO_INT_REGISTER + TX0_IOH: info->i = tx0.ioh; break; - case CPUINFO_INT_REGISTER + TX0_IOS: info->i = tx0.ios; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = tx0_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = tx0_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = tx0_set_context; break; - case CPUINFO_PTR_INIT: info->init = tx0_init_8kw; break; - case CPUINFO_PTR_RESET: info->reset = tx0_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = tx0_execute_8kw; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; - -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = tx0_dasm_8kw; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tx0_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; - - case CPUINFO_STR_FLAGS: strcpy(info->s = cpuintrf_temp_str(), ""); break; - - case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s = cpuintrf_temp_str(), "MBR:0%06o", MBR); break; - case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s = cpuintrf_temp_str(), "MAR:0%06o", MAR); break; - case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s = cpuintrf_temp_str(), "LR:0%06o", LR); break; - case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s = cpuintrf_temp_str(), "XR:0%05o", XR); break; - case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s = cpuintrf_temp_str(), "PF:0%02o", PF); break; break; - case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s = cpuintrf_temp_str(), "TBR:0%06o", tx0.tbr); break; - case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s = cpuintrf_temp_str(), "TAC:0%06o", tx0.tac); break; - case CPUINFO_STR_REGISTER + TX0_TSS00: - case CPUINFO_STR_REGISTER + TX0_TSS01: - case CPUINFO_STR_REGISTER + TX0_TSS02: - case CPUINFO_STR_REGISTER + TX0_TSS03: - case CPUINFO_STR_REGISTER + TX0_TSS04: - case CPUINFO_STR_REGISTER + TX0_TSS05: - case CPUINFO_STR_REGISTER + TX0_TSS06: - case CPUINFO_STR_REGISTER + TX0_TSS07: - case CPUINFO_STR_REGISTER + TX0_TSS10: - case CPUINFO_STR_REGISTER + TX0_TSS11: - case CPUINFO_STR_REGISTER + TX0_TSS12: - case CPUINFO_STR_REGISTER + TX0_TSS13: - case CPUINFO_STR_REGISTER + TX0_TSS14: - case CPUINFO_STR_REGISTER + TX0_TSS15: - case CPUINFO_STR_REGISTER + TX0_TSS16: - case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s = cpuintrf_temp_str(), "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; - case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "CMSEL:0%06o", tx0.cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s = cpuintrf_temp_str(), "LRSEL:0%06o", tx0.lr_sel); break; - case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "GBLCMSEL:%X", tx0.gbl_cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC0:%X", tx0.stop_cyc0); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC1:%X", tx0.stop_cyc1); break; - case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", tx0.run); break; - case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", tx0.rim); break; - case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s = cpuintrf_temp_str(), "CYCLE:%X", tx0.cycle); break; - case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", tx0.ioh); break; - case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", tx0.ios); break; - } -} - - -/* execute one instruction */ -static void execute_instruction_64kw(void) -{ - if (! tx0.cycle) - { - tx0.cycle = 1; /* most frequent case */ - switch (IR) - { - case 0: /* STOre */ - case 1: /* ADD */ - break; - - case 2: /* TRansfer on Negative */ - if (AC & 0400000) - { - PC = MAR & ADDRESS_MASK_64KW; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - } - break; - - case 3: /* OPeRate */ - if (MAR & 0100000) - /* (0.8) CLL = Clear the left nine digital positions of the AC */ - AC &= 0000777; - - if (MAR & 0040000) - /* (0.8) CLR = Clear the right nine digital positions of the AC */ - AC &= 0777000; - - if (((MAR & 0030000) >> 12) == 1) - /* (0.8) IOS In-Out Stop = Stop machine so that an In-Out command - (specified by digits 6 7 8 of MAR) may be executed */ - tx0.ioh = 1; - - if (((MAR & 0007000) >> 9) != 0) - { - /* ((MAR & 0007000) >> 9) is device ID */ - /* 7: */ - /* (0.8) P7H = Punch holes 1-6 in flexo tape specified by AC - digital positions 2, 5, 8, 11, 14, and 17. Also punches a 7th - hole on tape. */ - /* 6: */ - /* (0.8) P6H = Same as P7H but no seventh hole */ - /* 4: */ - /* (0.8) PNT = Print one flexowriter character specified by AC - digits 2, 5, 8, 11, 14, and 17. */ - /* 1: */ - /* (0.8) R1C = Read one line of flexo tape so that tape positions - 1, 2, 3, 4, 5, and 6 will be put in the AC digital positions 0, - 3, 6, 9, 12 and 15. */ - /* 3: */ - /* (0.8) R3C = Read one line of flexo tape into AC digits 0, 3, 6, - 9, 12 and 15. Then cycle the AC one digital position; read the - next line on tape into AC digits 0, 3, 6, 9, 12 and 15, cycle - the AC right one digital position and read the third and last - line into AC digits 0, 3, 6, 9, 12 and 15. (This command is - equal to a triple CYR-R1C.) */ - /* 2: */ - /* (0.8) DIS = Intensify a point on the scope with x and y - coordinates where x is specified by AC digits 0-8 with digit 0 - being used as the sign and y is specified by AC digits 9-17 - with digit 9 being used as the sign for y. The complement - system is in effect when the signs are negative. */ - /* (5 is undefined) */ - int index = (MAR & 0007000) >> 9; - - if (tx0.io_handlers[index]) - (*tx0.io_handlers[index])(); - tx0.ioh = 1; - } - break; - } - } - else - { - tx0.cycle = 0; /* always true */ - switch (IR) - { - case 0: /* STOre */ - tx0_write(MAR, (MBR = AC)); - break; - - case 1: /* ADD */ - MBR = tx0_read(MAR); - - AC = AC + MBR; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - if (AC == 0777777) /* check for -0 */ - AC = 0; - break; - - case 2: /* TRansfer on Negative */ - break; - - case 3: /* OPeRate */ - if ((MAR & 0000104) == 0000100) - /* (1.1) PEN = Read the light pen flip-flops 1 and 2 into AC(0) and - AC(1). */ - /*...*/; - - if ((MAR & 0000104) == 0000004) - /* (1.1) TAC = Insert a one in each digital position of the AC - wherever there is a one in the corresponding digital position - of the TAC. */ - /*...*/; - - if (MAR & 0000040) - /* (1.2) COM = Complement every digit in the accumulator */ - AC ^= 0777777; - - if ((MAR & 0000003) == 1) - /* (1.2) AMB = Store the contents of the AC in the MBR. */ - MBR = AC; - - if ((MAR & 0000003) == 3) - /* (1.2) TBR = Store the contents of the TBR in the MBR. */ - /*...*/; - - if ((MAR & 0000003) == 2) - /* (1.3) LMB = Store the contents of the LR in the MBR. */ - MBR = LR; - break; - - if (((MAR & 0000600) >> 7) == 1) - /* (1.3) MLR = Store the contents of the MBR (memory buffer - register) in the live reg. */ - LR = MBR; - - if (((MAR & 0000600) >> 7) == 2) - /* (1.4) SHR = Shift the AC right one place, i.e. multiply the AC - by 2^-1 */ - AC >>= 1; - - if (((MAR & 0000600) >> 7) == 3) - /* (1.4) CYR = Cycle the AC right one digital position (AC(17) will - become AC(0)) */ - AC = (AC >> 1) | ((AC & 1) << 17); - - if (MAR & 0000020) - /* (1.4) PAD = Partial add AC to MBR, that is, for every digital - position of the MBR that contains a one, complement the digit - in the corresponding digital position of the AC. This is also - called a half add. */ - AC ^= MBR; - - if (MAR & 0000010) - { /* (1.7) CRY = Partial add the 18 digits of the AC to the - corresponding 18 digits of the carry. - - To determine what the 18 digits of the carry are, use the - following rule: - - "Grouping the AC and MBR digits into pairs and proceeding from - right to left, assign the carry digit of the next pair to a one - if in the present pair MBR = 1 and AC = 0 or if in the present - pair AC = 1 and carry 1. - - (Note: the 0th digit pair determines the 17th pair's carry - digit)" */ - AC ^= MBR; - - AC = AC + MBR; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - if (AC == 0777777) /* check for -0 */ - AC = 0; - } - - if (((MAR & 0030000) >> 12) == 3) - /* (1.8) Hlt = Halt the computer */ - tx0.run = 0; - - break; - } - } -} - -static void indexed_address_eval(void) -{ - MAR = MAR + XR; - MAR = (MAR + (MAR >> 14)) & 0037777; /* propagate carry around */ - //if (MAR == 0037777) /* check for -0 */ - // MAR = 0; - if (MAR & 0020000) /* fix negative (right???) */ - MAR = (MAR + 1) & 0017777; -} - -/* execute one instruction */ -static void execute_instruction_8kw(void) -{ - if (! tx0.cycle) - { - tx0.cycle = 1; /* most frequent case */ - switch (IR) - { - case 0: /* STOre */ - case 1: /* STore indeXed */ - case 2: /* Store indeX in Address */ - case 3: /* ADd One */ - case 4: /* Store LR */ - case 5: /* Store Lr indeXed */ - case 6: /* STore Zero */ - case 8: /* ADD */ - case 9: /* ADd indeXed */ - case 10: /* LoaD indeX */ - case 11: /* AUgment indeX */ - case 12: /* Load LR */ - case 13: /* Load Lr indeXed */ - case 14: /* LoaD Ac */ - case 15: /* Load Ac indeXed */ - break; - - case 16: /* TRansfer on Negative */ - if (AC & 0400000) - { - PC = MAR & 0017777; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - } - break; - - case 17: /* Transfer on ZEro */ - if ((AC == 0000000) || (AC == 0777777)) - { - PC = MAR & 0017777; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - } - break; - - case 18: /* Transfer and Set indeX */ - XR = PC; - PC = MAR & 0017777; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - break; - - case 19: /* Transfer and IndeX */ - if ((XR != 0000000) && (XR != 0037777)) - { - if (XR & 0020000) - XR ++; - else - XR--; - PC = MAR & 0017777; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - } - break; - - case 21: /* TRansfer indeXed */ - indexed_address_eval(); - case 20: /* TRAnsfer */ - PC = MAR & 0017777; - tx0.cycle = 0; /* instruction only takes one cycle if branch - is taken */ - break; - - case 22: /* Transfer on external LeVel */ - /*if (...) - { - PC = MAR & 0017777; - tx0.cycle = 0;*/ /* instruction only takes one cycle if branch - is taken */ - /*}*/ - break; - - case 24: /* OPeRate */ - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - if (((IR & 001) == 00) && ((MAR & 017000) == 004000)) - { /* Select class instruction */ - if (IR & 004) - /* (0.8???) CLA = CLear Ac */ - AC = 0; - - /* (IOS???) SEL = SELect */ - if (tx0.sel_handler) - (*tx0.sel_handler)(); - } - else - { /* Normal operate class instruction */ - if (((IR & 001) == 01) && ((MAR & 017000) == 011000)) - /* (0.6) CLL = CLear Left 9 bits of ac */ - AC &= 0000777; - - if (((IR & 001) == 01) && ((MAR & 017000) == 012000)) - /* (0.6) CLR = CLear Right 9 bits of ac */ - AC &= 0777000; - - if (IR & 002) - /* (0.7) AMB = transfer Ac to MBr */ - MBR = AC; - - if (IR & 004) - /* (0.8) CLA = CLear Ac */ - AC = 0; - - if (((IR & 001) == 01) && ((MAR & 010000) == 000000)) - { /* (IOS) In-Out group commands */ - /* ((MAR & 0007000) >> 9) is device ID */ - /* 0: */ - /* (***) CPY = CoPY synchronizes transmission of information - between in-out equipment and computer. */ - /* 1: */ - /* (IOS) R1L = Read 1 Line of tape from PETR into AC bits 0, 3, - 6, 9, 12, 15, with CYR before read (inclusive or) */ - /* 3: */ - /* (IOS) R3L = Read 3 Lines of tape from PETR into AC bits 0, - 3, 6, 9, 12, 15, with CYR before each read (inclusive or) */ - /* 2: */ - /* (IOS) DIS = DISplay a point on scope (AC bits 0-8 specify x - coordinate, AC bits 9-17 specify y coordinate). The - coordinate (0, 0) is usually at the lower left hand corner - of the scope. A console switch is available to relocate - (0,0) to the center. */ - /* 6: */ - /* (IOS) P6H = Punch one 6-bit line of flexo tape (without 7th - hole) from ac bits 2, 5, 8, 11, 14, 17. Note: lines - without 7th hole are ignored by PETR. */ - /* 7: */ - /* (IOS) P7H = same as P6H, but with 7th hole */ - /* 4: */ - /* (IOS) PRT = Print one six bit flexo character from AC bits - 2, 5, 8, 11, 14, 17. */ - /* (5 is undefined) */ - int index = (MAR & 0007000) >> 9; - - if (tx0.io_handlers[index]) - (*tx0.io_handlers[index])(); - tx0.ioh = 1; - } - - if (((IR & 001) == 00) && ((MAR & 010000) == 010000)) - { /* (IOS) EX0 through EX7 = operate user's EXternal equipment. */ - switch ((MAR & 0007000) >> 9) - { - /* ... */ - } - } - } - break; - } - } - else - { - if (((IR != 2) && (IR != 3)) || (tx0.cycle == 2)) - tx0.cycle = 0; - else - tx0.cycle = 2; /* SXA and ADO have an extra cycle 2 */ - switch (IR) - { - case 1: /* STore indeXed */ - indexed_address_eval(); - case 0: /* STOre */ - tx0_write(MAR, (MBR = AC)); - break; - - case 2: /* Store indeX in Address */ - if (tx0.cycle) - { /* cycle 1 */ - MBR = tx0_read(MAR); - MBR = (MBR & 0760000) | (XR & 0017777); - } - else - { /* cycle 2 */ - tx0_write(MAR, MBR); - } - break; - - case 3: /* ADd One */ - if (tx0.cycle) - { /* cycle 1 */ - AC = tx0_read(MAR) + 1; - - #if 0 - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - if (AC == 0777777) /* check for -0 (right???) */ - AC = 0; - #else - if (AC >= 0777777) - AC = (AC + 1) & 0777777; - #endif - } - else - { /* cycle 2 */ - tx0_write(MAR, (MBR = AC)); - } - break; - - case 5: /* Store Lr indeXed */ - indexed_address_eval(); - case 4: /* Store LR */ - tx0_write(MAR, (MBR = LR)); - break; - - case 6: /* STore Zero */ - tx0_write(MAR, (MBR = 0)); - break; - - case 9: /* ADd indeXed */ - indexed_address_eval(); - case 8: /* ADD */ - MBR = tx0_read(MAR); - - AC = AC + MBR; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - if (AC == 0777777) /* check for -0 */ - AC = 0; - break; - - case 10: /* LoaD indeX */ - MBR = tx0_read(MAR); - XR = (MBR & 0017777) | ((MBR >> 4) & 0020000); - break; - - case 11: /* AUgment indeX */ - MBR = tx0_read(MAR); - - XR = XR + ((MBR & 0017777) | ((MBR >> 4) & 0020000)); - XR = (XR + (XR >> 14)) & 0037777; /* propagate carry around */ - - //if (XR == 0037777) /* check for -0 */ - // XR = 0; - break; - - case 13: /* Load Lr indeXed */ - indexed_address_eval(); - case 12: /* Load LR */ - LR = MBR = tx0_read(MAR); - break; - - case 15: /* Load Ac indeXed */ - indexed_address_eval(); - case 14: /* LoaD Ac */ - AC = MBR = tx0_read(MAR); - break; - - case 16: /* TRansfer on Negative */ - case 17: /* Transfer on ZEro */ - case 18: /* Transfer and Set indeX */ - case 19: /* Transfer and IndeX */ - case 20: /* TRAnsfer */ - case 21: /* TRansfer indeXed */ - case 22: /* Transfer on external LeVel */ - break; - - case 24: /* OPeRate */ - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - if (((IR & 001) == 00) && ((MAR & 017000) == 004000)) - { /* Select class instruction */ - } - else - { /* Normal operate class instruction */ - if (((IR & 001) == 00) && ((MAR & 017000) == 003000)) - { /* (1.1) PEN = set ac bit 0 from light PEN ff, and ac bit 1 from - light gun ff. (ffs contain one if pen or gun saw displayed - point.) Then clear both light pen and light gun ffs */ - /*AC = (AC & 0177777) |?...;*/ - /*... = 0;*/ - } - - if (((IR & 001) == 00) && ((MAR & 017000) == 001000)) - /* (1.1) TAC = transfer TAC into ac (inclusive or) */ - AC |= tx0.tac; - - if (((IR & 001) == 00) && ((MAR & 017000) == 002000)) - /* (1.2) TBR = transfer TBR into mbr (inclusive or) */ - MBR |= tx0.tbr; - - if (((IR & 001) == 00) && ((MAR & 017000) == 006000)) - /* (1.2) RPF = Read Program Flag register into mbr (inclusive or) */ - MBR |= PF << 8; - - if (MAR & 0000040) - /* (1.2) COM = COMplement ac */ - AC ^= 0777777; - - if ((! (MAR & 0000400)) && (MAR & 0000100)) - { /* (1.2) XMB = Transfer XR contents to MBR */ - MBR = XR; - if (XR & 0020000) - MBR |= 0740000; - } - - if (MAR & 0000004) - { - switch (MAR & 0000003) - { - case 0000003: /* (1.2) And LR and MBR */ - MBR &= LR; - break; - - case 0000001: /* (1.3) Or LR into MBR */ - MBR |= LR; - break; - - default: - if (LOG) - logerror("unrecognized instruction"); - break; - } - } - - if (((! (MAR & 0000400)) && (MAR & 0000200)) && ((! (MAR & 0000004)) && (MAR & 0000002))) - { /* LMB and MBL used simultaneously interchange LR and MBR */ - int tmp = MBR; - MBR = LR; - LR = tmp; - } - else if ((! (MAR & 0000400)) && (MAR & 0000200)) - /* (1.4) MBL = Transfer MBR contents to LR */ - LR = MBR; - else if ((! (MAR & 0000004)) && (MAR & 0000002)) - /* (1.4) LMB = Store the contents of the LR in the MBR. */ - MBR = LR; - - if (MAR & 0000020) - /* (1.5) PAD = Partial ADd mbr to ac */ - AC ^= MBR; - - if (MAR & 0000400) - { - switch (MAR & 0000300) - { - case 0000000: /* (1.6) CYR = CYcle ac contents Right one binary - position (AC(17) -> AC(0)) */ - AC = (AC >> 1) | ((AC & 1) << 17); - break; - - case 0000200: /* (1.6) CYcle ac contents Right one binary - position (AC(0) unchanged) */ - AC = (AC >> 1) | (AC & 0400000); - break; - - default: - if (LOG) - logerror("unrecognized instruction"); - break; - } - } - - if (((IR & 001) == 00) && ((MAR & 017000) == 007000)) - /* (1.6) SPF = Set Program Flag register from mbr */ - PF = (MBR >> 8) & 077; - - if (MAR & 0000010) - { /* (1.7?) CRY = Partial ADd the 18 digits of the AC to the - corresponding 18 digits of the carry. */ - AC ^= MBR; - - AC = AC + MBR; - AC = (AC + (AC >> 18)) & 0777777; /* propagate carry around */ - - if (AC == 0777777) /* check for -0 */ - AC = 0; - } - - if ((! (MAR & 0000004)) && (MAR & 0000001)) - /* (1.8) MBX = Transfer MBR contents to XR */ - XR = (MBR & 0017777) | ((MBR >> 4) & 0020000); - - if (((IR & 001) == 01) && ((MAR & 017000) == 010000)) - /* (1.8) HLT = HaLT the computer and sound chime */ - tx0.run = 0; - } - break; - - default: /* Illegal */ - /* ... */ - break; - } - } -} - -/* - Simulate a pulse on reset line: - reset most registers and flip-flops, and initialize a few emulator state - variables. -*/ -static void pulse_reset(void) -{ - /* processor registers */ - PC = 0; /* ??? */ - IR = 0; /* ??? */ - /*MBR = 0;*/ /* ??? */ - /*MAR = 0;*/ /* ??? */ - /*AC = 0;*/ /* ??? */ - /*LR = 0;*/ /* ??? */ - - /* processor state flip-flops */ - tx0.run = 0; /* ??? */ - tx0.rim = 0; /* ??? */ - tx0.ioh = 0; /* ??? */ - tx0.ios = 0; /* ??? */ - - tx0.rim_step = 0; - - /* now, we kindly ask IO devices to reset, too */ - if (tx0.io_reset_callback) - (*tx0.io_reset_callback)(); -} diff --git a/src/cpu/saturn/saturn.c b/src/cpu/saturn/saturn.c deleted file mode 100644 index 6da44abf1..000000000 --- a/src/cpu/saturn/saturn.c +++ /dev/null @@ -1,424 +0,0 @@ -/***************************************************************************** - * - * saturn.c - * portable saturn emulator interface - * (hp calculators) - * - * Copyright (c) 2000 Peter Trauner, all rights reserved. - * - * - This source code is released as freeware for non-commercial purposes. - * - You are free to use and redistribute this code in modified or - * unmodified form, provided you list me in the credits. - * - If you modify this source code, you must add a notice to each modified - * source file that it has been changed. If you're a nice person, you - * will clearly mark each change too. :) - * - If you wish to use this for commercial purposes, please contact me at - * peter.trauner@jk.uni-linz.ac.at - * - The author of this copywritten work reserves the right to change the - * terms of its usage and license at any time, including retroactively - * - This entire notice must remain in the source code. - * - *****************************************************************************/ -#include -#include "driver.h" -#include "state.h" -#include "debugger.h" - -#include "saturn.h" -#include "sat.h" - -#define R0 0 -#define R1 1 -#define R2 2 -#define R3 3 -#define R4 4 -#define A 5 -#define B 6 -#define C 7 -#define D 8 - -typedef int SaturnAdr; // 20 bit -typedef UINT8 SaturnNib; // 4 bit -typedef short SaturnX; // 12 bit -typedef INT64 SaturnM; // 48 bit - -typedef union { - UINT8 b[8]; - UINT16 w[4]; - UINT32 d[2]; - UINT64 q; -} Saturn64; - -#define VERBOSE 0 - -#if VERBOSE -#define LOG(x) logerror x -#else -#define LOG(x) -#endif - - -/**************************************************************************** - * The 6502 registers. - ****************************************************************************/ -typedef struct -{ - SATURN_CONFIG *config; - Saturn64 reg[9]; //r0,r1,r2,r3,r4,a,b,c,d; - - SaturnAdr d[2], pc, oldpc, rstk[8]; // 20 bit addresses - - int stackpointer; // this is only for debugger stepover support! - - SaturnNib p; // 4 bit pointer - - UINT16 in; - int out; // 12 - int carry, decimal; - UINT16 st; // status 16 bit -#define XM 1 -#define SR 2 -#define SB 4 -#define MP 8 - int hst; // hardware status 4 bit - /* XM external Modules missing - SR Service Request - SB Sticky bit - MP Module Pulled */ - - int irq_state; - - UINT8 pending_irq; /* nonzero if an IRQ is pending */ - UINT8 after_cli; /* pending IRQ and last insn cleared I */ - UINT8 nmi_state; - int (*irq_callback)(int irqline); /* IRQ callback */ -} Saturn_Regs; - -static int saturn_ICount = 0; - -static Saturn_Regs saturn; - -/*************************************************************** - * include the opcode macros, functions and tables - ***************************************************************/ -#include "satops.c" -#include "sattable.c" - -/***************************************************************************** - * - * Saturn CPU interface functions - * - *****************************************************************************/ - -static void saturn_init(int index, int clock, const void *config, int (*irqcallback)(int)) -{ - saturn.config = (SATURN_CONFIG *) config; -} - -static void saturn_reset(void) -{ - saturn.stackpointer=0; - saturn.pc=0; - change_pc(saturn.pc); -} - -static void saturn_get_context (void *dst) -{ - if( dst ) - *(Saturn_Regs*)dst = saturn; -} - -static void saturn_set_context (void *src) -{ - if( src ) - { - saturn = *(Saturn_Regs*)src; - change_pc(saturn.pc); - } -} - - - -INLINE void saturn_take_irq(void) -{ - { - saturn_ICount -= 7; - - saturn_push(saturn.pc); - saturn.pc=IRQ_ADDRESS; - - LOG(("Saturn#%d takes IRQ ($%04x)\n", cpu_getactivecpu(), saturn.pc)); - /* call back the cpuintrf to let it clear the line */ - if (saturn.irq_callback) (*saturn.irq_callback)(0); - change_pc(saturn.pc); - } - saturn.pending_irq = 0; -} - -int saturn_execute(int cycles) -{ - saturn_ICount = cycles; - - change_pc(saturn.pc); - - do - { - saturn.oldpc = saturn.pc; - - CALL_MAME_DEBUG; - - /* if an irq is pending, take it now */ - if( saturn.pending_irq ) - saturn_take_irq(); - - saturn_instruction(); - - /* check if the I flag was just reset (interrupts enabled) */ - if( saturn.after_cli ) - { - LOG(("M6502#%d after_cli was >0", cpu_getactivecpu())); - saturn.after_cli = 0; - if (saturn.irq_state != CLEAR_LINE) - { - LOG((": irq line is asserted: set pending IRQ\n")); - saturn.pending_irq = 1; - } - else - { - LOG((": irq line is clear\n")); - } - } - else - if( saturn.pending_irq ) - saturn_take_irq(); - - } while (saturn_ICount > 0); - - return cycles - saturn_ICount; -} - -void saturn_set_nmi_line(int state) -{ - if (saturn.nmi_state == state) return; - saturn.nmi_state = state; - if( state != CLEAR_LINE ) - { - LOG(( "M6502#%d set_nmi_line(ASSERT)\n", cpu_getactivecpu())); - saturn_ICount -= 7; - saturn_push(saturn.pc); - saturn.pc=IRQ_ADDRESS; - - LOG(("M6502#%d takes NMI ($%04x)\n", cpu_getactivecpu(), PC)); - change_pc(saturn.pc); - } -} - -void saturn_set_irq_line(int irqline, int state) -{ - saturn.irq_state = state; - if( state != CLEAR_LINE ) - { - LOG(( "M6502#%d set_irq_line(ASSERT)\n", cpu_getactivecpu())); - saturn.pending_irq = 1; - } -} - -void saturn_set_irq_callback(int (*callback)(int)) -{ - saturn.irq_callback = callback; -} - -#if 0 -static void saturn_state_save(void *file) -{ - int cpu = cpu_getactivecpu(); - state_save_UINT16(file,"m6502",cpu,"PC",&m6502.pc.w.l,2); - state_save_UINT16(file,"m6502",cpu,"SP",&m6502.sp.w.l,2); - state_save_UINT8(file,"m6502",cpu,"P",&m6502.p,1); - state_save_UINT8(file,"m6502",cpu,"A",&m6502.a,1); - state_save_UINT8(file,"m6502",cpu,"X",&m6502.x,1); - state_save_UINT8(file,"m6502",cpu,"Y",&m6502.y,1); - state_save_UINT8(file,"m6502",cpu,"PENDING",&m6502.pending_irq,1); - state_save_UINT8(file,"m6502",cpu,"AFTER_CLI",&m6502.after_cli,1); - state_save_UINT8(file,"m6502",cpu,"NMI_STATE",&m6502.nmi_state,1); - state_save_UINT8(file,"m6502",cpu,"IRQ_STATE",&m6502.irq_state,1); - state_save_UINT8(file,"m6502",cpu,"SO_STATE",&m6502.so_state,1); -} - -static void saturn_state_load(void *file) -{ - int cpu = cpu_getactivecpu(); - state_load_UINT16(file,"m6502",cpu,"PC",&m6502.pc.w.l,2); - state_load_UINT16(file,"m6502",cpu,"SP",&m6502.sp.w.l,2); - state_load_UINT8(file,"m6502",cpu,"P",&m6502.p,1); - state_load_UINT8(file,"m6502",cpu,"A",&m6502.a,1); - state_load_UINT8(file,"m6502",cpu,"X",&m6502.x,1); - state_load_UINT8(file,"m6502",cpu,"Y",&m6502.y,1); - state_load_UINT8(file,"m6502",cpu,"PENDING",&m6502.pending_irq,1); - state_load_UINT8(file,"m6502",cpu,"AFTER_CLI",&m6502.after_cli,1); - state_load_UINT8(file,"m6502",cpu,"NMI_STATE",&m6502.nmi_state,1); - state_load_UINT8(file,"m6502",cpu,"IRQ_STATE",&m6502.irq_state,1); - state_load_UINT8(file,"m6502",cpu,"SO_STATE",&m6502.so_state,1); -} -#endif - -/************************************************************************** - * Generic set_info - **************************************************************************/ - -static void saturn_set_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are set as 64-bit signed integers --- */ - case CPUINFO_INT_INPUT_STATE + SATURN_NMI_STATE: saturn.nmi_state = info->i; break; - case CPUINFO_INT_INPUT_STATE + SATURN_IRQ_STATE: saturn.irq_state = info->i; break; - - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + SATURN_PC: saturn.pc = info->i; change_pc(saturn.pc); break; - case CPUINFO_INT_SP: saturn.stackpointer = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_D0: saturn.d[0] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_D1: saturn.d[1] = info->i; break; -#if 0 - case CPUINFO_INT_REGISTER + SATURN_A: saturn.reg[A] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_B: saturn.reg[B] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_C: saturn.reg[C] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_D: saturn.reg[D] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_R0: saturn.reg[R0] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_R1: saturn.reg[R1] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_R2: saturn.reg[R2] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_R3: saturn.reg[R3] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_R4: saturn.reg[R4] = info->i; break; -#endif - case CPUINFO_INT_REGISTER + SATURN_P: saturn.p = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_IN: saturn.in = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_OUT: saturn.out = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_CARRY: saturn.carry = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_ST: saturn.st = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_HST: saturn.hst = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK0: saturn.rstk[0] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK1: saturn.rstk[1] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK2: saturn.rstk[2] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK3: saturn.rstk[3] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK4: saturn.rstk[4] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK5: saturn.rstk[5] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK6: saturn.rstk[6] = info->i; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK7: saturn.rstk[7] = info->i; break; - } -} - -/************************************************************************** - * Generic get_info - **************************************************************************/ - -void saturn_get_info(UINT32 state, cpuinfo *info) -{ - switch (state) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(saturn); break; - case CPUINFO_INT_INPUT_LINES: info->i = 1; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; - case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 2; break; - case CPUINFO_INT_MAX_CYCLES: info->i = 21; break; - - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 8; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 20; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; - case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; - - case CPUINFO_INT_INPUT_STATE + SATURN_NMI_STATE: info->i = saturn.nmi_state; break; - case CPUINFO_INT_INPUT_STATE + SATURN_IRQ_STATE: info->i = saturn.irq_state; break; - - case CPUINFO_INT_PREVIOUSPC: info->i = saturn.oldpc; break; - - case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + SATURN_PC: info->i = saturn.pc; break; - case CPUINFO_INT_SP: info->i = saturn.stackpointer; break; - case CPUINFO_INT_REGISTER + SATURN_D0: info->i = saturn.d[0]; break; - case CPUINFO_INT_REGISTER + SATURN_D1: info->i = saturn.d[1]; break; -#if 0 - case CPUINFO_INT_REGISTER + SATURN_A: info->i = saturn.reg[A]; break; - case CPUINFO_INT_REGISTER + SATURN_B: info->i = saturn.reg[B]; break; - case CPUINFO_INT_REGISTER + SATURN_C: info->i = saturn.reg[C]; break; - case CPUINFO_INT_REGISTER + SATURN_D: info->i = saturn.reg[D]; break; - case CPUINFO_INT_REGISTER + SATURN_R0: info->i = saturn.reg[R0]; break; - case CPUINFO_INT_REGISTER + SATURN_R1: info->i = saturn.reg[R1]; break; - case CPUINFO_INT_REGISTER + SATURN_R2: info->i = saturn.reg[R2]; break; - case CPUINFO_INT_REGISTER + SATURN_R3: info->i = saturn.reg[R3]; break; - case CPUINFO_INT_REGISTER + SATURN_R4: info->i = saturn.reg[R4]; break; -#endif - case CPUINFO_INT_REGISTER + SATURN_P: info->i = saturn.p; break; - case CPUINFO_INT_REGISTER + SATURN_IN: info->i = saturn.in; break; - case CPUINFO_INT_REGISTER + SATURN_OUT: info->i = saturn.out; break; - case CPUINFO_INT_REGISTER + SATURN_CARRY: info->i = saturn.carry; break; - case CPUINFO_INT_REGISTER + SATURN_ST: info->i = saturn.st; break; - case CPUINFO_INT_REGISTER + SATURN_HST: info->i = saturn.hst; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK0: info->i = saturn.rstk[0]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK1: info->i = saturn.rstk[1]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK2: info->i = saturn.rstk[2]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK3: info->i = saturn.rstk[3]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK4: info->i = saturn.rstk[4]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK5: info->i = saturn.rstk[5]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK6: info->i = saturn.rstk[6]; break; - case CPUINFO_INT_REGISTER + SATURN_RSTK7: info->i = saturn.rstk[7]; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_PTR_SET_INFO: info->setinfo = saturn_set_info; break; - case CPUINFO_PTR_GET_CONTEXT: info->getcontext = saturn_get_context; break; - case CPUINFO_PTR_SET_CONTEXT: info->setcontext = saturn_set_context; break; - case CPUINFO_PTR_INIT: info->init = saturn_init; break; - case CPUINFO_PTR_RESET: info->reset = saturn_reset; break; - case CPUINFO_PTR_EXECUTE: info->execute = saturn_execute; break; - case CPUINFO_PTR_BURN: info->burn = NULL; break; -#ifdef MAME_DEBUG - case CPUINFO_PTR_DISASSEMBLE: info->disassemble = saturn_dasm; break; -#endif /* MAME_DEBUG */ - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &saturn_ICount; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "Saturn"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "Saturn"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0alpha"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright (c) 2000 Peter Trauner, all rights reserved."); break; - - case CPUINFO_STR_REGISTER + SATURN_PC: sprintf(info->s = cpuintrf_temp_str(), "PC: %.5x", saturn.pc);break; - case CPUINFO_STR_REGISTER + SATURN_D0: sprintf(info->s = cpuintrf_temp_str(), "D0: %.5x", saturn.d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_D1: sprintf(info->s = cpuintrf_temp_str(), "D1: %.5x", saturn.d[1]);break; - case CPUINFO_STR_REGISTER + SATURN_A: sprintf(info->s = cpuintrf_temp_str(), "A: %.8x %.8x", saturn.reg[A].d[1], saturn.reg[A].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_B: sprintf(info->s = cpuintrf_temp_str(), "B: %.8x %.8x", saturn.reg[B].d[1], saturn.reg[B].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_C: sprintf(info->s = cpuintrf_temp_str(), "C: %.8x %.8x", saturn.reg[C].d[1], saturn.reg[C].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_D: sprintf(info->s = cpuintrf_temp_str(), "D: %.8x %.8x", saturn.reg[D].d[1], saturn.reg[D].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_R0: sprintf(info->s = cpuintrf_temp_str(), "R0:%.8x %.8x", saturn.reg[R0].d[1], saturn.reg[R0].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_R1: sprintf(info->s = cpuintrf_temp_str(), "R1:%.8x %.8x", saturn.reg[R1].d[1], saturn.reg[R1].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_R2: sprintf(info->s = cpuintrf_temp_str(), "R2:%.8x %.8x", saturn.reg[R2].d[1], saturn.reg[R2].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_R3: sprintf(info->s = cpuintrf_temp_str(), "R3:%.8x %.8x", saturn.reg[R3].d[1], saturn.reg[R3].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_R4: sprintf(info->s = cpuintrf_temp_str(), "R4:%.8x %.8x", saturn.reg[R4].d[1], saturn.reg[R4].d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_P: sprintf(info->s = cpuintrf_temp_str(), "P:%x", saturn.p);break; - case CPUINFO_STR_REGISTER + SATURN_IN: sprintf(info->s = cpuintrf_temp_str(), "IN:%.4x", saturn.in);break; - case CPUINFO_STR_REGISTER + SATURN_OUT: sprintf(info->s = cpuintrf_temp_str(), "OUT:%.3x", saturn.out);break; - case CPUINFO_STR_REGISTER + SATURN_CARRY: sprintf(info->s = cpuintrf_temp_str(), "Carry: %d", saturn.carry);break; - case CPUINFO_STR_REGISTER + SATURN_ST: sprintf(info->s = cpuintrf_temp_str(), "ST:%.4x", saturn.st);break; - case CPUINFO_STR_REGISTER + SATURN_HST: sprintf(info->s = cpuintrf_temp_str(), "HST:%x", saturn.hst);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK0: sprintf(info->s = cpuintrf_temp_str(), "RSTK0:%.5x", saturn.rstk[0]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK1: sprintf(info->s = cpuintrf_temp_str(), "RSTK1:%.5x", saturn.rstk[1]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK2: sprintf(info->s = cpuintrf_temp_str(), "RSTK2:%.5x", saturn.rstk[2]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK3: sprintf(info->s = cpuintrf_temp_str(), "RSTK3:%.5x", saturn.rstk[3]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK4: sprintf(info->s = cpuintrf_temp_str(), "RSTK4:%.5x", saturn.rstk[4]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK5: sprintf(info->s = cpuintrf_temp_str(), "RSTK5:%.5x", saturn.rstk[5]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK6: sprintf(info->s = cpuintrf_temp_str(), "RSTK6:%.5x", saturn.rstk[6]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK7: sprintf(info->s = cpuintrf_temp_str(), "RSTK7:%.5x", saturn.rstk[7]);break; - case CPUINFO_STR_REGISTER + SATURN_IRQ_STATE: sprintf(info->s = cpuintrf_temp_str(), "IRQ:%.4x", saturn.pending_irq);break; - case CPUINFO_STR_FLAGS: sprintf(info->s = cpuintrf_temp_str(), "%c%c", saturn.decimal?'D':'.', saturn.carry ? 'C':'.'); break; - } -} diff --git a/src/drivers/1942.c b/src/drivers/1942.c deleted file mode 100644 index 9086cb692..000000000 --- a/src/drivers/1942.c +++ /dev/null @@ -1,445 +0,0 @@ -/*************************************************************************** - -1942 - -driver by Paul Leaman - - -MAIN CPU: - -0000-bfff ROM (8000-bfff banked) -cc00-cc7f Sprites -d000-d3ff Video RAM -d400-d7ff Color RAM -d800-dbff Background RAM (groups of 32 bytes, 16 code, 16 color/attribute) -e000-efff RAM - -read: -c000 IN0 -c001 IN1 -c002 IN2 -c003 DSW0 -c004 DSW1 - -write: -c800 command for the audio CPU -c802-c803 background scroll -c804 bit 7: flip screen - bit 4: cpu B reset - bit 0: coin counter -c805 background palette bank selector -c806 bit 0-1 ROM bank selector 00=1-N5.BIN - 01=1-N6.BIN - 10=1-N7.BIN - - - -SOUND CPU: - -0000-3fff ROM -4000-47ff RAM -6000 command from the main CPU -8000 8910 #1 control -8001 8910 #1 write -c000 8910 #2 control -c001 8910 #2 write - - - -Game runs in interrupt mode 0 (the devices supply the interrupt number). - -Two interrupts must be triggered per refresh for the game to function -correctly. - -0x10 is the video retrace. This controls the speed of the game and generally - drives the code. This must be triggerd for each video retrace. -0x08 is the sound card service interupt. The game uses this to throw sounds - at the sound CPU. - - -SAVE STATE (lee@lmservers.com): -1942 uses the Z80 and AY8910 which both support save state. - -The global variables in drivers/1942.c are extern and defined in vidhrdw/1942.c -The rationale for saving/not saving are as follows: -UINT8 *c1942_fgvideoram; Saved via reference to AM_BASE -UINT8 *c1942_bgvideoram; Saved via reference to AM_BASE - -static int c1942_palette_bank; Explicitly saved -static tilemap *fg_tilemap, *bg_tilemap; Saved due to tilemap supporting save - -There are no static local variables. - -***************************************************************************/ - -#include "driver.h" -#include "sound/ay8910.h" - - -extern UINT8 *c1942_fgvideoram; -extern UINT8 *c1942_bgvideoram; - - -extern WRITE8_HANDLER( c1942_fgvideoram_w ); -extern WRITE8_HANDLER( c1942_bgvideoram_w ); -extern WRITE8_HANDLER( c1942_scroll_w ); -extern WRITE8_HANDLER( c1942_c804_w ); -extern WRITE8_HANDLER( c1942_palette_bank_w ); - -extern PALETTE_INIT( 1942 ); -extern VIDEO_START( 1942 ); -extern VIDEO_UPDATE( 1942 ); - - - -static WRITE8_HANDLER( c1942_bankswitch_w ) -{ - memory_set_bank(1, data & 0x03); -} - - - -static INTERRUPT_GEN( c1942_interrupt ) -{ - if (cpu_getiloops() != 0) - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, 0xcf);/* RST 08h */ - else - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ -} - - - -static ADDRESS_MAP_START( c1942_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r) /* IN2 */ - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r) /* DSW0 */ - AM_RANGE(0xc004, 0xc004) AM_READ(input_port_4_r) /* DSW1 */ - AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) - AM_RANGE(0xc802, 0xc803) AM_WRITE(c1942_scroll_w) - AM_RANGE(0xc804, 0xc804) AM_WRITE(c1942_c804_w) - AM_RANGE(0xc805, 0xc805) AM_WRITE(c1942_palette_bank_w) - AM_RANGE(0xc806, 0xc806) AM_WRITE(c1942_bankswitch_w) - AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_WRITE(c1942_fgvideoram_w) AM_BASE(&c1942_fgvideoram) - AM_RANGE(0xd800, 0xdbff) AM_RAM AM_WRITE(c1942_bgvideoram_w) AM_BASE(&c1942_bgvideoram) - AM_RANGE(0xe000, 0xefff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM - AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) - AM_RANGE(0x8000, 0x8000) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x8001, 0x8001) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(AY8910_write_port_1_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( 1942 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:8,7,6") - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,3") - PORT_DIPSETTING( 0x30, "20K 80K 80K+" ) - PORT_DIPSETTING( 0x20, "20K 100K 100K+" ) - PORT_DIPSETTING( 0x10, "30K 80K 80K+" ) - PORT_DIPSETTING( 0x00, "30K 100K 100K+" ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:2,1") - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START_TAG("DSWB") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:8,7,6") - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_SERVICE_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:5" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,2") - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 16*16+0, 16*16+1, 16*16+2, 16*16+3, 16*16+8+0, 16*16+8+1, 16*16+8+2, 16*16+8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 64 }, - { REGION_GFX2, 0, &tilelayout, 64*4, 4*32 }, - { REGION_GFX3, 0, &spritelayout, 64*4+4*32*8, 16 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( 1942 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(c1942_map, 0) - MDRV_CPU_VBLANK_INT(c1942_interrupt,2) - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ /* 3 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sound_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4+4*32*8+16*16) - - MDRV_PALETTE_INIT(1942) - MDRV_VIDEO_START(1942) - MDRV_VIDEO_UPDATE(1942) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( 1942 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */ - ROM_LOAD( "1-n3a.bin", 0x00000, 0x4000, CRC(40201bab) SHA1(4886c07a4602223c21419118e10aadce9c99fa5a) ) - ROM_LOAD( "1-n4.bin", 0x04000, 0x4000, CRC(a60ac644) SHA1(f37862db3cf5e6cc9ab3276f3bc45fd629fd70dd) ) - ROM_LOAD( "1-n5.bin", 0x10000, 0x4000, CRC(835f7b24) SHA1(24b66827f08c43fbf5b9517d638acdfc38e1b1e7) ) - ROM_LOAD( "1-n6.bin", 0x14000, 0x2000, CRC(821c6481) SHA1(06becb6bf8b4bde3a458098498eecad566a87711) ) - ROM_LOAD( "1-n7.bin", 0x18000, 0x4000, CRC(5df525e1) SHA1(70cd2910e2945db76bd6ebfa0ff09a5efadc2d0b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "1-c11.bin", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1-f2.bin", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) /* characters */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2-a1.bin", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) ) /* tiles */ - ROM_LOAD( "2-a2.bin", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) ) - ROM_LOAD( "2-a3.bin", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) ) - ROM_LOAD( "2-a4.bin", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) ) - ROM_LOAD( "2-a5.bin", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) ) - ROM_LOAD( "2-a6.bin", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "2-l1.bin", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) ) /* sprites */ - ROM_LOAD( "2-l2.bin", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) ) - ROM_LOAD( "2-n1.bin", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) ) - ROM_LOAD( "2-n2.bin", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "08e_sb-5.bin", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) /* red component */ - ROM_LOAD( "09e_sb-6.bin", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) /* green component */ - ROM_LOAD( "10e_sb-7.bin", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) /* blue component */ - ROM_LOAD( "f01_sb-0.bin", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) /* char lookup table */ - ROM_LOAD( "06d_sb-4.bin", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) /* tile lookup table */ - ROM_LOAD( "03k_sb-8.bin", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) /* sprite lookup table */ - ROM_LOAD( "01d_sb-2.bin", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) /* tile palette selector? (not used) */ - ROM_LOAD( "02d_sb-3.bin", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) /* tile palette selector? (not used) */ - ROM_LOAD( "k06_sb-1.bin", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ - ROM_LOAD( "01m_sb-9.bin", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) /* video timing? (not used) */ -ROM_END - -ROM_START( 1942a ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */ - ROM_LOAD( "1-n3.bin", 0x00000, 0x4000, CRC(612975f2) SHA1(f3744335862dd4c53925cc32792badd4a378c837) ) - ROM_LOAD( "1-n4.bin", 0x04000, 0x4000, CRC(a60ac644) SHA1(f37862db3cf5e6cc9ab3276f3bc45fd629fd70dd) ) - ROM_LOAD( "1-n5.bin", 0x10000, 0x4000, CRC(835f7b24) SHA1(24b66827f08c43fbf5b9517d638acdfc38e1b1e7) ) - ROM_LOAD( "1-n6.bin", 0x14000, 0x2000, CRC(821c6481) SHA1(06becb6bf8b4bde3a458098498eecad566a87711) ) - ROM_LOAD( "1-n7.bin", 0x18000, 0x4000, CRC(5df525e1) SHA1(70cd2910e2945db76bd6ebfa0ff09a5efadc2d0b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "1-c11.bin", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1-f2.bin", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) /* characters */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2-a1.bin", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) ) /* tiles */ - ROM_LOAD( "2-a2.bin", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) ) - ROM_LOAD( "2-a3.bin", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) ) - ROM_LOAD( "2-a4.bin", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) ) - ROM_LOAD( "2-a5.bin", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) ) - ROM_LOAD( "2-a6.bin", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "2-l1.bin", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) ) /* sprites */ - ROM_LOAD( "2-l2.bin", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) ) - ROM_LOAD( "2-n1.bin", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) ) - ROM_LOAD( "2-n2.bin", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "08e_sb-5.bin", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) /* red component */ - ROM_LOAD( "09e_sb-6.bin", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) /* green component */ - ROM_LOAD( "10e_sb-7.bin", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) /* blue component */ - ROM_LOAD( "f01_sb-0.bin", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) /* char lookup table */ - ROM_LOAD( "06d_sb-4.bin", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) /* tile lookup table */ - ROM_LOAD( "03k_sb-8.bin", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) /* sprite lookup table */ - ROM_LOAD( "01d_sb-2.bin", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) /* tile palette selector? (not used) */ - ROM_LOAD( "02d_sb-3.bin", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) /* tile palette selector? (not used) */ - ROM_LOAD( "k06_sb-1.bin", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ - ROM_LOAD( "01m_sb-9.bin", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) /* video timing? (not used) */ -ROM_END - -ROM_START( 1942b ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) /* 64k for code + 3*16k for the banked ROMs images */ - ROM_LOAD( "srb-03.n3", 0x00000, 0x4000, CRC(d9dafcc3) SHA1(a089a9bc55fb7d6d0ac53f91b258396d5d62677a) ) - ROM_LOAD( "srb-04.n4", 0x04000, 0x4000, CRC(da0cf924) SHA1(856fbb302c9a4ec7850a26ab23dab8467f79bba4) ) - ROM_LOAD( "srb-05.n5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) ) - ROM_LOAD( "srb-06.n6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) ) - ROM_LOAD( "srb-07.n7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "1-c11.bin", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1-f2.bin", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) /* characters */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2-a1.bin", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) ) /* tiles */ - ROM_LOAD( "2-a2.bin", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) ) - ROM_LOAD( "2-a3.bin", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) ) - ROM_LOAD( "2-a4.bin", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) ) - ROM_LOAD( "2-a5.bin", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) ) - ROM_LOAD( "2-a6.bin", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "2-l1.bin", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) ) /* sprites */ - ROM_LOAD( "2-l2.bin", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) ) - ROM_LOAD( "2-n1.bin", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) ) - ROM_LOAD( "2-n2.bin", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "08e_sb-5.bin", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) /* red component */ - ROM_LOAD( "09e_sb-6.bin", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) /* green component */ - ROM_LOAD( "10e_sb-7.bin", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) /* blue component */ - ROM_LOAD( "f01_sb-0.bin", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) /* char lookup table */ - ROM_LOAD( "06d_sb-4.bin", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) /* tile lookup table */ - ROM_LOAD( "03k_sb-8.bin", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) /* sprite lookup table */ - ROM_LOAD( "01d_sb-2.bin", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) /* tile palette selector? (not used) */ - ROM_LOAD( "02d_sb-3.bin", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) /* tile palette selector? (not used) */ - ROM_LOAD( "k06_sb-1.bin", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ - ROM_LOAD( "01m_sb-9.bin", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) /* video timing? (not used) */ -ROM_END - - -DRIVER_INIT( 1942 ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - memory_configure_bank(1, 0, 3, &ROM[0x10000], 0x4000); -} - - -GAME( 1984, 1942, 0, 1942, 1942, 1942, ROT270, "Capcom", "1942 (set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1984, 1942a, 1942, 1942, 1942, 1942, ROT270, "Capcom", "1942 (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1984, 1942b, 1942, 1942, 1942, 1942, ROT270, "Capcom", "1942 (set 3)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/20pacgal.c b/src/drivers/20pacgal.c deleted file mode 100644 index f649820f8..000000000 --- a/src/drivers/20pacgal.c +++ /dev/null @@ -1,301 +0,0 @@ -/*************************************************************************** - -Ms.Pac-Man/Galaga - 20 Year Reunion - -driver by Nicola Salmoria - -Notes: -- There are four start buttons: the first two are for Ms. Pac-Man, the other two - for Galaga. - -- To play Pac-Man instead of Ms. Pac-Man, insert coins then enter the following - sequence: U U U D D D L R L R L. A sound will play and the ghost will change - from red to pink. - -- Writes to the Z180 ASCI port: - MS PAC-MAN/GALAGA - arcade video system - version 1.01 - (c) 2000 Cosmodog, Ltd. - > - and it listens for incoming characters. - - -TODO: -- Starfield. - -- Sound seems to be AWOL in Galaga? - -- Convert to tilemaps & optimize video rendering, I was just too lazy to do it for now. - -- Check the ASCI interface, there probably is fully working debug code. - -- The timed interrupt is a kludge; it is supposed to be generated internally by - the Z180, but the cpu core doesn't support that yet. - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "machine/eeprom.h" -#include "cpu/z180/z180.h" -#include "pacman.h" -#include "sound/namco.h" -#include "sound/dac.h" - -extern UINT8 *pacgal_charram,*pacgal_sprram; -extern UINT8 *pacgal_videoram,*pacgal_videoram2; -PALETTE_INIT( 20pacgal ); -VIDEO_START( 20pacgal ); -WRITE8_HANDLER( pacgal_lookup_w ); -WRITE8_HANDLER( pacgal_active_game_w ); -WRITE8_HANDLER( pacgal_videoram2_w ); -WRITE8_HANDLER( pacgal_charram_w ); -WRITE8_HANDLER( pacgal_sprram_w ); -VIDEO_UPDATE( 20pacgal ); - - - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "*110", /* read command */ - "*101", /* write command */ - 0, /* erase command */ - "*10000xxxxx", /* lock command */ - "*10011xxxxx", /* unlock command */ -}; - -static NVRAM_HANDLER( eeprom ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - EEPROM_load(file); - } -} - -static READ8_HANDLER( eeprom_r ) -{ - int res; - - /* bit 7 is EEPROM data */ - res = EEPROM_read_bit() << 7; - return res; -} - -static WRITE8_HANDLER( eeprom_w ) -{ - /* bit 7 is data */ - /* bit 6 is clock (active high) */ - /* bit 5 is cs (active low) */ - EEPROM_write_bit(data & 0x80); - EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); -} - -static WRITE8_HANDLER( irqack_w ) -{ - int bit = data & 1; - cpu_interrupt_enable(0,bit); - if (!bit) - cpunum_set_input_line( 0, 0, CLEAR_LINE ); -} - -static WRITE8_HANDLER( flipscreen_w ) -{ - flip_screen_set(data & 1); -} - -static WRITE8_HANDLER( pacgal_dac_w ) -{ - DAC_signed_data_w(0, data); -} - -static WRITE8_HANDLER( coin_w ) -{ - coin_counter_w(0,data & 1); -} - - - -static ADDRESS_MAP_START( 20pacgal_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x03fff) AM_ROM - AM_RANGE(0x08000, 0x09fff) AM_ROM - AM_RANGE(0x0a000, 0x0ffff) AM_MIRROR(0x40000) AM_ROM - AM_RANGE(0x10000, 0x3ffff) AM_ROM - AM_RANGE(0x44000, 0x447ff) AM_RAM AM_BASE(&pacgal_videoram) // mspacman tilemap - AM_RANGE(0x45040, 0x4505f) AM_WRITE(pacman_sound_w) AM_BASE(&namco_soundregs) - AM_RANGE(0x44800, 0x45eff) AM_RAM - AM_RANGE(0x45f00, 0x45fff) AM_WRITE(_20pacgal_wavedata_w) AM_BASE(&namco_wavedata) // sound wave data - AM_RANGE(0x46000, 0x46fff) AM_WRITE(pacgal_charram_w) AM_BASE(&pacgal_charram) // char gfx data - AM_RANGE(0x47100, 0x47100) AM_RAM // leftover from original Galaga code - AM_RANGE(0x48000, 0x49fff) AM_ROM AM_BASE(&pacgal_videoram2) - AM_RANGE(0x48000, 0x49fff) AM_WRITE(pacgal_videoram2_w) // ROM or galaga tilemap (banked) - AM_RANGE(0x4c000, 0x4dfff) AM_WRITE(pacgal_sprram_w) AM_BASE(&pacgal_sprram) // sprite gfx data - AM_RANGE(0x4e000, 0x4e17f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) // sprite registers - AM_RANGE(0x4ff00, 0x4ffff) AM_WRITE(pacgal_lookup_w) // sprite color lookup table -ADDRESS_MAP_END - -static ADDRESS_MAP_START( 20pacgal_port, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x3f, 0x3f) AM_NOP /* Z180 internal registers */ - AM_RANGE(0x40, 0x7f) AM_NOP /* Z180 internal registers */ - AM_RANGE(0x80, 0x80) AM_READ(input_port_0_r) - AM_RANGE(0x81, 0x81) AM_READ(input_port_1_r) - AM_RANGE(0x82, 0x82) AM_READ(input_port_2_r) - AM_RANGE(0x80, 0x80) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x81, 0x81) AM_WRITE(MWA8_NOP) // ??? pulsed by the timer irq - AM_RANGE(0x82, 0x82) AM_WRITE(irqack_w) - AM_RANGE(0x85, 0x86) AM_WRITE(MWA8_NOP) // stars: rng seed (lo/hi) - AM_RANGE(0x87, 0x87) AM_READWRITE(eeprom_r, eeprom_w) - AM_RANGE(0x88, 0x88) AM_WRITE(pacgal_active_game_w) - AM_RANGE(0x89, 0x89) AM_WRITE(pacgal_dac_w) - AM_RANGE(0x8a, 0x8a) AM_WRITE(MWA8_NOP) // stars: bits 3-4 = active set; bit 5 = enable - AM_RANGE(0x8b, 0x8b) AM_WRITE(flipscreen_w) - AM_RANGE(0x8f, 0x8f) AM_WRITE(coin_w) // coin counter -ADDRESS_MAP_END - - - -INPUT_PORTS_START( 20pacgal ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - 256, - 2, - { 0, 4 }, - { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 -}; - - -static const gfx_layout spritelayout = -{ - 16,16, - 128, - 2, - { 0, 1 }, - { 0*2, 1*2, 2*2, 3*2, 4*2, 5*2, 6*2, 7*2, 8*2, 9*2, 10*2, 11*2, 12*2, 13*2, 14*2, 15*2 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 16*32 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - /* the game dynamically modifies these */ - { 0, 0, &charlayout, 0, 64 }, - { 0, 0, &spritelayout, 0, 64 }, - { -1 } /* end of array */ -}; - - - -INTERRUPT_GEN(_20pacgal_kludge) -{ - cpunum_set_input_line( 0, Z180_INT_PRT0, PULSE_LINE ); -} - - -static struct namco_interface namco_interface = -{ - 3, /* number of voices */ - -1, /* memory region */ -}; - -static MACHINE_DRIVER_START( 20pacgal ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z180,32000000) /* ??? */ - MDRV_CPU_PROGRAM_MAP(20pacgal_map,0) - MDRV_CPU_IO_MAP(20pacgal_port,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - MDRV_CPU_PERIODIC_INT(_20pacgal_kludge,TIME_IN_HZ(8000)) /* 8000 Hz??? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(eeprom) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x1000) - MDRV_COLORTABLE_LENGTH(0x100) - MDRV_PALETTE_INIT(20pacgal) - MDRV_VIDEO_START(20pacgal) - MDRV_VIDEO_UPDATE(20pacgal) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO, 18432000/6/32) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( 20pacgal ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for Z180 address space */ - ROM_LOAD( "20th_101.u13", 0x00000, 0x40000, CRC(77159582) SHA1(c05e005a941cbdc806dcd76b315069362c792a72) ) - - ROM_REGION( 0x8000, REGION_PROMS, 0 ) /* palette */ - ROM_LOAD( "20th_101.u14", 0x0000, 0x8000, CRC(c19d9ad0) SHA1(002581fbc2c32cdf7cfb0b0f64061591a462ec14) ) -ROM_END - - - -GAME( 2000, 20pacgal, 0, 20pacgal, 20pacgal, 0, ROT90, "Namco", "Ms. Pac-Man/Galaga - 20 Year Reunion", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/8080bw.c b/src/drivers/8080bw.c deleted file mode 100644 index 1e9e4586e..000000000 --- a/src/drivers/8080bw.c +++ /dev/null @@ -1,3181 +0,0 @@ -/****************************************************************************/ -/* */ -/* 8080bw.c */ -/* */ -/* Michael Strutts, Nicola Salmoria, Tormod Tjaberg, Mirko Buffoni */ -/* Lee Taylor, Valerio Verrando, Marco Cassili, Zsolt Vasvari and others */ -/* */ -/* */ -/* Notes: */ -/* ----- */ -/* */ -/* - Space Invaders Deluxe still says Space Invaders Part II, */ -/* because according to KLOV, Midway was only allowed to make minor */ -/* modifications of the Taito code. */ -/* */ -/* */ -/* To Do: */ -/* ----- */ -/* */ -/* - Space Chaser (schaser) */ -/* 1. The "missile" sound is incorrect. This is how it should be: */ -/* It should be a constant "klunkity-klunk", and should only be */ -/* heard while missiles are seen to be moving. When the red */ -/* missiles speed up, there should be more "klunks per second" */ -/* with the pitch staying constant. */ -/* 2. If you select Cocktail mode, the screen inverts, but when */ -/* it is changed back, the screen won't flip back. You need */ -/* to restart MAME to fix it. */ -/* 3. If "Hard" mode is selected, numerous bugs appear which */ -/* could be either an emulation fault or a bad rom. Some */ -/* bugs are: */ -/* a. Graphic error halfway up the left side */ -/* b. Score adds or subtracts random amounts */ -/* c. Score not cleared when starting a new game */ -/* d. Game begins on the wrong level */ -/* */ -/* - Space War (Sanritsu) */ -/* */ -/* 1. I seem to recall that the flashing ufo had its own sample */ -/* sound, a sort of rattling noise. Unable to find evidence */ -/* of this (so far). */ -/* */ -/* */ -/* Change Log: */ -/* ---------- */ -/* */ -/* 24 Dec 1998 - added sitv [LT] */ -/* */ -/* 21 Nov 1999 - added spacewar3 [LT] */ -/* */ -/* 26 May 2001 - added galxwars */ -/* galxwar2 */ -/* jspectr2 */ -/* ozmawar2 */ -/* spaceatt */ -/* sstrangr */ -/* */ -/* 26 May 2001 - changed galxwars input port so the new sets work */ -/* */ -/* 30 Jul 2001 - added sstrngr2 */ -/* */ -/* 17 Jul 2006 - schaser - connect up prom - fix dipswitches */ -/* schasrcv - allow bottom line to show on screen */ -/* */ -/* */ -/* 10 Sep 2006 - invadpt2 - add name reset button */ -/* spcewars - add bitstream circuit, fix dipswitches */ -/* */ -/* */ -/* 13 Dec 2006 - add PRELIMINARY sound support and documentation to */ -/* rollingc, spcenctr, gunfight, m4, gmissile, schasrcv, */ -/* 280zzzap, lagunar, lupin3, phantom2, blueshrk, desertgu, */ -/* ballbomb, yasokdon/yosakdoa, shuttlei, invrvnge/invrvnga. */ -/* Documented indianbt sound. Removed NO_SOUND flag from */ -/* cosmo and dogpatch as the sound was already working. */ -/* [Robert] */ -/* */ -/****************************************************************************/ - -#include "driver.h" -#include "8080bw.h" -#include "mw8080bw.h" - -#include "invrvnge.lh" - - -static ADDRESS_MAP_START( c8080bw_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x5fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( c8080bw_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_READ(c8080bw_shift_data_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport_0_3, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_WRITE(c8080bw_shift_amount_w) - AM_RANGE(0x03, 0x03) AM_WRITE(c8080bw_shift_data_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport_2_4, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x02, 0x02) AM_WRITE(c8080bw_shift_amount_w) - AM_RANGE(0x04, 0x04) AM_WRITE(c8080bw_shift_data_w) -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( 8080bw ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",8080,2000000) /* 2 MHz? */ - MDRV_CPU_PROGRAM_MAP(c8080bw_cpu_map,0) - MDRV_CPU_IO_MAP(c8080bw_readport,writeport_2_4) - MDRV_CPU_VBLANK_INT(c8080bw_interrupt,2) /* two interrupts per frame */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) - MDRV_PALETTE_LENGTH(2) - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(generic_bitmapped) - MDRV_VIDEO_UPDATE(8080bw) - - /* sound hardware */ -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Space Invaders CV Version (Taito) */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( sicv ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -/*******************************************************/ -/* */ -/* Space Invaders TV Version (Taito) */ -/* */ -/*******************************************************/ - -/* same as the CV version with a test mode switch */ - -INPUT_PORTS_START( sitv ) - PORT_START_TAG("IN0") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -/*******************************************************/ -/* */ -/* Space Invaders Model Racing */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( invadrmr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_DIPSETTING( 0x08, "3000" ) /* This is different to invaders */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -/*******************************************************/ -/* */ -/* Midway "Space Invaders Part II" */ -/* */ -/*******************************************************/ - -static ADDRESS_MAP_START( invadpt2_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, c8080bw_shift_amount_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(c8080bw_shift_data_r, invadpt2_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(c8080bw_shift_data_w) - AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w) - AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( invadpt2 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - // Name Reset - if name of high scorer was rude, owner can press this button - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Name Reset") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, "High Score Preset Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/* same as regular invaders, but with a color board added */ - -static MACHINE_DRIVER_START( invadpt2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(invadpt2_io_map,0) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - -/*******************************************************/ -/* */ -/* Space Wars (Sanritsu) */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( spcewars ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_DIPSETTING( 0x08, "2000" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( spcewars ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_MACHINE_RESET(spcewars) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - - /* extra audio channel */ - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_DRIVER_END - -/*******************************************************/ -/* */ -/* Cosmo */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( cosmo ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* must be HIGH normally or the joystick won't work */ - - PORT_START_TAG("CAB") - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static ADDRESS_MAP_START( cosmo_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x57ff) AM_READ(MRA8_ROM) - AM_RANGE(0x5c00, 0x5fff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cosmo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x57ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x5c00, 0x5fff) AM_WRITE(cosmo_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cosmo_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -/* at least one of these MWA8_NOPs must be sound related */ -static ADDRESS_MAP_START( cosmo_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) - AM_RANGE(0x01, 0x01) AM_WRITE(MWA8_NOP) - AM_RANGE(0x02, 0x02) AM_WRITE(MWA8_NOP) - AM_RANGE(0x03, 0x03) AM_WRITE(invadpt2_sh_port_1_w) - AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w) - AM_RANGE(0x07, 0x07) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( cosmo ) - - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(cosmo_readmem, cosmo_writemem) - MDRV_CPU_IO_MAP(cosmo_readport, cosmo_writeport) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(cosmo) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - -/*******************************************************/ -/* */ -/* ?????? "Super Earth Invasion" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( earthinv ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPNAME( 0x02, 0x02, "Pence Coinage" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) /* Pence Coin */ - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* Not bonus */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, "2C/1C 50p/3C (+ Bonus Life)" ) - PORT_DIPSETTING( 0x80, "1C/1C 50p/5C" ) - - PORT_START_TAG("CAB") - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* ?????? "Space Attack II" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( spaceatt ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode (not used) */ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Zenitone Microsec "Invaders Revenge" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( invrvnge ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - - PORT_START_TAG("CAB") - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( invrvnge ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_MACHINE_RESET(invrvnge) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Yachiyo "Space Stranger" */ -/* */ -/*******************************************************/ - -static ADDRESS_MAP_START( sstrangr_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x41, 0x41) AM_READ(input_port_2_r) - AM_RANGE(0x42, 0x42) AM_READ(input_port_1_r) - AM_RANGE(0x44, 0x44) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sstrangr_writeport, ADDRESS_SPACE_IO, 8 ) - /* no shifter circuit */ -ADDRESS_MAP_END - -INPUT_PORTS_START( sstrangr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_SERVICE( 0x08, IP_ACTIVE_HIGH ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, "Extra Play" ) - PORT_DIPSETTING( 0x00, "Never" ) - PORT_DIPSETTING( 0x01, "3000" ) - PORT_DIPSETTING( 0x02, "4000" ) - PORT_DIPSETTING( 0x03, "5000" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "2000" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Must be ACTIVE_LOW for game to boot */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) - - PORT_START_TAG("EXT") /* External switches */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_DIPNAME( 0x02, 0x00, "Player's Bullet Speed (Cheat)" ) - PORT_DIPSETTING( 0x00, "Slow" ) - PORT_DIPSETTING( 0x02, "Fast" ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( sstrangr ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(sstrangr_readport,sstrangr_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - MDRV_MACHINE_RESET(sstrangr) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Yachiyo "Space Stranger 2" */ -/* */ -/*******************************************************/ - -/* colour version of Space Stranger, board has Stranger 2 written on it */ - -static ADDRESS_MAP_START( sstrngr2_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(MRA8_RAM, c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x63ff) AM_ROM -ADDRESS_MAP_END - -INPUT_PORTS_START( sstrngr2 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_SERVICE( 0x08, IP_ACTIVE_HIGH ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, "Extra Play" ) - PORT_DIPSETTING( 0x00, "Never" ) - PORT_DIPSETTING( 0x01, "3000" ) - PORT_DIPSETTING( 0x02, "4000" ) - PORT_DIPSETTING( 0x03, "5000" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "2000" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) - - PORT_START_TAG("EXT") /* External switches */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_DIPNAME( 0x02, 0x00, "Player's Bullet Speed (Cheat)" ) - PORT_DIPSETTING( 0x00, "Slow" ) - PORT_DIPSETTING( 0x02, "Fast" ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( sstrngr2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(sstrngr2_cpu_map,0) - MDRV_CPU_IO_MAP(sstrangr_readport,sstrangr_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - MDRV_MACHINE_RESET(sstrangr) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Space Laser" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( spclaser ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /*This is not 2 Player*/ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - /*PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0x00, "1 Coin/1 or 2 Players" ) - PORT_DIPSETTING( 0x80, "1 Coin/1 Player 2 Coins/2 Players" ) Irrelevant, causes bugs*/ - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode (not used) */ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - -/*******************************************************/ -/* */ -/* Space War (Leijac) */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( spcewarl ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0x00, "1 Coin/1 or 2 Players" ) - PORT_DIPSETTING( 0x80, "1 Coin/1 Player 2 Coins/2 Players" ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode (not used) */ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Taito "Galaxy Wars" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( galxwars ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* must be IP_ACTIVE_LOW for Universal Sets */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3000" ) - PORT_DIPSETTING( 0x08, "5000" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Taito "Lunar Rescue" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( lrescue ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( lrescue ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_MACHINE_RESET(lrescue) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(lrescue_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - - /* extra audio channel */ - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Universal "Cosmic Monsters" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( cosmicmo ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Sidam "Invasion" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( invasion ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1500" ) - PORT_DIPSETTING( 0x00, "2500" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Laser Bonus Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* bootleg "Super Invaders" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( superinv ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Must be high or game instantly crashes */ - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1500" ) - PORT_DIPSETTING( 0x00, "2500" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Nichibutsu "Rolling Crash" */ -/* */ -/*******************************************************/ - -static ADDRESS_MAP_START( rollingc_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) -// AM_RANGE(0x2000, 0x2002) AM_READ(MRA8_RAM) -// AM_RANGE(0x2003, 0x2003) AM_READ(hack) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0xa000, 0xbfff) AM_READ(schaser_colorram_r) - AM_RANGE(0xe400, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rollingc_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(schaser_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe400, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -INPUT_PORTS_START( rollingc ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) /* Game Select */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) /* Game Select */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( rollingc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(rollingc_readmem,rollingc_writemem) - MDRV_MACHINE_RESET(rollingc) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - - -/*******************************************************/ -/* */ -/* Taito "Space Chaser" */ -/* */ -/*******************************************************/ - -static ADDRESS_MAP_START( schaser_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_READ(schaser_colorram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( schaser_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(schaser_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - -INPUT_PORTS_START( schaser ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_DIPNAME(0x20, 0x20, "Dipswitch 5") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x40, 0x40, "Dipswitch 7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START_TAG("DSW0") // port 2 - // dipswitch 1 and 2 - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - // dipswitch 3 - PORT_DIPNAME( 0x04, 0x04, "Dipswitch 3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - // dipswitch 4 - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - // Name Reset - if name of high scorer was rude, owner can press this button - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Name Reset") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT ) - // dipswitch 6 - PORT_DIPNAME( 0x40, 0x00, "Number of Controllers" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - // port 3 (all 8 bits) connected to custom chip MB14241 driven by out port 2 and 4 - // To get cocktail mode, turn this on, and choose 2 controllers. - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) - - PORT_START_TAG("4") - PORT_ADJUSTER( 70, "VR1 - Music Volume" ) - - PORT_START_TAG("5") - PORT_ADJUSTER( 90, "VR2 - Explosion/Effect Volume" ) - - PORT_START_TAG("6") - PORT_ADJUSTER( 70, "VR3 - Dot Volume" ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( schaser ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_REPLACE("main",8080,1996800) /* 19.968MHz / 10 */ - MDRV_CPU_PROGRAM_MAP(schaser_readmem,schaser_writemem) - MDRV_WATCHDOG_VBLANK_INIT(255) - MDRV_MACHINE_RESET(schaser) - - /* video hardware */ - - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76477, 0) - MDRV_SOUND_CONFIG(schaser_sn76477_interface) - // This will be routed to the discrete system when that feature is working. - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(schaser_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Space Chaser" (CV version) */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( schasrcv ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( schasrcv ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(schaser_readmem,schaser_writemem) - MDRV_MACHINE_RESET(schasrcv) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - - MDRV_SOUND_ADD(SPEAKER, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Straight Flush" */ -/* */ -/*******************************************************/ - -static int sfl_int=0; - -static READ8_HANDLER( sfl_input_r ) -{ - sfl_int^=0x80;//vblank flag ? - return sfl_int|input_port_1_r(0); -} - -static ADDRESS_MAP_START( sflush_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) //? - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xbfff) AM_READ(schaser_colorram_r) - AM_RANGE(0x8008, 0x8008) AM_READ(input_port_2_r) - AM_RANGE(0x8009, 0x8009) AM_READ(c8080bw_shift_data_r) - AM_RANGE(0x800a, 0x800a) AM_READ(sfl_input_r) - AM_RANGE(0x800b, 0x800b) AM_READ(input_port_0_r) - AM_RANGE(0xd800, 0xffff) AM_READ(MRA8_ROM) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sflush_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8018, 0x8018) AM_WRITE(c8080bw_shift_data_w) - AM_RANGE(0x8019, 0x8019) AM_WRITE(c8080bw_shift_amount_w) - AM_RANGE(0x801a, 0x801a) AM_WRITE(MWA8_NOP) - AM_RANGE(0x801c, 0x801c) AM_WRITE(MWA8_NOP) - AM_RANGE(0x801d, 0x801d) AM_WRITE(MWA8_NOP) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(schaser_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd800, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( sflush ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_REPLACE("main",M6800,2000000) /* ?? */ - MDRV_CPU_PROGRAM_MAP(sflush_readmem,sflush_writemem) - MDRV_CPU_IO_MAP(0,0) - MDRV_CPU_VBLANK_INT(irq0_line_pulse,2) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(sflush) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 4*8, 30*8-1) - -MACHINE_DRIVER_END - -INPUT_PORTS_START( sflush ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x08, 0x00, "Hiscore" ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x08, "30 000" ) - PORT_DIPNAME( 0x40, 0x00, "Coinage Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, 0x6a, IPT_PADDLE ) PORT_MINMAX(0x16,0xbf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0) -INPUT_PORTS_END - - - -/*******************************************************/ -/* */ -/* Taito "Lupin III" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( lupin3 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* selects color mode (dynamic vs. static) */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* something has to do with sound */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x00, "Bags to Collect" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x00, "8" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Japanese ) ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME(0x80, 0x00, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( lupin3 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(schaser_readmem,schaser_writemem) - MDRV_MACHINE_RESET(lupin3) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Polaris" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( polaris ) - - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - /* 0x04 should be Cabinet - Upright/Cocktail, - but until the cocktail hack is changed, - this will have to do. */ - PORT_DIPNAME( 0x04, 0x00, "Number of Controls" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPNAME( 0x08, 0x00, "Invincible Test" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - /* The Demo Sounds dip switch does function. - * It allows the sonar sounds to play in demo mode. */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Not Used" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Not Used" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "High Score Preset Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) - - PORT_START_TAG("4") - PORT_ADJUSTER( 80, "Sub Volume VR1" ) - - PORT_START_TAG("5") - PORT_ADJUSTER( 70, "Sub Volume VR2" ) - - PORT_START_TAG("6") - PORT_ADJUSTER( 90, "Sub Volume VR3" ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( polaris ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_REPLACE("main",8080,1996800) /* 19.968MHz / 10 */ - MDRV_CPU_PROGRAM_MAP(schaser_readmem,schaser_writemem) - MDRV_WATCHDOG_VBLANK_INIT(255) - - MDRV_CPU_IO_MAP(c8080bw_readport,writeport_0_3) - MDRV_CPU_VBLANK_INT(polaris_interrupt,2) - MDRV_MACHINE_RESET(polaris) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(polaris_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Ozma Wars" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( ozmawars ) - PORT_START_TAG("IN0") - - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, "Energy" ) - PORT_DIPSETTING( 0x00, "15000" ) - PORT_DIPSETTING( 0x01, "20000" ) - PORT_DIPSETTING( 0x02, "25000" ) - PORT_DIPSETTING( 0x03, "35000" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Bonus Energy" ) - PORT_DIPSETTING( 0x00, "15000" ) - PORT_DIPSETTING( 0x08, "10000" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( spaceph ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x03, 0x00, "Energy" ) - PORT_DIPSETTING( 0x00, "15000" ) - PORT_DIPSETTING( 0x01, "20000" ) - PORT_DIPSETTING( 0x02, "25000" ) - PORT_DIPSETTING( 0x03, "35000" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Bonus Energy" ) - PORT_DIPSETTING( 0x08, "10000" ) - PORT_DIPSETTING( 0x00, "15000" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - - -/*******************************************************/ -/* */ -/* Emag "Super Invaders" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( sinvemag ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "2000" ) - PORT_DIPSETTING( 0x00, "3000" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - - -/*******************************************************/ -/* */ -/* Jatre Specter (Taito?) */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( jspecter ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x00, "Coin Info" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/*******************************************************/ -/* */ -/* Taito "Balloon Bomber" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( ballbomb ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( ballbomb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_MACHINE_RESET(ballbomb) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(invadpt2) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Wing "Yosaku To Donbei" */ -/* */ -/*******************************************************/ - -static ADDRESS_MAP_START( yosakdon_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yosakdon_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) /* what's this? */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( yosakdon_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yosakdon_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x03, 0x03) AM_WRITE(MWA8_NOP) - AM_RANGE(0x05, 0x05) AM_WRITE(MWA8_NOP) - AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP) /* character numbers */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( yosakdon ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( yosakdon ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(yosakdon_readmem, yosakdon_writemem) - MDRV_CPU_IO_MAP(yosakdon_readport, yosakdon_writeport) - MDRV_MACHINE_RESET(yosakdon) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - -/*******************************************************/ -/* */ -/* Taito "Indian battle" */ -/* */ -/*******************************************************/ - -INPUT_PORTS_START( indianbt ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, "Number of Catch Animals" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME(0x80, 0x00, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DUMMY") /* cabinet fake port must be 4th */ - - PORT_START_TAG("CAB") /* Dummy port for cocktail mode */ - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -/* - Protection / sound hw checks ? - - ld a ,$b - out ($03),a - out ($01),a - in a,($00) - and $f0 - cp $10 - jp nz,$3000 - ld a,$03 - out ($03),a - out ($01),a - in a,($00) - jp $5de7 - and $f0 - jp z,$052b - jp $3000 - -*/ - -static READ8_HANDLER(indianbt_r) -{ - switch(activecpu_get_pc()) - { - case 0x5fed: return 0x10; - case 0x5ffc: return 0; - } - logerror("unknown port 0 read @ %x\n",activecpu_get_pc()); - return rand(); -} - -static ADDRESS_MAP_START( indianbt_port, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(indianbt_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) AM_WRITE(c8080bw_shift_amount_w) - AM_RANGE(0x03, 0x03) AM_READ(c8080bw_shift_data_r) - AM_RANGE(0x04, 0x04) AM_WRITE(c8080bw_shift_data_w) - AM_RANGE(0x06, 0x06) AM_WRITENOP /* sound ? */ -// ports 3,5,7 (write) are for sound - -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( indianbt ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_MACHINE_RESET(indianbt) - MDRV_CPU_IO_MAP(indianbt_port,0) - - /* video hardware */ - MDRV_PALETTE_LENGTH(8) - MDRV_PALETTE_INIT(indianbt) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(indianbt_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_DRIVER_END - -/***************************************************** - - Omori "Shuttle Invader" ?? - - 8080 CPU - - 1x SN76477 -g 2x SN75452 - 4x 8216 RAM - 2x TMS4045 RAM - 16x MCM4027 RAM - 1x empty small socket. maybe (missing) PROM? - 1x 8 position dipsw - 1x 556 - 1x 458 - 1x lm380 (amp chip) - - xtal 18MHz - xtal 5.545MHz - -******************************************************/ - -INPUT_PORTS_START( shuttlei ) - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) -INPUT_PORTS_END - -static ADDRESS_MAP_START( shuttlei_memory_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x13ff) AM_ROM - AM_RANGE(0x1c00, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(MRA8_RAM, c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x43ff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shuttlei_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0xfc, 0xfc) AM_WRITENOP /* game writes 0xAA every so often (perhaps when base hit?) */ - AM_RANGE(0xfe, 0xfe) AM_READ(input_port_0_r) AM_WRITENOP - AM_RANGE(0xff, 0xff) AM_READ(input_port_1_r) AM_WRITENOP -// port fd (write) is for sound -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( shuttlei ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(shuttlei_memory_map,0) - MDRV_CPU_IO_MAP(shuttlei_io_map,0) - MDRV_MACHINE_RESET(shuttlei) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MDRV_PALETTE_LENGTH(2) - MDRV_PALETTE_INIT(black_and_white) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - - -/* - ------------------------------------- -Darth Vader - Space Invaders bootleg ------------------------------------- - -Location Device File ID Checksum --------------------------------------------- -0 2708 ROM0 6F9A -1 2708 ROM1 7D2A -2 2708 ROM2 67AA -3 2708 ROM3 7D8D -4 2708 ROM4 493D -5 2708 ROM5 12CE - - -Notes: PCB No. DV-SI-7811M2a - CPU - 8080 - -Another (same checksums) dump came from board labeled SI-7811M-2 - -*/ - - -static ADDRESS_MAP_START( darthvdr_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darthvdr_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x0f) AM_WRITENOP -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darthvdr_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x17ff) AM_ROM - AM_RANGE(0x1800, 0x1fff) AM_RAM - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(MRA8_RAM, c8080bw_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) -ADDRESS_MAP_END - -INPUT_PORTS_START( darthvdr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x80, "6" ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - -static MACHINE_DRIVER_START( darthvdr ) - MDRV_IMPORT_FROM(8080bw) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(darthvdr_mem,0) - MDRV_CPU_IO_MAP(darthvdr_readport, darthvdr_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) -MACHINE_DRIVER_END - - -ROM_START( searthin ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "earthinv.h", 0x0000, 0x0800, CRC(58a750c8) SHA1(90bfa4ea06f38e67fe4286d37d151632439249d2) ) - ROM_LOAD( "earthinv.g", 0x0800, 0x0800, CRC(b91742f1) SHA1(8d9ca92405fbaf1d5a7138d400986616378d061e) ) - ROM_LOAD( "earthinv.f", 0x1000, 0x0800, CRC(4acbbc60) SHA1(b8c1efb4251a1e690ff6936ec956d6f66136a085) ) - ROM_LOAD( "earthinv.e", 0x1800, 0x0800, CRC(df397b12) SHA1(e7e8c080cb6baf342ec637532e05d38129ae73cf) ) -ROM_END - -ROM_START( searthia ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "unkh.h1", 0x0000, 0x0400, CRC(272b9bf3) SHA1(dd57d6a88d42024a39640931114107b547b4c520) ) - ROM_LOAD( "unkg.g1", 0x0400, 0x0400, CRC(61bb6101) SHA1(8fc8bbd8ac93d239e0cf0e4881f709860ec2c973) ) - ROM_LOAD( "unkf.f1", 0x0800, 0x0400, CRC(2a8d9cd5) SHA1(7948d79b326e729bcb629607c8797156ff9fb0e8) ) - ROM_LOAD( "unke.e1", 0x0c00, 0x0400, CRC(1938d349) SHA1(3bd2a0deb126cf2e22bc3cb53e9a59c3875be260) ) - ROM_LOAD( "unkd.d1", 0x1000, 0x0400, CRC(9bc2ab88) SHA1(1e9f3b780135827d16ba25978382b097a8110828) ) - ROM_LOAD( "unkc.c1", 0x1400, 0x0400, CRC(d4e2dada) SHA1(e98271212fc89e240fdf97d292edd17dc8dd4191) ) - ROM_LOAD( "unkb.b1", 0x1800, 0x0400, CRC(ab645a9c) SHA1(9c286f8a031a8babfb8e9b594e05e133c338b342) ) - ROM_LOAD( "unka.a1", 0x1c00, 0x0400, CRC(4b65bd7c) SHA1(3931f9f5b0e3339ab484eee14473d3a474935fd9) ) -ROM_END - - -ROM_START( invadrmr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - /* yes, this rom is really on the PCB twice?! */ - ROM_LOAD( "11.1s", 0x0000, 0x0400, CRC(389d44b6) SHA1(5d2581b8bc0da918ce57cf319e06b5b31989c681) ) - ROM_LOAD( "11.1t", 0x0000, 0x0400, CRC(389d44b6) SHA1(5d2581b8bc0da918ce57cf319e06b5b31989c681) ) - - ROM_LOAD( "sv02.1p", 0x0400, 0x0400, CRC(0e159534) SHA1(94b2015a9d38ca738705b8d024a79fd2f9855b98) ) - ROM_LOAD( "20.1n", 0x0800, 0x0400, CRC(805b04f0) SHA1(209f42dfde1593699ccf3755e9267d425416d910) ) - ROM_LOAD( "sv04.1j", 0x1400, 0x0400, CRC(1293b826) SHA1(165cd5d08a19eadbe954145b12807f10df9e691a) ) - ROM_LOAD( "13.1h", 0x1800, 0x0400, CRC(76b4a6ea) SHA1(076f8d12ba7ebe66b83a40d9a848075627776554) ) - ROM_LOAD( "sv06.1g", 0x1c00, 0x0400, CRC(2c68e0b4) SHA1(a5e5357120102ad32792bf3ef6362f45b7ba7070) ) -ROM_END - -ROM_START( spaceatt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "h", 0x0000, 0x0400, CRC(d0c32d72) SHA1(b3bd950b1ba940fbeb5d95e55113ed8f4c311434) ) - ROM_LOAD( "sv02.bin", 0x0400, 0x0400, CRC(0e159534) SHA1(94b2015a9d38ca738705b8d024a79fd2f9855b98) ) - ROM_LOAD( "f", 0x0800, 0x0400, CRC(483e651e) SHA1(ae795ee3bc53ac3936f6cf2c72cca7a890783513) ) - ROM_LOAD( "c", 0x1400, 0x0400, CRC(1293b826) SHA1(165cd5d08a19eadbe954145b12807f10df9e691a) ) - ROM_LOAD( "b", 0x1800, 0x0400, CRC(6fc782aa) SHA1(0275adbeec455e146f4443b0b836b1171436b79b) ) - ROM_LOAD( "a", 0x1c00, 0x0400, CRC(211ac4a3) SHA1(e08e90a4e77cfa30400626a484c9f37c87ea13f9) ) -ROM_END - -ROM_START( spaceat2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "spaceatt.h", 0x0000, 0x0800, CRC(a31d0756) SHA1(2b76929654ed0b180091348546dac29fc6e5438e) ) - ROM_LOAD( "spaceatt.g", 0x0800, 0x0800, CRC(f41241f7) SHA1(d93cead75922510075433849c4f7099279eafc18) ) - ROM_LOAD( "spaceatt.f", 0x1000, 0x0800, CRC(4c060223) SHA1(957e75a978aa600627399061cae0a6525e92ad11) ) - ROM_LOAD( "spaceatt.e", 0x1800, 0x0800, CRC(7cf6f604) SHA1(469557de15178c4b2d686e5724e1006f7c20d7a4) ) -ROM_END - -ROM_START( sinvzen ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.bin", 0x0000, 0x0400, CRC(9b0da779) SHA1(a52ccdb252eb69c497aa5eafb35d7f25a311b44e) ) - ROM_LOAD( "2.bin", 0x0400, 0x0400, CRC(9858ccab) SHA1(5ad8e5ef0d95779f0e513634b97bc330c9269ce4) ) - ROM_LOAD( "3.bin", 0x0800, 0x0400, CRC(a1cc38b5) SHA1(45fc9466b548d511b8174f6f3a4783164dd59489) ) - ROM_LOAD( "4.bin", 0x0c00, 0x0400, CRC(1f2db7a8) SHA1(354ad155743f724f2bebcab422f1ef96cb57c683) ) - ROM_LOAD( "5.bin", 0x1000, 0x0400, CRC(9b505fcd) SHA1(7461b7087d31dbe09f7b3078584ccaa2c9122c95) ) - ROM_LOAD( "6.bin", 0x1400, 0x0400, CRC(de0ca0ae) SHA1(a15d1218361839a2a2bf8da3f78d81621251fe1c) ) - ROM_LOAD( "7.bin", 0x1800, 0x0400, CRC(25a296f6) SHA1(37df98384c1513f0e33a350dfcaa99655f91c9ba) ) - ROM_LOAD( "8.bin", 0x1c00, 0x0400, CRC(f4bc4a98) SHA1(bff3806750a3695a136f398c7dbb69a0b7daa88a) ) -ROM_END - -ROM_START( sinvemag ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sv0h.bin", 0x0000, 0x0400, CRC(86bb8cb6) SHA1(a75648e7f2446c756d86624b15d387d25ce47b66) ) - ROM_LOAD( "emag_si.b", 0x0400, 0x0400, CRC(febe6d1a) SHA1(e1c3a24b4fa5862107ada1f9d7249466e8c3f06a) ) - ROM_LOAD( "emag_si.c", 0x0800, 0x0400, CRC(aafb24f7) SHA1(6718cdfae09f77d735be5145b9d202a73d8ed9db) ) - ROM_LOAD( "emag_si.d", 0x1400, 0x0400, CRC(68c4b9da) SHA1(8953dc0427b09b71bd763e65caa7deaca09a15da) ) - ROM_LOAD( "emag_si.e", 0x1800, 0x0400, CRC(c4e80586) SHA1(3d427d5a2eea3c911ec7bd055e06e6747ce5e84d) ) - ROM_LOAD( "emag_si.f", 0x1c00, 0x0400, CRC(077f5ef2) SHA1(625de6839073ac4c904f949efc1b2e0afea5d676) ) -ROM_END - -ROM_START( tst_invd ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "test.h", 0x0000, 0x0800, CRC(f86a2eea) SHA1(4a72ff01f3e6d16bbe9bf7f123cd98895bfbed9a) ) /* The Test ROM */ - ROM_LOAD( "invaders.g", 0x0800, 0x0800, CRC(6bfaca4a) SHA1(16f48649b531bdef8c2d1446c429b5f414524350) ) - ROM_LOAD( "invaders.f", 0x1000, 0x0800, CRC(0ccead96) SHA1(537aef03468f63c5b9e11dd61e253f7ae17d9743) ) - ROM_LOAD( "invaders.e", 0x1800, 0x0800, CRC(14e538b0) SHA1(1d6ca0c99f9df71e2990b610deb9d7da0125e2d8) ) -ROM_END - -ROM_START( alieninv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(c46df7f4) SHA1(eec34b3d5585bae03c7b80585daaa05ddfcc2164) ) - ROM_LOAD( "1g.bin", 0x0800, 0x0800, CRC(4b1112d6) SHA1(b693667656e5d8f44eeb2ea730f4d4db436da579) ) - ROM_LOAD( "1f.bin", 0x1000, 0x0800, CRC(adca18a5) SHA1(7e02651692113db31fd469868ae5ffdb0f941ecf) ) - ROM_LOAD( "1e.bin", 0x1800, 0x0800, CRC(0449cb52) SHA1(8adcb7cd4492fa6649d9ee81172d8dff56621d64) ) -ROM_END - -ROM_START( sitv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tv0h.s1", 0x0000, 0x0800, CRC(fef18aad) SHA1(043edeefe6a6d4934bd384eafea19326de1dbeec) ) - ROM_LOAD( "tv02.rp1", 0x0800, 0x0800, CRC(3c759a90) SHA1(d847d592dee592b1d3a575c21d89eaf3f7f6ae1b) ) - ROM_LOAD( "tv03.n1", 0x1000, 0x0800, CRC(0ad3657f) SHA1(a501f316535c50f7d7a20ef8e6dede1526a3f2a8) ) - ROM_LOAD( "tv04.m1", 0x1800, 0x0800, CRC(cd2c67f6) SHA1(60f9d8fe2d36ff589277b607f07c1edc917c755c) ) -ROM_END - -ROM_START( sicv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cv17.bin", 0x0000, 0x0800, CRC(3dfbe9e6) SHA1(26487df7fa0bbd0b9b7f74347c4b9318b0a73b89) ) - ROM_LOAD( "cv18.bin", 0x0800, 0x0800, CRC(bc3c82bf) SHA1(33e39fc97bd46699be1f9b9741a86f433efdc911) ) - ROM_LOAD( "cv19.bin", 0x1000, 0x0800, CRC(d202b41c) SHA1(868fe938ef768655c894ec95b7d9a81bf21f69ca) ) - ROM_LOAD( "cv20.bin", 0x1800, 0x0800, CRC(c74ee7b6) SHA1(4f52db274a2d4433ab67c099ee805e8eb8516c0f) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "cv01_1.bin", 0x0000, 0x0400, CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) - ROM_LOAD( "cv02_2.bin", 0x0400, 0x0400, CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) -ROM_END - -ROM_START( sisv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sv0h.bin", 0x0000, 0x0400, CRC(86bb8cb6) SHA1(a75648e7f2446c756d86624b15d387d25ce47b66) ) - ROM_LOAD( "sv02.bin", 0x0400, 0x0400, CRC(0e159534) SHA1(94b2015a9d38ca738705b8d024a79fd2f9855b98) ) - ROM_LOAD( "invaders.g", 0x0800, 0x0800, CRC(6bfaca4a) SHA1(16f48649b531bdef8c2d1446c429b5f414524350) ) - ROM_LOAD( "invaders.f", 0x1000, 0x0800, CRC(0ccead96) SHA1(537aef03468f63c5b9e11dd61e253f7ae17d9743) ) - ROM_LOAD( "tv04.m1", 0x1800, 0x0800, CRC(cd2c67f6) SHA1(60f9d8fe2d36ff589277b607f07c1edc917c755c) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "cv01_1.bin", 0x0000, 0x0400, CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) - ROM_LOAD( "cv02_2.bin", 0x0400, 0x0400, CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) -ROM_END - -ROM_START( sisv2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sv0h.bin", 0x0000, 0x0400, CRC(86bb8cb6) SHA1(a75648e7f2446c756d86624b15d387d25ce47b66) ) - ROM_LOAD( "emag_si.b", 0x0400, 0x0400, CRC(febe6d1a) SHA1(e1c3a24b4fa5862107ada1f9d7249466e8c3f06a) ) - ROM_LOAD( "sv12", 0x0800, 0x0400, CRC(a08e7202) SHA1(de9f7c851d1b894915e720cfc5d794cdb31752f6) ) - ROM_LOAD( "invaders.f", 0x1000, 0x0800, CRC(0ccead96) SHA1(537aef03468f63c5b9e11dd61e253f7ae17d9743) ) - ROM_LOAD( "sv13", 0x1800, 0x0400, CRC(a9011634) SHA1(1f1369ecb02078042cfdf17a497b8dda6dd23793) ) - ROM_LOAD( "sv14", 0x1c00, 0x0400, CRC(58730370) SHA1(13dc806bcecd2d6089a85dd710ac2869413f7475) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "cv01_1.bin", 0x0000, 0x0400, CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) - ROM_LOAD( "cv02_2.bin", 0x0400, 0x0400, CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) -ROM_END - -ROM_START( spceking ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "invaders.h", 0x0000, 0x0800, CRC(734f5ad8) SHA1(ff6200af4c9110d8181249cbcef1a8a40fa40b7f) ) - ROM_LOAD( "spcekng2", 0x0800, 0x0800, CRC(96dcdd42) SHA1(e18d7ffca92e863ef40e235b2be973d8c5879fdb) ) - ROM_LOAD( "spcekng3", 0x1000, 0x0800, CRC(95fc96ad) SHA1(38175edad0e538a1561cec8f7613f15ae274dd14) ) - ROM_LOAD( "spcekng4", 0x1800, 0x0800, CRC(54170ada) SHA1(1e8b3774355ec0d448f04805a917f4c1fe64bceb) ) -ROM_END - -ROM_START( spcewars ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sanritsu.1", 0x0000, 0x0400, CRC(ca331679) SHA1(5c362c3d1c721d293bcddbef4033533769c8f0e0) ) - ROM_LOAD( "sanritsu.2", 0x0400, 0x0400, CRC(48dc791c) SHA1(91a98205c83ca38961e6ba2ac43a41e6e8bc2675) ) - ROM_LOAD( "ic35.bin", 0x0800, 0x0800, CRC(40c2d55b) SHA1(b641b63046d242ad23911143ed840011fc98eaff) ) - ROM_LOAD( "sanritsu.5", 0x1000, 0x0400, CRC(77475431) SHA1(15a04a2655847ee462be65d1065d643c872bb47c) ) - ROM_LOAD( "sanritsu.6", 0x1400, 0x0400, CRC(392ef82c) SHA1(77c98c11ee727ed3ed6e118f13d97aabdb555540) ) - ROM_LOAD( "sanritsu.7", 0x1800, 0x0400, CRC(b3a93df8) SHA1(3afc96814149d4d5343fe06eac09f808384d02c4) ) - ROM_LOAD( "sanritsu.8", 0x1c00, 0x0400, CRC(64fdc3e1) SHA1(c3c278bc236ced7fc85e1a9b018e80be6ab33402) ) - ROM_LOAD( "sanritsu.9", 0x4000, 0x0400, CRC(b2f29601) SHA1(ce855e312f50df7a74682974803cb4f9b2d184f3) ) -ROM_END - -ROM_START( spacewr3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic36.bin", 0x0000, 0x0800, CRC(9e30f88a) SHA1(314dfb2920d9b43b977cc19e40ac315e6933c3b9) ) - ROM_LOAD( "ic35.bin", 0x0800, 0x0800, CRC(40c2d55b) SHA1(b641b63046d242ad23911143ed840011fc98eaff) ) - ROM_LOAD( "ic34.bin", 0x1000, 0x0800, CRC(b435f021) SHA1(2d0d813b99d571b53770fa878a1f82ca67827caa) ) - ROM_LOAD( "ic33.bin", 0x1800, 0x0800, CRC(cbdc6fe8) SHA1(63038ea09d320c54e3d1cf7f043c17bba71bf13c) ) - ROM_LOAD( "ic32.bin", 0x4000, 0x0800, CRC(1e5a753c) SHA1(5b7cd7b347203f4edf816f02c366bd3b1b9517c4) ) -ROM_END - -ROM_START( invaderl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c01", 0x0000, 0x0400, CRC(499f253a) SHA1(e13353194277f5d35e92db9b11912b5f392f51b7) ) - ROM_LOAD( "c02", 0x0400, 0x0400, CRC(2d0b2e1f) SHA1(2e0262d9dba607824fcd720d2995531649bdd03d) ) - ROM_LOAD( "c03", 0x0800, 0x0400, CRC(03033dc2) SHA1(87d7838e6a6542c2c5510af593df45137cb397c6) ) - ROM_LOAD( "c07", 0x1000, 0x0400, CRC(5a7bbf1f) SHA1(659f2a8c646660d316d6e70f1d9548375f1da63f) ) - ROM_LOAD( "c04", 0x1400, 0x0400, CRC(455b1fa7) SHA1(668800a0a3ba18d8b54c2aa4dfd4bd01a667d679) ) - ROM_LOAD( "c05", 0x1800, 0x0400, CRC(40cbef75) SHA1(15994ed8bb8ab8faed6198926873851062c9d95f) ) - ROM_LOAD( "sv06.bin", 0x1c00, 0x0400, CRC(2c68e0b4) SHA1(a5e5357120102ad32792bf3ef6362f45b7ba7070) ) -ROM_END - -ROM_START( invader4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "spin4.a", 0x0000, 0x0800, CRC(bb386dfe) SHA1(cc00f3e4f6ca4c05bae038a24ccdb213fb951cfc) ) - ROM_LOAD( "spin4.b", 0x0800, 0x0800, CRC(63afa11d) SHA1(d8cedfa010a49237e31f6ebaed35134cb1c3ce68) ) - ROM_LOAD( "spin4.c", 0x1000, 0x0800, CRC(22b0317c) SHA1(8fd037bf5f89a7bcb06042697410566d5180912a) ) - ROM_LOAD( "spin4.d", 0x1800, 0x0800, CRC(9102fd68) SHA1(3523e69314844fcd1863b1e9a9d7fcebe9ee174b) ) -ROM_END - -ROM_START( jspecter ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "3305.u6", 0x0000, 0x1000, CRC(ab211a4f) SHA1(d675ed29c3479d7318f8559bd56dd619cf631b6a) ) - ROM_LOAD( "3306.u7", 0x1400, 0x1000, CRC(0df142a7) SHA1(2f1c32d6fe7eafb7808fef0bdeb69b4909427417) ) -ROM_END - -ROM_START( jspectr2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "unksi.b2", 0x0000, 0x1000, CRC(0584b6c4) SHA1(c130021b878bde2beda4a189f71bbfed61088535) ) - ROM_LOAD( "unksi.a2", 0x1400, 0x1000, CRC(58095955) SHA1(545df3bb9ee4ff09f491d7a4b704e31aa311a8d7) ) -ROM_END - -ROM_START( invadpt2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pv01", 0x0000, 0x0800, CRC(7288a511) SHA1(ff617872784c28ed03591aefa9f0519e5651701f) ) - ROM_LOAD( "pv02", 0x0800, 0x0800, CRC(097dd8d5) SHA1(8d68654d54d075c0f0d7f63c87ff4551ce8b7fbf) ) - ROM_LOAD( "pv03", 0x1000, 0x0800, CRC(1766337e) SHA1(ea959bf06c9930d83a07559e191a28641efb07ac) ) - ROM_LOAD( "pv04", 0x1800, 0x0800, CRC(8f0e62e0) SHA1(a967b155f15f8432222fcc78b23121b00c405c5c) ) - ROM_LOAD( "pv05", 0x4000, 0x0800, CRC(19b505e9) SHA1(6a31a37586782ce421a7d2cffd8f958c00b7b415) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "pv06.1", 0x0000, 0x0400, CRC(a732810b) SHA1(a5fabffa73ca740909e23b9530936f9274dff356) ) - ROM_LOAD( "pv07.2", 0x0400, 0x0400, CRC(2c5b91cb) SHA1(7fa4d4aef85473b1b4f18734230c164e72be44e7) ) -ROM_END - -ROM_START( invaddlx ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "invdelux.h", 0x0000, 0x0800, CRC(e690818f) SHA1(0860fb03a64d34a9704a1459a5e96929eafd39c7) ) - ROM_LOAD( "invdelux.g", 0x0800, 0x0800, CRC(4268c12d) SHA1(df02419f01cf0874afd1f1aa16276751acd0604a) ) - ROM_LOAD( "invdelux.f", 0x1000, 0x0800, CRC(f4aa1880) SHA1(995d77b67cb4f2f3781c2c8747cb058b7c1b3412) ) - ROM_LOAD( "invdelux.e", 0x1800, 0x0800, CRC(408849c1) SHA1(f717e81017047497a2e9f33f0aafecfec5a2ed7d) ) - ROM_LOAD( "invdelux.d", 0x4000, 0x0800, CRC(e8d5afcd) SHA1(91fde9a9e7c3dd53aac4770bd169721a79b41ed1) ) -ROM_END - -ROM_START( moonbase ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ze3-1.bin", 0x0000, 0x0400, CRC(82dbf2c7) SHA1(c767d8b866db4a5059bd79f962a90ce3a962e1e6) ) - ROM_LOAD( "ze3-2.bin", 0x0400, 0x0400, CRC(c867f5b4) SHA1(686318fda6edde297aecaf33f480bfa075fa6eca) ) - ROM_LOAD( "ze3-3.bin", 0x0800, 0x0400, CRC(cb23ccc1) SHA1(86be2d14d52b3404e1a25c573bd25b97729d82a1) ) - ROM_LOAD( "ze3-4.bin", 0x0c00, 0x0400, CRC(9a11abe2) SHA1(f5337183c7f279d75ddeeab24f4f132aa2ee103b) ) - ROM_LOAD( "ze3-5.bin", 0x1000, 0x0400, CRC(2b105ed3) SHA1(fa0767089b3aaec25be39e950e7163ecbdc2f39f) ) - ROM_LOAD( "ze3-6.bin", 0x1400, 0x0400, CRC(cb3d6dcb) SHA1(b4923b12a141c76b7d50274f19a3224db26a5669) ) - ROM_LOAD( "ze3-7.bin", 0x1800, 0x0400, CRC(774b52c9) SHA1(ddbbba874ac069fb930b364a890c45675ec389f7) ) - ROM_LOAD( "ze3-8.bin", 0x1c00, 0x0400, CRC(e88ea83b) SHA1(ef05be4783c860369ee5ecd4844837207e99ad9f) ) - ROM_LOAD( "ze3-9.bin", 0x4000, 0x0400, CRC(2dd5adfa) SHA1(62cb98cad1e48de0e0cbf30392d35834b38dadbd) ) - ROM_LOAD( "ze3-10.bin", 0x4400, 0x0400, CRC(1e7c22a4) SHA1(b34173375494ffbf5400dd4014a683a9807f4f08) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "n02prm.6a", 0x0000, 0x0400, CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) - ROM_LOAD( "n01prm.6b", 0x0400, 0x0400, CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) -ROM_END - -ROM_START( invrvnge ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "invrvnge.h", 0x0000, 0x0800, CRC(aca41bbb) SHA1(ca71f792abd6d9a44d15b19d2ccf678e82ccba4f) ) - ROM_LOAD( "invrvnge.g", 0x0800, 0x0800, CRC(cfe89dad) SHA1(218b6a0b636c49c4cdc3667e8b1387ef0e257115) ) - ROM_LOAD( "invrvnge.f", 0x1000, 0x0800, CRC(e350de2c) SHA1(e845565e2f96f9dec3242ec5ab75910a515428c9) ) - ROM_LOAD( "invrvnge.e", 0x1800, 0x0800, CRC(1ec8dfc8) SHA1(fc8fbe1161958f57c9f4ccbcab8a769184b1c562) ) -ROM_END - -ROM_START( invrvnga ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "5m.bin", 0x0000, 0x0800, CRC(b145cb71) SHA1(127eb11de7ab9835f06510fb12838c0b728c0d42) ) - ROM_LOAD( "5n.bin", 0x0800, 0x0800, CRC(660e8af3) SHA1(bd52eadf4ee3d717fd5bd7206e1e87d729250c92) ) - ROM_LOAD( "5p.bin", 0x1000, 0x0800, CRC(6ec5a9ad) SHA1(d1e84d2d60c6128c092f2cd20a2b87216df3034b) ) - ROM_LOAD( "5r.bin", 0x1800, 0x0800, CRC(74516811) SHA1(0f595c7b0fae5f3f83fdd1ffed5a408ee77c9438) ) -ROM_END - -ROM_START( spclaser ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "la01", 0x0000, 0x0800, CRC(bedc0078) SHA1(a5bb0cbbb8e3f27d03beb8101b2be1111d73689d) ) - ROM_LOAD( "spcewarl.2", 0x0800, 0x0800, CRC(43bc65c5) SHA1(5f9827c02c2d221e1607359c840374ff7fb92fbf) ) - ROM_LOAD( "la03", 0x1000, 0x0800, CRC(1083e9cc) SHA1(7ad45c6230c9e02fcf51e3414c15e2237eebbd7a) ) - ROM_LOAD( "la04", 0x1800, 0x0800, CRC(5116b234) SHA1(b165b2574cbcb26a5bb43f91df5f8be5f111f486) ) -ROM_END - -ROM_START( laser ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.u36", 0x0000, 0x0800, CRC(b44e2c41) SHA1(00e0b2e088495d6f3bc175e8a53dcb3686ea8484) ) - ROM_LOAD( "2.u35", 0x0800, 0x0800, CRC(9876f331) SHA1(14e36b26d186d9a195492834ef989ed5664d7b65) ) - ROM_LOAD( "3.u34", 0x1000, 0x0800, CRC(ed79000b) SHA1(bfe0407e833ce61aa909f5f1f93c3fc1d46605e9) ) - ROM_LOAD( "4.u33", 0x1800, 0x0800, CRC(10a160a1) SHA1(e2d4208af11b65fc42d2856e57ee3c196f89d360) ) -ROM_END - -ROM_START( spcewarl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "spcewarl.1", 0x0000, 0x0800, CRC(1fcd34d2) SHA1(674139944e0d842a85bd21b326bd735e15453038) ) - ROM_LOAD( "spcewarl.2", 0x0800, 0x0800, CRC(43bc65c5) SHA1(5f9827c02c2d221e1607359c840374ff7fb92fbf) ) - ROM_LOAD( "spcewarl.3", 0x1000, 0x0800, CRC(7820df3a) SHA1(53315857f4282c68624b338b068d80ee6828af4c) ) - ROM_LOAD( "spcewarl.4", 0x1800, 0x0800, CRC(adc05b8d) SHA1(c4acf75537c0662a4785d5d6a90643239a54bf43) ) -ROM_END - -ROM_START( galxwars ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "univgw3.0", 0x0000, 0x0400, CRC(937796f4) SHA1(88e9494cc532498e51e3a68fa1122c40f22b27dd) ) - ROM_LOAD( "univgw4.1", 0x0400, 0x0400, CRC(4b86e7a6) SHA1(167f9f7491a2de39d08e3e6f7057cc75b36c9340) ) - ROM_LOAD( "univgw5.2", 0x0800, 0x0400, CRC(47a187cd) SHA1(640c896ba25f34d323624005bd676257ad17b687) ) - ROM_LOAD( "univgw6.3", 0x0c00, 0x0400, CRC(7b7d22ff) SHA1(74364cf2b04dcfbbc8e0131fa12c0e574f693d34) ) - ROM_LOAD( "univgw1.4", 0x4000, 0x0400, CRC(0871156e) SHA1(3726d0bfe153a0afc62ea56737662074986064b0) ) - ROM_LOAD( "univgw2.5", 0x4400, 0x0400, CRC(6036d7bf) SHA1(36c2ad2ffdb47bbecc40fd67ced6ab51a5cd2f3e) ) -ROM_END - -ROM_START( galxwar2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "3192.h6", 0x0000, 0x1000, CRC(bde6860b) SHA1(e04b8add32d8f7ea588fae6d6a387f1d40495f1b) ) - ROM_LOAD( "3193.h7", 0x4000, 0x1000, CRC(a17cd507) SHA1(554ab0e8bdc0e7af4a30b0ddc8aa053c8e70255c) ) /* 2nd half unused */ -ROM_END - -ROM_START( galxwart ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "galxwars.0", 0x0000, 0x0400, CRC(608bfe7f) SHA1(a41a40a2f0a1bb61a70b9ff8a7da925ab1db7f74) ) - ROM_LOAD( "galxwars.1", 0x0400, 0x0400, CRC(a810b258) SHA1(030a72fffcf240f643bc3006028cb4883cf58bbc) ) - ROM_LOAD( "galxwars.2", 0x0800, 0x0400, CRC(74f31781) SHA1(1de70e8ebbb26eea20ffedb7bd0ca051a67f45e7) ) - ROM_LOAD( "galxwars.3", 0x0c00, 0x0400, CRC(c88f886c) SHA1(4d705fbb97e3868c3f6c90c5e5753ad17cfbf5d6) ) - ROM_LOAD( "galxwars.4", 0x4000, 0x0400, CRC(ae4fe8fb) SHA1(494f44167dc84e4515b769c12f6e24419461dce4) ) - ROM_LOAD( "galxwars.5", 0x4400, 0x0400, CRC(37708a35) SHA1(df6fd521ddfa146ef93e390e47741bdbfda1e7ba) ) -ROM_END - -ROM_START( starw ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "roma", 0x0000, 0x0400, CRC(60e8993c) SHA1(0bdf163ff0f2e6a8771987d4e7ac604c45af21b8) ) - ROM_LOAD( "romb", 0x0400, 0x0400, CRC(b8060773) SHA1(92aa358c338ef8f5773bccada8988d068764e7ea) ) - ROM_LOAD( "romc", 0x0800, 0x0400, CRC(307ce6b8) SHA1(f4b6f54db3d2377ec27d62d33fa1c4946559a092) ) - ROM_LOAD( "romd", 0x1400, 0x0400, CRC(2b0d0a88) SHA1(d079d12b6d4136519ded32415d668a02147b7601) ) - ROM_LOAD( "rome", 0x1800, 0x0400, CRC(5b1c3ad0) SHA1(edb42eec59c3dd7e274e2ea08fed0f3e8fc72e9e) ) - ROM_LOAD( "romf", 0x1c00, 0x0400, CRC(c8e42d3d) SHA1(841b27af251b9c3a964972e864fb7c88acc742e0) ) -ROM_END - -ROM_START( lrescue ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "lrescue.1", 0x0000, 0x0800, CRC(2bbc4778) SHA1(0167f1ac1501ab0b4c4e555023fa5efed59d56ae) ) - ROM_LOAD( "lrescue.2", 0x0800, 0x0800, CRC(49e79706) SHA1(bed675bb97d59ae0132c007ccead0d096ed2ddf1) ) - ROM_LOAD( "lrescue.3", 0x1000, 0x0800, CRC(1ac969be) SHA1(67ac47f45b9fa5c530bf6047bb7d5776b52847be) ) - ROM_LOAD( "lrescue.4", 0x1800, 0x0800, CRC(782fee3c) SHA1(668295e9d6d99084bb4e7c5491f00fe75f4f5a88) ) - ROM_LOAD( "lrescue.5", 0x4000, 0x0800, CRC(58fde8bc) SHA1(663665ac5254204c1eba18357d9867034eae55eb) ) - ROM_LOAD( "lrescue.6", 0x4800, 0x0800, CRC(bfb0f65d) SHA1(ea0943d764a16094b6e2289f62ef117c9f838c98) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color map */ - ROM_LOAD( "7643-1.cpu", 0x0000, 0x0400, CRC(8b2e38de) SHA1(d6a757be31c3a179d31bd3709e71f9e38ec632e9) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( grescue ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "lrescue.1", 0x0000, 0x0800, CRC(2bbc4778) SHA1(0167f1ac1501ab0b4c4e555023fa5efed59d56ae) ) - ROM_LOAD( "lrescue.2", 0x0800, 0x0800, CRC(49e79706) SHA1(bed675bb97d59ae0132c007ccead0d096ed2ddf1) ) - ROM_LOAD( "lrescue.3", 0x1000, 0x0800, CRC(1ac969be) SHA1(67ac47f45b9fa5c530bf6047bb7d5776b52847be) ) - ROM_LOAD( "grescue.4", 0x1800, 0x0800, CRC(ca412991) SHA1(41b59f338a6c246e0942a8bfa3c0bca2c24c7f81) ) - ROM_LOAD( "grescue.5", 0x4000, 0x0800, CRC(a419a4d6) SHA1(8eeeb31cbebffc98d2c6c5b964f9b320fcf303d2) ) - ROM_LOAD( "lrescue.6", 0x4800, 0x0800, CRC(bfb0f65d) SHA1(ea0943d764a16094b6e2289f62ef117c9f838c98) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color map */ - ROM_LOAD( "7643-1.cpu", 0x0000, 0x0400, CRC(8b2e38de) SHA1(d6a757be31c3a179d31bd3709e71f9e38ec632e9) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( desterth ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "36_h.bin", 0x0000, 0x0800, CRC(f86923e5) SHA1(d19935ba3d2c1c2553b3779f1a7ad8856c003dae) ) - ROM_LOAD( "35_g.bin", 0x0800, 0x0800, CRC(797f440d) SHA1(a96917f2296ae467acc795eacc1533a2a2d2f401) ) - ROM_LOAD( "34_f.bin", 0x1000, 0x0800, CRC(993d0846) SHA1(6be0c45add41fa7e43cac96c776cd0ebb45ade7b) ) - ROM_LOAD( "33_e.bin", 0x1800, 0x0800, CRC(8d155fc5) SHA1(1ef5e62d71abbf870c027fa1e477121ff124b8da) ) - ROM_LOAD( "32_d.bin", 0x4000, 0x0800, CRC(3f531b6f) SHA1(2fc1f4912688986650e20a050a5d63ddecd4267e) ) - ROM_LOAD( "31_c.bin", 0x4800, 0x0800, CRC(ab019c30) SHA1(33931510a722168bcf7c30d22eac9345576b6631) ) - ROM_LOAD( "42_b.bin", 0x5000, 0x0800, CRC(ed9dbac6) SHA1(4553f445ac32ebb1be490b02df4924f76557e8f9) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color map */ - ROM_LOAD( "7643-1.cpu", 0x0000, 0x0400, CRC(8b2e38de) SHA1(d6a757be31c3a179d31bd3709e71f9e38ec632e9) ) - ROM_RELOAD( 0x0400, 0x0400 ) -ROM_END - -ROM_START( lrescuem ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "48.ic36", 0x0000, 0x0400, CRC(bad5ba48) SHA1(6d8a2df172e058d16f196ad7f29430e9fd1fdaa8) ) - ROM_LOAD( "49.ic35", 0x0400, 0x0400, CRC(a6dc23d6) SHA1(76b9105935bf239ae90b47900f64dac3032ceecd) ) - ROM_LOAD( "50.ic34", 0x0800, 0x0400, CRC(90179fee) SHA1(35059f7399229b8d9588d34f79073fa4d3301614) ) - ROM_LOAD( "51.ic33", 0x0c00, 0x0400, CRC(1d197d87) SHA1(21e049f9c2a0fe1c0403d9d1a2dc695c4ee764f9) ) - ROM_LOAD( "52.ic32", 0x1000, 0x0400, CRC(4326d338) SHA1(ac31645bdf292f28dfcfcb9d5e158e5df7a6f95d) ) - ROM_LOAD( "53.ic31", 0x1400, 0x0400, CRC(3b272372) SHA1(39b807c810d093d7a34b102eec16f3d9baeb21f1) ) - ROM_LOAD( "54.ic42", 0x1800, 0x0400, CRC(a877c5b6) SHA1(862871c3dd18221d5713fe1fd2dc4f5b7cb913c1) ) - ROM_LOAD( "55.ic41", 0x1c00, 0x0400, CRC(c9a93407) SHA1(604bcace8e3bec07db6ca8a8918b306b77643e14) ) - ROM_LOAD( "56.ic40", 0x4000, 0x0400, CRC(3398798f) SHA1(d7dd9e65a1048df8edd217f4206b19cd01f143f4) ) - ROM_LOAD( "57.ic39", 0x4400, 0x0400, CRC(37c5bfc6) SHA1(b0aec85e6f979cdf7a3a985830c8530302804837) ) - ROM_LOAD( "58.ic38", 0x4800, 0x0400, CRC(1b7a5644) SHA1(d26530ea11ada86f7c99b11d6faf4416a8f5a9eb) ) - ROM_LOAD( "59.ic37", 0x4c00, 0x0400, CRC(c342b907) SHA1(327da029420c4eedabc2a0534199a008a3f341b8) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 - these don't really fit this game, but were on the PCB */ - ROM_LOAD( "cv01-7643.2c", 0x0000, 0x0400, CRC(aac24f34) SHA1(ad110e776547fb48baac568bb50d61854537ca34) ) - ROM_LOAD( "cv02-7643.1c", 0x0400, 0x0400, CRC(2bdf83a0) SHA1(01ffbd43964c41987e7d44816271308f9a70802b) ) -ROM_END - -ROM_START( cosmo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.36", 0x0000, 0x0800, CRC(445c9a98) SHA1(89bce80a061e9c12544231f970d9dec801eb1b94) ) - ROM_LOAD( "2.35", 0x0800, 0x0800, CRC(df3eb731) SHA1(fb90c1d0f2518195dd49062c9f0fd890536d89f4) ) - ROM_LOAD( "3.34", 0x1000, 0x0800, CRC(772c813f) SHA1(a1c0d857c660fb0b838dd0466af7bf5d73bcd55d) ) - ROM_LOAD( "4.33", 0x1800, 0x0800, CRC(279f66e6) SHA1(8ce71c08cca0bdde2f2e0ef21622731c4610c030) ) - ROM_LOAD( "5.32", 0x4000, 0x0800, CRC(cefb18df) SHA1(bb500cf3f7d1a54045a165d3613a92ab3f11d3e8) ) - ROM_LOAD( "6.31", 0x4800, 0x0800, CRC(b037f6c4) SHA1(b9a42948052b8cda8d2e4575e59909589f4e7a8d) ) - ROM_LOAD( "7.42", 0x5000, 0x0800, CRC(c3831ea2) SHA1(8c67ef0312656ef0eeff34b8463376c736bd8ea1) ) - - ROM_REGION( 0x1000, REGION_PROMS, 0 ) /* color map */ - ROM_LOAD( "n-1.7d", 0x0800, 0x0800, CRC(bd8576f1) SHA1(aa5fe0a4d024f21a3bca7a6b3f5022779af6f3f4) ) - ROM_LOAD( "n-2.6e", 0x0000, 0x0800, CRC(48f1ade5) SHA1(a1b45f82f3649cde8ae6a2ef494a3a6cdb5e65d0) ) -ROM_END - -ROM_START( cosmicmo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cosmicmo.1", 0x0000, 0x0400, CRC(d6e4e5da) SHA1(8b4275a3c71ac3fa80d17237dc04de5f586645f4) ) - ROM_LOAD( "cosmicmo.2", 0x0400, 0x0400, CRC(8f7988e6) SHA1(b6a01d5dcab013350f8f7f3e3ebfc986bb939fe0) ) - ROM_LOAD( "cosmicmo.3", 0x0800, 0x0400, CRC(2d2e9dc8) SHA1(dd3da4fc752e003e5e7c64bf189288133aed545b) ) - ROM_LOAD( "cosmicmo.4", 0x0c00, 0x0400, CRC(26cae456) SHA1(2f2262340c10e5c29d71317f6eb8072c26655563) ) - ROM_LOAD( "cosmicmo.5", 0x4000, 0x0400, CRC(b13f228e) SHA1(a0de05aa36435e72c77f5333f3ad964ec448a8f0) ) - ROM_LOAD( "cosmicmo.6", 0x4400, 0x0400, CRC(4ae1b9c4) SHA1(8eed87eebe68caa775fa679363b0fe3728d98c34) ) - ROM_LOAD( "cosmicmo.7", 0x4800, 0x0400, CRC(6a13b15b) SHA1(dc03a6c3e938cfd08d16bd1660899f951ba72ea2) ) -ROM_END - -ROM_START( cosmicm2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "3907.bin", 0x0000, 0x1000, CRC(bbffede6) SHA1(e7505ee8e3f19557ebbfd0145dc2ae0d1c529eba) ) - ROM_LOAD( "3906.bin", 0x4000, 0x1000, CRC(b841f894) SHA1(b1f9e1800969baab14da2fd8873b58d4707b7236) ) -ROM_END - -ROM_START( superinv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "00", 0x0000, 0x0400, CRC(7a9b4485) SHA1(dde918ec106971972bf7c7e5085c1262522f7e35) ) - ROM_LOAD( "01", 0x0400, 0x0400, CRC(7c86620d) SHA1(9e92ec0aa4eee96a7fa115a14a611c488d13b9dd) ) - ROM_LOAD( "02", 0x0800, 0x0400, CRC(ccaf38f6) SHA1(8eb0456e8abdba0d1dda20a335a9ecbe7c38f9ed) ) - ROM_LOAD( "03", 0x1400, 0x0400, CRC(8ec9eae2) SHA1(48d7a7dc61e0417ca4093e5c2a36efd96e359233) ) - ROM_LOAD( "04", 0x1800, 0x0400, CRC(68719b30) SHA1(2084bd63cd61ef1d2497c32112cdb42b7b582da4) ) - ROM_LOAD( "05", 0x1c00, 0x0400, CRC(8abe2466) SHA1(17494b1e5db207e37a7d28d7c89cbc5f36b7aefc) ) -ROM_END - -ROM_START( invasion ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "10136-0.0k", 0x0000, 0x0400, CRC(7a9b4485) SHA1(dde918ec106971972bf7c7e5085c1262522f7e35) ) - ROM_LOAD( "10136-1.1k", 0x0400, 0x0400, CRC(7c86620d) SHA1(9e92ec0aa4eee96a7fa115a14a611c488d13b9dd) ) - ROM_LOAD( "10136-2.2k", 0x0800, 0x0400, CRC(ccaf38f6) SHA1(8eb0456e8abdba0d1dda20a335a9ecbe7c38f9ed) ) - ROM_LOAD( "10136-5.5k", 0x1400, 0x0400, CRC(8ec9eae2) SHA1(48d7a7dc61e0417ca4093e5c2a36efd96e359233) ) - ROM_LOAD( "10136-6.6k", 0x1800, 0x0400, CRC(ff0b0690) SHA1(8547c4b2a228f1690287217a916613c8f0caccf6) ) - ROM_LOAD( "10136-7.7k", 0x1c00, 0x0400, CRC(75d7acaf) SHA1(977d146d7df555cea1bb2156d29d88bec9731f98) ) -ROM_END - -ROM_START( rollingc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rc01.bin", 0x0000, 0x0400, CRC(66fa50bf) SHA1(7451d4ff8d3b351a324aaecdbdc5b46672f5fdd0) ) - ROM_LOAD( "rc02.bin", 0x0400, 0x0400, CRC(61c06ae4) SHA1(7685c806e20e4a4a0508a547ac08ca8f6d75bb79) ) - ROM_LOAD( "rc03.bin", 0x0800, 0x0400, CRC(77e39fa0) SHA1(16bf88af1b97c5a2a81e105af08b8d9d1f10dcc8) ) - ROM_LOAD( "rc04.bin", 0x0c00, 0x0400, CRC(3fdfd0f3) SHA1(4c5e7136a766f3f16399e61eaaa0e00ef6b619f7) ) - ROM_LOAD( "rc05.bin", 0x1000, 0x0400, CRC(c26a8f5b) SHA1(f7a541999cfe04c6d6927d285484f0f81857e04a) ) - ROM_LOAD( "rc06.bin", 0x1400, 0x0400, CRC(0b98dbe5) SHA1(33cedab82ddccb4caaf681fce553b5230a8d6f92) ) - ROM_LOAD( "rc07.bin", 0x1800, 0x0400, CRC(6242145c) SHA1(b01bb02835dda89dc02604ec52e423167183e8c9) ) - ROM_LOAD( "rc08.bin", 0x1c00, 0x0400, CRC(d23c2ef1) SHA1(909e3d53291dbd219f4f9e0047c65317b9f6d5bd) ) - - ROM_LOAD( "rc09.bin", 0x4000, 0x0800, CRC(2e2c5b95) SHA1(33f4e2789d67e355ccd99d2c0d07301ec2bd3bc1) ) - ROM_LOAD( "rc10.bin", 0x4800, 0x0800, CRC(ef94c502) SHA1(07c0504b2ebce0fa6e53e6957e7b6c0e9caab430) ) - ROM_LOAD( "rc11.bin", 0x5000, 0x0800, CRC(a3164b18) SHA1(7270af25fa4171f86476f5dc409e658da7fba7fc) ) - ROM_LOAD( "rc12.bin", 0x5800, 0x0800, CRC(2052f6d9) SHA1(036702fc40cf133eb374ed674695d7c6c79e8311) ) -ROM_END - -ROM_START( schaser ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rt13.bin", 0x0000, 0x0400, CRC(0dfbde68) SHA1(7367b138ad8448aba9222fed632a892df65cecbd) ) - ROM_LOAD( "rt14.bin", 0x0400, 0x0400, CRC(5a508a25) SHA1(c681d0bbf49317e79b596fb094e66b8912f0e409) ) - ROM_LOAD( "rt15.bin", 0x0800, 0x0400, CRC(2ac43a93) SHA1(d364f0940681a888c0147e06bcb01f8a0d4a24c8) ) - ROM_LOAD( "rt16.bin", 0x0c00, 0x0400, CRC(f5583afc) SHA1(5e8edb43ccb138fd47ac8f3da1af79b4444a4a82) ) - ROM_LOAD( "rt17.bin", 0x1000, 0x0400, CRC(51cf1155) SHA1(fd8c82d951602fd7e0ada65fc7cdee9f277c70db) ) - ROM_LOAD( "rt18.bin", 0x1400, 0x0400, CRC(3f0fc73a) SHA1(b801c3f1e8e6e41c564432db7c5891f6b27293b2) ) - ROM_LOAD( "rt19.bin", 0x1800, 0x0400, CRC(b66ea369) SHA1(d277f572f9c7c4301518546cf60671a6539326ee) ) - ROM_LOAD( "rt20.bin", 0x1c00, 0x0400, CRC(e3a7466a) SHA1(2378970f38b0cec066ef853a6540500e468e4ab4) ) - ROM_LOAD( "rt21.bin", 0x4000, 0x0400, CRC(b368ac98) SHA1(6860efe0496955db67611183be0efecda92c9c98) ) - ROM_LOAD( "rt22.bin", 0x4400, 0x0400, CRC(6e060dfb) SHA1(614e2ecf676c3ea2f9ea869125cfffef2f713684) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* background color map */ - ROM_LOAD( "rt06.ic2", 0x0000, 0x0400, CRC(950cf973) SHA1(d22df09b325835a0057ccd0d54f827b374254ac6) ) -ROM_END - -ROM_START( sflush ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "taitofr.005", 0xd800, 0x800, CRC(c4f08f9f) SHA1(997f216f5244942fc1a19f5c1988adbfadc301fc) ) - ROM_LOAD( "taitofr.004", 0xe000, 0x800, CRC(87a754a5) SHA1(07c0e2c3cb7aa0086d8f4dd202a452bc6c20d4ee) ) - ROM_LOAD( "taitofr.003", 0xe800, 0x800, CRC(5b12847f) SHA1(4b62342723dd49a387fae6637c331d7c853712a3) ) - ROM_LOAD( "taitofr.002", 0xf000, 0x800, CRC(291c9b1f) SHA1(7e5b3e1605581abf3d8165f4de9d4e32a5ee3bb0) ) - ROM_LOAD( "taitofr.001", 0xf800, 0x800, CRC(55d688c6) SHA1(574a3a2ca73cabb4b8f3444aa4464e6d64daa3ad) ) -ROM_END - -ROM_START( schasrcv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1", 0x0000, 0x0400, CRC(bec2b16b) SHA1(c62210ecb64d7c38e5b63481d7fe04eb59bb1068) ) - ROM_LOAD( "2", 0x0400, 0x0400, CRC(9d25e608) SHA1(4cc52a93a3ab96a0ec1d07593e17832fa59b30a1) ) - ROM_LOAD( "3", 0x0800, 0x0400, CRC(113d0635) SHA1(ab5e98d0b5fc37d7d69bb5c541681a0f66460440) ) - ROM_LOAD( "4", 0x0c00, 0x0400, CRC(f3a43c8d) SHA1(29a7a8b7d1de763a255cfec79157fd95e7bff551) ) - ROM_LOAD( "5", 0x1000, 0x0400, CRC(47c84f23) SHA1(61b475fa92b8335f8edd3a128d8ac8561658e464) ) - ROM_LOAD( "6", 0x1400, 0x0400, CRC(02ff2199) SHA1(e12c235b2064cb4bb426145172e523256e3c6358) ) - ROM_LOAD( "7", 0x1800, 0x0400, CRC(87d06b88) SHA1(2d743161f85e47cb8ee2a600cbee790b1ad7ad99) ) - ROM_LOAD( "8", 0x1c00, 0x0400, CRC(6dfaad08) SHA1(2184c4e2f4b6bffdc4fe13e178134331fcd43253) ) - ROM_LOAD( "9", 0x4000, 0x0400, CRC(3d1a2ae3) SHA1(672ad6590aebdfebc2748455fa638107f3934c41) ) - ROM_LOAD( "10", 0x4400, 0x0400, CRC(037edb99) SHA1(f2fc5e61f962666e7f6bb81753ac24ea0b97e581) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 (not used, but they were on the board) */ - ROM_LOAD( "cv01", 0x0000, 0x0400, CRC(037e16ac) SHA1(d585030aaff428330c91ae94d7cd5c96ebdd67dd) ) - ROM_LOAD( "cv02", 0x0400, 0x0400, CRC(8263da38) SHA1(2e7c769d129e6f8a1a31eba1e02777bb94ac32b2) ) -ROM_END - -ROM_START( lupin3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "lp12.bin", 0x0000, 0x0800, CRC(68a7f47a) SHA1(dce99b3810331d7603fa468f1dea984e571f709b) ) - ROM_LOAD( "lp13.bin", 0x0800, 0x0800, CRC(cae9a17b) SHA1(a333ba7db45325996e3254ab36162bb7577e8a38) ) - ROM_LOAD( "lp14.bin", 0x1000, 0x0800, CRC(3553b9e4) SHA1(6affb5b6caf08f365c0dce669e44046295c3df91) ) - ROM_LOAD( "lp15.bin", 0x1800, 0x0800, CRC(acbeef64) SHA1(50d78cdc9938285b6bf9fa81fa0f6c30b23e0756) ) - ROM_LOAD( "lp16.bin", 0x4000, 0x0800, CRC(19fcdc54) SHA1(2f18ee8158321fff68886ffe793724001e8b18c2) ) - ROM_LOAD( "lp17.bin", 0x4800, 0x0800, CRC(66289ab2) SHA1(fc9b4a7b7a08d43f34beaf1a8e68ed0ff6148534) ) - ROM_LOAD( "lp18.bin", 0x5000, 0x0800, CRC(2f07b4ba) SHA1(982e4c437b39b45e23d15af1b2fc8c7aa3034559) ) -ROM_END - -ROM_START( polaris ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ps-01", 0x0000, 0x0800, CRC(c04ce5a9) SHA1(62cc9b3b682ebecfb7600393862c65e26ff5263f) ) - ROM_LOAD( "ps-09", 0x0800, 0x0800, CRC(9a5c8cb2) SHA1(7a8c5d74f8b431072d9476d3ef65a3fe1d639813) ) - ROM_LOAD( "ps-08", 0x1000, 0x0800, CRC(8680d7ea) SHA1(7fd4b8a415666c36842fed80d2798b48f8b29d0d) ) - ROM_LOAD( "ps-04", 0x1800, 0x0800, CRC(65694948) SHA1(de92a7f3e3ef732b573254baa60df60f8e068a5d) ) - ROM_LOAD( "ps-05", 0x4000, 0x0800, CRC(772e31f3) SHA1(fa0b866b6df1a9217e286ca880b3bb3fb0644bf3) ) - ROM_LOAD( "ps-10", 0x4800, 0x0800, CRC(3df77bac) SHA1(b3275c34b8d42df83df2c404c5b7d220aae651fa) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) /* background color map */ - ROM_LOAD( "ps07", 0x0000, 0x0400, CRC(164aa05d) SHA1(41c699ce45c76a60c71294f25d8df6c6e6c1280a) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* cloud graphics */ - ROM_LOAD( "mb7052.2c", 0x0000, 0x0100, CRC(2953253b) SHA1(2fb851bc9652ca4e51d473b484ede6dab05f1b51) ) -ROM_END - -ROM_START( polarisa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ps01-1", 0x0000, 0x0800, CRC(7d41007c) SHA1(168f002fe997aac6e4141292de826d389859bb04) ) - ROM_LOAD( "ps-09", 0x0800, 0x0800, CRC(9a5c8cb2) SHA1(7a8c5d74f8b431072d9476d3ef65a3fe1d639813) ) - ROM_LOAD( "ps03-1", 0x1000, 0x0800, CRC(21f32415) SHA1(6ac9ae9b55e342729fe260147021ed3911a24dc2) ) - ROM_LOAD( "ps-04", 0x1800, 0x0800, CRC(65694948) SHA1(de92a7f3e3ef732b573254baa60df60f8e068a5d) ) - ROM_LOAD( "ps-05", 0x4000, 0x0800, CRC(772e31f3) SHA1(fa0b866b6df1a9217e286ca880b3bb3fb0644bf3) ) - ROM_LOAD( "ps-10", 0x4800, 0x0800, CRC(3df77bac) SHA1(b3275c34b8d42df83df2c404c5b7d220aae651fa) ) - ROM_LOAD( "ps26", 0x5000, 0x0800, CRC(9d5c3d50) SHA1(a6acf9ca6e807625156cb1759269014d5830a44f) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) /* background color map */ - ROM_LOAD( "ps07", 0x0000, 0x0400, CRC(164aa05d) SHA1(41c699ce45c76a60c71294f25d8df6c6e6c1280a) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* cloud graphics */ - ROM_LOAD( "mb7052.2c", 0x0000, 0x0100, CRC(2953253b) SHA1(2fb851bc9652ca4e51d473b484ede6dab05f1b51) ) -ROM_END - -ROM_START( ozmawars ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mw01", 0x0000, 0x0800, CRC(31f4397d) SHA1(bba9765aadd608d19e2515a5edf8e0eceb70916a) ) - ROM_LOAD( "mw02", 0x0800, 0x0800, CRC(d8e77c62) SHA1(84fc81cf9a924ecbb13a008cd7435b7d465bddf6) ) - ROM_LOAD( "mw03", 0x1000, 0x0800, CRC(3bfa418f) SHA1(7318878202322a2263551ca463e4c70943401f68) ) - ROM_LOAD( "mw04", 0x1800, 0x0800, CRC(e190ce6c) SHA1(120898e9a683f5ce874c6fde761570a26de2fa8c) ) - ROM_LOAD( "mw05", 0x4000, 0x0800, CRC(3bc7d4c7) SHA1(b084f8cd2ce0f502c2e915da3eceffcbb448e9c0) ) - ROM_LOAD( "mw06", 0x4800, 0x0800, CRC(99ca2eae) SHA1(8d0f220f68043eff0c85d2de7bee7fd4365fb51c) ) -ROM_END - -ROM_START( ozmawar2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mw01", 0x0000, 0x0800, CRC(31f4397d) SHA1(bba9765aadd608d19e2515a5edf8e0eceb70916a) ) - ROM_LOAD( "mw02", 0x0800, 0x0800, CRC(d8e77c62) SHA1(84fc81cf9a924ecbb13a008cd7435b7d465bddf6) ) - ROM_LOAD( "oz5", 0x1000, 0x0400, CRC(5597bf52) SHA1(626c7348365ed974d416485d94d057745b5d9b96) ) - ROM_LOAD( "oz6", 0x1400, 0x0400, CRC(19b43578) SHA1(3609b7c77f5ee6f10f302892f56fcc8375577f20) ) - ROM_LOAD( "oz7", 0x1800, 0x0400, CRC(a285bfde) SHA1(ed7a9fce4d887d3b5d596645893ea87c0bafda02) ) - ROM_LOAD( "oz8", 0x1c00, 0x0400, CRC(ae59a629) SHA1(0c9ea67dc35f93ec65ec91e1dab2e4b6212428bf) ) - ROM_LOAD( "mw05", 0x4000, 0x0800, CRC(3bc7d4c7) SHA1(b084f8cd2ce0f502c2e915da3eceffcbb448e9c0) ) - ROM_LOAD( "oz11", 0x4800, 0x0400, CRC(660e934c) SHA1(1d50ae3a9de041b908e256892203ce1738d588f6) ) - ROM_LOAD( "oz12", 0x4c00, 0x0400, CRC(8b969f61) SHA1(6d12cacc73c31a897812ccd8de24725ee56dd975) ) -ROM_END - -ROM_START( solfight ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "solfight.m", 0x0000, 0x0800, CRC(a4f2814e) SHA1(e2437e3543dcc97eeaea32babcd4aec6455581ac) ) - ROM_LOAD( "solfight.n", 0x0800, 0x0800, CRC(5657ec07) SHA1(9a2fb398841160f59483bb70060caba37addb8a4) ) - ROM_LOAD( "solfight.p", 0x1000, 0x0800, CRC(ef9ce96d) SHA1(96867b4f2d72f3a8827b1eb3a0748922eaa8d608) ) - ROM_LOAD( "solfight.r", 0x1800, 0x0800, CRC(4f1ef540) SHA1(a798e57959e72bfb554dd2fed0e37027312f9ed3) ) - ROM_LOAD( "mw05", 0x4000, 0x0800, CRC(3bc7d4c7) SHA1(b084f8cd2ce0f502c2e915da3eceffcbb448e9c0) ) - ROM_LOAD( "solfight.t", 0x4800, 0x0800, CRC(3b6fb206) SHA1(db631f4a0bd5344d130ff8d723d949e9914b6f92) ) -ROM_END - -ROM_START( spaceph ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sv01.bin", 0x0000, 0x0400, CRC(de84771d) SHA1(13a7e5eedb826cca4d59634d38db9fcf5e65b732) ) - ROM_LOAD( "sv02.bin", 0x0400, 0x0400, CRC(957fc661) SHA1(ac0edc901d8033619f62967f8eaf53a02947e109) ) - ROM_LOAD( "sv03.bin", 0x0800, 0x0400, CRC(dbda38b9) SHA1(73a277616a0c236b07c9ffa66f16a27a78c12d70) ) - ROM_LOAD( "sv04.bin", 0x0c00, 0x0400, CRC(f51544a5) SHA1(368411a2dadaebcbb4d5b6cf6c2beec036ce817f) ) - ROM_LOAD( "sv05.bin", 0x1000, 0x0400, CRC(98d02683) SHA1(f13958df8d385f532e993e4c34569d992904a4ed) ) - ROM_LOAD( "sv06.bin", 0x1400, 0x0400, CRC(4ec390fd) SHA1(ade23efde5d55d282fbb28a5f8a1346601501b79) ) - ROM_LOAD( "sv07.bin", 0x1800, 0x0400, CRC(170862fd) SHA1(ac64a97b1510ca81d4ef3a5fcf45b7e6c7414914) ) - ROM_LOAD( "sv08.bin", 0x1c00, 0x0400, CRC(511b12cf) SHA1(08ba43024c8574ded11aa457eca24b72984f5ea9) ) - ROM_LOAD( "sv09.bin", 0x4000, 0x0400, CRC(af1cd1af) SHA1(286d77e8556e475b291a3b1a53acaca8b7dc3678) ) - ROM_LOAD( "sv10.bin", 0x4400, 0x0400, CRC(31b7692e) SHA1(043880750d134d04311eab55e30ee223977d3d17) ) - ROM_LOAD( "sv11.bin", 0x4800, 0x0400, CRC(50257351) SHA1(5c3eb29f36f04b7fb8f0351ccf9c8cfc7587f927) ) - ROM_LOAD( "sv12.bin", 0x4c00, 0x0400, CRC(a2a3366a) SHA1(87032787450216d378406122effa95ea01145bf7) ) -ROM_END - -ROM_START( ballbomb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tn01", 0x0000, 0x0800, CRC(551585b5) SHA1(7c17b046bdfca6ab107b7e68ba9bde6ca590c3d4) ) - ROM_LOAD( "tn02", 0x0800, 0x0800, CRC(7e1f734f) SHA1(a15656818cd730d9bc98d00ff1e7fe3f860bd624) ) - ROM_LOAD( "tn03", 0x1000, 0x0800, CRC(d93e20bc) SHA1(2bf72f813750cef8fad572a18fb8e9fd5bf38804) ) - ROM_LOAD( "tn04", 0x1800, 0x0800, CRC(d0689a22) SHA1(1f6b258431b7eb878853ff979e4d97a05fb6b797) ) - ROM_LOAD( "tn05-1", 0x4000, 0x0800, CRC(5d5e94f1) SHA1(b9f8ba38161ef4f0940c274e9d93fed4bb7db017) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "tn06", 0x0000, 0x0400, CRC(7ec554c4) SHA1(b638605ba2043fdca4c5e18755fa5fa81ed3db07) ) - ROM_LOAD( "tn07", 0x0400, 0x0400, CRC(deb0ac82) SHA1(839581c4e58cb7b0c2c14cf4f239220017cc26eb) ) -ROM_END - -ROM_START( yosakdon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "yd1.bin", 0x0000, 0x0400, CRC(607899c9) SHA1(219c0c99894715818606fba49cc75517f6f43e0c) ) - ROM_LOAD( "yd2.bin", 0x0400, 0x0400, CRC(78336df4) SHA1(b0b6254568d191d2d0b9c9280a3ccf2417ef3f38) ) - ROM_LOAD( "yd3.bin", 0x0800, 0x0400, CRC(c5af6d52) SHA1(c40af79fe060562c64fc316881b7d0348e11ee3f) ) - ROM_LOAD( "yd4.bin", 0x0c00, 0x0400, CRC(dca8064f) SHA1(77a58137cc7f0b5fbe0e9e8deb9c5be88b1ebbcf) ) - ROM_LOAD( "yd5.bin", 0x1400, 0x0400, CRC(38804ff1) SHA1(9b7527b9d2b106355f0c8df46666b1e3f286b2e3) ) - ROM_LOAD( "yd6.bin", 0x1800, 0x0400, CRC(988d2362) SHA1(deaf864b4e287cbc2585c2a11343b1ae82e15463) ) - ROM_LOAD( "yd7.bin", 0x1c00, 0x0400, CRC(2744e68b) SHA1(5ad5a7a615d36f57b6d560425e035c15e25e9005) ) -ROM_END - -ROM_START( yosakdoa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "yosaku1", 0x0000, 0x0400, CRC(d132f4f0) SHA1(373c7ea1bd6debcb3dad5881793b8c31dc7a01e6) ) - ROM_LOAD( "yd2.bin", 0x0400, 0x0400, CRC(78336df4) SHA1(b0b6254568d191d2d0b9c9280a3ccf2417ef3f38) ) - ROM_LOAD( "yosaku3", 0x0800, 0x0400, CRC(b1a0b3eb) SHA1(4eb80668920b45dc6216424f8ca53d753a35f4f1) ) - ROM_LOAD( "yosaku4", 0x0c00, 0x0400, CRC(c06c225e) SHA1(2699e3c13b09b6de16bd3ca3ca2e9d7a91b7e268) ) - ROM_LOAD( "yosaku5", 0x1400, 0x0400, CRC(ae422a43) SHA1(5219680f9d6c5d984b29167f85106fa375856121) ) - ROM_LOAD( "yosaku6", 0x1800, 0x0400, CRC(26b24a12) SHA1(387589fa4027d41b6fb06555661d4f92fe2f990c) ) - ROM_LOAD( "yosaku7", 0x1c00, 0x0400, CRC(878d5a18) SHA1(6adc8763d5644602eed7fe6d9186a48be105aace) ) -ROM_END - -ROM_START( sstrangr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "hss-01.58", 0x0000, 0x0400, CRC(feec7600) SHA1(787a6be4e24ce931e7678e777699b9f6789bc199) ) - ROM_LOAD( "hss-02.59", 0x0400, 0x0400, CRC(7281ff0b) SHA1(56649d1362be1b9f517cb8616cbf9e4f955e9a2d) ) - ROM_LOAD( "hss-03.60", 0x0800, 0x0400, CRC(a09ec572) SHA1(9c4ad811a6c0460403f9cdc9fe5381c460249ff5) ) - ROM_LOAD( "hss-04.61", 0x0c00, 0x0400, CRC(ec411aca) SHA1(b72eb6f7c3d69e2829280d1ab982099f6eff0bde) ) - ROM_LOAD( "hss-05.62", 0x1000, 0x0400, CRC(7b1b81dd) SHA1(3fa6e244e203fb75f92b19db7b4b18645b3f66a3) ) - ROM_LOAD( "hss-06.63", 0x1400, 0x0400, CRC(de383625) SHA1(7ec0d7171e771c4b43e026f3f50a88d8ab2236bb) ) - ROM_LOAD( "hss-07.64", 0x1800, 0x0400, CRC(2e41d0f0) SHA1(bba720b0c5a7bd47abb8bc8498a989e17dc52428) ) - ROM_LOAD( "hss-08.65", 0x1c00, 0x0400, CRC(bd14d0b0) SHA1(9665f639afef9c1291f2efc054216ff44c595b45) ) -ROM_END - -ROM_START( sstrngr2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "4764.09", 0x0000, 0x2000, CRC(d88f86cc) SHA1(9f284ee50caf3c64bd04a79a798de620348881bc) ) - ROM_LOAD( "2708.10", 0x6000, 0x0400, CRC(eba304c1) SHA1(3fa6fbb29fa46c146283f69a712bfc51cbb2a43c) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "2708.15", 0x0000, 0x0400, CRC(c176a89d) SHA1(955dd540dc3787091c3f34ae122a13e6b7523414) ) -ROM_END - -ROM_START( indianbt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.36", 0x0000, 0x0800, CRC(ddc2b25d) SHA1(120ae17492b79d7d2ad515de9f1e3be7f8b9d4eb) ) - ROM_LOAD( "2.35", 0x0800, 0x0800, CRC(6499b062) SHA1(62a301d532b9fc4e7a17cbe8d2061eb0e842bdfa) ) - ROM_LOAD( "3.34", 0x1000, 0x0800, CRC(5c51675d) SHA1(1313e8794ee6cd0252452b96d42cff7907eeaa21) ) - ROM_LOAD( "4.33", 0x1800, 0x0800, CRC(70ebec95) SHA1(f6e1e7a28033d89e49b88c559ea8926b1b4ff21b) ) - ROM_LOAD( "5.32", 0x4000, 0x0800, CRC(7b4022f4) SHA1(10dec8110e8f4bc79764d3183bdfb3c135e27faf) ) - ROM_LOAD( "6.31", 0x4800, 0x0800, CRC(89bd6f73) SHA1(5dc63871252c530ef0aae4f4cd02fee44b397815) ) - ROM_LOAD( "7.42", 0x5000, 0x0800, CRC(7060ba0b) SHA1(366ce02b7b0a3391afef23b8b41cd98a91034830) ) - ROM_LOAD( "8.41", 0x5800, 0x0800, CRC(eaccfc0a) SHA1(c6c2d702243bdd1d2ad5fbaaceadb5a5798577bc) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color maps player 1/player 2 */ - ROM_LOAD( "mb7054.1", 0x0000, 0x0400, CRC(4acf4db3) SHA1(842a6c9f91806b424b7cc437670b4fe0bd57dff1) ) - ROM_LOAD( "mb7054.2", 0x0400, 0x0400, CRC(62cb3419) SHA1(3df65062945589f1df37359dbd3e30ae4b23f469) ) -ROM_END - -ROM_START( shuttlei ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1.13c", 0x0000, 0x0400, CRC(b6d4f0cd) SHA1(f855a793e78ff6283288c815b59e6942513ab4f8) ) - ROM_LOAD( "2.11c", 0x0400, 0x0400, CRC(168d6138) SHA1(e0e5ba58eb5a3a00802504c48a96d63522f9865f) ) - ROM_LOAD( "3.13d", 0x0800, 0x0400, CRC(804bd7fb) SHA1(f019bcc2894f9b819a14c069de8f1a7d228b79eb) ) - ROM_LOAD( "4.11d", 0x0c00, 0x0400, CRC(8205b369) SHA1(685dd244881f5762d0f53cbfa935da2b857e3fba) ) - ROM_LOAD( "5.13e", 0x1000, 0x0400, CRC(b50df820) SHA1(27a846ac3da4c0890a80f60483ed5750cb0b2476) ) - - ROM_LOAD( "8.11f", 0x1c00, 0x0400, CRC(4978552b) SHA1(5a6b6e39f57a353580ed9281d7da24950f058426) ) -ROM_END - -ROM_START( darthvdr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "rom0", 0x0000, 0x0400, CRC(b15785b6) SHA1(f453a006019dc83bd746f3a26736e913186332e6) ) - ROM_LOAD( "rom1", 0x0400, 0x0400, CRC(95947743) SHA1(59f414de21f680e0d68ca8c4b6b538c8006cfdd6) ) - ROM_LOAD( "rom2", 0x0800, 0x0400, CRC(19b1731f) SHA1(2383c241de8a1ed57f03ecc7ded97585a6c10c91) ) - ROM_LOAD( "rom3", 0x0c00, 0x0400, CRC(ca1b5e3c) SHA1(e54ca4a3f36b2ed5e4e42c1e8bbbde43c92796e9) ) - ROM_LOAD( "rom4", 0x1000, 0x0400, CRC(eede5f41) SHA1(cd9f023057eb9598bad01b9e9d91bb4866b9bd3b) ) - ROM_LOAD( "rom5", 0x1400, 0x0400, CRC(cc52a4bb) SHA1(857b75a8b01fc707db940197d6bf3b0466c4a7b5) ) -ROM_END - - - - -MACHINE_DRIVER_EXTERN(invaders); // Once removed, add back 'static' to driver in mw8080bw.c -extern const char layout_invaders[]; - -/* board # rom parent machine inp init (overlay/color hardware setup) */ - -/* Taito games */ - GAMEL(1978, sitv, invaders, invaders, sitv, 8080bw, ROT270, "Taito", "Space Invaders (TV Version)", 0, layout_invaders ) - GAME( 1979, sicv, invaders, invadpt2, sicv, invadpt2, ROT270, "Taito", "Space Invaders (CV Version)", 0 ) - GAME( 1978, sisv, invaders, invadpt2, sicv, invadpt2, ROT270, "Taito", "Space Invaders (SV Version)", 0 ) - GAME( 1978, sisv2, invaders, invadpt2, sicv, invadpt2, ROT270, "Taito", "Space Invaders (SV Version 2)", 0 ) - GAMEL(1979, galxwars, 0, invaders, galxwars, 8080bw, ROT270, "Universal", "Galaxy Wars (Universal set 1)", 0, layout_invaders ) - GAMEL(1979, galxwar2, galxwars, invaders, galxwars, 8080bw, ROT270, "Universal", "Galaxy Wars (Universal set 2)", 0, layout_invaders ) - GAMEL(1979, galxwart, galxwars, invaders, galxwars, 8080bw, ROT270, "Taito?", "Galaxy Wars (Taito?)" , 0, layout_invaders) /* Copyright Not Displayed */ - GAMEL(1979, starw, galxwars, invaders, galxwars, 8080bw, ROT270, "bootleg", "Star Wars", 0, layout_invaders ) - GAME( 1979, lrescue, 0, lrescue, lrescue, invadpt2, ROT270, "Taito", "Lunar Rescue", 0 ) - GAME( 1978, lrescuem, lrescue, lrescue, lrescue, invadpt2, ROT270, "Taito (Model Racing bootleg)", "Lunar Rescue (Model Racing bootleg)", 0 ) - GAME( 1979, grescue, lrescue, lrescue, lrescue, invadpt2, ROT270, "Taito (Universal license?)", "Galaxy Rescue", 0 ) - GAME( 1979, desterth, lrescue, lrescue, invrvnge, invadpt2, ROT270, "bootleg", "Destination Earth", 0 ) - GAME( 1979, invadpt2, 0, invadpt2, invadpt2, invadpt2, ROT270, "Taito", "Space Invaders Part II (Taito)", 0 ) - GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, invaddlx, ROT270, "Midway", "Space Invaders Deluxe", 0 ) - GAME( 1979, cosmo, 0, cosmo, cosmo, cosmo, ROT90, "TDS & Mints", "Cosmo", GAME_IMPERFECT_SOUND ) - GAME( 1979, schaser, 0, schaser, schaser, schaser, ROT270, "Taito", "Space Chaser", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) - GAME( 1979, schasrcv, schaser, schasrcv, schasrcv, schasrcv, ROT270, "Taito", "Space Chaser (CV version)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) - GAME( 1979, sflush, 0, sflush, sflush, rollingc, ROT270, "Taito", "Straight Flush",GAME_NO_SOUND| GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL) - GAME( 1980, lupin3, 0, lupin3, lupin3, lupin3, ROT270, "Taito", "Lupin III", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) - GAME( 1980, polaris, 0, polaris, polaris, polaris, ROT270, "Taito", "Polaris (set 1)", 0 ) - GAME( 1980, polarisa, polaris, polaris, polaris, polaris, ROT270, "Taito", "Polaris (set 2)", 0 ) - GAME( 1980, ballbomb, 0, ballbomb, ballbomb, invadpt2, ROT270, "Taito", "Balloon Bomber", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) /* missing clouds and blue background */ - GAME( 1980, indianbt, 0, indianbt, indianbt, indianbt, ROT270, "Taito", "Indian Battle", 0 ) - -/* Misc. manufacturers */ - - GAMEL(1980, searthin, invaders, invaders, earthinv, 8080bw, ROT270, "bootleg", "Super Earth Invasion (set 1)", 0, layout_invaders ) - GAMEL(1980, searthia, invaders, invaders, earthinv, 8080bw, ROT270, "bootleg", "Super Earth Invasion (set 2)", 0, layout_invaders ) - GAMEL(1978, invadrmr, invaders, invaders, invadrmr, 8080bw, ROT270, "Model Racing", "Space Invaders (Model Racing)", 0, layout_invaders ) - GAMEL(1978, spaceatt, invaders, invaders, sicv, 8080bw, ROT270, "Video Games GMBH", "Space Attack", 0, layout_invaders ) - GAMEL(1980, spaceat2, invaders, invaders, spaceatt, 8080bw, ROT270, "Zenitone-Microsec Ltd", "Space Attack II", 0, layout_invaders ) - GAMEL(19??, sinvzen, invaders, invaders, spaceatt, 8080bw, ROT270, "Zenitone-Microsec Ltd", "Super Invaders (Zenitone-Microsec)", 0, layout_invaders ) - GAMEL(19??, sinvemag, invaders, invaders, sinvemag, 8080bw, ROT270, "bootleg", "Super Invaders (EMAG)", 0, layout_invaders ) - GAMEL(19??, tst_invd, invaders, invaders, sicv, 8080bw, ROT0, "Test ROM", "Space Invaders Test ROM", 0, layout_invaders ) - GAMEL(19??, alieninv, invaders, invaders, earthinv, 8080bw, ROT270, "bootleg", "Alien Invasion Part II", 0, layout_invaders ) - GAMEL(1978, spceking, invaders, invaders, sicv, 8080bw, ROT270, "Leijac (Konami)","Space King", 0, layout_invaders ) - GAMEL(1978, spcewars, invaders, spcewars, spcewars, 8080bw, ROT270, "Sanritsu", "Space War (Sanritsu)", 0, layout_invaders ) - GAMEL(1978, spacewr3, invaders, spcewars, sicv, 8080bw, ROT270, "bootleg", "Space War Part 3", 0, layout_invaders ) - GAMEL(1978, invaderl, invaders, invaders, sicv, 8080bw, ROT270, "bootleg", "Space Invaders (Logitec)", 0, layout_invaders ) - GAMEL(1978, invader4, invaders, invaders, sicv, 8080bw, ROT270, "bootleg", "Space Invaders Part Four", 0, layout_invaders ) - GAMEL(1979, jspecter, invaders, invaders, jspecter, 8080bw, ROT270, "Jatre", "Jatre Specter (set 1)", 0, layout_invaders ) - GAMEL(1979, jspectr2, invaders, invaders, jspecter, 8080bw, ROT270, "Jatre", "Jatre Specter (set 2)", 0, layout_invaders ) - GAMEL(1979, cosmicmo, invaders, invaders, cosmicmo, 8080bw, ROT270, "Universal", "Cosmic Monsters", 0, layout_invaders ) - GAMEL(1979, cosmicm2, invaders, invaders, cosmicmo, 8080bw, ROT270, "Universal", "Cosmic Monsters 2", 0, layout_invaders ) - GAMEL(19??, superinv, invaders, invaders, superinv, 8080bw, ROT270, "bootleg", "Super Invaders", 0, layout_invaders ) - GAMEL(19??, invasion, invaders, invaders, invasion, 8080bw, ROT270, "Sidam", "Invasion", 0, layout_invaders ) - GAME( 1978, sstrangr, 0, sstrangr, sstrangr, 8080bw, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger", 0 ) - GAME( 1979, sstrngr2, 0, sstrngr2, sstrngr2, sstrngr2, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger 2", 0 ) - GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, invadpt2, ROT270, "Nichibutsu", "Moon Base", 0 ) - GAMEL(19??, invrvnge, 0, invrvnge, invrvnge, 8080bw, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge", GAME_IMPERFECT_SOUND, layout_invrvnge ) - GAMEL(19??, invrvnga, invrvnge, invrvnge, invrvnge, 8080bw, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford)", GAME_IMPERFECT_SOUND, layout_invrvnge ) - GAME( 1980, spclaser, 0, invaders, spclaser, invaddlx, ROT270, "GamePlan (Taito)", "Space Laser", 0 ) - GAME( 1980, laser, spclaser, invaders, spclaser, invaddlx, ROT270, "Leisure Time Electronics Inc.", "Astro Laser", 0 ) - GAME( 1979, spcewarl, spclaser, invaders, spcewarl, invaddlx, ROT270, "Leijac (Konami)","Space War (Leijac)", 0 ) - GAME( 1979, rollingc, 0, rollingc, rollingc, rollingc, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", 0 ) - GAME( 1979, ozmawars, 0, invaders, ozmawars, 8080bw, ROT270, "SNK", "Ozma Wars (set 1)", 0 ) - GAME( 1979, ozmawar2, ozmawars, invaders, ozmawars, 8080bw, ROT270, "SNK", "Ozma Wars (set 2)" , 0) /* Uses Taito's three board colour version of Space Invaders PCB */ - GAME( 1979, solfight, ozmawars, invaders, ozmawars, 8080bw, ROT270, "bootleg", "Solar Fight", 0 ) - GAME( 1979, spaceph, ozmawars, invaders, spaceph, 8080bw, ROT270, "Zilec Games", "Space Phantoms", 0 ) - GAME( 1979, yosakdon, 0, yosakdon, yosakdon, 8080bw, ROT270, "Wing", "Yosaku To Donbei (set 1)", GAME_IMPERFECT_SOUND ) /* bootleg? */ - GAME( 1979, yosakdoa, yosakdon, yosakdon, yosakdon, 8080bw, ROT270, "Wing", "Yosaku To Donbei (set 2)", GAME_IMPERFECT_SOUND ) /* bootleg? */ - GAME( 197?, shuttlei, 0, shuttlei, shuttlei, shuttlei, ROT270, "Omori", "Shuttle Invader", GAME_NO_COCKTAIL ) - GAME( 19??, darthvdr, invaders, darthvdr, darthvdr, 8080bw, ROT270, "bootleg", "Darth Vader", GAME_NO_SOUND ) diff --git a/src/drivers/88games.c b/src/drivers/88games.c deleted file mode 100644 index d904d23e0..000000000 --- a/src/drivers/88games.c +++ /dev/null @@ -1,563 +0,0 @@ -/*************************************************************************** - -88 Games (c) 1988 Konami - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/upd7759.h" - - -static MACHINE_RESET( 88games ); -static void k88games_banking( int lines ); - -static unsigned char *ram; -static UINT8 *banked_rom; -static UINT8 *paletteram_1000; -static int videobank; - -extern int k88games_priority; -VIDEO_START( 88games ); -VIDEO_UPDATE( 88games ); - - -static INTERRUPT_GEN( k88games_interrupt ) -{ - if (K052109_is_IRQ_enabled()) - irq0_line_hold(); -} - -static int zoomreadroms; - -static READ8_HANDLER( bankedram_r ) -{ - if (videobank) return ram[offset]; - else - { - if (zoomreadroms) - return K051316_rom_0_r(offset); - else - return K051316_0_r(offset); - } -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (videobank) ram[offset] = data; - else K051316_0_w(offset,data); -} - -static WRITE8_HANDLER( k88games_5f84_w ) -{ - /* bits 0/1 coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 2 enables ROM reading from the 051316 */ - /* also 5fce == 2 read roms, == 3 read ram */ - zoomreadroms = data & 0x04; - - if (data & 0xf8) - popmessage("5f84 = %02x",data); -} - -static WRITE8_HANDLER( k88games_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1, 0, HOLD_LINE, 0xff); -} - -/* handle fake button for speed cheat for players 1 and 2 */ -static READ8_HANDLER( cheat1_r ) -{ - int res; - static int cheat = 0; - static int bits[] = { 0xee, 0xff, 0xbb, 0xaa }; - - res = readinputportbytag("IN1"); - - if ((readinputportbytag("IN0") & 0x08) == 0) - { - res |= 0x55; - res &= bits[cheat]; - cheat = (cheat+1)%4; - } - return res; -} - -/* handle fake button for speed cheat for players 3 and 4 */ -static READ8_HANDLER( cheat2_r ) -{ - int res; - static int cheat = 0; - static int bits[] = { 0xee, 0xff, 0xbb, 0xaa }; - - res = readinputportbytag("IN2"); - - if ((readinputportbytag("IN0") & 0x08) == 0) - { - res |= 0x55; - res &= bits[cheat]; - cheat = (cheat+1)%4; - } - return res; -} - -static int speech_chip; -static WRITE8_HANDLER( speech_control_w ) -{ - speech_chip = ( data & 4 ) ? 1 : 0; - upd7759_reset_w( speech_chip, data & 2 ); - upd7759_start_w( speech_chip, data & 1 ); -} - -static WRITE8_HANDLER( speech_msg_w ) -{ - upd7759_port_w( speech_chip, data ); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) AM_BASE(&banked_rom) /* banked ROM + palette RAM */ - AM_RANGE(0x2000, 0x37ff) AM_READ(MRA8_RAM) - AM_RANGE(0x3800, 0x3fff) AM_READ(bankedram_r) - AM_RANGE(0x5f94, 0x5f94) AM_READ(input_port_0_r) -// AM_RANGE(0x5f95, 0x5f95) AM_READ(input_port_1_r) -// AM_RANGE(0x5f96, 0x5f96) AM_READ(input_port_2_r) - AM_RANGE(0x5f95, 0x5f95) AM_READ(cheat1_r) /* P1 and P2 IO and handle fake button for cheating */ - AM_RANGE(0x5f96, 0x5f96) AM_READ(cheat2_r) /* P3 and P4 IO and handle fake button for cheating */ - AM_RANGE(0x5f97, 0x5f97) AM_READ(input_port_3_r) - AM_RANGE(0x5f9b, 0x5f9b) AM_READ(input_port_4_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_051960_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_RAM) /* banked ROM */ - AM_RANGE(0x1000, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram_1000) /* banked ROM + palette RAM */ - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x3000, 0x37ff) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x3800, 0x3fff) AM_WRITE(bankedram_w) AM_BASE(&ram) - AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w) - AM_RANGE(0x5f88, 0x5f88) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(soundlatch_w) - AM_RANGE(0x5f90, 0x5f90) AM_WRITE(k88games_sh_irqtrigger_w) - AM_RANGE(0x5fc0, 0x5fcf) AM_WRITE(K051316_ctrl_0_w) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(speech_msg_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xe000, 0xe000) AM_WRITE(speech_control_w) -ADDRESS_MAP_END - - - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( 88games ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) -// PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - /* Fake button to press buttons 1 and 3 impossibly fast. Handle via cheat?_r */ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Run Like Hell (Cheat)") PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "World Records" ) PORT_DIPLOCATION("SW3:2") - PORT_DIPSETTING( 0x20, "Don't Erase" ) - PORT_DIPSETTING( 0x00, "Erase on Reset" ) - PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4") // Listed in the manual as "continue" - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:2,3") - PORT_DIPSETTING( 0x06, DEF_STR( Cocktail ) ) - PORT_DIPSETTING( 0x04, "Cocktail (A)" ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Upright (D)" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static struct upd7759_interface upd7759_interface_1 = -{ - REGION_SOUND1 /* memory region */ -}; - -static struct upd7759_interface upd7759_interface_2 = -{ - REGION_SOUND2 /* memory region */ -}; - - - -static MACHINE_DRIVER_START( 88games ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(k88games_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(88games) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(88games) - MDRV_VIDEO_UPDATE(88games) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "mono", 0.75) - MDRV_SOUND_ROUTE(1, "mono", 0.75) - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( 88games ) - ROM_REGION( 0x21000, REGION_CPU1, 0 ) /* code + banked roms + space for banked ram */ - ROM_LOAD( "861m01.k18", 0x08000, 0x08000, CRC(4a4e2959) SHA1(95572686bef48b5c1ce1dedf0afc891d92aff00d) ) - ROM_LOAD( "861m02.k16", 0x10000, 0x10000, CRC(e19f15f6) SHA1(6c801b274e87eaff7f40148381ade5b38120cc12) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "861d01.d9", 0x00000, 0x08000, CRC(0ff1dec0) SHA1(749dc98f8740beee1383f85effc9336081315f4b) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a08.a", 0x000000, 0x10000, CRC(77a00dd6) SHA1(e3667839f8ae3699236da3e312c20d571db38670) ) /* characters */ - ROM_LOAD16_BYTE( "861a08.c", 0x000001, 0x10000, CRC(b422edfc) SHA1(b3842c8dc60975cc71812df098f29b4571b18120) ) - ROM_LOAD16_BYTE( "861a08.b", 0x020000, 0x10000, CRC(28a8304f) SHA1(6b4037eff6d209fec29d05f1071ed3bf9c2bd098) ) - ROM_LOAD16_BYTE( "861a08.d", 0x020001, 0x10000, CRC(e01a3802) SHA1(3fb5fe512c2497160a66e9de0cd45c38dfe46410) ) - ROM_LOAD16_BYTE( "861a09.a", 0x040000, 0x10000, CRC(df8917b6) SHA1(3614b78c2100f135ea0701409ce279a423decb23) ) - ROM_LOAD16_BYTE( "861a09.c", 0x040001, 0x10000, CRC(f577b88f) SHA1(7d5d88e1492ed361dc7b2135595393b89b9cb5b1) ) - ROM_LOAD16_BYTE( "861a09.b", 0x060000, 0x10000, CRC(4917158d) SHA1(b53da3f29c9aeb59933dc3a8214cc1314e21000b) ) - ROM_LOAD16_BYTE( "861a09.d", 0x060001, 0x10000, CRC(2bb3282c) SHA1(6ca54948a02c91543b7e595641b0edc2564f83ff) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a05.a", 0x000000, 0x10000, CRC(cedc19d0) SHA1(6eb2a292d574dee06e214e61c0e08fa233ac68e8) ) /* sprites */ - ROM_LOAD16_BYTE( "861a05.e", 0x000001, 0x10000, CRC(725af3fc) SHA1(98ac364db4b2c5682a299f4d2a288ebc8a303b1f) ) - ROM_LOAD16_BYTE( "861a05.b", 0x020000, 0x10000, CRC(db2a8808) SHA1(dad6b127761889aac198014139cc524a4cea32e7) ) - ROM_LOAD16_BYTE( "861a05.f", 0x020001, 0x10000, CRC(32d830ca) SHA1(a3f10720151f538cf1bec5953a4212bc96ba42fe) ) - ROM_LOAD16_BYTE( "861a05.c", 0x040000, 0x10000, CRC(cf03c449) SHA1(234714212dd7288a5128d36c96cca5b62e86d37d) ) - ROM_LOAD16_BYTE( "861a05.g", 0x040001, 0x10000, CRC(fd51c4ea) SHA1(fc8923819fa7f3d02b4d159aea45cb5d1a80f1b0) ) - ROM_LOAD16_BYTE( "861a05.d", 0x060000, 0x10000, CRC(97d78c77) SHA1(2c123fd08cb9626cf309e7320fe2eb99e4b483fb) ) - ROM_LOAD16_BYTE( "861a05.h", 0x060001, 0x10000, CRC(60d0c8a5) SHA1(c7d3531eb65abd51ae4e6f55244d674353d23d36) ) - ROM_LOAD16_BYTE( "861a06.a", 0x080000, 0x10000, CRC(85e2e30e) SHA1(11010727db8c71650c5b9df5340f9bc412435d11) ) - ROM_LOAD16_BYTE( "861a06.e", 0x080001, 0x10000, CRC(6f96651c) SHA1(c740a814a3e203348b269a70256e01fe2a914118) ) - ROM_LOAD16_BYTE( "861a06.b", 0x0a0000, 0x10000, CRC(ce17eaf0) SHA1(cc121c5742428e2613b7da2d8357f15e897161ca) ) - ROM_LOAD16_BYTE( "861a06.f", 0x0a0001, 0x10000, CRC(88310bf3) SHA1(77bac66489e7fc2ddd714fc684e79d70b089ee84) ) - ROM_LOAD16_BYTE( "861a06.c", 0x0c0000, 0x10000, CRC(a568b34e) SHA1(8b69a0ac90f32cea31f8c7fcd985ad58fb6c009e) ) - ROM_LOAD16_BYTE( "861a06.g", 0x0c0001, 0x10000, CRC(4a55beb3) SHA1(35088bf7f6acd2bc95f673a2816b35238d611308) ) - ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) ) - ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) ) - - ROM_REGION( 0x040000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */ - ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) ) - ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) ) - ROM_LOAD( "861a04.d", 0x030000, 0x10000, CRC(d208304c) SHA1(77dd31163c8431416ab0593f084719c914222912) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "861.g3", 0x0000, 0x0100, CRC(429785db) SHA1(d27e8e180f19d2b160f18c79520a77182a62218c) ) /* priority encoder (not used) */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples for UPD7759 #0 */ - ROM_LOAD( "861a07.a", 0x000000, 0x10000, CRC(5d035d69) SHA1(9df63e004a4f52768331dfb3c3889301ac174ea1) ) - ROM_LOAD( "861a07.b", 0x010000, 0x10000, CRC(6337dd91) SHA1(74ba58f1664abd1491598c1a9467f470304fa430) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples for UPD7759 #1 */ - ROM_LOAD( "861a07.c", 0x000000, 0x10000, CRC(5067a38b) SHA1(b5a8f7122356dd72a97e71b480835ba500116aaf) ) - ROM_LOAD( "861a07.d", 0x010000, 0x10000, CRC(86731451) SHA1(c1410f6c7a23aa0c213878a6531d3e7eb966b0a4) ) -ROM_END - -ROM_START( konami88 ) - ROM_REGION( 0x21000, REGION_CPU1, 0 ) /* code + banked roms + space for banked ram */ - ROM_LOAD( "861.e03", 0x08000, 0x08000, CRC(55979bd9) SHA1(d683cc514e2b41fc4033d5dc107ca22ba8981ada) ) - ROM_LOAD( "861.e02", 0x10000, 0x10000, CRC(5b7e98a6) SHA1(39b6e93221d14a4695c79fb39c4eea54ec5ffb0c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "861d01.d9", 0x00000, 0x08000, CRC(0ff1dec0) SHA1(749dc98f8740beee1383f85effc9336081315f4b) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a08.a", 0x000000, 0x10000, CRC(77a00dd6) SHA1(e3667839f8ae3699236da3e312c20d571db38670) ) /* characters */ - ROM_LOAD16_BYTE( "861a08.c", 0x000001, 0x10000, CRC(b422edfc) SHA1(b3842c8dc60975cc71812df098f29b4571b18120) ) - ROM_LOAD16_BYTE( "861a08.b", 0x020000, 0x10000, CRC(28a8304f) SHA1(6b4037eff6d209fec29d05f1071ed3bf9c2bd098) ) - ROM_LOAD16_BYTE( "861a08.d", 0x020001, 0x10000, CRC(e01a3802) SHA1(3fb5fe512c2497160a66e9de0cd45c38dfe46410) ) - ROM_LOAD16_BYTE( "861a09.a", 0x040000, 0x10000, CRC(df8917b6) SHA1(3614b78c2100f135ea0701409ce279a423decb23) ) - ROM_LOAD16_BYTE( "861a09.c", 0x040001, 0x10000, CRC(f577b88f) SHA1(7d5d88e1492ed361dc7b2135595393b89b9cb5b1) ) - ROM_LOAD16_BYTE( "861a09.b", 0x060000, 0x10000, CRC(4917158d) SHA1(b53da3f29c9aeb59933dc3a8214cc1314e21000b) ) - ROM_LOAD16_BYTE( "861a09.d", 0x060001, 0x10000, CRC(2bb3282c) SHA1(6ca54948a02c91543b7e595641b0edc2564f83ff) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a05.a", 0x000000, 0x10000, CRC(cedc19d0) SHA1(6eb2a292d574dee06e214e61c0e08fa233ac68e8) ) /* sprites */ - ROM_LOAD16_BYTE( "861a05.e", 0x000001, 0x10000, CRC(725af3fc) SHA1(98ac364db4b2c5682a299f4d2a288ebc8a303b1f) ) - ROM_LOAD16_BYTE( "861a05.b", 0x020000, 0x10000, CRC(db2a8808) SHA1(dad6b127761889aac198014139cc524a4cea32e7) ) - ROM_LOAD16_BYTE( "861a05.f", 0x020001, 0x10000, CRC(32d830ca) SHA1(a3f10720151f538cf1bec5953a4212bc96ba42fe) ) - ROM_LOAD16_BYTE( "861a05.c", 0x040000, 0x10000, CRC(cf03c449) SHA1(234714212dd7288a5128d36c96cca5b62e86d37d) ) - ROM_LOAD16_BYTE( "861a05.g", 0x040001, 0x10000, CRC(fd51c4ea) SHA1(fc8923819fa7f3d02b4d159aea45cb5d1a80f1b0) ) - ROM_LOAD16_BYTE( "861a05.d", 0x060000, 0x10000, CRC(97d78c77) SHA1(2c123fd08cb9626cf309e7320fe2eb99e4b483fb) ) - ROM_LOAD16_BYTE( "861a05.h", 0x060001, 0x10000, CRC(60d0c8a5) SHA1(c7d3531eb65abd51ae4e6f55244d674353d23d36) ) - ROM_LOAD16_BYTE( "861a06.a", 0x080000, 0x10000, CRC(85e2e30e) SHA1(11010727db8c71650c5b9df5340f9bc412435d11) ) - ROM_LOAD16_BYTE( "861a06.e", 0x080001, 0x10000, CRC(6f96651c) SHA1(c740a814a3e203348b269a70256e01fe2a914118) ) - ROM_LOAD16_BYTE( "861a06.b", 0x0a0000, 0x10000, CRC(ce17eaf0) SHA1(cc121c5742428e2613b7da2d8357f15e897161ca) ) - ROM_LOAD16_BYTE( "861a06.f", 0x0a0001, 0x10000, CRC(88310bf3) SHA1(77bac66489e7fc2ddd714fc684e79d70b089ee84) ) - ROM_LOAD16_BYTE( "861a06.c", 0x0c0000, 0x10000, CRC(a568b34e) SHA1(8b69a0ac90f32cea31f8c7fcd985ad58fb6c009e) ) - ROM_LOAD16_BYTE( "861a06.g", 0x0c0001, 0x10000, CRC(4a55beb3) SHA1(35088bf7f6acd2bc95f673a2816b35238d611308) ) - ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) ) - ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) ) - - ROM_REGION( 0x040000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */ - ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) ) - ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) ) - ROM_LOAD( "861a04.d", 0x030000, 0x10000, CRC(d208304c) SHA1(77dd31163c8431416ab0593f084719c914222912) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "861.g3", 0x0000, 0x0100, CRC(429785db) SHA1(d27e8e180f19d2b160f18c79520a77182a62218c) ) /* priority encoder (not used) */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples for UPD7759 #0 */ - ROM_LOAD( "861a07.a", 0x000000, 0x10000, CRC(5d035d69) SHA1(9df63e004a4f52768331dfb3c3889301ac174ea1) ) - ROM_LOAD( "861a07.b", 0x010000, 0x10000, CRC(6337dd91) SHA1(74ba58f1664abd1491598c1a9467f470304fa430) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples for UPD7759 #1 */ - ROM_LOAD( "861a07.c", 0x000000, 0x10000, CRC(5067a38b) SHA1(b5a8f7122356dd72a97e71b480835ba500116aaf) ) - ROM_LOAD( "861a07.d", 0x010000, 0x10000, CRC(86731451) SHA1(c1410f6c7a23aa0c213878a6531d3e7eb966b0a4) ) -ROM_END - -ROM_START( hypsptsp ) - ROM_REGION( 0x21000, REGION_CPU1, 0 ) /* code + banked roms + space for banked ram */ - ROM_LOAD( "861f03.k18", 0x08000, 0x08000, CRC(8c61aebd) SHA1(de720acfe07fd70fe467f9c73122e0fbeab2b8c8) ) - ROM_LOAD( "861f02.k16", 0x10000, 0x10000, CRC(d2460c28) SHA1(936220aa3983ffa2330843f683347768772561af) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "861d01.d9", 0x00000, 0x08000, CRC(0ff1dec0) SHA1(749dc98f8740beee1383f85effc9336081315f4b) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a08.a", 0x000000, 0x10000, CRC(77a00dd6) SHA1(e3667839f8ae3699236da3e312c20d571db38670) ) /* characters */ - ROM_LOAD16_BYTE( "861a08.c", 0x000001, 0x10000, CRC(b422edfc) SHA1(b3842c8dc60975cc71812df098f29b4571b18120) ) - ROM_LOAD16_BYTE( "861a08.b", 0x020000, 0x10000, CRC(28a8304f) SHA1(6b4037eff6d209fec29d05f1071ed3bf9c2bd098) ) - ROM_LOAD16_BYTE( "861a08.d", 0x020001, 0x10000, CRC(e01a3802) SHA1(3fb5fe512c2497160a66e9de0cd45c38dfe46410) ) - ROM_LOAD16_BYTE( "861a09.a", 0x040000, 0x10000, CRC(df8917b6) SHA1(3614b78c2100f135ea0701409ce279a423decb23) ) - ROM_LOAD16_BYTE( "861a09.c", 0x040001, 0x10000, CRC(f577b88f) SHA1(7d5d88e1492ed361dc7b2135595393b89b9cb5b1) ) - ROM_LOAD16_BYTE( "861a09.b", 0x060000, 0x10000, CRC(4917158d) SHA1(b53da3f29c9aeb59933dc3a8214cc1314e21000b) ) - ROM_LOAD16_BYTE( "861a09.d", 0x060001, 0x10000, CRC(2bb3282c) SHA1(6ca54948a02c91543b7e595641b0edc2564f83ff) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "861a05.a", 0x000000, 0x10000, CRC(cedc19d0) SHA1(6eb2a292d574dee06e214e61c0e08fa233ac68e8) ) /* sprites */ - ROM_LOAD16_BYTE( "861a05.e", 0x000001, 0x10000, CRC(725af3fc) SHA1(98ac364db4b2c5682a299f4d2a288ebc8a303b1f) ) - ROM_LOAD16_BYTE( "861a05.b", 0x020000, 0x10000, CRC(db2a8808) SHA1(dad6b127761889aac198014139cc524a4cea32e7) ) - ROM_LOAD16_BYTE( "861a05.f", 0x020001, 0x10000, CRC(32d830ca) SHA1(a3f10720151f538cf1bec5953a4212bc96ba42fe) ) - ROM_LOAD16_BYTE( "861a05.c", 0x040000, 0x10000, CRC(cf03c449) SHA1(234714212dd7288a5128d36c96cca5b62e86d37d) ) - ROM_LOAD16_BYTE( "861a05.g", 0x040001, 0x10000, CRC(fd51c4ea) SHA1(fc8923819fa7f3d02b4d159aea45cb5d1a80f1b0) ) - ROM_LOAD16_BYTE( "861a05.d", 0x060000, 0x10000, CRC(97d78c77) SHA1(2c123fd08cb9626cf309e7320fe2eb99e4b483fb) ) - ROM_LOAD16_BYTE( "861a05.h", 0x060001, 0x10000, CRC(60d0c8a5) SHA1(c7d3531eb65abd51ae4e6f55244d674353d23d36) ) - ROM_LOAD16_BYTE( "861a06.a", 0x080000, 0x10000, CRC(85e2e30e) SHA1(11010727db8c71650c5b9df5340f9bc412435d11) ) - ROM_LOAD16_BYTE( "861a06.e", 0x080001, 0x10000, CRC(6f96651c) SHA1(c740a814a3e203348b269a70256e01fe2a914118) ) - ROM_LOAD16_BYTE( "861a06.b", 0x0a0000, 0x10000, CRC(ce17eaf0) SHA1(cc121c5742428e2613b7da2d8357f15e897161ca) ) - ROM_LOAD16_BYTE( "861a06.f", 0x0a0001, 0x10000, CRC(88310bf3) SHA1(77bac66489e7fc2ddd714fc684e79d70b089ee84) ) - ROM_LOAD16_BYTE( "861a06.c", 0x0c0000, 0x10000, CRC(a568b34e) SHA1(8b69a0ac90f32cea31f8c7fcd985ad58fb6c009e) ) - ROM_LOAD16_BYTE( "861a06.g", 0x0c0001, 0x10000, CRC(4a55beb3) SHA1(35088bf7f6acd2bc95f673a2816b35238d611308) ) - ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) ) - ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) ) - - ROM_REGION( 0x040000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */ - ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) ) - ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) ) - ROM_LOAD( "861a04.d", 0x030000, 0x10000, CRC(d208304c) SHA1(77dd31163c8431416ab0593f084719c914222912) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "861.g3", 0x0000, 0x0100, CRC(429785db) SHA1(d27e8e180f19d2b160f18c79520a77182a62218c) ) /* priority encoder (not used) */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples for UPD7759 #0 */ - ROM_LOAD( "861a07.a", 0x000000, 0x10000, CRC(5d035d69) SHA1(9df63e004a4f52768331dfb3c3889301ac174ea1) ) - ROM_LOAD( "861a07.b", 0x010000, 0x10000, CRC(6337dd91) SHA1(74ba58f1664abd1491598c1a9467f470304fa430) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples for UPD7759 #1 */ - ROM_LOAD( "861a07.c", 0x000000, 0x10000, CRC(5067a38b) SHA1(b5a8f7122356dd72a97e71b480835ba500116aaf) ) - ROM_LOAD( "861a07.d", 0x010000, 0x10000, CRC(86731451) SHA1(c1410f6c7a23aa0c213878a6531d3e7eb966b0a4) ) -ROM_END - - - -static void k88games_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs; - -logerror("%04x: bank select %02x\n",activecpu_get_pc(),lines); - - /* bits 0-2 select ROM bank for 0000-1fff */ - /* bit 3: when 1, palette RAM at 1000-1fff */ - /* bit 4: when 0, 051316 RAM at 3800-3fff; when 1, work RAM at 2000-3fff (NVRAM 3370-37ff) */ - offs = 0x10000 + (lines & 0x07) * 0x2000; - memcpy(banked_rom,&RAM[offs],0x1000); - if (lines & 0x08) - { - if (paletteram != paletteram_1000) - { - memcpy(paletteram_1000,paletteram,0x1000); - paletteram = paletteram_1000; - } - } - else - { - if (paletteram != &RAM[0x20000]) - { - memcpy(&RAM[0x20000],paletteram,0x1000); - paletteram = &RAM[0x20000]; - } - memcpy(paletteram_1000,&RAM[offs+0x1000],0x1000); - } - videobank = lines & 0x10; - - /* bit 5 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((lines & 0x20) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 6 is unknown, 1 most of the time */ - - /* bit 7 controls layer priority */ - k88games_priority = lines & 0x80; -} - -static MACHINE_RESET( 88games ) -{ - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)k88games_banking); - paletteram = &memory_region(REGION_CPU1)[0x20000]; -} - - - -static DRIVER_INIT( 88games ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1988, 88games, 0, 88games, 88games, 88games, ROT0, "Konami", "'88 Games", 0 ) -GAME( 1988, konami88, 88games, 88games, 88games, 88games, ROT0, "Konami", "Konami '88", 0 ) -GAME( 1988, hypsptsp, 88games, 88games, 88games, 88games, ROT0, "Konami", "Hyper Sports Special (Japan)", 0 ) diff --git a/src/drivers/airbustr.c b/src/drivers/airbustr.c deleted file mode 100644 index 18ebcbc5b..000000000 --- a/src/drivers/airbustr.c +++ /dev/null @@ -1,770 +0,0 @@ -/*************************************************************************** - - Air Buster - (C) 1990 Kaneko - - driver by Luca Elia (l.elia@tin.it) - -CPU : Z-80 x 3 -SOUND : YM2203C M6295 -OSC. : 12.000MHz 16.000MHz - - Interesting routines (main cpu) - ------------------------------- - -fd-fe address of int: 0x38 (must alternate? see e600/1) -ff-100 address of int: 0x16 -66 print "sub cpu caused nmi" and die! - -7 after tests - -1497 print string following call: (char)*,0. program continues after 0. - base addr = c300 + HL & 08ff, DE=xy , BC=dxdy - +0<-(e61b) +100<-D +200<-E +300<-char +400<-(e61c) - -1642 A<- buttons status (bits 0&1) - - Interesting locations (main cpu) - -------------------------------- - -2907 table of routines (f150 index = 1-3f, copied to e612) - e60e<-address of routine, f150<-0. e60e is used until f150!=0 - - 1: 2bf4 service mode next - - 2: 2d33 3: 16bd 4: 2dcb 5: 2fcf - 6: 3262 7: 32b8 - - 8: 335d> print gfx/color test page next - 9: 33c0> handle the above page - - a: 29c6 b: 2a24 c: 16ce - - d: 3e7e> * - e: 3ec5> print "Sub Cpu / Ram Error"; ** - f: 3e17> print "Coin error"; ** - 10: 3528> print (c) notice, not shown next - 11: 3730> show (c) notice, wait 0x100 calls next - - 12: 9658 13: 97c3 14: a9fa 15: aa6e - 16-19: 2985 1a: 9c2e 1b: 9ffa 1c: 29c6 - - 1d: 2988> * - - 1e: a2c4 1f: a31a 20: a32f 21: a344 - 22: a359 23: a36e 24: a383 25: a398 - 26: a3ad 27: a3c2 28: a3d7 29: a3f1 - 2a: a40e 2b: a4e5 2c: a69d 2d: adb8 - 2e: ade9 2f: 2b8b 30: a823 - - 31: 3d17> print "warm up, wait few mins. secs left: 00" next - 32: 3dc0> pause (e624 counter).e626 next - - 33: 96b4 34: 97ad - - 35-3f: 3e7e> * - -* Print "Command Error [$xx]" where xx is last routine index (e612) -** ld (0000h),A (??) ; loop - -3cd7 hiscores table (0x40 bytes, copied to e160) - Try entering TERU as your name :) - -7fff country code: 0 <-> Japan; else World - -e615 rank: 0-easy 1-normal 2-hard 3-hardest -e624 sound code during sound test - --- Shared RAM -- - -f148<- sound code (copied from e624) -f14a-> read on nmi routine. main cpu writes the value and writes to port 02 -f150<- index of table of routines at 2907 - ----------------- - - - - - - Interesting routines (sub cpu) - ------------------------------- - -491 copy palette data d000<-f200(a0) d200<-f300(a0) d400<-f400(200) - -61c f150<-A f151<-A (routine index of main cpu!) - if dsw1-2 active, it does nothing (?!) - -c8c c000-c7ff<-0 c800-cfff<-0 f600<-f200(400) -1750 copies 10 lines of 20 bytes from 289e to f800 - -22cd copy 0x100 bytes -22cf copy 0x0FF bytes -238d copy 0x0A0 bytes - - Interesting locations (sub cpu) - -------------------------------- - -fd-fe address of int: 0x36e (same as 38) -ff-100 address of int: 0x4b0 - --- Shared RAM -- - -f000 credits - -f001/d<-IN 24 (Service) -f00e<- bank -f002<- dsw1 (cpl'd) -f003<- dsw2 (cpl'd) -f004<- IN 20 (cpl'd) (player 1) -f005<- IN 22 (cpl'd) (player 2) -f006<- start lives: dsw-2 & 0x30 index; values: 3,4,5,7 (5da table) -f007 current lives p1 -f008 current lives p2 - -f009<- coin/credit 1: dsw-1 & 0x30 index; values: 11,12,21,23 (5de table) -f00a<- coin 1 -f00b<- coin/credit 2: dsw-1 & 0xc0 index; values: 11,12,21,23 (5e2 table) -f00c<- coin 2 - -f00f ?? outa (28h) -f010 written by sub cpu, bit 4 read by main cpu. - bit 0 p1 playing - bit 1 p2 playing - -f014 index (1-f) of routine called during int 36e (table at c3f) - 1: 62b 2: 66a 3: 6ad 4: 79f - 5: 7e0 6: 81b 7: 8a7 8: 8e9 - 9: b02 a: 0 b: 0 c: bfc - d: c0d e: a6f f: ac3 - -f015 index of the routine to call, usually the one selected by f014 - but sometimes written directly. - -Scroll registers: ports 04/06/08/0a/0c, written in sequence (101f) -port 06 <- f100 + f140 x port 04 <- f104 + f142 y -port 0a <- f120 + f140 x port 08 <- f124 + f142 y -port 0c <- f14c = bit 0/1/2/3 = port 6/4/a/8 val < FF - -f148-> sound code (from main cpu) -f14c scroll regs high bits - ----------------- - - - - - - - - - Interesting routines (sound cpu) - ------------------------------- - -50a 6295 -521 6295 -a96 2203 reg<-B val<-A - - Interesting locations (sound cpu) - --------------------------------- - -c715 -c716 pending sound command -c760 rom bank - - - To Do - ----- - -- Is the sub cpu / sound cpu communication status port (0e) correct ? -- Main cpu: port 01 ? -- Sub cpu: port 0x38 ? Plus it can probably cause a nmi to main cpu -- incomplete DSW's -- Spriteram low 0x300 bytes (priority?) - -*/ - -/* -** -** Main cpu data -** -*/ - -/* Runs in IM 2 fd-fe address of int: 0x38 - ff-100 address of int: 0x16 */ - -/* -** -** Sub cpu data -** -** -*/ - -/* Runs in IM 2 fd-fe address of int: 0x36e (same as 0x38) - ff-100 address of int: 0x4b0 (only writes to port 38h) */ -/* - Sub cpu and Sound cpu communicate bidirectionally: - - Sub cpu writes to soundlatch, reads from soundlatch2 - Sound cpu writes to soundlatch2, reads from soundlatch - - Each latch raises a flag when it's been written. - The flag is cleared when the latch is read. - -Code at 505: waits for bit 1 to go low, writes command, waits for bit -0 to go low, reads back value. Code at 3b2 waits bit 2 to go high -(called during int fd) - -*/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/2203intf.h" -#include "sound/okim6295.h" - -static UINT8 *devram; -static int soundlatch_status, soundlatch2_status; - -extern UINT8 *airbustr_videoram2, *airbustr_colorram2; -extern int airbustr_clear_sprites; - -extern WRITE8_HANDLER( airbustr_videoram_w ); -extern WRITE8_HANDLER( airbustr_colorram_w ); -extern WRITE8_HANDLER( airbustr_videoram2_w ); -extern WRITE8_HANDLER( airbustr_colorram2_w ); -extern WRITE8_HANDLER( airbustr_scrollregs_w ); -extern VIDEO_START( airbustr ); -extern VIDEO_UPDATE( airbustr ); - -/* Read/Write Handlers */ - -static READ8_HANDLER( devram_r ) -{ - // There's an MCU here, possibly - - switch (offset) - { - /* Reading efe0 probably resets a watchdog mechanism - that would reset the main cpu. We avoid this and patch - the rom instead (main cpu has to be reset once at startup) */ - case 0xfe0: - return watchdog_reset_r(0); - - /* Reading a word at eff2 probably yelds the product - of the words written to eff0 and eff2 */ - case 0xff2: - case 0xff3: - { - int x = (devram[0xff0] + devram[0xff1] * 256) * - (devram[0xff2] + devram[0xff3] * 256); - if (offset == 0xff2) return (x & 0x00FF) >> 0; - else return (x & 0xFF00) >> 8; - } break; - - /* Reading eff4, F0 times must yield at most 80-1 consecutive - equal values */ - case 0xff4: - return rand(); - - default: - return devram[offset]; - } -} - -static WRITE8_HANDLER( master_nmi_trigger_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static void airbustr_bankswitch(int cpunum, int data) -{ - UINT8 *ROM = memory_region(REGION_CPU1 + cpunum); - - if ((data & 0x07) < 3) - ROM = &ROM[0x4000 * (data & 0x07)]; - else - ROM = &ROM[0x10000 + 0x4000 * ((data & 0x07) - 3)]; - - memory_set_bankptr(cpunum + 1, ROM); -} - -static WRITE8_HANDLER( master_bankswitch_w ) -{ - airbustr_bankswitch(0, data); -} - -static WRITE8_HANDLER( slave_bankswitch_w ) -{ - airbustr_bankswitch(1, data); - - flip_screen_set(data & 0x10); - - airbustr_clear_sprites = data & 0x20; -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - airbustr_bankswitch(2, data); -} - -static READ8_HANDLER( soundcommand_status_r ) -{ - // bits: 2 <-> ? 1 <-> soundlatch full 0 <-> soundlatch2 empty - return 4 + soundlatch_status * 2 + (1 - soundlatch2_status); -} - -static READ8_HANDLER( soundcommand_r ) -{ - soundlatch_status = 0; // soundlatch has been read - return soundlatch_r(0); -} - -static READ8_HANDLER( soundcommand2_r ) -{ - soundlatch2_status = 0; // soundlatch2 has been read - return soundlatch2_r(0); -} - -static WRITE8_HANDLER( soundcommand_w ) -{ - soundlatch_w(0, data); - soundlatch_status = 1; // soundlatch has been written - cpunum_set_input_line(2, INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu -} - -static WRITE8_HANDLER( soundcommand2_w ) -{ - soundlatch2_w(0, data); - soundlatch2_status = 1; // soundlatch2 has been written -} - -static WRITE8_HANDLER( airbustr_paletteram_w ) -{ - int val; - - /* ! byte 1 ! ! byte 0 ! */ - /* xGGG GGRR RRRB BBBB */ - /* x432 1043 2104 3210 */ - - paletteram[offset] = data; - val = (paletteram[offset | 1] << 8) | paletteram[offset & ~1]; - - palette_set_color(Machine, offset/2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0)); -} - -static WRITE8_HANDLER( airbustr_coin_counter_w ) -{ - coin_counter_w(0, data & 1); - coin_counter_w(1, data & 2); - coin_lockout_w(0, ~data & 4); - coin_lockout_w(1, ~data & 8); -} - -/* Memory Maps */ - -static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0xd000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE(&devram) // shared with protection device - AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( master_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(master_bankswitch_w) - AM_RANGE(0x01, 0x01) AM_WRITENOP // ??? - AM_RANGE(0x02, 0x02) AM_WRITE(master_nmi_trigger_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_WRITE(airbustr_videoram2_w) AM_BASE(&airbustr_videoram2) - AM_RANGE(0xc400, 0xc7ff) AM_RAM AM_WRITE(airbustr_colorram2_w) AM_BASE(&airbustr_colorram2) - AM_RANGE(0xc800, 0xcbff) AM_RAM AM_WRITE(airbustr_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xcc00, 0xcfff) AM_RAM AM_WRITE(airbustr_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd000, 0xd5ff) AM_RAM AM_WRITE(airbustr_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xd600, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( slave_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(slave_bankswitch_w) - AM_RANGE(0x02, 0x02) AM_READWRITE(soundcommand2_r, soundcommand_w) - AM_RANGE(0x04, 0x0c) AM_WRITE(airbustr_scrollregs_w) - AM_RANGE(0x0e, 0x0e) AM_READ(soundcommand_status_r) - AM_RANGE(0x20, 0x20) AM_READ(input_port_0_r) - AM_RANGE(0x22, 0x22) AM_READ(input_port_1_r) - AM_RANGE(0x24, 0x24) AM_READ(input_port_2_r) - AM_RANGE(0x28, 0x28) AM_WRITE(airbustr_coin_counter_w) - AM_RANGE(0x38, 0x38) AM_WRITENOP // ??? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(3) - AM_RANGE(0xc000, 0xdfff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w) - AM_RANGE(0x02, 0x02) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) - AM_RANGE(0x04, 0x04) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0x06, 0x06) AM_READWRITE(soundcommand_r, soundcommand2_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( airbustr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // used - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x08, "Mode 1" ) // routine at 0x056d: 11 21 12 16 (bit 3 active) - PORT_DIPSETTING( 0x00, "Mode 2" ) // 11 21 13 14 (bit 3 not active) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1", 0x08, PORTCOND_EQUALS, 0x00) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6") - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( airbustj ) - PORT_INCLUDE(airbustr) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") // routine at 0x0546 : 11 12 21 23 - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) -INPUT_PORTS_END - -/* Graphics Layout */ - -static const gfx_layout tile_gfxlayout = -{ - 16, 16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4, - 1*4+32*8, 0*4+32*8, 3*4+32*8, 2*4+32*8, 5*4+32*8, 4*4+32*8, 7*4+32*8, 6*4+32*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 0*32+64*8, 1*32+64*8, 2*32+64*8, 3*32+64*8, 4*32+64*8, 5*32+64*8, 6*32+64*8, 7*32+64*8 }, - 16*16*4 -}; - -static const gfx_layout sprite_gfxlayout = -{ - 16, 16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 0*4+32*8, 1*4+32*8, 2*4+32*8, 3*4+32*8, 4*4+32*8, 5*4+32*8, 6*4+32*8, 7*4+32*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 0*32+64*8, 1*32+64*8, 2*32+64*8, 3*32+64*8, 4*32+64*8, 5*32+64*8, 6*32+64*8, 7*32+64*8 }, - 16*16*4 -}; - -/* Graphics Decode Information */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tile_gfxlayout, 0, 32 }, // tiles - { REGION_GFX2, 0, &sprite_gfxlayout, 512, 16 }, // sprites - { -1 } -}; - -/* Sound Interfaces */ - -static struct YM2203interface ym2203_interface = -{ - input_port_3_r, // DSW-1 connected to port A - input_port_4_r // DSW-2 connected to port B -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( master_interrupt ) -{ - static int addr = 0xff; - - addr ^= 0x02; - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, addr); -} - -static INTERRUPT_GEN( slave_interrupt ) -{ - static int addr = 0xfd; - - addr ^= 0x02; - cpunum_set_input_line_and_vector(1, 0, HOLD_LINE, addr); -} - -/* Machine Initialization */ - -static MACHINE_RESET( airbustr ) -{ - soundlatch_status = soundlatch2_status = 0; - master_bankswitch_w(0, 0x02); - slave_bankswitch_w(0, 0x02); - sound_bankswitch_w(0, 0x02); -} - -/* Machine Driver */ - -static MACHINE_DRIVER_START( airbustr ) - // basic machine hardware - MDRV_CPU_ADD(Z80, 6000000) // ??? - MDRV_CPU_PROGRAM_MAP(master_map, 0) - MDRV_CPU_IO_MAP(master_io_map, 0) - MDRV_CPU_VBLANK_INT(master_interrupt, 2) // nmi caused by sub cpu?, ? - - MDRV_CPU_ADD(Z80, 6000000) // ??? - MDRV_CPU_PROGRAM_MAP(slave_map, 0) - MDRV_CPU_IO_MAP(slave_io_map, 0) - MDRV_CPU_VBLANK_INT(slave_interrupt, 2) // nmi caused by main cpu, ? - - MDRV_CPU_ADD(Z80, 6000000) // ??? - MDRV_CPU_PROGRAM_MAP(sound_map, 0) - MDRV_CPU_IO_MAP(sound_io_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) // nmi are caused by sub cpu writing a sound command - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) // Palette RAM is filled by sub cpu with data supplied by main cpu - // Maybe a high value is safer in order to avoid glitches - MDRV_MACHINE_RESET(airbustr) - MDRV_WATCHDOG_VBLANK_INIT(DEFAULT_60HZ_3S_VBLANK_WATCHDOG) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(768) - - MDRV_VIDEO_START(airbustr) - MDRV_VIDEO_UPDATE(airbustr) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 0.25) - MDRV_SOUND_ROUTE(2, "mono", 0.25) - MDRV_SOUND_ROUTE(3, "mono", 0.50) - - MDRV_SOUND_ADD(OKIM6295, 12000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( airbusb ) - MDRV_IMPORT_FROM(airbustr) - MDRV_WATCHDOG_VBLANK_INIT(0) // no protection device or watchdog -MACHINE_DRIVER_END - - -/* ROMs */ - -ROM_START( airbustr ) - ROM_REGION( 0x24000, REGION_CPU1, 0 ) - ROM_LOAD( "pr12.h19", 0x00000, 0x0c000, CRC(91362eb2) SHA1(cd85acfa6542af68dd1cad46f9426a95cfc9432e) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) - ROM_LOAD( "pr13.l15", 0x00000, 0x0c000, CRC(13b2257b) SHA1(325efa54e757a1f08caf81801930d61ea4e7b6d4) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU3, 0 ) - ROM_LOAD( "pr-21.bin", 0x00000, 0x0c000, CRC(6e0a5df0) SHA1(616b7c7aaf52a9a55b63c60717c1866940635cd4) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pr-000.bin", 0x00000, 0x80000, CRC(8ca68f0d) SHA1(d60389e7e63e9850bcddecb486558de1414f1276) ) // scrolling layers - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pr-001.bin", 0x00000, 0x80000, CRC(7e6cb377) SHA1(005290f9f53a0c3a6a9d04486b16b7fd52cc94b6) ) // sprites - ROM_LOAD( "pr-02.bin", 0x80000, 0x10000, CRC(6bbd5e46) SHA1(26563737f3f91ee0a056d35ce42217bb57d8a081) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* OKI-M6295 samples */ - ROM_LOAD( "pr-200.bin", 0x00000, 0x40000, CRC(a4dd3390) SHA1(2d72b46b4979857f6b66489bebda9f48799f59cf) ) -ROM_END - -ROM_START( airbustj ) - ROM_REGION( 0x24000, REGION_CPU1, 0 ) - ROM_LOAD( "pr-14j.bin", 0x00000, 0x0c000, CRC(6b9805bd) SHA1(db6df33cf17316a4b81d7731dca9fe8bbf81f014) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) - ROM_LOAD( "pr-11j.bin", 0x00000, 0x0c000, CRC(85464124) SHA1(8cce8dfdede48032c40d5f155fd58061866668de) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU3, 0 ) - ROM_LOAD( "pr-21.bin", 0x00000, 0x0c000, CRC(6e0a5df0) SHA1(616b7c7aaf52a9a55b63c60717c1866940635cd4) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pr-000.bin", 0x00000, 0x80000, CRC(8ca68f0d) SHA1(d60389e7e63e9850bcddecb486558de1414f1276) ) // scrolling layers - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pr-001.bin", 0x000000, 0x80000, CRC(7e6cb377) SHA1(005290f9f53a0c3a6a9d04486b16b7fd52cc94b6) ) // sprites - ROM_LOAD( "pr-02.bin", 0x080000, 0x10000, CRC(6bbd5e46) SHA1(26563737f3f91ee0a056d35ce42217bb57d8a081) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* OKI-M6295 samples */ - ROM_LOAD( "pr-200.bin", 0x00000, 0x40000, CRC(a4dd3390) SHA1(2d72b46b4979857f6b66489bebda9f48799f59cf) ) -ROM_END - -/* - -Differences with the original (when running on the bootleg hardware): - -no title screen -long attract modes of every level -slow downs with corrupted screen (you can see the screen being redrawn!) when there are many sprites - -the board has 2 oscillators (12 and 16 mhz). Rom 1 and 2 are program roms. 3 and 4 for sound. -Rom 5 is on a piggyback daughterboard with a z80 and a PAL - -*/ - -ROM_START( airbusb ) - ROM_REGION( 0x24000, REGION_CPU1, 0 ) - ROM_LOAD( "5.bin", 0x00000, 0x0c000, CRC(9e4216a2) SHA1(46572da4df5a67b10cc3ee21bdc0ec4bcecaaf93) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) - ROM_LOAD( "1.bin", 0x00000, 0x0c000, CRC(85464124) SHA1(8cce8dfdede48032c40d5f155fd58061866668de) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x24000, REGION_CPU3, 0 ) - ROM_LOAD( "2.bin", 0x00000, 0x0c000, CRC(6e0a5df0) SHA1(616b7c7aaf52a9a55b63c60717c1866940635cd4) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - /* Same content as airbusj, pr-001.bin, different sized roms / interleave */ - ROM_LOAD16_BYTE( "7.bin", 0x00000, 0x20000, CRC(2e3bf0a2) SHA1(84cabc753e5fd1164f0a8a9a9dee7d339a5607c5) ) - ROM_LOAD16_BYTE( "9.bin", 0x00001, 0x20000, CRC(2c23c646) SHA1(41c0f8788c9715918b4138f076415f8640adc483) ) - ROM_LOAD16_BYTE( "6.bin", 0x40000, 0x20000, CRC(0d6cd470) SHA1(329286bc6c9d1eccc74735d1c155a0f5f98f1444) ) - ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x20000, CRC(b3372e51) SHA1(aa8dcbb84c829994ae04ceecbef795ac53e72493) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - /* Same content as airbusj, pr-001.bin, different sized roms */ - ROM_LOAD( "13.bin", 0x00000, 0x20000, CRC(75dee86d) SHA1(fe342fed5bb84ee6f35d3f91987141c559e94d5a) ) - ROM_LOAD( "12.bin", 0x20000, 0x20000, CRC(c98a8333) SHA1(3a990460e232ee07a9297fcffdb02451406f5bf1) ) - ROM_LOAD( "11.bin", 0x40000, 0x20000, CRC(4e9baebd) SHA1(6cf878a3fb3d344e3f5f4d031fbde6f14b653636) ) - ROM_LOAD( "10.bin", 0x60000, 0x20000, CRC(63dc8cd8) SHA1(4b466a8ede4211fa3f51572b223eba8766990d7a) ) - - ROM_LOAD( "14.bin", 0x80000, 0x10000, CRC(6bbd5e46) SHA1(26563737f3f91ee0a056d35ce42217bb57d8a081) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* OKI-M6295 samples */ - /* Same content as airbusj, pr-200.bin, different sized roms */ - ROM_LOAD( "4.bin", 0x00000, 0x20000, CRC(21d9bfe3) SHA1(4a69458cd2a6309e389c9e7593ae29d3ef0f8daf) ) - ROM_LOAD( "3.bin", 0x20000, 0x20000, CRC(58cd19e2) SHA1(479f22241bf29f7af67d9679fc6c20f10004fdd8) ) -ROM_END - -/* Driver Initialization */ - -DRIVER_INIT( airbustr ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe000, 0xefff, 0, 0, devram_r); // protection device lives here -} - - -/* Game Drivers */ - -GAME( 1990, airbustr, 0, airbustr, airbustr, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (World)" , 0) // 891220 -GAME( 1990, airbustj, airbustr, airbustr, airbustj, airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)" , 0) // 891229 -GAME( 1990, airbusb, airbustr, airbusb, airbustj, 0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)" , 0) // based on Japan set (891229) diff --git a/src/drivers/ajax.c b/src/drivers/ajax.c deleted file mode 100644 index 055509d6d..000000000 --- a/src/drivers/ajax.c +++ /dev/null @@ -1,439 +0,0 @@ -/*************************************************************************** - -"AJAX/Typhoon" (Konami GX770) - -Driver by: - Manuel Abadia - -TO DO: -- Find the CPU core bug, that makes the 052001 to read from 0x0000 - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - -extern unsigned char *ajax_sharedram; - -static WRITE8_HANDLER( k007232_extvol_w ); -static WRITE8_HANDLER( sound_bank_w ); - -/* from machine/ajax.c */ -WRITE8_HANDLER( ajax_bankswitch_2_w ); -READ8_HANDLER( ajax_sharedram_r ); -WRITE8_HANDLER( ajax_sharedram_w ); -READ8_HANDLER( ajax_ls138_f10_r ); -WRITE8_HANDLER( ajax_ls138_f10_w ); -MACHINE_RESET( ajax ); -INTERRUPT_GEN( ajax_interrupt ); - -/* from vidhrdw/ajax.c */ -VIDEO_START( ajax ); -VIDEO_UPDATE( ajax ); - -/****************************************************************************/ - -static ADDRESS_MAP_START( ajax_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01c0) AM_READ(ajax_ls138_f10_r) /* inputs + DIPSW */ - AM_RANGE(0x0800, 0x0807) AM_READ(K051937_r) /* sprite control registers */ - AM_RANGE(0x0c00, 0x0fff) AM_READ(K051960_r) /* sprite RAM 2128SL at J7 */ - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* palette */ - AM_RANGE(0x2000, 0x3fff) AM_READ(ajax_sharedram_r) /* shared RAM with the 6809 */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) /* RAM 6264L at K10*/ - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK2) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM N11 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ajax_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01c0) AM_WRITE(ajax_ls138_f10_w) /* bankswitch + sound command + FIRQ command */ - AM_RANGE(0x0800, 0x0807) AM_WRITE(K051937_w) /* sprite control registers */ - AM_RANGE(0x0c00, 0x0fff) AM_WRITE(K051960_w) /* sprite RAM 2128SL at J7 */ - AM_RANGE(0x1000, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(ajax_sharedram_w) /* shared RAM with the 6809 */ - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) /* RAM 6264L at K10 */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM N11 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ajax_readmem_2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(K051316_0_r) /* 051316 zoom/rotation layer */ - AM_RANGE(0x1000, 0x17ff) AM_READ(K051316_rom_0_r) /* 051316 (ROM test) */ - AM_RANGE(0x2000, 0x3fff) AM_READ(ajax_sharedram_r) /* shared RAM with the 052001 */ - AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r) /* video RAM + color RAM + video registers */ - AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) /* ROM I16 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ajax_writemem_2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(K051316_0_w) /* 051316 zoom/rotation layer */ - AM_RANGE(0x0800, 0x080f) AM_WRITE(K051316_ctrl_0_w) /* 051316 control registers */ - AM_RANGE(0x1800, 0x1800) AM_WRITE(ajax_bankswitch_2_w) /* bankswitch control */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(ajax_sharedram_w) AM_BASE(&ajax_sharedram)/* shared RAM with the 052001 */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w) /* video RAM + color RAM + video registers */ - AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM I16 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ajax_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM F6 */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM 2128SL at D16 */ - AM_RANGE(0xa000, 0xa00d) AM_READ(K007232_read_port_0_r) /* 007232 registers (chip 1) */ - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_1_r) /* 007232 registers (chip 2) */ - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) /* YM2151 */ - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ajax_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM F6 */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM 2128SL at D16 */ - AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */ - AM_RANGE(0xa000, 0xa00d) AM_WRITE(K007232_write_port_0_w) /* 007232 registers (chip 1) */ - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_1_w) /* 007232 registers (chip 2) */ - AM_RANGE(0xb80c, 0xb80c) AM_WRITE(k007232_extvol_w) /* extra volume, goes to the 007232 w/ A11 */ - /* selecting a different latch for the external port */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) /* YM2151 */ - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) /* YM2151 */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( ajax ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Coin Slot 2 Invalid" ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") - PORT_DIPSETTING( 0x18, "30000 150000" ) - PORT_DIPSETTING( 0x10, "50000 200000" ) - PORT_DIPSETTING( 0x08, "30000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW3") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) PORT_DIPLOCATION("SW3:2") // Listed as "unused" and forced to be off in the manual. - PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPNAME( 0x08, 0x08, "Control in 3D Stages" ) PORT_DIPLOCATION("SW3:4") // The manual make reference to "general control" - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Inverted" ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN0") /* COINSW & START */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/* sound_bank_w: - Handled by the LS273 Octal +ve edge trigger D-type Flip-flop with Reset at B11: - - Bit Description - --- ----------- - 7 CONT1 (???) \ - 6 CONT2 (???) / One or both bits are set to 1 when you kill a enemy - 5 \ - 3 / 4MBANKH - 4 \ - 2 / 4MBANKL - 1 \ - 0 / 2MBANK -*/ - -static WRITE8_HANDLER( sound_bank_w ) -{ - int bank_A, bank_B; - - /* banks # for the 007232 (chip 1) */ - bank_A = ((data >> 1) & 0x01); - bank_B = ((data >> 0) & 0x01); - K007232_set_bank( 0, bank_A, bank_B ); - - /* banks # for the 007232 (chip 2) */ - bank_A = ((data >> 4) & 0x03); - bank_B = ((data >> 2) & 0x03); - K007232_set_bank( 1, bank_A, bank_B ); -} - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static WRITE8_HANDLER( k007232_extvol_w ) -{ - /* channel A volume (mono) */ - K007232_set_volume(1,0,(data & 0x0f) * 0x11/2,(data & 0x0f) * 0x11/2); -} - -static void volume_callback1(int v) -{ - /* channel B volume/pan */ - K007232_set_volume(1,1,(v & 0x0f) * 0x11/2,(v >> 4) * 0x11/2); -} - -static struct K007232_interface k007232_interface_1 = -{ - REGION_SOUND1, - volume_callback0 -}; - -static struct K007232_interface k007232_interface_2 = -{ - REGION_SOUND2, - volume_callback1 -}; - - - -static MACHINE_DRIVER_START( ajax ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* 12/4 MHz*/ - MDRV_CPU_PROGRAM_MAP(ajax_readmem,ajax_writemem) - MDRV_CPU_VBLANK_INT(ajax_interrupt,1) /* IRQs triggered by the 051960 */ - - MDRV_CPU_ADD(M6809, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(ajax_readmem_2,ajax_writemem_2) - - MDRV_CPU_ADD(Z80, 3579545) /* 3.58 MHz */ - MDRV_CPU_PROGRAM_MAP(ajax_readmem_sound,ajax_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(ajax) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(ajax) - MDRV_VIDEO_UPDATE(ajax) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_1) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_2) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - - - -ROM_START( ajax ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* 052001 code */ - ROM_LOAD( "770_m01.n11", 0x10000, 0x08000, CRC(4a64e53a) SHA1(acd249bfcb5f248c41b3e40c7c1bce1b8c645d3a) ) /* banked ROM */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* fixed ROM */ - ROM_LOAD( "770_l02.n12", 0x18000, 0x10000, CRC(ad7d592b) SHA1(c75d9696b16de231c479379dd02d33fe54021d88) ) /* banked ROM */ - - ROM_REGION( 0x22000, REGION_CPU2, 0 ) /* 64k + 72k for banked ROMs */ - ROM_LOAD( "770_l05.i16", 0x20000, 0x02000, CRC(ed64fbb2) SHA1(429046edaf1299afa7fb9c385b4ef0c244ec2409) ) /* banked ROM */ - ROM_CONTINUE( 0x0a000, 0x06000 ) /* fixed ROM */ - ROM_LOAD( "770_f04.g16", 0x10000, 0x10000, CRC(e0e4ec9c) SHA1(15ae09c3ad67ec626d8178ec1417f0c57ca4eca4) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "770_h03.f16", 0x00000, 0x08000, CRC(2ffd2afc) SHA1(ca2ef684f87bcf9b70b3ec66ec80685edaf04b9b) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c13", 0x000000, 0x040000, CRC(b859ca4e) SHA1(f58678d503683f78cca0d5ed2d79f6f68ab3495a) ) /* characters (N22) */ - ROM_LOAD( "770c12", 0x040000, 0x040000, CRC(50d14b72) SHA1(e3ff4a5aeefa6c10b5f7fec18297948b7c5acfdf) ) /* characters (K22) */ - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c09", 0x000000, 0x080000, CRC(1ab4a7ff) SHA1(fa007b41027f95d29d2a9f931a2fe235844db637) ) /* sprites (N4) */ - ROM_LOAD( "770c08", 0x080000, 0x080000, CRC(a8e80586) SHA1(0401f59baa691905287cef94427f39e0c3f0adc6) ) /* sprites (K4) */ - - ROM_REGION( 0x080000, REGION_GFX3, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c06", 0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) ) /* zoom/rotate (F4) */ - ROM_LOAD( "770c07", 0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) ) /* zoom/rotate (H4) */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "63s241.j11", 0x0000, 0x0200, CRC(9bdd719f) SHA1(de98e562080a97714047a8ad17abc6662c188897) ) /* priority encoder (not used) */ - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "770c10", 0x000000, 0x040000, CRC(7fac825f) SHA1(581522d7a02dad16d2803ff344b4db133f767e6b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* 007232 data (chip 2) */ - ROM_LOAD( "770c11", 0x000000, 0x080000, CRC(299a615a) SHA1(29cdcc21998c72f4cf311792b904b79bde236bab) ) -ROM_END - -ROM_START( typhoon ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* 052001 code */ - ROM_LOAD( "770_k01.n11", 0x10000, 0x08000, CRC(5ba74a22) SHA1(897d3309f2efb3bfa56e86581ee4a492e656788c) ) /* banked ROM */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* fixed ROM */ - ROM_LOAD( "770_k02.n12", 0x18000, 0x10000, CRC(3bcf782a) SHA1(4b6127bced0b2519f8ad30587f32588a16368071) ) /* banked ROM */ - - ROM_REGION( 0x22000, REGION_CPU2, 0 ) /* 64k + 72k for banked ROMs */ - ROM_LOAD( "770_k05.i16", 0x20000, 0x02000, CRC(0f1bebbb) SHA1(012a8867ee0febaaadd7bcbc91e462bda5d3a411) ) /* banked ROM */ - ROM_CONTINUE( 0x0a000, 0x06000 ) /* fixed ROM */ - ROM_LOAD( "770_f04.g16", 0x10000, 0x10000, CRC(e0e4ec9c) SHA1(15ae09c3ad67ec626d8178ec1417f0c57ca4eca4) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "770_h03.f16", 0x00000, 0x08000, CRC(2ffd2afc) SHA1(ca2ef684f87bcf9b70b3ec66ec80685edaf04b9b) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c13", 0x000000, 0x040000, CRC(b859ca4e) SHA1(f58678d503683f78cca0d5ed2d79f6f68ab3495a) ) /* characters (N22) */ - ROM_LOAD( "770c12", 0x040000, 0x040000, CRC(50d14b72) SHA1(e3ff4a5aeefa6c10b5f7fec18297948b7c5acfdf) ) /* characters (K22) */ - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c09", 0x000000, 0x080000, CRC(1ab4a7ff) SHA1(fa007b41027f95d29d2a9f931a2fe235844db637) ) /* sprites (N4) */ - ROM_LOAD( "770c08", 0x080000, 0x080000, CRC(a8e80586) SHA1(0401f59baa691905287cef94427f39e0c3f0adc6) ) /* sprites (K4) */ - - ROM_REGION( 0x080000, REGION_GFX3, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c06", 0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) ) /* zoom/rotate (F4) */ - ROM_LOAD( "770c07", 0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) ) /* zoom/rotate (H4) */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "63s241.j11", 0x0000, 0x0200, CRC(9bdd719f) SHA1(de98e562080a97714047a8ad17abc6662c188897) ) /* priority encoder (not used) */ - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "770c10", 0x000000, 0x040000, CRC(7fac825f) SHA1(581522d7a02dad16d2803ff344b4db133f767e6b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* 007232 data (chip 2) */ - ROM_LOAD( "770c11", 0x000000, 0x080000, CRC(299a615a) SHA1(29cdcc21998c72f4cf311792b904b79bde236bab) ) -ROM_END - -ROM_START( ajaxj ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* 052001 code */ - ROM_LOAD( "770_l01.n11", 0x10000, 0x08000, CRC(7cea5274) SHA1(8e3b2b11a8189e3a1703b3b4b453fbb386f5537f) ) /* banked ROM */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* fixed ROM */ - ROM_LOAD( "770_l02.n12", 0x18000, 0x10000, CRC(ad7d592b) SHA1(c75d9696b16de231c479379dd02d33fe54021d88) ) /* banked ROM */ - - ROM_REGION( 0x22000, REGION_CPU2, 0 ) /* 64k + 72k for banked ROMs */ - ROM_LOAD( "770_l05.i16", 0x20000, 0x02000, CRC(ed64fbb2) SHA1(429046edaf1299afa7fb9c385b4ef0c244ec2409) ) /* banked ROM */ - ROM_CONTINUE( 0x0a000, 0x06000 ) /* fixed ROM */ - ROM_LOAD( "770_f04.g16", 0x10000, 0x10000, CRC(e0e4ec9c) SHA1(15ae09c3ad67ec626d8178ec1417f0c57ca4eca4) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "770_f03.f16", 0x00000, 0x08000, CRC(3fe914fd) SHA1(c691920402bd859e2bf765084704a8bfad302cfa) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c13", 0x000000, 0x040000, CRC(b859ca4e) SHA1(f58678d503683f78cca0d5ed2d79f6f68ab3495a) ) /* characters (N22) */ - ROM_LOAD( "770c12", 0x040000, 0x040000, CRC(50d14b72) SHA1(e3ff4a5aeefa6c10b5f7fec18297948b7c5acfdf) ) /* characters (K22) */ - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c09", 0x000000, 0x080000, CRC(1ab4a7ff) SHA1(fa007b41027f95d29d2a9f931a2fe235844db637) ) /* sprites (N4) */ - ROM_LOAD( "770c08", 0x080000, 0x080000, CRC(a8e80586) SHA1(0401f59baa691905287cef94427f39e0c3f0adc6) ) /* sprites (K4) */ - - ROM_REGION( 0x080000, REGION_GFX3, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "770c06", 0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) ) /* zoom/rotate (F4) */ - ROM_LOAD( "770c07", 0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) ) /* zoom/rotate (H4) */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "63s241.j11", 0x0000, 0x0200, CRC(9bdd719f) SHA1(de98e562080a97714047a8ad17abc6662c188897) ) /* priority encoder (not used) */ - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "770c10", 0x000000, 0x040000, CRC(7fac825f) SHA1(581522d7a02dad16d2803ff344b4db133f767e6b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* 007232 data (chip 2) */ - ROM_LOAD( "770c11", 0x000000, 0x080000, CRC(299a615a) SHA1(29cdcc21998c72f4cf311792b904b79bde236bab) ) -ROM_END - - -static DRIVER_INIT( ajax ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1987, ajax, 0, ajax, ajax, ajax, ROT90, "Konami", "Ajax", 0 ) -GAME( 1987, typhoon, ajax, ajax, ajax, ajax, ROT90, "Konami", "Typhoon", 0 ) -GAME( 1987, ajaxj, ajax, ajax, ajax, ajax, ROT90, "Konami", "Ajax (Japan)", 0 ) diff --git a/src/drivers/aliens.c b/src/drivers/aliens.c deleted file mode 100644 index 4d465ea34..000000000 --- a/src/drivers/aliens.c +++ /dev/null @@ -1,542 +0,0 @@ -/*************************************************************************** - -Aliens (c) 1990 Konami Co. Ltd - -Preliminary driver by: - Manuel Abadia - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/k007232.h" -#include "sound/2151intf.h" - -/* prototypes */ -static MACHINE_RESET( aliens ); -static void aliens_banking( int lines ); - - -VIDEO_START( aliens ); -VIDEO_UPDATE( aliens ); - - -static int palette_selected; -static unsigned char *ram; - - -static INTERRUPT_GEN( aliens_interrupt ) -{ - if (K051960_is_IRQ_enabled()) - cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); -} - -static READ8_HANDLER( bankedram_r ) -{ - if (palette_selected) - return paletteram_r(offset); - else - return ram[offset]; -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (palette_selected) - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - else - ram[offset] = data; -} - -static WRITE8_HANDLER( aliens_coin_counter_w ) -{ - /* bits 0-1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 5 = select work RAM or palette */ - palette_selected = data & 0x20; - - /* bit 6 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); - - /* other bits unknown */ -#if 0 -{ - char baf[40]; - sprintf(baf,"%02x",data); - popmessage(baf); -} -#endif -} - -WRITE8_HANDLER( aliens_sh_irqtrigger_w ) -{ - soundlatch_w(offset,data); - cpunum_set_input_line_and_vector(1, 0, HOLD_LINE, 0xff); -} - -static WRITE8_HANDLER( aliens_snd_bankswitch_w ) -{ - /* b1: bank for chanel A */ - /* b0: bank for chanel B */ - - int bank_A = ((data >> 1) & 0x01); - int bank_B = ((data) & 0x01); - - K007232_set_bank( 0, bank_A, bank_B ); -} - - -static ADDRESS_MAP_START( aliens_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(bankedram_r) /* palette + work RAM */ - AM_RANGE(0x0400, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x5f80, 0x5f80) AM_READ(input_port_2_r) /* DIPSW #3 */ - AM_RANGE(0x5f81, 0x5f81) AM_READ(input_port_3_r) /* Player 1 inputs */ - AM_RANGE(0x5f82, 0x5f82) AM_READ(input_port_4_r) /* Player 2 inputs */ - AM_RANGE(0x5f83, 0x5f83) AM_READ(input_port_1_r) /* DIPSW #2 */ - AM_RANGE(0x5f84, 0x5f84) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x5f88, 0x5f88) AM_READ(watchdog_reset_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_051960_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM e24_j02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aliens_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(bankedram_w) AM_BASE(&ram) /* palette + work RAM */ - AM_RANGE(0x0400, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x5f88, 0x5f88) AM_WRITE(aliens_coin_counter_w) /* coin counters */ - AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(aliens_sh_irqtrigger_w) /* cause interrupt on audio CPU */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM e24_j02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aliens_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM g04_b03.bin */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xa001, 0xa001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0xe000, 0xe00d) AM_READ(K007232_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aliens_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM g04_b03.bin */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xe000, 0xe00d) AM_WRITE(K007232_write_port_0_w) -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( aliens ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4") - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8") - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3") /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4") /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5") /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7") - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW3") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW3:2") /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW3:4") /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) -INPUT_PORTS_END - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v & 0x0f) * 0x11,0); - K007232_set_volume(0,1,0,(v >> 4) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory regions */ - volume_callback /* external port callback */ -}; - -static struct YM2151interface ym2151_interface = -{ - 0, - aliens_snd_bankswitch_w -}; - -static MACHINE_DRIVER_START( aliens ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(aliens_readmem,aliens_writemem) - MDRV_CPU_VBLANK_INT(aliens_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(aliens_readmem_sound,aliens_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(aliens) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(aliens) - MDRV_VIDEO_UPDATE(aliens) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.60) - MDRV_SOUND_ROUTE(1, "mono", 0.60) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( aliens ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "e24_j02.bin", 0x10000, 0x08000, CRC(56c20971) SHA1(af272e146705e97342466a208c64d823ebc83d83) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "c24_j01.bin", 0x18000, 0x20000, CRC(6a529cd6) SHA1(bff6dee33141d8ed2b2c28813cf49f52dceac364) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "g04_b03.bin", 0x00000, 0x08000, CRC(1ac4d283) SHA1(2253f1f39c7edb6cef438b3d97f3af67a1f491ff) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -ROM_START( aliens2 ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "e24_p02.bin", 0x10000, 0x08000, CRC(4edd707d) SHA1(02b39068e5fd99ecb5b35a586335b65a20fde490) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "c24_n01.bin", 0x18000, 0x20000, CRC(106cf59c) SHA1(78622adc02055d31cd587c83b23a6cde30c9bc22) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "g04_b03.bin", 0x00000, 0x08000, CRC(1ac4d283) SHA1(2253f1f39c7edb6cef438b3d97f3af67a1f491ff) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -ROM_START( aliens3 ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "875_w3_2.e24", 0x10000, 0x08000, CRC(f917f7b5) SHA1(ab95ad40c82f11572bbaa03d76dae35f76bacf0c) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "875_w3_1.c24", 0x18000, 0x20000, CRC(3c0006fb) SHA1(e8730d50c358e7321dd676c74368fe44b9bbe5b2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "g04_b03.bin", 0x00000, 0x08000, CRC(1ac4d283) SHA1(2253f1f39c7edb6cef438b3d97f3af67a1f491ff) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -ROM_START( aliensu ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "e24_n02.bin", 0x10000, 0x08000, CRC(24dd612e) SHA1(35bceb3045cd0bd9d107312b371fb60dcf3f1272) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "c24_n01.bin", 0x18000, 0x20000, CRC(106cf59c) SHA1(78622adc02055d31cd587c83b23a6cde30c9bc22) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "g04_b03.bin", 0x00000, 0x08000, CRC(1ac4d283) SHA1(2253f1f39c7edb6cef438b3d97f3af67a1f491ff) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -ROM_START( aliensj ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "875m02.e24", 0x10000, 0x08000, CRC(54a774e5) SHA1(b6413b2199f863cae1c6fcef766989162cd4b95e) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "875m01.c24", 0x18000, 0x20000, CRC(1663d3dc) SHA1(706bdf3daa3bda372d94263f3405d67a7ef8dc69) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "875k03.g4", 0x00000, 0x08000, CRC(bd86264d) SHA1(345fd666daf8a29ef314b14306c1a976cb159bed) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -ROM_START( aliensj2 ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "875_j2_2.e24", 0x10000, 0x08000, CRC(4bb84952) SHA1(ca40a7181f11d6c34c26b65f8d4a1d1df2c7fb48) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "875m01.c24", 0x18000, 0x20000, CRC(1663d3dc) SHA1(706bdf3daa3bda372d94263f3405d67a7ef8dc69) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "875k03.g4", 0x00000, 0x08000, CRC(bd86264d) SHA1(345fd666daf8a29ef314b14306c1a976cb159bed) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics */ - ROM_LOAD( "k13_b11.bin", 0x000000, 0x80000, CRC(89c5c885) SHA1(02a1581579b6ef816e04bec312a7b3ae7c7e84f8) ) /* characters (set 1) */ - ROM_LOAD( "j13_b07.bin", 0x080000, 0x40000, CRC(e9c56d66) SHA1(1f58949d5391aef002a6e1ee7034e57bf99cee61) ) /* characters (set 2) */ - /* second half empty */ - ROM_LOAD( "k19_b12.bin", 0x100000, 0x80000, CRC(ea6bdc17) SHA1(a7c22370f8adc5b479283f1ff831f493df78282f) ) /* characters (set 1) */ - ROM_LOAD( "j19_b08.bin", 0x180000, 0x40000, CRC(f9387966) SHA1(470ecc4a5a3edd08d5e0ab10b0c590db1968fb0a) ) /* characters (set 2) */ - /* second half empty */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics */ - ROM_LOAD( "k08_b10.bin", 0x000000, 0x80000, CRC(0b1035b1) SHA1(db04020761386e79249762cd1540208375c38c7f) ) /* sprites (set 1) */ - ROM_LOAD( "j08_b06.bin", 0x080000, 0x40000, CRC(081a0566) SHA1(3a4aa14178fe76a030224743c9e9cd974e08bd79) ) /* sprites (set 2) */ - /* second half empty */ - ROM_LOAD( "k02_b09.bin", 0x100000, 0x80000, CRC(e76b3c19) SHA1(6838e07460b3eaaeb129208ad0696c8019bd63d9) ) /* sprites (set 1) */ - ROM_LOAD( "j02_b05.bin", 0x180000, 0x40000, CRC(19a261f2) SHA1(b0518fad833b3e613e0201d5d9cab73dc5e78e1d) ) /* sprites (set 2) */ - /* second half empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.h14", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "875b04.bin", 0x00000, 0x40000, CRC(4e209ac8) SHA1(09d9eaae61bfd04bf318555ccd44d7371571d86d) ) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void aliens_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0x18000; - - - if (lines & 0x10) offs -= 0x8000; - - offs += (lines & 0x0f)*0x2000; - memory_set_bankptr( 1, &RAM[offs] ); -} - -static MACHINE_RESET( aliens ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)aliens_banking); - - /* init the default bank */ - memory_set_bankptr( 1, &RAM[0x10000] ); -} - - - -static DRIVER_INIT( aliens ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1990, aliens, 0, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 1)", 0 ) -GAME( 1990, aliens2, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 2)", 0 ) -GAME( 1990, aliens3, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 3)", 0 ) -GAME( 1990, aliensu, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (US)", 0 ) -GAME( 1990, aliensj, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (Japan set 1)", 0 ) -GAME( 1990, aliensj2, aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (Japan set 2)", 0 ) diff --git a/src/drivers/arcadia.c b/src/drivers/arcadia.c deleted file mode 100644 index e386ef8bc..000000000 --- a/src/drivers/arcadia.c +++ /dev/null @@ -1,736 +0,0 @@ -/*************************************************************************** - - Arcadia System - (c) 1988 Arcadia Systems - - Driver by Ernesto Corvi and Mariusz Wojcieszek - - Games supported: - - SportTime Bowling - Leader Board - Ninja Mission - Road Wars - Sidewinder - Space Ranger - SportTime Table Hockey - Spot - Magic Johnson's Fast Break - World Darts - Xenon - World Trophy Soccer - - Other Arcadia games (not dumped): - - Aaargh! - Blasta Ball - N.Y. Warriors - Pool - Rockford - - Hardware description (from targets.mame.net): - - In the late 80s, Arcadia collaborated with Mastertronic to create their own - ten-interchangeable-game arcade platform called the Arcadia Multi Select system, - using the same hardware as the beloved Commodore Amiga computer. - - (In fact, the Multi Select's main PCB is an A500 motherboard, to which the ROM - cage is attached through the external expansion port). - - Reportedly the system was also (or was originally) supposed to have been released - in two five-game Super Select versions--"Arcade Action" and "Sports Simulation" - -- but no specimens of these have ever been seen. - - NOTES and TODO: - - To get into service mode, hold down F2 before pressing a button after - the 'INITIALIZATION OK' message. Pressing F2 during game brings service - mode also. - -***************************************************************************/ - -#include "driver.h" -#include "sound/custom.h" -#include "includes/amiga.h" - - - -/************************************* - * - * Globals - * - *************************************/ - -static UINT8 coin_counter[2]; - - - -/************************************* - * - * Dynamic installation of ROM board - * - *************************************/ - -WRITE16_HANDLER( arcadia_multibios_change_game ) -{ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x800000, 0x97ffff, 0, 0, (data == 0) ? MRA16_BANK2 : MRA16_NOP); -} - - - -/************************************* - * - * Special port handlers - * - *************************************/ - -static UINT32 arcadia_coin_counter_r(void *param) -{ - /* return coin counter values */ - return *(UINT8 *)param & 3; -} - - - -/************************************* - * - * CIA-A port A access: - * - * PA7 = game port 1, pin 6 (fire) - * PA6 = game port 0, pin 6 (fire) - * PA5 = /RDY (disk ready) - * PA4 = /TK0 (disk track 00) - * PA3 = /WPRO (disk write protect) - * PA2 = /CHNG (disk change) - * PA1 = /LED (LED, 0=bright / audio filter control) - * PA0 = OVL (ROM/RAM overlay bit) - * - *************************************/ - -static UINT8 arcadia_cia_0_porta_r(void) -{ - return readinputportbytag("CIA0PORTA"); -} - -static void arcadia_cia_0_porta_w(UINT8 data) -{ - /* switch banks as appropriate */ - memory_set_bank(1, data & 1); - - /* swap the write handlers between ROM and bank 1 based on the bit */ - if ((data & 1) == 0) - /* overlay disabled, map RAM on 0x000000 */ - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, MWA16_BANK1); - - else - /* overlay enabled, map Amiga system ROM on 0x000000 */ - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x000000, 0x07ffff, 0, 0, MWA16_ROM); - - /* bit 2 = Power Led on Amiga */ - set_led_status(0, (data & 2) ? 0 : 1); -} - - - -/************************************* - * - * CIA-A port B access: - * - * PB7 = parallel data 7 - * PB6 = parallel data 6 - * PB5 = parallel data 5 - * PB4 = parallel data 4 - * PB3 = parallel data 3 - * PB2 = parallel data 2 - * PB1 = parallel data 1 - * PB0 = parallel data 0 - * - *************************************/ - -static UINT8 arcadia_cia_0_portb_r(void) -{ - return readinputportbytag("CIA0PORTB"); -} - -static void arcadia_cia_0_portb_w(UINT8 data) -{ - /* writing a 0 in the low bit clears one of the coins */ - if ((data & 1) == 0) - { - if (coin_counter[0] > 0) - coin_counter[0]--; - else if (coin_counter[1] > 0) - coin_counter[1]--; - } -} - - - -/************************************* - * - * Coin counters - * - *************************************/ - -static void coin_changed_callback(void *param, UINT32 oldval, UINT32 newval) -{ - UINT8 *counter = param; - - /* check for a 0 -> 1 transition */ - if (!oldval && newval && *counter < 3) - *counter += 1; -} - - -static void arcadia_reset_coins(void) -{ - /* reset coin counters */ - coin_counter[0] = coin_counter[1] = 0; -} - - - -/************************************* - * - * Memory map - * - *************************************/ - -static ADDRESS_MAP_START( amiga_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK(1) AM_BASE(&amiga_chip_ram) AM_SIZE(&amiga_chip_ram_size) - AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE(amiga_cia_r, amiga_cia_w) - AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(amiga_custom_r, amiga_custom_w) AM_BASE(&amiga_custom_regs) - AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE(amiga_autoconfig_r, amiga_autoconfig_w) - AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION(REGION_USER1, 0) /* Kickstart BIOS */ - - AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK(2) AM_REGION(REGION_USER3, 0) - AM_RANGE(0x980000, 0x9fbfff) AM_ROM AM_REGION(REGION_USER2, 0) - AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x9ffffe, 0x9fffff) AM_WRITE(arcadia_multibios_change_game) - AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION(REGION_USER2, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( arcadia ) - PORT_START_TAG("CIA0PORTA") - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START_TAG("CIA0PORTB") - PORT_DIPNAME( 0x01, 0x01, "DSW1 1" ) - PORT_DIPSETTING( 0x01, "Reset" ) - PORT_DIPSETTING( 0x00, "Set" ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(arcadia_coin_counter_r, &coin_counter[0]) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(arcadia_coin_counter_r, &coin_counter[1]) - - PORT_START_TAG("JOY0DAT") - PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(amiga_joystick_convert, "P1JOY") - PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("JOY1DAT") - PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(amiga_joystick_convert, "P2JOY") - PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("POTGO") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xaaff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("P1JOY") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - - PORT_START_TAG("P2JOY") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - - PORT_START_TAG("COINS") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct CustomSound_interface amiga_custom_interface = -{ - amiga_sh_start -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( arcadia ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 7159090) /* 7.15909 Mhz (NTSC) */ - MDRV_CPU_PROGRAM_MAP(amiga_map,0) - MDRV_CPU_VBLANK_INT(amiga_scanline_callback, 262) - - MDRV_SCREEN_REFRESH_RATE(59.997) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_MACHINE_RESET(amiga) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512*2, 262) - MDRV_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) - MDRV_PALETTE_LENGTH(4096) - MDRV_PALETTE_INIT(amiga) - - MDRV_VIDEO_START(amiga) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(CUSTOM, 3579545) - MDRV_SOUND_CONFIG(amiga_custom_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - MDRV_SOUND_ROUTE(2, "right", 0.50) - MDRV_SOUND_ROUTE(3, "left", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * BIOS definition - * - *************************************/ - -#define ROM_LOAD16_BYTE_BIOS(bios,name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(1) | ROM_BIOS(bios+1)) - -#define ARCADIA_BIOS \ - ROM_REGION16_BE(0x80000, REGION_USER1, 0 ) \ - ROM_LOAD16_WORD( "kick12.rom", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88) ) \ - ROM_COPY( REGION_USER1, 0x000000, 0x040000, 0x040000 ) \ - \ - ROM_REGION16_BE( 0x80000, REGION_USER2, 0 ) \ - ROM_LOAD16_BYTE_BIOS( 0, "scpav3_0.1h", 0x000000, 0x10000, CRC(2d8e1a06) SHA1(be187f34624aeda110017c4a09242f7c00ef56a4) ) \ - ROM_LOAD16_BYTE_BIOS( 0, "scpav3_0.1l", 0x000001, 0x10000, CRC(e4f38fab) SHA1(01c2eb5965070893be6734eb1372576727716476) ) \ - ROM_LOAD16_BYTE_BIOS( 1, "scpa211h", 0x000000, 0x10000, CRC(be9dbdc5) SHA1(1554da09f051ec53937d65d4e451de51bc0c69e5) ) \ - ROM_LOAD16_BYTE_BIOS( 1, "scpa211l", 0x000001, 0x10000, CRC(95b84504) SHA1(99999fc40909001b37aa1b543918118becc81800) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-1-hi", 0x000000, 0x10000, CRC(67d44523) SHA1(f3e3699132cdf741518accb890c04d17374c4049) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-1-lo", 0x000001, 0x10000, CRC(65d9b9cf) SHA1(5c60a0dd4a0a7d9b938ce6b0446a6ad2ecaf07ec) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-2-hi", 0x020000, 0x10000, CRC(1d7594ae) SHA1(6173bbfecf18d7d9ee6bc2b6753ca9d42fabd781) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-2-lo", 0x020001, 0x10000, CRC(e776198d) SHA1(694ca4cc99ed84a95d18201c94a3332f8599654f) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-3-hi", 0x040000, 0x10000, CRC(3e7364be) SHA1(26e10d0ddc031a891138db36ce4f1732722e6847) ) \ - ROM_LOAD16_BYTE_BIOS( 2, "gcp-3-lo", 0x040001, 0x10000, CRC(87229e0d) SHA1(0b18544801e529f954b9e03226bd2e5475f36351) ) - - - -ROM_START( ar_bios ) - ARCADIA_BIOS -ROM_END - -SYSTEM_BIOS_START( ar_bios ) - SYSTEM_BIOS_ADD(0, "onep300", "OnePlay 3.00" ) - SYSTEM_BIOS_ADD(1, "onep211", "OnePlay 2.11" ) - SYSTEM_BIOS_ADD(2, "tenp211", "TenPlay 2.11" ) -SYSTEM_BIOS_END - - - -/************************************* - * - * Specific games - * - *************************************/ - -/* AIRH */ -ROM_START( ar_airh ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "airh_1h.bin", 0x00000, 0x10000, CRC(290e8e9e) SHA1(9215e36f02adf4064934aab99accefcb17ea6d3f) ) - ROM_LOAD16_BYTE( "airh_1l.bin", 0x00001, 0x10000, CRC(155452b6) SHA1(aeaa67ea9cc543c9a43094545450159e4784fb5c) ) -ROM_END - - -/* BOWL V 2.1 */ -ROM_START( ar_bowl ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "bowl_1h.bin", 0x00000, 0x10000, CRC(c0c20422) SHA1(3576df08e7a4cdadaf9dea5da0770efe5f461b07) ) - ROM_LOAD16_BYTE( "bowl_1l.bin", 0x00001, 0x10000, CRC(1c7fe75c) SHA1(b1830b91b53ec24d4b072898acac02552e2eae97) ) - ROM_LOAD16_BYTE( "bowl_2h.bin", 0x20000, 0x10000, CRC(a1e497d8) SHA1(4b4885c6937b7cfb24921e84a80d6d4f56844a73) ) - ROM_LOAD16_BYTE( "bowl_2l.bin", 0x20001, 0x10000, CRC(ce23aa34) SHA1(4b17a8447286aeb775c4edb1968978e281422421) ) - ROM_LOAD16_BYTE( "bowl_3h.bin", 0x40000, 0x10000, CRC(0c55da71) SHA1(db8a1494fca3aa044da27ea1d3acf68be415be23) ) - ROM_LOAD16_BYTE( "bowl_3l.bin", 0x40001, 0x10000, CRC(5ce00809) SHA1(d7f336df28a033b38b5296537826d164aaf5e8c9) ) -ROM_END - - -/* DART V 2.1 */ -ROM_START( ar_dart ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "dart_1h.bin", 0x00000, 0x10000, CRC(4d6a33e2) SHA1(1a227b5b0b4aca40d46af62e44deebca60582363) ) - ROM_LOAD16_BYTE( "dart_1l.bin", 0x00001, 0x10000, CRC(3fa66973) SHA1(66b59870f8ed1bb5b46b2887d99a6a71ff0514ba) ) - ROM_LOAD16_BYTE( "dart_2h.bin", 0x20000, 0x10000, CRC(3a30426a) SHA1(bf9226d2bfd1fb2d70e55e30aa3dde953baf5792) ) - ROM_LOAD16_BYTE( "dart_2l.bin", 0x20001, 0x10000, CRC(479c0b73) SHA1(2ad958f4f2d902635d030cf3f466097da3cc421c) ) - ROM_LOAD16_BYTE( "dart_3h.bin", 0x40000, 0x10000, CRC(dd217562) SHA1(80e21112a87259785e5d172249dfe8058970fd4d) ) - ROM_LOAD16_BYTE( "dart_3l.bin", 0x40001, 0x10000, CRC(12cff829) SHA1(3826e5442bb125dff4f10ef8b0b65a2d5b8d9985) ) - ROM_LOAD16_BYTE( "dart_4h.bin", 0x60000, 0x10000, CRC(98b27f13) SHA1(eb4fe813be4f202badfb947291e75ec0df915c25) ) - ROM_LOAD16_BYTE( "dart_4l.bin", 0x60001, 0x10000, CRC(a059204c) SHA1(01fb21175957fa8e92f918ea560ceecc809ed0b7) ) - ROM_LOAD16_BYTE( "dart_5h.bin", 0x80000, 0x10000, CRC(38f4c236) SHA1(1a5501ed8e94cff584f40c3b984aff7aea9ec956) ) - ROM_LOAD16_BYTE( "dart_5l.bin", 0x80001, 0x10000, CRC(df4103cc) SHA1(c792cc52148afa7bde6458704d9de2550b6eb636) ) - ROM_LOAD16_BYTE( "dart_6h.bin", 0xa0000, 0x10000, CRC(e21cc8be) SHA1(04280eef26f4a97c2280bdec19b1bc586fceffb0) ) - ROM_LOAD16_BYTE( "dart_6l.bin", 0xa0001, 0x10000, CRC(21112d4e) SHA1(95e49aa2f23c6d005a0de3cf96a1c06adeacf2a9) ) -ROM_END - - -/* - Magic Johnson's Fast Break - - Piggyback 1.5mb rom board - - 3h 7h x - 2h 6h x - 1h 5h x - scpa1h 4h 8h - 3l 7l x - 2l 6l x - DS1220Y 1l 5l x - sec-scpa scpa1l 4l 8l -*/ -ROM_START( ar_fast ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "fastv28.1h", 0x000000, 0x10000, CRC(091e4533) SHA1(61a16deecd32b386d62aab95e8d4a61bddcd8af4) ) - ROM_LOAD16_BYTE( "fastv28.1l", 0x000001, 0x10000, CRC(8f7685c1) SHA1(b379c1a47618401cfbfcc7bd2d13ae51f5e73e46) ) - ROM_LOAD16_BYTE( "fastv28.2h", 0x020000, 0x10000, CRC(3a3dd931) SHA1(7be3316e2acf6b14b29ef2e36d8f76999d5d4e94) ) - ROM_LOAD16_BYTE( "fastv28.2l", 0x020001, 0x10000, CRC(4838d7e5) SHA1(d2ae5b8f25df51936937ddf62001347fccdf830a) ) - ROM_LOAD16_BYTE( "fastv28.3h", 0x040000, 0x10000, CRC(db94fa62) SHA1(4fe79a4226161b15ecdda9d85c1ad84cf31b6a30) ) - ROM_LOAD16_BYTE( "fastv28.3l", 0x040001, 0x10000, CRC(a400367d) SHA1(a4362beeb35fa0c9020883eab0a71194f3a90b9a) ) - ROM_LOAD16_BYTE( "fastv28.4h", 0x060000, 0x10000, CRC(c0a021dd) SHA1(c4c40c05050a2831b55683d85ee39b8870e0bf88) ) - ROM_LOAD16_BYTE( "fastv28.4l", 0x060001, 0x10000, CRC(870e60f1) SHA1(0f0566da96dfc898dbbc35dfaba489d1fc9ab435) ) - ROM_LOAD16_BYTE( "fastv28.5h", 0x080000, 0x10000, CRC(6daf4817) SHA1(ca0bf79e77a3e878da1f97ff9a64107e8c112aee) ) - ROM_LOAD16_BYTE( "fastv28.5l", 0x080001, 0x10000, CRC(f489da29) SHA1(5e70183acfd0d849ae9691b312ca98698b1a2252) ) - ROM_LOAD16_BYTE( "fastv28.6h", 0x0a0000, 0x10000, CRC(b23dbcfd) SHA1(67495235016e4bcbf6251e4073d6938a3c5b0eea) ) - ROM_LOAD16_BYTE( "fastv28.6l", 0x0a0001, 0x10000, CRC(4e23e807) SHA1(69c910d70fb85d037257b19a1be9e99c617bf1c4) ) - ROM_LOAD16_BYTE( "fastv28.7h", 0x0c0000, 0x10000, CRC(74d598eb) SHA1(9434169d316fc2802e7790e5b09be086fccab351) ) - ROM_LOAD16_BYTE( "fastv28.7l", 0x0c0001, 0x10000, CRC(b0649050) SHA1(a8efdfc82a63fc16ee2103b4c96b92d6f9e7afc6) ) - ROM_LOAD16_BYTE( "fastv28.8h", 0x0e0000, 0x10000, CRC(3650aaf0) SHA1(cc37aa94360159f45076eafaae8140a661bd52f6) ) - ROM_LOAD16_BYTE( "fastv28.8l", 0x0e0001, 0x10000, CRC(82603f68) SHA1(8affe73e97b966b8e63bff2c7914fb5ead7b60ff) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-sec-scpa.bin", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -/* LDRB */ -ROM_START( ar_ldrb ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "lbg2401h", 0x00000, 0x10000, CRC(fe1287e9) SHA1(34088416d970614b31b25e982ef40fd950080b3e) ) - ROM_LOAD16_BYTE( "lbg2401l", 0x00001, 0x10000, CRC(7c7bb9ee) SHA1(5c76445732ab139db82fe21c16f49e2609bb03aa) ) - ROM_LOAD16_BYTE( "lbg2402h", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) - ROM_LOAD16_BYTE( "lbg2402l", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) - ROM_LOAD16_BYTE( "lbg2403h", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) - ROM_LOAD16_BYTE( "lbg2403l", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) - ROM_LOAD16_BYTE( "lbg2404h", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) - ROM_LOAD16_BYTE( "lbg2404l", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) - ROM_LOAD16_BYTE( "lbg2405h", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) - ROM_LOAD16_BYTE( "lbg2405l", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) - ROM_LOAD16_BYTE( "lbg2406h", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) - ROM_LOAD16_BYTE( "lbg2406l", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) - ROM_LOAD16_BYTE( "lbg2407h", 0xc0000, 0x10000, CRC(61807fa9) SHA1(9d7097b921cf4026bb2828780e3fb87e0a3a24a0) ) - ROM_LOAD16_BYTE( "lbg2407l", 0xc0001, 0x10000, CRC(c62dae9f) SHA1(59b8e1c2469edd57024a4f3ca4222811442fa077) ) - ROM_LOAD16_BYTE( "lbg2408h", 0xe0000, 0x10000, CRC(b5911807) SHA1(b2995b308b2618f312005f130048e73c151311ae) ) - ROM_LOAD16_BYTE( "lbg2408l", 0xe0001, 0x10000, CRC(1f1ea828) SHA1(4af463bc6d58d64d4f082971c71654a6bb0c26bc) ) -ROM_END - - -/* LDRB V 2.5 */ -ROM_START( ar_ldrba ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "ldrb_1h.bin", 0x00000, 0x10000, CRC(0236511c) SHA1(22b2ee076ed57ba38413c16a52510383d8488e25) ) - ROM_LOAD16_BYTE( "ldrb_1l.bin", 0x00001, 0x10000, CRC(786d34b9) SHA1(5fd6ef94f65c6fd503d3682154b576d6509a3aa9) ) - ROM_LOAD16_BYTE( "ldrb_2h.bin", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) - ROM_LOAD16_BYTE( "ldrb_2l.bin", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) - ROM_LOAD16_BYTE( "ldrb_3h.bin", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) - ROM_LOAD16_BYTE( "ldrb_3l.bin", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) - ROM_LOAD16_BYTE( "ldrb_4h.bin", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) - ROM_LOAD16_BYTE( "ldrb_4l.bin", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) - ROM_LOAD16_BYTE( "ldrb_5h.bin", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) - ROM_LOAD16_BYTE( "ldrb_5l.bin", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) - ROM_LOAD16_BYTE( "ldrb_6h.bin", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) - ROM_LOAD16_BYTE( "ldrb_6l.bin", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) - ROM_LOAD16_BYTE( "ldrb_7h.bin", 0xc0000, 0x10000, CRC(4ebb8d12) SHA1(c328a26139ba0792cab1020b32eb4b8e39d51a22) ) - ROM_LOAD16_BYTE( "ldrb_7l.bin", 0xc0001, 0x10000, CRC(1afa9a4f) SHA1(3e5ca56e03d693a72424b9ad0717494ea8eb561e) ) - ROM_LOAD16_BYTE( "ldrb_8h.bin", 0xe0000, 0x10000, CRC(fbdca9af) SHA1(9612eb777a00ba4153f40eaefd162ca5b5efdb54) ) - ROM_LOAD16_BYTE( "ldrb_8l.bin", 0xe0001, 0x10000, CRC(322f52eb) SHA1(3033eb753fb8b3bf56b152377bf567b06a0c8144) ) -ROM_END - - -/* NINJ V 2.5 */ -ROM_START( ar_ninj ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x200000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "ninj_1h.bin", 0x00000, 0x10000, CRC(53b07b4d) SHA1(4852005adf60fe63f2da880dd32740d18fd31169) ) - ROM_LOAD16_BYTE( "ninj_1l.bin", 0x00001, 0x10000, CRC(3337a6c1) SHA1(be9719f0cd5872b51f4c6d32fcac2638c0dedaf4) ) - ROM_LOAD16_BYTE( "ninj_2h.bin", 0x20000, 0x10000, CRC(e28a5fa8) SHA1(150e26aea24706b72d2e6612280d5dddc527061b) ) - ROM_LOAD16_BYTE( "ninj_2l.bin", 0x20001, 0x10000, CRC(4f52c008) SHA1(c26bf9a7a21a5b78697a684bada90ff70160f868) ) - ROM_LOAD16_BYTE( "ninj_3h.bin", 0x40000, 0x10000, CRC(c6e4dd36) SHA1(a8dcea97e0eb1da462ad55fd543c637544bfd059) ) - ROM_LOAD16_BYTE( "ninj_3l.bin", 0x40001, 0x10000, CRC(1dca7ea5) SHA1(2950ea2e9267d27e0ebe785a08e2d6627ae5eb17) ) - ROM_LOAD16_BYTE( "ninj_4h.bin", 0x60000, 0x10000, CRC(dc1a21d4) SHA1(76463837e0da8fd61de334e00adb807c7ef92523) ) - ROM_LOAD16_BYTE( "ninj_4l.bin", 0x60001, 0x10000, CRC(64660b15) SHA1(9e9c5f61add1439613400fee0c2376dc4000e6c6) ) - ROM_LOAD16_BYTE( "ninj_5h.bin", 0x80000, 0x10000, CRC(49cda31b) SHA1(e9579b9d47f7e638f933b8ce659bc63c8bdeb0a4) ) - ROM_LOAD16_BYTE( "ninj_5l.bin", 0x80001, 0x10000, CRC(1c5ef815) SHA1(7e88c1545ee15efd928220989f8b29207a8fec7e) ) - ROM_LOAD16_BYTE( "ninj_6h.bin", 0xa0000, 0x10000, CRC(b647f31e) SHA1(18367b96418ab950ba97d656e1466234af3bca80) ) - ROM_LOAD16_BYTE( "ninj_6l.bin", 0xa0001, 0x10000, CRC(9e5407e3) SHA1(85a8383573f3cd120f323e867c7fa2b6badd5aad) ) -ROM_END - - -/* RDWR V 2.3 */ -ROM_START( ar_rdwr ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x200000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "rdwr_1h.bin", 0x00000, 0x10000, CRC(f52cb704) SHA1(cce8c7484ae8c3a3d14b2e79a981780a277c9b1c) ) - ROM_LOAD16_BYTE( "rdwr_1l.bin", 0x00001, 0x10000, CRC(fde0de6d) SHA1(7f62ce854a040775548c5ba3b05e6a4dcb0d7cfb) ) - ROM_LOAD16_BYTE( "rdwr_2h.bin", 0x20000, 0x10000, CRC(8f3c1a2c) SHA1(e473e55457c04ebd597375e9936aeb0473507ed7) ) - ROM_LOAD16_BYTE( "rdwr_2l.bin", 0x20001, 0x10000, CRC(21865e15) SHA1(be4b0e77a17edeb77f6a9d4bec6d49d4a46242ea) ) - ROM_LOAD16_BYTE( "rdwr_3h.bin", 0x40000, 0x10000, CRC(0cb3bc66) SHA1(5e22abcd38fc74f472cc5090b7c2893aaabc37bd) ) - ROM_LOAD16_BYTE( "rdwr_3l.bin", 0x40001, 0x10000, CRC(d863a958) SHA1(d27b8ff2daa51319d5c44700c6dd74e4bc8d99a4) ) - ROM_LOAD16_BYTE( "rdwr_4h.bin", 0x60000, 0x10000, CRC(466fe771) SHA1(1cc65887e097302bd504b8c4da5f7d2b760d7f74) ) - ROM_LOAD16_BYTE( "rdwr_4l.bin", 0x60001, 0x10000, CRC(fff39238) SHA1(05b4a70e1f808254e1fb20a15c460655d14d4216) ) -ROM_END - - -/* SDWR V 2.1 */ -ROM_START( ar_sdwr ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "sdwr_1h.bin", 0x00000, 0x10000, CRC(aef3eea8) SHA1(4bf7619f52395fcbde3c8f7af3fd7da4af03c673) ) - ROM_LOAD16_BYTE( "sdwr_1l.bin", 0x00001, 0x10000, CRC(daed4add) SHA1(a9404a87f1958d7ab829fbb48855d2deb64c5aec) ) - ROM_LOAD16_BYTE( "sdwr_2h.bin", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) ) - ROM_LOAD16_BYTE( "sdwr_2l.bin", 0x20001, 0x10000, CRC(97f58a6d) SHA1(161bc8b3e14e5efca7b988f80cc16345280ca4bd) ) - ROM_LOAD16_BYTE( "sdwr_3h.bin", 0x40000, 0x10000, CRC(b31ad2b2) SHA1(66003bd331f61d1bd2e8f4d595b61503dad4e4b8) ) - ROM_LOAD16_BYTE( "sdwr_3l.bin", 0x40001, 0x10000, CRC(af929620) SHA1(5fde0f199016abf8fd9db821ee492feeba21b604) ) - ROM_LOAD16_BYTE( "sdwr_4h.bin", 0x60000, 0x10000, CRC(7502a271) SHA1(aa318619c0b98873b435b5bbf7feb2d5d51198f9) ) - ROM_LOAD16_BYTE( "sdwr_4l.bin", 0x60001, 0x10000, CRC(942d50b4) SHA1(eb0c9057ffd0d03dc2cde1158ce9f07de8ea6905) ) - ROM_LOAD16_BYTE( "sdwr_5h.bin", 0x80000, 0x10000, CRC(c25ac91d) SHA1(da4d46a2c987e2be2e31c081557b2de1744fa237) ) - ROM_LOAD16_BYTE( "sdwr_5l.bin", 0x80001, 0x10000, CRC(ecd1fbd3) SHA1(0b859d608859ccbff03db655219dfea4e609454d) ) - ROM_LOAD16_BYTE( "sdwr_6h.bin", 0xa0000, 0x10000, CRC(ea3c8ab3) SHA1(95cb5b9dd29c19862a2659867474cbf49192f830) ) - ROM_LOAD16_BYTE( "sdwr_6l.bin", 0xa0001, 0x10000, CRC(2544ccd7) SHA1(953aa00f2610ecd31db6e36964cbe7c2866050b9) ) -ROM_END - - -/* SOCC */ -ROM_START( ar_socc ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "socc30.1hi", 0x00000, 0x10000, CRC(b4df41cf) SHA1(681cecef390f82be420cd9f4d32afddace3da3c8) ) - ROM_LOAD16_BYTE( "socc30.1lo", 0x00001, 0x10000, CRC(28b5e119) SHA1(3fff3252b855e6ca1aceff89ec0c61688c954d88) ) - ROM_LOAD16_BYTE( "socc30.2hi", 0x20000, 0x10000, CRC(b3c14026) SHA1(be4e05cbf5b14a1dc77eff70bb44c8cdae57e59a) ) - ROM_LOAD16_BYTE( "socc30.2lo", 0x20001, 0x10000, CRC(f7f9a734) SHA1(064adbfb919c7422190b5e4146fbc335a2a97091) ) - ROM_LOAD16_BYTE( "socc30.3hi", 0x40000, 0x10000, CRC(2a2bd2a0) SHA1(9a9a0463ecf99941f88a163dcb111bf8c3508d78) ) - ROM_LOAD16_BYTE( "socc30.3lo", 0x40001, 0x10000, CRC(f335bb8b) SHA1(a15ee6b27d6e2aab25f3260edd0803fe1fa05f0e) ) - ROM_LOAD16_BYTE( "socc30.4hi", 0x60000, 0x10000, CRC(4f2f28dc) SHA1(cd419c80e7112163fd182d2cc58148d3674ccd8c) ) - ROM_LOAD16_BYTE( "socc30.4lo", 0x60001, 0x10000, CRC(b326d36c) SHA1(5ac2df36754c97065f74695a9c46e2a558e8e112) ) - ROM_LOAD16_BYTE( "socc30.5hi", 0x80000, 0x10000, CRC(4fcaec4a) SHA1(1286c57a81358a69573df6f6cedf44c564476320) ) - ROM_LOAD16_BYTE( "socc30.5lo", 0x80001, 0x10000, CRC(f131115e) SHA1(a9050878cbc1923bb88d46ecdad8f5bd69d389ea) ) - ROM_LOAD16_BYTE( "socc30.6hi", 0xa0000, 0x10000, CRC(9380644f) SHA1(01da02f9397c7b8fd44a78a533f09264eb4f3d0c) ) - ROM_LOAD16_BYTE( "socc30.6lo", 0xa0001, 0x10000, CRC(b93e13ea) SHA1(0fac9cb54099f0d0ad61eb6f5bd3686c27a045b9) ) -ROM_END - - -/* SPOT */ -ROM_START( ar_spot ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "spotv2.1h", 0x00000, 0x10000, CRC(a8440838) SHA1(8d64ddb603754c85aad47bd079d0a7d80d57b36c) ) - ROM_LOAD16_BYTE( "spotv2.1l", 0x00001, 0x10000, CRC(2abd2835) SHA1(b419da47c6390334ed8af56bc21430e5b43d6d58) ) - ROM_LOAD16_BYTE( "spotv2.2h", 0x20000, 0x10000, CRC(f4c95f77) SHA1(46c70755e3c6d06bec4b1bd164a586292a59249d) ) - ROM_LOAD16_BYTE( "spotv2.2l", 0x20001, 0x10000, CRC(58d7bf54) SHA1(0da63d32d738f8ed3675c6d14b2d12039af5ff21) ) - ROM_LOAD16_BYTE( "spotv2.3h", 0x40000, 0x10000, CRC(c9d2f3b7) SHA1(1b4693bcde14dc5eefe7456d4d613e6cb674c972) ) - ROM_LOAD16_BYTE( "spotv2.3l", 0x40001, 0x10000, CRC(adf94e81) SHA1(5ad56044008236edea0a44393daee06e572b1cc2) ) - ROM_LOAD16_BYTE( "spotv2.4h", 0x60000, 0x10000, CRC(cdea2feb) SHA1(4bb24b8cb5dd1e88d3f468979e2f350568414668) ) - ROM_LOAD16_BYTE( "spotv2.4l", 0x60001, 0x10000, CRC(214c353b) SHA1(819283248eac2a516f9fcdda060284ffe9c39bc8) ) - ROM_LOAD16_BYTE( "spotv2.5h", 0x80000, 0x10000, CRC(809d0f5c) SHA1(d1bae86090db8e5cc066afb76203704e7d217fde) ) - ROM_LOAD16_BYTE( "spotv2.5l", 0x80001, 0x10000, CRC(b86d8153) SHA1(42a564fa608e806d04052e67263afc4a5a417d40) ) - ROM_LOAD16_BYTE( "spotv2.6h", 0xa0000, 0x10000, CRC(8c221a34) SHA1(8f246bbcb79f5e508932d776fbfa648392f7f78d) ) - ROM_LOAD16_BYTE( "spotv2.6l", 0xa0001, 0x10000, CRC(821fa69a) SHA1(f037853be96158b8a6dd5f34e15ddfc16b6410c3) ) - ROM_LOAD16_BYTE( "spotv2.7h", 0xc0000, 0x10000, CRC(054355db) SHA1(6f4a46230b6dfd4727816737c31bce9483d3a3f7) ) - ROM_LOAD16_BYTE( "spotv2.7l", 0xc0001, 0x10000, CRC(30d396d8) SHA1(2a56727554a823f56b37b9e8d324e9f53524eb02) ) - ROM_LOAD16_BYTE( "spotv2.8h", 0xe0000, 0x10000, CRC(94dbb239) SHA1(0c475c8e102cc835d01e3de4604c1323219048f1) ) - ROM_LOAD16_BYTE( "spotv2.8l", 0xe0001, 0x10000, CRC(4d7f8f05) SHA1(04690717cec5912cd12ccb7135614842f5597898) ) -ROM_END - - -/* SPRG */ -ROM_START( ar_sprg ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "sprg_1h.bin", 0x00000, 0x10000, CRC(90b45dc5) SHA1(7cf1fc27e95bf207ed94cc5c20cf0c0ae7799d83) ) - ROM_LOAD16_BYTE( "sprg_1l.bin", 0x00001, 0x10000, CRC(e5ce68e9) SHA1(dfda2e0bffc499a497865bc214450653880eccf2) ) - ROM_LOAD16_BYTE( "sprg_2h.bin", 0x20000, 0x10000, CRC(02ef780f) SHA1(d21d6e8a379a2b38de7f3ec0540f67dd6425cbc9) ) - ROM_LOAD16_BYTE( "sprg_2l.bin", 0x20001, 0x10000, CRC(fa1f5b23) SHA1(4f808d8ee9cd672061995d0bfab65851bf1c01d3) ) - ROM_LOAD16_BYTE( "sprg_3h.bin", 0x40000, 0x10000, CRC(48130e6e) SHA1(479555c4a5c041c04135f01fbdd5c5f78f4422cf) ) - ROM_LOAD16_BYTE( "sprg_3l.bin", 0x40001, 0x10000, CRC(4b968cc6) SHA1(fbf3bcb5803dbe75e5a9bcde39c98c9c30bd1699) ) - ROM_LOAD16_BYTE( "sprg_4h.bin", 0x60000, 0x10000, CRC(23c8f667) SHA1(da75def3a34f6e7d48f2c6cefff608348c09cf70) ) - ROM_LOAD16_BYTE( "sprg_4l.bin", 0x60001, 0x10000, CRC(13ba011f) SHA1(75da2fbbfe2e957992b2a73609737d777fe9a151) ) -ROM_END - - -/* XEON V 2.3 */ -ROM_START( ar_xeon ) - ARCADIA_BIOS - - ROM_REGION16_BE(0x180000, REGION_USER3, 0) - ROM_LOAD16_BYTE( "xeon_1h.bin", 0x00000, 0x10000, CRC(ca422811) SHA1(fa6f82e1d91b48d58b61f916d5b04dc1a13774fb) ) - ROM_LOAD16_BYTE( "xeon_1l.bin", 0x00001, 0x10000, CRC(97edf967) SHA1(57fca524e01ba21f7420472f14aaf3fa63a326fa) ) - ROM_LOAD16_BYTE( "xeon_2h.bin", 0x20000, 0x10000, CRC(8078c10e) SHA1(599995374b23da7187556e2f4f285b60d818f885) ) - ROM_LOAD16_BYTE( "xeon_2l.bin", 0x20001, 0x10000, CRC(a8845d8f) SHA1(2d54dc25af68c46bbbdf8f9ed8014ae7d8564e09) ) - ROM_LOAD16_BYTE( "xeon_3h.bin", 0x40000, 0x10000, CRC(9d013152) SHA1(7a3bec56d564efbca9721d308b3eddc76763ec41) ) - ROM_LOAD16_BYTE( "xeon_3l.bin", 0x40001, 0x10000, CRC(331b1449) SHA1(0e282d04b2c7e68051e5ea1671737b11dfb71521) ) - ROM_LOAD16_BYTE( "xeon_4h.bin", 0x60000, 0x10000, CRC(fbf43d5c) SHA1(6d335b7b1d3b75887526cb8ea3518661b5554774) ) - ROM_LOAD16_BYTE( "xeon_4l.bin", 0x60001, 0x10000, CRC(47b60bf5) SHA1(10d8addc090ad3fa2663c40e22f736ac3522b177) ) -ROM_END - - - -/************************************* - * - * Low byte ROM decoding - * - *************************************/ - -INLINE void generic_decode(int region, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0) -{ - UINT16 *rom = (UINT16 *)memory_region(region); - int i; - - /* only the low byte of ROMs are encrypted in these games */ - for (i = 0; i < 0x20000/2; i++) - rom[i] = BITSWAP16(rom[i], 15,14,13,12,11,10,9,8, bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0); -} - - - -/************************************* - * - * Generic driver init - * - *************************************/ - -static void arcadia_init(void) -{ - static const amiga_machine_interface arcadia_intf = - { - ANGUS_CHIP_RAM_MASK, - arcadia_cia_0_porta_r, arcadia_cia_0_portb_r, - arcadia_cia_0_porta_w, arcadia_cia_0_portb_w, - NULL, NULL, - NULL, NULL, - NULL, NULL, NULL, - NULL, NULL, NULL, - NULL, arcadia_reset_coins - }; - UINT16 *biosrom; - - /* configure our Amiga setup */ - amiga_machine_config(&arcadia_intf); - - /* set up memory */ - memory_configure_bank(1, 0, 1, amiga_chip_ram, 0); - memory_configure_bank(1, 1, 1, memory_region(REGION_USER1), 0); - - /* OnePlay bios is encrypted, TenPlay is not */ - biosrom = (UINT16 *)memory_region(REGION_USER2); - if (biosrom[0] != 0x4afc) - generic_decode(REGION_USER2, 6, 1, 0, 2, 3, 4, 5, 7); - - /* request notifications when the coins change */ - input_port_set_changed_callback(port_tag_to_index("COINS"), 0x01, coin_changed_callback, &coin_counter[0]); - input_port_set_changed_callback(port_tag_to_index("COINS"), 0x02, coin_changed_callback, &coin_counter[1]); -} - - - -/************************************* - * - * Per-game decryption - * - *************************************/ - -DRIVER_INIT( none ) { arcadia_init(); } -DRIVER_INIT( airh ) { generic_decode(REGION_USER3, 5, 0, 2, 4, 7, 6, 1, 3); arcadia_init(); } -DRIVER_INIT( bowl ) { generic_decode(REGION_USER3, 7, 6, 0, 1, 2, 3, 4, 5); arcadia_init(); } -DRIVER_INIT( dart ) { generic_decode(REGION_USER3, 4, 0, 7, 6, 3, 1, 2, 5); arcadia_init(); } -DRIVER_INIT( ldrba ) { generic_decode(REGION_USER3, 2, 3, 4, 1, 0, 7, 5, 6); arcadia_init(); } -DRIVER_INIT( ninj ) { generic_decode(REGION_USER3, 1, 6, 5, 7, 4, 2, 0, 3); arcadia_init(); } -DRIVER_INIT( rdwr ) { generic_decode(REGION_USER3, 3, 1, 6, 4, 0, 5, 2, 7); arcadia_init(); } -DRIVER_INIT( sdwr ) { generic_decode(REGION_USER3, 6, 3, 4, 5, 2, 1, 0, 7); arcadia_init(); } -DRIVER_INIT( socc ) { generic_decode(REGION_USER3, 0, 7, 1, 6, 5, 4, 3, 2); arcadia_init(); } -DRIVER_INIT( sprg ) { generic_decode(REGION_USER3, 4, 7, 3, 0, 6, 5, 2, 1); arcadia_init(); } -DRIVER_INIT( xeon ) { generic_decode(REGION_USER3, 3, 1, 2, 4, 0, 5, 6, 7); arcadia_init(); } - - - -/************************************* - * - * Game drivers - * - *************************************/ - -/* BIOS */ -GAMEB( 1988, ar_bios, 0, ar_bios, arcadia, arcadia, 0, ROT0, "Arcadia Systems", "Arcadia System BIOS", NOT_A_DRIVER ) - -/* working */ -GAMEB( 1988, ar_airh, ar_bios, ar_bios, arcadia, arcadia, airh, ROT0, "Arcadia Systems", "SportTime Table Hockey (Arcadia, V 2.1)", 0 ) -GAMEB( 1988, ar_bowl, ar_bios, ar_bios, arcadia, arcadia, bowl, ROT0, "Arcadia Systems", "SportTime Bowling (Arcadia, V 2.1)", 0 ) -GAMEB( 1987, ar_dart, ar_bios, ar_bios, arcadia, arcadia, dart, ROT0, "Arcadia Systems", "World Darts (Arcadia, V 2.1)", 0 ) -GAMEB( 1988, ar_fast, ar_bios, ar_bios, arcadia, arcadia, none, ROT0, "Arcadia Systems", "Magic Johnson's Fast Break (Arcadia, V 2.8)", 0 ) -GAMEB( 1988, ar_ldrb, ar_bios, ar_bios, arcadia, arcadia, none, ROT0, "Arcadia Systems", "Leader Board (Arcadia, V 2.4?)", 0 ) -GAMEB( 1988, ar_ldrba, ar_ldrb, ar_bios, arcadia, arcadia, ldrba, ROT0, "Arcadia Systems", "Leader Board (Arcadia, V 2.5)", 0 ) -GAMEB( 1987, ar_ninj, ar_bios, ar_bios, arcadia, arcadia, ninj, ROT0, "Arcadia Systems", "Ninja Mission (Arcadia, V 2.5)", 0 ) -GAMEB( 1988, ar_rdwr, ar_bios, ar_bios, arcadia, arcadia, rdwr, ROT0, "Arcadia Systems", "RoadWars (Arcadia, V 2.3)", 0 ) -GAMEB( 1988, ar_sdwr, ar_bios, ar_bios, arcadia, arcadia, sdwr, ROT0, "Arcadia Systems", "Sidewinder (Arcadia, V 2.1)", 0 ) -GAMEB( 1989, ar_socc, ar_bios, ar_bios, arcadia, arcadia, socc, ROT0, "Arcadia Systems", "World Trophy Soccer (Arcadia, V 3.0)", 0 ) -GAMEB( 1990, ar_spot, ar_bios, ar_bios, arcadia, arcadia, none, ROT0, "Arcadia Systems", "Spot (Arcadia)", 0 ) -GAMEB( 1987, ar_sprg, ar_bios, ar_bios, arcadia, arcadia, sprg, ROT0, "Arcadia Systems", "Space Ranger (Arcadia, V 2.0)", 0 ) -GAMEB( 1988, ar_xeon, ar_bios, ar_bios, arcadia, arcadia, xeon, ROT0, "Arcadia Systems", "Xenon (Arcadia, V 2.3)", 0 ) diff --git a/src/drivers/arkanoid.c b/src/drivers/arkanoid.c deleted file mode 100644 index 2d3d5b0ff..000000000 --- a/src/drivers/arkanoid.c +++ /dev/null @@ -1,1175 +0,0 @@ -/*************************************************************************** - - Arkanoid driver (Preliminary) - - - Japanese version support cocktail mode (DSW #7), the others don't. - - Here are the versions we have: - - arkanoid World version, probably an earlier revision - arknoidu USA version, probably a later revision; There has been code - inserted, NOT patched, so I don't think it's a bootleg - The 68705 code for this one was not available; I made it up from - the World version changing the level data pointer table. - arknoiuo USA version, probably an earlier revision - ROM a75-10.bin should be identical to the real World one. - (It only differs in the country byte from A75-11.ROM) - This version works fine with the real MCU ROM - arkatour Tournament version - The 68705 code for this one was not available; I made it up from - the World version changing the level data pointer table. - arknoidj Japanese version with level selector. - The 68705 code for this one was not available; I made it up from - the World version changing the level data pointer table. - arkbl2 Bootleg of the early Japanese version. - The only difference is that the warning text has been replaced - by "WAIT" - ROM E2.6F should be identical to the real Japanese one. - (It only differs in the country byte from A75-11.ROM) - This version works fine with the real MCU ROM - arkatayt Another bootleg of the early Japanese one, more heavily modified - arkblock Another bootleg of the early Japanese one, more heavily modified - arkbloc2 Another bootleg - arkbl3 Another bootleg of the early Japanese one, more heavily modified - paddle2 Another bootleg of the early Japanese one, more heavily modified - arkangc Game Corporation bootleg with level selector - - - Most if not all Arkanoid sets have a bug in their game code. It occurs on the - final level where the player has to dodge falling objects. The bug resides in - the collision detection routine which sometimes reads from unmapped addresses - above $F000. For these addresses it is vital to read zero values, or else the - player will die for no reason. - - -Stephh's notes (based on the games Z80 code and some tests) : - -0) Useful addresses and routines - -0a) "Game Corporation" bootlegs, Tayto bootlegs, 'arkmcubl', 'ark1ball' - - - Basic routines : - * 0x2044 : BC += A; - * 0x204a : DE += A; - * 0x2050 : HL += A; - * 0x2056 : HL += A; DE = (HL); - * 0x21f1 : Display string : - Inputs : DE = string address in ROM - HL = adress where the string will be displayed - (most of the times in video RAM) - A = colour - String begins with the number of chars to display - (eg: 0x02 "OK" to display "OK") - * 0x210d : Display 1 char (called by previous routine) - * 0x264a : Display score : - Inputs : DE = score address - HL = adress where the score will be displayed - (most of the times in video RAM) - * 0x266f : Display 1 digit (called by previous routine) - * 0x67ae : Play sound (input : register A) - to be confirmed ! - - - Level issues : - * 0xed72 : Level (0x00-0x20) - * 0xed83 : Breakable bricks left (gold bricks are NOT counted) - * 0x55a0 : Display level background - * 0x55d9 : Display level bricks : - Inputs : IY = index for bricks counter - B = number of bricks to display - * 0x55f6 : Display 1 background "column" - * 0x5639 : Display 1 brick with its shadow - * 0xed6b : Hits in the head of last level (0x00-0x10) - This value is reset to 0x00 each time you lose a life. - * 0x8d15 : Check if head of last level is dead - - - Lives issues : - * 0xed71 : Current player lives - * 0xed76 : Player 1 lives - * 0xed7b : Player 2 lives - * 0xef68 : When bit 0 set to 1, no more lives on score for player 1 - * 0xef69 : When bit 0 set to 1, no more lives on score for player 2 - * 0xef6a : Player 1 counter for extra lives on score - * 0xef6b : Player 2 counter for extra lives on score - * 0x22a0 : Draw lives at the bottom left of the screen - * 0x2785 : Check player score for extra life - - - Score issues : - * 0xc4d7 : Player 1 score / 10 (3 bytes, BCD coded, MSB first) - * 0xc4db : Player 2 score / 10 (3 bytes, BCD coded, MSB first) - * 0xc4df : Highscore / 10 (3 bytes, BCD coded, MSB first) - * 0xef6c : Player 1 score / 1000 for next life (2 bytes, BCD coded, MSB first) - * 0xef6e : Player 2 score / 1000 for next life (2 bytes, BCD coded, MSB first) - * 0x2723 : Player score += DE; (BCD => 'daa' instructions) - * 0x274a : Check player score for highscore - - - Speed issues : - * 0xef63 : Speed counter which is increased each time the ball touches - your paddle, any wall (up, left or right) or a brick; - it is reset when speed changes or when you lose a life. - * 0x094c : Speed table (16 bytes) - * 0xc462 : Speed (0x01-0x0e) : - Speed +1 when counter is above the value in the table - (check code at 0x0900) - Speed -2 when you get the slow pill ("S") - (check code at 0x5423) - Speed is sometimes increased when up wall is hit - (check code at 0x1442 and table at 0x1462) - - - Pills issues : - * 0xc658 : Falling pill (0x80 = none - 0x81-0x87) - * 0x5474 : Pills routines table (7 * 2 bytes, LSB first) : - . 0x53ff : "L" pill (laser) - . 0x540d : "E" pill (enlarge) - . 0x5418 : "C" pill (glue) - . 0x5423 : "S" pill (slow) - . 0x5436 : "B" pill (warp door) - . 0x5446 : "D" pill (3 balls) - . 0x5451 : "P" pill (extra life) - * 0x53c8 : Check pill effect - - - Miscellaneous addresses : - * 0xef66 : 0x00 in demo mode else 0x01 - * 0xed6f : Bit 1 determines player : 0 = player 1 - 1 = player 2 - * 0xc4ce : Warp door status : 0x00 = closed - 0x01 = opened - * 0xc469 : Balls in play : 0x00 = 1 ball - 0x02 = 2 or 3 balls - - - Miscellaneous routines : - * 0xa234 : Enter initials - * 0xa343 : Check if player has entered "SEX" as initials; - if so, replace them with "H !" (no side effect) - - -1) Bootlegs with MCU - -1a) 'arkmcubl' - - - Region = 0x76 (Japan). - - The bootleg is based on a Japenese early version we don't have. - - The MCU is dumped, but the game doesn't run with it. - However, there is no problem if I use the one from the World early version. - Until I know what to do with it, I use the MCU from the World early version - and "save" the existing one in REGION_USER1. Let me know if it's good. - - "(c) Taito Corporation 1986". - - Displays the "Arkanoid" title. - - "HARDWARE TEST" message is written, tests are performed, countdown 11 to 0. - - "NOTICE" screen replaces by "WAIT" without any more text. - However, the text is still in the ROM at 0x7b81 with changes at the begining : - * "NOTICE" -> "WAIT " - * 0xbe "THIS GAME IS" -> 0x01 " " 0x7b "IS" 0xde "GAME" 0x6d "IS" - IMO these changes are made to bypass the checksums - - You can't select your starting level - - Known bugs : NONE ! - -1b) 'ark1ball' - - - Note from the dumper (f205v, 2005.09.29) : "It's a bootleg of "Arkanoid (Japan)", - with notice screen eliminated (it only shows a black screen with a red WAIT) - and a fix (no dips selection) 1 ball x game and NO starting level selection". - However, there is still code in the game which tests the Dip Switches ! - - Region = 0x76 (Japan). - - The bootleg is based on a Japenese early version we don't have. - In fact, it is completely based on 'arkmcubl' : - - Z:\MAME\roms>romcmp ark1ball.zip arkmcubl.zip -d - 3 and 2 files - e1.6d a-1.7d IDENTICAL - e2.6f 2palline.7f 99.957275% - 68705p3.6i NO MATCH - - Z:\MAME\data>fc /B e2.6f 2palline.7f - Comparing files e2.6f and 2PALLINE.7F - 000013BE: 20 60 - 00001A28: 05 02 - 00001A29: 03 01 - 00001C80: 20 60 - 00001C9C: 20 60 - 00001ED9: 53 36 - 00001EDA: 53 35 - 00001EE0: 53 33 - 00001EE7: 54 34 - 00001EE9: 52 42 - 00001EF7: 52 42 - 00001EF9: 66 46 - - - The MCU is not dumped, and the game doesn't run with the one from 'arkmcubl'. - However, there is no problem if I use the one from the World early version. - Until I know what to do with it, I use the MCU from the World early version. - - This version is supposed to be a harder version : - * less lives (1 or 2 instead of 3 or 5) - * 60K for 1st bonus life instead of 20K - - Known bugs : - * Names on highscores table are wrong - (ingame bug to bypass the checksums) - -2) "Game Corporation" bootlegs and assimilated ones. - - - Region = 0x76 (Japan). - - All bootlegs are based on a (bootleg) version we don't have. - - Team credits have been replaced by bootleggers code. - - Start of levels table at 0x7bd5 (32 * 2 bytes - MSB first) - -2a) 'arkangc' - - - "(c) Game Corporation 1986". - - Displays the "Arkanoid" title but routine to display "BLOCK" with bricks exists. - - No hardware test and no "NOTICE" screen. - - All reads from 0xf002 are patched. - - No reads from 0xd008. - - "Continue" Dip Switch has been replaced by sort of "Debug" Dip Switch : - * affects ball speed at start of level (0x06 or 0x08) - * affects level 2 (same as normal version or same as level 30) - - You can select your starting level (between 1 and 30) - but they aren't displayed like in the original Japanese set we have ('arknoidj'). - - Level 30 differs from original Japanese version - - There seems to be code to edit levels (check code at 0x8082), but the routines - don't seem to be called anymore. - - Known bugs : - * The paddle isn't centered when starting a new life and / or level; - it doesn't "backup" the paddle position when a life is lost as well - (I can't tell at the moment if it's an ingame bug or not) - So the paddle can sometimes appear in the left wall ! - * You are told be to able to select your starting level from level 1 to level 32 - (ingame bug - check code at 0x3425) - -2a) 'arkangc2' - - - "(c) Game Corporation 1986". - - Displays the "Arkanoid" title but routine to display "BLOCK" with bricks exists. - - No hardware test and no "NOTICE" screen. - - No reads from 0xf002. - - Reads bit 1 from 0xd008. - - "Continue" Dip Switch has been replaced by sort of "Debug" Dip Switch : - * affects ball speed at start of level (0x04 or 0x06) - * affects level 2 (same as normal version or same as level 30) - - You can select your starting level (between 1 and 30) - but they aren't displayed like in the original Japanese set we have ('arknoidj'). - No "What round do you want to start from ?" message though. - - Level 30 differs from original Japanese version (it also differs from 'arkangc') - - The routine to handle the paddle is completely different as in 'arkangc' - and any other bootlegs (check code at 0x96b0) - - There seems to be code to edit levels (check code at 0x8082), but the routines - don't seem to be called anymore. - - Known bugs : - * The paddle isn't centered when starting a new life and / or level; - it doesn't "backup" the paddle position when a life is lost as well - (I can't tell at the moment if it's an ingame bug or not) - So the paddle can sometimes appear in the left wall ! - * You are told be to able to select your starting level from level 1 to level 32 - (ingame bug - check code at 0x3425) - * The "test mode" display is completely corrupted - (ingame bug - check unused code at 0x2f00 instead of standard text) - But you can still press the buttons and test the paddle and the Dip Switches. - -2c) 'arkblock' - - - Same as 'arkangc', the only difference is that it displays "BLOCK" with bricks - instead of displaying the "Arkanoid" title : - - Z:\MAME\dasm>diff arkangc.asm arkbloc2.asm - 8421,8422c8421,8424 - < 32EF: 21 80 03 ld hl,$0380 - < 32F2: CD D1 20 call $20D1 - --- - > 32EF: F3 di - > 32F0: CD 90 7C call $7C90 - > 32F3: C9 ret - > 32F4: 14 inc d - -2d) 'arkbloc2' - - - "(c) Game Corporation 1986". - - Displays "BLOCK" with bricks. - - No hardware test and no "NOTICE" screen. - - All reads from 0xf002 are patched. - - Reads bit 5 from 0xd008. - - You can select your starting level (between 1 and 30) but they aren't displayed - like in the original Japanese set we have ('arknoidj'). - - "Continue" Dip Switch has been replaced by sort of "Debug" Dip Switch : - * affects ball speed at start of level (0x06 or 0x08) - * affects level 2 (same as normal version or same as level 30) - - You can select your starting level (between 1 and 30) - but they aren't displayed like in the original Japanese set we have ('arknoidj'). - - Level 30 differs from original Japanese version (same as the one from 'arkangc2') - - Known bugs : - * You can go from one side of the screen to the other through the walls - (I can't tell at the moment if it's an ingame bug or not) - * You are told be to able to select your starting level from level 1 to level 32 - (ingame bug - check code at 0x3425) - -2e) 'arkgcbl' - - - "1986 ARKANOID 1986". - - Displays the "Arkanoid" title but routine to display "BLOCK" with bricks exists. - - No hardware test and no "NOTICE" screen. - - Most reads from 0xf002 are patched. I need to fix the remaining ones (0x8a and 0xff). - - Reads bits 1 and 5 from 0xd008. - - "Continue" Dip Switch has been replaced by "Round Select" Dip Switch - ("debug" functions from 'arkangc' have been patched). - - Different "Bonus Lives" Dip Switch : - * "60K 100K 60K+" or "60K" when you start a new game - * "20K 60K 60K+" or "20K" when you continue - - Different "Lives" Dip Switch (check table at 0x9a28) - - Specific coinage (always 2C_1C) - - If Dip Switch is set, you can select your starting level (between 1 and 30) - but they aren't displayed like in the original Japanese set we have ('arknoidj'). - - Same level 30 as original Japanese version - - Known bugs : - * You can go from one side of the screen to the other through the walls - (I can't tell at the moment if it's an ingame bug or not) - * You are told be to able to select your starting level from level 1 to level 32 - (ingame bug - check code at 0x3425) - * Sound in "Demo Mode" if 1 coin is inserted (ingame bug - check code at 0x0283) - * Red square on upper middle left "led" when it is supposed to be yellow (ingame bug) - -2f) 'paddle2' - - - Different title, year, and inside texts but routine to display "BLOCK" with bricks exists. - - No hardware test and no "NOTICE" screen. - - I need to fix ALL reads from 0xf002. - - Reads bits 0 to 3 and 5 from 0xd008. - - "Continue" Dip Switch has been replaced by "Round Select" Dip Switch - ("debug" functions from 'arkangc' have been patched). - - No more "Service Mode" Dip Switch (even if code is still there for it). - This Dip Switch now selects how spinners are handled : - * bit 2 = 0 => read from 0xd018 only - * bit 2 = 1 => read from 0xd018 + read from 0xd008 - I set its default to 1 as parts of the game still branch to 0x96b0. - - Different "Bonus Lives" Dip Switch : - * "60K 100K 60K+" or "60K" when you start a new game - * "20K 60K 60K+" or "20K" when you continue - - Different "Lives" Dip Switch (check table at 0x9a28) - - If Dip Switch is set, you can select your starting level (between 1 and 30) - but they aren't displayed like in the original Japanese set we have ('arknoidj'). - - Levels are based on the ones from "Arkanoid II". - - Known bugs : - * You can go from one side of the screen to the other through the walls - (I can't tell at the moment if it's an ingame bug or not) - * You can't correctly enter your initials at the end of the game - (ingame bug ? check code at 0xa23e and difference at 0xa273) - * On intro and last screen, colour around main ship is yellow instead of red - (ingame bug due to numerous patches) - -3) "Tayto" bootlegs and assimilated ones. - - - Region = 0x76 (Japan). - - All bootlegs are based on a Japenese early version we don't have. - - Start of levels table at 0xbd75 (32 * 2 bytes - LSB first) - -3a) 'arkatayt' - - - "(c) Tayto Corporation 1986" but the Taito original logo is displayed. - - Displays the "Arkanoid" title. - - "HARDWARE TEST" message is written, tests are performed, but no countdown. - - "NOTICE" screen replaces by "WAIT" without any more text. - However, the text is still in the ROM at 0x7b81 with changes at the begining : - * "NOTICE" -> "WAIT " - * 0xbe "THIS" -> 0x01 " HIS" - IMO these changes are made to bypass the checksums - - You can't select your starting level - - Known bugs : - * level 16 is corrupted with extra bricks - (ingame bug due to extra code from 0x5042 to 0x5086) - * level 25 is shifted 8 "columns" to the right - (ingame bug due to bad level offset at 0xbda5 : 0xe5 instead of 0xed) - -3b) 'arktayt2' - - - This version is supposed to be a harder version of 'arkatayt' : - * less lives (2 or 3 instead of 3 or 5) - * 60K for 1st bonus life instead of 20K - Same as 'arkatayt' otherwise - - Known bugs : - * level 16 is corrupted with extra bricks - (ingame bug due to extra code from 0x5042 to 0x5086) - * level 25 is shifted 8 "columns" to the right - (ingame bug due to bad level offset at 0xbda5 : 0xe5 instead of 0xed) - * Names on highscores table are wrong - (ingame bug to bypass the checksums) - - -TO DO (2006.09.12) : - - - Check the following Taito sets (adresses, routines and Dip Switches) : - * 'arkanoid' = 'arknoiuo' - * 'arknoidj' - * 'arknoidu' - * 'arkatour' - - Add more notes about main addresses and routines in the Z80 - - Try to understand the problem with the MCU in the following sets : - * 'arkmcubl' - * 'ark1ball' - - -Stephh's log (2006.09.05) : - - - Interverted 'arkblock' and 'arkbloc2' sets for better comparaison - - Renamed sets : - * 'arkbl2' -> 'arkmcubl' - * 'arkbl3' -> 'arkgcbl' - - Changed some games descriptions - - Removed flags from the following sets : - * 'arkbloc2' (old 'arkblock') - * 'arkgcbl' (old 'arkbl3') - * 'paddle2' - This way, even if emulation isn't perfect, people can try them and report bugs. - - -Stephh's log (2006.09.12) : - - - Renamed sets : - * 'arkatayt' -> 'arktayt2' - - Changed some games descriptions - - Added sets : - * 'ark1ball' - * 'arkangc2' - * 'arkatayt' - - Removed flags from the following sets : - * 'arkmcubl' - This way, even if emulation isn't perfect, people can try them and report bugs. - -*************************************************************************** - -Stephh's notes on 'tetrsark' (based on the game Z80 code and some tests) : - - - No reads from 0xd00c, 0xd010 nor 0xd018. - - "Cabinet" Dip Switch : - * when set to "Upright" : - . each player can join and play on its half screen while - the other is already playing - . the screen is never flipped - * when set to "Cocktail" : - . only one player can play : the other player has to wait until - current player is "GAME OVER" to press the Start button - . screen is flipped when player 2 is playing and - it remains flipped until player 1 starts a game - (so "demo mode" can be upside down) - - Credits : even if display is limited to 9, the value still increases; - so if you insert too many coins, it can be reset to 0 ! - - Routines : - * 0x56e3 : Play sound (input : register A) - to be confirmed ! - - Adresses : - * 0xc52b : credits - * 0xc541 : ~(IN5) - test for coins "buttons" (code at 0x0232) - * 0xc516 : ~(IN5) - * 0xc517 : ~(IN4) - - Known bugs : - * Coins "buttons" don't work - we need to use fake BUTTON2 for each player - -***************************************************************************/ - -#include "driver.h" -#include "arkanoid.h" -#include "sound/ay8910.h" - -int arkanoid_bootleg_id; - - -/***************************************************************************/ - -/* Memory Maps */ - -static ADDRESS_MAP_START( arkanoid_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xd000, 0xd000) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xd001, 0xd001) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) - AM_RANGE(0xd008, 0xd008) AM_WRITE(arkanoid_d008_w) /* gfx bank, flip screen etc. */ - AM_RANGE(0xd00c, 0xd00c) AM_READ(arkanoid_68705_input_0_r) /* mainly an input port, with 2 bits from the 68705 */ - AM_RANGE(0xd010, 0xd010) AM_READWRITE(input_port_1_r, watchdog_reset_w) - AM_RANGE(0xd018, 0xd018) AM_READWRITE(arkanoid_Z80_mcu_r, arkanoid_Z80_mcu_w) /* input from the 68705 */ - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(arkanoid_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xe800, 0xe83f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe840, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xffff) AM_READNOP /* fixes instant death in final level */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bootleg_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xd000, 0xd000) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xd001, 0xd001) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) - AM_RANGE(0xd008, 0xd008) AM_WRITE(arkanoid_d008_w) /* gfx bank, flip screen etc. */ - AM_RANGE(0xd00c, 0xd00c) AM_READ(input_port_0_r) - AM_RANGE(0xd010, 0xd010) AM_READWRITE(input_port_1_r, watchdog_reset_w) - AM_RANGE(0xd018, 0xd018) AM_READ(arkanoid_input_2_r) AM_WRITENOP - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_WRITE(arkanoid_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xe800, 0xe83f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe840, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xffff) AM_READNOP /* fixes instant death in final level */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE(arkanoid_68705_portA_r, arkanoid_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_READ(arkanoid_input_2_r) - AM_RANGE(0x0002, 0x0002) AM_READWRITE(arkanoid_68705_portC_r, arkanoid_68705_portC_w) - AM_RANGE(0x0004, 0x0004) AM_WRITE(arkanoid_68705_ddrA_w) - AM_RANGE(0x0006, 0x0006) AM_WRITE(arkanoid_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_RAM - AM_RANGE(0x0080, 0x07ff) AM_ROM -ADDRESS_MAP_END - - -/***************************************************************************/ - - -/* Input Ports */ - -#define ARKNOI_IN0\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )\ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )\ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) /* input from the 68705, some bootlegs need it to be 1 */\ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from the 68705 */ - -#define ARKNOI_IN1\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL\ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define ARKNOI_SPINNERS\ - PORT_START_TAG("IN2") /* Spinner Player 1 */\ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15)\ - PORT_START_TAG("IN3") /* Spinner Player 2 */\ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_COCKTAIL - -INPUT_PORTS_START( arkanoid ) - ARKNOI_IN0 - ARKNOI_IN1 - ARKNOI_SPINNERS - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "20K 60K 60K+" ) - PORT_DIPSETTING( 0x00, "20K" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) /* Table at 0x9a28 */ - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) /* Table at 0x0328 */ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) -INPUT_PORTS_END - -/* Different coinage and additionnal "Cabinet" Dip Switch */ -INPUT_PORTS_START( arknoidj ) - ARKNOI_IN0 - ARKNOI_IN1 - ARKNOI_SPINNERS - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "20K 60K 60K+" ) - PORT_DIPSETTING( 0x00, "20K" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) /* Table at 0x9a28 */ - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) /* table at 0x0320 */ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( ark1ball ) - PORT_INCLUDE(arknoidj) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) /* "ld a,$60" at 0x93bd and "ld a,$60" at 0x9c7f and 0x9c9b */ - PORT_DIPSETTING( 0x10, "60K 100K 60K+" ) - PORT_DIPSETTING( 0x00, "60K" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) /* Table at 0x9a28 */ - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x00, "2" ) -INPUT_PORTS_END - -INPUT_PORTS_START( arkangc ) - PORT_INCLUDE(arknoidj) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "Ball Speed" ) /* Speed at 0xc462 (code at 0x18aa) - Also affects level 2 (code at 0x7b82) */ - PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) /* 0xc462 = 0x06 - Normal level 2 */ - PORT_DIPSETTING( 0x00, "Faster" ) /* 0xc462 = 0x08 - Level 2 same as level 30 */ -INPUT_PORTS_END - -INPUT_PORTS_START( arkangc2 ) - PORT_INCLUDE(arknoidj) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "Ball Speed" ) /* Speed at 0xc462 (code at 0x18aa) - Also affects level 2 (code at 0x7b82) */ - PORT_DIPSETTING( 0x01, "Slower" ) /* 0xc462 = 0x04 - Normal level 2 */ - PORT_DIPSETTING( 0x00, DEF_STR ( Normal ) ) /* 0xc462 = 0x06 - Level 2 same as level 30 */ -INPUT_PORTS_END - -INPUT_PORTS_START( arkgcbl ) - PORT_INCLUDE(arknoidj) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x00, "Round Select" ) /* Check code at 0x7bc2 - Speed at 0xc462 (code at 0x18aa) */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) /* 0xc462 = 0x06 */ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* 0xc462 = 0x06 */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) /* "ld a,$60" at 0x93bd and "ld a,$20" at 0x9c7f and 0x9c9b */ - PORT_DIPSETTING( 0x10, "60K 100K 60K+" ) /* But "20K 60K 60K+" when continue */ - PORT_DIPSETTING( 0x00, "60K" ) /* But "20K" when continue */ - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Always 2C_1C - check code at 0x7d5e */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( paddle2 ) - PORT_INCLUDE(arknoidj) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x00, "Round Select" ) /* Check code at 0x7bc2 - Speed at 0xc462 (code at 0x18aa) */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) /* 0xc462 = 0x06 */ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* 0xc462 = 0x06 */ - PORT_DIPNAME( 0x04, 0x04, "Controls ?" ) /* Check code at 0x96a1 and read notes */ - PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) /* "ld a,$60" at 0x93bd and "ld a,$20" at 0x9c7f and 0x9c9b */ - PORT_DIPSETTING( 0x10, "60K 100K 60K+" ) /* But "20K 60K 60K+" when continue */ - PORT_DIPSETTING( 0x00, "60K" ) /* But "20K" when continue */ - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) /* Table at 0x9a28 */ - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "3" ) -INPUT_PORTS_END - -INPUT_PORTS_START( arktayt2 ) - PORT_INCLUDE(arknoidj) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) /* "ld a,$60" at 0x93bd and "ld a,$60" at 0x9c7f and 0x9c9b */ - PORT_DIPSETTING( 0x10, "60K 100K 60K+" ) - PORT_DIPSETTING( 0x00, "60K" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) ) /* Table at 0x9a28 */ - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) /* Table at 0x0320 */ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( tetrsark ) - PORT_START_TAG("IN0") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // or up? it rotates the piece. - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) ) /* Also affects numbers of players - read notes */ - PORT_DIPSETTING( 0x10, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) ) /* Table at 0x0207 */ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // or up? it rotates the piece. - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) -// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) // WTF? it does't work -// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) // WTF? it does't work - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) -INPUT_PORTS_END - - -/***************************************************************************/ - -/* Graphics Layouts */ - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 3, /* 3 bits per pixel */ - { 2*4096*8*8, 4096*8*8, 0 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 consecutive bytes */ -}; - -/* Graphics Decode Information */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 64 }, - // sprites use the same characters above, but are 16x8 - { -1 } -}; - -/* Sound Interfaces */ - -static struct AY8910interface ay8910_interface = -{ - input_port_5_r, - input_port_4_r -}; - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( arkanoid ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", Z80, 6000000) // 6 MHz ??? - MDRV_CPU_PROGRAM_MAP(arkanoid_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - - MDRV_CPU_ADD_TAG("mcu", M68705, 500000) // .5 MHz (don't know really how fast, but it doesn't need to even be this fast) - MDRV_CPU_PROGRAM_MAP(mcu_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) // 100 CPU slices per second to synchronize between the MCU and the main CPU - - MDRV_MACHINE_START(arkanoid) - MDRV_MACHINE_RESET(arkanoid) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(arkanoid) - MDRV_VIDEO_UPDATE(arkanoid) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bootleg ) - MDRV_IMPORT_FROM(arkanoid) - - // basic machine hardware - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(bootleg_map, 0) - - MDRV_CPU_REMOVE("mcu") -MACHINE_DRIVER_END - - -/***************************************************************************/ - -/* ROMs */ - -ROM_START( arkanoid ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a75-01-1.rom", 0x0000, 0x8000, CRC(5bcda3b0) SHA1(52cadd38b5f8e8856f007a9c602d6b508f30be65) ) - ROM_LOAD( "a75-11.rom", 0x8000, 0x8000, CRC(eafd7191) SHA1(d2f8843b716718b1de209e97a874e8ce600f3f87) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arkanoid.uc", 0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arknoidu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a75-19.bin", 0x0000, 0x8000, CRC(d3ad37d7) SHA1(a172a1ef5bb83ee2d8ed2842ef8968af19ad411e) ) - ROM_LOAD( "a75-18.bin", 0x8000, 0x8000, CRC(cdc08301) SHA1(05f54353cc8333af14fa985a2764960e20e8161a) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arknoidu.uc", 0x0000, 0x0800, BAD_DUMP CRC(de518e47) SHA1(b8eddd1c566505fb69e3d1207c7a9720dfb9f503) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arknoiuo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a75-01-1.rom", 0x0000, 0x8000, CRC(5bcda3b0) SHA1(52cadd38b5f8e8856f007a9c602d6b508f30be65) ) - ROM_LOAD( "a75-10.rom", 0x8000, 0x8000, CRC(a1769e15) SHA1(fbb45731246a098b29eb08de5d63074b496aaaba) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arkanoid.uc", 0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkatour ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "t_ark1.bin", 0x0000, 0x8000, CRC(e3b8faf5) SHA1(4c09478fa41881fa89ee6afb676aeb780f17ac2e) ) - ROM_LOAD( "t_ark2.bin", 0x8000, 0x8000, CRC(326aca4d) SHA1(5a194b7a0361236d471b24905dc6434372f81252) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arkatour.uc", 0x0000, 0x0800, BAD_DUMP CRC(d3249559) SHA1(b1542764450016614e9e03cedd6a2f1e59961789) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t_ark3.bin", 0x00000, 0x8000, CRC(5ddea3cf) SHA1(58f16515898b7cc2697bf7663a60d9ca0db6da95) ) - ROM_LOAD( "t_ark4.bin", 0x08000, 0x8000, CRC(5fcf2e85) SHA1(f721f0afb0550cc64bff26681856a7576398d9b5) ) - ROM_LOAD( "t_ark5.bin", 0x10000, 0x8000, CRC(7b76b192) SHA1(a68aa08717646a6c322cf3455df07f50df9e9f33) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arknoidj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a75-21.rom", 0x0000, 0x8000, CRC(bf0455fc) SHA1(250522b84b9f491c3f4efc391bf6aa6124361369) ) - ROM_LOAD( "a75-22.rom", 0x8000, 0x8000, CRC(3a2688d3) SHA1(9633a661352def3d85f95ca830f6d761b0b5450e) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arknoidj.uc", 0x0000, 0x0800, BAD_DUMP CRC(0a4abef6) SHA1(fdce0b7a2eab7fd4f1f4fc3b93120b1ebc16078e) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkmcubl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "e1.6d", 0x0000, 0x8000, CRC(dd4f2b72) SHA1(399a8636030a702dafc1da926f115df6f045bef1) ) - ROM_LOAD( "e2.6f", 0x8000, 0x8000, CRC(bbc33ceb) SHA1(e9b6fef98d0d20e77c7a1c25eff8e9a8c668a258) ) - - /* MCU from the World early version ('arkanoid'), so the game is playable */ - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "arkmcubl.uc", 0x0000, 0x0800, BAD_DUMP CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ - - /* Until we know what this MCU is supposed to do, we put it here */ - ROM_REGION( 0x0800, REGION_USER1, 0 ) - ROM_LOAD( "68705p3.6i", 0x0000, 0x0800, CRC(389a8cfb) SHA1(9530c051b61b5bdec7018c6fdc1ea91288a406bd) ) -ROM_END - -ROM_START( ark1ball ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a-1.7d", 0x0000, 0x8000, CRC(dd4f2b72) SHA1(399a8636030a702dafc1da926f115df6f045bef1) ) - ROM_LOAD( "2palline.7f", 0x8000, 0x8000, CRC(ed6b62ab) SHA1(4d4991b422756bd304fc5ef236aac1422fe1f999) ) - - /* MCU from the World early version ('arkanoid'), so the game is playable */ - ROM_REGION( 0x0800, REGION_CPU2, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "ark1ball.uc", 0x0000, 0x0800, BAD_DUMP CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a-3.3a", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a-4.3d", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a-5.3f", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkangc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "arkgc.1", 0x0000, 0x8000, CRC(c54232e6) SHA1(beb759cee68009a06824b755d2aa26d7d436b5b0) ) - ROM_LOAD( "arkgc.2", 0x8000, 0x8000, CRC(9f0d4754) SHA1(731c9224616a338084edd6944c754d68eabba7f2) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkangc2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.81", 0x0000, 0x8000, CRC(bd6eb996) SHA1(a048ff01156166595dca0b6bee46344f7db548a8) ) - ROM_LOAD( "2.82", 0x8000, 0x8000, CRC(29dbe452) SHA1(b99cb98549bddf1e673e2e715c80664001581f9f) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkblock ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ark-6.bin", 0x0000, 0x8000, CRC(0be015de) SHA1(f4209085b59d2c96a62ac9657c7bf097da55362b) ) - ROM_LOAD( "arkgc.2", 0x8000, 0x8000, CRC(9f0d4754) SHA1(731c9224616a338084edd6944c754d68eabba7f2) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkbloc2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "block01.bin", 0x0000, 0x8000, CRC(5be667e1) SHA1(fbc5c97d836c404a2e6c007c3836e36b52ae75a1) ) - ROM_LOAD( "block02.bin", 0x8000, 0x8000, CRC(4f883ef1) SHA1(cb090a57fc75f17a3e2ba637f0e3ec93c1d02cea) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkgcbl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "arkanunk.1", 0x0000, 0x8000, CRC(b0f73900) SHA1(2c9a36cc1d2a3f33ec81d63c1c325554b818d2d3) ) - ROM_LOAD( "arkanunk.2", 0x8000, 0x8000, CRC(9827f297) SHA1(697874e73e045eb5a7bf333d7310934b239c0adf) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( paddle2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "paddle2.16", 0x0000, 0x8000, CRC(a286333c) SHA1(0b2c9cb0df236f327413d0c541453e1ba979ea38) ) - ROM_LOAD( "paddle2.17", 0x8000, 0x8000, CRC(04c2acb5) SHA1(7ce8ba31224f705b2b6ed0200404ef5f8f688001) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a75-03.rom", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "a75-04.rom", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "a75-05.rom", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arkatayt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic81-v.3f", 0x0000, 0x8000, CRC(154e2c6f) SHA1(dce3ae1ca83b5071ebec96f3ae18b96abe828ce5) ) - ROM_LOAD( "ic82-w.5f", 0x8000, 0x8000, CRC(4fa8cefa) SHA1(fb825834da9c8638e6a328784922b5dc23f16564) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1-ic33.2c", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "2-ic34.3c", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "3-ic35.5c", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "ic73.11e", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "ic74.12e", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "ic75.13e", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -ROM_START( arktayt2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic81.3f", 0x0000, 0x8000, CRC(6e0a2b6f) SHA1(5227d7a944cb1e815f60ec87a67f7462870ff9fe) ) - ROM_LOAD( "ic82.5f", 0x8000, 0x8000, CRC(5a97dd56) SHA1(b71c7b5ced2b0eebbcc5996dd21a1bb1c2da4819) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1-ic33.2c", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) ) - ROM_LOAD( "2-ic34.3c", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) ) - ROM_LOAD( "3-ic35.5c", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "ic73.11e", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "ic74.12e", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "ic75.13e", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - -/* the other Dr. Korea game (Hexa, hexa.c) also appears to be derived from Arkanoid hardware */ - -ROM_START( tetrsark ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic17.1", 0x00000, 0x8000, CRC(1a505eda) SHA1(92f171a12cf0c326d29c244514718df04b998426) ) - ROM_LOAD( "ic16.2", 0x08000, 0x8000, CRC(157bc4df) SHA1(b2c704148e7e3ca61ab51308ee0d66ea1088bff3) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic64.3", 0x00000, 0x8000, CRC(c3e9b290) SHA1(6e99520606c654e531dbeb9a598cfbb443c24dff) ) - ROM_LOAD( "ic63.4", 0x08000, 0x8000, CRC(de9a368f) SHA1(ffbb2479200648da3f3e7ab7cebcdb604f6dfb3d) ) - ROM_LOAD( "ic62.5", 0x10000, 0x8000, CRC(c8e80a00) SHA1(4bee4c36ee768ae68ebc64e639fdc43f61c74f92) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "a75-07.bpr", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) ) /* red component */ - ROM_LOAD( "a75-08.bpr", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) ) /* green component */ - ROM_LOAD( "a75-09.bpr", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) ) /* blue component */ -ROM_END - - -/* Driver Initialization */ - -static void arkanoid_bootleg_init( void ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xf002, 0xf002, 0, 0, arkanoid_bootleg_f002_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd018, 0xd018, 0, 0, arkanoid_bootleg_d018_w ); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd008, 0xd008, 0, 0, arkanoid_bootleg_d008_r ); -} - -static DRIVER_INIT( arkangc ) -{ - arkanoid_bootleg_id = ARKANGC; - arkanoid_bootleg_init(); -} - -static DRIVER_INIT( arkangc2 ) -{ - arkanoid_bootleg_id = ARKANGC2; - arkanoid_bootleg_init(); -} - -static DRIVER_INIT( arkblock ) -{ - arkanoid_bootleg_id = ARKBLOCK; - arkanoid_bootleg_init(); -} - -static DRIVER_INIT( arkbloc2 ) -{ - arkanoid_bootleg_id = ARKBLOC2; - arkanoid_bootleg_init(); -} - -static DRIVER_INIT( arkgcbl ) -{ - arkanoid_bootleg_id = ARKGCBL; - arkanoid_bootleg_init(); -} - -static DRIVER_INIT( paddle2 ) -{ - arkanoid_bootleg_id = PADDLE2; - arkanoid_bootleg_init(); -} - - -static DRIVER_INIT( tetrsark ) -{ - unsigned char *ROM = memory_region(REGION_CPU1); - int x; - - for (x=0;x<0x8000;x++) - { - ROM[x]=ROM[x]^0x94; - } -} - - -/* Game Drivers */ - -GAME( 1986, arkanoid, 0, arkanoid, arkanoid, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arknoidu, arkanoid, arkanoid, arkanoid, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arknoiuo, arkanoid, arkanoid, arkanoid, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, older)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arknoidj, arkanoid, arkanoid, arknoidj, 0, ROT90, "Taito Corporation", "Arkanoid (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkmcubl, arkanoid, arkanoid, arknoidj, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU)", GAME_SUPPORTS_SAVE ) -GAME( 1986, ark1ball, arkanoid, arkanoid, ark1ball, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkangc, ROT90, "bootleg", "Arkanoid (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkangc2, ROT90, "bootleg", "Arkanoid (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkblock, ROT90, "bootleg", "Block (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkbloc2, ROT90, "bootleg", "Block (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkgcbl, arkanoid, bootleg, arkgcbl, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware)", GAME_SUPPORTS_SAVE ) -GAME( 1988, paddle2, arkanoid, bootleg, paddle2, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arkatayt, arkanoid, bootleg, arknoidj, 0, ROT90, "bootleg", "Arkanoid (Tayto bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, 0, ROT90, "bootleg", "Arkanoid (Tayto bootleg, harder)", GAME_SUPPORTS_SAVE ) -GAME( 1987, arkatour, arkanoid, arkanoid, arkanoid, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", GAME_SUPPORTS_SAVE ) -GAME( 19??, tetrsark, 0, bootleg, tetrsark, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS ) - diff --git a/src/drivers/asterix.c b/src/drivers/asterix.c deleted file mode 100644 index 03d4853ad..000000000 --- a/src/drivers/asterix.c +++ /dev/null @@ -1,395 +0,0 @@ -/*************************************************************************** - -Asterix - -TODO: -the konami logo: in the original the outline is drawn, then there's a slight -delay of 1 or 2 seconds, then it fills from the top to the bottom with the -colour, including the word "Konami" - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/2151intf.h" -#include "sound/k053260.h" - -VIDEO_START( asterix ); -VIDEO_UPDATE( asterix ); -WRITE16_HANDLER( asterix_spritebank_w ); - -static unsigned char cur_control2; -static int init_eeprom_count; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "111000", /* read command */ - "111100", /* write command */ - "1100100000000",/* erase command */ - "1100000000000",/* lock command */ - "1100110000000" /* unlock command */ -}; - -#if 0 -static void eeprom_init(void) -{ - EEPROM_init(&eeprom_interface); - init_eeprom_count = 0; -} -#endif - -static NVRAM_HANDLER( asterix ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ16_HANDLER( control1_r ) -{ - int res; - - /* bit 8 is EEPROM data */ - /* bit 9 is EEPROM ready */ - /* bit 10 is service button */ - res = (EEPROM_read_bit()<<8) | input_port_1_word_r(0,0); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= 0xfbff; - } - - return res; -} - - - -#if 0 -static READ16_HANDLER( control2_r ) -{ - return cur_control2; -} -#endif - -static WRITE16_HANDLER( control2_w ) -{ - if (ACCESSING_LSB) - { - cur_control2 = data; - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - - EEPROM_write_bit(data & 0x01); - EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 5 is select tile bank */ - K056832_set_tile_bank((data & 0x20) >> 5); - } -} - -static INTERRUPT_GEN( asterix_interrupt ) -{ - // global interrupt masking - if (!K056832_is_IRQ_enabled(0)) return; - - cpunum_set_input_line(0, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the - mask used is 0 or 7 */ -} - -static READ16_HANDLER( asterix_sound_r ) -{ - return K053260_0_r(2 + offset); -} - -static void nmi_callback(int param) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); -} - -static WRITE8_HANDLER( sound_arm_nmi_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); - timer_set(TIME_IN_USEC(5),0,nmi_callback); -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -// Check the routine at 7f30 in the ead version. -// You're not supposed to laugh. -// This emulation is grossly overkill but hey, I'm having fun. - -static UINT16 prot[2]; - -static WRITE16_HANDLER( protection_w ) -{ - COMBINE_DATA(prot+offset); - - if (offset == 1) - { - UINT32 cmd = (prot[0] << 16) | prot[1]; - switch (cmd >> 24) - { - case 0x64: - { - UINT32 param1 = (program_read_word(cmd & 0xffffff) << 16) - | program_read_word((cmd & 0xffffff) + 2); - UINT32 param2 = (program_read_word((cmd & 0xffffff) + 4) << 16) - | program_read_word((cmd & 0xffffff) + 6); - - switch (param1 >> 24) - { - case 0x22: - { - int size = param2 >> 24; - param1 &= 0xffffff; - param2 &= 0xffffff; - while(size >= 0) - { - program_write_word(param2, program_read_word(param1)); - param1 += 2; - param2 += 2; - size--; - } - break; - } - } - break; - } - } - } -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_READ(MRA16_RAM) // Main RAM. - AM_RANGE(0x180000, 0x1807ff) AM_READ(K053245_word_r) // Sprites - AM_RANGE(0x180800, 0x180fff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x20000f) AM_READ(K053244_word_r) - AM_RANGE(0x280000, 0x280fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30001f) AM_READ(K053244_lsb_r) - AM_RANGE(0x380000, 0x380001) AM_READ(input_port_0_word_r) - AM_RANGE(0x380002, 0x380003) AM_READ(control1_r) - AM_RANGE(0x380200, 0x380203) AM_READ(asterix_sound_r) // 053260 - AM_RANGE(0x380600, 0x380601) AM_READ(MRA16_NOP) // Watchdog - AM_RANGE(0x400000, 0x400fff) AM_READ(K056832_ram_half_word_r) // Graphic planes - AM_RANGE(0x420000, 0x421fff) AM_READ(K056832_old_rom_word_r) // Passthrough to tile roms -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x180000, 0x1807ff) AM_WRITE(K053245_word_w) - AM_RANGE(0x180800, 0x180fff) AM_WRITE(MWA16_RAM) // extra RAM, or mirror for the above? - AM_RANGE(0x200000, 0x20000f) AM_WRITE(K053244_word_w) - AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30001f) AM_WRITE(K053244_lsb_w) - AM_RANGE(0x380100, 0x380101) AM_WRITE(control2_w) - AM_RANGE(0x380200, 0x380203) AM_WRITE(K053260_0_lsb_w) - AM_RANGE(0x380300, 0x380301) AM_WRITE(sound_irq_w) - AM_RANGE(0x380400, 0x380401) AM_WRITE(asterix_spritebank_w) - AM_RANGE(0x380500, 0x38051f) AM_WRITE(K053251_lsb_w) - AM_RANGE(0x380600, 0x380601) AM_WRITE(MWA16_NOP) // Watchdog - AM_RANGE(0x380700, 0x380707) AM_WRITE(K056832_b_word_w) - AM_RANGE(0x380800, 0x380803) AM_WRITE(protection_w) - AM_RANGE(0x400000, 0x400fff) AM_WRITE(K056832_ram_half_word_w) - AM_RANGE(0x440000, 0x44003f) AM_WRITE(K056832_word_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf801, 0xf801) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xfa00, 0xfa2f) AM_READ(K053260_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf801, 0xf801) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xfa00, 0xfa2f) AM_WRITE(K053260_0_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w) - AM_RANGE(0xfe00, 0xfe00) AM_WRITE(YM2151_register_port_0_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( asterix ) - PORT_START_TAG("IN0") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0xf800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED ) // EEPROM data - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) // EEPROM ready (always 1) - PORT_SERVICE_NO_TOGGLE(0x0400, IP_ACTIVE_LOW ) - PORT_BIT( 0xf800, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - -static struct K053260_interface k053260_interface = -{ - REGION_SOUND1 /* memory region */ -}; - -static MACHINE_DRIVER_START( asterix ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(asterix_interrupt,1) - - MDRV_CPU_ADD(Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(asterix) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(asterix) - MDRV_VIDEO_UPDATE(asterix) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K053260, 4000000) - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(0, "left", 0.75) - MDRV_SOUND_ROUTE(1, "right", 0.75) -MACHINE_DRIVER_END - - -ROM_START( asterix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "aster8c.bin", 0x000000, 0x20000, CRC(61d6621d) SHA1(908a344e9bbce0c7544bd049494258d1d3ad073b) ) - ROM_LOAD16_BYTE( "aster8d.bin", 0x000001, 0x20000, CRC(53aac057) SHA1(7401ca5b70f384688c3353fc1ac9ef0b27814c66) ) - ROM_LOAD16_BYTE( "aster7c.bin", 0x080000, 0x20000, CRC(8223ebdc) SHA1(e4aa39e4bc1d210bdda5b0cb41d6c8006c48dd24) ) - ROM_LOAD16_BYTE( "aster7d.bin", 0x080001, 0x20000, CRC(9f351828) SHA1(e03842418f08e6267eeea03362450da249af73be) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "aster5f.bin", 0x000000, 0x010000, CRC(d3d0d77b) SHA1(bfa77a8bf651dc27f481e96a2d63242084cc214c) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "aster16k.bin", 0x000000, 0x080000, CRC(b9da8e9c) SHA1(a46878916833923e421da0667e37620ae0b77744) ) - ROM_LOAD( "aster12k.bin", 0x080000, 0x080000, CRC(7eb07a81) SHA1(672c0c60834df7816d33d88643e4575b8ca9bcc1) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "aster7k.bin", 0x000000, 0x200000, CRC(c41278fe) SHA1(58e5f67a67ae97e0b264489828cd7e74662c5ed5) ) - ROM_LOAD( "aster3k.bin", 0x200000, 0x200000, CRC(32efdbc4) SHA1(b7e8610aa22249176d82b750e2549d1eea6abe4f) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "aster1e.bin", 0x000000, 0x200000, CRC(6df9ec0e) SHA1(cee60312e9813bd6579f3ac7c3c2521a8e633eca) ) -ROM_END - -ROM_START( astrxeac ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "asterix.8c", 0x000000, 0x20000, CRC(0ccd1feb) SHA1(016d642e3a745f0564aa93f0f66d5c0f37962990) ) - ROM_LOAD16_BYTE( "asterix.8d", 0x000001, 0x20000, CRC(b0805f47) SHA1(b58306164e8fec69002656993ae80abbc8f136cd) ) - ROM_LOAD16_BYTE( "aster7c.bin", 0x080000, 0x20000, CRC(8223ebdc) SHA1(e4aa39e4bc1d210bdda5b0cb41d6c8006c48dd24) ) - ROM_LOAD16_BYTE( "aster7d.bin", 0x080001, 0x20000, CRC(9f351828) SHA1(e03842418f08e6267eeea03362450da249af73be) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "aster5f.bin", 0x000000, 0x010000, CRC(d3d0d77b) SHA1(bfa77a8bf651dc27f481e96a2d63242084cc214c) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "aster16k.bin", 0x000000, 0x080000, CRC(b9da8e9c) SHA1(a46878916833923e421da0667e37620ae0b77744) ) - ROM_LOAD( "aster12k.bin", 0x080000, 0x080000, CRC(7eb07a81) SHA1(672c0c60834df7816d33d88643e4575b8ca9bcc1) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "aster7k.bin", 0x000000, 0x200000, CRC(c41278fe) SHA1(58e5f67a67ae97e0b264489828cd7e74662c5ed5) ) - ROM_LOAD( "aster3k.bin", 0x200000, 0x200000, CRC(32efdbc4) SHA1(b7e8610aa22249176d82b750e2549d1eea6abe4f) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "aster1e.bin", 0x000000, 0x200000, CRC(6df9ec0e) SHA1(cee60312e9813bd6579f3ac7c3c2521a8e633eca) ) -ROM_END - -ROM_START( astrxeaa ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "068eaa01.8c", 0x000000, 0x20000, CRC(85b41d8e) SHA1(e1326f6d61b8097f5201d5bd37e4d2a357d17b47) ) - ROM_LOAD16_BYTE( "068eaa02.8d", 0x000001, 0x20000, CRC(8e886305) SHA1(41a9de2cdad8c1185b4d13ea5b4a9309716947c5) ) - ROM_LOAD16_BYTE( "aster7c.bin", 0x080000, 0x20000, CRC(8223ebdc) SHA1(e4aa39e4bc1d210bdda5b0cb41d6c8006c48dd24) ) - ROM_LOAD16_BYTE( "aster7d.bin", 0x080001, 0x20000, CRC(9f351828) SHA1(e03842418f08e6267eeea03362450da249af73be) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "aster5f.bin", 0x000000, 0x010000, CRC(d3d0d77b) SHA1(bfa77a8bf651dc27f481e96a2d63242084cc214c) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "aster16k.bin", 0x000000, 0x080000, CRC(b9da8e9c) SHA1(a46878916833923e421da0667e37620ae0b77744) ) - ROM_LOAD( "aster12k.bin", 0x080000, 0x080000, CRC(7eb07a81) SHA1(672c0c60834df7816d33d88643e4575b8ca9bcc1) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "aster7k.bin", 0x000000, 0x200000, CRC(c41278fe) SHA1(58e5f67a67ae97e0b264489828cd7e74662c5ed5) ) - ROM_LOAD( "aster3k.bin", 0x200000, 0x200000, CRC(32efdbc4) SHA1(b7e8610aa22249176d82b750e2549d1eea6abe4f) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "aster1e.bin", 0x000000, 0x200000, CRC(6df9ec0e) SHA1(cee60312e9813bd6579f3ac7c3c2521a8e633eca) ) -ROM_END - - -static DRIVER_INIT( asterix ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); - -#if 0 - *(UINT16 *)(memory_region(REGION_CPU1) + 0x07f34) = 0x602a; - *(UINT16 *)(memory_region(REGION_CPU1) + 0x00008) = 0x0400; -#endif -} - - -GAME( 1992, asterix, 0, asterix, asterix, asterix, ROT0, "Konami", "Asterix (ver EAD)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, astrxeac, asterix, asterix, asterix, asterix, ROT0, "Konami", "Asterix (ver EAC)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, astrxeaa, asterix, asterix, asterix, asterix, ROT0, "Konami", "Asterix (ver EAA)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/asteroid.c b/src/drivers/asteroid.c deleted file mode 100644 index 3eef1683c..000000000 --- a/src/drivers/asteroid.c +++ /dev/null @@ -1,928 +0,0 @@ -/*************************************************************************** - - Atari Asteroids hardware - - Games supported: - * Asteroids - * Asteroids Deluxe - * Lunar Lander - - Known bugs: - * the ERROR message in Asteroids Deluxe self test is related to a pokey problem - -Information from a Tech Tip: - -Asteroids Modification: - -As a result of inquires regarding the achievement of extremely high scores on Asteroids, -we have developed a modification that will accomplish the following: - When the small flying saucer enters the screen, it fires immediately in the direction - of the player. The missiles also have a wraparound capability. - Originally, the program was entered so that the saucer would go one-sixth of the way - across the screen before firing, without the wraparound capability. - -There are two revisions currently in the field, ROM revision 02 has the flip-flop capability, - version 01 does not. -Kits are available immediately from your Atari Distributor. To determine which kit you - require, check ROMs on your Asteroids PCB. If ROM code is "-01" order kit no. 08-0303009. - If ROM code is "-02", order no. 08-0303008. - -*** It looks like both current sets are the older "easier" version. We need dumps of the updates - for both sets. - - Asteroids-deluxe state-prom added by HIGHWAYMAN. - The prom pcb location is:C8 and is 256x4 - (i need to update the dump, this one is read in 8bit-mode) -**************************************************************************** - - Asteroids Memory Map (preliminary) - - Asteroids settings: - - 0 = OFF 1 = ON X = Don't Care $ = Atari suggests - - - 8 SWITCH DIP - 87654321 - -------- - XXXXXX11 English - XXXXXX10 German - XXXXXX01 French - XXXXXX00 Spanish - XXXXX1XX 4-ship game - XXXXX0XX 3-ship game - 11XXXXXX Free Play - 10XXXXXX 1 Coin for 2 Plays - 01XXXXXX 1 Coin for 1 Play - 00XXXXXX 2 Coins for 1 Play - - Asteroids Deluxe settings: - - 0 = OFF 1 = ON X = Don't Care $ = Atari suggests - - - 8 SWITCH DIP (R5) - 87654321 - -------- - XXXXXX11 English $ - XXXXXX10 German - XXXXXX01 French - XXXXXX00 Spanish - XXXX11XX 2-4 ships - XXXX10XX 3-5 ships $ - XXXX01XX 4-6 ships - XXXX00XX 5-7 ships - XXX1XXXX 1-play minimum $ - XXX0XXXX 2-play minimum - XX1XXXXX Easier gameplay for first 30000 points + - XX0XXXXX Hard gameplay throughout the game + - 11XXXXXX Bonus ship every 10,000 points $ ! - 10XXXXXX Bonus ship every 12,000 points ! - 01XXXXXX Bonus ship every 15,000 points ! - 00XXXXXX No bonus ships (adds one ship at game start) - - + only with the newer romset - ! not "every", but "at", e.g. only once. - - Thanks to Gregg Woodcock for the info. - - 8 SWITCH DIP (L8) - 87654321 - -------- - XXXXXX11 Free Play - XXXXXX10 1 Coin = 2 Plays - XXXXXX01 1 Coin = 1 Play - XXXXXX00 2 Coins = 1 Play $ - XXXX11XX Right coin mech * 1 $ - XXXX10XX Right coin mech * 4 - XXXX01XX Right coin mech * 5 - XXXX00XX Right coin mech * 6 - XXX1XXXX Center coin mech * 1 $ - XXX0XXXX Center coin mech * 2 - 111XXXXX No bonus coins - 110XXXXX For every 2 coins inserted, game logic adds 1 more coin - 101XXXXX For every 4 coins inserted, game logic adds 1 more coin - 100XXXXX For every 4 coins inserted, game logic adds 2 more coins $ - 011XXXXX For every 5 coins inserted, game logic adds 1 more coin - -**************************************************************************** - - Lunar Lander Memory Map (preliminary) - - Lunar Lander settings: - - 0 = OFF 1 = ON x = Don't Care $ = Atari suggests - - - 8 SWITCH DIP (P8) with -01 ROMs on PCB - 87654321 - -------- - 11xxxxxx 450 fuel units per coin - 10xxxxxx 600 fuel units per coin - 01xxxxxx 750 fuel units per coin $ - 00xxxxxx 900 fuel units per coin - xxx0xxxx Free play - xxx1xxxx Coined play as determined by toggles 7 & 8 $ - xxxx00xx German instructions - xxxx01xx Spanish instructions - xxxx10xx French instructions - xxxx11xx English instructions $ - xxxxxx11 Right coin == 1 credit/coin $ - xxxxxx10 Right coin == 4 credit/coin - xxxxxx01 Right coin == 5 credit/coin - xxxxxx00 Right coin == 6 credit/coin - (Left coin always registers 1 credit/coin) - - - 8 SWITCH DIP (P8) with -02 ROMs on PCB - 87654321 - -------- - 11x1xxxx 450 fuel units per coin - 10x1xxxx 600 fuel units per coin - 01x1xxxx 750 fuel units per coin $ - 00x1xxxx 900 fuel units per coin - 11x0xxxx 1100 fuel units per coin - 10x0xxxx 1300 fuel units per coin - 01x0xxxx 1550 fuel units per coin - 00x0xxxx 1800 fuel units per coin - xx0xxxxx Free play - xx1xxxxx Coined play as determined by toggles 5, 7, & 8 $ - xxxx00xx German instructions - xxxx01xx Spanish instructions - xxxx10xx French instructions - xxxx11xx English instructions $ - xxxxxx11 Right coin == 1 credit/coin $ - xxxxxx10 Right coin == 4 credit/coin - xxxxxx01 Right coin == 5 credit/coin - xxxxxx00 Right coin == 6 credit/coin - (Left coin always registers 1 credit/coin) - -***************************************************************************/ - -#include "driver.h" -#include "rendlay.h" -#include "vidhrdw/vector.h" -#include "vidhrdw/avgdvg.h" -#include "machine/atari_vg.h" -#include "asteroid.h" -#include "sound/discrete.h" -#include "sound/pokey.h" - -#define MASTER_CLOCK (12096000) -#define CLOCK_3KHZ (MASTER_CLOCK / 4096) - -/************************************* - * - * Coin counters - * - *************************************/ - -static WRITE8_HANDLER( astdelux_coin_counter_w ) -{ - coin_counter_w(offset,data); -} - - - -/************************************* - * - * Land Lander LEDs/lamps - * - *************************************/ - -static WRITE8_HANDLER( llander_led_w ) -{ - static const char *lampname[] = - { - "lamp0", "lamp1", "lamp2", "lamp3", "lamp4" - }; - int i; - - for (i = 0; i < 5; i++) - output_set_value(lampname[i], (data >> (4 - i)) & 1); -} - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( asteroid_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x01ff) AM_RAM - AM_RANGE(0x0200, 0x02ff) AM_RAM AM_RAMBANK(1) AM_BASE(&asteroid_ram1) - AM_RANGE(0x0300, 0x03ff) AM_RAM AM_RAMBANK(2) AM_BASE(&asteroid_ram2) - AM_RANGE(0x2000, 0x2007) AM_READ(asteroid_IN0_r) /* IN0 */ - AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */ - AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */ - AM_RANGE(0x3000, 0x3000) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x3200, 0x3200) AM_WRITE(asteroid_bank_switch_w) - AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w) - AM_RANGE(0x3a00, 0x3a00) AM_WRITE(asteroid_thump_w) - AM_RANGE(0x3c00, 0x3c05) AM_WRITE(asteroid_sounds_w) - AM_RANGE(0x3e00, 0x3e00) AM_WRITE(asteroid_noise_reset_w) - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x4000) - AM_RANGE(0x5000, 0x57ff) AM_ROM /* vector rom */ - AM_RANGE(0x6800, 0x7fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( astdelux_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x01ff) AM_RAM - AM_RANGE(0x0200, 0x02ff) AM_RAM AM_RAMBANK(1) AM_BASE(&asteroid_ram1) - AM_RANGE(0x0300, 0x03ff) AM_RAM AM_RAMBANK(2) AM_BASE(&asteroid_ram2) - AM_RANGE(0x2000, 0x2007) AM_READ(asteroid_IN0_r) /* IN0 */ - AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */ - AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */ - AM_RANGE(0x2c00, 0x2c0f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x2c40, 0x2c7f) AM_READ(atari_vg_earom_r) - AM_RANGE(0x3000, 0x3000) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x3200, 0x323f) AM_WRITE(atari_vg_earom_w) - AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w) - AM_RANGE(0x3a00, 0x3a00) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x3c00, 0x3c01) AM_WRITE(astdelux_led_w) - AM_RANGE(0x3c03, 0x3c03) AM_WRITE(astdelux_sounds_w) - AM_RANGE(0x3c04, 0x3c04) AM_WRITE(astdelux_bank_switch_w) - AM_RANGE(0x3c05, 0x3c07) AM_WRITE(astdelux_coin_counter_w) - AM_RANGE(0x3e00, 0x3e00) AM_WRITE(asteroid_noise_reset_w) - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x4000) - AM_RANGE(0x4800, 0x57ff) AM_ROM /* vector rom */ - AM_RANGE(0x6000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( llander_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x1f00) - AM_RANGE(0x2000, 0x2000) AM_READ(llander_IN0_r) /* IN0 */ - AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */ - AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */ - AM_RANGE(0x2c00, 0x2c00) AM_READ(input_port_3_r) /* IN3 */ - AM_RANGE(0x3000, 0x3000) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x3200, 0x3200) AM_WRITE(llander_led_w) - AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3c00, 0x3c00) AM_WRITE(llander_sounds_w) - AM_RANGE(0x3e00, 0x3e00) AM_WRITE(llander_snd_reset_w) - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x4000) - AM_RANGE(0x4800, 0x5fff) AM_ROM /* vector rom */ - AM_RANGE(0x6000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( asteroid ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - /* Bit 2 and 3 are handled in the machine dependent part. */ - /* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( German ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x04, "3" ) - PORT_DIPSETTING ( 0x00, "4" ) - PORT_DIPNAME( 0x08, 0x00, "Center Mech" ) /*Left same for 2-door mech*/ - PORT_DIPSETTING ( 0x00, "X 1" ) - PORT_DIPSETTING ( 0x08, "X 2" ) - PORT_DIPNAME( 0x30, 0x00, "Right Mech" ) - PORT_DIPSETTING ( 0x00, "X 1" ) - PORT_DIPSETTING ( 0x10, "X 4" ) - PORT_DIPSETTING ( 0x20, "X 5" ) - PORT_DIPSETTING ( 0x30, "X 6" ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( asteroib ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* resets */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* resets */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - /* Bit 7 is VG_HALT, handled in the machine dependent part */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( German ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x04, "3" ) - PORT_DIPSETTING ( 0x00, "4" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Free_Play ) ) - - PORT_START_TAG("HS") /* hyperspace */ - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( asterock ) - PORT_START_TAG("IN0") - /* Bit 0 is VG_HALT, handled in the machine dependent part */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - /* Bit 2 is the 3 KHz source */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Italian ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x10, 0x00, "Records Table" ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, "Special" ) - PORT_DIPNAME( 0x20, 0x00, "Coin Mode" ) - PORT_DIPSETTING ( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING ( 0x20, "Special" ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0xc0, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x20,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING ( 0x80, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x20,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING ( 0x40, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x20,PORTCOND_EQUALS,0x00) -// PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x20,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING ( 0xc0, "Coin A 2/1 Coin B 2/1 Coin C 1/1" ) PORT_CONDITION("DSW",0x20,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING ( 0x80, "Coin A 1/1 Coin B 1/1 Coin C 1/2" ) PORT_CONDITION("DSW",0x20,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING ( 0x40, "Coin A 1/2 Coin B 1/2 Coin C 1/4" ) PORT_CONDITION("DSW",0x20,PORTCOND_NOTEQUALS,0x00) -// PORT_DIPSETTING ( 0x00, "Coin A 1/1 Coin B 1/1 Coin C 1/2" ) PORT_CONDITION("DSW",0x20,PORTCOND_NOTEQUALS,0x00) -INPUT_PORTS_END - - -INPUT_PORTS_START( astdelux ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - /* Bit 2 and 3 are handled in the machine dependent part. */ - /* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( German ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x00, "2-4" ) - PORT_DIPSETTING ( 0x04, "3-5" ) - PORT_DIPSETTING ( 0x08, "4-6" ) - PORT_DIPSETTING ( 0x0c, "5-7" ) - PORT_DIPNAME( 0x10, 0x00, "Minimum plays" ) - PORT_DIPSETTING ( 0x00, "1" ) - PORT_DIPSETTING ( 0x10, "2" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Hard ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( Easy ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING ( 0x00, "10000" ) - PORT_DIPSETTING ( 0x40, "12000" ) - PORT_DIPSETTING ( 0x80, "15000" ) - PORT_DIPSETTING ( 0xc0, DEF_STR( None ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Right Coin" ) - PORT_DIPSETTING ( 0x00, "*6" ) - PORT_DIPSETTING ( 0x04, "*5" ) - PORT_DIPSETTING ( 0x08, "*4" ) - PORT_DIPSETTING ( 0x0c, "*1" ) - PORT_DIPNAME( 0x10, 0x10, "Center Coin" ) - PORT_DIPSETTING ( 0x00, "*2" ) - PORT_DIPSETTING ( 0x10, "*1" ) - PORT_DIPNAME( 0xe0, 0x80, "Bonus Coins" ) - PORT_DIPSETTING ( 0x60, "1 each 5" ) - PORT_DIPSETTING ( 0x80, "2 each 4" ) - PORT_DIPSETTING ( 0xa0, "1 each 4" ) - PORT_DIPSETTING ( 0xc0, "1 each 2" ) - PORT_DIPSETTING ( 0xe0, DEF_STR( None ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( llander ) - PORT_START_TAG("IN0") - /* Bit 0 is VG_HALT, handled in the machine dependent part */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - /* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */ - PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Select Game") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Abort") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x01, "Right Coin" ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x01, "*4" ) - PORT_DIPSETTING ( 0x02, "*5" ) - PORT_DIPSETTING ( 0x03, "*6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x04, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( Spanish ) ) - PORT_DIPSETTING ( 0x0c, DEF_STR( German ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xd0, 0x80, "Fuel units" ) - PORT_DIPSETTING ( 0x00, "450" ) - PORT_DIPSETTING ( 0x40, "600" ) - PORT_DIPSETTING ( 0x80, "750" ) - PORT_DIPSETTING ( 0xc0, "900" ) - PORT_DIPSETTING ( 0x10, "1100" ) - PORT_DIPSETTING ( 0x50, "1300" ) - PORT_DIPSETTING ( 0x90, "1550" ) - PORT_DIPSETTING ( 0xd0, "1800" ) - - /* The next one is a potentiometer */ - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_INC(JOYCODE_1_DOWN) PORT_REVERSE -INPUT_PORTS_END - - -INPUT_PORTS_START( llander1 ) - PORT_START_TAG("IN0") - /* Bit 0 is VG_HALT, handled in the machine dependent part */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - /* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */ - PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Select Game") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Abort") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x01, "Right Coin" ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x01, "*4" ) - PORT_DIPSETTING ( 0x02, "*5" ) - PORT_DIPSETTING ( 0x03, "*6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x04, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( Spanish ) ) - PORT_DIPSETTING ( 0x0c, DEF_STR( German ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING ( 0x10, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xc0, 0x80, "Fuel units" ) - PORT_DIPSETTING ( 0x00, "450" ) - PORT_DIPSETTING ( 0x40, "600" ) - PORT_DIPSETTING ( 0x80, "750" ) - PORT_DIPSETTING ( 0xc0, "900" ) - - /* The next one is a potentiometer */ - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_DEC(JOYCODE_1_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_INC(JOYCODE_1_DOWN) PORT_REVERSE -INPUT_PORTS_END - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct POKEYinterface pokey_interface = -{ - { 0 }, - input_port_3_r -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( asteroid ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, MASTER_CLOCK/8) - MDRV_CPU_PROGRAM_MAP(asteroid_map,0) - MDRV_CPU_PERIODIC_INT(asteroid_interrupt, TIME_IN_HZ(CLOCK_3KHZ / 12)) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_RESET(asteroid) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400,300) - MDRV_SCREEN_VISIBLE_AREA(0, 1044, 0, 800) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(dvg) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("disc", DISCRETE, 0) - MDRV_SOUND_CONFIG(asteroid_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.4) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( asterock ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(asteroid) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PERIODIC_INT(asterock_interrupt, TIME_IN_HZ(CLOCK_3KHZ / 12)) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( astdelux ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(asteroid) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(astdelux_map,0) - - MDRV_NVRAM_HANDLER(atari_vg) - - /* sound hardware */ - MDRV_SOUND_REPLACE("disc", DISCRETE, 0) - MDRV_SOUND_CONFIG(astdelux_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(POKEY, MASTER_CLOCK/8) - MDRV_SOUND_CONFIG(pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( llander ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(asteroid) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(llander_map,0) - MDRV_CPU_PERIODIC_INT(llander_interrupt, TIME_IN_HZ(CLOCK_3KHZ / 12)) - - MDRV_SCREEN_REFRESH_RATE(40) - MDRV_MACHINE_RESET(avgdvg) - - MDRV_SCREEN_VISIBLE_AREA(0, 1023, 0, 1023) - MDRV_VIDEO_START(dvg) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SOUND_REPLACE("disc", DISCRETE, 0) - MDRV_SOUND_CONFIG(llander_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( asteroid ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "035145.02", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) ) - ROM_LOAD( "035144.02", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) ) - ROM_LOAD( "035143.02", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) - /* Vector ROM */ - ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) - -ROM_END - -ROM_START( asteroi1 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "035145.01", 0x6800, 0x0800, CRC(e9bfda64) SHA1(291dc567ebb31b35df83d9fb87f4080f251ff9c8) ) - ROM_LOAD( "035144.01", 0x7000, 0x0800, CRC(e53c28a9) SHA1(d9f081e73511ec43377f0c6457747f15a470d4dc) ) - ROM_LOAD( "035143.01", 0x7800, 0x0800, CRC(7d4e3d05) SHA1(d88000e904e158efde50e453e2889ecd2cb95f24) ) - /* Vector ROM */ - ROM_LOAD( "035127.01", 0x5000, 0x0800, CRC(99699366) SHA1(9b2828fc1cef7727f65fa65e1e11e309b7c98792) ) - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -ROM_START( asteroib ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "035145ll.bin", 0x6800, 0x0800, CRC(605fc0f2) SHA1(8d897a3b75bd1f2537470f0a34a97a8c0853ee08) ) - ROM_LOAD( "035144ll.bin", 0x7000, 0x0800, CRC(e106de77) SHA1(003e99d095bd4df6fae243ea1dd5b12f3eb974f1) ) - ROM_LOAD( "035143ll.bin", 0x7800, 0x0800, CRC(6b1d8594) SHA1(ff3cd93f1bc5734bface285e442125b395602d7d) ) - /* Vector ROM */ - ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -ROM_START( asterock ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sidamas.2", 0x6800, 0x0400, CRC(cdf720c6) SHA1(85fe748096478e28a06bd98ff3aad73ab21b22a4) ) - ROM_LOAD( "sidamas.3", 0x6c00, 0x0400, CRC(ee58bdf0) SHA1(80094cb5dafd327aff6658ede33106f0493a809d) ) - ROM_LOAD( "sidamas.4", 0x7000, 0x0400, CRC(8d3e421e) SHA1(5f5719ab84d4755e69bef205d313b455bc59c413) ) - ROM_LOAD( "sidamas.5", 0x7400, 0x0400, CRC(d2ce7672) SHA1(b6012e09b2439a614a55bcf23be0692c42830e21) ) - ROM_LOAD( "sidamas.6", 0x7800, 0x0400, CRC(74103c87) SHA1(e568b5ac573a6d0474cf672b3c62abfbd3320799) ) - ROM_LOAD( "sidamas.7", 0x7c00, 0x0400, CRC(75a39768) SHA1(bf22998fd692fb01964d8894e421435c55d746a0) ) - /* Vector ROM */ - ROM_LOAD( "sidamas.0", 0x5000, 0x0400, CRC(6bd2053f) SHA1(790f2858f44bbb1854e2d9d549e29f4815c4665b) ) - ROM_LOAD( "sidamas.1", 0x5400, 0x0400, CRC(231ce201) SHA1(710f4c19864d725ba1c9ea447a97e84001a679f7) ) - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -ROM_START( meteorts ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "m0_c1.bin", 0x6800, 0x0800, CRC(dff88688) SHA1(7f4148a580fb6f605499c99e7dde7068eca1651a) ) - ROM_LOAD( "m1_f1.bin", 0x7000, 0x0800, CRC(e53c28a9) SHA1(d9f081e73511ec43377f0c6457747f15a470d4dc) ) - ROM_LOAD( "m2_j1.bin", 0x7800, 0x0800, CRC(64bd0408) SHA1(141d053cb4cce3fece98293136928b527d3ade0f) ) - /* Vector ROM */ - ROM_LOAD( "mv_np3.bin", 0x5000, 0x0800, CRC(11d1c4ae) SHA1(433c2c05b92094bbe102c356d7f1a907db13da67) ) - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - - -ROM_START( astdelux ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "036430.02", 0x6000, 0x0800, CRC(a4d7a525) SHA1(abe262193ec8e1981be36928e9a89a8ac95cd0ad) ) - ROM_LOAD( "036431.02", 0x6800, 0x0800, CRC(d4004aae) SHA1(aa2099b8fc62a79879efeea70ea1e9ed77e3e6f0) ) - ROM_LOAD( "036432.02", 0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) ) - ROM_LOAD( "036433.03", 0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) ) - /* Vector ROM */ - ROM_LOAD( "036800.02", 0x4800, 0x0800, CRC(bb8cabe1) SHA1(cebaa1b91b96e8b80f2b2c17c6fd31fa9f156386) ) - ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) - - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -ROM_START( astdelu2 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "036430.01", 0x6000, 0x0800, CRC(8f5dabc6) SHA1(5d7543e19acab99ddb63c0ffd60f54d7a0f267f5) ) - ROM_LOAD( "036431.01", 0x6800, 0x0800, CRC(157a8516) SHA1(9041d8c2369d004f198681e02b59a923fa8f70c9) ) - ROM_LOAD( "036432.01", 0x7000, 0x0800, CRC(fdea913c) SHA1(ded0138a20d80317d67add5bb2a64e6274e0e409) ) - ROM_LOAD( "036433.02", 0x7800, 0x0800, CRC(d8db74e3) SHA1(52b64e867df98d14742eb1817b59931bb7f941d9) ) - /* Vector ROM */ - ROM_LOAD( "036800.01", 0x4800, 0x0800, CRC(3b597407) SHA1(344fea2e5d84acce365d76daed61e96b9b6b37cc) ) - ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -/*************************************************************************** - -Asteroids Deluxe revision 1 romset -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -I have had a number of Asteroids deluxe pcbs pass through my hands, every one i have come across has had -a revision -01 marked romset apart from the rom at J1, this is always marked -02. - -This revision 2 rom in that location works fine, and i believe was a -factory upgrade, and production fit on 99% of pcbs. - -This pcb was from a cabinet with a serial number of 000967, so its an early one, and -it has a completely -01 romset on the pcb. - -Coincidentally i went through a pile of my manuals and came across some service bulletins which might -explain why there is this mismatch in revision numbers, it seems Atari released the game, and found -they needed to change default settings becasue of earnings potential in their default -first set (revision 1), not once, but twice! then they changed the romset altogether. The documents -in question are CO-174-02 (2 pages, 3 sides). this document shows what i think was the final revision -of roms to be produced, they consist of a wholly -02 romset, with the expection being a -03 rom at -location J1. - -So, anyhow, find in this file, the FIRST revision of rom -01 in J1. This pcb contained the following -roms in the following locations : - -all roms are TMS 2516, marked with silver atari labels 'ATARI 8105 ' then the info below: - -R2 = 036800 01E -N/P2 = 036799 01E -J1 = 036433 01E -F/H1 = 036432 01E -E/F1 = 036431 01E -D1 = 036430 01E - -Dumped 24/08/05 -by Andy Welburn -www.andys-arcade.com -*/ -ROM_START( astdelu1 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "036430.01", 0x6000, 0x0800, CRC(8f5dabc6) SHA1(5d7543e19acab99ddb63c0ffd60f54d7a0f267f5) ) - ROM_LOAD( "036431.01", 0x6800, 0x0800, CRC(157a8516) SHA1(9041d8c2369d004f198681e02b59a923fa8f70c9) ) - ROM_LOAD( "036432.01", 0x7000, 0x0800, CRC(fdea913c) SHA1(ded0138a20d80317d67add5bb2a64e6274e0e409) ) - ROM_LOAD( "036433.01", 0x7800, 0x0800, CRC(ef09bac7) SHA1(6a4b37dbfe4e6badc4e81036b1430da2e9cb8ca4) ) - /* Vector ROM */ - ROM_LOAD( "036800.01", 0x4800, 0x0800, CRC(3b597407) SHA1(344fea2e5d84acce365d76daed61e96b9b6b37cc) ) - ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - - -ROM_START( llander ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "034572.02", 0x6000, 0x0800, CRC(b8763eea) SHA1(5a15eaeaf825ccdf9ce013a6789cf51da20f785c) ) - ROM_LOAD( "034571.02", 0x6800, 0x0800, CRC(77da4b2f) SHA1(4be6cef5af38734d580cbfb7e4070fe7981ddfd6) ) - ROM_LOAD( "034570.01", 0x7000, 0x0800, CRC(2724e591) SHA1(ecf4430a0040c227c896aa2cd81ee03960b4d641) ) - ROM_LOAD( "034569.02", 0x7800, 0x0800, CRC(72837a4e) SHA1(9b21ba5e1518079c326ca6e15b9993e6c4483caa) ) - /* Vector ROM */ - ROM_LOAD( "034599.01", 0x4800, 0x0800, CRC(355a9371) SHA1(6ecb40169b797d9eb623bcb17872f745b1bf20fa) ) - ROM_LOAD( "034598.01", 0x5000, 0x0800, CRC(9c4ffa68) SHA1(eb4ffc289d254f699f821df3146aa2c6cd78597f) ) - /* This _should_ be the rom for international versions. */ - /* Unfortunately, is it not currently available. */ - ROM_LOAD( "034597.01", 0x5800, 0x0800, NO_DUMP ) - - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - -ROM_START( llander1 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "034572.01", 0x6000, 0x0800, CRC(2aff3140) SHA1(4fc8aae640ce655417c11d9a3121aae9a1238e7c) ) - ROM_LOAD( "034571.01", 0x6800, 0x0800, CRC(493e24b7) SHA1(125a2c335338ccabababef12fd7096ef4b605a31) ) - ROM_LOAD( "034570.01", 0x7000, 0x0800, CRC(2724e591) SHA1(ecf4430a0040c227c896aa2cd81ee03960b4d641) ) - ROM_LOAD( "034569.01", 0x7800, 0x0800, CRC(b11a7d01) SHA1(8f2935dbe04ee68815d69ea9e71853b5a145d7c3) ) - /* Vector ROM */ - ROM_LOAD( "034599.01", 0x4800, 0x0800, CRC(355a9371) SHA1(6ecb40169b797d9eb623bcb17872f745b1bf20fa) ) - ROM_LOAD( "034598.01", 0x5000, 0x0800, CRC(9c4ffa68) SHA1(eb4ffc289d254f699f821df3146aa2c6cd78597f) ) - /* This _should_ be the rom for international versions. */ - /* Unfortunately, is it not currently available. */ - ROM_LOAD( "034597.01", 0x5800, 0x0800, NO_DUMP ) - - /* DVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static DRIVER_INIT( asteroib ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x2000, 0, 0, asteroib_IN0_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2003, 0x2003, 0, 0, input_port_3_r); -} - - -static DRIVER_INIT( asterock ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2000, 0x2007, 0, 0, asterock_IN0_r); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1979, asteroid, 0, asteroid, asteroid, 0, ROT0, "Atari", "Asteroids (rev 2)", 0 ) -GAME( 1979, asteroi1, asteroid, asteroid, asteroid, 0, ROT0, "Atari", "Asteroids (rev 1)", 0 ) -GAME( 1979, asteroib, asteroid, asteroid, asteroib, asteroib, ROT0, "bootleg", "Asteroids (bootleg on Lunar Lander hardware)", 0 ) -GAME( 1979, asterock, asteroid, asterock, asterock, asterock, ROT0, "Sidam", "Asterock", 0 ) -GAME( 1979, meteorts, asteroid, asteroid, asteroid, 0, ROT0, "VGG", "Meteorites", 0 ) -GAMEL(1980, astdelux, 0, astdelux, astdelux, 0, ROT0, "Atari", "Asteroids Deluxe (rev 3)", 0, layout_ho88ffff ) -GAMEL(1980, astdelu2, astdelux, astdelux, astdelux, 0, ROT0, "Atari", "Asteroids Deluxe (rev 2)", 0, layout_ho88ffff ) -GAMEL(1980, astdelu1, astdelux, astdelux, astdelux, 0, ROT0, "Atari", "Asteroids Deluxe (rev 1)", 0, layout_ho88ffff ) -GAME( 1979, llander, 0, llander, llander, 0, ROT0, "Atari", "Lunar Lander (rev 2)", 0 ) -GAME( 1979, llander1, llander, llander, llander1, 0, ROT0, "Atari", "Lunar Lander (rev 1)", 0 ) diff --git a/src/drivers/astrocde.c b/src/drivers/astrocde.c deleted file mode 100644 index 7ad448070..000000000 --- a/src/drivers/astrocde.c +++ /dev/null @@ -1,1272 +0,0 @@ -/**************************************************************************** - -Bally Astrocade style games - -driver by Nicola Salmoria, Mike Coates, Frank Palazzolo - -TODO: - add rotate support - profpac_vm - self test - look into NVRAM problems in demndrgn - try 10-pin deluxe roms? - finish looking at noise gen bug - optimize sound code - dig into gorf timing hacks - -Notes: -- In seawolf2, service mode dip switch turns on memory test. Reset with 2 pressed - to get to an input check screen, reset with 1+2 pressed to get to a convergence - test screen. - - -memory map (preliminary) - -0000-3fff ROM but also "magic" RAM (which processes data and copies it to the video RAM) -4000-7fff SCREEN RAM (bitmap) -8000-cfff ROM -d000-d3ff STATIC RAM - -I/O ports: -IN: -08 intercept register (collision detector) - bit 0: intercept in pixel 3 in an OR or XOR write since last reset - bit 1: intercept in pixel 2 in an OR or XOR write since last reset - bit 2: intercept in pixel 1 in an OR or XOR write since last reset - bit 3: intercept in pixel 0 in an OR or XOR write since last reset - bit 4: intercept in pixel 3 in last OR or XOR write - bit 5: intercept in pixel 2 in last OR or XOR write - bit 6: intercept in pixel 1 in last OR or XOR write - bit 7: intercept in pixel 0 in last OR or XOR write -10 IN0 -11 IN1 -12 IN2 -13 DSW -14 Video Retrace -15 ? -17 Speech Synthesizer (Output) - -OUT: -00-07 palette (00-03 = right part of screen; 04-07 left part) -08 select video mode (0 = low res 160x102, 1 = high res 320x204) -09 --xxxxxx position where to switch from the "left" to the "right" palette (/2). - xx------ background color (portion of screen after vblank) -0a screen height -0b color block transfer -0c magic RAM control - bit 7: ? - bit 6: flip - bit 5: draw in XOR mode - bit 4: draw in OR mode - bit 3: "expand" mode (convert 1bpp data to 2bpp) - bit 2: "rotate" mode (rotate 90 degrees - NOT EMULATED) - bit 1:\ shift amount to be applied before copying - bit 0:/ -0d set interrupt vector -10-18 sound -19 magic RAM expand mode color -78-7e pattern board (see vidhrdw.c for details) - -****************************************************************************/ - -#include "driver.h" -#include "includes/astrocde.h" -#include "sound/samples.h" -#include "sound/astrocde.h" - -static UINT8 game_on = 0; - -static WRITE8_HANDLER( seawolf2_lamps_w ) -{ - /* 0x42 = player 2 (left), 0x43 = player 1 (right) */ - /* --x----- explosion */ - /* ---x---- RELOAD (active low) */ - /* ----x--- torpedo 1 available */ - /* -----x-- torpedo 2 available */ - /* ------x- torpedo 3 available */ - /* -------x torpedo 4 available */ - - /* I'm only supporting the "RELOAD" lamp since we don't have enough leds ;-) */ - set_led_status(offset^1,data & 0x10); -} - -static WRITE8_HANDLER( seawolf2_sound_1_w ) // Port 40 -{ - if (game_on) - { - if (data & 0x01) - sample_start (1, 1, 0); /* Left Torpedo */ - if (data & 0x02) - sample_start (0, 0, 0); /* Left Ship Hit */ - if (data & 0x04) - sample_start (4, 4, 0); /* Left Mine Hit */ - if (data & 0x08) - sample_start (6, 1, 0); /* Right Torpedo */ - if (data & 0x10) - sample_start (5, 0, 0); /* Right Ship Hit */ - if (data & 0x20) - sample_start (9, 4, 0); /* Right Mine Hit */ - } -} - -static WRITE8_HANDLER( seawolf2_sound_2_w ) // Port 41 -{ - game_on = data & 0x80; - - if (game_on) - { - // data & 0x07 control dive L/R panning - not implemented - if (data & 0x08) - sample_start (2, 2, 0); /* Dive */ - if (data & 0x10) - sample_start (8, 3, 0); /* Right Sonar */ - if (data & 0x20) - sample_start (3, 3, 0); /* Left Sonar */ - } - - coin_counter_w(0, data & 0x40); /* Coin Counter */ -} - -void astrocade_state_save_register_main(void) -{ - state_save_register_global(game_on); -} - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( seawolf2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(&wow_videoram) - AM_RANGE(0xc000, 0xc3ff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( astrocde_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(&wow_videoram) - AM_RANGE(0x8000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xdfff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( wow_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(&wow_videoram) - AM_RANGE(0x8000, 0xcfff) AM_ROM - AM_RANGE(0xd000, 0xd3ff) AM_RAM //AM_READWRITE(wow_protected_ram_r, wow_protected_ram_w) AM_BASE(&wow_protected_ram) - AM_RANGE(0xd400, 0xdfff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( robby_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(&wow_videoram) - AM_RANGE(0x8000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(robby_nvram_r, robby_nvram_w) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xe800, 0xffff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( demndrgn_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK1, profpac_videoram_w) - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) - AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(demndrgn_nvram_r, demndrgn_nvram_w) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xe800, 0xffff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( profpac_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x0000, 0x3fff) AM_WRITE(wow_magicram_w) - AM_RANGE(0x4000, 0x7fff) AM_READWRITE(MRA8_BANK1, profpac_videoram_w) - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) - AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(profpac_nvram_r, profpac_nvram_w) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xe800, 0xffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Port maps - * - *************************************/ - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_READ(wow_intercept_r) - AM_RANGE(0x0e, 0x0e) AM_MIRROR(0xff00) AM_READ(wow_video_retrace_r) - AM_RANGE(0x10, 0x10) AM_MIRROR(0xff00) AM_READ(input_port_0_r) - AM_RANGE(0x11, 0x11) AM_MIRROR(0xff00) AM_READ(input_port_1_r) - AM_RANGE(0x12, 0x12) AM_MIRROR(0xff00) AM_READ(input_port_2_r) - AM_RANGE(0x13, 0x13) AM_MIRROR(0xff00) AM_READ(input_port_3_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( demndrgn_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_READ(wow_intercept_r) - AM_RANGE(0x0e, 0x0e) AM_MIRROR(0xff00) AM_READ(wow_video_retrace_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( seawolf2_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x07) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_register_w) - AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_WRITE(astrocde_mode_w) - AM_RANGE(0x09, 0x09) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_split_w) - AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_WRITE(astrocde_vertical_blank_w) - AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_block_w) - AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(astrocde_magic_control_w) - AM_RANGE(0x0d, 0x0d) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_vector_w) - AM_RANGE(0x0e, 0x0e) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_enable_w) - AM_RANGE(0x0f, 0x0f) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_w) - - AM_RANGE(0x19, 0x19) AM_MIRROR(0xff00) AM_WRITE(astrocde_magic_expand_color_w) - - AM_RANGE(0x40, 0x40) AM_MIRROR(0xff00) AM_WRITE(seawolf2_sound_1_w) /* analog sound */ - AM_RANGE(0x41, 0x41) AM_MIRROR(0xff00) AM_WRITE(seawolf2_sound_2_w) /* analog sound */ - AM_RANGE(0x42, 0x43) AM_MIRROR(0xff00) AM_WRITE(seawolf2_lamps_w) /* cabinet lamps */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x07) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_register_w) - AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_WRITE(astrocde_mode_w) - AM_RANGE(0x09, 0x09) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_split_w) - AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_WRITE(astrocde_vertical_blank_w) - AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_WRITE(astrocde_colour_block_w) - AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(astrocde_magic_control_w) - AM_RANGE(0x0d, 0x0d) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_vector_w) - AM_RANGE(0x0e, 0x0e) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_enable_w) - AM_RANGE(0x0f, 0x0f) AM_MIRROR(0xff00) AM_WRITE(astrocde_interrupt_w) - - AM_RANGE(0x10, 0x17) AM_MIRROR(0xff00) AM_WRITE(astrocade_sound1_w) - AM_SPACE(0x18, 0xff) AM_WRITE(astrocade_soundblock1_w) - - AM_RANGE(0x19, 0x19) AM_MIRROR(0xff00) AM_WRITE(astrocde_magic_expand_color_w) - - /* These two are not part of seawolf2 or ebases */ - AM_RANGE(0xa55b, 0xa55b) AM_WRITE(wow_ramwrite_enable_w) /* ram write enable */ - AM_RANGE(0x78, 0x7e) AM_MIRROR(0xff00) AM_WRITE(astrocde_pattern_board_w) - -/* AM_RANGE(0xf8, 0xff) AM_MIRROR(0xff00) AM_WRITE(MWA8_NOP) */ /* Gorf uses these */ -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( seawolf2 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x3f, 0x20, IPT_PADDLE ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(20) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1) - PORT_DIPNAME( 0x40, 0x00, "Language 1" ) - PORT_DIPSETTING( 0x00, "Language 2" ) - PORT_DIPSETTING( 0x40, DEF_STR( French ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x3f, 0x20, IPT_PADDLE ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(20) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x08, 0x00, "Language 2" ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x08, DEF_STR( German ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") /* Dip Switch */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x06, 0x00, "Play Time" ) - PORT_DIPSETTING( 0x06, "40" ) - PORT_DIPSETTING( 0x04, "50" ) - PORT_DIPSETTING( 0x02, "60" ) - PORT_DIPSETTING( 0x00, "70" ) - PORT_DIPNAME( 0x08, 0x08, "2 Players Game" ) - PORT_DIPSETTING( 0x00, "1 Credit" ) - PORT_DIPSETTING( 0x08, "2 Credits" ) - PORT_DIPNAME( 0x30, 0x00, "Extended Play" ) - PORT_DIPSETTING( 0x10, "5000" ) - PORT_DIPSETTING( 0x20, "6000" ) - PORT_DIPSETTING( 0x30, "7000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, "Monitor" ) - PORT_DIPSETTING( 0x40, "Color" ) - PORT_DIPSETTING( 0x00, "B/W" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -INPUT_PORTS_START( spacezap ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) // starts a 1 player game if 1 credit - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW") /* Dip Switch */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ebases ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "Monitor" ) - PORT_DIPSETTING( 0x00, "Color" ) - PORT_DIPSETTING( 0x10, "B/W" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x00, "2 Players Game" ) - PORT_DIPSETTING( 0x00, "1 Credit" ) - PORT_DIPSETTING( 0x01, "2 Credits" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(2) \ - - PORT_START_TAG("IN4") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(2) \ - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET \ - - PORT_START_TAG("IN6") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET \ -INPUT_PORTS_END - - -INPUT_PORTS_START( wow ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* speech status */ - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x08, DEF_STR( English ) ) - PORT_DIPSETTING( 0x00, "Foreign (NEED ROM)" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "2 for 1 Credit / 5 for 2 Credits" ) - PORT_DIPSETTING( 0x00, "3 for 1 Credit / 7 for 2 Credits" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x20, "3rd Level" ) - PORT_DIPSETTING( 0x00, "4th Level" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, "On only when controls are touched" ) - PORT_DIPSETTING( 0x80, "Always On" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( gorf ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY 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_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* speech status */ - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x08, DEF_STR( English ) ) - PORT_DIPSETTING( 0x00, "Foreign (NEED ROM)" ) - PORT_DIPNAME( 0x10, 0x00, "Lives per Credit" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Mission 5" ) - PORT_DIPSETTING( 0x20, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( robby ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - 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_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, "Use NVRAM" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "Use Service Mode Settings" ) - PORT_DIPSETTING( 0x00, "Reset" ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( demndrgn ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET - - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET -INPUT_PORTS_END - - -INPUT_PORTS_START( profpac ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* Left A */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* Left B */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* Left C */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* Right A */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* Right B */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Right C */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, "Reset on powerup" ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "Halt on error" ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x00, "Beep" ) - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x10, "ROM" ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static const char *seawolf_sample_names[] = -{ - "*seawolf", - "shiphit.wav", - "torpedo.wav", - "dive.wav", - "sonar.wav", - "minehit.wav", - 0 /* end of array */ -}; - -struct Samplesinterface seawolf2_samples_interface = -{ - 10, /* 5*2 channels */ - seawolf_sample_names -}; - -static struct Samplesinterface wow_samples_interface = -{ - 8, /* 8 channels */ - wow_sample_names -}; - -static struct Samplesinterface gorf_samples_interface = -{ - 8, /* 8 channels */ - gorf_sample_names -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( seawolf2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(seawolf2_map,0) - MDRV_CPU_IO_MAP(readport,seawolf2_writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(astrocde) - MDRV_VIDEO_UPDATE(seawolf2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(seawolf2_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( spacezap ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(wow_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(astrocde) - MDRV_VIDEO_UPDATE(astrocde) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ebases ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(astrocde_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(astrocde) - MDRV_VIDEO_UPDATE(astrocde) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( wow ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(wow_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - MDRV_PALETTE_INIT(astrocde) - - MDRV_VIDEO_START(astrocde_stars) - MDRV_VIDEO_UPDATE(astrocde) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(wow_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gorf ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(wow_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(gorf_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - /* video hardware */ - /* it may look like the right hand side of the screen needs clipping, but */ - /* this isn't the case: cocktail mode would be clipped on the wrong side */ - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(astrocde_stars) - MDRV_VIDEO_UPDATE(astrocde) - - /* sound hardware */ - MDRV_SPEAKER_ADD("upper", 0.0, 0.0, 1.0) - MDRV_SPEAKER_ADD("lower", 0.0, -0.5, 1.0) - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lower", 1.0) - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "upper", 1.0) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(gorf_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "upper", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lower", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( robby ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(robby_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(astrocde) - - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - MDRV_PALETTE_INIT(astrocde) - - MDRV_VIDEO_START(astrocde) - MDRV_VIDEO_UPDATE(astrocde) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( demndrgn ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(demndrgn_map,0) - MDRV_CPU_IO_MAP(demndrgn_readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(profpac) - - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(profpac) - MDRV_VIDEO_UPDATE(profpac) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( profpac ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 1789773) /* 1.789 MHz */ - MDRV_CPU_PROGRAM_MAP(profpac_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(wow_interrupt,256) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(profpac) - - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 204) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 204-1) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(astrocde) - MDRV_VIDEO_START(profpac) - MDRV_VIDEO_UPDATE(profpac) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - - MDRV_SOUND_ADD(ASTROCADE, 1789773) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -ROM_START( seawolf2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sw2x1.bin", 0x0000, 0x0800, CRC(ad0103f6) SHA1(c6e411444a824ce54b0eee10f7dc15e4229ec070) ) - ROM_LOAD( "sw2x2.bin", 0x0800, 0x0800, CRC(e0430f0a) SHA1(63d8c6b77e0aa536b4f5bb774bc9285f736d4265) ) - ROM_LOAD( "sw2x3.bin", 0x1000, 0x0800, CRC(05ad1619) SHA1(c9dbeaa4540dc95f98970f501a420b18b9898c91) ) - ROM_LOAD( "sw2x4.bin", 0x1800, 0x0800, CRC(1a1a14a2) SHA1(57d0ddea9f8bf082f50d0468a726fd91aaabf4e4) ) -ROM_END - - -ROM_START( spacezap ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "0662.01", 0x0000, 0x1000, CRC(a92de312) SHA1(784ac67c75c7c101f97ebfd39b2b3f7bf7fa470a) ) - ROM_LOAD( "0663.xx", 0x1000, 0x1000, CRC(4836ebf1) SHA1(ad0e8c34a209c827c1336f0250cc61fee667fb03) ) - ROM_LOAD( "0664.xx", 0x2000, 0x1000, CRC(d8193a80) SHA1(72151e773562da62acd2c1d9638711711cbc13a3) ) - ROM_LOAD( "0665.xx", 0x3000, 0x1000, CRC(3784228d) SHA1(5aabd720a106158a892368c4920d9cd0f5235e34) ) -ROM_END - - -ROM_START( ebases ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "m761a", 0x0000, 0x1000, CRC(34422147) SHA1(6483ca1359b675b0dd739605db2a1dbd4b7fb8cb) ) - ROM_LOAD( "m761b", 0x1000, 0x1000, CRC(4f28dfd6) SHA1(52e571e671fa61b0f9ab397a5947094c24f6c388) ) - ROM_LOAD( "m761c", 0x2000, 0x1000, CRC(bff6c97e) SHA1(e41fb9db919039c8a48b4caebf80821a066d7ccf) ) - ROM_LOAD( "m761d", 0x3000, 0x1000, CRC(5173781a) SHA1(e60c3f4b075f8b811ff6a8637c4aa0b089847a82) ) -ROM_END - - -ROM_START( wow ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "wow.x1", 0x0000, 0x1000, CRC(c1295786) SHA1(1e4f30cc15537aed6603b4e664e6e60f4bccb5c5) ) - ROM_LOAD( "wow.x2", 0x1000, 0x1000, CRC(9be93215) SHA1(0bc8ee6d8391104eb217b612f32856b105946682) ) - ROM_LOAD( "wow.x3", 0x2000, 0x1000, CRC(75e5a22e) SHA1(50a8ca11909ce49412c47de4da69e39a083ce5af) ) - ROM_LOAD( "wow.x4", 0x3000, 0x1000, CRC(ef28eb84) SHA1(d6318b3649fccafc2d0a05e5530e88819d299356) ) - ROM_LOAD( "wow.x5", 0x8000, 0x1000, CRC(16912c2b) SHA1(faf9c96d99bc111c5f1618f6863f22fd9269027b) ) - ROM_LOAD( "wow.x6", 0x9000, 0x1000, CRC(35797f82) SHA1(376bba29e88c16d95438fa996913b76581df0937) ) - ROM_LOAD( "wow.x7", 0xa000, 0x1000, CRC(ce404305) SHA1(a52c6c7b77842f25c79515460be6b7ed959b5edb) ) -/* ROM_LOAD( "wow.x8", 0xc000, CRC(00001000) , ? ) here would go the foreign language ROM */ -ROM_END - - -ROM_START( gorf ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "gorf-a.bin", 0x0000, 0x1000, CRC(5b348321) SHA1(76e2e3ad1a66755f1a369167fdb157690fd44a52) ) - ROM_LOAD( "gorf-b.bin", 0x1000, 0x1000, CRC(62d6de77) SHA1(2601faf12d0ab4972c5535ffd722b03ecd8c097c) ) - ROM_LOAD( "gorf-c.bin", 0x2000, 0x1000, CRC(1d3bc9c9) SHA1(0b363a71d7585a4828e08668ebb2999c55e02721) ) - ROM_LOAD( "gorf-d.bin", 0x3000, 0x1000, CRC(70046e56) SHA1(392214cc6ed4155bfe022d36f0f86c2594a5ab57) ) - ROM_LOAD( "gorf-e.bin", 0x8000, 0x1000, CRC(2d456eb5) SHA1(720fb8b48e20c1fc281d8804259016c3c5364a07) ) - ROM_LOAD( "gorf-f.bin", 0x9000, 0x1000, CRC(f7e4e155) SHA1(9c9d6d3bfee6556dc7a01de81d6148dd02f04fc9) ) - ROM_LOAD( "gorf-g.bin", 0xa000, 0x1000, CRC(4e2bd9b9) SHA1(9edccceea5af015275582553ed238c40c73d8f4f) ) - ROM_LOAD( "gorf-h.bin", 0xb000, 0x1000, CRC(fe7b863d) SHA1(5aa8d824814ee1c30eaf0044da78d3aa8220dcaa) ) -ROM_END - - -ROM_START( gorfpgm1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "873a", 0x0000, 0x1000, CRC(97cb4a6a) SHA1(efdae9a437c665fb861665a38c6cb13fd848ad91) ) - ROM_LOAD( "873b", 0x1000, 0x1000, CRC(257236f8) SHA1(d1e8555fe5e6705ef88535bcd6071d1072b01386) ) - ROM_LOAD( "873c", 0x2000, 0x1000, CRC(16b0638b) SHA1(65e1e2e4df80140976915e0982ce3219b14beece) ) - ROM_LOAD( "873d", 0x3000, 0x1000, CRC(b5e821dc) SHA1(152840e353d567cbf5a86206dde70e5b64b27236) ) - ROM_LOAD( "873e", 0x8000, 0x1000, CRC(8e82804b) SHA1(24250edb30efa63c80514629c86c9372b7ca3020) ) - ROM_LOAD( "873f", 0x9000, 0x1000, CRC(715fb4d9) SHA1(c9f33162093e6ed7e3cb6bb716419e5bc43c0381) ) - ROM_LOAD( "873g", 0xa000, 0x1000, CRC(8a066456) SHA1(f64bcdadbc62566b55573039b03baf5358e24a36) ) - ROM_LOAD( "873h", 0xb000, 0x1000, CRC(56d40c7c) SHA1(c7c9a618d9438a76121972ac029ad7036bcf8c6f) ) -ROM_END - - -ROM_START( robby ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "rotox1.bin", 0x0000, 0x1000, CRC(a431b85a) SHA1(3478da56addba1cdd98cbef7a15b17fca9aed2cd) ) - ROM_LOAD( "rotox2.bin", 0x1000, 0x1000, CRC(33cdda83) SHA1(ccbc741a2fc0b7385ca42afe5b377432249b44cb) ) - ROM_LOAD( "rotox3.bin", 0x2000, 0x1000, CRC(dbf97491) SHA1(11574baf04af02b38ae147be8409de7c34e87611) ) - ROM_LOAD( "rotox4.bin", 0x3000, 0x1000, CRC(a3b90ac8) SHA1(8c585d26011c9ea047895a0388835ff2bb80e1ff) ) - ROM_LOAD( "rotox5.bin", 0x8000, 0x1000, CRC(46ae8a94) SHA1(218edcc5257c9cc58c5e667fff64767b313daaab) ) - ROM_LOAD( "rotox6.bin", 0x9000, 0x1000, CRC(7916b730) SHA1(c5166625a404da4a93a1a7ae21d01fdb6e78680e) ) - ROM_LOAD( "rotox7.bin", 0xa000, 0x1000, CRC(276dc4a5) SHA1(d740b30c28f6a94ee2348291e80d57af5c2e2d99) ) - ROM_LOAD( "rotox8.bin", 0xb000, 0x1000, CRC(1ef13457) SHA1(4dc1ee9ce2a28c4ba75e630fbfe4659cd68d3a66) ) - ROM_LOAD( "rotox9.bin", 0xc000, 0x1000, CRC(370352bf) SHA1(72cd35b4306b46de3d2a3e4e46fa4917ed9d18cb) ) - ROM_LOAD( "rotox10.bin", 0xd000, 0x1000, CRC(e762cbda) SHA1(48c274a859963097a90f80c48366250301eddb5f) ) -ROM_END - - -ROM_START( demndrgn ) - ROM_REGION( 0x2a000, REGION_CPU1, 0 ) - ROM_LOAD( "dd-x1.bin", 0x0000, 0x2000, CRC(9aeaf79e) SHA1(c70aa1a31bc085cca904d497c34e55d49fef49b7) ) - ROM_LOAD( "dd-x2.bin", 0x2000, 0x2000, CRC(0c63b624) SHA1(3eaeb4e0820e9dda7233a13bb146acc44402addd) ) - ROM_LOAD( "dd-x9.bin", 0xc000, 0x2000, CRC(3792d632) SHA1(da053df344f39a8f25a2c57fb1a908131c10f248) ) - ROM_LOAD( "dd-x5.bin", 0x14000, 0x2000, CRC(e377e831) SHA1(f53e74b3138611f9385845d6bdeab891b5d15931) ) - ROM_LOAD( "dd-x6.bin", 0x16000, 0x2000, CRC(0fcb46ad) SHA1(5611135f9e341bd394d6da7912167b05fff17a93) ) - ROM_LOAD( "dd-x7.bin", 0x18000, 0x2000, CRC(0675e4fa) SHA1(59668e32271ff9bac0b4411cc0c541d2825ee145) ) - ROM_LOAD( "dd-x10.bin", 0x1c000, 0x2000, CRC(4a22c4f9) SHA1(d86ca38727fcf1896ea64c3b6255e3230054b5d6) ) - ROM_LOAD( "dd-x11.bin", 0x1e000, 0x2000, CRC(d3158845) SHA1(510bb8d459625263370ee68f6f63d6d7abc6d26d) ) - ROM_LOAD( "dd-x12.bin", 0x20000, 0x2000, CRC(592c1d9a) SHA1(c884aabf4cff9f9b974e497fc3a1f8cdd0753680) ) - ROM_LOAD( "dd-x13.bin", 0x22000, 0x2000, CRC(492d7b7e) SHA1(a9a89a61179b154a8afa429e11e984609f787d74) ) - ROM_LOAD( "dd-x14.bin", 0x24000, 0x2000, CRC(7843c818) SHA1(4756bf7dd07071b86645908d61891edcdffdde83) ) - ROM_LOAD( "dd-x15.bin", 0x26000, 0x2000, CRC(6e6bc1b6) SHA1(b8c5ed8df6a709a6502dac47be88271ad22b9203) ) - ROM_LOAD( "dd-x16.bin", 0x28000, 0x2000, CRC(7a4a343b) SHA1(4eb82ae38ce1b14778fb29d8549c61a46bc3ee66) ) -ROM_END - - -ROM_START( profpac ) - ROM_REGION( 0x2c000, REGION_CPU1, 0 ) - ROM_LOAD( "pps1", 0x0000, 0x2000, CRC(a244a62d) SHA1(f7a9606ce6d66c3e6d210cc25572904aeab2b6c8) ) - ROM_LOAD( "pps2", 0x2000, 0x2000, CRC(8a9a6653) SHA1(b730b24088dcfddbe954670ff9212b7383c923f6) ) - ROM_LOAD( "pps3", 0x8000, 0x2000, CRC(15717fd8) SHA1(ffbb156f417d20478117b39de28a15680993b528) ) - ROM_LOAD( "pps4", 0xa000, 0x2000, CRC(36540598) SHA1(33c797c690801afded45091d822347e1ecc72b54) ) - ROM_LOAD( "pps9", 0xc000, 0x2000, CRC(17a0b418) SHA1(8b7ed84090dbc5181deef6f55ec755c05d4c0d5e) ) - ROM_LOAD( "pps5", 0x14000, 0x2000, CRC(8dc89a59) SHA1(fb4d3ba40697425d69ee19bfdcf00aea1df5fa80) ) - ROM_LOAD( "pps6", 0x16000, 0x2000, CRC(5a2186c3) SHA1(f706cef6518b7d839377aa8a7c75fdeed4985c57) ) - ROM_LOAD( "pps7", 0x18000, 0x2000, CRC(f9c26aba) SHA1(201b930cca9669114ffc97978cade69587e34a0f) ) - ROM_LOAD( "pps8", 0x1a000, 0x2000, CRC(4d201e41) SHA1(786b30cd7a7db55bdde05909d7a1a7f122b6e546) ) - /* the rest of the sockets are empty */ - - /* Each of these can get mapped from 0x4000-0x7fff */ - ROM_REGION( 0x38000, REGION_USER1, 0 ) - ROM_LOAD( "ppq1", 0x00000, 0x4000, CRC(dddc2ccc) SHA1(d81caaa639f63d971a0d3199b9da6359211edf3d) ) - ROM_LOAD( "ppq2", 0x04000, 0x4000, CRC(33bbcabe) SHA1(f9455868c70f479ede0e0621f21f69da165d9b7a) ) - ROM_LOAD( "ppq3", 0x08000, 0x4000, CRC(3534d895) SHA1(24fb14c6b31b7f27e0737605cfbf963d29dd3fc5) ) - ROM_LOAD( "ppq4", 0x0c000, 0x4000, CRC(17e3581d) SHA1(92d2391e4c8aef46cc8e92b8cf9a8ec9a1b5ff68) ) - ROM_LOAD( "ppq5", 0x10000, 0x4000, CRC(80882a93) SHA1(d5d6afaadb022b109c14c3911eceb0769204df6c) ) - ROM_LOAD( "ppq6", 0x14000, 0x4000, CRC(e5ddaee5) SHA1(45b4925709da6790676319268398f6cfcf12794b) ) - ROM_LOAD( "ppq7", 0x18000, 0x4000, CRC(c029cd34) SHA1(f2f09fdb13920012a6a43958b640d7a06c0c8e69) ) - ROM_LOAD( "ppq8", 0x1c000, 0x4000, CRC(fb3a1ac9) SHA1(e8fe02c85e90320680a14ad560204d5c235730ad) ) - ROM_LOAD( "ppq9", 0x20000, 0x4000, CRC(5e944488) SHA1(2f03f799c319309b5ebf9a5299891d1824398ba5) ) - ROM_LOAD( "ppq10", 0x24000, 0x4000, CRC(ed72a81f) SHA1(db991b93001d2da16b398ee8e9b01b8f0dfe5740) ) - ROM_LOAD( "ppq11", 0x28000, 0x4000, CRC(98295020) SHA1(7f68a8b89117b7ab8724869401a861fe7cff28d9) ) - ROM_LOAD( "ppq12", 0x2c000, 0x4000, CRC(e01a8dbe) SHA1(c7052bf9ce9d2006dda5ddc07ad164d0119b86ea) ) - ROM_LOAD( "ppq13", 0x30000, 0x4000, CRC(87165d4f) SHA1(d47655300c8747698a46f30deb65fe762073e869) ) - ROM_LOAD( "ppq14", 0x34000, 0x4000, CRC(ecb861de) SHA1(73d28a79b76795d3016dd608f9ab3d255f40e477) ) -ROM_END - - - -/************************************* - * - * Game-specific driver inits - * - *************************************/ - -static DRIVER_INIT( seawolf2 ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x10, 0x10, 0, 0xff00, seawolf2_controller2_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x11, 0x11, 0, 0xff00, seawolf2_controller1_r); -} - -static DRIVER_INIT( ebases ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x13, 0x13, 0, 0xff00, ebases_trackball_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x20, 0x20, 0, 0xff00, ebases_io_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x28, 0x28, 0, 0xff00, ebases_trackball_select_w); -} - -static DRIVER_INIT( wow ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x12, 0x12, 0, 0xff00, wow_port_2_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x15, 0xff, 0, 0, wow_io_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x17, 0xff, 0, 0, wow_speech_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x50, 0x57, 0, 0xff00, astrocade_sound2_w); - memory_install_write8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x58, 0xff, 0, 0, astrocade_soundblock2_w); -} - -static DRIVER_INIT( spacezap ) -{ - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x13, 0xff, 0, 0, spacezap_io_r); -} - -static DRIVER_INIT( gorf ) -{ - /* This is part of the timing/interrupt hack stuff */ -// extern UINT8 *gorf_timer_ram; -// gorf_timer_ram = memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd0a5, 0xd0a5, 0, 0, gorf_timer_r); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x12, 0x12, 0, 0xff00, gorf_port_2_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x15, 0xff, 0, 0, gorf_io_1_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x16, 0xff, 0, 0, gorf_io_2_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x17, 0xff, 0, 0, gorf_speech_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x50, 0x57, 0, 0xff00, astrocade_sound2_w); - memory_install_write8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x58, 0xff, 0, 0, astrocade_soundblock2_w); -} - -static DRIVER_INIT( robby ) -{ - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x15, 0xff, 0, 0, robby_io_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x50, 0x57, 0, 0xff00, astrocade_sound2_w); - memory_install_write8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x58, 0xff, 0, 0, astrocade_soundblock2_w); -} - -static DRIVER_INIT( demndrgn ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x10, 0x10, 0, 0xff00, input_port_0_r ); - - /* 0x00 is the middle value, range is up to 0x7f, and down to 0x80 */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x11, 0x11, 0, 0xff00, demndrgn_move_r ); - - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x14, 0xff, 0, 0, demndrgn_io_r ); - - /* analog joystick, converted to digital in software */ - /* 0x80 is the middle, values of > 0xd8 and < 0x28 are the thresholds */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x1c, 0x1c, 0, 0xff00, demndrgn_fire_x_r ); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x1d, 0x1d, 0, 0xff00, demndrgn_fire_y_r ); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x97, 0x97, 0, 0xff00, demndrgn_sound_w ); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xbf, 0xbf, 0, 0xff00, profpac_page_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xc3, 0xc3, 0, 0xff00, profpac_intercept_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc5, 0, 0xff00, profpac_screenram_ctrl_w ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf3, 0xf3, 0, 0xff00, profpac_banksw_w); -} - -static DRIVER_INIT( profpac ) -{ - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x14, 0xff, 0, 0, profpac_io_1_r); - memory_install_read8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x15, 0xff, 0, 0, profpac_io_2_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x50, 0x57, 0, 0xff00, astrocade_sound2_w); - memory_install_write8_matchmask_handler(0, ADDRESS_SPACE_IO, 0x58, 0xff, 0, 0, astrocade_soundblock2_w); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xbf, 0xbf, 0, 0xff00, profpac_page_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xc3, 0xc3, 0, 0xff00, profpac_intercept_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc5, 0, 0xff00, profpac_screenram_ctrl_w ); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf3, 0xf3, 0, 0xff00, profpac_banksw_w); -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1978, seawolf2, 0, seawolf2, seawolf2, seawolf2, ROT0, "Midway", "Sea Wolf II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1980, spacezap, 0, spacezap, spacezap, spacezap, ROT0, "Midway", "Space Zap", GAME_SUPPORTS_SAVE ) -GAME( 1980, ebases, 0, ebases, ebases, ebases, ROT0, "Midway", "Extra Bases", GAME_SUPPORTS_SAVE ) -GAME( 1980, wow, 0, wow, wow, wow, ROT0, "Midway", "Wizard of Wor", GAME_SUPPORTS_SAVE ) -GAME( 1981, gorf, 0, gorf, gorf, gorf, ROT270, "Midway", "Gorf", GAME_SUPPORTS_SAVE ) -GAME( 1981, gorfpgm1, gorf, gorf, gorf, gorf, ROT270, "Midway", "Gorf (Program 1)", GAME_SUPPORTS_SAVE ) -GAME( 1981, robby, 0, robby, robby, robby, ROT0, "Bally Midway", "Robby Roto", GAME_SUPPORTS_SAVE ) -GAME( 1982, demndrgn, 0, demndrgn, demndrgn, demndrgn, ROT0, "Bally Midway", "Demons and Dragons (prototype)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1983, profpac, 0, profpac, profpac, profpac, ROT0, "Bally Midway", "Professor PacMan", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/asuka.c b/src/drivers/asuka.c deleted file mode 100644 index d83c1f439..000000000 --- a/src/drivers/asuka.c +++ /dev/null @@ -1,1571 +0,0 @@ -/*************************************************************************** - -Asuka & Asuka (+ Taito/Visco games on similar hardware) -============= - -David Graves, Brian Troha - -Made out of: Rastan driver by Jarek Burczynski - MAME Taito F2 driver - Raine source - very special thanks to - Richard Bush and the Raine Team. - two different drivers for Bonze Adventure that were - written at the same time by Yochizo and Frotz - - Bonze Adventure (c) 1988 Taito Corporation - Asuka & Asuka (c) 1988 Taito Corporation - Maze of Flott (c) 1989 Taito Corporation - Galmedes (c) 1992 Visco Corporation - Earth Joker (c) 1993 Visco Corporation - Kokontouzai Eto Monogatari (c) 1994 Visco Corporation - -Main CPU: MC68000 uses irq 5 (4 in bonze, 4&5 in cadash). -Sound : Z80 & YM2151 + MSM5205 (YM2610 in bonze) -Chips : TC0100SCN + TC0002OBJ + TC0110PCR (+ C-Chip in bonze) -(Bryan McPhail: My Bonze uses TC0100SCN + PC0900J (OBJ) + TC0110PCR + TC0140SYT (SND)) - -Memory map for Asuka & Asuka ----------------------------- - -The other games seem identical but Eto is slightly different. - -0x000000 - 0x0fffff : ROM (not all used for each game) -0x100000 - 0x103fff : 16k of RAM -0x200000 - 0x20000f : palette generator -0x400000 - 0x40000f : input ports and dipswitches -0x3a0000 - 0x3a0003 : sprite control -0x3e0000 - 0x3e0003 : communication with sound CPU -0xc00000 - 0xc2000f : TC0100SCN (see taitoic.c) -0xd00000 - 0xd007ff : sprite RAM - - -Cadashu Info (Malcor) ---------------------- - -Main PCB (JAMMA) K1100528A -Main processor - 68000 12MHz - - HD64180RP8 8MHz (8 bit processor, dual channel DMAC, - memory mapped I/O, used for multigame link) -Misc custom ICs including three PQFPs, one PGA, and one SIP - - -From "garmedes.txt" -------------------- - -The following cord is written, on PCB: K1100388A J1100169A M6100708A -There are the parts that were written as B68 on this PCB. -The original title of the game called B68 is unknown. -This PCB is the same as the one that is used with EARTH-JOKER. - - - -Use of TC0100SCN ----------------- - -Asuka & Asuka: $e6a init code clearing TC0100SCN areas is erroneous. -It only clears 1/8 of the BG layers; then it clears too much of the -rowscroll areas [0xc000, 0xc400] causing overrun into next 64K block. - -Asuka is one of the early Taito games using the TC0100SCN. (Ninja -Warriors was probably the first.) They didn't bother using its FG (text) -layer facility, instead placing text in the BG / sprite layers. - -Maze of Flott [(c) one year later] and most other games with the -TC0100SCN do use the FG layer for text (Driftout is an exception). - - -Notes on Bonze DIPs by Stephane Humbert ---------------------------------------- - -The 2nd bonus life is awarded at the wrong score because of a bug in -the game code at $961E; and the unused DIP switch enables the built-in -map editor if the branch at $7572 is skipped. - - -TODO ----- - -DIPs - -Mofflot: $14c46 sub inits sound system: in a pause loop during this -it reads a dummy address. - -Earthjkr: Wrong screen size? Left edge of green blueprints in -attract looks like it's incorrectly off screen. - -Cadash: Hooks for twin arcade machine setup: will involve emulating an extra -microcontroller, the 07 rom might be the program for it. - -Galmedes: Test mode has select1/2 stuck at on. - -Eto: $76d0 might be a protection check? It reads to and writes from -the prog rom. Doesn't seem to cause problems though. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2610intf.h" -#include "sound/2151intf.h" -#include "sound/msm5205.h" - -WRITE16_HANDLER( asuka_spritectrl_w ); - -INTERRUPT_GEN( rastan_s_interrupt ); - -VIDEO_START( asuka ); -VIDEO_START( galmedes ); -VIDEO_START( cadash ); -VIDEO_UPDATE( asuka ); -VIDEO_UPDATE( bonzeadv ); - -WRITE16_HANDLER( bonzeadv_c_chip_w ); -READ16_HANDLER( bonzeadv_c_chip_r ); - - -/*********************************************************** - INTERRUPTS -***********************************************************/ - -void cadash_irq_handler(int irq); - -static void cadash_interrupt5(int param) -{ - cpunum_set_input_line(0, 5, HOLD_LINE); -} - -INTERRUPT_GEN( cadash_interrupt ) -{ - timer_set(TIME_IN_CYCLES(500,0),0, cadash_interrupt5); - cpunum_set_input_line(0, 4, HOLD_LINE); /* interrupt vector 4 */ -} - - -/************************************************ - SOUND -************************************************/ - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - memory_set_bankptr( 1, memory_region(REGION_CPU2) + ((data-1) & 0x03) * 0x4000 + 0x10000 ); -} - - - -static int adpcm_pos; - -static void asuka_msm5205_vck(int chip) -{ - static int adpcm_data = -1; - - if (adpcm_data != -1) - { - MSM5205_data_w(0, adpcm_data & 0x0f); - adpcm_data = -1; - } - else - { - adpcm_data = memory_region(REGION_SOUND1)[adpcm_pos]; - adpcm_pos = (adpcm_pos + 1) & 0xffff; - MSM5205_data_w(0, adpcm_data >> 4); - } -} - -static WRITE8_HANDLER( asuka_msm5205_address_w ) -{ - adpcm_pos = (adpcm_pos & 0x00ff) | (data << 8); -} - -static WRITE8_HANDLER( asuka_msm5205_start_w ) -{ - MSM5205_reset_w(0, 0); -} - -static WRITE8_HANDLER( asuka_msm5205_stop_w ) -{ - MSM5205_reset_w(0, 1); - adpcm_pos &= 0xff00; -} - - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( bonzeadv_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x10c000, 0x10ffff) AM_READ(MRA16_RAM) /* main RAM */ - AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r) - AM_RANGE(0x390000, 0x390001) AM_READ(input_port_0_word_r) - AM_RANGE(0x3b0000, 0x3b0001) AM_READ(input_port_1_word_r) - AM_RANGE(0x3d0000, 0x3d0001) AM_READ(MRA16_NOP) - AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r) - AM_RANGE(0x800000, 0x800803) AM_READ(bonzeadv_c_chip_r) - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bonzeadv_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_step1_word_w) - AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(asuka_spritectrl_w) - AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x800000, 0x800c01) AM_WRITE(bonzeadv_c_chip_w) - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( asuka_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* RAM */ - AM_RANGE(0x1076f0, 0x1076f1) AM_READ(MRA16_NOP) /* Mofflott init does dummy reads here */ - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0110PCR_word_r) - AM_RANGE(0x3e0000, 0x3e0001) AM_READ(MRA16_NOP) - AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( asuka_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0110PCR_step1_word_w) - AM_RANGE(0x3a0000, 0x3a0003) AM_WRITE(asuka_spritectrl_w) - AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xc10000, 0xc103ff) AM_WRITE(MWA16_NOP) /* error in Asuka init code */ - AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cadash_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0c0000, 0x0c0001) AM_READ(MRA16_NOP) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(taitosound_comm16_lsb_r) - AM_RANGE(0x100000, 0x107fff) AM_READ(MRA16_RAM) /* RAM */ - AM_RANGE(0x800000, 0x800fff) AM_READ(MRA16_RAM) /* network ram */ - AM_RANGE(0x900000, 0x90000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0110PCR_word_r) - AM_RANGE(0xb00000, 0xb03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cadash_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w) - AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x0c0002, 0x0c0003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x800000, 0x800fff) AM_WRITE(MWA16_RAM) /* network ram */ - AM_RANGE(0x900000, 0x90000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0110PCR_step1_4bpg_word_w) - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */ - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( eto_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10000f) AM_READ(TC0110PCR_word_r) - AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM) /* RAM */ - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) /* service mode mirror */ - AM_RANGE(0x4e0000, 0x4e0001) AM_READ(MRA16_NOP) - AM_RANGE(0x4e0002, 0x4e0003) AM_READ(taitosound_comm16_lsb_r) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(PC090OJ_word_0_r) /* sprite ram */ - AM_RANGE(0xd00000, 0xd0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xd20000, 0xd2000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( eto_writemem, ADDRESS_SPACE_PROGRAM, 16 ) /* N.B. tc100scn mirror overlaps spriteram */ - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10000f) AM_WRITE(TC0110PCR_step1_word_w) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x4a0000, 0x4a0003) AM_WRITE(asuka_spritectrl_w) - AM_RANGE(0x4e0000, 0x4e0001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x4e0002, 0x4e0003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(PC090OJ_word_0_w) /* sprite ram */ - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* service mode mirror */ - AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( bonzeadv_z80_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bonzeadv_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */ - AM_RANGE(0xe600, 0xe600) AM_WRITE(MWA8_NOP) - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9001, 0x9001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x9002, 0x9100) AM_READ(MRA8_RAM) - AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xb000, 0xb000) AM_WRITE(asuka_msm5205_address_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(asuka_msm5205_start_w) - AM_RANGE(0xd000, 0xd000) AM_WRITE(asuka_msm5205_stop_w) -ADDRESS_MAP_END - -/* no MSM5205 */ -static ADDRESS_MAP_START( cadash_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - - -#define TAITO_COINAGE_JAPAN_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_COINAGE_WORLD_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -#define TAITO_COINAGE_US_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0xc0, "Same as Start" ) - -#define TAITO_DIFFICULTY_8 \ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - -#define ASUKA_PLAYERS_INPUT( player ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define ASUKA_SYSTEM_INPUT \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - -#define CADASH_PLAYERS_INPUT( player ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY - -#define CADASH_SYSTEM_INPUT \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - -INPUT_PORTS_START( bonzeadv ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "40k,100k" ) - PORT_DIPSETTING( 0x0c, "50k,150k" ) - PORT_DIPSETTING( 0x04, "60k,200k" ) - PORT_DIPSETTING( 0x00, "80k,250k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("800007") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START_TAG("800009") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - - PORT_START_TAG("80000B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START_TAG("80000d") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( jigkmgri ) /* coinage DIPs differ from bonzeadv */ - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "40k,100k" ) - PORT_DIPSETTING( 0x0c, "50k,150k" ) - PORT_DIPSETTING( 0x04, "60k,200k" ) - PORT_DIPSETTING( 0x00, "80k,250k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("800007") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START_TAG("800009") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - - PORT_START_TAG("80000b") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START_TAG("80000d") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( asuka ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "500 Points" ) - PORT_DIPSETTING( 0x08, "1500 Points" ) - PORT_DIPSETTING( 0x04, "2000 Points" ) - PORT_DIPSETTING( 0x00, "2500 Points" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0xc0, "Up to Level 2" ) - PORT_DIPSETTING( 0x80, "Up to Level 3" ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - - PORT_START_TAG("IN0") - ASUKA_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - ASUKA_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - ASUKA_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( mofflott ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "20k and every 50k" ) - PORT_DIPSETTING( 0x08, "50k and every 100k" ) - PORT_DIPSETTING( 0x04, "100k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Number of Keys" ) - PORT_DIPSETTING( 0x00, "14" ) /* Hard */ - PORT_DIPSETTING( 0x80, "16" ) /* Easy */ - - PORT_START_TAG("IN0") - ASUKA_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - ASUKA_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - ASUKA_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( cadash ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Manual says leave it off */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Starting Time" ) - PORT_DIPSETTING( 0x00, "5:00" ) - PORT_DIPSETTING( 0x04, "6:00" ) - PORT_DIPSETTING( 0x0c, "7:00" ) - PORT_DIPSETTING( 0x08, "8:00" ) - /* Round cleared Added time */ - /* 1 8:00 */ - /* 2 10:00 */ - /* 3 8:00 */ - /* 4 7:00 */ - /* 5 9:00 */ - PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear)" ) - PORT_DIPSETTING( 0x00, "Default - 2:00" ) - PORT_DIPSETTING( 0x10, "Default - 1:00" ) - PORT_DIPSETTING( 0x30, "Default" ) - PORT_DIPSETTING( 0x20, "Default + 1:00" ) - PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode" ) - PORT_DIPSETTING( 0xc0, "Stand alone" ) - PORT_DIPSETTING( 0x80, "Master" ) - PORT_DIPSETTING( 0x00, "Slave" ) -// PORT_DIPSETTING( 0x40, "Stand alone" ) - - PORT_START_TAG("IN0") - CADASH_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - CADASH_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - CADASH_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( cadashj ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Manual says leave it off */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Starting Time" ) - PORT_DIPSETTING( 0x00, "5:00" ) - PORT_DIPSETTING( 0x04, "6:00" ) - PORT_DIPSETTING( 0x0c, "7:00" ) - PORT_DIPSETTING( 0x08, "8:00" ) - PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear)" ) - PORT_DIPSETTING( 0x00, "Default - 2:00" ) - PORT_DIPSETTING( 0x10, "Default - 1:00" ) - PORT_DIPSETTING( 0x30, "Default" ) - PORT_DIPSETTING( 0x20, "Default + 1:00" ) - PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode" ) - PORT_DIPSETTING( 0xc0, "Stand alone" ) - PORT_DIPSETTING( 0x80, "Master" ) - PORT_DIPSETTING( 0x00, "Slave" ) -// PORT_DIPSETTING( 0x40, "Stand alone" ) - - PORT_START_TAG("IN0") - CADASH_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - CADASH_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - CADASH_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( cadashu ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Manual says leave it off */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_US_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Starting Time" ) - PORT_DIPSETTING( 0x00, "5:00" ) - PORT_DIPSETTING( 0x04, "6:00" ) - PORT_DIPSETTING( 0x0c, "7:00" ) - PORT_DIPSETTING( 0x08, "8:00" ) - PORT_DIPNAME( 0x30, 0x30, "Added Time (after round clear)" ) - PORT_DIPSETTING( 0x00, "Default - 2:00" ) - PORT_DIPSETTING( 0x10, "Default - 1:00" ) - PORT_DIPSETTING( 0x30, "Default" ) - PORT_DIPSETTING( 0x20, "Default + 1:00" ) - PORT_DIPNAME( 0xc0, 0xc0, "Communication Mode" ) - PORT_DIPSETTING( 0xc0, "Stand alone" ) - PORT_DIPSETTING( 0x80, "Master" ) - PORT_DIPSETTING( 0x00, "Slave" ) -// PORT_DIPSETTING( 0x40, "Stand alone" ) - - PORT_START_TAG("IN0") - CADASH_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - CADASH_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - CADASH_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( galmedes ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 100k" ) - PORT_DIPSETTING( 0x0c, "100k and every 200k" ) - PORT_DIPSETTING( 0x04, "150k and every 200k" ) - PORT_DIPSETTING( 0x00, "every 200k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin Mode" ) - PORT_DIPSETTING( 0x80, "Mode A" ) /* Mode A is "TAITO_COINAGE_JAPAN_8" */ - PORT_DIPSETTING( 0x00, "Mode B" ) /* Mode B is "TAITO_COINAGE_WORLD_8" */ - - PORT_START_TAG("IN0") - ASUKA_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - ASUKA_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - ASUKA_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( earthjkr ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "100k Only" ) - PORT_DIPSETTING( 0x00, "100k / 300k" ) - PORT_DIPSETTING( 0x04, "200k Only" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - ASUKA_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - ASUKA_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - ASUKA_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( eto ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - ASUKA_PLAYERS_INPUT( 1 ) - - PORT_START_TAG("IN1") - ASUKA_PLAYERS_INPUT( 2 ) - - PORT_START_TAG("IN2") - ASUKA_SYSTEM_INPUT -INPUT_PORTS_END - - -/************************************************************** - GFX DECODING -**************************************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* OBJ */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* SCR */ - { -1 } /* end of array */ -}; - - - -/************************************************************** - SOUND -**************************************************************/ - -static void irq_handler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irq_handler, - REGION_SOUND1, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - -static struct YM2151interface ym2151_interface = -{ - irq_handler, - sound_bankswitch_w -}; - -static struct MSM5205interface msm5205_interface = -{ - asuka_msm5205_vck, /* VCK function */ - MSM5205_S48_4B /* 8 kHz */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -VIDEO_EOF( asuka ) -{ - PC090OJ_eof_callback(); -} - - -static MACHINE_DRIVER_START( bonzeadv ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* checked on PCB */ - MDRV_CPU_PROGRAM_MAP(bonzeadv_readmem,bonzeadv_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,4000000) /* sound CPU, also required for test mode */ - MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_readmem,bonzeadv_z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(asuka) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(bonzeadv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( asuka ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_readmem,z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(asuka) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(asuka) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cadash ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(cadash_readmem,cadash_writemem) - MDRV_CPU_VBLANK_INT(cadash_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(cadash) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(bonzeadv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mofflott ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_readmem,z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ - - MDRV_VIDEO_START(galmedes) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(asuka) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( galmedes ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(asuka_readmem,asuka_writemem) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ - - MDRV_VIDEO_START(galmedes) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(asuka) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( eto ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(eto_readmem,eto_writemem) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_readmem,cadash_z80_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(galmedes) - MDRV_VIDEO_EOF(asuka) - MDRV_VIDEO_UPDATE(asuka) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( bonzeadv ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "b41-09-1.17", 0x00000, 0x10000, CRC(af821fbc) SHA1(55bc13742033a31c92d6268d6b8344062ca78633) ) - ROM_LOAD16_BYTE( "b41-11-1.26", 0x00001, 0x10000, CRC(823fff00) SHA1(b8b8cafbe860136c202d8d9f3ed5a54e2f4df363) ) - ROM_LOAD16_BYTE( "b41-10.16", 0x20000, 0x10000, CRC(4ca94d77) SHA1(69a9f6bcb6d5e4132eed50860bdfe8d6b6d914cd) ) - ROM_LOAD16_BYTE( "b41-15.25", 0x20001, 0x10000, CRC(aed7a0d0) SHA1(99ffc0b0e88b81231756610bf48df5365e12603b) ) - /* 0x040000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD_SWAP( "b41-01.15", 0x80000, 0x80000, CRC(5d072fa4) SHA1(6ffe1b8531381eb6dd3f1fec18c91294a6aca9f6) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b41-13.20", 0x00000, 0x04000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - /* CPU3 - CCHIP aka TC0030CMD marked b41-05.43 */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) ) -ROM_END - -ROM_START( bonzeado ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "b41-09.17", 0x00000, 0x10000, CRC(06818710) SHA1(b8045f4e15246231a5645d22bb965953f7fb47a3) ) - ROM_LOAD16_BYTE( "b41-11.26", 0x00001, 0x10000, CRC(33c4c2f4) SHA1(3f1e76932d8f7e06e976b968a711177d25254bef) ) - ROM_LOAD16_BYTE( "b41-10.16", 0x20000, 0x10000, CRC(4ca94d77) SHA1(69a9f6bcb6d5e4132eed50860bdfe8d6b6d914cd) ) - ROM_LOAD16_BYTE( "b41-15.25", 0x20001, 0x10000, CRC(aed7a0d0) SHA1(99ffc0b0e88b81231756610bf48df5365e12603b) ) - /* 0x040000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD_SWAP( "b41-01.15", 0x80000, 0x80000, CRC(5d072fa4) SHA1(6ffe1b8531381eb6dd3f1fec18c91294a6aca9f6) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b41-13.20", 0x00000, 0x04000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - /* CPU3 - CCHIP aka TC0030CMD marked b41-05.43 */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) ) -ROM_END - -ROM_START( bonzeadu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "b41-09-1.17", 0x00000, 0x10000, CRC(af821fbc) SHA1(55bc13742033a31c92d6268d6b8344062ca78633) ) - ROM_LOAD16_BYTE( "b41-11-1.26", 0x00001, 0x10000, CRC(823fff00) SHA1(b8b8cafbe860136c202d8d9f3ed5a54e2f4df363) ) - ROM_LOAD16_BYTE( "b41-10.16", 0x20000, 0x10000, CRC(4ca94d77) SHA1(69a9f6bcb6d5e4132eed50860bdfe8d6b6d914cd) ) - ROM_LOAD16_BYTE( "b41-14.25", 0x20001, 0x10000, CRC(37def16a) SHA1(b0a3b7206db55e29454672fffadf4e2a64eed873) ) - /* 0x040000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD_SWAP( "b41-01.15", 0x80000, 0x80000, CRC(5d072fa4) SHA1(6ffe1b8531381eb6dd3f1fec18c91294a6aca9f6) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b41-13.20", 0x00000, 0x04000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - /* CPU3 - CCHIP aka TC0030CMD marked b41-05.43 */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) ) -ROM_END - -ROM_START( jigkmgri ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "b41-09-1.17", 0x00000, 0x10000, CRC(af821fbc) SHA1(55bc13742033a31c92d6268d6b8344062ca78633) ) - ROM_LOAD16_BYTE( "b41-11-1.26", 0x00001, 0x10000, CRC(823fff00) SHA1(b8b8cafbe860136c202d8d9f3ed5a54e2f4df363) ) - ROM_LOAD16_BYTE( "b41-10.16", 0x20000, 0x10000, CRC(4ca94d77) SHA1(69a9f6bcb6d5e4132eed50860bdfe8d6b6d914cd) ) - ROM_LOAD16_BYTE( "b41-12.25", 0x20001, 0x10000, CRC(40d9c1fc) SHA1(6f03d263e10559988aaa2be00d9bbf55f2fb864e) ) - /* 0x040000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD_SWAP( "b41-01.15", 0x80000, 0x80000, CRC(5d072fa4) SHA1(6ffe1b8531381eb6dd3f1fec18c91294a6aca9f6) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-03.1", 0x00000, 0x80000, CRC(736d35d0) SHA1(7d41a7d71e117714bbd2cdda2953589cda6e763a) ) /* Tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b41-02.7", 0x00000, 0x80000, CRC(29f205d9) SHA1(9e9f0c2755a9aa5acfe2601911bfa07d8d61164c) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b41-13.20", 0x00000, 0x04000, CRC(9e464254) SHA1(b6f6126b54c15320ecaa652d0eeabaa4cd94bd26) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - /* CPU3 - CCHIP aka TC0030CMD marked b41-05.43 */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b41-04.48", 0x00000, 0x80000, CRC(c668638f) SHA1(07238a6cb4d93ffaf6351657163b5d80f0dbf688) ) -ROM_END - -ROM_START( asuka ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "b68-13.bin", 0x00000, 0x20000, CRC(855efb3e) SHA1(644e02e207adeaec7839c824688d88ab8d046418) ) - ROM_LOAD16_BYTE( "b68-12.bin", 0x00001, 0x20000, CRC(271eeee9) SHA1(c08e347be4aae929c0ab95ff7618edaa1a7d6da9) ) - /* 0x040000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD( "b68-03.bin", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b68-01.bin", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0xa0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD ( "b68-02.bin", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */ - ROM_LOAD16_BYTE( "b68-07.bin", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) ) - ROM_LOAD16_BYTE( "b68-06.bin", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b68-11.bin", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b68-10.bin", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) ) -ROM_END - -ROM_START( mofflott ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "c17-09.bin", 0x00000, 0x20000, CRC(05ee110f) SHA1(8cedd911d3fdcca1e409260d12dd03a2fb35ef86) ) - ROM_LOAD16_BYTE( "c17-08.bin", 0x00001, 0x20000, CRC(d0aacffd) SHA1(2c5ec4020aad2c1cd3a004dc70a12e0d77eb6aa7) ) - /* 0x40000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD( "c17-03.bin", 0x80000, 0x80000, CRC(27047fc3) SHA1(1f88a7a42a94bac0e164a69896ae168ab821fbb3) ) /* Fix ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c17-01.bin", 0x00000, 0x80000, CRC(e9466d42) SHA1(93d533a9a992e3ff537e914577ede41729235826) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0xa0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD ( "c17-02.bin", 0x00000, 0x80000, CRC(8860a8db) SHA1(372adea8835a9524ece30ab71181ef9d05b120e9) ) /* Sprites (16 x 16) */ - ROM_LOAD16_BYTE( "c17-05.bin", 0x80000, 0x10000, CRC(57ac4741) SHA1(3188ff0866324c68fba8e9745a0cb186784cb53d) ) - ROM_LOAD16_BYTE( "c17-04.bin", 0x80001, 0x10000, CRC(f4250410) SHA1(1f5f6baca4aa695ce2ae5c65adcb460da872a239) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c17-07.bin", 0x00000, 0x04000, CRC(cdb7bc2c) SHA1(5113055c954a39918436db75cc06b53c29c60728) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c17-06.bin", 0x00000, 0x10000, CRC(5c332125) SHA1(408f42df18b38347c8a4e177a9484162a66877e1) ) -ROM_END - -ROM_START( cadash ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c21-14", 0x00000, 0x20000, CRC(5daf13fb) SHA1(c2be42b2cdc90b6463ce87211cf711c951b17fab) ) - ROM_LOAD16_BYTE( "c21-16", 0x00001, 0x20000, CRC(cbaa2e75) SHA1(c41ea71f2b0e72bf993dfcfd30f1994cae9f52a0) ) - ROM_LOAD16_BYTE( "c21-13", 0x40000, 0x20000, CRC(6b9e0ee9) SHA1(06314b9c0be19314e6b6ecb5274a63eb36b642f5) ) - ROM_LOAD16_BYTE( "c21-17", 0x40001, 0x20000, CRC(bf9a578a) SHA1(42bde46081db6be2f61eaf171438ecc9264d18be) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c21-08.38", 0x00000, 0x04000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* 2 machine interface mcu rom ? */ - ROM_LOAD( "c21-07.57", 0x00000, 0x08000, CRC(f02292bd) SHA1(0a5c06a048ad67f90e0d766b504582e9eef035f7) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-c21-09.ic34", 0x0000, 0x0104, CRC(4b296700) SHA1(79d6c8fb13e30795d9c1f49885ada658f9722b68) ) - ROM_LOAD( "pal16l8b-c21-10.ic45", 0x0200, 0x0104, CRC(35642f00) SHA1(a04403536b0ef7e8e7251dfc47274a6c8772fd2d) ) - ROM_LOAD( "pal16l8b-c21-11-1.ic46", 0x0400, 0x0104, CRC(f4791e24) SHA1(7e3bbffec7b8f9171e6e09706e5622fef3c99ca0) ) - ROM_LOAD( "pal20l8b-c21-12.ic47", 0x0600, 0x0144, CRC(bbc2cc97) SHA1(d4a68f28e0d3f5a3b39ecc25640bc9197ad0260b) ) -ROM_END - -ROM_START( cadashj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c21-04.11", 0x00000, 0x20000, CRC(cc22ebe5) SHA1(170787e7ab2055af593f3f2596cab44feb53b060) ) - ROM_LOAD16_BYTE( "c21-06.15", 0x00001, 0x20000, CRC(26e03304) SHA1(c8b271e455dde312c8871dc8dd4d3f0f063fa894) ) - ROM_LOAD16_BYTE( "c21-03.10", 0x40000, 0x20000, CRC(c54888ed) SHA1(8a58da25eb8986a1c6496290e82344840badef0a) ) - ROM_LOAD16_BYTE( "c21-05.14", 0x40001, 0x20000, CRC(834018d2) SHA1(0b1a29316f90a98478b47d7fa3f05c68e5ddd9b3) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c21-08.38", 0x00000, 0x04000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* 2 machine interface mcu rom ? */ - ROM_LOAD( "c21-07.57", 0x00000, 0x08000, CRC(f02292bd) SHA1(0a5c06a048ad67f90e0d766b504582e9eef035f7) ) -ROM_END - -ROM_START( cadashu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c21-14-2.11", 0x00000, 0x20000, CRC(f823d418) SHA1(5b4a0b42fb5a2e1ba1e25465762cdc24c41b33f8) ) - ROM_LOAD16_BYTE( "c21-16-2.15", 0x00001, 0x20000, CRC(90165577) SHA1(b8e163cf60933aaaa53873fbc866d8d1750240ab) ) - ROM_LOAD16_BYTE( "c21-13-2.10", 0x40000, 0x20000, CRC(92dcc3ae) SHA1(7d11c6d8b54468f0c56b4f58adc176e4d46a62eb) ) - ROM_LOAD16_BYTE( "c21-15-2.14", 0x40001, 0x20000, CRC(f915d26a) SHA1(cdc7e6a35077ebff937350aee1eee332352e9383) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - // bad dump so used checksum from other sets // - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - // bad dump so used checksum from other sets // - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c21-08.38", 0x00000, 0x04000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* 2 machine interface mcu rom ? */ - ROM_LOAD( "c21-07.57", 0x00000, 0x08000, CRC(f02292bd) SHA1(0a5c06a048ad67f90e0d766b504582e9eef035f7) ) -ROM_END - -ROM_START( cadashi ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c21-14it", 0x00000, 0x20000, CRC(d1d9e613) SHA1(296c188daec962bdb4e78e20f1cc4c7d1f4dda09) ) - ROM_LOAD16_BYTE( "c21-16it", 0x00001, 0x20000, CRC(142256ef) SHA1(9ffc64d7c900bfa0300de9e6d18c7458f4c76ed7) ) - ROM_LOAD16_BYTE( "c21-13it", 0x40000, 0x20000, CRC(c9cf6e30) SHA1(872c871cd60e0aa7149660277f67f90748d82743) ) - ROM_LOAD16_BYTE( "c21-17it", 0x40001, 0x20000, CRC(641fc9dd) SHA1(1497e39f6b250de39ef2785aaca7e68a803612fa) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c21-08.38", 0x00000, 0x04000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* 2 machine interface mcu rom ? */ - ROM_LOAD( "c21-07.57", 0x00000, 0x08000, CRC(f02292bd) SHA1(0a5c06a048ad67f90e0d766b504582e9eef035f7) ) -ROM_END - -ROM_START( cadashf ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c21-19", 0x00000, 0x20000, CRC(4d70543b) SHA1(4fc8d4a9f978232a484af3d91bf8eea2afc839a7) ) - ROM_LOAD16_BYTE( "c21-21", 0x00001, 0x20000, CRC(0e5b9950) SHA1(872919bab057fc9e5baffe5dfe35b1b8c1ed0105) ) - ROM_LOAD16_BYTE( "c21-18", 0x40000, 0x20000, CRC(8a19e59b) SHA1(b42a0c8273ca6f202a5dc6e33965423da3b074d8) ) - ROM_LOAD16_BYTE( "c21-20", 0x40001, 0x20000, CRC(b96acfd9) SHA1(d05b55fd5bbf8fd0e5a7272d1951f27a4900371f) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-02.9", 0x00000, 0x80000, CRC(205883b9) SHA1(5aafee8cab3f949a7db91bcc26912f331041b51e) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c21-01.1", 0x00000, 0x80000, CRC(1ff6f39c) SHA1(742f296efc8073fafa73da2c8d7d26ca9514b6bf) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c21-08.38", 0x00000, 0x04000, CRC(dca495a0) SHA1(4e0f401f1b967da75f33fd7294860ad0b4bf2dce) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* 2 machine interface mcu rom ? */ - ROM_LOAD( "c21-07.57", 0x00000, 0x08000, CRC(f02292bd) SHA1(0a5c06a048ad67f90e0d766b504582e9eef035f7) ) -ROM_END - -ROM_START( galmedes ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "gm-prg1.bin", 0x00000, 0x20000, CRC(32a70753) SHA1(3bd094b7ae600dbc87ba74e8b2d6b86a68346f4f) ) - ROM_LOAD16_BYTE( "gm-prg0.bin", 0x00001, 0x20000, CRC(fae546a4) SHA1(484cad5287daa495b347f6b5b065f3b3d02d8f0e) ) - /* 0x40000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD( "gm-30.rom", 0x80000, 0x80000, CRC(4da2a407) SHA1(7bd0eb629dd7022a16e328612c786c544267f7bc) ) /* Fix ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gm-scn.bin", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gm-obj.bin", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "gm-snd.bin", 0x00000, 0x04000, CRC(d6f56c21) SHA1(ff9743448ac8ce57a2f8c33a26145e7b92cbe3c3) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ -ROM_END - -ROM_START( earthjkr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "ej_3b.rom", 0x00000, 0x20000, CRC(bdd86fc2) SHA1(96578860ed03718f8a68847b367eac6c81b79ca2) ) - ROM_LOAD16_BYTE( "ej_3a.rom", 0x00001, 0x20000, CRC(9c8050c6) SHA1(076c882f75787e8120de66ff0dcd2cb820513c45) ) - /* 0x40000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD( "ej_30e.rom", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ej_chr.rom", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0xa0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD ( "ej_obj.rom", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) */ - ROM_LOAD16_BYTE( "ej_1.rom", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) ) - ROM_LOAD16_BYTE( "ej_0.rom", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "ej_2.rom", 0x00000, 0x04000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ -ROM_END - -ROM_START( eto ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "eto-1.23", 0x00000, 0x20000, CRC(44286597) SHA1(ac37e5edbf9d187f60232adc5e9ebed45b3d2fe2) ) - ROM_LOAD16_BYTE( "eto-0.8", 0x00001, 0x20000, CRC(57b79370) SHA1(25f83eada982ef654260fe92016d42a90005a05c) ) - /* 0x40000 - 0x7ffff is intentionally empty */ - ROM_LOAD16_WORD( "eto-2.30", 0x80000, 0x80000, CRC(12f46fb5) SHA1(04db8b6ccd0051668bd2930275efa0265c0cfd2b) ) /* Fix ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "eto-4.3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "eto-3.6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "eto-5.27", 0x00000, 0x04000, CRC(b3689da0) SHA1(812d2e0a794403df9f0a5035784f14cd070ea080) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ -ROM_END - - -GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", 0 ) -GAME( 1988, bonzeado, bonzeadv, bonzeadv, bonzeadv, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", 0 ) -GAME( 1988, bonzeadu, bonzeadv, bonzeadv, jigkmgri, 0, ROT0, "Taito America Corporation", "Bonze Adventure (US)", 0 ) -GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, 0, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", 0 ) -GAME( 1988, asuka, 0, asuka, asuka, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", 0 ) -GAME( 1989, mofflott, 0, mofflott, mofflott, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", 0 ) -GAME( 1989, cadash, 0, cadash, cadash, 0, ROT0, "Taito Corporation Japan", "Cadash (World)", 0 ) -GAME( 1989, cadashj, cadash, cadash, cadashj, 0, ROT0, "Taito Corporation", "Cadash (Japan)", 0 ) -GAME( 1989, cadashu, cadash, cadash, cadashu, 0, ROT0, "Taito America Corporation", "Cadash (US)", 0 ) -GAME( 1989, cadashi, cadash, cadash, cadash, 0, ROT0, "Taito Corporation Japan", "Cadash (Italy)", 0 ) -GAME( 1989, cadashf, cadash, cadash, cadash, 0, ROT0, "Taito Corporation Japan", "Cadash (France)", 0 ) -GAME( 1992, galmedes, 0, galmedes, galmedes, 0, ROT270, "Visco", "Galmedes (Japan)", 0 ) -GAME( 1993, earthjkr, 0, galmedes, earthjkr, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan)", 0 ) -GAME( 1994, eto, 0, eto, eto, 0, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", 0 ) diff --git a/src/drivers/atarigt.c b/src/drivers/atarigt.c deleted file mode 100644 index 2b9fbbcba..000000000 --- a/src/drivers/atarigt.c +++ /dev/null @@ -1,1138 +0,0 @@ -/*************************************************************************** - - Atari GT hardware - - driver by Aaron Giles - - Games supported: - * T-Mek (1994) [2 sets] - * Primal Rage (1994) [2 sets] - - Known bugs: - * protection devices unknown - -**************************************************************************** - - Memory map (TBA) - -***************************************************************************/ - - -#include "driver.h" -#include "machine/atarigen.h" -#include "vidhrdw/atarirle.h" -#include "cpu/m68000/m68000.h" -#include "sndhrdw/cage.h" -#include "atarigt.h" - - -#define LOG_PROTECTION (0) -#define HACK_TMEK_CONTROLS (0) - - - -/************************************* - * - * Statics - * - *************************************/ - -UINT8 atarigt_is_primrage; - -static UINT32 * mo_command; - -static void (*protection_w)(offs_t offset, UINT16 data); -static void (*protection_r)(offs_t offset, UINT16 *data); - -static void cage_irq_callback(int reason); - - - -/************************************* - * - * Initialization - * - *************************************/ - -static void update_interrupts(void) -{ - int newstate = 0; - - if (atarigen_sound_int_state) - newstate = 3; - if (atarigen_video_int_state) - newstate = 4; - if (atarigen_scanline_int_state) - newstate = 6; - - if (newstate) - cpunum_set_input_line(0, newstate, ASSERT_LINE); - else - cpunum_set_input_line(0, 7, CLEAR_LINE); -} - - -static MACHINE_RESET( atarigt ) -{ - atarigen_eeprom_reset(); - atarigen_interrupt_reset(update_interrupts); - atarigen_scanline_timer_reset(atarigt_scanline_update, 8); -} - - - -/************************************* - * - * CAGE sound interrupts - * - *************************************/ - -static void cage_irq_callback(int reason) -{ - if (reason) - atarigen_sound_int_gen(); - else - atarigen_sound_int_ack_w(0,0,0); -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static READ32_HANDLER( inputs_01_r ) -{ - return (readinputportbytag("IN0") << 16) | readinputportbytag("IN1"); -} - - -static READ32_HANDLER( special_port2_r ) -{ - int temp = readinputportbytag("IN2"); - temp ^= 0x0001; /* /A2DRDY always high for now */ - temp ^= 0x0008; /* A2D.EOC always high for now */ - return (temp << 16) | temp; -} - - -static READ32_HANDLER( special_port3_r ) -{ - int temp = readinputportbytag("IN3"); - if (atarigen_video_int_state) temp ^= 0x0001; - if (atarigen_scanline_int_state) temp ^= 0x0002; - return (temp << 16) | temp; -} - - -#if (HACK_TMEK_CONTROLS) -INLINE void compute_fake_pots(int *pots) -{ - int fake = readinputportbytag("FAKE"); - - pots[0] = pots[1] = pots[2] = pots[3] = 0x80; - - if (fake & 0x01) /* up */ - { - if (fake & 0x04) /* up and left */ - pots[3] = 0x00; - else if (fake & 0x08) /* up and right */ - pots[1] = 0x00; - else /* up only */ - pots[1] = pots[3] = 0x00; - } - else if (fake & 0x02) /* down */ - { - if (fake & 0x04) /* down and left */ - pots[3] = 0xff; - else if (fake & 0x08) /* down and right */ - pots[1] = 0xff; - else /* down only */ - pots[1] = pots[3] = 0xff; - } - else if (fake & 0x04) /* left only */ - pots[1] = 0xff, pots[3] = 0x00; - else if (fake & 0x08) /* right only */ - pots[3] = 0xff, pots[1] = 0x00; -} -#endif - - -static READ32_HANDLER( analog_port0_r ) -{ -#if (HACK_TMEK_CONTROLS) - int pots[4]; - compute_fake_pots(pots); - return (pots[0] << 24) | (pots[3] << 8); -#else - return (readinputportbytag("IN4") << 24) | (readinputportbytag("IN5") << 8); -#endif -} - - -static READ32_HANDLER( analog_port1_r ) -{ -#if (HACK_TMEK_CONTROLS) - int pots[4]; - compute_fake_pots(pots); - return (pots[2] << 24) | (pots[1] << 8); -#else - return (readinputportbytag("IN6") << 24) | (readinputportbytag("IN7") << 8); -#endif -} - - - -/************************************* - * - * Output ports - * - *************************************/ - -static WRITE32_HANDLER( latch_w ) -{ - /* - D13 = 68.DISA - D12 = ERASE - D11 = /MOGO - D8 = VCR - D5 = /XRESET - D4 = /SNDRES - D3 = CC.L - D0 = CC.R - */ - - /* upper byte */ - if (!(mem_mask & 0xff000000)) - { - /* bits 13-11 are the MO control bits */ - atarirle_control_w(0, (data >> 27) & 7); - } - - if (!(mem_mask & 0x00ff0000)) - { -// cage_reset_w(data & 0x00100000); - coin_counter_w(0, data & 0x00080000); - coin_counter_w(1, data & 0x00010000); - } -} - - -static WRITE32_HANDLER( mo_command_w ) -{ - COMBINE_DATA(mo_command); - if (ACCESSING_LSW32) - atarirle_command_w(0, ((data & 0xffff) == 2) ? ATARIRLE_COMMAND_CHECKSUM : ATARIRLE_COMMAND_DRAW); -} - - -static WRITE32_HANDLER( led_w ) -{ -// logerror("LED = %08X & %08X\n", data, ~mem_mask); -} - - - -/************************************* - * - * Sound I/O - * - *************************************/ - -static READ32_HANDLER( sound_data_r ) -{ - UINT32 result = 0; - - if (ACCESSING_LSW32) - result |= cage_control_r(); - if (ACCESSING_MSW32) - result |= main_from_cage_r() << 16; - return result; -} - - -static WRITE32_HANDLER( sound_data_w ) -{ - if (ACCESSING_LSW32) - cage_control_w(data); - if (ACCESSING_MSW32) - main_to_cage_w(data >> 16); -} - - - -/************************************* - * - * T-Mek protection - * - *************************************/ - -#define ADDRSEQ_COUNT 4 - -static offs_t protaddr[ADDRSEQ_COUNT]; -static UINT8 protmode; -static UINT16 protresult; -static UINT8 protdata[0x800]; - -static UINT8 ignore_writes = 0; - -static void tmek_update_mode(offs_t offset) -{ - int i; - - /* pop us into the readseq */ - for (i = 0; i < ADDRSEQ_COUNT - 1; i++) - protaddr[i] = protaddr[i + 1]; - protaddr[ADDRSEQ_COUNT - 1] = offset; - -} - - -static void tmek_protection_w(offs_t offset, UINT16 data) -{ -#if LOG_PROTECTION - logerror("%06X:Protection W@%06X = %04X\n", activecpu_get_previouspc(), offset, data); -#endif - - /* track accesses */ - tmek_update_mode(offset); - - switch (offset) - { - case 0xdb0000: - ignore_writes = (data == 0x18); - break; - } -} - -static void tmek_protection_r(offs_t offset, UINT16 *data) -{ -#if LOG_PROTECTION - logerror("%06X:Protection R@%06X\n", activecpu_get_previouspc(), offset); -#endif - - /* track accesses */ - tmek_update_mode(offset); - - /* handle specific reads */ - switch (offset) - { - /* status register; the code spins on this waiting for the high bit to be set */ - case 0xdb8700: - case 0xdb87c0: -// if (protmode != 0) - { - *data = -1;//0x8000; - } - break; - } -} - - - -/************************************* - * - * Primal Rage protection - * - *************************************/ - -static void primage_update_mode(offs_t offset) -{ - int i; - - /* pop us into the readseq */ - for (i = 0; i < ADDRSEQ_COUNT - 1; i++) - protaddr[i] = protaddr[i + 1]; - protaddr[ADDRSEQ_COUNT - 1] = offset; - - /* check for particular sequences */ - if (!protmode) - { - /* this is from the code at $20f90 */ - if (protaddr[1] == 0xdcc7c4 && protaddr[2] == 0xdcc7c4 && protaddr[3] == 0xdc4010) - { -// logerror("prot:Entering mode 1\n"); - protmode = 1; - } - - /* this is from the code at $27592 */ - if (protaddr[0] == 0xdcc7ca && protaddr[1] == 0xdcc7ca && protaddr[2] == 0xdcc7c6 && protaddr[3] == 0xdc4022) - { -// logerror("prot:Entering mode 2\n"); - protmode = 2; - } - - /* this is from the code at $3d8dc */ - if (protaddr[0] == 0xdcc7c0 && protaddr[1] == 0xdcc7c0 && protaddr[2] == 0xdc80f2 && protaddr[3] == 0xdc7af2) - { -// logerror("prot:Entering mode 3\n"); - protmode = 3; - } - } -} - - - -static void primrage_protection_w(offs_t offset, UINT16 data) -{ -#if LOG_PROTECTION -{ - UINT32 pc = activecpu_get_previouspc(); - switch (pc) - { - /* protection code from 20f90 - 21000 */ - case 0x20fba: - if (offset % 16 == 0) logerror("\n "); - logerror("W@%06X(%04X) ", offset, data); - break; - - /* protection code from 27592 - 27664 */ - case 0x275f6: - logerror("W@%06X(%04X) ", offset, data); - break; - - /* protection code from 3d8dc - 3d95a */ - case 0x3d908: - case 0x3d932: - case 0x3d938: - case 0x3d93e: - logerror("W@%06X(%04X) ", offset, data); - break; - case 0x3d944: - logerror("W@%06X(%04X) - done\n", offset, data); - break; - - /* protection code from 437fa - 43860 */ - case 0x43830: - case 0x43838: - logerror("W@%06X(%04X) ", offset, data); - break; - - /* catch anything else */ - default: - logerror("%06X:Unknown protection W@%06X = %04X\n", activecpu_get_previouspc(), offset, data); - break; - } -} -#endif - -/* mask = 0x78fff */ - - /* track accesses */ - primage_update_mode(offset); - - /* check for certain read sequences */ - if (protmode == 1 && offset >= 0xdc7800 && offset < 0xdc7800 + sizeof(protdata) * 2) - protdata[(offset - 0xdc7800) / 2] = data; - - if (protmode == 2) - { - int temp = (offset - 0xdc7800) / 2; -// logerror("prot:mode 2 param = %04X\n", temp); - protresult = temp * 0x6915 + 0x6915; - } - - if (protmode == 3) - { - if (offset == 0xdc4700) - { -// logerror("prot:Clearing mode 3\n"); - protmode = 0; - } - } -} - - - -static void primrage_protection_r(offs_t offset, UINT16 *data) -{ - /* track accesses */ - primage_update_mode(offset); - -#if LOG_PROTECTION -{ - UINT32 pc = activecpu_get_previouspc(); - UINT32 p1, p2, a6; - switch (pc) - { - /* protection code from 20f90 - 21000 */ - case 0x20f90: - logerror("Known Protection @ 20F90: R@%06X ", offset); - break; - case 0x20f98: - case 0x20fa0: - logerror("R@%06X ", offset); - break; - case 0x20fcc: - logerror("R@%06X - done\n", offset); - break; - - /* protection code from 27592 - 27664 */ - case 0x275bc: - break; - case 0x275cc: - a6 = activecpu_get_reg(M68K_A6); - p1 = (cpu_readmem24bedw_word(a6+8) << 16) | cpu_readmem24bedw_word(a6+10); - p2 = (cpu_readmem24bedw_word(a6+12) << 16) | cpu_readmem24bedw_word(a6+14); - logerror("Known Protection @ 275BC(%08X, %08X): R@%06X ", p1, p2, offset); - break; - case 0x275d2: - case 0x275d8: - case 0x275de: - case 0x2761e: - case 0x2762e: - logerror("R@%06X ", offset); - break; - case 0x2763e: - logerror("R@%06X - done\n", offset); - break; - - /* protection code from 3d8dc - 3d95a */ - case 0x3d8f4: - a6 = activecpu_get_reg(M68K_A6); - p1 = (cpu_readmem24bedw_word(a6+12) << 16) | cpu_readmem24bedw_word(a6+14); - logerror("Known Protection @ 3D8F4(%08X): R@%06X ", p1, offset); - break; - case 0x3d8fa: - case 0x3d90e: - logerror("R@%06X ", offset); - break; - - /* protection code from 437fa - 43860 */ - case 0x43814: - a6 = activecpu_get_reg(M68K_A6); - p1 = cpu_readmem24bedw(a6+15); - logerror("Known Protection @ 43814(%08X): R@%06X ", p1, offset); - break; - case 0x4381c: - case 0x43840: - logerror("R@%06X ", offset); - break; - case 0x43848: - logerror("R@%06X - done\n", offset); - break; - - /* catch anything else */ - default: - logerror("%06X:Unknown protection R@%06X\n", activecpu_get_previouspc(), offset); - break; - } -} -#endif - - /* handle specific reads */ - switch (offset) - { - /* status register; the code spins on this waiting for the high bit to be set */ - case 0xdc4700: -// if (protmode != 0) - { - *data = 0x8000; - } - break; - - /* some kind of result register */ - case 0xdcc7c2: - if (protmode == 2) - { - *data = protresult; - protmode = 0; -// logerror("prot:Clearing mode 2\n"); - } - break; - - case 0xdcc7c4: - if (protmode == 1) - { - protmode = 0; -// logerror("prot:Clearing mode 1\n"); - } - break; - } -} - - - -/************************************* - * - * Protection/color RAM - * - *************************************/ - -static READ32_HANDLER( colorram_protection_r ) -{ - offs_t address = 0xd80000 + offset * 4; - UINT32 result32 = 0; - UINT16 result; - - if ((mem_mask & 0xffff0000) != 0xffff0000) - { - result = atarigt_colorram_r(address); - (*protection_r)(address, &result); - result32 |= result << 16; - } - if ((mem_mask & 0x0000ffff) != 0x0000ffff) - { - result = atarigt_colorram_r(address + 2); - (*protection_r)(address + 2, &result); - result32 |= result; - } - - return result32; -} - - -static WRITE32_HANDLER( colorram_protection_w ) -{ - offs_t address = 0xd80000 + offset * 4; - - if ((mem_mask & 0xffff0000) != 0xffff0000) - { - if (!ignore_writes) - atarigt_colorram_w(address, data >> 16, mem_mask >> 16); - (*protection_w)(address, data >> 16); - } - if ((mem_mask & 0x0000ffff) != 0x0000ffff) - { - if (!ignore_writes) - atarigt_colorram_w(address + 2, data, mem_mask); - (*protection_w)(address + 2, data); - } -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0xc00000, 0xc00003) AM_READWRITE(sound_data_r, sound_data_w) - AM_RANGE(0xd00014, 0xd00017) AM_READ(analog_port0_r) - AM_RANGE(0xd0001c, 0xd0001f) AM_READ(analog_port1_r) - AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(atarigen_eeprom_upper32_r, atarigen_eeprom32_w) AM_BASE((UINT32 **)&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size) - AM_RANGE(0xd40000, 0xd4ffff) AM_WRITE(atarigen_eeprom_enable32_w) - AM_RANGE(0xd72000, 0xd75fff) AM_WRITE(atarigen_playfield32_w) AM_BASE(&atarigen_playfield32) - AM_RANGE(0xd76000, 0xd76fff) AM_WRITE(atarigen_alpha32_w) AM_BASE(&atarigen_alpha32) - AM_RANGE(0xd78000, 0xd78fff) AM_WRITE(atarirle_0_spriteram32_w) AM_BASE(&atarirle_0_spriteram32) - AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_BASE(&mo_command) - AM_RANGE(0xd70000, 0xd7ffff) AM_RAM - AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(colorram_protection_r, colorram_protection_w) AM_BASE((UINT32 **)&atarigt_colorram) - AM_RANGE(0xe04000, 0xe04003) AM_WRITE(led_w) - AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w) - AM_RANGE(0xe0a000, 0xe0a003) AM_WRITE(atarigen_scanline_int_ack32_w) - AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE(atarigen_video_int_ack32_w) - AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE(MWA32_NOP)//watchdog_reset_w }, - AM_RANGE(0xe80000, 0xe80003) AM_READ(inputs_01_r) - AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r) - AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r) - AM_RANGE(0xf80000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define COMMON_IN0\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )\ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)\ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)\ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)\ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)\ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)\ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)\ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - -#define COMMON_IN1\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )\ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START2 )\ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)\ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)\ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)\ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)\ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)\ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)\ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - -#define COMMON_IN2\ - PORT_START_TAG("IN2") /* 68.STATUS (A2=0) */ \ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /A2DRDY */ \ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_TILT ) /* TILT */ \ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /XIRQ23 */ \ - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* A2D.EOC */ \ - PORT_BIT( 0x0030, IP_ACTIVE_LOW, IPT_UNUSED ) /* NC */ \ - PORT_SERVICE( 0x0040, IP_ACTIVE_LOW ) /* SELFTEST */ \ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_VBLANK ) /* VBLANK */ \ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - -#define COMMON_IN3\ - PORT_START_TAG("IN3") /* 68.STATUS (A2=1) */ \ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /VBIRQ */ \ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /4MSIRQ */ \ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /XIRQ0 */ \ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /XIRQ1 */ \ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /SERVICER */ \ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* /SER.L */ \ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) /* COINR */ \ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) /* COINL */ \ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_START( tmek ) - COMMON_IN0 /* 68.SW (A1=0) */ - - COMMON_IN1 /* 68.SW (A1=1) */ - - COMMON_IN2 - - COMMON_IN3 - -#if (HACK_TMEK_CONTROLS) - PORT_START_TAG("FAKE") /* single digital joystick */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) -#else - PORT_START_TAG("IN4") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("IN6") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("IN7") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) -#endif - -INPUT_PORTS_END - - -INPUT_PORTS_START( primrage ) - COMMON_IN0 /* 68.SW (A1=0) */ - - COMMON_IN1 /* 68.SW (A1=1) bit 0x0008 does something */ - - COMMON_IN2 /* 68.STATUS (A2=0) */ - - COMMON_IN3 /* 68.STATUS (A2=1) */ - - PORT_START_TAG("IN4") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout pflayout = -{ - 8,8, - RGN_FRAC(1,3), - 5, - { 0, 0, 1, 2, 3 }, - { RGN_FRAC(1,3)+0, RGN_FRAC(1,3)+4, 0, 4, RGN_FRAC(1,3)+8, RGN_FRAC(1,3)+12, 8, 12 }, - { 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 }, - 16*8 -}; - - -static const gfx_layout pftoplayout = -{ - 8,8, - RGN_FRAC(1,3), - 6, - { RGN_FRAC(2,3)+0, RGN_FRAC(2,3)+4, 0, 0, 0, 0 }, - { 3, 2, 1, 0, 11, 10, 9, 8 }, - { 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 }, - 16*8 -}; - - -static const gfx_layout anlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0, 4, 8, 12, 16, 20, 24, 28 }, - { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8 }, - 32*8 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &pflayout, 0x000, 64 }, - { REGION_GFX2, 0, &anlayout, 0x000, 16 }, - { REGION_GFX1, 0, &pftoplayout, 0x000, 64 }, - { -1 } /* end of array */ -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( atarigt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, ATARI_CLOCK_50MHz/2) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(atarigen_video_int_gen,1) - MDRV_CPU_PERIODIC_INT(atarigen_scanline_int_gen,TIME_IN_HZ(250)) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(atarigt) - MDRV_NVRAM_HANDLER(atarigen) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(42*8, 30*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(atarigt) - MDRV_VIDEO_EOF(atarirle) - MDRV_VIDEO_UPDATE(atarigt) - - /* sound hardware */ - MDRV_IMPORT_FROM(cage) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -ROM_START( tmek ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 8*64k for 68000 code */ - ROM_LOAD32_BYTE( "0044d", 0x00000, 0x20000, CRC(1cd62725) SHA1(7685794d9fbe3fe7a9978d12e489447b4fba5282) ) - ROM_LOAD32_BYTE( "0043d", 0x00001, 0x20000, CRC(82185051) SHA1(a21aad4f6ec948d9cd47efb89e7811c5c2e4850b) ) - ROM_LOAD32_BYTE( "0042d", 0x00002, 0x20000, CRC(ef9feda4) SHA1(9fb6e91d4c22e28ced61d0d1f28f5e43191c8762) ) - ROM_LOAD32_BYTE( "0041d", 0x00003, 0x20000, CRC(179da056) SHA1(5f7ddf44aab55beaf2c377b0c93279acb6273255) ) - - ROM_REGION32_LE( 0x200000, REGION_USER1, 0 ) /* TMS320C31 boot ROM */ - ROM_LOAD32_BYTE( "0078c", 0x000000, 0x080000, CRC(ff5b979a) SHA1(deb8ee454b6b7c7bddb2ba0c808869e45b19e55f) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* TMS320C31 sound ROMs */ - ROM_LOAD32_WORD( "0077", 0x400000, 0x200000, CRC(8f650f8b) SHA1(e3b48ff4e2093d709134b6bf62cecd101ab5cef4) ) - ROM_LOAD32_BYTE( "2501a", 0x400002, 0x080000, CRC(98e51103) SHA1(420d0aac6b1de1bd990b9e4219041192400299f8) ) - ROM_LOAD32_BYTE( "2500a", 0x400003, 0x080000, CRC(49c0136c) SHA1(1ad463b1e50df9843abb8c645cbe8a79e42cbb87) ) - ROM_LOAD32_BYTE( "2503a", 0x600002, 0x080000, CRC(4376f3eb) SHA1(fe3f1efec3e6b4da3d5a13611bad7e34306cc224) ) - ROM_LOAD32_BYTE( "2502a", 0x600003, 0x080000, CRC(a48e6a5f) SHA1(f9615ff587b60d07172fc44ce87ae0fb49cb02a0) ) - ROM_LOAD32_WORD( "0076", 0x800000, 0x200000, CRC(74dffe2d) SHA1(9436f69827050ad2f3be58f1cb57d7a06b75ab61) ) - ROM_LOAD32_WORD( "0074", 0x800002, 0x200000, CRC(8dfc6ce0) SHA1(5b0d4dd4cb7934f542e67217a2542a3c69558cea) ) - - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "0250", 0x000000, 0x80000, CRC(56bd9f25) SHA1(a8161aeee274f28c41f82b6b3f63570970ee281d) ) /* playfield, planes 0-1 */ - ROM_LOAD( "0253a", 0x080000, 0x80000, CRC(23e2f83d) SHA1(804a17ce8768bd48cda853e55fc1f54ed7475968) ) - ROM_LOAD( "0251", 0x100000, 0x80000, CRC(0d3b08f7) SHA1(72ec2383011ef20e9054594279cc85fa55c3a9b2) ) /* playfield, planes 2-3 */ - ROM_LOAD( "0254a", 0x180000, 0x80000, CRC(448aea87) SHA1(8c9e367b2f8d06858d37a9239fb732c1379ec374) ) - ROM_LOAD( "0252", 0x200000, 0x80000, CRC(95a1c23b) SHA1(74eb69dcaebd7a7a03d8f7c9bf6183ece695e91d) ) /* playfield, planes 4-5 */ - ROM_LOAD( "0255a", 0x280000, 0x80000, CRC(f0fbb700) SHA1(3f0355b137f6426a07abab77f25e718c6102a16f) ) - - ROM_REGION( 0x020000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "0045a", 0x000000, 0x20000, CRC(057a5304) SHA1(d44c0cf885a1324888b7e8118f124c0dae616859) ) /* alphanumerics */ - - ROM_REGION16_BE( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "0300", 0x000001, 0x100000, CRC(8367ddac) SHA1(9ca77962259284cef8a261b652ab1327817ee8d0) ) - ROM_LOAD16_BYTE( "0301", 0x000000, 0x100000, CRC(94524b5b) SHA1(db401fd7ba56658fcb614406672c02569d845930) ) - ROM_LOAD16_BYTE( "0302", 0x200001, 0x100000, CRC(c03f1aa7) SHA1(c68b52280d0695629c843b9c90f7a39713e063b0) ) - ROM_LOAD16_BYTE( "0303", 0x200000, 0x100000, CRC(3ac5b24f) SHA1(96c26cb3f17f4a383bf0a7be442c6199fbac8b4b) ) - ROM_LOAD16_BYTE( "0304", 0x400001, 0x100000, CRC(b053ef78) SHA1(30dd8c409ed7fbc12495829e680df9d7d1cf6c6c) ) - ROM_LOAD16_BYTE( "0305", 0x400000, 0x100000, CRC(b012b8e9) SHA1(89af30b49fad8424b00252c2ea3ef454a45a5622) ) - ROM_LOAD16_BYTE( "0306", 0x600001, 0x100000, CRC(d086f149) SHA1(92b5b7c01863a9fcc9b9b3990744da7ac107a324) ) - ROM_LOAD16_BYTE( "0307", 0x600000, 0x100000, CRC(49c1a541) SHA1(65169a8ed4cd5f77fec61252a72b7731d8e910e1) ) - ROM_LOAD16_BYTE( "0308", 0x800001, 0x100000, CRC(97033c8a) SHA1(c81d30a492dd0419193a68eea78ba5e6b12a3f9a) ) - ROM_LOAD16_BYTE( "0309", 0x800000, 0x100000, CRC(e095ecb3) SHA1(79b7d21096cc1abeb2d1bc45deab5dc42282a807) ) - ROM_LOAD16_BYTE( "0310", 0xa00001, 0x100000, CRC(e056a0c3) SHA1(0a87e4078371e1b52e9418a4824f2d37cb07a649) ) - ROM_LOAD16_BYTE( "0311", 0xa00000, 0x100000, CRC(05afb2dc) SHA1(db186bfde255aa57f8e80bdc92c9be6d8c366bb9) ) - ROM_LOAD16_BYTE( "0312", 0xc00001, 0x100000, CRC(cc224dae) SHA1(0d57382b53920172ceaba62a0f690fc04aedfddc) ) - ROM_LOAD16_BYTE( "0313", 0xc00000, 0x100000, CRC(a8cf049d) SHA1(d130e1f94d2a2819ed46c45834aa1b1cd86ab839) ) - ROM_LOAD16_BYTE( "0314", 0xe00001, 0x100000, CRC(4f01db8d) SHA1(c18c72f1ccbe6ff18576592548c960f9ce357016) ) - ROM_LOAD16_BYTE( "0315", 0xe00000, 0x100000, CRC(28e97d06) SHA1(ef115f393c568822cb2cb3cca92c7656e1ee07f9) ) - - ROM_REGION( 0x0600, REGION_PROMS, ROMREGION_DISPOSE ) - ROM_LOAD( "0001a", 0x0000, 0x0200, CRC(a70ade3f) SHA1(f4a558b17767eed2683c768d1b441e75edcff967) ) /* microcode for growth renderer */ - ROM_LOAD( "0001b", 0x0200, 0x0200, CRC(f4768b4d) SHA1(a506fa5386ab0ea2851ff1f8474d4bfc66deaa70) ) - ROM_LOAD( "0001c", 0x0400, 0x0200, CRC(22a76ad4) SHA1(ce840c283bbd3a5f19dc8d91b19d1571eff51ff4) ) -ROM_END - - -ROM_START( tmekprot ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 8*64k for 68000 code */ - ROM_LOAD32_BYTE( "pgm0", 0x00000, 0x20000, CRC(f5f7f7be) SHA1(66be472e7c0ef26e2ce2b45488a8e4cfc1b0f80a) ) - ROM_LOAD32_BYTE( "pgm1", 0x00001, 0x20000, CRC(284f7971) SHA1(5327f6368abd2ab9740a5150a8660c420f750476) ) - ROM_LOAD32_BYTE( "pgm2", 0x00002, 0x20000, CRC(ce9a77d4) SHA1(025143b59d85180286086940b05c8e5ea0b4a7fe) ) - ROM_LOAD32_BYTE( "pgm3", 0x00003, 0x20000, CRC(28b0e210) SHA1(7567671beecc7d30e9d4b61cf7d3448bb1dbb072) ) - - ROM_REGION32_LE( 0x200000, REGION_USER1, 0 ) /* TMS320C31 boot ROM */ - ROM_LOAD32_BYTE( "0078c", 0x000000, 0x080000, NO_DUMP CRC(ff5b979a) SHA1(deb8ee454b6b7c7bddb2ba0c808869e45b19e55f) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* TMS320C31 sound ROMs */ - ROM_LOAD32_WORD( "0077", 0x400000, 0x200000, CRC(8f650f8b) SHA1(e3b48ff4e2093d709134b6bf62cecd101ab5cef4) ) - ROM_LOAD32_BYTE( "2501a", 0x400002, 0x080000, CRC(98e51103) SHA1(420d0aac6b1de1bd990b9e4219041192400299f8) ) - ROM_LOAD32_BYTE( "2500a", 0x400003, 0x080000, CRC(49c0136c) SHA1(1ad463b1e50df9843abb8c645cbe8a79e42cbb87) ) - ROM_LOAD32_BYTE( "2503a", 0x600002, 0x080000, CRC(4376f3eb) SHA1(fe3f1efec3e6b4da3d5a13611bad7e34306cc224) ) - ROM_LOAD32_BYTE( "2502a", 0x600003, 0x080000, CRC(a48e6a5f) SHA1(f9615ff587b60d07172fc44ce87ae0fb49cb02a0) ) - ROM_LOAD32_WORD( "0076", 0x800000, 0x200000, CRC(74dffe2d) SHA1(9436f69827050ad2f3be58f1cb57d7a06b75ab61) ) - ROM_LOAD32_WORD( "0074", 0x800002, 0x200000, CRC(8dfc6ce0) SHA1(5b0d4dd4cb7934f542e67217a2542a3c69558cea) ) - - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "0250", 0x000000, 0x80000, CRC(56bd9f25) SHA1(a8161aeee274f28c41f82b6b3f63570970ee281d) ) /* playfield, planes 0-1 */ - ROM_LOAD( "0253a", 0x080000, 0x80000, CRC(23e2f83d) SHA1(804a17ce8768bd48cda853e55fc1f54ed7475968) ) - ROM_LOAD( "0251", 0x100000, 0x80000, CRC(0d3b08f7) SHA1(72ec2383011ef20e9054594279cc85fa55c3a9b2) ) /* playfield, planes 2-3 */ - ROM_LOAD( "0254a", 0x180000, 0x80000, CRC(448aea87) SHA1(8c9e367b2f8d06858d37a9239fb732c1379ec374) ) - ROM_LOAD( "0252", 0x200000, 0x80000, CRC(95a1c23b) SHA1(74eb69dcaebd7a7a03d8f7c9bf6183ece695e91d) ) /* playfield, planes 4-5 */ - ROM_LOAD( "0255a", 0x280000, 0x80000, CRC(f0fbb700) SHA1(3f0355b137f6426a07abab77f25e718c6102a16f) ) - - ROM_REGION( 0x020000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "alpha", 0x000000, 0x20000, CRC(8f57a604) SHA1(f076636430ff73ea11e4687ef7b21a7bac1d8e34) ) /* alphanumerics */ - - ROM_REGION16_BE( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "0300", 0x000001, 0x100000, CRC(8367ddac) SHA1(9ca77962259284cef8a261b652ab1327817ee8d0) ) - ROM_LOAD16_BYTE( "0301", 0x000000, 0x100000, CRC(94524b5b) SHA1(db401fd7ba56658fcb614406672c02569d845930) ) - ROM_LOAD16_BYTE( "0302", 0x200001, 0x100000, CRC(c03f1aa7) SHA1(c68b52280d0695629c843b9c90f7a39713e063b0) ) - ROM_LOAD16_BYTE( "0303", 0x200000, 0x100000, CRC(3ac5b24f) SHA1(96c26cb3f17f4a383bf0a7be442c6199fbac8b4b) ) - ROM_LOAD16_BYTE( "0304", 0x400001, 0x100000, CRC(b053ef78) SHA1(30dd8c409ed7fbc12495829e680df9d7d1cf6c6c) ) - ROM_LOAD16_BYTE( "0305", 0x400000, 0x100000, CRC(b012b8e9) SHA1(89af30b49fad8424b00252c2ea3ef454a45a5622) ) - ROM_LOAD16_BYTE( "0306", 0x600001, 0x100000, CRC(d086f149) SHA1(92b5b7c01863a9fcc9b9b3990744da7ac107a324) ) - ROM_LOAD16_BYTE( "0307", 0x600000, 0x100000, CRC(49c1a541) SHA1(65169a8ed4cd5f77fec61252a72b7731d8e910e1) ) - ROM_LOAD16_BYTE( "0308", 0x800001, 0x100000, CRC(97033c8a) SHA1(c81d30a492dd0419193a68eea78ba5e6b12a3f9a) ) - ROM_LOAD16_BYTE( "0309", 0x800000, 0x100000, CRC(e095ecb3) SHA1(79b7d21096cc1abeb2d1bc45deab5dc42282a807) ) - ROM_LOAD16_BYTE( "0310", 0xa00001, 0x100000, CRC(e056a0c3) SHA1(0a87e4078371e1b52e9418a4824f2d37cb07a649) ) - ROM_LOAD16_BYTE( "0311", 0xa00000, 0x100000, CRC(05afb2dc) SHA1(db186bfde255aa57f8e80bdc92c9be6d8c366bb9) ) - ROM_LOAD16_BYTE( "0312", 0xc00001, 0x100000, CRC(cc224dae) SHA1(0d57382b53920172ceaba62a0f690fc04aedfddc) ) - ROM_LOAD16_BYTE( "0313", 0xc00000, 0x100000, CRC(a8cf049d) SHA1(d130e1f94d2a2819ed46c45834aa1b1cd86ab839) ) - ROM_LOAD16_BYTE( "0314", 0xe00001, 0x100000, CRC(4f01db8d) SHA1(c18c72f1ccbe6ff18576592548c960f9ce357016) ) - ROM_LOAD16_BYTE( "0315", 0xe00000, 0x100000, CRC(28e97d06) SHA1(ef115f393c568822cb2cb3cca92c7656e1ee07f9) ) - - ROM_REGION( 0x0600, REGION_PROMS, ROMREGION_DISPOSE ) - ROM_LOAD( "0001a", 0x0000, 0x0200, CRC(a70ade3f) SHA1(f4a558b17767eed2683c768d1b441e75edcff967) ) /* microcode for growth renderer */ - ROM_LOAD( "0001b", 0x0200, 0x0200, CRC(f4768b4d) SHA1(a506fa5386ab0ea2851ff1f8474d4bfc66deaa70) ) - ROM_LOAD( "0001c", 0x0400, 0x0200, CRC(22a76ad4) SHA1(ce840c283bbd3a5f19dc8d91b19d1571eff51ff4) ) -ROM_END - - -ROM_START( primrage ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 8*64k for 68000 code */ - ROM_LOAD32_BYTE( "1044b", 0x000000, 0x80000, CRC(35c9c34b) SHA1(4bd1d35cc7c68574819afd648405eedb8db25b4c) ) - ROM_LOAD32_BYTE( "1043b", 0x000001, 0x80000, CRC(86322829) SHA1(e0e72888def0931d078921f099bae6788738a291) ) - ROM_LOAD32_BYTE( "1042b", 0x000002, 0x80000, CRC(750e8095) SHA1(4660637136b1a25169d8c43646c8b87081763987) ) - ROM_LOAD32_BYTE( "1041b", 0x000003, 0x80000, CRC(6a90d283) SHA1(7c18c97cb5e5cdd26a52cd6bc099fbce87055311) ) - - ROM_REGION32_LE( 0x200000, REGION_USER1, 0 ) /* TMS320C31 boot ROM */ - ROM_LOAD32_BYTE( "1078a", 0x000000, 0x080000, CRC(0656435f) SHA1(f8e498171e754eb8703dad6b2351509bbb27e06b) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* TMS320C31 sound ROMs */ - ROM_LOAD32_WORD( "0075", 0x400000, 0x200000, CRC(b685a88e) SHA1(998b8fe54971f6cd96e4c22b19e3831f29d8172d) ) - ROM_LOAD32_WORD( "0077", 0x400002, 0x200000, CRC(3283cea8) SHA1(fb7333ca951053a56c501f2ce0eb197c8fcafaf7) ) - - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "0050a", 0x000000, 0x80000, CRC(66896e8f) SHA1(7675b24c15ca0608f11f2a7b8d70717adb10924c) ) /* playfield, planes 0-1 */ - ROM_LOAD( "0051a", 0x100000, 0x80000, CRC(fb5b3e7b) SHA1(f43fe4b5c4bbea10da46b60c644f586fb391355d) ) /* playfield, planes 2-3 */ - ROM_LOAD( "0052a", 0x200000, 0x80000, CRC(cbe38670) SHA1(0780e599007851f6d37cdd8c701d01cb1ae48b9d) ) /* playfield, planes 4-5 */ - - ROM_REGION( 0x020000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "1045b", 0x000000, 0x20000, CRC(1d3260bf) SHA1(85d9db8499cbe180c8d52710f3cfe64453a530ff) ) /* alphanumerics */ - - ROM_REGION16_BE( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "1100a", 0x0000001, 0x080000, CRC(6e9c80b5) SHA1(ec724011527dd8707c733211b1a6c51b22f580c7) ) - ROM_LOAD16_BYTE( "1101a", 0x0000000, 0x080000, CRC(bb7ee624) SHA1(0de6385aee7d25b41fd5bf232e44e5da536504ac) ) - ROM_LOAD16_BYTE( "0332", 0x0800001, 0x100000, CRC(610cfcb4) SHA1(bed1bd0d11c0a7cc48d020fc0acec34daf48c5ac) ) - ROM_LOAD16_BYTE( "0333", 0x0800000, 0x100000, CRC(3320448e) SHA1(aef42328bf72fca5c04bfed1ea41100bb5aafeaa) ) - ROM_LOAD16_BYTE( "0334", 0x0a00001, 0x100000, CRC(be3acb6f) SHA1(664cb4cd4d325577ab0cbe0cf48870a9f4706573) ) - ROM_LOAD16_BYTE( "0335", 0x0a00000, 0x100000, CRC(e4f6e87a) SHA1(2a3f8ff46b289c25cd4ca2a1369b14613f48e964) ) - ROM_LOAD16_BYTE( "0336", 0x0c00001, 0x100000, CRC(a78a8525) SHA1(69c3da4d45b0f09f5bdabcedd238b82efab48a70) ) - ROM_LOAD16_BYTE( "0337", 0x0c00000, 0x100000, CRC(73fdd050) SHA1(63c67187953d2dab93a260e548ef5965e7cba4e8) ) - ROM_LOAD16_BYTE( "0338", 0x0e00001, 0x100000, CRC(fa19cae6) SHA1(7d0560516971f32835329a17450c7561631a27d1) ) - ROM_LOAD16_BYTE( "0339", 0x0e00000, 0x100000, CRC(e0cd1393) SHA1(0de59d04165d64320512936c194db19cca6455fd) ) - ROM_LOAD16_BYTE( "0316", 0x1000001, 0x100000, CRC(9301c672) SHA1(a8971049c857ae283a95b257dd0d6aaff6d787cd) ) - ROM_LOAD16_BYTE( "0317", 0x1000000, 0x100000, CRC(9e3b831a) SHA1(b799e57bea9522cb83f9aa7ea38a17b1d8273b8d) ) - ROM_LOAD16_BYTE( "0318", 0x1200001, 0x100000, CRC(8523db5d) SHA1(f2476aa26b1a7cbe7510994d92eb209fda65593d) ) - ROM_LOAD16_BYTE( "0319", 0x1200000, 0x100000, CRC(42f22e4b) SHA1(2a1a6f0a7aca7b7b64bce0bd54eb4cb23a2336b1) ) - ROM_LOAD16_BYTE( "0320", 0x1400001, 0x100000, CRC(21369d13) SHA1(28e03595c098fd9bec6f7316180d17905a51a51b) ) - ROM_LOAD16_BYTE( "0321", 0x1400000, 0x100000, CRC(3b7d498a) SHA1(804e9e1567bf97e8dae3b9444428254ced8b60da) ) - ROM_LOAD16_BYTE( "0322", 0x1600001, 0x100000, CRC(05e9f407) SHA1(fa25a893d4cb805df02d7d12df4dbabefb3114a2) ) - ROM_LOAD16_BYTE( "0323", 0x1600000, 0x100000, CRC(603f3bb6) SHA1(d7c22dc900d9edc36d8f211df67a206d14637fab) ) - ROM_LOAD16_BYTE( "0324", 0x1800001, 0x100000, CRC(3c37769f) SHA1(ca0306a439949d2a0305cc0cf05808a58e84084c) ) - ROM_LOAD16_BYTE( "0325", 0x1800000, 0x100000, CRC(f43321e3) SHA1(8bb4dd4a5d5400b17052d50dca9078211dc6b861) ) - ROM_LOAD16_BYTE( "0326", 0x1a00001, 0x100000, CRC(63d4ccea) SHA1(340fced6998a8ae6fd285d8fe666f5f1e4b6bfaf) ) - ROM_LOAD16_BYTE( "0327", 0x1a00000, 0x100000, CRC(9f4806d5) SHA1(76e9f1a47e7fa45e834fa8739528f1e3c54b14dc) ) - ROM_LOAD16_BYTE( "0328", 0x1c00001, 0x100000, CRC(a08d73e1) SHA1(25a58777f15e9550111447b47a98762fd6bb498d) ) - ROM_LOAD16_BYTE( "0329", 0x1c00000, 0x100000, CRC(eff3d2cd) SHA1(8532568b5fd91d2b738947e9cd575a4eb2a03be2) ) - ROM_LOAD16_BYTE( "0330", 0x1e00001, 0x100000, CRC(7bf6bb8f) SHA1(f34bd8a9c7f95436a1c816badc59673cd2a6969a) ) - ROM_LOAD16_BYTE( "0331", 0x1e00000, 0x100000, CRC(c6a64dad) SHA1(ee54514463ab61cbaef70da064cf5de591e5861f) ) - - ROM_REGION( 0x0600, REGION_PROMS, ROMREGION_DISPOSE ) - ROM_LOAD( "0001a", 0x0000, 0x0200, CRC(a70ade3f) SHA1(f4a558b17767eed2683c768d1b441e75edcff967) ) /* microcode for growth renderer */ - ROM_LOAD( "0001b", 0x0200, 0x0200, CRC(f4768b4d) SHA1(a506fa5386ab0ea2851ff1f8474d4bfc66deaa70) ) - ROM_LOAD( "0001c", 0x0400, 0x0200, CRC(22a76ad4) SHA1(ce840c283bbd3a5f19dc8d91b19d1571eff51ff4) ) -ROM_END - - -ROM_START( primraga ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 8*64k for 68000 code */ - ROM_LOAD32_BYTE( "0044b", 0x000000, 0x80000, CRC(26139575) SHA1(22e59ab621d58e56969b64701fc59aec085193dd) ) - ROM_LOAD32_BYTE( "0043b", 0x000001, 0x80000, CRC(928d2447) SHA1(9bbbdbf056a7b986d985d79be889b9876a710631) ) - ROM_LOAD32_BYTE( "0042b", 0x000002, 0x80000, CRC(cd6062b9) SHA1(2973fb561ab68cd48ec132b6720c04d10bedfd19) ) - ROM_LOAD32_BYTE( "0041b", 0x000003, 0x80000, CRC(3008f6f0) SHA1(45aac457b4584ee3bd3561e3b2e34e49aa61fbc5) ) - - ROM_REGION32_LE( 0x200000, REGION_USER1, 0 ) /* TMS320C31 boot ROM */ - ROM_LOAD32_BYTE( "0078a", 0x000000, 0x080000, CRC(91df8d8f) SHA1(6d361f88de604b8f11dd9bfe85ff18bcd322862d) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* TMS320C31 sound ROMs */ - ROM_LOAD32_WORD( "0075", 0x400000, 0x200000, CRC(b685a88e) SHA1(998b8fe54971f6cd96e4c22b19e3831f29d8172d) ) - ROM_LOAD32_WORD( "0077", 0x400002, 0x200000, CRC(3283cea8) SHA1(fb7333ca951053a56c501f2ce0eb197c8fcafaf7) ) - - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "0050a", 0x000000, 0x80000, CRC(66896e8f) SHA1(7675b24c15ca0608f11f2a7b8d70717adb10924c) ) /* playfield, planes 0-1 */ - ROM_LOAD( "0051a", 0x100000, 0x80000, CRC(fb5b3e7b) SHA1(f43fe4b5c4bbea10da46b60c644f586fb391355d) ) /* playfield, planes 2-3 */ - ROM_LOAD( "0052a", 0x200000, 0x80000, CRC(cbe38670) SHA1(0780e599007851f6d37cdd8c701d01cb1ae48b9d) ) /* playfield, planes 4-5 */ - - ROM_REGION( 0x020000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "0045a", 0x000000, 0x20000, CRC(c8b39b1c) SHA1(836c0ccf96b2beccacf6d8ac23981fc2d1f09803) ) /* alphanumerics */ - - ROM_REGION16_BE( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "0100a", 0x0000001, 0x080000, CRC(5299fb2a) SHA1(791378215ab6ffff3ab2ae7192ce9f88dae4090d) ) - ROM_LOAD16_BYTE( "0101a", 0x0000000, 0x080000, CRC(3e234711) SHA1(6a9f19db2b4c8c34d3d7b4984206e3d5c4398d7f) ) - ROM_LOAD16_BYTE( "0332", 0x0800001, 0x100000, CRC(610cfcb4) SHA1(bed1bd0d11c0a7cc48d020fc0acec34daf48c5ac) ) - ROM_LOAD16_BYTE( "0333", 0x0800000, 0x100000, CRC(3320448e) SHA1(aef42328bf72fca5c04bfed1ea41100bb5aafeaa) ) - ROM_LOAD16_BYTE( "0334", 0x0a00001, 0x100000, CRC(be3acb6f) SHA1(664cb4cd4d325577ab0cbe0cf48870a9f4706573) ) - ROM_LOAD16_BYTE( "0335", 0x0a00000, 0x100000, CRC(e4f6e87a) SHA1(2a3f8ff46b289c25cd4ca2a1369b14613f48e964) ) - ROM_LOAD16_BYTE( "0336", 0x0c00001, 0x100000, CRC(a78a8525) SHA1(69c3da4d45b0f09f5bdabcedd238b82efab48a70) ) - ROM_LOAD16_BYTE( "0337", 0x0c00000, 0x100000, CRC(73fdd050) SHA1(63c67187953d2dab93a260e548ef5965e7cba4e8) ) - ROM_LOAD16_BYTE( "0338", 0x0e00001, 0x100000, CRC(fa19cae6) SHA1(7d0560516971f32835329a17450c7561631a27d1) ) - ROM_LOAD16_BYTE( "0339", 0x0e00000, 0x100000, CRC(e0cd1393) SHA1(0de59d04165d64320512936c194db19cca6455fd) ) - ROM_LOAD16_BYTE( "0316", 0x1000001, 0x100000, CRC(9301c672) SHA1(a8971049c857ae283a95b257dd0d6aaff6d787cd) ) - ROM_LOAD16_BYTE( "0317", 0x1000000, 0x100000, CRC(9e3b831a) SHA1(b799e57bea9522cb83f9aa7ea38a17b1d8273b8d) ) - ROM_LOAD16_BYTE( "0318", 0x1200001, 0x100000, CRC(8523db5d) SHA1(f2476aa26b1a7cbe7510994d92eb209fda65593d) ) - ROM_LOAD16_BYTE( "0319", 0x1200000, 0x100000, CRC(42f22e4b) SHA1(2a1a6f0a7aca7b7b64bce0bd54eb4cb23a2336b1) ) - ROM_LOAD16_BYTE( "0320", 0x1400001, 0x100000, CRC(21369d13) SHA1(28e03595c098fd9bec6f7316180d17905a51a51b) ) - ROM_LOAD16_BYTE( "0321", 0x1400000, 0x100000, CRC(3b7d498a) SHA1(804e9e1567bf97e8dae3b9444428254ced8b60da) ) - ROM_LOAD16_BYTE( "0322", 0x1600001, 0x100000, CRC(05e9f407) SHA1(fa25a893d4cb805df02d7d12df4dbabefb3114a2) ) - ROM_LOAD16_BYTE( "0323", 0x1600000, 0x100000, CRC(603f3bb6) SHA1(d7c22dc900d9edc36d8f211df67a206d14637fab) ) - ROM_LOAD16_BYTE( "0324", 0x1800001, 0x100000, CRC(3c37769f) SHA1(ca0306a439949d2a0305cc0cf05808a58e84084c) ) - ROM_LOAD16_BYTE( "0325", 0x1800000, 0x100000, CRC(f43321e3) SHA1(8bb4dd4a5d5400b17052d50dca9078211dc6b861) ) - ROM_LOAD16_BYTE( "0326", 0x1a00001, 0x100000, CRC(63d4ccea) SHA1(340fced6998a8ae6fd285d8fe666f5f1e4b6bfaf) ) - ROM_LOAD16_BYTE( "0327", 0x1a00000, 0x100000, CRC(9f4806d5) SHA1(76e9f1a47e7fa45e834fa8739528f1e3c54b14dc) ) - ROM_LOAD16_BYTE( "0328", 0x1c00001, 0x100000, CRC(a08d73e1) SHA1(25a58777f15e9550111447b47a98762fd6bb498d) ) - ROM_LOAD16_BYTE( "0329", 0x1c00000, 0x100000, CRC(eff3d2cd) SHA1(8532568b5fd91d2b738947e9cd575a4eb2a03be2) ) - ROM_LOAD16_BYTE( "0330", 0x1e00001, 0x100000, CRC(7bf6bb8f) SHA1(f34bd8a9c7f95436a1c816badc59673cd2a6969a) ) - ROM_LOAD16_BYTE( "0331", 0x1e00000, 0x100000, CRC(c6a64dad) SHA1(ee54514463ab61cbaef70da064cf5de591e5861f) ) - - ROM_REGION( 0x0600, REGION_PROMS, ROMREGION_DISPOSE ) - ROM_LOAD( "0001a", 0x0000, 0x0200, CRC(a70ade3f) SHA1(f4a558b17767eed2683c768d1b441e75edcff967) ) /* microcode for growth renderer */ - ROM_LOAD( "0001b", 0x0200, 0x0200, CRC(f4768b4d) SHA1(a506fa5386ab0ea2851ff1f8474d4bfc66deaa70) ) - ROM_LOAD( "0001c", 0x0400, 0x0200, CRC(22a76ad4) SHA1(ce840c283bbd3a5f19dc8d91b19d1571eff51ff4) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static WRITE32_HANDLER( tmek_pf_w ) -{ - offs_t pc = activecpu_get_pc(); - - /* protected version */ - if (pc == 0x2EB3C || pc == 0x2EB48) - { - logerror("%06X:PFW@%06X = %08X & %08X (src=%06X)\n", activecpu_get_pc(), 0xd72000 + offset*4, data, ~mem_mask, (UINT32)activecpu_get_reg(M68K_A4) - 2); - /* skip these writes to make more stuff visible */ - return; - } - - /* unprotected version */ - if (pc == 0x25834 || pc == 0x25860) - logerror("%06X:PFW@%06X = %08X & %08X (src=%06X)\n", activecpu_get_pc(), 0xd72000 + offset*4, data, ~mem_mask, (UINT32)activecpu_get_reg(M68K_A3) - 2); - - atarigen_playfield32_w(offset, data, mem_mask); -} - -static DRIVER_INIT( tmek ) -{ - atarigen_eeprom_default = NULL; - atarigt_is_primrage = 0; - - cage_init(REGION_USER1, 0x4fad); - cage_set_irq_handler(cage_irq_callback); - - /* setup protection */ - protection_r = tmek_protection_r; - protection_w = tmek_protection_w; - - /* temp hack */ - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd72000, 0xd75fff, 0, 0, tmek_pf_w); -} - - -static void primrage_init_common(offs_t cage_speedup) -{ - atarigen_eeprom_default = NULL; - atarigt_is_primrage = 1; - - cage_init(REGION_USER1, cage_speedup); - cage_set_irq_handler(cage_irq_callback); - - /* install protection */ - protection_r = primrage_protection_r; - protection_w = primrage_protection_w; -} - -static DRIVER_INIT( primrage ) { primrage_init_common(0x42f2); } -static DRIVER_INIT( primraga ) { primrage_init_common(0x48a4); } - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1994, tmek, 0, atarigt, tmek, tmek, ROT0, "Atari Games", "T-MEK", GAME_UNEMULATED_PROTECTION ) -GAME( 1994, tmekprot, tmek, atarigt, tmek, tmek, ROT0, "Atari Games", "T-MEK (prototype)", 0 ) -GAME( 1994, primrage, 0, atarigt, primrage, primrage, ROT0, "Atari Games", "Primal Rage (version 2.3)", GAME_UNEMULATED_PROTECTION ) -GAME( 1994, primraga, primrage, atarigt, primrage, primraga, ROT0, "Atari Games", "Primal Rage (version 2.0)", GAME_UNEMULATED_PROTECTION ) diff --git a/src/drivers/attckufo.c b/src/drivers/attckufo.c deleted file mode 100644 index 798aed999..000000000 --- a/src/drivers/attckufo.c +++ /dev/null @@ -1,189 +0,0 @@ -/*************************************** -Attack ufo / Ryoto Electric Co. 1980(?) - driver by Tomasz Slanina - -Video and sound emulation based on - VIC 656x driver by PeT - -TODO: - - correct I/O chip emulation - - dips - - is game speed ok? a bit slow sometimes - --- - -CPU - 6502 - 2,38 +5 - 21 gnd - 26-33 data bus - -I/O - CIA 6526 ? - 37,38 +5 - 1 gnd - 2-18 I/O - 26-33 data bus - -Vid - VIC 6560 derivative ??? - 40 +5 - 20 gnd - 16-32 data bus - --- - -Attack UFO -???? 1980 -LOIPOIO-B - -2 1 2114 2114 2114 2114 2114 -8 7 6 5 4 3 40pin IC "C" - -53354 40pin IC "B" 14.318MHz 40pin IC "A" - SW - -****************************************/ - -#include "driver.h" -#include "includes/attckufo.h" - - -static struct CustomSound_interface attckufo_sound_interface = -{ - attckufo_custom_start -}; - -static UINT8 *mainram; -static UINT8 *tileram; - -static PALETTE_INIT( attckufo ) -{ - palette_set_colors(machine, 0, attckufo_palette, sizeof(attckufo_palette) / 3); -} - -int attckufo_dma_read (int offset) -{ - if(offset<0x1000) - return mainram[offset]; - if(offset>= 0x1c00 && offset<0x2000) - return tileram[offset-0x1c00]; - if(offset>=0x2000 && offset < 0x2400) - return memory_region(REGION_USER1)[offset-0x2000]; - return 0xff; -} - -int attckufo_dma_read_color (int offset) -{ - return attckufo_dma_read(offset+0x400); -} - -static READ8_HANDLER(attckufo_io_r) -{ - switch(offset) - { - case 0: return input_port_0_r(0); - case 2: return input_port_1_r(0); - } - return 0xff; -} - - -static WRITE8_HANDLER(attckufo_io_w) -{ - /* - offset, data: - 0 $00,$30 - 1 $00,$04 - 2 $00 - 3 $00,$04 - */ -} - -static ADDRESS_MAP_START( cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM AM_BASE(&mainram) - AM_RANGE(0x1000, 0x100f) AM_READWRITE(attckufo_port_r, attckufo_port_w) - AM_RANGE(0x1400, 0x1403) AM_READWRITE(attckufo_io_r, attckufo_io_w) - AM_RANGE(0x1c00, 0x1fff) AM_RAM AM_BASE(&tileram) - AM_RANGE(0x2000, 0x3fff) AM_ROM - AM_RANGE(0xfc00, 0xffff) AM_ROM -ADDRESS_MAP_END - -INPUT_PORTS_START( attckufo ) - PORT_START - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( attckufo ) - MDRV_CPU_ADD_TAG("main", M6502, 14318181/14) - MDRV_CPU_PROGRAM_MAP(cpu_map, 0) - MDRV_CPU_PERIODIC_INT(attckufo_raster_interrupt, TIME_IN_HZ(15625)) - MDRV_SCREEN_REFRESH_RATE(60) - - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 23*8-1, 0, 22*8-1) - MDRV_PALETTE_LENGTH(sizeof (attckufo_palette) / sizeof (attckufo_palette[0]) / 3) - MDRV_PALETTE_INIT( attckufo ) - - MDRV_VIDEO_START( attckufo ) - MDRV_VIDEO_UPDATE( generic_bitmapped ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(attckufo_sound_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -ROM_START( attckufo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1", 0x2000, 0x0400, CRC(b32a36ab) SHA1(4e64686d498f7a79f5213c42b7afbf35aac2b622) ) - ROM_LOAD( "2", 0x2400, 0x0400, CRC(35fc8424) SHA1(d4926768f2e5b21476c7ec33743fe3e1c76662db) ) - ROM_LOAD( "3", 0x2800, 0x0400, CRC(6341c8c4) SHA1(8647a4fabad0399769dd068d784be72e27afca35) ) - ROM_LOAD( "4", 0x2c00, 0x0400, CRC(1ed1d93f) SHA1(2e04c63ea2fc958415f7c7de9d18dadf9e085755) ) - ROM_LOAD( "5", 0x3000, 0x0400, CRC(3380e0f4) SHA1(e1d681f7370ba7fc2bf3561533f4aaf12eefbcb8) ) - ROM_LOAD( "6", 0x3400, 0x0400, CRC(8103e031) SHA1(86bc8dd6c74b84804ede31a8454b5b3d3e4d88b1) ) - ROM_LOAD( "7", 0x3800, 0x0400, CRC(43a41012) SHA1(edd14f49dc9ae7a5a14583b9a92ebbbdd021d7b1) ) - ROM_LOAD( "8", 0x3c00, 0x0400, CRC(9ce93eb0) SHA1(68753e88db4e920446b9582b5cb713b1beec3b27) ) - ROM_RELOAD( 0xfc00, 0x0400 ) //vectors - - ROM_REGION( 0x400, REGION_USER1, 0 ) - ROM_COPY( REGION_CPU1, 0x02000, 0x00000, 0x400) - -ROM_END - -GAME( 1980, attckufo, 0, attckufo, attckufo, 0, ROT270, "Ryoto Electric Co.", "Attack Ufo", 0) - diff --git a/src/drivers/aztarac.c b/src/drivers/aztarac.c deleted file mode 100644 index 4a8503e33..000000000 --- a/src/drivers/aztarac.c +++ /dev/null @@ -1,246 +0,0 @@ -/*************************************************************************** - - Centuri Aztarac hardware - - driver by Mathis Rosenhauer - Thanks to David Fish for additional hardware information. - - Games supported: - * Aztarac - - Known bugs: - * none at this time - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/vector.h" -#include "aztarac.h" -#include "sound/ay8910.h" - - - -/************************************* - * - * Machine init - * - *************************************/ - -static int aztarac_irq_callback(int irqline) -{ - return 0xc; -} - - -static MACHINE_RESET( aztarac ) -{ - cpunum_set_irq_callback(0, aztarac_irq_callback); -} - - - -/************************************* - * - * NVRAM handler - * - *************************************/ - -static READ16_HANDLER( nvram_r ) -{ - return generic_nvram16[offset] | 0xfff0; -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static READ16_HANDLER( joystick_r ) -{ - return (((input_port_0_r (offset) - 0xf) << 8) | - ((input_port_1_r (offset) - 0xf) & 0xff)); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00bfff) AM_READ(MRA16_ROM) - AM_RANGE(0x022000, 0x022fff) AM_READ(nvram_r) - AM_RANGE(0x027000, 0x027001) AM_READ(joystick_r) - AM_RANGE(0x027004, 0x027005) AM_READ(input_port_3_word_r) - AM_RANGE(0x027008, 0x027009) AM_READ(aztarac_sound_r) - AM_RANGE(0x02700c, 0x02700d) AM_READ(input_port_2_word_r) - AM_RANGE(0x02700e, 0x02700f) AM_READ(watchdog_reset16_r) - AM_RANGE(0xff8000, 0xffafff) AM_READ(MRA16_RAM) - AM_RANGE(0xffe000, 0xffffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00bfff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x022000, 0x0220ff) AM_WRITE(MWA16_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x027008, 0x027009) AM_WRITE(aztarac_sound_w) - AM_RANGE(0xff8000, 0xffafff) AM_WRITE(MWA16_RAM) AM_BASE(&aztarac_vectorram) - AM_RANGE(0xffb000, 0xffb001) AM_WRITE(aztarac_ubr_w) - AM_RANGE(0xffe000, 0xffffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_READ(aztarac_snd_command_r) - AM_RANGE(0x8c00, 0x8c01) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0x8c02, 0x8c03) AM_READ(AY8910_read_port_1_r) - AM_RANGE(0x8c04, 0x8c05) AM_READ(AY8910_read_port_2_r) - AM_RANGE(0x8c06, 0x8c07) AM_READ(AY8910_read_port_3_r) - AM_RANGE(0x9000, 0x9000) AM_READ(aztarac_snd_status_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8c00, 0x8c00) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x8c01, 0x8c01) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x8c02, 0x8c02) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x8c03, 0x8c03) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x8c04, 0x8c04) AM_WRITE(AY8910_write_port_2_w) - AM_RANGE(0x8c05, 0x8c05) AM_WRITE(AY8910_control_port_2_w) - AM_RANGE(0x8c06, 0x8c06) AM_WRITE(AY8910_write_port_3_w) - AM_RANGE(0x8c07, 0x8c07) AM_WRITE(AY8910_control_port_3_w) - AM_RANGE(0x9000, 0x9000) AM_WRITE(aztarac_snd_status_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( aztarac ) - PORT_START_TAG("IN0") - PORT_BIT( 0x1f, 0xf, IPT_AD_STICK_Z ) PORT_MINMAX(0,0x1e) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x1f, 0xf, IPT_AD_STICK_Y ) PORT_MINMAX(0,0x1e) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_REVERSE - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE - - PORT_START_TAG("IN3") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE(0x80, IP_ACTIVE_LOW) -INPUT_PORTS_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( aztarac ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80, 2000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_PERIODIC_INT(aztarac_snd_timed_irq,TIME_IN_HZ(100)) - - MDRV_SCREEN_REFRESH_RATE(40) - MDRV_MACHINE_RESET(aztarac) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(aztarac) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( aztarac ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "l8_6.bin", 0x000000, 0x001000, CRC(25f8da18) SHA1(e8179ba3683e39c8225b549ead74c8af2d0a0b3e) ) - ROM_LOAD16_BYTE( "n8_0.bin", 0x000001, 0x001000, CRC(04e20626) SHA1(2b6a04992037257830df2c01a6da748fb4449f79) ) - ROM_LOAD16_BYTE( "l7_7.bin", 0x002000, 0x001000, CRC(230e244c) SHA1(42283a368144acf2aad2ef390e312e0951c3ea64) ) - ROM_LOAD16_BYTE( "n7_1.bin", 0x002001, 0x001000, CRC(37b12697) SHA1(da288b077902e3205600a021c3fac5730f9fb832) ) - ROM_LOAD16_BYTE( "l6_8.bin", 0x004000, 0x001000, CRC(1293fb9d) SHA1(5a8d512372fd38f1a55f990f5c3eb51833c463d8) ) - ROM_LOAD16_BYTE( "n6_2.bin", 0x004001, 0x001000, CRC(712c206a) SHA1(eb29f161189c14d84896502940e3ab6cc3bd1cd0) ) - ROM_LOAD16_BYTE( "l5_9.bin", 0x006000, 0x001000, CRC(743a6501) SHA1(da83a8f756466bcd94d4b0cc28a1a1858e9532f3) ) - ROM_LOAD16_BYTE( "n5_3.bin", 0x006001, 0x001000, CRC(a65cbf99) SHA1(dd06f98c0989604bd4ac6317e545e1fcf6722e75) ) - ROM_LOAD16_BYTE( "l4_a.bin", 0x008000, 0x001000, CRC(9cf1b0a1) SHA1(dd644026f49d8430c0b4cf4c750dc33c013c19fc) ) - ROM_LOAD16_BYTE( "n4_4.bin", 0x008001, 0x001000, CRC(5f0080d5) SHA1(fb1303f9a02067faea2ac4d523051c416de9cf35) ) - ROM_LOAD16_BYTE( "l3_b.bin", 0x00a000, 0x001000, CRC(8cc7f7fa) SHA1(fefb9a4fdd63878bc5d8138e3e8456cb6638425a) ) - ROM_LOAD16_BYTE( "n3_5.bin", 0x00a001, 0x001000, CRC(40452376) SHA1(1d058b7ecd2bbff3393950aab9215b262908475b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "j4_c.bin", 0x0000, 0x1000, CRC(e897dfcd) SHA1(750df3d08512d8098a13ec62677831efa164c126) ) - ROM_LOAD( "j3_d.bin", 0x1000, 0x1000, CRC(4016de77) SHA1(7232ec003f1b9d3623d762f3270108a1d1837846) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, aztarac, 0, aztarac, aztarac, 0, ROT0, "Centuri", "Aztarac", 0 ) diff --git a/src/drivers/balsente.c b/src/drivers/balsente.c deleted file mode 100644 index d225bfd0a..000000000 --- a/src/drivers/balsente.c +++ /dev/null @@ -1,2473 +0,0 @@ -/*************************************************************************** - - Bally/Sente SAC-1 system - - driver by Aaron Giles - - Games supported: - * Chicken Shift - * Gimme a Break - * Goalie Ghost - * Grudge Match - * Hat Trick - * Mini Golf - * Name that Tune - * Night Stocker - * Off the Wall - * Rescue Raider - * Sente Diagnostic Cartridge - * Shrike Avenger - * Snacks'n Jaxson - * Snake Pit - * Spiker - * Stocker - * Stompin' - * Street Football - * Toggle - * Trivial Pursuit (Genus I) - * Trivial Pursuit (Genus II) - * Trivial Pursuit (All Sports Edition) - * Trivial Pursuit (Young Player's Edition) - * Trivial Pursuit (Baby Boomer Series) - * Trivial Pursuit (Spanish) - - Looking for ROMs for these: - * Euro Stocker - * Team Hat Trick - - Known bugs: - * CEM3394 emulation is not perfect - * Shrike Avenger doesn't work properly - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - CPU #1 - ======================================================================== - 0000-007F R/W xxxxxxxx Sprite RAM (32 entries x 4 bytes) - R/W x------- (0: Vertical flip) - R/W -x------ (0: Horizontal flip) - R/W ------xx (0: Upper 2 bits of image number) - R/W xxxxxxxx (1: Lower 8 bits of image number) - R/W xxxxxxxx (2: Y position, offset by 17 pixels) - R/W xxxxxxxx (3: X position) - 0080-00DF R/W xxxxxxxx Program RAM - 00E0-00FF R/W xxxxxxxx Additional sprite RAM (8 entries x 4 bytes) - 0100-07FF R/W xxxxxxxx Program RAM - 0800-7FFF R/W xxxxxxxx Video RAM (256x240 pixels) - R/W xxxx---- (left pixel) - R/W ----xxxx (right pixel) - 8000-8FFF R/W ----xxxx Palette RAM (1024 entries x 4 bytes) - R/W ----xxxx (0: red entry) - R/W ----xxxx (1: green entry) - R/W ----xxxx (2: blue entry) - 9000-9007 W -------- ADC start trigger, inputs 0-7 - 9400 R xxxxxxxx ADC data read - 9800-9801 W x------- External output #0 - 9802-9803 W x------- External output #1 - 9804-9805 W x------- External output #2 - 9806-9807 W x------- External output #3 - 9808-9809 W x------- External output #4 - 980A-980B W x------- External output #5 - 980C-980D W x------- External output #6 - 980E-980F W x------- NVRAM recall - 9880 W -------- Random number generator reset - 98A0 W -xxx---- A000-DFFF bank select - 98C0 W ------xx Palette bank select - 98E0 W -------- Watchdog reset - 9900 R xxxxxxxx DIP switch bank 1 (G) (active low) - 9901 R xxxxxxxx DIP switch bank 2 (H) (active low) - 9902 R x------- Self test (active low) - R -x------ Left coin (active low) - R --xxxxxx External inputs (active low) - 9903 R x------- VBLANK state (active high) - R -x------ Right coin (active low) - R --xxxx-- External inputs (active low) - R ------x- Player 2 start (active low) - R -------x Player 1 start (active low) - 9A00 R xxxxxxxx Random number generator - 9A04-9A05 R/W xxxxxxxx 6850 UART I/O (to sound board) - 9B00-9CFF R/W xxxxxxxx NOVRAM - 9F00 W --x--xxx Independent bank select (Night Stocker only?) - 9e00-9fff R/W Shrike Avenger shares with 68k at 0x18000 (see Shrike notes below) - A000-BFFF R xxxxxxxx Banked A/B ROM - C000-DFFF R xxxxxxxx Banked C/D ROM - E000-FFFF R xxxxxxxx Fixed program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by 32L - FIRQ generated by 6850 UART - ======================================================================== - - - ======================================================================== - CPU #2 - ======================================================================== - 0000-1FFF R xxxxxxxx Program ROM - 2000-3FFF R/W xxxxxxxx Option RAM/ROM (assumed to be RAM for now) - 4000-5FFF R/W xxxxxxxx Program RAM - 6000-6001 W xxxxxxxx 6850 UART output (to main board) - E000-E001 R xxxxxxxx 6850 UART input (from main board) - ======================================================================== - 0000-0003 R/W xxxxxxxx 8253 counter chip I/O - 0008 R ------xx Counter state - R ------x- State of counter #0 OUT signal (active high) - R -------x State of flip-flop feeding counter #0 (active low) - 0008 W --xxxxxx Counter control - W --x----- NMI enable (1=enabled, 0=disabled/clear) - W ---x---- CLEAR on flip-flop feeding counter #0 (active low) - W ----x--- Input of flip-flop feeding counter #0 - W -----x-- PRESET on flip-flop feeding counter #0 (active low) - W ------x- GATE signal for counter #0 (active high) - W -------x Audio enable - 000A W --xxxxxx DAC data latch (upper 6 bits) - 000B W xxxxxx-- DAC data latch (lower 6 bits) - 000C W -----xxx CEM3394 register select - 000E W --xxxxxx CEM3394 chip enable (active high) - W --x----- CEM3394 chip 0 enable - W ---x---- CEM3394 chip 1 enable - W ----x--- CEM3394 chip 2 enable - W -----x-- CEM3394 chip 3 enable - W ------x- CEM3394 chip 4 enable - W -------x CEM3394 chip 5 enable - ======================================================================== - Interrupts: - INT generated by counter #2 OUT signal on 8253 - NMI generated by 6850 UART - ======================================================================== - - ======================================================================== - Shrike SHM - Many thanks to Owen Rubin and Brian Deuel ( http://www.atarimuseum.com/orubin/ ) for their time, - interest, and memories! - - From Owen: The motor drive included 2 motors side by side at the rear of the cabinet with a U joint pivot - at the front. L & R motors were used independently for side to side "roll" motion, and together for pitch. - The motors were guarded by two sets of h/w limit switches - stop switch and (emergency) auto-reverse - switch - in tandem with soft limiting. The software calibrated the motors by running the motors slowly to - full limits and using the data for the soft limiting. (max chops?) - - The proto was never completed, there was to be a final round against a mother ship where you would have - to shoot out 4 engines and a target array. (He thinks there was another bank of sprite ROMs for this that - may never have been included.) He also says 'There was going to be a "death blossom" shot you could - use once that would have been a wild ride as well, but that motion was VERY tough in the simulator, so I - did not complete it.' - - Owen's recollection of the motion diagnostics screen, the second cursor is the controllers feedback - and should match the yoke cursor. Two of the channels (sine/bar) are probably calculated/reported - motor pos. Red sine meant over/underspeed or calculated/reported discrepancy. All memories came with - a disclaimer ;) - - Shrike shares 9e00 - 9fff as 18000 - 181ff, 9e00-9e0f as registers, and the rest as GFX RAM. - 10000-1001f appear to be the interface to the motors/sensors. - - For more detailed (but unfinished as yet) disassembly of 68000, get me at my hotmail address, 'nuapete' - ======================================================================== - m6809 m68000 - 9e00 RW - RW 18000 ($0,A3) : 6809 command register, commands in range 0-19 - cmd $0 nop - cmd $10 check RAM - cmd $11 check u22 ( 0000-3FFE ) - cmd $12 check u24 ( 0001-3FFF ) - cmd $13 check "u26" ( 8000-BFFE ) \ these appear to be for unused expansion slots - cmd $14 check "u28" ( 8001-BFFF ) / - cmd $15 check IRQs - cmd $16 check FIRQs - cmd $17 fetch max chops - cmd $18 fetch pulse width - 9e01 W - R 18001 ($1,A3) : &0x80 sprite bank select - 9e02 W - R 18002 ($2,A3) : \ joy x - 9e03 W - R 18003 ($3,A3) : / joy y - 9e04 R - W 18004 ($4,A3) : \ cursor y pos in diags screen - 9e05 R - W 18005 ($5,A3) : / cursor x pos in diags screen - 9e06 R - W 18006 ($6,A3) : 68k status - 00 = OK - 02 = cmd 3 or a failed - 01 = Initial status (not OK) - 10 = RAM bad - 11 = ROM(s) bad - 15 = IRQs bad - 16 = FIRQs bad - F7 = 68k didn't get handshake from 6809 - F8 = Too many spurious interrupts - F9 = Both limit switches at once - FA = 120 Hz signal slower than 80Hz - FB = Excess current sensor not working - FC = Motor range outside of expected - FD = Failed to detect limit switch - FE = No mech movement detected - FF = Excess current for too long - 9e07 W - R 18007 ($7,A3) : \ writes random stuff from 9A00 which is the random number generator? - 9e08 RW - R 18008 ($8,A3) : / as 9e07 - 9e09 RW - W 18009 ($9,A3) : \ 68k watchdog writes 0xaa - 9e0a W - RW 1800a ($a,A3) : / 6809 watchdog writes 0x55 - 9e0b - RW 1800b ($b,A3) : Only writes are 0 - 9e0c R - RW 1800c ($c,A3) : \ ypos returned from controller (affects enemy ship pos) - 9e0d R - W 1800d ($d,A3) : / xpos returned from controller - 9e0e W - R 1800e ($e,A3) : \ - 9e0f W - 1800f ($f,A3) : / partial pointer into SHM gfx data - -***************************************************************************/ - -#include "driver.h" -#include "balsente.h" -#include "sound/cem3394.h" - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x0800, 0x7fff) AM_READWRITE(MRA8_RAM, balsente_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(MRA8_RAM, balsente_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x9000, 0x9007) AM_WRITE(balsente_adc_select_w) - AM_RANGE(0x9400, 0x9401) AM_READ(balsente_adc_data_r) - AM_RANGE(0x9800, 0x987f) AM_WRITE(balsente_misc_output_w) - AM_RANGE(0x9880, 0x989f) AM_WRITE(balsente_random_reset_w) - AM_RANGE(0x98a0, 0x98bf) AM_WRITE(balsente_rombank_select_w) - AM_RANGE(0x98c0, 0x98df) AM_WRITE(balsente_palette_select_w) - AM_RANGE(0x98e0, 0x98ff) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x9900, 0x9900) AM_READ(input_port_0_r) - AM_RANGE(0x9901, 0x9901) AM_READ(input_port_1_r) - AM_RANGE(0x9902, 0x9902) AM_READ(input_port_2_r) - AM_RANGE(0x9903, 0x9903) AM_READWRITE(input_port_3_r, MWA8_NOP) - AM_RANGE(0x9a00, 0x9a03) AM_READ(balsente_random_num_r) - AM_RANGE(0x9a04, 0x9a05) AM_READWRITE(balsente_m6850_r, balsente_m6850_w) - AM_RANGE(0x9b00, 0x9cff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* system+cart NOVRAM */ - AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xffff) AM_ROMBANK(2) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( cpu2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x5fff) AM_RAM - AM_RANGE(0x6000, 0x7fff) AM_WRITE(balsente_m6850_sound_w) - AM_RANGE(0xe000, 0xffff) AM_READ(balsente_m6850_sound_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( cpu2_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_READWRITE(balsente_counter_8253_r, balsente_counter_8253_w) - AM_RANGE(0x08, 0x0f) AM_READ(balsente_counter_state_r) - AM_RANGE(0x08, 0x09) AM_WRITE(balsente_counter_control_w) - AM_RANGE(0x0a, 0x0b) AM_WRITE(balsente_dac_data_w) - AM_RANGE(0x0c, 0x0d) AM_WRITE(balsente_register_addr_w) - AM_RANGE(0x0e, 0x0f) AM_WRITE(balsente_chip_select_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Shrike Avenger CPU memory handlers - * - *************************************/ - -/* CPU 1 read addresses */ -static ADDRESS_MAP_START( shrike68k_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x003fff) AM_ROM - AM_RANGE(0x010000, 0x01001f) AM_RAM AM_BASE(&shrike_io) - AM_RANGE(0x018000, 0x018fff) AM_RAM AM_BASE(&shrike_shared) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define UNUSED_ANALOG \ - PORT_START\ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) -#define UNUSED_ANALOG_X2 UNUSED_ANALOG UNUSED_ANALOG -#define UNUSED_ANALOG_X3 UNUSED_ANALOG_X2 UNUSED_ANALOG -#define UNUSED_ANALOG_X4 UNUSED_ANALOG_X2 UNUSED_ANALOG_X2 - -#define PLAYER1_ANALOG_JOYSTICK \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_AD_STICK_Y ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1)\ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_AD_STICK_X ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(1) - -#define PLAYER2_ANALOG_JOYSTICK \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_AD_STICK_Y ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2)\ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_AD_STICK_X ) PORT_MINMAX(0x80,0x7f) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2) - -#define PLAYER1_TRACKBALL \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1)\ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - -#define PLAYER2_TRACKBALL \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(2)\ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2) - -#define PLAYER1_DIAL \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - -#define PLAYER2_DIAL \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_REVERSE PORT_PLAYER(2) - -#define PLAYER1_WHEEL \ - PORT_START\ - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_RESET PORT_PLAYER(1) - -#define PLAYER1_CROSSHAIRS \ - PORT_START /* fake analog X */\ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)\ - PORT_START /* fake analog Y */\ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) - - -INPUT_PORTS_START( sentetst ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x80, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Every 10,000" ) - PORT_DIPSETTING( 0x01, "Every 15,000" ) - PORT_DIPSETTING( 0x02, "Every 20,000" ) - PORT_DIPSETTING( 0x03, "Every 25,000" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( cshift ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x80, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( gghost ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x04, 0x04, "Players per Credit" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "1 or 2" ) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x05, "Game Duration" ) - PORT_DIPSETTING( 0x00, "9 points" ) - PORT_DIPSETTING( 0x02, "11 points" ) - PORT_DIPSETTING( 0x04, "15 points" ) - PORT_DIPSETTING( 0x06, "21 points" ) - PORT_DIPSETTING( 0x01, "timed, 1:15" ) - PORT_DIPSETTING( 0x03, "timed, 1:30" ) - PORT_DIPSETTING( 0x05, "timed, 2:00" ) - PORT_DIPSETTING( 0x07, "timed, 2:30" ) - PORT_BIT( 0x78, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PLAYER2_TRACKBALL - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( hattrick ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x04, 0x04, "Players Per Credit" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "1 or 2" ) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x02, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x00, "1:15" ) - PORT_DIPSETTING( 0x01, "1:30" ) - PORT_DIPSETTING( 0x02, "1:45" ) - PORT_DIPSETTING( 0x03, "2:00" ) - PORT_DIPSETTING( 0x04, "2:15" ) - PORT_DIPSETTING( 0x05, "2:30" ) - PORT_DIPSETTING( 0x06, "2:45" ) - PORT_DIPSETTING( 0x07, "3:00" ) - PORT_BIT( 0x78, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( otwalls ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x04, 0x04, "Players Per Credit" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "1 or 2" ) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_DIAL - PLAYER2_DIAL -INPUT_PORTS_END - - -INPUT_PORTS_START( snakepit ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x80, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Every 10,000" ) - PORT_DIPSETTING( 0x01, "Every 15,000" ) - PORT_DIPSETTING( 0x02, "Every 20,000" ) - PORT_DIPSETTING( 0x03, "Every 25,000" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( snakjack ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x80, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Every 15,000" ) - PORT_DIPSETTING( 0x01, "Every 20,000" ) - PORT_DIPSETTING( 0x02, "Every 25,000" ) - PORT_DIPSETTING( 0x03, "Every 30,000" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( stocker ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, "End of Game" ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "3 Tickets" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X3 - PLAYER1_WHEEL -INPUT_PORTS_END - - -INPUT_PORTS_START( triviag1 ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x20, 0x00, "Sound" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Sound Test" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x00, "Keep Top 5" ) - PORT_DIPSETTING( 0x80, "Keep Top 10" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0c, 0x04, "Guesses" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x08, "5" ) - PORT_DIPSETTING( 0x0c, "6" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Red Button") - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Green Button") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( triviaes ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x20, 0x00, "Sound" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Sound Test" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x00, "Keep Top 5" ) - PORT_DIPSETTING( 0x80, "Keep Top 10" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0c, 0x04, "Guesses" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Red Button") - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Green Button") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( gimeabrk ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - PORT_START /* IN1 */ - PORT_DIPNAME( 0x03, 0x01, "Bonus Shot" ) - PORT_DIPSETTING( 0x00, "Every 6 Balls" ) - PORT_DIPSETTING( 0x01, "Every 8 Balls" ) - PORT_DIPSETTING( 0x02, "Every 10 Balls" ) - PORT_DIPSETTING( 0x03, "Every 12 Balls" ) - PORT_DIPNAME( 0x0c, 0x08, "Initial Shots" ) - PORT_DIPSETTING( 0x00, "8" ) - PORT_DIPSETTING( 0x04, "10" ) - PORT_DIPSETTING( 0x08, "12" ) - PORT_DIPSETTING( 0x0c, "14" ) - PORT_DIPNAME( 0x10, 0x00, "Players Per Credit" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "1 or 2" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x40, 0x40, "High Scores" ) - PORT_DIPSETTING( 0x40, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PLAYER1_TRACKBALL - UNUSED_ANALOG_X2 -INPUT_PORTS_END - - -INPUT_PORTS_START( minigolf ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x01, "Add-A-Coin" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Display Kids" ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "Kid on Left Located" ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, "Kid on Right Located" ) - 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, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( minigol2 ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x01, "Add-A-Coin" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X2 - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( toggle ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, "High Scores" ) - PORT_DIPSETTING( 0x80, "Keep Top 5" ) - PORT_DIPSETTING( 0x00, "Keep All" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( nametune ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Blue Button") PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Green Button") PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Yellow Button") PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Red Button") PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Red Button") PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Yellow Button") PORT_PLAYER(2) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Green Button") PORT_PLAYER(2) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Blue Button") PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( nstocker ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X3 - /* cheese alert -- we have to map this to player 2 so that it doesn't interfere with */ - /* the crosshair controls */ - PORT_START - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) - PORT_CODE_DEC(KEYCODE_S) PORT_CODE_DEC(JOYCODE_1_LEFT) PORT_CODE_INC(KEYCODE_F) PORT_CODE_INC(JOYCODE_1_RIGHT) PORT_RESET PORT_PLAYER(2) - - /* extra ports for shooters */ - PLAYER1_CROSSHAIRS -INPUT_PORTS_END - - -INPUT_PORTS_START( sfootbal ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x03, "Game Duration" ) - PORT_DIPSETTING( 0x00, "1:30" ) - PORT_DIPSETTING( 0x01, "1:40" ) - PORT_DIPSETTING( 0x02, "1:50" ) - PORT_DIPSETTING( 0x03, "2:00" ) - PORT_DIPSETTING( 0x04, "2:20" ) - PORT_DIPSETTING( 0x05, "2:40" ) - PORT_DIPSETTING( 0x06, "3:00" ) - PORT_DIPSETTING( 0x07, "3:30" ) - PORT_DIPNAME( 0x08, 0x00, "Players Per Credit" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x08, "1 or 2" ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PLAYER2_ANALOG_JOYSTICK - PLAYER1_ANALOG_JOYSTICK -INPUT_PORTS_END - - -INPUT_PORTS_START( spiker ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x00, "Game Duration" ) - PORT_DIPSETTING( 0x00, "11 points" ) - PORT_DIPSETTING( 0x01, "15 points" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PLAYER2_TRACKBALL - PLAYER1_TRACKBALL -INPUT_PORTS_END - - -INPUT_PORTS_START( stompin ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x00, "Display Kids" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "Kid on Right Located" ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, "Kid on Left Located" ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Bee In Game" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x00, "Bug Generation" ) - PORT_DIPSETTING( 0x00, "Regular" ) - PORT_DIPSETTING( 0x80, DEF_STR( None ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* "analog" ports */ - PORT_START - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Top-Right") PORT_CODE(KEYCODE_9_PAD) PORT_PLAYER(1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Top") PORT_CODE(KEYCODE_8_PAD) PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Top-Left") PORT_CODE(KEYCODE_7_PAD) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Right") PORT_CODE(KEYCODE_6_PAD) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Left") PORT_CODE(KEYCODE_4_PAD) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Bot-Right") PORT_CODE(KEYCODE_3_PAD) PORT_PLAYER(1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Bottom") PORT_CODE(KEYCODE_2_PAD) PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Bot-Left") PORT_CODE(KEYCODE_1_PAD) PORT_PLAYER(1) - - UNUSED_ANALOG -INPUT_PORTS_END - - -INPUT_PORTS_START( grudge ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x80, "1" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PORT_START - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(20) PORT_PLAYER(3) - UNUSED_ANALOG -INPUT_PORTS_END - - -INPUT_PORTS_START( rescraid ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x1c, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x04, "2 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x08, "3 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x0c, "4 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x10, "4 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x14, "5 Coins = 1 Bonus" ) - PORT_DIPSETTING( 0x18, "5 Coins = 2 Bonus" ) - PORT_DIPSETTING( 0x1c, "5 Coins = 3 Bonus" ) - PORT_DIPNAME( 0x20, 0x00, "Left Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x20, "x2" ) - PORT_DIPNAME( 0xc0, 0x00, "Right Coin Mech" ) - PORT_DIPSETTING( 0x00, "x1" ) - PORT_DIPSETTING( 0x40, "x4" ) - PORT_DIPSETTING( 0x80, "x5" ) - PORT_DIPSETTING( 0xc0, "x6" ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x0c, 0x04, "Minimum Game Time" ) - PORT_DIPSETTING( 0x08, "45" ) - PORT_DIPSETTING( 0x04, "60" ) - PORT_DIPSETTING( 0x00, "90" ) - PORT_DIPSETTING( 0x0c, "120" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Keep High Scores" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - UNUSED_ANALOG_X4 -INPUT_PORTS_END - - -INPUT_PORTS_START( shrike ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C )) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x03, DEF_STR( Free_Play )) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, "Reset High Scores" ) - PORT_DIPSETTING( 0x40, DEF_STR( No )) - PORT_DIPSETTING( 0x00, DEF_STR( Yes )) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x03, 0x03, "Minimum Game Time" ) - PORT_DIPSETTING( 0x00, "1:00" ) - PORT_DIPSETTING( 0x01, "1:30" ) - PORT_DIPSETTING( 0x02, "2:00" ) - PORT_DIPSETTING( 0x03, "2:30" ) - PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds )) - PORT_DIPSETTING( 0x80, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // carpet switch - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - /* analog ports */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) - UNUSED_ANALOG_X2 -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct cem3394_interface cem_interface = -{ - 431.894, - 1300.0, - balsente_noise_gen -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( balsente ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 5000000/4) - MDRV_CPU_PROGRAM_MAP(cpu1_map,0) - MDRV_CPU_VBLANK_INT(balsente_update_analog_inputs,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(cpu2_map,0) - MDRV_CPU_IO_MAP(cpu2_io_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(balsente) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(balsente) - MDRV_VIDEO_UPDATE(balsente) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(CEM3394, 0) - MDRV_SOUND_CONFIG(cem_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( shrike ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(balsente) - - MDRV_CPU_ADD(M68000, 8000000) - MDRV_CPU_PROGRAM_MAP(shrike68k_map,0) - - MDRV_INTERLEAVE(100) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( sentetst ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "sdiagef.bin", 0x2e000, 0x2000, CRC(2a39fc53) SHA1(04ea68bfad455cc928e57390eba5597c38bbab69) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "sdiaggr0.bin", 0x00000, 0x2000, CRC(5e0ff62a) SHA1(3f0ebebb2f58530af7fac57a4780dfb37ef1ee1d) ) -ROM_END - - -ROM_START( cshift ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "cs-ab0.bin", 0x10000, 0x2000, CRC(d2069e75) SHA1(17d5719e6e1976cebb332932cf3e900a88136928) ) - ROM_LOAD( "cs-ab1.bin", 0x12000, 0x2000, CRC(198f25a8) SHA1(5ca25fe57e94d8362896c903196e0080efd35ef5) ) - ROM_LOAD( "cs-ab2.bin", 0x14000, 0x2000, CRC(2e2b2b82) SHA1(a540f3ff2a0a10b19aafe1528b7dcaeae9b7393d) ) - ROM_LOAD( "cs-ab3.bin", 0x16000, 0x2000, CRC(b97fc520) SHA1(f45c5ec93eab1bfd1f9533df7ac624c2e99f6573) ) - ROM_LOAD( "cs-ab4.bin", 0x18000, 0x2000, CRC(b4f0d673) SHA1(cb97dc8836c497fa03a862227340f8c351986a39) ) - ROM_LOAD( "cs-ab5.bin", 0x1a000, 0x2000, CRC(b1f8e589) SHA1(d837beff063ed987571c5af6130f2c7d637d7c39) ) - ROM_LOAD( "cs-cd.bin", 0x2c000, 0x2000, CRC(f555a0b2) SHA1(49668f8363fdcec4686ec80bf2e99003cd11e2c1) ) - ROM_LOAD( "cs-ef.bin", 0x2e000, 0x2000, CRC(368b1ce3) SHA1(8003ef99adcb26feb42e1b0945b1185e438582b2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "cs-gr0.bin", 0x00000, 0x2000, CRC(67f9d3b3) SHA1(4f3f80e4272b20611206636b6ccb627087efd0c3) ) - ROM_LOAD( "cs-gr1.bin", 0x02000, 0x2000, CRC(78973d50) SHA1(de7891ef47c277d733d9b4810d68621718644655) ) - ROM_LOAD( "cs-gr2.bin", 0x04000, 0x2000, CRC(1784f939) SHA1(ff7f43451580e3b314c24b00a66765c0b395ddf6) ) - ROM_LOAD( "cs-gr3.bin", 0x06000, 0x2000, CRC(b43916a2) SHA1(8d42fb6ae7cf8b2d94eb0c14e00bb115f8ef01b4) ) - ROM_LOAD( "cs-gr4.bin", 0x08000, 0x2000, CRC(a94cd35b) SHA1(0ca0497a1b055ff1ae6b7bc36ae45749dff50caa) ) -ROM_END - - -ROM_START( gghost ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ggh-ab0.bin", 0x10000, 0x2000, CRC(ed0fdeac) SHA1(294cee47c0541c58d4d766388c281ed30b8f5426) ) - ROM_LOAD( "ggh-ab1.bin", 0x12000, 0x2000, CRC(5bfbae58) SHA1(65c795354223cd5e2474ad9e779b77f58ed5b896) ) - ROM_LOAD( "ggh-ab2.bin", 0x14000, 0x2000, CRC(f0baf921) SHA1(4b7ee06838dcdb68ddec51f5eafab53ff3f25bfe) ) - ROM_LOAD( "ggh-ab3.bin", 0x16000, 0x2000, CRC(ed0fdeac) SHA1(294cee47c0541c58d4d766388c281ed30b8f5426) ) - ROM_LOAD( "ggh-ab4.bin", 0x18000, 0x2000, CRC(5bfbae58) SHA1(65c795354223cd5e2474ad9e779b77f58ed5b896) ) - ROM_LOAD( "ggh-ab5.bin", 0x1a000, 0x2000, CRC(f0baf921) SHA1(4b7ee06838dcdb68ddec51f5eafab53ff3f25bfe) ) - ROM_LOAD( "ggh-cd.bin", 0x2c000, 0x2000, CRC(d3d75f84) SHA1(f19f99ea05ad5b7e4b0485e80d7b6a329b8ef4d8) ) - ROM_LOAD( "ggh-ef.bin", 0x2e000, 0x2000, CRC(a02b4243) SHA1(f242fc017c9ae1997409825c34e8f5c6e6a0615e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "ggh-gr0.bin", 0x00000, 0x2000, CRC(03515526) SHA1(bceb7c8c3aa4c39b6cf1b976c5765c920399fe31) ) - ROM_LOAD( "ggh-gr1.bin", 0x02000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) ) - ROM_LOAD( "ggh-gr2.bin", 0x04000, 0x2000, CRC(ece0cb97) SHA1(13bfb38de30992b9597c9d0f87f7b2a5c061ba51) ) - ROM_LOAD( "ggh-gr3.bin", 0x06000, 0x2000, CRC(dd7e25d0) SHA1(cc6402835d1b46d160869ba1d1cad54f24d3fe86) ) - ROM_LOAD( "ggh-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) ) - ROM_LOAD( "ggh-gr5.bin", 0x0a000, 0x2000, CRC(d3da0093) SHA1(7474901b089ea62abad0a2f657fd8c4a1be09bf0) ) -ROM_END - - -ROM_START( hattrick ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(f25c1b99) SHA1(43b2334be7cfb8091eea963e10547295362372d3) ) - ROM_LOAD( "rom-ab1.u8a", 0x12000, 0x2000, CRC(c1df3d1f) SHA1(754f537d12efe8891638fd11a2ee8a5b234fb079) ) - ROM_LOAD( "rom-ab2.u7a", 0x14000, 0x2000, CRC(f6c41257) SHA1(05f5e71d08241c559da3bfc286c76cbb22710586) ) - ROM_LOAD( "rom-cd.u3a", 0x2c000, 0x2000, CRC(fc44f36c) SHA1(227d0c93c579d743b615b1fa6da56128e8202e51) ) - ROM_LOAD( "rom-ef.u2a", 0x2e000, 0x2000, CRC(d8f910fb) SHA1(b74a305dd848c7bf574e4b0aa32147b8d5c89e9e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(9f41baba) SHA1(fa817a8e4d2f7b86a2294132e3991f7b6d8cb11a) ) - ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(951f08c9) SHA1(059a575dd35cd8e822e12ac2606b47b6272bbb41) ) -ROM_END - - -ROM_START( otwalls ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "otw-ab0.bin", 0x10000, 0x2000, CRC(474441c7) SHA1(16fb5be9f94e072d4f3003abcc9dcf6d7af2359a) ) - ROM_LOAD( "otw-ab1.bin", 0x12000, 0x2000, CRC(2e9e9411) SHA1(7dfd8dafa34e4d22fa0c5e472e3e98a1c0969f43) ) - ROM_LOAD( "otw-ab2.bin", 0x14000, 0x2000, CRC(ba092128) SHA1(a38305c3ea9c8bf3596c18829655049f9468166e) ) - ROM_LOAD( "otw-ab3.bin", 0x16000, 0x2000, CRC(74bc479d) SHA1(905dab90aa11f3f4359185bb67d8c2bdc957516d) ) - ROM_LOAD( "otw-ab4.bin", 0x18000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) ) - ROM_LOAD( "otw-ab5.bin", 0x1a000, 0x2000, CRC(f5f67619) SHA1(e3eb1434dff987d27056ae0749046f32f280160b) ) - ROM_LOAD( "otw-cd.bin", 0x2c000, 0x2000, CRC(8e2d15ab) SHA1(8043fdf637de7752e8d42554ebad2e155a6f5939) ) - ROM_LOAD( "otw-ef.bin", 0x2e000, 0x2000, CRC(57eab299) SHA1(475d800c03d6b2786bd23861d61dc113b837a585) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "otw-gr0.bin", 0x00000, 0x2000, CRC(210bad3c) SHA1(703769c6a569b17f2ad18441da7de0237be4721e) ) - ROM_LOAD( "otw-gr1.bin", 0x02000, 0x2000, CRC(13e6aaa5) SHA1(ac8b9d16d2159d4a578d8fa988b59c058c5efc88) ) - ROM_LOAD( "otw-gr2.bin", 0x04000, 0x2000, CRC(5cfefee5) SHA1(9aa74f0e1116098f43a4f8b4957db8923ddaf780) ) - ROM_LOAD( "otw-gr3.bin", 0x06000, 0x2000, CRC(6b17e4a9) SHA1(f9c57da863d613a456ee056569a87a9552ad3874) ) - ROM_LOAD( "otw-gr4.bin", 0x08000, 0x2000, CRC(15985c8c) SHA1(94f21c348bfbe4db6d0cfa5b5e35d2df4b8f936d) ) - ROM_LOAD( "otw-gr5.bin", 0x0a000, 0x2000, CRC(448f7e3c) SHA1(505724e90f17b05ccf0137dbed0d33e39db1d5ab) ) -ROM_END - - -ROM_START( snakepit ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "spit-ab0.bin", 0x10000, 0x2000, CRC(5aa86081) SHA1(e65e256661b13a0631398e115dd02fce281bafa4) ) - ROM_LOAD( "spit-ab1.bin", 0x12000, 0x2000, CRC(588228b8) SHA1(b64032a4fd1f52179d38e2073380bba6ec321302) ) - ROM_LOAD( "spit-ab2.bin", 0x14000, 0x2000, CRC(60173ab6) SHA1(45b27492023771a53ea5857592a2a113746a72b6) ) - ROM_LOAD( "spit-ab3.bin", 0x16000, 0x2000, CRC(56cb51a8) SHA1(fceb2fbae91bbab0b25410072805449ef531f360) ) - ROM_LOAD( "spit-ab4.bin", 0x18000, 0x2000, CRC(40ba61e0) SHA1(91b06d116633c5261f3aa97d4e65bd61bae3c0eb) ) - ROM_LOAD( "spit-ab5.bin", 0x1a000, 0x2000, CRC(2a1d9d8f) SHA1(3364f4bc507576323560bf14fc99036c47d0297c) ) - ROM_LOAD( "spit-cd.bin", 0x2c000, 0x2000, CRC(54095cbb) SHA1(a43b78b2876359a29ecb2f169c876a0026375ea2) ) - ROM_LOAD( "spit-ef.bin", 0x2e000, 0x2000, CRC(5f836a66) SHA1(cc3c11003f9e49cac10c0296ab6d156e5677d0f8) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "spit-gr0.bin", 0x00000, 0x2000, CRC(f77fd85d) SHA1(f8e69d1d0030412d6129a8ebfee40b3f1f189d8d) ) - ROM_LOAD( "spit-gr1.bin", 0x02000, 0x2000, CRC(3ad10334) SHA1(1d82a7948fbee627c80a9e03ade90e57972a6a31) ) - ROM_LOAD( "spit-gr2.bin", 0x04000, 0x2000, CRC(24887703) SHA1(089f077400c9a3e3f5b43e8aa60b41160e296d52) ) - ROM_LOAD( "spit-gr3.bin", 0x06000, 0x2000, CRC(c6703ec2) SHA1(0f5d7c17ee508f8fea316b7f92cdd7cc174b155f) ) - ROM_LOAD( "spit-gr4.bin", 0x08000, 0x2000, CRC(b4293435) SHA1(5e2b96c19c4f5c63a5afa2de504d29fe64a4c908) ) - ROM_LOAD( "spit-gr5.bin", 0x0a000, 0x2000, CRC(dc27c970) SHA1(291ef10a8c330ef8e47622246b6301d2e5171df7) ) -ROM_END - - -ROM_START( snakjack ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "rom-ab0.u9a", 0x10000, 0x2000, CRC(da2dd119) SHA1(85ae452b137e69e051fa66648f295d180339794e) ) - ROM_LOAD( "rom-ab1.u8a", 0x12000, 0x2000, CRC(657ddf26) SHA1(48591a6b0c30d576f0e08dd54c95cbda76b5dfbd) ) - ROM_LOAD( "rom-ab2.u7a", 0x14000, 0x2000, CRC(15333dcf) SHA1(13546bd058a10513fe4cbe3a3fa268b7c38b5993) ) - ROM_LOAD( "rom-ab3.u6a", 0x16000, 0x2000, CRC(57671f6f) SHA1(49e76e03d828fed28e7e0608985172af20084f7f) ) - ROM_LOAD( "rom-ab4.u5a", 0x18000, 0x2000, CRC(c16c5dc0) SHA1(93e36758f4e5bb8dac29f9a2bc3ac5f9589e8c9a) ) - ROM_LOAD( "rom-ab5.u4a", 0x1a000, 0x2000, CRC(d7019747) SHA1(c8b1a6ea463b5932bc9ed2c91faea2e2639d7934) ) - ROM_LOAD( "rom-cd.u3a", 0x2c000, 0x2000, CRC(7b44ca4c) SHA1(8697055da489fcf0244dc94fe5393418a8003bf7) ) - ROM_LOAD( "rom-ef.u1a", 0x2e000, 0x2000, CRC(f5309b38) SHA1(864f759dc6822b548742140b7ea2ea2aba43beba) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "rom-gr0.u9b", 0x00000, 0x2000, CRC(3e64b5d5) SHA1(ab681eabb4f8e5b946c288ffb8df0624c0473d82) ) - ROM_LOAD( "rom-gr1.u8b", 0x02000, 0x2000, CRC(b3b8baee) SHA1(b37638784a3903f2dcd698104da75b4ab59e8257) ) - ROM_LOAD( "rom-gr2.u7b", 0x04000, 0x2000, CRC(e9d89dac) SHA1(570809ec5f8a64f280e13cbf801664cb548997e9) ) - ROM_LOAD( "rom-gr3.u6b", 0x06000, 0x2000, CRC(b6602be8) SHA1(c5bc95e0116fb2cf86a694561dc2c21612ba4434) ) - ROM_LOAD( "rom-gr4.u5b", 0x08000, 0x2000, CRC(3fbfa686) SHA1(6c137d177c7aa2701497ac3ac922fdb8cd9f52b3) ) - ROM_LOAD( "rom-gr5.u4b", 0x0a000, 0x2000, CRC(345f94fb) SHA1(0af24f4e1a797efe5272f64b8a34483fe6002436) ) -ROM_END - - -ROM_START( stocker ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "stkr-ab0.bin", 0x10000, 0x2000, CRC(784a00ad) SHA1(33e76be44207bc24dbb9c2f04204df22ba5154ff) ) - ROM_LOAD( "stkr-ab1.bin", 0x12000, 0x2000, CRC(cdae01dc) SHA1(7c2956acae639fd2f2cf061d1c32ae9edabe9270) ) - ROM_LOAD( "stkr-ab2.bin", 0x14000, 0x2000, CRC(18527d57) SHA1(cbb85f9e0b6169f4c2e03dc54b4937043535fc42) ) - ROM_LOAD( "stkr-ab3.bin", 0x16000, 0x2000, CRC(028f6c06) SHA1(f1d30efcd7e967b0390f441848bb655111fdde65) ) - ROM_LOAD( "stkr-cd.bin", 0x2c000, 0x2000, CRC(53dbc4e5) SHA1(e389978b5472174681fa180c6a2edf49903a6514) ) - ROM_LOAD( "stkr-ef.bin", 0x2e000, 0x2000, CRC(cdcf46bc) SHA1(8b1e801dab1efed002d484135264998d255dc041) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "stkr-gr0.bin", 0x00000, 0x2000, CRC(76d5694c) SHA1(e2b155fc7178886eb37a532d961b99b8c864397c) ) - ROM_LOAD( "stkr-gr1.bin", 0x02000, 0x2000, CRC(4a5cc00b) SHA1(9ce46ed94e715a5997998aee6377baf2869ab3a6) ) - ROM_LOAD( "stkr-gr2.bin", 0x04000, 0x2000, CRC(70002382) SHA1(c151ad3df2714a2f9f8b047894e7585ca16bd29e) ) - ROM_LOAD( "stkr-gr3.bin", 0x06000, 0x2000, CRC(68c862d8) SHA1(302ce10e23d17af9aa7fa13d18c602656a262eaa) ) -ROM_END - - -ROM_START( triviag1 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "tpg1-ab0.bin", 0x10000, 0x2000, CRC(79fd3ac3) SHA1(52db0ba445f9a953f6ceb43c3d173b73c71af192) ) - ROM_LOAD( "tpg1-ab1.bin", 0x12000, 0x2000, CRC(0ff677e9) SHA1(14fdc1ee87893ea91eea40949aeac5381c569bdd) ) - ROM_LOAD( "tpg1-ab2.bin", 0x14000, 0x2000, CRC(3b4d03e7) SHA1(b5bb541daf59b2a62b17a10afa37bfae50563393) ) - ROM_LOAD( "tpg1-ab3.bin", 0x16000, 0x2000, CRC(2c6c0651) SHA1(9ff5dcc4a54df653ae43d503e153f4e48ea4735b) ) - ROM_LOAD( "tpg1-ab4.bin", 0x18000, 0x2000, CRC(397529e7) SHA1(af1898dc35545981513ec251eed162b329709692) ) - ROM_LOAD( "tpg1-ab5.bin", 0x1a000, 0x2000, CRC(499773a4) SHA1(c0c0ad2a63a9dbb7585cab7e21162bbc58fec0d8) ) - ROM_LOAD( "tpg1-cd.bin", 0x2c000, 0x2000, CRC(35c9b9c2) SHA1(aac57022098656dac99bf9ceeaa2bf9a3d139986) ) - ROM_LOAD( "tpg1-ef.bin", 0x2e000, 0x2000, CRC(64878342) SHA1(dd93d64b3fe351a9d2bd4c473ecefde58f0b0041) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "tpg1-gr0.bin", 0x00000, 0x2000, CRC(20c9217a) SHA1(79ef058633149da8d2835405954ac31c661bf660) ) - ROM_LOAD( "tpg1-gr1.bin", 0x02000, 0x2000, CRC(d7f44504) SHA1(804dbc4c006b20bdb01bdf02754e0d98f6fbacbe) ) - ROM_LOAD( "tpg1-gr2.bin", 0x04000, 0x2000, CRC(4e59a15d) SHA1(c584bae32e2e5d8b5a48c44a31272b4f9dadfcd1) ) - ROM_LOAD( "tpg1-gr3.bin", 0x06000, 0x2000, CRC(323a8640) SHA1(7ec6f8f9bcfa5de442dce4f6e81e697da34dbab8) ) - ROM_LOAD( "tpg1-gr4.bin", 0x08000, 0x2000, CRC(673acf42) SHA1(7b36a86441732ba14576f9c1dd14fe0da575d4bf) ) - ROM_LOAD( "tpg1-gr5.bin", 0x0a000, 0x2000, CRC(067bfd66) SHA1(32f5973f2f0aed67c8f9b5886f52b9dc516a611e) ) -ROM_END - - -ROM_START( triviag2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(4fca20c5) SHA1(595b32ff035036cafbf49d75aa170f39e9f52b38) ) - ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(6cf2ddeb) SHA1(0d6667babd9ab70820cf165900d90003f0893be7) ) - ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(a7ff789c) SHA1(a3421ae46dadd6f514cfc514ff07dfcca2cb1478) ) - ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(cc5c68ef) SHA1(38713796e07f84c9a1b21d8c66f76e620132d77e) ) - ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(fc9c752a) SHA1(239507fb5d75e86aca295978aab1dd4514d8d761) ) - ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(23b56fb8) SHA1(9ac726de69e4b374886a3542829745f7477d7556) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) - ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) - ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1e870293) SHA1(32149c9c8047854f2b2ad8844c4bd00a8ded588e) ) -ROM_END - - -ROM_START( triviasp ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "allsport.8a", 0x10000, 0x4000, CRC(54b7ff31) SHA1(1bdf9c9eb1a0fb4c1013680372d289882abf4b47) ) - ROM_LOAD( "allsport.7a", 0x14000, 0x4000, CRC(59fae9d2) SHA1(a555f0679c59bf7c9dad0ecb9656a2f8faf39902) ) - ROM_LOAD( "allsport.6a", 0x18000, 0x4000, CRC(237b6b95) SHA1(9d2937c1ecea9d92775f380d40f465f68c44fe06) ) - ROM_LOAD( "allsport.5a", 0x1c000, 0x4000, CRC(b64d7f61) SHA1(25a7034b18a1623209dc0d06bdb4490243d43261) ) - ROM_LOAD( "allsport.3a", 0x28000, 0x4000, CRC(e45d09d6) SHA1(8bde18d25f8bd1056e42672d428473be23eab260) ) - ROM_LOAD( "allsport.1a", 0x2c000, 0x4000, CRC(8bb3e831) SHA1(ecc8fb0f2143e3ea03bb52773cc0a81d4dcc742d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) - ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) - ROM_LOAD( "allsport.3b", 0x08000, 0x4000, CRC(7415a7fc) SHA1(93d832434f359ce7b02aef276c89456b16438979) ) -ROM_END - - -ROM_START( triviayp ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(97d35a85) SHA1(3ee8400fc3a2bf8a2f6374ffc34a4d295ee13bab) ) - ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(2ff67c70) SHA1(c45b5fde4ec979322c9e251e66183632552d35bd) ) - ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(511a0fab) SHA1(a2fefe2b86028c7e8c15d6a737509b7dc30430cd) ) - ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(df99d00c) SHA1(7eba6b85e2d9a06635e97d12123fd2a17368e6bc) ) - ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(ac45809e) SHA1(1151c4e55f21a7e2eb8e163ac782b4449af84cdc) ) - ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(a008059f) SHA1(45e4cfc259e801a189ec19fdc58135dbbbe130ea) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) - ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) - ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) ) -ROM_END - - -ROM_START( triviabb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(1b7c439d) SHA1(8b3020dcb375b2f2e5e975a8067df6504aa8691e) ) - ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(e4f1e704) SHA1(e5135134b54e1e2e95c5bfe6e5f0e2dd280db69d) ) - ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(daa2d8bc) SHA1(feae215877ba42ab33182dfd74083f1d48443d8c) ) - ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(3622c4f1) SHA1(d180bb1c4a73d95c369cc507697421fb38a92d2c) ) - ROM_LOAD( "cd45.bin", 0x28000, 0x4000, CRC(07fd88ff) SHA1(c3168ecf6562e09790c4f18cdd91c7a347223323) ) - ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(2d03f241) SHA1(986ca6ea20c306e83ae88acc2d6837c7ed5fe351) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) - ROM_LOAD( "gr23.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) - ROM_LOAD( "gr45.bin", 0x08000, 0x4000, CRC(92fb6fb1) SHA1(1a322bd3cfacdf82d4fcc4b4d47f78a701411919) ) -ROM_END - -ROM_START( triviaes ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "tp_a2.bin", 0x10000, 0x04000, CRC(b4d69463) SHA1(8d6b2024600ab0a5d76d2b8ec53cf4c6c6618901) ) - ROM_LOAD( "tp_a7.bin", 0x14000, 0x04000, CRC(d78bd4b6) SHA1(0542fc4ef2501c7649b9fd257340c4392a19d7ad) ) - ROM_LOAD( "tp_a4.bin", 0x18000, 0x04000, CRC(0de9e14d) SHA1(3d5fdf8531cb10a41e3f604165fce682e7e019d5) ) - ROM_LOAD( "tp_a5.bin", 0x1c000, 0x04000, CRC(e749adac) SHA1(426665249a57ba6f4a890808a1c84edeade149bb) ) - ROM_LOAD( "tp_a8.bin", 0x20000, 0x04000, CRC(168ef5ed) SHA1(677a83dfcb12af7e13f00213e2eec48fa2fa63c8) ) - ROM_LOAD( "tp_a1.bin", 0x24000, 0x04000, CRC(1f6ef37f) SHA1(c399404e05d817ffb361eb8ef274a86f07085940) ) - ROM_LOAD( "tp_a6.bin", 0x28000, 0x04000, CRC(421c1a29) SHA1(3e0de8734a39fb887aff40e89cb0936d4cacf9a5) ) - ROM_LOAD( "tp_a3.bin", 0x2c000, 0x04000, CRC(c6254f46) SHA1(47f3d05d0c31983ed1576f91fa193fe58e80bb60) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "tpsonido.bin", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "tp_gr3.bin", 0x00000, 0x4000, CRC(6829de8e) SHA1(4ec494883ba358f2ac7ce8d5a623a2f34b5bc843) ) - ROM_LOAD( "tp_gr2.bin", 0x04000, 0x4000, CRC(89398700) SHA1(771ee04baa9a31d435a6234490105878713e7845) ) - ROM_LOAD( "tp_gr1.bin", 0x08000, 0x4000, CRC(1242033e) SHA1(1a3fe186bb261e2c7d9fbbb2a3103b39bf029b35) ) -ROM_END - - -ROM_START( gimeabrk ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(18cc53db) SHA1(3bb47c349b3ab7b81e3557e3b4877617fb549c9e) ) - ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(6bd4190a) SHA1(b6562b3575dc8265c01719cfbcb554b69bc1b37f) ) - ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(5dca4f33) SHA1(aa45d5a960491c85f332f22cffe61999fe3db826) ) - ROM_LOAD( "cd6ef.uia", 0x2c000, 0x4000, CRC(5e2b3510) SHA1(e3501b9bd73bc724aee0436700625bd2af94f72d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(e3cdc476) SHA1(2f17c3f84767850d45192dfb507dd2716ecadc20) ) - ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(0555d9c0) SHA1(da0d1f207ad056b2d82a5ad6382372066883d161) ) -ROM_END - - -ROM_START( minigolf ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) - ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) ) - ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) ) - ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) ) - ROM_LOAD( "1a-ver2", 0x20000, 0x10000, CRC(60b6cd58) SHA1(f79bf2d1f6c4e63f666073c5ecb22604c1ab57d8) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) ) - ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) ) - ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) ) -ROM_END - - -ROM_START( minigol2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(348f827f) SHA1(a013ef3068e14e0738bcfa4de26c0c2df4c0a7f6) ) - ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(19a6ff47) SHA1(70b6da3b4186e5b9463f2ea0fefefad21ec80637) ) - ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(925d76eb) SHA1(29d2d7b26d2e81817c4d135935dab70a5aa2d146) ) - ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(6a311c9a) SHA1(b0409e5f4bd3bf898b8701561aac6dbbc28417bd) ) - ROM_LOAD( "cd23.u3a", 0x24000, 0x4000, CRC(52279801) SHA1(d8de92c296d5c91db3bea7a0093260158961036e) ) - ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(34c64f4c) SHA1(ce55f5f6ebddcacf20cb78fb738b5f569b531b61) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u6b", 0x00000, 0x4000, CRC(8e24d594) SHA1(d35329fb78f90ec478418917aa1ef06d0967e6f8) ) - ROM_LOAD( "gr23.u5b", 0x04000, 0x4000, CRC(3bf355ef) SHA1(691df25b35b00e21ad09d17a21fe98a353aa3dda) ) - ROM_LOAD( "gr45.u4b", 0x08000, 0x4000, CRC(8eb14921) SHA1(fda8b8f8e801360310f7cb1aa4c6aea1fa0a4b25) ) -ROM_END - - -ROM_START( toggle ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "tgle-ab0.bin", 0x10000, 0x2000, CRC(8c7b7fad) SHA1(13eaf5b3727ff8b7ce2cfbab99541ca1e538aeba) ) - ROM_LOAD( "tgle-ab1.bin", 0x12000, 0x2000, CRC(771e5434) SHA1(b1bcefc81054c81a22a91106c5bc99ef204cd009) ) - ROM_LOAD( "tgle-ab2.bin", 0x14000, 0x2000, CRC(9b4baa3f) SHA1(5b0776d983ad40a0051939810bb854f014fea28b) ) - ROM_LOAD( "tgle-ab3.bin", 0x16000, 0x2000, CRC(35308a41) SHA1(3846446b60897bfce8fcfd1561b5b74cdd19c36e) ) - ROM_LOAD( "tgle-ab4.bin", 0x18000, 0x2000, CRC(baf5617b) SHA1(95c91fc81c975f522c1bd4f14bfb5f453801ffb6) ) - ROM_LOAD( "tgle-ab5.bin", 0x1a000, 0x2000, CRC(88077dad) SHA1(51b36177a4bfbb62c91d87282bfc1ff791626d19) ) - ROM_LOAD( "tgle-cd.bin", 0x2c000, 0x2000, CRC(0a2bb949) SHA1(350dc782fc21640794c6ecb502554cb693adbb7d) ) - ROM_LOAD( "tgle-ef.bin", 0x2e000, 0x2000, CRC(3ec10804) SHA1(ae719081e8114ccc23c6b24c7fe904a11fbdd992) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "tgle-gr0.bin", 0x00000, 0x2000, CRC(0e0e5d0e) SHA1(363858ce08767f8a9b8eaec56405377cdd74b178) ) - ROM_LOAD( "tgle-gr1.bin", 0x02000, 0x2000, CRC(3b141ad2) SHA1(72430fd616adbc72d86a5f10672572a31bed0b5d) ) -ROM_END - - -ROM_START( nametune ) - ROM_REGION( 0x70000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "nttab01.bin", 0x10000, 0x4000, CRC(f99054f1) SHA1(aaa3aae71f67be2df34b9682b1b4092a208fbf26) ) - ROM_CONTINUE( 0x40000, 0x4000 ) - ROM_LOAD( "nttab23.bin", 0x14000, 0x4000, CRC(f2b8f7fa) SHA1(b9f81a29b031af31118b77e77fc29e59f2059109) ) - ROM_CONTINUE( 0x44000, 0x4000 ) - ROM_LOAD( "nttab45.bin", 0x18000, 0x4000, CRC(89e1c769) SHA1(8e976182d99b93bb1cf6e306d134b66ba6fe6052) ) - ROM_CONTINUE( 0x48000, 0x4000 ) - ROM_LOAD( "nttab67.bin", 0x1c000, 0x4000, CRC(7e5572a1) SHA1(d957a495ad4100b857e163d7399528f62e8a39a7) ) - ROM_CONTINUE( 0x4c000, 0x4000 ) - ROM_LOAD( "nttcd01.bin", 0x20000, 0x4000, CRC(db9d6154) SHA1(8db17fda6c4113f5b791163fc9e289cf3f003a51) ) - ROM_CONTINUE( 0x50000, 0x4000 ) - ROM_LOAD( "nttcd23.bin", 0x24000, 0x4000, CRC(9d2e458f) SHA1(f08c2d7ba6be9745d13fc9dc7141ad101a8b747e) ) - ROM_CONTINUE( 0x54000, 0x4000 ) - ROM_LOAD( "nttcd45.bin", 0x28000, 0x4000, CRC(9a4b87aa) SHA1(ca82ddd4d8d40b35ba21cb9333e182b8a2e7f95e) ) - ROM_CONTINUE( 0x58000, 0x4000 ) - ROM_LOAD( "nttcd6ef.bin", 0x2c000, 0x4000, CRC(0459e6f8) SHA1(7dbdbfa8f2e9e3956af926f5f782b8d3c3334099) ) - ROM_CONTINUE( 0x5c000, 0x4000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "nttgr0.bin", 0x00000, 0x8000, CRC(6b75bb4b) SHA1(e7131d112fb0b36985c5b6383700f55728a1c4fd) ) -ROM_END - - -ROM_START( nstocker ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(a635f973) SHA1(edb12469818a3114fb97d21e11c63eb37678a07b) ) - ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(223acbb2) SHA1(195ebd349722cce323616c81cc4e86f0a9c6fa13) ) - ROM_LOAD( "ab45.u6a", 0x18000, 0x4000, CRC(27a728b5) SHA1(c72634112a04d58a695fb43bf30f44e3f7ba7de2) ) - ROM_LOAD( "ab67.u5a", 0x1c000, 0x4000, CRC(2999cdf2) SHA1(a64ae04f264ad286a87069cfb176e7511df08e78) ) - ROM_LOAD( "cd01.u4a", 0x20000, 0x4000, CRC(75e9b51a) SHA1(dbe575d37836245746ea85ffe85e8e6665ec37ea) ) - ROM_LOAD( "cd23.u3a", 0x24000, 0x4000, CRC(0a32e0a5) SHA1(dedbe08aed483bae27e1a607334e24cdfcb2f851) ) - ROM_LOAD( "cd45.u2a", 0x28000, 0x4000, CRC(9bb292fe) SHA1(6fc7abcc110c2cf7399d11a478cfdadb3439b6ab) ) - ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(e77c1aea) SHA1(9e2e595530cb15c634a6052c773ff5d998c0c828) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(fd0c38be) SHA1(b9e12e76f44f2b2b3ca6a57c58f0cbb019b1971f) ) - ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(35d4433e) SHA1(399d04c2a29d993f77d0d5c2d62915081d4a85dd) ) - ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(734b858a) SHA1(71763789807021938b840a88af34aad7f4751298) ) - ROM_LOAD( "gr67.u1c", 0x0c000, 0x4000, CRC(3311f9c0) SHA1(63b185c761b258113c31cc269ce0b1462bf37f40) ) -ROM_END - - -ROM_START( sfootbal ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "sfbab01.bin", 0x10000, 0x4000, CRC(2a69803f) SHA1(ca86c9d079fbebae4c93c889d98a8573facc05da) ) - ROM_LOAD( "sfbab23.bin", 0x14000, 0x4000, CRC(89f157c2) SHA1(59701b7770dce7ec01d0feb01d67450943e6cfbb) ) - ROM_LOAD( "sfbab45.bin", 0x18000, 0x4000, CRC(91ad42c5) SHA1(0b6fc3ed3a633c825809668d49f209c130f3e978) ) - ROM_LOAD( "sfbcd6ef.bin", 0x2c000, 0x4000, CRC(bf80bb1a) SHA1(2b70b36d946c36e3f354c7edfd3e34784ffce406) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "sfbgr01.bin", 0x00000, 0x4000, CRC(e3108d35) SHA1(05b7f1a1a18d7f72a3d3f6102cb8ab42421b7366) ) - ROM_LOAD( "sfbgr23.bin", 0x04000, 0x4000, CRC(5c5af726) SHA1(04cdd476e6689d17273659fb1fe0ca642edbe5a8) ) - ROM_LOAD( "sfbgr45.bin", 0x08000, 0x4000, CRC(e767251e) SHA1(3c05295317a673fb1de5924f27de276d2846d805) ) - ROM_LOAD( "sfbgr67.bin", 0x0c000, 0x4000, CRC(42452a7a) SHA1(37479d6e9071ac775215a6815dbaf280b3c6a57f) ) -ROM_END - - -ROM_START( spiker ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.u8a", 0x10000, 0x4000, CRC(2d53d023) SHA1(01c1d2cd7d8be60c40527e9c1571b84388a39bd8) ) - ROM_LOAD( "ab23.u7a", 0x14000, 0x4000, CRC(3be87edf) SHA1(0d4f1ff501d5d865abc3906f6b232ec04586d3dc) ) - ROM_LOAD( "cd6ef.u1a", 0x2c000, 0x4000, CRC(f2c73ece) SHA1(4fc108823102fd17c5b7d9be1a0c76667788ba1a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(0caa6e3e) SHA1(ce6765d44e444d24129ec99f04a41a866a32eee2) ) - ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(970c81f6) SHA1(f22189e172a795d115597feb48ccbc04be3859b9) ) - ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(90ddd737) SHA1(8e1dde2f42e9bf755dedeef218745d1fc54faac7) ) -ROM_END - - -ROM_START( stompin ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab01.bin", 0x10000, 0x4000, CRC(46f428c6) SHA1(06c59d06ccc0bd7067e419f12781050ab4ac98c2) ) - ROM_LOAD( "ab23.bin", 0x14000, 0x4000, CRC(0e13132f) SHA1(d572e5d170df99bb99db7d41ede881c24e5b8d1c) ) - ROM_LOAD( "ab45.bin", 0x18000, 0x4000, CRC(6ed26069) SHA1(35f6b8cff54c35a1a0eeb9c23e446ade69d13375) ) - ROM_LOAD( "ab67.bin", 0x1c000, 0x4000, CRC(7f63b516) SHA1(4ffd9dd579c8c4574f2f039b30761e901ee6dd5c) ) - ROM_LOAD( "cd23.bin", 0x24000, 0x4000, CRC(52b29048) SHA1(e0873137201ad9b2e87a17dd68046e88dbeeb5e1) ) - ROM_LOAD( "cd6ef.bin", 0x2c000, 0x4000, CRC(b880961a) SHA1(11700af516517b7176a840fd5a8fd5ed0fb9bd6e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr01.u4c", 0x00000, 0x4000, CRC(14ffdd1e) SHA1(4528548c07789f9dca2cabd2c64ea1ff8f36a99e) ) - ROM_LOAD( "gr23.u3c", 0x04000, 0x4000, CRC(761abb80) SHA1(a1278e93a4fa66cc4d347954dd45121120da568d) ) - ROM_LOAD( "gr45.u2c", 0x08000, 0x4000, CRC(0d2cf2e6) SHA1(beccb1342127e79a845c4b6b20f20052097ebb98) ) - ROM_LOAD( "gr67.u2c", 0x0c000, 0x4000, CRC(2bab2784) SHA1(a4020fd8f5ca2fdb37efd37cbccf86cae0468eb0) ) -ROM_END - - -ROM_START( rescraid ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab1.a10", 0x10000, 0x8000, CRC(33a76b47) SHA1(72cefb3ae7d0ecfc099f9d09a26533dd7ca7c4f2) ) - ROM_LOAD( "ab12.a12", 0x18000, 0x8000, CRC(7c7a9f12) SHA1(2dbe1158d124ecd24aeb6e46079a8e08fda61208) ) - ROM_LOAD( "cd8.a16", 0x20000, 0x8000, CRC(90917a43) SHA1(3abd68d0c147ed792ace41f701c04bc225efede4) ) - ROM_LOAD( "cd12.a18", 0x28000, 0x8000, CRC(0450e9d7) SHA1(b5d0a79d1bac3596d241f80ac4e3e13c98d28709) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) ) - ROM_LOAD( "gr4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) ) -ROM_END - - -ROM_START( rescrdsa ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "ab1-sa.a10", 0x10000, 0x8000, CRC(aa0a9f48) SHA1(b871573df0abdba20de78f655da846423191f0b4) ) - ROM_LOAD( "ab12-sa.a12", 0x18000, 0x8000, CRC(16d4da86) SHA1(240cfe8c5c4c005da9b9f370a04ed32fc245ec64) ) - ROM_LOAD( "cd8-sa.a16", 0x20000, 0x8000, CRC(9dfb50c2) SHA1(24280b48106cbcedeb6d7b10f951db906a123819) ) - ROM_LOAD( "cd12-sa.a18", 0x28000, 0x8000, CRC(18c62613) SHA1(a55b4b948805bdd5d1e8c8ff803826a7bbfa383e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "gr0.a5", 0x00000, 0x8000, CRC(e0dfc133) SHA1(0b120b4410098d8db26b5819043d4fe7c426b948) ) - ROM_LOAD( "gr4.a7", 0x08000, 0x8000, CRC(952ade30) SHA1(f065368f645616d6d84be469ba45a9afa8788eda) ) -ROM_END - - -ROM_START( grudge ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "grudge.ab0", 0x10000, 0x8000, CRC(260965ca) SHA1(79eb5dc6605974ece3d5564f10c4598204907398) ) - ROM_LOAD( "grudge.ab4", 0x18000, 0x8000, CRC(c6cd734d) SHA1(076546569e9c8ff40f96bd2cac014bcabc53099d) ) - ROM_LOAD( "grudge.cd0", 0x20000, 0x8000, CRC(e51db1f2) SHA1(57fc0f1df358dd6ea982dcbe9c3f79b3f072be53) ) - ROM_LOAD( "grudge.cd4", 0x28000, 0x8000, CRC(6b60e47e) SHA1(5a399942d4ef9b7349fffd07c07092b667cf6247) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x8000, REGION_GFX1, 0 ) /* up to 64k of sprites */ - ROM_LOAD( "grudge.gr0", 0x00000, 0x8000, CRC(b9681f53) SHA1(bb0c516408f1769e018f0ec8707786d4d1e9ef7e) ) -ROM_END - - -ROM_START( shrike ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus 128k of banked ROMs */ - ROM_LOAD( "savgu35.bin", 0x10000, 0x2000, CRC(dd2230a0) SHA1(72be0e07d76ee1f170ab457ae62db87111758697) ) - ROM_LOAD( "savgu20.bin", 0x12000, 0x2000, CRC(3d140edc) SHA1(6c7e7dda7718e3f9644aad317da0b2277c2c1402) ) - ROM_LOAD( "savgu34.bin", 0x14000, 0x2000, CRC(779eca9d) SHA1(6783a62885ed129f436471a1c4a93ad898eb7965) ) - ROM_LOAD( "savgu19.bin", 0x16000, 0x2000, CRC(9ec89a80) SHA1(0a862d2a58adaf6726654a9a7b1b4b13e14d4d4b) ) - ROM_LOAD( "savgu33.bin", 0x18000, 0x2000, CRC(20596f48) SHA1(11827b86d184231d3d4f82496a0bb9ac7ac874dc) ) - ROM_LOAD( "savgu18.bin", 0x1a000, 0x2000, CRC(7abc3f14) SHA1(0a18be804927181c1bc86def595b22b3249fb6a0) ) - ROM_LOAD( "savgu32.bin", 0x1c000, 0x2000, CRC(807f0a3b) SHA1(b2df2422751b32a25258134f571a5f874ebc3a09) ) - ROM_LOAD( "savgu17.bin", 0x1e000, 0x2000, CRC(e0dbf6ad) SHA1(4618723116e2d83f9a775bb8b503faea995fda1b) ) - ROM_LOAD( "savgu21.bin", 0x2c000, 0x2000, CRC(c22b93e1) SHA1(15d3925abb3e7e928925f5781f228d1bc0dfe31c) ) - ROM_LOAD( "savgu36.bin", 0x2e000, 0x2000, CRC(28431c4a) SHA1(522df8224c559f51c36d2bc01c189b019fabc5eb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for Z80 */ - ROM_LOAD( "sentesnd", 0x00000, 0x2000, CRC(4dd0a525) SHA1(f0c447adc5b67917851a9df978df851247e75c43) ) - - ROM_REGION( 0x4000, REGION_CPU3, 0 ) /* 16k for M68000 */ - ROM_LOAD16_BYTE( "savgu22.bin", 0x00000, 0x2000, CRC(c7787162) SHA1(52d8d148206c6ceb9c28ba747b301121a7790802) ) - ROM_LOAD16_BYTE( "savgu24.bin", 0x00001, 0x2000, CRC(a9105ca8) SHA1(1a94a052a4a8d221e1eafec0cd5b0ada6f1987f4) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* up to 128k of banked sprites */ - ROM_LOAD( "savgu8.bin", 0x00000, 0x2000, CRC(499a1d06) SHA1(0f3ed5ff345abb655f5a9f926ac3eb5dbca72a14) ) - ROM_LOAD( "savgu7.bin", 0x02000, 0x2000, CRC(ce0607f9) SHA1(0f6708d92e69a67b3eaba98f7ab4ad70eda3c854) ) - ROM_LOAD( "savgu6.bin", 0x04000, 0x2000, CRC(01d1b31e) SHA1(8061227f18f08e3b74bc6fc341ed4902c415db6c) ) - ROM_LOAD( "savgu5.bin", 0x06000, 0x2000, CRC(8bc6d101) SHA1(24f0b3ec3ed56b0496d07caa2475fca49a4a9b19) ) - ROM_LOAD( "savgu4.bin", 0x08000, 0x2000, CRC(72644753) SHA1(01bdb39d32df6d8cf69cbc9370033db46e18cb59) ) - ROM_LOAD( "savgu3.bin", 0x0a000, 0x2000, CRC(606a9cfd) SHA1(ce99a0e6d09580d35ec423177cdf41c35c7eecb7) ) - ROM_LOAD( "savgu2.bin", 0x0c000, 0x2000, CRC(69f600f6) SHA1(5b9545897f59b5049adc0fd910c7d65f38696d30) ) - ROM_LOAD( "savgu1.bin", 0x0e000, 0x2000, CRC(303b8e7b) SHA1(29055b621c68e93649eb0aa9cc9ecc43ac6f6eb8) ) - ROM_LOAD( "savgu16.bin", 0x10000, 0x2000, CRC(b8f60607) SHA1(4971db01a87bd80c23b7a0ab8aaa7c8300be4ec9) ) - ROM_LOAD( "savgu15.bin", 0x12000, 0x2000, CRC(6b332a5d) SHA1(58939cec237db1f741d24eb9f94488e3cf8700d2) ) - ROM_LOAD( "savgu14.bin", 0x14000, 0x2000, CRC(8d5117aa) SHA1(a82911219c49ff96e3c16acec7ef37406dae2be4) ) - ROM_LOAD( "savgu13.bin", 0x16000, 0x2000, CRC(d3ce645e) SHA1(4e775af7886d699675941f74e18be2d4dbd6f41b) ) - ROM_LOAD( "savgu12.bin", 0x18000, 0x2000, CRC(ccdfedb1) SHA1(b87e885df46e814626f46102f323ccd8396bcf8f) ) - ROM_LOAD( "savgu11.bin", 0x1a000, 0x2000, CRC(db11ff4c) SHA1(cd85486cd08ec4392421e9b94d380b81a575c811) ) - ROM_LOAD( "savgu10.bin", 0x1c000, 0x2000, CRC(6f3d9aa1) SHA1(7616dd016f5c8990b4972cf6edf758e27857aa1e) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -#define EXPAND_ALL 0x00 -#define EXPAND_NONE 0x3f -#define SWAP_HALVES 0x80 - -static void expand_roms(UINT8 cd_rom_mask) -{ - /* load AB bank data from 0x10000-0x20000 */ - /* load CD bank data from 0x20000-0x2e000 */ - /* load EF from 0x2e000-0x30000 */ - /* ROM region must be 0x40000 total */ - - UINT8 *temp = malloc_or_die(0x20000); - { - UINT8 *rom = memory_region(REGION_CPU1); - UINT32 base; - - for (base = 0x10000; base < memory_region_length(REGION_CPU1); base += 0x30000) - { - UINT8 *ab_base = &temp[0x00000]; - UINT8 *cd_base = &temp[0x10000]; - UINT8 *cd_common = &temp[0x1c000]; - UINT8 *ef_common = &temp[0x1e000]; - UINT32 dest; - - for (dest = 0x00000; dest < 0x20000; dest += 0x02000) - { - if (cd_rom_mask & SWAP_HALVES) - memcpy(&temp[dest ^ 0x02000], &rom[base + dest], 0x02000); - else - memcpy(&temp[dest], &rom[base + dest], 0x02000); - } - - memcpy(&rom[base + 0x2e000], ef_common, 0x2000); - memcpy(&rom[base + 0x2c000], cd_common, 0x2000); - memcpy(&rom[base + 0x2a000], &ab_base[0xe000], 0x2000); - - memcpy(&rom[base + 0x28000], ef_common, 0x2000); - memcpy(&rom[base + 0x26000], cd_common, 0x2000); - memcpy(&rom[base + 0x24000], &ab_base[0xc000], 0x2000); - - memcpy(&rom[base + 0x22000], ef_common, 0x2000); - memcpy(&rom[base + 0x20000], (cd_rom_mask & 0x20) ? &cd_base[0xa000] : cd_common, 0x2000); - memcpy(&rom[base + 0x1e000], &ab_base[0xa000], 0x2000); - - memcpy(&rom[base + 0x1c000], ef_common, 0x2000); - memcpy(&rom[base + 0x1a000], (cd_rom_mask & 0x10) ? &cd_base[0x8000] : cd_common, 0x2000); - memcpy(&rom[base + 0x18000], &ab_base[0x8000], 0x2000); - - memcpy(&rom[base + 0x16000], ef_common, 0x2000); - memcpy(&rom[base + 0x14000], (cd_rom_mask & 0x08) ? &cd_base[0x6000] : cd_common, 0x2000); - memcpy(&rom[base + 0x12000], &ab_base[0x6000], 0x2000); - - memcpy(&rom[base + 0x10000], ef_common, 0x2000); - memcpy(&rom[base + 0x0e000], (cd_rom_mask & 0x04) ? &cd_base[0x4000] : cd_common, 0x2000); - memcpy(&rom[base + 0x0c000], &ab_base[0x4000], 0x2000); - - memcpy(&rom[base + 0x0a000], ef_common, 0x2000); - memcpy(&rom[base + 0x08000], (cd_rom_mask & 0x02) ? &cd_base[0x2000] : cd_common, 0x2000); - memcpy(&rom[base + 0x06000], &ab_base[0x2000], 0x2000); - - memcpy(&rom[base + 0x04000], ef_common, 0x2000); - memcpy(&rom[base + 0x02000], (cd_rom_mask & 0x01) ? &cd_base[0x0000] : cd_common, 0x2000); - memcpy(&rom[base + 0x00000], &ab_base[0x0000], 0x2000); - } - - free(temp); - } -} - -static DRIVER_INIT( sentetst ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( cshift ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( gghost ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 1; } -static DRIVER_INIT( hattrick ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( otwalls ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 0; } -static DRIVER_INIT( snakepit ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 1; } -static DRIVER_INIT( snakjack ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 1; } -static DRIVER_INIT( stocker ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 0; } -static DRIVER_INIT( triviag1 ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( triviag2 ) -{ - memcpy(&memory_region(REGION_CPU1)[0x20000], &memory_region(REGION_CPU1)[0x28000], 0x4000); - memcpy(&memory_region(REGION_CPU1)[0x24000], &memory_region(REGION_CPU1)[0x28000], 0x4000); - expand_roms(EXPAND_NONE); balsente_shooter = 0; /* noanalog */ -} -static DRIVER_INIT( triviaes ) -{ - expand_roms(EXPAND_NONE | SWAP_HALVES); balsente_shooter = 0; /* noanalog */ -} -static DRIVER_INIT( gimeabrk ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 1; } -static DRIVER_INIT( minigolf ) { expand_roms(EXPAND_NONE); balsente_shooter = 0; balsente_adc_shift = 2; } -static DRIVER_INIT( minigol2 ) { expand_roms(0x0c); balsente_shooter = 0; balsente_adc_shift = 2; } -static DRIVER_INIT( toggle ) { expand_roms(EXPAND_ALL); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( nametune ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f00, 0x9f00, 0, 0, balsente_rombank2_select_w); - expand_roms(EXPAND_NONE | SWAP_HALVES); balsente_shooter = 0; /* noanalog */ -} -static DRIVER_INIT( nstocker ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9902, 0x9902, 0, 0, nstocker_port2_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f00, 0x9f00, 0, 0, balsente_rombank2_select_w); - expand_roms(EXPAND_NONE | SWAP_HALVES); balsente_shooter = 1; balsente_adc_shift = 1; -} -static DRIVER_INIT( sfootbal ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f00, 0x9f00, 0, 0, balsente_rombank2_select_w); - expand_roms(EXPAND_ALL | SWAP_HALVES); balsente_shooter = 0; balsente_adc_shift = 0; -} -static DRIVER_INIT( spiker ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f80, 0x9f8f, 0, 0, spiker_expand_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f80, 0x9f8f, 0, 0, spiker_expand_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f00, 0x9f00, 0, 0, balsente_rombank2_select_w); - expand_roms(EXPAND_ALL | SWAP_HALVES); balsente_shooter = 0; balsente_adc_shift = 1; -} -static DRIVER_INIT( stompin ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9f00, 0x9f00, 0, 0, balsente_rombank2_select_w); - expand_roms(0x0c | SWAP_HALVES); balsente_shooter = 0; balsente_adc_shift = 32; -} -static DRIVER_INIT( rescraid ) { expand_roms(EXPAND_NONE); balsente_shooter = 0; /* noanalog */ } -static DRIVER_INIT( grudge ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9400, 0x9400, 0, 0, grudge_steering_r); - expand_roms(EXPAND_NONE); balsente_shooter = 0; -} -static DRIVER_INIT( shrike ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9e00, 0x9fff, 0, 0, shrike_shared_6809_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9e00, 0x9fff, 0, 0, shrike_shared_6809_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9e01, 0x9e01, 0, 0, shrike_sprite_select_w ); - memory_install_read16_handler(2, ADDRESS_SPACE_PROGRAM, 0x10000, 0x1001f, 0, 0, shrike_io_68k_r); - memory_install_write16_handler(2, ADDRESS_SPACE_PROGRAM, 0x10000, 0x1001f, 0, 0, shrike_io_68k_w ); - - expand_roms(EXPAND_ALL); balsente_shooter = 0; balsente_adc_shift = 32; -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1984, sentetst, 0, balsente, sentetst, sentetst, ROT0, "Bally/Sente", "Sente Diagnostic Cartridge", GAME_SUPPORTS_SAVE ) -GAME( 1984, cshift, 0, balsente, cshift, cshift, ROT0, "Bally/Sente", "Chicken Shift", GAME_SUPPORTS_SAVE ) -GAME( 1984, gghost, 0, balsente, gghost, gghost, ROT0, "Bally/Sente", "Goalie Ghost", GAME_SUPPORTS_SAVE ) -GAME( 1984, hattrick, 0, balsente, hattrick, hattrick, ROT0, "Bally/Sente", "Hat Trick", GAME_SUPPORTS_SAVE ) -GAME( 1984, otwalls, 0, balsente, otwalls, otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente)", GAME_SUPPORTS_SAVE ) -GAME( 1984, snakepit, 0, balsente, snakepit, snakepit, ROT0, "Bally/Sente", "Snake Pit", GAME_SUPPORTS_SAVE ) -GAME( 1984, snakjack, 0, balsente, snakjack, snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", GAME_SUPPORTS_SAVE ) -GAME( 1984, stocker, 0, balsente, stocker, stocker, ROT0, "Bally/Sente", "Stocker", GAME_SUPPORTS_SAVE ) -GAME( 1984, triviag1, 0, balsente, triviag1, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Genus I)", GAME_SUPPORTS_SAVE ) -GAME( 1984, triviag2, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II)", GAME_SUPPORTS_SAVE ) -GAME( 1984, triviasp, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", GAME_SUPPORTS_SAVE ) -GAME( 1984, triviayp, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition)", GAME_SUPPORTS_SAVE ) -GAME( 1984, triviabb, 0, balsente, triviag1, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition)", GAME_SUPPORTS_SAVE ) -GAME( 1987, triviaes, 0, balsente, triviaes, triviaes, ROT0, "Bally/Sente", "Trivial Pursuit (Spanish Edition)", GAME_SUPPORTS_SAVE ) -GAME( 1985, gimeabrk, 0, balsente, gimeabrk, gimeabrk, ROT0, "Bally/Sente", "Gimme A Break", GAME_SUPPORTS_SAVE ) -GAME( 1985, minigolf, 0, balsente, minigolf, minigolf, ROT0, "Bally/Sente", "Mini Golf (set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1985, minigol2, minigolf, balsente, minigol2, minigol2, ROT0, "Bally/Sente", "Mini Golf (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1985, toggle, 0, balsente, toggle, toggle, ROT0, "Bally/Sente", "Toggle (prototype)", GAME_SUPPORTS_SAVE ) -GAME( 1986, nametune, 0, balsente, nametune, nametune, ROT0, "Bally/Sente", "Name That Tune", GAME_SUPPORTS_SAVE ) -GAME( 1986, nstocker, 0, balsente, nstocker, nstocker, ROT0, "Bally/Sente", "Night Stocker", GAME_SUPPORTS_SAVE ) -GAME( 1986, sfootbal, 0, balsente, sfootbal, sfootbal, ROT0, "Bally/Sente", "Street Football", GAME_SUPPORTS_SAVE ) -GAME( 1986, spiker, 0, balsente, spiker, spiker, ROT0, "Bally/Sente", "Spiker", GAME_SUPPORTS_SAVE ) -GAME( 1986, stompin, 0, balsente, stompin, stompin, ROT0, "Bally/Sente", "Stompin'", GAME_SUPPORTS_SAVE ) -GAME( 1987, rescraid, 0, balsente, rescraid, rescraid, ROT0, "Bally/Midway", "Rescue Raider", GAME_SUPPORTS_SAVE ) -GAME( 1987, rescrdsa, rescraid, balsente, rescraid, rescraid, ROT0, "Bally/Midway", "Rescue Raider (Stand-Alone)", GAME_SUPPORTS_SAVE ) -GAME( 198?, grudge, 0, balsente, grudge, grudge, ROT0, "Bally/Midway", "Grudge Match (prototype)", GAME_SUPPORTS_SAVE ) -GAME( 198?, shrike, 0, shrike, shrike, shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/battlnts.c b/src/drivers/battlnts.c deleted file mode 100644 index d96927ac0..000000000 --- a/src/drivers/battlnts.c +++ /dev/null @@ -1,494 +0,0 @@ -/*************************************************************************** - -Konami Battlantis Hardware - -Supports: - GX765 - Rack 'em Up/The Hustler (c) 1987 Konami - GX777 - Battlantis (c) 1987 Konami - -Preliminary driver by: Manuel Abadia - -***************************************************************************/ - -#include "driver.h" -#include "cpu/hd6309/hd6309.h" -#include "cpu/z80/z80.h" -#include "vidhrdw/konamiic.h" -#include "sound/3812intf.h" - -/* from vidhrdw */ -WRITE8_HANDLER( battlnts_spritebank_w ); -VIDEO_START( battlnts ); -VIDEO_UPDATE( battlnts ); - -static INTERRUPT_GEN( battlnts_interrupt ) -{ - if (K007342_is_INT_enabled()) - cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); -} - -WRITE8_HANDLER( battlnts_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1, 0, HOLD_LINE, 0xff); -} - -static WRITE8_HANDLER( battlnts_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bankaddress; - - /* bits 6 & 7 = bank number */ - bankaddress = 0x10000 + ((data & 0xc0) >> 6) * 0x4000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* bits 4 & 5 = coin counters */ - coin_counter_w(0,data & 0x10); - coin_counter_w(1,data & 0x20); - - /* other bits unknown */ -} - -static ADDRESS_MAP_START( battlnts_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(K007342_r) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_READ(K007420_r) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_READ(K007342_scroll_r) /* Scroll RAM */ - AM_RANGE(0x2400, 0x24ff) AM_READ(paletteram_r) /* Palette */ - AM_RANGE(0x2e00, 0x2e00) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x2e01, 0x2e01) AM_READ(input_port_4_r) /* 2P controls */ - AM_RANGE(0x2e02, 0x2e02) AM_READ(input_port_3_r) /* 1P controls */ - AM_RANGE(0x2e03, 0x2e03) AM_READ(input_port_2_r) /* coinsw, testsw, startsw */ - AM_RANGE(0x2e04, 0x2e04) AM_READ(input_port_1_r) /* DISPW #2 */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM 777e02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlnts_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(K007342_w) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_WRITE(K007420_w) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_WRITE(K007342_scroll_w) /* Scroll RAM */ - AM_RANGE(0x2400, 0x24ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ - AM_RANGE(0x2e08, 0x2e08) AM_WRITE(battlnts_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x2e0c, 0x2e0c) AM_WRITE(battlnts_spritebank_w) /* sprite bank select */ - AM_RANGE(0x2e10, 0x2e10) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x2e14, 0x2e14) AM_WRITE(soundlatch_w) /* sound code # */ - AM_RANGE(0x2e18, 0x2e18) AM_WRITE(battlnts_sh_irqtrigger_w)/* cause interrupt on audio CPU */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM 777e02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlnts_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM 777c01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_READ(YM3812_status_port_0_r) /* YM3812 (chip 1) */ - AM_RANGE(0xc000, 0xc000) AM_READ(YM3812_status_port_1_r) /* YM3812 (chip 2) */ - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlnts_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM 777c01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM3812_control_port_0_w) /* YM3812 (chip 1) */ - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM3812_write_port_0_w) /* YM3812 (chip 1) */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM3812_control_port_1_w) /* YM3812 (chip 2) */ - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM3812_write_port_1_w) /* YM3812 (chip 2) */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( battlnts ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "30k and every 70k" ) - PORT_DIPSETTING( 0x10, "40k and every 80k" ) - PORT_DIPSETTING( 0x08, "40k" ) - PORT_DIPSETTING( 0x00, "50k" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Upright Controls" ) - PORT_DIPSETTING( 0x40, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, "Continue limit" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( thehustj ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, "Balls" ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8 x 8 characters */ - 0x40000/32, /* 8192 characters */ - 4, /* 4bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every character takes 32 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 8,8, /* 8*8 sprites */ - 0x40000/32, /* 8192 sprites */ - 4, /* 4 bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /* colors 0-15 */ - { REGION_GFX2, 0, &spritelayout, 4*16, 1 }, /* colors 64-79 */ - { -1 } /* end of array */ -}; - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static MACHINE_DRIVER_START( battlnts ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(battlnts_readmem,battlnts_writemem) - MDRV_CPU_VBLANK_INT(battlnts_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(battlnts_readmem_sound,battlnts_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - - MDRV_VIDEO_START(battlnts) - MDRV_VIDEO_UPDATE(battlnts) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 3000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(YM3812, 3000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( battlnts ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "777_g02.7e", 0x08000, 0x08000, CRC(dbd8e17e) SHA1(586a22b714011c67a915c4a350ceca19ff875635) ) /* fixed ROM */ - ROM_LOAD( "777_g03.8e", 0x10000, 0x10000, CRC(7bd44fef) SHA1(308ec5246f5537b34e368535672ac687f456750a) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "777_c01.10a", 0x00000, 0x08000, CRC(c21206e9) SHA1(7b133e04be67dc061a186ab0481d848b69b370d7) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "777_c04.13a", 0x00000, 0x40000, CRC(45d92347) SHA1(8537b4ccd0a80ea3260ef82fde177f1d65a49c03) ) /* tiles */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "777_c05.13e", 0x00000, 0x40000, CRC(aeee778c) SHA1(fc58ada9c97361d13439b7b0918c947d48402445) ) /* sprites */ -ROM_END - -ROM_START( battlntj ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "777_e02.7e", 0x08000, 0x08000, CRC(d631cfcb) SHA1(7787da0dd8cd218abc27204e517e04d7a1913a3b) ) /* fixed ROM */ - ROM_LOAD( "777_e03.8e", 0x10000, 0x10000, CRC(5ef1f4ef) SHA1(e3e6e1fc5a65328d94c23e2e76eef3504b70e58b) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "777_c01.10a", 0x00000, 0x08000, CRC(c21206e9) SHA1(7b133e04be67dc061a186ab0481d848b69b370d7) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "777_c04.13a", 0x00000, 0x40000, CRC(45d92347) SHA1(8537b4ccd0a80ea3260ef82fde177f1d65a49c03) ) /* tiles */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "777_c05.13e", 0x00000, 0x40000, CRC(aeee778c) SHA1(fc58ada9c97361d13439b7b0918c947d48402445) ) /* sprites */ -ROM_END - -ROM_START( rackemup ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "765_l02.7e", 0x08000, 0x08000, CRC(3dfc48bd) SHA1(9ba98e9f27dd0a6efec145bea2a5ae7df8567437) ) /* fixed ROM */ - ROM_LOAD( "765_j03.8e", 0x10000, 0x10000, CRC(a13fd751) SHA1(27ec66835c85b7ac0221a813d38e9cca0d9be3b8) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "765_j01.10a", 0x00000, 0x08000, CRC(77ae753e) SHA1(9e463a825d31bb79644b083d24b25670d96441c5) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "765_l04.13a", 0x00000, 0x40000, CRC(acfbeee2) SHA1(c2bf750892ba33d4610fa4497170f49c101ed4c1) ) /* tiles */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "765_l05.13e", 0x00000, 0x40000, CRC(1bb6855f) SHA1(251081564dfede8fa9a422081d58465fe5ca4ed1) ) /* sprites */ -ROM_END - -ROM_START( thehustl ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "765_m02.7e", 0x08000, 0x08000, CRC(934807b9) SHA1(84e13a5c1587ee28330f369f9a1180219edbda9d) ) /* fixed ROM */ - ROM_LOAD( "765_j03.8e", 0x10000, 0x10000, CRC(a13fd751) SHA1(27ec66835c85b7ac0221a813d38e9cca0d9be3b8) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "765_j01.10a", 0x00000, 0x08000, CRC(77ae753e) SHA1(9e463a825d31bb79644b083d24b25670d96441c5) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "765_e04.13a", 0x00000, 0x40000, CRC(08c2b72e) SHA1(02d9c690da839d6fee75fffdf66a4d3da35a0263) ) /* tiles */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "765_e05.13e", 0x00000, 0x40000, CRC(ef044655) SHA1(c8272283eab8fc2899979da398819cb72c92a299) ) /* sprites */ -ROM_END - -ROM_START( thehustj ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "765_j02.7e", 0x08000, 0x08000, CRC(2ac14c75) SHA1(b88f6279ab88719f4207e28486a0022554668382) ) /* fixed ROM */ - ROM_LOAD( "765_j03.8e", 0x10000, 0x10000, CRC(a13fd751) SHA1(27ec66835c85b7ac0221a813d38e9cca0d9be3b8) ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "765_j01.10a", 0x00000, 0x08000, CRC(77ae753e) SHA1(9e463a825d31bb79644b083d24b25670d96441c5) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "765_e04.13a", 0x00000, 0x40000, CRC(08c2b72e) SHA1(02d9c690da839d6fee75fffdf66a4d3da35a0263) ) /* tiles */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "765_e05.13e", 0x00000, 0x40000, CRC(ef044655) SHA1(c8272283eab8fc2899979da398819cb72c92a299) ) /* sprites */ -ROM_END - - -/* - This recursive function doesn't use additional memory - (it could be easily converted into an iterative one). - It's called shuffle because it mimics the shuffling of a deck of cards. -*/ -static void shuffle(UINT8 *buf,int len) -{ - int i; - UINT8 t; - - if (len == 2) return; - - if (len % 4) fatalerror("shuffle() - not modulo 4"); /* must not happen */ - - len /= 2; - - for (i = 0;i < len/2;i++) - { - t = buf[len/2 + i]; - buf[len/2 + i] = buf[len + i]; - buf[len + i] = t; - } - - shuffle(buf,len); - shuffle(buf + len,len); -} - - -static DRIVER_INIT( rackemup ) -{ - /* rearrange char ROM */ - shuffle(memory_region(REGION_GFX1),memory_region_length(REGION_GFX1)); -} - - - -GAME( 1987, battlnts, 0, battlnts, battlnts, 0, ROT90, "Konami", "Battlantis", 0 ) -GAME( 1987, battlntj, battlnts, battlnts, battlnts, 0, ROT90, "Konami", "Battlantis (Japan)", 0 ) -GAME( 1987, rackemup, 0, battlnts, thehustj, rackemup, ROT90, "Konami", "Rack 'em Up", GAME_NO_COCKTAIL ) -GAME( 1987, thehustl, rackemup, battlnts, thehustj, 0, ROT90, "Konami", "The Hustler (Japan version M)", GAME_NO_COCKTAIL ) -GAME( 1987, thehustj, rackemup, battlnts, thehustj, 0, ROT90, "Konami", "The Hustler (Japan version J)", GAME_NO_COCKTAIL ) - diff --git a/src/drivers/berzerk.c b/src/drivers/berzerk.c deleted file mode 100644 index af37bc4df..000000000 --- a/src/drivers/berzerk.c +++ /dev/null @@ -1,414 +0,0 @@ -/*************************************************************************** - - Berzerk Driver by Zsolt Vasvari - Sound Driver by Alex Judd - -***************************************************************************/ - -#include "driver.h" -#include "includes/berzerk.h" -#include "includes/exidy.h" -#include "sound/s14001a.h" - -static ADDRESS_MAP_START( berzerk_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0800, 0x09ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x1000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(MRA8_RAM,berzerk_videoram_w) AM_BASE(&videoram) AM_SHARE(1) - AM_RANGE(0x6000, 0x7fff) AM_READWRITE(MRA8_RAM,berzerk_magicram_w) AM_SHARE(1) - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(MRA8_RAM,berzerk_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( frenzy_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x5fff) AM_READWRITE(MRA8_RAM,berzerk_videoram_w) AM_BASE(&videoram) AM_SHARE(1) - AM_RANGE(0x6000, 0x7fff) AM_READWRITE(MRA8_RAM,berzerk_magicram_w) AM_SHARE(1) - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(MRA8_RAM,berzerk_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xc000, 0xcfff) AM_ROM - AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x40, 0x47) AM_READWRITE(berzerk_sound_r,berzerk_sound_w) /* First sound board */ - AM_RANGE(0x48, 0x48) AM_READ(input_port_0_r) - AM_RANGE(0x49, 0x49) AM_READ(input_port_1_r) - AM_RANGE(0x4a, 0x4a) AM_READ(input_port_2_r) - AM_RANGE(0x4b, 0x4b) AM_WRITE(berzerk_magicram_control_w) - AM_RANGE(0x4c, 0x4c) AM_READWRITE(berzerk_nmi_enable_r,berzerk_nmi_enable_w) - AM_RANGE(0x4d, 0x4d) AM_READWRITE(berzerk_nmi_disable_r,berzerk_nmi_disable_w) - AM_RANGE(0x4e, 0x4e) AM_READ(berzerk_port_4e_r) - AM_RANGE(0x4f, 0x4f) AM_WRITE(berzerk_irq_enable_w) - AM_RANGE(0x50, 0x57) AM_WRITE(MWA8_NOP) /* Second sound board but not used */ - AM_RANGE(0x60, 0x60) AM_READ(input_port_4_r) - AM_RANGE(0x61, 0x61) AM_READ(input_port_5_r) - AM_RANGE(0x62, 0x62) AM_READ(input_port_6_r) - AM_RANGE(0x63, 0x63) AM_READ(input_port_7_r) - AM_RANGE(0x64, 0x64) AM_READ(input_port_8_r) - AM_RANGE(0x65, 0x65) AM_READ(input_port_9_r) - AM_RANGE(0x66, 0x66) AM_READ(berzerk_led_off_r) - AM_RANGE(0x67, 0x67) AM_READ(berzerk_led_on_r) -ADDRESS_MAP_END - - -#define COINAGE(CHUTE) \ - PORT_DIPNAME( 0x0f, 0x00, "Coin "#CHUTE ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x0d, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x0e, DEF_STR( 4C_5C ) ) \ - PORT_DIPSETTING( 0x0a, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 4C_7C ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_7C ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) \ - PORT_DIPSETTING( 0x07, "1 Coin/10 Credits" ) \ - PORT_DIPSETTING( 0x08, "1 Coin/14 Credits" ) \ - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - -INPUT_PORTS_START( berzerk ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Collision */ - - PORT_START /* IN4 */ - PORT_BIT( 0x01, 0x00, IPT_DIPSWITCH_NAME ) PORT_NAME("Input Test Mode") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, 0x00, IPT_DIPSWITCH_NAME ) PORT_NAME("Crosshair Pattern") PORT_CODE(KEYCODE_F4) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( German ) ) - PORT_DIPSETTING( 0x80, DEF_STR( French ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Spanish ) ) - - PORT_START /* IN5 */ - PORT_BIT( 0x03, 0x00, IPT_DIPSWITCH_NAME ) PORT_NAME("Color Test") PORT_CODE(KEYCODE_F5) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x03, DEF_STR( On ) ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0xc0, "5000 and 10000" ) - PORT_DIPSETTING( 0x40, "5000" ) - PORT_DIPSETTING( 0x80, "10000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - - PORT_START /* IN6 */ - COINAGE(3) - - PORT_START /* IN7 */ - COINAGE(2) - - PORT_START /* IN8 */ - COINAGE(1) - - PORT_START /* IN9 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Stats") PORT_CODE(KEYCODE_F1) -INPUT_PORTS_END - -INPUT_PORTS_START( frenzy ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* IN3 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Collision */ - - PORT_START /* IN4 */ - PORT_DIPNAME( 0x0f, 0x03, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x01, "1000" ) - PORT_DIPSETTING( 0x02, "2000" ) - PORT_DIPSETTING( 0x03, "3000" ) - PORT_DIPSETTING( 0x04, "4000" ) - PORT_DIPSETTING( 0x05, "5000" ) - PORT_DIPSETTING( 0x06, "6000" ) - PORT_DIPSETTING( 0x07, "7000" ) - PORT_DIPSETTING( 0x08, "8000" ) - PORT_DIPSETTING( 0x09, "9000" ) - PORT_DIPSETTING( 0x0a, "10000" ) - PORT_DIPSETTING( 0x0b, "11000" ) - PORT_DIPSETTING( 0x0c, "12000" ) - PORT_DIPSETTING( 0x0d, "13000" ) - PORT_DIPSETTING( 0x0e, "14000" ) - PORT_DIPSETTING( 0x0f, "15000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( German ) ) - PORT_DIPSETTING( 0x80, DEF_STR( French ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Spanish ) ) - - PORT_START /* IN5 */ - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Bit 0 does some more hardware tests */ - PORT_BIT( 0x04, 0x00, IPT_DIPSWITCH_NAME ) PORT_NAME("Input Test Mode") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, 0x00, IPT_DIPSWITCH_NAME ) PORT_NAME("Crosshair Pattern") PORT_CODE(KEYCODE_F4) PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* The following 3 ports use all 8 bits, but I didn't feel like adding all 256 values :-) */ - PORT_START /* IN6 */ - PORT_DIPNAME( 0x0f, 0x01, "Coins/Credit B" ) - /*PORT_DIPSETTING( 0x00, "0" ) Can't insert coins */ - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x05, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPSETTING( 0x07, "7" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPSETTING( 0x09, "9" ) - PORT_DIPSETTING( 0x0a, "10" ) - PORT_DIPSETTING( 0x0b, "11" ) - PORT_DIPSETTING( 0x0c, "12" ) - PORT_DIPSETTING( 0x0d, "13" ) - PORT_DIPSETTING( 0x0e, "14" ) - PORT_DIPSETTING( 0x0f, "15" ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN7 */ - PORT_DIPNAME( 0x0f, 0x01, "Coins/Credit A" ) - /*PORT_DIPSETTING( 0x00, "0" ) Can't insert coins */ - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x05, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPSETTING( 0x07, "7" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPSETTING( 0x09, "9" ) - PORT_DIPSETTING( 0x0a, "10" ) - PORT_DIPSETTING( 0x0b, "11" ) - PORT_DIPSETTING( 0x0c, "12" ) - PORT_DIPSETTING( 0x0d, "13" ) - PORT_DIPSETTING( 0x0e, "14" ) - PORT_DIPSETTING( 0x0f, "15" ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN8 */ - PORT_DIPNAME( 0x0f, 0x01, "Coin Multiplier" ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x05, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPSETTING( 0x07, "7" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPSETTING( 0x09, "9" ) - PORT_DIPSETTING( 0x0a, "10" ) - PORT_DIPSETTING( 0x0b, "11" ) - PORT_DIPSETTING( 0x0c, "12" ) - PORT_DIPSETTING( 0x0d, "13" ) - PORT_DIPSETTING( 0x0e, "14" ) - PORT_DIPSETTING( 0x0f, "15" ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN9 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Stats") PORT_CODE(KEYCODE_F1) -INPUT_PORTS_END - -static struct S14001A_interface berzerk_s14001a_interface = -{ - REGION_SOUND1 /* where to find the voice data */ -}; - -static struct CustomSound_interface custom_interface = -{ - berzerk_sh_start -}; - - -static MACHINE_DRIVER_START( berzerk ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 10000000/4) /* 2.5 MHz */ - MDRV_CPU_PROGRAM_MAP(berzerk_map,0) - MDRV_CPU_IO_MAP(port_map,0) - MDRV_CPU_VBLANK_INT(berzerk_interrupt,8) - - MDRV_MACHINE_RESET(berzerk) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2500) /* Needs to be long enough so 2 of the 8 */) - /* interrupts fall inside the VBLANK */ - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 32, 256-1) - - MDRV_PALETTE_LENGTH(16) - - MDRV_PALETTE_INIT(berzerk) - MDRV_VIDEO_START(berzerk) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(S14001A, 5000000) /* CPU clock divided by 16 divided by a programmable TTL setup */ - MDRV_SOUND_CONFIG(berzerk_s14001a_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( frenzy ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(berzerk) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(frenzy_map,0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( berzerk ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1c-0", 0x0000, 0x0800, CRC(ca566dbc) SHA1(fae2647f12f1cd82826db61b53b116a5e0c9f995) ) - ROM_LOAD( "1d-1", 0x1000, 0x0800, CRC(7ba69fde) SHA1(69af170c4a39a3494dcd180737e5c87b455f9203) ) - ROM_LOAD( "3d-2", 0x1800, 0x0800, CRC(a1d5248b) SHA1(a0b7842f6a5f86c16d80d78e7012c78b3ea11d1d) ) - ROM_LOAD( "5d-3", 0x2000, 0x0800, CRC(fcaefa95) SHA1(07f849aa39f1e3db938187ffde4a46a588156ddc) ) - ROM_LOAD( "6d-4", 0x2800, 0x0800, CRC(1e35b9a0) SHA1(5a5e549ec0e4803ab2d1eac6b3e7171aedf28244) ) - ROM_LOAD( "5c-5", 0x3000, 0x0800, CRC(c8c665e5) SHA1(e9eca4b119549e0061384abf52327c14b0d56624) ) - ROM_FILL( 0x3800, 0x0800, 0xff ) - - ROM_REGION( 0x01000, REGION_SOUND1, 0 ) /* voice data */ - ROM_LOAD( "1c", 0x0000, 0x0800, CRC(2cfe825d) SHA1(f12fed8712f20fa8213f606c4049a8144bfea42e) ) /* VSU-1000 board */ - ROM_LOAD( "2c", 0x0800, 0x0800, CRC(d2b6324e) SHA1(20a6611ad6ec19409ac138bdae7bdfaeab6c47cf) ) -ROM_END - -ROM_START( berzerk1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "rom0.1c", 0x0000, 0x0800, CRC(5b7eb77d) SHA1(8de488e279036fe40d6fb4c0dde16075309342fd) ) - ROM_LOAD( "rom1.1d", 0x1000, 0x0800, CRC(e58c8678) SHA1(a11f08448b457d690b270512c9f02fcf1e41d9e0) ) - ROM_LOAD( "rom2.3d", 0x1800, 0x0800, CRC(705bb339) SHA1(845191df90cd7d80f8fed3d2b69305301d921549) ) - ROM_LOAD( "rom3.5d", 0x2000, 0x0800, CRC(6a1936b4) SHA1(f1635e9d2f25514c35559d2a247c3bc4b4034c19) ) - ROM_LOAD( "rom4.6d", 0x2800, 0x0800, CRC(fa5dce40) SHA1(b3a3ee52bf65bbb3a20f905d3e4ebdf6871dcb5d) ) - ROM_LOAD( "rom5.5c", 0x3000, 0x0800, CRC(2579b9f4) SHA1(890f0237afbb194166eae88c98de81989f408548) ) - ROM_FILL( 0x3800, 0x0800, 0xff ) - - ROM_REGION( 0x01000, REGION_SOUND1, 0 ) /* voice data */ - ROM_LOAD( "1c", 0x0000, 0x0800, CRC(2cfe825d) SHA1(f12fed8712f20fa8213f606c4049a8144bfea42e) ) /* VSU-1000 board */ - ROM_LOAD( "2c", 0x0800, 0x0800, CRC(d2b6324e) SHA1(20a6611ad6ec19409ac138bdae7bdfaeab6c47cf) ) -ROM_END - -ROM_START( frenzy ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "1c-0", 0x0000, 0x1000, CRC(abdd25b8) SHA1(e6a3ab826b51b2c6ddd63d55681848fccad800dd) ) - ROM_LOAD( "1d-1", 0x1000, 0x1000, CRC(536e4ae8) SHA1(913385c43b8902d3d3ad2194a3137e19e61c6573) ) - ROM_LOAD( "3d-2", 0x2000, 0x1000, CRC(3eb9bc9b) SHA1(1e43e76ae0606a6d41d9006005d6001bdee48694) ) - ROM_LOAD( "5d-3", 0x3000, 0x1000, CRC(e1d3133c) SHA1(2af4a9bc2b29735a548ae770f872127bc009cc42) ) - ROM_LOAD( "6d-4", 0xc000, 0x1000, CRC(5581a7b1) SHA1(1f633c1c29d3b64f701c601feba26da66a6c6f23) ) - - ROM_REGION( 0x01000, REGION_SOUND1, 0 ) /* voice data */ - ROM_LOAD( "1c", 0x0000, 0x0800, CRC(2cfe825d) SHA1(f12fed8712f20fa8213f606c4049a8144bfea42e) ) /* VSU-1000 board */ - ROM_LOAD( "2c", 0x0800, 0x0800, CRC(d2b6324e) SHA1(20a6611ad6ec19409ac138bdae7bdfaeab6c47cf) ) -ROM_END - -/* - The original / prototype version of moon war appears to run on Frenzy hardware, however the only board found - had been stripped for parts, leaving only the sound ROMs. - - The more common version of Moon War runs on modified Super Cobra (scobra.c) hardware and is often called - 'Moon War 2' because it is the second version, and many of the PCBs are labeled as such -*/ -ROM_START( moonwarp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "code_roms", 0x0000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x01000, REGION_SOUND1, 0 ) /* voice data */ - ROM_LOAD( "moonwar.1c.bin", 0x0000, 0x0800, CRC(9e9a653f) SHA1(cf49a38ef343ace271ba1e5dde38bd8b9c0bd876) ) /* VSU-1000 board */ - ROM_LOAD( "moonwar.2c.bin", 0x0800, 0x0800, CRC(73fd988d) SHA1(08a2aeb4d87eee58e38e4e3f749a95f2308aceb0) ) -ROM_END - - -GAME( 1980, berzerk, 0, berzerk, berzerk, 0, ROT0, "Stern", "Berzerk (set 1)", 0 ) -GAME( 1980, berzerk1, berzerk, berzerk, berzerk, 0, ROT0, "Stern", "Berzerk (set 2)", 0 ) -GAME( 1982, frenzy, 0, frenzy, frenzy, 0, ROT0, "Stern", "Frenzy", 0 ) -GAME( 1981, moonwarp, 0, frenzy, frenzy, 0, ROT0, "Stern", "Moon War (prototype on Frenzy hardware)", GAME_NOT_WORKING ) diff --git a/src/drivers/bishi.c b/src/drivers/bishi.c deleted file mode 100644 index af40b9356..000000000 --- a/src/drivers/bishi.c +++ /dev/null @@ -1,346 +0,0 @@ -/*************************************************************************** - - Bishi Bashi Champ Mini Game Senshuken - (c) 1996 Konami - - Driver by R. Belmont - - WORKING: ram/rom test passes, IRQs, sound/music, inputs, colors. - TODO: "bishi" needs a ROM redumped, K056832 needs per-tile priority - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "sound/ymz280b.h" - -VIDEO_START(bishi); -VIDEO_UPDATE(bishi); - -static UINT16 cur_control, cur_control2; - -static MACHINE_START( bishi ) -{ - state_save_register_global(cur_control); - state_save_register_global(cur_control2); - return 0; -} - - -static READ16_HANDLER( control_r ) -{ - return cur_control; -} - -static WRITE16_HANDLER( control_w ) -{ - // bit 8 = interrupt gate - COMBINE_DATA(&cur_control); -} - -static WRITE16_HANDLER( control2_w ) -{ - // bit 12 = part of the banking calculation for the K056832 ROM readback - COMBINE_DATA(&cur_control2); -} - -static INTERRUPT_GEN(bishi_interrupt) -{ - if (cur_control & 0x800) - { - switch (cpu_getiloops()) - { - case 0: - cpunum_set_input_line(0, MC68000_IRQ_3, HOLD_LINE); - break; - - case 1: - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); - break; - } - } -} - -/* compensate for a bug in the ram/rom test */ -static READ16_HANDLER( bishi_mirror_r ) -{ - return paletteram16[offset]; -} - -static READ16_HANDLER( bishi_sound_r ) -{ - return YMZ280B_status_0_r(offset)<<8; -} - -static WRITE16_HANDLER( bishi_sound_w ) -{ - if (offset) - { - YMZ280B_data_0_w(offset, data>>8); - } - else - { - YMZ280B_register_0_w(offset, data>>8); - } -} - -static READ16_HANDLER( dipsw_r ) // dips -{ - return input_port_1_r(0) | (input_port_5_r(0)<<8); -} - -static READ16_HANDLER( player1_r ) // players 1 and 3 -{ - return 0xff | (input_port_2_r(0)<<8); -} - -static READ16_HANDLER( player2_r ) // players 2 and 4 -{ - return input_port_3_r(0) | (input_port_4_r(0)<<8); -} - -static READ16_HANDLER( bishi_K056832_rom_r ) -{ - UINT16 ouroffs; - - ouroffs = (offset>>1)*8; - if (offset&1) - { - ouroffs++; - } - - if (cur_control2 & 0x1000) - { - ouroffs += 4; - } - - return K056832_bishi_rom_word_r(ouroffs, mem_mask); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM) // work RAM - AM_RANGE(0x800000, 0x800001) AM_READ(control_r) - AM_RANGE(0x800004, 0x800005) AM_READ(dipsw_r) - AM_RANGE(0x800006, 0x800007) AM_READ(player1_r) - AM_RANGE(0x800008, 0x800009) AM_READ(player2_r) - AM_RANGE(0x880000, 0x880003) AM_READ(bishi_sound_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(K056832_ram_word_r) // VRAM - AM_RANGE(0xb00000, 0xb03fff) AM_READ(MRA16_RAM) - AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test? - AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x800000, 0x800001) AM_WRITE(control_w) - AM_RANGE(0x810000, 0x810003) AM_WRITE(control2_w) // bank switch for K056832 character ROM test - AM_RANGE(0x820000, 0x820001) AM_WRITE(MWA16_NOP) // lamps (see lamp test in service menu) - AM_RANGE(0x830000, 0x83003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x840000, 0x840007) AM_WRITE(K056832_b_word_w) // VSCCS - AM_RANGE(0x850000, 0x85001f) AM_WRITE(K054338_word_w) // CLTC - AM_RANGE(0x870000, 0x8700ff) AM_WRITE(K055555_word_w) // PCU2 - AM_RANGE(0x880000, 0x880003) AM_WRITE(bishi_sound_w) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */ - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(paletteram16_xbgr_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -INPUT_PORTS_START( bishi ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x03, "Medium Hard" ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x38, 0x28, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x38, "1" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x28, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x18, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x08, "7" ) - PORT_DIPSETTING( 0x00, "8" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0xc0, "All The Time" ) - PORT_DIPSETTING( 0x80, "Loop At 2 Times" ) - PORT_DIPSETTING( 0x40, "Loop At 4 Times" ) - PORT_DIPSETTING( 0x00, "No Sounds" ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE(0x40, IP_ACTIVE_LOW) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play )) - PORT_DIPSETTING( 0x10, DEF_STR(No)) - PORT_DIPSETTING( 0x00, DEF_STR(Yes)) - PORT_DIPNAME( 0x20, 0x20, "Slack Difficulty") - PORT_DIPSETTING( 0x20, DEF_STR(Off)) - PORT_DIPSETTING( 0x00, DEF_STR(On)) - PORT_DIPNAME( 0x40, 0x00, "Title Demo") - PORT_DIPSETTING( 0x40, "At 1 Loop") - PORT_DIPSETTING( 0x00, "At Every Gamedemo") - PORT_DIPNAME( 0x80, 0x00, "Gamedemo") - PORT_DIPSETTING( 0x80, "4 Kinds") - PORT_DIPSETTING( 0x00, "7 Kinds") -INPUT_PORTS_END - -static MACHINE_RESET( bishi ) -{ -} - -static void sound_irq_gen(int state) -{ - if (state) - cpunum_set_input_line(0, MC68000_IRQ_1, ASSERT_LINE); - else - cpunum_set_input_line(0, MC68000_IRQ_1, CLEAR_LINE); -} - -static struct YMZ280Binterface ymz280b_intf = -{ - REGION_SOUND1, - sound_irq_gen -}; - -static MACHINE_DRIVER_START( bishi ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(bishi_interrupt, 2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1200)) - - MDRV_MACHINE_START(bishi) - MDRV_MACHINE_RESET(bishi) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1) - - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(bishi) - MDRV_VIDEO_UPDATE(bishi) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -// ROM definitions - - -ROM_START( bishi ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "575jaa05.12f", 0x000000, 0x80000, CRC(7d354567) SHA1(7fc11585693c91c0ef7a8e00df4f2f01b356210f) ) - ROM_LOAD16_WORD_SWAP( "575jaa06.15f", 0x080000, 0x80000, CRC(9b2f7fbb) SHA1(26c828085c44a9c4d4e713e8fcc0bc8fc973d107) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD16_BYTE( "575jaa07.14n", 0x000000, 0x080000, CRC(37bbf387) SHA1(dcf7b151b865d251f3122611b6339dd84eb1f990) ) - ROM_LOAD16_BYTE( "575jaa08.17n", 0x000001, 0x080000, CRC(47ecd559) SHA1(7baac23557d40cccc21b93f181606563924244b0) ) - ROM_LOAD16_BYTE( "575jaa09.19n", 0x100000, 0x080000, CRC(c1db6e68) SHA1(e951661e3b39a83db21aed484764e032adcf3c2a) ) - ROM_LOAD16_BYTE( "575jaa10.22n", 0x100001, 0x080000, BAD_DUMP CRC(c8b145d6) SHA1(15cb3e4bebb999f1791fafa7a2ce3875a56991ff) ) // both halves identical (bad) - - // dummy region (game has no sprites, but we want to use the GX mixer) - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_ERASE00 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "575jaa01.2f", 0x000000, 0x080000, CRC(e1e9f7b2) SHA1(4da93e384a6018d829cbb02cfde98fc3662c5267) ) - ROM_LOAD( "575jaa02.4f", 0x080000, 0x080000, CRC(d228eb06) SHA1(075bd48242b5f590bfbfc45bc430578375fad70f) ) - ROM_LOAD( "575jaa03.6f", 0x100000, 0x080000, CRC(9ec0321f) SHA1(03999dc415f556d0cd58e6358f826b97e85b477b) ) - ROM_LOAD( "575jaa04.9f", 0x180000, 0x080000, CRC(0120967f) SHA1(14cc2b9269f46859d1de418c8d4c76a6bdb09d16) ) -ROM_END - -ROM_START( sbishi ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "675jaa05.12f", 0x000000, 0x80000, CRC(28a09c01) SHA1(627f6c9b9e88434ff3198c778ae5c57d9cda82c5) ) - ROM_LOAD16_WORD_SWAP( "675jaa06.15f", 0x080000, 0x80000, CRC(e4998b33) SHA1(3012f7661542b38b1a113c5c10e2729c6a37e709) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD16_BYTE( "675jaa07.14n", 0x000000, 0x080000, CRC(6fe7c658) SHA1(a786a417053a5fc62f967bdd564e8d3bdc89f958) ) - ROM_LOAD16_BYTE( "675jaa08.17n", 0x000001, 0x080000, CRC(c230afc9) SHA1(f23c64ed08e77960beb0f8db2605622a3887e5f8) ) - ROM_LOAD16_BYTE( "675jaa09.19n", 0x100000, 0x080000, CRC(63fe85a5) SHA1(e5ef1f3fc634264260d5fc3a669646abf1601b23) ) - ROM_LOAD16_BYTE( "675jaa10.22n", 0x100001, 0x080000, CRC(703ac462) SHA1(6dd05b2a78517a46b9ae8322c6b94bddbe91e848) ) - - // dummy region (game has no sprites, but we want to use the GX mixer) - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_ERASE00 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "675jaa01.2f", 0x000000, 0x080000, CRC(67910b15) SHA1(6566e2344ebe9d61c584a1ab9ecbc8e7dd0a9a5b) ) - ROM_LOAD( "675jaa02.4f", 0x080000, 0x080000, CRC(3313a7ae) SHA1(a49df87446a5b1bbf77fdf13a298ed486d7d7476) ) - ROM_LOAD( "675jaa03.6f", 0x100000, 0x080000, CRC(ec977e6a) SHA1(9beb13e716d1694a64ce787fa3db4ba986a07d51) ) - ROM_LOAD( "675jaa04.9f", 0x180000, 0x080000, CRC(1d1de34e) SHA1(1671216545cc0842cf8c128eaa0c612e6d91875c) ) -ROM_END - - -GAME( 1996, bishi, 0, bishi, bishi, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA)", GAME_IMPERFECT_GRAPHICS) -GAME( 1998, sbishi, 0, bishi, bishi, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA)", GAME_IMPERFECT_GRAPHICS) diff --git a/src/drivers/bladestl.c b/src/drivers/bladestl.c deleted file mode 100644 index 5f3dab5c3..000000000 --- a/src/drivers/bladestl.c +++ /dev/null @@ -1,524 +0,0 @@ -/*************************************************************************** - -Blades of Steel(GX797) (c) 1987 Konami - -Driver by Manuel Abadia - -Interrupts: - - CPU #0 (6309): - -------------- - * IRQ: not used. - * FIRQ: generated by VBLANK. - * NMI: writes the sound command to the 6809. - - CPU #1 (6809): - -------------- - * IRQ: triggered by the 6309 when a sound command is written. - * FIRQ: not used. - * NMI: not used. - -Notes: - * The protection is not fully understood(Konami 051733). The - game is playable, but is not 100% accurate. - * Missing samples. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "cpu/hd6309/hd6309.h" -#include "vidhrdw/konamiic.h" -#include "sound/2203intf.h" -#include "sound/upd7759.h" - -/* from vidhrdw */ -int bladestl_spritebank; -VIDEO_START( bladestl ); -VIDEO_UPDATE( bladestl ); -PALETTE_INIT( bladestl ); -WRITE8_HANDLER( bladestl_vreg_w ); - -static INTERRUPT_GEN( bladestl_interrupt ) -{ - if (cpu_getiloops() == 0){ - if (K007342_is_INT_enabled()) - cpunum_set_input_line(0, HD6309_FIRQ_LINE, HOLD_LINE); - } - else if (cpu_getiloops() % 2){ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static READ8_HANDLER( trackball_r ) -{ - static int last[4]; - int curr,delta; - - - curr = readinputport(5 + offset); - delta = (curr - last[offset]) & 0xff; - last[offset] = curr; - return (delta & 0x80) | (curr >> 1); -} - -static WRITE8_HANDLER( bladestl_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bankaddress; - - /* bits 0 & 1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bits 2 & 3 = lamps */ - set_led_status(0,data & 0x04); - set_led_status(1,data & 0x08); - - /* bit 4 = relay (???) */ - - /* bits 5-6 = bank number */ - bankaddress = 0x10000 + ((data & 0x60) >> 5) * 0x2000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* bit 7 = select sprite bank */ - bladestl_spritebank = (data & 0x80) << 3; - -} - -static WRITE8_HANDLER( bladestl_sh_irqtrigger_w ) -{ - soundlatch_w(offset, data); - cpunum_set_input_line(1, M6809_IRQ_LINE, HOLD_LINE); - //logerror("(sound) write %02x\n", data); -} - -static WRITE8_HANDLER( bladestl_port_B_w ){ - /* bit 1, 2 unknown */ - upd7759_set_bank_base(0, ((data & 0x38) >> 3)*0x20000); -} - -static WRITE8_HANDLER( bladestl_speech_ctrl_w ){ - upd7759_reset_w(0, data & 1); - upd7759_start_w(0, data & 2); -} - -static ADDRESS_MAP_START( bladestl_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(K007342_r) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_READ(K007420_r) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_READ(K007342_scroll_r) /* Scroll RAM */ - AM_RANGE(0x2400, 0x245f) AM_READ(paletteram_r) /* Palette */ - AM_RANGE(0x2e01, 0x2e01) AM_READ(input_port_3_r) /* 1P controls */ - AM_RANGE(0x2e02, 0x2e02) AM_READ(input_port_4_r) /* 2P controls */ - AM_RANGE(0x2e03, 0x2e03) AM_READ(input_port_1_r) /* DISPW #2 */ - AM_RANGE(0x2e40, 0x2e40) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x2e00, 0x2e00) AM_READ(input_port_2_r) /* DIPSW #3, coinsw, startsw */ - AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r) /* Trackballs */ - AM_RANGE(0x2f80, 0x2f9f) AM_READ(K051733_r) /* Protection: 051733 */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) /* Work RAM */ - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bladestl_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(K007342_w) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_WRITE(K007420_w) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_WRITE(K007342_scroll_w) /* Scroll RAM */ - AM_RANGE(0x2400, 0x245f) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ - AM_RANGE(0x2e80, 0x2e80) AM_WRITE(bladestl_sh_irqtrigger_w)/* cause interrupt on audio CPU */ - AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x2f40, 0x2f40) AM_WRITE(bladestl_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x2f80, 0x2f9f) AM_WRITE(K051733_w) /* Protection: 051733 */ - AM_RANGE(0x2fc0, 0x2fc0) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) /* Work RAM */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_RAM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bladestl_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x1000, 0x1000) AM_READ(YM2203_status_port_0_r) /* YM2203 */ - AM_RANGE(0x1001, 0x1001) AM_READ(YM2203_read_port_0_r) /* YM2203 */ - AM_RANGE(0x4000, 0x4000) AM_READ(upd7759_0_busy_r) /* UPD7759 */ - AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bladestl_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x1000, 0x1000) AM_WRITE(YM2203_control_port_0_w)/* YM2203 */ - AM_RANGE(0x1001, 0x1001) AM_WRITE(YM2203_write_port_0_w) /* YM2203 */ - AM_RANGE(0x3000, 0x3000) AM_WRITE(bladestl_speech_ctrl_w) /* UPD7759 */ - AM_RANGE(0x5000, 0x5000) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( bladestl ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, "Bonus time set" ) - PORT_DIPSETTING( 0x18, "30 secs" ) - PORT_DIPSETTING( 0x10, "20 secs" ) - PORT_DIPSETTING( 0x08, "15 secs" ) - PORT_DIPSETTING( 0x00, "10 secs" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_DIPNAME( 0x80, 0x80, "Period time set" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x00, "7" ) - - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* Trackball 1P */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_REVERSE PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_PLAYER(1) - - /* Trackball 2P */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_REVERSE PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( bladstle ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Trackball 1P */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_REVERSE PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_PLAYER(1) - - /* Trackball 2P */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_PLAYER(2) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8 x 8 characters */ - 0x40000/32, /* 8192 characters */ - 4, /* 4bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every character takes 32 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 8,8, /* 8*8 sprites */ - 0x40000/32, /* 8192 sprites */ - 4, /* 4 bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x000000, &charlayout, 0, 2 }, /* colors 00..31 */ - { REGION_GFX1, 0x040000, &spritelayout, 32, 16 }, /* colors 32..47 but using lookup table */ - { -1 } /* end of array */ -}; - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct YM2203interface ym2203_interface = -{ - 0, - 0, - upd7759_0_port_w, - bladestl_port_B_w -}; - -static struct upd7759_interface upd7759_interface = -{ - REGION_SOUND1 /* memory regions */ -}; - -static MACHINE_DRIVER_START( bladestl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 24MHz/8 (?) */ - MDRV_CPU_PROGRAM_MAP(bladestl_readmem,bladestl_writemem) - MDRV_CPU_VBLANK_INT(bladestl_interrupt,2) /* (1 IRQ + 1 NMI) */ - - MDRV_CPU_ADD(M6809, 2000000) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(bladestl_readmem_sound,bladestl_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(48) - MDRV_COLORTABLE_LENGTH(48 + 16*16) - - MDRV_PALETTE_INIT(bladestl) - MDRV_VIDEO_START(bladestl) - MDRV_VIDEO_UPDATE(bladestl) - - /* sound hardware */ - /* the initialization order is important, the port callbacks being - called at initialization time */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - - MDRV_SOUND_ADD(YM2203, 3579545) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( bladestl ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "797t01.bin", 0x10000, 0x08000, CRC(89d7185d) SHA1(0d2f346d9515cab0389106c0e227fb0bd84a2c9c) ) /* fixed ROM */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "797c02", 0x08000, 0x08000, CRC(65a331ea) SHA1(f206f6c5f0474542a5b7686b2f4d2cc7077dd5b9) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "797a05", 0x000000, 0x40000, CRC(5491ba28) SHA1(c807774827c55c211ab68f548e1e835289cc5744) ) /* tiles */ - ROM_LOAD( "797a06", 0x040000, 0x40000, CRC(d055f5cc) SHA1(3723b39b2a3e6dd8e7fc66bbfe1eef9f80818774) ) /* sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "797a07", 0x0000, 0x0100, CRC(7aecad4e) SHA1(05150a8dd25bdd6ab0c5b350e6ffd272f040e46a) ) /* sprites lookup table */ - - ROM_REGION( 0xc0000, REGION_SOUND1, 0 ) /* uPD7759 data (chip 1) */ - ROM_LOAD( "797a03", 0x00000, 0x80000, CRC(9ee1a542) SHA1(c9a142a326875a50f03e49e83a84af8bb423a467) ) - ROM_LOAD( "797a04", 0x80000, 0x40000, CRC(9ac8ea4e) SHA1(9f81eff970c9e8aea6f67d8a7d89805fae044ae1) ) -ROM_END - -ROM_START( bladstle ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "797e01", 0x10000, 0x08000, CRC(f8472e95) SHA1(8b6caa905fb1642300dd9da508871b00429872c3) ) /* fixed ROM */ - ROM_CONTINUE( 0x08000, 0x08000 ) /* banked ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "797c02", 0x08000, 0x08000, CRC(65a331ea) SHA1(f206f6c5f0474542a5b7686b2f4d2cc7077dd5b9) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "797a05", 0x000000, 0x40000, CRC(5491ba28) SHA1(c807774827c55c211ab68f548e1e835289cc5744) ) /* tiles */ - ROM_LOAD( "797a06", 0x040000, 0x40000, CRC(d055f5cc) SHA1(3723b39b2a3e6dd8e7fc66bbfe1eef9f80818774) ) /* sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "797a07", 0x0000, 0x0100, CRC(7aecad4e) SHA1(05150a8dd25bdd6ab0c5b350e6ffd272f040e46a) ) /* sprites lookup table */ - - ROM_REGION( 0xc0000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "797a03", 0x00000, 0x80000, CRC(9ee1a542) SHA1(c9a142a326875a50f03e49e83a84af8bb423a467) ) - ROM_LOAD( "797a04", 0x80000, 0x40000, CRC(9ac8ea4e) SHA1(9f81eff970c9e8aea6f67d8a7d89805fae044ae1) ) -ROM_END - - - -GAME( 1987, bladestl, 0, bladestl, bladestl, 0, ROT90, "Konami", "Blades of Steel (version T)", 0 ) -GAME( 1987, bladstle, bladestl, bladestl, bladstle, 0, ROT90, "Konami", "Blades of Steel (version E)", 0 ) diff --git a/src/drivers/blockhl.c b/src/drivers/blockhl.c deleted file mode 100644 index 2a2e286c5..000000000 --- a/src/drivers/blockhl.c +++ /dev/null @@ -1,360 +0,0 @@ -/*************************************************************************** - -Block Hole (GX973) (c) 1989 Konami - -driver by Nicola Salmoria - -Notes: -Quarth works, but Block Hole crashes when it reaches the title screen. An -interrupt happens, and after rti the ROM bank is not the same as before so -it jumps to garbage code. -If you want to see this happen, place a breakpoint at 0x8612, and trace -after that. -The code is almost identical in the two versions, it looks like Quarth is -working just because luckily the interrupt doesn't happen at that point. -It seems that the interrupt handler trashes the selected ROM bank and forces -it to 0. To prevent crashes, I only generate interrupts when the ROM bank is -already 0. There might be another interrupt enable register, but I haven't -found it. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" - -/* prototypes */ -static MACHINE_RESET( blockhl ); -static void blockhl_banking( int lines ); - - -VIDEO_START( blockhl ); -VIDEO_UPDATE( blockhl ); - -static int palette_selected; -static unsigned char *ram; -static int rombank; - -static INTERRUPT_GEN( blockhl_interrupt ) -{ - if (K052109_is_IRQ_enabled() && rombank == 0) /* kludge to prevent crashes */ - cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); -} - -static READ8_HANDLER( bankedram_r ) -{ - if (palette_selected) - return paletteram_r(offset); - else - return ram[offset]; -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (palette_selected) - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - else - ram[offset] = data; -} - -WRITE8_HANDLER( blockhl_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1, 0, HOLD_LINE, 0xff); -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f94, 0x1f94) AM_READ(input_port_4_r) - AM_RANGE(0x1f95, 0x1f95) AM_READ(input_port_0_r) - AM_RANGE(0x1f96, 0x1f96) AM_READ(input_port_1_r) - AM_RANGE(0x1f97, 0x1f97) AM_READ(input_port_2_r) - AM_RANGE(0x1f98, 0x1f98) AM_READ(input_port_3_r) - AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) - AM_RANGE(0x4000, 0x57ff) AM_READ(MRA8_RAM) - AM_RANGE(0x5800, 0x5fff) AM_READ(bankedram_r) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) - AM_RANGE(0x1f88, 0x1f88) AM_WRITE(blockhl_sh_irqtrigger_w) - AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x4000, 0x57ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5800, 0x5fff) AM_WRITE(bankedram_w) AM_BASE(&ram) - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xe00c, 0xe00d) AM_WRITE(MWA8_NOP) /* leftover from missing 007232? */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( blockhl ) - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static MACHINE_DRIVER_START( blockhl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI,3000000) /* Konami custom 052526 */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(blockhl_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(blockhl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(blockhl) - MDRV_VIDEO_UPDATE(blockhl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "mono", 0.60) - MDRV_SOUND_ROUTE(1, "mono", 0.60) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( blockhl ) - ROM_REGION( 0x18800, REGION_CPU1, 0 ) /* code + banked roms + space for banked RAM */ - ROM_LOAD( "973l02.e21", 0x10000, 0x08000, CRC(e14f849a) SHA1(d44cf178cc98998b72ed32c6e20b6ebdf1f97579) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "973d01.g6", 0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "973f07.k15", 0x00000, 0x08000, CRC(1a8cd9b4) SHA1(7cb7944d24ac51fa6b610542d9dec68697cacf0f) ) /* tiles */ - ROM_LOAD16_BYTE( "973f08.k18", 0x00001, 0x08000, CRC(952b51a6) SHA1(017575738d444b688b137cad5611638d53be84f2) ) - ROM_LOAD16_BYTE( "973f09.k20", 0x10000, 0x08000, CRC(77841594) SHA1(e1bfdc5bb598d865868d578ef7faba8078becd7a) ) - ROM_LOAD16_BYTE( "973f10.k23", 0x10001, 0x08000, CRC(09039fab) SHA1(a9dea17aacf4484d21ef3b16470263447b51b6b5) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "973f06.k12", 0x00000, 0x08000, CRC(51acfdb6) SHA1(94d243f341b490684f5297d95d4835bd522ece35) ) /* sprites */ - ROM_LOAD16_BYTE( "973f05.k9", 0x00001, 0x08000, CRC(4cfea298) SHA1(4772b5b99f5fd8174d8884bd84173512e1edabf4) ) - ROM_LOAD16_BYTE( "973f04.k7", 0x10000, 0x08000, CRC(69ca41bd) SHA1(9b0b1c888efd2f2d5525f14778e18fb4a7353eb6) ) - ROM_LOAD16_BYTE( "973f03.k4", 0x10001, 0x08000, CRC(21e98472) SHA1(8c697d369a1f57be0825c33b4e9107ce1b02a130) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) /* PROMs */ - ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) ) /* priority encoder (not used) */ -ROM_END - -ROM_START( quarth ) - ROM_REGION( 0x18800, REGION_CPU1, 0 ) /* code + banked roms + space for banked RAM */ - ROM_LOAD( "973j02.e21", 0x10000, 0x08000, CRC(27a90118) SHA1(51309385b93db29b9277d14252166c4ea1746303) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "973d01.g6", 0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "973e07.k15", 0x00000, 0x08000, CRC(0bd6b0f8) SHA1(6c59cf637354fe2df424eaa89feb9c1bc1f66a92) ) /* tiles */ - ROM_LOAD16_BYTE( "973e08.k18", 0x00001, 0x08000, CRC(104d0d5f) SHA1(595698911513113d01e5b565f5b073d1bd033d3f) ) - ROM_LOAD16_BYTE( "973e09.k20", 0x10000, 0x08000, CRC(bd3a6f24) SHA1(eb45db3a6a52bb2b25df8c2dace877e59b4130a6) ) - ROM_LOAD16_BYTE( "973e10.k23", 0x10001, 0x08000, CRC(cf5e4b86) SHA1(43348753894c1763b26dbfc70245dac92048db8f) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "973e06.k12", 0x00000, 0x08000, CRC(0d58af85) SHA1(2efd661d614fb305a14cfe1aa4fb17714f215d4f) ) /* sprites */ - ROM_LOAD16_BYTE( "973e05.k9", 0x00001, 0x08000, CRC(15d822cb) SHA1(70ecad5e0a461df0da6e6eb23f43a7b643297f0d) ) - ROM_LOAD16_BYTE( "973e04.k7", 0x10000, 0x08000, CRC(d70f4a2c) SHA1(25f835a17bacf2b8debb2eb8a3cff90cab3f402a) ) - ROM_LOAD16_BYTE( "973e03.k4", 0x10001, 0x08000, CRC(2c5a4b4b) SHA1(e2991dd78b9cd96cf93ebd6de0d4e060d346ab9c) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) /* PROMs */ - ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) ) /* priority encoder (not used) */ -ROM_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void blockhl_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs; - - /* bits 0-1 = ROM bank */ - rombank = lines & 0x03; - offs = 0x10000 + (lines & 0x03) * 0x2000; - memory_set_bankptr(1,&RAM[offs]); - - /* bits 3/4 = coin counters */ - coin_counter_w(0,lines & 0x08); - coin_counter_w(1,lines & 0x10); - - /* bit 5 = select palette RAM or work RAM at 5800-5fff */ - palette_selected = ~lines & 0x20; - - /* bit 6 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line( ( lines & 0x40 ) ? ASSERT_LINE : CLEAR_LINE ); - - /* bit 7 used but unknown */ - - /* other bits unknown */ - - if ((lines & 0x84) != 0x80) logerror("%04x: setlines %02x\n",activecpu_get_pc(),lines); -} - -static MACHINE_RESET( blockhl ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)blockhl_banking); - - paletteram = &RAM[0x18000]; -} - - -static DRIVER_INIT( blockhl ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1989, blockhl, 0, blockhl, blockhl, blockhl, ROT0, "Konami", "Block Hole", 0 ) -GAME( 1989, quarth, blockhl, blockhl, blockhl, blockhl, ROT0, "Konami", "Quarth (Japan)", 0 ) diff --git a/src/drivers/bottom9.c b/src/drivers/bottom9.c deleted file mode 100644 index de2d3568c..000000000 --- a/src/drivers/bottom9.c +++ /dev/null @@ -1,629 +0,0 @@ -/*************************************************************************** - -Bottom of the Ninth (c) 1989 Konami - -Similar to S.P.Y. - -driver by Nicola Salmoria - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "vidhrdw/konamiic.h" -#include "sound/k007232.h" - - -extern int bottom9_video_enable; - -VIDEO_START( bottom9 ); -VIDEO_UPDATE( bottom9 ); - - - -static INTERRUPT_GEN( bottom9_interrupt ) -{ - if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(0, 0, HOLD_LINE); -} - - -static int zoomreadroms,K052109_selected; - -static READ8_HANDLER( bottom9_bankedram1_r ) -{ - if (K052109_selected) - return K052109_051960_r(offset); - else - { - if (zoomreadroms) - return K051316_rom_0_r(offset); - else - return K051316_0_r(offset); - } -} - -static WRITE8_HANDLER( bottom9_bankedram1_w ) -{ - if (K052109_selected) K052109_051960_w(offset,data); - else K051316_0_w(offset,data); -} - -static READ8_HANDLER( bottom9_bankedram2_r ) -{ - if (K052109_selected) return K052109_051960_r(offset + 0x2000); - else return paletteram_r(offset); -} - -static WRITE8_HANDLER( bottom9_bankedram2_w ) -{ - if (K052109_selected) K052109_051960_w(offset + 0x2000,data); - else paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); -} - -static WRITE8_HANDLER( bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs; - - /* bit 0 = RAM bank */ -if ((data & 1) == 0) popmessage("bankswitch RAM bank 0"); - - /* bit 1-4 = ROM bank */ - if (data & 0x10) offs = 0x20000 + (data & 0x06) * 0x1000; - else offs = 0x10000 + (data & 0x0e) * 0x1000; - memory_set_bankptr(1,&RAM[offs]); -} - -static WRITE8_HANDLER( bottom9_1f90_w ) -{ - /* bits 0/1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 2 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 3 = disable video */ - bottom9_video_enable = ~data & 0x08; - - /* bit 4 = enable 051316 ROM reading */ - zoomreadroms = data & 0x10; - - /* bit 5 = RAM bank */ - K052109_selected = data & 0x20; -} - -static WRITE8_HANDLER( bottom9_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static int nmienable; - -static INTERRUPT_GEN( bottom9_sound_interrupt ) -{ - if (nmienable) - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static WRITE8_HANDLER( nmi_enable_w ) -{ - nmienable = data; -} - -static WRITE8_HANDLER( sound_bank_w ) -{ - int bank_A,bank_B; - - bank_A = ((data >> 0) & 0x03); - bank_B = ((data >> 2) & 0x03); - K007232_set_bank( 0, bank_A, bank_B ); - bank_A = ((data >> 4) & 0x03); - bank_B = ((data >> 6) & 0x03); - K007232_set_bank( 1, bank_A, bank_B ); -} - - - -static ADDRESS_MAP_START( bottom9_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(bottom9_bankedram1_r) - AM_RANGE(0x1fd0, 0x1fd0) AM_READ(input_port_4_r) - AM_RANGE(0x1fd1, 0x1fd1) AM_READ(input_port_0_r) - AM_RANGE(0x1fd2, 0x1fd2) AM_READ(input_port_1_r) - AM_RANGE(0x1fd3, 0x1fd3) AM_READ(input_port_2_r) - AM_RANGE(0x1fe0, 0x1fe0) AM_READ(input_port_3_r) - AM_RANGE(0x2000, 0x27ff) AM_READ(bottom9_bankedram2_r) - AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bottom9_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(bottom9_bankedram1_w) - AM_RANGE(0x1f80, 0x1f80) AM_WRITE(bankswitch_w) - AM_RANGE(0x1f90, 0x1f90) AM_WRITE(bottom9_1f90_w) - AM_RANGE(0x1fa0, 0x1fa0) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1fb0, 0x1fb0) AM_WRITE(soundlatch_w) - AM_RANGE(0x1fc0, 0x1fc0) AM_WRITE(bottom9_sh_irqtrigger_w) - AM_RANGE(0x1ff0, 0x1fff) AM_WRITE(K051316_ctrl_0_w) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(bottom9_bankedram2_w) AM_BASE(&paletteram) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bottom9_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_1_r) - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bottom9_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) - AM_RANGE(0xa000, 0xa00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_1_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(nmi_enable_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( bottom9 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START - PORT_DIPNAME( 0x07, 0x04, "Play Time" ) - PORT_DIPSETTING( 0x07, "1'00" ) - PORT_DIPSETTING( 0x06, "1'10" ) - PORT_DIPSETTING( 0x05, "1'20" ) - PORT_DIPSETTING( 0x04, "1'30" ) - PORT_DIPSETTING( 0x03, "1'40" ) - PORT_DIPSETTING( 0x02, "1'50" ) - PORT_DIPSETTING( 0x01, "2'00" ) - PORT_DIPSETTING( 0x00, "2'10" ) - PORT_DIPNAME( 0x18, 0x08, "Bonus Time" ) - PORT_DIPSETTING( 0x18, "00" ) - PORT_DIPSETTING( 0x10, "20" ) - PORT_DIPSETTING( 0x08, "30" ) - PORT_DIPSETTING( 0x00, "40" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, "Fielder Control" ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Auto" ) -INPUT_PORTS_END - -INPUT_PORTS_START( mstadium ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START - PORT_DIPNAME( 0x03, 0x01, "Play Inning" ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x0c, 0x08, "Play Inning Time" ) - PORT_DIPSETTING( 0x0c, "6 Min" ) - PORT_DIPSETTING( 0x08, "8 Min" ) - PORT_DIPSETTING( 0x04, "10 Min" ) - PORT_DIPSETTING( 0x00, "12 Min" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, "Fielder Control" ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Auto" ) -INPUT_PORTS_END - - - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static void volume_callback1(int v) -{ - K007232_set_volume(1,0,(v >> 4) * 0x11,0); - K007232_set_volume(1,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface_1 = -{ - REGION_SOUND1, - volume_callback0 -}; - -static struct K007232_interface k007232_interface_2 = -{ - REGION_SOUND2, - volume_callback1 -}; - - - -static MACHINE_DRIVER_START( bottom9 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 2000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(bottom9_readmem,bottom9_writemem) - MDRV_CPU_VBLANK_INT(bottom9_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(bottom9_sound_readmem,bottom9_sound_writemem) - MDRV_CPU_VBLANK_INT(bottom9_sound_interrupt,8) /* irq is triggered by the main CPU */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(bottom9) - MDRV_VIDEO_UPDATE(bottom9) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_1) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_2) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( bottom9 ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "891n03.k17", 0x10000, 0x10000, CRC(8b083ff3) SHA1(045fef944b192e4bb147fa0f28680c0602af7377) ) - ROM_LOAD( "891-t02.k15", 0x20000, 0x08000, CRC(2c10ced2) SHA1(ecd43825a67b495cade94a454c96a19143d87760) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "891j01.g8", 0x0000, 0x8000, CRC(31b0a0a8) SHA1(8e047f81c19f25de97fa22e70dcfe9e06bfae699) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e10c", 0x00000, 0x10000, CRC(209b0431) SHA1(07f05f63267d5ed5c99b5f786bb66a87045db9e1) ) /* characters */ - ROM_LOAD16_BYTE( "891e10a", 0x00001, 0x10000, CRC(8020a9e8) SHA1(3792794a1b875506089da63cae955668cc61f54b) ) - ROM_LOAD16_BYTE( "891e10d", 0x20000, 0x10000, CRC(16d5fd7a) SHA1(895a53e41173a70c48337d812466857676908a23) ) - ROM_LOAD16_BYTE( "891e10b", 0x20001, 0x10000, CRC(30121cc0) SHA1(79174d00b79855c00c9c872b8f32946be1bf1d8a) ) - ROM_LOAD16_BYTE( "891e09c", 0x40000, 0x10000, CRC(9dcaefbf) SHA1(8b61b1627737b959158aa6c7ea5db63f6aec7436) ) - ROM_LOAD16_BYTE( "891e09a", 0x40001, 0x10000, CRC(56b0ead9) SHA1(ef4b00ed0de93f61f4c8661ec0e6049c51a25cf6) ) - ROM_LOAD16_BYTE( "891e09d", 0x60000, 0x10000, CRC(4e1335e6) SHA1(b892ab40a41978a89658ea2e7aabe9b073430b5d) ) - ROM_LOAD16_BYTE( "891e09b", 0x60001, 0x10000, CRC(b6f914fb) SHA1(e95f3e899c2ead15ef8a529dbc67e8f4a0f88bdd) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e06e", 0x00000, 0x10000, CRC(0b04db1c) SHA1(0beae7bb8da49379915c0253ce03091eb71a58b5) ) /* sprites */ - ROM_LOAD16_BYTE( "891e06a", 0x00001, 0x10000, CRC(5ee37327) SHA1(f63ddaf63af06ea5421b0361315940582ef57922) ) - ROM_LOAD16_BYTE( "891e06f", 0x20000, 0x10000, CRC(f9ada524) SHA1(2df1fe91f43b95bb4e4a24a0931ab6f540496f65) ) - ROM_LOAD16_BYTE( "891e06b", 0x20001, 0x10000, CRC(2295dfaa) SHA1(96070e1bd07b33b6701e45ee1e200f24532e8630) ) - ROM_LOAD16_BYTE( "891e06g", 0x40000, 0x10000, CRC(04abf78f) SHA1(9a21cc71993c3074a8a61c654b998466503b31ef) ) - ROM_LOAD16_BYTE( "891e06c", 0x40001, 0x10000, CRC(dbdb0d55) SHA1(8269b9be8f36116eb6d10efbb6b7050846a9290c) ) - ROM_LOAD16_BYTE( "891e06h", 0x60000, 0x10000, CRC(5d5ded8c) SHA1(2581aa387c1ba1f2b7c59bae2c59fbf127aa4e86) ) - ROM_LOAD16_BYTE( "891e06d", 0x60001, 0x10000, CRC(f9ecbd71) SHA1(45e28a8b40159fd0cdcc8ad253ffc7eba6cf3535) ) - ROM_LOAD16_BYTE( "891e05e", 0x80000, 0x10000, CRC(b356e729) SHA1(2cda591415b0f139fdb1f80c349d432bb0579d8e) ) - ROM_LOAD16_BYTE( "891e05a", 0x80001, 0x10000, CRC(bfd5487e) SHA1(24e0de9f12f6df6bde6268d090fe9e1ea827c0dc) ) - ROM_LOAD16_BYTE( "891e05f", 0xa0000, 0x10000, CRC(ecdd11c5) SHA1(8eac76b3b0f2ab4d59491e10070a62fd9f1eba81) ) - ROM_LOAD16_BYTE( "891e05b", 0xa0001, 0x10000, CRC(aba18d24) SHA1(ba8e1fab9537199ece2af26bb3f5c8d85d5213d4) ) - ROM_LOAD16_BYTE( "891e05g", 0xc0000, 0x10000, CRC(c315f9ae) SHA1(8e2c8ca1c6dcfe5b7302ea89275b231ffb2e0e84) ) - ROM_LOAD16_BYTE( "891e05c", 0xc0001, 0x10000, CRC(21fcbc6f) SHA1(efc65973ea7702a1b5c26a966f452804ad97dbd4) ) - ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) ) - ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) ) - - ROM_REGION( 0x020000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "891e07a", 0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) ) /* zoom/rotate */ - ROM_LOAD( "891e07b", 0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "891b11.f23", 0x0000, 0x0100, CRC(ecb854aa) SHA1(3bd321ca3076d4e0042e0af656d51909fa6a5b3b) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 #0 */ - ROM_LOAD( "891e08a", 0x00000, 0x10000, CRC(cef667bf) SHA1(e773fc0ced45e01e13cdee18c404d609356d2d0e) ) - ROM_LOAD( "891e08b", 0x10000, 0x10000, CRC(f7c14a7a) SHA1(05261a065de33e158e8d72d74eb657035abb5d03) ) - ROM_LOAD( "891e08c", 0x20000, 0x10000, CRC(756b7f3c) SHA1(6f36f0b4e08db27a8b6e180d12be6427677ad62d) ) - ROM_LOAD( "891e08d", 0x30000, 0x10000, CRC(cd0d7305) SHA1(82403ce1f38014ebf94008a66c98697a572303f9) ) - - ROM_REGION( 0x40000, REGION_SOUND2, 0 ) /* samples for 007232 #1 */ - ROM_LOAD( "891e04a", 0x00000, 0x10000, CRC(daebbc74) SHA1(f61daebf80e5e4640c4cea4ea5767e64a49d928d) ) - ROM_LOAD( "891e04b", 0x10000, 0x10000, CRC(5ffb9ad1) SHA1(e8f00c63dc3091aa344e82dc29f41aedd5a764b4) ) - ROM_LOAD( "891e04c", 0x20000, 0x10000, CRC(2dbbf16b) SHA1(84b2005a1fe61a6a0cf1aa6e0fdf7ff8b1f8f82a) ) - ROM_LOAD( "891e04d", 0x30000, 0x10000, CRC(8b0cd2cc) SHA1(e14109c69fa24d309aed4ff3589cc6619e29f97f) ) -ROM_END - -ROM_START( bottom9n ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "891n03.k17", 0x10000, 0x10000, CRC(8b083ff3) SHA1(045fef944b192e4bb147fa0f28680c0602af7377) ) - ROM_LOAD( "891n02.k15", 0x20000, 0x08000, CRC(d44d9ed4) SHA1(2a12bcfba81ab7e074569e2ad2da6a237a1c0ce5) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "891j01.g8", 0x0000, 0x8000, CRC(31b0a0a8) SHA1(8e047f81c19f25de97fa22e70dcfe9e06bfae699) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e10c", 0x00000, 0x10000, CRC(209b0431) SHA1(07f05f63267d5ed5c99b5f786bb66a87045db9e1) ) /* characters */ - ROM_LOAD16_BYTE( "891e10a", 0x00001, 0x10000, CRC(8020a9e8) SHA1(3792794a1b875506089da63cae955668cc61f54b) ) - ROM_LOAD16_BYTE( "891e10d", 0x20000, 0x10000, CRC(16d5fd7a) SHA1(895a53e41173a70c48337d812466857676908a23) ) - ROM_LOAD16_BYTE( "891e10b", 0x20001, 0x10000, CRC(30121cc0) SHA1(79174d00b79855c00c9c872b8f32946be1bf1d8a) ) - ROM_LOAD16_BYTE( "891e09c", 0x40000, 0x10000, CRC(9dcaefbf) SHA1(8b61b1627737b959158aa6c7ea5db63f6aec7436) ) - ROM_LOAD16_BYTE( "891e09a", 0x40001, 0x10000, CRC(56b0ead9) SHA1(ef4b00ed0de93f61f4c8661ec0e6049c51a25cf6) ) - ROM_LOAD16_BYTE( "891e09d", 0x60000, 0x10000, CRC(4e1335e6) SHA1(b892ab40a41978a89658ea2e7aabe9b073430b5d) ) - ROM_LOAD16_BYTE( "891e09b", 0x60001, 0x10000, CRC(b6f914fb) SHA1(e95f3e899c2ead15ef8a529dbc67e8f4a0f88bdd) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e06e", 0x00000, 0x10000, CRC(0b04db1c) SHA1(0beae7bb8da49379915c0253ce03091eb71a58b5) ) /* sprites */ - ROM_LOAD16_BYTE( "891e06a", 0x00001, 0x10000, CRC(5ee37327) SHA1(f63ddaf63af06ea5421b0361315940582ef57922) ) - ROM_LOAD16_BYTE( "891e06f", 0x20000, 0x10000, CRC(f9ada524) SHA1(2df1fe91f43b95bb4e4a24a0931ab6f540496f65) ) - ROM_LOAD16_BYTE( "891e06b", 0x20001, 0x10000, CRC(2295dfaa) SHA1(96070e1bd07b33b6701e45ee1e200f24532e8630) ) - ROM_LOAD16_BYTE( "891e06g", 0x40000, 0x10000, CRC(04abf78f) SHA1(9a21cc71993c3074a8a61c654b998466503b31ef) ) - ROM_LOAD16_BYTE( "891e06c", 0x40001, 0x10000, CRC(dbdb0d55) SHA1(8269b9be8f36116eb6d10efbb6b7050846a9290c) ) - ROM_LOAD16_BYTE( "891e06h", 0x60000, 0x10000, CRC(5d5ded8c) SHA1(2581aa387c1ba1f2b7c59bae2c59fbf127aa4e86) ) - ROM_LOAD16_BYTE( "891e06d", 0x60001, 0x10000, CRC(f9ecbd71) SHA1(45e28a8b40159fd0cdcc8ad253ffc7eba6cf3535) ) - ROM_LOAD16_BYTE( "891e05e", 0x80000, 0x10000, CRC(b356e729) SHA1(2cda591415b0f139fdb1f80c349d432bb0579d8e) ) - ROM_LOAD16_BYTE( "891e05a", 0x80001, 0x10000, CRC(bfd5487e) SHA1(24e0de9f12f6df6bde6268d090fe9e1ea827c0dc) ) - ROM_LOAD16_BYTE( "891e05f", 0xa0000, 0x10000, CRC(ecdd11c5) SHA1(8eac76b3b0f2ab4d59491e10070a62fd9f1eba81) ) - ROM_LOAD16_BYTE( "891e05b", 0xa0001, 0x10000, CRC(aba18d24) SHA1(ba8e1fab9537199ece2af26bb3f5c8d85d5213d4) ) - ROM_LOAD16_BYTE( "891e05g", 0xc0000, 0x10000, CRC(c315f9ae) SHA1(8e2c8ca1c6dcfe5b7302ea89275b231ffb2e0e84) ) - ROM_LOAD16_BYTE( "891e05c", 0xc0001, 0x10000, CRC(21fcbc6f) SHA1(efc65973ea7702a1b5c26a966f452804ad97dbd4) ) - ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) ) - ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) ) - - ROM_REGION( 0x020000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "891e07a", 0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) ) /* zoom/rotate */ - ROM_LOAD( "891e07b", 0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "891b11.f23", 0x0000, 0x0100, CRC(ecb854aa) SHA1(3bd321ca3076d4e0042e0af656d51909fa6a5b3b) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 #0 */ - ROM_LOAD( "891e08a", 0x00000, 0x10000, CRC(cef667bf) SHA1(e773fc0ced45e01e13cdee18c404d609356d2d0e) ) - ROM_LOAD( "891e08b", 0x10000, 0x10000, CRC(f7c14a7a) SHA1(05261a065de33e158e8d72d74eb657035abb5d03) ) - ROM_LOAD( "891e08c", 0x20000, 0x10000, CRC(756b7f3c) SHA1(6f36f0b4e08db27a8b6e180d12be6427677ad62d) ) - ROM_LOAD( "891e08d", 0x30000, 0x10000, CRC(cd0d7305) SHA1(82403ce1f38014ebf94008a66c98697a572303f9) ) - - ROM_REGION( 0x40000, REGION_SOUND2, 0 ) /* samples for 007232 #1 */ - ROM_LOAD( "891e04a", 0x00000, 0x10000, CRC(daebbc74) SHA1(f61daebf80e5e4640c4cea4ea5767e64a49d928d) ) - ROM_LOAD( "891e04b", 0x10000, 0x10000, CRC(5ffb9ad1) SHA1(e8f00c63dc3091aa344e82dc29f41aedd5a764b4) ) - ROM_LOAD( "891e04c", 0x20000, 0x10000, CRC(2dbbf16b) SHA1(84b2005a1fe61a6a0cf1aa6e0fdf7ff8b1f8f82a) ) - ROM_LOAD( "891e04d", 0x30000, 0x10000, CRC(8b0cd2cc) SHA1(e14109c69fa24d309aed4ff3589cc6619e29f97f) ) -ROM_END - -ROM_START( mstadium ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "891-403.k17", 0x10000, 0x10000, CRC(1c00c4e8) SHA1(8a3400a8df44f21616422e5af3bca84d0f390f63) ) - ROM_LOAD( "891-402.k15", 0x20000, 0x08000, CRC(b850bbce) SHA1(a64300d1b1068e59eb59c427946c9bff164e2da8) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "891w01.g8", 0x0000, 0x8000, CRC(edec565a) SHA1(69cba0d00c6ef76c4ce2b553e3fd15de8abbbf31) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e10c", 0x00000, 0x10000, CRC(209b0431) SHA1(07f05f63267d5ed5c99b5f786bb66a87045db9e1) ) /* characters */ - ROM_LOAD16_BYTE( "891e10a", 0x00001, 0x10000, CRC(8020a9e8) SHA1(3792794a1b875506089da63cae955668cc61f54b) ) - ROM_LOAD16_BYTE( "891e10d", 0x20000, 0x10000, CRC(16d5fd7a) SHA1(895a53e41173a70c48337d812466857676908a23) ) - ROM_LOAD16_BYTE( "891e10b", 0x20001, 0x10000, CRC(30121cc0) SHA1(79174d00b79855c00c9c872b8f32946be1bf1d8a) ) - ROM_LOAD16_BYTE( "891e09c", 0x40000, 0x10000, CRC(9dcaefbf) SHA1(8b61b1627737b959158aa6c7ea5db63f6aec7436) ) - ROM_LOAD16_BYTE( "891e09a", 0x40001, 0x10000, CRC(56b0ead9) SHA1(ef4b00ed0de93f61f4c8661ec0e6049c51a25cf6) ) - ROM_LOAD16_BYTE( "891e09d", 0x60000, 0x10000, CRC(4e1335e6) SHA1(b892ab40a41978a89658ea2e7aabe9b073430b5d) ) - ROM_LOAD16_BYTE( "891e09b", 0x60001, 0x10000, CRC(b6f914fb) SHA1(e95f3e899c2ead15ef8a529dbc67e8f4a0f88bdd) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD16_BYTE( "891e06e", 0x00000, 0x10000, CRC(0b04db1c) SHA1(0beae7bb8da49379915c0253ce03091eb71a58b5) ) /* sprites */ - ROM_LOAD16_BYTE( "891e06a", 0x00001, 0x10000, CRC(5ee37327) SHA1(f63ddaf63af06ea5421b0361315940582ef57922) ) - ROM_LOAD16_BYTE( "891e06f", 0x20000, 0x10000, CRC(f9ada524) SHA1(2df1fe91f43b95bb4e4a24a0931ab6f540496f65) ) - ROM_LOAD16_BYTE( "891e06b", 0x20001, 0x10000, CRC(2295dfaa) SHA1(96070e1bd07b33b6701e45ee1e200f24532e8630) ) - ROM_LOAD16_BYTE( "891e06g", 0x40000, 0x10000, CRC(04abf78f) SHA1(9a21cc71993c3074a8a61c654b998466503b31ef) ) - ROM_LOAD16_BYTE( "891e06c", 0x40001, 0x10000, CRC(dbdb0d55) SHA1(8269b9be8f36116eb6d10efbb6b7050846a9290c) ) - ROM_LOAD16_BYTE( "891e06h", 0x60000, 0x10000, CRC(5d5ded8c) SHA1(2581aa387c1ba1f2b7c59bae2c59fbf127aa4e86) ) - ROM_LOAD16_BYTE( "891e06d", 0x60001, 0x10000, CRC(f9ecbd71) SHA1(45e28a8b40159fd0cdcc8ad253ffc7eba6cf3535) ) - ROM_LOAD16_BYTE( "891e05e", 0x80000, 0x10000, CRC(b356e729) SHA1(2cda591415b0f139fdb1f80c349d432bb0579d8e) ) - ROM_LOAD16_BYTE( "891e05a", 0x80001, 0x10000, CRC(bfd5487e) SHA1(24e0de9f12f6df6bde6268d090fe9e1ea827c0dc) ) - ROM_LOAD16_BYTE( "891e05f", 0xa0000, 0x10000, CRC(ecdd11c5) SHA1(8eac76b3b0f2ab4d59491e10070a62fd9f1eba81) ) - ROM_LOAD16_BYTE( "891e05b", 0xa0001, 0x10000, CRC(aba18d24) SHA1(ba8e1fab9537199ece2af26bb3f5c8d85d5213d4) ) - ROM_LOAD16_BYTE( "891e05g", 0xc0000, 0x10000, CRC(c315f9ae) SHA1(8e2c8ca1c6dcfe5b7302ea89275b231ffb2e0e84) ) - ROM_LOAD16_BYTE( "891e05c", 0xc0001, 0x10000, CRC(21fcbc6f) SHA1(efc65973ea7702a1b5c26a966f452804ad97dbd4) ) - ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) ) - ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) ) - - ROM_REGION( 0x020000, REGION_GFX3, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "891e07a", 0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) ) /* zoom/rotate */ - ROM_LOAD( "891e07b", 0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "891b11.f23", 0x0000, 0x0100, CRC(ecb854aa) SHA1(3bd321ca3076d4e0042e0af656d51909fa6a5b3b) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 #0 */ - ROM_LOAD( "891e08a", 0x00000, 0x10000, CRC(cef667bf) SHA1(e773fc0ced45e01e13cdee18c404d609356d2d0e) ) - ROM_LOAD( "891e08b", 0x10000, 0x10000, CRC(f7c14a7a) SHA1(05261a065de33e158e8d72d74eb657035abb5d03) ) - ROM_LOAD( "891e08c", 0x20000, 0x10000, CRC(756b7f3c) SHA1(6f36f0b4e08db27a8b6e180d12be6427677ad62d) ) - ROM_LOAD( "891e08d", 0x30000, 0x10000, CRC(cd0d7305) SHA1(82403ce1f38014ebf94008a66c98697a572303f9) ) - - ROM_REGION( 0x40000, REGION_SOUND2, 0 ) /* samples for 007232 #1 */ - ROM_LOAD( "891e04a", 0x00000, 0x10000, CRC(daebbc74) SHA1(f61daebf80e5e4640c4cea4ea5767e64a49d928d) ) - ROM_LOAD( "891e04b", 0x10000, 0x10000, CRC(5ffb9ad1) SHA1(e8f00c63dc3091aa344e82dc29f41aedd5a764b4) ) - ROM_LOAD( "891e04c", 0x20000, 0x10000, CRC(2dbbf16b) SHA1(84b2005a1fe61a6a0cf1aa6e0fdf7ff8b1f8f82a) ) - ROM_LOAD( "891e04d", 0x30000, 0x10000, CRC(8b0cd2cc) SHA1(e14109c69fa24d309aed4ff3589cc6619e29f97f) ) -ROM_END - - - -static DRIVER_INIT( bottom9 ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1989, bottom9, 0, bottom9, bottom9, bottom9, ROT0, "Konami", "Bottom of the Ninth (version T)", 0 ) -GAME( 1989, bottom9n, bottom9, bottom9, bottom9, bottom9, ROT0, "Konami", "Bottom of the Ninth (version N)", 0 ) -GAME( 1989, mstadium, bottom9, bottom9, mstadium, bottom9, ROT0, "Konami", "Main Stadium (Japan)", 0 ) diff --git a/src/drivers/btime.c b/src/drivers/btime.c deleted file mode 100644 index a7b5095cc..000000000 --- a/src/drivers/btime.c +++ /dev/null @@ -1,1886 +0,0 @@ -/*************************************************************************** - -Burger Time - -driver by Zsolt Vasvari - -hardware description: - -Actually Lock'n'Chase is (C)1981 while Burger Time is (C)1982, so it might -be more accurate to say 'Lock'n'Chase hardware'. - -The bootleg called Cook Race runs on hardware similar but different. The fact -that it addresses the program ROMs in the range 0500-3fff instead of the usual -c000-ffff makes me suspect that it is a bootleg of the *tape system* version. -Little is known about that system, but it is quite likely that it would have -RAM in the range 0000-3fff and load the program there from tape. - - -This hardware is pretty straightforward, but has a couple of interesting -twists. There are two ports to the video and color RAMs, one normal access, -and one with X and Y coordinates swapped. The sprite RAM occupies the -first row of the swapped area, so it appears in the regular video RAM as -the first column of on the left side. - -These games don't have VBLANK interrupts, but instead an IRQ or NMI -(depending on the particular board) is generated when a coin is inserted. - -Some of the games also have a background playfield which, in the -case of Bump 'n' Jump and Zoar, can be scrolled vertically. - -These boards use two 8910's for sound, controlled by a dedicated 6502. The -main processor triggers an IRQ request when writing a command to the sound -CPU. - -Main clock: XTAL = 12 MHz -Horizontal video frequency: HSYNC = XTAL/768?? = 15.625 kHz ?? -Video frequency: VSYNC = HSYNC/272 = 57.44 Hz ? -VBlank duration: 1/VSYNC * (24/272) = 1536 us ? - - -Note on Lock'n'Chase: - -The watchdog test prints "WATCHDOG TEST ER". Just by looking at the code, -I can't see how it could print anything else, there is only one path it -can take. Should the game reset???? - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "sound/ay8910.h" - -extern UINT8 *lnc_charbank; -extern UINT8 *bnj_backgroundram; -extern size_t bnj_backgroundram_size; -extern UINT8 *zoar_scrollram; -extern UINT8 *deco_charram; - -PALETTE_INIT( btime ); -PALETTE_INIT( lnc ); - -MACHINE_RESET( lnc ); - -VIDEO_START( btime ); -VIDEO_START( bnj ); - - -VIDEO_UPDATE( btime ); -VIDEO_UPDATE( cookrace ); -VIDEO_UPDATE( bnj ); -VIDEO_UPDATE( lnc ); -VIDEO_UPDATE( zoar ); -VIDEO_UPDATE( disco ); -VIDEO_UPDATE( eggs ); - -WRITE8_HANDLER( btime_paletteram_w ); -WRITE8_HANDLER( bnj_background_w ); -WRITE8_HANDLER( bnj_scroll1_w ); -WRITE8_HANDLER( bnj_scroll2_w ); -READ8_HANDLER( btime_mirrorvideoram_r ); -WRITE8_HANDLER( btime_mirrorvideoram_w ); -READ8_HANDLER( btime_mirrorcolorram_r ); -WRITE8_HANDLER( btime_mirrorcolorram_w ); -WRITE8_HANDLER( lnc_videoram_w ); -WRITE8_HANDLER( lnc_mirrorvideoram_w ); -WRITE8_HANDLER( deco_charram_w ); - -WRITE8_HANDLER( zoar_video_control_w ); -WRITE8_HANDLER( btime_video_control_w ); -WRITE8_HANDLER( bnj_video_control_w ); -WRITE8_HANDLER( lnc_video_control_w ); -WRITE8_HANDLER( disco_video_control_w ); - -INTERRUPT_GEN( lnc_sound_interrupt ); - -static WRITE8_HANDLER( sound_command_w ); - -READ8_HANDLER( mmonkey_protection_r ); -WRITE8_HANDLER( mmonkey_protection_w ); - - -static UINT8 *decrypted; -static UINT8 *rambase; -static UINT8 *sound_rambase; - - - -INLINE int swap_bits_5_6(int data) -{ - return (data & 0x9f) | ((data & 0x20) << 1) | ((data & 0x40) >> 1); -} - - -static void btime_decrypt(void) -{ - UINT8 *src, *src1; - int A,A1; - - - /* the encryption is a simple bit rotation: 76543210 -> 65342710, but */ - /* with a catch: it is only applied if the previous instruction did a */ - /* memory write. Also, only opcodes at addresses with this bit pattern: */ - /* xxxx xxx1 xxxx x1xx are encrypted. */ - - /* get the address of the next opcode */ - A = activecpu_get_pc(); - - /* however if the previous instruction was JSR (which caused a write to */ - /* the stack), fetch the address of the next instruction. */ - A1 = activecpu_get_previouspc(); - src1 = (A1 < 0x9000) ? rambase : memory_region(REGION_CPU1); - if (decrypted[A1] == 0x20) /* JSR $xxxx */ - A = src1[A1+1] + 256 * src1[A1+2]; - - /* If the address of the next instruction is xxxx xxx1 xxxx x1xx, decode it. */ - src = (A < 0x9000) ? rambase : memory_region(REGION_CPU1); - if ((A & 0x0104) == 0x0104) - { - /* 76543210 -> 65342710 bit rotation */ - decrypted[A] = (src[A] & 0x13) | ((src[A] & 0x80) >> 5) | ((src[A] & 0x64) << 1) - | ((src[A] & 0x08) << 2); - } -} - -static WRITE8_HANDLER( lnc_w ) -{ - if (offset <= 0x3bff) ; - else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(offset - 0x3c00,data); return; } - else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(offset - 0x7c00,data); return; } - else if (offset == 0x8000) { return; } /* MWA8_NOP */ - else if (offset == 0x8001) { lnc_video_control_w(0,data); return; } - else if (offset == 0x8003) ; - else if (offset == 0x9000) { return; } /* MWA8_NOP */ - else if (offset == 0x9002) { sound_command_w(0,data); return; } - else if (offset >= 0xb000 && offset <= 0xb1ff) ; - else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset); - - rambase[offset] = data; - - /* Swap bits 5 & 6 for opcodes */ - decrypted[offset] = swap_bits_5_6(data); -} - -static WRITE8_HANDLER( mmonkey_w ) -{ - if (offset <= 0x3bff) ; - else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(offset - 0x3c00,data); return; } - else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(offset - 0x7c00,data); return; } - else if (offset == 0x8001) { lnc_video_control_w(0,data); return; } - else if (offset == 0x8003) ; - else if (offset == 0x9000) { return; } /* MWA8_NOP */ - else if (offset == 0x9002) { sound_command_w(0,data); return; } - else if (offset >= 0xb000 && offset <= 0xbfff) { mmonkey_protection_w(offset - 0xb000, data); return; } - else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset); - - rambase[offset] = data; - - /* Swap bits 5 & 6 for opcodes */ - decrypted[offset] = swap_bits_5_6(data); -} - -static WRITE8_HANDLER( btime_w ) -{ - if (offset <= 0x07ff) rambase[offset] = data; - else if (offset >= 0x0c00 && offset <= 0x0c0f) btime_paletteram_w(offset - 0x0c00,data); - else if (offset >= 0x1000 && offset <= 0x13ff) videoram_w(offset - 0x1000,data); - else if (offset >= 0x1400 && offset <= 0x17ff) colorram_w(offset - 0x1400,data); - else if (offset >= 0x1800 && offset <= 0x1bff) btime_mirrorvideoram_w(offset - 0x1800,data); - else if (offset >= 0x1c00 && offset <= 0x1fff) btime_mirrorcolorram_w(offset - 0x1c00,data); - else if (offset == 0x4002) btime_video_control_w(0,data); - else if (offset == 0x4003) sound_command_w(0,data); - else if (offset == 0x4004) bnj_scroll1_w(0,data); - else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset); - - btime_decrypt(); -} - -static WRITE8_HANDLER( zoar_w ) -{ - if (offset <= 0x07ff) rambase[offset] = data; - else if (offset >= 0x8000 && offset <= 0x83ff) videoram_w(offset - 0x8000,data); - else if (offset >= 0x8400 && offset <= 0x87ff) colorram_w(offset - 0x8400,data); - else if (offset >= 0x8800 && offset <= 0x8bff) btime_mirrorvideoram_w(offset - 0x8800,data); - else if (offset >= 0x8c00 && offset <= 0x8fff) btime_mirrorcolorram_w(offset - 0x8c00,data); - else if (offset == 0x9000) zoar_video_control_w(0, data); - else if (offset >= 0x9800 && offset <= 0x9803) rambase[offset] = data; - else if (offset == 0x9804) bnj_scroll2_w(0,data); - else if (offset == 0x9805) bnj_scroll1_w(0,data); - else if (offset == 0x9806) sound_command_w(0,data); - else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset); - - btime_decrypt(); -} - -static WRITE8_HANDLER( disco_w ) -{ - if (offset <= 0x04ff) rambase[offset] = data; - else if (offset >= 0x2000 && offset <= 0x7fff) deco_charram_w(offset - 0x2000,data); - else if (offset >= 0x8000 && offset <= 0x83ff) videoram_w(offset - 0x8000,data); - else if (offset >= 0x8400 && offset <= 0x87ff) colorram_w(offset - 0x8400,data); - else if (offset >= 0x8800 && offset <= 0x881f) rambase[offset] = data; - else if (offset == 0x9a00) sound_command_w(0,data); - else if (offset == 0x9c00) disco_video_control_w(0,data); - else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset); - - btime_decrypt(); -} - - -static ADDRESS_MAP_START( btime_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x17ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1800, 0x1bff) AM_READ(btime_mirrorvideoram_r) - AM_RANGE(0x1c00, 0x1fff) AM_READ(btime_mirrorcolorram_r) - AM_RANGE(0x4000, 0x4000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x4001, 0x4001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x4002, 0x4002) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0x4003, 0x4003) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x4004, 0x4004) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0xb000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( btime_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(btime_w) /* override the following entries to */ - /* support ROM decryption */ - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x0c00, 0x0c0f) AM_WRITE(btime_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x1000, 0x13ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x1400, 0x17ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1800, 0x1bff) AM_WRITE(btime_mirrorvideoram_w) - AM_RANGE(0x1c00, 0x1fff) AM_WRITE(btime_mirrorcolorram_w) - AM_RANGE(0x4000, 0x4000) AM_WRITE(MWA8_NOP) - AM_RANGE(0x4002, 0x4002) AM_WRITE(btime_video_control_w) - AM_RANGE(0x4003, 0x4003) AM_WRITE(sound_command_w) - AM_RANGE(0x4004, 0x4004) AM_WRITE(bnj_scroll1_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cookrace_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0500, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xcbff) AM_READ(btime_mirrorvideoram_r) - AM_RANGE(0xcc00, 0xcfff) AM_READ(btime_mirrorcolorram_r) - AM_RANGE(0xd000, 0xd0ff) AM_READ(MRA8_RAM) /* background */ - AM_RANGE(0xd100, 0xd3ff) AM_READ(MRA8_RAM) /* ? */ - AM_RANGE(0xd400, 0xd7ff) AM_READ(MRA8_RAM) /* background? */ - AM_RANGE(0xe000, 0xe000) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0xe300, 0xe300) AM_READ(input_port_3_r) /* mirror address used on high score name enter */ - /* screen */ - AM_RANGE(0xe001, 0xe001) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0xe002, 0xe002) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0xe003, 0xe003) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0xe004, 0xe004) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0xfff9, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cookrace_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x0500, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0xc800, 0xcbff) AM_WRITE(btime_mirrorvideoram_w) - AM_RANGE(0xcc00, 0xcfff) AM_WRITE(btime_mirrorcolorram_w) - AM_RANGE(0xd000, 0xd0ff) AM_WRITE(MWA8_RAM) /* background? */ - AM_RANGE(0xd100, 0xd3ff) AM_WRITE(MWA8_RAM) /* ? */ - AM_RANGE(0xd400, 0xd7ff) AM_WRITE(MWA8_RAM) AM_BASE(&bnj_backgroundram) AM_SIZE(&bnj_backgroundram_size) - AM_RANGE(0xe000, 0xe000) AM_WRITE(bnj_video_control_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(sound_command_w) -#if 0 - AM_RANGE(0x4004, 0x4004) AM_WRITE(bnj_scroll1_w) -#endif - AM_RANGE(0xfff9, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( zoar_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9800, 0x9800) AM_READ(input_port_3_r) /* DSW 1 */ - AM_RANGE(0x9801, 0x9801) AM_READ(input_port_4_r) /* DSW 2 */ - AM_RANGE(0x9802, 0x9802) AM_READ(input_port_0_r) /* IN 0 */ - AM_RANGE(0x9803, 0x9803) AM_READ(input_port_1_r) /* IN 1 */ - AM_RANGE(0x9804, 0x9804) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( zoar_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(zoar_w) /* override the following entries to */ - /* support ROM decryption */ - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8800, 0x8bff) AM_WRITE(btime_mirrorvideoram_w) - AM_RANGE(0x8c00, 0x8fff) AM_WRITE(btime_mirrorcolorram_w) - AM_RANGE(0x9000, 0x9000) AM_WRITE(zoar_video_control_w) - AM_RANGE(0x9800, 0x9803) AM_WRITE(MWA8_RAM) AM_BASE(&zoar_scrollram) - AM_RANGE(0x9805, 0x9805) AM_WRITE(bnj_scroll2_w) - AM_RANGE(0x9805, 0x9805) AM_WRITE(bnj_scroll1_w) - AM_RANGE(0x9806, 0x9806) AM_WRITE(sound_command_w) - /*AM_RANGE(0x9807, 0x9807) AM_WRITE(MWA8_RAM) */ /* Marked as ACK on schematics (Board 2 Pg 5) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lnc_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x7c00, 0x7fff) AM_READ(btime_mirrorvideoram_r) - AM_RANGE(0x8000, 0x8000) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x8001, 0x8001) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0x9000, 0x9000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x9001, 0x9001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x9002, 0x9002) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0xb000, 0xb1ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lnc_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(lnc_w) /* override the following entries to */ - /* support ROM decryption */ - AM_RANGE(0x0000, 0x3bff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x3c00, 0x3fff) AM_WRITE(lnc_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x7800, 0x7bff) AM_WRITE(colorram_w) AM_BASE(&colorram) /* this is just here to initialize the pointer */ - AM_RANGE(0x7c00, 0x7fff) AM_WRITE(lnc_mirrorvideoram_w) - AM_RANGE(0x8000, 0x8000) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x8001, 0x8001) AM_WRITE(lnc_video_control_w) - AM_RANGE(0x8003, 0x8003) AM_WRITE(MWA8_RAM) AM_BASE(&lnc_charbank) - AM_RANGE(0x9000, 0x9000) AM_WRITE(MWA8_NOP) /* IRQ ACK ??? */ - AM_RANGE(0x9002, 0x9002) AM_WRITE(sound_command_w) - AM_RANGE(0xb000, 0xb1ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( mmonkey_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x7c00, 0x7fff) AM_READ(btime_mirrorvideoram_r) - AM_RANGE(0x8000, 0x8000) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x8001, 0x8001) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0x9000, 0x9000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x9001, 0x9001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x9002, 0x9002) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0xb000, 0xbfff) AM_READ(mmonkey_protection_r) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mmonkey_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(mmonkey_w) /* override the following entries to */ - /* support ROM decryption */ - AM_RANGE(0x0000, 0x3bff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x3c00, 0x3fff) AM_WRITE(lnc_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x7800, 0x7bff) AM_WRITE(colorram_w) AM_BASE(&colorram) /* this is just here to initialize the pointer */ - AM_RANGE(0x7c00, 0x7fff) AM_WRITE(lnc_mirrorvideoram_w) - AM_RANGE(0x8001, 0x8001) AM_WRITE(lnc_video_control_w) - AM_RANGE(0x8003, 0x8003) AM_WRITE(MWA8_RAM) AM_BASE(&lnc_charbank) - AM_RANGE(0x9000, 0x9000) AM_WRITE(MWA8_NOP) /* IRQ ACK ??? */ - AM_RANGE(0x9002, 0x9002) AM_WRITE(sound_command_w) - AM_RANGE(0xb000, 0xbfff) AM_WRITE(mmonkey_protection_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( bnj_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x1000) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x1001, 0x1001) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0x1002, 0x1002) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x1003, 0x1003) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x1004, 0x1004) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0x4000, 0x47ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4800, 0x4bff) AM_READ(btime_mirrorvideoram_r) - AM_RANGE(0x4c00, 0x4fff) AM_READ(btime_mirrorcolorram_r) - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bnj_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x1001, 0x1001) AM_WRITE(bnj_video_control_w) - AM_RANGE(0x1002, 0x1002) AM_WRITE(sound_command_w) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4400, 0x47ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x4800, 0x4bff) AM_WRITE(btime_mirrorvideoram_w) - AM_RANGE(0x4c00, 0x4fff) AM_WRITE(btime_mirrorcolorram_w) - AM_RANGE(0x5000, 0x51ff) AM_WRITE(bnj_background_w) AM_BASE(&bnj_backgroundram) AM_SIZE(&bnj_backgroundram_size) - AM_RANGE(0x5400, 0x5400) AM_WRITE(bnj_scroll1_w) - AM_RANGE(0x5800, 0x5800) AM_WRITE(bnj_scroll2_w) - AM_RANGE(0x5c00, 0x5c0f) AM_WRITE(btime_paletteram_w) AM_BASE(&paletteram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( disco_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x04ff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x881f) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(input_port_2_r) /* coin */ - AM_RANGE(0x9200, 0x9200) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x9400, 0x9400) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x9800, 0x9800) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x9a00, 0x9a00) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0x9c00, 0x9c00) AM_READ(input_port_5_r) /* VBLANK */ - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( disco_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(disco_w) /* override the following entries to */ - /* support ROM decryption */ - AM_RANGE(0x0000, 0x04ff) AM_WRITE(MWA8_RAM) AM_BASE(&rambase) - AM_RANGE(0x2000, 0x7fff) AM_WRITE(deco_charram_w) AM_BASE(&deco_charram) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8800, 0x881f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9a00, 0x9a00) AM_WRITE(sound_command_w) - AM_RANGE(0x9c00, 0x9c00) AM_WRITE(disco_video_control_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&sound_rambase) - AM_RANGE(0x0400, 0x0fff) AM_ROM AM_REGION(REGION_CPU2, 0xf400) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xa000, 0xafff) AM_READ(soundlatch_r) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(interrupt_enable_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( disco_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0x8fff) AM_READ(soundlatch_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( disco_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x5000, 0x5fff) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x7000, 0x7fff) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_NOP) /* ACK ? */ - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -/*************************************************************************** - -These games don't have VBlank interrupts. -Interrupts are still used by the game, coin insertion generates an IRQ. - -***************************************************************************/ -static void btime_interrupt(int generated_interrupt, int active_high) -{ - static int coin; - int port; - - port = readinputport(2) & 0xc0; - if (active_high) port ^= 0xc0; - - if (port != 0xc0) /* Coin */ - { - if (coin == 0) - { - coin = 1; - cpunum_set_input_line(0, generated_interrupt, (generated_interrupt == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); - } - } - else coin = 0; -} - -static INTERRUPT_GEN( btime_irq_interrupt ) -{ - btime_interrupt(0, 1); -} - -static INTERRUPT_GEN( zoar_irq_interrupt ) -{ - btime_interrupt(0, 0); -} - -static INTERRUPT_GEN( btime_nmi_interrupt ) -{ - btime_interrupt(INPUT_LINE_NMI, 0); -} - -static WRITE8_HANDLER( sound_command_w ) -{ - soundlatch_w(offset,data); - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -#define COMMON_INPUTS\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) 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_UNUSED )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )\ - -INPUT_PORTS_START( btime ) - COMMON_INPUTS - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x20, 0x20, "Cross Hatch Pattern" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "10000" ) - PORT_DIPSETTING( 0x04, "15000" ) - PORT_DIPSETTING( 0x02, "20000" ) - PORT_DIPSETTING( 0x00, "30000" ) - PORT_DIPNAME( 0x08, 0x08, "Enemies" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x10, "End of Level Pepper" ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( cookrace ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x02, "40000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x08, 0x08, "Enemies" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x10, "End of Level Pepper" ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( zoar ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) /* almost certainly unused */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - /* Service mode doesn't work because of missing ROMs */ - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "5000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x02, "15000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x00, "Weapon Select" ) - PORT_DIPSETTING( 0x00, "Manual" ) - PORT_DIPSETTING( 0x10, "Auto" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) /* These 3 switches */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) /* have to do with */ - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) /* coinage. */ - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) /* See code at $d234. */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) /* Feel free to figure */ - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) /* them out. */ - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( lnc ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x30, "Test Mode" ) - PORT_DIPSETTING( 0x30, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, "RAM Test Only" ) - PORT_DIPSETTING( 0x20, "Watchdog Test Only" ) - PORT_DIPSETTING( 0x10, "All Tests" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "15000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, "Game Speed" ) - PORT_DIPSETTING( 0x08, "Slow" ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( wtennis ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "10000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) /* definitely used */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) /* These 3 switches */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) /* have to do with */ - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) /* coinage. */ - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( mmonkey ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) /* almost certainly unused */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, "Every 15000" ) - PORT_DIPSETTING( 0x04, "Every 30000" ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x06, DEF_STR( None ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, "Level Skip Mode (Cheat)") - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) ) /* almost certainly unused */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) /* almost certainly unused */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( bnj ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY 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_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - 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_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "Every 30000" ) - PORT_DIPSETTING( 0x04, "Every 70000" ) - PORT_DIPSETTING( 0x02, "20000 Only" ) - PORT_DIPSETTING( 0x00, "30000 Only" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( disco ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x02, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x06, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x00, "Music Weapons" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x08, "8" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("VBLANK") - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - -INPUT_PORTS_START( sdtennis ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY 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_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - 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_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "1 Set won" ) - PORT_DIPSETTING( 0x04, "2 Sets won" ) - PORT_DIPSETTING( 0x02, "3 Sets won" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) // Check code at 0xc55b - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // Check code at 0xc5af - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xe0, 0xe0, "Copyright" ) - PORT_DIPSETTING( 0xe0, "Data East Corporation" ) - PORT_DIPSETTING( 0xc0, "Data East USA" ) - /* Other values are the same as 0xe0 */ - /* 0x60 also gives a special coinage : COIN1 gives 3 credits and COIN2 gives 8 credits - whatever the coinage Dip Switch are (they are not read in this case) */ -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 3, /* 3 bits per pixel */ - { 2*1024*8*8, 1024*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 */ - 256, /* 256 sprites */ - 3, /* 3 bits per pixel */ - { 2*256*16*16, 256*16*16, 0 }, /* the bitplanes are separated */ - { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout zoar_spritelayout = -{ - 16,16, /* 16*16 sprites */ - 128, /* 256 sprites */ - 3, /* 3 bits per pixel */ - { 2*128*16*16, 128*16*16, 0 }, /* the bitplanes are separated */ - { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout btime_tilelayout = -{ - 16,16, /* 16*16 characters */ - 64, /* 64 characters */ - 3, /* 3 bits per pixel */ - { 2*64*16*16, 64*16*16, 0 }, /* the bitplanes are separated */ - { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every tile takes 32 consecutive bytes */ -}; - -static const gfx_layout cookrace_tilelayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 3, /* 3 bits per pixel */ - { 2*256*8*8, 256*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every tile takes 8 consecutive bytes */ -}; - -static const gfx_layout bnj_tilelayout = -{ - 16,16, /* 16*16 characters */ - 64, /* 64 characters */ - 3, /* 3 bits per pixel */ - { 2*64*16*16+4, 0, 4 }, - { 3*16*8+0, 3*16*8+1, 3*16*8+2, 3*16*8+3, 2*16*8+0, 2*16*8+1, 2*16*8+2, 2*16*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 64*8 /* every tile takes 64 consecutive bytes */ -}; - -static const gfx_decode btime_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /* char set #1 */ - { REGION_GFX1, 0, &spritelayout, 0, 1 }, /* sprites */ - { REGION_GFX2, 0, &btime_tilelayout, 8, 1 }, /* background tiles */ - { -1 } /* end of array */ -}; - -static const gfx_decode cookrace_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /* char set #1 */ - { REGION_GFX1, 0, &spritelayout, 0, 1 }, /* sprites */ - { REGION_GFX2, 0, &cookrace_tilelayout, 8, 1 }, /* background tiles */ - { -1 } /* end of array */ -}; - -static const gfx_decode lnc_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /* char set #1 */ - { REGION_GFX1, 0, &spritelayout, 0, 1 }, /* sprites */ - { -1 } /* end of array */ -}; - -static const gfx_decode bnj_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /* char set #1 */ - { REGION_GFX1, 0, &spritelayout, 0, 1 }, /* sprites */ - { REGION_GFX2, 0, &bnj_tilelayout, 8, 1 }, /* background tiles */ - { -1 } /* end of array */ -}; - -static const gfx_decode zoar_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 8 }, /* char set #1 */ - { REGION_GFX4, 0, &zoar_spritelayout, 0, 8 }, /* sprites */ - { REGION_GFX2, 0, &btime_tilelayout, 0, 8 }, /* background tiles */ - { -1 } /* end of array */ -}; - -static const gfx_decode disco_gfxdecodeinfo[] = -{ - { 0, 0x2000, &charlayout, 0, 4 }, /* char set #1 */ - { 0, 0x2000, &spritelayout, 0, 4 }, /* sprites */ - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( btime ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 1500000) - MDRV_CPU_PROGRAM_MAP(btime_readmem,btime_writemem) - MDRV_CPU_VBLANK_INT(btime_irq_interrupt,1) - - MDRV_CPU_ADD_TAG("sound", M6502, 500000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,16) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3072)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(btime_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - - MDRV_PALETTE_INIT(btime) - MDRV_VIDEO_START(btime) - MDRV_VIDEO_UPDATE(btime) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cookrace ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(btime) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(cookrace_readmem,cookrace_writemem) - MDRV_CPU_VBLANK_INT(btime_nmi_interrupt,1) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_PROGRAM_MAP(sound_map,0) - - /* video hardware */ - MDRV_GFXDECODE(cookrace_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - - MDRV_VIDEO_UPDATE(cookrace) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( lnc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(btime) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(lnc_readmem,lnc_writemem) - MDRV_CPU_VBLANK_INT(btime_nmi_interrupt,1) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_VBLANK_INT(lnc_sound_interrupt,16) - - MDRV_MACHINE_RESET(lnc) - - /* video hardware */ - MDRV_GFXDECODE(lnc_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8) - - MDRV_PALETTE_INIT(lnc) - MDRV_VIDEO_UPDATE(lnc) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( wtennis ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(lnc) - MDRV_CPU_MODIFY("sound") - MDRV_CPU_VBLANK_INT(nmi_line_pulse,16) - - /* video hardware */ - MDRV_VIDEO_UPDATE(eggs) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mmonkey ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(wtennis) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mmonkey_readmem,mmonkey_writemem) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bnj ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(btime) - MDRV_CPU_REPLACE("main", M6502, 750000) - MDRV_CPU_PROGRAM_MAP(bnj_readmem,bnj_writemem) - MDRV_CPU_VBLANK_INT(btime_nmi_interrupt,1) - - /* video hardware */ - MDRV_GFXDECODE(bnj_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - - MDRV_VIDEO_START(bnj) - MDRV_VIDEO_UPDATE(bnj) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( zoar ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(btime) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(zoar_readmem,zoar_writemem) - MDRV_CPU_VBLANK_INT(zoar_irq_interrupt,1) - - /* video hardware */ - MDRV_GFXDECODE(zoar_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(64) - - MDRV_VIDEO_UPDATE(zoar) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( disco ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(btime) - MDRV_CPU_REPLACE("main", M6502, 750000) - MDRV_CPU_PROGRAM_MAP(disco_readmem,disco_writemem) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_PROGRAM_MAP(disco_sound_readmem,disco_sound_writemem) - - /* video hardware */ - MDRV_GFXDECODE(disco_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - - MDRV_VIDEO_UPDATE(disco) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( btime ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) ) - ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) ) - ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) ) - ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ab14.12h", 0xf000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "aa12.7k", 0x0000, 0x1000, CRC(c4617243) SHA1(24204d591aa2c264a852ee9ba8c4be63efd97728) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "aa8.13k", 0x4000, 0x1000, CRC(8650c788) SHA1(d9b1ee2d1f2fd66705d497c80252861b49aa9254) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, REGION_GFX3, 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - -ROM_START( btime2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "aa04.9b2", 0xc000, 0x1000, CRC(a041e25b) SHA1(caaab3ae46619d0a87a8985d316411f23be0b696) ) - ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) ) - ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) ) - ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ab14.12h", 0xf000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "aa12.7k", 0x0000, 0x1000, CRC(c4617243) SHA1(24204d591aa2c264a852ee9ba8c4be63efd97728) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "aa8.13k", 0x4000, 0x1000, CRC(8650c788) SHA1(d9b1ee2d1f2fd66705d497c80252861b49aa9254) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, REGION_GFX3, 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - -ROM_START( btimem ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ab05a1.12b", 0xb000, 0x1000, CRC(0a98b230) SHA1(aeee4f6f0aaa27575b80261d03c5453cc6ebd646) ) - ROM_LOAD( "ab04.9b", 0xc000, 0x1000, CRC(797e5f75) SHA1(35ea5fa4b8f3494adf7774b3946ed2540ac826ff) ) - ROM_LOAD( "ab06.13b", 0xd000, 0x1000, CRC(c77f3f64) SHA1(f283087fad0a102fe92be7ce80ed18e64dc93b67) ) - ROM_LOAD( "ab05.10b", 0xe000, 0x1000, CRC(b0d3640f) SHA1(6ba28971714ece6f1c04fa2dbf1f9f216ded7cfa) ) - ROM_LOAD( "ab07.15b", 0xf000, 0x1000, CRC(a142f862) SHA1(39d7ef172d18874885f1b1542e885cc4287dc344) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ab14.12h", 0xf000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ab12.7k", 0x0000, 0x1000, CRC(6c79f79f) SHA1(338009199b5889621693833d88c35abb8e9e38a2) ) /* charset #1 */ - ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) ) - ROM_LOAD( "ab10.10k", 0x2000, 0x1000, CRC(854a872a) SHA1(3d2ecfd54a5a9d68b53cf4b4ee1f2daa6aef2123) ) - ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) ) - ROM_LOAD( "ab8.13k", 0x4000, 0x1000, CRC(70b35bbe) SHA1(ee8d70d6792ac4b8fe3de90c665457fedb94a7ba) ) - ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ab00.1b", 0x0000, 0x0800, CRC(c7a14485) SHA1(6a0a8e6b7860859f22daa33634e34fbf91387659) ) /* charset #2 */ - ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) ) - ROM_LOAD( "ab02.4b", 0x1000, 0x0800, CRC(b8ef56c3) SHA1(4a03bf011dc1fb2902f42587b1174b880cf06df1) ) - - ROM_REGION( 0x0800, REGION_GFX3, 0 ) /* background tilemaps */ - ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) ) -ROM_END - -ROM_START( cookrace ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - /* code is in the range 0500-3fff, encrypted */ - ROM_LOAD( "1f.1", 0x0000, 0x2000, CRC(68759d32) SHA1(2112a6f17b871aefdb39739e47d4a9f368a2eb3c) ) - ROM_LOAD( "2f.2", 0x2000, 0x2000, CRC(be7d72d1) SHA1(232d108098cb490e7c828aa4524ad09d3866ae18) ) - ROM_LOAD( "2k", 0xffe0, 0x0020, CRC(e2553b3d) SHA1(0a38929cdb3f37c6e4bacc5c3f94c049b4352858) ) /* reset/interrupt vectors */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "6f.6", 0xf000, 0x1000, CRC(6b8e0272) SHA1(372a891b7b357aea0297ba9bcae752c3c9d8c1be) ) /* starts at 0000, not f000; 0000-01ff is RAM */ - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "m8.7", 0x0000, 0x2000, CRC(a1a0d5a6) SHA1(e9583320e9c303407abfe02988b95403e5209c52) ) /* charset #1 */ - ROM_LOAD( "m7.8", 0x2000, 0x2000, CRC(1104f497) SHA1(60abd05c2549fe014660c169011480beb191f36d) ) - ROM_LOAD( "m6.9", 0x4000, 0x2000, CRC(d0d94477) SHA1(74ca9134a52cabe5769d714855b38a49632b9e40) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2f.3", 0x0000, 0x0800, CRC(28609a75) SHA1(ab5d02bc0a771227db820a79b16aa662fb2140cf) ) /* garbage?? */ - ROM_CONTINUE( 0x0000, 0x0800 ) /* charset #2 */ - ROM_LOAD( "4f.4", 0x0800, 0x0800, CRC(7742e771) SHA1(c938c5714273bd4f2a1beb23d781ecbe7b023e6d) ) /* garbage?? */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_LOAD( "5f.5", 0x1000, 0x0800, CRC(611c686f) SHA1(e2c45061597d3d1a855a625a906b5a17a87deb2c) ) /* garbage?? */ - ROM_CONTINUE( 0x1000, 0x0800 ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "f9.clr", 0x0000, 0x0020, CRC(c2348c1d) SHA1(a7cc4b499b6c89c5966711f8bb922026c2978e1a) ) /* palette */ - ROM_LOAD( "b7", 0x0020, 0x0020, CRC(e4268fa6) SHA1(93f74e633c3a19755e78e0e2883109cd8ccde9a8) ) /* unknown */ -ROM_END - -/* There is a flyer with a screen shot for Lock'n'Chase at: - http://www.gamearchive.com/flyers/video/taito/locknchase_f.jpg */ - -ROM_START( lnc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "s3-3d", 0xc000, 0x1000, CRC(1ab4f2c2) SHA1(c5890b768172cd2e3912b84db5f71546969ad7e2) ) - ROM_LOAD( "s2-3c", 0xd000, 0x1000, CRC(5e46b789) SHA1(00b2510e07eb565cb373db798dd537191b0b7cc8) ) - ROM_LOAD( "s1-3b", 0xe000, 0x1000, CRC(1308a32e) SHA1(da64fe7b76f5ac8ac35460e6c789ab1e986c78ef) ) - ROM_LOAD( "s0-3a", 0xf000, 0x1000, CRC(beb4b1fc) SHA1(166a96b5757946231f3619844366218065412935) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sa-1h", 0xf000, 0x1000, CRC(379387ec) SHA1(29d37f04c64ed53a2573962dfa9c0623b89e0045) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "s4-11l", 0x0000, 0x1000, CRC(a2162a9e) SHA1(2729cef805c8e863af540424faa1aca82d3525e2) ) - ROM_LOAD( "s5-11m", 0x1000, 0x1000, CRC(12f1c2db) SHA1(004e25a53ffa197e1238dfa53c530f128cf40516) ) - ROM_LOAD( "s6-13l", 0x2000, 0x1000, CRC(d21e2a57) SHA1(0462cd3a5be87da97ed1bd8b79f8822cd5a33cf1) ) - ROM_LOAD( "s7-13m", 0x3000, 0x1000, CRC(c4f247cd) SHA1(2c86bf479169981daf0378eb0b3e1a600937aaf2) ) - ROM_LOAD( "s8-15l", 0x4000, 0x1000, CRC(672a92d0) SHA1(1bc89f6a76873504aa0fcfa0c6a43e8546edde27) ) - ROM_LOAD( "s9-15m", 0x5000, 0x1000, CRC(87c8ee9a) SHA1(158019b18bc3e5104bebeb241c077a706bf72ff2) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "sc-5m", 0x0000, 0x0020, CRC(2a976ebe) SHA1(f3c1b0d98f431f9cd0d5fa009fafa1115aabe6e5) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( wtennis ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tx", 0xc000, 0x0800, CRC(fd343474) SHA1(1e1fd3f20ce1c7533767344f924029c8c62139a1) ) - ROM_LOAD( "t4", 0xd000, 0x1000, CRC(e465d82c) SHA1(c357dcf17539150425574985afa559db2e6ab834) ) - ROM_LOAD( "t3", 0xe000, 0x1000, CRC(8f090eab) SHA1(baeef8ee05010bf44cf8865a22911f3d458df1b0) ) - ROM_LOAD( "t2", 0xf000, 0x1000, CRC(d2f9dd30) SHA1(1faa088806e8627b5e561d8b99054d295045dcfb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t1", 0xf000, 0x1000, CRC(40737ea7) SHA1(27e8474028385574035d3982f9c576bb9bb3facd) ) /* starts at 0000, not f000; 0000-01ff is RAM */ - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t7", 0x0000, 0x1000, CRC(aa935169) SHA1(965f41a9fcf35ac7c899e79acd0a85ab588d5831) ) - ROM_LOAD( "t10", 0x1000, 0x1000, CRC(746be927) SHA1(a3361384437ac7c494fde92953c5aa5e3c104644) ) - ROM_LOAD( "t6", 0x2000, 0x1000, CRC(4fb8565d) SHA1(6de865e41dcba45190af0753baebf5ab66e4eeb4) ) - ROM_LOAD( "t9", 0x3000, 0x1000, CRC(4893286d) SHA1(f2c330286272b8d334b887bc4dd9608158249fc3) ) - ROM_LOAD( "t5", 0x4000, 0x1000, CRC(ea1efa5d) SHA1(dd8ef1991d74778e6844a669e6de649e1130ec79) ) - ROM_LOAD( "t8", 0x5000, 0x1000, CRC(542ace7b) SHA1(b1423d39302ad7d98c9223d8b1d6d062b7676dd9) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "mb7051.m5", 0x0000, 0x0020, CRC(f051cb28) SHA1(6aebccd38ba7887caff248c8acddb8e14526f1e7) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( mmonkey ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mmonkey.e4", 0xc000, 0x1000, CRC(8d31bf6a) SHA1(77b44d8e2b4db148727e7bfc5162c7e9e9cfc662) ) - ROM_LOAD( "mmonkey.d4", 0xd000, 0x1000, CRC(e54f584a) SHA1(a03fef09f6a0bb6802b33b28c45548efb85cda5c) ) - ROM_LOAD( "mmonkey.b4", 0xe000, 0x1000, CRC(399a161e) SHA1(0eb3c5031a7d8c7b14019e215b18dac24a9e70dd) ) - ROM_LOAD( "mmonkey.a4", 0xf000, 0x1000, CRC(f7d3d1e3) SHA1(ff650a833e5e8975fe5b4a644ce6c35de5e04740) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "mmonkey.h1", 0xf000, 0x1000, CRC(5bcb2e81) SHA1(60fb8fd83c83b278e3aaf96f0b6dbefbc1eef0f7) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mmonkey.l11", 0x0000, 0x1000, CRC(b6aa8566) SHA1(bc90d4cfa9a221477d1989fea532621ce3e76439) ) - ROM_LOAD( "mmonkey.m11", 0x1000, 0x1000, CRC(6cc4d0c4) SHA1(f43450e97dd0c6d0a269c06e4c4253d0814590e9) ) - ROM_LOAD( "mmonkey.l13", 0x2000, 0x1000, CRC(2a343b7e) SHA1(1dba32a83db933096b9a9fbcfd8e0290aba76483) ) - ROM_LOAD( "mmonkey.m13", 0x3000, 0x1000, CRC(0230b50d) SHA1(d62b5d1be35c8bf29483fb616cd7e3949a422e76) ) - ROM_LOAD( "mmonkey.l14", 0x4000, 0x1000, CRC(922bb3e1) SHA1(72d2017e80bea7700a3a61a06882839ecffcabe8) ) - ROM_LOAD( "mmonkey.m14", 0x5000, 0x1000, CRC(f943e28c) SHA1(6ff536a21f34cbb958f6d0f84791102938966ff3) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6331.m5", 0x0000, 0x0020, CRC(55e28b32) SHA1(b73f85224738252dc8dbb38a54250dcfe1fc3ae3) ) /* palette */ - ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) ) /* RAS/CAS logic - not used */ -ROM_END - -ROM_START( brubber ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - /* a000-bfff space for the service ROM */ - ROM_LOAD( "brubber.12c", 0xc000, 0x2000, CRC(b5279c70) SHA1(5fb1c50040dc4e9444aed440e2c3cf4c79b72311) ) - ROM_LOAD( "brubber.12d", 0xe000, 0x2000, CRC(b2ce51f5) SHA1(5e38ea24bcafef1faba023def96532abd6f97d38) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "bnj6c.bin", 0xf000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bnj4e.bin", 0x0000, 0x2000, CRC(b864d082) SHA1(cacf71fa6c0f7121d077381a0ff6222f534295ab) ) - ROM_LOAD( "bnj4f.bin", 0x2000, 0x2000, CRC(6c31d77a) SHA1(5e52554f594f569527af4768d244cc40a7b4460a) ) - ROM_LOAD( "bnj4h.bin", 0x4000, 0x2000, CRC(5824e6fb) SHA1(e98f0eb476b8f033f5cc70a6e503afc4e651fd45) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "bnj10e.bin", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "bnj10f.bin", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) -ROM_END - -ROM_START( bnj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "bnj12b.bin", 0xa000, 0x2000, CRC(ba3e3801) SHA1(56284076d938c33c1492a07281b936681eb09808) ) - ROM_LOAD( "bnj12c.bin", 0xc000, 0x2000, CRC(fb3a2cdd) SHA1(4a964389cc8035b9264d4cb133eb6d3826e74b95) ) - ROM_LOAD( "bnj12d.bin", 0xe000, 0x2000, CRC(b88bc99e) SHA1(08a4ddea4037f9e14d0d9f4262a1746b0a3a140c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "bnj6c.bin", 0xf000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bnj4e.bin", 0x0000, 0x2000, CRC(b864d082) SHA1(cacf71fa6c0f7121d077381a0ff6222f534295ab) ) - ROM_LOAD( "bnj4f.bin", 0x2000, 0x2000, CRC(6c31d77a) SHA1(5e52554f594f569527af4768d244cc40a7b4460a) ) - ROM_LOAD( "bnj4h.bin", 0x4000, 0x2000, CRC(5824e6fb) SHA1(e98f0eb476b8f033f5cc70a6e503afc4e651fd45) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "bnj10e.bin", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "bnj10f.bin", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) -ROM_END - -ROM_START( caractn ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - /* a000-bfff space for the service ROM */ - ROM_LOAD( "c7.12c", 0xc000, 0x2000, CRC(b5279c70) SHA1(5fb1c50040dc4e9444aed440e2c3cf4c79b72311) ) - ROM_LOAD( "c6.12d", 0xe000, 0x2000, CRC(1d6957c4) SHA1(bd30f00187e56eef9adcc167dd752a3bb616454c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "c5.6c", 0xf000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c0.4e", 0x0000, 0x2000, CRC(bf3ea732) SHA1(d98970b2dda8c3435506656909e5e3aa70d45652) ) - ROM_LOAD( "c1.4f", 0x2000, 0x2000, CRC(9789f639) SHA1(77a4d494698718c052fa1967242a0e4fa263b6ad) ) - ROM_LOAD( "c2.4h", 0x4000, 0x2000, CRC(51dcc111) SHA1(9753d682ba2f4fb4d3b14783ac35ad214bf788b5) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c3.10e", 0x0000, 0x1000, CRC(f4e9eb49) SHA1(b356512d2ebd4e2005e76496b434e5ecebadb251) ) - ROM_LOAD( "c4.10f", 0x1000, 0x1000, CRC(a9ffacb4) SHA1(49d5f9c0b695f474197fbb761bacc065b6b5808a) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "tbp18s030.11a", 0x0000, 0x020, CRC(318d25b9) SHA1(9a82619c94f5911d01ddf6b85f7e30cdc6f1d0a3) ) /* palette */ - ROM_LOAD( "tbp18s030.cpu", 0x0020, 0x020, CRC(6b0c2942) SHA1(7d25acc753923b265792fc78f8fc70175c0e0ec2) ) /* RAS/CAS logic - not used */ - - ROM_REGION( 0x0140, REGION_PLDS, 0 ) - ROM_LOAD( "pal10l8.10k", 0x0000, 0x002c, CRC(dc72a65f) SHA1(d61c149d4df93a2074debf7c5e46557c6b06d10d) ) - ROM_LOAD( "pal16r4a.2d", 0x0030, 0x0104, CRC(fd1f3aa2) SHA1(67f1e74fcfc0e2301204ed58b8c6e35d4866a344) ) -ROM_END - -ROM_START( zoar ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "zoar15", 0xd000, 0x1000, CRC(1f0cfdb7) SHA1(ce7e871f17c52b6eaf99cfb721e702e4f0e6bb25) ) - ROM_LOAD( "zoar16", 0xe000, 0x1000, CRC(7685999c) SHA1(fabe38d71e797ae0b04b5d3aba228b4c85d96185) ) - ROM_LOAD( "zoar17", 0xf000, 0x1000, CRC(619ea867) SHA1(0a3735384f03a1052d54ab799b5e37038d8ece2a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "zoar09", 0xf000, 0x1000, CRC(18d96ff1) SHA1(671d934a451e0b042450ea86d24c3751a39b38f8) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "zoar00", 0x0000, 0x1000, CRC(fd2dcb64) SHA1(1a49a6ec6ffd354d872b1af83d55ec96e8215b2b) ) - ROM_LOAD( "zoar01", 0x1000, 0x1000, CRC(74d3ca48) SHA1(2c75ea246f86a057467deb35ef6a6e72f667dd84) ) - ROM_LOAD( "zoar03", 0x2000, 0x1000, CRC(77b7df14) SHA1(a1cbc214fc849b7e3417b1156d1e4440ab67f631) ) - ROM_LOAD( "zoar04", 0x3000, 0x1000, CRC(9be786de) SHA1(480733a1438dffa4b0fac6f76bf84a0deec5d1fa) ) - ROM_LOAD( "zoar06", 0x4000, 0x1000, CRC(07638c71) SHA1(1a7fc49657ac7ac0033bd60c86663bd615079230) ) - ROM_LOAD( "zoar07", 0x5000, 0x1000, CRC(f4710f25) SHA1(08b4cc4252f83a689cded38d9a5a50f55ee6beee) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "zoar10", 0x0000, 0x0800, CRC(aa8bcab8) SHA1(81f1a9fd754fd6f8030ff6b5aa80c7670be9d02e) ) - ROM_LOAD( "zoar11", 0x0800, 0x0800, CRC(dcdad357) SHA1(d1569e1d38f14f5f457547e24df4f80f726c6157) ) - ROM_LOAD( "zoar12", 0x1000, 0x0800, CRC(ed317e40) SHA1(db70889af5f233ca71acf734abfbdb74b6a393c0) ) - - ROM_REGION( 0x1000, REGION_GFX3, 0 ) /* background tilemaps */ - ROM_LOAD( "zoar13", 0x0000, 0x1000, CRC(8fefa960) SHA1(614026aa71703dd3898e470f45730e5c6934b31b) ) - - ROM_REGION( 0x3000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "zoar02", 0x0000, 0x1000, CRC(d8c3c122) SHA1(841006cc84622e851df462a64696b64bb8cb62a1) ) - ROM_LOAD( "zoar05", 0x1000, 0x1000, CRC(05dc6b09) SHA1(197c720544a090e12980513b441a2b9cf04e212f) ) - ROM_LOAD( "zoar08", 0x2000, 0x1000, CRC(9a148551) SHA1(db92dd7552c6f76a062910f37a3fe3524fdffd38) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "z20-1l", 0x0000, 0x0020, CRC(a63f0a07) SHA1(16532d3ac0536ad4b712005fd722ee8c14d02e9b) ) - ROM_LOAD( "z21-1l", 0x0020, 0x0020, CRC(5e1e5788) SHA1(56068b209cc7c734bbcbb9858f40faa6474c8095) ) -ROM_END - -ROM_START( disco ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "disco.w5", 0xa000, 0x1000, CRC(b2c87b78) SHA1(4095f0052ff0ac35ecd2ec1c1e99d21283d336e1) ) - ROM_LOAD( "disco.w4", 0xb000, 0x1000, CRC(ad7040ee) SHA1(287a4ff06edda4c66e2351e49a94212728aacb4e) ) - ROM_LOAD( "disco.w3", 0xc000, 0x1000, CRC(12fb4f08) SHA1(d6095f20d8676df89b1459134b5521ac311ddded) ) - ROM_LOAD( "disco.w2", 0xd000, 0x1000, CRC(73f6fb2f) SHA1(7b75b825d9bf7e512e054762500f79c18a276e1f) ) - ROM_LOAD( "disco.w1", 0xe000, 0x1000, CRC(ee7b536b) SHA1(b2de5da15cee1d80391eafd0a08361803f859c89) ) - ROM_LOAD( "disco.w0", 0xf000, 0x1000, CRC(7c26e76b) SHA1(952e91c4acc18d01b0e2c3efd764da8768f583da) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "disco.w6", 0xf000, 0x1000, CRC(d81e781e) SHA1(bde510bfed06a13bd56bf7ddbf220e7cf82f79b6) ) - - /* no gfx1 */ - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "disco.clr", 0x0000, 0x0020, CRC(a393f913) SHA1(42dce159283427064b3f5ce3a6e2189744ecd943) ) -ROM_END - -ROM_START( discof ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "w5-f", 0xa000, 0x1000, CRC(9d53c71c) SHA1(53c410cfa4fbbfd08e1c3cf7aeba1c9627171a71) ) - ROM_LOAD( "w4-f", 0xb000, 0x1000, CRC(c1f8d747) SHA1(33f5fe73d1851ef4da670075d1aec1550e0417ce) ) - ROM_LOAD( "w3-f", 0xc000, 0x1000, CRC(9aadd252) SHA1(c6da7ef46333d525e676c59f03ccc908108b41ba) ) - ROM_LOAD( "w2-f", 0xd000, 0x1000, CRC(f131a5bb) SHA1(84b7dea112dce12e5cb235a13f6dc4edcfb18c06) ) - ROM_LOAD( "w1-f", 0xe000, 0x1000, CRC(c8ec57c5) SHA1(904a9ed0a7f1230c611bf473b9bc52e63eb56dbe) ) - ROM_LOAD( "w0-f", 0xf000, 0x1000, CRC(b3787a92) SHA1(7f40621dc739c1108a5df43142ab04709a380219) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "disco.w6", 0xf000, 0x1000, CRC(d81e781e) SHA1(bde510bfed06a13bd56bf7ddbf220e7cf82f79b6) ) - - /* no gfx1 */ - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "disco.clr", 0x0000, 0x0020, CRC(a393f913) SHA1(42dce159283427064b3f5ce3a6e2189744ecd943) ) -ROM_END - -ROM_START( sdtennis ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ao_08.12b", 0xa000, 0x2000, CRC(6193724c) SHA1(97239c5aa8c8cd1812fba1b15be4d9a48eb0651a) ) - ROM_LOAD( "ao_07.12c", 0xc000, 0x2000, CRC(064888db) SHA1(f7bb728ab3408bb553191d9e131a441db1b39666) ) - ROM_LOAD( "ao_06.12d", 0xe000, 0x2000, CRC(413c984c) SHA1(1431df4db52d621ba39fd47dbd49da103b5c0bcf) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ao_05.6c", 0xf000, 0x1000, CRC(46833e38) SHA1(420831149a566199d6a3c74ef3df0687b4ddcbe4) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ao_00.4e", 0x0000, 0x2000, CRC(f4e0cbd6) SHA1(a2ede0ce4a26957a5d3b62872a42b8979f5000aa) ) - ROM_LOAD( "ao_01.4f", 0x2000, 0x2000, CRC(f99029da) SHA1(45bc56ff6284d02371d5e1cd5239be665f9e56c7) ) - ROM_LOAD( "ao_02.4h", 0x4000, 0x2000, CRC(c3077555) SHA1(addfc67735dc22dfed9c4c4ec8d9dcf590c76737) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ao_03.10e", 0x0000, 0x1000, CRC(1977db9b) SHA1(d175974967fdeb608df668089fa2a14b2d1609e6) ) - ROM_LOAD( "ao_04.10f", 0x1000, 0x1000, CRC(921952af) SHA1(4e9248f3493a5f4651278f27c11f507571242317) ) -ROM_END - -static void decrypt_C10707_cpu(int cpu, int region) -{ - UINT8 *decrypt = auto_malloc(0x10000); - UINT8 *rom = memory_region(region); - offs_t A; - - memory_set_decrypted_region(cpu, 0x0000, 0xffff, decrypt); - - /* Swap bits 5 & 6 for opcodes */ - for (A = 0;A < 0x10000;A++) - decrypt[A] = swap_bits_5_6(rom[A]); - - if (cpu == 0) - decrypted = decrypt; -} - -static READ8_HANDLER( wtennis_reset_hack_r ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - /* Otherwise the game goes into test mode and there is no way out that I - can see. I'm not sure how it can work, it probably somehow has to do - with the tape system */ - - RAM[0xfc30] = 0; - - return RAM[0xc15f]; -} - -static DRIVER_INIT( btime ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - - decrypted = auto_malloc(0x10000); - memory_set_decrypted_region(0, 0x0000, 0xffff, decrypted); - - /* For now, just copy the RAM array over to ROM. Decryption will happen */ - /* at run time, since the CPU applies the decryption only if the previous */ - /* instruction did a memory write. */ - memcpy(decrypted,rom,0x10000); -} - -static DRIVER_INIT( zoar ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - - /* At location 0xD50A is what looks like an undocumented opcode. I tried - implementing it given what opcode 0x23 should do, but it still didn't - work in demo mode. So this could be another protection or a bad ROM read. - I'm NOPing it out for now. */ - memset(&rom[0xd50a],0xea,8); - - init_btime(machine); -} - -static DRIVER_INIT( lnc ) -{ - decrypt_C10707_cpu(0, REGION_CPU1); -} - -static DRIVER_INIT( cookrace ) -{ - memcpy(&sound_rambase[0x200], memory_region(REGION_CPU2) + 0xf200, 0x200); - init_lnc(machine); -} - -static DRIVER_INIT( wtennis ) -{ - memcpy(&sound_rambase[0x200], memory_region(REGION_CPU2) + 0xf200, 0x200); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc15f, 0xc15f, 0, 0, wtennis_reset_hack_r); - init_lnc(machine); -} - -static DRIVER_INIT( sdtennis ) -{ - decrypt_C10707_cpu(0, REGION_CPU1); - decrypt_C10707_cpu(1, REGION_CPU2); -} - - -GAME( 1982, btime, 0, btime, btime, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 1)", 0 ) -GAME( 1982, btime2, btime, btime, btime, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 2)", 0 ) -GAME( 1982, btimem, btime, btime, btime, btime, ROT270, "Data East (Bally Midway license)", "Burger Time (Midway)", 0 ) -GAME( 1982, cookrace, btime, cookrace, cookrace, cookrace,ROT270, "bootleg", "Cook Race", 0 ) -GAME( 1981, lnc, 0, lnc, lnc, lnc, ROT270, "Data East Corporation", "Lock'n'Chase", 0 ) -GAME( 1982, wtennis, 0, wtennis, wtennis, wtennis, ROT270, "bootleg", "World Tennis", 0 ) -GAME( 1982, mmonkey, 0, mmonkey, mmonkey, lnc, ROT270, "Technos + Roller Tron", "Minky Monkey", 0 ) -GAME( 1982, brubber, 0, bnj, bnj, lnc, ROT270, "Data East", "Burnin' Rubber", 0 ) -GAME( 1982, bnj, brubber, bnj, bnj, lnc, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump", 0 ) -GAME( 1982, caractn, brubber, bnj, bnj, lnc, ROT270, "bootleg", "Car Action", 0 ) -GAME( 1982, zoar, 0, zoar, zoar, zoar, ROT270, "Data East USA", "Zoar", 0 ) -GAME( 1982, disco, 0, disco, disco, btime, ROT270, "Data East", "Disco No.1", 0 ) -GAME( 1982, discof, disco, disco, disco, btime, ROT270, "Data East", "Disco No.1 (Rev.F)", 0 ) -GAME( 1983, sdtennis, 0, bnj, sdtennis, sdtennis,ROT270, "Data East Corporation", "Super Doubles Tennis", 0 ) diff --git a/src/drivers/btoads.c b/src/drivers/btoads.c deleted file mode 100644 index 952d43e62..000000000 --- a/src/drivers/btoads.c +++ /dev/null @@ -1,407 +0,0 @@ -/************************************************************************* - - BattleToads - - driver by Aaron Giles - -**************************************************************************/ - -#include "driver.h" -#include "cpu/tms34010/tms34010.h" -#include "vidhrdw/tlc34076.h" -#include "btoads.h" -#include "sound/bsmt2000.h" - - - -/************************************* - * - * Global variables - * - *************************************/ - -static UINT8 main_to_sound_data; -static UINT8 main_to_sound_ready; - -static UINT8 sound_to_main_data; -static UINT8 sound_to_main_ready; -static UINT8 sound_int_state; - - - -/************************************* - * - * Machine init - * - *************************************/ - -static MACHINE_RESET( btoads ) -{ - tlc34076_reset(6); -} - - - -/************************************* - * - * Main -> sound CPU communication - * - *************************************/ - -static void delayed_sound_w(int param) -{ - main_to_sound_data = param; - main_to_sound_ready = 1; - cpu_triggerint(1); - - /* use a timer to make long transfers faster */ - timer_set(TIME_IN_USEC(50), 0, 0); -} - - -static WRITE16_HANDLER( main_sound_w ) -{ - if (ACCESSING_LSB) - timer_set(TIME_NOW, data & 0xff, delayed_sound_w); -} - - -static READ16_HANDLER( special_port_4_r ) -{ - int result = readinputport(4) & ~0x81; - - if (sound_to_main_ready) - result |= 0x01; - if (main_to_sound_ready) - result |= 0x80; - return result; -} - - -static READ16_HANDLER( main_sound_r ) -{ - sound_to_main_ready = 0; - return sound_to_main_data; -} - - - -/************************************* - * - * Sound -> main CPU communication - * - *************************************/ - -static WRITE8_HANDLER( sound_data_w ) -{ - sound_to_main_data = data; - sound_to_main_ready = 1; -} - - -static READ8_HANDLER( sound_data_r ) -{ - main_to_sound_ready = 0; - return main_to_sound_data; -} - - -static READ8_HANDLER( sound_ready_to_send_r ) -{ - return sound_to_main_ready ? 0x00 : 0x80; -} - - -static READ8_HANDLER( sound_data_ready_r ) -{ - if (activecpu_get_pc() == 0xd50 && !main_to_sound_ready) - cpu_spinuntil_int(); - return main_to_sound_ready ? 0x00 : 0x80; -} - - - -/************************************* - * - * Sound CPU interrupt generation - * - *************************************/ - -static INTERRUPT_GEN( sound_interrupt ) -{ - if (sound_int_state & 0x80) - { - cpunum_set_input_line(1, 0, ASSERT_LINE); - sound_int_state = 0x00; - } -} - - -static WRITE8_HANDLER( sound_int_state_w ) -{ - if (!(sound_int_state & 0x80) && (data & 0x80)) - cpunum_set_input_line(1, 0, CLEAR_LINE); - - sound_int_state = data; -} - - - -/************************************* - * - * Sound CPU BSMT2000 communication - * - *************************************/ - -static READ8_HANDLER( bsmt_ready_r ) -{ - return 0x80; -} - - -static WRITE8_HANDLER( bsmt2000_port_w ) -{ - UINT16 reg = offset >> 8; - UINT16 val = ((offset & 0xff) << 8) | data; - BSMT2000_data_0_w(reg, val, 0); -} - - - -/************************************* - * - * Main CPU memory map - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000000, 0x003fffff) AM_RAM - AM_RANGE(0x20000000, 0x2000007f) AM_READ(input_port_0_word_r) - AM_RANGE(0x20000080, 0x200000ff) AM_READ(input_port_1_word_r) - AM_RANGE(0x20000100, 0x2000017f) AM_READ(input_port_2_word_r) - AM_RANGE(0x20000180, 0x200001ff) AM_READ(input_port_3_word_r) - AM_RANGE(0x20000200, 0x2000027f) AM_READ(special_port_4_r) - AM_RANGE(0x20000280, 0x200002ff) AM_READ(input_port_5_word_r) - AM_RANGE(0x20000000, 0x200000ff) AM_WRITE(MWA16_RAM) AM_BASE(&btoads_sprite_scale) - AM_RANGE(0x20000100, 0x2000017f) AM_WRITE(MWA16_RAM) AM_BASE(&btoads_sprite_control) - AM_RANGE(0x20000180, 0x200001ff) AM_WRITE(btoads_display_control_w) - AM_RANGE(0x20000200, 0x2000027f) AM_WRITE(btoads_scroll0_w) - AM_RANGE(0x20000280, 0x200002ff) AM_WRITE(btoads_scroll1_w) - AM_RANGE(0x20000300, 0x2000037f) AM_READWRITE(btoads_paletteram_r, btoads_paletteram_w) - AM_RANGE(0x20000380, 0x200003ff) AM_READWRITE(main_sound_r, main_sound_w) - AM_RANGE(0x20000400, 0x2000047f) AM_WRITE(btoads_misc_control_w) - AM_RANGE(0x40000000, 0x4000000f) AM_WRITE(MWA16_NOP) /* watchdog? */ - AM_RANGE(0x60000000, 0x6003ffff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xa0000000, 0xa03fffff) AM_READWRITE(btoads_vram_fg_display_r, btoads_vram_fg_display_w) AM_BASE(&btoads_vram_fg0) - AM_RANGE(0xa4000000, 0xa43fffff) AM_READWRITE(btoads_vram_fg_draw_r, btoads_vram_fg_draw_w) AM_BASE(&btoads_vram_fg1) - AM_RANGE(0xa8000000, 0xa87fffff) AM_RAM AM_BASE(&btoads_vram_fg_data) - AM_RANGE(0xa8800000, 0xa8ffffff) AM_WRITE(MWA16_NOP) - AM_RANGE(0xb0000000, 0xb03fffff) AM_READWRITE(btoads_vram_bg0_r, btoads_vram_bg0_w) AM_BASE(&btoads_vram_bg0) - AM_RANGE(0xb4000000, 0xb43fffff) AM_READWRITE(btoads_vram_bg1_r, btoads_vram_bg1_w) AM_BASE(&btoads_vram_bg1) - AM_RANGE(0xc0000000, 0xc00003ff) AM_READWRITE(tms34020_io_register_r, tms34020_io_register_w) - AM_RANGE(0xfc000000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory map - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(bsmt2000_port_w) - AM_RANGE(0x8000, 0x8000) AM_READWRITE(sound_data_r, sound_data_w) - AM_RANGE(0x8002, 0x8002) AM_WRITE(sound_int_state_w) - AM_RANGE(0x8004, 0x8004) AM_READ(sound_data_ready_r) - AM_RANGE(0x8005, 0x8005) AM_READ(sound_ready_to_send_r) - AM_RANGE(0x8006, 0x8006) AM_READ(bsmt_ready_r) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( btoads ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_SERVICE_NO_TOGGLE( 0x0002, IP_ACTIVE_LOW ) - PORT_BIT( 0xfffd, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds )) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0000, "Common Coin Mech") - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, "Three Players") - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Blood Free Mode") - PORT_DIPSETTING( 0x0020, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Credit Retention") - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * 34010 configuration - * - *************************************/ - -static struct tms34010_config tms_config = -{ - 0, /* halt on reset */ - NULL, /* generate interrupt */ - btoads_to_shiftreg, /* write to shiftreg function */ - btoads_from_shiftreg, /* read from shiftreg function */ - 0, /* display address changed */ - 0 /* display interrupt callback */ -}; - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct BSMT2000interface bsmt2000_interface = -{ - 12, - REGION_SOUND1 -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( btoads ) - - MDRV_CPU_ADD(TMS34020, 40000000/TMS34020_CLOCK_DIVIDER) - MDRV_CPU_CONFIG(tms_config) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_IO_MAP(sound_io_map,0) - MDRV_CPU_PERIODIC_INT(sound_interrupt,TIME_IN_HZ(183)) - - MDRV_MACHINE_RESET(btoads) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (256 - 224)) / (60 * 256))) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512,256) - MDRV_SCREEN_VISIBLE_AREA(0,511, 0,223) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(btoads) - MDRV_VIDEO_UPDATE(btoads) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(BSMT2000, 24000000) - MDRV_SOUND_CONFIG(bsmt2000_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( btoads ) - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound program */ - ROM_LOAD( "btu102.bin", 0x0000, 0x8000, CRC(a90b911a) SHA1(6ec25161e68df1c9870d48cc2b1f85cd1a49aba9) ) - - ROM_REGION16_LE( 0x800000, REGION_USER1, 0 ) /* 34020 code */ - ROM_LOAD32_WORD( "btu120.bin", 0x000000, 0x400000, CRC(0dfd1e35) SHA1(733a0a4235bebd598c600f187ed2628f28cf9bd0) ) - ROM_LOAD32_WORD( "btu121.bin", 0x000002, 0x400000, CRC(df7487e1) SHA1(67151b900767bb2653b5261a98c81ff8827222c3) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* BSMT data */ - ROM_LOAD( "btu109.bin", 0x00000, 0x200000, CRC(d9612ddb) SHA1(f186dfb013e81abf81ba8ac5dc7eb731c1ad82b6) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1994, btoads, 0, btoads, btoads, 0, ROT0, "Rare", "Battle Toads", 0 ) diff --git a/src/drivers/bublbobl.c b/src/drivers/bublbobl.c deleted file mode 100644 index 6cd0ebe1a..000000000 --- a/src/drivers/bublbobl.c +++ /dev/null @@ -1,1294 +0,0 @@ -/*************************************************************************** - -Tokio (c) 1986 Taito -Bubble Bobble (c) 1986 Taito - -driver by Chris Moore, Nicola Salmoria -also based on Tokio driver by Marcelo de G. Malheiros - - -Main clock: XTAL = 24 MHz -Horizontal video frequency: HSYNC = XTAL/4/384 = 15.625 kHz -Video frequency: VSYNC = HSYNC/264 = 59.185606 Hz -VBlank duration: 1/VSYNC * (40/264) = 2560 us - -**************************************************************************** - -Bubble Bobble ROM info - -CPU Board ---------- - | Taito |Romstar | ????? |Romstar | - | | |missing |mode sel| -17 CU1 | A78-01 | -> | -> | -> | protection mcu (JPH1011P) -49 PAL1 | A78-02 | -> | -> | -> | address decoder -43 PAL2 | A78-03 | -> | -> | -> | address decoder -12 PAL3 | A78-04 | -> | -> | -> | address decoder -53 empty | | | | | main prg -52 ROM1 | A78-05 | A78-21 | A78-22 | A78-24 | main prg -51 ROM2 | A78-06 | -> | A78-23 | A78-25 | main prg -46 ROM4 | A78-07 | -> | -> | -> | sound prg -37 ROM3 | A78-08 | -> | -> | -> | sub prg - -Video Board ------------ -12 ROM1 | A78-09 | -> | -> | -> | gfx -13 ROM2 | A78-10 | -> | -> | -> | gfx -14 ROM3 | A78-11 | -> | -> | -> | gfx -15 ROM4 | A78-12 | -> | -> | -> | gfx -16 ROM5 | A78-13 | -> | -> | -> | gfx -17 ROM6 | A78-14 | -> | -> | -> | gfx -18 empty | | | | | gfx -19 empty | | | | | gfx -30 ROM7 | A78-15 | -> | -> | -> | gfx -31 ROM8 | A78-16 | -> | -> | -> | gfx -32 ROM9 | A78-17 | -> | -> | -> | gfx -33 ROM10 | A78-18 | -> | -> | -> | gfx -34 ROM11 | A78-19 | -> | -> | -> | gfx -35 ROM12 | A78-20 | -> | -> | -> | gfx -36 empty | | | | | gfx -37 empty | | | | | gfx -41 ROM13 | A71-25 | -> | -> | -> | video timing - - -Bobble Bobble memory map - -most of the address decoding is done by various PALs which haven't been read, so -the memory map is inferred by program behaviour - -CPU #1 - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0xxxxxxxxxxxxxxx R xxxxxxxx ROM 51 program ROM -10xxxxxxxxxxxxxx R xxxxxxxx ROM 52/53 program ROM (banked) -110xxxxxxxxxxxxx R/W xxxxxxxx VRAM video RAM -11100xxxxxxxxxxx R/W xxxxxxxx WORK RAM shared with CPU #2 -11101xxxxxxxxxxx R/W xxxxxxxx WORK RAM shared with CPU #2 -11110xxxxxxxxxxx R/W xxxxxxxx WORK RAM shared with CPU #2 -1111100xxxxxxxxx R/W xxxxxxxx COLOR palette RAM -111110100-----00 W xxxxxxxx SOUND command for sound CPU -111110100-----01 W -------- n.c. -111110100-----10 W -------- n.c. -111110100-----11 W -------x SRESET reset sound CPU and sound chips -111110100-----00 R xxxxxxxx answer from sound CPU (not used) -111110100-----01 R -------x message pending from sound CPU to CPU #1 (not used) -111110100-----01 R ------x- message pending from CPU #1 to sound CPU (not used) -111110100-----10 R n.c. -111110100-----11 R n.c. -111110101------- W -------- TRES? watchdog reset -1111101100------ W -------- NMIRQ trigger NMI on CPU #2 (not used) -1111101101------ W -----xxx ROM bank -1111101101------ W ----x--- n.c. -1111101101------ W ---x---- SBRES reset CPU #2 -1111101101------ W --x----- SEQRES reset MCU -1111101101------ W -x------ BLACK blank screen -1111101101------ W x------- VHINV flip screen -1111101110------ W -------- n.c. -1111101111------ W -------- n.c. -111110111------- W -------- n.c. -111111xxxxxxxxxx R/W xxxxxxxx MCRAM RAM shared with MCU - - -CPU #2 - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0xxxxxxxxxxxxxxx R xxxxxxxx ROM 37 program ROM -111xxxxxxxxxxxxx R/W xxxxxxxx WORK RAM shared with CPU #1 [1] - -[1] The last 2kB could be used exclusively by this CPU, but they are not used at all. - - -Sound CPU - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0xxxxxxxxxxxxxxx R xxxxxxxx ROM 46 program ROM -1000xxxxxxxxxxxx R/W xxxxxxxx RAM 47 work RAM -1001-----------x R/W xxxxxxxx FMA YM2203 -1010-----------x R/W xxxxxxxx FMB YM3526 -1011----------00 R xxxxxxxx command from CPU #1 -1011----------01 R -------x message pending from sound CPU to CPU #1 -1011----------01 R ------x- message pending from CPU #1 to sound CPU -1011----------10 R n.c. -1011----------11 R n.c. -1011----------00 W xxxxxxxx answer to CPU #1 -1011----------01 W -------- sound NMI enable -1011----------10 W -------- sound NMI disable -1011----------11 W n.c. -111------------- R xxxxxxxx space for diagnostic ROM? - - -**************************************************************************** - - -Tokio -1986, Taito (Romstar License) - -PCB Layout G Pinout ----------- -------- - Component Side Solder Side -Top Board ----------------|---------------- - Ground 1 | A Ground -J1100069A CPU BOARD Video Red 2 | B Video Ground -K1100157A Video Green 3 | C Video Blue -M4300053A (sticker) Video Sync 4 | D - |------------------------------------------------------| Speaker + 5 | E Speaker - - | VOL TL074 YM2203 Z80A | Key 6 | F Key -|-| | 7 | H -| MB3731 PC010SA A71_07.IC10 | Coin Sw 8 | J -|H | Coin Meter 9 | K -| TL7700 2016 | 10 | L -|-| | Service 11 | M Slam Switch - | MC68705P5 A71_06-1.IC8 |-| 1P Start 12 | N 2P Start -|-| (A71_24.IC57) | | 13 | P -| A71_05.IC7 | | 14 | R -| | | 1P Right 15 | S 2P Right -| A71_04.IC6 | | 1P Left 16 | T 2P Left -| PC030CM PAL | | 17 | U -| A71_28-1.IC5 | | 18 | V -|G | | 19 | W -| A71_27-1.IC4 | | 20 | X -| | | 1P Fire 21 | Y 2P Fire -| | | 22 | Z -| Z80B | | -|-| |-| - | | H Pinout - | 2016 Z80B | -------- - | | 1 Ground - | 2016 | 2 Ground - | A71_01.IC1 | 3 Ground - | DSWB(8) DSWA(8) 2016 | 4 Ground - |------------------------------------------------------| 5 +5VDC -Notes: 6 +5VDC - H - 12-pin Connector for Power Input 7 +5VDC - G - 22-Way Edge Connector 8 -5VDC - PAL - MMI PAL16L8B stamped 'A71-26' (DIP20) 9 +12VDC - PC030CM - Taito Custom Ceramic IC, possibly contains a smt logic IC, 10 Key - smt resistors and smt capacitors (SIP20) 11 +12VDC - PC010SA - Taito Custom Ceramic IC, possibly contains 12 +12VDC - smt resistors and smt capacitors, sound DAC (SIP14) - MB3731 - Fujitsu MB3731 18W Power Amplifier (SIP12) - TL7700 - Texas Instruments TL7700 Supply-Voltage Supervisor/Power-On Reset IC (DIP8) -MC68705P5 - Motorola MC68705P5 Microcontroller with 2K Internal EPROM, - clock input 3.000MHz [24/8] (DIP28) - 2016 - Toshiba TMM2016BP-10 2K x8 SRAM (DIP24) - Z80A - Zilog Z8400APS Z80A CPU, clock input 3.000MHz [24/8] (DIP40) - Z80B - Zilog Z8400BPS Z80B CPU, clock input 6.000MHz [24/4] (DIP40) - YM2203 - Yamaha YM2203 Sound Chip, clock input 3.000MHz [24/8] (DIP40) - VSync - 60Hz - - ROMs - (All EPROMs are 27C256) - A71_07.IC10 Sound CPU Program - - A71_06-1.IC8 \ - A71_05.IC7 | - A71_04.IC6 | Main CPU Program - A71_28-1.IC5 | - A71_27-1.IC4 / - - A71_01.IC1 Sub CPU Program - - A71_24.IC57 68705 Microcontroller Program (Protected, Not Dumped) - - - -Bottom Board - -J1100070A VIDEO BOARD -K1100158A -K1100172A (sticker) - |------------------------------------------------------| T Pinout - | 24MHz | -------- - | | Component Side Solder Side - | 2018 | ----------------|----------- - | 2018 | Ground 1 | A Ground - | A71_25.IC41 | Ground 2 | B Ground - | 2018 | Ground 3 | C Ground - | 2018 |-| Ground 4 | D Ground - | | | 5 | E -|-| | | 6 | F -| | | 7 | H -| A71_08.IC12 A71_16.IC30 | | 8 | J -| | | 9 | K -|T A71_09.IC13 A71_17.IC31 | | 10 | L -| | | 11 | M -| A71_10.IC14 A71_18.IC32 | | 12 | N -| | | 13 | P -| A71_11.IC15 A71_19.IC33 | | 14 | R -|-| 2018 | | +5V 15 | S +5V - | A71_12.IC16 A71_20.IC34 2018 |-| +5V 16 | T +5V - | | +5V 17 | U +5V - | A71_13.IC17 A71_21.IC35 2018 | +5V 18 | V +5V - | 2018 | - | A71_14.IC18 A71_22.IC36 PC040DA | - | PC040DA | - | A71_15.IC19 A71_23.IC37 PC040DA | - |------------------------------------------------------| -Notes: - T - 36-Way Edge Connector - PC040DA - Taito Custom Ceramic IC, Video DAC (SIP19) - 2018 - Toshiba TMM2018D-45 2K x8 SRAM (DIP24) - - ROMs - - A71_25.IC41 MMI 63S141 Bipolar PROM (DIP16) - All EPROMs are 27C256 - - -**************************************************************************** - - -Notes: -- The coin inputs are handled by a custom called PC030. It would be responsible of - handling the coin counters. -- There is a weird dip switch in Bubble Bobble (SWB #7). When it is on, the game - takes the player score and the level number (increased by 1) and writes them, - byte by byte, to $F7FE and $F7FF ($F7FF receives the same data but with the - bit order reversed). After doing that, it sometimes hangs because it expects - the value at $F7FF to change. - This is done by routines $0F26 (player 1) and $0F74 (player 2). - Frankly I don't know what this could be. The schematics don't show anything - special there. A debug feature seems unlikely - why care about the score? - Could it be provision for some kind of externally controlled redemption scheme? -- "Attract Sound" in Tokio is a very relative term - it just plays a very short - sound every four rounds of demo play. - -TODO: -- the MCU is actually a 6801U4, which has additional features like internal timers - (similar to the HD63701). I've just mapped the I/O ports since that's the only - thing required for normal operation, but the program does use some of the - additional features in its special "test" mode. -- emulate the CPU #1 <-> sound CPU communication status flags (which are not used) -- why does emulating the sound CPU reset port (fa03) cause sound to stop working? -- tokio: doesn't work due to missing MCU protection emulation. -- tokio: sound support is probably incomplete. There are a couple of unknown - accesses done by the CPU, including to the YM2203 I/O ports. At the - very least, there should be some filters. - -***************************************************************************/ - -#include "driver.h" -#include "sound/2203intf.h" -#include "sound/3812intf.h" - -/* vidhrdw/bublbobl.c */ -extern UINT8 *bublbobl_objectram; -extern size_t bublbobl_objectram_size; -VIDEO_UPDATE( bublbobl ); - -/* machine/bublbobl.c */ -extern UINT8 *bublbobl_mcu_sharedram; -WRITE8_HANDLER( bublbobl_bankswitch_w ); -WRITE8_HANDLER( tokio_bankswitch_w ); -WRITE8_HANDLER( tokio_videoctrl_w ); -WRITE8_HANDLER( bublbobl_nmitrigger_w ); -READ8_HANDLER( tokio_mcu_r ); -READ8_HANDLER( tokiob_mcu_r ); -WRITE8_HANDLER( bublbobl_sound_command_w ); -WRITE8_HANDLER( bublbobl_sh_nmi_disable_w ); -WRITE8_HANDLER( bublbobl_sh_nmi_enable_w ); -READ8_HANDLER( boblbobl_ic43_a_r ); -WRITE8_HANDLER( boblbobl_ic43_a_w ); -READ8_HANDLER( boblbobl_ic43_b_r ); -WRITE8_HANDLER( boblbobl_ic43_b_w ); - -READ8_HANDLER( bublbobl_mcu_ddr1_r ); -WRITE8_HANDLER( bublbobl_mcu_ddr1_w ); -READ8_HANDLER( bublbobl_mcu_ddr2_r ); -WRITE8_HANDLER( bublbobl_mcu_ddr2_w ); -READ8_HANDLER( bublbobl_mcu_ddr3_r ); -WRITE8_HANDLER( bublbobl_mcu_ddr3_w ); -READ8_HANDLER( bublbobl_mcu_ddr4_r ); -WRITE8_HANDLER( bublbobl_mcu_ddr4_w ); -READ8_HANDLER( bublbobl_mcu_port1_r ); -WRITE8_HANDLER( bublbobl_mcu_port1_w ); -READ8_HANDLER( bublbobl_mcu_port2_r ); -WRITE8_HANDLER( bublbobl_mcu_port2_w ); -READ8_HANDLER( bublbobl_mcu_port3_r ); -WRITE8_HANDLER( bublbobl_mcu_port3_w ); -READ8_HANDLER( bublbobl_mcu_port4_r ); -WRITE8_HANDLER( bublbobl_mcu_port4_w ); - -// for 68705 bootleg -INTERRUPT_GEN( bublbobl_m68705_interrupt ); -READ8_HANDLER( bublbobl_68705_portA_r ); -WRITE8_HANDLER( bublbobl_68705_portA_w ); -WRITE8_HANDLER( bublbobl_68705_ddrA_w ); -READ8_HANDLER( bublbobl_68705_portB_r ); -WRITE8_HANDLER( bublbobl_68705_portB_w ); -WRITE8_HANDLER( bublbobl_68705_ddrB_w ); - - -#if 0 // doesn't work for some reason -static WRITE8_HANDLER(soundcpu_reset_w) -{ - cpunum_set_input_line(2, INPUT_LINE_RESET, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); -} -#endif - - -static ADDRESS_MAP_START( master_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size) - AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) - AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w) -// AM_RANGE(0xfa03, 0xfa03) AM_WRITE(soundcpu_reset_w) // doesn't work for some reason - AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w) - AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE(&bublbobl_mcu_sharedram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0x9000, 0x9000) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_READWRITE(YM3526_status_port_0_r, YM3526_control_port_0_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM3526_write_port_0_w) - AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r) AM_WRITENOP - AM_RANGE(0xb001, 0xb001) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_READNOP - AM_RANGE(0xb002, 0xb002) AM_WRITE(bublbobl_sh_nmi_disable_w) - AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE(bublbobl_mcu_ddr1_r, bublbobl_mcu_ddr1_w) - AM_RANGE(0x0001, 0x0001) AM_READWRITE(bublbobl_mcu_ddr2_r, bublbobl_mcu_ddr2_w) - AM_RANGE(0x0002, 0x0002) AM_READWRITE(bublbobl_mcu_port1_r, bublbobl_mcu_port1_w) - AM_RANGE(0x0003, 0x0003) AM_READWRITE(bublbobl_mcu_port2_r, bublbobl_mcu_port2_w) - AM_RANGE(0x0004, 0x0004) AM_READWRITE(bublbobl_mcu_ddr3_r, bublbobl_mcu_ddr3_w) - AM_RANGE(0x0005, 0x0005) AM_READWRITE(bublbobl_mcu_ddr4_r, bublbobl_mcu_ddr4_w) - AM_RANGE(0x0006, 0x0006) AM_READWRITE(bublbobl_mcu_port3_r, bublbobl_mcu_port3_w) - AM_RANGE(0x0007, 0x0007) AM_READWRITE(bublbobl_mcu_port4_r, bublbobl_mcu_port4_w) - AM_RANGE(0x0040, 0x00ff) AM_RAM - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -// The 68705 is from a bootleg, the original MCU is a 6801U4 -static ADDRESS_MAP_START( bootlegmcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x000, 0x000) AM_READWRITE(bublbobl_68705_portA_r, bublbobl_68705_portA_w) - AM_RANGE(0x001, 0x001) AM_READWRITE(bublbobl_68705_portB_r, bublbobl_68705_portB_w) - AM_RANGE(0x002, 0x002) AM_READ(input_port_0_r) // COIN - AM_RANGE(0x004, 0x004) AM_WRITE(bublbobl_68705_ddrA_w) - AM_RANGE(0x005, 0x005) AM_WRITE(bublbobl_68705_ddrB_w) - AM_RANGE(0x006, 0x006) AM_WRITENOP // ??? - AM_RANGE(0x010, 0x07f) AM_RAM - AM_RANGE(0x080, 0x7ff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bootleg_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size) - AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) - AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(bublbobl_sound_command_w) - AM_RANGE(0xfa03, 0xfa03) AM_WRITENOP // sound cpu reset - AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ??? - AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w) - AM_RANGE(0xfc00, 0xfcff) AM_RAM - AM_RANGE(0xfd00, 0xfdff) AM_RAM - AM_RANGE(0xfe00, 0xfe03) AM_READWRITE(boblbobl_ic43_a_r,boblbobl_ic43_a_w) - AM_RANGE(0xfe80, 0xfe83) AM_READWRITE(boblbobl_ic43_b_r,boblbobl_ic43_b_w) - AM_RANGE(0xff00, 0xff00) AM_READ(input_port_0_r) - AM_RANGE(0xff01, 0xff01) AM_READ(input_port_1_r) - AM_RANGE(0xff02, 0xff02) AM_READ(input_port_2_r) - AM_RANGE(0xff03, 0xff03) AM_READ(input_port_3_r) - AM_RANGE(0xff94, 0xff94) AM_WRITENOP // ??? - AM_RANGE(0xff98, 0xff98) AM_WRITENOP // ??? -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( tokio_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE(&bublbobl_objectram) AM_SIZE(&bublbobl_objectram_size) - AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE(1) - AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xfa03, 0xfa03) AM_READ(input_port_0_r) - AM_RANGE(0xfa04, 0xfa04) AM_READ(input_port_1_r) - AM_RANGE(0xfa05, 0xfa05) AM_READ(input_port_2_r) - AM_RANGE(0xfa06, 0xfa06) AM_READ(input_port_3_r) - AM_RANGE(0xfa07, 0xfa07) AM_READ(input_port_4_r) - AM_RANGE(0xfa80, 0xfa80) AM_WRITE(tokio_bankswitch_w) - AM_RANGE(0xfb00, 0xfb00) AM_WRITE(tokio_videoctrl_w) - AM_RANGE(0xfb80, 0xfb80) AM_WRITE(bublbobl_nmitrigger_w) - AM_RANGE(0xfc00, 0xfc00) AM_READNOP AM_WRITE(bublbobl_sound_command_w) // ??? - AM_RANGE(0xfe00, 0xfe00) AM_READ(tokio_mcu_r) AM_WRITENOP // ??? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tokio_slave_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x97ff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tokio_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_r) AM_WRITENOP // ??? - AM_RANGE(0x9800, 0x9800) AM_READNOP // ??? - AM_RANGE(0xa000, 0xa000) AM_WRITE(bublbobl_sh_nmi_disable_w) - AM_RANGE(0xa800, 0xa800) AM_WRITE(bublbobl_sh_nmi_enable_w) - AM_RANGE(0xb000, 0xb000) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) - AM_RANGE(0xb001, 0xb001) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) - AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM? -ADDRESS_MAP_END - - - -INPUT_PORTS_START( bublbobl ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SPECIAL ) // output: coin lockout - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) // output: select 1-way or 2-way coin counter - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // output: trigger IRQ on main CPU (jumper switchable to vblank) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // output: select read or write shared RAM - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x05, 0x04, "Mode" ) - PORT_DIPSETTING( 0x04, "Game, English" ) - PORT_DIPSETTING( 0x05, "Game, Japanese" ) - PORT_DIPSETTING( 0x01, "Test (Grid and Inputs)" ) - PORT_DIPSETTING( 0x00, "Test (RAM and Sound)" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "20K 80K 300K" ) - PORT_DIPSETTING( 0x0c, "30K 100K 400K" ) - PORT_DIPSETTING( 0x04, "40K 200K 500K" ) - PORT_DIPSETTING( 0x00, "50K 250K 500K" ) - // then more bonus lives at 1M 2M 3M 4M 5M - for all dip switch settings - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) // must be off (see notes) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "ROM Type" ) // will hang on startup if set to wrong type - PORT_DIPSETTING( 0x80, "IC52=512kb, IC53=none" ) - PORT_DIPSETTING( 0x00, "IC52=256kb, IC53=256kb" ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( boblbobl ) - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x05, 0x04, "Mode" ) - PORT_DIPSETTING( 0x04, "Game, English" ) - PORT_DIPSETTING( 0x05, "Game, Japanese" ) - PORT_DIPSETTING( 0x01, "Test (Grid and Inputs)" ) - PORT_DIPSETTING( 0x00, "Test (RAM and Sound)" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "20K 80K 300K" ) - PORT_DIPSETTING( 0x0c, "30K 100K 400K" ) - PORT_DIPSETTING( 0x04, "40K 200K 500K" ) - PORT_DIPSETTING( 0x00, "50K 250K 500K" ) - // then more bonus lives at 1M 2M 3M 4M 5M - for all dip switch settings - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPNAME( 0xc0, 0x00, "Monster Speed" ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( High ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Very_High ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) // ??? - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( sboblbob ) - PORT_INCLUDE( boblbobl ) - - PORT_MODIFY( "DSW0" ) - PORT_DIPNAME( 0x01, 0x00, "Game" ) - PORT_DIPSETTING( 0x01, "Bobble Bobble" ) - PORT_DIPSETTING( 0x00, "Super Bobble Bobble" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - - PORT_MODIFY( "DSW1" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "100 (Cheat)") -INPUT_PORTS_END - -INPUT_PORTS_START( tokio ) - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Enemies" ) - PORT_DIPSETTING( 0x01, "Few (Easy)" ) - PORT_DIPSETTING( 0x00, "Many (Hard)" ) - PORT_DIPNAME( 0x02, 0x02, "Enemy Shots" ) - PORT_DIPSETTING( 0x02, "Few (Easy)" ) - PORT_DIPSETTING( 0x00, "Many (Hard)" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100K 400K" ) - PORT_DIPSETTING( 0x08, "200K 400K" ) - PORT_DIPSETTING( 0x04, "300K 400K" ) - PORT_DIPSETTING( 0x00, "400K 400K" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "99 (Cheat)") // 6 in original version - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) // data ready from MCU - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8, 8, - RGN_FRAC(1,2), - 4, - { 0, 4, RGN_FRAC(1,2), RGN_FRAC(1,2)+4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { -1 } -}; - - - -#define MAIN_XTAL 24000000 -#define HSYNC MAIN_XTAL / 4 / 384 -#define VSYNC HSYNC / 264 -#define VBLANK 1 / VSYNC * (40 / 264) - -// handler called by the 2203 emulator when the internal timers cause an IRQ -static void irqhandler(int irq) -{ - cpunum_set_input_line(2, 0, irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_interface = -{ - 0, - 0, - 0, - 0, - irqhandler -}; - - - -static MACHINE_DRIVER_START( tokio ) - // basic machine hardware - MDRV_CPU_ADD(Z80, MAIN_XTAL/4) // 6 MHz - MDRV_CPU_PROGRAM_MAP(tokio_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - - MDRV_CPU_ADD(Z80, MAIN_XTAL/4) // 6 MHz - MDRV_CPU_PROGRAM_MAP(tokio_slave_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - - MDRV_CPU_ADD(Z80, MAIN_XTAL/8) - /* audio CPU */ // 3 MHz - MDRV_CPU_PROGRAM_MAP(tokio_sound_map, 0) // NMIs are triggered by the main CPU, IRQs are triggered by the YM2203 - - MDRV_SCREEN_REFRESH_RATE(VSYNC) // 59.185606 Hz - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(VBLANK)) // 2560 us - MDRV_INTERLEAVE(100) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_UPDATE(bublbobl) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, MAIN_XTAL/8) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.08) - MDRV_SOUND_ROUTE(1, "mono", 0.08) - MDRV_SOUND_ROUTE(2, "mono", 0.08) - MDRV_SOUND_ROUTE(3, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bublbobl ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", Z80, MAIN_XTAL/4) // 6 MHz - MDRV_CPU_PROGRAM_MAP(master_map, 0) - // IRQs are triggered by the MCU - - MDRV_CPU_ADD(Z80, MAIN_XTAL/4) // 6 MHz - MDRV_CPU_PROGRAM_MAP(slave_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - - MDRV_CPU_ADD(Z80, MAIN_XTAL/8) - /* audio CPU */ // 3 MHz - MDRV_CPU_PROGRAM_MAP(sound_map, 0) // IRQs are triggered by the YM2203 - - MDRV_CPU_ADD_TAG("mcu", M6801, 4000000/4) // actually 6801U4 // xtal is 4MHz, divided by 4 internally - MDRV_CPU_PROGRAM_MAP(mcu_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_pulse, 1) // comes from the same clock that latches the INT pin on the second Z80 - - MDRV_SCREEN_REFRESH_RATE(VSYNC) // 59.185606 Hz - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(VBLANK)) // 2560 us - MDRV_INTERLEAVE(100) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_UPDATE(bublbobl) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, MAIN_XTAL/8) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(YM3526, MAIN_XTAL/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( boblbobl ) - MDRV_IMPORT_FROM(bublbobl) - - // basic machine hardware - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(bootleg_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) // interrupt mode 1, unlike Bubble Bobble - - MDRV_CPU_REMOVE("mcu") -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bub68705 ) - MDRV_IMPORT_FROM(bublbobl) - MDRV_CPU_REMOVE("mcu") - - MDRV_CPU_ADD_TAG("mcu", M68705, 4000000/2) // xtal is 4MHz, I think it's divided by 2 internally - MDRV_CPU_PROGRAM_MAP(bootlegmcu_map, 0) - MDRV_CPU_VBLANK_INT(bublbobl_m68705_interrupt, 2) // ??? should come from the same clock which latches the INT pin on the second Z80 -MACHINE_DRIVER_END - - - -ROM_START( tokio ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* main CPU */ - ROM_LOAD( "a71-02.4", 0x00000, 0x8000, CRC(d556c908) SHA1(d5d8afb7f7888d77aa9a372dfbab75fbd0358cc3) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a71-03.5", 0x10000, 0x8000, CRC(69dacf44) SHA1(ee8c33702749c0e2562951f9f80c897d3fbd7dd7) ) - ROM_LOAD( "a71-04.6", 0x18000, 0x8000, CRC(a0a4ce0e) SHA1(c49bdcd85c760a5e7327d1b424772e1560f1a318) ) - ROM_LOAD( "a71-05.7", 0x20000, 0x8000, CRC(6da0b945) SHA1(6c80b8333dd95657f99e6ba5b6e877733ac02a8c) ) - ROM_LOAD( "a71-06.8", 0x28000, 0x8000, CRC(447d6779) SHA1(5b329b221357a9cea777415d409a6423529a925c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* video CPU */ - ROM_LOAD( "a71-01.1", 0x00000, 0x8000, CRC(0867c707) SHA1(7129974f1252b28e9e338bd3c7fcb87210dcf412) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* audio CPU */ - ROM_LOAD( "a71-07.10", 0x0000, 0x08000, CRC(f298cc7b) SHA1(ebf5c804aa07b7f198ec3e1f8d1e111cd89ebdf3) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) /* 2k for the microcontroller (68705P5) */ - ROM_LOAD( "a71-24.57", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a71-08.12", 0x00000, 0x8000, CRC(0439ab13) SHA1(84142220a6a29f0e34f7c7c751b583bf394df8ce) ) /* 1st plane */ - ROM_LOAD( "a71-09.13", 0x08000, 0x8000, CRC(edb3d2ff) SHA1(0c6e4bbc786a097f9d99220e72f98c1c795a7292) ) - ROM_LOAD( "a71-10.14", 0x10000, 0x8000, CRC(69f0888c) SHA1(1704ab6339981195cd09d581e83094c75037d18e) ) - ROM_LOAD( "a71-11.15", 0x18000, 0x8000, CRC(4ae07c31) SHA1(452d1eb5a70e7853791cd05e4578c1454477bdec) ) - ROM_LOAD( "a71-12.16", 0x20000, 0x8000, CRC(3f6bd706) SHA1(b03c534a95b71941331d3ffd9aa7069b5f05687e) ) - ROM_LOAD( "a71-13.17", 0x28000, 0x8000, CRC(f2c92aaa) SHA1(7dfdc473794a298032405ba918df8085b0bbe174) ) - ROM_LOAD( "a71-14.18", 0x30000, 0x8000, CRC(c574b7b2) SHA1(9839adce60c0017ae3997603a2aece511af226d2) ) - ROM_LOAD( "a71-15.19", 0x38000, 0x8000, CRC(12d87e7f) SHA1(327a80f08207ee66721738f7e1c53f75b5659be0) ) - ROM_LOAD( "a71-16.30", 0x40000, 0x8000, CRC(0bce35b6) SHA1(3f0496db6681c7be1e36ba41296115d158d7457a) ) /* 2nd plane */ - ROM_LOAD( "a71-17.31", 0x48000, 0x8000, CRC(deda6387) SHA1(40f0be3a71b0a03f0275da72f4124424b162318a) ) - ROM_LOAD( "a71-18.32", 0x50000, 0x8000, CRC(330cd9d7) SHA1(919f78036b760938d6aa72754be1a615f568b470) ) - ROM_LOAD( "a71-19.33", 0x58000, 0x8000, CRC(fc4b29e0) SHA1(d11393a24b5c6c04f5058b299e4b0fc773a03e4b) ) - ROM_LOAD( "a71-20.34", 0x60000, 0x8000, CRC(65acb265) SHA1(2ef940f994e76d4387be6e0d53a565813cc59636) ) - ROM_LOAD( "a71-21.35", 0x68000, 0x8000, CRC(33cde9b2) SHA1(9b227ab609e3c7c6be90c29739a57ea4959cd68e) ) - ROM_LOAD( "a71-22.36", 0x70000, 0x8000, CRC(fb98eac0) SHA1(57615c3934de5510eeeb0ba16024abda8ee95303) ) - ROM_LOAD( "a71-23.37", 0x78000, 0x8000, CRC(30bd46ad) SHA1(6e1618ed237c769d1a8d329fbd7a9f7216993215) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a.bin", 0x0000, 0x0104, CRC(6ad38519) SHA1(f7aba9bd5be74731bc4cc49a07dc3cb398873d8d) ) -ROM_END - -ROM_START( tokiou ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* main CPU */ - ROM_LOAD( "a71-27-1.4", 0x00000, 0x8000, CRC(8c180896) SHA1(bc8aeb42da4bae7db6f65b9874224f60a9bc4500) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a71-28-1.5", 0x10000, 0x8000, CRC(1b447527) SHA1(6939e6c1b8492825d18f4e96f39ff45f4c96eea2) ) - ROM_LOAD( "a71-04.6", 0x18000, 0x8000, CRC(a0a4ce0e) SHA1(c49bdcd85c760a5e7327d1b424772e1560f1a318) ) - ROM_LOAD( "a71-05.7", 0x20000, 0x8000, CRC(6da0b945) SHA1(6c80b8333dd95657f99e6ba5b6e877733ac02a8c) ) - ROM_LOAD( "a71-06-1.8", 0x28000, 0x8000, CRC(56927b3f) SHA1(33fb4e71b95664ecff1f35f6782a14101982a56d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* video CPU */ - ROM_LOAD( "a71-01.1", 0x00000, 0x8000, CRC(0867c707) SHA1(7129974f1252b28e9e338bd3c7fcb87210dcf412) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* audio CPU */ - ROM_LOAD( "a71-07.10", 0x0000, 0x08000, CRC(f298cc7b) SHA1(ebf5c804aa07b7f198ec3e1f8d1e111cd89ebdf3) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) /* 2k for the microcontroller (68705P5) */ - ROM_LOAD( "a71-24.57", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a71-08.12", 0x00000, 0x8000, CRC(0439ab13) SHA1(84142220a6a29f0e34f7c7c751b583bf394df8ce) ) /* 1st plane */ - ROM_LOAD( "a71-09.13", 0x08000, 0x8000, CRC(edb3d2ff) SHA1(0c6e4bbc786a097f9d99220e72f98c1c795a7292) ) - ROM_LOAD( "a71-10.14", 0x10000, 0x8000, CRC(69f0888c) SHA1(1704ab6339981195cd09d581e83094c75037d18e) ) - ROM_LOAD( "a71-11.15", 0x18000, 0x8000, CRC(4ae07c31) SHA1(452d1eb5a70e7853791cd05e4578c1454477bdec) ) - ROM_LOAD( "a71-12.16", 0x20000, 0x8000, CRC(3f6bd706) SHA1(b03c534a95b71941331d3ffd9aa7069b5f05687e) ) - ROM_LOAD( "a71-13.17", 0x28000, 0x8000, CRC(f2c92aaa) SHA1(7dfdc473794a298032405ba918df8085b0bbe174) ) - ROM_LOAD( "a71-14.18", 0x30000, 0x8000, CRC(c574b7b2) SHA1(9839adce60c0017ae3997603a2aece511af226d2) ) - ROM_LOAD( "a71-15.19", 0x38000, 0x8000, CRC(12d87e7f) SHA1(327a80f08207ee66721738f7e1c53f75b5659be0) ) - ROM_LOAD( "a71-16.30", 0x40000, 0x8000, CRC(0bce35b6) SHA1(3f0496db6681c7be1e36ba41296115d158d7457a) ) /* 2nd plane */ - ROM_LOAD( "a71-17.31", 0x48000, 0x8000, CRC(deda6387) SHA1(40f0be3a71b0a03f0275da72f4124424b162318a) ) - ROM_LOAD( "a71-18.32", 0x50000, 0x8000, CRC(330cd9d7) SHA1(919f78036b760938d6aa72754be1a615f568b470) ) - ROM_LOAD( "a71-19.33", 0x58000, 0x8000, CRC(fc4b29e0) SHA1(d11393a24b5c6c04f5058b299e4b0fc773a03e4b) ) - ROM_LOAD( "a71-20.34", 0x60000, 0x8000, CRC(65acb265) SHA1(2ef940f994e76d4387be6e0d53a565813cc59636) ) - ROM_LOAD( "a71-21.35", 0x68000, 0x8000, CRC(33cde9b2) SHA1(9b227ab609e3c7c6be90c29739a57ea4959cd68e) ) - ROM_LOAD( "a71-22.36", 0x70000, 0x8000, CRC(fb98eac0) SHA1(57615c3934de5510eeeb0ba16024abda8ee95303) ) - ROM_LOAD( "a71-23.37", 0x78000, 0x8000, CRC(30bd46ad) SHA1(6e1618ed237c769d1a8d329fbd7a9f7216993215) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a.bin", 0x0000, 0x0104, CRC(6ad38519) SHA1(f7aba9bd5be74731bc4cc49a07dc3cb398873d8d) ) -ROM_END - -ROM_START( tokiob ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* main CPU */ - ROM_LOAD( "2", 0x00000, 0x8000, CRC(f583b1ef) SHA1(a97b36299b51792953516224191f11decc579a38) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a71-03.5", 0x10000, 0x8000, CRC(69dacf44) SHA1(ee8c33702749c0e2562951f9f80c897d3fbd7dd7) ) - ROM_LOAD( "a71-04.6", 0x18000, 0x8000, CRC(a0a4ce0e) SHA1(c49bdcd85c760a5e7327d1b424772e1560f1a318) ) - ROM_LOAD( "a71-05.7", 0x20000, 0x8000, CRC(6da0b945) SHA1(6c80b8333dd95657f99e6ba5b6e877733ac02a8c) ) - ROM_LOAD( "6", 0x28000, 0x8000, CRC(1490e95b) SHA1(a73e1857a1029156f0b5f7f7fe34a37870e72209) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* video CPU */ - ROM_LOAD( "a71-01.1", 0x00000, 0x8000, CRC(0867c707) SHA1(7129974f1252b28e9e338bd3c7fcb87210dcf412) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* audio CPU */ - ROM_LOAD( "a71-07.10", 0x0000, 0x08000, CRC(f298cc7b) SHA1(ebf5c804aa07b7f198ec3e1f8d1e111cd89ebdf3) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a71-08.12", 0x00000, 0x8000, CRC(0439ab13) SHA1(84142220a6a29f0e34f7c7c751b583bf394df8ce) ) /* 1st plane */ - ROM_LOAD( "a71-09.13", 0x08000, 0x8000, CRC(edb3d2ff) SHA1(0c6e4bbc786a097f9d99220e72f98c1c795a7292) ) - ROM_LOAD( "a71-10.14", 0x10000, 0x8000, CRC(69f0888c) SHA1(1704ab6339981195cd09d581e83094c75037d18e) ) - ROM_LOAD( "a71-11.15", 0x18000, 0x8000, CRC(4ae07c31) SHA1(452d1eb5a70e7853791cd05e4578c1454477bdec) ) - ROM_LOAD( "a71-12.16", 0x20000, 0x8000, CRC(3f6bd706) SHA1(b03c534a95b71941331d3ffd9aa7069b5f05687e) ) - ROM_LOAD( "a71-13.17", 0x28000, 0x8000, CRC(f2c92aaa) SHA1(7dfdc473794a298032405ba918df8085b0bbe174) ) - ROM_LOAD( "a71-14.18", 0x30000, 0x8000, CRC(c574b7b2) SHA1(9839adce60c0017ae3997603a2aece511af226d2) ) - ROM_LOAD( "a71-15.19", 0x38000, 0x8000, CRC(12d87e7f) SHA1(327a80f08207ee66721738f7e1c53f75b5659be0) ) - ROM_LOAD( "a71-16.30", 0x40000, 0x8000, CRC(0bce35b6) SHA1(3f0496db6681c7be1e36ba41296115d158d7457a) ) /* 2nd plane */ - ROM_LOAD( "a71-17.31", 0x48000, 0x8000, CRC(deda6387) SHA1(40f0be3a71b0a03f0275da72f4124424b162318a) ) - ROM_LOAD( "a71-18.32", 0x50000, 0x8000, CRC(330cd9d7) SHA1(919f78036b760938d6aa72754be1a615f568b470) ) - ROM_LOAD( "a71-19.33", 0x58000, 0x8000, CRC(fc4b29e0) SHA1(d11393a24b5c6c04f5058b299e4b0fc773a03e4b) ) - ROM_LOAD( "a71-20.34", 0x60000, 0x8000, CRC(65acb265) SHA1(2ef940f994e76d4387be6e0d53a565813cc59636) ) - ROM_LOAD( "a71-21.35", 0x68000, 0x8000, CRC(33cde9b2) SHA1(9b227ab609e3c7c6be90c29739a57ea4959cd68e) ) - ROM_LOAD( "a71-22.36", 0x70000, 0x8000, CRC(fb98eac0) SHA1(57615c3934de5510eeeb0ba16024abda8ee95303) ) - ROM_LOAD( "a71-23.37", 0x78000, 0x8000, CRC(30bd46ad) SHA1(6e1618ed237c769d1a8d329fbd7a9f7216993215) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - - -/* - -bublbobl.zip - a78-05-1.52 -TAITO CORPORATION 1986 -ALL RIGHTS RESERVED -VER 0.1 4.SEP,1986 SUMMER - -Name Size CRC32 Chip Type -------------------------------------------- -a78-05-1.52 65536 0x9f8ee242 Fujitsu MBM27C512 -a78-06-1.51 32768 0x567934b6 Intel D27256 - -*/ - -ROM_START( bublbobl ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "a78-06-1.51", 0x00000, 0x08000, CRC(567934b6) SHA1(b0c4d49fd551f465d148c25c3e80b278835e2f0d) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a78-05-1.52", 0x10000, 0x10000, CRC(9f8ee242) SHA1(924150d4e7e087a9b2b0a294c2d0e9903a266c6c) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the MCU */ - ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -/* -bublbob1.zip - a78-05.52 -TAITO CORPORATION 1986 -ALL RIGHTS RESERVED -VER 0.018.AUG,1986 SUMMER -*/ - -ROM_START( bublbob1 ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a78-05.52", 0x10000, 0x10000, CRC(53f4bc6e) SHA1(15a2e6d83438d4136b154b3d90dd2cf9f1ce572c) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the MCU */ - ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -/* -bublbobr.zip - a78-24.52 -1986 TAITO AMERICA CORP. -LICENSED TO ROMSTAR FOR U.S.A. -VER 5.1 8.NOV,1986 SUMMER -*/ - -ROM_START( bublbobr ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "a78-25.51", 0x00000, 0x08000, CRC(2d901c9d) SHA1(72504225d3a26212e8f35508a79200eeb91138b6) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a78-24.52", 0x10000, 0x10000, CRC(b7afedc4) SHA1(6e4c8712f1fdf000e231cfd622dd3b514c61a6fd) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the MCU */ - ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -/* -bubbobr1.zip - a78-21.52 -1986 TAITO AMERICA CORP. -LICENSED TO ROMSTAR FOR U.S.A. -VER 1.0 26.AUG,1986 SUMMER -*/ - -ROM_START( bubbobr1 ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "a78-21.52", 0x10000, 0x10000, CRC(2844033d) SHA1(6ac0b09d0325990cf18935f35b0adbc033758947) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the MCU */ - ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -ROM_START( boblbobl ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "bb3", 0x00000, 0x08000, CRC(01f81936) SHA1(a48489a13bfd01949e7fd273029d9cb8bfd7be48) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "bb5", 0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) ) - ROM_LOAD( "bb4", 0x18000, 0x08000, CRC(afda99d8) SHA1(304324074ae726501bbb08e683850639d69939fb) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) ) - ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) ) - ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) ) -ROM_END - -ROM_START( sboblbob ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "bbb-3.rom", 0x00000, 0x08000, CRC(f304152a) SHA1(103d9beddccef289ed739d28ebda69bbad3d42f9) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "bb5", 0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) ) - ROM_LOAD( "bbb-4.rom", 0x18000, 0x08000, CRC(94c75591) SHA1(7698bc4b7d20e554a73a489cd3a15ae61b350e37) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -ROM_START( bub68705 ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) /* Program roms match Bubble Bobble (older) */ - ROM_LOAD( "2.bin", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) ) - /* ROMs banked at 8000-bfff */ - ROM_LOAD( "3-1.bin", 0x10000, 0x08000, CRC(980c2615) SHA1(3670cf3e4e73028aadf4460ad887a0b544bcdbc4) ) - ROM_LOAD( "3.bin", 0x18000, 0x08000, CRC(e6c698f2) SHA1(8df116075f5891f74d0da8966ed11c597b5f544f) ) - /* 20000-2ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "4.bin", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "1.bin", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) ) - - ROM_REGION( 0x800, REGION_CPU4, 0 ) /* 64k for the MCU */ - ROM_LOAD( "68705.bin", 0x000, 0x800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) ) /* 1st plane */ - ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) ) - ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) ) - ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) ) - ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) ) - ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) ) - /* 0x30000-0x3ffff empty */ - ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) ) /* 2nd plane */ - ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) ) - ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) ) - ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) ) - ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) ) - ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) ) - /* 0x70000-0x7ffff empty */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */ -ROM_END - -static DRIVER_INIT( bublbobl ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - - /* in Bubble Bobble, bank 0 has code falling from 7fff to 8000, */ - /* so I have to copy it there because bank switching wouldn't catch it */ - memcpy(ROM + 0x08000, ROM + 0x10000, 0x4000); -} - -static DRIVER_INIT( tokio ) -{ - extern int bublbobl_video_enable; - - /* preemptively enable video, the bit is not mapped for this game and */ - /* I don't know if it even has it. */ - bublbobl_video_enable = 1; -} - -static DRIVER_INIT( tokiob ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfe00, 0xfe00, 0, 0, tokiob_mcu_r ); - - init_tokio(machine); -} - - - -GAME( 1986, tokio, 0, tokio, tokio, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation", GAME_NOT_WORKING ) -GAME( 1986, tokiou, tokio, tokio, tokio, tokio, ROT90, "Taito America Corporation (Romstar license)", "Tokio / Scramble Formation (US)", GAME_NOT_WORKING ) -GAME( 1986, tokiob, tokio, tokio, tokio, tokiob, ROT90, "bootleg", "Tokio / Scramble Formation (bootleg)", 0 ) - -GAME( 1986, bublbobl, 0, bublbobl, bublbobl, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble", 0 ) -GAME( 1986, bublbob1, bublbobl, bublbobl, bublbobl, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (older)", 0 ) -GAME( 1986, bublbobr, bublbobl, bublbobl, bublbobl, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US with mode select)", 0 ) -GAME( 1986, bubbobr1, bublbobl, bublbobl, bublbobl, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US)", 0 ) - -GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl, ROT0, "bootleg", "Bobble Bobble", 0 ) -GAME( 1986, sboblbob, bublbobl, boblbobl, sboblbob, bublbobl, ROT0, "bootleg", "Super Bobble Bobble", 0 ) -GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bublbobl, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", 0 ) diff --git a/src/drivers/buggychl.c b/src/drivers/buggychl.c deleted file mode 100644 index a0ed214f5..000000000 --- a/src/drivers/buggychl.c +++ /dev/null @@ -1,545 +0,0 @@ -/*************************************************************************** - -Buggy Challenge - (c) 1984 Taito Corporation - -driver by Ernesto Corvi and Nicola Salmoria - -TODO: -- I'm almost sure that I'm not handling the zoom x ROM table correctly. Gives - reasonable results, though. I'm confident that the zoom y table handling is - correct. -- Tilemap and sprite placement might not be accurate, there aren't many - references. -- The way I'm handling opaqueness in the top portion of the screen is definitely - wrong (see the high score entry screen). Actually there doesn't seem to be - a way to make the fg opaque, but not doing so leaves parts of the bg visible - at the top of the screen. -- The gradient sky is completely wrong - it's more of a placeholder to show - that it's supposed to be there. It is supposed to skew along with the - background, and the gradient can move around (the latter doesn't seem to - be used except for making it cover the whole screen on the title screen, - and start at the middle during gameplay) -- Video driver is largely unoptimized -- Support for the 7630's controlling the sound chip outputs (bass/treble, - volume) is completely missing. -- The sound Z80 seems to write answers for the main Z80, but the latter doesn't - seem to read them. - -Notes: -- There is also a 4-channel version of the sound board for the cockpit - cabinet (ROMs not dumped) - - -Memory Map ----------- -0000 - 3fff = ROM A22-04 (23) -4000 - 7fff = ROM A22-05 (22) -8000 - 87ff = RAM (36) -8800 - 8fff = RAM (35) - -c800 - cbff = videoram -cc00 - cfff = videoram - -d100 = /ANYOUT - bit7 = lamp - bit6 = lockout - bit4 = OJMODE (sprite palette bank) - bit3 = SKY OFF - bit2 = /SN3OFF - bit1 = flip screen X - bit0 = flip screen Y -d200 = bank switch - bit2 = Bank Select bit 1 - bit1 = Bank Select bit 0 - bit0 = EA13 (high/low part of banked ROM) -d300 = /TRESET (Watchdog reset?) -d301 = No name? - bit6 = FLPF2 (W-6) - bit5 = FLPE2 (W-5) - bit4 = FLPD2 (W-4) - bot2 = FLPF1 (W-3) - bit1 = FLPE1 (W-2) - bit0 = FLPD1 (W-1) -d302 - bit 0 = /RESET line on the 68705 - -d304 - d307 = SCCON1 to SCCON4 - -d613 = /SoundCS = /RESET line on all audio CPUs - -d700 - d7ff = ( /VCRRQ - palette ram ) - -d800 - d8ff /ScrollRQ (S37) -da00 - daff /ScrollRQ (S37) -db00 - dbff /ScrollRQ (S37) - -dcxx = /SPOSI (S36) - - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/msm5232.h" - - -/* in machine */ -READ8_HANDLER( buggychl_68705_portA_r ); -WRITE8_HANDLER( buggychl_68705_portA_w ); -WRITE8_HANDLER( buggychl_68705_ddrA_w ); -READ8_HANDLER( buggychl_68705_portB_r ); -WRITE8_HANDLER( buggychl_68705_portB_w ); -WRITE8_HANDLER( buggychl_68705_ddrB_w ); -READ8_HANDLER( buggychl_68705_portC_r ); -WRITE8_HANDLER( buggychl_68705_portC_w ); -WRITE8_HANDLER( buggychl_68705_ddrC_w ); -WRITE8_HANDLER( buggychl_mcu_w ); -READ8_HANDLER( buggychl_mcu_r ); -READ8_HANDLER( buggychl_mcu_status_r ); - -/* in vidhrdw */ -extern unsigned char *buggychl_scrollv,*buggychl_scrollh; -extern unsigned char buggychl_sprite_lookup[0x2000]; -extern unsigned char *buggychl_character_ram; - -PALETTE_INIT( buggychl ); -VIDEO_START( buggychl ); -WRITE8_HANDLER( buggychl_chargen_w ); -WRITE8_HANDLER( buggychl_sprite_lookup_bank_w ); -WRITE8_HANDLER( buggychl_sprite_lookup_w ); -WRITE8_HANDLER( buggychl_ctrl_w ); -WRITE8_HANDLER( buggychl_bg_scrollx_w ); -VIDEO_UPDATE( buggychl ); - - - - -static WRITE8_HANDLER( bankswitch_w ) -{ - memory_set_bankptr(1,&memory_region(REGION_CPU1)[0x10000 + (data & 7) * 0x2000]); -} - - -static int sound_nmi_enable,pending_nmi; - -static void nmi_callback(int param) -{ - if (sound_nmi_enable) cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); - else pending_nmi = 1; -} - -static WRITE8_HANDLER( sound_command_w ) -{ - soundlatch_w(0,data); - timer_set(TIME_NOW,data,nmi_callback); -} - -static WRITE8_HANDLER( nmi_disable_w ) -{ - sound_nmi_enable = 0; -} - -static WRITE8_HANDLER( nmi_enable_w ) -{ - sound_nmi_enable = 1; - if (pending_nmi) - { - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); - pending_nmi = 0; - } -} - -static WRITE8_HANDLER( sound_enable_w ) -{ - sound_global_enable(data & 1); -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) /* A22-04 (23) */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_ROM) /* A22-05 (22) */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* 6116 SRAM (36) */ - AM_RANGE(0x8800, 0x8fff) AM_READ(MRA8_RAM) /* 6116 SRAM (35) */ - AM_RANGE(0xa000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc800, 0xcfff) AM_READ(videoram_r) - AM_RANGE(0xd400, 0xd400) AM_READ(buggychl_mcu_r) - AM_RANGE(0xd401, 0xd401) AM_READ(buggychl_mcu_status_r) - AM_RANGE(0xd600, 0xd600) AM_READ(input_port_0_r) /* dsw */ - AM_RANGE(0xd601, 0xd601) AM_READ(input_port_1_r) /* dsw */ - AM_RANGE(0xd602, 0xd602) AM_READ(input_port_2_r) /* dsw */ - AM_RANGE(0xd603, 0xd603) AM_READ(input_port_3_r) /* player inputs */ - AM_RANGE(0xd608, 0xd608) AM_READ(input_port_4_r) /* wheel */ - AM_RANGE(0xd609, 0xd609) AM_READ(input_port_5_r) /* coin + accelerator */ -// { 0xd60a, 0xd60a, other inputs, not used? -// { 0xd60b, 0xd60b, other inputs, not used? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) /* A22-04 (23) */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) /* A22-05 (22) */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* 6116 SRAM (36) */ - AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) /* 6116 SRAM (35) */ - AM_RANGE(0x9000, 0x9fff) AM_WRITE(buggychl_sprite_lookup_w) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(buggychl_chargen_w) AM_BASE(&buggychl_character_ram) - AM_RANGE(0xc800, 0xcfff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) -// { 0xd000, 0xd000, horizon - AM_RANGE(0xd100, 0xd100) AM_WRITE(buggychl_ctrl_w) - AM_RANGE(0xd200, 0xd200) AM_WRITE(bankswitch_w) - AM_RANGE(0xd300, 0xd300) AM_WRITE(watchdog_reset_w) -// { 0xd301, 0xd301, -// { 0xd302, 0xd302, reset mcu - AM_RANGE(0xd303, 0xd303) AM_WRITE(buggychl_sprite_lookup_bank_w) -// { 0xd304, 0xd307, sccon 1-4 - AM_RANGE(0xd400, 0xd400) AM_WRITE(buggychl_mcu_w) - AM_RANGE(0xd500, 0xd57f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w) -// { 0xd613, 0xd613, reset sound cpu & sound chips - AM_RANGE(0xd618, 0xd618) AM_WRITE(MWA8_NOP) /* accelerator clear */ - AM_RANGE(0xd700, 0xd7ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_be_w) AM_BASE(&paletteram) - AM_RANGE(0xd840, 0xd85f) AM_WRITE(MWA8_RAM) AM_BASE(&buggychl_scrollv) - AM_RANGE(0xdb00, 0xdbff) AM_WRITE(MWA8_RAM) AM_BASE(&buggychl_scrollh) - AM_RANGE(0xdc04, 0xdc04) AM_WRITE(MWA8_RAM) /* should be fg scroll */ - AM_RANGE(0xdc06, 0xdc06) AM_WRITE(buggychl_bg_scrollx_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x47ff) AM_READ(MRA8_RAM) - AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r) -// AM_RANGE(0x5001, 0x5001) AM_READ(MRA8_RAM) /* is command pending? */ - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_ROM) /* space for diagnostics ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x47ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4800, 0x4800) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x4801, 0x4801) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x4802, 0x4802) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x4803, 0x4803) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x4810, 0x481d) AM_WRITE(MSM5232_0_w) - AM_RANGE(0x4820, 0x4820) AM_WRITE(MWA8_RAM) /* VOL/BAL for the 7630 on the MSM5232 output */ - AM_RANGE(0x4830, 0x4830) AM_WRITE(MWA8_RAM) /* TRBL/BASS for the 7630 on the MSM5232 output */ -// AM_RANGE(0x5000, 0x5000) AM_WRITE(MWA8_RAM) /* to main cpu */ - AM_RANGE(0x5001, 0x5001) AM_WRITE(nmi_enable_w) - AM_RANGE(0x5002, 0x5002) AM_WRITE(nmi_disable_w) - AM_RANGE(0x5003, 0x5003) AM_WRITE(sound_enable_w) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READ(buggychl_68705_portA_r) - AM_RANGE(0x0001, 0x0001) AM_READ(buggychl_68705_portB_r) - AM_RANGE(0x0002, 0x0002) AM_READ(buggychl_68705_portC_r) - AM_RANGE(0x0010, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_WRITE(buggychl_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_WRITE(buggychl_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_WRITE(buggychl_68705_portC_w) - AM_RANGE(0x0004, 0x0004) AM_WRITE(buggychl_68705_ddrA_w) - AM_RANGE(0x0005, 0x0005) AM_WRITE(buggychl_68705_ddrB_w) - AM_RANGE(0x0006, 0x0006) AM_WRITE(buggychl_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -/******************************************************************************/ - -INPUT_PORTS_START( buggychl ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x03, 0x03, "Game Over Bonus" ) // Arks/Flags/Fuel - PORT_DIPSETTING( 0x03, "2000/1000/50" ) - PORT_DIPSETTING( 0x02, "1000/500/30" ) - PORT_DIPSETTING( 0x01, "500/200/10" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // 1300 units of fuel - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // 1200 units of fuel - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // 1100 units of fuel - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // 1000 units of fuel - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x01, 0x01, "Start button needed" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, "Fuel loss (Cheat)") - PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Crash only" ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x10, 0x10, "Coinage Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, "Year Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin Slots" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x80, "2" ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) /* shift */ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Test Button") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN4") /* wheel */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_REVERSE - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* accelerator */ -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - 256, - 4, - { 3*0x800*8, 2*0x800*8, 0x800*8, 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 -}; - -static const gfx_layout spritelayout = -{ - 16,1, - RGN_FRAC(1,8), - 4, - { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) }, - { RGN_FRAC(1,8)+7, RGN_FRAC(1,8)+6, RGN_FRAC(1,8)+5, RGN_FRAC(1,8)+4, RGN_FRAC(1,8)+3, RGN_FRAC(1,8)+2, RGN_FRAC(1,8)+1, RGN_FRAC(1,8)+0, - 7, 6, 5, 4, 3, 2, 1, 0 }, - { 0 }, - 8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { 0, 0, &charlayout, 0, 8 }, /* decoded at runtime */ - /* sprites are drawn pixel by pixel by draw_sprites() */ - { REGION_GFX1, 0, &spritelayout, 0, 8 }, - { -1 } /* end of array */ -}; - - - -static WRITE8_HANDLER( portA_0_w ) -{ - /* VOL/BAL for the 7630 on this 8910 output */ -} -static WRITE8_HANDLER( portB_0_w ) -{ - /* TRBL/BASS for the 7630 on this 8910 output */ -} -static WRITE8_HANDLER( portA_1_w ) -{ - /* VOL/BAL for the 7630 on this 8910 output */ -} -static WRITE8_HANDLER( portB_1_w ) -{ - /* TRBL/BASS for the 7630 on this 8910 output */ -} - - -static struct AY8910interface ay8910_interface_1 = -{ - 0, - 0, - portA_0_w, - portB_0_w -}; - -static struct AY8910interface ay8910_interface_2 = -{ - 0, - 0, - portA_1_w, - portB_1_w -}; - -static struct MSM5232interface msm5232_interface = -{ - { 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6 } /* default 0.39 uF capacitors (not verified) */ -}; - - -static MACHINE_DRIVER_START( buggychl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz??? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz??? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,60) /* irq is timed, tied to the cpu clock and not to vblank */ - /* nmi is caused by the main cpu */ - - MDRV_CPU_ADD(M68705,8000000/2) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(mcu_readmem,mcu_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128+128) - MDRV_COLORTABLE_LENGTH(128) - - MDRV_PALETTE_INIT(buggychl) - MDRV_VIDEO_START(buggychl) - MDRV_VIDEO_UPDATE(buggychl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(MSM5232, 2000000) - MDRV_SOUND_CONFIG(msm5232_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( buggychl ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a22-04-2.23", 0x00000, 0x4000, CRC(16445a6a) SHA1(5ce7b0b1aeb3b6cd400965467f913558f39c251f) ) - ROM_LOAD( "a22-05-2.22", 0x04000, 0x4000, CRC(d57430b2) SHA1(3e5b8c21a342d8e26c12a78535748073bc5b8742) ) - ROM_LOAD( "a22-01.3", 0x10000, 0x4000, CRC(af3b7554) SHA1(fd4f5a6cf9253f64c7e86d566802a02baae3b379) ) /* banked */ - ROM_LOAD( "a22-02.2", 0x14000, 0x4000, CRC(b8a645fb) SHA1(614a0656dee0cfa1d7e16ec1e0138a423ecaf18b) ) /* banked */ - ROM_LOAD( "a22-03.1", 0x18000, 0x4000, CRC(5f45d469) SHA1(3a1b9ab2d57c06bfffb1271583944c90d3f6b5a2) ) /* banked */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound Z80 */ - ROM_LOAD( "a22-24.28", 0x00000, 0x4000, CRC(1e7f841f) SHA1(2dc0787b08d32acb78291b689c02dbb83d04d08c) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 8k for the microcontroller */ - ROM_LOAD( "a22-19.31", 0x00000, 0x0800, CRC(06a71df0) SHA1(28183e6769e1471e7f28dc2a9f5b54e14b7ef339) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "a22-06.111", 0x00000, 0x4000, CRC(1df91b17) SHA1(440d33bf984042fb4eac8f17bb385992ccdc6113) ) - ROM_LOAD( "a22-07.110", 0x04000, 0x4000, CRC(2f0ab9b7) SHA1(07b98e23d12da834d522e29fe7891503dc258b05) ) - ROM_LOAD( "a22-08.109", 0x08000, 0x4000, CRC(49cb2134) SHA1(f9998617c097b90be7257ba6fc1e46ff9e1f8916) ) - ROM_LOAD( "a22-09.108", 0x0c000, 0x4000, CRC(e682e200) SHA1(3e2b5dd97e4f522f208d331f6903c69d49555b61) ) - ROM_LOAD( "a22-10.107", 0x10000, 0x4000, CRC(653b7e25) SHA1(70c69288438caf6725c6d96ff75cdc82af005b2b) ) - ROM_LOAD( "a22-11.106", 0x14000, 0x4000, CRC(8057b55c) SHA1(9eeb4980cb14fb1c9b6f3aeff4e0aef1338fc71c) ) - ROM_LOAD( "a22-12.105", 0x18000, 0x4000, CRC(8b365b24) SHA1(a306c1f6fe1f5563602ab424f1b4f6ac17d1e47d) ) - ROM_LOAD( "a22-13.104", 0x1c000, 0x4000, CRC(2c6d68fe) SHA1(9e1a0e44ae2b9986d0ebff49a0fd4df3e8a7f4e7) ) - - ROM_REGION( 0x4000, REGION_GFX2, 0 ) /* sprite zoom tables */ - ROM_LOAD( "a22-14.59", 0x0000, 0x2000, CRC(a450b3ef) SHA1(42646bfaed19ea01ffe06996bb6c2fd6c70076d6) ) /* vertical */ - ROM_LOAD( "a22-15.115", 0x2000, 0x1000, CRC(337a0c14) SHA1(2aa6814f74497c5c55bf7098d7f6f5508845e36c) ) /* horizontal */ - ROM_LOAD( "a22-16.116", 0x3000, 0x1000, CRC(337a0c14) SHA1(2aa6814f74497c5c55bf7098d7f6f5508845e36c) ) /* horizontal */ -ROM_END - -ROM_START( buggycht ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "bu04.bin", 0x00000, 0x4000, CRC(f90ab854) SHA1(d4536c98be35de3d888548e2de15f8435ca4f08c) ) - ROM_LOAD( "bu05.bin", 0x04000, 0x4000, CRC(543d0949) SHA1(b7b0b0319f5376e7cfcfd0e8a4fa6fea566e0206) ) - ROM_LOAD( "a22-01.3", 0x10000, 0x4000, CRC(af3b7554) SHA1(fd4f5a6cf9253f64c7e86d566802a02baae3b379) ) /* banked */ - ROM_LOAD( "a22-02.2", 0x14000, 0x4000, CRC(b8a645fb) SHA1(614a0656dee0cfa1d7e16ec1e0138a423ecaf18b) ) /* banked */ - ROM_LOAD( "a22-03.1", 0x18000, 0x4000, CRC(5f45d469) SHA1(3a1b9ab2d57c06bfffb1271583944c90d3f6b5a2) ) /* banked */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound Z80 */ - ROM_LOAD( "a22-24.28", 0x00000, 0x4000, CRC(1e7f841f) SHA1(2dc0787b08d32acb78291b689c02dbb83d04d08c) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 8k for the microcontroller */ - ROM_LOAD( "a22-19.31", 0x00000, 0x0800, CRC(06a71df0) SHA1(28183e6769e1471e7f28dc2a9f5b54e14b7ef339) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "a22-06.111", 0x00000, 0x4000, CRC(1df91b17) SHA1(440d33bf984042fb4eac8f17bb385992ccdc6113) ) - ROM_LOAD( "a22-07.110", 0x04000, 0x4000, CRC(2f0ab9b7) SHA1(07b98e23d12da834d522e29fe7891503dc258b05) ) - ROM_LOAD( "a22-08.109", 0x08000, 0x4000, CRC(49cb2134) SHA1(f9998617c097b90be7257ba6fc1e46ff9e1f8916) ) - ROM_LOAD( "a22-09.108", 0x0c000, 0x4000, CRC(e682e200) SHA1(3e2b5dd97e4f522f208d331f6903c69d49555b61) ) - ROM_LOAD( "a22-10.107", 0x10000, 0x4000, CRC(653b7e25) SHA1(70c69288438caf6725c6d96ff75cdc82af005b2b) ) - ROM_LOAD( "a22-11.106", 0x14000, 0x4000, CRC(8057b55c) SHA1(9eeb4980cb14fb1c9b6f3aeff4e0aef1338fc71c) ) - ROM_LOAD( "a22-12.105", 0x18000, 0x4000, CRC(8b365b24) SHA1(a306c1f6fe1f5563602ab424f1b4f6ac17d1e47d) ) - ROM_LOAD( "a22-13.104", 0x1c000, 0x4000, CRC(2c6d68fe) SHA1(9e1a0e44ae2b9986d0ebff49a0fd4df3e8a7f4e7) ) - - ROM_REGION( 0x4000, REGION_GFX2, 0 ) /* sprite zoom tables */ - ROM_LOAD( "a22-14.59", 0x0000, 0x2000, CRC(a450b3ef) SHA1(42646bfaed19ea01ffe06996bb6c2fd6c70076d6) ) /* vertical */ - ROM_LOAD( "a22-15.115", 0x2000, 0x1000, CRC(337a0c14) SHA1(2aa6814f74497c5c55bf7098d7f6f5508845e36c) ) /* horizontal */ - ROM_LOAD( "a22-16.116", 0x3000, 0x1000, CRC(337a0c14) SHA1(2aa6814f74497c5c55bf7098d7f6f5508845e36c) ) /* horizontal */ -ROM_END - - -GAME( 1984, buggychl, 0, buggychl, buggychl, 0, ROT270, "Taito Corporation", "Buggy Challenge", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, buggycht, buggychl, buggychl, buggychl, 0, ROT270, "Taito Corporation (Tecfri license)", "Buggy Challenge (Tecfri)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/bzone.c b/src/drivers/bzone.c deleted file mode 100644 index 7f90f76d9..000000000 --- a/src/drivers/bzone.c +++ /dev/null @@ -1,792 +0,0 @@ -/*************************************************************************** - - Atari Battlezone hardware - - Games supported: - * Battlezone - * Bradley Trainer - * Red Baron - - Known bugs: - * none at this time - -**************************************************************************** - - Battlezone memory map (preliminary) - - 0000-04ff RAM - 0800 IN0 - 0a00 IN1 - 0c00 IN2 - - 1200 Vector generator start (write) - 1400 - 1600 Vector generator reset (write) - - 1800 Mathbox Status register - 1810 Mathbox value (lo-byte) - 1818 Mathbox value (hi-byte) - 1820-182f POKEY I/O - 1828 Control inputs - 1860-187f Mathbox RAM - - 2000-2fff Vector generator RAM - 3000-37ff Vector Generator ROM - 5000-7fff ROM - - Battlezone settings: - - 0 = OFF 1 = ON X = Don't Care $ = Atari suggests - - ** IMPORTANT - BITS are INVERTED in the game itself ** - - TOP 8 SWITCH DIP - 87654321 - -------- - XXXXXX11 Free Play - XXXXXX10 1 coin for 2 plays - XXXXXX01 1 coin for 1 play - XXXXXX00 2 coins for 1 play - XXXX11XX Right coin mech x 1 - XXXX10XX Right coin mech x 4 - XXXX01XX Right coin mech x 5 - XXXX00XX Right coin mech x 6 - XXX1XXXX Center (or Left) coin mech x 1 - XXX0XXXX Center (or Left) coin mech x 2 - 111XXXXX No bonus coin - 110XXXXX For every 2 coins inserted, game logic adds 1 more - 101XXXXX For every 4 coins inserted, game logic adds 1 more - 100XXXXX For every 4 coins inserted, game logic adds 2 more - 011XXXXX For every 5 coins inserted, game logic adds 1 more - - BOTTOM 8 SWITCH DIP - 87654321 - -------- - XXXXXX11 Game starts with 2 tanks - XXXXXX10 Game starts with 3 tanks $ - XXXXXX01 Game starts with 4 tanks - XXXXXX00 Game starts with 5 tanks - XXXX11XX Missile appears after 5,000 points - XXXX10XX Missile appears after 10,000 points $ - XXXX01XX Missile appears after 20,000 points - XXXX00XX Missile appears after 30,000 points - XX11XXXX No bonus tank - XX10XXXX Bonus taks at 15,000 and 100,000 points $ - XX01XXXX Bonus taks at 20,000 and 100,000 points - XX00XXXX Bonus taks at 50,000 and 100,000 points - 11XXXXXX English language - 10XXXXXX French language - 01XXXXXX German language - 00XXXXXX Spanish language - - 4 SWITCH DIP - - XX11 All coin mechanisms register on one coin counter - XX01 Left and center coin mechanisms on one coin counter, right on second - XX10 Center and right coin mechanisms on one coin counter, left on second - XX00 Each coin mechanism has it's own counter - -**************************************************************************** - - Red Baron memory map (preliminary) - - 0000-04ff RAM - 0800 COIN_IN - 0a00 IN1 - 0c00 IN2 - - 1200 Vector generator start (write) - 1400 - 1600 Vector generator reset (write) - - 1800 Mathbox Status register - 1802 Button inputs - 1804 Mathbox value (lo-byte) - 1806 Mathbox value (hi-byte) - 1808 Red Baron Sound (bit 1 selects joystick pot to read also) - 1810-181f POKEY I/O - 1818 Joystick inputs - 1860-187f Mathbox RAM - - 2000-2fff Vector generator RAM - 3000-37ff Vector generator ROM - 5000-7fff ROM - - RED BARON DIP SWITCH SETTINGS - Donated by Dana Colbert - - - $=Default - "K" = 1,000 - - Switch at position P10 - 8 7 6 5 4 3 2 1 - _________________________________________ - English $| | | | | | |Off |Off | - Spanish | | | | | | |Off | On | - French | | | | | | | On |Off | - German | | | | | | | On | On | - | | | | | | | | | - Bonus airplane granted at: | | | | | | | | | - Bonus at 2K, 10K and 30K | | | | |Off |Off | | | - Bonus at 4K, 15K and 40K $| | | | |Off | On | | | - Bonus at 6K, 20K and 50K | | | | | On |Off | | | - No bonus airplanes | | | | | On | On | | | - | | | | | | | | | - 2 aiplanes per game | | |Off |Off | | | | | - 3 airplanes per game $| | |Off | On | | | | | - 4 airplanes per game | | | On |Off | | | | | - 5 airplanes per game | | | On | On | | | | | - | | | | | | | | | - 1-play minimum $| |Off | | | | | | | - 2-play minimum | | On | | | | | | | - | | | | | | | | | - Self-adj. game difficulty: on $|Off | | | | | | | | - Self-adj. game difficulty: off | On | | | | | | | | - ----------------------------------------- - - If self-adjusting game difficulty feature is - turned on, the program strives to maintain the - following average game lengths (in seconds): - - Airplanes per game: - Bonus airplane granted at: 2 3 4 5 - 2,000, 10,000 and 30,000 points 90 105$ 120 135 - 4,000, 15,000 and 40,000 points 75 90 105 120 - 6,000, 20,000 and 50,000 points 60 75 90 105 - No bonus airplanes 45 60 75 90 - - - - Switch at position M10 - 8 7 6 5 4 3 2 1 - _________________________________________ - 50 PER PLAY | | | | | | | | | - Straight 25 Door: | | | | | | | | | - No Bonus Coins |Off |Off |Off |Off |Off |Off | On | On | - Bonus $1= 3 plays |Off | On | On |Off |Off |Off | On | On | - Bonus $1= 3 plays, 75 = 2 plays |Off |Off | On |Off |Off |Off | On | On | - | | | | | | | | | - 25 /$1 Door or 25 /25 /$1 Door | | | | | | | | | - No Bonus Coins |Off |Off |Off |Off |Off | On | On | On | - Bonus $1= 3 plays |Off | On | On |Off |Off | On | On | On | - Bonus $1= 3 plays, 75 = 2 plays |Off |Off | On |Off |Off | On | On | On | - | | | | | | | | | - 25 PER PLAY | | | | | | | | | - Straight 25 Door: | | | | | | | | | - No Bonus Coins |Off |Off |Off |Off |Off |Off | On |Off | - Bonus 50 = 3 plays |Off |Off | On |Off |Off |Off | On |Off | - Bonus $1= 5 plays |Off | On |Off |Off |Off |Off | On |Off | - | | | | | | | | | - 25 /$1 Door or 25 /25 /$1 Door | | | | | | | | | - No Bonus Coins |Off |Off |Off |Off |Off | On | On |Off | - Bonus 50 = 3 plays |Off |Off | On |Off |Off | On | On |Off | - Bonus $1= 5 plays |Off | On |Off |Off |Off | On | On |Off | - ----------------------------------------- - - Switch at position L11 - 1 2 3 4 - _____________________ - All 3 mechs same denomination | On | On | | | - Left and Center same, right different denomination | On |Off | | | - Right and Center same, left differnnt denomination |Off | On | | | - All different denominations |Off |Off | | | - --------------------- - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/vector.h" -#include "vidhrdw/avgdvg.h" -#include "machine/mathbox.h" -#include "machine/atari_vg.h" -#include "sound/pokey.h" -#include "sound/custom.h" -#include "rendlay.h" -#include "bzone.h" - -#include "bzone.lh" - -#define IN0_3KHZ (1<<7) -#define IN0_VG_HALT (1<<6) - -#define MASTER_CLOCK (12096000) -#define CLOCK_3KHZ (MASTER_CLOCK / 4096) - - -static UINT8 analog_data; - -UINT8 rb_input_select; - - - -/************************************* - * - * Save state registration - * - *************************************/ - -static MACHINE_START( bzone ) -{ - state_save_register_global(analog_data); - return 0; -} - - -static MACHINE_START( redbaron ) -{ - state_save_register_global(analog_data); - state_save_register_global(rb_input_select); - return 0; -} - - - -/************************************* - * - * Interrupt handling - * - *************************************/ - -static INTERRUPT_GEN( bzone_interrupt ) -{ - if (readinputport(0) & 0x10) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - - - -/************************************* - * - * Battlezone input ports - * - *************************************/ - -READ8_HANDLER( bzone_IN0_r ) -{ - int res; - - res = readinputportbytag("IN0"); - - if (activecpu_gettotalcycles() & 0x100) - res |= IN0_3KHZ; - else - res &= ~IN0_3KHZ; - - if (avgdvg_done()) - res |= IN0_VG_HALT; - else - res &= ~IN0_VG_HALT; - - return res; -} - - -static WRITE8_HANDLER( bzone_coin_counter_w ) -{ - coin_counter_w(offset,data); -} - - - -/************************************* - * - * Red Baron input ports - * - *************************************/ - -static READ8_HANDLER( redbaron_joy_r ) -{ - return readinputport(rb_input_select ? 5 : 6); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( bzone_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0800, 0x0800) AM_READ(bzone_IN0_r) /* IN0 */ - AM_RANGE(0x0a00, 0x0a00) AM_READ(input_port_1_r) /* DSW1 */ - AM_RANGE(0x0c00, 0x0c00) AM_READ(input_port_2_r) /* DSW2 */ - AM_RANGE(0x1000, 0x1000) AM_WRITE(bzone_coin_counter_w) - AM_RANGE(0x1200, 0x1200) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1600, 0x1600) AM_WRITE(avgdvg_reset_w) - AM_RANGE(0x1800, 0x1800) AM_READ(mb_status_r) - AM_RANGE(0x1810, 0x1810) AM_READ(mb_lo_r) - AM_RANGE(0x1818, 0x1818) AM_READ(mb_hi_r) - AM_RANGE(0x1820, 0x182f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x1840, 0x1840) AM_WRITE(bzone_sounds_w) - AM_RANGE(0x1860, 0x187f) AM_WRITE(mb_go_w) - AM_RANGE(0x2000, 0x2fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x2000) - AM_RANGE(0x3000, 0x7fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redbaron_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0800, 0x0800) AM_READ(bzone_IN0_r) /* IN0 */ - AM_RANGE(0x0a00, 0x0a00) AM_READ(input_port_1_r) /* DSW1 */ - AM_RANGE(0x0c00, 0x0c00) AM_READ(input_port_2_r) /* DSW2 */ - AM_RANGE(0x1000, 0x1000) AM_WRITE(MWA8_NOP) /* coin out */ - AM_RANGE(0x1200, 0x1200) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1600, 0x1600) AM_WRITE(avgdvg_reset_w) - AM_RANGE(0x1800, 0x1800) AM_READ(mb_status_r) - AM_RANGE(0x1802, 0x1802) AM_READ(input_port_4_r) /* IN4 */ - AM_RANGE(0x1804, 0x1804) AM_READ(mb_lo_r) - AM_RANGE(0x1806, 0x1806) AM_READ(mb_hi_r) - AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_sounds_w) /* and select joystick pot also */ - AM_RANGE(0x180a, 0x180a) AM_WRITE(MWA8_NOP) /* sound reset, yet todo */ - AM_RANGE(0x180c, 0x180c) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x1810, 0x181f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x1820, 0x185f) AM_READWRITE(atari_vg_earom_r, atari_vg_earom_w) - AM_RANGE(0x1860, 0x187f) AM_WRITE(mb_go_w) - AM_RANGE(0x2000, 0x2fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x2000) - AM_RANGE(0x3000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define BZONEIN0\ - PORT_START_TAG("IN0")\ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )\ - PORT_BIT ( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )\ - PORT_SERVICE( 0x10, IP_ACTIVE_LOW )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)\ - /* bit 6 is the VG HALT bit. We set it to "low" */\ - /* per default (busy vector processor). */\ - /* handled by bzone_IN0_r() */\ - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL )\ - /* bit 7 is tied to a 3kHz clock */\ - /* handled by bzone_IN0_r() */\ - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) - - -#define BZONEDSW0\ - PORT_START_TAG("DSW0")\ - PORT_DIPNAME(0x03, 0x01, DEF_STR( Lives ) )\ - PORT_DIPSETTING ( 0x00, "2" )\ - PORT_DIPSETTING ( 0x01, "3" )\ - PORT_DIPSETTING ( 0x02, "4" )\ - PORT_DIPSETTING ( 0x03, "5" )\ - PORT_DIPNAME(0x0c, 0x04, "Missile appears at" )\ - PORT_DIPSETTING ( 0x00, "5000" )\ - PORT_DIPSETTING ( 0x04, "10000" )\ - PORT_DIPSETTING ( 0x08, "20000" )\ - PORT_DIPSETTING ( 0x0c, "30000" )\ - PORT_DIPNAME(0x30, 0x10, DEF_STR( Bonus_Life ) )\ - PORT_DIPSETTING ( 0x10, "15k and 100k" )\ - PORT_DIPSETTING ( 0x20, "20k and 100k" )\ - PORT_DIPSETTING ( 0x30, "50k and 100k" )\ - PORT_DIPSETTING ( 0x00, DEF_STR( None ) )\ - PORT_DIPNAME(0xc0, 0x00, DEF_STR( Language ) )\ - PORT_DIPSETTING ( 0x00, DEF_STR( English ))\ - PORT_DIPSETTING ( 0x40, DEF_STR( German ))\ - PORT_DIPSETTING ( 0x80, DEF_STR( French ))\ - PORT_DIPSETTING ( 0xc0, DEF_STR( Spanish )) - -#define BZONEDSW1\ - PORT_START_TAG("DSW1")\ - PORT_DIPNAME(0x03, 0x02, DEF_STR( Coinage ) )\ - PORT_DIPSETTING ( 0x03, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING ( 0x00, DEF_STR( Free_Play ) )\ - PORT_DIPNAME(0x0c, 0x00, DEF_STR( Coin_B ) )\ - PORT_DIPSETTING ( 0x00, "*1" )\ - PORT_DIPSETTING ( 0x04, "*4" )\ - PORT_DIPSETTING ( 0x08, "*5" )\ - PORT_DIPSETTING ( 0x0c, "*6" )\ - PORT_DIPNAME(0x10, 0x00, DEF_STR( Coin_A ) )\ - PORT_DIPSETTING ( 0x00, "*1" )\ - PORT_DIPSETTING ( 0x10, "*2" )\ - PORT_DIPNAME(0xe0, 0x00, "Bonus Coins" )\ - PORT_DIPSETTING ( 0x00, DEF_STR( None ) )\ - PORT_DIPSETTING ( 0x20, "3 credits/2 coins" )\ - PORT_DIPSETTING ( 0x40, "5 credits/4 coins" )\ - PORT_DIPSETTING ( 0x60, "6 credits/4 coins" )\ - PORT_DIPSETTING ( 0x80, "6 credits/5 coins" ) - -INPUT_PORTS_START( bzone ) -BZONEIN0 -BZONEDSW0 -BZONEDSW1 - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( redbaron ) -BZONEIN0 - PORT_START_TAG("DSW0") - /* See the table above if you are really interested */ - PORT_DIPNAME(0xff, 0xfd, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0xfd, DEF_STR( Normal ) ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME(0x03, 0x03, DEF_STR( Language ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( German ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( Spanish ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( English ) ) - PORT_DIPNAME(0x0c, 0x04, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING ( 0x0c, "2k 10k 30k" ) - PORT_DIPSETTING ( 0x08, "4k 15k 40k" ) - PORT_DIPSETTING ( 0x04, "6k 20k 50k" ) - PORT_DIPSETTING ( 0x00, DEF_STR( None ) ) - PORT_DIPNAME(0x30, 0x20, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x30, "2" ) - PORT_DIPSETTING ( 0x20, "3" ) - PORT_DIPSETTING ( 0x10, "4" ) - PORT_DIPSETTING ( 0x00, "5" ) - PORT_DIPNAME(0x40, 0x40, "One Play Minimum" ) - PORT_DIPSETTING ( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x80, 0x80, "Self Adjust Diff" ) - PORT_DIPSETTING ( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - - /* IN3 - the real machine reads either the X or Y axis from this port */ - /* Instead, we use the two fake 5 & 6 ports and bank-switch the proper */ - /* value based on the lsb of the byte written to the sound port */ - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - - PORT_START_TAG("IN4") /* Misc controls */ - PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - - /* These 2 are fake - they are bank-switched from reads to IN3 */ - /* Red Baron doesn't seem to use the full 0-255 range. */ - PORT_START_TAG("FAKE1") /* IN5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(64,192) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START_TAG("FAKE2") /* IN6 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(64,192) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( bradley ) -BZONEIN0 -BZONEDSW0 -BZONEDSW1 - - PORT_START_TAG("IN3") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1808") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Armor Piercing (Single Shot)") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("High Explosive (Single Shot)") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Armor Piercing (Low Rate)") PORT_CODE(KEYCODE_S) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("High Explosive (Low Rate)") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Armor Piercing (High Rate)") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("High Explosive (High Rate)") PORT_CODE(KEYCODE_C) - - PORT_START_TAG("1809") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Select TOW Missiles") PORT_CODE(KEYCODE_T) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("7.62 mm Machine Gun") PORT_CODE(KEYCODE_V) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Magnification Toggle") PORT_CODE(KEYCODE_M) PORT_TOGGLE - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("AN0") /* analog 0 = turret rotation */ - PORT_BIT( 0xff, 0x88, IPT_AD_STICK_X ) PORT_MINMAX(0x48,0xc8) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START_TAG("AN1") /* analog 1 = turret elevation */ - PORT_BIT( 0xff, 0x86, IPT_AD_STICK_Y ) PORT_MINMAX(0x46,0xc6) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START_TAG("AN2") /* analog 2 = shell firing range hack removed, now uses Z */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE -INPUT_PORTS_END - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct POKEYinterface bzone_pokey_interface = -{ - { 0 }, - input_port_3_r -}; - - -static struct CustomSound_interface bzone_custom_interface = -{ - bzone_sh_start -}; - - -static struct POKEYinterface redbaron_pokey_interface = -{ - { 0 }, - redbaron_joy_r -}; - - -static struct CustomSound_interface redbaron_custom_interface = -{ - redbaron_sh_start -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( bzone ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, MASTER_CLOCK / 8) - MDRV_CPU_PROGRAM_MAP(bzone_map,0) - MDRV_CPU_PERIODIC_INT(bzone_interrupt, TIME_IN_HZ(CLOCK_3KHZ / 12)) - - MDRV_SCREEN_REFRESH_RATE(40) - - MDRV_MACHINE_START(bzone) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 580, 0, 400) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(avg_bzone) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("pokey", POKEY, MASTER_CLOCK / 8) - MDRV_SOUND_CONFIG(bzone_pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD_TAG("custom", CUSTOM, 0) - MDRV_SOUND_CONFIG(bzone_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bradley ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(bzone) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", POKEY, MASTER_CLOCK / 8) - MDRV_SOUND_CONFIG(bzone_pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( redbaron ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(bzone) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(redbaron_map,0) - MDRV_CPU_PERIODIC_INT(bzone_interrupt, TIME_IN_HZ(CLOCK_3KHZ / 12)) - - MDRV_MACHINE_START(redbaron) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_NVRAM_HANDLER(atari_vg) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 520, 0, 400) - - MDRV_VIDEO_START(avg_bzone) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", POKEY, 1500000) - MDRV_SOUND_CONFIG(redbaron_pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_REPLACE("custom", CUSTOM, 0) - MDRV_SOUND_CONFIG(redbaron_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( bzone ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "036414.01", 0x5000, 0x0800, CRC(efbc3fa0) SHA1(6d284fab34b09dde8aa0df7088711d4723f07970) ) - ROM_LOAD( "036413.01", 0x5800, 0x0800, CRC(5d9d9111) SHA1(42638cff53a9791a0f18d316f62a0ea8eea4e194) ) - ROM_LOAD( "036412.01", 0x6000, 0x0800, CRC(ab55cbd2) SHA1(6bbb8316d9f8588ea0893932f9174788292b8edc) ) - ROM_LOAD( "036411.01", 0x6800, 0x0800, CRC(ad281297) SHA1(54c5e06b2e69eb731a6c9b1704e4340f493e7ea5) ) - ROM_LOAD( "036410.01", 0x7000, 0x0800, CRC(0b7bfaa4) SHA1(33ae0f68b4e2eae9f3aecbee2d0b29003ce460b2) ) - ROM_LOAD( "036409.01", 0x7800, 0x0800, CRC(1e14e919) SHA1(448fab30535e6fad7e0ab4427bc06bbbe075e797) ) - /* Vector Generator ROMs */ - ROM_LOAD( "036422.01", 0x3000, 0x0800, CRC(7414177b) SHA1(147d97a3b475e738ce00b1a7909bbd787ad06eda) ) - ROM_LOAD( "036421.01", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036498-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( bzone2 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "036414a.01", 0x5000, 0x0800, CRC(13de36d5) SHA1(40e356ddc5c042bc1ce0b71f51e8b6de72daf1e4) ) - ROM_LOAD( "036413.01", 0x5800, 0x0800, CRC(5d9d9111) SHA1(42638cff53a9791a0f18d316f62a0ea8eea4e194) ) - ROM_LOAD( "036412.01", 0x6000, 0x0800, CRC(ab55cbd2) SHA1(6bbb8316d9f8588ea0893932f9174788292b8edc) ) - ROM_LOAD( "036411.01", 0x6800, 0x0800, CRC(ad281297) SHA1(54c5e06b2e69eb731a6c9b1704e4340f493e7ea5) ) - ROM_LOAD( "036410.01", 0x7000, 0x0800, CRC(0b7bfaa4) SHA1(33ae0f68b4e2eae9f3aecbee2d0b29003ce460b2) ) - ROM_LOAD( "036409.01", 0x7800, 0x0800, CRC(1e14e919) SHA1(448fab30535e6fad7e0ab4427bc06bbbe075e797) ) - /* Vector Generator ROMs */ - ROM_LOAD( "036422.01", 0x3000, 0x0800, CRC(7414177b) SHA1(147d97a3b475e738ce00b1a7909bbd787ad06eda) ) - ROM_LOAD( "036421.01", 0x3800, 0x0800, CRC(8ea8f939) SHA1(b71e0ab0e220c3e64dc2b094c701fb1a960b64e4) ) - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036498-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( bzonec ) /* cocktail version */ - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "bz1g4800", 0x4800, 0x0800, CRC(e228dd64) SHA1(247c788b4ccadf6c1e9201ad4f31d55c0036ff0f) ) - ROM_LOAD( "bz1f5000", 0x5000, 0x0800, CRC(dddfac9a) SHA1(e6f2761902e1ffafba437a1117e9ba40f116087d) ) - ROM_LOAD( "bz1e5800", 0x5800, 0x0800, CRC(7e00e823) SHA1(008e491a8074dac16e56c3aedec32d4b340158ce) ) - ROM_LOAD( "bz1d6000", 0x6000, 0x0800, CRC(c0f8c068) SHA1(66fff6b493371f0015c21b06b94637db12deced2) ) - ROM_LOAD( "bz1c6800", 0x6800, 0x0800, CRC(5adc64bd) SHA1(4574e4fe375d4ab3151a988235efa11e8744e2c6) ) - ROM_LOAD( "bz1b7000", 0x7000, 0x0800, CRC(ed8a860e) SHA1(316a3c4870ba44bb3e9cb9fc5200eb081318facf) ) - ROM_LOAD( "bz1a7800", 0x7800, 0x0800, CRC(04babf45) SHA1(a59da5ff49fc398ca4a948e28f05250af776b898) ) - /* Vector Generator ROMs */ - ROM_LOAD( "036422.01", 0x3000, 0x0800, CRC(7414177b) SHA1(147d97a3b475e738ce00b1a7909bbd787ad06eda) ) // bz3a3000 - ROM_LOAD( "bz3b3800", 0x3800, 0x0800, CRC(76cf57f6) SHA1(1b8f3fcd664ed04ce60d94fdf27e56b20d52bdbd) ) - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036498-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( bradley ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "btc1.bin", 0x4000, 0x0800, CRC(0bb8e049) SHA1(158517ff9a4e8ae7270ccf7eab87bf77427a4a8c) ) - ROM_LOAD( "btd1.bin", 0x4800, 0x0800, CRC(9e0566d4) SHA1(f14aa5c3d14136c5e9a317004f82d44a8d5d6815) ) - ROM_LOAD( "bte1.bin", 0x5000, 0x0800, CRC(64ee6a42) SHA1(33d0713ed2a1f4c1c443dce1f053321f2c279293) ) - ROM_LOAD( "bth1.bin", 0x5800, 0x0800, CRC(baab67be) SHA1(77ad1935bf252b401bb6bbb57bd2ed66a85f0a6d) ) - ROM_LOAD( "btj1.bin", 0x6000, 0x0800, CRC(036adde4) SHA1(16a9fcf98a2aa287e0b7a665b88c9c67377a1203) ) - ROM_LOAD( "btk1.bin", 0x6800, 0x0800, CRC(f5c2904e) SHA1(f2cbf720c4f5ce0fc912dbc2f0445cb2c51ffac1) ) - ROM_LOAD( "btlm.bin", 0x7000, 0x0800, CRC(7d0313bf) SHA1(17e3d8df62b332cf889133f1943c8f27308df027) ) - ROM_LOAD( "btn1.bin", 0x7800, 0x0800, CRC(182c8c64) SHA1(511af60d86551291d2dc28442970b4863c62624a) ) - /* Vector Generator ROMs */ - ROM_LOAD( "btb3.bin", 0x3000, 0x0800, CRC(88206304) SHA1(6a2e2ff35a929acf460f244db7968f3978b1d239) ) - ROM_LOAD( "bta3.bin", 0x3800, 0x0800, CRC(d669d796) SHA1(ad606882320cd13612c7962d4718680fe5a35dd3) ) - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036498-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( redbaron ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "037587.01", 0x4800, 0x0800, CRC(60f23983) SHA1(7a9e5380bf49bf50a2d8ab0e0bd1ba3ac8efde24) ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "037000.01e", 0x5000, 0x0800, CRC(69bed808) SHA1(27d99efc74113cdcbbf021734b8a5a5fdb78c04c) ) - ROM_LOAD( "036998.01e", 0x6000, 0x0800, CRC(d1104dd7) SHA1(0eab47cb45ede9dcc4dd7498dcf3a8d8194460b4) ) - ROM_LOAD( "036997.01e", 0x6800, 0x0800, CRC(7434acb4) SHA1(c950c4c12ab556b5051ad356ab4a0ed6b779ba1f) ) - ROM_LOAD( "036996.01e", 0x7000, 0x0800, CRC(c0e7589e) SHA1(c1aedc95966afffd860d7e0009d5a43e8b292036) ) - ROM_LOAD( "036995.01e", 0x7800, 0x0800, CRC(ad81d1da) SHA1(8bd66e5f34fc1c75f31eb6b168607e52aa3aa4df) ) - /* Vector Generator ROMs */ - ROM_LOAD( "037006.01e", 0x3000, 0x0800, CRC(9fcffea0) SHA1(69b76655ee75742fcaa0f39a4a1cf3aa58088343) ) - ROM_LOAD( "037007.01e", 0x3800, 0x0800, CRC(60250ede) SHA1(9c48952bd69863bee0c6dce09f3613149e0151ef) ) - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.k7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static READ8_HANDLER( analog_data_r ) -{ - return analog_data; -} - - -static WRITE8_HANDLER( analog_select_w ) -{ - if (offset <= 2) - analog_data = readinputport(6 + offset); -} - - -static DRIVER_INIT( bradley ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x400, 0x7ff, 0, 0, MRA8_RAM); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x400, 0x7ff, 0, 0, MWA8_RAM); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1808, 0x1808, 0, 0, input_port_4_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1809, 0x1809, 0, 0, input_port_5_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x180a, 0x180a, 0, 0, analog_data_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1848, 0x1850, 0, 0, analog_select_w); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAMEL(1980, bzone, 0, bzone, bzone, 0, ROT0, "Atari", "Battle Zone (set 1)", 0, layout_bzone ) -GAMEL(1980, bzone2, bzone, bzone, bzone, 0, ROT0, "Atari", "Battle Zone (set 2)", 0, layout_bzone ) -GAMEL(1980, bzonec, bzone, bzone, bzone, 0, ROT0, "Atari", "Battle Zone (cocktail)", GAME_NO_COCKTAIL, layout_bzone ) -GAME( 1980, bradley, 0, bradley, bradley, bradley, ROT0, "Atari", "Bradley Trainer", 0 ) -GAMEL(1980, redbaron, 0, redbaron, redbaron, 0, ROT0, "Atari", "Red Baron", 0, layout_ho88ffff ) diff --git a/src/drivers/cabal.c b/src/drivers/cabal.c deleted file mode 100644 index 97f66ebda..000000000 --- a/src/drivers/cabal.c +++ /dev/null @@ -1,755 +0,0 @@ -/****************************************************************** - -Cabal (c)1998 Tad - -driver by Carlos A. Lozano Baides - -68000 + Z80 - -The original uses 2xYM3931 for sound -The bootleg uses YM2151 + 2xZ80 used as ADPCM players - -Coin inputs are handled by the sound CPU, so they don't work with sound -disabled. Use the service switch instead. - - -MEMORY MAP -0x00000 - 0x3ffff ROM -0x40000 - 0x4ffff RAM -[of which: 0x43800 - 0x43fff VRAM (Sprites)] -0x60000 - 0x607ff VRAM (Tiles) -0x80000 - 0x803ff VRAM (Background) -0xa0000 - 0xa000f Input Ports -0xc0040 - 0xc0040 Watchdog?? -0xc0080 - 0xc0080 Screen Flip (+ others?) -0xe0000 - 0xe07ff COLORRAM (----BBBBGGGGRRRR) -0xe8000 - 0xe800f Communication with sound CPU (also coins) - -VRAM (Background) -0x80000 - 0x801ff (16x16 of 16x16 tiles, 2 bytes per tile) -0x80200 - 0x803ff unused foreground layer?? - -VRAM (Text) -0x60000 - 0x607ff (32x32 of 8x8 tiles, 2 bytes per tile) - -VRAM (Sprites) -0x43800 - 0x43bff (128 sprites, 8 bytes every sprite) - -COLORRAM (Colors) -0xe0000 - 0xe07ff (1024 colors, ----BBBBGGGGRRRR) - -******************************************************************/ - -#include "driver.h" -#include "streams.h" -#include "cpu/z80/z80.h" -#include "sndhrdw/seibu.h" -#include "sound/2151intf.h" -#include "sound/msm5205.h" - -extern VIDEO_START( cabal ); -extern VIDEO_UPDATE( cabal ); -WRITE16_HANDLER( cabal_flipscreen_w ); -WRITE16_HANDLER( cabal_background_videoram16_w ); -WRITE16_HANDLER( cabal_text_videoram16_w ); - - -static int cabal_sound_command1, cabal_sound_command2; - -static MACHINE_RESET( cabalbl ) -{ - cabal_sound_command1 = cabal_sound_command2 = 0xff; -} - - -/******************************************************************************************/ - -static struct cabalbl_adpcm_state -{ - struct adpcm_state adpcm; - sound_stream *stream; - UINT32 current, end; - UINT8 nibble; - UINT8 playing; - UINT8 allocated; - UINT8 *base; -} cabalbl_adpcm[2]; - -static void cabalbl_adpcm_callback(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - struct cabalbl_adpcm_state *state = param; - stream_sample_t *dest = outputs[0]; - - while (state->playing && samples > 0) - { - int val = (state->base[state->current] >> state->nibble) & 15; - - state->nibble ^= 4; - if (state->nibble == 4) - { - state->current++; - if (state->current >= state->end) - state->playing = 0; - } - - *dest++ = clock_adpcm(&state->adpcm, val); - samples--; - } - while (samples > 0) - { - *dest++ = 0; - samples--; - } -} - -void *cabalbl_adpcm_start(int clock, const struct CustomSound_interface *config) -{ - int i; - - for (i = 0; i < 2; i++) - if (!cabalbl_adpcm[i].allocated) - { - struct cabalbl_adpcm_state *state = &cabalbl_adpcm[i]; - state->allocated = 1; - state->playing = 0; - state->stream = stream_create(0, 1, clock, state, cabalbl_adpcm_callback); - state->base = memory_region(REGION_SOUND1); - reset_adpcm(&state->adpcm); - return state; - } - return NULL; -} - -void cabalbl_adpcm_stop(void *token) -{ - struct cabalbl_adpcm_state *state = token; - state->allocated = 0; -} - -static void cabalbl_play_adpcm( int channel, int which ){ - if( which!=0xff ){ - unsigned char *RAM = memory_region(REGION_SOUND1); - int offset = channel*0x10000; - int start,len; - - which = which&0x7f; - if( which ){ - which = which*2+0x100; - start = RAM[offset+which] + 256*RAM[offset+which+1]; - len = (RAM[offset+start]*256 + RAM[offset+start+1])*2; - start+=2; - - if (cabalbl_adpcm[channel].stream) - stream_update(cabalbl_adpcm[channel].stream); - cabalbl_adpcm[channel].current = start + offset; - cabalbl_adpcm[channel].end = start + offset + len/2; - cabalbl_adpcm[channel].nibble = 4; - cabalbl_adpcm[channel].playing = 1; - cabalbl_adpcm[channel].base = RAM; - } - } -} - -static WRITE16_HANDLER( cabalbl_sndcmd_w ) -{ - switch (offset) - { - case 0x0: - cabal_sound_command1 = data; - break; - - case 0x1: /* ?? */ - cabal_sound_command2 = data & 0xff; - break; - } -} - - - -static int last[4]; - -static WRITE16_HANDLER( track_reset_w ) -{ - int i; - - for (i = 0;i < 4;i++) - last[i] = readinputport(3+i); -} - -static READ16_HANDLER( track_r ) -{ - switch (offset) - { - default: - case 0: return (( readinputport(3) - last[0]) & 0x00ff) | (((readinputport(5) - last[2]) & 0x00ff) << 8); /* X lo */ - case 1: return (((readinputport(3) - last[0]) & 0xff00) >> 8) | (( readinputport(5) - last[2]) & 0xff00); /* X hi */ - case 2: return (( readinputport(4) - last[1]) & 0x00ff) | (((readinputport(6) - last[3]) & 0x00ff) << 8); /* Y lo */ - case 3: return (((readinputport(4) - last[1]) & 0xff00) >> 8) | (( readinputport(6) - last[3]) & 0xff00); /* Y hi */ - } -} - - -WRITE16_HANDLER( cabal_sound_irq_trigger_word_w ) -{ - seibu_main_word_w(4,data,mem_mask); - - /* spin for a while to let the Z80 read the command, otherwise coins "stick" */ - cpu_spinuntil_time(TIME_IN_USEC(50)); -} - -WRITE16_HANDLER( cabalbl_sound_irq_trigger_word_w ) -{ - cpunum_set_input_line( 1, INPUT_LINE_NMI, PULSE_LINE ); -} - - - -static ADDRESS_MAP_START( readmem_cpu, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x40000, 0x437ff) AM_READ(MRA16_RAM) - AM_RANGE(0x43800, 0x43fff) AM_READ(MRA16_RAM) - AM_RANGE(0x44000, 0x4ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x60000, 0x607ff) AM_READ(MRA16_RAM) - AM_RANGE(0x80000, 0x801ff) AM_READ(MRA16_RAM) - AM_RANGE(0x80200, 0x803ff) AM_READ(MRA16_RAM) - AM_RANGE(0xa0000, 0xa0001) AM_READ(input_port_0_word_r) - AM_RANGE(0xa0008, 0xa000f) AM_READ(track_r) - AM_RANGE(0xa0010, 0xa0011) AM_READ(input_port_1_word_r) - AM_RANGE(0xe0000, 0xe07ff) AM_READ(MRA16_RAM) - AM_RANGE(0xe8000, 0xe800d) AM_READ(seibu_main_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cpu, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x40000, 0x437ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x43800, 0x43fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x44000, 0x4ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x60000, 0x607ff) AM_WRITE(cabal_text_videoram16_w) AM_BASE(&colorram16) - AM_RANGE(0x80000, 0x801ff) AM_WRITE(cabal_background_videoram16_w) AM_BASE(&videoram16) AM_SIZE(&videoram_size) - AM_RANGE(0x80200, 0x803ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w) - AM_RANGE(0xc0040, 0xc0041) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) - AM_RANGE(0xe0000, 0xe07ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w) // fix coin insertion - AM_RANGE(0xe8000, 0xe800d) AM_WRITE(seibu_main_word_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cabalbl_readmem_cpu, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x40000, 0x437ff) AM_READ(MRA16_RAM) - AM_RANGE(0x43800, 0x43fff) AM_READ(MRA16_RAM) - AM_RANGE(0x44000, 0x4ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x60000, 0x607ff) AM_READ(MRA16_RAM) - AM_RANGE(0x80000, 0x801ff) AM_READ(MRA16_RAM) - AM_RANGE(0x80200, 0x803ff) AM_READ(MRA16_RAM) - AM_RANGE(0xa0000, 0xa0001) AM_READ(input_port_0_word_r) - AM_RANGE(0xa0008, 0xa0009) AM_READ(input_port_1_word_r) - AM_RANGE(0xa0010, 0xa0011) AM_READ(input_port_2_word_r) - AM_RANGE(0xe0000, 0xe07ff) AM_READ(MRA16_RAM) - AM_RANGE(0xe8004, 0xe8005) AM_READ(soundlatch2_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cabalbl_writemem_cpu, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x40000, 0x437ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x43800, 0x43fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x44000, 0x4ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x60000, 0x607ff) AM_WRITE(cabal_text_videoram16_w) AM_BASE(&colorram16) - AM_RANGE(0x80000, 0x801ff) AM_WRITE(cabal_background_videoram16_w) AM_BASE(&videoram16) AM_SIZE(&videoram_size) - AM_RANGE(0x80200, 0x803ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xc0040, 0xc0041) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w) - AM_RANGE(0xe0000, 0xe07ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w) - AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabalbl_sound_irq_trigger_word_w) -ADDRESS_MAP_END - -/*********************************************************************/ - -static READ8_HANDLER( cabalbl_snd_r ) -{ - switch(offset){ - case 0x06: return input_port_3_r(0); - case 0x08: return cabal_sound_command2; - case 0x0a: return cabal_sound_command1; - default: return(0xff); - } -} - -static WRITE8_HANDLER( cabalbl_snd_w ) -{ - switch( offset ){ - case 0x00: cabalbl_play_adpcm( 0, data ); break; - case 0x02: cabalbl_play_adpcm( 1, data ); break; - } -} - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x27ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4009, 0x4009) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x4010, 0x4011) AM_READ(seibu_soundlatch_r) - AM_RANGE(0x4012, 0x4012) AM_READ(seibu_main_data_pending_r) - AM_RANGE(0x4013, 0x4013) AM_READ(input_port_2_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4001, 0x4001) AM_WRITE(seibu_irq_clear_w) - AM_RANGE(0x4002, 0x4002) AM_WRITE(seibu_rst10_ack_w) - AM_RANGE(0x4003, 0x4003) AM_WRITE(seibu_rst18_ack_w) - AM_RANGE(0x4005, 0x4006) AM_WRITE(seibu_adpcm_adr_1_w) - AM_RANGE(0x401a, 0x401a) AM_WRITE(seibu_adpcm_ctl_1_w) - AM_RANGE(0x4008, 0x4008) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x4009, 0x4009) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x4018, 0x4019) AM_WRITE(seibu_main_data_w) - AM_RANGE(0x401b, 0x401b) AM_WRITE(seibu_coin_w) - AM_RANGE(0x6005, 0x6006) AM_WRITE(seibu_adpcm_adr_2_w) - AM_RANGE(0x601a, 0x601a) AM_WRITE(seibu_adpcm_ctl_2_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cabalbl_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x400d) AM_READ(cabalbl_snd_r) - AM_RANGE(0x400f, 0x400f) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cabalbl_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x4002) AM_WRITE(cabalbl_snd_w) - AM_RANGE(0x400c, 0x400c) AM_WRITE(soundlatch2_w) - AM_RANGE(0x400e, 0x400e) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x400f, 0x400f) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x6000, 0x6000) AM_WRITE(MWA8_NOP) /*???*/ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -/* ADPCM CPU (common) */ - -#if 0 -static ADDRESS_MAP_START( cabalbl_readmem_adpcm, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END -static ADDRESS_MAP_START( cabalbl_writemem_adpcm, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END -#endif - - -/***************************************************************************/ - -#define CABALDSW\ - PORT_START_TAG("DSW")\ -/* Coin Mode 1 doesn't seem quite right, all 'fractional' coinage values seem to be 4C_1C, but it could be me */\ - PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000a, DEF_STR( 6C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000b, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000c, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000d, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0001, DEF_STR( 8C_3C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000e, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0002, DEF_STR( 5C_3C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0003, DEF_STR( 3C_2C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0004, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0009, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) )PORT_CONDITION("DSW",0x0010,PORTCOND_NOTEQUALS,0x00)\ - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A )) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B )) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW",0x0010,PORTCOND_EQUALS,0x00)\ - PORT_DIPNAME( 0x0010, 0x0010, "Coin Mode" )\ - PORT_DIPSETTING( 0x0010, "Mode 1" )\ - PORT_DIPSETTING( 0x0000, "Mode 2" )\ - PORT_DIPNAME( 0x0020, 0x0020, "Invert Buttons" )\ - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )\ - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Trackball ) )\ - PORT_DIPSETTING( 0x0080, "Small" )\ - PORT_DIPSETTING( 0x0000, "Large" )\ - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )\ - PORT_DIPSETTING( 0x0200, "2" )\ - PORT_DIPSETTING( 0x0300, "3" )\ - PORT_DIPSETTING( 0x0100, "5" )\ - PORT_DIPSETTING( 0x0000, "121 (Cheat)")\ - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) )\ - PORT_DIPSETTING( 0x0c00, "20k 50k" )\ - PORT_DIPSETTING( 0x0800, "30k 100k" )\ - PORT_DIPSETTING( 0x0400, "50k 150k" )\ - PORT_DIPSETTING( 0x0000, "70K" )\ - PORT_DIPNAME( 0x3000, 0x2000, DEF_STR( Difficulty ) )\ - PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) )\ - PORT_DIPSETTING( 0x2000, DEF_STR( Normal ) )\ - PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) )\ - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )\ - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Demo_Sounds ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) - - INPUT_PORTS_START( cabal ) - -CABALDSW - PORT_START_TAG("IN0") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0ff0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(4) /* read through sound cpu */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(4) /* read through sound cpu */ - - PORT_START_TAG("IN2") - PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(1) - - PORT_START_TAG("IN3") - PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN4") - PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( cabalbl ) -CABALDSW - - PORT_START_TAG("IN0") - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(4) /* read through sound cpu */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(4) /* read through sound cpu */ -INPUT_PORTS_END - - - -static const gfx_layout text_layout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 0,4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0}, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_layout tile_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 8, 12, 0, 4 }, - { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, - 32*16+3, 32*16+2, 32*16+1, 32*16+0, 33*16+3, 33*16+2, 33*16+1, 33*16+0 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 64*16 -}; - -static const gfx_layout sprite_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 8, 12, 0, 4 }, - { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, - 32+3, 32+2, 32+1, 32+0, 48+3, 48+2, 48+1, 48+0 }, - { 30*32, 28*32, 26*32, 24*32, 22*32, 20*32, 18*32, 16*32, - 14*32, 12*32, 10*32, 8*32, 6*32, 4*32, 2*32, 0*32 }, - 64*16 -}; - -static const gfx_decode cabal_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &text_layout, 0, 1024/4 }, - { REGION_GFX2, 0, &tile_layout, 32*16, 16 }, - { REGION_GFX3, 0, &sprite_layout, 16*16, 16 }, - { -1 } -}; - - - -static struct YM2151interface ym2151_interface = -{ - seibu_ym3812_irqhandler -}; - -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2151interface cabalbl_ym2151_interface = -{ - irqhandler -}; - -SEIBU_SOUND_SYSTEM_ADPCM_HARDWARE - -static struct CustomSound_interface cabalbl_adpcm_interface = -{ - cabalbl_adpcm_start, - cabalbl_adpcm_stop -}; - - -static MACHINE_DRIVER_START( cabal ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu,writemem_cpu) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(cabal_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(cabal) - MDRV_VIDEO_UPDATE(cabal) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579580) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(CUSTOM, 8000) - MDRV_SOUND_CONFIG(adpcm_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) - - MDRV_SOUND_ADD(CUSTOM, 8000) - MDRV_SOUND_CONFIG(adpcm_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cabalbl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(cabalbl_readmem_cpu,cabalbl_writemem_cpu) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(cabalbl_readmem_sound,cabalbl_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(cabalbl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(cabal_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(cabal) - MDRV_VIDEO_UPDATE(cabal) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579580) - MDRV_SOUND_CONFIG(cabalbl_ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(CUSTOM, 8000) - MDRV_SOUND_CONFIG(cabalbl_adpcm_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) - - MDRV_SOUND_ADD(CUSTOM, 8000) - MDRV_SOUND_CONFIG(cabalbl_adpcm_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - - -ROM_START( cabal ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "h7_512.bin", 0x00000, 0x10000, CRC(8fe16fb4) SHA1(fedb2d0c6c21516f68cfa99093772fe8fa862389) ) - ROM_LOAD16_BYTE( "h6_512.bin", 0x00001, 0x10000, CRC(6968101c) SHA1(d65005ac235dae5c32bbcd182cb365e8fa067fe7) ) - ROM_LOAD16_BYTE( "k7_512.bin", 0x20000, 0x10000, CRC(562031a2) SHA1(ed5ef50a66c7797a7f345e479162cf83d6777f7c) ) - ROM_LOAD16_BYTE( "k6_512.bin", 0x20001, 0x10000, CRC(4fda2856) SHA1(a213cb7443cdccbad3f2610e8d42b2e149cbedb9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "4-3n", 0x0000, 0x2000, CRC(4038eff2) SHA1(0bcafc1b78c3bef9a0e9b822c482ea4a942fd180) ) - ROM_LOAD( "3-3p", 0x8000, 0x8000, CRC(d9defcbf) SHA1(f26b10b1dbe5aa6446f70fd18e5f1379455578ec) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t6_128.bin", 0x00000, 0x04000, CRC(1ccee214) SHA1(7c842bc1c6002ec90693160fd5407345092420bb) ) /* characters */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-2.7s", 0x00000, 0x80000, CRC(13ca7ae1) SHA1(b26bb4876a6518e3809e0fa4d442616508b3e7e8) ) /* tiles */ - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-1.5e", 0x00000, 0x80000, CRC(8324a7fe) SHA1(aed4470df35ec18e65e35bddc9c217a5019fdcbf) ) /* sprites */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Samples? */ - ROM_LOAD( "2-1s", 0x00000, 0x10000, CRC(850406b4) SHA1(23ac1650c6d6f35607a5264b3aa89868401a645a) ) - ROM_LOAD( "1-1u", 0x10000, 0x10000, CRC(8b3e0789) SHA1(b1450db1b1bada237c90930623e4def321099f13) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* unknown */ - ROM_LOAD( "prom05.8e", 0x0000, 0x0100, CRC(a94b18c2) SHA1(e7db4c1efc9e313e36eef3f53ae5b2e573a38920) ) - ROM_LOAD( "prom10.4j", 0x0100, 0x0100, CRC(261c93bc) SHA1(942470198143d584d3766f28587d1879abd912c1) ) -ROM_END - -ROM_START( cabal2 ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "9-7h", 0x00000, 0x10000, CRC(ebbb9484) SHA1(2c77d5b4acdc37720dc7ccab526862981bf8da51) ) - ROM_LOAD16_BYTE( "7-6h", 0x00001, 0x10000, CRC(51aeb49e) SHA1(df38dc58d8c6fa3d35904bf34e29111e7bd523ad) ) - ROM_LOAD16_BYTE( "8-7k", 0x20000, 0x10000, CRC(4c24ed9a) SHA1(f0fc25c3e7dc8ac71fdad3e91ab618cd7a037123) ) - ROM_LOAD16_BYTE( "6-6k", 0x20001, 0x10000, CRC(681620e8) SHA1(c9eacfb55059986dbecc2fae1339069a852f917b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "4-3n", 0x0000, 0x2000, CRC(4038eff2) SHA1(0bcafc1b78c3bef9a0e9b822c482ea4a942fd180) ) - ROM_LOAD( "3-3p", 0x8000, 0x8000, CRC(d9defcbf) SHA1(f26b10b1dbe5aa6446f70fd18e5f1379455578ec) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5-6s", 0x00000, 0x04000, CRC(6a76955a) SHA1(733cb4b862b5dac97c2641b58f2362471e62fcf2) ) /* characters */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-2.7s", 0x00000, 0x80000, CRC(13ca7ae1) SHA1(b26bb4876a6518e3809e0fa4d442616508b3e7e8) ) /* tiles */ - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-1.5e", 0x00000, 0x80000, CRC(8324a7fe) SHA1(aed4470df35ec18e65e35bddc9c217a5019fdcbf) ) /* sprites */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Samples? */ - ROM_LOAD( "2-1s", 0x00000, 0x10000, CRC(850406b4) SHA1(23ac1650c6d6f35607a5264b3aa89868401a645a) ) - ROM_LOAD( "1-1u", 0x10000, 0x10000, CRC(8b3e0789) SHA1(b1450db1b1bada237c90930623e4def321099f13) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* unknown */ - ROM_LOAD( "prom05.8e", 0x0000, 0x0100, CRC(a94b18c2) SHA1(e7db4c1efc9e313e36eef3f53ae5b2e573a38920) ) - ROM_LOAD( "prom10.4j", 0x0100, 0x0100, CRC(261c93bc) SHA1(942470198143d584d3766f28587d1879abd912c1) ) -ROM_END - -ROM_START( cabalbl ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "cabal_24.bin", 0x00000, 0x10000, CRC(00abbe0c) SHA1(bacf17444abfb4f56248ff56e37b0aa2b1a3800d) ) - ROM_LOAD16_BYTE( "cabal_22.bin", 0x00001, 0x10000, CRC(78c4af27) SHA1(31049d1ec76d76284682de7a0592f63d97019240) ) - ROM_LOAD16_BYTE( "cabal_23.bin", 0x20000, 0x10000, CRC(d763a47c) SHA1(146d8082a404b6eddaf2dc9ba41a997949c17f8a) ) - ROM_LOAD16_BYTE( "cabal_21.bin", 0x20001, 0x10000, CRC(96d5e8af) SHA1(ed7d854f08e87db5ae6cf526eafa029dfd2bfb9f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "cabal_11.bin", 0x0000, 0x10000, CRC(d308a543) SHA1(4f45db42512f83266001daee55d06f49e7908e35) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5-6s", 0x00000, 0x04000, CRC(6a76955a) SHA1(733cb4b862b5dac97c2641b58f2362471e62fcf2) ) /* characters */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-2.7s", 0x00000, 0x80000, CRC(13ca7ae1) SHA1(b26bb4876a6518e3809e0fa4d442616508b3e7e8) ) /* tiles */ -#if 0 /* same data, different layout */ - ROM_LOAD16_BYTE( "cabal_17.bin", 0x00000, 0x10000, CRC(3b6d2b09) ) - ROM_LOAD16_BYTE( "cabal_15.bin", 0x00001, 0x10000, CRC(1023319b) ) - ROM_LOAD16_BYTE( "cabal_16.bin", 0x20000, 0x10000, CRC(77bc7a60) ) - ROM_LOAD16_BYTE( "cabal_14.bin", 0x20001, 0x10000, CRC(420b0801) ) - ROM_LOAD16_BYTE( "cabal_18.bin", 0x40000, 0x10000, CRC(0bc50075) ) - ROM_LOAD16_BYTE( "cabal_12.bin", 0x40001, 0x10000, CRC(543fcb37) ) - ROM_LOAD16_BYTE( "cabal_19.bin", 0x60000, 0x10000, CRC(67e4fe47) ) - ROM_LOAD16_BYTE( "cabal_13.bin", 0x60001, 0x10000, CRC(d28d921e) ) -#endif - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tad-1.5e", 0x00000, 0x80000, CRC(8324a7fe) SHA1(aed4470df35ec18e65e35bddc9c217a5019fdcbf) ) /* sprites */ -#if 0 /* same data, different layout */ - ROM_LOAD16_BYTE( "cabal_05.bin", 0x00000, 0x10000, CRC(4e49c28e) ) - ROM_LOAD16_BYTE( "cabal_04.bin", 0x00001, 0x10000, CRC(34d3cac8) ) - ROM_LOAD16_BYTE( "cabal_06.bin", 0x20000, 0x10000, CRC(6a0e739d) ) - ROM_LOAD16_BYTE( "cabal_03.bin", 0x20001, 0x10000, CRC(7065e840) ) - ROM_LOAD16_BYTE( "cabal_07.bin", 0x40000, 0x10000, CRC(581a50c1) ) - ROM_LOAD16_BYTE( "cabal_02.bin", 0x40001, 0x10000, CRC(0e1ec30e) ) - ROM_LOAD16_BYTE( "cabal_08.bin", 0x60000, 0x10000, CRC(702735c9) ) - ROM_LOAD16_BYTE( "cabal_01.bin", 0x60001, 0x10000, CRC(55c44764) ) -#endif - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "cabal_09.bin", 0x00000, 0x10000, CRC(4ffa7fe3) SHA1(381d8e765a7b94678fb3308965c748bbe9f8e247) ) /* Z80 code/adpcm data */ - ROM_LOAD( "cabal_10.bin", 0x10000, 0x10000, CRC(958789b6) SHA1(344c3ee8a1e272b56499e5c0415bb714aec0ddcf) ) /* Z80 code/adpcm data */ -ROM_END - - - -static DRIVER_INIT( cabal ) -{ - seibu_sound_decrypt(REGION_CPU2,0x2000); - seibu_adpcm_decrypt(REGION_SOUND1); -} - - -GAME( 1988, cabal, 0, cabal, cabal, cabal, ROT0, "Tad (Fabtek license)", "Cabal (US set 1)", 0 ) -GAME( 1988, cabal2, cabal, cabal, cabal, cabal, ROT0, "Tad (Fabtek license)", "Cabal (US set 2)", 0 ) -GAME( 1988, cabalbl, cabal, cabalbl, cabalbl, 0, ROT0, "bootleg", "Cabal (bootleg)", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/canyon.c b/src/drivers/canyon.c deleted file mode 100644 index f55572c77..000000000 --- a/src/drivers/canyon.c +++ /dev/null @@ -1,327 +0,0 @@ -/*************************************************************************** - - Atari Canyon Bomber hardware - - driver by Mike Balfour - - Games supported: - * Canyon Bomber - - Known issues: - * none at this time - -**************************************************************************** - - Memory Map: - 0000-01FF WRAM - 0400-04FF W A0=0:MOTOR1, A0=1:MOTOR2 - 0500-05FF W A0=0:EXPLODE, A0=1:TIMER RESET - 0600-067F W A0=0:WHISTLE1, A0=1:WHISTLE2 - 0680-06FF W A0=0:LED1, A0=1:LED2 - 0700-077F W A0=0:ATTRACT1, A0=1:ATTRACT2 - 0800-0FFF DISPLAY / RAM - 1000-17FF SWITCHES - 1800-1FFF OPTIONS - 2000-27FF ROM1 - 2800-2FFF ROM2 - 3000-37FF ROM3 (Language ROM) - 3800-3FFF ROM4 (Program ROM) - - If you have any questions about how this driver works, don't hesitate to - ask. - Mike Balfour (mab22@po.cwru.edu) - -***************************************************************************/ - -#include "driver.h" -#include "canyon.h" -#include "sound/discrete.h" - - - - -/************************************* - * - * Palette generation - * - *************************************/ - -static PALETTE_INIT( canyon ) -{ - palette_set_color(machine, 0, 0x00, 0x00, 0x00); /* BLACK */ - palette_set_color(machine, 1, 0xff, 0xff, 0xff); /* WHITE */ - palette_set_color(machine, 2, 0x80, 0x80, 0x80); /* GREY */ - - colortable[0] = 2; - colortable[1] = 0; - colortable[2] = 2; - colortable[3] = 1; -} - - -/************************************* - * - * Read handlers - * - *************************************/ - -static READ8_HANDLER( canyon_switches_r ) -{ - UINT8 val = 0; - - if ((readinputport(2) >> (offset & 7)) & 1) - { - val |= 0x80; - } - if ((readinputport(1) >> (offset & 3)) & 1) - { - val |= 0x01; - } - - return val; -} - - -static READ8_HANDLER( canyon_options_r ) -{ - return (readinputport(0) >> (2 * (~offset & 3))) & 3; -} - - - - -/************************************* - * - * Write handlers - * - *************************************/ - -static WRITE8_HANDLER( canyon_led_w ) -{ - set_led_status(offset & 0x01, offset & 0x02); -} - - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x100) AM_RAM - AM_RANGE(0x0400, 0x0401) AM_WRITE(canyon_motor_w) - AM_RANGE(0x0500, 0x0500) AM_WRITE(canyon_explode_w) - AM_RANGE(0x0501, 0x0501) AM_WRITE(watchdog_reset_w) /* watchdog, disabled in service mode */ - AM_RANGE(0x0600, 0x0603) AM_WRITE(canyon_whistle_w) - AM_RANGE(0x0680, 0x0683) AM_WRITE(canyon_led_w) - AM_RANGE(0x0700, 0x0703) AM_WRITE(canyon_attract_w) - AM_RANGE(0x0800, 0x0bff) AM_READWRITE(MRA8_RAM, canyon_videoram_w) AM_BASE(&canyon_videoram) - AM_RANGE(0x1000, 0x17ff) AM_READWRITE(canyon_switches_r, MWA8_NOP) /* sloppy code writes here */ - AM_RANGE(0x1800, 0x1fff) AM_READ(canyon_options_r) - AM_RANGE(0x2000, 0x3fff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( canyon ) - PORT_START /* DSW */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING( 0x03, DEF_STR( German ) ) - PORT_DIPNAME( 0x30, 0x00, "Misses Per Play" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x30, "6" ) - PORT_DIPNAME( 0xC0, 0x80, DEF_STR( Coinage )) - PORT_DIPSETTING( 0xC0, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START /* IN1 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_SERVICE( 0x10, IP_ACTIVE_HIGH ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hiscore Reset") PORT_CODE(KEYCODE_H) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_TILT ) /* SLAM */ - - PORT_START - PORT_ADJUSTER( 20, "Motor 1 RPM" ) - - PORT_START - PORT_ADJUSTER( 30, "Motor 2 RPM" ) - - PORT_START - PORT_ADJUSTER( 70, "Whistle 1 Freq" ) - - PORT_START - PORT_ADJUSTER( 80, "Whistle 2 Freq" ) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout tile_layout = -{ - 8, 8, - 64, - 1, - { 0 }, - { - 0x4, 0x5, 0x6, 0x7, 0xC, 0xD, 0xE, 0xF - }, - { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 - }, - 0x80 -}; - - -static const gfx_layout sprite_layout = -{ - 32, 16, - 4, - 1, - { 0 }, - { - 0x007, 0x006, 0x005, 0x004, 0x003, 0x002, 0x001, 0x000, - 0x00F, 0x00E, 0x00D, 0x00C, 0x00B, 0x00A, 0x009, 0x008, - 0x107, 0x106, 0x105, 0x104, 0x103, 0x102, 0x101, 0x100, - 0x10F, 0x10E, 0x10D, 0x10C, 0x10B, 0x10A, 0x109, 0x108 - }, - { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, - 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0 - }, - 0x200 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tile_layout, 0, 2 }, - { REGION_GFX2, 0, &sprite_layout, 0, 2 }, - { -1 } -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( canyon ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 12096000 / 16) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse, 1) - MDRV_WATCHDOG_VBLANK_INIT(8) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(22 * 1000000 / 15750)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(3) - MDRV_COLORTABLE_LENGTH(4) - - MDRV_PALETTE_INIT(canyon) - MDRV_VIDEO_START(canyon) - MDRV_VIDEO_UPDATE(canyon) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(canyon_discrete_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( canyon ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD_NIB_LOW ( "9499-01.j1", 0x3000, 0x0400, CRC(31800767) SHA1(d4aebe12d3c45a2a8a361dc6f63e1a6230a78c17) ) - ROM_LOAD_NIB_HIGH( "9503-01.p1", 0x3000, 0x0400, CRC(1eddbe28) SHA1(7d30280bf9edff743c16386d7cdec78094477996) ) - ROM_LOAD ( "9496-01.d1", 0x3800, 0x0800, CRC(8be15080) SHA1(095c15e9ac91623b2d514858dca2e4c261d36fd0) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "9492-01.n8", 0x0000, 0x0400, CRC(7449f754) SHA1(a8ffc39e1a86c94487551f5026eedbbd066b12c9) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD_NIB_LOW ( "9506-01.m5", 0x0000, 0x0100, CRC(0d63396a) SHA1(147fae3b02a86310c8d022a7e7cfbf71ea511616) ) - ROM_LOAD_NIB_HIGH( "9505-01.n5", 0x0000, 0x0100, CRC(60507c07) SHA1(fcb76890cbaa37e02392bf8b97f7be9a6fe6a721) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "9491-01.j6", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync (not used) */ -ROM_END - - -ROM_START( canyonp ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD_NIB_LOW ( "cbp3000l.j1", 0x3000, 0x0800, CRC(49cf29a0) SHA1(b58f024f45f85e5c2a48a95c60e80fd1be60eaac) ) - ROM_LOAD_NIB_HIGH( "cbp3000m.p1", 0x3000, 0x0800, CRC(b4385c23) SHA1(b550dfe9182f2b29aedba160a0917ca78b82f0e7) ) - ROM_LOAD_NIB_LOW ( "cbp3800l.h1", 0x3800, 0x0800, CRC(c7ee4431) SHA1(7a0f4454a981c4e9ee27e273e9a8379458e660e5) ) - ROM_LOAD_NIB_HIGH( "cbp3800m.r1", 0x3800, 0x0800, CRC(94246a9a) SHA1(5ff8b69fb744a5f62d4cf291e8f25e3620b479e7) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "9492-01.n8", 0x0000, 0x0400, CRC(7449f754) SHA1(a8ffc39e1a86c94487551f5026eedbbd066b12c9) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD_NIB_LOW ( "9506-01.m5", 0x0000, 0x0100, CRC(0d63396a) SHA1(147fae3b02a86310c8d022a7e7cfbf71ea511616) ) - ROM_LOAD_NIB_HIGH( "9505-01.n5", 0x0000, 0x0100, CRC(60507c07) SHA1(fcb76890cbaa37e02392bf8b97f7be9a6fe6a721) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "9491-01.j6", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync (not used) */ -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1977, canyon, 0, canyon, canyon, 0, ROT0, "Atari", "Canyon Bomber", 0 ) -GAME( 1977, canyonp, canyon, canyon, canyon, 0, ROT0, "Atari", "Canyon Bomber (prototype)", 0 ) diff --git a/src/drivers/cave.c b/src/drivers/cave.c deleted file mode 100644 index d3b5ccb30..000000000 --- a/src/drivers/cave.c +++ /dev/null @@ -1,4524 +0,0 @@ -/*************************************************************************** - - -= Cave Hardware =- - - driver by Luca Elia (l.elia@tin.it) - - -Main CPU : MC68000 - -Sound CPU : Z80 [Optional] - -Sound Chips : YMZ280B or - OKIM6295 x (1|2) + YM2203 / YM2151 [Optional] - -Other : 93C46 EEPROM - - ------------------------------------------------------------------------------------------ -Year + Game License PCB Tilemaps Sprites Other ------------------------------------------------------------------------------------------ -94 Mazinger Z Banpresto ? 038 9335EX706 013 9341E7009 Z80 -94 PowerInstinct 2 Atlus ATG02? 038 9429WX709 013 Z80 NMK 112 -95 P.I. Legends Atlus AT047G2-B 038 9429WX709 013 9341E7009 Z80 NMK 112 -95 Metamoqester Banpresto BP947A 038 9437WX711 013 9346E7002 Z80 -95 Sailor Moon Banpresto BP945A 038 9437WX711 013 9346E7002 Z80 -95 Donpachi Atlus AT-C01DP-2 038 9429WX727 013 8647-01 NMK 112 -96 Air Gallet Banpresto BP962A 038 9437WX711 013 9346E7002 Z80 -96 Hotdog Storm Marble ? ? Z80 -97 Dodonpachi Atlus ATC03D2 ? -98 Dangun Feveron Nihon System CV01 038 9808WX003 013 9807EX004 -98 ESP Ra.De. Atlus ATC04 ? -98 Uo Poko Jaleco CV02 038 9749WX001 013 9749EX004 -99 Guwange Atlus ATC05 ? -99 Gaia Crusaders Noise Factory ? 038 9838WX003 013 9918EX008 -99 Koro Koro Quest Takumi TUG-01B 038 9838WX004 013 9838EX004 -01 Thunder Heroes Primetek ? 038 9838WX003 013 9918EX008 ------------------------------------------------------------------------------------------ - -To Do: - -- Sprite lag in some games (e.g. metmqstr). The sprites chip probably - generates interrupts (unknown_irq) - - -Stephh's notes (based on the games M68000 code and some tests) : - -1) 'gaia' - - - Difficulty Dip Switch also affects "Bonus Life" Dip Switch - - -2) 'theroes' - - - This is a English/Chinese version, but from the manual, there might exist a English/Japanese one - - Difficulty Dip Switch also affects "Bonus Life" Dip Switch - - There are less degrees of difficulty in this version - - DSW2 bit 5 effect remains unknown : - * it is checked at address 0x008d16 at the begining of each sub-level - * it is checked at address 0x00c382 when you quickly push the joystick left or right twice - Any info is welcome ! - -***************************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "machine/nmk112.h" -#include "cpu/z80/z80.h" -#include "cave.h" -#include "sound/2203intf.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" -#include "sound/ymz280b.h" - -/*************************************************************************** - - - Interrupt Handling Routines - - -***************************************************************************/ - -static int time_vblank_irq = 2000; -static UINT8 irq_level; -static UINT8 vblank_irq; -static UINT8 sound_irq; -static UINT8 unknown_irq; -static UINT8 agallet_vblank_irq; - -/* Update the IRQ state based on all possible causes */ -static void update_irq_state(void) -{ - if (vblank_irq || sound_irq || unknown_irq) - cpunum_set_input_line(0, irq_level, ASSERT_LINE); - else - cpunum_set_input_line(0, irq_level, CLEAR_LINE); -} - -static void cave_vblank_start(int param) -{ - vblank_irq = 1; - update_irq_state(); - cave_get_sprite_info(); - agallet_vblank_irq = 1; -} - -static void cave_vblank_end(int param) -{ - if(cave_kludge == 3) /* mazinger metmqstr */ - { - unknown_irq = 1; - update_irq_state(); - } - agallet_vblank_irq = 0; -} - -/* Called once/frame to generate the VBLANK interrupt */ -static INTERRUPT_GEN( cave_interrupt ) -{ - timer_set(TIME_IN_USEC(17376-time_vblank_irq), 0, cave_vblank_start); - timer_set(TIME_IN_USEC(17376-time_vblank_irq + 2000), 0, cave_vblank_end); -} - -/* Called by the YMZ280B to set the IRQ state */ -static void sound_irq_gen(int state) -{ - sound_irq = (state != 0); - update_irq_state(); -} - - -/* Level 1 irq routines: - - Game |first read | bit==0->routine + | - |offset: | read this offset | - - ddonpach 4,0 0 -> vblank + 4 1 -> rte 2 -> like 0 read sound - dfeveron 0 0 -> vblank + 4 1 -> + 6 - read sound - uopoko 0 0 -> vblank + 4 1 -> + 6 - read sound - esprade 0 0 -> vblank + 4 1 -> rte 2 must be 0 read sound - guwange 0 0 -> vblank + 6,4 1 -> + 6,4 2 must be 0 read sound - mazinger 0 0 -> vblank + 4 rest -> scroll + 6 -*/ - - -/* Reads the cause of the interrupt and clears the state */ - -static READ16_HANDLER( cave_irq_cause_r ) -{ - int result = 0x0003; - - if (vblank_irq) result ^= 0x01; - if (unknown_irq) result ^= 0x02; - - if (offset == 4/2) vblank_irq = 0; - if (offset == 6/2) unknown_irq = 0; - - update_irq_state(); - -/* - sailormn and agallet wait for bit 2 of $b80001 to go 1 -> 0. - It must happen once per frame as agallet uses this to show - the copyright notice screen for ~8.5s -*/ - if (offset == 0) - { - result &= ~4; - result |= (agallet_vblank_irq?0:4); - } - - return result; -} - - -/*************************************************************************** - - - Sound Handling Routines - - -***************************************************************************/ - -/* We need a FIFO buffer for sailormn, where the inter-CPUs - communication is *really* tight */ -static struct -{ - int len; - UINT8 data[32]; -} soundbuf; - -//static UINT8 sound_flag1, sound_flag2; - -static READ8_HANDLER( soundflags_r ) -{ - // bit 2 is low: can read command (lo) - // bit 3 is low: can read command (hi) -// return (sound_flag1 ? 0 : 4) | -// (sound_flag2 ? 0 : 8) ; -return 0; -} - -static READ16_HANDLER( soundflags_ack_r ) -{ - // bit 0 is low: can write command - // bit 1 is low: can read answer -// return ((sound_flag1 | sound_flag2) ? 1 : 0) | -// ((soundbuf.len>0 ) ? 0 : 2) ; - -return ((soundbuf.len>0 ) ? 0 : 2) ; -} - -/* Main CPU: write a 16 bit sound latch and generate a NMI on the sound CPU */ -static WRITE16_HANDLER( sound_cmd_w ) -{ -// sound_flag1 = 1; -// sound_flag2 = 1; - soundlatch_word_w(offset,data,mem_mask); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_time(TIME_IN_USEC(50)); // Allow the other cpu to reply -} - -/* Sound CPU: read the low 8 bits of the 16 bit sound latch */ -static READ8_HANDLER( soundlatch_lo_r ) -{ -// sound_flag1 = 0; - return soundlatch_word_r(offset,0) & 0xff; -} - -/* Sound CPU: read the high 8 bits of the 16 bit sound latch */ -static READ8_HANDLER( soundlatch_hi_r ) -{ -// sound_flag2 = 0; - return soundlatch_word_r(offset,0) >> 8; -} - -/* Main CPU: read the latch written by the sound CPU (acknowledge) */ -static READ16_HANDLER( soundlatch_ack_r ) -{ - if (soundbuf.len>0) - { - UINT8 data = soundbuf.data[0]; - memmove(soundbuf.data,soundbuf.data+1,(32-1)*sizeof(soundbuf.data[0])); - soundbuf.len--; - return data; - } - else - { logerror("CPU #1 - PC %04X: Sound Buffer 2 Underflow Error\n",activecpu_get_pc()); - return 0xff; } -} - - -/* Sound CPU: write latch for the main CPU (acknowledge) */ -static WRITE8_HANDLER( soundlatch_ack_w ) -{ - soundbuf.data[soundbuf.len] = data; - if (soundbuf.len<32) - soundbuf.len++; - else - logerror("CPU #1 - PC %04X: Sound Buffer 2 Overflow Error\n",activecpu_get_pc()); -} - - - -/* Handles writes to the YMZ280B */ -static WRITE16_HANDLER( cave_sound_w ) -{ - if (ACCESSING_LSB) - { - if (offset) YMZ280B_data_0_w (offset, data & 0xff); - else YMZ280B_register_0_w (offset, data & 0xff); - } -} - -/* Handles reads from the YMZ280B */ -static READ16_HANDLER( cave_sound_r ) -{ - return YMZ280B_status_0_r(offset); -} - - -/*************************************************************************** - - - EEPROM - - -***************************************************************************/ - -static UINT8 cave_default_eeprom_type1[16] = {0x00,0x0C,0x11,0x0D,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x11,0x11,0xFF,0xFF,0xFF,0xFF}; /* DFeveron, Guwange */ -static UINT8 cave_default_eeprom_type1feversos[18] = {0x00,0x0C,0x16,0x27,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x11,0x11,0xFF,0xFF,0xFF,0xFF,0x05,0x19}; /* Fever SOS (code checks for the 0x0519 or it won't boot) */ -static UINT8 cave_default_eeprom_type2[16] = {0x00,0x0C,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; /* Esprade, DonPachi, DDonPachi */ -static UINT8 cave_default_eeprom_type3[16] = {0x00,0x03,0x08,0x00,0xFF,0xFF,0xFF,0xFF,0x08,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF}; /* UoPoko */ -static UINT8 cave_default_eeprom_type4[16] = {0xF3,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; /* Hotdog Storm */ -static UINT8 cave_default_eeprom_type5[16] = {0xED,0xFF,0x00,0x00,0x12,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; /* Mazinger Z (6th byte is country code) */ -static UINT8 cave_default_eeprom_type6[18] = {0xa5,0x00,0xa5,0x00,0xa5,0x00,0xa5,0x00,0xa5,0x01,0xa5,0x01,0xa5,0x04,0xa5,0x01,0xa5,0x02}; /* Sailor Moon (last byte is country code) */ -// Air Gallet. Byte 1f is the country code (0==JAPAN,U.S.A,EUROPE,HONGKONG,TAIWAN,KOREA) -static UINT8 cave_default_eeprom_type7[48] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff}; - -static UINT8 *cave_default_eeprom; -static int cave_default_eeprom_length; -static int cave_region_byte; - -READ16_HANDLER( cave_input1_r ) -{ - return readinputport(1) | ((EEPROM_read_bit() & 0x01) << 11); -} - -READ16_HANDLER( guwange_input1_r ) -{ - return readinputport(1) | ((EEPROM_read_bit() & 0x01) << 7); -} - -READ16_HANDLER( gaia_dsw_r ) -{ - return readinputport(2) | (readinputport(3) << 8); -} - -WRITE16_HANDLER( cave_eeprom_msb_w ) -{ - if (data & ~0xfe00) - logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",activecpu_get_pc(),data); - - if ( ACCESSING_MSB ) // even address - { - coin_lockout_w(1,~data & 0x8000); - coin_lockout_w(0,~data & 0x4000); - coin_counter_w(1, data & 0x2000); - coin_counter_w(0, data & 0x1000); - - // latch the bit - EEPROM_write_bit(data & 0x0800); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x0400) ? ASSERT_LINE : CLEAR_LINE ); - } -} - -WRITE16_HANDLER( sailormn_eeprom_msb_w ) -{ - sailormn_tilebank_w ( data & 0x0100 ); - cave_eeprom_msb_w(offset,data & ~0x0100,mem_mask); -} - -WRITE16_HANDLER( hotdogst_eeprom_msb_w ) -{ - if ( ACCESSING_MSB ) // even address - { - // latch the bit - EEPROM_write_bit(data & 0x0800); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x0400) ? CLEAR_LINE: ASSERT_LINE ); - } -} - -WRITE16_HANDLER( cave_eeprom_lsb_w ) -{ - if (data & ~0x00ef) - logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",activecpu_get_pc(),data); - - if ( ACCESSING_LSB ) // odd address - { - coin_lockout_w(1,~data & 0x0008); - coin_lockout_w(0,~data & 0x0004); - coin_counter_w(1, data & 0x0002); - coin_counter_w(0, data & 0x0001); - - // latch the bit - EEPROM_write_bit(data & 0x80); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE ); - } -} - -/* - No eeprom or lockouts */ -WRITE16_HANDLER( gaia_coin_lsb_w ) -{ - if ( ACCESSING_LSB ) // odd address - { - coin_counter_w(1, data & 0x0002); - coin_counter_w(0, data & 0x0001); - } -} - -/* - No coin lockouts - - Writing 0xcf00 shouldn't send a 1 bit to the eeprom */ -WRITE16_HANDLER( metmqstr_eeprom_msb_w ) -{ - if (data & ~0xff00) - logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",activecpu_get_pc(),data); - - if ( ACCESSING_MSB ) // even address - { - coin_counter_w(1, data & 0x2000); - coin_counter_w(0, data & 0x1000); - - if (~data & 0x0100) - { - // latch the bit - EEPROM_write_bit(data & 0x0800); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x0400) ? ASSERT_LINE : CLEAR_LINE ); - } - } -} - -NVRAM_HANDLER( cave ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C46); - - if (file) EEPROM_load(file); - else - { - if (cave_default_eeprom) /* Set the EEPROM to Factory Defaults */ - EEPROM_set_data(cave_default_eeprom,cave_default_eeprom_length); - } - } -} - -static struct EEPROM_interface eeprom_interface_93C46_8bit = -{ - 7, // address bits 7 - 8, // data bits 8 - "*110", // read 1 10 aaaaaa - "*101", // write 1 01 aaaaaa dddddddddddddddd - "*111", // erase 1 11 aaaaaa - "*10000xxxx", // lock 1 00 00xxxx - "*10011xxxx", // unlock 1 00 11xxxx - 1, -// "*10001xxxx" // write all 1 00 01xxxx dddddddddddddddd -// "*10010xxxx" // erase all 1 00 10xxxx -}; - -NVRAM_HANDLER( korokoro ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C46_8bit); - - if (file) EEPROM_load(file); - else - { - if (cave_default_eeprom) /* Set the EEPROM to Factory Defaults */ - EEPROM_set_data(cave_default_eeprom,cave_default_eeprom_length); - } - } -} - - - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - -/* Lines starting with an empty comment in the following MemoryReadAddress - arrays are there for debug (e.g. the game does not read from those ranges - AFAIK) */ - -/*************************************************************************** - Dangun Feveron -***************************************************************************/ - -static ADDRESS_MAP_START( dfeveron_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300002, 0x300003) AM_READ(cave_sound_r ) // YMZ280 -/**/AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x708000, 0x708fff) AM_READ(MRA16_RAM ) // Palette -/**/AM_RANGE(0x710000, 0x710fff) AM_READ(MRA16_RAM ) // ? - AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x900000, 0x900005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xb00002, 0xb00003) AM_READ(cave_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dfeveron_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x708000, 0x708fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x710c00, 0x710fff) AM_WRITE(MWA16_RAM ) // ? - AM_RANGE(0x800000, 0x80007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Dodonpachi -***************************************************************************/ - -static ADDRESS_MAP_START( ddonpach_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300002, 0x300003) AM_READ(cave_sound_r ) // YMZ280 -/**/AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x700000, 0x70ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x900000, 0x900005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control -/**/AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xd00000, 0xd00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xd00002, 0xd00003) AM_READ(cave_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ddonpach_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(cave_vram_2_8x8_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x800000, 0x80007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Donpachi -***************************************************************************/ - -READ16_HANDLER( donpachi_videoregs_r ) -{ - switch( offset ) - { - case 0: - case 1: - case 2: - case 3: return cave_irq_cause_r(offset,0); - - default: return 0x0000; - } -} - -#if 0 -WRITE16_HANDLER( donpachi_videoregs_w ) -{ - COMBINE_DATA(&cave_videoregs[offset]); - - switch( offset ) - { -// case 0x78/2: watchdog_reset16_w(0,0); break; - } -} -#endif - -static ADDRESS_MAP_START( donpachi_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x200000, 0x207fff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x300000, 0x307fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x508000, 0x50ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x600000, 0x600005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0x700000, 0x700005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0x800000, 0x800005) AM_READ(MRA16_RAM ) // Layer 2 Control - AM_RANGE(0x900000, 0x90007f) AM_READ(donpachi_videoregs_r ) // Video Regs -/**/AM_RANGE(0xa08000, 0xa08fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xb00000, 0xb00001) AM_READ(OKIM6295_status_0_lsb_r ) // M6295 - AM_RANGE(0xb00010, 0xb00011) AM_READ(OKIM6295_status_1_lsb_r ) // - AM_RANGE(0xc00000, 0xc00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xc00002, 0xc00003) AM_READ(cave_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( donpachi_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x200000, 0x207fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x300000, 0x307fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(cave_vram_2_8x8_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x500000, 0x507fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x508000, 0x50ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x600000, 0x600005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0x800000, 0x800005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0x900000, 0x90007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0xa08000, 0xa08fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xb00000, 0xb00003) AM_WRITE(OKIM6295_data_0_lsb_w ) // M6295 - AM_RANGE(0xb00010, 0xb00013) AM_WRITE(OKIM6295_data_1_lsb_w ) // - AM_RANGE(0xb00020, 0xb0002f) AM_WRITE(NMK112_okibank_lsb_w ) // - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Esprade -***************************************************************************/ - -static ADDRESS_MAP_START( esprade_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300002, 0x300003) AM_READ(cave_sound_r ) // YMZ280 -/**/AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x700000, 0x707fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x900000, 0x900005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control -/**/AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xd00000, 0xd00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xd00002, 0xd00003) AM_READ(cave_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( esprade_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x700000, 0x707fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x800000, 0x80007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Gaia Crusaders -***************************************************************************/ - -static ADDRESS_MAP_START( gaia_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300002, 0x300003) AM_READ(cave_sound_r ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprite bank 1 - AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprite bank 2 - AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x508000, 0x50ffff) AM_READ(MRA16_RAM ) // More Layer 0, Tested but not used? - AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x608000, 0x60ffff) AM_READ(MRA16_RAM ) // More Layer 1, Tested but not used? - AM_RANGE(0x700000, 0x707fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x708000, 0x70ffff) AM_READ(MRA16_RAM ) // More Layer 2, Tested but not used? - AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x900000, 0x900005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xd00010, 0xd00011) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xd00012, 0xd00013) AM_READ(input_port_1_word_r ) // Inputs - AM_RANGE(0xd00014, 0xd00015) AM_READ(gaia_dsw_r ) // Dips -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gaia_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprite bank 1 - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprite bank 2 - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x508000, 0x50ffff) AM_WRITE(MWA16_RAM ) // More Layer 0, Tested but not used? - AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x608000, 0x60ffff) AM_WRITE(MWA16_RAM ) // More Layer 1, Tested but not used? - AM_RANGE(0x700000, 0x707fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x708000, 0x70ffff) AM_WRITE(MWA16_RAM ) // More Layer 2, Tested but not used? - AM_RANGE(0x800000, 0x80007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xd00010, 0xd00011) AM_WRITE(gaia_coin_lsb_w ) // Coin counter only - AM_RANGE(0xd00014, 0xd00015) AM_WRITE(watchdog_reset16_w ) // Watchdog? -ADDRESS_MAP_END - - -/*************************************************************************** - Guwange -***************************************************************************/ - -static ADDRESS_MAP_START( guwange_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x700000, 0x707fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x800002, 0x800003) AM_READ(cave_sound_r ) // YMZ280 -/**/AM_RANGE(0x900000, 0x900005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control -/**/AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xd00010, 0xd00011) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xd00012, 0xd00013) AM_READ(guwange_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( guwange_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x30007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x700000, 0x707fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x800000, 0x800003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xd00010, 0xd00011) AM_WRITE(cave_eeprom_lsb_w ) // EEPROM -// AM_RANGE(0xd00012, 0xd00013) AM_WRITE(MWA16_NOP ) // ? -// AM_RANGE(0xd00014, 0xd00015) AM_WRITE(MWA16_NOP ) // ? $800068 in dfeveron ? probably Watchdog -ADDRESS_MAP_END - - -/*************************************************************************** - Hotdog Storm -***************************************************************************/ - -static ADDRESS_MAP_START( hotdogst_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM ) // RAM -/**/AM_RANGE(0x408000, 0x408fff) AM_READ(MRA16_RAM ) // Palette -/**/AM_RANGE(0x880000, 0x887fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x900000, 0x907fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x980000, 0x987fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0xa80000, 0xa80007) AM_READ(cave_irq_cause_r ) // IRQ Cause -// AM_RANGE(0xa8006e, 0xa8006f) AM_READ(soundlatch_ack_r ) // From Sound CPU -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xb80000, 0xb80005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xc00000, 0xc00005) AM_READ(MRA16_RAM ) // Layer 2 Control - AM_RANGE(0xc80000, 0xc80001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xc80002, 0xc80003) AM_READ(cave_input1_r ) // Inputs + EEPROM -/**/AM_RANGE(0xf00000, 0xf07fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0xf08000, 0xf0ffff) AM_READ(MRA16_RAM ) // Sprites? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hotdogst_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x408000, 0x408fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x980000, 0x987fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0xa8006e, 0xa8006f) AM_WRITE(sound_cmd_w ) // To Sound CPU - AM_RANGE(0xa80000, 0xa8007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xb80000, 0xb80005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xc00000, 0xc00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(hotdogst_eeprom_msb_w ) // EEPROM - AM_RANGE(0xd00002, 0xd00003) AM_WRITE(MWA16_NOP ) // ??? - AM_RANGE(0xf00000, 0xf07fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xf08000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // Sprites? -ADDRESS_MAP_END - - -/*************************************************************************** - Koro Koro Quest -***************************************************************************/ - -static UINT16 leds[2]; - -static void show_leds(void) -{ -#ifdef MAME_DEBUG -// popmessage("led %04X eep %02X",leds[0],(leds[1] >> 8) & ~0x70); -#endif -} - -WRITE16_HANDLER( korokoro_leds_w ) -{ - COMBINE_DATA( &leds[0] ); - - set_led_status(0, data & 0x8000); - set_led_status(1, data & 0x4000); - set_led_status(2, data & 0x1000); // square button - set_led_status(3, data & 0x0800); // round button -// coin_lockout_w(1,~data & 0x0200); // coin lockouts? -// coin_lockout_w(0,~data & 0x0100); - -// coin_counter_w(2, data & 0x0080); -// coin_counter_w(1, data & 0x0020); - coin_counter_w(0, data & 0x0010); - - set_led_status(5, data & 0x0008); - set_led_status(6, data & 0x0004); - set_led_status(7, data & 0x0002); - set_led_status(8, data & 0x0001); - - show_leds(); -} - -static int hopper; - -WRITE16_HANDLER( korokoro_eeprom_msb_w ) -{ - if (data & ~0x7000) - { - logerror("CPU #0 PC: %06X - Unknown EEPROM bit written %04X\n",activecpu_get_pc(),data); - COMBINE_DATA( &leds[1] ); - show_leds(); - } - - if ( ACCESSING_MSB ) // even address - { - hopper = data & 0x0100; // ??? - - // latch the bit - EEPROM_write_bit(data & 0x4000); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x1000) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE ); - } -} - -READ16_HANDLER( korokoro_input0_r ) -{ - return readinputport(0) | (hopper ? 0 : 0x8000); -} - -READ16_HANDLER( korokoro_input1_r ) -{ - return readinputport(1) | ((EEPROM_read_bit() & 0x01) << 12); -} - -static ADDRESS_MAP_START( korokoro_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ( MRA16_ROM ) // ROM -// AM_RANGE(0x100000, 0x107fff) AM_READ( MRA16_RAM ) // Layer 0 -// AM_RANGE(0x140000, 0x140005) AM_READ( MRA16_RAM ) // Layer 0 Control -// AM_RANGE(0x180000, 0x187fff) AM_READ( MRA16_RAM ) // Sprites - AM_RANGE(0x1c0000, 0x1c0007) AM_READ( cave_irq_cause_r ) // IRQ Cause -// AM_RANGE(0x200000, 0x207fff) AM_READ( MRA16_RAM ) // Palette -// AM_RANGE(0x240000, 0x240003) AM_READ( cave_sound_r ) // YMZ280 - AM_RANGE(0x280000, 0x280001) AM_READ( korokoro_input0_r ) // Inputs + ??? - AM_RANGE(0x280002, 0x280003) AM_READ( korokoro_input1_r ) // Inputs + EEPROM - AM_RANGE(0x300000, 0x30ffff) AM_READ( MRA16_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( korokoro_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE( MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x107fff) AM_WRITE( cave_vram_0_w ) AM_BASE( &cave_vram_0 ) // Layer 0 - AM_RANGE(0x140000, 0x140005) AM_WRITE( MWA16_RAM ) AM_BASE( &cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0x180000, 0x187fff) AM_WRITE( MWA16_RAM ) AM_BASE( &spriteram16 ) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE( MWA16_RAM ) AM_BASE( &cave_videoregs ) // Video Regs - AM_RANGE(0x200000, 0x207fff) AM_WRITE( paletteram16_xGGGGGRRRRRBBBBB_word_w ) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x240000, 0x240003) AM_WRITE( cave_sound_w ) // YMZ280 - AM_RANGE(0x280008, 0x280009) AM_WRITE( korokoro_leds_w ) - AM_RANGE(0x28000a, 0x28000b) AM_WRITE( korokoro_eeprom_msb_w ) // EEPROM - AM_RANGE(0x28000c, 0x28000d) AM_WRITE( MWA16_NOP ) // 0 (watchdog?) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE( MWA16_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Mazinger Z -***************************************************************************/ - -static ADDRESS_MAP_START( mazinger_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM -/**/AM_RANGE(0x200000, 0x207fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x208000, 0x20ffff) AM_READ(MRA16_RAM ) // Sprites? - AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r ) // IRQ Cause - AM_RANGE(0x30006e, 0x30006f) AM_READ(soundlatch_ack_r ) // From Sound CPU -/**/AM_RANGE(0x404000, 0x407fff) AM_READ(MRA16_RAM ) // Layer 1 -/**/AM_RANGE(0x504000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 -/**/AM_RANGE(0x600000, 0x600005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0x700000, 0x700005) AM_READ(MRA16_RAM ) // Layer 0 Control - AM_RANGE(0x800000, 0x800001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x800002, 0x800003) AM_READ(cave_input1_r ) // Inputs + EEPROM -/**/AM_RANGE(0xc08000, 0xc0ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xd00000, 0xd7ffff) AM_READ(MRA16_BANK1 ) // ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mazinger_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x200000, 0x207fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x208000, 0x20ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x300068, 0x300069) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x30006e, 0x30006f) AM_WRITE(sound_cmd_w ) // To Sound CPU - AM_RANGE(0x300000, 0x30007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x400000, 0x407fff) AM_WRITE(cave_vram_1_8x8_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_8x8_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x600005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0x900000, 0x900001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM - AM_RANGE(0xc08000, 0xc0ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xd00000, 0xd7ffff) AM_WRITE(MWA16_ROM ) // ROM -ADDRESS_MAP_END - - -/*************************************************************************** - Metamoqester -***************************************************************************/ - -static ADDRESS_MAP_START( metmqstr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x200000, 0x27ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x408000, 0x408fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x600000, 0x600001) AM_READ(watchdog_reset16_r ) // Watchdog? - AM_RANGE(0x880000, 0x887fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x888000, 0x88ffff) AM_READ(MRA16_RAM ) // - AM_RANGE(0x900000, 0x907fff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x908000, 0x90ffff) AM_READ(MRA16_RAM ) // - AM_RANGE(0x980000, 0x987fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x988000, 0x98ffff) AM_READ(MRA16_RAM ) // - AM_RANGE(0xa80000, 0xa80007) AM_READ(cave_irq_cause_r ) // IRQ Cause - AM_RANGE(0xa8006c, 0xa8006d) AM_READ(soundflags_ack_r ) // Communication - AM_RANGE(0xa8006e, 0xa8006f) AM_READ(soundlatch_ack_r ) // From Sound CPU -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xb80000, 0xb80005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xc00000, 0xc00005) AM_READ(MRA16_RAM ) // Layer 2 Control - AM_RANGE(0xc80000, 0xc80001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xc80002, 0xc80003) AM_READ(cave_input1_r ) // Inputs + EEPROM - AM_RANGE(0xf00000, 0xf07fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xf08000, 0xf0ffff) AM_READ(MRA16_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metmqstr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x200000, 0x27ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x408000, 0x408fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x888000, 0x88ffff) AM_WRITE(MWA16_RAM ) // - AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x908000, 0x90ffff) AM_WRITE(MWA16_RAM ) // - AM_RANGE(0x980000, 0x987fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x988000, 0x98ffff) AM_WRITE(MWA16_RAM ) // - AM_RANGE(0xa80068, 0xa80069) AM_WRITE(watchdog_reset16_w ) // Watchdog? - AM_RANGE(0xa8006c, 0xa8006d) AM_WRITE(MWA16_NOP ) // ? - AM_RANGE(0xa8006e, 0xa8006f) AM_WRITE(sound_cmd_w ) // To Sound CPU - AM_RANGE(0xa80000, 0xa8007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xb80000, 0xb80005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xc00000, 0xc00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(metmqstr_eeprom_msb_w ) // EEPROM - AM_RANGE(0xf00000, 0xf07fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xf08000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Power Instinct 2 -***************************************************************************/ - -READ16_HANDLER( pwrinst2_eeprom_r ) -{ - return ~8 + ((EEPROM_read_bit() & 1) ? 8 : 0); -} - -INLINE void vctrl_w(UINT16 *VCTRL, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask) -{ - if ( offset == 4/2 ) - { - switch( data & 0x000f ) - { - case 1: data = (data & ~0x000f) | 0; break; - case 2: data = (data & ~0x000f) | 1; break; - case 4: data = (data & ~0x000f) | 2; break; - default: - case 8: data = (data & ~0x000f) | 3; break; - } - } - COMBINE_DATA(&VCTRL[offset]); -} -WRITE16_HANDLER( pwrinst2_vctrl_0_w ) { vctrl_w(cave_vctrl_0, offset, data, mem_mask); } -WRITE16_HANDLER( pwrinst2_vctrl_1_w ) { vctrl_w(cave_vctrl_1, offset, data, mem_mask); } -WRITE16_HANDLER( pwrinst2_vctrl_2_w ) { vctrl_w(cave_vctrl_2, offset, data, mem_mask); } -WRITE16_HANDLER( pwrinst2_vctrl_3_w ) { vctrl_w(cave_vctrl_3, offset, data, mem_mask); } - -static ADDRESS_MAP_START( pwrinst2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x500000, 0x500001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x500002, 0x500003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x600000, 0x6fffff) AM_READ(MRA16_ROM ) AM_REGION(REGION_USER1, 0) // extra data ROM space - AM_RANGE(0x800000, 0x807fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x880000, 0x887fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x900000, 0x907fff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x980000, 0x987fff) AM_READ(MRA16_RAM ) // Layer 3 - AM_RANGE(0xa00000, 0xa07fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xa08000, 0xa0ffff) AM_READ(MRA16_RAM ) // Sprites? - AM_RANGE(0xa10000, 0xa1ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control -/**/AM_RANGE(0xb80000, 0xb80005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xc00000, 0xc00005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xc80000, 0xc80005) AM_READ(MRA16_RAM ) // Layer 3 Control - AM_RANGE(0xa80000, 0xa8007f) AM_READ(donpachi_videoregs_r ) // Video Regs - AM_RANGE(0xd80000, 0xd80001) AM_READ(MRA16_NOP ) // ? From Sound CPU - AM_RANGE(0xe80000, 0xe80001) AM_READ(pwrinst2_eeprom_r ) // EEPROM - AM_RANGE(0xf00000, 0xf04fff) AM_READ(MRA16_RAM ) // Palette -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pwrinst2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x700000, 0x700001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM - AM_RANGE(0x800000, 0x807fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x980000, 0x987fff) AM_WRITE(cave_vram_3_8x8_w) AM_BASE(&cave_vram_3 ) // Layer 3 - AM_RANGE(0xa00000, 0xa07fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xa08000, 0xa0ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0xa10000, 0xa1ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0xa80000, 0xa8007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(pwrinst2_vctrl_2_w) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xb80000, 0xb80005) AM_WRITE(pwrinst2_vctrl_0_w) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xc00000, 0xc00005) AM_WRITE(pwrinst2_vctrl_1_w) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xc80000, 0xc80005) AM_WRITE(pwrinst2_vctrl_3_w) AM_BASE(&cave_vctrl_3 ) // Layer 3 Control - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(sound_cmd_w ) // To Sound CPU - AM_RANGE(0xf00000, 0xf04fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette -ADDRESS_MAP_END - - -/*************************************************************************** - Sailor Moon -***************************************************************************/ - -static READ16_HANDLER( sailormn_input0_r ) -{ -// watchdog_reset16_r(0,0); // written too rarely for mame. - return readinputport(0); -} - -static READ16_HANDLER( agallet_irq_cause_r ) -{ - UINT16 irq_cause = cave_irq_cause_r(offset,mem_mask); - - if (offset == 0) - { -// Speed hack for agallet - if ((activecpu_get_pc() == 0xcdca) && (irq_cause & 4)) - cpu_spinuntil_int(); - } - - return irq_cause; -} - -static ADDRESS_MAP_START( sailormn_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x110000, 0x110001) AM_READ(MRA16_RAM ) // (agallet) - AM_RANGE(0x200000, 0x3fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // (agallet) - AM_RANGE(0x408000, 0x40bfff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x40c000, 0x40ffff) AM_READ(MRA16_RAM ) // (agallet) - AM_RANGE(0x410000, 0x410001) AM_READ(MRA16_RAM ) // (agallet) - AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x508000, 0x50ffff) AM_READ(MRA16_RAM ) // Sprites? - AM_RANGE(0x510000, 0x510001) AM_READ(MRA16_RAM ) // (agallet) - AM_RANGE(0x600000, 0x600001) AM_READ(sailormn_input0_r ) // Inputs + Watchdog! - AM_RANGE(0x600002, 0x600003) AM_READ(cave_input1_r ) // Inputs + EEPROM - AM_RANGE(0x800000, 0x887fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x880000, 0x887fff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x900000, 0x907fff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x908000, 0x908001) AM_READ(MRA16_RAM ) // (agallet) -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0xa80000, 0xa80005) AM_READ(MRA16_RAM ) // Layer 1 Control -/**/AM_RANGE(0xb00000, 0xb00005) AM_READ(MRA16_RAM ) // Layer 2 Control - AM_RANGE(0xb80000, 0xb80007) AM_READ(cave_irq_cause_r ) // IRQ Cause (bit 2 tested!) - AM_RANGE(0xb8006c, 0xb8006d) AM_READ(soundflags_ack_r ) // Communication - AM_RANGE(0xb8006e, 0xb8006f) AM_READ(soundlatch_ack_r ) // From Sound CPU -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sailormn_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x110000, 0x110001) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0x200000, 0x3fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0x408000, 0x40bfff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x40c000, 0x40ffff) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0x410000, 0x410001) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0x500000, 0x507fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x508000, 0x50ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x510000, 0x510001) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0x700000, 0x700001) AM_WRITE(sailormn_eeprom_msb_w ) // EEPROM - AM_RANGE(0x800000, 0x807fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1 - AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2 - AM_RANGE(0x908000, 0x908001) AM_WRITE(MWA16_RAM ) // (agallet) - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0xa80000, 0xa80005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control - AM_RANGE(0xb8006e, 0xb8006f) AM_WRITE(sound_cmd_w ) // To Sound CPU - AM_RANGE(0xb80000, 0xb8007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs -ADDRESS_MAP_END - - -/*************************************************************************** - Uo Poko -***************************************************************************/ - -static ADDRESS_MAP_START( uopoko_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300002, 0x300003) AM_READ(cave_sound_r ) // YMZ280 -/**/AM_RANGE(0x400000, 0x407fff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x408000, 0x40ffff) AM_READ(MRA16_RAM ) // Sprites? -/**/AM_RANGE(0x500000, 0x507fff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x600000, 0x600007) AM_READ(cave_irq_cause_r ) // IRQ Cause -/**/AM_RANGE(0x700000, 0x700005) AM_READ(MRA16_RAM ) // Layer 0 Control -/**/AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x900000, 0x900001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x900002, 0x900003) AM_READ(cave_input1_r ) // Inputs + EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( uopoko_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_WRITE(cave_sound_w ) // YMZ280 - AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0 - AM_RANGE(0x600000, 0x60007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs - AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM -ADDRESS_MAP_END - - - -/*************************************************************************** - - - Memory Maps - Sound CPU (Optional) - - -***************************************************************************/ - -/*************************************************************************** - Hotdog Storm -***************************************************************************/ - -WRITE8_HANDLER( hotdogst_rombank_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU2); - int bank = data & 0x0f; - if ( data & ~0x0f ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - if (bank > 1) bank+=2; - memory_set_bankptr(2, &RAM[ 0x4000 * bank ]); -} - -WRITE8_HANDLER( hotdogst_okibank_w ) -{ - UINT8 *RAM = memory_region(REGION_SOUND1); - int bank1 = (data >> 0) & 0x3; - int bank2 = (data >> 4) & 0x3; - memcpy(RAM + 0x20000 * 0, RAM + 0x40000 + 0x20000 * bank1, 0x20000); - memcpy(RAM + 0x20000 * 1, RAM + 0x40000 + 0x20000 * bank2, 0x20000); -} - -static ADDRESS_MAP_START( hotdogst_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK2 ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hotdogst_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hotdogst_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU - AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) // - AM_RANGE(0x50, 0x50) AM_READ(YM2203_status_port_0_r ) // YM2203 - AM_RANGE(0x51, 0x51) AM_READ(YM2203_read_port_0_r ) // - AM_RANGE(0x60, 0x60) AM_READ(OKIM6295_status_0_r ) // M6295 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hotdogst_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(hotdogst_rombank_w ) // ROM bank - AM_RANGE(0x50, 0x50) AM_WRITE(YM2203_control_port_0_w ) // YM2203 - AM_RANGE(0x51, 0x51) AM_WRITE(YM2203_write_port_0_w ) // - AM_RANGE(0x60, 0x60) AM_WRITE(OKIM6295_data_0_w ) // M6295 - AM_RANGE(0x70, 0x70) AM_WRITE(hotdogst_okibank_w ) // Samples bank -ADDRESS_MAP_END - - -/*************************************************************************** - Mazinger Z -***************************************************************************/ - -WRITE8_HANDLER( mazinger_rombank_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU2); - int bank = data & 0x07; - if ( data & ~0x07 ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - if (bank > 1) bank+=2; - memory_set_bankptr(2, &RAM[ 0x4000 * bank ]); -} - -static ADDRESS_MAP_START( mazinger_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK2 ) // ROM (Banked) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mazinger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM (Banked) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mazinger_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU - AM_RANGE(0x52, 0x52) AM_READ(YM2203_status_port_0_r ) // YM2203 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mazinger_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(mazinger_rombank_w ) // ROM bank - AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w ) // To Main CPU - AM_RANGE(0x50, 0x50) AM_WRITE(YM2203_control_port_0_w ) // YM2203 - AM_RANGE(0x51, 0x51) AM_WRITE(YM2203_write_port_0_w ) // - AM_RANGE(0x70, 0x70) AM_WRITE(OKIM6295_data_0_w ) // M6295 - AM_RANGE(0x74, 0x74) AM_WRITE(hotdogst_okibank_w ) // Samples bank -ADDRESS_MAP_END - - -/*************************************************************************** - Metamoqester -***************************************************************************/ - -WRITE8_HANDLER( metmqstr_rombank_w ) -{ - UINT8 *ROM = memory_region(REGION_CPU2); - int bank = data & 0xf; - if ( bank != data ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - if (bank >= 2) bank += 2; - memory_set_bankptr(1, &ROM[ 0x4000 * bank ]); -} - -WRITE8_HANDLER( metmqstr_okibank0_w ) -{ - UINT8 *ROM = memory_region(REGION_SOUND1); - int bank1 = (data >> 0) & 0x7; - int bank2 = (data >> 4) & 0x7; - memcpy(ROM + 0x20000 * 0, ROM + 0x40000 + 0x20000 * bank1, 0x20000); - memcpy(ROM + 0x20000 * 1, ROM + 0x40000 + 0x20000 * bank2, 0x20000); -} - -WRITE8_HANDLER( metmqstr_okibank1_w ) -{ - UINT8 *ROM = memory_region(REGION_SOUND2); - int bank1 = (data >> 0) & 0x7; - int bank2 = (data >> 4) & 0x7; - memcpy(ROM + 0x20000 * 0, ROM + 0x40000 + 0x20000 * bank1, 0x20000); - memcpy(ROM + 0x20000 * 1, ROM + 0x40000 + 0x20000 * bank2, 0x20000); -} - -static ADDRESS_MAP_START( metmqstr_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1 ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metmqstr_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metmqstr_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x20, 0x20) AM_READ(soundflags_r ) // Communication - AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU - AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) // - AM_RANGE(0x51, 0x51) AM_READ(YM2151_status_port_0_r ) // YM2151 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metmqstr_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(metmqstr_rombank_w ) // Rom Bank - AM_RANGE(0x50, 0x50) AM_WRITE(YM2151_register_port_0_w ) // YM2151 - AM_RANGE(0x51, 0x51) AM_WRITE(YM2151_data_port_0_w ) // - AM_RANGE(0x60, 0x60) AM_WRITE(OKIM6295_data_0_w ) // M6295 #0 - AM_RANGE(0x70, 0x70) AM_WRITE(metmqstr_okibank0_w ) // Samples Bank #0 - AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_1_w ) // M6295 #1 - AM_RANGE(0x90, 0x90) AM_WRITE(metmqstr_okibank1_w ) // Samples Bank #1 -ADDRESS_MAP_END - - -/*************************************************************************** - Power Instinct 2 -***************************************************************************/ - -WRITE8_HANDLER( pwrinst2_rombank_w ) -{ - UINT8 *ROM = memory_region(REGION_CPU2); - int bank = data & 0x07; - if ( data & ~0x07 ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - if (bank > 2) bank+=1; - memory_set_bankptr(1, &ROM[ 0x4000 * bank ]); -} - -static ADDRESS_MAP_START( pwrinst2_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pwrinst2_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // ROM (Banked) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pwrinst2_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(OKIM6295_status_0_r ) // M6295 - AM_RANGE(0x08, 0x08) AM_READ(OKIM6295_status_1_r ) // - AM_RANGE(0x40, 0x40) AM_READ(YM2203_status_port_0_r ) // YM2203 - AM_RANGE(0x41, 0x41) AM_READ(YM2203_read_port_0_r ) // - AM_RANGE(0x60, 0x60) AM_READ(soundlatch_hi_r ) // From Main CPU - AM_RANGE(0x70, 0x70) AM_READ(soundlatch_lo_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pwrinst2_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(OKIM6295_data_0_w ) // M6295 - AM_RANGE(0x08, 0x08) AM_WRITE(OKIM6295_data_1_w ) // - AM_RANGE(0x10, 0x17) AM_WRITE(NMK112_okibank_w ) // Samples bank - AM_RANGE(0x40, 0x40) AM_WRITE(YM2203_control_port_0_w ) // YM2203 - AM_RANGE(0x41, 0x41) AM_WRITE(YM2203_write_port_0_w ) // -// AM_RANGE(0x50, 0x50) AM_WRITE(MWA8_NOP ) // ?? volume -// AM_RANGE(0x51, 0x51) AM_WRITE(MWA8_NOP ) // ?? volume - AM_RANGE(0x80, 0x80) AM_WRITE(pwrinst2_rombank_w ) // ROM bank -ADDRESS_MAP_END - - -/*************************************************************************** - Sailor Moon -***************************************************************************/ - -static UINT8 *mirror_ram; -static READ8_HANDLER( mirror_ram_r ) -{ - return mirror_ram[offset]; -} -static WRITE8_HANDLER( mirror_ram_w ) -{ - mirror_ram[offset] = data; -} - -WRITE8_HANDLER( sailormn_rombank_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU2); - int bank = data & 0x1f; - if ( data & ~0x1f ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - if (bank > 1) bank+=2; - memory_set_bankptr(1, &RAM[ 0x4000 * bank ]); -} - -WRITE8_HANDLER( sailormn_okibank0_w ) -{ - UINT8 *RAM = memory_region(REGION_SOUND1); - int bank1 = (data >> 0) & 0xf; - int bank2 = (data >> 4) & 0xf; - memcpy(RAM + 0x20000 * 0, RAM + 0x40000 + 0x20000 * bank1, 0x20000); - memcpy(RAM + 0x20000 * 1, RAM + 0x40000 + 0x20000 * bank2, 0x20000); -} - -WRITE8_HANDLER( sailormn_okibank1_w ) -{ - UINT8 *RAM = memory_region(REGION_SOUND2); - int bank1 = (data >> 0) & 0xf; - int bank2 = (data >> 4) & 0xf; - memcpy(RAM + 0x20000 * 0, RAM + 0x40000 + 0x20000 * bank1, 0x20000); - memcpy(RAM + 0x20000 * 1, RAM + 0x40000 + 0x20000 * bank2, 0x20000); -} - -static ADDRESS_MAP_START( sailormn_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1 ) // ROM (Banked) - AM_RANGE(0xc000, 0xdfff) AM_READ(mirror_ram_r ) // RAM - AM_RANGE(0xe000, 0xffff) AM_READ(mirror_ram_r ) // Mirrored RAM (agallet) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sailormn_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM (Banked) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(mirror_ram_w) AM_BASE(&mirror_ram ) // RAM - AM_RANGE(0xe000, 0xffff) AM_WRITE(mirror_ram_w ) // Mirrored RAM (agallet) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sailormn_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x20, 0x20) AM_READ(soundflags_r ) // Communication - AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r ) // From Main CPU - AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r ) // - AM_RANGE(0x51, 0x51) AM_READ(YM2151_status_port_0_r ) // YM2151 - AM_RANGE(0x60, 0x60) AM_READ(OKIM6295_status_0_r ) // M6295 #0 - AM_RANGE(0x80, 0x80) AM_READ(OKIM6295_status_1_r ) // M6295 #1 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sailormn_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(sailormn_rombank_w ) // Rom Bank - AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w ) // To Main CPU - AM_RANGE(0x50, 0x50) AM_WRITE(YM2151_register_port_0_w ) // YM2151 - AM_RANGE(0x51, 0x51) AM_WRITE(YM2151_data_port_0_w ) // - AM_RANGE(0x60, 0x60) AM_WRITE(OKIM6295_data_0_w ) // M6295 #0 - AM_RANGE(0x70, 0x70) AM_WRITE(sailormn_okibank0_w ) // Samples Bank #0 - AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_1_w ) // M6295 #1 - AM_RANGE(0xc0, 0xc0) AM_WRITE(sailormn_okibank1_w ) // Samples Bank #1 -ADDRESS_MAP_END - - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - -/* - dfeveron config menu: - 101624.w -> 8,a6 preferences - 101626.w -> c,a6 (1:coin<<4|credit) <<8 | (2:coin<<4|credit) -*/ - -/* Most games use this */ -INPUT_PORTS_START( cave ) - PORT_START // IN0 - Player 1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0200, IP_ACTIVE_LOW ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? exit service mode - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? enter & exit service mode - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/* Gaia Crusaders, no EEPROM. Has DIPS */ -INPUT_PORTS_START( gaia ) - PORT_START // IN0 - Player 1 + 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START // IN1 - Coins - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0004, IP_ACTIVE_LOW ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") // Dips bank 1 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,5,6") - PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") // Dips bank 2 - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, "150k/300k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0xc0) - PORT_DIPSETTING( 0x04, "150k/350k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0xa0) - PORT_DIPSETTING( 0x04, "150k/350k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0xe0) - PORT_DIPSETTING( 0x04, "150k/400k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0x60) - PORT_DIPSETTING( 0x04, "150k/400k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0x80) - PORT_DIPSETTING( 0x04, "150k/400k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x04, "200k/500k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0x40) - PORT_DIPSETTING( 0x04, "200k/500k" ) PORT_CONDITION("DSW2",0xe0,PORTCOND_EQUALS,0x00) - PORT_DIPNAME( 0x18, 0x18, "Damage" ) PORT_DIPLOCATION("SW2:4,5") - PORT_DIPSETTING( 0x18, "+0" ) - PORT_DIPSETTING( 0x10, "+1" ) - PORT_DIPSETTING( 0x08, "+2" ) - PORT_DIPSETTING( 0x00, "+3" ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7,8") - PORT_DIPSETTING( 0xc0, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x60, "Medium Hard" ) - PORT_DIPSETTING( 0x80, "Hard 1" ) - PORT_DIPSETTING( 0x20, "Hard 2" ) - PORT_DIPSETTING( 0x40, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( theroes ) - PORT_INCLUDE(gaia) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x04, "Chinese" ) - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, "150k/300k" ) PORT_CONDITION("DSW2",0xc0,PORTCOND_EQUALS,0x80) - PORT_DIPSETTING( 0x04, "150k/350k" ) PORT_CONDITION("DSW2",0xc0,PORTCOND_EQUALS,0xc0) - PORT_DIPSETTING( 0x04, "150k/400k" ) PORT_CONDITION("DSW2",0xc0,PORTCOND_EQUALS,0x40) - PORT_DIPSETTING( 0x04, "200k/500k" ) PORT_CONDITION("DSW2",0xc0,PORTCOND_EQUALS,0x00) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8") - PORT_DIPSETTING( 0x80, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x40, "Medium Hard" ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -/* Mazinger Z (has region stored in Eeprom) */ -INPUT_PORTS_START( mazinger ) - PORT_START // IN0 - Player 1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0200, IP_ACTIVE_LOW ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? exit service mode - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? enter & exit service mode - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // Eeprom Region - PORT_DIPNAME( 0xff, 0x31, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x31, DEF_STR( World ) ) -INPUT_PORTS_END - -/* Sailor Moon / Air Gallet (has region stored in Eeprom) */ -INPUT_PORTS_START( sailormn ) - PORT_START // IN0 - Player 1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0200, IP_ACTIVE_LOW ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? exit service mode - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? enter & exit service mode - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // Eeprom Region - PORT_DIPNAME( 0xff, 0x02, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Europe ) ) - PORT_DIPSETTING( 0x03, "Hong Kong" ) - PORT_DIPSETTING( 0x04, "Taiwan" ) - PORT_DIPSETTING( 0x05, "Korea" ) -INPUT_PORTS_END - -/* Different layout */ -INPUT_PORTS_START( guwange ) - PORT_START // IN0 - Player 1 & 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START // IN1 - Coins - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0004, IP_ACTIVE_LOW ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/* Normal layout but with 4 buttons */ -INPUT_PORTS_START( metmqstr ) - PORT_START // IN0 - Player 1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(6) - PORT_SERVICE_NO_TOGGLE(0x0200, IP_ACTIVE_LOW ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sw? enter & exit service mode - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(6) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( korokoro ) - PORT_START // IN0 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10) // bit 0x0010 of leds (coin) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10) // bit 0x0020 of leds (does coin sound) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(10) // bit 0x0080 of leds - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) // round button (choose) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) // square button (select in service mode / medal out in game) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE2) // service medal out? - PORT_SERVICE( 0x2000, IP_ACTIVE_LOW ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1) // service coin - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) // motor / hopper status ??? - - PORT_START // IN1 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - -/* 8x8x4 tiles */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,1), - 4, - {STEP4(0,1)}, - {STEP8(0,4)}, - {STEP8(0,4*8)}, - 8*8*4 -}; - -/* 8x8x6 tiles (in a 8x8x8 layout) */ -static const gfx_layout layout_8x8x6 = -{ - 8,8, - RGN_FRAC(1,1), - 6, - {8,9, 0,1,2,3}, - {0*4,1*4,4*4,5*4,8*4,9*4,12*4,13*4}, - {0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64}, - 8*8*8 -}; - -/* 8x8x6 tiles (4 bits in one rom, 2 bits in the other, - unpacked in 2 pages of 4 bits) */ -static const gfx_layout layout_8x8x6_2 = -{ - 8,8, - RGN_FRAC(1,2), - 6, - {RGN_FRAC(1,2)+2,RGN_FRAC(1,2)+3, STEP4(0,1)}, - {STEP8(0,4)}, - {STEP8(0,4*8)}, - 8*8*4 -}; - -/* 8x8x8 tiles */ -static const gfx_layout layout_8x8x8 = -{ - 8,8, - RGN_FRAC(1,1), - 8, - {8,9,10,11, 0,1,2,3}, - {0*4,1*4,4*4,5*4,8*4,9*4,12*4,13*4}, - {0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64}, - 8*8*8 -}; - -#if 0 -/* 16x16x8 Zooming Sprites - No need to decode them */ -static const gfx_layout layout_sprites = -{ - 16,16, - RGN_FRAC(1,1), - 8, - {STEP8(0,1)}, - {STEP16(0,8)}, - {STEP16(0,16*8)}, - 16*16*8 -}; -#endif - -/*************************************************************************** - Dangun Feveron -***************************************************************************/ - -static const gfx_decode dfeveron_gfxdecodeinfo[] = -{ - /* There are only $800 colors here, the first half for sprites - the second half for tiles. We use $8000 virtual colors instead - for consistency with games having $8000 real colors. - A PALETTE_INIT function is thus needed for sprites */ - -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4400, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x4400, 0x40 }, // [1] Layer 1 - { -1 } -}; - -/*************************************************************************** - Dodonpachi -***************************************************************************/ - -static const gfx_decode ddonpach_gfxdecodeinfo[] = -{ - /* Layers 0&1 are 4 bit deep and use the first 16 of every 256 - colors for any given color code (a PALETTE_INIT function - is provided for these layers, filling the 8000-83ff entries - in the color table). Layer 2 uses the whole 256 for any given - color code and the 4000-7fff range in the color table. */ - -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x8000, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x8000, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x8, 0x4000, 0x40 }, // [2] Layer 2 - { -1 } -}; - -/*************************************************************************** - Donpachi -***************************************************************************/ - -static const gfx_decode donpachi_gfxdecodeinfo[] = -{ - /* There are only $800 colors here, the first half for sprites - the second half for tiles. We use $8000 virtual colors instead - for consistency with games having $8000 real colors. - A PALETTE_INIT function is thus needed for sprites */ - -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4400, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x4400, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x4, 0x4400, 0x40 }, // [2] Layer 2 - { -1 } -}; - -/*************************************************************************** - Esprade -***************************************************************************/ - -static const gfx_decode esprade_gfxdecodeinfo[] = -{ -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x8, 0x4000, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x8, 0x4000, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x8, 0x4000, 0x40 }, // [2] Layer 2 - { -1 } -}; - -/*************************************************************************** - Hotdog Storm -***************************************************************************/ - -static const gfx_decode hotdogst_gfxdecodeinfo[] = -{ - /* There are only $800 colors here, the first half for sprites - the second half for tiles. We use $8000 virtual colors instead - for consistency with games having $8000 real colors. - A PALETTE_INIT function is needed for sprites */ - -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4000, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x4000, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x4, 0x4000, 0x40 }, // [2] Layer 2 - { -1 } -}; - -/*************************************************************************** - Koro Koro Quest -***************************************************************************/ - -static const gfx_decode korokoro_gfxdecodeinfo[] = -{ -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4400, 0x40 }, // [0] Layer 0 - { -1 } -}; - -/*************************************************************************** - Mazinger Z -***************************************************************************/ - -static const gfx_decode mazinger_gfxdecodeinfo[] = -{ - /* Sprites are 4 bit deep. - Layer 0 is 4 bit deep. - Layer 1 uses 64 color palettes, but the game only fills the - first 16 colors of each palette, Indeed, the gfx data in ROM - is empty in the top 4 bits. Additionally even if there are - $40 color codes, only $400 colors are addressable. - A PALETTE_INIT function is thus needed for sprites and layer 0. */ - -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4000, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x6, 0x4400, 0x40 }, // [1] Layer 1 - { -1 } -}; - - -/*************************************************************************** - Power Instinct 2 -***************************************************************************/ - -static const gfx_decode pwrinst2_gfxdecodeinfo[] = -{ -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x0800+0x8000, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x1000+0x8000, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x4, 0x1800+0x8000, 0x40 }, // [2] Layer 2 - { REGION_GFX5, 0, &layout_8x8x4, 0x2000+0x8000, 0x40 }, // [3] Layer 3 - { -1 } -}; - - -/*************************************************************************** - Sailor Moon -***************************************************************************/ - -static const gfx_decode sailormn_gfxdecodeinfo[] = -{ - /* 4 bit sprites ? */ -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x4, 0x4400, 0x40 }, // [0] Layer 0 - { REGION_GFX3, 0, &layout_8x8x4, 0x4800, 0x40 }, // [1] Layer 1 - { REGION_GFX4, 0, &layout_8x8x6_2, 0x4c00, 0x40 }, // [2] Layer 2 - { -1 } -}; - - -/*************************************************************************** - Uo Poko -***************************************************************************/ - -static const gfx_decode uopoko_gfxdecodeinfo[] = -{ -// REGION_GFX1 // Sprites - { REGION_GFX2, 0, &layout_8x8x8, 0x4000, 0x40 }, // [0] Layer 0 - { -1 } -}; - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -MACHINE_RESET( cave ) -{ - soundbuf.len = 0; - - /* modify the eeprom on a reset with the desired region for the games that have the - region factory set in eeprom */ - if (cave_region_byte >= 0) - EEPROM_get_data_pointer(0)[cave_region_byte] = readinputport(2); -} - -static struct YMZ280Binterface ymz280b_intf = -{ - REGION_SOUND1, - sound_irq_gen -}; - -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2151interface ym2151_interface = -{ - irqhandler -}; - -static struct YM2203interface ym2203_interface = -{ - 0,0,0,0,irqhandler -}; - - -/*************************************************************************** - Dangun Feveron -***************************************************************************/ - -static MACHINE_DRIVER_START( dfeveron ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(dfeveron_readmem,dfeveron_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(dfeveron_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x800) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(dfeveron) - MDRV_VIDEO_START(cave_2_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Dodonpachi -***************************************************************************/ - -static MACHINE_DRIVER_START( ddonpach ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(ddonpach_readmem,ddonpach_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(ddonpach_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - MDRV_COLORTABLE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2 - - MDRV_PALETTE_INIT(ddonpach) - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Donpachi -***************************************************************************/ - -static MACHINE_DRIVER_START( donpachi ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(donpachi_readmem,donpachi_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(donpachi_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x800) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(dfeveron) - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.60) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.60) - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Esprade -***************************************************************************/ - -static MACHINE_DRIVER_START( esprade ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(esprade_readmem,esprade_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(esprade_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Gaia Crusaders -***************************************************************************/ - -static MACHINE_DRIVER_START( gaia ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(gaia_readmem,gaia_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(esprade_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Guwange -***************************************************************************/ - -static MACHINE_DRIVER_START( guwange ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(guwange_readmem,guwange_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(esprade_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - Hotdog Storm -***************************************************************************/ - -static MACHINE_DRIVER_START( hotdogst ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(hotdogst_readmem,hotdogst_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(hotdogst_sound_readmem,hotdogst_sound_writemem) - MDRV_CPU_IO_MAP(hotdogst_sound_readport,hotdogst_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(384, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) - MDRV_GFXDECODE(hotdogst_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x800) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(dfeveron) - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) - MDRV_SOUND_ROUTE(2, "left", 0.20) - MDRV_SOUND_ROUTE(2, "right", 0.20) - MDRV_SOUND_ROUTE(3, "left", 0.80) - MDRV_SOUND_ROUTE(3, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Koro Koro Quest -***************************************************************************/ - -static MACHINE_DRIVER_START( korokoro ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(korokoro_readmem,korokoro_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(korokoro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1-2, 0, 240-1-1) - MDRV_GFXDECODE(korokoro_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x4000) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(korokoro) - MDRV_VIDEO_START(cave_1_layer) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Mazinger Z -***************************************************************************/ - -static MACHINE_DRIVER_START( mazinger ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(mazinger_readmem,mazinger_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) -// /* audio CPU */ // Bidirectional communication - MDRV_CPU_PROGRAM_MAP(mazinger_sound_readmem,mazinger_sound_writemem) - MDRV_CPU_IO_MAP(mazinger_sound_readport,mazinger_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_WATCHDOG_VBLANK_INIT(DEFAULT_60HZ_3S_VBLANK_WATCHDOG) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(384, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) - MDRV_GFXDECODE(mazinger_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x4000) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(mazinger) - MDRV_VIDEO_START(cave_2_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) - MDRV_SOUND_ROUTE(2, "left", 0.20) - MDRV_SOUND_ROUTE(2, "right", 0.20) - MDRV_SOUND_ROUTE(3, "left", 0.60) - MDRV_SOUND_ROUTE(3, "right", 0.60) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 2.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 2.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Metamoqester -***************************************************************************/ - -static MACHINE_DRIVER_START( metmqstr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,32000000 / 2) - MDRV_CPU_PROGRAM_MAP(metmqstr_readmem,metmqstr_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_CPU_ADD(Z80,32000000 / 4) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(metmqstr_sound_readmem,metmqstr_sound_writemem) - MDRV_CPU_IO_MAP(metmqstr_sound_readport,metmqstr_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_WATCHDOG_VBLANK_INIT(DEFAULT_60HZ_3S_VBLANK_WATCHDOG) - - MDRV_MACHINE_RESET(cave) /* start with the watchdog armed */ - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(0x200, 240) - MDRV_SCREEN_VISIBLE_AREA(0x7d, 0x7d + 0x180-1, 0, 240-1) - MDRV_GFXDECODE(donpachi_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x800) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(dfeveron) - MDRV_VIDEO_START(cave_3_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 16000000/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.20) - MDRV_SOUND_ROUTE(1, "right", 1.20) - - MDRV_SOUND_ADD(OKIM6295, 32000000 / 16 ) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32000000 / 16 ) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Power Instinct 2 -***************************************************************************/ - -/* X1 = 12 MHz, X2 = 28 MHz, X3 = 16 MHz. OKI: / 165 mode A ; / 132 mode B */ - -static MACHINE_DRIVER_START( pwrinst2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(pwrinst2_readmem,pwrinst2_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_CPU_ADD(Z80,16000000 / 2) - /* audio CPU */ /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(pwrinst2_sound_readmem,pwrinst2_sound_writemem) - MDRV_CPU_IO_MAP(pwrinst2_sound_readport,pwrinst2_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(0x200, 240) - MDRV_SCREEN_VISIBLE_AREA(0x70, 0x70 + 0x140-1, 0, 240-1) - MDRV_GFXDECODE(pwrinst2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x5000/2) - MDRV_COLORTABLE_LENGTH(0x8000+0x2800) - - MDRV_PALETTE_INIT(pwrinst2) - MDRV_VIDEO_START(cave_4_layers) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2203, 16000000 / 4) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "left", 0.40) - MDRV_SOUND_ROUTE(0, "right", 0.40) - MDRV_SOUND_ROUTE(1, "left", 0.40) - MDRV_SOUND_ROUTE(1, "right", 0.40) - MDRV_SOUND_ROUTE(2, "left", 0.40) - MDRV_SOUND_ROUTE(2, "right", 0.40) - MDRV_SOUND_ROUTE(3, "left", 0.80) - MDRV_SOUND_ROUTE(3, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 3000000 ) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 3000000 ) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.00) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.00) -MACHINE_DRIVER_END - - -/*************************************************************************** - Sailor Moon / Air Gallet -***************************************************************************/ - -static MACHINE_DRIVER_START( sailormn ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(sailormn_readmem,sailormn_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_CPU_ADD(Z80, 8000000) -// /* audio CPU */ // Bidirectional Communication - MDRV_CPU_PROGRAM_MAP(sailormn_sound_readmem,sailormn_sound_writemem) - MDRV_CPU_IO_MAP(sailormn_sound_readport,sailormn_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) -// MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(cave) - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320+1, 240) - MDRV_SCREEN_VISIBLE_AREA(0+1, 320+1-1, 0, 240-1) - MDRV_GFXDECODE(sailormn_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x2000) - MDRV_COLORTABLE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ - - MDRV_PALETTE_INIT(sailormn) // 4 bit sprites, 6 bit tiles - MDRV_VIDEO_START(sailormn_3_layers) /* Layer 2 has 1 banked ROM */ - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(YM2151, 16000000/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.30) - MDRV_SOUND_ROUTE(1, "right", 0.30) - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Uo Poko -***************************************************************************/ - -static MACHINE_DRIVER_START( uopoko ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(uopoko_readmem,uopoko_writemem) - MDRV_CPU_VBLANK_INT(cave_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(15625/271.5) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(cave) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(uopoko_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - - MDRV_VIDEO_START(cave_1_layer) - MDRV_VIDEO_UPDATE(cave) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 16934400) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/* 4 bits -> 8 bits. Even and odd pixels are swapped */ -static void unpack_sprites(void) -{ - const int region = REGION_GFX1; // sprites - - const unsigned int len = memory_region_length(region); - unsigned char *src = memory_region(region) + len / 2 - 1; - unsigned char *dst = memory_region(region) + len - 1; - - while(dst > src) - { - unsigned char data = *src--; - /* swap even and odd pixels */ - *dst-- = data >> 4; *dst-- = data & 0xF; - } -} - - -/* 4 bits -> 8 bits. Even and odd pixels and even and odd words, are swapped */ -static void ddonpach_unpack_sprites(void) -{ - const int region = REGION_GFX1; // sprites - - const unsigned int len = memory_region_length(region); - unsigned char *src = memory_region(region) + len / 2 - 1; - unsigned char *dst = memory_region(region) + len - 1; - - while(dst > src) - { - unsigned char data1= *src--; - unsigned char data2= *src--; - unsigned char data3= *src--; - unsigned char data4= *src--; - - /* swap even and odd pixels, and even and odd words */ - *dst-- = data2 & 0xF; *dst-- = data2 >> 4; - *dst-- = data1 & 0xF; *dst-- = data1 >> 4; - *dst-- = data4 & 0xF; *dst-- = data4 >> 4; - *dst-- = data3 & 0xF; *dst-- = data3 >> 4; - } -} - - -/* 2 pages of 4 bits -> 8 bits */ -static void esprade_unpack_sprites(void) -{ - const int region = REGION_GFX1; // sprites - - unsigned char *src = memory_region(region); - unsigned char *dst = memory_region(region) + memory_region_length(region); - - while(src < dst) - { - unsigned char data1 = src[0]; - unsigned char data2 = src[1]; - - src[0] = ((data1 & 0x0f)<<4) + (data2 & 0x0f); - src[1] = (data1 & 0xf0) + ((data2 & 0xf0)>>4); - - src += 2; - } -} - -/*************************************************************************** - - Air Gallet - -Banpresto -Runs on identical board to Sailor Moon (several sockets unpopulated) - -PCB: BP945A (overstamped with BP962A) -CPU: TMP68HC000P16 (68000, 64 pin DIP) -SND: Z84C0008PEC (Z80, 40 pin DIP), OKI M6295 x 2, YM2151, YM3012 -OSC: 28.000MHz, 16.000MHz -RAM: 62256 x 8, NEC 424260 x 2, 6264 x 5 - -Other Chips: -SGS Thomson ST93C46CB1 (EEPROM) -PALS (same as Sailor Moon, not dumped): - 18CV8 label SMBG - 18CV8 label SMZ80 - 18CV8 label SMCPU - GAL16V8 (located near BP962A.U47) - -GFX: 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 013 9346E7002 (240 pin PQFP) - -On PCB near JAMMA connector is a small push button to access test mode. - -ROMS: -BP962A.U9 27C040 Sound Program -BP962A.U45 27C240 Main Program -BP962A.U47 23C16000 Sound -BP962A.U48 23C16000 Sound -BP962A.U53 23C16000 GFX -BP962A.U54 23C16000 GFX -BP962A.U57 23C16000 GFX -BP962A.U65 23C16000 GFX -BP962A.U76 23C16000 GFX -BP962A.U77 23C16000 GFX - -***************************************************************************/ - -ROM_START( agallet ) /* PCB showed "Taiwan Only" on the copyright notice screen. Region byte in EEPROM */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "bp962a.u45", 0x000000, 0x080000, CRC(24815046) SHA1(f5eeae60b923ae850b335e7898a2760407631d8b) ) - //empty - - ROM_REGION( 0x88000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "bp962a.u9", 0x00000, 0x08000, CRC(06caddbe) SHA1(6a3cc50558ba19a31b21b7f3ec6c6e2846244ff1) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x10000, 0x78000 ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "bp962a.u76", 0x000000, 0x200000, CRC(858da439) SHA1(33a3d2a3ec3fa3364b00e1e43b405e5030a5b2a3) ) - ROM_LOAD( "bp962a.u77", 0x200000, 0x200000, CRC(ea2ba35e) SHA1(72487f21d44fe7be9a98068ce7f57a43c132945f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bp962a.u53", 0x000000, 0x100000, CRC(fcd9a107) SHA1(169b94db8389e7d47d4d77f36907a62c30fea727) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bp962a.u54", 0x000000, 0x200000, CRC(0cfa3409) SHA1(17107e26762ef7e3b902fb29a6d7bc534a4d09aa) ) - - ROM_REGION( (1*0x200000)*2, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - /* 4 bit part */ - ROM_LOAD( "bp962a.u57", 0x000000, 0x200000, CRC(6d608957) SHA1(15f6e8346f5f95eb229505b1b4666dabeb810ee8) ) - /* 2 bit part */ - ROM_LOAD( "bp962a.u65", 0x200000, 0x100000, CRC(135fcf9a) SHA1(2e8c89c2627bbdef160d96724d07883fb2fa1a57) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x200000, 0x100000 ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #0 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp962a.u48", 0x040000, 0x200000, CRC(ae00a1ce) SHA1(5e8c74df0ac77efb3080406870856f958be14f79) ) // 16 x $20000, FIRST AND SECOND HALF IDENTICAL - - ROM_REGION( 0x240000, REGION_SOUND2, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp962a.u47", 0x040000, 0x200000, CRC(6d4e9737) SHA1(81c7ecdfc2d38d0b35e26745866f6672f566f936) ) // 16 x $20000, FIRST AND SECOND HALF IDENTICAL -ROM_END - - -/*************************************************************************** - - Fever SOS (International) / Dangun Feveron (Japan) - -Board: CV01 -OSC: 28.0, 16.0, 16.9 MHz - -***************************************************************************/ - -ROM_START( dfeveron ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "cv01-u34.bin", 0x000000, 0x080000, CRC(be87f19d) SHA1(595239245df3835cdf5a99a6c62480465558d8d3) ) - ROM_LOAD16_BYTE( "cv01-u33.bin", 0x000001, 0x080000, CRC(e53a7db3) SHA1(ddced29f78dc3cc89038757b6577ba2ba0d8b041) ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "cv01-u25.bin", 0x000000, 0x400000, CRC(a6f6a95d) SHA1(e1eb45cb5d0e6163edfd9d830633b913fb53c6ca) ) - ROM_LOAD( "cv01-u26.bin", 0x400000, 0x400000, CRC(32edb62a) SHA1(3def74e1316b80cc25a8c3ac162cd7bcb8cc807c) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "cv01-u50.bin", 0x000000, 0x200000, CRC(7a344417) SHA1(828bd8f95d2fcc34407e17629ccafc904a4ea12d) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "cv01-u49.bin", 0x000000, 0x200000, CRC(d21cdda7) SHA1(cace4650de580c3c4a037f1f5c32bfc1846b383c) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "cv01-u19.bin", 0x000000, 0x400000, CRC(5f5514da) SHA1(53f27364aee544572a82649c9ff29bacc642b732) ) -ROM_END - -/* - -Fever SOS - - The program code checks for 0x05 & 0x19 at the 17th & 18th byte in the EEPROM. Therefore - you cannot convert a Dangun Feveron over to a Fever SOS by changing the 2 program roms - -Jumper JP1: -INT Version - 2 & 3 -JAP Version - 1 & 2 - -However there are more differences: - -U4: -INT Version - 013 9838EX003 -JAP Version - 013 9807EX004 (The second set of numbers are manufacture day codes) - -UA2 & UB2: -INT Version - 038 9838WX001 -JAP Version - 038 9808WX003 (The second set of numbers are manufacture day codes) - -TA8030S (Beside SW1) -INT Version - NOT MOUNTED -JAP Version - TA8030S (WatchDog Timer, might be controlled by JP1) - -U47 & U48 - Differ -U38 & U37 - Differ - These chips are Static RAM - -It actually looks like the international version is older than -the Japanese version PCB wise, but the software date is 98/09/25 -and mine is 98/09/17! - -The famous full extent of the JAM is inside the image but so is -"full extent" of the LAW. There are also other version strings -inside the same image look here... - - NOTICE - THIS GAME IS FOR USE IN - KOREA ONLY - HONG KONG ONLY - TAIWAN ONLY - SOUTHEAST ASIA ONLY - EUROPE ONLY - U.S.A ONLY - JAPAN ONLY -SALES, EXPORT OR OPERATION -OUTSIDE THIS COUNTRY MAY BE -CONSTRUED AS COPYRIGHT AND -TRADEMARK INFRINGEMENT AND -IS STRICTLY PROHIBITED. -VIOLATOR AND SUBJECT TO -SEVERE PENALTIES AND WILL -BE PROSECUTED TO THE FULL -EXTENT OF THE JAM. - 98/09/10 VER. - -Look at the version date! - - NOTICE -THIS GAME MAY NOT BE SOLD, -EXPORTED OR OPERATED -WITHOUTPROOF OF LEGAL CONSENT -BY CAVE CO.,LTD. -VIOLATION OF THESE TERMS WILL -RESULT IN COPYRIGHT AND -TRADEMARK INFRINGEMENT,AND IS -STRICTLY PROHIBITED. -VIOLATORS ARE SUBJECT TO -SEVERE PENALTIES AND WILL BE -PROSECUTED TO THE FULL EXTENT -OF THE LAW GOVERNED BY THE -COUNTRY OF ORIGIN. - 98/09/25 VER - -This is from Fever SOS image! Both version strings are present! - -The PCB is also different, UD's PCB does not have the Cave logo and -the CV01 marker in the lower left corner of the PCB. - -There is some "engrish" story inside the UD image but this is NOT -present in the japanese images... - -*/ - -ROM_START( feversos ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "cv01-u34.sos", 0x000000, 0x080000, CRC(24ef3ce6) SHA1(42799eebbb2686a837b8972aec684143deadca59) ) - ROM_LOAD16_BYTE( "cv01-u33.sos", 0x000001, 0x080000, CRC(64ff73fd) SHA1(7fc3a8469cec2361d373a4dac4a547c13ca5f709) ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "cv01-u25.bin", 0x000000, 0x400000, CRC(a6f6a95d) SHA1(e1eb45cb5d0e6163edfd9d830633b913fb53c6ca) ) - ROM_LOAD( "cv01-u26.bin", 0x400000, 0x400000, CRC(32edb62a) SHA1(3def74e1316b80cc25a8c3ac162cd7bcb8cc807c) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "cv01-u50.bin", 0x000000, 0x200000, CRC(7a344417) SHA1(828bd8f95d2fcc34407e17629ccafc904a4ea12d) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "cv01-u49.bin", 0x000000, 0x200000, CRC(d21cdda7) SHA1(cace4650de580c3c4a037f1f5c32bfc1846b383c) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "cv01-u19.bin", 0x000000, 0x400000, CRC(5f5514da) SHA1(53f27364aee544572a82649c9ff29bacc642b732) ) -ROM_END - -/*************************************************************************** - - Dodonpachi (Japan) - -PCB: AT-C03 D2 -CPU: MC68000-16 -Sound: YMZ280B -OSC: 28.0000MHz - 16.0000MHz - 16.9MHz (16.9344MHz?) - -***************************************************************************/ - -ROM_START( ddonpach ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "b1.u27", 0x000000, 0x080000, CRC(b5cdc8d3) SHA1(58757b50e21a27e500a82c03f62cf02a85389926) ) - ROM_LOAD16_BYTE( "b2.u26", 0x000001, 0x080000, CRC(6bbb063a) SHA1(e5de64b9c3efc0a38a2e0e16b78ee393bff63558) ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2, do not dispose */ - ROM_LOAD( "u50.bin", 0x000000, 0x200000, CRC(14b260ec) SHA1(33bda210302428d5500115d0c7a839cdfcb67d17) ) - ROM_LOAD( "u51.bin", 0x200000, 0x200000, CRC(e7ba8cce) SHA1(ad74a6b7d53760b19587c4a6dbea937daa7e87ce) ) - ROM_LOAD( "u52.bin", 0x400000, 0x200000, CRC(02492ee0) SHA1(64d9cc64a4ad189a8b03cf6a749ddb732b4a0014) ) - ROM_LOAD( "u53.bin", 0x600000, 0x200000, CRC(cb4c10f0) SHA1(a622e8bd0c938b5d38b392b247400b744d8be288) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u60.bin", 0x000000, 0x200000, CRC(903096a7) SHA1(a243e903fef7c4a7b71383263e82e42acd869261) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u61.bin", 0x000000, 0x200000, CRC(d89b7631) SHA1(a66bb4955ca58fab8973ca37a0f971e9a67ce017) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u62.bin", 0x000000, 0x200000, CRC(292bfb6b) SHA1(11b385991ee990eb5ef36e136b988802b5f90fa4) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u6.bin", 0x000000, 0x200000, CRC(9dfdafaf) SHA1(f5cb450cdc78a20c3a74c6dac05c9ac3cba08327) ) - ROM_LOAD( "u7.bin", 0x200000, 0x200000, CRC(795b17d5) SHA1(cbfc29f1df9600c82e0fdae00edd00da5b73e14c) ) -ROM_END - - -ROM_START( ddonpchj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u27.bin", 0x000000, 0x080000, CRC(2432ff9b) SHA1(fbc826c30553f6553ead40b312b73c049e8f4bf6) ) - ROM_LOAD16_BYTE( "u26.bin", 0x000001, 0x080000, CRC(4f3a914a) SHA1(ae98eba049f1462aa1145f6959b9f9a32c97278f) ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2, do not dispose */ - ROM_LOAD( "u50.bin", 0x000000, 0x200000, CRC(14b260ec) SHA1(33bda210302428d5500115d0c7a839cdfcb67d17) ) - ROM_LOAD( "u51.bin", 0x200000, 0x200000, CRC(e7ba8cce) SHA1(ad74a6b7d53760b19587c4a6dbea937daa7e87ce) ) - ROM_LOAD( "u52.bin", 0x400000, 0x200000, CRC(02492ee0) SHA1(64d9cc64a4ad189a8b03cf6a749ddb732b4a0014) ) - ROM_LOAD( "u53.bin", 0x600000, 0x200000, CRC(cb4c10f0) SHA1(a622e8bd0c938b5d38b392b247400b744d8be288) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u60.bin", 0x000000, 0x200000, CRC(903096a7) SHA1(a243e903fef7c4a7b71383263e82e42acd869261) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u61.bin", 0x000000, 0x200000, CRC(d89b7631) SHA1(a66bb4955ca58fab8973ca37a0f971e9a67ce017) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u62.bin", 0x000000, 0x200000, CRC(292bfb6b) SHA1(11b385991ee990eb5ef36e136b988802b5f90fa4) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u6.bin", 0x000000, 0x200000, CRC(9dfdafaf) SHA1(f5cb450cdc78a20c3a74c6dac05c9ac3cba08327) ) - ROM_LOAD( "u7.bin", 0x200000, 0x200000, CRC(795b17d5) SHA1(cbfc29f1df9600c82e0fdae00edd00da5b73e14c) ) -ROM_END - - -/*************************************************************************** - - Donpachi - -Known versions: - -USA Version 1.12 1995/05/2x -Korea Version 1.12 1995/05/2x -Hong Kong Version 1.10 1995/05/17 -Japan Version 1.01 1995/05/11 - -BOARD #: AT-C01DP-2 -CPU: TMP68HC000-16 -VOICE: M6295 x2 -OSC: 28.000/16.000/4.220MHz -EEPROM: ATMEL 93C46 -CUSTOM: ATLUS 8647-01 013 - 038 9429WX727 x3 - NMK 112 (M6295 sample ROM banking) - ---------------------------------------------------- - filenames devices kind ---------------------------------------------------- - PRG.U29 27C4096 68000 main prg. - U58.BIN 27C020 gfx data - ATDP.U32 57C8200 M6295 data - ATDP.U33 57C16200 M6295 data - ATDP.U44 57C16200 gfx data - ATDP.U45 57C16200 gfx data - ATDP.U54 57C8200 gfx data - ATDP.U57 57C8200 gfx data - - USA Version ----------------------------------------------------- - prgu.U29 27C4002 68000 Main Program - text.u58 27C2001 Labeled as "TEXT" - -***************************************************************************/ - -ROM_START( donpachi ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "prgu.u29", 0x00000, 0x80000, CRC(89c36802) SHA1(7857c726cecca5a4fce282e0d2b873774d2c1b1d) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "atdp.u44", 0x000000, 0x200000, CRC(7189e953) SHA1(53adbe6ea5e01ecb48575e9db82cc3d0dc8a3726) ) - ROM_LOAD( "atdp.u45", 0x200000, 0x200000, CRC(6984173f) SHA1(625dd6674adeb206815855b8b6a1fba79ed5c4cd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atdp.u54", 0x000000, 0x100000, CRC(6bda6b66) SHA1(6472e6706505bac17484fb8bf4e8922ced4adf63) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atdp.u57", 0x000000, 0x100000, CRC(0a0e72b9) SHA1(997e8253777e7acca5a1c0c4026e78eecc122d5d) ) - - ROM_REGION( 0x040000, REGION_GFX4, ROMREGION_DISPOSE ) /* Text / Character Layer */ - ROM_LOAD( "text.u58", 0x000000, 0x040000, CRC(5dba06e7) SHA1(f9dab7f6c732a683fddb4cae090a875b3962332b) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u33", 0x040000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) - - ROM_REGION( 0x340000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u32", 0x040000, 0x100000, CRC(0d89fcca) SHA1(e16ed15fa5e72537822f7b37e83ccfed0fa87338) ) - ROM_LOAD( "atdp.u33", 0x140000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) -ROM_END - -ROM_START( donpacjp ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "prg.u29", 0x00000, 0x80000, CRC(6be14af6) SHA1(5b1158071f160efeded816ae4c4edca1d00d6e05) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "atdp.u44", 0x000000, 0x200000, CRC(7189e953) SHA1(53adbe6ea5e01ecb48575e9db82cc3d0dc8a3726) ) - ROM_LOAD( "atdp.u45", 0x200000, 0x200000, CRC(6984173f) SHA1(625dd6674adeb206815855b8b6a1fba79ed5c4cd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atdp.u54", 0x000000, 0x100000, CRC(6bda6b66) SHA1(6472e6706505bac17484fb8bf4e8922ced4adf63) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atdp.u57", 0x000000, 0x100000, CRC(0a0e72b9) SHA1(997e8253777e7acca5a1c0c4026e78eecc122d5d) ) - - ROM_REGION( 0x040000, REGION_GFX4, ROMREGION_DISPOSE ) /* Text / Character Layer */ - ROM_LOAD( "u58.bin", 0x000000, 0x040000, CRC(285379ff) SHA1(b9552edcec29ddf4b552800b145c398b94117ab0) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u33", 0x040000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) - - ROM_REGION( 0x340000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u32", 0x040000, 0x100000, CRC(0d89fcca) SHA1(e16ed15fa5e72537822f7b37e83ccfed0fa87338) ) - ROM_LOAD( "atdp.u33", 0x140000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) -ROM_END - -ROM_START( donpackr ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "prgk.u26", 0x00000, 0x80000, CRC(bbaf4c8b) SHA1(0f9d42c8c4c5b69e3d39bf768bc4b663f66b4f36) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "atdp.u44", 0x000000, 0x200000, CRC(7189e953) SHA1(53adbe6ea5e01ecb48575e9db82cc3d0dc8a3726) ) - ROM_LOAD( "atdp.u45", 0x200000, 0x200000, CRC(6984173f) SHA1(625dd6674adeb206815855b8b6a1fba79ed5c4cd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atdp.u54", 0x000000, 0x100000, CRC(6bda6b66) SHA1(6472e6706505bac17484fb8bf4e8922ced4adf63) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atdp.u57", 0x000000, 0x100000, CRC(0a0e72b9) SHA1(997e8253777e7acca5a1c0c4026e78eecc122d5d) ) - - ROM_REGION( 0x040000, REGION_GFX4, ROMREGION_DISPOSE ) /* Text / Character Layer */ - ROM_LOAD( "u58.bin", 0x000000, 0x040000, CRC(285379ff) SHA1(b9552edcec29ddf4b552800b145c398b94117ab0) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u33", 0x040000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) - - ROM_REGION( 0x340000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u32", 0x040000, 0x100000, CRC(0d89fcca) SHA1(e16ed15fa5e72537822f7b37e83ccfed0fa87338) ) - ROM_LOAD( "atdp.u33", 0x140000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) -ROM_END - -ROM_START( donpachk ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "37.u29", 0x00000, 0x80000, CRC(71f39f30) SHA1(08a028208f21c073d450a29061604f27775786a8) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "atdp.u44", 0x000000, 0x200000, CRC(7189e953) SHA1(53adbe6ea5e01ecb48575e9db82cc3d0dc8a3726) ) - ROM_LOAD( "atdp.u45", 0x200000, 0x200000, CRC(6984173f) SHA1(625dd6674adeb206815855b8b6a1fba79ed5c4cd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atdp.u54", 0x000000, 0x100000, CRC(6bda6b66) SHA1(6472e6706505bac17484fb8bf4e8922ced4adf63) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atdp.u57", 0x000000, 0x100000, CRC(0a0e72b9) SHA1(997e8253777e7acca5a1c0c4026e78eecc122d5d) ) - - ROM_REGION( 0x040000, REGION_GFX4, ROMREGION_DISPOSE ) /* Text / Character Layer */ - ROM_LOAD( "u58.bin", 0x000000, 0x040000, CRC(285379ff) SHA1(b9552edcec29ddf4b552800b145c398b94117ab0) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u33", 0x040000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) - - ROM_REGION( 0x340000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "atdp.u32", 0x040000, 0x100000, CRC(0d89fcca) SHA1(e16ed15fa5e72537822f7b37e83ccfed0fa87338) ) - ROM_LOAD( "atdp.u33", 0x140000, 0x200000, CRC(d749de00) SHA1(64a0acc23eb2515e7d0459f0289919e083c63afc) ) -ROM_END - - -/*************************************************************************** - - ESP Ra.De. - -ATC04 -OSC: 28.0, 16.0, 16.9 MHz - -***************************************************************************/ - -ROM_START( esprade ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u42.int", 0x000000, 0x080000, CRC(3b510a73) SHA1(ab1666eb826cb4a71588d86831dd18a2ef1c2a33) ) - ROM_LOAD16_BYTE( "u41.int", 0x000001, 0x080000, CRC(97c1b649) SHA1(37a56b7b9662219a356aee3f4b5cbb774ac4950e) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD16_BYTE( "u63.bin", 0x000000, 0x400000, CRC(2f2fe92c) SHA1(9519e365248bcec8419786eabb16fe4aae299af5) ) - ROM_LOAD16_BYTE( "u64.bin", 0x000001, 0x400000, CRC(491a3da4) SHA1(53549a2bd3edc7b5e73fb46e1421b156bb0c190f) ) - ROM_LOAD16_BYTE( "u65.bin", 0x800000, 0x400000, CRC(06563efe) SHA1(94e72da1f542b4e0525b4b43994242816b43dbdc) ) - ROM_LOAD16_BYTE( "u66.bin", 0x800001, 0x400000, CRC(7bbe4cfc) SHA1(e77d0ed7a11b5abca1df8a0eb20ac9360cf79e76) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u54.bin", 0x000000, 0x400000, CRC(e7ca6936) SHA1(b7f5ab67071a1d9dd3d2c1cd2304d9cdad68850c) ) - ROM_LOAD( "u55.bin", 0x400000, 0x400000, CRC(f53bd94f) SHA1(d0a74fb3d36fe522ef075e5ae44a9980da8abe2f) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u52.bin", 0x000000, 0x400000, CRC(e7abe7b4) SHA1(e98da45497e1aaf0d6ab352ec3e43c7438ed792a) ) - ROM_LOAD( "u53.bin", 0x400000, 0x400000, CRC(51a0f391) SHA1(8b7355cbad119f4e1add14e5cd5e343ec6706104) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u51.bin", 0x000000, 0x400000, CRC(0b9b875c) SHA1(ef05447cd8565ae24bb71db42342724622ad1e3e) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u19.bin", 0x000000, 0x400000, CRC(f54b1cab) SHA1(34d70bb5798de85d892c062001d9ac1d6604fd9f) ) -ROM_END - -ROM_START( espradej ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u42.bin", 0x000000, 0x080000, CRC(75d03c42) SHA1(1c176185b6f1531752b633a97f705ffa0cfeb5ad) ) - ROM_LOAD16_BYTE( "u41.bin", 0x000001, 0x080000, CRC(734b3ef0) SHA1(f584227b85c347d62d5f179445011ce0f607bcfd) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD16_BYTE( "u63.bin", 0x000000, 0x400000, CRC(2f2fe92c) SHA1(9519e365248bcec8419786eabb16fe4aae299af5) ) - ROM_LOAD16_BYTE( "u64.bin", 0x000001, 0x400000, CRC(491a3da4) SHA1(53549a2bd3edc7b5e73fb46e1421b156bb0c190f) ) - ROM_LOAD16_BYTE( "u65.bin", 0x800000, 0x400000, CRC(06563efe) SHA1(94e72da1f542b4e0525b4b43994242816b43dbdc) ) - ROM_LOAD16_BYTE( "u66.bin", 0x800001, 0x400000, CRC(7bbe4cfc) SHA1(e77d0ed7a11b5abca1df8a0eb20ac9360cf79e76) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u54.bin", 0x000000, 0x400000, CRC(e7ca6936) SHA1(b7f5ab67071a1d9dd3d2c1cd2304d9cdad68850c) ) - ROM_LOAD( "u55.bin", 0x400000, 0x400000, CRC(f53bd94f) SHA1(d0a74fb3d36fe522ef075e5ae44a9980da8abe2f) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u52.bin", 0x000000, 0x400000, CRC(e7abe7b4) SHA1(e98da45497e1aaf0d6ab352ec3e43c7438ed792a) ) - ROM_LOAD( "u53.bin", 0x400000, 0x400000, CRC(51a0f391) SHA1(8b7355cbad119f4e1add14e5cd5e343ec6706104) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u51.bin", 0x000000, 0x400000, CRC(0b9b875c) SHA1(ef05447cd8565ae24bb71db42342724622ad1e3e) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u19.bin", 0x000000, 0x400000, CRC(f54b1cab) SHA1(34d70bb5798de85d892c062001d9ac1d6604fd9f) ) -ROM_END - -ROM_START( espradeo ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u42.old", 0x000000, 0x080000, CRC(0718c7e5) SHA1(c7d1f30bd2ef363cad15b6918f9980312a15809a) ) - ROM_LOAD16_BYTE( "u41.old", 0x000001, 0x080000, CRC(def30539) SHA1(957ad0b06f06689ae71393572592f6b8f818603a) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD16_BYTE( "u63.bin", 0x000000, 0x400000, CRC(2f2fe92c) SHA1(9519e365248bcec8419786eabb16fe4aae299af5) ) - ROM_LOAD16_BYTE( "u64.bin", 0x000001, 0x400000, CRC(491a3da4) SHA1(53549a2bd3edc7b5e73fb46e1421b156bb0c190f) ) - ROM_LOAD16_BYTE( "u65.bin", 0x800000, 0x400000, CRC(06563efe) SHA1(94e72da1f542b4e0525b4b43994242816b43dbdc) ) - ROM_LOAD16_BYTE( "u66.bin", 0x800001, 0x400000, CRC(7bbe4cfc) SHA1(e77d0ed7a11b5abca1df8a0eb20ac9360cf79e76) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u54.bin", 0x000000, 0x400000, CRC(e7ca6936) SHA1(b7f5ab67071a1d9dd3d2c1cd2304d9cdad68850c) ) - ROM_LOAD( "u55.bin", 0x400000, 0x400000, CRC(f53bd94f) SHA1(d0a74fb3d36fe522ef075e5ae44a9980da8abe2f) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u52.bin", 0x000000, 0x400000, CRC(e7abe7b4) SHA1(e98da45497e1aaf0d6ab352ec3e43c7438ed792a) ) - ROM_LOAD( "u53.bin", 0x400000, 0x400000, CRC(51a0f391) SHA1(8b7355cbad119f4e1add14e5cd5e343ec6706104) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u51.bin", 0x000000, 0x400000, CRC(0b9b875c) SHA1(ef05447cd8565ae24bb71db42342724622ad1e3e) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u19.bin", 0x000000, 0x400000, CRC(f54b1cab) SHA1(34d70bb5798de85d892c062001d9ac1d6604fd9f) ) -ROM_END - - -/*************************************************************************** - - Gaia Crusaders - -Noise Factory, 1999 - -PCB Layout ----------- - -|------------------------------------------------| -| YAC516 YMZ280B XC9536 68000 | -| 16MHz PRG2 PAL| -| TC51832 PRG1 | -| SND3 SND2 TC51832 28.322MHz | -| SND1 62256 16MHz | -| 62256 | -|J 62256 62256 62256 62256 62256 62256 | -|A KM416C256 | -|M KM416C256| -|M ------------------- --------------- | -|A | | | | | | 62256| -| | | | | | | | -| DSW1 | | | | |013 9918EX008| 62256| -| |038 9838WX003(x3)| | | | -| ------------------- --------------- | -| DSW2 | -| XC9536 OBJ2 | -| | -| BG2 BG3 BG1 OBJ1 | -| | -|------------------------------------------------| - -Notes: - 68000 clock : 16.000MHz - YMZ280B clock: 16.000MHz - VSync : 58Hz - HSync : 15.40kHz - -***************************************************************************/ - -ROM_START( gaia ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "prg1.127", 0x000000, 0x080000, CRC(47b904b2) SHA1(58b9b55f59cf00f70b690a0371096e86f4d723c2) ) - ROM_LOAD16_BYTE( "prg2.128", 0x000001, 0x080000, CRC(469b7794) SHA1(502f855c51005a866900b19c3a0a170d9ea02392) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "obj1.736", 0x000000, 0x400000, CRC(f4f84e5d) SHA1(8f445dd7a5c8a996939c211e5aec5742121a6e7e) ) - ROM_LOAD( "obj2.738", 0x400000, 0x400000, CRC(15c2a9ce) SHA1(631eb2968395be86ef2403733e7d4ec769a013b9) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bg1.989", 0x000000, 0x400000, CRC(013a693d) SHA1(2cc5be6f47c13febed942e1c3167946efedc5f9b) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bg2.995", 0x000000, 0x400000, CRC(783cc62f) SHA1(8b6e4212688b53be5ecc29ff2d41fd43e7d0a420) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "bg3.998", 0x000000, 0x400000, CRC(bcd61d1c) SHA1(660a3b02a8c39e1117b00d0ad06f73221fef4ce8) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "snd1.447", 0x000000, 0x400000, CRC(92770a52) SHA1(81f6835e1b45eb0f367e4586fdda92466f02edb9) ) - ROM_LOAD( "snd2.454", 0x400000, 0x400000, CRC(329ae1cf) SHA1(0c5e5074a5d8f4fb85ab4893bc953f192dcb301a) ) - ROM_LOAD( "snd3.455", 0x800000, 0x400000, CRC(4048d64e) SHA1(5e4ec6d37e70484e2fcd04188385e79ef0b53026) ) -ROM_END - -/* -Thunder Heroes -Primetek Investments Ltd. , 2001 - -A quasi-clone, remake or continuation of Gaia Crusaders but is clearly a different game. - -PCB Layout ----------- - -|------------------------------------------------------| -| 4558 YAC516 YMZ280B XILINX | -| 4558 16MHz XC9536 68000 PAL | -| SND2 | -| VOL SND3 TC51832 EPM0 | -| SND1 | -| TC51832 EPM1 | -| 58257 28.322MHz | -|J 58257 16MHz | -|A 58257 58257 58257 58257 58257 | -|M DSW1 58257 M514260 M514260 | -|M | -|A DSW2 |------| |------| |------| |--------|58257 | -| | 038 | | 038 | | 038 | | 013 | | -| | | | | | | | |58257 | -| |------| |------| |------| | | | -| |--------| | -| XILINX OBJ2 | -| XC9536 | -| BG2 BG3 BG1 OBJ1 | -|------------------------------------------------------| -Notes: - 68000 clock 16.00MHz - YMZ280B clock 16.000MHz - HSync 15.4kHz - VSync 58Hz - 038/013 = Same video chips used on some Banpresto games -*/ - -ROM_START( theroes ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "t-hero-epm1.u0127", 0x000000, 0x080000, CRC(09db7195) SHA1(6aa5aa80e3b74e405ed8f1b9b801ce4367756986) ) - ROM_LOAD16_BYTE( "t-hero-epm0.u0129", 0x000001, 0x080000, CRC(2d4e3310) SHA1(7c3284a2adc7943db50933a209d037422f87f80b) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "t-hero-obj1.u0736", 0x000000, 0x400000, CRC(35090f7c) SHA1(035e6c12a87d9c7241eea34fc7e2170bec842acc) ) - ROM_LOAD( "t-hero-obj2.u0738", 0x400000, 0x400000, CRC(71605108) SHA1(6070c26d8f22fafc81d97cacfef96ae652e355d0) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "t-hero-bg1.u0999", 0x000000, 0x400000, CRC(47b0fb40) SHA1(a7217b3d805b4255c589821cdadd9b190cada525) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "t-hero-bg2.u0995", 0x000000, 0x400000, CRC(b16237a1) SHA1(66aed2c5036492a17d20de90333e172a6f117851) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "t-hero-bg3.u0998", 0x000000, 0x400000, CRC(08eb5604) SHA1(3d32966708c73198272c40e6ddc680bf4c7919eb) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "crvsaders-snd1.u0447", 0x000000, 0x400000, CRC(92770a52) SHA1(81f6835e1b45eb0f367e4586fdda92466f02edb9) ) - ROM_LOAD( "crvsaders-snd2.u0454", 0x400000, 0x400000, CRC(329ae1cf) SHA1(0c5e5074a5d8f4fb85ab4893bc953f192dcb301a) ) - ROM_LOAD( "t-hero-snd3.u0455", 0x800000, 0x400000, CRC(52b0b2c0) SHA1(6e96698905391c21a4fedd60e2768734b58add4e) ) -ROM_END - - -/*************************************************************************** - - Guwange (Japan) - -PCB: ATC05 -CPU: MC68000-16 -Sound: YMZ280B -OSC: 28.0000MHz - 16.0000MHz - 16.9MHz - -***************************************************************************/ - -ROM_START( guwange ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "gu-u0127.bin", 0x000000, 0x080000, CRC(f86b5293) SHA1(f8b1cd77cc25328d5010889850e4b86c27d9e396) ) - ROM_LOAD16_BYTE( "gu-u0129.bin", 0x000001, 0x080000, CRC(6c0e3b93) SHA1(aaad6569b9a7b6f9a315062f9fedfc95851c1bc6) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD16_BYTE( "u083.bin", 0x0000000, 0x800000, CRC(adc4b9c4) SHA1(3f9fb004e19187bbfa87ddfe8cfc69740656a1bd) ) - ROM_LOAD16_BYTE( "u082.bin", 0x0000001, 0x800000, CRC(3d75876c) SHA1(705b8c2dbdc31e9516f429969f87988beec796d7) ) - ROM_LOAD16_BYTE( "u086.bin", 0x1000000, 0x400000, CRC(188e4f81) SHA1(626074d81782a6de0b52406331b4b8561d3e36f5) ) - ROM_RELOAD( 0x1800000, 0x400000 ) - ROM_LOAD16_BYTE( "u085.bin", 0x1000001, 0x400000, CRC(a7d5659e) SHA1(10abac022ebe106a3ca7186ff18ca2757f903033) ) - ROM_RELOAD( 0x1800001, 0x400000 ) -//sprite bug fix? -// ROM_FILL( 0x1800000, 0x800000, 0xff ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u101.bin", 0x000000, 0x800000, CRC(0369491f) SHA1(ca6b1345506f13a17c9bace01637d1f61a278644) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "u10102.bin", 0x000000, 0x400000, CRC(e28d6855) SHA1(7001a6e298c6a1fcceb79586bf5f4bf0f30027f6) ) - - ROM_REGION( 0x400000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "u10103.bin", 0x000000, 0x400000, CRC(0fe91b8e) SHA1(8b71ebeef5e4d2b00fdaaab97776d74e1c96dc59) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u0462.bin", 0x000000, 0x400000, CRC(b3d75691) SHA1(71d8dae92be1542a3cff50efeec0bf3c14ab59f5) ) -ROM_END - - -/*************************************************************************** - - Hot Dog Storm -Marble 1996 - -6264 6264 MP7 6264 6264 MP6 6264 6264 MP5 32MHz - 6264 - 6264 - MP4 - MP3 - 93C46 - 68257 - 68257 68000-12 - YM2203 - Z80 - MP8 MP9 - 68257 - 68257 U19 MP1 6296 - -***************************************************************************/ - -ROM_START( hotdogst ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "mp3u29", 0x00000, 0x80000, CRC(1f4e5479) SHA1(5c3d7b36b1eda4c87c53e4f7cf89951cc5bcc871) ) - ROM_LOAD16_BYTE( "mp4u28", 0x00001, 0x80000, CRC(6f1c3c4b) SHA1(ab4e4d9b2ef74a2eefda718e120bef05fd0346ff) ) - - ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "mp2u19", 0x00000, 0x08000, CRC(ff979ebe) SHA1(4cb80086cfdc69a321c7f75455cef89e20488b76) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x10000, 0x38000 ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "mp9u55", 0x000000, 0x200000, CRC(258d49ec) SHA1(f39e30c82d8f680f248e1eb59d7c5acb479fa277) ) - ROM_LOAD( "mp8u54", 0x200000, 0x200000, CRC(bdb4d7b8) SHA1(0dd490988aa84b0e9a21ade5fd606b03eca13f6c) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "mp7u56", 0x00000, 0x80000, CRC(87c21c50) SHA1(fc0eea79abdd96edb4fa2c7047aaa728ef838234) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "mp6u61", 0x00000, 0x80000, CRC(4dafb288) SHA1(4756259adfe49ba42cde25e7902655b0f0731a6c) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "mp5u64", 0x00000, 0x80000, CRC(9b26458c) SHA1(acef62422fa3f92e6ca1eba0ee6fb914cd1ee190) ) - - ROM_REGION( 0xc0000, REGION_SOUND1, 0 ) /* Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "mp1u65", 0x40000, 0x80000, CRC(4868be1b) SHA1(32b8234b19fdbe07fa5057fa7965e36807e35e77) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF, 4 x 0x20000 -ROM_END - - -/*************************************************************************** - -Koro Koro Quest - -Hardware is kind of Banpresto-ish - - PCB Number - TUG-01B MP001-00175 - 68000-16 + 16MHZ OSC - YMZ280B + YAC516-M + Xtal 16.9344MHz - 93C46 EEPROM - Custom - 013 9838EX004 (QFP240), 038 9838WX004 (QFP144) + OSC 28MHz - RAM - 62256 (x8), M5M44260 (x2) - 3volt battery - GAL16V8H (x5) - -***************************************************************************/ - -ROM_START( korokoro ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "mp-001_ver07.u0130", 0x000000, 0x080000, CRC(86c7241f) SHA1(c9f0ab63c4fe36df1300445e9bb0d5c6a1bb733f) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0x180000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "mp-001_ver01.u1066", 0x000000, 0x100000, CRC(c5c6af7e) SHA1(13ac26fd703672a01d629be4e5efe9fb8720a4fb) ) - ROM_LOAD( "mp-001_ver01.u1051", 0x100000, 0x080000, CRC(fe5e28e8) SHA1(44da1a7d813b149f9bae351bbcbd0bc2d4c70e10) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "mp-001_ver01.u1060", 0x000000, 0x100000, CRC(ec9cf9d8) SHA1(32fa7120e30c14e484de3b3a9c93efe3654d43c8) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mp-001_ver01.u1186", 0x000000, 0x100000, CRC(d16e7c5d) SHA1(1f825ace3ed2e23c8d3212320c4645d3d52214c7) ) -ROM_END - - -/*************************************************************************** - - Mazinger Z - -Banpresto 1994 - -U63 038 62256 - 9335EX706 62256 -3664 62256 62256 -3664 U924 32MHz - U24 -U60 038 68000 - 9335EX706 -3664 U21 YM2203 92E422 -3664 Z80 - 3664 - 013 - 9341E7009 -U56 -U55 - -62256 62256 514260 514260 U64 M6295 - -***************************************************************************/ - -ROM_START( mazinger ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "mzp-0.u24", 0x00000, 0x80000, CRC(43a4279f) SHA1(2c17eb31040bb7f1554bc1c9a968eec5e72af097) ) - - ROM_REGION16_BE( 0x80000, REGION_USER1, 0 ) /* 68000 code (mapped at d00000) */ - ROM_LOAD16_WORD_SWAP( "mzp-1.924", 0x00000, 0x80000, CRC(db40acba) SHA1(797a3046b6ab33773c5c4d6bb6d045ea60c1eb45) ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "mzs.u21", 0x00000, 0x08000, CRC(c5b4f7ed) SHA1(01f3cd1dd4045029260544e0e1c15dd08817012e) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, ROMREGION_ERASEFF ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "bp943a-2.u56", 0x000000, 0x200000, CRC(97e13959) SHA1(c30b1093aacebafefcae701af767dd36fc55fac7) ) - ROM_LOAD( "bp943a-3.u55", 0x200000, 0x080000, CRC(9c4957dd) SHA1(e775605a01b6cadc318855ac046dad03c4fc5bb4) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bp943a-1.u60", 0x000000, 0x200000, CRC(46327415) SHA1(679d26caefa975569198fac550105c370e2be00d) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bp943a-0.u63", 0x000000, 0x200000, CRC(c1fed98a) SHA1(c276505f80a49b129862966a19db507f97153e45) ) // FIXED BITS (xxxxxxxx00000000) - - ROM_REGION( 0x0c0000, REGION_SOUND1, 0 ) /* Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp943a-4.u64", 0x040000, 0x080000, CRC(3fc7f29a) SHA1(feb21b918243c0a03dfa4a80cc80b86be4f62680) ) // 4 x $20000 -ROM_END - - -/*************************************************************************** - - Metamoqester (World) / Oni - The Ninja Master (Japan) - -(C) 1995 Banpresto - -PCB: BP947A -CPU: MC68HC000P16 (68000, 64 pin DIP) -SND: Z0840008PSC (Z80, 40 pin DIP), AD-65 x 2 (= OKI M6295), YM2151, CY5002 (= YM3012) -OSC: 32.000 MHz -RAM: LGS GM76C88ALFW-15 x 9 (28 pin SOP), LGS GM71C4260AJ70 x 2 (40 pin SOJ) - Hitachi HM62256LFP-12T x 2 (40 pin SOJ) - -Other Chips: -AT93C46 (EEPROM) -PAL (not dumped, located near 68000): ATF16V8 x 1 - -GFX: (Same GFX chips as "Sailor Moon") - - 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 013 9346E7002 (240 pin PQFP) - -On PCB near JAMMA connector is a small push button labelled SW1 to access test mode. - -ROMS: -BP947A.U37 16M Mask \ Oki Samples -BP947A.U42 16M Mask / - -BP947A.U46 16M Mask \ -BP947A.U47 16M Mask | -BP947A.U48 16M Mask | -BP947A.U49 16M Mask | GFX -BP947A.U50 16M Mask | -BP947A.U51 16M Mask | -BP947A.U52 16M Mask / - -BP947A.U20 27C020 Sound PRG - -BP947A.U25 27C240 \ -BP947A.U28 27C240 | Main PRG -BP947A.U29 27C240 / - -***************************************************************************/ - -ROM_START( metmqstr ) - ROM_REGION( 0x280000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "bp947a.u25", 0x000000, 0x80000, CRC(0a5c3442) SHA1(684b79912dedc103f45c42fdebf9983e091b1308) ) - ROM_LOAD16_WORD_SWAP( "bp947a.u28", 0x100000, 0x80000, CRC(8c55decf) SHA1(76c6ce4c8e621273258d31ceb9ec4442fcf1a393) ) - ROM_LOAD16_WORD_SWAP( "bp947a.u29", 0x200000, 0x80000, CRC(cf0f3f3b) SHA1(49a3c0e7536edd53bbf09353e43e9166d736b3f4) ) - - ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "bp947a.u20", 0x00000, 0x08000, CRC(a4a36170) SHA1(ae55094518bd968ea0d04613a133c1421e412012) ) - ROM_CONTINUE( 0x10000, 0x38000 ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "bp947a.u49", 0x000000, 0x200000, CRC(09749531) SHA1(6deeed2712241611ec3202c49a66beed28698af8) ) - ROM_LOAD( "bp947a.u50", 0x200000, 0x200000, CRC(19cea8b2) SHA1(87fb29458074f0e4852237e0184b8b3b44b0eb29) ) - ROM_LOAD( "bp947a.u51", 0x400000, 0x200000, CRC(c19bed67) SHA1(ac664a15512c0e8c8b701833aede95f53cd46a45) ) - ROM_LOAD( "bp947a.u52", 0x600000, 0x200000, CRC(70c64875) SHA1(1c20ab100ccfdf42c97a25e4deb9041b83f5ca8d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bp947a.u48", 0x000000, 0x100000, CRC(04ff6a3d) SHA1(7187db436f7a2ab59a3f5c6ab297b3d740e20f1d) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bp947a.u47", 0x000000, 0x100000, CRC(0de42827) SHA1(05d452ca11a31f941cb8a9b0cbb0b59c6b0cbdcb) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "bp947a.u46", 0x000000, 0x100000, CRC(0f9c906e) SHA1(03872e8be28637df66373bddb04ed91de4f9db75) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp947a.u42", 0x040000, 0x100000, CRC(2ce8ff2a) SHA1(8ef8c5b7d4a0e60c980c2962e75f7977faafa311) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x040000, 0x100000 ) - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp947a.u37", 0x040000, 0x100000, CRC(c3077c8f) SHA1(0a76316a81b7de78279b859549eb5161a721ac71) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x040000, 0x100000 ) -ROM_END - -ROM_START( nmaster ) - ROM_REGION( 0x280000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "bp947a_n.u25",0x000000, 0x80000, CRC(748cc514) SHA1(11d882e77a539407c314f087386e50d691a6bc0b) ) - ROM_LOAD16_WORD_SWAP( "bp947a.u28" , 0x100000, 0x80000, CRC(8c55decf) SHA1(76c6ce4c8e621273258d31ceb9ec4442fcf1a393) ) - ROM_LOAD16_WORD_SWAP( "bp947a.u29", 0x200000, 0x80000, CRC(cf0f3f3b) SHA1(49a3c0e7536edd53bbf09353e43e9166d736b3f4) ) - - ROM_REGION( 0x48000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "bp947a.u20", 0x00000, 0x08000, CRC(a4a36170) SHA1(ae55094518bd968ea0d04613a133c1421e412012) ) - ROM_CONTINUE( 0x10000, 0x38000 ) - - ROM_REGION( 0x800000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "bp947a.u49", 0x000000, 0x200000, CRC(09749531) SHA1(6deeed2712241611ec3202c49a66beed28698af8) ) - ROM_LOAD( "bp947a.u50", 0x200000, 0x200000, CRC(19cea8b2) SHA1(87fb29458074f0e4852237e0184b8b3b44b0eb29) ) - ROM_LOAD( "bp947a.u51", 0x400000, 0x200000, CRC(c19bed67) SHA1(ac664a15512c0e8c8b701833aede95f53cd46a45) ) - ROM_LOAD( "bp947a.u52", 0x600000, 0x200000, CRC(70c64875) SHA1(1c20ab100ccfdf42c97a25e4deb9041b83f5ca8d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bp947a.u48", 0x000000, 0x100000, CRC(04ff6a3d) SHA1(7187db436f7a2ab59a3f5c6ab297b3d740e20f1d) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bp947a.u47", 0x000000, 0x100000, CRC(0de42827) SHA1(05d452ca11a31f941cb8a9b0cbb0b59c6b0cbdcb) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "bp947a.u46", 0x000000, 0x100000, CRC(0f9c906e) SHA1(03872e8be28637df66373bddb04ed91de4f9db75) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp947a.u42", 0x040000, 0x100000, CRC(2ce8ff2a) SHA1(8ef8c5b7d4a0e60c980c2962e75f7977faafa311) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x040000, 0x100000 ) - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bp947a.u37", 0x040000, 0x100000, CRC(c3077c8f) SHA1(0a76316a81b7de78279b859549eb5161a721ac71) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0x040000, 0x100000 ) -ROM_END - - -/*************************************************************************** - - Power Instinct 2 (USA) / Gouketsuji Ichizoku 2 (Japan) - -(c)1994 Atlus -CPU: 68000, Z80 -Sound: YM2203, AR17961 (x2) -Custom: NMK 112 (M6295 sample ROM banking), Atlus 8647-01 013, 038 (x4) -X1 = 12 MHz -X2 = 28 MHz -X3 = 16 MHz - -***************************************************************************/ - -ROM_START( pwrinst2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "g02.u45", 0x000000, 0x80000, CRC(7b33bc43) SHA1(a68eb94e679f03c354932b8c5cd1bb2922fec0aa) ) - ROM_LOAD16_BYTE( "g02.u44", 0x000001, 0x80000, CRC(8f6f6637) SHA1(024b12c0fe40e27c79e38bd7601a9183a62d75fd) ) - ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) ) - ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) ) - - ROM_REGION16_BE( 0x100000, REGION_USER1, ROMREGION_ERASE00 ) /* 68000 extra data roms */ - /* not used */ - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "g02.u3a", 0x00000, 0x0c000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0xe00000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) ) - ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) ) - ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) ) - ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) ) - ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) ) - ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) ) - ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) ) - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* Layer 3 */ - ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) ) - - ROM_REGION( 0x440000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) ) - ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) ) - - ROM_REGION( 0x440000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) ) - ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) ) -ROM_END - -ROM_START( pwrins2j ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "g02j.u45", 0x000000, 0x80000, CRC(42d0abd7) SHA1(c58861d43c4539ccc8b2f93eabc56aab37d3aa34)) - ROM_LOAD16_BYTE( "g02j.u44", 0x000001, 0x80000, CRC(362b7af3) SHA1(2d15611530cef76f0f9c82ee0411966079ae19c3)) - ROM_LOAD16_BYTE( "g02j.u43", 0x100000, 0x80000, CRC(c94c596b) SHA1(ee755a344f769e3ed05d8ca57f517b9e8c02f22e) ) - ROM_LOAD16_BYTE( "g02j.u42", 0x100001, 0x80000, CRC(4f4c8270) SHA1(1fa964f5646bd1d078e3661c21e191b0789c05c9) ) - - ROM_REGION16_BE( 0x100000, REGION_USER1, ROMREGION_ERASE00 ) /* 68000 extra data roms */ - /* not used */ - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "g02j.u3a", 0x00000, 0x0c000, CRC(eead01f1) SHA1(0ced6755e471e0303fe397b3d54a5c799762ebd8) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0xe00000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) ) - ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) ) - ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) ) - ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) ) - ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) ) - ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) ) - ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) ) - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* Layer 3 */ - ROM_LOAD( "g02j.82a", 0x000000, 0x080000, CRC(3be86fe1) SHA1(313bfe5fb8dc5fee4462db259738e079759f9390) ) - - ROM_REGION( 0x440000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) ) - ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) ) - - ROM_REGION( 0x440000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) ) - ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) ) -ROM_END - -/* - -Power Instinct Legends (US) / Gouketsuji Ichizoku Saikyou Densetsu (Japan) -Atlus, 1995 - -PCB Layout ----------- - -AT047G2-B ATLUS -|---------------------------------------------------------------| -|LM324 M6295 G02_U53 Z80 16MHz 28MHz 12MHz TA8030S | -|VOL G02_U54 |------| SOUND_U3 TEXT_U82 | -| M6295 G02_U55 |NMK112| 6264 6264 | -|uPC2505 G02_U56 | | |------| | -| 4558 |------| 6264 |038 | | -| Y3014 YM2203 PAL |9429WX| | -| ATGS_U89 |------| | -|J TEST_SW 62256 | -|A 93C46 62256 6264 |------| | -|M |----SUB-BOARD-----| |038 | | -|M |---| |*P P *P P *P *P | PAL 6264 |9429WX| | -|A | | | R R R R R R | |------| | -| | 6 | | 1 O 1 O 1 1 | ATGS_U81 | -| | 8 | | 2 G 2 G 2 2 | |------| | -| | 0 | | U U U U U U | 6264 |038 | | -| | 0 | | 2 4 4 4 3 5 | |9429WX| | -| | 0 | | 5 4 |62256 6264 |------| | -| | | |------------------|62256 | -| |---| PAL |-------| ATGS_U78 |------| | -|--------| |8647-01| |038 | | -|*ATGS_U1| |013 | KM416C256 |9429WX| | -| | |9341E70| |------| | -| |G02_U66 G02_U63 |-------| 6264 | -| | G02_U65 G02_U62 62256 KM416C256 | -|*ATGS_U2| G02_U64 G02_U61 62256 6264 | -|--------|------------------------------------------------------| -Notes: - ROMs marked with * are located on a plug-in sub board - 68000 clock - 16.000MHz - Z80 clock - 8.000MHz [16/2] - 6295 clocks - 3.000MHz [12/4], sample rate = 3000000 / 165 - YM2203 clock- 4.000MHz [16/4] - VSync - 57.5Hz - HSync - 15.23kHz - - ROMs - - U3 : 27C1001 EPROM - U82 : 27C040 EPROM - PR12* : 27C040 EPROMs - PROG* : 27C040 EPROMs - ALL other ROMs are soldered-in 16M 42 pin MASKROM (read as 27C160) -*/ - -ROM_START( plegends ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "d12.u45", 0x000000, 0x80000, CRC(ed8a2e3d) SHA1(0a09c58cd8a726189cd7679d06343e0b8c3de945) ) - ROM_LOAD16_BYTE( "d13.u44", 0x000001, 0x80000, CRC(25821731) SHA1(7c6ece92b36dc7eb489879d9ae3e8af9380b9f62) ) - ROM_LOAD16_BYTE( "d14.u2", 0x100000, 0x80000, CRC(c2cb1402) SHA1(78e70915ca32b97c22605a304dc8611e1fe01ae9) ) /* Contains text strings */ - ROM_LOAD16_BYTE( "d16.u3", 0x100001, 0x80000, CRC(50a1c63e) SHA1(5a8431a81aa61034e67141944b9e7cf97842773a) ) /* Contains text strings */ - - ROM_REGION16_BE( 0x100000, REGION_USER1, 0 ) /* 68000 extra data roms */ - ROM_LOAD16_BYTE( "d15.u4", 0x000000, 0x80000, CRC(6352cec0) SHA1(a54d55b8d642e438158268d0d41880b6589e48e2) ) - ROM_LOAD16_BYTE( "d17.u5", 0x000001, 0x80000, CRC(7af810d8) SHA1(5e24f78a228809a001f3f3372c1b32ea05070e17) ) - - ROM_REGION( 0x44000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "d19.u3", 0x00000, 0x0c000, CRC(47598459) SHA1(4e9dcfebfbd160230768965e8c6e5ed446c1aa7b) ) /* Same as sound.u3 below, but twice the size? */ - ROM_CONTINUE( 0x10000, 0x34000 ) - - ROM_REGION( 0x1000000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) ) - ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) ) - ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) ) - ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) ) - ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) ) - ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) ) - ROM_LOAD( "atgs.u1", 0xc00000, 0x200000, CRC(aa6f34a9) SHA1(00de85de1b413bd2c46931c13365f8556b50b634) ) /* US version's rom labeled "sp6_u67-1" */ - ROM_LOAD( "atgs.u2", 0xe00000, 0x200000, CRC(553eda27) SHA1(5b9126f966f0c64b3ac7c06526064d71e4df60c5) ) /* US version's rom labeled "sp6_u67-2" */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atgs.u78", 0x000000, 0x200000, CRC(16710ecb) SHA1(6277f7f6095457df649932550b04242e5853ec5e) ) /* US version's rom labeled "bg0_u78" */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atgs.u81", 0x000000, 0x200000, CRC(cb2aca91) SHA1(869f0f2db35c45ec90b74d33d521cbb598e60a3f) ) /* US version's rom labeled "bg1_u81" */ - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "atgs.u89", 0x000000, 0x200000, CRC(65f45a0f) SHA1(b7f4b56308dcdc144100d0a92d91255459a320a4) ) /* US version's rom labeled "bg2_u89" */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* Layer 3 */ - ROM_LOAD( "text.u82", 0x000000, 0x080000, CRC(f57333ea) SHA1(409d8005ffcf91943e4a743b2434ce425f5bdc36) ) /* US version's rom labeled "d20" */ - - ROM_REGION( 0x440000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) ) - ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) ) - - ROM_REGION( 0x440000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) ) - ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) ) -ROM_END - -ROM_START( plegendj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "prog.u45", 0x000000, 0x80000, CRC(94f53db2) SHA1(34c671f160cfcb7d46cc964731ff2b77dc0be928) ) - ROM_LOAD16_BYTE( "prog.u44", 0x000001, 0x80000, CRC(db0ad756) SHA1(9c1510491cdc9442062ee3bd8a1bb93f00d33d97) ) - ROM_LOAD16_BYTE( "pr12.u2", 0x100000, 0x80000, CRC(0e202559) SHA1(217a8e47d5c679aff02ca43de1641230e4f78b01) ) /* Contains text in Japanese */ - ROM_LOAD16_BYTE( "pr12.u3", 0x100001, 0x80000, CRC(54742f21) SHA1(fae7bb7381478eb077f0409acd521f77417aa968) ) /* Contains text in Japanese */ - - ROM_REGION16_BE( 0x100000, REGION_USER1, 0 ) /* 68000 extra data roms */ - ROM_LOAD16_BYTE( "d15.u4", 0x000000, 0x80000, CRC(6352cec0) SHA1(a54d55b8d642e438158268d0d41880b6589e48e2) ) - ROM_LOAD16_BYTE( "d17.u5", 0x000001, 0x80000, CRC(7af810d8) SHA1(5e24f78a228809a001f3f3372c1b32ea05070e17) ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "sound.u3", 0x00000, 0x0c000, CRC(36f71520) SHA1(11d0a059ddba3e1aa4c54ccdde7b3f5c7bde482f) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x1000000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) ) - ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) ) - ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) ) - ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) ) - ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) ) - ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) ) - ROM_LOAD( "atgs.u1", 0xc00000, 0x200000, CRC(aa6f34a9) SHA1(00de85de1b413bd2c46931c13365f8556b50b634) ) /* US version's rom labeled "sp6_u67-1" */ - ROM_LOAD( "atgs.u2", 0xe00000, 0x200000, CRC(553eda27) SHA1(5b9126f966f0c64b3ac7c06526064d71e4df60c5) ) /* US version's rom labeled "sp6_u67-2" */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "atgs.u78", 0x000000, 0x200000, CRC(16710ecb) SHA1(6277f7f6095457df649932550b04242e5853ec5e) ) /* US version's rom labeled "bg0_u78" */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "atgs.u81", 0x000000, 0x200000, CRC(cb2aca91) SHA1(869f0f2db35c45ec90b74d33d521cbb598e60a3f) ) /* US version's rom labeled "bg1_u81" */ - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - ROM_LOAD( "atgs.u89", 0x000000, 0x200000, CRC(65f45a0f) SHA1(b7f4b56308dcdc144100d0a92d91255459a320a4) ) /* US version's rom labeled "bg2_u89" */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* Layer 3 */ - ROM_LOAD( "text.u82", 0x000000, 0x080000, CRC(f57333ea) SHA1(409d8005ffcf91943e4a743b2434ce425f5bdc36) ) /* US version's rom labeled "d20" */ - - ROM_REGION( 0x440000, REGION_SOUND1, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) ) - ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) ) - - ROM_REGION( 0x440000, REGION_SOUND2, 0 ) /* OKIM6295 #2 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) ) - ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) ) -ROM_END - - -/*************************************************************************** - - Pretty Soldier Sailor Moon - -(C) 1995 Banpresto -PCB: BP945A -CPU: TMP68HC000P16 (68000, 64 pin DIP) -SND: Z84C0008PEC (Z80, 40 pin DIP), OKI M6295 x 2, YM2151, YM3012 -OSC: 28.000MHz, 16.000MHz -RAM: NEC 43256 x 8, NEC 424260 x 2, Sanyo LC3664 x 5 - -Other Chips: -SGS Thomson ST93C46CB1 (EEPROM?) -PALS (not dumped): - 18CV8 label SMBG - 18CV8 label SMZ80 - 18CV8 label SMCPU - GAL16V8 (located near BPSM-U47) - -GFX: 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 038 9437WX711 (176 pin PQFP) - 013 9346E7002 (240 pin PQFP) - -On PCB near JAMMA connector is a small push button to access test mode. - -ROMS: -BP945A.U9 27C040 Sound Program -BP945A.U45 27C240 Main Program -BPSM.U46 23C16000 Main Program? -BPSM.U47 23C4000 Sound? -BPSM.U48 23C16000 Sound? -BPSM.U53 23C16000 GFX -BPSM.U54 23C16000 GFX -BPSM.U57 23C16000 GFX -BPSM.U58 23C16000 GFX -BPSM.U59 23C16000 GFX -BPSM.U60 23C16000 GFX -BPSM.U61 23C16000 GFX -BPSM.U62 23C16000 GFX -BPSM.U63 23C16000 GFX -BPSM.U64 23C16000 GFX -BPSM.U65 23C16000 GFX -BPSM.U76 23C16000 GFX -BPSM.U77 23C16000 GFX - -***************************************************************************/ - -ROM_START( sailormn ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "bpsm945a.u45", 0x000000, 0x080000, CRC(898c9515) SHA1(0fe8d7f13f5cfe2f6e79a0a21b2e8e7e70e65c4b) ) - ROM_LOAD16_WORD_SWAP( "bpsm.u46", 0x200000, 0x200000, CRC(32084e80) SHA1(0ac503190d95009620b5ad7e7e0e63324f6fa4eb) ) - - ROM_REGION( 0x88000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "bpsm945a.u9", 0x00000, 0x08000, CRC(438de548) SHA1(81a0ca1cd662e2017aa980da162d39cfd0a19f14) ) - ROM_CONTINUE( 0x10000, 0x78000 ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "bpsm.u76", 0x000000, 0x200000, CRC(a243a5ba) SHA1(3a32d685e53e0b75977f7acb187cf414a50c7f8b) ) - ROM_LOAD( "bpsm.u77", 0x200000, 0x200000, CRC(5179a4ac) SHA1(ceb8d3d889aae885debb2c9cf2263f60be3f1212) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bpsm.u53", 0x000000, 0x200000, CRC(b9b15f83) SHA1(8c574c97d38fb9e2889648c8d677b171e80a4229) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bpsm.u54", 0x000000, 0x200000, CRC(8f00679d) SHA1(4ea412f8ecdb9fd46f2d1378809919d1a62fcc2b) ) - - ROM_REGION( (5*0x200000)*2, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - /* 4 bit part */ - ROM_LOAD( "bpsm.u57", 0x000000, 0x200000, CRC(86be7b63) SHA1(6b7d3d41fb1e4045c765b3cc98304464d91e6e3d) ) - ROM_LOAD( "bpsm.u58", 0x200000, 0x200000, CRC(e0bba83b) SHA1(9e1434814efd9321b2e5210b995d2fe66cca37dd) ) - ROM_LOAD( "bpsm.u62", 0x400000, 0x200000, CRC(a1e3bfac) SHA1(4528887d57e519df8dd60b2392db4c175c57b239) ) - ROM_LOAD( "bpsm.u61", 0x600000, 0x200000, CRC(6a014b52) SHA1(107c687479b59c455fc514cd61d290853c95ad9a) ) - ROM_LOAD( "bpsm.u60", 0x800000, 0x200000, CRC(992468c0) SHA1(3c66cc08313a9a326badc44f53a98cdfe0643da4) ) - /* 2 bit part */ - ROM_LOAD( "bpsm.u65", 0xa00000, 0x200000, CRC(f60fb7b5) SHA1(72cb8908cd687a330e14657664cd35037a52c39e) ) - ROM_LOAD( "bpsm.u64", 0xc00000, 0x200000, CRC(6559d31c) SHA1(bf688123a4beff625652cc1844bf0dc192f5c90f) ) - ROM_LOAD( "bpsm.u63", 0xe00000, 0x100000, CRC(d57a56b4) SHA1(e039b336887b66eba4e0630a3cb04cbd8fe14073) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0xe00000, 0x100000 ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #0 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bpsm.u48", 0x040000, 0x200000, CRC(498e4ed1) SHA1(28d45a41702d9e5af4e214c1800b2e513ec84d51) ) // 16 x $20000 - - ROM_REGION( 0x240000, REGION_SOUND2, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bpsm.u47", 0x040000, 0x080000, CRC(0f2901b9) SHA1(ebd3e9e39e8d2bc91688dac19b99548a28b4733c) ) // 4 x $20000 - ROM_RELOAD( 0x0c0000, 0x080000 ) - ROM_RELOAD( 0x140000, 0x080000 ) - ROM_RELOAD( 0x1c0000, 0x080000 ) -ROM_END - -ROM_START( sailormo ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "smprg.u45", 0x000000, 0x080000, CRC(234f1152) SHA1(8fc6d4a8995d550862d328011d3357c09334f0fa) ) - ROM_LOAD16_WORD_SWAP( "bpsm.u46", 0x200000, 0x200000, CRC(32084e80) SHA1(0ac503190d95009620b5ad7e7e0e63324f6fa4eb) ) - - ROM_REGION( 0x88000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "bpsm945a.u9", 0x00000, 0x08000, CRC(438de548) SHA1(81a0ca1cd662e2017aa980da162d39cfd0a19f14) ) - ROM_CONTINUE( 0x10000, 0x78000 ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites (do not dispose) */ - ROM_LOAD( "bpsm.u76", 0x000000, 0x200000, CRC(a243a5ba) SHA1(3a32d685e53e0b75977f7acb187cf414a50c7f8b) ) - ROM_LOAD( "bpsm.u77", 0x200000, 0x200000, CRC(5179a4ac) SHA1(ceb8d3d889aae885debb2c9cf2263f60be3f1212) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "bpsm.u53", 0x000000, 0x200000, CRC(b9b15f83) SHA1(8c574c97d38fb9e2889648c8d677b171e80a4229) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 1 */ - ROM_LOAD( "bpsm.u54", 0x000000, 0x200000, CRC(8f00679d) SHA1(4ea412f8ecdb9fd46f2d1378809919d1a62fcc2b) ) - - ROM_REGION( (5*0x200000)*2, REGION_GFX4, ROMREGION_DISPOSE ) /* Layer 2 */ - /* 4 bit part */ - ROM_LOAD( "bpsm.u57", 0x000000, 0x200000, CRC(86be7b63) SHA1(6b7d3d41fb1e4045c765b3cc98304464d91e6e3d) ) - ROM_LOAD( "bpsm.u58", 0x200000, 0x200000, CRC(e0bba83b) SHA1(9e1434814efd9321b2e5210b995d2fe66cca37dd) ) - ROM_LOAD( "bpsm.u62", 0x400000, 0x200000, CRC(a1e3bfac) SHA1(4528887d57e519df8dd60b2392db4c175c57b239) ) - ROM_LOAD( "bpsm.u61", 0x600000, 0x200000, CRC(6a014b52) SHA1(107c687479b59c455fc514cd61d290853c95ad9a) ) - ROM_LOAD( "bpsm.u60", 0x800000, 0x200000, CRC(992468c0) SHA1(3c66cc08313a9a326badc44f53a98cdfe0643da4) ) - /* 2 bit part */ - ROM_LOAD( "bpsm.u65", 0xa00000, 0x200000, CRC(f60fb7b5) SHA1(72cb8908cd687a330e14657664cd35037a52c39e) ) - ROM_LOAD( "bpsm.u64", 0xc00000, 0x200000, CRC(6559d31c) SHA1(bf688123a4beff625652cc1844bf0dc192f5c90f) ) - ROM_LOAD( "bpsm.u63", 0xe00000, 0x100000, CRC(d57a56b4) SHA1(e039b336887b66eba4e0630a3cb04cbd8fe14073) ) // FIRST AND SECOND HALF IDENTICAL - ROM_CONTINUE( 0xe00000, 0x100000 ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 #0 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bpsm.u48", 0x040000, 0x200000, CRC(498e4ed1) SHA1(28d45a41702d9e5af4e214c1800b2e513ec84d51) ) // 16 x $20000 - - ROM_REGION( 0x240000, REGION_SOUND2, 0 ) /* OKIM6295 #1 Samples */ - /* Leave the 0x40000 bytes addressable by the chip empty */ - ROM_LOAD( "bpsm.u47", 0x040000, 0x080000, CRC(0f2901b9) SHA1(ebd3e9e39e8d2bc91688dac19b99548a28b4733c) ) // 4 x $20000 - ROM_RELOAD( 0x0c0000, 0x080000 ) - ROM_RELOAD( 0x140000, 0x080000 ) - ROM_RELOAD( 0x1c0000, 0x080000 ) -ROM_END - - -/*************************************************************************** - - Puzzle Uo Poko -Board: CV02 -OSC: 28.0, 16.0, 16.9 MHz - -***************************************************************************/ - -ROM_START( uopoko ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u26.int", 0x000000, 0x080000, CRC(b445c9ac) SHA1(4dda1c6e19de629ea4d9061560c32a9f0deabd53) ) - ROM_LOAD16_BYTE( "u25.int", 0x000001, 0x080000, CRC(a1258482) SHA1(7f4adc4a6d069032aaf3d93eb60fde16b59483f8) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "u33.bin", 0x000000, 0x400000, CRC(5d142ad2) SHA1(f26abcf7a625a322b83df44fbd6e852bfb03663c) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u49.bin", 0x000000, 0x400000, CRC(12fb11bb) SHA1(953df1b16b5c9a6c3eb2fdebec4669a879270e73) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u4.bin", 0x000000, 0x200000, CRC(a2d0d755) SHA1(f8493ef7f367f3dc2a229ba785ac67bc5c2c54c0) ) -ROM_END - -ROM_START( uopokoj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u26.bin", 0x000000, 0x080000, CRC(e7eec050) SHA1(cf3a77741029f96dbbec5ca7217a1723e4233cff) ) - ROM_LOAD16_BYTE( "u25.bin", 0x000001, 0x080000, CRC(68cb6211) SHA1(a6db0bc2e3e54b6992a44b7d52395917e66db49b) ) - - ROM_REGION( 0x400000 * 2, REGION_GFX1, 0 ) /* Sprites: * 2 , do not dispose */ - ROM_LOAD( "u33.bin", 0x000000, 0x400000, CRC(5d142ad2) SHA1(f26abcf7a625a322b83df44fbd6e852bfb03663c) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 0 */ - ROM_LOAD( "u49.bin", 0x000000, 0x400000, CRC(12fb11bb) SHA1(953df1b16b5c9a6c3eb2fdebec4669a879270e73) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u4.bin", 0x000000, 0x200000, CRC(a2d0d755) SHA1(f8493ef7f367f3dc2a229ba785ac67bc5c2c54c0) ) -ROM_END - - - - - - -/*************************************************************************** - - - Drivers Init Routines - Rom decryption/unpacking, global vars etc. - - -***************************************************************************/ - -/* Tiles are 6 bit, 4 bits stored in one rom, 2 bits in the other. - Expand the 2 bit part into a 4 bit layout, so we can decode it */ -void sailormn_unpack_tiles( const int region ) -{ - unsigned char *src = memory_region(region) + (memory_region_length(region)/4)*3 - 1; - unsigned char *dst = memory_region(region) + (memory_region_length(region)/4)*4 - 2; - - while(src <= dst) - { - unsigned char data = src[0]; - - dst[0] = ((data & 0x03) << 4) + ((data & 0x0c) >> 2); - dst[1] = ((data & 0x30) >> 0) + ((data & 0xc0) >> 6); - - src -= 1; - dst -= 2; - } -} - -DRIVER_INIT( cave ) -{ - cave_default_eeprom = 0; - cave_default_eeprom_length = 0; - cave_region_byte = -1; - - cave_spritetype = 0; // Normal sprites - cave_kludge = 0; - time_vblank_irq = 100; - - irq_level = 1; -} - -DRIVER_INIT( agallet ) -{ - init_cave(machine); - - sailormn_unpack_tiles( REGION_GFX4 ); - - cave_default_eeprom = cave_default_eeprom_type7; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type7); - cave_region_byte = 0x1f; - - unpack_sprites(); - -// Speed Hack - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xb80000, 0xb80001, 0, 0, agallet_irq_cause_r); -} - -DRIVER_INIT( dfeveron ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type1; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type1); - cave_region_byte = -1; - - unpack_sprites(); - cave_kludge = 2; -} - -DRIVER_INIT( feversos ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type1feversos; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type1feversos); - cave_region_byte = -1; - - unpack_sprites(); - cave_kludge = 2; -} - -DRIVER_INIT( ddonpach ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type2; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type2); - cave_region_byte = -1; - - ddonpach_unpack_sprites(); - cave_spritetype = 1; // "different" sprites (no zooming?) - time_vblank_irq = 90; -} - -DRIVER_INIT( donpachi ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type2; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type2); - cave_region_byte = -1; - - ddonpach_unpack_sprites(); - cave_spritetype = 1; // "different" sprites (no zooming?) - time_vblank_irq = 90; - - NMK112_set_paged_table(0, 0); // chip #0 (music) is not paged -} - -DRIVER_INIT( esprade ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type2; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type2); - cave_region_byte = -1; - - esprade_unpack_sprites(); - time_vblank_irq = 2000; /**/ - -#if 0 //ROM PATCH - { - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - rom[0x118A/2] = 0x4e71; //palette fix 118A: 5548 SUBQ.W #2,A0 --> NOP - } -#endif -} - -DRIVER_INIT( gaia ) -{ - init_cave(machine); - - /* No EEPROM */ - - unpack_sprites(); - cave_spritetype = 2; // Normal sprites with different position handling - time_vblank_irq = 2000; /**/ -} - -DRIVER_INIT( guwange ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type1; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type1); - cave_region_byte = -1; - - esprade_unpack_sprites(); - time_vblank_irq = 2000; /**/ -} - -DRIVER_INIT( hotdogst ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type4; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type4); - cave_region_byte = -1; - - unpack_sprites(); - cave_spritetype = 2; // Normal sprites with different position handling - time_vblank_irq = 2000; /**/ -} - -DRIVER_INIT( mazinger ) -{ - unsigned char *buffer; - UINT8 *src = memory_region(REGION_GFX1); - int len = memory_region_length(REGION_GFX1); - - init_cave(machine); - - /* decrypt sprites */ - buffer = malloc_or_die(len); - { - int i; - for (i = 0;i < len; i++) - buffer[i ^ 0xdf88] = src[BITSWAP24(i,23,22,21,20,19,9,7,3,15,4,17,14,18,2,16,5,11,8,6,13,1,10,12,0)]; - memcpy(src,buffer,len); - free(buffer); - } - - cave_default_eeprom = cave_default_eeprom_type5; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type5); - cave_region_byte = 0x05; - - unpack_sprites(); - cave_spritetype = 2; // Normal sprites with different position handling - cave_kludge = 3; - time_vblank_irq = 2100; - - /* setup extra ROM */ - memory_set_bankptr(1,memory_region(REGION_USER1)); -} - - -DRIVER_INIT( metmqstr ) -{ - init_cave(machine); - - unpack_sprites(); - cave_spritetype = 2; // Normal sprites with different position handling - cave_kludge = 3; - time_vblank_irq = 17376; -} - - -DRIVER_INIT( pwrins2j ) -{ - unsigned char *buffer; - UINT8 *src = memory_region(REGION_GFX1); - int len = memory_region_length(REGION_GFX1); - int i, j; - - init_cave(machine); - - buffer = malloc_or_die(len); - { - for(i=0; i> 4) | (src[i] << 4); - } - - memcpy(src,buffer,len); - free(buffer); - } - - unpack_sprites(); - cave_spritetype = 3; - cave_kludge = 4; - time_vblank_irq = 2000; /**/ - - -} - -DRIVER_INIT( pwrinst2 ) -{ - /* this patch fixes on of the moves, why is it needed? is the rom bad or is there another - problem? does the Japan set need it or not? */ - init_pwrins2j(machine); - -#if 1 //ROM PATCH - { - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - rom[0xD46C/2] = 0xD482; // kurara dash fix 0xd400 -> 0xd482 - } -#endif - -} - - -DRIVER_INIT( sailormn ) -{ - unsigned char *buffer; - UINT8 *src = memory_region(REGION_GFX1); - int len = memory_region_length(REGION_GFX1); - - init_cave(machine); - - /* decrypt sprites */ - buffer = malloc_or_die(len); - { - int i; - for (i = 0;i < len; i++) - buffer[i ^ 0x950c4] = src[BITSWAP24(i,23,22,21,20,15,10,12,6,11,1,13,3,16,17,2,5,14,7,18,8,4,19,9,0)]; - memcpy(src,buffer,len); - free(buffer); - } - - sailormn_unpack_tiles( REGION_GFX4 ); - - cave_default_eeprom = cave_default_eeprom_type6; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type6); - cave_region_byte = 0x11; - - unpack_sprites(); - cave_spritetype = 2; // Normal sprites with different position handling - cave_kludge = 1; - time_vblank_irq = 2000; -} - -DRIVER_INIT( uopoko ) -{ - init_cave(machine); - - cave_default_eeprom = cave_default_eeprom_type3; - cave_default_eeprom_length = sizeof(cave_default_eeprom_type4); - cave_region_byte = -1; - - unpack_sprites(); - cave_kludge = 2; - time_vblank_irq = 2000; /**/ -} - -DRIVER_INIT( korokoro ) -{ - init_cave(machine); - - irq_level = 2; - - unpack_sprites(); - time_vblank_irq = 2000; /**/ -} - -/*************************************************************************** - - - Game Drivers - - -***************************************************************************/ - -GAME( 1994, pwrinst2, 0, pwrinst2, metmqstr, pwrinst2, ROT0, "Atlus/Cave", "Power Instinct 2 (USA)" , 0 ) /* 94.04.08 */ -GAME( 1994, pwrins2j, pwrinst2, pwrinst2, metmqstr, pwrins2j, ROT0, "Atlus/Cave", "Gouketsuji Ichizoku 2 (Japan)" , 0 ) /* 94.04.08 */ -GAME( 1994, mazinger, 0, mazinger, mazinger, mazinger, ROT90, "Banpresto/Dynamic Pl. Toei Animation", "Mazinger Z" , 0 ) // region in eeprom -GAME( 1995, donpachi, 0, donpachi, cave, donpachi, ROT270, "Atlus/Cave", "DonPachi (US)" , 0 ) -GAME( 1995, donpacjp, donpachi, donpachi, cave, donpachi, ROT270, "Atlus/Cave", "DonPachi (Japan)" , 0 ) -GAME( 1995, donpackr, donpachi, donpachi, cave, donpachi, ROT270, "Atlus/Cave", "DonPachi (Korea)" , 0 ) -GAME( 1995, donpachk, donpachi, donpachi, cave, donpachi, ROT270, "Atlus/Cave", "DonPachi (Hong Kong)" , 0 ) -GAME( 1995, metmqstr, 0, metmqstr, metmqstr, metmqstr, ROT0, "Banpresto/Pandorabox", "Metamoqester" , 0 ) -GAME( 1995, nmaster, metmqstr, metmqstr, metmqstr, metmqstr, ROT0, "Banpresto/Pandorabox", "Oni - The Ninja Master (Japan)" , 0 ) -GAME( 1995, plegends, 0, pwrinst2, metmqstr, pwrins2j, ROT0, "Atlus/Cave", "Power Instinct Legends (USA)" , 0 ) /* 95.06.20 */ -GAME( 1995, plegendj, plegends, pwrinst2, metmqstr, pwrins2j, ROT0, "Atlus/Cave", "Gouketsuji Ichizoku Saikyou Densetsu (Japan)", 0 ) /* 95.06.20 */ -GAME( 1995, sailormn, 0, sailormn, sailormn, sailormn, ROT0, "Banpresto", "Pretty Soldier Sailor Moon (95/03/22B)" , 0 ) // region in eeprom -GAME( 1995, sailormo, sailormn, sailormn, sailormn, sailormn, ROT0, "Banpresto", "Pretty Soldier Sailor Moon (95/03/22)" , 0 ) // region in eeprom -GAME( 1996, agallet, 0, sailormn, sailormn, agallet, ROT270, "Banpresto / Gazelle", "Air Gallet" , 0 ) // board was taiwan, region in eeprom -GAME( 1996, hotdogst, 0, hotdogst, cave, hotdogst, ROT90, "Marble", "Hotdog Storm" , 0 ) -GAME( 1997, ddonpach, 0, ddonpach, cave, ddonpach, ROT270, "Atlus/Cave", "DoDonPachi (International)" , 0 ) -GAME( 1997, ddonpchj, ddonpach, ddonpach, cave, ddonpach, ROT270, "Atlus/Cave", "DoDonPachi (Japan)" , 0 ) -GAME( 1998, dfeveron, 0, dfeveron, cave, dfeveron, ROT270, "Cave (Nihon System license)", "Dangun Feveron (Japan)" , 0 ) -GAME( 1998, feversos, dfeveron, dfeveron, cave, feversos, ROT270, "Cave (Nihon System license)", "Fever SOS (International)" , 0 ) -GAME( 1998, esprade, 0, esprade, cave, esprade, ROT270, "Atlus/Cave", "ESP Ra.De. (International Ver 1998 4/22)", 0 ) -GAME( 1998, espradej, esprade, esprade, cave, esprade, ROT270, "Atlus/Cave", "ESP Ra.De. (Japan Ver 1998 4/21)" , 0 ) -GAME( 1998, espradeo, esprade, esprade, cave, esprade, ROT270, "Atlus/Cave", "ESP Ra.De. (Japan Ver 1998 4/14)" , 0 ) -GAME( 1998, uopoko, 0, uopoko, cave, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (International)" , 0 ) -GAME( 1998, uopokoj, uopoko, uopoko, cave, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (Japan)" , 0 ) -GAME( 1999, guwange, 0, guwange, guwange, guwange, ROT270, "Atlus/Cave", "Guwange (Japan)" , 0 ) -GAME( 1999, gaia, 0, gaia, gaia, gaia, ROT0, "Noise Factory", "Gaia Crusaders", GAME_IMPERFECT_SOUND ) // cuts out occasionally -GAME( 2001, theroes, 0, gaia, theroes, gaia, ROT0, "Primetek Investments", "Thunder Heroes", GAME_IMPERFECT_SOUND ) // cuts out occasionally - -GAME( 1999, korokoro, 0, korokoro, korokoro, korokoro, ROT0, "Takumi", "Koro Koro Quest (Japan)" , 0 ) diff --git a/src/drivers/ccastles.c b/src/drivers/ccastles.c deleted file mode 100644 index d1e7f84e4..000000000 --- a/src/drivers/ccastles.c +++ /dev/null @@ -1,667 +0,0 @@ -/*************************************************************************** - - Atari Crystal Castles hardware - - driver by Pat Lawrence - - Games supported: - * Crystal Castles (1983) [3 sets] - - Known issues: - * none at this time - -**************************************************************************** - - Horizontal sync chain: - - A J/K flip flop @ 8L counts the 1H line, and cascades into a - 4-bit binary counter @ 7M, which counts the 2H,4H,8H,16H lines. - This counter cascades into a 4-bit BCD decade counter @ 7N - which counts the 32H,64H,128H,HBLANK lines. The counter system - rolls over after counting to 320. - - Pixel clock = 5MHz - HBLANK ends at H = 0 - HBLANK begins at H = 256 - HSYNC begins at H = 304 - HSYNC ends at H = 320 - HTOTAL = 320 - - Vertical sync chain: - - The HBLANK signal clocks a 4-bit binary counter @ 7P, which counts - the 1V,2V,4V,8V lines. This counter cascades into a second 4-bit - binary counter @ 7R which counts the 16V,32V,64V,128V lines. The - counter system rolls over after counting to 256. - - VBLANK and VSYNC signals are controlled by a PROM at 8J. The - standard PROM maps as follows: - - VBLANK ends at V = 24 - VBLANK begins at V = 0 - VSYNC begins at V = 4 - VSYNC ends at V = 7 - VTOTAL = 256 - - Interrupts: - - /IRQ clocked by IRQCK signal from the PROM at 8J. The standard - PROM has a rising edge at V = 0,64,128,192. - -**************************************************************************** - - Crystal Castles memory map. - - Address A A A A A A A A A A A A A A A A R D D D D D D D D Function - 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0 / 7 6 5 4 3 2 1 0 - 5 4 3 2 1 0 W - ------------------------------------------------------------------------------- - 0000 X X X X X X X X X X X X X X X X W X X X X X X X X X Coordinate - 0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 W D D D D D D D D Y Coordinate - 0002 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 R/W D D D D Bit Mode - 0003-0BFF 0 0 0 0 A A A A A A A A A A A A R/W D D D D D D D D RAM (DRAM) - 0C00-7FFF 0 A A A A A A A A A A A A A A A R/W D D D D D D D D Screen RAM - 8000-8DFF 1 0 0 0 A A A A A A A A A A A A R/W D D D D D D D D RAM (STATIC) - 8E00-8EFF 1 0 0 0 1 1 1 0 A A A A A A A A R/W D D D D D D D D MOB BUF 2 - ------------------------------------------------------------------------------- - 8F00-8FFF 1 0 0 0 1 1 1 1 A A A A A A A A R/W D D D D D D D D MOB BUF 1 - 0 0 R/W D D D D D D D D MOB Picture - 0 1 R/W D D D D D D D D MOB Vertical - 1 0 R/W D D D D D D D D MOB Priority - 1 1 R/W D D D D D D D D MOB Horizontal - ------------------------------------------------------------------------------- - 9000-90FF 1 0 0 1 0 0 X X A A A A A A A A R/W D D D D D D D D NOVRAM - 9400-9401 1 0 0 1 0 1 0 X X X X X X X 0 A R TRAK-BALL 1 - 9402-9403 1 0 0 1 0 1 0 X X X X X X X 1 A R TRAK-BALL 2 - 9500-9501 1 0 0 1 0 1 0 X X X X X X X X A R TRAK-BALL 1 mirror - 9600 1 0 0 1 0 1 1 X X X X X X X X X R IN0 - R D COIN R - R D COIN L - R D COIN AUX - R D SLAM - R D SELF TEST - R D VBLANK - R D JMP1 - R D JMP2 - ------------------------------------------------------------------------------- - 9800-980F 1 0 0 1 1 0 0 X X X X X A A A A R/W D D D D D D D D CI/O 0 - 9A00-9A0F 1 0 0 1 1 0 1 X X X X X A A A A R/W D D D D D D D D CI/O 1 - 9A08 D D D Option SW - D SPARE - D SPARE - D SPARE - 9C00 1 0 0 1 1 1 0 0 0 X X X X X X X W RECALL - ------------------------------------------------------------------------------- - 9C80 1 0 0 1 1 1 0 0 1 X X X X X X X W D D D D D D D D H Scr Ctr Load - 9D00 1 0 0 1 1 1 0 1 0 X X X X X X X W D D D D D D D D V Scr Ctr Load - 9D80 1 0 0 1 1 1 0 1 1 X X X X X X X W Int. Acknowledge - 9E00 1 0 0 1 1 1 1 0 0 X X X X X X X W WDOG - 1 0 0 1 1 1 1 0 1 X X X X A A A W D OUT0 - 9E80 0 0 0 W D Trak Ball Light P1 - 9E81 0 0 1 W D Trak Ball Light P2 - 9E82 0 1 0 W D Store Low - 9E83 0 1 1 W D Store High - 9E84 1 0 0 W D Spare - 9E85 1 0 1 W D Coin Counter R - 9E86 1 1 0 W D Coin Counter L - 9E87 1 1 1 W D BANK0-BANK1 - 1 0 0 1 1 1 1 1 0 X X X X A A A W D OUT1 - 9F00 0 0 0 W D ^AX - 9F01 0 0 1 W D ^AY - 9F02 0 1 0 W D ^XINC - 9F03 0 1 1 W D ^YINC - 9F04 1 0 0 W D PLAYER2 (flip screen) - 9F05 1 0 1 W D ^SIRE - 9F06 1 1 0 W D BOTHRAM - 9F07 1 1 1 W D BUF1/^BUF2 (sprite bank) - 9F80-9FBF 1 0 0 1 1 1 1 1 1 X A A A A A A W D D D D D D D D COLORAM - A000-FFFF 1 A A A A A A A A A A A A A A A R D D D D D D D D Program ROM - -***************************************************************************/ - -#include "driver.h" -#include "sound/pokey.h" -#include "ccastles.h" - - -#define MASTER_CLOCK (10000000) - -#define PIXEL_CLOCK (MASTER_CLOCK/2) -#define HTOTAL (320) -#define VTOTAL (256) - - - -/************************************* - * - * Globals - * - *************************************/ - -static const UINT8 *syncprom; -static mame_timer *irq_timer; - -static UINT8 irq_state; -static UINT8 *nvram_stage; -static UINT8 nvram_store[2]; - -int ccastles_vblank_start; -int ccastles_vblank_end; - - - -/************************************* - * - * VBLANK and IRQ generation - * - *************************************/ - -INLINE void schedule_next_irq(int curscanline) -{ - /* scan for a rising edge on the IRQCK signal */ - for (curscanline++; ; curscanline = (curscanline + 1) & 0xff) - if ((syncprom[(curscanline - 1) & 0xff] & 8) == 0 && (syncprom[curscanline] & 8) != 0) - break; - - /* next one at the start of this scanline */ - mame_timer_adjust(irq_timer, video_screen_get_time_until_pos(0, curscanline, 0), curscanline, time_zero); -} - - -static void clock_irq(int param) -{ - /* assert the IRQ if not already asserted */ - if (!irq_state) - { - cpunum_set_input_line(0, 0, ASSERT_LINE); - irq_state = 1; - } - - /* force an update now */ - video_screen_update_partial(0, video_screen_get_vpos(0)); - - /* find the next edge */ - schedule_next_irq(param); -} - - -static UINT32 get_vblank(void *param) -{ - int scanline = video_screen_get_vpos(0); - return syncprom[scanline & 0xff] & 1; -} - - - -/************************************* - * - * Machine setup - * - *************************************/ - -static MACHINE_START( ccastles ) -{ - rectangle visarea; - - /* initialize globals */ - syncprom = memory_region(REGION_PROMS) + 0x000; - - /* find the start of VBLANK in the SYNC PROM */ - for (ccastles_vblank_start = 0; ccastles_vblank_start < 256; ccastles_vblank_start++) - if ((syncprom[(ccastles_vblank_start - 1) & 0xff] & 1) == 0 && (syncprom[ccastles_vblank_start] & 1) != 0) - break; - if (ccastles_vblank_start == 0) - ccastles_vblank_start = 256; - - /* find the end of VBLANK in the SYNC PROM */ - for (ccastles_vblank_end = 0; ccastles_vblank_end < 256; ccastles_vblank_end++) - if ((syncprom[(ccastles_vblank_end - 1) & 0xff] & 1) != 0 && (syncprom[ccastles_vblank_end] & 1) == 0) - break; - - /* can't handle the wrapping case */ - assert(ccastles_vblank_end < ccastles_vblank_start); - - /* reconfigure the visible area to match */ - visarea.min_x = 0; - visarea.max_x = 255; - visarea.min_y = ccastles_vblank_end; - visarea.max_y = ccastles_vblank_start - 1; - video_screen_configure(0, 320, 256, &visarea, (float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL); - - /* configure the ROM banking */ - memory_configure_bank(1, 0, 2, memory_region(REGION_CPU1) + 0xa000, 0x6000); - - /* create a timer for IRQs and set up the first callback */ - irq_timer = timer_alloc(clock_irq); - irq_state = 0; - schedule_next_irq(0); - - /* allocate backing memory for the NVRAM */ - generic_nvram = auto_malloc(generic_nvram_size); - - /* setup for save states */ - state_save_register_global(irq_state); - state_save_register_global_array(nvram_store); - state_save_register_global_pointer(generic_nvram, generic_nvram_size); - - return 0; -} - - -static MACHINE_RESET( ccastles ) -{ - cpunum_set_input_line(0, 0, CLEAR_LINE); - irq_state = 0; -} - - - -/************************************* - * - * Output ports - * - *************************************/ - -static WRITE8_HANDLER( irq_ack_w ) -{ - if (irq_state) - { - cpunum_set_input_line(0, 0, CLEAR_LINE); - irq_state = 0; - } -} - - -static WRITE8_HANDLER( led_w ) -{ - set_led_status(offset, ~data & 1); -} - - -static WRITE8_HANDLER( ccounter_w ) -{ - coin_counter_w(offset, data & 1); -} - - -static WRITE8_HANDLER( bankswitch_w ) -{ - memory_set_bank(1, data & 1); -} - - -static READ8_HANDLER( leta_r ) -{ - return readinputport(2 + offset); -} - - - -/************************************* - * - * NVRAM handling - * - *************************************/ - -static NVRAM_HANDLER( ccastles ) -{ - if (read_or_write) - { - /* on power down, the EAROM is implicitly stored */ - memcpy(generic_nvram, nvram_stage, generic_nvram_size); - mame_fwrite(file, generic_nvram, generic_nvram_size); - } - else if (file) - mame_fread(file, generic_nvram, generic_nvram_size); - else - memset(generic_nvram, 0, generic_nvram_size); -} - - -static WRITE8_HANDLER( nvram_recall_w ) -{ - memcpy(nvram_stage, generic_nvram, generic_nvram_size); -} - - -static WRITE8_HANDLER( nvram_store_w ) -{ - nvram_store[offset] = data & 1; - if (!nvram_store[0] && nvram_store[1]) - memcpy(generic_nvram, nvram_stage, generic_nvram_size); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0001) AM_WRITE(ccastles_bitmode_addr_w) - AM_RANGE(0x0002, 0x0002) AM_READWRITE(ccastles_bitmode_r, ccastles_bitmode_w) - AM_RANGE(0x0000, 0x7fff) AM_READWRITE(MRA8_RAM, ccastles_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0x8e00, 0x8fff) AM_BASE(&spriteram) - AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_RAM AM_BASE(&nvram_stage) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x01fc) AM_READ(leta_r) - AM_RANGE(0x9600, 0x97ff) AM_READ(input_port_0_r) - AM_RANGE(0x9800, 0x980f) AM_MIRROR(0x01f0) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x9a00, 0x9a0f) AM_MIRROR(0x01f0) AM_READWRITE(pokey2_r, pokey2_w) - AM_RANGE(0x9c00, 0x9c7f) AM_WRITE(nvram_recall_w) - AM_RANGE(0x9c80, 0x9cff) AM_WRITE(ccastles_hscroll_w) - AM_RANGE(0x9d00, 0x9d7f) AM_WRITE(ccastles_vscroll_w) - AM_RANGE(0x9d80, 0x9dff) AM_WRITE(irq_ack_w) - AM_RANGE(0x9e00, 0x9e7f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x9e80, 0x9e81) AM_MIRROR(0x0078) AM_WRITE(led_w) - AM_RANGE(0x9e82, 0x9e83) AM_MIRROR(0x0078) AM_WRITE(nvram_store_w) - AM_RANGE(0x9e85, 0x9e86) AM_MIRROR(0x0078) AM_WRITE(ccounter_w) - AM_RANGE(0x9e87, 0x9e87) AM_MIRROR(0x0078) AM_WRITE(bankswitch_w) - AM_RANGE(0x9f00, 0x9f07) AM_MIRROR(0x0078) AM_WRITE(ccastles_video_control_w) - AM_RANGE(0x9f80, 0x9fbf) AM_MIRROR(0x0040) AM_WRITE(ccastles_paletteram_w) - AM_RANGE(0xa000, 0xdfff) AM_ROMBANK(1) - AM_RANGE(0xe000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( ccastles ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, 0) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* 1p Jump, non-cocktail start1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* 2p Jump, non-cocktail start2 */ - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* cocktail only */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) /* cocktail only */ - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Cocktail ) ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("LETA0") - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(30) PORT_REVERSE - - PORT_START_TAG("LETA1") - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(30) - - PORT_START_TAG("LETA2") - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_Y ) PORT_COCKTAIL PORT_SENSITIVITY(10) PORT_KEYDELTA(30) PORT_REVERSE - - PORT_START_TAG("LETA3") - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_X ) PORT_COCKTAIL PORT_SENSITIVITY(10) PORT_KEYDELTA(30) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -/* technically, this is 4bpp graphics, but the top bit is thrown away during - processing to make room for the priority bit in the sprite buffers */ -static const gfx_layout ccastles_spritelayout = -{ - 8,16, - RGN_FRAC(1,2), - 3, - { 4, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 32*8 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &ccastles_spritelayout, 0, 2 }, - { -1 } -}; - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct POKEYinterface pokey_interface = -{ - { 0 }, - input_port_1_r -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( ccastles ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, MASTER_CLOCK/8) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_MACHINE_START(ccastles) - MDRV_MACHINE_RESET(ccastles) - MDRV_NVRAM_HANDLER(ccastles) - MDRV_WATCHDOG_VBLANK_INIT(8) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - - MDRV_SCREEN_ADD("main", 0) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE((float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL) - MDRV_SCREEN_SIZE(HTOTAL, VTOTAL) - MDRV_SCREEN_VBLANK_TIME(0) /* VBLANK is handled manually */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 231) - - MDRV_VIDEO_START(ccastles) - MDRV_VIDEO_UPDATE(ccastles) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(POKEY, MASTER_CLOCK/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(POKEY, MASTER_CLOCK/8) - MDRV_SOUND_CONFIG(pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( ccastles ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-403.1k", 0x0a000, 0x2000, CRC(81471ae5) SHA1(8ec13b48119ecf8fe85207403c0a0de5240cded4) ) - ROM_LOAD( "136022-404.1l", 0x0c000, 0x2000, CRC(820daf29) SHA1(a2cff00e9ddce201344692b75038431e4241fedd) ) - ROM_LOAD( "136022-405.1n", 0x0e000, 0x2000, CRC(4befc296) SHA1(2e789a32903808014e9d5f3021d7eff57c3e2212) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastleg ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-303.1k", 0x0a000, 0x2000, CRC(10e39fce) SHA1(5247f52e14ccf39f0ec699a39c8ebe35e61e07d2) ) - ROM_LOAD( "136022-304.1l", 0x0c000, 0x2000, CRC(74510f72) SHA1(d22550f308ff395d51869b52449bc0669a4e35e4) ) - ROM_LOAD( "136022-112.1n", 0x0e000, 0x2000, CRC(69b8d906) SHA1(b71251a4402eedf97b6ed5798403823739991d3e) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastlep ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-303.1k", 0x0a000, 0x2000, CRC(10e39fce) SHA1(5247f52e14ccf39f0ec699a39c8ebe35e61e07d2) ) - ROM_LOAD( "136022-304.1l", 0x0c000, 0x2000, CRC(74510f72) SHA1(d22550f308ff395d51869b52449bc0669a4e35e4) ) - ROM_LOAD( "136022-113.1n", 0x0e000, 0x2000, CRC(b833936e) SHA1(c063989107acb82ac963342d6328c7e459160d2a) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastlef ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-303.1k", 0x0a000, 0x2000, CRC(10e39fce) SHA1(5247f52e14ccf39f0ec699a39c8ebe35e61e07d2) ) - ROM_LOAD( "136022-304.1l", 0x0c000, 0x2000, CRC(74510f72) SHA1(d22550f308ff395d51869b52449bc0669a4e35e4) ) - ROM_LOAD( "136022-114.1n", 0x0e000, 0x2000, CRC(8585b4d1) SHA1(e2054dba64cc210a0790fe32a98d8c35c1389bf5) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastle3 ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-303.1k", 0x0a000, 0x2000, CRC(10e39fce) SHA1(5247f52e14ccf39f0ec699a39c8ebe35e61e07d2) ) - ROM_LOAD( "136022-304.1l", 0x0c000, 0x2000, CRC(74510f72) SHA1(d22550f308ff395d51869b52449bc0669a4e35e4) ) - ROM_LOAD( "136022-305.1n", 0x0e000, 0x2000, CRC(9418cf8a) SHA1(1f835db94270e4a16e721b2ac355fb7e7c052285) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastle2 ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-203.1k", 0x0a000, 0x2000, CRC(348a96f0) SHA1(76de7bf6a01ccb15a4fe7333c1209f623a2e0d1b) ) - ROM_LOAD( "136022-204.1l", 0x0c000, 0x2000, CRC(d48d8c1f) SHA1(8744182a3e2096419de63e341feb77dd8a8bcb34) ) - ROM_LOAD( "136022-205.1n", 0x0e000, 0x2000, CRC(0e4883cc) SHA1(a96abbf654e087409a90c1686d9dd553bd08c14e) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - -ROM_START( ccastle1 ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) - ROM_LOAD( "136022-103.1k", 0x0a000, 0x2000, CRC(9d10e314) SHA1(3474ae0f0617c1dc9aaa02ca2a912a72d57eba73) ) - ROM_LOAD( "136022-104.1l", 0x0c000, 0x2000, CRC(fe2647a4) SHA1(532b236043449b35bd444fff63a7e083d0e2d8c8) ) - ROM_LOAD( "136022-105.1n", 0x0e000, 0x2000, CRC(5a13af07) SHA1(d4314a4344aac4a794d9014943591fee2e9bf13b) ) - ROM_LOAD( "136022-102.1h", 0x10000, 0x2000, CRC(f6ccfbd4) SHA1(69c3da2cbefc5e03a77357e817e3015da5d8334a) ) - ROM_LOAD( "136022-101.1f", 0x12000, 0x2000, CRC(e2e17236) SHA1(81fa95b4d9beacb06d6b4afdf346d94117396557) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136022-106.8d", 0x0000, 0x2000, CRC(9d1d89fc) SHA1(01c279edee322cc28f34506c312e4a9e3363b1be) ) - ROM_LOAD( "136022-107.8b", 0x2000, 0x2000, CRC(39960b7d) SHA1(82bdf764ac23e72598883283c5e957169387abd4) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "82s129-136022-108.7k", 0x0000, 0x0100, CRC(6ed31e3b) SHA1(c3f3e4e7f313ecfd101cc52dfc44bd6b51a2ac88) ) - ROM_LOAD( "82s129-136022-109.6l", 0x0100, 0x0100, CRC(b3515f1a) SHA1(c1bf077242481ef2f958580602b8113532b58612) ) - ROM_LOAD( "82s129-136022-110.11l", 0x0200, 0x0100, CRC(068bdc7e) SHA1(ae155918fdafd14299bc448b43eed8ad9c1ef5ef) ) - ROM_LOAD( "82s129-136022-111.10k", 0x0300, 0x0100, CRC(c29c18d9) SHA1(278bf61a290ae72ddaae2bafb4ab6739d3fb6238) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, ccastles, 0, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 4)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastleg, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 3, German)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastlep, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 3, Spanish)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastlef, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 3, French)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastle3, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 3)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastle2, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 2)", GAME_SUPPORTS_SAVE ) -GAME( 1983, ccastle1, ccastles, ccastles, ccastles, 0, ROT0, "Atari", "Crystal Castles (version 1)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/cchasm.c b/src/drivers/cchasm.c deleted file mode 100644 index 26a850dbd..000000000 --- a/src/drivers/cchasm.c +++ /dev/null @@ -1,294 +0,0 @@ -/*************************************************************************** - - Cinematronics Cosmic Chasm hardware - - driver by Mathis Rosenhauer - - Games supported: - * Cosmic Chasm - - Known bugs: - * none at this time - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/vector.h" -#include "machine/6840ptm.h" -#include "machine/z80ctc.h" -#include "cchasm.h" -#include "sound/custom.h" -#include "sound/ay8910.h" -#include "cpu/z80/z80daisy.h" - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x04000f) AM_READ(ptm6840_0_lsb_r) - AM_RANGE(0x060000, 0x060001) AM_READ(input_port_0_word_r) - AM_RANGE(0xf80000, 0xf800ff) AM_READ(cchasm_io_r) - AM_RANGE(0xffb000, 0xffffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x040000, 0x04000f) AM_WRITE(ptm6840_0_lsb_w) - AM_RANGE(0x050000, 0x050001) AM_WRITE(cchasm_refresh_control_w) - AM_RANGE(0x060000, 0x060001) AM_WRITE(cchasm_led_w) - AM_RANGE(0x070000, 0x070001) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0xf80000, 0xf800ff) AM_WRITE(cchasm_io_w) - AM_RANGE(0xffb000, 0xffffff) AM_WRITE(MWA16_RAM) AM_BASE(&cchasm_ram) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM) - AM_RANGE(0x5000, 0x53ff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0x6fff) AM_READ(cchasm_snd_io_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5000, 0x53ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(cchasm_snd_io_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_READ(z80ctc_0_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_WRITE(z80ctc_0_w) -ADDRESS_MAP_END - -static void cchasm_6840_irq(int state) -{ - cpunum_set_input_line(0, 4, state?ASSERT_LINE:CLEAR_LINE); -} -static const ptm6840_interface cchasm_6840_intf = -{ - 8000000/10, - 0,8000000/10,0, - 0, 0, 0, - cchasm_6840_irq -}; - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( cchasm ) - PORT_START /* DSW */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "40000" ) - PORT_DIPSETTING( 0x04, "60000" ) - PORT_DIPSETTING( 0x02, "80000" ) - PORT_DIPSETTING( 0x00, "100000" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Once" ) - PORT_DIPSETTING( 0x10, "Every" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN1 */ - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN3 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test 1") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Test 2, not used in cchasm */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Test 3, not used in cchasm */ -INPUT_PORTS_END - -MACHINE_START( cchasm ) -{ - ptm6840_config(0, &cchasm_6840_intf ); - return 0; -} - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct CustomSound_interface custom_interface = -{ - cchasm_sh_start -}; - - - -/************************************* - * - * CPU config - * - *************************************/ - -static struct z80_irq_daisy_chain daisy_chain[] = -{ - { z80ctc_reset, z80ctc_irq_state, z80ctc_irq_ack, z80ctc_irq_reti, 0 }, /* CTC number 0 */ - { 0,0,0,0,-1 } /* end mark */ -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( cchasm ) - - MDRV_MACHINE_START(cchasm) - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,8000000) /* 8 MHz (from schematics) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - - MDRV_CPU_ADD(Z80,3584229) /* 3.58 MHz (from schematics) */ - MDRV_CPU_CONFIG(daisy_chain) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(40) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(cchasm) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1818182) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(AY8910, 1818182) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( cchasm ) - ROM_REGION( 0x010000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "chasm.u4", 0x000000, 0x001000, CRC(19244f25) SHA1(79deaae82da8d1b16d05bbac43ba900c4b1d9f26) ) - ROM_LOAD16_BYTE( "chasm.u12", 0x000001, 0x001000, CRC(5d702c7d) SHA1(cbdceed45a1112594fbcbeb6976edc932b32d518) ) - ROM_LOAD16_BYTE( "chasm.u8", 0x002000, 0x001000, CRC(56a7ce8a) SHA1(14c790dcddb78d3b81b5a65fe3529e42c9708273) ) - ROM_LOAD16_BYTE( "chasm.u16", 0x002001, 0x001000, CRC(2e192db0) SHA1(1a8ff983295ab52b5099c089b3142cdc56d28aee) ) - ROM_LOAD16_BYTE( "chasm.u3", 0x004000, 0x001000, CRC(9c71c600) SHA1(900526eaff7483fc478ebfb3f14796ff8fd1d01f) ) - ROM_LOAD16_BYTE( "chasm.u11", 0x004001, 0x001000, CRC(a4eb59a5) SHA1(a7bb3ca8f1f000f224def6342ca9d1eabcb210e6) ) - ROM_LOAD16_BYTE( "chasm.u7", 0x006000, 0x001000, CRC(8308dd6e) SHA1(82ad7c27e9a41af5280ecd975d3530ff2ed27ad4) ) - ROM_LOAD16_BYTE( "chasm.u15", 0x006001, 0x001000, CRC(9d3abf97) SHA1(476d684182d92d66263df82e1b5c4ff24b6814e8) ) - ROM_LOAD16_BYTE( "u2", 0x008000, 0x001000, CRC(4e076ae7) SHA1(a72f5425b256785b810ee5f23917b44f778cfcd3) ) - ROM_LOAD16_BYTE( "u10", 0x008001, 0x001000, CRC(cc9e19ca) SHA1(6c46ec265c2cc0683470ed1df978b96b577c5ca1) ) - ROM_LOAD16_BYTE( "chasm.u6", 0x00a000, 0x001000, CRC(a96525d2) SHA1(1c41bc3bf051cf1830182cbde6fba4e56db7e431) ) - ROM_LOAD16_BYTE( "chasm.u14", 0x00a001, 0x001000, CRC(8e426628) SHA1(2d70a7717b18cc892332b9d5d2de3ceba6c1481d) ) - ROM_LOAD16_BYTE( "u1", 0x00c000, 0x001000, CRC(88b71027) SHA1(49fa676d7838c643d642fbc70579ce29e76ba724) ) - ROM_LOAD16_BYTE( "chasm.u9", 0x00c001, 0x001000, CRC(d90c9773) SHA1(4033f0579f0782db2157f6cbece53b0d74e61d4f) ) - ROM_LOAD16_BYTE( "chasm.u5", 0x00e000, 0x001000, CRC(e4a58b7d) SHA1(0e5f948cd110804e6119fafb4e3fa5904dd1390f) ) - ROM_LOAD16_BYTE( "chasm.u13", 0x00e001, 0x001000, CRC(877e849c) SHA1(bdeb97fcb7488e7f0866dd651204c362d2ec9f4f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "2732.bin", 0x0000, 0x1000, CRC(715adc4a) SHA1(426be4f3334ef7f2e8eb4d533e64276c30812aa3) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal12l6.u76", 0x0000, 0x0034, CRC(a30e02b7) SHA1(572f6d3f03e559f12e3bd5e087d7680ac69e9182) ) - ROM_LOAD( "pal12l6.u77", 0x0100, 0x0034, CRC(458b9cdb) SHA1(a3bff56d805f6dc494d294f079c3580430acf317) ) -ROM_END - -ROM_START( cchasm1 ) - ROM_REGION( 0x010000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "chasm.u4", 0x000000, 0x001000, CRC(19244f25) SHA1(79deaae82da8d1b16d05bbac43ba900c4b1d9f26) ) - ROM_LOAD16_BYTE( "chasm.u12", 0x000001, 0x001000, CRC(5d702c7d) SHA1(cbdceed45a1112594fbcbeb6976edc932b32d518) ) - ROM_LOAD16_BYTE( "chasm.u8", 0x002000, 0x001000, CRC(56a7ce8a) SHA1(14c790dcddb78d3b81b5a65fe3529e42c9708273) ) - ROM_LOAD16_BYTE( "chasm.u16", 0x002001, 0x001000, CRC(2e192db0) SHA1(1a8ff983295ab52b5099c089b3142cdc56d28aee) ) - ROM_LOAD16_BYTE( "chasm.u3", 0x004000, 0x001000, CRC(9c71c600) SHA1(900526eaff7483fc478ebfb3f14796ff8fd1d01f) ) - ROM_LOAD16_BYTE( "chasm.u11", 0x004001, 0x001000, CRC(a4eb59a5) SHA1(a7bb3ca8f1f000f224def6342ca9d1eabcb210e6) ) - ROM_LOAD16_BYTE( "chasm.u7", 0x006000, 0x001000, CRC(8308dd6e) SHA1(82ad7c27e9a41af5280ecd975d3530ff2ed27ad4) ) - ROM_LOAD16_BYTE( "chasm.u15", 0x006001, 0x001000, CRC(9d3abf97) SHA1(476d684182d92d66263df82e1b5c4ff24b6814e8) ) - ROM_LOAD16_BYTE( "chasm.u2", 0x008000, 0x001000, CRC(008b26ef) SHA1(6758d77bf48f466b8692bf7c678a597792d8cfdb) ) - ROM_LOAD16_BYTE( "chasm.u10", 0x008001, 0x001000, CRC(c2c532a3) SHA1(d29d40d42a2f69de0b1e2ee6a32633468a94fd85) ) - ROM_LOAD16_BYTE( "chasm.u6", 0x00a000, 0x001000, CRC(a96525d2) SHA1(1c41bc3bf051cf1830182cbde6fba4e56db7e431) ) - ROM_LOAD16_BYTE( "chasm.u14", 0x00a001, 0x001000, CRC(8e426628) SHA1(2d70a7717b18cc892332b9d5d2de3ceba6c1481d) ) - ROM_LOAD16_BYTE( "chasm.u1", 0x00c000, 0x001000, CRC(e02293f8) SHA1(136757b3c9e0ebfde6c13c57ac52f5fdbf5fd65b) ) - ROM_LOAD16_BYTE( "chasm.u9", 0x00c001, 0x001000, CRC(d90c9773) SHA1(4033f0579f0782db2157f6cbece53b0d74e61d4f) ) - ROM_LOAD16_BYTE( "chasm.u5", 0x00e000, 0x001000, CRC(e4a58b7d) SHA1(0e5f948cd110804e6119fafb4e3fa5904dd1390f) ) - ROM_LOAD16_BYTE( "chasm.u13", 0x00e001, 0x001000, CRC(877e849c) SHA1(bdeb97fcb7488e7f0866dd651204c362d2ec9f4f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "2732.bin", 0x0000, 0x1000, CRC(715adc4a) SHA1(426be4f3334ef7f2e8eb4d533e64276c30812aa3) ) -ROM_END - - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, cchasm, 0, cchasm, cchasm, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 1)", 0 ) -GAME( 1983, cchasm1, cchasm, cchasm, cchasm, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 2)", 0 ) diff --git a/src/drivers/centiped.c b/src/drivers/centiped.c deleted file mode 100644 index 55d1f8b7e..000000000 --- a/src/drivers/centiped.c +++ /dev/null @@ -1,1691 +0,0 @@ -/*************************************************************************** - - Atari Centipede hardware - - Games supported: - * Centipede (5 sets) - * Warlords - * Millipede - * Bulls Eye Darts - - Centipede sync-prom added by HIGHWAYMAN. - The prom pcb location is:P4 and is 256x4 - (i need to update the dump, this one is read in 8bit-mode) - -Known roms (listed in the manual) that need to be dumped/verified: - -Centipede: - 136001-203.d1 <-- Are these the proper labels for the timed version??? - 136001-204.e1 - 136001-205.fh1 - 136001-206.j1 - - 136001-303.d1 <-- Revision 3 set for the above listed roms - 136001-304.e1 - 136001-305.fh1 - 136001-306.j1 - -Milipede: - 136013-109.5p - 136013-110.5r - -**************************************************************************** - - Main clock: XTAL = 12.096 MHz - 6502 Clock: XTAL/8 = 1.512 MHz (0.756 when accessing playfield RAM) - Horizontal video frequency: HSYNC = XTAL/256/3 = 15.75 kHz - Video frequency: VSYNC = HSYNC/263 ?? = 59.88593 Hz (not sure, could be /262) - VBlank duration: 1/VSYNC * (23/263) = 1460 us - - - Centipede Memory map and Dip Switches - ------------------------------------- - - Memory map for Centipede directly from the Atari schematics (1981). - - Address R/W D7 D6 D5 D4 D3 D2 D1 D0 Function - -------------------------------------------------------------------------------------- - 0000-03FF D D D D D D D D RAM - -------------------------------------------------------------------------------------- - 0400-07BF D D D D D D D D Playfield RAM - 07C0-07CF D D D D D D D D Motion Object Picture - 07D0-07DF D D D D D D D D Motion Object Vert. - 07E0-07EF D D D D D D D D Motion Object Horiz. - 07F0-07FF D D D D D D Motion Object Color - -------------------------------------------------------------------------------------- - 0800 R D D D D D D D D Option Switch 1 (0 = On) - 0801 R D D D D D D D D Option Switch 2 (0 = On) - -------------------------------------------------------------------------------------- - 0C00 R D D D D D Horizontal Mini-Track Ball tm Inputs - R D VBLANK (1 = VBlank) - R D Self-Test (0 = On) - R D Cocktail Cabinet (1 = Cocktail) - 0C01 R D D D R,C,L Coin Switches (0 = On) - R D SLAM (0 = On) - R D Player 2 Fire Switch (0 = On) - R D Player 1 Fire Switch (0 = On) - R D Player 2 Start Switch (0 = On) - R D Player 1 Start Switch (0 = On) - - 0C02 R D D D D D Vertical Mini-Track Ball tm Inputs - 0C03 R D D D D Player 1 Joystick (R,L,Down,Up) - R D D D D Player 2 Joystick (0 = On) - -------------------------------------------------------------------------------------- - 1000-100F R/W D D D D D D D D Custom Audio Chip - 1404 W D D D D Playfield Color RAM - 140C W D D D D Motion Object Color RAM - -------------------------------------------------------------------------------------- - 1600 W D D D D D D D D EA ROM Address & Data Latch - 1680 W D D D D EA ROM Control Latch - 1700 R D D D D D D D D EA ROM Read Data - -------------------------------------------------------------------------------------- - 1800 W IRQ Acknowledge - -------------------------------------------------------------------------------------- - 1C00 W D Left Coin Counter (1 = On) - 1C01 W D Center Coin Counter (1 = On) - 1C02 W D Right Coin Counter (1 = On) - 1C03 W D Player 1 Start LED (0 = On) - 1C04 W D Player 2 Start LED (0 = On) - 1C07 W D Track Ball Flip Control (0 = Player 1) - -------------------------------------------------------------------------------------- - 2000 W WATCHDOG - 2400 W Clear Mini-Track Ball Counters - -------------------------------------------------------------------------------------- - 2000-3FFF R Program ROM - -------------------------------------------------------------------------------------- - - -EA ROM is an Erasable Reprogrammable rom to save the top 3 high scores - and other stuff. - - - Dip switches at N9 on the PCB - - 8 7 6 5 4 3 2 1 Option - ------------------------------------------------------------------------------------- - On On English $ - On Off German - Off On French - Off Off Spanish - ------------------------------------------------------------------------------------- - On On 2 lives per game - On Off 3 lives per game $ - Off On 4 lives per game - Off Off 5 lives per game - ------------------------------------------------------------------------------------- - Bonus life granted at every: - On On 10,000 points - On Off 12.000 points $ - Off On 15,000 points - Off Off 20,000 points - ------------------------------------------------------------------------------------- - On Hard game difficulty - Off Easy game difficulty $ - ------------------------------------------------------------------------------------- - On 1-credit minimum $ - Off 2-credit minimum - ------------------------------------------------------------------------------------- - - $ = Manufacturer's suggested settings - - - Dip switches at N8 on the PCB - - 8 7 6 5 4 3 2 1 Option - ------------------------------------------------------------------------------------- - On On Free play - On Off 1 coin for 2 credits - Off On 1 coin for 1 credit $ - Off Off 2 coins for 1 credit - ------------------------------------------------------------------------------------- - On On Right coin mech X 1 $ - On Off Right coin mech X 4 - Off On Right coin mech X 5 - Off Off Right coin mech X 6 - ------------------------------------------------------------------------------------- - On Left coin mech X 1 $ - Off Left coin mech X 2 - ------------------------------------------------------------------------------------- - On On On No bonus coins $ - On On Off For every 2 coins inserted, game logic - adds 1 more coin - On Off On For every 4 coins inserted, game logic - adds 1 more coin - On Off Off For every 4 coins inserted, game logic - adds 2 more coin - Off On On For every 5 coins inserted, game logic - adds 1 more coin - Off On Off For every 3 coins inserted, game logic - adds 1 more coin - ------------------------------------------------------------------------------------- - $ = Manufacturer's suggested settings - - Changes: - 30 Apr 98 LBO - * Fixed test mode - * Changed high score to use earom routines - * Added support for alternate rom set - -**************************************************************************** - - Millipede memory map (preliminary) - - driver by Ivan Mackintosh - - 0400-040F POKEY 1 - 0800-080F POKEY 2 - 1000-13BF SCREEN RAM (8x8 TILES, 32x30 SCREEN) - 13C0-13CF SPRITE IMAGE OFFSETS - 13D0-13DF SPRITE HORIZONTAL OFFSETS - 13E0-13EF SPRITE VERTICAL OFFSETS - 13F0-13FF SPRITE COLOR OFFSETS - - 2000 BIT 1-4 trackball - BIT 5 IS P1 FIRE - BIT 6 IS P1 START - BIT 7 IS VBLANK - - 2001 BIT 1-4 trackball - BIT 5 IS P2 FIRE - BIT 6 IS P2 START - BIT 7,8 (?) - - 2010 BIT 1 IS P1 RIGHT - BIT 2 IS P1 LEFT - BIT 3 IS P1 DOWN - BIT 4 IS P1 UP - BIT 5 IS SLAM, LEFT COIN, AND UTIL COIN - BIT 6,7 (?) - BIT 8 IS RIGHT COIN - 2030 earom read - 2480-249F COLOR RAM - 2500-2502 Coin counters - 2503-2504 LEDs - 2505-2507 Coin door lights ?? - 2600 INTERRUPT ACKNOWLEDGE - 2680 CLEAR WATCHDOG - 2700 earom control - 2780 earom write - 4000-7FFF GAME CODE - -**************************************************************************** - - Warlords Memory map and Dip Switches - ------------------------------------ - - Address R/W D7 D6 D5 D4 D3 D2 D1 D0 Function - -------------------------------------------------------------------------------------- - 0000-03FF D D D D D D D D RAM - -------------------------------------------------------------------------------------- - 0400-07BF D D D D D D D D Screen RAM (8x8 TILES, 32x32 SCREEN) - 07C0-07CF D D D D D D D D Motion Object Picture - 07D0-07DF D D D D D D D D Motion Object Vert. - 07E0-07EF D D D D D D D D Motion Object Horiz. - -------------------------------------------------------------------------------------- - 0800 R D D D D D D D D Option Switch 1 (0 = On) (DSW 1) - 0801 R D D D D D D D D Option Switch 2 (0 = On) (DSW 2) - -------------------------------------------------------------------------------------- - 0C00 R D Cocktail Cabinet (0 = Cocktail) - R D VBLANK (1 = VBlank) - R D SELF TEST - R D DIAG STEP (Unused) - 0C01 R D D D R,C,L Coin Switches (0 = On) - R D Slam (0 = On) - R D Player 4 Start Switch (0 = On) - R D Player 3 Start Switch (0 = On) - R D Player 2 Start Switch (0 = On) - R D Player 1 Start Switch (0 = On) - -------------------------------------------------------------------------------------- - 1000-100F W D D D D D D D D Pokey - -------------------------------------------------------------------------------------- - 1800 W IRQ Acknowledge - -------------------------------------------------------------------------------------- - 1C00-1C02 W D D D D D D D D Coin Counters - -------------------------------------------------------------------------------------- - 1C03-1C06 W D D D D D D D D LEDs - -------------------------------------------------------------------------------------- - 4000 W Watchdog - -------------------------------------------------------------------------------------- - 5000-7FFF R Program ROM - -------------------------------------------------------------------------------------- - - Game Option Settings - J2 (DSW1) - ========================= - - 8 7 6 5 4 3 2 1 Option - ------------------------------------------ - On On English - On Off French - Off On Spanish - Off Off German - On Music at end of each game - Off Music at end of game for new highscore - On On 1 or 2 player game costs 1 credit - On Off 1 player game=1 credit, 2 player=2 credits - Off Off 1 or 2 player game costs 2 credits - Off On Not used - ------------------------------------------- - - - Game Price Settings - M2 (DSW2) - ======================== - - 8 7 6 5 4 3 2 1 Option - ------------------------------------------ - On On Free play - On Off 1 coin for 2 credits - Off On 1 coin for 1 credit - Off Off 2 coins for 1 credit - On On Right coin mech x 1 - On Off Right coin mech x 4 - Off On Right coin mech x 5 - Off Off Right coin mech x 6 - On Left coin mech x 1 - Off Left coin mech x 2 - On On On No bonus coins - On On Off For every 2 coins, add 1 coin - On Off On For every 4 coins, add 1 coin - On Off Off For every 4 coins, add 2 coins - Off On On For every 5 coins, add 1 coin - ------------------------------------------ - -***************************************************************************/ - -#include "driver.h" -#include "cpu/s2650/s2650.h" -#include "machine/atari_vg.h" -#include "centiped.h" -#include "sound/ay8910.h" -#include "sound/sn76496.h" -#include "sound/pokey.h" - - -static UINT8 oldpos[4]; -static UINT8 sign[4]; -static UINT8 dsw_select; -static UINT8 *rambase; -static mame_timer *interrupt_timer; - - -/************************************* - * - * Interrupts - * - *************************************/ - -static void generate_interrupt(int scanline) -{ - /* IRQ is clocked on the rising edge of 16V, equal to the previous 32V */ - if (scanline & 16) - cpunum_set_input_line(0, 0, ((scanline - 1) & 32) ? ASSERT_LINE : CLEAR_LINE); - - /* call back again after 16 scanlines */ - scanline += 16; - if (scanline >= 256) - scanline = 0; - - timer_adjust(interrupt_timer, cpu_getscanlinetime(scanline), scanline, 0); -} - - -static MACHINE_START( centiped ) -{ - state_save_register_global_array(oldpos); - state_save_register_global_array(sign); - state_save_register_global(dsw_select); - return 0; -} - - -static MACHINE_RESET( centiped ) -{ - interrupt_timer=timer_alloc(generate_interrupt); - timer_adjust(interrupt_timer,cpu_getscanlinetime(0), 0, 0); - cpunum_set_input_line(0, 0, CLEAR_LINE); - dsw_select = 0; -} - - -static MACHINE_RESET( magworm ) -{ - machine_reset_centiped(machine); - - /* kludge: clear RAM so that magworm can be reset cleanly */ - memset(rambase, 0, 0x400); -} - - -static WRITE8_HANDLER( irq_ack_w ) -{ - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -/* - * This wrapper routine is necessary because Centipede requires a direction bit - * to be set or cleared. The direction bit is held until the mouse is moved - * again. - * - * There is a 4-bit counter, and two inputs from the trackball: DIR and CLOCK. - * CLOCK makes the counter move in the direction of DIR. Since DIR is latched - * only when a CLOCK arrives, the DIR bit in the input port doesn't change - * until the trackball actually moves. - * - * There is also a CLR input to the counter which could be used by the game to - * clear the counter, but Centipede doesn't use it (though it would be a good - * idea to support it anyway). - * - * The counter is read 240 times per second. There is no provision whatsoever - * to prevent the counter from wrapping around between reads. - */ - -INLINE int read_trackball(int idx, int switch_port) -{ - UINT8 newpos; - - /* adjust idx if we're cocktail flipped */ - if (centiped_flipscreen) - idx += 2; - - /* if we're to read the dipswitches behind the trackball data, do it now */ - if (dsw_select) - return (readinputport(switch_port) & 0x7f) | sign[idx]; - - /* get the new position and adjust the result */ - newpos = readinputport(6 + idx); - if (newpos != oldpos[idx]) - { - sign[idx] = (newpos - oldpos[idx]) & 0x80; - oldpos[idx] = newpos; - } - - /* blend with the bits from the switch port */ - return (readinputport(switch_port) & 0x70) | (oldpos[idx] & 0x0f) | sign[idx]; -} - - -static READ8_HANDLER( centiped_IN0_r ) -{ - return read_trackball(0, 0); -} - - -static READ8_HANDLER( centiped_IN2_r ) -{ - return read_trackball(1, 2); -} - - -static READ8_HANDLER( milliped_IN1_r ) -{ - return read_trackball(1, 1); -} - - -static WRITE8_HANDLER( input_select_w ) -{ - dsw_select = (~data >> 7) & 1; -} - - -static READ8_HANDLER( bullsdrt_data_port_r ) -{ - switch (activecpu_get_pc()) - { - case 0x0033: - case 0x6b19: - return 0x01; - } - - return 0; -} - - - -/************************************* - * - * Output ports - * - *************************************/ - -static WRITE8_HANDLER( led_w ) -{ - set_led_status(offset, ~data & 0x80); -} - - -static READ8_HANDLER( caterplr_rand_r ) -{ - return mame_rand(Machine) % 0xff; -} - - -static WRITE8_HANDLER( coin_count_w ) -{ - coin_counter_w(offset, data); -} - - -static WRITE8_HANDLER( bullsdrt_coin_count_w ) -{ - coin_counter_w(0, data); -} - - - -/************************************* - * - * Bootleg sound - * - *************************************/ - -static WRITE8_HANDLER( caterplr_AY8910_w ) -{ - AY8910_control_port_0_w(0, offset); - AY8910_write_port_0_w(0, data); -} - - -static READ8_HANDLER( caterplr_AY8910_r ) -{ - AY8910_control_port_0_w(0, offset); - return AY8910_read_port_0_r(0); -} - - - -/************************************* - * - * Centipede CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( centiped_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&rambase) - AM_RANGE(0x0400, 0x07bf) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x0800, 0x0800) AM_READ(input_port_4_r) /* DSW1 */ - AM_RANGE(0x0801, 0x0801) AM_READ(input_port_5_r) /* DSW2 */ - AM_RANGE(0x0c00, 0x0c00) AM_READ(centiped_IN0_r) /* IN0 */ - AM_RANGE(0x0c01, 0x0c01) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x0c02, 0x0c02) AM_READ(centiped_IN2_r) /* IN2 */ - AM_RANGE(0x0c03, 0x0c03) AM_READ(input_port_3_r) /* IN3 */ - AM_RANGE(0x1000, 0x100f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x1400, 0x140f) AM_WRITE(centiped_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x1600, 0x163f) AM_WRITE(atari_vg_earom_w) - AM_RANGE(0x1680, 0x1680) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x1700, 0x173f) AM_READ(atari_vg_earom_r) - AM_RANGE(0x1800, 0x1800) AM_WRITE(irq_ack_w) - AM_RANGE(0x1c00, 0x1c02) AM_WRITE(coin_count_w) - AM_RANGE(0x1c03, 0x1c04) AM_WRITE(led_w) - AM_RANGE(0x1c07, 0x1c07) AM_WRITE(centiped_flip_screen_w) - AM_RANGE(0x2000, 0x2000) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x2000, 0x3fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( centipdb_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x4000) AM_RAM - AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x4000) AM_READ(input_port_4_r) /* DSW1 */ - AM_RANGE(0x0801, 0x0801) AM_MIRROR(0x4000) AM_READ(input_port_5_r) /* DSW2 */ - AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x4000) AM_READ(centiped_IN0_r) /* IN0 */ - AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x4000) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x0c02, 0x0c02) AM_MIRROR(0x4000) AM_READ(centiped_IN2_r) /* IN2 */ - AM_RANGE(0x0c03, 0x0c03) AM_MIRROR(0x4000) AM_READ(input_port_3_r) /* IN3 */ - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x4000) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x4000) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w) - AM_RANGE(0x1400, 0x140f) AM_MIRROR(0x4000) AM_WRITE(centiped_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x1600, 0x163f) AM_MIRROR(0x4000) AM_WRITE(atari_vg_earom_w) - AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x4000) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x1700, 0x173f) AM_MIRROR(0x4000) AM_READ(atari_vg_earom_r) - AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x4000) AM_WRITE(irq_ack_w) - AM_RANGE(0x1c00, 0x1c02) AM_MIRROR(0x4000) AM_WRITE(coin_count_w) - AM_RANGE(0x1c03, 0x1c04) AM_MIRROR(0x4000) AM_WRITE(led_w) - AM_RANGE(0x1c07, 0x1c07) AM_MIRROR(0x4000) AM_WRITE(centiped_flip_screen_w) - AM_RANGE(0x2000, 0x27ff) AM_ROM - AM_RANGE(0x2800, 0x3fff) AM_MIRROR(0x4000) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Millipede CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( milliped_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x040f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x0800, 0x080f) AM_READWRITE(pokey2_r, pokey2_w) - AM_RANGE(0x1000, 0x13bf) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x2000, 0x2000) AM_READ(centiped_IN0_r) - AM_RANGE(0x2001, 0x2001) AM_READ(milliped_IN1_r) - AM_RANGE(0x2010, 0x2010) AM_READ(input_port_2_r) - AM_RANGE(0x2011, 0x2011) AM_READ(input_port_3_r) - AM_RANGE(0x2030, 0x2030) AM_READ(atari_vg_earom_r) - AM_RANGE(0x2480, 0x249f) AM_WRITE(milliped_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x2500, 0x2502) AM_WRITE(coin_count_w) - AM_RANGE(0x2503, 0x2504) AM_WRITE(led_w) - AM_RANGE(0x2505, 0x2505) AM_WRITE(input_select_w) -// AM_RANGE(0x2506, 0x2507) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0x2600, 0x2600) AM_WRITE(irq_ack_w) - AM_RANGE(0x2680, 0x2680) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x2700, 0x2700) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x2780, 0x27bf) AM_WRITE(atari_vg_earom_w) - AM_RANGE(0x4000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Warlords CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( warlords_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07bf) AM_READWRITE(MRA8_RAM, centiped_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x0800, 0x0800) AM_READ(input_port_2_r) /* DSW1 */ - AM_RANGE(0x0801, 0x0801) AM_READ(input_port_3_r) /* DSW2 */ - AM_RANGE(0x0c00, 0x0c00) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x0c01, 0x0c01) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x1000, 0x100f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x1800, 0x1800) AM_WRITE(irq_ack_w) - AM_RANGE(0x1c00, 0x1c02) AM_WRITE(coin_count_w) - AM_RANGE(0x1c03, 0x1c06) AM_WRITE(led_w) - AM_RANGE(0x4000, 0x4000) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x5000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - - -/**************************************** - * - * Bulls Eye Darts CPU memory handlers - * - ****************************************/ - -static ADDRESS_MAP_START( bullsdrt_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_ROM - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x6000) AM_READ(input_port_3_r) - AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x6000) AM_READ(centiped_IN0_r) - AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x6000) AM_READ(input_port_1_r) - AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x6000) AM_READ(centiped_IN2_r) - AM_RANGE(0x1200, 0x123f) AM_MIRROR(0x6000) AM_READWRITE(atari_vg_earom_r, atari_vg_earom_w) - AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x6000) AM_WRITE(atari_vg_earom_ctrl_w) - AM_RANGE(0x1300, 0x1300) AM_MIRROR(0x6000) AM_READ(input_port_4_r) - AM_RANGE(0x1400, 0x140f) AM_MIRROR(0x6000) AM_WRITE(centiped_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x1481, 0x1481) AM_MIRROR(0x6000) AM_WRITE(bullsdrt_coin_count_w) - AM_RANGE(0x1483, 0x1484) AM_MIRROR(0x6000) AM_WRITE(led_w) - AM_RANGE(0x1487, 0x1487) AM_MIRROR(0x6000) AM_WRITE(centiped_flip_screen_w) - AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_NOP - AM_RANGE(0x1800, 0x1bbf) AM_MIRROR(0x6000) AM_WRITE(centiped_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x1bc0, 0x1bff) AM_MIRROR(0x6000) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM - AM_RANGE(0x2000, 0x2fff) AM_ROM - AM_RANGE(0x4000, 0x4fff) AM_ROM - AM_RANGE(0x6000, 0x6fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bullsdrt_port_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_WRITE(bullsdrt_sprites_bank_w) - AM_RANGE(0x20, 0x3f) AM_WRITE(bullsdrt_tilesbank_w) AM_BASE(&bullsdrt_tiles_bankram) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(bullsdrt_data_port_r, SN76496_0_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -/* The input ports are identical for the real one and the bootleg one, except - that one of the languages is Italian in the bootleg one instead of Spanish */ - -#define PORTS(GAMENAME, FOURTH_LANGUAGE) \ - \ -INPUT_PORTS_START( GAMENAME ) \ - PORT_START /* IN0 */ \ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ \ - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet )) \ - PORT_DIPSETTING( 0x00, DEF_STR( Upright )) \ - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail )) \ - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) \ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) \ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ \ - \ - PORT_START /* IN1 */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - \ - PORT_START /* IN2 */ \ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ \ - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ \ - \ - PORT_START /* IN3 */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY \ - \ - PORT_START /* IN4 */ \ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( German ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( French ) ) \ - PORT_DIPSETTING( 0x03, FOURTH_LANGUAGE ) \ - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives )) \ - PORT_DIPSETTING( 0x00, "2" ) \ - PORT_DIPSETTING( 0x04, "3" ) \ - PORT_DIPSETTING( 0x08, "4" ) \ - PORT_DIPSETTING( 0x0c, "5" ) \ - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Bonus_Life )) \ - PORT_DIPSETTING( 0x00, "10000" ) \ - PORT_DIPSETTING( 0x10, "12000" ) \ - PORT_DIPSETTING( 0x20, "15000" ) \ - PORT_DIPSETTING( 0x30, "20000" ) \ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty )) \ - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) \ - PORT_DIPNAME( 0x80, 0x00, "Credit Minimum" ) \ - PORT_DIPSETTING( 0x00, "1" ) \ - PORT_DIPSETTING( 0x80, "2" ) \ - \ - PORT_START /* IN5 */ \ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) \ - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) \ - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) \ - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) \ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) \ - PORT_DIPNAME( 0x0c, 0x00, "Right Coin" ) \ - PORT_DIPSETTING( 0x00, "*1" ) \ - PORT_DIPSETTING( 0x04, "*4" ) \ - PORT_DIPSETTING( 0x08, "*5" ) \ - PORT_DIPSETTING( 0x0c, "*6" ) \ - PORT_DIPNAME( 0x10, 0x00, "Left Coin" ) \ - PORT_DIPSETTING( 0x00, "*1" ) \ - PORT_DIPSETTING( 0x10, "*2" ) \ - PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) \ - PORT_DIPSETTING( 0x20, "3 credits/2 coins" ) \ - PORT_DIPSETTING( 0x40, "5 credits/4 coins" ) \ - PORT_DIPSETTING( 0x60, "6 credits/4 coins" ) \ - PORT_DIPSETTING( 0x80, "6 credits/5 coins" ) \ - PORT_DIPSETTING( 0xa0, "4 credits/3 coins" ) \ - \ - PORT_START /* IN6, fake trackball input port. */ \ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE \ - \ - PORT_START /* IN7, fake trackball input port. */ \ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) \ - \ - PORT_START /* IN8, fake trackball input port. */ \ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_COCKTAIL \ - \ - PORT_START /* IN9, fake trackball input port. */ \ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL \ -INPUT_PORTS_END - -PORTS(centiped, DEF_STR( Spanish )) -PORTS(caterplr, DEF_STR( Italian )) - - -INPUT_PORTS_START( centtime ) - PORT_START /* IN0 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN3 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - - PORT_START /* IN4 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( German ) ) - PORT_DIPSETTING( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives )) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Bonus_Life )) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x10, "12000" ) - PORT_DIPSETTING( 0x20, "15000" ) - PORT_DIPSETTING( 0x30, "20000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty )) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, "Credit Minimum" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x80, "2" ) - - PORT_START /* IN5 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x00, "Untimed" ) - PORT_DIPSETTING( 0x04, "1 Minute" ) - PORT_DIPSETTING( 0x08, "2 Minutes" ) - PORT_DIPSETTING( 0x0c, "3 Minutes" ) - PORT_DIPSETTING( 0x10, "4 Minutes" ) - PORT_DIPSETTING( 0x14, "5 Minutes" ) - PORT_DIPSETTING( 0x18, "6 Minutes" ) - PORT_DIPSETTING( 0x1c, "7 Minutes" ) - PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x20, "3 credits/2 coins" ) - PORT_DIPSETTING( 0x40, "5 credits/4 coins" ) - PORT_DIPSETTING( 0x60, "6 credits/4 coins" ) - PORT_DIPSETTING( 0x80, "6 credits/5 coins" ) - PORT_DIPSETTING( 0xa0, "4 credits/3 coins" ) - - PORT_START /* IN6, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN7, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* IN8, place for cocktail trackball (not used) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN9, place for cocktail trackball (not used) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( magworm ) - PORT_START /* IN0 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x00, DEF_STR( Upright )) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail )) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN4 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0c, 0x00, "Right Coin" ) - PORT_DIPSETTING( 0x00, "*3" ) - PORT_DIPSETTING( 0x04, "*7" ) - PORT_DIPSETTING( 0x08, "*1/2" ) - PORT_DIPSETTING( 0x0c, "*6" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x10, DEF_STR( German ) ) - PORT_DIPSETTING( 0x20, DEF_STR( French ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives )) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) - - PORT_START /* IN5 */ - PORT_DIPNAME( 0x01, 0x00, "Left Coin" ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x01, "*2" ) - PORT_DIPNAME( 0x0e, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x02, "3 credits/2 coins" ) - PORT_DIPSETTING( 0x04, "5 credits/4 coins" ) - PORT_DIPSETTING( 0x06, "6 credits/4 coins" ) - PORT_DIPSETTING( 0x08, "6 credits/5 coins" ) - PORT_DIPSETTING( 0x0a, "4 credits/3 coins" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Bonus_Life )) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x10, "12000" ) - PORT_DIPSETTING( 0x20, "15000" ) - PORT_DIPSETTING( 0x30, "20000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty )) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, "Credit Minimum" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x80, "2" ) - - PORT_START /* IN6, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN7, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* IN8, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_COCKTAIL - - PORT_START /* IN9, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( milliped ) - PORT_START /* IN0 $2000 */ /* see port 6 for x trackball */ - PORT_DIPNAME(0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( German ) ) - PORT_DIPSETTING( 0x02, DEF_STR( French ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME(0x0c, 0x04, "Bonus" ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x04, "0 1x" ) - PORT_DIPSETTING( 0x08, "0 1x 2x" ) - PORT_DIPSETTING( 0x0c, "0 1x 2x 3x" ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN1 $2001 */ /* see port 7 for y trackball */ - PORT_DIPNAME(0x01, 0x00, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x01, DEF_STR( On )) - PORT_DIPNAME(0x02, 0x00, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x02, DEF_STR( On )) - PORT_DIPNAME(0x04, 0x00, "Credit Minimum" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPNAME(0x08, 0x00, "Coin Counters" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN2 $2010 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* IN3 $2011 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 4 */ /* DSW1 $0408 */ - PORT_DIPNAME(0x01, 0x00, "Millipede Head" ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPNAME(0x02, 0x00, "Beetle" ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPNAME(0x0c, 0x04, DEF_STR( Lives )) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME(0x30, 0x10, DEF_STR( Bonus_Life )) - PORT_DIPSETTING( 0x00, "12000" ) - PORT_DIPSETTING( 0x10, "15000" ) - PORT_DIPSETTING( 0x20, "20000" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) - PORT_DIPNAME(0x40, 0x00, "Spider" ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPNAME(0x80, 0x00, "Starting Score Select" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START /* 5 */ /* DSW2 $0808 */ - PORT_DIPNAME(0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME(0x0c, 0x00, "Right Coin" ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x04, "*4" ) - PORT_DIPSETTING( 0x08, "*5" ) - PORT_DIPSETTING( 0x0c, "*6" ) - PORT_DIPNAME(0x10, 0x00, "Left Coin" ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x10, "*2" ) - PORT_DIPNAME(0xe0, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x20, "3 credits/2 coins" ) - PORT_DIPSETTING( 0x40, "5 credits/4 coins" ) - PORT_DIPSETTING( 0x60, "6 credits/4 coins" ) - PORT_DIPSETTING( 0x80, "6 credits/5 coins" ) - PORT_DIPSETTING( 0xa0, "4 credits/3 coins" ) - PORT_DIPSETTING( 0xc0, "Demo mode" ) - - PORT_START /* IN6, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN7, fake trackball input port. */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( warlords ) - PORT_START /* IN0 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x10, 0x00, "Diag Step" ) /* Not referenced */ - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x80, "Upright (overlay)" ) - PORT_DIPSETTING( 0x00, "Cocktail (no overlay)" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0x03, DEF_STR( German ) ) - PORT_DIPNAME( 0x04, 0x00, "Music" ) - PORT_DIPSETTING( 0x00, "End of game" ) - PORT_DIPSETTING( 0x04, "High score only" ) - PORT_BIT( 0xc8, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x30, 0x00, "Credits" ) - PORT_DIPSETTING( 0x00, "1p/2p = 1 credit" ) - PORT_DIPSETTING( 0x10, "1p = 1, 2p = 2" ) - PORT_DIPSETTING( 0x20, "1p/2p = 2 credits" ) - - PORT_START /* IN3 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0c, 0x00, "Right Coin" ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x04, "*4" ) - PORT_DIPSETTING( 0x08, "*5" ) - PORT_DIPSETTING( 0x0c, "*6" ) - PORT_DIPNAME( 0x10, 0x00, "Left Coin" ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x10, "*2" ) - PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x20, "3 credits/2 coins" ) - PORT_DIPSETTING( 0x40, "5 credits/4 coins" ) - PORT_DIPSETTING( 0x60, "6 credits/4 coins" ) - PORT_DIPSETTING( 0x80, "6 credits/5 coins" ) - - /* IN4-7 fake to control player paddles */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(4) -INPUT_PORTS_END - - -INPUT_PORTS_START( bullsdrt ) - PORT_START /* IN0 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball data */ - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* trackball sign bit */ - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Award Free Game" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - /* not used */ - - PORT_START /* IN6, fake trackball input port. */ - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_X ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN7, fake trackball input port. */ - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_Y ) PORT_MINMAX(0x1d,0xcb) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics layouts: Centipede/Millipede - * - *************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,2), - 2, - { RGN_FRAC(1,2), 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_layout spritelayout = -{ - 8,16, - RGN_FRAC(1,2), - 2, - { RGN_FRAC(1,2), 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 16*8 -}; - -static const gfx_decode centiped_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { REGION_GFX1, 0, &spritelayout, 4, 4*4*4 }, - { -1 } -}; - -static const gfx_decode milliped_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 4 }, - { REGION_GFX1, 0, &spritelayout, 4*4, 4*4*4*4 }, - { -1 } -}; - - - -/************************************* - * - * Graphics layouts: Warlords - * - *************************************/ - -static const gfx_layout warlords_charlayout = -{ - 8,8, - RGN_FRAC(1,4), - 2, - { RGN_FRAC(1,2), 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode warlords_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x000, &warlords_charlayout, 0, 8 }, - { REGION_GFX1, 0x200, &warlords_charlayout, 8*4, 8*4 }, - { -1 } -}; - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct AY8910interface centipdb_ay8910_interface = -{ - caterplr_rand_r -}; - - -static struct POKEYinterface milliped_pokey_interface_1 = -{ - { 0 }, - input_port_4_r -}; - - -static struct POKEYinterface milliped_pokey_interface_2 = -{ - { 0 }, - input_port_5_r -}; - - -static struct POKEYinterface warlords_pokey_interface = -{ - { input_port_4_r,input_port_5_r,input_port_6_r,input_port_7_r } -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( centiped ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 12096000/8) /* 1.512 MHz (slows down to 0.75MHz while accessing playfield RAM) */ - MDRV_CPU_PROGRAM_MAP(centiped_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1460)) - - MDRV_MACHINE_START(centiped) - MDRV_MACHINE_RESET(centiped) - MDRV_NVRAM_HANDLER(atari_vg) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(centiped_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4+4) - MDRV_COLORTABLE_LENGTH(4+4*4*4*4) - - MDRV_PALETTE_INIT(centiped) - MDRV_VIDEO_START(centiped) - MDRV_VIDEO_UPDATE(centiped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("pokey", POKEY, 12096000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( caterplr ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(centiped) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", AY8910, 12096000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( centipdb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(centiped) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(centipdb_map,0) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", AY8910, 12096000/8) - MDRV_SOUND_CONFIG(centipdb_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( magworm ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(centiped) - MDRV_MACHINE_RESET(magworm) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", AY8910, 12096000/8) - MDRV_SOUND_CONFIG(centipdb_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( milliped ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(centiped) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(milliped_map,0) - - /* video hardware */ - MDRV_GFXDECODE(milliped_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4*4+4*4) - MDRV_COLORTABLE_LENGTH(4*4+4*4*4*4*4) - - MDRV_PALETTE_INIT(milliped) - MDRV_VIDEO_START(milliped) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", POKEY, 12096000/8) - MDRV_SOUND_CONFIG(milliped_pokey_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(POKEY, 12096000/8) - MDRV_SOUND_CONFIG(milliped_pokey_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( warlords ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(centiped) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(warlords_map,0) - - /* video hardware */ - MDRV_GFXDECODE(warlords_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(8*4+8*4) - - MDRV_PALETTE_INIT(warlords) - MDRV_VIDEO_START(warlords) - MDRV_VIDEO_UPDATE(warlords) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey", POKEY, 12096000/8) - MDRV_SOUND_CONFIG(warlords_pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bullsdrt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(S2650, 12096000/8) - MDRV_CPU_PROGRAM_MAP(bullsdrt_map,0) - MDRV_CPU_IO_MAP(bullsdrt_port_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1460)) - - MDRV_NVRAM_HANDLER(atari_vg) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(centiped_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4+4) - MDRV_COLORTABLE_LENGTH(4+4*4*4*4) - MDRV_PALETTE_INIT(centiped) - - MDRV_VIDEO_START(bullsdrt) - MDRV_VIDEO_UPDATE(bullsdrt) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 12096000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( centiped ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) ) - ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) ) - ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) ) - ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) ) /* May be labeled "136001-201", same data */ - ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) ) /* May be labeled "136001-202", same data */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) -ROM_END - - -ROM_START( centipd2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "136001-207.d1", 0x2000, 0x0800, CRC(b2909e2f) SHA1(90ec90bd1e262861730afd5b113ec8dddd958ed8) ) - ROM_LOAD( "136001-208.e1", 0x2800, 0x0800, CRC(110e04ff) SHA1(4cb481792411b6aefac561744cfbe107aba8bab3) ) - ROM_LOAD( "136001-209.fh1", 0x3000, 0x0800, CRC(cc2edb26) SHA1(b3ea580afa6a1ac44662051fae19c1efc320fcd3) ) - ROM_LOAD( "136001-210.j1", 0x3800, 0x0800, CRC(93999153) SHA1(8788c2b39fc5bfbb147a5e7c26ad360bba8d1063) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) ) /* May be labeled "136001-201", same data */ - ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) ) /* May be labeled "136001-202", same data */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) -ROM_END - - -ROM_START( centtime ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cent_d1.bin", 0x2000, 0x0800, CRC(c4d995eb) SHA1(d0b2f0461cfa35842045d40ffb65e777703b773e) ) - ROM_LOAD( "cent_e1.bin", 0x2800, 0x0800, CRC(bcdebe1b) SHA1(53f3bf88a79ce40661c0a9381928e55d8c61777a) ) - ROM_LOAD( "cent_fh1.bin", 0x3000, 0x0800, CRC(66d7b04a) SHA1(8fa758095b618085090491dfb5ea114cdc87f9df) ) - ROM_LOAD( "cent_j1.bin", 0x3800, 0x0800, CRC(33ce4640) SHA1(780c2eb320f64fad6b265c0dada961646ed30174) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) ) /* May be labeled "136001-201", same data */ - ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) ) /* May be labeled "136001-202", same data */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) -ROM_END - - -ROM_START( caterplr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "olympia.c28", 0x2000, 0x0800, CRC(8a744e57) SHA1(0bc83fe01d929af4e5c7f2a8d1236560df41f9ce) ) - ROM_LOAD( "olympia.c29", 0x2800, 0x0800, CRC(bb897b10) SHA1(bb1039fe64774277870f675eb72dd9f3f596f865) ) - ROM_LOAD( "olympia.c30", 0x3000, 0x0800, CRC(2297c2ac) SHA1(129d111f80b837f7b44852162f4abfba31fc0d75) ) - ROM_LOAD( "olympia.c31", 0x3800, 0x0800, CRC(cc529d6b) SHA1(80d86371b0f969b434af6ffb3834adaf11d05ac2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "olympia.c32", 0x0000, 0x0800, CRC(d91b9724) SHA1(5ff9ccb2769c853b44764bfe829ad1df08686dc6) ) - ROM_LOAD( "olympia.c33", 0x0800, 0x0800, CRC(c2b08489) SHA1(9427e54537312ee0a70ec7bd1c039e92f8cfadad) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) -ROM_END - - -ROM_START( centipdb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "d1", 0x2000, 0x0800, CRC(b17b8e0b) SHA1(01944cf040cf23aeb4c50d4f2e63181e08a07310) ) - ROM_LOAD( "e1", 0x2800, 0x0800, CRC(7684398e) SHA1(eea8e05506a7af2fec55c2689e3caafc62ea524f) ) - ROM_LOAD( "h1", 0x3000, 0x0800, CRC(74580fe4) SHA1(35b8a8675e4e020e234e51c3e4bd4ee5c24b79d2) ) - ROM_LOAD( "j1", 0x3800, 0x0800, CRC(84600161) SHA1(e9a6801c6f59e2b34e692e9aa71845d2e64a2379) ) - ROM_LOAD( "k1", 0x6000, 0x0800, CRC(f1aa329b) SHA1(e4689de0f94d11f125ee7548a3f8128ff8e8da51) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) ) - ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) -ROM_END - -ROM_START( millpac ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "millpac1.1d", 0x2000, 0x0800, CRC(4dd6913d) SHA1(9eca634e1a827f9bbcf3c532d44e175ac4751755) ) - ROM_LOAD( "millpac2.1e", 0x2800, 0x0800, CRC(411c81f1) SHA1(15184642522f0b7eab81301295d435c10ce2d78d) ) - ROM_LOAD( "millpac3.1h", 0x3000, 0x0800, CRC(577076cc) SHA1(3124fcfb56f33ebd17d2c0da1098023474187066) ) - ROM_LOAD( "millpac4.1j", 0x3800, 0x0800, CRC(89aedd75) SHA1(74635079e7103bf6fa9577f5980e1adaa34d9be0) ) - ROM_LOAD( "millpac5.1k", 0x6000, 0x0800, CRC(67ac481b) SHA1(cef839d1c9dd207fdf41ae47d5f279b783f2f4cf) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "millpac6.7f", 0x0000, 0x0800, CRC(79f05520) SHA1(25c9f3b4826f48830f5c42d41d4f030b49e58d6a) ) - ROM_LOAD( "millpac7.7j", 0x0800, 0x0800, CRC(4880b2bd) SHA1(1909b8fb275f38f1b57bf53ba348b866cc48a599) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "millpac.4p", 0x0000, 0x0100, CRC(ba40e1a9) SHA1(f7914ba974e5bdd0c24d415a537b5fe567a4de50) ) /* not used */ -ROM_END - - -ROM_START( magworm ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "11005-0.k0", 0x2000, 0x0800, CRC(a88e970a) SHA1(f0cc6fdcdecf05f11cef7ebae4e11783a8bbc5ba) ) - ROM_LOAD( "11005-1.k1", 0x2800, 0x0800, CRC(7a04047e) SHA1(3c00756c8ffbc5e78d4a7409802cc2ed8f668264) ) - ROM_LOAD( "11005-2.k2", 0x3000, 0x0800, CRC(f127f1c3) SHA1(3fddcd6f458ac60eaebacef921b522dd2c7b8141) ) - ROM_LOAD( "11005-3p.k3", 0x3800, 0x0800, CRC(478d92b4) SHA1(99cce957c50ca80ddde408d9188fc2ed04d8da68) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11005-4.c4", 0x0000, 0x0800, CRC(cea64e1a) SHA1(9022102124e1ad93f912ce8bdf85f8a886b0879b) ) - ROM_LOAD( "11005-5.c5", 0x0800, 0x0800, CRC(24558ea5) SHA1(8cd7131e19afd7a96191b1b3c3fba7ae9a140f4b) ) -ROM_END - - -ROM_START( milliped ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "136013-104.1mn", 0x4000, 0x1000, CRC(40711675) SHA1(b595d6a0f5d3c611ade1b83a94c3b909d2124dc4) ) - ROM_LOAD( "136013-103.1l", 0x5000, 0x1000, CRC(fb01baf2) SHA1(9c1d0bbc20bf25dd21761a311fd1ed80aa029241) ) - ROM_LOAD( "136013-102.1jk", 0x6000, 0x1000, CRC(62e137e0) SHA1(9fe40db55ba1d20d4f11704f7f5df9ff75b87f30) ) - ROM_LOAD( "136013-101.1h", 0x7000, 0x1000, CRC(46752c7d) SHA1(ab06b1fd80271849946f90757b3837b617394929) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136013-107.5r", 0x0000, 0x0800, CRC(68c3437a) SHA1(4c7ea33d9501456ee8f5a642da7d6c972f2bb90d) ) - ROM_LOAD( "136013-106.5p", 0x0800, 0x0800, CRC(f4468045) SHA1(602fcc7290f9f4eacb841c76665961ebf4307f80) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "136001-213.7e", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) /* not used */ -ROM_END - - -ROM_START( warlords ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "037154.1m", 0x5000, 0x0800, CRC(18006c87) SHA1(6b4aab1b1710819d29f4bbc29269eb9c915626c0) ) - ROM_LOAD( "037153.1k", 0x5800, 0x0800, CRC(67758f4c) SHA1(b65ca677b54de7a8202838207d9a7bb0aed3e0f2) ) - ROM_LOAD( "037158.1j", 0x6000, 0x0800, CRC(1f043a86) SHA1(b1e271c0979d62202ae86c4b6860fb67bbef6400) ) - ROM_LOAD( "037157.1h", 0x6800, 0x0800, CRC(1a639100) SHA1(41ec333aee7192f8aeef49e5257f201f4db01cff) ) - ROM_LOAD( "037156.1e", 0x7000, 0x0800, CRC(534f34b4) SHA1(1680982ded17350c2ae10bb47f7eb8908bb10db2) ) - ROM_LOAD( "037155.1d", 0x7800, 0x0800, CRC(23b94210) SHA1(d74c1ca90caf15942805043b4ebe4ee077799da0) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "037159.6e", 0x0000, 0x0800, CRC(ff979a08) SHA1(422053473e41e3e1f71eb28e40eedc78f22326b3) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - /* Only the first 0x80 bytes are used by the hardware. A7 is grounded. */ - /* Bytes 0x00-0x3f are used fore the color cocktail version. */ - /* Bytes 0x40-0x7f are for the upright version of the cabinet with a */ - /* mirror and painted background. */ - ROM_LOAD( "warlord.clr", 0x0000, 0x0100, CRC(a2c5c277) SHA1(f04de9fb6ee9619b4a4aae10c92b16b3123046cf) ) -ROM_END - - -ROM_START( bullsdrt ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "27128.bin", 0x0000, 0x1000, CRC(2729f585) SHA1(6ffbfa5b62c497c3932ab71d0e3f407cae99cb59) ) - ROM_CONTINUE( 0x2000, 0x1000 ) - ROM_CONTINUE( 0x4000, 0x1000 ) - ROM_CONTINUE( 0x6000, 0x1000 ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2764_b.bin", 0x0000, 0x2000, CRC(49a19aba) SHA1(77869b7a7aae24dcbc4c7f1a3d4bcd26ea3f4fac) ) - ROM_LOAD( "2764_a.bin", 0x2000, 0x2000, CRC(361ff09d) SHA1(4b57417085bc9ee174196ca638dc7e6d3626f801) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* unknown */ - ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(d841b7e0) SHA1(aab32645a613cd027aed98437db24704763cc147) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static DRIVER_INIT( caterplr ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x100f, 0, 0, caterplr_AY8910_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x100f, 0, 0, caterplr_AY8910_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1780, 0x1780, 0, 0, caterplr_rand_r); -} - - -static DRIVER_INIT( magworm ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1001, 0x1001, 0, 0, AY8910_control_port_0_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1003, 0x1003, 0, 0, AY8910_write_port_0_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1003, 0x1003, 0, 0, AY8910_read_port_0_r); -} - - -static DRIVER_INIT( bullsdrt ) -{ - dsw_select = 0; -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1980, centiped, 0, centiped, centiped, 0, ROT270, "Atari", "Centipede (revision 3)", GAME_SUPPORTS_SAVE) -GAME( 1980, centipd2, centiped, centiped, centiped, 0, ROT270, "Atari", "Centipede (revision 2)", GAME_SUPPORTS_SAVE ) -GAME( 1980, centtime, centiped, centiped, centtime, 0, ROT270, "Atari", "Centipede (1 player, timed)", GAME_SUPPORTS_SAVE ) -GAME( 1980, centipdb, centiped, centipdb, centiped, 0, ROT270, "bootleg", "Centipede (bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1980, caterplr, centiped, caterplr, caterplr, caterplr, ROT270, "bootleg", "Caterpillar", GAME_SUPPORTS_SAVE ) -GAME( 1980, millpac, centiped, centipdb, centiped, 0, ROT270, "Valadon Automation", "Millpac", GAME_SUPPORTS_SAVE ) -GAME( 1980, magworm, centiped, magworm, magworm, magworm, ROT270, "bootleg", "Magic Worm (bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1982, milliped, 0, milliped, milliped, 0, ROT270, "Atari", "Millipede", GAME_SUPPORTS_SAVE ) - -GAME( 1980, warlords, 0, warlords, warlords, 0, ROT0, "Atari", "Warlords", GAME_SUPPORTS_SAVE ) - -GAME( 1985, bullsdrt, 0, bullsdrt, bullsdrt, bullsdrt, ROT270, "Shinkai Inc. (Magic Eletronics Inc. licence)", "Bulls Eye Darts", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/chqflag.c b/src/drivers/chqflag.c deleted file mode 100644 index 898c381c5..000000000 --- a/src/drivers/chqflag.c +++ /dev/null @@ -1,485 +0,0 @@ -/*************************************************************************** - -Chequered Flag / Checkered Flag (GX717) (c) Konami 1988 - -Notes: -- Position counter doesn't behave correctly because of the K051733 protection. -- 007232 volume & panning control is almost certainly wrong. -- I've modified the YM2151 clock with an xtal of 2,on what I recall the - music at the title screen should end when the words "Chequered Flag" - flashes.Needs a comparison with a real PCB however. -AS - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "cpu/konami/konami.h" -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - -static int K051316_readroms; - -static WRITE8_HANDLER( k007232_extvolume_w ); - -/* from vidhrdw/chqflag.c */ -VIDEO_START( chqflag ); -VIDEO_UPDATE( chqflag ); - - -static INTERRUPT_GEN( chqflag_interrupt ) -{ - if (cpu_getiloops() == 0) - { - if (K051960_is_IRQ_enabled()) - cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); - } - else if (cpu_getiloops() % 2) - { - if (K051960_is_NMI_enabled()) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static WRITE8_HANDLER( chqflag_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - - /* bits 0-4 = ROM bank # (0x00-0x11) */ - bankaddress = 0x10000 + (data & 0x1f)*0x4000; - memory_set_bankptr(4,&RAM[bankaddress]); - - /* bit 5 = memory bank select */ - if (data & 0x20){ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x1fff, 0, 0, paletteram_r); /* palette */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x1fff, 0, 0, paletteram_xBBBBBGGGGGRRRRR_be_w); /* palette */ - if (K051316_readroms){ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, K051316_rom_0_r); /* 051316 #1 (ROM test) */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, K051316_0_w); /* 051316 #1 */ - } - else{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, K051316_0_r); /* 051316 #1 */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, K051316_0_w); /* 051316 #1 */ - } - } - else{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, MRA8_BANK1); /* RAM */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x17ff, 0, 0, MWA8_BANK1); /* RAM */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x1fff, 0, 0, MRA8_BANK2); /* RAM */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1800, 0x1fff, 0, 0, MWA8_BANK2); /* RAM */ - } - - /* other bits unknown/unused */ -} - -static WRITE8_HANDLER( chqflag_vreg_w ) -{ - static int last; - - /* bits 0 & 1 = coin counters */ - coin_counter_w(1,data & 0x01); - coin_counter_w(0,data & 0x02); - - /* bit 4 = enable rom reading thru K051316 #1 & #2 */ - if ((K051316_readroms = (data & 0x10))){ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2800, 0x2fff, 0, 0, K051316_rom_1_r); /* 051316 (ROM test) */ - } - else{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x2800, 0x2fff, 0, 0, K051316_1_r); /* 051316 */ - } - - /* Bits 3-7 probably control palette dimming in a similar way to TMNT2/Saunset Riders, */ - /* however I don't have enough evidence to determine the exact behaviour. */ - /* Bits 3 and 7 are set in night stages, where the background should get darker and */ - /* the headlight (which have the shadow bit set) become highlights */ - /* Maybe one of the bits inverts the SHAD line while the other darkens the background. */ - if (data & 0x08) - palette_set_shadow_factor(Machine,1/PALETTE_DEFAULT_SHADOW_FACTOR); - else - palette_set_shadow_factor(Machine,PALETTE_DEFAULT_SHADOW_FACTOR); - - if ((data & 0x80) != last) - { - double brt = (data & 0x80) ? PALETTE_DEFAULT_SHADOW_FACTOR : 1.0; - int i; - - last = data & 0x80; - - /* only affect the background */ - for (i = 512;i < 1024;i++) - palette_set_brightness(Machine,i,brt); - } - -//if ((data & 0xf8) && (data & 0xf8) != 0x88) -// popmessage("chqflag_vreg_w %02x",data); - - - /* other bits unknown. bit 5 is used. */ -} - -static int analog_ctrl; - -static WRITE8_HANDLER( select_analog_ctrl_w ) -{ - analog_ctrl = data; -} - -static READ8_HANDLER( analog_read_r ) -{ - static int accel, wheel; - - switch (analog_ctrl & 0x03){ - case 0x00: return (accel = readinputport(5)); /* accelerator */ - case 0x01: return (wheel = readinputport(6)); /* steering */ - case 0x02: return accel; /* accelerator (previous?) */ - case 0x03: return wheel; /* steering (previous?) */ - } - - return 0xff; -} - -WRITE8_HANDLER( chqflag_sh_irqtrigger_w ) -{ - cpunum_set_input_line(1,0,HOLD_LINE); -} - - -/****************************************************************************/ - -static ADDRESS_MAP_START( chqflag_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x1000, 0x17ff) AM_READ(MRA8_BANK1) /* banked RAM (RAM/051316 (chip 1)) */ - AM_RANGE(0x1800, 0x1fff) AM_READ(MRA8_BANK2) /* palette + RAM */ - AM_RANGE(0x2000, 0x2007) AM_READ(K051937_r) /* Sprite control registers */ - AM_RANGE(0x2400, 0x27ff) AM_READ(K051960_r) /* Sprite RAM */ - AM_RANGE(0x2800, 0x2fff) AM_READ(MRA8_BANK3) /* 051316 zoom/rotation (chip 2) */ - AM_RANGE(0x3100, 0x3100) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x3200, 0x3200) AM_READ(input_port_3_r) /* COINSW, STARTSW, test mode */ - AM_RANGE(0x3201, 0x3201) AM_READ(input_port_2_r) /* DIPSW #3, SW 4 */ - AM_RANGE(0x3203, 0x3203) AM_READ(input_port_1_r) /* DIPSW #2 */ - AM_RANGE(0x3400, 0x341f) AM_READ(K051733_r) /* 051733 (protection) */ - AM_RANGE(0x3701, 0x3701) AM_READ(input_port_4_r) /* Brake + Shift + ? */ - AM_RANGE(0x3702, 0x3702) AM_READ(analog_read_r) /* accelerator/wheel */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK4) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chqflag_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x1000, 0x17ff) AM_WRITE(MWA8_BANK1) /* banked RAM (RAM/051316 (chip 1)) */ - AM_RANGE(0x1800, 0x1fff) AM_WRITE(MWA8_BANK2) /* palette + RAM */ - AM_RANGE(0x2000, 0x2007) AM_WRITE(K051937_w) /* Sprite control registers */ - AM_RANGE(0x2400, 0x27ff) AM_WRITE(K051960_w) /* Sprite RAM */ - AM_RANGE(0x2800, 0x2fff) AM_WRITE(K051316_1_w) /* 051316 zoom/rotation (chip 2) */ - AM_RANGE(0x3000, 0x3000) AM_WRITE(soundlatch_w) /* sound code # */ - AM_RANGE(0x3001, 0x3001) AM_WRITE(chqflag_sh_irqtrigger_w) /* cause interrupt on audio CPU */ - AM_RANGE(0x3002, 0x3002) AM_WRITE(chqflag_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x3003, 0x3003) AM_WRITE(chqflag_vreg_w) /* enable K051316 ROM reading */ - AM_RANGE(0x3300, 0x3300) AM_WRITE(watchdog_reset_w) /* watchdog timer */ - AM_RANGE(0x3400, 0x341f) AM_WRITE(K051733_w) /* 051733 (protection) */ - AM_RANGE(0x3500, 0x350f) AM_WRITE(K051316_ctrl_0_w) /* 051316 control registers (chip 1) */ - AM_RANGE(0x3600, 0x360f) AM_WRITE(K051316_ctrl_1_w) /* 051316 control registers (chip 2) */ - AM_RANGE(0x3700, 0x3700) AM_WRITE(select_analog_ctrl_w) /* select accelerator/wheel */ - AM_RANGE(0x3702, 0x3702) AM_WRITE(select_analog_ctrl_w) /* select accelerator/wheel (mirror?) */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chqflag_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa00d) AM_READ(K007232_read_port_0_r) /* 007232 (chip 1) */ - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_1_r) /* 007232 (chip 2) */ - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) /* YM2151 */ - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) /* soundlatch_r */ - //AM_RANGE(0xe000, 0xe000) AM_READ(MRA8_NOP) /* ??? */ -ADDRESS_MAP_END - -static WRITE8_HANDLER( k007232_bankswitch_w ) -{ - int bank_A, bank_B; - - /* banks # for the 007232 (chip 1) */ - bank_A = ((data >> 4) & 0x03); - bank_B = ((data >> 6) & 0x03); - K007232_set_bank( 0, bank_A, bank_B ); - - /* banks # for the 007232 (chip 2) */ - bank_A = ((data >> 0) & 0x03); - bank_B = ((data >> 2) & 0x03); - K007232_set_bank( 1, bank_A, bank_B ); -} - -static ADDRESS_MAP_START( chqflag_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x9000, 0x9000) AM_WRITE(k007232_bankswitch_w) /* 007232 bankswitch */ - AM_RANGE(0xa000, 0xa00d) AM_WRITE(K007232_write_port_0_w) /* 007232 (chip 1) */ - AM_RANGE(0xa01c, 0xa01c) AM_WRITE(k007232_extvolume_w)/* extra volume, goes to the 007232 w/ A11 */ - /* selecting a different latch for the external port */ - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_1_w) /* 007232 (chip 2) */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) /* YM2151 */ - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) /* YM2151 */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ??? */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( chqflag ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Coin Slot 2 Invalidity" ) - - PORT_START /* DSW #2 (according to the manual SW1 thru SW5 are not used) */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) /* DIPSW #3 - SW4 */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - /* COINSW + STARTSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - /* DIPSW #3 */ - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Title" ) - PORT_DIPSETTING( 0x40, "Chequered Flag" ) - PORT_DIPSETTING( 0x00, "Checkered Flag" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* Brake, Shift + ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* if this is set, it goes directly to test mode */ - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* if bit 7 == 0, the game resets */ - - PORT_START /* Accelerator */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START /* Driving wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(80) PORT_KEYDELTA(8) -INPUT_PORTS_END - - - -static void chqflag_ym2151_irq_w(int data) -{ - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); -} - - -static struct YM2151interface ym2151_interface = -{ - chqflag_ym2151_irq_w -}; - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v & 0x0f)*0x11,0); - K007232_set_volume(0,1,0,(v >> 4)*0x11); -} - -static WRITE8_HANDLER( k007232_extvolume_w ) -{ - K007232_set_volume(1,1,(data & 0x0f)*0x11/2,(data >> 4)*0x11/2); -} - -static void volume_callback1(int v) -{ - K007232_set_volume(1,0,(v & 0x0f)*0x11/2,(v >> 4)*0x11/2); -} - -static struct K007232_interface k007232_interface_1 = -{ - REGION_SOUND1, - volume_callback0 -}; - -static struct K007232_interface k007232_interface_2 = -{ - REGION_SOUND2, - volume_callback1 -}; - -static MACHINE_DRIVER_START( chqflag ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI,3000000) /* 052001 */ - MDRV_CPU_PROGRAM_MAP(chqflag_readmem,chqflag_writemem) - MDRV_CPU_VBLANK_INT(chqflag_interrupt,16) /* ? */ - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(chqflag_readmem_sound,chqflag_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(chqflag) - MDRV_VIDEO_UPDATE(chqflag) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545/2) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_1) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_2) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) -MACHINE_DRIVER_END - - - -ROM_START( chqflag ) - ROM_REGION( 0x58800, REGION_CPU1, 0 ) /* 052001 code */ - ROM_LOAD( "717h02", 0x050000, 0x008000, CRC(f5bd4e78) SHA1(7bab02152d055a6c3a322c88e7ee0b85a39d8ef2) ) /* banked ROM */ - ROM_CONTINUE( 0x008000, 0x008000 ) /* fixed ROM */ - ROM_LOAD( "717e10", 0x010000, 0x040000, CRC(72fc56f6) SHA1(433ea9a33f0230e046c731c70060f6a38db14ac7) ) /* banked ROM */ - /* extra memory for banked RAM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "717e01", 0x000000, 0x008000, CRC(966b8ba8) SHA1(ab7448cb61fa5922b1d8ae5f0d0f42d734ed4f93) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e04", 0x000000, 0x080000, CRC(1a50a1cc) SHA1(bc16fab84c637ed124e37b115ddc0149560b727d) ) /* sprites */ - ROM_LOAD( "717e05", 0x080000, 0x080000, CRC(46ccb506) SHA1(3ed1f54744fc5cdc0f48e42f250c366267a8199a) ) /* sprites */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e06", 0x000000, 0x020000, CRC(1ec26c7a) SHA1(05b5b522c5ebf5d0a71a7fc39ec9382008ef33c8) ) /* zoom/rotate (N16) */ - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e07", 0x000000, 0x040000, CRC(b9a565a8) SHA1(a11782f7336e5ad58a4c6ea81f2eeac35d5e7d0a) ) /* zoom/rotate (L20) */ - ROM_LOAD( "717e08", 0x040000, 0x040000, CRC(b68a212e) SHA1(b2bd121a43552c3ade528ac763a0df40c3e648e0) ) /* zoom/rotate (L22) */ - ROM_LOAD( "717e11", 0x080000, 0x040000, CRC(ebb171ec) SHA1(d65d4a6b169ce03e4427b2a397484634f938236b) ) /* zoom/rotate (N20) */ - ROM_LOAD( "717e12", 0x0c0000, 0x040000, CRC(9269335d) SHA1(af298c8cff50d707d6abc806065f8e931f975dc0) ) /* zoom/rotate (N22) */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "717e03", 0x000000, 0x080000, CRC(ebe73c22) SHA1(fad3334e5e91bf8d11b74ffdbbfd57567e6f6f8c) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* 007232 data (chip 2) */ - ROM_LOAD( "717e09", 0x000000, 0x080000, CRC(d74e857d) SHA1(00c851c857650d67fc4caccea4461d99be4acb3c) ) -ROM_END - -ROM_START( chqflagj ) - ROM_REGION( 0x58800, REGION_CPU1, 0 ) /* 052001 code */ - ROM_LOAD( "717j02.bin", 0x050000, 0x008000, CRC(05355daa) SHA1(130ddbc289c077565e44f33c63a63963e6417e19) ) /* banked ROM */ - ROM_CONTINUE( 0x008000, 0x008000 ) /* fixed ROM */ - ROM_LOAD( "717e10", 0x010000, 0x040000, CRC(72fc56f6) SHA1(433ea9a33f0230e046c731c70060f6a38db14ac7) ) /* banked ROM */ - /* extra memory for banked RAM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "717e01", 0x000000, 0x008000, CRC(966b8ba8) SHA1(ab7448cb61fa5922b1d8ae5f0d0f42d734ed4f93) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e04", 0x000000, 0x080000, CRC(1a50a1cc) SHA1(bc16fab84c637ed124e37b115ddc0149560b727d) ) /* sprites */ - ROM_LOAD( "717e05", 0x080000, 0x080000, CRC(46ccb506) SHA1(3ed1f54744fc5cdc0f48e42f250c366267a8199a) ) /* sprites */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e06", 0x000000, 0x020000, CRC(1ec26c7a) SHA1(05b5b522c5ebf5d0a71a7fc39ec9382008ef33c8) ) /* zoom/rotate (N16) */ - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "717e07", 0x000000, 0x040000, CRC(b9a565a8) SHA1(a11782f7336e5ad58a4c6ea81f2eeac35d5e7d0a) ) /* zoom/rotate (L20) */ - ROM_LOAD( "717e08", 0x040000, 0x040000, CRC(b68a212e) SHA1(b2bd121a43552c3ade528ac763a0df40c3e648e0) ) /* zoom/rotate (L22) */ - ROM_LOAD( "717e11", 0x080000, 0x040000, CRC(ebb171ec) SHA1(d65d4a6b169ce03e4427b2a397484634f938236b) ) /* zoom/rotate (N20) */ - ROM_LOAD( "717e12", 0x0c0000, 0x040000, CRC(9269335d) SHA1(af298c8cff50d707d6abc806065f8e931f975dc0) ) /* zoom/rotate (N22) */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "717e03", 0x000000, 0x080000, CRC(ebe73c22) SHA1(fad3334e5e91bf8d11b74ffdbbfd57567e6f6f8c) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* 007232 data (chip 2) */ - ROM_LOAD( "717e09", 0x000000, 0x080000, CRC(d74e857d) SHA1(00c851c857650d67fc4caccea4461d99be4acb3c) ) -ROM_END - - - -static DRIVER_INIT( chqflag ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - konami_rom_deinterleave_2(REGION_GFX1); - paletteram = &RAM[0x58000]; -} - -GAME( 1988, chqflag, 0, chqflag, chqflag, chqflag, ROT90, "Konami", "Chequered Flag", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) -GAME( 1988, chqflagj, chqflag, chqflag, chqflag, chqflag, ROT90, "Konami", "Chequered Flag (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/cidelsa.c b/src/drivers/cidelsa.c deleted file mode 100644 index ae77749f3..000000000 --- a/src/drivers/cidelsa.c +++ /dev/null @@ -1,695 +0,0 @@ -#include "driver.h" -#include "cpu/cdp1802/cdp1802.h" -#include "cpu/cop400/cop400.h" -#include "vidhrdw/generic.h" -#include "vidhrdw/cdp1869.h" -#include "sound/cdp1869.h" -#include "sound/ay8910.h" - -extern int cdp1869_pcb; - -/* Read/Write Handlers */ - -WRITE8_HANDLER ( destryer_out1_w ) -{ - /* - bit description - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - */ -} - -WRITE8_HANDLER ( altair_out1_w ) -{ - /* - bit description - - 0 S1 (CARTUCHO) - 1 S2 (CARTUCHO) - 2 S3 (CARTUCHO) - 3 LG1 - 4 LG2 - 5 LGF - 6 CONT. M2 - 7 CONT. M1 - */ - - set_led_status(0, data & 0x08); // 1P - set_led_status(1, data & 0x10); // 2P - set_led_status(2, data & 0x20); // FIRE -} - -static int draco_sound; -static int draco_g; -static int cdp1869_predisplay; - -WRITE8_HANDLER ( draco_out1_w ) -{ - /* - bit description - - 0 3K9 -> Green signal - 1 820R -> Blue signal - 2 510R -> Red signal - 3 1K -> N/C - 4 N/C - 5 SONIDO A -> COP402 IN0 - 6 SONIDO B -> COP402 IN1 - 7 SONIDO C -> COP402 IN2 - */ - - draco_sound = (data & 0xe0) >> 5; -} - -WRITE8_HANDLER ( draco_sound_bankswitch_w ) -{ - memory_set_bank(1, (data & 0x08) >> 3); -} - -WRITE8_HANDLER ( draco_sound_g_w ) -{ - draco_g = data; -} - -READ8_HANDLER ( draco_sound_in_r ) -{ - return draco_sound & 0x07; -} - -WRITE8_HANDLER ( draco_sound_ay8910_w ) -{ - /* - - G1 G0 description - - 0 0 inactive - 0 1 read from PSG - 1 0 write to PSG - 1 1 latch address - - */ - - switch(draco_g) - { - case 0x02: - AY8910_write_port_0_w(0, data); - break; - - case 0x03: - AY8910_control_port_0_w(0, data); - break; - } -} - -READ8_HANDLER ( cidelsa_input_port_0_r ) -{ - return (readinputportbytag("IN0") & 0x7f) + (cdp1869_pcb ? 0x80 : 0x00); -} - -/* Memory Maps */ - -// Destroyer - -static ADDRESS_MAP_START( destryer_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x20ff) AM_RAM - AM_RANGE(0xf400, 0xf7ff) AM_READWRITE(cdp1869_charram_r, cdp1869_charram_w) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(cdp1869_pageram_r, cdp1869_pageram_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( destryea_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x3000, 0x30ff) AM_RAM - AM_RANGE(0xf400, 0xf7ff) AM_READWRITE(cdp1869_charram_r, cdp1869_charram_w) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(cdp1869_pageram_r, cdp1869_pageram_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( destryer_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READWRITE(cidelsa_input_port_0_r, destryer_out1_w) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_WRITE(cdp1870_out3_w) - AM_RANGE(0x04, 0x07) AM_WRITE(cdp1869_out_w) -ADDRESS_MAP_END - -// Altair - -static ADDRESS_MAP_START( altair_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_ROM - AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0xf400, 0xf7ff) AM_READWRITE(cdp1869_charram_r, cdp1869_charram_w) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(cdp1869_pageram_r, cdp1869_pageram_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( altair_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READWRITE(cidelsa_input_port_0_r, altair_out1_w) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_WRITE(cdp1870_out3_w) - AM_RANGE(0x04, 0x04) AM_READ(input_port_2_r) - AM_RANGE(0x04, 0x07) AM_WRITE(cdp1869_out_w) -ADDRESS_MAP_END - -// Draco - -static ADDRESS_MAP_START( draco_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM - AM_RANGE(0x8000, 0x83ff) AM_RAM - AM_RANGE(0xf400, 0xf7ff) AM_READWRITE(cdp1869_charram_r, cdp1869_charram_w) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(cdp1869_pageram_r, cdp1869_pageram_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( draco_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READWRITE(cidelsa_input_port_0_r, draco_out1_w) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_WRITE(cdp1870_out3_w) - AM_RANGE(0x04, 0x04) AM_READ(input_port_2_r) - AM_RANGE(0x04, 0x07) AM_WRITE(cdp1869_out_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( draco_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x3ff) AM_ROMBANK(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( draco_sound_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(COP400_PORT_D, COP400_PORT_D) AM_WRITE(draco_sound_bankswitch_w) - AM_RANGE(COP400_PORT_G, COP400_PORT_G) AM_WRITE(draco_sound_g_w) - AM_RANGE(COP400_PORT_L, COP400_PORT_L) AM_READWRITE(AY8910_read_port_0_r, draco_sound_ay8910_w) - AM_RANGE(COP400_PORT_IN, COP400_PORT_IN) AM_READ(draco_sound_in_r) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( destryer ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // CARTUCHO - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // 1P - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) // 2P - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // RG - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // PCB from CDP1869 - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, "Very Conserv" ) - PORT_DIPSETTING( 0x01, "Conserv" ) - PORT_DIPSETTING( 0x02, "Liberal" ) - PORT_DIPSETTING( 0x03, "Very Liberal" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "5000" ) - PORT_DIPSETTING( 0x08, "7000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, "14000" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" ) - PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" ) - PORT_DIPSETTING( 0x40, "Slot A: 2 Slot B: 4" ) - PORT_DIPSETTING( 0x00, "Slot A: 2.5 Slot B: 5" ) - - - PORT_START_TAG("EF") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) // _PREDISPLAY from CDP1869 - PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) // ST - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // M2 - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) // M1 -INPUT_PORTS_END - -INPUT_PORTS_START( altair ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // CARTUCHO - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // 1P - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) // 2P - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // RG - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // PCB from CDP1869 - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, "Very Conserv" ) - PORT_DIPSETTING( 0x01, "Conserv" ) - PORT_DIPSETTING( 0x02, "Liberal" ) - PORT_DIPSETTING( 0x03, "Very Liberal" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "5000" ) - PORT_DIPSETTING( 0x08, "7000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, "14000" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" ) - PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" ) - PORT_DIPSETTING( 0x40, "Slot A: 2 Slot B: 4" ) - PORT_DIPSETTING( 0x00, "Slot A: 2.5 Slot B: 5" ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // UP - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // DN - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) // IN - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("EF") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) // _PREDISPLAY from CDP1869 - PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) // ST - should be a button, not a dip imo. - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // M2 - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) // M1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( draco ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // CARTUCHO - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) // 1P - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) // 2P - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // RG - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // LF - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) // FR - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // PCB from CDP1869 - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, "Very Conserv" ) - PORT_DIPSETTING( 0x01, "Conserv" ) - PORT_DIPSETTING( 0x02, "Liberal" ) - PORT_DIPSETTING( 0x03, "Very Liberal" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "5000" ) - PORT_DIPSETTING( 0x08, "7000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, "14000" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Coinage) ) - PORT_DIPSETTING( 0xc0, "Slot A: 1 Slot B: 2" ) - PORT_DIPSETTING( 0x80, "Slot A: 1.5 Slot B: 3" ) - PORT_DIPSETTING( 0x40, "Slot A: 2 Slot B: 4" ) - PORT_DIPSETTING( 0x00, "Slot A: 2.5 Slot B: 5" ) - - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("EF") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) // _PREDISPLAY from CDP1869 - PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) // ST - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) // M2 - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) // M1 -INPUT_PORTS_END - -/* CDP1802 Interface */ - -// Destroyer - -static void destryer_out_q(int level) -{ - cdp1869_pcb = level; -} - -static int destryer_in_ef(void) -{ - /* - EF1 ? - EF2 ? - EF3 ? - EF4 ? - */ - - return (cdp1869_predisplay&0x01) + (readinputportbytag("EF") & 0xfe); -} - -static CDP1802_CONFIG destryer_cdp1802_config = -{ - NULL, - destryer_out_q, - destryer_in_ef -}; - -// Altair - -static void altair_out_q(int level) -{ - cdp1869_pcb = level; -} - -static int altair_in_ef(void) -{ - /* - EF1 CDP1869 _PRD - EF2 Test - EF3 Coin 2 - EF4 Coin 1 - */ - - return (cdp1869_predisplay&0x01) + (readinputportbytag("EF") & 0xfe); -} - -static CDP1802_CONFIG altair_cdp1802_config = -{ - NULL, - altair_out_q, - altair_in_ef -}; - -// Draco - -static void draco_out_q(int level) -{ - cdp1869_pcb = level; -} - -static int draco_in_ef(void) -{ - /* - EF1 CDP1869 _PRD - EF2 Test - EF3 Coin 2 - EF4 Coin 1 - */ - - return cdp1869_predisplay + (readinputportbytag("EF") & 0x0e); -} - -static CDP1802_CONFIG draco_cdp1802_config = -{ - NULL, - draco_out_q, - draco_in_ef -}; - -WRITE8_HANDLER ( draco_ay8910_port_a_w ) -{ - /* - bit description - - 0 N/C - 1 N/C - 2 N/C - 3 N/C - 4 N/C - 5 N/C - 6 N/C - 7 N/C - */ -} - -WRITE8_HANDLER ( draco_ay8910_port_b_w ) -{ - /* - bit description - - 0 RELE0 - 1 RELE1 - 2 sound output -> * -> 22K capacitor -> GND - 3 sound output -> * -> 220K capacitor -> GND - 4 5V -> 1K resistor -> * -> 10uF capacitor -> GND (volume pot voltage adjustment) - 5 N/C - 6 N/C - 7 N/C - */ -} - -static struct AY8910interface ay8910_interface = -{ - 0, - 0, - draco_ay8910_port_a_w, - draco_ay8910_port_b_w -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( draco_interrupt ) -{ - int scanline = (CPD1870_TOTAL_SCANLINES_PAL - 1) - cpu_getiloops(); - - switch (scanline) - { - case CPD1870_SCANLINE_PREDISPLAY_START_PAL: - cdp1869_predisplay = 0; - break; - - case CPD1870_SCANLINE_PREDISPLAY_END_PAL: - cdp1869_predisplay = 1; - break; - } -} - -static INTERRUPT_GEN( altair_interrupt ) -{ - int scanline = (CPD1870_TOTAL_SCANLINES_PAL - 1) - cpu_getiloops(); - - switch (scanline) - { - case CPD1870_SCANLINE_PREDISPLAY_START_PAL: - cpunum_set_input_line(0, 0, CLEAR_LINE); - cdp1869_predisplay = 1; - break; - - case CPD1870_SCANLINE_PREDISPLAY_END_PAL: - cpunum_set_input_line(0, 0, ASSERT_LINE); - cdp1869_predisplay = 0; - break; - } -} - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( destryer ) - - // basic system hardware - - MDRV_CPU_ADD(CDP1802, 3579000) // ??? - MDRV_CPU_PROGRAM_MAP(destryer_map, 0) - MDRV_CPU_IO_MAP(destryer_io_map, 0) - MDRV_CPU_CONFIG(destryer_cdp1802_config) - MDRV_CPU_VBLANK_INT(altair_interrupt, CPD1870_TOTAL_SCANLINES_PAL) - - MDRV_SCREEN_REFRESH_RATE(CDP1870_FPS_PAL) // 50.09 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(240, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 240-1, 0, 200-1) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(2*8) - - MDRV_PALETTE_INIT(cdp1869) - MDRV_VIDEO_START(cdp1869) - MDRV_VIDEO_UPDATE(cdp1869) - - // sound hardware - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CDP1869, 3579000) // ??? - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( destryea ) - - // basic system hardware - - MDRV_CPU_ADD(CDP1802, 3579000) // ??? - MDRV_CPU_PROGRAM_MAP(destryea_map, 0) - MDRV_CPU_IO_MAP(destryer_io_map, 0) - MDRV_CPU_CONFIG(destryer_cdp1802_config) - MDRV_CPU_VBLANK_INT(altair_interrupt, CPD1870_TOTAL_SCANLINES_PAL) - - MDRV_SCREEN_REFRESH_RATE(CDP1870_FPS_PAL) // 50.09 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(240, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 240-1, 0, 200-1) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(16) - - MDRV_PALETTE_INIT(cdp1869) - MDRV_VIDEO_START(cdp1869) - MDRV_VIDEO_UPDATE(cdp1869) - - // sound hardware - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CDP1869, 3579000) // ??? - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( altair ) - - // basic system hardware - - MDRV_CPU_ADD(CDP1802, 3579000) - MDRV_CPU_PROGRAM_MAP(altair_map, 0) - MDRV_CPU_IO_MAP(altair_io_map, 0) - MDRV_CPU_CONFIG(altair_cdp1802_config) - MDRV_CPU_VBLANK_INT(altair_interrupt, CPD1870_TOTAL_SCANLINES_PAL) - - MDRV_SCREEN_REFRESH_RATE(CDP1870_FPS_PAL) // 50.09 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(240, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 240-1, 0, 200-1) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(2*8) - - MDRV_PALETTE_INIT(cdp1869) - MDRV_VIDEO_START(cdp1869) - MDRV_VIDEO_UPDATE(cdp1869) - - // sound hardware - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CDP1869, 3579000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( draco ) - - // basic system hardware - - MDRV_CPU_ADD(CDP1802, 3579000) - MDRV_CPU_PROGRAM_MAP(draco_map, 0) - MDRV_CPU_IO_MAP(draco_io_map, 0) - MDRV_CPU_CONFIG(draco_cdp1802_config) - MDRV_CPU_VBLANK_INT(draco_interrupt, CPD1870_TOTAL_SCANLINES_PAL) - - MDRV_CPU_ADD(COP420, 2012160) // COP402N - MDRV_CPU_PROGRAM_MAP(draco_sound_map, 0) - MDRV_CPU_IO_MAP(draco_sound_io_map, 0) - - MDRV_SCREEN_REFRESH_RATE(CDP1870_FPS_PAL) // 50.09 Hz - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(240, 200) - MDRV_SCREEN_VISIBLE_AREA(0, 240-1, 0, 200-1) - MDRV_PALETTE_LENGTH(8) - MDRV_COLORTABLE_LENGTH(2*8) - - MDRV_PALETTE_INIT(cdp1869) - MDRV_VIDEO_START(cdp1869) - MDRV_VIDEO_UPDATE(cdp1869) - - // sound hardware - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CDP1869, 3579000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 2012160) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -/* Driver Initialization */ - -DRIVER_INIT( draco ) -{ - UINT8 *ROM = memory_region(REGION_CPU2); - memory_configure_bank(1, 0, 2, &ROM[0x000], 0x400); -} - -/* ROMs */ - -ROM_START( destryer ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "des a 2.ic4", 0x0000, 0x0800, CRC(63749870) SHA1(a8eee4509d7a52dcf33049de221d928da3632174) ) - ROM_LOAD( "des b 2.ic5", 0x0800, 0x0800, CRC(60604f40) SHA1(32ca95c5b38b0f4992e04d77123d217f143ae084) ) - ROM_LOAD( "des c 2.ic6", 0x1000, 0x0800, CRC(a7cdeb7b) SHA1(a5a7748967d4ca89fb09632e1f0130ef050dbd68) ) - ROM_LOAD( "des d 2.ic7", 0x1800, 0x0800, CRC(dbec0aea) SHA1(1d9d49009a45612ee79763781a004499313b823b) ) -ROM_END - -// this was destroyer2.rom in standalone emu.. -ROM_START( destryea ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "destryea_1", 0x0000, 0x0800, CRC(421428e9) SHA1(0ac3a1e7f61125a1cd82145fa28cbc4b93505dc9) ) - ROM_LOAD( "destryea_2", 0x0800, 0x0800, CRC(55dc8145) SHA1(a0066d3f3ac0ae56273485b74af90eeffea5e64e) ) - ROM_LOAD( "destryea_3", 0x1000, 0x0800, CRC(5557bdf8) SHA1(37a9cbc5d25051d3bed7535c58aac937cd7c64e1) ) - ROM_LOAD( "destryea_4", 0x1800, 0x0800, CRC(608b779c) SHA1(8fd6cc376c507680777553090329cc66be42a934) ) -ROM_END - -ROM_START( altair ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "alt a 1.ic7", 0x0000, 0x0800, CRC(37c26c4e) SHA1(30df7efcf5bd12dafc1cb6e894fc18e7b76d3e61) ) - ROM_LOAD( "alt b 1.ic8", 0x0800, 0x0800, CRC(76b814a4) SHA1(e8ab1d1cbcef974d929ef8edd10008f60052a607) ) - ROM_LOAD( "alt c 1.ic9", 0x1000, 0x0800, CRC(2569ce44) SHA1(a09597d2f8f50fab9a09ed9a59c50a2bdcba47bb) ) - ROM_LOAD( "alt d 1.ic10", 0x1800, 0x0800, CRC(a25e6d11) SHA1(c197ff91bb9bdd04e88908259e4cde11b990e31d) ) - ROM_LOAD( "alt e 1.ic11", 0x2000, 0x0800, CRC(e497f23b) SHA1(6094e9873df7bd88c521ddc3fd63961024687243) ) - ROM_LOAD( "alt f 1.ic12", 0x2800, 0x0800, CRC(a06dd905) SHA1(c24ad9ff6d4e3b4e57fd75f946e8832fa00c2ea0) ) -ROM_END - -ROM_START( draco ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "dra a 1.ic10", 0x0000, 0x0800, CRC(ca127984) SHA1(46721cf42b1c891f7c88bc063a2149dd3cefea74) ) - ROM_LOAD( "dra b 1.ic11", 0x0800, 0x0800, CRC(e4936e28) SHA1(ddbbf769994d32a6bce75312306468a89033f0aa) ) - ROM_LOAD( "dra c 1.ic12", 0x1000, 0x0800, CRC(94480f5d) SHA1(8f49ce0f086259371e999d097a502482c83c6e9e) ) - ROM_LOAD( "dra d 1.ic13", 0x1800, 0x0800, CRC(32075277) SHA1(2afaa92c91f554e3bdcfec6d94ef82df63032afb) ) - ROM_LOAD( "dra e 1.ic14", 0x2000, 0x0800, CRC(cce7872e) SHA1(c956eb994452bd8a27bbc6d0e6d103e87a4a3e6e) ) - ROM_LOAD( "dra f 1.ic15", 0x2800, 0x0800, CRC(e5927ec7) SHA1(42e0aabb6187bbb189648859fd5dddda43814526) ) - ROM_LOAD( "dra g 1.ic16", 0x3000, 0x0800, CRC(f28546c0) SHA1(daedf1d64f94358b15580d697dd77d3c977aa22c) ) - ROM_LOAD( "dra h 1.ic17", 0x3800, 0x0800, CRC(dce782ea) SHA1(f558096f43fb30337bc4a527169718326c265c2c) ) - - ROM_REGION( 0x800, REGION_CPU2, 0 ) - ROM_LOAD( "dra s 1.ic4", 0x0000, 0x0800, CRC(292a57f8) SHA1(b34a189394746d77c3ee669db24109ee945c3be7) ) -ROM_END - -/* Game Drivers */ - -GAME( 1980, destryer, 0, destryer, destryer, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 1)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // ok, but bad colours, some bad gfx (large enemies etc.) -GAME( 1980, destryea, destryer, destryea, destryer, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 2)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // ok, but bad colours, some bad gfx (large enemies etc.) -GAME( 1981, altair, 0, altair, altair, 0, ROT90, "Cidelsa", "Altair", GAME_NOT_WORKING | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // some bullets are invisible -GAME( 1981, draco, 0, draco, draco, draco, ROT90, "Cidelsa", "Draco", GAME_NOT_WORKING | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // crashes on game start diff --git a/src/drivers/cinemat.c b/src/drivers/cinemat.c deleted file mode 100644 index 8ed67c9b1..000000000 --- a/src/drivers/cinemat.c +++ /dev/null @@ -1,1503 +0,0 @@ -/*************************************************************************** - - Cinematronics vector hardware - - driver by Aaron Giles - - Special thanks to Neil Bradley, Zonn Moore, and Jeff Mitchell of the - Retrocade Alliance - - Games supported: - * Space Wars - * Barrier - * Star Hawk - * Star Castle - * Tailgunner - * Rip Off - * Speed Freak - * Sundance - * Warrior - * Armor Attack - * Solar Quest - * Demon - * War of the Worlds - * Boxing Bugs - * QB-3 - - To do: - * look into bad sample latency - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/vector.h" -#include "cpu/ccpu/ccpu.h" -#include "cinemat.h" -#include "rendlay.h" - -#include "starcas.lh" -#include "solarq.lh" - - -static UINT16 *rambase; - -static UINT8 coin_detected; -static UINT8 coin_last_input; -static UINT8 coin_last_reset; - -static UINT8 mux_select; - - - -/************************************* - * - * General machine init - * - *************************************/ - -MACHINE_START( cinemat ) -{ - state_save_register_global(coin_detected); - state_save_register_global(coin_last_input); - state_save_register_global(coin_last_reset); - state_save_register_global(mux_select); - return 0; -} - - -MACHINE_RESET( cinemat ) -{ - /* reset the coin states */ - coin_detected = 0; - coin_last_input = 0x80; - coin_last_reset = 0; - - /* reset mux select */ - mux_select = 0; -} - - - -/************************************* - * - * General input handlers - * - *************************************/ - -static READ8_HANDLER( inputs_r ) -{ - return (readinputportbytag("INPUTS") >> offset) & 1; -} - - -static READ8_HANDLER( switches_r ) -{ - static const UINT8 switch_shuffle[8] = { 2,5,4,3,0,1,6,7 }; - return (readinputportbytag("SWITCHES") >> switch_shuffle[offset]) & 1; -} - - - -/************************************* - * - * Coin handlers - * - *************************************/ - -static INTERRUPT_GEN( check_coins ) -{ - UINT8 new_input = readinputportbytag("SWITCHES") & 0x80; - - /* on the falling edge of a new coin, set the coin_detected flag */ - if (coin_last_input != new_input && new_input == 0x00) - coin_detected = 1; - coin_last_input = new_input; -} - - -static READ8_HANDLER( coin_input_r ) -{ - return !coin_detected; -} - - - -/************************************* - * - * General output handlers - * - *************************************/ - -static WRITE8_HANDLER( coin_reset_w ) -{ - /* on the rising edge of a coin reset, clear the coin_detected flag */ - if (coin_last_reset != data && data != 0) - coin_detected = 0; - coin_last_reset = data; -} - - -static WRITE8_HANDLER( mux_select_w ) -{ - mux_select = data; - cinemat_sound_control_w(0x07, data); -} - - - -/************************************* - * - * Joystick inputs - * - *************************************/ - -static UINT8 joystick_read(void) -{ - if (port_tag_to_index("ANALOGX") != -1) - { - int xval = (INT16)(cpunum_get_reg(0, CCPU_X) << 4) >> 4; - return (readinputportbytag(mux_select ? "ANALOGX" : "ANALOGY") - xval) < 0x800; - } - return 0; -} - - - -/************************************* - * - * Speed Freak inputs - * - *************************************/ - -static READ8_HANDLER( speedfrk_wheel_r ) -{ - static const UINT8 speedfrk_steer[] = {0xe, 0x6, 0x2, 0x0, 0x3, 0x7, 0xf}; - int delta_wheel; - - /* the shift register is cleared once per 'frame' */ - delta_wheel = (INT8)readinputportbytag("WHEEL") / 8; - if (delta_wheel > 3) - delta_wheel = 3; - else if (delta_wheel < -3) - delta_wheel = -3; - - return (speedfrk_steer[delta_wheel + 3] >> offset) & 1; -} - - -static READ8_HANDLER( speedfrk_gear_r ) -{ - static int gear = 0x0e; - int gearval = readinputportbytag("GEAR"); - - /* check the fake gear input port and determine the bit settings for the gear */ - if ((gearval & 0x0f) != 0x0f) - gear = gearval & 0x0f; - - /* add the start key into the mix -- note that it overlaps 4th gear */ - if (!(readinputportbytag("INPUTS") & 0x80)) - gear &= ~0x08; - - return (gear >> offset) & 1; -} - - - -/************************************* - * - * Sundance inputs - * - *************************************/ - -static const struct -{ - const char *portname; - UINT16 bitmask; -} sundance_port_map[16] = -{ - { "PAD1", 0x155 }, /* bit 0 is set if P1 1,3,5,7,9 is pressed */ - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - { NULL, 0 }, - - { "PAD2", 0x1a1 }, /* bit 8 is set if P2 1,6,8,9 is pressed */ - { "PAD1", 0x1a1 }, /* bit 9 is set if P1 1,6,8,9 is pressed */ - { "PAD2", 0x155 }, /* bit 10 is set if P2 1,3,5,7,9 is pressed */ - { NULL, 0 }, - - { "PAD1", 0x093 }, /* bit 12 is set if P1 1,2,5,8 is pressed */ - { "PAD2", 0x093 }, /* bit 13 is set if P2 1,2,5,8 is pressed */ - { "PAD1", 0x048 }, /* bit 14 is set if P1 4,8 is pressed */ - { "PAD2", 0x048 }, /* bit 15 is set if P2 4,8 is pressed */ -}; - - -static READ8_HANDLER( sundance_inputs_r ) -{ - /* handle special keys first */ - if (sundance_port_map[offset].portname) - return (readinputportbytag(sundance_port_map[offset].portname) & sundance_port_map[offset].bitmask) ? 0 : 1; - else - return (readinputportbytag("INPUTS") >> offset) & 1; -} - - - -/************************************* - * - * Boxing Bugs inputs - * - *************************************/ - -static READ8_HANDLER( boxingb_dial_r ) -{ - int value = readinputportbytag("DIAL"); - if (!mux_select) offset += 4; - return (value >> offset) & 1; -} - - - -/************************************* - * - * QB3 inputs & RAM banking - * - *************************************/ - -static READ8_HANDLER( qb3_frame_r ) -{ - /* note this is just an approximation... */ - return cpu_scalebyfcount(100) < 90; -} - - -static WRITE8_HANDLER( qb3_ram_bank_w ) -{ - memory_set_bank(1, cpunum_get_reg(0, CCPU_P) & 3); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( program_map_4k, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS(AMEF_ABITS(12)) - AM_RANGE(0x0000, 0x0fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( program_map_8k, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS(AMEF_ABITS(14)) - AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM - AM_RANGE(0x2000, 0x2fff) AM_MIRROR(0x1000) AM_ROM AM_REGION(REGION_CPU1, 0x1000) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( program_map_16k, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS(AMEF_ABITS(14)) - AM_RANGE(0x0000, 0x3fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( program_map_32k, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS(AMEF_ABITS(15)) - AM_RANGE(0x0000, 0x7fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( data_map, ADDRESS_SPACE_DATA, 16 ) - AM_RANGE(0x0000, 0x00ff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( data_map_qb3, ADDRESS_SPACE_DATA, 16 ) - AM_RANGE(0x0000, 0x03ff) AM_RAMBANK(1) AM_BASE(&rambase) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x0f) AM_READ(inputs_r) - AM_RANGE(0x10, 0x16) AM_READ(switches_r) - AM_RANGE(0x17, 0x17) AM_READ(coin_input_r) - - AM_RANGE(0x05, 0x05) AM_WRITE(coin_reset_w) - AM_RANGE(0x06, 0x06) AM_WRITE(cinemat_vector_control_w) - AM_RANGE(0x00, 0x07) AM_WRITE(cinemat_sound_control_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( spacewar ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 3") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 8") PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 4") PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 9") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 1") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 6") PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 2") PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 7") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 5") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Option 0") PORT_CODE(KEYCODE_0_PAD) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x00, "Time" ) - PORT_DIPSETTING( 0x03, "0:45/coin" ) - PORT_DIPSETTING( 0x00, "1:00/coin" ) - PORT_DIPSETTING( 0x01, "1:30/coin" ) - PORT_DIPSETTING( 0x02, "2:00/coin" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( barrier ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Skill A") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Skill B") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Skill C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( speedfrk ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_SPECIAL ) /* steering wheel, fake below */ - PORT_BIT( 0x0070, IP_ACTIVE_LOW, IPT_SPECIAL ) /* gear shift, fake below */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* gas */ - PORT_BIT( 0xfe00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x02, "Extra Time" ) - PORT_DIPSETTING( 0x00, "69" ) - PORT_DIPSETTING( 0x01, "99" ) - PORT_DIPSETTING( 0x02, "129" ) - PORT_DIPSETTING( 0x03, "159" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("WHEEL") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_RESET - - PORT_START_TAG("GEAR") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("1st gear") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("2nd gear") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("3rd gear") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("4th gear") PORT_PLAYER(2) -INPUT_PORTS_END - - -/* TODO: 4way or 8way stick? */ -INPUT_PORTS_START( starhawk ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x03, "2:00/4:00" ) - PORT_DIPSETTING( 0x01, "1:30/3:00" ) - PORT_DIPSETTING( 0x02, "1:00/2:00" ) - PORT_DIPSETTING( 0x00, "0:45/1:30" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( sundance ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("3 Suns") PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Toggle Grid") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("4 Suns") PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("2 Suns") PORT_CODE(KEYCODE_COMMA) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */ - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x02, "Time" ) - PORT_DIPSETTING( 0x00, "0:45/coin" ) - PORT_DIPSETTING( 0x02, "1:00/coin" ) - PORT_DIPSETTING( 0x01, "1:30/coin" ) - PORT_DIPSETTING( 0x03, "2:00/coin" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* supposedly coinage, doesn't work */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("PAD1") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 1") PORT_CODE(KEYCODE_7_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 2") PORT_CODE(KEYCODE_8_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 3") PORT_CODE(KEYCODE_9_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 4") PORT_CODE(KEYCODE_4_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 5") PORT_CODE(KEYCODE_5_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 6") PORT_CODE(KEYCODE_6_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 7") PORT_CODE(KEYCODE_1_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 8") PORT_CODE(KEYCODE_2_PAD) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 9") PORT_CODE(KEYCODE_3_PAD) PORT_PLAYER(1) - - PORT_START_TAG("PAD2") - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 1") PORT_CODE(KEYCODE_Q) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 2") PORT_CODE(KEYCODE_W) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 3") PORT_CODE(KEYCODE_E) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 4") PORT_CODE(KEYCODE_A) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 5") PORT_CODE(KEYCODE_S) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 6") PORT_CODE(KEYCODE_D) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 7") PORT_CODE(KEYCODE_Z) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 8") PORT_CODE(KEYCODE_X) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 9") PORT_CODE(KEYCODE_C) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( tailg ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x23, 0x23, "Shield Points" ) - PORT_DIPSETTING( 0x00, "15" ) - PORT_DIPSETTING( 0x02, "20" ) - PORT_DIPSETTING( 0x01, "30" ) - PORT_DIPSETTING( 0x03, "40" ) - PORT_DIPSETTING( 0x20, "50" ) - PORT_DIPSETTING( 0x22, "60" ) - PORT_DIPSETTING( 0x21, "70" ) - PORT_DIPSETTING( 0x23, "80" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("ANALOGX") - PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_X ) PORT_MINMAX(0x200,0xe00) PORT_SENSITIVITY(100) PORT_KEYDELTA(50) - - PORT_START_TAG("ANALOGY") - PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_Y ) PORT_MINMAX(0x200,0xe00) PORT_SENSITIVITY(100) PORT_KEYDELTA(50) -INPUT_PORTS_END - - -INPUT_PORTS_START( warrior ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( armora ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0fc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ripoff ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0fc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x03, "8" ) - PORT_DIPSETTING( 0x00, "12" ) - PORT_DIPSETTING( 0x02, "16" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Scores" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPSETTING( 0x20, "Combined" ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( starcas ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0038, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( solarq ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) /* nova */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* fire */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* thrust */ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* hyperspace */ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x05, 0x05, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, "25 captures" ) - PORT_DIPSETTING( 0x00, "40 captures" ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x18, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( boxingb ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0fc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xf000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* dial */ - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30,000" ) - PORT_DIPSETTING( 0x08, "50,000" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("DIAL") - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_REVERSE PORT_SENSITIVITY(100) PORT_KEYDELTA(5) -INPUT_PORTS_END - - -INPUT_PORTS_START( wotw ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0038, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( demon ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* also mapped to Button 3, player 2 */ - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3") - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x08, "5" ) - PORT_DIPSETTING( 0x0c, "6" ) - PORT_DIPNAME( 0x30, 0x30, "Starting Difficulty" ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "10" ) -/* PORT_DIPSETTING( 0x20, "1" )*/ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( qb3 ) - PORT_START_TAG("INPUTS") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) // read at $1a5; if 0 add 8 to $25 - PORT_DIPNAME( 0x0200, 0x0200, "Debug" ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) // read at $c7; jmp to $3AF1 if 0 - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) - PORT_DIPNAME( 0x1000, 0x1000, "Infinite Lives" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) - - PORT_START_TAG("SWITCHES") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) // read at $244, $2c1 - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) // read at $27d - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // read at $282 - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - - -/************************************* - * - * CPU configurations - * - *************************************/ - -static struct CCPUConfig config_nojmi = -{ - joystick_read, - cinemat_vector_callback -}; - -static struct CCPUConfig config_jmi = -{ - NULL, - cinemat_vector_callback -}; - - - -/************************************* - * - * Core machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( cinemat_nojmi_4k ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", CCPU, 5000000) - MDRV_CPU_CONFIG(config_nojmi) - MDRV_CPU_PROGRAM_MAP(program_map_4k,0) - MDRV_CPU_DATA_MAP(data_map,0) - MDRV_CPU_IO_MAP(io_map,0) - MDRV_CPU_VBLANK_INT(check_coins,1) - - MDRV_SCREEN_REFRESH_RATE(38) - MDRV_MACHINE_START(cinemat) - MDRV_MACHINE_RESET(cinemat) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 1023, 0, 767) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(cinemat_bilevel) - MDRV_VIDEO_EOF(cinemat) - MDRV_VIDEO_UPDATE(vector) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cinemat_jmi_4k ) - MDRV_IMPORT_FROM(cinemat_nojmi_4k) - MDRV_CPU_MODIFY("main") - MDRV_CPU_CONFIG(config_jmi) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cinemat_nojmi_8k ) - MDRV_IMPORT_FROM(cinemat_nojmi_4k) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(program_map_8k,0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cinemat_jmi_8k ) - MDRV_IMPORT_FROM(cinemat_jmi_4k) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(program_map_8k,0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cinemat_jmi_16k ) - MDRV_IMPORT_FROM(cinemat_jmi_4k) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(program_map_16k,0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cinemat_jmi_32k ) - MDRV_IMPORT_FROM(cinemat_jmi_4k) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(program_map_32k,0) -MACHINE_DRIVER_END - - - - -/************************************* - * - * Game-specific machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( spacewar ) - MDRV_IMPORT_FROM(cinemat_nojmi_4k) - MDRV_IMPORT_FROM(spacewar_sound) - MDRV_VIDEO_UPDATE(spacewar) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( barrier ) - MDRV_IMPORT_FROM(cinemat_jmi_4k) - MDRV_IMPORT_FROM(barrier_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( speedfrk ) - MDRV_IMPORT_FROM(cinemat_nojmi_8k) - MDRV_IMPORT_FROM(speedfrk_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( starhawk ) - MDRV_IMPORT_FROM(cinemat_jmi_4k) - MDRV_IMPORT_FROM(starhawk_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( sundance ) - MDRV_IMPORT_FROM(cinemat_jmi_8k) - MDRV_IMPORT_FROM(sundance_sound) - MDRV_VIDEO_START(cinemat_16level) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tailg ) - MDRV_IMPORT_FROM(cinemat_nojmi_8k) - MDRV_IMPORT_FROM(tailg_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( warrior ) - MDRV_IMPORT_FROM(cinemat_jmi_8k) - MDRV_IMPORT_FROM(warrior_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( armora ) - MDRV_IMPORT_FROM(cinemat_jmi_16k) - MDRV_IMPORT_FROM(armora_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ripoff ) - MDRV_IMPORT_FROM(cinemat_jmi_8k) - MDRV_IMPORT_FROM(ripoff_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( starcas ) - MDRV_IMPORT_FROM(cinemat_jmi_8k) - MDRV_IMPORT_FROM(starcas_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( solarq ) - MDRV_IMPORT_FROM(cinemat_jmi_16k) - MDRV_IMPORT_FROM(solarq_sound) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_VIDEO_START(cinemat_64level) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( boxingb ) - MDRV_IMPORT_FROM(cinemat_jmi_32k) - MDRV_IMPORT_FROM(boxingb_sound) - MDRV_SCREEN_VISIBLE_AREA(0, 1024, 0, 788) - MDRV_VIDEO_START(cinemat_color) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( wotw ) - MDRV_IMPORT_FROM(cinemat_jmi_16k) - MDRV_IMPORT_FROM(wotw_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( wotwc ) - MDRV_IMPORT_FROM(cinemat_jmi_16k) - MDRV_IMPORT_FROM(wotwc_sound) - MDRV_VIDEO_START(cinemat_color) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( demon ) - MDRV_IMPORT_FROM(cinemat_jmi_16k) - MDRV_IMPORT_FROM(demon_sound) - MDRV_SCREEN_VISIBLE_AREA(0, 1024, 0, 805) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qb3 ) - MDRV_IMPORT_FROM(cinemat_jmi_32k) - MDRV_IMPORT_FROM(qb3_sound) - MDRV_CPU_MODIFY("main") - MDRV_CPU_DATA_MAP(data_map_qb3,0) - MDRV_SCREEN_VISIBLE_AREA(0, 1120, 0, 780) - MDRV_VIDEO_START(cinemat_qb3color) -MACHINE_DRIVER_END - - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -#define CCPU_PROMS \ - ROM_REGION( 0x1a0, REGION_PROMS, ROMREGION_DISPOSE ) \ - ROM_LOAD("prom.f14", 0x000, 0x100, CRC(9edbf536) SHA1(036ad8a231284e05f44b1106d38fc0c7e041b6e8) ) \ - ROM_LOAD("prom.e14", 0x100, 0x020, CRC(29dbfb87) SHA1(d8c40ab010b2ea30f29b2c443819e2b69f376c04) ) \ - ROM_LOAD("prom.d14", 0x120, 0x020, CRC(9a05afbf) SHA1(5d806a42424942ba5ef0b70a1d629315b37f931b) ) \ - ROM_LOAD("prom.c14", 0x140, 0x020, CRC(07492cda) SHA1(32df9148797c23f70db47b840139c40e046dd710) ) \ - ROM_LOAD("prom.j14", 0x160, 0x020, CRC(a481ca71) SHA1(ce145d61686f600cc16b77febfd5c783bf8c13b0) ) \ - ROM_LOAD("prom.e8", 0x180, 0x020, CRC(791ec9e1) SHA1(6f7fcce4aa3be9020595235568381588adaab88e) ) \ - - -ROM_START( spacewar ) - ROM_REGION( 0x1000, REGION_CPU1, 0 ) /* 4k for code */ - ROM_LOAD16_BYTE( "spacewar.1l", 0x0000, 0x0800, CRC(edf0fd53) SHA1(a543d8b95bc77ec061c6b10161a6f3e07401e251) ) - ROM_LOAD16_BYTE( "spacewar.2r", 0x0001, 0x0800, CRC(4f21328b) SHA1(8889f1a9353d6bb1e1078829c1ba77557853739b) ) - - CCPU_PROMS -ROM_END - - -ROM_START( barrier ) - ROM_REGION( 0x1000, REGION_CPU1, 0 ) /* 4k for code */ - ROM_LOAD16_BYTE( "barrier.t7", 0x0000, 0x0800, CRC(7c3d68c8) SHA1(1138029552b73e94522b3b48096befc057d603c7) ) - ROM_LOAD16_BYTE( "barrier.p7", 0x0001, 0x0800, CRC(aec142b5) SHA1(b268936b82e072f38f1f1dd54e0bc88bcdf19925) ) - - CCPU_PROMS -ROM_END - - -ROM_START( speedfrk ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "speedfrk.t7", 0x0000, 0x0800, CRC(3552c03f) SHA1(c233dd064195b336556d7405b51065389b228c78) ) - ROM_LOAD16_BYTE( "speedfrk.p7", 0x0001, 0x0800, CRC(4b90cdec) SHA1(69e2312acdc22ef52236b1c4dfee9f51fcdcaa52) ) - ROM_LOAD16_BYTE( "speedfrk.u7", 0x1000, 0x0800, CRC(616c7cf9) SHA1(3c5bf59a09d85261f69e4b9d499cb7a93d79fb57) ) - ROM_LOAD16_BYTE( "speedfrk.r7", 0x1001, 0x0800, CRC(fbe90d63) SHA1(e42b17133464ae48c90263bba01a7d041e938a05) ) - - CCPU_PROMS -ROM_END - - -ROM_START( starhawk ) - ROM_REGION( 0x1000, REGION_CPU1, 0 ) /* 4k for code */ - ROM_LOAD16_BYTE( "u7", 0x0000, 0x0800, CRC(376e6c5c) SHA1(7d9530ed2e75464578b541f61408ba64ee9d2a95) ) - ROM_LOAD16_BYTE( "r7", 0x0001, 0x0800, CRC(bb71144f) SHA1(79591cd3ef8df78ec26e158f7e82ca0dcd72260d) ) - - CCPU_PROMS -ROM_END - - -ROM_START( sundance ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "sundance.t7", 0x0000, 0x0800, CRC(d5b9cb19) SHA1(72dca386b48a582186898c32123d61b4fd58632e) ) - ROM_LOAD16_BYTE( "sundance.p7", 0x0001, 0x0800, CRC(445c4f20) SHA1(972d0b0613f154ee3347206cae05ee8c36796f84) ) - ROM_LOAD16_BYTE( "sundance.u7", 0x1000, 0x0800, CRC(67887d48) SHA1(be225dbd3508fad2711286834880065a4fc0a2fc) ) - ROM_LOAD16_BYTE( "sundance.r7", 0x1001, 0x0800, CRC(10b77ebd) SHA1(3d43bd47c498d5ea74a7322f8d25dbc0c0187534) ) - - CCPU_PROMS -ROM_END - - -ROM_START( tailg ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "tgunner.t70", 0x0000, 0x0800, CRC(21ec9a04) SHA1(b442f34360d1d4769e7bca73a2d79ce97d335460) ) - ROM_LOAD16_BYTE( "tgunner.p70", 0x0001, 0x0800, CRC(8d7410b3) SHA1(59ead49bd229a873f15334d0999c872d3d6581d4) ) - ROM_LOAD16_BYTE( "tgunner.t71", 0x1000, 0x0800, CRC(2c954ab6) SHA1(9edf189a19b50a9abf458d4ef8ba25b53934385e) ) - ROM_LOAD16_BYTE( "tgunner.p71", 0x1001, 0x0800, CRC(8e2c8494) SHA1(65e461ec4938f9895e5ac31442193e06c8731dc1) ) - - CCPU_PROMS -ROM_END - - -ROM_START( warrior ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "warrior.t7", 0x0000, 0x0800, CRC(ac3646f9) SHA1(515c3acb638fad27fa57f6b438c8ec0b5b76f319) ) - ROM_LOAD16_BYTE( "warrior.p7", 0x0001, 0x0800, CRC(517d3021) SHA1(0483dcaf92c336a07d2c535823348ee886567e85) ) - ROM_LOAD16_BYTE( "warrior.u7", 0x1000, 0x0800, CRC(2e39340f) SHA1(4b3cfb3674dd2a668d4d65e28cb37d7ad20f118d) ) - ROM_LOAD16_BYTE( "warrior.r7", 0x1001, 0x0800, CRC(8e91b502) SHA1(27614c3a8613f49187039cfb05ee96303caf72ba) ) - - CCPU_PROMS -ROM_END - - -ROM_START( armora ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "ar414le.t6", 0x0000, 0x1000, CRC(d7e71f84) SHA1(0b29278a6a698f07eae597bc0a8650e91eaabffa) ) - ROM_LOAD16_BYTE( "ar414lo.p6", 0x0001, 0x1000, CRC(df1c2370) SHA1(b74834d1a591a741892ec41269a831d3590ff766) ) - ROM_LOAD16_BYTE( "ar414ue.u6", 0x2000, 0x1000, CRC(b0276118) SHA1(88f33cb2f46a89819c85f810c7cff812e918391e) ) - ROM_LOAD16_BYTE( "ar414uo.r6", 0x2001, 0x1000, CRC(229d779f) SHA1(0cbdd83eb224146944049346f30d9c72d3ad5f52) ) - - CCPU_PROMS -ROM_END - -ROM_START( armorap ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "ar414le.t6", 0x0000, 0x1000, CRC(d7e71f84) SHA1(0b29278a6a698f07eae597bc0a8650e91eaabffa) ) - ROM_LOAD16_BYTE( "ar414lo.p6", 0x0001, 0x1000, CRC(df1c2370) SHA1(b74834d1a591a741892ec41269a831d3590ff766) ) - ROM_LOAD16_BYTE( "armorp.u7", 0x2000, 0x1000, CRC(4a86bd8a) SHA1(36647805c40688588dde81c7cbf4fe356b0974fc) ) - ROM_LOAD16_BYTE( "armorp.r7", 0x2001, 0x1000, CRC(d2dd4eae) SHA1(09afaeb0b8f88edb17e42bd2d754af0ae53e609a) ) - - CCPU_PROMS -ROM_END - -ROM_START( armorar ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "armorr.t7", 0x0000, 0x0800, CRC(256d1ed9) SHA1(8c101356c3fe93f2f49d5dc9d739f3b37cdb98b5) ) - ROM_RELOAD( 0x1000, 0x0800 ) - ROM_LOAD16_BYTE( "armorr.p7", 0x0001, 0x0800, CRC(bf75c158) SHA1(4d52630ae0ea2ad16bb5f577ad6d21f52e2f0a3c) ) - ROM_RELOAD( 0x1001, 0x0800 ) - ROM_LOAD16_BYTE( "armorr.u7", 0x2000, 0x0800, CRC(ba68331d) SHA1(871c3f5b6c2845f270e3a272fdb07aed8b527641) ) - ROM_RELOAD( 0x3000, 0x0800 ) - ROM_LOAD16_BYTE( "armorr.r7", 0x2001, 0x0800, CRC(fa14c0b3) SHA1(37b233f0dac51eaf7d325628a6cced9367b6b6cb) ) - ROM_RELOAD( 0x3001, 0x0800 ) - - CCPU_PROMS -ROM_END - - -ROM_START( ripoff ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "ripoff.t7", 0x0000, 0x0800, CRC(40c2c5b8) SHA1(bc1f3b540475c9868443a72790a959b1f36b93c6) ) - ROM_LOAD16_BYTE( "ripoff.p7", 0x0001, 0x0800, CRC(a9208afb) SHA1(ea362494855be27a07014832b01e65c1645385d0) ) - ROM_LOAD16_BYTE( "ripoff.u7", 0x1000, 0x0800, CRC(29c13701) SHA1(5e7672deffac1fa8f289686a5527adf7e51eb0bb) ) - ROM_LOAD16_BYTE( "ripoff.r7", 0x1001, 0x0800, CRC(150bd4c8) SHA1(e1e2f0dfec4f53d8ff67b0e990514c304f496b3a) ) - - CCPU_PROMS -ROM_END - - -ROM_START( starcas ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "starcas3.t7", 0x0000, 0x0800, CRC(b5838b5d) SHA1(6ac30be55514cba55180c85af69072b5056d1d4c) ) - ROM_LOAD16_BYTE( "starcas3.p7", 0x0001, 0x0800, CRC(f6bc2f4d) SHA1(ef6f01556b154cfb3e37b2a99d6ea6292e5ec844) ) - ROM_LOAD16_BYTE( "starcas3.u7", 0x1000, 0x0800, CRC(188cd97c) SHA1(c021e93a01e9c65013073de551a8c24fd1a68bde) ) - ROM_LOAD16_BYTE( "starcas3.r7", 0x1001, 0x0800, CRC(c367b69d) SHA1(98354d34ceb03e080b1846611d533be7bdff01cc) ) - - CCPU_PROMS -ROM_END - -ROM_START( starcasp ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "starcasp.t7", 0x0000, 0x0800, CRC(d2c551a2) SHA1(90b5e1c6988839b812028f1baaea16420c011c08) ) - ROM_LOAD16_BYTE( "starcasp.p7", 0x0001, 0x0800, CRC(baa4e422) SHA1(9035ac675fcbbb93ae3f658339fdfaef47796dab) ) - ROM_LOAD16_BYTE( "starcasp.u7", 0x1000, 0x0800, CRC(26941991) SHA1(4417f2f3e437c1f39ff389362467928f57045d74) ) - ROM_LOAD16_BYTE( "starcasp.r7", 0x1001, 0x0800, CRC(5dd151e5) SHA1(f3b0e2bd3121ac0649938eb2f676d171bcc7d4dd) ) - - CCPU_PROMS -ROM_END - -ROM_START( starcas1 ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "starcast.t7", 0x0000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) ) - ROM_LOAD16_BYTE( "starcast.p7", 0x0001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) ) - ROM_LOAD16_BYTE( "starcast.u7", 0x1000, 0x0800, CRC(d4f35b82) SHA1(cd4561ce8e1d0554ac1a8925bbf46d2c676a3b80) ) - ROM_LOAD16_BYTE( "starcast.r7", 0x1001, 0x0800, CRC(9fd3de54) SHA1(17195a490b190e68660829850ff9d702ca1939bb) ) - - CCPU_PROMS -ROM_END - -ROM_START( starcase ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "starcast.t7", 0x0000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) ) - ROM_LOAD16_BYTE( "starcast.p7", 0x0001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) ) - ROM_LOAD16_BYTE( "starcast.u7", 0x1000, 0x0800, CRC(d4f35b82) SHA1(cd4561ce8e1d0554ac1a8925bbf46d2c676a3b80) ) - ROM_LOAD16_BYTE( "mottoeis.r7", 0x1001, 0x0800, CRC(a2c1ed52) SHA1(ed9743f44ee98c9e7c2a6819ec681af7c7a97fc9) ) - - CCPU_PROMS -ROM_END - -ROM_START( stellcas ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "starcast.t7", 0x0000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) ) - ROM_LOAD16_BYTE( "starcast.p7", 0x0001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) ) - ROM_LOAD16_BYTE( "elttron.u7", 0x1000, 0x0800, CRC(d5b44050) SHA1(a5dd6050ab1a3b0275a229845bc5e9524e2da69c) ) - ROM_LOAD16_BYTE( "elttron.r7", 0x1001, 0x0800, CRC(6f1f261e) SHA1(a22a52af12a5cfbb9031fdd12c9c78db28f28ff1) ) - - CCPU_PROMS -ROM_END - -ROM_START( spaceftr ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) /* 8k for code */ - ROM_LOAD16_BYTE( "fortrest7.7t", 0x0000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) ) - ROM_LOAD16_BYTE( "fortresp7.7p", 0x0001, 0x0800, CRC(1a32aed6) SHA1(89c16a33288265e06e6fbd8426ba4ee9d81c221f) ) - ROM_LOAD16_BYTE( "fortresu7.7u", 0x1000, 0x0800, CRC(13b0287c) SHA1(366a23fd10684975bd5ee190e5227e47a0298ad5) ) - ROM_LOAD16_BYTE( "fortresr7.7r", 0x1001, 0x0800, CRC(a2c1ed52) SHA1(ed9743f44ee98c9e7c2a6819ec681af7c7a97fc9) ) - - CCPU_PROMS -ROM_END - - -ROM_START( solarq ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "solar.6t", 0x0000, 0x1000, CRC(1f3c5333) SHA1(58d847b5f009a0363ae116768b22d0bcfb3d60a4) ) - ROM_LOAD16_BYTE( "solar.6p", 0x0001, 0x1000, CRC(d6c16bcc) SHA1(6953bdc698da060d37f6bc33a810ba44595b1257) ) - ROM_LOAD16_BYTE( "solar.6u", 0x2000, 0x1000, CRC(a5970e5c) SHA1(9ac07924ca86d003964022cffdd6a0436dde5624) ) - ROM_LOAD16_BYTE( "solar.6r", 0x2001, 0x1000, CRC(b763fff2) SHA1(af1fd978e46a4aee3048e6e36c409821d986f7ee) ) - - CCPU_PROMS -ROM_END - - -ROM_START( boxingb ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD16_BYTE( "u1a", 0x0000, 0x1000, CRC(d3115b0f) SHA1(9448e7ac1cdb5c7e0739623151be230ab630c4ea) ) - ROM_LOAD16_BYTE( "u1b", 0x0001, 0x1000, CRC(3a44268d) SHA1(876ebe942ded787cfe357563a33d3e26a1483c5a) ) - ROM_LOAD16_BYTE( "u2a", 0x2000, 0x1000, CRC(c97a9cbb) SHA1(8bdeb9ee6b24c0a4554bbf4532a43481a0360019) ) - ROM_LOAD16_BYTE( "u2b", 0x2001, 0x1000, CRC(98d34ff5) SHA1(6767a02a99a01712383300f9acb96cdeffbc9c69) ) - ROM_LOAD16_BYTE( "u3a", 0x4000, 0x1000, CRC(5bb3269b) SHA1(a9dbc91b1455760f10bad0d2ccf540e040a00d4e) ) - ROM_LOAD16_BYTE( "u3b", 0x4001, 0x1000, CRC(85bf83ad) SHA1(9229042e39c53fae56dc93f8996bf3a3fcd35cb8) ) - ROM_LOAD16_BYTE( "u4a", 0x6000, 0x1000, CRC(25b51799) SHA1(46465fe62907ae66a0ce730581e4e9ba330d4369) ) - ROM_LOAD16_BYTE( "u4b", 0x6001, 0x1000, CRC(7f41de6a) SHA1(d01dffad3cb6e76c535a034ea0277dce5801c5f1) ) - - CCPU_PROMS -ROM_END - - -ROM_START( wotw ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "wow_le.t7", 0x0000, 0x1000, CRC(b16440f9) SHA1(9656a26814736f8ff73575063b5ebbb2e8aa7dd0) ) - ROM_LOAD16_BYTE( "wow_lo.p7", 0x0001, 0x1000, CRC(bfdf4a5a) SHA1(db4eceb68e17020d0a597ba105ec3b91ce48b7c1) ) - ROM_LOAD16_BYTE( "wow_ue.u7", 0x2000, 0x1000, CRC(9b5cea48) SHA1(c2bc002e550a0d36e713d07f6aefa79c70b8e284) ) - ROM_LOAD16_BYTE( "wow_uo.r7", 0x2001, 0x1000, CRC(c9d3c866) SHA1(57a47bf06838fe562981321249fe5ae585316f22) ) - - CCPU_PROMS -ROM_END - -ROM_START( wotwc ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "wow_le.t7", 0x0000, 0x1000, CRC(b16440f9) SHA1(9656a26814736f8ff73575063b5ebbb2e8aa7dd0) ) - ROM_LOAD16_BYTE( "wow_lo.p7", 0x0001, 0x1000, CRC(bfdf4a5a) SHA1(db4eceb68e17020d0a597ba105ec3b91ce48b7c1) ) - ROM_LOAD16_BYTE( "wow_ue.u7", 0x2000, 0x1000, CRC(9b5cea48) SHA1(c2bc002e550a0d36e713d07f6aefa79c70b8e284) ) - ROM_LOAD16_BYTE( "wow_uo.r7", 0x2001, 0x1000, CRC(c9d3c866) SHA1(57a47bf06838fe562981321249fe5ae585316f22) ) - - CCPU_PROMS -ROM_END - - -ROM_START( demon ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) /* 16k for code */ - ROM_LOAD16_BYTE( "demon.7t", 0x0000, 0x1000, CRC(866596c1) SHA1(65202dcd5c6bf6c11fe76a89682a1505b1870cc9) ) - ROM_LOAD16_BYTE( "demon.7p", 0x0001, 0x1000, CRC(1109e2f1) SHA1(c779b6af1ca09e2e295fc9a0e221ddf283b683ed) ) - ROM_LOAD16_BYTE( "demon.7u", 0x2000, 0x1000, CRC(d447a3c3) SHA1(32f6fb01231aa4f3d93e32d639a89f0cf9624a71) ) - ROM_LOAD16_BYTE( "demon.7r", 0x2001, 0x1000, CRC(64b515f0) SHA1(2dd9a6d784ec1baf31e8c6797ddfdc1423c69470) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "demon.snd", 0x0000, 0x1000, CRC(1e2cc262) SHA1(2aae537574ac69c92a3c6400b971e994de88d915) ) - - CCPU_PROMS -ROM_END - - -ROM_START( qb3 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD16_BYTE( "qb3_le_t7.bin", 0x0000, 0x2000, CRC(adaaee4c) SHA1(35c6bbb50646a3ddec12f115fcf3f2283e15b0a0) ) - ROM_LOAD16_BYTE( "qb3_lo_p7.bin", 0x0001, 0x2000, CRC(72f6199f) SHA1(ae8f81f218940cfc3aef8f82dfe8cc14220770ce) ) - ROM_LOAD16_BYTE( "qb3_ue_u7.bin", 0x4000, 0x2000, CRC(050a996d) SHA1(bf29236112746b5925b29fb231f152a4bde3f4f9) ) - ROM_LOAD16_BYTE( "qb3_uo_r7.bin", 0x4001, 0x2000, CRC(33fa77a2) SHA1(27a6853f8c2614a2abd7bfb9a62c357797312068) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "qb3_snd_u12.bin", 0x0000, 0x1000, CRC(f86663de) SHA1(29c7e75ba22be00d59fc8de5de6d94fcee287a09) ) - ROM_LOAD( "qb3_snd_u11.bin", 0x1000, 0x1000, CRC(32ed58fc) SHA1(483a19f0d540d7d348fce4274fba254ee95bc8d6) ) - - CCPU_PROMS -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static DRIVER_INIT( speedfrk ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x00, 0x03, 0, 0, speedfrk_wheel_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x04, 0x06, 0, 0, speedfrk_gear_r); -} - - -static DRIVER_INIT( sundance ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x00, 0x0f, 0, 0, sundance_inputs_r); -} - - -static DRIVER_INIT( tailg ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x07, 0x07, 0, 0, mux_select_w); -} - - -static DRIVER_INIT( boxingb ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x0c, 0x0f, 0, 0, boxingb_dial_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x07, 0x07, 0, 0, mux_select_w); -} - - -static DRIVER_INIT( qb3 ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x0f, 0x0f, 0, 0, qb3_frame_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x00, 0x00, 0, 0, qb3_ram_bank_w); - - memory_configure_bank(1, 0, 4, rambase, 0x100*2); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1977, spacewar, 0, spacewar, spacewar, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Space Wars", GAME_SUPPORTS_SAVE ) -GAME( 1979, barrier, 0, barrier, barrier, 0, ORIENTATION_FLIP_X ^ ROT270, "Vectorbeam", "Barrier", GAME_SUPPORTS_SAVE ) -GAME( 1979, speedfrk, 0, speedfrk, speedfrk, speedfrk, ORIENTATION_FLIP_Y, "Vectorbeam", "Speed Freak", GAME_NO_SOUND ) -GAME( 1979, starhawk, 0, starhawk, starhawk, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Hawk", GAME_SUPPORTS_SAVE ) -GAMEL(1979, sundance, 0, sundance, sundance, sundance, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics", "Sundance", GAME_SUPPORTS_SAVE, layout_voffff20 ) -GAMEL(1979, tailg, 0, tailg, tailg, tailg, ORIENTATION_FLIP_Y, "Cinematronics", "Tailgunner", GAME_SUPPORTS_SAVE, layout_ho20ffff ) -GAME( 1979, warrior, 0, warrior, warrior, 0, ORIENTATION_FLIP_Y, "Vectorbeam", "Warrior", GAME_SUPPORTS_SAVE ) -GAME( 1980, armora, 0, armora, armora, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack", GAME_SUPPORTS_SAVE ) -GAME( 1980, armorap, armora, armora, armora, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack (prototype)", GAME_SUPPORTS_SAVE ) -GAME( 1980, armorar, armora, armora, armora, 0, ORIENTATION_FLIP_Y, "Cinematronics (Rock-ola license)", "Armor Attack (Rock-ola)", GAME_SUPPORTS_SAVE ) -GAME( 1980, ripoff, 0, ripoff, ripoff, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Rip Off", GAME_SUPPORTS_SAVE ) -GAMEL(1980, starcas, 0, starcas, starcas, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (version 3)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcas1, starcas, starcas, starcas, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (older)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcasp, starcas, starcas, starcas, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (prototype)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, starcase, starcas, starcas, starcas, 0, ORIENTATION_FLIP_Y, "Cinematronics (Mottoeis license)", "Star Castle (Mottoeis)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1980, stellcas, starcas, starcas, starcas, 0, ORIENTATION_FLIP_Y, "bootleg", "Stellar Castle (Elettronolo)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1981, spaceftr, starcas, starcas, starcas, 0, ORIENTATION_FLIP_Y, "Zaccaria", "Space Fortress (Zaccaria)", GAME_SUPPORTS_SAVE, layout_starcas ) -GAMEL(1981, solarq, 0, solarq, solarq, 0, ORIENTATION_FLIP_Y ^ ORIENTATION_FLIP_X, "Cinematronics", "Solar Quest", GAME_SUPPORTS_SAVE, layout_solarq ) -GAME( 1981, boxingb, 0, boxingb, boxingb, boxingb, ORIENTATION_FLIP_Y, "Cinematronics", "Boxing Bugs", GAME_SUPPORTS_SAVE ) -GAME( 1981, wotw, 0, wotw, wotw, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds", GAME_SUPPORTS_SAVE ) -GAME( 1981, wotwc, wotw, wotwc, wotw, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds (color)", GAME_SUPPORTS_SAVE ) -GAME( 1982, demon, 0, demon, demon, 0, ORIENTATION_FLIP_Y, "Rock-ola", "Demon", GAME_SUPPORTS_SAVE ) -GAME( 1982, qb3, 0, qb3, qb3, qb3, ORIENTATION_FLIP_Y, "Rock-ola", "QB-3 (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/circus.c b/src/drivers/circus.c deleted file mode 100644 index 7554b592a..000000000 --- a/src/drivers/circus.c +++ /dev/null @@ -1,543 +0,0 @@ -/*************************************************************************** - -Circus memory map - -driver by Mike Coates - -0000-00FF Base Page RAM -0100-01FF Stack RAM -1000-1FFF ROM -2000 Clown Verticle Position -3000 Clown Horizontal Position -4000-43FF Video RAM -8000 Clown Rotation and Audio Controls -F000-FFF7 ROM -FFF8-FFFF Interrupt and Reset Vectors - -A000 Control Switches -C000 Option Switches -D000 Paddle Position and Interrupt Reset - - CHANGES: - MAB 09 MAR 99 - changed overlay support to use artwork functions - AAT 12 MAY 02 - General: fixed red and white hue and removed dirty flags. - Ripcord: rewrote video driver, fixed gameplay, flipped - control and tuned DIP switches. - (Thanks Gregf for introducing these cool classics.) - -***************************************************************************/ - -#include "driver.h" -#include "sound/samples.h" -#include "circus.h" - -#include "circus.lh" -#include "crash.lh" - -#if 0 -static int circus_interrupt; - -static READ8_HANDLER( ripcord_IN2_r ) -{ - circus_interrupt ++; - logerror("circus_int: %02x\n", circus_interrupt); - return readinputport (2); -} -#endif - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0x8000) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_1_r) /* DSW */ - AM_RANGE(0xd000, 0xd000) AM_READ(input_port_2_r) //AT - //AM_RANGE(0xd000, 0xd000) AM_READ(ripcord_IN2_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x2000) AM_WRITE(circus_clown_x_w) - AM_RANGE(0x3000, 0x3000) AM_WRITE(circus_clown_y_w) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(circus_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8000, 0x8000) AM_WRITE(circus_clown_z_w) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -INPUT_PORTS_START( circus ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x7c, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* Dip Switch */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x02, "7" ) - PORT_DIPSETTING( 0x03, "9" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Coinage ) ) -// PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x00, "High Score" ) - PORT_DIPSETTING( 0x10, "Credit Awarded" ) - PORT_DIPSETTING( 0x00, "No Award" ) - PORT_DIPNAME( 0x20, 0x00, "Bonus" ) - PORT_DIPSETTING( 0x00, "Single Line" ) - PORT_DIPSETTING( 0x20, "Super Bonus" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* IN2 - paddle */ - PORT_BIT( 0xff, 115, IPT_PADDLE ) PORT_MINMAX(64,167) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) -INPUT_PORTS_END - - -INPUT_PORTS_START( robotbwl ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Hook Right") PORT_CODE(KEYCODE_X) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Hook Left") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* Dip Switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Beer Frame" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) -// PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x60, 0x00, "Bowl Timer" ) - PORT_DIPSETTING( 0x00, "3 seconds" ) - PORT_DIPSETTING( 0x20, "5 seconds" ) - PORT_DIPSETTING( 0x40, "7 seconds" ) - PORT_DIPSETTING( 0x60, "9 seconds" ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - - -INPUT_PORTS_START( crash ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* Dip Switch */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0C, 0x04, DEF_STR( Coinage ) ) -// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x00, "High Score" ) - PORT_DIPSETTING( 0x00, "No Award" ) - PORT_DIPSETTING( 0x10, "Credit Awarded" ) - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START /* 2 */ - PORT_ADJUSTER( 90, "R63 - Music Volume" ) - - PORT_START /* 3 */ - PORT_ADJUSTER( 40, "R39 - Beeper Volume" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ripcord ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* Dip Switch */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x02, "7" ) - PORT_DIPSETTING( 0x03, "9" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Coinage ) ) -// PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x00, "High Score" ) - PORT_DIPSETTING( 0x10, "Award Credit" ) - PORT_DIPSETTING( 0x00, "No Award" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* IN2 - paddle */ - PORT_BIT( 0xff, 115, IPT_PADDLE ) PORT_MINMAX(64,167) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 clownlayout = -{ - 16,16, /* 16*16 characters */ - 16, /* 16 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 16*16 /* every char takes 64 consecutive bytes */ -}; - -static const gfx_layout robotlayout = -{ - 8,8, /* 16*16 characters */ - 1, /* 1 character */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { REGION_GFX2, 0, &clownlayout, 0, 1 }, - { -1 } /* end of array */ -}; - -static const gfx_decode robotbwl_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { REGION_GFX2, 0, &robotlayout, 0, 1 }, - { -1 } /* end of array */ -}; - - - -/*************************************************************************** - Machine drivers -***************************************************************************/ -#if 0 -static INTERRUPT_GEN( ripcord_interrupt ) -{ - circus_interrupt = 0; -} -#endif - -static MACHINE_DRIVER_START( circus ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502,11289000/16) /* 705.562kHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(circus) - MDRV_VIDEO_UPDATE(circus) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(circus_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(circus_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( robotbwl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502,11289000/16) /* 705.562kHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(robotbwl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(circus) - MDRV_VIDEO_UPDATE(robotbwl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(robotbwl_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(robotbwl_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( crash ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502,11289000/16) /* 705.562kHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(circus) - MDRV_VIDEO_UPDATE(crash) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(crash_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(crash_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ripcord ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 705562) /* 11.289MHz / 16 */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - //MDRV_CPU_VBLANK_INT(ripcord_interrupt,1) //AT - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(circus) - MDRV_VIDEO_UPDATE(ripcord) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(ripcord_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(circus_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -ROM_START( circus ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "circus.1a", 0x1000, 0x0200, CRC(7654ea75) SHA1(fa29417618157002b8ecb21f4c15104c8145a742) ) /* Code */ - ROM_LOAD( "circus.2a", 0x1200, 0x0200, CRC(b8acdbc5) SHA1(634bb11089f7a57a316b6829954cc4da4523f267) ) - ROM_LOAD( "circus.3a", 0x1400, 0x0200, CRC(901dfff6) SHA1(c1f48845456e88d54981608afd00ddb92d97da99) ) - ROM_LOAD( "circus.5a", 0x1600, 0x0200, CRC(9dfdae38) SHA1(dc59a5f90a5a49fa071aada67eda768d3ecef010) ) - ROM_LOAD( "circus.6a", 0x1800, 0x0200, CRC(c8681cf6) SHA1(681cfea75bee8a86f9f4645e6c6b94b44762dae9) ) - ROM_LOAD( "circus.7a", 0x1a00, 0x0200, CRC(585f633e) SHA1(46133409f42e8cbc095dde576ce07d97b235972d) ) - ROM_LOAD( "circus.8a", 0x1c00, 0x0200, CRC(69cc409f) SHA1(b77289e62313e8535ce40686df7238aa9c0035bc) ) - ROM_LOAD( "circus.9a", 0x1e00, 0x0200, CRC(aff835eb) SHA1(d6d95510d4a046f48358fef01103bcc760eb71ed) ) - ROM_RELOAD( 0xfe00, 0x0200 ) /* for the reset and interrupt vectors */ - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "circus.4c", 0x0000, 0x0200, CRC(6efc315a) SHA1(d5a4a64a901853fff56df3c65512afea8336aad2) ) /* Character Set */ - ROM_LOAD( "circus.3c", 0x0200, 0x0200, CRC(30d72ef5) SHA1(45fc8285e213bf3906a26205a8c0b22f311fd6c3) ) - ROM_LOAD( "circus.2c", 0x0400, 0x0200, CRC(361da7ee) SHA1(6e6fe5b37ccb4c11aa4abbd9b7df772953abfe7e) ) - ROM_LOAD( "circus.1c", 0x0600, 0x0200, CRC(1f954bb3) SHA1(62a958b48078caa639b96f62a690583a1c8e83f5) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "circus.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) /* Clown */ -ROM_END - -ROM_START( circusse ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "93448.1a", 0x1000, 0x0200, CRC(44d65ccd) SHA1(0eb2515444486a4656a4accec555501e75b39a74) ) /* Code */ - ROM_LOAD( "93448.2a", 0x1200, 0x0200, CRC(b8acdbc5) SHA1(634bb11089f7a57a316b6829954cc4da4523f267) ) - ROM_LOAD( "93448.3a", 0x1400, 0x0200, CRC(f2e25f7a) SHA1(6441e39fc7f710442dd6a3a047826862b0481c58) ) - ROM_LOAD( "93448.5a", 0x1600, 0x0200, CRC(9dfdae38) SHA1(dc59a5f90a5a49fa071aada67eda768d3ecef010) ) - ROM_LOAD( "93448.6a", 0x1800, 0x0200, CRC(c8681cf6) SHA1(681cfea75bee8a86f9f4645e6c6b94b44762dae9) ) - ROM_LOAD( "93448.7a", 0x1a00, 0x0200, CRC(585f633e) SHA1(46133409f42e8cbc095dde576ce07d97b235972d) ) - ROM_LOAD( "93448.8a", 0x1c00, 0x0200, CRC(d7c0dc05) SHA1(cc6f7d16ca4be74370c305c34aa1a2e338d2c41f) ) - ROM_LOAD( "93448.9a", 0x1e00, 0x0200, CRC(aff835eb) SHA1(d6d95510d4a046f48358fef01103bcc760eb71ed) ) - ROM_RELOAD( 0xfe00, 0x0200 ) /* for the reset and interrupt vectors */ - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "93448.4c", 0x0000, 0x0200, CRC(6efc315a) SHA1(d5a4a64a901853fff56df3c65512afea8336aad2) ) /* Character Set */ - ROM_LOAD( "93448.3c", 0x0200, 0x0200, CRC(30d72ef5) SHA1(45fc8285e213bf3906a26205a8c0b22f311fd6c3) ) - ROM_LOAD( "93448.2c", 0x0400, 0x0200, CRC(361da7ee) SHA1(6e6fe5b37ccb4c11aa4abbd9b7df772953abfe7e) ) - ROM_LOAD( "93448.1c", 0x0600, 0x0200, CRC(1f954bb3) SHA1(62a958b48078caa639b96f62a690583a1c8e83f5) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "93448.14d", 0x0000, 0x0200, CRC(2fde3930) SHA1(a21e2d342f16a39a07edf4bea8d698a52216ecba) ) /* Clown */ -ROM_END - -ROM_START( robotbwl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "robotbwl.1a", 0xf000, 0x0200, CRC(df387a0b) SHA1(97291f1a93cbbff987b0fbc16c2e87ad0db96e12) ) /* Code */ - ROM_LOAD( "robotbwl.2a", 0xf200, 0x0200, CRC(c948274d) SHA1(1bf8c6e994d601d4e6d30ca2a9da97e140ff5eee) ) - ROM_LOAD( "robotbwl.3a", 0xf400, 0x0200, CRC(8fdb3ec5) SHA1(a9290edccb8f75e7ec91416d46617516260d5944) ) - ROM_LOAD( "robotbwl.5a", 0xf600, 0x0200, CRC(ba9a6929) SHA1(9cc6e85431b5d82bf3a624f7b35ddec399ad6c80) ) - ROM_LOAD( "robotbwl.6a", 0xf800, 0x0200, CRC(16fd8480) SHA1(935bb0c87d25086f326571c83f94f831b1a8b036) ) - ROM_LOAD( "robotbwl.7a", 0xfa00, 0x0200, CRC(4cadbf06) SHA1(380c10aa83929bfbfd89facb252e68c307545755) ) - ROM_LOAD( "robotbwl.8a", 0xfc00, 0x0200, CRC(bc809ed3) SHA1(2bb4cdae8c9619eebea30cc323960a46a509bb58) ) - ROM_LOAD( "robotbwl.9a", 0xfe00, 0x0200, CRC(07487e27) SHA1(b5528fb3fec474df2b66f36e28df13a7e81f9ce3) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "robotbwl.4c", 0x0000, 0x0200, CRC(a5f7acb9) SHA1(556dd34d0fa50415b128477e208e96bf0c050c2c) ) /* Character Set */ - ROM_LOAD( "robotbwl.3c", 0x0200, 0x0200, CRC(d5380c9b) SHA1(b9670e87011a1b3aebd1d386f1fe6a74f8c77be9) ) - ROM_LOAD( "robotbwl.2c", 0x0400, 0x0200, CRC(47b3e39c) SHA1(393c680fba3bd384e2c773150c3bae4d735a91bf) ) - ROM_LOAD( "robotbwl.1c", 0x0600, 0x0200, CRC(b2991e7e) SHA1(32b6d42bb9312d6cbe5b4113fcf2262bfeef3777) ) - - ROM_REGION( 0x0020, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "robotbwl.14d", 0x0000, 0x0020, CRC(a402ac06) SHA1(3bd75630786bcc86d9e9fbc826adc909eef9b41f) ) /* Ball */ -ROM_END - -ROM_START( crash ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "crash.a1", 0x1000, 0x0200, CRC(b9571203) SHA1(1299e476598d07a67aa1640f3320de1198280296) ) /* Code */ - ROM_LOAD( "crash.a2", 0x1200, 0x0200, CRC(b4581a95) SHA1(b3662bda5013443a56eabbe21fefa91e255e18e7) ) - ROM_LOAD( "crash.a3", 0x1400, 0x0200, CRC(597555ae) SHA1(39a6d10e229be0e0d52b1061f2aa2f678b351f0b) ) - ROM_LOAD( "crash.a4", 0x1600, 0x0200, CRC(0a15d69f) SHA1(c3a7b5ce4406cce511108e5c015b1dd5587b75ed) ) - ROM_LOAD( "crash.a5", 0x1800, 0x0200, CRC(a9c7a328) SHA1(2f21ee58ba117bf4fe9101373c55449217a08da6) ) - ROM_LOAD( "crash.a6", 0x1a00, 0x0200, CRC(c7d62d27) SHA1(974800cbeba2f2d0d796200d235371e2ce3a1d28) ) - ROM_LOAD( "crash.a7", 0x1c00, 0x0200, CRC(5e5af244) SHA1(9ea27241a5ac97b260599d56f60bf9ec3ffcac7f) ) - ROM_LOAD( "crash.a8", 0x1e00, 0x0200, CRC(3dc50839) SHA1(5782ea7d70e5cbe8b8245ed1075ce92b57cc6ddf) ) - ROM_RELOAD( 0xfe00, 0x0200 ) /* for the reset and interrupt vectors */ - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "crash.c4", 0x0000, 0x0200, CRC(ba16f9e8) SHA1(fdbf8d36993196552ddb7729750420f8e31eee70) ) /* Character Set */ - ROM_LOAD( "crash.c3", 0x0200, 0x0200, CRC(3c8f7560) SHA1(ce4023167a0b4b912bbbc70b00fd3b462990a04c) ) - ROM_LOAD( "crash.c2", 0x0400, 0x0200, CRC(38f3e4ed) SHA1(4e537402c09b58997bc45498fd721d83a0eac3a7) ) - ROM_LOAD( "crash.c1", 0x0600, 0x0200, CRC(e9adf1e1) SHA1(c1f6d2a3be1e9b35c8675d1e3f57e6a85ddd99fd) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "crash.d14", 0x0000, 0x0200, CRC(833f81e4) SHA1(78a0ace3510546691ecaf6f6275cb3269495edc9) ) /* Cars */ -ROM_END - -ROM_START( ripcord ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "9027.1a", 0x1000, 0x0200, CRC(56b8dc06) SHA1(5432e4f2e321805a8dc9cfce20b8372793a9a4dd) ) /* Code */ - ROM_LOAD( "9028.2a", 0x1200, 0x0200, CRC(a8a78a30) SHA1(e6ddcba608f9b34e07a5402872793dafe5054156) ) - ROM_LOAD( "9029.4a", 0x1400, 0x0200, CRC(fc5c8e07) SHA1(4784a868491393f42520f6609266ffab21661ec3) ) - ROM_LOAD( "9030.5a", 0x1600, 0x0200, CRC(b496263c) SHA1(36321aa6d18e7c35461c1d445d2682d61279a8c7) ) - ROM_LOAD( "9031.6a", 0x1800, 0x0200, CRC(cdc7d46e) SHA1(369bb119320cd737641a5bf64d51c9b552578f8a) ) - ROM_LOAD( "9032.7a", 0x1a00, 0x0200, CRC(a6588bec) SHA1(76321ab29329b6291e4d4731bb445a6ac4ce2d86) ) - ROM_LOAD( "9033.8a", 0x1c00, 0x0200, CRC(fd49b806) SHA1(5205ee8e9cec53be6e79e0183bc1e9d96c8c2e55) ) - ROM_LOAD( "9034.9a", 0x1e00, 0x0200, CRC(7caf926d) SHA1(f51d010ce1909e21e04313e4262c70ab948c14e0) ) - ROM_RELOAD( 0xfe00, 0x0200 ) /* for the reset and interrupt vectors */ - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "9026.5c", 0x0000, 0x0200, CRC(06e7adbb) SHA1(0c119743eacc30d6d9eb50dfee0746b69bb17377) ) /* Character Set */ - ROM_LOAD( "9025.4c", 0x0200, 0x0200, CRC(3129527e) SHA1(3d0519811c9e4a5645f5c54ed8f0b411cdc5d54b) ) - ROM_LOAD( "9024.2c", 0x0400, 0x0200, CRC(bcb88396) SHA1(d92dff2436f58d977f9196a88fa7701c3032ef7d) ) - ROM_LOAD( "9023.1c", 0x0600, 0x0200, CRC(9f86ed5b) SHA1(fbe38c6d63887e603d919b0ab2216cd44b8955e4) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "9035.14d", 0x0000, 0x0200, CRC(c9979802) SHA1(cf6dfad0821fa736c8fcf8735792054858232806) ) -ROM_END - - -static DRIVER_INIT( circus ) -{ - circus_game = 1; -} - -static DRIVER_INIT( robotbwl ) -{ - circus_game = 2; -} -static DRIVER_INIT( crash ) -{ - circus_game = 3; -} -static DRIVER_INIT( ripcord ) -{ - circus_game = 4; -} - - -GAMEL(1977, circus, 0, circus, circus, circus, ROT0, "Exidy", "Circus", 0, layout_circus ) -GAMEL(1977, circusse, circus, circus, circus, circus, ROT0, "[Exidy] (Sub-Electro bootleg)", "Circus (Sub-Electro bootleg)", 0, layout_circus ) // looks like a text hack, but we've seen 2 identical copies so it's worth supporting -GAME( 1977, robotbwl, 0, robotbwl, robotbwl, robotbwl, ROT0, "Exidy", "Robot Bowl", GAME_IMPERFECT_SOUND ) -GAMEL(1979, crash, 0, crash, crash, crash, ROT0, "Exidy", "Crash", GAME_IMPERFECT_SOUND, layout_crash ) -GAME( 1979, ripcord, 0, ripcord, ripcord, ripcord, ROT0, "Exidy", "Rip Cord", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/cloud9.c b/src/drivers/cloud9.c deleted file mode 100644 index ec9f699a9..000000000 --- a/src/drivers/cloud9.c +++ /dev/null @@ -1,559 +0,0 @@ -/*************************************************************************** - - Atari Cloud 9 (prototype) hardware - - driver by Mike Balfour - - Games supported: - * Cloud 9 - * Firebeast - - Known issues: - * none at this time - -**************************************************************************** - - Horizontal sync chain: - - Appears to be the same as Crystal Castles. See ccastles.c for - details. - - Pixel clock = 5MHz - HBLANK ends at H = 0 - HBLANK begins at H = 256 - HSYNC begins at H = 260 (? unconfirmed) - HSYNC ends at H = 288 (? unconfirmed) - HTOTAL = 320 - - Vertical sync chain: - - Appears to be similar to Crystal Castles. The PROM at 10E seems - to have a similar layout to the SYNC PROM used by Crystal - Castles. The standard PROM maps as follows: - - VBLANK ends at V = 23 - VBLANK begins at V = 255 - VSYNC begins at V = 3 - VSYNC ends at V = 6 - VTOTAL = 256 - - Interrupts: - - IRQ is clocked by /32V, so IRQs are generated a V = 0,64,128,192. - -**************************************************************************** - - This hardware is very similar to Crystal Castles. The primary - difference is the lack of banked ROM and the mapping of the bitmap - layer into the lower 20k instead of the lower 32k. In order to do - this, they split the bitmap into two banks. Bank 0 holds pixels - 0,1,4,5,... while bank 1 holds pixels 2,3,6,7,... This is all handled - transparently by bitmode. - - The lower 24 lines of video RAM are used for working RAM. This amounts - to $600 bytes at $0000. In order to provide more work RAM, the write - protect logic selects bank 1 for accesses to VRAM at $4000, so the - other $600 bytes can be accessed there. Only Firebeast seems to use - this RAM. - - 0000 R/W Write to bit mode X latch (and through to RAM) - 0001 R/W Write to bit mode Y latch (and through to RAM) - 0002 R/W Access the bitmap via bit mode - 0000-3FFF R/W Video RAM bank 0 (or 1 or both, depending on video control) - 4000-4FFF R/W Video RAM bank 1 - 5000-53FF R/W Motion Object RAM - 5400 W Watchdog - 5480 W IRQ Acknowledge - 5500-557F W Color RAM (9 bits, 4 banks, LSB of Blue is addr&$40) - 5580 W Auto-increment X bitmap index (~D7) - 5581 W Auto-increment Y bitmap index (~D7) - 5584 W VRAM Both Banks - (D7) seems to allow writing to both banks - 5585 W Invert screen? - 5586 W VRAM Bank select? - 5587 W Color bank select - 5600 W Coin Counter 1 (D7) - 5601 W Coin Counter 2 (D7) - 5602 W Start1 LED (~D7) - 5603 W Start2 LED (~D7) - 5700 W EAROM recall - 5800 R IN0 (D7=Vblank, D6=Right Coin, D5=Left Coin, D4=Aux, D3=Self Test) - 5801 R IN1 (D7=Start1, D6=Start2, D5=Fire, D4=Zap) - 5900 R Trackball Vert - 5901 R Trackball Horiz - 5A00-5A0F R/W Pokey 1 - 5B00-5B0F R/W Pokey 2 - 5C00-5CFF W EAROM - 6000-FFFF R Program ROM - - If you have any questions about how this driver works, don't hesitate to - ask. - Mike Balfour (mab22@po.cwru.edu) - -***************************************************************************/ - -#include "driver.h" -#include "sound/pokey.h" -#include "cloud9.h" - - -#define MASTER_CLOCK (10000000) - -#define PIXEL_CLOCK (MASTER_CLOCK/2) -#define HTOTAL (320) -#define VTOTAL (256) - - - -/************************************* - * - * Globals - * - *************************************/ - -static UINT8 *nvram_stage; -static const UINT8 *syncprom; -static UINT8 irq_state; -static mame_timer *irq_timer; - -int cloud9_vblank_start; -int cloud9_vblank_end; - - - -/************************************* - * - * VBLANK and IRQ generation - * - *************************************/ - -INLINE void schedule_next_irq(int curscanline) -{ - /* IRQ is clocked by /32V, so every 64 scanlines */ - curscanline = (curscanline + 64) & 255; - - /* next one at the start of this scanline */ - mame_timer_adjust(irq_timer, video_screen_get_time_until_pos(0, curscanline, 0), curscanline, time_zero); -} - - -static void clock_irq(int param) -{ - /* assert the IRQ if not already asserted */ - if (!irq_state) - { - cpunum_set_input_line(0, 0, ASSERT_LINE); - irq_state = 1; - } - - /* force an update now */ - video_screen_update_partial(0, video_screen_get_vpos(0)); - - /* find the next edge */ - schedule_next_irq(param); -} - - -static UINT32 get_vblank(void *param) -{ - int scanline = video_screen_get_vpos(0); - return (~syncprom[scanline & 0xff] >> 1) & 1; -} - - - -/************************************* - * - * Machine setup - * - *************************************/ - -static MACHINE_START( cloud9 ) -{ - rectangle visarea; - - /* initialize globals */ - syncprom = memory_region(REGION_PROMS) + 0x000; - - /* find the start of VBLANK in the SYNC PROM */ - for (cloud9_vblank_start = 0; cloud9_vblank_start < 256; cloud9_vblank_start++) - if ((syncprom[(cloud9_vblank_start - 1) & 0xff] & 2) != 0 && (syncprom[cloud9_vblank_start] & 2) == 0) - break; - if (cloud9_vblank_start == 0) - cloud9_vblank_start = 256; - - /* find the end of VBLANK in the SYNC PROM */ - for (cloud9_vblank_end = 0; cloud9_vblank_end < 256; cloud9_vblank_end++) - if ((syncprom[(cloud9_vblank_end - 1) & 0xff] & 2) == 0 && (syncprom[cloud9_vblank_end] & 2) != 0) - break; - - /* can't handle the wrapping case */ - assert(cloud9_vblank_end < cloud9_vblank_start); - - /* reconfigure the visible area to match */ - visarea.min_x = 0; - visarea.max_x = 255; - visarea.min_y = cloud9_vblank_end + 1; - visarea.max_y = cloud9_vblank_start; - video_screen_configure(0, 320, 256, &visarea, (float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL); - - /* create a timer for IRQs and set up the first callback */ - irq_timer = timer_alloc(clock_irq); - irq_state = 0; - schedule_next_irq(0-64); - - /* allocate backing memory for the NVRAM */ - generic_nvram = auto_malloc(generic_nvram_size); - - /* setup for save states */ - state_save_register_global(irq_state); - state_save_register_global_pointer(generic_nvram, generic_nvram_size); - - return 0; -} - - -static MACHINE_RESET( cloud9 ) -{ - cpunum_set_input_line(0, 0, CLEAR_LINE); - irq_state = 0; -} - - - -/************************************* - * - * Output ports - * - *************************************/ - -static WRITE8_HANDLER( irq_ack_w ) -{ - if (irq_state) - { - cpunum_set_input_line(0, 0, CLEAR_LINE); - irq_state = 0; - } -} - - -static WRITE8_HANDLER( cloud9_led_w ) -{ - set_led_status(offset, ~data & 0x80); -} - - -static WRITE8_HANDLER( cloud9_coin_counter_w ) -{ - coin_counter_w(offset, data & 0x80); -} - - -static READ8_HANDLER( leta_r ) -{ - return readinputport(3 + offset); -} - - - -/************************************* - * - * NVRAM handling - * - *************************************/ - -static NVRAM_HANDLER( cloud9 ) -{ - if (read_or_write) - { - /* on power down, the EAROM is implicitly stored */ - memcpy(generic_nvram, nvram_stage, generic_nvram_size); - mame_fwrite(file, generic_nvram, generic_nvram_size); - } - else if (file) - mame_fread(file, generic_nvram, generic_nvram_size); - else - memset(generic_nvram, 0, generic_nvram_size); -} - - -static WRITE8_HANDLER( nvram_recall_w ) -{ - memcpy(nvram_stage, generic_nvram, generic_nvram_size); -} - - -static WRITE8_HANDLER( nvram_store_w ) -{ - memcpy(generic_nvram, nvram_stage, generic_nvram_size); -} - - -static READ8_HANDLER( nvram_r ) -{ - /* only a single XD2212 for 4 bits of NVRAM */ - return nvram_stage[offset] | 0xf0; -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( cloud9_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0001) AM_WRITE(cloud9_bitmode_addr_w) - AM_RANGE(0x0002, 0x0002) AM_READWRITE(cloud9_bitmode_r, cloud9_bitmode_w) - AM_RANGE(0x0000, 0x4fff) AM_READWRITE(MRA8_BANK1, cloud9_videoram_w) - AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(&spriteram) - AM_RANGE(0x5400, 0x547f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x5480, 0x54ff) AM_WRITE(irq_ack_w) - AM_RANGE(0x5500, 0x557f) AM_READWRITE(MRA8_RAM, cloud9_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x5580, 0x5587) AM_MIRROR(0x0078) AM_WRITE(cloud9_video_control_w) - AM_RANGE(0x5600, 0x5601) AM_MIRROR(0x0078) AM_WRITE(cloud9_coin_counter_w) - AM_RANGE(0x5602, 0x5603) AM_MIRROR(0x0078) AM_WRITE(cloud9_led_w) - AM_RANGE(0x5680, 0x56ff) AM_WRITE(nvram_store_w) - AM_RANGE(0x5700, 0x577f) AM_WRITE(nvram_recall_w) - AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x007e) AM_READ(input_port_0_r) - AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x007e) AM_READ(input_port_1_r) - AM_RANGE(0x5900, 0x5903) AM_MIRROR(0x007c) AM_READ(leta_r) - AM_RANGE(0x5a00, 0x5a0f) AM_MIRROR(0x00f0) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x5b00, 0x5b0f) AM_MIRROR(0x00f0) AM_READWRITE(pokey2_r, pokey2_w) - AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_READWRITE(nvram_r, MWA8_RAM) AM_BASE(&nvram_stage) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x6000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( cloud9 ) - PORT_START - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, 0) - - PORT_START - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xfe, 0x04, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x22, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0x1e, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x1a, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x16, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x12, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_REVERSE - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_X ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) -INPUT_PORTS_END - - -INPUT_PORTS_START( firebeas ) - PORT_START - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(get_vblank, 0) - - PORT_START - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_REVERSE - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_X ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_REVERSE -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &gfx_16x16x4_planar, 0, 4 }, - { -1 } -}; - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct POKEYinterface pokey_interface = -{ - { 0 }, - input_port_2_r -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( cloud9 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, MASTER_CLOCK/8) - MDRV_CPU_PROGRAM_MAP(cloud9_map,0) - - MDRV_MACHINE_START(cloud9) - MDRV_MACHINE_RESET(cloud9) - MDRV_NVRAM_HANDLER(cloud9) - MDRV_WATCHDOG_VBLANK_INIT(8) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(64) - - MDRV_SCREEN_ADD("main", 0) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE((float)PIXEL_CLOCK / (float)VTOTAL / (float)HTOTAL) - MDRV_SCREEN_SIZE(HTOTAL, VTOTAL) - MDRV_SCREEN_VBLANK_TIME(0) /* VBLANK is handled manually */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 231) - - MDRV_VIDEO_START(cloud9) - MDRV_VIDEO_UPDATE(cloud9) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(POKEY, MASTER_CLOCK/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(POKEY, MASTER_CLOCK/8) - MDRV_SOUND_CONFIG(pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( cloud9 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "c9_6000.bin", 0x6000, 0x2000, CRC(b5d95d98) SHA1(9a347e5fc6e9e753e5c6972341725b5f4412e451) ) - ROM_LOAD( "c9_8000.bin", 0x8000, 0x2000, CRC(49af8f22) SHA1(c118372bec0c428c2b60d29df95f358b302d5e66) ) - ROM_LOAD( "c9_a000.bin", 0xa000, 0x2000, CRC(7cf404a6) SHA1(d20b662102f8426af51b1ca4ed8e18b00d711365) ) - ROM_LOAD( "c9_c000.bin", 0xc000, 0x2000, CRC(26a4d7df) SHA1(8eef0a5f5d1ff13eec75d0c50f5a5dea28486ae5) ) - ROM_LOAD( "c9_e000.bin", 0xe000, 0x2000, CRC(6e663bce) SHA1(4f4a5dc57ba6bc38a17973a6644849f6f5a2dfd1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c9_gfx0.bin", 0x0000, 0x1000, CRC(d01a8019) SHA1(a77d6125b116ab4bf9446e3b99469dad2719f7e5) ) - ROM_LOAD( "c9_gfx1.bin", 0x1000, 0x1000, CRC(514ac009) SHA1(f05081d8da47e650b0bd12cd00460c98a4f745b1) ) - ROM_LOAD( "c9_gfx2.bin", 0x2000, 0x1000, CRC(930c1ade) SHA1(ba22cb7b105da2ab8c40574e70f18d594d833452) ) - ROM_LOAD( "c9_gfx3.bin", 0x3000, 0x1000, CRC(27e9b88d) SHA1(a1d27e62eea9cdff662a3c160f650bbdb32b7f47) ) - - ROM_REGION( 0x400, REGION_PROMS, 0 ) - ROM_LOAD( "63s141.e10", 0x0000, 0x0100, BAD_DUMP CRC(8e98083f) SHA1(ed29c7ed2226613ed5d09ecef4e645e3b53f7f8d) ) /* Sync PROM */ - ROM_LOAD( "63s141.m10", 0x0100, 0x0100, BAD_DUMP CRC(b0b039c0) SHA1(724fa88f3f3c62b3c9345cdb13e114a10b7bbdb0) ) /* ??? PROM */ - ROM_LOAD( "82s129.p3", 0x0200, 0x0100, BAD_DUMP CRC(615d784d) SHA1(e7e6397ae45d6ae8b3670b457ede79c42d18d71f) ) /* VRAM Write Protect PROM */ - ROM_LOAD( "63s141.m8", 0x0300, 0x0100, BAD_DUMP CRC(6d7479ec) SHA1(7a7c30f5846b98afaaca2af9aab82416ebafe4cc) ) /* ??? PROM */ -ROM_END - - -ROM_START( firebeas ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "6000.j2", 0x6000, 0x2000, CRC(dbd04782) SHA1(1237511b00a4121fae01a07bca05a76202d74058) ) - ROM_LOAD( "8000.kl2", 0x8000, 0x2000, CRC(96231ca4) SHA1(e865d4396968f94a284fe9993f066d55f9c225a4) ) - ROM_LOAD( "a000.lm2", 0xa000, 0x2000, CRC(f7e0bf25) SHA1(d116cbc7643a3328f7a1fe4ff03d8a087b8c7648) ) - ROM_LOAD( "c000.n2", 0xc000, 0x2000, CRC(43a91b74) SHA1(6b38703e793ebcbee7b060053485072d9dac6b8b) ) - ROM_LOAD( "e000.p2", 0xe000, 0x1000, CRC(8e5045ab) SHA1(8e5e8dd7710dc5ec68602f069dfc30e1bcaf7411) ) - ROM_RELOAD( 0xf000, 0x1000 ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mo0000.r12", 0x0000, 0x2000, CRC(5246c979) SHA1(a975ede0a6c2c91f4373ecba1e2f61f1aedcee62) ) - ROM_LOAD( "mo2000.p12", 0x2000, 0x2000, CRC(1a3b6d57) SHA1(d9015140e69fdc3f73113f0afc3be2579197017a) ) - ROM_LOAD( "mo4000.n12", 0x4000, 0x2000, CRC(69e18319) SHA1(3bf3cbe4ea06ea71928eff8a57c2ef7dc6e6716a) ) - ROM_LOAD( "mo6000.m12", 0x6000, 0x2000, CRC(b722997f) SHA1(65a2618ecd8b4923f30f59c1fb95124cf0391964) ) - - ROM_REGION( 0x400, REGION_PROMS, 0 ) - ROM_LOAD( "63s141.e10", 0x0000, 0x0100, CRC(8e98083f) SHA1(ed29c7ed2226613ed5d09ecef4e645e3b53f7f8d) ) /* Sync PROM */ - ROM_LOAD( "63s141.m10", 0x0100, 0x0100, CRC(b0b039c0) SHA1(724fa88f3f3c62b3c9345cdb13e114a10b7bbdb0) ) /* ??? PROM */ - ROM_LOAD( "82s129.p3", 0x0200, 0x0100, CRC(615d784d) SHA1(e7e6397ae45d6ae8b3670b457ede79c42d18d71f) ) /* VRAM Write Protect PROM */ - ROM_LOAD( "63s141.m8", 0x0300, 0x0100, CRC(6d7479ec) SHA1(7a7c30f5846b98afaaca2af9aab82416ebafe4cc) ) /* ??? PROM */ -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, cloud9, 0, cloud9, cloud9, 0, ROT0, "Atari", "Cloud 9 (prototype)", GAME_SUPPORTS_SAVE ) -GAME( 1983, firebeas, 0, cloud9, firebeas, 0, ROT0, "Atari", "Firebeast (prototype)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/combatsc.c b/src/drivers/combatsc.c deleted file mode 100644 index 6f1050790..000000000 --- a/src/drivers/combatsc.c +++ /dev/null @@ -1,938 +0,0 @@ -/*************************************************************************** - -"Combat School" (also known as "Boot Camp") - (Konami GX611) - -TODO: -- in combasc (and more generally the 007121) the number of sprites can be - increased from 0x40 to 0x80. There is a hack in konamiic.c to handle that, - but it is wrong. If you don't pass the Iron Man stage, a few sprites are - left dangling on the screen.(*not a bug, 64 sprites are the maximum) -- it seems that to get correct target colors in firing range III we have to - use the WRONG lookup table (the one for tiles instead of the one for - sprites). -- in combascb, wrong sprite/char priority (see cpu head at beginning of arm - wrestling, and heads in intermission after firing range III) -- hook up sound in bootleg (the current sound is a hack, making use of the - Konami ROMset) -- understand how the trackball really works -- YM2203 pitch is wrong. Fixing it screws up the tempo. - - Update: 3MHz(24MHz/8) is the more appropriate clock speed for the 2203. - It gives the correct pitch(ear subjective) compared to the official - soundtrack albeit the music plays slow by about 10%. - - Execution timing of the Z80 is important because it maintains music tempo - by polling the 2203's second timer. Even when working alone with no - context-switch the chip shouldn't be running at 1.5MHz otherwise it won't - keep the right pace. Similar Konmai games from the same period(mainevt, - battlnts, flkatck...etc.) all have a 3.579545MHz Z80 for sound. - - In spite of adjusting clock speed polling is deemed inaccurate when - interleaving is taken into account. A high resolution timer around the - poll loop is probably the best bet. The driver sets its timer manually - because strange enough, interleaving doesn't occur immediately when - cpu_boost_interleave() is called. Speculations are TIME_NOWs could have - been used as the timer durations to force instant triggering. - - -Credits: - - Hardware Info: - Jose Tejada Gomez - Manuel Abadia - Cesareo Gutierrez - - MAME Driver: - Phil Stroffolino - Manuel Abadia - -Memory Maps (preliminary): - -*************************** -* Combat School (bootleg) * -*************************** - -MAIN CPU: ---------- -00c0-00c3 Objects control -0500 bankswitch control -0600-06ff palette -0800-1fff RAM -2000-2fff Video RAM (banked) -3000-3fff Object RAM (banked) -4000-7fff Banked Area + IO + Video Registers -8000-ffff ROM - -SOUND CPU: ----------- -0000-8000 ROM -8000-87ef RAM -87f0-87ff ??? -9000-9001 YM2203 -9008 ??? -9800 OKIM5205? -a000 soundlatch? -a800 OKIM5205? -fffc-ffff ??? - - - Notes about the sound systsem of the bootleg: - --------------------------------------------- - The positions 0x87f0-0x87ff are very important, it - does work similar to a semaphore (same as a lot of - vblank bits). For example in the init code, it writes - zero to 0x87fa, then it waits to it 'll be different - to zero, but it isn't written by this cpu. (shareram?) - I have tried put here a K007232 chip, but it didn't - work. - - Sound chips: OKI M5205 & YM2203 - - We are using the other sound hardware for now. - -**************************** -* Combat School (Original) * -**************************** - -0000-005f Video Registers (banked) -0400-0407 input ports -0408 coin counters -0410 bankswitch control -0600-06ff palette -0800-1fff RAM -2000-2fff Video RAM (banked) -3000-3fff Object RAM (banked) -4000-7fff Banked Area + IO + Video Registers -8000-ffff ROM - -SOUND CPU: ----------- -0000-8000 ROM -8000-87ff RAM -9000 uPD7759 -b000 uPD7759 -c000 uPD7759 -d000 soundlatch_r -e000-e001 YM2203 - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/2203intf.h" -#include "sound/upd7759.h" - -/* from vidhrdw/combasc.c */ -PALETTE_INIT( combasc ); -PALETTE_INIT( combascb ); -READ8_HANDLER( combasc_video_r ); -WRITE8_HANDLER( combasc_video_w ); -VIDEO_START( combasc ); -VIDEO_START( combascb ); - -WRITE8_HANDLER( combascb_bankselect_w ); -WRITE8_HANDLER( combasc_bankselect_w ); -MACHINE_RESET( combasc ); -MACHINE_RESET( combascb ); -WRITE8_HANDLER( combasc_pf_control_w ); -READ8_HANDLER( combasc_scrollram_r ); -WRITE8_HANDLER( combasc_scrollram_w ); - -VIDEO_UPDATE( combascb ); -VIDEO_UPDATE( combasc ); -WRITE8_HANDLER( combasc_io_w ); -WRITE8_HANDLER( combasc_vreg_w ); - - - - -static WRITE8_HANDLER( combasc_coin_counter_w ) -{ - /* b7-b3: unused? */ - /* b1: coin counter 2 */ - /* b0: coin counter 1 */ - - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); -} - -static READ8_HANDLER( trackball_r ) -{ - static UINT8 pos[4],sign[4]; - - if (offset == 0) - { - int i,dir[4]; - - for (i = 0;i < 4;i++) - { - UINT8 curr; - - curr = readinputport(4 + i); - - dir[i] = curr - pos[i]; - sign[i] = dir[i] & 0x80; - pos[i] = curr; - } - - /* fix sign for orthogonal movements */ - if (dir[0] || dir[1]) - { - if (!dir[0]) sign[0] = sign[1] ^ 0x80; - if (!dir[1]) sign[1] = sign[0]; - } - if (dir[2] || dir[3]) - { - if (!dir[2]) sign[2] = sign[3] ^ 0x80; - if (!dir[3]) sign[3] = sign[2]; - } - } - - return sign[offset] | (pos[offset] & 0x7f); -} - - -/* the protection is a simple multiply */ -static int prot[2]; - -static WRITE8_HANDLER( protection_w ) -{ - prot[offset] = data; -} -static READ8_HANDLER( protection_r ) -{ - return ((prot[0] * prot[1]) >> (offset * 8)) & 0xff; -} -static WRITE8_HANDLER( protection_clock_w ) -{ - /* 0x3f is written here every time before accessing the other registers */ -} - - -/****************************************************************************/ - -static WRITE8_HANDLER( combasc_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static WRITE8_HANDLER( combasc_play_w ) -{ - upd7759_start_w(0, data & 2); -} - -static WRITE8_HANDLER( combasc_voice_reset_w ) -{ - upd7759_reset_w(0,data & 1); -} - -static WRITE8_HANDLER( combasc_portA_w ) -{ - /* unknown. always write 0 */ -} - -static mame_timer *combasc_interleave_timer; - -static READ8_HANDLER ( combasc_YM2203_status_port_0_r ) -{ - static int boost = 1; - int status = YM2203_status_port_0_r(0); - - if (activecpu_get_pc() == 0x334) - { - if (boost) - { - boost = 0; - timer_adjust(combasc_interleave_timer, TIME_NOW, 0, TIME_IN_CYCLES(80,1)); - } - else if (status & 2) - { - boost = 1; - timer_adjust(combasc_interleave_timer, TIME_NOW, 0, TIME_NEVER); - } - } - - return(status); -} - -/****************************************************************************/ - -static ADDRESS_MAP_START( combasc_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0020, 0x005f) AM_READ(combasc_scrollram_r) - AM_RANGE(0x0200, 0x0201) AM_READ(protection_r) - AM_RANGE(0x0400, 0x0400) AM_READ(input_port_0_r) - AM_RANGE(0x0401, 0x0401) AM_READ(input_port_1_r) /* DSW #3 */ - AM_RANGE(0x0402, 0x0402) AM_READ(input_port_2_r) /* DSW #1 */ - AM_RANGE(0x0403, 0x0403) AM_READ(input_port_3_r) /* DSW #2 */ - AM_RANGE(0x0404, 0x0407) AM_READ(trackball_r) /* 1P & 2P controls / trackball */ - AM_RANGE(0x0600, 0x06ff) AM_READ(MRA8_RAM) /* palette */ - AM_RANGE(0x0800, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(combasc_video_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM area */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( combasc_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0007) AM_WRITE(combasc_pf_control_w) - AM_RANGE(0x0020, 0x005f) AM_WRITE(combasc_scrollram_w) -// AM_RANGE(0x0060, 0x00ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x0200, 0x0201) AM_WRITE(protection_w) - AM_RANGE(0x0206, 0x0206) AM_WRITE(protection_clock_w) - AM_RANGE(0x0408, 0x0408) AM_WRITE(combasc_coin_counter_w) /* coin counters */ - AM_RANGE(0x040c, 0x040c) AM_WRITE(combasc_vreg_w) - AM_RANGE(0x0410, 0x0410) AM_WRITE(combasc_bankselect_w) - AM_RANGE(0x0414, 0x0414) AM_WRITE(soundlatch_w) - AM_RANGE(0x0418, 0x0418) AM_WRITE(combasc_sh_irqtrigger_w) - AM_RANGE(0x041c, 0x041c) AM_WRITE(watchdog_reset_w) /* watchdog reset? */ - AM_RANGE(0x0600, 0x06ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram) - AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(combasc_video_w) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM area */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( combascb_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x04ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0600, 0x06ff) AM_READ(MRA8_RAM) /* palette */ - AM_RANGE(0x0800, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(combasc_video_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM/RAM area */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( combascb_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x04ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0500, 0x0500) AM_WRITE(combascb_bankselect_w) - AM_RANGE(0x0600, 0x06ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram) - AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(combasc_video_w) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_BANK1) /* banked ROM/RAM area */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -#if 0 -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ef) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x87f0, 0x87ff) AM_READ(MRA8_RAM) /* ??? */ - AM_RANGE(0x9000, 0x9000) AM_READ(YM2203_status_port_0_r) /* YM 2203 */ - AM_RANGE(0x9008, 0x9008) AM_READ(YM2203_status_port_0_r) /* ??? */ - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r? */ - AM_RANGE(0x8800, 0xfffb) AM_READ(MRA8_ROM) /* ROM? */ - AM_RANGE(0xfffc, 0xffff) AM_READ(MRA8_RAM) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ef) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x87f0, 0x87ff) AM_WRITE(MWA8_RAM) /* ??? */ - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w)/* YM 2203 */ - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) /* YM 2203 */ - //AM_RANGE(0x9800, 0x9800) AM_WRITE(combasc_unknown_w_1) /* OKIM5205? */ - //AM_RANGE(0xa800, 0xa800) AM_WRITE(combasc_unknown_w_2) /* OKIM5205? */ - AM_RANGE(0x8800, 0xfffb) AM_WRITE(MWA8_ROM) /* ROM */ - AM_RANGE(0xfffc, 0xffff) AM_WRITE(MWA8_RAM) /* ??? */ -ADDRESS_MAP_END -#endif - -static ADDRESS_MAP_START( combasc_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xb000, 0xb000) AM_READ(upd7759_0_busy_r) /* upd7759 busy? */ - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) /* soundlatch_r? */ - AM_RANGE(0xe000, 0xe000) AM_READ(combasc_YM2203_status_port_0_r) /* YM 2203 intercepted */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( combasc_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x9000, 0x9000) AM_WRITE(combasc_play_w) /* upd7759 play voice */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(upd7759_0_port_w) /* upd7759 voice select */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(combasc_voice_reset_w) /* upd7759 reset? */ - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2203_control_port_0_w)/* YM 2203 */ - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2203_write_port_0_w) /* YM 2203 */ -ADDRESS_MAP_END - - -#define COINAGE \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ - PORT_DIPSETTING( 0x00, "coin 2 invalidity" ) - -INPUT_PORTS_START( combasc ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW #3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW # 1 */ - COINAGE - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START /* only used in trackball version */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* only used in trackball version */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* only used in trackball version */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( combasct ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW #3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW # 1 */ - COINAGE - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* trackball 1P */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_PLAYER(1) - - /* trackball 2P (not implemented yet) */ - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( combascb ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout gfxlayout = -{ - 8,8, - 0x4000, - 4, - { 0,1,2,3 }, - { 0, 4, 8, 12, 16, 20, 24, 28}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tile_layout = -{ - 8,8, - 0x2000, /* number of tiles */ - 4, /* bitplanes */ - { 0*0x10000*8, 1*0x10000*8, 2*0x10000*8, 3*0x10000*8 }, /* plane offsets */ - { 0,1,2,3,4,5,6,7 }, - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - 8*8 -}; - -static const gfx_layout sprite_layout = -{ - 16,16, - 0x800, /* number of sprites */ - 4, /* bitplanes */ - { 3*0x10000*8, 2*0x10000*8, 1*0x10000*8, 0*0x10000*8 }, /* plane offsets */ - { - 0,1,2,3,4,5,6,7, - 16*8+0,16*8+1,16*8+2,16*8+3,16*8+4,16*8+5,16*8+6,16*8+7 - }, - { - 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8, - 8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 - }, - 8*8*4 -}; - -static const gfx_decode combasc_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x00000, &gfxlayout, 0, 8*16 }, - { REGION_GFX2, 0x00000, &gfxlayout, 0, 8*16 }, - { -1 } -}; - -static const gfx_decode combascb_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x00000, &tile_layout, 0, 8*16 }, - { REGION_GFX1, 0x40000, &tile_layout, 0, 8*16 }, - { REGION_GFX2, 0x00000, &sprite_layout, 0, 8*16 }, - { REGION_GFX2, 0x40000, &sprite_layout, 0, 8*16 }, - { -1 } -}; - -static struct YM2203interface ym2203_interface = -{ - 0, - 0, - combasc_portA_w, - 0 -}; - -static struct upd7759_interface upd7759_interface = -{ - REGION_SOUND1, /* memory region */ - 0 -}; - - - -/* combat school (original) */ -static MACHINE_DRIVER_START( combasc ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 3 MHz? */ - MDRV_CPU_PROGRAM_MAP(combasc_readmem,combasc_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,3579545) /* 3.579545 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(20) - - MDRV_MACHINE_RESET(combasc) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(combasc_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(8*16*16) - - MDRV_PALETTE_INIT(combasc) - MDRV_VIDEO_START(combasc) - MDRV_VIDEO_UPDATE(combasc) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_DRIVER_END - -/* combat school (bootleg on different hardware) */ -static MACHINE_DRIVER_START( combascb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 3 MHz? */ - MDRV_CPU_PROGRAM_MAP(combascb_readmem,combascb_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,3579545) /* 3.579545 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound) /* FAKE */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(20) - - MDRV_MACHINE_RESET(combasc) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(combascb_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(8*16*16) - - MDRV_PALETTE_INIT(combascb) - MDRV_VIDEO_START(combascb) - MDRV_VIDEO_UPDATE(combascb) - - /* We are using the original sound subsystem */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_DRIVER_END - - - -ROM_START( combasc ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "611g01.rom", 0x30000, 0x08000, CRC(857ffffe) SHA1(de7566d58314df4b7fdc07eb31a3f9bdd12d1a73) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "611g02.rom", 0x10000, 0x20000, CRC(9ba05327) SHA1(ea03845fb49d18ac4fca97cfffce81db66b9967b) ) - /* extra 0x8000 for banked RAM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "611g03.rom", 0x00000, 0x08000, CRC(2a544db5) SHA1(94a97c3c54bf13ccc665aa5057ac6b1d700fae2d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g07.rom", 0x00000, 0x40000, CRC(73b38720) SHA1(e109eb78aea464127d813284ca040e8d719599e3) ) - ROM_LOAD16_BYTE( "611g08.rom", 0x00001, 0x40000, CRC(46e7d28c) SHA1(1ece7fac954204ac35d00f3d573964fcf82dcf77) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g11.rom", 0x00000, 0x40000, CRC(69687538) SHA1(4349a1c052a759acdf7259f8bf8c5c9489b788f2) ) - ROM_LOAD16_BYTE( "611g12.rom", 0x00001, 0x40000, CRC(9c6bf898) SHA1(eafc227b4e7df0c652ec7d78784c039c35965fdc) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "611g06.h14", 0x0000, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g05.h15", 0x0100, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - ROM_LOAD( "611g10.h6", 0x0200, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g09.h7", 0x0300, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "611g04.rom", 0x00000, 0x20000, CRC(2987e158) SHA1(87c5129161d3be29a339083349807e60b625c3f7) ) - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ampal16l8.e7", 0x0000, 0x0104, CRC(300a9936) SHA1(a4a87e93f41392fc7d7d8601d7187d87b9f9ab01) ) - ROM_LOAD( "pal16r6.16d", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal20l8.8h", 0x0400, 0x0144, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( combasct ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "g01.rom", 0x30000, 0x08000, CRC(489c132f) SHA1(c717195f89add4be4a21ecc1ddd58361b0ab4a74) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "611g02.rom", 0x10000, 0x20000, CRC(9ba05327) SHA1(ea03845fb49d18ac4fca97cfffce81db66b9967b) ) - /* extra 0x8000 for banked RAM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "611g03.rom", 0x00000, 0x08000, CRC(2a544db5) SHA1(94a97c3c54bf13ccc665aa5057ac6b1d700fae2d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g07.rom", 0x00000, 0x40000, CRC(73b38720) SHA1(e109eb78aea464127d813284ca040e8d719599e3) ) - ROM_LOAD16_BYTE( "611g08.rom", 0x00001, 0x40000, CRC(46e7d28c) SHA1(1ece7fac954204ac35d00f3d573964fcf82dcf77) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g11.rom", 0x00000, 0x40000, CRC(69687538) SHA1(4349a1c052a759acdf7259f8bf8c5c9489b788f2) ) - ROM_LOAD16_BYTE( "611g12.rom", 0x00001, 0x40000, CRC(9c6bf898) SHA1(eafc227b4e7df0c652ec7d78784c039c35965fdc) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "611g06.h14", 0x0000, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g05.h15", 0x0100, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - ROM_LOAD( "611g10.h6", 0x0200, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g09.h7", 0x0300, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "611g04.rom", 0x00000, 0x20000, CRC(2987e158) SHA1(87c5129161d3be29a339083349807e60b625c3f7) ) -ROM_END - -ROM_START( combascj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "611p01.a14", 0x30000, 0x08000, CRC(d748268e) SHA1(91588b6a0d3af47065204b980a56544a9f29b6d9) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "611g02.rom", 0x10000, 0x20000, CRC(9ba05327) SHA1(ea03845fb49d18ac4fca97cfffce81db66b9967b) ) - /* extra 0x8000 for banked RAM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "611g03.rom", 0x00000, 0x08000, CRC(2a544db5) SHA1(94a97c3c54bf13ccc665aa5057ac6b1d700fae2d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g07.rom", 0x00000, 0x40000, CRC(73b38720) SHA1(e109eb78aea464127d813284ca040e8d719599e3) ) - ROM_LOAD16_BYTE( "611g08.rom", 0x00001, 0x40000, CRC(46e7d28c) SHA1(1ece7fac954204ac35d00f3d573964fcf82dcf77) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g11.rom", 0x00000, 0x40000, CRC(69687538) SHA1(4349a1c052a759acdf7259f8bf8c5c9489b788f2) ) - ROM_LOAD16_BYTE( "611g12.rom", 0x00001, 0x40000, CRC(9c6bf898) SHA1(eafc227b4e7df0c652ec7d78784c039c35965fdc) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "611g06.h14", 0x0000, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g05.h15", 0x0100, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - ROM_LOAD( "611g10.h6", 0x0200, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g09.h7", 0x0300, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "611g04.rom", 0x00000, 0x20000, CRC(2987e158) SHA1(87c5129161d3be29a339083349807e60b625c3f7) ) -ROM_END - -ROM_START( bootcamp ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "xxx-v01.12a", 0x30000, 0x08000, CRC(c10dca64) SHA1(f34de26e998b1501e430d46e96cdc58ebc68481e) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "611g02.rom", 0x10000, 0x20000, CRC(9ba05327) SHA1(ea03845fb49d18ac4fca97cfffce81db66b9967b) ) - /* extra 0x8000 for banked RAM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "611g03.rom", 0x00000, 0x08000, CRC(2a544db5) SHA1(94a97c3c54bf13ccc665aa5057ac6b1d700fae2d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g07.rom", 0x00000, 0x40000, CRC(73b38720) SHA1(e109eb78aea464127d813284ca040e8d719599e3) ) - ROM_LOAD16_BYTE( "611g08.rom", 0x00001, 0x40000, CRC(46e7d28c) SHA1(1ece7fac954204ac35d00f3d573964fcf82dcf77) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "611g11.rom", 0x00000, 0x40000, CRC(69687538) SHA1(4349a1c052a759acdf7259f8bf8c5c9489b788f2) ) - ROM_LOAD16_BYTE( "611g12.rom", 0x00001, 0x40000, CRC(9c6bf898) SHA1(eafc227b4e7df0c652ec7d78784c039c35965fdc) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "611g06.h14", 0x0000, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g05.h15", 0x0100, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - ROM_LOAD( "611g10.h6", 0x0200, 0x0100, CRC(f916129a) SHA1(d5e4a8a3baab8fcdac86ef5182858cede1abf040) ) /* sprites lookup table */ - ROM_LOAD( "611g09.h7", 0x0300, 0x0100, CRC(207a7b07) SHA1(f4e638e7f182e5228a062b243406d0ceaaa5bfdc) ) /* chars lookup table */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "611g04.rom", 0x00000, 0x20000, CRC(2987e158) SHA1(87c5129161d3be29a339083349807e60b625c3f7) ) -ROM_END - -ROM_START( combascb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 6809 code */ - ROM_LOAD( "combat.002", 0x30000, 0x08000, CRC(0996755d) SHA1(bb6bbbf7ab3b5fab5e1c6cebc7b3f0d720493c3b) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "combat.003", 0x10000, 0x10000, CRC(229c93b2) SHA1(ac3fd3df1bb5f6a461d0d1423c50568348ef69df) ) - ROM_LOAD( "combat.004", 0x20000, 0x10000, CRC(a069cb84) SHA1(f49f70afb17df46b16f5801ef42edb0706730723) ) - /* extra 0x8000 for banked RAM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "combat.001", 0x00000, 0x10000, CRC(61456b3b) SHA1(320db628283dd1bec465e95020d1a1158e6d6ae4) ) - ROM_LOAD( "611g03.rom", 0x00000, 0x08000, CRC(2a544db5) SHA1(94a97c3c54bf13ccc665aa5057ac6b1d700fae2d) ) /* FAKE - from Konami set! */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "combat.006", 0x00000, 0x10000, CRC(8dc29a1f) SHA1(564dd7c6acff34db93b8e300dda563f5f38ba159) ) /* tiles, bank 0 */ - ROM_LOAD( "combat.008", 0x10000, 0x10000, CRC(61599f46) SHA1(cfd79a88bb496773daf207552c67f595ee696bc4) ) - ROM_LOAD( "combat.010", 0x20000, 0x10000, CRC(d5cda7cd) SHA1(140db6270c3f358aa27013db3bb819a48ceb5142) ) - ROM_LOAD( "combat.012", 0x30000, 0x10000, CRC(ca0a9f57) SHA1(d6b3daf7c34345bb2f64068d480bd51d7bb36e4d) ) - ROM_LOAD( "combat.005", 0x40000, 0x10000, CRC(0803a223) SHA1(67d4162385dd56d5396e181070bfa6760521eb45) ) /* tiles, bank 1 */ - ROM_LOAD( "combat.007", 0x50000, 0x10000, CRC(23caad0c) SHA1(0544cde479c6d4192da5bb4b6f0e2e75d09663c3) ) - ROM_LOAD( "combat.009", 0x60000, 0x10000, CRC(5ac80383) SHA1(1e89c371a92afc000d593daebda4156952a15244) ) - ROM_LOAD( "combat.011", 0x70000, 0x10000, CRC(cda83114) SHA1(12d2a9f694287edb3bb0ee7a8ba0e0724dad8e1f) ) - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "combat.013", 0x00000, 0x10000, CRC(4bed2293) SHA1(3369de47d4ba041d9f17a18dcca2af7ac9f8bc0c) ) /* sprites, bank 0 */ - ROM_LOAD( "combat.015", 0x10000, 0x10000, CRC(26c41f31) SHA1(f8eb7d0729a21a0dd92ce99c9cda0cde9526b861) ) - ROM_LOAD( "combat.017", 0x20000, 0x10000, CRC(6071e6da) SHA1(ba5f8e83b07faaffc564d3568630e17efdb5a09f) ) - ROM_LOAD( "combat.019", 0x30000, 0x10000, CRC(3b1cf1b8) SHA1(ff4de37c051bcb374c44d1b99006ff6ff5e1f927) ) - ROM_LOAD( "combat.014", 0x40000, 0x10000, CRC(82ea9555) SHA1(59bf7836938ce9e3242d1cca754de8dbe85bbfb7) ) /* sprites, bank 1 */ - ROM_LOAD( "combat.016", 0x50000, 0x10000, CRC(2e39bb70) SHA1(a6c4acd93cc803e987de6e18fbdc5ce4634b14a8) ) - ROM_LOAD( "combat.018", 0x60000, 0x10000, CRC(575db729) SHA1(6b1676da4f24fc90c77262789b6cc116184ab912) ) - ROM_LOAD( "combat.020", 0x70000, 0x10000, CRC(8d748a1a) SHA1(4386e14e19b91e053033dde2a13019bc6d8e1d5a) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "prom.d10", 0x0000, 0x0100, CRC(265f4c97) SHA1(76f1b75a593d3d77ef6173a1948f842d5b27d418) ) /* sprites lookup table */ - ROM_LOAD( "prom.c11", 0x0100, 0x0100, CRC(a7a5c0b4) SHA1(48bfc3af40b869599a988ebb3ed758141bcfd4fc) ) /* priority? */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* uPD7759 data */ - ROM_LOAD( "611g04.rom", 0x00000, 0x20000, CRC(2987e158) SHA1(87c5129161d3be29a339083349807e60b625c3f7) ) /* FAKE - from Konami set! */ -ROM_END - - - -static void combasc_init_common(void) -{ - combasc_interleave_timer = timer_alloc(NULL); -} - -static DRIVER_INIT( combasct ) -{ - combasc_init_common(); -} - -static DRIVER_INIT( combasc ) -{ - /* joystick instead of trackball */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0404, 0x0404, 0, 0, input_port_4_r); - - combasc_init_common(); -} - -static DRIVER_INIT( combascb ) -{ - combasc_init_common(); -} - - - -GAME( 1988, combasc, 0, combasc, combasc, combasc, ROT0, "Konami", "Combat School (joystick)", 0 ) -GAME( 1987, combasct, combasc, combasc, combasct, combasct, ROT0, "Konami", "Combat School (trackball)", 0 ) -GAME( 1987, combascj, combasc, combasc, combasct, combasct, ROT0, "Konami", "Combat School (Japan trackball)", 0 ) -GAME( 1987, bootcamp, combasc, combasc, combasct, combasct, ROT0, "Konami", "Boot Camp", 0 ) -GAME( 1988, combascb, combasc, combascb, combascb, combascb, ROT0, "bootleg", "Combat School (bootleg)", GAME_IMPERFECT_COLORS ) diff --git a/src/drivers/crbaloon.c b/src/drivers/crbaloon.c deleted file mode 100644 index 08d5cc57a..000000000 --- a/src/drivers/crbaloon.c +++ /dev/null @@ -1,422 +0,0 @@ -/*************************************************************************** - -Crazy Balloon memory map (preliminary) - -0000-2fff ROM -4000-43ff RAM -4800-4bff Video RAM -5000-53ff Color RAM - -I/O: - -read: -00 dsw -01 joystick -02 bit 0-3 from chip PC3259 (bit 3 is the sprite/char collision detection) - bit 4-7 dsw -03 bit 0 dsw - bit 1 high score name reset - bit 2 service - bit 3 tilt - bit 4-7 from chip PC3092; coin inputs & start buttons -06-0a-0e mirror addresses for 02; address lines 2 and 3 go to the PC3256 chip - so they probably alter its output, while the dsw bits (4-7) stay the same. - -write: -01 ? -02 bit 0-3 sprite code bit 4-7 sprite color -03 sprite X pos -04 sprite Y pos -05 music?? to a counter? -06 sound - bit 0 IRQ enable/acknowledge - bit 1 sound enable - bit 2 sound related (to amplifier) - bit 3 explosion (to 76477) - bit 4 breath (to 76477) - bit 5 appear (to 76477) - bit 6 sound related (to 555) - bit 7 to chip PC3259 -07 to chip PC3092 (bits 0-3) -08 to chip PC3092 (bits 0-3) - bit 0 seems to be flip screen - bit 1 might enable coin input -09 to chip PC3092 (bits 0-3) -0a to chip PC3092 (bits 0-3) -0b to chip PC3092 (bits 0-3) -0c MSK (to chip PC3259) -0d CC (not used) - -***************************************************************************/ - -#include "driver.h" -#include "sound/sn76477.h" -#include "sound/custom.h" -#include "crbaloon.h" - - - -static UINT8 val06,val08,val0a; - -static MACHINE_START( crbaloon ) -{ - state_save_register_global(val06); - state_save_register_global(val08); - state_save_register_global(val0a); - - return 0; -} - -WRITE8_HANDLER( crbaloon_06_w ) -{ - val06 = data; - - interrupt_enable_w(offset,data & 1); - - /* SOUND STOP is really sound enable */ - sound_global_enable(data & 0x02); - - /* enable is connected to EXPLOSION */ - SN76477_enable_w(0, (data & 0x08) ? 1 : 0); - - /* BREATH changes slf_res to 10k (middle of two 10k resistors) */ - /* it also puts a tantal capacitor against GND on the output, - but this section of the schematics is not readable. */ - SN76477_slf_res_w(0, (data & 0x10) ? RES_K(10) : RES_K(20) ); - - /* APPEAR is connected to MIXER B */ - SN76477_mixer_b_w(0, (data & 0x20) ? 1 : 0); - - discrete_sound_w(CRBALOON_MUSIC_EN, data & 0x04); - discrete_sound_w(CRBALOON_LAUGH_EN, data & 0x40); -} - -WRITE8_HANDLER( crbaloon_08_w ) -{ - val08 = data; - - crbaloon_flipscreen_w(offset,data & 1); -} - -WRITE8_HANDLER( crbaloon_0a_w ) -{ - val0a = data; -} - -READ8_HANDLER( crbaloon_IN2_r ) -{ - if (crbaloon_collision != 0) - { - return (input_port_2_r(0) & 0xf0) | 0x08; - } - - /* the following is needed for the game to boot up */ - if (val06 & 0x80) - { -logerror("PC %04x: %02x high\n",activecpu_get_pc(),offset); - return (input_port_2_r(0) & 0xf0) | 0x07; - } - else - { -logerror("PC %04x: %02x low\n",activecpu_get_pc(),offset); - return (input_port_2_r(0) & 0xf0) | 0x07; - } -} - -READ8_HANDLER( crbaloon_IN3_r ) -{ - if (val08 & 0x02) - /* enable coin & start input? Wild guess!!! */ - return input_port_3_r(0); - - /* the following is needed for the game to boot up */ - if (val0a & 0x01) - { -logerror("PC %04x: 03 high\n",activecpu_get_pc()); - return (input_port_3_r(0) & 0x0f) | 0x00; - } - else - { -logerror("PC %04x: 03 low\n",activecpu_get_pc()); - return (input_port_3_r(0) & 0x0f) | 0x00; - } -} - - -READ8_HANDLER( crbaloon_IN_r ) -{ - switch (offset & 0x03) - { - case 0: - return input_port_0_r(offset); - - case 1: - return input_port_1_r(offset); - - case 2: - return crbaloon_IN2_r(offset); - - case 3: - return crbaloon_IN3_r(offset); - } - - return 0; -} - -WRITE8_HANDLER( crbaloon_tone_w ) -{ - discrete_sound_w(CRBALOON_MUSIC_DATA, data); -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4800, 0x4bff) AM_READ(MRA8_RAM) - AM_RANGE(0x5000, 0x53ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4800, 0x4bff) AM_WRITE(crbaloon_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x5000, 0x53ff) AM_WRITE(crbaloon_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x0f) AM_READ(crbaloon_IN_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x02, 0x04) AM_WRITE(crbaloon_spritectrl_w) - AM_RANGE(0x05, 0x05) AM_WRITE(crbaloon_tone_w) - AM_RANGE(0x06, 0x06) AM_WRITE(crbaloon_06_w) - AM_RANGE(0x08, 0x08) AM_WRITE(crbaloon_08_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(crbaloon_0a_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( crbaloon ) - PORT_START_TAG("DSW0") // 0 - PORT_DIPNAME( 0x01, 0x01, "Test?" ) - PORT_DIPSETTING( 0x01, "I/O Check?" ) - PORT_DIPSETTING( 0x00, "RAM Check?" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "5000" ) - PORT_DIPSETTING( 0x10, "10000" ) - PORT_DIPNAME( 0xe0, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, "Disable" ) - - PORT_START_TAG("IN0") // 1 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("DSW1") // 2 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* from chip PC3259 */ - PORT_DIPNAME( 0x10, 0x10, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") // 3 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("High Score Name Reset") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) /* should be COIN2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - /* the following four bits come from chip PC3092 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START // 4 - PORT_ADJUSTER(50, "VR2 - Beep") - - PORT_START // 5 - PORT_ADJUSTER(50, "VR3 - Music") - -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 const gfx_layout spritelayout = -{ - 32,32, /* 32*32 sprites */ - 16, /* 16 sprites */ - 1, /* 1 bit per pixel */ - { 0 }, - { 3*32*8+0, 3*32*8+1, 3*32*8+2, 3*32*8+3, 3*32*8+4, 3*32*8+5, 3*32*8+6, 3*32*8+7, - 2*32*8+0, 2*32*8+1, 2*32*8+2, 2*32*8+3, 2*32*8+4, 2*32*8+5, 2*32*8+6, 2*32*8+7, - 1*32*8+0, 1*32*8+1, 1*32*8+2, 1*32*8+3, 1*32*8+4, 1*32*8+5, 1*32*8+6, 1*32*8+7, - 0*32*8+0, 0*32*8+1, 0*32*8+2, 0*32*8+3, 0*32*8+4, 0*32*8+5, 0*32*8+6, 0*32*8+7 }, - { 31*8, 30*8, 29*8, 28*8, 27*8, 26*8, 25*8, 24*8, - 23*8, 22*8, 21*8, 20*8, 19*8, 18*8, 17*8, 16*8, - 15*8, 14*8, 13*8, 12*8, 11*8, 10*8, 9*8, 8*8, - 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 }, - 32*4*8 /* every sprite takes 128 consecutive bytes */ -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &spritelayout, 0, 16 }, - { -1 } /* end of array */ -}; - - -static struct SN76477interface sn76477_interface = -{ - RES_K( 47), /* 4 noise_res */ - RES_K(330), /* 5 filter_res */ - CAP_P(470), /* 6 filter_cap */ - RES_K(220), /* 7 decay_res */ - CAP_U(1.0), /* 8 attack_decay_cap */ - RES_K(4.7), /* 10 attack_res */ - RES_M( 1), /* 11 amplitude_res */ - RES_K(200), /* 12 feedback_res */ - 5.0, /* 16 vco_voltage */ - CAP_P(470), /* 17 vco_cap */ - RES_K(330), /* 18 vco_res */ - 5.0, /* 19 pitch_voltage */ - RES_K( 20), /* 20 slf_res (variable) */ - CAP_P(420), /* 21 slf_cap */ - CAP_U(1.0), /* 23 oneshot_cap */ - RES_K( 47), /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 0, /* 25 mixer B (variable) */ - 1, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 0, /* 28 envelope 2 */ - 0 /* 9 enable (variable) */ -}; - - -static MACHINE_DRIVER_START( crbaloon ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ????? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(crbaloon) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(16*2) - - MDRV_PALETTE_INIT(crbaloon) - MDRV_VIDEO_START(crbaloon) - MDRV_VIDEO_UPDATE(crbaloon) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76477, 0) - MDRV_SOUND_CONFIG(sn76477_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(crbaloon_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( crbaloon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cl01.bin", 0x0000, 0x0800, CRC(9d4eef0b) SHA1(a8dd814ac2612073982123c91fa62deaf5bee242) ) - ROM_LOAD( "cl02.bin", 0x0800, 0x0800, CRC(10f7a6f7) SHA1(e672a7dcdaae08b202cfc2e19033846ebb267e1b) ) - ROM_LOAD( "cl03.bin", 0x1000, 0x0800, CRC(44ed6030) SHA1(8bbf5d9e893710138be15e56682037f128c83527) ) - ROM_LOAD( "cl04.bin", 0x1800, 0x0800, CRC(62f66f6c) SHA1(d173b12d6b5e0719d7b25ff0cafebbe64ec6b134) ) - ROM_LOAD( "cl05.bin", 0x2000, 0x0800, CRC(c8f1e2be) SHA1(a4603ce0268fa987f7f780702b6ca04e28759674) ) - ROM_LOAD( "cl06.bin", 0x2800, 0x0800, CRC(7d465691) SHA1(f5dc7abe8db232f702419d126cee6607ea6a5168) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cl07.bin", 0x0000, 0x0800, CRC(2c1fbea8) SHA1(41cf2aef74d56173057886512d989f6fa3682056) ) - - ROM_REGION( 0x0800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cl08.bin", 0x0000, 0x0800, CRC(ba898659) SHA1(4291059b113ff91896f1f61a4c14956716edfe1e) ) -ROM_END - -ROM_START( crbalon2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cl01.bin", 0x0000, 0x0800, CRC(9d4eef0b) SHA1(a8dd814ac2612073982123c91fa62deaf5bee242) ) - ROM_LOAD( "crazybal.ep2", 0x0800, 0x0800, CRC(87572086) SHA1(dba842c7c4cb16154ae0da43d71f8f03a56441c3) ) - ROM_LOAD( "crazybal.ep3", 0x1000, 0x0800, CRC(575fe995) SHA1(829db1da27cc9b706db6d9563bd271ffcd42be4a) ) - ROM_LOAD( "cl04.bin", 0x1800, 0x0800, CRC(62f66f6c) SHA1(d173b12d6b5e0719d7b25ff0cafebbe64ec6b134) ) - ROM_LOAD( "cl05.bin", 0x2000, 0x0800, CRC(c8f1e2be) SHA1(a4603ce0268fa987f7f780702b6ca04e28759674) ) - ROM_LOAD( "crazybal.ep6", 0x2800, 0x0800, CRC(fed6ff5c) SHA1(e6ed276949fd1511c6abe97026793193fda36e92) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cl07.bin", 0x0000, 0x0800, CRC(2c1fbea8) SHA1(41cf2aef74d56173057886512d989f6fa3682056) ) - - ROM_REGION( 0x0800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cl08.bin", 0x0000, 0x0800, CRC(ba898659) SHA1(4291059b113ff91896f1f61a4c14956716edfe1e) ) -ROM_END - - - -GAME( 1980, crbaloon, 0, crbaloon, crbaloon, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1980, crbalon2, crbaloon, crbaloon, crbaloon, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/crgolf.c b/src/drivers/crgolf.c deleted file mode 100644 index 79cc977dc..000000000 --- a/src/drivers/crgolf.c +++ /dev/null @@ -1,579 +0,0 @@ -/*************************************************************************** - - Kitco Crowns Golf hardware - - driver by Aaron Giles - - Games supported: - * Crowns Golf (4 sets) - * Crowns Golf in Hawaii - - Known bugs: - * not sure if the analog inputs are handled correctly - -Text Strings in sound CPU ROM read: -ARIES ELECA -1984JAN15 V-0 - -Text Strings in the bootleg sound CPU ROM read: -WHO AM I? (In place of "ARIES ELECA") -1984JULY1 V-1 (In place of "1984JAN15 V-0") -1984 COPYRIGHT BY WHO - -**************************************************************************** - - Memory map (TBA) - -***************************************************************************/ - -#include "driver.h" -#include "crgolf.h" -#include "sound/ay8910.h" -#include "sound/msm5205.h" - - -/* constants */ -#define MASTER_CLOCK 18432000 - - -/* local variables */ -static UINT8 port_select; -static UINT8 main_to_sound_data, sound_to_main_data; -static UINT16 sample_offset; -static UINT8 sample_count; - - - -/************************************* - * - * ROM banking - * - *************************************/ - -static WRITE8_HANDLER( rom_bank_select_w ) -{ - memory_set_bank(1, data & 15); -} - - -static MACHINE_START( crgolf ) -{ - /* configure the banking */ - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x2000); - memory_set_bank(1, 0); - - /* register for save states */ - state_save_register_global(port_select); - state_save_register_global(main_to_sound_data); - state_save_register_global(sound_to_main_data); - state_save_register_global(sample_offset); - state_save_register_global(sample_count); - return 0; -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static READ8_HANDLER( switch_input_r ) -{ - return readinputport(port_select); -} - - -static READ8_HANDLER( analog_input_r ) -{ - return ((readinputport(7) >> 4) | (readinputport(8) & 0xf0)) ^ 0x88; -} - - -static WRITE8_HANDLER( switch_input_select_w ) -{ - if (!(data & 0x40)) port_select = 6; - if (!(data & 0x20)) port_select = 5; - if (!(data & 0x10)) port_select = 4; - if (!(data & 0x08)) port_select = 3; - if (!(data & 0x04)) port_select = 2; - if (!(data & 0x02)) port_select = 1; - if (!(data & 0x01)) port_select = 0; -} - - -static WRITE8_HANDLER( unknown_w ) -{ - logerror("%04X:unknown_w = %02X\n", activecpu_get_pc(), data); -} - - - -/************************************* - * - * Main->Sound CPU communications - * - *************************************/ - -static void main_to_sound_callback(int param) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); - main_to_sound_data = param; -} - - -static WRITE8_HANDLER( main_to_sound_w ) -{ - timer_set(TIME_NOW, data, main_to_sound_callback); -} - - -static READ8_HANDLER( main_to_sound_r ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); - return main_to_sound_data; -} - - - -/************************************* - * - * Sound->Main CPU communications - * - *************************************/ - -static void sound_to_main_callback(int param) -{ - cpunum_set_input_line(0, INPUT_LINE_NMI, ASSERT_LINE); - sound_to_main_data = param; -} - - -static WRITE8_HANDLER( sound_to_main_w ) -{ - timer_set(TIME_NOW, data, sound_to_main_callback); -} - - -static READ8_HANDLER( sound_to_main_r ) -{ - cpunum_set_input_line(0, INPUT_LINE_NMI, CLEAR_LINE); - return sound_to_main_data; -} - - - -/************************************* - * - * Hawaii auto-sample player - * - *************************************/ - -static void vck_callback(int data) -{ - /* only play back if we have data remaining */ - if (sample_count != 0xff) - { - UINT8 data = memory_region(REGION_SOUND1)[sample_offset >> 1]; - - /* write the next nibble and advance */ - MSM5205_data_w(0, (data >> (4 * (~sample_offset & 1))) & 0x0f); - sample_offset++; - - /* every 256 clocks, we decrement the length */ - if (!(sample_offset & 0xff)) - { - sample_count--; - - /* if we hit 0xff, automatically turn off playback */ - if (sample_count == 0xff) - MSM5205_reset_w(0, 1); - } - } -} - - -static WRITE8_HANDLER( crgolfhi_sample_w ) -{ - switch (offset) - { - /* offset 0 holds the MSM5205 in reset */ - case 0: - MSM5205_reset_w(0, 1); - break; - - /* offset 1 is the length/256 nibbles */ - case 1: - sample_count = data; - break; - - /* offset 2 is the offset/256 nibbles */ - case 2: - sample_offset = data << 8; - break; - - /* offset 3 turns on playback */ - case 3: - MSM5205_reset_w(0, 0); - break; - } -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x5fff) AM_RAM - AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) - AM_RANGE(0x8003, 0x8003) AM_WRITE(MWA8_RAM) AM_BASE(&crgolf_color_select) - AM_RANGE(0x8004, 0x8004) AM_WRITE(MWA8_RAM) AM_BASE(&crgolf_screen_flip) - AM_RANGE(0x8005, 0x8005) AM_WRITE(MWA8_RAM) AM_BASE(&crgolf_screen_select) - AM_RANGE(0x8006, 0x8006) AM_WRITE(MWA8_RAM) AM_BASE(&crgolf_screenb_enable) - AM_RANGE(0x8007, 0x8007) AM_WRITE(MWA8_RAM) AM_BASE(&crgolf_screena_enable) - AM_RANGE(0x8800, 0x8800) AM_READWRITE(sound_to_main_r, main_to_sound_w) - AM_RANGE(0x9000, 0x9000) AM_WRITE(rom_bank_select_w) - AM_RANGE(0xa000, 0xbfff) AM_READWRITE(crgolf_videoram_bit1_r, crgolf_videoram_bit1_w) - AM_RANGE(0xc000, 0xdfff) AM_READWRITE(crgolf_videoram_bit0_r, crgolf_videoram_bit0_w) - AM_RANGE(0xe000, 0xffff) AM_READWRITE(crgolf_videoram_bit2_r, crgolf_videoram_bit2_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0xc000, 0xc000) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xc002, 0xc002) AM_WRITE(MWA8_NOP) - AM_RANGE(0xe000, 0xe000) AM_READWRITE(switch_input_r, switch_input_select_w) - AM_RANGE(0xe001, 0xe001) AM_READWRITE(analog_input_r, unknown_w) - AM_RANGE(0xe003, 0xe003) AM_READWRITE(main_to_sound_r, sound_to_main_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( crgolf ) - PORT_START /* CREDIT */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* SELECT */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START4 ) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* PLAY1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) /* club select */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) /* backward address */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) /* forward address */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* open stance */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) /* closed stance */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) /* direction left */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) /* direction right */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) /* shot switch */ - - PORT_START /* PLAY2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_COCKTAIL /* club select */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL /* backward address */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL /* forward address */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL /* open stance */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_COCKTAIL /* closed stance */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL /* direction left */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL /* direction right */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL /* shot switch */ - - PORT_START /* DIPSW */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Difficulty )) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x06, 0x04, "Half-Round Play" ) - PORT_DIPSETTING( 0x00, "4 Coins" ) - PORT_DIPSETTING( 0x02, "5 Coins" ) - PORT_DIPSETTING( 0x04, "6 Coins" ) - PORT_DIPSETTING( 0x06, "10 Coins" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x10, 0x00, "Clear High Scores" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C )) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(16) PORT_REVERSE - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(16) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct MSM5205interface msm5205_intf = -{ - vck_callback, - MSM5205_S64_4B -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( crgolf ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,MASTER_CLOCK/3/2) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,MASTER_CLOCK/3/2) - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(crgolf) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 8, 247) - MDRV_PALETTE_LENGTH(32) - - MDRV_PALETTE_INIT(crgolf) - MDRV_VIDEO_START(crgolf) - MDRV_VIDEO_UPDATE(crgolf) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(AY8910, MASTER_CLOCK/3/2/2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -MACHINE_DRIVER_START( crgolfhi ) - MDRV_IMPORT_FROM(crgolf) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_intf) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -ROM_START( crgolf ) // 834-5419-03 - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr6143.1c", 0x00000, 0x2000, CRC(4b301360) SHA1(2a7dd4876f4448b4b59b6dd02e55eb2d0126b777) ) - ROM_LOAD( "epr6142.1a", 0x02000, 0x2000, CRC(8fc5e67f) SHA1(6563db94c55cfc7d2270daccaab57fc7b422b9f9) ) - ROM_LOAD( "epr5880.6b", 0x10000, 0x2000, CRC(4d6d8dad) SHA1(1530f81ad0097eadc75884ff8690b60b85ae451b) ) - ROM_LOAD( "epr5885.5e", 0x1e000, 0x2000, CRC(fac6d56c) SHA1(67dc1918d5ab2443e967359e51d49dd134cdf25d) ) - ROM_LOAD( "epr5881.6f", 0x20000, 0x2000, CRC(dd48dc1f) SHA1(d4560a88d872bd5f401344e3adb25f8486caca11) ) - ROM_LOAD( "epr5886.5f", 0x22000, 0x2000, CRC(a09b27b8) SHA1(8b2d8322b633f6c7174bdb1fff0f6cef2d5a86de) ) - ROM_LOAD( "epr5882.6h", 0x24000, 0x2000, CRC(fb86a168) SHA1(a679c9f50ac952da6c65f6593dce805023b8fc45) ) - ROM_LOAD( "epr5887.5h", 0x26000, 0x2000, CRC(981f03ef) SHA1(42f686b970902bc42ac0f81bd2fc93dbdf766b1a) ) - ROM_LOAD( "epr5883.6j", 0x28000, 0x2000, CRC(e64125ff) SHA1(ae2014d1039f4ed02c55053519bdeddd2f60a77a) ) - ROM_LOAD( "epr5888.5j", 0x2a000, 0x2000, CRC(efc0e15a) SHA1(ba5772830f921004a2d9c90f557c04c799c755b9) ) - ROM_LOAD( "epr5884.6k", 0x2c000, 0x2000, CRC(eb455966) SHA1(14278b598ac1d4007d5357cb40899c92a052417f) ) - ROM_LOAD( "epr5889.5k", 0x2e000, 0x2000, CRC(88357391) SHA1(afdb5ed6555adf60bd64808413fc72fa5c67b6ec) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "epr6144.1f", 0x0000, 0x2000, CRC(b677f818) SHA1(d2f4c913a41ec7a935135fb08587257f9e939436) ) - ROM_LOAD( "epr5892.1e", 0x2000, 0x2000, CRC(608dc2e2) SHA1(d906537cffd3e055f52f37a0490b3bb63107b2f9) ) - ROM_LOAD( "epr5891a.1d", 0x4000, 0x2000, CRC(f353b585) SHA1(f09dcd0240131f872ceef5ddc9c89ab2fc92d117) ) - ROM_LOAD( "epr5890a.1c", 0x6000, 0x2000, CRC(b737c2e8) SHA1(8596abbdff74300230b5ec5bf8acfe222eb3414f) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "pr5877.1s", 0x0000, 0x0020, CRC(f880b95d) SHA1(5ad0ee39e2b9befaf3895ec635d5865b7b1e562b) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8.3e", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -ROM_START( crgolfa ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr5879b.1c", 0x00000, 0x2000, CRC(927be359) SHA1(d534f7e3ef4ced8eea882ae2b8425df4c5842833) ) - ROM_LOAD( "epr5878.1a", 0x02000, 0x2000, CRC(65fd0fa0) SHA1(de95ff95c9f981cd9eadf8b028ee5373bc69007b) ) - ROM_LOAD( "epr5880.6b", 0x10000, 0x2000, CRC(4d6d8dad) SHA1(1530f81ad0097eadc75884ff8690b60b85ae451b) ) - ROM_LOAD( "epr5885.5e", 0x1e000, 0x2000, CRC(fac6d56c) SHA1(67dc1918d5ab2443e967359e51d49dd134cdf25d) ) - ROM_LOAD( "epr5881.6f", 0x20000, 0x2000, CRC(dd48dc1f) SHA1(d4560a88d872bd5f401344e3adb25f8486caca11) ) - ROM_LOAD( "epr5886.5f", 0x22000, 0x2000, CRC(a09b27b8) SHA1(8b2d8322b633f6c7174bdb1fff0f6cef2d5a86de) ) - ROM_LOAD( "epr5882.6h", 0x24000, 0x2000, CRC(fb86a168) SHA1(a679c9f50ac952da6c65f6593dce805023b8fc45) ) - ROM_LOAD( "epr5887.5h", 0x26000, 0x2000, CRC(981f03ef) SHA1(42f686b970902bc42ac0f81bd2fc93dbdf766b1a) ) - ROM_LOAD( "epr5883.6j", 0x28000, 0x2000, CRC(e64125ff) SHA1(ae2014d1039f4ed02c55053519bdeddd2f60a77a) ) - ROM_LOAD( "epr5888.5j", 0x2a000, 0x2000, CRC(efc0e15a) SHA1(ba5772830f921004a2d9c90f557c04c799c755b9) ) - ROM_LOAD( "epr5884.6k", 0x2c000, 0x2000, CRC(eb455966) SHA1(14278b598ac1d4007d5357cb40899c92a052417f) ) - ROM_LOAD( "epr5889.5k", 0x2e000, 0x2000, CRC(88357391) SHA1(afdb5ed6555adf60bd64808413fc72fa5c67b6ec) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "epr5893c.1f", 0x0000, 0x1000, CRC(5011646d) SHA1(1bbf83107396d69c17580d4b1b38d93f741a608f) ) - ROM_LOAD( "epr5892.1e", 0x2000, 0x2000, CRC(608dc2e2) SHA1(d906537cffd3e055f52f37a0490b3bb63107b2f9) ) - ROM_LOAD( "epr5891a.1d", 0x4000, 0x2000, CRC(f353b585) SHA1(f09dcd0240131f872ceef5ddc9c89ab2fc92d117) ) - ROM_LOAD( "epr5890a.1c", 0x6000, 0x2000, CRC(b737c2e8) SHA1(8596abbdff74300230b5ec5bf8acfe222eb3414f) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "pr5877.1s", 0x0000, 0x0020, CRC(f880b95d) SHA1(5ad0ee39e2b9befaf3895ec635d5865b7b1e562b) ) -ROM_END - - -ROM_START( crgolfb ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr5879b.1c", 0x00000, 0x2000, CRC(927be359) SHA1(d534f7e3ef4ced8eea882ae2b8425df4c5842833) ) - ROM_LOAD( "epr5878.1a", 0x02000, 0x2000, CRC(65fd0fa0) SHA1(de95ff95c9f981cd9eadf8b028ee5373bc69007b) ) - ROM_LOAD( "cg.1", 0x10000, 0x2000, CRC(ad7d537a) SHA1(deff74074a8b16ea91a0fa72d97ec36336c87b97) ) - ROM_LOAD( "cg.6", 0x1e000, 0x2000, CRC(fac6d56c) SHA1(67dc1918d5ab2443e967359e51d49dd134cdf25d) ) - ROM_LOAD( "cg.2", 0x20000, 0x2000, CRC(dd48dc1f) SHA1(d4560a88d872bd5f401344e3adb25f8486caca11) ) - ROM_LOAD( "cg.7", 0x22000, 0x2000, CRC(a09b27b8) SHA1(8b2d8322b633f6c7174bdb1fff0f6cef2d5a86de) ) - ROM_LOAD( "cg.3", 0x24000, 0x2000, CRC(fb86a168) SHA1(a679c9f50ac952da6c65f6593dce805023b8fc45) ) - ROM_LOAD( "cg.8", 0x26000, 0x2000, CRC(981f03ef) SHA1(42f686b970902bc42ac0f81bd2fc93dbdf766b1a) ) - ROM_LOAD( "cg.4", 0x28000, 0x2000, CRC(e64125ff) SHA1(ae2014d1039f4ed02c55053519bdeddd2f60a77a) ) - ROM_LOAD( "cg.9", 0x2a000, 0x2000, CRC(efc0e15a) SHA1(ba5772830f921004a2d9c90f557c04c799c755b9) ) - ROM_LOAD( "cg.5", 0x2c000, 0x2000, CRC(eb455966) SHA1(14278b598ac1d4007d5357cb40899c92a052417f) ) - ROM_LOAD( "cg.10", 0x2e000, 0x2000, CRC(88357391) SHA1(afdb5ed6555adf60bd64808413fc72fa5c67b6ec) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "cg.14", 0x0000, 0x1000, CRC(07156cd9) SHA1(8907cf9228d6de117b24969d4e039cee330f9b1e) ) - ROM_LOAD( "cg.13", 0x2000, 0x2000, CRC(608dc2e2) SHA1(d906537cffd3e055f52f37a0490b3bb63107b2f9) ) - ROM_LOAD( "cg.12", 0x4000, 0x2000, CRC(f353b585) SHA1(f09dcd0240131f872ceef5ddc9c89ab2fc92d117) ) - ROM_LOAD( "cg.11", 0x6000, 0x2000, CRC(b737c2e8) SHA1(8596abbdff74300230b5ec5bf8acfe222eb3414f) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "pr5877.1s", 0x0000, 0x0020, CRC(f880b95d) SHA1(5ad0ee39e2b9befaf3895ec635d5865b7b1e562b) ) -ROM_END - - -ROM_START( crgolfc ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "15.1a", 0x00000, 0x2000, CRC(e6194356) SHA1(78eec53a0658b552e6a8af109d9c9754e4ddadcb) ) - ROM_LOAD( "16.1c", 0x02000, 0x2000, CRC(f50412e2) SHA1(5a50fb1edfc26072e921447bd157fe996f707e05) ) - ROM_LOAD( "cg.1", 0x10000, 0x2000, CRC(ad7d537a) SHA1(deff74074a8b16ea91a0fa72d97ec36336c87b97) ) // 1.6a - ROM_LOAD( "epr5885.5e", 0x1e000, 0x2000, CRC(fac6d56c) SHA1(67dc1918d5ab2443e967359e51d49dd134cdf25d) ) // 6.5a - ROM_LOAD( "epr5881.6f", 0x20000, 0x2000, CRC(dd48dc1f) SHA1(d4560a88d872bd5f401344e3adb25f8486caca11) ) // 2.6b - ROM_LOAD( "epr5886.5f", 0x22000, 0x2000, CRC(a09b27b8) SHA1(8b2d8322b633f6c7174bdb1fff0f6cef2d5a86de) ) // 7.5b - ROM_LOAD( "3.6c", 0x24000, 0x2000, CRC(b7fcee1a) SHA1(47e9a2cee945c5f59490b73c475ec2512ea0f559) ) - ROM_LOAD( "epr5887.5h", 0x26000, 0x2000, CRC(981f03ef) SHA1(42f686b970902bc42ac0f81bd2fc93dbdf766b1a) ) // 8.5c - ROM_LOAD( "epr5883.6j", 0x28000, 0x2000, CRC(e64125ff) SHA1(ae2014d1039f4ed02c55053519bdeddd2f60a77a) ) // 4.6d - ROM_LOAD( "epr5888.5j", 0x2a000, 0x2000, CRC(efc0e15a) SHA1(ba5772830f921004a2d9c90f557c04c799c755b9) ) // 9.5d - ROM_LOAD( "epr5884.6k", 0x2c000, 0x2000, CRC(eb455966) SHA1(14278b598ac1d4007d5357cb40899c92a052417f) ) // 5.6e - ROM_LOAD( "epr5889.5k", 0x2e000, 0x2000, CRC(88357391) SHA1(afdb5ed6555adf60bd64808413fc72fa5c67b6ec) ) // 10.5e - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "11.1e", 0x0000, 0x1000, CRC(53295a1a) SHA1(ec6c4df9f32e4b3ffe48e823d90a9e6a671e6027) ) - ROM_LOAD( "epr5892.1e", 0x2000, 0x2000, CRC(608dc2e2) SHA1(d906537cffd3e055f52f37a0490b3bb63107b2f9) ) // 12.1d - ROM_LOAD( "epr5891a.1d", 0x4000, 0x2000, CRC(f353b585) SHA1(f09dcd0240131f872ceef5ddc9c89ab2fc92d117) ) // 13.1c - ROM_LOAD( "epr5890a.1c", 0x6000, 0x2000, CRC(b737c2e8) SHA1(8596abbdff74300230b5ec5bf8acfe222eb3414f) ) // 14.1b - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "pr5877.1s", 0x0000, 0x0020, CRC(f880b95d) SHA1(5ad0ee39e2b9befaf3895ec635d5865b7b1e562b) ) -ROM_END - - -ROM_START( crgolfhi ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "cpu.c1", 0x00000, 0x2000, CRC(8b101085) SHA1(a59c369be3e7e645d8b20032998a778a2056b7d7) ) - ROM_LOAD( "cpu.a1", 0x02000, 0x2000, CRC(f48a8ee8) SHA1(cc07c7258caf251e9cb52f12be779cb02fca0b0a) ) - ROM_LOAD( "main.b6", 0x10000, 0x2000, CRC(5b0336c6) SHA1(86e2c197f23a2f2f7666448b74611150ca15a2af) ) - ROM_LOAD( "main.b5", 0x12000, 0x2000, CRC(7b80149a) SHA1(c802a79b1430b15d166f5fca11d2ed4e65bc65a9) ) - ROM_LOAD( "main.c6", 0x14000, 0x2000, CRC(7804cb1c) SHA1(487f979f47a0f40fa35331c71a66dc8428387a26) ) - ROM_LOAD( "main.c5", 0x16000, 0x2000, CRC(7721efc5) SHA1(9f3fb6845e5815ada1535da7800e175769fd46b1) ) - ROM_LOAD( "main.d6", 0x18000, 0x2000, CRC(f3ccdfaa) SHA1(c266737caf7222a971d0297b944c5710d3ec12be) ) - ROM_LOAD( "main.d5", 0x1a000, 0x2000, CRC(bef85c95) SHA1(516615975207209a4c649df7ffd451167fc40c45) ) - ROM_LOAD( "main.e6", 0x1c000, 0x2000, CRC(aa75e849) SHA1(226e7712e65f86422a1caebf3b95abcf39af2277) ) - ROM_LOAD( "main.e5", 0x1e000, 0x2000, CRC(e8eefbc4) SHA1(02393d3c0a1234ec51348d755725562cc7861285) ) - ROM_LOAD( "main.f6", 0x20000, 0x2000, CRC(e1130eec) SHA1(26a68f8af543983fcae73db59d075b11ee101ca8) ) - ROM_LOAD( "main.f5", 0x22000, 0x2000, CRC(090c21e3) SHA1(e5e0fc1e4ffd2a9c344cfc70a9e8e7cebb0821cc) ) - ROM_LOAD( "main.h6", 0x24000, 0x2000, CRC(33b8ada4) SHA1(73192108daa0724c30c1deea7d52538a49bfdf8f) ) - ROM_LOAD( "main.h5", 0x26000, 0x2000, CRC(16e5a26c) SHA1(7bb6e5d852f352331953058c17e753fee04d1cf9) ) - ROM_LOAD( "main.j6", 0x28000, 0x2000, CRC(22db8cce) SHA1(cd646830129bfdd2f5f10c8f6732e76f8a15b74f) ) - ROM_LOAD( "main.j5", 0x2a000, 0x2000, CRC(f757de30) SHA1(38330f10051735683f41ed425900b9f0f9ee01be) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "main.f1", 0x0000, 0x2000, CRC(e7c471de) SHA1(b953807bc714496363ca33ad0fc11a2d30aa7b7e) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) - ROM_LOAD( "sub.r1", 0x0000, 0x2000, CRC(9be85e38) SHA1(a108fe812d0518e7bef32fd76998c0c70b70723e) ) - ROM_LOAD( "sub.r2", 0x2000, 0x2000, CRC(d65b8e3a) SHA1(de6acffbe2d7078f0598857a6a3b2179e5c82a34) ) - ROM_LOAD( "sub.r3", 0x4000, 0x2000, CRC(65967250) SHA1(7620560ea57b8e5d259ea8881fb8d8ca46228014) ) - ROM_LOAD( "sub.r4", 0x6000, 0x2000, CRC(d3716776) SHA1(7e38437d255c5f28aac24f0943c10fc1ce998b60) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "prom.s1", 0x0000, 0x0020, CRC(014427df) SHA1(85a5e660f9667e032b80152bbde351007e5c88df) ) -ROM_END - - - -/************************************* - * - * Game-specific init - * - *************************************/ - -static DRIVER_INIT( crgolfhi ) -{ - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0xa000, 0xa003, 0, 0, crgolfhi_sample_w); -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1984, crgolf, 0, crgolf, crgolf, 0, ROT0, "Nasco Japan", "Crowns Golf (set 1)" , GAME_SUPPORTS_SAVE ) // 834-5419-03 -GAME( 1984, crgolfa, crgolf, crgolf, crgolf, 0, ROT0, "Nasco Japan", "Crowns Golf (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1984, crgolfc, crgolf, crgolf, crgolf, 0, ROT0, "Nasco Japan", "Champion Golf", GAME_SUPPORTS_SAVE ) -GAME( 1984, crgolfb, crgolf, crgolf, crgolf, 0, ROT0, "Nasco Japan", "Champion Golf (bootleg Set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1985, crgolfhi, 0, crgolfhi, crgolf, crgolfhi, ROT0, "Nasco Japan", "Crowns Golf in Hawaii" , GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/crimfght.c b/src/drivers/crimfght.c deleted file mode 100644 index afad95bbe..000000000 --- a/src/drivers/crimfght.c +++ /dev/null @@ -1,529 +0,0 @@ -/*************************************************************************** - -Crime Fighters (Konami GX821) (c) 1989 Konami - -Preliminary driver by: - Manuel Abadia - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - - -/* prototypes */ -static MACHINE_RESET( crimfght ); -static void crimfght_banking( int lines ); - -VIDEO_START( crimfght ); -VIDEO_UPDATE( crimfght ); - - -static WRITE8_HANDLER( crimfght_coin_w ) -{ - coin_counter_w(0,data & 1); - coin_counter_w(1,data & 2); -} - -static WRITE8_HANDLER( crimfght_sh_irqtrigger_w ) -{ - soundlatch_w(offset,data); - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static WRITE8_HANDLER( crimfght_snd_bankswitch_w ) -{ - /* b1: bank for channel A */ - /* b0: bank for channel B */ - - int bank_A = ((data >> 1) & 0x01); - int bank_B = ((data) & 0x01); - K007232_set_bank( 0, bank_A, bank_B ); -} - - -/********************************************/ - -static ADDRESS_MAP_START( crimfght_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_BANK1) /* banked RAM */ - AM_RANGE(0x0400, 0x1fff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x3f80, 0x3f80) AM_READ(input_port_7_r) /* Coinsw */ - AM_RANGE(0x3f81, 0x3f81) AM_READ(input_port_3_r) /* 1P controls */ - AM_RANGE(0x3f82, 0x3f82) AM_READ(input_port_4_r) /* 2P controls */ - AM_RANGE(0x3f83, 0x3f83) AM_READ(input_port_1_r) /* DSW #2 */ - AM_RANGE(0x3f84, 0x3f84) AM_READ(input_port_2_r) /* DSW #3 */ - AM_RANGE(0x3f85, 0x3f85) AM_READ(input_port_5_r) /* 3P controls */ - AM_RANGE(0x3f86, 0x3f86) AM_READ(input_port_6_r) /* 4P controls */ - AM_RANGE(0x3f87, 0x3f87) AM_READ(input_port_0_r) /* DSW #1 */ - AM_RANGE(0x3f88, 0x3f88) AM_READ(watchdog_reset_r) /* watchdog reset */ - AM_RANGE(0x2000, 0x5fff) AM_READ(K052109_051960_r) /* video RAM + sprite RAM */ - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK2) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( crimfght_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_BANK1) /* banked RAM */ - AM_RANGE(0x0400, 0x1fff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x3f88, 0x3f88) AM_WRITE(crimfght_coin_w) /* coin counters */ - AM_RANGE(0x3f8c, 0x3f8c) AM_WRITE(crimfght_sh_irqtrigger_w) /* cause interrupt on audio CPU? */ - AM_RANGE(0x2000, 0x5fff) AM_WRITE(K052109_051960_w) /* video RAM + sprite RAM */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( crimfght_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM 821l01.h4 */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xa001, 0xa001) AM_READ(YM2151_status_port_0_r) /* YM2151 */ - AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0xe000, 0xe00d) AM_READ(K007232_read_port_0_r) /* 007232 registers */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( crimfght_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM 821l01.h4 */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w) /* YM2151 */ - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2151_data_port_0_w) /* YM2151 */ - AM_RANGE(0xe000, 0xe00d) AM_WRITE(K007232_write_port_0_w) /* 007232 registers */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( crimfght ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "1 Coin/99 Credits" ) -/* PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Invalid" ) */ - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 3 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 4 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( crimfgtj ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* PLAYER 3 INPUTS */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 4 INPUTS */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct YM2151interface ym2151_interface = -{ - 0, - crimfght_snd_bankswitch_w -}; - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v & 0x0f) * 0x11,0); - K007232_set_volume(0,1,0,(v >> 4) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory regions */ - volume_callback /* external port callback */ -}; - - - -static MACHINE_DRIVER_START( crimfght ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(crimfght_readmem,crimfght_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3579545) /* verified with PCB */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(crimfght_readmem_sound,crimfght_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(54) /* adjusted - compared with PCB speed */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(crimfght) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(crimfght) - MDRV_VIDEO_UPDATE(crimfght) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) /* verified with PCB */ - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( crimfght ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "821l02.f24", 0x10000, 0x18000, CRC(588e7da6) SHA1(285febb3bcca31f82b34af3695a59eafae01cd30) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k06.k13", 0x000000, 0x040000, CRC(a1eadb24) SHA1(ca305b904b34e03918ad07281fda86ad63caa44f) ) /* characters */ - ROM_LOAD( "821k07.k19", 0x040000, 0x040000, CRC(060019fa) SHA1(c3bca007aaa5f1c534d2a75fe4f96d01a740dd58) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k04.k2", 0x000000, 0x080000, CRC(00e0291b) SHA1(39d5db6cf36826e47cdf5308eff9bfa8afc82050) ) /* sprites */ - ROM_LOAD( "821k05.k8", 0x080000, 0x080000, CRC(e09ea05d) SHA1(50ac9a2117ce63fe774c48d769ec445a83f1269e) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.i15", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* data for the 007232 */ - ROM_LOAD( "821k03.e5", 0x00000, 0x40000, CRC(fef8505a) SHA1(5c5121609f69001838963e961cb227d6b64e4f5f) ) -ROM_END - -ROM_START( crimfgtj ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "821p02.bin", 0x10000, 0x18000, CRC(f33fa2e1) SHA1(00fc9e8250fa51386f3af2fca0f137bec9e1c220) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k06.k13", 0x000000, 0x040000, CRC(a1eadb24) SHA1(ca305b904b34e03918ad07281fda86ad63caa44f) ) /* characters */ - ROM_LOAD( "821k07.k19", 0x040000, 0x040000, CRC(060019fa) SHA1(c3bca007aaa5f1c534d2a75fe4f96d01a740dd58) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k04.k2", 0x000000, 0x080000, CRC(00e0291b) SHA1(39d5db6cf36826e47cdf5308eff9bfa8afc82050) ) /* sprites */ - ROM_LOAD( "821k05.k8", 0x080000, 0x080000, CRC(e09ea05d) SHA1(50ac9a2117ce63fe774c48d769ec445a83f1269e) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.i15", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* data for the 007232 */ - ROM_LOAD( "821k03.e5", 0x00000, 0x40000, CRC(fef8505a) SHA1(5c5121609f69001838963e961cb227d6b64e4f5f) ) -ROM_END - -ROM_START( crimfgt2 ) -ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "crimefb.r02", 0x10000, 0x18000, CRC(4ecdd923) SHA1(78e5260c4bb9b18d7818fb6300d7e1d3a577fb63) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k06.k13", 0x000000, 0x040000, CRC(a1eadb24) SHA1(ca305b904b34e03918ad07281fda86ad63caa44f) ) /* characters */ - ROM_LOAD( "821k07.k19", 0x040000, 0x040000, CRC(060019fa) SHA1(c3bca007aaa5f1c534d2a75fe4f96d01a740dd58) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "821k04.k2", 0x000000, 0x080000, CRC(00e0291b) SHA1(39d5db6cf36826e47cdf5308eff9bfa8afc82050) ) /* sprites */ - ROM_LOAD( "821k05.k8", 0x080000, 0x080000, CRC(e09ea05d) SHA1(50ac9a2117ce63fe774c48d769ec445a83f1269e) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "821a08.i15", 0x0000, 0x0100, CRC(7da55800) SHA1(3826f73569c8ae0431510a355bdfa082152b74a5) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* data for the 007232 */ - ROM_LOAD( "821k03.e5", 0x00000, 0x40000, CRC(fef8505a) SHA1(5c5121609f69001838963e961cb227d6b64e4f5f) ) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void crimfght_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0; - - /* bit 5 = select work RAM or palette */ - if (lines & 0x20){ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x03ff, 0, 0, paletteram_r); /* palette */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x03ff, 0, 0, paletteram_xBBBBBGGGGGRRRRR_be_w); /* palette */ - } - else{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x03ff, 0, 0, MRA8_BANK1); /* RAM */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000, 0x03ff, 0, 0, MWA8_BANK1); /* RAM */ - } - - /* bit 6 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((lines & 0x40) ? ASSERT_LINE : CLEAR_LINE); - - offs = 0x10000 + ( ( lines & 0x0f ) * 0x2000 ); - memory_set_bankptr( 2, &RAM[offs] ); -} - -static MACHINE_RESET( crimfght ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)crimfght_banking); - - /* init the default bank */ - memory_set_bankptr( 2, &RAM[0x10000] ); -} - -static DRIVER_INIT( crimfght ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1989, crimfght, 0, crimfght, crimfght, crimfght, ROT0, "Konami", "Crime Fighters (US 4 players)", 0 ) -GAME( 1989, crimfgt2, crimfght, crimfght, crimfgtj, crimfght, ROT0, "Konami", "Crime Fighters (World 2 Players)", 0 ) -GAME( 1989, crimfgtj, crimfght, crimfght, crimfgtj, crimfght, ROT0, "Konami", "Crime Fighters (Japan 2 Players)", 0 ) diff --git a/src/drivers/crshrace.c b/src/drivers/crshrace.c deleted file mode 100644 index 5a7b29777..000000000 --- a/src/drivers/crshrace.c +++ /dev/null @@ -1,757 +0,0 @@ -/*************************************************************************** - -Crash Race (c) 1993 Video System Co. - -driver by Nicola Salmoria - -Notes: -- Keep player1 button1&2 pressed while entering service mode to get an - extended menu - - -Stephh's notes (based on the games M68000 code and some tests) : - -0) all games - - - There seems to be preliminary support for 3 simulataneous players, but the - game resets before the race starts if the 3 players don't play against each - other ! I can't tell however if it's an ingame or an emulation bug. - To test this, change CRSHRACE_3P_HACK to 1, set the "Reset on P.O.S.T. Error" - Dip Switch to "No" (because of the ROMS patch), and set the "Maximum Players" - Dip Switch to "3". - - - There are 2 buttons for each player (one for accel and one for brake), - the 3rd one being for "debug" purpose (see notes below). - - The "Difficulty" Dip Switch also determines the time to complete the race. - - "Coin B" Dip Switches only has an effect if you set the "Coin Slot" - Dip Switch to "Same". - If you set it to "Individual", it will use the coinage from "Coin A". - - COIN3 adds 1 credit only if you set the "Coin Slot" Dip Switch to "Same". - If you set it to "Individual", it will add 1 credit to fake player 3, - thus having no effect. - - - DSW 3 bit 0 used to be a "Max Players" Dip Switch (but it is now unused) : - * when Off, 2 players cabinet - * when On, 3 players cabinet - - - DSW 3 bits 1 to 3 used to be a "Coin C" Dip Switch (but they are now unused) - which is in fact similar to the table for "Coin A" and "Coin B" : - 1 2 3 Coinage - Off Off Off 1C_1C - On Off Off 2C_1C - Off On Off 3C_1C - On On Off 1C_2C - Off Off On 1C_3C - On Off On 1C_4C - Off On On 1C_5C - On On On 1C_6C - - - DSW 3 bit 7 is tested only if an error has occured during P.O.S.T. : - * when Off, the game is reset - * when On, don't bother with the error and continue - - - There are NO differences between Country code 0x0004 ("World") and 0x0005. - Country code is stored at 0xfe1c9e and can have the following values : - * 0000 : Japan - * 0001 : USA & Canada - * 0002 : Korea - * 0003 : Hong Kong & Taiwan - * 0004 : World - * 0005 : ??? - - - When in the "test mode" with the extended menu, pressing "P1 button 3" - causes a "freeze"; press it again to unfreeze. - - When in the "test mode" with the extended menu, pressing "P2 button 3" - has an unknown effect (sound related ?), but sets bit 2 at 0xfe0019. - - - There are writes to 0xfff00c and 0xfff00d, but these addresses aren't mapped : - * when "Flip Screen" Dip Switch is Off, 0x0001 is written to 0xfff00c.w - * when "Flip Screen" Dip Switch is Off, 0xc001 is written to 0xfff00c.w - I can't tell however what is the effect of these writes 8( - - -1) 'crshrace' - - - Even if there is code for it, there is NO possibility to select a 3 players - game due to code at 0x003778 which "invalidates" the previous reading of DSW 3 : - - 00363C: 13F8 F00B 00FE 1C85 move.b $f00b.w, $fe1c85.l - ... - 003650: 4639 00FE 1C85 not.b $fe1c85.l - ... - 003778: 51F9 00FE 1C85 sf $fe1c85.l - - - When in the "test mode" with the extended menu, pressing "P1 start" + - "P2 start" + the 3 buttons of the SAME player causes a reset of the game - (code at 0x003182). - - When in the "test play" menu of the "test mode", pressing "P1 button 1" + - "P1 button 2" + "P2 button 1" + "P2 button 2" + "P2 button 3" returns - to the "test mode" (code at 0x0040de). - - -2) 'crshrac2' - - - Even if there is code for it, there is NO possibility to select a 3 players - game due to code at 0x003796 which "invalidates" the previous reading of DSW 3 : - - 00365A: 13F8 F00B 00FE 1C85 move.b $f00b.w, $fe1c85.l - ... - 00366E: 4639 00FE 1C85 not.b $fe1c85.l - ... - 003796: 51F9 00FE 1C85 sf $fe1c85.l - - - When in the "test mode" with the extended menu, pressing "P1 start" + - "P2 start" + the 3 buttons of the SAME player causes a reset of the game - (code at 0x0031a0). - - When in the "test play" menu of the "test mode", pressing "P1 button 1" + - "P1 button 2" + "P2 button 1" + "P2 button 2" + "P2 button 3" returns - to the "test mode" (code at 0x0040fc). - - - I can't determine the effect of DSW 1 bit 4 8( All I can tell is that code - at 0x00ea9c is called when initialising the race "parameters". - - -TODO: -- handle screen flip correctly -- sprite lag - I think it needs sprites to be delayed TWO frames -- is bg color in service mode right (blue)? Should it be black instead? -- handling of layer priority & enable might not be correct, though it should be - enough to run this game. -- unknown writes to fff044/fff046. They look like two more scroll registers, - but for what? The first starts at 0 when going over the start line and - increases during the race - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "sound/2610intf.h" -#include "crshrace.h" - - -#define CRSHRACE_3P_HACK 0 - - -static READ16_HANDLER( extrarom1_r ) -{ - UINT8 *rom = memory_region(REGION_USER1); - - offset *= 2; - - return rom[offset] | (rom[offset+1] << 8); -} - -static READ16_HANDLER( extrarom2_r ) -{ - UINT8 *rom = memory_region(REGION_USER2); - - offset *= 2; - - return rom[offset] | (rom[offset+1] << 8); -} - -static WRITE8_HANDLER( crshrace_sh_bankswitch_w ) -{ - UINT8 *rom = memory_region(REGION_CPU2) + 0x10000; - - memory_set_bankptr(1,rom + (data & 0x03) * 0x8000); -} - - -static int pending_command; - -static WRITE16_HANDLER( sound_command_w ) -{ - if (ACCESSING_LSB) - { - pending_command = 1; - soundlatch_w(offset,data & 0xff); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static READ16_HANDLER( country_sndpending_r ) -{ - return readinputport(5) | (pending_command ? 0x8000 : 0); -} - -static WRITE8_HANDLER( pending_command_clear_w ) -{ - pending_command = 0; -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x300000, 0x3fffff) AM_READ(extrarom1_r) - AM_RANGE(0x400000, 0x4fffff) AM_READ(extrarom2_r) - AM_RANGE(0x500000, 0x5fffff) AM_READ(extrarom2_r) /* mirror */ - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xd00000, 0xd01fff) AM_READ(MRA16_RAM) - AM_RANGE(0xe00000, 0xe01fff) AM_READ(MRA16_RAM) - AM_RANGE(0xfe0000, 0xfeffff) AM_READ(MRA16_RAM) - AM_RANGE(0xffd000, 0xffdfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffe000, 0xffefff) AM_READ(MRA16_RAM) - AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r) - AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r) - AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r) - AM_RANGE(0xfff006, 0xfff007) AM_READ(country_sndpending_r) - AM_RANGE(0xfff00a, 0xfff00b) AM_READ(input_port_3_word_r) - AM_RANGE(0xfff00e, 0xfff00f) AM_READ(input_port_4_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16_2) AM_SIZE(&spriteram_2_size) // RAM-5 - AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(crshrace_videoram1_w) AM_BASE(&crshrace_videoram1) // RAM-3 H/L - AM_RANGE(0xe00000, 0xe01fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // RAM-6 - AM_RANGE(0xffc000, 0xffc001) AM_WRITE(crshrace_roz_bank_w) - AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(MWA16_RAM) /* work RAM */ // RAM-1 H/L - AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(crshrace_videoram2_w) AM_BASE(&crshrace_videoram2) // RAM-2 H/L - AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE(&paletteram16) // RAM-4 H/L - AM_RANGE(0xfff000, 0xfff001) AM_WRITE(crshrace_gfxctrl_w) - AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) - AM_RANGE(0xfff020, 0xfff03f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0xfff044, 0xfff047) AM_WRITE(MWA16_RAM) // ??? moves during race -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_READ(MRA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r) - AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x0a, 0x0a) AM_READ(YM2610_status_port_0_B_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w) - AM_RANGE(0x04, 0x04) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0x09, 0x09) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0x0b, 0x0b) AM_WRITE(YM2610_data_port_0_B_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( crshrace ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Accel" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Brake" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "Test" - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Accel" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Brake" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - /* DSW1 : 0xfe1c83 = !(0xfff004) */ - PORT_DIPNAME( 0x0100, 0x0100, "Coin Slot" ) - PORT_DIPSETTING( 0x0100, "Same" ) - PORT_DIPSETTING( 0x0000, "Individual" ) - PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x5000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) // Other desc. was too long ! - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - /* DSW2 : 0xfe1c84 = !(0xfff005) */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0008, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - - PORT_START - /* DSW3 : 0xfe1c85 = !(0xfff00b) */ -#if CRSHRACE_3P_HACK - PORT_DIPNAME( 0x0001, 0x0001, "Maximum Players" ) - PORT_DIPSETTING( 0x0001, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_DIPNAME( 0x000e, 0x000e, "Coin C" ) - PORT_DIPSETTING( 0x000a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) -#else - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -#endif - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Reset on P.O.S.T. Error" ) // Check code at 0x003812 - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Yes ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_DIPNAME( 0x0f00, 0x0100, "Country" ) - PORT_DIPSETTING( 0x0100, DEF_STR( World ) ) - PORT_DIPSETTING( 0x0800, "USA & Canada" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x0200, "Korea" ) - PORT_DIPSETTING( 0x0400, "Hong Kong & Taiwan" ) -/* - the following are all the same and seem to act like the World setting, possibly - with a slightly different attract sequence - PORT_DIPSETTING( 0x0300, "5" ) - PORT_DIPSETTING( 0x0500, "5" ) - PORT_DIPSETTING( 0x0600, "5" ) - PORT_DIPSETTING( 0x0700, "5" ) - PORT_DIPSETTING( 0x0900, "5" ) - PORT_DIPSETTING( 0x0a00, "5" ) - PORT_DIPSETTING( 0x0b00, "5" ) - PORT_DIPSETTING( 0x0c00, "5" ) - PORT_DIPSETTING( 0x0d00, "5" ) - PORT_DIPSETTING( 0x0e00, "5" ) - PORT_DIPSETTING( 0x0f00, "5" ) -*/ - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* pending sound command */ -INPUT_PORTS_END - -/* Same as 'crshrace', but additional "unknown" Dip Switch (see notes) */ -INPUT_PORTS_START( crshrac2 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Accel" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Brake" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "Test" - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Accel" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Brake" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - /* DSW2 : 0xfe1c84 = !(0xfff005) */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0008, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) // Check code at 0x00ea36 - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - /* DSW1 : 0xfe1c83 = !(0xfff004) */ - PORT_DIPNAME( 0x0100, 0x0100, "Coin Slot" ) - PORT_DIPSETTING( 0x0100, "Same" ) - PORT_DIPSETTING( 0x0000, "Individual" ) - PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x5000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) // Other desc. was too long ! - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - /* DSW3 : 0xfe1c85 = !(0xfff00b) */ -#if CRSHRACE_3P_HACK - PORT_DIPNAME( 0x0001, 0x0001, "Maximum Players" ) - PORT_DIPSETTING( 0x0001, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_DIPNAME( 0x000e, 0x000e, "Coin C" ) - PORT_DIPSETTING( 0x000a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) -#else - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -#endif - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Reset on P.O.S.T. Error" ) // Check code at 0x003830 - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Yes ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_DIPNAME( 0x0f00, 0x0100, "Country" ) - PORT_DIPSETTING( 0x0100, DEF_STR( World ) ) - PORT_DIPSETTING( 0x0800, "USA & Canada" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x0200, "Korea" ) - PORT_DIPSETTING( 0x0400, "Hong Kong & Taiwan" ) -/* - the following are all the same and seem to act like the World setting, possibly - with a slightly different attract sequence - PORT_DIPSETTING( 0x0300, "5" ) - PORT_DIPSETTING( 0x0500, "5" ) - PORT_DIPSETTING( 0x0600, "5" ) - PORT_DIPSETTING( 0x0700, "5" ) - PORT_DIPSETTING( 0x0900, "5" ) - PORT_DIPSETTING( 0x0a00, "5" ) - PORT_DIPSETTING( 0x0b00, "5" ) - PORT_DIPSETTING( 0x0c00, "5" ) - PORT_DIPSETTING( 0x0d00, "5" ) - PORT_DIPSETTING( 0x0e00, "5" ) - PORT_DIPSETTING( 0x0f00, "5" ) -*/ - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* pending sound command */ -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4, - 9*4, 8*4, 11*4, 10*4, 13*4, 12*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { REGION_GFX2, 0, &tilelayout, 256, 16 }, - { REGION_GFX3, 0, &spritelayout, 512, 32 }, - { -1 } /* end of array */ -}; - - - -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND1, - REGION_SOUND2 -}; - - - -static MACHINE_DRIVER_START( crshrace ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80,4000000) /* 4 MHz ??? */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(crshrace) - MDRV_VIDEO_EOF(crshrace) - MDRV_VIDEO_UPDATE(crshrace) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -ROM_START( crshrace ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "1", 0x000000, 0x80000, CRC(21e34fb7) SHA1(be47b4a9bce2d6ce0a127dffe032c61547b2a3c0) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) /* extra ROM */ - ROM_LOAD( "w21", 0x000000, 0x100000, CRC(a5df7325) SHA1(614095a086164af5b5e73245744411187d81deec) ) - - ROM_REGION( 0x100000, REGION_USER2, 0 ) /* extra ROM */ - ROM_LOAD( "w22", 0x000000, 0x100000, CRC(fc9d666d) SHA1(45aafcce82b668f93e51b5e4d092b1d0077e5192) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for the audio CPU + banks */ - ROM_LOAD( "2", 0x00000, 0x20000, CRC(e70a900f) SHA1(edfe5df2dab5a7dccebe1a6f978144bcd516ab03) ) - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "h895", 0x000000, 0x100000, CRC(36ad93c3) SHA1(f68f229dd1a1f8bfd3b8f73b6627f5f00f809d34) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "w18", 0x000000, 0x100000, CRC(b15df90d) SHA1(56e38e6c40a02553b6b8c5282aa8f16b20779ebf) ) - ROM_LOAD( "w19", 0x100000, 0x100000, CRC(28326b93) SHA1(997e9b250b984b012ce1d165add59c741fb18171) ) - ROM_LOAD( "w20", 0x200000, 0x100000, CRC(d4056ad1) SHA1(4b45b14aa0766d7aef72f060e1cd28d67690d5fe) ) - /* 300000-3fffff empty */ - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "h897", 0x000000, 0x200000, CRC(e3230128) SHA1(758c65f113481cf25bf0359deecd6736a7c9ee7e) ) - ROM_LOAD( "h896", 0x200000, 0x200000, CRC(fff60233) SHA1(56b4b708883a80761dc5f9184780477d72b80351) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* sound samples */ - ROM_LOAD( "h894", 0x000000, 0x100000, CRC(d53300c1) SHA1(4c3ff7d3156791cb960c28845a5f1906605bce55) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */ - ROM_LOAD( "h893", 0x000000, 0x100000, CRC(32513b63) SHA1(c4ede4aaa2611cedb53d47448422a1926acf3052) ) -ROM_END - -ROM_START( crshrac2 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "01-ic10.bin", 0x000000, 0x80000, CRC(b284aacd) SHA1(f0ef279cdec30eb32e8aa8cdd51e289b70f2d6f5) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) /* extra ROM */ - ROM_LOAD( "w21", 0x000000, 0x100000, CRC(a5df7325) SHA1(614095a086164af5b5e73245744411187d81deec) ) // IC14.BIN - - ROM_REGION( 0x100000, REGION_USER2, 0 ) /* extra ROM */ - ROM_LOAD( "w22", 0x000000, 0x100000, CRC(fc9d666d) SHA1(45aafcce82b668f93e51b5e4d092b1d0077e5192) ) // IC13.BIN - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for the audio CPU + banks */ - ROM_LOAD( "2", 0x00000, 0x20000, CRC(e70a900f) SHA1(edfe5df2dab5a7dccebe1a6f978144bcd516ab03) ) // 02-IC58.BIN - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "h895", 0x000000, 0x100000, CRC(36ad93c3) SHA1(f68f229dd1a1f8bfd3b8f73b6627f5f00f809d34) ) // IC50.BIN - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "w18", 0x000000, 0x100000, CRC(b15df90d) SHA1(56e38e6c40a02553b6b8c5282aa8f16b20779ebf) ) // ROM-A.BIN - ROM_LOAD( "w19", 0x100000, 0x100000, CRC(28326b93) SHA1(997e9b250b984b012ce1d165add59c741fb18171) ) // ROM-B.BIN - ROM_LOAD( "w20", 0x200000, 0x100000, CRC(d4056ad1) SHA1(4b45b14aa0766d7aef72f060e1cd28d67690d5fe) ) // ROM-C.BIN - /* 300000-3fffff empty */ - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "h897", 0x000000, 0x200000, CRC(e3230128) SHA1(758c65f113481cf25bf0359deecd6736a7c9ee7e) ) // IC29.BIN - ROM_LOAD( "h896", 0x200000, 0x200000, CRC(fff60233) SHA1(56b4b708883a80761dc5f9184780477d72b80351) ) // IC75.BIN - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* sound samples */ - ROM_LOAD( "h894", 0x000000, 0x100000, CRC(d53300c1) SHA1(4c3ff7d3156791cb960c28845a5f1906605bce55) ) // IC73.BIN - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */ - ROM_LOAD( "h893", 0x000000, 0x100000, CRC(32513b63) SHA1(c4ede4aaa2611cedb53d47448422a1926acf3052) ) // IC69.BIN -ROM_END - - -void crshrace_patch_code(UINT16 offset) -{ - /* A hack which shows 3 player mode in code which is disabled */ - UINT16 *RAM = (UINT16 *)memory_region(REGION_CPU1); - RAM[(offset + 0)/2] = 0x4e71; - RAM[(offset + 2)/2] = 0x4e71; - RAM[(offset + 4)/2] = 0x4e71; -} - - -DRIVER_INIT( crshrace ) -{ - #if CRSHRACE_3P_HACK - crshrace_patch_code(0x003778); - #endif -} - -DRIVER_INIT( crshrac2 ) -{ - #if CRSHRACE_3P_HACK - crshrace_patch_code(0x003796); - #endif -} - - -GAME( 1993, crshrace, 0, crshrace, crshrace, crshrace, ROT270, "Video System Co.", "Lethal Crash Race (set 1)", GAME_NO_COCKTAIL ) -GAME( 1993, crshrac2, crshrace, crshrace, crshrac2, crshrac2, ROT270, "Video System Co.", "Lethal Crash Race (set 2)", GAME_NO_COCKTAIL ) diff --git a/src/drivers/cvs.c b/src/drivers/cvs.c deleted file mode 100644 index ac8780e9a..000000000 --- a/src/drivers/cvs.c +++ /dev/null @@ -1,1425 +0,0 @@ -/*************************************************************************** - -Century CVS System - -MAIN BOARD: - - FLAG LOW | FLAG HIGH -------------------------------------+----------------------------------- -1C00-1FFF SYSTEM RAM | SYSTEM RAM - | - | -1800-1BFF ATTRIBUTE RAM 32X28 | SCREEN RAM 32X28 -1700 2636 1 | CHARACTER RAM 1 256BYTES OF 1K* -1600 2636 2 | CHARACTER RAM 2 256BYTES OF 1K* -1500 2636 3 | CHARACTER RAM 3 256BYTES OF 1K* -1400 BULLET RAM | PALETTE RAM 16BYTES - | - | -0000-13FF PROGRAM ROM'S | PROGRAM ROM'S - -* Note the upper two address lines are latched using a IO read. The IO map only has - space for 128 character bit maps - -The CPU CANNOT read the character PROM'S - ------ - - CVS IO MAP - ---------- -ADR14 ADR13 | READ | WRITE -------------+-------------------------------------------+----------------------------- - 1 0 | COLLISION RESET | D0 = STARS ON - | | D1 = SHADE BRIGHTER TO RIGHT - | | D2 = SCREEN ROTATE - read/write | | D3 = SHADE BRIGHTER TO LEFT - Data | | D4 = LAMP 1 (CN1 1) - | | D5 = LAMP 2 (CN1 2) - | | D6 = SHADE BRIGHTER TO BOTTOM - | | D7 = SHADE BRIGHTER TO TOP -------------+-------------------------------------------+------------------------------ - X 1 | A0-2: 0 STROBE CN2 1 | VERTICAL SCROLL OFFSET - | 1 STROBE CN2 11 | - | 2 STROBE CN2 2 | - | 3 STROBE CN2 3 | - | 4 STROBE CN2 4 | - | 5 STROBE CN2 12 | - | 6 STROBE DIP SW3 | - | 7 STROBE DIP SW2 | - | | - read/write | A4-5: CHARACTER PROM/RAM SELECTION MODE | - extended | There are 256 characters in total. The | - | higher ones can be user defined in RAM. | - | The split between PROM and RAM characters | - | is variable. | - | ROM RAM | - | A4 A5 MODE CHARACTERS CHARACTERS | - | 0 0 0 224 (0-223) 32 (224-255)| - | 0 1 1 192 (0-191) 64 (192-255)| - | 1 0 2 256 (0-255) 0 | - | 1 1 3 128 (0-127) 128 (128-255)| - | | - | | - | A6-7: SELECT CHARACTER RAM's | - | UPPER ADDRESS BITS A8-9 | - | (see memory map) | -------------+-------------------------------------------+------------------------------- - 0 0 | COLLISION DATA BYTE: | SOUND CONTROL PORT - | D0 = OBJECT 1 AND 2 | - | D1 = OBJECT 2 AND 3 | - read/write | D2 = OBJECT 1 AND 3 | - control | D3 = ANY OBJECT AND BULLET | - | D4 = OBJECT 1 AND CP1 OR CP2 | - | D5 = OBJECT 2 AND CP1 OR CP2 | - | D6 = OBJECT 3 AND CP1 OR CP2 | - | D7 = BULLET AND CP1 OR CP2 | -------------+-------------------------------------------+------------------------------- - -Driver by - Mike Coates - -Hardware Info - Malcolm & Darren - -***************************************************************************/ - -#include "driver.h" -#include "cpu/s2650/s2650.h" -#include "sound/dac.h" -#include "sound/5110intf.h" -#include "sound/tms5110.h" -#include "vidhrdw/s2636.h" - -INTERRUPT_GEN( cvs_interrupt ); -PALETTE_INIT( cvs ); -VIDEO_UPDATE( cvs ); -VIDEO_START( cvs ); - -extern unsigned char *bullet_ram; - -WRITE8_HANDLER( cvs_videoram_w ); -WRITE8_HANDLER( cvs_bullet_w ); -WRITE8_HANDLER( cvs_2636_1_w ); -WRITE8_HANDLER( cvs_2636_2_w ); -WRITE8_HANDLER( cvs_2636_3_w ); -WRITE8_HANDLER( cvs_scroll_w ); -WRITE8_HANDLER( cvs_video_fx_w ); - -READ8_HANDLER( cvs_collision_r ); -READ8_HANDLER( cvs_collision_clear ); -READ8_HANDLER( cvs_videoram_r ); -READ8_HANDLER( cvs_bullet_r ); -READ8_HANDLER( cvs_2636_1_r ); -READ8_HANDLER( cvs_2636_2_r ); -READ8_HANDLER( cvs_2636_3_r ); -READ8_HANDLER( cvs_character_mode_r ); - - -/*************************************************************************** - Speech Calls -***************************************************************************/ - -static int speech_rom_address = 0; -static int speech_rom_bit = 0; - -static void start_talking (void) -{ - tms5110_CTL_w(0,TMS5110_CMD_SPEAK); - tms5110_PDC_w(0,0); - tms5110_PDC_w(0,1); - tms5110_PDC_w(0,0); -} - -static void reset_talking (void) -{ - tms5110_CTL_w(0,TMS5110_CMD_RESET); - tms5110_PDC_w(0,0); - tms5110_PDC_w(0,1); - tms5110_PDC_w(0,0); - - tms5110_PDC_w(0,0); - tms5110_PDC_w(0,1); - tms5110_PDC_w(0,0); - - tms5110_PDC_w(0,0); - tms5110_PDC_w(0,1); - tms5110_PDC_w(0,0); - - speech_rom_address = 0x0; - speech_rom_bit = 0x0; -} - -WRITE8_HANDLER( control_port_w ) -{ - /* Controls both Speech and Effects */ - - logerror("%4x : Sound Port = %2x\n",activecpu_get_pc(),data); - - /* Sample CPU write - Causes interrupt if bit 7 set */ - - soundlatch_w(0,data); - if(data & 0x80) cpunum_set_input_line(1,3,HOLD_LINE); - - - /* Speech CPU stuff */ - - if((!tms5110_status_r(0)) && ((data & 0x40) == 0)) - { - /* Speech Command */ - - if(data == 0x3f) - { - reset_talking(); - } - else - { - speech_rom_address = ((data & 0x3f) * 0x80); - speech_rom_bit = 0; - - logerror("%4x : Speech = %4x\n",activecpu_get_pc(),speech_rom_address); - - start_talking(); - } - } -} - -int cvs_speech_rom_read_bit(void) -{ - unsigned char *ROM = memory_region(REGION_SOUND1); - int bit; - - speech_rom_address %= memory_region_length(REGION_SOUND1); - - bit = (ROM[speech_rom_address] >> speech_rom_bit ) & 1; - - speech_rom_bit++; - if(speech_rom_bit == 8) - { - speech_rom_address++; - speech_rom_bit = 0; - } - - return bit; -} - -WRITE8_HANDLER( cvs_DAC2_w ) -{ - /* 4 Bit DAC - 4 memory locations used */ - - static int DAC_Value=0; - - DAC_Value &= (1 << ~(offset + 4)); - DAC_Value |= ((data & 0x80) >> 7) << (offset + 4); - - DAC_1_data_w(0,DAC_Value); -} - -READ8_HANDLER( CVS_393hz_Clock_r ) -{ - if(cpu_scalebyfcount(6) & 1) return 0x80; - else return 0; -} - -static struct TMS5110interface tms5110_interface = -{ - 0, /*irq callback function*/ - cvs_speech_rom_read_bit /*M0 callback function. Called whenever chip requests a single bit of data*/ -}; - -static ADDRESS_MAP_START( cvs_cpu1_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x13ff) AM_ROM - AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_bullet_r, cvs_bullet_w) AM_BASE(&bullet_ram) - AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_3_r, cvs_2636_3_w) AM_BASE(&s2636_3_ram) - AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_2_r, cvs_2636_2_w) AM_BASE(&s2636_2_ram) - AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_1_r, cvs_2636_1_w) AM_BASE(&s2636_1_ram) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READWRITE(cvs_videoram_r, cvs_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM - AM_RANGE(0x2000, 0x33ff) AM_ROM - AM_RANGE(0x4000, 0x53ff) AM_ROM - AM_RANGE(0x6000, 0x73ff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cvs_cpu1_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_READ(input_port_2_r) - AM_RANGE(0x04, 0x04) AM_READ(input_port_3_r) - AM_RANGE(0x06, 0x06) AM_READ(input_port_4_r) // Dip 1 - AM_RANGE(0x07, 0x07) AM_READ(input_port_5_r) // Dip 2 - AM_RANGE(0x10, 0xff) AM_READ(cvs_character_mode_r) // Programmable Character Settings - AM_RANGE(0x00, 0xff) AM_WRITE(cvs_scroll_w) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, cvs_video_fx_w) - AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(cvs_collision_r, control_port_w) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_6_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cvs_cpu2_program, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(13) ) - AM_RANGE(0x0000, 0x0fff) AM_ROM - AM_RANGE(0x1000, 0x107f) AM_RAM - AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r) - AM_RANGE(0x1840, 0x1840) AM_WRITE(DAC_0_data_w) - AM_RANGE(0x1880, 0x1883) AM_WRITE(cvs_DAC2_w) - AM_RANGE(0x1884, 0x1887) AM_WRITE(MWA8_NOP) /* Not connected to anything */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cvs_cpu2_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(CVS_393hz_Clock_r) -ADDRESS_MAP_END - -INPUT_PORTS_START( cvs ) - - PORT_START /* Matrix 0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) /* Confirmed */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) /* Confirmed */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) /* Confirmed */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) /* Confirmed */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* Confirmed */ - PORT_BIT( 0xC0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Dunno */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* Confirmed */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) /* Confirmed */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) /* Confirmed */ - PORT_BIT( 0xcc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Dunno */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) /* Duplicate? */ - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Dunno */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) /* Confirmed */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) /* Confirmed */ - PORT_BIT( 0xcf, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* SW BANK 3 */ - PORT_DIPNAME( 0x01, 0x00, "Colour" ) - PORT_DIPSETTING( 0x00, "option 1" ) - PORT_DIPSETTING( 0x01, "option 2" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x02, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x0C, 0x00, "Bonus" ) - PORT_DIPSETTING( 0x00, "10k only" ) - PORT_DIPSETTING( 0x04, "20k only" ) - PORT_DIPSETTING( 0x08, "30k and every 40k" ) - PORT_DIPSETTING( 0x0C, "40k and every 80k" ) - PORT_DIPNAME( 0x10, 0x00, "Registration Length" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "10" ) - PORT_DIPNAME( 0x20, 0x00, "Registration" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START /* SW BANK 2 */ - PORT_DIPNAME( 0x03, 0x00, "Coins for 1 Play" ) /* Confirmed */ - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x03, "4" ) - PORT_DIPNAME( 0x0C, 0x0C, "Plays for 1 Coin" ) /* Confirmed */ - PORT_DIPSETTING( 0x0C, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives )) /* Confirmed */ - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x20, 0x00, "Meter Pulses" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "5" ) - - PORT_START /* SENSE */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - -INPUT_PORTS_END - -static const gfx_layout charlayout8colour = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 3, /* 3 bits per pixel */ - { 0, 0x800*8, 0x1000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 consecutive bytes */ -}; - -/* S2636 Mappings */ - -static const gfx_layout s2636_character10 = -{ - 8,10, - 5, - 1, - { 0 }, - { 0,1,2,3,4,5,6,7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 }, - 8*16 -}; - -static const gfx_decode cvs_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout8colour, 0, 259 }, /* Rom chars */ - { REGION_GFX1, 0x0000, &charlayout8colour, 0, 259 }, /* Ram chars */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #1 */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #2 */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #3 */ - { -1 } /* end of array */ -}; - -static MACHINE_DRIVER_START( cvs ) - - /* basic machine hardware */ - MDRV_CPU_ADD(S2650,894886.25) - MDRV_CPU_PROGRAM_MAP(cvs_cpu1_program,0) - MDRV_CPU_IO_MAP(cvs_cpu1_io,0) - MDRV_CPU_VBLANK_INT(cvs_interrupt,1) - - MDRV_CPU_ADD(S2650,894886.25) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(cvs_cpu2_program,0) - MDRV_CPU_IO_MAP(cvs_cpu2_io,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 1*8, 32*8-1) - MDRV_GFXDECODE(cvs_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(4096) - - MDRV_PALETTE_INIT(cvs) - MDRV_VIDEO_START(cvs) - MDRV_VIDEO_UPDATE(cvs) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(TMS5110, 640000) - MDRV_SOUND_CONFIG(tms5110_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( cvs ) - ROM_REGION( 0x8000, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_FILL(0x000000, 0x1800, 0 ) -ROM_END - - -ROM_START( huncholy ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "ho-gp1.bin", 0x0000, 0x0400, CRC(4f17cda7) SHA1(ae6fe495c723042c6e060d4ada50aaef1019d5eb) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "ho-gp2.bin", 0x0400, 0x0400, CRC(70fa52c7) SHA1(179813fdc204870d72c0bfa8cd5dbf277e1f67c4) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "ho-gp3.bin", 0x0800, 0x0400, CRC(931934b1) SHA1(08fe5ad3459862246e9ea845abab4e01e1dbd62d) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "ho-gp4.bin", 0x0c00, 0x0400, CRC(af5cd501) SHA1(9a79b173aa41a82faa9f19210d3e18bfa6c593fa) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "ho-gp5.bin", 0x1000, 0x0400, CRC(658e8974) SHA1(30d0ada1cce99a842bad8f5a58630bc1b7048b03) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "ho-sdp1.bin", 0x0000, 0x1000, CRC(3efb3ffd) SHA1(be4807c8b4fe23f2247aa3b6ac02285bee1a0520) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "ho-sp1.bin", 0x0000, 0x1000, CRC(3fd39b1e) SHA1(f5d0b2cfaeda994762403f039a6f7933c5525234) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ho-cp1.bin", 0x0000, 0x0800, CRC(c6c73d46) SHA1(63aba92f77105fedf46337b591b074020bec05d0) ) - ROM_LOAD( "ho-cp2.bin", 0x0800, 0x0800, CRC(e596371c) SHA1(93a0d0ccdf830ae72d070b03b7e2222f4a737ead) ) - ROM_LOAD( "ho-cp3.bin", 0x1000, 0x0800, CRC(11fae1cf) SHA1(5ceabfb1ff1a6f76d1649512f57d7151f5258ecb) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( darkwar ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "dw-gp1.bin", 0x0000, 0x0400, CRC(f10ccf24) SHA1(f694a9016fc935798e5342598e4fd60fbdbc2829) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "dw-gp2.bin", 0x0400, 0x0400, CRC(b77d0483) SHA1(47d126b9ceaf07267c9078a342a860295320b01c) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "dw-gp3.bin", 0x0800, 0x0400, CRC(c01c3281) SHA1(3c272f424f8a35d08b58f203718b579c1abbe63f) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "dw-gp4.bin", 0x0c00, 0x0400, CRC(0b0bffaf) SHA1(48db78d86dc249fb4d7d93b79b2ac269a0c6698e) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "dw-gp5.bin", 0x1000, 0x0400, CRC(7fdbcaff) SHA1(db80d0d8690105ca72df359c1dc1a43952709111) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "dw-sdp1.bin", 0x0000, 0x0800, CRC(b385b669) SHA1(79621d3fb3eb4ea6fa8a733faa6f21edeacae186) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "dw-sp1.bin", 0x0000, 0x1000, CRC(ce815074) SHA1(105f24fb776131b30e35488cca29954298559518) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dw-cp1.bin", 0x0000, 0x0800, CRC(7a0f9f3e) SHA1(0aa787923fbb614f15016d99c03093a59a0bfb88) ) - ROM_LOAD( "dw-cp2.bin", 0x0800, 0x0800, CRC(232e5120) SHA1(76e4d6d17e8108306761604bd56d6269bfc431e1) ) - ROM_LOAD( "dw-cp3.bin", 0x1000, 0x0800, CRC(573e0a17) SHA1(9c7991eac625b287bafb6cf722ffb405a9627e09) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( 8ball ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "8b-gp1.bin", 0x0000, 0x0400, CRC(1b4fb37f) SHA1(df6dd2766a3b70eec0bde0ae1932b35abdab3735) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "8b-gp2.bin", 0x0400, 0x0400, CRC(f193cdb5) SHA1(54fd1a10c1b9da0f9c4d190f95acc11b3c6e7907) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "8b-gp3.bin", 0x0800, 0x0400, CRC(191989bf) SHA1(dea129a4ed06aac453ab1fbbfae14d8048ef270d) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "8b-gp4.bin", 0x0c00, 0x0400, CRC(9c64519e) SHA1(9a5cad7ccf8f1f289da9a6de0edd4e6d4f0b12fb) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "8b-gp5.bin", 0x1000, 0x0400, CRC(c50d0f9d) SHA1(31b6ea6282fec96d9d2fb74129a215d10f12cc9b) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "8b-sdp1.bin", 0x0000, 0x1000, CRC(a571daf4) SHA1(0db5b95db9da27216bbfa8fff84491a7755f9f1a) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "8b-sp1.bin", 0x0000, 0x0800, CRC(1ee167f3) SHA1(40c876a60832456a27108252ba0b9963f9fe70b0) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8b-cp1.bin", 0x0000, 0x0800, CRC(c1f68754) SHA1(481c8e3dc35300f779b7925fa8a54320688dac54) ) - ROM_LOAD( "8b-cp2.bin", 0x0800, 0x0800, CRC(6ec1d711) SHA1(768df8e621a7b110a963c93402ee01b1c9009286) ) - ROM_LOAD( "8b-cp3.bin", 0x1000, 0x0800, CRC(4a9afce4) SHA1(187e5106aa2d0bdebf6ec9f2b7c2c2f67d47d221) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( 8ball1 ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "8a-gp1.bin", 0x0000, 0x0400, CRC(b5d3b763) SHA1(23a01bcbd536ba7f773934ea9dedc7dd9f698100) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "8a-gp2.bin", 0x0400, 0x0400, CRC(5e4aa61a) SHA1(aefa79b4c63d1ac5cb000f2c7c5d06e85d58a547) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "8a-gp3.bin", 0x0800, 0x0400, CRC(3dc272fe) SHA1(303184f7c3557be91d6b8e62a9685080444a78c5) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "8a-gp4.bin", 0x0c00, 0x0400, CRC(33afedbf) SHA1(857c743fd81fbd439c204b6adb251db68465cfc3) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "8a-gp5.bin", 0x1000, 0x0400, CRC(b8b3f373) SHA1(e808db4dcac6d8a454e20b561bb4f3a3bb9c6200) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "8b-sdp1.bin", 0x0000, 0x1000, CRC(a571daf4) SHA1(0db5b95db9da27216bbfa8fff84491a7755f9f1a) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "8b-sp1.bin", 0x0000, 0x0800, CRC(1ee167f3) SHA1(40c876a60832456a27108252ba0b9963f9fe70b0) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8a-cp1.bin", 0x0000, 0x0800, CRC(d9b36c16) SHA1(dbb496102fa2344f19b5d9a3eecdb29c433e4c08) ) - ROM_LOAD( "8a-cp2.bin", 0x0800, 0x0800, CRC(6f66f0ff) SHA1(1e91474973356e97f89b4d9093565747a8331f50) ) - ROM_LOAD( "8a-cp3.bin", 0x1000, 0x0800, CRC(baee8b17) SHA1(9f86f1d5903aeead17cc75dac8a2b892bb375dad) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( hunchbak ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "hb-gp1.bin", 0x0000, 0x0400, CRC(af801d54) SHA1(68e31561e98f7e2caa337dd764941d08f075b559) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "hb-gp2.bin", 0x0400, 0x0400, CRC(b448cc8e) SHA1(ed94f662c0e08a3a0aca073fbec29ae1fbd0328e) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "hb-gp3.bin", 0x0800, 0x0400, CRC(57c6ea7b) SHA1(8c3ba01ab1917a8c24180ed1c0011dbfed36d406) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "hb-gp4.bin", 0x0c00, 0x0400, CRC(7f91287b) SHA1(9383d885c142417de73879905cbce272ba9514c7) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "hb-gp5.bin", 0x1000, 0x0400, CRC(1dd5755c) SHA1(b1e158d52bd9a238e3e32ed3024e495df2292dcb) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "hb-sdp1.bin", 0x0000, 0x1000, CRC(f9ba2854) SHA1(d041198e2e8b8c3e668bd1610310f8d25c5b1119) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "hb-sp1.bin", 0x0000, 0x0800, CRC(ed1cd201) SHA1(6cc3842dda1bfddc06ffb436c55d14276286bd67) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hb-cp1.bin", 0x0000, 0x0800, CRC(f256b047) SHA1(02d79882bad37ffdd58ef478e2658a1369c32ebc) ) - ROM_LOAD( "hb-cp2.bin", 0x0800, 0x0800, CRC(b870c64f) SHA1(ce4f8de87568782ce02bba754edff85df7f5c393) ) - ROM_LOAD( "hb-cp3.bin", 0x1000, 0x0800, CRC(9a7dab88) SHA1(cd39a9d4f982a7f49c478db1408d7e07335f2ddc) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( wallst ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "ws-gp1.bin", 0x0000, 0x0400, CRC(bdac81b6) SHA1(6ce865d8902e815742a9ecf10d6f9495f376dede) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "ws-gp2.bin", 0x0400, 0x0400, CRC(9ca67cdd) SHA1(575a4d8d037d2a3c07a8f49d93c7cf6781349ec1) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "ws-gp3.bin", 0x0800, 0x0400, CRC(c2f407f2) SHA1(8208064fd0138a6ccacf03275b8d28793245bfd9) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "ws-gp4.bin", 0x0c00, 0x0400, CRC(1e4b2fe1) SHA1(28eda70cc9cf619452729092e68734ab1a5dc7fb) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "ws-gp5.bin", 0x1000, 0x0400, CRC(eec7bfd0) SHA1(6485e9e2e1624118e38892e74f80431820fd9672) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "ws-sdp1.bin", 0x0000, 0x1000, CRC(faed2ac0) SHA1(c2c48e24a560d918531e5c17fb109d68bdec850f) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "ws-sp1.bin", 0x0000, 0x0800, CRC(84b72637) SHA1(9c5834320f39545403839fb7088c37177a6c8861) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ws-cp1.bin", 0x0000, 0x0800, CRC(5aca11df) SHA1(5ef815b5b09445515ff8b958c4ea29f1a221cee1) ) - ROM_LOAD( "ws-cp2.bin", 0x0800, 0x0800, CRC(ca530d85) SHA1(e5a78667c3583d06d8387848323b11e4a91091ec) ) - ROM_LOAD( "ws-cp3.bin", 0x1000, 0x0800, CRC(1e0225d6) SHA1(410795046c64c24de6711b167315308808b54291) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( dazzler ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "dz-gp1.bin", 0x0000, 0x0400, CRC(2c5d75de) SHA1(d121de662e95f2fc362e367cef57e5e70bafd197) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "dz-gp2.bin", 0x0400, 0x0400, CRC(d0db80d6) SHA1(ca57d3a1d516e0afd750a8f05ae51d4ddee60ca0) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "dz-gp3.bin", 0x0800, 0x0400, CRC(d5f07796) SHA1(110bb0e1613db3634513e8456770dd9d43ad7d34) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "dz-gp4.bin", 0x0c00, 0x0400, CRC(84e41a46) SHA1(a1c1fd9ecacf3357f5c7916cf05dc0b79e975137) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "dz-gp5.bin", 0x1000, 0x0400, CRC(2ae59c41) SHA1(a17e9535409e9e91c41f26a3543f44f20c1b07a5) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "dz-sdp1.bin", 0x0000, 0x1000, CRC(89847352) SHA1(54037a4d95958c4c3383467d7f4c2c9416b2eb4a) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "dz-sp1.bin", 0x0000, 0x0800, CRC(25da1fc1) SHA1(c14717ec3399ce7dc47a9d42c8ac8f585db770e9) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dz-cp1.bin", 0x0000, 0x0800, CRC(0a8a9034) SHA1(9df3d4f387bd5ce3d3580ba678aeda1b65634ac2) ) - ROM_LOAD( "dz-cp2.bin", 0x0800, 0x0800, CRC(3868dd82) SHA1(844584c5a80fb8f1797b4aa4e22024e75726293d) ) - ROM_LOAD( "dz-cp3.bin", 0x1000, 0x0800, CRC(755d9ed2) SHA1(a7165a1d12a5a81d8bb941d8ad073e2097c90beb) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( radarzon ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "rd-gp1.bin", 0x0000, 0x0400, CRC(775786ba) SHA1(5ad0f4e774821a7ed73615118ea42132d3b5424b) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "rd-gp2.bin", 0x0400, 0x0400, CRC(9f6be426) SHA1(24b6cf3d826f3aec0e928881f259a5bc6229232b) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "rd-gp3.bin", 0x0800, 0x0400, CRC(61d11b29) SHA1(fe321c1c912b93bbb098d591e5c4ed0b5b72c88e) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "rd-gp4.bin", 0x0c00, 0x0400, CRC(2fbc778c) SHA1(e45ba08156cf03a1c4a1bdfb8569476d0eb05847) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "rd-gp5.bin", 0x1000, 0x0400, CRC(692a99d5) SHA1(122ae802914cb9a41713536f9030cd9377cf3468) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "rd-sdp1.bin", 0x0000, 0x0800, CRC(cd5aea6d) SHA1(f7545b87e71e3108c0dec24a4e91620d006e0602) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "rd-sp1.bin", 0x0000, 0x0800, CRC(43b17734) SHA1(59960f0c48ed24cedb4b4655f97f6f1fdac4445e) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rd-cp1.bin", 0x0000, 0x0800, CRC(ed601677) SHA1(efe2b6033f319603ee80ed4ba66d3b3607537b13) ) - ROM_LOAD( "rd-cp2.bin", 0x0800, 0x0800, CRC(35e317ff) SHA1(458550b431ec66006e2966d86a2286905c0495ed) ) - ROM_LOAD( "rd-cp3.bin", 0x1000, 0x0800, CRC(90f2c43f) SHA1(406215217f6f20c1a78f31b2ae3c0a97391e3371) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( radarzn1 ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "r1-gp1.bin", 0x0000, 0x0400, CRC(7c73c21f) SHA1(1113025ea16cfcc500b9624a031f3d25290db163) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "r1-gp2.bin", 0x0400, 0x0400, CRC(dedbd2ce) SHA1(ef80bf1b4a9561ad7f54e795c78e72664abf0501) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "r1-gp3.bin", 0x0800, 0x0400, CRC(966a49e7) SHA1(6c769ac12fbfb65184131f1ab16240e422125c04) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "r1-gp4.bin", 0x0c00, 0x0400, CRC(f3175bee) SHA1(f4927eea856ae56b1854263666a48e2cfb3ab60d) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "r1-gp5.bin", 0x1000, 0x0400, CRC(7484927b) SHA1(89a67baa91075d2777f2ecd1667ed79175ad57ca) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "rd-sdp1.bin", 0x0000, 0x0800, CRC(cd5aea6d) SHA1(f7545b87e71e3108c0dec24a4e91620d006e0602) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "rd-sp1.bin", 0x0000, 0x0800, CRC(43b17734) SHA1(59960f0c48ed24cedb4b4655f97f6f1fdac4445e) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rd-cp1.bin", 0x0000, 0x0800, CRC(ed601677) SHA1(efe2b6033f319603ee80ed4ba66d3b3607537b13) ) - ROM_LOAD( "rd-cp2.bin", 0x0800, 0x0800, CRC(35e317ff) SHA1(458550b431ec66006e2966d86a2286905c0495ed) ) - ROM_LOAD( "rd-cp3.bin", 0x1000, 0x0800, CRC(90f2c43f) SHA1(406215217f6f20c1a78f31b2ae3c0a97391e3371) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( radarznt ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "rt-gp1.bin", 0x0000, 0x0400, CRC(43573974) SHA1(854fe7022e9bdd94bb119c014156e9ffdb6682fa) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "rt-gp2.bin", 0x0400, 0x0400, CRC(257a11ce) SHA1(ca7f9260d9879ebce202f83a41838cb6dc9a6480) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "rt-gp3.bin", 0x0800, 0x0400, CRC(e00f3552) SHA1(156765809e4016527039e3d5cc1c320cfce06834) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "rt-gp4.bin", 0x0c00, 0x0400, CRC(d1e824ac) SHA1(f996813f02d32ddcde7f394740bdb3444eacda76) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "rt-gp5.bin", 0x1000, 0x0400, CRC(bc770af8) SHA1(79599b5f2f4d692986862076be1d487b45783c00) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "rd-sdp1.bin", 0x0000, 0x0800, CRC(cd5aea6d) SHA1(f7545b87e71e3108c0dec24a4e91620d006e0602) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "rd-sp1.bin", 0x0000, 0x0800, CRC(43b17734) SHA1(59960f0c48ed24cedb4b4655f97f6f1fdac4445e) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rd-cp1.bin", 0x0000, 0x0800, CRC(ed601677) SHA1(efe2b6033f319603ee80ed4ba66d3b3607537b13) ) - ROM_LOAD( "rd-cp2.bin", 0x0800, 0x0800, CRC(35e317ff) SHA1(458550b431ec66006e2966d86a2286905c0495ed) ) - ROM_LOAD( "rd-cp3.bin", 0x1000, 0x0800, CRC(90f2c43f) SHA1(406215217f6f20c1a78f31b2ae3c0a97391e3371) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( outline ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "rt-gp1.bin", 0x0000, 0x0400, CRC(43573974) SHA1(854fe7022e9bdd94bb119c014156e9ffdb6682fa) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "rt-gp2.bin", 0x0400, 0x0400, CRC(257a11ce) SHA1(ca7f9260d9879ebce202f83a41838cb6dc9a6480) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "ot-gp3.bin", 0x0800, 0x0400, CRC(699489e1) SHA1(d4b21c294254ee0a451c29ac91028582a52f5ba3) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "ot-gp4.bin", 0x0c00, 0x0400, CRC(c94aca17) SHA1(ea4ab93c52fee37afc7033b4b2acddcdce308f6b) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "ot-gp5.bin", 0x1000, 0x0400, CRC(154712f4) SHA1(90f69e30e1c1d2348d6644406d83d2b2bcfe8171) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "ot-sdp1.bin", 0x0000, 0x0800, CRC(739066a9) SHA1(7b3ba8a163d341931bc0385c298d2061fa75e644) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "ot-sp1.bin", 0x0000, 0x1000, CRC(fa21422a) SHA1(a75d13455c65e5a77db02fc87f0c112e329d0d6d) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rd-cp1.bin", 0x0000, 0x0800, CRC(ed601677) SHA1(efe2b6033f319603ee80ed4ba66d3b3607537b13) ) - ROM_LOAD( "rd-cp2.bin", 0x0800, 0x0800, CRC(35e317ff) SHA1(458550b431ec66006e2966d86a2286905c0495ed) ) - ROM_LOAD( "rd-cp3.bin", 0x1000, 0x0800, CRC(90f2c43f) SHA1(406215217f6f20c1a78f31b2ae3c0a97391e3371) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( goldbug ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "gb-gp1.bin", 0x0000, 0x0400, CRC(8deb7761) SHA1(35f27fb6b5e3f76ddaf2c074b3391931e679df6e) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "gb-gp2.bin", 0x0400, 0x0400, CRC(135036c1) SHA1(9868eae2486687772bf0bf71b82e461a882ae1ab) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "gb-gp3.bin", 0x0800, 0x0400, CRC(d48b1090) SHA1(b3cbfeb4fc2bf1bbe0befab793fcc5e7e6ff804c) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "gb-gp4.bin", 0x0c00, 0x0400, CRC(c8053205) SHA1(7f814b059f6b9c62e8a83c1753da5e8780b09411) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "gb-gp5.bin", 0x1000, 0x0400, CRC(eca17472) SHA1(25c4ca59b4c96a22bc42b41adbf3cc33373cf85e) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "gb-sdp1.bin", 0x0000, 0x1000, CRC(c8a4b39d) SHA1(29fffaa12639f3b19db818ad374d09fbf9c7fb98) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "gb-sp1.bin", 0x0000, 0x0800, CRC(5d0205c3) SHA1(578937058d56e5c9fba8a2204ddbb59a6d23dec7) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gb-cp1.bin", 0x0000, 0x0800, CRC(80e1ad5a) SHA1(0a577b0faffd9d6807c39175ce213f017a5cc7f8) ) - ROM_LOAD( "gb-cp2.bin", 0x0800, 0x0800, CRC(0a288b29) SHA1(0c6471a3517805a5c873857ff21ca94dfe91c24e) ) - ROM_LOAD( "gb-cp3.bin", 0x1000, 0x0800, CRC(e5bcf8cf) SHA1(7f53b8ee6f87e6c8761d2200e8194a7d16d8c7ac) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( diggerc ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "dig-gp1.bin", 0x0000, 0x0400, CRC(6a67662f) SHA1(70e9814259c1fbaf195004e1d8ce0ab1125d62d0) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "dig-gp2.bin", 0x0400, 0x0400, CRC(aa9f93b5) SHA1(e118ecb9160b7ba4a81b75b6cca56c0f01a9a3af) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "dig-gp3.bin", 0x0800, 0x0400, CRC(4aa4c87c) SHA1(bcbe291e2ca060ecc623702cba1f4189dfa9c105) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "dig-gp4.bin", 0x0c00, 0x0400, CRC(127e6520) SHA1(a4f1813a297616b7f864e235f40a432881fe252b) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "dig-gp5.bin", 0x1000, 0x0400, CRC(76786827) SHA1(43e33c47a42878a58d72051c1edeccf944db4a17) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "dig-sdp1.bin", 0x0000, 0x1000, CRC(f82e51f0) SHA1(52903c19cdf7754894cbae57a16533579737b3d5) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "dig.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "dig-sp1.bin", 0x0000, 0x0800, CRC(db526ee1) SHA1(afe319e64350b0c54b72394294a6369c885fdb7f) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dig-cp1.bin", 0x0000, 0x0800, CRC(ca30fb97) SHA1(148f3a6f20b1f256a73e7a1992262116d77cc0a8) ) - ROM_LOAD( "dig-cp2.bin", 0x0800, 0x0800, CRC(bed2334c) SHA1(c93902d01174e13fb9265194e5e44f67b38c5970) ) - ROM_LOAD( "dig-cp3.bin", 0x1000, 0x0800, CRC(46db9b65) SHA1(1c655b4611ab182b6e4a3cdd3ef930e0d4dad0d9) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( superbik ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "sb-gp1.bin", 0x0000, 0x0400, CRC(f0209700) SHA1(7843e8ebcbecb93814863ddd135f5acb0d481043) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "sb-gp2.bin", 0x0400, 0x0400, CRC(1956d687) SHA1(00e261c5b1e1414b45661310c47daeceb3d5f4bf) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "sb-gp3.bin", 0x0800, 0x0400, CRC(ceb27b75) SHA1(56fecc72746113a6611c18663d1b9e0e2daf57b4) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "sb-gp4.bin", 0x0c00, 0x0400, CRC(430b70b3) SHA1(207c4939331c1561d145cbee0538da072aa51f5b) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "sb-gp5.bin", 0x1000, 0x0400, CRC(013615a3) SHA1(1795a4dcc98255ad185503a99f48b7bacb5edc9d) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "sb-sdp1.bin", 0x0000, 0x0800, CRC(e977c090) SHA1(24bd4165434c745c1514d49cc90bcb621fb3a0f8) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "sb-sp1.bin", 0x0000, 0x0800, CRC(0aeb9ccd) SHA1(e7123eed21e4e758bbe1cebfd5aad44a5de45c27) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sb-cp1.bin", 0x0000, 0x0800, CRC(03ba7760) SHA1(4ed252e2c4ec7cea2199524f7c35a1dc7c44f8d8) ) - ROM_LOAD( "sb-cp2.bin", 0x0800, 0x0800, CRC(04de69f2) SHA1(3ef3b3c159d47230622b6cc45baad8737bd93a90) ) - ROM_LOAD( "sb-cp3.bin", 0x1000, 0x0800, CRC(bb7d0b9a) SHA1(94c72d6961204be9cab351ac854ac9c69b51e79a) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( hero ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "hr-gp1.bin", 0x0000, 0x0400, CRC(82f39788) SHA1(44217dc2312d10fceeb35adf3999cd6f240b60be) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "hr-gp2.bin", 0x0400, 0x0400, CRC(79607812) SHA1(eaab829a2f5bcb8ec92c3f4122cffae31a4a77cb) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "hr-gp3.bin", 0x0800, 0x0400, CRC(2902715c) SHA1(cf63f72681d1dcbdabdf7673ad8f61b5969e4bd1) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "hr-gp4.bin", 0x0c00, 0x0400, CRC(696d2f8e) SHA1(73dd57f0f84e37ae707a89e17253aa3dd0c8b48b) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "hr-gp5.bin", 0x1000, 0x0400, CRC(936a4ba6) SHA1(86cddcfafbd93dcdad3a1f26e280ceb96f779ab0) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "hr-sdp1.bin", 0x0000, 0x0800, CRC(c34ecf79) SHA1(07c96283410b1e7401140094db95800708cf310f) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "hr-sp1.bin", 0x0000, 0x0800, CRC(a5c33cb1) SHA1(447ffb193b0dc4985bae5d8c214a893afd08664b) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hr-cp1.bin", 0x0000, 0x0800, CRC(2d201496) SHA1(f195aa1b231a0e1752c7da824a10321f0527f8c9) ) - ROM_LOAD( "hr-cp2.bin", 0x0800, 0x0800, CRC(21b61fe3) SHA1(31882003f0557ffc4ec38ae6ee07b5d294b4162c) ) - ROM_LOAD( "hr-cp3.bin", 0x1000, 0x0800, CRC(9c8e3f9e) SHA1(9d949a4d12b45da12b434677670b2b109568564a) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( logger ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "lg-gp1.bin", 0x0000, 0x0400, CRC(0022b9ed) SHA1(4b94d2663f802a8140e8eae1b66ee78fdfa654f5) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "lg-gp2.bin", 0x0400, 0x0400, CRC(23c5c8dc) SHA1(37fb6a62cb798d96de20078fe4a3af74a2be0e66) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "lg-gp3.bin", 0x0800, 0x0400, CRC(f9288f74) SHA1(8bb588194186fc0e0c2d61ed2746542c978ebb76) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "lg-gp4.bin", 0x0c00, 0x0400, CRC(e52ef7bf) SHA1(df5509b6847d6b9520a9d83b15083546898a981e) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "lg-gp5.bin", 0x1000, 0x0400, CRC(4ee04359) SHA1(a592d4b280ac0ad5f06d68a7809092548261f123) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "lg-sdp1.bin", 0x0000, 0x1000, CRC(5af8da17) SHA1(357f02cdf38c6659aca51fa0a8534542fc29623c) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "lg-sp1.bin", 0x0000, 0x0800, CRC(74f67815) SHA1(6a26a16c27a7e4d58b611e5127115005a60cff91) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "lg-cp1.bin", 0x0000, 0x0800, CRC(e4ede80e) SHA1(62f2bc78106a057b6a8420d40421908df609bf29) ) - ROM_LOAD( "lg-cp2.bin", 0x0800, 0x0800, CRC(d3de8e5b) SHA1(f95320e001869c42e51195d9cc11e4f2555e153f) ) - ROM_LOAD( "lg-cp3.bin", 0x1000, 0x0800, CRC(9b8d1031) SHA1(87ef12aeae80cc0f240dead651c6222848f8dccc) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( cosmos ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "cs-gp1.bin", 0x0000, 0x0400, CRC(7eb96ddf) SHA1(f7456ee1ace03ab98c4e8128d375464122c4df01) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "cs-gp2.bin", 0x0400, 0x0400, CRC(6975a8f7) SHA1(13192d4eedd843c0c1d7e5c54a3086f71b09fbcb) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "cs-gp3.bin", 0x0800, 0x0400, CRC(76904b13) SHA1(de219999e4a1b72142e71ea707b6250f4732ccb3) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "cs-gp4.bin", 0x0c00, 0x0400, CRC(bdc89719) SHA1(668267d0b05990ff83a9e38a62950d3d725a53b3) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "cs-gp5.bin", 0x1000, 0x0400, CRC(94be44ea) SHA1(e496ea79d177c6d2d79d59f7d45c86b547469c6f) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "cs-sdp1.bin", 0x0000, 0x0800, CRC(b385b669) SHA1(79621d3fb3eb4ea6fa8a733faa6f21edeacae186) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "cs-sp1.bin", 0x0000, 0x1000, CRC(3c7fe86d) SHA1(9ae0b63b231a7092820650a196cde60588bc6b58) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cs-cp1.bin", 0x0000, 0x0800, CRC(6a48c898) SHA1(c27f7bcdb2fe042ec52d1b9b4b9a4e47c288862d) ) - ROM_LOAD( "cs-cp2.bin", 0x0800, 0x0800, CRC(db0dfd8c) SHA1(f2b0dd43f0e514fdae54e4066606187f45b98e38) ) - ROM_LOAD( "cs-cp3.bin", 0x1000, 0x0800, CRC(01eee875) SHA1(6c41d716b5795f085229d855518862fb85f395a4) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( heartatk ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "ha-gp1.bin", 0x0000, 0x0400, CRC(e8297c23) SHA1(e79ae7e99f904afe90b43a54df7b0e257d65ac0b) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "ha-gp2.bin", 0x0400, 0x0400, CRC(f7632afc) SHA1(ebfc6e12c8b5078e8c448aa25d9de9d39c0baa5e) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "ha-gp3.bin", 0x0800, 0x0400, CRC(a9ce3c6a) SHA1(86ddb27c1c132f3cf5ad4268ea9a458e0da23677) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "ha-gp4.bin", 0x0c00, 0x0400, CRC(090f30a9) SHA1(acd6b0c7358bf4664d0de668853076326e82fd04) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "ha-gp5.bin", 0x1000, 0x0400, CRC(163b3d2d) SHA1(275275b54533e0ce2df6d189619be05a99c68b6d) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "ha-sdp1.bin", 0x0000, 0x1000, CRC(b9c466a0) SHA1(f28c21a15cf6d52123ed7feac4eea2a42ea5e93d) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "ha-sp1.bin", 0x0000, 0x1000, CRC(fa21422a) SHA1(a75d13455c65e5a77db02fc87f0c112e329d0d6d) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ha-cp1.bin", 0x0000, 0x0800, CRC(2d0f6d13) SHA1(55e45eaf1bf24a7a78a2f34ffc0d99a4c191d138) ) - ROM_LOAD( "ha-cp2.bin", 0x0800, 0x0800, CRC(7f5671bd) SHA1(7f4ae92a96c5a847c113f6f7e8d67d3e5ee0bcb0) ) - ROM_LOAD( "ha-cp3.bin", 0x1000, 0x0800, CRC(35b05ab4) SHA1(f336eb0c674c3d52e84be0f37b70953cce6112dc) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( spacefrt ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "sf-gp1.bin", 0x0000, 0x0400, CRC(1158fc3a) SHA1(c1f470324b6ec65c3061f78a6ff8620154f20c09) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "sf-gp2.bin", 0x0400, 0x0400, CRC(8b4e1582) SHA1(5b92082d67f32197c0c61ddd8e1e3feb742195f4) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "sf-gp3.bin", 0x0800, 0x0400, CRC(48f05102) SHA1(72d40cdd0bbc4cfeb6ddf550de0dafc61270d382) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "sf-gp4.bin", 0x0c00, 0x0400, CRC(c5b14631) SHA1(360bed649185a090f7c96adadd7f045ef574865a) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "sf-gp5.bin", 0x1000, 0x0400, CRC(d7eca1b6) SHA1(8444e61827f0153d04c4f9c08416e7ab753d6918) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "sf-sdp1.bin", 0x0000, 0x0800, CRC(339a327f) SHA1(940887cd4660e37537fd9b57aa1ec3a4717ea0cf) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) - ROM_LOAD( "sf-sp1.bin", 0x0000, 0x1000, CRC(c5628d30) SHA1(d29a5852a1762cbd5f3eba29ae2bf49b3a26f894) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sf-cp1.bin", 0x0000, 0x0800, CRC(da194a68) SHA1(4215267e91644cf1e1f32f898bc9562bfba711f3) ) - ROM_LOAD( "sf-cp2.bin", 0x0800, 0x0800, CRC(b96977c7) SHA1(8f0fab044f16787bce83562e2b22d962d0a2c209) ) - ROM_LOAD( "sf-cp3.bin", 0x1000, 0x0800, CRC(f5d67b9a) SHA1(a492b41c53b1f28ac5f70969e5f06afa948c1a7d) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - -ROM_START( raiders ) - - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "raid4-5a.bin", 0x0000, 0x0400, CRC(1a92a5aa) SHA1(7f6dbbc0ac5ee2ba3efb3a9120cbee89c659b712) ) - ROM_CONTINUE( 0x2000, 0x0400 ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - ROM_LOAD( "raid4-4b.bin", 0x0400, 0x0400, CRC(da69e4b9) SHA1(8a2c4130a5db2cd7dbadb220440bb94ed4513bca) ) - ROM_CONTINUE( 0x2400, 0x0400 ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_CONTINUE( 0x6400, 0x0400 ) - ROM_LOAD( "raid4-3b.bin", 0x0800, 0x0400, CRC(ca794f92) SHA1(f281d88ffc6b7a84f9bcabc06eed99b8ae045eec) ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_CONTINUE( 0x6800, 0x0400 ) - ROM_LOAD( "raid4-2c.bin", 0x0c00, 0x0400, CRC(9de2c085) SHA1(be6157904afd0dc6ef8d97ec01a9557021ac8f3a) ) - ROM_CONTINUE( 0x2c00, 0x0400 ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_CONTINUE( 0x6c00, 0x0400 ) - ROM_LOAD( "raid4-1a.bin", 0x1000, 0x0400, CRC(f4db83ed) SHA1(7d519dc628c93f153ccede85e3cf77c012430f38) ) - ROM_CONTINUE( 0x3000, 0x0400 ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_CONTINUE( 0x7000, 0x0400 ) - - ROM_REGION( 0x2000, REGION_CPU2, 0 ) - ROM_LOAD( "raidr1-6.bin", 0x0000, 0x0800, CRC(6f827e49) SHA1(4fb272616b60fcd468ed4074b94125e30aa46fd3) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "5b.bin", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x0800, REGION_SOUND1, 0 ) - ROM_LOAD( "raidr1-8.bin", 0x0000, 0x0800, CRC(b6b90d2e) SHA1(a966fa208b72aec358b7fb277e603e47b6984aa7) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "raid4-11.bin", 0x0000, 0x0800, CRC(5eb7143b) SHA1(a19e803c15593b37ae2e61789f6e16f319620a37) ) - ROM_LOAD( "raid4-10.bin", 0x0800, 0x0800, CRC(391948a4) SHA1(7e20ad4f7e5bf7ad5dcb08ba6475313e2b8b1f03) ) - ROM_LOAD( "raid4-9b.bin", 0x1000, 0x0800, CRC(fecfde80) SHA1(23ea63080b8292fb00a743743cdff1a7ad0a8c6d) ) - - ROM_REGION( 0x0820, REGION_PROMS, 0 ) - ROM_LOAD( "82s185.10h", 0x0000, 0x0800, CRC(c205bca6) SHA1(ec9bd220e75f7b067ede6139763ef8aca0fb7a29) ) - ROM_LOAD( "82s123.10k", 0x0800, 0x0020, CRC(b5221cec) SHA1(71d9830b33b1a8140b0fe1a2ba8024ba8e6e48e0) ) -ROM_END - - -static DRIVER_INIT( spacefrt ) -{ - /* Patch out 2nd Character Mode Change */ - - memory_region(REGION_CPU1)[0x0260] = 0xc0; - memory_region(REGION_CPU1)[0x0261] = 0xc0; -} - -static DRIVER_INIT( cosmos ) -{ - /* Patch out 2nd Character Mode Change */ - - memory_region(REGION_CPU1)[0x0357] = 0xc0; - memory_region(REGION_CPU1)[0x0358] = 0xc0; -} - -static DRIVER_INIT( goldbug ) -{ - /* Redirect calls to real memory bank */ - - memory_region(REGION_CPU1)[0x4347] = 0x1e; - memory_region(REGION_CPU1)[0x436a] = 0x1e; -} - -static DRIVER_INIT( huncholy ) -{ - /* Patch out protection */ - - memory_region(REGION_CPU1)[0x0082] = 0xc0; - memory_region(REGION_CPU1)[0x0083] = 0xc0; - memory_region(REGION_CPU1)[0x0084] = 0xc0; - memory_region(REGION_CPU1)[0x00b7] = 0xc0; - memory_region(REGION_CPU1)[0x00b8] = 0xc0; - memory_region(REGION_CPU1)[0x00b9] = 0xc0; - memory_region(REGION_CPU1)[0x00d9] = 0xc0; - memory_region(REGION_CPU1)[0x00da] = 0xc0; - memory_region(REGION_CPU1)[0x00db] = 0xc0; - memory_region(REGION_CPU1)[0x4456] = 0xc0; - memory_region(REGION_CPU1)[0x4457] = 0xc0; - memory_region(REGION_CPU1)[0x4458] = 0xc0; -} - -static DRIVER_INIT( superbik ) -{ - /* Patch out protection */ - - memory_region(REGION_CPU1)[0x0079] = 0xc0; - memory_region(REGION_CPU1)[0x007a] = 0xc0; - memory_region(REGION_CPU1)[0x007b] = 0xc0; - memory_region(REGION_CPU1)[0x0081] = 0xc0; - memory_region(REGION_CPU1)[0x0082] = 0xc0; - memory_region(REGION_CPU1)[0x0083] = 0xc0; - memory_region(REGION_CPU1)[0x00b6] = 0xc0; - memory_region(REGION_CPU1)[0x00b7] = 0xc0; - memory_region(REGION_CPU1)[0x00b8] = 0xc0; - memory_region(REGION_CPU1)[0x0168] = 0xc0; - memory_region(REGION_CPU1)[0x0169] = 0xc0; - memory_region(REGION_CPU1)[0x016a] = 0xc0; - - /* and speed up the protection check */ - - memory_region(REGION_CPU1)[0x0099] = 0xc0; - memory_region(REGION_CPU1)[0x009a] = 0xc0; - memory_region(REGION_CPU1)[0x009b] = 0xc0; - memory_region(REGION_CPU1)[0x00bb] = 0xc0; - memory_region(REGION_CPU1)[0x00bc] = 0xc0; - memory_region(REGION_CPU1)[0x00bd] = 0xc0; -} - -static DRIVER_INIT( hero ) -{ - /* Patch out protection */ - - memory_region(REGION_CPU1)[0x0087] = 0xc0; - memory_region(REGION_CPU1)[0x0088] = 0xc0; - memory_region(REGION_CPU1)[0x0aa1] = 0xc0; - memory_region(REGION_CPU1)[0x0aa2] = 0xc0; - memory_region(REGION_CPU1)[0x0aa3] = 0xc0; - memory_region(REGION_CPU1)[0x0aaf] = 0xc0; - memory_region(REGION_CPU1)[0x0ab0] = 0xc0; - memory_region(REGION_CPU1)[0x0ab1] = 0xc0; - memory_region(REGION_CPU1)[0x0abd] = 0xc0; - memory_region(REGION_CPU1)[0x0abe] = 0xc0; - memory_region(REGION_CPU1)[0x0abf] = 0xc0; - memory_region(REGION_CPU1)[0x4de0] = 0xc0; - memory_region(REGION_CPU1)[0x4de1] = 0xc0; - memory_region(REGION_CPU1)[0x4de2] = 0xc0; -} - -static DRIVER_INIT( raiders ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int i; - - /* Data lines D1 and D5 swapped */ - for (i = 0; i < 0x7400; i++) - rom[i] = BITSWAP8(rom[i],7,1,5,4,3,2,6,0); - - /* Patch out protection */ - memory_region(REGION_CPU1)[0x010a] = 0xc0; - memory_region(REGION_CPU1)[0x010b] = 0xc0; - memory_region(REGION_CPU1)[0x010c] = 0xc0; -} - - -/******************************************************************************/ - -GAME( 1981, cvs, 0, cvs, cvs, 0, ROT90, "Century Electronics","CVS Bios", NOT_A_DRIVER ) - -/******************************************************************************/ - -GAME( 1981, cosmos, cvs, cvs, cvs, cosmos, ROT90, "Century Electronics", "Cosmos", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1981, darkwar, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Dark Warrior", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1981, spacefrt, cvs, cvs, cvs, spacefrt, ROT90, "Century Electronics", "Space Fortress", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, 8ball, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Video Eight Ball", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, 8ball1, 8ball, cvs, cvs, 0, ROT90, "Century Electronics", "Video Eight Ball (Rev.1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, logger, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Logger", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, dazzler, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Dazzler", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, wallst, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Wall Street", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, radarzon, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Radar Zone", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, radarzn1, radarzon, cvs, cvs, 0, ROT90, "Century Electronics", "Radar Zone (Rev.1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, radarznt, radarzon, cvs, cvs, 0, ROT90, "Century Electronics (Tuni Electro Service Inc)", "Radar Zone (Tuni)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, outline, radarzon, cvs, cvs, 0, ROT90, "Century Electronics", "Outline", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, goldbug, cvs, cvs, cvs, goldbug, ROT90, "Century Electronics", "Gold Bug", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1982, diggerc, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Digger (CVS)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1983, heartatk, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Heart Attack", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1983, hunchbak, cvs, cvs, cvs, 0, ROT90, "Century Electronics", "Hunchback", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1983, superbik, cvs, cvs, cvs, superbik, ROT90, "Century Electronics", "Superbike", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1983, raiders, cvs, cvs, cvs, raiders, ROT90, "Century Electronics", "Raiders", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1983, hero, cvs, cvs, cvs, hero, ROT90, "Seatongrove Ltd", "Hero", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) -GAME( 1984, huncholy, cvs, cvs, cvs, huncholy, ROT90, "Seatongrove Ltd", "Hunchback Olympic", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) diff --git a/src/drivers/darius.c b/src/drivers/darius.c deleted file mode 100644 index 1353cb0c9..000000000 --- a/src/drivers/darius.c +++ /dev/null @@ -1,1269 +0,0 @@ -/*************************************************************************** - -Darius (c) Taito 1986 -====== - -David Graves, Jarek Burczynski - -Sound panning and other enhancements: Hiromitsu Shioya - -Sources: MAME Rastan driver - Raine source - invaluable for this driver - - many thanks to Richard Bush and the Raine Team. - - ***** - -Rom Versions ------------- - -Darius appears to be a revision of Dariusj (as well as being -for a different sales area). It has continue facilities, missing -in Dariusj, and extra sprites which are used when continuing. -It also has 2 extra program roms. - - -Use of PC080SN --------------- - -This game uses 3 x PC080SN for generating tilemaps. They must be -mapped somehow to a single memory block and set of scroll registers. -There is an additional text tilemap on top of this, to allow for -both background planes scrolling. This need is presumably what led -to the TC0100SCN tilemap chip, debuted in Ninja Warriors (c)1987. -(The TC0100SCN includes a separate text layer.) - - -ADPCM Z80 ---------- - -This writes the rom area whenever an interrupt occurs. It has no ram -therefore no stack to store registers or return addresses: so the -standard Z80 writes to the stack become irrelevant. - - -Dumpers Notes -============= - -Darius (Old JPN Ver.) -(c)1986 Taito - ------------------------ -Sound Board -K1100228A -CPU :Z80 x2 -Sound :YM2203C x2 -OSC :8.000MHz ------------------------ -A96_56.18 -A96_57.33 - ------------------------ -M4300067A -K1100226A -CPU :MC68000P8 x2 -OSC :16000.00KHz ------------------------ -A96_28.152 -A96_29.185 -A96_30.154 -A96_31.187 - -A96_32.157 -A96_33.190 -A96_34.158 -A96_35.191 - -A96_36.175 -A96_37.196 -A96_38.176 -A96_39.197 -A96_40.177 -A96_41.198 -A96_42.178 -A96_43.199 -A96_44.179 -A96_45.200 -A96_46.180 -A96_47.201 - ------------------------ -K1100227A -OSC :26686.00KHz -Other :PC080SN x3 ------------------------ -A96_48.103 -A96_48.24 -A96_48.63 -A96_49.104 -A96_49.25 -A96_49.64 -A96_50.105 -A96_50.26 -A96_50.65 -A96_51.131 -A96_51.47 -A96_51.86 -A96_52.132 -A96_52.48 -A96_52.87 -A96_53.133 -A96_53.49 -A96_53.88 - -A96_54.142 -A96_55.143 - -A96-24.163 -A96-25.164 -A96-26.165 - - -TODO -==== - -When you add a coin there is temporary volume distortion of other -sounds. - -***************************************************************************/ - -#include -#include -#include "driver.h" -#include "vidhrdw/taitoic.h" -#include "cpu/z80/z80.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2203intf.h" -#include "sound/msm5205.h" -#include "sound/flt_vol.h" - -#include "darius.lh" - - -MACHINE_START( darius ); -MACHINE_RESET( darius ); - -VIDEO_START( darius ); -VIDEO_UPDATE( darius ); - -static UINT16 cpua_ctrl; -static UINT16 coin_word=0; - -extern UINT16 *darius_fg_ram; -READ16_HANDLER ( darius_fg_layer_r ); -WRITE16_HANDLER( darius_fg_layer_w ); - -static size_t sharedram_size; -static UINT16 *sharedram; - - -static READ16_HANDLER( sharedram_r ) -{ - return sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&sharedram[offset]); -} - -static void parse_control( void ) /* assumes Z80 sandwiched between 68Ks */ -{ - /* bit 0 enables cpu B */ - /* however this fails when recovering from a save state - if cpu B is disabled !! */ - cpunum_set_input_line(2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); - -} - -static WRITE16_HANDLER( cpua_ctrl_w ) -{ - if ((data &0xff00) && ((data &0xff) == 0)) - data = data >> 8; /* for Wgp */ - cpua_ctrl = data; - - parse_control(); - - logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data); -} - -static WRITE16_HANDLER( darius_watchdog_w ) -{ - watchdog_reset_w(0,data); -} - -static READ16_HANDLER( paletteram16_r ) -{ - return paletteram16[offset]; -} - - -/********************************************************** - GAME INPUTS -**********************************************************/ - -static READ16_HANDLER( darius_ioc_r ) -{ - switch (offset) - { - case 0x01: - return (taitosound_comm_r(0) & 0xff); /* sound interface read */ - - case 0x04: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - - case 0x05: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - - case 0x06: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - - case 0x07: - return coin_word; /* bits 3&4 coin lockouts, must return zero */ - - case 0x08: - return input_port_3_word_r(0,mem_mask); /* DSW */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped ioc offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static WRITE16_HANDLER( darius_ioc_w ) -{ - switch (offset) - { - case 0x00: /* sound interface write */ - - taitosound_port_w (0, data & 0xff); - return; - - case 0x01: /* sound interface write */ - - taitosound_comm_w (0, data & 0xff); - return; - - case 0x28: /* unknown, written by both cpus - always 0? */ -//popmessage(" address %04x value %04x",offset,data); - return; - - case 0x30: /* coin control */ - /* bits 7,5,4,0 used on reset */ - /* bit 4 used whenever bg is blanked ? */ - coin_lockout_w(0, ~data & 0x02); - coin_lockout_w(1, ~data & 0x04); - coin_counter_w(0, data & 0x08); - coin_counter_w(1, data & 0x40); - coin_word = data &0xffff; -//popmessage(" address %04x value %04x",offset,data); - return; - } - -logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",activecpu_get_pc(),offset,data); -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( darius_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(MRA16_RAM) /* main RAM */ - AM_RANGE(0xc00000, 0xc0001f) AM_READ(darius_ioc_r) /* inputs, sound */ - AM_RANGE(0xd00000, 0xd0ffff) AM_READ(PC080SN_word_0_r) /* tilemaps */ - AM_RANGE(0xd80000, 0xd80fff) AM_READ(paletteram16_r) /* palette */ - AM_RANGE(0xe00100, 0xe00fff) AM_READ(MRA16_RAM) /* sprite ram */ - AM_RANGE(0xe01000, 0xe02fff) AM_READ(sharedram_r) - AM_RANGE(0xe08000, 0xe0ffff) AM_READ(darius_fg_layer_r) /* front tilemap */ - AM_RANGE(0xe10000, 0xe10fff) AM_READ(MRA16_RAM) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x0b0000, 0x0b0001) AM_WRITE(darius_watchdog_w) - AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* coin ctr & lockout, sound */ - AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(PC080SN_word_0_w) - AM_RANGE(0xd20000, 0xd20003) AM_WRITE(PC080SN_yscroll_word_0_w) - AM_RANGE(0xd40000, 0xd40003) AM_WRITE(PC080SN_xscroll_word_0_w) - AM_RANGE(0xd50000, 0xd50003) AM_WRITE(PC080SN_ctrl_word_0_w) - AM_RANGE(0xd80000, 0xd80fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xe00100, 0xe00fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xe01000, 0xe02fff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size) - AM_RANGE(0xe08000, 0xe0ffff) AM_WRITE(darius_fg_layer_w) AM_BASE(&darius_fg_ram) - AM_RANGE(0xe10000, 0xe10fff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x04ffff) AM_READ(MRA16_RAM) /* local RAM */ - AM_RANGE(0xe01000, 0xe02fff) AM_READ(sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x040000, 0x04ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* only writes $c00050 (?) */ - AM_RANGE(0xd80000, 0xd80fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) - AM_RANGE(0xe00100, 0xe00fff) AM_WRITE(spriteram16_w) /* some writes */ - AM_RANGE(0xe01000, 0Xe02fff) AM_WRITE(sharedram_w) - AM_RANGE(0xe08000, 0xe0ffff) AM_WRITE(darius_fg_layer_w) /* a few writes */ -ADDRESS_MAP_END - - -/***************************************************** - SOUND -*****************************************************/ - -static INT32 banknum = -1; -static UINT8 adpcm_command = 0; -static UINT8 nmi_enable = 0; - -static void reset_sound_region(void) -{ - memory_set_bankptr( STATIC_BANK1, memory_region(REGION_CPU2) + (banknum * 0x8000) + 0x10000 ); -// memory_set_bankptr( 1, memory_region(REGION_CPU2) + (banknum * 0x8000) + 0x10000 ); - -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = data &0x03; - reset_sound_region(); -// banknum = data; -// reset_sound_region(); -} - -static WRITE8_HANDLER( adpcm_command_w ) -{ - adpcm_command = data; - /* logerror("#ADPCM command write =%2x\n",data); */ -} - -#if 0 -static WRITE8_HANDLER( display_value ) -{ - popmessage("d800=%x",data); -} -#endif - - -/***************************************************** - Sound mixer/pan control -*****************************************************/ - -static UINT32 darius_def_vol[0x10]; - -#define DARIUS_VOL_MAX (3*2 + 2) -#define DARIUS_PAN_MAX (2 + 2 + 1) /* FM 2port + PSG 2port + DA 1port */ -static UINT8 darius_vol[DARIUS_VOL_MAX]; -static UINT8 darius_pan[DARIUS_PAN_MAX]; - -static void update_fm0( void ) -{ - int left, right; - left = ( darius_pan[0] * darius_vol[6])>>8; - right = ((0xff - darius_pan[0]) * darius_vol[6])>>8; - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 6) >= 0) - flt_volume_set_volume(6, left / 100.0); - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 7) >= 0) - flt_volume_set_volume(7, right / 100.0); /* FM #0 */ -} - -static void update_fm1( void ) -{ - int left, right; - left = ( darius_pan[1] * darius_vol[7])>>8; - right = ((0xff - darius_pan[1]) * darius_vol[7])>>8; - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 14) >= 0) - flt_volume_set_volume(14, left / 100.0); - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 15) >= 0) - flt_volume_set_volume(15, right / 100.0); /* FM #1 */ -} - -static void update_psg0( int port ) -{ - int left, right; - left = ( darius_pan[2] * darius_vol[port])>>8; - right = ((0xff - darius_pan[2]) * darius_vol[port])>>8; - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, port*2+0) >= 0) - flt_volume_set_volume(port*2+0, left / 100.0); - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, port*2+1) >= 0) - flt_volume_set_volume(port*2+1, right / 100.0); -} - -static void update_psg1( int port ) -{ - int left, right; - left = ( darius_pan[3] * darius_vol[port + 3])>>8; - right = ((0xff - darius_pan[3]) * darius_vol[port + 3])>>8; - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, port*2+0+8) >= 0) - flt_volume_set_volume(port*2+0+8, left / 100.0); - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, port*2+1+8) >= 0) - flt_volume_set_volume(port*2+1+8, right / 100.0); -} - -static void update_da( void ) -{ - int left, right; - left = darius_def_vol[(darius_pan[4]>>4)&0x0f]; - right = darius_def_vol[(darius_pan[4]>>0)&0x0f]; - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 16) >= 0) - flt_volume_set_volume(16, left / 100.0); - if (sndti_to_sndnum(SOUND_FILTER_VOLUME, 17) >= 0) - flt_volume_set_volume(17, right / 100.0); /* FM #1 */ -} - -static WRITE8_HANDLER( darius_fm0_pan ) -{ - darius_pan[0] = data&0xff; /* data 0x00:right 0xff:left */ - update_fm0(); -} - -static WRITE8_HANDLER( darius_fm1_pan ) -{ - darius_pan[1] = data&0xff; - update_fm1(); -} - -static WRITE8_HANDLER( darius_psg0_pan ) -{ - darius_pan[2] = data&0xff; - update_psg0( 0 ); - update_psg0( 1 ); - update_psg0( 2 ); -} - -static WRITE8_HANDLER( darius_psg1_pan ) -{ - darius_pan[3] = data&0xff; - update_psg1( 0 ); - update_psg1( 1 ); - update_psg1( 2 ); -} - -static WRITE8_HANDLER( darius_da_pan ) -{ - darius_pan[4] = data&0xff; - update_da(); -} - -/**** Mixer Control ****/ - -static WRITE8_HANDLER( darius_write_portA0 ) -{ - // volume control FM #0 PSG #0 A - //popmessage(" pan %02x %02x %02x %02x %02x", darius_pan[0], darius_pan[1], darius_pan[2], darius_pan[3], darius_pan[4] ); - //popmessage(" A0 %02x A1 %02x B0 %02x B1 %02x", port[0], port[1], port[2], port[3] ); - darius_vol[0] = darius_def_vol[(data>>4)&0x0f]; - darius_vol[6] = darius_def_vol[(data>>0)&0x0f]; - update_fm0(); - update_psg0( 0 ); -} - -static WRITE8_HANDLER( darius_write_portA1 ) -{ - // volume control FM #1 PSG #1 A - //popmessage(" pan %02x %02x %02x %02x %02x", darius_pan[0], darius_pan[1], darius_pan[2], darius_pan[3], darius_pan[4] ); - darius_vol[3] = darius_def_vol[(data>>4)&0x0f]; - darius_vol[7] = darius_def_vol[(data>>0)&0x0f]; - update_fm1(); - update_psg1( 0 ); -} - -static WRITE8_HANDLER( darius_write_portB0 ) -{ - // volume control PSG #0 B/C - //popmessage(" pan %02x %02x %02x %02x %02x", darius_pan[0], darius_pan[1], darius_pan[2], darius_pan[3], darius_pan[4] ); - darius_vol[1] = darius_def_vol[(data>>4)&0x0f]; - darius_vol[2] = darius_def_vol[(data>>0)&0x0f]; - update_psg0( 1 ); - update_psg0( 2 ); -} - -static WRITE8_HANDLER( darius_write_portB1 ) -{ - // volume control PSG #1 B/C - //popmessage(" pan %02x %02x %02x %02x %02x", darius_pan[0], darius_pan[1], darius_pan[2], darius_pan[3], darius_pan[4] ); - darius_vol[4] = darius_def_vol[(data>>4)&0x0f]; - darius_vol[5] = darius_def_vol[(data>>0)&0x0f]; - update_psg1( 1 ); - update_psg1( 2 ); -} - - -/***************************************************** - Sound memory structures / ADPCM -*****************************************************/ - -static ADDRESS_MAP_START( darius_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x9001, 0x9001) AM_READ(YM2203_read_port_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(YM2203_status_port_1_r) - AM_RANGE(0xa001, 0xa001) AM_READ(YM2203_read_port_1_r) - AM_RANGE(0xb000, 0xb000) AM_READ(MRA8_NOP) - AM_RANGE(0xb001, 0xb001) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2203_write_port_1_w) - AM_RANGE(0xb000, 0xb000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(darius_fm0_pan) - AM_RANGE(0xc400, 0xc400) AM_WRITE(darius_fm1_pan) - AM_RANGE(0xc800, 0xc800) AM_WRITE(darius_psg0_pan) - AM_RANGE(0xcc00, 0xcc00) AM_WRITE(darius_psg1_pan) - AM_RANGE(0xd000, 0xd000) AM_WRITE(darius_da_pan) - AM_RANGE(0xd400, 0xd400) AM_WRITE(adpcm_command_w) /* ADPCM command for second Z80 to read from port 0x00 */ -// AM_RANGE(0xd800, 0xd800) AM_WRITE(display_value) /* ??? */ - AM_RANGE(0xdc00, 0xdc00) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_sound2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_READ(MRA8_ROM) - /* yes, no RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(MWA8_NOP) /* writes rom whenever interrupt occurs - as no stack */ - /* yes, no RAM */ -ADDRESS_MAP_END - - -static void darius_adpcm_int (int data) -{ - if (nmi_enable) - { - cpunum_set_input_line(3, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static struct MSM5205interface msm5205_interface = -{ - darius_adpcm_int, /* interrupt function */ - MSM5205_S48_4B /* 8KHz */ -}; - -static READ8_HANDLER( adpcm_command_read ) -{ - /* logerror("read port 0: %02x PC=%4x\n",adpcm_command, activecpu_get_pc() ); */ - return adpcm_command; -} - -static READ8_HANDLER( readport2 ) -{ - return 0; -} - -static READ8_HANDLER( readport3 ) -{ - return 0; -} - -static WRITE8_HANDLER ( adpcm_nmi_disable ) -{ - nmi_enable = 0; - /* logerror("write port 0: NMI DISABLE PC=%4x\n", data, activecpu_get_pc() ); */ -} - -static WRITE8_HANDLER ( adpcm_nmi_enable ) -{ - nmi_enable = 1; - /* logerror("write port 1: NMI ENABLE PC=%4x\n", activecpu_get_pc() ); */ -} - -static WRITE8_HANDLER( adpcm_data_w ) -{ - MSM5205_data_w (0, data ); - MSM5205_reset_w(0, !(data & 0x20) ); /* my best guess, but it could be output enable as well */ -} - -static ADDRESS_MAP_START( darius_sound2_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(adpcm_command_read) - AM_RANGE(0x02, 0x02) AM_READ(readport2) /* ??? */ - AM_RANGE(0x03, 0x03) AM_READ(readport3) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius_sound2_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(adpcm_nmi_disable) - AM_RANGE(0x01, 0x01) AM_WRITE(adpcm_nmi_enable) - AM_RANGE(0x02, 0x02) AM_WRITE(adpcm_data_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - - -#define TAITO_COINAGE_WORLD_16 \ - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - -#define TAITO_COINAGE_JAPAN_16 \ - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) - -#define TAITO_DIFFICULTY_16 \ - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x0300, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - -#define DARIUS_PLAYERS_INPUT( player ) \ - PORT_START \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define DARIUS_SYSTEM_INPUT \ - PORT_START \ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - -INPUT_PORTS_START( darius ) - DARIUS_PLAYERS_INPUT( 1 ) - - DARIUS_PLAYERS_INPUT( 2 ) - - DARIUS_SYSTEM_INPUT - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, "Autofire" ) - PORT_DIPSETTING( 0x0002, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Fast" ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_16 - TAITO_DIFFICULTY_16 - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0800, "every 600k" ) - PORT_DIPSETTING( 0x0c00, "600k only" ) - PORT_DIPSETTING( 0x0400, "800k only" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x2000, "4" ) - PORT_DIPSETTING( 0x1000, "5" ) - PORT_DIPSETTING( 0x0000, "6" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dariuse ) - DARIUS_PLAYERS_INPUT( 1 ) - - DARIUS_PLAYERS_INPUT( 2 ) - - DARIUS_SYSTEM_INPUT - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, "Autofire" ) - PORT_DIPSETTING( 0x0002, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Fast" ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_16 - TAITO_DIFFICULTY_16 - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0800, "every 600k" ) - PORT_DIPSETTING( 0x0c00, "600k only" ) - PORT_DIPSETTING( 0x0400, "800k only" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x2000, "4" ) - PORT_DIPSETTING( 0x1000, "5" ) - PORT_DIPSETTING( 0x0000, "6" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dariusj ) - DARIUS_PLAYERS_INPUT( 1 ) - - DARIUS_PLAYERS_INPUT( 2 ) - - DARIUS_SYSTEM_INPUT - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, "Autofire" ) - PORT_DIPSETTING( 0x0002, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Fast" ) - PORT_SERVICE( 0x0004, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_16 - TAITO_DIFFICULTY_16 - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0800, "every 600k" ) - PORT_DIPSETTING( 0x0c00, "600k only" ) - PORT_DIPSETTING( 0x0400, "800k only" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x2000, "4" ) - PORT_DIPSETTING( 0x1000, "5" ) - PORT_DIPSETTING( 0x0000, "6" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -/************************************************************** - GFX DECODING -**************************************************************/ - -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 24, 8, 16, 0 }, /* pixel bits separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 0+ 32*8, 1+ 32*8, 2+ 32*8, 3+ 32*8, 4+ 32*8, 5+ 32*8, 6+ 32*8, 7+ 32*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 64*8 + 0*32, 64*8 + 1*32, 64*8 + 2*32, 64*8 + 3*32, - 64*8 + 4*32, 64*8 + 5*32, 64*8 + 6*32, 64*8 + 7*32 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout char2layout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 2, /* 2 bits per pixel */ - { 0, 8 }, /* pixel bits separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode darius_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* scr tiles */ - { REGION_GFX3, 0, &char2layout, 0, 256 }, /* top layer scr tiles */ - { -1 } /* end of array */ -}; - - -/************************************************************** - YM2203 (SOUND) -**************************************************************/ - -/* handler called by the YM2203 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) /* assumes Z80 sandwiched between 68Ks */ -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_interface_1 = -{ - 0, /* portA read */ - 0, - darius_write_portA0, /* portA write */ - darius_write_portB0, /* portB write */ - irqhandler -}; - -static struct YM2203interface ym2203_interface_2 = -{ - 0, /* portA read */ - 0, - darius_write_portA1, /* portA write */ - darius_write_portB1 /* portB write */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_DRIVER_START( darius ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(darius_readmem,darius_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - /* audio CPU */ /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(darius_sound_readmem,darius_sound_writemem) - - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(darius_cpub_readmem,darius_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ? */ - /* audio CPU */ /* ADPCM player using MSM5205 */ - MDRV_CPU_PROGRAM_MAP(darius_sound2_readmem,darius_sound2_writemem) - MDRV_CPU_IO_MAP(darius_sound2_readport,darius_sound2_writeport) - - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame ? */ - - MDRV_MACHINE_START(darius) - MDRV_MACHINE_RESET(darius) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(darius_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096*2) - MDRV_DEFAULT_LAYOUT(layout_darius) - - MDRV_SCREEN_ADD("left", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - - MDRV_SCREEN_ADD("middle", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - - MDRV_SCREEN_ADD("right", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) - - MDRV_VIDEO_START(darius) - MDRV_VIDEO_UPDATE(darius) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface_1) - MDRV_SOUND_ROUTE(0, "filter.2203.0.0l", 0.08) - MDRV_SOUND_ROUTE(0, "filter.2203.0.0r", 0.08) - MDRV_SOUND_ROUTE(1, "filter.2203.0.1l", 0.08) - MDRV_SOUND_ROUTE(1, "filter.2203.0.1r", 0.08) - MDRV_SOUND_ROUTE(2, "filter.2203.0.2l", 0.08) - MDRV_SOUND_ROUTE(2, "filter.2203.0.2r", 0.08) - MDRV_SOUND_ROUTE(3, "filter.2203.0.3l", 0.60) - MDRV_SOUND_ROUTE(3, "filter.2203.0.3r", 0.60) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface_2) - MDRV_SOUND_ROUTE(0, "filter.2203.1.0l", 0.08) - MDRV_SOUND_ROUTE(0, "filter.2203.1.0r", 0.08) - MDRV_SOUND_ROUTE(1, "filter.2203.1.1l", 0.08) - MDRV_SOUND_ROUTE(1, "filter.2203.1.1r", 0.08) - MDRV_SOUND_ROUTE(2, "filter.2203.1.2l", 0.08) - MDRV_SOUND_ROUTE(2, "filter.2203.1.2r", 0.08) - MDRV_SOUND_ROUTE(3, "filter.2203.1.3l", 0.60) - MDRV_SOUND_ROUTE(3, "filter.2203.1.3r", 0.60) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "msm5205.l", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "msm5205.r", 1.0) - - MDRV_SOUND_ADD_TAG("filter.2203.0.0l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.0r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.1l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.1r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.2l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.2r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.3l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.0.3r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD_TAG("filter.2203.1.0l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.0r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.1l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.1r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.2l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.2r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.3l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("filter.2203.1.3r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD_TAG("msm5205.l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("msm5205.r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( darius ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_FILL( 0x00000, 0x60000, 0xffffffff ) - ROM_LOAD16_BYTE( "da-59.bin", 0x00000, 0x10000, CRC(11aab4eb) SHA1(92f795e96a940e8d94abbf429ba4ac119992b991) ) - ROM_LOAD16_BYTE( "da-58.bin", 0x00001, 0x10000, CRC(5f71e697) SHA1(bf959cf82e8e8ba950ab40d9c008ad5de01385aa) ) - ROM_LOAD16_BYTE( "da-61.bin", 0x20000, 0x10000, CRC(4736aa9b) SHA1(05e549d96a053e6b3bc34359267adcd73f98dd4a) ) - ROM_LOAD16_BYTE( "da-66.bin", 0x20001, 0x10000, CRC(4ede5f56) SHA1(88c06aef4b0a3e29fa30c24a57f2d3a05fc9f021) ) - ROM_LOAD16_BYTE( "a96_31.187", 0x40000, 0x10000, CRC(e9bb5d89) SHA1(a5d08129c32b97e2cce84496945766fd32b6506e) ) /* 2 data roms */ - ROM_LOAD16_BYTE( "a96_30.154", 0x40001, 0x10000, CRC(9eb5e127) SHA1(50e2fe5ec7f79ecf1fb5107298da13ef5ab37162) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "a96_57.33", 0x00000, 0x10000, CRC(33ceb730) SHA1(05070ea503ac57ff8445145d6f97115f7aad90a5) ) - - ROM_REGION( 0x80000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "a96_33-1.190", 0x00000, 0x10000, CRC(ff186048) SHA1(becb00d2cc69a6d4e839086bd3d902f4e6a99aa6) ) - ROM_LOAD16_BYTE( "a96_32-1.157", 0x00001, 0x10000, CRC(d9719de8) SHA1(9e907cfb5cbe6abebccfbd065d02e7a71c5aa494) ) - ROM_LOAD16_BYTE( "a96_35-1.191", 0x20000, 0x10000, CRC(b3280193) SHA1(f4bad066c16682f9267752c50a31ef64b312f11e) ) - ROM_LOAD16_BYTE( "a96_34-1.158", 0x20001, 0x10000, CRC(ca3b2573) SHA1(4da0d8536e546ea46b2374318e25c30305f4c977) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* second Z80 driving the ADPCM chip */ - ROM_LOAD( "a96_56.18", 0x00000, 0x10000, CRC(292ef55c) SHA1(67bfe3693e43daece06d4795645d54cd66419e5b) ) /* Z80 prog + ADPCM samples */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - /* There are THREE of each SCR gfx rom on the actual board, - making a complete set for every PC080SN tilemap chip */ - ROM_LOAD16_BYTE( "a96_48.24", 0x00000, 0x10000, CRC(39c9b3aa) SHA1(43a91d916c5a09207dfa37413feb5025636f37ae) ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_49.25", 0x20000, 0x10000, CRC(37a7d88a) SHA1(cede0d810d74ec460dcc4b391bb1acd5a669a7b4) ) - ROM_LOAD16_BYTE( "a96_50.26", 0x40000, 0x10000, CRC(75d738e4) SHA1(634606da46136ab605f5477af5639a20e39b44c4) ) - ROM_LOAD16_BYTE( "a96_51.47", 0x00001, 0x10000, CRC(1bf8f0d3) SHA1(7f36e69336260958282eb663fe71b56410f0ee42) ) - ROM_LOAD16_BYTE( "a96_52.48", 0x20001, 0x10000, CRC(2d9b2128) SHA1(9b72936fbd9dca6ef8302ac6c40a1cec019cebb5) ) - ROM_LOAD16_BYTE( "a96_53.49", 0x40001, 0x10000, CRC(0173484c) SHA1(41d70039bda0965afe89251696ceaec7b7f40c24) ) - - ROM_REGION( 0xc0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "a96_44.179", 0x00000, 0x10000, CRC(bbc18878) SHA1(7732ab2a3002f8b500615377dab42ac75451cb3b) ) /* 16x16 sprites */ - ROM_LOAD32_BYTE( "a96_45.200", 0x00001, 0x10000, CRC(616cdd8b) SHA1(74e0c483a68d984a689ea1381ed3a9da2f8a410a) ) - ROM_LOAD32_BYTE( "a96_46.180", 0x00002, 0x10000, CRC(fec35418) SHA1(f0f401c3634e91b81cb8484b7b03f350d382e889) ) - ROM_LOAD32_BYTE( "a96_47.201", 0x00003, 0x10000, CRC(8df9286a) SHA1(4a197e4c38d1750cc316b8710f4a0fef4316be14) ) - - ROM_LOAD32_BYTE( "a96_40.177", 0x40000, 0x10000, CRC(b699a51e) SHA1(5fd751dd44618743dc8a3df04cf0a987753a868b) ) - ROM_LOAD32_BYTE( "a96_41.198", 0x40001, 0x10000, CRC(97128a3a) SHA1(257ddd1ba71e6beeaf18e0c5d7006d1d2b6a5edf) ) - ROM_LOAD32_BYTE( "a96_42.178", 0x40002, 0x10000, CRC(7f55ee0f) SHA1(d9ba7b8fbf59308a08613d67e92da6829f6b6db3) ) - ROM_LOAD32_BYTE( "a96_43.199", 0x40003, 0x10000, CRC(c7cad469) SHA1(dbd37aa10f12e4950f8ec6bcd7d150fa55e64742) ) - - ROM_LOAD32_BYTE( "da-62.bin", 0x80000, 0x10000, CRC(9179862c) SHA1(be94c7d213a34baf82f974ee1092aba44b072623) ) - ROM_LOAD32_BYTE( "da-63.bin", 0x80001, 0x10000, CRC(fa19cfff) SHA1(58a3ae3270ebe5a162cd62df06da7199843707cf) ) - ROM_LOAD32_BYTE( "da-64.bin", 0x80002, 0x10000, CRC(814c676f) SHA1(a6a64e65a3c163ecfede14b48ea70c20050248c3) ) - ROM_LOAD32_BYTE( "da-65.bin", 0x80003, 0x10000, CRC(14eee326) SHA1(41760fada2a5e34ee6c9250af927baf650d9cfc4) ) - - ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* 8x8 SCR tiles */ - /* There's only one of each of these on a real board */ - ROM_LOAD16_BYTE( "a96_54.143", 0x0000, 0x4000, CRC(51c02ae2) SHA1(27d2a6c649d047da1f22758569cb36531e3bf8bc) ) - ROM_LOAD16_BYTE( "a96_55.144", 0x0001, 0x4000, CRC(771e4d98) SHA1(0e8ce5d569775883f4bc777b9bd49eb23ba7b42e) ) - - ROM_REGION( 0x1000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "a96-24.163", 0x0000, 0x0400, CRC(0fa8be7f) SHA1(079686b5d65b4b966591090d8c0e13e66dc5beca) ) /* proms, currently unused */ - ROM_LOAD16_BYTE( "a96-25.164", 0x0400, 0x0400, CRC(265508a6) SHA1(f8ee1c658b33ae76d8a457a4042d9b4b58247823) ) - ROM_LOAD16_BYTE( "a96-26.165", 0x0800, 0x0400, CRC(4891b9c0) SHA1(1f550a9a4ad3ca379f88f5865ed1b281c7b87f31) ) -ROM_END - -ROM_START( dariusj ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_FILL( 0x00000, 0x60000, 0xffffffff ) - ROM_LOAD16_BYTE( "a96_29-1.185", 0x00000, 0x10000, CRC(75486f62) SHA1(818b095f2c6cc5764161c3e14ba70fe1c4b2f724) ) - ROM_LOAD16_BYTE( "a96_28-1.152", 0x00001, 0x10000, CRC(fb34d400) SHA1(b14517384f5eadca8b73833bcd81374614b928d4) ) - /* middle area is empty */ - ROM_LOAD16_BYTE( "a96_31.187", 0x40000, 0x10000, CRC(e9bb5d89) SHA1(a5d08129c32b97e2cce84496945766fd32b6506e) ) /* 2 data roms */ - ROM_LOAD16_BYTE( "a96_30.154", 0x40001, 0x10000, CRC(9eb5e127) SHA1(50e2fe5ec7f79ecf1fb5107298da13ef5ab37162) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "a96_57.33", 0x00000, 0x10000, CRC(33ceb730) SHA1(05070ea503ac57ff8445145d6f97115f7aad90a5) ) - - ROM_REGION( 0x80000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "a96_33-1.190", 0x00000, 0x10000, CRC(ff186048) SHA1(becb00d2cc69a6d4e839086bd3d902f4e6a99aa6) ) - ROM_LOAD16_BYTE( "a96_32-1.157", 0x00001, 0x10000, CRC(d9719de8) SHA1(9e907cfb5cbe6abebccfbd065d02e7a71c5aa494) ) - ROM_LOAD16_BYTE( "a96_35-1.191", 0x20000, 0x10000, CRC(b3280193) SHA1(f4bad066c16682f9267752c50a31ef64b312f11e) ) - ROM_LOAD16_BYTE( "a96_34-1.158", 0x20001, 0x10000, CRC(ca3b2573) SHA1(4da0d8536e546ea46b2374318e25c30305f4c977) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* second Z80 driving the ADPCM chip */ - ROM_LOAD( "a96_56.18", 0x00000, 0x10000, CRC(292ef55c) SHA1(67bfe3693e43daece06d4795645d54cd66419e5b) ) /* Z80 prog + ADPCM samples */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "a96_48.24", 0x00000, 0x10000, CRC(39c9b3aa) SHA1(43a91d916c5a09207dfa37413feb5025636f37ae) ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_49.25", 0x20000, 0x10000, CRC(37a7d88a) SHA1(cede0d810d74ec460dcc4b391bb1acd5a669a7b4) ) - ROM_LOAD16_BYTE( "a96_50.26", 0x40000, 0x10000, CRC(75d738e4) SHA1(634606da46136ab605f5477af5639a20e39b44c4) ) - ROM_LOAD16_BYTE( "a96_51.47", 0x00001, 0x10000, CRC(1bf8f0d3) SHA1(7f36e69336260958282eb663fe71b56410f0ee42) ) - ROM_LOAD16_BYTE( "a96_52.48", 0x20001, 0x10000, CRC(2d9b2128) SHA1(9b72936fbd9dca6ef8302ac6c40a1cec019cebb5) ) - ROM_LOAD16_BYTE( "a96_53.49", 0x40001, 0x10000, CRC(0173484c) SHA1(41d70039bda0965afe89251696ceaec7b7f40c24) ) - - ROM_REGION( 0xc0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "a96_44.179", 0x00000, 0x10000, CRC(bbc18878) SHA1(7732ab2a3002f8b500615377dab42ac75451cb3b) ) /* 16x16 sprites */ - ROM_LOAD32_BYTE( "a96_45.200", 0x00001, 0x10000, CRC(616cdd8b) SHA1(74e0c483a68d984a689ea1381ed3a9da2f8a410a) ) - ROM_LOAD32_BYTE( "a96_46.180", 0x00002, 0x10000, CRC(fec35418) SHA1(f0f401c3634e91b81cb8484b7b03f350d382e889) ) - ROM_LOAD32_BYTE( "a96_47.201", 0x00003, 0x10000, CRC(8df9286a) SHA1(4a197e4c38d1750cc316b8710f4a0fef4316be14) ) - - ROM_LOAD32_BYTE( "a96_40.177", 0x40000, 0x10000, CRC(b699a51e) SHA1(5fd751dd44618743dc8a3df04cf0a987753a868b) ) - ROM_LOAD32_BYTE( "a96_41.198", 0x40001, 0x10000, CRC(97128a3a) SHA1(257ddd1ba71e6beeaf18e0c5d7006d1d2b6a5edf) ) - ROM_LOAD32_BYTE( "a96_42.178", 0x40002, 0x10000, CRC(7f55ee0f) SHA1(d9ba7b8fbf59308a08613d67e92da6829f6b6db3) ) - ROM_LOAD32_BYTE( "a96_43.199", 0x40003, 0x10000, CRC(c7cad469) SHA1(dbd37aa10f12e4950f8ec6bcd7d150fa55e64742) ) - - ROM_LOAD32_BYTE( "a96_36.175", 0x80000, 0x10000, CRC(af598141) SHA1(f3b888bcbd4560cca48187055cbe4107e2b392a6) ) - ROM_LOAD32_BYTE( "a96_37.196", 0x80001, 0x10000, CRC(b48137c8) SHA1(03e98a93f4fa19dfe77da244c002abc84b936a22) ) - ROM_LOAD32_BYTE( "a96_38.176", 0x80002, 0x10000, CRC(e4f3e3a7) SHA1(0baa8a672516bcc4f17f40f429ac3d227de16625) ) - ROM_LOAD32_BYTE( "a96_39.197", 0x80003, 0x10000, CRC(ea30920f) SHA1(91d47b10886d6c243bc676435e300cb3b5fcca33) ) - - ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_54.143", 0x0000, 0x4000, CRC(51c02ae2) SHA1(27d2a6c649d047da1f22758569cb36531e3bf8bc) ) - ROM_LOAD16_BYTE( "a96_55.144", 0x0001, 0x4000, CRC(771e4d98) SHA1(0e8ce5d569775883f4bc777b9bd49eb23ba7b42e) ) - - ROM_REGION( 0x1000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "a96-24.163", 0x0000, 0x0400, CRC(0fa8be7f) SHA1(079686b5d65b4b966591090d8c0e13e66dc5beca) ) /* proms, currently unused */ - ROM_LOAD16_BYTE( "a96-25.164", 0x0400, 0x0400, CRC(265508a6) SHA1(f8ee1c658b33ae76d8a457a4042d9b4b58247823) ) - ROM_LOAD16_BYTE( "a96-26.165", 0x0800, 0x0400, CRC(4891b9c0) SHA1(1f550a9a4ad3ca379f88f5865ed1b281c7b87f31) ) -ROM_END - -ROM_START( dariuso ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_FILL( 0x00000, 0x60000, 0xffffffff ) - ROM_LOAD16_BYTE( "a96-29.185", 0x00000, 0x10000, CRC(f775162b) SHA1(a17e570c2ba4daf0a3526b45c324c822faac0c8d) ) - ROM_LOAD16_BYTE( "a96-28.152", 0x00001, 0x10000, CRC(4721d667) SHA1(fa9a109054a818f836452215204ce91f2b166ddb) ) - /* middle area is empty */ - ROM_LOAD16_BYTE( "a96_31.187", 0x40000, 0x10000, CRC(e9bb5d89) SHA1(a5d08129c32b97e2cce84496945766fd32b6506e) ) /* 2 data roms */ - ROM_LOAD16_BYTE( "a96_30.154", 0x40001, 0x10000, CRC(9eb5e127) SHA1(50e2fe5ec7f79ecf1fb5107298da13ef5ab37162) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "a96_57.33", 0x00000, 0x10000, CRC(33ceb730) SHA1(05070ea503ac57ff8445145d6f97115f7aad90a5) ) - - ROM_REGION( 0x80000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "a96-33.190", 0x00000, 0x10000, CRC(d2f340d2) SHA1(d9175bf4dda5707afb3c57d3b6affe0305084c71) ) - ROM_LOAD16_BYTE( "a96-32.157", 0x00001, 0x10000, CRC(044c9848) SHA1(5293e9e83fd38d0d14e4f3b3a342d88e27ee44d6) ) - ROM_LOAD16_BYTE( "a96-35.191", 0x20000, 0x10000, CRC(b8ed718b) SHA1(8951f9c3c971c5621ec98b63fb27d44f30304c70) ) - ROM_LOAD16_BYTE( "a96-34.158", 0x20001, 0x10000, CRC(7556a660) SHA1(eaa82f3e1f827616ff25e22673d6d2ee54f0ad4c) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* second Z80 driving the ADPCM chip */ - ROM_LOAD( "a96_56.18", 0x00000, 0x10000, CRC(292ef55c) SHA1(67bfe3693e43daece06d4795645d54cd66419e5b) ) /* Z80 prog + ADPCM samples */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "a96_48.24", 0x00000, 0x10000, CRC(39c9b3aa) SHA1(43a91d916c5a09207dfa37413feb5025636f37ae) ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_49.25", 0x20000, 0x10000, CRC(37a7d88a) SHA1(cede0d810d74ec460dcc4b391bb1acd5a669a7b4) ) - ROM_LOAD16_BYTE( "a96_50.26", 0x40000, 0x10000, CRC(75d738e4) SHA1(634606da46136ab605f5477af5639a20e39b44c4) ) - ROM_LOAD16_BYTE( "a96_51.47", 0x00001, 0x10000, CRC(1bf8f0d3) SHA1(7f36e69336260958282eb663fe71b56410f0ee42) ) - ROM_LOAD16_BYTE( "a96_52.48", 0x20001, 0x10000, CRC(2d9b2128) SHA1(9b72936fbd9dca6ef8302ac6c40a1cec019cebb5) ) - ROM_LOAD16_BYTE( "a96_53.49", 0x40001, 0x10000, CRC(0173484c) SHA1(41d70039bda0965afe89251696ceaec7b7f40c24) ) - - ROM_REGION( 0xc0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "a96_44.179", 0x00000, 0x10000, CRC(bbc18878) SHA1(7732ab2a3002f8b500615377dab42ac75451cb3b) ) /* 16x16 sprites */ - ROM_LOAD32_BYTE( "a96_45.200", 0x00001, 0x10000, CRC(616cdd8b) SHA1(74e0c483a68d984a689ea1381ed3a9da2f8a410a) ) - ROM_LOAD32_BYTE( "a96_46.180", 0x00002, 0x10000, CRC(fec35418) SHA1(f0f401c3634e91b81cb8484b7b03f350d382e889) ) - ROM_LOAD32_BYTE( "a96_47.201", 0x00003, 0x10000, CRC(8df9286a) SHA1(4a197e4c38d1750cc316b8710f4a0fef4316be14) ) - - ROM_LOAD32_BYTE( "a96_40.177", 0x40000, 0x10000, CRC(b699a51e) SHA1(5fd751dd44618743dc8a3df04cf0a987753a868b) ) - ROM_LOAD32_BYTE( "a96_41.198", 0x40001, 0x10000, CRC(97128a3a) SHA1(257ddd1ba71e6beeaf18e0c5d7006d1d2b6a5edf) ) - ROM_LOAD32_BYTE( "a96_42.178", 0x40002, 0x10000, CRC(7f55ee0f) SHA1(d9ba7b8fbf59308a08613d67e92da6829f6b6db3) ) - ROM_LOAD32_BYTE( "a96_43.199", 0x40003, 0x10000, CRC(c7cad469) SHA1(dbd37aa10f12e4950f8ec6bcd7d150fa55e64742) ) - - ROM_LOAD32_BYTE( "a96_36.175", 0x80000, 0x10000, CRC(af598141) SHA1(f3b888bcbd4560cca48187055cbe4107e2b392a6) ) - ROM_LOAD32_BYTE( "a96_37.196", 0x80001, 0x10000, CRC(b48137c8) SHA1(03e98a93f4fa19dfe77da244c002abc84b936a22) ) - ROM_LOAD32_BYTE( "a96_38.176", 0x80002, 0x10000, CRC(e4f3e3a7) SHA1(0baa8a672516bcc4f17f40f429ac3d227de16625) ) - ROM_LOAD32_BYTE( "a96_39.197", 0x80003, 0x10000, CRC(ea30920f) SHA1(91d47b10886d6c243bc676435e300cb3b5fcca33) ) - - ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_54.143", 0x0000, 0x4000, CRC(51c02ae2) SHA1(27d2a6c649d047da1f22758569cb36531e3bf8bc) ) - ROM_LOAD16_BYTE( "a96_55.144", 0x0001, 0x4000, CRC(771e4d98) SHA1(0e8ce5d569775883f4bc777b9bd49eb23ba7b42e) ) - - ROM_REGION( 0x1000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "a96-24.163", 0x0000, 0x0400, CRC(0fa8be7f) SHA1(079686b5d65b4b966591090d8c0e13e66dc5beca) ) /* proms, currently unused */ - ROM_LOAD16_BYTE( "a96-25.164", 0x0400, 0x0400, CRC(265508a6) SHA1(f8ee1c658b33ae76d8a457a4042d9b4b58247823) ) - ROM_LOAD16_BYTE( "a96-26.165", 0x0800, 0x0400, CRC(4891b9c0) SHA1(1f550a9a4ad3ca379f88f5865ed1b281c7b87f31) ) -ROM_END - -ROM_START( dariuse ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_FILL( 0x00000, 0x60000, 0xffffffff ) - ROM_LOAD16_BYTE( "dae-68.bin", 0x00000, 0x10000, CRC(ed721127) SHA1(8127f4a9b26b5fb83a381235eef0577d60d1cfd7) ) - ROM_LOAD16_BYTE( "dae-67.bin", 0x00001, 0x10000, CRC(b99aea8c) SHA1(859ada7c472ab2ac308faa775066e79ed1f4ad71) ) - /* middle area is empty */ - ROM_LOAD16_BYTE( "dae-70.bin", 0x40000, 0x10000, CRC(54590b31) SHA1(2b89846f14a5cb19b58ab4999bc5ae11671bbb5a) ) /* 2 data roms */ - ROM_LOAD16_BYTE( "a96_30.154", 0x40001, 0x10000, CRC(9eb5e127) SHA1(50e2fe5ec7f79ecf1fb5107298da13ef5ab37162) ) // dae-69.bin - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "a96_57.33", 0x00000, 0x10000, CRC(33ceb730) SHA1(05070ea503ac57ff8445145d6f97115f7aad90a5) ) - - ROM_REGION( 0x80000, REGION_CPU3, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "dae-72.bin", 0x00000, 0x10000, CRC(248ca2cc) SHA1(43b29146d8e2c62dd1fb7dc842fd441a360f2453) ) - ROM_LOAD16_BYTE( "dae-71.bin", 0x00001, 0x10000, CRC(65dd0403) SHA1(8036c35ce5df0727cccb9ece3bfac9577160d4fd) ) - ROM_LOAD16_BYTE( "dae-74.bin", 0x20000, 0x10000, CRC(0ea31f60) SHA1(c9e7eaf8bf3abbef944b7de407d5d5ddaac93e31) ) - ROM_LOAD16_BYTE( "dae-73.bin", 0x20001, 0x10000, CRC(27036a4d) SHA1(426dccb8f559d39460c97bfd4354c74a59af172e) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* second Z80 driving the ADPCM chip */ - ROM_LOAD( "a96_56.18", 0x00000, 0x10000, CRC(292ef55c) SHA1(67bfe3693e43daece06d4795645d54cd66419e5b) ) /* Z80 prog + ADPCM samples */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "a96_48.24", 0x00000, 0x10000, CRC(39c9b3aa) SHA1(43a91d916c5a09207dfa37413feb5025636f37ae) ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_49.25", 0x20000, 0x10000, CRC(37a7d88a) SHA1(cede0d810d74ec460dcc4b391bb1acd5a669a7b4) ) - ROM_LOAD16_BYTE( "a96_50.26", 0x40000, 0x10000, CRC(75d738e4) SHA1(634606da46136ab605f5477af5639a20e39b44c4) ) - ROM_LOAD16_BYTE( "a96_51.47", 0x00001, 0x10000, CRC(1bf8f0d3) SHA1(7f36e69336260958282eb663fe71b56410f0ee42) ) - ROM_LOAD16_BYTE( "a96_52.48", 0x20001, 0x10000, CRC(2d9b2128) SHA1(9b72936fbd9dca6ef8302ac6c40a1cec019cebb5) ) - ROM_LOAD16_BYTE( "a96_53.49", 0x40001, 0x10000, CRC(0173484c) SHA1(41d70039bda0965afe89251696ceaec7b7f40c24) ) - - ROM_REGION( 0xc0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "a96_44.179", 0x00000, 0x10000, CRC(bbc18878) SHA1(7732ab2a3002f8b500615377dab42ac75451cb3b) ) /* 16x16 sprites */ - ROM_LOAD32_BYTE( "a96_45.200", 0x00001, 0x10000, CRC(616cdd8b) SHA1(74e0c483a68d984a689ea1381ed3a9da2f8a410a) ) - ROM_LOAD32_BYTE( "a96_46.180", 0x00002, 0x10000, CRC(fec35418) SHA1(f0f401c3634e91b81cb8484b7b03f350d382e889) ) - ROM_LOAD32_BYTE( "a96_47.201", 0x00003, 0x10000, CRC(8df9286a) SHA1(4a197e4c38d1750cc316b8710f4a0fef4316be14) ) - - ROM_LOAD32_BYTE( "a96_40.177", 0x40000, 0x10000, CRC(b699a51e) SHA1(5fd751dd44618743dc8a3df04cf0a987753a868b) ) - ROM_LOAD32_BYTE( "a96_41.198", 0x40001, 0x10000, CRC(97128a3a) SHA1(257ddd1ba71e6beeaf18e0c5d7006d1d2b6a5edf) ) - ROM_LOAD32_BYTE( "a96_42.178", 0x40002, 0x10000, CRC(7f55ee0f) SHA1(d9ba7b8fbf59308a08613d67e92da6829f6b6db3) ) - ROM_LOAD32_BYTE( "a96_43.199", 0x40003, 0x10000, CRC(c7cad469) SHA1(dbd37aa10f12e4950f8ec6bcd7d150fa55e64742) ) - - ROM_LOAD32_BYTE( "a96_36.175", 0x80000, 0x10000, CRC(af598141) SHA1(f3b888bcbd4560cca48187055cbe4107e2b392a6) ) - ROM_LOAD32_BYTE( "a96_37.196", 0x80001, 0x10000, CRC(b48137c8) SHA1(03e98a93f4fa19dfe77da244c002abc84b936a22) ) - ROM_LOAD32_BYTE( "a96_38.176", 0x80002, 0x10000, CRC(e4f3e3a7) SHA1(0baa8a672516bcc4f17f40f429ac3d227de16625) ) - ROM_LOAD32_BYTE( "a96_39.197", 0x80003, 0x10000, CRC(ea30920f) SHA1(91d47b10886d6c243bc676435e300cb3b5fcca33) ) - - ROM_REGION( 0x8000, REGION_GFX3, ROMREGION_DISPOSE ) /* 8x8 SCR tiles */ - ROM_LOAD16_BYTE( "a96_54.143", 0x0000, 0x4000, CRC(51c02ae2) SHA1(27d2a6c649d047da1f22758569cb36531e3bf8bc) ) - ROM_LOAD16_BYTE( "a96_55.144", 0x0001, 0x4000, CRC(771e4d98) SHA1(0e8ce5d569775883f4bc777b9bd49eb23ba7b42e) ) - - ROM_REGION( 0x1000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "a96-24.163", 0x0000, 0x0400, CRC(0fa8be7f) SHA1(079686b5d65b4b966591090d8c0e13e66dc5beca) ) /* proms, currently unused */ - ROM_LOAD16_BYTE( "a96-25.164", 0x0400, 0x0400, CRC(265508a6) SHA1(f8ee1c658b33ae76d8a457a4042d9b4b58247823) ) - ROM_LOAD16_BYTE( "a96-26.165", 0x0800, 0x0400, CRC(4891b9c0) SHA1(1f550a9a4ad3ca379f88f5865ed1b281c7b87f31) ) -ROM_END - - -static DRIVER_INIT( darius ) -{ -// taitosnd_setz80_soundcpu( 2 ); - - cpua_ctrl = 0xff; - - banknum = -1; -} - - -MACHINE_START( darius ) -{ - state_save_register_global(cpua_ctrl); - state_save_register_func_postload(parse_control); - - // (there are other sound vars that may need saving too) // - state_save_register_global(banknum); - state_save_register_global(adpcm_command); - state_save_register_global(nmi_enable); - state_save_register_func_postload(reset_sound_region); - return 0; -} - - -MACHINE_RESET( darius ) -{ - int i; - - /**** setup sound bank image ****/ - unsigned char *RAM = memory_region(REGION_CPU2); - - for( i = 3; i >= 0; i-- ){ - memcpy( RAM + 0x8000*i + 0x10000, RAM, 0x4000 ); - memcpy( RAM + 0x8000*i + 0x14000, RAM + 0x4000*i, 0x4000 ); - } - memory_set_bankptr(1, RAM); - - sound_global_enable( 1 ); /* mixer enabled */ - - for( i = 0; i < DARIUS_VOL_MAX; i++ ){ - darius_vol[i] = 0x00; /* min volume */ - } - for( i = 0; i < DARIUS_PAN_MAX; i++ ){ - darius_pan[i] = 0x80; /* center */ - } - for( i = 0; i < 0x10; i++ ){ - //logerror( "calc %d = %d\n", i, (int)(100.0f / (float)pow(10.0f, (32.0f - (i * (32.0f / (float)(0xf)))) / 20.0f)) ); - darius_def_vol[i] = (int)(100.0f / (float)pow(10.0f, (32.0f - (i * (32.0f / (float)(0xf)))) / 20.0f)); - } -} - - -GAME( 1986, darius, 0, darius, darius, darius, ROT0, "Taito Corporation Japan", "Darius (World)", 0 ) -GAME( 1986, dariusj, darius, darius, dariusj, darius, ROT0, "Taito Corporation", "Darius (Japan)", 0 ) -GAME( 1986, dariuso, darius, darius, dariusj, darius, ROT0, "Taito Corporation", "Darius (Japan old version)", 0 ) -GAME( 1986, dariuse, darius, darius, dariuse, darius, ROT0, "Taito Corporation", "Darius (Extra) (Japan)", 0 ) diff --git a/src/drivers/dbz.c b/src/drivers/dbz.c deleted file mode 100644 index 584e335f1..000000000 --- a/src/drivers/dbz.c +++ /dev/null @@ -1,587 +0,0 @@ -/* - Dragonball Z (c) 1993 Banpresto - Dragonball Z 2 - Super Battle (c) 1994 Banpresto - - Driver by David Haywood, R. Belmont and Pierpaolo Prazzoli - - MC68000 + Konami Xexex-era video hardware and system controller ICs - Z80 + YM2151 + OKIM6295 for sound - - Note: game has an extremely complete test mode, it's beautiful for emulation. - flip the DIP and check it out! - - TODO: - - Self Test Fails - - Banpresto logo in DBZ has bad colors after 1 run of the attract mode because - it's associated to the wrong logical tilemap and the same happens in DBZ2 - test mode. It should be a bug in K056832 emulation. - -PCB Layout: - -BP924-1 PWB250248D (note PCB is identical to DBZ2 also) -|-------------------------------------------------------| -| YM3014 Z80 32MHz 053252 222A05 222A07 | -| YM2151 5168 222A04 222A06 | -| 1.056kHz 5168 | -| M6295 222A10 5864 | -| 222A03 68000 2018 5864 053246A| -|J 222A11 222A12 2018 | -|A 5864 * * | -|M 5864 62256 62256 | -|M 053247A| -|A | -| 053936 053936 2018 | -| 053251 053251 2018 | -| CY7C128 | -| 054157 054156 5864 CY7C128 CY7C128 CY7C128| -| 222A01 222A02 5864 CY7C128 | -| DSW2 DSW1 5864 CY7C128 222A08 222A09 | -| * * | -|-------------------------------------------------------| - -Notes: - 68k clock: 16.000MHz - Z80 clock: 4.000MHz - YM2151 clock: 4.000MHz - M6295 clock: 1.056MHz (sample rate = /132) - Vsync: 55Hz - Hsync: 15.36kHz - *: unpopulated ROM positions on DBZ - -*/ - -#include "driver.h" - -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -/* BG LAYER */ - -extern UINT16 *dbz_bg1_videoram; -extern UINT16 *dbz_bg2_videoram; - -WRITE16_HANDLER(dbz_bg1_videoram_w); -WRITE16_HANDLER(dbz_bg2_videoram_w); - -static int dbz_control; - -VIDEO_START(dbz); -VIDEO_UPDATE(dbz); - -static INTERRUPT_GEN( dbz_interrupt ) -{ - switch (cpu_getiloops()) - { - case 0: - cpunum_set_input_line(0, MC68000_IRQ_2, HOLD_LINE); - break; - - case 1: - if (K053246_is_IRQ_enabled()) - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); - break; - } -} - -#if 0 -static READ16_HANDLER( dbzcontrol_r ) -{ - return dbz_control; -} -#endif - -static WRITE16_HANDLER( dbzcontrol_w ) -{ - /* bit 10 = enable '246 readback */ - - COMBINE_DATA(&dbz_control); - - if (data & 0x400) - { - K053246_set_OBJCHA_line(ASSERT_LINE); - } - else - { - K053246_set_OBJCHA_line(CLEAR_LINE); - } - - coin_counter_w(0, data & 1); - coin_counter_w(1, data & 2); -} - -static READ16_HANDLER( dbz_inp0_r ) -{ - return readinputportbytag("IN0") | (readinputportbytag("IN1")<<8); -} - -static READ16_HANDLER( dbz_inp1_r ) -{ - return readinputportbytag("IN3") | (readinputportbytag("DSW1")<<8); -} - -static READ16_HANDLER( dbz_inp2_r ) -{ - return readinputportbytag("DSW2") | (readinputportbytag("DSW2")<<8); -} - -static WRITE16_HANDLER( dbz_sound_command_w ) -{ - soundlatch_w(0, data>>8); -} - -static WRITE16_HANDLER( dbz_sound_cause_nmi ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static void dbz_sound_irq(int irq) -{ - if (irq) - cpunum_set_input_line(1, 0, ASSERT_LINE); - else - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - -static ADDRESS_MAP_START( dbz_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x480000, 0x48ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x490000, 0x491fff) AM_READ(K056832_ram_word_r) // '157 RAM is mirrored twice - AM_RANGE(0x492000, 0x493fff) AM_READ(K056832_ram_word_r) - AM_RANGE(0x498000, 0x49ffff) AM_READ(K056832_rom_word_8000_r) // code near a60 in dbz2, subroutine at 730 in dbz - AM_RANGE(0x4a0000, 0x4a0fff) AM_READ(K053247_word_r) - AM_RANGE(0x4a1000, 0x4a3fff) AM_READ(MRA16_RAM) - AM_RANGE(0x4a8000, 0x4abfff) AM_READ(MRA16_RAM) // palette - AM_RANGE(0x4c0000, 0x4c0001) AM_READ(K053246_word_r) - AM_RANGE(0x4e0000, 0x4e0001) AM_READ(dbz_inp0_r) - AM_RANGE(0x4e0002, 0x4e0003) AM_READ(dbz_inp1_r) - AM_RANGE(0x4e4000, 0x4e4001) AM_READ(dbz_inp2_r) - AM_RANGE(0x500000, 0x501fff) AM_READ(MRA16_RAM) - AM_RANGE(0x508000, 0x509fff) AM_READ(MRA16_RAM) - AM_RANGE(0x510000, 0x513fff) AM_READ(MRA16_RAM) - AM_RANGE(0x518000, 0x51bfff) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x6fffff) AM_READ(MRA16_NOP) // PSAC 1 ROM readback window - AM_RANGE(0x700000, 0x7fffff) AM_READ(MRA16_NOP) // PSAC 2 ROM readback window -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dbz_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x480000, 0x48ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x490000, 0x491fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x492000, 0x493fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x4a0000, 0x4a0fff) AM_WRITE(K053247_word_w) - AM_RANGE(0x4a1000, 0x4a3fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x4a8000, 0x4abfff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x4c0000, 0x4c0007) AM_WRITE(K053246_word_w) - AM_RANGE(0x4c4000, 0x4c4007) AM_WRITE(K053246_word_w) - AM_RANGE(0x4c8000, 0x4c8007) AM_WRITE(K056832_b_word_w) - AM_RANGE(0x4cc000, 0x4cc03f) AM_WRITE(K056832_word_w) - AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w) - AM_RANGE(0x4d0000, 0x4d001f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0x4d4000, 0x4d401f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_1_ctrl) - AM_RANGE(0x4e8000, 0x4e8001) AM_WRITE(MWA16_NOP) - AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w) - AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi) - AM_RANGE(0x4f8000, 0x4f801f) AM_WRITE(MWA16_NOP) // 251 #1 - AM_RANGE(0x4fc000, 0x4fc01f) AM_WRITE(K053251_lsb_w) // 251 #2 - AM_RANGE(0x500000, 0x501fff) AM_WRITE(dbz_bg2_videoram_w) AM_BASE(&dbz_bg2_videoram) - AM_RANGE(0x508000, 0x509fff) AM_WRITE(dbz_bg1_videoram_w) AM_BASE(&dbz_bg1_videoram) - AM_RANGE(0x510000, 0x513fff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) // ?? guess, it might not be - AM_RANGE(0x518000, 0x51bfff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_1_linectrl) // ?? guess, it might not be -ADDRESS_MAP_END - -/* dbz sound */ -/* IRQ: from YM2151. NMI: from 68000. Port 0: write to ack NMI */ - -static ADDRESS_MAP_START( dbz_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_RAM) - AM_RANGE(0xc000, 0xc001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xd000, 0xd002) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dbz_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xd000, 0xd001) AM_WRITE(OKIM6295_data_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dbz_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -/**********************************************************************************/ - - -INPUT_PORTS_START( dbz ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) // I think this is right, but can't stomach the game long enough to check - PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) // seems unused - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) // Definitely correct - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR(Service_Mode) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x80, 0x00, "Mask ROM Test" ) //NOP'd - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2) // "Test" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Disabled" ) -INPUT_PORTS_END - -INPUT_PORTS_START( dbz2 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Level_Select ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR(Service_Mode ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x80, 0x00, "Mask ROM Test" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2) // "Test" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Disabled" ) -INPUT_PORTS_END - -/**********************************************************************************/ - -static struct YM2151interface ym2151_interface = -{ - dbz_sound_irq -}; - -/**********************************************************************************/ - -static const gfx_layout bglayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, - 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX3, 0, &bglayout, 0, 512 }, - { REGION_GFX4, 0, &bglayout, 0, 512 }, - { -1 } /* end of array */ -}; - -/**********************************************************************************/ - -static MACHINE_DRIVER_START( dbz ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(dbz_readmem,dbz_writemem) - MDRV_CPU_VBLANK_INT(dbz_interrupt,2) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(dbz_sound_readmem, dbz_sound_writemem) - MDRV_CPU_IO_MAP(0,dbz_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_GFXDECODE(gfxdecodeinfo) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1) - MDRV_VIDEO_START(dbz) - MDRV_VIDEO_UPDATE(dbz) - MDRV_PALETTE_LENGTH(0x4000/2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -/**********************************************************************************/ - -#define ROM_LOAD64_WORD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(6)) - -ROM_START( dbz ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "222a11.9e", 0x000000, 0x80000, CRC(60c7d9b2) SHA1(718ef89e89b3943845e91bedfc5c1d26229f9fe5) ) - ROM_LOAD16_BYTE( "222a12.9f", 0x000001, 0x80000, CRC(6ebc6853) SHA1(e9b2068246228968cc6b8554215563cacaa5ba9f) ) - - ROM_REGION( 0x400000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "222a11.9e", 0x000000, 0x80000, CRC(60c7d9b2) SHA1(718ef89e89b3943845e91bedfc5c1d26229f9fe5) ) - ROM_LOAD16_BYTE( "222a12.9f", 0x000001, 0x80000, CRC(6ebc6853) SHA1(e9b2068246228968cc6b8554215563cacaa5ba9f) ) - - /* sound program */ - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD("222a10.5e", 0x000000, 0x08000, CRC(1c93e30a) SHA1(8545a0ac5126b3c855e1901b186f57820699895d) ) - - /* tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "222a01.27c", 0x000000, 0x200000, CRC(9fce4ed4) SHA1(81e19375b351ee247f066434dd595149333d73c5) ) - ROM_LOAD( "222a02.27e", 0x200000, 0x200000, CRC(651acaa5) SHA1(33942a90fb294b5da6a48e5bfb741b31babca188) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "222a04.3j", 0x000000, 0x200000, CRC(2533b95a) SHA1(35910836b6030130d742eae6c4bf1cdf1ff43fa4) ) - ROM_LOAD64_WORD( "222a05.1j", 0x000002, 0x200000, CRC(731b7f93) SHA1(b676fff2ede5aa72c49fe12736cd60766462fe0b) ) - ROM_LOAD64_WORD( "222a06.3l", 0x000004, 0x200000, CRC(97b767d3) SHA1(3d879c431586da2f88c632ab1a531b4a5ec96939) ) - ROM_LOAD64_WORD( "222a07.1l", 0x000006, 0x200000, CRC(430bc873) SHA1(ea483195bb7f20ef3df7cfba153e5f6f8d53e5f9) ) - - /* K053536 PSAC-2 #1 */ - ROM_REGION( 0x200000, REGION_GFX3, 0) - ROM_LOAD( "222a08.25k", 0x000000, 0x200000, CRC(6410ee1b) SHA1(2296aafd3ba25f63a12130f7b58de53e88f14e92) ) - - /* K053536 PSAC-2 #2 */ - ROM_REGION( 0x200000, REGION_GFX4, 0) - ROM_LOAD( "222a09.25l", 0x000000, 0x200000, CRC(f7b3f070) SHA1(50ebd8cfcda292a3df5664de50f9212108d58923) ) - - /* sound data */ - ROM_REGION( 0x40000, REGION_SOUND1, 0) - ROM_LOAD( "222a03.7c", 0x000000, 0x40000, CRC(1924467b) SHA1(57922090509bcc63b4783e8f2c5e95afd2090b87) ) -ROM_END - -ROM_START( dbz2 ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "a9e.9e", 0x000000, 0x80000, CRC(e6a142c9) SHA1(7951c8f7036a67a0cd3260f434654820bf3e603f) ) - ROM_LOAD16_BYTE( "a9f.9f", 0x000001, 0x80000, CRC(76cac399) SHA1(af6daa1f8b87c861dc62adef5ca029190c3cb9ae) ) - - /* sound program */ - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD("s-001.5e", 0x000000, 0x08000, CRC(154e6d03) SHA1(db15c20982692271f40a733dfc3f2486221cd604) ) - - /* tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "ds-b01.27c", 0x000000, 0x200000, CRC(8dc39972) SHA1(c6e3d4e0ff069e08bdb68e2b0ad24cc7314e4e93) ) - ROM_LOAD( "ds-b02.27e", 0x200000, 0x200000, CRC(7552f8cd) SHA1(1f3beffe9733b1a18d44b5e8880ff1cc97e7a8ab) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "ds-o01.3j", 0x000000, 0x200000, CRC(d018531f) SHA1(d4082fe28e9f1f3f35aa75b4be650cadf1cef192) ) - ROM_LOAD64_WORD( "ds-o02.1j", 0x000002, 0x200000, CRC(5a0f1ebe) SHA1(3bb9e1389299dc046a24740ef1a1c543e44b5c37) ) - ROM_LOAD64_WORD( "ds-o03.3l", 0x000004, 0x200000, CRC(ddc3bef1) SHA1(69638ef53f627a238a12b6c206d57faadf894893) ) - ROM_LOAD64_WORD( "ds-o04.1l", 0x000006, 0x200000, CRC(b5df6676) SHA1(194cfce460ccd29e2cceec577aae4ec936ae88e5) ) - - /* K053536 PSAC-2 #1 */ - ROM_REGION( 0x400000, REGION_GFX3, 0) - ROM_LOAD( "ds-p01.25k", 0x000000, 0x200000, CRC(1c7aad68) SHA1(a5296cf12cec262eede55397ea929965576fea81) ) - ROM_LOAD( "ds-p02.27k", 0x200000, 0x200000, CRC(e4c3a43b) SHA1(f327f75fe82f8aafd2cfe6bdd3a426418615974b) ) - - /* K053536 PSAC-2 #2 */ - ROM_REGION( 0x400000, REGION_GFX4, 0) - ROM_LOAD( "ds-p03.25l", 0x000000, 0x200000, CRC(1eaa671b) SHA1(1875eefc6f2c3fc8feada56bfa6701144e8ef64b) ) - ROM_LOAD( "ds-p04.27l", 0x200000, 0x200000, CRC(5845ff98) SHA1(73b4c3f439321ce9c462119fe933e7cbda8cd498) ) - - /* sound data */ - ROM_REGION( 0x40000, REGION_SOUND1, 0) - ROM_LOAD( "pcm.7c", 0x000000, 0x40000, CRC(b58c884a) SHA1(0e2a7267e9dff29c9af25558081ec9d56629bc43) ) -ROM_END - -static DRIVER_INIT( dbz ) -{ - UINT16 *ROM; - - konami_rom_deinterleave_2(REGION_GFX1); - - ROM = (UINT16 *)memory_region(REGION_CPU1); - - // nop out dbz1's mask rom test - // tile ROM test - ROM[0x790/2] = 0x4e71; - ROM[0x792/2] = 0x4e71; - // PSAC2 ROM test - ROM[0x982/2] = 0x4e71; - ROM[0x984/2] = 0x4e71; - ROM[0x986/2] = 0x4e71; - ROM[0x988/2] = 0x4e71; - ROM[0x98a/2] = 0x4e71; - ROM[0x98c/2] = 0x4e71; - ROM[0x98e/2] = 0x4e71; - ROM[0x990/2] = 0x4e71; -} - -static DRIVER_INIT( dbz2 ) -{ - konami_rom_deinterleave_2(REGION_GFX1); -} - -GAME( 1993, dbz, 0, dbz, dbz, dbz, ROT0, "Banpresto", "Dragonball Z", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, dbz2, 0, dbz, dbz2, dbz2, ROT0, "Banpresto", "Dragonball Z 2 - Super Battle", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/dcheese.c b/src/drivers/dcheese.c deleted file mode 100644 index 73c7ef7ab..000000000 --- a/src/drivers/dcheese.c +++ /dev/null @@ -1,614 +0,0 @@ -/*************************************************************************** - - HAR MadMax hardware - -**************************************************************************** - - Games supported: - * Double Cheese - * Lotto Fun 2 - * Fred Flintstones' Memory Match - - Known bugs: - * Test/tilt buttons seem to be swapped compared to test mode - * Don't know what the opto switches do - - [fredmem] - * Controls are set up as a 3 x 3 matrix of buttons that match the 9 - positions on the screen. - -**************************************************************************/ - - -#include "driver.h" -#include "machine/eeprom.h" -#include "machine/ticket.h" -#include "sound/bsmt2000.h" -#include "dcheese.h" - - -#define MAIN_OSC 14318180 -#define SOUND_OSC 24000000 - - - -/************************************* - * - * Local variables - * - *************************************/ - -static UINT8 irq_state[5]; -static UINT8 soundlatch_full; - - - -/************************************* - * - * Interrupts - * - *************************************/ - -static void update_irq_state(void) -{ - int i; - - /* loop from high priority to low; if we find a live IRQ, assert it */ - for (i = 4; i >= 0; i--) - if (irq_state[i]) - { - cpunum_set_input_line(0, i, ASSERT_LINE); - return; - } - - /* otherwise, clear them all */ - cpunum_set_input_line(0, 7, CLEAR_LINE); -} - - -static int irq_callback(int which) -{ - /* auto-ack the IRQ */ - irq_state[which] = 0; - update_irq_state(); - - /* vector is 0x40 + index */ - return 0x40 + which; -} - - -void dcheese_signal_irq(int which) -{ - irq_state[which] = 1; - update_irq_state(); -} - - -static INTERRUPT_GEN( dcheese_vblank ) -{ - logerror("---- VBLANK ----\n"); - dcheese_signal_irq(4); -} - - - -/************************************* - * - * Machine init - * - *************************************/ - -static MACHINE_START( dcheese ) -{ - cpunum_set_irq_callback(0, irq_callback); - - state_save_register_global_array(irq_state); - state_save_register_global(soundlatch_full); - - return 0; -} - - - -/************************************* - * - * I/O ports - * - *************************************/ - -static READ16_HANDLER( port_0_r ) -{ - return (readinputport(0) & 0xff7f) | (EEPROM_read_bit() << 7); -} - - -static READ16_HANDLER( port_2_r ) -{ - return (readinputport(2) & 0xff1f) | (!soundlatch_full << 7) | (ticket_dispenser_r(0) >> 2); -} - - -static WRITE16_HANDLER( eeprom_control_w ) -{ - /* toggles bit $0100 very frequently while waiting for things */ - /* bits $0080-$0010 are probably lamps */ - if (ACCESSING_LSB) - { - EEPROM_set_cs_line(~data & 8); - EEPROM_write_bit(data & 2); - EEPROM_set_clock_line(data & 4); - ticket_dispenser_w(0, (data & 1) << 7); - } -} - - -static WRITE16_HANDLER( sound_command_w ) -{ - if (ACCESSING_LSB) - { - /* write the latch and set the IRQ */ - soundlatch_full = 1; - cpunum_set_input_line(1, 0, ASSERT_LINE); - soundlatch_w(0, data & 0xff); - } -} - - - -/************************************* - * - * Sound CPU handlers - * - *************************************/ - -static READ8_HANDLER( sound_command_r ) -{ - /* read the latch and clear the IRQ */ - soundlatch_full = 0; - cpunum_set_input_line(1, 0, CLEAR_LINE); - return soundlatch_r(0); -} - - -static READ8_HANDLER( sound_status_r ) -{ - /* seems to be ready signal on BSMT or latching hardware */ - return 0x80; -} - - -static WRITE8_HANDLER( sound_control_w ) -{ - /* bit 0x20 = LED */ - if (data != 0x40 && data != 0x60) - logerror("%04X:sound_control_w = %02X\n", activecpu_get_pc(), data); -} - - -static WRITE8_HANDLER( bsmt_data_w ) -{ - static UINT8 latch; - - /* writes come in pairs; even bytes latch, odd bytes write */ - if (offset % 2 == 0) - latch = data; - else - BSMT2000_data_0_w(offset/2, (latch << 8) | data, 0); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x200001) AM_READWRITE(port_0_r, watchdog_reset16_w) - AM_RANGE(0x220000, 0x220001) AM_READWRITE(input_port_1_word_r, madmax_blitter_color_w) - AM_RANGE(0x240000, 0x240001) AM_READWRITE(port_2_r, eeprom_control_w) - AM_RANGE(0x260000, 0x26001f) AM_WRITE(madmax_blitter_xparam_w) - AM_RANGE(0x280000, 0x28001f) AM_WRITE(madmax_blitter_yparam_w) - AM_RANGE(0x2a0000, 0x2a003f) AM_READWRITE(madmax_blitter_vidparam_r, madmax_blitter_vidparam_w) - AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(sound_command_w) - AM_RANGE(0x300000, 0x300001) AM_WRITE(madmax_blitter_unknown_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sound_status_r, sound_control_w) - AM_RANGE(0x0800, 0x0fff) AM_READ(sound_command_r) - AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE(bsmt_data_w) - AM_RANGE(0x1800, 0x1fff) AM_RAM - AM_RANGE(0x2000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Input port definitions - * - *************************************/ - -INPUT_PORTS_START( dcheese ) - PORT_START /* 200000 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) /* says tilt */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) /* says test */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* bump left */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* bump right */ - PORT_BIT( 0x1800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* brake right */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* brake left */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 220000 */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 240000 */ - PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ticket status */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* main->sound buffer status (1=empty) */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 2a0002 */ - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNKNOWN ) // read as a unit - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) // opto 1 - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) // opto 2 - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 2a000e */ - PORT_BIT( 0x00ff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( lottof2 ) - PORT_START /* 200000 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x1f00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* button */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* ticket */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 220000 */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 240000 */ - PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ticket status */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* main->sound buffer status (1=empty) */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 2a0002 */ - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 2a000e */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( fredmem ) - PORT_START /* 200000 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x1f00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 220000 */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 240000 */ - PORT_BIT( 0x001f, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* low 5 bits read as a unit */ - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ticket status */ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound->main buffer status (0=empty) */ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* main->sound buffer status (1=empty) */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 2a0002 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_8_PAD) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 2a000e */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct BSMT2000interface bsmt2000_interface = -{ - 11, - REGION_SOUND1 -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( dcheese ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, MAIN_OSC) - MDRV_CPU_PROGRAM_MAP(main_cpu_map,0) - MDRV_CPU_VBLANK_INT(dcheese_vblank,1) - - MDRV_CPU_ADD(M6809, SOUND_OSC/16) - MDRV_CPU_PROGRAM_MAP(sound_cpu_map,0) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(480)) /* accurate for fredmem */ - - MDRV_MACHINE_START(dcheese) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - - MDRV_PALETTE_LENGTH(65534) - - MDRV_PALETTE_INIT(dcheese) - MDRV_VIDEO_START(dcheese) - MDRV_VIDEO_UPDATE(dcheese) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(BSMT2000, SOUND_OSC) - MDRV_SOUND_CONFIG(bsmt2000_interface) - MDRV_SOUND_ROUTE(0, "left", 1.8) - MDRV_SOUND_ROUTE(1, "right", 1.8) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( fredmem ) - MDRV_IMPORT_FROM(dcheese) - MDRV_SCREEN_VISIBLE_AREA(0, 359, 0, 239) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -/* - Double Cheese (c) 1993 HAR - - CPU: 68000 - Sound: 6809, BSMt2000 D15505N - RAM: 84256 (x2), 5116 - Other: TRW9312HH (x2), LSI L1A6017 (MAX1 EXIT) - - Notes: PCB labeled "Exit Entertainment MADMAX version 5". Title screen reports - (c)1993 Midway Manufacturing. ROM labels (c) 1993 HAR -*/ -ROM_START( dcheese ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68k */ - ROM_LOAD16_BYTE( "dchez.104", 0x00000, 0x20000, CRC(5b6233d8) SHA1(7fdb606b5780dd8f45db07d3ee50e14a27f39533) ) - ROM_LOAD16_BYTE( "dchez.103", 0x00001, 0x20000, CRC(599c73ff) SHA1(f33e617ab7e9489c52b2434cfc61a5e1696e9400) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* M6809 */ - ROM_LOAD( "dchez.102", 0x8000, 0x8000, CRC(5d110061) SHA1(10d852a408a75979b8e8843afc7b39737ca2c6c8) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "dchez.123", 0x00000, 0x40000, CRC(2293dd9a) SHA1(3f0550c2a6f59a233c5b1010cecdb19404170dc0) ) - ROM_LOAD( "dchez.127", 0x40000, 0x40000, CRC(372f9d67) SHA1(74f73f0344bfb890b5e457fcde3d82c9106e7edd) ) - ROM_LOAD( "dchez.125", 0x80000, 0x40000, CRC(ddf28bab) SHA1(0f3bc86d0db7afebf8c6094b8337e5f343a82f29) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "dchez.ar0", 0x000000, 0x40000, CRC(6a9e2b12) SHA1(f7cb4d6b4a459682a68f734b2b2e27e3639b9ed5) ) - ROM_RELOAD( 0x040000, 0x40000 ) - ROM_RELOAD( 0x080000, 0x40000 ) - ROM_RELOAD( 0x0c0000, 0x40000 ) - ROM_LOAD( "dchez.ar1", 0x100000, 0x40000, CRC(5f3a5f41) SHA1(30e0c7b2ab43a3224432204a9388d509a6a06a11) ) - ROM_RELOAD( 0x140000, 0x40000 ) - ROM_RELOAD( 0x180000, 0x40000 ) - ROM_RELOAD( 0x1c0000, 0x40000 ) - ROM_LOAD( "dchez.ar2", 0x200000, 0x20000, CRC(d79b0d41) SHA1(cc84ddf6635097ba0aad2f1838ad0606c5bb8166) ) - ROM_RELOAD( 0x220000, 0x20000 ) - ROM_RELOAD( 0x240000, 0x20000 ) - ROM_RELOAD( 0x260000, 0x20000 ) - ROM_RELOAD( 0x280000, 0x20000 ) - ROM_RELOAD( 0x2a0000, 0x20000 ) - ROM_RELOAD( 0x2c0000, 0x20000 ) - ROM_RELOAD( 0x2e0000, 0x20000 ) - ROM_LOAD( "dchez.ar3", 0x300000, 0x20000, CRC(2056c1fd) SHA1(4c44930fb87ea6ad71326cc29313f3b817919d08) ) - ROM_RELOAD( 0x320000, 0x20000 ) - ROM_RELOAD( 0x340000, 0x20000 ) - ROM_RELOAD( 0x360000, 0x20000 ) - ROM_RELOAD( 0x380000, 0x20000 ) - ROM_RELOAD( 0x3a0000, 0x20000 ) - ROM_RELOAD( 0x3c0000, 0x20000 ) - ROM_RELOAD( 0x3e0000, 0x20000 ) - - ROM_REGION16_LE( 0x20000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "dchez.144", 0x00000, 0x10000, CRC(52c96252) SHA1(46de465c25e4602aa360336315b3c8e1a9a0b5f3) ) - ROM_LOAD16_BYTE( "dchez.145", 0x00001, 0x10000, CRC(a11b92d0) SHA1(265f93cb3657910aabca21ed8afbb55bdc86a964) ) -ROM_END - - -ROM_START( lottof2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68k */ - ROM_LOAD16_BYTE( "u104.r20", 0x00000, 0x20000, CRC(0dfa710e) SHA1(b28676caf2074822e87bd213d76a892bcce07c1a) ) - ROM_LOAD16_BYTE( "u103.r20", 0x00001, 0x20000, CRC(1bcd7c77) SHA1(891f066cbcf558e7a725154758cf5a7a58a4400a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* M6809 */ - ROM_LOAD( "u102.r10", 0x8000, 0x8000, CRC(fcb34c81) SHA1(f80cef85d0f4218c88c01b238f10eff2c6241d33) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "u123.r10", 0x00000, 0x40000, CRC(dbcdb5aa) SHA1(7473c5e0fc1a40a39e148277b4094fe1338d988c) ) - ROM_LOAD( "u127.r10", 0x40000, 0x40000, CRC(029ffed9) SHA1(63ba56277745ebea7c2c2b3738790cd2f4ddbe00) ) - ROM_LOAD( "u125.r10", 0x80000, 0x40000, CRC(c70cf1c6) SHA1(eb5f0c5f7485d92ce569ad915b9f5c3c48338172) ) - ROM_LOAD( "u129.r10", 0xc0000, 0x40000, CRC(e9c9e4b0) SHA1(02a3bc279e2489fd53f9a08df5f1023f75fff4d1) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "arom0.r10", 0x000000, 0x40000, CRC(05e7581b) SHA1(e12be200abfbef269fc085d6c5efea106487e05f) ) - ROM_RELOAD( 0x040000, 0x40000 ) - ROM_RELOAD( 0x080000, 0x40000 ) - ROM_RELOAD( 0x0c0000, 0x40000 ) - ROM_LOAD( "arom1.r10", 0x100000, 0x20000, CRC(6c4ebbfd) SHA1(2b396d96ce8903e5e8d455ce019422b744f3c4d5) ) - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - ROM_RELOAD( 0x180000, 0x20000 ) - ROM_RELOAD( 0x1a0000, 0x20000 ) - ROM_RELOAD( 0x1c0000, 0x20000 ) - ROM_RELOAD( 0x1e0000, 0x20000 ) - ROM_LOAD( "arom2.r10", 0x200000, 0x20000, CRC(fbe9fbbb) SHA1(457fc3c0d33cf430e5969f4fa11317f1f930351b) ) - ROM_RELOAD( 0x220000, 0x20000 ) - ROM_RELOAD( 0x240000, 0x20000 ) - ROM_RELOAD( 0x260000, 0x20000 ) - ROM_RELOAD( 0x280000, 0x20000 ) - ROM_RELOAD( 0x2a0000, 0x20000 ) - ROM_RELOAD( 0x2c0000, 0x20000 ) - ROM_RELOAD( 0x2e0000, 0x20000 ) - ROM_LOAD( "arom3.r10", 0x300000, 0x20000, CRC(ffb6e463) SHA1(1349455d2ce8eb141bc0fa5219f5e7c52ee969dc) ) - ROM_RELOAD( 0x320000, 0x20000 ) - ROM_RELOAD( 0x340000, 0x20000 ) - ROM_RELOAD( 0x360000, 0x20000 ) - ROM_RELOAD( 0x380000, 0x20000 ) - ROM_RELOAD( 0x3a0000, 0x20000 ) - ROM_RELOAD( 0x3c0000, 0x20000 ) - ROM_RELOAD( 0x3e0000, 0x20000 ) - - ROM_REGION16_LE( 0x20000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "u144.r10", 0x00000, 0x10000, CRC(3b9d5d9e) SHA1(b3fbfeb41c62c689a825dfe9487917a927a71f58) ) - ROM_LOAD16_BYTE( "u145.r10", 0x00001, 0x10000, CRC(e5a022a4) SHA1(567a37d24b36ca01a2ac3c40a0392cf97b1eb948) ) -ROM_END - - -ROM_START( fredmem ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68k */ - ROM_LOAD16_BYTE( "prog0.104", 0x00000, 0x20000, CRC(9e90ebc3) SHA1(ef86e5070ec64772b8e8b9b30910b88bbd46285b) ) /* Program 0 - V2.0 at U104 */ - ROM_LOAD16_BYTE( "prog1.103", 0x00001, 0x20000, CRC(79cadede) SHA1(bfc04edf6dc3beb942ffba442fe4203d1e1a3c0e) ) /* Program 1 - V2.0 at U103 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* M6809 */ - ROM_LOAD( "prog.102", 0x00000, 0x10000, CRC(b1526a1a) SHA1(456c44a0a908b3cd054b7c6741d7a1033c9b12fb) ) /* Sound Program 6809 code at U102 */ - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "art-rom.123", 0x000000, 0x80000, CRC(48133505) SHA1(60f69b053e67256928db57e0a5335bbd5a72ddfc) ) /* Graphics / Art at U123 */ - ROM_LOAD( "art-rom.125", 0x080000, 0x80000, CRC(8181e154) SHA1(4d16b84ad52d8e3d3bcad3fdf5f8da23df198d46) ) /* Graphics / Art at U125 */ - ROM_LOAD( "art-rom.127", 0x100000, 0x80000, CRC(93095f3b) SHA1(de746829e04bf153024e94e6ef0ceffb1eae2b14) ) /* Graphics / Art at U127 */ - ROM_LOAD( "art-rom.129", 0x180000, 0x80000, CRC(d5715a02) SHA1(b7d9d29f2fc5d74adff1fefce312e6472c0f7565) ) /* Graphics / Art at U129 */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "arom0", 0x000000, 0x80000, CRC(3b85ea34) SHA1(0a68e7df20a2c36e230c7935415dd5068c338669) ) - ROM_RELOAD( 0x080000, 0x80000 ) - ROM_LOAD( "arom1", 0x100000, 0x80000, CRC(405df3d4) SHA1(190b928789a879408beadd1647136bd85b018c63) ) - ROM_RELOAD( 0x180000, 0x80000 ) - ROM_LOAD( "arom2", 0x200000, 0x80000, CRC(48ecd5c9) SHA1(6aad371db7b658454c5feed548ffd19b81a8fcf4) ) - ROM_RELOAD( 0x280000, 0x80000 ) - ROM_LOAD( "arom3", 0x300000, 0x80000, CRC(411900b0) SHA1(ddc5b387c89baab0fd5c654f3768c6e27972c06a) ) - ROM_RELOAD( 0x380000, 0x80000 ) - - ROM_REGION16_LE( 0x20000, REGION_USER1, 0 ) - ROM_LOAD16_BYTE( "0.144", 0x00000, 0x10000, CRC(793c4bda) SHA1(5a8a2981b48922f4d9e617a9bf9ef6a47ab702b7) ) /* Pallette - 0 at U144 */ - ROM_LOAD16_BYTE( "1.145", 0x00001, 0x10000, CRC(fe2c3521) SHA1(896e53427c7831620ca565be9c0b76aabc36b9f4) ) /* Pallette - 1 at U145 */ - - ROM_REGION( 0x100, REGION_USER2, 0 ) - ROM_LOAD16_BYTE( "93c46.u158", 0x00000, 0x0080, CRC(a40a7b87) SHA1(3632b7538b3bf41ee0cbe7541a0f5951f70b4a9b) ) /* EEPROM data at U158 */ -ROM_END - - - -/************************************* - * - * Driver configuration - * - *************************************/ - -static DRIVER_INIT( dcheese ) -{ - ticket_dispenser_init(200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1993, dcheese, 0, dcheese, dcheese, dcheese, ROT90, "HAR", "Double Cheese", GAME_SUPPORTS_SAVE ) -GAME( 1993, lottof2, 0, dcheese, lottof2, dcheese, ROT0, "HAR", "Lotto Fun 2", GAME_SUPPORTS_SAVE ) -GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/ddragon3.c b/src/drivers/ddragon3.c deleted file mode 100644 index 0cf7a34cd..000000000 --- a/src/drivers/ddragon3.c +++ /dev/null @@ -1,779 +0,0 @@ -/****************************************************************** - - Double Dragon 3 Technos Japan Corp 1990 - The Combatribes Technos Japan Corp 1990 - - - Notes: - - Both games have original and bootleg versions supported. - Double Dragon 3 bootleg has some misplaced graphics, but I - think this is how the real thing would look. - Combatribes has sprite lag but it seems to be caused by poor - programming and I think the original does the same. - -******************************************************************/ - -/* - - TODO: - - - coin counters/lockouts - -*/ - - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "cpu/m68000/m68000.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - - -extern UINT16 *ddragon3_bg_videoram16; -extern UINT16 *ddragon3_fg_videoram16; -extern UINT16 ddragon3_vreg; - -extern WRITE16_HANDLER( ddragon3_bg_videoram16_w ); -extern WRITE16_HANDLER( ddragon3_fg_videoram16_w ); -extern WRITE16_HANDLER( ddragon3_scroll16_w ); -extern READ16_HANDLER( ddragon3_scroll16_r ); - -extern VIDEO_START( ddragon3 ); -extern VIDEO_UPDATE( ddragon3 ); -extern VIDEO_UPDATE( ctribe ); - -/* Read/Write Handlers */ - -static WRITE8_HANDLER( oki_bankswitch_w ) -{ - OKIM6295_set_bank_base(0, (data & 1) * 0x40000); -} - -static WRITE16_HANDLER( ddragon3_io16_w ) -{ - static UINT16 reg[8]; - - COMBINE_DATA(®[offset]); - - switch (offset) - { - case 0: - ddragon3_vreg = reg[0]; - break; - - case 1: /* soundlatch_w */ - soundlatch_w(1,reg[1]&0xff); - cpunum_set_input_line( 1, INPUT_LINE_NMI, PULSE_LINE ); - break; - - case 2: - /* this gets written to on startup and at the end of IRQ6 - ** possibly trigger IRQ on sound CPU - */ - break; - - case 3: - /* this gets written to on startup, - ** and at the end of IRQ5 (input port read) */ - break; - - case 4: - /* this gets written to at the end of IRQ6 only */ - break; - - default: - logerror("OUTPUT 1400[%02x] %08x, pc=%06x \n", offset,(unsigned)data, activecpu_get_pc() ); - break; - } -} - -/* Memory Maps */ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM) /* Foreground (32x32 Tiles - 4 by per tile) */ - AM_RANGE(0x082000, 0x0827ff) AM_READ(MRA16_RAM) /* Background (32x32 Tiles - 2 by per tile) */ - AM_RANGE(0x100000, 0x100001) AM_READ(input_port_0_word_r) - AM_RANGE(0x100002, 0x100003) AM_READ(input_port_1_word_r) - AM_RANGE(0x100004, 0x100005) AM_READ(input_port_2_word_r) - AM_RANGE(0x100006, 0x100007) AM_READ(input_port_3_word_r) - AM_RANGE(0x140000, 0x1405ff) AM_READ(MRA16_RAM) /* Palette RAM */ - AM_RANGE(0x180000, 0x180fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1c0000, 0x1c3fff) AM_READ(MRA16_RAM) /* working RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_WRITE(ddragon3_fg_videoram16_w) AM_BASE(&ddragon3_fg_videoram16) - AM_RANGE(0x082000, 0x0827ff) AM_WRITE(ddragon3_bg_videoram16_w) AM_BASE(&ddragon3_bg_videoram16) - AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll16_w) - AM_RANGE(0x100000, 0x10000f) AM_WRITE(ddragon3_io16_w) - AM_RANGE(0x140000, 0x1405ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x180000, 0x180fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) /* Sprites (16 bytes per sprite) */ - AM_RANGE(0x1c0000, 0x1c3fff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dd3b_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM) /* Foreground (32x32 Tiles - 4 by per tile) */ - AM_RANGE(0x081000, 0x081fff) AM_READ(MRA16_RAM) - AM_RANGE(0x082000, 0x0827ff) AM_READ(MRA16_RAM) /* Background (32x32 Tiles - 2 by per tile) */ - AM_RANGE(0x100000, 0x1005ff) AM_READ(MRA16_RAM) /* Palette RAM */ - AM_RANGE(0x180000, 0x180001) AM_READ(input_port_0_word_r) - AM_RANGE(0x180002, 0x180003) AM_READ(input_port_1_word_r) - AM_RANGE(0x180004, 0x180005) AM_READ(input_port_2_word_r) - AM_RANGE(0x180006, 0x180007) AM_READ(input_port_3_word_r) - AM_RANGE(0x1c0000, 0x1c3fff) AM_READ(MRA16_RAM) /* working RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dd3b_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_WRITE(ddragon3_fg_videoram16_w) AM_BASE(&ddragon3_fg_videoram16) - AM_RANGE(0x081000, 0x081fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) /* Sprites (16 bytes per sprite) */ - AM_RANGE(0x082000, 0x0827ff) AM_WRITE(ddragon3_bg_videoram16_w) AM_BASE(&ddragon3_bg_videoram16) - AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll16_w) - AM_RANGE(0x100000, 0x1005ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io16_w) - AM_RANGE(0x1c0000, 0x1c3fff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ctribe_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM) /* Foreground (32x32 Tiles - 4 by per tile) */ - AM_RANGE(0x081000, 0x081fff) AM_READ(MRA16_RAM) - AM_RANGE(0x082000, 0x0827ff) AM_READ(MRA16_RAM) /* Background (32x32 Tiles - 2 by per tile) */ - AM_RANGE(0x082800, 0x082fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0c0000, 0x0c000f) AM_READ(ddragon3_scroll16_r) - AM_RANGE(0x100000, 0x1005ff) AM_READ(MRA16_RAM) /* Palette RAM */ - AM_RANGE(0x180000, 0x180001) AM_READ(input_port_0_word_r) - AM_RANGE(0x180002, 0x180003) AM_READ(input_port_1_word_r) - AM_RANGE(0x180004, 0x180005) AM_READ(input_port_2_word_r) - AM_RANGE(0x180006, 0x180007) AM_READ(input_port_3_word_r) - AM_RANGE(0x1c0000, 0x1c3fff) AM_READ(MRA16_RAM) /* working RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ctribe_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x080fff) AM_WRITE(ddragon3_fg_videoram16_w) AM_BASE(&ddragon3_fg_videoram16) - AM_RANGE(0x081000, 0x081fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) /* Sprites (16 bytes per sprite) */ - AM_RANGE(0x082000, 0x0827ff) AM_WRITE(ddragon3_bg_videoram16_w) AM_BASE(&ddragon3_bg_videoram16) - AM_RANGE(0x082800, 0x082fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll16_w) - AM_RANGE(0x100000, 0x1005ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io16_w) - AM_RANGE(0x1c0000, 0x1c3fff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc801, 0xc801) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xd800, 0xd800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc800, 0xc800) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xd800, 0xd800) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ctribe_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8801, 0x8801) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x9800, 0x9800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ctribe_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x8801, 0x8801) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x9800, 0x9800) AM_WRITE(OKIM6295_data_0_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( ddragon3 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // punch - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // jump - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) // kick - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START // DSW1&2 - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0010, 0x0010, "Continue Discount" ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Player Vs. Player Damage" ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x1000, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x2000, 0x2000, "Stage Clear Energy" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, "50" ) - PORT_DIPNAME( 0x4000, 0x4000, "Starting Energy" ) - PORT_DIPSETTING( 0x0000, "200" ) - PORT_DIPSETTING( 0x4000, "230" ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x8000, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( ddrago3b ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // punch - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // jump - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) // kick - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x0c00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x1000, 0x1000, "Continue Discount" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( On ) ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Player Vs. Player Damage" ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x1000, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x2000, 0x2000, "Stage Clear Energy" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, "50" ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_DIPNAME( 0x0100, 0x0100, "Starting Energy" ) - PORT_DIPSETTING( 0x0000, "200" ) - PORT_DIPSETTING( 0x0100, "230" ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0200, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( ctribe ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // punch - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // jump - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x0c00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x1000, 0x1000, "Continue Discount" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( On ) ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, "Less than Difficult" ) - PORT_DIPSETTING( 0x0000, "Difficult" ) - PORT_DIPNAME( 0x0400, 0x0400, "Timer Speed" ) - PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Fast" ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x1000, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x6000, 0x6000, "Stage Clear Energy" ) - PORT_DIPSETTING( 0x6000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, "50" ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0200, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static const gfx_layout tile_layout = -{ - 16,16, /* 16*16 tiles */ - 8192, /* 8192 tiles */ - 4, /* 4 bits per pixel */ - { 0, 0x40000*8, 2*0x40000*8 , 3*0x40000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every tile takes 32 consecutive bytes */ -}; - -static const gfx_layout sprite_layout = { - 16,16, /* 16*16 tiles */ - 0x90000/32, /* 4096 tiles */ - 4, /* 4 bits per pixel */ - { 0, 0x100000*8, 2*0x100000*8 , 3*0x100000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every tile takes 32 consecutive bytes */ -}; - -/* Graphics Decode Info */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tile_layout, 256, 32 }, - { REGION_GFX2, 0, &sprite_layout, 0, 16 }, - { -1 } -}; - -/* Sound Interfaces */ - -static void dd3_ymirq_handler(int irq) -{ - cpunum_set_input_line( 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); -} - -static struct YM2151interface ym2151_interface = -{ - dd3_ymirq_handler -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( ddragon3_cpu_interrupt ) { /* 6:0x177e - 5:0x176a */ - if( cpu_getiloops() == 0 ){ - cpunum_set_input_line(0, 6, HOLD_LINE); /* VBlank */ - } - else { - cpunum_set_input_line(0, 5, HOLD_LINE); /* Input Ports */ - } -} - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( ddragon3 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 12000000) // Guess - MDRV_CPU_PROGRAM_MAP(readmem, writemem) - MDRV_CPU_VBLANK_INT(ddragon3_cpu_interrupt, 2) - - MDRV_CPU_ADD_TAG("audio", Z80, 3579545) // Guess - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_sound, writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(768) - - MDRV_VIDEO_START(ddragon3) - MDRV_VIDEO_UPDATE(ddragon3) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.00) /* music */ - MDRV_SOUND_ROUTE(1, "right", 1.00) - - MDRV_SOUND_ADD(OKIM6295, 1122000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.00) /* sound fx */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.00) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ddrago3b ) - MDRV_IMPORT_FROM(ddragon3) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dd3b_readmem, dd3b_writemem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ctribe ) - MDRV_IMPORT_FROM(ddragon3) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ctribe_readmem,ctribe_writemem) - - MDRV_CPU_MODIFY("audio") - MDRV_CPU_PROGRAM_MAP(ctribe_readmem_sound,ctribe_writemem_sound) - - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_VIDEO_UPDATE(ctribe) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( ddragon3 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "30a14", 0x00001, 0x40000, CRC(f42fe016) SHA1(11511aa43caa12b36a795bfaefee824821282523) ) - ROM_LOAD16_BYTE( "30a15", 0x00000, 0x20000, CRC(ad50e92c) SHA1(facac5bbe11716d076a40eacbb67f7caab7a4a27) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "dd3.06", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dd3.f", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) /* Background */ - ROM_LOAD( "dd3.e", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "dd3.b", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "dd3.a", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - /* sprites */ - ROM_LOAD( "dd3.3e", 0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) //4a - ROM_LOAD( "dd3.3d", 0x020000, 0x20000, CRC(37a1c335) SHA1(de70ba51788b601591c3aff71cb94aae349b272d) ) //3a - ROM_LOAD( "dd3.3c", 0x040000, 0x20000, CRC(2bcfe63c) SHA1(678ef0e7cc38e4df1e1d1e3f5cba6601aa520ec6) ) //2a - ROM_LOAD( "dd3.3b", 0x060000, 0x20000, CRC(b864cf17) SHA1(39a5155f40ba500bf201acca6f7d230cb0ea8309) ) //1a - ROM_LOAD( "dd3.3a", 0x080000, 0x10000, CRC(20d64bea) SHA1(c2bd86bc5310f13f158ca2f93cfc57e5dbf01f7e) ) //5a - - ROM_LOAD( "dd3.2e", 0x100000, 0x20000, CRC(8c71eb06) SHA1(e47acf9e2d5eeec0cff9654210a43c690a45d447) ) //4b - ROM_LOAD( "dd3.2d", 0x120000, 0x20000, CRC(3e134be9) SHA1(0a75b56353bed2743f7ce8f3f74379fc9f0d3cb9) ) //3b - ROM_LOAD( "dd3.2c", 0x140000, 0x20000, CRC(b4115ef0) SHA1(d90943f75051c7590a0effcc30fa813890c9ad11) ) //2b - ROM_LOAD( "dd3.2b", 0x160000, 0x20000, CRC(4639333d) SHA1(8e3c982d6fa38cbec42e8de780f165547b5b0271) ) //1b - ROM_LOAD( "dd3.2a", 0x180000, 0x10000, CRC(785d71b0) SHA1(e3f63f6984589d4d6ec6200ae33ce12610d27774) ) //5b - - ROM_LOAD( "dd3.1e", 0x200000, 0x20000, CRC(04420cc8) SHA1(ed148c52374bbd0d29c12070ea1499333fc04449) ) //4c - ROM_LOAD( "dd3.1d", 0x220000, 0x20000, CRC(33f97b2f) SHA1(40dc5357caa17ed6673588422332966ee97752b7) ) //3c - ROM_LOAD( "dd3.1c", 0x240000, 0x20000, CRC(0f9a8f2a) SHA1(d7e46d32067d3f8b3bacbf96ea313645a9a48410) ) //2c - ROM_LOAD( "dd3.1b", 0x260000, 0x20000, CRC(15c91772) SHA1(8578b6c501e3af64863bd6b28ef59c6884dfe028) ) //1c - ROM_LOAD( "dd3.1a", 0x280000, 0x10000, CRC(15e43d12) SHA1(b51cbd0c4c38b802e60616e11795b1ac43bfcb01) ) //5c - - ROM_LOAD( "dd3.0e", 0x300000, 0x20000, CRC(894734b3) SHA1(46fa174a303e85f439254976252835626c4b2ddc) ) //4d - ROM_LOAD( "dd3.0d", 0x320000, 0x20000, CRC(cd504584) SHA1(674481b524853dbfcb7d173d58250b1be8464313) ) //3d - ROM_LOAD( "dd3.0c", 0x340000, 0x20000, CRC(38e8a9ad) SHA1(1c66acde8f72fa7c6415a7aadc2dbf4300446c88) ) //2d - ROM_LOAD( "dd3.0b", 0x360000, 0x20000, CRC(80c1cb74) SHA1(5558fa36b238cff1bee9df921e77d7de2062bf15) ) //1d - ROM_LOAD( "dd3.0a", 0x380000, 0x10000, CRC(5a47e7a4) SHA1(74b9dff6e3d5fe22ea505dc439121ff64889769c) ) //5d - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM Samples */ - ROM_LOAD( "dd3.j7", 0x000000, 0x40000, CRC(3af21dbe) SHA1(295d0b7f33c55ef37a71382a22edd8fc97fa5353) ) - ROM_LOAD( "dd3.j8", 0x040000, 0x40000, CRC(c28b53cd) SHA1(93d29669ec899fd5852f61b1d91d0a90cc30e192) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "mb7114h.38", 0x0000, 0x0100, CRC(113c7443) SHA1(7b0b13e9f0c219f6d436aeec06494734d1f4a599) ) -ROM_END - -ROM_START( ddrago3j ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "30j15", 0x00001, 0x40000, CRC(40618cbc) SHA1(cb05498003a45d773983501d3a0f1584a25dcdd3) ) - ROM_LOAD16_BYTE( "30j14", 0x00000, 0x20000, CRC(96827e80) SHA1(499c0c67d55ff4816ad8832d1d8836eb7432bd13) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "dd3.06", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dd3.f", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) /* Background */ - ROM_LOAD( "dd3.e", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "dd3.b", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "dd3.a", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - /* sprites */ - ROM_LOAD( "dd3.3e", 0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) //4a - ROM_LOAD( "dd3.3d", 0x020000, 0x20000, CRC(37a1c335) SHA1(de70ba51788b601591c3aff71cb94aae349b272d) ) //3a - ROM_LOAD( "dd3.3c", 0x040000, 0x20000, CRC(2bcfe63c) SHA1(678ef0e7cc38e4df1e1d1e3f5cba6601aa520ec6) ) //2a - ROM_LOAD( "dd3.3b", 0x060000, 0x20000, CRC(b864cf17) SHA1(39a5155f40ba500bf201acca6f7d230cb0ea8309) ) //1a - ROM_LOAD( "30j12-0", 0x080000, 0x10000, CRC(1e9290d7) SHA1(77e660d2dc9a0e2c4c8ceb3e47b7ce674bceb34a) ) //5a - - ROM_LOAD( "dd3.2e", 0x100000, 0x20000, CRC(8c71eb06) SHA1(e47acf9e2d5eeec0cff9654210a43c690a45d447) ) //4b - ROM_LOAD( "dd3.2d", 0x120000, 0x20000, CRC(3e134be9) SHA1(0a75b56353bed2743f7ce8f3f74379fc9f0d3cb9) ) //3b - ROM_LOAD( "dd3.2c", 0x140000, 0x20000, CRC(b4115ef0) SHA1(d90943f75051c7590a0effcc30fa813890c9ad11) ) //2b - ROM_LOAD( "dd3.2b", 0x160000, 0x20000, CRC(4639333d) SHA1(8e3c982d6fa38cbec42e8de780f165547b5b0271) ) //1b - ROM_LOAD( "30j11-0", 0x180000, 0x10000, CRC(99195b2a) SHA1(d1c0e1855aed22f169717f94d78bc326e68e3064) ) //5b - - ROM_LOAD( "dd3.1e", 0x200000, 0x20000, CRC(04420cc8) SHA1(ed148c52374bbd0d29c12070ea1499333fc04449) ) //4c - ROM_LOAD( "dd3.1d", 0x220000, 0x20000, CRC(33f97b2f) SHA1(40dc5357caa17ed6673588422332966ee97752b7) ) //3c - ROM_LOAD( "dd3.1c", 0x240000, 0x20000, CRC(0f9a8f2a) SHA1(d7e46d32067d3f8b3bacbf96ea313645a9a48410) ) //2c - ROM_LOAD( "dd3.1b", 0x260000, 0x20000, CRC(15c91772) SHA1(8578b6c501e3af64863bd6b28ef59c6884dfe028) ) //1c - ROM_LOAD( "30a10-0", 0x280000, 0x10000, CRC(e3879b5d) SHA1(fc87aedb0f4964a8d261d86121fe8544b330bed9) ) //5c - - ROM_LOAD( "dd3.0e", 0x300000, 0x20000, CRC(894734b3) SHA1(46fa174a303e85f439254976252835626c4b2ddc) ) //4d - ROM_LOAD( "dd3.0d", 0x320000, 0x20000, CRC(cd504584) SHA1(674481b524853dbfcb7d173d58250b1be8464313) ) //3d - ROM_LOAD( "dd3.0c", 0x340000, 0x20000, CRC(38e8a9ad) SHA1(1c66acde8f72fa7c6415a7aadc2dbf4300446c88) ) //2d - ROM_LOAD( "dd3.0b", 0x360000, 0x20000, CRC(80c1cb74) SHA1(5558fa36b238cff1bee9df921e77d7de2062bf15) ) //1d - ROM_LOAD( "30j9-0", 0x380000, 0x10000, CRC(2759ae84) SHA1(02c70958259f56174ce2ba2db56040dad72be02b) ) //5d - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM Samples */ - ROM_LOAD( "dd3.j7", 0x000000, 0x40000, CRC(3af21dbe) SHA1(295d0b7f33c55ef37a71382a22edd8fc97fa5353) ) - ROM_LOAD( "dd3.j8", 0x040000, 0x40000, CRC(c28b53cd) SHA1(93d29669ec899fd5852f61b1d91d0a90cc30e192) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "mb7114h.38", 0x0000, 0x0100, CRC(113c7443) SHA1(7b0b13e9f0c219f6d436aeec06494734d1f4a599) ) -ROM_END - -ROM_START( ddrago3b ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "dd3.01", 0x00001, 0x20000, CRC(68321d8b) SHA1(bd34d361e8ef18ef2b7e8bfe438b1b098c3151b5) ) - ROM_LOAD16_BYTE( "dd3.03", 0x00000, 0x20000, CRC(bc05763b) SHA1(49f661fdc98bd43a6622945e9aa8d8e7a7dc1ce6) ) - ROM_LOAD16_BYTE( "dd3.02", 0x40001, 0x20000, CRC(38d9ae75) SHA1(d42e1d9c704c66bad94e14d14f5e0b7209cc938e) ) - /* No EVEN rom! */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "dd3.06", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - /* Background */ - ROM_LOAD( "dd3.f", 0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) ) - ROM_LOAD( "dd3.e", 0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) ) - ROM_LOAD( "dd3.b", 0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) ) - ROM_LOAD( "dd3.a", 0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - /* sprites */ - ROM_LOAD( "dd3.3e", 0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) //4a - ROM_LOAD( "dd3.3d", 0x020000, 0x20000, CRC(37a1c335) SHA1(de70ba51788b601591c3aff71cb94aae349b272d) ) //3a - ROM_LOAD( "dd3.3c", 0x040000, 0x20000, CRC(2bcfe63c) SHA1(678ef0e7cc38e4df1e1d1e3f5cba6601aa520ec6) ) //2a - ROM_LOAD( "dd3.3b", 0x060000, 0x20000, CRC(b864cf17) SHA1(39a5155f40ba500bf201acca6f7d230cb0ea8309) ) //1a - ROM_LOAD( "dd3.3a", 0x080000, 0x10000, CRC(20d64bea) SHA1(c2bd86bc5310f13f158ca2f93cfc57e5dbf01f7e) ) //5a - - ROM_LOAD( "dd3.2e", 0x100000, 0x20000, CRC(8c71eb06) SHA1(e47acf9e2d5eeec0cff9654210a43c690a45d447) ) //4b - ROM_LOAD( "dd3.2d", 0x120000, 0x20000, CRC(3e134be9) SHA1(0a75b56353bed2743f7ce8f3f74379fc9f0d3cb9) ) //3b - ROM_LOAD( "dd3.2c", 0x140000, 0x20000, CRC(b4115ef0) SHA1(d90943f75051c7590a0effcc30fa813890c9ad11) ) //2b - ROM_LOAD( "dd3.2b", 0x160000, 0x20000, CRC(4639333d) SHA1(8e3c982d6fa38cbec42e8de780f165547b5b0271) ) //1b - ROM_LOAD( "dd3.2a", 0x180000, 0x10000, CRC(785d71b0) SHA1(e3f63f6984589d4d6ec6200ae33ce12610d27774) ) //5b - - ROM_LOAD( "dd3.1e", 0x200000, 0x20000, CRC(04420cc8) SHA1(ed148c52374bbd0d29c12070ea1499333fc04449) ) //4c - ROM_LOAD( "dd3.1d", 0x220000, 0x20000, CRC(33f97b2f) SHA1(40dc5357caa17ed6673588422332966ee97752b7) ) //3c - ROM_LOAD( "dd3.1c", 0x240000, 0x20000, CRC(0f9a8f2a) SHA1(d7e46d32067d3f8b3bacbf96ea313645a9a48410) ) //2c - ROM_LOAD( "dd3.1b", 0x260000, 0x20000, CRC(15c91772) SHA1(8578b6c501e3af64863bd6b28ef59c6884dfe028) ) //1c - ROM_LOAD( "dd3.1a", 0x280000, 0x10000, CRC(15e43d12) SHA1(b51cbd0c4c38b802e60616e11795b1ac43bfcb01) ) //5c - - ROM_LOAD( "dd3.0e", 0x300000, 0x20000, CRC(894734b3) SHA1(46fa174a303e85f439254976252835626c4b2ddc) ) //4d - ROM_LOAD( "dd3.0d", 0x320000, 0x20000, CRC(cd504584) SHA1(674481b524853dbfcb7d173d58250b1be8464313) ) //3d - ROM_LOAD( "dd3.0c", 0x340000, 0x20000, CRC(38e8a9ad) SHA1(1c66acde8f72fa7c6415a7aadc2dbf4300446c88) ) //2d - ROM_LOAD( "dd3.0b", 0x360000, 0x20000, CRC(80c1cb74) SHA1(5558fa36b238cff1bee9df921e77d7de2062bf15) ) //1d - ROM_LOAD( "dd3.0a", 0x380000, 0x10000, CRC(5a47e7a4) SHA1(74b9dff6e3d5fe22ea505dc439121ff64889769c) ) //5d - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM Samples */ - ROM_LOAD( "dd3.j7", 0x000000, 0x40000, CRC(3af21dbe) SHA1(295d0b7f33c55ef37a71382a22edd8fc97fa5353) ) - ROM_LOAD( "dd3.j8", 0x040000, 0x40000, CRC(c28b53cd) SHA1(93d29669ec899fd5852f61b1d91d0a90cc30e192) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "mb7114h.38", 0x0000, 0x0100, CRC(113c7443) SHA1(7b0b13e9f0c219f6d436aeec06494734d1f4a599) ) -ROM_END - -ROM_START( ctribe ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "ic-26", 0x00001, 0x20000, CRC(c46b2e63) SHA1(86ace715dca48c78a46da1d102de47e5f948a86c) ) - ROM_LOAD16_BYTE( "ic-25", 0x00000, 0x20000, CRC(3221c755) SHA1(0f6fe5cd6947f6547585eedb7fc5e6af8544b1f7) ) - ROM_LOAD16_BYTE( "ct_ep2.rom", 0x40001, 0x10000, CRC(8c2c6dbd) SHA1(b99b9be6e0bdc8340fedd258819c4df587926a84) ) - /* No EVEN rom! */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "ct_ep4.rom", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ct_mr7.rom", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) /* Background */ - ROM_LOAD( "ct_mr6.rom", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "ct_mr5.rom", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "ct_mr4.rom", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ct_mr3.rom", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) /* Sprites */ - ROM_LOAD( "ct_ep5.rom", 0x080000, 0x10000, CRC(972faddb) SHA1(f2b211e8f8301667e6c9a3ce9612e39b16e66a67) ) - ROM_LOAD( "ct_mr2.rom", 0x100000, 0x80000, CRC(8c796707) SHA1(7417ad0413083876ed65a8612845ccb0d2717530) ) - ROM_LOAD( "ct_ep6.rom", 0x180000, 0x10000, CRC(eb3ab374) SHA1(db66cb7976c111fa76a3a211e96ad1d7b78ce0ad) ) - ROM_LOAD( "ct_mr1.rom", 0x200000, 0x80000, CRC(1c9badbd) SHA1(d28f6d684d88448eaa3feae0bba2f5a836d89bd7) ) - ROM_LOAD( "ct_ep7.rom", 0x280000, 0x10000, CRC(c602ac97) SHA1(44440739636b684c6dcac837f59664120c9ba5f3) ) - ROM_LOAD( "ct_mr0.rom", 0x300000, 0x80000, CRC(ba73c49e) SHA1(830099027ede1f7c56bb0bf3cdef3018b92e0b87) ) - ROM_LOAD( "ct_ep8.rom", 0x380000, 0x10000, CRC(4da1d8e5) SHA1(568e9e8d00f1b1ca27c28df5fc0ffc74ad91da7e) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* ADPCM Samples */ - ROM_LOAD( "ct_mr8.rom", 0x020000, 0x20000, CRC(9963a6be) SHA1(b09b8f52b7fe5ceac34bc7d70c235d60d808fcbf) ) - ROM_CONTINUE( 0x000000, 0x20000 ) -ROM_END - -ROM_START( ctribeb ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for cpu code */ - ROM_LOAD16_BYTE( "ct_ep1.rom", 0x00001, 0x20000, CRC(9cfa997f) SHA1(ee49b4b9e9cd29616f244fdf3912ef743e2404ce) ) - ROM_LOAD16_BYTE( "ct_ep3.rom", 0x00000, 0x20000, CRC(2ece8681) SHA1(17ee2ceb893e2eb08fa4cabcdebcec02bee16cda) ) - ROM_LOAD16_BYTE( "ct_ep2.rom", 0x40001, 0x10000, CRC(8c2c6dbd) SHA1(b99b9be6e0bdc8340fedd258819c4df587926a84) ) - /* No EVEN rom! */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "ct_ep4.rom", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ct_mr7.rom", 0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) /* Background */ - ROM_LOAD( "ct_mr6.rom", 0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) - ROM_LOAD( "ct_mr5.rom", 0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) - ROM_LOAD( "ct_mr4.rom", 0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ct_mr3.rom", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) /* Sprites */ - ROM_LOAD( "ct_ep5.rom", 0x080000, 0x10000, CRC(972faddb) SHA1(f2b211e8f8301667e6c9a3ce9612e39b16e66a67) ) - ROM_LOAD( "ct_mr2.rom", 0x100000, 0x80000, CRC(8c796707) SHA1(7417ad0413083876ed65a8612845ccb0d2717530) ) - ROM_LOAD( "ct_ep6.rom", 0x180000, 0x10000, CRC(eb3ab374) SHA1(db66cb7976c111fa76a3a211e96ad1d7b78ce0ad) ) - ROM_LOAD( "ct_mr1.rom", 0x200000, 0x80000, CRC(1c9badbd) SHA1(d28f6d684d88448eaa3feae0bba2f5a836d89bd7) ) - ROM_LOAD( "ct_ep7.rom", 0x280000, 0x10000, CRC(c602ac97) SHA1(44440739636b684c6dcac837f59664120c9ba5f3) ) - ROM_LOAD( "ct_mr0.rom", 0x300000, 0x80000, CRC(ba73c49e) SHA1(830099027ede1f7c56bb0bf3cdef3018b92e0b87) ) - ROM_LOAD( "ct_ep8.rom", 0x380000, 0x10000, CRC(4da1d8e5) SHA1(568e9e8d00f1b1ca27c28df5fc0ffc74ad91da7e) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* ADPCM Samples */ - ROM_LOAD( "ct_mr8.rom", 0x020000, 0x20000, CRC(9963a6be) SHA1(b09b8f52b7fe5ceac34bc7d70c235d60d808fcbf) ) - ROM_CONTINUE( 0x000000, 0x20000 ) -ROM_END - -/* Game Drivers */ - -GAME( 1990, ddragon3, 0, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (US)", 0 ) -GAME( 1990, ddrago3j, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (Japan)", 0 ) -GAME( 1990, ddrago3b, ddragon3, ddrago3b, ddrago3b, 0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", 0 ) -GAME( 1990, ctribe, 0, ctribe, ctribe, 0, ROT0, "Technos", "The Combatribes (US)", 0 ) -GAME( 1990, ctribeb, ctribe, ctribe, ctribe, 0, ROT0, "bootleg", "The Combatribes (bootleg)", 0 ) diff --git a/src/drivers/deco32.c b/src/drivers/deco32.c deleted file mode 100644 index 7e4daa1ab..000000000 --- a/src/drivers/deco32.c +++ /dev/null @@ -1,3273 +0,0 @@ -/*************************************************************************** - - Data East 32 bit ARM based games: - - Captain America - Dragon Gun - Fighter's History - Locked 'N Loaded - Night Slashers - Tattoo Assassins - - - Emulation by Bryan McPhail, mish@tendril.co.uk. Thank you to Tim, - Avedis and Stiletto for many things including work on Fighter's - History protection and tracking down Tattoo Assassins! - - Captain America & Fighter's History - reset with both start buttons - held down for test mode. Reset with player 1 start held in Fighter's - History for 'Pattern Editor'. - - Tattoo Assassins is a prototype, it is thought only 25 test units - were manufactured and distributed to test arcades before the game - was recalled. TA is the only game developed by Data East Pinball - in USA, rather than Data East Corporation in Japan. - - Tattoo Assassins uses DE Pinball soundboard 520-5077-00 R - - - Todo: - - Tattoo Assassins & Dragongun use an unemulated chip (Ace/Jack) for - special blending effects. It's exact effect is unclear. - - Video backgrounds in Dragongun? - - Locked'N Loaded (parent set) is a slightly different hardware - revision: board # DE-0420-1 where the US set is DE-0359-2. - The sound is _not_ hooked up correctly for this set. - - - -Locked 'n Loaded (US) -Data East Corporation (c) 1994 - -DE-0359-2 PCB Layout - Same PCB as used for Dragon Gun, see comment below: - ------------------------------------------------------------- -| 32.220MHz 28.000MHz 8M-7 8M-3 | -| MBM-05 MBM-03 | -| NH06-0 HuC6280A 8M-5 8M-1 | -| YM2151 MBM-04 MBM-02 | ---+ | ---+ MBM-07 | -| MAR-07 74 | -| M6295 M6295 MBM-06 MBM-01 NH05-0 | -| M6295 MBM-00 NH04-0 | -| 74 | -|J | -|A | -|M | -|M 2M-5 2M-4 | -|A 113 NH03-0 NH01-0 | -| 101 2M-7 2M-6 | ---+ NH02-0 NH00-0 | ---+ DSW1 146 | -|A 93C45 | -|U +-------------------------+ -|X | DE-0406-1 | ---| ADC0808CCN | AUX PCB with | - --------------------------------| Gun Connectors | - --------------------------+ - -2M-4 through 2M-7 are empty sockets for additional program ROMs (used by dragon Gun) -Odd numbered 8M are empty sockets -AUX edge connector is a 48 pin type simular to those used on Namco System 11, 12, ect - - -DE-0360-4 ROM board Layout: - ------------------------------------------------------------- -| CN2 TC524256BZ-10 TC524256BZ-10 MAR-17| -| TC524256BZ-10 TC524256BZ-10 MAR-18| -| HM65256BLSP-10 TC524256BZ-10 TC524256BZ-10 MAR-19| -| 16 of these chips TC524256BZ-10 TC524256BZ-10 MAR-20| -| in this area MAR-21| -| Intel i750 MAR-22| -| 187 23.000MHz MAR-23| -|MBM-08 MAR-24| -|MBM-09 20.0000MHz MAR-25| -|MBM-10 145 MAR-26| -|MBM-11 186 MAR-27| -|MBM-12 MAR-28| -|MBM-13 | -|MBM-14 PAL16L8BCN Intel i750 | -|MBM-15 PAL16L8BCN | -| CN1 25.000MHz PAL16L8BCN | ------------------------------------------------------------- - -CN1 = Triple row 32 pin connector -CN2 = Dual row 32 pin connector - -Locked 'n Loaded appears to be a conversion of Dragon Gun (c) 1993 as -there are 12 surface mounted GFX roms and 1 surface mounted sample rom -left over from the conversion. The roms labeled "MAR-xx" are those -from Dragon Gun. - - - -Night Slashers -Data East, 1993 - -PCB Layout ----------- - -DE-0397-0 DEC-22VO -|-----------------------------------------------------| -| TA8205AH Z80 |-----| HBM-07 | -| 6164 YM2151 | 52 | | -| LX02 | | HBM-09 HBM-06 | -| YM3012 32MHz |-----| | -| JP1 HBM-11 93C45 HBM-05 | -|CN2 HBM-10 |-----| | -| M6295(1) | 52 | HBM-04 | -| M6295(2) | | | -| |-----| |-----| |-----| |-----| HBM-03 | -|J | 104 | | 153 | | 52 | | -|A | | | | |-----| | | HBM-02 | -|M |-----| |-----| | 153 | |-----| | -|M | | 28.322MHz| -|A |-----| | -| |-----| PAL | -| | 99 | PROM |-----| 6164 HBM-01 | -| | | | 74 | 6164 | -| |-----| | | HBM-00 | -| |-----| |-----| |-----| | -| | 153 | | 200 | |-----| 6164 | -| | | | | | 141 | 6164 | -| |-----| |-----| | | PAL | -|TEST_SW |-----| PAL |-----| | -| | 156 | | -| LH52250 LH52250 LX-01 | | | -| CN3 LH52250 LH52250 LX-00 |-----| | -|-----------------------------------------------------| -Notes: - The CPU is chip 156. It's an encrypted ARM-based CPU. The CPU is running at 7.0805MHz [28.322/4] - - Z80B - Goldstar Z8400B, running at 3.5555MHz [32/9] - YM2151 - Yamaha YM2151 sound chip, running at 3.5555MHz [32/9] - OKI M6295 - Oki M6295 PCM Sample chip, (1) running at 1.000MHz [32/32]. Sample rate = 1000000 / 132 - (2) running at 2.000MHz [32/16]. Sample rate = 2000000 / 132 - 6164 - UM6164BK-20 8K x8 SRAM - LH52250 - Sharp LH52250 32K x8 SRAM - 93C45 - 128bytes x8 Serial EEPROM - PALs - PAL 16L8ACN (x 2, near program ROMs, one at 3D labelled 'VM-00', one at 4D labelled 'VM-01') - PAL 16l8ACN (near chip 99, located at 8J, labelled 'VM-02') - HSync - 15.86kHz - VSync - 58Hz - Custom ICs- - DE # Package Type Additional #'s (for reference of scratched-off chips on other PCB's) - ------------------------------------------------------------------------------------------------------ - 156 (CPU) 100 Pin PQFP 932EV 301801 - 141 160 Pin PQFP 24220F008 - 74 160 Pin PQFP 24220F009 - 99 208 Pin PQFP L7A0967 - 52 (x3) 128 Pin PQFP 9322EV 298251 VC5259-0001 - 153 (x3) 144 Pin PQFP L7A0888 9328 - 104 100 Pin PQFP L7A0717 9148 - 200 100 Pin PQFP JAPAN 9320PD027 (chip is darker black) - - Other - There's a small push button near the JAMMA connector to access test mode. - All settings are via an on-board menu. - - All pinouts conform to standard JAMMA pinout. Joystick is 8-way with 3 buttons used. - - JP1: 1-2 Sound Output in MONO - 2-3 Sound Output in STEREO - - CN2: 4 Pin connector (use when JP1 = 2-3) - Pin # Signal - 1 L-Speaker + - 2 L-Speaker - - 3 R-Speaker - - 4 R-Speaker + - - CN3: 15 Pin connector (Player 3) - Pin # Signal - 1 COIN SW3 - 2 3P PUSH 3 - 3 3P LEFT - 4 3P RIGHT - 5 3P UP - 6 3P DOWN - 7 3P PUSH 1 - 8 3P PUSH 2 - 9-13 NOT USED - 14-15 GND - - - ROMs - MAINPRG1.1F HN27C4096 \ - MAINPRG2.2F HN27C4096 / Main Program (no ROM stickers attached, DE ROM code unknown) - - Japanese Version - LX01-.2F HN27C4096 \ - LX00-.1F HN27C4096 / Main Program (Japan version) - - MBH-00.8C 42 pin 16M MASK (read as 27C160) \ - MBH-01.9C 42 pin 16M MASK (read as 27C160) | - MBH-02.14C 42 pin 16M MASK (read as 27C160) | - MBH-03.15C 40 pin 4M MASK (read as MX27C4100) | - MBH-04.16C 42 pin 16M MASK (read as 27C160) | - MBH-05.17C 40 pin 4M MASK (read as MX27C4100) | GFX - MBH-06.18C 32 pin 8M MASK (read as 27C080) | - MBH-07.19C 32 pin 2M MASK (read as 27C020) | - MBH-08.16E 40 pin 4M MASK (read as MX27C2100) | - MBH-09.18E 40 pin 4M MASK (read as MX27C2100) / - - MBH-10.14L 32 pin 4M MASK (read as 27C040) \ - MBH-11.16L 32 pin 4M MASK (read as 27C040) / Sound (Samples) - - LX02-.17L 27C512 Sound Program - - PROM.9J Fujitsu MB7124 compatible with 82S147 Labelled 'LN-00' - -***************************************************************************/ - -#include "driver.h" -#include "cpu/arm/arm.h" -#include "cpu/h6280/h6280.h" -#include "cpu/m6809/m6809.h" -#include "decocrpt.h" -#include "decoprot.h" -#include "machine/eeprom.h" -#include "deco32.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" -#include "sound/bsmt2000.h" - -static UINT32 *deco32_ram; -static int raster_enable,raster_offset; -static void *raster_irq_timer; -static UINT8 nslasher_sound_irq; - -extern void decrypt156(void); - -/**********************************************************************************/ - -static void interrupt_gen(int scanline) -{ - /* Save state of scroll registers before the IRQ */ - deco32_raster_display_list[deco32_raster_display_position++]=scanline; - deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[1]&0xffff; - deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[2]&0xffff; - deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[3]&0xffff; - deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[4]&0xffff; - - cpunum_set_input_line(0, ARM_IRQ_LINE, HOLD_LINE); - timer_adjust(raster_irq_timer,TIME_NEVER,0,0); -} - -static READ32_HANDLER( deco32_irq_controller_r ) -{ - switch (offset) { - case 2: /* Raster IRQ ACK - value read is not used */ - cpunum_set_input_line(0, ARM_IRQ_LINE, CLEAR_LINE); - return 0; - - case 3: /* Irq controller - - Bit 0: 1 = Vblank active - Bit 1: ? (Hblank active? Captain America raster IRQ waits for this to go low) - Bit 2: - Bit 3: - Bit 4: VBL Irq - Bit 5: Raster IRQ - Bit 6: Lightgun IRQ (on Lock N Load only) - Bit 7: - */ - if (cpu_getvblank()) - return 0xffffff80 | 0x1 | 0x10; /* Assume VBL takes priority over possible raster/lightgun irq */ - - return 0xffffff80 | cpu_getvblank() | (cpu_getiloops() ? 0x40 : 0x20); -// return 0xffffff80 | cpu_getvblank() | (0x40); //test for lock load guns - } - - logerror("%08x: Unmapped IRQ read %08x (%08x)\n",activecpu_get_pc(),offset,mem_mask); - return 0xffffffff; -} - -static WRITE32_HANDLER( deco32_irq_controller_w ) -{ - int scanline; - - switch (offset) { - case 0: /* IRQ enable - probably an irq mask, but only values used are 0xc8 and 0xca */ -// logerror("%08x: IRQ write %d %08x\n",activecpu_get_pc(),offset,data); - raster_enable=(data&0xff)==0xc8; /* 0xca seems to be off */ - break; - - case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */ - scanline=(data&0xff)+raster_offset; /* Captain America seems to need (scanline-1), may be related to unemulated hblank? */ - if (raster_enable && scanline>0 && scanline<240) - timer_adjust(raster_irq_timer,cpu_getscanlinetime(scanline),scanline,TIME_NEVER); - else - timer_adjust(raster_irq_timer,TIME_NEVER,0,0); - break; - case 2: /* VBL irq ack */ - break; - } -} - -static WRITE32_HANDLER( deco32_sound_w ) -{ - soundlatch_w(0,data & 0xff); - cpunum_set_input_line(1,0,HOLD_LINE); -} - -static READ32_HANDLER( deco32_71_r ) -{ - /* Bit 0x80 goes high when sprite DMA is complete, and low - while it's in progress, we don't bother to emulate it */ - return 0xffffffff; -} - -static READ32_HANDLER( captaven_prot_r ) -{ - /* Protection/IO chip 75, same as Lemmings & Robocop 2 */ - switch (offset<<2) { - case 0x0a0: return readinputport(0); /* Player 1 & 2 controls */ - case 0x158: return readinputport(1); /* Player 3 & 4 controls */ - case 0xed4: return readinputport(2); /* Misc */ - } - - logerror("%08x: Unmapped protection read %04x\n",activecpu_get_pc(),offset<<2); - return 0xffffffff; -} - -static READ32_HANDLER( captaven_soundcpu_r ) -{ - /* Top byte - top bit low == sound cpu busy, bottom word is dips */ - return 0xffff0000 | readinputport(3); -} - -static READ32_HANDLER( fghthist_control_r ) -{ - switch (offset) { - case 0: return 0xffff0000 | readinputport(0); - case 1: return 0xffff0000 | readinputport(1); //check top bits?? - case 2: return 0xfffffffe | EEPROM_read_bit(); - } - - return 0xffffffff; -} - -static WRITE32_HANDLER( fghthist_eeprom_w ) -{ - if (ACCESSING_LSB32) { - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x10); - EEPROM_set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); - } - else if (mem_mask&0x0000ff00) - { - // Volume port - } -} - -/**********************************************************************************/ - -static READ32_HANDLER( dragngun_service_r ) -{ -// logerror("%08x:Read service\n",activecpu_get_pc()); - return readinputport(3); -} - -static READ32_HANDLER( lockload_gun_mirror_r ) -{ -//logerror("%08x:Read gun %d\n",activecpu_get_pc(),offset); -//return ((rand()%0xffff)<<16) | rand()%0xffff; - if (offset) /* Mirror of player 1 and player 2 fire buttons */ - return readinputport(5) | ((rand()%0xff)<<16); - return readinputport(4) | readinputport(6) | (readinputport(6)<<16) | (readinputport(6)<<24); //((rand()%0xff)<<16); -} - -static READ32_HANDLER( dragngun_prot_r ) -{ -// logerror("%08x:Read prot %08x (%08x)\n",activecpu_get_pc(),offset<<1,mem_mask); - - static int strobe=0; - if (!strobe) strobe=8; - else strobe=0; - -//definitely vblank in locked load - - switch (offset<<1) { - case 0x140/2: return 0xffff0000 | readinputport(0); /* IN0 */ - case 0xadc/2: return 0xffff0000 | readinputport(1) | strobe; /* IN1 */ - case 0x6a0/2: return 0xffff0000 | readinputport(2); /* IN2 (Dip switch) */ - } - return 0xffffffff; -} - -static int dragngun_lightgun_port; - -static READ32_HANDLER( dragngun_lightgun_r ) -{ - /* Ports 0-3 are read, but seem unused */ - switch (dragngun_lightgun_port) { - case 4: return readinputport(4); break; - case 5: return readinputport(5); break; - case 6: return readinputport(6); break; - case 7: return readinputport(7); break; - } - -// logerror("Illegal lightgun port %d read \n",dragngun_lightgun_port); - return 0; -} - -static WRITE32_HANDLER( dragngun_lightgun_w ) -{ -// logerror("Lightgun port %d\n",dragngun_lightgun_port); - dragngun_lightgun_port=offset; -} - -static READ32_HANDLER( dragngun_eeprom_r ) -{ - return 0xfffffffe | EEPROM_read_bit(); -} - -static WRITE32_HANDLER( dragngun_eeprom_w ) -{ - if (ACCESSING_LSB32) { - EEPROM_set_clock_line((data & 0x2) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x1); - EEPROM_set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE); - return; - } - logerror("%08x:Write control 1 %08x %08x\n",activecpu_get_pc(),offset,data); -} - -static READ32_HANDLER(dragngun_oki_2_r) -{ - return OKIM6295_status_2_r(0); -} - -static WRITE32_HANDLER(dragngun_oki_2_w) -{ - OKIM6295_data_2_w(0,data&0xff); -} - -/**********************************************************************************/ - -static int tattass_eprom_bit; - -static READ32_HANDLER( tattass_prot_r ) -{ - switch (offset<<1) { - case 0x280: return readinputport(0) << 16; /* IN0 */ - case 0x4c4: return readinputport(1) << 16; /* IN1 */ - case 0x35a: return tattass_eprom_bit << 16; - } - - logerror("%08x:Read prot %08x (%08x)\n",activecpu_get_pc(),offset<<1,mem_mask); - - return 0xffffffff; -} - -static WRITE32_HANDLER( tattass_prot_w ) -{ - /* Only sound port of chip is used - no protection */ - if (offset==0x700/4) { - /* 'Swap bits 0 and 3 to correct for design error from BSMT schematic' */ - int soundcommand = (data>>16)&0xff; - soundcommand = BITSWAP8(soundcommand,7,6,5,4,0,2,1,3); - soundlatch_w(0,soundcommand); - } -} - -static WRITE32_HANDLER( tattass_control_w ) -{ - static int lastClock=0; - static char buffer[32]; - static int bufPtr=0; - static int pendingCommand=0; /* 1 = read, 2 = write */ - static int readBitCount=0; - static int byteAddr=0; - UINT8 *eeprom=EEPROM_get_data_pointer(0); - - /* Eprom in low byte */ - if (mem_mask==0xffffff00) { /* Byte write to low byte only (different from word writing including low byte) */ - /* - The Tattoo Assassins eprom seems strange... It's 1024 bytes in size, and 8 bit - in width, but offers a 'multiple read' mode where a bit stream can be read - starting at any byte boundary. - - Multiple read mode: - Write 110aa000 [Read command, top two bits of address, 4 zeroes] - Write 00000000 [8 zeroes] - Write aaaaaaaa [Bottom 8 bits of address] - - Then bits are read back per clock, for as many bits as needed (NOT limited to byte - boundaries). - - Write mode: - Write 000aa000 [Write command, top two bits of address, 4 zeroes] - Write 00000000 [8 zeroes] - Write aaaaaaaa [Bottom 8 bits of address] - Write dddddddd [8 data bits] - - */ - if ((data&0x40)==0) { - if (bufPtr) { - int i; - logerror("Eprom reset (bit count %d): ",readBitCount); - for (i=0; i=32) { - logerror("Eprom overflow!"); - bufPtr=0; - } - - /* Handle pending read */ - if (pendingCommand==1) { - int d=readBitCount/8; - int m=7-(readBitCount%8); - int a=(byteAddr+d)%1024; - int b=eeprom[a]; - - tattass_eprom_bit=(b>>m)&1; - - readBitCount++; - lastClock=data&0x20; - return; - } - - /* Handle pending write */ - if (pendingCommand==2) { - buffer[bufPtr++]=(data&0x10)>>4; - - if (bufPtr==32) { - int b=(buffer[24]<<7)|(buffer[25]<<6)|(buffer[26]<<5)|(buffer[27]<<4) - |(buffer[28]<<3)|(buffer[29]<<2)|(buffer[30]<<1)|(buffer[31]<<0); - - eeprom[byteAddr]=b; - } - lastClock=data&0x20; - return; - } - - buffer[bufPtr++]=(data&0x10)>>4; - if (bufPtr==24) { - /* Decode addr */ - byteAddr=(buffer[3]<<9)|(buffer[4]<<8) - |(buffer[16]<<7)|(buffer[17]<<6)|(buffer[18]<<5)|(buffer[19]<<4) - |(buffer[20]<<3)|(buffer[21]<<2)|(buffer[22]<<1)|(buffer[23]<<0); - - /* Check for read command */ - if (buffer[0] && buffer[1]) { - tattass_eprom_bit=(eeprom[byteAddr]>>7)&1; - readBitCount=1; - pendingCommand=1; - } - - /* Check for write command */ - else if (buffer[0]==0x0 && buffer[1]==0x0) { - pendingCommand=2; - } - else { - logerror("Detected unknown eprom command\n"); - } - } - - } else { - if (!(data&0x40)) { - logerror("Cs set low\n"); - bufPtr=0; - } - } - - lastClock=data&0x20; - return; - } - - /* Volume in high byte */ - if (mem_mask==0xffff00ff) { - //TODO: volume attenuation == ((data>>8)&0xff); - return; - } - - /* Playfield control - Only written in full word memory accesses */ - deco32_pri_w(0,data&0x3,0); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */ - - /* Sound board reset control */ - if (data&0x80) - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); - else - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - - /* bit 0x4 fade cancel? */ - /* bit 0x8 ?? */ - /* Bit 0x100 ?? */ - //logerror("%08x: %08x data\n",data,mem_mask); -} - -/**********************************************************************************/ - -static READ32_HANDLER( nslasher_prot_r ) -{ - - switch (offset<<1) { - case 0x280: return readinputport(0) << 16| 0xffff; /* IN0 */ - case 0x4c4: return readinputport(1) << 16| 0xffff; /* IN1 */ - case 0x35a: return (EEPROM_read_bit()<< 16) | 0xffff; // Debug switch in low word?? - } - - //logerror("%08x: Read unmapped prot %08x (%08x)\n",activecpu_get_pc(),offset<<1,mem_mask); - - return 0xffffffff; -} - -static WRITE32_HANDLER( nslasher_eeprom_w ) -{ - if (ACCESSING_LSB32) - { - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x10); - EEPROM_set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); - - deco32_pri_w(0,data&0x3,0); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */ - } -} - - -static WRITE32_HANDLER( nslasher_prot_w ) -{ - //logerror("%08x:write prot %08x (%08x) %08x\n",activecpu_get_pc(),offset<<1,mem_mask,data); - - /* Only sound port of chip is used - no protection */ - if (offset==0x700/4) { - - /* bit 1 of nslasher_sound_irq specifies IRQ command writes */ - soundlatch_w(0,(data>>16)&0xff); - nslasher_sound_irq |= 0x02; - cpunum_set_input_line(1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); - } -} - -/**********************************************************************************/ - -static ADDRESS_MAP_START( captaven_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - - AM_RANGE(0x100000, 0x100007) AM_READ(deco32_71_r) - AM_RANGE(0x110000, 0x110fff) AM_READ(MRA32_RAM) /* Sprites */ - AM_RANGE(0x120000, 0x127fff) AM_READ(MRA32_RAM) /* Main RAM */ - AM_RANGE(0x130000, 0x131fff) AM_READ(MRA32_RAM) /* Palette RAM */ - AM_RANGE(0x128000, 0x128fff) AM_READ(captaven_prot_r) - AM_RANGE(0x148000, 0x14800f) AM_READ(deco32_irq_controller_r) - AM_RANGE(0x160000, 0x167fff) AM_READ(MRA32_RAM) /* Extra work RAM */ - AM_RANGE(0x168000, 0x168003) AM_READ(captaven_soundcpu_r) - - AM_RANGE(0x180000, 0x18001f) AM_READ(MRA32_RAM) - AM_RANGE(0x190000, 0x191fff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x195fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a4000, 0x1a5fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c0000, 0x1c001f) AM_READ(MRA32_RAM) - AM_RANGE(0x1d0000, 0x1d1fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e1fff) AM_READ(MRA32_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( captaven_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - - AM_RANGE(0x100000, 0x100003) AM_WRITE(buffer_spriteram32_w) - AM_RANGE(0x108000, 0x108003) AM_WRITE(MWA32_NOP) /* ? */ - AM_RANGE(0x110000, 0x110fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x120000, 0x127fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) /* Main RAM */ - AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE(deco32_sound_w) - AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_nonbuffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x148000, 0x14800f) AM_WRITE(deco32_irq_controller_w) - - AM_RANGE(0x160000, 0x167fff) AM_WRITE(MWA32_RAM) /* Additional work RAM */ - - AM_RANGE(0x178000, 0x178003) AM_WRITE(deco32_pri_w) - AM_RANGE(0x180000, 0x18001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - AM_RANGE(0x190000, 0x191fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x192000, 0x193fff) AM_WRITE(deco32_pf1_data_w) /* Mirror address - bug in program code */ - AM_RANGE(0x194000, 0x195fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - - AM_RANGE(0x1a0000, 0x1a1fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x1a4000, 0x1a5fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - AM_RANGE(0x1d0000, 0x1d1fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1e0000, 0x1e1fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fghthist_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x120020, 0x12002f) AM_READ(fghthist_control_r) - - AM_RANGE(0x168000, 0x169fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x178000, 0x178fff) AM_READ(MRA32_RAM) - AM_RANGE(0x179000, 0x179fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x182000, 0x183fff) AM_READ(MRA32_RAM) - AM_RANGE(0x184000, 0x185fff) AM_READ(MRA32_RAM) - AM_RANGE(0x192000, 0x1923ff) AM_READ(MRA32_RAM) - AM_RANGE(0x192800, 0x1928ff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x1943ff) AM_READ(MRA32_RAM) - AM_RANGE(0x194800, 0x1948ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1c4000, 0x1c5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2000, 0x1d23ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2800, 0x1d28ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4000, 0x1d43ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4800, 0x1d48ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x16c000, 0x16c01f) AM_READ(MRA32_NOP) - AM_RANGE(0x17c000, 0x17c03f) AM_READ(MRA32_NOP) - - AM_RANGE(0x200000, 0x200fff) AM_READ(deco16_146_fghthist_prot_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fghthist_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x001fff) AM_WRITE(deco32_pf1_data_w) /* Hardware bug? Test mode writes here and expects to get PF1 */ - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - AM_RANGE(0x12002c, 0x12002f) AM_WRITE(fghthist_eeprom_w) - AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE(deco32_sound_w) - AM_RANGE(0x140000, 0x140003) AM_WRITE(MWA32_NOP) /* VBL irq ack */ - //148000 - IRQ mask (ca)... - AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) - - AM_RANGE(0x178000, 0x178fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x179000, 0x179fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32_2) // ? - AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_w) - - AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x192000, 0x192fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x194000, 0x194fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1c4000, 0x1c5fff) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1d2000, 0x1d2fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1d4000, 0x1d4fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - AM_RANGE(0x1e0000, 0x1e001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - - AM_RANGE(0x200000, 0x200fff) AM_WRITE(deco16_146_fghthist_prot_w) AM_BASE(&deco32_prot_ram) - AM_RANGE(0x208800, 0x208803) AM_WRITE(MWA32_NOP) /* ? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fghthsta_memmap, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - AM_RANGE(0x140000, 0x140003) AM_WRITE(MWA32_NOP) /* VBL irq ack */ - AM_RANGE(0x150000, 0x150003) AM_WRITE(fghthist_eeprom_w) /* Volume port/Eprom */ - - AM_RANGE(0x168000, 0x169fff) AM_READ(MRA32_RAM) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) - AM_RANGE(0x16c010, 0x16c013) AM_READ(MRA32_NOP) - - AM_RANGE(0x178000, 0x179fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_w) - AM_RANGE(0x17c020, 0x17c023) AM_READ(MRA32_NOP) - - AM_RANGE(0x182000, 0x183fff) AM_READ(MRA32_RAM) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x184000, 0x185fff) AM_READ(MRA32_RAM) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x192000, 0x192fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x194000, 0x194fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - AM_RANGE(0x1a0000, 0x1a001f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_READ(MRA32_RAM) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1c4000, 0x1c5fff) AM_READ(MRA32_RAM) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1d2000, 0x1d2fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1d4000, 0x1d4fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - AM_RANGE(0x1e0000, 0x1e001f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - - AM_RANGE(0x200000, 0x200fff) AM_READ(deco16_146_fghthist_prot_r) AM_WRITE(deco16_146_fghthist_prot_w) AM_BASE(&deco32_prot_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dragngun_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r) - AM_RANGE(0x128000, 0x12800f) AM_READ(deco32_irq_controller_r) - AM_RANGE(0x130000, 0x131fff) AM_READ(MRA32_RAM) - AM_RANGE(0x138000, 0x138003) AM_READ(MRA32_NOP) /* Palette dma complete in bit 0x8? ack? return 0 else tight loop */ - - AM_RANGE(0x180000, 0x18001f) AM_READ(MRA32_RAM) - AM_RANGE(0x190000, 0x191fff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x195fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a0fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a4000, 0x1a4fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c0000, 0x1c001f) AM_READ(MRA32_RAM) - AM_RANGE(0x1d0000, 0x1d1fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4000, 0x1d5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e0fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e4000, 0x1e4fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x208000, 0x208fff) AM_READ(MRA32_RAM) - AM_RANGE(0x20c000, 0x20cfff) AM_READ(MRA32_RAM) - AM_RANGE(0x210000, 0x217fff) AM_READ(MRA32_RAM) - AM_RANGE(0x218000, 0x21ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x220000, 0x221fff) AM_READ(MRA32_RAM) /* Main spriteram */ - - AM_RANGE(0x204800, 0x204fff) AM_READ(MRA32_RAM) //0x10 byte increments only - AM_RANGE(0x228000, 0x2283ff) AM_READ(MRA32_RAM) //0x10 byte increments only - - AM_RANGE(0x300000, 0x3fffff) AM_READ(MRA32_ROM) - - AM_RANGE(0x400000, 0x400003) AM_READ(dragngun_oki_2_r) - AM_RANGE(0x420000, 0x420003) AM_READ(dragngun_eeprom_r) - AM_RANGE(0x438000, 0x438003) AM_READ(dragngun_lightgun_r) - AM_RANGE(0x440000, 0x440003) AM_READ(dragngun_service_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dragngun_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE(deco32_sound_w) - AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w) - - AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x138000, 0x138003) AM_WRITE(MWA32_NOP) // palette mode? check - AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w) - - AM_RANGE(0x180000, 0x18001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - AM_RANGE(0x190000, 0x191fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x194000, 0x195fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x1a0000, 0x1a0fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x1a4000, 0x1a4fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - - AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - AM_RANGE(0x1d0000, 0x1d1fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1d4000, 0x1d5fff) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1e0000, 0x1e0fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1e4000, 0x1e4fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - - AM_RANGE(0x204800, 0x204fff) AM_WRITE(MWA32_RAM) // ace? 0x10 byte increments only // 13f ff stuff - - AM_RANGE(0x208000, 0x208fff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_layout_0_ram) - AM_RANGE(0x20c000, 0x20cfff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_layout_1_ram) - AM_RANGE(0x210000, 0x217fff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_lookup_0_ram) - AM_RANGE(0x218000, 0x21ffff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_lookup_1_ram) - AM_RANGE(0x220000, 0x221fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x228000, 0x2283ff) AM_WRITE(MWA32_RAM) /* ? */ - AM_RANGE(0x230000, 0x230003) AM_WRITE(dragngun_spriteram_dma_w) - - AM_RANGE(0x300000, 0x3fffff) AM_WRITE(MWA32_ROM) - - AM_RANGE(0x400000, 0x400003) AM_WRITE(dragngun_oki_2_w) - AM_RANGE(0x410000, 0x410003) AM_WRITE(MWA32_NOP) /* Some kind of serial bit-stream - digital volume control? */ - AM_RANGE(0x420000, 0x420003) AM_WRITE(dragngun_eeprom_w) - AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w) - AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lockload_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r) - AM_RANGE(0x128000, 0x12800f) AM_READ(deco32_irq_controller_r) - AM_RANGE(0x130000, 0x131fff) AM_READ(MRA32_RAM) - AM_RANGE(0x138000, 0x138003) AM_READ(MRA32_RAM) //palette dma complete in bit 0x8? ack? return 0 else tight loop - - AM_RANGE(0x170000, 0x170007) AM_READ(lockload_gun_mirror_r) /* Not on Dragongun */ - - AM_RANGE(0x180000, 0x18001f) AM_READ(MRA32_RAM) - AM_RANGE(0x190000, 0x191fff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x195fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a0fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a4000, 0x1a4fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c0000, 0x1c001f) AM_READ(MRA32_RAM) - AM_RANGE(0x1d0000, 0x1d1fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4000, 0x1d5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e0fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e4000, 0x1e4fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x208000, 0x208fff) AM_READ(MRA32_RAM) - AM_RANGE(0x20c000, 0x20cfff) AM_READ(MRA32_RAM) - AM_RANGE(0x210000, 0x217fff) AM_READ(MRA32_RAM) - AM_RANGE(0x218000, 0x21ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x220000, 0x221fff) AM_READ(MRA32_RAM) /* Main spriteram */ - - AM_RANGE(0x204800, 0x204fff) AM_READ(MRA32_RAM) //0x10 byte increments only - AM_RANGE(0x228000, 0x2283ff) AM_READ(MRA32_RAM) //0x10 byte increments only - - AM_RANGE(0x300000, 0x3fffff) AM_READ(MRA32_ROM) - - AM_RANGE(0x400000, 0x400003) AM_READ(dragngun_oki_2_r) - AM_RANGE(0x420000, 0x420003) AM_READ(dragngun_eeprom_r) -// AM_RANGE(0x438000, 0x438003) AM_READ(dragngun_lightgun_r) - AM_RANGE(0x440000, 0x440003) AM_READ(dragngun_service_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( lockload_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE(deco32_sound_w) - AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w) - - AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x138000, 0x138003) AM_WRITE(MWA32_NOP) // palette mode? check - AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w) - AM_RANGE(0x178008, 0x17800f) AM_WRITE(MWA32_NOP) /* Gun read ACK's */ - - AM_RANGE(0x180000, 0x18001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - AM_RANGE(0x190000, 0x191fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x194000, 0x195fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x1a0000, 0x1a0fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x1a4000, 0x1a4fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - - AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - AM_RANGE(0x1d0000, 0x1d1fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1d4000, 0x1d5fff) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1e0000, 0x1e0fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1e4000, 0x1e4fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - - AM_RANGE(0x204800, 0x204fff) AM_WRITE(MWA32_RAM) // ace? 0x10 byte increments only // 13f ff stuff - - AM_RANGE(0x208000, 0x208fff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_layout_0_ram) - AM_RANGE(0x20c000, 0x20cfff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_layout_1_ram) - AM_RANGE(0x210000, 0x217fff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_lookup_0_ram) - AM_RANGE(0x218000, 0x21ffff) AM_WRITE(MWA32_RAM) AM_BASE(&dragngun_sprite_lookup_1_ram) - AM_RANGE(0x220000, 0x221fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - - AM_RANGE(0x228000, 0x2283ff) AM_WRITE(MWA32_RAM) - - AM_RANGE(0x230000, 0x230003) AM_WRITE(dragngun_spriteram_dma_w) - - AM_RANGE(0x300000, 0x3fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x400000, 0x400003) AM_WRITE(dragngun_oki_2_w) - AM_RANGE(0x420000, 0x420003) AM_WRITE(dragngun_eeprom_w) -// AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w) - AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tattass_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x120000, 0x120003) AM_READ(MRA32_NOP) /* ACIA (unused) */ - - AM_RANGE(0x162000, 0x162fff) AM_READ(MRA32_RAM) /* 'Jack' RAM!? */ - AM_RANGE(0x163000, 0x16309f) AM_READ(MRA32_RAM) - AM_RANGE(0x168000, 0x169fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x170000, 0x171fff) AM_READ(MRA32_RAM) - AM_RANGE(0x178000, 0x179fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x182000, 0x183fff) AM_READ(MRA32_RAM) - AM_RANGE(0x184000, 0x185fff) AM_READ(MRA32_RAM) - AM_RANGE(0x192000, 0x1927ff) AM_READ(MRA32_RAM) - AM_RANGE(0x192800, 0x193fff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x1947ff) AM_READ(MRA32_RAM) - AM_RANGE(0x194800, 0x195fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1c4000, 0x1c5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2000, 0x1d27ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2800, 0x1d3fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4000, 0x1d47ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4800, 0x1d5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x200000, 0x200fff) AM_READ(tattass_prot_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tattass_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0f7fff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x0f8000, 0x0fffff) AM_WRITE(MWA32_NOP) /* Screen area on debug board? Cleared on startup */ - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - - AM_RANGE(0x120000, 0x120003) AM_WRITE(MWA32_NOP) /* ACIA (unused) */ - AM_RANGE(0x130000, 0x130003) AM_WRITE(MWA32_NOP) /* Coin port (unused?) */ - AM_RANGE(0x140000, 0x140003) AM_WRITE(MWA32_NOP) /* Vblank ack */ - AM_RANGE(0x150000, 0x150003) AM_WRITE(tattass_control_w) /* Volume port/Eprom/Priority */ - - AM_RANGE(0x162000, 0x162fff) AM_WRITE(MWA32_RAM) /* 'Jack' RAM!? */ - AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */ - - AM_RANGE(0x164000, 0x164003) AM_WRITE(MWA32_NOP) /* Palette control BG2/3 ($1a constant) */ - AM_RANGE(0x164004, 0x164007) AM_WRITE(MWA32_NOP) /* Palette control Obj1 ($6 constant) */ - AM_RANGE(0x164008, 0x16400b) AM_WRITE(MWA32_NOP) /* Palette control Obj2 ($5 constant) */ - AM_RANGE(0x16400c, 0x16400f) AM_WRITE(MWA32_NOP) - AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x16c000, 0x16c003) AM_WRITE(MWA32_NOP) - AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) - - AM_RANGE(0x170000, 0x171fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x174000, 0x174003) AM_WRITE(MWA32_NOP) /* Sprite DMA mode (2) */ - AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w) - AM_RANGE(0x174018, 0x17401b) AM_WRITE(MWA32_NOP) /* Sprite 'CPU' (unused) */ - - AM_RANGE(0x178000, 0x179fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size) - AM_RANGE(0x17c000, 0x17c003) AM_WRITE(MWA32_NOP) /* Sprite DMA mode (2) */ - AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w) - AM_RANGE(0x17c018, 0x17c01b) AM_WRITE(MWA32_NOP) /* Sprite 'CPU' (unused) */ - - AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x192000, 0x193fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x194000, 0x195fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1c4000, 0x1c5fff) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1d2000, 0x1d3fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1d4000, 0x1d5fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - AM_RANGE(0x1e0000, 0x1e001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - - AM_RANGE(0x200000, 0x200fff) AM_WRITE(tattass_prot_w) AM_BASE(&deco32_prot_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nslasher_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x120000, 0x1200ff) AM_READ(MRA32_NOP) /* ACIA (unused) */ - - AM_RANGE(0x163000, 0x16309f) AM_READ(MRA32_RAM) - AM_RANGE(0x168000, 0x169fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x170000, 0x171fff) AM_READ(MRA32_RAM) - AM_RANGE(0x178000, 0x179fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x182000, 0x183fff) AM_READ(MRA32_RAM) - AM_RANGE(0x184000, 0x185fff) AM_READ(MRA32_RAM) - AM_RANGE(0x192000, 0x1927ff) AM_READ(MRA32_RAM) - AM_RANGE(0x192800, 0x193fff) AM_READ(MRA32_RAM) - AM_RANGE(0x194000, 0x1947ff) AM_READ(MRA32_RAM) - AM_RANGE(0x194800, 0x195fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1a0000, 0x1a001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1c4000, 0x1c5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2000, 0x1d27ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d2800, 0x1d3fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4000, 0x1d47ff) AM_READ(MRA32_RAM) - AM_RANGE(0x1d4800, 0x1d5fff) AM_READ(MRA32_RAM) - AM_RANGE(0x1e0000, 0x1e001f) AM_READ(MRA32_RAM) - - AM_RANGE(0x200000, 0x200fff) AM_READ(nslasher_prot_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nslasher_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_ram) - - AM_RANGE(0x120000, 0x120003) AM_WRITE(MWA32_NOP) /* ACIA (unused) */ -// AM_RANGE(0x130000, 0x130003) AM_WRITE(MWA32_NOP) /* Coin port (unused?) */ - AM_RANGE(0x140000, 0x140003) AM_WRITE(MWA32_NOP) /* Vblank ack */ - AM_RANGE(0x150000, 0x150003) AM_WRITE(nslasher_eeprom_w) /* Volume port/Eprom/Priority */ - - AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */ - AM_RANGE(0x164000, 0x164003) AM_WRITE(MWA32_NOP) /* Palette control BG2/3 ($1a constant) */ - AM_RANGE(0x164004, 0x164007) AM_WRITE(MWA32_NOP) /* Palette control Obj1 ($4 constant) */ - AM_RANGE(0x164008, 0x16400b) AM_WRITE(MWA32_NOP) /* Palette control Obj2 ($6 constant) */ - AM_RANGE(0x16400c, 0x16400f) AM_WRITE(MWA32_NOP) - AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x16c000, 0x16c003) AM_WRITE(MWA32_NOP) - AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w) - - AM_RANGE(0x170000, 0x171fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x174000, 0x174003) AM_WRITE(MWA32_NOP) /* Sprite DMA mode (2) */ - AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w) - AM_RANGE(0x174018, 0x17401b) AM_WRITE(MWA32_NOP) /* Sprite 'CPU' (unused) */ - - AM_RANGE(0x178000, 0x179fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size) - AM_RANGE(0x17c000, 0x17c003) AM_WRITE(MWA32_NOP) /* Sprite DMA mode (2) */ - AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w) - AM_RANGE(0x17c018, 0x17c01b) AM_WRITE(MWA32_NOP) /* Sprite 'CPU' (unused) */ - - AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data) - AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data) - AM_RANGE(0x192000, 0x193fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf1_rowscroll) - AM_RANGE(0x194000, 0x195fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf2_rowscroll) - AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf12_control) - - AM_RANGE(0x1c2000, 0x1c3fff) AM_WRITE(deco32_pf3_data_w) AM_BASE(&deco32_pf3_data) - AM_RANGE(0x1c4000, 0x1c5fff) AM_WRITE(deco32_pf4_data_w) AM_BASE(&deco32_pf4_data) - AM_RANGE(0x1d2000, 0x1d3fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf3_rowscroll) - AM_RANGE(0x1d4000, 0x1d5fff) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf4_rowscroll) - AM_RANGE(0x1e0000, 0x1e001f) AM_WRITE(MWA32_RAM) AM_BASE(&deco32_pf34_control) - - AM_RANGE(0x200000, 0x200fff) AM_WRITE(nslasher_prot_w) AM_BASE(&deco32_prot_ram) -ADDRESS_MAP_END - -/******************************************************************************/ - -static int bsmt_latch; - -static WRITE8_HANDLER(deco32_bsmt0_w) -{ - bsmt_latch = data; -} - -static WRITE8_HANDLER(deco32_bsmt1_w) -{ - BSMT2000_data_0_w(offset^ 0xff, ((bsmt_latch<<8)|data), 0); - cpunum_set_input_line(1, M6809_IRQ_LINE, HOLD_LINE); /* BSMT is ready */ -} - -static READ8_HANDLER(deco32_bsmt_status_r) -{ - return 0x80; -} - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA8_ROM) - AM_RANGE(0x110000, 0x110001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x120000, 0x120001) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0x130000, 0x130001) AM_READ(OKIM6295_status_1_r) - AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r) - AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(MRA8_BANK8) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x110000, 0x110001) AM_WRITE(YM2151_word_0_w) - AM_RANGE(0x120000, 0x120001) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0x130000, 0x130001) AM_WRITE(OKIM6295_data_1_w) - AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(MWA8_BANK8) - AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(H6280_timer_w) - AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(H6280_irq_status_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem_tattass, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2002, 0x2003) AM_READ(soundlatch_r) - AM_RANGE(0x2006, 0x2007) AM_READ(deco32_bsmt_status_r) - AM_RANGE(0x2000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem_tattass, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x2001) AM_WRITE(MWA8_NOP) /* Reset BSMT? */ - AM_RANGE(0x6000, 0x6000) AM_WRITE(deco32_bsmt0_w) - AM_RANGE(0xa000, 0xa0ff) AM_WRITE(deco32_bsmt1_w) - AM_RANGE(0x2000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static READ8_HANDLER(latch_r) -{ - /* bit 1 of nslasher_sound_irq specifies IRQ command writes */ - nslasher_sound_irq &= ~0x02; - cpunum_set_input_line(1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); - return soundlatch_r(0); -} - -static ADDRESS_MAP_START( nslasher_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xa001, 0xa001) AM_READ(YM2151_status_port_0_r) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xb000, 0xb000) AM_READ(OKIM6295_status_0_r) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xc000, 0xc000) AM_READ(OKIM6295_status_1_r) AM_WRITE(OKIM6295_data_1_w) - AM_RANGE(0xd000, 0xd000) AM_READ(latch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nslasher_io_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0xffff) AM_ROM AM_REGION(REGION_CPU2, 0) -ADDRESS_MAP_END - -/**********************************************************************************/ - -/* Notes (2002.02.05) : - -When the "Continue Coin" Dip Switch is set to "2 Start/1 Continue", -the "Coinage" Dip Switches have no effect. - -START, BUTTON1 and COIN effects : - - 2 players, common coin slots - -STARTn starts a game for player n. It adds 100 energy points each time it is pressed -(provided there are still some credits, and energy is <= 900). - -BUTTON1n selects the character for player n. - -COIN1n adds credit(s)/coin(s). - - 2 players, individual coin slots - -NO STARTn button ! - -BUTTON1n starts a game for player n. It also adds 100 energy points for each credit -inserted for the player. It then selects the character for player n. - -COIN1n adds 100 energy points (based on "Coinage") for player n when ingame if energy -<= 900, else adds credit(s)/coin(s) for player n. - - 4 players, common coin slots - -NO STARTn button ! - -BUTTON1n starts a game for player n. It gives 100 energy points. It then selects the -character for player n. - - 4 players, individual coin slots - -NO STARTn button ! - -BUTTON1n starts a game for player n. It also adds 100 energy points for each credit -inserted for the player. It then selects the character for player n. - -COIN1n adds 100 energy points (based on "Coinage") for player n when ingame if energy -<= 900, else adds credit(s)/coin(s) for player n. - -*/ - -INPUT_PORTS_START( captaven ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Dip switch bank 1 */ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Continue Coin" ) - PORT_DIPSETTING( 0x0080, "1 Start/1 Continue" ) - PORT_DIPSETTING( 0x0000, "2 Start/1 Continue" ) - - /* Dip switch bank 2 */ - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0100, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0300, "3" ) - PORT_DIPSETTING( 0x0200, "4" ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, "Coin Slots" ) - PORT_DIPSETTING( 0x1000, "Common" ) - PORT_DIPSETTING( 0x0000, "Individual" ) - PORT_DIPNAME( 0x2000, 0x2000, "Play Mode" ) - PORT_DIPSETTING( 0x2000, "2 Player" ) - PORT_DIPSETTING( 0x0000, "4 Player" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( fghthist ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( dragngun ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) //check //test BUTTON F2 - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Would be a dipswitch, but only 1 present on board */ - PORT_DIPNAME( 0x0100, 0x0000, "Reset" ) /* Behaves like Reset */ - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Stage Select" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Debug Mode" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x0004, 0x04, IPT_DIPSWITCH_NAME ) PORT_NAME( DEF_STR( Service_Mode )) PORT_TOGGLE PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) //check //test BUTTON F2 - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( lockload ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) //check //test BUTTON F2 - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Would be a dipswitch, but only 1 present on board */ - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x0000, "Reset" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Debug Mode" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_VBLANK ) //IPT_VBLANK ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x0004, 0x04, IPT_DIPSWITCH_NAME ) PORT_NAME( DEF_STR( Service_Mode )) PORT_TOGGLE PORT_CODE(KEYCODE_F2) -// PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED ) //check //test BUTTON F2 - - PORT_START - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* mirror of fire buttons */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(25) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( tattass ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* 'soundmask' */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( nslasher ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* 'soundmask' */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START3 ) -INPUT_PORTS_END - -/**********************************************************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* every char takes 8 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 16, 0, 24, 8 }, - { 64*8+0, 64*8+1, 64*8+2, 64*8+3, 64*8+4, 64*8+5, 64*8+6, 64*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 128*8 -}; - -static const gfx_layout spritelayout_5bpp = -{ - 16,16, - RGN_FRAC(1,2), - 5, - { RGN_FRAC(1,2), 16, 0, 24, 8 }, - { 64*8+0, 64*8+1, 64*8+2, 64*8+3, 64*8+4, 64*8+5, 64*8+6, 64*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 128*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 }, - { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 -}; - -static const gfx_layout tilelayout2 = -{ - 16,16, - RGN_FRAC(1,4), - 8, - { RGN_FRAC(3,4)+8, RGN_FRAC(3,4)+0, RGN_FRAC(2,4)+8, RGN_FRAC(2,4)+0, RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+0, 8, 0 }, - { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 -}; - -static const gfx_layout spritelayout2 = -{ - 16,16, - RGN_FRAC(1,5), - 5, - { 0x800000*8, 0x600000*8, 0x400000*8, 0x200000*8, 0 }, - { - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, - 0,1,2,3,4,5,6,7 - }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 -}; - -static const gfx_layout spritelayout4 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - {0,1,2,3}, - {3*8,2*8,1*8,0*8,7*8,6*8,5*8,4*8, - 11*8,10*8,9*8,8*8,15*8,14*8,13*8,12*8}, - {0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128, - 8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 }, - 16*16*8 -}; - -static const gfx_layout spritelayout5 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - {4,5,6,7}, - {3*8,2*8,1*8,0*8,7*8,6*8,5*8,4*8, - 11*8,10*8,9*8,8*8,15*8,14*8,13*8,12*8}, - {0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128, - 8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 }, - 16*16*8 -}; - -static const gfx_decode gfxdecodeinfo_captaven[] = -{ - { REGION_GFX1, 0, &charlayout, 512, 32 }, /* Characters 8x8 */ - { REGION_GFX1, 0, &tilelayout, 512, 32 }, /* Tiles 16x16 */ - { REGION_GFX2, 0, &tilelayout2, 1024, 4 }, /* Tiles 16x16 */ - { REGION_GFX3, 0, &spritelayout, 0, 32 }, /* Sprites 16x16 */ - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_fghthist[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, /* Characters 8x8 */ - { REGION_GFX1, 0, &tilelayout, 256, 16 }, /* Tiles 16x16 */ - { REGION_GFX2, 0, &tilelayout, 512, 32 }, /* Tiles 16x16 */ - { REGION_GFX3, 0, &spritelayout, 1024, 128 }, /* Sprites 16x16 */ - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_dragngun[] = -{ - { REGION_GFX1, 0, &charlayout, 512, 16 }, /* Characters 8x8 */ - { REGION_GFX2, 0, &tilelayout, 768, 16 }, /* Tiles 16x16 */ - { REGION_GFX3, 0, &tilelayout2, 1024, 4 }, /* Tiles 16x16 */ - { REGION_GFX4, 0, &spritelayout4, 0, 32 }, /* Sprites 16x16 */ - { REGION_GFX4, 0, &spritelayout5, 0, 32 }, /* Sprites 16x16 */ - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_tattass[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 32 }, /* Characters 8x8 */ - { REGION_GFX1, 0, &tilelayout, 0, 32 }, /* Tiles 16x16 */ - { REGION_GFX2, 0, &tilelayout, 512, 32 }, /* Tiles 16x16 */ - { REGION_GFX3, 0, &spritelayout2, 1536, 16 }, /* Sprites 16x16 */ - { REGION_GFX4, 0, &spritelayout, 1024+256, 32 }, /* Sprites 16x16 */ - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_nslasher[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 32 }, /* Characters 8x8 */ - { REGION_GFX1, 0, &tilelayout, 0, 32 }, /* Tiles 16x16 */ - { REGION_GFX2, 0, &tilelayout, 512, 32 }, /* Tiles 16x16 */ - { REGION_GFX3, 0, &spritelayout_5bpp,1024, 16 }, /* Sprites 16x16 */ - { REGION_GFX4, 0, &spritelayout, 1536, 32 }, /* Sprites 16x16 */ - { -1 } /* end of array */ -}; - -/**********************************************************************************/ - -static void sound_irq(int state) -{ - cpunum_set_input_line(1,1,state); /* IRQ 2 */ -} - -static void sound_irq_nslasher(int state) -{ - /* bit 0 of nslasher_sound_irq specifies IRQ from sound chip */ - if (state) - nslasher_sound_irq |= 0x01; - else - nslasher_sound_irq &= ~0x01; - cpunum_set_input_line(1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - OKIM6295_set_bank_base(0, ((data >> 0)& 1) * 0x40000); - OKIM6295_set_bank_base(1, ((data >> 1)& 1) * 0x40000); -} - -static struct YM2151interface ym2151_interface = -{ - sound_irq, - sound_bankswitch_w -}; - -static struct YM2151interface ym2151_interface_nslasher = -{ - sound_irq_nslasher, - sound_bankswitch_w -}; - -static struct BSMT2000interface bsmt2000_interface = -{ - 11, - REGION_SOUND1 -}; - -static const UINT8 tattass_default_eprom[0x160] = -{ - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x4a,0x45,0x4b,0x19, - 0x4e,0x4c,0x4b,0x14,0x4b,0x4a,0x4d,0x0f, 0x42,0x4c,0x53,0x0c,0x4a,0x57,0x43,0x0a, - 0x41,0x44,0x51,0x0a,0x4a,0x41,0x4b,0x09, 0x4b,0x52,0x54,0x08,0x4c,0x4f,0x4e,0x08, - 0x4c,0x46,0x53,0x07,0x53,0x4c,0x53,0x05, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x01, 0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01, - 0x01,0x02,0x02,0xff,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x63,0x00,0x00,0x00, 0x02,0x03,0x00,0x03,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; - -static struct EEPROM_interface eeprom_interface_tattass = -{ - 10, // address bits 10 ==> } 1024 byte eprom - 8, // data bits 8 -}; - -static NVRAM_HANDLER(tattass) -{ - if (read_or_write) - EEPROM_save(file); - else - { - int len; - EEPROM_init(&eeprom_interface_tattass); - if (file) EEPROM_load(file); - else memcpy(EEPROM_get_data_pointer(&len),tattass_default_eprom,0x160); - } -} - -/**********************************************************************************/ - -static MACHINE_RESET( deco32 ) -{ - raster_irq_timer = timer_alloc(interrupt_gen); -} - -static INTERRUPT_GEN( deco32_vbl_interrupt ) -{ - cpunum_set_input_line(0, ARM_IRQ_LINE, HOLD_LINE); -} - -static INTERRUPT_GEN( tattass_snd_interrupt ) -{ - cpunum_set_input_line(1, M6809_FIRQ_LINE, HOLD_LINE); -} - -static MACHINE_DRIVER_START( captaven ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) - MDRV_CPU_PROGRAM_MAP(captaven_readmem,captaven_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(H6280, 32220000/8) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_MACHINE_RESET(deco32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_captaven) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(captaven) - MDRV_VIDEO_EOF(captaven) - MDRV_VIDEO_UPDATE(captaven) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.42) - MDRV_SOUND_ROUTE(1, "right", 0.42) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.35) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.35) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( fghthist ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) - MDRV_CPU_PROGRAM_MAP(fghthist_readmem,fghthist_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(H6280, 32220000/8) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_fghthist) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(fghthist) - MDRV_VIDEO_UPDATE(fghthist) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.42) - MDRV_SOUND_ROUTE(1, "right", 0.42) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.35) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.35) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( fghthsta ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) - MDRV_CPU_PROGRAM_MAP(fghthsta_memmap,0) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(H6280, 32220000/8) /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_fghthist) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(fghthist) - MDRV_VIDEO_UPDATE(fghthist) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.42) - MDRV_SOUND_ROUTE(1, "right", 0.42) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.35) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.35) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dragngun ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) - MDRV_CPU_PROGRAM_MAP(dragngun_readmem,dragngun_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(H6280, 32220000/8) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_MACHINE_RESET(deco32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_dragngun) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(dragngun) - MDRV_VIDEO_UPDATE(dragngun) - MDRV_VIDEO_EOF(dragngun) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.42) - MDRV_SOUND_ROUTE(1, "right", 0.42) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.35) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.35) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_3_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( lockload ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) - MDRV_CPU_PROGRAM_MAP(lockload_readmem,lockload_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,2) // From 2 - - MDRV_CPU_ADD(H6280, 32220000/8) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_MACHINE_RESET(deco32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_dragngun) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(lockload) - MDRV_VIDEO_UPDATE(dragngun) - MDRV_VIDEO_EOF(dragngun) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.42) - MDRV_SOUND_ROUTE(1, "right", 0.42) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.35) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.35) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_3_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tattass ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28000000/4) /* Unconfirmed */ - MDRV_CPU_PROGRAM_MAP(tattass_readmem,tattass_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(M6809, 2000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem_tattass,sound_writemem_tattass) - MDRV_CPU_PERIODIC_INT(tattass_snd_interrupt,TIME_IN_HZ(489)) /* Fixed FIRQ of 489Hz as measured on real (pinball) machine */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(tattass) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_tattass) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nslasher) - MDRV_VIDEO_UPDATE(nslasher) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(BSMT2000, 24000000) - MDRV_SOUND_CONFIG(bsmt2000_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( nslasher ) - - /* basic machine hardware */ - MDRV_CPU_ADD(ARM, 28322000/4) - MDRV_CPU_PROGRAM_MAP(nslasher_readmem,nslasher_writemem) - MDRV_CPU_VBLANK_INT(deco32_vbl_interrupt,1) - - MDRV_CPU_ADD(Z80, 32220000/9) - MDRV_CPU_PROGRAM_MAP(nslasher_sound,0) - MDRV_CPU_IO_MAP(nslasher_io_sound,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(529)) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_nslasher) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nslasher) - MDRV_VIDEO_UPDATE(nslasher) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 32220000/9) - MDRV_SOUND_CONFIG(ym2151_interface_nslasher) - MDRV_SOUND_ROUTE(0, "left", 0.40) - MDRV_SOUND_ROUTE(1, "right", 0.40) - - MDRV_SOUND_ADD(OKIM6295, 32220000/32) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 32220000/16) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) -MACHINE_DRIVER_END - -/**********************************************************************************/ - -ROM_START( captaven ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hn_00-4.1e", 0x000000, 0x20000, CRC(147fb094) SHA1(6bd759c42f4b7f9e1c3f2d3ece0b3ec72de1a982) ) - ROM_LOAD32_BYTE( "hn_01-4.1h", 0x000001, 0x20000, CRC(11ecdb95) SHA1(832b56f05ae7e15e67fbdd321da8c1cc5e7629a0) ) - ROM_LOAD32_BYTE( "hn_02-4.1k", 0x000002, 0x20000, CRC(35d2681f) SHA1(3af7d959dc4842238a7f79926adf449cb7f0b2e9) ) - ROM_LOAD32_BYTE( "hn_03-4.1m", 0x000003, 0x20000, CRC(3b59ba05) SHA1(400e868e59977e56a4fa1870321c643983ba4162) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) -ROM_END - -ROM_START( captavna ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hn_00.e1", 0x000000, 0x20000, CRC(12dd0c71) SHA1(77bd0e5f1b105ec70de5e76cb9c8138f02a496be) ) - ROM_LOAD32_BYTE( "hn_01.h1", 0x000001, 0x20000, CRC(ac5ea492) SHA1(e08fa2b3e3a40cba6dcdf07049d67056d59ed72a) ) - ROM_LOAD32_BYTE( "hn_02.k1", 0x000002, 0x20000, CRC(0c5e13f6) SHA1(d9ebf503db7da8663f45fe307e432545651cfc13) ) - ROM_LOAD32_BYTE( "hn_03.l1", 0x000003, 0x20000, CRC(bc050740) SHA1(bee425e76734251444c9cfa9287e1eb9383625bc) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) -ROM_END - -ROM_START( captavne ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hg_00-4.1e", 0x000000, 0x20000, CRC(7008d43c) SHA1(a39143e13075ebc58ecc576391f04d2649675dfb) ) - ROM_LOAD32_BYTE( "hg_01-4.1h", 0x000001, 0x20000, CRC(53dc1042) SHA1(4547ad20e5bc3b9cedae53f73f1628fa3493aafa) ) - ROM_LOAD32_BYTE( "hg_02-4.1k", 0x000002, 0x20000, CRC(9e3f9ee2) SHA1(a56a68bdac58a337be48b346b6939c3f68da8e9d) ) - ROM_LOAD32_BYTE( "hg_03-4.1m", 0x000003, 0x20000, CRC(bc050740) SHA1(bee425e76734251444c9cfa9287e1eb9383625bc) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) - - ROM_REGION( 0x0800, REGION_PLDS, 0 ) - ROM_LOAD( "pal16l8a.12l", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8a.4h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8a.5h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16r8b.14c", 0x0600, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( captavnu ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hh_00-19.1e", 0x000000, 0x20000, CRC(08b870e0) SHA1(44c837e3c5dfc9764d89b0ebb3e9b7a40fe4d76f) ) - ROM_LOAD32_BYTE( "hh_01-19.1h", 0x000001, 0x20000, CRC(0dc0feca) SHA1(cb1c97aac59dabcf6c37bc1562cf2f62bca951f1) ) - ROM_LOAD32_BYTE( "hh_02-19.1k", 0x000002, 0x20000, CRC(26ef94c0) SHA1(985fae62a6a7ca7e1e64dba2db053b08206c65e7) ) - ROM_LOAD32_BYTE( "hn_03-4.1m", 0x000003, 0x20000, CRC(3b59ba05) SHA1(400e868e59977e56a4fa1870321c643983ba4162) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) -ROM_END - -ROM_START( captavuu ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hh-00.1e", 0x000000, 0x20000, CRC(c34da654) SHA1(a1988a6a45991db6dee10b484049f6703b4671c9) ) - ROM_LOAD32_BYTE( "hh-01.1h", 0x000001, 0x20000, CRC(55abe63f) SHA1(98772eff3ebb5a4f243c7a77d398eb142d1505cb) ) - ROM_LOAD32_BYTE( "hh-02.1k", 0x000002, 0x20000, CRC(6096a9fb) SHA1(aa81189b9c185dc5d59f888afcb17a1e4935c241) ) - ROM_LOAD32_BYTE( "hh-03.1m", 0x000003, 0x20000, CRC(93631ded) SHA1(b4c8a6cbf586f895e637c0ed38f0842327624423) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) -ROM_END - -ROM_START( captavnj ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "hj_00-2.1e", 0x000000, 0x20000, CRC(10b1faaf) SHA1(9d76885200a846b4751c8d44ff591e2aff7c4148) ) - ROM_LOAD32_BYTE( "hj_01-2.1h", 0x000001, 0x20000, CRC(62c59f27) SHA1(20bbb7f3ff63a8c795686c1d56d51e90305daa77) ) - ROM_LOAD32_BYTE( "hj_02-2.1k", 0x000002, 0x20000, CRC(ce946cad) SHA1(9f1e92f5149e8a8d0236d5a7ba854ee100fd8488) ) - ROM_LOAD32_BYTE( "hj_03-2.1m", 0x000003, 0x20000, CRC(140cf9ce) SHA1(e2260ca4cea2fd7b64b8a78fd5444a7628bdafbb) ) - ROM_LOAD32_BYTE( "man-12.3e", 0x080000, 0x20000, CRC(d6261e98) SHA1(f3707be37ca926d9a341b9253a6bb2f3de0e25f6) ) - ROM_LOAD32_BYTE( "man-13.3h", 0x080001, 0x20000, CRC(40f0764d) SHA1(a6715c4a2accacf96f41c885579f314367c70dde) ) - ROM_LOAD32_BYTE( "man-14.3k", 0x080002, 0x20000, CRC(7cb9a4bd) SHA1(0af1a7bf0fcfa3cc14b38d92f19e97ad6e5541dd) ) - ROM_LOAD32_BYTE( "man-15.3m", 0x080003, 0x20000, CRC(c7854fe8) SHA1(ffa87dcda44fa0111de6ab317b77dd2bde015890) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "hj_08.17k", 0x00000, 0x10000, CRC(361fbd16) SHA1(c4bbaf74e09c263044be74bb2c98caf6cfcab618) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "man-00.8a", 0x000000, 0x80000, CRC(7855a607) SHA1(fa0be080515482281e5a12fe172eeb9a21af0820) ) /* Encrypted tiles */ - - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "man-05.16a", 0x000000, 0x40000, CRC(d44d1995) SHA1(e88e1a59a4b24ad058f21538f6e9bbba94a166b4) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x140000, 0x40000 ) - ROM_CONTINUE( 0x280000, 0x40000 ) - ROM_CONTINUE( 0x3c0000, 0x40000 ) - ROM_LOAD( "man-04.14a", 0x040000, 0x40000, CRC(541492a1) SHA1(2e0ab12555fc46001a815e76e3a0cd21f385f82a) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x180000, 0x40000 ) - ROM_CONTINUE( 0x2c0000, 0x40000 ) - ROM_CONTINUE( 0x400000, 0x40000 ) - ROM_LOAD( "man-03.12a", 0x080000, 0x40000, CRC(2d9c52b2) SHA1(8f6f4fe4f1a63099f889068991b34f9432b04fd7) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) - ROM_CONTINUE( 0x300000, 0x40000 ) - ROM_CONTINUE( 0x440000, 0x40000 ) - ROM_LOAD( "man-02.11a", 0x0c0000, 0x40000, CRC(07674c05) SHA1(08b33721d7eba4a1ff2e282f77eeb56535a52923) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x200000, 0x40000 ) - ROM_CONTINUE( 0x340000, 0x40000 ) - ROM_CONTINUE( 0x480000, 0x40000 ) - ROM_LOAD( "man-01.10a", 0x100000, 0x40000, CRC(ae714ada) SHA1(b4d5806265d422c8b837489afe93731f584e4adf) ) /* Encrypted tiles */ - ROM_CONTINUE( 0x240000, 0x40000 ) - ROM_CONTINUE( 0x380000, 0x40000 ) - ROM_CONTINUE( 0x4c0000, 0x40000 ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "man-06.17a", 0x000000, 0x100000, CRC(a9a64297) SHA1(e4cb441207b1907461c90c32c05a461c9bd30756) ) - ROM_LOAD16_BYTE( "man-07.18a", 0x000001, 0x100000, CRC(b1db200c) SHA1(970bb15e90194dd285f53594aca5dec3405e75d5) ) - ROM_LOAD16_BYTE( "man-08.17c", 0x200000, 0x100000, CRC(28e98e66) SHA1(55dbbd945eada81f7dcc874fdcb0b9e62ea453f0) ) - ROM_LOAD16_BYTE( "man-09.21c", 0x200001, 0x100000, CRC(1921245d) SHA1(88d3b69a38c18c83d5658d057b95974f1bd371e6) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "man-10.14k", 0x000000, 0x80000, CRC(0132c578) SHA1(70952f39508360bab51e1151531536f0ea6bbe06) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) ) -ROM_END - -ROM_START( dragngun ) - ROM_REGION(0x400000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "kb02.a9", 0x000000, 0x40000, CRC(4fb9cfea) SHA1(e20fbae32682fc5fdc82070d2d6c73b5b7ac13f8) ) - ROM_LOAD32_BYTE( "kb06.c9", 0x000001, 0x40000, CRC(2395efec) SHA1(3c08299a6cdeebf9d3d5d367ab435eec76986194) ) - ROM_LOAD32_BYTE( "kb00.a5", 0x000002, 0x40000, CRC(1539ff35) SHA1(6c82fe01f5ebf5cdd3a914cc823499fa6a26f9a9) ) - ROM_LOAD32_BYTE( "kb04.c5", 0x000003, 0x40000, CRC(5b5c1ec2) SHA1(3c5c02b7e432cf1861e0c8db23b302dc47774a42) ) - ROM_LOAD32_BYTE( "kb03.a10", 0x300000, 0x40000, CRC(6c6a4f42) SHA1(ae96fe81f9ba587eb3194dbffa0233413d63c4c6) ) - ROM_LOAD32_BYTE( "kb07.c10", 0x300001, 0x40000, CRC(2637e8a1) SHA1(7bcd1b1f3a4e6aaa0a3b78ca77dc666948c87547) ) - ROM_LOAD32_BYTE( "kb01.a7", 0x300002, 0x40000, CRC(d780ba8d) SHA1(0e315c718c038962b6020945b48bcc632de6f5e1) ) - ROM_LOAD32_BYTE( "kb05.c7", 0x300003, 0x40000, CRC(fbad737b) SHA1(04e16abe8c4cec4f172bea29516535511db9db90) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "kb10.n25", 0x00000, 0x10000, CRC(ec56f560) SHA1(feb9491683ba7f1000edebb568d6b3471fcc87fb) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "kb08.a15", 0x00000, 0x10000, CRC(8fe4e5f5) SHA1(922b94f8ce0c35e965259c11e95891ef4be913d4) ) /* Encrypted tiles */ - ROM_LOAD16_BYTE( "kb09.a17", 0x00001, 0x10000, CRC(e9dcac3f) SHA1(0621e601ffae73bbf69623042c9c8ab0526c3de6) ) - - ROM_REGION( 0x120000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mar-00.bin", 0x00000, 0x80000, CRC(d0491a37) SHA1(cc0ae1e9e5f42ba30159fb79bccd2e237cd037d0) ) /* Encrypted tiles */ - ROM_LOAD( "mar-01.bin", 0x90000, 0x80000, CRC(d5970365) SHA1(729baf1efbef15c9f3e1d700717f5ba4f10d3014) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mar-02.bin", 0x000000, 0x40000, CRC(c6cd4baf) SHA1(350286829a330b64f463d0a9cbbfdb71eecf5188) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x100000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x200000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x300000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mar-03.bin", 0x040000, 0x40000, CRC(793006d7) SHA1(7d8aba2fe75917f580a3a931a7defe5939a0874e) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x140000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x240000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x340000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mar-04.bin", 0x080000, 0x40000, CRC(56631a2b) SHA1(0fa3d6215df8ce923c153b96f39161ba88b2dd53) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x180000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x280000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x380000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mar-05.bin", 0x0c0000, 0x40000, CRC(ac16e7ae) SHA1(dca32e0a677a99f47a7b8e8f105483c57382f218) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x2c0000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x3c0000, 0x40000 ) /* 3/4 */ - - ROM_REGION( 0x800000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "mar-09.bin", 0x000000, 0x100000, CRC(18fec9e1) SHA1(1290a9c13b4fd7d2197b39ec616206796e3a17a8) ) - ROM_LOAD32_BYTE( "mar-10.bin", 0x400000, 0x100000, CRC(73126fbc) SHA1(9b9c31335e4db726863b219072c83810008f88f9) ) - ROM_LOAD32_BYTE( "mar-11.bin", 0x000001, 0x100000, CRC(1fc638a4) SHA1(003dcfbb65a8f32a1a030502a11432287cf8b4e0) ) - ROM_LOAD32_BYTE( "mar-12.bin", 0x400001, 0x100000, CRC(4c412512) SHA1(ccd5014bc9f9648cf5fa56bb8d54fc72a7099ca3) ) - ROM_LOAD32_BYTE( "mar-13.bin", 0x000002, 0x100000, CRC(d675821c) SHA1(ff195422d0bef62d1f9c7784bba1e6b7ab5cd211) ) - ROM_LOAD32_BYTE( "mar-14.bin", 0x400002, 0x100000, CRC(22d38c71) SHA1(62273665975f3e6000fa4b01755aeb70e5dd002d) ) - ROM_LOAD32_BYTE( "mar-15.bin", 0x000003, 0x100000, CRC(ec976b20) SHA1(c120b3c56d5e02162e41dc7f726c260d0f8d2f1a) ) - ROM_LOAD32_BYTE( "mar-16.bin", 0x400003, 0x100000, CRC(8b329bc8) SHA1(6e34eb6e2628a01a699d20a5155afb2febc31255) ) - - ROM_REGION( 0x100000, REGION_GFX5, 0 ) /* Video data - unused for now */ - ROM_LOAD( "mar-17.bin", 0x00000, 0x100000, CRC(7799ed23) SHA1(ae28ad4fa6033a3695fa83356701b3774b26e6b0) ) - ROM_LOAD( "mar-18.bin", 0x00000, 0x100000, CRC(ded66da9) SHA1(5134cb47043cc190a35ebdbf1912166669f9c055) ) - ROM_LOAD( "mar-19.bin", 0x00000, 0x100000, CRC(bdd1ed20) SHA1(2435b23210b8fee4d39c30d4d3c6ea40afaa3b93) ) - ROM_LOAD( "mar-20.bin", 0x00000, 0x100000, CRC(fa0462f0) SHA1(1a52617ad4d7abebc0f273dd979f4cf2d6a0306b) ) - ROM_LOAD( "mar-21.bin", 0x00000, 0x100000, CRC(2d0a28ae) SHA1(d87f6f71bb76880e4d4f1eab8e0451b5c3df69a5) ) - ROM_LOAD( "mar-22.bin", 0x00000, 0x100000, CRC(c85f3559) SHA1(a5d5cf9b18c9ef6a92d7643ca1ec9052de0d4a01) ) - ROM_LOAD( "mar-23.bin", 0x00000, 0x100000, CRC(ba907d6a) SHA1(1fd99b66e6297c8d927c1cf723a613b4ee2e2f90) ) - ROM_LOAD( "mar-24.bin", 0x00000, 0x100000, CRC(5cec45c8) SHA1(f99a26afaca9d9320477e469b09e3873bc8c156f) ) - ROM_LOAD( "mar-25.bin", 0x00000, 0x100000, CRC(d65d895c) SHA1(4508dfff95a7aff5109dc74622cbb4503b0b5840) ) - ROM_LOAD( "mar-26.bin", 0x00000, 0x100000, CRC(246a06c5) SHA1(447252be976a5059925f4ad98df8564b70198f62) ) - ROM_LOAD( "mar-27.bin", 0x00000, 0x100000, CRC(3fcbd10f) SHA1(70fc7b88bbe35bbae1de14364b03d0a06d541de5) ) - ROM_LOAD( "mar-28.bin", 0x00000, 0x100000, CRC(5a2ec71d) SHA1(447c404e6bb696f7eb7c61992a99b9be56f5d6b0) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mar-06.n17", 0x000000, 0x80000, CRC(3e006c6e) SHA1(55786e0fde2bf6ba9802f3f4fa8d4c21625b976a) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mar-08.n21", 0x000000, 0x80000, CRC(b9281dfd) SHA1(449faf5d36f3b970d0a9b483e2152a5f68604a77) ) - - ROM_REGION(0x80000, REGION_SOUND3, 0 ) - ROM_LOAD( "mar-07.n19", 0x000000, 0x80000, CRC(40287d62) SHA1(c00cb08bcdae55bcddc14c38e88b0484b1bc9e3e) ) -ROM_END - -ROM_START( fghthstu ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_WORD( "kz00-1.1f", 0x000000, 0x80000, CRC(3a3dd15c) SHA1(689b51adf73402b12191a75061b8e709468c91bc) ) - ROM_LOAD32_WORD( "kz01-1.2f", 0x000002, 0x80000, CRC(86796cd6) SHA1(c397c07d7a1d03ba96ccb2fe7a0ad25b8331e945) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "kz02.18k", 0x00000, 0x10000, CRC(5fd2309c) SHA1(2fb7af54d5cd9bf7dd6fb4f6b82aa52b03294f1f) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf00-8.bin", 0x000000, 0x100000, CRC(d3e9b580) SHA1(fc4676e0ecc6c32441ff66fa1f990cc3158237db) ) /* Encrypted tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf01-8.bin", 0x000000, 0x100000, CRC(0c6ed2eb) SHA1(8e37ef4b1f0b6d3370a08758bfd602cb5f221282) ) /* Encrypted tiles */ - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbf02-16.bin", 0x000001, 0x200000, CRC(c19c5953) SHA1(e6ed26f932c6c86bbd1fc4c000aa2f510c268009) ) - ROM_LOAD16_BYTE( "mbf04-16.bin", 0x000000, 0x200000, CRC(f6a23fd7) SHA1(74e5559f17cd591aa25d2ed6c34ac9ed89e2e9ba) ) - ROM_LOAD16_BYTE( "mbf03-16.bin", 0x400001, 0x200000, CRC(37d25c75) SHA1(8219d31091b4317190618edd8acc49f97cba6a1e) ) - ROM_LOAD16_BYTE( "mbf05-16.bin", 0x400000, 0x200000, CRC(137be66d) SHA1(3fde345183ce04a7a65b4cedfd050d771df7d026) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbf06.bin", 0x000000, 0x80000, CRC(fb513903) SHA1(7727a49ff7977f159ed36d097020edef3b5b36ba) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbf07.bin", 0x000000, 0x80000, CRC(51d4adc7) SHA1(22106ed7a05db94adc5a783ce34529e29d24d41a) ) - - ROM_REGION(512, REGION_PROMS, 0 ) - ROM_LOAD( "mb7124h.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8b.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( fghthist ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_WORD( "fhist00.bin", 0x000000, 0x80000, CRC(fe5eaba1) SHA1(c8a3784af487a1bbd2150abf4b1c8f3ad33da8a4) ) /* Rom kx */ - ROM_LOAD32_WORD( "fhist01.bin", 0x000002, 0x80000, CRC(3fb8d738) SHA1(2fca7a3ea483f01c97fb28a0adfa6d7980d8236c) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "kz02.18k", 0x00000, 0x10000, CRC(5fd2309c) SHA1(2fb7af54d5cd9bf7dd6fb4f6b82aa52b03294f1f) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf00-8.bin", 0x000000, 0x100000, CRC(d3e9b580) SHA1(fc4676e0ecc6c32441ff66fa1f990cc3158237db) ) /* Encrypted tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf01-8.bin", 0x000000, 0x100000, CRC(0c6ed2eb) SHA1(8e37ef4b1f0b6d3370a08758bfd602cb5f221282) ) /* Encrypted tiles */ - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbf02-16.bin", 0x000001, 0x200000, CRC(c19c5953) SHA1(e6ed26f932c6c86bbd1fc4c000aa2f510c268009) ) - ROM_LOAD16_BYTE( "mbf04-16.bin", 0x000000, 0x200000, CRC(f6a23fd7) SHA1(74e5559f17cd591aa25d2ed6c34ac9ed89e2e9ba) ) - ROM_LOAD16_BYTE( "mbf03-16.bin", 0x400001, 0x200000, CRC(37d25c75) SHA1(8219d31091b4317190618edd8acc49f97cba6a1e) ) - ROM_LOAD16_BYTE( "mbf05-16.bin", 0x400000, 0x200000, CRC(137be66d) SHA1(3fde345183ce04a7a65b4cedfd050d771df7d026) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbf06.bin", 0x000000, 0x80000, CRC(fb513903) SHA1(7727a49ff7977f159ed36d097020edef3b5b36ba) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbf07.bin", 0x000000, 0x80000, CRC(51d4adc7) SHA1(22106ed7a05db94adc5a783ce34529e29d24d41a) ) - - ROM_REGION(512, REGION_PROMS, 0 ) - ROM_LOAD( "mb7124h.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8b.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( fghthsta ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_WORD( "le-00.1f", 0x000000, 0x80000, CRC(a5c410eb) SHA1(e2b0cb2351782e1155ecc4029010beb7326fd874) ) - ROM_LOAD32_WORD( "le-01.2f", 0x000002, 0x80000, CRC(7e148aa2) SHA1(b21e16604c4d29611f91d629deb9f041eaf41e9b) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "kz02.18k", 0x00000, 0x10000, CRC(5fd2309c) SHA1(2fb7af54d5cd9bf7dd6fb4f6b82aa52b03294f1f) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf00-8.bin", 0x000000, 0x100000, CRC(d3e9b580) SHA1(fc4676e0ecc6c32441ff66fa1f990cc3158237db) ) /* Encrypted tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbf01-8.bin", 0x000000, 0x100000, CRC(0c6ed2eb) SHA1(8e37ef4b1f0b6d3370a08758bfd602cb5f221282) ) /* Encrypted tiles */ - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbf02-16.bin", 0x000001, 0x200000, CRC(c19c5953) SHA1(e6ed26f932c6c86bbd1fc4c000aa2f510c268009) ) - ROM_LOAD16_BYTE( "mbf04-16.bin", 0x000000, 0x200000, CRC(f6a23fd7) SHA1(74e5559f17cd591aa25d2ed6c34ac9ed89e2e9ba) ) - ROM_LOAD16_BYTE( "mbf03-16.bin", 0x400001, 0x200000, CRC(37d25c75) SHA1(8219d31091b4317190618edd8acc49f97cba6a1e) ) - ROM_LOAD16_BYTE( "mbf05-16.bin", 0x400000, 0x200000, CRC(137be66d) SHA1(3fde345183ce04a7a65b4cedfd050d771df7d026) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbf06.bin", 0x000000, 0x80000, CRC(fb513903) SHA1(7727a49ff7977f159ed36d097020edef3b5b36ba) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbf07.bin", 0x000000, 0x80000, CRC(51d4adc7) SHA1(22106ed7a05db94adc5a783ce34529e29d24d41a) ) - - ROM_REGION(512, REGION_PROMS, 0 ) - ROM_LOAD( "mb7124h.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8b.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( lockload ) /* Board No. DE-0420-1 + Bottom board DE-0421-0 slightly different hardware, likely a unique PCB and not a Dragongun conversion */ - ROM_REGION(0x400000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "nl-00-1.b5", 0x000002, 0x80000, CRC(7a39bf8d) SHA1(8b1a6407bab74b3960a243a6c04c0005a82126f1) ) - ROM_LOAD32_BYTE( "nl-01-1.b8", 0x000000, 0x80000, CRC(d23afcb7) SHA1(de7b5bc936a87cc6511d588b0bf082bbf745581c) ) - ROM_LOAD32_BYTE( "nl-02-1.d5", 0x000003, 0x80000, CRC(730e0168) SHA1(fdfa0d335c03c2c528326f90948e642f9ea43150) ) - ROM_LOAD32_BYTE( "nl-03-1.d8", 0x000001, 0x80000, CRC(51a53ece) SHA1(ee2c8858844a47fa1e83c30c06d78cf49219dc33) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "nm-06-.n22", 0x00000, 0x10000, CRC(31d1c245) SHA1(326e35e7ebd8ea761d90e856c50d86512327f2a5) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "nl-04-.b15", 0x00000, 0x10000, CRC(f097b3d9) SHA1(5748de9a796afddd78dad7f5c184269ee533c51c) ) /* Encrypted tiles */ - ROM_LOAD16_BYTE( "nl-05-.b17", 0x00001, 0x10000, CRC(448fec1e) SHA1(9a107959621cbb3688fd3ad9a8320aa5584f7d13) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbm-00.d15", 0x00000, 0x80000, CRC(b97de8ff) SHA1(59508f7135af22c2ac89db78874b1e8a68c53434) ) /* Encrypted tiles */ - ROM_LOAD( "mbm-01.d17", 0x80000, 0x80000, CRC(6d4b8fa0) SHA1(56e2b9adb4d010ba2592eccba654a24141441141) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mbm-02.b21", 0x000000, 0x40000, CRC(e723019f) SHA1(15361d3e6db5707a7f0ead4254463c50163c864c) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x200000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x400000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x600000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x040000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x240000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x440000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x640000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-03.b22", 0x080000, 0x40000, CRC(e0d09894) SHA1(be2faa81cf92b6fadfb2ec4ca2173157b05071ec) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x280000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x480000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x680000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x0c0000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x2c0000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x4c0000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x6c0000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-04.e21", 0x100000, 0x40000, CRC(9e12466f) SHA1(51eaadfaf45d02d72b61052a606f97f36b3964fd) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x300000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x500000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x700000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x140000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x340000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x540000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x740000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-05.e22", 0x180000, 0x40000, CRC(6ff02dc0) SHA1(5862e2189a09f963d5ec58ca4aa1c06210a3c7ef) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x380000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x580000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x780000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x3c0000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x5c0000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x7c0000, 0x40000 ) /* 3/4 */ - - ROM_REGION( 0x800000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "mbm-08.a14", 0x000000, 0x100000, CRC(5358a43b) SHA1(778637fc63a0957338c7da3adb2555ffada177c4) ) - ROM_LOAD32_BYTE( "mbm-09.a16", 0x400000, 0x100000, CRC(2cce162f) SHA1(db5795465a36971861e8fb7436db0805717ad101) ) - ROM_LOAD32_BYTE( "mbm-10.a19", 0x000001, 0x100000, CRC(232e1c91) SHA1(868d4eb4873ecc210cbb3a266cae0b6ad8f11add) ) - ROM_LOAD32_BYTE( "mbm-11.a20", 0x400001, 0x100000, CRC(8a2a2a9f) SHA1(d11e0ea2785e35123bc56a8f18ce22f58432b599) ) - ROM_LOAD32_BYTE( "mbm-12.a21", 0x000002, 0x100000, CRC(7d221d66) SHA1(25c9c20485e443969c0bf4d74c4211c3881dabcd) ) - ROM_LOAD32_BYTE( "mbm-13.a22", 0x400002, 0x100000, CRC(678b9052) SHA1(ae8fc921813e53e9dbc3960e772c1c4de94c22a7) ) - ROM_LOAD32_BYTE( "mbm-14.a23", 0x000003, 0x100000, CRC(5aaaf929) SHA1(5ee30db9b83db664d77e6b5e0988ce3366460df6) ) - ROM_LOAD32_BYTE( "mbm-15.a25", 0x400003, 0x100000, CRC(789ce7b1) SHA1(3fb390ce0620ce7a63f7f46eac1ff0eb8ed76d26) ) - - ROM_REGION( 0x100000, REGION_GFX5, ROMREGION_ERASE00 ) /* Video data - unique PCB and this region is not used? */ - - ROM_REGION(0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbm-06.n17", 0x00000, 0x100000, CRC(f34d5999) SHA1(265b5f4e8598bcf9183bf9bd95db69b01536acb2) ) - - ROM_REGION(0x80000, REGION_SOUND2, ROMREGION_ERASE00 ) /* Sound data - unique PCB and this region is not used? */ - - ROM_REGION(0x80000, REGION_SOUND3, 0 ) - ROM_LOAD( "mbm-07.n19", 0x00000, 0x80000, CRC(414f3793) SHA1(ed5f63e57390d503193fd1e9f7294ae1da6d3539) ) /* Does this go here or REGION_SOUND2 ?? */ -ROM_END - -ROM_START( locklodu ) - ROM_REGION(0x400000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_BYTE( "nh-00-0.b5", 0x000002, 0x80000, CRC(b8a57164) SHA1(b700a08db2ad1aa1bf0a32635ffbd5d3f08713ee) ) - ROM_LOAD32_BYTE( "nh-01-0.b8", 0x000000, 0x80000, CRC(e371ac50) SHA1(c448b54bc8962844b490994607b21b0c806d7714) ) - ROM_LOAD32_BYTE( "nh-02-0.d5", 0x000003, 0x80000, CRC(3e361e82) SHA1(b5445d44f2a775c141fdc561d5489234c39445a4) ) - ROM_LOAD32_BYTE( "nh-03-0.d8", 0x000001, 0x80000, CRC(d08ee9c3) SHA1(9a85710a11940df047e83e8d5977a23d6c67d665) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "nh-06-0.n25", 0x00000, 0x10000, CRC(7a1af51d) SHA1(54e6b16d3f5b787d3c6eb7203d8854e6e0fb9803) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "nh-04-0.b15", 0x00000, 0x10000, CRC(f097b3d9) SHA1(5748de9a796afddd78dad7f5c184269ee533c51c) ) /* Encrypted tiles */ - ROM_LOAD16_BYTE( "nh-05-0.b17", 0x00001, 0x10000, CRC(448fec1e) SHA1(9a107959621cbb3688fd3ad9a8320aa5584f7d13) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbm-00.d15", 0x00000, 0x80000, CRC(b97de8ff) SHA1(59508f7135af22c2ac89db78874b1e8a68c53434) ) /* Encrypted tiles */ - ROM_LOAD( "mbm-01.d17", 0x80000, 0x80000, CRC(6d4b8fa0) SHA1(56e2b9adb4d010ba2592eccba654a24141441141) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mbm-02.b23", 0x000000, 0x40000, CRC(e723019f) SHA1(15361d3e6db5707a7f0ead4254463c50163c864c) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x200000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x400000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x600000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x040000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x240000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x440000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x640000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-03.b26", 0x080000, 0x40000, CRC(e0d09894) SHA1(be2faa81cf92b6fadfb2ec4ca2173157b05071ec) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x280000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x480000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x680000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x0c0000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x2c0000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x4c0000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x6c0000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-04.e23", 0x100000, 0x40000, CRC(9e12466f) SHA1(51eaadfaf45d02d72b61052a606f97f36b3964fd) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x300000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x500000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x700000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x140000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x340000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x540000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x740000, 0x40000 ) /* 3/4 */ - ROM_LOAD( "mbm-05.e26", 0x180000, 0x40000, CRC(6ff02dc0) SHA1(5862e2189a09f963d5ec58ca4aa1c06210a3c7ef) ) /* Encrypted tiles 0/4 */ - ROM_CONTINUE( 0x380000, 0x40000 ) /* 2 bpp per 0x40000 chunk, 1/4 */ - ROM_CONTINUE( 0x580000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x780000, 0x40000 ) /* 3/4 */ - ROM_CONTINUE( 0x1c0000, 0x40000 ) /* Next block 2bpp 0/4 */ - ROM_CONTINUE( 0x3c0000, 0x40000 ) /* 1/4 */ - ROM_CONTINUE( 0x5c0000, 0x40000 ) /* 2/4 */ - ROM_CONTINUE( 0x7c0000, 0x40000 ) /* 3/4 */ - - ROM_REGION( 0x800000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "mbm-08.a14", 0x000000, 0x100000, CRC(5358a43b) SHA1(778637fc63a0957338c7da3adb2555ffada177c4) ) - ROM_LOAD32_BYTE( "mbm-09.a16", 0x400000, 0x100000, CRC(2cce162f) SHA1(db5795465a36971861e8fb7436db0805717ad101) ) - ROM_LOAD32_BYTE( "mbm-10.a19", 0x000001, 0x100000, CRC(232e1c91) SHA1(868d4eb4873ecc210cbb3a266cae0b6ad8f11add) ) - ROM_LOAD32_BYTE( "mbm-11.a20", 0x400001, 0x100000, CRC(8a2a2a9f) SHA1(d11e0ea2785e35123bc56a8f18ce22f58432b599) ) - ROM_LOAD32_BYTE( "mbm-12.a21", 0x000002, 0x100000, CRC(7d221d66) SHA1(25c9c20485e443969c0bf4d74c4211c3881dabcd) ) - ROM_LOAD32_BYTE( "mbm-13.a22", 0x400002, 0x100000, CRC(678b9052) SHA1(ae8fc921813e53e9dbc3960e772c1c4de94c22a7) ) - ROM_LOAD32_BYTE( "mbm-14.a23", 0x000003, 0x100000, CRC(5aaaf929) SHA1(5ee30db9b83db664d77e6b5e0988ce3366460df6) ) - ROM_LOAD32_BYTE( "mbm-15.a25", 0x400003, 0x100000, CRC(789ce7b1) SHA1(3fb390ce0620ce7a63f7f46eac1ff0eb8ed76d26) ) - - ROM_REGION( 0x100000, REGION_GFX5, ROMREGION_ERASE00 ) /* Video data - same as Dragongun, probably leftover from a conversion */ -// ROM_LOAD( "mar-17.bin", 0x00000, 0x100000, CRC(7799ed23) SHA1(ae28ad4fa6033a3695fa83356701b3774b26e6b0) ) -// ROM_LOAD( "mar-18.bin", 0x00000, 0x100000, CRC(ded66da9) SHA1(5134cb47043cc190a35ebdbf1912166669f9c055) ) -// ROM_LOAD( "mar-19.bin", 0x00000, 0x100000, CRC(bdd1ed20) SHA1(2435b23210b8fee4d39c30d4d3c6ea40afaa3b93) ) -// ROM_LOAD( "mar-20.bin", 0x00000, 0x100000, CRC(fa0462f0) SHA1(1a52617ad4d7abebc0f273dd979f4cf2d6a0306b) ) -// ROM_LOAD( "mar-21.bin", 0x00000, 0x100000, CRC(2d0a28ae) SHA1(d87f6f71bb76880e4d4f1eab8e0451b5c3df69a5) ) -// ROM_LOAD( "mar-22.bin", 0x00000, 0x100000, CRC(c85f3559) SHA1(a5d5cf9b18c9ef6a92d7643ca1ec9052de0d4a01) ) -// ROM_LOAD( "mar-23.bin", 0x00000, 0x100000, CRC(ba907d6a) SHA1(1fd99b66e6297c8d927c1cf723a613b4ee2e2f90) ) -// ROM_LOAD( "mar-24.bin", 0x00000, 0x100000, CRC(5cec45c8) SHA1(f99a26afaca9d9320477e469b09e3873bc8c156f) ) -// ROM_LOAD( "mar-25.bin", 0x00000, 0x100000, CRC(d65d895c) SHA1(4508dfff95a7aff5109dc74622cbb4503b0b5840) ) -// ROM_LOAD( "mar-26.bin", 0x00000, 0x100000, CRC(246a06c5) SHA1(447252be976a5059925f4ad98df8564b70198f62) ) -// ROM_LOAD( "mar-27.bin", 0x00000, 0x100000, CRC(3fcbd10f) SHA1(70fc7b88bbe35bbae1de14364b03d0a06d541de5) ) -// ROM_LOAD( "mar-28.bin", 0x00000, 0x100000, CRC(5a2ec71d) SHA1(447c404e6bb696f7eb7c61992a99b9be56f5d6b0) ) - - ROM_REGION(0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbm-06.n17", 0x00000, 0x100000, CRC(f34d5999) SHA1(265b5f4e8598bcf9183bf9bd95db69b01536acb2) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbm-07.n21", 0x00000, 0x80000, CRC(414f3793) SHA1(ed5f63e57390d503193fd1e9f7294ae1da6d3539) ) - - ROM_REGION(0x80000, REGION_SOUND3, 0 ) - ROM_LOAD( "mar-07.n19", 0x00000, 0x80000, CRC(40287d62) SHA1(c00cb08bcdae55bcddc14c38e88b0484b1bc9e3e) ) // same as dragngun, unused? -ROM_END - -ROM_START( tattass ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_WORD( "pp44.cpu", 0x000000, 0x80000, CRC(c3ca5b49) SHA1(c6420b0c20df1ae166b279504880ade65b1d8048) ) - ROM_LOAD32_WORD( "pp45.cpu", 0x000002, 0x80000, CRC(d3f30de0) SHA1(5a0aa0f96d29299b3b337b4b51bc84e447eb74d0) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "u7.snd", 0x00000, 0x10000, CRC(6947be8a) SHA1(4ac6c3c7f54501f23c434708cea6bf327bc8cf95) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "abak_b01.s02", 0x000000, 0x80000, CRC(bc805680) SHA1(ccdbca23fc843ef82a3524020999542f43b3c618) ) - ROM_LOAD16_BYTE( "abak_b01.s13", 0x000001, 0x80000, CRC(350effcd) SHA1(0452d95be9fc28bd00d846a2cc5828899d69601e) ) - ROM_LOAD16_BYTE( "abak_b23.s02", 0x100000, 0x80000, CRC(91abdc21) SHA1(ba08e59bc0417e863d35ea295cf58cfe8faf57b5) ) - ROM_LOAD16_BYTE( "abak_b23.s13", 0x100001, 0x80000, CRC(80eb50fe) SHA1(abfe1a5417ceff9d6d52372d11993bf9b1db9432) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "bbak_b01.s02", 0x000000, 0x80000, CRC(611be9a6) SHA1(86263c8beb562e0607a65aa30fbbe030a044cd75) ) - ROM_LOAD16_BYTE( "bbak_b01.s13", 0x000001, 0x80000, CRC(097e0604) SHA1(6ae241b37b6bb15fc66679cf66f500b8f8a19f44) ) - ROM_LOAD16_BYTE( "bbak_b23.s02", 0x100000, 0x80000, CRC(3836531a) SHA1(57bead820ac396ee0ed8fb2ac5c15929896d75bf) ) - ROM_LOAD16_BYTE( "bbak_b23.s13", 0x100001, 0x80000, CRC(1210485a) SHA1(9edc4c96f389e231066ef164a7b2851cd7ade038) ) - - ROM_REGION( 0xa00000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "ob1_c0.b0", 0x000000, 0x80000, CRC(053fecca) SHA1(319efc71042238d9012d2c3dddab9d11205decc6) ) - ROM_LOAD( "ob1_c1.b0", 0x200000, 0x80000, CRC(e183e6bc) SHA1(d9cce277861967f403a882879e1baefa84696bdc) ) - ROM_LOAD( "ob1_c2.b0", 0x400000, 0x80000, CRC(1314f828) SHA1(6a91543d4e70af30de287ba775c69ffb1cde719d) ) - ROM_LOAD( "ob1_c3.b0", 0x600000, 0x80000, CRC(c63866df) SHA1(a897835d8a33002f1bd54f27d1a6393c4e1864b9) ) - ROM_LOAD( "ob1_c4.b0", 0x800000, 0x80000, CRC(f71cdd1b) SHA1(6fbccdbe460c8ddfeed972ebe766a6f8a2d4c466) ) - - ROM_LOAD( "ob1_c0.b1", 0x080000, 0x80000, CRC(385434b0) SHA1(ea764bd9844e13f5b10207022135dbe07bf0258a) ) - ROM_LOAD( "ob1_c1.b1", 0x280000, 0x80000, CRC(0a3ec489) SHA1(1a2e1252d6acda43019ded5a31ae60bef40e4bd9) ) - ROM_LOAD( "ob1_c2.b1", 0x480000, 0x80000, CRC(52f06081) SHA1(c630f45b110b9423dfb0bf92359fdb28b75c8cf1) ) - ROM_LOAD( "ob1_c3.b1", 0x680000, 0x80000, CRC(a8a5cfbe) SHA1(7afc8f7c7f3826a276e4840e4fc8b8bb645dd3bd) ) - ROM_LOAD( "ob1_c4.b1", 0x880000, 0x80000, CRC(09d0acd6) SHA1(1b162f5b76852e49ae6a24db2031d66ca59d87e9) ) - - ROM_LOAD( "ob1_c0.b2", 0x100000, 0x80000, CRC(946e9f59) SHA1(46a0d35641b381fe553caa00451c30f1950b5dfd) ) - ROM_LOAD( "ob1_c1.b2", 0x300000, 0x80000, CRC(9f66ad54) SHA1(6e6ac6edee2f2dda46e7cd85db8d79c8335c73cd) ) - ROM_LOAD( "ob1_c2.b2", 0x500000, 0x80000, CRC(a8df60eb) SHA1(c971e66eec6accccaf2bdd87dde7adde79322da9) ) - ROM_LOAD( "ob1_c3.b2", 0x700000, 0x80000, CRC(a1a753be) SHA1(1666a32bb69db36dba029a835592d00a21ad8c5e) ) - ROM_LOAD( "ob1_c4.b2", 0x900000, 0x80000, CRC(b65b3c4b) SHA1(f636a682b506e3ce5ca07ba8fd3166158d1ab667) ) - - ROM_LOAD( "ob1_c0.b3", 0x180000, 0x80000, CRC(cbbbc696) SHA1(6f2383655461ac35f3178e0f7c0146cff89c8295) ) - ROM_LOAD( "ob1_c1.b3", 0x380000, 0x80000, CRC(f7b1bdee) SHA1(1d505d8d4ede55246de0b5fbc6ca20f836699b60) ) - ROM_LOAD( "ob1_c2.b3", 0x580000, 0x80000, CRC(97815619) SHA1(b1b694310064971aa5438671d0f9992b7e4bf277) ) - ROM_LOAD( "ob1_c3.b3", 0x780000, 0x80000, CRC(fc3ccb7a) SHA1(4436fcbd830912589bd6c838eb63b7d41a2bb56e) ) - ROM_LOAD( "ob1_c4.b3", 0x980000, 0x80000, CRC(dfdfd0ff) SHA1(79dc686351d41d635359936efe97c7ade305dc84) ) - - ROM_REGION( 0x800000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ob2_c0.b0", 0x000001, 0x80000, CRC(9080ebe4) SHA1(1cfabe045532e16f203fe054449149451a280f56) ) - ROM_LOAD32_BYTE( "ob2_c1.b0", 0x000003, 0x80000, CRC(c0464970) SHA1(2bd87c9a7ed0742a8f1ee0c0de225e18a0351168) ) - ROM_LOAD32_BYTE( "ob2_c2.b0", 0x000000, 0x80000, CRC(35a2e621) SHA1(ff7687e30c379cbcee4f80c0c737cef891509881) ) - ROM_LOAD32_BYTE( "ob2_c3.b0", 0x000002, 0x80000, CRC(99c7cc2d) SHA1(c761e5b7f1e2afdafef36390f7141ebcb5e8f254) ) - ROM_LOAD32_BYTE( "ob2_c0.b1", 0x200001, 0x80000, CRC(2c2c15c9) SHA1(fdc48fab6dad97d16d4e77479fa77bb320eb3767) ) - ROM_LOAD32_BYTE( "ob2_c1.b1", 0x200003, 0x80000, CRC(d2c49a14) SHA1(49d92233d6d5f77fbbf9d31607c568efef6d94f0) ) - ROM_LOAD32_BYTE( "ob2_c2.b1", 0x200000, 0x80000, CRC(fbe957e8) SHA1(4f0bb0e434771316bcd8796878ffd3e5cafebb2b) ) - ROM_LOAD32_BYTE( "ob2_c3.b1", 0x200002, 0x80000, CRC(d7238829) SHA1(6fef08a518be69251852d3204413b4b8b6615be2) ) - ROM_LOAD32_BYTE( "ob2_c0.b2", 0x400001, 0x80000, CRC(aefa1b01) SHA1(bbd4b432b36d64f80065c56559ea9675acf3151e) ) - ROM_LOAD32_BYTE( "ob2_c1.b2", 0x400003, 0x80000, CRC(4af620ca) SHA1(f3753235b2e72f011c9b94f26a425b9a79577201) ) - ROM_LOAD32_BYTE( "ob2_c2.b2", 0x400000, 0x80000, CRC(8e58be07) SHA1(d8a8662e800da0892d70c628de0ca27ff983006c) ) - ROM_LOAD32_BYTE( "ob2_c3.b2", 0x400002, 0x80000, CRC(1b5188c5) SHA1(4792a36b889a2c2dfab9ec78d848d3d8bf10d20f) ) - ROM_LOAD32_BYTE( "ob2_c0.b3", 0x600001, 0x80000, CRC(a2a5dafd) SHA1(2baadcfe9ae8fa30ae4226caa10fe3d58f8af3e0) ) - ROM_LOAD32_BYTE( "ob2_c1.b3", 0x600003, 0x80000, CRC(6f0afd05) SHA1(6a4bf3466a77d14b3bc18377537f86108774badd) ) - ROM_LOAD32_BYTE( "ob2_c2.b3", 0x600000, 0x80000, CRC(90fe5f4f) SHA1(2149e9eae152556c632ebd4d0b2de49e40916a77) ) - ROM_LOAD32_BYTE( "ob2_c3.b3", 0x600002, 0x80000, CRC(e3517e6e) SHA1(68ac60570423d8f0d7cff3db1901c9c050d0be91) ) - - ROM_REGION(0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "u17.snd", 0x000000, 0x80000, CRC(b945c18d) SHA1(6556bbb4a7057df3680132f24687fa944006c784) ) - ROM_LOAD( "u21.snd", 0x080000, 0x80000, CRC(10b2110c) SHA1(83e5938ed22da2874022e1dc8df76c72d95c448d) ) - ROM_LOAD( "u36.snd", 0x100000, 0x80000, CRC(3b73abe2) SHA1(195096e2302e84123b23b4ccd982fb3ab9afe42c) ) - ROM_LOAD( "u37.snd", 0x180000, 0x80000, CRC(986066b5) SHA1(9dd1a14de81733617cf51293674a8e26fc5cec68) ) -ROM_END - -ROM_START( tattassa ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* ARM 32 bit code */ - ROM_LOAD32_WORD( "rev232a.000", 0x000000, 0x80000, CRC(1a357112) SHA1(d7f78f90970fd56ca1452a4c138168568b06d868) ) - ROM_LOAD32_WORD( "rev232a.001", 0x000002, 0x80000, CRC(550245d4) SHA1(c1b2b31768da9becebd907a8622d05aa68ecaa29) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "u7.snd", 0x00000, 0x10000, CRC(6947be8a) SHA1(4ac6c3c7f54501f23c434708cea6bf327bc8cf95) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "abak_b01.s02", 0x000000, 0x80000, CRC(bc805680) SHA1(ccdbca23fc843ef82a3524020999542f43b3c618) ) - ROM_LOAD16_BYTE( "abak_b01.s13", 0x000001, 0x80000, CRC(350effcd) SHA1(0452d95be9fc28bd00d846a2cc5828899d69601e) ) - ROM_LOAD16_BYTE( "abak_b23.s02", 0x100000, 0x80000, CRC(91abdc21) SHA1(ba08e59bc0417e863d35ea295cf58cfe8faf57b5) ) - ROM_LOAD16_BYTE( "abak_b23.s13", 0x100001, 0x80000, CRC(80eb50fe) SHA1(abfe1a5417ceff9d6d52372d11993bf9b1db9432) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "bbak_b01.s02", 0x000000, 0x80000, CRC(611be9a6) SHA1(86263c8beb562e0607a65aa30fbbe030a044cd75) ) - ROM_LOAD16_BYTE( "bbak_b01.s13", 0x000001, 0x80000, CRC(097e0604) SHA1(6ae241b37b6bb15fc66679cf66f500b8f8a19f44) ) - ROM_LOAD16_BYTE( "bbak_b23.s02", 0x100000, 0x80000, CRC(3836531a) SHA1(57bead820ac396ee0ed8fb2ac5c15929896d75bf) ) - ROM_LOAD16_BYTE( "bbak_b23.s13", 0x100001, 0x80000, CRC(1210485a) SHA1(9edc4c96f389e231066ef164a7b2851cd7ade038) ) - - ROM_REGION( 0xa00000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "ob1_c0.b0", 0x000000, 0x80000, CRC(053fecca) SHA1(319efc71042238d9012d2c3dddab9d11205decc6) ) - ROM_LOAD( "ob1_c1.b0", 0x200000, 0x80000, CRC(e183e6bc) SHA1(d9cce277861967f403a882879e1baefa84696bdc) ) - ROM_LOAD( "ob1_c2.b0", 0x400000, 0x80000, CRC(1314f828) SHA1(6a91543d4e70af30de287ba775c69ffb1cde719d) ) - ROM_LOAD( "ob1_c3.b0", 0x600000, 0x80000, CRC(c63866df) SHA1(a897835d8a33002f1bd54f27d1a6393c4e1864b9) ) - ROM_LOAD( "ob1_c4.b0", 0x800000, 0x80000, CRC(f71cdd1b) SHA1(6fbccdbe460c8ddfeed972ebe766a6f8a2d4c466) ) - - ROM_LOAD( "ob1_c0.b1", 0x080000, 0x80000, CRC(385434b0) SHA1(ea764bd9844e13f5b10207022135dbe07bf0258a) ) - ROM_LOAD( "ob1_c1.b1", 0x280000, 0x80000, CRC(0a3ec489) SHA1(1a2e1252d6acda43019ded5a31ae60bef40e4bd9) ) - ROM_LOAD( "ob1_c2.b1", 0x480000, 0x80000, CRC(52f06081) SHA1(c630f45b110b9423dfb0bf92359fdb28b75c8cf1) ) - ROM_LOAD( "ob1_c3.b1", 0x680000, 0x80000, CRC(a8a5cfbe) SHA1(7afc8f7c7f3826a276e4840e4fc8b8bb645dd3bd) ) - ROM_LOAD( "ob1_c4.b1", 0x880000, 0x80000, CRC(09d0acd6) SHA1(1b162f5b76852e49ae6a24db2031d66ca59d87e9) ) - - ROM_LOAD( "ob1_c0.b2", 0x100000, 0x80000, CRC(946e9f59) SHA1(46a0d35641b381fe553caa00451c30f1950b5dfd) ) - ROM_LOAD( "ob1_c1.b2", 0x300000, 0x80000, CRC(9f66ad54) SHA1(6e6ac6edee2f2dda46e7cd85db8d79c8335c73cd) ) - ROM_LOAD( "ob1_c2.b2", 0x500000, 0x80000, CRC(a8df60eb) SHA1(c971e66eec6accccaf2bdd87dde7adde79322da9) ) - ROM_LOAD( "ob1_c3.b2", 0x700000, 0x80000, CRC(a1a753be) SHA1(1666a32bb69db36dba029a835592d00a21ad8c5e) ) - ROM_LOAD( "ob1_c4.b2", 0x900000, 0x80000, CRC(b65b3c4b) SHA1(f636a682b506e3ce5ca07ba8fd3166158d1ab667) ) - - ROM_LOAD( "ob1_c0.b3", 0x180000, 0x80000, CRC(cbbbc696) SHA1(6f2383655461ac35f3178e0f7c0146cff89c8295) ) - ROM_LOAD( "ob1_c1.b3", 0x380000, 0x80000, CRC(f7b1bdee) SHA1(1d505d8d4ede55246de0b5fbc6ca20f836699b60) ) - ROM_LOAD( "ob1_c2.b3", 0x580000, 0x80000, CRC(97815619) SHA1(b1b694310064971aa5438671d0f9992b7e4bf277) ) - ROM_LOAD( "ob1_c3.b3", 0x780000, 0x80000, CRC(fc3ccb7a) SHA1(4436fcbd830912589bd6c838eb63b7d41a2bb56e) ) - ROM_LOAD( "ob1_c4.b3", 0x980000, 0x80000, CRC(dfdfd0ff) SHA1(79dc686351d41d635359936efe97c7ade305dc84) ) - - ROM_REGION( 0x800000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ob2_c0.b0", 0x000001, 0x80000, CRC(9080ebe4) SHA1(1cfabe045532e16f203fe054449149451a280f56) ) - ROM_LOAD32_BYTE( "ob2_c1.b0", 0x000003, 0x80000, CRC(c0464970) SHA1(2bd87c9a7ed0742a8f1ee0c0de225e18a0351168) ) - ROM_LOAD32_BYTE( "ob2_c2.b0", 0x000000, 0x80000, CRC(35a2e621) SHA1(ff7687e30c379cbcee4f80c0c737cef891509881) ) - ROM_LOAD32_BYTE( "ob2_c3.b0", 0x000002, 0x80000, CRC(99c7cc2d) SHA1(c761e5b7f1e2afdafef36390f7141ebcb5e8f254) ) - ROM_LOAD32_BYTE( "ob2_c0.b1", 0x200001, 0x80000, CRC(2c2c15c9) SHA1(fdc48fab6dad97d16d4e77479fa77bb320eb3767) ) - ROM_LOAD32_BYTE( "ob2_c1.b1", 0x200003, 0x80000, CRC(d2c49a14) SHA1(49d92233d6d5f77fbbf9d31607c568efef6d94f0) ) - ROM_LOAD32_BYTE( "ob2_c2.b1", 0x200000, 0x80000, CRC(fbe957e8) SHA1(4f0bb0e434771316bcd8796878ffd3e5cafebb2b) ) - ROM_LOAD32_BYTE( "ob2_c3.b1", 0x200002, 0x80000, CRC(d7238829) SHA1(6fef08a518be69251852d3204413b4b8b6615be2) ) - ROM_LOAD32_BYTE( "ob2_c0.b2", 0x400001, 0x80000, CRC(aefa1b01) SHA1(bbd4b432b36d64f80065c56559ea9675acf3151e) ) - ROM_LOAD32_BYTE( "ob2_c1.b2", 0x400003, 0x80000, CRC(4af620ca) SHA1(f3753235b2e72f011c9b94f26a425b9a79577201) ) - ROM_LOAD32_BYTE( "ob2_c2.b2", 0x400000, 0x80000, CRC(8e58be07) SHA1(d8a8662e800da0892d70c628de0ca27ff983006c) ) - ROM_LOAD32_BYTE( "ob2_c3.b2", 0x400002, 0x80000, CRC(1b5188c5) SHA1(4792a36b889a2c2dfab9ec78d848d3d8bf10d20f) ) - ROM_LOAD32_BYTE( "ob2_c0.b3", 0x600001, 0x80000, CRC(a2a5dafd) SHA1(2baadcfe9ae8fa30ae4226caa10fe3d58f8af3e0) ) - ROM_LOAD32_BYTE( "ob2_c1.b3", 0x600003, 0x80000, CRC(6f0afd05) SHA1(6a4bf3466a77d14b3bc18377537f86108774badd) ) - ROM_LOAD32_BYTE( "ob2_c2.b3", 0x600000, 0x80000, CRC(90fe5f4f) SHA1(2149e9eae152556c632ebd4d0b2de49e40916a77) ) - ROM_LOAD32_BYTE( "ob2_c3.b3", 0x600002, 0x80000, CRC(e3517e6e) SHA1(68ac60570423d8f0d7cff3db1901c9c050d0be91) ) - - ROM_REGION(0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "u17.snd", 0x000000, 0x80000, CRC(b945c18d) SHA1(6556bbb4a7057df3680132f24687fa944006c784) ) - ROM_LOAD( "u21.snd", 0x080000, 0x80000, CRC(10b2110c) SHA1(83e5938ed22da2874022e1dc8df76c72d95c448d) ) - ROM_LOAD( "u36.snd", 0x100000, 0x80000, CRC(3b73abe2) SHA1(195096e2302e84123b23b4ccd982fb3ab9afe42c) ) - ROM_LOAD( "u37.snd", 0x180000, 0x80000, CRC(986066b5) SHA1(9dd1a14de81733617cf51293674a8e26fc5cec68) ) -ROM_END - -ROM_START( nslasher ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* Encrypted ARM 32 bit code */ - ROM_LOAD32_WORD( "mainprg.1f", 0x000000, 0x80000, CRC(507acbae) SHA1(329a2bb244f2f3adb8d75cab5aa2dcb129d70712) ) - ROM_LOAD32_WORD( "mainprg.2f", 0x000002, 0x80000, CRC(931fc7ee) SHA1(54eb12abfa3f332ce9b43a45ec424aaee88641a6) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "sndprg.17l", 0x00000, 0x10000, CRC(18939e92) SHA1(50b37a78d9d2259d4b140dd17393c4e5ca92bca5) ) - - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-00.8c", 0x000000, 0x200000, CRC(a877f8a3) SHA1(79253525f360a73161894f31e211e4d6b38d307a) ) /* Encrypted tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-01.9c", 0x000000, 0x200000, CRC(1853dafc) SHA1(b1183c0db301cbed9f079c782202dbfc553b198e) ) /* Encrypted tiles */ - - ROM_REGION( 0xa00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-02.14c", 0x000001, 0x200000, CRC(b2f158a1) SHA1(4f8c0b324813db198fe1dad7fff4185b828b94de) ) - ROM_LOAD16_BYTE( "mbh-04.16c", 0x000000, 0x200000, CRC(eecfe06d) SHA1(2df817fe5e2ea31207b217bb03dc58979c05d0d2) ) - ROM_LOAD16_BYTE( "mbh-03.15c", 0x400001, 0x80000, CRC(787787e3) SHA1(531444e3f28aa9a7539a5a76ca94a9d6b97274c5) ) - ROM_LOAD16_BYTE( "mbh-05.17c", 0x400000, 0x80000, CRC(1d2b7c17) SHA1(ae0b8e0448a1a8180fb424fb0bc8a4302f8ff602) ) - ROM_LOAD32_BYTE( "mbh-06.18c", 0x500000, 0x100000, CRC(038c2127) SHA1(5bdb215305f1a419fde27a83b623a38b9328e560) ) - ROM_LOAD32_BYTE( "mbh-07.19c", 0x900000, 0x40000, CRC(bbd22323) SHA1(6ab665b2e6d04cdadc48c52e15098e978b61fe10) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-08.16e", 0x000001, 0x80000, CRC(cdd7f8cb) SHA1(910bbe8783c0ba722e9d6399b332d658fa059fdb) ) - ROM_LOAD16_BYTE( "mbh-09.18e", 0x000000, 0x80000, CRC(33fa2121) SHA1(eb0e99d29b1ad9995df28e5b7cfc89d53efb53c3) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbh-10.14l", 0x000000, 0x80000, CRC(c4d6b116) SHA1(c5685bce6a6c6a74ca600ebf766ba1007f0dc666) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbh-11.16l", 0x000000, 0x80000, CRC(0ec40b6b) SHA1(9fef44149608ae2a00f6a75a6f77f2efcab6e78e) ) - -ROM_END - -ROM_START( nslashej ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* Encrypted ARM 32 bit code */ - ROM_LOAD32_WORD( "lx-00.1f", 0x000000, 0x80000, CRC(6ed5fb88) SHA1(84350da7939a479968a523c84e254e3ee54b8da2) ) - ROM_LOAD32_WORD( "lx-01.2f", 0x000002, 0x80000, CRC(a6df2152) SHA1(6fe7e0b2e71c5f807951dcc81a6a3cff55247961) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "sndprg.17l", 0x00000, 0x10000, CRC(18939e92) SHA1(50b37a78d9d2259d4b140dd17393c4e5ca92bca5) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-00.8c", 0x000000, 0x200000, CRC(a877f8a3) SHA1(79253525f360a73161894f31e211e4d6b38d307a) ) /* Encrypted tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-01.9c", 0x000000, 0x200000, CRC(1853dafc) SHA1(b1183c0db301cbed9f079c782202dbfc553b198e) ) /* Encrypted tiles */ - - ROM_REGION( 0xa00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-02.14c", 0x000001, 0x200000, CRC(b2f158a1) SHA1(4f8c0b324813db198fe1dad7fff4185b828b94de) ) - ROM_LOAD16_BYTE( "mbh-04.16c", 0x000000, 0x200000, CRC(eecfe06d) SHA1(2df817fe5e2ea31207b217bb03dc58979c05d0d2) ) - ROM_LOAD16_BYTE( "mbh-03.15c", 0x400001, 0x80000, CRC(787787e3) SHA1(531444e3f28aa9a7539a5a76ca94a9d6b97274c5) ) - ROM_LOAD16_BYTE( "mbh-05.17c", 0x400000, 0x80000, CRC(1d2b7c17) SHA1(ae0b8e0448a1a8180fb424fb0bc8a4302f8ff602) ) - ROM_LOAD32_BYTE( "mbh-06.18c", 0x500000, 0x100000, CRC(038c2127) SHA1(5bdb215305f1a419fde27a83b623a38b9328e560) ) - ROM_LOAD32_BYTE( "mbh-07.19c", 0x900000, 0x40000, CRC(bbd22323) SHA1(6ab665b2e6d04cdadc48c52e15098e978b61fe10) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-08.16e", 0x000001, 0x80000, CRC(cdd7f8cb) SHA1(910bbe8783c0ba722e9d6399b332d658fa059fdb) ) - ROM_LOAD16_BYTE( "mbh-09.18e", 0x000000, 0x80000, CRC(33fa2121) SHA1(eb0e99d29b1ad9995df28e5b7cfc89d53efb53c3) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbh-10.14l", 0x000000, 0x80000, CRC(c4d6b116) SHA1(c5685bce6a6c6a74ca600ebf766ba1007f0dc666) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbh-11.16l", 0x000000, 0x80000, CRC(0ec40b6b) SHA1(9fef44149608ae2a00f6a75a6f77f2efcab6e78e) ) -ROM_END - -ROM_START( nslashes ) - ROM_REGION(0x100000, REGION_CPU1, 0 ) /* Encrypted ARM 32 bit code */ - ROM_LOAD32_WORD( "ly-00.1f", 0x000000, 0x80000, CRC(fa0646f9) SHA1(7f9633bda230a0ced59171cdc5ab40a6d56c3d34) ) - ROM_LOAD32_WORD( "ly-01.2f", 0x000002, 0x80000, CRC(ae508149) SHA1(3592949e5fb2770adb9c9daa4e38c4e75f3e2554) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* Sound CPU */ - ROM_LOAD( "sndprg.17l", 0x00000, 0x10000, CRC(18939e92) SHA1(50b37a78d9d2259d4b140dd17393c4e5ca92bca5) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-00.8c", 0x000000, 0x200000, CRC(a877f8a3) SHA1(79253525f360a73161894f31e211e4d6b38d307a) ) /* Encrypted tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mbh-01.9c", 0x000000, 0x200000, CRC(1853dafc) SHA1(b1183c0db301cbed9f079c782202dbfc553b198e) ) /* Encrypted tiles */ - - ROM_REGION( 0xa00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-02.14c", 0x000001, 0x200000, CRC(b2f158a1) SHA1(4f8c0b324813db198fe1dad7fff4185b828b94de) ) - ROM_LOAD16_BYTE( "mbh-04.16c", 0x000000, 0x200000, CRC(eecfe06d) SHA1(2df817fe5e2ea31207b217bb03dc58979c05d0d2) ) - ROM_LOAD16_BYTE( "mbh-03.15c", 0x400001, 0x80000, CRC(787787e3) SHA1(531444e3f28aa9a7539a5a76ca94a9d6b97274c5) ) - ROM_LOAD16_BYTE( "mbh-05.17c", 0x400000, 0x80000, CRC(1d2b7c17) SHA1(ae0b8e0448a1a8180fb424fb0bc8a4302f8ff602) ) - ROM_LOAD32_BYTE( "mbh-06.18c", 0x500000, 0x100000, CRC(038c2127) SHA1(5bdb215305f1a419fde27a83b623a38b9328e560) ) - ROM_LOAD32_BYTE( "mbh-07.19c", 0x900000, 0x40000, CRC(bbd22323) SHA1(6ab665b2e6d04cdadc48c52e15098e978b61fe10) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE( "mbh-08.16e", 0x000001, 0x80000, CRC(cdd7f8cb) SHA1(910bbe8783c0ba722e9d6399b332d658fa059fdb) ) - ROM_LOAD16_BYTE( "mbh-09.18e", 0x000000, 0x80000, CRC(33fa2121) SHA1(eb0e99d29b1ad9995df28e5b7cfc89d53efb53c3) ) - - ROM_REGION(0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "mbh-10.14l", 0x000000, 0x80000, CRC(c4d6b116) SHA1(c5685bce6a6c6a74ca600ebf766ba1007f0dc666) ) - - ROM_REGION(0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "mbh-11.16l", 0x000000, 0x80000, CRC(0ec40b6b) SHA1(9fef44149608ae2a00f6a75a6f77f2efcab6e78e) ) -ROM_END - -/**********************************************************************************/ - -static READ32_HANDLER( captaven_skip ) -{ - UINT32 ret=deco32_ram[0x748c/4]; - - if (activecpu_get_pc()==0x39e8 && (ret&0xff)!=0) { -// logerror("CPU Spin - %d cycles left this frame ran %d (%d)\n",cycles_left_to_run(),cycles_currently_ran(),cycles_left_to_run()+cycles_currently_ran()); - cpu_spinuntil_int(); - } - - return ret; -} - -static READ32_HANDLER( dragngun_skip ) -{ - UINT32 ret=deco32_ram[0x1f15c/4]; - - if (activecpu_get_pc()==0x628c && (ret&0xff)!=0) { - //logerror("%08x (%08x): CPU Spin - %d cycles left this frame ran %d (%d)\n",activecpu_get_pc(),ret,cycles_left_to_run(),cycles_currently_ran(),cycles_left_to_run()+cycles_currently_ran()); - cpu_spinuntil_int(); - } - - return ret; -} - -static READ32_HANDLER( tattass_skip ) -{ - int left=cycles_left_to_run(); - UINT32 ret=deco32_ram[0]; - - if (activecpu_get_pc()==0x1c5ec && left>32) { - //logerror("%08x (%08x): CPU Spin - %d cycles left this frame ran %d (%d)\n",activecpu_get_pc(),ret,cycles_left_to_run(),cycles_currently_ran(),cycles_left_to_run()+cycles_currently_ran()); - cpu_spinuntil_int(); - } - - return ret; -} - -static READ32_HANDLER( nslasher_skip ) -{ - int left=cycles_left_to_run(); - UINT32 ret=deco32_ram[0]; - - if (activecpu_get_pc()==0x9c8 && left>32 && (ret&0x80)) { - //logerror("%08x (%08x): CPU Spin - %d cycles left this frame ran %d (%d)\n",activecpu_get_pc(),ret,cycles_left_to_run(),cycles_currently_ran(),cycles_left_to_run()+cycles_currently_ran()); - cpu_spinuntil_int(); - } - - return ret; -} - -/**********************************************************************************/ - -static DRIVER_INIT( captaven ) -{ - deco56_decrypt(REGION_GFX1); - deco56_decrypt(REGION_GFX2); - - raster_offset=-1; - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x12748c, 0x12748f, 0, 0, captaven_skip); -} - -static DRIVER_INIT( dragngun ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - const UINT8 *SRC_RAM = memory_region(REGION_GFX1); - UINT8 *DST_RAM = memory_region(REGION_GFX2); - - deco74_decrypt(REGION_GFX1); - deco74_decrypt(REGION_GFX2); - deco74_decrypt(REGION_GFX3); - - memcpy(DST_RAM+0x80000,SRC_RAM,0x10000); - memcpy(DST_RAM+0x110000,SRC_RAM+0x10000,0x10000); - - ROM[0x1b32c/4]=0xe1a00000;// NOP test switch lock - - raster_offset=0; - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x11f15c, 0x11f15f, 0, 0, dragngun_skip); -} - -static DRIVER_INIT( fghthist ) -{ - deco56_decrypt(REGION_GFX1); - deco74_decrypt(REGION_GFX2); - - decoprot_reset(); -} - -static DRIVER_INIT( lockload ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); -// UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - deco74_decrypt(REGION_GFX1); - deco74_decrypt(REGION_GFX2); - deco74_decrypt(REGION_GFX3); - - raster_offset=0; - memcpy(RAM+0x300000,RAM+0x100000,0x100000); - memset(RAM+0x100000,0,0x100000); - -// ROM[0x3fe3c0/4]=0xe1a00000;// NOP test switch lock -// ROM[0x3fe3cc/4]=0xe1a00000;// NOP test switch lock -// ROM[0x3fe40c/4]=0xe1a00000;// NOP test switch lock -} - -static DRIVER_INIT( tattass ) -{ - UINT8 *RAM = memory_region(REGION_GFX1); - UINT8 *tmp = malloc_or_die(0x80000); - - /* Reorder bitplanes to make decoding easier */ - memcpy(tmp,RAM+0x80000,0x80000); - memcpy(RAM+0x80000,RAM+0x100000,0x80000); - memcpy(RAM+0x100000,tmp,0x80000); - - RAM = memory_region(REGION_GFX2); - memcpy(tmp,RAM+0x80000,0x80000); - memcpy(RAM+0x80000,RAM+0x100000,0x80000); - memcpy(RAM+0x100000,tmp,0x80000); - - free(tmp); - - deco56_decrypt(REGION_GFX1); /* 141 */ - deco56_decrypt(REGION_GFX2); /* 141 */ - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x100000, 0x100003, 0, 0, tattass_skip); -} - -static DRIVER_INIT( nslasher ) -{ - UINT8 *RAM = memory_region(REGION_GFX1); - UINT8 *tmp = malloc_or_die(0x80000); - - /* Reorder bitplanes to make decoding easier */ - memcpy(tmp,RAM+0x80000,0x80000); - memcpy(RAM+0x80000,RAM+0x100000,0x80000); - memcpy(RAM+0x100000,tmp,0x80000); - - RAM = memory_region(REGION_GFX2); - memcpy(tmp,RAM+0x80000,0x80000); - memcpy(RAM+0x80000,RAM+0x100000,0x80000); - memcpy(RAM+0x100000,tmp,0x80000); - - free(tmp); - - deco56_decrypt(REGION_GFX1); /* 141 */ - deco74_decrypt(REGION_GFX2); - - decrypt156(); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x100000, 0x100003, 0, 0, nslasher_skip); - - soundlatch_setclearedvalue(0xff); - - /* The board for Night Slashers is very close to the Fighter's History and - Tattoo Assassins boards, but has an encrypted ARM cpu. */ - -} - -/**********************************************************************************/ - -GAME( 1991, captaven, 0, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.9)", 0 ) -GAME( 1991, captavna, captaven, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.0)", 0 ) -GAME( 1991, captavne, captaven, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (UK Rev 1.4)", 0 ) -GAME( 1991, captavnu, captaven, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.9)", 0 ) -GAME( 1991, captavuu, captaven, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.6)", 0 ) -GAME( 1991, captavnj, captaven, captaven, captaven, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Japan Rev 0.2)", 0 ) -GAME( 1993, dragngun, 0, dragngun, dragngun, dragngun, ROT0, "Data East Corporation", "Dragon Gun (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, fghthist, 0, fghthist, fghthist, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-07)", 0 ) -GAME( 1993, fghthstu, fghthist, fghthist, fghthist, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-03)", 0 ) -GAME( 1993, fghthsta, fghthist, fghthsta, fghthist, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-05, alternate hardware )", 0 ) -GAME( 1994, lockload, 0, lockload, lockload, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (World)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1994, locklodu, lockload, lockload, lockload, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (US)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1994, tattass, 0, tattass, tattass, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (US Prototype)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, tattassa, tattass, tattass, tattass, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (Asia Prototype)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, nslasher, 0, nslasher, nslasher, nslasher, ROT0, "Data East Corporation", "Night Slashers (Korea Rev 1.3)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, nslashej, nslasher, nslasher, nslasher, nslasher, ROT0, "Data East Corporation", "Night Slashers (Japan Rev 1.2)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, nslashes, nslasher, nslasher, nslasher, nslasher, ROT0, "Data East Corporation", "Night Slashers (Over Sea Rev 1.2)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/decocass.c b/src/drivers/decocass.c deleted file mode 100644 index 659361deb..000000000 --- a/src/drivers/decocass.c +++ /dev/null @@ -1,1240 +0,0 @@ -/*********************************************************************** - - DECO Cassette System driver - -(01) Highway Chase (12/80) -(02) Sengoku Ninja tai (12/80) -(03) Manhattan (1/81) -(04) Terranean (81) -(??) Missile Sprinter (81) -(06) Nebula (3/81) -(07) Astro Fantasia (3/81) -(08) The Tower (2/81) -(09) Super Astro Fighter (5/81) -(??) Buramzon (81) -(11) Lock N Chase (4/81) -(12) The DECO BOY (Flash Boy) (8/81) -(13) Pro Golf (9/81) -(14) DS TeleJang (6/81) -(15) Lucky Poker (2/81) -(16) Treasure Island (1/82) -(18) Explorer (11/82) -(19) Disco No. 1 (3/82) -(20) Tornado (82) -(21) Mission X (3/82) -(22) Pro Tennis (5/82) -(??) Fishing (7/82) -(25) Angler Dandler -(26) Burger Time (6/83) -(27) Burnin' Rubber (11/82) -(27) Bump N Jump (4/83) -(28) Grapolop (11/82) -(29) Lappappa (11/82) -(30) Skater (3/83) -(31) Pro Bowling (10/83) -(32) Night Star (4/83) -(33) Pro Soccer (11/83) -(34) Super Doubles Tennis -(??) Cluster Buster (9/83) -(??) Genesis (11/83) -(??) Bambolin (83) -(37) Zeroize (10/83) -(38) Scrum Try (3/84) -(39) Peter Pepper's Ice Cream Factory (2/84) -(40) Fighting Ice Hockey (4/84) -(41) Oh Zumou (5/84) -(42) Hello Gate Ball (8/84) -(??) Yellow Cab (84) -(44) Boulder Dash (8/85) -(??) Tokyo Mie Sinryohjyo (10/84) -(??) Tokyo Mie Sinryohyo2 (1/85) -(??) Geinohijin Sikaku Siken (5/85) - - ***********************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "machine/decocass.h" -#include "sound/ay8910.h" - -static UINT8 *decrypted; -static UINT8 *rambase; - -/*************************************************************************** - * - * write decrypted opcodes - * - ***************************************************************************/ - -INLINE int swap_bits_5_6(int data) -{ - return (data & 0x9f) | ((data & 0x20) << 1) | ((data & 0x40) >> 1); -} - -static WRITE8_HANDLER( ram1_w ) { decrypted[0x0000 + offset] = swap_bits_5_6(data); rambase[0x0000 + offset] = data; } -static WRITE8_HANDLER( ram2_w ) { decrypted[0x2000 + offset] = swap_bits_5_6(data); rambase[0x2000 + offset] = data; } -static WRITE8_HANDLER( charram_w ) { decrypted[0x6000 + offset] = swap_bits_5_6(data); decocass_charram_w(offset, data); } -static WRITE8_HANDLER( fgvideoram_w ) { decrypted[0xc000 + offset] = swap_bits_5_6(data); decocass_fgvideoram_w(offset, data); } -static WRITE8_HANDLER( fgcolorram_w ) { decrypted[0xc400 + offset] = swap_bits_5_6(data); decocass_colorram_w(offset, data); } -static WRITE8_HANDLER( tileram_w ) { decrypted[0xd000 + offset] = swap_bits_5_6(data); decocass_tileram_w(offset, data); } -static WRITE8_HANDLER( objectram_w ) { decrypted[0xd800 + offset] = swap_bits_5_6(data); decocass_objectram_w(offset, data); } - -static WRITE8_HANDLER( mirrorvideoram_w ) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); fgvideoram_w(offset, data); } -static WRITE8_HANDLER( mirrorcolorram_w ) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); fgcolorram_w(offset, data); } -static READ8_HANDLER( mirrorvideoram_r ) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); return decocass_fgvideoram[offset]; } -static READ8_HANDLER( mirrorcolorram_r ) { offset = ((offset >> 5) & 0x1f) | ((offset & 0x1f) << 5); return decocass_colorram[offset]; } - - -static ADDRESS_MAP_START( decocass_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x5fff) AM_READ(MRA8_RAM) /* RMS3 RAM */ - AM_RANGE(0x6000, 0xafff) AM_READ(MRA8_RAM) /* RMS3 RAM or DE-0091xx board */ - AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_RAM) /* RMS3 RAM */ - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) /* DSP3 videoram + colorram */ - AM_RANGE(0xc800, 0xcbff) AM_READ(mirrorvideoram_r) - AM_RANGE(0xcc00, 0xcfff) AM_READ(mirrorcolorram_r) - AM_RANGE(0xd000, 0xdbff) AM_READ(MRA8_RAM) /* B103 RAM */ - AM_RANGE(0xe300, 0xe300) AM_READ(input_port_7_r) /* DSW1 */ - AM_RANGE(0xe301, 0xe301) AM_READ(input_port_8_r) /* DSW2 */ - AM_RANGE(0xe500, 0xe5ff) AM_READ(decocass_e5xx_r) /* read data from 8041/status */ - AM_RANGE(0xe600, 0xe6ff) AM_READ(decocass_input_r) /* inputs */ - AM_RANGE(0xe700, 0xe700) AM_READ(decocass_sound_data_r) /* read sound CPU data */ - AM_RANGE(0xe701, 0xe701) AM_READ(decocass_sound_ack_r) /* read sound CPU ack status */ - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(ram1_w) AM_BASE(&rambase) - AM_RANGE(0x2000, 0x5fff) AM_WRITE(ram2_w) /* RMS3 RAM */ - AM_RANGE(0x6000, 0xbfff) AM_WRITE(charram_w) AM_BASE(&decocass_charram) /* still RMS3 RAM */ - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(fgvideoram_w) AM_BASE(&decocass_fgvideoram) AM_SIZE(&decocass_fgvideoram_size) /* DSP3 RAM */ - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(fgcolorram_w) AM_BASE(&decocass_colorram) AM_SIZE(&decocass_colorram_size) - AM_RANGE(0xc800, 0xcbff) AM_WRITE(mirrorvideoram_w) - AM_RANGE(0xcc00, 0xcfff) AM_WRITE(mirrorcolorram_w) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tileram_w) AM_BASE(&decocass_tileram) AM_SIZE(&decocass_tileram_size) - AM_RANGE(0xd800, 0xdbff) AM_WRITE(objectram_w) AM_BASE(&decocass_objectram) AM_SIZE(&decocass_objectram_size) - AM_RANGE(0xe000, 0xe0ff) AM_WRITE(decocass_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xe300, 0xe300) AM_WRITE(decocass_watchdog_count_w) - AM_RANGE(0xe301, 0xe301) AM_WRITE(decocass_watchdog_flip_w) - AM_RANGE(0xe302, 0xe302) AM_WRITE(decocass_color_missiles_w) - AM_RANGE(0xe400, 0xe400) AM_WRITE(decocass_reset_w) - -/* BIO-3 board */ - AM_RANGE(0xe402, 0xe402) AM_WRITE(decocass_mode_set_w) - AM_RANGE(0xe403, 0xe403) AM_WRITE(decocass_back_h_shift_w) - AM_RANGE(0xe404, 0xe404) AM_WRITE(decocass_back_vl_shift_w) - AM_RANGE(0xe405, 0xe405) AM_WRITE(decocass_back_vr_shift_w) - AM_RANGE(0xe406, 0xe406) AM_WRITE(decocass_part_h_shift_w) - AM_RANGE(0xe407, 0xe407) AM_WRITE(decocass_part_v_shift_w) - - AM_RANGE(0xe410, 0xe410) AM_WRITE(decocass_color_center_bot_w) - AM_RANGE(0xe411, 0xe411) AM_WRITE(decocass_center_h_shift_space_w) - AM_RANGE(0xe412, 0xe412) AM_WRITE(decocass_center_v_shift_w) - AM_RANGE(0xe413, 0xe413) AM_WRITE(decocass_coin_counter_w) - AM_RANGE(0xe414, 0xe414) AM_WRITE(decocass_sound_command_w) - AM_RANGE(0xe415, 0xe416) AM_WRITE(decocass_quadrature_decoder_reset_w) - AM_RANGE(0xe417, 0xe417) AM_WRITE(decocass_nmi_reset_w) - AM_RANGE(0xe420, 0xe42f) AM_WRITE(decocass_adc_w) - - AM_RANGE(0xe500, 0xe5ff) AM_WRITE(decocass_e5xx_w) - - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x17ff) AM_READ(decocass_sound_nmi_enable_r) - AM_RANGE(0x1800, 0x1fff) AM_READ(decocass_sound_data_ack_reset_r) - AM_RANGE(0xa000, 0xafff) AM_READ(decocass_sound_command_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1000, 0x17ff) AM_WRITE(decocass_sound_nmi_enable_w) - AM_RANGE(0x1800, 0x1fff) AM_WRITE(decocass_sound_data_ack_reset_w) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(decocass_sound_data_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_ROM) - AM_RANGE(0x0800, 0x083f) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x0800, 0x083f) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_mcu_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(i8041_p1_r) - AM_RANGE(0x02, 0x02) AM_READ(i8041_p2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( decocass_mcu_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_WRITE(i8041_p1_w) - AM_RANGE(0x02, 0x02) AM_WRITE(i8041_p2_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( decocass ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_START1 ) PORT_IMPULSE(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_START2 ) PORT_IMPULSE(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) - - PORT_START /* IN3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN4 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START /* IN6 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x30, "Board type" ) /* used by the "bios" */ - PORT_DIPSETTING( 0x00, "old" ) - PORT_DIPSETTING( 0x10, "invalid?" ) - PORT_DIPSETTING( 0x20, "invalid?" ) - PORT_DIPSETTING( 0x30, "new" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dc_btime ) - PORT_INCLUDE( decocass ) - - PORT_MODIFY("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x02, "40000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x08, 0x08, "Enemies" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x10, "End of Level Pepper" ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 3, /* 3 bits per pixel */ - { 2*1024*8*8, 1024*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 */ - 256, /* 256 sprites */ - 3, /* 3 bits per pixel */ - { 2*256*16*16, 256*16*16, 0 }, /* the bitplanes are separated */ - { 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7, - 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 characters */ - 16+1, /* 16 tiles (+1 empty tile used in the half-width bg tilemaps) */ - 3, /* 3 bits per pixel */ - { 2*16*16*16+4, 2*16*16*16+0, 4 }, - { 3*16*8+0, 3*16*8+1, 3*16*8+2, 3*16*8+3, - 2*16*8+0, 2*16*8+1, 2*16*8+2, 2*16*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8,10*8,11*8,12*8,13*8,14*8,15*8 }, - 2*16*16 /* every tile takes 64 consecutive bytes */ -}; - -static const UINT32 objlayout_planes[1] = - { 0 }; - -static const UINT32 objlayout_xoffset[64] = -{ - 7*8+0,7*8+1,7*8+2,7*8+3,7*8+4,7*8+5,7*8+6,7*8+7, - 6*8+0,6*8+1,6*8+2,6*8+3,6*8+4,6*8+5,6*8+6,6*8+7, - 5*8+0,5*8+1,5*8+2,5*8+3,5*8+4,5*8+5,5*8+6,5*8+7, - 4*8+0,4*8+1,4*8+2,4*8+3,4*8+4,4*8+5,4*8+6,4*8+7, - 3*8+0,3*8+1,3*8+2,3*8+3,3*8+4,3*8+5,3*8+6,3*8+7, - 2*8+0,2*8+1,2*8+2,2*8+3,2*8+4,2*8+5,2*8+6,2*8+7, - 1*8+0,1*8+1,1*8+2,1*8+3,1*8+4,1*8+5,1*8+6,1*8+7, - 0*8+0,0*8+1,0*8+2,0*8+3,0*8+4,0*8+5,0*8+6,0*8+7 -}; - -static const UINT32 objlayout_yoffset[64] = -{ - 63*2*64,62*2*64,61*2*64,60*2*64,59*2*64,58*2*64,57*2*64,56*2*64, - 55*2*64,54*2*64,53*2*64,52*2*64,51*2*64,50*2*64,49*2*64,48*2*64, - 47*2*64,46*2*64,45*2*64,44*2*64,43*2*64,42*2*64,41*2*64,40*2*64, - 39*2*64,38*2*64,37*2*64,36*2*64,35*2*64,34*2*64,33*2*64,32*2*64, - 31*2*64,30*2*64,29*2*64,28*2*64,27*2*64,26*2*64,25*2*64,24*2*64, - 23*2*64,22*2*64,21*2*64,20*2*64,19*2*64,18*2*64,17*2*64,16*2*64, - 15*2*64,14*2*64,13*2*64,12*2*64,11*2*64,10*2*64, 9*2*64, 8*2*64, - 7*2*64, 6*2*64, 5*2*64, 4*2*64, 3*2*64, 2*2*64, 1*2*64, 0*2*64 -}; - -static const gfx_layout objlayout = -{ - 64,64, /* 64x64 object */ - 2, /* 2 objects */ - 1, /* 1 bits per pixel */ - { 0 }, - EXTENDED_XOFFS, - EXTENDED_YOFFS, - 8*8, /* object takes 8 consecutive bytes */ - objlayout_xoffset, - objlayout_yoffset -}; - -static const gfx_layout missilelayout = -{ - 4,1, /* 4x1 object ?? */ - 1, /* 1 object */ - 1, /* 1 bits per pixel */ - { 0 }, - { 0, 0, 0, 0 }, - { 0 }, - 8 /* object takes a 1 bit from somewhere */ -}; - -static const gfx_decode decocass_gfxdecodeinfo[] = -{ - { 0, 0x6000, &charlayout, 0, 4 }, /* char set #1 */ - { 0, 0x6000, &spritelayout, 0, 4 }, /* sprites */ - { 0, 0xd000, &tilelayout, 32, 2 }, /* background tiles */ - { 0, 0xd800, &objlayout, 48, 4 }, /* object */ - { 0, 0xffff, &missilelayout, 0, 8 }, - { -1 } /* end of array */ -}; - -static PALETTE_INIT( decocass ) -{ - int i; - /* set up 32 colors 1:1 pens */ - for (i = 0; i < 32; i++) - colortable[i] = i; - - /* setup straight/flipped colors for background tiles (D7 of color_center_bot ?) */ - for (i = 0; i < 8; i++) - { - colortable[32+i] = 3*8+i; - colortable[40+i] = 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01); - } - - /* setup 4 colors for 1bpp object */ - colortable[48+0*2+0] = 0; - colortable[48+0*2+1] = 25; /* testtape red from 4th palette section? */ - colortable[48+1*2+0] = 0; - colortable[48+1*2+1] = 28; /* testtape blue from 4th palette section? */ - colortable[48+2*2+0] = 0; - colortable[48+2*2+1] = 26; /* testtape green from 4th palette section? */ - colortable[48+3*2+0] = 0; - colortable[48+3*2+1] = 23; /* ???? */ -} - - -static MACHINE_DRIVER_START( decocass ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502,750000) - MDRV_CPU_PROGRAM_MAP(decocass_readmem,decocass_writemem) - - MDRV_CPU_ADD(M6502,500000) /* 500 kHz */ - MDRV_CPU_PROGRAM_MAP(decocass_sound_readmem,decocass_sound_writemem) - - MDRV_CPU_ADD(I8X41,500000) /* 500 kHz ( I doubt it is 400kHz Al! )*/ - MDRV_CPU_PROGRAM_MAP(decocass_mcu_readmem,decocass_mcu_writemem) - MDRV_CPU_IO_MAP(decocass_mcu_readport,decocass_mcu_writeport) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(3072) /* frames per second, vblank duration */) - MDRV_INTERLEAVE(7) /* interleave CPUs */ - - MDRV_MACHINE_RESET(decocass) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(decocass_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(32+2*8+2*4) - - MDRV_PALETTE_INIT(decocass) - MDRV_VIDEO_START(decocass) - MDRV_VIDEO_UPDATE(decocass) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ctsttape ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(ctsttape) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( chwy ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(chwy) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( clocknch ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(clocknch) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ctisland ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(ctisland) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( csuperas ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(csuperas) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( castfant ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(castfant) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cluckypo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cluckypo) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cterrani ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cterrani) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cexplore ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cexplore) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cprogolf ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cprogolf) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cmissnx ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cmissnx) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cdiscon1 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cdiscon1) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cptennis ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cptennis) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ctornado ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(ctornado) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbnj ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cbnj) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cburnrub ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cburnrub) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbtime ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cbtime) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cgraplop ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cgraplop) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cgraplp2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cgraplp2) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( clapapa ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(clapapa) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cfghtice ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cfghtice) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cprobowl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cprobowl) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cnightst ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cnightst) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cprosocc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cprosocc) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cppicf ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cppicf) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cbdash ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cbdash) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cscrtry ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cscrtry) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cflyball ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(cflyball) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( czeroize ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(decocass) - MDRV_MACHINE_RESET(czeroize) - MDRV_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1) -MACHINE_DRIVER_END - - -#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \ - ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */ - - -#define DECOCASS_BIOS \ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ \ - ROM_LOAD_BIOS( 0, "rms8.cpu", 0xf000, 0x1000, CRC(23d929b7) SHA1(063f83020ba3d6f43ab8471f95ca919767b93aa4) ) \ - ROM_LOAD_BIOS( 1, "dsp3.p0b", 0xf000, 0x0800, CRC(b67a91d9) SHA1(681c040be0f0ed1ba0a50161b36d0ad8e1c8c5cb) ) \ - ROM_LOAD_BIOS( 1, "dsp3.p1b", 0xf800, 0x0800, CRC(3bfff5f3) SHA1(4e9437cb1b76d64da6b37f01bd6e879fb399e8ce) ) \ - -#define DECOCASS_COMMON_ROMS \ - DECOCASS_BIOS \ -\ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ \ - ROM_LOAD( "rms8.snd", 0xf800, 0x0800, CRC(b66b2c2a) SHA1(0097f38beb4872e735e560148052e258a26b08fd) ) \ -\ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 4k for the MCU (actually 1K ROM + 64 bytes RAM @ 0x800) */ \ - ROM_LOAD( "cass8041.bin", 0x0000, 0x0400, CRC(a6df18fd) SHA1(1f9ea47e372d31767c936c15852b43df2b0ee8ff) ) \ -\ - ROM_REGION( 0x00060, REGION_PROMS, 0 ) /* PROMS */ \ - ROM_LOAD( "dsp8.3m", 0x0000, 0x0020, CRC(238fdb40) SHA1(b88e8fabb82092105c3828154608ea067acbf2e5) ) \ - ROM_LOAD( "dsp8.10d", 0x0020, 0x0020, CRC(3b5836b4) SHA1(b630bb277d9ec09d46ef26b944014dd6165b35d8) ) \ - ROM_LOAD( "rms8.j3", 0x0040, 0x0020, CRC(51eef657) SHA1(eaedce5caf55624ad6ae706aedf82c5717c60f1f) ) /* DRAM banking and timing */ \ - - -SYSTEM_BIOS_START( decocass ) - SYSTEM_BIOS_ADD( 0, "bios0", "rms8.cpu" ) - SYSTEM_BIOS_ADD( 1, "bios1", "dsp3.p0b & dsp3.p1b" ) -SYSTEM_BIOS_END - -ROM_START( decocass ) - DECOCASS_COMMON_ROMS - -ROM_END - -/* The Following use Dongle Type 1 (DE-0061) - (dongle data same for each game) */ - -ROM_START( ctsttape ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "testtape.cas", 0x0000, 0x2000, CRC(4f9d8efb) SHA1(5b77747dad1033e5703f06c0870441b54b4256c5) ) -ROM_END - -ROM_START( chwy ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - /* The dongle data is reverse engineered from manual decryption */ - ROM_LOAD( "chwy.pro", 0x0000, 0x0020, BAD_DUMP CRC(2fae678e) SHA1(4a7de851442d4c1d690de03262f0e136a52fca35) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "chwy.cas", 0x0000, 0x8000, CRC(68a48064) SHA1(7e389737972fd0c54f398d296159c561f5ec3a93) ) -ROM_END - -ROM_START( clocknch ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "clocknch.cas", 0x0000, 0x8000, CRC(c9d163a4) SHA1(3ef55a8d8f603059e263776c08eb81f2cf18b75c) ) -ROM_END - -ROM_START( ctisland ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "ctisland.cas", 0x0000, 0x8000, CRC(3f63b8f8) SHA1(2fd0679ef9750a228ebb098672ab6091fda75804) ) - - ROM_REGION( 0x4000, REGION_USER3, 0 ) /* roms from the overlay pcb */ - ROM_LOAD( "deco-ti.x1", 0x0000, 0x1000, CRC(a7f8aeba) SHA1(0c9ba1a46d0636b36f40fad31638db89f374f778) ) - ROM_LOAD( "deco-ti.x2", 0x1000, 0x1000, CRC(2a0d3c91) SHA1(552d08fcddddbea5b52fa1e8decd188ae49c86ea) ) - ROM_LOAD( "deco-ti.x3", 0x2000, 0x1000, CRC(3a26b97c) SHA1(f57e76077806e149a9e455c85e5431eac2d42bc3) ) - ROM_LOAD( "deco-ti.x4", 0x3000, 0x1000, CRC(1cbe43de) SHA1(8f26ad224e96c87da810c60d3dd88d415400b9fc) ) -ROM_END - -ROM_START( ctislnd2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "ctislnd2.cas", 0x0000, 0x8000, CRC(2854b4c0) SHA1(d3b4e0031dbb2340fbbe396a1ff9b8fbfd63663e) ) - - ROM_REGION( 0x4000, REGION_USER3, 0 ) /* roms from the overlay pcb */ - ROM_LOAD( "deco-ti.x1", 0x0000, 0x1000, CRC(a7f8aeba) SHA1(0c9ba1a46d0636b36f40fad31638db89f374f778) ) - ROM_LOAD( "deco-ti.x2", 0x1000, 0x1000, CRC(2a0d3c91) SHA1(552d08fcddddbea5b52fa1e8decd188ae49c86ea) ) - ROM_LOAD( "deco-ti.x3", 0x2000, 0x1000, CRC(3a26b97c) SHA1(f57e76077806e149a9e455c85e5431eac2d42bc3) ) - ROM_LOAD( "deco-ti.x4", 0x3000, 0x1000, CRC(1cbe43de) SHA1(8f26ad224e96c87da810c60d3dd88d415400b9fc) ) -ROM_END - -ROM_START( ctislnd3 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "ctislnd3.cas", 0x0000, 0x8000, CRC(45464e1e) SHA1(03275694d963c7ab0e0f5525e248e69da5f9b591) ) - - ROM_REGION( 0x4000, REGION_USER3, 0 ) /* roms from the overlay pcb */ - ROM_LOAD( "deco-ti.x1", 0x0000, 0x1000, CRC(a7f8aeba) SHA1(0c9ba1a46d0636b36f40fad31638db89f374f778) ) - ROM_LOAD( "deco-ti.x2", 0x1000, 0x1000, CRC(2a0d3c91) SHA1(552d08fcddddbea5b52fa1e8decd188ae49c86ea) ) - ROM_LOAD( "deco-ti.x3", 0x2000, 0x1000, CRC(3a26b97c) SHA1(f57e76077806e149a9e455c85e5431eac2d42bc3) ) - ROM_LOAD( "deco-ti.x4", 0x3000, 0x1000, CRC(1cbe43de) SHA1(8f26ad224e96c87da810c60d3dd88d415400b9fc) ) -ROM_END - -ROM_START( csuperas ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "csuperas.cas", 0x0000, 0x8000, CRC(fabcd07f) SHA1(4070c668ad6725f0710cf7fe6df0d5f80272a449) ) -ROM_END - -ROM_START( castfant ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "castfant.cas", 0x0000, 0x8000, CRC(6d77d1b5) SHA1(821bd65fbe887cbeac9281a2ad3f88595918f886) ) -ROM_END - -ROM_START( cluckypo ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cluckypo.cas", 0x0000, 0x8000, CRC(2070c243) SHA1(cd3af309af8eb27937756c1fe6fd0504be5aaaf5) ) -ROM_END - -ROM_START( cterrani ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cterrani.cas", 0x0000, 0x8000, CRC(eb71adbc) SHA1(67becfde39c034d4b8edc2eb100050de102773da) ) -ROM_END - -ROM_START( cexplore ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - /* The dongle data is reverse engineered by table analysis */ - ROM_LOAD( "cexplore.pro", 0x0000, 0x0020, BAD_DUMP CRC(c7a9ac8f) SHA1(b0a566d948f71a4eddcde0dd5e9e69ca96f71c36) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cexplore.cas", 0x0000, 0x8000, CRC(fae49c66) SHA1(4ae69e2f706fdf30204f0aa1277619395cacc21b) ) - - ROM_REGION( 0x4000, REGION_USER3, 0 ) /* roms from the overlay pcb */ - ROM_LOAD( "cexplore_overlay_roms", 0x0000, 0x4000, NO_DUMP ) -ROM_END - -ROM_START( cprogolf ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00020, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cprogolf.cas", 0x0000, 0x8000, CRC(02123cd1) SHA1(e4c630ed293725f23d539cb43beb97953558dabd) ) -ROM_END - -/* The Following use Dongle Type 2 (CS82-007) - (dongle data differs for each game) */ - -ROM_START( cmissnx ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00800, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cmissnx.pro", 0x0000, 0x0800, CRC(8a41c071) SHA1(7b16d933707bf21d25dcd11db6a6c28834b11c5b) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cmissnx.cas", 0x0000, 0x8000, CRC(3a094e11) SHA1(c355fe14838187cbde19a799e5c60083c82615ac) ) -ROM_END - -ROM_START( cdiscon1 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00800, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cdiscon1.pro", 0x0000, 0x0800, CRC(0f793fab) SHA1(331f1b1b482fcd10f42c388a503f9af62d705401) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cdiscon1.cas", 0x0000, 0x8000, CRC(1429a397) SHA1(12f9e03fcda31dc6161a39bf5c3315a1e9e94565) ) -ROM_END - -ROM_START( csweetht ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00800, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cdiscon1.pro", 0x0000, 0x0800, CRC(0f793fab) SHA1(331f1b1b482fcd10f42c388a503f9af62d705401) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "csweetht.cas", 0x0000, 0x8000, CRC(175ef706) SHA1(49b86233f69d0daf54a6e59b86e69b8159e8f6cc) ) -ROM_END - -ROM_START( cptennis ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00800, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cptennis.pro", 0x0000, 0x0800, CRC(59b8cede) SHA1(514861a652b5256a11477fc357bc01dfd87f712b) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cptennis.cas", 0x0000, 0x8000, CRC(6bb257fe) SHA1(7554bf1996bc9e9c04a276aab050708d70103f54) ) -ROM_END - -ROM_START( ctornado ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x00800, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "ctornado.pro", 0x0000, 0x0800, CRC(c9a91697) SHA1(3f7163291edbdf1a596e3cd2b7a16bbb140ffb36) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "ctornado.cas", 0x0000, 0x8000, CRC(e4e36ce0) SHA1(48a11823121fb2e3de31ae08e453c0124fc4f7f3) ) -ROM_END - -/* The Following use Dongle Type 3 (unknown part number?) - (dongle data differs for each game) */ - -ROM_START( cburnrub ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cburnrub.pro", 0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cburnrub.cas", 0x0000, 0x8000, CRC(4528ac22) SHA1(dc0fcc5e5fd21c1c858a90f43c175e36a24b3c3d) ) -ROM_END - -ROM_START( cburnrb2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cburnrub.pro", 0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cburnrb2.cas", 0x0000, 0x8000, CRC(84a9ed66) SHA1(a9c536e46b89fc6b9c6271776292fed1241d2f3f) ) -ROM_END - -ROM_START( cbnj ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cburnrub.pro", 0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cbnj.cas", 0x0000, 0x8000, CRC(eed41560) SHA1(85d5df76efac33cd10427f659c4259afabb3daaf) ) -ROM_END - -ROM_START( cbtime ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cbtime.pro", 0x0000, 0x1000, CRC(25bec0f0) SHA1(9fb1f9699f37937421e26d4fb8fdbcd21a5ddc5c) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cbtime.cas", 0x0000, 0x8000, CRC(56d7dc58) SHA1(34b2513c9ca7ab40f532b6d6d911aa3012113632) ) -ROM_END - -ROM_START( cgraplop ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cgraplop.pro", 0x0000, 0x1000, CRC(ee93787d) SHA1(0c753d62fdce2fdbd5b329a5aa259a967d07a651) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cgraplop.cas", 0x0000, 0x8000, CRC(d2c1c1bb) SHA1(db67304caa11540363735e7d4bf03507ccbe9980) ) -ROM_END - -ROM_START( cgraplp2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cgraplop.pro", 0x0000, 0x1000, CRC(ee93787d) SHA1(0c753d62fdce2fdbd5b329a5aa259a967d07a651) ) /* is this right for this set? */ - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cgraplp2.cas", 0x0000, 0x8000, CRC(2e728981) SHA1(83ba90d95858d647315a1c311b8643672afea5f7) ) -ROM_END - -ROM_START( clapapa ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "clapapa.pro", 0x0000, 0x1000, CRC(e172819a) SHA1(3492775f4f0a0b31ce5a1a998076829b3f264e98) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "clapapa.cas", 0x0000, 0x8000, CRC(4ffbac24) SHA1(1ec0d7ac1886d4b430dc12be27f387e9d952d235) ) -ROM_END - -ROM_START( clapapa2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "clapapa.pro", 0x0000, 0x1000, CRC(e172819a) SHA1(3492775f4f0a0b31ce5a1a998076829b3f264e98) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "clapapa2.cas", 0x0000, 0x8000, CRC(069dd3c4) SHA1(5a19392c7ac5aea979187c96267e73bf5126307e) ) -ROM_END - -ROM_START( cfghtice ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cfghtice.pro", 0x0000, 0x1000, CRC(5abd27b5) SHA1(2ab1c171adffd491759036d6ce2433706654aad2) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cfghtice.cas", 0x0000, 0x10000, CRC(906dd7fb) SHA1(894a7970d5476ed035edd15656e5cf10d6ddcf57) ) -ROM_END - -ROM_START( cprobowl ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cprobowl.pro", 0x0000, 0x1000, CRC(e3a88e60) SHA1(e6e9a2e5ab26e0463c63201a15f7d5a429ec836e) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cprobowl.cas", 0x0000, 0x8000, CRC(cb86c5e1) SHA1(66c467418cff2ed6d7c121a8b1650ee97ae48fe9) ) -ROM_END - -ROM_START( cnightst ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cnightst.pro", 0x0000, 0x1000, CRC(553b0fbc) SHA1(2cdf4560992b62e59b6de760d7996be4ed25f505) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cnightst.cas", 0x0000, 0x8000, CRC(c6f844cb) SHA1(5fc6154c20ee4e2f4049a78df6f3cacbb96b0dc0) ) -ROM_END - -ROM_START( cnights2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cnightst.pro", 0x0000, 0x1000, CRC(553b0fbc) SHA1(2cdf4560992b62e59b6de760d7996be4ed25f505) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cnights2.cas", 0x0000, 0x8000, CRC(1a28128c) SHA1(4b620a1919d02814f734aba995115c09dc2db930) ) -ROM_END - -ROM_START( cprosocc ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cprosocc.pro", 0x0000, 0x1000, CRC(919fabb2) SHA1(3d6a0676cea7b0be0fe69d06e04ca08c36b2851a) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cprosocc.cas", 0x0000, 0x10000, CRC(76b1ad2c) SHA1(6188667e5bc001dfdf83deaf7251eae794de4702) ) -ROM_END - -ROM_START( cppicf ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cppicf.pro", 0x0000, 0x1000, CRC(0b1a1ecb) SHA1(2106da6837c78812c102b0eaaa1127fcc21ea780) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cppicf.cas", 0x0000, 0x8000, CRC(8c02f160) SHA1(03430dd8d4b2e6ca931986dac4d39be6965ffa6f) ) -ROM_END - -ROM_START( cppicf2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cppicf.pro", 0x0000, 0x1000, CRC(0b1a1ecb) SHA1(2106da6837c78812c102b0eaaa1127fcc21ea780) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cppicf2.cas", 0x0000, 0x8000, CRC(78ffa1bc) SHA1(d15f2a240ae7b45885d32b5f507243f82e820d4b) ) -ROM_END - -/* The Following use Dongle Type 4 (unknown part number?) - (dongle data probably differs for each game, but only one is known using it atm) */ - -ROM_START( cscrtry ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cscrtry.pro", 0x0000, 0x8000, CRC(7bc3460b) SHA1(7c5668ff9a5073e27f4a83b02d79892eb4df6b92) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cscrtry.cas", 0x0000, 0x8000, CRC(5625f0ca) SHA1(f4b0a6f2ca908880386838f06b626479b4b74134) ) -ROM_END - -ROM_START( cscrtry2 ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "cscrtry.pro", 0x0000, 0x8000, CRC(7bc3460b) SHA1(7c5668ff9a5073e27f4a83b02d79892eb4df6b92) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cscrtry2.cas", 0x0000, 0x8000, CRC(04597842) SHA1(7f1fc3e06b61df880debe9056bdfbbb8600af739) ) -ROM_END - -/* The Following use Dongle Type 5 (unknown part number?) - (dongle data not read) */ - -ROM_START( cbdash ) - DECOCASS_COMMON_ROMS - -/* ROM_REGION( 0x01000, REGION_USER1, 0 ) */ /* (max) 4k for dongle data */ - /* no proms */ - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cbdash.cas", 0x0000, 0x8000, CRC(cba4c1af) SHA1(5d163d8e31c58b20679c6be06b1aa02df621822b) ) -ROM_END - -/* The Following have no Dongles at all */ - -ROM_START( cflyball ) - DECOCASS_COMMON_ROMS - - /* no dongle data */ - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "cflyball.cas", 0x0000, 0x10000, CRC(cb40d043) SHA1(57698bac7e0d552167efa99d08116bf19a3b29c9) ) -ROM_END - -/* The Following have unknown Dongles - (dongle data not read) */ - -ROM_START( czeroize ) - DECOCASS_COMMON_ROMS - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* dongle data */ - ROM_LOAD( "czeroize.pro", 0x0000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* (max) 64k for cassette image */ - ROM_LOAD( "czeroize.cas", 0x0000, 0x10000, CRC(3ef0a406) SHA1(645b34cd477e0bb5539c8fe937a7a2dbd8369003) ) -ROM_END - - -static DRIVER_INIT( decocass ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int A; - - /* allocate memory and mark all RAM regions with their decrypted pointers */ - decrypted = auto_malloc(0x10000); - memory_set_decrypted_region(0, 0x0000, 0xc7ff, &decrypted[0x0000]); - memory_set_decrypted_region(0, 0xd000, 0xdbff, &decrypted[0xd000]); - memory_set_decrypted_region(0, 0xf000, 0xffff, &decrypted[0xf000]); - - /* Swap bits 5 & 6 for opcodes */ - for (A = 0xf000;A < 0x10000;A++) - decrypted[A] = swap_bits_5_6(rom[A]); - - /* Call the state save setup code in machine/decocass.c */ - decocass_machine_state_save_init(); - /* and in vidhrdw/decocass.c, too */ - decocass_video_state_save_init(); -} - -static DRIVER_INIT( decocrom ) -{ - int romlength = memory_region_length(REGION_USER3); - UINT8 *rom = memory_region(REGION_USER3); - UINT8 *decrypted2 = auto_malloc(romlength); - int i; - - /* standard init */ - init_decocass(machine); - - /* decrypt the ROMs */ - for (i = 0; i < romlength; i++) - decrypted2[i] = swap_bits_5_6(rom[i]); - - /* convert charram to a banked ROM */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0xafff, 0, 0, MRA8_BANK1); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0xafff, 0, 0, decocass_de0091_w); - memory_configure_bank(1, 0, 1, decocass_charram, 0); - memory_configure_bank(1, 1, 1, memory_region(REGION_USER3), 0); - memory_configure_bank_decrypted(1, 0, 1, &decrypted[0x6000], 0); - memory_configure_bank_decrypted(1, 1, 1, decrypted2, 0); - memory_set_bank(1, 0); - - /* install the bank selector */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe900, 0xe900, 0, 0, decocass_e900_w); -} - - -GAMEB( 1981, decocass, 0, decocass, decocass, decocass, decocass, ROT270, "Data East Corporation", "Cassette System", NOT_A_DRIVER ) -GAMEB( 1981, ctsttape, decocass, decocass, ctsttape, decocass, decocass, ROT270, "Data East Corporation", "Test Tape (Cassette)", 0 ) -GAMEB( 1980, chwy, decocass, decocass, chwy, decocass, decocass, ROT270, "Data East Corporation", "Highway Chase (Cassette)", 0 ) -GAMEB( 1981, clocknch, decocass, decocass, clocknch, decocass, decocass, ROT270, "Data East Corporation", "Lock'n'Chase (Cassette)", 0 ) -GAMEB( 1981, ctisland, decocass, decocass, ctisland, decocass, decocrom, ROT270, "Data East Corporation", "Treasure Island (Cassette, set 1)", 0 ) -GAMEB( 1981, ctislnd2, ctisland, decocass, ctisland, decocass, decocrom, ROT270, "Data East Corporation", "Treasure Island (Cassette, set 2)", 0 ) -GAMEB( 1981, ctislnd3, ctisland, decocass, ctisland, decocass, decocrom, ROT270, "Data East Corporation", "Treasure Island (Cassette, set 3)", GAME_NOT_WORKING ) /* Different Bitswap? */ -GAMEB( 1981, csuperas, decocass, decocass, csuperas, decocass, decocass, ROT270, "Data East Corporation", "Super Astro Fighter (Cassette)", 0 ) -GAMEB( 1981, castfant, decocass, decocass, castfant, decocass, decocass, ROT270, "Data East Corporation", "Astro Fantasia (Cassette)", 0 ) -GAMEB( 1981, cluckypo, decocass, decocass, cluckypo, decocass, decocass, ROT270, "Data East Corporation", "Lucky Poker (Cassette)", 0 ) -GAMEB( 1981, cterrani, decocass, decocass, cterrani, decocass, decocass, ROT270, "Data East Corporation", "Terranean (Cassette)", 0 ) -GAMEB( 1982, cexplore, decocass, decocass, cexplore, decocass, decocass, ROT270, "Data East Corporation", "Explorer (Cassette)", GAME_NOT_WORKING ) -GAMEB( 1981, cprogolf, decocass, decocass, cprogolf, decocass, decocass, ROT270, "Data East Corporation", "Pro Golf (Cassette)", 0 ) -GAMEB( 1982, cmissnx, decocass, decocass, cmissnx, decocass, decocass, ROT270, "Data East Corporation", "Mission-X (Cassette)", 0 ) -GAMEB( 1982, cdiscon1, decocass, decocass, cdiscon1, decocass, decocass, ROT270, "Data East Corporation", "Disco No.1 (Cassette)", 0 ) -GAMEB( 1982, csweetht, cdiscon1, decocass, cdiscon1, decocass, decocass, ROT270, "Data East Corporation", "Sweet Heart (Cassette)", 0 ) -GAMEB( 1982, cptennis, decocass, decocass, cptennis, decocass, decocass, ROT270, "Data East Corporation", "Pro Tennis (Cassette)", 0 ) -GAMEB( 1982, ctornado, decocass, decocass, ctornado, decocass, decocass, ROT270, "Data East Corporation", "Tornado (Cassette)", 0 ) -GAMEB( 1982, cburnrub, decocass, decocass, cburnrub, decocass, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (Cassette, set 1)", 0 ) -GAMEB( 1982, cburnrb2, cburnrub, decocass, cburnrub, decocass, decocass, ROT270, "Data East Corporation", "Burnin' Rubber (Cassette, set 2)", 0 ) -GAMEB( 1982, cbnj, cburnrub, decocass, cbnj, decocass, decocass, ROT270, "Data East Corporation", "Bump N Jump (Cassette)", 0 ) -GAMEB( 1983, cbtime, decocass, decocass, cbtime, dc_btime, decocass, ROT270, "Data East Corporation", "Burger Time (Cassette)", 0 ) -GAMEB( 1983, cgraplop, decocass, decocass, cgraplop, decocass, decocass, ROT270, "Data East Corporation", "Graplop (aka Cluster Buster) (Cassette, set 1)", 0 ) -GAMEB( 1983, cgraplp2, cgraplop, decocass, cgraplp2, decocass, decocass, ROT270, "Data East Corporation", "Graplop (aka Cluster Buster) (Cassette, set 2)", GAME_NOT_WORKING ) -GAMEB( 1983, clapapa, decocass, decocass, clapapa, decocass, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' (aka La.Pa.Pa) (Cassette)" , 0) /* Displays 'LaPaPa during attract */ -GAMEB( 1983, clapapa2, clapapa, decocass, clapapa, decocass, decocass, ROT270, "Data East Corporation", "Rootin' Tootin' (Cassette)" , 0) /* Displays 'Rootin' Tootin' during attract */ -GAMEB( 1984, cfghtice, decocass, decocass, cfghtice, decocass, decocass, ROT270, "Data East Corporation", "Fighting Ice Hockey (Cassette)", 0 ) -GAMEB( 1983, cprobowl, decocass, decocass, cprobowl, decocass, decocass, ROT270, "Data East Corporation", "Pro Bowling (Cassette)", 0 ) -GAMEB( 1983, cnightst, decocass, decocass, cnightst, decocass, decocass, ROT270, "Data East Corporation", "Night Star (Cassette, set 1)", 0 ) -GAMEB( 1983, cnights2, cnightst, decocass, cnightst, decocass, decocass, ROT270, "Data East Corporation", "Night Star (Cassette, set 2)", 0 ) -GAMEB( 1983, cprosocc, decocass, decocass, cprosocc, decocass, decocass, ROT270, "Data East Corporation", "Pro Soccer (Cassette)", 0 ) -GAMEB( 1983, czeroize, decocass, decocass, czeroize, decocass, decocass, ROT270, "Data East Corporation", "Zeroize (Cassette)", 0 ) -GAMEB( 1984, cppicf, decocass, decocass, cppicf, decocass, decocass, ROT270, "Data East Corporation", "Peter Pepper's Ice Cream Factory (Cassette, set 1)", 0 ) -GAMEB( 1984, cppicf2, cppicf, decocass, cppicf, decocass, decocass, ROT270, "Data East Corporation", "Peter Pepper's Ice Cream Factory (Cassette, set 2)", 0 ) -GAMEB( 1984, cscrtry, decocass, decocass, cscrtry, decocass, decocass, ROT270, "Data East Corporation", "Scrum Try (Cassette, set 1)", 0 ) -GAMEB( 1984, cscrtry2, cscrtry, decocass, cscrtry, decocass, decocass, ROT270, "Data East Corporation", "Scrum Try (Cassette, set 2)", 0 ) -GAMEB( 1985, cflyball, decocass, decocass, cflyball, decocass, decocass, ROT270, "Data East Corporation", "Flying Ball (Cassette)", GAME_NO_SOUND ) -GAMEB( 1985, cbdash, decocass, decocass, cbdash, decocass, decocass, ROT270, "Data East Corporation", "Boulder Dash (Cassette)", 0 ) diff --git a/src/drivers/djboy.c b/src/drivers/djboy.c deleted file mode 100644 index 01e3faed0..000000000 --- a/src/drivers/djboy.c +++ /dev/null @@ -1,684 +0,0 @@ -/* -DJ Boy (c)1989 Kanako - -Hardware has many similarities to Airbusters. - -You must manually reset (F3) after booting up to proceed. -There's likely an unemulated hardware watchdog. - -Video hardware and sound should both be mostly correct. -There's still some missing protection and/or exotic CPU communication. - -Self Test: -press button#3 to advance past color pattern -buttons 1,2,3 are used to select and play sound/music - - -- CPU0 manages sprites, which are also used to display text - irq (0x10) - timing/watchdog - irq (0x30) - processes sprites - nmi: wakes up this cpu - -- CPU1 manages the protection device, palette, and tilemap(s) - nmi: resets this cpu - irq: game update - additional protection at d8xx? - -- CPU2 manages sound chips - irq: update music - nmi: handle sound command - - The protection device provides an API to poll dipswitches and inputs. - It is probably involved with the memory range 0xd800..0xd8ff, which CPU2 reads. - It handles coin input and coinage internally. - The real game shouts "DJ Boy!" every time a credit is inserted. - - -Genre: Scrolling Fighter -Orientation: Horizontal -Type: Raster: Standard Resolution -CRT: Color -Conversion Class: JAMMA -Number of Simultaneous Players: 2 -Maximum number of Players: 2 -Gameplay: Joint -Control Panel Layout: Multiple Player -Joystick: 8-way -Buttons: 3 - Punch, Kick, Jump -Sound: Amplified Mono (one channel) - Stereo sound is available -through a 4-pin header (voice of Wolfman Jack!!) - - - BS-65 6116 - BS-101 6116 -6264 780C-2 -BS-005 -BS-004 6264 -16mhz -12mhz beast - 41101 -BS-003 BS-203 6295 2203 -BS-000 pandora 780C-2 6295 -BS-001 -BS-002 4464 4464 BS-100 6264 -BS07 4464 4464 BS-64 BS-200 -*/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/2203intf.h" -#include "sound/okim6295.h" - -/* public functions from vidhrdw/djboy.h */ -extern void djboy_set_videoreg( UINT8 data ); -extern WRITE8_HANDLER( djboy_scrollx_w ); -extern WRITE8_HANDLER( djboy_scrolly_w ); -extern WRITE8_HANDLER( djboy_videoram_w ); -extern WRITE8_HANDLER( djboy_paletteram_w ); -extern VIDEO_START( djboy ); -extern VIDEO_UPDATE( djboy ); - -static UINT8 *sharedram; -static READ8_HANDLER( sharedram_r ) { return sharedram[offset]; } -static WRITE8_HANDLER( sharedram_w ) { sharedram[offset] = data; } - -/******************************************************************************/ - -static WRITE8_HANDLER( trigger_nmi_on_cpu0 ) -{ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static WRITE8_HANDLER( cpu0_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - logerror( "cpu1_bankswitch( 0x%02x )\n", data ); - if( data < 4 ) - { - RAM = &RAM[0x2000 * data]; - } - else - { - RAM = &RAM[0x10000 + 0x2000 * (data-4)]; - } - memory_set_bankptr(1,RAM); -} - -/******************************************************************************/ - -static WRITE8_HANDLER( cpu1_bankswitch_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU2); - djboy_set_videoreg( data ); - switch( data&0xf ) - { - /* bs65.5y */ - case 0x00: memory_set_bankptr(2,&RAM[0x00000]); break; - case 0x01: memory_set_bankptr(2,&RAM[0x04000]); break; - case 0x02: memory_set_bankptr(2,&RAM[0x10000]); break; - case 0x03: memory_set_bankptr(2,&RAM[0x14000]); break; - - /* bs101.6w */ - case 0x08: memory_set_bankptr(2,&RAM[0x18000]); break; - case 0x09: memory_set_bankptr(2,&RAM[0x1c000]); break; - case 0x0a: memory_set_bankptr(2,&RAM[0x20000]); break; - case 0x0b: memory_set_bankptr(2,&RAM[0x24000]); break; - case 0x0c: memory_set_bankptr(2,&RAM[0x28000]); break; - case 0x0d: memory_set_bankptr(2,&RAM[0x2c000]); break; - case 0x0e: memory_set_bankptr(2,&RAM[0x30000]); break; - case 0x0f: memory_set_bankptr(2,&RAM[0x34000]); break; - - default: - break; - } -} - -static int prot_busy_count; -#define PROT_OUTPUT_BUFFER_SIZE 8 -static UINT8 prot_output_buffer[PROT_OUTPUT_BUFFER_SIZE]; -static int prot_available_data_count; -static int prot_offs; /* internal state */ -static UINT8 prot_ram[0x80]; /* internal RAM */ - -static enum -{ - ePROT_NORMAL, - ePROT_WRITE_BYTES, - ePROT_WRITE_BYTE, - ePROT_READ_BYTES, - ePROT_WAIT_DSW1_WRITEBACK, - ePROT_WAIT_DSW2_WRITEBACK, - ePROT_STORE_PARAM -} prot_mode; - -static void -ProtectionOut( int i, UINT8 data ) -{ - if( prot_available_data_count == i ) - { - prot_output_buffer[prot_available_data_count++] = data; - } - else - { - logerror( "prot_output_buffer overflow!\n" ); - exit(1); - } -} - -static void -OutputProtectionState( int i, int type ) -{ /* 0..e */ - int dat = 0x82; - ProtectionOut( i, dat ); -} - -static void -CommonProt( int i, int type ) -{ - ProtectionOut( i++, 1/*credits*/ ); - ProtectionOut( i++, readinputport(0) ); /* COIN/START */ - OutputProtectionState( i, type ); -} - -static WRITE8_HANDLER( prot_data_w ) -{ - prot_busy_count = 1; - - logerror( "0x%04x: prot_w(0x%02x)\n", activecpu_get_pc(), data ); - - if( prot_mode == ePROT_WAIT_DSW1_WRITEBACK ) - { - logerror( "[DSW1_WRITEBACK]\n" ); - ProtectionOut( 0, readinputport(4) ); /* DSW2 */ - prot_mode = ePROT_WAIT_DSW2_WRITEBACK; - } - else if( prot_mode == ePROT_WAIT_DSW2_WRITEBACK ) - { - logerror( "[DSW2_WRITEBACK]\n" ); - prot_mode = ePROT_STORE_PARAM; - prot_offs = 0; - } - else if( prot_mode == ePROT_STORE_PARAM ) - { - logerror( "prot param[%d]: 0x%02x\n", prot_offs, data ); - prot_offs++; - if( prot_offs == 8 ) - { - prot_mode = ePROT_NORMAL; - } - } - else if( prot_mode == ePROT_WRITE_BYTE ) - { /* pc == 0x79cd */ - prot_ram[(prot_offs++)&0x7f] = data; - prot_mode = ePROT_WRITE_BYTES; - } - else - { - switch( data ) - { - case 0x00: - if( prot_mode == ePROT_WRITE_BYTES ) - { /* next byte is data to write to internal prot RAM */ - prot_mode = ePROT_WRITE_BYTE; - } - else if( prot_mode == ePROT_READ_BYTES ) - { /* request next byte of internal prot RAM */ - ProtectionOut( 0, prot_ram[(prot_offs++)&0x7f] ); - } - else - { - logerror( "UNEXPECTED PREFIX!\n" ); - } - break; - - case 0x01: // pc=7389 - OutputProtectionState( 0, 0x01 ); - break; - - case 0x02: - CommonProt( 0,0x02 ); - break; - - case 0x03: /* prepare for memory write to protection device ram (pc == 0x7987) */ // -> 0x02 - logerror( "[WRITE BYTES]\n" ); - prot_mode = ePROT_WRITE_BYTES; - prot_offs = 0; - break; - - case 0x04: - ProtectionOut( 0,0 ); // ? - ProtectionOut( 1,0 ); // ? - ProtectionOut( 2,0 ); // ? - ProtectionOut( 3,0 ); // ? - CommonProt( 4,0x04 ); - break; - - case 0x05: /* 0x71f4 */ - ProtectionOut( 0,readinputport(1) ); // to $42 - ProtectionOut( 1,0 ); // ? - ProtectionOut( 2,readinputport(2) ); // to $43 - ProtectionOut( 3,0 ); // ? - ProtectionOut( 4,0 ); // ? - CommonProt( 5,0x05 ); - break; - - case 0x07: - CommonProt( 0,0x07 ); - break; - - case 0x08: /* pc == 0x727a */ - ProtectionOut( 0,readinputport(0) ); /* COIN/START */ - ProtectionOut( 1,readinputport(1) ); /* JOY1 */ - ProtectionOut( 2,readinputport(2) ); /* JOY2 */ - ProtectionOut( 3,readinputport(3) ); /* DSW1 */ - ProtectionOut( 4,readinputport(4) ); /* DSW2 */ - CommonProt( 5, 0x08 ); - break; - - case 0x09: - ProtectionOut( 0,0 ); // ? - ProtectionOut( 1,0 ); // ? - ProtectionOut( 2,0 ); // ? - CommonProt( 3, 0x09 ); - break; - - case 0x0a: - CommonProt( 0,0x0a ); - break; - - case 0x0c: - CommonProt( 1,0x0c ); - break; - - case 0x0d: - CommonProt( 2,0x0d ); - break; - - case 0xfe: /* prepare for memory read from protection device ram (pc == 0x79ee, 0x7a3f) */ - if( prot_mode == ePROT_WRITE_BYTES ) - { - prot_mode = ePROT_READ_BYTES; - logerror( "[READ BYTES]\n" ); - } - else - { - prot_mode = ePROT_WRITE_BYTES; - logerror( "[WRITE BYTES*]\n" ); - } - prot_offs = 0; - break; - - case 0xff: /* read DSW (pc == 0x714d) */ - ProtectionOut( 0,readinputport(3) ); /* DSW1 */ - prot_mode = ePROT_WAIT_DSW1_WRITEBACK; - break; - - case 0x92: - case 0x97: - case 0x9a: - case 0xa3: - case 0xa5: - case 0xa9: - case 0xad: - case 0xb0: - case 0xb3: - case 0xb7: - //ix+$60 - break; - - default: - logerror( "UNKNOWN PROT_W!\n" ); - exit(1); - break; - } - } -} /* prot_data_w */ - -static READ8_HANDLER( prot_data_r ) -{ /* port#4 */ - UINT8 data = 0x00; - if( prot_available_data_count ) - { - int i; - data = prot_output_buffer[0]; - prot_available_data_count--; - for( i=0; i> 0) & 0xff; - g = (data >> 8) & 0xff; - b = (data >> 16) & 0xff; - - palette_set_color(Machine, offset, r, g, b); -} - - -//--------- - -static void sndram_set_bank(void) -{ - sndram = memory_region(REGION_SOUND1) + 0x80000 * sndram_bank; -} - -static WRITE32_HANDLER( sndram_bank_w ) -{ - if (ACCESSING_MSW32) - { - sndram_bank = (data >> 16) & 0x1f; - sndram_set_bank(); - } -} - -static READ32_HANDLER( sndram_r ) -{ - UINT32 data = 0; - - if ((mem_mask & 0xff000000) == 0) - data |= sndram[offset * 4] << 24; - - if ((mem_mask & 0x00ff0000) == 0) - data |= sndram[offset * 4 + 1] << 16; - - if ((mem_mask & 0x0000ff00) == 0) - data |= sndram[offset * 4 + 2] << 8; - - if ((mem_mask & 0x000000ff) == 0) - data |= sndram[offset * 4 + 3]; - - return data; -} - -static WRITE32_HANDLER( sndram_w ) -{ - if ((mem_mask & 0xff000000) == 0) - sndram[offset * 4] = data >> 24; - - if ((mem_mask & 0x00ff0000) == 0) - sndram[offset * 4 + 1] = data >> 16; - - if ((mem_mask & 0x0000ff00) == 0) - sndram[offset * 4 + 2] = data >> 8; - - if ((mem_mask & 0x000000ff) == 0) - sndram[offset * 4 + 3] = data; -} - - -//--------- - -static READ16_HANDLER( dual539_16_r ) -{ - UINT16 ret = 0; - - if (ACCESSING_LSB16) - ret |= K054539_1_r(offset); - if (ACCESSING_MSB16) - ret |= K054539_0_r(offset)<<8; - - return ret; -} - -static WRITE16_HANDLER( dual539_16_w ) -{ - if (ACCESSING_LSB16) - K054539_1_w(offset, data); - if (ACCESSING_MSB16) - K054539_0_w(offset, data>>8); -} - -static READ32_HANDLER( dual539_r ) -{ - UINT32 data = 0; - - if (~mem_mask & 0xffff0000) - data |= dual539_16_r(offset * 2, mem_mask >> 16) << 16; - if (~mem_mask & 0x0000ffff) - data |= dual539_16_r(offset * 2 + 1, mem_mask); - - return data; -} - -static WRITE32_HANDLER( dual539_w ) -{ - if (~mem_mask & 0xffff0000) - dual539_16_w(offset * 2, data >> 16, mem_mask >> 16); - if (~mem_mask & 0x0000ffff) - dual539_16_w(offset * 2 + 1, data, mem_mask); -} - - -//--------- - -static READ32_HANDLER( obj_ctrl_r ) -{ - // read obj_regs[0x0c/4]: unknown - // read obj_regs[0x24/4]: unknown - - return obj_regs[offset]; -} - -static WRITE32_HANDLER( obj_ctrl_w ) -{ - // write obj_regs[0x28/4]: bank for rom readthrough - - COMBINE_DATA(&obj_regs[offset]); -} - -static READ32_HANDLER( obj_rom_r ) -{ - UINT8 *mem8 = memory_region(REGION_GFX1); - int bank = obj_regs[0x28/4] >> 16; - - offset += bank * 0x200; - offset *= 4; - - if (~mem_mask & 0x0000ffff) - offset += 2; - - if (~mem_mask & 0xff00ff00) - offset++; - - return mem8[offset] * 0x01010101; -} - - -//--------- - -static WRITE32_HANDLER( v_ctrl_w ) -{ - if (ACCESSING_MSW32) - { - data >>= 16; - mem_mask >>= 16; - COMBINE_DATA(&v_ctrl); - - if (pending_vb_int && !DISABLE_VB_INT) - { - pending_vb_int = 0; - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); - } - } -} - -static READ32_HANDLER( v_rom_r ) -{ - UINT8 *mem8 = memory_region(REGION_GFX2); - int bank = K056832_word_r(0x34/2, 0xffff); - - offset *= 2; - - if (!ACCESSING_MSB32) - offset += 1; - - offset += bank * 0x800 * 4; - - if (v_ctrl & 0x020) - offset += 0x800 * 2; - - return mem8[offset] * 0x01010000; -} - - -//--------- - -static READ32_HANDLER( inp1_r ) -{ - UINT32 result = (readinputport(5)<<24) | (readinputport(2)<<16) | (readinputport(1)<<8) | readinputport(0); - - return result; -} - -static READ32_HANDLER( inp2_r ) -{ - return (readinputport(3)<<24) | (readinputport(4)<<16) | 0xffff; -} - -static READ32_HANDLER( turntable_r ) -{ - UINT32 result = 0; - - if (!(mem_mask & 0x0000ff00)) - { - UINT8 pos; - int delta; - - pos = readinputport(6 + turntable_select); - delta = pos - turntable_last_pos[turntable_select]; - if (delta < -128) - delta += 256; - if (delta > 128) - delta -= 256; - - turntable_pos[turntable_select] += delta * 70; - turntable_last_pos[turntable_select] = pos; - - result |= turntable_pos[turntable_select] & 0xff00; - } - - return result; -} - -static WRITE32_HANDLER( turntable_select_w ) -{ - if (!(mem_mask & 0x00ff0000)) - turntable_select = (data >> 19) & 1; -} - - -//--------- - -#define IDE_STD_OFFSET (0x1f0/2) -#define IDE_ALT_OFFSET (0x3f6/2) - -static READ32_HANDLER( ide_std_r ) -{ - if (ACCESSING_LSB32) - return ide_controller16_0_r(IDE_STD_OFFSET + offset, 0x00ff) >> 8; - else - return ide_controller16_0_r(IDE_STD_OFFSET + offset, 0x0000) << 16; -} - -static WRITE32_HANDLER( ide_std_w ) -{ - if (ACCESSING_LSB32) - ide_controller16_0_w(IDE_STD_OFFSET + offset, data << 8, 0x00ff); - else - ide_controller16_0_w(IDE_STD_OFFSET + offset, data >> 16, 0x0000); -} - - -static READ32_HANDLER( ide_alt_r ) -{ - if (offset == 0) - return ide_controller16_0_r(IDE_ALT_OFFSET, 0xff00) << 24; - - return 0; -} - -static WRITE32_HANDLER( ide_alt_w ) -{ - if (offset == 0 && !(mem_mask & 0x00ff0000)) - ide_controller16_0_w(IDE_ALT_OFFSET, data >> 24, 0xff00); -} - - -//--------- - -// light/coin blocker control - -/* - beatmania/hiphopmania - 0x5d0000 (MSW16): - bit 0: 1P button 1 LED - 1: 1P button 2 LED - 2: 1P button 3 LED - 3: 1P button 4 LED - 4: 1P button 5 LED - 5: Right blue HIGHLIGHT (active low) - 6: 2P button 1 LED - 7: 2P button 2 LED - 8: 2P button 3 LED - 9: Left blue HIGHLIGHT (active low) - 10: Left red HIGHLIGHT (active low) - 11: Right red HIGHLIGHT (active low) - 12-15: not used? (always low) - - 0x5d2000 (MSW16): - 0: 1P START button LED - 1: 2P START button LED - 2: EFFECT button LED - 3-10: not used? (always low) - 11: SSR - 12: 2P button 4 LED - 13: 2P button 5 LED - 14: COIN BLOCKER (active low) - 15: not used? (always low) -*/ - -static WRITE32_HANDLER( light_ctrl_1_w ) -{ - if (ACCESSING_MSW32) - { - output_set_value("right-red-hlt", !(data & 0x08000000)); // Right red HIGHLIGHT - output_set_value("left-red-hlt", !(data & 0x04000000)); // Left red HIGHLIGHT - output_set_value("left-blue-hlt", !(data & 0x02000000)); // Left blue HIGHLIGHT - output_set_value("right-blue-hlt", !(data & 0x00200000)); // Right blue HIGHLIGHT - } -} - -static WRITE32_HANDLER( light_ctrl_2_w ) -{ - if (ACCESSING_MSW32) - { - output_set_value("left-ssr", !!(data & 0x08000000)); // SSR - output_set_value("right-ssr", !!(data & 0x08000000)); // SSR - set_led_status(0, data & 0x00010000); // 1P START - set_led_status(1, data & 0x00020000); // 2P START - set_led_status(2, data & 0x00040000); // EFFECT - } -} - - -//--------- - -// unknown ports :-( - -static WRITE32_HANDLER( unknown590000_w ) -{ - //logerror("%08X: unknown 590000 write %08X: %08X & %08X\n", activecpu_get_previouspc(), offset, data, ~mem_mask); -} - -static WRITE32_HANDLER( unknown802000_w ) -{ - //logerror("%08X: unknown 802000 write %08X: %08X & %08X\n", activecpu_get_previouspc(), offset, data, ~mem_mask); -} - -static WRITE32_HANDLER( unknownc02000_w ) -{ - //logerror("%08X: unknown c02000 write %08X: %08X & %08X\n", activecpu_get_previouspc(), offset, data, ~mem_mask); -} - - - -/************************************* - * - * Interrupt handlers - * - *************************************/ - -static INTERRUPT_GEN( vb_interrupt ) -{ - pending_vb_int = 0; - - if (DISABLE_VB_INT) - { - pending_vb_int = 1; - return; - } - - //logerror("V-Blank interrupt\n"); - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); -} - - -static void ide_interrupt(int state) -{ - if (state != CLEAR_LINE) - { - //logerror("IDE interrupt asserted\n"); - cpunum_set_input_line(0, MC68000_IRQ_1, HOLD_LINE); - } - else - { - //logerror("IDE interrupt cleared\n"); - cpunum_set_input_line(0, MC68000_IRQ_1, CLEAR_LINE); - } -} - - - - -/************************************* - * - * Memory definitions - * - *************************************/ - -static ADDRESS_MAP_START( memory_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // PRG ROM - AM_RANGE(0x400000, 0x40ffff) AM_RAM // WORK RAM - AM_RANGE(0x480000, 0x48443f) AM_READWRITE(paletteram32_r, paletteram32_w) // COLOR RAM - AM_BASE(&paletteram32) - AM_RANGE(0x500000, 0x57ffff) AM_READWRITE(sndram_r, sndram_w) // SOUND RAM - AM_RANGE(0x580000, 0x58003f) AM_READWRITE(K056832_long_r, K056832_long_w) // VIDEO REG (tilemap) - AM_RANGE(0x590000, 0x590007) AM_WRITE(unknown590000_w) // ?? - AM_RANGE(0x5a0000, 0x5a005f) AM_WRITE(K055555_long_w) // 055555: priority encoder - AM_RANGE(0x5b0000, 0x5b04ff) AM_READWRITE(dual539_r, dual539_w) // SOUND regs - AM_RANGE(0x5c0000, 0x5c0003) AM_READ(inp1_r) // input port (buttons) - AM_RANGE(0x5c8000, 0x5c8003) AM_READ(inp2_r) // input port (buttons) - AM_RANGE(0x5d0000, 0x5d0003) AM_WRITE(light_ctrl_1_w) // light/coin blocker control - AM_RANGE(0x5d2000, 0x5d2003) AM_WRITE(light_ctrl_2_w) // light/coin blocker control - AM_RANGE(0x5d4000, 0x5d4003) AM_WRITE(v_ctrl_w) // VIDEO control - AM_RANGE(0x5d6000, 0x5d6003) AM_WRITE(sndram_bank_w) // SOUND RAM bank - AM_RANGE(0x5e0000, 0x5e0003) AM_READWRITE(turntable_r, turntable_select_w) // input port control (turn tables) - AM_RANGE(0x600000, 0x601fff) AM_READ(v_rom_r) // VIDEO ROM readthrough (for POST) - AM_RANGE(0x801000, 0x8017ff) AM_RAM AM_BASE(&djmain_obj_ram) // OBJECT RAM - AM_RANGE(0x802000, 0x802fff) AM_WRITE(unknown802000_w) // ?? - AM_RANGE(0x803000, 0x80309f) AM_READWRITE(obj_ctrl_r, obj_ctrl_w) // OBJECT REGS - AM_RANGE(0x803800, 0x803fff) AM_READ(obj_rom_r) // OBJECT ROM readthrough (for POST) - AM_RANGE(0xc00000, 0xc01fff) AM_READWRITE(K056832_ram_long_r, K056832_ram_long_w) // VIDEO RAM (tilemap) (beatmania) - AM_RANGE(0xc02000, 0xc02047) AM_WRITE(unknownc02000_w) // ?? - AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE(ide_std_r, ide_std_w) // IDE control regs (hiphopmania) - AM_RANGE(0xd4000c, 0xd4000f) AM_READWRITE(ide_alt_r, ide_alt_w) // IDE status control reg (hiphopmania) - AM_RANGE(0xe00000, 0xe01fff) AM_READWRITE(K056832_ram_long_r, K056832_ram_long_w) // VIDEO RAM (tilemap) (hiphopmania) - AM_RANGE(0xf00000, 0xf0000f) AM_READWRITE(ide_std_r, ide_std_w) // IDE control regs (beatmania) - AM_RANGE(0xf4000c, 0xf4000f) AM_READWRITE(ide_alt_r, ide_alt_w) // IDE status control reg (beatmania) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define BEATMANIA_INPUT \ - PORT_START /* IN 0 */ \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) \ - \ - PORT_START /* IN 1 */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Effect") /* EFFECT */ \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) \ - \ - PORT_START /* IN 2 */ \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) /* TEST SW */ \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") /* SERVICE */ \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset") /* RESET SW */ \ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define BEATMANIA_TURNTABLE \ - PORT_START /* IN 6: turn table 1P */ \ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1) \ - \ - PORT_START /* IN 7: turn table 2P */ \ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) - -#define BEATMANIA_DSW1(base,mask) \ - PORT_START /* IN 3 */ \ - PORT_DIPNAME( 0xff, (0xff & mask) | base, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( (0xe0 & mask) | base, "1P 8C / 2P 16C / Continue 8C" ) \ - PORT_DIPSETTING( (0xe1 & mask) | base, "1P 8C / 2P 16C / Continue 7C" ) \ - PORT_DIPSETTING( (0xe2 & mask) | base, "1P 8C / 2P 16C / Continue 6C" ) \ - PORT_DIPSETTING( (0xe3 & mask) | base, "1P 7C / 2P 14C / Continue 7C" ) \ - PORT_DIPSETTING( (0xe4 & mask) | base, "1P 7C / 2P 14C / Continue 6C" ) \ - PORT_DIPSETTING( (0xe5 & mask) | base, "1P 7C / 2P 14C / Continue 5C" ) \ - PORT_DIPSETTING( (0xe6 & mask) | base, "1P 6C / 2P 12C / Continue 6C" ) \ - PORT_DIPSETTING( (0xe7 & mask) | base, "1P 6C / 2P 12C / Continue 5C" ) \ - PORT_DIPSETTING( (0xe8 & mask) | base, "1P 6C / 2P 12C / Continue 4C" ) \ - PORT_DIPSETTING( (0xe9 & mask) | base, "1P 5C / 2P 10C / Continue 5C" ) \ - PORT_DIPSETTING( (0xeb & mask) | base, "1P 5C / 2P 10C / Continue 3C" ) \ - PORT_DIPSETTING( (0xea & mask) | base, "1P 5C / 2P 10C / Continue 4C" ) \ - PORT_DIPSETTING( (0xec & mask) | base, "1P 4C / 2P 8C / Continue 4C" ) \ - PORT_DIPSETTING( (0xed & mask) | base, "1P 4C / 2P 8C / Continue 3C" ) \ - PORT_DIPSETTING( (0xee & mask) | base, "1P 4C / 2P 8C / Continue 2C" ) \ - PORT_DIPSETTING( (0xef & mask) | base, "1P 3C / 2P 6C / Continue 3C" ) \ - PORT_DIPSETTING( (0xf0 & mask) | base, "1P 3C / 2P 6C / Continue 2C" ) \ - PORT_DIPSETTING( (0xf1 & mask) | base, "1P 3C / 2P 6C / Continue 1C" ) \ - PORT_DIPSETTING( (0xf2 & mask) | base, "1P 3C / 2P 4C / Continue 3C" ) \ - PORT_DIPSETTING( (0xf3 & mask) | base, "1P 3C / 2P 4C / Continue 2C" ) \ - PORT_DIPSETTING( (0xf4 & mask) | base, "1P 3C / 2P 4C / Continue 1C" ) \ - PORT_DIPSETTING( (0xf5 & mask) | base, "1P 3C / 2P 3C / Continue 3C" ) \ - PORT_DIPSETTING( (0xf6 & mask) | base, "1P 3C / 2P 3C / Continue 2C" ) \ - PORT_DIPSETTING( (0xf7 & mask) | base, "1P 3C / 2P 3C / Continue 1C" ) \ - PORT_DIPSETTING( (0xfa & mask) | base, "1P 2C / 2P 3C / Continue 2C" ) \ - PORT_DIPSETTING( (0xfb & mask) | base, "1P 2C / 2P 3C / Continue 1C" ) \ - PORT_DIPSETTING( (0xf8 & mask) | base, "1P 2C / 2P 4C / Continue 2C" ) \ - PORT_DIPSETTING( (0xff & mask) | base, "1P 2C / 2P 4C / Continue 1C" ) \ - PORT_DIPSETTING( (0xfc & mask) | base, "1P 2C / 2P 2C / Continue 2C" ) \ - PORT_DIPSETTING( (0xfd & mask) | base, "1P 2C / 2P 2C / Continue 1C" ) \ - PORT_DIPSETTING( (0xfe & mask) | base, "1P 1C / 2P 2C / Continue 1C" ) \ - PORT_DIPSETTING( (0xf9 & mask) | base, "1P 1C / 2P 1C / Continue 1C" ) \ - PORT_DIPSETTING( (0x00 & mask) | base, DEF_STR( Free_Play ) ) - -#define BM1STMIX_DSW1 \ - PORT_START /* IN 3 */ \ - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x1e, "1P 3C / 2P 6C / Continue 3C" ) \ - PORT_DIPSETTING( 0x01, "1P 3C / 2P 6C / Continue 2C" ) \ - PORT_DIPSETTING( 0x11, "1P 3C / 2P 6C / Continue 1C" ) \ - PORT_DIPSETTING( 0x15, "1P 3C / 2P 3C / Continue 3C" ) \ - PORT_DIPSETTING( 0x0d, "1P 3C / 2P 3C / Continue 2C" ) \ - PORT_DIPSETTING( 0x1d, "1P 3C / 2P 3C / Continue 1C" ) \ - PORT_DIPSETTING( 0x09, "1P 3C / 2P 4C / Continue 3C" ) \ - PORT_DIPSETTING( 0x19, "1P 3C / 2P 4C / Continue 2C" ) \ - PORT_DIPSETTING( 0x05, "1P 3C / 2P 4C / Continue 1C" ) \ - PORT_DIPSETTING( 0x03, "1P 2C / 2P 4C / Continue 2C" ) \ - PORT_DIPSETTING( 0x1f, "1P 2C / 2P 4C / Continue 1C" ) \ - PORT_DIPSETTING( 0x0b, "1P 2C / 2P 3C / Continue 2C" ) \ - PORT_DIPSETTING( 0x1b, "1P 2C / 2P 3C / Continue 1C" ) \ - PORT_DIPSETTING( 0x07, "1P 2C / 2P 2C / Continue 2C" ) \ - PORT_DIPSETTING( 0x17, "1P 2C / 2P 2C / Continue 1C" ) \ - PORT_DIPSETTING( 0x0f, "1P 1C / 2P 2C / Continue 1C" ) \ - PORT_DIPSETTING( 0x13, "1P 1C / 2P 1C / Continue 1C" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - -#define BEATMANIA_DSW2 \ - PORT_START /* IN 4 */ \ - PORT_DIPNAME( 0x80, 0x80, "Score Display" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) \ - PORT_DIPSETTING( 0x60, "Loud" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ - PORT_DIPSETTING( 0x00, "Silent" ) \ - PORT_DIPNAME( 0x10, 0x10, "Level Display" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x0c, 0x0c, "Normal Difficulty" ) \ - PORT_DIPSETTING( 0x08, "Level 0" ) \ - PORT_DIPSETTING( 0x0c, "Level 1" ) \ - PORT_DIPSETTING( 0x04, "Level 2" ) \ - PORT_DIPSETTING( 0x00, "Level 3" ) \ - PORT_DIPNAME( 0x03, 0x03, "Expert Difficulty" ) \ - PORT_DIPSETTING( 0x02, "Level 0" ) \ - PORT_DIPSETTING( 0x03, "Level 1" ) \ - PORT_DIPSETTING( 0x01, "Level 2" ) \ - PORT_DIPSETTING( 0x00, "Level 3" ) - -#define BEATMANIA_DSW2_OLD_LEVEL \ - PORT_START /* IN 4 */ \ - PORT_DIPNAME( 0x80, 0x80, "Score Display" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) \ - PORT_DIPSETTING( 0x60, "Loud" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ - PORT_DIPSETTING( 0x00, "Silent" ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 2-4 */ \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x0a, "Level 0" ) \ - PORT_DIPSETTING( 0x0e, "Level 1" ) \ - PORT_DIPSETTING( 0x0d, "Level 2" ) \ - PORT_DIPSETTING( 0x0c, "Level 3" ) \ - PORT_DIPSETTING( 0x0b, "Level 4" ) \ - PORT_DIPSETTING( 0x0f, "Level 5" ) \ - PORT_DIPSETTING( 0x09, "Level 6" ) \ - PORT_DIPSETTING( 0x08, "Level 7" ) \ - PORT_DIPSETTING( 0x07, "Level 8" ) \ - PORT_DIPSETTING( 0x06, "Level 9" ) \ - PORT_DIPSETTING( 0x05, "Level 10" ) \ - PORT_DIPSETTING( 0x04, "Level 11" ) \ - PORT_DIPSETTING( 0x03, "Level 12" ) \ - PORT_DIPSETTING( 0x02, "Level 13" ) \ - PORT_DIPSETTING( 0x01, "Level 14" ) \ - PORT_DIPSETTING( 0x00, "Level 15" ) - -#define BM1STMIX_DSW2 \ - PORT_START /* IN 4 */ \ - PORT_DIPNAME( 0x80, 0x80, "Enable Expert Mode" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) \ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) \ - PORT_DIPSETTING( 0x60, "Loud" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ - PORT_DIPSETTING( 0x00, "Silent" ) \ - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - -#define BMCOMPMX_DSW2 \ - PORT_START /* IN 4 */ \ - PORT_DIPNAME( 0x80, 0x80, "Score Display" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) \ - PORT_DIPSETTING( 0x60, "Loud" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( Low ) ) \ - PORT_DIPSETTING( 0x00, "Silent" ) \ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* DSW 2-4 */ \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x0a, "Level 0" ) \ - PORT_DIPSETTING( 0x0e, "Level 1" ) \ - PORT_DIPSETTING( 0x0d, "Level 2" ) \ - PORT_DIPSETTING( 0x0c, "Level 3" ) \ - PORT_DIPSETTING( 0x0b, "Level 4" ) \ - PORT_DIPSETTING( 0x0f, "Level 5" ) \ - PORT_DIPSETTING( 0x09, "Level 6" ) \ - PORT_DIPSETTING( 0x08, "Level 7" ) \ - PORT_DIPSETTING( 0x07, "Level 8" ) \ - PORT_DIPSETTING( 0x06, "Level 9" ) \ - PORT_DIPSETTING( 0x05, "Level 10" ) \ - PORT_DIPSETTING( 0x04, "Level 11" ) \ - PORT_DIPSETTING( 0x03, "Level 12" ) \ - PORT_DIPSETTING( 0x02, "Level 13" ) \ - PORT_DIPSETTING( 0x01, "Level 14" ) \ - PORT_DIPSETTING( 0x00, "Level 15" ) - -#define BEATMANIA_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x20, 0x20, "Event Mode" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x1c, 0x1c, "Normal / Event Mode Stages" ) \ - PORT_DIPSETTING( 0x0c, "4 / 1" ) \ - PORT_DIPSETTING( 0x14, "4 / 2" ) \ - PORT_DIPSETTING( 0x10, "3 / 3" ) \ - PORT_DIPSETTING( 0x1c, "4 / 4" ) \ - PORT_DIPSETTING( 0x08, "5 / 5" ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-5 */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-6 */ - -#define BM1STMIX_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define BM2NDMIX_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x39, 0x39, "Event Mode / Free Hidden Songs" ) \ - PORT_DIPSETTING( 0x39, "Off / Off" ) \ - PORT_DIPSETTING( 0x20, "Off / On" ) \ - PORT_DIPSETTING( 0x19, "1 Stages / On" ) \ - PORT_DIPSETTING( 0x09, "2 Stages / On" ) \ - PORT_DIPSETTING( 0x11, "3 Stages / On" ) \ - PORT_DIPSETTING( 0x01, "4 Stages / On" ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-4 */ \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-5 */ \ - -#define BMCOMPMX_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x20, 0x20, "Event Mode" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x1c, 0x1c, "Normal / Event Mode Stages" ) \ - PORT_DIPSETTING( 0x0c, "4 / 1" ) \ - PORT_DIPSETTING( 0x14, "4 / 2" ) \ - PORT_DIPSETTING( 0x10, "3 / 3" ) \ - PORT_DIPSETTING( 0x1c, "4 / 4" ) \ - PORT_DIPSETTING( 0x08, "5 / 5" ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-5 */ \ - PORT_DIPNAME( 0x01, 0x01, "Secret Expert Course" ) /* DSW 3-6 */ \ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -#define BM4THMIX_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x20, 0x20, "Event Mode" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x1c, 0x1c, "Normal / Event Mode Stages" ) \ - PORT_DIPSETTING( 0x0c, "4 / 1" ) \ - PORT_DIPSETTING( 0x14, "4 / 2" ) \ - PORT_DIPSETTING( 0x10, "3 / 3" ) \ - PORT_DIPSETTING( 0x1c, "4 / 4" ) \ - PORT_DIPSETTING( 0x08, "5 / 5" ) \ - PORT_DIPNAME( 0x02, 0x02, "Secret Expert Course" ) /* DSW 3-5 */ \ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-6 */ - -#define HMCOMPM2_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x20, 0x20, "Event Mode" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x1c, 0x1c, "Normal / Event Mode Stages" ) \ - PORT_DIPSETTING( 0x0c, "4 / 1" ) \ - PORT_DIPSETTING( 0x14, "4 / 2" ) \ - PORT_DIPSETTING( 0x10, "3 / 3" ) \ - PORT_DIPSETTING( 0x1c, "4 / 4" ) \ - PORT_DIPSETTING( 0x08, "5 / 5" ) \ - PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) \ - PORT_DIPSETTING( 0x02, "On Stage Middle" ) \ - PORT_DIPSETTING( 0x00, "On Stage Last" ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-6 */ - -#define BMDCT_DSW3 \ - PORT_START /* IN 5 */ \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_DIPNAME( 0x20, 0x20, "Event Mode" ) \ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_DIPNAME( 0x1c, 0x1c, "Normal / Event Mode Stages" ) \ - PORT_DIPSETTING( 0x0c, "3 / 1" ) \ - PORT_DIPSETTING( 0x14, "3 / 2" ) \ - PORT_DIPSETTING( 0x10, "4 / 3" ) \ - PORT_DIPSETTING( 0x1c, "3 / 4" ) \ - PORT_DIPSETTING( 0x08, "3 / 5" ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-5 */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* DSW 3-6 */ - -INPUT_PORTS_START( beatmania ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x00, 0xff) /* IN 3 */ - BEATMANIA_DSW2 /* IN 4 */ - BEATMANIA_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bm1stmix ) - BEATMANIA_INPUT /* IN 0-2 */ - BM1STMIX_DSW1 /* IN 3 */ - BM1STMIX_DSW2 /* IN 4 */ - BM1STMIX_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bm2ndmix ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x00, 0xff) /* IN 3 */ - BEATMANIA_DSW2_OLD_LEVEL /* IN 4 */ - BM2NDMIX_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bmcompmx ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x80, 0x3f) /* IN 3 */ - BMCOMPMX_DSW2 /* IN 4 */ - BMCOMPMX_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bm4thmix ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x40, 0x3f) /* IN 3 */ - BEATMANIA_DSW2 /* IN 4 */ - BM4THMIX_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( hmcompm2 ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x00, 0xff) /* IN 3 */ - BEATMANIA_DSW2 /* IN 4 */ - HMCOMPM2_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - -INPUT_PORTS_START( bmdct ) - BEATMANIA_INPUT /* IN 0-2 */ - BEATMANIA_DSW1(0x00, 0xff) /* IN 3 */ - BEATMANIA_DSW2 /* IN 4 */ - BMDCT_DSW3 /* IN 5 */ - BEATMANIA_TURNTABLE /* IN 6-7 */ -INPUT_PORTS_END - - - -/************************************* - * - * Graphics layouts - * - *************************************/ - -static const gfx_layout spritelayout = -{ - 16, 16, /* 16x16 characters */ - 0x200000 / 128, /* 16384 characters */ - 4, /* bit planes */ - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24, - 4+256, 0+256, 12+256, 8+256, 20+256, 16+256, 28+256, 24+256 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 0*32+512, 1*32+512, 2*32+512, 3*32+512, 4*32+512, 5*32+512, 6*32+512, 7*32+512 }, - 16*16*4 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &spritelayout, 0, (0x4440/4)/16 }, - { -1 } /* end of array */ -}; - - - -/************************************* - * - * IDE interfaces - * - *************************************/ - -static struct ide_interface ide_intf = -{ - ide_interrupt, -}; - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - - - -/************************************* - * - * Machine-specific init - * - *************************************/ - -static MACHINE_START( djmain ) -{ - UINT8 *region = memory_region(REGION_SOUND1); - - state_save_register_global(sndram_bank); - state_save_register_global_pointer(region, 0x80000 * 32); - state_save_register_global(pending_vb_int); - state_save_register_global(v_ctrl); - state_save_register_global_array(obj_regs); - - state_save_register_func_postload(sndram_set_bank); - return 0; -} - - -static MACHINE_RESET( djmain ) -{ - /* reset sound ram bank */ - sndram_bank = 0; - sndram_set_bank(); - - /* reset the IDE controller */ - ide_controller_reset(0); - - /* reset LEDs */ - set_led_status(0, 1); - set_led_status(1, 1); - set_led_status(2, 1); -} - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( djmain ) - - /* basic machine hardware */ - // popn3 works 9.6 MHz or slower in some songs */ - //MDRV_CPU_ADD(M68EC020, 18432000/2) /* 9.216 MHz!? */ - MDRV_CPU_ADD(M68EC020, 32000000/4) /* 8.000 MHz!? */ - MDRV_CPU_PROGRAM_MAP(memory_map, 0) - MDRV_CPU_VBLANK_INT(vb_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(djmain) - MDRV_MACHINE_RESET(djmain) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 64*8) - MDRV_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1) - MDRV_PALETTE_LENGTH(0x4440/4) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_VIDEO_START(djmain) - MDRV_VIDEO_UPDATE(djmain) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( bm1stmix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "753jab01.6a", 0x000000, 0x80000, CRC(25BF8629) SHA1(2be73f9dd25cae415c6443f221cc7d38d5555ae5) ) - ROM_LOAD16_BYTE( "753jab02.8a", 0x000001, 0x80000, CRC(6AB951DE) SHA1(a724ede03b74e9422c120fcc263e2ebcc3a3e110) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "753jaa03.19a", 0x000000, 0x80000, CRC(F2B2BCE8) SHA1(61d31b111f35e7dde89965fa43ba627c12aff11c) ) - ROM_LOAD16_BYTE( "753jaa04.20a", 0x000001, 0x80000, CRC(85A18F9D) SHA1(ecd0ab4f53e882b00176dacad5fac35345fbea66) ) - ROM_LOAD16_BYTE( "753jaa05.22a", 0x100000, 0x80000, CRC(749B1E87) SHA1(1c771c19f152ae95171e4fd51da561ba4ec5ea87) ) - ROM_LOAD16_BYTE( "753jaa06.24a", 0x100001, 0x80000, CRC(6D86B0FD) SHA1(74a255dbb1c83131717ea1fe335f12aef81d9fcc) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "753jaa07.22d", 0x000000, 0x80000, CRC(F03AB5D8) SHA1(2ad902547908208714855aa0f2b7ed493452ee5f) ) - ROM_LOAD16_BYTE( "753jaa08.23d", 0x000001, 0x80000, CRC(6559F0C8) SHA1(0d6ec4bdc22c02cb9fb8de36b0a8f7a6c983440e) ) - ROM_LOAD16_BYTE( "753jaa09.25d", 0x100000, 0x80000, CRC(B50C3DBB) SHA1(6022ea249aad0793b2279699e68087b4bc9b4ef1) ) - ROM_LOAD16_BYTE( "753jaa10.27d", 0x100001, 0x80000, CRC(391F4BFD) SHA1(791c9889ea3ce639bbfb87934a1cad9aa3c9ccde) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - // There is an alternate image - //DISK_IMAGE( "753jaa11", 0, MD5(260c9b72f4a03055e3abad61c6225324) SHA1(2cc3e149744516bf2353a2b47d33bc9d2072b6c4) ) /* ver 1.00 JA */ - DISK_IMAGE( "753jaa11", 0, MD5(d56ec7b9877d1f26d7fc1cabed404947) SHA1(71d200d1bd3f1f3a01f4daa78dc9abcca8b8a1fb) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bm2ndmix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "853jab01.6a", 0x000000, 0x80000, CRC(C8DF72C0) SHA1(6793b587ba0611bc3da8c4955d6a87e47a19a223) ) - ROM_LOAD16_BYTE( "853jab02.8a", 0x000001, 0x80000, CRC(BF6ACE08) SHA1(29d3fdf1c73a73a0a66fa5a4c4ac3f293cb82e37) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "853jaa03.19a", 0x000000, 0x80000, CRC(1462ED23) SHA1(fdfda3060c8d367ac2e8e43dedaba8ab9012cc77) ) - ROM_LOAD16_BYTE( "853jaa04.20a", 0x000001, 0x80000, CRC(98C9B331) SHA1(51f24b3c3773c53ff492ed9bad17c9867fd94e28) ) - ROM_LOAD16_BYTE( "853jaa05.22a", 0x100000, 0x80000, CRC(0DA3FEF9) SHA1(f9ef24144c00c054ecc4650bb79e74c57c6d6b3c) ) - ROM_LOAD16_BYTE( "853jaa06.24a", 0x100001, 0x80000, CRC(6A66978C) SHA1(460178a6f35e554a157742d77ed5ea6989fbcee1) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "853jaa07.22d", 0x000000, 0x80000, CRC(728C0010) SHA1(18888b402e0b7ccf63c7b3cb644673df1746dba7) ) - ROM_LOAD16_BYTE( "853jaa08.23d", 0x000001, 0x80000, CRC(926FC37C) SHA1(f251cba56ca201f0e748112462116cff218b66da) ) - ROM_LOAD16_BYTE( "853jaa09.25d", 0x100000, 0x80000, CRC(8584E21E) SHA1(3d1ca6de00f9ac07bbe7cd1e67093cca7bf484bb) ) - ROM_LOAD16_BYTE( "853jaa10.27d", 0x100001, 0x80000, CRC(9CB92D98) SHA1(6ace4492ba0b5a8f94a9e7b4f7126b31c6254637) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "853jaa11", 0, MD5(37281741b748bea7dfa711a956649d1e) SHA1(03d6cc5aea5920163fbaba34c4f838ca605a87e3) ) /* ver 1.10 JA */ -ROM_END - -ROM_START( bm2ndmxa ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "853jaa01.6a", 0x000000, 0x80000, CRC(4F0BF5D0) SHA1(4793bb411e85f2191eb703a170c16cf163ea79e7) ) - ROM_LOAD16_BYTE( "853jaa02.8a", 0x000001, 0x80000, CRC(E323925B) SHA1(1f9f52a7ab6359b617e87f8b3d7ac4269885c621) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "853jaa03.19a", 0x000000, 0x80000, CRC(1462ED23) SHA1(fdfda3060c8d367ac2e8e43dedaba8ab9012cc77) ) - ROM_LOAD16_BYTE( "853jaa04.20a", 0x000001, 0x80000, CRC(98C9B331) SHA1(51f24b3c3773c53ff492ed9bad17c9867fd94e28) ) - ROM_LOAD16_BYTE( "853jaa05.22a", 0x100000, 0x80000, CRC(0DA3FEF9) SHA1(f9ef24144c00c054ecc4650bb79e74c57c6d6b3c) ) - ROM_LOAD16_BYTE( "853jaa06.24a", 0x100001, 0x80000, CRC(6A66978C) SHA1(460178a6f35e554a157742d77ed5ea6989fbcee1) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "853jaa07.22d", 0x000000, 0x80000, CRC(728C0010) SHA1(18888b402e0b7ccf63c7b3cb644673df1746dba7) ) - ROM_LOAD16_BYTE( "853jaa08.23d", 0x000001, 0x80000, CRC(926FC37C) SHA1(f251cba56ca201f0e748112462116cff218b66da) ) - ROM_LOAD16_BYTE( "853jaa09.25d", 0x100000, 0x80000, CRC(8584E21E) SHA1(3d1ca6de00f9ac07bbe7cd1e67093cca7bf484bb) ) - ROM_LOAD16_BYTE( "853jaa10.27d", 0x100001, 0x80000, CRC(9CB92D98) SHA1(6ace4492ba0b5a8f94a9e7b4f7126b31c6254637) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "853jaa11", 0, MD5(37281741b748bea7dfa711a956649d1e) SHA1(03d6cc5aea5920163fbaba34c4f838ca605a87e3) ) /* ver 1.10 JA */ -ROM_END - -ROM_START( bmcompmx ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "858jab01.6a", 0x000000, 0x80000, CRC(92841EB5) SHA1(3a9d90a9c4b16cb7118aed2cadd3ab32919efa96) ) - ROM_LOAD16_BYTE( "858jab02.8a", 0x000001, 0x80000, CRC(7B19969C) SHA1(3545acabbf53bacc5afa72a3c5af3cd648bc2ae1) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "858jaa03.19a", 0x000000, 0x80000, CRC(8559F457) SHA1(133092994087864a6c29e9d51dcdbef2e2c2a123) ) - ROM_LOAD16_BYTE( "858jaa04.20a", 0x000001, 0x80000, CRC(770824D3) SHA1(5c21bc39f8128957d76be85bc178c96976987f5f) ) - ROM_LOAD16_BYTE( "858jaa05.22a", 0x100000, 0x80000, CRC(9CE769DA) SHA1(1fe2999f786effdd5e3e74475e8431393eb9403d) ) - ROM_LOAD16_BYTE( "858jaa06.24a", 0x100001, 0x80000, CRC(0CDE6584) SHA1(fb58d2b4f58144b71703431740c0381bb583f581) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "858jaa07.22d", 0x000000, 0x80000, CRC(7D183F46) SHA1(7a1b0ccb0407b787af709bdf038d886727199e4e) ) - ROM_LOAD16_BYTE( "858jaa08.23d", 0x000001, 0x80000, CRC(C731DC8F) SHA1(1a937d76c02711b7f73743c9999456d4408ad284) ) - ROM_LOAD16_BYTE( "858jaa09.25d", 0x100000, 0x80000, CRC(0B4AD843) SHA1(c01e15053dd1975dc68db9f4e6da47062d8f9b54) ) - ROM_LOAD16_BYTE( "858jaa10.27d", 0x100001, 0x80000, CRC(00B124EE) SHA1(435d28a327c2707833a8ddfe841104df65ffa3f8) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "858jaa11", 0, MD5(6c573b432c5d8b5a4fb857b0fab26cb8) SHA1(05a3f2359d089f47dcaa28ee7bc65a23efecda94) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( hmcompmx ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "858uab01.6a", 0x000000, 0x80000, CRC(F9C16675) SHA1(f2b50a3544f43af6fd987256a8bd4125b95749ef) ) - ROM_LOAD16_BYTE( "858uab02.8a", 0x000001, 0x80000, CRC(4E8F1E78) SHA1(88d654de4377b584ff8a5e1f8bc81ffb293ec8a5) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "858uaa03.19a", 0x000000, 0x80000, CRC(52B51A5E) SHA1(9f01e2fcbe5a9d7f80b377c5e10f18da2c9dcc8e) ) - ROM_LOAD16_BYTE( "858uaa04.20a", 0x000001, 0x80000, CRC(A336CEE9) SHA1(0e62c0c38d86868c909b4c1790fbb7ecb2de137d) ) - ROM_LOAD16_BYTE( "858uaa05.22a", 0x100000, 0x80000, CRC(2E14CF83) SHA1(799b2162f7b11678d1d260f7e1eb841abda55a60) ) - ROM_LOAD16_BYTE( "858uaa06.24a", 0x100001, 0x80000, CRC(2BE07788) SHA1(5cc2408f907ca6156efdcbb2c10a30e9b81797f8) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "858uaa07.22d", 0x000000, 0x80000, CRC(9D7C8EA0) SHA1(5ef773ade7ab12a5dc10484e8b7711c9d76fe2a1) ) - ROM_LOAD16_BYTE( "858uaa08.23d", 0x000001, 0x80000, CRC(F21C3F45) SHA1(1d7ff2c4161605b382d07900142093192aa93a48) ) - ROM_LOAD16_BYTE( "858uaa09.25d", 0x100000, 0x80000, CRC(99519886) SHA1(664f6bd953201a6e2fc123cb8b3facf72766107d) ) - ROM_LOAD16_BYTE( "858uaa10.27d", 0x100001, 0x80000, CRC(20AA7145) SHA1(eeff87eb9a9864985d751f45e843ee6e73db8cfd) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "858jaa11", 0, MD5(6c573b432c5d8b5a4fb857b0fab26cb8) SHA1(05a3f2359d089f47dcaa28ee7bc65a23efecda94) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bm4thmix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "847jaa01.6a", 0x000000, 0x80000, CRC(81138A1B) SHA1(ebe211126f871e541881e1670f56d50b058dead3) ) - ROM_LOAD16_BYTE( "847jaa02.8a", 0x000001, 0x80000, CRC(4EEB0010) SHA1(942303dfb19a4a78dd74ad24576031760553a661) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "847jaa03.19a", 0x000000, 0x80000, CRC(F447D140) SHA1(cc15b80419940d127a77765508f877421ed86ee2) ) - ROM_LOAD16_BYTE( "847jaa04.20a", 0x000001, 0x80000, CRC(EDC3E286) SHA1(341b1dc6ee1562b1ddf235a66ac96b94c482b67c) ) - ROM_LOAD16_BYTE( "847jaa05.22a", 0x100000, 0x80000, CRC(DA165B5E) SHA1(e46110590e6ab89b55f6abfbf6c53c99d28a75a9) ) - ROM_LOAD16_BYTE( "847jaa06.24a", 0x100001, 0x80000, CRC(8BFC2F28) SHA1(f8869867945d63d9f34b6228d95c5a61b193eed2) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "847jab07.22d", 0x000000, 0x80000, CRC(C159E7C4) SHA1(96af0c29b2f1fef494b2223179862d16f26bb33f) ) - ROM_LOAD16_BYTE( "847jab08.23d", 0x000001, 0x80000, CRC(8FF084D6) SHA1(50cff8c701e33f2630925c1a9ae4351076912acd) ) - ROM_LOAD16_BYTE( "847jab09.25d", 0x100000, 0x80000, CRC(2E4AC9FE) SHA1(bbd4c6e0c82fc0be88f851e901e5853b6bcf775f) ) - ROM_LOAD16_BYTE( "847jab10.27d", 0x100001, 0x80000, CRC(C78516F5) SHA1(1adf5805c808dc55de14a9a9b20c3d2cf7bf414d) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "847jaa11", 0, MD5(47cb5c1b856aa11cf38f0c7ea4a7d1c3) SHA1(374d5d5340d4a8818577f9ae81021651d6ee3429) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bm5thmix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "981jaa01.6a", 0x000000, 0x80000, CRC(03BBE7E3) SHA1(7d4ec3bc7719a3f1b81df309b5c74afaffde42ba) ) - ROM_LOAD16_BYTE( "981jaa02.8a", 0x000001, 0x80000, CRC(F4E59923) SHA1(a4983435e3f2243ea9ccc2fd5439d86c30b6f604) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "981jaa03.19a", 0x000000, 0x80000, CRC(8B7E6D72) SHA1(d470377e20e4d4935af5e57d081ce24dd9ea5793) ) - ROM_LOAD16_BYTE( "981jaa04.20a", 0x000001, 0x80000, CRC(5139988A) SHA1(2b1eb97dcbfbe6bba1352a02cf0036e9a721ab39) ) - ROM_LOAD16_BYTE( "981jaa05.22a", 0x100000, 0x80000, CRC(F370FDB9) SHA1(3a2bbdda984f2630e8ae505a8db259d9162e07a3) ) - ROM_LOAD16_BYTE( "981jaa06.24a", 0x100001, 0x80000, CRC(DA6E3813) SHA1(9163bd2cfb0a32798e797c7b4eea21e28772a206) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "981jaa07.22d", 0x000000, 0x80000, CRC(F6C72998) SHA1(e78af5b515b224c534f47abd6477dd97dc521b0d) ) - ROM_LOAD16_BYTE( "981jaa08.23d", 0x000001, 0x80000, CRC(AA4FF682) SHA1(3750e1e81b7c1a4fb419076171f20e4c36b1c544) ) - ROM_LOAD16_BYTE( "981jaa09.25d", 0x100000, 0x80000, CRC(D96D4E1C) SHA1(379aa4e82cd06490645f54dab1724c827108735d) ) - ROM_LOAD16_BYTE( "981jaa10.27d", 0x100001, 0x80000, CRC(06BEE0E4) SHA1(6eea8614cb01e7079393b9976b6fd6a52c14e3c0) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "981jaa11", 0, MD5(0058bbdcb5db054adff1c4148ef4211e) SHA1(bee71c31978ac186e5e933adcf0220a70496ca6c) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bmcompm2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "988jaa01.6a", 0x000000, 0x80000, CRC(31BE1D4C) SHA1(ab8c2b4a2b48e3b2b549022f65afb206ab125680) ) - ROM_LOAD16_BYTE( "988jaa02.8a", 0x000001, 0x80000, CRC(0413DE32) SHA1(f819e8756e2000de5df61ad42ac01de14b7330f9) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "988jaa03.19a", 0x000000, 0x80000, CRC(C0AD86D4) SHA1(6aca5bf3fbc0bd69116e442053840660eeff0239) ) - ROM_LOAD16_BYTE( "988jaa04.20a", 0x000001, 0x80000, CRC(84801A50) SHA1(8700e4fb56941b87f8333e72e2a1c7ac9e322312) ) - ROM_LOAD16_BYTE( "988jaa05.22a", 0x100000, 0x80000, CRC(0DDF7D6D) SHA1(aa110ab64c2fbf427796dff3a817b57cf6a9440d) ) - ROM_LOAD16_BYTE( "988jaa06.24a", 0x100001, 0x80000, CRC(2A87F69E) SHA1(fe84bb50864467a83d06d34a18123ab11fb55781) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "988jaa07.22d", 0x000000, 0x80000, CRC(9E57FE24) SHA1(40bd0428227e46ebe365f2f6821b08182a0ce698) ) - ROM_LOAD16_BYTE( "988jaa08.23d", 0x000001, 0x80000, CRC(BF604CA4) SHA1(6abc81d5d9084fcf59f70a6bd57e1b36041a1072) ) - ROM_LOAD16_BYTE( "988jaa09.25d", 0x100000, 0x80000, CRC(8F3BAE7F) SHA1(c4dac14f6c7f75a2b19153e05bfe969e9eb4aca0) ) - ROM_LOAD16_BYTE( "988jaa10.27d", 0x100001, 0x80000, CRC(248BF0EE) SHA1(d89205ed57e771401bfc2c24043d200ecbd0b7fc) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "988jaa11", 0, MD5(e7d1bcc21a56db62c47f3293fbdf80d9) SHA1(00a2e258d66585002413a999afb695a3f3fe30cb) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( hmcompm2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "988uaa01.6a", 0x000000, 0x80000, CRC(5E5CC6C0) SHA1(0e7cd601d4543715cbc9f65e6fd48837179c962a) ) - ROM_LOAD16_BYTE( "988uaa02.8a", 0x000001, 0x80000, CRC(E262984A) SHA1(f47662e40f91f2addb1a4b649923c1d0ee017341) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "988uaa03.19a", 0x000000, 0x80000, CRC(D0F204C8) SHA1(866baac5a6d301d5b9cf0c14e9937ee5f435db77) ) - ROM_LOAD16_BYTE( "988uaa04.20a", 0x000001, 0x80000, CRC(74C6B3ED) SHA1(7d9b064bab3f29fc6435f6430c71208abbf9d861) ) - ROM_LOAD16_BYTE( "988uaa05.22a", 0x100000, 0x80000, CRC(6B9321CB) SHA1(449e5f85288a8c6724658050fa9521c7454a1e46) ) - ROM_LOAD16_BYTE( "988uaa06.24a", 0x100001, 0x80000, CRC(DA6E0C1E) SHA1(4ef37db6c872bccff8c27fc53cccc0b269c7aee4) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "988uaa07.22d", 0x000000, 0x80000, CRC(9217870D) SHA1(d0536a8a929c41b49cdd053205165bfb8150e0c5) ) - ROM_LOAD16_BYTE( "988uaa08.23d", 0x000001, 0x80000, CRC(77777E59) SHA1(33b5508b961a04b82c9967a3326af6bbd838b85e) ) - ROM_LOAD16_BYTE( "988uaa09.25d", 0x100000, 0x80000, CRC(C2AD6810) SHA1(706388c5acf6718297fd90e10f8a673463a0893b) ) - ROM_LOAD16_BYTE( "988uaa10.27d", 0x100001, 0x80000, CRC(DAB0F3C9) SHA1(6fd899e753e32f60262c54ab8553c686c7ef28de) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "988jaa11", 0, MD5(e7d1bcc21a56db62c47f3293fbdf80d9) SHA1(00a2e258d66585002413a999afb695a3f3fe30cb) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bmdct ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "995jaa01.6a", 0x000000, 0x80000, CRC(2C224169) SHA1(0608469fa0a15026f461be5141ed29bf740144ca) ) - ROM_LOAD16_BYTE( "995jaa02.8a", 0x000001, 0x80000, CRC(A2EDB472) SHA1(795e44e56dfee6c5eceb28172bc20ba5b31c366b) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "995jaa03.19a", 0x000000, 0x80000, CRC(77A7030C) SHA1(8f7988ca5c248d0846ec22c0975ae008d85e8d72) ) - ROM_LOAD16_BYTE( "995jaa04.20a", 0x000001, 0x80000, CRC(A12EA45D) SHA1(9bd48bc25c17f885d74e859de153ec49012a4e39) ) - ROM_LOAD16_BYTE( "995jaa05.22a", 0x100000, 0x80000, CRC(1493FD98) SHA1(4cae2ebccc79b21d7e21b984dc6fe10ab3013a2d) ) - ROM_LOAD16_BYTE( "995jaa06.24a", 0x100001, 0x80000, CRC(86BFF0BB) SHA1(658280f78987eaee31b60a7826db6df105601f0a) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "995jaa07.22d", 0x000000, 0x80000, CRC(CE030EDF) SHA1(1e2594a6a04559d70b09750bb665d8cd3d0288ea) ) - ROM_LOAD16_BYTE( "995jaa08.23d", 0x000001, 0x80000, CRC(375D3D17) SHA1(180cb5ad4497b3745aa9317764f237b30a678b31) ) - ROM_LOAD16_BYTE( "995jaa09.25d", 0x100000, 0x80000, CRC(1510A9C2) SHA1(daf1ab26b7b6b0fe0123b3fbee68684157c2ce51) ) - ROM_LOAD16_BYTE( "995jaa10.27d", 0x100001, 0x80000, CRC(F9E4E9F2) SHA1(fe91badf6b0baeea690d75399d8c66fabcf6d352) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "995jaa11", 0, MD5(8f5936d2b0b0914b5c88f5432c6cac21) SHA1(deed0fca533f3e56e04f9967f3f76145ca106f06) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bmcorerm ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "a05jaa01.6a", 0x000000, 0x80000, CRC(CD6F1FC5) SHA1(237cbc17a693efb6bffffd6afb24f0944c29330c) ) - ROM_LOAD16_BYTE( "a05jaa02.8a", 0x000001, 0x80000, CRC(FE07785E) SHA1(14c652008cb509b5206fb515aad7dfe36a6fe6f4) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "a05jaa03.19a", 0x000000, 0x80000, CRC(8B88932A) SHA1(df20f8323adb02d07b835da98f4a29b3142175c9) ) - ROM_LOAD16_BYTE( "a05jaa04.20a", 0x000001, 0x80000, CRC(CC72629F) SHA1(f95d06f409c7d6422d66a55c0452eb3feafc6ef0) ) - ROM_LOAD16_BYTE( "a05jaa05.22a", 0x100000, 0x80000, CRC(E241B22B) SHA1(941a76f6ac821e0984057ec7df7862b12fa657b8) ) - ROM_LOAD16_BYTE( "a05jaa06.24a", 0x100001, 0x80000, CRC(77EB08A3) SHA1(fd339aaec06916abfc928e850e33480707b5450d) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "a05jaa07.22d", 0x000000, 0x80000, CRC(4D79646D) SHA1(5f1237bbd3cb09b27babf1c5359ef6c0d80ae3a9) ) - ROM_LOAD16_BYTE( "a05jaa08.23d", 0x000001, 0x80000, CRC(F067494F) SHA1(ef031b5501556c1aa047a51604a44551b35a8b99) ) - ROM_LOAD16_BYTE( "a05jaa09.25d", 0x100000, 0x80000, CRC(1504D62C) SHA1(3c31c6625bc089235a96fe21021239f2d0c0f6e1) ) - ROM_LOAD16_BYTE( "a05jaa10.27d", 0x100001, 0x80000, CRC(99D75C36) SHA1(9599420863aa0a9492d3caeb03f8ac5fd4c3cdb2) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "a05jaa11", 0, MD5(bf63321a1bb167f35f1a1111c02874b6) SHA1(95f8e5d29cc9f9af2b1c9397a26217f685f9d5a7) ) /* ver 1.00 JA */ -ROM_END - -ROM_START( bm6thmix ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* MC68EC020FG25 MPU */ - ROM_LOAD16_BYTE( "a21jaa01.6a", 0x000000, 0x80000, CRC(6D7CCBE3) SHA1(633c69c14dfd70866664b94095fa5f21087428d8) ) - ROM_LOAD16_BYTE( "a21jaa02.8a", 0x000001, 0x80000, CRC(F10076FA) SHA1(ab9f3e75a36fdaccec411afd77f588f040db139d) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0) /* SPRITE */ - ROM_LOAD16_BYTE( "a21jaa03.19a", 0x000000, 0x80000, CRC(CA806266) SHA1(6b5f9d5089a992347745ab6af4dadaac4e3b0742) ) - ROM_LOAD16_BYTE( "a21jaa04.20a", 0x000001, 0x80000, CRC(71124E79) SHA1(d9fd8f662ac9c29daf25acd310fd0f27051dea0b) ) - ROM_LOAD16_BYTE( "a21jaa05.22a", 0x100000, 0x80000, CRC(818E34E6) SHA1(8a9093b92392a065d0cf94d56195a6f3ca611044) ) - ROM_LOAD16_BYTE( "a21jaa06.24a", 0x100001, 0x80000, CRC(36F2043B) SHA1(d2846cc10173662029da7c5d686cf89299be2be5) ) - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* TILEMAP */ - ROM_LOAD16_BYTE( "a21jaa07.22d", 0x000000, 0x80000, CRC(841D83E1) SHA1(c85962abcc955e8f11138e03002b16afd3791f0a) ) - ROM_LOAD16_BYTE( "a21jaa08.23d", 0x000001, 0x80000, CRC(4E561919) SHA1(4b91560d9ba367c848d784db760f042d5d76e003) ) - ROM_LOAD16_BYTE( "a21jaa09.25d", 0x100000, 0x80000, CRC(181E6F70) SHA1(82c7ca3068ace9a66b614ead4b90ea6fe4017d51) ) - ROM_LOAD16_BYTE( "a21jaa10.27d", 0x100001, 0x80000, CRC(1AC33595) SHA1(3173bb8dc420487c4d427e779444a98aad37d51e) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "a21jaa11", 0, MD5(d7a02bd5db4f6fbefaceb1781d35d7a6) SHA1(9e9fb8000cfb53686d94060d7391fb2950265510) ) /* ver 1.00 JA */ -ROM_END - -/************************************* - * - * Driver-specific init - * - *************************************/ - -static DRIVER_INIT( beatmania ) -{ - UINT8 *region; - - region = new_memory_region(machine, REGION_SOUND1, 0x80000 * 32, 0); - - /* spin up the hard disk */ - ide_controller_init(0, &ide_intf); -} - -static UINT8 beatmania_master_password[2 + 32] = -{ - 0x01, 0x00, - 0x4d, 0x47, 0x43, 0x28, 0x4b, 0x29, 0x4e, 0x4f, - 0x4d, 0x41, 0x20, 0x49, 0x4c, 0x41, 0x20, 0x4c, - 0x49, 0x52, 0x48, 0x47, 0x53, 0x54, 0x52, 0x20, - 0x53, 0x45, 0x52, 0x45, 0x45, 0x56, 0x2e, 0x44 -}; - -static DRIVER_INIT( hmcompmx ) -{ - static UINT8 hmcompmx_user_password[2 + 32] = - { - 0x00, 0x00, - 0x44, 0x42, 0x56, 0x4b, 0x3a, 0x34, 0x38, 0x2a, - 0x5a, 0x4d, 0x78, 0x3e, 0x74, 0x61, 0x6c, 0x0a, - 0x7a, 0x63, 0x19, 0x77, 0x73, 0x7d, 0x0d, 0x12, - 0x6b, 0x09, 0x02, 0x0f, 0x05, 0x00, 0x7d, 0x1b - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, hmcompmx_user_password); -} - -static DRIVER_INIT( bm4thmix ) -{ - static UINT8 bm4thmix_user_password[2 + 32] = - { - 0x00, 0x00, - 0x44, 0x42, 0x29, 0x4b, 0x2f, 0x2c, 0x4c, 0x32, - 0x48, 0x5d, 0x0c, 0x3e, 0x62, 0x6f, 0x7e, 0x73, - 0x67, 0x10, 0x19, 0x79, 0x6c, 0x7d, 0x00, 0x01, - 0x18, 0x06, 0x1e, 0x07, 0x77, 0x1a, 0x7d, 0x77 - }; - - init_beatmania(machine); - - ide_set_user_password(0, bm4thmix_user_password); -} - -static DRIVER_INIT( bm5thmix ) -{ - static UINT8 bm5thmix_user_password[2 + 32] = - { - 0x00, 0x00, - 0x44, 0x42, 0x56, 0x4b, 0x37, 0x35, 0x4a, 0x23, - 0x5a, 0x52, 0x0c, 0x3e, 0x60, 0x04, 0x6c, 0x78, - 0x77, 0x7e, 0x74, 0x16, 0x6c, 0x7d, 0x00, 0x16, - 0x6b, 0x1a, 0x1e, 0x06, 0x04, 0x01, 0x7d, 0x1f - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, bm5thmix_user_password); -} - -static DRIVER_INIT( bmcompm2 ) -{ - static UINT8 bmcompm2_user_password[2 + 32] = - { - 0x00, 0x00, - 0x3a, 0x20, 0x31, 0x3e, 0x46, 0x2c, 0x35, 0x46, - 0x48, 0x51, 0x6f, 0x3e, 0x73, 0x6b, 0x68, 0x0a, - 0x60, 0x71, 0x19, 0x6f, 0x70, 0x68, 0x07, 0x62, - 0x6b, 0x0d, 0x71, 0x0f, 0x1d, 0x10, 0x7d, 0x7a - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, bmcompm2_user_password); -} - -static DRIVER_INIT( hmcompm2 ) -{ - static UINT8 hmcompm2_user_password[2 + 32] = - { - 0x00, 0x00, - 0x3b, 0x39, 0x24, 0x3e, 0x4e, 0x59, 0x5c, 0x32, - 0x3b, 0x4c, 0x72, 0x57, 0x69, 0x04, 0x79, 0x65, - 0x76, 0x10, 0x6a, 0x77, 0x1f, 0x65, 0x0a, 0x16, - 0x09, 0x68, 0x71, 0x0b, 0x77, 0x15, 0x17, 0x1e - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, hmcompm2_user_password); -} - -static DRIVER_INIT( bmdct ) -{ - static UINT8 bmdct_user_password[2 + 32] = - { - 0x00, 0x00, - 0x52, 0x47, 0x30, 0x3f, 0x2f, 0x39, 0x54, 0x5e, - 0x4f, 0x4b, 0x65, 0x3e, 0x07, 0x6e, 0x6c, 0x67, - 0x7d, 0x79, 0x7b, 0x16, 0x6d, 0x73, 0x65, 0x06, - 0x0e, 0x0a, 0x05, 0x0f, 0x13, 0x74, 0x09, 0x19 - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, bmdct_user_password); -} - -static DRIVER_INIT( bmcorerm ) -{ - static UINT8 bmcorerm_user_password[2 + 32] = - { - 0x00, 0x00, - 0x44, 0x42, 0x56, 0x4b, 0x3f, 0x4d, 0x4a, 0x27, - 0x5a, 0x52, 0x0c, 0x3e, 0x6a, 0x04, 0x63, 0x6f, - 0x72, 0x64, 0x72, 0x7f, 0x1f, 0x73, 0x17, 0x04, - 0x05, 0x09, 0x14, 0x0d, 0x7a, 0x74, 0x7d, 0x7a - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, bmcorerm_user_password); -} - -static DRIVER_INIT( bm6thmix ) -{ - static UINT8 bm6thmix_user_password[2 + 32] = - { - 0x00, 0x00, - 0x44, 0x42, 0x56, 0x4b, 0x3d, 0x4d, 0x4a, 0x23, - 0x5a, 0x52, 0x0c, 0x3e, 0x6a, 0x04, 0x63, 0x65, - 0x7e, 0x7f, 0x77, 0x77, 0x1f, 0x79, 0x04, 0x0f, - 0x02, 0x06, 0x09, 0x0f, 0x7a, 0x74, 0x7d, 0x7a - }; - - init_beatmania(machine); - - ide_set_master_password(0, beatmania_master_password); - ide_set_user_password(0, bm6thmix_user_password); -} - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1997, bm1stmix, 0, djmain, bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 ) -GAME( 1998, bm2ndmix, 0, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 ) -GAME( 1998, bm2ndmxa, bm2ndmix, djmain, bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 ) -GAME( 1999, bmcompmx, 0, djmain, bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 ) -GAME( 1999, hmcompmx, bmcompmx, djmain, bmcompmx, hmcompmx, ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 ) -GAME( 1999, bm4thmix, 0, djmain, bm4thmix, bm4thmix, ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 ) -GAME( 1999, bm5thmix, 0, djmain, beatmania, bm5thmix, ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 ) -GAME( 2000, bmcompm2, 0, djmain, beatmania, bmcompm2, ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 ) -GAME( 2000, hmcompm2, bmcompm2, djmain, hmcompm2, hmcompm2, ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 ) -GAME( 2000, bmdct, 0, djmain, bmdct, bmdct, ROT0, "Konami", "beatmania f. Dreams Come True (ver JA-A)", 0 ) -GAME( 2000, bmcorerm, 0, djmain, beatmania, bmcorerm, ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 ) -GAME( 2001, bm6thmix, 0, djmain, beatmania, bm6thmix, ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 ) diff --git a/src/drivers/dkong.c b/src/drivers/dkong.c deleted file mode 100644 index 1fb06b3e9..000000000 --- a/src/drivers/dkong.c +++ /dev/null @@ -1,2930 +0,0 @@ -/*************************************************************************** - -TODO: -- Radarscope does a check on bit 6 of 7d00 which prevent it from working. - It's a sound status flag, maybe signaling whan a tune is finished. - For now, we comment it out. - -- radarscp_grid_color_w() is wrong, it probably isn't supposed to change - the grid color. There are reports of the grid being constantly blue in - the real game, the flyer confirms this. - - -Donkey Kong and Donkey Kong Jr. memory map (preliminary) (DKong 3 follows) - -0000-3fff ROM (Donkey Kong Jr.and Donkey Kong 3: 0000-5fff) -6000-6fff RAM -6900-6a7f sprites -7000-73ff ? -7400-77ff Video RAM -8000-9fff ROM (DK3 only) - - - -memory mapped ports: - -read: -7c00 IN0 -7c80 IN1 -7d00 IN2 (DK3: DSW2) -7d80 DSW1 - -* - * IN0 (bits NOT inverted) - * bit 7 : ? - * bit 6 : reset (when player 1 active) - * bit 5 : ? - * bit 4 : JUMP player 1 - * bit 3 : DOWN player 1 - * bit 2 : UP player 1 - * bit 1 : LEFT player 1 - * bit 0 : RIGHT player 1 - * -* - * IN1 (bits NOT inverted) - * bit 7 : ? - * bit 6 : reset (when player 2 active) - * bit 5 : ? - * bit 4 : JUMP player 2 - * bit 3 : DOWN player 2 - * bit 2 : UP player 2 - * bit 1 : LEFT player 2 - * bit 0 : RIGHT player 2 - * -* - * IN2 (bits NOT inverted) - * bit 7 : COIN (IS inverted in Radarscope) - * bit 6 : ? Radarscope does some wizardry with this bit - * bit 5 : ? - * bit 4 : ? - * bit 3 : START 2 - * bit 2 : START 1 - * bit 1 : ? - * bit 0 : ? if this is 1, the code jumps to $4000, outside the rom space - * -* - * DSW1 (bits NOT inverted) - * bit 7 : COCKTAIL or UPRIGHT cabinet (1 = UPRIGHT) - * bit 6 : \ 000 = 1 coin 1 play 001 = 2 coins 1 play 010 = 1 coin 2 plays - * bit 5 : | 011 = 3 coins 1 play 100 = 1 coin 3 plays 101 = 4 coins 1 play - * bit 4 : / 110 = 1 coin 4 plays 111 = 5 coins 1 play - * bit 3 : \bonus at - * bit 2 : / 00 = 7000 01 = 10000 10 = 15000 11 = 20000 - * bit 1 : \ 00 = 3 lives 01 = 4 lives - * bit 0 : / 10 = 5 lives 11 = 6 lives - * - -write: -7800-7803 ? -7808 ? -7c00 Background sound/music select: - 00 - nothing - 01 - Intro tune - 02 - How High? (intermisson) tune - 03 - Out of time - 04 - Hammer - 05 - Rivet level 2 completed (end tune) - 06 - Hammer hit - 07 - Standard level end - 08 - Background 1 (first screen) - 09 - ??? - 0A - Background 3 (springs) - 0B - Background 2 (rivet) - 0C - Rivet level 1 completed (end tune) - 0D - Rivet removed - 0E - Rivet level completed - 0F - Gorilla roar -7c80 gfx bank select (Donkey Kong Jr. only) -7d00 digital sound trigger - walk -7d01 digital sound trigger - jump -7d02 digital sound trigger - boom (gorilla stomps foot) -7d03 digital sound trigger - coin input/spring -7d04 digital sound trigger - gorilla fall -7d05 digital sound trigger - barrel jump/prize -7d06 ? -7d07 ? -7d80 digital sound trigger - dead -7d82 flip screen -7d83 ? -7d84 interrupt enable -7d85 0/1 toggle -7d86-7d87 palette bank selector (only bit 0 is significant: 7d86 = bit 0 7d87 = bit 1) - - -8035 Memory Map: - -0000-07ff ROM -0800-0fff Compressed sound sample (Gorilla roar in DKong) - -Read ports: -0x20 Read current tune -P2.5 Active low when jumping -T0 Select sound for jump (Normal or Barrell?) -T1 Active low when gorilla is falling - -Write ports: -P1 Digital out -P2.7 External decay -P2.6 Select second ROM reading (MOVX instruction will access area 800-fff) -P2.2-0 Select the bank of 256 bytes for second ROM - - - -Donkey Kong 3 memory map (preliminary): - -RAM and read ports same as above; - -write: -7d00 ? -7d80 ? -7e00 ? -7e80 -7e81 char bank selector -7e82 flipscreen -7e83 ? -7e84 interrupt enable -7e85 ? -7e86-7e87 palette bank selector (only bit 0 is significant: 7e86 = bit 0 7e87 = bit 1) - - -I/O ports - -write: -00 ? - -Changes: - Apr 7 98 Howie Cohen - * Added samples for the climb, jump, land and walking sounds - - Jul 27 99 Chad Hendrickson - * Added cocktail mode flipscreen - -***************************************************************************/ - -#include "driver.h" -#include "cpu/i8039/i8039.h" -#include "cpu/s2650/s2650.h" -#include "cpu/m6502/m6502.h" -#include "sound/dac.h" -#include "sound/samples.h" -#include "sound/nes_apu.h" -#include "includes/dkong.h" -#include - -static UINT8 page,mcustatus; -static UINT8 p[8]; -static UINT8 t[2]; -static double envelope,tt; -static UINT8 decay; -static INT8 counter; -static int hunchloopback; - - - -#define ACTIVELOW_PORT_BIT(P,A,D) ((P & (~(1 << A))) | ((D ^ 1) << A)) - - -WRITE8_HANDLER( dkong_sh_sound3_w ) { p[2] = ACTIVELOW_PORT_BIT(p[2],5,data); } -WRITE8_HANDLER( dkong_sh_sound4_w ) { t[1] = ~data & 1; } -WRITE8_HANDLER( dkong_sh_sound5_w ) { t[0] = ~data & 1; } -WRITE8_HANDLER( dkong_sh_tuneselect_w ) { soundlatch_w(offset,data ^ 0x0f); } - -WRITE8_HANDLER( dkongjr_sh_test6_w ) { p[2] = ACTIVELOW_PORT_BIT(p[2],6,data); } -WRITE8_HANDLER( dkongjr_sh_test5_w ) { p[2] = ACTIVELOW_PORT_BIT(p[2],5,data); } -WRITE8_HANDLER( dkongjr_sh_test4_w ) { p[2] = ACTIVELOW_PORT_BIT(p[2],4,data); } -WRITE8_HANDLER( dkongjr_sh_tuneselect_w ) { soundlatch_w(offset,data); } - -static READ8_HANDLER( hunchbkd_mirror_r ) -{ - return program_read_byte(0x1000+offset); -} - -static WRITE8_HANDLER( hunchbkd_mirror_w ) -{ - program_write_byte(0x1000+offset,data); -} - -static READ8_HANDLER( dkong_sh_p1_r ) { return p[1]; } -static READ8_HANDLER( dkong_sh_p2_r ) { return p[2]; } -static READ8_HANDLER( dkong_sh_t0_r ) { return t[0]; } -static READ8_HANDLER( dkong_sh_t1_r ) { return t[1]; } -static READ8_HANDLER( dkong_sh_tune_r ) -{ - UINT8 *SND = memory_region(REGION_CPU2); - if (page & 0x40) - { - switch (offset) - { - case 0x20: return soundlatch_r(0); - } - } - return (SND[2048+(page & 7)*256+offset]); -} - -#define TSTEP 0.001 - -static WRITE8_HANDLER( dkong_sh_p1_w ) -{ - envelope=exp(-tt); - DAC_data_w(0,(int)(data*envelope)); - if (decay) tt+=TSTEP; - else tt=0; -} - -static WRITE8_HANDLER( dkong_sh_p2_w ) -{ - /* If P2.Bit7 -> is apparently an external signal decay or other output control - * If P2.Bit6 -> activates the external compressed sample ROM - * If P2.Bit4 -> status code to main cpu - * P2.Bit2-0 -> select the 256 byte bank for external ROM - */ - - decay = !(data & 0x80); - page = (data & 0x47); - mcustatus = ((~data & 0x10) >> 4); -} - -static READ8_HANDLER( dkong_in2_r ) -{ - return input_port_2_r(offset) | (mcustatus << 6); -} - -/* EPOS games */ - -static MACHINE_START( dkong ) -{ - state_save_register_global(page); - state_save_register_global(mcustatus); - state_save_register_global_array(p); - state_save_register_global_array(t); - state_save_register_global(envelope); - state_save_register_global(tt); - state_save_register_global(decay); - state_save_register_global(counter); - state_save_register_global(hunchloopback); - - mcustatus = 0; - envelope = 0; - tt = 0; - decay = 0; - hunchloopback = 0; - - return 0; -} - -static MACHINE_RESET( dkong ) -{ - page = 0; - p[0] = p[1] = p[2] = p[3] = p[4] = p[5] = p[6] = p[7] = 255; - t[0] = t[1] = 1; - counter = 0; -} - - -static MACHINE_RESET( strtheat ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - - machine_reset_dkong(machine); - - /* The initial state of the counter is 0x08 */ - memory_configure_bank(1, 0, 4, &ROM[0x10000], 0x4000); - counter = 0x08; - memory_set_bank(1, 0); -} - -static MACHINE_RESET( drakton ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - - machine_reset_dkong(machine); - - /* The initial state of the counter is 0x09 */ - memory_configure_bank(1, 0, 4, &ROM[0x10000], 0x4000); - counter = 0x09; - memory_set_bank(1, 1); -} - -static READ8_HANDLER( epos_decrypt_rom ) -{ - if (offset & 0x01) - { - counter = counter - 1; - if (counter < 0) - counter = 0x0F; - } - else - { - counter = (counter + 1) & 0x0F; - } - - switch(counter) - { - case 0x08: memory_set_bank(1, 0); break; - case 0x09: memory_set_bank(1, 1); break; - case 0x0A: memory_set_bank(1, 2); break; - case 0x0B: memory_set_bank(1, 3); break; - default: - logerror("Invalid counter = %02X\n",counter); - break; - } - - return 0; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) /* DK: 0000-3fff */ - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM) /* including sprites RAM */ - AM_RANGE(0x7400, 0x77ff) AM_READ(MRA8_RAM) /* video RAM */ - AM_RANGE(0x7c00, 0x7c00) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */ - AM_RANGE(0x7d80, 0x7d80) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_ROM) /* DK3 and bootleg DKjr only */ - AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_ROM) /* Pest Place only */ - AM_RANGE(0xd000, 0xdfff) AM_READ(MRA8_ROM) /* DK3 bootleg only */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) /* DK: 0000-3fff */ - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM) /* including sprites RAM */ - AM_RANGE(0x7400, 0x77ff) AM_READ(MRA8_RAM) /* video RAM */ - AM_RANGE(0x7c00, 0x7c00) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x7d00, 0x7d00) AM_READ(input_port_2_r) /* IN2/DSW2 */ - AM_RANGE(0x7d80, 0x7d80) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_ROM) /* DK3 and bootleg DKjr only */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( radarscp_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7000, 0x73ff) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7800, 0x7803) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7808, 0x7808) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(dkong_sh_tuneselect_w) - AM_RANGE(0x7c80, 0x7c80) AM_WRITE(radarscp_grid_color_w) - AM_RANGE(0x7d00, 0x7d02) AM_WRITE(dkong_sh1_w) /* walk/jump/boom sample trigger */ - AM_RANGE(0x7d03, 0x7d03) AM_WRITE(dkong_sh_sound3_w) - AM_RANGE(0x7d04, 0x7d04) AM_WRITE(dkong_sh_sound4_w) - AM_RANGE(0x7d05, 0x7d05) AM_WRITE(dkong_sh_sound5_w) - AM_RANGE(0x7d80, 0x7d80) AM_WRITE(dkong_sh_w) - AM_RANGE(0x7d81, 0x7d81) AM_WRITE(radarscp_grid_enable_w) - AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7d83, 0x7d83) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7d85, 0x7d85) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7000, 0x73ff) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7800, 0x7803) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7808, 0x7808) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(dkong_sh_tuneselect_w) -// AM_RANGE(0x7c80, 0x7c80) - AM_RANGE(0x7d00, 0x7d02) AM_WRITE(dkong_sh1_w) /* walk/jump/boom sample trigger */ - AM_RANGE(0x7d03, 0x7d03) AM_WRITE(dkong_sh_sound3_w) - AM_RANGE(0x7d04, 0x7d04) AM_WRITE(dkong_sh_sound4_w) - AM_RANGE(0x7d05, 0x7d05) AM_WRITE(dkong_sh_sound5_w) - AM_RANGE(0x7d80, 0x7d80) AM_WRITE(dkong_sh_w) - AM_RANGE(0x7d81, 0x7d81) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7d83, 0x7d83) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7d85, 0x7d85) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hunchbkd_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x1400, 0x1400) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x1480, 0x1480) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x1500, 0x1500) AM_READ(input_port_2_r) /* IN2/DSW2 */ -// AM_RANGE(0x1507, 0x1507) AM_READ(herbiedk_iack_r) /* Clear Int */ - AM_RANGE(0x1580, 0x1580) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x1600, 0x1bff) AM_READ(MRA8_RAM) /* video RAM */ - AM_RANGE(0x1c00, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_READ(hunchbkd_mirror_r) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_READ(hunchbkd_mirror_r) - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_READ(hunchbkd_mirror_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hunchbkd_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1400, 0x1400) AM_WRITE(dkong_sh_tuneselect_w) - AM_RANGE(0x1480, 0x1480) AM_WRITE(dkongjr_gfxbank_w) - AM_RANGE(0x1580, 0x1580) AM_WRITE(dkong_sh_w) - AM_RANGE(0x1582, 0x1582) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x1584, 0x1584) AM_WRITE(MWA8_RAM) /* Possibly still interupt enable */ - AM_RANGE(0x1585, 0x1585) AM_WRITE(MWA8_RAM) /* written a lot - every int */ - AM_RANGE(0x1586, 0x1587) AM_WRITE(dkong_palettebank_w) - AM_RANGE(0x1600, 0x17ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x1800, 0x1bff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x1C00, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_WRITE(hunchbkd_mirror_w) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_WRITE(hunchbkd_mirror_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_WRITE(hunchbkd_mirror_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( epos_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_BANK1) /* DK: 0000-3fff */ - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM) /* including sprites RAM */ - AM_RANGE(0x7400, 0x77ff) AM_READ(MRA8_RAM) /* video RAM */ - AM_RANGE(0x7808, 0x7808) AM_READ(MRA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2/DSW2 */ - AM_RANGE(0x7d80, 0x7d80) AM_READ(input_port_3_r) /* DSW1 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( epos_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x61ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6200, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7800, 0x7803) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7808, 0x7808) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(dkong_sh_tuneselect_w) - AM_RANGE(0x7d03, 0x7d03) AM_WRITE(dkong_sh_sound3_w) - AM_RANGE(0x7d04, 0x7d04) AM_WRITE(dkong_sh_sound4_w) - AM_RANGE(0x7d05, 0x7d05) AM_WRITE(dkong_sh_sound5_w) - AM_RANGE(0x7d06, 0x7d06) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7d80, 0x7d80) AM_WRITE(dkong_sh_w) - AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7d83, 0x7d83) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7d85, 0x7d85) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w) -ADDRESS_MAP_END - -WRITE8_HANDLER( hunchbkd_data_w ) -{ - hunchloopback=data; -} - -READ8_HANDLER( hunchbkd_port0_r ) -{ - logerror("port 0 : pc = %4x\n",activecpu_get_pc()); - - switch (activecpu_get_pc()) - { - case 0x00e9: return 0xff; - case 0x0114: return 0xfb; - } - - return 0; -} - -READ8_HANDLER( hunchbkd_port1_r ) -{ - return hunchloopback; -} - -READ8_HANDLER( herbiedk_port1_r ) -{ - switch (activecpu_get_pc()) - { - case 0x002b: - case 0x09dc: return 0x0; - } - - return 1; -} - -READ8_HANDLER( spclforc_port0_r ) -{ - switch (activecpu_get_pc()) - { - case 0x00a3: // spclforc - case 0x007b: // spcfrcii - return 1; - } - - return 0; -} - -READ8_HANDLER( eightact_port1_r ) -{ - switch (activecpu_get_pc()) - { - case 0x0021: - return 0; - } - - return 1; -} - -READ8_HANDLER( shootgal_port0_r ) -{ - switch (activecpu_get_pc()) - { - case 0x0079: - return 0xff; - } - - return 0; -} - -static ADDRESS_MAP_START( hunchbkd_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_WRITE(hunchbkd_data_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hunchbkd_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(hunchbkd_port0_r) - AM_RANGE(0x01, 0x01) AM_READ(hunchbkd_port1_r) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( herbiedk_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(herbiedk_port1_r) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spclforc_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(spclforc_port0_r) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( eightact_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x01, 0x01) AM_READ(eightact_port1_r) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shootgal_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(shootgal_port0_r) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0xff) AM_READ(dkong_sh_tune_r) - AM_RANGE(I8039_p1, I8039_p1) AM_READ(dkong_sh_p1_r) - AM_RANGE(I8039_p2, I8039_p2) AM_READ(dkong_sh_p2_r) - AM_RANGE(I8039_t0, I8039_t0) AM_READ(dkong_sh_t0_r) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(dkong_sh_t1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(I8039_p1, I8039_p1) AM_WRITE(dkong_sh_p1_w) - AM_RANGE(I8039_p2, I8039_p2) AM_WRITE(dkong_sh_p2_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport_hunchbkd_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(I8039_bus, I8039_bus) AM_READ(soundlatch_r) - AM_RANGE(I8039_p1, I8039_p1) AM_READ(dkong_sh_p1_r) - AM_RANGE(I8039_p2, I8039_p2) AM_READ(dkong_sh_p2_r) - AM_RANGE(I8039_t0, I8039_t0) AM_READ(dkong_sh_t0_r) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(dkong_sh_t1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( epos_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0xff) AM_READ(epos_decrypt_rom) /* Switch protection logic */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( dkongjr_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7800, 0x7803) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7808, 0x7808) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(dkongjr_sh_tuneselect_w) - AM_RANGE(0x7c80, 0x7c80) AM_WRITE(dkongjr_gfxbank_w) - AM_RANGE(0x7c81, 0x7c81) AM_WRITE(dkongjr_sh_test6_w) - AM_RANGE(0x7d00, 0x7d00) AM_WRITE(dkongjr_sh_climb_w) /* HC - climb sound */ - AM_RANGE(0x7d01, 0x7d01) AM_WRITE(dkongjr_sh_jump_w) /* HC - jump */ - AM_RANGE(0x7d02, 0x7d02) AM_WRITE(dkongjr_sh_land_w) /* HC - climb sound */ - AM_RANGE(0x7d03, 0x7d03) AM_WRITE(dkongjr_sh_roar_w) - AM_RANGE(0x7d04, 0x7d04) AM_WRITE(dkong_sh_sound4_w) - AM_RANGE(0x7d05, 0x7d05) AM_WRITE(dkong_sh_sound5_w) - AM_RANGE(0x7d06, 0x7d06) AM_WRITE(dkongjr_sh_snapjaw_w) - AM_RANGE(0x7d07, 0x7d07) AM_WRITE(dkongjr_sh_walk_w) /* controls pitch of the walk/climb? */ - AM_RANGE(0x7d80, 0x7d80) AM_WRITE(dkongjr_sh_death_w) - AM_RANGE(0x7d81, 0x7d81) AM_WRITE(dkongjr_sh_drop_w) /* active when Junior is falling */ - AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7d85, 0x7d85) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w) - AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) /* bootleg DKjr only */ - AM_RANGE(0xd000, 0xdfff) AM_WRITE(MWA8_ROM) /* DK3 bootleg only */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pestplce_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7800, 0x7803) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7808, 0x7808) AM_WRITE(MWA8_RAM) /* ???? */ - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(dkongjr_sh_tuneselect_w) - AM_RANGE(0x7c80, 0x7c80) AM_WRITE(dkongjr_gfxbank_w) - AM_RANGE(0x7c81, 0x7c81) AM_WRITE(dkongjr_sh_test6_w) - AM_RANGE(0x7d00, 0x7d02) AM_WRITENOP //(dkong_sh1_w) /* walk/jump/boom sample trigger */ - AM_RANGE(0x7d03, 0x7d03) AM_WRITENOP //(dkong_sh_sound3_w) - AM_RANGE(0x7d04, 0x7d04) AM_WRITE(dkong_sh_sound4_w) - AM_RANGE(0x7d05, 0x7d05) AM_WRITE(dkong_sh_sound5_w) - AM_RANGE(0x7d06, 0x7d06) AM_WRITENOP - AM_RANGE(0x7d80, 0x7d80) AM_WRITENOP //(dkong_sh_w) - AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7d84, 0x7d84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7d85, 0x7d85) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w) - AM_RANGE(0xb000, 0xbfff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -WRITE8_HANDLER( dkong3_2a03_reset_w ) -{ - if (data & 1) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(2, INPUT_LINE_RESET, CLEAR_LINE); - } - else - { - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(2, INPUT_LINE_RESET, ASSERT_LINE); - } -} - -static ADDRESS_MAP_START( dkong3_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(dkong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(soundlatch_w) - AM_RANGE(0x7c80, 0x7c80) AM_WRITE(soundlatch2_w) - AM_RANGE(0x7d00, 0x7d00) AM_WRITE(soundlatch3_w) - AM_RANGE(0x7d80, 0x7d80) AM_WRITE(dkong3_2a03_reset_w) - AM_RANGE(0x7e81, 0x7e81) AM_WRITE(dkong3_gfxbank_w) - AM_RANGE(0x7e82, 0x7e82) AM_WRITE(dkong_flipscreen_w) - AM_RANGE(0x7e84, 0x7e84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7e85, 0x7e85) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x7e86, 0x7e87) AM_WRITE(dkong_palettebank_w) - AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_sound1_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch_r) - AM_RANGE(0x4017, 0x4017) AM_READ(soundlatch2_r) - AM_RANGE(0x4000, 0x4017) AM_READ(NESPSG_0_r) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_sound1_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x4017) AM_WRITE(NESPSG_0_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_sound2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch3_r) - AM_RANGE(0x4000, 0x4017) AM_READ(NESPSG_1_r) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dkong3_sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x4017) AM_WRITE(NESPSG_1_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( dkong ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME(DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "7000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x08, "15000" ) - PORT_DIPSETTING( 0x0c, "20000" ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( dkong3 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN3 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME(DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30000" ) - PORT_DIPSETTING( 0x04, "40000" ) - PORT_DIPSETTING( 0x08, "50000" ) - PORT_DIPSETTING( 0x0c, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x00, "Additional Bonus" ) - PORT_DIPSETTING( 0x00, "30000" ) - PORT_DIPSETTING( 0x10, "40000" ) - PORT_DIPSETTING( 0x20, "50000" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dkong3b ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( hunchbkd ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x04, "20000" ) - PORT_DIPSETTING( 0x08, "40000" ) - PORT_DIPSETTING( 0x0c, "80000" ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - -INPUT_PORTS_START( shootgal ) - PORT_START /* IN0 */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START /* IN1 */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, "1" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Time" ) - PORT_DIPSETTING( 0x00, "60" ) - PORT_DIPSETTING( 0x04, "100" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - -INPUT_PORTS_START( sbdk ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - -INPUT_PORTS_START( herbiedk ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Start 1 / P1 Button 1") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start 2 / P1 Button 2") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) -INPUT_PORTS_END - -/* Notes : - - you ALWAYS get an extra life at 150000 points. - - having more than 6 lives will reset the game. -*/ -INPUT_PORTS_START( herodk ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x0c, 0x00, "Difficulty?" ) // Stored at 0x1c99 - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) -INPUT_PORTS_END - - -INPUT_PORTS_START( pestplce ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x20, 0x20, "2 Players Game" ) - PORT_DIPSETTING( 0x00, "1 Credit" ) - PORT_DIPSETTING( 0x20, "2 Credits" ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x40, "30000" ) - PORT_DIPSETTING( 0x80, "40000" ) - PORT_DIPSETTING( 0xc0, DEF_STR ( None ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( spclforc ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Start 1 / P1 Button 1") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start 2 / P1 Button 2") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "40000" ) - PORT_DIPSETTING( 0x08, "50000" ) - PORT_DIPSETTING( 0x10, "60000" ) - PORT_DIPSETTING( 0x18, "70000" ) - PORT_DIPNAME( 0xe0, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) -INPUT_PORTS_END - - -INPUT_PORTS_START( 8ballact ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* Sense */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) -INPUT_PORTS_END - - -INPUT_PORTS_START( drakton ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPNAME( 0x70, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x10, "20000" ) - PORT_DIPSETTING( 0x20, "30000" ) - PORT_DIPSETTING( 0x30, "40000" ) - PORT_DIPSETTING( 0x40, "50000" ) - PORT_DIPSETTING( 0x50, "60000" ) - PORT_DIPSETTING( 0x60, "70000" ) - PORT_DIPSETTING( 0x70, "80000" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( strtheat ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* status from sound cpu */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x06, "6" ) - PORT_DIPNAME( 0x38, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x08, "20000" ) - PORT_DIPSETTING( 0x10, "30000" ) - PORT_DIPSETTING( 0x18, "40000" ) - PORT_DIPSETTING( 0x20, "50000" ) - PORT_DIPSETTING( 0x28, "60000" ) - PORT_DIPSETTING( 0x30, "70000" ) - PORT_DIPSETTING( 0x38, "80000" ) - PORT_DIPNAME( 0x40, 0x00,"Control type" ) - PORT_DIPSETTING( 0x00, "Steering Wheel" ) - PORT_DIPSETTING( 0x40, DEF_STR ( Joystick ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START /* IN4 */ - PORT_BIT( 0x03, 0x03, IPT_DIAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN5 */ - PORT_BIT( 0x03, 0x03, IPT_DIAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,2), - 2, /* 2 bits per pixel */ - { RGN_FRAC(1,2), RGN_FRAC(0,2) }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* pretty straightforward layout */ - { 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 */ - RGN_FRAC(1,4), /* 128 sprites */ - 2, /* 2 bits per pixel */ - { RGN_FRAC(1,2), RGN_FRAC(0,2) }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, /* the two halves of the sprite are separated */ - RGN_FRAC(1,4)+0, RGN_FRAC(1,4)+1, RGN_FRAC(1,4)+2, RGN_FRAC(1,4)+3, RGN_FRAC(1,4)+4, RGN_FRAC(1,4)+5, RGN_FRAC(1,4)+6, RGN_FRAC(1,4)+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 16*8 /* every sprite takes 16 consecutive bytes */ -}; - -static const gfx_layout pestplce_spritelayout = -{ - 16,16, /* 16*16 sprites */ - 256, /* 256 sprites */ - 2, /* 2 bits per pixel */ - { 0, 256*16*16 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, /* the two halves of the sprite are separated */ - 256*16*8+0, 256*16*8+1, 256*16*8+2, 256*16*8+3, 256*16*8+4, 256*16*8+5, 256*16*8+6, 256*16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 16*8 /* every sprite takes 16 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 64 }, - { REGION_GFX2, 0x0000, &spritelayout, 0, 64 }, - { -1 } /* end of array */ -}; - -static const gfx_decode pestplce_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 64 }, - { REGION_GFX2, 0x0000, &pestplce_spritelayout, 0, 64 }, - { -1 } /* end of array */ -}; - -static const char *dkong_sample_names[] = -{ - "*dkong", - "run01.wav", - "run02.wav", - "run03.wav", - "jump.wav", - "dkstomp.wav", - 0 /* end of array */ -}; - -static const char *dkongjr_sample_names[] = -{ - "*dkongjr", - "jump.wav", - "land.wav", - "roar.wav", - "climb0.wav", - "climb1.wav", - "climb2.wav", - "death.wav", - "drop.wav", - "walk0.wav", - "walk1.wav", - "walk2.wav", - "snapjaw.wav", - 0 /* end of array */ -}; - -static struct Samplesinterface dkong_samples_interface = -{ - 8, /* 8 channels */ - dkong_sample_names -}; - -static struct Samplesinterface dkongjr_samples_interface = -{ - 8, /* 8 channels */ - dkongjr_sample_names -}; - -static MACHINE_DRIVER_START( radarscp ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,radarscp_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256+2) - MDRV_COLORTABLE_LENGTH(64*4) /* two extra colors for stars and radar grid */ - - MDRV_PALETTE_INIT(dkong) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(radarscp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(dkong_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dkong ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,dkong_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(dkong) - - /* sound hardware */ - MDRV_SOUND_START(dkong) - - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(dkong_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static INTERRUPT_GEN( hunchbkd_interrupt ) -{ - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, 0x03); -} - -static MACHINE_DRIVER_START( hunchbkd ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", S2650, 3072000/2) /* ??? */ - MDRV_CPU_PROGRAM_MAP(hunchbkd_readmem,hunchbkd_writemem) - MDRV_CPU_IO_MAP(hunchbkd_readport,hunchbkd_writeport) - MDRV_CPU_VBLANK_INT(hunchbkd_interrupt,1) - - MDRV_CPU_ADD_TAG("sound", I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_hunchbkd_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(dkong) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( herbiedk ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hunchbkd) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(herbiedk_readport,hunchbkd_writeport) - - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000)) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( spclforc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hunchbkd) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(spclforc_readport,hunchbkd_writeport) - - MDRV_CPU_REMOVE("sound") - - /* video hardware */ - MDRV_VIDEO_UPDATE(spclforc) - - /* analog sound */ -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( eightact ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hunchbkd) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(eightact_readport,hunchbkd_writeport) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( shootgal ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hunchbkd) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(shootgal_readport,hunchbkd_writeport) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dkongjr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,dkongjr_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(dkong) - - /* sound hardware */ - MDRV_SOUND_START(dkong) - - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(dkongjr_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dkong3b ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(dkongjr) - MDRV_PALETTE_INIT(dkong3) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pestplce ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,pestplce_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(pestplce_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong) // wrong! - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(pestplce) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) - - /* samples */ -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( epos ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(epos_readmem,epos_writemem) - MDRV_CPU_IO_MAP(epos_readport,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8035,6000000/15) /* 6MHz crystal */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(dkong) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( strtheat ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(epos) - MDRV_MACHINE_RESET(strtheat) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( drakton ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(epos) - MDRV_MACHINE_RESET(drakton) -MACHINE_DRIVER_END - -static struct NESinterface nes_interface_1 = { REGION_CPU2 }; -static struct NESinterface nes_interface_2 = { REGION_CPU3 }; - - -static MACHINE_DRIVER_START( dkong3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(dkong3_readmem,dkong3_writemem) - MDRV_CPU_IO_MAP(0,dkong3_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(N2A03,N2A03_DEFAULTCLOCK) - MDRV_CPU_PROGRAM_MAP(dkong3_sound1_readmem,dkong3_sound1_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(N2A03,N2A03_DEFAULTCLOCK) - MDRV_CPU_PROGRAM_MAP(dkong3_sound2_readmem,dkong3_sound2_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_MACHINE_START(dkong) - MDRV_MACHINE_RESET(dkong) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4) - - MDRV_PALETTE_INIT(dkong3) - MDRV_VIDEO_START(dkong) - MDRV_VIDEO_UPDATE(dkong) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(NES, N2A03_DEFAULTCLOCK) - MDRV_SOUND_CONFIG(nes_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(NES, N2A03_DEFAULTCLOCK) - MDRV_SOUND_CONFIG(nes_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( radarscp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "trs2c5fc", 0x0000, 0x1000, CRC(40949e0d) SHA1(94717b9d027600e25b863e89900df41325875961) ) - ROM_LOAD( "trs2c5gc", 0x1000, 0x1000, CRC(afa8c49f) SHA1(25880e9dcf2dc8862f7f3c38687f01dfe2424293) ) - ROM_LOAD( "trs2c5hc", 0x2000, 0x1000, CRC(51b8263d) SHA1(09687f2c40cf09ffc2aeddde4a4fa32800847f01) ) - ROM_LOAD( "trs2c5kc", 0x3000, 0x1000, CRC(1f0101f7) SHA1(b9f988847fdefa64dfeae06c2244215cb0d64dbe) ) - /* space for diagnostic ROM */ - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "trs2s3i", 0x0000, 0x0800, CRC(78034f14) SHA1(548b44ac69f39df6687da1c0f60968009b1e0767) ) - /* socket 3J is empty */ - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "trs2v3gc", 0x0000, 0x0800, CRC(f095330e) SHA1(dd3de744f28ff108630d3336bd246d3323fa34af) ) - ROM_LOAD( "trs2v3hc", 0x0800, 0x0800, CRC(15a316f0) SHA1(8785a996c6433882a0a7150693c329a4247bb77e) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "trs2v3dc", 0x0000, 0x0800, CRC(e0bb0db9) SHA1(b570439ea1b5d34d0ac938ac9157f22f319b786d) ) - ROM_LOAD( "trs2v3cc", 0x0800, 0x0800, CRC(6c4e7dad) SHA1(54e6a5005c44261dc4ba845dcd5ff62ea1402d26) ) - ROM_LOAD( "trs2v3bc", 0x1000, 0x0800, CRC(6fdd63f1) SHA1(2eb09ab0759e4c8df9188fb833440d8fc94f6172) ) - ROM_LOAD( "trs2v3ac", 0x1800, 0x0800, CRC(bbf62755) SHA1(cb4ca8d4fe689ca0011a4b6c0a2dbd4c764ac70a) ) - - ROM_REGION( 0x0800, REGION_GFX3, 0 ) /* radar/star timing table */ - ROM_LOAD( "trs2v3ec", 0x0000, 0x0800, CRC(0eca8d6b) SHA1(8358b5131d082b2fb8dd793d2e5382daeef6f75c) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "rs2-x.xxx", 0x0000, 0x0100, CRC(54609d61) SHA1(586620ecc61f3e55258fe6360bcacad5f570f29c) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "rs2-c.xxx", 0x0100, 0x0100, CRC(79a7d831) SHA1(475ec991929d43b2bcd4b5aee144249f487d0b5b) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "rs2-v.1hc", 0x0200, 0x0100, CRC(1b828315) SHA1(00c9f8c5ae86b68d38c66f9071b5f1ef421c1005) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkong ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) - ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) - ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) - ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) - /* space for diagnostic ROM */ - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) - ROM_LOAD( "s_3j_b.bin", 0x0800, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) - ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) - ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) - ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) - ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ - -/********************************************************* -I use more appropreate filenames for color PROMs. - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) ) - ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) ) - ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) ) -*********************************************************/ -ROM_END - -ROM_START( dkongo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5f_b.bin", 0x0000, 0x1000, CRC(424f2b11) SHA1(e4f096f2bbd37281f42a5f8e083738f55c07f3dd) ) // tkg3c.5f - ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) // tkg3c.5g - ROM_LOAD( "c_5h_b.bin", 0x2000, 0x1000, CRC(1d28895d) SHA1(63792cab215fc2a7b0e8ee61d8115045571e9d42) ) // tkg3c.5h - ROM_LOAD( "tkg3c.5k", 0x3000, 0x1000, CRC(553b89bb) SHA1(61611df9e2748fdcd31821038dcc0e16dc933873) ) - /* space for diagnostic ROM */ - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) - ROM_LOAD( "s_3j_b.bin", 0x0800, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) - ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) - ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) - ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) - ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ - -/********************************************************* -I use more appropreate filenames for color PROMs. - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) ) - ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) ) - ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) ) -*********************************************************/ -ROM_END - -ROM_START( dkongjp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5f_b.bin", 0x0000, 0x1000, CRC(424f2b11) SHA1(e4f096f2bbd37281f42a5f8e083738f55c07f3dd) ) - ROM_LOAD( "5g.cpu", 0x1000, 0x1000, CRC(d326599b) SHA1(94c7382604d0a123a442d53f9641f366dfbb7631) ) - ROM_LOAD( "5h.cpu", 0x2000, 0x1000, CRC(ff31ac89) SHA1(9626a9e6df0d1b0ff273dbbe986f670200f91f75) ) - ROM_LOAD( "c_5k_b.bin", 0x3000, 0x1000, CRC(394d6007) SHA1(57e5ae76ef5d4a2fa9cd860b6c6be03b6d5ed5ba) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) - ROM_LOAD( "s_3j_b.bin", 0x0800, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) - ROM_LOAD( "v_5k_b.bin", 0x0800, 0x0800, CRC(3684f914) SHA1(882ae48ec1eabf5d350438dfec37ab20f7ee155d) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) - ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) - ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) - ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ - -/********************************************************* -I use more appropreate filenames for color PROMs. - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) ) - ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) ) - ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) ) -*********************************************************/ -ROM_END - -ROM_START( dkongjo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5f_b.bin", 0x0000, 0x1000, CRC(424f2b11) SHA1(e4f096f2bbd37281f42a5f8e083738f55c07f3dd) ) - ROM_LOAD( "c_5g_b.bin", 0x1000, 0x1000, CRC(3b2a6635) SHA1(32c62e00863ab99c6f263587d9d5bb775a68f3de) ) - ROM_LOAD( "c_5h_b.bin", 0x2000, 0x1000, CRC(1d28895d) SHA1(63792cab215fc2a7b0e8ee61d8115045571e9d42) ) - ROM_LOAD( "c_5k_b.bin", 0x3000, 0x1000, CRC(394d6007) SHA1(57e5ae76ef5d4a2fa9cd860b6c6be03b6d5ed5ba) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) - ROM_LOAD( "s_3j_b.bin", 0x0800, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) - ROM_LOAD( "v_5k_b.bin", 0x0800, 0x0800, CRC(3684f914) SHA1(882ae48ec1eabf5d350438dfec37ab20f7ee155d) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) - ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) - ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) - ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ - -/********************************************************* -I use more appropreate filenames for color PROMs. - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) ) - ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) ) - ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) ) -*********************************************************/ -ROM_END - -ROM_START( dkongjo1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5f_b.bin", 0x0000, 0x1000, CRC(424f2b11) SHA1(e4f096f2bbd37281f42a5f8e083738f55c07f3dd) ) - ROM_LOAD( "5g.cpu", 0x1000, 0x1000, CRC(d326599b) SHA1(94c7382604d0a123a442d53f9641f366dfbb7631) ) - ROM_LOAD( "c_5h_b.bin", 0x2000, 0x1000, CRC(1d28895d) SHA1(63792cab215fc2a7b0e8ee61d8115045571e9d42) ) - ROM_LOAD( "5k.bin", 0x3000, 0x1000, CRC(7961599c) SHA1(698a4c2b8d67840dca7526efb1ac0d3370a86925) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) - ROM_LOAD( "s_3j_b.bin", 0x0800, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) - ROM_LOAD( "v_5k_b.bin", 0x0800, 0x0800, CRC(3684f914) SHA1(882ae48ec1eabf5d350438dfec37ab20f7ee155d) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) - ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) - ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) - ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ - -/********************************************************* -I use more appropreate filenames for color PROMs. - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkong.2k", 0x0000, 0x0100, CRC(1e82d375) ) - ROM_LOAD( "dkong.2j", 0x0100, 0x0100, CRC(2ab01dc8) ) - ROM_LOAD( "dkong.5f", 0x0200, 0x0100, CRC(44988665) ) -*********************************************************/ -ROM_END - -ROM_START( dkongjr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dkj.5b", 0x0000, 0x1000, CRC(dea28158) SHA1(08baf84ae6f9b40a2c743fe1d8c158c74a40e95a) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "dkj.5c", 0x2000, 0x0800, CRC(6fb5faf6) SHA1(ce1cfde71a9e2a8b5896a6301d386f72869a1d2e) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "dkj.5e", 0x4000, 0x0800, CRC(d042b6a8) SHA1(57ac237d273496b44220b4437118115ef11dbd9f) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "c_3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dkj.3n", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) - ROM_LOAD( "dkj.3p", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) - ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) - ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) - ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkongjrj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c_5ba.bin", 0x0000, 0x1000, CRC(50a015ce) SHA1(edcafdf8f989dd25bb142817084d270a6942577a) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "c_5ca.bin", 0x2000, 0x0800, CRC(c0a18f0d) SHA1(6d7396b98c0a7fa508dc233f90e5a8359439c97b) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "c_5ea.bin", 0x4000, 0x0800, CRC(a81dd00c) SHA1(ec507d963151bb8fcee13a47d7f93aa4cd089b7e) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "c_3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_3na.bin", 0x0000, 0x1000, CRC(a95c4c63) SHA1(75e312b6872958f3bfc7bafd0743efdf7a74e8f0) ) - ROM_LOAD( "v_3pa.bin", 0x1000, 0x1000, CRC(4974ffef) SHA1(7bb1e207dd3c5214e405bf32c57ec1b048061050) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) - ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) - ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) - ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkngjnrj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dkjp.5b", 0x0000, 0x1000, CRC(7b48870b) SHA1(4f737559e2bf5cc28824220417d7a2827361221f) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "dkjp.5c", 0x2000, 0x0800, CRC(12391665) SHA1(3141ed5096097c48ac128636330ab6837a665d40) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "dkjp.5e", 0x4000, 0x0800, CRC(6c9f9103) SHA1(2d595e13c4ecb74b18e92b00efcc90c1e841b478) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "c_3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dkj.3n", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) - ROM_LOAD( "dkj.3p", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) - ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) - ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) - ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkongjrb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dkjr1", 0x0000, 0x1000, CRC(ec7e097f) SHA1(c10885d8724434030094a106c5b6de7fa6976d0f) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "c_5ca.bin", 0x2000, 0x0800, CRC(c0a18f0d) SHA1(6d7396b98c0a7fa508dc233f90e5a8359439c97b) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "c_5ea.bin", 0x4000, 0x0800, CRC(a81dd00c) SHA1(ec507d963151bb8fcee13a47d7f93aa4cd089b7e) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "c_3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "v_3na.bin", 0x0000, 0x1000, CRC(a95c4c63) SHA1(75e312b6872958f3bfc7bafd0743efdf7a74e8f0) ) - ROM_LOAD( "dkjr10", 0x1000, 0x1000, CRC(adc11322) SHA1(01c13213e413c269cf8d9e391209b32b18747c8d) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) - ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) - ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) - ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkngjnrb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "djr1-c.5b", 0x0000, 0x1000, CRC(ffe9e1a5) SHA1(715dc79d85169b4c1faf43458592e69b434afefd) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "djr1-c.5c", 0x2000, 0x0800, CRC(982e30e8) SHA1(4d93d79e6ab1cad678af509cb3be4166b239bfa6) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "djr1-c.5e", 0x4000, 0x0800, CRC(24c3d325) SHA1(98b0354cddf2cb5e21a3aa8387b86e8606e51d55) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_LOAD( "djr1-c.5a", 0x8000, 0x1000, CRC(bb5f5180) SHA1(1ef6236b7204432cfd17c689760943ab603c6fb7) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "c_3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dkj.3n", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) - ROM_LOAD( "dkj.3p", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "v_7c.bin", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) - ROM_LOAD( "v_7d.bin", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) - ROM_LOAD( "v_7e.bin", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) - ROM_LOAD( "v_7f.bin", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "c-2e.bpr", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "c-2f.bpr", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( pestplce ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pest.1p", 0x0000, 0x1000, CRC(80d50721) SHA1(9c0e7571b1664dce741595a2d13dc9d7709b35a9) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "pest.2p", 0x2000, 0x0800, CRC(9c3681cc) SHA1(c12e8e7ab79c9fde92cca2c589904f68cf52cbf1) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "pest.3p", 0x4000, 0x0800, CRC(49853922) SHA1(1e8a29fdb1af52a39c07ef214f5e7c2d56b35ea5) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_LOAD( "pest.0", 0xb000, 0x1000, CRC(28952b56) SHA1(fa8abe594a88a61e85f074d03822d7e0dcd52fb2) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "pest.4", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pest.o", 0x0000, 0x1000, CRC(03939ece) SHA1(a776558eba2f8a2bc16933555d41a4532b627bff) ) - ROM_LOAD( "pest.k", 0x1000, 0x1000, CRC(2acacedf) SHA1(f91863f46aeb8986226b0b0854bac00217d6e7cf) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pest.a", 0x1000, 0x1000, CRC(1958346e) SHA1(c4053dafc904b5e202e4a1acc48dd3e22db05c74) ) - ROM_LOAD( "pest.b", 0x0000, 0x1000, CRC(e760073e) SHA1(917e74a4efa62b7404a03f094f3f4047dda8feda) ) - ROM_LOAD( "pest.c", 0x3000, 0x1000, CRC(bf08f2a3) SHA1(c755f7463ac46054c65248d91b8e8da9cd379bf5) ) - ROM_LOAD( "pest.d", 0x2000, 0x1000, CRC(3a993c17) SHA1(af7048576aa3185b051518663693802ec9014a74) ) - - /* not standard dkong layout */ - ROM_REGION( 0x0300, REGION_PROMS, ROMREGION_INVERT ) - ROM_LOAD( "n82s129a.bin", 0x0000, 0x0100, CRC(0330f35f) SHA1(5bd50cdd738b258dd3cfcd0e1dd8d37c927edc4b) ) - ROM_LOAD( "n82s129b.bin", 0x0100, 0x0100, CRC(ba88311b) SHA1(b4388ebd3984bdb966d850cfb7d34c3ebce230b7) ) - ROM_LOAD( "sn74s288n.bin", 0x0200, 0x0020, CRC(a5a6f2ca) SHA1(5507fb6f5c8845c4421c2996e9f76c818d987623) ) -ROM_END - -ROM_START( dkong3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dk3c.7b", 0x0000, 0x2000, CRC(38d5f38e) SHA1(5a6bb0e5070211515e3d56bd7d4c2d1655ac1621) ) - ROM_LOAD( "dk3c.7c", 0x2000, 0x2000, CRC(c9134379) SHA1(ecddb3694b93cb3dc98c3b1aeeee928e27529aba) ) - ROM_LOAD( "dk3c.7d", 0x4000, 0x2000, CRC(d22e2921) SHA1(59a4a1a36aaca19ee0a7255d832df9d042ba34fb) ) - ROM_LOAD( "dk3c.7e", 0x8000, 0x2000, CRC(615f14b7) SHA1(145674073e95d97c9131b6f2b03303eadb57ca78) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound #1 */ - ROM_LOAD( "dk3c.5l", 0xe000, 0x2000, CRC(7ff88885) SHA1(d530581778aab260e21f04c38e57ba34edea7c64) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* sound #2 */ - ROM_LOAD( "dk3c.6h", 0xe000, 0x2000, CRC(36d7200c) SHA1(7965fcb9bc1c0fdcae8a8e79df9c7b7439c506d8) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dk3v.3n", 0x0000, 0x1000, CRC(415a99c7) SHA1(e0855b03bb1dc0d8ae46da9fe33ca30ecf6a2e96) ) - ROM_LOAD( "dk3v.3p", 0x1000, 0x1000, CRC(25744ea0) SHA1(4866e43e80b010ccf2c8cc94c232786521f9e26e) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "dk3v.7c", 0x0000, 0x1000, CRC(8ffa1737) SHA1(fa5896124227d412fbdf83f129ddffa32cf2053b) ) - ROM_LOAD( "dk3v.7d", 0x1000, 0x1000, CRC(9ac84686) SHA1(a089376b9c23094490703152ad98ed27f519402d) ) - ROM_LOAD( "dk3v.7e", 0x2000, 0x1000, CRC(0c0af3fb) SHA1(03e0c3f51bc3c20f95cb02f76f2d80188d5dbe36) ) - ROM_LOAD( "dk3v.7f", 0x3000, 0x1000, CRC(55c58662) SHA1(7f3d5a1b386cc37d466e42392ffefc928666a8dc) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkc1-c.1d", 0x0000, 0x0200, CRC(df54befc) SHA1(7912dbf0a0c8ef68f4ae0f95e55ab164da80e4a1) ) /* palette red & green component */ - ROM_LOAD( "dkc1-c.1c", 0x0100, 0x0200, CRC(66a77f40) SHA1(c408d65990f0edd78c4590c447426f383fcd2d88) ) /* palette blue component */ - ROM_LOAD( "dkc1-v.2n", 0x0200, 0x0100, CRC(50e33434) SHA1(b63da9bed9dc4c7da78e4c26d4ba14b65f2b7e72) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkong3j ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dk3c.7b", 0x0000, 0x2000, CRC(38d5f38e) SHA1(5a6bb0e5070211515e3d56bd7d4c2d1655ac1621) ) - ROM_LOAD( "dk3c.7c", 0x2000, 0x2000, CRC(c9134379) SHA1(ecddb3694b93cb3dc98c3b1aeeee928e27529aba) ) - ROM_LOAD( "dk3c.7d", 0x4000, 0x2000, CRC(d22e2921) SHA1(59a4a1a36aaca19ee0a7255d832df9d042ba34fb) ) - ROM_LOAD( "dk3cj.7e", 0x8000, 0x2000, CRC(25b5be23) SHA1(43cf2a676922e60d9d637777a7721ab7582129fc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound #1 */ - ROM_LOAD( "dk3c.5l", 0xe000, 0x2000, CRC(7ff88885) SHA1(d530581778aab260e21f04c38e57ba34edea7c64) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* sound #2 */ - ROM_LOAD( "dk3c.6h", 0xe000, 0x2000, CRC(36d7200c) SHA1(7965fcb9bc1c0fdcae8a8e79df9c7b7439c506d8) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dk3v.3n", 0x0000, 0x1000, CRC(415a99c7) SHA1(e0855b03bb1dc0d8ae46da9fe33ca30ecf6a2e96) ) - ROM_LOAD( "dk3v.3p", 0x1000, 0x1000, CRC(25744ea0) SHA1(4866e43e80b010ccf2c8cc94c232786521f9e26e) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "dk3v.7c", 0x0000, 0x1000, CRC(8ffa1737) SHA1(fa5896124227d412fbdf83f129ddffa32cf2053b) ) - ROM_LOAD( "dk3v.7d", 0x1000, 0x1000, CRC(9ac84686) SHA1(a089376b9c23094490703152ad98ed27f519402d) ) - ROM_LOAD( "dk3v.7e", 0x2000, 0x1000, CRC(0c0af3fb) SHA1(03e0c3f51bc3c20f95cb02f76f2d80188d5dbe36) ) - ROM_LOAD( "dk3v.7f", 0x3000, 0x1000, CRC(55c58662) SHA1(7f3d5a1b386cc37d466e42392ffefc928666a8dc) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dkc1-c.1d", 0x0000, 0x0200, CRC(df54befc) SHA1(7912dbf0a0c8ef68f4ae0f95e55ab164da80e4a1) ) /* palette red & green component */ - ROM_LOAD( "dkc1-c.1c", 0x0100, 0x0200, CRC(66a77f40) SHA1(c408d65990f0edd78c4590c447426f383fcd2d88) ) /* palette blue component */ - ROM_LOAD( "dkc1-v.2n", 0x0200, 0x0100, CRC(50e33434) SHA1(b63da9bed9dc4c7da78e4c26d4ba14b65f2b7e72) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( dkong3b ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "5b.bin", 0x0000, 0x1000, CRC(549979bc) SHA1(58532f39285db0b081089e54a23041d83bec49aa) ) - ROM_CONTINUE( 0x3000, 0x1000 ) - ROM_LOAD( "5c-2.bin", 0x2000, 0x0800, CRC(b9dcbae6) SHA1(a7a7a3d79cb1eed93e54dff508c61cbc24797007) ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_LOAD( "5e-2.bin", 0x4000, 0x0800, CRC(5a61868f) SHA1(25c57969c1fbf457d223c4186ed291a1e0f75e14) ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_LOAD( "5c-1.bin", 0x9000, 0x1000, CRC(77a012d6) SHA1(334ae2c213acd50eda71b4102d0803bc596973ec) ) - ROM_LOAD( "5e-1.bin", 0xd000, 0x1000, CRC(745ed767) SHA1(32f4678f3eea9dc88f4c99509719a42292d6833a) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "3h.bin", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "3n.bin", 0x0000, 0x1000, CRC(fed67d35) SHA1(472a378abff96a76aac0e2da06c8d7c3ce172b60) ) - ROM_LOAD( "3p.bin", 0x1000, 0x1000, CRC(3d1b87ce) SHA1(e0cbeebf8dc291302ab1f039e51e9b409cced340) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "7c.bin", 0x0000, 0x1000, CRC(8ffa1737) SHA1(fa5896124227d412fbdf83f129ddffa32cf2053b) ) - ROM_LOAD( "7d.bin", 0x1000, 0x1000, CRC(9ac84686) SHA1(a089376b9c23094490703152ad98ed27f519402d) ) - ROM_LOAD( "7e.bin", 0x2000, 0x1000, CRC(0c0af3fb) SHA1(03e0c3f51bc3c20f95cb02f76f2d80188d5dbe36) ) - ROM_LOAD( "7f.bin", 0x3000, 0x1000, CRC(55c58662) SHA1(7f3d5a1b386cc37d466e42392ffefc928666a8dc) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "dk3b-c.1d", 0x0000, 0x0200, CRC(df54befc) SHA1(7912dbf0a0c8ef68f4ae0f95e55ab164da80e4a1) ) /* palette red & green component */ - ROM_LOAD( "dk3b-c.1c", 0x0100, 0x0200, CRC(66a77f40) SHA1(c408d65990f0edd78c4590c447426f383fcd2d88) ) /* palette blue component */ - ROM_LOAD( "dk3b-v.2n", 0x0200, 0x0100, CRC(50e33434) SHA1(b63da9bed9dc4c7da78e4c26d4ba14b65f2b7e72) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( hunchbkd ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "hb.5e", 0x0000, 0x1000, CRC(4c3ac070) SHA1(636843b33f1b7e994b112fa29e65038098528b8c) ) - ROM_LOAD( "hbsc-1.5c", 0x2000, 0x1000, CRC(9b0e6234) SHA1(a7405451e5cd42bc276c659ec5a2136dbb7b6aba) ) - ROM_LOAD( "hb.5b", 0x4000, 0x1000, CRC(4cde80f3) SHA1(3d93d8e454b2c517971a99c5700b6e943f975a11) ) - ROM_LOAD( "hb.5a", 0x6000, 0x1000, CRC(d60ef5b2) SHA1(b2b5528cb837d58ef632d7670820ad8b07e5af1b) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "hb.3h", 0x0000, 0x0800, CRC(a3c240d4) SHA1(8cb6057ca617909c73b09988ba65a1176696cb5d) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hb.3n", 0x0000, 0x0800, CRC(443ed5ac) SHA1(febed689e03abf25452aab6eff85ea01883e929c) ) - ROM_LOAD( "hb.3p", 0x0800, 0x0800, CRC(073e7b0c) SHA1(659cd3b1827bf6b7f0c9bef3cd83e69c2b2193ff) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hb.7c", 0x0000, 0x0800, CRC(3ba71686) SHA1(34c2ceadea1026de6157df1e7a1c2f6b86fd3c82) ) - ROM_LOAD( "hb.7d", 0x0800, 0x0800, CRC(5786948d) SHA1(7e8bc953195cc9a07a8429b547e1fab6cd487b51) ) - ROM_LOAD( "hb.7e", 0x1000, 0x0800, CRC(f845e8ca) SHA1(4bedbbc74a637f6d60b3b2dbf41efc7390ee9091) ) - ROM_LOAD( "hb.7f", 0x1800, 0x0800, CRC(52d20fea) SHA1(e3825f75f312d1e256f78a89098e328e8f307577) ) - - ROM_REGION( 0x0500, REGION_PROMS, 0 ) - ROM_LOAD( "hbprom.2e", 0x0000, 0x0100, CRC(37aab98f) SHA1(0b002ab82158854bdd4a9db05eee037711017313) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "hbprom.2f", 0x0100, 0x0100, CRC(845b8dcc) SHA1(eebd0c024172e54b509f1f99d9159438d5f3a905) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "hbprom.2n", 0x0200, 0x0100, CRC(dff9070a) SHA1(307b95749343b5106247d842f773b2b445faa156) ) /* character color codes on a per-column basis */ - ROM_LOAD( "82s147.prm", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* unknown */ -ROM_END - -ROM_START( sbdk ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "sb-dk.ap", 0x0000, 0x1000, CRC(fef0ef9c) SHA1(8d3de7f96354672d906b2e124f3fb355f3201ed2) ) - ROM_LOAD( "sb-dk.ay", 0x2000, 0x1000, CRC(2e9dade2) SHA1(74e5770fd362fd0242b8174b0ea5383fdf893cb3) ) - ROM_LOAD( "sb-dk.as", 0x4000, 0x1000, CRC(e6d200f3) SHA1(3787334df76e629baa9ef5362495cd3af7777358) ) - ROM_LOAD( "sb-dk.5a", 0x6000, 0x1000, CRC(ca41ca56) SHA1(d862172b1cc6639d540efc140b63d1a598f75656) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "sb-dk.3h", 0x0000, 0x0800, CRC(13e60b6e) SHA1(f5dca15db0f1a225ff0116726bb055bb7b9655cc) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sb-dk.3n", 0x0000, 0x0800, CRC(b1d76b59) SHA1(aed57ec67d80abdff1a4bfc3a713fa01c0dd15a2) ) - ROM_LOAD( "sb-dk.3p", 0x0800, 0x0800, CRC(ea5f9f88) SHA1(5742d3554d967ed1e90f7c6f73dafbd302f0f244) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sb-dk.7c", 0x0000, 0x0800, CRC(c12c18f2) SHA1(77e99d80e05108ceec21ae299645139f83a389b1) ) - ROM_LOAD( "sb-dk.7d", 0x0800, 0x0800, CRC(f7a32d23) SHA1(5782e8f8744481a931c629579ae6f4fff7e2f838) ) - ROM_LOAD( "sb-dk.7e", 0x1000, 0x0800, CRC(8e48b13e) SHA1(b4589685a60a8463f656a4f5b0dedfb265c3b3e4) ) - ROM_LOAD( "sb-dk.7f", 0x1800, 0x0800, CRC(989969f3) SHA1(de641082476ac3da3872461263566dfb398ea43a) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sb.2e", 0x0000, 0x0100, CRC(4f06f789) SHA1(0b2775dd8da1c20121639871ed291a015a34e1f6) ) - ROM_LOAD( "sb.2f", 0x0100, 0x0100, CRC(2c15b1b2) SHA1(7c80eb77ba47e2f4d889fc10663a0391d4329a1d) ) - ROM_LOAD( "sb.2n", 0x0200, 0x0100, CRC(dff9070a) SHA1(307b95749343b5106247d842f773b2b445faa156) ) -ROM_END - -ROM_START( herbiedk ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "5f.cpu", 0x0000, 0x1000, CRC(c7ab3ac6) SHA1(5ef8c0ac1acd09a0f6c1536d0525cc27bb87b167) ) - ROM_LOAD( "5g.cpu", 0x2000, 0x1000, CRC(d1031aa6) SHA1(6f5eadf43f1a59333833b3ee72d8d3043ac8c899) ) - ROM_LOAD( "5h.cpu", 0x4000, 0x1000, CRC(c0daf551) SHA1(f39058fa05ad69e839e7c0281cb1fad80cfa3134) ) - ROM_LOAD( "5k.cpu", 0x6000, 0x1000, CRC(67442242) SHA1(0241281e8cc721f7fe22822f2cf168c2eed7983d) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "3i.snd", 0x0000, 0x0800, CRC(20e30406) SHA1(e2b9c6b731e53651d26455c2753a6dc3d5e9d066) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5h.vid", 0x0000, 0x0800, CRC(ea2a2547) SHA1(ec714abe43ab86ef615e1105688bf3df209c8f5f) ) - ROM_LOAD( "5k.vid", 0x0800, 0x0800, CRC(a8d421c9) SHA1(b733246d8674450ef00ed81b7d5e2ca09b3731d8) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "7c.clk", 0x0000, 0x0800, CRC(af646166) SHA1(c935051697f559fa8dea647e976d35b607c931d5) ) - ROM_LOAD( "7d.clk", 0x0800, 0x0800, CRC(d8e15832) SHA1(d11983d7a3ff71c6bc75607453080d554ae15df2) ) - ROM_LOAD( "7e.clk", 0x1000, 0x0800, CRC(2f7e65fa) SHA1(ff4d03020f9ad423fcebca28395964cb01b19b31) ) - ROM_LOAD( "7f.clk", 0x1800, 0x0800, CRC(ad32d5ae) SHA1(578e703ca07b9a0284d1c9c7f260a52e4f4dac0e) ) - - ROM_REGION( 0x0500, REGION_PROMS, 0 ) - ROM_LOAD( "74s287.2k", 0x0000, 0x0100, CRC(7dc0a381) SHA1(7d974b2249392160e3b800e7113d4899c3600b7f) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "74s287.2j", 0x0100, 0x0100, CRC(0a440c00) SHA1(e3249a646cd8aa50739e09ae101e796ea3aac37a) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "74s287.vid", 0x0200, 0x0100, CRC(5a3446cc) SHA1(158de015006e6c400cb7ee758fda7ff760eb5835) ) /* character color codes on a per-column basis */ - ROM_LOAD( "82s147.hh", 0x0300, 0x0200, CRC(46e5bc92) SHA1(f4171f8650818c017d58ad7131a7aff100b1b99c) ) /* unknown */ - - ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pls153h.bin", 0x0000, 0x00eb, CRC(d6a04bcc) SHA1(ef1ed4311869d46dec95c2bfb31875c2f022da4f) ) -ROM_END - -ROM_START( herodk ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "red-dot.rgt", 0x0c00, 0x0400, CRC(9c4af229) SHA1(8b7330457acdd8d92f2853f3e5f8c18f8991c5c9) ) /* encrypted */ - ROM_CONTINUE( 0x0800, 0x0400 ) - ROM_CONTINUE( 0x0400, 0x0400 ) - ROM_CONTINUE( 0x0000, 0x0400 ) - ROM_CONTINUE( 0x2000, 0x0e00 ) - ROM_CONTINUE( 0x6e00, 0x0200 ) - ROM_LOAD( "wht-dot.lft", 0x4000, 0x1000, CRC(c10f9235) SHA1(42dbf01e5da80cd8bdd18a27c3fbdf4cb5110d9a) ) /* encrypted */ - ROM_CONTINUE( 0x6000, 0x0e00 ) - ROM_CONTINUE( 0x2e00, 0x0200 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "silver.3h", 0x0000, 0x0800, CRC(67863ce9) SHA1(2b78e3d32a64cdef34afc476fed7ff0ab6a0277c) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pnk.3n", 0x0000, 0x0800, CRC(574dfd7a) SHA1(78bbe4ea83fdaec14ca92ceae03e8a3d0877d14b) ) - ROM_LOAD( "blk.3p", 0x0800, 0x0800, CRC(16f7c040) SHA1(d1bd1b5f3c66ac6e71637ef42962adabacd79340) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gold.7c", 0x0000, 0x0800, CRC(5f5282ed) SHA1(fcd467e404fab89addd55bd7c5c07d28551a4c8e) ) - ROM_LOAD( "orange.7d", 0x0800, 0x0800, CRC(075d99f5) SHA1(ff6f85a50179e0599b39871be1739080768fc475) ) - ROM_LOAD( "yellow.7e", 0x1000, 0x0800, CRC(f6272e96) SHA1(a9608966613aedb36cfb04f85730efed9a44d17c) ) - ROM_LOAD( "violet.7f", 0x1800, 0x0800, CRC(ca020685) SHA1(fe0d8d85c3bf244384e9c94f6a7f17db31083245) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.2e", 0x0000, 0x0100, CRC(da4b47e6) SHA1(2cfc7d489002113eb91048cc29d24831dadbfabb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "82s129.2f", 0x0100, 0x0100, CRC(96e213a4) SHA1(38f21e7bce96fd2159aa61e64d66aa574d85873c) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(37aece4b) SHA1(08dbb470644278132b8126649fe41d70e7750bee) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( herodku ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "2764.8h", 0x0c00, 0x0400, CRC(989ce053) SHA1(852401856a2d91118d1bd0b3db892b57d0ac949c) ) - ROM_CONTINUE( 0x0800, 0x0400 ) - ROM_CONTINUE( 0x0400, 0x0400 ) - ROM_CONTINUE( 0x0000, 0x0400 ) - ROM_CONTINUE( 0x2000, 0x1000 ) - ROM_LOAD( "2764.8f", 0x4000, 0x1000, CRC(835e0074) SHA1(187358973f595033a4745759f554a3dfd398889b) ) - ROM_CONTINUE( 0x6000, 0x1000 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "2716.3h", 0x0000, 0x0800, CRC(caf57bef) SHA1(60c19c65bf312b36c68631ccea5434ad8cf0f3df) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pnk.3n", 0x0000, 0x0800, CRC(574dfd7a) SHA1(78bbe4ea83fdaec14ca92ceae03e8a3d0877d14b) ) - ROM_LOAD( "blk.3p", 0x0800, 0x0800, CRC(16f7c040) SHA1(d1bd1b5f3c66ac6e71637ef42962adabacd79340) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gold.7c", 0x0000, 0x0800, CRC(5f5282ed) SHA1(fcd467e404fab89addd55bd7c5c07d28551a4c8e) ) - ROM_LOAD( "orange.7d", 0x0800, 0x0800, CRC(075d99f5) SHA1(ff6f85a50179e0599b39871be1739080768fc475) ) - ROM_LOAD( "yellow.7e", 0x1000, 0x0800, CRC(f6272e96) SHA1(a9608966613aedb36cfb04f85730efed9a44d17c) ) - ROM_LOAD( "violet.7f", 0x1800, 0x0800, CRC(ca020685) SHA1(fe0d8d85c3bf244384e9c94f6a7f17db31083245) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.2e", 0x0000, 0x0100, CRC(da4b47e6) SHA1(2cfc7d489002113eb91048cc29d24831dadbfabb) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "82s129.2f", 0x0100, 0x0100, CRC(96e213a4) SHA1(38f21e7bce96fd2159aa61e64d66aa574d85873c) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(37aece4b) SHA1(08dbb470644278132b8126649fe41d70e7750bee) ) /* character color codes on a per-column basis */ -ROM_END - -ROM_START( spclforc ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "27128.8f", 0x0000, 0x1000, CRC(1e9b8d26) SHA1(783e733cfb5d8fa560a6e6a7b49f782abc60bb58) ) - ROM_CONTINUE( 0x2000, 0x1000 ) - ROM_CONTINUE( 0x4000, 0x1000 ) - ROM_CONTINUE( 0x6000, 0x1000 ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2716.3n", 0x0000, 0x0800, CRC(68c28bcb) SHA1(12a12cd4d639fea649f4baf40c60994fba303cf0) ) - ROM_LOAD( "2716.3p", 0x0800, 0x0800, CRC(dfb18c81) SHA1(a7a17b14f0c1194da1e771cd1291b59d330e4307) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2732.7c", 0x0000, 0x1000, CRC(c1ea2b17) SHA1(6e95b15e7fdd04023622e8c521560e47e98acf28) ) - ROM_LOAD( "2732.7d", 0x1000, 0x1000, CRC(fe5501f0) SHA1(ab7d1e02400659ebedfed2837823f228af017a94) ) - ROM_LOAD( "2732.7e", 0x2000, 0x1000, CRC(f6a113bd) SHA1(2f8776780284081f7858334766be6a6fde3a3371) ) - ROM_LOAD( "2732.7f", 0x3000, 0x1000, CRC(42857a7a) SHA1(267dd954480bc87f14c758803cb26b7812d323b8) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s126.2e", 0x0000, 0x0100, CRC(b3751a25) SHA1(4b444e8fd02ac8674ecaba2fee083cb9feb99fa0) ) - ROM_LOAD( "82s126.2f", 0x0100, 0x0100, CRC(1026d438) SHA1(927009e6ed520c39c36c1d7966589c6778df1a3a) ) - ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(9735998d) SHA1(c3f50f97369547b1fd25da64507a5c8b725de6d0) ) -ROM_END - -ROM_START( spcfrcii ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "spfc2.8f", 0x0000, 0x1000, CRC(87f9bb6c) SHA1(f432ff205336280ae11ef4b3061be48e19e07d76) ) - ROM_CONTINUE( 0x2000, 0x1000 ) - ROM_CONTINUE( 0x4000, 0x1000 ) - ROM_CONTINUE( 0x6000, 0x1000 ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "spfc2.3n", 0x0000, 0x0800, CRC(7aba051a) SHA1(d9c9f9932991fbc8a2130d3025fdc027e7f89511) ) - ROM_LOAD( "spfc2.3p", 0x0800, 0x0800, CRC(efeed826) SHA1(d62c5c75f9c77f7313cb4a60c22368a85807a39a) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "spfc2.7c", 0x0000, 0x1000, CRC(c1ea2b17) SHA1(6e95b15e7fdd04023622e8c521560e47e98acf28) ) - ROM_LOAD( "spfc2.7d", 0x1000, 0x1000, CRC(fe5501f0) SHA1(ab7d1e02400659ebedfed2837823f228af017a94) ) - ROM_LOAD( "spfc2.7e", 0x2000, 0x1000, CRC(f6a113bd) SHA1(2f8776780284081f7858334766be6a6fde3a3371) ) - ROM_LOAD( "spfc2.7f", 0x3000, 0x1000, CRC(42857a7a) SHA1(267dd954480bc87f14c758803cb26b7812d323b8) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "spfc2.2e", 0x0000, 0x0100, CRC(b3751a25) SHA1(4b444e8fd02ac8674ecaba2fee083cb9feb99fa0) ) - ROM_LOAD( "spfc2.2f", 0x0100, 0x0100, CRC(1026d438) SHA1(927009e6ed520c39c36c1d7966589c6778df1a3a) ) - ROM_LOAD( "spfc2.2n", 0x0200, 0x0100, CRC(9735998d) SHA1(c3f50f97369547b1fd25da64507a5c8b725de6d0) ) -ROM_END - -ROM_START( 8ballact ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "8b-dk.5e", 0x0400, 0x0400, CRC(166c1c9b) SHA1(fd5661dbb4617a1daff7949ef030b8572bdebb85) ) - ROM_CONTINUE( 0x0000, 0x0400 ) - ROM_CONTINUE( 0x0c00, 0x0400 ) - ROM_CONTINUE( 0x0800, 0x0400 ) - ROM_LOAD( "8b-dk.5c", 0x2000, 0x1000, CRC(9ec87baa) SHA1(79fc89d9474ac23cda56f6af27db77aba964f395) ) - ROM_LOAD( "8b-dk.5b", 0x4000, 0x1000, CRC(f836a962) SHA1(5a45514ea59cd92092523d116b0dc4a1f8fc46b7) ) - ROM_LOAD( "8b-dk.5a", 0x6000, 0x1000, CRC(d45866d4) SHA1(5dfb121aa87bc5e6efadd9412b9f8d360c3dabd3) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "8b-dk.3h", 0x0000, 0x0800, CRC(a8752c60) SHA1(0d7d35fd271d796e884a33071b83c000b91208a0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8b-dk.3n", 0x0000, 0x0800, CRC(44830867) SHA1(29d34792b9193edcdac427367c360d6f01e1e094) ) - ROM_LOAD( "8b-dk.3p", 0x0800, 0x0800, CRC(6148c6f2) SHA1(7e6ddb8999f07888ac49441ed8cf6496e8db3caa) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "8b-dk.7c", 0x0000, 0x0800, CRC(e34409f5) SHA1(81fd6f038988843d7ef1c57af75253e497a6f57b) ) - ROM_LOAD( "8b-dk.7d", 0x0800, 0x0800, CRC(b4dc37ca) SHA1(6c469f8edbc6dd02e1821972a503e634f920e221) ) - ROM_LOAD( "8b-dk.7e", 0x1000, 0x0800, CRC(655af8a8) SHA1(d434efc89226d28d24e858186fab9aff0e476deb) ) - ROM_LOAD( "8b-dk.7f", 0x1800, 0x0800, CRC(a29b2763) SHA1(6b2ee88e96a1b74193f12f4fa64a6705f17557b1) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "8b.2e", 0x0000, 0x0100, CRC(c7379a12) SHA1(e128e7d7c71ec61b934651c29648d0d2fc69e306) ) - ROM_LOAD( "8b.2f", 0x0100, 0x0100, CRC(116612b4) SHA1(9a7c5329f211b13d5a757fdac761d7096d78b65a) ) - ROM_LOAD( "8b.2n", 0x0200, 0x0100, CRC(30586988) SHA1(a9c246fd01cb3ff371ad33b55d5b2fe4898c4d1b) ) -ROM_END - -ROM_START( 8ballat2 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) /* 32k for code */ - ROM_LOAD( "8b-jr.5b", 0x0400, 0x0400, CRC(579cd634) SHA1(93d81539459f7198d8cbf05b3e66a40466aee2d9) ) - ROM_CONTINUE( 0x0000, 0x0400 ) - ROM_CONTINUE( 0x0c00, 0x0400 ) - ROM_CONTINUE( 0x0800, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x1000 ) - ROM_LOAD( "8b-jr.5c", 0x4000, 0x1000, CRC(9bccbe93) SHA1(dec4e1d41e1df36359f205bf090c4290311e4141) ) - ROM_CONTINUE( 0x2000, 0x1000 ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "8b-jr.3h", 0x0000, 0x1000, CRC(7f5c19fa) SHA1(9cde134137ee8e34bb745a72e67981c581561428) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8b-jr.3n", 0x0000, 0x1000, CRC(9ec0edac) SHA1(ffa1ae2236995527d72917c45be337f642134cf8) ) - ROM_LOAD( "8b-jr.3p", 0x1000, 0x1000, CRC(2978a88b) SHA1(15c21a3b3fb879996c13ce56791828e170c771d1) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "8b-jr.7c", 0x0000, 0x0800, CRC(e34409f5) SHA1(81fd6f038988843d7ef1c57af75253e497a6f57b) ) - ROM_LOAD( "8b-jr.7d", 0x0800, 0x0800, CRC(b4dc37ca) SHA1(6c469f8edbc6dd02e1821972a503e634f920e221) ) - ROM_LOAD( "8b-jr.7e", 0x1000, 0x0800, CRC(655af8a8) SHA1(d434efc89226d28d24e858186fab9aff0e476deb) ) - ROM_LOAD( "8b-jr.7f", 0x1800, 0x0800, CRC(a29b2763) SHA1(6b2ee88e96a1b74193f12f4fa64a6705f17557b1) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "8b.2e", 0x0000, 0x0100, CRC(c7379a12) SHA1(e128e7d7c71ec61b934651c29648d0d2fc69e306) ) - ROM_LOAD( "8b.2f", 0x0100, 0x0100, CRC(116612b4) SHA1(9a7c5329f211b13d5a757fdac761d7096d78b65a) ) - ROM_LOAD( "8b.2n", 0x0200, 0x0100, CRC(30586988) SHA1(a9c246fd01cb3ff371ad33b55d5b2fe4898c4d1b) ) -ROM_END - -/* encrypted */ -ROM_START( drakton ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 4*16k for decrypted code */ - ROM_LOAD( "2764.u2", 0x0000, 0x2000, CRC(d9a33205) SHA1(06dc96412e7162fd8a4f6ef4d14d1510c06b1d00) ) - ROM_LOAD( "2764.u3", 0x2000, 0x2000, CRC(69583a35) SHA1(061271be4e9ddfd8dff4217f1434215ad35ba505) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - /* one is used for dkong conversions, the other one for dkongjr conversions */ - ROM_LOAD( "2716.3h", 0x0000, 0x0800, CRC(3489a35b) SHA1(9ebcf4b20b212d54e6b1a6d9abbda3109298631b) ) - ROM_LOAD( "2716.3h1", 0x0000, 0x0800, CRC(2a6ec016) SHA1(c95e185a39c8029f00798ce0a00759a4deb45677) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2716.3n", 0x0000, 0x0800, CRC(ea0e7f9a) SHA1(a8e2b43e15281d45e414eaae98e5248bad79c41b) ) - ROM_LOAD( "2716.3p", 0x0800, 0x0800, CRC(46f51b68) SHA1(7d1c3a61cdd0ad471cb0064c0cbaf758325fc267) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2716.7c", 0x0000, 0x0800, CRC(2925dc2d) SHA1(721748031714ba488191eb074643093c906e8ce2) ) - ROM_LOAD( "2716.7d", 0x0800, 0x0800, CRC(bdf6b1b4) SHA1(ea9076a2bba909bfae8a10a92d857e8f0644fc8b) ) - ROM_LOAD( "2716.7e", 0x1000, 0x0800, CRC(4d62e62f) SHA1(01e757110edcb24600a27b1505f54e3bd04b9e58) ) - ROM_LOAD( "2716.7f", 0x1800, 0x0800, CRC(81d200e5) SHA1(5eb74f319756ba3fbc6d0d918799337f911e9419) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s126.2e", 0x0000, 0x0100, CRC(3ff45f76) SHA1(4068b5568f9e22e54f0df8a9e02bfed0bfb00db7) ) - ROM_LOAD( "82s126.2f", 0x0100, 0x0100, CRC(38f905be) SHA1(a963aea9a92ac95850c90c43085376cb4e06696b) ) - ROM_LOAD( "82s126.2n", 0x0200, 0x0100, CRC(3c343b9b) SHA1(f84f5fddcccc8499a2511877f5d706b37ddc7db8) ) -ROM_END - -/* encrypted */ -ROM_START( strtheat ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 4*16k for decrypted code */ - ROM_LOAD( "2764.u2", 0x0000, 0x2000, CRC(8d3e82c3) SHA1(ec26fb1c6015721da1f61eca76a4b3390d8dcc76) ) - ROM_LOAD( "2764.u3", 0x2000, 0x2000, CRC(f0759e76) SHA1(e086f02d1861269194c4cd2ada71696b48ed1a1d) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "2716.3h", 0x0000, 0x0800, CRC(4cd17174) SHA1(5ed9b5275b0779d1ca05d6e62d3ad8a682ebde37) ) - ROM_RELOAD( 0x0800, 0x0800 ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2716.3n", 0x0000, 0x0800, CRC(29e57678) SHA1(cbbb980c44c7f5c45d5f0b85209658f53b7ba4a7) ) - ROM_RELOAD( 0x0800, 0x0800 ) - ROM_LOAD( "2716.3p", 0x1000, 0x0800, CRC(31171146) SHA1(e26b22e73b528810b566b2b9f6d81e2d7856523d) ) - ROM_RELOAD( 0x1800, 0x0800 ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2716.7c", 0x0000, 0x0800, CRC(a8238e9c) SHA1(947bbe48ce1c705ef974e37b138929f1c846ed79) ) - ROM_LOAD( "2716.7d", 0x0800, 0x0800, CRC(71202138) SHA1(b4edc77ed2844ef46aee4a492282e4785bdb7224) ) - ROM_LOAD( "2716.7e", 0x1000, 0x0800, CRC(dc7785ac) SHA1(4ccb3f9f938fd1d9bd20f1601a16a2780c84588b) ) - ROM_LOAD( "2716.7f", 0x1800, 0x0800, CRC(ede71d86) SHA1(0bce1b1d4180173537685a08055ce44b9dedc76a) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.2e", 0x0000, 0x0100, CRC(1311ba28) SHA1(d9b5bc07c8943d83592833e8b1c2ff57e4accb55) ) /* palette low 4 bits (inverted) */ - ROM_LOAD( "82s129.2f", 0x0100, 0x0100, CRC(18d90d4f) SHA1(b956fd652dcc5eb50eaec8729762d19cfd475bc7) ) /* palette high 4 bits (inverted) */ - ROM_LOAD( "82s129.2n", 0x0200, 0x0100, CRC(a515d59b) SHA1(930616c4bcd819c2a4432a6619a8c6da74f3e8c5) ) /* character color codes on a per-column basis */ -ROM_END - -/* ------------------------------------------------- -Shooting Gallery by SEATON GROVE/ZACCARIA (1984) ------------------------------------------------- - -Location Device File ID Checksum ------------------------------------------------ -SSB 5B 2716 SG-01-0 81B9 -CPU 3H 2732 SG-01-3H 3F58 -CPU 5B 2764 SG-01-5B C2A9 -GFX 3N 2732 SG-01-3N C8AC -GFX 3P 2732 SG-01-3P 715A -GFX 7C 2716 SG-01-7C D73C -GFX 7D 2716 SG-01-7D 1545 -GFX 7E 2716 SG-01-7E 48A3 -GFX 7F 2716 SG-01-7F 97C5 -SND IC6 2532 SG-01-SND 6AE1 -SND IC8 2716 SG-01-SPK 852B -CPU 2E 6306 SG-01-2E 127E -CPU 2F 6306 SG-01-2F 1167 -GFX 2N 6306 SG-01-2N 1000 -GIB 82S147 SG-01 1554 -GIB 82S153 SG-02 D966 * - - -Note: CPU - CPU PCB - GFX - GFX/Video PCB - SSB - (Century) Speech/Sound PCB 500-38 Iss3 (1981) - SND - Sound PCB - GIB - Gun Interface PCB (C) Seatongrove (1984) - - * - JEDEC fusemap checksum, not the file checksum - - Some ROM images have duplicate halves, this is not an error - - - -Hardware information: - -CPU PCB: MBL8035N (MCU, RAM 64byte, ROM N/A) - upD8257C (DMA Controller) - ROM SG-01-3H - ROM SG-01-5B - PROM SG-01-2E - PROM SG-01-2F - -Gun Interface: 2650A (8-bit CPU) - PROM SG-1 - PLD SG-2 - -Sound PCB: 2x AY8910 - ROM SG-01-SND - ROM SG-01-SPK - -Speech PCB: 2x 2650A (8-bit CPU) - MC6810 (128x8 SRAM) - TMS5100ANL (Speech) - ROM SG-01-0 -*/ - -ROM_START( shootgal ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "cpu.5e", 0x0000, 0x1000, CRC(c6d61b9c) SHA1(de3f4cf559313c4e5c5f7019aa6f68b3334e05c1) ) - ROM_LOAD( "cpu.5a", 0x6000, 0x1000, CRC(5dabe5e3) SHA1(7a36d97b2604aa61fe468863651cf67b851bbfca) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) - ROM_LOAD( "sg-01-3h", 0x0000, 0x1000, CRC(80be5915) SHA1(a4f7d6a8319065a7a712df0195a3f8695d8f99f9) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "sg-01-0", 0x0000, 0x0800, CRC(f055a624) SHA1(5dfe89d7271092e665cdd5cd59d15a2b70f92f43) ) - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) - ROM_LOAD( "sg-01snd", 0x0000, 0x1000, CRC(644a0728) SHA1(e249fd57bc49572a2246aaf7c68a547f319f51bc) ) //sg-01-snd - ROM_LOAD( "sg-01spk", 0x1000, 0x0800, CRC(aacaf730) SHA1(cd562093ab8931d165cb0877e332474fce131c67) ) //sg-01-spk - - ROM_REGION( 0x2000, REGION_USER1, 0 ) // gun proms? - ROM_LOAD( "sg-1", 0x0000, 0x0200, CRC(fda82517) SHA1(b36bac69b6f8218b280aae59133ea0d22d7a99f6) ) - ROM_LOAD( "sg-2", 0x0200, 0x091d, CRC(6e065613) SHA1(26d048af5c302f921de8e2c1bc7c7bf48dc21b5a) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sg-01-3n", 0x0000, 0x1000, CRC(72987a57) SHA1(8b972cfccb43023aca905c51182f8d3c06f7d0bb) ) - ROM_LOAD( "sg-01-3p", 0x1000, 0x1000, CRC(1ae9434e) SHA1(26228bf0aba99f48366544772693b35788084a6b) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sg-01-7c", 0x0000, 0x0800, CRC(3315658e) SHA1(613387aaa58f5df75d42d38b07237c0dc8aaba36) ) - ROM_LOAD( "sg-01-7d", 0x0800, 0x0800, CRC(76ad4143) SHA1(4ccc32656de9d5142e539b84d4c73bb14d32f8bf) ) - ROM_LOAD( "sg-01-7e", 0x1000, 0x0800, CRC(65d11685) SHA1(4e4b0b60ca4c16e26d842e142002887456d98ea4) ) - ROM_LOAD( "sg-01-7f", 0x1800, 0x0800, CRC(44fe71a2) SHA1(ff4442a5601ac2ed63c57e22977299b5b5499c93) ) - - ROM_REGION( 0x0600, REGION_PROMS, 0 ) - ROM_LOAD( "sg-01-2e", 0x0000, 0x0200, CRC(34fb23ea) SHA1(6bd6de791c9e0a5f9c833c287663e9755e01c573) ) - ROM_LOAD( "sg-01-2f", 0x0100, 0x0200, CRC(c29b880a) SHA1(950017a0298f91e41db9865ed8ce388f4095f6cf) ) - ROM_LOAD( "sg-01-2n", 0x0200, 0x0200, CRC(e08ed788) SHA1(6982f6bcc70dbf4c75ff538a5df70da11bc89bb4) ) -ROM_END - - -static DRIVER_INIT( herodk ) -{ - int A; - UINT8 *rom = memory_region(REGION_CPU1); - - - /* swap data lines D3 and D4 */ - for (A = 0;A < 0x8000;A++) - { - if ((A & 0x1000) == 0) - { - int v; - - v = rom[A]; - rom[A] = (v & 0xe7) | ((v & 0x10) >> 1) | ((v & 0x08) << 1); - } - } -} - - -static DRIVER_INIT( radarscp ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - - /* TODO: Radarscope does a check on bit 6 of 7d00 which prevent it from working. */ - /* It's a sound status flag, maybe signaling when a tune is finished. */ - /* For now, we comment it out. */ - RAM[0x1e9c] = 0xc3; - RAM[0x1e9d] = 0xbd; -} - - -GAME( 1980, radarscp, 0, radarscp, dkong, radarscp, ROT90, "Nintendo", "Radar Scope", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) - -GAME( 1981, dkong, 0, dkong, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong (US set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1981, dkongo, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (US set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1981, dkongjp, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1981, dkongjo, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1981, dkongjo1, dkong, dkong, dkong, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3) (bad dump?)", GAME_SUPPORTS_SAVE ) - -GAME( 1982, dkongjr, 0, dkongjr, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US)", GAME_SUPPORTS_SAVE ) -GAME( 1982, dkongjrj, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1982, dkngjnrj, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", GAME_SUPPORTS_SAVE ) -GAME( 1982, dkongjrb, dkongjr, dkongjr, dkong, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1982, dkngjnrb, dkongjr, dkongjr, dkong, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (bootleg?)", GAME_SUPPORTS_SAVE ) - -GAME( 1983, dkong3, 0, dkong3, dkong3, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", GAME_SUPPORTS_SAVE ) -GAME( 1983, dkong3j, dkong3, dkong3, dkong3, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", GAME_SUPPORTS_SAVE ) - -GAME( 1984, herbiedk, huncholy, herbiedk, herbiedk, 0, ROT90, "CVS", "Herbie at the Olympics (DK conversion)", GAME_SUPPORTS_SAVE ) - -GAME( 1983, hunchbkd, hunchbak, hunchbkd, hunchbkd, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", GAME_WRONG_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) - -GAME( 1984, sbdk, superbik, hunchbkd, sbdk, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", GAME_SUPPORTS_SAVE ) - -GAME( 1984, herodk, hero, hunchbkd, herodk, herodk, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion)", GAME_SUPPORTS_SAVE ) -GAME( 1984, herodku, hero, hunchbkd, herodk, 0, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion not encrypted)", GAME_SUPPORTS_SAVE ) - -GAME( 1984, 8ballact, 0, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DK conversion)", GAME_SUPPORTS_SAVE ) -GAME( 1984, 8ballat2, 8ballact, eightact, 8ballact, 0, ROT90, "Seatongrove Ltd (Magic Eletronics USA licence)", "Eight Ball Action (DKJr conversion)", GAME_SUPPORTS_SAVE ) - -GAME( 1984, shootgal, 0, shootgal, shootgal, 0, ROT180, "Seatongrove Ltd (Zaccaria licence)", "Shooting Gallery", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) - -GAME( 1983, pestplce, mario, pestplce, pestplce, 0, ROT180, "bootleg", "Pest Place", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) - -GAME( 1985, spclforc, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1985, spcfrcii, 0, spclforc, spclforc, 0, ROT90, "Senko Industries (Magic Eletronics Inc. licence)", "Special Forces II", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) - -GAME( 1984, drakton, 0, drakton, drakton, drakton, ROT90, "Epos Corporation", "Drakton", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1985, strtheat, 0, strtheat, strtheat, strtheat, ROT90, "Epos Corporation", "Street Heat - Cardinal Amusements", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/dragrace.c b/src/drivers/dragrace.c deleted file mode 100644 index da63fb8c5..000000000 --- a/src/drivers/dragrace.c +++ /dev/null @@ -1,378 +0,0 @@ -/*************************************************************************** - -Atari Drag Race Driver - -***************************************************************************/ - -#include "driver.h" -#include "dragrace.h" -#include "sound/discrete.h" - - -static unsigned dragrace_misc_flags = 0; - -static int dragrace_gear[2]; - -static void dragrace_frame_callback(int dummy) -{ - int i; - - for (i = 0; i < 2; i++) - { - switch (readinputport(5 + i)) - { - case 0x01: dragrace_gear[i] = 1; break; - case 0x02: dragrace_gear[i] = 2; break; - case 0x04: dragrace_gear[i] = 3; break; - case 0x08: dragrace_gear[i] = 4; break; - case 0x10: dragrace_gear[i] = 0; break; - } - } - - /* watchdog is disabled during service mode */ - watchdog_enable(readinputport(0) & 0x20); -} - - -static MACHINE_RESET( dragrace ) -{ - timer_pulse(cpu_getscanlinetime(0), 0, dragrace_frame_callback); -} - -static void dragrace_update_misc_flags(void) -{ - /* 0x0900 = set 3SPEED1 0x00000001 - * 0x0901 = set 4SPEED1 0x00000002 - * 0x0902 = set 5SPEED1 0x00000004 - * 0x0903 = set 6SPEED1 0x00000008 - * 0x0904 = set 7SPEED1 0x00000010 - * 0x0905 = set EXPLOSION1 0x00000020 - * 0x0906 = set SCREECH1 0x00000040 - * 0x0920 - 0x0927 = clear 0x0900 - 0x0907 - - * 0x0909 = set KLEXPL1 0x00000200 - * 0x090b = set MOTOR1 0x00000800 - * 0x090c = set ATTRACT 0x00001000 - * 0x090d = set LOTONE 0x00002000 - * 0x090f = set Player 1 Start Lamp 0x00008000 - * 0x0928 - 0x092f = clear 0x0908 - 0x090f - - * 0x0910 = set 3SPEED2 0x00010000 - * 0x0911 = set 4SPEED2 0x00020000 - * 0x0912 = set 5SPEED2 0x00040000 - * 0x0913 = set 6SPEED2 0x00080000 - * 0x0914 = set 7SPEED2 0x00100000 - * 0x0915 = set EXPLOSION2 0x00200000 - * 0x0916 = set SCREECH2 0x00400000 - * 0x0930 = clear 0x0910 - 0x0917 - - * 0x0919 = set KLEXPL2 0x02000000 - * 0x091b = set MOTOR2 0x08000000 - * 0x091d = set HITONE 0x20000000 - * 0x091f = set Player 2 Start Lamp 0x80000000 - * 0x0938 = clear 0x0918 - 0x091f - */ - set_led_status(0, dragrace_misc_flags & 0x00008000); - set_led_status(1, dragrace_misc_flags & 0x80000000); - - discrete_sound_w(DRAGRACE_MOTOR1_DATA, ~dragrace_misc_flags & 0x0000001f); // Speed1 data* - discrete_sound_w(DRAGRACE_EXPLODE1_EN, (dragrace_misc_flags & 0x00000020) ? 1: 0); // Explosion1 enable - discrete_sound_w(DRAGRACE_SCREECH1_EN, (dragrace_misc_flags & 0x00000040) ? 1: 0); // Screech1 enable - discrete_sound_w(DRAGRACE_KLEXPL1_EN, (dragrace_misc_flags & 0x00000200) ? 1: 0); // KLEXPL1 enable - discrete_sound_w(DRAGRACE_MOTOR1_EN, (dragrace_misc_flags & 0x00000800) ? 1: 0); // Motor1 enable - - discrete_sound_w(DRAGRACE_MOTOR2_DATA, (~dragrace_misc_flags & 0x001f0000) >> 0x10); // Speed2 data* - discrete_sound_w(DRAGRACE_EXPLODE2_EN, (dragrace_misc_flags & 0x00200000) ? 1: 0); // Explosion2 enable - discrete_sound_w(DRAGRACE_SCREECH2_EN, (dragrace_misc_flags & 0x00400000) ? 1: 0); // Screech2 enable - discrete_sound_w(DRAGRACE_KLEXPL2_EN, (dragrace_misc_flags & 0x02000000) ? 1: 0); // KLEXPL2 enable - discrete_sound_w(DRAGRACE_MOTOR2_EN, (dragrace_misc_flags & 0x08000000) ? 1: 0); // Motor2 enable - - discrete_sound_w(DRAGRACE_ATTRACT_EN, (dragrace_misc_flags & 0x00001000) ? 1: 0); // Attract enable - discrete_sound_w(DRAGRACE_LOTONE_EN, (dragrace_misc_flags & 0x00002000) ? 1: 0); // LoTone enable - discrete_sound_w(DRAGRACE_HITONE_EN, (dragrace_misc_flags & 0x20000000) ? 1: 0); // HiTone enable -} - -WRITE8_HANDLER( dragrace_misc_w ) -{ - /* Set/clear individual bit */ - UINT32 mask = 1 << offset; - if (data & 0x01) - dragrace_misc_flags |= mask; - else - dragrace_misc_flags &= (~mask); - logerror("Set %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0900+offset, mask, dragrace_misc_flags, data & 0x01); - dragrace_update_misc_flags(); - } - -WRITE8_HANDLER( dragrace_misc_clear_w ) -{ - /* Clear 8 bits */ - UINT32 mask = 0xff << (((offset >> 3) & 0x03) * 8); - dragrace_misc_flags &= (~mask); - logerror("Clear %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0920+offset, mask, dragrace_misc_flags, data & 0x01); - dragrace_update_misc_flags(); -} - -READ8_HANDLER( dragrace_input_r ) -{ - int val = readinputport(2); - - UINT8 maskA = 1 << (offset % 8); - UINT8 maskB = 1 << (offset / 8); - - int i; - - for (i = 0; i < 2; i++) - { - int in = readinputport(i); - - if (dragrace_gear[i] != 0) - { - in &= ~(1 << dragrace_gear[i]); - } - - if (in & maskA) - { - val |= 1 << i; - } - } - - return (val & maskB) ? 0xFF : 0x7F; -} - - -READ8_HANDLER( dragrace_steering_r ) -{ - int bitA[2]; - int bitB[2]; - - int i; - - for (i = 0; i < 2; i++) - { - int dial = readinputport(3 + i); - - bitA[i] = ((dial + 1) / 2) & 1; - bitB[i] = ((dial + 0) / 2) & 1; - } - - return - (bitA[0] << 0) | (bitB[0] << 1) | - (bitA[1] << 2) | (bitB[1] << 3); -} - - -READ8_HANDLER( dragrace_scanline_r ) -{ - return (cpu_getscanline() ^ 0xf0) | 0x0f; -} - - -static ADDRESS_MAP_START( dragrace_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0080, 0x00ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0800, 0x083f) AM_READ(dragrace_input_r) - AM_RANGE(0x0c00, 0x0c00) AM_READ(dragrace_steering_r) - AM_RANGE(0x0d00, 0x0d00) AM_READ(dragrace_scanline_r) - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_ROM) /* program */ - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_ROM) /* program mirror */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dragrace_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0080, 0x00ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0900, 0x091f) AM_WRITE(dragrace_misc_w) - AM_RANGE(0x0920, 0x093f) AM_WRITE(dragrace_misc_clear_w) - AM_RANGE(0x0a00, 0x0aff) AM_WRITE(MWA8_RAM) AM_BASE(&dragrace_playfield_ram) - AM_RANGE(0x0b00, 0x0bff) AM_WRITE(MWA8_RAM) AM_BASE(&dragrace_position_ram) - AM_RANGE(0x0e00, 0x0eff) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_ROM) /* program */ - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_ROM) /* program mirror */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( dragrace ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 1 Gas") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 1 gear 1 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 1 gear 2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 1 gear 3 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 1 gear 4 */ - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0xc0, 0x80, "Extended Play" ) - PORT_DIPSETTING( 0x00, "6.9 seconds" ) - PORT_DIPSETTING( 0x80, "5.9 seconds" ) - PORT_DIPSETTING( 0x40, "4.9 seconds" ) - PORT_DIPSETTING( 0xc0, "Never" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 2 Gas") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 2 gear 1 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 2 gear 2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 2 gear 3 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* player 2 gear 4 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x80, "Number Of Heats" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) /* IN0 connects here */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) /* IN1 connects here */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START /* IN3 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL_V ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN4 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL_V ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START /* IN5 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 1 Gear 1") PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 1 Gear 2") PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 1 Gear 3") PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 1 Gear 4") PORT_PLAYER(1) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Player 1 Neutral") PORT_PLAYER(1) - - PORT_START /* IN6 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 2 Gear 1") PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 2 Gear 2") PORT_PLAYER(2) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 2 Gear 3") PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 2 Gear 4") PORT_PLAYER(2) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Player 2 Neutral") PORT_PLAYER(2) - - PORT_START - PORT_ADJUSTER( 81, "Motor 1 RPM" ) - - PORT_START - PORT_ADJUSTER( 85, "Motor 2 RPM" ) -INPUT_PORTS_END - - -static const gfx_layout dragrace_tile_layout1 = -{ - 16, 16, /* width, height */ - 0x40, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, - 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 - }, - 0x100 /* increment */ -}; - - -static const gfx_layout dragrace_tile_layout2 = -{ - 16, 16, /* width, height */ - 0x20, /* total */ - 2, /* planes */ - { /* plane offsets */ - 0x0000, 0x2000 - }, - { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, - 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 - }, - 0x100 /* increment */ -}; - - -static const gfx_decode dragrace_gfx_decode_info[] = -{ - { REGION_GFX1, 0, &dragrace_tile_layout1, 0, 4 }, - { REGION_GFX2, 0, &dragrace_tile_layout2, 8, 2 }, - { -1 } /* end of array */ -}; - - -static PALETTE_INIT( dragrace ) -{ - palette_set_color(machine, 0, 0xFF, 0xFF, 0xFF); /* 2 color tiles */ - palette_set_color(machine, 1, 0x00, 0x00, 0x00); - palette_set_color(machine, 2, 0x00, 0x00, 0x00); - palette_set_color(machine, 3, 0xFF, 0xFF, 0xFF); - palette_set_color(machine, 4, 0x00, 0x00, 0x00); - palette_set_color(machine, 5, 0x00, 0x00, 0x00); - palette_set_color(machine, 6, 0xFF, 0xFF, 0xFF); - palette_set_color(machine, 7, 0xFF, 0xFF, 0xFF); - palette_set_color(machine, 8, 0xFF, 0xFF, 0xFF); /* 4 color tiles */ - palette_set_color(machine, 9, 0xB0, 0xB0, 0xB0); - palette_set_color(machine, 10,0x5F, 0x5F, 0x5F); - palette_set_color(machine, 11,0x00, 0x00, 0x00); - palette_set_color(machine, 12,0xFF, 0xFF, 0xFF); - palette_set_color(machine, 13,0x5F, 0x5F, 0x5F); - palette_set_color(machine, 14,0xB0, 0xB0, 0xB0); - palette_set_color(machine, 15,0x00, 0x00, 0x00); -} - - -static MACHINE_DRIVER_START( dragrace ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6800, 12096000 / 12) - MDRV_CPU_PROGRAM_MAP(dragrace_readmem, dragrace_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 4) - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((int) ((22. * 1000000) / (262. * 60) + 0.5))) - - MDRV_MACHINE_RESET(dragrace) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_GFXDECODE(dragrace_gfx_decode_info) - MDRV_PALETTE_LENGTH(16) - MDRV_PALETTE_INIT(dragrace) - MDRV_VIDEO_START(dragrace) - MDRV_VIDEO_UPDATE(dragrace) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(dragrace_discrete_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -ROM_START( dragrace ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "8513.c1", 0x1000, 0x0800, CRC(543bbb30) SHA1(646a41d1124c8365f07a93de38af007895d7d263) ) - ROM_LOAD( "8514.a1", 0x1800, 0x0800, CRC(ad218690) SHA1(08ba5f4fa4c75d8dad1a7162888d44b3349cbbe4) ) - ROM_RELOAD( 0xF800, 0x0800 ) - - ROM_REGION( 0x800, REGION_GFX1, ROMREGION_DISPOSE ) /* 2 color tiles */ - ROM_LOAD( "8519dr.j0", 0x000, 0x200, CRC(aa221ba0) SHA1(450acbf349d77a790a25f3e303c31b38cc426a38) ) - ROM_LOAD( "8521dr.k0", 0x200, 0x200, CRC(0cb33f12) SHA1(d50cb55391aec03e064eecad1624d50d4c30ccab) ) - ROM_LOAD( "8520dr.r0", 0x400, 0x200, CRC(ee1ae6a7) SHA1(83491095260c8b7c616ff17ec1e888d05620f166) ) - - ROM_REGION( 0x800, REGION_GFX2, ROMREGION_DISPOSE ) /* 4 color tiles */ - ROM_LOAD( "8515dr.e0", 0x000, 0x200, CRC(9510a59e) SHA1(aea0782b919279efe55a07007bd55a16f7f59239) ) - ROM_LOAD( "8517dr.h0", 0x200, 0x200, CRC(8b5bff1f) SHA1(fdcd719c66bff7c4b9f3d56d1e635259dd8add61) ) - ROM_LOAD( "8516dr.l0", 0x400, 0x200, CRC(d1e74af1) SHA1(f55a3bfd7d152ac9af128697f55c9a0c417779f5) ) - ROM_LOAD( "8518dr.n0", 0x600, 0x200, CRC(b1369028) SHA1(598a8779982d532c9f34345e793a79fcb29cac62) ) -ROM_END - - -GAME( 1977, dragrace, 0, dragrace, dragrace, 0, 0, "Atari", "Drag Race", 0 ) diff --git a/src/drivers/eolith.c b/src/drivers/eolith.c deleted file mode 100644 index e0e2df6b7..000000000 --- a/src/drivers/eolith.c +++ /dev/null @@ -1,859 +0,0 @@ -/******************************************************************** - Eolith 32 bits hardware: Gradation 2D system - - driver by Tomasz Slanina analog [at] op.pl - and Pierpaolo Prazzoli - - Main CPU: - Hyperstone E1-32N @ 45 or 50 MHz - - Sound CPU: - 80c301/AT89c52 - - Sound: - General MIDI Chipset QDSP 1000 MIDI Player (80c32 CPU) - MIDI 16th Channel(32 Poly) using as Effect EPROM : 512Kbytes - MIDI Background Music EPROM : 512Kbyte - TDA1519A(Philips)Stereo Power AMP - - Video: - 16 bit True Color/Dot - Resolution - 320x340 or 512x384 - - Memory: - 256KByte x2 VRAM - 512Kbyte/1Mega main RAM - - Games dumped - - Hidden Catch (pcb ver 3.03) - - New Hidden Catch (pcb ver 3.02) - - Hidden Catch 2 (pcb ver 3.03) - - Hidden Catch 3 (v. 1.00 / pcb ver 3.05) - - Land Breaker (pcb ver 3.03) (MCU internal flash dump is missing) - - Land Breaker (pcb ver 3.02) - - Raccoon World - - Fortress 2 Blue Arcade (v. 1.01 / pcb ver 3.05) - - Fortress 2 Blue Arcade (v. 1.00 / pcb ver 3.05) - - Puzzle King (Dance & Puzzle) - - Known games not dumped - - Hidden Catch (pcb ver 3.02) - - Fortress 2 Blue Arcade (v. 1.02) - - Ribbon (Step1. Mild Mind) (c) 1999 - - TODO: - - emulate Hidden Catch 3 touch screen (which has force feedback as well) - - sound & sound cpu - - Original Bugs: - - Hidden Catch 3: the text shown when you start a game is flipped or - clipped wrongly - - *********************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" - -READ32_HANDLER(eolith_vram_r); -WRITE32_HANDLER(eolith_vram_w); -VIDEO_START(eolith); -VIDEO_UPDATE(eolith); - -extern int eolith_buffer; - -static int coin_counter_bit = 0; - -// It's configured for 512 bytes -static struct EEPROM_interface eeprom_interface_93C66 = -{ - 9, // address bits 9 - 8, // data bits 8 - "*110", // read 110 aaaaaaaaa - "*101", // write 101 aaaaaaaaa dddddddd - "*111", // erase 111 aaaaaaaaa - "*10000xxxxxx", // lock 100 00xxxxxxx - "*10011xxxxxx" // unlock 100 11xxxxxxx -}; - - - -static NVRAM_HANDLER( eolith ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C66); - if (file) EEPROM_load(file); - } -} - - -static READ32_HANDLER( eeprom_r ) -{ - /* - bit 3 = eeprom bit - bit 6 = vblank flag - - Are these used only in landbrka ? - bit 8 = ??? - bit 9 = ??? - */ - - return (readinputport(0) & ~0x308) | (EEPROM_read_bit() << 3) | (mame_rand(Machine) & 0x300); -} - -static WRITE32_HANDLER( systemcontrol_w ) -{ - eolith_buffer = (data & 0x80) >> 7; - coin_counter_w(0, data & coin_counter_bit); - set_led_status(0, data & 1); - - EEPROM_write_bit(data & 0x08); - EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - - // bit 0x100 and 0x040 ? -} - -static ADDRESS_MAP_START( eolith_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here - AM_RANGE(0x40000000, 0x401fffff) AM_RAM - AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w) - AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eeprom_r) - AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w) - AM_RANGE(0xfc800000, 0xfc800003) AM_WRITENOP // sound latch - AM_RANGE(0xfca00000, 0xfca00003) AM_READ(input_port_1_dword_r) - AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ? - - // hidden catch 3 touch screen inputs - AM_RANGE(0xfce00000, 0xfce00003) AM_READNOP - AM_RANGE(0xfce80000, 0xfce80003) AM_READNOP - AM_RANGE(0xfcf00000, 0xfcf00003) AM_READNOP - AM_RANGE(0xfcf80000, 0xfcf80003) AM_READNOP - - AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION(REGION_USER1, 0) - AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION(REGION_CPU1, 0) -ADDRESS_MAP_END - -static INPUT_PORTS_START( common ) - PORT_START_TAG("IN0") - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SPECIAL ) // eeprom bit - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x00003f80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x00008000, IP_ACTIVE_LOW ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW1") - PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( hidnctch ) - PORT_INCLUDE(common) - PORT_MODIFY("IN0") - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x00000001, 0x00000001, "Show Settings" ) - PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000002, 0x00000002, "Show Counters" ) - PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_BIT( 0xfffffffc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( hidctch3 ) - PORT_INCLUDE(common) - PORT_MODIFY("IN0") - PORT_BIT( 0x00ff0000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x00000001, 0x00000001, "Show Settings" ) - PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_BIT( 0xfffffffe, IP_ACTIVE_LOW, IPT_UNUSED ) - - // missing touch screen / pen inputs -INPUT_PORTS_END - -INPUT_PORTS_START( raccoon ) - PORT_INCLUDE(common) - PORT_MODIFY("IN0") - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x0000000f, 0x0000000f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000000d, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0000000e, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0000000c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0000000f, DEF_STR( 1C_1C ) ) - // other values are just mirrors - PORT_BIT( 0xfffffff0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( landbrk ) - PORT_INCLUDE(common) - PORT_MODIFY("DSW1") - PORT_DIPNAME( 0x00000001, 0x00000001, "Show Settings" ) - PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000002, 0x00000002, "Show Counters" ) - PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_BIT( 0xfffffff0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( puzzlekg ) - PORT_INCLUDE(common) - PORT_MODIFY("IN0") - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("DSW1") - PORT_SERVICE( 0x0000000f, IP_ACTIVE_LOW ) // every bit enables it - PORT_BIT( 0xfffffff0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( eolith45 ) - MDRV_CPU_ADD_TAG("cpu", E132N, 45000000) /* 45 MHz */ - MDRV_CPU_PROGRAM_MAP(eolith_map,0) - - /* sound cpu */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(eolith) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - - MDRV_VIDEO_START(eolith) - MDRV_VIDEO_UPDATE(eolith) - - /* sound hardware */ -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( eolith50 ) - MDRV_IMPORT_FROM(eolith45) - MDRV_CPU_REPLACE("cpu", E132N, 50000000) /* 50 MHz */ -MACHINE_DRIVER_END - -/* Hidden Catch */ - -ROM_START( hidnctch ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "hc_u43.bin", 0x00000, 0x80000, CRC(635b4478) SHA1(31ea4a9725e0c329447c7d221c22494c905f6940) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "hc0_u39.bin", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) - ROM_LOAD32_WORD_SWAP( "hc1_u34.bin", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) - ROM_LOAD32_WORD_SWAP( "hc2_u40.bin", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) - ROM_LOAD32_WORD_SWAP( "hc3_u35.bin", 0x0800002, 0x400000, CRC(80c59133) SHA1(66ca4c2c014c4a1c87c46a3971732f0a2be95408) ) - ROM_LOAD32_WORD_SWAP( "hc4_u41.bin", 0x1000000, 0x400000, CRC(9a9e2203) SHA1(a90f5842b63696753e6c16114b1893bbeb91e45c) ) - ROM_LOAD32_WORD_SWAP( "hc5_u36.bin", 0x1000002, 0x400000, CRC(74b1719d) SHA1(fe2325259117598ad7c23217426ac9c28440e3a0) ) - // 0x1800000 - 0x1ffffff empty - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x008000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "hc_u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "hc_u108.bin", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "hc_u97.bin", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -/* - -New Hidden Catch -Eolith, 1999 - -PCB Layout ----------- - -GRADATION J.VER 3.02 -|-------------------------------------------------| -| TDA1519 VOL KM6161002 KM6161002 IS61C1024| -| VOL | -| KM6161002 KM6161002 IS61C1024| -| 24MHz QS1001A DSW(4) | -| QS1000 DSW(4) IS61C1024| -| U107 U97 EV0514-001 | -|J IC61C1024| -|A 14.31818MHz | -|M SERVICE_SW E1-32N | -|M TEST_SW | -|A 93C66 45MHz | -| | -| | -| GMS80C301 | -| 12MHz | -| | -| U108 U41 U39 U37 U35 U43 | -| U111 U42 U40 U38 U36 U34 | -| | -|-------------------------------------------------| -Notes: - E1-32N - Hyperstone E1-32N CPU, clock 45.000MHz (QFP160) - 80C301 clock - 12.000MHz - IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) - KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) - TDA1519 - Audio Power AMP - QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) - see http://www.hwass.co.kr/product.htm for more info on QS100x chips. - QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) - EV0514-001 - Custom Eolith IC (QFP100) - VSync - 60Hz - HSync - 15.64kHz -*/ - -ROM_START( nhidctch ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "u43", 0x00000, 0x80000, CRC(44296fdb) SHA1(1faf7061342d4c86f6ca416d922cb98ffb72f250) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "hc000.u39", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) - ROM_LOAD32_WORD_SWAP( "hc001.u34", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) - ROM_LOAD32_WORD_SWAP( "hc002.u40", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) - ROM_LOAD32_WORD_SWAP( "hc003.u35", 0x0800002, 0x400000, CRC(80c59133) SHA1(66ca4c2c014c4a1c87c46a3971732f0a2be95408) ) - ROM_LOAD32_WORD_SWAP( "hc004.u41", 0x1000000, 0x400000, CRC(9a9e2203) SHA1(a90f5842b63696753e6c16114b1893bbeb91e45c) ) - ROM_LOAD32_WORD_SWAP( "hc005.u36", 0x1000002, 0x400000, CRC(74b1719d) SHA1(fe2325259117598ad7c23217426ac9c28440e3a0) ) - ROM_LOAD32_WORD_SWAP( "hc006.u42", 0x1800000, 0x400000, CRC(2ec58049) SHA1(2a95d615f397cc4befdf92fcfca64a2726f6a791) ) - ROM_LOAD32_WORD_SWAP( "hc007.u37", 0x1800002, 0x400000, CRC(07e25def) SHA1(6e52a897cb2894625721010b8468ff237930b19b) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x008000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "u108", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -/* -Hidden Catch 2 -Eolith, 1999 - -PCB Layout ----------- - -GRADATION VER 3.03M -|-------------------------------------------------| -| TDA1519 VOL KM6161002 KM6161002 IS61C1024| -| VOL | -| DA1311 KM6161002 KM6161002 IS61C1024| -| 24MHz QS1001A DSW(4) | -| QS1000 DSW(4) IS61C1024| -| U107 U97 EV0514-001 | -|J IC61C1024| -|A 14.31818MHz | -|M SERVICE_SW E1-32N | -|M TEST_SW | -|A 93C66 50MHz | -| | -| |---------Sub Board (above)--------| -| AT89C52 7705 | -| 12MHz | | -| | | -| U108 U41 U39 U37 U35 U43 | -| U111 | U42 U40 U38 U36 U34 | -| | | -|--------------|----------------------------------| -Notes: - E1-32N - Hyperstone E1-32N CPU, clock 50.000MHz (QFP160) - AT89C52 - Atmel AT89C52 Microcontroller w/8k internal FlashROM, clock 12.000MHz - IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) - KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) - TDA1519 - Audio Power AMP - QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) - see http://www.hwass.co.kr/product.htm for more info on QS100x chips. - QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) - EV0514-001 - Custom Eolith IC (QFP100) - VSync - 60Hz - HSync - 15.64kHz - - Main board has ROMs populated at U108, U43, U107 & U97 ONLY - Sub Board contains 16x MX29F1610 16M FlashROMs. The filename is the location stamped on the PCB (SOP44) -*/ - -ROM_START( hidctch2 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "u43", 0x00000, 0x80000, CRC(326d1dbc) SHA1(b33434cd263dc40ee2b6562f72a87a0439a9833e) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) ) - ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) ) - ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) ) - ROM_LOAD32_WORD_SWAP( "03", 0x0400002, 0x200000, CRC(d686c59b) SHA1(f82d97f17d9cb10cae4d47f4efdd3ba6c5baace3) ) - ROM_LOAD32_WORD_SWAP( "04", 0x0800000, 0x200000, CRC(d35cb515) SHA1(75943b6c8052232c8b01ab57b4d32d54a22e7279) ) - ROM_LOAD32_WORD_SWAP( "05", 0x0800002, 0x200000, CRC(7870e5c6) SHA1(e36a62cb205d396337abdea8e553d70b6da32f8f) ) - ROM_LOAD32_WORD_SWAP( "06", 0x0c00000, 0x200000, CRC(10184a21) SHA1(fc99bc003ba69b651691ca37a5490beae29e36bc) ) - ROM_LOAD32_WORD_SWAP( "07", 0x0c00002, 0x200000, CRC(b6c4879f) SHA1(b672d5d7fc3dd1b32cd2f1084a71d1a225594866) ) - ROM_LOAD32_WORD_SWAP( "08", 0x1000000, 0x200000, CRC(670204d1) SHA1(efdead17ea1d1796f47abf65dc4792a10406b45c) ) - ROM_LOAD32_WORD_SWAP( "09", 0x1000002, 0x200000, CRC(28c0f55c) SHA1(0390aaf272deb1338293823d9d3a27306b2d9db6) ) - ROM_LOAD32_WORD_SWAP( "10", 0x1400000, 0x200000, CRC(45f374f4) SHA1(a5cec2fcb58445e0ff74c86b20aba7accd132ea5) ) - ROM_LOAD32_WORD_SWAP( "11", 0x1400002, 0x200000, CRC(cac54db3) SHA1(c31366e22d242ec0c0bb9f79869352894173db88) ) - ROM_LOAD32_WORD_SWAP( "12", 0x1800000, 0x200000, CRC(66e681ff) SHA1(8f78dec1dc3e5c6825f559cef69e413c98ed9aab) ) - ROM_LOAD32_WORD_SWAP( "13", 0x1800002, 0x200000, CRC(14bd38a9) SHA1(a3ff48de8150616a8ca49abf60225455397b938c) ) - ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(8eb1b01b) SHA1(e144ba01aa65dc96e22d1d41c3ca87ae19e874d5) ) - ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(3b06fe4e) SHA1(35356a116e6b825b8ed93c8ea1e016491ac1863a) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - - ROM_REGION( 0x000800, REGION_CPU3, 0 ) /* AT89c52 */ - ROM_LOAD( "hc2.103", 0x0000, 0x0800, NO_DUMP ) /* MCU internal 8K flash */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - - -/* - -Raccoon World -Eolith, 1998 - -This game runs on hardware that looks exactly like the Gradation 2D PCB -but there's no text or labelling on the PCB to say that. However, it is -an original Eolith PCB. - -PCB Layout ----------- - -(No PCB number) -|-------------------------------------------------| -| KA22065 VOL KM6161002 KM6161002 IS61C1024| -| VOL | -| KM6161002 KM6161002 IS61C1024| -| 24MHz QS1001A DSW(4) | -| QS1000 IS61C1024| -| U107 U97 EV0514-001 | -|J IC61C1024| -|A 14.31818MHz | -|M E1-32N | -|M | -|A 93C66 45MHz | -| |-----ROM SUB BOARD------| | -| | | | -| GMS80C301 | | -| 12MHz | | | -| | | | -| U108 U41 U39 U37 U35 U43 | -| U111 | U42 U40 U38 U36 | U34 | -| | | | -|-------------|------------------------|----------| -Notes: - E1-32N - Hyperstone E1-32N CPU, clock 45.000MHz (QFP160) - 80C301 clock - 12.000MHz - IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) - KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) - KA22065 - Audio Power AMP - QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) - see http://www.hwass.co.kr/product.htm for more info on QS100x chips. - QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) - EV0514-001 - Custom Eolith IC (QFP100) - VSync - 60Hz - HSync - 15.64kHz - Note only U111, U108 & U43 are populated with EPROMs - - -ROM SUB BOARD -|------------------------| -| U2 U4 U6 U8 | -|U1 U3 U5 U7 | -| | -| | -|U10 U12 U14 U16 | -| U11 U13 U15 U17| -| | -|------------------------| -Only U1, U2 U5, U10, U11 & U14 populated -All ROMs 27C160 EPROM - -*/ - -ROM_START( raccoon ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "racoon-u.43", 0x00000, 0x80000, CRC(711ee026) SHA1(c55dfaa24cbaa7a613657cfb25e7f0085f1e4cbf) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "racoon.u10", 0x0000000, 0x200000, CRC(f702390e) SHA1(47520ba0e6d3f044136a517ebbec7426a66ce33d) ) - ROM_LOAD32_WORD_SWAP( "racoon.u1", 0x0000002, 0x200000, CRC(49775125) SHA1(2b8ee9dd767465999c828d65bb02b8aaad94177c) ) - ROM_LOAD32_WORD_SWAP( "racoon.u11", 0x0400000, 0x200000, CRC(3f23f368) SHA1(eb1ea51def2cde5e7e4f334888294b794aa03dfc) ) - ROM_LOAD32_WORD_SWAP( "racoon.u2", 0x0400002, 0x200000, CRC(1eb00529) SHA1(d9af75e116f5237a3c6812538b77155b9c08dd5c) ) - ROM_LOAD32_WORD_SWAP( "racoon.u14", 0x0800000, 0x200000, CRC(870fe45e) SHA1(f8d800b92eb1ee9ef4663319fd3cb1f5e52d0e72) ) - ROM_LOAD32_WORD_SWAP( "racoon.u5", 0x0800002, 0x200000, CRC(5fbac174) SHA1(1d3e3f40a737d61ff688627891dec183af7fa19a) ) - // 0x0c00000 - 0x1ffffff empty - - ROM_REGION( 0x08000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "racoon-u.107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - - ROM_REGION( 0x08000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "racoon-u.111", 0x0000, 0x8000, CRC(52f419ea) SHA1(79c9f135b0cf8b1928411faed9b447cd98a83287) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "racoon-u.108", 0x00000, 0x80000, CRC(fc4f30ee) SHA1(74b9e60cceb03ad572e0e080fbe1de5cffa1b2c3) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "racoon-u.97", 0x00000, 0x80000, CRC(fef828b1) SHA1(38352b67d18300db40113df9426c2aceec12a29b) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -/* Land Breaker */ - -ROM_START( landbrk ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "rom3.u43", 0x00000, 0x80000, CRC(8429189a) SHA1(f38e4792426ca2c138c44053a6c7525906281dff) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "00.bin", 0x0000000, 0x200000, CRC(a803aace) SHA1(52a9e27b4f400767a953aa01321a9fa7cdbf3976) ) - ROM_LOAD32_WORD_SWAP( "01.bin", 0x0000002, 0x200000, CRC(439c95cc) SHA1(18830024b2e43f0a89a7bd32841fbcb574e50fc6) ) - ROM_LOAD32_WORD_SWAP( "02.bin", 0x0400000, 0x200000, CRC(a0c2828c) SHA1(967dc467d25f093749aa0146ebf54959c9803b92) ) - ROM_LOAD32_WORD_SWAP( "03.bin", 0x0400002, 0x200000, CRC(5106b61a) SHA1(5e584ce5247d598e59d071579edb1da87fb2c9d6) ) - ROM_LOAD32_WORD_SWAP( "04.bin", 0x0800000, 0x200000, CRC(fbe4a215) SHA1(2dec06a8641ef3db2a5448c95677ee8d7b0dc0ad) ) - ROM_LOAD32_WORD_SWAP( "05.bin", 0x0800002, 0x200000, CRC(61d422b2) SHA1(c9774747c94cac44ffd3c1781374c009950b2add) ) - ROM_LOAD32_WORD_SWAP( "06.bin", 0x0c00000, 0x200000, CRC(bc4f7f30) SHA1(31e7a6077a823f16a645547c9c11640535e02eb3) ) - ROM_LOAD32_WORD_SWAP( "07.bin", 0x0c00002, 0x200000, CRC(d4d108ce) SHA1(d462690b782b363db5a062e6e04fe0c00e21bd46) ) - ROM_LOAD32_WORD_SWAP( "08.bin", 0x1000000, 0x200000, CRC(36237654) SHA1(38a4d6d195683128c05d8869ff4184d79d26fead) ) - ROM_LOAD32_WORD_SWAP( "09.bin", 0x1000002, 0x200000, CRC(9171828b) SHA1(648a398654bfba2e7681a3eee61e3803538929b5) ) - ROM_LOAD32_WORD_SWAP( "10.bin", 0x1400000, 0x200000, CRC(fe51744d) SHA1(2f6fb5cc7a52d2fa3459b9b2cf3450a227c19643) ) - ROM_LOAD32_WORD_SWAP( "11.bin", 0x1400002, 0x200000, CRC(fe6fd5e0) SHA1(66442b0d308517ebf0e13653cf4289ee9e9e0741) ) - ROM_LOAD32_WORD_SWAP( "12.bin", 0x1800000, 0x200000, CRC(9f0f17f3) SHA1(c280dd5127ea6d1585f8b7ad753de45e1beaca8f) ) - ROM_LOAD32_WORD_SWAP( "13.bin", 0x1800002, 0x200000, CRC(c7d51bbe) SHA1(a399087496f1c3f4c4b9e9b97e97585302ff29e5) ) - ROM_LOAD32_WORD_SWAP( "14.bin", 0x1c00000, 0x200000, CRC(f30f7bc5) SHA1(8b3e002b773a88229d013e1d95336736a259c698) ) - ROM_LOAD32_WORD_SWAP( "15.bin", 0x1c00002, 0x200000, CRC(bc1664e3) SHA1(a13a4e1df8d9825a72ecca1552ee52958c0d33d8) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "rom5.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x008000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "rom1.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "rom2.u108", 0x00000, 0x80000, CRC(f3b327ef) SHA1(4b359171afd6ca10275961f795f3fe64f9df9897) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "rom4.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -ROM_START( landbrka ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "lb_1.u43", 0x00000, 0x80000, CRC(f8bbcf44) SHA1(ad85a890ae2f921cd08c1897b4d9a230ccf9e072) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) ) - ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) ) - ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) ) - ROM_LOAD32_WORD_SWAP( "lb2-003.u35", 0x0800002, 0x400000, CRC(28ce863a) SHA1(1ba7d8be0ed4459dbdf99df18a2ad817904b9f04) ) - ROM_LOAD32_WORD_SWAP( "lb2-004.u41", 0x1000000, 0x400000, CRC(cbe84b06) SHA1(52505939fb88cd24f409c795fe5ceed5b41a52c2) ) - ROM_LOAD32_WORD_SWAP( "lb2-005.u36", 0x1000002, 0x400000, CRC(350c77a3) SHA1(231e65ea7db19019615a8aa4444922bcd5cf9e5c) ) - ROM_LOAD32_WORD_SWAP( "lb2-006.u42", 0x1800000, 0x400000, CRC(22c57cd8) SHA1(c9eb745523005876395ff7f0b3e996994b3f1220) ) - ROM_LOAD32_WORD_SWAP( "lb2-007.u37", 0x1800002, 0x400000, CRC(31f957b3) SHA1(ab1c4c50c2d5361ba8db047feb714423d84e6df4) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x000800, REGION_CPU3, 0 ) /* AT89c52 */ - ROM_LOAD( "lb.103", 0x0000, 0x0800, NO_DUMP ) /* MCU internal 8K flash */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "lb_2.108", 0x00000, 0x80000, CRC(a99182d7) SHA1(628c8d09efb3917a4e97d9e02b6b0ca1f339825d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - - -/* Fortress 2 Blue */ - -ROM_START( fort2b ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "1.u43", 0x00000, 0x80000, CRC(b2279485) SHA1(022591b260be28820f04a1c1fdd61cb9b68d6703) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(4437b595) SHA1(b87518110955947264d93b1f377289f1741ce5dc) ) - ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(2a410aed) SHA1(def822ead339180aa3e0ebb266b6a6eb1271a2ae) ) - ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(12f0e4c0) SHA1(fa1e1c3510af61b4058507f1aca801377cafffb4) ) - ROM_LOAD32_WORD_SWAP( "03.u2", 0x0400002, 0x200000, CRC(aaa7c45a) SHA1(fa06932ab1d41eddd384785f1b2b4dc70046da0f) ) - ROM_LOAD32_WORD_SWAP( "04.u7", 0x0800000, 0x200000, CRC(428070d2) SHA1(3e25c644be28fd64e8ea60a5b6c675ce2a84ec91) ) - ROM_LOAD32_WORD_SWAP( "05.u3", 0x0800002, 0x200000, CRC(a66f9ba9) SHA1(3984c42358403b692b7e09b5849c2444578305f0) ) - ROM_LOAD32_WORD_SWAP( "06.u8", 0x0c00000, 0x200000, CRC(899d318e) SHA1(3bd552eae9985928fe211186f1913c155cbde1a5) ) - ROM_LOAD32_WORD_SWAP( "07.u4", 0x0c00002, 0x200000, CRC(c4644798) SHA1(3debeef3abc6ce4aea5eb0c6be9f99689a9f111c) ) - ROM_LOAD32_WORD_SWAP( "08.u15", 0x1000000, 0x200000, CRC(ce0cccfc) SHA1(42cb6698e9168712699616d46ece5a6482825e87) ) - ROM_LOAD32_WORD_SWAP( "09.u10", 0x1000002, 0x200000, CRC(5b7de0f1) SHA1(f0ee1c6d0766fec95d77d46a9c68b8c3b0d09dde) ) - ROM_LOAD32_WORD_SWAP( "10.u16", 0x1400000, 0x200000, CRC(b47fc014) SHA1(e1094bc8a3edff635c4abe311a7902a714b9102c) ) - ROM_LOAD32_WORD_SWAP( "11.u11", 0x1400002, 0x200000, CRC(7113d3f9) SHA1(5c34b2b21bb09c5dec075fabfd426c143a0a8dc2) ) - ROM_LOAD32_WORD_SWAP( "12.u17", 0x1800000, 0x200000, CRC(8c4b63a6) SHA1(2493c9e9547cb06fbdc6240fb67b15047b66a5fd) ) - ROM_LOAD32_WORD_SWAP( "13.u12", 0x1800002, 0x200000, CRC(1d9b9995) SHA1(e18b93c244d8e959053dff66e2e5e4341e2b8034) ) - ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(450fa784) SHA1(d1244b94be6571f1f8930154778362af5cd4c334) ) - ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(c1f02d5c) SHA1(73fe9e654c097cd57863b49545c6aa05996a7645) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "5.u107", 0x00000, 0x08000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x08000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "4.u111", 0x00000, 0x08000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "3.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "2.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -ROM_START( fort2ba ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "ftii012.u43", 0x00000, 0x80000, CRC(6424e05f) SHA1(2f02f103de180561e372ce897f8410a11c4cb58d) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "ftii000.u39", 0x0000000, 0x400000, CRC(be74121d) SHA1(ee072044f84e11c48537d79bd9766bf8cc28f002) ) - ROM_LOAD32_WORD_SWAP( "ftii004.u34", 0x0000002, 0x400000, CRC(d4399f98) SHA1(88f5a1097f44d2070cfc96c9cd83342d1975dcfe) ) - ROM_LOAD32_WORD_SWAP( "ftii001.u40", 0x0800000, 0x400000, CRC(35c396ff) SHA1(d05dee021e1a93e224b05949c18a5107e0aceb4d) ) - ROM_LOAD32_WORD_SWAP( "ftii005.u35", 0x0800002, 0x400000, CRC(ff553679) SHA1(d9f1ebc28098a20a59b76ee859527e946c82a1df) ) - ROM_LOAD32_WORD_SWAP( "ftii002.u41", 0x1000000, 0x400000, CRC(1d79ed5a) SHA1(0319392dbfe4a20be462ca9cc5a66575ba0a32b4) ) - ROM_LOAD32_WORD_SWAP( "ftii006.u36", 0x1000002, 0x400000, CRC(c6049bbc) SHA1(bd9231b5fe1a7307668960c1f9f188f4a49f1c45) ) - ROM_LOAD32_WORD_SWAP( "ftii003.u42", 0x1800000, 0x400000, CRC(3cac1efe) SHA1(aca009a39b5d6049e3cf234f4412868a569ffb18) ) - ROM_LOAD32_WORD_SWAP( "ftii007.u37", 0x1800002, 0x400000, CRC(a583a672) SHA1(b013fbfaa1e3f573a305e6346e50b930766daa1d) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "ftii010.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x08000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "ftii008.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "ftii009.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "ftii011.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -/* Puzzle King */ - -ROM_START( puzzlekg ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(c3db7424) SHA1(5ee2be0f06fddb0c74fc6e82679b275cc4e86bcc) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "u10.bin", 0x0000000, 0x200000, CRC(c9c3064b) SHA1(10a46d4674c1ef64e50dfcb5eb44953206fe6163) ) - ROM_LOAD32_WORD_SWAP( "u1.bin", 0x0000002, 0x200000, CRC(6b4b369d) SHA1(3f528e557f2846d7c50afa332797e8bc541eeba8) ) - ROM_LOAD32_WORD_SWAP( "u11.bin", 0x0400000, 0x200000, CRC(92615236) SHA1(dc602cb4c2a3d671cc60b075b399cf3efb67d3d3) ) - ROM_LOAD32_WORD_SWAP( "u2.bin", 0x0400002, 0x200000, CRC(e76bbd1d) SHA1(6c191e3c4c363132abf5f62882a40a0fbf0fb7ad) ) - ROM_LOAD32_WORD_SWAP( "u14.bin", 0x0800000, 0x200000, CRC(f5aa39d1) SHA1(6dde4c63cde388313370ed0cbf410965cfdfdaaa) ) - ROM_LOAD32_WORD_SWAP( "u5.bin", 0x0800002, 0x200000, CRC(88bb70cf) SHA1(9f6e7a97c7ee98d80a362395bcdcde25ceccec09) ) - ROM_LOAD32_WORD_SWAP( "u15.bin", 0x0c00000, 0x200000, CRC(bcc1f74d) SHA1(b2ee9b3761f77663a8f412fb3d3a724746e77c75) ) - ROM_LOAD32_WORD_SWAP( "u6.bin", 0x0c00002, 0x200000, CRC(ab2248ff) SHA1(fcef9028973e7e8cc3a0b8bb1f4a261f24f49081) ) - ROM_LOAD32_WORD_SWAP( "u12.bin", 0x1000000, 0x200000, CRC(1794973d) SHA1(09000781c87fa407a49addd35660517870fc997b) ) - ROM_LOAD32_WORD_SWAP( "u3.bin", 0x1000002, 0x200000, CRC(0980e877) SHA1(325687d8f9f8bfe55a53d3bd9a857504738a4633) ) - ROM_LOAD32_WORD_SWAP( "u13.bin", 0x1400000, 0x200000, CRC(31de6d19) SHA1(6d270d83f6c49fa8e0fc5a8ec63d8ba9e6c99105) ) - ROM_LOAD32_WORD_SWAP( "u4.bin", 0x1400002, 0x200000, CRC(2706f23c) SHA1(a4ade1c243640a26b673e3f9d83de8c0b6927c74) ) - ROM_LOAD32_WORD_SWAP( "u16.bin", 0x1800000, 0x200000, CRC(c2d09171) SHA1(d74ccc92cd11fef52a13f3bd2c4835131f3262c2) ) - ROM_LOAD32_WORD_SWAP( "u7.bin", 0x1800002, 0x200000, CRC(52405e69) SHA1(e27648bb1e02c539758bf9223efab13360f6cd55) ) - ROM_LOAD32_WORD_SWAP( "u17.bin", 0x1c00000, 0x200000, CRC(234b7261) SHA1(6bb95b8258133cc802f076c15e69c5412272e960) ) - ROM_LOAD32_WORD_SWAP( "u8.bin", 0x1c00002, 0x200000, CRC(8f4e50d7) SHA1(78808f0193a13467b45c84aef7f6a8f1cfe24feb) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(f3add818) SHA1(96e77950154ced9f3234200de2aa29060c00d47f) ) - - ROM_REGION( 0x08000, REGION_CPU3, 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "u108.bin", 0x00000, 0x80000, CRC(e4555c6b) SHA1(128196a5b47d13ee7163981043b96f7b4b27204b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(f4604ce8) SHA1(e061b203ef5df386120dbf089ece094d16a1b59b) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -/* -Hidden Catch 3 -Eolith, 2000 - -PCB Layout ----------- - -GRADATION J. VER 3.05 -|-------------------------------------------------| -| TDA1519 VOL KM6161002 KM6161002 IS61C1024| -| VOL | -| DA1311 KM6161002 KM6161002 IS61C1024| -| 24MHz QS1001A DSW(4) | -| QS1000 DSW(4) IS61C1024| -| U107 U97 EV0514-001 | -|J IC61C1024| -|A 14.31818MHz | -|M SERVICE_SW E1-32N | -|M TEST_SW | -|A 93C66 50MHz | -| | -| |---------Sub Board (above)--------| -| GMS90C32 7705 | -| 12MHz | | -| | | -| U108 U41 U39 U37 U35 U43 | -| U111 | U42 U40 U38 U36 U34 | -| | | -|--------------|----------------------------------| -Notes: - E1-32N - Hyperstone E1-32N CPU, clock 50.000MHz (QFP160) - GMS90C32 - Hyundai GMS90C32 MCS-51 Compatible Microcontroller w/8k internal EPROM, clock 12.000MHz (PLCC44) - Note EA (External Access Enable on pin35) is LOW, thus it is configured to use the External EPROM at U111. - The chip is configured by placing a small smt zero Ohm resistor across 2 pads adjacent to pin35. So a romless - condition can be easily checked by looking to see if the resistor is present. If the resistor is not present, - EA is configured to HIGH and the chip is using it's internal ROM. - IS61C1024 - ISSI 128k x8 High Speed CMOS Static RAM (SOJ32) - KM6161002 - Samsung 64k x16 Ultra High Speed CMOS Video Static RAM (SOJ44) - TDA1519 - Audio Power AMP - QS1000 - QDSP QS1000 AdMOS 9638R, Wavetable Audio chip, clock input of 24.000MHz (QFP100) - see http://www.hwass.co.kr/product.htm for more info on QS100x chips. - QS1001A - QDSP QS1001A 512k x8 MaskROM (SOP32) - EV0514-001 - Custom Eolith IC (QFP100) - VSync - 60Hz - HSync - 15.64kHz - - Main board has ROMs populated at U111, U108, U43, U107 & U97 ONLY and locations from U34 to U42 do not have sockets populated. - Sub Board contains 16x MX29F1610 16M FlashROMs. The filename is the location stamped on the PCB (SOP44) - -*/ - -ROM_START( hidctch3 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "u43", 0x00000, 0x80000, CRC(7b861339) SHA1(fca7d47d7d538774ec6462deebc0a367ac073b67) ) - - ROM_REGION32_BE( 0x2000000, REGION_USER1, ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ - ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(7fe5cd46) SHA1(8190614a1cf1df6472590b43036200a1075bfe58) ) - ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(09463ec9) SHA1(0287da2e65521a61c06ad927e913243d023f0d72) ) - ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(e5a08ebf) SHA1(0ce2414b547a027710ee4ea8f890cc2fa23dff9a) ) - ROM_LOAD32_WORD_SWAP( "03", 0x0400002, 0x200000, CRC(b942b041) SHA1(e8b17766bc6ae966109cbfdc0d682c5bc19f196c) ) - ROM_LOAD32_WORD_SWAP( "04", 0x0800000, 0x200000, CRC(d25256de) SHA1(4f46f37b8245aea39a44cb43de36eefdbb8d8697) ) - ROM_LOAD32_WORD_SWAP( "05", 0x0800002, 0x200000, CRC(6ea89d41) SHA1(24df7802c2756bb8b03632287b17361924e5cb86) ) - ROM_LOAD32_WORD_SWAP( "06", 0x0c00000, 0x200000, CRC(67d3df6c) SHA1(2026c77fc5f621e5f3b2696d5acb91fabab4b439) ) - ROM_LOAD32_WORD_SWAP( "07", 0x0c00002, 0x200000, CRC(74698a22) SHA1(75370c2804c0f1b0ded3a487c2fc0107716d3e0c) ) - ROM_LOAD32_WORD_SWAP( "08", 0x1000000, 0x200000, CRC(0bf28c1f) SHA1(058e5157314687b6af3bd58495f3e2eaee9bf7f1) ) - ROM_LOAD32_WORD_SWAP( "09", 0x1000002, 0x200000, CRC(8a5960ce) SHA1(308f7aa586f781dbc280c288594d9a588d22220a) ) - ROM_LOAD32_WORD_SWAP( "10", 0x1400000, 0x200000, CRC(58999d26) SHA1(4f7a0050a4b2452563bb6af26236443ef2e24eb2) ) - ROM_LOAD32_WORD_SWAP( "11", 0x1400002, 0x200000, CRC(25f21007) SHA1(dc7d77ad35c34583d0dc08908535d94afcf9d10c) ) - ROM_LOAD32_WORD_SWAP( "12", 0x1800000, 0x200000, CRC(c39eba49) SHA1(eb9e15b7087d16029bfaddde8e8c2c447cb3cf73) ) - ROM_LOAD32_WORD_SWAP( "13", 0x1800002, 0x200000, CRC(20feaaf1) SHA1(b591b99e02596a94ad0aeab830dc550eb5c9a8a6) ) - ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(6c042967) SHA1(e81ec2bf4fe5880d283e76bebf5e22d60f0588f9) ) - ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(a49c0834) SHA1(64ca242cbf3ad6160b79ea2cb8ca4e4958d40e59) ) - - ROM_REGION( 0x008000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x008000, REGION_CPU3, 0 ) /* GMS90C32 */ - ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Music data */ - ROM_LOAD( "u108", 0x00000, 0x80000, CRC(4a7de2e1) SHA1(89da2423f22f98886d7cac807964b1e52398ee19) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(6d37aa1a) SHA1(6827e500d9bf66e2e9236be563456ff88c78db91) ) - - ROM_REGION( 0x080000, REGION_SOUND3, 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - -static DRIVER_INIT( landbrk ) -{ - coin_counter_bit = 0x1000; -} - -static DRIVER_INIT( landbrka ) -{ - //it fails compares with memories: - //$4002d338 -> $4002d348 .... $4002d33f -> $4002d34f - //related with bits 0x100 - 0x200 read at startup from input(0) ? - UINT32 *rombase = (UINT32*)memory_region(REGION_CPU1); - rombase[0x14f00/4] = (rombase[0x14f00/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ - - coin_counter_bit = 0x2000; -} - -static DRIVER_INIT( hidctch2 ) -{ - //it fails compares in memory like in landbrka - UINT32 *rombase = (UINT32*)memory_region(REGION_CPU1); - rombase[0xbcc8/4] = (rombase[0xbcc8/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ -} - -GAME( 1998, hidnctch, 0, eolith45, hidnctch, 0, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_NO_SOUND ) // or Teurrin Geurim Chajgi '98 -GAME( 1998, raccoon, 0, eolith45, raccoon, 0, ROT0, "Eolith", "Raccoon World", GAME_NO_SOUND ) -GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, 0, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_NO_SOUND ) -GAME( 1999, hidctch2, 0, eolith50, hidnctch, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03)", GAME_NO_SOUND ) -GAME( 1999, landbrk, 0, eolith45, landbrk, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_NO_SOUND ) // or Miss Ttang Jjareugi -GAME( 1999, landbrka, landbrk, eolith45, landbrk, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03)", GAME_NO_SOUND ) // or Miss Ttang Jjareugi -GAME( 1999, nhidctch, 0, eolith45, hidnctch, 0, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_NO_SOUND ) // or New Teurrin Geurim Chajgi '98 -GAME( 2000, hidctch3, 0, eolith50, hidctch3, 0, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_NO_SOUND | GAME_NOT_WORKING ) -GAME( 2001, fort2b, 0, eolith50, common, 0, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_NO_SOUND ) -GAME( 2001, fort2ba, fort2b, eolith50, common, 0, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_NO_SOUND ) diff --git a/src/drivers/esd16.c b/src/drivers/esd16.c deleted file mode 100644 index 539b80af6..000000000 --- a/src/drivers/esd16.c +++ /dev/null @@ -1,986 +0,0 @@ -/*************************************************************************** - - -= ESD 16 Bit Games =- - - driver by Luca Elia (l.elia@tin.it) - additions by David Haywood - - -Main CPU : M68000 -Video Chips : 2 x ACTEL A40MX04 (84 Pin Square Socketed) - -Sound CPU : Z80 -Sound Chips : M6295 (AD-65) + YM3812 (U6612) + YM3014 (U6614) - ---------------------------------------------------------------------------- -Year + Game PCB Notes ---------------------------------------------------------------------------- -98 Multi Champ ESD 11-09-98 -99 Multi Champ Deluxe ESD 08-26-1999 -00 Head Panic ESD 08-26-1999 (with Fuuki) -00 Tang Tang ESD (no date is marked on PCB) ---------------------------------------------------------------------------- - -Head Panic -- Maybe the sprite code can be merged again, haven't checked yet. -- Nude / Bikini pics don't show in-game, even when set in test mode? - ---------------------------------------------------------------------------- - -***************************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "sound/okim6295.h" -#include "sound/3812intf.h" - -/* Variables defined in vidhrdw: */ - -extern UINT16 *esd16_vram_0, *esd16_scroll_0; -extern UINT16 *esd16_vram_1, *esd16_scroll_1; -extern UINT16 *head_layersize; -extern tilemap *esdtilemap_1_16x16; - -/* Functions defined in vidhrdw: */ - -WRITE16_HANDLER( esd16_vram_0_w ); -WRITE16_HANDLER( esd16_vram_1_w ); -WRITE16_HANDLER( esd16_tilemap0_color_w ); - -VIDEO_START( esd16 ); -VIDEO_UPDATE( esd16 ); -VIDEO_UPDATE( hedpanic ); - - -static UINT16 *headpanic_platform_x; -static UINT16 *headpanic_platform_y; - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - -WRITE16_HANDLER( esd16_spriteram_w ) { COMBINE_DATA(&spriteram16[offset]); } - -WRITE16_HANDLER( esd16_sound_command_w ) -{ - if (ACCESSING_LSB) - { - soundlatch_w(0,data & 0xff); - cpunum_set_input_line(1,0,ASSERT_LINE); // Generate an IRQ - cpu_spinuntil_time(TIME_IN_USEC(50)); // Allow the other CPU to reply - } -} - -/* - Lines starting with an empty comment in the following MemoryReadAddress - arrays are there for debug (e.g. the game does not read from those ranges - AFAIK) -*/ - -static ADDRESS_MAP_START( multchmp_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x200000, 0x2005ff) AM_READ(MRA16_RAM ) // Palette -/**/AM_RANGE(0x300000, 0x3007ff) AM_READ(MRA16_RAM ) // Sprites -/**/AM_RANGE(0x400000, 0x403fff) AM_READ(MRA16_RAM ) // Layers -/**/AM_RANGE(0x420000, 0x423fff) AM_READ(MRA16_RAM ) // -/**/AM_RANGE(0x500000, 0x500003) AM_READ(MRA16_RAM ) // Scroll -/**/AM_RANGE(0x500004, 0x500007) AM_READ(MRA16_RAM ) // -/**/AM_RANGE(0x500008, 0x50000b) AM_READ(MRA16_RAM ) // -/**/AM_RANGE(0x50000c, 0x50000f) AM_READ(MRA16_RAM ) // - AM_RANGE(0x600002, 0x600003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x600004, 0x600005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x600006, 0x600007) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x700008, 0x70000b) AM_READ(MRA16_NOP ) // ? Only read once -ADDRESS_MAP_END - -static ADDRESS_MAP_START( multchmp_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x200000, 0x2005ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x300000, 0x3007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x300800, 0x300807) AM_WRITE(esd16_spriteram_w ) // Sprites (Mirrored) - AM_RANGE(0x400000, 0x403fff) AM_WRITE(esd16_vram_0_w) AM_BASE(&esd16_vram_0 ) // Layers - AM_RANGE(0x420000, 0x423fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // Scroll - AM_RANGE(0x500000, 0x500003) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_0 ) // - AM_RANGE(0x500004, 0x500007) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_1 ) // - AM_RANGE(0x500008, 0x50000b) AM_WRITE(MWA16_RAM ) // ? 0 - AM_RANGE(0x50000c, 0x50000f) AM_WRITE(MWA16_RAM ) // ? 0 - AM_RANGE(0x600000, 0x600001) AM_WRITE(MWA16_NOP ) // IRQ Ack - AM_RANGE(0x600008, 0x600009) AM_WRITE(esd16_tilemap0_color_w ) // Flip Screen + Tileamp0 palette banking - AM_RANGE(0x60000a, 0x60000b) AM_WRITE(MWA16_NOP ) // ? 2 - AM_RANGE(0x60000c, 0x60000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU -ADDRESS_MAP_END - -WRITE16_HANDLER(hedpanic_platform_w) -{ - int offsets = headpanic_platform_x[0]+0x40* headpanic_platform_y[0]; - - esd16_vram_1[offsets] = data; - - tilemap_mark_tile_dirty(esdtilemap_1_16x16,offsets); -} - - -static READ16_HANDLER( esd_eeprom_r ) -{ - if (ACCESSING_MSB) - { - return ((EEPROM_read_bit() & 0x01) << 15); - } - -// logerror("(0x%06x) unk EEPROM read: %04x\n", activecpu_get_pc(), mem_mask); - return 0; -} - -static WRITE16_HANDLER( esd_eeprom_w ) -{ - if (ACCESSING_MSB) - { - // data line - EEPROM_write_bit((data & 0x0400) >> 6); - - // clock line asserted. - EEPROM_set_clock_line((data & 0x0200) ? ASSERT_LINE : CLEAR_LINE ); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x0100) ? CLEAR_LINE : ASSERT_LINE ); - } - -// logerror("(0x%06x) Unk EEPROM write: %04x %04x\n", activecpu_get_pc(), data, mem_mask); -} - -static ADDRESS_MAP_START( hedpanic_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x800fff) AM_READ(MRA16_RAM) - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xc00006, 0xc00007) AM_READ(esd_eeprom_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hedpanic_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x800000, 0x800fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x9007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x900800, 0x900807) AM_WRITE(esd16_spriteram_w ) // Sprites (Mirrored) - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(esd16_vram_0_w) AM_BASE(&esd16_vram_0 ) // Layers - AM_RANGE(0xa20000, 0xa23fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // - AM_RANGE(0xa24000, 0xa27fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // mirror? - AM_RANGE(0xb00000, 0xb00003) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_0 ) // Scroll - AM_RANGE(0xb00004, 0xb00007) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_1 ) // - AM_RANGE(0xb00008, 0xb00009) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_x) - AM_RANGE(0xb0000a, 0xb0000b) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_y) - AM_RANGE(0xb0000c, 0xb0000d) AM_WRITE(MWA16_NOP) // ?? - AM_RANGE(0xb0000e, 0xb0000f) AM_WRITE(MWA16_RAM) AM_BASE(&head_layersize) // ?? - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(MWA16_NOP) // IRQ Ack - AM_RANGE(0xc00008, 0xc00009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking - AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE(MWA16_NOP) // ? 2 not checked - AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok - AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(esd_eeprom_w) - AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) -ADDRESS_MAP_END - -/* Multi Champ Deluxe, like Head Panic but different addresses */ - -static ADDRESS_MAP_START( mchampdx_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x400fff) AM_READ(MRA16_RAM) - AM_RANGE(0x500002, 0x500003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x500004, 0x500005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x500006, 0x500007) AM_READ(esd_eeprom_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mchampdx_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x303fff) AM_WRITE(esd16_vram_0_w) AM_BASE(&esd16_vram_0 ) // Layers - AM_RANGE(0x320000, 0x323fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // - AM_RANGE(0x324000, 0x327fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // mirror? - AM_RANGE(0x400000, 0x400fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x500000, 0x500001) AM_WRITE(MWA16_NOP) // IRQ Ack - AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking - AM_RANGE(0x50000a, 0x50000b) AM_WRITE(MWA16_NOP) // ? 2 not checked - AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok - AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w) - AM_RANGE(0x600000, 0x6007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x600800, 0x600807) AM_WRITE(esd16_spriteram_w ) // Sprites (Mirrored) - AM_RANGE(0x700000, 0x700003) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_0 ) // Scroll - AM_RANGE(0x700004, 0x700007) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_1 ) // - AM_RANGE(0x700008, 0x700009) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx? - AM_RANGE(0x70000a, 0x70000b) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx? - AM_RANGE(0x70000c, 0x70000d) AM_WRITE(MWA16_NOP) // ?? - AM_RANGE(0x70000e, 0x70000f) AM_WRITE(MWA16_RAM) AM_BASE(&head_layersize) // ?? - AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) // not used in mchampdx? -ADDRESS_MAP_END - -/* Tang Tang - like the others but again with different addresses */ - -static ADDRESS_MAP_START( tangtang_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) - AM_RANGE(0x500002, 0x500003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x500004, 0x500005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x500006, 0x500007) AM_READ(esd_eeprom_r ) - AM_RANGE(0x700000, 0x70ffff) AM_READ(MRA16_RAM) // main ram -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tangtang_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x200000, 0x2007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x200800, 0x200807) AM_WRITE(esd16_spriteram_w ) // Sprites (Mirrored) - AM_RANGE(0x300000, 0x303fff) AM_WRITE(esd16_vram_0_w) AM_BASE(&esd16_vram_0 ) // Layers - AM_RANGE(0x320000, 0x323fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // - AM_RANGE(0x324000, 0x327fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1 ) // mirror? - AM_RANGE(0x400000, 0x400003) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_0 ) // Scroll - AM_RANGE(0x400004, 0x400007) AM_WRITE(MWA16_RAM) AM_BASE(&esd16_scroll_1 ) // - AM_RANGE(0x400008, 0x400009) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx? - AM_RANGE(0x40000a, 0x40000b) AM_WRITE(MWA16_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx? - AM_RANGE(0x40000c, 0x40000d) AM_WRITE(MWA16_NOP) // ?? - AM_RANGE(0x40000e, 0x40000f) AM_WRITE(MWA16_RAM) AM_BASE(&head_layersize) // ?? - AM_RANGE(0x500000, 0x500001) AM_WRITE(MWA16_NOP) // IRQ Ack - AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking - AM_RANGE(0x50000a, 0x50000b) AM_WRITE(MWA16_NOP) // ? 2 not checked - AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w ) // To Sound CPU // ok - AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w) - AM_RANGE(0x600008, 0x600009) AM_WRITE(hedpanic_platform_w) - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -/*************************************************************************** - - - Memory Maps - Sound CPU - - -***************************************************************************/ - -static WRITE8_HANDLER( esd16_sound_rombank_w ) -{ - int bank = data & 0xf; - if (data != bank) logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n",activecpu_get_pc(),data); - if (bank >= 3) bank += 1; - memory_set_bankptr(1, memory_region(REGION_CPU2) + 0x4000 * bank); -} - -static ADDRESS_MAP_START( multchmp_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( multchmp_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM ) // RAM -ADDRESS_MAP_END - -READ8_HANDLER( esd16_sound_command_r ) -{ - /* Clear IRQ only after reading the command, or some get lost */ - cpunum_set_input_line(1,0,CLEAR_LINE); - return soundlatch_r(0); -} - -static ADDRESS_MAP_START( multchmp_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x02, 0x02) AM_READ(OKIM6295_status_0_r ) // M6295 - AM_RANGE(0x03, 0x03) AM_READ(esd16_sound_command_r ) // From Main CPU - AM_RANGE(0x06, 0x06) AM_READ(MRA8_NOP ) // ? At the start -ADDRESS_MAP_END - -static ADDRESS_MAP_START( multchmp_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM3812_control_port_0_w ) // YM3812 - AM_RANGE(0x01, 0x01) AM_WRITE(YM3812_write_port_0_w ) - AM_RANGE(0x02, 0x02) AM_WRITE(OKIM6295_data_0_w ) // M6295 - AM_RANGE(0x04, 0x04) AM_WRITE(MWA8_NOP ) // ? $00, $30 - AM_RANGE(0x05, 0x05) AM_WRITE(esd16_sound_rombank_w ) // ROM Bank - AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP ) // ? 1 (End of NMI routine) -ADDRESS_MAP_END - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - -INPUT_PORTS_START( multchmp ) - PORT_START_TAG("IN0") // $600002.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Resets the test mode - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") // $600005.b - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") // $600006.w - PORT_SERVICE( 0x0001, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0002, 0x0002, "Coinage Type" ) // Not Supported - PORT_DIPSETTING( 0x0002, "1" ) -// PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) - -// PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty" ) ) CRASH CPP?? - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0c00, "3" ) - PORT_DIPSETTING( 0x0800, "4" ) - PORT_DIPSETTING( 0x0400, "5" ) - PORT_DIPNAME( 0x1000, 0x1000, "Selectable Games" ) - PORT_DIPSETTING( 0x1000, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Unknown 2-6" ) // unused - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" ) // unused - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( hedpanic ) - PORT_START_TAG("IN0") // $600002.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") // $600005.b - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x0040, IP_ACTIVE_LOW) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - -/* 16x16x5, made of four 8x8 tiles */ -static const gfx_layout layout_16x16x5 = -{ - 16,16, - RGN_FRAC(1,5), - 5, - { RGN_FRAC(4,5),RGN_FRAC(3,5),RGN_FRAC(2,5),RGN_FRAC(1,5), RGN_FRAC(0,5) }, - { STEP8(0+7,-1), STEP8(8*16+7,-1) }, - { STEP16(0,8) }, - 16*16 -}; - -/* 8x8x8 */ -static const gfx_layout layout_8x8x8 = -{ - 8,8, - RGN_FRAC(1,4), - 8, - { STEP8(0,1) }, - { RGN_FRAC(3,4)+0*8,RGN_FRAC(2,4)+0*8,RGN_FRAC(1,4)+0*8,RGN_FRAC(0,4)+0*8, - RGN_FRAC(3,4)+1*8,RGN_FRAC(2,4)+1*8,RGN_FRAC(1,4)+1*8,RGN_FRAC(0,4)+1*8 }, - { STEP8(0,2*8) }, - 8*8*2, -}; - -static const gfx_decode esd16_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x5, 0x200, 8 }, // [0] Sprites - { REGION_GFX2, 0, &layout_8x8x8, 0x000, 2 }, // [1] Layers - { REGION_GFX1, 0, &layout_16x16x5, 0x200, 8 }, // [0] Sprites - { -1 } -}; - -static const gfx_layout hedpanic_layout_8x8x8 = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0*8,2*8,1*8,3*8,4*8,6*8,5*8,7*8 }, - { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 }, - 64*8, -}; - -static const gfx_layout hedpanic_layout_16x16x8 = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0*8,2*8,1*8,3*8,4*8,6*8,5*8,7*8, - 64*8+0*8,64*8+2*8,64*8+1*8,64*8+3*8,64*8+4*8,64*8+6*8,64*8+5*8,64*8+7*8 }, - { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64, - 128*8+0*64,128*8+1*64,128*8+2*64,128*8+3*64,128*8+4*64,128*8+5*64,128*8+6*64,128*8+7*64 - }, - 256*8, -}; - - -static const gfx_layout hedpanic_sprite_16x16x5 = -{ - 16,16, - RGN_FRAC(1,3), - 5, - { RGN_FRAC(2,3), RGN_FRAC(0,3), RGN_FRAC(0,3)+8, RGN_FRAC(1,3),RGN_FRAC(1,3)+8 }, - { 7,6,5,4,3,2,1,0, 256+7,256+6,256+5,256+4,256+3,256+2,256+1,256+0 }, - { 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16 }, - 16*32, -}; - - -static const gfx_decode hedpanic_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &hedpanic_sprite_16x16x5, 0x200, 8 }, // [0] Sprites - { REGION_GFX2, 0, &hedpanic_layout_8x8x8, 0x000, 4 }, // [1] Layers - { REGION_GFX2, 0, &hedpanic_layout_16x16x8, 0x000, 4 }, // [2] Layers - { -1 } -}; - -static const gfx_decode tangtang_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x5, 0x200, 8 }, // [0] Sprites - { REGION_GFX2, 0, &hedpanic_layout_8x8x8, 0x000, 4 }, // [1] Layers - { REGION_GFX2, 0, &hedpanic_layout_16x16x8, 0x000, 4 }, // [2] Layers - { -1 } -}; - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -static MACHINE_DRIVER_START( multchmp ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(multchmp_readmem,multchmp_writemem) - MDRV_CPU_VBLANK_INT(irq6_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(multchmp_sound_readmem,multchmp_sound_writemem) - MDRV_CPU_IO_MAP(multchmp_sound_readport,multchmp_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,32) /* IRQ By Main CPU */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(0x140, 0x100) - MDRV_SCREEN_VISIBLE_AREA(0, 0x140-1, 0+8, 0x100-8-1) - MDRV_GFXDECODE(esd16_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(768) - - MDRV_VIDEO_START(esd16) - MDRV_VIDEO_UPDATE(esd16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( hedpanic ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(multchmp) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(hedpanic_readmem,hedpanic_writemem) - - MDRV_NVRAM_HANDLER(93C46) - - MDRV_PALETTE_LENGTH(0x1000/2) - - MDRV_GFXDECODE(hedpanic_gfxdecodeinfo) - MDRV_VIDEO_UPDATE(hedpanic) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mchampdx ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hedpanic) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mchampdx_readmem,mchampdx_writemem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tangtang ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(hedpanic) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tangtang_readmem,tangtang_writemem) - - MDRV_GFXDECODE(tangtang_gfxdecodeinfo) -MACHINE_DRIVER_END - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/*************************************************************************** - - Multi Champ -PCB Layout ----------- - -ESD 11-09-98 -+-----------------------------------------+ -| YM3812 6116 su10 fu27| -|VOL YM3014 su06 M6295 fu32| -| PAL Z80 fu26| -| 6116 fu30| -|J 6116 Actel fu28| -|A DSWA DSWB 76C256 A40MX04 fu31| -|M 76C256 fu29| -|M cu03 76C256 6116 Actel PAL fu33| -|A cu02 76C256 6116 A40MX04 PAL ju07| -| 68000 6116 ju03| -| PAL 6116 PAL ju04| -| PAL 6116 PAL ju05| -|16MHz 14MHz 6116 PAL ju06| -+-----------------------------------------+ - -(C) ESD 1998, 1999 -PCB No. ESD 11-09-98 (Probably the manufacture date) -CPU: MC68HC000FN16 (68000, 68 pin PLCC socketed) -SND: Z80 (Z0840006PSC), U6614/U6612 (YM3014/YM3812), AD-65 (OKI M6295) -OSC: 16.000MHz, 14.000MHz -RAM: 4 x 62256, 9 x 6116 -DIPS: 2 x 8 position -Dip info is in Japanese! I will scan and make it available on my site for translation. - -Other Chips: 2 x Actel A40MX04-F FPGA (PLCC84) -8 PAL's (not dumped) - -ROMS: - -MULTCHMP.U02 \ Main Program MX27C2000 -MULTCHMP.U03 / MX27C2000 -MULTCHMP.U06 -- Sound Program 27C010 -MULTCHMP.U10 -- ADPCM Samples 27C010 -MULTCHMP.U27 -\ 27C4001 -MULTCHMP.U28 \ 27C4001 -MULTCHMP.U29 | 27C4001 -MULTCHMP.U30 + Backgrounds 27C4001 -MULTCHMP.U31 | 27C4001 -MULTCHMP.U32 | 27C4001 -MULTCHMP.U33 / 27C4001 -MULTCHMP.U34 -/ 27C4001 -MULTCHMP.U35 -\ MX27C2000 -MULTCHMP.U36 \ MX27C2000 -MULTCHMP.U37 +- Sprites MX27C2000 -MULTCHMP.U38 / MX27C2000 -MULTCHMP.U39 -/ MX27C2000 - -***************************************************************************/ - -ROM_START( multchmp ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "esd2.cu02", 0x000000, 0x040000, CRC(2d1b098a) SHA1(c2f3991f02c611c258219da2c61cad22c9a21f7d) ) - ROM_LOAD16_BYTE( "esd1.cu03", 0x000001, 0x040000, CRC(10974063) SHA1(854b38b4d4cb529e9928aae4212c86a220615e04) ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "esd3.su06", 0x00000, 0x0c000, CRC(7c178bd7) SHA1(8754d3c70d9b2bf369a5ce0cce4cc0696ed22750) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "esd14.ju03", 0x000000, 0x040000, CRC(a6122225) SHA1(cbcf2b31c4c011daba21f0ae5fd3be63c9a87c00) ) - ROM_LOAD( "esd15.ju04", 0x040000, 0x040000, CRC(88b7a97c) SHA1(0a57ec8f6a44c8e3aa3ef35499a415d6a2b7eb16) ) - ROM_LOAD( "esd16.ju05", 0x080000, 0x040000, CRC(e670a6da) SHA1(47cbe45b6d5d0ca70d0c6787d589dde5d14fdba4) ) - ROM_LOAD( "esd17.ju06", 0x0c0000, 0x040000, CRC(a69d4399) SHA1(06ae6c07cc6b7313e2e2aa3b994f7532d6994e1b) ) - ROM_LOAD( "esd13.ju07", 0x100000, 0x040000, CRC(22071594) SHA1(c79102b250780d1da8c290d065d61fbbfa193366) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD( "esd5.fu27", 0x000000, 0x080000, CRC(299f32c2) SHA1(274752444f6ddba16eeefc02c3e78525c079b3d8) ) - ROM_LOAD( "esd6.fu32", 0x080000, 0x080000, CRC(e2689bb2) SHA1(1da9b1f7335d5c2d1c2f8353fccf91c0109d2e9d) ) - ROM_LOAD( "esd11.fu29", 0x100000, 0x080000, CRC(9bafd8ee) SHA1(db18be05431d4b6d4207e19fa4ed8701621aaa19) ) - ROM_LOAD( "esd12.fu33", 0x180000, 0x080000, CRC(c6b86001) SHA1(11a63b56df30ab7b85ce4568d2a24e96a125735a) ) - ROM_LOAD( "esd7.fu26", 0x200000, 0x080000, CRC(a783a003) SHA1(1ff61a049485c5b599c458a8bf7f48027d14f8e0) ) - ROM_LOAD( "esd8.fu30", 0x280000, 0x080000, CRC(22861af2) SHA1(1e74e85517cb8fd5fb4bda6e9d9d54046e31f653) ) - ROM_LOAD( "esd9.fu28", 0x300000, 0x080000, CRC(6652c04a) SHA1(178e1d42847506d869ef79db2f7e10df05e9ef76) ) - ROM_LOAD( "esd10.fu31", 0x380000, 0x080000, CRC(d815974b) SHA1(3e528a5df79fa7dc0f38b0ee7f2f3a0ebc97a369) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(6e741fcd) SHA1(742e0952916c00f67dd9f8d01e721a9a538d2fc4) ) -ROM_END - -ROM_START( multchmk ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "multchmp.u02", 0x000000, 0x040000, CRC(7da8c0df) SHA1(763a3240554a02d8a9a0b13b6bfcd384825a6c57) ) - ROM_LOAD16_BYTE( "multchmp.u03", 0x000001, 0x040000, CRC(5dc62799) SHA1(ff7882985efc20309c3f901a622f1beffa0c47be) ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "esd3.su06", 0x00000, 0x0c000, CRC(7c178bd7) SHA1(8754d3c70d9b2bf369a5ce0cce4cc0696ed22750) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "multchmp.u36", 0x000000, 0x040000, CRC(d8f06fa8) SHA1(f76912f93f99578529612a7f01d82ac7229a8e41) ) - ROM_LOAD( "multchmp.u37", 0x040000, 0x040000, CRC(b1ae7f08) SHA1(37dd9d4cef8b9e1d09d7b46a9794fb2b777c9a01) ) - ROM_LOAD( "multchmp.u38", 0x080000, 0x040000, CRC(88e252e8) SHA1(07d898379798c6be42b636762b0af61b9111a480) ) - ROM_LOAD( "multchmp.u39", 0x0c0000, 0x040000, CRC(51f01067) SHA1(d5ebbc7d358b63724d2f24da8b2ce4a202be37a5) ) - ROM_LOAD( "multchmp.u35", 0x100000, 0x040000, CRC(9d1590a6) SHA1(35f634dbf0df06ec62359c7bae43c7f5d14b0ab2) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD( "multchmp.u27", 0x000000, 0x080000, CRC(dc42704e) SHA1(58a04a47ffc6d6ae0e4d49e466b1c58b37ad741a) ) - ROM_LOAD( "multchmp.u28", 0x080000, 0x080000, CRC(449991fa) SHA1(fd93e420a04cb8bea5421aa9cbe079bd3e7d4924) ) - ROM_LOAD( "multchmp.u33", 0x100000, 0x080000, CRC(e4c0ec96) SHA1(74152108e4d05f4aff9d38919f212fcb8c87cef3) ) - ROM_LOAD( "multchmp.u34", 0x180000, 0x080000, CRC(bffaaccc) SHA1(d9ab248e2c7c639666e3717cfc5d8c8468a1bde2) ) - ROM_LOAD( "multchmp.u29", 0x200000, 0x080000, CRC(01bd1399) SHA1(b717ccffe0af92a42a0879736d34d3ad71840233) ) - ROM_LOAD( "multchmp.u30", 0x280000, 0x080000, CRC(c6b4cc18) SHA1(d9097b85584272cfe4989a40d622ef1feeee6775) ) - ROM_LOAD( "multchmp.u31", 0x300000, 0x080000, CRC(b1e4e9e3) SHA1(1a7393e9073b028b4170393b3788ad8cb86c0c78) ) - ROM_LOAD( "multchmp.u32", 0x380000, 0x080000, CRC(f05cb5b4) SHA1(1b33e60942238e39d61ae59e9317b99e83595ab1) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(6e741fcd) SHA1(742e0952916c00f67dd9f8d01e721a9a538d2fc4) ) -ROM_END - -/* - -Multi Champ Deluxe ------------------- - -PCB Layout ----------- - -ESD 08-26-1999 -|-----------------------------------------| -| 3014 3812 6116 6295 ESD4.SU10 * | -|VOL ESD3.SU06 Z80 ROM.JU01| -| PAL * | -| 6116 | -| 6116 PAL 6116 ROM.JU02| -| 6116 |-------| * | -|J PAL | ESD | * | -|A PAL |CRTC99 |ESD5.JU07 | -|M PAL | | * | -|M PAL |-------| | -|A 68000 ESD1.CU03 | -| ESD2.CU02 |-------| | -| |ACTEL | 6116 | -| 93C46 |A40MX04| 6116 | -| MCM6206 | | 6116 | -| MCM6206 |-------| 6116 | -| 16MHz PAL MCM6206 | -| 14MHz PAL MCM6206 ROM.FU35 ROM.FU34 | -|-----------------------------------------| - -Notes: - 68000 clock 16.000MHz - Z80 clock 4.000MHz - M6295 clock 1.000MHz. Sample rate 1000000/132 - YM3812 clock 4.000MHz - HSync - 15.625kHz - VSync - 60Hz - MCM6206 - 32k x8 SRAM (SOJ28) - 6116 - 2k x8 SRAM (SOP28) - A40MX04 - Actel A40MX04-F FPGA (PLCC84) - CRTC99 - ESD CRTC99 Graphics Controller (QFP240) - - * : Board has positions for 6x standard 32 pin EPROMs but only position ESD5 is populated - with an EPROM. In between the unpopulated positions are 2x smt pads. These are populated - with 2x 16M SOP44 smt Mask ROMs. - -*/ - - -ROM_START( mchampdx ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "ver0106_esd2.cu02", 0x000000, 0x040000, CRC(ea98b3fd) SHA1(107ee8adea246141fd6fa9209541ce0a7ed1e24c) ) - ROM_LOAD16_BYTE( "ver0106_esd1.cu03", 0x000001, 0x040000, CRC(c6e4546b) SHA1(af9a8edffe94d035f92b36b1cd145c2a5ee66f48) ) - - ROM_REGION( 0x84000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "ver0106_desd3.su06", 0x00000, 0x0c000, CRC(1b22568c) SHA1(5458e1a798357a6785f8ea1fe9da37768cd4761d) ) - ROM_CONTINUE( 0x10000, 0x34000 ) - - /* this has additional copyright sprites in the flash roms for the (c)2000 message.. */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "ver0106_ju01.bin", 0x200000, 0x200000, CRC(55841d90) SHA1(52ba3ee9393dcddf28e2d20a50151bc739faaaa4) ) - ROM_LOAD( "ver0106_ju02.bin", 0x000000, 0x200000, CRC(b27a4977) SHA1(b7f94bb04d0046538b3938335e6b0cce330ad79c) ) - /* expand this to take up 0x200000 bytes too so we can decode it */ - ROM_LOAD16_BYTE( "ver0106_esd5.ju07", 0x400000, 0x040000, CRC(7a3ac887) SHA1(3c759f9bed396bbaf6bd7298a8bd2bd76df3aa6f) ) - ROM_FILL( 0x500000, 0x100000, 0 ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD16_BYTE( "rom.fu35", 0x000000, 0x200000, CRC(ba46f3dc) SHA1(4ac7695bdf4237654481f7f74f8650d70a51e691) ) - ROM_LOAD16_BYTE( "rom.fu34", 0x000001, 0x200000, CRC(2895cf09) SHA1(88756fcd589af1986c3881d4080f086afc11b498) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ver0106_esd4.su10", 0x00000, 0x40000, CRC(ac8ae009) SHA1(2c1c30cc4b3e34a5f14d7dfb6f6e18ff21f526f5) ) -ROM_END - -ROM_START( mchampda ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "esd2.cu02", 0x000000, 0x040000, CRC(4cca802c) SHA1(5e6e81febbb56b7c4630b530e546e7ab59c6c6c1) ) - ROM_LOAD16_BYTE( "esd1.cu03", 0x000001, 0x040000, CRC(0af1cd0a) SHA1(d2befcb596d83d523317d17b4c1c71f99de0d33e) ) - - ROM_REGION( 0x84000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "esd3.su06", 0x00000, 0x0c000, CRC(2c0c8813) SHA1(ad6b881af4a629a948dcb3c99cea73c20ba1faf4) ) - ROM_CONTINUE( 0x10000, 0x74000 ) - - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "rom.ju01", 0x200000, 0x200000, CRC(1a749fc2) SHA1(feff4b26ee28244b4d092798a176e33e09d5df2c) ) - ROM_LOAD( "rom.ju02", 0x000000, 0x200000, CRC(7e87e332) SHA1(f90aa00a64a940846d99053c7aa023e3fd5d070b) ) - /* expand this to take up 0x200000 bytes too so we can decode it */ - ROM_LOAD16_BYTE( "esd5.ju07", 0x400000, 0x080000, CRC(6cc871cc) SHA1(710b9695c864e4234686993b88d24590d60e1cb9) ) - ROM_FILL( 0x500000, 0x100000, 0 ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD16_BYTE( "rom.fu35", 0x000000, 0x200000, CRC(ba46f3dc) SHA1(4ac7695bdf4237654481f7f74f8650d70a51e691) ) - ROM_LOAD16_BYTE( "rom.fu34", 0x000001, 0x200000, CRC(2895cf09) SHA1(88756fcd589af1986c3881d4080f086afc11b498) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "esd4.su10", 0x00000, 0x80000, CRC(14c4a30d) SHA1(d8eb2f08d5293f729cbec1897e3b92b675cc2814) ) -ROM_END - - - -/* Tang Tang - -Tang Tang (ESD) ------------------------- - -PCB Layout ----------- - -ESD made in Korea -|-----------------------------------------| -| U6614 U6612 6116 AD65 ESD4.SU10 | -|VOL ESD3.SU06 Z80 ROM.JU04| -| PAL | -| 6116 ROM.JU05| -| 6116 PAL 6116 | -| 6116 |-------| ROM.JU06| -|J PAL | ESD | | -|A PAL |CRTC99 | ROM.JU07| -|M PAL | 0016 | | -|M PAL |-------| ROM.JU08| -|A 68000 ESD1.CU03 | -| ESD2.CU02 |-------| | -| |ACTEL | 6116 | -| |A40MX04| 6116 | -| MCM6206 | 0008 | 6116 | -| MCM6206 |-------| 6116 | -| 16MHz PAL MCM6206 | -| 14MHz PAL MCM6206 ROM.FU35 ROM.FU34 | -|-----------------------------------------| - -Notes: - 68000 (MC68HC000FN16-2E60R-QQJU9508) - Z80 (Z84C00006FEC-Z80CPU-9618Z3) - OKI6295 label AD65 (sound) - YM3014 label U6614 (sound) - YM3812 label U6612 (sound) - MCM6206 - 32k x8 SRAM (SOJ28) - 6116 - 2k x8 SRAM (SOP28) - A40MX04 - Actel A40MX04-F FPGA (PLCC84) - CRTC99 - ESD CRTC99 Graphics Controller (QFP240) - ESD1-2 - 27C2001 - ESD3-4 - 27C2000 - JU04-8 - MX27C2000PC - FU34,FU35 - MX29F1610MC -1x connector JAMMA -1x trimmer (volume) -2x pushbutton - - * : Board has positions for 6x standard 32 pin EPROMs but only 5 positions are populated - with an EPROM. - -*/ - -ROM_START( tangtang ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "esd2.cu02", 0x000000, 0x040000, CRC(b6dd6e3d) SHA1(44d2663827c45267eb154c873f3bd2e9e2bf3d3f) ) - ROM_LOAD16_BYTE( "esd1.cu03", 0x000001, 0x040000, CRC(b6c0f2f4) SHA1(68ad76e7e380c728dda200a852729e034d9c9f4c) ) - - ROM_REGION( 0x84000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "esd3.su06", 0x00000, 0x0c000, CRC(d48ecc5c) SHA1(5015dd775980542eb29a08bffe1a09ea87d56272) ) - ROM_CONTINUE( 0x10000, 0x34000 ) - - ROM_REGION( 0x140000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "xju04.bin", 0x000000, 0x040000, CRC(f999b9d7) SHA1(9e4d0e68cdc429c7563b8ad51c072d68ffed09dc) ) - ROM_LOAD( "xju05.bin", 0x040000, 0x040000, CRC(679302cf) SHA1(911c2f7e0e809ee28e4f2364788fd51d2bcef24e) ) - ROM_LOAD( "xju06.bin", 0x080000, 0x040000, CRC(01f59ff7) SHA1(a62a2d5c2d107f67fecfc08fdb5d801ee39c3875) ) - ROM_LOAD( "xju07.bin", 0x0c0000, 0x040000, CRC(556acac3) SHA1(10e919e63b434da80fb261db1d8967cb11e95e00) ) - ROM_LOAD( "xju08.bin", 0x100000, 0x040000, CRC(ecc2d8c7) SHA1(1aabdf7204fcdff8d46cb50de8b097e3775dddf3) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD16_BYTE( "fu35.bin", 0x000000, 0x200000, CRC(84f3f833) SHA1(f84e41d93dc47a58ada800b921a7e5902b7631cd) ) - ROM_LOAD16_BYTE( "fu34.bin", 0x000001, 0x200000, CRC(bf91f543) SHA1(7c149fed8b8044850cd6b798622a91c45336cd47) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(f2dfb02d) SHA1(04001488697aad3e5b2d15c9f5a81dc2b7d0952c) ) -ROM_END - -/*************************************************************************** - -PCB Layout (Head Panic) ----------- - -ESD 08-26-1999 - - 3014 3812 6116 6295 ESD4 - ESD3 Z80 * - 6116 6116 ESD6 * - 6116 6116 ESD7 * - ESD_CRTC99 * - (LARGE QFP) ESD5 * - ESD1 * - ESD2 - 68000 6116 - MCM6206 ACTEL 6116 - 93C46 MCM6206 A40MX04 6116 - 16MHz MCM6206 6116 - 14MHz MCM6206 ESD8 % ESD9 - - -Notes: - HSync: 15.625kHz - VSync: 60Hz - MCM6206 is 32kx8 SRAM - 6116 is 8kx8 SRAM - * : Board has positions for 6x standard 32 pin EPROMs but only position ESD5 is populated - with an EPROM. In between the unpopulated positions are 2x smt pads. These are populated - with 2x 16M SOP44 smt Mask ROMs. - % : ROMs ESD8 and ESD9 are also 16M SOP44 smt Mask ROMs, though these are dedicated smt - locations (i.e. no option for EPROMs at this location) - -***************************************************************************/ - - -ROM_START( hedpanic ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "esd2", 0x000000, 0x040000, CRC(8cccc691) SHA1(d6a5dd6c21a67638b9023182f77780282b9b04e5) ) - ROM_LOAD16_BYTE( "esd1", 0x000001, 0x040000, CRC(d8574925) SHA1(bd4990778b90a49aa6b10f8cf6709ce2424f546a) ) - - ROM_REGION( 0x84000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "esd3", 0x00000, 0x0c000, CRC(c668d443) SHA1(fa66a5dc5cb10e6ccc3fbdd7790091d912767001) ) // 0x040000 of data repeated 2x - ROM_CONTINUE( 0x10000, 0x74000 ) - - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites, 16x16x5 */ - ROM_LOAD( "esd6", 0x200000, 0x200000, CRC(5858372c) SHA1(dc96112587df681d53cf7449bd39477919978325) ) - ROM_LOAD( "esd7", 0x000000, 0x200000, CRC(055d525f) SHA1(85ad474691f96e47311a1904015d1c92d3b2d607) ) - /* expand this to take up 0x200000 bytes too so we can decode it */ - ROM_LOAD16_BYTE( "esd5", 0x400000, 0x080000, CRC(bd785921) SHA1(c8bcb38d5aa6f5a27f0dedf7efd1d6737d59b4ca) ) - ROM_FILL( 0x500000, 0x100000, 0 ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers, 16x16x8 */ - ROM_LOAD16_BYTE( "esd8", 0x000000, 0x200000, CRC(23aceb4f) SHA1(35d9ebc33b9e1515e47750cfcdfc0bf8bf44b71d) ) - ROM_LOAD16_BYTE( "esd9", 0x000001, 0x200000, CRC(76b46cd2) SHA1(679cbf50ae5935e8848868081ecef4ec66424f6c) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "esd4", 0x000000, 0x080000, CRC(5692fe92) SHA1(4423039cb437ab36d198b212ef394bf1704be404) ) // 0x020000 of data repeated 4x -ROM_END - -/*************************************************************************** - - - Game Drivers - - -***************************************************************************/ - -/* ESD 11-09-98 */ -GAME( 1999, multchmp, 0, multchmp, multchmp, 0, ROT0, "ESD", "Multi Champ (World)", 0 ) -GAME( 1998, multchmk, multchmp, multchmp, multchmp, 0, ROT0, "ESD", "Multi Champ (Korea)", 0 ) - -/* ESD 08-26-1999 */ -GAME( 2000, mchampdx, 0, mchampdx, hedpanic, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 0106, 06/01/2000)", 0 ) // 06/01/2000 ? -GAME( 1999, mchampda, mchampdx, mchampdx, hedpanic, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", 0 ) // 26/11/1999 ? -GAME( 2000, hedpanic, 0, hedpanic, hedpanic, 0, ROT0, "ESD / Fuuki", "Head Panic (ver. 0315, 15/03/2000)", 0 ) // 15/03/2000 ? - -/* ESD */ -GAME( 2000, tangtang, 0, tangtang, hedpanic, 0, ROT0, "ESD", "Tang Tang (ver. 0526, 26/05/2000)", 0 ) // 26/05/2000 ? diff --git a/src/drivers/exctsccr.c b/src/drivers/exctsccr.c deleted file mode 100644 index 55ddb6eb7..000000000 --- a/src/drivers/exctsccr.c +++ /dev/null @@ -1,616 +0,0 @@ -/*************************************************************************** - -Exciting Soccer - (c) 1983 Alpha Denshi Co. -Exciting Soccer II - (c) 1984 Alpha Denshi Co. - -Supported sets: -Exciting Soccer - Alpha Denshi -Exciting Soccer (bootleg) - Kazutomi -Exciting Soccer II - Alpha Denshi - - -Preliminary driver by: -Ernesto Corvi -ernesto@imagina.com - -Jarek Parchanski -jpdev@friko6.onet.pl -ALPHA 8301 MCU handling by Tatsuyuki satoh - -NOTES: -The game supports Coin 2, but the dip switches used for it are the same -as Coin 1. Basically, this allowed to select an alternative coin table -based on wich Coin input was connected. - -***************************************************************************/ - -#include "driver.h" -#include "sound/ay8910.h" -#include "sound/dac.h" - -/* MCU hacking switch */ -/* when set 1, old raw patch */ -/* when set 0, uses MCU core emulation and some MCU patch */ -#define MCU_HACK 0 - -/* from vidhrdw */ -extern WRITE8_HANDLER( exctsccr_videoram_w ); -extern WRITE8_HANDLER( exctsccr_colorram_w ); -extern WRITE8_HANDLER( exctsccr_gfx_bank_w ); -extern WRITE8_HANDLER( exctsccr_flipscreen_w ); - -extern PALETTE_INIT( exctsccr ); -extern VIDEO_START( exctsccr ); -extern VIDEO_UPDATE( exctsccr ); - -/* from machine */ -extern UINT8 *exctsccr_mcu_ram; -extern WRITE8_HANDLER( exctsccr_mcu_w ); -extern WRITE8_HANDLER( exctsccr_mcu_control_w ); -extern WRITE8_HANDLER( exctscc2_mcu_control_w ); - - -WRITE8_HANDLER( exctsccr_DAC_data_w ) -{ - DAC_signed_data_w(offset,data << 2); -} - -/* -exctsccr MCU program patch data -*/ -static const int exctsccr_mcu_patch_data[] = -{ -/* -bypass ROM sum error because some opcodes are unknown yet -3B7: F6 db f6 -3BA: F6 db f6 -3BC: F9 db f9 -3BD: F6 db f6 -3C1: F6 db f6 -3C7: F8 db f8 ; check SUM to ZF -*/ - (0x3c8<<16) | (0xd1<<8) | 0xd2, // JZ -> JMP - -1 -}; - -/* -exctscc2 MCU program patch data -*/ -static const int exctscc2_mcu_patch_data[] = -{ -/* -bypass initislize check - -307: D5 01 unknown -309: D4 00 unknown -A reg 2 to 5 - -30F: D4 01 unknown -A reg 5 to 2 - -*/ - (0x30d<<16) | (0xcf<<8) | 0xda, // JNZ -> CMP - (0x313<<16) | (0xcf<<8) | 0xda, // JNZ -> CMP -/* -bypass ROM check sum -3B7: F6 db f6 -3BA: F6 db f6 -3BC: F9 db f9 -3BD: F6 db f6 -3C1: F6 db f6 -3C7: F8 db f8 -*/ - (0x3C8<<16) | (0xd1<<8) | 0xd2, // JZ -> JMP - -1 -}; - -static const int *mcu_patch_data = NULL; -static unsigned char *mcu_shared_ram; -static WRITE8_HANDLER( cexctsccr_mcu_halt_w ) -{ - const int *p; - - data &= 1; -#if MCU_HACK - exctsccr_mcu_control_w(offset,data); -extern UINT8 *exctsccr_mcu_ram; -#else - cpunum_set_input_line(2, INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE); - if( (p=mcu_patch_data) != NULL) - { - /* patch MCU program */ - while(*p != -1) - { - int a = (*p)>>16; - int c = ((*p)>>8) & 0xff; - int d = (*p)&0xff; - if(mcu_shared_ram[a] == c) - mcu_shared_ram[a] = d; - p++; - } - } -} -#endif - -/*************************************************************************** - - Memory definition(s) - -***************************************************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_ROM -#if MCU_HACK - AM_RANGE(0x6000, 0x63ff) AM_WRITE(exctsccr_mcu_w) AM_READ(MRA8_RAM) AM_BASE(&exctsccr_mcu_ram) /* Alpha mcu (protection) */ -#else - AM_RANGE(0x6000, 0x63ff) AM_RAM AM_SHARE(1) AM_BASE(&mcu_shared_ram) -#endif - AM_RANGE(0x7c00, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0x83ff) AM_WRITE(exctsccr_videoram_w) AM_READ(MRA8_RAM) AM_BASE(&videoram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(exctsccr_colorram_w) AM_READ(MRA8_RAM) AM_BASE(&colorram) - AM_RANGE(0x8800, 0x8bff) AM_WRITE(MWA8_RAM) AM_READ(MRA8_RAM) AM_BASE(&spriteram_2) /* ??? */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_NOP) AM_READ(input_port_0_r) - AM_RANGE(0xa001, 0xa001) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0xa002, 0xa002) AM_WRITE(exctsccr_gfx_bank_w) - AM_RANGE(0xa003, 0xa003) AM_WRITE(exctsccr_flipscreen_w) /* Cocktail mode ( 0xff = flip screen, 0x00 = normal ) */ - /* 0xa006 MCU control */ - AM_RANGE(0xa006, 0xa006) AM_WRITE(cexctsccr_mcu_halt_w) - AM_RANGE(0xa007, 0xa007) AM_WRITE(MWA8_NOP) /* This is also MCU control, but i dont need it */ - AM_RANGE(0xa040, 0xa06f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) /* Sprite pos */ - AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_w) - AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(watchdog_reset_w) - - AM_RANGE(0xa040, 0xa040) AM_READ(input_port_1_r) - AM_RANGE(0xa080, 0xa080) AM_READ(input_port_3_r) - AM_RANGE(0xa0c0, 0xa0c0) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x8fff) AM_ROM - AM_RANGE(0xa000, 0xa7ff) AM_RAM - AM_RANGE(0xc008, 0xc009) AM_WRITE(exctsccr_DAC_data_w) - AM_RANGE(0xc00c, 0xc00c) AM_WRITE(soundlatch_w) /* used to clear the latch */ - AM_RANGE(0xc00d, 0xc00d) AM_READ(soundlatch_r) - AM_RANGE(0xc00f, 0xc00f) AM_WRITE(MWA8_NOP) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x82, 0x82) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x83, 0x83) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x86, 0x86) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x87, 0x87) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x8a, 0x8a) AM_WRITE(AY8910_write_port_2_w) - AM_RANGE(0x8b, 0x8b) AM_WRITE(AY8910_control_port_2_w) - AM_RANGE(0x8e, 0x8e) AM_WRITE(AY8910_write_port_3_w) - AM_RANGE(0x8f, 0x8f) AM_WRITE(AY8910_control_port_3_w) -ADDRESS_MAP_END - -/* Bootleg */ -static ADDRESS_MAP_START( bl_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8400, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8fff) AM_READ(MRA8_RAM) /* ??? */ - AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) - AM_RANGE(0xa040, 0xa040) AM_READ(input_port_1_r) - AM_RANGE(0xa080, 0xa080) AM_READ(input_port_3_r) - AM_RANGE(0xa0c0, 0xa0c0) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bl_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7000, 0x7000) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x7001, 0x7001) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(exctsccr_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(exctsccr_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram_2) /* ??? */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0xa001, 0xa001) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0xa002, 0xa002) AM_WRITE(exctsccr_gfx_bank_w) /* ??? */ - AM_RANGE(0xa003, 0xa003) AM_WRITE(exctsccr_flipscreen_w) /* Cocktail mode ( 0xff = flip screen, 0x00 = normal ) */ - AM_RANGE(0xa006, 0xa006) AM_WRITE(MWA8_NOP) /* no MCU, but some leftover code still writes here */ - AM_RANGE(0xa007, 0xa007) AM_WRITE(MWA8_NOP) /* no MCU, but some leftover code still writes here */ - AM_RANGE(0xa040, 0xa06f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) /* Sprite Pos */ - AM_RANGE(0xa080, 0xa080) AM_WRITE(soundlatch_w) - AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) - AM_RANGE(0xe000, 0xe3ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8000) AM_WRITE(MWA8_NOP) /* 0 = DAC sound off, 1 = DAC sound on */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(soundlatch_w) /* used to clear the latch */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(exctsccr_DAC_data_w) - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE(1) /* main CPU shared RAM */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input port(s) - -***************************************************************************/ - -INPUT_PORTS_START( exctsccr ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, "A 1C/1C B 3C/1C" ) - PORT_DIPSETTING( 0x01, "A 1C/2C B 1C/4C" ) - PORT_DIPSETTING( 0x00, "A 1C/3C B 1C/6C" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x60, 0x00, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x20, "1 Min." ) - PORT_DIPSETTING( 0x00, "2 Min." ) - PORT_DIPSETTING( 0x60, "3 Min." ) - PORT_DIPSETTING( 0x40, "4 Min." ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Has to be 0 */ -INPUT_PORTS_END - -/*************************************************************************** - - Graphic(s) decoding - -***************************************************************************/ - -static const gfx_layout charlayout1 = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 3, /* 3 bits per pixel */ - { 0x4000*8+4, 0, 4 }, /* plane offset */ - { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout charlayout2 = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 3, /* 3 bits per pixel */ - { 0x2000*8, 0, 4 }, /* plane offset */ - { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout spritelayout1 = -{ - 16,16, /* 16*16 sprites */ - 64, /* 64 sprites */ - 3, /* 3 bits per pixel */ - { 0x4000*8+4, 0, 4 }, /* plane offset */ - { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 }, - { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, - 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 }, - 64*8 /* every sprite takes 64 bytes */ -}; - -static const gfx_layout spritelayout2 = -{ - 16,16, /* 16*16 sprites */ - 64, /* 64 sprites */ - 3, /* 3 bits per pixel */ - { 0x2000*8, 0, 4 }, /* plane offset */ - { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 }, - { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, - 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 }, - 64*8 /* every sprite takes 64 bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 64, /* 64 sprites */ - 3, /* 2 bits per pixel */ - { 0x1000*8+4, 0, 4 }, /* plane offset */ - { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 }, - { 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, - 32 * 8, 33 * 8, 34 * 8, 35 * 8, 36 * 8, 37 * 8, 38 * 8, 39 * 8 }, - 64*8 /* every sprite takes 64 bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout1, 0, 32 }, /* chars */ - { REGION_GFX1, 0x2000, &charlayout2, 0, 32 }, /* chars */ - { REGION_GFX1, 0x1000, &spritelayout1, 16*8, 32 }, /* sprites */ - { REGION_GFX1, 0x3000, &spritelayout2, 16*8, 32 }, /* sprites */ - { REGION_GFX2, 0x0000, &spritelayout, 16*8, 32 }, /* sprites */ - { -1 } /* end of array */ -}; - - -/*************************************************************************** - - Machine driver(s) - -***************************************************************************/ - -static MACHINE_DRIVER_START( exctsccr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4.0 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4123456) /* ??? with 4 MHz, nested NMIs might happen */ - MDRV_CPU_PROGRAM_MAP(sub_map,0) - MDRV_CPU_IO_MAP(0,sound_writeport) - MDRV_CPU_PERIODIC_INT(nmi_line_pulse,TIME_IN_HZ(4000)) /* 4 kHz, updates the dac */ - - /* MCU */ -#if MCU_HACK -#else - MDRV_CPU_ADD(ALPHA8301, 4000000/8) - MDRV_CPU_PROGRAM_MAP(mcu_map,0) -#endif - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(64*8) - - MDRV_PALETTE_INIT(exctsccr) - MDRV_VIDEO_START(exctsccr) - MDRV_VIDEO_UPDATE(exctsccr) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/* Bootleg */ -static MACHINE_DRIVER_START( exctsccb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4.0 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(bl_readmem,bl_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ? */ - MDRV_CPU_PROGRAM_MAP(bl_sound_readmem,bl_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(64*8) - - MDRV_PALETTE_INIT(exctsccr) - MDRV_VIDEO_START(exctsccr) - MDRV_VIDEO_UPDATE(exctsccr) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( exctsccr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1_g10.bin", 0x0000, 0x2000, CRC(aa68df66) SHA1(f10cac5a4c5aad1e1eb8835174dc8d517bb2921a) ) - ROM_LOAD( "2_h10.bin", 0x2000, 0x2000, CRC(2d8f8326) SHA1(8809e7b081fa2a1966cb51ac969fd7b468d35be0) ) - ROM_LOAD( "3_j10.bin", 0x4000, 0x2000, CRC(dce4a04d) SHA1(9c015e4597ec8921bea213d9841fc69c776a4e6d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "0_h6.bin", 0x0000, 0x2000, CRC(3babbd6b) SHA1(b81bd47c4449f4f21f2d55d01eb9cb6db10664c7) ) - ROM_LOAD( "9_f6.bin", 0x2000, 0x2000, CRC(639998f5) SHA1(c4ff5e5e75d53dea38449f323186d08d5b57bf90) ) - ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) - ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) - ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "4_a5.bin", 0x0000, 0x2000, CRC(c342229b) SHA1(a989d6c12521c77882a7e17d4d80afe7eae05906) ) - ROM_LOAD( "5_b5.bin", 0x2000, 0x2000, CRC(35f4f8c9) SHA1(cdf5bbfea9abdd338938e5f4499d2d71ce3c6237) ) - ROM_LOAD( "6_c5.bin", 0x4000, 0x2000, CRC(eda40e32) SHA1(6c08fd4f4fb35fd354d02e04548e960c545f6a88) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2_k5.bin", 0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) ) - ROM_LOAD( "3_l5.bin", 0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ - ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ - ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ -ROM_END - -ROM_START( exctscca ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1_g10.bin", 0x0000, 0x2000, CRC(aa68df66) SHA1(f10cac5a4c5aad1e1eb8835174dc8d517bb2921a) ) - ROM_LOAD( "2_h10.bin", 0x2000, 0x2000, CRC(2d8f8326) SHA1(8809e7b081fa2a1966cb51ac969fd7b468d35be0) ) - ROM_LOAD( "3_j10.bin", 0x4000, 0x2000, CRC(dce4a04d) SHA1(9c015e4597ec8921bea213d9841fc69c776a4e6d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "exctsccc.000", 0x0000, 0x2000, CRC(642fc42f) SHA1(cfc849d18e347e3e23fc31c1ce7f2580d5d9b2b0) ) - ROM_LOAD( "exctsccc.009", 0x2000, 0x2000, CRC(d88b3236) SHA1(80f083fb15243e9e68978677caed8aee8e3109a0) ) - ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) - ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) - ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "4_a5.bin", 0x0000, 0x2000, CRC(c342229b) SHA1(a989d6c12521c77882a7e17d4d80afe7eae05906) ) - ROM_LOAD( "5_b5.bin", 0x2000, 0x2000, CRC(35f4f8c9) SHA1(cdf5bbfea9abdd338938e5f4499d2d71ce3c6237) ) - ROM_LOAD( "6_c5.bin", 0x4000, 0x2000, CRC(eda40e32) SHA1(6c08fd4f4fb35fd354d02e04548e960c545f6a88) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2_k5.bin", 0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) ) - ROM_LOAD( "3_l5.bin", 0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ - ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ - ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ -ROM_END - -/* Bootleg */ -ROM_START( exctsccb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "es-1.e2", 0x0000, 0x2000, CRC(997c6a82) SHA1(60fe27a12eedd22c775b7e65c5ba692cfcf5ac74) ) - ROM_LOAD( "es-2.g2", 0x2000, 0x2000, CRC(5c66e792) SHA1(f7a7f32806965fa926261217cee3159ccd198d49) ) - ROM_LOAD( "es-3.h2", 0x4000, 0x2000, CRC(e0d504c0) SHA1(d9a9f37b3a44a05a3f3389aa9617c419a2cee661) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "es-a.k2", 0x0000, 0x2000, CRC(99e87b78) SHA1(f12006ff3f6f3c706e06288c97a1446141373432) ) - ROM_LOAD( "es-b.l2", 0x2000, 0x2000, CRC(8b3db794) SHA1(dbfed2357c7631bfca6bbd63a23617bc3abf6ca3) ) - ROM_LOAD( "es-c.m2", 0x4000, 0x2000, CRC(7bed2f81) SHA1(cbbb0480519cc04a99e8983228b18c9e49a9985d) ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - /* I'm using the ROMs from exctscc2, national flags are wrong (ITA replaces USA) */ - ROM_LOAD( "vr.5a", 0x0000, 0x2000, BAD_DUMP CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) ) - ROM_LOAD( "vr.5b", 0x2000, 0x2000, BAD_DUMP CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) ) - ROM_LOAD( "vr.5c", 0x4000, 0x2000, BAD_DUMP CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vr.5k", 0x0000, 0x1000, BAD_DUMP CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) ) - ROM_LOAD( "vr.5l", 0x1000, 0x1000, BAD_DUMP CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ - ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ - ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ -ROM_END - -ROM_START( exctscc2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "vr.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) ) - ROM_LOAD( "vr.3k", 0x2000, 0x2000, CRC(de36ba00) SHA1(0a0d92e710b8c749f145571bc8a204609456d19d) ) - ROM_LOAD( "vr.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "vr.7d", 0x0000, 0x2000, CRC(2c675a43) SHA1(aa0a8dbcae955e3da92c435202f2a1ed238c377e) ) - ROM_LOAD( "vr.7e", 0x2000, 0x2000, CRC(e571873d) SHA1(2dfff24f5dac86e92612f40cf3642005c7f36ad3) ) - ROM_LOAD( "8_d6.bin", 0x4000, 0x2000, CRC(88651ee1) SHA1(2052e1b3f9784439369f464e31f4a2b0d1bb0565) ) /* vr.7f */ - ROM_LOAD( "7_c6.bin", 0x6000, 0x2000, CRC(6d51521e) SHA1(2809bd2e61f40dcd31d43c62520982bdcfb0a865) ) /* vr.7h */ - ROM_LOAD( "1_a6.bin", 0x8000, 0x1000, CRC(20f2207e) SHA1(b1ed2237d0bd50ddbe593fd2fbff9f1d67c1eb11) ) /* vr.7k */ - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "vr.5a", 0x0000, 0x2000, CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) ) - ROM_LOAD( "vr.5b", 0x2000, 0x2000, CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) ) - ROM_LOAD( "vr.5c", 0x4000, 0x2000, CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vr.5k", 0x0000, 0x1000, CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) ) - ROM_LOAD( "vr.5l", 0x1000, 0x1000, CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom1.e1", 0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */ - ROM_LOAD( "prom2.8r", 0x0020, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */ - ROM_LOAD( "prom3.k5", 0x0120, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */ -ROM_END - -/* The games need a different MCU control */ - -DRIVER_INIT( exctsccr ) -{ -#if MCU_HACK - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa006, 0xa006, 0, 0, exctsccr_mcu_control_w); -#else - mcu_patch_data = exctsccr_mcu_patch_data; -#endif -} - -DRIVER_INIT( exctscc2 ) -{ -#if MCU_HACK - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa006, 0xa006, 0, 0, exctscc2_mcu_control_w); -#else - mcu_patch_data = exctscc2_mcu_patch_data; -#endif -} - -GAME( 1983, exctsccr, 0, exctsccr, exctsccr, exctsccr, ROT90, "Alpha Denshi Co.", "Exciting Soccer", 0 ) -GAME( 1983, exctscca, exctsccr, exctsccr, exctsccr, exctsccr, ROT90, "Alpha Denshi Co.", "Exciting Soccer (alternate music)", 0 ) -GAME( 1983, exctsccb, exctsccr, exctsccb, exctsccr, 0, ROT90, "bootleg", "Exciting Soccer (bootleg)", 0 ) -GAME( 1984, exctscc2, 0 , exctsccr, exctsccr, exctscc2, ROT90, "Alpha Denshi Co.", "Exciting Soccer II", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/exidy.c b/src/drivers/exidy.c deleted file mode 100644 index 7a428e607..000000000 --- a/src/drivers/exidy.c +++ /dev/null @@ -1,1478 +0,0 @@ -/*************************************************************************** - - Exidy 6502 hardware - - Games supported: - * Side Track - * Targ - * Spectar - * Mouse Trap - * Venture - * Teeter Torture (prototype) - * Pepper 2 - * Hard Hat - * Fax - - Known bugs: - * none at this time - -**************************************************************************** - - Exidy memory map - - 0000-00FF R/W Zero Page RAM - 0100-01FF R/W Stack RAM - 0200-03FF R/W Scratchpad RAM - 0800-3FFF R Program ROM (Targ, Spectar only) - 1A00 R PX3 (Player 2 inputs) (Fax only) - bit 4 D - bit 5 C - bit 6 B - bit 7 A - 1C00 R PX2 (Player 1 inputs) (Fax only) - bit 0 2 player start - bit 1 1 player start - bit 4 D - bit 5 C - bit 6 B - bit 7 A - 2000-3FFF R Banked question ROM (Fax only) - 4000-43FF R/W Screen RAM - 4800-4FFF R/W Character Generator RAM (except Pepper II and Fax) - 5000 W Motion Object 1 Horizontal Position Latch (sprite 1 X) - 5040 W Motion Object 1 Vertical Position Latch (sprite 1 Y) - 5080 W Motion Object 2 Horizontal Position Latch (sprite 2 X) - 50C0 W Motion Object 2 Vertical Position Latch (sprite 2 Y) - 5100 R Option Dipswitch Port - bit 0 coin 2 (NOT inverted) (must activate together with $5103 bit 5) - bit 1-2 bonus - bit 3-4 coins per play - bit 5-6 lives - bit 7 US/UK coins - 5100 W Motion Objects Image Latch - Sprite number bits 0-3 Sprite #1 4-7 Sprite #2 - 5101 R Control Inputs Port - bit 0 start 1 - bit 1 start 2 - bit 2 right - bit 3 left - bit 5 up - bit 6 down - bit 7 coin 1 (must activate together with $5103 bit 6) - 5101 W Output Control Latch (not used in PEPPER II upright) - bit 7 Enable sprite #1 - bit 6 Enable sprite #2 - 5103 R Interrupt Condition Latch - bit 0 LNG0 - supposedly a language DIP switch - bit 1 LNG1 - supposedly a language DIP switch - bit 2 different for each game, but generally a collision bit - bit 3 TABLE - supposedly a cocktail table DIP switch - bit 4 different for each game, but generally a collision bit - bit 5 coin 2 (must activate together with $5100 bit 0) - bit 6 coin 1 (must activate together with $5101 bit 7) - bit 7 L256 - VBlank? - 5213 R IN2 (Mouse Trap) - bit 3 blue button - bit 2 free play - bit 1 red button - bit 0 yellow button - 52XX R/W Audio/Color Board Communications - 6000-6FFF R/W Character Generator RAM (Pepper II, Fax only) - 8000-FFF9 R Program memory space - FFFA-FFFF R Interrupt and Reset Vectors - - Exidy Sound Board: - 0000-07FF R/W RAM (mirrored every 0x7f) - 0800-0FFF R/W 6532 Timer - 1000-17FF R/W 6520 PIA - 1800-1FFF R/W 8253 Timer - 2000-27FF bit 0 Channel 1 Filter 1 enable - bit 1 Channel 1 Filter 2 enable - bit 2 Channel 2 Filter 1 enable - bit 3 Channel 2 Filter 2 enable - bit 4 Channel 3 Filter 1 enable - bit 5 Channel 3 Filter 2 enable - 2800-2FFF 6840 Timer - 3000 Bit 0..1 Noise select - 3001 Bit 0..2 Channel 1 Amplitude - 3002 Bit 0..2 Channel 2 Amplitude - 3003 Bit 0..2 Channel 3 Amplitude - 5800-7FFF ROM - - Targ: - 5200 Sound board control - bit 0 Music - bit 1 Shoot - bit 2 unused - bit 3 Swarn - bit 4 Sspec - bit 5 crash - bit 6 long - bit 7 game - - 5201 Sound board control - bit 0 note - bit 1 upper - - MouseTrap Digital Sound: - 0000-3FFF ROM - - IO: - A7 = 0: R Communication from sound processor - A6 = 0: R CVSD Clock State - A5 = 0: W Busy to sound processor - A4 = 0: W Data to CVSD - -***************************************************************************/ - -#include "driver.h" -#include "machine/6821pia.h" -#include "exidy.h" -#include "sound/custom.h" -#include "sound/samples.h" -#include "sound/hc55516.h" - - -static UINT8 last_dial; - - -/************************************* - * - * Special Teeter Torture input - * - *************************************/ - -static READ8_HANDLER( teetert_input_r ) -{ - UINT8 result = readinputportbytag("IN0") & ~0x44; - UINT8 dial = readinputportbytag("DIAL"); - - if (dial != last_dial) - { - result |= 0x40; - if (((dial - last_dial) & 0xff) < 0x80) - { - result |= 0x04; - last_dial++; - } - else - last_dial--; - } - - return result; -} - - - -/************************************* - * - * Bankswitcher - * - *************************************/ - -static WRITE8_HANDLER( fax_bank_select_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - memory_set_bankptr(1, &RAM[0x10000 + (0x2000 * (data & 0x1F))]); - if ((data & 0x1F) > 0x17) - logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1F); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( common_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_READWRITE(videoram_r, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x5000, 0x503f) AM_WRITE(exidy_sprite1_xpos_w) - AM_RANGE(0x5040, 0x507f) AM_WRITE(exidy_sprite1_ypos_w) - AM_RANGE(0x5080, 0x50bf) AM_WRITE(exidy_sprite2_xpos_w) - AM_RANGE(0x50c0, 0x50ff) AM_WRITE(exidy_sprite2_ypos_w) - AM_RANGE(0x5100, 0x5100) AM_MIRROR(0xfc) AM_READ(port_tag_to_handler8("DSW")) - AM_RANGE(0x5101, 0x5101) AM_MIRROR(0xfc) AM_READ(port_tag_to_handler8("IN0")) - AM_RANGE(0x5100, 0x5100) AM_MIRROR(0xfc) AM_WRITE(exidy_spriteno_w) - AM_RANGE(0x5101, 0x5101) AM_MIRROR(0xfc) AM_WRITE(exidy_sprite_enable_w) - AM_RANGE(0x5103, 0x5103) AM_MIRROR(0xfc) AM_READ(exidy_interrupt_r) - AM_RANGE(0x5210, 0x5212) AM_WRITE(exidy_color_w) - AM_RANGE(0x5213, 0x5213) AM_READ(port_tag_to_handler8("IN2")) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( targ_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0800, 0x3fff) AM_ROM - AM_RANGE(0x4800, 0x4fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram) - AM_RANGE(0x5200, 0x5201) AM_WRITE(targ_sh_w) - AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x3f00) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( venture_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x4800, 0x4fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram) - AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( pepper2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0x6000, 0x6fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( fax_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0400, 0x07ff) AM_RAM - AM_RANGE(0x1a00, 0x1a00) AM_READ(port_tag_to_handler8("IN4")) - AM_RANGE(0x1c00, 0x1c00) AM_READ(port_tag_to_handler8("IN3")) - AM_RANGE(0x2000, 0x2000) AM_WRITE(fax_bank_select_w) - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1) - AM_RANGE(0x5200, 0x520f) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0x5213, 0x5217) AM_WRITE(MWA8_NOP) /* empty control lines on color/sound board */ - AM_RANGE(0x6000, 0x6fff) AM_READWRITE(MRA8_RAM, exidy_characterram_w) AM_BASE(&exidy_characterram) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x780) AM_RAM - AM_RANGE(0x0800, 0x0fff) AM_READWRITE(exidy_shriot_r, exidy_shriot_w) - AM_RANGE(0x1000, 0x17ff) AM_READWRITE(pia_1_r, pia_1_w) - AM_RANGE(0x1800, 0x1fff) AM_READWRITE(exidy_sh8253_r, exidy_sh8253_w) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(exidy_sound_filter_w) - AM_RANGE(0x2800, 0x2fff) AM_READWRITE(exidy_sh6840_r, exidy_sh6840_w) - AM_RANGE(0x3000, 0x37ff) AM_WRITE(exidy_sfxctrl_w) - AM_RANGE(0x5800, 0x7fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( cvsd_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - AM_RANGE(0x0000, 0x3fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( cvsd_iomap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0xff) AM_READWRITE(mtrap_voiceio_r, mtrap_voiceio_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( sidetrac ) - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) -/* 0x0c 2C_1C */ - PORT_DIPNAME( 0x10, 0x10, "Top Score Award" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( targ ) - PORT_START_TAG("DSW") - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) /* upright/cocktail switch? */ - PORT_DIPNAME( 0x02, 0x00, "Pence Coinage" ) - PORT_DIPSETTING( 0x00, "10P/1P, 50P Coin/6P" ) - PORT_DIPSETTING( 0x02, "2x10P/1P, 50P Coin/3P" ) - PORT_DIPNAME( 0x04, 0x00, "Top Score Award" ) - PORT_DIPSETTING( 0x00, "Credit" ) - PORT_DIPSETTING( 0x04, "Extended Play" ) - PORT_DIPNAME( 0x18, 0x08, "Quarter Coinage" ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, "1C/1C (no display)" ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x80, 0x80, "Currency" ) - PORT_DIPSETTING( 0x80, "Quarters" ) - PORT_DIPSETTING( 0x00, "Pence" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* identical to Targ, the only difference is the additional Language dip switch */ -INPUT_PORTS_START( spectar ) - PORT_INCLUDE(targ) - - PORT_MODIFY("INTSOURCE") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_SPECIAL ) -INPUT_PORTS_END - -INPUT_PORTS_START( rallys ) - PORT_INCLUDE(spectar) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x00, "2C/1P, 50P Coin/3P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x01, "1C/1P, 50P Coin/6P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x02, "1C/2P, 50P Coin/12P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x03, "1C/3P, 50P Coin/18P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPNAME( 0x04, 0x00, "Top Score Award" ) - PORT_DIPSETTING( 0x00, "Credit" ) - PORT_DIPSETTING( 0x04, "Extended Play" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x20, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x60, "5" ) - PORT_DIPNAME( 0x80, 0x00, "Coin Mode" ) - PORT_DIPSETTING( 0x00, "Mode 1" ) - PORT_DIPSETTING( 0x80, "Mode 2" ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_MODIFY("INTSOURCE") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( phantoma ) - PORT_INCLUDE(rallys) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSW", 0x80, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x00, "2F/1P, 5F Coin/3P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x01, "1F/1P, 5F Coin/6P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x02, "1F/2P, 5F Coin/12P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x03, "1F/3P, 5F Coin/18P" ) PORT_CONDITION("DSW", 0x80, PORTCOND_NOTEQUALS, 0x00) -INPUT_PORTS_END - - -INPUT_PORTS_START( mtrap ) - PORT_START_TAG("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "30000" ) - PORT_DIPSETTING( 0x04, "40000" ) - PORT_DIPSETTING( 0x02, "50000" ) - PORT_DIPSETTING( 0x00, "60000" ) - PORT_DIPNAME( 0x98, 0x98, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, "Coin A 2C/1C Coin B 1C/3C" ) - PORT_DIPSETTING( 0x98, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "Coin A 1C/1C Coin B 1C/4C" ) - PORT_DIPSETTING( 0x18, "Coin A 1C/1C Coin B 1C/5C" ) - PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, "Coin A 1C/3C Coin B 2C/7C" ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Dog Button") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") -/* - The schematics claim these exist, but there's nothing in - the ROMs to support that claim (as far as I can see): - - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) -*/ - - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow Button") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Red Button") - PORT_BIT( 0x04, 0x04, IPT_DIPSWITCH_NAME ) PORT_NAME( DEF_STR( Free_Play )) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Blue Button") - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( venture ) - PORT_START_TAG("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x02, "30000" ) - PORT_DIPSETTING( 0x04, "40000" ) - PORT_DIPSETTING( 0x06, "50000" ) - PORT_DIPNAME( 0x98, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x88, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x98, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, "Pence: A 2C/1C B 1C/3C" ) - PORT_DIPSETTING( 0x18, "Pence: A 1C/1C B 1C/6C" ) - /*0x10 same as 0x00 */ - /*0x90 same as 0x80 */ - PORT_DIPNAME( 0x60, 0x20, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x60, "5" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") -/* - The schematics claim these exist, but there's nothing in - the ROMs to support that claim (as far as I can see): - - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) -*/ - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( teetert ) - PORT_START_TAG("DSW") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "20000" ) - PORT_DIPSETTING( 0x04, "30000" ) - PORT_DIPSETTING( 0x02, "40000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x98, 0x98, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, "Pence: A 2C/1C B 1C/3C" ) - PORT_DIPSETTING( 0x98, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "Pence: A 1C/1C B 1C/4C" ) - PORT_DIPSETTING( 0x18, "Pence: A 1C/1C B 1C/5C" ) - PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, "1C/3C, 2C/7C" ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x60, "2" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) /* direction */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) /* movement */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") -/* - The schematics claim these exist, but there's nothing in - the ROMs to support that claim (as far as I can see): - - PORT_DIPNAME( 0x03, 0x00, "Language" ) - PORT_DIPSETTING( 0x00, "English" ) - PORT_DIPSETTING( 0x01, "French" ) - PORT_DIPSETTING( 0x02, "German" ) - PORT_DIPSETTING( 0x03, "Spanish" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) -*/ - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DIAL") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(1) PORT_KEYDELTA(150) PORT_REVERSE -INPUT_PORTS_END - - -INPUT_PORTS_START( pepper2 ) - PORT_START_TAG("DSW") - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x06, "40000" ) - PORT_DIPSETTING( 0x04, "50000" ) - PORT_DIPSETTING( 0x02, "60000" ) - PORT_DIPSETTING( 0x00, "70000" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x98, 0x98, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, "Coin A 2C/1C Coin B 1C/3C" ) - PORT_DIPSETTING( 0x98, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "Coin A 1C/1C Coin B 1C/4C" ) - PORT_DIPSETTING( 0x18, "Coin A 1C/1C Coin B 1C/5C" ) - PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, "1 Coin/3 Credits 2C/7C" ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - - PORT_START_TAG("IN0") - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") -/* - The schematics claim these exist, but there's nothing in - the ROMs to support that claim (as far as I can see): - - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) -*/ - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( fax ) - PORT_START_TAG("DSW") - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_DIPNAME( 0x06, 0x06, "Bonus Time" ) - PORT_DIPSETTING( 0x06, "8000" ) - PORT_DIPSETTING( 0x04, "13000" ) - PORT_DIPSETTING( 0x02, "18000" ) - PORT_DIPSETTING( 0x00, "25000" ) - PORT_DIPNAME( 0x60, 0x60, "Game/Bonus Times" ) - PORT_DIPSETTING( 0x60, ":32/:24" ) - PORT_DIPSETTING( 0x40, ":48/:36" ) - PORT_DIPSETTING( 0x20, "1:04/:48" ) - PORT_DIPSETTING( 0x00, "1:12/1:04" ) - PORT_DIPNAME( 0x98, 0x98, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, "Coin A 2C/1C Coin B 1C/3C" ) - PORT_DIPSETTING( 0x98, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "Coin A 1C/1C Coin B 1C/4C" ) - PORT_DIPSETTING( 0x18, "Coin A 1C/1C Coin B 1C/5C" ) - PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, "1 Coin/3 Credits 2C/7C" ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - - PORT_START_TAG("IN0") - PORT_BIT ( 0x7f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("INTSOURCE") -/* - The schematics claim these exist, but there's nothing in - the ROMs to support that claim (as far as I can see): - - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Spanish ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) -*/ - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout charlayout_1bpp = -{ - 8,8, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_layout charlayout_2bpp = -{ - 8,8, - 256, - 2, - { 0, 256*8*8 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7}, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8}, - 8*32 -}; - - -static const gfx_decode gfxdecodeinfo_1bpp[] = -{ - { REGION_CPU1, 0x4800, &charlayout_1bpp, 0, 4 }, /* the game dynamically modifies this */ - { REGION_GFX1, 0x0000, &spritelayout, 8, 2 }, - { -1 } -}; - - -static const gfx_decode gfxdecodeinfo_2bpp[] = -{ - { REGION_CPU1, 0x6000, &charlayout_2bpp, 0, 4 }, /* the game dynamically modifies this */ - { REGION_GFX1, 0x0000, &spritelayout, 16, 2 }, - { -1 } -}; - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static const char *targ_sample_names[] = -{ - "*targ", - "expl.wav", - "shot.wav", - "sexpl.wav", - "spslow.wav", - "spfast.wav", - 0 /* end of array */ -}; - - -static struct Samplesinterface targ_samples_interface = -{ - 4, /* 3 Channels */ - targ_sample_names, - targ_sh_start -}; - - -static struct CustomSound_interface exidy_custom_interface = -{ - exidy_sh_start -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( targ ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 11289000/16) - MDRV_CPU_PROGRAM_MAP(common_map,targ_map) - MDRV_CPU_VBLANK_INT(exidy_vblank_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_1bpp) - MDRV_PALETTE_LENGTH(PALETTE_LEN) - MDRV_COLORTABLE_LENGTH(COLORTABLE_LEN) - - MDRV_PALETTE_INIT(exidy) - MDRV_VIDEO_START(exidy) - MDRV_VIDEO_EOF(exidy) - MDRV_VIDEO_UPDATE(exidy) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("sample", SAMPLES, 0) - MDRV_SOUND_CONFIG(targ_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("dac", DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( venture ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(targ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(common_map,venture_map) - - MDRV_CPU_ADD(M6502, 3579545/4) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - - MDRV_INTERLEAVE(10) - - /* sound hardware */ - MDRV_SOUND_REPLACE("sample", CUSTOM, 0) - MDRV_SOUND_CONFIG(exidy_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_REMOVE("dac") -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( teetert ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(venture) - MDRV_CPU_MODIFY("main") - MDRV_CPU_VBLANK_INT(teetert_vblank_interrupt,10) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mtrap ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(venture) - - MDRV_CPU_ADD(Z80, 3579545/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(cvsd_map,0) - MDRV_CPU_IO_MAP(cvsd_iomap,0) - - MDRV_INTERLEAVE(32) - - /* sound hardware */ - MDRV_SOUND_ADD(HC55516, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pepper2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(venture) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(common_map,pepper2_map) - - /* video hardware */ - MDRV_GFXDECODE(gfxdecodeinfo_2bpp) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( fax ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(pepper2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(common_map,fax_map) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( sidetrac ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "stl8a-1", 0x2800, 0x0800, CRC(e41750ff) SHA1(3868a0d7e34a5118b39b31cff9e4fc839df541ff) ) - ROM_LOAD( "stl7a-2", 0x3000, 0x0800, CRC(57fb28dc) SHA1(6addd633d655d6a56b3e509d18e5f7c0ab2d0fbb) ) - ROM_LOAD( "stl6a-2", 0x3800, 0x0800, CRC(4226d469) SHA1(fd18b732b66082988b01e04adc2b1e5dae410c98) ) - ROM_LOAD( "stl9c-1", 0x4800, 0x0400, CRC(08710a84) SHA1(4bff254a14af7c968656ccc85277d31ab5a8f0c4) ) /* prom instead of ram chr gen*/ - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "stl11d", 0x0000, 0x0200, CRC(3bd1acc1) SHA1(06f900cb8f56cd4215c5fbf58a852426d390e0c1) ) -ROM_END - - -ROM_START( targ ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "hrl10a-1", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) ) - ROM_LOAD( "hrl9a-1", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) ) - ROM_LOAD( "hrl8a-1", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) ) - ROM_LOAD( "hrl7a-1", 0x3000, 0x0800, CRC(e2f37f93) SHA1(b66743c296d3d4caba3bcbe6aa68cd6edd414816) ) - ROM_LOAD( "hrl6a-1", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) - - ROM_REGION( 0x0160, REGION_PROMS, 0 ) - ROM_LOAD( "hrl5c-1", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) ) /* address decoder */ - ROM_LOAD( "stl6d-1", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) /* unknown */ - ROM_LOAD( "hra2b-1", 0x0120, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) ) /* unknown */ - ROM_LOAD( "hrl14h-1", 0x0140, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) /* unknown */ -ROM_END - -ROM_START( targc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ctl.10a", 0x1800, 0x0800, CRC(058b3983) SHA1(8079667613c9273e95131c3c68cd92ce34c18148) ) - ROM_LOAD( "ctl.9a1", 0x2000, 0x0800, CRC(3ac44b6b) SHA1(8261ee7ee1c3cb05b2549464086bf6df09685743) ) - ROM_LOAD( "ctl.8a1", 0x2800, 0x0800, CRC(5c470021) SHA1(3638fc6827640857848cd649f10c1493025014de) ) - ROM_LOAD( "ctl.7a1", 0x3000, 0x0800, CRC(c774fd9b) SHA1(46272a64ad5cda0ff5ef3e9eeedefc555100a71a) ) - ROM_LOAD( "ctl.6a1", 0x3800, 0x0800, CRC(3d020439) SHA1(ebde4c851c9ecc310f110c7643a80275d97dc02c) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) -ROM_END - - -ROM_START( spectar ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "spl11a-3", 0x1000, 0x0800, CRC(08880aff) SHA1(3becef348245ff4c8b0aae4a14751ab740b7d160) ) - ROM_LOAD( "spl10a-2", 0x1800, 0x0800, CRC(fca667c1) SHA1(168426f9e87c002d2673c0230fceac4d0831d594) ) - ROM_LOAD( "spl9a-3", 0x2000, 0x0800, CRC(9d4ce8ba) SHA1(2ef45c225fe704e49d10247c3eba1ef14141b3b7) ) - ROM_LOAD( "spl8a-2", 0x2800, 0x0800, CRC(cfacbadf) SHA1(77b27cf6f35e8e8dd2fd4f31bba2a96f3076163e) ) - ROM_LOAD( "spl7a-2", 0x3000, 0x0800, CRC(4c4741ff) SHA1(8de72613a385095253bb9e6da76493caec3115e4) ) - ROM_LOAD( "spl6a-2", 0x3800, 0x0800, CRC(0cb46b25) SHA1(65c5d2cc8df67225339dc8781dd29d4b57ded70c) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hrl11d-2", 0x0000, 0x0400, CRC(c55b645d) SHA1(0c18277939d74e3e1281a7f114a34781d30c2baf) ) /* this is actually not used (all FF) */ - ROM_CONTINUE( 0x0000, 0x0400 ) /* overwrite with the real one */ -ROM_END - -ROM_START( spectar1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "spl12a1", 0x0800, 0x0800, CRC(7002efb4) SHA1(fbb19ccd2aee49b78606eadcbef94e842e1be905) ) - ROM_LOAD( "spl11a1", 0x1000, 0x0800, CRC(8eb8526a) SHA1(0c42ee073fc73c89731dec4e3ecfc82c9b8301e9) ) - ROM_LOAD( "spl10a1", 0x1800, 0x0800, CRC(9d169b3d) SHA1(bee9d029df6e2fba24a5ba41a76f1658e9038838) ) - ROM_LOAD( "spl9a1", 0x2000, 0x0800, CRC(40e3eba1) SHA1(197aaed9a6159b6f3e347c0446be9e44733c1341) ) - ROM_LOAD( "spl8a1", 0x2800, 0x0800, CRC(64d8eb84) SHA1(a249c832ea951fddc6699f7ac0b4486e8a5be98e) ) - ROM_LOAD( "spl7a1", 0x3000, 0x0800, CRC(e08b0d8d) SHA1(6ffd6f8fb50c9fc09c38f56da7d6d005b66e78cc) ) - ROM_LOAD( "spl6a1", 0x3800, 0x0800, CRC(f0e4e71a) SHA1(5487a94650c964a7ab07f30aacab0b470dcb3b40) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hrl11d-2", 0x0000, 0x0400, CRC(c55b645d) SHA1(0c18277939d74e3e1281a7f114a34781d30c2baf) ) /* this is actually not used (all FF) */ - ROM_CONTINUE( 0x0000, 0x0400 ) /* overwrite with the real one */ -ROM_END - -ROM_START( rallys ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rallys.01", 0x1000, 0x0400, CRC(a192b22b) SHA1(aaae0b1822f934df30b354f787ffa8848c71b52f) ) - ROM_LOAD( "rallys.02", 0x1400, 0x0400, CRC(19e730aa) SHA1(4f4e87d26c14a9ff2be5b4173c4e5804db551e33) ) - ROM_LOAD( "rallys.03", 0x1800, 0x0400, CRC(2a3e7b69) SHA1(d31a3e6acca87881741e88e70d46a4a0ee59fcf8) ) - ROM_LOAD( "rallys.04", 0x1c00, 0x0400, CRC(6d224696) SHA1(586bc8efdc8ac0a73e4a4300459efaf89021f6f5) ) - ROM_LOAD( "rallys.05", 0x2000, 0x0400, CRC(af943b5e) SHA1(819fa8a6ee78a39cdade49789cd42b4a215f82f0) ) - ROM_LOAD( "rallys.06", 0x2400, 0x0400, CRC(9b3d9e61) SHA1(b183e0844706713eb0a241a6e45c09c53e4077a3) ) - ROM_LOAD( "rallys.07", 0x2800, 0x0400, CRC(8ef8bc67) SHA1(c8d80cc8e89a9bc5d957d648d704e4c66b17932d) ) - ROM_LOAD( "rallys.08", 0x2c00, 0x0400, CRC(243c54f2) SHA1(813b3ecbd5642034b5de0bae96698ed2b036fc7b) ) - ROM_LOAD( "rallys.10", 0x3400, 0x0400, CRC(46f473d2) SHA1(e6a180fdcf2ac13ffab624554ef8aab128e80321) ) - ROM_LOAD( "rallys.09", 0x3c00, 0x0400, CRC(56ce8a94) SHA1(becd31cda58e59267517a39c82ccfa70abdd31c6) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "targ82s.123", 0x0000, 0x0020, CRC(9eb9125c) SHA1(660ad9b2c7c28c3fda4b10c1401c03165d131c61) ) /* unknown */ -ROM_END - -ROM_START( phantoma ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "156_a2", 0x1000, 0x0800, CRC(c5af9d34) SHA1(4c9f9a06cc7f6caf13a79fa8491db17b01b24774) ) - ROM_LOAD( "156_a3", 0x1800, 0x0800, CRC(30121e69) SHA1(1588cfb61eb9aa9598b3ff600cc02b0f1ac622bf) ) - ROM_LOAD( "156_a4", 0x2000, 0x0800, CRC(02d7fb94) SHA1(634e952a6a0d4c1a42692100e1913ecd5ab9faed) ) - ROM_LOAD( "156_a5", 0x2800, 0x0800, CRC(0127bc8d) SHA1(c555507f2662d1b45caf0b696147f70749292930) ) - ROM_LOAD( "156_a1", 0xf800, 0x0800, CRC(26292c0a) SHA1(d4157e261f6247cfafb948d1a9dbf0b02b2b84de) ) - - ROM_REGION( 0x800, REGION_GFX1, 0 ) - ROM_LOAD( "156_d1", 0x0000, 0x0800, CRC(d18e5f14) SHA1(5cd327500e74eca378ad5d0924949f96dd955cf8) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "156_pal", 0x0000, 0x0020, CRC(9fb1daee) SHA1(2ec1189a57c95d7ad820eb12343fcf2c3fb08431) ) -ROM_END - - -ROM_START( mtrap ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mtl11a.bin", 0xa000, 0x1000, CRC(bd6c3eb5) SHA1(248956374222a09caa5b8c8fa842e9286d8e1c5d) ) - ROM_LOAD( "mtl10a.bin", 0xb000, 0x1000, CRC(75b0593e) SHA1(48ce5382905f7c52929a95267d65fd0d3f0dcc92) ) - ROM_LOAD( "mtl9a.bin", 0xc000, 0x1000, CRC(28dd20ff) SHA1(8ac44ec27ac25209c8b49da4c6b423917ed8907e) ) - ROM_LOAD( "mtl8a.bin", 0xd000, 0x1000, CRC(cc09f7a4) SHA1(e806dc0e10b909b61e347f3e28eb024f3b3a9702) ) - ROM_LOAD( "mtl7a.bin", 0xe000, 0x1000, CRC(caafbb6d) SHA1(96823ac4e49f192121c53f70382a20f7c52e290b) ) - ROM_LOAD( "mtl6a.bin", 0xf000, 0x1000, CRC(d85e52ca) SHA1(51296247e365a468fe9458b722bbdbbeeed59fa0) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) - - ROM_REGION( 0x4000, REGION_CPU3, 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) -ROM_END - -ROM_START( mtrap3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mtl-3.11a", 0xa000, 0x1000, CRC(4091be6e) SHA1(a4432f4588915276583f4b2e8db527fd24eb4291) ) - ROM_LOAD( "mtl-3.10a", 0xb000, 0x1000, CRC(38250c2f) SHA1(b70a2a1d423ba90ca873cc43db40422abee07718) ) - ROM_LOAD( "mtl-3.9a", 0xc000, 0x1000, CRC(2eec988e) SHA1(52167dabd672d16d454df746fb2c83c9e4253624) ) - ROM_LOAD( "mtl-3.8a", 0xd000, 0x1000, CRC(744b4b1c) SHA1(94955d0703559d668988cb7045f835f955e5dd8a) ) - ROM_LOAD( "mtl-3.7a", 0xe000, 0x1000, CRC(ea8ec479) SHA1(785557a242d9343c83cdc403b1f726cbea9d230f) ) - ROM_LOAD( "mtl-3.6a", 0xf000, 0x1000, CRC(d72ba72d) SHA1(4c5b311bc7ecfc6133bc09e586635844e2f1d6a9) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) - - ROM_REGION( 0x4000, REGION_CPU3, 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000, 0x1000, CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000, 0x1000, CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000, 0x1000, CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000, 0x1000, CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) -ROM_END - -ROM_START( mtrap4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mta411a.bin", 0xa000, 0x1000, CRC(2879cb8d) SHA1(738bd3cd968fd733adcfe0fb5efdb2e2fcfb344e) ) - ROM_LOAD( "mta410a.bin", 0xb000, 0x1000, CRC(d7378af9) SHA1(44c8ba4c84f51306e5bdd64e6c255d1c1018db72) ) - ROM_LOAD( "mta49.bin", 0xc000, 0x1000, CRC(be667e64) SHA1(c5f686e3c403691f14992354af690dc89e1722f7) ) - ROM_LOAD( "mta48a.bin", 0xd000, 0x1000, CRC(de0442f8) SHA1(61774921adf016b3a2ae18baa79af60dca2d9e45) ) - ROM_LOAD( "mta47a.bin", 0xe000, 0x1000, CRC(cdf8c6a8) SHA1(932ae9c0ea5700bd79862efa94742136d8e15641) ) - ROM_LOAD( "mta46a.bin", 0xf000, 0x1000, CRC(77d3f2e6) SHA1(2c21dd7ee326ccb41d3c64eec90a19198382edea) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "mta5a.bin", 0x6800, 0x0800, CRC(dbe4ec02) SHA1(34e965428dbb4b9c558927bb80d19cb550b53228) ) - ROM_LOAD( "mta6a.bin", 0x7000, 0x0800, CRC(c00f0c05) SHA1(398b0bc2a7e54b1e2326ed067bf6bb15cc52ed39) ) - ROM_LOAD( "mta7a.bin", 0x7800, 0x0800, CRC(f3f16ca7) SHA1(3928c5da246c43036a7b4cbb140a1734d5f1fb03) ) - - ROM_REGION( 0x4000, REGION_CPU3, 0 ) /* 16k for digital sound processor */ - ROM_LOAD( "mta2a.bin", 0x0000,0x1000,CRC(13db8ed3) SHA1(939352323bdcd7df25db5eb2e30f269bcaebe6af) ) - ROM_LOAD( "mta3a.bin", 0x1000,0x1000,CRC(31bdfe5c) SHA1(b10bfe9e56dd617c5b4cd8b5bfec9c7f537b1086) ) - ROM_LOAD( "mta4a.bin", 0x2000,0x1000,CRC(1502d0e8) SHA1(8ef51ad4601299016f1821a5c65bec0199dd5474) ) - ROM_LOAD( "mta1a.bin", 0x3000,0x1000,CRC(658482a6) SHA1(c0d770fbeaa7cb3e0eef47d8caa0f8a78841692e) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mtl11d.bin", 0x0000, 0x0800, CRC(c6e4d339) SHA1(b091923e4d52e93d7c567afba217a10b2a3735fc) ) -ROM_END - - -ROM_START( venture ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "13a-cpu", 0x8000, 0x1000, CRC(f4e4d991) SHA1(6683c1552b56b20f2296e461aff697af73563792) ) - ROM_LOAD( "12a-cpu", 0x9000, 0x1000, CRC(c6d8cb04) SHA1(3b9ae8fdc35117c73c91daed66e93e5344bdcd7e) ) - ROM_LOAD( "11a-cpu", 0xa000, 0x1000, CRC(3bdb01f4) SHA1(3c1f43a3c37a21524b64d69e4dae58af8c2e0d90) ) - ROM_LOAD( "10a-cpu", 0xb000, 0x1000, CRC(0da769e9) SHA1(3604dc08c63461b2ea957a396887fb32e4a1a970) ) - ROM_LOAD( "9a-cpu", 0xc000, 0x1000, CRC(0ae05855) SHA1(29b3c2ca9740aa753e90131e6edcc61f414277e1) ) - ROM_LOAD( "8a-cpu", 0xd000, 0x1000, CRC(4ae59676) SHA1(36fc9dce9dd0c764a861634859ca0d7f98e20382) ) - ROM_LOAD( "7a-cpu", 0xe000, 0x1000, CRC(48d66220) SHA1(97b1605170c67b3a945b4d5f088df79328e163ce) ) - ROM_LOAD( "6a-cpu", 0xf000, 0x1000, CRC(7b78cf49) SHA1(1d484172465d3db6c4fc3733aa2b409e3a2e228f) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(b4bb2503) SHA1(67303603b7c5e6301e976ef19f81c7519648b179) ) -ROM_END - -ROM_START( venture2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "vent_a13.cpu", 0x8000, 0x1000, CRC(4c833f99) SHA1(1ff4eafe48b9f0ab8a123659d78c3dfa0bf56d7d) ) - ROM_LOAD( "vent_a12.cpu", 0x9000, 0x1000, CRC(8163cefc) SHA1(7061819dd1105e8368c045dad2effae62d124539) ) - ROM_LOAD( "vent_a11.cpu", 0xa000, 0x1000, CRC(324a5054) SHA1(f845ff2f717ea627891e0dc9d6e66f690c0843d8) ) - ROM_LOAD( "vent_a10.cpu", 0xb000, 0x1000, CRC(24358203) SHA1(10c3ea83a892d6fd2751e590afe45bffa65bd6e0) ) - ROM_LOAD( "vent_a9.cpu", 0xc000, 0x1000, CRC(04428165) SHA1(6d8d860ce1f805ba2eb315f47c8660799256e921) ) - ROM_LOAD( "vent_a8.cpu", 0xd000, 0x1000, CRC(4c1a702a) SHA1(7f6a68d3cfdd885108eebb7ea76b3c2ce6070b18) ) - ROM_LOAD( "vent_a7.cpu", 0xe000, 0x1000, CRC(1aab27c2) SHA1(66c7274dbb8bda3c78cc61d96a6cb1a9b29939b5) ) - ROM_LOAD( "vent_a6.cpu", 0xf000, 0x1000, CRC(767bdd71) SHA1(334a903e05fc86186f90aa2d9ce3b0d367d7e516) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(4ea1c3d9) SHA1(d0c99c9d5b887d717c68e8745906ae4e65aec6ad) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(b4bb2503) SHA1(67303603b7c5e6301e976ef19f81c7519648b179) ) -ROM_END - -ROM_START( venture4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "vel13a-4", 0x8000, 0x1000, CRC(1c5448f9) SHA1(59d3ca2a2d7048f5f7bd23fa5d9c9a2cc0734cb8) ) - ROM_LOAD( "vel12a-4", 0x9000, 0x1000, CRC(e62491cc) SHA1(a98b6c6e60d83fd4591d0de145a99c5e4576121a) ) - ROM_LOAD( "vel11a-4", 0xa000, 0x1000, CRC(e91faeaf) SHA1(ce50a9f1016671282d16f2d0ad3553598e0c7e89) ) - ROM_LOAD( "vel10a-4", 0xb000, 0x1000, CRC(da3a2991) SHA1(2b5175b0f3642e735b6d87fbd5b75118cf6b7faa) ) - ROM_LOAD( "vel9a-4", 0xc000, 0x1000, CRC(d1887b11) SHA1(40ed1e1bdcb95d6e317cb5e4fb8572a314b3fbf8) ) - ROM_LOAD( "vel8a-4", 0xd000, 0x1000, CRC(8e8153fc) SHA1(409cf0ed39ef04c1e9359f0499d7cba3aed8f36e) ) - ROM_LOAD( "vel7a-4", 0xe000, 0x1000, CRC(0a091701) SHA1(ffdea1d60371779d0c28fb3c6111639cace79dad) ) - ROM_LOAD( "vel6a-4", 0xf000, 0x1000, CRC(7b165f67) SHA1(4109797bcfd33c870234930790e3cecaaf90b706) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "vea3a-2", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "vel11d-2", 0x0000, 0x0800, CRC(ea6fd981) SHA1(46b1658e1607423d5a073f14097c2a48d59057c0) ) -ROM_END - - -ROM_START( pepper2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "main_12a", 0x9000, 0x1000, CRC(33db4737) SHA1(d8f7a5d340ddbc4d06d403c3bff0102ce637d24e) ) - ROM_LOAD( "main_11a", 0xa000, 0x1000, CRC(a1f43b1f) SHA1(a669f2ef55d9a0617110f65863822fdcaf153511) ) - ROM_LOAD( "main_10a", 0xb000, 0x1000, CRC(4d7d7786) SHA1(ea1390b887404a67ea556720219e81007b954a7d) ) - ROM_LOAD( "main_9a", 0xc000, 0x1000, CRC(b3362298) SHA1(7adad138ec5f94caa39f9c0fabece538d5db4913) ) - ROM_LOAD( "main_8a", 0xd000, 0x1000, CRC(64d106ed) SHA1(49646a97def9e1793cac6ee0044f68232b294e4f) ) - ROM_LOAD( "main_7a", 0xe000, 0x1000, CRC(b1c6f07c) SHA1(53d07211d014336bb43671c51f4190c6515e9cde) ) - ROM_LOAD( "main_6a", 0xf000, 0x1000, CRC(515b1046) SHA1(bdcccd4e415c00ee8e5ec185597df75ecafe7d3d) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "audio_5a", 0x6800, 0x0800, CRC(90e3c781) SHA1(d51a9e011167a132e8af9f4b1201600a58e86b62) ) - ROM_LOAD( "audio_6a", 0x7000, 0x0800, CRC(dd343e34) SHA1(4ec55bb73d6afbd167fa91d2606d1d55a15b5c39) ) - ROM_LOAD( "audio_7a", 0x7800, 0x0800, CRC(e02b4356) SHA1(9891e14d84221c1d6f2d15a29813eb41024290ca) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "main_11d", 0x0000, 0x0800, CRC(b25160cd) SHA1(3d768552960a3a660891dcb85da6a5c382b33991) ) -ROM_END - - -ROM_START( hardhat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "hhl-2.11a", 0xa000, 0x1000, CRC(7623deea) SHA1(3c47c0439c80e66536af42c5ee4e522fea5f8374) ) - ROM_LOAD( "hhl-2.10a", 0xb000, 0x1000, CRC(e6bf2fb1) SHA1(ad41859129774fc51462726a825c0ae16ed81a6e) ) - ROM_LOAD( "hhl-2.9a", 0xc000, 0x1000, CRC(acc2bce5) SHA1(0f7b8cfbd2628b8587c423fbc2c8310d71d8ad2a) ) - ROM_LOAD( "hhl-2.8a", 0xd000, 0x1000, CRC(23c7a2f8) SHA1(5eb1d512d73ba6bd1c23501664b582e9d3cf777f) ) - ROM_LOAD( "hhl-2.7a", 0xe000, 0x1000, CRC(6f7ce1c2) SHA1(356dcea22e50c95a8552566a0fb5f9b4e3e5de2a) ) - ROM_LOAD( "hhl-2.6a", 0xf000, 0x1000, CRC(2a20cf10) SHA1(31eb4556647e78e3d9be1c30d970eac8aaa5cf18) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "hha-1.5a", 0x6800, 0x0800, CRC(16a5a183) SHA1(cf3fed55db9c61fd33c222275d472fa109bed081) ) - ROM_LOAD( "hha-1.6a", 0x7000, 0x0800, CRC(bde64021) SHA1(a403590d5a27b859eaa299e47df4ebd6ce4a5772) ) - ROM_LOAD( "hha-1.7a", 0x7800, 0x0800, CRC(505ee5d3) SHA1(efa228465688f2bb30f00dc1511cc5f3a287356c) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hhl-1.11d", 0x0000, 0x0800, CRC(dbcdf353) SHA1(76ea287326a5c9e75e407cc010414212d8fdd52a) ) -ROM_END - - -ROM_START( teetert ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "13a-cpu", 0x8000, 0x1000, CRC(f4e4d991) SHA1(6683c1552b56b20f2296e461aff697af73563792) ) - ROM_LOAD( "12a-cpu", 0x9000, 0x1000, CRC(c6d8cb04) SHA1(3b9ae8fdc35117c73c91daed66e93e5344bdcd7e) ) - ROM_LOAD( "11a-cpu", 0xa000, 0x1000, CRC(bac9b259) SHA1(0265cbd683fadf42f8a6b71958cbe782a732c257) ) - ROM_LOAD( "10a-cpu", 0xb000, 0x1000, CRC(3ae7e445) SHA1(e511ce4c553ac58e87b6ee623f8c42d7653de972) ) - ROM_LOAD( "9a-cpu", 0xc000, 0x1000, CRC(0cba424d) SHA1(54377163a8b8082639baf56b960eb26268462d46) ) - ROM_LOAD( "8a-cpu", 0xd000, 0x1000, CRC(68de66e7) SHA1(70a0cc950f16f2c408fae717e6fdb75eb0fd8039) ) - ROM_LOAD( "7a-cpu", 0xe000, 0x1000, CRC(84491333) SHA1(db9f8e4c49057a4574a3784d71e627da7f7a4b44) ) - ROM_LOAD( "6a-cpu", 0xf000, 0x1000, CRC(3600d465) SHA1(84d633e042f73bfd6bf4a4d0ffee1cd2027c65d2) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) ) - ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) ) - ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) ) - ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) ) - ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(0fe70b00) SHA1(6068be263d7a8e6b71af6f4dceec40bb8d246376) ) -ROM_END - - -ROM_START( fax ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code + 192k for extra memory */ - ROM_LOAD( "fxl8-13a.32", 0x8000, 0x1000, CRC(8e30bf6b) SHA1(1fdf010da0258bc038554cf33c26e539a1f6b648) ) - ROM_LOAD( "fxl8-12a.32", 0x9000, 0x1000, CRC(60a41ff1) SHA1(1703dbedd09354d89c6014644d0ffe13ec657b8b) ) - ROM_LOAD( "fxl8-11a.32", 0xa000, 0x1000, CRC(2c9cee8a) SHA1(169045b4d840730cfbaa0b9a8a8d82907ea09d0c) ) - ROM_LOAD( "fxl8-10a.32", 0xb000, 0x1000, CRC(9b03938f) SHA1(af4c27b06a1f1be917316910b88d026b67cc60c0) ) - ROM_LOAD( "fxl8-9a.32", 0xc000, 0x1000, CRC(fb869f62) SHA1(cea6ff423c60662a1b36e9565940432707d5299b) ) - ROM_LOAD( "fxl8-8a.32", 0xd000, 0x1000, CRC(db3470bc) SHA1(7786f84ab41765ea91ab241d14a207044eda0e93) ) - ROM_LOAD( "fxl8-7a.32", 0xe000, 0x1000, CRC(1471fef5) SHA1(89308f3c2a0d7ea699e99622d37c5c95e3eaaf95) ) - ROM_LOAD( "fxl8-6a.32", 0xf000, 0x1000, CRC(812e39f3) SHA1(41c99f8483c69617f9c8dd82f979630ea9190454) ) - /* Banks of question ROMs */ - ROM_LOAD( "fxd-1c.64", 0x10000, 0x2000, CRC(fd7e3137) SHA1(6fda53737cd7c886c66c60436ae3ed5c62e6b178) ) - ROM_LOAD( "fxd-2c.64", 0x12000, 0x2000, CRC(e78cb16f) SHA1(d58dfa2385368ccf00ecfbaeccaf5ba82ef7da9b) ) - ROM_LOAD( "fxd-3c.64", 0x14000, 0x2000, CRC(57a94c6f) SHA1(fc27fe805c4cc29f797bfc0e4cd13a570ac5c1ec) ) - ROM_LOAD( "fxd-4c.64", 0x16000, 0x2000, CRC(9036c5a2) SHA1(b7a01e4002f615702cb691764cfae93707bf3c0f) ) - ROM_LOAD( "fxd-5c.64", 0x18000, 0x2000, CRC(38c03405) SHA1(c490252825dc3c4bf91255c7cb70a5ead92de85b) ) - ROM_LOAD( "fxd-6c.64", 0x1a000, 0x2000, CRC(f48fc308) SHA1(bfaf43e57a4d92b593d51d8cd61fe4d5c06e836c) ) - ROM_LOAD( "fxd-7c.64", 0x1c000, 0x2000, CRC(cf93b924) SHA1(892e6e6aa33bbcd271f5e0a63c1e8393df62f360) ) - ROM_LOAD( "fxd-8c.64", 0x1e000, 0x2000, CRC(607b48da) SHA1(6c8f2f207f3dd936c529b86cef917a0f0699a21c) ) - ROM_LOAD( "fxd-1b.64", 0x20000, 0x2000, CRC(62872d4f) SHA1(c020fdeae6c2e7d04c16048fdaa99ecf3e40af31) ) - ROM_LOAD( "fxd-2b.64", 0x22000, 0x2000, CRC(625778d0) SHA1(6c8d6b50653bff3774f5ccef0e000a2ef3f7030c) ) - ROM_LOAD( "fxd-3b.64", 0x24000, 0x2000, CRC(c3473dee) SHA1(8675f9b93bbbae4f5a5682c5b1623afeeacc0a4b) ) - ROM_LOAD( "fxd-4b.64", 0x26000, 0x2000, CRC(e39a15f5) SHA1(43b04cc2e4750b649116ade5b1004c2580293134) ) - ROM_LOAD( "fxd-5b.64", 0x28000, 0x2000, CRC(101a9d70) SHA1(2b839cd707e03b0e50037e1ffabcb8fe375dc4c0) ) - ROM_LOAD( "fxd-6b.64", 0x2a000, 0x2000, CRC(374a8f05) SHA1(ec41470932823242fff36ab6e6f158fa5c07d0a8) ) - ROM_LOAD( "fxd-7b.64", 0x2c000, 0x2000, CRC(f7e7f824) SHA1(1bed1ee07032b25675ace612a883cba4ab4b2f77) ) - ROM_LOAD( "fxd-8b.64", 0x2e000, 0x2000, CRC(8f1a5287) SHA1(a1102d49bacb25887eaa67ae64bcf64c8cad94fe) ) - ROM_LOAD( "fxd-1a.64", 0x30000, 0x2000, CRC(fc5e6344) SHA1(c61aad5100819f2fe98c3a159b64739fa6322d09) ) - ROM_LOAD( "fxd-2a.64", 0x32000, 0x2000, CRC(43cf60b3) SHA1(5169196d0a95450801b3a57703cb9f2861a25948) ) - ROM_LOAD( "fxd-3a.64", 0x34000, 0x2000, CRC(6b7d29cb) SHA1(fd4006efd24b33f8e2baf7f97d4b776d5ef90959) ) - ROM_LOAD( "fxd-4a.64", 0x36000, 0x2000, CRC(b9de3c2d) SHA1(229f9f0762d4d659acf516c2c1a42e70d2f98652) ) - ROM_LOAD( "fxd-5a.64", 0x38000, 0x2000, CRC(67285bc6) SHA1(f929c916fb19dbc91fc3a75dfed6375b63cb2043) ) - ROM_LOAD( "fxd-6a.64", 0x3a000, 0x2000, CRC(ba67b7b2) SHA1(12265f678b1e4dfc3b36a964f78b0103112753ee) ) - /* The last two ROM sockets were apparently never populated */ -// ROM_LOAD( "fxd-7a.64", 0x3c000, 0x2000, NO_DUMP ) -// ROM_LOAD( "fxd-8a.64", 0x3e000, 0x2000, NO_DUMP ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "fxa2-5a.16", 0x6800, 0x0800, CRC(7c525aec) SHA1(f3afd3bfc0ba4265106e6ca217d113d23ad66016) ) - ROM_LOAD( "fxa2-6a.16", 0x7000, 0x0800, CRC(2b3bfc44) SHA1(7e3b9133916c8121b2145942155601b3ade420da) ) - ROM_LOAD( "fxa2-7a.16", 0x7800, 0x0800, CRC(578c62b7) SHA1(1bcb987e8730c001b7339c3dfab2467bf76421c7) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "fxl1-11d.32", 0x0000, 0x0800, CRC(62083db2) SHA1(0c6e90b73419bff53f991e66d4faa9495c7d8e09) ) -ROM_END - -ROM_START( faxa ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 64k for code + 192k for extra memory */ - ROM_LOAD( "fxl8-13a.32", 0x8000, 0x1000, CRC(8e30bf6b) SHA1(1fdf010da0258bc038554cf33c26e539a1f6b648) ) - ROM_LOAD( "fxl8-12a.32", 0x9000, 0x1000, CRC(60a41ff1) SHA1(1703dbedd09354d89c6014644d0ffe13ec657b8b) ) - ROM_LOAD( "fxl8-11a.32", 0xA000, 0x1000, CRC(2c9cee8a) SHA1(169045b4d840730cfbaa0b9a8a8d82907ea09d0c) ) - ROM_LOAD( "fxl8-10a.32", 0xB000, 0x1000, CRC(9b03938f) SHA1(af4c27b06a1f1be917316910b88d026b67cc60c0) ) - ROM_LOAD( "fxl8-9a.32", 0xC000, 0x1000, CRC(fb869f62) SHA1(cea6ff423c60662a1b36e9565940432707d5299b) ) - ROM_LOAD( "fxl8-8a.32", 0xD000, 0x1000, CRC(db3470bc) SHA1(7786f84ab41765ea91ab241d14a207044eda0e93) ) - ROM_LOAD( "fxl8-7a.32", 0xE000, 0x1000, CRC(1471fef5) SHA1(89308f3c2a0d7ea699e99622d37c5c95e3eaaf95) ) - ROM_LOAD( "fxl8-6a.32", 0xF000, 0x1000, CRC(812e39f3) SHA1(41c99f8483c69617f9c8dd82f979630ea9190454) ) - /* Banks of question ROMs */ - ROM_LOAD( "fxdb1-1c.bin", 0x10000, 0x2000, CRC(0e42a2a4) SHA1(f7021aad36b49338cdaae8e13638dbdd12327afc) ) - ROM_LOAD( "fxdb1-2c.bin", 0x12000, 0x2000, CRC(cef8d49a) SHA1(a3005ab21add22ffb4c6f4cb9843db8964fef49c) ) - ROM_LOAD( "fxdb1-3c.bin", 0x14000, 0x2000, CRC(96217b39) SHA1(fe80255c8763e714fbbf8b2a7ec481712fd463e8) ) - ROM_LOAD( "fxdb1-4c.bin", 0x16000, 0x2000, CRC(9f1522d8) SHA1(e79ef8f4642245f4d1c4d0fe14eb432a432e6f8a) ) - ROM_LOAD( "fxdb1-5c.bin", 0x18000, 0x2000, CRC(4770eb04) SHA1(c8123ba4fd66da471099cd364615a196c4d1ea94) ) - ROM_LOAD( "fxdb1-6c.bin", 0x1a000, 0x2000, CRC(07c742ab) SHA1(c709be4a21cc946f2de9061948fe095ec511447e) ) - ROM_LOAD( "fxdb1-7c.bin", 0x1c000, 0x2000, CRC(f2f39ebb) SHA1(879f0954331d219d44e82d4cf13f84c1d03dd6d5) ) - ROM_LOAD( "fxdb1-8c.bin", 0x1e000, 0x2000, CRC(00f73e30) SHA1(586c28d1ea14626ccd0e9195f26f18168bd0cf72) ) - ROM_LOAD( "fxdb1-1b.bin", 0x20000, 0x2000, CRC(e13341cf) SHA1(5cc2c9f060436026dbcbc6f893f8ef17f10b6c75) ) - ROM_LOAD( "fxdb1-2b.bin", 0x22000, 0x2000, CRC(300d7a6f) SHA1(4e28a522e14e0cf1b63be35e2a16b816d51f328c) ) - ROM_LOAD( "fxdb1-3b.bin", 0x24000, 0x2000, CRC(db9a6a3a) SHA1(d192f8ece73dfa12cd390c6e0218d5bf58c46074) ) - ROM_LOAD( "fxdb1-4b.bin", 0x26000, 0x2000, CRC(47faeb43) SHA1(7991341d78b1d0c9e35c2472dbb05d21c001ba7f) ) - ROM_LOAD( "fxdb1-5b.bin", 0x28000, 0x2000, CRC(3ecf974f) SHA1(d18b7bdbb5e490b0d4b70baae06cb44cf0f2b643) ) - ROM_LOAD( "fxdb1-6b.bin", 0x2a000, 0x2000, CRC(526c4c0d) SHA1(68480fb61d8e9e5386daeb94f5854913ab36b48d) ) - ROM_LOAD( "fxdb1-7b.bin", 0x2c000, 0x2000, CRC(4cf8217c) SHA1(fd7b9c34b0ae532209453d68f30f6f9fbcec1964) ) - ROM_LOAD( "fxdb1-8b.bin", 0x2e000, 0x2000, CRC(99485e27) SHA1(1f10e71507f111724a8b496f3cc57a6790116ac0) ) - ROM_LOAD( "fxdb1-1a.bin", 0x30000, 0x2000, CRC(97c153b5) SHA1(0d5e66f0ded4453e1fe81cdcc56697664f76f28d) ) - ROM_LOAD( "fxdb1-2a.bin", 0x32000, 0x2000, CRC(63258140) SHA1(cdb03f5130c72d286d1a2f227dcf646da6e8f40a) ) - ROM_LOAD( "fxdb1-3a.bin", 0x34000, 0x2000, CRC(1c698727) SHA1(6886bbf04f837fbda9a192e55e995cac9c9e1cad) ) - ROM_LOAD( "fxdb1-4a.bin", 0x36000, 0x2000, CRC(8283d6fc) SHA1(dba1f0f53a6b16f2ee7ce1e8e6e081a6be7586f6) ) - ROM_LOAD( "fxdb1-5a.bin", 0x38000, 0x2000, CRC(b69542d2) SHA1(67a102790b24a5638c8938579ace0b3dd9b0c953) ) - ROM_LOAD( "fxdb1-6a.bin", 0x3a000, 0x2000, CRC(ff949367) SHA1(fb3d9c0abe3c915eaea983d9b429eb5227688532) ) - ROM_LOAD( "fxdb1-7a.bin", 0x3c000, 0x2000, CRC(0f97b874) SHA1(5790d3ed9eed2ce05947bc28cc252f720a7f3aeb) ) - ROM_LOAD( "fxdb1-8a.bin", 0x3e000, 0x2000, CRC(1d055bea) SHA1(96531db0a3a36319bc0a28096e601302eb2eb115) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) /* 32k for audio */ - ROM_LOAD( "fxa2-5a.16", 0x6800, 0x0800, CRC(7c525aec) SHA1(f3afd3bfc0ba4265106e6ca217d113d23ad66016) ) - ROM_LOAD( "fxa2-6a.16", 0x7000, 0x0800, CRC(2b3bfc44) SHA1(7e3b9133916c8121b2145942155601b3ade420da) ) - ROM_LOAD( "fxa2-7a.16", 0x7800, 0x0800, CRC(578c62b7) SHA1(1bcb987e8730c001b7339c3dfab2467bf76421c7) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "fxl1-11d.32", 0x0000, 0x0800, CRC(62083db2) SHA1(0c6e90b73419bff53f991e66d4faa9495c7d8e09) ) -ROM_END - - - -/************************************* - * - * Driver init - * - *************************************/ - -static void exidy_common_init(UINT8 palette[], UINT16 colortable[], UINT8 cmask, UINT8 cinvert) -{ - exidy_palette = palette; - exidy_colortable = colortable; - exidy_collision_mask = cmask; - exidy_collision_invert = cinvert; - targ_spec_flag = 0; -} - - -DRIVER_INIT( sidetrac ) -{ - exidy_common_init(sidetrac_palette, exidy_1bpp_colortable, 0x00, 0x00); - - /* ROM in place of character RAM */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4bff, 0, 0, MWA8_ROM); -} - - -DRIVER_INIT( targ ) -{ - exidy_common_init(targ_palette, exidy_1bpp_colortable, 0x00, 0x00); - targ_spec_flag = 1; -} - - -DRIVER_INIT( spectar ) -{ - exidy_common_init(spectar_palette, exidy_1bpp_colortable, 0x00, 0x00); -} - -DRIVER_INIT( rallys ) -{ - exidy_common_init(spectar_palette, exidy_1bpp_colortable, 0x00, 0x00); - - /* sprite locations are slightly different */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x5000, 0, 0, exidy_sprite1_xpos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5001, 0x5001, 0, 0, exidy_sprite1_ypos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5300, 0x5300, 0, 0, exidy_sprite2_xpos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5301, 0x5301, 0, 0, exidy_sprite2_ypos_w); -} - -DRIVER_INIT( phantoma ) -{ - exidy_common_init(spectar_palette, exidy_1bpp_colortable, 0x00, 0x00); - - /* sprite locations are slightly different */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x5000, 0, 0, exidy_sprite1_xpos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5001, 0x5001, 0, 0, exidy_sprite1_ypos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5300, 0x5300, 0, 0, exidy_sprite2_xpos_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5301, 0x5301, 0, 0, exidy_sprite2_ypos_w); - - /* the ROM is actually mapped high */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xf800, 0xffff, 0, 0, MRA8_BANK1); - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0xf800); -} - - -DRIVER_INIT( mtrap ) -{ - exidy_common_init(NULL, exidy_1bpp_colortable, 0x14, 0x00); -} - - -DRIVER_INIT( venture ) -{ - exidy_common_init(NULL, exidy_1bpp_colortable, 0x04, 0x04); -} - - -DRIVER_INIT( teetert ) -{ - exidy_common_init(NULL, exidy_1bpp_colortable, 0x0c, 0x0c); - - /* special input handler for the dial */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5101, 0x5101, 0, 0, teetert_input_r); -} - - -DRIVER_INIT( pepper2 ) -{ - exidy_common_init(NULL, exidy_2bpp_colortable, 0x14, 0x04); - - /* two 6116 character RAMs */ - exidy_characterram = memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6fff, 0, 0, MRA8_RAM); - exidy_characterram = memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6fff, 0, 0, exidy_characterram_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4fff, 0, 0, MRA8_NOP); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4800, 0x4fff, 0, 0, MWA8_NOP); -} - - -DRIVER_INIT( fax ) -{ - exidy_common_init(NULL, exidy_2bpp_colortable, 0x04, 0x04); - - /* reset the ROM bank */ - fax_bank_select_w(0,0); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1979, sidetrac, 0, targ, sidetrac, sidetrac, ROT0, "Exidy", "Side Track", 0 ) -GAME( 1980, targ, 0, targ, targ, targ, ROT0, "Exidy", "Targ", 0 ) -GAME( 1980, targc, targ, targ, targ, targ, ROT0, "Exidy", "Targ (cocktail?)", 0 ) -GAME( 1980, spectar, 0, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 3)", 0 ) -GAME( 1980, spectar1, spectar, targ, spectar, spectar, ROT0, "Exidy", "Spectar (revision 1?)", 0 ) -GAME( 1980, rallys, spectar, targ, rallys, rallys, ROT0, "Novar", "Rallys (bootleg?)", 0 ) -GAME( 1980, phantoma, spectar, targ, phantoma, phantoma, ROT0, "Jeutel","Phantomas", 0 ) - -GAME( 1981, mtrap, 0, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", 0 ) -GAME( 1981, mtrap3, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", 0 ) -GAME( 1981, mtrap4, mtrap, mtrap, mtrap, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", 0 ) -GAME( 1981, venture, 0, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 1)", 0 ) -GAME( 1981, venture2, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 5 set 2)", 0 ) -GAME( 1981, venture4, venture, venture, venture, venture, ROT0, "Exidy", "Venture (version 4)", 0 ) -GAME( 1982, teetert, 0, teetert, teetert, teetert, ROT0, "Exidy", "Teeter Torture (prototype)", 0 ) -GAME( 1982, pepper2, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Pepper II", 0 ) -GAME( 1982, hardhat, 0, pepper2, pepper2, pepper2, ROT0, "Exidy", "Hard Hat", 0 ) -GAME( 1983, fax, 0, fax, fax, fax, ROT0, "Exidy", "Fax", 0 ) -GAME( 1983, faxa, fax, fax, fax, fax, ROT0, "Exidy", "Fax (alt. questions)", 0 ) diff --git a/src/drivers/exidy440.c b/src/drivers/exidy440.c deleted file mode 100644 index 2dc2d33f9..000000000 --- a/src/drivers/exidy440.c +++ /dev/null @@ -1,1815 +0,0 @@ -/*************************************************************************** - - Exidy 440 hardware - - driver by Aaron Giles - - Currently implemented: - * Crossbow - * Cheyenne - * Combat/Catch-22 - * Crackshot - * Chiller - * Top Secret - * Clay Pigeon - * Hit 'n Miss - * Who Dunit - * Showdown - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - CPU #1 - ======================================================================== - 0000-1FFF R/W xxxxxxxx Image RAM (64 images x 128 bytes, each image is 16x16x4bpp) - R/W xxxx---- (left pixel) - R/W ----xxxx (right pixel) - 2000-209F R/W xxxxxxxx Sprite RAM (40 entries x 4 bytes) - R/W xxxxxxxx (0: Y position, inverted) - R/W -------x (1: X position, upper bit, inverted) - R/W xxxxxxxx (2: X position, lower 8 bits, inverted) - R/W --xxxxxx (3: image number, inverted) - 20A0-29FF R/W xxxxxxxx Stack RAM - 2A00-2AFF R/W xxxxxxxx Scanline I/O region - R/W xxxx---- (left pixel) - R/W ----xxxx (right pixel) - 2B00 R xxxxxxxx Current vertical beam position - 2B01 R xxxxxxxx Latched horizontal collision/beam detect location - 2B01 W -------- Clear VBLANK FIRQ - 2B02 R/W xxxxxxxx Scanline I/O selector - 2B03 R xxxxxxxx Input port - R x------- (VBLANK FIRQ latched, active low) - R -x------ (collision/beam detect FIRQ latched, active low) - R --xxxx-- (4 position DIP switch, active low) - R ------x- (trigger, active low) - R -------x (mirror of VBLANK FIRQ latch, Whodunit only) - 2B03 W xxxxxxxx Control port - W xxxx---- (ROM bank select, 0-15) - W ----x--- (collision/beam detect FIRQ enable) - W -----x-- (select FIRQ source: 0=collision, 1=beam detect) - W ------x- (select palette bank for I/O) - W -------x (select palette bank for display) - 2C00-2DFF R/W xxxxxxxx Palette RAM (2 banks x 512 bytes) - R/W x------- (0: collision trigger bit) - R/W -xxxxx-- (0: red component) - R/W ------xx (0: green component, upper 2 bits) - R/W xxx----- (1: green component, lower 3 bits) - R/W ---xxxxx (1: blue component) - 2E00-2E1F R/W xxxxxxxx Sound command - 2E20-2E3F R ----xxxx Coin counter, clearing IRQ - R ----x--- (acknowledgement of sound command read, active high) - R -----x-- (unknown use, active low - gives "coin mech jammed" message) - R ------x- (coin 2, active low) - R -------x (coin 1, active low) - 2E40-2E5F W -------x Clear coin counter - 2E60-2E7F R xxxxxxxx 8 position DIP switch, active low - 2E80-2E9F R --xxxxxx Player control bits - R -------x (start button, active low) - 2EA0-2EBF R ----xxxx Coin counter, non-clearing - R ----x--- (acknowledgement of sound command read, active high) - R -----x-- (unknown use, active low - gives "coin mech jammed" message) - R ------x- (coin 2, active low) - R -------x (coin 1, active low) - 2EC0-2EDF R xxxxxxxx Copy protection check (Clay Pigeon) - 2EC0-2EDF R/W xxxxxxxx Copy protection and I/O space (Top Secret) - 3000-3FFF R/W xxxxxxxx RAM - 4000-7FFF R xxxxxxxx Banked ROM - 6000-7FFF R/W xxxxxxxx EEROM (when bank 15 is selected only) - 8000-FFFF R xxxxxxxx Program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by coins, detect on audio PCB - FIRQ generated by VBLANK, collision detect, and beam detect - ======================================================================== - - - ======================================================================== - CPU #2 - ======================================================================== - 0000-7FFF R xxxxxxxx Banked ROM (never access because DMA switches constantly) - 8000-8016 R/W xxxxxxxx MC6844 DMA controller I/O - 8400-8407 R/W xxxxxxxx Volume control for each channel: left1, right1, left2, right2... - 8800 R xxxxxxxx Sound command - 9400-9403 W xxxxxxxx Bank select for each channel - W ----x--- (select bank 3, active high) - W -----x-- (select bank 2, active high) - W ------x- (select bank 1, active high) - W -------x (select bank 0, active high) - 9800 W -------- Clear sound IRQ - A000-BFFF R/W xxxxxxxx RAM - E000-FFFF R xxxxxxxx Program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by VSYNC - FIRQ generated by write to sound command register - ======================================================================== - -*************************************************************************** - - Differences between machines (assuming Crossbow is the base) - - Cheyenne (reports Hardware Error 5 if any of these are not true) - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - - Combat (reports Hardware Error 1 if any of these are not true) - * a read from $2E80 must return 0's in bits 1,2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - LS367 at 1A on audio board needs to generate negative logic - - Crackshot (reports Hardware Error W if any of these are not true) - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 1,2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - - Chiller (reports Hardware Error R if any of these are not true) - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 1,2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - - Top Secret (reports Hardware Error H if any of these are not true) - * a read from $2EC0 must return $00 - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - and must connect the inputs for bits 0 and 1 - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - the I/O space at $2EC0 must be hooked up to something - - Clay Pigeon (reports Hardware Error N if any of these are not true) - * a read from $2EC3 must return $76 - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 1,2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - - conclusion: LS244 at 18J on main board needs to generate negative logic - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - something must be hooked up to pin 7 of the LS42 at 3A on - the audio board to put $76 on the data lines going - back to the logic board when triggered - - Hit'N Miss (reports Hardware Error H if any of these are not true) - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 2,3,4,5 - * a read from $2B03 must return the same value for bit 0 as for bit 1 - - conclusion: LS244 at 18J on main board needs to generate negative logic - and must connect the inputs for bits 0 and 1 - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - - Who Dunit (reports Hardware Error H if any of these are not true) - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 2,3,4,5 - * a read from $2B03 must return the same value for bit 0 as for bit 7 - - conclusion: LS244 at 18J on main board needs to generate negative logic - and must connect the inputs for bits 0 and 7 - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - - Showdown - * a read from $2E20 must return 0 in bit 2 - * a read from $2E80 must return 0's in bits 1,2,3,4,5 - * a read from $2B03 must return 0 in bit 0 - * the PLD at 1E on the logic board must recognize the sequence $0055,$00ed - and return the following data from reads in the first 24 bytes: - 0x15,0x40,0xc1,0x8d,0x4c,0x84,0x0e,0xce, - 0x52,0xd0,0x99,0x48,0x80,0x09,0xc9,0x45, - 0xc4,0x8e,0x5a,0x92,0x18,0xd8,0x51,0xc0 - * the PLD at 1E on the logic board must also recognize the sequence $0055,$1243 - and return the following data from reads in the first 24 bytes: - 0x11,0x51,0xc0,0x89,0x4d,0x85,0x0c,0xcc, - 0x46,0xd2,0x98,0x59,0x91,0x08,0xc8,0x41, - 0xc5,0x8c,0x4e,0x86,0x1a,0xda,0x50,0xd1 - - conclusion: something must emulate this PLD; also, not sure where the - bytes to compare against came from, so it's possible - that the real machine isn't expecting the same values - LS244 at 18J on main board needs to generate negative logic - LS367 at 1A on audio board needs to generate negative logic - LS128 at 2A on audio board needs negative logic into pin 5 - -***************************************************************************/ - -#include "driver.h" -#include "exidy440.h" - - -/* globals */ -UINT8 exidy440_bank; -UINT8 exidy440_topsecret; - - -/* local variables */ -static UINT8 port_0_xor; -static UINT8 port_2_xor; -static UINT8 port_3_xor; -static UINT8 mirror_vblank_bit; -static UINT8 mirror_trigger_bit; -static UINT8 copy_protection_read; -static UINT8 coin_state; -static UINT8 last_coins; -static UINT8 showdown_bank_triggered; - - - -/************************************* - * - * EEROM save/load - * - *************************************/ - -static NVRAM_HANDLER( exidy440 ) -{ - if (read_or_write) - /* the EEROM lives in the uppermost 8k of the top bank */ - mame_fwrite(file, &memory_region(REGION_CPU1)[0x10000 + 15 * 0x4000 + 0x2000], 0x2000); - else - { - if (file) - mame_fread(file, &memory_region(REGION_CPU1)[0x10000 + 15 * 0x4000 + 0x2000], 0x2000); - else - memset(&memory_region(REGION_CPU1)[0x10000 + 15 * 0x4000 + 0x2000], 0, 0x2000); - } -} - - -/************************************* - * - * Interrupt handling - * - *************************************/ - -static void handle_coins(void) -{ - int coins; - - /* if we got a coin, set the IRQ on the main CPU */ - coins = input_port_3_r(0) & 3; - if (((coins ^ last_coins) & 0x01) && (coins & 0x01) == 0) - { - coin_state &= ~0x01; - cpunum_set_input_line(0, 0, ASSERT_LINE); - } - if (((coins ^ last_coins) & 0x02) && (coins & 0x02) == 0) - { - coin_state &= ~0x02; - cpunum_set_input_line(0, 0, ASSERT_LINE); - } - last_coins = coins; -} - - -static INTERRUPT_GEN( main_interrupt ) -{ - /* generate coin interrupts */ - handle_coins(); - exidy440_vblank_interrupt(); -} - - -MACHINE_RESET( exidy440 ) -{ - exidy440_bank = 0; - memory_set_bankptr(1, &memory_region(REGION_CPU1)[0x10000]); - - last_coins = input_port_3_r(0) & 3; - coin_state = 3; -} - - - -/************************************* - * - * Primary input port read - * - *************************************/ - -static READ8_HANDLER( input_r ) -{ - int result = input_port_0_r(offset); - - /* the FIRQ cause is reflected in the upper 2 bits */ - if (exidy440_firq_vblank) result ^= 0x80; - if (exidy440_firq_beam) result ^= 0x40; - - /* Whodunit needs the VBLANK bit mirrored to bit 0 */ - if (mirror_vblank_bit && exidy440_firq_vblank) result ^= 0x01; - - /* Hit'N Miss needs the trigger bit mirrored to bit 0 */ - if (mirror_trigger_bit) result = (result & 0xfe) | ((result >> 1) & 1); - - /* return with the appropriate XOR */ - return result ^ port_0_xor; -} - - - -/************************************* - * - * Banked RAM (actually EEROM) - * - *************************************/ - -static WRITE8_HANDLER( bankram_w ) -{ - /* EEROM lives in the upper 8k of bank 15 */ - if (exidy440_bank == 15 && offset >= 0x2000) - { - memory_region(REGION_CPU1)[0x10000 + 15 * 0x4000 + offset] = data; - logerror("W EEROM[%04X] = %02X\n", offset - 0x2000, data); - } - - /* everything else is ROM and we ignore it */ -} - - - -/************************************* - * - * Audio board I/O reads - * - *************************************/ - -static READ8_HANDLER( io1_r ) -{ - int result = 0xff; - - switch (offset & 0xe0) - { - case 0x00: /* sound command */ - result = exidy440_sound_command; - break; - - case 0x20: /* coin bits I/O1 */ - result = (input_port_3_r(offset) & 0xfc) | coin_state; - result ^= port_3_xor; - - /* sound command acknowledgements come on bit 3 here */ - if (!exidy440_sound_command_ack) - result ^= 0x08; - - /* I/O1 accesses clear the CIRQ flip/flop */ - cpunum_set_input_line(0, 0, CLEAR_LINE); - break; - - case 0x40: /* clear coin counters I/O2 */ - result = 0xff; - break; - - case 0x60: /* dip switches (8) */ - result = input_port_1_r(offset); - break; - - case 0x80: /* player control bits */ - result = input_port_2_r(offset) ^ port_2_xor; - break; - - case 0xa0: /* coin bits I/O3 */ - result = (input_port_3_r(offset) & 0xfc) | coin_state; - result ^= port_3_xor; - - /* sound command acknowledgements come on bit 3 here */ - if (exidy440_sound_command_ack) - result ^= 0x08; - break; - - case 0xc0: - /* for Clay Pigeon and Top Secret */ - if (offset < 0xc4) - return copy_protection_read; - - /* for Top Secret only */ - if (offset == 0xc5) - return (input_port_5_r(offset) & 1) ? 0x01 : 0x02; - else if (offset == 0xc6) - return input_port_4_r(offset); - else if (offset == 0xc7) - return input_port_6_r(offset); - else - return 0; - } - - return result; -} - - - -/************************************* - * - * Audio board I/O writes - * - *************************************/ - -static void delayed_sound_command_w(int param) -{ - exidy440_sound_command = param; - exidy440_sound_command_ack = 0; - - /* cause an FIRQ on the sound CPU */ - cpunum_set_input_line(1, 1, ASSERT_LINE); -} - - -static WRITE8_HANDLER( io1_w ) -{ - logerror("W I/O1[%02X]=%02X\n", offset, data); - - /* switch off the upper 4 bits of the offset */ - switch (offset & 0xe0) - { - case 0x00: /* sound command */ - timer_set(TIME_NOW, data, delayed_sound_command_w); - break; - - case 0x20: /* coin bits I/O1 */ - - /* accesses here clear the CIRQ flip/flop */ - cpunum_set_input_line(0, 0, CLEAR_LINE); - break; - - case 0x40: /* clear coin counters I/O2 */ - coin_state = 3; - break; - - case 0x60: /* dip switches (8) */ - break; - - case 0x80: /* player control bits */ - break; - - case 0xa0: /* coin bits I/O3 */ - break; - - case 0xc0: - /* for Top Secret only */ - if (offset == 0xc1) - topsecex_yscroll = data; - break; - } -} - - - -/************************************* - * - * Game-specific handlers - * - *************************************/ - -READ8_HANDLER( showdown_pld_trigger_r ) -{ - /* bank 0 is where the PLD lives - a read here will set the trigger */ - if (exidy440_bank == 0) - showdown_bank_triggered = 1; - - /* just return the value from the current bank */ - return memory_region(REGION_CPU1)[0x10000 + exidy440_bank * 0x4000 + 0x0055 + offset]; -} - - -READ8_HANDLER( showdown_pld_select1_r ) -{ - /* bank 0 is where the PLD lives - a read here after a trigger will set bank "1" */ - if (exidy440_bank == 0 && showdown_bank_triggered) - { - static const UINT8 bankdata[0x18] = - { - 0x15,0x40,0xc1,0x8d,0x4c,0x84,0x0e,0xce, - 0x52,0xd0,0x99,0x48,0x80,0x09,0xc9,0x45, - 0xc4,0x8e,0x5a,0x92,0x18,0xd8,0x51,0xc0 - }; - - /* clear the trigger and copy the expected 24 bytes to the RAM area */ - showdown_bank_triggered = 0; - memcpy(&memory_region(REGION_CPU1)[0x10000], bankdata, 0x18); - } - - /* just return the value from the current bank */ - return memory_region(REGION_CPU1)[0x10000 + exidy440_bank * 0x4000 + 0x00ed + offset]; -} - - -READ8_HANDLER( showdown_pld_select2_r ) -{ - /* bank 0 is where the PLD lives - a read here after a trigger will set bank "2" */ - if (exidy440_bank == 0 && showdown_bank_triggered) - { - static const UINT8 bankdata[0x18] = - { - 0x11,0x51,0xc0,0x89,0x4d,0x85,0x0c,0xcc, - 0x46,0xd2,0x98,0x59,0x91,0x08,0xc8,0x41, - 0xc5,0x8c,0x4e,0x86,0x1a,0xda,0x50,0xd1 - }; - - /* clear the trigger and copy the expected 24 bytes to the RAM area */ - showdown_bank_triggered = 0; - memcpy(&memory_region(REGION_CPU1)[0x10000], bankdata, 0x18); - } - - /* just return the value from the current bank */ - return memory_region(REGION_CPU1)[0x10000 + exidy440_bank * 0x4000 + 0x1243 + offset]; -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x209f) AM_READ(MRA8_RAM) - AM_RANGE(0x20a0, 0x29ff) AM_READ(MRA8_RAM) - AM_RANGE(0x2a00, 0x2aff) AM_READ(exidy440_videoram_r) - AM_RANGE(0x2b00, 0x2b00) AM_READ(exidy440_vertical_pos_r) - AM_RANGE(0x2b01, 0x2b01) AM_READ(exidy440_horizontal_pos_r) - AM_RANGE(0x2b02, 0x2b02) AM_READ(MRA8_RAM) - AM_RANGE(0x2b03, 0x2b03) AM_READ(input_r) - AM_RANGE(0x2c00, 0x2dff) AM_READ(exidy440_paletteram_r) - AM_RANGE(0x2e00, 0x2eff) AM_READ(io1_r) - AM_RANGE(0x3000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_RAM) AM_BASE(&exidy440_imageram) - AM_RANGE(0x2000, 0x209f) AM_WRITE(exidy440_spriteram_w) AM_BASE(&spriteram) - AM_RANGE(0x20a0, 0x29ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2a00, 0x2aff) AM_WRITE(exidy440_videoram_w) - AM_RANGE(0x2b01, 0x2b01) AM_WRITE(exidy440_interrupt_clear_w) - AM_RANGE(0x2b02, 0x2b02) AM_WRITE(MWA8_RAM) AM_BASE(&exidy440_scanline) - AM_RANGE(0x2b03, 0x2b03) AM_WRITE(exidy440_control_w) - AM_RANGE(0x2c00, 0x2dff) AM_WRITE(exidy440_paletteram_w) - AM_RANGE(0x2e00, 0x2eff) AM_WRITE(io1_w) - AM_RANGE(0x3000, 0x3fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(bankram_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x8000, 0x8016) AM_READ(exidy440_m6844_r) - AM_RANGE(0x8400, 0x8407) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_READ(exidy440_sound_command_r) - AM_RANGE(0x9800, 0x9800) AM_READ(MRA8_NOP) - AM_RANGE(0xa000, 0xbfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x8000, 0x8016) AM_WRITE(exidy440_m6844_w) AM_BASE(&exidy440_m6844_data) - AM_RANGE(0x8400, 0x8407) AM_WRITE(exidy440_sound_volume_w) AM_BASE(&exidy440_sound_volume) - AM_RANGE(0x9400, 0x9403) AM_WRITE(MWA8_RAM) AM_BASE(&exidy440_sound_banks) - AM_RANGE(0x9800, 0x9800) AM_WRITE(exidy440_sound_interrupt_clear_w) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define COINAGE \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x07, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( 4C_2C ) ) \ - PORT_DIPSETTING( 0x0b, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_4C ) ) \ - PORT_DIPSETTING( 0x05, DEF_STR( 3C_3C ) ) \ - PORT_DIPSETTING( 0x0a, DEF_STR( 2C_2C ) ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x04, DEF_STR( 3C_4C ) ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( 2C_4C ) ) \ - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - - -INPUT_PORTS_START( crossbow ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( cheyenne ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( combat ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( catch22 ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPSETTING( 0x04, "6" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( cracksht ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, "Seconds" ) - PORT_DIPSETTING( 0x08, "20" ) - PORT_DIPSETTING( 0x0c, "30" ) - PORT_DIPSETTING( 0x04, "40" ) - PORT_DIPSETTING( 0x00, "50" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( claypign ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( chiller ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, "Seconds" ) - PORT_DIPSETTING( 0x08, "30" ) - PORT_DIPSETTING( 0x0c, "45" ) - PORT_DIPSETTING( 0x04, "60" ) - PORT_DIPSETTING( 0x00, "70" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( topsecex ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x0c, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_MINMAX(-127,127) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Fireball") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Laser") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Missile") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Oil") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Turbo") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Shield") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Top Secret") -INPUT_PORTS_END - - -INPUT_PORTS_START( hitnmiss ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, "Seconds" ) - PORT_DIPSETTING( 0x08, "20" ) - PORT_DIPSETTING( 0x0c, "30" ) - PORT_DIPSETTING( 0x04, "40" ) - PORT_DIPSETTING( 0x00, "50" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( whodunit ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( showdown ) - PORT_START /* player inputs and logic board dips */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_DIPNAME( 0x0c, 0x0c, "Hands" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x0c, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hardest ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* audio board dips */ - COINAGE - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x07, "1" ) - PORT_DIPSETTING( 0x06, "2" ) - PORT_DIPSETTING( 0x05, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPSETTING( 0x02, "6" ) - PORT_DIPSETTING( 0x01, "7" ) - PORT_DIPSETTING( 0x00, "1/Freeplay" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* start button */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Action") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Bet-All") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Gold") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Blue") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Red") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("White") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* coin counters */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* fake analog X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* fake analog Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct CustomSound_interface custom_interface = -{ - exidy440_sh_start, - exidy440_sh_stop -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( exidy440 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809,12979200/8) - MDRV_CPU_PROGRAM_MAP(readmem_cpu1,writemem_cpu1) - MDRV_CPU_VBLANK_INT(main_interrupt,1) - - MDRV_CPU_ADD(M6809,12979200/4/4) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu2,writemem_cpu2) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(exidy440) - MDRV_NVRAM_HANDLER(exidy440) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(exidy440) - MDRV_VIDEO_EOF(exidy440) - MDRV_VIDEO_UPDATE(exidy440) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(CUSTOM, 12979200/256) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( crossbow ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "xbl-2.1a", 0x08000, 0x2000, CRC(bd53ac46) SHA1(0f16ff2d5d08b20c8388d9334995b21c455bf155) ) - ROM_LOAD( "xbl-2.3a", 0x0a000, 0x2000, CRC(703e1376) SHA1(602fc4d9c8fdf3a56ff83112f1e4e8aa5879da8c) ) - ROM_LOAD( "xbl-2.4a", 0x0c000, 0x2000, CRC(52c5daa1) SHA1(eee39da9057dbe855bcabfe32c3ea24609b734f5) ) - ROM_LOAD( "xbl-2.6a", 0x0e000, 0x2000, CRC(f42a68f7) SHA1(1e05e10ece50b77c383b7b36a2eecb7fb5b39de4) ) - ROM_LOAD( "xbl-1.1e", 0x10000, 0x2000, CRC(2834258e) SHA1(f0974c30099a295a9c000038d91caff418b3b1b1) ) - ROM_LOAD( "xbl-1.3e", 0x12000, 0x2000, CRC(587b186c) SHA1(b7d4e1535aeb32c3ce02673be81746759d47b53c) ) - ROM_LOAD( "xbl-1.4e", 0x14000, 0x2000, CRC(23fbfa8e) SHA1(fb6ab1676167d246af51271f7da025f7828bcedb) ) - ROM_LOAD( "xbl-1.6e", 0x16000, 0x2000, CRC(a3ebcc92) SHA1(837b6928df1feddbde27c162b6f3d439d6f5b4b9) ) - ROM_LOAD( "xbl-1.7e", 0x18000, 0x2000, CRC(945b3a68) SHA1(2feebc8ad9805e9fe631b8ebcf400983b03e6822) ) - ROM_LOAD( "xbl-1.8e", 0x1a000, 0x2000, CRC(0d1c5d24) SHA1(e4585c6c97db1ad8ababe310e49b8b6f424bd6da) ) - ROM_LOAD( "xbl-1.10e", 0x1c000, 0x2000, CRC(ca30788b) SHA1(9b32c072fd96b52f268733ea59c3a39ada100ab3) ) - ROM_LOAD( "xbl-1.11e", 0x1e000, 0x2000, CRC(6661c5ee) SHA1(abf535e8045fccccd203733351efdced6445c2d9) ) - ROM_LOAD( "xbl-1.1d", 0x20000, 0x2000, CRC(a1416191) SHA1(0db0be77e430cb165bf82fbdd8c67e3100ae06ba) ) - ROM_LOAD( "xbl-1.3d", 0x22000, 0x2000, CRC(7322b5e1) SHA1(e471a04892d069d16a40ab95c2d623dcb0cbaa3f) ) - ROM_LOAD( "xbl-1.4d", 0x24000, 0x2000, CRC(425d51ef) SHA1(4a58eb21004b79fe361545552b7c29dca4785463) ) - ROM_LOAD( "xbl-1.6d", 0x26000, 0x2000, CRC(c923c9f5) SHA1(704fb7bc648c99c0bfda631239b301dbe10b441d) ) - ROM_LOAD( "xbl-1.7d", 0x28000, 0x2000, CRC(46cdf117) SHA1(15ab85500af5e46024fae14e6d2cdd4cf9a7fa8a) ) - ROM_LOAD( "xbl-1.8d", 0x2a000, 0x2000, CRC(62bad9b6) SHA1(37b3142d96c61dfe8e54baf35144368361da09c6) ) - ROM_LOAD( "xbl-1.10d", 0x2c000, 0x2000, CRC(d4aaa382) SHA1(168a5ecc173eb80078ed0cc9e7fc48e996facac4) ) - ROM_LOAD( "xbl-1.11d", 0x2e000, 0x2000, CRC(efc77790) SHA1(4d3aa33eed042290e8a426d460b8947fe79e24ea) ) - ROM_LOAD( "xbl-1.1c", 0x30000, 0x2000, CRC(dbbd35cb) SHA1(2a13e1d26e4bf9d37234e695f222d665c0ce71e0) ) - ROM_LOAD( "xbl-1.3c", 0x32000, 0x2000, CRC(f011f98d) SHA1(90b5212822e5d5f5f681d85fad7adaff9297f576) ) - ROM_LOAD( "xbl-1.4c", 0x34000, 0x2000, CRC(1257b947) SHA1(4f0e81f24ce4caf93fde12015f86beaa98ab81f2) ) - ROM_LOAD( "xbl-1.6c", 0x36000, 0x2000, CRC(48da9081) SHA1(de2f96643602481b63f6d8dd79afeaea4fc0297a) ) - ROM_LOAD( "xbl-1.7c", 0x38000, 0x2000, CRC(8d4d4855) SHA1(95f2e5d4369bea7ba14d3cf56cfc975b73964858) ) - ROM_LOAD( "xbl-1.8c", 0x3a000, 0x2000, CRC(4c52b85a) SHA1(ab6c827b5da34ce14980874892261bcf1763d23a) ) - ROM_LOAD( "xbl-1.10c", 0x3c000, 0x2000, CRC(5986130b) SHA1(65ed5302523cf79e62c878798a38835b92970a8f) ) - ROM_LOAD( "xbl-1.11c", 0x3e000, 0x2000, CRC(163a6ae0) SHA1(629f84ba80117ea7e4fa73a998bbe69df316d635) ) - ROM_LOAD( "xbl-1.1b", 0x40000, 0x2000, CRC(36ea0269) SHA1(f30181e4c9d37d927b654fede8ddf5cbf430f317) ) - ROM_LOAD( "xbl-1.3b", 0x42000, 0x2000, CRC(4a03c2c9) SHA1(dd60cd629f60d15dd0596bde44fea4b4f1d65ae2) ) - ROM_LOAD( "xbl-1.4b", 0x44000, 0x2000, CRC(7e21c624) SHA1(9e0c1297413f9d440106f6cef25f48fad60e4c85) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "xba-11.1h", 0x0e000, 0x2000, CRC(1b61d0c1) SHA1(de1028a3295dc0413756d4751ca577a03431583e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "xba-1.2k", 0x00000, 0x2000, CRC(b6e57685) SHA1(ee690cb966af126bfb0bafa804e0ad5490cab1db) ) - ROM_LOAD( "xba-1.2l", 0x02000, 0x2000, CRC(2c24cb35) SHA1(4ea16998f477d6429a92ca05ef74daa21315e695) ) - ROM_LOAD( "xba-1.2m", 0x04000, 0x2000, CRC(f3a4f2be) SHA1(f0ab8a0a6fbb2911d99c961a65035835e54924de) ) - ROM_LOAD( "xba-1.2n", 0x06000, 0x2000, CRC(15cf362d) SHA1(e6ba3766f4f5efb207a6af685cfcdb3c01d41b73) ) - ROM_LOAD( "xba-1.2p", 0x08000, 0x2000, CRC(56f53af9) SHA1(86b5866f76120e72674c565db44fd9bdf387c41a) ) - ROM_LOAD( "xba-1.2r", 0x0a000, 0x2000, CRC(3d8277b0) SHA1(5e65b80801c0d5568909f6f956eda45feb69a727) ) - ROM_LOAD( "xba-1.2s", 0x0c000, 0x2000, CRC(14dd8993) SHA1(066e163fca6d8f696d98d78b41b54a8d06eaba47) ) - ROM_LOAD( "xba-1.2t", 0x0e000, 0x2000, CRC(dfa783e4) SHA1(cb5e1132224085ff9694b8037abbed8d0926ca99) ) - ROM_LOAD( "xba-1.1k", 0x10000, 0x2000, CRC(4f01f9e6) SHA1(2cc75f1e714eef6e315707ccfde39827a057a674) ) - ROM_LOAD( "xba-1.1l", 0x12000, 0x2000, CRC(fb119acf) SHA1(dec0eb4ae33aca6d0dd47f64337c119eb0601e41) ) - ROM_LOAD( "xba-1.1m", 0x14000, 0x2000, CRC(18d097ac) SHA1(c3546c5a21458e7117d36f2e477d3d5db7827487) ) - ROM_LOAD( "xba-1.1n", 0x16000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) - ROM_LOAD( "xba-1.1p", 0x18000, 0x2000, CRC(788bfac6) SHA1(8cec8ea7a876939719e9901b00055fc90615f237) ) - ROM_LOAD( "xba-1.1r", 0x1a000, 0x2000, CRC(b8ec43b3) SHA1(aebc8151025104d45d9b0ca88118f12b7ef9564b) ) - ROM_LOAD( "xba-1.1s", 0x1c000, 0x2000, CRC(c9ead134) SHA1(411115da95eb42d14a60a7f10c660038cc882005) ) - ROM_LOAD( "xba-1.1t", 0x1e000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) -ROM_END - - -ROM_START( cheyenne ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "cyl-1.1a", 0x08000, 0x2000, CRC(504c3fa6) SHA1(e3b8b3cfb0884c8bc7871382c3a2bf7dcd70641d) ) - ROM_LOAD( "cyl-1.3a", 0x0a000, 0x2000, CRC(09b7903b) SHA1(24676bf3f01a451b502281321828c80f875b5427) ) - ROM_LOAD( "cyl-1.4a", 0x0c000, 0x2000, CRC(b708646b) SHA1(790a04c2b7dce6577e3fa9625765e121bcc11acf) ) - ROM_LOAD( "cyl-1.6a", 0x0e000, 0x2000, CRC(5d1e708d) SHA1(57a067234701e814d96db2f5216acd9cd8aa8d2c) ) - ROM_LOAD( "cyl-1.1e", 0x10000, 0x2000, CRC(8778e317) SHA1(bcec069b50809fd14c022e98cffa5db858adfa18) ) - ROM_LOAD( "cyl-1.3e", 0x12000, 0x2000, CRC(c8a9ca1b) SHA1(9d9102233029692feeada5b2e0890ca6d2eb1d87) ) - ROM_LOAD( "cyl-1.4e", 0x14000, 0x2000, CRC(86c4125a) SHA1(fb3c866cd4fa9a3d5dac052629f5085679208ef4) ) - ROM_LOAD( "cyl-1.6e", 0x16000, 0x2000, CRC(51f4f060) SHA1(efdab96a81389f212a1ce1354d255a93066c4d0b) ) - ROM_LOAD( "cyl-1.7e", 0x18000, 0x2000, CRC(4924d0c1) SHA1(d2d4c70252da479b25931ce3de1966feb8e2540a) ) - ROM_LOAD( "cyl-1.8e", 0x1a000, 0x2000, CRC(5c7c4dd7) SHA1(958248dbac2718ccbb241612c4a686c323c304a7) ) - ROM_LOAD( "cyl-1.10e", 0x1c000, 0x2000, CRC(57232888) SHA1(e8ca135814916cb11b7196c35054ae63a75b42ad) ) - ROM_LOAD( "cyl-1.11e", 0x1e000, 0x2000, CRC(2a767252) SHA1(11e32a1c9e7d201d016b4773f4a68655fe02a1c0) ) - ROM_LOAD( "cyl-1.1d", 0x20000, 0x2000, CRC(cd590e99) SHA1(d0e9cf44e813798a42990811f4275f435dd46ffa) ) - ROM_LOAD( "cyl-1.3d", 0x22000, 0x2000, CRC(1fddccdb) SHA1(403fc0dbdd6cc0faf6d884dd785fe3eb26834c19) ) - ROM_LOAD( "cyl-1.4d", 0x24000, 0x2000, CRC(6c5ee6d7) SHA1(ad5497bec7c82f79d2548202673e7153e4da0514) ) - ROM_LOAD( "cyl-1.6d", 0x26000, 0x2000, CRC(0e7c16c2) SHA1(a8973d79e15057624fd8b4e3a5824b0fdfb66a23) ) - ROM_LOAD( "cyl-1.7d", 0x28000, 0x2000, CRC(abe11728) SHA1(e27b009d816a03103ea624c382d844c8fc78c3e3) ) - ROM_LOAD( "cyl-1.8d", 0x2a000, 0x2000, CRC(95bb9a72) SHA1(bdf0f9e3adc1c7e9143a1fe1955c8b63edff54b0) ) - ROM_LOAD( "cyl-1.10d", 0x2c000, 0x2000, CRC(5bc251be) SHA1(f9614ddb1a89711673665a2c807b242887e1fa26) ) - ROM_LOAD( "cyl-1.7c", 0x38000, 0x2000, CRC(e9f6ce96) SHA1(e17f5799f9065ad4bd97755f6676dc7f9976d85d) ) - ROM_LOAD( "cyl-1.8c", 0x3a000, 0x2000, CRC(cb3f8e9e) SHA1(7bba735cbed07e64a6c72d06d6f8948e1a0fb863) ) - ROM_LOAD( "cyl-1.10c", 0x3c000, 0x2000, CRC(49f90633) SHA1(6947555e322af0c8f2558b1a018118eed7aa2a2b) ) - ROM_LOAD( "cyl-1.11c", 0x3e000, 0x2000, CRC(70b69cf1) SHA1(9c151888afc4eee8d5ea48f3d4ed517a55e56b44) ) - ROM_LOAD( "cyl-1.1b", 0x40000, 0x2000, CRC(c372e018) SHA1(c7dc083c902b8e0e4212f6853b891bc53b7f2ca6) ) - ROM_LOAD( "cyl-1.3b", 0x42000, 0x2000, CRC(6a583feb) SHA1(8ff5908718e8b341462a3df3e9793ad0b7bbd7f7) ) - ROM_LOAD( "cyl-1.4b", 0x44000, 0x2000, CRC(670e127d) SHA1(c6e8222eb401c868896af4f856520ad3b04cb994) ) - ROM_LOAD( "cyl-1.6b", 0x46000, 0x2000, CRC(ed245268) SHA1(a2ff477f7ac29d280495beeef71c02982e0bf90f) ) - ROM_LOAD( "cyl-1.7b", 0x48000, 0x2000, CRC(dcc56d6c) SHA1(375ba5c765bb5ec3212d7a30c4db8e33e93067b6) ) - ROM_LOAD( "cyl-1.8b", 0x4a000, 0x2000, CRC(c0653d3e) SHA1(489e61d1e0a18fca47b906d80b88c47fdb927d36) ) - ROM_LOAD( "cyl-1.10b", 0x4c000, 0x2000, CRC(7fc67d19) SHA1(48307d50066c02376522e8fee0298c16f758b61d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "cya-1.1h", 0x0e000, 0x2000, CRC(5aed3d8c) SHA1(d04ddd09df471cd2a8dd87c47c7b55eca5d7ac15) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "cya-1.2k", 0x00000, 0x2000, CRC(dc2b716d) SHA1(ae588954431f8c4ecc7075f4964c3b8cc7ae0569) ) - ROM_LOAD( "cya-1.2l", 0x02000, 0x2000, CRC(091ad047) SHA1(edab4472f39a1f19614737c6c5722677f4afd68c) ) - ROM_LOAD( "cya-1.2m", 0x04000, 0x2000, CRC(59085362) SHA1(d4d7182ccdec17a29c556810b1d24aa6726f3826) ) - ROM_LOAD( "cya-1.2n", 0x06000, 0x2000, CRC(9c2e23c7) SHA1(4669c4949ebe69be3a20586a005716e84e0f3ac3) ) - ROM_LOAD( "cya-1.2p", 0x08000, 0x2000, CRC(eff18766) SHA1(623bd0e1bf645c683e77443bd256655ffc6ef2c2) ) - ROM_LOAD( "cya-1.2r", 0x0a000, 0x2000, CRC(8e730c98) SHA1(ab1dcbc5275da92d43abe4d88dcb7df8d21d24be) ) - ROM_LOAD( "cya-1.2s", 0x0c000, 0x2000, CRC(46515454) SHA1(85034df427134462459604dbf1ba6b3369538e12) ) - ROM_LOAD( "cya-1.2t", 0x0e000, 0x2000, CRC(5868fa84) SHA1(b9e71ac94cb4d63af8195991d486ae494ced1ed4) ) - ROM_LOAD( "cya-1.1k", 0x10000, 0x2000, CRC(45a306a6) SHA1(471b6329bb83ca14d3320f7a729f3a83557bb075) ) - ROM_LOAD( "cya-1.1l", 0x12000, 0x2000, CRC(3c7e2127) SHA1(85646e670e3415192ffec7bd524c4033f6bba25f) ) - ROM_LOAD( "cya-1.1m", 0x14000, 0x2000, CRC(39ddc9f7) SHA1(5230b595009dc6020a181755cbced6f0db11f2d2) ) - ROM_LOAD( "cya-1.1n", 0x16000, 0x2000, CRC(5fcee4fd) SHA1(3e4bc94284db237e5b0a5966cb1d2774f030d4b5) ) - ROM_LOAD( "cya-1.1p", 0x18000, 0x2000, CRC(81a4a876) SHA1(7dc18b0af14e11c9f14d6b03fd68709fc4d4d63f) ) - ROM_LOAD( "cya-1.1r", 0x1a000, 0x2000, CRC(dfd84e73) SHA1(6974091ce5cb1677d2e91da263be443023e55ce8) ) -ROM_END - - -ROM_START( combat ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "1a", 0x08000, 0x2000, CRC(159a573b) SHA1(751614f0c9518f6f55e647daa4a7bbf795bc6e6d) ) - ROM_LOAD( "3a", 0x0a000, 0x2000, CRC(59ae51a7) SHA1(c964aefb0705af0966386bae20fd5f885d1677b7) ) - ROM_LOAD( "4a", 0x0c000, 0x2000, CRC(95a1f3d0) SHA1(08f27ae7aa9959f22f08cbfdb101d31ce7e1510b) ) - ROM_LOAD( "6a", 0x0e000, 0x2000, CRC(af3fef5f) SHA1(f07d7313c053b7278ac640a0e5487700aa66f028) ) - ROM_LOAD( "6d", 0x26000, 0x2000, CRC(43d3eb61) SHA1(cc081cef28d930ec7c0de5b009d611673c4e4623) ) - ROM_LOAD( "7d", 0x28000, 0x2000, CRC(ef31659c) SHA1(254a2c41ff28bf64f7e4d55a04602a55f936025e) ) - ROM_LOAD( "8d", 0x2a000, 0x2000, CRC(fb29c5cd) SHA1(72e9d235031e523d35deae9dfc5215e1828c4f8b) ) - ROM_LOAD( "10d", 0x2c000, 0x2000, CRC(2ca0eaa4) SHA1(600d6de569e68a268fb2e03375e852ca9c792fe5) ) - ROM_LOAD( "11d", 0x2e000, 0x2000, CRC(cc9f2001) SHA1(2acc4021f22b0c2e95975ded4a545e8bb0780da5) ) - ROM_LOAD( "1c", 0x30000, 0x2000, CRC(b7b9c5ad) SHA1(c55d63420d7d50d8230a108c1d7716d6fbd8e29f) ) - ROM_LOAD( "3c", 0x32000, 0x2000, CRC(b700e6ec) SHA1(0d4876fa2ed813c031e633cf0ed78e301f91a6f1) ) - ROM_LOAD( "4c", 0x34000, 0x2000, CRC(89fc2b2d) SHA1(ef404ddbd04a19d25b6c8e609e1911472b733379) ) - ROM_LOAD( "6c", 0x36000, 0x2000, CRC(6a8d0dcf) SHA1(9b060e96dbba652a5ef698e44ae94cf0fb750310) ) - ROM_LOAD( "7c", 0x38000, 0x2000, CRC(9df7172d) SHA1(59978b7c8feab0af1c230fbc4568ce587d1e7e07) ) - ROM_LOAD( "8c", 0x3a000, 0x2000, CRC(63b2e4f3) SHA1(dc306f6a16a8fc51f9ad62f0314af80b1da28782) ) - ROM_LOAD( "10c", 0x3c000, 0x2000, CRC(3b430adc) SHA1(2e2f08b372e85a16a62bc6ab59e6f5c17366dde0) ) - ROM_LOAD( "11c", 0x3e000, 0x2000, CRC(04301032) SHA1(bed498e9e693ca121df633e3b2329c9dffb41cf9) ) - ROM_LOAD( "1b", 0x40000, 0x2000, CRC(70e25cae) SHA1(c6257b6548c89ce366c87efc04bc9e6571329e80) ) - ROM_LOAD( "3b", 0x42000, 0x2000, CRC(d09d167e) SHA1(b5f1e83b31727b15c8668a373cf503fb50de462e) ) - ROM_LOAD( "4b", 0x44000, 0x2000, CRC(f46aba0d) SHA1(6bc4e204a6ff6bf31b1a319190a1b47642e1c54c) ) - ROM_LOAD( "6b", 0x46000, 0x2000, CRC(8eb46f40) SHA1(93553fad23ee8183777875b35f7e0b3d67ed9ec9) ) - ROM_LOAD( "7b", 0x48000, 0x2000, CRC(3be9b1bd) SHA1(7852cbccc14eacb2980cd9e496e9a6ebba0b06b1) ) - ROM_LOAD( "8b", 0x4a000, 0x2000, CRC(ae977f4c) SHA1(a4cc9cae10482f03879b64c2b40fc8999b8a2b71) ) - ROM_LOAD( "10b", 0x4c000, 0x2000, CRC(502da003) SHA1(f4c579b2f997208f71b24590794275d87b06e25c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "1h", 0x0e000, 0x2000, CRC(8f3dd350) SHA1(9e329c2f502f63fcdbebeb40bf732e4a07a463c1) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k", 0x00000, 0x2000, CRC(1c9df8b5) SHA1(12e82f585aee01f1e2ea7396a6b013c894f7b98d) ) - ROM_LOAD( "2l", 0x02000, 0x2000, CRC(6b733306) SHA1(a41cc2e646392d71642abe2ab8d72f2d56214c02) ) - ROM_LOAD( "2m", 0x04000, 0x2000, CRC(dc074733) SHA1(29a036d4057b813f584373493cb5b69b711840ae) ) - ROM_LOAD( "2n", 0x06000, 0x2000, CRC(7985867f) SHA1(8d86777b7afa8a6c1a36e598a83feeb28536f02e) ) - ROM_LOAD( "2p", 0x08000, 0x2000, CRC(88684dcf) SHA1(fa006db1d70d2b557ab867ad766e27374e252f8c) ) - ROM_LOAD( "2r", 0x0a000, 0x2000, CRC(5857321e) SHA1(9726ce74b0e0b3e7fa44002d42342c5f2be00c22) ) - ROM_LOAD( "2s", 0x0c000, 0x2000, CRC(371e5235) SHA1(6cfa5ba2715a33c61fadc3d5b9347c26bb3279dd) ) - ROM_LOAD( "2t", 0x0e000, 0x2000, CRC(7ae65f05) SHA1(404bcfe629aecf1e0835d7feeaff8654829fd10f) ) - ROM_LOAD( "1k", 0x10000, 0x2000, CRC(f748ea87) SHA1(4d90f44edb01d65c28c9742c50b4cbe6e26aced3) ) - ROM_LOAD( "xba-1.2s", 0x16000, 0x2000, CRC(14dd8993) SHA1(066e163fca6d8f696d98d78b41b54a8d06eaba47) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1n", 0x18000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1p", 0x1a000, 0x2000, CRC(788bfac6) SHA1(8cec8ea7a876939719e9901b00055fc90615f237) ) /* from Crossbow */ - ROM_LOAD( "xba-1.2l", 0x1c000, 0x2000, CRC(2c24cb35) SHA1(4ea16998f477d6429a92ca05ef74daa21315e695) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1t", 0x1e000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) /* from Crossbow */ -ROM_END - - -ROM_START( catch22 ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "22l-8_0.1a", 0x08000, 0x2000, CRC(232e8723) SHA1(10da33e94026dc856ea4fcdd11945527321383d1) ) - ROM_LOAD( "22l-8_0.3a", 0x0a000, 0x2000, CRC(a94afce6) SHA1(bbc349240460c001e8eda78d80b36bb2c40b090e) ) - ROM_LOAD( "22l-8_0.4a", 0x0c000, 0x2000, CRC(0983ab83) SHA1(9954400f4595fdd6633b2b108a6d64bff24e7f23) ) - ROM_LOAD( "22l-8_0.6a", 0x0e000, 0x2000, CRC(9084a23a) SHA1(fbe9020d5d55dd7aec8958dccfa8931c9d950bc2) ) - ROM_LOAD( "6d", 0x26000, 0x2000, CRC(43d3eb61) SHA1(cc081cef28d930ec7c0de5b009d611673c4e4623) ) - ROM_LOAD( "7d", 0x28000, 0x2000, CRC(ef31659c) SHA1(254a2c41ff28bf64f7e4d55a04602a55f936025e) ) - ROM_LOAD( "8d", 0x2a000, 0x2000, CRC(fb29c5cd) SHA1(72e9d235031e523d35deae9dfc5215e1828c4f8b) ) - ROM_LOAD( "10d", 0x2c000, 0x2000, CRC(2ca0eaa4) SHA1(600d6de569e68a268fb2e03375e852ca9c792fe5) ) - ROM_LOAD( "11d", 0x2e000, 0x2000, CRC(cc9f2001) SHA1(2acc4021f22b0c2e95975ded4a545e8bb0780da5) ) - ROM_LOAD( "1c", 0x30000, 0x2000, CRC(b7b9c5ad) SHA1(c55d63420d7d50d8230a108c1d7716d6fbd8e29f) ) - ROM_LOAD( "3c", 0x32000, 0x2000, CRC(b700e6ec) SHA1(0d4876fa2ed813c031e633cf0ed78e301f91a6f1) ) - ROM_LOAD( "4c", 0x34000, 0x2000, CRC(89fc2b2d) SHA1(ef404ddbd04a19d25b6c8e609e1911472b733379) ) - ROM_LOAD( "6c", 0x36000, 0x2000, CRC(6a8d0dcf) SHA1(9b060e96dbba652a5ef698e44ae94cf0fb750310) ) - ROM_LOAD( "7c", 0x38000, 0x2000, CRC(9df7172d) SHA1(59978b7c8feab0af1c230fbc4568ce587d1e7e07) ) - ROM_LOAD( "8c", 0x3a000, 0x2000, CRC(63b2e4f3) SHA1(dc306f6a16a8fc51f9ad62f0314af80b1da28782) ) - ROM_LOAD( "10c", 0x3c000, 0x2000, CRC(3b430adc) SHA1(2e2f08b372e85a16a62bc6ab59e6f5c17366dde0) ) - ROM_LOAD( "11c", 0x3e000, 0x2000, CRC(04301032) SHA1(bed498e9e693ca121df633e3b2329c9dffb41cf9) ) - ROM_LOAD( "1b", 0x40000, 0x2000, CRC(70e25cae) SHA1(c6257b6548c89ce366c87efc04bc9e6571329e80) ) - ROM_LOAD( "3b", 0x42000, 0x2000, CRC(d09d167e) SHA1(b5f1e83b31727b15c8668a373cf503fb50de462e) ) - ROM_LOAD( "4b", 0x44000, 0x2000, CRC(f46aba0d) SHA1(6bc4e204a6ff6bf31b1a319190a1b47642e1c54c) ) - ROM_LOAD( "6b", 0x46000, 0x2000, CRC(8eb46f40) SHA1(93553fad23ee8183777875b35f7e0b3d67ed9ec9) ) - ROM_LOAD( "7b", 0x48000, 0x2000, CRC(3be9b1bd) SHA1(7852cbccc14eacb2980cd9e496e9a6ebba0b06b1) ) - ROM_LOAD( "8b", 0x4a000, 0x2000, CRC(ae977f4c) SHA1(a4cc9cae10482f03879b64c2b40fc8999b8a2b71) ) - ROM_LOAD( "10b", 0x4c000, 0x2000, CRC(502da003) SHA1(f4c579b2f997208f71b24590794275d87b06e25c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "1h", 0x0e000, 0x2000, CRC(8f3dd350) SHA1(9e329c2f502f63fcdbebeb40bf732e4a07a463c1) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k", 0x00000, 0x2000, CRC(1c9df8b5) SHA1(12e82f585aee01f1e2ea7396a6b013c894f7b98d) ) - ROM_LOAD( "2l", 0x02000, 0x2000, CRC(6b733306) SHA1(a41cc2e646392d71642abe2ab8d72f2d56214c02) ) - ROM_LOAD( "2m", 0x04000, 0x2000, CRC(dc074733) SHA1(29a036d4057b813f584373493cb5b69b711840ae) ) - ROM_LOAD( "2n", 0x06000, 0x2000, CRC(7985867f) SHA1(8d86777b7afa8a6c1a36e598a83feeb28536f02e) ) - ROM_LOAD( "2p", 0x08000, 0x2000, CRC(88684dcf) SHA1(fa006db1d70d2b557ab867ad766e27374e252f8c) ) - ROM_LOAD( "2r", 0x0a000, 0x2000, CRC(5857321e) SHA1(9726ce74b0e0b3e7fa44002d42342c5f2be00c22) ) - ROM_LOAD( "2s", 0x0c000, 0x2000, CRC(371e5235) SHA1(6cfa5ba2715a33c61fadc3d5b9347c26bb3279dd) ) - ROM_LOAD( "2t", 0x0e000, 0x2000, CRC(7ae65f05) SHA1(404bcfe629aecf1e0835d7feeaff8654829fd10f) ) - ROM_LOAD( "1k", 0x10000, 0x2000, CRC(f748ea87) SHA1(4d90f44edb01d65c28c9742c50b4cbe6e26aced3) ) - ROM_LOAD( "xba-1.2s", 0x16000, 0x2000, CRC(14dd8993) SHA1(066e163fca6d8f696d98d78b41b54a8d06eaba47) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1n", 0x18000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1p", 0x1a000, 0x2000, CRC(788bfac6) SHA1(8cec8ea7a876939719e9901b00055fc90615f237) ) /* from Crossbow */ - ROM_LOAD( "xba-1.2l", 0x1c000, 0x2000, CRC(2c24cb35) SHA1(4ea16998f477d6429a92ca05ef74daa21315e695) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1t", 0x1e000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) /* from Crossbow */ -ROM_END - - -ROM_START( cracksht ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "csl2.1a", 0x08000, 0x2000, CRC(16fd0171) SHA1(3c39d8e3483e0d6b82ec2e0d3cdd61250015b165) ) - ROM_LOAD( "csl2.3a", 0x0a000, 0x2000, CRC(906f3209) SHA1(2c479e525a3ed31969c168ddf5a72dc909c2c494) ) - ROM_LOAD( "csl2.4a", 0x0c000, 0x2000, CRC(9996d2bf) SHA1(5548cc3f83d745efa4d07fd36e1772b1eae5de48) ) - ROM_LOAD( "csl2.6a", 0x0e000, 0x2000, CRC(c8d6e945) SHA1(38f271730b6a652bad744c4f7221276b860a4f84) ) - ROM_LOAD( "csl2.11d", 0x2e000, 0x2000, CRC(b1173dd3) SHA1(b5ee86f980c14e162ccf8af84983f3385d106934) ) - ROM_LOAD( "csl2.1c", 0x30000, 0x2000, CRC(e44975a7) SHA1(b762c5664922dd8648c898a9318e29dac43810d6) ) - ROM_LOAD( "csl2.3c", 0x32000, 0x2000, CRC(a3ab11e9) SHA1(72b1946466027c15bcf7bbc3d21d032e08dde70b) ) - ROM_LOAD( "csl2.4c", 0x34000, 0x2000, CRC(89266302) SHA1(b5b1d20e1db64b51c0567dcf152bc13da2cd2f2c) ) - ROM_LOAD( "csl2.6c", 0x36000, 0x2000, CRC(bb0f8d32) SHA1(7322053747e5b8057051f2e4947c6882bf4bab8c) ) - ROM_LOAD( "csl2.7c", 0x38000, 0x2000, CRC(e203ed0b) SHA1(2117e007c6ee0ed1e52e128e22b70a37e1d87b58) ) - ROM_LOAD( "csl2.8c", 0x3a000, 0x2000, CRC(3e028a62) SHA1(6d5b5f170cfd74457893883fac5085de19f902b2) ) - ROM_LOAD( "csl2.10c", 0x3c000, 0x2000, CRC(c5494f9f) SHA1(bb75a1bcbc20312315f8d50e4a3316ff2b39ec16) ) - ROM_LOAD( "csl2.11c", 0x3e000, 0x2000, CRC(0159bdcb) SHA1(1927f5e3f3eff46b082c24f95bc3fcb107df0a02) ) - ROM_LOAD( "csl2.1b", 0x40000, 0x2000, CRC(8adf33fc) SHA1(7321fe06ca369fc590d6a6992de74cdb5dddbdb5) ) - ROM_LOAD( "csl2.3b", 0x42000, 0x2000, CRC(7561be69) SHA1(204a503cda61723f16e91b46c18aab658eda3941) ) - ROM_LOAD( "csl2.4b", 0x44000, 0x2000, CRC(848e3aff) SHA1(f494ad0c59eaaca9bb9d75998d4a62095bd40c95) ) - ROM_LOAD( "csl2.6b", 0x46000, 0x2000, CRC(d0fd87df) SHA1(3c37c28fe49b41c4b2c3c5a0b384ce2a2d3afd65) ) - ROM_LOAD( "csl2.7b", 0x48000, 0x2000, CRC(7e0a6a31) SHA1(d015926e34ecd9002b17fc8f2e3494cd88ae9176) ) - ROM_LOAD( "csl2.8b", 0x4a000, 0x2000, CRC(af1c8cb8) SHA1(d753539a2afa4f6b0a79b9c7364d9814eb5ec3c0) ) - ROM_LOAD( "csl2.10b", 0x4c000, 0x2000, CRC(8a0d6ad0) SHA1(024a8cebb56404c9efae0594e0b1d4a341ba9893) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "csa3.1h", 0x0e000, 0x2000, CRC(5ba8b4ac) SHA1(04d9d4bb7a5994c5ffe97ca22a43e7a1cbdef559) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "csa3.2k", 0x00000, 0x2000, CRC(067a4f71) SHA1(301b44bcb0c7145dbc2dfbaf5c7d9cc5aa0e2118) ) - ROM_LOAD( "csa3.2l", 0x02000, 0x2000, CRC(5716c59e) SHA1(8adb601ba04bbc27295afe993cdc0576a39c7a71) ) - ROM_LOAD( "csa3.2m", 0x04000, 0x2000, CRC(b3ff659b) SHA1(295b5153ad41d92ee53b53ed454b2487aea7f355) ) - ROM_LOAD( "csa3.2n", 0x06000, 0x2000, CRC(a8968342) SHA1(7c01414bb8ef0e68ff51d3764631cb4614059677) ) - ROM_LOAD( "csa3.2p", 0x08000, 0x2000, CRC(5db225b8) SHA1(f4ab6ac7459777b9e614df9a93d275ab6a47da8b) ) - ROM_LOAD( "csa3.2r", 0x0a000, 0x2000, CRC(fda2669d) SHA1(496cb06418ae04f74a82357cde44ba01bbfe184b) ) - ROM_LOAD( "csa3.2s", 0x0c000, 0x2000, CRC(e8d2413f) SHA1(68a00d788d9dcd251a8cb88eb49103d23d570123) ) - ROM_LOAD( "csa3.2t", 0x0e000, 0x2000, CRC(841a1855) SHA1(9aa01f09116c3256bffa991240abf87ff61b3515) ) - ROM_LOAD( "csa3.1k", 0x10000, 0x2000, CRC(27dda69b) SHA1(b63844df3f387ff269e453c32fded3c987cc7232) ) - ROM_LOAD( "csa3.1l", 0x12000, 0x2000, CRC(86eea479) SHA1(dad2e66f5e7d210ea004f44b65fa9afe5ea748ca) ) - ROM_LOAD( "csa3.1m", 0x14000, 0x2000, CRC(2c24cb35) SHA1(4ea16998f477d6429a92ca05ef74daa21315e695) ) - ROM_LOAD( "csa3.1n", 0x16000, 0x2000, CRC(f3a4f2be) SHA1(f0ab8a0a6fbb2911d99c961a65035835e54924de) ) - ROM_LOAD( "csa3.1p", 0x18000, 0x2000, CRC(14dd8993) SHA1(066e163fca6d8f696d98d78b41b54a8d06eaba47) ) - ROM_LOAD( "csa3.1r", 0x1a000, 0x2000, CRC(dfa783e4) SHA1(cb5e1132224085ff9694b8037abbed8d0926ca99) ) - ROM_LOAD( "csa3.1s", 0x1c000, 0x2000, CRC(18d097ac) SHA1(c3546c5a21458e7117d36f2e477d3d5db7827487) ) - ROM_LOAD( "csa3.1t", 0x1e000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) -ROM_END - - -ROM_START( claypign ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "claypige.1a", 0x08000, 0x2000, CRC(446d7004) SHA1(c2bbfbfdfd144ff61178dbacd244e2f9d1c3ffc3) ) - ROM_LOAD( "claypige.3a", 0x0a000, 0x2000, CRC(df39701b) SHA1(416f586441e87f7e2b36dee4731249a75b82c897) ) - ROM_LOAD( "claypige.4a", 0x0c000, 0x2000, CRC(f205afb8) SHA1(e031250ac57259dc20aab44d3ab22d4f75c08b9f) ) - ROM_LOAD( "claypige.6a", 0x0e000, 0x2000, CRC(97c36c6c) SHA1(cb9beafe07faf69162f8b691d4dc90149d1a4d28) ) - ROM_LOAD( "claypige.10c", 0x3c000, 0x2000, CRC(3d2957cd) SHA1(3c7c38f94d9e075e18954806ba52c131ff348df8) ) - ROM_LOAD( "claypige.11c", 0x3e000, 0x2000, CRC(e162a3af) SHA1(c7bc6e473f6fc6569a849e0bd135b4ae44aa9e7e) ) - ROM_LOAD( "claypige.1b", 0x40000, 0x2000, CRC(90f1e534) SHA1(26f80eaa0469d94d6e7ab1bae1f45b07697034ef) ) - ROM_LOAD( "claypige.3b", 0x42000, 0x2000, CRC(150c5993) SHA1(a1a0ab71c796a209d109fbabbd8ec0342164618e) ) - ROM_LOAD( "claypige.4b", 0x44000, 0x2000, CRC(dabb99fb) SHA1(491837ad504a16d4ddea9c633a5e8b99dab7870f) ) - ROM_LOAD( "claypige.6b", 0x46000, 0x2000, CRC(c3b86d26) SHA1(df75cb72486a395612575cdc7d5a886465d64c91) ) - ROM_LOAD( "claypige.7b", 0x48000, 0x2000, CRC(6140b026) SHA1(16949d1bcaec3c0c398df50a731da3bb44fa8e5b) ) - ROM_LOAD( "claypige.8b", 0x4a000, 0x2000, CRC(d0f9d170) SHA1(db4285a280a7d539aab91280c57db9c460468a69) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "claypige.h1", 0x0e000, 0x2000, CRC(9eedc68d) SHA1(966542a10e19f7afe065614bdb7dd8a9ad9d3c3d) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "claypige.k2", 0x00000, 0x2000, CRC(0dd93c6c) SHA1(630397dbc54923a713bef1d99b08df8d2668b8ea) ) - ROM_LOAD( "claypige.l2", 0x02000, 0x2000, CRC(e1d67c42) SHA1(8021432493cd9d5096b534505d469bb88a20e31f) ) - ROM_LOAD( "claypige.m2", 0x04000, 0x2000, CRC(b56d8bd5) SHA1(45ac65a0f066791bb50535705d502957bfffbd53) ) - ROM_LOAD( "claypige.n2", 0x06000, 0x2000, CRC(9e381cb5) SHA1(aeedb0030baa8a7f9396b917f0452a3edcd725c2) ) - ROM_LOAD( "xba-1.2l", 0x08000, 0x2000, CRC(2c24cb35) SHA1(4ea16998f477d6429a92ca05ef74daa21315e695) ) /* from Crossbow */ - ROM_LOAD( "xba-1.2k", 0x0a000, 0x2000, CRC(b6e57685) SHA1(ee690cb966af126bfb0bafa804e0ad5490cab1db) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1m", 0x0c000, 0x2000, CRC(18d097ac) SHA1(c3546c5a21458e7117d36f2e477d3d5db7827487) ) /* from Crossbow */ - ROM_LOAD( "xba-1.1t", 0x0e000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) /* from Crossbow */ - ROM_LOAD( "claypige.k1", 0x10000, 0x2000, CRC(07f12d18) SHA1(57041cd31abfd94f8c5ad172aeafef5302484973) ) - ROM_LOAD( "claypige.l1", 0x12000, 0x2000, CRC(f448eb4f) SHA1(40e2116dcff76a58bc460c4725bfd463d4dda227) ) - ROM_LOAD( "claypige.m1", 0x14000, 0x2000, CRC(36865f5b) SHA1(18dd278760daba466c5a52cf267878ec2afdede7) ) -ROM_END - - -ROM_START( chiller ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "chl3.1a", 0x08000, 0x2000, CRC(996ad02e) SHA1(0c242614f28b8ee1a65a4d336fb645c814a50293) ) - ROM_LOAD( "chl3.3a", 0x0a000, 0x2000, CRC(17e6f904) SHA1(e43adea5f3106bc97ac4762213478a02656300fe) ) - ROM_LOAD( "chl3.4a", 0x0c000, 0x2000, CRC(f30d6e32) SHA1(3425ea4c5a8d840b23626891ac47fc86f612654b) ) - ROM_LOAD( "chl3.6a", 0x0e000, 0x2000, CRC(f64fa8fe) SHA1(7a9dc6d137b6b1849cb108d8a6e2dc51382408b4) ) - ROM_LOAD( "chl3.1d", 0x20000, 0x2000, CRC(ce4aa4b0) SHA1(993e156283f3da80903192740216ac7d3b5bc590) ) - ROM_LOAD( "chl3.3d", 0x22000, 0x2000, CRC(a234952e) SHA1(6b6c2282dfd7db1e057fcd4846b75e0ff8449d6f) ) - ROM_LOAD( "chl3.4d", 0x24000, 0x2000, CRC(645dbae9) SHA1(266a22d7cde66802aeca1a084c3b720660e30293) ) - ROM_LOAD( "chl3.6d", 0x26000, 0x2000, CRC(440a5cd7) SHA1(cbf65278115f9f6b29066938e49edcb71be1cee3) ) - ROM_LOAD( "chl3.7d", 0x28000, 0x2000, CRC(062a541f) SHA1(27d55fc2be5fbb7efb9239bfd9b175c26b2cc82f) ) - ROM_LOAD( "chl3.8d", 0x2a000, 0x2000, CRC(31ff8f48) SHA1(6b43dcc4c9b89e1108e7efae751bb94edbbc8ab2) ) - ROM_LOAD( "chl3.10d", 0x2c000, 0x2000, CRC(5bceb965) SHA1(9691a87cf340d8f034d1ba89dd1b03de9363006e) ) - ROM_LOAD( "chl3.11d", 0x2e000, 0x2000, CRC(e16b5db3) SHA1(4ddbbedd63f02782a3fcec371fe6bc3380c44848) ) - ROM_LOAD( "chl3.1c", 0x30000, 0x2000, CRC(ebfd29e8) SHA1(3927c580e1c079ca60985f9e2c80d0ea9b38eda5) ) - ROM_LOAD( "chl3.3c", 0x32000, 0x2000, CRC(a04261e5) SHA1(de922254c573327423d46b61b52db82afb97d471) ) - ROM_LOAD( "chl3.4c", 0x34000, 0x2000, CRC(6fcbb15b) SHA1(6a2a2a69aaae519aaea7b2379fbd8a68d4be4712) ) - ROM_LOAD( "chl3.6c", 0x36000, 0x2000, CRC(bd0e0689) SHA1(f3feadffc5ce63affb4e620b7869a484cd12190e) ) - ROM_LOAD( "chl3.7c", 0x38000, 0x2000, CRC(2715571e) SHA1(fe053d8c0c203ac7ba579324a5414fac99f4f522) ) - ROM_LOAD( "chl3.8c", 0x3a000, 0x2000, CRC(364d9450) SHA1(d26cb55adf00b65c29b00be87d8aec310c64c345) ) - ROM_LOAD( "chl3.10c", 0x3c000, 0x2000, CRC(13180106) SHA1(c682b387469be12fac53191c46ab25fd42945ef0) ) - ROM_LOAD( "chl3.11c", 0x3e000, 0x2000, CRC(4a7ffe6f) SHA1(73c6bb2aa4c70647d934fc436e1870ad1c93b410) ) - ROM_LOAD( "chl3.1b", 0x40000, 0x2000, CRC(20c19bb6) SHA1(50c44ceb075a0cd301d34db09601014c421b04fe) ) - ROM_LOAD( "chl3.3b", 0x42000, 0x2000, CRC(e1f07ace) SHA1(6f51e289139db759720af912578f068b85e8b894) ) - ROM_LOAD( "chl3.4b", 0x44000, 0x2000, CRC(140d95db) SHA1(cf53963df8d2d4243d1804284e7c6d42c748b81d) ) - ROM_LOAD( "chl3.6b", 0x46000, 0x2000, CRC(faaf7cc8) SHA1(fc18ebc6183fdae43ec92304e356cd792a33d74d) ) - ROM_LOAD( "chl3.7b", 0x48000, 0x2000, CRC(5512b7e6) SHA1(54aa7c9f58cf8350ae59f0d409ac3420a5ad59ba) ) - ROM_LOAD( "chl3.8b", 0x4a000, 0x2000, CRC(6172b12f) SHA1(f23e88103ed6b67eefade835cbdb1e3260d07d92) ) - ROM_LOAD( "chl3.10b", 0x4c000, 0x2000, CRC(5d15342a) SHA1(74216b78a8f0bb44911b9cc74587b3edbacbbf01) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "cha3.1h", 0x0f000, 0x1000, CRC(b195cbba) SHA1(a74d14464ef0f07bfc83500483dd552f38fd55c8) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "cha3.2k", 0x00000, 0x2000, CRC(814a1c6e) SHA1(f7b22bc5a7d0b8fb9914b000520d68cc87c43957) ) - ROM_LOAD( "cha3.2l", 0x02000, 0x2000, CRC(b326007f) SHA1(c636f28f18697673d0a9b47a1494ea4060ca012f) ) - ROM_LOAD( "cha3.2m", 0x04000, 0x2000, CRC(11075e8c) SHA1(f87cb92126ddb3899fc95b3a20a1c7109fc2a60d) ) - ROM_LOAD( "cha3.2n", 0x06000, 0x2000, CRC(8c3f6184) SHA1(c87ce37b3f71cd75b370f2a6f1cd54fd022d65b3) ) - ROM_LOAD( "cha3.2p", 0x08000, 0x2000, CRC(3a8b4d0f) SHA1(d267d0365ce994f02b0ace32a2b440043f516605) ) - ROM_LOAD( "cha3.2r", 0x0a000, 0x2000, CRC(fc6c4e00) SHA1(bddbf016fb43d12aae13b55b1b4e0cb430c3e72e) ) - ROM_LOAD( "cha3.2s", 0x0c000, 0x2000, CRC(2440d5f3) SHA1(9b83e74cb1d0fa690c5a54a081e890e6da21677b) ) - ROM_LOAD( "cha3.2t", 0x0e000, 0x2000, CRC(9b2ce556) SHA1(debecc33c6e6d3861287c4df78279bcfa921ad5c) ) - ROM_LOAD( "cha3.1k", 0x10000, 0x2000, CRC(27f86fab) SHA1(dd8ca294ea338218c85faeeaed0144164203f17e) ) - ROM_LOAD( "cha3.1l", 0x12000, 0x2000, CRC(581dfde7) SHA1(e0bc92fd4900164e9a6bc9424e9a3b991e850ff8) ) - ROM_LOAD( "cha3.1m", 0x14000, 0x2000, CRC(36d47696) SHA1(b4d71daf8b9fe7b501f2e740122eaad08bb03c66) ) - ROM_LOAD( "cha3.1n", 0x16000, 0x2000, CRC(ce47bffe) SHA1(7c7f6402ac54f88e120971f5d5b66858acd15fb3) ) - ROM_LOAD( "cha3.1p", 0x18000, 0x2000, CRC(788bfac6) SHA1(8cec8ea7a876939719e9901b00055fc90615f237) ) - ROM_LOAD( "cha3.1r", 0x1a000, 0x2000, CRC(b8ec43b3) SHA1(aebc8151025104d45d9b0ca88118f12b7ef9564b) ) - ROM_LOAD( "cha3.1s", 0x1c000, 0x2000, CRC(5f41c282) SHA1(670b94534051ce5c6f0c8e0ff5ad7ab78c95be19) ) - ROM_LOAD( "cha3.1t", 0x1e000, 0x2000, CRC(3a3a48af) SHA1(4128f277e12753de66a9a7d5529920b97cfa12a8) ) -ROM_END - - -ROM_START( topsecex ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "tsl1.a1", 0x08000, 0x2000, CRC(30ff2142) SHA1(28dad2a785101229b3de1859f8fb068b49d6037c) ) - ROM_LOAD( "tsl1.a3", 0x0a000, 0x2000, CRC(9295e5b7) SHA1(cc73e6d111f922ca7ecd10ba576df3119cd4d328) ) - ROM_LOAD( "tsl1.a4", 0x0c000, 0x2000, CRC(402abca4) SHA1(02f093d0e81d21bc11e380d90e0ec9ff93a9760b) ) - ROM_LOAD( "tsl1.a6", 0x0e000, 0x2000, CRC(66eac7d8) SHA1(b70f85fe58dceb2add05d06eadd22b398b93129c) ) - ROM_LOAD( "tsl1.e3", 0x12000, 0x2000, CRC(f5b291fc) SHA1(055f4aba52f8e6e0ebda549a6b4a4b3cbf219a49) ) - ROM_LOAD( "tsl1.e4", 0x14000, 0x2000, CRC(b6c659ae) SHA1(cb997ed307c93c6e5b3e2aa5aa10137df8cd09a4) ) - ROM_LOAD( "tsl1.e6", 0x16000, 0x2000, CRC(cf457523) SHA1(0d7e72bfd63ce425a406dbffc315ed2e85b42ace) ) - ROM_LOAD( "tsl1.e7", 0x18000, 0x2000, CRC(5a29304c) SHA1(5edf24c7f2ca6b8e416fe3f5cc856c7b0d9a16a3) ) - ROM_LOAD( "tsl1.e8", 0x1a000, 0x2000, CRC(0750893b) SHA1(b3554858143c43b2e4bda4395c8ccb4a78907237) ) - ROM_LOAD( "tsl1.e10", 0x1c000, 0x2000, CRC(fb87a723) SHA1(ad487d837bdfdf3a8a3668f85a0cbf51f2a729f8) ) - ROM_LOAD( "tsl1.e11", 0x1e000, 0x2000, CRC(ecf78fac) SHA1(acd75d0afa08f419593360fe58fb5e7ac573884a) ) - ROM_LOAD( "tsl1.d1", 0x20000, 0x2000, CRC(3a316cbe) SHA1(27a8875d633631a56f6a43b516b1f0bb14f9a085) ) - ROM_LOAD( "tsl1.d3", 0x22000, 0x2000, CRC(58408a5f) SHA1(5d5bde5b55c5214812188cf76b3986ebb2b4abd5) ) - ROM_LOAD( "tsl1.d4", 0x24000, 0x2000, CRC(c3c85c13) SHA1(4e251030eb754042ed643a6f314cb0a48ab2e4d5) ) - ROM_LOAD( "tsl1.d6", 0x26000, 0x2000, CRC(f26a2864) SHA1(61984a3345dad3226a8a06e2cd8ad65a65aef0c5) ) - ROM_LOAD( "tsl1.d7", 0x28000, 0x2000, CRC(53195dc6) SHA1(8384af556905322b9e06703fa2719951f0552325) ) - ROM_LOAD( "tsl1.d8", 0x2a000, 0x2000, CRC(4fcfb3c8) SHA1(2f865f2c7dc2f5e384173782a41a62170c84fd26) ) - ROM_LOAD( "tsl1.d10", 0x2c000, 0x2000, CRC(6e20af8d) SHA1(a4a00dbe0a850e2df8e1141f2bb9808bc879e765) ) - ROM_LOAD( "tsl1.d11", 0x2e000, 0x2000, CRC(58c670e7) SHA1(db7cc24ffa3e1dec79bb2df3890680d7463c54a5) ) - ROM_LOAD( "tsl1.c1", 0x30000, 0x2000, CRC(630521f8) SHA1(204882477d5c157db6a2f702fc196792102bfbfd) ) - ROM_LOAD( "tsl1.c3", 0x32000, 0x2000, CRC(d0d7d908) SHA1(eecc9a3b8135aaed09a81a9fee0899c21ed72e7e) ) - ROM_LOAD( "tsl1.c4", 0x34000, 0x2000, CRC(dc2193c4) SHA1(11ff85c7ed65790c0570144b853ba07292e1f10d) ) - ROM_LOAD( "tsl1.c6", 0x36000, 0x2000, CRC(de417d5f) SHA1(98df166bb280d8b9c3b7a5f3e98c441ed19abc9b) ) - ROM_LOAD( "tsl1.c7", 0x38000, 0x2000, CRC(d75708c3) SHA1(1ae6b8a7fe0d43fe7428f8aeaf73e8602e05ff4a) ) - ROM_LOAD( "tsl1.c8", 0x3a000, 0x2000, CRC(69f639fd) SHA1(dfb5b8c532d3d1d9082e0523e63e5c3a32a173b7) ) - ROM_LOAD( "tsl1.c10", 0x3c000, 0x2000, CRC(5977e312) SHA1(73e7ff7478ea1698c944922ab4580d386d2a7147) ) - ROM_LOAD( "tsl1.c11", 0x3e000, 0x2000, CRC(07a6a534) SHA1(1883280c588c81875ef2250955ee97e6c9c5c4c6) ) - ROM_LOAD( "tsl1.b1", 0x40000, 0x2000, CRC(771ec128) SHA1(7d906c8432332a02a160c2624e67747eb108e71e) ) - ROM_LOAD( "tsl1.b3", 0x42000, 0x2000, CRC(e57af802) SHA1(d4cde9a6492ef750ba27270b387952a7624118ec) ) - ROM_LOAD( "tsl1.b4", 0x44000, 0x2000, CRC(7d63fe09) SHA1(944f0e66294de68f679e06ddc147f62d27d22e50) ) - ROM_LOAD( "tsl1.b6", 0x46000, 0x2000, CRC(e6c85d95) SHA1(f3d9b9fb58279df852e53f0221e087b62112df5b) ) - ROM_LOAD( "tsl1.b7", 0x48000, 0x2000, CRC(babb7e24) SHA1(aa948a57a8be1f8dc3405cfff428d629139ebd22) ) - ROM_LOAD( "tsl1.b8", 0x4a000, 0x2000, CRC(cc770802) SHA1(3830a7cb22e30e7af5a693fac3dad0f306a88c2b) ) - ROM_LOAD( "tsl1.b10", 0x4c000, 0x2000, CRC(079d0a1d) SHA1(91ee751e27b963b98774181f5037e3e88b4877df) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "tsa1.1h", 0x0e000, 0x2000, CRC(35a1dd40) SHA1(2a18b166f9ad2b6afc9e8448287228cd81d34f94) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "tsa1.2k", 0x00000, 0x2000, CRC(c0b7c8f9) SHA1(1d54da254d2524f3df49df6ad6961770852a663e) ) - ROM_LOAD( "tsa1.2l", 0x02000, 0x2000, CRC(d46f2f23) SHA1(6d3f9cf9f9d05faea86323a7752eea9467d6edc5) ) - ROM_LOAD( "tsa1.2m", 0x04000, 0x2000, CRC(04722ee4) SHA1(ab5d730330b98365fc02c38eb8545e5e1de4e93f) ) - ROM_LOAD( "tsa1.2n", 0x06000, 0x2000, CRC(266348a2) SHA1(957b541a4f3278d22153f20cdfa1ad3d31e77f4a) ) - ROM_LOAD( "tsa1.2p", 0x08000, 0x2000, CRC(33491a21) SHA1(64b2b7022297e5ee77b961b5cc751d12b711ad9b) ) - ROM_LOAD( "tsa1.2r", 0x0a000, 0x2000, CRC(669fb97a) SHA1(005c97b7f63970fce083513b485fd1f1226d90a1) ) - ROM_LOAD( "tsa1.2s", 0x0c000, 0x2000, CRC(a9167bc2) SHA1(47698943ea923c0f0c2dc60fab4c421417c1f16f) ) - ROM_LOAD( "tsa1.2t", 0x0e000, 0x2000, CRC(26bcd7ff) SHA1(7b037b7fb387420fb616db40cf0850d8b4b26a11) ) - ROM_LOAD( "tsa1.1k", 0x10000, 0x2000, CRC(60e9035d) SHA1(9ab7bbfbc7999f530f7e1921c8bdc0eefe05f9b0) ) - ROM_LOAD( "tsa1.1l", 0x12000, 0x2000, CRC(7de3bfa7) SHA1(618cb2419f3f574948cf7188de61a9eb3e6a5ff2) ) - ROM_LOAD( "tsa1.1m", 0x14000, 0x2000, CRC(77a86aef) SHA1(7f65766cd27e01fc9561ded622e3f27276f0cdb6) ) - ROM_LOAD( "tsa1.1n", 0x16000, 0x2000, CRC(4ffc26a7) SHA1(165e94458a4677defc5ca6e696520410d8e886c8) ) - ROM_LOAD( "tsa1.1p", 0x18000, 0x2000, CRC(d0c699aa) SHA1(c58319bef023c3266d42b7ae8ea8887857268330) ) - ROM_LOAD( "tsa1.1r", 0x1a000, 0x2000, CRC(753f0a5f) SHA1(24cda4f879c594840b1190e733d44bb2d59e9102) ) - ROM_LOAD( "tsa1.1s", 0x1c000, 0x2000, CRC(745f9340) SHA1(49ddae23057fbc1bc71afe4ebccbfc73a08953dc) ) - ROM_LOAD( "tsa1.1t", 0x1e000, 0x2000, CRC(0e74b7a6) SHA1(6d0c4e84fb2793aa86b3b7612aeac4a2d1394434) ) -ROM_END - - -ROM_START( hitnmiss ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "hml3.a1", 0x08000, 0x2000, CRC(d79ae18e) SHA1(bec0b583e7667390a0f97efeb031d97f5027a827) ) - ROM_LOAD( "hml3.a3", 0x0a000, 0x2000, CRC(61baf38b) SHA1(ac92baea5f235204e06ece2c1b7d674bcad0d265) ) - ROM_LOAD( "hml3.a4", 0x0c000, 0x2000, CRC(60ca260b) SHA1(21261e30465ce0c090adad10b88c3126f47d4178) ) - ROM_LOAD( "hml3.a6", 0x0e000, 0x2000, CRC(073305d8) SHA1(2b7b8734efe57d81484174a277790ecacdf89641) ) - ROM_LOAD( "hml3.d6", 0x26000, 0x2000, CRC(79578952) SHA1(993040ab401b2ad3d7278f6a2e94a8b7162b2214) ) - ROM_LOAD( "hml3.d7", 0x28000, 0x2000, CRC(8043b78e) SHA1(67b7621abfa2a94adaa83ab166240415f137238a) ) - ROM_LOAD( "hml3.d8", 0x2a000, 0x2000, CRC(a6494e2e) SHA1(6638dd8171e6c27c0ea7d13a3f072e7d886dccd6) ) - ROM_LOAD( "hml3.d10", 0x2c000, 0x2000, CRC(0810cc84) SHA1(3b556d366a3b2e7a096a0f93a3d0c23747c27225) ) - ROM_LOAD( "hml3.d11", 0x2e000, 0x2000, CRC(9f5c3799) SHA1(3ee569e9626a399c07e5f854ba298965e41d3993) ) - ROM_LOAD( "hml3.c1", 0x30000, 0x2000, CRC(6606d5a8) SHA1(14602bc3c4a977d212cc02adca775f5355ac81d4) ) - ROM_LOAD( "hml3.c3", 0x32000, 0x2000, CRC(f6b12e48) SHA1(5974b26770ca186bc253986b156c06be5a2efb4b) ) - ROM_LOAD( "hml3.c4", 0x34000, 0x2000, CRC(e5031d44) SHA1(bed6313d31094ebbf6fbeb26672b369113be9463) ) - ROM_LOAD( "hml3.c6", 0x36000, 0x2000, CRC(1b0f2f28) SHA1(5a7cf8cc95d01eb57e0220e733eafb0de856eba2) ) - ROM_LOAD( "hml3.c7", 0x38000, 0x2000, CRC(44920233) SHA1(a85b2ad3c71d0f021637e32067d8557fb40dd206) ) - ROM_LOAD( "hml3.c8", 0x3a000, 0x2000, CRC(7db26fad) SHA1(602546d36715e8efd206eb69522a287a98e8bc64) ) - ROM_LOAD( "hml3.c10", 0x3c000, 0x2000, CRC(b8f99481) SHA1(a8af6eb103a6c0981875f4d6e8da12616155b2df) ) - ROM_LOAD( "hml3.c11", 0x3e000, 0x2000, CRC(c2a0d170) SHA1(8fa38b3a0bd19db927fead87cfac42f80e7f86a2) ) - ROM_LOAD( "hml3.b1", 0x40000, 0x2000, CRC(945cb27c) SHA1(7e62aa108a868aaad2b1558a0134fb4c2426e0b5) ) - ROM_LOAD( "hml3.b3", 0x42000, 0x2000, CRC(3f022689) SHA1(476874eae92b37ccff6cf64ac74b59a4ad9a4472) ) - ROM_LOAD( "hml3.b4", 0x44000, 0x2000, CRC(d63fd250) SHA1(5949a513cdd65d65cd923a788651886f8ab583cc) ) - ROM_LOAD( "hml3.b6", 0x46000, 0x2000, CRC(afc89eed) SHA1(17053d6f304a7ef7cb01713dbcea913125236185) ) - ROM_LOAD( "hml3.b7", 0x48000, 0x2000, CRC(f3a12a58) SHA1(f278a6597fca15746cc50f4ced5fa76f530c2a16) ) - ROM_LOAD( "hml3.b8", 0x4a000, 0x2000, CRC(e0a5a6aa) SHA1(b012a1e23fd0acf9972714ed8aea0cedbb079a31) ) - ROM_LOAD( "hml3.b10", 0x4c000, 0x2000, CRC(de65dfdc) SHA1(c1105ff41596ee5f4c79143552eab87fcbe93d1e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "hma3.1h", 0x0e000, 0x2000, CRC(f718da36) SHA1(6c878725e679e0c553494c621bee059fe8b67ae8) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "hm2.2k", 0x00000, 0x2000, CRC(d3583b62) SHA1(99be3a858ab6b1c950ef684202adec4f5e60a361) ) - ROM_LOAD( "hm2.2l", 0x02000, 0x2000, CRC(c059d51e) SHA1(ddf437cdff6168e76c6a65078e0a2e2862805ca7) ) - ROM_LOAD( "hma.2m", 0x04000, 0x2000, CRC(09bb8495) SHA1(ea817cbbd89aa18d81f6025a856965d466efadff) ) - ROM_LOAD( "hma.2n", 0x06000, 0x2000, CRC(e3d290df) SHA1(5e711297738c702e29052a721cc814db4fc78d82) ) - ROM_LOAD( "hma.2p", 0x08000, 0x2000, CRC(f93d1ac0) SHA1(7c39f3891315bbaa01f56ce853b12077ed6e4441) ) - ROM_LOAD( "hma.2r", 0x0a000, 0x2000, CRC(0f3a090e) SHA1(d98e7c3e56973314b3498f515efb79279a836634) ) - ROM_LOAD( "hma.2s", 0x0c000, 0x2000, CRC(c5d35f84) SHA1(a305fc1196f76f9c8cd84c66ab8a05421e5856fa) ) - ROM_LOAD( "hma.2t", 0x0e000, 0x2000, CRC(9aa71457) SHA1(fa2bdebfee025022afdb10c483ccbf0d297b48fb) ) - ROM_LOAD( "xba.1n", 0x16000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) - ROM_LOAD( "hma.1p", 0x18000, 0x2000, CRC(021d89dd) SHA1(97501ab4c1b5fe55366e9d4831755ea43d759613) ) - ROM_LOAD( "hma.1r", 0x1a000, 0x2000, CRC(e8bb33bc) SHA1(246cbd125be5bc17b2693231bab1eafc0ed686bb) ) - ROM_LOAD( "hma.1s", 0x1c000, 0x2000, CRC(65f1aa6e) SHA1(5385d76fbcf551e26629544ddee7ca6a4b447a4a) ) - ROM_LOAD( "hma.1t", 0x1e000, 0x2000, CRC(eb35dfcc) SHA1(97ef32874c1f3cd3370b5784642c7c7bd134f54d) ) -ROM_END - - -ROM_START( hitnmis2 ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "hml2.a1", 0x08000, 0x2000, CRC(322f7e83) SHA1(e80e51c943402d0b644b1788e6a278130610d0e6) ) - ROM_LOAD( "hml2.a3", 0x0a000, 0x2000, CRC(0e12a721) SHA1(22ee013d68c1afc218672cbb40c99fc9de607328) ) - ROM_LOAD( "hml2.a4", 0x0c000, 0x2000, CRC(6cec8ad2) SHA1(7f755a3a79d913a549bda8a4f9d156ff152b7d7b) ) - ROM_LOAD( "hml2.a6", 0x0e000, 0x2000, CRC(008803ec) SHA1(3437103dc8698f9054363e188a1b2390b5ae88c4) ) - ROM_LOAD( "hml2.d4", 0x24000, 0x2000, CRC(62790789) SHA1(5ca02688e78ca79ae6b2e5c52df80788feb0e476) ) - ROM_LOAD( "hml2.d6", 0x26000, 0x2000, CRC(02d2d07e) SHA1(efedf61eb71a98b2f717bf95633fb85f7b1b7a0a) ) - ROM_LOAD( "hml2.d7", 0x28000, 0x2000, CRC(0f795f7a) SHA1(2f18e065e0b3567fa8dd8a7fe8d5cd37014e7e0e) ) - ROM_LOAD( "hml2.d8", 0x2a000, 0x2000, CRC(fe40c51d) SHA1(585c09b0c3f15ab0f37a8f32f6798280c57799f0) ) - ROM_LOAD( "hml2.d10", 0x2c000, 0x2000, CRC(9362c90c) SHA1(5fdd1afe28d310abb1b00e23df44ce2c2b584012) ) - ROM_LOAD( "hml2.d11", 0x2e000, 0x2000, CRC(0f77322f) SHA1(c02e8ebf2e1f53704069be747390a3776de2c67d) ) - ROM_LOAD( "hml2.c1", 0x30000, 0x2000, CRC(8e5803ff) SHA1(422b62227fc1e2715b5075c922ea8b948ee37a12) ) - ROM_LOAD( "hml2.c3", 0x32000, 0x2000, CRC(a7474441) SHA1(e7ba25785b9a276f875c16cd229a8b5e5e5cdd44) ) - ROM_LOAD( "hml2.c4", 0x34000, 0x2000, CRC(c74b9610) SHA1(415488b2bacdf3b5ccecfc75abe275be665b467d) ) - ROM_LOAD( "hml2.c6", 0x36000, 0x2000, CRC(aca63300) SHA1(d53f7305383c83c08f8777bb5fdcaf3974c2b19d) ) - ROM_LOAD( "hml2.c7", 0x38000, 0x2000, CRC(1990305e) SHA1(225f75165e0de26b07bdfdb1121f8545f56e621f) ) - ROM_LOAD( "hml2.c8", 0x3a000, 0x2000, CRC(bf08cf05) SHA1(6f8f53b0aa39d3edc6e6e0c3403d88be5a358223) ) - ROM_LOAD( "hml2.c10", 0x3c000, 0x2000, CRC(971323ca) SHA1(79b43ee142717533ffe06a95d80de238177d7d87) ) - ROM_LOAD( "hml2.c11", 0x3e000, 0x2000, CRC(dd172feb) SHA1(432a7383c7ad5a60dd53e12c1ca23d603302f8d4) ) - ROM_LOAD( "hml2.b1", 0x40000, 0x2000, CRC(af1fce57) SHA1(10336514d4dc3166f22f96e0083a9828b41aff83) ) - ROM_LOAD( "hml2.b3", 0x42000, 0x2000, CRC(0d16ef47) SHA1(0403cd40b421ae142e2e0e6aff4d720d6dfd9768) ) - ROM_LOAD( "hml2.b4", 0x44000, 0x2000, CRC(d5a8ff68) SHA1(daba4344eb29c9854773d03e57087e460ea8e1b6) ) - ROM_LOAD( "hml2.b6", 0x46000, 0x2000, CRC(13f439b1) SHA1(d7b372bc9800bbfaee9b080ee6727491295dd0df) ) - ROM_LOAD( "hml2.b7", 0x48000, 0x2000, CRC(9088c16d) SHA1(142d5b58ee95cf097bfe627ba8737494df9a231e) ) - ROM_LOAD( "hml2.b8", 0x4a000, 0x2000, CRC(9c2db94a) SHA1(aa90181c0cc3e130f872ff5beb2be340e7851e1a) ) - ROM_LOAD( "hml2.b10", 0x4c000, 0x2000, CRC(f01bd7d4) SHA1(169139c89582852b6141fd37e75486753674c557) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "hma2.1h", 0x0e000, 0x2000, CRC(9be48f45) SHA1(360138e3996828509b4bd1b3efccd61f05d215f0) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "hm2.2k", 0x00000, 0x2000, CRC(d3583b62) SHA1(99be3a858ab6b1c950ef684202adec4f5e60a361) ) - ROM_LOAD( "hm2.2l", 0x02000, 0x2000, CRC(c059d51e) SHA1(ddf437cdff6168e76c6a65078e0a2e2862805ca7) ) - ROM_LOAD( "hma.2m", 0x04000, 0x2000, CRC(09bb8495) SHA1(ea817cbbd89aa18d81f6025a856965d466efadff) ) - ROM_LOAD( "hma.2n", 0x06000, 0x2000, CRC(e3d290df) SHA1(5e711297738c702e29052a721cc814db4fc78d82) ) - ROM_LOAD( "hma.2p", 0x08000, 0x2000, CRC(f93d1ac0) SHA1(7c39f3891315bbaa01f56ce853b12077ed6e4441) ) - ROM_LOAD( "hma.2r", 0x0a000, 0x2000, CRC(0f3a090e) SHA1(d98e7c3e56973314b3498f515efb79279a836634) ) - ROM_LOAD( "hma.2s", 0x0c000, 0x2000, CRC(c5d35f84) SHA1(a305fc1196f76f9c8cd84c66ab8a05421e5856fa) ) - ROM_LOAD( "hma.2t", 0x0e000, 0x2000, CRC(9aa71457) SHA1(fa2bdebfee025022afdb10c483ccbf0d297b48fb) ) - ROM_LOAD( "xba.1n", 0x16000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) - ROM_LOAD( "hma.1p", 0x18000, 0x2000, CRC(021d89dd) SHA1(97501ab4c1b5fe55366e9d4831755ea43d759613) ) - ROM_LOAD( "hma.1r", 0x1a000, 0x2000, CRC(e8bb33bc) SHA1(246cbd125be5bc17b2693231bab1eafc0ed686bb) ) - ROM_LOAD( "hma.1s", 0x1c000, 0x2000, CRC(65f1aa6e) SHA1(5385d76fbcf551e26629544ddee7ca6a4b447a4a) ) - ROM_LOAD( "hma.1t", 0x1e000, 0x2000, CRC(eb35dfcc) SHA1(97ef32874c1f3cd3370b5784642c7c7bd134f54d) ) -ROM_END - - -ROM_START( whodunit ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "wdl8.1a", 0x08000, 0x2000, CRC(50658904) SHA1(5d1b44a0e20c4ec599c339235f42ca881f8a5bfc) ) - ROM_LOAD( "wdl8.3a", 0x0a000, 0x2000, CRC(5d1530f8) SHA1(258d19c14a757497e0ce95a3ab8332168d97e67c) ) - ROM_LOAD( "wdl8.4a", 0x0c000, 0x2000, CRC(0323d6b8) SHA1(b85ca3f6ec6599fbdf5db3901c23cf6a3feb832e) ) - ROM_LOAD( "wdl8.6a", 0x0e000, 0x2000, CRC(771b3fb1) SHA1(d296b397387a813e831bd187657b8dc1150e78c6) ) - ROM_LOAD( "wdl8.4e", 0x14000, 0x2000, CRC(33e44369) SHA1(9451b439b25d0d303ebbd72d63637f87ddd7c4fa) ) - ROM_LOAD( "wdl8.6e", 0x16000, 0x2000, CRC(64b1d850) SHA1(d49cf787e885cc10030b4889bb8890bef92d3b01) ) - ROM_LOAD( "wdl8.7e", 0x18000, 0x2000, CRC(aa54cf90) SHA1(0c303f71b871e3f44fb709d1f3cf50f76790fb21) ) - ROM_LOAD( "wdl8.8e", 0x1a000, 0x2000, CRC(cbd61200) SHA1(f8fbf291981ee63b4e32491aebbc37c5e3e55bbb) ) - ROM_LOAD( "wdl8.10e", 0x1c000, 0x2000, CRC(f24adde5) SHA1(e4b22da75341a70c75fa245e26e965f1f7cbf3a1) ) - ROM_LOAD( "wdl8.11e", 0x1e000, 0x2000, CRC(ad6fe69e) SHA1(039baebb3a232cbd2c497cfe8aba234469e16ada) ) - ROM_LOAD( "wdl6.1d", 0x20000, 0x2000, CRC(3572fb71) SHA1(dcc5b04c8a4c0db62eeffe8524f67574142f1a19) ) - ROM_LOAD( "wdl6.3d", 0x22000, 0x2000, CRC(158074f4) SHA1(d4520017973a4476ba9ed7b5ed7cbfc3f5302f3a) ) - ROM_LOAD( "wdl8.4d", 0x24000, 0x2000, CRC(601d8bd0) SHA1(118e5d7358034c98a1e4e87b1e523e574c8264bb) ) - ROM_LOAD( "wdl8.6d", 0x26000, 0x2000, CRC(b72e8f63) SHA1(bdb5b379d5c14123e59cd186499703ca2096027c) ) - ROM_LOAD( "wdl6.7d", 0x28000, 0x2000, CRC(e3f55a4b) SHA1(9d3e4fc68f9b8c7228ef407f039849fdcdb1d9ef) ) - ROM_LOAD( "wdl6.8d", 0x2a000, 0x2000, CRC(932689c8) SHA1(9b65db2c4ce544331290f3dd57fde3b6aab905ff) ) - ROM_LOAD( "wdl6.10d", 0x2c000, 0x2000, CRC(0c4348f2) SHA1(19a3919dccf198c2189e310545aa15b319990579) ) - ROM_LOAD( "wdl8.11d", 0x2e000, 0x2000, CRC(92391ffe) SHA1(1f4bb288ec80af3eb452ca8fe67cba862e23977b) ) - ROM_LOAD( "wdl8.1c", 0x30000, 0x2000, CRC(21c62c90) SHA1(98dbf416e9d88383bf3e0e17a71861671046aa20) ) - ROM_LOAD( "wdl8.3c", 0x32000, 0x2000, CRC(5a8123be) SHA1(c548384998a81950a4ee0f56e07698edfbb5bc88) ) - ROM_LOAD( "wdl6.4c", 0x34000, 0x2000, CRC(7b58dfac) SHA1(b52566a9bfcd30510accc7e32c3535b99bf3372c) ) - ROM_LOAD( "wdl6.6c", 0x36000, 0x2000, CRC(9be0b9a9) SHA1(62404abee217f332fce25941919aa87b85733182) ) - ROM_LOAD( "wdl6.7c", 0x38000, 0x2000, CRC(3cb3faae) SHA1(de719bc4806aa54ff73a723e3dfffed8bb394da0) ) - ROM_LOAD( "wdl6.8c", 0x3a000, 0x2000, CRC(51e95d91) SHA1(091dca2360456988da9ed39e757918ec58118258) ) - ROM_LOAD( "wdl6.10c", 0x3c000, 0x2000, CRC(eab12084) SHA1(aa75dfdeece07baa6cf72cecfc006af958768acf) ) - ROM_LOAD( "wdl6.11c", 0x3e000, 0x2000, CRC(fe2c532f) SHA1(199334fdc4c92ecacf4d4337bbe7419a53b78067) ) - ROM_LOAD( "wdl6.1b", 0x40000, 0x2000, CRC(cdaa5ca0) SHA1(1232e54cd61293f1cb7a8c628bb811bfd527ba93) ) - ROM_LOAD( "wdl6.3b", 0x42000, 0x2000, CRC(9bbc8161) SHA1(a4849ff8c957904a87f53edf79961a035e9b7c6b) ) - ROM_LOAD( "wdl8.4b", 0x44000, 0x2000, CRC(eb7dc583) SHA1(fe61e1eb16be246493db40f90090317d60a21bbf) ) - ROM_LOAD( "wdl8.6b", 0x46000, 0x2000, CRC(91c049a5) SHA1(8c6ae1e80925526902f80a2c549c6739353cdb86) ) - ROM_LOAD( "wdl6.7b", 0x48000, 0x2000, CRC(fe0a2d00) SHA1(a8649a95567f6c1f6513461a19250455b8cfe3ed) ) - ROM_LOAD( "wdl8.8b", 0x4a000, 0x2000, CRC(33792758) SHA1(408da288288f54f7446b083b14dc74d43ef4ab9f) ) - ROM_LOAD( "wdl6.10b", 0x4c000, 0x2000, CRC(2f48cfdb) SHA1(b546da26b7bdc52c454ff32e4503ef5e45e4b360) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "wda8.h1", 0x0e000, 0x2000, CRC(0090e5a7) SHA1(c97e4c83d507d1375320aa9cae07b9fa1ee442c8) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "wda6.k2", 0x00000, 0x2000, CRC(d4951375) SHA1(88616a7cb587748b366ece6126185a85e7375659) ) - ROM_LOAD( "wda6.l2", 0x02000, 0x2000, CRC(be8dcf07) SHA1(9a6e9b256da07be50feb81b27e53d86b3f016f4e) ) - ROM_LOAD( "wda6.m2", 0x04000, 0x2000, CRC(fb389e2d) SHA1(8ee1be233429d6b7cbb56a13586e2db49dffaca1) ) - ROM_LOAD( "wda6.n2", 0x06000, 0x2000, CRC(3849bc78) SHA1(2b5bffec6919c3f4dfd3618f715445b02905cc1d) ) - ROM_LOAD( "wda6.p2", 0x08000, 0x2000, CRC(d0dcea80) SHA1(ac3305eab146f1741d38678a6f473474bef05ade) ) - ROM_LOAD( "wda6.r2", 0x0a000, 0x2000, CRC(748b0930) SHA1(f7e06ca6bef86d2bc8fa4569bcfc8d2ec199e4bd) ) - ROM_LOAD( "wda6.s2", 0x0c000, 0x2000, CRC(23d5c5a9) SHA1(ab8997556b6a9c4a011c367a2035aeba3c752be1) ) - ROM_LOAD( "wda6.t2", 0x0e000, 0x2000, CRC(a807536d) SHA1(154564c189c7e6f755acda95178db503991ecbaa) ) - ROM_LOAD( "wda8.l1", 0x12000, 0x2000, CRC(27b856bd) SHA1(f66f6f898d2a7f044b7d331290a7bf32715b5587) ) - ROM_LOAD( "wda8.m1", 0x14000, 0x2000, CRC(8e15c601) SHA1(924b10523cf8ff802c0907dae96cbc9bae9fe4b0) ) - ROM_LOAD( "xba1.1n", 0x16000, 0x2000, CRC(2e855698) SHA1(fa4c3ec03fdd1c569c0ca2418899ffa81b5259ec) ) - ROM_LOAD( "wda6.p1", 0x18000, 0x2000, CRC(3ffaaa22) SHA1(a0848c0f4d799c3b6e9fe8e8f89e7e36754174f6) ) - ROM_LOAD( "wda6.r1", 0x1a000, 0x2000, CRC(0579a3b8) SHA1(554bced664c12547a766ee6df1278b967714b5ae) ) - ROM_LOAD( "wda6.s1", 0x1c000, 0x2000, CRC(f55c3c6e) SHA1(54878fe1106986e9aa26c6141921429119703990) ) - ROM_LOAD( "wda6.t1", 0x1e000, 0x2000, CRC(38363b52) SHA1(4b1c3225a32882e35e5af742f1c6b1e665722fd4) ) -ROM_END - - -ROM_START( showdown ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* 64k for code for the first CPU, plus lots of banked ROMs */ - ROM_LOAD( "showda1.bin", 0x08000, 0x2000, CRC(e4031507) SHA1(3d5183cd049be843fd38e3d1bd2d0a305df723bd) ) - ROM_LOAD( "showd3a.bin", 0x0a000, 0x2000, CRC(e7de171e) SHA1(881a2b596949de3b4bb1263e2aa08faeb3051a6e) ) - ROM_LOAD( "showd4a.bin", 0x0c000, 0x2000, CRC(5c8683c9) SHA1(81d0880fcbd3c1662ea4dd1662d6987adbdb4f71) ) - ROM_LOAD( "showd6a.bin", 0x0e000, 0x2000, CRC(4a408379) SHA1(1ec83b7416f948bc31bafa8ddaa87c23490bce16) ) - ROM_LOAD( "showd11e.bin", 0x1e000, 0x2000, CRC(1c6b34e5) SHA1(ae5ddd80d5fdc89274f44a30c4ec1aa325b26cc7) ) - ROM_LOAD( "showd1d.bin", 0x20000, 0x2000, CRC(db4c8cf6) SHA1(11fb37afb87b926f94f23abf90fb537a3a867aec) ) - ROM_LOAD( "showd3d.bin", 0x22000, 0x2000, CRC(24242867) SHA1(aa109231cad5fcb9e24578b567ff0fe50a72be44) ) - ROM_LOAD( "showd4d.bin", 0x24000, 0x2000, CRC(36f247e9) SHA1(749f5ea3307bfc02bced9535ebd733bb1297a0ae) ) - ROM_LOAD( "showd6d.bin", 0x26000, 0x2000, CRC(c9b14d8d) SHA1(48e66f5a4dc63c3948e32aeb0a151c8f9d2082b2) ) - ROM_LOAD( "showd7d.bin", 0x28000, 0x2000, CRC(fd054cd2) SHA1(a7fcedd30c088d2cb9fe013eaa1214b48f3569ab) ) - ROM_LOAD( "showd8d.bin", 0x2a000, 0x2000, CRC(8bf32822) SHA1(91a1ab0bc6aac3dfe7b7e60e3d35e7d4909aa09d) ) - ROM_LOAD( "showd10d.bin", 0x2c000, 0x2000, CRC(a2051da2) SHA1(f879459a90a00c9dc4ba0b1e8895bc1352286a8a) ) - ROM_LOAD( "showd11d.bin", 0x2e000, 0x2000, CRC(0748f345) SHA1(c435cd0769aa44162b3f7aa1bc230cadf572ca73) ) - ROM_LOAD( "showd1c.bin", 0x30000, 0x2000, CRC(c016cf73) SHA1(30221e5f878354933b8caf8c644f2c6f1e5dcd30) ) - ROM_LOAD( "showd3c.bin", 0x32000, 0x2000, CRC(652503ee) SHA1(90c76bb5d59ce0626d1d7f3feaea05ef984f9551) ) - ROM_LOAD( "showd4c.bin", 0x34000, 0x2000, CRC(b4dab193) SHA1(e028d2c865e7607f43bb7b4f2afe75082618a47b) ) - ROM_LOAD( "showd6c.bin", 0x36000, 0x2000, CRC(a1e6a2b3) SHA1(b75a0355e1245a8ca0dc438c66a96c064b7ab40a) ) - ROM_LOAD( "showd7c.bin", 0x38000, 0x2000, CRC(bc1bea93) SHA1(77fcfef6c509186af394f0ad67717c11ca447fb7) ) - ROM_LOAD( "showd8c.bin", 0x3a000, 0x2000, CRC(337dd7fa) SHA1(4df916968f5a2e12cdc8bab585f58b6f6a9d2f4c) ) - ROM_LOAD( "showd10c.bin", 0x3c000, 0x2000, CRC(3ad32d71) SHA1(1a032eb136c56b97305e64572730a40c40d9c52b) ) - ROM_LOAD( "showd11c.bin", 0x3e000, 0x2000, CRC(5fe91932) SHA1(f4f880c55e72159a6754f7c939b4dbb16522e3ad) ) - ROM_LOAD( "showd1b.bin", 0x40000, 0x2000, CRC(54ff987e) SHA1(ea50a6e2b6c409403cec035f96f4672814e153e2) ) - ROM_LOAD( "showd3b.bin", 0x42000, 0x2000, CRC(e302e915) SHA1(cb2413c24503fd2363f6e717e8de558f771427a4) ) - ROM_LOAD( "showd4b.bin", 0x44000, 0x2000, CRC(1b981516) SHA1(16c417c9c1918a00dee976f3513925f8f28e6f41) ) - ROM_LOAD( "showd6b.bin", 0x46000, 0x2000, CRC(4ee00996) SHA1(7201aef40f6ea3b73d0c009117c174f19d97b98e) ) - ROM_LOAD( "showd7b.bin", 0x48000, 0x2000, CRC(018b7c00) SHA1(04879f476687e087d21bd8d5f439f3e45d39d142) ) - ROM_LOAD( "showd8b.bin", 0x4a000, 0x2000, CRC(024fe6ee) SHA1(4287091e65c58aec75c54e320c534d41def951f9) ) - ROM_LOAD( "showd10b.bin", 0x4c000, 0x2000, CRC(0b318dfe) SHA1(feb65530ea3aea6b0786875dc48d96e07d579636) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "showd1h.bin", 0x0e000, 0x2000, CRC(6a10ff47) SHA1(ee57de74ab9a5cfe5726212a9b905e91e6461225) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "showd2k.bin", 0x00000, 0x2000, CRC(67a86f7f) SHA1(a4f70aab90acd2502e8f3f39efdafcd71b1a22b4) ) - ROM_LOAD( "showd2l.bin", 0x02000, 0x2000, CRC(0bb8874b) SHA1(8b643dbd5412a713b3e2831dd1ba2b7d1f613ac2) ) - ROM_LOAD( "showd2m.bin", 0x04000, 0x2000, CRC(8b77eac8) SHA1(d70038cd6655e71c6488c555ecb1d1a424d00d49) ) - ROM_LOAD( "showd2n.bin", 0x06000, 0x2000, CRC(78e6eed6) SHA1(d9218745fc497a67373b0f6fd82caeef33bb4b3e) ) - ROM_LOAD( "showd2p.bin", 0x08000, 0x2000, CRC(03a13435) SHA1(1965d26a2f294e883cc6a13bc89bf0c28e30d28e) ) - ROM_LOAD( "showd2r.bin", 0x0a000, 0x2000, CRC(1b6b7eac) SHA1(b30965203807d8b863e8b2863a222d2e614eee2d) ) - ROM_LOAD( "showd2s.bin", 0x0c000, 0x2000, CRC(b88aeb82) SHA1(62d87430c7aec1aec892a15e45fb257206d8cf94) ) - ROM_LOAD( "showd2t.bin", 0x0e000, 0x2000, CRC(5c801f4d) SHA1(e6dbb2d2815b9d848c0580cff47d1f0d10c1906d) ) - ROM_LOAD( "showd1k.bin", 0x10000, 0x2000, CRC(4e1f4f15) SHA1(cf075e09eaeab1e630b5b2e28c806d4c34eece48) ) - ROM_LOAD( "showd1l.bin", 0x12000, 0x2000, CRC(6779a745) SHA1(de7d8e39f053eaa45238844e477732295d9af494) ) - ROM_LOAD( "showd1m.bin", 0x14000, 0x2000, CRC(9cebd8ea) SHA1(ff8121c16e8fe93a59c49c20459287f6b002bbbc) ) - ROM_LOAD( "showd1n.bin", 0x16000, 0x2000, CRC(689d8a3f) SHA1(aa592b9edcac8d264c9c89871283dfeebce2300e) ) - ROM_LOAD( "showd1p.bin", 0x18000, 0x2000, CRC(862b350d) SHA1(12e6c92ba424df578eac5a820a68aaaffd73c577) ) - ROM_LOAD( "showd1r.bin", 0x1a000, 0x2000, CRC(95b099ed) SHA1(1327852712ade3fc96bd8192045c081c4d32f4ba) ) - ROM_LOAD( "showd1s.bin", 0x1c000, 0x2000, CRC(8f230881) SHA1(daa8efc355fb042b2fce89a0d2950a90e56a806f) ) - ROM_LOAD( "showd1t.bin", 0x1e000, 0x2000, CRC(70e724c7) SHA1(df2905f91038693c87452813216aa86bbb81521b) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -#define SET_PARAMS(top,p0,p2,p3,mv,mt,cpr) \ - exidy440_topsecret = top;\ - port_0_xor = p0;\ - port_2_xor = p2;\ - port_3_xor = p3;\ - mirror_vblank_bit = mv;\ - mirror_trigger_bit = mt;\ - copy_protection_read = cpr - -static DRIVER_INIT( crossbow ) { SET_PARAMS(0, 0x00, 0x00, 0x00, 0, 0, 0x00); } -static DRIVER_INIT( cheyenne ) { SET_PARAMS(0, 0xff, 0x00, 0x00, 0, 0, 0x00); } -static DRIVER_INIT( combat ) { SET_PARAMS(0, 0xff, 0xff, 0x00, 0, 0, 0x00); } -static DRIVER_INIT( cracksht ) { SET_PARAMS(0, 0xff, 0xff, 0x04, 0, 0, 0x00); } -static DRIVER_INIT( claypign ) { SET_PARAMS(0, 0xff, 0xff, 0x04, 0, 0, 0x76); } -static DRIVER_INIT( chiller ) { SET_PARAMS(0, 0xff, 0xff, 0x04, 0, 0, 0x00); } -static DRIVER_INIT( topsecex ) { SET_PARAMS(1, 0xff, 0xff, 0x04, 0, 0, 0x00); } -static DRIVER_INIT( hitnmiss ) { SET_PARAMS(0, 0xff, 0xff, 0x04, 0, 1, 0x00); } -static DRIVER_INIT( whodunit ) { SET_PARAMS(0, 0xff, 0xff, 0x04, 1, 0, 0x00); } -static DRIVER_INIT( showdown ) -{ - SET_PARAMS(0, 0xff, 0xff, 0x04, 0, 0, 0x00); - - /* set up the fake PLD */ - showdown_bank_triggered = 0; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4055, 0x4055, 0, 0, showdown_pld_trigger_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x40ed, 0x40ed, 0, 0, showdown_pld_select1_r); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5243, 0x5243, 0, 0, showdown_pld_select2_r); - - /* ensure that we're triggered to bank "1" to start */ - exidy440_bank = 0; - showdown_pld_trigger_r(0); - showdown_pld_select1_r(0); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, crossbow, 0, exidy440, crossbow, crossbow, ROT0, "Exidy", "Crossbow (version 2.0)", 0 ) -GAME( 1984, cheyenne, 0, exidy440, cheyenne, cheyenne, ROT0, "Exidy", "Cheyenne (version 1.0)", 0 ) -GAME( 1985, combat, 0, exidy440, combat, combat, ROT0, "Exidy", "Combat (version 3.0)", 0 ) -GAME( 1985, catch22, combat, exidy440, catch22, combat, ROT0, "Exidy", "Catch-22 (version 8.0)", 0 ) -GAME( 1985, cracksht, 0, exidy440, cracksht, cracksht, ROT0, "Exidy", "Crackshot (version 2.0)", 0 ) -GAME( 1986, claypign, 0, exidy440, claypign, claypign, ROT0, "Exidy", "Clay Pigeon (version 2.0)", 0 ) -GAME( 1986, chiller, 0, exidy440, chiller, chiller, ROT0, "Exidy", "Chiller (version 3.0)", 0 ) -GAME( 1986, topsecex, 0, exidy440, topsecex, topsecex, ROT0, "Exidy", "Top Secret (Exidy) (version 1.0)", 0 ) -GAME( 1987, hitnmiss, 0, exidy440, hitnmiss, hitnmiss, ROT0, "Exidy", "Hit 'n Miss (version 3.0)", 0 ) -GAME( 1987, hitnmis2, hitnmiss, exidy440, hitnmiss, hitnmiss, ROT0, "Exidy", "Hit 'n Miss (version 2.0)", 0 ) -GAME( 1988, whodunit, 0, exidy440, whodunit, whodunit, ROT0, "Exidy", "Who Dunit (version 8.0)", 0 ) -GAME( 1988, showdown, 0, exidy440, showdown, showdown, ROT0, "Exidy", "Showdown (version 5.0)", 0 ) diff --git a/src/drivers/f-32.c b/src/drivers/f-32.c deleted file mode 100644 index 7715a0dbd..000000000 --- a/src/drivers/f-32.c +++ /dev/null @@ -1,382 +0,0 @@ -/******************************************************************** - - F-E1-32 driver - - - Supported Games PCB-ID - ---------------------------------- - Mosaic F-E1-32-009 - Wyvern Wings F-E1-32-010-D - - driver by Pierpaolo Prazzoli - -*********************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -static UINT32 *vram; - -static READ32_HANDLER( oki_32bit_r ) -{ - return OKIM6295_status_0_r(0); -} - -static WRITE32_HANDLER( oki_32bit_w ) -{ - OKIM6295_data_0_w(0, data & 0xff); -} - -static READ32_HANDLER( ym2151_status_32bit_r ) -{ - return YM2151_status_port_0_r(0); -} - -static WRITE32_HANDLER( ym2151_data_32bit_w ) -{ - YM2151_data_port_0_w(0, data & 0xff); -} - -static WRITE32_HANDLER( ym2151_register_32bit_w ) -{ - YM2151_register_port_0_w(0,data & 0xff); -} - -static WRITE32_HANDLER( vram_w ) -{ - int x,y; - - COMBINE_DATA(&vram[offset]); - - y = offset >> 8; - x = offset & 0xff; - - if(x < 320/2 && y < 224) - { - plot_pixel(tmpbitmap,x*2+0,y,(vram[offset] >> 16) & 0x7fff); - plot_pixel(tmpbitmap,x*2+1,y,vram[offset] & 0x7fff); - } -} - -static READ32_HANDLER( eeprom_r ) -{ - return EEPROM_read_bit(); -} - -static WRITE32_HANDLER( eeprom_bit_w ) -{ - EEPROM_write_bit(data & 0x01); -} - -static WRITE32_HANDLER( eeprom_cs_line_w ) -{ - EEPROM_set_cs_line( (data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); -} - -static WRITE32_HANDLER( eeprom_clock_line_w ) -{ - EEPROM_set_clock_line( (~data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); -} - -static WRITE32_HANDLER( wyvernwg_eeprom_w ) -{ - //check - EEPROM_write_bit(data & 0x01); - EEPROM_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); - EEPROM_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); - - // data & 8? -> video disabled? -} - - -static ADDRESS_MAP_START( common_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x001fffff) AM_RAM - AM_RANGE(0x40000000, 0x4003ffff) AM_WRITE(vram_w) AM_BASE(&vram) - AM_RANGE(0x80000000, 0x80ffffff) AM_ROM AM_REGION(REGION_USER2,0) - AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1,0) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mosaicf2_io, ADDRESS_SPACE_IO, 32 ) - AM_RANGE(0x4000, 0x4003) AM_READ(oki_32bit_r) - AM_RANGE(0x4810, 0x4813) AM_READ(ym2151_status_32bit_r) - AM_RANGE(0x5000, 0x5003) AM_READ(input_port_0_dword_r) - AM_RANGE(0x5200, 0x5203) AM_READ(input_port_1_dword_r) - AM_RANGE(0x5400, 0x5403) AM_READ(eeprom_r) - AM_RANGE(0x6000, 0x6003) AM_WRITE(oki_32bit_w) - AM_RANGE(0x6800, 0x6803) AM_WRITE(ym2151_data_32bit_w) - AM_RANGE(0x6810, 0x6813) AM_WRITE(ym2151_register_32bit_w) - AM_RANGE(0x7000, 0x7003) AM_WRITE(eeprom_clock_line_w) - AM_RANGE(0x7200, 0x7203) AM_WRITE(eeprom_cs_line_w) - AM_RANGE(0x7400, 0x7403) AM_WRITE(eeprom_bit_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wyvernwg_io, ADDRESS_SPACE_IO, 32 ) - AM_RANGE(0x2800, 0x2803) AM_READ(input_port_0_dword_r) - AM_RANGE(0x3000, 0x3003) AM_READ(input_port_1_dword_r) - AM_RANGE(0x7000, 0x7003) AM_WRITE(wyvernwg_eeprom_w) - AM_RANGE(0x7c00, 0x7c03) AM_READ(eeprom_r) -ADDRESS_MAP_END - -INPUT_PORTS_START( mosaicf2 ) - PORT_START - PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE( 0x00000400, IP_ACTIVE_LOW ) - PORT_BIT( 0x00007800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( wyvernwg ) - PORT_START - PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -static MACHINE_DRIVER_START( mosaicf2 ) - MDRV_CPU_ADD_TAG("main", E132XT, 20000000) // E132XN actually! /* 20 MHz */ - MDRV_CPU_PROGRAM_MAP(common_map,0) - MDRV_CPU_IO_MAP(mosaicf2_io,0) - MDRV_CPU_VBLANK_INT(irq5_line_pulse, 1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(generic_bitmapped) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 14318180/4) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 1789772.5) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( wyvernwg ) - MDRV_CPU_ADD_TAG("main", E132XT, 50000000) // E132T actually! /* 50 MHz */ - MDRV_CPU_PROGRAM_MAP(common_map,0) - MDRV_CPU_IO_MAP(wyvernwg_io,0) - MDRV_CPU_VBLANK_INT(irq5_line_pulse, 1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 223) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(generic_bitmapped) - MDRV_VIDEO_UPDATE(generic_bitmapped) - - /* sound hardware */ - // TODO -MACHINE_DRIVER_END - - -/* - -Mosaic (c) 1999 F2 System - -CPU: Hyperstone E1-32XN - Video: QuickLogic QL2003-XPL84C - Sound: OKI 6295, BS901 (YM2151) & BS902 (YM3012) - OSC: 20MHz & 14.31818MHz -EEPROM: 93C46 - -F-E1-32-009 -+------------------------------------------------------------------+ -| VOL +---------+ | -+-+ YM3812 | SND | | - | +---------+ | -+-+ YM2151 OKI6295 | -| | -| +---------------+ | -| | | | -|J +-------+ | | | -|A | VRAML | | QuickLogic | 14.31818MHz | -|M +-------+ | QL2003-XPL84C | | -|M +-------+ | 9819 BA | +-----+ | -|A | VRAMU | | | |93C46| | -| +-------+ +---------------+ +-----+ | -|C | -|O +---------+ +---------+ | -|N | L00 | | U00 | | -|N | | | | | -|E +---------+ +---------+ | -|C +------------+ +---------+ +---------+ | -|T | | | L01 | | U01 | | -|O | | | | | | | -|R | HyperStone | +---------+ +---------+ | -| | E1-32XN | +---------+ +---------+ | -| | | | L02 | | U02 | | -| +-----+ | | | | | | | -| |DRAML| +------------+ +---------+ +---------+ | -+-+ +-----+ +---------+ +---------+ | - | +-----+ 20MHz | L03 | | U03 | | -+-+ |DRAMU| | | | | | -| +-----+ +----------+ +---------+ +---------+ | -| +--+ +--+ | ROM1 | | -| |S3| |S1| +----------+ | -+------------------------------------------------------------------+ - -S3 is a reset button -S1 is the setup button - -VRAML & VRAMU are KM6161002CJ-12 -DRAML & DRAMU are GM71C18163CJ6 - -ROM1 & SND are stardard 27C040 and/or 27C020 eproms -L00-L03 & U00-U03 are 29F1610ML Flash roms -*/ - -ROM_START( mosaicf2 ) - ROM_REGION32_BE( 0x100000, REGION_USER1, ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ - /* 0 - 0x80000 empty */ - ROM_LOAD( "rom1.bin", 0x80000, 0x080000, CRC(fceb6f83) SHA1(b98afb477627c3b2d584c0f0fb26c4dd5b1a31e2) ) - - ROM_REGION32_BE( 0x1000000, REGION_USER2, 0 ) /* gfx data */ - ROM_LOAD32_WORD_SWAP( "u00.bin", 0x000000, 0x200000, CRC(a2329675) SHA1(bff8974fab9120274821c9c9646744317f47c79c) ) - ROM_LOAD32_WORD_SWAP( "l00.bin", 0x000002, 0x200000, CRC(d96fe93b) SHA1(005d9889077825fc0e308d2981f6fca5e6b51fe8) ) - ROM_LOAD32_WORD_SWAP( "u01.bin", 0x400000, 0x200000, CRC(6379e73f) SHA1(fe5abafbcbd828795cb06a08763fae1bbe2a75ad) ) - ROM_LOAD32_WORD_SWAP( "l01.bin", 0x400002, 0x200000, CRC(a269ea82) SHA1(d962a8b3293c6f46dbefa49859b2b3e594e7a386) ) - ROM_LOAD32_WORD_SWAP( "u02.bin", 0x800000, 0x200000, CRC(c17f95cd) SHA1(1c701185be138b615d2851866288647f40809c28) ) - ROM_LOAD32_WORD_SWAP( "l02.bin", 0x800002, 0x200000, CRC(69cd9c5c) SHA1(6b4d204a6ab5f36dfba9053bb3be2d094fcfdd00) ) - ROM_LOAD32_WORD_SWAP( "u03.bin", 0xc00000, 0x200000, CRC(0e47df20) SHA1(6f6c3e7fc8c99db7ddc73d8d10a661373bb72a1a) ) - ROM_LOAD32_WORD_SWAP( "l03.bin", 0xc00002, 0x200000, CRC(d79f6ca8) SHA1(4735dda9269aa05ba1251d335dc73914f5cb43b0) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Oki Samples */ - ROM_LOAD( "snd.bin", 0x000000, 0x040000, CRC(4584589c) SHA1(5f9824724f840767c3dc1dc04b203ddf3d78b84c) ) -ROM_END - -/* - -Wyvern Wings (c) 2001 Semicom, Game Vision License - - - CPU: Hyperstone E1-32T - Video: 2 QuickLogic QL12x16B-XPL84 FPGA - Sound: AdMOS QDSP1000 with QDSP QS1001A sample rom - OSC: 50MHz, 28MHz & 24MHz -EEPROM: 93C46 - -F-E1-32-010-D -+------------------------------------------------------------------+ -| VOL +-------+ +---------+ | -+-+ | QPSD | | U15A | +---------+ +---------+ | - | |QS1001A| | | | ROMH00 | | ROML00 | | -+-+ +-------+ +---------+ | | | | | -| +-------+ +---------+ +---------+ | -| |QPSD | +----------+ +---------+ +---------+ | -| |QS1000 | | U7 | | ROMH01 | | ROML01 | | -|J 24MHz +-------+ +----------+ | | | | | -|A +---------+ +---------+ | -|M 50MHz +-----+ +---------+ +---------+ | -|M |DRAM2| | ROMH02 | | ROML02 | | -|A +----------+ +-----+ +-----+ | | | | | -| | | +-----+ |93C46| +---------+ +---------+ | -|C |HyperStone| |DRAM1| +-----+ +---------+ +---------+ | -|O | E1-32T | +-----+ | ROMH03 | | ROML03 | | -|N | | 28MHz | | | | | -|N +----------+ +---------+ +---------+ | -|E | -|C +----------+ +------------+ +------------+ | -|T | GAL1 | | QuickLogic | | QuickLogic | | -|O +----------+ | 0048 BH | | 0048 BH | | -|R +----------+ | QL12X16B | | QL12X16B | | -| | ROM2 | | -XPL84C | | -XPL84C | | -| +----------+ +------------+ +------------+ | -| +----------+ +----+ | -| | ROM1 | |MEM3| | -+-++--+ +----------+ +----+ | - ||S1| +-----+ |MEM2| | -+-++--+ |CRAM2| +----+ | -| +--+ +-----+ |MEM7| | -| |S2| |CRAM1| +----+ | -| +--+ +-----+ |MEM6| | -+------------------------------------+----+------------------------+ - -S1 is the setup button -S2 is a reset button - -ROMH & ROML are all MX 29F1610MC-16 flash roms -u15A is a MX 29F1610MC-16 flash rom -u7 is a ST 27c1001 -ROM1 & ROM2 are both ST 27c4000D -*/ - -ROM_START( wyvernwg ) - ROM_REGION32_BE( 0x100000, REGION_USER1, 0 ) /* Hyperstone CPU Code */ - ROM_LOAD( "rom1.bin", 0x000000, 0x080000, CRC(66bf3a5c) SHA1(037d5e7a6ef6f5b4ac08a9c811498c668a9d2522) ) - ROM_LOAD( "rom2.bin", 0x080000, 0x080000, CRC(fd9b5911) SHA1(a01e8c6e5a9009024af385268ba3ba90e1ebec50) ) - - ROM_REGION32_BE( 0x1000000, REGION_USER2, 0 ) /* gfx data */ - ROM_LOAD32_WORD_SWAP( "romh00.bin", 0x000000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "roml00.bin", 0x000002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "romh01.bin", 0x400000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "roml01.bin", 0x400002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "romh02.bin", 0x800000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "roml02.bin", 0x800002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "romh03.bin", 0xc00000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD_SWAP( "roml03.bin", 0xc00002, 0x200000, NO_DUMP ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u7", 0x0000, 0x20000, CRC(00a3f705) SHA1(f0a6bafd16bea53d4c05c8cc108983cbd41e5757) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Music data / QDSP samples (SFX)?? */ - ROM_LOAD( "u15a", 0x00000, 0x200000, NO_DUMP ) - - ROM_REGION( 0x080000, REGION_SOUND2, ROMREGION_ERASEFF ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) -ROM_END - - - - -GAME( 1999, mosaicf2, 0, mosaicf2, mosaicf2, 0, ROT0, "F2 System", "Mosaic (F2 System)", GAME_SUPPORTS_SAVE ) -GAME( 2001, wyvernwg, 0, wyvernwg, wyvernwg, 0, ROT0, "Semicom (Game Vision License)", "Wyvern Wings", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/drivers/f1gp.c b/src/drivers/f1gp.c deleted file mode 100644 index 025f63f14..000000000 --- a/src/drivers/f1gp.c +++ /dev/null @@ -1,633 +0,0 @@ -/*************************************************************************** - -F-1 Grand Prix (c) 1991 Video System Co. - -driver by Nicola Salmoria - -Notes: -- The ROZ layer generator is a Konami 053936. -- f1gp2's hardware is very similar to Lethal Crash Race, main difference - being an extra 68000. - -TODO: -f1gp: -- gfxctrl register not understood - handling of fg/sprite priority to fix - "continue" screen is just a kludge. -f1gp2: -- sprite lag noticeable in the animation at the end of a race (the wheels - of the car are sprites while the car is the fg tilemap) - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "f1gp.h" -#include "sound/2610intf.h" - - - -static UINT16 *sharedram; - -static READ16_HANDLER( sharedram_r ) -{ - return sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&sharedram[offset]); -} - -static READ16_HANDLER( extrarom_r ) -{ - UINT8 *rom = memory_region(REGION_USER1); - - offset *= 2; - - return rom[offset] | (rom[offset+1] << 8); -} - -static READ16_HANDLER( extrarom2_r ) -{ - UINT8 *rom = memory_region(REGION_USER2); - - offset *= 2; - - return rom[offset] | (rom[offset+1] << 8); -} - -static WRITE8_HANDLER( f1gp_sh_bankswitch_w ) -{ - UINT8 *rom = memory_region(REGION_CPU3) + 0x10000; - - memory_set_bankptr(1,rom + (data & 0x01) * 0x8000); -} - - -static int pending_command; - -static WRITE16_HANDLER( sound_command_w ) -{ - if (ACCESSING_LSB) - { - pending_command = 1; - soundlatch_w(offset,data & 0xff); - cpunum_set_input_line(2, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static READ16_HANDLER( command_pending_r ) -{ - return (pending_command ? 0xff : 0); -} - -static WRITE8_HANDLER( pending_command_clear_w ) -{ - pending_command = 0; -} - - - -static ADDRESS_MAP_START( f1gp_readmem1, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r) - AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r) - AM_RANGE(0xc00000, 0xc3ffff) AM_READ(f1gp_zoomdata_r) - AM_RANGE(0xd00000, 0xd01fff) AM_READ(f1gp_rozvideoram_r) - AM_RANGE(0xd02000, 0xd03fff) AM_READ(f1gp_rozvideoram_r) /* mirror */ - AM_RANGE(0xd04000, 0xd05fff) AM_READ(f1gp_rozvideoram_r) /* mirror */ - AM_RANGE(0xd06000, 0xd07fff) AM_READ(f1gp_rozvideoram_r) /* mirror */ - AM_RANGE(0xe00000, 0xe03fff) AM_READ(MRA16_RAM) - AM_RANGE(0xe04000, 0xe07fff) AM_READ(MRA16_RAM) - AM_RANGE(0xf00000, 0xf003ff) AM_READ(MRA16_RAM) - AM_RANGE(0xf10000, 0xf103ff) AM_READ(MRA16_RAM) - AM_RANGE(0xff8000, 0xffbfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r) - AM_RANGE(0xffd000, 0xffdfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffe000, 0xffefff) AM_READ(MRA16_RAM) - AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r) -// AM_RANGE(0xfff002, 0xfff003) analog wheel? - AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_1_word_r) - AM_RANGE(0xfff006, 0xfff007) AM_READ(input_port_2_word_r) - AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r) - AM_RANGE(0xfff050, 0xfff051) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( f1gp_writemem1, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(f1gp_zoomdata_w) - AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) // BACK VRAM - AM_RANGE(0xd02000, 0xd03fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */ - AM_RANGE(0xd04000, 0xd05fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */ - AM_RANGE(0xd06000, 0xd07fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */ - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp_spr1cgram) AM_SIZE(&f1gp_spr1cgram_size) // SPR-1 CG RAM - AM_RANGE(0xe04000, 0xe07fff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp_spr2cgram) AM_SIZE(&f1gp_spr2cgram_size) // SPR-2 CG RAM - AM_RANGE(0xf00000, 0xf003ff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp_spr1vram) // SPR-1 VRAM - AM_RANGE(0xf10000, 0xf103ff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp_spr2vram) // SPR-2 VRAM - AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(MWA16_RAM) // WORK RAM-1 - AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) // DUAL RAM - AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER - AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE - AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp_gfxctrl_w) - AM_RANGE(0xfff002, 0xfff005) AM_WRITE(f1gp_fgscroll_w) - AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) - AM_RANGE(0xfff040, 0xfff05f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( f1gp2_readmem1, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r) - AM_RANGE(0xa00000, 0xa07fff) AM_READ(MRA16_RAM) - AM_RANGE(0xd00000, 0xd01fff) AM_READ(f1gp_rozvideoram_r) - AM_RANGE(0xe00000, 0xe00fff) AM_READ(MRA16_RAM) - AM_RANGE(0xff8000, 0xffbfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r) - AM_RANGE(0xffd000, 0xffdfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffe000, 0xffefff) AM_READ(MRA16_RAM) - AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r) -// AM_RANGE(0xfff002, 0xfff003) analog wheel? - AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_1_word_r) - AM_RANGE(0xfff006, 0xfff007) AM_READ(input_port_2_word_r) - AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r) - AM_RANGE(0xfff00a, 0xfff00b) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( f1gp2_writemem1, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xa00000, 0xa07fff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp2_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM - AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) // BACK VRAM - AM_RANGE(0xe00000, 0xe00fff) AM_WRITE(MWA16_RAM) AM_BASE(&f1gp2_spritelist) // not checked + SPR-1 VRAM + SPR-2 VRAM - AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(MWA16_RAM) // WORK RAM-1 - AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) // DUAL RAM - AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER - AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE - AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp2_gfxctrl_w) - AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w) - AM_RANGE(0xfff020, 0xfff02f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0xfff044, 0xfff047) AM_WRITE(f1gp_fgscroll_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0xff8000, 0xffbfff) AM_READ(MRA16_RAM) - AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_READ(MRA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x14, 0x14) AM_READ(soundlatch_r) - AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x1a, 0x1a) AM_READ(YM2610_status_port_0_B_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp - AM_RANGE(0x0c, 0x0c) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp2 - AM_RANGE(0x14, 0x14) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x18, 0x18) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0x19, 0x19) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0x1a, 0x1a) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0x1b, 0x1b) AM_WRITE(YM2610_data_port_0_B_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( f1gp ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x5000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) // Other desc. was too long ! - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, "Game Mode" ) - PORT_DIPSETTING( 0x0004, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x0000, "Multiple" ) - PORT_DIPNAME( 0x0008, 0x0008, "Multi Player" ) - PORT_DIPSETTING( 0x0008, "Type 1" ) - PORT_DIPSETTING( 0x0000, "Type 2" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x001f, 0x0010, "Country" ) - PORT_DIPSETTING( 0x0010, DEF_STR( World ) ) - PORT_DIPSETTING( 0x0001, "USA & Canada" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x0002, "Korea" ) - PORT_DIPSETTING( 0x0004, "Hong Kong" ) - PORT_DIPSETTING( 0x0008, "Taiwan" ) - /* all other values are invalid */ -INPUT_PORTS_END - - -/* the same as f1gp, but with an extra button */ -INPUT_PORTS_START( f1gp2 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x5000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x7000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) // Other desc. was too long ! - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0004, 0x0004, "Game Mode" ) - PORT_DIPSETTING( 0x0004, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x0000, "Multiple" ) - PORT_DIPNAME( 0x0008, 0x0008, "Multi Player" ) - PORT_DIPSETTING( 0x0008, "Type 1" ) - PORT_DIPSETTING( 0x0000, "Type 2" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Country" ) - PORT_DIPSETTING( 0x0001, DEF_STR( World ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Japan ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4, - 9*4, 8*4, 11*4, 10*4, 13*4, 12*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode f1gp_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x000, 1 }, - { REGION_GFX2, 0, &spritelayout, 0x100, 16 }, - { REGION_GFX3, 0, &spritelayout, 0x200, 16 }, - { REGION_GFX4, 0, &tilelayout, 0x300, 16 }, /* changed at runtime */ - { -1 } /* end of array */ -}; - -static const gfx_decode f1gp2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x000, 1 }, - { REGION_GFX2, 0, &spritelayout, 0x200, 32 }, - { REGION_GFX3, 0, &tilelayout, 0x100, 16 }, - { -1 } /* end of array */ -}; - - - -static void irqhandler(int irq) -{ - cpunum_set_input_line(2,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND1, - REGION_SOUND2 -}; - - - -static MACHINE_DRIVER_START( f1gp ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",M68000,10000000) /* 10 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(f1gp_readmem1,f1gp_writemem1) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(M68000,10000000) /* 10 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem2,writemem2) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) /* 4 MHz ??? */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */ - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(f1gp_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(f1gp) - MDRV_VIDEO_UPDATE(f1gp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( f1gp2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(f1gp) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(f1gp2_readmem1,f1gp2_writemem1) - - /* video hardware */ - MDRV_GFXDECODE(f1gp2_gfxdecodeinfo) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - - MDRV_VIDEO_START(f1gp2) - MDRV_VIDEO_UPDATE(f1gp2) -MACHINE_DRIVER_END - - - -ROM_START( f1gp ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "rom1-a.3", 0x000000, 0x20000, CRC(2d8f785b) SHA1(6eca42ad2d57a31e055496141c89cb537f284378) ) - - ROM_REGION( 0x200000, REGION_USER1, 0 ) /* extra ROMs mapped at 100000 */ - ROM_LOAD16_BYTE( "rom11-a.2", 0x000000, 0x40000, CRC(53df8ea1) SHA1(25d50bb787f3bd35c9a8ae2b0ab9a21e000debb0) ) - ROM_LOAD16_BYTE( "rom10-a.1", 0x000001, 0x40000, CRC(46a289fb) SHA1(6a8c19e08b6d836fe83378fd77fead82a0b2db7c) ) - ROM_LOAD16_BYTE( "rom13-a.4", 0x080000, 0x40000, CRC(7d92e1fa) SHA1(c23f5beea85b0804c61ef9e7f131b186d076221f) ) - ROM_LOAD16_BYTE( "rom12-a.3", 0x080001, 0x40000, CRC(d8c1bcf4) SHA1(d6d77354eb1ab413ba8cfa5d973cf5b0c851c23b) ) - ROM_LOAD16_BYTE( "rom6-a.6", 0x100000, 0x40000, CRC(6d947a3f) SHA1(2cd01ee2a73ab105a45a5464a29fd75aa43ba2db) ) - ROM_LOAD16_BYTE( "rom7-a.5", 0x100001, 0x40000, CRC(7a014ba6) SHA1(8f0abbb68100e396e5a41337254cb6bf1a2ed00b) ) - ROM_LOAD16_BYTE( "rom9-a.8", 0x180000, 0x40000, CRC(49286572) SHA1(c5e16bd1ccd43452337a4cd76db70db079ca0706) ) - ROM_LOAD16_BYTE( "rom8-a.7", 0x180001, 0x40000, CRC(0ed783c7) SHA1(c0c467ede51c08d84999897c6d5cc8b584b23b67) ) - - ROM_REGION( 0x200000, REGION_USER2, 0 ) /* extra ROMs mapped at a00000 */ - /* containing gfx data for the 053936 */ - ROM_LOAD( "rom2-a.06", 0x000000, 0x100000, CRC(747dd112) SHA1(b9264bec61467ab256cf6cb698b6e0ea8f8006e0) ) - ROM_LOAD( "rom3-a.05", 0x100000, 0x100000, CRC(264aed13) SHA1(6f0de860d4299befffc530b7a8f19656982a51c4) ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "rom4-a.4", 0x000000, 0x20000, CRC(8e811d36) SHA1(2b806b50a3a307a21894687f16485ace287a7c4c) ) - - ROM_REGION( 0x30000, REGION_CPU3, 0 ) /* 64k for the audio CPU + banks */ - ROM_LOAD( "rom5-a.8", 0x00000, 0x08000, CRC(9ea36e35) SHA1(9254dea8362318d8cfbd5e36e476e0e235e6326a) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom3-b.07", 0x000000, 0x100000, CRC(ffb1d489) SHA1(9330b67e0eaaf67d6c38f40a02c72419bd38fb81) ) - ROM_LOAD( "rom2-b.04", 0x100000, 0x100000, CRC(d1b3471f) SHA1(d1a95fbaad1c3d9ec2121bf65abbcdb5441bd0ac) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_WORD( "rom5-b.2", 0x000000, 0x80000, CRC(17572b36) SHA1(c58327c2f708783a3e8470e290cae0d71454f1da) ) - ROM_LOAD32_WORD( "rom4-b.3", 0x000002, 0x80000, CRC(72d12129) SHA1(11da6990a54ae1b6f6d0bed5d0431552f83a0dda) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD32_WORD( "rom7-b.17", 0x000000, 0x40000, CRC(2aed9003) SHA1(45ff9953ad98063573e7fd7b930ae8b0183cdd04) ) - ROM_LOAD32_WORD( "rom6-b.16", 0x000002, 0x40000, CRC(6789ef12) SHA1(9b0d1cc6e9c6398ccb7f635c4c148fddd224a21f) ) - - ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_ERASE00 ) /* gfx data for the 053936 */ - /* RAM, not ROM - handled at run time */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* sound samples */ - ROM_LOAD( "rom14-a.09", 0x000000, 0x100000, CRC(b4c1ac31) SHA1(acab2e1b5ce4ca3a5c4734562481b54db4b46995) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */ - ROM_LOAD( "rom17-a.08", 0x000000, 0x100000, CRC(ea70303d) SHA1(8de1a0e6d47cd80a622663c1745a1da54cd0ea05) ) -ROM_END - -ROM_START( f1gp2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "rom12.v1", 0x000000, 0x20000, CRC(c5c5f199) SHA1(56fcbf1d9b15a37204296c578e1585599f76a107) ) - ROM_LOAD16_BYTE( "rom14.v2", 0x000001, 0x20000, CRC(dd5388e2) SHA1(66e88f86edc2407e5794519f988203a52d65636d) ) - - ROM_REGION( 0x200000, REGION_USER1, 0 ) /* extra ROMs mapped at 100000 */ - ROM_LOAD( "rom2", 0x100000, 0x100000, CRC(3b0cfa82) SHA1(ea6803dd8d30aa9f3bd578e113fc26f20c640751) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "rom13.v3", 0x000000, 0x20000, CRC(c37aa303) SHA1(0fe09b398191888620fb676ed0f1593be575512d) ) - - ROM_REGION( 0x30000, REGION_CPU3, 0 ) /* 64k for the audio CPU + banks */ - ROM_LOAD( "rom5.v4", 0x00000, 0x08000, CRC(6a9398a1) SHA1(e907fe5f9c135c5b10ec650ec0c6d08cb856230c) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom1", 0x000000, 0x200000, CRC(f2d55ad7) SHA1(2f2d9dc4fab63b06ed7cba0ef1ced286dbfaa7b4) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rom15", 0x000000, 0x200000, CRC(1ac03e2e) SHA1(9073d0ae24364229a993046bd71e403988692993) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "rom11", 0x000000, 0x100000, CRC(b22a2c1f) SHA1(b5e67726be5a8561cd04c3c07895b8518b73b89c) ) - ROM_LOAD( "rom10", 0x100000, 0x100000, CRC(43fcbe23) SHA1(54ab58d904890a0b907e674f855092e974c45edc) ) - ROM_LOAD( "rom9", 0x200000, 0x100000, CRC(1bede8a1) SHA1(325ecc3afb30d281c2c8a56719e83e4dc20545bb) ) - ROM_LOAD( "rom8", 0x300000, 0x100000, CRC(98baf2a1) SHA1(df7bd1a743ad0a6e067641e2b7a352c466875ef6) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* sound samples */ - ROM_LOAD( "rom4", 0x000000, 0x080000, CRC(c2d3d7ad) SHA1(3178096741583cfef1ca8f53e6efa0a59e1d5cb6) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* sound samples */ - ROM_LOAD( "rom3", 0x000000, 0x100000, CRC(7f8f066f) SHA1(5e051d5feb327ac818e9c7f7ac721dada3a102b6) ) -ROM_END - - - -GAME( 1991, f1gp, 0, f1gp, f1gp, 0, ROT90, "Video System Co.", "F-1 Grand Prix", GAME_NO_COCKTAIL ) -GAME( 1992, f1gp2, 0, f1gp2, f1gp2, 0, ROT90, "Video System Co.", "F-1 Grand Prix Part II", GAME_NO_COCKTAIL ) diff --git a/src/drivers/fastlane.c b/src/drivers/fastlane.c deleted file mode 100644 index 3119266f6..000000000 --- a/src/drivers/fastlane.c +++ /dev/null @@ -1,343 +0,0 @@ -/*************************************************************************** - -Fast Lane(GX752) (c) 1987 Konami - -Driver by Manuel Abadia - -TODO: -- is the game playable? How do you end a level? -- colors don't seem 100% accurate. -- verify that sound is correct (volume and bank switching) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/hd6309/hd6309.h" -#include "vidhrdw/konamiic.h" -#include "sound/k007232.h" - -/* from vidhrdw/fastlane.c */ -extern unsigned char *fastlane_k007121_regs,*fastlane_videoram1,*fastlane_videoram2; -WRITE8_HANDLER( fastlane_vram1_w ); -WRITE8_HANDLER( fastlane_vram2_w ); -PALETTE_INIT( fastlane ); -VIDEO_START( fastlane ); -VIDEO_UPDATE( fastlane ); - -static INTERRUPT_GEN( fastlane_interrupt ) -{ - if (cpu_getiloops() == 0) - { - if (K007121_ctrlram[0][0x07] & 0x02) - cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); - } - else if (cpu_getiloops() % 2) - { - if (K007121_ctrlram[0][0x07] & 0x01) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -WRITE8_HANDLER( k007121_registers_w ) -{ - if (offset < 8) - K007121_ctrl_0_w(offset,data); - else /* scroll registers */ - fastlane_k007121_regs[offset] = data; -} - -static WRITE8_HANDLER( fastlane_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - - /* bits 0 & 1 coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bits 2 & 3 = bank number */ - bankaddress = 0x10000 + ((data & 0x0c) >> 2) * 0x4000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* bit 4: bank # for the 007232 (chip 2) */ - K007232_set_bank(1,0 + ((data & 0x10) >> 4),2 + ((data & 0x10) >> 4)); - - /* other bits seems to be unused */ -} - -/* Read and write handlers for one K007232 chip: - even and odd register are mapped swapped */ - -static READ8_HANDLER( fastlane_K007232_read_port_0_r ) -{ - return K007232_read_port_0_r(offset ^ 1); -} -static WRITE8_HANDLER( fastlane_K007232_write_port_0_w ) -{ - K007232_write_port_0_w(offset ^ 1, data); -} -static READ8_HANDLER( fastlane_K007232_read_port_1_r ) -{ - return K007232_read_port_1_r(offset ^ 1); -} -static WRITE8_HANDLER( fastlane_K007232_write_port_1_w ) -{ - K007232_write_port_1_w(offset ^ 1, data); -} - - - -static ADDRESS_MAP_START( fastlane_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x005f) AM_READ(MRA8_RAM) - AM_RANGE(0x0800, 0x0800) AM_READ(input_port_2_r) /* DIPSW #3 */ - AM_RANGE(0x0801, 0x0801) AM_READ(input_port_5_r) /* 2P inputs */ - AM_RANGE(0x0802, 0x0802) AM_READ(input_port_4_r) /* 1P inputs */ - AM_RANGE(0x0803, 0x0803) AM_READ(input_port_3_r) /* COINSW */ - AM_RANGE(0x0900, 0x0900) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x0901, 0x0901) AM_READ(input_port_1_r) /* DISPW #2 */ - AM_RANGE(0x0d00, 0x0d0d) AM_READ(fastlane_K007232_read_port_0_r)/* 007232 registers (chip 1) */ - AM_RANGE(0x0e00, 0x0e0d) AM_READ(fastlane_K007232_read_port_1_r)/* 007232 registers (chip 2) */ - AM_RANGE(0x0f00, 0x0f1f) AM_READ(K051733_r) /* 051733 (protection) */ - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* Palette RAM/Work RAM */ - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) /* Video RAM + Sprite RAM */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fastlane_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x005f) AM_WRITE(k007121_registers_w) AM_BASE(&fastlane_k007121_regs)/* 007121 registers */ - AM_RANGE(0x0b00, 0x0b00) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x0c00, 0x0c00) AM_WRITE(fastlane_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x0d00, 0x0d0d) AM_WRITE(fastlane_K007232_write_port_0_w) /* 007232 registers (chip 1) */ - AM_RANGE(0x0e00, 0x0e0d) AM_WRITE(fastlane_K007232_write_port_1_w) /* 007232 registers (chip 2) */ - AM_RANGE(0x0f00, 0x0f1f) AM_WRITE(K051733_w) /* 051733 (protection) */ - AM_RANGE(0x1000, 0x17ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette RAM */ - AM_RANGE(0x1800, 0x1fff) AM_WRITE(MWA8_RAM) /* Work RAM */ - AM_RANGE(0x2000, 0x27ff) AM_WRITE(fastlane_vram1_w) AM_BASE(&fastlane_videoram1) - AM_RANGE(0x2800, 0x2fff) AM_WRITE(fastlane_vram2_w) AM_BASE(&fastlane_videoram2) - AM_RANGE(0x3000, 0x3fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) /* Sprite RAM */ - AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM/banked ROM */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( fastlane ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* The bonus life affects the starting high score too, 20000 or 30000 */ - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20000 100000" ) - PORT_DIPSETTING( 0x10, "30000 150000" ) - PORT_DIPSETTING( 0x08, "20000" ) - PORT_DIPSETTING( 0x00, "30000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -static const gfx_layout gfxlayout = -{ - 8,8, - 0x80000/32, - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &gfxlayout, 0, 64*16 }, - { -1 } /* end of array */ -}; - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static void volume_callback1(int v) -{ - K007232_set_volume(1,0,(v >> 4) * 0x11,0); - K007232_set_volume(1,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface_1 = -{ - REGION_SOUND1, - volume_callback0 -}; - -static struct K007232_interface k007232_interface_2 = -{ - REGION_SOUND2, - volume_callback1 -}; - -static MACHINE_DRIVER_START( fastlane ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 24MHz/8? */ - MDRV_CPU_PROGRAM_MAP(fastlane_readmem,fastlane_writemem) - MDRV_CPU_VBLANK_INT(fastlane_interrupt,16) /* 1 IRQ + ??? NMI (generated by the 007121) */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(37*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - MDRV_COLORTABLE_LENGTH(1024*16) - - MDRV_PALETTE_INIT(fastlane) - MDRV_VIDEO_START(fastlane) - MDRV_VIDEO_UPDATE(fastlane) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_1) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_2) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( fastlane ) - ROM_REGION( 0x21000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "752_m02.9h", 0x08000, 0x08000, CRC(e1004489) SHA1(615b608d22abc3611f1620503cd6a8c9a6218db8) ) /* fixed ROM */ - ROM_LOAD( "752_e01.10h", 0x10000, 0x10000, CRC(ff4d6029) SHA1(b5c5d8654ce728300d268628bd3dd878570ba7b8) ) /* banked ROM */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "752e04.2i", 0x00000, 0x80000, CRC(a126e82d) SHA1(6663230c2c36dec563969bccad8c62e3d454d240) ) /* tiles + sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "752e03.6h", 0x0000, 0x0100, CRC(44300aeb) SHA1(580c6e88cbb3b6d8156ea0b9103834f199ec2747) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 007232 data */ - ROM_LOAD( "752e06.4c", 0x00000, 0x20000, CRC(85d691ed) SHA1(7f8d05562a68c75672141fc80ce7e7acb80588b9) ) /* chip 1 */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "752e05.12b", 0x00000, 0x80000, CRC(119e9cbf) SHA1(21e3def9ab10b210632df11b6df4699140c473db) ) /* chip 2 */ -ROM_END - - - -GAME( 1987, fastlane, 0, fastlane, fastlane, 0, ROT90, "Konami", "Fast Lane", GAME_IMPERFECT_COLORS ) diff --git a/src/drivers/firetrk.c b/src/drivers/firetrk.c deleted file mode 100644 index a7d635b4b..000000000 --- a/src/drivers/firetrk.c +++ /dev/null @@ -1,1218 +0,0 @@ -/*************************************************************************** - -Atari Fire Truck + Super Bug + Monte Carlo driver - -***************************************************************************/ - - -#include "driver.h" -#include "firetrk.h" -#include "sound/discrete.h" - -#define FIRETRK_CPU_CLOCK_1MHZ (12096000 / 12) -#define FIRETRK_CPU_CLOCK_750KZ (12096000 /16) - - -int firetrk_game; - -static int last_service; -static int steer_dir[2]; -static int steer_flag[2]; -static int attract; -static int gear; - - -static DRIVER_INIT( firetrk ) -{ - firetrk_game = 1; -} -static DRIVER_INIT( superbug ) -{ - firetrk_game = 2; -} -static DRIVER_INIT( montecar ) -{ - firetrk_game = 3; -} - - -static void set_firetrk_service(int enable) -{ - /* watchdog is disabled during service mode */ - watchdog_enable(!enable); - - /* change CPU clock speed according to service switch change */ - cpunum_set_clock(0, enable ? FIRETRK_CPU_CLOCK_750KZ : FIRETRK_CPU_CLOCK_1MHZ); -} - - -static INTERRUPT_GEN( firetrk_interrupt ) -{ - int firetrk_service; - - if (GAME_IS_FIRETRUCK) - { - firetrk_service = readinputport(4) & 0x80; - if (firetrk_service != last_service) - { - set_firetrk_service(firetrk_service); - - last_service = firetrk_service; - } - if (firetrk_service) - return; - } - else - if (GAME_IS_MONTECARLO) - { - firetrk_service = readinputport(6) & 0x04; - if (firetrk_service != last_service) - { - set_firetrk_service(firetrk_service); - - last_service = firetrk_service; - } - if (firetrk_service) - return; - } - else - discrete_sound_w(SUPERBUG_ASR_EN, 0); /* Super Bug - ASR */ - - /* NMI interrupts are disabled during service mode in firetrk and montecar */ - /* they never make it here if in service mode */ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - - -static void periodic_callback(int scanline) -{ - cpunum_set_input_line(0, 0, PULSE_LINE); - - /* IRQs are generated by inverse 16V signal */ - - scanline += 32; - - if (scanline > 256) - { - scanline = 0; - } - - timer_set(cpu_getscanlinetime(scanline), scanline, periodic_callback); -} - - -static void frame_callback(int dummy) -{ - static UINT8 dial[2]; - - int i; - - /* handle steering wheels */ - - for (i = 0; i < 2; i++) - { - signed char delta = readinputport(i) - dial[i]; - - if (delta < 0) - { - steer_flag[i] = 1; - steer_dir[i] = 0; - } - if (delta > 0) - { - steer_flag[i] = 1; - steer_dir[i] = 1; - } - - dial[i] += delta; - } - - if (GAME_IS_FIRETRUCK) - { - /* map horn button onto discrete sound emulation */ - discrete_sound_w(FIRETRUCK_HORN_EN, readinputport(7)); - } - - /* update gear shift */ - if (GAME_IS_SUPERBUG || GAME_IS_MONTECARLO) - { - switch (readinputport(7) & 15) - { - case 1: gear = 1; break; - case 2: gear = 2; break; - case 4: gear = 3; break; - case 8: gear = 4; break; - } - } -} - - -static void write_output(UINT8 flags) -{ - if (GAME_IS_FIRETRUCK) - { - /* BIT0 => START1 LAMP */ - /* BIT1 => START2 LAMP */ - /* BIT2 => FLASH */ - /* BIT3 => TRACK LAMP */ - /* BIT4 => ATTRACT */ - /* BIT5 => START3 LAMP */ - /* BIT6 => UNUSED */ - /* BIT7 => BELL OUT */ - - set_led_status(0, !(flags & 0x01)); - set_led_status(1, !(flags & 0x02)); - set_led_status(2, !(flags & 0x20)); - set_led_status(3, !(flags & 0x08)); - - attract = flags & 0x10; - - discrete_sound_w(FIRETRUCK_BELL_EN, flags & 0x80); /* Bell Sound */ - discrete_sound_w(FIRETRUCK_ATTRACT_EN, flags & 0x10); /* Attract */ - - coin_lockout_w(0, !attract); - coin_lockout_w(1, !attract); - - firetrk_set_flash(flags & 0x04); - } - - if (GAME_IS_SUPERBUG) - { - /* BIT0 => START LAMP */ - /* BIT1 => ATTRACT */ - /* BIT2 => FLASH */ - /* BIT3 => TRACK LAMP */ - - attract = flags & 0x02; - - set_led_status(0, flags & 0x01); - set_led_status(1, flags & 0x08); - - discrete_sound_w(SUPERBUG_ATTRACT_EN, flags & 0x02); /* Attract */ - - coin_lockout_w(0, !attract); - coin_lockout_w(1, !attract); - - firetrk_set_flash(flags & 0x04); - } - - if (GAME_IS_MONTECARLO) - { - /* BIT0 => START LAMP */ - /* BIT1 => TRACK LAMP */ - /* BIT2 => ATTRACT */ - /* BIT3 => UNUSED */ - /* BIT4 => UNUSED */ - /* BIT5 => COIN3 COUNTER */ - /* BIT6 => COIN2 COUNTER */ - /* BIT7 => COIN1 COUNTER */ - - set_led_status(0, !(flags & 0x01)); - set_led_status(1, !(flags & 0x02)); - - discrete_sound_w(MONTECAR_ATTRACT_INV, flags & 0x04); /* Attract */ - - coin_counter_w(0, flags & 0x80); - coin_counter_w(1, flags & 0x40); - coin_counter_w(2, flags & 0x20); - } -} - - -static MACHINE_RESET( firetrk ) -{ - timer_pulse(1. / 60, 0, frame_callback); - - if (GAME_IS_MONTECARLO) - { - write_output(0); - last_service = readinputport(6) & 0x04; - set_firetrk_service(last_service); - } - else - if (GAME_IS_FIRETRUCK) - { - last_service = readinputport(4) & 0x80; - set_firetrk_service(last_service); - } - - timer_set(0, 0, periodic_callback); -} - - -static PALETTE_INIT( firetrk ) -{ - static const UINT16 colortable_source[] = - { - 0, 0, 1, 0, - 2, 0, 3, 0, - 3, 3, 2, 3, - 1, 3, 0, 3, - 0, 0, 1, 0, - 2, 0, 0, 3, - 3, 0, 0, 3 - }; - - palette_set_color(machine, 0, 0x00, 0x00, 0x00); - palette_set_color(machine, 1, 0x5b, 0x5b, 0x5b); - palette_set_color(machine, 2, 0xa4, 0xa4, 0xa4); - palette_set_color(machine, 3, 0xff, 0xff, 0xff); - - memcpy(colortable, colortable_source, sizeof(colortable_source)); -} - - -static void prom_to_palette(int number, UINT8 val) -{ - palette_set_color(Machine, number, pal1bit(val >> 2), pal1bit(val >> 1), pal1bit(val >> 0)); -} - - -static PALETTE_INIT( montecar ) -{ - static const UINT16 colortable_source[] = - { - 0x00, 0x00, 0x00, 0x01, - 0x00, 0x02, 0x00, 0x03, - 0x03, 0x03, 0x03, 0x02, - 0x03, 0x01, 0x03, 0x00, - 0x00, 0x00, 0x02, 0x00, - 0x02, 0x01, 0x02, 0x02, - 0x00, 0x05, 0x06, 0x07, - 0x00, 0x09, 0x0A, 0x0B, - 0x00, 0x0D, 0x0E, 0x0F, - 0x00, 0x11, 0x12, 0x13, - 0x00, 0x15, 0x16, 0x17, - 0x18, 0x19 - }; - - /* - * The color PROM is addressed as follows: - * - * A0 => PLAYFIELD 1 - * A1 => PLAYFIELD 2 - * A2 => DRONE 1 - * A3 => DRONE 2 - * A4 => CAR 1 - * A5 => CAR 2 - * A6 => DRONE COLOR 1 - * A7 => DRONE COLOR 2 - * A8 => PLAYFIELD WINDOW - * - * This driver hard-codes some behavior which actually depends - * on the PROM, like priorities, clipping and transparency. - * - */ - - const UINT8* p = memory_region(REGION_PROMS); - - int number = 0; - - prom_to_palette(number++, p[0x100]); - prom_to_palette(number++, p[0x101]); - prom_to_palette(number++, p[0x102]); - prom_to_palette(number++, p[0x103]); - - prom_to_palette(number++, p[0x100]); - prom_to_palette(number++, p[0x110]); - prom_to_palette(number++, p[0x120]); - prom_to_palette(number++, p[0x130]); - - prom_to_palette(number++, p[0x100]); - prom_to_palette(number++, p[0x104]); - prom_to_palette(number++, p[0x108]); - prom_to_palette(number++, p[0x10C]); - - prom_to_palette(number++, p[0x140]); - prom_to_palette(number++, p[0x144]); - prom_to_palette(number++, p[0x148]); - prom_to_palette(number++, p[0x14C]); - - prom_to_palette(number++, p[0x180]); - prom_to_palette(number++, p[0x184]); - prom_to_palette(number++, p[0x188]); - prom_to_palette(number++, p[0x18C]); - - prom_to_palette(number++, p[0x1C0]); - prom_to_palette(number++, p[0x1C4]); - prom_to_palette(number++, p[0x1C8]); - prom_to_palette(number++, p[0x1CC]); - - palette_set_color(machine, number++, 0x00, 0x00, 0x00); - palette_set_color(machine, number++, 0xff, 0xff, 0xff); - - memcpy(colortable, colortable_source, sizeof(colortable_source)); -} - - -static READ8_HANDLER( firetrk_dip_r ) -{ - UINT8 val0 = readinputport(2); - UINT8 val1 = readinputport(3); - - if (GAME_IS_FIRETRUCK || GAME_IS_SUPERBUG) - { - if (val1 & (1 << (2 * offset + 0))) val0 |= 1; - if (val1 & (1 << (2 * offset + 1))) val0 |= 2; - } - if (GAME_IS_MONTECARLO) - { - if (val1 & (1 << (3 - offset))) val0 |= 1; - if (val1 & (1 << (7 - offset))) val0 |= 2; - } - - return val0; -} - - -static READ8_HANDLER( firetrk_input_r ) -{ - UINT8 val = 0; - - UINT8 bit0 = readinputport(4); - UINT8 bit6 = readinputport(5); - UINT8 bit7 = readinputport(6); - - if (GAME_IS_FIRETRUCK) - { - if (!steer_dir[0]) - bit0 |= 0x04; - if (!steer_flag[0]) - bit7 |= 0x04; - if (firetrk_skid[0] || firetrk_skid[1]) - bit0 |= 0x40; - if (firetrk_crash[0] || firetrk_crash[1]) - bit7 |= 0x40; - if (!steer_dir[1]) - bit0 |= 0x08; - if (!steer_flag[1]) - bit7 |= 0x08; - } - - if (GAME_IS_SUPERBUG) - { - if (!steer_dir[0]) - bit0 |= 0x04; - if (!steer_flag[0]) - bit7 |= 0x04; - if (firetrk_skid[0]) - bit0 |= 0x40; - if (firetrk_crash[0]) - bit7 |= 0x40; - if (gear == 1) - bit7 |= 0x02; - if (gear == 2) - bit0 |= 0x01; - if (gear == 3) - bit7 |= 0x01; - } - - if (GAME_IS_MONTECARLO) - { - if (!steer_dir[0]) - bit6 |= 0x40; - if (!steer_flag[0]) - bit7 |= 0x40; - if (gear == 1) - bit6 |= 0x01; - if (gear == 2) - bit6 |= 0x02; - if (gear == 3) - bit6 |= 0x04; - if (firetrk_skid[0]) - bit7 |= 0x80; - if (firetrk_skid[1]) - bit6 |= 0x80; - if (firetrk_crash[0]) - val |= 0x02; - if (firetrk_crash[1]) - val |= 0x01; - } - - if (bit0 & (1 << offset)) val |= 0x01; - if (bit6 & (1 << offset)) val |= 0x40; - if (bit7 & (1 << offset)) val |= 0x80; - - return val; -} - - -static WRITE8_HANDLER( firetrk_arrow_off_w ) -{ - firetrk_set_blink(1); -} - - -static WRITE8_HANDLER( firetrk_car_reset_w ) -{ - firetrk_crash[0] = 0; - firetrk_skid[0] = 0; -} - - -static WRITE8_HANDLER( firetrk_drone_reset_w ) -{ - firetrk_crash[1] = 0; - firetrk_skid[1] = 0; -} - - -static WRITE8_HANDLER( firetrk_steer_reset_w ) -{ - steer_flag[0] = 0; - steer_flag[1] = 0; -} - - -static WRITE8_HANDLER( firetrk_crash_reset_w ) -{ - firetrk_crash[0] = 0; - firetrk_crash[1] = 0; -} - - -static WRITE8_HANDLER( firetrk_out_w ) -{ - if (GAME_IS_FIRETRUCK || GAME_IS_MONTECARLO) - { - write_output(data); - } - if (GAME_IS_SUPERBUG) - { - write_output(offset); - } -} - - - -static ADDRESS_MAP_START( firetrk_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x700) AM_RAM AM_BASE(&firetrk_alpha_num_ram) - AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x700) AM_READWRITE(MRA8_RAM, firetrk_playfield_w) AM_BASE(&firetrk_playfield_ram) - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x1f) AM_WRITE(firetrk_vert_w) - AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x1f) AM_WRITE(firetrk_horz_w) - AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x1f) AM_WRITE(firetrk_crash_reset_w) - AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_reset_w) - AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x1f) AM_WRITE(firetrk_car_rot_w) - AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_steer_reset_w) - AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x1f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x1f) AM_WRITE(firetrk_arrow_off_w) - AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x1f) AM_WRITE(firetrk_motor_snd_w) - AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x1f) AM_WRITE(firetrk_crash_snd_w) - AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_snd_w) - AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_hpos_w) - AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_vpos_w) - AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_rot_w) - AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x1f) AM_WRITE(firetrk_out_w) - AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x1f) AM_WRITE(firetrk_xtndply_w) - AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x3f8) AM_READWRITE(firetrk_input_r, MWA8_NOP) - AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x3fc) AM_READ(firetrk_dip_r) - AM_RANGE(0x2000, 0x3fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( superbug_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(13) ) - AM_RANGE(0x0000, 0x00ff) AM_RAM - AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x1f) AM_WRITE(firetrk_vert_w) - AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x1f) AM_WRITE(firetrk_horz_w) - AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x1f) AM_WRITE(firetrk_crash_reset_w) - AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_reset_w) - AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x1f) AM_WRITE(firetrk_car_rot_w) - AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_steer_reset_w) - AM_RANGE(0x01c0, 0x01c0) AM_MIRROR(0x1f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x1f) AM_WRITE(firetrk_arrow_off_w) - AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x18) AM_READ(firetrk_input_r) - AM_RANGE(0x0220, 0x0220) AM_MIRROR(0x1f) AM_WRITE(firetrk_asr_w) - AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x1c) AM_READ(firetrk_dip_r) - AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x10) AM_WRITE(firetrk_out_w) - AM_RANGE(0x0280, 0x0280) AM_MIRROR(0x1f) AM_WRITE(firetrk_motor_snd_w) - AM_RANGE(0x02a0, 0x02a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_crash_snd_w) - AM_RANGE(0x02c0, 0x02c0) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_snd_w) - AM_RANGE(0x0400, 0x041f) AM_RAM AM_BASE(&firetrk_alpha_num_ram) - AM_RANGE(0x0500, 0x05ff) AM_READWRITE(MRA8_RAM, firetrk_playfield_w) AM_BASE(&firetrk_playfield_ram) - AM_RANGE(0x0800, 0x1fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( montecar_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x700) AM_RAM AM_BASE(&firetrk_alpha_num_ram) - AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x700) AM_READWRITE(MRA8_RAM, firetrk_playfield_w) AM_BASE(&firetrk_playfield_ram) - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x1f) AM_WRITE(firetrk_vert_w) - AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x1f) AM_WRITE(firetrk_horz_w) - AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_reset_w) - AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x1f) AM_WRITE(firetrk_car_reset_w) - AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x1f) AM_WRITE(firetrk_car_rot_w) - AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_steer_reset_w) - AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x1f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_reset_w) - AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x1f) AM_WRITE(firetrk_motor_snd_w) - AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x1f) AM_WRITE(firetrk_crash_snd_w) - AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x1f) AM_WRITE(firetrk_skid_snd_w) - AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_hpos_w) - AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_vpos_w) - AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x1f) AM_WRITE(firetrk_drone_rot_w) - AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x1f) AM_WRITE(firetrk_out_w) - AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x1f) AM_WRITE(firetrk_out2_w) - AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x3f8) AM_READWRITE(firetrk_input_r, MWA8_NOP) - AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x3fc) AM_READ(firetrk_dip_r) - AM_RANGE(0x2000, 0x3fff) AM_ROM -ADDRESS_MAP_END - - -INPUT_PORTS_START( firetrk ) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused )) - PORT_DIPSETTING( 0x10, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused )) - PORT_DIPSETTING( 0x20, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0x03, DEF_STR( German ) ) - PORT_DIPNAME( 0x0c, 0x04, "Play Time" ) - PORT_DIPSETTING( 0x00, "60 Seconds" ) - PORT_DIPSETTING( 0x04, "90 Seconds" ) - PORT_DIPSETTING( 0x08, "120 Seconds" ) - PORT_DIPSETTING( 0x0c, "150 Seconds" ) - PORT_DIPNAME( 0x30, 0x20, "Extended Play" ) - PORT_DIPSETTING( 0x10, "Liberal" ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x30, "Conservative" ) - PORT_DIPSETTING( 0x00, "Never" ) - - PORT_START /* bit 0 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") PORT_PLAYER(1) - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER DIR 1 */ - PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER DIR 2 */ - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Bell") PORT_PLAYER(2) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_TILT) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* SKID */ - PORT_SERVICE(0x80, IP_ACTIVE_HIGH) - - PORT_START /* bit 6 */ - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Front Player Start") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Back Player Start") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_START3 ) PORT_NAME("Both Players Start") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) PORT_PLAYER(1) - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_VBLANK) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x00, "Smokey Joe (1 Player)" ) - PORT_DIPSETTING( 0x40, "Fire Truck (2 Players)" ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diag Hold") PORT_CODE(KEYCODE_F6) - - PORT_START /* bit 7 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER FLAG 1 */ - PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER FLAG 2 */ - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_COIN1) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_COIN2) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* CRASH */ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diag Step") PORT_CODE(KEYCODE_F1) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Horn") PORT_PLAYER(1) - - PORT_START /* 8 */ - PORT_ADJUSTER( 20, "R27 - Motor Frequency" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( superbug ) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START - PORT_BIT (0xff, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0c, 0x04, "Play Time" ) - PORT_DIPSETTING( 0x00, "60 seconds" ) - PORT_DIPSETTING( 0x04, "90 seconds" ) - PORT_DIPSETTING( 0x08, "120 seconds" ) - PORT_DIPSETTING( 0x0c, "150 seconds" ) - PORT_DIPNAME( 0x30, 0x20, "Extended Play" ) - PORT_DIPSETTING( 0x10, "Liberal" ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x30, "Conservative" ) - PORT_DIPSETTING( 0x00, "Never" ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( French ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( German ) ) - - PORT_START /* bit 0 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 2 */ - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER DIR */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Hiscore Reset") PORT_CODE(KEYCODE_H) - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_SERVICE( 0x20, IP_ACTIVE_HIGH) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* SKID */ - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_TILT) - - PORT_START /* bit 6 */ - PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START /* bit 7 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 3 */ - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 1 */ - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER FLAG */ - PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_COIN1) - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_COIN2) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_START1) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* CRASH */ - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Gear 1") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Gear 2") PORT_CODE(KEYCODE_X) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Gear 3") PORT_CODE(KEYCODE_C) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Gear 4") PORT_CODE(KEYCODE_V) - - PORT_START /* 8 */ - PORT_ADJUSTER( 20, "R62 - Motor Frequency" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( montecar ) - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START - PORT_BIT (0xff, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) /* other DIPs connect here */ - PORT_DIPNAME( 0x0c, 0x0c, "Coin 3 Multiplier" ) - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x10, 0x10, "Coin 2 Multiplier" ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused )) - PORT_DIPSETTING( 0x20, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x03, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0c, 0x08, "Extended Play" ) - PORT_DIPSETTING( 0x04, "Liberal" ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x00, "Conservative" ) - PORT_DIPSETTING( 0x0c, "Never" ) - PORT_DIPNAME( 0x30, 0x20, "Play Time" ) - PORT_DIPSETTING( 0x30, "60 Seconds" ) - PORT_DIPSETTING( 0x10, "90 Seconds" ) - PORT_DIPSETTING( 0x20, "120 Seconds" ) - PORT_DIPSETTING( 0x00, "150 Seconds" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Language ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( English ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0x40, DEF_STR( French ) ) - PORT_DIPSETTING( 0x00, DEF_STR( German ) ) - - PORT_START /* bit 0 */ - PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) - - PORT_START /* bit 6 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 1 */ - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 2 */ - PORT_BIT (0x04, IP_ACTIVE_HIGH, IPT_UNUSED) /* GEAR 3 */ - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gas") - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_VBLANK) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER DIR */ - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) /* SKID 1 */ - - PORT_START /* bit 7 */ - PORT_BIT (0x01, IP_ACTIVE_HIGH, IPT_START1) - PORT_BIT (0x02, IP_ACTIVE_HIGH, IPT_TILT) - PORT_SERVICE(0x04, IP_ACTIVE_HIGH) - PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_COIN1) - PORT_BIT (0x10, IP_ACTIVE_HIGH, IPT_COIN2) - PORT_BIT (0x20, IP_ACTIVE_HIGH, IPT_COIN3) - PORT_BIT (0x40, IP_ACTIVE_HIGH, IPT_UNUSED) /* STEER FLAG */ - PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED) /* SKID 0 */ - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Gear 1") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Gear 2") PORT_CODE(KEYCODE_X) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Gear 3") PORT_CODE(KEYCODE_C) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Gear 4") PORT_CODE(KEYCODE_V) - - PORT_START /* 8 */ - PORT_ADJUSTER( 20, "R89 - Motor Frequency" ) - - PORT_START /* 9 */ - PORT_ADJUSTER( 25, "R88 - Drone Motor Frequency" ) -INPUT_PORTS_END - - -static const gfx_layout firetrk_text_layout = -{ - 16, 16, /* width, height */ - 32, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x1C, 0x1D, 0x1E, 0x1F, 0x04, 0x05, 0x06, 0x07, - 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17 - }, - { - 0x000, 0x020, 0x040, 0x060, 0x080, 0x0A0, 0x0C0, 0x0E0, - 0x100, 0x120, 0x140, 0x160, 0x180, 0x1A0, 0x1C0, 0x1E0 - }, - 0x200 -}; - - -static const gfx_layout superbug_text_layout = -{ - 16, 16, /* width, height */ - 32, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, - 0x1C, 0x1D, 0x1E, 0x1F, 0x04, 0x05, 0x06, 0x07 - }, - { - 0x000, 0x020, 0x040, 0x060, 0x080, 0x0A0, 0x0C0, 0x0E0, - 0x100, 0x120, 0x140, 0x160, 0x180, 0x1A0, 0x1C0, 0x1E0 - }, - 0x200 -}; - - -static const gfx_layout montecar_text_layout = -{ - 8, 8, /* width, height */ - 64, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0xC, 0xD, 0xE, 0xF, 0x4, 0x5, 0x6, 0x7 - }, - { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 - }, - 0x80 -}; - - -static const gfx_layout firetrk_tile_layout = -{ - 16, 16, /* width, height */ - 64, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, - 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF - }, - { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, - 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0 - }, - 0x100 -}; - - -static const gfx_layout superbug_tile_layout = -{ - 16, 16, /* width, height */ - 64, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x07, 0x06, 0x05, 0x04, 0x0F, 0x0E, 0x0D, 0x0C, - 0x17, 0x16, 0x15, 0x14, 0x1F, 0x1E, 0x1D, 0x1C - }, - { - 0x000, 0x020, 0x040, 0x060, 0x080, 0x0A0, 0x0C0, 0x0E0, - 0x100, 0x120, 0x140, 0x160, 0x180, 0x1A0, 0x1C0, 0x1E0 - }, - 0x200 -}; - - -static const gfx_layout firetrk_car_layout1 = -{ - 32, 32, /* width, height */ - 4, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x000, 0x040, 0x080, 0x0C0, 0x100, 0x140, 0x180, 0x1C0, - 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x340, 0x380, 0x3C0, - 0x400, 0x440, 0x480, 0x4C0, 0x500, 0x540, 0x580, 0x5C0, - 0x600, 0x640, 0x680, 0x6C0, 0x700, 0x740, 0x780, 0x7C0 - }, - { - 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F, - 0x24, 0x25, 0x26, 0x27, 0x2C, 0x2D, 0x2E, 0x2F, - 0x34, 0x35, 0x36, 0x37, 0x3C, 0x3D, 0x3E, 0x3B - }, - 0x800 -}; - - -static const gfx_layout superbug_car_layout1 = -{ - 32, 32, /* width, height */ - 4, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0A00, 0x0B00, 0x0C00, 0x0D00, 0x0E00, 0x0F00, - 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, - 0x1800, 0x1900, 0x1A00, 0x1B00, 0x1C00, 0x1D00, 0x1E00, 0x1F00 - }, - { - 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x34, 0x3C, - 0x44, 0x4C, 0x54, 0x5C, 0x64, 0x6C, 0x74, 0x7C, - 0x84, 0x8C, 0x94, 0x9C, 0xA4, 0xAC, 0xB4, 0xBC, - 0xC4, 0xCC, 0xD4, 0xDC, 0xE4, 0xEC, 0xF4, 0xFC - }, - 0x001 -}; - - -static const gfx_layout montecar_car_layout = -{ - 32, 32, /* width, height */ - 8, /* total */ - 2, /* planes */ - /* plane offsets */ - { 1, 0 }, - { - 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, - 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, - 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E - }, - { - 0x000, 0x040, 0x080, 0x0C0, 0x100, 0x140, 0x180, 0x1C0, - 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x340, 0x380, 0x3C0, - 0x400, 0x440, 0x480, 0x4C0, 0x500, 0x540, 0x580, 0x5C0, - 0x600, 0x640, 0x680, 0x6C0, 0x700, 0x740, 0x780, 0x7C0 - }, - 0x800 -}; - - -static const gfx_layout firetrk_car_layout2 = -{ - 32, 32, /* width, height */ - 4, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F, - 0x24, 0x25, 0x26, 0x27, 0x2C, 0x2D, 0x2E, 0x2F, - 0x34, 0x35, 0x36, 0x37, 0x3C, 0x3D, 0x3E, 0x3B - }, - { - 0x000, 0x040, 0x080, 0x0C0, 0x100, 0x140, 0x180, 0x1C0, - 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x340, 0x380, 0x3C0, - 0x400, 0x440, 0x480, 0x4C0, 0x500, 0x540, 0x580, 0x5C0, - 0x600, 0x640, 0x680, 0x6C0, 0x700, 0x740, 0x780, 0x7C0 - }, - 0x800 -}; - - -static const gfx_layout superbug_car_layout2 = -{ - 32, 32, /* width, height */ - 4, /* total */ - 1, /* planes */ - { 0 }, /* plane offsets */ - { - 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x34, 0x3C, - 0x44, 0x4C, 0x54, 0x5C, 0x64, 0x6C, 0x74, 0x7C, - 0x84, 0x8C, 0x94, 0x9C, 0xA4, 0xAC, 0xB4, 0xBC, - 0xC4, 0xCC, 0xD4, 0xDC, 0xE4, 0xEC, 0xF4, 0xFC - }, - { - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, - 0x0800, 0x0900, 0x0A00, 0x0B00, 0x0C00, 0x0D00, 0x0E00, 0x0F00, - 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, - 0x1800, 0x1900, 0x1A00, 0x1B00, 0x1C00, 0x1D00, 0x1E00, 0x1F00 - }, - 0x001 -}; - -static const UINT32 firetrk_trailer_layout_xoffset[64] = -{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F -}; - -static const UINT32 firetrk_trailer_layout_yoffset[64] = -{ - 0x000, 0x040, 0x080, 0x0C0, 0x100, 0x140, 0x180, 0x1C0, - 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x340, 0x380, 0x3C0, - 0x400, 0x440, 0x480, 0x4C0, 0x500, 0x540, 0x580, 0x5C0, - 0x600, 0x640, 0x680, 0x6C0, 0x700, 0x740, 0x780, 0x7C0, - 0x800, 0x840, 0x880, 0x8C0, 0x900, 0x940, 0x980, 0x9C0, - 0xA00, 0xA40, 0xA80, 0xAC0, 0xB00, 0xB40, 0xB80, 0xBC0, - 0xC00, 0xC40, 0xC80, 0xCC0, 0xD00, 0xD40, 0xD80, 0xDC0, - 0xE00, 0xE40, 0xE80, 0xEC0, 0xF00, 0xF40, 0xF80, 0xFC0 -}; - -static const gfx_layout firetrk_trailer_layout = -{ - 64, 64, /* width, height */ - 8, /* total */ - 1, /* planes */ - { 0 }, - EXTENDED_XOFFS, - EXTENDED_YOFFS, - 0x1000, - firetrk_trailer_layout_xoffset, - firetrk_trailer_layout_yoffset -}; - - -static const gfx_decode firetrk_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &firetrk_text_layout, 26, 1 }, - { REGION_GFX2, 0, &firetrk_tile_layout, 0, 8 }, - { REGION_GFX2, 0, &firetrk_tile_layout, 16, 3 }, - { REGION_GFX3, 0, &firetrk_car_layout1, 22, 2 }, - { REGION_GFX3, 0, &firetrk_car_layout2, 22, 2 }, - { REGION_GFX4, 0, &firetrk_trailer_layout, 22, 2 }, - { -1 } -}; - - -static const gfx_decode superbug_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &superbug_text_layout, 26, 1 }, - { REGION_GFX2, 0, &superbug_tile_layout, 0, 8 }, - { REGION_GFX2, 0, &superbug_tile_layout, 16, 3 }, - { REGION_GFX3, 0, &superbug_car_layout1, 22, 2 }, - { REGION_GFX3, 0, &superbug_car_layout2, 22, 2 }, - { -1 } -}; - - -static const gfx_decode montecar_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &montecar_text_layout, 44, 1 }, - { REGION_GFX2, 0, &firetrk_tile_layout, 0, 8 }, - { REGION_GFX2, 0, &firetrk_tile_layout, 16, 4 }, - { REGION_GFX3, 0, &montecar_car_layout, 24, 1 }, - { REGION_GFX4, 0, &montecar_car_layout, 28, 4 }, - { -1 } -}; - - -static MACHINE_DRIVER_START( firetrk ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6800, FIRETRK_CPU_CLOCK_1MHZ) /* 750Khz during service mode */ - MDRV_CPU_PROGRAM_MAP(firetrk_map, 0) - MDRV_CPU_VBLANK_INT(firetrk_interrupt, 1) - MDRV_WATCHDOG_VBLANK_INIT(5) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((int) ((22. * 1000000) / (262. * 60) + 0.5))) - - MDRV_MACHINE_RESET(firetrk) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MDRV_GFXDECODE(firetrk_gfxdecodeinfo) - - MDRV_PALETTE_INIT(firetrk) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(28) - - MDRV_VIDEO_START(firetrk) - MDRV_VIDEO_EOF(firetrk) - MDRV_VIDEO_UPDATE(firetrk) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(firetrk_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( superbug ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(firetrk) - MDRV_CPU_REPLACE("main", M6800, FIRETRK_CPU_CLOCK_750KZ) - MDRV_CPU_PROGRAM_MAP(superbug_map, 0) - - /* video hardware */ - MDRV_GFXDECODE(superbug_gfxdecodeinfo) - - MDRV_PALETTE_INIT(firetrk) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(28) - - /* sound hardware */ - MDRV_SOUND_REPLACE("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(superbug_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( montecar ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(firetrk) - MDRV_CPU_REPLACE("main", M6800, FIRETRK_CPU_CLOCK_1MHZ) /* 750Khz during service mode */ - MDRV_CPU_PROGRAM_MAP(montecar_map, 0) - - /* video hardware */ - MDRV_GFXDECODE(montecar_gfxdecodeinfo) - - MDRV_PALETTE_INIT(montecar) - MDRV_PALETTE_LENGTH(26) - MDRV_COLORTABLE_LENGTH(46) - - /* sound hardware */ - MDRV_SOUND_REPLACE("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(montecar_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -ROM_START( firetrk ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD( "32823-02.c1", 0x2000, 0x800, CRC(9570bdd3) SHA1(4d26a9490d05d53da55fc59459a4dce5bca6c761) ) - ROM_LOAD( "32824-01.d1", 0x2800, 0x800, CRC(a5fc5629) SHA1(bf20510d8623eda2740ff296a7813a3e6f7ec76e) ) - ROM_LOAD_NIB_HIGH( "32816-01.k1", 0x3000, 0x800, CRC(c0535598) SHA1(15cb6985b0b22140b7fae1e050e0b63dd4d0f793) ) - ROM_LOAD_NIB_LOW ( "32820-01.k2", 0x3000, 0x800, CRC(5733f9ed) SHA1(0f19a40793dadfb7de2c2b54a44929b414d0f4ed) ) - ROM_LOAD_NIB_HIGH( "32815-01.j1", 0x3800, 0x800, CRC(506ee759) SHA1(d111356c84f3d9942a27fbe243e716d14c258a16) ) - ROM_LOAD_NIB_LOW ( "32819-01.j2", 0x3800, 0x800, CRC(f1c3fa87) SHA1(d75cf4ad0bcac3289c068837fc24cfe84ce7542a) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) /* text */ - ROM_LOAD( "32827-01.r3", 0x000, 0x800, CRC(cca31d2b) SHA1(78235176c9cb2abd73a5778b54560b87634ca0e4) ) - - ROM_REGION( 0x0800, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "32828-02.f5", 0x000, 0x800, CRC(68ef5f19) SHA1(df227d6a57bba6298ebdeb5a118878da21d889f6) ) - - ROM_REGION( 0x0400, REGION_GFX3, ROMREGION_DISPOSE ) /* car */ - ROM_LOAD( "32831-01.p7", 0x000, 0x400, CRC(bb8d144f) SHA1(9a1355ea6f88e96926c32e0e36ac0525b0243906) ) - - ROM_REGION( 0x1000, REGION_GFX4, ROMREGION_DISPOSE ) /* trailer */ - ROM_LOAD( "32829-01.j5", 0x000, 0x800, CRC(e7267d71) SHA1(7132b98622e899227a378ba8c010dde39c479978) ) - ROM_LOAD( "32830-01.l5", 0x800, 0x800, CRC(e4d8b685) SHA1(30978658899c83e32dabdf554a13cf5e5235c725) ) - - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "9114.prm", 0x0000, 0x100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync */ -ROM_END - - -ROM_START( superbug ) - ROM_REGION( 0x2000, REGION_CPU1, 0 ) - ROM_LOAD( "9121.d1", 0x0800, 0x800, CRC(350df308) SHA1(b957c830bb95e0752ea9793e3edcfdd52235e0ab) ) - ROM_LOAD( "9122.c1", 0x1000, 0x800, CRC(eb6e3e37) SHA1(5237f6bd3a7a3eca737c728296230cf0d1f436b0) ) - ROM_LOAD( "9123.a1", 0x1800, 0x800, CRC(f42c6bbe) SHA1(41470984fe951eac9f6dc77862b00ecfe8aaa51d) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) /* text */ - ROM_LOAD( "9124.m3", 0x0000, 0x400, CRC(f8af8dd5) SHA1(49ab85550f546f85048e2f73163837c602dde568) ) - ROM_LOAD( "9471.n3", 0x0400, 0x400, CRC(52250698) SHA1(cc55254c54dbcd3fd1465c82a715f2e567f44951) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "9126.f5", 0x0000, 0x400, CRC(ee695137) SHA1(295fdfef88e0c841fe8ad505151ca0837e77ef83) ) - ROM_LOAD( "9472.h5", 0x0400, 0x400, CRC(5ddb80ac) SHA1(bdbbbba6efdd4cca75630d203f7c7eaf41b1a32d) ) - ROM_LOAD( "9127.e5", 0x0800, 0x400, CRC(be1386b4) SHA1(17e92df58b25075ec7a383a958db02b42066578a) ) - ROM_RELOAD( 0x0C00, 0x400 ) - - ROM_REGION( 0x0400, REGION_GFX3, ROMREGION_DISPOSE ) /* car */ - ROM_LOAD( "9125.k6", 0x0000, 0x400, CRC(a3c835df) SHA1(e9b6dba1919c389bb55a8fe3c074b6702322e4e5) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "9114.prm", 0x0000, 0x100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync */ -ROM_END - - -ROM_START( montecar ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD( "35766-01.h1", 0x2000, 0x800, CRC(d3695f09) SHA1(8aa3b3921acd0d2c3230d610843042613defcba9) ) - ROM_LOAD( "35765-01.f1", 0x2800, 0x800, CRC(9491a7ee) SHA1(712959c5f97be3db7be1d5bd70c780d4da2f6d47) ) - ROM_LOAD( "35764-01.d1", 0x3000, 0x800, CRC(899aaf4e) SHA1(84fab58d135ffc6e4b076d438b4d588b394364b6) ) - ROM_LOAD( "35763-01.c1", 0x3800, 0x800, CRC(378bfe47) SHA1(fd6b28907340a2ffc82a4e634273c3f03ab76642) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) /* text */ - ROM_LOAD( "35778-01.m4", 0x0000, 0x400, CRC(294ee08e) SHA1(fbb0656468a027b2795073d811affc93c50994ec) ) - - ROM_REGION( 0x0800, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "35775-01.e6", 0x0000, 0x800, CRC(504106e9) SHA1(33eae2cf39b24eaf5b438a2af3060b2fdc0012b5) ) - - ROM_REGION( 0x0800, REGION_GFX3, ROMREGION_DISPOSE ) /* car */ - ROM_LOAD( "35779-01.m6", 0x0000, 0x800, CRC(4fbb3fe1) SHA1(4267cd098a19892322d21f8fa7b55896158f8d6a) ) - - ROM_REGION( 0x0800, REGION_GFX4, ROMREGION_DISPOSE ) /* drone */ - ROM_LOAD( "35780-01.b6", 0x0000, 0x800, CRC(9d0f1374) SHA1(52d1130d48dc877e1e47e26b2e4548633ed91b21) ) - - ROM_REGION( 0x300, REGION_PROMS, 0 ) - ROM_LOAD( "35785-01.e7", 0x0000, 0x200, CRC(386c543a) SHA1(04edda180e6ff432b438947ffa46621ca0a823b4) ) /* color */ - ROM_LOAD( "9114.prm", 0x0200, 0x100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* sync */ -ROM_END - - -GAME( 1977, superbug, 0, superbug, superbug, superbug, ROT270, "Atari", "Super Bug", 0 ) -GAME( 1978, firetrk, 0, firetrk, firetrk, firetrk, ROT270, "Atari", "Fire Truck", 0 ) -GAME( 1979, montecar, 0, montecar, montecar, montecar, ROT270, "Atari", "Monte Carlo", 0 ) diff --git a/src/drivers/flkatck.c b/src/drivers/flkatck.c deleted file mode 100644 index cfceeab51..000000000 --- a/src/drivers/flkatck.c +++ /dev/null @@ -1,350 +0,0 @@ -/*************************************************************************** - -Flak Attack/MX5000 (Konami GX669) - -Driver by: - Manuel Abadia - -TO DO: - -What does 0x900X do? (Z80) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "cpu/hd6309/hd6309.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - -/* from vidhrdw/flkatck.c */ -VIDEO_START( flkatck ); -VIDEO_UPDATE( flkatck ); -WRITE8_HANDLER( flkatck_k007121_w ); -WRITE8_HANDLER( flkatck_k007121_regs_w ); - -extern unsigned char *k007121_ram; -extern int flkatck_irq_enabled; - -/***************************************************************************/ - -static MACHINE_RESET( flkatck ) -{ - K007232_set_bank( 0, 0, 1 ); -} - -static INTERRUPT_GEN( flkatck_interrupt ) -{ - if (flkatck_irq_enabled) - cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); -} - -static WRITE8_HANDLER( flkatck_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bankaddress = 0; - - /* bits 3-4: coin counters */ - coin_counter_w(0,data & 0x08); - coin_counter_w(1,data & 0x10); - - /* bits 0-1: bank # */ - bankaddress += 0x10000 + (data & 0x03)*0x2000; - if ((data & 0x03) != 0x03) /* for safety */ - memory_set_bankptr(1,&RAM[bankaddress]); -} - -static READ8_HANDLER( flkatck_ls138_r ) -{ - int data = 0; - - switch ((offset & 0x1c) >> 2){ - case 0x00: /* inputs + DIPSW #3 + coinsw */ - if (offset & 0x02) - data = readinputport(2 + (offset & 0x01)); - else - data = readinputport(4 + (offset & 0x01)); - break; - case 0x01: /* DIPSW #1 & DIPSW #2 */ - if (offset & 0x02) - data = readinputport(1 - (offset & 0x01)); - break; - } - - return data; -} - -static WRITE8_HANDLER( flkatck_ls138_w ) -{ - switch ((offset & 0x1c) >> 2){ - case 0x04: /* bankswitch */ - flkatck_bankswitch_w(0, data); - break; - case 0x05: /* sound code number */ - soundlatch_w(0, data); - break; - case 0x06: /* Cause interrupt on audio CPU */ - cpunum_set_input_line(1,0,HOLD_LINE); - break; - case 0x07: /* watchdog reset */ - watchdog_reset_w(0, data); - break; - } -} - -static ADDRESS_MAP_START( flkatck_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0400, 0x041f) AM_READ(flkatck_ls138_r) /* inputs + DIPS */ - AM_RANGE(0x0800, 0x0bff) AM_READ(MRA8_RAM) /* palette */ - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) /* Video RAM (007121) */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x6000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( flkatck_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0007) AM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */ - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0400, 0x041f) AM_WRITE(flkatck_ls138_w) /* bankswitch + counters + sound command */ - AM_RANGE(0x0800, 0x0bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(flkatck_k007121_w) AM_BASE(&k007121_ram) /* Video RAM (007121) */ - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_BANK1) /* banked ROM */ - AM_RANGE(0x6000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( flkatck_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x9000, 0x9000) AM_READ(MRA8_RAM) /* ??? */ - AM_RANGE(0x9001, 0x9001) AM_READ(MRA8_RAM) /* ??? */ - AM_RANGE(0x9004, 0x9004) AM_READ(MRA8_RAM) /* ??? */ - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) /* 007232 registers */ - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) /* YM2151 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( flkatck_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x9000, 0x9000) AM_WRITE(MWA8_RAM) /* ??? */ - AM_RANGE(0x9001, 0x9001) AM_WRITE(MWA8_RAM) /* ??? */ - AM_RANGE(0x9006, 0x9006) AM_WRITE(MWA8_RAM) /* ??? */ - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) /* 007232 registers */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) /* YM2151 */ - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) /* YM2151 */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( flkatck ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - //PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "30000 70000" ) - PORT_DIPSETTING( 0x10, "40000 80000" ) - PORT_DIPSETTING( 0x08, "30000" ) - PORT_DIPSETTING( 0x00, "40000" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) - PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* COINSW & START */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -static const gfx_layout gfxlayout = -{ - 8,8, - 0x80000/32, - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &gfxlayout, 0, 32 }, - { -1 } /* end of array */ -}; - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory region */ - volume_callback0 /* external port callback */ -}; - - -static MACHINE_DRIVER_START( flkatck ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309,3000000) /* HD63C09EP, 24/8 MHz */ - MDRV_CPU_PROGRAM_MAP(flkatck_readmem,flkatck_writemem) - MDRV_CPU_VBLANK_INT(flkatck_interrupt,1) - - MDRV_CPU_ADD(Z80,3579545) /* NEC D780C-1, 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(flkatck_readmem_sound,flkatck_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(flkatck) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(37*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(flkatck) - MDRV_VIDEO_UPDATE(flkatck) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(0, "right", 0.50) - MDRV_SOUND_ROUTE(1, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - - - -ROM_START( mx5000 ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "r01", 0x010000, 0x006000, CRC(79b226fc) SHA1(3bc4d93717230fecd54bd08a0c3eeedc1c8f571d) )/* banked ROM */ - ROM_CONTINUE( 0x006000, 0x00a000 ) /* fixed ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "m02.bin", 0x000000, 0x008000, CRC(7e11e6b9) SHA1(7a7d65a458b15842a6345388007c8f682aec20a7) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mask4m.bin", 0x000000, 0x080000, CRC(ff1d718b) SHA1(d44fe3ed5a3ba1b3036264e37f9cd3500b706635) )/* tiles + sprites */ - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "mask2m.bin", 0x000000, 0x040000, CRC(6d1ea61c) SHA1(9e6eb9ac61838df6e1f74e74bb72f3edf1274aed) ) -ROM_END - -ROM_START( flkatck ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* 6309 code */ - ROM_LOAD( "gx669_p1.16c", 0x010000, 0x006000, CRC(c5cd2807) SHA1(22ddd911a23954ff2d52552e07323f5f0ddaeead) )/* banked ROM */ - ROM_CONTINUE( 0x006000, 0x00a000 ) /* fixed ROM */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "m02.bin", 0x000000, 0x008000, CRC(7e11e6b9) SHA1(7a7d65a458b15842a6345388007c8f682aec20a7) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mask4m.bin", 0x000000, 0x080000, CRC(ff1d718b) SHA1(d44fe3ed5a3ba1b3036264e37f9cd3500b706635) )/* tiles + sprites */ - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* 007232 data (chip 1) */ - ROM_LOAD( "mask2m.bin", 0x000000, 0x040000, CRC(6d1ea61c) SHA1(9e6eb9ac61838df6e1f74e74bb72f3edf1274aed) ) -ROM_END - - - -GAME( 1987, mx5000, 0, flkatck, flkatck, 0, ROT90, "Konami", "MX5000", 0 ) -GAME( 1987, flkatck, mx5000, flkatck, flkatck, 0, ROT90, "Konami", "Flak Attack (Japan)", 0 ) - diff --git a/src/drivers/funkybee.c b/src/drivers/funkybee.c deleted file mode 100644 index 8a1e4ac33..000000000 --- a/src/drivers/funkybee.c +++ /dev/null @@ -1,418 +0,0 @@ -/*************************************************************************** - -Funky Bee/Sky Lancer memory map (preliminary) - -driver by Zsolt Vasvari - -MAIN CPU: - -0000-4fff ROM -8000-87ff RAM -a000-bfff video RAM (only 0x20 bytes of each 0x100 byte block is used) - (also contains sprite RAM) -c000-dfff color RAM (only 0x20 bytes of each 0x100 byte block is used) - (also contains sprite RAM) - -read: -f000 interrupt ACK -f800 IN0/watchdog -f801 IN1 -f802 IN2 - -write: -e000 row scroll -e800 flip screen -e802-e803 coin counter -e804 ??? -e805 gfx bank select -e806 ??? -f800 watchdog - - -I/0 ports: -write -00 8910 control -01 8910 write - -AY8910 Port A = DSW - - -Known issues: - -* skylancr fires in the same spot regardless of player position when in cocktail mode. - - -Stephh's notes (based on the games Z80 code and some tests) : - -1) 'funkybee' and clones - -1a) 'funkybee' - - - Possible "Lives" settings : 3, 4, 5 or 6 (code at 0x0501) - - Bonus life routine at 0x2d03 (test on DSW bit 6) - -1b) 'funkbeeb' - - - Removal of ORCA copyright on title screen (text at 0x0e9a). - However, high scores table remains unchanged. - - Bypass ROM check (code at 0x3ee3) - - Possible "Lives" settings : 1, 2, 3 or 4 (code at 0x0501) - - Bonus life routine at 0x2d03 (test on DSW bit 6) - -2) 'skylancr' and clones - -2a) 'skylancr' - - - Possible "Lives" settings : 1, 2, 3 or 4 (code at 0x0601) - - Bonus life routine at 0x1ef6 (test on DSW bit 5 !) - I can't tell if it's an ingame bug or if this was done on purpose, - but "Bonus Life" settings depend on the starting number of lives. - DSW bit 6 has no effect because of this. - -2a) 'skylance' - - - Possible "Lives" settings : 3, 4, 5 or 6 (code at 0x0601) - - Bonus life routine at 0x1f28 (test on DSW bit 6) - -***************************************************************************/ - -#include "driver.h" -#include "sound/ay8910.h" - - -extern WRITE8_HANDLER( funkybee_videoram_w ); -extern WRITE8_HANDLER( funkybee_colorram_w ); -extern WRITE8_HANDLER( funkybee_gfx_bank_w ); -extern WRITE8_HANDLER( funkybee_scroll_w ); -extern WRITE8_HANDLER( funkybee_flipscreen_w ); - -extern PALETTE_INIT( funkybee ); -extern VIDEO_START( funkybee ); -extern VIDEO_UPDATE( funkybee ); - - -static READ8_HANDLER( funkybee_input_port_0_r ) -{ - watchdog_reset_r(0); - return input_port_0_r(offset); -} - -static WRITE8_HANDLER( funkybee_coin_counter_w ) -{ - coin_counter_w(offset,data); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x4fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_READ(MRA8_NOP) /* IRQ Ack */ - AM_RANGE(0xf800, 0xf800) AM_READ(funkybee_input_port_0_r) - AM_RANGE(0xf801, 0xf801) AM_READ(input_port_1_r) - AM_RANGE(0xf802, 0xf802) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x4fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(funkybee_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(funkybee_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xe000) AM_WRITE(funkybee_scroll_w) - AM_RANGE(0xe800, 0xe800) AM_WRITE(funkybee_flipscreen_w) - AM_RANGE(0xe802, 0xe803) AM_WRITE(funkybee_coin_counter_w) - AM_RANGE(0xe805, 0xe805) AM_WRITE(funkybee_gfx_bank_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( funkybee ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, "Freeze" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x40, "20000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( funkbeeb ) - PORT_INCLUDE(funkybee) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) -INPUT_PORTS_END - -INPUT_PORTS_START( skylancr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, "Freeze" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) /* Also affects bonus life */ - PORT_DIPSETTING( 0x30, "1" ) /* Bonus life at 20000 and 50000 */ - PORT_DIPSETTING( 0x20, "2" ) /* Bonus life at 20000 and 50000 */ - PORT_DIPSETTING( 0x10, "3" ) /* Bonus life at 40000 and 70000 */ - PORT_DIPSETTING( 0x00, "4" ) /* Bonus life at 40000 and 70000 */ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( skylance ) - PORT_INCLUDE(skylancr) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x40, "20000 50000" ) - PORT_DIPSETTING( 0x00, "40000 70000" ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 -}; - -static const gfx_layout spritelayout = -{ - 8,32, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8, - 48*8, 49*8, 50*8, 51*8, 52*8, 53*8, 54*8, 55*8 }, - 4*16*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 8 }, - { REGION_GFX2, 0, &charlayout, 0, 8 }, - { REGION_GFX1, 0, &spritelayout, 16, 4 }, - { REGION_GFX2, 0, &spritelayout, 16, 4 }, - { -1 } /* end of array */ -}; - - -static struct AY8910interface ay8910_interface = -{ - input_port_3_r -}; - - -static MACHINE_DRIVER_START( funkybee ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(12, 32*8-1-12, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(32) - - MDRV_PALETTE_INIT(funkybee) - MDRV_VIDEO_START(funkybee) - MDRV_VIDEO_UPDATE(funkybee) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( funkybee ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "funkybee.1", 0x0000, 0x1000, CRC(3372cb33) SHA1(09f2673cdeaadba8211d86a19e727aebb4d8be9d) ) - ROM_LOAD( "funkybee.3", 0x1000, 0x1000, CRC(7bf7c62f) SHA1(f8e5514c17fddb8ed95e5e18aab81ad0ebcc41af) ) - ROM_LOAD( "funkybee.2", 0x2000, 0x1000, CRC(8cc0fe8e) SHA1(416d97db0a2219ea46f2caa55787253e16a5ef32) ) - ROM_LOAD( "funkybee.4", 0x3000, 0x1000, CRC(1e1aac26) SHA1(a2974e6a8da5568f91aa44adb58941b0a60b1536) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "funkybee.5", 0x0000, 0x2000, CRC(86126655) SHA1(d91682121d7f6a70f10a946ab81b248cc29bdf8c) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "funkybee.6", 0x0000, 0x2000, CRC(5fffd323) SHA1(9de9c869bd1e2daab3b94275444ecbe904bcd6aa) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "funkybee.clr", 0x0000, 0x0020, CRC(e2cf5fe2) SHA1(50b293f48f078cbcebccb045aa779ced2fb298c8) ) -ROM_END - -/* This is a bootleg of "Funky Bee", where ORCA copyright has been removed and difficulty is harder, - there are 2 lives less then in the original game - TODO: insert correct DIPSWITCH, where lives is "1,2,3,4" instead of "3,4,5,6" */ -ROM_START( funkbeeb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "senza_orca.fb1", 0x0000, 0x1000, CRC(7f2e7f85) SHA1(d4b63add3a97fc80aeafcd72a261302ab52d60a7) ) - ROM_LOAD( "funkybee.3", 0x1000, 0x1000, CRC(7bf7c62f) SHA1(f8e5514c17fddb8ed95e5e18aab81ad0ebcc41af) ) - ROM_LOAD( "funkybee.2", 0x2000, 0x1000, CRC(8cc0fe8e) SHA1(416d97db0a2219ea46f2caa55787253e16a5ef32) ) - ROM_LOAD( "senza_orca.fb4", 0x3000, 0x1000, CRC(53c2db3b) SHA1(0bda1eb87d7c41b67a5ff00b6675defdc8fe9274) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "funkybee.5", 0x0000, 0x2000, CRC(86126655) SHA1(d91682121d7f6a70f10a946ab81b248cc29bdf8c) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "funkybee.6", 0x0000, 0x2000, CRC(5fffd323) SHA1(9de9c869bd1e2daab3b94275444ecbe904bcd6aa) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "funkybee.clr", 0x0000, 0x0020, CRC(e2cf5fe2) SHA1(50b293f48f078cbcebccb045aa779ced2fb298c8) ) -ROM_END - -ROM_START( skylancr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1sl.5a", 0x0000, 0x2000, CRC(e80b315e) SHA1(0c02aa9f0d4bdfc3482c400d0e4e38fd3912a512) ) - ROM_LOAD( "2sl.5c", 0x2000, 0x2000, CRC(9d70567b) SHA1(05ff6f0c4b4d928e937556d9943a76f6cbc0f05f) ) - ROM_LOAD( "3sl.5d", 0x4000, 0x2000, CRC(64c39457) SHA1(b54a57a8576c2f852b765350c4504ccc3f5a431c) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "4sl.6a", 0x0000, 0x2000, CRC(9b4469a5) SHA1(a0964e6d4fbdd15153be258f0d78680559a962f2) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5sl.6c", 0x0000, 0x2000, CRC(29afa134) SHA1(d94f483b4d234fe0b1d406322409417daec092f2) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "18s030.1a", 0x0000, 0x0020, CRC(e645bacb) SHA1(5f4c299c4cf165fd229731c0e5799a34892bf28e) ) -ROM_END - -ROM_START( skylance ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.5a", 0x0000, 0x2000, CRC(82d55824) SHA1(5c457e720ac8611bea4bc7e63ba4ee1c11200471) ) - ROM_LOAD( "2.5c", 0x2000, 0x2000, CRC(dff3a682) SHA1(e3197e106c2c6d198d2769b63701222d48a196d1) ) - ROM_LOAD( "3.5d", 0x4000, 0x1000, CRC(7c006ee6) SHA1(22719d4d0ad5c4f534a1613e0d74cab73973bab7) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "4.6a", 0x0000, 0x2000, CRC(0f8ede07) SHA1(e04456fe12e2282191aee4823941f23ad8bda99d) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5.6b", 0x0000, 0x2000, CRC(24cec070) SHA1(2b7977b07acbe1394765675cd469db13a3b495f2) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "18s030.1a", 0x0000, 0x0020, CRC(e645bacb) SHA1(5f4c299c4cf165fd229731c0e5799a34892bf28e) ) -ROM_END - -GAME( 1982, funkybee, 0, funkybee, funkybee, 0, ROT90, "Orca", "Funky Bee", 0 ) -GAME( 1982, funkbeeb, funkybee, funkybee, funkybee, 0, ROT90, "bootleg", "Funky Bee (bootleg, harder)", 0 ) -GAME( 1983, skylancr, 0, funkybee, skylancr, 0, ROT90, "Orca", "Sky Lancer", 0 ) -GAME( 1983, skylance, skylancr, funkybee, skylance, 0, ROT90, "Orca (Esco Trading Co license)", "Sky Lancer (Esco Trading Co license)", 0 ) diff --git a/src/drivers/fuukifg3.c b/src/drivers/fuukifg3.c deleted file mode 100644 index fc4b87597..000000000 --- a/src/drivers/fuukifg3.c +++ /dev/null @@ -1,615 +0,0 @@ -/*************************************************************************** - - -= Fuuki 32 Bit Games (FG-3) =- - - driver by Paul Priest and David Haywood - based on fuukifg2 by Luca Elia - -Hardware is similar to FG-2 used for : -"Go Go! Mile Smile", "Susume! Mile Smile (Japan)" & "Gyakuten!! Puzzle Bancho (Japan)" -See fuukifg2.c - -Main CPU : M68020 - ---------------------------------------------------------------------------- -Year + Game ---------------------------------------------------------------------------- -98 Asura Blade - Sword of Dynasty - Asura Buster - Eternal Warriors ---------------------------------------------------------------------------- - --- -Notes so far: - -- Dips, need DIP sheet. - -- Raster Effects are imperfect, bad frames when lots of new sprites. - -- The scroll values are generally wrong when flip screen is on and rasters are often incorrect - -Asura Blade -Fuuki Co. Ltd., 1998 - -PCB Layout ----------- - -Top Board - -FG-3J MAIN-J Revision:1.1 -|-----------------------------------------------------| -| YAC516 YMF278 N341256(x4) N341028 (x4) FI-002K | -| 33.8688MHz N341512(x4) | -| PAL N341256 | -| Z80 N341256 | -| N341256 | -|J DSW1 | -|A | -|M 12MHz FI-003K N341256(x2) | -|M DSW2 N341256(x3) | -|A PAL | -| 40MHz PAL | -| DSW3 PAL N341256 | -| 68020 PAL N341256 | -| N341256 28.432MHz M60067-0901FP | -| DSW4 N341256 PAL | -|-----------------------------------------------------| - -Notes: - 68020 clock: 20.000MHz - Z80 clock: 6.000MHz - YM278 clock: 33.8688MHz - VSync: 60Hz - Hsync: 15.81kHz - - -Bottom Board - -FG-3J ROM-J 507KA0301P04 Rev:1.3 -|--------------------------------| -| SROM | -| | -| SP01* SP89 PCM | -| | -| SP23 SPAB | -| | -| SP45 SPCD MAP | -| | -| SP67 SPEF* PGM3 | -| | -| PGM2 | -| | -| BG2123 BG1113 PGM1 | -| | -| BG2022 BG1012 PGM0 | -|--------------------------------| - -* = Not populated - -***************************************************************************/ - -#include "driver.h" -#include "sound/262intf.h" -#include "sound/ymf278b.h" - -static int fuuki32_raster_enable = 1; /* Enabled by default */ -static UINT8 fuuki32_shared_ram[16]; - -// Described in src/vidhrdw/fuuki32.c -extern UINT32 *fuuki32_vram_0, *fuuki32_vram_1; -extern UINT32 *fuuki32_vram_2, *fuuki32_vram_3; -extern UINT32 *fuuki32_vregs, *fuuki32_priority, *fuuki32_tilebank; - - -/* Functions defined in vidhrdw: */ - -WRITE32_HANDLER( fuuki32_vram_0_w ); -WRITE32_HANDLER( fuuki32_vram_1_w ); -WRITE32_HANDLER( fuuki32_vram_2_w ); -WRITE32_HANDLER( fuuki32_vram_3_w ); - -VIDEO_START( fuuki32 ); -VIDEO_UPDATE( fuuki32 ); -VIDEO_EOF( fuuki32 ); - -//UINT32 *fuuki32_shared_ram; - -static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w ) -{ - if(ACCESSING_MSW32) - { - int r,g,b; - COMBINE_DATA(&paletteram32[offset]); - - r = (paletteram32[offset] & 0x7c000000) >> (10+16); - g = (paletteram32[offset] & 0x03e00000) >> (5+16); - b = (paletteram32[offset] & 0x001f0000) >> (0+16); - - palette_set_color(Machine,offset*2,pal5bit(r),pal5bit(g),pal5bit(b)); - } - - if(ACCESSING_LSW32) - { - int r,g,b; - COMBINE_DATA(&paletteram32[offset]); - - r = (paletteram32[offset] & 0x00007c00) >> (10); - g = (paletteram32[offset] & 0x000003e0) >> (5); - b = (paletteram32[offset] & 0x0000001f) >> (0); - - palette_set_color(Machine,offset*2+1,pal5bit(r),pal5bit(g),pal5bit(b)); - } -} - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - - -#define FUUKI32_INPUT( _N_ ) \ -\ -static READ32_HANDLER( io32_##_N_##_r ) \ -{ \ - return (readinputport( _N_ ) << 16) | readinputport( _N_ ); \ -} - -FUUKI32_INPUT( 0 ) /* $800000.l Coins Inputs */ -FUUKI32_INPUT( 1 ) /* $810000.l Player Inputs */ -FUUKI32_INPUT( 2 ) /* $880000.l Dipswitches + Service */ -FUUKI32_INPUT( 3 ) /* $890000.l More Dipswitches */ - -/* Sound comms */ -static READ32_HANDLER( snd_020_r ) -{ - return fuuki32_shared_ram[offset*2]<<16 | fuuki32_shared_ram[(offset*2)+1]; -} - -static WRITE32_HANDLER( snd_020_w ) -{ - if (!(mem_mask & 0x00ff0000)) - { - fuuki32_shared_ram[offset*2] = data>>16; - } - - if (!(mem_mask & 0x000000ff)) - { - fuuki32_shared_ram[(offset*2)+1] = data & 0xff; - } -} - -// Lines with empty comment are for debug only - -static ADDRESS_MAP_START( fuuki32_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA32_RAM) // Work RAM - AM_RANGE(0x500000, 0x501fff) AM_READ(MRA32_RAM) // Tilemap 1 - AM_RANGE(0x502000, 0x503fff) AM_READ(MRA32_RAM) // Tilemap 2 - AM_RANGE(0x504000, 0x505fff) AM_READ(MRA32_RAM) // Tilemap bg - AM_RANGE(0x506000, 0x507fff) AM_READ(MRA32_RAM) // Tilemap bg2 - AM_RANGE(0x508000, 0x517fff) AM_READ(MRA32_RAM) // More tilemap, or linescroll? Seems to be empty all of the time - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA32_RAM) // Sprites - - AM_RANGE(0x700000, 0x703fff) AM_READ(MRA32_RAM) // Palette - - AM_RANGE(0x800000, 0x800003) AM_READ(io32_0_r) // Coin - AM_RANGE(0x810000, 0x810003) AM_READ(io32_1_r) // Player Inputs - AM_RANGE(0x880000, 0x880003) AM_READ(io32_2_r) // Service + DIPS - AM_RANGE(0x890000, 0x890003) AM_READ(io32_3_r) // More DIPS - - AM_RANGE(0x8c0000, 0x8c001f) AM_READ(MRA32_RAM)// Video Registers - -/**/AM_RANGE(0x8d0000, 0x8d0003) AM_READ(MRA32_RAM) // Flipscreen Related -/**/AM_RANGE(0x8e0000, 0x8e0003) AM_READ(MRA32_RAM) // Controls layer order - - AM_RANGE(0x903fe0, 0x903fff) AM_READ(snd_020_r) // Shared with Z80 -// AM_RANGE(0x903fe0, 0x903fe3) AM_READ(fuuki32_sound_command_r) // Shared with Z80 -// AM_RANGE(0x903fe4, 0x903fff) AM_READ(MRA32_RAM) // ?? -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fuuki32_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA32_RAM) // Work RAM - AM_RANGE(0x500000, 0x501fff) AM_WRITE(fuuki32_vram_0_w) AM_BASE(&fuuki32_vram_0) // Tilemap 1 - AM_RANGE(0x502000, 0x503fff) AM_WRITE(fuuki32_vram_1_w) AM_BASE(&fuuki32_vram_1) // Tilemap 2 - AM_RANGE(0x504000, 0x505fff) AM_WRITE(fuuki32_vram_2_w) AM_BASE(&fuuki32_vram_2) // Tilemap bg - AM_RANGE(0x506000, 0x507fff) AM_WRITE(fuuki32_vram_3_w) AM_BASE(&fuuki32_vram_3) // Tilemap bg2 - AM_RANGE(0x508000, 0x517fff) AM_WRITE(MWA32_RAM) // More tilemap, or linescroll? Seems to be empty all of the time - - AM_RANGE(0x600000, 0x601fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(&paletteram32) // Palette - - AM_RANGE(0x800000, 0x800003) AM_WRITE(MWA32_NOP) // Clear buffered inputs - AM_RANGE(0x810000, 0x810003) AM_WRITE(MWA32_NOP) // Clear buffered inputs - - AM_RANGE(0x8c0000, 0x8c001f) AM_WRITE(MWA32_RAM) AM_BASE(&fuuki32_vregs) // Video Registers - - AM_RANGE(0x8d0000, 0x8d0003) AM_WRITE(MWA32_RAM) // Flipscreen Related - AM_RANGE(0x8e0000, 0x8e0003) AM_WRITE(MWA32_RAM) AM_BASE(&fuuki32_priority) // Controls layer order - - AM_RANGE(0x903fe0, 0x903fff) AM_WRITE(snd_020_w) // z80 comms - - AM_RANGE(0xa00000, 0xa00003) AM_WRITE(MWA32_RAM) AM_BASE(&fuuki32_tilebank) -ADDRESS_MAP_END - - -/*************************************************************************** - - Memory Maps - Sound CPU - -***************************************************************************/ - -static WRITE8_HANDLER ( fuuki32_sound_bw_w ) -{ - UINT8 *rom = memory_region(REGION_CPU2); - - memory_set_bankptr(1, rom + 0x10000 + (data * 0x8000)); -} - -static READ8_HANDLER( snd_z80_r ) -{ - return fuuki32_shared_ram[offset]; -} - -static WRITE8_HANDLER( snd_z80_w ) -{ - fuuki32_shared_ram[offset] = data; -} - -static ADDRESS_MAP_START( fuuki32_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0x7ff0, 0x7fff) AM_READ(snd_z80_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1 ) // ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fuuki32_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0x7ff0, 0x7fff) AM_WRITE(snd_z80_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM ) // ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fuuki32_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x40, 0x40) AM_READ(YMF262_status_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fuuki32_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w) - AM_RANGE(0x30, 0x30) AM_WRITE(MWA8_NOP) - AM_RANGE(0x40, 0x40) AM_WRITE(YMF262_register_A_0_w) - AM_RANGE(0x41, 0x41) AM_WRITE(YMF262_data_A_0_w) - AM_RANGE(0x42, 0x42) AM_WRITE(YMF262_register_B_0_w) - AM_RANGE(0x43, 0x43) AM_WRITE(YMF262_data_B_0_w) - AM_RANGE(0x44, 0x44) AM_WRITE(YMF278B_control_port_0_C_w) - AM_RANGE(0x45, 0x45) AM_WRITE(YMF278B_data_port_0_C_w) -ADDRESS_MAP_END - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - -INPUT_PORTS_START( asurabld ) - PORT_START // IN0 - $800000.w/$800002.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0xfe00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - $810000.w/$810002.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - $880000.w/$880002.w - PORT_SERVICE( 0x0001, 0x0001 ) - PORT_DIPNAME( 0x0002, 0x0002, "Blood Colour" ) // Any other censorship? (Tested in 3 locations) - PORT_DIPSETTING( 0x0002, "Red" ) - PORT_DIPSETTING( 0x0000, "Green" ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) // Tested @ 0917AC - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) // Tested @ 0917AC - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, "Timer" ) - PORT_DIPSETTING( 0x0000, "Slow" ) - PORT_DIPSETTING( 0x0030, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x0010, "Fast" ) - PORT_DIPSETTING( 0x0020, "Very Fast" ) - PORT_DIPNAME( 0x00c0, 0x0000, "Coinage Mode" ) - PORT_DIPSETTING( 0x00c0, "Split" ) - PORT_DIPSETTING( 0x0000, "Joint" ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START // IN3 - $890000.w/$890002.w - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x000e, 0x0000, "Computer Level" ) // See @ 0917CC - PORT_DIPSETTING( 0x0000, "0" ) - PORT_DIPSETTING( 0x0008, "1" ) - PORT_DIPSETTING( 0x0004, "2" ) - PORT_DIPSETTING( 0x000c, "3" ) - PORT_DIPSETTING( 0x000e, "4" ) - PORT_DIPSETTING( 0x0002, "5" ) - PORT_DIPSETTING( 0x000a, "6" ) - PORT_DIPSETTING( 0x0006, "7" ) - PORT_DIPNAME( 0x0030, 0x0010, "Damage" ) - PORT_DIPSETTING( 0x0020, "Lowest" ) - PORT_DIPSETTING( 0x0030, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( High ) ) - PORT_DIPNAME( 0x00c0, 0x0040, "Max Rounds" ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0040, "3" ) - PORT_DIPSETTING( 0x0080, "5" ) - PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x9000, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0xa000, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xe000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xf000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) // Set both for Free Play - PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x0900, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0d00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0f00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) // Set both for Free Play - -INPUT_PORTS_END - - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - -/* 8x8x4 */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { 2*4,3*4, 0*4,1*4, 6*4,7*4, 4*4,5*4 }, - { STEP8(0,8*4) }, - 8*8*4 -}; - -/* 16x16x4 */ -static const gfx_layout layout_16x16x4 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { 2*4,3*4, 0*4,1*4, 6*4,7*4, 4*4,5*4, - 10*4,11*4, 8*4,9*4, 14*4,15*4, 12*4,13*4 }, - { STEP16(0,16*4) }, - 16*16*4 -}; - -/* 16x16x8 */ -static const gfx_layout layout_16x16x8 = -{ - 16,16, - RGN_FRAC(1,2), - 8, - { STEP4(RGN_FRAC(1,2),1), STEP4(0,1) }, - { 2*4,3*4, 0*4,1*4, 6*4,7*4, 4*4,5*4, - 10*4,11*4, 8*4,9*4, 14*4,15*4, 12*4,13*4 }, - { STEP16(0,16*4) }, - 16*16*4 -}; - -static const gfx_decode fuuki32_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x4, 0x400*2, 0x40 }, // [0] Sprites - { REGION_GFX2, 0, &layout_16x16x8, 0x400*0, 0x40 }, // [1] Layer 1 - { REGION_GFX3, 0, &layout_16x16x8, 0x400*1, 0x40 }, // [2] Layer 2 - { REGION_GFX4, 0, &layout_8x8x4, 0x400*3, 0x40 }, // [3] BG Layer - { REGION_GFX4, 0, &layout_8x8x4, 0x400*3, 0x40 }, // [4] BG Layer 2 (GFX4!) - { -1 } -}; - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -#define INTERRUPTS_NUM (256-1) // Give much better results than 256.. -static INTERRUPT_GEN( fuuki32_interrupt ) -{ - if ( cpu_getiloops() == 1 ) - cpunum_set_input_line(0, 1, PULSE_LINE); - - if ( cpu_getiloops() == 0 ) - { - cpunum_set_input_line(0, 3, PULSE_LINE); // VBlank IRQ - - if (code_pressed_memory(KEYCODE_F1)) - { - fuuki32_raster_enable ^= 1; - popmessage("raster effects %sabled",fuuki32_raster_enable ? "en" : "dis"); - } - } - - if ( ((fuuki32_vregs[0x1c/4]>>16) & 0xff) == (INTERRUPTS_NUM-1 - cpu_getiloops()) ) - { - cpunum_set_input_line(0, 5, PULSE_LINE); // Raster Line IRQ - if(fuuki32_raster_enable) video_screen_update_partial(0, cpu_getscanline()); - } -} - -static void irqhandler(int irq) -{ - cpunum_set_input_line(1, 0, irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YMF278B_interface ymf278b_interface = -{ - REGION_SOUND1 -}; - -static struct YMF262interface ymf262_interface = -{ - irqhandler /* irq */ -}; - -static MACHINE_DRIVER_START( fuuki32 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 20000000) /* verified */ - MDRV_CPU_PROGRAM_MAP(fuuki32_readmem,fuuki32_writemem) - MDRV_CPU_VBLANK_INT(fuuki32_interrupt,INTERRUPTS_NUM) - - MDRV_CPU_ADD_TAG("sound", Z80, 6000000) /* verified */ - MDRV_CPU_PROGRAM_MAP(fuuki32_sound_readmem,fuuki32_sound_writemem) - MDRV_CPU_IO_MAP(fuuki32_sound_readport,fuuki32_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) // | VIDEO_BUFFERS_SPRITERAM ) // Buffered by 2 frames - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) - MDRV_GFXDECODE(fuuki32_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x4000/2) - - MDRV_VIDEO_START(fuuki32) - MDRV_VIDEO_UPDATE(fuuki32) - MDRV_VIDEO_EOF(fuuki32) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF262, 14318180) - MDRV_SOUND_CONFIG(ymf262_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - MDRV_SOUND_ROUTE(2, "left", 0.50) - MDRV_SOUND_ROUTE(3, "right", 0.50) - - MDRV_SOUND_ADD(YMF278B, YMF278B_STD_CLOCK) - MDRV_SOUND_CONFIG(ymf278b_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) -MACHINE_DRIVER_END - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/*************************************************************************** - - Asura Blade -Fuuki, 1999 - -This dump is taken from a ROM board with number FG-3J ROM-J -There's nothing on the board except some 4M EPROMs and several -surface mounted MASK ROMs. - -The connectors on the board and the size of the board is similar -to Jaleco Megasys32, however it's not compatible with it due to the -connector spacing being different. The physical size of the board -is too large to fit an SSV board. -So, I have no idea what the main hardware is, the game probably -runs on a custom Fuuki system board named 'FG-3'? - -***************************************************************************/ - -ROM_START( asurabld ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* M68020 */ - ROM_LOAD32_BYTE( "pgm3.u1", 0x000000, 0x80000, CRC(053e9758) SHA1(c2754d3f0c607c81c8fa33b667b576eb0474fd0b) ) - ROM_LOAD32_BYTE( "pgm2.u2", 0x000001, 0x80000, CRC(16b656ca) SHA1(5ffb551ce7dec462d3896f0fed693454496894bc) ) - ROM_LOAD32_BYTE( "pgm1.u3", 0x000002, 0x80000, CRC(35104452) SHA1(03cfd81429f8a945d5419c9750925bfa997d0607) ) - ROM_LOAD32_BYTE( "pgm0.u4", 0x000003, 0x80000, CRC(68615497) SHA1(de93751f151f195a863dc6fe83b6e7ed8f99430a) ) - - ROM_REGION( 0x090000, REGION_CPU2, 0 ) /* Z80 */ - ROM_LOAD( "srom.u7", 0x00000, 0x80000, CRC(bb1deb89) SHA1(b1c70abddc0b9a88beb69a592376ff69a7e091eb) ) - ROM_RELOAD( 0x10000, 0x80000) /* for banks */ - - ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE ) - /* 0x0000000 - 0x03fffff empty */ /* spXX.uYY - XX is the bank number! */ - ROM_LOAD( "sp23.u14", 0x0400000, 0x400000, CRC(7df492eb) SHA1(30b88a3cd025ffc8c28fef06e0784755be37ef8e) ) - ROM_LOAD( "sp45.u15", 0x0800000, 0x400000, CRC(1890f42a) SHA1(22254fe38fd83f4602a25e1ccba32df16edaf3f9) ) - ROM_LOAD( "sp67.u16", 0x0c00000, 0x400000, CRC(a48f1ef0) SHA1(bf8787f293793291a503af662d3738c007654726) ) - ROM_LOAD( "sp89.u17", 0x1000000, 0x400000, CRC(6b024362) SHA1(8be5cc3c7306d28b75acd970bb3be6d3c9825367) ) - ROM_LOAD( "spab.u18", 0x1400000, 0x400000, CRC(803d2d8c) SHA1(25df30689e576a0620656c721d92bcc3fbd84844) ) - ROM_LOAD( "spcd.u19", 0x1800000, 0x400000, CRC(42e5c26e) SHA1(b68875d353bdc5d49113bbac02fd83508bce66a5) ) - - ROM_REGION( 0x0800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "bg1012.u22", 0x0000000, 0x400000, CRC(d717a0a1) SHA1(007df309dc0650ca07e077b983a2b05730349d0b) ) - ROM_LOAD( "bg1113.u23", 0x0400000, 0x400000, CRC(94338267) SHA1(7848bc57cb0eac216100a508763451eb57a0a082) ) - - ROM_REGION( 0x0800000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "bg2022.u25", 0x0000000, 0x400000, CRC(ee312cd3) SHA1(2ef9d51928d80375daf8e6b204bb66a8b9cbaee7) ) - ROM_LOAD( "bg2123.u24", 0x0400000, 0x400000, CRC(4acfc469) SHA1(a98d06b967ebb3fa3b4c8aa3d7a05063ec981fb2) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) // background tiles - ROM_LOAD( "map.u5", 0x00000, 0x200000, CRC(e681155e) SHA1(458845b9c86df72685d92d0d4052aacc2fa7d1bd) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // OPL4 samples - ROM_LOAD( "pcm.u6", 0x00000, 0x400000, CRC(ac72225a) SHA1(8d16399ed34ac5bd69dbf43b2de2b0db9ac1c610) ) -ROM_END - - -/*************************************************************************** - - - Game Drivers - - -***************************************************************************/ - -GAME( 1998, asurabld, 0, fuuki32, asurabld, 0, ROT0, "Fuuki", "Asura Blade - Sword of Dynasty (Japan)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/gaelco3d.c b/src/drivers/gaelco3d.c deleted file mode 100644 index b05221a75..000000000 --- a/src/drivers/gaelco3d.c +++ /dev/null @@ -1,1170 +0,0 @@ -/************************************************************************* - - Driver for Gaelco 3D games - - driver by Aaron Giles - - Games supported: - * Speed Up - * Surf Planet - * Radikal Bikers - - Known bugs: - * EEPROM interface not right - * sound not hooked up - -*************************************************************************** - -PCB Layout -- Radikal Bikers ----------- - -Top board - -REF. 980311 -|----------------------------------------------------------------| -| RAB.6 RAB.14 PAL RAB.48* | -| RAB.12 RAB.19 | -| RAB.23* ADSP-2115 16MHz RAB.45* | -| | -| | -| RAB.24 RAB.32 TDA1543 | -| TL074 | -| RAB.8* RAB.15* RAB.25 RAB.33 | -| RAB.9* RAB.16* | -| RAB.26 RAB.34 | -| | -| RAB.10* RAB.17* RAB.27 RAB.35 TDA1543 | -| RAB.11* RAB.18* TL074 | -| | -| | -| | -|----------------------------------------------------------------| -Notes: - Contents of RAB.24 to RAB.27 = RAB.32 to RAB.35 - * - These ROMs are surface mounted - - -Bottom board - -REF. 980512 -|----------------------------------------------------------------| -| ALTERA TMS320C31 50MHz | -|50MHz EPM7064 68EC020 CY7C199 (QFP132) | -| CY7C199 | -| CY7C199 KM4216C256 | -|93C66 CY7C199 | -| CY7C199 |--------| | -| CY7C199 |3D-3G | | -|75LBC176 |(QFP206)| | -|75LBC176 | | | -| |------------| |--------| | -| |CHIP EXPRESS| | -| |RASTER | 45MHz | -| |M1178-01 | | -| |M032541-4 | | -| CY7C199 |------------| | -| CY7C199 | -| CY7C199 | -| CY7C199 | -| KM4216C256 KM4216C256 | -| |------------| | -| |CHIP EXPRESS| KM4216C256 KM4216C256 PAL | -| |CHK1 | | -| |M1105-01 | KM4216C256 | -| |M048494-22 | | -| |------------| | -|----------------------------------------------------------------| - - -PCB Layout -- Surf Planet ----------- - -Top board - -REF. 971223 -|----------------------------------------------------------------| -| PLS.5 PLS.11 PAL PLS.37* | -| PLS.8 PLS.13 | -| PLS.18* ADSP-2115 16MHz PLS.40* | -| | -| | -| PLS.19 PLS.27 TDA1543 | -| TL074 | -| PLS.20 PLS.28 | -| | -| PLS.21 PLS.29 | -| | -| PLS.7* PLS.12* PLS.22 PLS.30 TDA1543 | -| PLS.9* PLS.15* TL074 | -| | -| TLC549 | -| LM358 | -|----------------------------------------------------------------| -Notes: - Contents of PLS.19 to PLS.22 = PLS.27 to PLS.30 - * - These ROMs are surface mounted - - -Bottom board - -REF. 970429 -|----------------------------------------------------------------| -| PAL 60MHz TMS320C31 | -| 68HC000 CY7C199 (QFP132) | -| CY7C199 | -| CY7C199 KM4216C256 | -|93C66 CY7C199 | -| CY7C199 |--------| | -| CY7C199 |3D-3G | | -|75LBC176 |(QFP206)| | -|75LBC176 | | | -| |------------| |--------| | -| |CHIP EXPRESS| | -| |RASTER | 45MHz | -| |M027851-1 | | -| |9706 CI USA | | -| CY7C199 |------------| | -| CY7C199 | -| CY7C199 | -| CY7C199 | -| KM4216C256 KM4216C256 | -| |------------| | -| |CHIP EXPRESS| KM4216C256 KM4216C256 PAL | -| |SU3DCOL | | -| |M026402-3 | KM4216C256 | -| |9647 CI USA | | -| |------------| | -|----------------------------------------------------------------| - - -6 * KM4216C256G = 6 * 256k x 16 -10 * CY7C199 = 10 * 32k x 8 - - -**************************************************************************/ - -#include "driver.h" -#include "gaelco3d.h" -#include "cpu/tms32031/tms32031.h" -#include "cpu/adsp2100/adsp2100.h" -#include "machine/eeprom.h" -#include "sound/dmadac.h" - - -#define SOUND_CHANNELS 4 - - -static UINT32 *adsp_ram_base; -static UINT16 *m68k_ram_base; -static UINT16 *tms_comm_base; -static UINT16 sound_data; -static UINT8 sound_status; -static offs_t tms_offset_xor; -static UINT8 analog_ports[4]; -static UINT8 framenum; - -static mame_timer *adsp_autobuffer_timer; -static UINT16 *adsp_control_regs; -static UINT16 *adsp_fastram_base; -static UINT8 adsp_ireg; -static offs_t adsp_ireg_base, adsp_incs, adsp_size; - -static void adsp_tx_callback(int port, INT32 data); -static void adsp_autobuffer_irq(int state); - - - -/************************************* - * - * Machine init - * - *************************************/ - -static void init_machine_common(void) -{ - UINT16 *src; - int i; - - framenum = 0; - - /* boot the ADSP chip */ - src = (UINT16 *)memory_region(REGION_USER1); - for (i = 0; i < (src[3] & 0xff) * 8; i++) - { - UINT32 opcode = ((src[i*4+0] & 0xff) << 16) | ((src[i*4+1] & 0xff) << 8) | (src[i*4+2] & 0xff); - adsp_ram_base[i] = opcode; - } - - /* initialize the ADSP Tx callback */ - cpunum_set_info_fct(2, CPUINFO_PTR_ADSP2100_TX_HANDLER, (genf *)adsp_tx_callback); - - /* allocate a timer for feeding the autobuffer */ - adsp_autobuffer_timer = timer_alloc(adsp_autobuffer_irq); - - memory_set_bankptr(1, &src[0x0000]); - - /* keep the TMS32031 halted until the code is ready to go */ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); -} - - -static MACHINE_RESET( gaelco3d ) -{ - init_machine_common(); - tms_offset_xor = 0; -} - - -static MACHINE_RESET( gaelco3d2 ) -{ - init_machine_common(); - tms_offset_xor = BYTE_XOR_BE(0); -} - - - -/************************************* - * - * IRQ handling - * - *************************************/ - -static INTERRUPT_GEN( vblank_gen ) -{ - gaelco3d_render(); - if (framenum++ % 2 == 1) - cpunum_set_input_line(0, 2, ASSERT_LINE); -} - - -static WRITE16_HANDLER( irq_ack_w ) -{ - cpunum_set_input_line(0, 2, CLEAR_LINE); -} -static WRITE32_HANDLER( irq_ack_020_w ) { if ((mem_mask & 0xffff0000) != 0xffff0000) irq_ack_w(offset, data >> 16, mem_mask >> 16); } - - - -/************************************* - * - * EEPROM (93C66) - * - *************************************/ - -static struct EEPROM_interface gaelco2_eeprom_interface = -{ - 8, /* address bits */ - 16, /* data bits */ - "*110", /* read command */ - "*101", /* write command */ - "*111", /* erase command */ - "*10000xxxxxx", /* lock command */ - "*10011xxxxxx", /* unlock command */ -// "*10001xxxxxx", /* write all */ -// "*10010xxxxxx", /* erase all */ -}; - - -static NVRAM_HANDLER( gaelco3d ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&gaelco2_eeprom_interface); - if (file) EEPROM_load(file); - } -} - - -static READ16_HANDLER( eeprom_data_r ) -{ - UINT16 result = 0xffff; - if (EEPROM_read_bit()) - result ^= 0x0004; - logerror("eeprom_data_r(%02X)\n", result); - return result; -} -static READ32_HANDLER( eeprom_data_020_r ) { return eeprom_data_r(offset, mem_mask) << 16; } - - -static WRITE16_HANDLER( eeprom_data_w ) -{ - if (!(mem_mask & 0xff)) - EEPROM_write_bit(data & 0x01); -} -static WRITE32_HANDLER( eeprom_data_020_w ) { if ((mem_mask & 0xffff) != 0xffff) eeprom_data_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( eeprom_clock_w ) -{ - if (!(mem_mask & 0xff)) - EEPROM_set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); -} -static WRITE32_HANDLER( eeprom_clock_020_w ) { if ((mem_mask & 0xffff) != 0xffff) eeprom_clock_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( eeprom_cs_w ) -{ - if (!(mem_mask & 0xff)) - EEPROM_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); -} -static WRITE32_HANDLER( eeprom_cs_020_w ) { if ((mem_mask & 0xffff) != 0xffff) eeprom_cs_w(offset, data, mem_mask); } - - - -/************************************* - * - * Sound CPU comms - * - *************************************/ - -static void delayed_sound_w(int data) -{ - logerror("delayed_sound_w(%02X)\n", data); - sound_data = data; - cpunum_set_input_line(2, ADSP2115_IRQ2, ASSERT_LINE); -} - - -static WRITE16_HANDLER( sound_data_w ) -{ - logerror("%06X:sound_data_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); - if (!(mem_mask & 0xff)) - timer_set(TIME_NOW, data & 0xff, delayed_sound_w); -} -static WRITE32_HANDLER( sound_data_020_w ) { if ((mem_mask & 0xffff0000) != 0xffff0000) sound_data_w(offset, data >> 16, mem_mask >> 16); } - - -static READ16_HANDLER( sound_data_r ) -{ - logerror("sound_data_r(%02X)\n", sound_data); - cpunum_set_input_line(2, ADSP2115_IRQ2, CLEAR_LINE); - return sound_data; -} - - -static READ16_HANDLER( sound_status_r ) -{ - logerror("%06X:sound_status_r(%02X) = %02X\n", activecpu_get_pc(), offset, sound_status); - if (!(mem_mask & 0xff)) - return sound_status; - return 0xffff; -} -static READ32_HANDLER( sound_status_020_r ) { if ((mem_mask & 0x0000ffff) != 0x0000ffff) return sound_status_r(offset, mem_mask); return ~0; } - - -static WRITE16_HANDLER( sound_status_w ) -{ - logerror("sound_status_w(%02X)\n", sound_data); - sound_status = data; -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static READ32_HANDLER( input_port_0_020_r ) { return readinputport(0) << 16; } -static READ32_HANDLER( input_port_1_020_r ) { return readinputport(1) << 16; } -static READ32_HANDLER( input_port_2_020_r ) { return readinputport(2) << 16; } -static READ32_HANDLER( input_port_3_020_r ) { return readinputport(3) << 16; } - - -static UINT32 analog_bit_r(void *param) -{ - int which = (int)param; - return (analog_ports[which] >> 7) & 0x01; -} - - -static WRITE16_HANDLER( analog_port_clock_w ) -{ - /* a zero/one combo is written here to clock the next analog port bit */ - if (!(mem_mask & 0xff)) - { - if (!(data & 0xff)) - { - analog_ports[0] <<= 1; - analog_ports[1] <<= 1; - analog_ports[2] <<= 1; - analog_ports[3] <<= 1; - } - } - else - logerror("%06X:analog_port_clock_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} -static WRITE32_HANDLER( analog_port_clock_020_w ) { if ((mem_mask & 0xffff) != 0xffff) analog_port_clock_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( analog_port_latch_w ) -{ - /* a zero is written here to read the analog ports, and a one is written when finished */ - if (!(mem_mask & 0xff)) - { - if (!(data & 0xff)) - { - analog_ports[0] = readinputportbytag_safe("ANALOG0", 0); - analog_ports[1] = readinputportbytag_safe("ANALOG1", 0); - analog_ports[2] = readinputportbytag_safe("ANALOG2", 0); - analog_ports[3] = readinputportbytag_safe("ANALOG3", 0); - } - } - else - logerror("%06X:analog_port_latch_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} -static WRITE32_HANDLER( analog_port_latch_020_w ) { if ((mem_mask & 0xffff) != 0xffff) analog_port_latch_w(offset, data, mem_mask); } - - - -/************************************* - * - * TMS32031 interface - * - *************************************/ - -static READ32_HANDLER( tms_m68k_ram_r ) -{ -// logerror("%06X:tms_m68k_ram_r(%04X) = %08X\n", activecpu_get_pc(), offset, !(offset & 1) ? ((INT32)m68k_ram_base[offset/2] >> 16) : (int)(INT16)m68k_ram_base[offset/2]); - return (INT32)(INT16)m68k_ram_base[offset ^ tms_offset_xor]; -} - - -static WRITE32_HANDLER( tms_m68k_ram_w ) -{ - m68k_ram_base[offset ^ tms_offset_xor] = data; -} - - -static void iack_w(UINT8 state, offs_t addr) -{ - logerror("iack_w(%d) - %06X\n", state, addr); - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - - - -/************************************* - * - * TMS32031 control - * - *************************************/ - -static WRITE16_HANDLER( tms_reset_w ) -{ - /* this is set to 0 while data is uploaded, then set to $ffff after it is done */ - /* it does not ever appear to be touched after that */ - logerror("%06X:tms_reset_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); - cpunum_set_input_line(1, INPUT_LINE_RESET, (data == 0xffff) ? CLEAR_LINE : ASSERT_LINE); -} -static WRITE32_HANDLER( tms_reset_020_w ) { if ((mem_mask & 0xffff) != 0xffff) tms_reset_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( tms_irq_w ) -{ - /* this is written twice, 0,1, in quick succession */ - /* done after uploading, and after modifying the comm area */ - logerror("%06X:tms_irq_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); - if (!(mem_mask & 0xff)) - cpunum_set_input_line(1, 0, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); -} -static WRITE32_HANDLER( tms_irq_020_w ) { if ((mem_mask & 0xffff) != 0xffff) tms_irq_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( tms_control3_w ) -{ - logerror("%06X:tms_control3_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} -static WRITE32_HANDLER( tms_control3_020_w ) { if ((mem_mask & 0xffff) != 0xffff) tms_control3_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( tms_comm_w ) -{ - COMBINE_DATA(&tms_comm_base[offset ^ tms_offset_xor]); - logerror("%06X:tms_comm_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset*2, data, ~mem_mask); -} -static WRITE32_HANDLER( tms_comm_020_w ) -{ - if ((mem_mask & 0xffff0000) != 0xffff0000) tms_comm_w(offset * 2 + 0, data >> 16, mem_mask >> 16); - if ((mem_mask & 0x0000ffff) != 0x0000ffff) tms_comm_w(offset * 2 + 1, data, mem_mask); -} - - - -/************************************* - * - * ADSP control registers - * - *************************************/ - -/* These are the some of the control register, we dont use them all */ -enum -{ - S1_AUTOBUF_REG = 15, - S1_RFSDIV_REG, - S1_SCLKDIV_REG, - S1_CONTROL_REG, - S0_AUTOBUF_REG, - S0_RFSDIV_REG, - S0_SCLKDIV_REG, - S0_CONTROL_REG, - S0_MCTXLO_REG, - S0_MCTXHI_REG, - S0_MCRXLO_REG, - S0_MCRXHI_REG, - TIMER_SCALE_REG, - TIMER_COUNT_REG, - TIMER_PERIOD_REG, - WAITSTATES_REG, - SYSCONTROL_REG -}; - -/* -ADSP control 3FFF W = 0008 (SYSCONTROL_REG) -ADSP control 3FFE W = 1249 (WAITSTATES_REG) -ADSP control 3FEF W = 0D82 (S1_AUTOBUF_REG) -ADSP control 3FF1 W = 0005 (S1_SCLKDIV_REG) -ADSP control 3FF2 W = 4A0F (S1_CONTROL_REG) -ADSP control 3FFF W = 0C08 (SYSCONTROL_REG) -*/ - -static WRITE16_HANDLER( adsp_control_w ) -{ - logerror("ADSP control %04X W = %04X\n", 0x3fe0 + offset, data); - - adsp_control_regs[offset] = data; - switch (offset) - { - case SYSCONTROL_REG: - /* see if SPORT1 got disabled */ - if ((data & 0x0800) == 0) - { - dmadac_enable(0, SOUND_CHANNELS, 0); - timer_adjust(adsp_autobuffer_timer, TIME_NEVER, 0, 0); - } - break; - - case S1_AUTOBUF_REG: - /* autobuffer off: nuke the timer, and disable the DAC */ - if ((data & 0x0002) == 0) - { - dmadac_enable(0, SOUND_CHANNELS, 0); - timer_adjust(adsp_autobuffer_timer, TIME_NEVER, 0, 0); - } - break; - - case S1_CONTROL_REG: - if (((data >> 4) & 3) == 2) - logerror("Oh no!, the data is compresed with u-law encoding\n"); - if (((data >> 4) & 3) == 3) - logerror("Oh no!, the data is compresed with A-law encoding\n"); - break; - } -} - - -static WRITE16_HANDLER( adsp_rombank_w ) -{ - logerror("adsp_rombank_w(%d) = %04X\n", offset, data); - memory_set_bankptr(1, &memory_region(REGION_USER1)[((offset & 1) * 0x80 + (data & 0x7f)) * 0x4000]); -} - - - -/************************************* - * - * ADSP sound generation - * - *************************************/ - -static void adsp_autobuffer_irq(int state) -{ - /* get the index register */ - int reg = cpunum_get_reg(2, ADSP2100_I0 + adsp_ireg); - - /* copy the current data into the buffer */ -// logerror("ADSP buffer: I%d=%04X incs=%04X size=%04X\n", adsp_ireg, reg, adsp_incs, adsp_size); - if (adsp_incs) - dmadac_transfer(0, SOUND_CHANNELS, adsp_incs, SOUND_CHANNELS * adsp_incs, adsp_size / (SOUND_CHANNELS * adsp_incs), (INT16 *)&adsp_fastram_base[reg - 0x3800]); - - /* increment it */ - reg += adsp_size; - - /* check for wrapping */ - if (reg >= adsp_ireg_base + adsp_size) - { - /* reset the base pointer */ - reg = adsp_ireg_base; - - /* generate the (internal, thats why the pulse) irq */ - cpunum_set_input_line(2, ADSP2105_IRQ1, PULSE_LINE); - } - - /* store it */ - cpunum_set_reg(2, ADSP2100_I0 + adsp_ireg, reg); -} - - -static void adsp_tx_callback(int port, INT32 data) -{ - /* check if it's for SPORT1 */ - if (port != 1) - return; - - /* check if SPORT1 is enabled */ - if (adsp_control_regs[SYSCONTROL_REG] & 0x0800) /* bit 11 */ - { - /* we only support autobuffer here (wich is what this thing uses), bail if not enabled */ - if (adsp_control_regs[S1_AUTOBUF_REG] & 0x0002) /* bit 1 */ - { - /* get the autobuffer registers */ - int mreg, lreg; - UINT16 source; - double sample_rate; - - adsp_ireg = (adsp_control_regs[S1_AUTOBUF_REG] >> 9) & 7; - mreg = (adsp_control_regs[S1_AUTOBUF_REG] >> 7) & 3; - mreg |= adsp_ireg & 0x04; /* msb comes from ireg */ - lreg = adsp_ireg; - - /* now get the register contents in a more legible format */ - /* we depend on register indexes to be continuous (wich is the case in our core) */ - source = cpunum_get_reg(2, ADSP2100_I0 + adsp_ireg); - adsp_incs = cpunum_get_reg(2, ADSP2100_M0 + mreg); - adsp_size = cpunum_get_reg(2, ADSP2100_L0 + lreg); - - /* get the base value, since we need to keep it around for wrapping */ - source -= adsp_incs; - - /* make it go back one so we dont lose the first sample */ - cpunum_set_reg(2, ADSP2100_I0 + adsp_ireg, source); - - /* save it as it is now */ - adsp_ireg_base = source; - - /* calculate how long until we generate an interrupt */ - - /* frequency in Hz per each bit sent */ - sample_rate = (double)Machine->drv->cpu[2].cpu_clock / (double)(2 * (adsp_control_regs[S1_SCLKDIV_REG] + 1)); - - /* now put it down to samples, so we know what the channel frequency has to be */ - sample_rate /= 16 * SOUND_CHANNELS; - logerror("sample_rate = %f\n", sample_rate); - dmadac_set_frequency(0, SOUND_CHANNELS, sample_rate); - dmadac_enable(0, SOUND_CHANNELS, 1); - - /* fire off a timer wich will hit every half-buffer */ - timer_adjust(adsp_autobuffer_timer, TIME_IN_HZ(sample_rate) * (adsp_size / (SOUND_CHANNELS * adsp_incs)), 0, TIME_IN_HZ(sample_rate) * (adsp_size / (SOUND_CHANNELS * adsp_incs))); - - return; - } - else - logerror( "ADSP SPORT1: trying to transmit and autobuffer not enabled!\n" ); - } - - /* if we get there, something went wrong. Disable playing */ - dmadac_enable(0, SOUND_CHANNELS, 0); - - /* remove timer */ - timer_adjust(adsp_autobuffer_timer, TIME_NEVER, 0, 0); -} - - - -/************************************* - * - * Unknown accesses - * - *************************************/ - -static WRITE32_HANDLER( unknown_107_w ) -{ - /* arbitrary data written */ - if (!(mem_mask & 0xff)) - logerror("%06X:unknown_107_w = %02X\n", activecpu_get_pc(), data & 0xff); - else - logerror("%06X:unknown_107_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} - -static WRITE32_HANDLER( unknown_127_w ) -{ - /* arbitrary data written */ - if (!(mem_mask & 0xff)) - logerror("%06X:unknown_127_w = %02X\n", activecpu_get_pc(), data & 0xff); - else - logerror("%06X:unknown_127_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} - -static WRITE32_HANDLER( unknown_137_w ) -{ - /* only written $00 or $ff */ - if (!(mem_mask & 0xff)) - logerror("%06X:unknown_137_w = %02X\n", activecpu_get_pc(), data & 0xff); - else - logerror("%06X:unknown_137_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} - -static WRITE32_HANDLER( unknown_13a_w ) -{ - /* only written $0000 or $0001 */ - if (!(mem_mask & 0xffff)) - logerror("%06X:unknown_13a_w = %04X\n", activecpu_get_pc(), data & 0xffff); - else - logerror("%06X:unknown_13a_w(%02X) = %08X & %08X\n", activecpu_get_pc(), offset, data, ~mem_mask); -} - - -static WRITE16_HANDLER( led_0_w ) -{ - /* this has $00 written during an IRQ 6, then reset to $ff afterwards */ - /* LED??? */ - if (!(mem_mask & 0xff)) - set_led_status(0, data != 0); -} -static WRITE32_HANDLER( led_0_020_w ) { if ((mem_mask & 0xffff) != 0xffff) led_0_w(offset, data, mem_mask); } - - -static WRITE16_HANDLER( led_1_w ) -{ - /* LED??? -- only written $00 or $ff */ - if (!(mem_mask & 0xff)) - set_led_status(1, data != 0); -} -static WRITE32_HANDLER( led_1_020_w ) { if ((mem_mask & 0xffff) != 0xffff) led_1_w(offset, data, mem_mask); } - - - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(MRA16_RAM, gaelco3d_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0x51000c, 0x51000d) AM_READ(input_port_0_word_r) - AM_RANGE(0x51001c, 0x51001d) AM_READ(input_port_1_word_r) - AM_RANGE(0x51002c, 0x51002d) AM_READ(input_port_2_word_r) - AM_RANGE(0x51003c, 0x51003d) AM_READ(input_port_3_word_r) - AM_RANGE(0x510040, 0x510041) AM_WRITE(sound_data_w) - AM_RANGE(0x510042, 0x510043) AM_READ(sound_status_r) - AM_RANGE(0x510100, 0x510101) AM_READ(eeprom_data_r) - AM_RANGE(0x510100, 0x510101) AM_WRITE(irq_ack_w) - AM_RANGE(0x51010a, 0x51010b) AM_WRITENOP // very noisy when starting a new game - AM_RANGE(0x510110, 0x510113) AM_WRITE(eeprom_data_w) - AM_RANGE(0x510116, 0x510117) AM_WRITE(tms_control3_w) - AM_RANGE(0x510118, 0x51011b) AM_WRITE(eeprom_clock_w) - AM_RANGE(0x510120, 0x510123) AM_WRITE(eeprom_cs_w) - AM_RANGE(0x51012a, 0x51012b) AM_WRITE(tms_reset_w) - AM_RANGE(0x510132, 0x510133) AM_WRITE(tms_irq_w) - AM_RANGE(0x510146, 0x510147) AM_WRITE(led_0_w) - AM_RANGE(0x510156, 0x510157) AM_WRITE(analog_port_clock_w) - AM_RANGE(0x510166, 0x510167) AM_WRITE(analog_port_latch_w) - AM_RANGE(0x510176, 0x510177) AM_WRITE(led_1_w) - AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE(tms_comm_w) AM_BASE(&tms_comm_base) - AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_BASE(&m68k_ram_base) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( main020_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(MRA32_RAM, gaelco3d_paletteram_020_w) AM_BASE(&paletteram32) - AM_RANGE(0x51000c, 0x51000f) AM_READ(input_port_0_020_r) - AM_RANGE(0x51001c, 0x51001f) AM_READ(input_port_1_020_r) - AM_RANGE(0x51002c, 0x51002f) AM_READ(input_port_2_020_r) - AM_RANGE(0x51003c, 0x51003f) AM_READ(input_port_3_020_r) - AM_RANGE(0x510040, 0x510043) AM_READ(sound_status_020_r) - AM_RANGE(0x510040, 0x510043) AM_WRITE(sound_data_020_w) - AM_RANGE(0x510100, 0x510103) AM_READ(eeprom_data_020_r) - AM_RANGE(0x510100, 0x510103) AM_WRITE(irq_ack_020_w) - AM_RANGE(0x510104, 0x510107) AM_WRITE(unknown_107_w) - AM_RANGE(0x510110, 0x510113) AM_WRITE(eeprom_data_020_w) - AM_RANGE(0x510114, 0x510117) AM_WRITE(tms_control3_020_w) - AM_RANGE(0x510118, 0x51011b) AM_WRITE(eeprom_clock_020_w) - AM_RANGE(0x510120, 0x510123) AM_WRITE(eeprom_cs_020_w) - AM_RANGE(0x510124, 0x510127) AM_WRITE(unknown_127_w) - AM_RANGE(0x510128, 0x51012b) AM_WRITE(tms_reset_020_w) - AM_RANGE(0x510130, 0x510133) AM_WRITE(tms_irq_020_w) - AM_RANGE(0x510134, 0x510137) AM_WRITE(unknown_137_w) - AM_RANGE(0x510138, 0x51013b) AM_WRITE(unknown_13a_w) - AM_RANGE(0x510144, 0x510147) AM_WRITE(led_0_020_w) - AM_RANGE(0x510154, 0x510157) AM_WRITE(analog_port_clock_020_w) - AM_RANGE(0x510164, 0x510167) AM_WRITE(analog_port_latch_020_w) - AM_RANGE(0x510174, 0x510177) AM_WRITE(led_1_020_w) - AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE(tms_comm_020_w) AM_BASE((UINT32 **)&tms_comm_base) - AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_BASE((UINT32 **)&m68k_ram_base) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tms_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x007fff) AM_READWRITE(tms_m68k_ram_r, tms_m68k_ram_w) - AM_RANGE(0x400000, 0x5fffff) AM_ROM AM_REGION(REGION_USER2, 0) - AM_RANGE(0xc00000, 0xc00007) AM_WRITE(gaelco3d_render_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( adsp_program_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&adsp_ram_base) /* 1k words internal RAM */ - AM_RANGE(0x37ff, 0x37ff) AM_READNOP /* speedup hammers this for no apparent reason */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( adsp_data_map, ADDRESS_SPACE_DATA, 16 ) - AM_RANGE(0x0000, 0x0001) AM_WRITE(adsp_rombank_w) - AM_RANGE(0x0000, 0x1fff) AM_ROMBANK(1) - AM_RANGE(0x2000, 0x2000) AM_READWRITE(sound_data_r, sound_status_w) - AM_RANGE(0x3800, 0x39ff) AM_RAM AM_BASE(&adsp_fastram_base) /* 512 words internal RAM */ - AM_RANGE(0x3fe0, 0x3fff) AM_WRITE(adsp_control_w) AM_BASE(&adsp_control_regs) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( speedup ) - PORT_START /* DIPs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON5 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LSHIFT) // view - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_LALT) // brake - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_SPACE) PORT_TOGGLE // gear (low=1 high=2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) // start - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // verified - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // checked after reading analog from port 1 - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) // checked after reading analog from port 2 - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) // checked after reading analog from port 3 - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 0) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 1) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 2) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 3) - - PORT_START - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // verified - PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_LOW ) // verified - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("ANALOG0") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) -INPUT_PORTS_END - - -INPUT_PORTS_START( surfplnt ) - PORT_START /* DIPs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_VOLUME_UP ) // low two bits read, compared against 3 - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) // low four bits read, compared against f - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // checked - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) // start - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // coin - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x0800, IP_ACTIVE_LOW ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 0) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 1) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 2) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 3) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("ANALOG0") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) -INPUT_PORTS_END - - -INPUT_PORTS_START( radikalb ) - PORT_START /* DIPs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // handle up - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 ) // view - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // brake - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) // accel - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) // start - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // coin - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x0800, IP_ACTIVE_LOW ) - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 0) - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 1) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 2) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM(analog_bit_r, 3) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("ANALOG0") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) -INPUT_PORTS_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static struct tms32031_config tms_config = -{ - 0x1000, - 0, - 0, - iack_w -}; - - -MACHINE_DRIVER_START( gaelco3d ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 15000000) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(vblank_gen, 1) - - MDRV_CPU_ADD_TAG("tms", TMS32031, 60000000) - MDRV_CPU_PROGRAM_MAP(tms_map,0) - MDRV_CPU_CONFIG(tms_config) - - MDRV_CPU_ADD_TAG("adsp", ADSP2115, 16000000) - MDRV_CPU_PROGRAM_MAP(adsp_program_map,0) - MDRV_CPU_DATA_MAP(adsp_data_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(gaelco3d) - MDRV_NVRAM_HANDLER(gaelco3d) - - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(576 / GAELCO3D_RESOLUTION_DIVIDE, 432 / GAELCO3D_RESOLUTION_DIVIDE) - MDRV_SCREEN_VISIBLE_AREA(0, 576 / GAELCO3D_RESOLUTION_DIVIDE - 1, 0, 432 / GAELCO3D_RESOLUTION_DIVIDE - 1) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(gaelco3d) - MDRV_VIDEO_UPDATE(gaelco3d) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DMADAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: front mono */ - - MDRV_SOUND_ADD(DMADAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: left rear */ - - MDRV_SOUND_ADD(DMADAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: right rear */ - - MDRV_SOUND_ADD(DMADAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) /* speedup: seat speaker */ -MACHINE_DRIVER_END - - -MACHINE_DRIVER_START( gaelco3d2 ) - MDRV_IMPORT_FROM(gaelco3d) - - /* basic machine hardware */ - MDRV_CPU_REPLACE("main", M68EC020, 25000000) - MDRV_CPU_PROGRAM_MAP(main020_map,0) - - MDRV_CPU_REPLACE("tms", TMS32031, 50000000) - - MDRV_MACHINE_RESET(gaelco3d2) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( speedup ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "sup10.bin", 0x000000, 0x80000, CRC(07e70bae) SHA1(17013d859ec075e12518b094040a056d850b3271) ) - ROM_LOAD16_BYTE( "sup15.bin", 0x000001, 0x80000, CRC(7947c28d) SHA1(46efb56d0f7fe2e92d0d04dcd2f130aef3be436d) ) - - ROM_REGION16_LE( 0x400000, REGION_USER1, 0 ) /* ADSP-2115 code & data */ - ROM_LOAD( "sup25.bin", 0x0000000, 0x400000, CRC(284c7cd1) SHA1(58fbe73195aac9808a347c543423593e17ad3a10) ) - - ROM_REGION32_LE( 0x800000, REGION_USER2, 0 ) - ROM_LOAD32_WORD( "sup32.bin", 0x000000, 0x200000, CRC(aed151de) SHA1(a139d4451d3758aa70621a25289d64c98c26d5c0) ) - ROM_LOAD32_WORD( "sup33.bin", 0x000002, 0x200000, CRC(9be6ab7d) SHA1(8bb07f2a096d1f8989a5a409f87b35b7d771de88) ) - - ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sup12.bin", 0x0000000, 0x400000, CRC(311f3247) SHA1(95014ea177011521a01df85fb511e5e6673dbdcb) ) - ROM_LOAD( "sup14.bin", 0x0400000, 0x400000, CRC(3ad3c089) SHA1(1bd577679ed436251995a100aece2c26c0214fd8) ) - ROM_LOAD( "sup11.bin", 0x0800000, 0x400000, CRC(b993e65a) SHA1(b95bd4c1eac7fba1d2429250446b58f741350bb3) ) - ROM_LOAD( "sup13.bin", 0x0c00000, 0x400000, CRC(ad00023c) SHA1(9d7cce280fff38d7e0dac21e7a1774809d9758bd) ) - - ROM_REGION( 0x0080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic35.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) - ROM_LOAD( "ic34.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) - /* these 2 are copies of the previous 2 */ -// ROM_LOAD( "ic43.bin", 0x0000000, 0x020000, CRC(34737d1d) SHA1(e9109a88e211aa49851e72a6fa3417f1cad1cb8b) ) -// ROM_LOAD( "ic42.bin", 0x0020000, 0x020000, CRC(e89e829b) SHA1(50c99bd9667d78a61252eaad5281a2e7f57be85a) ) -ROM_END - - -ROM_START( surfplnt ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "surfplnt.u5", 0x000000, 0x80000, CRC(c96e0a18) SHA1(b313d02d1d1bff8717b3d798e6ae681baefc1061) ) - ROM_LOAD16_BYTE( "surfplnt.u11", 0x000001, 0x80000, CRC(99211d2d) SHA1(dee5b157489ce9c6988c8eec92fa91fff60d521c) ) - ROM_LOAD16_BYTE( "surfplnt.u8", 0x100000, 0x80000, CRC(aef9e1d0) SHA1(15258e62fbf61e21e7d77aa7a81fdbf842fd4560) ) - ROM_LOAD16_BYTE( "surfplnt.u13", 0x100001, 0x80000, CRC(d9754369) SHA1(0d82569cb925402a9f4634e52f15435112ec4878) ) - - ROM_REGION16_LE( 0x400000, REGION_USER1, 0 ) /* ADSP-2115 code & data */ - ROM_LOAD( "pls.18", 0x0000000, 0x400000, CRC(a1b64695) SHA1(7487cd51305e30a5b55aada0bae9161fcb3fcd19) ) - - ROM_REGION32_LE( 0x800000, REGION_USER2, 0 ) - ROM_LOAD32_WORD( "pls.40", 0x000000, 0x400000, CRC(26877ad3) SHA1(2e0c15b0e060e0b3d5b5cdaf1e22b9ec8e1abc9a) ) - ROM_LOAD32_WORD( "pls.37", 0x000002, 0x400000, CRC(75893062) SHA1(81f10243336a309f8cc8532ee9a130ecc35bbcd6) ) - - ROM_REGION( 0x1000000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pls.7", 0x0000000, 0x400000, CRC(04bd1605) SHA1(4871758e57af5132c30137cd6c46f1a3a567b640) ) - ROM_LOAD( "pls.9", 0x0400000, 0x400000, CRC(f4400160) SHA1(206557cd4c73b6b3a04bd35b48de736c7546c5e1) ) - ROM_LOAD( "pls.12", 0x0800000, 0x400000, CRC(edc2e826) SHA1(48d428f928a9805a62bbeaecffcac21aaa76ce77) ) - ROM_LOAD( "pls.15", 0x0c00000, 0x400000, CRC(b0f6b8da) SHA1(7404ec7455adf145919a28907443994f6a5706a1) ) - - ROM_REGION( 0x0080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "surfplnt.u19", 0x0000000, 0x020000, CRC(691bd7a7) SHA1(2ff404b3974a64097372ed15fb5fbbe52c503265) ) - ROM_LOAD( "surfplnt.u20", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) - ROM_LOAD( "surfplnt.u21", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) - ROM_LOAD( "surfplnt.u22", 0x0060000, 0x020000, CRC(ccf88f7e) SHA1(c6a3bb9d6cf14a93a36ed20a47b7c068ccd630aa) ) - /* these 4 are copies of the previous 4 */ -// ROM_LOAD( "surfplnt.u27", 0x0000000, 0x020000, CRC(691bd7a7) SHA1(2ff404b3974a64097372ed15fb5fbbe52c503265) ) -// ROM_LOAD( "surfplnt.u28", 0x0020000, 0x020000, CRC(fb293318) SHA1(d255fe3db1b91ec7cc744b0158e70503bca5ceab) ) -// ROM_LOAD( "surfplnt.u29", 0x0040000, 0x020000, CRC(b80611fb) SHA1(70d6767ddfb04e94cf2796e3f7090f89fd36fe8c) ) -// ROM_LOAD( "surfplnt.u30", 0x0060000, 0x020000, CRC(ccf88f7e) SHA1(c6a3bb9d6cf14a93a36ed20a47b7c068ccd630aa) ) -ROM_END - - -ROM_START( radikalb ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68020 code */ - ROM_LOAD32_BYTE( "rab.6", 0x000000, 0x80000, CRC(ccac98c5) SHA1(43a30caf9880f48aba79676f9e746fdc6258139d) ) - ROM_LOAD32_BYTE( "rab.12", 0x000001, 0x80000, CRC(26199506) SHA1(1b7b44895aa296eab8061ae85cbb5b0d30119dc7) ) - ROM_LOAD32_BYTE( "rab.14", 0x000002, 0x80000, CRC(4a0ac8cb) SHA1(4883e5eddb833dcd39376be435aa8e8e2ec47ab5) ) - ROM_LOAD32_BYTE( "rab.19", 0x000003, 0x80000, CRC(2631bd61) SHA1(57331ad49e7284b82073f696049de109b7683b03) ) - - ROM_REGION16_LE( 0x400000, REGION_USER1, 0 ) /* ADSP-2115 code & data */ - ROM_LOAD( "rab.23", 0x0000000, 0x400000, CRC(dcf52520) SHA1(ab54421c182436660d2a56a334c1aa335424644a) ) - - ROM_REGION32_LE( 0x800000, REGION_USER2, 0 ) - ROM_LOAD32_WORD( "rab.48", 0x000000, 0x400000, CRC(9c56a06a) SHA1(54f12d8b55fa14446c47e31684c92074c4157fe1) ) - ROM_LOAD32_WORD( "rab.45", 0x000002, 0x400000, CRC(7e698584) SHA1(a9423835a126396902c499e9f7df3b68c2ab28a8) ) - - ROM_REGION( 0x2000000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rab.8", 0x0000000, 0x400000, CRC(4fbd4737) SHA1(594438d3edbe00682290986cc631615d7bef67f3) ) - ROM_LOAD( "rab.10", 0x0800000, 0x400000, CRC(870b0ce4) SHA1(75910dca87d2eb3a6b4a28f6e9c63a6b6700de84) ) - ROM_LOAD( "rab.15", 0x1000000, 0x400000, CRC(edb9d409) SHA1(1f8df507e990eee197f2779b45bd8f143d1bd439) ) - ROM_LOAD( "rab.17", 0x1800000, 0x400000, CRC(e120236b) SHA1(37d7996530eda3df0c19bca1cbf26e5ba58b0977) ) - - ROM_LOAD( "rab.9", 0x0400000, 0x400000, CRC(9e3e038d) SHA1(4a5f0b3c54c508d7f310f270dbd11bffb2bcfa89) ) - ROM_LOAD( "rab.11", 0x0c00000, 0x400000, CRC(75672271) SHA1(ebbdf089b4a4d5ead7d62555bb5c9a921aaa1c22) ) - ROM_LOAD( "rab.16", 0x1400000, 0x400000, CRC(9d595e46) SHA1(b985332974e1fb0b9d20d521da0d7deceea93a8a) ) - ROM_LOAD( "rab.18", 0x1c00000, 0x400000, CRC(3084bc49) SHA1(9da43482293eeb08ceae67455b2fcd97b6ef5109) ) - - ROM_REGION( 0x0080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rab.24", 0x0000000, 0x020000, CRC(2984bc1d) SHA1(1f62bdaa86feeff96640e325f8241b9c5f383a44) ) - ROM_LOAD( "rab.25", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) - ROM_LOAD( "rab.26", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) - ROM_LOAD( "rab.27", 0x0060000, 0x020000, CRC(bbcf6977) SHA1(0282c8ba79c35ed1240711d5812bfb590d151738) ) - /* these 4 are copies of the previous 4 */ -// ROM_LOAD( "rab.32", 0x0000000, 0x020000, CRC(2984bc1d) SHA1(1f62bdaa86feeff96640e325f8241b9c5f383a44) ) -// ROM_LOAD( "rab.33", 0x0020000, 0x020000, CRC(777758e3) SHA1(bd334b1ba46189ac8509eee3a4ab295c121400fd) ) -// ROM_LOAD( "rab.34", 0x0040000, 0x020000, CRC(bd9c1b54) SHA1(c9ef679cf7eca9ed315ea62a7ada452bc85f7a6a) ) -// ROM_LOAD( "rab.35", 0x0060000, 0x020000, CRC(bbcf6977) SHA1(0282c8ba79c35ed1240711d5812bfb590d151738) ) -ROM_END - - - -/************************************* - * - * Driver init - * - *************************************/ - -static DRIVER_INIT( gaelco3d ) -{ - UINT8 *src, *dst; - int x, y; - - /* allocate memory */ - gaelco3d_texture_size = memory_region_length(REGION_GFX1); - gaelco3d_texmask_size = memory_region_length(REGION_GFX2) * 8; - gaelco3d_texture = auto_malloc(gaelco3d_texture_size); - gaelco3d_texmask = auto_malloc(gaelco3d_texmask_size); - - /* first expand the pixel data */ - src = memory_region(REGION_GFX1); - dst = gaelco3d_texture; - for (y = 0; y < gaelco3d_texture_size/4096; y += 2) - for (x = 0; x < 4096; x += 2) - { - dst[(y + 0) * 4096 + (x + 1)] = src[0*gaelco3d_texture_size/4 + (y/2) * 2048 + (x/2)]; - dst[(y + 1) * 4096 + (x + 1)] = src[1*gaelco3d_texture_size/4 + (y/2) * 2048 + (x/2)]; - dst[(y + 0) * 4096 + (x + 0)] = src[2*gaelco3d_texture_size/4 + (y/2) * 2048 + (x/2)]; - dst[(y + 1) * 4096 + (x + 0)] = src[3*gaelco3d_texture_size/4 + (y/2) * 2048 + (x/2)]; - } - - /* then expand the mask data */ - src = memory_region(REGION_GFX2); - dst = gaelco3d_texmask; - for (y = 0; y < gaelco3d_texmask_size/4096; y++) - for (x = 0; x < 4096; x++) - dst[y * 4096 + x] = (src[(x / 1024) * (gaelco3d_texmask_size/8/4) + (y * 1024 + x % 1024) / 8] >> (x % 8)) & 1; -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1996, speedup, 0, gaelco3d, speedup, gaelco3d, ROT0, "Gaelco", "Speed Up", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, surfplnt, 0, gaelco3d, surfplnt, gaelco3d, ROT0, "Gaelco", "Surf Planet", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, radikalb, 0, gaelco3d2, radikalb, gaelco3d, ROT0, "Gaelco", "Radikal Bikers", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/gaiden.c b/src/drivers/gaiden.c deleted file mode 100644 index 072d89c9c..000000000 --- a/src/drivers/gaiden.c +++ /dev/null @@ -1,1541 +0,0 @@ -/*************************************************************************** - -Ninja Gaiden memory map (preliminary) - -000000-03ffff ROM -060000-063fff RAM -070000-070fff Video RAM (text layer) -072000-075fff VRAM (backgrounds) -076000-077fff Sprite RAM -078000-079fff Palette RAM - -07a100-07a1ff Unknown - -memory mapped ports: - -read: -07a001 IN0 -07a002 IN2 -07a003 IN1 -07a004 DWSB -07a005 DSWA -see the input_ports definition below for details on the input bits - -write: -07a104-07a105 text layer Y scroll -07a10c-07a10d text layer X scroll -07a204-07a205 front layer Y scroll -07a20c-07a20d front layer X scroll -07a304-07a305 back layer Y scroll -07a30c-07a30d back layer X scroll - -Notes: -- The sprite Y size control is slightly different from gaiden/wildfang to - raiga. In the first two, size X and Y change together, while in the latter - they are changed independently. This is handled with a variable set in - DRIVER_INIT, but it might also be a selectable hardware feature, since - the two extra bits used by raiga are perfectly merged with the rest. - Raiga also uses more sprites than the others, but there's no way to tell - if hardware is more powerful or the extra sprites were just not needed - in the earlier games. - -- The hardware supports blending sprites and background. - There are 3 copies of the palette; - - one for pixels that aren't blended - - one for pixels that are behind the object that will be blended - - one for the object that will be blended - Blending is performed by switching to the appropriate palettes for the - pixels behind the blended object and the object itself, and then adding - the RGB values. - -todo: - -- make sure all of the protection accesses in raiga are handled correctly. -- work out how lower priority sprites are affected by blended sprites. - -***************************************************************************/ -/*************************************************************************** - -Strato Fighter (US version) -Tecmo, 1991 - - -PCB Layout ----------- - -Top Board ---------- -0210-A -MG-Y.VO ------------------------------------------------ -| MN50005XTA 4MHz DSW2 DSW1 | -| 6264 6264 8049 | -| IOP8 1.3S 2.4S | -|24MHz | -| | -|18.432MHz J| -| | -| 68000P10 A| -| | -| 6116 M| -| 6116 | -| 6116 M| -| | -| A| -| | -| 6264 YM2203 YM3014 | -| Z80 3.4B | -| 4MHz 6295 4.4A YM2203 YM3014 | ------------------------------------------------ - -Bottom Board ------------- -0210-B -MG-Y.VO ------------------------------------------------ -| TECMO-5 | -| ----------- | -| | TECMO-06| | -| ROM.M1 ROM.M3 | YM6048 | 6264 | -| ----------- 6264 | -| 4164 4164 4164 4164 | -| 4164 4164 4164 4164 | -| 4164 4164 4164 4164 | -| | -| | -| TECMO-3 TECMO-3 TECMO-3 | -| TECMO-4 TECMO-4 TECMO-4 | -| | -| | -| | -| 6264 6264 6116 6116 6264 | -| ROM.1B ROM.4B 6116 | -| ROM.7A | ------------------------------------------------ - -Notes: - 68k clock: 9.216 MHz (18.432 / 2) - Z80 clock: 4.000 MHz - YM2203 clock: 4.000 MHz - MSM6295 clock: 1.000 MHz (samplerate 7575Hz, i.e. / 132) - - IOP8 manufactured by Ricoh. Full part number: RICOH EPLIOP8BP (PAL or PIC?) - -***************************************************************************/ - - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "sound/2203intf.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -extern UINT16 *gaiden_videoram,*gaiden_videoram2,*gaiden_videoram3; -extern int gaiden_sprite_sizey; - -extern int raiga_alpha; - -VIDEO_START( gaiden ); -VIDEO_START( raiga ); -VIDEO_START( drgnbowl ); - -VIDEO_UPDATE( gaiden ); -VIDEO_UPDATE( raiga ); -VIDEO_UPDATE( drgnbowl ); - -WRITE16_HANDLER( gaiden_videoram_w ); -WRITE16_HANDLER( gaiden_videoram2_w ); -READ16_HANDLER( gaiden_videoram2_r ); -WRITE16_HANDLER( gaiden_videoram3_w ); -READ16_HANDLER( gaiden_videoram3_r ); - -WRITE16_HANDLER( gaiden_txscrollx_w ); -WRITE16_HANDLER( gaiden_txscrolly_w ); -WRITE16_HANDLER( gaiden_fgscrollx_w ); -WRITE16_HANDLER( gaiden_fgscrolly_w ); -WRITE16_HANDLER( gaiden_bgscrollx_w ); -WRITE16_HANDLER( gaiden_bgscrolly_w ); -WRITE16_HANDLER( gaiden_flip_w ); - - - -static WRITE16_HANDLER( gaiden_sound_command_w ) -{ - if (ACCESSING_LSB) soundlatch_w(0,data & 0xff); /* Ninja Gaiden */ - if (ACCESSING_MSB) soundlatch_w(0,data >> 8); /* Tecmo Knight */ - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); -} - -static WRITE16_HANDLER( drgnbowl_sound_command_w ) -{ - if (ACCESSING_MSB) - { - soundlatch_w(0,data >> 8); - cpunum_set_input_line(1,0,PULSE_LINE); - } -} - - - -/* Wild Fang / Tecmo Knight has a simple protection. It writes codes to 0x07a804, */ -/* and reads the answer from 0x07a007. The returned values contain the address of */ -/* a function to jump to. */ - -static int prot; - -static WRITE16_HANDLER( wildfang_protection_w ) -{ - if (ACCESSING_MSB) - { - static int jumpcode; - static int jumppoints[] = - { - 0x0c0c,0x0cac,0x0d42,0x0da2,0x0eea,0x112e,0x1300,0x13fa, - 0x159a,0x1630,0x109a,0x1700,0x1750,0x1806,0x18d6,0x1a44, - 0x1b52 - }; - - data >>= 8; - -// logerror("PC %06x: prot = %02x\n",activecpu_get_pc(),data); - - switch (data & 0xf0) - { - case 0x00: /* init */ - prot = 0x00; - break; - case 0x10: /* high 4 bits of jump code */ - jumpcode = (data & 0x0f) << 4; - prot = 0x10; - break; - case 0x20: /* low 4 bits of jump code */ - jumpcode |= data & 0x0f; - if (jumpcode >= sizeof(jumppoints)/sizeof(jumppoints[0])) - { - logerror("unknown jumpcode %02x\n",jumpcode); - jumpcode = 0; - } - prot = 0x20; - break; - case 0x30: /* ask for bits 12-15 of function address */ - prot = 0x40 | ((jumppoints[jumpcode] >> 12) & 0x0f); - break; - case 0x40: /* ask for bits 8-11 of function address */ - prot = 0x50 | ((jumppoints[jumpcode] >> 8) & 0x0f); - break; - case 0x50: /* ask for bits 4-7 of function address */ - prot = 0x60 | ((jumppoints[jumpcode] >> 4) & 0x0f); - break; - case 0x60: /* ask for bits 0-3 of function address */ - prot = 0x70 | ((jumppoints[jumpcode] >> 0) & 0x0f); - break; - } - } -} - -static READ16_HANDLER( wildfang_protection_r ) -{ -// logerror("PC %06x: read prot %02x\n",activecpu_get_pc(),prot); - return prot; -} - - - -/* - -Raiga Protection -MCU read routine is at D9CE - -startup codes - -it reads 00/36/0e/11/33/34/2d, fetching some code copied to RAM, -and a value which is used as an offset to point to the code in RAM. -19/12/31/28 are read repeatedly, from the interrupt, and the returned -value chanes, some kind of mode set command? - -level codes - -00 | score screen after level 1 (5457) -01 | score screen after level 2 (494e) -02 | score screen after level 3 (5f4b) -03 | score screen after level 4 (4149) -04 | score screen after level 5 (5345) -05 | score screen after level 6 + first loop end sequence (525f) -06 | score screen after second loop level 1 (4d49) -07 | score screen after second loop level 2 (5941) -08 | score screen after second loop level 3 (5241) -09 | score screen after second loop level 4 (5349) -0a | score screen after second loop level 5 (4d4f) -0b | score screen after second loop level 6 + final end sequence (4a49) - - -other game codes - -13 | Game over (594f) -15 | at the start of second level attract mode (4e75) -1c | start of level 4 attract mode (4e75) -1e | after continue .. (5349) -23 | after entering hi-score (4e75) -25 | after attract level 1 (4849) -2b | after japan / wdud screen, to get back to 'tecmo presents' (524f) - -also bonus life + when the boss appears but I think they use the -same commands as some of the above - -*/ - -/* these are used during startup */ -static int jumppoints_00[0x100] = -{ - 0x6669, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1,0x4a46, -1, - -1,0x6704, -2, -1, -1, -1, -1, -1, - -1, -2, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -2, -1, -1, -1, -1,0x4e75, -1, -1, - -1, -2, -1,0x4e71,0x60fc, -1,0x7288, -1, - -1, -1, -1, -1, -1, -1, -1, -1 -}; - -/* these are used the rest of the time */ -static int jumppoints_other[0x100] = -{ - 0x5457,0x494e,0x5f4b,0x4149,0x5345,0x525f,0x4d49,0x5941, - 0x5241,0x5349,0x4d4f,0x4a49, -1, -1, -1, -1, - -1, -1, -2,0x594f, -1,0x4e75, -1, -1, - -1, -2, -1, -1,0x4e75, -1,0x5349, -1, - -1, -1, -1,0x4e75, -1,0x4849, -1, -1, - -2, -1, -1,0x524f, -1, -1, -1, -1, - -1, -2, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 -}; - -static int *raiga_jumppoints = jumppoints_00; - -static MACHINE_RESET ( raiga ) -{ - raiga_jumppoints = jumppoints_00; -} - -static WRITE16_HANDLER( raiga_protection_w ) -{ - if (ACCESSING_MSB) - { - static int jumpcode; - - data >>= 8; - -// logerror("PC %06x: prot = %02x\n",activecpu_get_pc(),data); - - switch (data & 0xf0) - { - case 0x00: /* init */ - prot = 0x00; - break; - case 0x10: /* high 4 bits of jump code */ - jumpcode = (data & 0x0f) << 4; - prot = 0x10; - break; - case 0x20: /* low 4 bits of jump code */ - jumpcode |= data & 0x0f; - logerror("requested protection jumpcode %02x\n",jumpcode); -// jumpcode = 0; - if (raiga_jumppoints[jumpcode] == -2) - { - raiga_jumppoints = jumppoints_other; - } - - if (raiga_jumppoints[jumpcode] == -1) - { - logerror("unknown jumpcode %02x\n",jumpcode); - popmessage("unknown jumpcode %02x",jumpcode); - jumpcode = 0; - } - prot = 0x20; - break; - case 0x30: /* ask for bits 12-15 of function address */ - prot = 0x40 | ((raiga_jumppoints[jumpcode] >> 12) & 0x0f); - break; - case 0x40: /* ask for bits 8-11 of function address */ - prot = 0x50 | ((raiga_jumppoints[jumpcode] >> 8) & 0x0f); - break; - case 0x50: /* ask for bits 4-7 of function address */ - prot = 0x60 | ((raiga_jumppoints[jumpcode] >> 4) & 0x0f); - break; - case 0x60: /* ask for bits 0-3 of function address */ - prot = 0x70 | ((raiga_jumppoints[jumpcode] >> 0) & 0x0f); - break; - } - } -} - -static READ16_HANDLER( raiga_protection_r ) -{ -// logerror("PC %06x: read prot %02x\n",activecpu_get_pc(),prot); - return prot; -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x060000, 0x063fff) AM_READ(MRA16_RAM) - AM_RANGE(0x070000, 0x070fff) AM_READ(MRA16_RAM) - AM_RANGE(0x072000, 0x073fff) AM_READ(gaiden_videoram2_r) - AM_RANGE(0x074000, 0x075fff) AM_READ(gaiden_videoram3_r) - AM_RANGE(0x076000, 0x077fff) AM_READ(MRA16_RAM) - AM_RANGE(0x078000, 0x0787ff) AM_READ(MRA16_RAM) - AM_RANGE(0x078800, 0x079fff) AM_READ(MRA16_NOP) /* extra portion of palette RAM, not really used */ - AM_RANGE(0x07a000, 0x07a001) AM_READ(input_port_0_word_r) - AM_RANGE(0x07a002, 0x07a003) AM_READ(input_port_1_word_r) - AM_RANGE(0x07a004, 0x07a005) AM_READ(input_port_2_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x060000, 0x063fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x070000, 0x070fff) AM_WRITE(gaiden_videoram_w) AM_BASE(&gaiden_videoram) - AM_RANGE(0x072000, 0x073fff) AM_WRITE(gaiden_videoram2_w) AM_BASE(&gaiden_videoram2) - AM_RANGE(0x074000, 0x075fff) AM_WRITE(gaiden_videoram3_w) AM_BASE(&gaiden_videoram3) - AM_RANGE(0x076000, 0x077fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x078000, 0x079fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x07a104, 0x07a105) AM_WRITE(gaiden_txscrolly_w) - AM_RANGE(0x07a10c, 0x07a10d) AM_WRITE(gaiden_txscrollx_w) - AM_RANGE(0x07a204, 0x07a205) AM_WRITE(gaiden_fgscrolly_w) - AM_RANGE(0x07a20c, 0x07a20d) AM_WRITE(gaiden_fgscrollx_w) - AM_RANGE(0x07a304, 0x07a305) AM_WRITE(gaiden_bgscrolly_w) - AM_RANGE(0x07a30c, 0x07a30d) AM_WRITE(gaiden_bgscrollx_w) - AM_RANGE(0x07a800, 0x07a801) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x07a802, 0x07a803) AM_WRITE(gaiden_sound_command_w) - AM_RANGE(0x07a806, 0x07a807) AM_WRITE(MWA16_NOP) - AM_RANGE(0x07a808, 0x07a809) AM_WRITE(gaiden_flip_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( drgnbowl_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x060000, 0x063fff) AM_RAM - AM_RANGE(0x070000, 0x070fff) AM_READWRITE(MRA16_RAM, gaiden_videoram_w) AM_BASE(&gaiden_videoram) - AM_RANGE(0x072000, 0x073fff) AM_READWRITE(MRA16_RAM, gaiden_videoram2_w) AM_BASE(&gaiden_videoram2) - AM_RANGE(0x074000, 0x075fff) AM_READWRITE(MRA16_RAM, gaiden_videoram3_w) AM_BASE(&gaiden_videoram3) - AM_RANGE(0x076000, 0x077fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x078000, 0x079fff) AM_READWRITE(MRA16_RAM, paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x07a000, 0x07a001) AM_READ(input_port_0_word_r) - AM_RANGE(0x07a002, 0x07a003) AM_READ(input_port_1_word_r) - AM_RANGE(0x07a004, 0x07a005) AM_READ(input_port_2_word_r) - AM_RANGE(0x07a00e, 0x07a00f) AM_WRITE(drgnbowl_sound_command_w) - AM_RANGE(0x07e000, 0x07e001) AM_WRITENOP - AM_RANGE(0x07f000, 0x07f001) AM_WRITE(gaiden_bgscrolly_w) - AM_RANGE(0x07f002, 0x07f003) AM_WRITE(gaiden_bgscrollx_w) - AM_RANGE(0x07f004, 0x07f005) AM_WRITE(gaiden_fgscrolly_w) - AM_RANGE(0x07f006, 0x07f007) AM_WRITE(gaiden_fgscrollx_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_ROM) /* raiga only */ - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xf800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xfc00, 0xfc00) AM_READ(MRA8_NOP) /* ?? */ - AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_ROM) /* raiga only */ - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf800, 0xf800) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xf810, 0xf810) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0xf811, 0xf811) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xf820, 0xf820) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xf821, 0xf821) AM_WRITE(YM2203_write_port_1_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(MWA8_NOP) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( drgnbowl_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_ROM - AM_RANGE(0xf800, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( drgnbowl_sound_port_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) - AM_RANGE(0x80, 0x80) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) -ADDRESS_MAP_END - - -INPUT_PORTS_START( shadoww ) - PORT_START /* System Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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 /* Players Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Dip Switches order fits the first screen */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0xc000, "2" ) - PORT_DIPSETTING( 0x4000, "3" ) - PORT_DIPSETTING( 0x8000, "4" ) - PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x2000, "5" ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( wildfang ) - PORT_START /* System Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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 /* Players Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Dip Switches order fits the first screen */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x8000, "1" ) - PORT_DIPSETTING( 0xc000, "2" ) - PORT_DIPSETTING( 0x4000, "3" ) -/* PORT_DIPSETTING( 0x0000, "2" ) */ - /* When bit 0 is On, use bits 4 and 5 for difficulty */ - PORT_DIPNAME( 0x3000, 0x3000, "Difficulty (Tecmo Knight)" ) - PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - /* When bit 0 is 0ff, use bits 2 and 3 for difficulty */ - PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Wild Fang)" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, "Title" ) // also affects Difficulty Table (see above) - PORT_DIPSETTING( 0x0100, "Wild Fang" ) - PORT_DIPSETTING( 0x0000, "Tecmo Knight" ) -INPUT_PORTS_END - -INPUT_PORTS_START( tknight ) - PORT_START /* System Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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 /* Players Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Dip Switches order fits the first screen */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x8000, "1" ) - PORT_DIPSETTING( 0xc000, "2" ) - PORT_DIPSETTING( 0x4000, "3" ) -/* PORT_DIPSETTING( 0x0000, "2" ) */ - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( raiga ) - PORT_START /* System Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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 /* Players Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Dip Switches order fits the first screen */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0070, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0050, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0090, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x000a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0009, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x3000, 0x1000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0c00, "3" ) - PORT_DIPSETTING( 0x0400, "4" ) - PORT_DIPSETTING( 0x0800, "5" ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0300, "50k 200k" ) - PORT_DIPSETTING( 0x0100, "100k 300k" ) - PORT_DIPSETTING( 0x0200, "50k only" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( drgnbowl ) - PORT_START /* System Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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 /* Players Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Dip Switches order fits the first screen */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0xc000, "2" ) - PORT_DIPSETTING( 0x4000, "3" ) - PORT_DIPSETTING( 0x8000, "4" ) - PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x2000, "5" ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout tilelayout = -{ - 8,8, /* tile size */ - RGN_FRAC(1,1), /* number of tiles */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* offset to next tile */ -}; - -static const gfx_layout tile2layout = -{ - 16,16, /* tile size */ - RGN_FRAC(1,1), /* number of tiles */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 32*8+0*4, 32*8+1*4, 32*8+2*4, 32*8+3*4, - 32*8+4*4, 32*8+5*4, 32*8+6*4, 32*8+7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32}, - 128*8 /* offset to next tile */ -}; - -static const gfx_layout spritelayout = -{ - 8,8, /* sprites size */ - RGN_FRAC(1,2), /* number of sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the bitplanes are packed in one nibble */ - { 0,4,RGN_FRAC(1,2),4+RGN_FRAC(1,2),8,12,8+RGN_FRAC(1,2),12+RGN_FRAC(1,2) }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* offset to next sprite */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tilelayout, 256, 4096 - 256 }, /* tiles 8x8 */ - { REGION_GFX2, 0, &tile2layout, 768, 4096 - 768 }, /* tiles 16x16 */ - { REGION_GFX3, 0, &tile2layout, 512, 4096 - 512 }, /* tiles 16x16 */ - { REGION_GFX4, 0, &spritelayout, 0, 4096 - 0 }, /* sprites 8x8 */ - { -1 } /* end of array */ -}; - -static const gfx_layout drgnbowl_tile2layout = -{ - 16,16, - RGN_FRAC(1,8), - 4, - { RGN_FRAC(3,4),RGN_FRAC(2,4),RGN_FRAC(1,4),RGN_FRAC(0,4) }, - { STEP8(0,1), STEP8(8*8*2,1) }, - { STEP16(0,8) }, - 32*8 -}; - -static const gfx_layout drgnbowl_spritelayout = -{ - 16,16, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(0,4),RGN_FRAC(1,4),RGN_FRAC(2,4),RGN_FRAC(3,4) }, - { STEP8(0,1), STEP8(8*8*2,1) }, - { STEP16(0,8) }, - 32*8 -}; - -static const gfx_decode drgnbowl_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tilelayout, 0, 16 }, /* tiles 8x8 */ - { REGION_GFX2, 0x00000, &drgnbowl_tile2layout, 0x300, 16 }, /* tiles 16x16 */ - { REGION_GFX2, 0x20000, &drgnbowl_tile2layout, 0x200, 16 }, /* tiles 16x16 */ - { REGION_GFX3, 0, &drgnbowl_spritelayout, 0x100, 16 }, /* sprites 16x16 */ - { -1 } /* end of array */ -}; - -/* handler called by the 2203 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_interface = -{ - 0,0,0,0,irqhandler -}; - -static MACHINE_DRIVER_START( shadoww ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 18432000/2) /* 9.216 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - /* IRQs are triggered by the YM2203 */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(raiga) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(gaiden) - MDRV_VIDEO_UPDATE(gaiden) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.60) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.60) - - MDRV_SOUND_ADD(OKIM6295, 1000000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( raiga ) - MDRV_IMPORT_FROM(shadoww) - - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - - MDRV_VIDEO_START(raiga) - MDRV_VIDEO_UPDATE(raiga) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( drgnbowl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 20000000/2) /* 10 MHz */ - MDRV_CPU_PROGRAM_MAP(drgnbowl_map,0) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 12000000/2) /* 6 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(drgnbowl_sound_map,0) - MDRV_CPU_IO_MAP(drgnbowl_sound_port_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(drgnbowl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(drgnbowl) - MDRV_VIDEO_UPDATE(drgnbowl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD(OKIM6295, 1000000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( shadoww ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "shadowa_1.3s", 0x00000, 0x20000, CRC(8290d567) SHA1(1e2f80c1548c853ec1127e79438f62eda6592a07) ) - ROM_LOAD16_BYTE( "shadowa_2.4s", 0x00001, 0x20000, CRC(f3f08921) SHA1(df6bb7302714e0eab12cbd0a7f2a4ca751a600e1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "gaiden_3.4b", 0x0000, 0x10000, CRC(75fd3e6a) SHA1(3333e84ed4983caa133e60a8e8895fa897ab4949) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD( "8.3n", 0x020000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD( "10.3r", 0x040000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD( "shadoww_12a.xx", 0x060000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD( "shadoww_12b.xx", 0x070000, 0x10000, CRC(a4a950a2) SHA1(9766b5e88edd16554e59179a37cca49d29f83367) ) /* sprites D1 */ - - ROM_LOAD( "7.1m", 0x080000, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD( "9.1n", 0x0a0000, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD( "11.1r", 0x0c0000, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD( "shadoww_13a.xx", 0x0e0000, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD( "shadoww_13b.xx", 0x0f0000, 0x10000, CRC(b8df8a34) SHA1(6810f7961052a983b8c78b42d550038051012c6d) ) /* sprites D2 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ -ROM_END - -ROM_START( shadowwa ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "shadoww_1.3s", 0x00000, 0x20000, CRC(fefba387) SHA1(20ce28da5877009494c3f3f67488bbe805d91340) ) - ROM_LOAD16_BYTE( "shadoww_2.4s", 0x00001, 0x20000, CRC(9b9d6b18) SHA1(75068611fb1de61120be8bf840f61d90c0dc86ca) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "gaiden_3.4b", 0x0000, 0x10000, CRC(75fd3e6a) SHA1(3333e84ed4983caa133e60a8e8895fa897ab4949) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD( "8.3n", 0x020000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD( "10.3r", 0x040000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD( "shadoww_12a.xx", 0x060000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD( "shadoww_12b.xx", 0x070000, 0x10000, CRC(a4a950a2) SHA1(9766b5e88edd16554e59179a37cca49d29f83367) ) /* sprites D1 */ - - ROM_LOAD( "7.1m", 0x080000, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD( "9.1n", 0x0a0000, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD( "11.1r", 0x0c0000, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD( "shadoww_13a.xx", 0x0e0000, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD( "shadoww_13b.xx", 0x0f0000, 0x10000, CRC(b8df8a34) SHA1(6810f7961052a983b8c78b42d550038051012c6d) ) /* sprites D2 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ -ROM_END - -ROM_START( gaiden ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "gaiden_1.3s", 0x00000, 0x20000, CRC(e037ff7c) SHA1(5418bcb80d4c52f05e3c26668193452fd51f1283) ) - ROM_LOAD16_BYTE( "gaiden_2.4s", 0x00001, 0x20000, CRC(454f7314) SHA1(231296423870f00ea2e545faf0fbb37577430a4f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "gaiden_3.4b", 0x0000, 0x10000, CRC(75fd3e6a) SHA1(3333e84ed4983caa133e60a8e8895fa897ab4949) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gaiden_5.7a", 0x000000, 0x10000, CRC(8d4035f7) SHA1(3473456cdd24e312e3073586d7e8f24eb71bbea1) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD( "8.3n", 0x020000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD( "10.3r", 0x040000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD( "gaiden_12.3s", 0x060000, 0x20000, CRC(90f1e13a) SHA1(3fe9fe62aa9e92c871c791a3b11f96c9a48099a9) ) /* sprites D1 */ - - ROM_LOAD( "7.1m", 0x080000, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD( "9.1n", 0x0a0000, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD( "11.1r", 0x0c0000, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD( "gaiden_13.1s", 0x0e0000, 0x20000, CRC(7d9f5c5e) SHA1(200102532ea9a88c7c708e03f8893c46dff827d1) ) /* sprites D2 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ -ROM_END - -ROM_START( ryukendn ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "ryukendn_1.3s", 0x00000, 0x20000, CRC(6203a5e2) SHA1(8cfe05c483a351e938b067ffa642d515e28605a3) ) - ROM_LOAD16_BYTE( "ryukendn_2.4s", 0x00001, 0x20000, CRC(9e99f522) SHA1(b2277d8934b5e6e2f556aee5092f5d1050774a34) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "3.4b", 0x0000, 0x10000, CRC(6b686b69) SHA1(f0fa553acb3945f8dbbf466073c8bae35a0375ef) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hn27512p.7a", 0x000000, 0x10000, CRC(765e7baa) SHA1(4d0a50f091b284739b6d9a8ceb4f81999da445fc) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - /* Should all these roms be 0x10000 bytes on this board? */ - ROM_LOAD( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD( "8.3n", 0x020000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD( "10.3r", 0x040000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD( "shadoww_12a.xx", 0x060000, 0x10000, CRC(9bb07731) SHA1(b799b1958dc9b84797fdab2591e33bd5d28884a3) ) /* sprites D1 */ - ROM_LOAD( "ryukendn_12b.xx", 0x070000, 0x10000, CRC(1773628a) SHA1(e7eacc880f2a4174f17b263bedf8c1bc64007dbd) ) /* sprites D1 */ - - ROM_LOAD( "7.1m", 0x080000, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD( "9.1n", 0x0a0000, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD( "11.1r", 0x0c0000, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD( "shadoww_13a.xx", 0x0e0000, 0x10000, CRC(996d2fa5) SHA1(a32526949af3635914927ebbbe684c3de9562a9d) ) /* sprites D2 */ - ROM_LOAD( "ryukendn_13b.xx", 0x0f0000, 0x10000, CRC(1f43c507) SHA1(29f655442c16677855073284c7ab41059c99c497) ) /* sprites D2 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ -ROM_END - -/* - -Ninja Ryukenden (Japan) (Tecmo 1989) -Dumped from an original Tecmo board. Board No. 6215-A. Serial A-59488. - -------------------------------------------------------------------------------------- - -*/ - -ROM_START( ryukenda ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "1.3s", 0x00000, 0x20000, CRC(0ed5464c) SHA1(2eab6650ad1c38cd560ec3d084f47156756c97a4) ) - ROM_LOAD16_BYTE( "2.4s", 0x00001, 0x20000, CRC(a93a8256) SHA1(6bf6c189f82cb9341d3427a822de83cbaed27bc0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "3.4b", 0x0000, 0x10000, CRC(6b686b69) SHA1(f0fa553acb3945f8dbbf466073c8bae35a0375ef) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hn27512p.7a", 0x000000, 0x10000, CRC(765e7baa) SHA1(4d0a50f091b284739b6d9a8ceb4f81999da445fc) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(1ecfddaa) SHA1(e71d60ae1a98fe8512498f91cce01c16be9f0871) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(1291a696) SHA1(023b05260214adc39bdba81d5e2aa246b6d74a6a) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(140b47ca) SHA1(6ffd9b7116658a46a124f9085602d88aa143d829) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(7638cccb) SHA1(780d47d3aa248346e0e7abc6e6284542e7392919) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "18.6a", 0x000000, 0x20000, CRC(3fadafd6) SHA1(0cb5387a354c631d5c6aca8f77ecbbc0d175a574) ) - ROM_LOAD( "19.6b", 0x020000, 0x20000, CRC(ddae9d5b) SHA1(108b202ae7ae124a32400a0a404c7d2b614c60bd) ) - ROM_LOAD( "20.4b", 0x040000, 0x20000, CRC(08cf7a93) SHA1(fd3278c3fb3ef30ed03c8a95656d86ba82a163d8) ) - ROM_LOAD( "21.4b", 0x060000, 0x20000, CRC(1ac892f5) SHA1(28364266ca9d1955fb7953f5c2d6f35e114beec6) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "6.3m", 0x000000, 0x20000, CRC(e7ccdf9f) SHA1(80ffcefc95660471124898a9c2bee55df36bda13) ) /* sprites A1 */ - ROM_LOAD( "8.3n", 0x020000, 0x20000, CRC(7ef7f880) SHA1(26ba9a76adce24beea3cffa1cb95aeafe6f82f96) ) /* sprites B1 */ - ROM_LOAD( "10.3r", 0x040000, 0x20000, CRC(a6451dec) SHA1(553e7a1453b59055fa0b10ca04125543d9f8987c) ) /* sprites C1 */ - ROM_LOAD( "12.3s", 0x060000, 0x20000, CRC(277204f0) SHA1(918e05f10959f2b50c16b6e0dc62e3076c99250e) ) /* sprites D1 */ - - ROM_LOAD( "7.1m", 0x080000, 0x20000, CRC(016bec95) SHA1(6a6757c52ca9a2398ea43d1af4a8d5adde6f4cd2) ) /* sprites A2 */ - ROM_LOAD( "9.1n", 0x0a0000, 0x20000, CRC(6e9b7fd3) SHA1(c86ff61844fc94c02625bb812b9062d0649c8fdf) ) /* sprites B2 */ - ROM_LOAD( "11.1r", 0x0c0000, 0x20000, CRC(7fbfdf5e) SHA1(ab67b72dcadb5f2236d29de751de5bf890a9e423) ) /* sprites C2 */ - ROM_LOAD( "13.1s", 0x0e0000, 0x20000, CRC(4e56a508) SHA1(f89a6037e602b26d6ce11859e0b43a602b50d985) ) /* sprites D2 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "4.4a", 0x0000, 0x20000, CRC(b0e0faf9) SHA1(2275d2ef5eee356ccf80b9e9644d16fc30a4d107) ) /* samples */ -ROM_END - - - -ROM_START( tknight ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "tkni1.bin", 0x00000, 0x20000, CRC(9121daa8) SHA1(06ba7779602df8fae32e859371d27c0dbb8d3430) ) - ROM_LOAD16_BYTE( "tkni2.bin", 0x00001, 0x20000, CRC(6669cd87) SHA1(8888522a3aef76a979ffc80ba457dd49f279abf1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "tkni3.bin", 0x0000, 0x10000, CRC(15623ec7) SHA1(db43fe6c417117d7cd90a26e12a52efb0e1a5ca6) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni5.bin", 0x000000, 0x10000, CRC(5ed15896) SHA1(87bdddb26934af0b2c4e704e6d85c69a7531aeb1) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni7.bin", 0x000000, 0x80000, CRC(4b4d4286) SHA1(d386aa223eb288ea829c98d3f39279a75dc66b71) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni6.bin", 0x000000, 0x80000, CRC(f68fafb1) SHA1(aeca38eaea2f6dfc484e48ac1114c0c4abaafb9c) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni9.bin", 0x000000, 0x80000, CRC(d22f4239) SHA1(360a9a821faabe911eef407ef85452d8b706538f) ) /* sprites */ - ROM_LOAD( "tkni8.bin", 0x080000, 0x80000, CRC(4931b184) SHA1(864e827ac109c0ee52a898034c021cd5e92ff000) ) /* sprites */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "tkni4.bin", 0x0000, 0x20000, CRC(a7a1dbcf) SHA1(2fee1d9745ce2ab54b0b9cbb6ab2e66ba9677245) ) /* samples */ -ROM_END - -ROM_START( wildfang ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "1.3st", 0x00000, 0x20000, CRC(ab876c9b) SHA1(b02c822f107df4c9c4f0024998f225c1ddbbd496) ) - ROM_LOAD16_BYTE( "2.5st", 0x00001, 0x20000, CRC(1dc74b3b) SHA1(c99051ebefd6ce666b13ab56c0a10b188f15ec28) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "tkni3.bin", 0x0000, 0x10000, CRC(15623ec7) SHA1(db43fe6c417117d7cd90a26e12a52efb0e1a5ca6) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni5.bin", 0x000000, 0x10000, CRC(5ed15896) SHA1(87bdddb26934af0b2c4e704e6d85c69a7531aeb1) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "14.3a", 0x000000, 0x20000, CRC(0d20c10c) SHA1(209ca4e166d0b91ff99a338e135e5388af2c51f5) ) - ROM_LOAD( "15.3b", 0x020000, 0x20000, CRC(3f40a6b4) SHA1(7486ddfe4b0ac4198512548b74402f4194c804f1) ) - ROM_LOAD( "16.1a", 0x040000, 0x20000, CRC(0f31639e) SHA1(e150db4f617c5fcf505e5ca95d94073c1f6b7d0d) ) - ROM_LOAD( "17.1b", 0x060000, 0x20000, CRC(f32c158e) SHA1(2861754bda37e30799151b5ca73771937edf38a9) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni6.bin", 0x000000, 0x80000, CRC(f68fafb1) SHA1(aeca38eaea2f6dfc484e48ac1114c0c4abaafb9c) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "tkni9.bin", 0x000000, 0x80000, CRC(d22f4239) SHA1(360a9a821faabe911eef407ef85452d8b706538f) ) /* sprites */ - ROM_LOAD( "tkni8.bin", 0x080000, 0x80000, CRC(4931b184) SHA1(864e827ac109c0ee52a898034c021cd5e92ff000) ) /* sprites */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "tkni4.bin", 0x0000, 0x20000, CRC(a7a1dbcf) SHA1(2fee1d9745ce2ab54b0b9cbb6ab2e66ba9677245) ) /* samples */ -ROM_END - -ROM_START( stratof ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "1.3s", 0x00000, 0x20000, CRC(060822a4) SHA1(82abf6ea64695d2f7b5934ad2487e857648aeecf) ) - ROM_LOAD16_BYTE( "2.4s", 0x00001, 0x20000, CRC(339358fa) SHA1(b662bccc2206ae888ea36f355d44bf98fcd2ee2c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "a-4b.3", 0x00000, 0x10000, CRC(18655c95) SHA1(8357e0520565a201bb930cadffc759463931ec41) ) - - ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* protection NEC D8749 */ - ROM_LOAD( "a-6v.mcu", 0x00000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x10000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b-7a.5", 0x00000, 0x10000, CRC(6d2e4bf1) SHA1(edcf96bbcc109da71e3adbb37d119254d3873b29) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b-1b", 0x00000, 0x80000, CRC(781d1bd2) SHA1(680d91ea02f1e9cb911501f595008f46ad77ded4) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b-4b", 0x00000, 0x80000, CRC(89468b84) SHA1(af60fe957c98fa3f00623d420a0941a941f5bc6b) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "b-2m", 0x00000, 0x80000, CRC(5794ec32) SHA1(07e78d8bcb2373da77ef9f8cde6a01f384f8bf7e) ) - ROM_LOAD( "b-1m", 0x80000, 0x80000, CRC(b0de0ded) SHA1(45c74d0c58e3e73c79e587722d9fea9f7ba9cb0a) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "a-4a.4", 0x00000, 0x20000, CRC(ef9acdcf) SHA1(8d62a666843f0cb22e8926ae18a961052d4f9ed5) ) -ROM_END - -ROM_START( raiga ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "a-3s.1", 0x00000, 0x20000, CRC(303c2a6c) SHA1(cd825329fd1f7d87661114f07cc87e43fd34e251) ) - ROM_LOAD16_BYTE( "a-4s.2", 0x00001, 0x20000, CRC(5f31fecb) SHA1(b0c88d260d0108100c157ea92f7defdc3cbb8933) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "a-4b.3", 0x00000, 0x10000, CRC(18655c95) SHA1(8357e0520565a201bb930cadffc759463931ec41) ) - - ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* protection NEC D8749 */ - ROM_LOAD( "a-6v.mcu", 0x00000, 0x1000, NO_DUMP ) - - ROM_REGION( 0x10000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b-7a.5", 0x00000, 0x10000, CRC(6d2e4bf1) SHA1(edcf96bbcc109da71e3adbb37d119254d3873b29) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b-1b", 0x00000, 0x80000, CRC(781d1bd2) SHA1(680d91ea02f1e9cb911501f595008f46ad77ded4) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b-4b", 0x00000, 0x80000, CRC(89468b84) SHA1(af60fe957c98fa3f00623d420a0941a941f5bc6b) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "b-2m", 0x00000, 0x80000, CRC(5794ec32) SHA1(07e78d8bcb2373da77ef9f8cde6a01f384f8bf7e) ) - ROM_LOAD( "b-1m", 0x80000, 0x80000, CRC(b0de0ded) SHA1(45c74d0c58e3e73c79e587722d9fea9f7ba9cb0a) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "a-4a.4", 0x00000, 0x20000, CRC(ef9acdcf) SHA1(8d62a666843f0cb22e8926ae18a961052d4f9ed5) ) -ROM_END - -/* -Dragon Bowl -Nics, 1992 - -PCB Layout ----------- - -D.B.001 (sticker) -|------------------------------------------------------| -| 1.2R 2.3R 15.5R 17.6R 19.7R 21.8R | -| 6116 3.3Q 14.5Q 16.6Q 18.7Q 20.8Q | -| Z80 6295 |--------| | -| 3569 12MHz | | | -|7105 PAL | FPGA | 6116 | -| | | | -| DIPA |--------| 22.6M | -|J PAL 6116 | -|A |-------------| 6116 | -|M | 68000 | | -|M DIPB |-------------| | -|A 6264 6264 2018 | -| 4.3H 5.4H PAL 2018 | -| | -| |--------| | -| 20MHz | | | -| 6116 | FPGA | | -| 6116 | | | -| 6264 6264 |--------| | -| 7.5B 9.6B 11.7B 13.8B | -| 6.5A 8.6A 10.7A 12.8A | -|------------------------------------------------------| -Notes: - 68000 : Motorola MC68000P10 CPU running at 10.000MHz [20/2] (DIP64) - Z80 : Goldstar Z8400B running at 6.000MHz [12/2] (DIP40) - 6295 : Oki M6295 running at 1.000MHz [12/12] (QFP44), sample rate = 1000000 / 132 - 3569 : Looks like YM3812 or YM3526 or some other YM compatible YM35xx DIP24 chip. - Input clock is 4MHz on pin 24 and output clock is 2MHz on pin 23 (tied to DAC) - 7105 : Likely YM3012 compatible DAC (pin 2 has 2MHz clock) - FPGA : Unknown FPGA (x2, PLCC84) - 2018 : 2K x8 SRAM (x2, NDIP24) - 6116 : 2K x8 SRAM (x6, DIP24) - 6264 : 8K x8 SRAM (x4, DIP28) - DIPA/B: 8 position DIP Switches - VSync : 60Hz -*/ - -ROM_START( drgnbowl ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 2*128k for 68000 code */ - ROM_LOAD16_BYTE( "4.3h", 0x00000, 0x20000, CRC(90730008) SHA1(84f0668cf978d99f861cbaeb4b33f7cb1428a648) ) - ROM_LOAD16_BYTE( "5.4h", 0x00001, 0x20000, CRC(193cc915) SHA1(e898f31766eaf515e0787848134b1365e75b32a9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "1.2r", 0x00000, 0x10000, CRC(d9cbf84a) SHA1(d14d749a41a440a56fea1d836a8d62be65786d68) ) /* Audio CPU is a Z80 */ - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "22.6m", 0x00000, 0x10000, CRC(86e41198) SHA1(40201a139a668e6fc441d500f40601c7af934b1d) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "6.5a", 0x00000, 0x20000, CRC(b15759f7) SHA1(1710e5ebe8197fdc622ed5c2813257ebe662b7f2) ) - ROM_LOAD( "7.5b", 0x20000, 0x20000, CRC(2541d445) SHA1(a9688cb216bc56fe1b454bc79f967582709991b1) ) - ROM_LOAD( "8.6a", 0x40000, 0x20000, CRC(51a2f5c4) SHA1(dba1278303055b420b128907ba9909e7a39b2df6) ) - ROM_LOAD( "9.6b", 0x60000, 0x20000, CRC(f4c8850f) SHA1(d618c3b8b5d93b9e6fa47b833d8f06a664f63e49) ) - ROM_LOAD( "10.7a", 0x80000, 0x20000, CRC(9e4b3c61) SHA1(5a3739a40d8ffe551262fe42fc36d5a07a59457e) ) - ROM_LOAD( "11.7b", 0xa0000, 0x20000, CRC(0d33d083) SHA1(204889531cce4f7251edfa44f723b43a08c3b28c) ) - ROM_LOAD( "12.8a", 0xc0000, 0x20000, CRC(6c497ad3) SHA1(f0bbf5d7b6efe64c34829104f97b343def705d7f) ) - ROM_LOAD( "13.8b", 0xe0000, 0x20000, CRC(7a84adff) SHA1(86b15842e1fcdb882af6159ff3d44c5806fe3ced) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "15.5r", 0x00000, 0x20000, CRC(7429371c) SHA1(1412312d429ea4bb00db2b8704a7c3d7e14db19b) ) - ROM_LOAD( "14.5q", 0x20000, 0x20000, CRC(4301b97f) SHA1(70614691794a04e0ac1547ba1772ee527fe77ba8) ) - ROM_LOAD( "17.6r", 0x40000, 0x20000, CRC(9088af09) SHA1(8b5090d8a88ad06152030e92acecd76cb2f0f88c) ) - ROM_LOAD( "16.6q", 0x60000, 0x20000, CRC(8ade4e01) SHA1(f02fcc66d1f842ff3861813431942a95de08f654) ) - ROM_LOAD( "19.7r", 0x80000, 0x20000, CRC(5082ceff) SHA1(fad67375b774236b345d3496ce17665947a21201) ) - ROM_LOAD( "18.7q", 0xa0000, 0x20000, CRC(d18a7ffb) SHA1(8ea792dfb8e7c9e6df0fd7596c3972f79b15d860) ) - ROM_LOAD( "21.8r", 0xc0000, 0x20000, CRC(0cee8711) SHA1(5ec071db383a56629a7063d86264bd2bbb6b0036) ) - ROM_LOAD( "20.8q", 0xe0000, 0x20000, CRC(9647e02a) SHA1(97b05716b13dd77f31ac6a08326267ec175115f1) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 2*128k for ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "3.3q", 0x00000, 0x20000, CRC(489c6d0e) SHA1(5a276fad500a760c83a16e0a4cd91d5963ad8089) ) /* samples */ - ROM_LOAD( "2.3r", 0x20000, 0x20000, CRC(7710ce39) SHA1(7a7cf0b4005b000589d0bad380575d625d9d20f7) ) /* samples */ -ROM_END - - -static DRIVER_INIT( shadoww ) -{ - /* sprite size Y = sprite size X */ - gaiden_sprite_sizey = 0; -} - -static DRIVER_INIT( wildfang ) -{ - /* sprite size Y = sprite size X */ - gaiden_sprite_sizey = 0; - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x07a006, 0x07a007, 0, 0, wildfang_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x07a804, 0x07a805, 0, 0, wildfang_protection_w); -} - -static DRIVER_INIT( raiga ) -{ - /* sprite size Y independent from sprite size X */ - gaiden_sprite_sizey = 2; - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x07a006, 0x07a007, 0, 0, raiga_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x07a804, 0x07a805, 0, 0, raiga_protection_w); -} - -static DRIVER_INIT( drgnbowl ) -{ - int i; - UINT8 *ROM = memory_region(REGION_CPU1); - size_t size = memory_region_length(REGION_CPU1); - UINT8 *buffer = malloc_or_die(size); - - memcpy(buffer,ROM,size); - for( i = 0; i < size; i++ ) - { - ROM[i] = buffer[BITSWAP24(i,23,22,21,20, - 19,18,17,15, - 16,14,13,12, - 11,10, 9, 8, - 7, 6, 5, 4, - 3, 2, 1, 0)]; - } - - free(buffer); - - ROM = memory_region(REGION_GFX2); - size = memory_region_length(REGION_GFX2); - buffer = malloc_or_die(size); - - memcpy(buffer,ROM,size); - for( i = 0; i < size; i++ ) - { - - ROM[i] = buffer[BITSWAP24(i,23,22,21,20, - 19,18,16,17, - 15,14,13, 4, - 3,12,11,10, - 9, 8, 7, 6, - 5, 2, 1, 0)]; - } - - free(buffer); -} - - -GAME( 1988, shadoww, 0, shadoww, shadoww, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 1)", 0 ) -GAME( 1988, shadowwa, shadoww, shadoww, shadoww, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 2)", 0 ) -GAME( 1988, gaiden, shadoww, shadoww, shadoww, shadoww, ROT0, "Tecmo", "Ninja Gaiden (US)", 0 ) -GAME( 1989, ryukendn, shadoww, shadoww, shadoww, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 1)", 0 ) -GAME( 1989, ryukenda, shadoww, shadoww, shadoww, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 2)", 0 ) -GAME( 1989, wildfang, 0, shadoww, wildfang, wildfang, ROT0, "Tecmo", "Wild Fang / Tecmo Knight", 0 ) -GAME( 1989, tknight, wildfang, shadoww, tknight, wildfang, ROT0, "Tecmo", "Tecmo Knight", 0 ) -GAME( 1991, stratof, 0, raiga, raiga, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, raiga, stratof, raiga, raiga, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, drgnbowl, 0, drgnbowl,drgnbowl, drgnbowl, ROT0, "Nics", "Dragon Bowl", 0 ) diff --git a/src/drivers/galaga.c b/src/drivers/galaga.c deleted file mode 100644 index 354aa1360..000000000 --- a/src/drivers/galaga.c +++ /dev/null @@ -1,3162 +0,0 @@ -/*************************************************************************** - -Bosconian (c) 1981 Namco -Galaga (c) 1981 Namco -Xevious (c) 1982 Namco -Dig Dug (c) 1982 Namco - -driver by Nicola Salmoria -based on previous work by Martin Scragg, Mirko Buffoni, Aaron Giles - - -All these games are based on the same 3xZ80, shared memory, CPU design. -Bosconian and Galaga use the same CPU board, with minor differences -(Galaga has one missing RAM and no 50XX custom) -Xevious is physically different, but logically identical. -Dig Dug is the only one a bit different, because it reads the dip switches -through a custom chip instead of having them mapped in memory. - -The video board, on the other hand, is completely different for all the games, -that's why they use separate vidhrdw/ source files. - - -Custom ICs: ----------- -Bosconian: ---------- -CPU board: -06XX interface to custom 5xXX -07XX clock divider -08XX(x3) bus controller -50XX player score control (protection) -51XX I/O -54XX explosion sound generator - -Video board: -03XX(x2) ? -05XX starfield generator -06XX interface to custom 5xXX -07XX clock divider -50XX player score control (only used as protection check) -52XX sample player - -Galaga: ------- -CPU board: -06XX interface to custom 5xXX -07XX clock divider -08XX(x3) bus controller -51XX I/O -54XX explosion sound generator - -Video board: -00XX tilemap address generator with scrolling capability (only Super Pacman) -02XX gfx data shifter and mixer (16-bit in, 4-bit out) -04XX sprite address generator -05XX starfield generator -07XX clock divider - -Xevious: -------- -CPU board: -06XX interface to custom 5xXX -07XX clock divider -08XX(x3) bus controller -50XX player score control (only used for a protection check on startup) -51XX I/O -54XX explosion sound generator - -Video board: -03XX(x2) ? -04XX sprite address generator -07XX clock divider -11XX(x2) gfx data shifter and mixer (16-bit in, 4-bit out) -12XX sprite generator -13XX dual scrolling tilemap address generator - -Dig Dug: -------- -CPU board: -06XX interface to custom 5xXX -07XX clock divider -08XX(x3) bus controller -51XX I/O -53XX I/O - -Video board: -00XX tilemap address generator -02XX gfx data shifter and mixer (16-bit in, 4-bit out) -04XX sprite address generator -07XX clock divider - - -Memory maps: ------------ -Bosconian: ---------- -MAIN CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3N program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 3M program ROM -0010xxxxxxxxxxxx R xxxxxxxx ROM 3L program ROM -0011xxxxxxxxxxxx R xxxxxxxx ROM 3K program ROM -the rest of the memory map is common to the other CPUs - -SUB CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3J program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 3H program ROM -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -SOUND CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3E program ROM -0001------------ n.c. -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -COMMON: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -01000----------- n.c. -01001----------- n.c. -01010----------- n.c. -01011----------- n.c. -01100----------- n.c. -01101-----00xxxx W ----xxxx RAM 2A \ sound control registers -01101-----01xxxx W ----xxxx RAM 2B / -01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge -01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge -01101-----10-010 W -------x NMION sound CPU nmi enable -01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board -01101-----10-100 W -------x n.c. -01101-----10-101 W -------x MOD 0 unused? -01101-----10-110 W -------x MOD 1 unused? -01101-----10-111 W -------x MOD 2 unused? -01101-----11---- W -------- WDR watchdog reset -01101-----00-xxx R -------x DIP SW dip switch B -01101-----00-xxx R ------x- DIP SW dip switch A -01101-----01---- R n.c. -01101-----10---- R n.c. -01101-----11---- R n.c. -01110--0-------- R/W xxxxxxxx I/O custom 06XX data -01110--1-------- R/W xxxxxxxx I/O custom 06XX control -01111xxxxxxxxxxx R/W xxxxxxxx RAM 2N work RAM (not present in Galaga) -10000xxxxxxxxxxx R/W xxxxxxxx DHRAM tilemap RAM (tile code) [1] -10001xxxxxxxxxxx R/W xxxxxxxx VCRAM tilemap RAM (tile attr) [1] -10010--0-------- R/W xxxxxxxx EXCS custom 06XX #2 data -10010--1-------- R/W xxxxxxxx EXCS custom 06XX #2 control -10011----000xxxx W ----xxxx SOWR bullets shape and X pos msb [2] -10011----001---- W xxxxxxxx POSI X playfield X scroll -10011----010---- W xxxxxxxx POSI Y playfield Y scroll -10011----011---- W -----xxx STAR to 05XX: starfield X scroll speed -10011----011---- W --xxx--- STAR to 05XX: starfield Y scroll speed -10011----100---- W -------- STARCLR to 05XX: unknown -10011----101---- W n.c. -10011----110---- W n.c. -10011----111-000 W -------x FLIP flip screen -10011----111-001 W -------x n.c. -10011----111-010 W -------x n.c. -10011----111-011 W -------x n.c. -10011----111-100 W -------x BLK 0 \ to 05XX: starfield blink -10011----111-101 W -------x BLK 1 / (select active subset) -10011----111-110 W -------x n.c. -10011----111-111 W -------x RESET reset 5xXX chips on video board -10100----------- n.c. -10101----------- n.c. -10110----------- n.c. -10111----------- n.c. - -[1] 1st half is radar + sprite registers, 2nd half is scrolling playfield -[2] SO = Small Objects? Only locations 4-F are used. - - -Galaga: ------- -MAIN CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3N program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 3M program ROM -0010xxxxxxxxxxxx R xxxxxxxx ROM 3L program ROM -0011xxxxxxxxxxxx R xxxxxxxx ROM 3K program ROM -the rest of the memory map is common to the other CPUs - -SUB CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3J program ROM -0001------------ n.c. -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -SOUND CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 3E program ROM -0001------------ n.c. -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -COMMON: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -01000----------- n.c. -01001----------- n.c. -01010----------- n.c. -01011----------- n.c. -01100----------- n.c. -01101-----00---- W ----xxxx RAM 2A \ sound control registers -01101-----01---- W ----xxxx RAM 2B / -01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge -01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge -01101-----10-010 W -------x NMION sound CPU nmi enable -01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board -01101-----10-100 W -------x n.c. -01101-----10-101 W -------x MOD 0 unused? -01101-----10-110 W -------x MOD 1 unused? -01101-----10-111 W -------x MOD 2 unused? -01101-----11---- W -------- WDR watchdog reset -01101-----00-xxx R -------x DIP SW dip switch B -01101-----00-xxx R ------x- DIP SW dip switch A -01101-----01---- R n.c. -01101-----10---- R n.c. -01101-----11---- R n.c. -01110--0-------- R/W xxxxxxxx I/O custom 06XX data -01110--1-------- R/W xxxxxxxx I/O custom 06XX control -10000xxxxxxxxxxx R/W xxxxxxxx RAM 1K tilemap RAM -10001-xxxxxxxxxx R/W xxxxxxxx RAM 3E/3F work RAM -10001-111xxxxxxx R/W xxxxxxxx portion holding sprite registers -10010-xxxxxxxxxx R/W xxxxxxxx RAM 3K/3L work RAM -10010-111xxxxxxx R/W xxxxxxxx portion holding sprite registers -10011-xxxxxxxxxx R/W xxxxxxxx RAM 3H/3J work RAM -10011-111xxxxxxx R/W xxxxxxxx portion holding sprite registers -10100--------000 W -------x \ -10100--------001 W -------x > to 05XX: starfield X scroll speed -10100--------010 W -------x / -10100--------011 W -------x \ to 05XX: starfield blink -10100--------100 W -------x / (select active subset) -10100--------101 W -------x to 05XX: unknown. It is the same as STARCLR in Bosconian -10100--------110 W -------x n.c. -10100--------111 W -------x FLIP flip screen -10101----------- n.c. -10110----------- n.c. -10111----------- n.c. - - -Namco vs Midway ROM names and locations ---------------------------------------- -Location ID Location ID --------- ---- -------- ----- -CPU 3P GG1-1 CPU 3N 3200A -CPU 3M GG1-2 CPU 3M 3300B -CPU 2M GG1-3 CPU 3L 3400C -CPU 2L GG1-4 CPU 3K 3500D -CPU 3F GG1-5 CPU 3J 3600E -CPU 2C GG1-7 CPU 3E 3700G -CPU 1D GG1-1[bpr] CPU 1D -CPU 5C GG1-2[bpr] CPU 5C - -VID 4L GG1-9 VID 4L 2600J -VID 4F GG1-10 VID 4F 2700K -VID 4D GG1-11 VID 4D 2800L -VID 1C GG1-3[bpr] VID 1C -VID 2N GG1-4[bpr] VID 2N -VID 5N GG1-5[bpr] VID 5N - - -Xevious: -------- -MAIN CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R xxxxxxxx ROM 1 program ROM -001xxxxxxxxxxxxx R xxxxxxxx ROM 2 program ROM -the rest of the memory map is common to the other CPUs - -MOTION CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R xxxxxxxx ROM 3 program ROM -the rest of the memory map is common to the other CPUs - -SOUND CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00-xxxxxxxxxxxxx R xxxxxxxx ROM 4 program ROM -the rest of the memory map is common to the other CPUs - -COMMON: -a small part of the decoding for the video board is done by a PAL so it is inferred by program behaviour - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -01000----------- n.c. -01001----------- n.c. -01010----------- n.c. -01011----------- n.c. -01100----------- n.c. -01101-----00---- W ----xxxx SRAM 0 \ sound control registers -01101-----01---- W ----xxxx SRAM 1 / -01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge -01101-----10-001 W -------x IRQ2 motion CPU irq enable/acknowledge -01101-----10-010 W -------x NMION sound CPU nmi enable -01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board -01101-----10-100 W -------x n.c. -01101-----10-101 W -------x n.c. -01101-----10-110 W -------x n.c. -01101-----10-111 W -------x n.c. -01101-----11---- W -------- WDR watchdog reset -01101-----00-xxx R -------x DIP SW dip switch B -01101-----00-xxx R ------x- DIP SW dip switch A -01101-----01---- R n.c. -01101-----10---- R n.c. -01101-----11---- R n.c. -01110--0-------- R/W xxxxxxxx I/O custom 06XX data -01110--1-------- R/W xxxxxxxx I/O custom 06XX control -01111xxxxxxxxxxx R/W xxxxxxxx work RAM -1000-xxxxxxxxxxx R/W xxxxxxxx work RAM -1000-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x, y) -1001-xxxxxxxxxxx R/W xxxxxxxx work RAM -1001-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (flip, size) -1010-xxxxxxxxxxx R/W xxxxxxxx work RAM -1010-1111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number & color) -10110xxxxxxxxxxx R/W xxxxxxxx PF0 fg tilemap RAM (tile attributes) -10111xxxxxxxxxxx R/W xxxxxxxx PF1 bg tilemap RAM (tile attributes) -11000xxxxxxxxxxx R/W xxxxxxxx PF2 fg tilemap RAM (tile code) -11001xxxxxxxxxxx R/W xxxxxxxx PF3 bg tilemap RAM (tile code) -1101-----000---x W xxxxxxxx bg X scroll (9-bit data: A0 is the msb) -1101-----001---x W xxxxxxxx fg X scroll (9-bit data: A0 is the msb) -1101-----010---x W xxxxxxxx bg Y scroll (9-bit data: A0 is the msb) -1101-----011---x W xxxxxxxx fg Y scroll (9-bit data: A0 is the msb) -1101-----111---- W -------x FLIP flip screen -1110------------ n.c. -1111-----------0 W xxxxxxxx BS0 \ address to read from background data ROMs -1111-----------1 W xxxxxxxx BS1 / (see xevious_bb_r) -1111-----------0 R xxxxxxxx BB0 \ read from background data ROMs -1111-----------1 R xxxxxxxx BB1 / - - -Namco vs Atari ROM names and locations --------------------------------------- -Location ID Location ID --------- ---- -------- ---------- -CPU 3P XVI-1 CPU 1M 136018-118 -CPU 3M XVI-2 " " " " -CPU 2M XVI-3 CPU 1L 136018-119 -CPU 2L XVI-4 " " " " -CPU 3F XVI-5 CPU 4C 136018-120 -CPU 3J XVI-6 " " " " -CPU 2C XVI-7 CPU 2C 136018-127 -CPU 5N XVI-1[bpr] CPU 6M 136018-028 -CPU 7N XVI-2[bpr] CPU 8M 136018-029 - -VID 2A XVI-9 VID 2A 136018-101 -VID 2B XVI-10 VID 2B 136018-102 -VID 2C XVI-11 VID 2C 136018-103 -VID 3B XVI-12 VID 3B 136018-104 -VID 3C XVI-13 VID 3C 136018-105 -VID 3D XVI-14 VID 3D 136018-106 -VID 4M XVI-15 VID 4M 136018-107 -VID 4N XVI-16 VID 4N 136018-108 -VID 4P XVI-17 VID 4P 136018-109 -VID 4R XVI-18 VID 4R 136018-110 -VID 3L XVI-4[bpr] VID 3L 136018-011 -VID 3M XVI-5[bpr] VID 3M 136018-012 -VID 4F XVI-6[bpr] VID 4F 136018-013 -VID 4H XVI-7[bpr] VID 4H 136018-014 -VID 6A XVI-8[bpr] VID 6A 136018-015 -VID 6D XVI-9[bpr] VID 6D 136018-016 -VID 6E XVI-10[bpr] VID 6E 136018-017 - - -Dig Dug: -------- -MAIN CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 0 program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 1 program ROM -0010xxxxxxxxxxxx R xxxxxxxx ROM 2 program ROM -0011xxxxxxxxxxxx R xxxxxxxx ROM 3 program ROM -the rest of the memory map is common to the other CPUs - -SUB CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 4 program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 5 program ROM -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -SOUND CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -0000xxxxxxxxxxxx R xxxxxxxx ROM 6 program ROM -0001xxxxxxxxxxxx R xxxxxxxx ROM 7 program ROM (optional, not used) -0010------------ n.c. -0011------------ n.c. -the rest of the memory map is common to the other CPUs - -COMMON: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -01000----------- n.c. -01001----------- n.c. -01010----------- n.c. -01011----------- n.c. -01100----------- n.c. -01101-----00---- W ----xxxx AUDIO 0 \ sound control registers -01101-----01---- W ----xxxx AUDIO 1 / -01101-----10-000 W -------x IRQ1 main CPU irq enable/acknowledge -01101-----10-001 W -------x IRQ2 sub CPU irq enable/acknowledge -01101-----10-010 W -------x NMION sound CPU nmi enable -01101-----10-011 W -------x RESET reset sub and sound CPU, and 5xXX chips on CPU board -01101-----10-100 W -------x n.c. -01101-----10-101 W -------x MOD 0 \ -01101-----10-110 W -------x MOD 1 | to custom 53XX -01101-----10-111 W -------x MOD 2 / -01101-----11---- W -------- WDDIS watchdog reset -01110--0-------- R/W xxxxxxxx I/O custom 06XX data -01110--1-------- R/W xxxxxxxx I/O custom 06XX control -01111----------- n.c. -10000xxxxxxxxxxx R/W xxxxxxxx RAM 0 tilemap RAM + work RAM -10001-xxxxxxxxxx R/W xxxxxxxx OBJRAM work RAM -10001-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number and color) -10010-xxxxxxxxxx R/W xxxxxxxx POSRAM work RAM -10010-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x and y) -10011-xxxxxxxxxx R/W xxxxxxxx FLPRAM work RAM -10011-111xxxxxxx R/W xxxxxxxx portion holding sprite registers (flip) -10100--------000 W -------x \ background ROM (114) bank select -10100--------001 W -------x / -10100--------010 W -------x tilemap color select (low or high 4 bits of tilemap RAM) -10100--------011 W -------x background enable -10100--------100 W -------x \ background color lookup PROM (112) bank select -10100--------101 W -------x / -10100--------110 W -------x n.c. -10100--------111 W -------x FLIP flip screen -10101----------- n.c. -10110----------- n.c. -10111----0xxxxxx W xxxxxxxx EAROM non volatile memory address latch and data write -10111----0------ R xxxxxxxx EAROM non volatile memory read -10111----1------ W ----xxxx EAROM non volatile memory control - - - -Namco vs Atari ROM names and locations --------------------------------------- -The Namco version is composed of two boards, while the Atari version is -single board. There are two revisions of the Atari version. - -Location ID Location Location ID - (type 1) (type 2) --------- ---- -------- -------- ---------- -CPU 3P DD1-1 6L 2C/D 136007-101 -CPU 3M DD1-2 6M 2E 136007-102 -CPU 2M DD1-3 6N/P 2B/C 136007-103 -CPU 2L DD1-4 6R 2A 136007-104 -CPU 3F DD1-5 6C 2P 136007-105 -CPU 3J DD1-6 6D 2N 136007-106 -CPU 2C DD1-7 5L 2K/L 136007-107 -CPU 5N [bpr] 2K/L 10A 136007-109 -CPU 7N [bpr] 2P 11A 136007-110 - -VID 2C DD1-9 8R 5K 136007-108 -VID 1C [bpr] 4G 8F 136007-111 -VID 2N [bpr] 10K/L 4N 136007-112 -VID 5N [bpr] 1R 8L 136007-113 -VID 2D DD1-10 9N 4J 136007-114 -VID 5C DD1-11 10C/D 4F 136007-115 -VID 5F DD1-12 7A/B 5B 136007-119 -VID 5H DD1-13 8A/B 5A 136007-118 -VID 5J DD1-14 7C 5C 136007-117 -VID 5K DD1-15 8C 5D 136007-116 - - - -Gatsbee (Galaga mod/bootleg) ----------------------------- -This game runs on modified bootleg Galaga hardware (blue board with PCB numbers DG-09-02 and DG-07-02) - -ROM8: is a 2764. pins 1, 26, 27, 28 tied together. - pin2 out of socket, has wire that is tied to pin 4 of a LS259 that sits on top of the main Z80 - CPU located at 5B/6B - -Z80: There are 2 logic chips sitting on top of it which are wired up to the Z80 and to each other. - Looks like this.... - |-------------------| - | LS32 LS259 < - |-------------------| - -Bend all the legs outwards. -Line up the LS259 so pin 16 is in line with Z80 pin 11 -Line up the LS32 so pin 7 is in line with Z80 pin 29 -Atach the 2 chips to the top of the Z80 with some glue -Connect like this.... - -LS32 pin 1 tied to Z80 pin 22 -LS32 pin 2 tied to Z80 pin 19 -LS32 pin 3,4 tied together -LS32 pin 5 tied to Z80 pin 4 -LS32 pin 6 tied to pin 10 LS32 -LS32 pin 7 tied to Z80 pin 29 (GND) -LS32 pin 8 tied to LS259 pin 14 -LS32 pin 9 tied to Z80 pin 5 -LS32 pins 11, 12, 13 have NC -LS32 pin 14 tied to Z80 pin 11 (+5V) - -LS259 pin 1 tied to Z80 pin 30 -LS259 pin 2 tied to Z80 pin 31 -LS259 pin 3 tied to Z80 pin 32 -LS259 pin 4 to ROM 8 (as above) -LS259 pins 5, 6, 7 have NC -LS259 pin 8 tied to Z80 pin 29 (GND) -LS259 pins 9, 10, 11, 12 have NC -LS259 pin 13 tied to Z80 pin 14 -LS259 pin 15 tied to Z80 pin 26 -LS259 pin 16 tied to Z80 pin 11 - - - -Easter eggs: ------------ -- Bosconian: - - enter service mode - - keep B1 pressed and enter the following sequence: - 5xU 6xR 1xD 4xL - (c) 1981 NAMCO LTD. will be added at the bottom of the screen. - -- Galaga: - - enter service mode - - keep B1 pressed and enter the following sequence: - 5xR 6xL 3xR 7xL - (c) 1981 NAMCO LTD. will appear on the screen. - -- Xevious: - - start a game - - go to the bottom right of the screen and keep B2 pressed - NAMCO ORIGINAL - program by EVEZOO - will be written at the bottom of the screen - In Super Xevious this is changed to - special thanks for you - by game designer EVEZOO - -- Dig Dug: - - enter service mode - - keep B1 pressed and enter the following sequence: - 6xU 3xR 4xD 8xL - (c) 1982 NAMCO LTD. will appear on the screen. - - -Notes: ------ -- The Cabinet Type "dip switch" actually comes from the edge connector, but is mapped - in memory in place of dip switch #8. dip switch #8 selects single/dual coin counters - and is entirely handled by hardware. - -- galaga: there is a bug in the sound CPU program. During initialization, it enables - NMI before clearing RAM, but the NMI handler doesn't save the registers, so it cannot - interrupt program execution. If the NMI happens before the LDIR that clears RAM has - finished, the program will crash. - To prevent this, I had to use a custom interrupt_gen, timing NMI generation - appropriately. - -- galaga: there were "fast shoot" hacks available, which are not supported. - Their effects can be replicated with this line in cheat.dat: - galaga:1:070D:0D:100:Fast Shoot - -- bosco: we have two dumps of the sound shape ROM, "prom.1d" and "bosco.spr". Music - changes a lot from one version to the other. - I'm using the former because it is more similar to the other Namco games. The latter, - after masking off the unused top 4 bits and inverting bit 3, matches the Galaga one, - so it might have come from a (bootleg?) conversion. - -- bosco & galaga: the Midway arcade cabinet had an optional rapid fire board, using - a 556 to generate autofire while the button was held. That really makes little - sense in Galaga! For Bosconian, I guess it was for the boscomdo set I, because the - other sets have autofire built-in. - -- the bosconian video system is (apart from the starfield) almost identical functionally - to Rally X, but the hardware is quite different: Rally X has no custom ICs. - -- digdug: if you enter service mode and press press service coin something like - the following is written at the bottom of the screen: - 99.9999.9999.9999.9999. - This is explained in the manual: it is the number of games played, of points, etc. - The counters start from 999 and count backwards. - -- gallag is identical to galagao, apart from the title changed to "GALLAG" and the - copyright notice changed from "(c) 1981 NAMCO LTD" to "1 9 8 2" (and the Namco logo - removed from the gfx). The only interesting thing about it is the 4th Z80, used to - simulate the custom 5xXX chips of the original. - It also has different explosion and starfield circuitries, to do without the Namco - custom chips. - -- differences between versions of digdug: - - the background graphics are slightly different in the Atari version, the earth is - less regular. - - - "digdugb" and "digduga1" are identical, apart from the gfx and copyright notices - changed from "NAMCO LTD." to "ATARI INC.". - - - "digdug" is almost identical to "digdugat" (apart from the above changes), but - there are three more instructions in the latter that change the code alignment. - - - "dzigzag" and "digdugb" are identical, apart from the hacked gfx and the copyright - notices changed from "NAMCO LTD." to "1 9 8 2". It's a bottleg of "digdugb", and - not of "digduga1", because the hidden "NAMCO" string at offset 0x1eea of CPU2 is - still present, while it is replaced by "ATARI" in digduga1. - The only interesting thing about the bootleg is the 4th Z80, used to simulate - the custom 5xXX chips of the original. - - -TODO: ----- -- bosco & galaga: - - the starfield is wrong. - - The function of STARCLR is unknown. It is not latched and there are no data bits - used... - -- bosco: is the scrolling tilemap placement correct? It is currently aligned so that - the test grid shown on startup is correct, but this way an unerased grey strip - remains on the left of the screen during the title sequence. - -- Should Xevios have a 4th Z80 like the other bootlegs? We don't have a dump for - that ROM. - -- xevious: I haven't found any Easter egg in service mode. The main loop is very - simple so there might just not be one, though this would be the only Namco game - of that era to not have a service mode Easter egg. On the other hand, the service - mode in this game is VERY spartan when compared to the other Namco games. - -- dzigzag: emulate the 4th CPU (should be similar to battles) - - -***************************************************************************/ - -#include "driver.h" -#include "machine/atari_vg.h" -#include "machine/namcoio.h" -#include "includes/galaga.h" -#include "sound/namco.h" -#include "sound/namco52.h" -#include "sound/namco54.h" -#include "rescap.h" -#include "sound/samples.h" - - -static INTERRUPT_GEN( galaga_cpu3_nmi ) -{ - /* see notes at the top of the driver */ - if (cpu_getiloops() & 1) - nmi_line_pulse(); -} - -static READ8_HANDLER( bosco_dsw_r ) -{ - int bit0,bit1; - - bit0 = (readinputport(3) >> offset) & 1; - bit1 = (readinputport(2) >> offset) & 1; - - return bit0 | (bit1 << 1); -} - -static WRITE8_HANDLER( galaga_flip_screen_w ) -{ - flip_screen_set(data & 1); -} - -static WRITE8_HANDLER( bosco_flip_screen_w ) -{ - flip_screen_set(~data & 1); -} - - -static WRITE8_HANDLER( bosco_latch_w ) -{ - int bit = data & 1; - - switch (offset) - { - case 0x00: /* IRQ1 */ - cpu_interrupt_enable(0,bit); - if (!bit) - cpunum_set_input_line(0, 0, CLEAR_LINE); - break; - - case 0x01: /* IRQ2 */ - cpu_interrupt_enable(1,bit); - if (!bit) - cpunum_set_input_line(1, 0, CLEAR_LINE); - break; - - case 0x02: /* NMION */ - cpu_interrupt_enable(2,!bit); - break; - - case 0x03: /* RESET */ - cpunum_set_input_line(1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - break; - - case 0x04: /* n.c. */ - break; - - case 0x05: /* MOD 0 (xevious: n.c.) */ - case 0x06: /* MOD 1 (xevious: n.c.) */ - case 0x07: /* MOD 2 (xevious: n.c.) */ - break; - } -} - - -static READ8_HANDLER( in0_l ) { return readinputport(0); } // fire and start buttons -static READ8_HANDLER( in0_h ) { return readinputport(0) >> 4; } // coins -static READ8_HANDLER( in1_l ) { return readinputport(1); } // P1 joystick -static READ8_HANDLER( in1_h ) { return readinputport(1) >> 4; } // P2 joystick -static READ8_HANDLER( dipA_l ) { return readinputport(2); } // dips A -static READ8_HANDLER( dipA_h ) { return readinputport(2) >> 4; } // dips A -static READ8_HANDLER( dipB_l ) { return readinputport(3); } // dips B -static READ8_HANDLER( dipB_h ) { return readinputport(3) >> 4; } // dips B -static WRITE8_HANDLER( out_0 ) -{ - set_led_status(1,data & 1); - set_led_status(0,data & 2); - coin_counter_w(1,~data & 4); - coin_counter_w(0,~data & 8); -} -static WRITE8_HANDLER( out_1 ) -{ - coin_lockout_global_w(data & 1); -} - -static struct namcoio_interface intf0 = -{ - { in0_l, in0_h, in1_l, in1_h }, /* port read handlers */ - { out_0, out_1 } /* port write handlers */ -}; -static struct namcoio_interface intf1 = -{ - { dipA_l, dipA_h, dipB_l, dipB_h }, /* port read handlers */ - { NULL, NULL } /* port write handlers */ -}; - - -static MACHINE_RESET( bosco ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - bosco_latch_w(i,0); - - namco_06xx_init(0, 0, - NAMCOIO_51XX, &intf0, - NAMCOIO_NONE, NULL, - NAMCOIO_50XX, NULL, - NAMCOIO_54XX, NULL); - - namco_06xx_init(1, 1, - NAMCOIO_50XX, NULL, - NAMCOIO_52XX, NULL, - NAMCOIO_NONE, NULL, - NAMCOIO_NONE, NULL); -} - -static MACHINE_RESET( galaga ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - bosco_latch_w(i,0); - - namco_06xx_init(0, 0, - NAMCOIO_51XX, &intf0, - NAMCOIO_NONE, NULL, - NAMCOIO_NONE, NULL, - NAMCOIO_54XX, NULL); -} - -static MACHINE_RESET( xevious ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - bosco_latch_w(i,0); - - namco_06xx_init(0, 0, - NAMCOIO_51XX, &intf0, - NAMCOIO_NONE, NULL, - NAMCOIO_50XX, NULL, - NAMCOIO_54XX, NULL); -} - -static MACHINE_RESET( battles ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - bosco_latch_w(i,0); - - battles_customio_init(); -} - -static MACHINE_RESET( digdug ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - bosco_latch_w(i,0); - - namco_06xx_init(0, 0, - NAMCOIO_51XX, &intf0, - NAMCOIO_53XX_DIGDUG, &intf1, - NAMCOIO_NONE, NULL, - NAMCOIO_NONE, NULL); -} - - - -/* the same memory map is used by all three CPUs; all RAM areas are shared */ -static ADDRESS_MAP_START( bosco_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */ - AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r) - AM_RANGE(0x6800, 0x681f) AM_WRITE(pacman_sound_w) AM_BASE(&namco_soundregs) - AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */ - AM_RANGE(0x6830, 0x6830) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x7000, 0x70ff) AM_READWRITE(namco_06xx_0_data_r, namco_06xx_0_data_w) - AM_RANGE(0x7100, 0x7100) AM_READWRITE(namco_06xx_0_ctrl_r, namco_06xx_0_ctrl_w) - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE(1) - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(bosco_videoram_r, bosco_videoram_w) AM_BASE(&bosco_videoram) /* + sprite registers */ - AM_RANGE(0x9000, 0x90ff) AM_READWRITE(namco_06xx_1_data_r, namco_06xx_1_data_w) - AM_RANGE(0x9100, 0x9100) AM_READWRITE(namco_06xx_1_ctrl_r, namco_06xx_1_ctrl_w) - AM_RANGE(0x9800, 0x980f) AM_WRITE(MWA8_RAM) AM_SHARE(2) AM_BASE(&bosco_radarattr) - AM_RANGE(0x9810, 0x9810) AM_WRITE(bosco_scrollx_w) - AM_RANGE(0x9820, 0x9820) AM_WRITE(bosco_scrolly_w) - AM_RANGE(0x9830, 0x9830) AM_WRITE(bosco_starcontrol_w) - AM_RANGE(0x9840, 0x9840) AM_WRITE(bosco_starclr_w) - AM_RANGE(0x9870, 0x9870) AM_WRITE(bosco_flip_screen_w) - AM_RANGE(0x9874, 0x9875) AM_WRITE(bosco_starblink_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( galaga_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */ - AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r) - AM_RANGE(0x6800, 0x681f) AM_WRITE(pacman_sound_w) AM_BASE(&namco_soundregs) - AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */ - AM_RANGE(0x6830, 0x6830) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x7000, 0x70ff) AM_READWRITE(namco_06xx_0_data_r, namco_06xx_0_data_w) - AM_RANGE(0x7100, 0x7100) AM_READWRITE(namco_06xx_0_ctrl_r, namco_06xx_0_ctrl_w) - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(galaga_videoram_r, galaga_videoram_w) AM_BASE(&galaga_videoram) - AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE(1) AM_BASE(&galaga_ram1) - AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE(2) AM_BASE(&galaga_ram2) - AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE(3) AM_BASE(&galaga_ram3) - AM_RANGE(0xa000, 0xa005) AM_WRITE(galaga_starcontrol_w) - AM_RANGE(0xa007, 0xa007) AM_WRITE(galaga_flip_screen_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( xevious_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */ - AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r) - AM_RANGE(0x6800, 0x681f) AM_WRITE(pacman_sound_w) AM_BASE(&namco_soundregs) - AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */ - AM_RANGE(0x6830, 0x6830) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x7000, 0x70ff) AM_READWRITE(namco_06xx_0_data_r, namco_06xx_0_data_w) - AM_RANGE(0x7100, 0x7100) AM_READWRITE(namco_06xx_0_ctrl_r, namco_06xx_0_ctrl_w) - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE(1) /* work RAM */ - AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE(2) AM_BASE(&xevious_sr1) /* work RAM + sprite registers */ - AM_RANGE(0x9000, 0x97ff) AM_RAM AM_SHARE(3) AM_BASE(&xevious_sr2) /* work RAM + sprite registers */ - AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE(4) AM_BASE(&xevious_sr3) /* work RAM + sprite registers */ - AM_RANGE(0xb000, 0xb7ff) AM_READWRITE(xevious_fg_colorram_r, xevious_fg_colorram_w) AM_BASE(&xevious_fg_colorram) - AM_RANGE(0xb800, 0xbfff) AM_READWRITE(xevious_bg_colorram_r, xevious_bg_colorram_w) AM_BASE(&xevious_bg_colorram) - AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(xevious_fg_videoram_r, xevious_fg_videoram_w) AM_BASE(&xevious_fg_videoram) - AM_RANGE(0xc800, 0xcfff) AM_READWRITE(xevious_bg_videoram_r, xevious_bg_videoram_w) AM_BASE(&xevious_bg_videoram) - AM_RANGE(0xd000, 0xd07f) AM_WRITE(xevious_vh_latch_w) - AM_RANGE(0xf000, 0xffff) AM_READWRITE(xevious_bb_r, xevious_bs_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( digdug_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */ - AM_RANGE(0x6800, 0x681f) AM_WRITE(pacman_sound_w) AM_BASE(&namco_soundregs) - AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */ - AM_RANGE(0x6830, 0x6830) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x7000, 0x70ff) AM_READWRITE(namco_06xx_0_data_r, namco_06xx_0_data_w) - AM_RANGE(0x7100, 0x7100) AM_READWRITE(namco_06xx_0_ctrl_r, namco_06xx_0_ctrl_w) - AM_RANGE(0x8000, 0x83ff) AM_READWRITE(digdug_videoram_r, digdug_videoram_w) AM_BASE(&digdug_videoram) /* tilemap RAM (bottom half of RAM 0 */ - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_SHARE(1) /* work RAM (top half for RAM 0 */ - AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE(2) AM_BASE(&digdug_objram) /* work RAM + sprite registers */ - AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE(3) AM_BASE(&digdug_posram) /* work RAM + sprite registers */ - AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE(4) AM_BASE(&digdug_flpram) /* work RAM + sprite registers */ - AM_RANGE(0xa000, 0xa007) AM_READNOP AM_WRITE(digdug_PORT_w) /* video latches (spurious reads when setting latch bits) */ - AM_RANGE(0xb800, 0xb83f) AM_READWRITE(atari_vg_earom_r, atari_vg_earom_w) /* non volatile memory data */ - AM_RANGE(0xb840, 0xb840) AM_WRITE(atari_vg_earom_ctrl_w) /* non volatile memory control */ -ADDRESS_MAP_END - - - -/* bootleg 4th CPU replacing the 5xXX chips */ -static ADDRESS_MAP_START( readmem4_galaga, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x1000, 0x107f) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem4_galaga, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1000, 0x107f) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( readmem4_battles, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4003) AM_READ(battles_input_port_r) - AM_RANGE(0x6000, 0x6000) AM_READ(battles_customio3_r) - AM_RANGE(0x7000, 0x7000) AM_READ(battles_customio_data3_r) - AM_RANGE(0x8000, 0x80ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem4_battles, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4001, 0x4001) AM_WRITE(battles_CPU4_coin_w) - AM_RANGE(0x5000, 0x5000) AM_WRITE(battles_noise_sound_w) - AM_RANGE(0x6000, 0x6000) AM_WRITE(battles_customio3_w) - AM_RANGE(0x7000, 0x7000) AM_WRITE(battles_customio_data3_w) - AM_RANGE(0x8000, 0x80ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( readmem4_dzigzag, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x1000, 0x107f) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x4007) AM_READ(MRA8_RAM) // dip switches? bits 0 & 1 used -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem4_dzigzag, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1000, 0x107f) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( bosco ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x00, "Auto" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Freeze" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x38, 0x08, "Bonus Fighter" ) - PORT_DIPSETTING( 0x30, "15K 50K" ) - PORT_DIPSETTING( 0x38, "20K 70K" ) - PORT_DIPSETTING( 0x08, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "15K 50K 50K" ) - PORT_DIPSETTING( 0x18, "15K 70K 70K" ) - PORT_DIPSETTING( 0x20, "20K 70K 70K" ) - PORT_DIPSETTING( 0x28, "30K 100K 100K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "5" ) -INPUT_PORTS_END - -INPUT_PORTS_START( boscomd ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, "2 Credits Game" ) - PORT_DIPSETTING( 0x00, "1 Player" ) - PORT_DIPSETTING( 0x01, "2 Players" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x00, "Auto" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Freeze" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x38, 0x08, "Bonus Fighter" ) - PORT_DIPSETTING( 0x30, "15K 50K" ) - PORT_DIPSETTING( 0x38, "20K 70K" ) - PORT_DIPSETTING( 0x08, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "15K 50K 50K" ) - PORT_DIPSETTING( 0x18, "15K 70K 70K" ) - PORT_DIPSETTING( 0x20, "20K 70K 70K" ) - PORT_DIPSETTING( 0x28, "30K 100K 100K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "5" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( galaga ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Freeze" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Rack Test" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x38, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x20, "20K 60K 60K" ) - PORT_DIPSETTING( 0x18, "20K 60K" ) - PORT_DIPSETTING( 0x10, "20K 70K 70K" ) - PORT_DIPSETTING( 0x30, "20K 80K 80K" ) - PORT_DIPSETTING( 0x38, "30K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x28, "30K 120K 120K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) -INPUT_PORTS_END - -/* dip switches are slightly different */ -INPUT_PORTS_START( galagamw ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, "2 Credits Game" ) - PORT_DIPSETTING( 0x00, "1 Player" ) - PORT_DIPSETTING( 0x01, "2 Players" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Freeze" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Rack Test" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x38, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x20, "20K 60K 60K" ) - PORT_DIPSETTING( 0x18, "20K 60K" ) - PORT_DIPSETTING( 0x10, "20K 70K 70K" ) - PORT_DIPSETTING( 0x30, "20K 80K 80K" ) - PORT_DIPSETTING( 0x38, "30K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x28, "30K 120K 120K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) -INPUT_PORTS_END - - -/* the same as galaga but with vertical movement */ -INPUT_PORTS_START( gatsbee ) - PORT_INCLUDE( galaga ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( xevious ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 40K 40K" ) - PORT_DIPSETTING( 0x14, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 50K 50K" ) - PORT_DIPSETTING( 0x1c, "20K 60K 60K" ) - PORT_DIPSETTING( 0x0c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x08, "20K 80K 80K" ) - PORT_DIPSETTING( 0x04, "20K 60K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - /* Bonus scores for 5 lives - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 50K 50K" ) - PORT_DIPSETTING( 0x14, "20K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 60K 60K" ) - PORT_DIPSETTING( 0x1c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x0c, "20K 80K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x04, "20K 80K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - */ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x60, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_DIPNAME( 0x02, 0x02, "Flags Award Bonus Life" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/* same as xevious but different "Coin B" Dip Switch and "Copyright" Dip Switch instead of "Freeze" */ -INPUT_PORTS_START( xeviousa ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 40K 40K" ) - PORT_DIPSETTING( 0x14, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 50K 50K" ) - PORT_DIPSETTING( 0x1c, "20K 60K 60K" ) - PORT_DIPSETTING( 0x0c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x08, "20K 80K 80K" ) - PORT_DIPSETTING( 0x04, "20K 60K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - /* Bonus scores for 5 lives - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 50K 50K" ) - PORT_DIPSETTING( 0x14, "20K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 60K 60K" ) - PORT_DIPSETTING( 0x1c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x0c, "20K 80K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x04, "20K 80K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - */ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x60, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_DIPNAME( 0x02, 0x02, "Flags Award Bonus Life" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - /* when switch is on Namco, high score names are 10 letters long */ - PORT_DIPNAME( 0x80, 0x80, "Copyright" ) - PORT_DIPSETTING( 0x00, "Namco" ) - PORT_DIPSETTING( 0x80, "Atari/Namco" ) -INPUT_PORTS_END - -/* same as xevious but "Copyright" Dip Switch instead of "Freeze" */ -INPUT_PORTS_START( xeviousb ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 40K 40K" ) - PORT_DIPSETTING( 0x14, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 50K 50K" ) - PORT_DIPSETTING( 0x1c, "20K 60K 60K" ) - PORT_DIPSETTING( 0x0c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x08, "20K 80K 80K" ) - PORT_DIPSETTING( 0x04, "20K 60K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - /* Bonus scores for 5 lives - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 50K 50K" ) - PORT_DIPSETTING( 0x14, "20K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 60K 60K" ) - PORT_DIPSETTING( 0x1c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x0c, "20K 80K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x04, "20K 80K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - */ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x60, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_DIPNAME( 0x02, 0x02, "Flags Award Bonus Life" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - /* when switch is on Namco, high score names are 10 letters long */ - PORT_DIPNAME( 0x80, 0x80, "Copyright" ) - PORT_DIPSETTING( 0x00, "Namco" ) - PORT_DIPSETTING( 0x80, "Atari/Namco" ) -INPUT_PORTS_END - -/* same as xevious but different "Coin B" Dip Switch and inverted "Freeze" Dip Switch */ -INPUT_PORTS_START( sxevious ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 40K 40K" ) - PORT_DIPSETTING( 0x14, "10K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 50K 50K" ) - PORT_DIPSETTING( 0x1c, "20K 60K 60K" ) - PORT_DIPSETTING( 0x0c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x08, "20K 80K 80K" ) - PORT_DIPSETTING( 0x04, "20K 60K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - /* Bonus scores for 5 lives - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10K 50K 50K" ) - PORT_DIPSETTING( 0x14, "20K 50K 50K" ) - PORT_DIPSETTING( 0x10, "20K 60K 60K" ) - PORT_DIPSETTING( 0x1c, "20K 70K 70K" ) - PORT_DIPSETTING( 0x0c, "20K 80K 80K" ) - PORT_DIPSETTING( 0x08, "30K 100K 100K" ) - PORT_DIPSETTING( 0x04, "20K 80K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - */ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x60, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_START /* DSW B */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_DIPNAME( 0x02, 0x02, "Flags Award Bonus Life" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, "Freeze" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( digdug ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_7C ) ) - /* TODO: bonus scores are different for 5 lives */ - PORT_DIPNAME( 0x38, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x20, "10k 40k 40k" ) - PORT_DIPSETTING( 0x10, "10k 50k 50k" ) - PORT_DIPSETTING( 0x30, "20k 60k 60k" ) - PORT_DIPSETTING( 0x08, "20k 70k 70k" ) - PORT_DIPSETTING( 0x28, "10k 40k" ) - PORT_DIPSETTING( 0x18, "20k 60k" ) - PORT_DIPSETTING( 0x38, "10k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0xc0, "5" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x20, 0x20, "Freeze" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout_2bpp = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 -}; - -static const gfx_layout charlayout_xevious = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_layout charlayout_digdug = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { 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 -}; - -static const gfx_layout bgcharlayout = -{ - 8,8, - RGN_FRAC(1,2), - 2, - { 0, RGN_FRAC(1,2) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_layout spritelayout_bosco = -{ - 16,16, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 -}; - -static const gfx_layout spritelayout_galaga = -{ - 16,16, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 0, 1, 2, 3, 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 -}; - -static const gfx_layout spritelayout_xevious = -{ - 16,16, - RGN_FRAC(1,2), - 3, - { RGN_FRAC(1,2)+4, 0, 4 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 -}; - -static const gfx_layout dotlayout = -{ - 4,4, - 8, - 3, /* 2 bits color + 1 bit transparency */ - { 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8 }, - { 0*32, 1*32, 2*32, 3*32 }, - 16*8 -}; - -static const gfx_decode gfxdecodeinfo_bosco[] = -{ - { REGION_GFX1, 0, &charlayout_2bpp, 0, 64 }, - { REGION_GFX2, 0, &spritelayout_bosco, 64*4, 64 }, - { REGION_GFX3, 0, &dotlayout, 64*4+64*4, 1 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_galaga[] = -{ - { REGION_GFX1, 0, &charlayout_2bpp, 0, 64 }, - { REGION_GFX2, 0, &spritelayout_galaga, 64*4, 64 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_xevious[] = -{ - { REGION_GFX1, 0, &charlayout_xevious, 128*4+64*8, 64 }, - { REGION_GFX2, 0, &bgcharlayout, 0, 128 }, - { REGION_GFX3, 0, &spritelayout_xevious, 128*4, 64 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_digdug[] = -{ - { REGION_GFX1, 0, &charlayout_digdug, 0, 16 }, - { REGION_GFX2, 0, &spritelayout_galaga, 16*2, 64 }, - { REGION_GFX3, 0, &charlayout_2bpp, 64*4 + 16*2, 64 }, - { -1 } /* end of array */ -}; - - -/* The resistance path of the namco sound is 16k compared to - * the 10k of the highest gain 54xx filter. Giving a 10/16 gain. - */ -static struct namco_interface namco_interface = -{ - 3, /* number of voices */ - REGION_SOUND1 /* memory region */ -}; - -/* Only used by bosco. After filtering the 4V 52xx output, - * the signal is 1V, or 25%. The relative volume between - * 52xx & 54xx is the same. - */ -static struct namco_52xx_interface namco_52xx_interface = -{ - REGION_SOUND2, /* memory region */ - 4000, /* Playback frequency - from 555 timer 6M */ - 80, /* High pass filter fc */ - 0.3, /* High pass filter Q */ - 2400, /* Low pass filter fc */ - 0.9, /* Low pass filter Q */ - .25 /* Combined gain of both filters */ -}; - -static struct namco_54xx_interface namco_54xx_interface = -{ - { RES_K(150), RES_K(47), RES_K(100) }, /* R42, R33, R24 */ - { RES_K(22), RES_K(10), RES_K(22) }, /* R41, R34, R23 */ - { RES_K(470), RES_K(150), RES_K(220) }, /* R40, R35, R22 */ - { RES_K(10), RES_K(33), RES_K(33)}, /* R37, R36, R21 */ - { CAP_U(.01), CAP_U(.01), CAP_U(.001) }, /* C27, C29, C31 */ - { CAP_U(.01), CAP_U(.01), CAP_U(.001) }, /* C26, C28, C30 */ -}; - -static const char *bosco_sample_names[] = -{ - "*bosco", - "shot.wav", - 0 /* end of array */ -}; - -static struct Samplesinterface samples_interface_bosco = -{ - 1, /* 3 channel1 */ - bosco_sample_names -}; - -static const char *battles_sample_names[] = -{ - "*battles", - "explo1.wav", /* ground target explosion */ - "explo2.wav", /* Solvalou explosion */ - 0 /* end of array */ -}; - -struct Samplesinterface samples_interface_battles = -{ - 1, /* one channel */ - battles_sample_names -}; - - - -static MACHINE_DRIVER_START( bosco ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(bosco_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(bosco_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(bosco_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,2) /* 64V */ - - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ - MDRV_MACHINE_RESET(bosco) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_bosco) - MDRV_PALETTE_LENGTH(32+64) - MDRV_COLORTABLE_LENGTH(64*4+64*4+8) - - MDRV_PALETTE_INIT(bosco) - MDRV_VIDEO_START(bosco) - MDRV_VIDEO_UPDATE(bosco) - MDRV_VIDEO_EOF(bosco) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO, 18432000/6/32) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0) - - MDRV_SOUND_ADD(NAMCO_52XX, 18432000/12) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_52xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(NAMCO_54XX, 18432000/12) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_54xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface_bosco) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.95) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( galaga ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(galaga_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(galaga_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(galaga_map,0) - MDRV_CPU_VBLANK_INT(galaga_cpu3_nmi,4) /* 64V (see notes at the top of the driver) */ - - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ - MDRV_MACHINE_RESET(galaga) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_galaga) - MDRV_PALETTE_LENGTH(32+64) - MDRV_COLORTABLE_LENGTH(64*4+64*4) - - MDRV_PALETTE_INIT(galaga) - MDRV_VIDEO_START(galaga) - MDRV_VIDEO_UPDATE(galaga) - MDRV_VIDEO_EOF(galaga) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO, 18432000/6/32) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0) - - MDRV_SOUND_ADD(NAMCO_54XX, 18432000/12) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_54xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( galagab ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(galaga) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem4_galaga,writemem4_galaga) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( xevious ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(xevious_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(xevious_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(xevious_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,2) /* 64V */ - - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1000) /* 1000 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ - MDRV_MACHINE_RESET(xevious) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_xevious) - MDRV_PALETTE_LENGTH(128+1) - MDRV_COLORTABLE_LENGTH(128*4+64*8+64*2) - - MDRV_PALETTE_INIT(xevious) - MDRV_VIDEO_START(xevious) - MDRV_VIDEO_UPDATE(xevious) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO, 18432000/6/32) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0) - - MDRV_SOUND_ADD_TAG("54xx", NAMCO_54XX, 18432000/12) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_54xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( battles ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( xevious ) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem4_battles,writemem4_battles) - MDRV_CPU_VBLANK_INT(battles_interrupt_4,1) - - MDRV_MACHINE_RESET(battles) - - /* video hardware */ - MDRV_PALETTE_INIT(battles) - - /* sound hardware */ - MDRV_SOUND_REMOVE("54xx") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface_battles) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( digdug ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(digdug_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(digdug_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(digdug_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,2) /* 64V */ - - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ - MDRV_MACHINE_RESET(digdug) - MDRV_NVRAM_HANDLER(atari_vg) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_digdug) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(16*2+64*4+64*4) - - MDRV_PALETTE_INIT(digdug) - MDRV_VIDEO_START(digdug) - MDRV_VIDEO_UPDATE(digdug) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO, 18432000/6/32) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90 * 10.0 / 16.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dzigzag ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(digdug) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem4_dzigzag,writemem4_dzigzag) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( bosco ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "bos3_1.bin", 0x0000, 0x1000, CRC(96021267) SHA1(bd49b0caabcccf9df45a272d767456a4fc8a7c07) ) - ROM_LOAD( "bos1_2.bin", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) ) - ROM_LOAD( "bos1_3.bin", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) ) - ROM_LOAD( "bos1_4b.bin", 0x3000, 0x1000, CRC(a3f7f4ab) SHA1(eb26184311bae0767c7a5593926e6eadcbcb680e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "bos1_5c.bin", 0x0000, 0x1000, CRC(a7c8e432) SHA1(3607be75daa10f1f98dbfd9e600c5ba513130d44) ) - ROM_LOAD( "bos3_6.bin", 0x1000, 0x1000, CRC(4543cf82) SHA1(50ad7d1ab6694eb8fab88d0fa79ee04f6984f3ca) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */ - - ROM_REGION( 0x0160, REGION_PROMS, 0 ) - ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */ - ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */ - ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */ - ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) ) - ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_SOUND2, 0 ) /* ROMs for digitised speech */ - ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) ) - ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) ) - ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) ) -ROM_END - -ROM_START( boscoo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "bos1_1.bin", 0x0000, 0x1000, CRC(0d9920e7) SHA1(e7633233f603ccb5b7a970ed5b58ef361ef2c94e) ) - ROM_LOAD( "bos1_2.bin", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) ) - ROM_LOAD( "bos1_3.bin", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) ) - ROM_LOAD( "bos1_4b.bin", 0x3000, 0x1000, CRC(a3f7f4ab) SHA1(eb26184311bae0767c7a5593926e6eadcbcb680e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "bos1_5c.bin", 0x0000, 0x1000, CRC(a7c8e432) SHA1(3607be75daa10f1f98dbfd9e600c5ba513130d44) ) - ROM_LOAD( "2800.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */ - - ROM_REGION( 0x0260, REGION_PROMS, 0 ) - ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */ - ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */ - ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */ - ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) ) - ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_SOUND2, 0 ) /* ROMs for digitised speech */ - ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) ) - ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) ) - ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) ) -ROM_END - -ROM_START( boscoo2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "bos1_1.bin", 0x0000, 0x1000, CRC(0d9920e7) SHA1(e7633233f603ccb5b7a970ed5b58ef361ef2c94e) ) - ROM_LOAD( "bos1_2.bin", 0x1000, 0x1000, CRC(2d8f3ebe) SHA1(75de1cba7531ae4bf7fbbef7b8e37b9fec4ed0d0) ) - ROM_LOAD( "bos1_3.bin", 0x2000, 0x1000, CRC(c80ccfa5) SHA1(f2bbec2ea9846d4601f06c0b4242744447a88fda) ) - ROM_LOAD( "bos1_4.3k", 0x3000, 0x1000, CRC(7ebea2b8) SHA1(92fc66526ed77f3efd947b7d321b255aba4a0140) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "bos1_5b.3j", 0x0000, 0x1000, CRC(3d6955a8) SHA1(f89860d74865da5ced2f5b2196bdaa8eeb5e2322) ) - ROM_LOAD( "2800.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */ - - ROM_REGION( 0x0260, REGION_PROMS, 0 ) - ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */ - ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */ - ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */ - ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) ) - ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_SOUND2, 0 ) /* ROMs for digitised speech */ - ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) ) - ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) ) - ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) ) -ROM_END - -ROM_START( boscomd ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "3n", 0x0000, 0x1000, CRC(441b501a) SHA1(7b4921ff40b3c56950fd32aa0ec5563b02a00929) ) - ROM_LOAD( "3m", 0x1000, 0x1000, CRC(a3c5c7ef) SHA1(70a095a8dbca857245a70404f803916f519e0cbc) ) - ROM_LOAD( "3l", 0x2000, 0x1000, CRC(6ca9a0cf) SHA1(8f70e29beae921e63cd65689a618ca678dd14614) ) - ROM_LOAD( "3k", 0x3000, 0x1000, CRC(d83bacc5) SHA1(cf2fbfa81dabb9b6bcf436d61992e705723776fb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "3j", 0x0000, 0x1000, CRC(4374e39a) SHA1(7571fd5961f49a0e9ba4301ddd0aca52e94e2f8b) ) - ROM_LOAD( "3h", 0x1000, 0x1000, CRC(04e9fcef) SHA1(2115a9718d511854848704e2693f9efa1c80a307) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */ - - ROM_REGION( 0x0260, REGION_PROMS, 0 ) - ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */ - ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */ - ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */ - ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) ) - ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_SOUND2, 0 ) /* ROMs for digitised speech */ - ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) ) - ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) ) - ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) ) -ROM_END - -ROM_START( boscomdo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "2300.3n", 0x0000, 0x1000, CRC(db6128b0) SHA1(ddd285f7e00d5e58ab9b15838528e0020d47fcd2) ) - ROM_LOAD( "2400.3m", 0x1000, 0x1000, CRC(86907614) SHA1(3295ab6c5171a069875c2239b3325296c1df6031) ) - ROM_LOAD( "2500.3l", 0x2000, 0x1000, CRC(a21fae11) SHA1(dff38d90ee30558274d2d399edc3281c2ef5cb69) ) - ROM_LOAD( "2600.3k", 0x3000, 0x1000, CRC(11d6ae23) SHA1(f2f72f5c777b684f7ffd53b9c034560211113499) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "2700.3j", 0x0000, 0x1000, CRC(7254e65e) SHA1(c2ee29fcb5173e8d46a80a8a1b931a53dbdeae66) ) - ROM_LOAD( "2800.3h", 0x1000, 0x1000, CRC(31b8c648) SHA1(de0db24d385d2361ec989bf32388df8202ad535c) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "2900.3e", 0x0000, 0x1000, CRC(d45a4911) SHA1(547236adca9174f5cc0ec05b9649618bb92ba630) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5300.5d", 0x0000, 0x1000, CRC(a956d3c5) SHA1(c5a9d7b1f9b4acda8fb9762414e085cb5fb80c9e) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5200.5e", 0x0000, 0x1000, CRC(e869219c) SHA1(425614cd0642743a82ef9c1aada29774a92203ea) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "prom.2d", 0x0000, 0x0100, CRC(9b69b543) SHA1(47af3f67e50794e839b74fe61197af2228084efd) ) /* dots */ - - ROM_REGION( 0x0260, REGION_PROMS, 0 ) - ROM_LOAD( "bosco.6b", 0x0000, 0x0020, CRC(d2b96fb0) SHA1(54c100ec9d173d7dd48a453ebed5f625053cb6e0) ) /* palette */ - ROM_LOAD( "bosco.4m", 0x0020, 0x0100, CRC(4e15d59c) SHA1(3542ead6421d169c3569e121ec2be304e108787c) ) /* lookup table */ - ROM_LOAD( "prom.2r", 0x0120, 0x0020, CRC(b88d5ba9) SHA1(7b97a38a540b7ca4b7d9ae338ec38b9b1a337846) ) /* video layout (not used) */ - ROM_LOAD( "prom.7h", 0x0140, 0x0020, CRC(87d61353) SHA1(c7493e52662c921625676a4a4e8cf4371bd938b7) ) /* video timing (not used) */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom.1d", 0x0000, 0x0100, CRC(de2316c6) SHA1(0e55c56046331888d1d3f0d9823d2ceb203e7d3f) ) - ROM_LOAD( "prom.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_SOUND2, 0 ) /* ROMs for digitised speech */ - ROM_LOAD( "4900.5n", 0x0000, 0x1000, CRC(09acc978) SHA1(2b264aaeb6eba70ad91593413dca733990e5467b) ) - ROM_LOAD( "5000.5m", 0x1000, 0x1000, CRC(e571e959) SHA1(9c81d7bec73bc605f7dd9a089171b0f34c4bb09a) ) - ROM_LOAD( "5100.5l", 0x2000, 0x1000, CRC(17ac9511) SHA1(266f3fae90d2fe38d109096d352863a52b379899) ) -ROM_END - - - -ROM_START( galaga ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "gg1-1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) ) - ROM_LOAD( "gg1-2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) ) - ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) - ROM_LOAD( "gg1-4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "gg1-5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "gg1-7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( galagao ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) - ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) ) - ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) - ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( galagamw ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) - ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) - ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) - ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( galagamf ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) ) - ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) ) - ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) - ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( galagamk ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "mk2-1", 0x0000, 0x1000, CRC(23cea1e2) SHA1(18db33ade0ca6e47cc48aa151d2ccbb4646e3ae3) ) - ROM_LOAD( "mk2-2", 0x1000, 0x1000, CRC(89695b1a) SHA1(fda5557018884e903f855bf3b69a25d75ed8a767) ) - ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) ) - ROM_LOAD( "mk2-4", 0x3000, 0x1000, CRC(24b767f5) SHA1(d4c03e2ed582cfa7f8168ac352f790ef7af54cb8) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "gg1-7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( gallag ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) ) - ROM_LOAD( "gallag.2", 0x1000, 0x1000, CRC(5eda60a7) SHA1(853d7b974dd04abd7af3a8ba2681dfabce4dce18) ) - ROM_LOAD( "gg1-3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) ) - ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ - ROM_LOAD( "gallag.6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gallag.8", 0x0000, 0x1000, CRC(169a98a4) SHA1(edbeb11076061e744ea88d9899dbdfe0964c7e78) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1-11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) ) - ROM_LOAD( "gg1-10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( gatsbee ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "1.4b", 0x0000, 0x1000, CRC(9fb8e28b) SHA1(7171e3fb37b0d6cc8f7a023c1775080d5986de99) ) - ROM_LOAD( "2.4c", 0x1000, 0x1000, CRC(bf6cb840) SHA1(5763140d32d35a38cdcb49e6de1fd5b07a9e8cc2) ) - ROM_LOAD( "3.4d", 0x2000, 0x1000, CRC(3604e2dd) SHA1(1736cf8497f7ac28e92ca94fa137c144353dc192) ) - ROM_LOAD( "4.4e", 0x3000, 0x1000, CRC(bf9f613b) SHA1(41c852fc77f0f35bf48a5b81a19234ed99871c89) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) ) // 5.4j - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) ) // 7.4k - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ - ROM_LOAD( "gallag.6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8.5r", 0x0000, 0x2000, CRC(b324f650) SHA1(7bcb254f7cf03bd84291b9fdc27b8962b3e12aa4) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "9.6a", 0x0000, 0x1000, CRC(22e339d5) SHA1(9ac2887ede802d28daa4ad0a0a54bcf7b1155a2e) ) - ROM_LOAD( "10.7a", 0x1000, 0x1000, CRC(60dcf940) SHA1(6530aa5b4afef4a8422ece76a93d0c5b1d93355e) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) ) /* palette */ - ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) ) /* char lookup table */ - ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) ) /* sprite lookup table */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) - ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - - - -ROM_START( xevious ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) ) - ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) ) - ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) - ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) - ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( xeviousa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "xea-1m-a.bin", 0x0000, 0x2000, CRC(8c2b50ec) SHA1(f770873b711d838556dde67a8aac8a7f572fcc5b) ) - ROM_LOAD( "xea-1l-a.bin", 0x2000, 0x2000, CRC(0821642b) SHA1(c6c322c61d0985a2ac59f5e92d4e351107afb9eb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "xea-4c-a.bin", 0x0000, 0x2000, CRC(14d8fa03) SHA1(e8114141394adda86184b146f2497cfeef7fc2eb) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( xeviousb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "1m.bin", 0x0000, 0x2000, CRC(e82a22f6) SHA1(6fd09a7fb263cda3d5268cc6d7bfe71a57ac4b47) ) - ROM_LOAD( "1l.bin", 0x2000, 0x2000, CRC(13831df9) SHA1(a7892d1d98868a83a5d1092976873b82577e9e94) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "4c.bin", 0x0000, 0x2000, CRC(827e7747) SHA1(d22645d71b164613834336e26e6942506a0e7eaa) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( xeviousc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "xvi_u_.3p", 0x0000, 0x1000, CRC(7b203868) SHA1(3bafaa42bccddfaf8d9197e93416a731b7f8fb94) ) - ROM_LOAD( "xv_2-2.3m", 0x1000, 0x1000, CRC(b6fe738e) SHA1(23cdf1f2c2642f9bc3f843b5c338372027032380) ) - ROM_LOAD( "xv_2-3.2m", 0x2000, 0x1000, CRC(dbd52ff5) SHA1(eb42393720fc1fd4a1f6cdba87ac4177fd5827fe) ) - ROM_LOAD( "xvi_u_.2l", 0x3000, 0x1000, CRC(ad12af53) SHA1(ff3a96d6f7357fb2d33cd9d77d53477b9071ffc9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "xv2_5.3f", 0x0000, 0x1000, CRC(f8cc2861) SHA1(9b02c00cff6c771d46776416295f9e12a2166cc5) ) - ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( xevios ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "4.7h", 0x0000, 0x1000, CRC(1f8ca4c0) SHA1(9fdaa2e0016c07e274544f8334778fe81b8344a5) ) - ROM_LOAD( "5.6h", 0x1000, 0x1000, CRC(2e47ce8f) SHA1(fb35dd086e98279a5f17036f624ef5294c777d84) ) - ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) ) - ROM_LOAD( "w7.4h", 0x3000, 0x1000, CRC(17f48277) SHA1(ffe590acf07985355ef91fbe0fc3dcf6e8fd62fd) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) ) - ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "16.8d", 0x5000, 0x2000, CRC(44262c04) SHA1(4291f83193d11064c2ba6a9af27951b93bb945c3) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "10.1d", 0x0000, 0x1000, CRC(10baeebb) SHA1(c544c9e0bb7a1ef93b3f2c2c1397f659d5334373) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "12.3d", 0x3000, 0x1000, CRC(51a4e83b) SHA1(fbf3b1e47b75c5e0b297ee2cd6597b1dfd80bc6f) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ - - ROM_REGION( 0x3000, REGION_USER1, 0 ) - /* extra ROMs (function unknown, could be emulation of the custom I/O */ - /* chip with a Z80): */ - ROM_LOAD( "1.16j", 0x0000, 0x1000, CRC(2618f0ce) SHA1(54e8644b5609d6f6ec717a7469c76901eb79f26e) ) - ROM_LOAD( "2.17b", 0x1000, 0x2000, CRC(de359fac) SHA1(a55df9984bfffafeadae8a5a63b07f1fa9c5eebf) ) -ROM_END - -ROM_START( battles ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "b_1.bin", 0x0000, 0x2000, CRC(b6e4f4f3) SHA1(ceaaa63b50e75dcb05aeb68574336dfe56a8434a) ) - ROM_LOAD( "b_2.bin", 0x2000, 0x2000, CRC(47017bc8) SHA1(0da73ae079fb6a64eed56197e2c88609ef34166c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "b_3.bin", 0x0000, 0x2000, CRC(0ede5706) SHA1(65b235c5abe487612e11d0235410f1ca59b06e95) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the CUSTOM I/O Emulation CPU */ - ROM_LOAD( "b_5.bin", 0x0000, 0x1000, CRC(23107dfb) SHA1(74c49a5648faab632ae5ed8dd18a1d8b39837e2d) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b_9.bin", 0x0000, 0x1000, CRC(5bd6e9ae) SHA1(f16c7eec39fce856c775b2b81ab55fb42376850e) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b_10.bin", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) ) /* bg pattern B0 */ - ROM_LOAD( "b_11.bin", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "b_-bpr.bin", 0x0300, 0x0400, CRC(d2d208b1) SHA1(6c8d29912c03ee93759e24085bc66ab738768bcc) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "b_6bpr.bin", 0x0700, 0x0400, CRC(0260c041) SHA1(1a7516e8b18ffdd9789eec8b834c17b3ba312afe) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "b_4bpr.bin", 0x0b00, 0x0400, CRC(33764974) SHA1(567b048b8a93e30090ccee4f6aadc0353524d8d1) ) /* sprite lookup table low bits */ - ROM_LOAD( "b_5bpr.bin", 0x0f00, 0x0400, CRC(43674c7e) SHA1(94c19a9da81839cb1dfde3f11b2fd82ffe45efb9) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( sxevious ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the first CPU */ - ROM_LOAD( "cpu_3p.rom", 0x0000, 0x1000, CRC(1c8d27d5) SHA1(2c41303d8c74acb5840295a4b460a39a9a8e21bb) ) - ROM_LOAD( "cpu_3m.rom", 0x1000, 0x1000, CRC(fd04e615) SHA1(7169e7f3bd1e9cfae9671b89f2a45f56b968e1ff) ) - ROM_LOAD( "cpu_2m.rom", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) ) - ROM_LOAD( "cpu_2l.rom", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "cpu_3f.rom", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) ) - ROM_LOAD( "cpu_3j.rom", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) ) /* foreground characters */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) ) /* bg pattern B0 */ - ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) ) /* bg pattern B1 */ - - ROM_REGION( 0xa000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) ) /* sprite set #1, planes 0/1 */ - ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) ) /* sprite set #2, planes 0/1 */ - ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) ) /* sprite set #3, planes 0/1 */ - ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) ) /* sprite set #1, plane 2, set #2, plane 2 */ - /* 0x7000-0x8fff will be unpacked from 0x5000-0x6fff */ - ROM_FILL( 0x9000, 0x1000, 0x00 ) // empty space to decode sprite set #3 as 3 bits per pixel - - ROM_REGION( 0x4000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) ) - ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) ) - ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "xvi_8bpr.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) ) /* palette red component */ - ROM_LOAD( "xvi_9bpr.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) ) /* palette green component */ - ROM_LOAD( "xvi10bpr.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) ) /* palette blue component */ - ROM_LOAD( "xvi_7bpr.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) ) /* bg tiles lookup table low bits */ - ROM_LOAD( "xvi_6bpr.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) ) /* bg tiles lookup table high bits */ - ROM_LOAD( "xvi_4bpr.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) ) /* sprite lookup table low bits */ - ROM_LOAD( "xvi_5bpr.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) ) /* sprite lookup table high bits */ - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound PROMs */ - ROM_LOAD( "xvi_2bpr.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) ) - ROM_LOAD( "xvi_1bpr.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - - - -ROM_START( digdug ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "dd1a.1", 0x0000, 0x1000, CRC(a80ec984) SHA1(86689980410b9429cd7582c7a76342721c87d030) ) - ROM_LOAD( "dd1a.2", 0x1000, 0x1000, CRC(559f00bd) SHA1(fde17785df21956d6fd06bcfe675c392dadb1524) ) - ROM_LOAD( "dd1a.3", 0x2000, 0x1000, CRC(8cbc6fe1) SHA1(57b8a5777f8bb9773caf0cafe5408c8b9768cb25) ) - ROM_LOAD( "dd1a.4", 0x3000, 0x1000, CRC(d066f830) SHA1(b0a615fe4a5c8742c1e4ef234ef34c369d2723b9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "dd1a.5", 0x0000, 0x1000, CRC(6687933b) SHA1(c16144de7633595ddc1450ddce379f48e7b2195a) ) - ROM_LOAD( "dd1a.6", 0x1000, 0x1000, CRC(843d857f) SHA1(89b2ead7e478e119d33bfd67376cdf28f83de67a) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dd1.9", 0x0000, 0x0800, CRC(f14a6fe1) SHA1(0aa63300c2cb887196de590aceb98f3cf06fead4) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) ) - ROM_LOAD( "dd1.14", 0x1000, 0x1000, CRC(2829ec99) SHA1(3e435c1afb2e44487cd7ba28a93ada2e5ccbb86d) ) - ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) ) - ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) ) - - ROM_REGION( 0x1000, REGION_GFX4, 0 ) /* 4k for the playfield graphics */ - ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) ) - ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) ) - ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( digdugb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "136007.101", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) ) - ROM_LOAD( "136007.102", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) ) - ROM_LOAD( "136007.103", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) ) - ROM_LOAD( "dd1.4b", 0x3000, 0x1000, CRC(f4cebc16) SHA1(19b568f92069a1cfe1c07287408efe3b0e253375) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "dd1.5b", 0x0000, 0x1000, CRC(370ef9b4) SHA1(746b1fa15f5f2cfd69d8b5a7d6fb8c770abc3b4d) ) - ROM_LOAD( "dd1.6b", 0x1000, 0x1000, CRC(361eeb71) SHA1(372c97c666411c3590d790213ae6fa1ccb5ffa1c) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dd1.9", 0x0000, 0x0800, CRC(f14a6fe1) SHA1(0aa63300c2cb887196de590aceb98f3cf06fead4) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) ) - ROM_LOAD( "dd1.14", 0x1000, 0x1000, CRC(2829ec99) SHA1(3e435c1afb2e44487cd7ba28a93ada2e5ccbb86d) ) - ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) ) - ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) ) - - ROM_REGION( 0x1000, REGION_GFX4, 0 ) /* 4k for the playfield graphics */ - ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) ) - ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) ) - ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( digdugat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "136007.201", 0x0000, 0x1000, CRC(23d0b1a4) SHA1(a118d55e03a9ccf069f37c7bac2c9044dccd1f5e) ) - ROM_LOAD( "136007.202", 0x1000, 0x1000, CRC(5453dc1f) SHA1(8be091dd53e9b44e80e1ac9b1751efbe832db78d) ) - ROM_LOAD( "136007.203", 0x2000, 0x1000, CRC(c9077dfa) SHA1(611b3e1b575a51639530917366557773534c80aa) ) - ROM_LOAD( "136007.204", 0x3000, 0x1000, CRC(a8fc8eac) SHA1(7a24197f4ec5989bc4d635b27b6578f4d62cb5f4) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "136007.205", 0x0000, 0x1000, CRC(5ba385c5) SHA1(f4577bddff74a14b13b212f5553fa13fe9ae4bcc) ) - ROM_LOAD( "136007.206", 0x1000, 0x1000, CRC(382b4011) SHA1(2b79ddcf48177c99b5fa1f957374f4baa2bec143) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.108", 0x0000, 0x0800, CRC(3d24a3af) SHA1(857ae93e2a41258a129dcecbaed2df359540b735) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) ) - ROM_LOAD( "136007.117", 0x1000, 0x1000, CRC(a3bbfd85) SHA1(2105455762e0de120f2d943f9010a7d06c6b6448) ) - ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) ) - ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.115", 0x0000, 0x1000, CRC(754539be) SHA1(466ae754eb4721df8814d4d33a31d867507d45b3) ) - - ROM_REGION( 0x1000, REGION_GFX4, 0 ) /* 4k for the playfield graphics */ - ROM_LOAD( "136007.114", 0x0000, 0x1000, CRC(d6822397) SHA1(055ca6514141323f1e6dfcf91451507c04114d41) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) ) - ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) ) - ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( digduga1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "136007.101", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) ) - ROM_LOAD( "136007.102", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) ) - ROM_LOAD( "136007.103", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) ) - ROM_LOAD( "136007.104", 0x3000, 0x1000, CRC(b3ad42c3) SHA1(83ea80f0dd42ec1cb62e6ed45d5dda43ed21f567) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "136007.105", 0x0000, 0x1000, CRC(0a2aef4a) SHA1(ef40974fde8e8c305059e1dd03ea811a6aaca737) ) - ROM_LOAD( "136007.106", 0x1000, 0x1000, CRC(a2876d6e) SHA1(08e8ac50918ae32dd6fb34e65534652beb0395b2) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.108", 0x0000, 0x0800, CRC(3d24a3af) SHA1(857ae93e2a41258a129dcecbaed2df359540b735) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) ) - ROM_LOAD( "136007.117", 0x1000, 0x1000, CRC(a3bbfd85) SHA1(2105455762e0de120f2d943f9010a7d06c6b6448) ) - ROM_LOAD( "136007.118", 0x2000, 0x1000, CRC(458499e9) SHA1(578bd839f9218c3cf4feee1223a461144e455df8) ) - ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.115", 0x0000, 0x1000, CRC(754539be) SHA1(466ae754eb4721df8814d4d33a31d867507d45b3) ) - - ROM_REGION( 0x1000, REGION_GFX4, 0 ) /* 4k for the playfield graphics */ - ROM_LOAD( "136007.114", 0x0000, 0x1000, CRC(d6822397) SHA1(055ca6514141323f1e6dfcf91451507c04114d41) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) ) - ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) ) - ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - -ROM_START( dzigzag ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code for the first CPU */ - ROM_LOAD( "136007.101", 0x0000, 0x1000, CRC(b9198079) SHA1(1d3fe04020f584ed250e32fdc6f6a3b769342884) ) - ROM_LOAD( "136007.102", 0x1000, 0x1000, CRC(b2acbe49) SHA1(c8f713e8cfa70d3bc64d3002ff7bffc65ee138e2) ) - ROM_LOAD( "136007.103", 0x2000, 0x1000, CRC(d6407b49) SHA1(0e71a8f02778286488865e20439776dbb2a8ec78) ) - ROM_LOAD( "zigzag4", 0x3000, 0x1000, CRC(da20d2f6) SHA1(4eafe5ee917060d01d9df92d678c455edbbf27a6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "zigzag5", 0x0000, 0x2000, CRC(f803c748) SHA1(a4c7dde0b794366cbfd03f339de980a6575a42fc) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the third CPU */ - ROM_LOAD( "136007.107", 0x0000, 0x1000, CRC(a41bce72) SHA1(2b9b74f56aa7939d9d47cf29497ae11f10d78598) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for a Z80 which emulates the custom I/O chip (not used) */ - ROM_LOAD( "zigzag7", 0x0000, 0x1000, CRC(24c3510c) SHA1(3214a16f697f88d23f3441e58c56110930d7c341) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "zigzag8", 0x0000, 0x0800, CRC(86120541) SHA1(c974441ee0421a38c25bc7c3edbc6b510b7df473) ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136007.116", 0x0000, 0x1000, CRC(e22957c8) SHA1(4700c63f4f680cb8ab8c44e6f3e1712aabd5daa4) ) - ROM_LOAD( "zigzag12", 0x1000, 0x1000, CRC(386a0956) SHA1(79f5d6af1fdc467a503216a588cb03535c823a40) ) - ROM_LOAD( "zigzag13", 0x2000, 0x1000, CRC(69f6e395) SHA1(10a7518e963f2cecb494d77137e01a068116e20b) ) - ROM_LOAD( "136007.119", 0x3000, 0x1000, CRC(c58252a0) SHA1(bd79e39e8a572d2b5c205e6de27ca23e43ec9f51) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "dd1.11", 0x0000, 0x1000, CRC(7b383983) SHA1(57f1e8f5171d13f9f76bd091d81b4423b59f6b42) ) - - ROM_REGION( 0x1000, REGION_GFX4, 0 ) /* 4k for the playfield graphics */ - ROM_LOAD( "dd1.10b", 0x0000, 0x1000, CRC(2cf399c2) SHA1(317c48818992f757b1bd0e3997fa99937f81b52c) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "136007.113", 0x0000, 0x0020, CRC(4cb9da99) SHA1(91a5852a15d4672c29fdcbae75921794651f960c) ) - ROM_LOAD( "136007.111", 0x0020, 0x0100, CRC(00c7c419) SHA1(7ea149e8eb36920c3b84984b5ce623729d492fd3) ) - ROM_LOAD( "136007.112", 0x0120, 0x0100, CRC(e9b3e08e) SHA1(a294cc4da846eb702d61678396bfcbc87d30ea95) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "136007.110", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) ) - ROM_LOAD( "136007.109", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */ -ROM_END - - - -static DRIVER_INIT (galaga) -{ - /* swap bytes for flipped character so we can decode them together with normal characters */ - UINT8 *rom = memory_region(REGION_GFX1); - int i; - - for (i = 0;i < memory_region_length(REGION_GFX1);i++) - { - if ((i & 0x0808) == 0x0800) - { - int t = rom[i]; - rom[i] = rom[i+8]; - rom[i+8] = t; - } - } -} - -static DRIVER_INIT (gatsbee) -{ - init_galaga(machine); - - /* Gatsbee has a larger character ROM, we need a handler for banking */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1000, 0x1000, 0, 0, gatsbee_bank_w); -} - - -static DRIVER_INIT( xevious ) -{ - UINT8 *rom; - int i; - - rom = memory_region(REGION_GFX3) + 0x5000; - for (i = 0;i < 0x2000;i++) - rom[i + 0x2000] = rom[i] >> 4; -} - -static DRIVER_INIT( xevios ) -{ - int A; - - - /* convert one of the sprite ROMs to the format used by Xevious */ - for (A = 0x5000;A < 0x7000;A++) - { - UINT8 *rom = memory_region(REGION_GFX3); - - rom[A] = BITSWAP8(rom[A],1,3,5,7,0,2,4,6); - } - - /* convert one of tile map ROMs to the format used by Xevious */ - for (A = 0x0000;A < 0x1000;A++) - { - UINT8 *rom = memory_region(REGION_GFX4); - - rom[A] = BITSWAP8(rom[A],3,7,5,1,2,6,4,0); - } - - init_xevious(machine); -} - - -static DRIVER_INIT( battles ) -{ - /* replace the Namco I/O handlers with interface to the 4th CPU */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7000, 0x700f, 0, 0, battles_customio_data0_r ); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7100, 0x7100, 0, 0, battles_customio0_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7000, 0x700f, 0, 0, battles_customio_data0_w ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x7100, 0x7100, 0, 0, battles_customio0_w ); - - init_xevious(machine); -} - - - -GAME( 1981, bosco, 0, bosco, bosco, 0, ROT0, "Namco", "Bosconian (new version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, boscoo, bosco, bosco, bosco, 0, ROT0, "Namco", "Bosconian (old version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, boscoo2, bosco, bosco, bosco, 0, ROT0, "Namco", "Bosconian (older version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, boscomd, bosco, bosco, boscomd, 0, ROT0, "[Namco] (Midway license)", "Bosconian (Midway, new version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, boscomdo, bosco, bosco, boscomd, 0, ROT0, "[Namco] (Midway license)", "Bosconian (Midway, old version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) - -GAME( 1981, galaga, 0, galaga, galaga, galaga, ROT90, "Namco", "Galaga (Namco rev. B)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, galagao, galaga, galaga, galaga, galaga, ROT90, "Namco", "Galaga (Namco)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamw, galaga, galaga, galagamw, galaga, ROT90, "[Namco] (Midway license)", "Galaga (Midway set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamk, galaga, galaga, galaga, galaga, ROT90, "[Namco] (Midway license)", "Galaga (Midway set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, galagamf, galaga, galaga, galaga, galaga, ROT90, "[Namco] (Midway license)", "Galaga (Midway set 1 with fast shoot hack)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1981, gallag, galaga, galagab, galaga, galaga, ROT90, "bootleg", "Gallag", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, gatsbee, galaga, galagab, gatsbee, gatsbee, ROT90, "hack", "Gatsbee", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) - -GAME( 1982, xevious, 0, xevious, xevious, xevious, ROT90, "Namco", "Xevious (Namco)", GAME_SUPPORTS_SAVE ) -GAME( 1982, xeviousa, xevious, xevious, xeviousa, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1982, xeviousb, xevious, xevious, xeviousb, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, xeviousc, xevious, xevious, xeviousa, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari set 3)", GAME_SUPPORTS_SAVE ) -GAME( 1982, xevios, xevious, xevious, xevious, xevios, ROT90, "bootleg", "Xevios", GAME_SUPPORTS_SAVE ) -GAME( 1982, battles, xevious, battles, xevious, battles, ROT90, "bootleg", "Battles", GAME_SUPPORTS_SAVE ) -GAME( 1984, sxevious, xevious, xevious, sxevious, xevious, ROT90, "Namco", "Super Xevious", GAME_SUPPORTS_SAVE ) - -GAME( 1982, digdug, 0, digdug, digdug, 0, ROT90, "Namco", "Dig Dug (rev 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, digdugb, digdug, digdug, digdug, 0, ROT90, "Namco", "Dig Dug (rev 1)", GAME_SUPPORTS_SAVE ) -GAME( 1982, digdugat, digdug, digdug, digdug, 0, ROT90, "[Namco] (Atari license)", "Dig Dug (Atari, rev 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, digduga1, digdug, digdug, digdug, 0, ROT90, "[Namco] (Atari license)", "Dig Dug (Atari, rev 1)", GAME_SUPPORTS_SAVE ) -GAME( 1982, dzigzag, digdug, dzigzag, digdug, 0, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/galspnbl.c b/src/drivers/galspnbl.c deleted file mode 100644 index 559395fa8..000000000 --- a/src/drivers/galspnbl.c +++ /dev/null @@ -1,422 +0,0 @@ -/*************************************************************************** - -Hot Pinball -Gals Pinball - -driver by Nicola Salmoria - -Notes: -- to start a 2 or more players game, press the start button multiple times -- the sprite graphics contain a "(c) Tecmo", and the sprite system is - indeed similar to other Tecmo games like Ninja Gaiden. - - -TODO: -- scrolling is wrong. -- sprite/tile priority might be wrong. There is an unknown bit in the fg - tilemap, marking some tiles that I'm not currently drawing. -- coin insertion is not recognized consistenly. -- almost all dip switches unknown - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/okim6295.h" -#include "sound/3812intf.h" - - -extern UINT16 *galspnbl_bgvideoram,*galspnbl_videoram,*galspnbl_colorram; - -PALETTE_INIT( galspnbl ); -WRITE16_HANDLER( galspnbl_bgvideoram_w ); -WRITE16_HANDLER( galspnbl_scroll_w ); -VIDEO_UPDATE( galspnbl ); - - -static WRITE16_HANDLER( soundcommand_w ) -{ - if (ACCESSING_LSB) - { - soundlatch_w(offset,data & 0xff); - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); - } -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x3fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x700000, 0x703fff) AM_READ(MRA16_RAM) /* galspnbl */ - AM_RANGE(0x708000, 0x70ffff) AM_READ(MRA16_RAM) /* galspnbl */ - AM_RANGE(0x800000, 0x803fff) AM_READ(MRA16_RAM) /* hotpinbl */ - AM_RANGE(0x808000, 0x80ffff) AM_READ(MRA16_RAM) /* hotpinbl */ - AM_RANGE(0x880000, 0x880fff) AM_READ(MRA16_RAM) - AM_RANGE(0x900000, 0x900fff) AM_READ(MRA16_RAM) - AM_RANGE(0x904000, 0x904fff) AM_READ(MRA16_RAM) - AM_RANGE(0x980000, 0x9bffff) AM_READ(MRA16_RAM) - AM_RANGE(0xa80000, 0xa80001) AM_READ(input_port_0_word_r) - AM_RANGE(0xa80010, 0xa80011) AM_READ(input_port_1_word_r) - AM_RANGE(0xa80020, 0xa80021) AM_READ(input_port_2_word_r) - AM_RANGE(0xa80030, 0xa80031) AM_READ(input_port_3_word_r) - AM_RANGE(0xa80040, 0xa80041) AM_READ(input_port_4_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x3fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x700000, 0x703fff) AM_WRITE(MWA16_RAM) /* galspnbl work RAM */ - AM_RANGE(0x708000, 0x70ffff) AM_WRITE(MWA16_RAM) /* galspnbl work RAM, bitmaps are decompressed here */ - AM_RANGE(0x800000, 0x803fff) AM_WRITE(MWA16_RAM) /* hotpinbl work RAM */ - AM_RANGE(0x808000, 0x80ffff) AM_WRITE(MWA16_RAM) /* hotpinbl work RAM, bitmaps are decompressed here */ - AM_RANGE(0x880000, 0x880fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -AM_RANGE(0x8ff400, 0x8fffff) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x900000, 0x900fff) AM_WRITE(MWA16_RAM) AM_BASE(&galspnbl_colorram) -AM_RANGE(0x901000, 0x903fff) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x904000, 0x904fff) AM_WRITE(MWA16_RAM) AM_BASE(&galspnbl_videoram) -AM_RANGE(0x905000, 0x907fff) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x980000, 0x9bffff) AM_WRITE(galspnbl_bgvideoram_w) AM_BASE(&galspnbl_bgvideoram) -AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(MWA16_NOP) /* more palette ? */ - AM_RANGE(0xa01000, 0xa017ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16) -AM_RANGE(0xa01800, 0xa027ff) AM_WRITE(MWA16_NOP) /* more palette ? */ - AM_RANGE(0xa80010, 0xa80011) AM_WRITE(soundcommand_w) - AM_RANGE(0xa80020, 0xa80021) AM_WRITE(MWA16_NOP) /* could be watchdog, but causes resets when picture is shown */ - AM_RANGE(0xa80030, 0xa80031) AM_WRITE(MWA16_NOP) /* irq ack? */ - AM_RANGE(0xa80050, 0xa80051) AM_WRITE(galspnbl_scroll_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xf800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xfc00, 0xfc00) AM_READ(MRA8_NOP) /* irq ack ?? */ - AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf800, 0xf800) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xf810, 0xf810) AM_WRITE(YM3812_control_port_0_w) - AM_RANGE(0xf811, 0xf811) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(MWA8_NOP) /* irq ack ?? */ -ADDRESS_MAP_END - - - - -INPUT_PORTS_START( hotpinbl ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Slide Show" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( galspnbl ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Slide Show" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout tilelayout = -{ - 16,8, - RGN_FRAC(1,2), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+1*4, 2*4, 3*4, RGN_FRAC(1,2)+2*4, RGN_FRAC(1,2)+3*4, - 16*8+0*4, 16*8+1*4, 16*8+RGN_FRAC(1,2)+0*4, 16*8+RGN_FRAC(1,2)+1*4, 16*8+2*4, 16*8+3*4, 16*8+RGN_FRAC(1,2)+2*4, 16*8+RGN_FRAC(1,2)+3*4 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 32*8 -}; - -static const gfx_layout spritelayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0, 1, 2, 3 }, - { 0, 4, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 8+0, 8+4, 8+RGN_FRAC(1,2)+0, 8+RGN_FRAC(1,2)+4 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tilelayout, 512, 16 }, - { REGION_GFX2, 0, &spritelayout, 0, 16 }, - { -1 } /* end of array */ -}; - - - -static void irqhandler(int linestate) -{ - cpunum_set_input_line(1,0,linestate); -} - -static struct YM3812interface ym3812_interface = -{ - irqhandler -}; - - - -static MACHINE_DRIVER_START( hotpinbl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq3_line_hold,1)/* also has vector for 6, but it does nothing */ - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - /* NMI is caused by the main CPU */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024 + 32768) - MDRV_COLORTABLE_LENGTH(1024) - - MDRV_PALETTE_INIT(galspnbl) - MDRV_VIDEO_START(generic_bitmapped) - MDRV_VIDEO_UPDATE(galspnbl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( galspnbl ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "7.rom", 0x000000, 0x80000, CRC(ce0189bf) SHA1(06d8cc6f5b819fe2ca536ce553db6986547a15ba) ) - ROM_LOAD16_BYTE( "3.rom", 0x000001, 0x80000, CRC(9b0a8744) SHA1(ac80f22b8b2f4c559c225bf203af698bf59699e7) ) - ROM_LOAD16_BYTE( "8.rom", 0x100000, 0x80000, CRC(eee2f087) SHA1(37285ae7b49c9d20ad92b3971db89ba593975154) ) - ROM_LOAD16_BYTE( "4.rom", 0x100001, 0x80000, CRC(56298489) SHA1(6dce296d752fa5579e8a3c1db3e563c4f98b6bae) ) - ROM_LOAD16_BYTE( "9.rom", 0x200000, 0x80000, CRC(d9e4964c) SHA1(0bb63384ed57a6ee1d45d1f2c181172a3f0b39df) ) - ROM_LOAD16_BYTE( "5.rom", 0x200001, 0x80000, CRC(a5e71ee4) SHA1(f41ea4ab07be263157d6c1f4a96ef45c9bccfe39) ) - ROM_LOAD16_BYTE( "10.rom", 0x300000, 0x80000, CRC(3a20e1e5) SHA1(850be621547bc9c7519055211392f2684e440462) ) - ROM_LOAD16_BYTE( "6.rom", 0x300001, 0x80000, CRC(94927d20) SHA1(0ea1a179956ad9a93a99cccec92f0490044ad1d3) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "2.rom", 0x0000, 0x10000, CRC(fae688a7) SHA1(e1ef7abd18f6a820d1a7f0ceb9a9b1a2c7de41f0) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "17.rom", 0x00000, 0x40000, CRC(7d435701) SHA1(f6a2241c95f101d09b18f550689d125abd3ea9c4) ) - ROM_LOAD( "18.rom", 0x40000, 0x40000, CRC(136adaac) SHA1(5f5e70a66d256cad9fcdbc5a7fff035f9a3279b9) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "15.rom", 0x00000, 0x20000, CRC(4beb840d) SHA1(351cd8da361a55794595d2cf7b0fed9233d0a5a0) ) - ROM_LOAD( "16.rom", 0x20000, 0x20000, CRC(93d3c610) SHA1(0cf1f311ec2646a436c37e121634731646c06437) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "1.rom", 0x00000, 0x40000, CRC(93c06d3d) SHA1(8620d274ca7824e7e72a1ad1da3eaa804d550653) ) -ROM_END - -ROM_START( hotpinbl ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "hp_07.bin", 0x000000, 0x80000, CRC(978cc13e) SHA1(0060aaf7259fdeeacb07e9ced01bdf69c27bdfb6) ) - ROM_LOAD16_BYTE( "hp_03.bin", 0x000001, 0x80000, CRC(68388726) SHA1(d8dca9050403be70097a0f833ba189bd2fa87e80) ) - ROM_LOAD16_BYTE( "hp_08.bin", 0x100000, 0x80000, CRC(bd16be12) SHA1(36e64705efba8ecdc96a62f55d68e959022fb98f) ) - ROM_LOAD16_BYTE( "hp_04.bin", 0x100001, 0x80000, CRC(655b0cf0) SHA1(4348d774155c61b1a29c2618f472a0032f4be9c0) ) - ROM_LOAD16_BYTE( "hp_09.bin", 0x200000, 0x80000, CRC(a6368624) SHA1(fa0b3dc4eb33a4b2d00e30676e59feec2fa64c3d) ) - ROM_LOAD16_BYTE( "hp_05.bin", 0x200001, 0x80000, CRC(48efd028) SHA1(8c968c4a73069a8f64e7bc339bab0eeb5254c580) ) - ROM_LOAD16_BYTE( "hp_10.bin", 0x300000, 0x80000, CRC(a5c63e34) SHA1(de27cfe20e09e8c13ee28d6eb42bfab1ebe33149) ) - ROM_LOAD16_BYTE( "hp_06.bin", 0x300001, 0x80000, CRC(513eda91) SHA1(14a43c00ad1f55bff525a14cd53913dd78e80f0c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "hp_02.bin", 0x0000, 0x10000, CRC(82698269) SHA1(5e27e89f1bdd7c3793d40867c50981f5fac0a7fb) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hp_13.bin", 0x00000, 0x40000, CRC(d53b64b9) SHA1(347b6ec908e23f848e98eed46fb34b49b728556b) ) - ROM_LOAD( "hp_14.bin", 0x40000, 0x40000, CRC(2fe3fcee) SHA1(29f96aa3dded6cb0b2fe3d9507fb5638e9778ef3) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hp_11.bin", 0x00000, 0x20000, CRC(deecd7f1) SHA1(752c944d941bfe8f21d32881f32676999ebc5a7f) ) - ROM_LOAD( "hp_12.bin", 0x20000, 0x20000, CRC(5fd603c2) SHA1(864686cd1ba5beb6cebfd394b60620106c929abd) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "hp_01.bin", 0x00000, 0x40000, CRC(93c06d3d) SHA1(8620d274ca7824e7e72a1ad1da3eaa804d550653) ) -ROM_END - - - -GAME( 1995, hotpinbl, 0, hotpinbl, hotpinbl, 0, ROT90, "Comad & New Japan System", "Hot Pinball", GAME_NO_COCKTAIL ) -GAME( 1996, galspnbl, 0, hotpinbl, galspnbl, 0, ROT90, "Comad", "Gals Pinball", GAME_NO_COCKTAIL ) diff --git a/src/drivers/gaplus.c b/src/drivers/gaplus.c deleted file mode 100644 index a48717599..000000000 --- a/src/drivers/gaplus.c +++ /dev/null @@ -1,1063 +0,0 @@ -/*************************************************************************** - -Gaplus (c) 1984 Namco - -driver by Manuel Abadia, Ernesto Corvi, Nicola Salmoria - - -Custom ICs: ----------- -11XX gfx data shifter and mixer (16-bit in, 4-bit out) [1] -15XX sound control -16XX I/O control -CUS20 tilemap and sprite address generator -CUS21 sprite generator -CUS26 starfield generator -CUS29 sprite line buffer and sprite/tilemap mixer -CUS33 timing generator -CUS34 address decoder -56XX I/O -58XX I/O -CUS62 I/O and explosion generator -98XX lamp/coin output -99XX sound volume - - -memory map ----------- -Most of the address decoding for main and sound CPU is done by a custom IC (34XX), -so the memory map is largely deducted by program behaviour. The 34XX also handles -internally the main and sub irq, and a watchdog. -Most of the address decoding for sub CPU is done by a PAL which was read and -decoded, but there are some doubts about its validity. -There is also some additional decoding for tile/sprite RAM done by the 20XX -tilemap and sprite address generator. - -Note: chip positions are based on the Midway version schematics. The Namco -version has a different layout (see later for the known correspondencies) - -MAIN CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00000xxxxxxxxxxx R/W xxxxxxxx RAM 9J tilemap RAM (shared with sub CPU) -00001xxxxxxxxxxx R/W xxxxxxxx RAM 3M work RAM (shared with sub CPU) -000011111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number & color) -00010xxxxxxxxxxx R/W xxxxxxxx RAM 3K work RAM (shared with sub CPU) -000101111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x, y) -00011xxxxxxxxxxx R/W xxxxxxxx RAM 3L work RAM (shared with sub CPU) -000111111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x msb, flip, size) -01100-xxxxxxxxxx R/W xxxxxxxx SOUND RAM (shared with sound CPU) -01101-----xxxxxx R/W ----xxxx FBIT I/O chips -0111x----------- W -------- main CPU irq enable (data is in A11) (MIRQ generated by 34XX) -01111----------- R -------- watchdog reset (MRESET generated by 34XX) -1000x----------- W -------- SRESET reset sub and sound CPU, sound enable (data is in A11) (latch in 34XX) -1001x----------- W -------- FRESET reset I/O chips (data is in A11) (latch in 34XX) -10100---------xx W xxxxxxxx STWR to custom 26XX (starfield control) -10-xxxxxxxxxxxxx R xxxxxxxx ROM 9E program ROM (can optionally be a 27128) -110xxxxxxxxxxxxx R xxxxxxxx ROM 9D program ROM -111xxxxxxxxxxxxx R xxxxxxxx ROM 9C program ROM - -[1] Program uses addresses with A10 = 1, e.g. 7400, 7c00, but A10 is not used. -On startup, it also writes to 7820-782f. This might be a bug, the intended range -being 6820-682f to address the 3rd I/O chip. - - -SOUND CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000---xxxxxxxxxx R/W xxxxxxxx SOUND2 RAM (shared with main CPU) -001------------- R/W -------- watchdog reset? (34XX) [1] -01x------------- W -------- sound CPU irq enable (data is in A13) (SIRQ generated by 34XX) -11-xxxxxxxxxxxxx R xxxxxxxx ROM 7B program ROM (can optionally be a 27128) - -[1] Program writes to 3000 and on startup reads from 3000. -On startup it also writes to 2007, but there doesn't seem to be anything else there. - - -SUB CPU: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00000xxxxxxxxxxx R/W xxxxxxxx RAM 9J tilemap RAM (shared with main CPU) -00001xxxxxxxxxxx R/W xxxxxxxx RAM 3M work RAM (shared with main CPU) -000011111xxxxxxx R/W xxxxxxxx portion holding sprite registers (sprite number & color) -00010xxxxxxxxxxx R/W xxxxxxxx RAM 3K work RAM (shared with main CPU) -000101111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x, y) -00011xxxxxxxxxxx R/W xxxxxxxx RAM 3L work RAM (shared with main CPU) -000111111xxxxxxx R/W xxxxxxxx portion holding sprite registers (x msb, flip, size) -0110-----------x -------- VINTON sub CPU irq enable (data is in A0) [1] -10-xxxxxxxxxxxxx R xxxxxxxx ROM 6L program ROM (can optionally be a 27128) -110xxxxxxxxxxxxx R xxxxxxxx ROM 6M program ROM -111xxxxxxxxxxxxx R xxxxxxxx ROM 6N program ROM - -[1] Program normally uses 6080/6081, but 6001 is written on startup. -500F is also written on startup, whose meaning is unknown. - - -ROM chip placements -------------------- -Midway Namco ------- ----- -9C 8B -9D 8C -9E 8D -6N 11B -6M 11C -6L 11D -7B 4B -9L 8S -5K 11R -5L 11N -5M 11P -5N 11M - ----------------------------------------------------------------------------- - - -Notes: ------- -- Easter egg: - - enter service mode - - keep P1 start and P1 button pressed - - move joystick left until sound reaches 19 - (c) 1984 NAMCO will appear on the screen - -- most sets always say "I/O OK", even if the custom I/O checks fail. Only - gapluso and gaplusa stop working; these two also don't do the usual - Namco-trademark RAM test on startup, and use the first I/O chip in "coin" mode, - while the others use it in "switch/lamp" mode. - -- gaplusa has the 58XX and 56XX inverted. Why would they do that? - -- To use Round Advance: turn the dip switch on before the start of a level. Push - joystick up to pick a later level, then set the dip switch back to off. - -- The only difference between galaga3a and galaga3m is the bonus life settings. - -TODO: -- The starfield is wrong. - -- schematics show 4 lines going from the 58XX I/O chip to the 26XX (starfield generator). - Function and operation unknown. - -- Add 62XX custom to machine/namcoio.c (though it's quite different from 56XX and 58XX). - -- Is the spirte generator the same as Phozon? This isn't clear yet. They are - very similar, especially in the way the size flags are layed out. - -***************************************************************************/ - -#include "driver.h" -#include "machine/namcoio.h" -#include "sound/namco.h" -#include "sound/samples.h" - - -/* custom IO chips functions */ -extern UINT8 *gaplus_customio_3; -WRITE8_HANDLER( gaplus_customio_3_w ); -READ8_HANDLER( gaplus_customio_3_r ); - -/* vidhrdw */ -extern UINT8 *gaplus_videoram; -extern UINT8 *gaplus_spriteram; -READ8_HANDLER( gaplus_videoram_r ); -WRITE8_HANDLER( gaplus_videoram_w ); -WRITE8_HANDLER( gaplus_starfield_control_w ); -VIDEO_START( gaplus ); -PALETTE_INIT( gaplus ); -VIDEO_UPDATE( gaplus ); -VIDEO_EOF( gaplus ); /* update starfields */ - - - -/*************************************************************************** - - Custom I/O initialization - -***************************************************************************/ - -static READ8_HANDLER( in0_l ) { return readinputport(0); } // P1 joystick -static READ8_HANDLER( in0_h ) { return readinputport(0) >> 4; } // P2 joystick -static READ8_HANDLER( in1_l ) { return readinputport(1); } // fire and start buttons -static READ8_HANDLER( in1_h ) { return readinputport(1) >> 4; } // coins -static READ8_HANDLER( dipA_l ) { return readinputport(2); } // dips A -static READ8_HANDLER( dipA_h ) { return readinputport(2) >> 4; } // dips A -static READ8_HANDLER( dipB_l ) { return readinputport(3); } // dips B -static READ8_HANDLER( dipB_h ) { return readinputport(3) >> 4; } // dips B -static WRITE8_HANDLER( out_lamps0 ) -{ - set_led_status(0,data & 1); - set_led_status(1,data & 2); - coin_lockout_global_w(data & 4); - coin_counter_w(0,~data & 8); -} -static WRITE8_HANDLER( out_lamps1 ) -{ - coin_counter_w(1,~data & 1); -} - -/* chip #0: player inputs, buttons, coins */ -static struct namcoio_interface intf0 = -{ - { in1_h, in0_l, in0_h, in1_l }, /* port read handlers */ - { NULL, NULL } /* port write handlers */ -}; -static struct namcoio_interface intf0_lamps = -{ - { in1_h, in0_l, in0_h, in1_l }, /* port read handlers */ - { out_lamps0, out_lamps1 } /* port write handlers */ -}; -/* chip #1: dip switches */ -static struct namcoio_interface intf1 = -{ - { dipA_h, dipB_l, dipB_h, dipA_l }, /* port read handlers */ - { NULL, NULL } /* port write handlers */ -}; -/* TODO: chip #2: test/cocktail, optional buttons */ - -static void unpack_gfx(void); - -static DRIVER_INIT( 56_58 ) -{ - unpack_gfx(); - namcoio_init(0, NAMCOIO_56XX, &intf0); - namcoio_init(1, NAMCOIO_58XX, &intf1); -} - -static DRIVER_INIT( 56_58l ) -{ - unpack_gfx(); - namcoio_init(0, NAMCOIO_56XX, &intf0_lamps); - namcoio_init(1, NAMCOIO_58XX, &intf1); -} - -static DRIVER_INIT( 58_56 ) -{ - unpack_gfx(); - namcoio_init(0, NAMCOIO_58XX, &intf0); - namcoio_init(1, NAMCOIO_56XX, &intf1); -} - - -/***************************************************************************/ - - -static READ8_HANDLER( gaplus_spriteram_r ) -{ - return gaplus_spriteram[offset]; -} - -static WRITE8_HANDLER( gaplus_spriteram_w ) -{ - gaplus_spriteram[offset] = data; -} - -static READ8_HANDLER( gaplus_snd_sharedram_r ) -{ - return namco_soundregs[offset]; -} - -static WRITE8_HANDLER( gaplus_snd_sharedram_w ) -{ - if (offset < 0x40) - namco_15xx_w(offset,data); - else - namco_soundregs[offset] = data; -} - - -static WRITE8_HANDLER( gaplus_irq_1_ctrl_w ) -{ - int bit = !BIT(offset,11); - cpu_interrupt_enable(0,bit); - if (!bit) - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( gaplus_irq_3_ctrl_w ) -{ - int bit = !BIT(offset,13); - cpu_interrupt_enable(2,bit); - if (!bit) - cpunum_set_input_line(2, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( gaplus_irq_2_ctrl_w ) -{ - int bit = offset & 1; - cpu_interrupt_enable(1,bit); - if (!bit) - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( gaplus_sreset_w ) -{ - int bit = !BIT(offset,11); - cpunum_set_input_line(1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - mappy_sound_enable(bit); -} - -static WRITE8_HANDLER( gaplus_freset_w ) -{ - int bit = !BIT(offset,11); -logerror("%04x: freset %d\n",activecpu_get_pc(),bit); - namcoio_set_reset_line(0, bit ? CLEAR_LINE : ASSERT_LINE); - namcoio_set_reset_line(1, bit ? CLEAR_LINE : ASSERT_LINE); -} - -static MACHINE_RESET( gaplus ) -{ - /* on reset, VINTON is reset, while the other flags don't seem to be affected */ - cpu_interrupt_enable(1,0); - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - -static INTERRUPT_GEN( gaplus_interrupt_1 ) -{ - irq0_line_assert(); // this also checks if irq is enabled - IMPORTANT! - // so don't replace with cpunum_set_input_line(0, 0, ASSERT_LINE); - - namcoio_set_irq_line(0,PULSE_LINE); - namcoio_set_irq_line(1,PULSE_LINE); -} - - -static ADDRESS_MAP_START( readmem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(gaplus_videoram_r) /* tilemap RAM (shared with CPU #2) */ - AM_RANGE(0x0800, 0x1fff) AM_READ(gaplus_spriteram_r) /* shared RAM with CPU #2 & spriteram */ - AM_RANGE(0x6000, 0x63ff) AM_READ(gaplus_snd_sharedram_r) /* shared RAM with CPU #3 */ - AM_RANGE(0x6820, 0x682f) AM_READ(gaplus_customio_3_r) /* custom I/O chip #3 interface */ - AM_RANGE(0x6800, 0x6bff) AM_READ(namcoio_r) /* custom I/O chips interface */ - AM_RANGE(0x7800, 0x7fff) AM_READ(watchdog_reset_r) /* watchdog */ - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(gaplus_videoram_w) AM_BASE(&gaplus_videoram) /* tilemap RAM (shared with CPU #2) */ - AM_RANGE(0x0800, 0x1fff) AM_WRITE(gaplus_spriteram_w) AM_BASE(&gaplus_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */ - AM_RANGE(0x6000, 0x63ff) AM_WRITE(gaplus_snd_sharedram_w) /* shared RAM with CPU #3 */ - AM_RANGE(0x6820, 0x682f) AM_WRITE(gaplus_customio_3_w) AM_BASE(&gaplus_customio_3)/* custom I/O chip #3 interface */ - AM_RANGE(0x6800, 0x6bff) AM_WRITE(namcoio_w) /* custom I/O chips interface */ - AM_RANGE(0x7000, 0x7fff) AM_WRITE(gaplus_irq_1_ctrl_w) /* main CPU irq control */ - AM_RANGE(0x8000, 0x8fff) AM_WRITE(gaplus_sreset_w) /* reset CPU #2 & #3, enable sound */ - AM_RANGE(0x9000, 0x9fff) AM_WRITE(gaplus_freset_w) /* reset I/O chips */ - AM_RANGE(0xa000, 0xa7ff) AM_WRITE(gaplus_starfield_control_w) /* starfield control */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(gaplus_videoram_r) /* tilemap RAM (shared with CPU #1) */ - AM_RANGE(0x0800, 0x1fff) AM_READ(gaplus_spriteram_r) /* shared RAM with CPU #1 & spriteram */ - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(gaplus_videoram_w) /* tilemap RAM (shared with CPU #1) */ - AM_RANGE(0x0800, 0x1fff) AM_WRITE(gaplus_spriteram_w) /* shared RAM with CPU #1 */ -// AM_RANGE(0x500f, 0x500f) AM_WRITE(MWA8_NOP) /* ??? written 256 times on startup */ - AM_RANGE(0x6000, 0x6fff) AM_WRITE(gaplus_irq_2_ctrl_w) /* IRQ 2 control */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_cpu3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(gaplus_snd_sharedram_r) /* shared RAM with CPU #1 */ - AM_RANGE(0x2000, 0x3fff) AM_READ(watchdog_reset_r) /* watchdog? */ - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - - /* CPU 3 (SOUND CPU) write addresses */ -static ADDRESS_MAP_START( writemem_cpu3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(gaplus_snd_sharedram_w) AM_BASE(&namco_soundregs) /* shared RAM with the main CPU + sound registers */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(watchdog_reset_w) /* watchdog? */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(gaplus_irq_3_ctrl_w) /* interrupt enable/disable */ - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - - - -INPUT_PORTS_START( gaplus ) - /* The inputs are not memory mapped, they are handled by three I/O chips. */ - PORT_START /* 56XX #0 pins 22-29 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* 56XX #0 pins 30-33 and 38-41 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* 58XX #1 pins 30-33 and 38-41 */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - - PORT_START /* 58XX #1 pins 22-29 */ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x70, "0 - Standard" ) - PORT_DIPSETTING( 0x60, "1 - Easiest" ) - PORT_DIPSETTING( 0x50, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x30, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x00, "7 - Hardest" ) - PORT_DIPNAME( 0x08, 0x08, "Round Advance" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30k 70k and every 70k" ) - PORT_DIPSETTING( 0x01, "30k 100k and every 100k" ) - PORT_DIPSETTING( 0x02, "30k 100k and every 200k" ) - PORT_DIPSETTING( 0x03, "50k 100k and every 100k" ) - PORT_DIPSETTING( 0x04, "50k 100k and every 200k" ) - PORT_DIPSETTING( 0x07, "50k 150k and every 150k" ) - PORT_DIPSETTING( 0x05, "50k 150k and every 300k" ) - PORT_DIPSETTING( 0x06, "50k 150k" ) - - PORT_START /* 62XX #2 pins 24-27 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -/* identical to gaplus, but service mode is a dip switch instead of coming from edge connector */ -INPUT_PORTS_START( gapluso ) - /* The inputs are not memory mapped, they are handled by three I/O chips. */ - PORT_START /* 56XX #0 pins 22-29 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* 56XX #0 pins 30-33 and 38-41 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* 58XX #1 pins 30-33 and 38-41 */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - - PORT_START /* 58XX #1 pins 22-29 */ - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x70, "0 - Standard" ) - PORT_DIPSETTING( 0x60, "1 - Easiest" ) - PORT_DIPSETTING( 0x50, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x30, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x00, "7 - Hardest" ) - PORT_DIPNAME( 0x08, 0x08, "Round Advance" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30k 70k and every 70k" ) - PORT_DIPSETTING( 0x01, "30k 100k and every 100k" ) - PORT_DIPSETTING( 0x02, "30k 100k and every 200k" ) - PORT_DIPSETTING( 0x03, "50k 100k and every 100k" ) - PORT_DIPSETTING( 0x04, "50k 100k and every 200k" ) - PORT_DIPSETTING( 0x07, "50k 150k and every 150k" ) - PORT_DIPSETTING( 0x05, "50k 150k and every 300k" ) - PORT_DIPSETTING( 0x06, "50k 150k" ) - - PORT_START /* 62XX #2 pins 24-27 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // doesn't seem to be used -INPUT_PORTS_END - -/* identical to gaplus, but different bonus life settings */ -INPUT_PORTS_START( galaga3a ) - /* The inputs are not memory mapped, they are handled by three I/O chips. */ - PORT_START /* 56XX #0 pins 22-29 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* 56XX #0 pins 30-33 and 38-41 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* 58XX #1 pins 30-33 and 38-41 */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - - PORT_START /* 58XX #1 pins 22-29 */ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x70, "0 - Standard" ) - PORT_DIPSETTING( 0x60, "1 - Easiest" ) - PORT_DIPSETTING( 0x50, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x30, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x00, "7 - Hardest" ) - PORT_DIPNAME( 0x08, 0x08, "Round Advance" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x07, 0x02, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, "30k 80k and every 100k" ) - PORT_DIPSETTING( 0x03, "30k 100k and every 100k" ) - PORT_DIPSETTING( 0x04, "30k 100k and every 150k" ) - PORT_DIPSETTING( 0x07, "30k 100k and every 200k" ) - PORT_DIPSETTING( 0x05, "30k 100k and every 300k" ) - PORT_DIPSETTING( 0x06, "30k 150k" ) - PORT_DIPSETTING( 0x00, "50k 150k and every 150k" ) - PORT_DIPSETTING( 0x01, "50k 150k and every 200k" ) - - PORT_START /* 62XX #2 pins 24-27 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -/* identical to gaplus, but different bonus life settings */ -INPUT_PORTS_START( galaga3m ) - /* The inputs are not memory mapped, they are handled by three I/O chips. */ - PORT_START /* 56XX #0 pins 22-29 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* 56XX #0 pins 30-33 and 38-41 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* 58XX #1 pins 30-33 and 38-41 */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - - PORT_START /* 58XX #1 pins 22-29 */ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x70, "0 - Standard" ) - PORT_DIPSETTING( 0x60, "1 - Easiest" ) - PORT_DIPSETTING( 0x50, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x30, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x00, "7 - Hardest" ) - PORT_DIPNAME( 0x08, 0x08, "Round Advance" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30k 150k and every 600k" ) - PORT_DIPSETTING( 0x01, "50k 150k and every 300k" ) - PORT_DIPSETTING( 0x02, "50k 150k and every 600k" ) - PORT_DIPSETTING( 0x03, "50k 200k and every 300k" ) - PORT_DIPSETTING( 0x04, "100k 300k and every 300k" ) - PORT_DIPSETTING( 0x07, "100k 300k and every 600k" ) - PORT_DIPSETTING( 0x05, "150k 400k and every 900k" ) - PORT_DIPSETTING( 0x06, "150k 400k" ) - - PORT_START /* 62XX #2 pins 24-27 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 4, 6 }, - { 16*8, 16*8+1, 24*8, 24*8+1, 0, 1, 8*8, 8*8+1 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 32*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 3, - { RGN_FRAC(1,2), 0, 4 }, - { 0, 1, 2, 3, 8*8, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 64 }, - { REGION_GFX2, 0x0000, &spritelayout, 64*4, 64 }, - { -1 } /* end of table */ -}; - -static struct namco_interface namco_interface = -{ - 8, /* number of voices */ - REGION_SOUND1 /* memory region */ -}; - -static const char *gaplus_sample_names[] = -{ - "*gaplus", - "bang.wav", - 0 /* end of array */ -}; - -static struct Samplesinterface samples_interface = -{ - 1, /* one channel */ - gaplus_sample_names -}; - - - -static MACHINE_DRIVER_START( gaplus ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 24576000/16) /* 1.536 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu1,writemem_cpu1) - MDRV_CPU_VBLANK_INT(gaplus_interrupt_1,1) - - MDRV_CPU_ADD(M6809, 24576000/16) /* 1.536 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu2,writemem_cpu2) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(M6809, 24576000/16) /* 1.536 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu3,writemem_cpu3) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* a high value to ensure proper synchronization of the CPUs */ - MDRV_MACHINE_RESET(gaplus) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(64*4+64*8) - - MDRV_PALETTE_INIT(gaplus) - MDRV_VIDEO_START(gaplus) - MDRV_VIDEO_UPDATE(gaplus) - MDRV_VIDEO_EOF(gaplus) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NAMCO_15XX, 24576000/1024) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - - - -ROM_START( gaplus ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "gp3-4c.8d", 0xa000, 0x2000, CRC(10d7f64c) SHA1(e39f77af16016d28170e4ac1c2a784b0a7ec5454) ) - ROM_LOAD( "gp3-3c.8c", 0xc000, 0x2000, CRC(962411e8) SHA1(2b6bb2a5d77a837810180391ef6c0ce745bfed64) ) - ROM_LOAD( "gp3-2d.8b", 0xe000, 0x2000, CRC(ecc01bdb) SHA1(b176b46bd6f2501d3a74ed11186be8411fd1105b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gp3-8b.11d", 0xa000, 0x2000, CRC(f5e056d1) SHA1(bbed2056dc28dc2828e29987c16d89fb16e7059e) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gp3-6b.11b", 0xe000, 0x2000, CRC(026491b6) SHA1(a19f2942dafc899d686a42240fc2f7a7a7d3b1f5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-5.8s", 0x0000, 0x2000, CRC(f3d19987) SHA1(a0107fa4659597ac42c875ab1c0deb845534268b) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "gp2-6.6p", 0x0400, 0x0200, CRC(6f99c2da) SHA1(955dcef363870ee8e91edc73b9ea3ce489738aad) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "gp2-5.6n", 0x0600, 0x0200, CRC(c7d31657) SHA1(a93a5bc448dc127e1389d10a9cb06acadfe940cf) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) - - ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal10l8.8n", 0x0000, 0x002c, CRC(08e5b2fe) SHA1(1aa7fa1a61795703af84ae427d0d8588ef8c4c3f) ) -ROM_END - -ROM_START( gapluso ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "gp2-4.8d", 0xa000, 0x2000, CRC(e525d75d) SHA1(93fcd8b940491abf6344181811d0b35765d7e45c) ) - ROM_LOAD( "gp2-3b.8c", 0xc000, 0x2000, CRC(d77840a4) SHA1(81402b28a2d5ac2d1301252534afa0cb65d7e162) ) - ROM_LOAD( "gp2-2b.8b", 0xe000, 0x2000, CRC(b3cb90db) SHA1(025c2f3978772e1ecbbf36842dc7c2203ee91a1f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gp2-8.11d", 0xa000, 0x2000, CRC(42b9fd7c) SHA1(f230eb0ad757f0714c0ac81c812e950778452947) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gp2-6.11b", 0xe000, 0x2000, CRC(75b18652) SHA1(398059da967c80321a9ec94d982a6c0b3c970c5f) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-5.8s", 0x0000, 0x2000, CRC(f3d19987) SHA1(a0107fa4659597ac42c875ab1c0deb845534268b) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "gp2-6.6p", 0x0400, 0x0200, CRC(6f99c2da) SHA1(955dcef363870ee8e91edc73b9ea3ce489738aad) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "gp2-5.6n", 0x0600, 0x0200, CRC(c7d31657) SHA1(a93a5bc448dc127e1389d10a9cb06acadfe940cf) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) - - ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal10l8.8n", 0x0000, 0x002c, CRC(08e5b2fe) SHA1(1aa7fa1a61795703af84ae427d0d8588ef8c4c3f) ) -ROM_END - -ROM_START( gaplusa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "gp2-4b.8d", 0xa000, 0x2000, CRC(484f11e0) SHA1(659756ae183dac3817440c8975f203c7dbe08c6b) ) - ROM_LOAD( "gp2-3c.8c", 0xc000, 0x2000, CRC(a74b0266) SHA1(a534c6b4af569ed545bf52769c7d5ceb5f2c4935) ) - ROM_LOAD( "gp2-2d.8b", 0xe000, 0x2000, CRC(69fdfdb7) SHA1(aec611336b8767897ad493d581d70b1f0e75aeba) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gp2-8b.11d", 0xa000, 0x2000, CRC(bff601a6) SHA1(e1a04354d8d0bc0d51d7341a46bd23cbd2158ee9) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gp2-6b.11b", 0xe000, 0x2000, CRC(14cd61ea) SHA1(05605abebcf2791e60b2d810dafcdd8582a87d9b) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-5.8s", 0x0000, 0x2000, CRC(f3d19987) SHA1(a0107fa4659597ac42c875ab1c0deb845534268b) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "gp2-6.6p", 0x0400, 0x0200, CRC(6f99c2da) SHA1(955dcef363870ee8e91edc73b9ea3ce489738aad) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "gp2-5.6n", 0x0600, 0x0200, CRC(c7d31657) SHA1(a93a5bc448dc127e1389d10a9cb06acadfe940cf) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) - - ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal10l8.8n", 0x0000, 0x002c, CRC(08e5b2fe) SHA1(1aa7fa1a61795703af84ae427d0d8588ef8c4c3f) ) -ROM_END - -ROM_START( galaga3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "gp3-4c.8d", 0xa000, 0x2000, CRC(10d7f64c) SHA1(e39f77af16016d28170e4ac1c2a784b0a7ec5454) ) - ROM_LOAD( "gp3-3c.8c", 0xc000, 0x2000, CRC(962411e8) SHA1(2b6bb2a5d77a837810180391ef6c0ce745bfed64) ) - ROM_LOAD( "gp3-2c.8b", 0xe000, 0x2000, CRC(f72d6fc5) SHA1(7031c4a2c4374fb786fc563cbad3e3de0dbaa8d2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gp3-8b.11d", 0xa000, 0x2000, CRC(f5e056d1) SHA1(bbed2056dc28dc2828e29987c16d89fb16e7059e) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gp3-6b.11b", 0xe000, 0x2000, CRC(026491b6) SHA1(a19f2942dafc899d686a42240fc2f7a7a7d3b1f5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gal3_9l.bin", 0x0000, 0x2000, CRC(8d4dcebf) SHA1(0a556b45976bc36eb99048b1512c446b472da1d2) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "g3_3f.bin", 0x0400, 0x0200, CRC(d48c0eef) SHA1(6d0512958bc522d22e69336677369507847f8f6f) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "g3_3e.bin", 0x0600, 0x0200, CRC(417ba0dc) SHA1(2ba51ccdd0428fc48758ed8fea36c8ce0e752a45) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) -ROM_END - -ROM_START( galaga3a ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "gal3_9e.bin", 0xa000, 0x2000, CRC(f4845e7f) SHA1(7b1377254f594bea4a8ffc7e388d9106e0266b55) ) - ROM_LOAD( "gal3_9d.bin", 0xc000, 0x2000, CRC(86fac687) SHA1(07f76af524dbb3e79de41ef4bf32e7380776d9f5) ) - ROM_LOAD( "gal3_9c.bin", 0xe000, 0x2000, CRC(f1b00073) SHA1(5d998d938251f173cedf742b95d02cc0a2b9d3be) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gal3_6l.bin", 0xa000, 0x2000, CRC(9ec3dce5) SHA1(196a975aff59be19f55041a44b201aafef083ba7) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gal3_6n.bin", 0xe000, 0x2000, CRC(6a2942c5) SHA1(6fb2c4dcb2ad393220917b81f1a42e571d209d76) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gal3_9l.bin", 0x0000, 0x2000, CRC(8d4dcebf) SHA1(0a556b45976bc36eb99048b1512c446b472da1d2) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "g3_3f.bin", 0x0400, 0x0200, CRC(d48c0eef) SHA1(6d0512958bc522d22e69336677369507847f8f6f) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "g3_3e.bin", 0x0600, 0x0200, CRC(417ba0dc) SHA1(2ba51ccdd0428fc48758ed8fea36c8ce0e752a45) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) -ROM_END - -ROM_START( galaga3m ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for the MAIN CPU */ - ROM_LOAD( "m1.9e", 0xa000, 0x2000, CRC(e392704e) SHA1(8eebd48dfe8491f491e844d4ad0964e25efb013b) ) - ROM_LOAD( "gal3_9d.bin", 0xc000, 0x2000, CRC(86fac687) SHA1(07f76af524dbb3e79de41ef4bf32e7380776d9f5) ) - ROM_LOAD( "gal3_9c.bin", 0xe000, 0x2000, CRC(f1b00073) SHA1(5d998d938251f173cedf742b95d02cc0a2b9d3be) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the SUB CPU */ - ROM_LOAD( "gal3_6l.bin", 0xa000, 0x2000, CRC(9ec3dce5) SHA1(196a975aff59be19f55041a44b201aafef083ba7) ) - ROM_LOAD( "gp2-7.11c", 0xc000, 0x2000, CRC(0621f7df) SHA1(b86020f819fefb134cb57e203f7c90b1b29581c8) ) - ROM_LOAD( "gal3_6n.bin", 0xe000, 0x2000, CRC(6a2942c5) SHA1(6fb2c4dcb2ad393220917b81f1a42e571d209d76) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the SOUND CPU */ - ROM_LOAD( "gp2-1.4b", 0xe000, 0x2000, CRC(ed8aa206) SHA1(4e0a31d84cb7aca497485dbe0240009d58275765) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gal3_9l.bin", 0x0000, 0x2000, CRC(8d4dcebf) SHA1(0a556b45976bc36eb99048b1512c446b472da1d2) ) /* characters */ - /* 0x2000-0x3fff will be unpacked from 0x0000-0x1fff */ - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp2-11.11p", 0x0000, 0x2000, CRC(57740ff9) SHA1(16873e0ac5f975768d596d7d32af7571f4817f2b) ) /* objects */ - ROM_LOAD( "gp2-10.11n", 0x2000, 0x2000, CRC(6cd8ce11) SHA1(fc346e98737c9fc20810e32d4c150ae4b4051979) ) /* objects */ - ROM_LOAD( "gp2-12.11r", 0x4000, 0x2000, CRC(7316a1f1) SHA1(368e4541a5151e906a189712bc05192c2ceec8ae) ) /* objects */ - ROM_LOAD( "gp2-9.11m", 0x6000, 0x2000, CRC(e6a9ae67) SHA1(99c1e67c3b216aa1b63f199e21c73cdedde80e1b) ) /* objects */ - /* 0x8000-0x9fff will be unpacked from 0x6000-0x7fff */ - ROM_FILL( 0xa000, 0x2000, 0x00 ) // optional ROM, not used - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "gp2-3.1p", 0x0000, 0x0100, CRC(a5091352) SHA1(dcd6dfbfbd5281ba0c7b7c189d6fde23617ed3e3) ) /* red palette ROM (4 bits) */ - ROM_LOAD( "gp2-1.1n", 0x0100, 0x0100, CRC(8bc8022a) SHA1(c76f9d9b066e268621d41a703c5280261234709a) ) /* green palette ROM (4 bits) */ - ROM_LOAD( "gp2-2.2n", 0x0200, 0x0100, CRC(8dabc20b) SHA1(64d7b333f529d3ba66aeefd380fd1cbf9ddf460d) ) /* blue palette ROM (4 bits) */ - ROM_LOAD( "gp2-7.6s", 0x0300, 0x0100, CRC(2faa3e09) SHA1(781ffe9088476798409cb922350eff881590cf35) ) /* char color ROM */ - ROM_LOAD( "g3_3f.bin", 0x0400, 0x0200, CRC(d48c0eef) SHA1(6d0512958bc522d22e69336677369507847f8f6f) ) /* sprite color ROM (lower 4 bits) */ - ROM_LOAD( "g3_3e.bin", 0x0600, 0x0200, CRC(417ba0dc) SHA1(2ba51ccdd0428fc48758ed8fea36c8ce0e752a45) ) /* sprite color ROM (upper 4 bits) */ - - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) /* sound prom */ - ROM_LOAD( "gp2-4.3f", 0x0000, 0x0100, CRC(2d9fbdd8) SHA1(e6a23cd5ce3d3e76de3b70c8ab5a3c45b1147af4) ) -ROM_END - - -static void unpack_gfx(void) -{ - UINT8 *rom; - int i; - - rom = memory_region(REGION_GFX1); - for (i = 0;i < 0x2000;i++) - rom[i + 0x2000] = rom[i] >> 4; - - rom = memory_region(REGION_GFX2) + 0x6000; - for (i = 0;i < 0x2000;i++) - rom[i + 0x2000] = rom[i] << 4; -} - - -GAME( 1984, gaplus, 0, gaplus, gaplus, 56_58l, ROT90, "Namco", "Gaplus (rev. D)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, galaga3, gaplus, gaplus, gaplus, 56_58l, ROT90, "Namco", "Galaga 3 (rev. C)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, gapluso, gaplus, gaplus, gapluso, 56_58, ROT90, "Namco", "Gaplus (rev. B)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, gaplusa, gaplus, gaplus, gapluso, 58_56, ROT90, "Namco", "Gaplus (alternate hardware)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, galaga3a, gaplus, gaplus, galaga3a, 56_58l, ROT90, "Namco", "Galaga 3 (set 2)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1984, galaga3m, gaplus, gaplus, galaga3m, 56_58l, ROT90, "Namco", "Galaga 3 (set 3)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/gbusters.c b/src/drivers/gbusters.c deleted file mode 100644 index e286662d8..000000000 --- a/src/drivers/gbusters.c +++ /dev/null @@ -1,430 +0,0 @@ -/*************************************************************************** - -Gangbusters(GX878) (c) 1988 Konami - -Preliminary driver by: - Manuel Abadia - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - -/* prototypes */ -static MACHINE_RESET( gbusters ); -static void gbusters_banking( int lines ); - - -extern int gbusters_priority; - -VIDEO_START( gbusters ); -VIDEO_UPDATE( gbusters ); - -static int palette_selected; -static unsigned char *ram; - -static INTERRUPT_GEN( gbusters_interrupt ) -{ - if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); -} - -static READ8_HANDLER( bankedram_r ) -{ - if (palette_selected) - return paletteram_r(offset); - else - return ram[offset]; -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (palette_selected) - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - else - ram[offset] = data; -} - -static WRITE8_HANDLER( gbusters_1f98_w ) -{ - - /* bit 0 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 7 used (during gfx rom tests), but unknown */ - - /* other bits unused/unknown */ - if (data & 0xfe){ - //logerror("%04x: (1f98) write %02x\n",activecpu_get_pc(), data); - //popmessage("$1f98 = %02x", data); - } -} - -static WRITE8_HANDLER( gbusters_coin_counter_w ) -{ - /* bit 0 select palette RAM or work RAM at 5800-5fff */ - palette_selected = ~data & 0x01; - - /* bits 1 & 2 = coin counters */ - coin_counter_w(0,data & 0x02); - coin_counter_w(1,data & 0x04); - - /* bits 3 selects tilemap priority */ - gbusters_priority = data & 0x08; - - /* bit 7 is used but unknown */ - - /* other bits unused/unknown */ - if (data & 0xf8) - { - char baf[40]; - logerror("%04x: (ccount) write %02x\n",activecpu_get_pc(), data); - sprintf(baf,"ccnt = %02x", data); -// popmessage(baf); - } -} - -static WRITE8_HANDLER( gbusters_unknown_w ) -{ - logerror("%04x: write %02x to 0x1f9c\n",activecpu_get_pc(), data); - -{ -char baf[40]; - sprintf(baf,"??? = %02x", data); -// popmessage(baf); -} -} - -WRITE8_HANDLER( gbusters_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static WRITE8_HANDLER( gbusters_snd_bankswitch_w ) -{ - int bank_B = ((data >> 2) & 0x01); /* ?? */ - int bank_A = ((data) & 0x01); /* ?? */ - K007232_set_bank( 0, bank_A, bank_B ); - -#if 0 - { - char baf[40]; - sprintf(baf,"snd_bankswitch = %02x", data); - popmessage(baf); - } -#endif -} - -static ADDRESS_MAP_START( gbusters_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f90, 0x1f90) AM_READ(input_port_3_r) /* coinsw & startsw */ - AM_RANGE(0x1f91, 0x1f91) AM_READ(input_port_4_r) /* Player 1 inputs */ - AM_RANGE(0x1f92, 0x1f92) AM_READ(input_port_5_r) /* Player 2 inputs */ - AM_RANGE(0x1f93, 0x1f93) AM_READ(input_port_2_r) /* DIPSW #3 */ - AM_RANGE(0x1f94, 0x1f94) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x1f95, 0x1f95) AM_READ(input_port_1_r) /* DIPSW #2 */ - AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) /* tiles + sprites (RAM H21, G21 & H6) */ - AM_RANGE(0x4000, 0x57ff) AM_READ(MRA8_RAM) /* RAM I12 */ - AM_RANGE(0x5800, 0x5fff) AM_READ(bankedram_r) /* palette + work RAM (RAM D16 & C16) */ - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM 878n02.rom */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gbusters_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f80, 0x1f80) AM_WRITE(gbusters_coin_counter_w) /* coin counters */ - AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* sound code # */ - AM_RANGE(0x1f88, 0x1f88) AM_WRITE(gbusters_sh_irqtrigger_w) /* cause interrupt on audio CPU */ - AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x1f98, 0x1f98) AM_WRITE(gbusters_1f98_w) /* enable gfx ROM read through VRAM */ - AM_RANGE(0x1f9c, 0x1f9c) AM_WRITE(gbusters_unknown_w) /* ??? */ - AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) /* tiles + sprites (RAM H21, G21 & H6) */ - AM_RANGE(0x4000, 0x57ff) AM_WRITE(MWA8_RAM) /* RAM I12 */ - AM_RANGE(0x5800, 0x5fff) AM_WRITE(bankedram_w) AM_BASE(&ram) /* palette + work RAM (RAM D16 & C16) */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM 878n02.rom */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gbusters_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* ROM 878h01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) /* 007232 registers */ - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) /* YM 2151 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gbusters_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* ROM 878h01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) /* 007232 registers */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) /* YM 2151 */ - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) /* YM 2151 */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(gbusters_snd_bankswitch_w) /* 007232 bankswitch? */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( gbusters ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x04, "Bullets" ) - PORT_DIPSETTING( 0x04, "50" ) - PORT_DIPSETTING( 0x00, "60" ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "50k, 200k & 400k" ) - PORT_DIPSETTING( 0x10, "70k, 250k & 500k" ) - PORT_DIPSETTING( 0x08, "50k" ) - PORT_DIPSETTING( 0x00, "70k" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory regions */ - volume_callback /* external port callback */ -}; - -static MACHINE_DRIVER_START( gbusters ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* Konami custom 052526 */ - MDRV_CPU_PROGRAM_MAP(gbusters_readmem,gbusters_writemem) - MDRV_CPU_VBLANK_INT(gbusters_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(gbusters_readmem_sound,gbusters_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(gbusters) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(gbusters) - MDRV_VIDEO_UPDATE(gbusters) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "mono", 0.60) - MDRV_SOUND_ROUTE(1, "mono", 0.60) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.30) - MDRV_SOUND_ROUTE(1, "mono", 0.30) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( gbusters ) - ROM_REGION( 0x30800, REGION_CPU1, 0 ) /* code + banked roms + space for banked RAM */ - ROM_LOAD( "878n02.rom", 0x10000, 0x08000, CRC(51697aaa) SHA1(1e6461e2e5e871d44085623a890158a4c1c4c404) ) /* ROM K13 */ - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "878j03.rom", 0x20000, 0x10000, CRC(3943a065) SHA1(6b0863f4182e6c973adfaa618f096bd4cc9b7b6d) ) /* ROM K15 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "878h01.rom", 0x00000, 0x08000, CRC(96feafaa) SHA1(8b6547e610cb4fa1c1f5bf12cb05e9a12a353903) ) - - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "878c07.rom", 0x00000, 0x40000, CRC(eeed912c) SHA1(b2e27610b38f3fc9c2cdad600b03c8bae4fb9138) ) /* tiles */ - ROM_LOAD( "878c08.rom", 0x40000, 0x40000, CRC(4d14626d) SHA1(226b1d83fb82586302be0a67737a427475856537) ) /* tiles */ - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "878c05.rom", 0x00000, 0x40000, CRC(01f4aea5) SHA1(124123823be6bd597805484539d821aaaadde2c0) ) /* sprites */ - ROM_LOAD( "878c06.rom", 0x40000, 0x40000, CRC(edfaaaaf) SHA1(67468c4ce47e8d43d58de8d3b50b048c66508156) ) /* sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "878a09.rom", 0x0000, 0x0100, CRC(e2d09a1b) SHA1(a9651e137486b2df367c39eb43f52d0833589e87) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "878c04.rom", 0x00000, 0x40000, CRC(9e982d1c) SHA1(a5b611c67b0f2ac50c679707931ee12ebbf72ebe) ) -ROM_END - -ROM_START( crazycop ) - ROM_REGION( 0x30800, REGION_CPU1, 0 ) /* code + banked roms + space for banked RAM */ - ROM_LOAD( "878m02.bin", 0x10000, 0x08000, CRC(9c1c9f52) SHA1(7a60ad20aac92da8258b43b04f8c7f27bb71f1df) ) /* ROM K13 */ - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "878j03.rom", 0x20000, 0x10000, CRC(3943a065) SHA1(6b0863f4182e6c973adfaa618f096bd4cc9b7b6d) ) /* ROM K15 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "878h01.rom", 0x00000, 0x08000, CRC(96feafaa) SHA1(8b6547e610cb4fa1c1f5bf12cb05e9a12a353903) ) - - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "878c07.rom", 0x00000, 0x40000, CRC(eeed912c) SHA1(b2e27610b38f3fc9c2cdad600b03c8bae4fb9138) ) /* tiles */ - ROM_LOAD( "878c08.rom", 0x40000, 0x40000, CRC(4d14626d) SHA1(226b1d83fb82586302be0a67737a427475856537) ) /* tiles */ - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "878c05.rom", 0x00000, 0x40000, CRC(01f4aea5) SHA1(124123823be6bd597805484539d821aaaadde2c0) ) /* sprites */ - ROM_LOAD( "878c06.rom", 0x40000, 0x40000, CRC(edfaaaaf) SHA1(67468c4ce47e8d43d58de8d3b50b048c66508156) ) /* sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "878a09.rom", 0x0000, 0x0100, CRC(e2d09a1b) SHA1(a9651e137486b2df367c39eb43f52d0833589e87) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 */ - ROM_LOAD( "878c04.rom", 0x00000, 0x40000, CRC(9e982d1c) SHA1(a5b611c67b0f2ac50c679707931ee12ebbf72ebe) ) -ROM_END - - -static void gbusters_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0x10000; - - /* bits 0-3 ROM bank */ - offs += (lines & 0x0f)*0x2000; - memory_set_bankptr( 1, &RAM[offs] ); - - if (lines & 0xf0){ - //logerror("%04x: (lines) write %02x\n",activecpu_get_pc(), lines); - //popmessage("lines = %02x", lines); - } - - /* other bits unknown */ -} - -static MACHINE_RESET( gbusters ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)gbusters_banking); - - /* mirror address for banked ROM */ - memcpy(&RAM[0x18000], &RAM[0x10000], 0x08000 ); - - paletteram = &RAM[0x30000]; -} - - -static DRIVER_INIT( gbusters ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1988, gbusters, 0, gbusters, gbusters, gbusters, ROT90, "Konami", "Gang Busters", 0 ) -GAME( 1988, crazycop, gbusters, gbusters, gbusters, gbusters, ROT90, "Konami", "Crazy Cop (Japan)", 0 ) diff --git a/src/drivers/gijoe.c b/src/drivers/gijoe.c deleted file mode 100644 index e16e2e5cd..000000000 --- a/src/drivers/gijoe.c +++ /dev/null @@ -1,465 +0,0 @@ -#define JOE_DEBUG 0 -#define JOE_DMADELAY (42.7+341.3) - -/*************************************************************************** - - GI Joe (c) 1992 Konami - - -Change Log ----------- - -AT070403: - -tilemap.h,tilemap.c -- added tilemap_get_transparency_data() for transparency cache manipulation - -vidhrdw\konamiic.c -- added preliminary K056832 tilemap<->linemap switching and tileline code - -drivers\gijoe.c -- updated video settings, memory map and irq handler -- added object blitter - -vidhrdw\gijoe.c -- completed K054157 to K056832 migration -- added ground scroll emulation -- fixed sprite and BG priority -- improved shadows and layer alignment - - -Known Issues ------------- - -- sprite gaps (K053247 zoom fraction rounding) -- shadow masking (eg. the shadow of Baroness' aircraft should not project on the sky) - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/2151intf.h" -#include "sound/k054539.h" - - -VIDEO_START( gijoe ); -VIDEO_UPDATE( gijoe ); - -static UINT16 *gijoe_workram; -static UINT16 cur_control2; -static int init_eeprom_count; -static void *dmadelay_timer; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "011100", /* write command */ - "0100100000000",/* erase command */ - "0100000000000",/* lock command */ - "0100110000000" /* unlock command */ -}; - -#if 0 -static void eeprom_init(void) -{ - EEPROM_init(&eeprom_interface); - init_eeprom_count = 0; -} -#endif - -static NVRAM_HANDLER( gijoe ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 2720; - } -} - -static READ16_HANDLER( control1_r ) -{ - int res; - - /* bit 8 is EEPROM data */ - /* bit 9 is EEPROM ready */ - /* bit 11 is service button */ - res = (EEPROM_read_bit()<<8) | input_port_0_word_r(0,0); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= 0xf7ff; - } - - return res; -} - -static READ16_HANDLER( control2_r ) -{ - return cur_control2; -} - -static WRITE16_HANDLER( control2_w ) -{ - if(ACCESSING_LSB) { - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - /* bit 3 (unknown: coin) */ - /* bit 5 is enable irq 6 */ - /* bit 7 (unknown: enable irq 5?) */ - - EEPROM_write_bit(data & 0x01); - EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - cur_control2 = data; - - /* bit 6 = enable sprite ROM reading */ - K053246_set_OBJCHA_line((data & 0x0040) ? ASSERT_LINE : CLEAR_LINE); - } -} - -static void gijoe_objdma(void) -{ - UINT16 *src_head, *src_tail, *dst_head, *dst_tail; - - src_head = spriteram16; - src_tail = spriteram16 + 255*8; - K053247_export_config(&dst_head, 0, 0, 0, 0); - dst_tail = dst_head + 255*8; - - for (; src_head<=src_tail; src_head+=8) - { - if (*src_head & 0x8000) - { - memcpy(dst_head, src_head, 0x10); - dst_head += 8; - } - else - { - *dst_tail = 0; - dst_tail -= 8; - } - } -} - -static void dmaend_callback(int data) -{ - if (cur_control2 & 0x0020) - cpunum_set_input_line(0, 6, HOLD_LINE); -} - -static INTERRUPT_GEN( gijoe_interrupt ) -{ - // global interrupt masking (*this game only) - if (!K056832_is_IRQ_enabled(0)) return; - - if (K053246_is_IRQ_enabled()) - { - gijoe_objdma(); - - // 42.7us(clr) + 341.3us(xfer) delay at 6Mhz dotclock - timer_adjust(dmadelay_timer, TIME_IN_USEC(JOE_DMADELAY), 0, 0); - } - - // trigger V-blank interrupt - if (cur_control2 & 0x0080) - cpunum_set_input_line(0, 5, HOLD_LINE); -} - -static WRITE16_HANDLER( sound_cmd_w ) -{ - if(ACCESSING_LSB) { - data &= 0xff; - soundlatch_w(0, data); - } -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -static READ16_HANDLER( sound_status_r ) -{ - return soundlatch2_r(0); -} - -static void sound_nmi(void) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static MACHINE_START( gijoe ) -{ - state_save_register_global(cur_control2); - - dmadelay_timer = timer_alloc(dmaend_callback); - return 0; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) // Sprites - AM_RANGE(0x120000, 0x121fff) AM_READ(K056832_ram_word_r) // Graphic planes - AM_RANGE(0x122000, 0x123fff) AM_READ(K056832_ram_word_r) // Graphic planes mirror read - AM_RANGE(0x130000, 0x131fff) AM_READ(K056832_rom_word_r) // Passthrough to tile roms - AM_RANGE(0x180000, 0x18ffff) AM_READ(MRA16_RAM) // Main RAM. Spec. 180000-1803ff, 180400-187fff - AM_RANGE(0x190000, 0x190fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1c0014, 0x1c0015) AM_READ(sound_status_r) - AM_RANGE(0x1c0000, 0x1c001f) AM_READ(MRA16_RAM) // sound regs read fall through - AM_RANGE(0x1e0000, 0x1e0001) AM_READ(input_port_2_word_r) - AM_RANGE(0x1e0002, 0x1e0003) AM_READ(input_port_3_word_r) - AM_RANGE(0x1e4000, 0x1e4001) AM_READ(input_port_1_word_r) - AM_RANGE(0x1e4002, 0x1e4003) AM_READ(control1_r) - AM_RANGE(0x1e8000, 0x1e8001) AM_READ(control2_r) - AM_RANGE(0x1f0000, 0x1f0001) AM_READ(K053246_word_r) -#if JOE_DEBUG - AM_RANGE(0x110000, 0x110007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x160000, 0x160007) AM_READ(K056832_b_word_r) - AM_RANGE(0x1a0000, 0x1a001f) AM_READ(K053251_lsb_r) - AM_RANGE(0x1b0000, 0x1b003f) AM_READ(K056832_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x100fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) - AM_RANGE(0x110000, 0x110007) AM_WRITE(K053246_word_w) - AM_RANGE(0x120000, 0x121fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x122000, 0x123fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x130000, 0x131fff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x160000, 0x160007) AM_WRITE(K056832_b_word_w) // VSCCS (board dependent) - AM_RANGE(0x170000, 0x170001) AM_WRITE(MWA16_NOP) // Watchdog - AM_RANGE(0x180000, 0x18ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gijoe_workram) - AM_RANGE(0x190000, 0x190fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(K053251_lsb_w) - AM_RANGE(0x1b0000, 0x1b003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(sound_cmd_w) - AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(MWA16_RAM) // sound regs write fall through - AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(sound_irq_w) - AM_RANGE(0x1e8000, 0x1e8001) AM_WRITE(control2_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xebff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xfa2f) AM_READ(K054539_0_r) - AM_RANGE(0xfc02, 0xfc02) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xebff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf800, 0xfa2f) AM_WRITE(K054539_0_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(soundlatch2_w) -ADDRESS_MAP_END - -INPUT_PORTS_START( gijoe ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) // EEPROM data - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) // EEPROM ready (always 1) - PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_DIPNAME( 0x0080, 0x0000, "Sound" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Stereo ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_DIPNAME( 0x8000, 0x8000, "Coin mechanism" ) - PORT_DIPSETTING( 0x8000, "Common" ) - PORT_DIPSETTING( 0x0000, "Independant" ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0080, "2" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1, - NULL, - sound_nmi -}; - -static MACHINE_DRIVER_START( gijoe ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* Confirmed */ - MDRV_CPU_PROGRAM_MAP(readmem, writemem) - MDRV_CPU_VBLANK_INT(gijoe_interrupt, 1) - - MDRV_CPU_ADD(Z80, 8000000) - /* audio CPU */ /* Amuse & confirmed. z80e */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(gijoe) - MDRV_NVRAM_HANDLER(gijoe) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(gijoe) - MDRV_VIDEO_UPDATE(gijoe) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -ROM_START( gijoe ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "069eab03.rom", 0x000000, 0x40000, CRC(dd2d533f) SHA1(6fc9f7a8fc89155ef2b9ee43fe5e456d9b574f8c) ) - ROM_LOAD16_BYTE( "069eab02.rom", 0x000001, 0x40000, CRC(6bb11c87) SHA1(86581d24f73f2e837f1d4fc5f1f2188f610c50b6) ) - ROM_LOAD16_BYTE( "069a12", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE( "069a11", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "069a01", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "069a10", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD( "069a09", 0x100000, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "069a08", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD( "069a05", 0x100000, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD( "069a07", 0x200000, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD( "069a06", 0x300000, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "069a04", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) -ROM_END - -ROM_START( gijoeu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE("069b03", 0x000000, 0x40000, CRC(25ff77d2) SHA1(bea2ae975718806698fd35ef1217bd842b2b69ec) ) - ROM_LOAD16_BYTE("069b02", 0x000001, 0x40000, CRC(31cced1c) SHA1(3df1def671966b3c3d8117ac1b68adeeef9d98c0) ) - ROM_LOAD16_BYTE("069a12", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE("069a11", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "069a01", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "069a10", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD( "069a09", 0x100000, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "069a08", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD( "069a05", 0x100000, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD( "069a07", 0x200000, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD( "069a06", 0x300000, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "069a04", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) -ROM_END - -ROM_START( gijoej ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE("069jaa03", 0x000000, 0x40000, CRC(4b398901) SHA1(98fcc6ae9cc69c67d82eb1a7ab0bb71e61aee623) ) - ROM_LOAD16_BYTE("069jaa02", 0x000001, 0x40000, CRC(8bb22392) SHA1(9f066ce2b529f7dad6f80a91fff266c478d56414) ) - ROM_LOAD16_BYTE("069a12", 0x080000, 0x40000, CRC(75a7585c) SHA1(443d6dee99edbe81ab1b7289e6cad403fe01cc0d) ) - ROM_LOAD16_BYTE("069a11", 0x080001, 0x40000, CRC(3153e788) SHA1(fde4543eac707ef24b431e64011cf0f923d4d3ac) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "069a01", 0x000000, 0x010000, CRC(74172b99) SHA1(f5e0e0d43317454fdacd3df7cd3035fcae4aef68) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "069a10", 0x000000, 0x100000, CRC(4c6743ee) SHA1(fa94fbfb55955fdb40705e79b49103676961d919) ) - ROM_LOAD( "069a09", 0x100000, 0x100000, CRC(e6e36b05) SHA1(fecad503f2c285b2b0312e888c06dd6e87f95a07) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "069a08", 0x000000, 0x100000, CRC(325477d4) SHA1(140c57b0ac9e5cf702d788f416408a5eeb5d6d3c) ) - ROM_LOAD( "069a05", 0x100000, 0x100000, CRC(c4ab07ed) SHA1(dc806eff00937d9465b1726fae8fdc3022464a28) ) - ROM_LOAD( "069a07", 0x200000, 0x100000, CRC(ccaa3971) SHA1(16989cbbd65fe1b41c4a85fea02ba1e9880818a9) ) - ROM_LOAD( "069a06", 0x300000, 0x100000, CRC(63eba8e1) SHA1(aa318d356c2580765452106ea0d2228273a90523) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "069a04", 0x000000, 0x200000, CRC(11d6dcd6) SHA1(04cbff9f61cd8641db538db809ddf20da29fd5ac) ) -ROM_END - -static DRIVER_INIT( gijoe ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_4(REGION_GFX2); -} - -GAME( 1992, gijoe, 0, gijoe, gijoe, gijoe, ROT0, "Konami", "GI Joe (World)", 0) -GAME( 1992, gijoeu, gijoe, gijoe, gijoe, gijoe, ROT0, "Konami", "GI Joe (US)", 0) -GAME( 1992, gijoej, gijoe, gijoe, gijoe, gijoe, ROT0, "Konami", "GI Joe (Japan)", 0) diff --git a/src/drivers/glass.c b/src/drivers/glass.c deleted file mode 100644 index e201cc8f6..000000000 --- a/src/drivers/glass.c +++ /dev/null @@ -1,344 +0,0 @@ -/*************************************************************************** - -Glass (c) 1993 Gaelco (Developed by OMK. Produced by Gaelco) - -Driver by Manuel Abadia - -The DS5002FP has up to 128KB undumped gameplay code making the game unplayable :_( - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "sound/okim6295.h" - -extern UINT16 *glass_vregs; -extern UINT16 *glass_videoram; -extern UINT16 *glass_spriteram; -extern int glass_current_bit; - -/* from vidhrdw/glass.c */ -WRITE16_HANDLER( glass_vram_w ); -WRITE16_HANDLER( glass_blitter_w ); -VIDEO_START( glass ); -VIDEO_UPDATE( glass ); - -static int cause_interrupt; - -static MACHINE_RESET( glass ) -{ - cause_interrupt = 1; - glass_current_bit = 0; -} - -static WRITE16_HANDLER( clr_int_w ) -{ - cause_interrupt = 1; -} - -static INTERRUPT_GEN( glass_interrupt ) -{ - if (cause_interrupt){ - cpunum_set_input_line(0, 6, HOLD_LINE); - cause_interrupt = 0; - } -} - - -static const gfx_layout glass_tilelayout16 = -{ - 16,16, /* 16x16 tiles */ - 0x100000/32, /* number of tiles */ - 4, /* 4 bpp */ - { 3*0x100000*8, 2*0x100000*8, 1*0x100000*8, 0*0x100000*8 }, - { - 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 - }, - { - 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 - }, - 32*8 -}; - -static const gfx_decode glass_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x000000, &glass_tilelayout16, 0, 64 }, - { -1 } -}; - - -static ADDRESS_MAP_START( glass_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) /* ROM */ - AM_RANGE(0x100000, 0x101fff) AM_READ(MRA16_RAM) /* Video RAM */ - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) /* Extra Video RAM */ - AM_RANGE(0x200000, 0x2007ff) AM_READ(MRA16_RAM) /* Palette */ - AM_RANGE(0x440000, 0x440fff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x700000, 0x700001) AM_READ(input_port_0_word_r) /* DIPSW #2 */ - AM_RANGE(0x700002, 0x700003) AM_READ(input_port_1_word_r) /* DIPSW #1 */ - AM_RANGE(0x700004, 0x700005) AM_READ(input_port_2_word_r) /* 1P Inputs */ - AM_RANGE(0x700006, 0x700007) AM_READ(input_port_3_word_r) /* 2P Inputs + Button 3 */ - AM_RANGE(0x70000e, 0x70000f) AM_READ(OKIM6295_status_0_lsb_r)/* OKI6295 status register */ - AM_RANGE(0xfec000, 0xfeffff) AM_READ(MRA16_RAM) /* Work RAM (partially shared with DS5002FP) */ -ADDRESS_MAP_END - - -static WRITE16_HANDLER( OKIM6295_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_SOUND1); - - if (ACCESSING_LSB){ - memcpy(&RAM[0x30000], &RAM[0x40000 + (data & 0x0f)*0x10000], 0x10000); - } -} - -static WRITE16_HANDLER( glass_coin_w ) -{ - switch (offset >> 3){ - case 0x00: /* Coin Lockouts */ - case 0x01: - coin_lockout_w((offset >> 3) & 0x01, ~data & 0x01); - break; - case 0x02: /* Coin Counters */ - case 0x03: - coin_counter_w((offset >> 3) & 0x01, data & 0x01); - break; - case 0x04: /* Sound Muting (if bit 0 == 1, sound output stream = 0) */ - break; - } -} - -static ADDRESS_MAP_START( glass_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) /* ROM */ - AM_RANGE(0x100000, 0x101fff) AM_WRITE(glass_vram_w) AM_BASE(&glass_videoram) /* Video RAM */ - AM_RANGE(0x102000, 0x102fff) AM_WRITE(MWA16_RAM) /* Extra Video RAM */ - AM_RANGE(0x108000, 0x108007) AM_WRITE(MWA16_RAM) AM_BASE(&glass_vregs) /* Video Registers */ - AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) /* CLR INT Video */ - AM_RANGE(0x200000, 0x2007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */ - AM_RANGE(0x440000, 0x440fff) AM_WRITE(MWA16_RAM) AM_BASE(&glass_spriteram) /* Sprite RAM */ - AM_RANGE(0x700008, 0x700009) AM_WRITE(glass_blitter_w) /* serial blitter */ - AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ - AM_RANGE(0x70000e, 0x70000f) AM_WRITE(OKIM6295_data_0_lsb_w) /* OKI6295 data register */ - AM_RANGE(0x70000a, 0x70004b) AM_WRITE(glass_coin_w) /* Coin Counters/Lockout */ - AM_RANGE(0xfec000, 0xfeffff) AM_WRITE(MWA16_RAM) /* Work RAM (partially shared with DS5002FP) */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( glass ) -PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Light" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - -PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x40, "Credit configuration" ) - PORT_DIPSETTING( 0x40, "Start 1C" ) - PORT_DIPSETTING( 0x00, "Start 2C" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -PORT_START /* 1P INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - -PORT_START /* 2P INPUTS + Button 3 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( glass ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz (M680000 P12) */ - MDRV_CPU_PROGRAM_MAP(glass_readmem,glass_writemem) - MDRV_CPU_VBLANK_INT(glass_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(glass) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*16, 32*16) - MDRV_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1) - MDRV_GFXDECODE(glass_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(glass) - MDRV_VIDEO_UPDATE(glass) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -ROM_START( glass ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "1.c23", 0x000000, 0x040000, CRC(aeebd4ed) SHA1(04759dc146dff0fc74b78d70e79dfaebe68328f9) ) - ROM_LOAD16_BYTE( "2.c22", 0x000001, 0x040000, CRC(165e2e01) SHA1(180a2e2b5151f2321d85ac23eff7fbc9f52023a5) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Graphics */ - /* 0x000000-0x3fffff filled in later in the DRIVER_INIT */ - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Graphics */ - ROM_LOAD( "h13.bin", 0x000000, 0x200000, CRC(13ab7f31) SHA1(468424f74d6cccd1b445a9f20e2d24bc46d61ed6) ) - ROM_LOAD( "h11.bin", 0x200000, 0x200000, CRC(c6ac41c8) SHA1(22408ef1e35c66d0fba0c72972c46fad891d1193) ) - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* 16 bitmaps (320x200, indexed colors) */ - ROM_LOAD( "h9.bin", 0x000000, 0x100000, CRC(b9492557) SHA1(3f5c0d696d65e1cd492763dfa749c813dd56a9bf) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "c1.bin", 0x000000, 0x100000, CRC(d9f075a2) SHA1(31a7a677861f39d512e9d1f51925c689e481159a) ) - /* 0x00000-0x2ffff is fixed, 0x30000-0x3ffff is bank switched from all the ROMs */ - ROM_RELOAD( 0x040000, 0x100000 ) -ROM_END - -ROM_START( glass10 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "c23.bin", 0x000000, 0x040000, CRC(688cdf33) SHA1(b59dcc3fc15f72037692b745927b110e97d8282e) ) - ROM_LOAD16_BYTE( "c22.bin", 0x000001, 0x040000, CRC(ab17c992) SHA1(1509b5b4bbfb4e022e0ab6fbbc0ffc070adfa531) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Graphics */ - /* 0x000000-0x3fffff filled in later in the DRIVER_INIT */ - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Graphics */ - ROM_LOAD( "h13.bin", 0x000000, 0x200000, CRC(13ab7f31) SHA1(468424f74d6cccd1b445a9f20e2d24bc46d61ed6) ) - ROM_LOAD( "h11.bin", 0x200000, 0x200000, CRC(c6ac41c8) SHA1(22408ef1e35c66d0fba0c72972c46fad891d1193) ) - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* 16 bitmaps (320x200, indexed colors) */ - ROM_LOAD( "h9.bin", 0x000000, 0x100000, CRC(b9492557) SHA1(3f5c0d696d65e1cd492763dfa749c813dd56a9bf) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "c1.bin", 0x000000, 0x100000, CRC(d9f075a2) SHA1(31a7a677861f39d512e9d1f51925c689e481159a) ) - /* 0x00000-0x2ffff is fixed, 0x30000-0x3ffff is bank switched from all the ROMs */ - ROM_RELOAD( 0x040000, 0x100000 ) -ROM_END - -ROM_START( glass10a ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "gl.c23", 0x000000, 0x040000, CRC(c1393bea) SHA1(a5f877ba38305a7b49fa3c96b9344cbf71e8c9ef -) ) - ROM_LOAD16_BYTE( "gl.c22", 0x000001, 0x040000, CRC(0d6fa33e) SHA1(37e9258ef7e108d034c80abc8e5e5ab6dacf0a61) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Graphics */ - /* 0x000000-0x3fffff filled in later in the DRIVER_INIT */ - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Graphics */ - ROM_LOAD( "h13.bin", 0x000000, 0x200000, CRC(13ab7f31) SHA1(468424f74d6cccd1b445a9f20e2d24bc46d61ed6) ) - ROM_LOAD( "h11.bin", 0x200000, 0x200000, CRC(c6ac41c8) SHA1(22408ef1e35c66d0fba0c72972c46fad891d1193) ) - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) /* 16 bitmaps (320x200, indexed colors) */ - ROM_LOAD( "h9.bin", 0x000000, 0x100000, CRC(b9492557) SHA1(3f5c0d696d65e1cd492763dfa749c813dd56a9bf) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* ADPCM samples - sound chip is OKIM6295 */ - ROM_LOAD( "c1.bin", 0x000000, 0x100000, CRC(d9f075a2) SHA1(31a7a677861f39d512e9d1f51925c689e481159a) ) - /* 0x00000-0x2ffff is fixed, 0x30000-0x3ffff is bank switched from all the ROMs */ - ROM_RELOAD( 0x040000, 0x100000 ) -ROM_END - -/*************************************************************************** - - Split even/odd bytes from ROMs in 16 bit mode to different memory areas - -***************************************************************************/ - -void glass_ROM16_split(int src_reg, int dst_reg, int start, int length, int dest1, int dest2) -{ - int i; - - /* get a pointer to the source data */ - UINT8 *src = (UINT8 *)memory_region(src_reg); - - /* get a pointer to the destination data */ - UINT8 *dst = (UINT8 *)memory_region(dst_reg); - - /* fill destination areas with the proper data */ - for (i = 0; i < length/2; i++){ - dst[dest1 + i] = src[start + i*2 + 0]; - dst[dest2 + i] = src[start + i*2 + 1]; - } -} - -static DRIVER_INIT( glass ) -{ - /* - For REGION_GFX2 we have this memory map: - 0x000000-0x1fffff ROM H13 - 0x200000-0x3fffff ROM H11 - - and we are going to construct this one for REGION_GFX1: - 0x000000-0x0fffff ROM H13 even bytes - 0x100000-0x1fffff ROM H13 odd bytes - 0x200000-0x2fffff ROM H11 even bytes - 0x300000-0x3fffff ROM H11 odd bytes - */ - - /* split ROM H13 */ - glass_ROM16_split(REGION_GFX2, REGION_GFX1, 0x0000000, 0x0200000, 0x0000000, 0x0100000); - - /* split ROM H11 */ - glass_ROM16_split(REGION_GFX2, REGION_GFX1, 0x0200000, 0x0200000, 0x0200000, 0x0300000); -} - -GAME( 1993, glass, 0, glass,glass, glass, ROT0, "Gaelco", "Glass (Ver 1.1)", GAME_UNEMULATED_PROTECTION ) -GAME( 1993, glass10 , glass, glass,glass, glass, ROT0, "Gaelco", "Glass (Ver 1.0)", GAME_UNEMULATED_PROTECTION ) -GAME( 1993, glass10a, glass, glass,glass, glass, ROT0, "Gaelco", "Glass (Ver 1.0 set 2)", GAME_UNEMULATED_PROTECTION ) diff --git a/src/drivers/gng.c b/src/drivers/gng.c deleted file mode 100644 index 8b1803973..000000000 --- a/src/drivers/gng.c +++ /dev/null @@ -1,636 +0,0 @@ -/*************************************************************************** - -Ghosts'n Goblins -Diamond Run - - -Notes: -- Diamond Run doesn't use all the ROMs. d5 is not used at all, and the second - half of d3o is not used either. There are 0x38 levels in total, the data for - levels 0x00-0x0f is taken from ROM space 0x8000-0xbfff, the data for levels - 0x10-0x37 is taken from the banked space 0x4000-0x5fff (5 banks) (see the - table at 0xc66f). Actually, looking at the code it seems to roll overs at - level 0x2f, and indeed the data for levels 0x30-0x37 isn't valid (player - starts into a wall, or there are invisible walls, etc.) - The 0x6000-0x7fff ROM space doesn't seem to be used: instead the game writes - to 6048 and reads from 6000. Silly copy protection? - -- Increased REGION_GFX3 to address 0x400 sprites, to avoid Ghosts'n Goblins - from drawing a bad sprite. (18/08/2005 Pierpaolo Prazzoli) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "sound/2203intf.h" - - - -extern unsigned char *gng_fgvideoram; -extern unsigned char *gng_bgvideoram; -WRITE8_HANDLER( gng_fgvideoram_w ); -WRITE8_HANDLER( gng_bgvideoram_w ); -WRITE8_HANDLER( gng_bgscrollx_w ); -WRITE8_HANDLER( gng_bgscrolly_w ); -WRITE8_HANDLER( gng_flipscreen_w ); -VIDEO_START( gng ); -VIDEO_UPDATE( gng ); -VIDEO_EOF( gng ); - - - -static WRITE8_HANDLER( gng_bankswitch_w ) -{ - unsigned char *rom = memory_region(REGION_CPU1); - - - if (data == 4) - { - memory_set_bankptr(1,rom + 0x4000); - } - else - { - memory_set_bankptr(1,rom + 0x10000 + (data & 3) * 0x2000); - } -} - -static WRITE8_HANDLER( gng_coin_counter_w ) -{ - coin_counter_w(offset,data); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_READ(MRA8_RAM) - AM_RANGE(0x3000, 0x3000) AM_READ(input_port_0_r) - AM_RANGE(0x3001, 0x3001) AM_READ(input_port_1_r) - AM_RANGE(0x3002, 0x3002) AM_READ(input_port_2_r) - AM_RANGE(0x3003, 0x3003) AM_READ(input_port_3_r) - AM_RANGE(0x3004, 0x3004) AM_READ(input_port_4_r) - AM_RANGE(0x3c00, 0x3c00) AM_READ(MRA8_NOP) /* watchdog? */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x6000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1dff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1e00, 0x1fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(gng_fgvideoram_w) AM_BASE(&gng_fgvideoram) - AM_RANGE(0x2800, 0x2fff) AM_WRITE(gng_bgvideoram_w) AM_BASE(&gng_bgvideoram) - AM_RANGE(0x3800, 0x38ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0x3900, 0x39ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_split1_w) AM_BASE(&paletteram) - AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_w) - AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w) - AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w) - AM_RANGE(0x3c00, 0x3c00) AM_WRITE(MWA8_NOP) /* watchdog? */ - AM_RANGE(0x3d00, 0x3d00) AM_WRITE(gng_flipscreen_w) -// { 0x3d01, 0x3d01, reset sound cpu? - AM_RANGE(0x3d02, 0x3d03) AM_WRITE(gng_coin_counter_w) - AM_RANGE(0x3e00, 0x3e00) AM_WRITE(gng_bankswitch_w) - AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2203_write_port_1_w) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -#define GNG_COMMON \ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN2")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("DSW0")\ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )\ - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) )\ - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) )\ - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) )\ - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) )\ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) )\ - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) )\ - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) )\ - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )\ - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )\ - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )\ - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) )\ - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ - PORT_DIPNAME( 0x10, 0x10, "Coinage affects" )\ - PORT_DIPSETTING( 0x10, DEF_STR( Coin_A ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Coin_B ) )\ - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )\ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_SERVICE( 0x40, IP_ACTIVE_LOW )\ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) )\ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_START_TAG("DSW1")\ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )\ - PORT_DIPSETTING( 0x03, "3" )\ - PORT_DIPSETTING( 0x02, "4" )\ - PORT_DIPSETTING( 0x01, "5" )\ - PORT_DIPSETTING( 0x00, "7" )\ - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )\ - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )\ - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )\ - PORT_DIPSETTING( 0x18, "20000 70000 70000" )\ - PORT_DIPSETTING( 0x10, "30000 80000 80000" )\ - PORT_DIPSETTING( 0x08, "20000 80000" )\ - PORT_DIPSETTING( 0x00, "30000 80000" )\ - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )\ - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) )\ - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) )\ - PORT_DIPSETTING( 0x20, "Difficult" )\ - PORT_DIPSETTING( 0x00, "Very Difficult" ) - -INPUT_PORTS_START( gng ) -GNG_COMMON - - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/* identical to gng, but the "unknown" dip switch is Invulnerability */ -INPUT_PORTS_START( makaimur ) -GNG_COMMON - PORT_DIPNAME( 0x80, 0x80, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( diamond ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) 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_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x04, "*2" ) - PORT_DIPSETTING( 0x08, "*3" ) - PORT_DIPSETTING( 0x0c, "*4" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x00, "Unknown DSW1 7" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, "Unknown DSW2 1" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "Unknown DSW2 2" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Unknown DSW2 3" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Unknown DSW2 4" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, "*1" ) - PORT_DIPSETTING( 0x10, "*2" ) - PORT_DIPSETTING( 0x20, "*3" ) - PORT_DIPSETTING( 0x30, "*4" ) - PORT_DIPNAME( 0x40, 0x00, "Unknown DSW2 7" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Unknown DSW2 8" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 -}; -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 -}; - - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x80, 16 }, /* colors 0x80-0xbf */ - { REGION_GFX2, 0, &tilelayout, 0x00, 8 }, /* colors 0x00-0x3f */ - { REGION_GFX3, 0, &spritelayout, 0x40, 4 }, /* colors 0x40-0x7f */ - { -1 } /* end of array */ -}; - - - - -static MACHINE_DRIVER_START( gng ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 1500000) /* 1.5 MHz ? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(gng) - MDRV_VIDEO_EOF(gng) - MDRV_VIDEO_UPDATE(gng) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) - MDRV_SOUND_ROUTE(2, "mono", 0.40) - MDRV_SOUND_ROUTE(3, "mono", 0.20) - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) - MDRV_SOUND_ROUTE(2, "mono", 0.40) - MDRV_SOUND_ROUTE(3, "mono", 0.20) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( gng ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "gg4.bin", 0x04000, 0x4000, CRC(66606beb) SHA1(4c640f49be93c7d2b12d4d4c56c56e74099b6c2f) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "gg3.bin", 0x08000, 0x8000, CRC(9e01c65e) SHA1(a87880d87c64a6d61313c3bc69c8d49511e0f9c3) ) - ROM_LOAD( "gg5.bin", 0x10000, 0x8000, CRC(d6397b2b) SHA1(39aa3cb8c229e60ac0ac410ff61e0c09dba78501) ) /* page 0, 1, 2, 3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ - - ROM_REGION( 0x0100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "gg-pal10l8.bin", 0x0000, 0x002c, CRC(87f1b7e0) SHA1(b719c3be7bd4a02660bb0887f752e9769cbd37d2) ) -ROM_END - -ROM_START( gnga ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "gng.n10", 0x04000, 0x4000, CRC(60343188) SHA1(dfc95d3f23a3a4b05b559f1dc76488b2659fbf66) ) - ROM_LOAD( "gng.n9", 0x08000, 0x4000, CRC(b6b91cfb) SHA1(019a38b1c4e987715be1575948a3dc06ee59123d) ) - ROM_LOAD( "gng.n8", 0x0c000, 0x4000, CRC(a5cfa928) SHA1(29dada8c4dbe04969d0d68faac559d2b4a3db711) ) - ROM_LOAD( "gng.n13", 0x10000, 0x4000, CRC(fd9a8dda) SHA1(222c3c759c6b60f82351b9e6bf748fb4872e82b4) ) - ROM_LOAD( "gng.n12", 0x14000, 0x4000, CRC(13cf6238) SHA1(0305908e922891a6a6b6c29e6a099867215d084e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - -ROM_START( gngt ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "mm04", 0x04000, 0x4000, CRC(652406f6) SHA1(3b2bafd31f670ea26c568c48f3bd00597e5a2ed6) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "mm03", 0x08000, 0x8000, CRC(fb040b42) SHA1(c1c58943bd20c6a2520b39fae90067769ec97ed6) ) - ROM_LOAD( "mm05", 0x10000, 0x8000, CRC(8f7cff61) SHA1(1875f254a7737e1fbf6770ee4a322d675d043a44) ) /* page 0, 1, 2, 3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gg17.bin", 0x00000, 0x4000, CRC(93e50a8f) SHA1(42d367f57bb2fdf60a0445ac1533da99cfeaa617) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gg14.bin", 0x10000, 0x4000, CRC(6aaf12f9) SHA1(207a7407288182a4f3eddaea634c6a6452131182) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - -ROM_START( makaimur ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "10n.rom", 0x04000, 0x4000, CRC(81e567e0) SHA1(2a917e562686e782ea7d034a54e9728695a19258) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "8n.rom", 0x08000, 0x8000, CRC(9612d66c) SHA1(64c458d6d87b9c339488c9f0c89da2c796fcb759) ) - ROM_LOAD( "12n.rom", 0x10000, 0x8000, CRC(65a6a97b) SHA1(79de931ae183d8044cb6d9024b475196c679c86c) ) /* page 0, 1, 2, 3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - -ROM_START( makaimuc ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "mj04c.bin", 0x04000, 0x4000, CRC(1294edb1) SHA1(35d3b3ce4ee25d3cfa27097de0c9a2ab5e4892aa) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "mj03c.bin", 0x08000, 0x8000, CRC(d343332d) SHA1(3edf47ff2bd49b4451b737b6d3eb54256b489c81) ) - ROM_LOAD( "mj05c.bin", 0x10000, 0x8000, CRC(535342c2) SHA1(5f05a4965476f2db6fddec557d93d12ec1f9750c) ) /* page 0, 1, 2, 3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - -ROM_START( makaimug ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "mj04g.bin", 0x04000, 0x4000, CRC(757c94d3) SHA1(07f7cf788810a1425016e016ce3579adb3253ac7) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "mj03g.bin", 0x08000, 0x8000, CRC(61b043bb) SHA1(23a0a17d0abc4b084ffeba90266ef455361771cc) ) - ROM_LOAD( "mj05g.bin", 0x10000, 0x8000, CRC(f2fdccf5) SHA1(7694a981a6196d77fd2279fc34042b4cfb40c054) ) /* page 0, 1, 2, 3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gg2.bin", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gg1.bin", 0x00000, 0x4000, CRC(ecfccf07) SHA1(0a1518e19a2e0a4cc3dde4b9568202ea911b5ece) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gg11.bin", 0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "gg10.bin", 0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "gg9.bin", 0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "gg8.bin", 0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "gg7.bin", 0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "gg6.bin", 0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "gng13.n4", 0x00000, 0x4000, CRC(4613afdc) SHA1(13e5a38a134bd7cfa16c63a18fa332c6d66b9345) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "gg16.bin", 0x04000, 0x4000, CRC(06d7e5ca) SHA1(9e06012bcd82f98fad43de666ef9a75979d940ab) ) /* sprites 1 Plane 1-2 */ - ROM_LOAD( "gg15.bin", 0x08000, 0x4000, CRC(bc1fe02d) SHA1(e3a1421d465b87148ffa94f5673b2307f0246afe) ) /* sprites 2 Plane 1-2 */ - ROM_LOAD( "gng16.l4", 0x10000, 0x4000, CRC(608d68d5) SHA1(af207f9ee2f93a0cf9cf25cfe72b0fdfe55481b8) ) /* sprites 0 Plane 3-4 */ - ROM_LOAD( "gg13.bin", 0x14000, 0x4000, CRC(e80c3fca) SHA1(cb641c25bb04b970b2cbeca41adb792bbe142fb5) ) /* sprites 1 Plane 3-4 */ - ROM_LOAD( "gg12.bin", 0x18000, 0x4000, CRC(7780a925) SHA1(3f129ca6d695548b659955fe538584bd9ac2ff17) ) /* sprites 2 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "tbp24s10.14k", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "63s141.2e", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - -ROM_START( diamond ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "d3o", 0x04000, 0x4000, CRC(ba4bf9f1) SHA1(460e01f5ba9cd0c76d1a2ea1e66e9ad49ef1e13b) ) /* 4000-5fff is page 4 */ - ROM_LOAD( "d3", 0x08000, 0x8000, CRC(f436d6fa) SHA1(18287ac51e717ea2ba9b307a738f76735120f21b) ) - ROM_LOAD( "d5o", 0x10000, 0x8000, CRC(ae58bd3a) SHA1(674611c7107cae53150fc249ffc616df891698fe) ) /* page 0, 1, 2, 3 */ - ROM_LOAD( "d5", 0x18000, 0x8000, CRC(453f3f9e) SHA1(b4dcf2eb0e6d4eca8ccde6e1a60f5e002e49a57b) ) /* is this supposed to be used? */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "d2", 0x0000, 0x8000, CRC(615f5b6f) SHA1(7ef9ec5c2072e21c787a6bbf700033f50c759c1d) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d1", 0x00000, 0x4000, CRC(3a24e504) SHA1(56bc38413b8a0dc2829e9c8f7bcfabafe26fd257) ) /* characters */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "d11", 0x00000, 0x4000, CRC(754357d7) SHA1(eb6e07a5f2d02687306711845001205bf0efa61b) ) /* tiles 0-1 Plane 1*/ - ROM_LOAD( "d10", 0x04000, 0x4000, CRC(7531edcd) SHA1(dc3eabf7e7503f0588f65620d26c1bc5eebde211) ) /* tiles 2-3 Plane 1*/ - ROM_LOAD( "d9", 0x08000, 0x4000, CRC(22eeca08) SHA1(6454b6c0a7a0991744386b79d4988a2517ad0636) ) /* tiles 0-1 Plane 2*/ - ROM_LOAD( "d8", 0x0c000, 0x4000, CRC(6b61be60) SHA1(a92ff6e922da523caec1919f53bea48dab4ca564) ) /* tiles 2-3 Plane 2*/ - ROM_LOAD( "d7", 0x10000, 0x4000, CRC(fd595274) SHA1(8d22f89a7251ecc8b56ee3f8cfaab2fd5a716b3f) ) /* tiles 0-1 Plane 3*/ - ROM_LOAD( "d6", 0x14000, 0x4000, CRC(7f51dcd2) SHA1(ff4a68a7a6a5caa558898b03ba4a4dc3ab43ce30) ) /* tiles 2-3 Plane 3*/ - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "d17", 0x00000, 0x4000, CRC(8164b005) SHA1(d03bf62734b03c90a8393a23f8ce0a3769c43bf7) ) /* sprites 0 Plane 1-2 */ - ROM_LOAD( "d14", 0x10000, 0x4000, CRC(6f132163) SHA1(cd1ebf9671bcce58896dadbf20f036eaadbe8bd5) ) /* sprites 0 Plane 3-4 */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "prom1", 0x0000, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "prom2", 0x0100, 0x0100, CRC(4a1285a4) SHA1(5018c3950b675af58db499e2883ecbc55419b491) ) /* priority (not used) */ -ROM_END - - - -static READ8_HANDLER( diamond_hack_r ) -{ - return 0; -} - -static DRIVER_INIT( diamond ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000, 0x6000, 0, 0, diamond_hack_r); -} - - - -GAME( 1985, gng, 0, gng, gng, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", 0 ) -GAME( 1985, gnga, gng, gng, gng, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", 0 ) -GAME( 1985, gngt, gng, gng, gng, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", 0 ) -GAME( 1985, makaimur, gng, gng, makaimur, 0, ROT0, "Capcom", "Makai-Mura (Japan)", 0 ) -GAME( 1985, makaimuc, gng, gng, makaimur, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", 0 ) -GAME( 1985, makaimug, gng, gng, makaimur, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", 0 ) -GAME( 1989, diamond, 0, gng, diamond, diamond, ROT0, "KH Video", "Diamond Run", 0 ) - diff --git a/src/drivers/gradius3.c b/src/drivers/gradius3.c deleted file mode 100644 index b9c1dc727..000000000 --- a/src/drivers/gradius3.c +++ /dev/null @@ -1,566 +0,0 @@ -/*************************************************************************** - -Gradius 3 (GX945) (c) 1989 Konami - -driver by Nicola Salmoria - -This board uses the well known 052109 051962 custom gfx chips, however unlike -all other games they fetch gfx data from RAM. The gfx ROMs are memory mapped -on cpu B and the needed parts are copied to RAM at run time. -To handle this efficiently in MAME, some changes would be required to the -tilemap system and to vidhrdw/konamiic.c. For the time being, I'm kludging -my way in. -There's also something wrong in the way tile banks are implemented in -konamiic.c. They don't seem to be used by this game. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" - - -extern UINT16 *gradius3_gfxram; -extern int gradius3_priority; -VIDEO_START( gradius3 ); -READ16_HANDLER( gradius3_gfxrom_r ); -READ16_HANDLER( gradius3_gfxram_r ); -WRITE16_HANDLER( gradius3_gfxram_w ); -VIDEO_UPDATE( gradius3 ); - - - -static READ16_HANDLER( K052109_halfword_r ) -{ - return K052109_r(offset); -} - -static WRITE16_HANDLER( K052109_halfword_w ) -{ - if (ACCESSING_LSB) - K052109_w(offset,data & 0xff); - - /* is this a bug in the game or something else? */ - if (!ACCESSING_LSB) - K052109_w(offset,(data >> 8) & 0xff); -// logerror("%06x half %04x = %04x\n",activecpu_get_pc(),offset,data); -} - -static READ16_HANDLER( K051937_halfword_r ) -{ - return K051937_r(offset); -} - -static WRITE16_HANDLER( K051937_halfword_w ) -{ - if (ACCESSING_LSB) - K051937_w(offset,data & 0xff); -} - -static READ16_HANDLER( K051960_halfword_r ) -{ - return K051960_r(offset); -} - -static WRITE16_HANDLER( K051960_halfword_w ) -{ - if (ACCESSING_LSB) - K051960_w(offset,data & 0xff); -} - - - -static int irqAen,irqBmask; - - -static MACHINE_RESET( gradius3 ) -{ - /* start with cpu B halted */ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - irqAen = 0; - irqBmask = 0; -} - -static UINT16 *sharedram; - -static READ16_HANDLER( sharedram_r ) -{ - return sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&sharedram[offset]); -} - -static WRITE16_HANDLER( cpuA_ctrl_w ) -{ - if (ACCESSING_MSB) - { - data >>= 8; - - /* bits 0-1 are coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 2 selects layer priority */ - gradius3_priority = data & 0x04; - - /* bit 3 enables cpu B */ - cpunum_set_input_line(1, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); - - /* bit 5 enables irq */ - irqAen = data & 0x20; - - /* other bits unknown */ -//logerror("%06x: write %04x to c0000\n",activecpu_get_pc(),data); - } -} - -static WRITE16_HANDLER( cpuB_irqenable_w ) -{ - if (ACCESSING_MSB) - irqBmask = (data >> 8) & 0x07; -} - -static INTERRUPT_GEN( cpuA_interrupt ) -{ - if (irqAen) - cpunum_set_input_line(0, 2, HOLD_LINE); -} - -static INTERRUPT_GEN( cpuB_interrupt ) -{ - if (cpu_getiloops() & 1) /* ??? */ - { - if (irqBmask & 2) - cpunum_set_input_line(1, 2, HOLD_LINE); - } - else - { - if (irqBmask & 1) - cpunum_set_input_line(1, 1, HOLD_LINE); - } -} - -static WRITE16_HANDLER( cpuB_irqtrigger_w ) -{ - if (irqBmask & 4) - { -logerror("%04x trigger cpu B irq 4 %02x\n",activecpu_get_pc(),data); - cpunum_set_input_line(1,4,HOLD_LINE); - } - else -logerror("%04x MISSED cpu B irq 4 %02x\n",activecpu_get_pc(),data); -} - -static WRITE16_HANDLER( sound_command_w ) -{ - if (ACCESSING_MSB) - soundlatch_w(0,(data >> 8) & 0xff); -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line_and_vector(2,0,HOLD_LINE,0xff); -} - -static WRITE8_HANDLER( sound_bank_w ) -{ - int bank_A, bank_B; - - /* banks # for the 007232 (chip 1) */ - bank_A = ((data >> 0) & 0x03); - bank_B = ((data >> 2) & 0x03); - K007232_set_bank( 0, bank_A, bank_B ); -} - - - -static ADDRESS_MAP_START( gradius3_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x043fff) AM_READ(MRA16_RAM) - AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0c8000, 0x0c8001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0c8002, 0x0c8003) AM_READ(input_port_1_word_r) - AM_RANGE(0x0c8004, 0x0c8005) AM_READ(input_port_2_word_r) - AM_RANGE(0x0c8006, 0x0c8007) AM_READ(input_port_5_word_r) - AM_RANGE(0x0d0000, 0x0d0001) AM_READ(input_port_3_word_r) - AM_RANGE(0x0d0002, 0x0d0003) AM_READ(input_port_4_word_r) - AM_RANGE(0x100000, 0x103fff) AM_READ(sharedram_r) - AM_RANGE(0x14c000, 0x153fff) AM_READ(K052109_halfword_r) - AM_RANGE(0x180000, 0x19ffff) AM_READ(gradius3_gfxram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gradius3_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x040000, 0x043fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x080000, 0x080fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */ - AM_RANGE(0x0d8000, 0x0d8001) AM_WRITE(cpuB_irqtrigger_w) - AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x0e8000, 0x0e8001) AM_WRITE(sound_command_w) - AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE(sound_irq_w) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) - AM_RANGE(0x14c000, 0x153fff) AM_WRITE(K052109_halfword_w) - AM_RANGE(0x180000, 0x19ffff) AM_WRITE(gradius3_gfxram_w) AM_BASE(&gradius3_gfxram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( gradius3_readmem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x203fff) AM_READ(sharedram_r) - AM_RANGE(0x24c000, 0x253fff) AM_READ(K052109_halfword_r) - AM_RANGE(0x280000, 0x29ffff) AM_READ(gradius3_gfxram_r) - AM_RANGE(0x2c0000, 0x2c000f) AM_READ(K051937_halfword_r) - AM_RANGE(0x2c0800, 0x2c0fff) AM_READ(K051960_halfword_r) - AM_RANGE(0x400000, 0x5fffff) AM_READ(gradius3_gfxrom_r) /* gfx ROMs are mapped here, and copied to RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gradius3_writemem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x140000, 0x140001) AM_WRITE(cpuB_irqenable_w) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(sharedram_w) - AM_RANGE(0x24c000, 0x253fff) AM_WRITE(K052109_halfword_w) - AM_RANGE(0x280000, 0x29ffff) AM_WRITE(gradius3_gfxram_w) - AM_RANGE(0x2c0000, 0x2c000f) AM_WRITE(K051937_halfword_w) - AM_RANGE(0x2c0800, 0x2c0fff) AM_WRITE(K051960_halfword_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( gradius3_s_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_READ(MRA8_ROM) - AM_RANGE(0xf010, 0xf010) AM_READ(soundlatch_r) - AM_RANGE(0xf020, 0xf02d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xf031, 0xf031) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gradius3_s_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */ - AM_RANGE(0xf020, 0xf02d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xf030, 0xf030) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xf031, 0xf031) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( gradius3 ) - PORT_START /* COINS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // power-up - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // shoot - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) // missile - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20000 and every 70000" ) - PORT_DIPSETTING( 0x10, "100000 and every 100000" ) - PORT_DIPSETTING( 0x08, "50000" ) - PORT_DIPSETTING( 0x00, "100000" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) - PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory regions */ - volume_callback /* external port callback */ -}; - - - -static MACHINE_DRIVER_START( gradius3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz */ - MDRV_CPU_PROGRAM_MAP(gradius3_readmem,gradius3_writemem) - MDRV_CPU_VBLANK_INT(cpuA_interrupt,1) - - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz */ - MDRV_CPU_PROGRAM_MAP(gradius3_readmem2,gradius3_writemem2) - MDRV_CPU_VBLANK_INT(cpuB_interrupt,2) /* has three interrupt vectors, 1 2 and 4 */ - /* 4 is triggered by cpu A, the others are unknown but */ - /* required for the game to run. */ - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(gradius3_s_readmem,gradius3_s_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - MDRV_MACHINE_RESET(gradius3) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(gradius3) - MDRV_VIDEO_UPDATE(gradius3) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.20) - MDRV_SOUND_ROUTE(0, "right", 0.20) - MDRV_SOUND_ROUTE(1, "left", 0.20) - MDRV_SOUND_ROUTE(1, "right", 0.20) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( gradius3 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "945_s13.f15", 0x00000, 0x20000, CRC(70c240a2) SHA1(82dc391572e1f61b0182cb031654d71adcdd5f6e) ) - ROM_LOAD16_BYTE( "945_s12.e15", 0x00001, 0x20000, CRC(bbc300d4) SHA1(e1ca98bc591575285d7bd2d4fefdf35fed10dcb6) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "945_m09.r17", 0x000000, 0x20000, CRC(b4a6df25) SHA1(85533cf140d28f6f81c0b49b8061bda0924a613a) ) - ROM_LOAD16_BYTE( "945_m08.n17", 0x000001, 0x20000, CRC(74e981d2) SHA1(e7b47a2da01ff73293d2100c48fdf00b33125af5) ) - ROM_LOAD16_BYTE( "945_l06b.r11", 0x040000, 0x20000, CRC(83772304) SHA1(a90c75a3de670b6ec5e0fc201876d463b4a76766) ) - ROM_LOAD16_BYTE( "945_l06a.n11", 0x040001, 0x20000, CRC(e1fd75b6) SHA1(6160d80a2f1bf550e85d6253cf521a96f5a644cc) ) - ROM_LOAD16_BYTE( "945_l07c.r15", 0x080000, 0x20000, CRC(c1e399b6) SHA1(e95bd478dd3beea0175bf9ee4cededb111c4ace1) ) - ROM_LOAD16_BYTE( "945_l07a.n15", 0x080001, 0x20000, CRC(96222d04) SHA1(b55700f683a556b0e73dbac9c7b4ce485420d21c) ) - ROM_LOAD16_BYTE( "945_l07d.r13", 0x0c0000, 0x20000, CRC(4c16d4bd) SHA1(01dcf169b78a1e495214b10181401d1920b0c924) ) - ROM_LOAD16_BYTE( "945_l07b.n13", 0x0c0001, 0x20000, CRC(5e209d01) SHA1(0efa1bbfdc7e2ba1e0bb96245e2bfe961258b446) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "945_m05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_ERASE00 ) /* fake */ - /* gfx data is dynamically generated in RAM */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "945_a02.l3", 0x000000, 0x80000, CRC(4dfffd74) SHA1(588210bac27448240ef08961f70b714b69cb3ffd) ) - ROM_LOAD16_BYTE( "945_l04a.k6", 0x080000, 0x20000, CRC(884e21ee) SHA1(ce86dd3a06775e5b1aa09db010dcb674e67828e7) ) - ROM_LOAD16_BYTE( "945_l04c.m6", 0x080001, 0x20000, CRC(45bcd921) SHA1(e51a8a71362a6fb55124aa1dce74519c0a3c6e3f) ) - ROM_LOAD16_BYTE( "945_l04b.k8", 0x0c0000, 0x20000, CRC(843bc67d) SHA1(cdf8421083f24ab27867ed5d08d8949da192b2b9) ) - ROM_LOAD16_BYTE( "945_l04d.m8", 0x0c0001, 0x20000, CRC(0a98d08e) SHA1(1e0ca51a2d45c01fa3f11950ddd387f41ddae691) ) - ROM_LOAD( "945_a01.h3", 0x100000, 0x80000, CRC(339d6dd2) SHA1(6a52b826aba92c75fc6a5926184948735dc20812) ) - ROM_LOAD16_BYTE( "945_l03a.e6", 0x180000, 0x20000, CRC(a67ef087) SHA1(fd63474f3bbde5dfc53ed4c1db25d6411a8b54d2) ) - ROM_LOAD16_BYTE( "945_l03c.h6", 0x180001, 0x20000, CRC(a56be17a) SHA1(1d387736144c30fcb5de54235331ab1ff70c356e) ) - ROM_LOAD16_BYTE( "945_l03b.e8", 0x1c0000, 0x20000, CRC(933e68b9) SHA1(f3a39446ca77d17fdbd938bd5f718ae9d5570879) ) - ROM_LOAD16_BYTE( "945_l03d.h8", 0x1c0001, 0x20000, CRC(f375e87b) SHA1(6427b966795c907c8e516244872fe52217da62c4) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 007232 samples */ - ROM_LOAD( "945_a10.b15", 0x00000, 0x40000, CRC(1d083e10) SHA1(b116f133a7647ef7a6c373aff00e9622d9954b61) ) - ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) ) - ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) ) -ROM_END - -ROM_START( grdius3a ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "945_13.f15", 0x00000, 0x20000, CRC(9974fe6b) SHA1(c18ad8d7c93bf58d886715d8e210177cf49f220b) ) - ROM_LOAD16_BYTE( "945_12.e15", 0x00001, 0x20000, CRC(e9771b91) SHA1(c9f4610b897c13742b44b546e2bed8ee21945f61) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "945_m09.r17", 0x000000, 0x20000, CRC(b4a6df25) SHA1(85533cf140d28f6f81c0b49b8061bda0924a613a) ) - ROM_LOAD16_BYTE( "945_m08.n17", 0x000001, 0x20000, CRC(74e981d2) SHA1(e7b47a2da01ff73293d2100c48fdf00b33125af5) ) - ROM_LOAD16_BYTE( "945_l06b.r11", 0x040000, 0x20000, CRC(83772304) SHA1(a90c75a3de670b6ec5e0fc201876d463b4a76766) ) - ROM_LOAD16_BYTE( "945_l06a.n11", 0x040001, 0x20000, CRC(e1fd75b6) SHA1(6160d80a2f1bf550e85d6253cf521a96f5a644cc) ) - ROM_LOAD16_BYTE( "945_l07c.r15", 0x080000, 0x20000, CRC(c1e399b6) SHA1(e95bd478dd3beea0175bf9ee4cededb111c4ace1) ) - ROM_LOAD16_BYTE( "945_l07a.n15", 0x080001, 0x20000, CRC(96222d04) SHA1(b55700f683a556b0e73dbac9c7b4ce485420d21c) ) - ROM_LOAD16_BYTE( "945_l07d.r13", 0x0c0000, 0x20000, CRC(4c16d4bd) SHA1(01dcf169b78a1e495214b10181401d1920b0c924) ) - ROM_LOAD16_BYTE( "945_l07b.n13", 0x0c0001, 0x20000, CRC(5e209d01) SHA1(0efa1bbfdc7e2ba1e0bb96245e2bfe961258b446) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "945_m05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_ERASE00 ) /* fake */ - /* gfx data is dynamically generated in RAM */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "945_a02.l3", 0x000000, 0x80000, CRC(4dfffd74) SHA1(588210bac27448240ef08961f70b714b69cb3ffd) ) - ROM_LOAD16_BYTE( "945_l04a.k6", 0x080000, 0x20000, CRC(884e21ee) SHA1(ce86dd3a06775e5b1aa09db010dcb674e67828e7) ) - ROM_LOAD16_BYTE( "945_l04c.m6", 0x080001, 0x20000, CRC(45bcd921) SHA1(e51a8a71362a6fb55124aa1dce74519c0a3c6e3f) ) - ROM_LOAD16_BYTE( "945_l04b.k8", 0x0c0000, 0x20000, CRC(843bc67d) SHA1(cdf8421083f24ab27867ed5d08d8949da192b2b9) ) - ROM_LOAD16_BYTE( "945_l04d.m8", 0x0c0001, 0x20000, CRC(0a98d08e) SHA1(1e0ca51a2d45c01fa3f11950ddd387f41ddae691) ) - ROM_LOAD( "945_a01.h3", 0x100000, 0x80000, CRC(339d6dd2) SHA1(6a52b826aba92c75fc6a5926184948735dc20812) ) - ROM_LOAD16_BYTE( "945_l03a.e6", 0x180000, 0x20000, CRC(a67ef087) SHA1(fd63474f3bbde5dfc53ed4c1db25d6411a8b54d2) ) - ROM_LOAD16_BYTE( "945_l03c.h6", 0x180001, 0x20000, CRC(a56be17a) SHA1(1d387736144c30fcb5de54235331ab1ff70c356e) ) - ROM_LOAD16_BYTE( "945_l03b.e8", 0x1c0000, 0x20000, CRC(933e68b9) SHA1(f3a39446ca77d17fdbd938bd5f718ae9d5570879) ) - ROM_LOAD16_BYTE( "945_l03d.h8", 0x1c0001, 0x20000, CRC(f375e87b) SHA1(6427b966795c907c8e516244872fe52217da62c4) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 007232 samples */ - ROM_LOAD( "945_a10.b15", 0x00000, 0x40000, CRC(1d083e10) SHA1(b116f133a7647ef7a6c373aff00e9622d9954b61) ) - ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) ) - ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) ) -ROM_END - -ROM_START( grdius3e ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "945_r13.f15", 0x00000, 0x20000, CRC(cffd103f) SHA1(6bd15e8c2e6e5223d7de9b0b375f36f3e81f60ba) ) - ROM_LOAD16_BYTE( "945_r12.e15", 0x00001, 0x20000, CRC(0b968ef6) SHA1(ba28d16d94b13aac791b11d3d91df26f78e2e477) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "945_m09.r17", 0x000000, 0x20000, CRC(b4a6df25) SHA1(85533cf140d28f6f81c0b49b8061bda0924a613a) ) - ROM_LOAD16_BYTE( "945_m08.n17", 0x000001, 0x20000, CRC(74e981d2) SHA1(e7b47a2da01ff73293d2100c48fdf00b33125af5) ) - ROM_LOAD16_BYTE( "945_l06b.r11", 0x040000, 0x20000, CRC(83772304) SHA1(a90c75a3de670b6ec5e0fc201876d463b4a76766) ) - ROM_LOAD16_BYTE( "945_l06a.n11", 0x040001, 0x20000, CRC(e1fd75b6) SHA1(6160d80a2f1bf550e85d6253cf521a96f5a644cc) ) - ROM_LOAD16_BYTE( "945_l07c.r15", 0x080000, 0x20000, CRC(c1e399b6) SHA1(e95bd478dd3beea0175bf9ee4cededb111c4ace1) ) - ROM_LOAD16_BYTE( "945_l07a.n15", 0x080001, 0x20000, CRC(96222d04) SHA1(b55700f683a556b0e73dbac9c7b4ce485420d21c) ) - ROM_LOAD16_BYTE( "945_l07d.r13", 0x0c0000, 0x20000, CRC(4c16d4bd) SHA1(01dcf169b78a1e495214b10181401d1920b0c924) ) - ROM_LOAD16_BYTE( "945_l07b.n13", 0x0c0001, 0x20000, CRC(5e209d01) SHA1(0efa1bbfdc7e2ba1e0bb96245e2bfe961258b446) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "945_m05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) ) /* 945_r05.d9 */ - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_ERASE00 ) /* fake */ - /* gfx data is dynamically generated in RAM */ - - ROM_REGION( 0x200000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "945_a02.l3", 0x000000, 0x80000, CRC(4dfffd74) SHA1(588210bac27448240ef08961f70b714b69cb3ffd) ) - ROM_LOAD16_BYTE( "945_l04a.k6", 0x080000, 0x20000, CRC(884e21ee) SHA1(ce86dd3a06775e5b1aa09db010dcb674e67828e7) ) - ROM_LOAD16_BYTE( "945_l04c.m6", 0x080001, 0x20000, CRC(45bcd921) SHA1(e51a8a71362a6fb55124aa1dce74519c0a3c6e3f) ) - ROM_LOAD16_BYTE( "945_l04b.k8", 0x0c0000, 0x20000, CRC(843bc67d) SHA1(cdf8421083f24ab27867ed5d08d8949da192b2b9) ) - ROM_LOAD16_BYTE( "945_l04d.m8", 0x0c0001, 0x20000, CRC(0a98d08e) SHA1(1e0ca51a2d45c01fa3f11950ddd387f41ddae691) ) - ROM_LOAD( "945_a01.h3", 0x100000, 0x80000, CRC(339d6dd2) SHA1(6a52b826aba92c75fc6a5926184948735dc20812) ) - ROM_LOAD16_BYTE( "945_l03a.e6", 0x180000, 0x20000, CRC(a67ef087) SHA1(fd63474f3bbde5dfc53ed4c1db25d6411a8b54d2) ) - ROM_LOAD16_BYTE( "945_l03c.h6", 0x180001, 0x20000, CRC(a56be17a) SHA1(1d387736144c30fcb5de54235331ab1ff70c356e) ) - ROM_LOAD16_BYTE( "945_l03b.e8", 0x1c0000, 0x20000, CRC(933e68b9) SHA1(f3a39446ca77d17fdbd938bd5f718ae9d5570879) ) - ROM_LOAD16_BYTE( "945_l03d.h8", 0x1c0001, 0x20000, CRC(f375e87b) SHA1(6427b966795c907c8e516244872fe52217da62c4) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 007232 samples */ - ROM_LOAD( "945_a10.b15", 0x00000, 0x40000, CRC(1d083e10) SHA1(b116f133a7647ef7a6c373aff00e9622d9954b61) ) - ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) ) - ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) ) -ROM_END - - -static DRIVER_INIT( gradius3 ) -{ - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1989, gradius3, 0, gradius3, gradius3, gradius3, ROT0, "Konami", "Gradius III (Japan)", 0 ) -GAME( 1989, grdius3a, gradius3, gradius3, gradius3, gradius3, ROT0, "Konami", "Gradius III (Asia)", 0 ) -GAME( 1989, grdius3e, gradius3, gradius3, gradius3, gradius3, ROT0, "Konami", "Gradius III (World ?)", 0 ) diff --git a/src/drivers/grchamp.c b/src/drivers/grchamp.c deleted file mode 100644 index ea91dcb8d..000000000 --- a/src/drivers/grchamp.c +++ /dev/null @@ -1,796 +0,0 @@ -/*************************************************************************** - - Grand Champion - (C) 1981 Taito - - MAME driver by Ernesto Corvi and Phil Stroffolino - -**************************************************************************** - - Known Issues: - - - pc3259 handling (for collision detection) is not accurate. - Collision detection does work, but there are bits which define - the type of collision (and determine whether a pit stop is - required) that I don't know how to handle. - - - sound: missing engine noise - - - "radar" is probably wrong - - - LED and tachometer display are missing/faked - Note that a dipswitch setting allows score to be displayed - onscreen, but there's no equivalent for tachometer. - - Notes: - - - The object of the game is to avoid the opposing cars. - - - The player has to drive through Dark Tunnels, Rain, - Lightning, Sleet, Snow, and a Track that suddenly - divides to get to the Finish Line first. - - - "GRAND CHAMPION" has a Radar Feature which enables - the Player to see his position relative to the other - cars. - - - A Rank Feature is also provided which shows the - Player's numerical rank all through the race. - - - The Speech Feature enhances the game play. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "grchamp.h" - - - -/************************************* - * - * Constants - * - *************************************/ - -#define MASTER_CLOCK (18432000) -#define SOUND_CLOCK (6000000) - -#define PIXEL_CLOCK (MASTER_CLOCK/3) - -#define HTOTAL (384) -#define HBEND (0) -#define HBSTART (256) - -#define VTOTAL (264) -#define VBEND (16) -#define VBSTART (240) - - - -/************************************* - * - * Machine setup - * - *************************************/ - -MACHINE_START( grchamp ) -{ - /* if the coin system is 1 way, lock Coin B (Page 40) */ - if (readinputport(1) & 0x10) - coin_lockout_w(1, 1); - - return 0; -} - - - -/************************************* - * - * Interrupt generation - * - *************************************/ - -static INTERRUPT_GEN( grchamp_cpu0_interrupt ) -{ - grchamp_state *state = Machine->driver_data; - int cpu = cpu_getactivecpu(); - - if (state->cpu0_out[0] & 0x01) - cpunum_set_input_line(cpu, 0, ASSERT_LINE); -} - - -static INTERRUPT_GEN( grchamp_cpu1_interrupt ) -{ - grchamp_state *state = Machine->driver_data; - int cpu = cpu_getactivecpu(); - - if (state->cpu1_out[4] & 0x01) - cpunum_set_input_line(cpu, 0, ASSERT_LINE); -} - - - -/************************************* - * - * Main CPU outputs - * - *************************************/ - -static WRITE8_HANDLER( cpu0_outputs_w ) -{ - grchamp_state *state = Machine->driver_data; - UINT8 diff = data ^ state->cpu0_out[offset]; - state->cpu0_out[offset] = data; - - switch (offset) - { - case 0x00: /* OUT0 */ - - /* bit 0: low = clear IRQ on main CPU */ - /* bit 1: /HTCLR = clear collision detect */ - /* bit 4: HEAD LAMP */ - /* bit 5: CHANGE */ - /* bit 6: FOG OUT */ - /* bit 7: RADARON */ - if ((diff & 0x01) && !(data & 0x01)) - cpunum_set_input_line(0, 0, CLEAR_LINE); - if ((diff & 0x02) && !(data & 0x02)) - state->collide = state->collmode = 0; - break; - - case 0x01: /* OUT1 */ - /* connects to pc3259, pin 23 (read collision data?) */ - state->collmode++; - break; - - case 0x02: /* OUT2 */ - /* bit 0-7: MYDH (car X position) */ - break; - - case 0x03: /* OUT3 */ - /* bit 0-7: MYDV (car Y position) */ - break; - - case 0x04: /* OUT4 */ - /* bit 0-3: player car tile select */ - /* bit 4-7: rain tile select */ - break; - - case 0x07: /* OUT7 */ - /* bit 0-7: rain Y position */ - break; - - case 0x08: /* OUT8 */ - /* bit 0-7: rain X position */ - break; - - case 0x09: /* OUT9 */ - /* bit 0-3: n/c */ - /* bit 4: coin lockout */ - /* bit 5: Game Over lamp */ - /* bit 6-7: n/c */ - coin_lockout_global_w((data >> 4) & 1); - output_set_value("led0", (~data >> 5) & 1); - break; - - case 0x0a: /* OUT10 */ - /* bit 0: n/c */ - /* bit 1: G-12 */ - /* bit 2: G-S */ - /* bit 3: G-16 */ - /* bit 4: G-Y */ - /* bit 5: n/c */ - /* bit 6: G-Z */ - if (diff) - mame_printf_debug("OUT10=%02X\n", data); - break; - - case 0x0d: /* OUT13 */ - watchdog_reset(); - break; - - case 0x0e: /* OUT14 */ - /* O-21 connector */ - soundlatch_w(0, data); - cpunum_set_input_line(2, INPUT_LINE_NMI, PULSE_LINE); - break; - } -} - - -static WRITE8_HANDLER( led_board_w ) -{ - static const UINT8 ls247_map[16] = - { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 }; - grchamp_state *state = Machine->driver_data; - - switch (offset) - { - case 0x00: - state->ledlatch = (state->ledlatch & 0xff00) | (data << 0); - break; - - case 0x04: - state->ledlatch = (state->ledlatch & 0x00ff) | (data << 8); - break; - - case 0x08: - state->ledaddr = data & 0x0f; - break; - - case 0x0c: - state->ledram[state->ledaddr & 0x07] = state->ledlatch; - output_set_digit_value(state->ledaddr & 0x07, ls247_map[state->ledram[state->ledaddr & 0x07] & 0x0f]); - /* - ledram[0] & 0x0f = score LSD - ledram[1] & 0x0f = score - ledram[2] & 0x0f = score - ledram[3] & 0x0f = score - ledram[4] & 0x0f = score MSD - ledram[5] & 0x0f = time LSD - ledram[6] & 0x0f = time MSD - ledram[7] & 0x0f = ??? - */ - break; - } -} - - - -/************************************* - * - * Sub CPU outputs - * - *************************************/ - -WRITE8_HANDLER( cpu1_outputs_w ) -{ - grchamp_state *state = Machine->driver_data; - UINT8 diff = data ^ state->cpu1_out[offset]; - state->cpu1_out[offset] = data; - - switch (offset) - { - case 0x00: /* OUT0 */ - /* bit 0-7: left/right synk bus xscroll LSBs */ - break; - - case 0x01: /* OUT1 */ - /* bit 0: left/right synk bus xscroll MSB */ - break; - - case 0x02: /* OUT2 */ - /* bit 0-7: left synk bus yscroll */ - break; - - case 0x03: /* OUT3 */ - /* bit 0-3: analog tachometer output */ - /* bit 4: palette MSB */ - /* bit 5: disable the 256H line in the center tilemap */ - break; - - case 0x04: /* OUT4 */ - /* bit 0: interrupt enable for CPU 1 */ - if ((diff & 0x01) && !(data & 0x01)) - cpunum_set_input_line(1, 0, CLEAR_LINE); - break; - - case 0x05: /* OUT5 - unused */ - break; - - case 0x06: /* OUT6 - unused */ - break; - - case 0x07: /* OUT7 */ - /* bit 0-7: right synk bus yscroll */ - break; - - case 0x08: /* OUT8 */ - /* bit 0-7: latches data to main CPU input port 2 */ - state->comm_latch = data; - break; - - case 0x09: /* OUT9 */ - /* bit 0-7: center synk bus xscroll LSBs */ - break; - - case 0x0a: /* OUTA */ - /* bit 0: center synk bus xscroll MSB */ - break; - - case 0x0b: /* OUTB */ - /* bit 0-7: center synk bus yscroll */ - break; - - case 0x0c: /* OUTC */ - /* bit 0: FOG */ - /* bit 1: IDLING */ - /* bit 2-4: ATTACK UP 1-3 */ - /* bit 5-6: SIFT 1-2 */ - /* bit 7: ENGINE CS */ - discrete_sound_w(GRCHAMP_ENGINE_CS_EN, data & 0x80); - discrete_sound_w(GRCHAMP_SIFT_DATA, (data >> 5) & 0x03); - discrete_sound_w(GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07); - discrete_sound_w(GRCHAMP_IDLING_EN, data & 0x02); - discrete_sound_w(GRCHAMP_FOG_EN, data & 0x01); - break; - - case 0x0d: /* OUTD */ - /* bit 0-3: ATTACK SPEED 1-4 */ - /* bit 4-7: PLAYER SPEED 1-4 */ - discrete_sound_w(GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f); - discrete_sound_w(GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f); - break; - - default: - /* OUTE - Page 48: goes to connector Q-27 */ - /* OUTF - unused */ - break; - } -} - - - -/************************************* - * - * CPU 0 Inputs - * - *************************************/ - -INLINE UINT8 get_pc3259_bits(grchamp_state *state, int offs) -{ - int bits; - - /* force a partial update to the current position */ - video_screen_update_partial(0, video_screen_get_vpos(0)); - - /* get the relevant 4 bits */ - bits = (state->collide >> (offs*4)) & 0x0f; - - /* replicate to both nibbles */ - return bits | (bits << 4); -} - - -READ8_HANDLER( pc3259_0_r ) -{ - grchamp_state *state = Machine->driver_data; - return get_pc3259_bits(state, 0); -} - - -READ8_HANDLER( pc3259_1_r ) -{ - grchamp_state *state = Machine->driver_data; - return get_pc3259_bits(state, 1); -} - - -READ8_HANDLER( pc3259_2_r ) -{ - grchamp_state *state = Machine->driver_data; - return get_pc3259_bits(state, 2); -} - - -READ8_HANDLER( pc3259_3_r ) -{ - grchamp_state *state = Machine->driver_data; - return get_pc3259_bits(state, 3); -} - - - -/************************************* - * - * Inter-CPU communication - * - *************************************/ - -READ8_HANDLER( sub_to_main_comm_r ) -{ - grchamp_state *state = Machine->driver_data; - return state->comm_latch; -} - - -static void main_to_sub_comm_sync_w(int param) -{ - grchamp_state *state = Machine->driver_data; - int offset = param >> 8; - state->comm_latch2[offset & 3] = param; -} - - -WRITE8_HANDLER( main_to_sub_comm_w ) -{ - timer_set(TIME_NOW, data | (offset << 8), main_to_sub_comm_sync_w); -} - - -READ8_HANDLER( main_to_sub_comm_r ) -{ - grchamp_state *state = Machine->driver_data; - return state->comm_latch2[offset]; -} - - - -/************************************* - * - * Sound port handlers - * - *************************************/ - -WRITE8_HANDLER( grchamp_portA_0_w ) -{ - discrete_sound_w(GRCHAMP_A_DATA, data); -} - -WRITE8_HANDLER( grchamp_portB_0_w ) -{ - discrete_sound_w(GRCHAMP_B_DATA, 255-data); -} - -WRITE8_HANDLER( grchamp_portA_2_w ) -{ - /* A0/A1 modify the output of AY8910 #2 */ - /* A7 contributes to the discrete logic hanging off of AY8910 #0 */ -} -WRITE8_HANDLER( grchamp_portB_2_w ) -{ - /* B0 connects elsewhere */ -} - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct AY8910interface ay8910_interface_1 = -{ - 0, - 0, - grchamp_portA_0_w, - grchamp_portB_0_w -}; - -static struct AY8910interface ay8910_interface_3 = -{ - 0, - 0, - grchamp_portA_2_w, - grchamp_portB_2_w -}; - - - -/************************************* - * - * Graphics Layouts - * - *************************************/ - -static const gfx_layout sprite_layout = -{ - 16,16, - RGN_FRAC(1,2), - 2, - { 0,RGN_FRAC(1,2) }, - { STEP8(0,1),STEP8(64,1) }, - { STEP8(0,8),STEP8(128,8) }, - 16*16 -}; - -static const gfx_layout tile_layout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0,4,RGN_FRAC(1,2),RGN_FRAC(1,2)+4 }, - { STEP4(0,1),STEP4(8*8+0,1) }, - { STEP8(0,8) }, - 16*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &gfx_8x8x2_planar, 0, 8 }, - { REGION_GFX2, 0x0000, &tile_layout, 0, 16 }, - { REGION_GFX3, 0x0000, &tile_layout, 0, 16 }, - { REGION_GFX4, 0x0000, &tile_layout, 0, 16 }, - { REGION_GFX1, 0x0000, &sprite_layout, 0, 32 }, - { -1 } -}; - - - -/************************************* - * - * Address maps - * - *************************************/ - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM - AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(grchamp_state, radarram) - AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM AM_BASE_MEMBER(grchamp_state, videoram) - AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM AM_BASE_MEMBER(grchamp_state, spriteram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x78) AM_READ(port_tag_to_handler8("ACCEL")) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x78) AM_READ(sub_to_main_comm_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x78) AM_READ(port_tag_to_handler8("WHEEL")) - AM_RANGE(0x04, 0x04) AM_MIRROR(0x78) AM_READ(port_tag_to_handler8("DSWA")) - AM_RANGE(0x05, 0x05) AM_MIRROR(0x78) AM_READ(port_tag_to_handler8("DSWB")) - AM_RANGE(0x06, 0x06) AM_MIRROR(0x78) AM_READ(port_tag_to_handler8("TILT")) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x60) AM_READ(pc3259_0_r) - AM_RANGE(0x09, 0x09) AM_MIRROR(0x60) AM_READ(pc3259_1_r) - AM_RANGE(0x11, 0x11) AM_MIRROR(0x60) AM_READ(pc3259_2_r) - AM_RANGE(0x19, 0x19) AM_MIRROR(0x60) AM_READ(pc3259_3_r) - AM_RANGE(0x00, 0x0f) AM_MIRROR(0x40) AM_WRITE(cpu0_outputs_w) - AM_RANGE(0x10, 0x13) AM_MIRROR(0x40) AM_WRITE(main_to_sub_comm_w) - AM_RANGE(0x20, 0x2f) AM_MIRROR(0x53) AM_WRITE(led_board_w) -ADDRESS_MAP_END - - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x27ff) AM_READWRITE(MRA8_RAM, grchamp_left_w) AM_BASE_MEMBER(grchamp_state, leftram) - AM_RANGE(0x2800, 0x2fff) AM_READWRITE(MRA8_RAM, grchamp_right_w) AM_BASE_MEMBER(grchamp_state, rightram) - AM_RANGE(0x3000, 0x37ff) AM_READWRITE(MRA8_RAM, grchamp_center_w) AM_BASE_MEMBER(grchamp_state, centerram) - AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM - AM_RANGE(0x5000, 0x6fff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sub_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_READ(main_to_sub_comm_r) - AM_RANGE(0x00, 0x0f) AM_MIRROR(0x70) AM_WRITE(cpu1_outputs_w) -ADDRESS_MAP_END - - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x4000, 0x43ff) AM_RAM - AM_RANGE(0x4800, 0x4800) AM_MIRROR(0x07f8) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x4801, 0x4801) AM_MIRROR(0x07f8) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) - AM_RANGE(0x4802, 0x4802) AM_MIRROR(0x07f8) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x4803, 0x4803) AM_MIRROR(0x07f8) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w) - AM_RANGE(0x4804, 0x4804) AM_MIRROR(0x07fa) AM_WRITE(AY8910_control_port_2_w) - AM_RANGE(0x4805, 0x4805) AM_MIRROR(0x07fa) AM_READWRITE(AY8910_read_port_2_r, AY8910_write_port_2_w) - AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( grchamp ) - - PORT_START_TAG("TILT") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 ) /* High Score reset switch */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_TOGGLE /* High Gear */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_TILT ) /* Tilt */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) /* Coin A */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) /* Coin B */ - - PORT_START_TAG("ACCEL") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LCONTROL) - //mask,default,type,sensitivity,delta,min,max - - PORT_START_TAG("WHEEL") - PORT_BIT( 0xff, 0x40, IPT_DIAL ) PORT_MINMAX(0x00,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE - //mask,default,type,sensitivity,delta,min,max - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) - - PORT_START_TAG("DSWB") - PORT_DIPNAME( 0x03, 0x02, "Extra Race" ) - PORT_DIPSETTING( 0x00, "4th" ) - PORT_DIPSETTING( 0x02, "5th" ) - PORT_DIPSETTING( 0x01, "6th" ) - PORT_DIPSETTING( 0x03, "7th" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "RAM Test" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "Coin System" ) - PORT_DIPSETTING( 0x10, "1 Way" ) - PORT_DIPSETTING( 0x00, "2 Way" ) - PORT_DIPNAME( 0x20, 0x00, "Display '1981'" ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Display Score" ) - PORT_DIPSETTING( 0x00, "LEDs" ) - PORT_DIPSETTING( 0x40, "On Screen" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( grchamp ) - MDRV_DRIVER_DATA(grchamp_state) - - /* basic machine hardware */ - /* CPU BOARD */ - MDRV_CPU_ADD(Z80, PIXEL_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_IO_MAP(main_portmap,0) - MDRV_CPU_VBLANK_INT(grchamp_cpu0_interrupt,1) - - /* GAME BOARD */ - MDRV_CPU_ADD(Z80, PIXEL_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(sub_map,0) - MDRV_CPU_IO_MAP(sub_portmap,0) - MDRV_CPU_VBLANK_INT(grchamp_cpu1_interrupt,1) - - /* SOUND BOARD */ - MDRV_CPU_ADD(Z80, SOUND_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_PERIODIC_INT(irq0_line_hold,TIME_IN_HZ(SOUND_CLOCK/4/16/16/10/16)) - - MDRV_MACHINE_START(grchamp) - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_ALWAYS_UPDATE) - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_SCREEN_ADD("main", 0) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - - MDRV_PALETTE_INIT(grchamp) - MDRV_VIDEO_START(grchamp) - MDRV_VIDEO_UPDATE(grchamp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, SOUND_CLOCK/4) /* 3B */ - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2) - - MDRV_SOUND_ADD(AY8910, SOUND_CLOCK/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2) - - MDRV_SOUND_ADD(AY8910, SOUND_CLOCK/4) /* 1B */ - MDRV_SOUND_CONFIG(ay8910_interface_3) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2) - - MDRV_SOUND_ADD(DISCRETE, 0) - MDRV_SOUND_CONFIG(grchamp_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( grchamp ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD( "gm03", 0x0000, 0x1000, CRC(47fda76e) SHA1(fd5f1a651481669d64e5e0799369c22472265535) ) - ROM_LOAD( "gm04", 0x1000, 0x1000, CRC(07a623dc) SHA1(bb8a6531d95e996148c06fd336db4054eb1d28dd) ) - ROM_LOAD( "gm05", 0x2000, 0x1000, CRC(716e1fba) SHA1(fe596873c932513227b982cd23af440d31612de9) ) - ROM_LOAD( "gm06", 0x3000, 0x1000, CRC(157db30b) SHA1(a74314d3aef4659ea96ed659e5db2883e7ae1cb1) ) - - ROM_REGION( 0x8000, REGION_CPU2, 0 ) - ROM_LOAD( "gm09", 0x0000, 0x1000, CRC(d57bd109) SHA1(d1cb5ba783eaceda45893f6404fe9dbac740a2de) ) - ROM_LOAD( "gm10", 0x1000, 0x1000, CRC(41ba07f1) SHA1(103eeacdd36b4347fc62debb6b5f4163083313f4) ) - ROM_LOAD( "gr16", 0x5000, 0x1000, CRC(885d708e) SHA1(d5d2978a0eeca167ec1fb9f6f981388de46fbf81) ) - ROM_LOAD( "gr15", 0x6000, 0x1000, CRC(a822430b) SHA1(4d29612489362d2dc3f3a9eab609902a50c34aff) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "gm07", 0x0000, 0x1000, CRC(65dcc572) SHA1(c9b19af365fa7ade2698be0bb892591ba281ecb0) ) - ROM_LOAD( "gm08", 0x1000, 0x1000, CRC(224d880c) SHA1(68aaaa0213d09cf34ba50c91d8c031d041f8a76f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters/sprites */ - ROM_LOAD( "gm01", 0x0000, 0x1000, CRC(846f8e89) SHA1(346bfd69268606fde27643b4d135b481536b73b1) ) - ROM_LOAD( "gm02", 0x1000, 0x1000, CRC(5911948d) SHA1(6f3a9a7f8d6a04b8e6d83756764c9c4185983d9b) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) /* left tiles */ - ROM_LOAD( "gr20", 0x0000, 0x1000, CRC(88ba2c03) SHA1(4dfd136f122663223043c6cd79566f8eeec72681) ) - ROM_LOAD( "gr19", 0x1000, 0x1000, CRC(ff34b444) SHA1(51c67a1691da3a2d8ddcff5fd8fa816b1f9c60c0) ) - - ROM_REGION( 0x2000, REGION_GFX3, ROMREGION_DISPOSE ) /* right tiles */ - ROM_LOAD( "gr21", 0x0000, 0x1000, CRC(2f77a9f3) SHA1(9e20a776c5e8c7577c3e8467d4f8ac7ac909901f) ) - ROM_LOAD( "gr22", 0x1000, 0x1000, CRC(31bb5fc7) SHA1(9f638e632e7c72461bedecb710ac9b30f015eebf) ) - - ROM_REGION( 0x2000, REGION_GFX4, ROMREGION_DISPOSE ) /* center tiles */ - ROM_LOAD( "gr13", 0x0000, 0x1000, CRC(d5e19ebd) SHA1(d0ca553eec87619ec489f7ba6238f1fdde7c480b) ) - ROM_LOAD( "gr14", 0x1000, 0x1000, CRC(d129b8e4) SHA1(db25bfde2a48e14d38a43133d88d479c3cc1397a) ) - - ROM_REGION( 0x0800, REGION_GFX5, 0 ) /* rain */ - ROM_LOAD( "gr10", 0x0000, 0x0800, CRC(b1f0a873) SHA1(f7ef1a16556ae3e7d70209bcb38ea3ae94208789) ) - - ROM_REGION( 0x0800, REGION_GFX6, 0 ) /* headlights */ - ROM_LOAD( "gr12", 0x0000, 0x0800, CRC(f3bc599e) SHA1(3ec19584896a0bf10b9c5750f3c78ad3e722cc49) ) - - ROM_REGION( 0x1000, REGION_GFX7, 0 ) /* player */ - ROM_LOAD( "gr11", 0x0000, 0x1000, CRC(54eb3ec9) SHA1(22739240f53c708d8e53094d96916778e12beeed) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "gr23.bpr", 0x00, 0x20, CRC(41c6c48d) SHA1(8bd14b5f02f9da0a68e3125955be18462b57401d) ) /* background colors */ - ROM_LOAD( "gr09.bpr", 0x20, 0x20, CRC(260fb2b9) SHA1(db0bf49f12a944613d113317d7dfea25bd7469fc) ) /* sprite/text colors */ -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1981, grchamp, 0, grchamp, grchamp, 0, ROT270, "Taito", "Grand Champion", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/groundfx.c b/src/drivers/groundfx.c deleted file mode 100644 index 274ae69ac..000000000 --- a/src/drivers/groundfx.c +++ /dev/null @@ -1,525 +0,0 @@ -/*************************************************************************** - - Ground Effects / Super Ground FX (c) 1993 Taito - - Driver by Bryan McPhail & David Graves. - - Board Info: - - K1100744A - J1100316A - Sticker - K11J0744A - ------------------------------------------------------------------------------------------------ - | 2018 2088 43256 43256 MC68EC020RP25 DIP-SW (8) COM20020 SLIDE-SW LAN-IN | Connector G - | 2018 2088 D51-21 D51-22 D51-14 | ----------- - | 2018 2088 43256 43256 (PAL16L8) | Parts | Solder - | D51-15 ADC0809 LAN-OUT | ------------------ - | 2018 D51-23 D51-24 (PAL16L8) | GND 1 A GND - | D51-16-1 JP4 | GND 2 B GND - | 2018 TC0570SPC (PAL16L8) EEPROM.164 1-2 | +12 3 C +12 - | 2018 2-3 | +5 4 D +5 - | TC0510NIO 2-3 --| +5 5 E +5 - | D51-13 D51-03 2-3 | +5 6 F +5 - | D51-04 43256 1-2 | 7 H - | TC0470LIN D51-05 1-2 --| +13 8 J +13 - | D51-06 43256 TC0650FCA 1-2 | +13 9 K +13 - | D51-07 2-3 | SPK_R+ 10 L SPK_R- - | TC0580PIV 43256 43256 2018 2-3 | SPK_L+ 11 M SPK_L- - | 43256 D51-17 | SPK_REAR- 12 N SPK_REAR- - | 514256 TC0480SCP (PAL16L8) | 13 P - | 514256 G| RED 14 R GREEN - | 514256 D51-10 | BLUE 15 S SYNC - | 514256 D51-09 D51-11 TC0620SCC | V-GND 16 T - | 514256 D51-08 D51012 | METER1 17 U METER2 - | 514256 43256 | LOCKOUT1 18 V LOCKOUT2 - | MB8421 43256 | 19 W - | D51-18 MB8421 ENSONIC --| COIN1 20 X COIN2 - | (PAL20L8) D51-29 OTISR2 43256 MB87078 | SERVICE 21 Y TEST - | D51-01 | 22 Z - | D51-19 43256 ENSONIC ENSONIC --| SHIFT UP 23 a BRAKE - | (PAL20L8) D51-02 SUPER GLU ESP-R6 TC511664 TL074 TL074 | HANDLE VR 24 b ACCEL VR - | D51-30 | SHIFT DN 25 c - | MC68000P12F16MHz TDA1543 TDA1543 | 26 d - | 40MHz 16MHz 30.476MHz MC68681 | GND 27 e GND - | D51-20 | GND 28 f GND - | (PAL20L8) | - ------------------------------------------------------------------------------------------------ - - - Ground Effects combines the sprite system used in Taito Z games with - the TC0480SCP tilemap chip plus some features from the Taito F3 system. - It has an extra tilemap chip which is a dead ringer for the TC0100SCN - (check the inits), like Under Fire. - - Ground Effects is effectively a 30Hz game - though the vblank interrupts - still come in at 60Hz, the game uses a hardware frame counter to limit - itself to 30Hz (it only updates things like the video registers every - other vblank). There isn't enough cpu power in a 16MHz 68020 to run - this game at 60Hz. - - Ground Effects has a network mode - probably uses IRQ 6 and the unknown - ports at 0xc00000. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "machine/eeprom.h" -#include "sound/es5506.h" -#include "includes/taito_f3.h" -#include "sndhrdw/taito_en.h" - -VIDEO_START( groundfx ); -VIDEO_UPDATE( groundfx ); - -static UINT16 coin_word, frame_counter=0; -static UINT16 port_sel = 0; -extern UINT16 groundfx_rotate_ctrl[8]; -static UINT32 *groundfx_ram; - -/*********************************************************** - COLOR RAM - -Extract a standard version of this -("taito_8bpg_palette_word_w"?) to Taitoic.c ? -***********************************************************/ - -static WRITE32_HANDLER( color_ram_w ) -{ - int a,r,g,b; - COMBINE_DATA(&paletteram32[offset]); - - { - a = paletteram32[offset]; - r = (a &0xff0000) >> 16; - g = (a &0xff00) >> 8; - b = (a &0xff); - - palette_set_color(Machine,offset,r,g,b); - } -} - - -/*********************************************************** - INTERRUPTS -***********************************************************/ - -static void groundfx_interrupt5(int x) -{ - cpunum_set_input_line(0,5,HOLD_LINE); //from 5... ADC port -} - - -/********************************************************** - EPROM -**********************************************************/ - -static UINT8 default_eeprom[128]= -{ - 0x02,0x01,0x11,0x12,0x01,0x01,0x01,0x00,0x80,0x80,0x30,0x01,0x00,0x00,0x62,0x45, - 0xe0,0xa0,0xff,0x28,0xff,0xff,0xfa,0xd7,0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xa0,0xff,0x28,0xff,0xff,0xff,0xff,0xfa,0xd7, - 0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff -}; - -static struct EEPROM_interface groundfx_eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* unlock command */ - "0100110000", /* lock command */ -}; - -static NVRAM_HANDLER( groundfx ) -{ - if (read_or_write) - EEPROM_save(file); - else { - EEPROM_init(&groundfx_eeprom_interface); - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,128); /* Default the gun setup values */ - } -} - - -/********************************************************** - GAME INPUTS -**********************************************************/ - - -static READ32_HANDLER( groundfx_input_r ) -{ - switch (offset) - { - case 0x00: - { - return (input_port_0_word_r(0,0) << 16) | input_port_1_word_r(0,0) | - (EEPROM_read_bit() << 7) | frame_counter; - } - - case 0x01: - { - return input_port_2_word_r(0,0) | (coin_word << 16); - } - } - - return 0xffffffff; -} - -static WRITE32_HANDLER( groundfx_input_w ) -{ - switch (offset) - { - case 0x00: - { - if (ACCESSING_MSB32) /* $500000 is watchdog */ - { - watchdog_reset_w(0,data >> 24); - } - - if (ACCESSING_LSB32) - { - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x40); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - return; - } - - return; - } - - case 0x01: - { - if (ACCESSING_MSB32) - { - coin_lockout_w(0,~data & 0x01000000); - coin_lockout_w(1,~data & 0x02000000); - coin_counter_w(0, data & 0x04000000); - coin_counter_w(1, data & 0x08000000); - coin_word = (data >> 16) &0xffff; - } - } - } -} - -static READ32_HANDLER( groundfx_adc_r ) -{ - return (input_port_3_word_r(0,0) << 8) | input_port_4_word_r(0,0); -} - -static WRITE32_HANDLER( groundfx_adc_w ) -{ - /* One interrupt per input port (4 per frame, though only 2 used). - 1000 cycle delay is arbitrary */ - timer_set(TIME_IN_CYCLES(1000,0),0, groundfx_interrupt5); -} - -static WRITE32_HANDLER( rotate_control_w ) /* only a guess that it's rotation */ -{ - if (ACCESSING_LSW32) - { - groundfx_rotate_ctrl[port_sel] = data; - return; - } - - if (ACCESSING_MSW32) - { - port_sel = (data &0x70000) >> 16; - } -} - - -static WRITE32_HANDLER( motor_control_w ) -{ -/* - Standard value poked is 0x00910200 (we ignore lsb and msb - which seem to be always zero) - - 0x0, 0x8000 and 0x9100 are written at startup - - Two bits are written in test mode to this middle word - to test gun vibration: - - ........ .x...... P1 gun vibration - ........ x....... P2 gun vibration -*/ -} - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( groundfx_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x200000, 0x21ffff) AM_READ(MRA32_RAM) /* main CPUA ram */ - AM_RANGE(0x300000, 0x303fff) AM_READ(MRA32_RAM) /* sprite ram */ - AM_RANGE(0x500000, 0x500007) AM_READ(groundfx_input_r) - AM_RANGE(0x600000, 0x600003) AM_READ(groundfx_adc_r) - AM_RANGE(0x700000, 0x7007ff) AM_READ(MRA32_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_long_r) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_long_r) // debugging - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_long_r) /* piv tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_long_r) - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(MRA32_RAM) /* palette ram */ - AM_RANGE(0xb00000, 0xb003ff) AM_READ(MRA32_RAM) // ?? single bytes - AM_RANGE(0xc00000, 0xc00007) AM_READ(MRA32_NOP) /* Network? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( groundfx_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x200000, 0x21ffff) AM_WRITE(MWA32_RAM) AM_BASE(&groundfx_ram) - AM_RANGE(0x300000, 0x303fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */ - AM_RANGE(0x500000, 0x500007) AM_WRITE(groundfx_input_w) /* eerom etc. */ - AM_RANGE(0x600000, 0x600003) AM_WRITE(groundfx_adc_w) - AM_RANGE(0x700000, 0x7007ff) AM_WRITE(MWA32_RAM) AM_BASE(&f3_shared_ram) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_long_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_long_w) /* piv tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_long_w) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(color_ram_w) AM_BASE(&paletteram32) - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(MWA32_RAM) // single bytes, blending ?? - AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */ - /* f00000 is seat control? */ -ADDRESS_MAP_END - -/*********************************************************** - INPUT PORTS (dips in eprom) -***********************************************************/ - -INPUT_PORTS_START( groundfx ) - PORT_START /* IN0 */ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Frame counter */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* reserved for EEROM */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* shift hi */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* brake */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* shift low */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN 2, steering wheel */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* IN 3, accel */ - PORT_BIT( 0xff, 0xff, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN 4, sound volume */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) - - PORT_START /* IN 5, unknown */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - -/********************************************************** - GFX DECODING -**********************************************************/ - -static const gfx_layout tile16x16_layout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,2), - 5, /* 5 bits per pixel */ - { RGN_FRAC(1,2), 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout pivlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,2), - 6, /* 4 bits per pixel */ - { RGN_FRAC(1,2), RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode groundfx_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x16_layout, 4096, 512 }, - { REGION_GFX1, 0x0, &charlayout, 0, 512 }, - { REGION_GFX3, 0x0, &pivlayout, 0, 512 }, - { -1 } /* end of array */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_RESET( groundfx ) -{ - taito_f3_soundsystem_reset(); - f3_68681_reset(); -} - -static INTERRUPT_GEN( groundfx_interrupt ) -{ - frame_counter^=1; - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static MACHINE_DRIVER_START( groundfx ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(groundfx_readmem,groundfx_writemem) - MDRV_CPU_VBLANK_INT(groundfx_interrupt,1) - - TAITO_F3_SOUND_SYSTEM_CPU(16000000) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(groundfx) - MDRV_NVRAM_HANDLER(groundfx) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) - MDRV_GFXDECODE(groundfx_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16384) - - MDRV_VIDEO_START(groundfx) - MDRV_VIDEO_UPDATE(groundfx) - - /* sound hardware */ - TAITO_F3_SOUND_SYSTEM_ES5505(30476100/2) -MACHINE_DRIVER_END - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( groundfx ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 2048K for 68020 code (CPU A) */ - ROM_LOAD32_BYTE( "d51-24.79", 0x00000, 0x80000, CRC(5caaa031) SHA1(03e727e26df701e3f5e16c5f933d5b29a528945a) ) - ROM_LOAD32_BYTE( "d51-23.61", 0x00001, 0x80000, CRC(462e3c9b) SHA1(7f116ee755748497b911868a948d3e3b5134e475) ) - ROM_LOAD32_BYTE( "d51-22.77", 0x00002, 0x80000, CRC(b6b04d88) SHA1(58685ee8fd788dcbfe318f1e3c06d93e2128034c) ) - ROM_LOAD32_BYTE( "d51-21.59", 0x00003, 0x80000, CRC(21ecde2b) SHA1(c6d3738f34c8e24346e7784b14aeff300ae2d225) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "d51-29.54", 0x100000, 0x40000, CRC(4b64f41d) SHA1(040427668d13f7320d23805098d6d0e1aa8d121e) ) - ROM_LOAD16_BYTE( "d51-30.56", 0x100001, 0x40000, CRC(45f339fe) SHA1(cc7adfb2b86070f5bb426542e3b7ed2a50b3c39e) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d51-08.35", 0x000000, 0x200000, CRC(835b7a0f) SHA1(0131fceabd73b0045b5d4ae0bb2f03efdd407962) ) /* SCR 16x16 tiles */ - ROM_LOAD16_BYTE( "d51-09.34", 0x000001, 0x200000, CRC(6dabd83d) SHA1(3dbd7ea36b9900faa6420af1f1600efe295db74c) ) - - ROM_REGION( 0x1000000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "d51-03.47", 0x800000, 0x200000, CRC(629a5c99) SHA1(cfc1c0b07ecefd6eddb83edcbcf710e8b8de19e4) ) /* OBJ 16x16 tiles */ - ROM_LOAD32_BYTE( "d51-04.48", 0x000000, 0x200000, CRC(f49b14b7) SHA1(31129771159c1295a074c8311344ece525302289) ) - ROM_LOAD32_BYTE( "d51-05.49", 0x000001, 0x200000, CRC(3a2e2cbf) SHA1(ed2c1ca9211b1d70b4767a54e08263a3e4867199) ) - ROM_LOAD32_BYTE( "d51-06.50", 0x000002, 0x200000, CRC(d33ce2a0) SHA1(92c4504344672ea798cd6dd34f4b46848bf9f82b) ) - ROM_LOAD32_BYTE( "d51-07.51", 0x000003, 0x200000, CRC(24b2f97d) SHA1(6980e67b435d189ce897c0301e0411763410ab47) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d51-10.95", 0x000000, 0x100000, CRC(d5910604) SHA1(8efe13884cfdef208394ddfe19f43eb1b9f78ff3) ) /* PIV 8x8 tiles, 6bpp */ - ROM_LOAD16_BYTE( "d51-11.96", 0x000001, 0x100000, CRC(fee5f5c6) SHA1(1be88747f9c71c348dd61a8f0040007df3a3e6a6) ) - ROM_LOAD ( "d51-12.97", 0x300000, 0x100000, CRC(d630287b) SHA1(2fa09e1821b7280d193ca9a2a270759c3c3189d1) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "d51-13.7", 0x00000, 0x80000, CRC(36921b8b) SHA1(2130120f78a3b984618a53054fc937cf727177b9) ) /* STY, spritemap */ - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "d51-01.73", 0x000000, 0x200000, CRC(92f09155) SHA1(8015e1997818bb480174394eb43840bf26679bcf) ) /* Ensoniq samples */ - ROM_LOAD16_BYTE( "d51-02.74", 0xc00000, 0x200000, CRC(20a9428f) SHA1(c9033d02a49c72f704808f5f899101617d5814e5) ) -ROM_END - - -static READ32_HANDLER( irq_speedup_r_groundfx ) -{ - int ptr; - if ((activecpu_get_sp()&2)==0) ptr=groundfx_ram[(activecpu_get_sp()&0x1ffff)/4]; - else ptr=(((groundfx_ram[(activecpu_get_sp()&0x1ffff)/4])&0x1ffff)<<16) | - (groundfx_ram[((activecpu_get_sp()&0x1ffff)/4)+1]>>16); - - if (activecpu_get_pc()==0x1ece && ptr==0x1b9a) - cpu_spinuntil_int(); - - return groundfx_ram[0xb574/4]; -} - - -DRIVER_INIT( groundfx ) -{ - unsigned int offset,i; - UINT8 *gfx = memory_region(REGION_GFX3); - int size=memory_region_length(REGION_GFX3); - int data; - - /* Speedup handlers */ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x20b574, 0x20b577, 0, 0, irq_speedup_r_groundfx); - - /* make piv tile GFX format suitable for gfxdecode */ - offset = size/2; - for (i = size/2+size/4; i>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; - - gfx[offset] = (d1<<2) | (d2<<6); - offset++; - - gfx[offset] = (d3<<2) | (d4<<6); - offset++; - } -} - - -GAME( 1992, groundfx, 0, groundfx, groundfx, groundfx, ROT0, "Taito Corporation", "Ground Effects / Super Ground Effects (Japan)", 0 ) diff --git a/src/drivers/gticlub.c b/src/drivers/gticlub.c deleted file mode 100644 index de7aafae4..000000000 --- a/src/drivers/gticlub.c +++ /dev/null @@ -1,941 +0,0 @@ -/* Konami GTI Club System - - Driver by Ville Linde - - - - Hardware overview: - - GN672 CPU board: - ---------------- - IBM PowerPC 403GA at 32MHz (main CPU) - Motorola MC68EC000 at 16MHz (sound CPU) - Konami K056800 (MIRAC), sound system interface - Konami K056230 (LANC), LAN interface - Ricoh RF5c400 sound chip - - GN678 GFX board: - ---------------- - Analog Devices ADSP-21062 SHARC DSP at 36MHz - Konami K001604 (2D tilemaps + 2x ROZ) - 2x KS10071 (custom 3D pixel unit) - 2x KS10081 (custom 3D texel unit) - - - - Hardware configurations: - - Game | ID | CPU PCB | CG Board(s) | notes - ----------------------------------------------------------------------------------------------- - GTI Club | GX688 | GN672(A) | GN678(B) | - Operation Thunder Hurricane | GX792 | GN672(A) | GN678(B) | extra board for gun controls(?) - Solar Assault | GX680 | GN672(A) | GN678(B) | - - Hang Pilot | GN685 | ?? | 2x ?? | 3dfx-based CG boards -*/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "cpu/powerpc/ppc.h" -#include "cpu/sharc/sharc.h" -#include "machine/konppc.h" -#include "machine/konamiic.h" -#include "machine/adc083x.h" -#include "sound/rf5c400.h" -#include "vidhrdw/poly.h" -#include "vidhrdw/voodoo.h" -#include "vidhrdw/gticlub.h" -#include "rendlay.h" - -static UINT32 *work_ram; - -UINT8 gticlub_led_reg0 = 0x7f; -UINT8 gticlub_led_reg1 = 0x7f; - -int K001604_vh_start(int chip); -void K001604_tile_update(int chip); -void K001604_draw_front_layer(int chip, mame_bitmap *bitmap, const rectangle *cliprect); -void K001604_draw_back_layer(int chip, mame_bitmap *bitmap, const rectangle *cliprect); -READ32_HANDLER(K001604_tile_r); -READ32_HANDLER(K001604_char_r); -WRITE32_HANDLER(K001604_tile_w); -WRITE32_HANDLER(K001604_char_w); -WRITE32_HANDLER(K001604_reg_w); -READ32_HANDLER(K001604_reg_r); - - - -VIDEO_START( gticlub ); -VIDEO_UPDATE( gticlub ); - - - -static WRITE32_HANDLER( paletteram32_w ) -{ - COMBINE_DATA(&paletteram32[offset]); - data = paletteram32[offset]; - palette_set_color(Machine, offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0)); -} - -VIDEO_START( hangplt ) -{ - if (voodoo_start(0, VOODOO_1, 2, 4, 0) || - voodoo_start(1, VOODOO_1, 2, 4, 0)) - { - return 1; - } - - return K001604_vh_start(0) | K001604_vh_start(1); -} - - -VIDEO_UPDATE( hangplt ) -{ - fillbitmap(bitmap, Machine->remapped_colortable[0], cliprect); - - K001604_tile_update(screen); -// K001604_draw_back_layer(bitmap, cliprect); - - voodoo_update(screen, bitmap, cliprect); - - K001604_draw_front_layer(screen, bitmap, cliprect); - - draw_7segment_led(bitmap, 3, 3, gticlub_led_reg0); - draw_7segment_led(bitmap, 9, 3, gticlub_led_reg1); - - return 0; -} - -/******************************************************************/ - -/* 93C56 EEPROM */ -static struct EEPROM_interface eeprom_interface = -{ - 8, /* address bits */ - 16, /* data bits */ - "*110", /* read command */ - "*101", /* write command */ - "*111", /* erase command */ - "*10000xxxxxx", /* lock command */ - "*10011xxxxxx", /* unlock command */ - 1, /* enable_multi_read */ - 0 /* reset_delay */ -}; - -static void eeprom_handler(mame_file *file, int read_or_write) -{ - if (read_or_write) - { - if (file) - { - EEPROM_save(file); - } - } - else - { - EEPROM_init(&eeprom_interface); - if (file) - { - EEPROM_load(file); - } - else - { - // set default eeprom - UINT8 eepdata[0x200]; - memset(eepdata, 0xff, 0x200); - - if (mame_stricmp(Machine->gamedrv->name, "slrasslt") == 0) - { - // magic number - eepdata[0x4] = 0x96; - eepdata[0x5] = 0x72; - } - - EEPROM_set_data(eepdata, 0x200); - } - } -} - -static UINT8 inputport2 = 0xff; - -static int counter = 0; -static int adc_bit = 0; - -//UINT32 eeprom_bit = 0; -static READ32_HANDLER( sysreg_r ) -{ - UINT32 r = 0; - if (offset == 0) - { - if (!(mem_mask & 0xff000000)) - { - r |= readinputport(0) << 24; - } - if (!(mem_mask & 0x00ff0000)) - { - r |= readinputport(1) << 16; - } - if (!(mem_mask & 0x0000ff00)) - { - //r |= readinputport(2) << 8; - inputport2 ^= 0x80; - r |= inputport2 << 8; - } - if (!(mem_mask & 0x000000ff)) - { - r |= readinputport(3) << 0; - } - } - else if (offset == 1) - { - if (!(mem_mask & 0xff000000) ) - { - // 7 0 - // |?????ae?| - // - // a = ADC readout - // e = EEPROM data out - - UINT32 eeprom_bit = (EEPROM_read_bit() << 1); - - r |= (eeprom_bit | adc_bit << 2) << 24; - } - else - { - mame_printf_debug("sysreg_r %d, %08X\n", offset, mem_mask); - } - return r; - } - return r; -} - -static WRITE32_HANDLER( sysreg_w ) -{ - if (offset == 0) - { - if( !(mem_mask & 0xff000000) ) - { - gticlub_led_reg0 = (data >> 24) & 0xff; - } - if( !(mem_mask & 0x00ff0000) ) - { - gticlub_led_reg1 = (data >> 16) & 0xff; - } - if( !(mem_mask & 0x000000ff) ) - { - EEPROM_write_bit((data & 0x01) ? 1 : 0); - EEPROM_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - } - } - if( offset == 1 ) - { - if (!(mem_mask & 0xff000000)) - { - if (data & 0x80000000) /* CG Board 1 IRQ Ack */ - { - cpunum_set_input_line(0, INPUT_LINE_IRQ1, CLEAR_LINE); - } - if (data & 0x40000000) /* CG Board 0 IRQ Ack */ - { - cpunum_set_input_line(0, INPUT_LINE_IRQ0, CLEAR_LINE); - } - - //adc083x_clk_write(0, ( data >> 25 ) & 1); - //adc083x_di_write(0, ( data >> 24 ) & 1); - //adc083x_cs_write(0, ( data >> 26 ) & 1); - if (data & 0x01000000) - { - counter = 0; - } - if (data & 0x02000000) - { - adc_bit = (0x3fff >> counter) & 1; - counter++; - } - - set_cgboard_id((data >> 28) & 0x3); - } - return; - } -} - -double adc083x_callback( int input ) -{ - switch( input ) - { - case ADC083X_CH0: - return ( (double)5 * readinputport(4) ) / 255; // steer - case ADC083X_CH1: - return ( (double)5 * readinputport(5) ) / 255; // gas - case ADC083X_VREF: - return 5; - } - return 0; -} - -/* Konami K056230 (LANC) */ -static UINT8 K056230_r(int reg) -{ - switch (reg) - { - case 0: // Status register - { - return 0x08; - } - } - -// mame_printf_debug("K056230_r: %d at %08X\n", reg, activecpu_get_pc()); - - return 0; -} - -static void K056230_w(int reg, UINT8 data) -{ - switch (reg) - { - case 0: // Mode register - { - break; - } - case 1: // Control register - { - if (data & 0x20) - { - // Thunder Hurricane breaks otherwise... - if (mame_stricmp(Machine->gamedrv->name, "thunderh") != 0) - { - cpunum_set_input_line(0, INPUT_LINE_IRQ2, ASSERT_LINE); - } - } - break; - } - case 2: // Sub ID register - { - break; - } - } -// mame_printf_debug("K056230_w: %d, %02X at %08X\n", reg, data, activecpu_get_pc()); -} - -READ32_HANDLER( lanc_r ) -{ - UINT32 r = 0; - int reg = offset * 4; - - if (!(mem_mask & 0xff000000)) - { - r |= K056230_r(reg+0) << 24; - } - if (!(mem_mask & 0x00ff0000)) - { - r |= K056230_r(reg+1) << 16; - } - if (!(mem_mask & 0x0000ff00)) - { - r |= K056230_r(reg+2) << 8; - } - if (!(mem_mask & 0x000000ff)) - { - r |= K056230_r(reg+3) << 0; - } - - return r; -} - -WRITE32_HANDLER( lanc_w ) -{ - int reg = offset * 4; - - if (!(mem_mask & 0xff000000)) - { - K056230_w(reg+0, (data >> 24) & 0xff); - } - if (!(mem_mask & 0x00ff0000)) - { - K056230_w(reg+1, (data >> 16) & 0xff); - } - if (!(mem_mask & 0x0000ff00)) - { - K056230_w(reg+2, (data >> 8) & 0xff); - } - if (!(mem_mask & 0x000000ff)) - { - K056230_w(reg+3, (data >> 0) & 0xff); - } -} - -static UINT32 lanc_ram[0x2000/4]; -READ32_HANDLER( lanc_ram_r ) -{ -// mame_printf_debug("LANC_RAM_r: %08X, %08X at %08X\n", offset, mem_mask, activecpu_get_pc()); - return lanc_ram[offset & 0x7ff]; -} - -WRITE32_HANDLER( lanc_ram_w ) -{ -// mame_printf_debug("LANC_RAM_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, activecpu_get_pc()); - COMBINE_DATA(lanc_ram + (offset & 0x7ff)); -} - -/******************************************************************/ - -static ADDRESS_MAP_START( gticlub_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_MIRROR(0x80000000) AM_RAM AM_BASE(&work_ram) /* Work RAM */ - AM_RANGE(0x74000000, 0x740000ff) AM_MIRROR(0x80000000) AM_READWRITE(K001604_reg_r, K001604_reg_w) - AM_RANGE(0x74010000, 0x7401ffff) AM_MIRROR(0x80000000) AM_READWRITE(paletteram32_r, paletteram32_w) AM_BASE(&paletteram32) - AM_RANGE(0x74020000, 0x7403ffff) AM_MIRROR(0x80000000) AM_READWRITE(K001604_tile_r, K001604_tile_w) - AM_RANGE(0x74040000, 0x7407ffff) AM_MIRROR(0x80000000) AM_READWRITE(K001604_char_r, K001604_char_w) - AM_RANGE(0x78000000, 0x7800ffff) AM_MIRROR(0x80000000) AM_READWRITE(cgboard_dsp_shared_r_ppc, cgboard_dsp_shared_w_ppc) - AM_RANGE(0x78040000, 0x7804000f) AM_MIRROR(0x80000000) AM_READWRITE(K001006_0_r, K001006_0_w) - AM_RANGE(0x78080000, 0x7808000f) AM_MIRROR(0x80000000) AM_READWRITE(K001006_1_r, K001006_1_w) - AM_RANGE(0x780c0000, 0x780c0003) AM_MIRROR(0x80000000) AM_READWRITE(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc) - AM_RANGE(0x7e000000, 0x7e003fff) AM_MIRROR(0x80000000) AM_READWRITE(sysreg_r, sysreg_w) - AM_RANGE(0x7e008000, 0x7e009fff) AM_MIRROR(0x80000000) AM_READWRITE(lanc_r, lanc_w) - AM_RANGE(0x7e00a000, 0x7e00bfff) AM_MIRROR(0x80000000) AM_READWRITE(lanc_ram_r, lanc_ram_w) - AM_RANGE(0x7e00c000, 0x7e00c007) AM_MIRROR(0x80000000) AM_WRITE(K056800_host_w) - AM_RANGE(0x7e00c000, 0x7e00c007) AM_MIRROR(0x80000000) AM_READ(K056800_host_r) // Hang Pilot - AM_RANGE(0x7e00c008, 0x7e00c00f) AM_MIRROR(0x80000000) AM_READ(K056800_host_r) - AM_RANGE(0x7f000000, 0x7f3fffff) AM_MIRROR(0x80000000) AM_ROM AM_REGION(REGION_USER2, 0) /* Data ROM */ - AM_RANGE(0x7f800000, 0x7f9fffff) AM_MIRROR(0x80000000) AM_ROM AM_SHARE(2) - AM_RANGE(0x7fe00000, 0x7fffffff) AM_MIRROR(0x80000000) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(2) /* Program ROM */ -ADDRESS_MAP_END - -/**********************************************************************/ - -static ADDRESS_MAP_START( sound_memmap, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x200000, 0x20ffff) AM_RAM - AM_RANGE(0x300000, 0x30000f) AM_READWRITE(K056800_sound_r, K056800_sound_w) - AM_RANGE(0x400000, 0x400fff) AM_READWRITE(RF5C400_0_r, RF5C400_0_w) /* Ricoh RF5C400 */ - AM_RANGE(0x580000, 0x580001) AM_WRITENOP - AM_RANGE(0x600000, 0x600001) AM_WRITENOP -ADDRESS_MAP_END - -/*****************************************************************************/ - -static UINT32 *sharc_dataram_0; -static UINT32 *sharc_dataram_1; - -static READ32_HANDLER( dsp_dataram0_r ) -{ - return sharc_dataram_0[offset] & 0xffff; -} - -static WRITE32_HANDLER( dsp_dataram0_w ) -{ - sharc_dataram_0[offset] = data; -} - -static READ32_HANDLER( dsp_dataram1_r ) -{ - return sharc_dataram_1[offset] & 0xffff; -} - -static WRITE32_HANDLER( dsp_dataram1_w ) -{ - sharc_dataram_1[offset] = data; -} - -static ADDRESS_MAP_START( sharc_map, ADDRESS_SPACE_DATA, 32 ) - AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w) - AM_RANGE(0x500000, 0x5fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w) - AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(K001005_r, K001005_w) - AM_RANGE(0x700000, 0x7000ff) AM_READWRITE(cgboard_0_comm_sharc_r, cgboard_0_comm_sharc_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hangplt_sharc0_map, ADDRESS_SPACE_DATA, 32 ) - AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_0_shared_sharc_r, cgboard_0_shared_sharc_w) - AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram0_r, dsp_dataram0_w) - AM_RANGE(0x1400000, 0x14fffff) AM_RAM - AM_RANGE(0x2400000, 0x27fffff) AM_READWRITE(nwk_voodoo_0_r, voodoo_0_w) - AM_RANGE(0x3400000, 0x34000ff) AM_READWRITE(cgboard_0_comm_sharc_r, cgboard_0_comm_sharc_w) - AM_RANGE(0x3401000, 0x3401fff) AM_WRITE(nwk_fifo_0_w) - AM_RANGE(0x3500000, 0x3507fff) AM_READWRITE(K033906_0_r, K033906_0_w) - AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK(5) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hangplt_sharc1_map, ADDRESS_SPACE_DATA, 32 ) - AM_RANGE(0x0400000, 0x041ffff) AM_READWRITE(cgboard_1_shared_sharc_r, cgboard_1_shared_sharc_w) - AM_RANGE(0x0500000, 0x05fffff) AM_READWRITE(dsp_dataram1_r, dsp_dataram1_w) - AM_RANGE(0x1400000, 0x14fffff) AM_RAM - AM_RANGE(0x2400000, 0x27fffff) AM_READWRITE(nwk_voodoo_1_r, voodoo_1_w) - AM_RANGE(0x3400000, 0x34000ff) AM_READWRITE(cgboard_1_comm_sharc_r, cgboard_1_comm_sharc_w) - AM_RANGE(0x3401000, 0x3401fff) AM_WRITE(nwk_fifo_1_w) - AM_RANGE(0x3500000, 0x3507fff) AM_READWRITE(K033906_1_r, K033906_1_w) - AM_RANGE(0x3600000, 0x37fffff) AM_ROMBANK(6) -ADDRESS_MAP_END - -/*****************************************************************************/ - -static NVRAM_HANDLER(gticlub) -{ - eeprom_handler(file, read_or_write); -} - - -INPUT_PORTS_START( gticlub ) - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x08, 0x08, "DIP3" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DIP2" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Network ID1" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Network ID2" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - - PORT_START /* mask default type sens delta min max */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x68) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_CODE_DEC(KEYCODE_LCONTROL) - -INPUT_PORTS_END - -INPUT_PORTS_START( slrasslt ) - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) // View Shift - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // Trigger - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // Missile - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // Power Up - - PORT_START - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x08, 0x08, "DIP3" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DIP2" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "DIP1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "DIP0" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - -INPUT_PORTS_START( hangplt ) - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x08, 0x08, "DIP3" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "DIP2" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Test Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Machine Init" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - - PORT_START /* mask default type sens delta min max */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x68) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_CODE_DEC(KEYCODE_LCONTROL) - -INPUT_PORTS_END - -/* PowerPC interrupts - - IRQ0: Vblank - IRQ2: LANC - DMA0 - -*/ -static INTERRUPT_GEN( gticlub_vblank ) -{ - cpunum_set_input_line(0, INPUT_LINE_IRQ0, ASSERT_LINE); -} - - -static ppc_config gticlub_ppc_cfg = -{ - PPC_MODEL_403GA -}; - -static sharc_config sharc_cfg = -{ - BOOT_MODE_EPROM -}; - -static struct RF5C400interface rf5c400_interface = -{ - REGION_SOUND1 -}; - -static MACHINE_RESET( gticlub ) -{ - cpunum_set_input_line(2, INPUT_LINE_RESET, ASSERT_LINE); -} - -static MACHINE_DRIVER_START( gticlub ) - - /* basic machine hardware */ - MDRV_CPU_ADD(PPC403, 64000000/2) /* PowerPC 403GA 32MHz */ - MDRV_CPU_CONFIG(gticlub_ppc_cfg) - MDRV_CPU_PROGRAM_MAP(gticlub_map, 0) - MDRV_CPU_VBLANK_INT(gticlub_vblank, 1) - - MDRV_CPU_ADD(M68000, 64000000/4) /* 16MHz */ - MDRV_CPU_PROGRAM_MAP(sound_memmap, 0) - - MDRV_CPU_ADD(ADSP21062, 36000000) - MDRV_CPU_CONFIG(sharc_cfg) - MDRV_CPU_DATA_MAP(sharc_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_NVRAM_HANDLER(gticlub) - MDRV_MACHINE_RESET(gticlub) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(512, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(gticlub) - MDRV_VIDEO_UPDATE(gticlub) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(RF5C400, 0) - MDRV_SOUND_CONFIG(rf5c400_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_RESET( hangplt ) -{ - cpunum_set_input_line(2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(3, INPUT_LINE_RESET, ASSERT_LINE); -} - -static int vblank = 0; -static INTERRUPT_GEN( hangplt_vblank ) -{ - if (vblank == 0) - { - cpunum_set_input_line(0, INPUT_LINE_IRQ0, ASSERT_LINE); - } - else - { - cpunum_set_input_line(0, INPUT_LINE_IRQ1, ASSERT_LINE); - } - - vblank++; - vblank &= 1; -} - -static MACHINE_DRIVER_START( hangplt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(PPC403, 64000000/2) /* PowerPC 403GA 32MHz */ - MDRV_CPU_CONFIG(gticlub_ppc_cfg) - MDRV_CPU_PROGRAM_MAP(gticlub_map, 0) - MDRV_CPU_VBLANK_INT(hangplt_vblank, 2) - - MDRV_CPU_ADD(M68000, 64000000/4) /* 16MHz */ - MDRV_CPU_PROGRAM_MAP(sound_memmap, 0) - - MDRV_CPU_ADD(ADSP21062, 36000000) - MDRV_CPU_CONFIG(sharc_cfg) - MDRV_CPU_DATA_MAP(hangplt_sharc0_map, 0) - - MDRV_CPU_ADD(ADSP21062, 36000000) - MDRV_CPU_CONFIG(sharc_cfg) - MDRV_CPU_DATA_MAP(hangplt_sharc1_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_NVRAM_HANDLER(gticlub) - MDRV_MACHINE_RESET(hangplt) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_PALETTE_LENGTH(65536) - - MDRV_SCREEN_ADD("left", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(512, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - - MDRV_SCREEN_ADD("right", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(512, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - - MDRV_VIDEO_START(hangplt) - MDRV_VIDEO_UPDATE(hangplt) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(RF5C400, 0) - MDRV_SOUND_CONFIG(rf5c400_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************/ - -#define ROM_LOAD64_WORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(6)) - -ROM_START(gticlub) - ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688aaa01.21u", 0x000003, 0x80000, CRC(06a56474) SHA1(3a457b885a35e3ee030fd51d847bcf75fce46208)) - ROM_LOAD32_BYTE("688aaa02.19u", 0x000002, 0x80000, CRC(3c1e714a) SHA1(557f8542b855b2b35f242c8db7396017aca6dbd8)) - ROM_LOAD32_BYTE("688aaa03.21r", 0x000001, 0x80000, CRC(e060580b) SHA1(50242f3f3b949cc03082e4e75d9dcc89e17f0a75)) - ROM_LOAD32_BYTE("688aaa04.19r", 0x000000, 0x80000, CRC(928c23cd) SHA1(cce54398e1e5b98bfb717839cc422f1f60502788)) - - ROM_REGION32_BE(0x400000, REGION_USER2, 0) /* data roms */ - ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d)) - ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423)) - - ROM_REGION(0x80000, REGION_CPU2, 0) /* 68k program */ - ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) - - ROM_REGION(0x800000, REGION_SOUND1, 0) /* sound roms */ - ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) - ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) - ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) - ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) - - ROM_REGION(0x800000, REGION_GFX1, 0) /* texture roms */ - ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) - ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) - ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) - ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) -ROM_END - -ROM_START(gticlubj) - ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE("688jaa01.bin", 0x000003, 0x80000, CRC(1492059c) SHA1(176dbd87f23f4cd8e1397e67da501738e20e5a57)) - ROM_LOAD32_BYTE("688jaa02.bin", 0x000002, 0x80000, CRC(7896dd69) SHA1(a3ab7b872132a5e66238e414f4b497cf7beb8b1c)) - ROM_LOAD32_BYTE("688jaa03.bin", 0x000001, 0x80000, CRC(94e2be50) SHA1(f206ac201903f3aae29196ab6fccdef104859346)) - ROM_LOAD32_BYTE("688jaa04.bin", 0x000000, 0x80000, CRC(ff539bb6) SHA1(1a225eca4377d82a2b6cb99c1d16580b9ccf2f08)) - - ROM_REGION32_BE(0x400000, REGION_USER2, 0) /* data roms */ - ROM_LOAD32_WORD_SWAP("688a05.14u", 0x000000, 0x200000, CRC(7caa3f80) SHA1(28409dc17c4e010173396fdc069a409fbea0d58d)) - ROM_LOAD32_WORD_SWAP("688a06.12u", 0x000002, 0x200000, CRC(83e7ce0a) SHA1(afe185f6ed700baaf4c8affddc29f8afdfec4423)) - - ROM_REGION(0x80000, REGION_CPU2, 0) /* 68k program */ - ROM_LOAD16_WORD_SWAP( "688a07.13k", 0x000000, 0x040000, CRC(f0805f06) SHA1(4b87e02b89e7ea812454498603767668e4619025) ) - - ROM_REGION(0x800000, REGION_SOUND1, 0) /* sound roms */ - ROM_LOAD( "688a09.9s", 0x000000, 0x200000, CRC(fb582963) SHA1(ce8fe6a4d7ac7d7f4b6591f9150b1d351e636354) ) - ROM_LOAD( "688a10.7s", 0x200000, 0x200000, CRC(b3ddc5f1) SHA1(a3f76c86e85eb17f20efb037c1ad64e9cb8566c8) ) - ROM_LOAD( "688a11.5s", 0x400000, 0x200000, CRC(fc706183) SHA1(c8ce6de0588be1023ef48577bc88a4e5effdcd25) ) - ROM_LOAD( "688a12.2s", 0x600000, 0x200000, CRC(510c70e3) SHA1(5af77bc98772ab7961308c3af0a80cb1bca690e3) ) - - ROM_REGION(0x800000, REGION_GFX1, 0) /* texture roms */ - ROM_LOAD64_WORD( "688a13.18d", 0x000000, 0x200000, CRC(c8f04f91) SHA1(9da8cc3a94dbf0a1fce87c2bc9249df712ae0b0d) ) - ROM_LOAD64_WORD( "688a14.13d", 0x000002, 0x200000, CRC(b9932735) SHA1(2492244d2acb350974202a6718bc7121325d2121) ) - ROM_LOAD64_WORD( "688a15.9d", 0x000004, 0x200000, CRC(8aadee51) SHA1(be9020a47583da9d4ff586d227836dc5b7dc31f0) ) - ROM_LOAD64_WORD( "688a16.4d", 0x000006, 0x200000, CRC(7f4e1893) SHA1(585be7b31ab7a48300c22b00443b00d631f4c49d) ) -ROM_END - -ROM_START( thunderh ) - ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "680uaa01.21u", 0x000003, 0x080000, CRC(f2bb2ba1) SHA1(311e88d63179486014376c4af4ff0ef28673ee5a) ) - ROM_LOAD32_BYTE( "680uaa02.19u", 0x000002, 0x080000, CRC(52f617b5) SHA1(fda3133d3a7e04eb4432c69becdcf1872b3660d9) ) - ROM_LOAD32_BYTE( "680uaa03.21r", 0x000001, 0x080000, CRC(086a0574) SHA1(32fb93dbb93d2fe6af743ea4310b50a6cd03647d) ) - ROM_LOAD32_BYTE( "680uaa04.19r", 0x000000, 0x080000, CRC(85e1f8e3) SHA1(9172c54b6663f1bf390795068271198083a6860d) ) - - ROM_REGION32_BE(0x400000, REGION_USER2, 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "680a05.14u", 0x000000, 0x200000, CRC(0c9f334d) SHA1(99ac622a04a7140244d81031df69a796b6fd2657) ) - ROM_LOAD32_WORD_SWAP( "680a06.12u", 0x000002, 0x200000, CRC(83074217) SHA1(bbf782ac125cd98d9147ef4e0373bf61f74726f7) ) - - ROM_REGION(0x80000, REGION_CPU2, 0) /* 68k program */ - ROM_LOAD16_WORD_SWAP( "680a07.13k", 0x000000, 0x080000, CRC(12247a3e) SHA1(846cd9423efd3c9b17fce08393c6c83307d72f92) ) - - ROM_REGION(0x20000, REGION_CPU3, 0) /* 68k program for outboard sound? network? board */ - ROM_LOAD16_WORD_SWAP( "680c22.20k", 0x000000, 0x020000, CRC(d93c0ee2) SHA1(4b58418cbb01b51e12d6e7c86b2c81cd35d86248) ) - - ROM_REGION(0x800000, REGION_SOUND1, 0) /* sound roms */ - ROM_LOAD( "680a09.9s", 0x000000, 0x200000, CRC(71c2b049) SHA1(ce360172c8774b31edf16a80104c35b1caf26cd9) ) - ROM_LOAD( "680a10.7s", 0x200000, 0x200000, CRC(19882bf3) SHA1(7287da58853c84cbadbfb42bed37f2b0032c4b4d) ) - ROM_LOAD( "680a11.5s", 0x400000, 0x200000, CRC(0c74fe3f) SHA1(2e69f8d37552a74bbda65b134f747b4380ed33b0) ) - ROM_LOAD( "680a12.2s", 0x600000, 0x200000, CRC(b052919d) SHA1(a61c8eaf378ab7d780478db61217302d1b9f8f73) ) - - ROM_REGION(0x800000, REGION_GFX1, 0) /* texture roms */ - ROM_LOAD64_WORD( "680a13.18d", 0x000000, 0x200000, CRC(233f9074) SHA1(78ce42c35407d61df37cc0d16cdee84f8de968fa) ) - ROM_LOAD64_WORD( "680a14.13d", 0x000002, 0x200000, CRC(9ae15033) SHA1(12e291114629632b81f53811a6c8666aff4e92f3) ) - ROM_LOAD64_WORD( "680a15.9d", 0x000004, 0x200000, CRC(dc47c86f) SHA1(71af9b21f1ecc063135f501b1561869ee910c236) ) - ROM_LOAD64_WORD( "680a16.4d", 0x000006, 0x200000, CRC(ea388143) SHA1(3de5314a009d702186d5e285c8edefdd48139eab) ) -ROM_END - -ROM_START( slrasslt ) - ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "792uaa01.21u", 0x000003, 0x080000, CRC(c73bf7fb) SHA1(ffe0fea155473827929339a9261a158287ce30a8) ) - ROM_LOAD32_BYTE( "792uaa02.19u", 0x000002, 0x080000, CRC(a940bb9b) SHA1(65a60157697a21cc2485c02c689c9addb3ac91f1) ) - ROM_LOAD32_BYTE( "792uaa03.21r", 0x000001, 0x080000, CRC(363e8411) SHA1(b9c70033d8e3de4b339b61a66172bfecb7c2b3ab) ) - ROM_LOAD32_BYTE( "792uaa04.19r", 0x000000, 0x080000, CRC(7910d99c) SHA1(e2114d369060528998b58331d590c086d306f541) ) - - ROM_REGION32_BE(0x400000, REGION_USER2, 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "792a05.14u", 0x000000, 0x200000, CRC(9a27edfc) SHA1(c028b6440eb1b0c814c4db45918e580662ac2d9a) ) - ROM_LOAD32_WORD_SWAP( "792a06.12u", 0x000002, 0x200000, CRC(c272f171) SHA1(df492287eadc5e8668fe46cfa3ed3ca77c57feca) ) - - ROM_REGION(0x80000, REGION_CPU2, 0) /* 68k program */ - ROM_LOAD16_WORD_SWAP( "792a07.10k", 0x000000, 0x080000, CRC(89a65ad1) SHA1(d814ef0b560c8e68da57ad5c6096e4fc05e9913e) ) - - ROM_REGION(0x800000, REGION_SOUND1, 0) /* sound roms */ - ROM_LOAD( "792a09.9s", 0x000000, 0x200000, CRC(7d7ea427) SHA1(a9a311a7c17223cc87140fe2890e20a321464831) ) - ROM_LOAD( "792a10.7s", 0x200000, 0x200000, CRC(e585e5d9) SHA1(ec44ad324a66eeea4c45933dda5a8a9a4398879d) ) - ROM_LOAD( "792a11.5s", 0x400000, 0x200000, CRC(c9c3a04c) SHA1(f834659f67712c9fcd93b7407669d7f35517b790) ) - ROM_LOAD( "792a12.2s", 0x600000, 0x200000, CRC(da8fcdd5) SHA1(daa7b3a086ada69e93c3d7cd9130befc79e422dc) ) - - ROM_REGION(0x800000, REGION_GFX1, 0) /* texture roms */ - ROM_LOAD64_WORD( "792a13.18d", 0x000000, 0x200000, CRC(16d6a134) SHA1(3f53f3c6759d7c5f40aa25a598df899fbac35a60) ) - ROM_LOAD64_WORD( "792a14.13d", 0x000002, 0x200000, CRC(cf57e830) SHA1(607b4dec3b8180a63e29d9dab1ca28d7226dda1e) ) - ROM_LOAD64_WORD( "792a15.9d", 0x000004, 0x200000, CRC(1c5531cb) SHA1(1b514f181c92e16d07bfe4719604f1e4caf15377) ) - ROM_LOAD64_WORD( "792a16.4d", 0x000006, 0x200000, CRC(df89e392) SHA1(af37c5460d43bf8d8a1ab4213c4528083a7363c2) ) -ROM_END - -ROM_START( hangplt ) - ROM_REGION(0x200000, REGION_USER1, 0) /* PowerPC program roms */ - ROM_LOAD32_BYTE( "685jab01.21u", 0x000003, 0x080000, CRC(f98a3e82) SHA1(94ebaa172b0e98c5cd08efaea5f56e707e5032b4) ) - ROM_LOAD32_BYTE( "685jab02.19u", 0x000002, 0x080000, CRC(20730cdc) SHA1(71b2cf7077ab7db875f9030e21afd05905f57ce5) ) - ROM_LOAD32_BYTE( "685jab03.21r", 0x000001, 0x080000, CRC(77fa2248) SHA1(a662b84945b3d268fed15952cc793d821233735e) ) - ROM_LOAD32_BYTE( "685jab04.19r", 0x000000, 0x080000, CRC(ab6773df) SHA1(91d3f849a1cc5fa4b2fbd876d53402a548198c41) ) - - ROM_REGION32_BE(0x400000, REGION_USER2, 0) /* data roms */ - ROM_LOAD32_WORD_SWAP( "685a05.14u", 0x000000, 0x200000, CRC(ba1c8f40) SHA1(ce4ed641c1d6d44447eaaada16f305f1d7fb9ee2) ) - ROM_LOAD32_WORD_SWAP( "685a06.12u", 0x000002, 0x200000, CRC(2429935c) SHA1(4da9e169adcac81ea1bc135d727c2bd13ad372fa) ) - - ROM_REGION(0x80000, REGION_CPU2, 0) /* 68k program */ - ROM_LOAD16_WORD_SWAP( "685a07.13k", 0x000000, 0x080000, CRC(5b72fd80) SHA1(a150837fa0d66dc0c3832495a4c8ce4f9b92cd98) ) - - ROM_REGION(0x800000, REGION_SOUND1, 0) /* other roms */ - ROM_LOAD( "685a09.9s", 0x000000, 0x200000, CRC(653821cf) SHA1(625abb7769a52c9ac61cfddaa084b9c9539f3b15) ) - ROM_LOAD( "685a10.7s", 0x200000, 0x200000, CRC(71eb06e5) SHA1(3c5953e87df63fb7680d7a04267ff2208f49838f) ) - - ROM_REGION(0x800000, REGION_USER5, 0) /* texture roms */ - ROM_LOAD32_WORD_SWAP( "685a13.4w", 0x000000, 0x400000, CRC(06329af4) SHA1(76cad9db604751ce48bb67bfd29e57bac0ee9a16) ) - ROM_LOAD32_WORD_SWAP( "685a14.12w", 0x000002, 0x400000, CRC(87437739) SHA1(0d45637af40938a54d5efd29c125b0fafd55f9a4) ) -ROM_END - -static void sound_irq_callback(int irq) -{ - if (irq == 0) - { - cpunum_set_input_line(1, INPUT_LINE_IRQ1, PULSE_LINE); - } - else - { - cpunum_set_input_line(1, INPUT_LINE_IRQ2, PULSE_LINE); - } -} - -static DRIVER_INIT(gticlub) -{ - init_konami_cgboard(1, CGBOARD_TYPE_GTICLUB); - sharc_dataram_0 = auto_malloc(0x100000); - - K001005_preprocess_texture_data(memory_region(REGION_GFX1), memory_region_length(REGION_GFX1)); - - K056800_init(sound_irq_callback); - - adc083x_init(0, ADC0838, adc083x_callback); -} - -static DRIVER_INIT(hangplt) -{ - init_konami_cgboard(2, CGBOARD_TYPE_NWKTR); - set_cgboard_texture_bank(0, 5, memory_region(REGION_USER5)); - set_cgboard_texture_bank(1, 6, memory_region(REGION_USER5)); - - sharc_dataram_0 = auto_malloc(0x100000); - sharc_dataram_1 = auto_malloc(0x100000); - - K056800_init(sound_irq_callback); -} - -/*************************************************************************/ - -GAME( 1996, gticlub, 0, gticlub, gticlub, gticlub, ROT0, "Konami", "GTI Club (ver AAA)", GAME_NOT_WORKING|GAME_NO_SOUND ) -GAME( 1996, gticlubj, gticlub, gticlub, gticlub, gticlub, ROT0, "Konami", "GTI Club (ver JAA)", GAME_NOT_WORKING|GAME_NO_SOUND ) -GAME( 1996, thunderh, 0, gticlub, gticlub, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", GAME_NOT_WORKING|GAME_NO_SOUND ) -GAME( 1997, slrasslt, 0, gticlub, slrasslt, gticlub, ROT0, "Konami", "Solar Assault (ver UAA)", GAME_NOT_WORKING|GAME_NO_SOUND ) -GAMEL( 1997, hangplt, 0, hangplt, hangplt, hangplt, ROT0, "Konami", "Hang Pilot", GAME_NOT_WORKING|GAME_NO_SOUND, layout_dualhsxs ) diff --git a/src/drivers/gumbo.c b/src/drivers/gumbo.c deleted file mode 100644 index 6b2a701c0..000000000 --- a/src/drivers/gumbo.c +++ /dev/null @@ -1,466 +0,0 @@ -/* - -Gumbo (c)1994 Min Corp (Main Corp written on PCB) -Miss Bingo (c)1994 Min Corp -Miss Puzzle (c)1994 Min Corp - -argh they have the same music as news (news.c) - -*/ - -/* working notes (Gumbo) - -68k interrupts -lev 1 : 0x64 : 0000 0142 - -lev 2 : 0x68 : 0000 0142 - -lev 3 : 0x6c : 0000 0142 - -lev 4 : 0x70 : 0000 0142 - -lev 5 : 0x74 : 0000 0142 - -lev 6 : 0x78 : 0000 0142 - -lev 7 : 0x7c : 0000 0142 - - -PCB Layout ----------- - - M6295 U210 6264 U512 - 6264 U511 - ACTEL - A1020A 14.31818MHz -DSW1 6116 - 6116 - 6116 - 6116 - 6264 6264 - U1 U2 U425 U426 - 68000P10 U421 U420 - -*/ - -#include "driver.h" -#include "sound/okim6295.h" - -UINT16 *gumbo_bg_videoram; -UINT16 *gumbo_fg_videoram; - -WRITE16_HANDLER( gumbo_bg_videoram_w ); -WRITE16_HANDLER( gumbo_fg_videoram_w ); -VIDEO_START( gumbo ); -VIDEO_UPDATE( gumbo ); - -static ADDRESS_MAP_START( gumbo_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1b0000, 0x1b03ff) AM_READ(MRA16_RAM) - AM_RANGE(0x1c0100, 0x1c0101) AM_READ(input_port_0_word_r) - AM_RANGE(0x1c0200, 0x1c0201) AM_READ(input_port_1_word_r) - AM_RANGE(0x1c0300, 0x1c0301) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0x1e0000, 0x1e0fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1f0000, 0x1f3fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gumbo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) // main ram - AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0x1b0000, 0x1b03ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x1e0000, 0x1e0fff) AM_WRITE(gumbo_bg_videoram_w) AM_BASE(&gumbo_bg_videoram) // bg tilemap - AM_RANGE(0x1f0000, 0x1f3fff) AM_WRITE(gumbo_fg_videoram_w) AM_BASE(&gumbo_fg_videoram) // fg tilemap -ADDRESS_MAP_END - -/* Miss Puzzle has a different memory map */ - -static ADDRESS_MAP_START( mspuzzle_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1a0000, 0x1a03ff) AM_READ(MRA16_RAM) - AM_RANGE(0x1b0100, 0x1b0101) AM_READ(input_port_0_word_r) - AM_RANGE(0x1b0200, 0x1b0201) AM_READ(input_port_1_word_r) - AM_RANGE(0x1b0300, 0x1b0301) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0x190000, 0x197fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1c0000, 0x1c1fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mspuzzle_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) // main ram - AM_RANGE(0x1b0300, 0x1b0301) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0x1a0000, 0x1a03ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x190000, 0x197fff) AM_WRITE(gumbo_fg_videoram_w) AM_BASE(&gumbo_fg_videoram) // fg tilemap - AM_RANGE(0x1c0000, 0x1c1fff) AM_WRITE(gumbo_bg_videoram_w) AM_BASE(&gumbo_bg_videoram) // bg tilemap -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblpoint_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1c0100, 0x1c0101) AM_READ(input_port_0_word_r) - AM_RANGE(0x1c0200, 0x1c0201) AM_READ(input_port_1_word_r) - AM_RANGE(0x1c0300, 0x1c0301) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0x1e0000, 0x1e3fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1f0000, 0x1f0fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblpoint_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) // main ram - AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0x1b0000, 0x1b03ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x1e0000, 0x1e3fff) AM_WRITE(gumbo_fg_videoram_w) AM_BASE(&gumbo_fg_videoram) // fg tilemap - AM_RANGE(0x1f0000, 0x1f0fff) AM_WRITE(gumbo_bg_videoram_w) AM_BASE(&gumbo_bg_videoram) // bg tilemap -ADDRESS_MAP_END - -INPUT_PORTS_START( gumbo ) - PORT_START /* DSW */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Rotate" - also IPT_START1 - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Help" - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Rotate" - also IPT_START2 - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Help" - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Helps" ) // "Power Count" in test mode - PORT_DIPSETTING( 0x0000, "0" ) - PORT_DIPSETTING( 0x0400, "1" ) - PORT_DIPNAME( 0x0800, 0x0800, "Bonus Bar Level" ) - PORT_DIPSETTING( 0x0800, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( High ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Picture View" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( msbingo ) - PORT_START /* DSW */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Chance Count" ) - PORT_DIPSETTING( 0x0c00, "0" ) - PORT_DIPSETTING( 0x0800, "1" ) - PORT_DIPSETTING( 0x0400, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_DIPNAME( 0x1000, 0x1000, "Play Level" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Play Speed" ) - PORT_DIPSETTING( 0x2000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( High ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Left Count" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Low ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( mspuzzle ) - PORT_START /* DSW */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0300, 0x0200, "Time Mode" ) - PORT_DIPSETTING( 0x0300, "0" ) - PORT_DIPSETTING( 0x0200, "1" ) - PORT_DIPSETTING( 0x0100, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x1000, 0x1000, "Sound Test" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, "View Staff Credits" ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Picture View" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( dblpoint ) - PORT_START /* Inputs */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START /* DSW */ - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c00, 0x0800, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x1000, 0x1000, "Sound Test" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Picture View" ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -static const gfx_layout gumbo_layout = -{ - 8,8, - RGN_FRAC(1,2), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0,RGN_FRAC(1,2)+0, 8,RGN_FRAC(1,2)+8, 16,RGN_FRAC(1,2)+16,24,RGN_FRAC(1,2)+24 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 8*32 -}; - -static const gfx_layout gumbo2_layout = -{ - 4,4, - RGN_FRAC(1,2), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0,RGN_FRAC(1,2)+0, 8,RGN_FRAC(1,2)+8 }, - { 0*16, 1*16, 2*16, 3*16 }, - 4*16 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &gumbo_layout, 0x0, 2 }, /* bg tiles */ - { REGION_GFX2, 0, &gumbo2_layout, 0x0, 2 }, /* fg tiles */ - { -1 } /* end of array */ -}; - - -static MACHINE_DRIVER_START( gumbo ) - MDRV_CPU_ADD_TAG("main", M68000, 14318180 /2) // or 10mhz? ? - MDRV_CPU_PROGRAM_MAP(gumbo_readmem,gumbo_writemem) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) // all the same - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MDRV_PALETTE_LENGTH(0x200) - - MDRV_VIDEO_START(gumbo) - MDRV_VIDEO_UPDATE(gumbo) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1122000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.47) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.47) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mspuzzle ) - MDRV_IMPORT_FROM(gumbo) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mspuzzle_readmem,mspuzzle_writemem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dblpoint ) - MDRV_IMPORT_FROM(gumbo) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dblpoint_readmem,dblpoint_writemem) -MACHINE_DRIVER_END - -ROM_START( gumbo ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u1.bin", 0x00001, 0x20000, CRC(e09899e4) SHA1(b62876dc3ada8509b766a80f496f1227b6af0ced) ) - ROM_LOAD16_BYTE( "u2.bin", 0x00000, 0x20000, CRC(60e59acb) SHA1(dd11329374c8f63851ddf5af54c91f78fad4fd3d) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u210.bin", 0x00000, 0x40000, CRC(16fbe06b) SHA1(4e40e62341dc886fcabdb07f64217dc086f43c67) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "u421.bin", 0x00000, 0x80000, CRC(42445132) SHA1(f29d09d040644c8ef12a1cfdfc0d066e8ed9b82d) ) - ROM_LOAD( "u420.bin", 0x80000, 0x80000, CRC(de1f0e2f) SHA1(3f46d19af48392794838a4b54f8c45b809c67d49) ) - - ROM_REGION( 0x40000, REGION_GFX2, 0 ) /* BG Tiles */ - ROM_LOAD( "u512.bin", 0x00000, 0x20000, CRC(97741798) SHA1(3603e14511817da19f6819d5612728d333695e99) ) - ROM_LOAD( "u511.bin", 0x20000, 0x20000, CRC(1411451b) SHA1(941d5f311f727e3a8d41ecbbe35b687d48cc2cef) ) -ROM_END - -ROM_START( msbingo ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u1.bin", 0x00001, 0x20000, CRC(6eeb6d89) SHA1(d3e8870a2e95a1ee1c0ce80995c902a97b25a85c) ) - ROM_LOAD16_BYTE( "u2.bin", 0x00000, 0x20000, CRC(f15dd4b5) SHA1(b49713e92f11f8c603f561e071df9ffb838c8795) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u210.bin", 0x00000, 0x40000, CRC(55011f69) SHA1(47a27151e6f9ecbc49a95cd8fb4bc627c3efde46) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "u421.bin", 0x000000, 0x80000, CRC(b73f21ab) SHA1(9abb940c0b489fb59f5377516f8d3552cb286c73) ) - ROM_LOAD( "u420.bin", 0x100000, 0x80000, CRC(c2fe9175) SHA1(1cd3afd77325721e45362cf4b7d992538e427c24) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* BG Tiles */ - ROM_LOAD( "u512.bin", 0x00000, 0x40000, CRC(8a46d467) SHA1(23ef7a6c25bb30a993bd796ed9b60da0f6f0d443) ) - ROM_LOAD( "u511.bin", 0x40000, 0x40000, CRC(d5fd3e2e) SHA1(9f805bff62f884b2b35c88c2da016bf6264d2ab6) ) -ROM_END - -ROM_START( mspuzzle ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u1.bin", 0x00001, 0x40000, CRC(d9e63f12) SHA1(c826c604f101d68057fdebf1b231293e4b2811f0) ) - ROM_LOAD16_BYTE( "u2.bin", 0x00000, 0x40000, CRC(9c3fc677) SHA1(193606fe739dbf5f26962f91be968ca371b7fd74) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u210.bin", 0x00000, 0x40000, CRC(0a223a38) SHA1(e5aefbdbb09c18cc230bc852df3ea1defb1a21a8) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "u421.bin", 0x000000, 0x80000, CRC(5387ab3a) SHA1(69913fde1a323ab1356ef52bb4efbf12caed594c) ) - ROM_LOAD( "u420.bin", 0x100000, 0x80000, CRC(c3f892e6) SHA1(5e8e4ae45a0eebaf2bbad00b1208b68f3e81df0c) ) - ROM_LOAD( "u425.bin", 0x080000, 0x80000, CRC(f53a9042) SHA1(70fcc3aaef46282a888466454714dc59daeb174d) ) - ROM_LOAD( "u426.bin", 0x180000, 0x80000, CRC(c927e8da) SHA1(2219f99bce6b2b9a827177c83952813df1a32c72) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* BG Tiles */ - ROM_LOAD( "u512.bin", 0x00000, 0x40000, CRC(505ee3c2) SHA1(a719958c34d9c54445ad207bca1f49df3aff938b) ) - ROM_LOAD( "u511.bin", 0x40000, 0x40000, CRC(3d6b6c78) SHA1(3016423102b4d47c0f1296471cf1670258acc856) ) -ROM_END - -ROM_START( mspuzzln ) - /* all the roms for this game could do with checking on another board, this one was in pretty bad condition - and reads weren't always consistent */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u1.rom", 0x00001, 0x20000, BAD_DUMP CRC(ec940df4) SHA1(20bb6e2757868cf8fbbb11e05adf8c1d625ee172) ) - ROM_LOAD16_BYTE( "u2.rom", 0x00000, 0x20000, BAD_DUMP CRC(7b9cac82) SHA1(c5edfb3fbdf43219ba317c18222e671ebed94469) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u210.rom", 0x00000, 0x40000, CRC(8826b018) SHA1(075e5cef114146c6c72c0331dd3434b27fed180d) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "u421.rom", 0x000000, 0x80000, CRC(3c567c55) SHA1(100e0c9535bf07f3ca8537b3a172486b65e5f24a) ) - ROM_LOAD( "u420.rom", 0x100000, 0x80000, CRC(f52ab7fd) SHA1(e5b8905cae3e15a8a379c4c149441d849931cbde) ) - ROM_LOAD( "u425.rom", 0x080000, 0x80000, BAD_DUMP CRC(1c4c8fc1) SHA1(90e3f297db68a44cba0966b599bb7c593eced16e) ) - ROM_LOAD( "u426.rom", 0x180000, 0x80000, CRC(c28b2743) SHA1(df4bf998ae17ddebf1b4047564eb296c69bc9071) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* BG Tiles */ - ROM_LOAD( "u512.bin", 0x00000, 0x40000, CRC(505ee3c2) SHA1(a719958c34d9c54445ad207bca1f49df3aff938b) ) - ROM_LOAD( "u511.bin", 0x40000, 0x40000, CRC(3d6b6c78) SHA1(3016423102b4d47c0f1296471cf1670258acc856) ) -ROM_END - -ROM_START( dblpoint ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u1.bin", 0x00001, 0x20000, CRC(b05c9e02) SHA1(40ae2926cc4a77e8f871e3a4845314384a15c3e0) ) - ROM_LOAD16_BYTE( "u2.bin", 0x00000, 0x20000, CRC(cab35cbe) SHA1(63a35a880c962a9c9560bf779bf9edec18c3878d) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u210.rom", 0x00000, 0x40000, CRC(d35f975c) SHA1(03490c92afadbd24c5b75f0ab114a2681b65c10e) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "u421.bin", 0x000000, 0x80000, CRC(b0e9271f) SHA1(4873e4dda177f5116164b2a47dabd82bc75e9bdf) ) - ROM_LOAD( "u420.bin", 0x100000, 0x80000, CRC(252789e8) SHA1(7b365035a4c4f6aae0d4075db70d59973569b12b) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) - ROM_LOAD( "u512.bin", 0x00000, 0x40000, CRC(b57b8534) SHA1(1d96dc93111e56a7982c3602864a71a785a4782a) ) - ROM_LOAD( "u511.bin", 0x40000, 0x40000, CRC(74ed13ff) SHA1(2522bd5fe40123a5b07e955252ae96b913a3ac0d) ) -ROM_END - -/* based on the labels this doesn't seem to be an original Min Corp. board */ -ROM_START( dblpoind ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "d12.bin", 0x00001, 0x20000, CRC(44bc1bd9) SHA1(8b72909c53b09b9287bf90bcd8970bdf9c1b8798) ) - ROM_LOAD16_BYTE( "d13.bin", 0x00000, 0x20000, CRC(625a311b) SHA1(38fa0d240b253fcc8dc89438582a9c446410b636) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "d11.bin", 0x00000, 0x40000, CRC(d35f975c) SHA1(03490c92afadbd24c5b75f0ab114a2681b65c10e) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "d16.bin", 0x00000, 0x80000, CRC(afea0158) SHA1(dc97f9268533048690715f377fb35d70e7e5a53f) ) - ROM_LOAD( "d17.bin", 0x80000, 0x80000, CRC(c971dcb5) SHA1(40f15b3d61ea0325883f19f24f2b61e24bb12a98) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) - ROM_LOAD( "d14.bin", 0x00000, 0x40000, CRC(41943db5) SHA1(2f245402f7bbaeca7e50161397ee45e7c7c90cfc) ) - ROM_LOAD( "d15.bin", 0x40000, 0x40000, CRC(6b899a51) SHA1(04114ec9695caaac722800ac1a4ffb563ec433c9) ) -ROM_END - -GAME( 1994, gumbo, 0, gumbo, gumbo, 0, ROT0, "Min Corp.", "Gumbo", 0 ) -GAME( 1994, msbingo, 0, mspuzzle, msbingo, 0, ROT0, "Min Corp.", "Miss Bingo", 0 ) -GAME( 1994, mspuzzle, 0, mspuzzle, mspuzzle, 0, ROT90, "Min Corp.", "Miss Puzzle", 0 ) -GAME( 1994, mspuzzln, mspuzzle, mspuzzle, mspuzzle, 0, ROT90, "Min Corp.", "Miss Puzzle (Nudes)", GAME_NOT_WORKING ) -GAME( 1995, dblpoint, 0, dblpoint, dblpoint, 0, ROT0, "Min Corp.", "Double Point", 0 ) -GAME( 1995, dblpoind, dblpoint, dblpoint, dblpoint, 0, ROT0, "Dong Bang Electron", "Double Point (Dong Bang Electron, bootleg?)", 0 ) diff --git a/src/drivers/gunbustr.c b/src/drivers/gunbustr.c deleted file mode 100644 index 31dd57d04..000000000 --- a/src/drivers/gunbustr.c +++ /dev/null @@ -1,453 +0,0 @@ -/**************************************************************************** - - Gunbuster (c) 1992 Taito - - Driver by Bryan McPhail & David Graves. - - Board Info: - - CPU : 68EC020 68000 - SOUND : Ensoniq - OSC. : 40.000MHz 16.000MHz 30.47618MHz - - * This board (K11J0717A) uses following chips: - - TC0470LIN - - TC0480SCP - - TC0570SPC - - TC0260DAR - - TC0510NIO - - Gunbuster uses a slightly enhanced sprite system from the one - in Taito Z games. - - The key feature remains the use of a sprite map rom which allows - the sprite hardware to create many large zoomed sprites on screen - while minimizing the main cpu load. - - This feature makes the SZ system complementary to the F3 system - which, owing to its F2 sprite hardware, is not very well suited to - 3d games. (Taito abandoned the SZ system once better 3d hardware - platforms were available in the mid 1990s.) - - Gunbuster also uses the TC0480SCP tilemap chip (like the last Taito - Z game, Double Axle). - - Todo: - - FLIPX support in taitoic.c is not quite correct - the Taito logo is wrong, - and the floor in the Doom levels has horizontal scrolling where it shouldn't. - - No networked machine support - - Coin lockout not working (see gunbustr_input_w): perhaps this - was a prototype version without proper coin handling? - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "machine/eeprom.h" -#include "sound/es5506.h" -#include "includes/taito_f3.h" -#include "sndhrdw/taito_en.h" - - -VIDEO_START( gunbustr ); -VIDEO_UPDATE( gunbustr ); - -static UINT16 coin_word; -static UINT32 *gunbustr_ram; - -/*********************************************************************/ - -static void gunbustr_interrupt5(int x) -{ - cpunum_set_input_line(0,5,HOLD_LINE); -} - -static INTERRUPT_GEN( gunbustr_interrupt ) -{ - timer_set(TIME_IN_CYCLES(200000-500,0),0, gunbustr_interrupt5); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static WRITE32_HANDLER( gunbustr_palette_w ) -{ - int a; - COMBINE_DATA(&paletteram32[offset]); - - a = paletteram32[offset] >> 16; - palette_set_color(Machine,offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); - - a = paletteram32[offset] &0xffff; - palette_set_color(Machine,offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); -} - -static READ32_HANDLER( gunbustr_input_r ) -{ - switch (offset) - { - case 0x00: - { - return (input_port_0_word_r(0,0) << 16) | input_port_1_word_r(0,0) | - (EEPROM_read_bit() << 7); - } - - case 0x01: - { - return input_port_2_word_r(0,0) | (coin_word << 16); - } - } -logerror("CPU #0 PC %06x: read input %06x\n",activecpu_get_pc(),offset); - - return 0x0; -} - -static WRITE32_HANDLER( gunbustr_input_w ) -{ - -#if 0 -{ -char t[64]; -static UINT32 mem[2]; -COMBINE_DATA(&mem[offset]); - -sprintf(t,"%08x %08x",mem[0],mem[1]); -popmessage(t); -} -#endif - - switch (offset) - { - case 0x00: - { - if (ACCESSING_MSB32) /* $400000 is watchdog */ - { - watchdog_reset_w(0,data >> 24); - } - - if (ACCESSING_LSB32) - { - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x40); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - return; - } - return; - } - - case 0x01: - { - if (ACCESSING_MSB32) - { - /* game does not write a separate counter for coin 2! - It should disable both coins when 9 credits reached - see code $1d8a-f6... but for some reason it's not */ - coin_lockout_w(0, data & 0x01000000); - coin_lockout_w(1, data & 0x02000000); - coin_counter_w(0, data & 0x04000000); - coin_counter_w(1, data & 0x04000000); - coin_word = (data >> 16) &0xffff; - } -//logerror("CPU #0 PC %06x: write input %06x\n",activecpu_get_pc(),offset); - } - } -} - -static WRITE32_HANDLER( motor_control_w ) -{ -/* - Standard value poked into MSW is 0x3c00 - (0x2000 and zero are written at startup) - - Three bits are written in test mode to test - lamps and motors: - - ......x. ........ Hit motor - .......x ........ Solenoid - ........ .....x.. Hit lamp -*/ -} - - -static READ32_HANDLER( gunbustr_gun_r ) -{ - return ( input_port_3_word_r(0,0) << 24) | (input_port_4_word_r(0,0) << 16) | - ( input_port_5_word_r(0,0) << 8) | input_port_6_word_r(0,0); -} - -static WRITE32_HANDLER( gunbustr_gun_w ) -{ - /* 10000 cycle delay is arbitrary */ - timer_set(TIME_IN_CYCLES(10000,0),0, gunbustr_interrupt5); -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( gunbustr_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x200000, 0x21ffff) AM_READ(MRA32_RAM) /* main CPUA ram */ - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA32_RAM) /* Sprite ram */ - AM_RANGE(0x390000, 0x3907ff) AM_READ(MRA32_RAM) /* Sound shared ram */ - AM_RANGE(0x400000, 0x400007) AM_READ(gunbustr_input_r) - AM_RANGE(0x500000, 0x500003) AM_READ(gunbustr_gun_r) /* gun coord read */ - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_long_r) - AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_long_r) - AM_RANGE(0x900000, 0x901fff) AM_READ(MRA32_RAM) /* Palette ram */ - AM_RANGE(0xc00000, 0xc03fff) AM_READ(MRA32_RAM) /* network ram ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gunbustr_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x200000, 0x21ffff) AM_WRITE(MWA32_RAM) AM_BASE(&gunbustr_ram) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x380000, 0x380003) AM_WRITE(motor_control_w) /* motor, lamps etc. */ - AM_RANGE(0x390000, 0x3907ff) AM_WRITE(MWA32_RAM) AM_BASE(&f3_shared_ram) - AM_RANGE(0x400000, 0x400007) AM_WRITE(gunbustr_input_w) /* eerom etc. */ - AM_RANGE(0x500000, 0x500003) AM_WRITE(gunbustr_gun_w) /* gun int request */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w) - AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_long_w) - AM_RANGE(0x900000, 0x901fff) AM_WRITE(gunbustr_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(MWA32_RAM) /* network ram ?? */ -ADDRESS_MAP_END - -/*********************************************************** - INPUT PORTS (dips in eprom) -***********************************************************/ - -INPUT_PORTS_START( gunbustr ) - PORT_START /* IN0 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) /* Freeze input */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* reserved for EEROM */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* Light gun inputs */ - - PORT_START /* IN 3, P1X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_PLAYER(1) - - PORT_START /* IN 4, P1Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* IN 5, P2X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_PLAYER(2) - - PORT_START /* IN 6, P2Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2) -INPUT_PORTS_END - - -/*********************************************************** - GFX DECODING -**********************************************************/ - -static const gfx_layout tile16x16_layout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode gunbustr_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x16_layout, 0, 512 }, - { REGION_GFX1, 0x0, &charlayout, 0, 512 }, - { -1 } /* end of array */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_RESET( gunbustr ) -{ - taito_f3_soundsystem_reset(); - - f3_68681_reset(); -} - - -static UINT8 default_eeprom[128]={ - 0x00,0x01,0x00,0x85,0x00,0xfd,0x00,0xff,0x00,0x67,0x00,0x02,0x00,0x00,0x00,0x7b, - 0x00,0xff,0x00,0xff,0x00,0x78,0x00,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0x01,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x10,0x00,0x00, - 0x21,0x13,0x14,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff -}; - -static struct EEPROM_interface gunbustr_eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* unlock command */ - "0100110000", /* lock command */ -}; - -static NVRAM_HANDLER( gunbustr ) -{ - if (read_or_write) - EEPROM_save(file); - else { - EEPROM_init(&gunbustr_eeprom_interface); - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,128); /* Default the gun setup values */ - } -} - -static MACHINE_DRIVER_START( gunbustr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(gunbustr_readmem,gunbustr_writemem) - MDRV_CPU_VBLANK_INT(gunbustr_interrupt,1) /* VBL */ - - TAITO_F3_SOUND_SYSTEM_CPU(16000000) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(gunbustr) - MDRV_NVRAM_HANDLER(gunbustr) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gunbustr_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(gunbustr) - MDRV_VIDEO_UPDATE(gunbustr) - - /* sound hardware */ - TAITO_F3_SOUND_SYSTEM_ES5505(30476100/2) -MACHINE_DRIVER_END - -/***************************************************************************/ - -ROM_START( gunbustr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024K for 68020 code (CPU A) */ - ROM_LOAD32_BYTE( "d27-23.bin", 0x00000, 0x40000, CRC(cd1037cc) SHA1(8005a6a84081ce609e7a605ec8e00e740bfc6846) ) - ROM_LOAD32_BYTE( "d27-22.bin", 0x00001, 0x40000, CRC(475949fc) SHA1(3d5aa3411d2618004902f9d05dff61d9af01ff35) ) - ROM_LOAD32_BYTE( "d27-21.bin", 0x00002, 0x40000, CRC(60950a8a) SHA1(a0336bf6970baa6eaa998a112db840a7fd0452d7) ) - ROM_LOAD32_BYTE( "d27-20.bin", 0x00003, 0x40000, CRC(13735c60) SHA1(65b762b28d51b295f6fe190420af566b1b3d4a82) ) - - ROM_REGION( 0x140000, REGION_CPU2, 0 ) /* Sound cpu */ - ROM_LOAD16_BYTE( "d27-25.bin", 0x100000, 0x20000, CRC(c88203cf) SHA1(a918d395b471acdce56dacabd7a1e1e023948365) ) - ROM_LOAD16_BYTE( "d27-24.bin", 0x100001, 0x20000, CRC(084bd8bd) SHA1(93229bc7de4550ead1bb12f666ddbacbe357488d) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d27-01.bin", 0x00000, 0x80000, CRC(f41759ce) SHA1(30789f43dd09b56399e1dfdb8c6a1e01a21562bd) ) /* SCR 16x16 tiles */ - ROM_LOAD16_BYTE( "d27-02.bin", 0x00001, 0x80000, CRC(92ab6430) SHA1(28ed80391c732b09d10c74ed6b78ac76cb62e083) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "d27-04.bin", 0x000003, 0x100000, CRC(ff8b9234) SHA1(6095b7daf9b7e9a22b0d44d9d6a642ddecb2bd29) ) /* OBJ 16x16 tiles: each rom has 1 bitplane */ - ROM_LOAD32_BYTE( "d27-05.bin", 0x000002, 0x100000, CRC(96d7c1a5) SHA1(93b6a7aea397280a5a778e736d433a85cb7da52c) ) - ROM_LOAD32_BYTE( "d27-06.bin", 0x000001, 0x100000, CRC(bbb934db) SHA1(9e9b5cf05b9275f1182f5b499b8ee897c4f25b96) ) - ROM_LOAD32_BYTE( "d27-07.bin", 0x000000, 0x100000, CRC(8ab4854e) SHA1(bd2750cdaa2918e56f8aef3732875952a1eeafea) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "d27-03.bin", 0x00000, 0x80000, CRC(23bf2000) SHA1(49b29e771a47fcd7e6cd4e2704b217f9727f8299) ) /* STY, used to create big sprites on the fly */ - - ROM_REGION16_BE( 0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "d27-08.bin", 0x000000, 0x100000, CRC(7c147e30) SHA1(b605045154967050ec06391798da4afe3686a6e1) ) // C8, C9 - ROM_RELOAD(0x400000,0x100000) - ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB - ROM_LOAD16_BYTE( "d27-10.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -static READ32_HANDLER( main_cycle_r ) -{ - if (activecpu_get_pc()==0x55a && (gunbustr_ram[0x3acc/4]&0xff000000)==0) - cpu_spinuntil_int(); - - return gunbustr_ram[0x3acc/4]; -} - -static DRIVER_INIT( gunbustr ) -{ - /* Speedup handler */ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x203acc, 0x203acf, 0, 0, main_cycle_r); -} - -GAME( 1992, gunbustr, 0, gunbustr, gunbustr, gunbustr, ORIENTATION_FLIP_X, "Taito Corporation", "Gunbuster (Japan)", 0 ) diff --git a/src/drivers/gunsmoke.c b/src/drivers/gunsmoke.c deleted file mode 100644 index 2df9a0223..000000000 --- a/src/drivers/gunsmoke.c +++ /dev/null @@ -1,530 +0,0 @@ -/*************************************************************************** - - Gun.Smoke - Capcom - - driver by Paul Leaman - - Games supported: - * Gun.Smoke (World) - * Gun.Smoke (Japan) - * Gun.Smoke (US set 1) - * Gun.Smoke (US set 2) - -**************************************************************************** - - GUNSMOKE - ======== - - Driver provided by Paul Leaman - - -Stephh's notes (based on the games Z80 code and some tests) : - -0) all games - - - There is some code that allows you to select your starting level - (at 0x08dc in 'gunsmoka' and at 0x08d2 in the other sets). - To do so, once the game has booted (after the "notice" screen), - turn the "service" mode Dip Switch ON, and change Dip Switches - DSW 1-0 to 1-3 (which are used by coinage). - - About the ingame bug at the end of level 2 : enemy's energy - (stored at 0xf790) is in fact not infinite, but it turns back to - 0xff, so when it reaches 0 again, the boss is dead. - - -1) 'gunsmoke' - - - World version. - You can enter 3 chars for your initials. - - -2) 'gunsmokj' - - - Japan version (but English text though). - You can enter 8 chars for your initials. - - -3) 'gunsmoku' - - - US version licenced to Romstar. - You can enter 3 chars for your initials. - - -4) 'gunsmoka' - - - US version licenced to Romstar. - You can enter 3 chars for your initials. - - This is probably a later version of the game because some code - has been added for the "Lives" Dip Switch that replaces the - "Demonstation" one (so demonstration is always OFF). - - Other changes : - * Year is 1986 instead of 1985. - * High score is 110000 instead of 100000. - * Levels 3 and 6 are swapped. - - -***************************************************************************/ - -#include "driver.h" -#include "sound/2203intf.h" - -extern UINT8 *gunsmoke_scrollx; -extern UINT8 *gunsmoke_scrolly; - -extern WRITE8_HANDLER( gunsmoke_c804_w ); -extern WRITE8_HANDLER( gunsmoke_d806_w ); -extern WRITE8_HANDLER( gunsmoke_videoram_w ); -extern WRITE8_HANDLER( gunsmoke_colorram_w ); - -extern PALETTE_INIT( gunsmoke ); -extern VIDEO_START( gunsmoke ); -extern VIDEO_UPDATE( gunsmoke ); - -/* Read/Write Handlers */ - -static READ8_HANDLER( gunsmoke_protection_r ) -{ - /* - The routine at 0x0e69 tries to read data starting at 0xc4c9. - If this value is zero, it interprets the next two bytes as a - jump address. - - This was resulting in a reboot which happens at the end of level 3 - if you go too far to the right of the screen when fighting the level boss. - - A non-zero for the first byte seems to be harmless - (although it may not be the correct behaviour). - - This could be some devious protection or it could be a bug in the - arcade game. It's hard to tell without pulling the code apart. - */ - - static int gunsmoke_fixed_data[] = { 0xff, 0x00, 0x00 }; - - return gunsmoke_fixed_data[offset]; -} - -/* Memory Maps */ - -static ADDRESS_MAP_START( gunsmoke_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r) - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r) - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r) - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r) - AM_RANGE(0xc004, 0xc004) AM_READ(input_port_4_r) - AM_RANGE(0xc4c9, 0xc4cb) AM_READ(gunsmoke_protection_r) - AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) - AM_RANGE(0xc804, 0xc804) AM_WRITE(gunsmoke_c804_w) // ROM bank switch, screen flip - AM_RANGE(0xc806, 0xc806) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_WRITE(gunsmoke_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xd400, 0xd7ff) AM_RAM AM_WRITE(gunsmoke_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd800, 0xd801) AM_RAM AM_BASE(&gunsmoke_scrollx) - AM_RANGE(0xd802, 0xd802) AM_RAM AM_BASE(&gunsmoke_scrolly) - AM_RANGE(0xd806, 0xd806) AM_WRITE(gunsmoke_d806_w) // sprites and bg enable - AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2203_write_port_1_w) -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( gunsmoke ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) // VBLANK - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x01, "30K 80K 80K+" ) - PORT_DIPSETTING( 0x03, "30K 100K 100K+" ) - PORT_DIPSETTING( 0x00, "30K 100K 150K+" ) - PORT_DIPSETTING( 0x02, "30K 100K") - PORT_DIPNAME( 0x04, 0x04, "Demo" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x40, 0x40, "Freeze" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) // Also "debug mode" - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gunsmoka ) - PORT_INCLUDE(gunsmoke) - - // Same as 'gunsmoke', but "Lives" Dip Switch instead of "Demonstration" Dip Switch - PORT_MODIFY("DSW0") - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "5" ) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 2, /* 2 bits per pixel */ - { 4, 0 }, - { 8+3, 8+2, 8+1, 8+0, 3, 2, 1, 0 }, - { 7*16, 6*16, 5*16, 4*16, 3*16, 2*16, 1*16, 0*16 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 32,32, /* 32*32 tiles */ - 512, /* 512 tiles */ - 4, /* 4 bits per pixel */ - { 512*256*8+4, 512*256*8+0, 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 64*8+0, 64*8+1, 64*8+2, 64*8+3, 65*8+0, 65*8+1, 65*8+2, 65*8+3, - 128*8+0, 128*8+1, 128*8+2, 128*8+3, 129*8+0, 129*8+1, 129*8+2, 129*8+3, - 192*8+0, 192*8+1, 192*8+2, 192*8+3, 193*8+0, 193*8+1, 193*8+2, 193*8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16, - 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 }, - 256*8 /* every tile takes 256 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 2048, /* 2048 sprites */ - 4, /* 4 bits per pixel */ - { 2048*64*8+4, 2048*64*8+0, 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -/* Graphics Decode Info */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 32 }, - { REGION_GFX2, 0, &tilelayout, 32*4, 16 }, - { REGION_GFX3, 0, &spritelayout, 32*4+16*16, 16 }, - { -1 } -}; - -/* Machine Driver */ - -static MACHINE_DRIVER_START( gunsmoke ) - // basic machine hardware - MDRV_CPU_ADD(Z80, 4000000) // 4 MHz - MDRV_CPU_PROGRAM_MAP(gunsmoke_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - - MDRV_CPU_ADD(Z80, 3000000) // 3 MHz - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(32*4+16*16+16*16) - - MDRV_PALETTE_INIT(gunsmoke) - MDRV_VIDEO_START(gunsmoke) - MDRV_VIDEO_UPDATE(gunsmoke) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.22) - MDRV_SOUND_ROUTE(1, "mono", 0.22) - MDRV_SOUND_ROUTE(2, "mono", 0.22) - MDRV_SOUND_ROUTE(3, "mono", 0.14) - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.22) - MDRV_SOUND_ROUTE(1, "mono", 0.22) - MDRV_SOUND_ROUTE(2, "mono", 0.22) - MDRV_SOUND_ROUTE(3, "mono", 0.14) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( gunsmoke ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 2*64k for code */ - ROM_LOAD( "09n_gs03.bin", 0x00000, 0x8000, CRC(40a06cef) SHA1(3e2a52d476298b7252f0adaefdb42090351e921c) ) /* Code 0000-7fff */ - ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */ - ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */ - ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) ) - ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) ) - ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) ) - ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */ - ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) ) - ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) ) - ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */ - ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */ - ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */ - ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */ - ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */ - ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */ - ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */ - ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */ - - ROM_REGION( 0x8000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */ - ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */ - ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */ - ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */ - ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */ - ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */ - ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */ - ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */ - ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */ -ROM_END - -ROM_START( gunsmokj ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 2*64k for code */ - ROM_LOAD( "gs03_9n.rom", 0x00000, 0x8000, CRC(b56b5df6) SHA1(0295a3ef491b6b8ee9c198fd08dddc29d88bbef6) ) /* Code 0000-7fff */ - ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */ - ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */ - ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) ) - ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) ) - ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) ) - ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */ - ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) ) - ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) ) - ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */ - ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */ - ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */ - ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */ - ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */ - ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */ - ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */ - ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */ - - ROM_REGION( 0x8000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */ - ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */ - ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */ - ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */ - ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */ - ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */ - ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */ - ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */ - ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */ -ROM_END - -ROM_START( gunsmoku ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 2*64k for code */ - ROM_LOAD( "9n_gs03.bin", 0x00000, 0x8000, CRC(592f211b) SHA1(8de44b3cafa3d2ce9aba515cf3ec4bac0bcdeb5b) ) /* Code 0000-7fff */ - ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */ - ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */ - ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) ) - ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) ) - ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) ) - ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */ - ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) ) - ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) ) - ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */ - ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */ - ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */ - ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */ - ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */ - ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */ - ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */ - ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */ - - ROM_REGION( 0x8000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */ - ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */ - ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */ - ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */ - ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */ - ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */ - ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */ - ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */ - ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */ -ROM_END - -ROM_START( gunsmoka ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 2*64k for code */ - ROM_LOAD( "gs03.9n", 0x00000, 0x8000, CRC(51dc3f76) SHA1(2a188fee73c3662b665b56a825eb908b7b42dcd0) ) /* Code 0000-7fff */ - ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(5ecf31b8) SHA1(34ec9727330821a45b497c78c970a1a4f14ff4ee) ) /* Paged code */ - ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(1c9aca13) SHA1(eb92c373d2241aea4c59248e1b82717733105ac0) ) /* Paged code */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */ - ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) ) - ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) ) - ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) ) - ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */ - ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) ) - ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) ) - ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */ - ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */ - ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */ - ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */ - ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */ - ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */ - ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */ - ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */ - - ROM_REGION( 0x8000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) ) - - ROM_REGION( 0x0a00, REGION_PROMS, 0 ) - ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */ - ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */ - ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */ - ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */ - ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */ - ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */ - ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */ - ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */ - ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */ - ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */ -ROM_END - -/* Game Drivers */ - -GAME( 1985, gunsmoke, 0, gunsmoke, gunsmoke, 0, ROT270, "Capcom", "Gun.Smoke (World)", 0 ) -GAME( 1985, gunsmokj, gunsmoke, gunsmoke, gunsmoke, 0, ROT270, "Capcom", "Gun.Smoke (Japan)", 0 ) -GAME( 1985, gunsmoku, gunsmoke, gunsmoke, gunsmoke, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US set 1)", 0 ) -GAME( 1986, gunsmoka, gunsmoke, gunsmoke, gunsmoka, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US set 2)", 0 ) diff --git a/src/drivers/harddriv.c b/src/drivers/harddriv.c deleted file mode 100644 index e1897f50b..000000000 --- a/src/drivers/harddriv.c +++ /dev/null @@ -1,3814 +0,0 @@ -/*************************************************************************** - - Driver for Atari polygon racer games - - This collection of games uses many CPUs and many boards in many - different combinations. There are 3 different main boards: - - - the "driver" board (A045988) is the original Hard Drivin' PCB - - Hard Drivin' - - Race Drivin' Upgrade - - - the "multisync" board (A046901) - - STUN Runner - - Steel Talons - - Hard Drivin' Compact - - Race Drivin' Compact - - Street Drivin' - - - the "multisync II" board (A049852) - - Hard Drivin's Airborne - - To first order, all of the above boards had the same basic features: - - a 68010 @ 8MHz to drive the whole game - a TMS34010 @ 48MHz (GSP) to render the polygons and graphics - a TMS34012 @ 50MHz (PSP, labelled SCX6218UTP) to expand pixels - a TMS34010 @ 50MHz (MSP, optional) to handle in-game calculations - - The original "driver" board had 1MB of VRAM. The "multisync" board - reduced that to 512k. The "multisync II" board went back to a full - MB again. - - Stacked on top of the main board were two or more additional boards - that were accessible through an expansion bus. Each game had at least - an ADSP board and a sound board. Later games had additional boards for - extra horsepower or for communications between multiple players. - - ----------------------------------------------------------------------- - - The ADSP board is usually the board stacked closest to the main board. - It also comes in four varieties, though these do not match - one-for-one with the main boards listed above. They are: - - - the "ADSP" board (A044420) - - early Hard Drivin' revisions - - - the "ADSP II" board (A047046) - - later Hard Drivin' - - STUN Runner - - Hard Drivin' Compact - - Race Drivin' Upgrade - - Race Drivin' Compact - - - the "DS III" board (A049096) - - Steel Talons - - Street Drivin' - - - the "DS IV" board (A051973) - - Hard Drivin's Airborne - - These boards are the workhorses of the game. They contain a single - 8MHz ADSP-2100 (ADSP and ADSP II) or 12MHz ADSP-2101 (DS III and DS IV) - chip that is responsible for all the polygon transformations, lighting, - and slope computations. Along with the DSP, there are several high-speed - serial-access ROMs and RAMs. - - The "ADSP II" board is nearly identical to the original "ADSP" board - except that is has space for extra serial ROM data. The "DS III" is - an advanced design that contains space for a bunch of complex sound - circuitry that was not used on Steel Talons, but was used for the - prototype Street Drivin'. The "DS IV" looks to have the same board - layout as the "DS III", but the sound circuitry is actually populated. - - ----------------------------------------------------------------------- - - Three sound boards were used: - - - the "driver sound" board (A046491) - - Hard Drivin' - - Hard Drivin' Compact - - Race Drivin' Upgrade - - Race Drivin' Compact - - - the "JSA II" board - - STUN Runner - - - the "JSA IIIS" board - - Steel Talons - - The "driver sound" board runs with a 68000 master and a TMS32010 slave - driving a DAC. The "JSA" boards are both standard Atari sound boards - with a 6502 driving a YM2151 and an OKI6295 ADPCM chip. Hard Drivin's - Airborne uses the "DS IV" board for its sound. - - ----------------------------------------------------------------------- - - In addition, there were a number of supplemental boards that were - included with certain games: - - - the "DSK" board (A047724) - - Race Drivin' Upgrade - - Race Drivin' Compact - - Street Drivin' - - - the "DSPCOM" board (A049349) - - Steel Talons - - - the "DSK II" board (A051028) - - Hard Drivin' Airborne - - ----------------------------------------------------------------------- - - There are a total of 8 known games (plus variants) on this hardware: - - Hard Drivin' Cockpit - - "driver" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012) - - "ADSP" or "ADSP II" board (8MHz ADSP-2100) - - "driver sound" board (8MHz 68000, 20MHz TMS32010) - - Hard Drivin' Compact - - "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012) - - "ADSP II" board (8MHz ADSP-2100) - - "driver sound" board (8MHz 68000, 20MHz TMS32010) - - S.T.U.N. Runner - - "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012) - - "ADSP II" board (8MHz ADSP-2100) - - "JSA II" sound board (1.7MHz 6502, YM2151, OKI6295) - - Race Drivin' Cockpit - - "driver" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012) - - "ADSP" or "ADSP II" board (8MHz ADSP-2100) - - "DSK" board (40MHz DSP32C, 20MHz TMS32015) - - "driver sound" board (8MHz 68000, 20MHz TMS32010) - - Race Drivin' Compact - - "multisync" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012) - - "ADSP II" board (8MHz ADSP-2100) - - "DSK" board (40MHz DSP32C, 20MHz TMS32015) - - "driver sound" board (8MHz 68000, 20MHz TMS32010) - - Steel Talons - - "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012) - - "DS III" board (12MHz ADSP-2101) - - "JSA IIIS" sound board (1.7MHz 6502, YM2151, OKI6295) - - "DSPCOM" I/O board (10MHz ADSP-2105) - - Street Drivin' - - "multisync" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012) - - "DS III" board (12MHz ADSP-2101, plus 10MHz ADSP-2105 for sound) - - "DSK" board (40MHz DSP32C, 20MHz TMS32015) - - Hard Drivin's Airborne (prototype) - - "multisync ii" main board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012) - - "DS IV" board (12MHz ADSP-2101, plus 2x10MHz ADSP-2105s for sound) - - "DSK II" board (40MHz DSP32C, 20MHz TMS32015) - - BMX Heat (prototype) - - unknown boards ??? - - Police Trainer (prototype) - - unknown boards ??? - - Metal Maniax (prototype) - - reworked hardware that is similar but not of the same layout - -****************************************************************************/ - - -#include "driver.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/tms32010/tms32010.h" -#include "cpu/adsp2100/adsp2100.h" -#include "cpu/dsp32/dsp32.h" -#include "machine/atarigen.h" -#include "machine/asic65.h" -#include "sndhrdw/atarijsa.h" -#include "harddriv.h" -#include "sound/dac.h" - -/* from slapstic.c */ -void slapstic_init(int chip); - - - -/************************************* - * - * CPU configs - * - *************************************/ - -static struct tms34010_config gsp_config = -{ - 1, /* halt on reset */ - hdgsp_irq_gen, /* generate interrupt */ - hdgsp_write_to_shiftreg, /* write to shiftreg function */ - hdgsp_read_from_shiftreg, /* read from shiftreg function */ - hdgsp_display_update /* display offset update function */ -}; - - -static struct tms34010_config msp_config = -{ - 1, /* halt on reset */ - hdmsp_irq_gen, /* generate interrupt */ - NULL, /* write to shiftreg function */ - NULL, /* read from shiftreg function */ - NULL /* display offset update function */ -}; - - -static struct dsp32_config dsp32c_config = -{ - hddsk_update_pif /* a change has occurred on an output pin */ -}; - - - -/************************************* - * - * Driver board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( driver_68k_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x600000, 0x603fff) AM_READ(hd68k_port0_r) - AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w) - AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x60c000, 0x60ffff) AM_WRITE(hd68k_irq_ack_w) - AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) - AM_RANGE(0xa80000, 0xafffff) AM_READWRITE(input_port_1_word_r, hd68k_wr1_write) - AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) - AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) - AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) - AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w) - AM_RANGE(0xff0000, 0xff001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w) - AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_BASE(&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size) - AM_RANGE(0xff8000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( driver_gsp_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */ - AM_RANGE(0x02000000, 0x0207ffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_1bpp_w) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w) - AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE(&hdgsp_control_lo) - AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE(&hdgsp_control_hi) - AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE(&hdgsp_paletteram_lo) - AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE(&hdgsp_paletteram_hi) - AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_BASE((UINT16 **)&hdgsp_vram) AM_SIZE(&hdgsp_vram_size) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( driver_msp_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE(1) AM_BASE(&hdmsp_ram) - AM_RANGE(0x00700000, 0x007fffff) AM_RAM AM_SHARE(1) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) - AM_RANGE(0xfff00000, 0xffffffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - - - -/************************************* - * - * Multisync board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( multisync_68k_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x600000, 0x603fff) AM_READWRITE(atarigen_sound_upper_r, atarigen_sound_upper_w) - AM_RANGE(0x604000, 0x607fff) AM_READWRITE(hd68k_sound_reset_r, hd68k_nwr_w) - AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w) - AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) - AM_RANGE(0xa80000, 0xafffff) AM_READWRITE(input_port_1_word_r, hd68k_wr1_write) - AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) - AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) - AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) - AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w) - AM_RANGE(0xff0000, 0xff001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w) - AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_BASE(&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size) - AM_RANGE(0xff8000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( multisync_gsp_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */ - AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w) - AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE(&hdgsp_control_lo) - AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE(&hdgsp_control_hi) - AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE(&hdgsp_paletteram_lo) - AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE(&hdgsp_paletteram_hi) - AM_RANGE(0xff800000, 0xffbfffff) AM_MIRROR(0x0400000) AM_RAM AM_BASE((UINT16 **)&hdgsp_vram) AM_SIZE(&hdgsp_vram_size) -ADDRESS_MAP_END - - - -/************************************* - * - * Multisync II board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( multisync2_68k_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w) - AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w) - AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write) - AM_RANGE(0xa80000, 0xafffff) AM_READWRITE(input_port_1_word_r, hd68k_wr1_write) - AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write) - AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w) - AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w) - AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w) - AM_RANGE(0xfc0000, 0xfc001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w) - AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_BASE(&atarigen_eeprom) AM_SIZE(&atarigen_eeprom_size) - AM_RANGE(0xff0000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - -/* GSP is identical to original multisync */ -static ADDRESS_MAP_START( multisync2_gsp_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00000000, 0x0000200f) AM_NOP /* hit during self-test */ - AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w) - AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE(&hdgsp_control_lo) - AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE(&hdgsp_control_hi) - AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE(&hdgsp_paletteram_lo) - AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE(&hdgsp_paletteram_hi) - AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_BASE((UINT16 **)&hdgsp_vram) AM_SIZE(&hdgsp_vram_size) -ADDRESS_MAP_END - - - -/************************************* - * - * ADSP/ADSP II board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( adsp_program_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_pgm_memory) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( adsp_data_map, ADDRESS_SPACE_DATA, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_data_memory) - AM_RANGE(0x2000, 0x2fff) AM_READWRITE(hdadsp_special_r, hdadsp_special_w) -ADDRESS_MAP_END - - - -/************************************* - * - * DS III/IV board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( ds3_program_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE(&hdadsp_pgm_memory) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( ds3_data_map, ADDRESS_SPACE_DATA, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE(&hdadsp_data_memory) - AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */ - AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */ - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_special_r, hdds3_special_w) -ADDRESS_MAP_END - -#if 0 -static ADDRESS_MAP_START( ds3snd_program_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( ds3snd_data_map, ADDRESS_SPACE_DATA, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x1fff) AM_RAM - AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */ - AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */ -// -// /SIRQ2 = IRQ2 -// /SRES -> RESET -// -// 2xx0 W = SWR0 (POUT) -// 2xx1 W = SWR1 (SINT) -// 2xx2 W = SWR2 (TFLAG) -// 2xx3 W = SWR3 (INTSRC) -// 2xx4 W = DACL -// 2xx5 W = DACR -// 2xx6 W = SRMADL -// 2xx7 W = SRMADH -// -// 2xx0 R = SRD0 (PIN) -// 2xx1 R = SRD1 (RSAT) -// 2xx4 R = SROM -// 2xx7 R = SFWCLR -// -// -// /XRES -> RESET -// communicate over serial I/O - -ADDRESS_MAP_END -#endif - - -/************************************* - * - * DSK board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( dsk_dsp32_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x001fff) AM_RAM - AM_RANGE(0x600000, 0x63ffff) AM_RAM - AM_RANGE(0xfff800, 0xffffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * DSK II board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( dsk2_dsp32_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x001fff) AM_RAM - AM_RANGE(0x200000, 0x23ffff) AM_RAM - AM_RANGE(0x400000, 0x5fffff) AM_ROM AM_REGION(REGION_USER4, 0) - AM_RANGE(0xfff800, 0xffffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Driver sound board memory maps - * - *************************************/ - -static ADDRESS_MAP_START( driversnd_68k_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x01ffff) AM_ROM - AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w) - AM_RANGE(0xff1000, 0xff1fff) AM_READWRITE(hdsnd68k_switches_r, hdsnd68k_latches_w) - AM_RANGE(0xff2000, 0xff2fff) AM_READWRITE(hdsnd68k_320port_r, hdsnd68k_speech_w) - AM_RANGE(0xff3000, 0xff3fff) AM_READWRITE(hdsnd68k_status_r, hdsnd68k_irqclr_w) - AM_RANGE(0xff4000, 0xff5fff) AM_READWRITE(hdsnd68k_320ram_r, hdsnd68k_320ram_w) - AM_RANGE(0xff6000, 0xff7fff) AM_READWRITE(hdsnd68k_320ports_r, hdsnd68k_320ports_w) - AM_RANGE(0xff8000, 0xffbfff) AM_READWRITE(hdsnd68k_320com_r, hdsnd68k_320com_w) - AM_RANGE(0xffc000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( driversnd_dsp_program_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000, 0xfff) AM_RAM AM_BASE(&hdsnddsp_ram) -ADDRESS_MAP_END - - - /* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */ - - -static ADDRESS_MAP_START( driversnd_dsp_io_map, ADDRESS_SPACE_IO, 16 ) - AM_RANGE(0, 0) AM_READWRITE(hdsnddsp_rom_r, hdsnddsp_dac_w) - AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r) - AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r) - AM_RANGE(1, 2) AM_WRITENOP - AM_RANGE(3, 3) AM_WRITE(hdsnddsp_comport_w) - AM_RANGE(4, 4) AM_WRITE(hdsnddsp_mute_w) - AM_RANGE(5, 5) AM_WRITE(hdsnddsp_gen68kirq_w) - AM_RANGE(6, 7) AM_WRITE(hdsnddsp_soundaddr_w) - AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(hdsnddsp_get_bio) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( harddriv ) - PORT_START_TAG("600000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) /* diagnostic switch */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* option switches */ - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ - PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 - seat */ - PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 - shifter lever Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_PLAYER(2) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 - shifter lever X*/ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_PLAYER(2) - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ - PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 - shift force */ - PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) - - PORT_START_TAG("12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - PORT_START_TAG("12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START_TAG("12BADC2") /* b80000 - 12 bit ADC 2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC3") /* b80000 - 12 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( racedriv ) - PORT_START_TAG("600000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) /* diagnostic switch */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* option switches */ - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ - PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 - seat */ - PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 - shifter lever Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_PLAYER(2) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 - shifter lever X*/ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_PLAYER(2) - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 - wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 - line volts */ - PORT_BIT( 0xff, 0x80, IPT_SPECIAL ) - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - PORT_START_TAG("12BADC1") /* b80000 - 12 bit ADC 1 - force brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START_TAG("12BADC2") /* b80000 - 12 bit ADC 2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC3") /* b80000 - 12 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( racedrvc ) - PORT_START_TAG("60c000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) /* diagnostic switch */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* option switches */ - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ - PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("1st Gear") - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("2nd Gear") - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("3rd Gear") - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("4th Gear") - PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 - force brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("400000") /* 400000 - steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - /* dummy ADC ports to end up with the same number as the full version */ - PORT_START_TAG("12BADCX") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCY") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCZ") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( stunrun ) - PORT_START_TAG("60c000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Option switches */ - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC0") /* b80000 - 12 bit ADC 0 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC1") /* b80000 - 12 bit ADC 1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC2") /* b80000 - 12 bit ADC 2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC3") /* b80000 - 12 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - JSA_II_PORT /* audio port */ -INPUT_PORTS_END - - -INPUT_PORTS_START( steeltal ) - PORT_START_TAG("60c000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger") - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb") - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Zoom") - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight") - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* volume control */ - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("12BADC0") /* b80000 - 12 bit ADC 0 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* left/right */ - - PORT_START_TAG("12BADC1") /* b80000 - 12 bit ADC 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* up/down */ - - PORT_START_TAG("12BADC2") /* b80000 - 12 bit ADC 2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) /* collective */ - - PORT_START_TAG("12BADC3") /* b80000 - 12 bit ADC 3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2) /* rudder */ - - JSA_III_PORT /* audio port */ -INPUT_PORTS_END - - -INPUT_PORTS_START( strtdriv ) - PORT_START_TAG("60c000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ - PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* ??? */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_TOGGLE /* reverse */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* ??? */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* wings */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* wings */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 - volume */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE /* up/down */ - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 - brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("400000") /* 400000 - steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) - - /* dummy ADC ports to end up with the same number as the full version */ - PORT_START_TAG("12BADCX") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCY") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCZ") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( hdrivair ) - PORT_START_TAG("60c000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL ) /* HBLANK */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */ - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */ - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("a80000") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */ - PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* ??? */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_TOGGLE /* reverse */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* ??? */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* wings */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* wings */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(1) - - PORT_START_TAG("8BADC1") /* b00000 - 8 bit ADC 1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("8BADC3") /* b00000 - 8 bit ADC 3 - volume */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("8BADC4") /* b00000 - 8 bit ADC 4 - elevator */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE /* up/down */ - - PORT_START_TAG("8BADC5") /* b00000 - 8 bit ADC 5 - canopy */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("8BADC6") /* b00000 - 8 bit ADC 6 - brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START_TAG("8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */ - PORT_BIT( 0xff, 0X80, IPT_UNUSED ) - - PORT_START_TAG("400000") /* 400000 - steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE - - /* dummy ADC ports to end up with the same number as the full version */ - PORT_START_TAG("12BADCX") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCY") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("12BADCZ") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Main board pieces - * - *************************************/ - -/* - Video timing: - - VERTICAL HORIZONTAL - Harddriv: 001D-019D / 01A0 (384) 001A-0099 / 009F (508) - Harddrvc: 0011-0131 / 0133 (288) 003A-013A / 0142 (512) - Racedriv: 001D-019D / 01A0 (384) 001A-0099 / 009F (508) - Racedrvc: 0011-0131 / 0133 (288) 003A-013A / 0142 (512) - Stunrun: 0013-00F8 / 0105 (229) 0037-0137 / 013C (512) - Steeltal: 0011-0131 / 0133 (288) 003A-013A / 0142 (512) - Hdrivair: 0011-0131 / 0133 (288) 003A-013A / 0142 (512) -*/ - -/* Driver board without MSP (used by Race Drivin' cockpit) */ -static MACHINE_DRIVER_START( driver_nomsp ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68010, 32000000/4) - MDRV_CPU_PROGRAM_MAP(driver_68k_map,0) - MDRV_CPU_VBLANK_INT(atarigen_video_int_gen,1) - MDRV_CPU_PERIODIC_INT(hd68k_irq_gen,TIME_IN_HZ(244)) - - MDRV_CPU_ADD_TAG("gsp", TMS34010, 48000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_PROGRAM_MAP(driver_gsp_map,0) - MDRV_CPU_CONFIG(gsp_config) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (416 - 384)) / (60 * 416))) - MDRV_INTERLEAVE(500) - - MDRV_MACHINE_START(harddriv) - MDRV_MACHINE_RESET(harddriv) - MDRV_NVRAM_HANDLER(atarigen) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(640, 384) - MDRV_SCREEN_VISIBLE_AREA(97, 596, 0, 383) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(harddriv) - MDRV_VIDEO_EOF(harddriv) - MDRV_VIDEO_UPDATE(harddriv) -MACHINE_DRIVER_END - - -/* Driver board with MSP (used by Hard Drivin' cockpit) */ -static MACHINE_DRIVER_START( driver_msp ) - MDRV_IMPORT_FROM(driver_nomsp) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("msp", TMS34010, 50000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_PROGRAM_MAP(driver_msp_map,0) - MDRV_CPU_CONFIG(msp_config) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(89, 596, 0, 383) -MACHINE_DRIVER_END - - -/* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */ -static MACHINE_DRIVER_START( multisync_nomsp ) - MDRV_IMPORT_FROM(driver_nomsp) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(multisync_68k_map,0) - - MDRV_CPU_MODIFY("gsp") - MDRV_CPU_PROGRAM_MAP(multisync_gsp_map,0) - - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (307 - 288)) / (60 * 307))) - - /* video hardware */ - MDRV_SCREEN_SIZE(640, 288) - MDRV_SCREEN_VISIBLE_AREA(109, 620, 0, 287) -MACHINE_DRIVER_END - - -/* Multisync board with MSP (used by Hard Drivin' compact) */ -static MACHINE_DRIVER_START( multisync_msp ) - MDRV_IMPORT_FROM(multisync_nomsp) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("msp", TMS34010, 50000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_PROGRAM_MAP(driver_msp_map,0) - MDRV_CPU_CONFIG(msp_config) -MACHINE_DRIVER_END - - -/* Multisync II board (used by Hard Drivin's Airborne) */ -static MACHINE_DRIVER_START( multisync2 ) - MDRV_IMPORT_FROM(multisync_nomsp) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(multisync2_68k_map,0) - - MDRV_CPU_MODIFY("gsp") - MDRV_CPU_PROGRAM_MAP(multisync2_gsp_map,0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ADSP board pieces - * - *************************************/ - -/* ADSP/ADSP II boards (used by Hard/Race Drivin', STUN Runner) */ -static MACHINE_DRIVER_START( adsp ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("adsp", ADSP2100, 8000000) - MDRV_CPU_PROGRAM_MAP(adsp_program_map,0) - MDRV_CPU_DATA_MAP(adsp_data_map,0) -MACHINE_DRIVER_END - - -/* DS III board (used by Steel Talons) */ -static MACHINE_DRIVER_START( ds3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("adsp", ADSP2101, 12000000) - MDRV_CPU_PROGRAM_MAP(ds3_program_map,0) - MDRV_CPU_DATA_MAP(ds3_data_map,0) - - MDRV_INTERLEAVE(1000) -MACHINE_DRIVER_END - - -/* DS IV board (used by Hard Drivin's Airborne) */ -static MACHINE_DRIVER_START( ds4 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("adsp", ADSP2101, 12000000) - MDRV_CPU_PROGRAM_MAP(ds3_program_map,0) - MDRV_CPU_DATA_MAP(ds3_data_map,0) - -// MDRV_CPU_ADD_TAG("sound", ADSP2105, 10000000) -// /* audio CPU */ -// MDRV_CPU_PROGRAM_MAP(ds3snd_program_map,0) - -// MDRV_CPU_ADD_TAG("sounddsp", ADSP2105, 10000000) -// /* audio CPU */ -// MDRV_CPU_PROGRAM_MAP(ds3snd_program_map,0) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * DSK board pieces - * - *************************************/ - -/* DSK board (used by Race Drivin') */ -static MACHINE_DRIVER_START( dsk ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("dsp32", DSP32C, 40000000) - MDRV_CPU_CONFIG(dsp32c_config) - MDRV_CPU_PROGRAM_MAP(dsk_dsp32_map,0) -MACHINE_DRIVER_END - - -/* DSK II board (used by Hard Drivin's Airborne) */ -static MACHINE_DRIVER_START( dsk2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("dsp32", DSP32C, 40000000) - MDRV_CPU_CONFIG(dsp32c_config) - MDRV_CPU_PROGRAM_MAP(dsk2_dsp32_map,0) -MACHINE_DRIVER_END - - - -/************************************* - * - * Sound board pieces - * - *************************************/ - -static MACHINE_DRIVER_START( driversnd ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("sound", M68000, 16000000/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(driversnd_68k_map,0) - - MDRV_CPU_ADD_TAG("sounddsp", TMS32010, 20000000/TMS32010_CLOCK_DIVIDER) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(driversnd_dsp_program_map,0) - /* Data Map is internal to the CPU */ - MDRV_CPU_IO_MAP(driversnd_dsp_io_map,0) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( harddriv ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( driver_msp ) /* original driver board with MSP */ - MDRV_IMPORT_FROM( adsp ) /* ADSP board */ - MDRV_IMPORT_FROM( driversnd ) /* driver sound board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( harddrvc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync_msp ) /* multisync board with MSP */ - MDRV_IMPORT_FROM( adsp ) /* ADSP board */ - MDRV_IMPORT_FROM( driversnd ) /* driver sound board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( racedriv ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( driver_nomsp ) /* original driver board without MSP */ - MDRV_IMPORT_FROM( adsp ) /* ADSP board */ - MDRV_IMPORT_FROM( dsk ) /* DSK board */ - MDRV_IMPORT_FROM( driversnd ) /* driver sound board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( racedrvc ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync_nomsp ) /* multisync board without MSP */ - MDRV_IMPORT_FROM( adsp ) /* ADSP board */ - MDRV_IMPORT_FROM( dsk ) /* DSK board */ - MDRV_IMPORT_FROM( driversnd ) /* driver sound board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( stunrun ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync_nomsp ) /* multisync board without MSP */ - MDRV_IMPORT_FROM( adsp ) /* ADSP board */ - MDRV_IMPORT_FROM( jsa_ii_mono ) /* JSA II sound board */ - - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (261 - 240)) / (60 * 261))) - - /* video hardware */ - MDRV_SCREEN_SIZE(640, 240) - MDRV_SCREEN_VISIBLE_AREA(103, 614, 0, 239) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( strtdriv ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync_nomsp ) /* multisync board */ - MDRV_IMPORT_FROM( ds3 ) /* DS III board */ - MDRV_IMPORT_FROM( dsk ) /* DSK board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( steeltal ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync_msp ) /* multisync board with MSP */ - MDRV_IMPORT_FROM( ds3 ) /* DS III board */ - MDRV_IMPORT_FROM( jsa_iii_mono ) /* JSA III sound board */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hdrivair ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( multisync2 ) /* multisync II board */ - MDRV_IMPORT_FROM( ds4 ) /* DS IV board */ - MDRV_IMPORT_FROM( dsk2 ) /* DSK II board */ -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -/* - these sound ROMs were original being used in MAME: - ROM_LOAD16_BYTE( "hd_s.70n", 0x00000, 0x08000, CRC(0c77fab6) SHA1(4efcb64c261c7c4bfdd1f94d082404d6b4d25e54) ) - ROM_LOAD16_BYTE( "hd_s.45n", 0x00001, 0x08000, CRC(54d6dd5f) SHA1(b93e918a395f6cdea787650d4b7beffba1a77b8f) ) - they look legit, but I can't find any official record of them -*/ - -ROM_START( harddriv ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-7105.200r", 0x000000, 0x010000, CRC(af5d5c3e) SHA1(09ccf4aa933413b71b6a42796d42299e1334902f) ) - ROM_LOAD16_BYTE( "136052-7113.210r", 0x000001, 0x010000, CRC(3330a942) SHA1(b9210f6befd875be8bc1dbd31f44d0cb63166748) ) - ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) - ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) ) - ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) ) - ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) ) - ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) - ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrvg ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-7205.200r", 0x000000, 0x010000, CRC(b50b1968) SHA1(b6fd9f0600cba995bf31fd0f30f15f091bbbfb09) ) - ROM_LOAD16_BYTE( "136052-7213.210r", 0x000001, 0x010000, CRC(e6d57108) SHA1(a4eda6db4ec67b1cb8f9bfee17d8adc93675ef8a) ) - ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) ) - ROM_LOAD16_BYTE( "136052-4214.210s", 0x020001, 0x010000, CRC(b7988de4) SHA1(0bc94c3eb12f8d0506eca819d79dffb7758a8421) ) - ROM_LOAD16_BYTE( "136052-4210.200w", 0x0a0000, 0x010000, CRC(5b8b2947) SHA1(7390e978361dfb6bf5675014a906f3f9879a8a59) ) - ROM_LOAD16_BYTE( "136052-4218.210w", 0x0a0001, 0x010000, CRC(9be232c5) SHA1(4fd30f53814049f8462937bfe55410edae438411) ) - ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) ) - ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrvj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-7805.200r", 0x000000, 0x010000, CRC(f170c842) SHA1(842cef66646a664300a7e2b827c0bbd53e5f27ad) ) - ROM_LOAD16_BYTE( "136052-7813.210r", 0x000001, 0x010000, CRC(e5a3367d) SHA1(96b3a6fb5561fa59d7ac4b840fa1891d02f1bd8c) ) - ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) ) - ROM_LOAD16_BYTE( "136052-6814.210s", 0x020001, 0x010000, CRC(d0f1c6ed) SHA1(1960e70af17795a9fabd0171eaefebaaaff47305) ) - ROM_LOAD16_BYTE( "136052-6807.200s", 0x040000, 0x010000, CRC(b7d348a7) SHA1(b7543241a0a9159f3b49e3b6e65505f6b02ec3d7) ) - ROM_LOAD16_BYTE( "136052-6815.210s", 0x040001, 0x010000, CRC(c0790e8c) SHA1(5ef9cdb191583ae5ce2d8285a32f1b060f7ddb11) ) - ROM_LOAD16_BYTE( "136052-6810.200w", 0x0a0000, 0x010000, CRC(c3030c51) SHA1(fac9c7d715d66d523908fd7f76a5a599bf05e090) ) - ROM_LOAD16_BYTE( "136052-6818.210w", 0x0a0001, 0x010000, CRC(d778128a) SHA1(e9556c39dcba59abb9eba0d2ab113f98c9044558) ) - ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) ) - ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrvb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-7905.200r", 0x000000, 0x010000, CRC(c4379a2e) SHA1(41dc66c1576c591520543343a798e0d80def2188) ) - ROM_LOAD16_BYTE( "136052-7913.210r", 0x000001, 0x010000, CRC(1e76fa17) SHA1(80ec1de4c8a4622fb5c65ec3e8c194a8eabacc38) ) - ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) ) - ROM_LOAD16_BYTE( "136052-6914.210s", 0x020001, 0x010000, CRC(c375add9) SHA1(2f2b419d2d092dbc5d2d9a2a44b206c1746e6cca) ) - ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) ) - ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) ) - ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) - ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrb6 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-6905.200r", 0x000000, 0x010000, CRC(b1f38593) SHA1(958622128c7c687071211343ef657c38f928e25a) ) - ROM_LOAD16_BYTE( "136052-6913.210r", 0x000001, 0x010000, CRC(15eb0da5) SHA1(0200328582c77d4d64e9f7df1f8755f7f4975ac3) ) - ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) ) - ROM_LOAD16_BYTE( "136052-6914.210s", 0x020001, 0x010000, CRC(c375add9) SHA1(2f2b419d2d092dbc5d2d9a2a44b206c1746e6cca) ) - ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) ) - ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) ) - ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) - ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrj6 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-6805.200r", 0x000000, 0x010000, CRC(e61ce7af) SHA1(38115a5a44f330abf1f7d684e630a1a232769f7c) ) - ROM_LOAD16_BYTE( "136052-6813.210r", 0x000001, 0x010000, CRC(adfef1e7) SHA1(dc1bdb5ce9143a94d734ce9ecdf9195589608b65) ) - ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) ) - ROM_LOAD16_BYTE( "136052-6814.210s", 0x020001, 0x010000, CRC(d0f1c6ed) SHA1(1960e70af17795a9fabd0171eaefebaaaff47305) ) - ROM_LOAD16_BYTE( "136052-6807.200s", 0x040000, 0x010000, CRC(b7d348a7) SHA1(b7543241a0a9159f3b49e3b6e65505f6b02ec3d7) ) - ROM_LOAD16_BYTE( "136052-6815.210s", 0x040001, 0x010000, CRC(c0790e8c) SHA1(5ef9cdb191583ae5ce2d8285a32f1b060f7ddb11) ) - ROM_LOAD16_BYTE( "136052-6810.200w", 0x0a0000, 0x010000, CRC(c3030c51) SHA1(fac9c7d715d66d523908fd7f76a5a599bf05e090) ) - ROM_LOAD16_BYTE( "136052-6818.210w", 0x0a0001, 0x010000, CRC(d778128a) SHA1(e9556c39dcba59abb9eba0d2ab113f98c9044558) ) - ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) ) - ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrb5 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-5905.200r", 0x000000, 0x010000, CRC(6dd28313) SHA1(c1f860470070dad7d8865aca508ecf5eb92fa8c5) ) - ROM_LOAD16_BYTE( "136052-5913.210r", 0x000001, 0x010000, CRC(2e5a006f) SHA1(8a2da1868bbad54b33e993f5bf9ba61186caef5b) ) - ROM_LOAD16_BYTE( "136052-5906.200s", 0x020000, 0x010000, CRC(206b59db) SHA1(2bbae0ac4af9cdda44d6d8b5fcf6b3b1c3103796) ) - ROM_LOAD16_BYTE( "136052-5914.210s", 0x020001, 0x010000, CRC(50408162) SHA1(b99f9de8e2cfdf13818d46de3e2d34c8d28d9b50) ) - ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) ) - ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) ) - ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) ) - ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrg4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-4205.200r", 0x000000, 0x010000, CRC(94db6d9e) SHA1(98a509daacb9f18c7171246d1782d09a6456e241) ) - ROM_LOAD16_BYTE( "136052-4213.210r", 0x000001, 0x010000, CRC(cacaf671) SHA1(7bd0f531402b2f10cb00bb8f7ca0b62eed23bffa) ) - ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) ) - ROM_LOAD16_BYTE( "136052-4214.210s", 0x020001, 0x010000, CRC(b7988de4) SHA1(0bc94c3eb12f8d0506eca819d79dffb7758a8421) ) - ROM_LOAD16_BYTE( "136052-4210.200w", 0x0a0000, 0x010000, CRC(5b8b2947) SHA1(7390e978361dfb6bf5675014a906f3f9879a8a59) ) - ROM_LOAD16_BYTE( "136052-4218.210w", 0x0a0001, 0x010000, CRC(9be232c5) SHA1(4fd30f53814049f8462937bfe55410edae438411) ) - ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) ) - ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrv3 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-3105.200r", 0x000000, 0x010000, CRC(a42a2c69) SHA1(66233f25533106aab69df21db69f96368f1399a9) ) - ROM_LOAD16_BYTE( "136052-3113.210r", 0x000001, 0x010000, CRC(358995b5) SHA1(f18c0da58ec7befefc61d5f0d35787516b775c92) ) - ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) - ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) ) - ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) ) - ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) ) - ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) - ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrv2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-2105.200r", 0x000000, 0x010000, CRC(967903b9) SHA1(4363f3b3f08d00819f47a3682462fd0e5dc4e0ac) ) - ROM_LOAD16_BYTE( "136052-2113.210r", 0x000001, 0x010000, CRC(c87f7067) SHA1(3d85d2ba818739ed05086502cd8e57438251b20b) ) - ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) ) - ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) ) - ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) ) - ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) ) - ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) - ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrv1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136052-1105.200r", 0x000000, 0x010000, CRC(1dfda789) SHA1(83be0d66fe21e974f8d4582b0ab60245f1db7e55) ) - ROM_LOAD16_BYTE( "136052-1113.210r", 0x000001, 0x010000, CRC(db2f6593) SHA1(864ea5604cea2507b180a91b35e349d3924bf9bc) ) - ROM_LOAD16_BYTE( "136052-1106.200s", 0x020000, 0x010000, CRC(e82210fd) SHA1(916e674017f5187531c2de7961791c060f8412c7) ) - ROM_LOAD16_BYTE( "136052-1114.210s", 0x020001, 0x010000, CRC(3d152e8c) SHA1(c55ac13922b7d2126dd9643ef5026ac272abcf16) ) - ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) ) - ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) ) - ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) ) - ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) ) - ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrvc ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) ) - ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) ) - ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) ) - ROM_LOAD16_BYTE( "136068-2103.210s", 0x020001, 0x010000, CRC(729941e8) SHA1(30d1e76803154195492acacf8c911d1f70cb92f5) ) - ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) ) - ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) ) - ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) - ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) - ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrcg ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136068-2202.200r", 0x000000, 0x010000, CRC(ea09bdc2) SHA1(9e38ed0a47a2bfb6b80cbf1e0b3e891b94f30c10) ) - ROM_LOAD16_BYTE( "136068-2201.210r", 0x000001, 0x010000, CRC(a5e9947f) SHA1(75973346c9399752d8ae82fbada3a24c6d5fec94) ) - ROM_LOAD16_BYTE( "136068-2204.200s", 0x020000, 0x010000, CRC(65792c94) SHA1(89e93cf0d2afc4bd8a01155ba908c9aa7149dc78) ) - ROM_LOAD16_BYTE( "136068-2203.210s", 0x020001, 0x010000, CRC(c93e36af) SHA1(51f96122b20cfacc6a7bc6e18c75bd57bb51bf11) ) - ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) ) - ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) ) - ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) - ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) - ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrcb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) ) - ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) ) - ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) ) - ROM_LOAD16_BYTE( "136068-2103.210s", 0x020001, 0x010000, CRC(729941e8) SHA1(30d1e76803154195492acacf8c911d1f70cb92f5) ) - ROM_LOAD16_BYTE( "136068-2912.200w", 0x0a0000, 0x010000, CRC(ab060b8b) SHA1(84cbb5bd0114536869503afc4b9fbf6b55883afc) ) - ROM_LOAD16_BYTE( "136068-2911.210w", 0x0a0001, 0x010000, CRC(4fea9caf) SHA1(f5c7d9b53334c7875f0662ec165458b03ab9c0d0) ) - ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) ) - ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) - ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( harddrc1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136068-1102.200r", 0x000000, 0x010000, CRC(f1d3779f) SHA1(1ab84fc920f6810aa7c1af80b0472ea17d07e58b) ) - ROM_LOAD16_BYTE( "136068-1101.210r", 0x000001, 0x010000, CRC(3ea4d3d9) SHA1(3901e8c07bed35bf6a55ab92f5c7eb9335675792) ) - ROM_LOAD16_BYTE( "136068-1104.200s", 0x020000, 0x010000, CRC(34133511) SHA1(71c56607cecd379761f700d181f6e91e7bb6fdfc) ) - ROM_LOAD16_BYTE( "136068-1103.210s", 0x020001, 0x010000, CRC(05bb8376) SHA1(19bde6996b84368d28374a981dca88a946653dd2) ) - ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) ) - ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) ) - ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) ) - ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) ) - ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) ) - ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) ) - ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) ) - ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* 4*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) -ROM_END - - -ROM_START( stunrun ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-6104.200s", 0x020000, 0x010000, CRC(f469f91c) SHA1(488ea6251ff4028edaf00bb1ded74cefdc71a373) ) - ROM_LOAD16_BYTE( "136070-6103.210s", 0x020001, 0x010000, CRC(096aad68) SHA1(f83c9f61854dc9c1fa7dc668dbf99f4a4bbe79ca) ) - ROM_LOAD16_BYTE( "136070-6106.200t", 0x040000, 0x010000, CRC(b445bae5) SHA1(d530b535a47c4920c43852e7904080e6abf30098) ) - ROM_LOAD16_BYTE( "136070-6105.210t", 0x040001, 0x010000, CRC(42736c52) SHA1(42e0b451b172223cce9c43835363136146eeddba) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrunj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-3402.200r", 0x000000, 0x010000, CRC(d8d56923) SHA1(248b22dab791c2d9ee6e6097dac9f3bf85d572be) ) - ROM_LOAD16_BYTE( "136070-3401.210r", 0x000001, 0x010000, CRC(ce11126c) SHA1(cf27b56103048cc23dc6763763b7419583a27c76) ) - ROM_LOAD16_BYTE( "136070-7404.200s", 0x020000, 0x010000, CRC(81da3e74) SHA1(38864aac479a8927d168ee977fd0981a7926d0fd) ) - ROM_LOAD16_BYTE( "136070-7403.210s", 0x020001, 0x010000, CRC(54878b3b) SHA1(42301d10c41ded3741821b52ae191dc46fa417d6) ) - ROM_LOAD16_BYTE( "136070-7406.200t", 0x040000, 0x010000, CRC(8e3352b9) SHA1(07d2d9b1b96ff21d4ce7f16469451c58229a672c) ) - ROM_LOAD16_BYTE( "136070-7405.210t", 0x040001, 0x010000, CRC(f40499b1) SHA1(e6d6975da3a1f04460cd6ffb4616a7f27d1af688) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrun5 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-5104.200s", 0x020000, 0x010000, CRC(d5c601fe) SHA1(ab61e11723ab9b92fb98b6f8e520a7b323caae64) ) - ROM_LOAD16_BYTE( "136070-5103.210s", 0x020001, 0x010000, CRC(19d040d6) SHA1(029d6b341a2d7b0d766538395af75ddeec9cca31) ) - ROM_LOAD16_BYTE( "136070-5106.200t", 0x040000, 0x010000, CRC(9167a032) SHA1(6d5a273ea37e67fe47b5d0428e34302a53332adf) ) - ROM_LOAD16_BYTE( "136070-5105.210t", 0x040001, 0x010000, CRC(f935d15a) SHA1(6bb102db450da9c5d34d5a293c379343aac6a853) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrune ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-5004.200s", 0x020000, 0x010000, CRC(c2e4bde8) SHA1(766242455b0be6dc7b698cc6fe86d90991ca2e0a) ) - ROM_LOAD16_BYTE( "136070-5003.210s", 0x020001, 0x010000, CRC(0c902d21) SHA1(e56efc34a746718a844558c2df65fd560834c26e) ) - ROM_LOAD16_BYTE( "136070-5006.200t", 0x040000, 0x010000, CRC(b0fc2fcc) SHA1(780d5358afcbfdc02226614c9a6b29c79f4cce69) ) - ROM_LOAD16_BYTE( "136070-5005.210t", 0x040001, 0x010000, CRC(44f290e3) SHA1(cd96c9058ccb8084ab6761528d20528ab2b987a2) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrun4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-4104.200s", 0x020000, 0x010000, CRC(62c7700b) SHA1(31d7a39df7353e60b806c204bfdd75c06b17c984) ) - ROM_LOAD16_BYTE( "136070-4103.210s", 0x020001, 0x010000, CRC(f379fcb9) SHA1(20a1b6775cc517ca159f5d233db3e3e864198125) ) - ROM_LOAD16_BYTE( "136070-4106.200t", 0x040000, 0x010000, CRC(4346669c) SHA1(13c19bbb9235879829d96fd4e227b725d13bb869) ) - ROM_LOAD16_BYTE( "136070-4105.210t", 0x040001, 0x010000, CRC(54d823dd) SHA1(5f9702b7a593009703a94987d56bc8ab3b72997d) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrun3 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) ) - ROM_LOAD16_BYTE( "136070-3103.210s", 0x020001, 0x010000, CRC(e8b1262a) SHA1(a304602023ffa8598dee8ec44f972dc8f1dad1b6) ) - ROM_LOAD16_BYTE( "136070-3106.200t", 0x040000, 0x010000, CRC(41c4778c) SHA1(f453adca7d864e0e030db36500ca072bfa935703) ) - ROM_LOAD16_BYTE( "136070-3105.210t", 0x040001, 0x010000, CRC(0d6c9b8f) SHA1(6e7e664ff5c19fdeaa4d82a02be9d74cea025fff) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrn3e ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-3004.200s", 0x020000, 0x010000, CRC(d9474678) SHA1(090b78f9e9d2ecf4218821fc102861df1e27d95a) ) - ROM_LOAD16_BYTE( "136070-3003.210s", 0x020001, 0x010000, CRC(3155287d) SHA1(6a612ab0bcbf425ee5d6a2e5da81ca33f53b3889) ) - ROM_LOAD16_BYTE( "136070-3006.200t", 0x040000, 0x010000, CRC(617db84c) SHA1(ca4bbb1ecb528980cf98aaaad06636ce3c16eba3) ) - ROM_LOAD16_BYTE( "136070-3005.210t", 0x040001, 0x010000, CRC(a9cd8fcb) SHA1(50a3ef321a3cb381df96aef9c8e180e23e442c3a) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrun2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) ) - ROM_LOAD16_BYTE( "136070-2103.210s", 0x020001, 0x010000, CRC(75e08b1d) SHA1(42d78d65697117829a6ea3c6db589ad35a2d306d) ) - ROM_LOAD16_BYTE( "136070-2106.200t", 0x040000, 0x010000, CRC(ae8fa7ca) SHA1(a86de221d79d295bff3ba2026e45124fde340eac) ) - ROM_LOAD16_BYTE( "136070-2105.210t", 0x040001, 0x010000, CRC(22d6b977) SHA1(916eff6557cd20c708408bff77a2536122ada9c2) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrn2e ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-2004.200s", 0x020000, 0x010000, CRC(30303326) SHA1(49a279b5b02af97395dfb8c66410319a807aa4b9) ) - ROM_LOAD16_BYTE( "136070-2003.210s", 0x020001, 0x010000, CRC(f29b54c1) SHA1(6339283ecc22cdad0ef6b9142f8d083e3a57b232) ) - ROM_LOAD16_BYTE( "136070-2006.200t", 0x040000, 0x010000, CRC(812bd4f7) SHA1(af87c137883dfecc97a96858b8e685993b8526e3) ) - ROM_LOAD16_BYTE( "136070-2005.210t", 0x040001, 0x010000, CRC(4aab737f) SHA1(6df23b6a43527b9d27d95393b3f5e0fb90002e1e) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrun0 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "136070-0304.200s", 0x020000, 0x010000, CRC(e7968b1b) SHA1(f2e5b4f64e553041abbe2610968f59cca425a4d4) ) - ROM_LOAD16_BYTE( "136070-0303.210s", 0x020001, 0x010000, CRC(315209b6) SHA1(fab76c8f8a72895ded7ec4662cafc68379fea58c) ) - ROM_LOAD16_BYTE( "136070-0306.200t", 0x040000, 0x010000, CRC(d46669df) SHA1(b03e4f230d7acdbc9ef794b027a0a9a4c5090c46) ) - ROM_LOAD16_BYTE( "136070-0305.210t", 0x040001, 0x010000, CRC(bf35eb46) SHA1(03dae6c794ee057faa4aafba0c9dc92b00e66a13) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( stunrunp ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) ) - ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) ) - ROM_LOAD16_BYTE( "prog-hi0.s20", 0x020000, 0x010000, CRC(0be15a99) SHA1(52b152b23af305e95765c72052bb7aba846510d6) ) - ROM_LOAD16_BYTE( "prog-lo0.s21", 0x020001, 0x010000, CRC(757c0840) SHA1(aaad808cef825d9690667b47eba8920443906fbe) ) - ROM_LOAD16_BYTE( "prog-hi.t20", 0x040000, 0x010000, CRC(49bcde9d) SHA1(d3276b1be4a7dd5e46aaecf793fd239ca4a646b7) ) - ROM_LOAD16_BYTE( "prog-lo1.t21", 0x040001, 0x010000, CRC(3bdafd89) SHA1(3934cf38445c2d9bc9a152e5da42ebf7a709b74c) ) - ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) ) - ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) ) - ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) ) - ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) ) - ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) ) - ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) ) - - ROM_REGION( 0x14000, REGION_CPU4, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) ) - ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) ) - ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) ) - ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) ) - ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) ) - ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 256k for ADPCM samples */ - ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) ) - ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) ) - ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) ) - ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) ) -ROM_END - - -ROM_START( racedriv ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) ) - ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) ) - ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) ) - ROM_LOAD16_BYTE( "136077-5003.210s", 0x020001, 0x010000, CRC(28eeff77) SHA1(ccbc021c1230f5fbc2f51bdd4b82014f4a043d4a) ) - ROM_LOAD16_BYTE( "136077-5006.200t", 0x040000, 0x010000, CRC(11cd9323) SHA1(43bdefb159c2a1c3cb07a629b8b924cdc29606f5) ) - ROM_LOAD16_BYTE( "136077-5005.210t", 0x040001, 0x010000, CRC(49c33786) SHA1(9597b5b3d4b3bd113c60ba9bd7689c331bf26bbb) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrvb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) ) - ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) ) - ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) ) - ROM_LOAD16_BYTE( "136077-5003.210s", 0x020001, 0x010000, CRC(28eeff77) SHA1(ccbc021c1230f5fbc2f51bdd4b82014f4a043d4a) ) - ROM_LOAD16_BYTE( "136077-5006.200t", 0x040000, 0x010000, CRC(11cd9323) SHA1(43bdefb159c2a1c3cb07a629b8b924cdc29606f5) ) - ROM_LOAD16_BYTE( "136077-5005.210t", 0x040001, 0x010000, CRC(49c33786) SHA1(9597b5b3d4b3bd113c60ba9bd7689c331bf26bbb) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1112.200w", 0x0a0000, 0x010000, CRC(5b5a2527) SHA1(a5762b4f9d0abbc9a54b1ac3014ae69394c7e03e) ) - ROM_LOAD16_BYTE( "136077-1111.210w", 0x0a0001, 0x010000, CRC(1f6224ec) SHA1(54d91406629dc64c9458d73e73e7c9fff6dbd915) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrvg ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-5202.200r", 0x000000, 0x010000, CRC(69016b69) SHA1(8da1314b4b6da6fc95479b9034190181bf778b25) ) - ROM_LOAD16_BYTE( "136077-5201.210r", 0x000001, 0x010000, CRC(439a1ce7) SHA1(fc376c654c494d2895bcf85d5d8a9d6f17b6887e) ) - ROM_LOAD16_BYTE( "136077-5204.200s", 0x020000, 0x010000, CRC(15df2b3d) SHA1(49235687b7be684dcd491b854f80c1d849894956) ) - ROM_LOAD16_BYTE( "136077-5203.210s", 0x020001, 0x010000, CRC(1ac45a5d) SHA1(51463df829a5b0e2649f91b54ba718a1e690b492) ) - ROM_LOAD16_BYTE( "136077-5206.200t", 0x040000, 0x010000, CRC(02da252f) SHA1(9a63f150913654e9de6e23fcd450e06aae91b10c) ) - ROM_LOAD16_BYTE( "136077-5205.210t", 0x040001, 0x010000, CRC(c810c576) SHA1(664082c6aaddc3b967c19b4505a0c5022821b445) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrv4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) ) - ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) ) - ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) ) - ROM_LOAD16_BYTE( "136077-4003.210s", 0x020001, 0x010000, CRC(84e9f56b) SHA1(bc22f3e56c530a3e3f4c43bc400919a7b23a7a1f) ) - ROM_LOAD16_BYTE( "136077-4006.200t", 0x040000, 0x010000, CRC(4a2340f6) SHA1(fb28977bb437bc1891f70b37b066878ef878ecc2) ) - ROM_LOAD16_BYTE( "136077-4005.210t", 0x040001, 0x010000, CRC(9572b2ac) SHA1(ab5da7f379cff1c574c42317fabc749f0ad0e967) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrb4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-4002.200r", 0x000000, 0x010000, CRC(afe1beb5) SHA1(66dba58f2a02eaa2d6306e53adffb662a8021031) ) - ROM_LOAD16_BYTE( "136077-4001.210r", 0x000001, 0x010000, CRC(8a449e44) SHA1(03800b96a3992baa4bd37db20e559e08b12e55d1) ) - ROM_LOAD16_BYTE( "136077-4004.200s", 0x020000, 0x010000, CRC(6d886150) SHA1(514de55de66a2b7fb14d6e2d896911e1b1af62f2) ) - ROM_LOAD16_BYTE( "136077-4003.210s", 0x020001, 0x010000, CRC(84e9f56b) SHA1(bc22f3e56c530a3e3f4c43bc400919a7b23a7a1f) ) - ROM_LOAD16_BYTE( "136077-4006.200t", 0x040000, 0x010000, CRC(4a2340f6) SHA1(fb28977bb437bc1891f70b37b066878ef878ecc2) ) - ROM_LOAD16_BYTE( "136077-4005.210t", 0x040001, 0x010000, CRC(9572b2ac) SHA1(ab5da7f379cff1c574c42317fabc749f0ad0e967) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1112.200w", 0x0a0000, 0x010000, CRC(5b5a2527) SHA1(a5762b4f9d0abbc9a54b1ac3014ae69394c7e03e) ) - ROM_LOAD16_BYTE( "136077-1111.210w", 0x0a0001, 0x010000, CRC(1f6224ec) SHA1(54d91406629dc64c9458d73e73e7c9fff6dbd915) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrg4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-4202.200r", 0x000000, 0x010000, CRC(a8c7e15e) SHA1(6aa4b819e5c8562c8eef92a411b2dc91ed35ae4c) ) - ROM_LOAD16_BYTE( "136077-4201.210r", 0x000001, 0x010000, CRC(1dfa4df2) SHA1(1db0676f0ff1e7996c9791b041d9cd4ca9c70261) ) - ROM_LOAD16_BYTE( "136077-4204.200s", 0x020000, 0x010000, CRC(29eea8c1) SHA1(1a8020efc0b963bbd05bd33dc3176db7c3234fcc) ) - ROM_LOAD16_BYTE( "136077-4203.210s", 0x020001, 0x010000, CRC(a85e20c0) SHA1(f47d8858ae4f4bc8a95ea850af17dcfd4a8f6977) ) - ROM_LOAD16_BYTE( "136077-4206.200t", 0x040000, 0x010000, CRC(f76fde13) SHA1(18a6e9db1458b0710d1524fde9fab957a5a1c792) ) - ROM_LOAD16_BYTE( "136077-4205.210t", 0x040001, 0x010000, CRC(e8279f91) SHA1(7b3cf8f6adf2d29d2ae51b471beb44481accadb5) ) - ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) ) - ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) ) - ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) ) - ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) ) - ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrv3 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-3002.200r", 0x000000, 0x010000, CRC(78771253) SHA1(88fdae99eb4feb40db8ad171b3435315db3adedb) ) - ROM_LOAD16_BYTE( "136077-3001.210r", 0x000001, 0x010000, CRC(c75373a4) SHA1(d2f14190218cfedf4478806a26c77edd4d7c73eb) ) - ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) ) - ROM_LOAD16_BYTE( "136077-2003.210s", 0x020001, 0x010000, CRC(8c36b745) SHA1(d4a39b721dffed7aa41ce0f3f1ae273c6261074f) ) - ROM_LOAD16_BYTE( "136077-2006.200t", 0x040000, 0x010000, CRC(07fd762e) SHA1(94d9873416fd8d13fc8705ad06c3b4dffd271d90) ) - ROM_LOAD16_BYTE( "136077-2005.210t", 0x040001, 0x010000, CRC(71c0a770) SHA1(011e91006c542e30213f71a910c9de67477cd6b3) ) - ROM_LOAD16_BYTE( "136077-2008.200u", 0x060000, 0x010000, CRC(5144d31b) SHA1(5d5b05554d5e0c2f58196834c2445ed48a729df7) ) - ROM_LOAD16_BYTE( "136077-2007.210u", 0x060001, 0x010000, CRC(17903148) SHA1(85001910c0e7f7fb5cef3fe989ef27c0a0b7003e) ) - ROM_LOAD16_BYTE( "136077-2010.200v", 0x080000, 0x010000, CRC(8674e44e) SHA1(5a81b93f6ccb3f92fdebb6500051561cb1d963dd) ) - ROM_LOAD16_BYTE( "136077-2009.210v", 0x080001, 0x010000, CRC(1e9e4c31) SHA1(ec77d1b181cf3268f606a513dc5103e6bb311a68) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) - ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrv2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) ) - ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) ) - ROM_LOAD16_BYTE( "136077-2004.200s", 0x020000, 0x010000, CRC(4eb19582) SHA1(52359d7839f3459aec4fdc16a659a29fa60feee4) ) - ROM_LOAD16_BYTE( "136077-2003.210s", 0x020001, 0x010000, CRC(8c36b745) SHA1(d4a39b721dffed7aa41ce0f3f1ae273c6261074f) ) - ROM_LOAD16_BYTE( "136077-2006.200t", 0x040000, 0x010000, CRC(07fd762e) SHA1(94d9873416fd8d13fc8705ad06c3b4dffd271d90) ) - ROM_LOAD16_BYTE( "136077-2005.210t", 0x040001, 0x010000, CRC(71c0a770) SHA1(011e91006c542e30213f71a910c9de67477cd6b3) ) - ROM_LOAD16_BYTE( "136077-2008.200u", 0x060000, 0x010000, CRC(5144d31b) SHA1(5d5b05554d5e0c2f58196834c2445ed48a729df7) ) - ROM_LOAD16_BYTE( "136077-2007.210u", 0x060001, 0x010000, CRC(17903148) SHA1(85001910c0e7f7fb5cef3fe989ef27c0a0b7003e) ) - ROM_LOAD16_BYTE( "136077-2010.200v", 0x080000, 0x010000, CRC(8674e44e) SHA1(5a81b93f6ccb3f92fdebb6500051561cb1d963dd) ) - ROM_LOAD16_BYTE( "136077-2009.210v", 0x080001, 0x010000, CRC(1e9e4c31) SHA1(ec77d1b181cf3268f606a513dc5103e6bb311a68) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) - ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrv1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-1002.200r", 0x000000, 0x010000, CRC(d39f6d53) SHA1(c278cd4109a65304a21dd1d8ba27375713a8b107) ) - ROM_LOAD16_BYTE( "136077-1001.210r", 0x000001, 0x010000, CRC(e29e011c) SHA1(7044e7f9c8551309b5867a06672796411007a427) ) - ROM_LOAD16_BYTE( "136077-1004.200s", 0x020000, 0x010000, CRC(809831e8) SHA1(681160deceff4df0f000c23f8514086dbbcc0c8d) ) - ROM_LOAD16_BYTE( "136077-1003.210s", 0x020001, 0x010000, CRC(4e2faf63) SHA1(a1a0b151e5e871bac0624b2def87f35ad2b5d758) ) - ROM_LOAD16_BYTE( "136077-1006.200t", 0x040000, 0x010000, CRC(5615561b) SHA1(6b8c69a9a4151245ff830d035e3b57701da43392) ) - ROM_LOAD16_BYTE( "136077-1005.210t", 0x040001, 0x010000, CRC(b115b9f5) SHA1(af19692b34f77f4fdd1d905315bfd52bb0c6d559) ) - ROM_LOAD16_BYTE( "136077-1008.200u", 0x060000, 0x010000, CRC(5144d31b) SHA1(5d5b05554d5e0c2f58196834c2445ed48a729df7) ) - ROM_LOAD16_BYTE( "136077-1007.210u", 0x060001, 0x010000, CRC(17903148) SHA1(85001910c0e7f7fb5cef3fe989ef27c0a0b7003e) ) - ROM_LOAD16_BYTE( "136077-1010.200v", 0x080000, 0x010000, CRC(346fafea) SHA1(2e73ccf351e7bd447a4b93c96de644606ac14cc8) ) - ROM_LOAD16_BYTE( "136077-1009.210v", 0x080001, 0x010000, CRC(98e95bc8) SHA1(73517ae15fafb8f861bb81021a2e92143827747d) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) - ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrg1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-1202.200r", 0x000000, 0x010000, CRC(bd363903) SHA1(8f0937725adabf5ee9e0ac015c83916e2575670a) ) - ROM_LOAD16_BYTE( "136077-1201.210r", 0x000001, 0x010000, CRC(748c3be4) SHA1(ddf149f333d23e9c782ae447f6fb3f780680b3f5) ) - ROM_LOAD16_BYTE( "136077-1204.200s", 0x020000, 0x010000, CRC(aef103bb) SHA1(52831858d3a45ad00e156c5b2a11e7fddf06bead) ) - ROM_LOAD16_BYTE( "136077-1203.210s", 0x020001, 0x010000, CRC(b0dddd6d) SHA1(78a3a47f29c7f0bf74127b73593f02a515fc1b71) ) - ROM_LOAD16_BYTE( "136077-1206.200t", 0x040000, 0x010000, CRC(d4a70ce6) SHA1(dce613d6993daafe3ae6578a6a32dd96516dc976) ) - ROM_LOAD16_BYTE( "136077-1205.210t", 0x040001, 0x010000, CRC(1d85766b) SHA1(91d9ff9412980fce36b48f82ce4f9acbd8d439db) ) - ROM_LOAD16_BYTE( "136077-1208.200u", 0x060000, 0x010000, CRC(5144d31b) SHA1(5d5b05554d5e0c2f58196834c2445ed48a729df7) ) - ROM_LOAD16_BYTE( "136077-1207.210u", 0x060001, 0x010000, CRC(17903148) SHA1(85001910c0e7f7fb5cef3fe989ef27c0a0b7003e) ) - ROM_LOAD16_BYTE( "136077-1210.200v", 0x080000, 0x010000, CRC(8674e44e) SHA1(5a81b93f6ccb3f92fdebb6500051561cb1d963dd) ) - ROM_LOAD16_BYTE( "136077-1209.210v", 0x080001, 0x010000, CRC(1e9e4c31) SHA1(ec77d1b181cf3268f606a513dc5103e6bb311a68) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) ) - ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) - ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrb1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136077-2002.200r", 0x000000, 0x010000, CRC(6b440e10) SHA1(8074a1de01e2cdc497a51339f9c05329d6f540b0) ) - ROM_LOAD16_BYTE( "136077-2001.210r", 0x000001, 0x010000, CRC(eee12973) SHA1(0cd2e88c431d08fba5a73c903327f39f8692f3aa) ) - ROM_LOAD16_BYTE( "136077-1104.200s", 0x020000, 0x010000, CRC(a9495f53) SHA1(68e7d983c0e1a84f5ad0743a230e6126169a6fd6) ) - ROM_LOAD16_BYTE( "136077-1103.210s", 0x020001, 0x010000, CRC(3c5c853c) SHA1(cbf6a4827889896d63671ed76e69e2f0dfcda2ef) ) - ROM_LOAD16_BYTE( "136077-1106.200t", 0x040000, 0x010000, CRC(5615561b) SHA1(6b8c69a9a4151245ff830d035e3b57701da43392) ) - ROM_LOAD16_BYTE( "136077-1105.210t", 0x040001, 0x010000, CRC(b115b9f5) SHA1(af19692b34f77f4fdd1d905315bfd52bb0c6d559) ) - ROM_LOAD16_BYTE( "136077-1008.200u", 0x060000, 0x010000, CRC(5144d31b) SHA1(5d5b05554d5e0c2f58196834c2445ed48a729df7) ) - ROM_LOAD16_BYTE( "136077-1007.210u", 0x060001, 0x010000, CRC(17903148) SHA1(85001910c0e7f7fb5cef3fe989ef27c0a0b7003e) ) - ROM_LOAD16_BYTE( "136077-1010.200v", 0x080000, 0x010000, CRC(346fafea) SHA1(2e73ccf351e7bd447a4b93c96de644606ac14cc8) ) - ROM_LOAD16_BYTE( "136077-1009.210v", 0x080001, 0x010000, CRC(98e95bc8) SHA1(73517ae15fafb8f861bb81021a2e92143827747d) ) - ROM_LOAD16_BYTE( "136077-1112.200w", 0x0a0000, 0x010000, CRC(5b5a2527) SHA1(a5762b4f9d0abbc9a54b1ac3014ae69394c7e03e) ) - ROM_LOAD16_BYTE( "136077-1111.210w", 0x0a0001, 0x010000, CRC(1f6224ec) SHA1(54d91406629dc64c9458d73e73e7c9fff6dbd915) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) ) - ROM_LOAD16_BYTE( "136077-1015.210y", 0x0e0001, 0x010000, CRC(c51f2702) SHA1(2279f15c4c09af92fe9b87dc0ed842092ca64906) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136077-1030.30e", 0x000000, 0x010000, CRC(ff575b3d) SHA1(7f2202db7ec9dac06499c9535b4852defb192eb3) ) - ROM_LOAD16_BYTE( "136077-1031.10e", 0x000001, 0x010000, CRC(2ae2ac35) SHA1(e2a050a6e24dc6fef86b3556b69b2c3e2993febc) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrvc ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) ) - ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) ) - ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) ) - ROM_LOAD16_BYTE( "136078-5003.210s", 0x020001, 0x010000, CRC(bf56a29f) SHA1(1ef17dab9ed1fd92b005dd31f7dccf1535583ec4) ) - ROM_LOAD16_BYTE( "136078-5006.200t", 0x040000, 0x010000, CRC(8559a61b) SHA1(ad1796c39ac9cbb50e8a97d9e8c9cd5adfd0ff5e) ) - ROM_LOAD16_BYTE( "136078-5005.210t", 0x040001, 0x010000, CRC(33d654b1) SHA1(1e6886d49008b13886184c9ced0f6bd642d9562c) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrcb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-5002.200r", 0x000000, 0x010000, CRC(ae8f79bd) SHA1(054f2d1948d6d03832c4557c3dd7667c0784716d) ) - ROM_LOAD16_BYTE( "136078-5001.210r", 0x000001, 0x010000, CRC(ad896e7f) SHA1(7b047f0c972fac075db00faf19cdf9ccdcef5c63) ) - ROM_LOAD16_BYTE( "136078-5004.200s", 0x020000, 0x010000, CRC(b8650bee) SHA1(a9905081e622e4a4fcec9aa08b87566ecdb9198b) ) - ROM_LOAD16_BYTE( "136078-5003.210s", 0x020001, 0x010000, CRC(bf56a29f) SHA1(1ef17dab9ed1fd92b005dd31f7dccf1535583ec4) ) - ROM_LOAD16_BYTE( "136078-5006.200t", 0x040000, 0x010000, CRC(8559a61b) SHA1(ad1796c39ac9cbb50e8a97d9e8c9cd5adfd0ff5e) ) - ROM_LOAD16_BYTE( "136078-5005.210t", 0x040001, 0x010000, CRC(33d654b1) SHA1(1e6886d49008b13886184c9ced0f6bd642d9562c) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1112.200w", 0x0a0000, 0x010000, CRC(5b5a2527) SHA1(a5762b4f9d0abbc9a54b1ac3014ae69394c7e03e) ) - ROM_LOAD16_BYTE( "136077-1111.210w", 0x0a0001, 0x010000, CRC(1f6224ec) SHA1(54d91406629dc64c9458d73e73e7c9fff6dbd915) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrcg ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-5202.200r", 0x000000, 0x010000, CRC(c37b5281) SHA1(1ff7a879853dd1e10881fd56e8ae0962676ef319) ) - ROM_LOAD16_BYTE( "136078-5201.210r", 0x000001, 0x010000, CRC(80072dad) SHA1(ba33465f639431cf6e9ce377ed31e538a0304dc5) ) - ROM_LOAD16_BYTE( "136078-5204.200s", 0x020000, 0x010000, CRC(5d45fbd2) SHA1(5279c814c2876c642630fed5c114eccea6d703b0) ) - ROM_LOAD16_BYTE( "136078-5203.210s", 0x020001, 0x010000, CRC(b0d4d55f) SHA1(ec4d7b43b981d5ac4db96c3c063f456c0799b577) ) - ROM_LOAD16_BYTE( "136078-5206.200t", 0x040000, 0x010000, CRC(df7a1c87) SHA1(31ef0583c3f68a951f05ae054512ecfa4a3696bd) ) - ROM_LOAD16_BYTE( "136078-5205.210t", 0x040001, 0x010000, CRC(3e209cc6) SHA1(54649720e9edf15ed59c37f54cfcfb92f1498b0e) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrc4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) ) - ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) ) - ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) ) - ROM_LOAD16_BYTE( "136078-4003.210s", 0x020001, 0x010000, CRC(2d1972ad) SHA1(1126b043b6ac68088decbf28c818725d3f26acc4) ) - ROM_LOAD16_BYTE( "136078-4006.200t", 0x040000, 0x010000, CRC(31f338c0) SHA1(19de0e4982e4b746e5b70622c889c63f14da5f4c) ) - ROM_LOAD16_BYTE( "136078-4005.210t", 0x040001, 0x010000, CRC(148c92bb) SHA1(1a7070ff7ff62143e086d39d821dca6a0c4d0c1b) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedcb4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-4002.200r", 0x000000, 0x010000, CRC(d6522b97) SHA1(0e4c4ce9f6147cc3878a3f1e60cf58f00bfe9e4c) ) - ROM_LOAD16_BYTE( "136078-4001.210r", 0x000001, 0x010000, CRC(d658a8ed) SHA1(59d823d8150de62ba5c4fddf87584bd2044e87f7) ) - ROM_LOAD16_BYTE( "136078-4004.200s", 0x020000, 0x010000, CRC(c8520b01) SHA1(f0bd0505cbf24f7e43dc2e775ecbbf0db5419b6e) ) - ROM_LOAD16_BYTE( "136078-4003.210s", 0x020001, 0x010000, CRC(2d1972ad) SHA1(1126b043b6ac68088decbf28c818725d3f26acc4) ) - ROM_LOAD16_BYTE( "136078-4006.200t", 0x040000, 0x010000, CRC(31f338c0) SHA1(19de0e4982e4b746e5b70622c889c63f14da5f4c) ) - ROM_LOAD16_BYTE( "136078-4005.210t", 0x040001, 0x010000, CRC(148c92bb) SHA1(1a7070ff7ff62143e086d39d821dca6a0c4d0c1b) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1112.200w", 0x0a0000, 0x010000, CRC(5b5a2527) SHA1(a5762b4f9d0abbc9a54b1ac3014ae69394c7e03e) ) - ROM_LOAD16_BYTE( "136077-1111.210w", 0x0a0001, 0x010000, CRC(1f6224ec) SHA1(54d91406629dc64c9458d73e73e7c9fff6dbd915) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedcg4 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-4202.200r", 0x000000, 0x010000, CRC(be58215d) SHA1(0497efbd696e8d2db4e42678dd6cfe6cd3f78688) ) - ROM_LOAD16_BYTE( "136078-4201.210r", 0x000001, 0x010000, CRC(609c5f23) SHA1(a66e1f10f8ad9d25fca5b681ad543967287f2036) ) - ROM_LOAD16_BYTE( "136078-4204.200s", 0x020000, 0x010000, CRC(2e590c4f) SHA1(dcb56bacdde17eade5b347d5549cec1de89774e6) ) - ROM_LOAD16_BYTE( "136078-4203.210s", 0x020001, 0x010000, CRC(f1ea50ac) SHA1(ac27f95df42e0e9d33dc99a3fa135189b590e375) ) - ROM_LOAD16_BYTE( "136078-4206.200t", 0x040000, 0x010000, CRC(aef8c898) SHA1(323a4253dd6e4e72a2a79b65d4fb850ec19e3150) ) - ROM_LOAD16_BYTE( "136078-4205.210t", 0x040001, 0x010000, CRC(a2603e7e) SHA1(8b1b46a3367fee2a55afab7e7c24da29670821ec) ) - ROM_LOAD16_BYTE( "136078-4008.200u", 0x060000, 0x010000, CRC(5b119d16) SHA1(ec808b5e325ab1a6dbddcef75871cd0126a98377) ) - ROM_LOAD16_BYTE( "136078-4007.210u", 0x060001, 0x010000, CRC(fa234861) SHA1(4c6753c64f942f6ea98f96e1e8f4de880800573e) ) - ROM_LOAD16_BYTE( "136078-4010.200v", 0x080000, 0x010000, CRC(150acc9e) SHA1(e172e6a1ed5ac0791fe053d4bde2d0c62202f399) ) - ROM_LOAD16_BYTE( "136078-4009.210v", 0x080001, 0x010000, CRC(85a9aa37) SHA1(e403a41c44edfca190cb15452d67a427de9cf56e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-4016.200y", 0x0e0000, 0x010000, CRC(aa296776) SHA1(991e33568e47a82cb183724f7df1f835850c30fa) ) - ROM_LOAD16_BYTE( "136078-4015.210y", 0x0e0001, 0x010000, CRC(030c803d) SHA1(bb249c9d1d28f6851a529b93c4f96d80665f2bce) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrc2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-2002.200r", 0x000000, 0x010000, CRC(669fe6fe) SHA1(1775ee3ef4817f553113772cf0fb35cbbe2e73a5) ) - ROM_LOAD16_BYTE( "136078-2001.210r", 0x000001, 0x010000, CRC(9312fd5f) SHA1(9dd1b30ebceedf50fb18d744540e2003a8110d09) ) - ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) ) - ROM_LOAD16_BYTE( "136078-1003.210s", 0x020001, 0x010000, CRC(15bcbfe3) SHA1(a98f7fdb7486e7f3c6bdee8a19f483ca83b52a61) ) - ROM_LOAD16_BYTE( "136078-1006.200t", 0x040000, 0x010000, CRC(8539e6f3) SHA1(d6c0de7ebfeece9f4c98eff1f2c6f80a0a94739d) ) - ROM_LOAD16_BYTE( "136078-1005.210t", 0x040001, 0x010000, CRC(5f44fe33) SHA1(594d498566dda5f3a62b818b4da1b14c969fcc85) ) - ROM_LOAD16_BYTE( "136078-1007.210u", 0x060001, 0x010000, CRC(2517035a) SHA1(74ff3de6a0dd4a072097420b48eb6e8318654f34) ) - ROM_LOAD16_BYTE( "136078-1008.200u", 0x060000, 0x010000, CRC(0540d53d) SHA1(ca3b36c47df0f15da593a2c8c03407dd1547d403) ) - ROM_LOAD16_BYTE( "136078-1009.210v", 0x080001, 0x010000, CRC(33556cb5) SHA1(ece3801be3913e02fc77f2d2a1e2915a5d69d455) ) - ROM_LOAD16_BYTE( "136078-1010.200v", 0x080000, 0x010000, CRC(84329826) SHA1(1fbce8f1ffe898714d58bfa337aa6ab15275963e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) ) - ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( racedrc1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136078-1002.200r", 0x000000, 0x010000, CRC(ed997f08) SHA1(9512f347120174345dbe8c756e5c239fdce438a5) ) - ROM_LOAD16_BYTE( "136078-1001.210r", 0x000001, 0x010000, CRC(5540ee7d) SHA1(f1d16cfa20b61f1cf075e3275ea4af0b46aa5470) ) - ROM_LOAD16_BYTE( "136078-1004.200s", 0x020000, 0x010000, CRC(4a1beb65) SHA1(3a4e3dd07a1415aef27e8bbebe0503296dfc7586) ) - ROM_LOAD16_BYTE( "136078-1003.210s", 0x020001, 0x010000, CRC(15bcbfe3) SHA1(a98f7fdb7486e7f3c6bdee8a19f483ca83b52a61) ) - ROM_LOAD16_BYTE( "136078-1006.200t", 0x040000, 0x010000, CRC(8539e6f3) SHA1(d6c0de7ebfeece9f4c98eff1f2c6f80a0a94739d) ) - ROM_LOAD16_BYTE( "136078-1005.210t", 0x040001, 0x010000, CRC(5f44fe33) SHA1(594d498566dda5f3a62b818b4da1b14c969fcc85) ) - ROM_LOAD16_BYTE( "136078-1007.210u", 0x060001, 0x010000, CRC(2517035a) SHA1(74ff3de6a0dd4a072097420b48eb6e8318654f34) ) - ROM_LOAD16_BYTE( "136078-1008.200u", 0x060000, 0x010000, CRC(0540d53d) SHA1(ca3b36c47df0f15da593a2c8c03407dd1547d403) ) - ROM_LOAD16_BYTE( "136078-1009.210v", 0x080001, 0x010000, CRC(33556cb5) SHA1(ece3801be3913e02fc77f2d2a1e2915a5d69d455) ) - ROM_LOAD16_BYTE( "136078-1010.200v", 0x080000, 0x010000, CRC(84329826) SHA1(1fbce8f1ffe898714d58bfa337aa6ab15275963e) ) - ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) ) - ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) ) - ROM_LOAD16_BYTE( "136078-1015.210y", 0x0e0001, 0x010000, CRC(64dd6040) SHA1(bcadf4f1d9a0685ca39af903d3342d590850513c) ) - ROM_LOAD16_BYTE( "136078-1016.200y", 0x0e0000, 0x010000, CRC(a2a0ed28) SHA1(6f308a38594f7e54ebdd6983d28664ba595bc525) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0 ) /* 2*64k for audio 68000 code */ - ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) ) - ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) ) - - ROM_REGION16_BE( 0x60000, REGION_USER1, 0 ) /* 384k for ADSP object ROM */ - ROM_LOAD16_BYTE( "136077-1021.10h", 0x000000, 0x010000, CRC(9831fe73) SHA1(5215ee89a0014399b7d829e443b16590a4679844) ) - ROM_LOAD16_BYTE( "136077-1023.10k", 0x000001, 0x010000, CRC(74bf0e0e) SHA1(a3d91ecf13c3619e073324517a4a5afaae831982) ) - ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) ) - ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136078-1030.30e", 0x000000, 0x010000, CRC(d355a1c2) SHA1(6b0fb52dbecbe574959739f49c3c0fccdd5cebdb) ) - ROM_LOAD16_BYTE( "136078-1031.10e", 0x000001, 0x010000, CRC(18fd5f44) SHA1(1c3bd780b72cfa61bcbd82683da18b4ee8d03a6d) ) - - ROM_REGION( 0x50000, REGION_SOUND1, 0 ) /* 10*128k for audio serial ROMs */ - ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( steeltal ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) - ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) - ROM_LOAD16_BYTE( "136087-1004.200s", 0x020000, 0x010000, CRC(c31ca924) SHA1(8d7d2a3d204e69d759cf767b57570c18db5a3fd8) ) - ROM_LOAD16_BYTE( "136087-1003.210s", 0x020001, 0x010000, CRC(7802e86d) SHA1(de5ee2f66f1e46a1bf437f15101e64bfb66fdecf) ) - ROM_LOAD16_BYTE( "136087-1006.200t", 0x040000, 0x010000, CRC(01ebc0c3) SHA1(34b6b837171456927d6ff83dad61ee2f64a06780) ) - ROM_LOAD16_BYTE( "136087-1005.210t", 0x040001, 0x010000, CRC(1107499c) SHA1(5c52db8889d8588e4c5c32b1366d47b288d7a2aa) ) - ROM_LOAD16_BYTE( "136087-1008.200u", 0x060000, 0x010000, CRC(78e72af9) SHA1(14bf86dd6e7c60af017ee35dfda16061b8edadfe) ) - ROM_LOAD16_BYTE( "136087-1007.210u", 0x060001, 0x010000, CRC(420be93b) SHA1(f22691f402307edce4ca51b30858206f353de663) ) - ROM_LOAD16_BYTE( "136087-1010.200v", 0x080000, 0x010000, CRC(7eff9f8b) SHA1(7e6ee7dec75bc9224834d35c0b9a7c5d8bd897bc) ) - ROM_LOAD16_BYTE( "136087-1009.210v", 0x080001, 0x010000, CRC(53e9fe94) SHA1(bf05ce2f8d97e7be96c99814d280289ffad1621a) ) - ROM_LOAD16_BYTE( "136087-1012.200w", 0x0a0000, 0x010000, CRC(d39e8cef) SHA1(ba6aa8b70c30d6db70cfcf51dfe450dcfde0f3e4) ) - ROM_LOAD16_BYTE( "136087-1011.210w", 0x0a0001, 0x010000, CRC(b388bf91) SHA1(3e6a17e4462023f59f6581b09c716e6c51e7ae8e) ) - ROM_LOAD16_BYTE( "136087-1014.200x", 0x0c0000, 0x010000, CRC(9f047de7) SHA1(58c4f062d8eef9e2d0143a9b77b066fc3bb5dc29) ) - ROM_LOAD16_BYTE( "136087-1013.210x", 0x0c0001, 0x010000, CRC(f6b99901) SHA1(5c162a6d945c312e49e0a1e04285c597dde4ef94) ) - ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) - ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) - - ROM_REGION( 0x14000, REGION_CPU5, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION( 0x10000, REGION_CPU6, 0 ) /* 64k for ASIC65 */ - ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) - - ROM_REGION( 0x10000, REGION_CPU7, 0 ) /* 64k for DSP communications */ - ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) - - ROM_REGION16_BE( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) - ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 1MB for ADPCM samples */ - ROM_LOAD( "136087-5002.1m", 0x080000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) - ROM_LOAD( "136087-5003.1n", 0x0a0000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) - ROM_LOAD( "136087-5004.1p", 0x0c0000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) - ROM_LOAD( "136087-5005.1r", 0x0e0000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) -ROM_END - - -ROM_START( steeltag ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) - ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) - ROM_LOAD16_BYTE( "136087-2004.200s", 0x020000, 0x010000, CRC(11fcba15) SHA1(031fc4c46a25ba8b5e15257f7443899bb484c09e) ) - ROM_LOAD16_BYTE( "136087-2003.210s", 0x020001, 0x010000, CRC(249d4c0f) SHA1(0fa3c2fb10b5ca6a256b641528b5c15155501d23) ) - ROM_LOAD16_BYTE( "136087-2006.200t", 0x040000, 0x010000, CRC(55609ae3) SHA1(0379465d0d42cf59d85fa54332ade09ca5af71ad) ) - ROM_LOAD16_BYTE( "136087-2005.210t", 0x040001, 0x010000, CRC(0fbf3d62) SHA1(f4477e4522ca13ab1f4a984a78fee30eec1f35b0) ) - ROM_LOAD16_BYTE( "136087-1008.200u", 0x060000, 0x010000, CRC(78e72af9) SHA1(14bf86dd6e7c60af017ee35dfda16061b8edadfe) ) - ROM_LOAD16_BYTE( "136087-1007.210u", 0x060001, 0x010000, CRC(420be93b) SHA1(f22691f402307edce4ca51b30858206f353de663) ) - ROM_LOAD16_BYTE( "136087-1010.200v", 0x080000, 0x010000, CRC(7eff9f8b) SHA1(7e6ee7dec75bc9224834d35c0b9a7c5d8bd897bc) ) - ROM_LOAD16_BYTE( "136087-1009.210v", 0x080001, 0x010000, CRC(53e9fe94) SHA1(bf05ce2f8d97e7be96c99814d280289ffad1621a) ) - ROM_LOAD16_BYTE( "136087-1012.200w", 0x0a0000, 0x010000, CRC(d39e8cef) SHA1(ba6aa8b70c30d6db70cfcf51dfe450dcfde0f3e4) ) - ROM_LOAD16_BYTE( "136087-1011.210w", 0x0a0001, 0x010000, CRC(b388bf91) SHA1(3e6a17e4462023f59f6581b09c716e6c51e7ae8e) ) - ROM_LOAD16_BYTE( "136087-1014.200x", 0x0c0000, 0x010000, CRC(9f047de7) SHA1(58c4f062d8eef9e2d0143a9b77b066fc3bb5dc29) ) - ROM_LOAD16_BYTE( "136087-1013.210x", 0x0c0001, 0x010000, CRC(f6b99901) SHA1(5c162a6d945c312e49e0a1e04285c597dde4ef94) ) - ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) - ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) - - ROM_REGION( 0x14000, REGION_CPU5, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION( 0x10000, REGION_CPU6, 0 ) /* 64k for ASIC65 */ - ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) - - ROM_REGION( 0x10000, REGION_CPU7, 0 ) /* 64k for DSP communications */ - ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) - - ROM_REGION16_BE( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) - ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 1MB for ADPCM samples */ - ROM_LOAD( "136087-5002.1m", 0x080000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) - ROM_LOAD( "136087-5003.1n", 0x0a0000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) - ROM_LOAD( "136087-5004.1p", 0x0c0000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) - ROM_LOAD( "136087-5005.1r", 0x0e0000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) -ROM_END - - -ROM_START( steelta1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "136087-1002.200r", 0x000000, 0x010000, CRC(31bf01a9) SHA1(cd08a839dbb5283a6e2bb35bc9e1578a14e3c2e6) ) - ROM_LOAD16_BYTE( "136087-1001.210r", 0x000001, 0x010000, CRC(b4fa2900) SHA1(5e92ab4af31321b891c072305f8b8ef30a3e1fb0) ) - ROM_LOAD16_BYTE( "136087-a004.200s", 0x020000, 0x010000, CRC(392c992d) SHA1(10d1606214df675e6e59185e6b97034c4a47055a) ) - ROM_LOAD16_BYTE( "136087-a003.210s", 0x020001, 0x010000, CRC(562066d0) SHA1(69973dbdb1580942e8d22eee4ee130ecd67885fd) ) - ROM_LOAD16_BYTE( "136087-a006.200t", 0x040000, 0x010000, CRC(a99873fc) SHA1(5f4c0c2ca38d800ec8b2d4d6adf74901249bd794) ) - ROM_LOAD16_BYTE( "136087-a005.210t", 0x040001, 0x010000, CRC(5c1437e9) SHA1(c0dd4db5ecbbeb90b64fdaeb5abfcbe06fbd09cd) ) - ROM_LOAD16_BYTE( "136087-a008.200u", 0x060000, 0x010000, CRC(8a118c41) SHA1(4312cd09b2ce3ad181f07c564962640b2431b913) ) - ROM_LOAD16_BYTE( "136087-a007.210u", 0x060001, 0x010000, CRC(f343ae79) SHA1(63cf2e76de9ca12d916cafed7d7030965756b0b6) ) - ROM_LOAD16_BYTE( "136087-1010.200v", 0x080000, 0x010000, CRC(7eff9f8b) SHA1(7e6ee7dec75bc9224834d35c0b9a7c5d8bd897bc) ) - ROM_LOAD16_BYTE( "136087-1009.210v", 0x080001, 0x010000, CRC(53e9fe94) SHA1(bf05ce2f8d97e7be96c99814d280289ffad1621a) ) - ROM_LOAD16_BYTE( "136087-1012.200w", 0x0a0000, 0x010000, CRC(d39e8cef) SHA1(ba6aa8b70c30d6db70cfcf51dfe450dcfde0f3e4) ) - ROM_LOAD16_BYTE( "136087-1011.210w", 0x0a0001, 0x010000, CRC(b388bf91) SHA1(3e6a17e4462023f59f6581b09c716e6c51e7ae8e) ) - ROM_LOAD16_BYTE( "136087-1014.200x", 0x0c0000, 0x010000, CRC(9f047de7) SHA1(58c4f062d8eef9e2d0143a9b77b066fc3bb5dc29) ) - ROM_LOAD16_BYTE( "136087-1013.210x", 0x0c0001, 0x010000, CRC(f6b99901) SHA1(5c162a6d945c312e49e0a1e04285c597dde4ef94) ) - ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) ) - ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) ) - - ROM_REGION( 0x14000, REGION_CPU5, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION( 0x10000, REGION_CPU6, 0 ) /* 64k for ASIC65 */ - ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) - - ROM_REGION( 0x10000, REGION_CPU7, 0 ) /* 64k for DSP communications */ - ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) - - ROM_REGION16_BE( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) ) - ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 1MB for ADPCM samples */ - ROM_LOAD( "136087-5002.1m", 0x080000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) - ROM_LOAD( "136087-5003.1n", 0x0a0000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) - ROM_LOAD( "136087-5004.1p", 0x0c0000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) - ROM_LOAD( "136087-5005.1r", 0x0e0000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) -ROM_END - - -ROM_START( steeltap ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1MB for 68000 code */ - ROM_LOAD16_BYTE( "rom-200r.bin", 0x00000, 0x10000, CRC(72a9ce3b) SHA1(6706ff32173735d16d9da1321b64a4a9bb317b2e) ) - ROM_LOAD16_BYTE( "rom-210r.bin", 0x00001, 0x10000, CRC(46d83b42) SHA1(85b178781f0595b5af0375fee32d0dd8cdba8fca) ) - ROM_LOAD16_BYTE( "rom-200s.bin", 0x20000, 0x10000, CRC(bf1b31ae) SHA1(f2d7f13854b8a3dd4de9ae98cc3034dfcf3846b8) ) - ROM_LOAD16_BYTE( "rom-210s.bin", 0x20001, 0x10000, CRC(eaf46672) SHA1(51a99811b7729a8105dd5f3c608015626b01d195) ) - ROM_LOAD16_BYTE( "rom-200t.bin", 0x40000, 0x10000, CRC(3dfe9a3e) SHA1(df303072821bae42d9169723e277a8bfafaae771) ) - ROM_LOAD16_BYTE( "rom-210t.bin", 0x40001, 0x10000, CRC(3c4e8521) SHA1(5061ae2e6b6fa7c444501418c51fdab5310bf702) ) - ROM_LOAD16_BYTE( "rom-200u.bin", 0x60000, 0x10000, CRC(7a52a980) SHA1(2e5ab7e6c59de965242686e714e9800d7b8c42fe) ) - ROM_LOAD16_BYTE( "rom-210u.bin", 0x60001, 0x10000, CRC(6c20e861) SHA1(9996809c16f249d276176030671e141f4e2bbcda) ) - ROM_LOAD16_BYTE( "rom-200v.bin", 0x80000, 0x10000, CRC(137df911) SHA1(a7c38469ab1a00bb100fdb5a2ddbeb1a37819dc7) ) - ROM_LOAD16_BYTE( "rom-210v.bin", 0x80001, 0x10000, CRC(2dd87840) SHA1(96a61f65fb1c28b34a625339bb8891e356ea9693) ) - ROM_LOAD16_BYTE( "rom-200w.bin", 0xa0000, 0x10000, CRC(0bbe5f80) SHA1(866a874833106675e97a16151a97ea2bc590fc78) ) - ROM_LOAD16_BYTE( "rom-210w.bin", 0xa0001, 0x10000, CRC(31dc9321) SHA1(e1d459b209af8106fa404803490055eac16f1c0f) ) - ROM_LOAD16_BYTE( "rom-200x.bin", 0xc0000, 0x10000, CRC(b494ba85) SHA1(f24925fcdbd67e54e1c071cd05e7ad40e1240b49) ) - ROM_LOAD16_BYTE( "rom-210x.bin", 0xc0001, 0x10000, CRC(63765dc6) SHA1(74b76e4e1f0ed4c237193e77c92450932cfd68fd) ) - ROM_LOAD16_BYTE( "rom-200y.bin", 0xe0000, 0x10000, CRC(b568e1be) SHA1(5d62037892e040515e4262db43057f33436fa12d) ) - ROM_LOAD16_BYTE( "rom-210y.bin", 0xe0001, 0x10000, CRC(3f5cdd3e) SHA1(c33c155158a5c69a7f2e61cd88b297dc14ecd479) ) - - ROM_REGION( 0x14000, REGION_CPU5, 0 ) /* 64k for 6502 code */ - ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) ) - ROM_CONTINUE( 0x004000, 0x00c000 ) - - ROM_REGION( 0x10000, REGION_CPU6, 0 ) /* 64k for ASIC65 */ - ROM_LOAD( "136087-9007.10c", 0x000000, 0x002000, CRC(2956984f) SHA1(63c9a99b00c3cbb63aca908b076c2c4d3f70f386) ) - - ROM_REGION( 0x10000, REGION_CPU7, 0 ) /* 64k for DSP communications */ - ROM_LOAD( "136087-1025.5f", 0x000000, 0x010000, CRC(4c645933) SHA1(7a1cf049e368059a79b03598de73c30d8dae5e90) ) - - ROM_REGION16_BE( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "rom.2t", 0x00000, 0x20000, CRC(05284504) SHA1(03b81c077f8ff073713f4bcc10b82087743b0d84) ) - ROM_LOAD16_BYTE( "rom.2lm", 0x00001, 0x20000, CRC(d6e65b87) SHA1(ac4b2f292f6e28a15e3a12f09f6c2f9523e8b178) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* 1MB for ADPCM samples */ - ROM_LOAD( "136087-5002.1m", 0x080000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) ) - ROM_LOAD( "136087-5003.1n", 0x0a0000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) ) - ROM_LOAD( "136087-5004.1p", 0x0c0000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) ) - ROM_LOAD( "136087-5005.1r", 0x0e0000, 0x020000, CRC(c029d037) SHA1(0ae736c0ca3a1974911464328dd5a6b41a939130) ) -ROM_END - - -ROM_START( strtdriv ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 2MB for 68000 code */ - ROM_LOAD16_BYTE( "136091-0002.200r", 0x000000, 0x010000, CRC(d28f2629) SHA1(266b4a80fd366fec2329ed2cec7fb570cef34291) ) - ROM_LOAD16_BYTE( "136091-0001.210r", 0x000001, 0x010000, CRC(443428d1) SHA1(d93fd21a2c9d1e24c599867a110c1031d72e81b7) ) - ROM_LOAD16_BYTE( "136091-0004.200s", 0x020000, 0x010000, CRC(379b9d18) SHA1(8cd903cc4e970cc45d7ef431233730b53dabeb1d) ) - ROM_LOAD16_BYTE( "136091-0003.210s", 0x020001, 0x010000, CRC(0527afad) SHA1(0459a13ba10ca870c31e1446a966f2f046ea98c6) ) - ROM_LOAD16_BYTE( "136091-0006.200t", 0x040000, 0x010000, CRC(4c5be776) SHA1(b8d27223b794d8114d59d52328194ec4605d89a2) ) - ROM_LOAD16_BYTE( "136091-0005.210t", 0x040001, 0x010000, CRC(b6a654f6) SHA1(0b9809fa49af75e20041f6c1d955c77d66b28c29) ) - ROM_LOAD16_BYTE( "136091-0008.200u", 0x060000, 0x010000, CRC(9c6cd630) SHA1(91bbf9ecfa36288b2d783a5f5c5da97db16e5548) ) - ROM_LOAD16_BYTE( "136091-0007.210u", 0x060001, 0x010000, CRC(2ca4f975) SHA1(01b7784e3568dc18641f789add523f46750b606e) ) - ROM_LOAD16_BYTE( "136091-0010.200v", 0x080000, 0x010000, CRC(f9889ce4) SHA1(071abc6c40a5ac1e9488a3ff7ea445f4b05f6e66) ) - ROM_LOAD16_BYTE( "136091-0009.210v", 0x080001, 0x010000, CRC(602a7b9c) SHA1(6d43849d89bf4063f3af1e44dfbb6091241e871c) ) - ROM_LOAD16_BYTE( "136091-0012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) ) - ROM_LOAD16_BYTE( "136091-0011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) ) - ROM_LOAD16_BYTE( "136091-0014.200x", 0x0c0000, 0x010000, CRC(5b721420) SHA1(cba03943d56eb1d747e48fbe2856c64d2129be3b) ) - ROM_LOAD16_BYTE( "136091-0013.210x", 0x0c0001, 0x010000, CRC(c503b019) SHA1(e35779c0792bb2258dd0830c00a7d2722a0b115e) ) - ROM_LOAD16_BYTE( "136091-0016.200y", 0x0e0000, 0x010000, CRC(f85ad532) SHA1(f9d2480104a7487c23d33b05aa044b7f4ca08c67) ) - ROM_LOAD16_BYTE( "136091-0015.210y", 0x0e0001, 0x010000, CRC(a2e406f3) SHA1(a7266508011c892cb1032fa4d77ccbafedc844e8) ) - - ROM_REGION( 0x10000 + 0x10000, REGION_CPU5, 0 ) /* dummy region for ADSP 2105 */ - ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) ) - - ROM_REGION( 0x60000, REGION_USER1, 0 ) /* 384k for object ROM */ - ROM_LOAD16_BYTE( "136091-0017.2lm", 0x00000, 0x10000, CRC(b0454074) SHA1(9530ea1ef215116da1f0843776fa7a6b4637049d) ) - ROM_LOAD16_BYTE( "136091-0018.2t", 0x00001, 0x10000, CRC(ef432aa8) SHA1(56bce13c111db7874c9b669d479f6ef47976ee14) ) - ROM_LOAD16_BYTE( "136091-0019.2k", 0x20000, 0x10000, CRC(5bb00676) SHA1(cad1cea8e43f9590fc71c00fab4eff0d447f9296) ) - ROM_LOAD16_BYTE( "136091-0020.2r", 0x20001, 0x10000, CRC(311cef99) SHA1(9c466aabad7e80581e477253ec6f2fd245f9b9fd) ) - ROM_LOAD16_BYTE( "136091-0021.2j", 0x40000, 0x10000, CRC(14f2caae) SHA1(ff40dbced58dc910a2b5825b846a5e52933cb8fc) ) - ROM_LOAD16_BYTE( "136091-0022.2p", 0x40001, 0x10000, CRC(bc4dd071) SHA1(ca182451a0a18d343dce1be56090d51950d43906) ) - - ROM_REGION16_BE( 0x51000, REGION_USER3, 0 ) /* 256k for DSK ROMs + 64k for RAM + 4k for ZRAM */ - ROM_LOAD16_BYTE( "136091-0026.30e", 0x000000, 0x020000, CRC(47705109) SHA1(fa40275b71b74be8591282d2fba4215b98fc29c9) ) - ROM_LOAD16_BYTE( "136091-0025.10e", 0x000001, 0x020000, CRC(ead9254e) SHA1(92152d3ca77b542b3bb3398ccf414df28c95abfd) ) - - ROM_REGION16_BE( 0x100000, REGION_USER5, 0 ) - /* DS III sound section (2 x ADSP2105)*/ - ROM_LOAD( "136091-0033.10j", 0x000000, 0x010000, CRC(57504ab6) SHA1(ec8361b7da964c07ca0da48a87537badc3986fe0) ) - ROM_LOAD( "136052-1123.12lm", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) ) - ROM_LOAD( "136052-1124.12k", 0x000000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) ) - ROM_LOAD( "136052-3125.12j", 0x000000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) ) - ROM_LOAD( "136052-1126.12h", 0x000000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) ) - ROM_LOAD( "136077-1017.12t", 0x000000, 0x010000, CRC(e93129a3) SHA1(1221b08c8efbfd8cf6bfbfd956545f10bef48663) ) -ROM_END - - -ROM_START( hdrivair ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 2MB for 68000 code */ - ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) ) - ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) ) - ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) ) - ROM_LOAD16_BYTE( "drivelo.bin", 0x040001, 0x20000, CRC(34adf4af) SHA1(db93fe1388d092916e1db526ea0fe72b35bf5ec0) ) - ROM_LOAD16_BYTE( "wavehi.bin", 0x0c0000, 0x20000, CRC(b21a34b6) SHA1(4309774e482cb97a074884e84358618512dc4f77) ) - ROM_LOAD16_BYTE( "wavelo.bin", 0x0c0001, 0x20000, CRC(15ed4394) SHA1(8c0ae74b2adce312c41bea95dc3b4f55bc3f8b6d) ) - ROM_LOAD16_BYTE( "ms2pics.hi", 0x140000, 0x20000, CRC(bca0af7e) SHA1(f25cfdc8f8fa77bcca2723335f76ba8a7d790eec) ) - ROM_LOAD16_BYTE( "ms2pics.lo", 0x140001, 0x20000, CRC(c3c6be8c) SHA1(66f0a54979bd83a940f226a8b3a9cf2eb3eaa908) ) - ROM_LOAD16_BYTE( "univhi.bin", 0x180000, 0x20000, CRC(86351673) SHA1(34170dd48aa77fe93f0c890a4878f3d370dae9b1) ) - ROM_LOAD16_BYTE( "univlo.bin", 0x180001, 0x20000, CRC(22d3b699) SHA1(e7d3e2107f17579549d09b1bb58fbab647343a61) ) - ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) ) - ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) ) - - ROM_REGION( 0x10000 + 0x10000, REGION_CPU4, 0 ) /* dummy region for ADSP 2105 */ - ROM_LOAD( "sboot.bin", 0x10000 + 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) ) - - ROM_REGION( 0x10000 + 0x10000, REGION_CPU5, 0 ) /* dummy region for ADSP 2105 */ - ROM_LOAD( "xboot.bin", 0x10000 + 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) ) - - ROM_REGION( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "obj0l.bin", 0x00000, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) ) - ROM_LOAD16_BYTE( "obj0h.bin", 0x00001, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) ) - ROM_LOAD16_BYTE( "obj1l.bin", 0x40000, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) ) - ROM_LOAD16_BYTE( "obj1h.bin", 0x40001, 0x20000, CRC(2c06b708) SHA1(daa16f727f2f500172f88b69d6931aa0fa13641b) ) - ROM_LOAD16_BYTE( "obj2l.bin", 0x80000, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) ) - ROM_LOAD16_BYTE( "obj2h.bin", 0x80001, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) ) - - ROM_REGION16_BE( 0x140000, REGION_USER3, 0 )/* 1MB for DSK ROMs + 256k for RAM */ - ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) ) - ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) ) - - ROM_REGION32_LE( 0x200000, REGION_USER4, 0 )/* 2MB for ASIC61 ROMs */ - ROM_LOAD32_BYTE( "roads0.bin", 0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) ) - ROM_LOAD32_BYTE( "roads1.bin", 0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) ) - ROM_LOAD32_BYTE( "roads2.bin", 0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) ) - ROM_LOAD32_BYTE( "roads3.bin", 0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) ) - - ROM_REGION16_BE( 0x100000, REGION_USER5, 0 ) - /* DS IV sound section (2 x ADSP2105)*/ - ROM_LOAD16_BYTE( "ds3rom0.bin", 0x00001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) ) - ROM_LOAD16_BYTE( "ds3rom1.bin", 0x00000, 0x80000, CRC(58173812) SHA1(b7e9f724011a362e1fc17aa7a7a95841e01d5430) ) - ROM_LOAD16_BYTE( "ds3rom2.bin", 0x00001, 0x80000, CRC(5a4b18fa) SHA1(1e9193c1daf14fc0aeca6fab762f5753ec73435f) ) - ROM_LOAD16_BYTE( "ds3rom3.bin", 0x00000, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) ) - ROM_LOAD16_BYTE( "ds3rom4.bin", 0x00001, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) ) - ROM_LOAD16_BYTE( "ds3rom5.bin", 0x00000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) ) - ROM_LOAD16_BYTE( "ds3rom6.bin", 0x00001, 0x80000, CRC(ce7edbae) SHA1(58e9d8379157bb69e323eb79332d644a32c70a6f) ) - ROM_LOAD16_BYTE( "ds3rom7.bin", 0x00000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) ) -ROM_END - - -ROM_START( hdrivaip ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 2MB for 68000 code */ - ROM_LOAD16_BYTE( "stest.0h", 0x000000, 0x20000, CRC(bf4bb6a0) SHA1(e38ec5ce245f98bfe8084ba684bffc85dc19d3be) ) - ROM_LOAD16_BYTE( "stest.0l", 0x000001, 0x20000, CRC(f462b511) SHA1(d88efb8cc30322a8332a1f50de775a204758e176) ) - ROM_LOAD16_BYTE( "drive.hi", 0x040000, 0x20000, CRC(56571590) SHA1(d0362b8bd438cd7dfa9ff7cf71307f44c2cfe843) ) - ROM_LOAD16_BYTE( "drive.lo", 0x040001, 0x20000, CRC(799e3138) SHA1(d4b96d8391ff3cf0ea24dfcd8930dd06bfa9d6ce) ) - ROM_LOAD16_BYTE( "wave1.hi", 0x0c0000, 0x20000, CRC(63872d12) SHA1(b56d0c40a7a3c4e4bd17eaf5603c528d17de424f) ) - ROM_LOAD16_BYTE( "wave1.lo", 0x0c0001, 0x20000, CRC(1a472475) SHA1(acfc1b3ce03bd8ce268f00ab76ace6134ad359c3) ) - ROM_LOAD16_BYTE( "ms2pics.hi", 0x140000, 0x20000, CRC(bca0af7e) SHA1(f25cfdc8f8fa77bcca2723335f76ba8a7d790eec) ) - ROM_LOAD16_BYTE( "ms2pics.lo", 0x140001, 0x20000, CRC(c3c6be8c) SHA1(66f0a54979bd83a940f226a8b3a9cf2eb3eaa908) ) - ROM_LOAD16_BYTE( "ms2univ.hi", 0x180000, 0x20000, CRC(59c91b15) SHA1(f35239efebe914e0745a77b6ecfe2d518a90aa9d) ) - ROM_LOAD16_BYTE( "ms2univ.lo", 0x180001, 0x20000, CRC(7493bf60) SHA1(35868c74e9aac6b16a18b67d0136183ea8a8232f) ) - ROM_LOAD16_BYTE( "ms2cproc.0h", 0x1c0000, 0x20000, CRC(19024f2d) SHA1(a94e8836cdc147cea5816b99b8a1ad5ff669d984) ) - ROM_LOAD16_BYTE( "ms2cproc.0l", 0x1c0001, 0x20000, CRC(1e48bd46) SHA1(1a903d889f48604bd8d2d9a0bda4ee20e7ad968b) ) - - ROM_REGION( 0x10000 + 0x10000, REGION_CPU4, 0 ) /* dummy region for ADSP 2105 */ - ROM_LOAD( "sboota.bin", 0x10000 + 0x00000, 0x10000, CRC(3ef819cd) SHA1(c547b869a3a37a82fb46584fe0ef0cfe21a4f882) ) - - ROM_REGION( 0x10000 + 0x10000, REGION_CPU5, 0 ) /* dummy region for ADSP 2105 */ - ROM_LOAD( "xboota.bin", 0x10000 + 0x00000, 0x10000, CRC(d9c49901) SHA1(9f90ae3a47eb1ef00c3ec3661f60402c2eae2108) ) - - ROM_REGION( 0xc0000, REGION_USER1, 0 ) /* 768k for object ROM */ - ROM_LOAD16_BYTE( "objects.0l", 0x00000, 0x20000, CRC(3c9e9078) SHA1(f1daf32117236401f3cb97f332708632003e55f8) ) - ROM_LOAD16_BYTE( "objects.0h", 0x00001, 0x20000, CRC(4480dbae) SHA1(6a455173c38e80093f58bdc322cffcf25e70b6ae) ) - ROM_LOAD16_BYTE( "objects.1l", 0x40000, 0x20000, CRC(700bd978) SHA1(5cd63d4eee00d90fe29fb9697b6a0ea6b86704ae) ) - ROM_LOAD16_BYTE( "objects.1h", 0x40001, 0x20000, CRC(f613adaf) SHA1(9b9456e144a48fb73c5e084b33345667eed4905e) ) - ROM_LOAD16_BYTE( "objects.2l", 0x80000, 0x20000, CRC(e3b512f0) SHA1(080c5a21cb76edcb55d1c2488e9d91cf29cb0665) ) - ROM_LOAD16_BYTE( "objects.2h", 0x80001, 0x20000, CRC(3f83742b) SHA1(4b6e0134a806bcc9bd56432737047f86d0a16424) ) - - ROM_REGION16_BE( 0x140000, REGION_USER3, 0 )/* 1MB for DSK ROMs + 256k for RAM */ - ROM_LOAD16_BYTE( "dskpics.hi", 0x00000, 0x80000, CRC(eaa88101) SHA1(ed0ebf8a9a9514d810242b9b552126f6717f9e25) ) - ROM_LOAD16_BYTE( "dskpics.lo", 0x00001, 0x80000, CRC(8c6f0750) SHA1(4cb23cedc500c1509dc875c3291a5771c8473f73) ) - - ROM_REGION32_LE( 0x200000, REGION_USER4, 0 )/* 2MB for ASIC61 ROMs */ - ROM_LOAD16_BYTE( "roads.0", 0x000000, 0x80000, CRC(cab2e335) SHA1(914996c5b7905f1c20fcda6972af88debbee59cd) ) - ROM_LOAD16_BYTE( "roads.1", 0x000001, 0x80000, CRC(62c244ba) SHA1(f041a269f35a9d187c90241c5b64173663ad5268) ) - ROM_LOAD16_BYTE( "roads.2", 0x000002, 0x80000, CRC(ba57f415) SHA1(1daf5a014e9bef15466b282bcca2395fec2b0628) ) - ROM_LOAD16_BYTE( "roads.3", 0x000003, 0x80000, CRC(1e6a4ca0) SHA1(2cf06d6c73be11cf10515246fca2baa05ce5091b) ) - - ROM_REGION16_BE( 0x100000, REGION_USER5, 0 ) - /* DS IV sound section (2 x ADSP2105)*/ - ROM_LOAD16_BYTE( "ds3rom.0", 0x00001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) ) - ROM_LOAD16_BYTE( "ds3rom.1", 0x00000, 0x80000, CRC(03673d8d) SHA1(13596f7acb58fba78d6e4f2ac7bb21d9d2589668) ) - ROM_LOAD16_BYTE( "ds3rom.2", 0x00001, 0x80000, CRC(f67754e9) SHA1(3548412ccdfa9b482942c78778f05d67eb7835ea) ) - ROM_LOAD16_BYTE( "ds3rom.3", 0x00000, 0x80000, CRC(008d3578) SHA1(c9ff50b931c25fe86bde3eb0aae2350c29766438) ) - ROM_LOAD16_BYTE( "ds3rom.4", 0x00001, 0x80000, CRC(6281efee) SHA1(47d0f3ff973166d818877996c45dccf1d3a85fe1) ) - ROM_LOAD16_BYTE( "ds3rom.5", 0x00000, 0x80000, CRC(6ef9ed90) SHA1(8bd927a56fe99f7db96d203c1daeb8c8c83f2c17) ) - ROM_LOAD16_BYTE( "ds3rom.6", 0x00001, 0x80000, CRC(cd4cd6bc) SHA1(95689ab7cb18af54ff09aebf223f6346f13dfd7b) ) - ROM_LOAD16_BYTE( "ds3rom.7", 0x00000, 0x80000, CRC(3d695e1f) SHA1(4e5dd009ed11d299c546451141920dc1dc74a529) ) -ROM_END - - - -/************************************* - * - * Common initialization - * - *************************************/ - -/* COMMON INIT: find all the CPUs */ -static void find_cpus(void) -{ - hdcpu_main = mame_find_cpu_index(Machine, "main"); - hdcpu_gsp = mame_find_cpu_index(Machine, "gsp"); - hdcpu_msp = mame_find_cpu_index(Machine, "msp"); - hdcpu_adsp = mame_find_cpu_index(Machine, "adsp"); - hdcpu_sound = mame_find_cpu_index(Machine, "sound"); - hdcpu_sounddsp = mame_find_cpu_index(Machine, "sounddsp"); - hdcpu_jsa = mame_find_cpu_index(Machine, "jsa"); - hdcpu_dsp32 = mame_find_cpu_index(Machine, "dsp32"); -} - - -static const UINT16 default_eeprom[] = -{ - 1, - 0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00, - 0x0800,0 -}; - - -/* COMMON INIT: initialize the original "driver" main board */ -static void init_driver(void) -{ - /* assume we're first to be called */ - find_cpus(); - - /* note that we're not multisync and set the default EEPROM data */ - hdgsp_multisync = 0; - atarigen_eeprom_default = default_eeprom; -} - - -/* COMMON INIT: initialize the later "multisync" main board */ -static void init_multisync(int compact_inputs) -{ - /* assume we're first to be called */ - find_cpus(); - - /* note that we're multisync and set the default EEPROM data */ - hdgsp_multisync = 1; - atarigen_eeprom_default = default_eeprom; - - /* install handlers for the compact driving games' inputs */ - if (compact_inputs) - { - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400001, 0, 0, hdc68k_wheel_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x408000, 0x408001, 0, 0, hdc68k_wheel_edge_reset_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xa80000, 0xafffff, 0, 0, hdc68k_port1_r); - } -} - - -/* COMMON INIT: initialize the ADSP/ADSP2 board */ -static void init_adsp(void) -{ - /* install ADSP program RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x800000, 0x807fff, 0, 0, hd68k_adsp_program_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x800000, 0x807fff, 0, 0, hd68k_adsp_program_w); - - /* install ADSP data RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x808000, 0x80bfff, 0, 0, hd68k_adsp_data_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x808000, 0x80bfff, 0, 0, hd68k_adsp_data_w); - - /* install ADSP serial buffer RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x810000, 0x813fff, 0, 0, hd68k_adsp_buffer_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x810000, 0x813fff, 0, 0, hd68k_adsp_buffer_w); - - /* install ADSP control locations */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x818000, 0x81801f, 0, 0, hd68k_adsp_control_w); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x818060, 0x81807f, 0, 0, hd68k_adsp_irq_clear_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x838000, 0x83ffff, 0, 0, hd68k_adsp_irq_state_r); -} - - -/* COMMON INIT: initialize the DS3 board */ -static void init_ds3(void) -{ - /* install ADSP program RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x800000, 0x807fff, 0, 0, hd68k_ds3_program_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x800000, 0x807fff, 0, 0, hd68k_ds3_program_w); - - /* install ADSP data RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x808000, 0x80bfff, 0, 0, hd68k_adsp_data_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x808000, 0x80bfff, 0, 0, hd68k_adsp_data_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x80c000, 0x80dfff, 0, 0, hdds3_special_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x80c000, 0x80dfff, 0, 0, hdds3_special_w); - - /* install ADSP control locations */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x820000, 0x8207ff, 0, 0, hd68k_ds3_gdata_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x820800, 0x820fff, 0, 0, hd68k_ds3_girq_state_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x820000, 0x8207ff, 0, 0, hd68k_ds3_gdata_w); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x821000, 0x8217ff, 0, 0, hd68k_adsp_irq_clear_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x822000, 0x8227ff, 0, 0, hd68k_ds3_sdata_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x822800, 0x822fff, 0, 0, hd68k_ds3_sirq_state_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x822000, 0x8227ff, 0, 0, hd68k_ds3_sdata_w); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x823800, 0x823fff, 0, 0, hd68k_ds3_control_w); - - /* if we have a sound DSP, boot it */ - if (hdcpu_sound != -1 && Machine->drv->cpu[hdcpu_sound].cpu_type == CPU_ADSP2105) - adsp2105_load_boot_data((UINT8 *)(memory_region(REGION_CPU1 + hdcpu_sound) + 0x10000), - (UINT32 *)(memory_region(REGION_CPU1 + hdcpu_sound))); - if (hdcpu_sounddsp != -1 && Machine->drv->cpu[hdcpu_sounddsp].cpu_type == CPU_ADSP2105) - adsp2105_load_boot_data((UINT8 *)(memory_region(REGION_CPU1 + hdcpu_sounddsp) + 0x10000), - (UINT32 *)(memory_region(REGION_CPU1 + hdcpu_sounddsp))); - -/* - - -/PMEM = RVASB & EXTB & /AB20 & /AB19 & /AB18 & /AB17 & /AB16 & /AB15 - = 0 0000 0xxx xxxx xxxx xxxx (read/write) - = 0x000000-0x007fff - -/DMEM = RVASB & EXTB & /AB20 & /AB19 & /AB18 & /AB17 & /AB16 & AB15 - = 0 0000 1xxx xxxx xxxx xxxx (read/write) - = 0x008000-0x00ffff - -/G68WR = RVASB & EXTB & EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & /AB13 & /AB12 & /AB11 - = 0 0010 0000 0xxx xxxx xxxx (write) - = 0x020000-0x0207ff - -/G68RD0 = RVASB & EXTB & /EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & /AB13 & /AB12 & /AB11 - = 0 0010 0000 0xxx xxxx xxxx (read) - = 0x020000-0x0207ff - -/G68RD1 = RVASB & EXTB & /EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & /AB13 & /AB12 & AB11 - = 0 0010 0000 1xxx xxxx xxxx (read) - = 0x020800-0x020fff - -/GCGINT = RVASB & EXTB & EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & /AB13 & AB12 & /AB11 - = 0 0010 0001 0xxx xxxx xxxx (write) - = 0x021000-0x0217ff - -/S68WR = RVASB & EXTB & EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & /AB12 & /AB11 - = 0 0010 0010 0xxx xxxx xxxx (write) - = 0x022000-0x0227ff - -/S68RD0 = RVASB & EXTB & /EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & /AB12 & /AB11 - = 0 0010 0010 0xxx xxxx xxxx (read) - = 0x022000-0x0227ff - -/S68RD1 = RVASB & EXTB & /EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & /AB12 & AB11 - = 0 0010 0010 1xxx xxxx xxxx (read) - = 0x022800-0x022fff - -/SCGINT = RVASB & EXTB & EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & AB12 & /AB11 - = 0 0010 0011 0xxx xxxx xxxx (write) - = 0x023000-0x0237ff - -/LATCH = RVASB & EXTB & EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & AB12 & AB11 - = 0 0010 0011 1xxx xxxx xxxx (write) - = 0x023800-0x023fff - - - - -/SBUFF = EXTB & /EWRB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & /AB12 - | EXTB & /AB20 & /AB19 & /AB18 & AB17 & /AB16 & /AB15 & /AB14 & AB13 & /AB12 & /AB11 - = 0 0010 0010 xxxx xxxx xxxx (read) - | 0 0010 0010 0xxx xxxx xxxx (read/write) - -/GBUFF = EXTB & /AB20 & /AB19 & /AB18 & /AB17 & /AB16 - | EXTB & /EWRB & /AB20 & /AB19 & /AB18 & /AB16 & /AB15 & /AB14 & /AB13 & /AB11 - | EXTB & /AB20 & /AB19 & /AB18 & /AB16 & /AB15 & /AB14 & /AB13 & /AB12 & /AB11 - = 0 0000 xxxx xxxx xxxx xxxx (read/write) - | 0 00x0 000x 0xxx xxxx xxxx (read) - | 0 00x0 0000 0xxx xxxx xxxx (read/write) - -/GBUFF2 = EXTB & /AB20 & /AB19 & /AB18 & /AB17 & /AB16 - = 0 0000 xxxx xxxx xxxx xxxx (read/write) - -*/ -} - - -/* COMMON INIT: initialize the DSK add-on board */ -static void init_dsk(void) -{ - /* install ASIC61 */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x85c000, 0x85c7ff, 0, 0, hd68k_dsk_dsp32_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x85c000, 0x85c7ff, 0, 0, hd68k_dsk_dsp32_r); - - /* install control registers */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x85c800, 0x85c81f, 0, 0, hd68k_dsk_control_w); - - /* install extra RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x900000, 0x90ffff, 0, 0, hd68k_dsk_ram_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x900000, 0x90ffff, 0, 0, hd68k_dsk_ram_w); - hddsk_ram = (UINT16 *)(memory_region(REGION_USER3) + 0x40000); - - /* install extra ZRAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x910000, 0x910fff, 0, 0, hd68k_dsk_zram_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x910000, 0x910fff, 0, 0, hd68k_dsk_zram_w); - hddsk_zram = (UINT16 *)(memory_region(REGION_USER3) + 0x50000); - - /* install ASIC65 */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x914000, 0x917fff, 0, 0, asic65_data_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x914000, 0x917fff, 0, 0, asic65_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x918000, 0x91bfff, 0, 0, asic65_io_r); - - /* install extra ROM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x940000, 0x9fffff, 0, 0, hd68k_dsk_small_rom_r); - hddsk_rom = (UINT16 *)(memory_region(REGION_USER3) + 0x00000); - - /* set up the ASIC65 */ - asic65_config(ASIC65_STANDARD); -} - - -/* COMMON INIT: initialize the DSK II add-on board */ -static void init_dsk2(void) -{ - /* install ASIC65 */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x824000, 0x824003, 0, 0, asic65_data_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x824000, 0x824003, 0, 0, asic65_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x825000, 0x825001, 0, 0, asic65_io_r); - - /* install ASIC61 */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x827000, 0x8277ff, 0, 0, hd68k_dsk_dsp32_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x827000, 0x8277ff, 0, 0, hd68k_dsk_dsp32_r); - - /* install control registers */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x827800, 0x82781f, 0, 0, hd68k_dsk_control_w); - - /* install extra RAM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x880000, 0x8bffff, 0, 0, hd68k_dsk_ram_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x880000, 0x8bffff, 0, 0, hd68k_dsk_ram_w); - hddsk_ram = (UINT16 *)(memory_region(REGION_USER3) + 0x100000); - - /* install extra ROM */ - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x900000, 0x9fffff, 0, 0, hd68k_dsk_rom_r); - hddsk_rom = (UINT16 *)(memory_region(REGION_USER3) + 0x000000); - - /* set up the ASIC65 */ - asic65_config(ASIC65_STANDARD); -} - - -/* COMMON INIT: initialize the DSPCOM add-on board */ -static void init_dspcom(void) -{ - /* install ASIC65 */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x900000, 0x900003, 0, 0, asic65_data_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x900000, 0x900003, 0, 0, asic65_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x901000, 0x910001, 0, 0, asic65_io_r); - - /* set up the ASIC65 */ - asic65_config(ASIC65_STEELTAL); - - /* install DSPCOM control */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x904000, 0x90401f, 0, 0, hddspcom_control_w); -} - - -/* COMMON INIT: initialize the original "driver" sound board */ -static void init_driver_sound(void) -{ - hdsnd_init(); - - /* install sound handlers */ - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x840000, 0x840001, 0, 0, hd68k_snd_data_w); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x840000, 0x840001, 0, 0, hd68k_snd_data_r); - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x844000, 0x844001, 0, 0, hd68k_snd_status_r); - memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x84c000, 0x84c001, 0, 0, hd68k_snd_reset_w); -} - - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static DRIVER_INIT( harddriv ) -{ - /* initialize the boards */ - init_driver(); - init_adsp(); - init_driver_sound(); - - /* set up gsp speedup handler */ - hdgsp_speedup_addr[0] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup1_w); - hdgsp_speedup_addr[1] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfffcfc00, 0xfffcfc0f, 0, 0, hdgsp_speedup2_w); - memory_install_read16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup_r); - hdgsp_speedup_pc = 0xffc00f10; - - /* set up msp speedup handler */ - hdmsp_speedup_addr = memory_install_write16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x00751b00, 0x00751b0f, 0, 0, hdmsp_speedup_w); - memory_install_read16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x00751b00, 0x00751b0f, 0, 0, hdmsp_speedup_r); - hdmsp_speedup_pc = 0x00723b00; - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); -} - - -static DRIVER_INIT( harddrvc ) -{ - /* initialize the boards */ - init_multisync(1); - init_adsp(); - init_driver_sound(); - - /* set up gsp speedup handler */ - hdgsp_speedup_addr[0] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup1_w); - hdgsp_speedup_addr[1] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfffcfc00, 0xfffcfc0f, 0, 0, hdgsp_speedup2_w); - memory_install_read16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup_r); - hdgsp_speedup_pc = 0xfff40ff0; - - /* set up msp speedup handler */ - hdmsp_speedup_addr = memory_install_write16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x00751b00, 0x00751b0f, 0, 0, hdmsp_speedup_w); - memory_install_read16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x00751b00, 0x00751b0f, 0, 0, hdmsp_speedup_r); - hdmsp_speedup_pc = 0x00723b00; - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); -} - - -static DRIVER_INIT( stunrun ) -{ - /* initialize the boards */ - init_multisync(0); - init_adsp(); - atarijsa_init(hdcpu_jsa, 14, 0, 0x0020); - - /* set up gsp speedup handler */ - hdgsp_speedup_addr[0] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup1_w); - hdgsp_speedup_addr[1] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfffcfc00, 0xfffcfc0f, 0, 0, hdgsp_speedup2_w); - memory_install_read16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff9fc00, 0xfff9fc0f, 0, 0, hdgsp_speedup_r); - hdgsp_speedup_pc = 0xfff41070; - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); -} - - -UINT32 *rddsp32_speedup; -offs_t rddsp32_speedup_pc; -READ32_HANDLER( rddsp32_speedup_r ) -{ - if (activecpu_get_pc() == rddsp32_speedup_pc && (*rddsp32_speedup >> 16) == 0) - { - UINT32 r14 = activecpu_get_reg(DSP32_R14); - UINT32 r1 = program_read_word(r14 - 0x14); - int cycles_to_burn = 17 * 4 * (0x2bc - r1 - 2); - if (cycles_to_burn > 20 * 4) - { - int icount_remaining = activecpu_get_icount(); - if (cycles_to_burn > icount_remaining) - cycles_to_burn = icount_remaining; - activecpu_adjust_icount(-cycles_to_burn); - program_write_word(r14 - 0x14, r1 + cycles_to_burn / 17); - } - msp_speedup_count[0]++; - } - return *rddsp32_speedup; -} - - -static DRIVER_INIT( racedriv ) -{ - /* initialize the boards */ - init_driver(); - init_adsp(); - init_dsk(); - init_driver_sound(); - - /* set up the slapstic */ - slapstic_init(117); - hd68k_slapstic_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_r); - hd68k_slapstic_base = memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_w); - - /* synchronization */ - rddsp32_sync[0] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613c00, 0x613c03, 0, 0, rddsp32_sync0_w); - rddsp32_sync[1] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613e00, 0x613e03, 0, 0, rddsp32_sync1_w); - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - - /* set up dsp32 speedup handlers */ - rddsp32_speedup = memory_install_read32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613e04, 0x613e07, 0, 0, rddsp32_speedup_r); - rddsp32_speedup_pc = 0x6054b0; -} - - -static void racedrvc_init_common(offs_t gsp_protection) -{ - /* initialize the boards */ - init_multisync(1); - init_adsp(); - init_dsk(); - init_driver_sound(); - - /* set up the slapstic */ - slapstic_init(117); - hd68k_slapstic_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_r); - hd68k_slapstic_base = memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_w); - - /* synchronization */ - rddsp32_sync[0] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613c00, 0x613c03, 0, 0, rddsp32_sync0_w); - rddsp32_sync[1] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613e00, 0x613e03, 0, 0, rddsp32_sync1_w); - - /* set up protection hacks */ - hdgsp_protection = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, TOBYTE(gsp_protection), TOBYTE(gsp_protection + 0x0f), 0, 0, hdgsp_protection_w); - - /* set up gsp speedup handler */ - hdgsp_speedup_addr[0] = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff76f60, 0xfff76f6f, 0, 0, rdgsp_speedup1_w); - memory_install_read16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff76f60, 0xfff76f6f, 0, 0, rdgsp_speedup1_r); - hdgsp_speedup_pc = 0xfff43a00; - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - - /* set up dsp32 speedup handlers */ - rddsp32_speedup = memory_install_read32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613e04, 0x613e07, 0, 0, rddsp32_speedup_r); - rddsp32_speedup_pc = 0x6054b0; -} - -static DRIVER_INIT( racedrvc ) { racedrvc_init_common(0xfff95cd0); } -static DRIVER_INIT( racedrc1 ) { racedrvc_init_common(0xfff7ecd0); } - - -static READ16_HANDLER( steeltal_dummy_r ) -{ - /* this is required so that INT 4 is recongized as a sound INT */ - return ~0; -} - - -static void steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloop) -{ - /* initialize the boards */ - init_multisync(0); - init_ds3(); - init_dspcom(); - atarijsa3_init_adpcm(REGION_SOUND1); - atarijsa_init(hdcpu_jsa, 14, 0, 0x0020); - - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x908000, 0x908001, 0, 0, steeltal_dummy_r); - - /* set up the SLOOP */ - if (!proto_sloop) - { - hd68k_slapstic_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, st68k_sloop_r); - hd68k_slapstic_base = memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, st68k_sloop_w); - st68k_sloop_alt_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0x4e000, 0x4ffff, 0, 0, st68k_sloop_alt_r); - } - else - { - hd68k_slapstic_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, st68k_protosloop_r); - hd68k_slapstic_base = memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, st68k_protosloop_w); - } - - /* synchronization */ - stmsp_sync[0] = &hdmsp_ram[TOWORD(0x80010)]; - memory_install_write16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x80010, 0x8007f, 0, 0, stmsp_sync0_w); - stmsp_sync[1] = &hdmsp_ram[TOWORD(0x99680)]; - memory_install_write16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x99680, 0x9968f, 0, 0, stmsp_sync1_w); - stmsp_sync[2] = &hdmsp_ram[TOWORD(0x99d30)]; - memory_install_write16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x99d30, 0x99d50, 0, 0, stmsp_sync2_w); - - /* set up protection hacks */ - hdgsp_protection = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff965d0, 0xfff965df, 0, 0, hdgsp_protection_w); - - /* set up msp speedup handlers */ - memory_install_read16_handler(hdcpu_msp, ADDRESS_SPACE_PROGRAM, 0x80020, 0x8002f, 0, 0, stmsp_speedup_r); - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1f99, 0x1f99, 0, 0, hdds3_speedup_r); - hdds3_speedup_addr = &hdadsp_data_memory[0x1f99]; - hdds3_speedup_pc = 0xff; - hdds3_transfer_pc = ds3_transfer_pc; -} - - -static DRIVER_INIT( steeltal ) { steeltal_init_common(0x4fc18, 0); } -static DRIVER_INIT( steelta1 ) { steeltal_init_common(0x4f9c6, 0); } -static DRIVER_INIT( steeltap ) { steeltal_init_common(0x52290, 1); } - - -static DRIVER_INIT( strtdriv ) -{ - /* initialize the boards */ - init_multisync(1); - init_ds3(); - init_dsk(); - - /* set up the slapstic */ - slapstic_init(117); - hd68k_slapstic_base = memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_r); - hd68k_slapstic_base = memory_install_write16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xe0000, 0xfffff, 0, 0, rd68k_slapstic_w); - - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xa80000, 0xafffff, 0, 0, hda68k_port1_r); - - /* synchronization */ - rddsp32_sync[0] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613c00, 0x613c03, 0, 0, rddsp32_sync0_w); - rddsp32_sync[1] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x613e00, 0x613e03, 0, 0, rddsp32_sync1_w); - - /* set up protection hacks */ - hdgsp_protection = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff960a0, 0xfff960af, 0, 0, hdgsp_protection_w); - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1f99, 0x1f99, 0, 0, hdds3_speedup_r); - hdds3_speedup_addr = &hdadsp_data_memory[0x1f99]; - hdds3_speedup_pc = 0xff; - hdds3_transfer_pc = 0x43672; -} - - -static DRIVER_INIT( hdrivair ) -{ - /* initialize the boards */ - init_multisync(1); - init_ds3(); - init_dsk2(); - - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xa80000, 0xafffff, 0, 0, hda68k_port1_r); - - /* synchronization */ - rddsp32_sync[0] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x21fe00, 0x21fe03, 0, 0, rddsp32_sync0_w); - rddsp32_sync[1] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x21ff00, 0x21ff03, 0, 0, rddsp32_sync1_w); - - /* set up protection hacks */ - hdgsp_protection = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff943f0, 0xfff943ff, 0, 0, hdgsp_protection_w); - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1f99, 0x1f99, 0, 0, hdds3_speedup_r); - hdds3_speedup_addr = &hdadsp_data_memory[0x1f99]; - hdds3_speedup_pc = 0x2da; - hdds3_transfer_pc = 0x407b8; -} - - -static DRIVER_INIT( hdrivaip ) -{ - /* initialize the boards */ - init_multisync(1); - init_ds3(); - init_dsk2(); - - memory_install_read16_handler(hdcpu_main, ADDRESS_SPACE_PROGRAM, 0xa80000, 0xafffff, 0, 0, hda68k_port1_r); - - /* synchronization */ - rddsp32_sync[0] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x21fe00, 0x21fe03, 0, 0, rddsp32_sync0_w); - rddsp32_sync[1] = memory_install_write32_handler(hdcpu_dsp32, ADDRESS_SPACE_PROGRAM, 0x21ff00, 0x21ff03, 0, 0, rddsp32_sync1_w); - - /* set up protection hacks */ - hdgsp_protection = memory_install_write16_handler(hdcpu_gsp, ADDRESS_SPACE_PROGRAM, 0xfff916c0, 0xfff916cf, 0, 0, hdgsp_protection_w); - - /* set up adsp speedup handlers */ - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1fff, 0x1fff, 0, 0, hdadsp_speedup_r); - memory_install_read16_handler(hdcpu_adsp, ADDRESS_SPACE_DATA, 0x1f9a, 0x1f9a, 0, 0, hdds3_speedup_r); - hdds3_speedup_addr = &hdadsp_data_memory[0x1f9a]; - hdds3_speedup_pc = 0x2d9; - hdds3_transfer_pc = 0X407da; -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1988, harddriv, 0, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 7)", 0 ) -GAME( 1988, harddrvb, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 7)", 0 ) -GAME( 1988, harddrvg, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 7)", 0 ) -GAME( 1988, harddrvj, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 7)", 0 ) -GAME( 1988, harddrb6, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 6)", 0 ) -GAME( 1988, harddrj6, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, Japan, rev 6)", 0 ) -GAME( 1988, harddrb5, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, British, rev 5)", 0 ) -GAME( 1988, harddrg4, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, German, rev 4)", 0 ) -GAME( 1988, harddrv3, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 3)", 0 ) -GAME( 1988, harddrv2, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 2)", 0 ) -GAME( 1988, harddrv1, harddriv, harddriv, harddriv, harddriv, ROT0, "Atari Games", "Hard Drivin' (cockpit, rev 1)", GAME_NOT_WORKING ) - -GAME( 1990, harddrvc, harddriv, harddrvc, racedrvc, harddrvc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 2)", 0 ) -GAME( 1990, harddrcg, harddriv, harddrvc, racedrvc, harddrvc, ROT0, "Atari Games", "Hard Drivin' (compact, German, rev 2)", 0 ) -GAME( 1990, harddrcb, harddriv, harddrvc, racedrvc, harddrvc, ROT0, "Atari Games", "Hard Drivin' (compact, British, rev 2)", 0 ) -GAME( 1990, harddrc1, harddriv, harddrvc, racedrvc, harddrvc, ROT0, "Atari Games", "Hard Drivin' (compact, rev 1)", 0 ) - -GAME( 1989, stunrun, 0, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 6)", 0 ) -GAME( 1989, stunrunj, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 7, Japan)", 0 ) -GAME( 1989, stunrun5, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5)", 0 ) -GAME( 1989, stunrune, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 5, Europe)", 0 ) -GAME( 1989, stunrun4, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 4)", 0 ) -GAME( 1989, stunrun3, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3)", 0 ) -GAME( 1989, stunrn3e, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 3, Europe)", 0 ) -GAME( 1989, stunrun2, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2)", 0 ) -GAME( 1989, stunrn2e, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 2, Europe)", 0 ) -GAME( 1989, stunrun0, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (rev 0)", 0 ) -GAME( 1989, stunrunp, stunrun, stunrun, stunrun, stunrun, ROT0, "Atari Games", "S.T.U.N. Runner (upright prototype)", 0 ) - -GAME( 1990, racedriv, 0, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 5)", 0 ) -GAME( 1990, racedrvb, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 5)", 0 ) -GAME( 1990, racedrvg, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 5)", 0 ) -GAME( 1990, racedrv4, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 4)", 0 ) -GAME( 1990, racedrb4, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 4)", 0 ) -GAME( 1990, racedrg4, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 4)", 0 ) -GAME( 1990, racedrv3, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 3)", 0 ) -GAME( 1990, racedrv2, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 2)", GAME_NOT_WORKING ) -GAME( 1990, racedrv1, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, rev 1)", GAME_NOT_WORKING ) -GAME( 1990, racedrb1, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, British, rev 1)", GAME_NOT_WORKING ) -GAME( 1990, racedrg1, racedriv, racedriv, racedriv, racedriv, ROT0, "Atari Games", "Race Drivin' (cockpit, German, rev 2)", GAME_NOT_WORKING ) - -GAME( 1990, racedrvc, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, rev 5)", 0 ) -GAME( 1990, racedrcb, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 5)", 0 ) -GAME( 1990, racedrcg, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 5)", 0 ) -GAME( 1990, racedrc4, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, rev 4)", 0 ) -GAME( 1990, racedcb4, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, British, rev 4)", 0 ) -GAME( 1990, racedcg4, racedriv, racedrvc, racedrvc, racedrvc, ROT0, "Atari Games", "Race Drivin' (compact, German, rev 4)", 0 ) -GAME( 1990, racedrc2, racedriv, racedrvc, racedrvc, racedrc1, ROT0, "Atari Games", "Race Drivin' (compact, rev 2)", 0 ) -GAME( 1990, racedrc1, racedriv, racedrvc, racedrvc, racedrc1, ROT0, "Atari Games", "Race Drivin' (compact, rev 1)", 0 ) - -GAME( 1991, steeltal, 0, steeltal, steeltal, steeltal, ROT0, "Atari Games", "Steel Talons (rev 2)", 0 ) -GAME( 1991, steeltag, steeltal, steeltal, steeltal, steeltal, ROT0, "Atari Games", "Steel Talons (German, rev 2)", 0 ) -GAME( 1991, steelta1, steeltal, steeltal, steeltal, steelta1, ROT0, "Atari Games", "Steel Talons (rev 1)", 0 ) -GAME( 1991, steeltap, steeltal, steeltal, steeltal, steeltap, ROT0, "Atari Games", "Steel Talons (prototype)", GAME_NOT_WORKING ) - -GAME( 1993, strtdriv, 0, strtdriv, strtdriv, strtdriv, ROT0, "Atari Games", "Street Drivin' (prototype)", GAME_NO_SOUND ) - -GAME( 1993, hdrivair, 0, hdrivair, hdrivair, hdrivair, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", GAME_NO_SOUND ) -GAME( 1993, hdrivaip, hdrivair, hdrivair, hdrivair, hdrivaip, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/hitme.c b/src/drivers/hitme.c deleted file mode 100644 index ee2c81523..000000000 --- a/src/drivers/hitme.c +++ /dev/null @@ -1,577 +0,0 @@ -/* Hit Me driver by the EMUL8, led by Dan Boris */ - -/* - - Hit Me (c) Ramtek 1976 ---------------------------------------- - - Memory map - - 0000-07ff r Rom - 0c00-0eff w Video Ram - 1000-13ff r/w Scratch Ram - - -*/ - -#include "driver.h" -#include "hitme.h" -#include "sound/discrete.h" - -static tilemap *hitme_tilemap; -static mame_time timeout_time; -static UINT8 *hitme_vidram; - - - -/************************************* - * - * Video RAM access - * - *************************************/ - -static void get_hitme_tile_info(int tile_index) -{ - /* the code is the low 6 bits */ - UINT8 code = hitme_vidram[tile_index] & 0x3f; - SET_TILE_INFO(0, code, 0, 0); -} - - -WRITE8_HANDLER( hitme_vidram_w ) -{ - /* mark this tile dirty */ - hitme_vidram[offset] = data; - tilemap_mark_tile_dirty(hitme_tilemap, offset); -} - - - -/************************************* - * - * Video start/update - * - *************************************/ - -static VIDEO_START(hitme) -{ - hitme_tilemap = tilemap_create(get_hitme_tile_info,tilemap_scan_rows,TILEMAP_OPAQUE, 8,10, 40,19); - return 0; -} - - -static VIDEO_START(barricad) -{ - hitme_tilemap = tilemap_create(get_hitme_tile_info,tilemap_scan_rows,TILEMAP_OPAQUE, 8,8, 32,24); - return 0; -} - - -static VIDEO_UPDATE(hitme) -{ - /* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */ - double width_resist = readinputport(7) * 25000 / 100; - /* this triggers a oneshot for the following length of time */ - double width_duration = 0.45 * 1000e-12 * width_resist; - /* the dot clock runs at the standard horizontal frequency * 320+16 clocks per scanline */ - double dot_freq = 15750 * 336; - /* the number of pixels is the duration times the frequency */ - int width_pixels = width_duration * dot_freq; - int x, y, xx, inv; - offs_t offs = 0; - - /* start by drawing the tilemap */ - tilemap_draw(bitmap,cliprect,hitme_tilemap,0,0); - - /* now loop over and invert anything */ - for (y = 0; y < 19; y++) - { - int dy = bitmap->rowpixels; - for (inv = x = 0; x < 40; x++, offs++) - { - /* if the high bit is set, reset the oneshot */ - if (hitme_vidram[y*40+x] & 0x80) - inv = width_pixels; - - /* invert pixels until we run out */ - for (xx = 0; xx < 8 && inv; xx++, inv--) - { - UINT16 *dest = BITMAP_ADDR16(bitmap, y*10, x*8 + xx); - dest[0*dy] ^= 1; - dest[1*dy] ^= 1; - dest[2*dy] ^= 1; - dest[3*dy] ^= 1; - dest[4*dy] ^= 1; - dest[5*dy] ^= 1; - dest[6*dy] ^= 1; - dest[7*dy] ^= 1; - dest[8*dy] ^= 1; - dest[9*dy] ^= 1; - } - } - } - return 0; -} - - -static VIDEO_UPDATE(barricad) -{ - tilemap_draw(bitmap,cliprect,hitme_tilemap,0,0); - return 0; -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static UINT8 read_port_and_t0(int port) -{ - UINT8 val = readinputport(port); - if (compare_mame_times(mame_timer_get_time(), timeout_time) > 0) - val ^= 0x80; - return val; -} - - -static UINT8 read_port_and_t0_and_hblank(int port) -{ - UINT8 val = read_port_and_t0(port); - if (cpu_gethorzbeampos() < (Machine->screen[0].width * 9 / 10)) - val ^= 0x04; - return val; -} - - -static READ8_HANDLER( hitme_port_0_r ) -{ - return read_port_and_t0_and_hblank(0); -} - - -static READ8_HANDLER( hitme_port_1_r ) -{ - return read_port_and_t0(1); -} - - -static READ8_HANDLER( hitme_port_2_r ) -{ - return read_port_and_t0_and_hblank(2); -} - - -static READ8_HANDLER( hitme_port_3_r ) -{ - return read_port_and_t0(3); -} - - - -/************************************* - * - * Output ports - * - *************************************/ - -static WRITE8_HANDLER( output_port_0_w ) -{ - /* - Note: We compute the timeout time on a write here. Unfortunately, the situation is - kind of weird, because the discrete sound system is also affected by this timeout. - In fact, it is very important that our timing calculation timeout AFTER the sound - system's equivalent computation, or else we will hang notes. - */ - UINT8 raw_game_speed = readinputport(6); - double resistance = raw_game_speed * 25000 / 100; - mame_time duration = make_mame_time(0, MAX_SUBSECONDS * 0.45 * 6.8e-6 * resistance * (data+1)); - timeout_time = add_mame_times(mame_timer_get_time(), duration); - - discrete_sound_w(HITME_DOWNCOUNT_VAL, data); - discrete_sound_w(HITME_OUT0, 1); -} - - -static WRITE8_HANDLER( output_port_1_w ) -{ - discrete_sound_w(HITME_ENABLE_VAL, data); - discrete_sound_w(HITME_OUT1, 1); -} - - - -/************************************* - * - * Memory maps - * - *************************************/ - -/* - Note: the 8080 puts I/O port addresses out on the upper 8 address bits and asserts - IORQ. Most systems decode IORQ, but hitme doesn't, which means that all the I/O - port accesses can also be made via memory mapped accesses with the port number in the - upper 8 bits. -*/ - -static ADDRESS_MAP_START( hitme_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS(AMEF_ABITS(13)) - AM_RANGE(0x0000, 0x07ff) AM_ROM - AM_RANGE(0x0c00, 0x0eff) AM_READWRITE(MRA8_RAM, hitme_vidram_w) AM_BASE(&hitme_vidram) - AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x300) AM_RAM - AM_RANGE(0x1400, 0x14ff) AM_READ(hitme_port_0_r) - AM_RANGE(0x1500, 0x15ff) AM_READ(hitme_port_1_r) - AM_RANGE(0x1600, 0x16ff) AM_READ(hitme_port_2_r) - AM_RANGE(0x1700, 0x17ff) AM_READ(hitme_port_3_r) - AM_RANGE(0x1800, 0x18ff) AM_READ(input_port_4_r) - AM_RANGE(0x1900, 0x19ff) AM_READ(input_port_5_r) - AM_RANGE(0x1d00, 0x1dff) AM_WRITE(output_port_0_w) - AM_RANGE(0x1e00, 0x1fff) AM_WRITE(output_port_1_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( hitme_portmap, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x14, 0x14) AM_READ(hitme_port_0_r) - AM_RANGE(0x15, 0x15) AM_READ(hitme_port_1_r) - AM_RANGE(0x16, 0x16) AM_READ(hitme_port_2_r) - AM_RANGE(0x17, 0x17) AM_READ(hitme_port_3_r) - AM_RANGE(0x18, 0x18) AM_READ(input_port_4_r) - AM_RANGE(0x19, 0x19) AM_READ(input_port_5_r) - AM_RANGE(0x1d, 0x1d) AM_WRITE(output_port_0_w) - AM_RANGE(0x1e, 0x1f) AM_WRITE(output_port_1_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Graphics layouts - * - *************************************/ - -/* - Note: the hitme video generator adds two blank lines to the beginning of each - row. In order to simulate this, we decode an extra two lines at the top of each - character. -*/ - -static const gfx_layout hitme_charlayout = -{ - 8,10, - RGN_FRAC(1,2), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0x200*8, 0x200*8, 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode hitme_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &hitme_charlayout, 0, 2 }, - { -1 } -}; - - -static const gfx_layout barricad_charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode barricad_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &barricad_charlayout, 0, 1 }, - { -1 } -}; - - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( hitme ) - - /* basic machine hardware */ - MDRV_CPU_ADD(8080, 8945000/16) - MDRV_CPU_PROGRAM_MAP(hitme_map,0) - MDRV_CPU_IO_MAP(hitme_portmap,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 19*10) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1) - MDRV_GFXDECODE(hitme_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(hitme) - MDRV_VIDEO_UPDATE(hitme) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(hitme_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/* - Note: The Barricade rom is using a resolution of 32x24 which suggests slightly - different hardware from HitMe (40x19) however the screenshot on the arcade - flyer is using a 40x19 resolution. So is this a different version of - Barricade or is the resolution set by a dip switch? -*/ - -static MACHINE_DRIVER_START( barricad ) - MDRV_IMPORT_FROM(hitme) - - /* video hardware */ - MDRV_SCREEN_SIZE(32*8, 24*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MDRV_GFXDECODE(barricad_gfxdecodeinfo) - - MDRV_VIDEO_START(barricad) - MDRV_VIDEO_UPDATE(barricad) -MACHINE_DRIVER_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( hitme ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) /* Start button */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hblank */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* P1 Stand button */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* P1 Hit button */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* P1 Bet button */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Aux 2 dipswitch - Unused */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* P2 Stand button */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* P2 Hit button */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* P2 Bet button */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Extra Hand On Natural" ) /* Aux 1 dipswitch */ - PORT_DIPSETTING( 0x00, DEF_STR ( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR ( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hblank */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) /* P3 Stand button */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) /* P3 Hit button */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) /* P3 Bet button */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Time out counter (TOC1) */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Aux 2 dipswitch - Unused*/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) /* P4 Stand button */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) /* P4 Hit button */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) /* P4 Bet button */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_DIPNAME( 0x07, 0x07, "Number of Chips" ) - PORT_DIPSETTING( 0x00, "5 Chips" ) - PORT_DIPSETTING( 0x01, "10 Chips" ) - PORT_DIPSETTING( 0x02, "15 Chips" ) - PORT_DIPSETTING( 0x03, "20 Chips" ) - PORT_DIPSETTING( 0x04, "25 Chips" ) - PORT_DIPSETTING( 0x05, "30 Chips" ) - PORT_DIPSETTING( 0x06, "35 Chips" ) - PORT_DIPSETTING( 0x07, "40 Chips" ) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x07, 0x00, "Number of Hands" ) - PORT_DIPSETTING( 0x00, "5 Hands" ) - PORT_DIPSETTING( 0x01, "10 Hands" ) - PORT_DIPSETTING( 0x02, "15 Hands" ) - PORT_DIPSETTING( 0x03, "20 Hands" ) - PORT_DIPSETTING( 0x04, "25 Hands" ) - PORT_DIPSETTING( 0x05, "30 Hands" ) - PORT_DIPSETTING( 0x06, "35 Hands" ) - PORT_DIPSETTING( 0x07, "40 Hands" ) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* this is actually a variable resistor */ - PORT_START - PORT_ADJUSTER(30, "Game Speed") - - /* this is actually a variable resistor */ - PORT_START - PORT_ADJUSTER(50, "Card Width") -INPUT_PORTS_END - - -INPUT_PORTS_START( barricad ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) /* Start button */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hblank */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* Aux 2 dipswitch - Unused */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* ??? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hblank */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Time out counter (TOC1) */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Always high */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Aux 2 dipswitch - Unused*/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Time out counter (*TO) */ - - /* On the flyer it says that barricade has both user adjustable points per - game, and speed. From experimenting it looks like points per game is the - same dipswitch as hitme's chips, and speed is hitme's hands. The flyer - says 1-7 points per games, but it really can go to 8. */ - - PORT_START - PORT_DIPNAME( 0x07, 0x07, "Points Per Game" ) - PORT_DIPSETTING( 0x00, "1 Point" ) - PORT_DIPSETTING( 0x01, "2 Points" ) - PORT_DIPSETTING( 0x02, "3 Points" ) - PORT_DIPSETTING( 0x03, "4 Points" ) - PORT_DIPSETTING( 0x04, "5 Points" ) - PORT_DIPSETTING( 0x05, "6 Points" ) - PORT_DIPSETTING( 0x06, "7 Points" ) - PORT_DIPSETTING( 0x07, "8 Points" ) - - /* These are like lives, you lose a point if you crash. The last person with - points wins the game. */ - - PORT_START - PORT_DIPNAME( 0x07, 0x00, "Game Speed" ) - PORT_DIPSETTING( 0x00, "Fast Fast" ) - PORT_DIPSETTING( 0x01, "7" ) - PORT_DIPSETTING( 0x02, "6" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x05, "3" ) - PORT_DIPSETTING( 0x06, "2" ) - PORT_DIPSETTING( 0x07, "Slow Slow" ) -INPUT_PORTS_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( hitme ) - ROM_REGION( 0x2000, REGION_CPU1, ROMREGION_INVERT ) - ROM_LOAD( "hm0.b7", 0x0000, 0x0200, CRC(6c48c50f) SHA1(42dc7c3461687e5be4393cc21d695bc84ae4f5dc) ) - ROM_LOAD( "hm2.c7", 0x0200, 0x0200, CRC(25d47ba4) SHA1(6f3bb4ca6918dc07f37d0c0c7fe5ec53aa7171a5) ) - ROM_LOAD( "hm4.d7", 0x0400, 0x0200, CRC(f8bfda8d) SHA1(48bbc106f8d80d6c1ad1a2c1575ce7d6452fbe9d) ) - ROM_LOAD( "hm6.e7", 0x0600, 0x0200, CRC(8aa87118) SHA1(aca395a4f6a1981cd89ca99e05935d72adcb69ca) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASE00 ) - ROM_LOAD( "hmcg.h7", 0x0000, 0x0200, CRC(818f5fbe) SHA1(e2b3349e51ba57d14f3388ba93891bc6274b7a14) ) -ROM_END - - -ROM_START( mblkjack ) - ROM_REGION( 0x2000, REGION_CPU1, ROMREGION_INVERT ) - ROM_LOAD( "mirco1.bin", 0x0000, 0x0200, CRC(aa796ad7) SHA1(2908bdb4ab17a2f5bc4da2f957906bf2b57afa50) ) - ROM_LOAD( "hm2.c7", 0x0200, 0x0200, CRC(25d47ba4) SHA1(6f3bb4ca6918dc07f37d0c0c7fe5ec53aa7171a5) ) - ROM_LOAD( "hm4.d7", 0x0400, 0x0200, CRC(f8bfda8d) SHA1(48bbc106f8d80d6c1ad1a2c1575ce7d6452fbe9d) ) - ROM_LOAD( "hm6.e7", 0x0600, 0x0200, CRC(8aa87118) SHA1(aca395a4f6a1981cd89ca99e05935d72adcb69ca) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASE00 ) - ROM_LOAD( "hmcg.h7", 0x0000, 0x0200, CRC(818f5fbe) SHA1(e2b3349e51ba57d14f3388ba93891bc6274b7a14) ) -ROM_END - - -ROM_START( barricad ) - ROM_REGION( 0x2000, REGION_CPU1, ROMREGION_INVERT ) - ROM_LOAD( "550806.7b", 0x0000, 0x0200, CRC(ea7f5da7) SHA1(c0ad37a0ffdb0500e8adc8fb9c4369e461307f84) ) - ROM_LOAD( "550807.7c", 0x0200, 0x0200, CRC(0afef174) SHA1(2a7be988262b855bc81a1b0036fa9f2481d4d53b) ) - ROM_LOAD( "550808.7d", 0x0400, 0x0200, CRC(6e02d260) SHA1(8a1640a1d56cbc34f74f07bc15e77db63635e8f5) ) - ROM_LOAD( "550809.7e", 0x0600, 0x0200, CRC(d834a63f) SHA1(ffb631cc4f51a670c7cd30df1c79bf51301d9e9a) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "550805.7h", 0x0000, 0x0200, CRC(35197599) SHA1(3c49af89b1bc1d495e1d6265ff3feaf33c56facb) ) -ROM_END - - -ROM_START( brickyrd ) - ROM_REGION( 0x2000, REGION_CPU1, ROMREGION_INVERT ) - ROM_LOAD( "550806.7b", 0x0000, 0x0200, CRC(ea7f5da7) SHA1(c0ad37a0ffdb0500e8adc8fb9c4369e461307f84) ) - ROM_LOAD( "barricad.7c", 0x0200, 0x0200, CRC(94e1d1c0) SHA1(f6e6f9a783867c3602ba8cff6a18c47c5df987a4) ) - ROM_LOAD( "550808.7d", 0x0400, 0x0200, CRC(6e02d260) SHA1(8a1640a1d56cbc34f74f07bc15e77db63635e8f5) ) - ROM_LOAD( "barricad.7e", 0x0600, 0x0200, CRC(2b1d914f) SHA1(f1a6631949a7c62f5de39d58821e1be36b98629e) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "barricad.7h", 0x0000, 0x0200, CRC(c676fd22) SHA1(c37bf92f5a146a93bd977b2a05485addc00ab066) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1976, hitme, 0, hitme, hitme, 0, ROT0, "RamTek", "Hit Me", 0 ) -GAME( 197?, mblkjack, hitme, hitme, hitme, 0, ROT0, "Mirco", "Black Jack (Mirco)", 0 ) -GAME( 1976, barricad, 0, barricad, barricad, 0, ROT0, "RamTek", "Barricade", GAME_IMPERFECT_SOUND ) -GAME( 1976, brickyrd, barricad, barricad, barricad, 0, ROT0, "RamTek", "Brickyard", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/hyperspt.c b/src/drivers/hyperspt.c deleted file mode 100644 index 22b498bdd..000000000 --- a/src/drivers/hyperspt.c +++ /dev/null @@ -1,664 +0,0 @@ -/*************************************************************************** - -Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "sound/vlm5030.h" -#include "sound/dac.h" - - -extern void konami1_decode(void); - -extern UINT8 *hyperspt_scroll; - -extern WRITE8_HANDLER( hyperspt_videoram_w ); -extern WRITE8_HANDLER( hyperspt_colorram_w ); -extern WRITE8_HANDLER( hyperspt_flipscreen_w ); - -extern PALETTE_INIT( hyperspt ); -extern VIDEO_START( hyperspt ); -extern VIDEO_UPDATE( hyperspt ); -extern VIDEO_START( roadf ); -extern VIDEO_UPDATE( roadf ); - -extern WRITE8_HANDLER( konami_sh_irqtrigger_w ); -extern READ8_HANDLER( hyperspt_sh_timer_r ); -extern WRITE8_HANDLER( hyperspt_sound_w ); - -/* these routines lurk in sndhrdw/trackfld.c */ -extern WRITE8_HANDLER( konami_SN76496_latch_w ); -extern WRITE8_HANDLER( konami_SN76496_0_w ); - - -static WRITE8_HANDLER( hyperspt_coin_counter_w ) -{ - coin_counter_w(offset,data); -} - -/* handle fake button for speed cheat */ -static READ8_HANDLER( konami_IN1_r ) -{ - int res; - static int cheat = 0; - static int bits[] = { 0xee, 0xff, 0xbb, 0xaa }; - - res = readinputportbytag("IN1"); - - if ((res & 0x80) == 0) - { - res |= 0x55; - res &= bits[cheat]; - cheat = (cheat+1)%4; - } - return res; -} - - - -/* - Track'n'Field has 1k of battery backed RAM which can be erased by setting a dipswitch -*/ -static UINT8 *nvram; -static size_t nvram_size; -static int we_flipped_the_switch; - -static NVRAM_HANDLER( hyperspt ) -{ - if (read_or_write) - { - mame_fwrite(file,nvram,nvram_size); - - if (we_flipped_the_switch) - { - input_port_entry *in; - - - /* find the dip switch which resets the high score table, and set it */ - /* back to off. */ - in = Machine->input_ports; - - while (in->type != IPT_END) - { - if (in->name != NULL && in->name != IP_NAME_DEFAULT && - strcmp(in->name,"World Records") == 0) - { - if (in->default_value == 0) - in->default_value = in->mask; - break; - } - - in++; - } - - we_flipped_the_switch = 0; - } - } - else - { - if (file) - { - mame_fread(file,nvram,nvram_size); - we_flipped_the_switch = 0; - } - else - { - input_port_entry *in; - - - /* find the dip switch which resets the high score table, and set it on */ - in = Machine->input_ports; - - while (in->type != IPT_END) - { - if (in->name != NULL && in->name != IP_NAME_DEFAULT && - strcmp(in->name,"World Records") == 0) - { - if (in->default_value == in->mask) - { - in->default_value = 0; - we_flipped_the_switch = 1; - } - break; - } - - in++; - } - } - } -} - - - -static ADDRESS_MAP_START( hyperspt_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1600, 0x1600) AM_READ(input_port_4_r) /* DIP 2 */ - AM_RANGE(0x1680, 0x1680) AM_READ(input_port_0_r) /* IO Coin */ -// AM_RANGE(0x1681, 0x1681) AM_READ(input_port_1_r) /* P1 IO */ - AM_RANGE(0x1681, 0x1681) AM_READ(konami_IN1_r) /* P1 IO and handle fake button for cheating */ - AM_RANGE(0x1682, 0x1682) AM_READ(input_port_2_r) /* P2 IO */ - AM_RANGE(0x1683, 0x1683) AM_READ(input_port_3_r) /* DIP 1 */ - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( roadf_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1600, 0x1600) AM_READ(input_port_4_r) /* DIP 2 */ - AM_RANGE(0x1680, 0x1680) AM_READ(input_port_0_r) /* IO Coin */ - AM_RANGE(0x1681, 0x1681) AM_READ(input_port_1_r) /* P1 IO */ - AM_RANGE(0x1682, 0x1682) AM_READ(input_port_2_r) /* P2 IO */ - AM_RANGE(0x1683, 0x1683) AM_READ(input_port_3_r) /* DIP 1 */ - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1000, 0x10bf) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x10C0, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&hyperspt_scroll) /* Scroll amount */ - AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1480, 0x1480) AM_WRITE(hyperspt_flipscreen_w) - AM_RANGE(0x1481, 0x1481) AM_WRITE(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */ - AM_RANGE(0x1483, 0x1484) AM_WRITE(hyperspt_coin_counter_w) - AM_RANGE(0x1487, 0x1487) AM_WRITE(interrupt_enable_w) /* Interrupt enable */ - AM_RANGE(0x1500, 0x1500) AM_WRITE(soundlatch_w) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(hyperspt_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x2800, 0x2fff) AM_WRITE(hyperspt_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x3000, 0x37ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x3800, 0x3fff) AM_WRITE(MWA8_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size) - AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) - AM_RANGE(0x8000, 0x8000) AM_READ(hyperspt_sh_timer_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_WRITE(VLM5030_data_w) /* speech data */ - AM_RANGE(0xc000, 0xdfff) AM_WRITE(hyperspt_sound_w) /* speech and output control */ - AM_RANGE(0xe000, 0xe000) AM_WRITE(DAC_0_data_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(konami_SN76496_latch_w) /* Loads the snd command into the snd latch */ - AM_RANGE(0xe002, 0xe002) AM_WRITE(konami_SN76496_0_w) /* This address triggers the SN chip to read the data port. */ -ADDRESS_MAP_END - - - -INPUT_PORTS_START( hyperspt ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) -// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - /* Fake button to press buttons 1 and 3 impossibly fast. Handle via konami_IN1_r */ - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Run Like Hell (Cheat)") PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) //PORT_COCKTAIL These were commented out - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) //PORT_COCKTAIL before the system changed. - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) //PORT_COCKTAIL Why? - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) //PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) //PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) //PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) -/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but - it doesn't give you any credit */ - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, "After Last Event" ) - PORT_DIPSETTING( 0x01, "Game Over" ) - PORT_DIPSETTING( 0x00, "Game Continues" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "World Records" ) - PORT_DIPSETTING( 0x08, "Don't Erase" ) - PORT_DIPSETTING( 0x00, "Erase on Reset" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xf0, "Easy 1" ) - PORT_DIPSETTING( 0xe0, "Easy 2" ) - PORT_DIPSETTING( 0xd0, "Easy 3" ) - PORT_DIPSETTING( 0xc0, "Easy 4" ) - PORT_DIPSETTING( 0xb0, "Normal 1" ) - PORT_DIPSETTING( 0xa0, "Normal 2" ) - PORT_DIPSETTING( 0x90, "Normal 3" ) - PORT_DIPSETTING( 0x80, "Normal 4" ) - PORT_DIPSETTING( 0x70, "Normal 5" ) - PORT_DIPSETTING( 0x60, "Normal 6" ) - PORT_DIPSETTING( 0x50, "Normal 7" ) - PORT_DIPSETTING( 0x40, "Normal 8" ) - PORT_DIPSETTING( 0x30, "Difficult 1" ) - PORT_DIPSETTING( 0x20, "Difficult 2" ) - PORT_DIPSETTING( 0x10, "Difficult 3" ) - PORT_DIPSETTING( 0x00, "Difficult 4" ) -INPUT_PORTS_END - -INPUT_PORTS_START( roadf ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* the game doesn't boot if this is 1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) -/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but - it doesn't give you any credit */ - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x06, 0x06, "Number of Opponents" ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x08, 0x08, "Speed of Opponents" ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, "Difficult" ) - PORT_DIPNAME( 0x30, 0x30, "Fuel Consumption" ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout hyperspt_charlayout = -{ - 8,8, /* 8*8 sprites */ - 1024, /* 1024 characters */ - 4, /* 4 bits per pixel */ - { 0x4000*8+4, 0x4000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout hyperspt_spritelayout = -{ - 16,16, /* 16*16 sprites */ - 512, /* 512 sprites */ - 4, /* 4 bits per pixel */ - { 0x8000*8+4, 0x8000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 , - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_decode hyperspt_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &hyperspt_charlayout, 0, 16 }, - { REGION_GFX2, 0, &hyperspt_spritelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - - -static const gfx_layout roadf_charlayout = -{ - 8,8, /* 8*8 sprites */ - 1536, /* 1536 characters */ - 4, /* 4 bits per pixel */ - { 0x6000*8+4, 0x6000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout roadf_spritelayout = -{ - 16,16, /* 16*16 sprites */ - 256, /* 256 sprites */ - 4, /* 4 bits per pixel */ - { 0x4000*8+4, 0x4000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 , - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_decode roadf_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &roadf_charlayout, 0, 16 }, - { REGION_GFX2, 0, &roadf_spritelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - - - -struct VLM5030interface hyperspt_vlm5030_interface = -{ - REGION_SOUND1, /* memory region */ - 0 /* memory size */ -}; - - -static MACHINE_DRIVER_START( hyperspt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 2048000) /* 1.400 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(hyperspt_readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,14318180/4) - /* audio CPU */ /* Z80 Clock is derived from a 14.31818 MHz crystal */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(hyperspt) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(hyperspt_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(16*16+16*16) - - MDRV_PALETTE_INIT(hyperspt) - MDRV_VIDEO_START(hyperspt) - MDRV_VIDEO_UPDATE(hyperspt) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD(SN76496, 14318180/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(VLM5030, 3580000) - MDRV_SOUND_CONFIG(hyperspt_vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( roadf ) - MDRV_IMPORT_FROM(hyperspt) - MDRV_CPU_PROGRAM_MAP(roadf_readmem, writemem) - MDRV_GFXDECODE(roadf_gfxdecodeinfo) - MDRV_VIDEO_START(roadf) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( hyperspt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c01", 0x4000, 0x2000, CRC(0c720eeb) SHA1(cc0719db7e59c72e603ab2ca42565303bc41d281) ) - ROM_LOAD( "c02", 0x6000, 0x2000, CRC(560258e0) SHA1(788d0d3cbbd97fb54eceb3281ccf84a31e5e3e98) ) - ROM_LOAD( "c03", 0x8000, 0x2000, CRC(9b01c7e6) SHA1(0106f94b38ad62e7514e56aab35581968074bbe0) ) - ROM_LOAD( "c04", 0xa000, 0x2000, CRC(10d7e9a2) SHA1(ebf1dd7ba10179c41b42358c45e49424ce8495cd) ) - ROM_LOAD( "c05", 0xc000, 0x2000, CRC(b105a8cd) SHA1(7d77ab4d75c0bff7ac7372a5ff5fe55839b57d19) ) - ROM_LOAD( "c06", 0xe000, 0x2000, CRC(1a34a849) SHA1(daa42a959ea162ca7f098010c85a7453a8805df8) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "c10", 0x0000, 0x2000, CRC(3dc1a6ff) SHA1(1e67cac46b6c8a9a0bb1560e135983435520f1fc) ) - ROM_LOAD( "c09", 0x2000, 0x2000, CRC(9b525c3e) SHA1(d8775ec3b4f12117431a2b7c7eaa038c1255241b) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c26", 0x00000, 0x2000, CRC(a6897eac) SHA1(a1dd950c29885f7bb4784fed46810ae47bff87dd) ) - ROM_LOAD( "c24", 0x02000, 0x2000, CRC(5fb230c0) SHA1(8caebf3788c1fb71c1ba72b0045503d45936d4ce) ) - ROM_LOAD( "c22", 0x04000, 0x2000, CRC(ed9271a0) SHA1(a458ad79922383f45f6522775e19cf693e226883) ) - ROM_LOAD( "c20", 0x06000, 0x2000, CRC(183f4324) SHA1(f6bcd03c25dea300876ace950f118a971557168f) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c14", 0x00000, 0x2000, CRC(c72d63be) SHA1(0677b4f7196551ebc1bbbecd0e15d79f8e32857d) ) - ROM_LOAD( "c13", 0x02000, 0x2000, CRC(76565608) SHA1(418fb9a81c0583d0214afb27fea28794563b8460) ) - ROM_LOAD( "c12", 0x04000, 0x2000, CRC(74d2cc69) SHA1(684b65455217f243b3690822d445efdcb18211bb) ) - ROM_LOAD( "c11", 0x06000, 0x2000, CRC(66cbcb4d) SHA1(c4ea51a6f30d2cd0cd6e22fdadb83d889f2cc471) ) - ROM_LOAD( "c18", 0x08000, 0x2000, CRC(ed25e669) SHA1(2e306db101cd4443b0a81cecf817e5ebbdaf1bba) ) - ROM_LOAD( "c17", 0x0a000, 0x2000, CRC(b145b39f) SHA1(e696e1f9b44aa44360ea9962c4ee9b61db8e53f5) ) - ROM_LOAD( "c16", 0x0c000, 0x2000, CRC(d7ff9f2b) SHA1(b0e6a056db96027ba0c10d3ee3bfdef145a236e2) ) - ROM_LOAD( "c15", 0x0e000, 0x2000, CRC(f3d454e6) SHA1(9d04dcd1b0354e01773923295bba2602e00467f9) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "c03_c27.bin", 0x0000, 0x0020, CRC(bc8a5956) SHA1(90746145d9f380c29919edea3ef7a8434c48c9d9) ) - ROM_LOAD( "j12_c28.bin", 0x0020, 0x0100, CRC(2c891d59) SHA1(79050fbe058c24349927edc7937ec68a77f450f1) ) - ROM_LOAD( "a09_c29.bin", 0x0120, 0x0100, CRC(811a3f3f) SHA1(474f03345847cd9791ff6b7161286bbfef3f990a) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for speech rom */ - ROM_LOAD( "c08", 0x0000, 0x2000, CRC(e8f8ea78) SHA1(8d37818e5a2740c96696f37996f2a3f870386690) ) -ROM_END - -ROM_START( hpolym84 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "c01", 0x4000, 0x2000, CRC(0c720eeb) SHA1(cc0719db7e59c72e603ab2ca42565303bc41d281) ) - ROM_LOAD( "c02", 0x6000, 0x2000, CRC(560258e0) SHA1(788d0d3cbbd97fb54eceb3281ccf84a31e5e3e98) ) - ROM_LOAD( "c03", 0x8000, 0x2000, CRC(9b01c7e6) SHA1(0106f94b38ad62e7514e56aab35581968074bbe0) ) - ROM_LOAD( "330e04.bin", 0xa000, 0x2000, CRC(9c5e2934) SHA1(7d25e53ca54f6b382785888838acff27bc2c1d43) ) - ROM_LOAD( "c05", 0xc000, 0x2000, CRC(b105a8cd) SHA1(7d77ab4d75c0bff7ac7372a5ff5fe55839b57d19) ) - ROM_LOAD( "c06", 0xe000, 0x2000, CRC(1a34a849) SHA1(daa42a959ea162ca7f098010c85a7453a8805df8) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "c10", 0x0000, 0x2000, CRC(3dc1a6ff) SHA1(1e67cac46b6c8a9a0bb1560e135983435520f1fc) ) - ROM_LOAD( "c09", 0x2000, 0x2000, CRC(9b525c3e) SHA1(d8775ec3b4f12117431a2b7c7eaa038c1255241b) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c26", 0x00000, 0x2000, CRC(a6897eac) SHA1(a1dd950c29885f7bb4784fed46810ae47bff87dd) ) - ROM_LOAD( "330e24.bin", 0x02000, 0x2000, CRC(f9bbfe1d) SHA1(f24a0c3e10e727e3e9fd123cda8bb557af1fea12) ) - ROM_LOAD( "c22", 0x04000, 0x2000, CRC(ed9271a0) SHA1(a458ad79922383f45f6522775e19cf693e226883) ) - ROM_LOAD( "330e20.bin", 0x06000, 0x2000, CRC(29969b92) SHA1(baf394c56b8a2855f32b9e6d7346faf50e75bcf2) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c14", 0x00000, 0x2000, CRC(c72d63be) SHA1(0677b4f7196551ebc1bbbecd0e15d79f8e32857d) ) - ROM_LOAD( "c13", 0x02000, 0x2000, CRC(76565608) SHA1(418fb9a81c0583d0214afb27fea28794563b8460) ) - ROM_LOAD( "c12", 0x04000, 0x2000, CRC(74d2cc69) SHA1(684b65455217f243b3690822d445efdcb18211bb) ) - ROM_LOAD( "c11", 0x06000, 0x2000, CRC(66cbcb4d) SHA1(c4ea51a6f30d2cd0cd6e22fdadb83d889f2cc471) ) - ROM_LOAD( "c18", 0x08000, 0x2000, CRC(ed25e669) SHA1(2e306db101cd4443b0a81cecf817e5ebbdaf1bba) ) - ROM_LOAD( "c17", 0x0a000, 0x2000, CRC(b145b39f) SHA1(e696e1f9b44aa44360ea9962c4ee9b61db8e53f5) ) - ROM_LOAD( "c16", 0x0c000, 0x2000, CRC(d7ff9f2b) SHA1(b0e6a056db96027ba0c10d3ee3bfdef145a236e2) ) - ROM_LOAD( "c15", 0x0e000, 0x2000, CRC(f3d454e6) SHA1(9d04dcd1b0354e01773923295bba2602e00467f9) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "c03_c27.bin", 0x0000, 0x0020, CRC(bc8a5956) SHA1(90746145d9f380c29919edea3ef7a8434c48c9d9) ) - ROM_LOAD( "j12_c28.bin", 0x0020, 0x0100, CRC(2c891d59) SHA1(79050fbe058c24349927edc7937ec68a77f450f1) ) - ROM_LOAD( "a09_c29.bin", 0x0120, 0x0100, CRC(811a3f3f) SHA1(474f03345847cd9791ff6b7161286bbfef3f990a) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for speech rom */ - ROM_LOAD( "c08", 0x0000, 0x2000, CRC(e8f8ea78) SHA1(8d37818e5a2740c96696f37996f2a3f870386690) ) -ROM_END - -ROM_START( roadf ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "g05_g01.bin", 0x4000, 0x2000, CRC(e2492a06) SHA1(e03895b83f1529dd7bb20e1380cb60c7606db3e4) ) - ROM_LOAD( "g07_f02.bin", 0x6000, 0x2000, CRC(0bf75165) SHA1(d3d16d63ca15c8f6b05c37b4e37e41785334ffff) ) - ROM_LOAD( "g09_g03.bin", 0x8000, 0x2000, CRC(dde401f8) SHA1(aa1810290c14d15d14e2f82a6780fc82d06d437b) ) - ROM_LOAD( "g11_f04.bin", 0xA000, 0x2000, CRC(b1283c77) SHA1(3fdd8d97cdd8a0b7c12db6797ed17f730425f337) ) - ROM_LOAD( "g13_f05.bin", 0xC000, 0x2000, CRC(0ad4d796) SHA1(44335c769341b3e10bb92556c0718884fd4b5d20) ) - ROM_LOAD( "g15_f06.bin", 0xE000, 0x2000, CRC(fa42e0ed) SHA1(408d365183fd95e54695a17abbba87d729546d7c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a17_d10.bin", 0x0000, 0x2000, CRC(c33c927e) SHA1(f1a8522e3bfc3a07bb42408d2937a4129e4c3fee) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a14_e26.bin", 0x00000, 0x4000, CRC(f5c738e2) SHA1(9f10be775791dee9801b1167f838a9110084842d) ) - ROM_LOAD( "a12_d24.bin", 0x04000, 0x2000, CRC(2d82c930) SHA1(fea26c00ad3acb1f44a5fdc79a7dd8ddce17d317) ) - ROM_LOAD( "c14_e22.bin", 0x06000, 0x4000, CRC(fbcfbeb9) SHA1(e5a938fc2fe2378d836dfe8ba516994cd5cf0bb5) ) - ROM_LOAD( "c12_d20.bin", 0x0a000, 0x2000, CRC(5e0cf994) SHA1(c81274d809c685ccf24108f56a4fa54146d4f493) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "j19_e14.bin", 0x00000, 0x4000, CRC(16d2bcff) SHA1(37c63faaaca43909bfb1e2ccb370efe4b276d8a9) ) - ROM_LOAD( "g19_e18.bin", 0x04000, 0x4000, CRC(490685ff) SHA1(5ca0aa3771d60688671aae196f10f9feecb15106) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "c03_c27.bin", 0x0000, 0x0020, CRC(45d5e352) SHA1(0f4d358aaffcb68193247090e82f093752730518) ) - ROM_LOAD( "j12_c28.bin", 0x0020, 0x0100, CRC(2955e01f) SHA1(b0652d177a45571edc5978143d4023e7b173b383) ) - ROM_LOAD( "a09_c29.bin", 0x0120, 0x0100, CRC(5b3b5f2a) SHA1(e83556fba6d50ad20dff6e19bd300ba0c30cc6e2) ) -ROM_END - -ROM_START( roadf2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "5g", 0x4000, 0x2000, CRC(d8070d30) SHA1(334e4586686c29d33c3281cc446c13d2d96301dd) ) - ROM_LOAD( "6g", 0x6000, 0x2000, CRC(8b661672) SHA1(bdc983d1ad88372ea1fc8263d4c254d26079ece7) ) - ROM_LOAD( "8g", 0x8000, 0x2000, CRC(714929e8) SHA1(0176e4199a091485af30e00777678e51664dee23) ) - ROM_LOAD( "11g", 0xA000, 0x2000, CRC(0f2c6b94) SHA1(a18fe9021e464374de524454403eccc0aaf3eeb7) ) - ROM_LOAD( "g13_f05.bin", 0xC000, 0x2000, CRC(0ad4d796) SHA1(44335c769341b3e10bb92556c0718884fd4b5d20) ) - ROM_LOAD( "g15_f06.bin", 0xE000, 0x2000, CRC(fa42e0ed) SHA1(408d365183fd95e54695a17abbba87d729546d7c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a17_d10.bin", 0x0000, 0x2000, CRC(c33c927e) SHA1(f1a8522e3bfc3a07bb42408d2937a4129e4c3fee) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a14_e26.bin", 0x00000, 0x4000, CRC(f5c738e2) SHA1(9f10be775791dee9801b1167f838a9110084842d) ) - ROM_LOAD( "a12_d24.bin", 0x04000, 0x2000, CRC(2d82c930) SHA1(fea26c00ad3acb1f44a5fdc79a7dd8ddce17d317) ) - ROM_LOAD( "c14_e22.bin", 0x06000, 0x4000, CRC(fbcfbeb9) SHA1(e5a938fc2fe2378d836dfe8ba516994cd5cf0bb5) ) - ROM_LOAD( "c12_d20.bin", 0x0a000, 0x2000, CRC(5e0cf994) SHA1(c81274d809c685ccf24108f56a4fa54146d4f493) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "j19_e14.bin", 0x00000, 0x4000, CRC(16d2bcff) SHA1(37c63faaaca43909bfb1e2ccb370efe4b276d8a9) ) - ROM_LOAD( "g19_e18.bin", 0x04000, 0x4000, CRC(490685ff) SHA1(5ca0aa3771d60688671aae196f10f9feecb15106) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "c03_c27.bin", 0x0000, 0x0020, CRC(45d5e352) SHA1(0f4d358aaffcb68193247090e82f093752730518) ) - ROM_LOAD( "j12_c28.bin", 0x0020, 0x0100, CRC(2955e01f) SHA1(b0652d177a45571edc5978143d4023e7b173b383) ) - ROM_LOAD( "a09_c29.bin", 0x0120, 0x0100, CRC(5b3b5f2a) SHA1(e83556fba6d50ad20dff6e19bd300ba0c30cc6e2) ) -ROM_END - - -static DRIVER_INIT( hyperspt ) -{ - konami1_decode(); -} - - -GAME( 1984, hyperspt, 0, hyperspt, hyperspt, hyperspt, ROT0, "Konami (Centuri license)", "Hyper Sports", 0 ) -GAME( 1984, hpolym84, hyperspt, hyperspt, hyperspt, hyperspt, ROT0, "Konami", "Hyper Olympic '84", 0 ) -GAME( 1984, roadf, 0, roadf, roadf, hyperspt, ROT90, "Konami", "Road Fighter (set 1)", 0 ) -GAME( 1984, roadf2, roadf, roadf, roadf, hyperspt, ROT90, "Konami", "Road Fighter (set 2)", 0 ) diff --git a/src/drivers/hyprduel.c b/src/drivers/hyprduel.c deleted file mode 100644 index 2064bb0e3..000000000 --- a/src/drivers/hyprduel.c +++ /dev/null @@ -1,890 +0,0 @@ -/*************************************************************************** - -Hyper Duel -(c)1993 Technosoft -TEC442-A(Japan) - -TMP68000N-10 x2 -YM2151,YM3012 -OKI M6295 -OSC: 4.0000MHz, 20.0000MHz, 26.6660MHz -Imagetek Inc 14220 071 - --- -driver by Eisuke Watanabe -based on driver from drivers/metro.c by Luca Elia -spthx to kikur,Cha,teioh,kokkyu,teruchu,aya,sgo - -Note: -sub68k is performing not only processing of sound but assistance of main68k. - ---- - -Magical Error -different sized sound / shared region (or the mem map needs more alterations?) -fix comms so it boots, it's a bit of a hack for hyperduel at the moment ;-) - -***************************************************************************/ - -#include "driver.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" -#include "sound/2413intf.h" - -#define RASTER_LINES 262 -#define FIRST_VISIBLE_LINE 0 -#define LAST_VISIBLE_LINE 223 - -/* Variables defined in vidhrdw: */ -extern UINT16 *hyprduel_videoregs; -extern UINT16 *hyprduel_screenctrl; -extern UINT16 *hyprduel_tiletable; -extern size_t hyprduel_tiletable_size; -extern UINT16 *hyprduel_vram_0, *hyprduel_vram_1, *hyprduel_vram_2; -extern UINT16 *hyprduel_window; -extern UINT16 hyprduel_scrollx[3][RASTER_LINES+1]; -extern UINT16 hyprduel_scrolly[3][RASTER_LINES+1]; - -/* Functions defined in vidhrdw: */ -WRITE16_HANDLER( hyprduel_paletteram_w ); -WRITE16_HANDLER( hyprduel_window_w ); -WRITE16_HANDLER( hyprduel_vram_0_w ); -WRITE16_HANDLER( hyprduel_vram_1_w ); -WRITE16_HANDLER( hyprduel_vram_2_w ); - -VIDEO_START( hyprduel_14220 ); -VIDEO_UPDATE( hyprduel ); - -/*************************************************************************** - Interrupts -***************************************************************************/ - -static int blitter_bit; -static int requested_int; -static UINT16 *hypr_irq_enable; -static int subcpu_resetline; - -static int rastersplit; - -static int int_num; - -static UINT16 *hypr_sharedram1; -static UINT16 *hypr_sharedram2; -static UINT16 *hypr_sub_sharedram1_1; -static UINT16 *hypr_sub_sharedram1_2; -static UINT16 *hypr_sub_sharedram2_1; -static UINT16 *hypr_sub_sharedram2_2; - - -static WRITE16_HANDLER( hypr_sharedram1_w ) -{ - COMBINE_DATA(&hypr_sharedram1[offset]); - COMBINE_DATA(&hypr_sub_sharedram1_1[offset]); - if (offset < 0x4000/2) - COMBINE_DATA(&hypr_sub_sharedram1_2[offset]); -} - -static WRITE16_HANDLER( hypr_sharedram2_w ) -{ - COMBINE_DATA(&hypr_sharedram2[offset]); - COMBINE_DATA(&hypr_sub_sharedram2_1[offset]); - if ((offset >= 0x4000/2) && (offset < 0x7fff/2)) - COMBINE_DATA(&hypr_sub_sharedram2_2[offset-0x4000/2]); -} - -static void update_irq_state(void) -{ - int irq = requested_int & ~*hypr_irq_enable; - - cpunum_set_input_line(0, 3, (irq & int_num) ? ASSERT_LINE : CLEAR_LINE); -} - -static READ16_HANDLER( hyprduel_irq_cause_r ) -{ - return requested_int; -} - -static WRITE16_HANDLER( hyprduel_irq_cause_w ) -{ - if (ACCESSING_LSB) - { - if (data == int_num) - requested_int &= ~(int_num & ~*hypr_irq_enable); - else - requested_int &= ~(data & *hypr_irq_enable); - - update_irq_state(); - } -} - -static WRITE16_HANDLER( hypr_subcpu_control_w ) -{ - int pc = activecpu_get_pc(); - - if (data & 0x01) - { - if (!subcpu_resetline) - { - if (pc != 0x95f2) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - subcpu_resetline = 1; - } else { - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - subcpu_resetline = -1; - } - } - } else { - if (subcpu_resetline == 1 && (data != 0x0c)) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); - subcpu_resetline = 0; - if (pc == 0xbb0 || pc == 0x9d30 || pc == 0xb19c) - cpu_spinuntil_time(TIME_IN_USEC(15000)); /* sync semaphore */ - } - else if (subcpu_resetline == -1) - { - cpunum_set_input_line(1, INPUT_LINE_HALT, CLEAR_LINE); - subcpu_resetline = 0; - } - } -} - -static WRITE16_HANDLER( hypr_scrollreg_w ) -{ - int i; - - if (offset & 0x01) - { - for (i = rastersplit; i < RASTER_LINES; i++) - hyprduel_scrollx[offset>>1][i] = data; - } else { - for (i = rastersplit; i < RASTER_LINES; i++) - hyprduel_scrolly[offset>>1][i] = data; - } -} - -static WRITE16_HANDLER( hypr_scrollreg_init_w ) -{ - int i; - - for (i = 0; i < RASTER_LINES; i++) - { - hyprduel_scrollx[0][i] = data; - hyprduel_scrollx[1][i] = data; - hyprduel_scrollx[2][i] = data; - hyprduel_scrolly[0][i] = data; - hyprduel_scrolly[1][i] = data; - hyprduel_scrolly[2][i] = data; - } -} - -static void vblank_end_callback(int param) -{ - requested_int &= ~param; - cpunum_set_input_line(1, 2, HOLD_LINE); -} - -INTERRUPT_GEN( hyprduel_interrupt ) -{ - int line = RASTER_LINES - cpu_getiloops(); - - if (line == RASTER_LINES) - { - requested_int |= 0x01; /* vblank */ - requested_int |= 0x20; - cpunum_set_input_line(0, 2, HOLD_LINE); - cpunum_set_input_line(1, 1, HOLD_LINE); - timer_set(DEFAULT_REAL_60HZ_VBLANK_DURATION, 0x20, vblank_end_callback); - rastersplit = 0; - } else { - requested_int |= 0x12; /* hsync */ - rastersplit = line + 1; - } - - update_irq_state(); -} - -MACHINE_RESET( hyprduel ) -{ - /* start with cpu2 halted */ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - subcpu_resetline = 1; -} - - -/*************************************************************************** - Banked ROM access -***************************************************************************/ - -/* - The main CPU has access to the ROMs that hold the graphics through - a banked window of 64k. Those ROMs also usually store the tables for - the virtual tiles set. The tile codes to be written to the tilemap - memory to render the backgrounds are also stored here, in a format - that the blitter can readily use (which is a form of compression) -*/ - -static UINT16 *hyprduel_rombank; - -READ16_HANDLER( hyprduel_bankedrom_r ) -{ - const int region = REGION_GFX1; - - UINT8 *ROM = memory_region( region ); - size_t len = memory_region_length( region ); - - offset = offset * 2 + 0x10000 * (*hyprduel_rombank); - - if ( offset < len ) return ((ROM[offset+0]<<8)+ROM[offset+1])^0xffff; - else return 0xffff; -} - -/*************************************************************************** - - Blitter - - [ Registers ] - - Offset: Value: - - 0.l Destination Tilemap (1,2,3) - 4.l Blitter Data Address (byte offset into the gfx ROMs) - 8.l Destination Address << 7 (byte offset into the tilemap) - - The Blitter reads a byte and looks at the most significative - bits for the opcode, while the remaining bits define a value - (usually how many bytes to write). The opcode byte may be - followed by a number of other bytes: - - 76------ Opcode - --543210 N - (at most N+1 bytes follow) - - - The blitter is designed to write every other byte (e.g. it - writes a byte and skips the next). Hence 2 blits are needed - to fill a tilemap (first even, then odd addresses) - - [ Opcodes ] - - 0 Copy the following N+1 bytes. If the whole byte - is $00: stop and generate an IRQ - - 1 Fill N+1 bytes with a sequence, starting with - the value in the following byte - - 2 Fill N+1 bytes with the value in the following - byte - - 3 Skip N+1 bytes. If the whole byte is $C0: - skip to the next row of the tilemap (+0x200 bytes) - but preserve the column passed at the start of the - blit (destination address % 0x200) - -***************************************************************************/ - -UINT16 *hyprduel_blitter_regs; - -void hyprduel_blit_done(int param) -{ - requested_int |= 1 << blitter_bit; - update_irq_state(); -} - -INLINE int blt_read(const UINT8 *ROM, const int offs) -{ - return ROM[offs] ^ 0xff; -} - -INLINE void blt_write(const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask) -{ - switch( tmap ) - { - case 1: hyprduel_vram_0_w(offs,data,mask); break; - case 2: hyprduel_vram_1_w(offs,data,mask); break; - case 3: hyprduel_vram_2_w(offs,data,mask); break; - } -// logerror("CPU #0 PC %06X : Blitter %X] %04X <- %04X & %04X\n",activecpu_get_pc(),tmap,offs,data,mask); -} - - -static WRITE16_HANDLER( hyprduel_blitter_w ) -{ - COMBINE_DATA( &hyprduel_blitter_regs[offset] ); - - if (offset == 0xC/2) - { - const int region = REGION_GFX1; - - UINT8 *src = memory_region(region); - size_t src_len = memory_region_length(region); - - UINT32 tmap = (hyprduel_blitter_regs[ 0x00 / 2 ] << 16 ) + - hyprduel_blitter_regs[ 0x02 / 2 ]; - UINT32 src_offs = (hyprduel_blitter_regs[ 0x04 / 2 ] << 16 ) + - hyprduel_blitter_regs[ 0x06 / 2 ]; - UINT32 dst_offs = (hyprduel_blitter_regs[ 0x08 / 2 ] << 16 ) + - hyprduel_blitter_regs[ 0x0a / 2 ]; - - int shift = (dst_offs & 0x80) ? 0 : 8; - UINT16 mask = (dst_offs & 0x80) ? 0xff00 : 0x00ff; - -// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n",activecpu_get_pc(),tmap,src_offs,dst_offs); - - dst_offs >>= 7+1; - switch( tmap ) - { - case 1: - case 2: - case 3: - break; - default: - logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n",activecpu_get_pc(),tmap); - return; - } - - while (1) - { - UINT16 b1,b2,count; - - src_offs %= src_len; - b1 = blt_read(src,src_offs); -// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs); - src_offs++; - - count = ((~b1) & 0x3f) + 1; - - switch( (b1 & 0xc0) >> 6 ) - { - case 0: - - /* Stop and Generate an IRQ. We can't generate it now - both because it's unlikely that the blitter is so - fast and because some games (e.g. lastfort) need to - complete the blitter irq service routine before doing - another blit. */ - if (b1 == 0) - { - timer_set(TIME_IN_USEC(500),0,hyprduel_blit_done); - return; - } - - /* Copy */ - while (count--) - { - src_offs %= src_len; - b2 = blt_read(src,src_offs) << shift; - src_offs++; - - dst_offs &= 0xffff; - blt_write(tmap,dst_offs,b2,mask); - dst_offs = ((dst_offs+1) & (0x100-1)) | (dst_offs & (~(0x100-1))); - } - break; - - - case 1: - - /* Fill with an increasing value */ - src_offs %= src_len; - b2 = blt_read(src,src_offs); - src_offs++; - - while (count--) - { - dst_offs &= 0xffff; - blt_write(tmap,dst_offs,b2<> (7+1)); - } - else - { - dst_offs += count; - } - break; - - - default: - logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs-1); - return; - } - - } - } - -} - -/*************************************************************************** - Memory Maps -***************************************************************************/ - -static ADDRESS_MAP_START( hyprduel_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x41ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x460000, 0x46ffff) AM_READ(hyprduel_bankedrom_r ) // Banked ROM - AM_RANGE(0x470000, 0x473fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x475000, 0x477fff) AM_READ(MRA16_RAM ) // (only used memory test) - AM_RANGE(0x478000, 0x4787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x4788a2, 0x4788a3) AM_READ(hyprduel_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc07fff) AM_READ(MRA16_RAM ) // (sound driver controls) - AM_RANGE(0xe00000, 0xe00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xe00002, 0xe00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xe00004, 0xe00005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xe00006, 0xe00007) AM_READ(input_port_3_word_r ) // - AM_RANGE(0xfe0000, 0xffffff) AM_READ(MRA16_RAM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hyprduel_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(hyprduel_vram_0_w) AM_BASE(&hyprduel_vram_0 ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1 ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2 ) // Layer 2 - AM_RANGE(0x470000, 0x473fff) AM_WRITE(hyprduel_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x475000, 0x477fff) AM_WRITE(MWA16_RAM ) - AM_RANGE(0x478000, 0x4787ff) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_tiletable) AM_SIZE(&hyprduel_tiletable_size ) // Tiles Set - AM_RANGE(0x478840, 0x47884d) AM_WRITE(hyprduel_blitter_w) AM_BASE(&hyprduel_blitter_regs ) // Tiles Blitter - AM_RANGE(0x478860, 0x47886b) AM_WRITE(hyprduel_window_w) AM_BASE(&hyprduel_window ) // Tilemap Window - AM_RANGE(0x478870, 0x47887b) AM_WRITE(hypr_scrollreg_w ) // Scroll Regs - AM_RANGE(0x47887c, 0x47887d) AM_WRITE(hypr_scrollreg_init_w ) // scroll regs all sets - AM_RANGE(0x478880, 0x478881) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x478890, 0x478891) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x4788a0, 0x4788a1) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x4788a2, 0x4788a3) AM_WRITE(hyprduel_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x4788a4, 0x4788a5) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_irq_enable ) // IRQ Enable - AM_RANGE(0x4788aa, 0x4788ab) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_rombank ) // Rom Bank - AM_RANGE(0x4788ac, 0x4788ad) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_screenctrl ) // Screen Control - AM_RANGE(0x479700, 0x479713) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_videoregs ) // Video Registers - AM_RANGE(0x800000, 0x800001) AM_WRITE(hypr_subcpu_control_w ) - AM_RANGE(0xc00000, 0xc07fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sharedram1 ) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP ) - AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sharedram2 ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hyprduel_readmem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x003fff) AM_READ(MRA16_RAM ) - AM_RANGE(0x004000, 0x007fff) AM_READ(MRA16_RAM ) - AM_RANGE(0x400002, 0x400003) AM_READ(YM2151_status_port_0_lsb_r ) - AM_RANGE(0x400004, 0x400005) AM_READ(OKIM6295_status_0_lsb_r ) - AM_RANGE(0xc00000, 0xc07fff) AM_READ(MRA16_RAM ) - AM_RANGE(0xfe0000, 0xffffff) AM_READ(MRA16_RAM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hyprduel_writemem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x003fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram1_2 ) // shadow ($c00000 - $c03fff : vector, write ok) - AM_RANGE(0x004000, 0x007fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram2_2 ) // shadow ($fe4000 - $fe7fff : read only) - AM_RANGE(0x400000, 0x400001) AM_WRITE(YM2151_register_port_0_lsb_w ) - AM_RANGE(0x400002, 0x400003) AM_WRITE(YM2151_data_port_0_lsb_w ) - AM_RANGE(0x400004, 0x400005) AM_WRITE(OKIM6295_data_0_lsb_w ) - AM_RANGE(0x800000, 0x800001) AM_WRITE(MWA16_NOP ) - AM_RANGE(0xc00000, 0xc07fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram1_1 ) // (sound driver) - AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram2_1 ) -ADDRESS_MAP_END - -/* Magical Error - video is at 8x now */ - -static ADDRESS_MAP_START( magerror_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x800000, 0x81ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x860000, 0x86ffff) AM_READ(hyprduel_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x875000, 0x877fff) AM_READ(MRA16_RAM ) // (only used memory test) - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(hyprduel_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(MRA16_RAM ) // (sound driver controls) ? - AM_RANGE(0xe00000, 0xe00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xe00002, 0xe00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xe00004, 0xe00005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xe00006, 0xe00007) AM_READ(input_port_3_word_r ) // - AM_RANGE(0xfe0000, 0xffffff) AM_READ(MRA16_RAM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magerror_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) - AM_RANGE(0x800000, 0x81ffff) AM_WRITE(hyprduel_vram_0_w) AM_BASE(&hyprduel_vram_0 ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1 ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2 ) // Layer 2 - AM_RANGE(0x870000, 0x873fff) AM_WRITE(hyprduel_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x875000, 0x877fff) AM_WRITE(MWA16_RAM ) - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_tiletable) AM_SIZE(&hyprduel_tiletable_size ) // Tiles Set - AM_RANGE(0x878840, 0x87884d) AM_WRITE(hyprduel_blitter_w) AM_BASE(&hyprduel_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(hyprduel_window_w) AM_BASE(&hyprduel_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(hypr_scrollreg_w ) // Scroll Regs - AM_RANGE(0x87887c, 0x87887d) AM_WRITE(hypr_scrollreg_init_w ) // scroll regs all sets - AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x8788a0, 0x8788a1) AM_WRITE(MWA16_NOP ) - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(hyprduel_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_irq_enable ) // IRQ Enable - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_screenctrl ) // Screen Control - AM_RANGE(0x879700, 0x879713) AM_WRITE(MWA16_RAM) AM_BASE(&hyprduel_videoregs ) // Video Registers - AM_RANGE(0x400000, 0x400001) AM_WRITE(hypr_subcpu_control_w ) - AM_RANGE(0xc00000, 0xc1ffff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sharedram1 ) //? - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP ) - AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sharedram2 ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magerror_readmem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x003fff) AM_READ(MRA16_RAM ) - AM_RANGE(0x004000, 0x007fff) AM_READ(MRA16_RAM ) -// AM_RANGE(0x400002, 0x400003) AM_READ(YM2151_status_port_0_lsb_r ) - AM_RANGE(0x400004, 0x400005) AM_READ(OKIM6295_status_0_lsb_r ) - AM_RANGE(0xc00000, 0xc07fff) AM_READ(MRA16_RAM ) - AM_RANGE(0xfe0000, 0xffffff) AM_READ(MRA16_RAM ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magerror_writemem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x003fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram1_2 ) // shadow ($c00000 - $c03fff : vector, write ok) - AM_RANGE(0x004000, 0x007fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram2_2 ) // shadow ($fe4000 - $fe7fff : read only) - AM_RANGE(0x400000, 0x400001) AM_WRITE(YM2413_register_port_0_lsb_w ) - AM_RANGE(0x400002, 0x400003) AM_WRITE(YM2413_data_port_0_lsb_w ) - AM_RANGE(0x400004, 0x400005) AM_WRITE(OKIM6295_data_0_lsb_w ) - AM_RANGE(0x800000, 0x800001) AM_WRITE(MWA16_NOP ) - AM_RANGE(0xc00000, 0xc07fff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram1_1 ) // (sound driver) - AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(MWA16_RAM) AM_BASE(&hypr_sub_sharedram2_1 ) -ADDRESS_MAP_END - - -/*************************************************************************** - Input Ports -***************************************************************************/ - -#define JOY_LSB(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - -#define JOY_MSB(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - - -INPUT_PORTS_START( hyprduel ) - PORT_START - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x4000, 0x0000, "Show Warning" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x3fff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Start Up Mode" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x2000, "2" ) - PORT_DIPSETTING( 0x3000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - JOY_LSB(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) - JOY_MSB(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/*************************************************************************** - Graphics Layouts -***************************************************************************/ - -/* 8x8x4 tiles */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 4*8 }, /* line modulo */ - 32*8 /* char modulo */ -}; - -/* 8x8x8 tiles for later games */ -static const gfx_layout layout_8x8x8h = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 8*8 }, /* line modulo */ - 32*8 /* char modulo (half char step) */ -}; - -static const gfx_decode gfxdecodeinfo_14220[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { REGION_GFX1, 0, &layout_8x8x8h, 0x0, 0x20 }, // [1] 8 Bit Tiles - { -1 } -}; - -/*************************************************************************** - Sound Communication -***************************************************************************/ - -static void sound_irq(int state) -{ - cpunum_set_input_line(1, 1, HOLD_LINE); -} - -static struct YM2151interface ym2151_interface = -{ - sound_irq -}; - -/*************************************************************************** - Machine Drivers -***************************************************************************/ - -static MACHINE_DRIVER_START( hyprduel ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000/2) /* 10MHz */ - MDRV_CPU_PROGRAM_MAP(hyprduel_readmem,hyprduel_writemem) - MDRV_CPU_VBLANK_INT(hyprduel_interrupt,RASTER_LINES) - - MDRV_CPU_ADD(M68000,20000000/2) /* 10MHz */ - MDRV_CPU_PROGRAM_MAP(hyprduel_readmem2,hyprduel_writemem2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(hyprduel) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(hyprduel_14220) - MDRV_VIDEO_UPDATE(hyprduel) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 4000000/16/16*132) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.57) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.57) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( magerror ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000/2) /* 10MHz */ - MDRV_CPU_PROGRAM_MAP(magerror_readmem,magerror_writemem) - MDRV_CPU_VBLANK_INT(hyprduel_interrupt,RASTER_LINES) - - MDRV_CPU_ADD(M68000,20000000/2) /* 10MHz */ - MDRV_CPU_PROGRAM_MAP(magerror_readmem2,magerror_writemem2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(hyprduel) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(hyprduel_14220) - MDRV_VIDEO_UPDATE(hyprduel) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.57) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.57) - - MDRV_SOUND_ADD(OKIM6295, 4000000/16/16*132) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.57) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.57) -MACHINE_DRIVER_END - -/*************************************************************************** - ROMs Loading -***************************************************************************/ - -static DRIVER_INIT( hyprduel ) -{ - int i; - UINT8 *ROM = memory_region(REGION_GFX1); - - /* - Tiles can be either 4-bit or 8-bit, and both depths can be used at the same - time. The transparent pen is the last one, that is 15 or 255. To make - tilemap.c handle that, we invert gfx data so the transparent pen becomes 0 - for both tile depths. - */ - for (i = 0;i < memory_region_length(REGION_GFX1);i++) - ROM[i] ^= 0xff; - -// ROM[(0x174b9*0x20)+0x1f] |= 0x0e; /* I */ -// ROM[(0x174e9*0x20)+0x1f] |= 0x0e; - - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc07fff, 0, 0, hypr_sharedram1_w); - memory_install_write16_handler(1, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc07fff, 0, 0, hypr_sharedram1_w); - memory_install_write16_handler(1, ADDRESS_SPACE_PROGRAM, 0x000000, 0x003fff, 0, 0, hypr_sharedram1_w); - - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xfe0000, 0xffffff, 0, 0, hypr_sharedram2_w); - memory_install_write16_handler(1, ADDRESS_SPACE_PROGRAM, 0xfe0000, 0xffffff, 0, 0, hypr_sharedram2_w); - - requested_int = 0x00; - blitter_bit = 2; - *hypr_irq_enable = 0xff; - - int_num = strcmp(Machine->gamedrv->name, "magerror")?2:1; -} - - -ROM_START( hyprduel ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "hd_prg2.rom", 0x000000, 0x40000, CRC(c7402722) SHA1(e385676cdcee65a3ddf07791d82a1fe83ba1b3e2) ) - ROM_LOAD16_BYTE( "hd_prg1.rom", 0x000001, 0x40000, CRC(d8297c2b) SHA1(2e23c5b1784d0a465c0c0dc3ca28505689a8b16c) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Prg + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "hyper-1.4", 0x000000, 0x100000, CRC(4b3b2d3c) SHA1(5e9e8ec853f71aeff3910b93dadbaeae2b61717b) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-2.6", 0x000002, 0x100000, CRC(dc230116) SHA1(a3c447657d8499764f52c81382961f425c56037b) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-3.3", 0x000004, 0x100000, CRC(2d770dd0) SHA1(27f9e7f67e96210d3710ab4f940c5d7ae13f8bbf) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-4.5", 0x000006, 0x100000, CRC(f88c6d33) SHA1(277b56df40a17d7dd9f1071b0d498635a5b783cd) , ROM_GROUPWORD | ROM_SKIP(6) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "97.11", 0x00000, 0x40000, CRC(bf3f8574) SHA1(9e743f05e53256c886d43e1f0c43d7417134b9b3) ) -ROM_END - -ROM_START( hyprdelj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "u24a.10", 0x000000, 0x40000, CRC(2458f91d) SHA1(c75c7bccc84738e29b35667793491a1213aea1da) ) - ROM_LOAD16_BYTE( "u23a.9", 0x000001, 0x40000, CRC(98aedfca) SHA1(42028e57ac79473cde683be2100b953ff3b2b345) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Prg + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "hyper-1.4", 0x000000, 0x100000, CRC(4b3b2d3c) SHA1(5e9e8ec853f71aeff3910b93dadbaeae2b61717b) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-2.6", 0x000002, 0x100000, CRC(dc230116) SHA1(a3c447657d8499764f52c81382961f425c56037b) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-3.3", 0x000004, 0x100000, CRC(2d770dd0) SHA1(27f9e7f67e96210d3710ab4f940c5d7ae13f8bbf) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "hyper-4.5", 0x000006, 0x100000, CRC(f88c6d33) SHA1(277b56df40a17d7dd9f1071b0d498635a5b783cd) , ROM_GROUPWORD | ROM_SKIP(6) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "97.11", 0x00000, 0x40000, CRC(bf3f8574) SHA1(9e743f05e53256c886d43e1f0c43d7417134b9b3) ) -ROM_END - -ROM_START( magerror ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "u24.10", 0x000000, 0x40000, CRC(5e78027f) SHA1(053374942bc545a92cc6f6ab6784c4626e4ec9e1) ) - ROM_LOAD16_BYTE( "u23.9", 0x000001, 0x40000, CRC(7271ec70) SHA1(bd7666390b70821f90ba976a3afe3194fb119478) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Prg + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "mr01.u76", 0x000004, 0x100000, CRC(6cc3b928) SHA1(f19d0add314867bfb7dcefe8e7a2d50a84530df7) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "mr03.u77", 0x000006, 0x100000, CRC(6b1eb0ea) SHA1(6167a61562ef28147a7917c692f181f3fc2d5be6) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "mr02.u74", 0x000000, 0x100000, CRC(f7ba06fb) SHA1(e1407b0d03863f434b68183c01e8547612e5c5fd) , ROM_GROUPWORD | ROM_SKIP(6) ) - ROMX_LOAD( "mr04.u75", 0x000002, 0x100000, CRC(8c114d15) SHA1(4eb1f82e7992deb126633287cb4fd2a6d215346c) , ROM_GROUPWORD | ROM_SKIP(6) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "u97.11", 0x00000, 0x40000, CRC(2e62bca8) SHA1(191fff11186dbbc1d9d9f3ba1b6e17c38a7d2d1d) ) -ROM_END - -GAME( 1993, hyprduel, 0, hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 1)", 0 ) -GAME( 1993, hyprdelj, hyprduel, hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 2)", 0 ) - -GAME( 199?, magerror, 0, magerror, hyprduel, hyprduel, ROT0, "Technosoft / Jaleco", "Search for the Magical Error", GAME_NOT_WORKING ) diff --git a/src/drivers/iqblock.c b/src/drivers/iqblock.c deleted file mode 100644 index 048d283ff..000000000 --- a/src/drivers/iqblock.c +++ /dev/null @@ -1,474 +0,0 @@ -/*************************************************************************** - -IQ Block (c) 1992 IGS - -Driver by Nicola Salmoria and Ernesto Corvi - -TODO: -- Who generates IRQ and NMI? How many should there be per frame? - -- Sound chip is a UM3567. Is this compatible to something already in MAME? yes, YM2413 - -- Coin 2 doesn't work? DIP switch setting? - -- Protection: - I can see it reading things like the R register here and there, so it might - be cycle-dependant or something. - - 'Crash 1' checks I was able to see: - PC = $52FA - PC = $507F - - 'Crash 2' checks I was able to see: - PC = $54E6 - -Stephh's notes : - - - Coin 2 as well as buttons 2 to 4 for each player are only read in "test mode". - Same issue for Dip Siwtches 0-7 and 1-2 to 1-6. - Some other games on the same hardware might use them. - - Dip Switch 0 is stored at 0xf0ac and Dip Switch 1 is stored at 0xf0ad. - However they are both read back at the same time with "ld hl,($F0AC)" instructions. - - Dip Switches 0-0 and 0-1 are read via code at 0x9470. - This routine is called when you made a "line" after the routine that checks the score - for awarding extra help and/or changing background. - Data is coming from 4 possible tables (depending on them) which seem to be 0x84 bytes wide. - Table 0 offset is 0xeaf7. - IMO, this has something to do with difficulty but there is no confirmation about that ! - - Dip Switch 1-0 is read only once after the P.O.S.T. via code at 0xa200. - It changes (or not) the contents of 0xf0db.w which can get these 2 possible values - at start : 0x47a3 (when OFF) or 0x428e (when ON) which seem to be tables. - If you set a WP to 0xf0db, you'll notice that it's called more often in the "demo mode" - when the Dip Switch is ON, so, as it implies writes to outport 0x50b0, I think it has - something to do with "Demo Sounds". - I can't tell however if setting the Dip Switch to OFF means "Demo Sounds" OFF or ON ! - -Grndtour: - - Title should flash 3X slowly. In MAME it flashes too fast, or strangely?? - - -***************************************************************************/ - -#include "driver.h" -#include "machine/8255ppi.h" -#include "iqblock.h" -#include "sound/2413intf.h" - -static UINT8 *rambase; - -static WRITE8_HANDLER( iqblock_prot_w ) -{ - rambase[0xe26] = data; - rambase[0xe27] = data; - rambase[0xe1c] = data; -} - -static WRITE8_HANDLER( grndtour_prot_w ) -{ - rambase[0xe39] = data; - rambase[0xe3a] = data; - rambase[0xe2f] = data; - -} - - -static INTERRUPT_GEN( iqblock_interrupt ) -{ - if (cpu_getiloops() & 1) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); /* ???? */ - else - cpunum_set_input_line(0, 0, ASSERT_LINE); /* ???? */ -} - -static WRITE8_HANDLER( iqblock_irqack_w ) -{ - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - -static READ8_HANDLER( extrarom_r ) -{ - return memory_region(REGION_USER1)[offset]; -} - - -static WRITE8_HANDLER( port_C_w ) -{ - /* bit 4 unknown; it is pulsed at the end of every NMI */ - - /* bit 5 seems to be 0 during screen redraw */ - iqblock_videoenable = data & 0x20; - - /* bit 6 is coin counter */ - coin_counter_w(0,data & 0x40); - - /* bit 7 could be a second coin counter, but coin 2 doesn't seem to work... */ -} - -static ppi8255_interface ppi8255_intf = -{ - 1, /* 1 chip */ - { input_port_0_r }, /* Port A read */ - { input_port_1_r }, /* Port B read */ - { input_port_2_r }, /* Port C read */ - { 0 }, /* Port A write */ - { 0 }, /* Port B write */ - { port_C_w }, /* Port C write */ -}; - -MACHINE_RESET( iqblock ) -{ - ppi8255_init(&ppi8255_intf); -} - - - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(&rambase) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x2000, 0x23ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split1_w) - AM_RANGE(0x2800, 0x2bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_split2_w) - AM_RANGE(0x6000, 0x603f) AM_WRITE(iqblock_fgscroll_w) - AM_RANGE(0x6800, 0x69ff) AM_WRITE(iqblock_fgvideoram_w) /* initialized up to 6fff... bug or larger tilemap? */ - AM_RANGE(0x7000, 0x7fff) AM_WRITE(iqblock_bgvideoram_w) - AM_RANGE(0x5080, 0x5083) AM_WRITE(ppi8255_0_w) - AM_RANGE(0x5080, 0x5083) AM_READ(ppi8255_0_r) - AM_RANGE(0x5090, 0x5090) AM_READ(input_port_3_r) - AM_RANGE(0x50a0, 0x50a0) AM_READ(input_port_4_r) - AM_RANGE(0x50b0, 0x50b0) AM_WRITE(YM2413_register_port_0_w) // UM3567_register_port_0_w - AM_RANGE(0x50b1, 0x50b1) AM_WRITE(YM2413_data_port_0_w) // UM3567_data_port_0_w - AM_RANGE(0x50c0, 0x50c0) AM_WRITE(iqblock_irqack_w) - AM_RANGE(0x7000, 0x7fff) AM_READ(iqblock_bgvideoram_r) - AM_RANGE(0x8000, 0xffff) AM_READ(extrarom_r) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( iqblock ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) // "test mode" only - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) // "test mode" only - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // "test mode" only - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) // "test mode" only - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) // "test mode" only - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL // "test mode" only - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL // "test mode" only - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, "Unknown SW 0-0&1" ) // Difficulty ? Read notes above - PORT_DIPSETTING( 0x03, "0" ) - PORT_DIPSETTING( 0x02, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x0c, 0x0c, "Helps" ) - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Demo Sounds?" ) // To be confirmed ! Read notes above - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - - -static const gfx_layout tilelayout1 = -{ - 8,8, - RGN_FRAC(1,3), - 6, - { 8, 0, RGN_FRAC(1,3)+8, RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8, RGN_FRAC(2,3)+0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 8*16 -}; - -static const gfx_layout tilelayout2 = -{ - 8,32, - RGN_FRAC(1,2), - 4, - { 8, 0, RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16, - 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 }, - 32*16 -}; - -static const gfx_layout tilelayout3 = -{ - 8,32, - RGN_FRAC(1,3), - 6, - { 8, 0, RGN_FRAC(1,3)+8, RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8, RGN_FRAC(2,3)+0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16, - 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 }, - 32*16 -}; - -static const gfx_decode gfxdecodeinfo_iqblock[] = -{ - { REGION_GFX1, 0, &tilelayout1, 0, 16 }, /* only odd color codes are used */ - { REGION_GFX2, 0, &tilelayout2, 0, 4 }, /* only color codes 0 and 3 used */ - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_cabaret[] = -{ - { REGION_GFX1, 0, &tilelayout1, 0, 16 }, - { REGION_GFX2, 0, &tilelayout3, 0, 16 }, - { -1 } /* end of array */ -}; - - -static MACHINE_DRIVER_START( iqblock ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,12000000/2) /* 6 MHz */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_IO_MAP(main_portmap,0) - MDRV_CPU_VBLANK_INT(iqblock_interrupt,16) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(iqblock) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_iqblock) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(iqblock) - MDRV_VIDEO_UPDATE(iqblock) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cabaret ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z180,12000000/2) /* 6 MHz , appears to use Z180 instructions */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_IO_MAP(main_portmap,0) - MDRV_CPU_VBLANK_INT(iqblock_interrupt,16) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(iqblock) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_cabaret) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(iqblock) - MDRV_VIDEO_UPDATE(iqblock) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( iqblock ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 64K for extra RAM */ - ROM_LOAD( "u7.v5", 0x0000, 0x10000, CRC(811f306e) SHA1(d0aef80f1624002d05721276358f26a3ef69a3f6) ) - - ROM_REGION( 0x8000, REGION_USER1, 0 ) - ROM_LOAD( "u8.6", 0x0000, 0x8000, CRC(2651bc27) SHA1(53e1d6ffd78c8a612863b29b0f8734e740d563c7) ) /* background maps, read by the CPU */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "u28.1", 0x00000, 0x20000, CRC(ec4b64b4) SHA1(000e9df0c0b5fcde5ead218dfcdc156bc4be909d) ) - ROM_LOAD( "u27.2", 0x20000, 0x20000, CRC(74aa3de3) SHA1(16757c24765d22026793a0c53d3f24c106951a18) ) - ROM_LOAD( "u26.3", 0x40000, 0x20000, CRC(2896331b) SHA1(51eba9f9f653a11cb96c461ab495d943d34cedc6) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "u25.4", 0x0000, 0x4000, CRC(8fc222af) SHA1(ac1fb5e6caec391a76e3af51e133aecc65cd5aed) ) - ROM_LOAD( "u24.5", 0x4000, 0x4000, CRC(61050e1e) SHA1(1f7185b2a5a2e237120276c95344744b146b4bf6) ) -ROM_END - -ROM_START( grndtour ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 64K for extra RAM */ - ROM_LOAD( "grand7.u7", 0x0000, 0x10000, CRC(95cac31e) SHA1(47bbcce6981ea3d38e0aa49ccd3762a4529f3c96) ) - - ROM_REGION( 0x8000, REGION_USER1, 0 ) - ROM_LOAD( "grand6.u8", 0x0000, 0x8000, CRC(4c634b86) SHA1(c36df147187bc526f2348bc2f4d4c4e35bb45f38) ) /* background maps, read by the CPU */ - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "grand1.u28", 0x00000, 0x40000, CRC(de85c664) SHA1(3a4b0cac88a0fea1c80541fe49c799e3550bedee) ) - ROM_LOAD( "grand2.u27", 0x40000, 0x40000, CRC(8456204e) SHA1(b604d501f360670f57b937ad96af64c1c2038ef7) ) - ROM_LOAD( "grand3.u26", 0x80000, 0x40000, CRC(77632917) SHA1(d91eadec2e0fb3082299362d18814b8ec4c5e068) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "grand4.u25", 0x0000, 0x4000, CRC(48d09746) SHA1(64669f572b9a98b078ee1ea0b614c117e5dfbec9) ) - ROM_LOAD( "grand5.u24", 0x4000, 0x4000, CRC(f896efb2) SHA1(8dc8546e363b4ff80983e3b8e2a19ebb7ff30c7b) ) -ROM_END - -ROM_START( cabaret ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + 64K for extra RAM */ - ROM_LOAD( "cg-8v204.u97", 0x0000, 0x10000, CRC(44cebf77) SHA1(e3f4e4abf41388f0eed50cf9a0fd0b14aa2f8b93) ) - - ROM_REGION( 0x8000, REGION_USER1, 0 ) - ROM_LOAD( "cg-7.u98", 0x0000, 0x8000, CRC(b93ae6f8) SHA1(accb87045c278d5d79fff65bb763aa6e8025a945) ) /* background maps, read by the CPU */ - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cg-4.u43", 0x00000, 0x20000, CRC(e509f50a) SHA1(7e68ca54642c92cdb348d5cf9466065938d0e027) ) - ROM_LOAD( "cg-5.u44", 0x20000, 0x20000, CRC(e2cbf489) SHA1(3a15ed7efd5696656e6d55b54ec0ff779bdb0d98) ) - ROM_LOAD( "cg-6.u45", 0x40000, 0x20000, CRC(4f2fced7) SHA1(b954856ffdc97fbc99fd3ec087376fbf466d2d5a) ) - - ROM_REGION( 0xc000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cg-1.u40", 0x0000, 0x4000, CRC(7dee8b1f) SHA1(80dbdf6aab9b02cc000956b7894023552428e6a1) ) - ROM_LOAD( "cg-2.u41", 0x4000, 0x4000, CRC(ce8dea39) SHA1(b30d1678a7b98cd821d2ce7383a83cb7c9f31b5f) ) - ROM_LOAD( "cg-3.u42", 0x8000, 0x4000, CRC(7e1f821f) SHA1(b709d49f9d1890fe3b8ca7f90affc0017a0ad95e) ) -ROM_END - - - -static DRIVER_INIT( iqblock ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int i; - - /* decrypt the program ROM */ - for (i = 0;i < 0xf000;i++) - { - if ((i & 0x0282) != 0x0282) rom[i] ^= 0x01; - if ((i & 0x0940) == 0x0940) rom[i] ^= 0x02; - if ((i & 0x0090) == 0x0010) rom[i] ^= 0x20; - } - - /* initialize pointers for I/O mapped RAM */ - paletteram = rom + 0x12000; - paletteram_2 = rom + 0x12800; - iqblock_fgvideoram = rom + 0x16800; - iqblock_bgvideoram = rom + 0x17000; - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfe26, 0xfe26, 0, 0, iqblock_prot_w); - iqblock_vidhrdw_type=1; -} - -static DRIVER_INIT( grndtour ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int i; - - /* decrypt the program ROM */ - for (i = 0;i < 0xf000;i++) - { - if ((i & 0x0282) != 0x0282) rom[i] ^= 0x01; - if ((i & 0x0940) == 0x0940) rom[i] ^= 0x02; - if ((i & 0x0060) == 0x0040) rom[i] ^= 0x20; - } - - /* initialize pointers for I/O mapped RAM */ - paletteram = rom + 0x12000; - paletteram_2 = rom + 0x12800; - iqblock_fgvideoram = rom + 0x16800; - iqblock_bgvideoram = rom + 0x17000; - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xfe39, 0xfe39, 0, 0, grndtour_prot_w); - iqblock_vidhrdw_type=0; -} - - -static DRIVER_INIT( cabaret ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int i; - - /* decrypt the program ROM */ - for (i = 0;i < 0xf000;i++) - { - if ((i & 0xb206) == 0xa002) rom[i] ^= 0x01; // could be (i & 0x3206) == 0x2002 - } - - /* initialize pointers for I/O mapped RAM */ - paletteram = rom + 0x12000; - paletteram_2 = rom + 0x12800; - iqblock_fgvideoram = rom + 0x16800; - iqblock_bgvideoram = rom + 0x17000; - iqblock_vidhrdw_type=0; -} - - - -GAME( 1993, iqblock, 0, iqblock, iqblock, iqblock, ROT0, "IGS", "IQ-Block", 0 ) -GAME( 1993, grndtour, 0, iqblock, iqblock, grndtour, ROT0, "IGS", "Grand Tour", 0 ) - -GAME( 19??, cabaret, 0, cabaret, iqblock, cabaret, ROT0, "IGS", "Cabaret", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/itech8.c b/src/drivers/itech8.c deleted file mode 100644 index bf01ed04a..000000000 --- a/src/drivers/itech8.c +++ /dev/null @@ -1,2721 +0,0 @@ -/*************************************************************************** - - Incredible Technologies/Strata system - (8-bit blitter variant) - - driver by Aaron Giles - - Games supported: - * Strata Bowling [2 sets] - * Super Strike Bowling - * Wheel of Fortune [2 sets] - * Golden Tee Golf [2 sets] - * Golden Tee Golf II [3 sets] - * Slick Shot [3 sets] - * Dyno-Bop - * Arlington Horse Racing - * Neck & Neck - * Peggle [2 sets] - * Poker Dice - * Hot Shots Tennis [2 sets] - * Rim Rockin' Basketball [4 sets] - * Ninja Clowns - - Known issues: - * Rim Rockin' Basketball should use an HD6309, but that core is - broken, so we're using the 6809 for now - * Ninja Clowns main ROM dump claims it's bad - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - CPU #1 (6809 games) - ======================================================================== - Note that many games have the regions 0000-0FFF and 1000-1FFF swapped. - Also, Golden Tee Golf II (V2.2) has most of the addresses in the - 0000-0FFF range swizzled randomly. - ======================================================================== - 0100 W xxxxxxxx Unknown - 0120 W xxxxxxxx Sound data - 0140 R xxxxxxxx Input port - 0140 W xxxxxxxx GROM blitter bank select - 0160 R xxxxxxxx Input port - 0160 W xx------ Display page select - W x------- (upper page select) - W -x------ (unknown) - 0180 R xxxxxxxx Input port/DIP switches - 0180 W xxxxxxxx Video RAM upper data latch - 01A0 W -------- NMI acknowledge (on some boards) - 01C0-01C1 R/W xxxxxxxx Blitter chip address high - 01C2-01C3 R/W xxxxxxxx Blitter chip address low - 01C4-01C5 R/W ---xxxxx Blitter chip flags - R/W ---x---- (render transparent) - R/W ----x--- (expand RLE compressed data) - R/W -----x-- (flip vertically) - R/W ------x- (flip horizontally) - R/W -------x (shift data left 4 bits) - 01C6-01C7 R x------- Blitter chip status (1=busy) - 01C6-01C7 W -------- Blitter chip trigger - 01C8-01C9 R/W xxxxxxxx Blitter chip source width - 01CA-01CB R/W xxxxxxxx Blitter chip source height - 01CC-01CD R/W xxxxxxxx Blitter chip source data mask - 01CE-01CF R/W xxxxxxxx Blitter chip output port - W --x----- (main program ROM bank select) - 01D0-01D1 R/W xxxxxxxx Blitter chip X starting coordinate - 01D2-01D3 R/W xxxxxxxx Blitter chip maximum scanline count - 01D4-01D5 R/W xxxxxxxx Blitter chip X ending coordinate - 01D6-01D7 R/W xxxxxxxx Blitter chip initial scanline skip - 01D8-01DF R xxxxxxxx Blitter chip input ports - 01E0 W xxxxxxxx Palette address latch - 01E2-01E3 W --xxxxxx Palette data latches - 1000-11FF R/W xxxxxxxx TMS34061 register access - 1200-13FF R/W xxxxxxxx TMS34061 XY addressing access - 1400-15FF R/W xxxxxxxx TMS34061 register access - 1600-17FF R/W xxxxxxxx TMS34061 direct access - 1800-19FF R/W xxxxxxxx TMS34061 shift register read - 1A00-1BFF R/W xxxxxxxx TMS34061 shift register write - 2000-3FFF R/W xxxxxxxx RAM (battery-backed) - 4000-7FFF R xxxxxxxx Banked program ROM - 8000-FFFF R xxxxxxxx Fixed program ROM - ======================================================================== - Interrupts: - NMI generated by VBLANK - IRQ generated by TMS34061 scanline interrupt - FIRQ generated by blitter when finished - ======================================================================== - - ======================================================================== - CPU #1 (68000 games) - ======================================================================== - 000000-003FFF R/W xxxxxxxx xxxxxxxx RAM (battery-backed) - 004000-03FFFF R xxxxxxxx xxxxxxxx Main program ROM - 100080 W xxxxxxxx -------- Sound data - 100100 R xxxxxxxx -------- Input port - 100100 W xxxxxxxx -------- GROM blitter bank select - 100180 R xxxxxxxx -------- Input port - 100100 W xx------ -------- Display page select - W x------- -------- (upper page select) - W -x------ -------- (unknown) - 100240 W xxxxxxxx -------- Video RAM upper data latch - 100280 R xxxxxxxx -------- Input port/DIP switches - 100280 W -------- -------- Unknown - 100300-10031F R/W xxxxxxxx xxxxxxxx Blitter chip (as above) - 100380 W xxxxxxxx -------- Palette address latch - 1003a0 W --xxxxxx -------- Palette data latches - 110000-1101FF R/W xxxxxxxx xxxxxxxx TMS34061 register access - 110200-1103FF R/W xxxxxxxx xxxxxxxx TMS34061 XY addressing access - 110400-1105FF R/W xxxxxxxx xxxxxxxx TMS34061 register access - 110600-1107FF R/W xxxxxxxx xxxxxxxx TMS34061 direct access - 110800-1109FF R/W xxxxxxxx xxxxxxxx TMS34061 shift register read - 110A00-110BFF R/W xxxxxxxx xxxxxxxx TMS34061 shift register write - ======================================================================== - Interrupts: - INT 3 generated by VBLANK - INT 2 generated by blitter when finished - INT 1 generated by ??? - ======================================================================== - - ======================================================================== - CPU #2 - ======================================================================== - 0000 W xxxxxxxx Unknown - 1000 R xxxxxxxx Sound command input - 2000-2003 R/W xxxxxxxx Yamaha chip I/O - 3000-37FF R/W xxxxxxxx RAM - 4000 R/W xxxxxxxx OKI 6295 I/O - 5000-5003 R/W xxxxxxxx 6521 PIA chip (on early YM3812 boards) - 5000-500F R/W xxxxxxxx 6522 VIA chip (on later YM3812 boards) - 8000-FFFF R xxxxxxxx Program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by write to sound command input - FIRQ generated by Yamaha chip, or by 6522 VIA (if present) - ======================================================================== - -**************************************************************************** - - PCB layouts - -**************************************************************************** - - Summary: - - There are 7 known variants of PCBs for these games. All the PCBs - have the following features in common: - - 68B09 @ 2 MHz for the main CPU - 8k RAM for the main CPU - - 68B09 @ 2 MHz for the sound CPU - 2k RAM for the sound CPU - YM2203C or YM3812 for music - OKI M6295 for speech - - TMS34061 for the video controller - ITV4400 custom blitter for rendering - 6-bit RAMDAC for palette - From 2-8 64k x 4-bit VRAM chips for frame buffers - - An overview of each style PCB is given below: - - Wheel of Fortune-style - * Single board - * YM2203C for music - * 2 VRAM chips for a single 8-bit 256x256 video page - - Strata Bowling-style - * Single board - * YM2203C for music - * 3 VRAM chips for an 8-bit 256x256 video background - plus a 4-bit 256x256 video foreground layer - - Slick Shot-style - * Single board - * YM2203C for music - * 4 VRAM chips for two 8-bit 256x256 video pages - * additional Z80 and program ROM for sensor reading - - Hot Shots Tennis-style - * Single board - * YM3812 for music - * 8 VRAM chips for two 8-bit 512x256 video pages - - Rim Rockin' Basketball-style - * Separate main and sound boards - * HD63C09 @ 3MHz replaces 68B09 for main CPU - * YM3812 for music - * 8 VRAM chips for two 8-bit 512x256 video pages - - Ninja Clowns-style - * Separate main and sound boards - * 68000 @ 12MHz replaces 68B09 for main CPU - * YM3812 for music - * 8 VRAM chips for two 8-bit 512x256 video pages - - Golden Tee Golf II-style - * Separate main and sound boards - * YM3812 for music - * I haven't see one yet, so I can't provide additional details - -**************************************************************************** - - ---------------- - Wheel of Fortune - ---------------- - - +------------------------------------+-+ - | Bt476KP35 | | - | 12MHz DIPSW4 | | - |(MT42C4064Z-10) | | - |(MT42C4064Z-10) | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 | | - | | | - | TMS34061 +- - | | - | ITV4400 ITVS | - | YM2203C | - | OKI6295 | - | (GROM4) Battery | - | GROM3 CDM6264LE12 SROM0 | - | GROM2 WOF-PGM HY6116 | - | GROM1 WOFSND 8MHz | - | GROM0 | - | MC68B09 MC68B09 | - +--------------------------------------+ - - GROM0-3 = AM27C256 - WOF-PGM = ??? - WOFSND = AM27C256 - SROM0 = AM27C010 - ITVS = ??? - MT42C4064Z = 64k x 4 VRAM (2 populated on Wheel of Fortune) - CDM6464 = 8k x 8 RAM - HY6116 = 2k x 8 RAM - Bt476 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - ------------------------------ - Strata Bowling/Golden Tee Golf - ------------------------------ - - +---------------------------------+-+ - | IMSG176 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 12MHz | | - | | | - | TMS34061 DIPSW4 | | - | | | - | ITV4400 +- - | | - | Battery ITVS | - | (GROM5) | - | (GROM4) | - | (GROM3) P5164 | - | GROM2 SBPROG MS6516 SROM0 | - | GROM1 SBSNDS | - | GROM0 8MHz | - | MC68B09 MC68B09 | - +-----------------------------------+ - - GROM0-3 = AM27C010 - SBPROG = 27C256 - SBSNDS = 27C256 - SROM0 = AM27C010 - ITVS = ??? - MT42C4064Z = 64k x 4 VRAM - P5164 = 8k x 8 RAM - MS6516 = 2k x 8 RAM - IMSG176 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - --------------------- - Slick Shot/Poker Dice - --------------------- - (Likely Dyno Bop as well) - - +------------------------------------+-+ - | Z80PGM 4Mhz itvs5 | | - | Z80 rev.1 | | - | | | - | MT42C4064Z-10 MS176-50 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 12MHz | | - | MT42C4064Z-10 DIPSW4 | | - | +- - | TMS34061 | - | | - | ITV4400 ITVS | - | YM2203C | - | OKI6295 | - | (GROM4) Battery | - | (GROM3) P5164S SROM0 | - | (GROM2) POOLPGM P5116 | - | GROM1 POOLSND 8MHz | - | GROM0 | - | MC68B09 MC68B09 | - +--------------------------------------+ - - (lower half is almost identical to Wheel of Fortune) - (top contains extra Z80 and logic) - (Z80 and ROM not populated on Poker Dice) - - GROM0-1 = AM27C010 - POOLPGM = ??? - POOLSND = AM27C256 - SROM0 = 27C512 - ITVS = ??? - MT42C4064Z = 64k x 4 VRAM - P5164S = 8k x 8 RAM - P5116 = 2k x 8 RAM - MS176 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - ----------------------------------- - Hot Shots Tennis/Peggle/Neck & Neck - ----------------------------------- - (Likely Arlington Horse Racing as well) - - +------------------------------------------------+-+ - | MT42C4064Z-10 8MHz MS176-50 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 | | - | MT42C4064Z-10 TMS34061 DIPSW4 | | - | MT42C4064Z-10 12MHz +- - | MT42C4064Z-10 | - | ITV4400 | - | (GROM5) YM3812 OKI6295 | - | (GROM4) Battery ITVS-3 MS6516 | - | (GROM3) P5164 PEG-SND SROM0 | - | GROM2 PEGGLE.BIN 6821 | - | GROM1 | - | GROM0 | - | EF68B09 8MHz EF68B09 | - +--------------------------------------------------+ - - GROM0-5 = AM27C010 - POOLPGM = ??? - POOLSND = AM27C256 - SROM0 = 27C512 - ITVS = ??? - MT42C4064Z = 64k x 4 VRAM - P5164S = 8k x 8 RAM - P5116 = 2k x 8 RAM - MS176 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - ---------------------- - Rim Rockin' Basketball - ---------------------- - - Lower board - - +--------------- --------------------------------+ - | | | - +---------------+ MT42C4064Z-10 MT42C4064Z-10 | - | MT42C4064Z-10 MT42C4064Z-10 | - | IMSG176 MT42C4064Z-10 MT42C4064Z-10 | - | MT42C4064Z-10 MT42C4064Z-10 | - | DIPSW4 8MHz ITBP-1 | - | | - | MS6264-10 | - | RRB.BIM TM34061 ITV4400 | - | ITVS-2 | - | GROM02 GROM00 | - | Battery | - | HD63C09 12MHz GROM03 GROM01 | - +------------------------------------------------+ - - GROM0-3 = - RRB.BIM = - ITVS-2 = ??? - MT42C4064Z-10 = 64k x 4 VRAM - MS6264 = 8k x 8 RAM - IMSG176 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - Sound board - - +---------------------------------+ - | YM3812 OKI6295 SROM0 | - | ITVS-4 MS6516-10 | - | NCSND | - | | - | EF68B09 | - | | - | 6522 | - | P/N 1038 REV2 | - +---------------------------------+ - - SROM0 = M27C2001 - NCSND = AM27C256 - MS6516-10 = 2k x 8 RAM - 6522 = VIA - - - ------------ - Ninja Clowns - ------------ - - Lower board - - +-----------------------------------------------------+-+- - | MS6264 PROM1 (PROM3) DIPSW4 | | - | MS6264 PROM0 (PROM2) | | - | | | - | Battery MC68000P12 | | - | | | - | 12MHz ITVS-5 ITMP-1 | | - | | | - | (GROM7) +- - | (GROM6) 8MHz | - | GROM5 MS176-50 | - | GROM4 | - | GROM3 TMS34061 MT42C4064Z-10 MT42C4064Z-10 | - | GROM2 MT42C4064Z-10 MT42C4064Z-10 | - | GROM1 ITV4400 MT42C4064Z-10 MT42C4064Z-10 | - | GROM0 MT42C4064Z-10 MT42C4064Z-10 | - | P/N 1029 REV3A | - +-------------------------------------------------------+ - - GROM0-5 = M27C2001 - PROM0-1 = AM27C010 - ITVS-5 = PAL16L8 - ITMP-1 = PAL20R4 - MT42C4064Z = 64k x 4 VRAM - MS6264 = 8k x 8 RAM - MS176 = 6-bit DAC - TMS34061 = video controller - ITV4400 = IT custom blitter - - - Sound board - same as Rim Rockin' Basketball - -***************************************************************************/ - - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "machine/6821pia.h" -#include "machine/6522via.h" -#include "machine/ticket.h" -#include "vidhrdw/tms34061.h" -#include "vidhrdw/tlc34076.h" -#include "itech8.h" -#include "sound/2203intf.h" -#include "sound/3812intf.h" -#include "sound/okim6295.h" -#include - - -#define FULL_LOGGING 0 - -#define CLOCK_8MHz (8000000) -#define CLOCK_12MHz (12000000) - - - -/************************************* - * - * Static data - * - *************************************/ - -static UINT8 blitter_int; -static UINT8 tms34061_int; -static UINT8 periodic_int; - -static UINT8 sound_data; - -static UINT8 pia_porta_data; -static UINT8 pia_portb_data; - -static UINT8 *main_ram; -static size_t main_ram_size; - -static const rectangle *visarea; - - - -/************************************* - * - * 6821 PIA interface - * - *************************************/ - -static WRITE8_HANDLER( pia_porta_out ); -static WRITE8_HANDLER( pia_portb_out ); - -static const pia6821_interface pia_interface = -{ - 0, ticket_dispenser_r, 0, 0, 0, 0, /* PIA inputs: A, B, CA1, CB1, CA2, CB2 */ - pia_porta_out, pia_portb_out, 0, 0, /* PIA outputs: A, B, CA2, CB2 */ - 0, 0 /* PIA IRQs: A, B */ -}; - - - -/************************************* - * - * 6522 VIA interface - * - *************************************/ - -static void via_irq(int state); - -static struct via6522_interface via_interface = -{ - /*inputs : A/B */ 0, 0, - /*inputs : CA/B1,CA/B2 */ 0, 0, 0, 0, - /*outputs: A/B */ 0, pia_portb_out, - /*outputs: CA/B1,CA/B2 */ 0, 0, 0, 0, - /*irq */ via_irq -}; - - - -/************************************* - * - * Interrupt handling - * - *************************************/ - -void itech8_update_interrupts(int periodic, int tms34061, int blitter) -{ - /* update the states */ - if (periodic != -1) periodic_int = periodic; - if (tms34061 != -1) tms34061_int = tms34061; - if (blitter != -1) blitter_int = blitter; - - /* handle the 6809 case */ - if (Machine->drv->cpu[0].cpu_type == CPU_M6809) - { - /* just modify lines that have changed */ - if (periodic != -1) cpunum_set_input_line(0, INPUT_LINE_NMI, periodic ? ASSERT_LINE : CLEAR_LINE); - if (tms34061 != -1) cpunum_set_input_line(0, M6809_IRQ_LINE, tms34061 ? ASSERT_LINE : CLEAR_LINE); - if (blitter != -1) cpunum_set_input_line(0, M6809_FIRQ_LINE, blitter ? ASSERT_LINE : CLEAR_LINE); - } - - /* handle the 68000 case */ - else - { - int level = 0; - - /* determine which level is active */ - if (blitter_int) level = 2; - if (periodic_int) level = 3; - - /* update it */ - if (level) - cpunum_set_input_line(0, level, ASSERT_LINE); - else - cpunum_set_input_line(0, 7, CLEAR_LINE); - } -} - - - -/************************************* - * - * Interrupt generation - * - *************************************/ - -static INTERRUPT_GEN( generate_nmi ) -{ - /* signal the NMI */ - itech8_update_interrupts(1, -1, -1); - itech8_update_interrupts(0, -1, -1); - - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", cpu_getscanline()); -} - - -static WRITE8_HANDLER( itech8_nmi_ack_w ) -{ -/* doesn't seem to hold for every game (e.g., hstennis) */ -/* cpunum_set_input_line(0, INPUT_LINE_NMI, CLEAR_LINE);*/ -} - - -static void generate_sound_irq(int state) -{ - cpunum_set_input_line(1, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); -} - - - -/************************************* - * - * Machine initialization - * - *************************************/ - -static MACHINE_START( itech8 ) -{ - pia_config(0, PIA_STANDARD_ORDERING, &pia_interface); - return 0; -} - -static MACHINE_RESET( itech8 ) -{ - /* make sure bank 0 is selected */ - if (Machine->drv->cpu[0].cpu_type == CPU_M6809) - memory_set_bankptr(1, &memory_region(REGION_CPU1)[0x4000]); - - /* reset the PIA (if used) */ - pia_reset(); - - /* reset the VIA chip (if used) */ - via_config(0, &via_interface); - via_set_clock(0, CLOCK_8MHz/4); - via_reset(); - - /* reset the ticket dispenser */ - ticket_dispenser_init(200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); - - /* reset the palette chip */ - tlc34076_reset(6); - - /* set the visible area */ - if (visarea) - { - video_screen_set_visarea(0, visarea->min_x, visarea->max_x, visarea->min_y, visarea->max_y); - visarea = NULL; - } -} - - - -/************************************* - * - * Bank switching - * - *************************************/ - -static void behind_the_beam_update(int scanline_plus_interval) -{ - int scanline = scanline_plus_interval >> 8; - int interval = scanline_plus_interval & 0xff; - - /* force a partial update to the current scanline */ - video_screen_update_partial(0, scanline); - - /* advance by the interval, and wrap to 0 */ - scanline += interval; - if (scanline >= 256) scanline = 0; - - /* set a new timer */ - timer_set(cpu_getscanlinetime(scanline), (scanline << 8) + interval, behind_the_beam_update); -} - - - -/************************************* - * - * Bank switching - * - *************************************/ - -static WRITE8_HANDLER( blitter_w ) -{ - /* bit 0x20 on address 7 controls CPU banking */ - if (offset / 2 == 7) - memory_set_bankptr(1, &memory_region(REGION_CPU1)[0x4000 + 0xc000 * ((data >> 5) & 1)]); - - /* the rest is handled by the video hardware */ - itech8_blitter_w(offset, data); -} - - -static WRITE8_HANDLER( rimrockn_bank_w ) -{ - /* banking is controlled here instead of by the blitter output */ - memory_set_bankptr(1, &memory_region(REGION_CPU1)[0x4000 + 0xc000 * (data & 3)]); -} - - - -/************************************* - * - * Input handling - * - *************************************/ - -/* used by most games */ -static READ8_HANDLER( special_port0_r ) -{ - UINT8 result = readinputport(0); - result = (result & 0xfe) | (pia_portb_data & 0x01); - return result; -} - - -/* used by Rim Rockin' Basketball */ -static READ8_HANDLER( special_port1_r ) -{ - UINT8 result = readinputport(1); - result = (result & 0x7f) | ((pia_portb_data & 0x01) << 7); - return result; -} - - - -/************************************* - * - * 6821 PIA handling - * - *************************************/ - -static WRITE8_HANDLER( pia_porta_out ) -{ - logerror("PIA port A write = %02x\n", data); - pia_porta_data = data; -} - - -static WRITE8_HANDLER( pia_portb_out ) -{ - logerror("PIA port B write = %02x\n", data); - - /* bit 0 provides feedback to the main CPU */ - /* bit 4 controls the ticket dispenser */ - /* bit 5 controls the coin counter */ - /* bit 6 controls the diagnostic sound LED */ - pia_portb_data = data; - ticket_dispenser_w(0, (data & 0x10) << 3); - coin_counter_w(0, (data & 0x20) >> 5); -} - - -static WRITE8_HANDLER( ym2203_portb_out ) -{ - logerror("YM2203 port B write = %02x\n", data); - - /* bit 0 provides feedback to the main CPU */ - /* bit 5 controls the coin counter */ - /* bit 6 controls the diagnostic sound LED */ - /* bit 7 controls the ticket dispenser */ - pia_portb_data = data; - ticket_dispenser_w(0, data & 0x80); - coin_counter_w(0, (data & 0x20) >> 5); -} - - - -/************************************* - * - * Sound communication - * - *************************************/ - -static void delayed_sound_data_w(int data) -{ - sound_data = data; - cpunum_set_input_line(1, M6809_IRQ_LINE, ASSERT_LINE); -} - - -static WRITE8_HANDLER( sound_data_w ) -{ - timer_set(TIME_NOW, data, delayed_sound_data_w); -} - - -static WRITE8_HANDLER( gtg2_sound_data_w ) -{ - /* on the later GTG2 board, they swizzle the data lines */ - data = ((data & 0x80) >> 7) | - ((data & 0x5d) << 1) | - ((data & 0x20) >> 3) | - ((data & 0x02) << 5); - timer_set(TIME_NOW, data, delayed_sound_data_w); -} - - -static READ8_HANDLER( sound_data_r ) -{ - cpunum_set_input_line(1, M6809_IRQ_LINE, CLEAR_LINE); - return sound_data; -} - - - -/************************************* - * - * Sound 6522 VIA handling - * - *************************************/ - -static void via_irq(int state) -{ - if (state) - cpunum_set_input_line(1, M6809_FIRQ_LINE, ASSERT_LINE); - else - cpunum_set_input_line(1, M6809_FIRQ_LINE, CLEAR_LINE); -} - - - -/************************************* - * - * 16-bit memory shunts - * - *************************************/ - -static READ16_HANDLER( blitter16_r ) -{ - return (itech8_blitter_r(offset * 2 + 0) << 8) + itech8_blitter_r(offset * 2 + 1); -} - - -static READ16_HANDLER( tms34061_16_r ) -{ - /* since multiple XY accesses can move the pointer multiple times, we have to */ - /* be careful to only perform one read per access here; fortunately, the low */ - /* bit doesn't matter in XY addressing mode */ - if ((offset & 0x700) == 0x100) - { - int result = itech8_tms34061_r(offset * 2); - return (result << 8) | result; - } - else - return (itech8_tms34061_r(offset * 2 + 0) << 8) + itech8_tms34061_r(offset * 2 + 1); -} - - -static WRITE16_HANDLER( sound_data16_w ) -{ - if (ACCESSING_MSB) - sound_data_w(0, data >> 8); -} - - -static WRITE16_HANDLER( grom_bank16_w ) -{ - if (ACCESSING_MSB) - *itech8_grom_bank = data >> 8; -} - - -static WRITE16_HANDLER( display_page16_w ) -{ - if (ACCESSING_MSB) - itech8_page_w(0, ~data >> 8); -} - - -static WRITE16_HANDLER( tms34061_latch16_w ) -{ - if (ACCESSING_MSB) - tms34061_latch_w(0, data >> 8); -} - - -static WRITE16_HANDLER( blitter16_w ) -{ - if (ACCESSING_MSB) - itech8_blitter_w(offset * 2 + 0, data >> 8); - if (ACCESSING_LSB) - itech8_blitter_w(offset * 2 + 1, data); -} - - -static WRITE16_HANDLER( palette16_w ) -{ - if (ACCESSING_MSB) - itech8_palette_w(offset / 8, data >> 8); -} - - -static WRITE16_HANDLER( tms34061_16_w ) -{ - if (ACCESSING_MSB) - itech8_tms34061_w(offset * 2 + 0, data >> 8); - else if (ACCESSING_LSB) - itech8_tms34061_w(offset * 2 + 1, data); -} - - - -/************************************* - * - * NVRAM read/write - * - *************************************/ - -static NVRAM_HANDLER( itech8 ) -{ - int i; - - if (read_or_write) - mame_fwrite(file, main_ram, main_ram_size); - else if (file) - mame_fread(file, main_ram, main_ram_size); - else - for (i = 0; i < main_ram_size; i++) - main_ram[i] = rand(); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -/*------ common layout with TMS34061 at 0000 ------*/ -static ADDRESS_MAP_START( tmslo_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w) - AM_RANGE(0x1100, 0x1100) AM_WRITENOP - AM_RANGE(0x1120, 0x1120) AM_WRITE(sound_data_w) - AM_RANGE(0x1140, 0x1140) AM_READWRITE(special_port0_r, MWA8_RAM) AM_BASE(&itech8_grom_bank) - AM_RANGE(0x1160, 0x1160) AM_READWRITE(input_port_1_r, itech8_page_w) - AM_RANGE(0x1180, 0x1180) AM_READWRITE(input_port_2_r, tms34061_latch_w) - AM_RANGE(0x11a0, 0x11a0) AM_WRITE(itech8_nmi_ack_w) - AM_RANGE(0x11c0, 0x11df) AM_READWRITE(itech8_blitter_r, blitter_w) - AM_RANGE(0x11e0, 0x11ff) AM_WRITE(itech8_palette_w) - AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size) - AM_RANGE(0x4000, 0xffff) AM_ROMBANK(1) -ADDRESS_MAP_END - - -/*------ common layout with TMS34061 at 1000 ------*/ -static ADDRESS_MAP_START( tmshi_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w) - AM_RANGE(0x0100, 0x0100) AM_WRITENOP - AM_RANGE(0x0120, 0x0120) AM_WRITE(sound_data_w) - AM_RANGE(0x0140, 0x0140) AM_READWRITE(special_port0_r, MWA8_RAM) AM_BASE(&itech8_grom_bank) - AM_RANGE(0x0160, 0x0160) AM_READWRITE(input_port_1_r, itech8_page_w) - AM_RANGE(0x0180, 0x0180) AM_READWRITE(input_port_2_r, tms34061_latch_w) - AM_RANGE(0x01a0, 0x01a0) AM_WRITE(itech8_nmi_ack_w) - AM_RANGE(0x01c0, 0x01df) AM_READWRITE(itech8_blitter_r, blitter_w) - AM_RANGE(0x01e0, 0x01ff) AM_WRITE(itech8_palette_w) - AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size) - AM_RANGE(0x4000, 0xffff) AM_ROMBANK(1) -ADDRESS_MAP_END - - -/*------ Golden Tee Golf II 1992 layout ------*/ -static ADDRESS_MAP_START( gtg2_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0100, 0x0100) AM_READWRITE(input_port_0_r, itech8_nmi_ack_w) - AM_RANGE(0x0120, 0x0120) AM_READWRITE(input_port_1_r, itech8_page_w) - AM_RANGE(0x0140, 0x015f) AM_WRITE(itech8_palette_w) - AM_RANGE(0x0140, 0x0140) AM_READ(input_port_2_r) - AM_RANGE(0x0160, 0x0160) AM_WRITE(MWA8_RAM) AM_BASE(&itech8_grom_bank) - AM_RANGE(0x0180, 0x019f) AM_READWRITE(itech8_blitter_r, blitter_w) - AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w) - AM_RANGE(0x01e0, 0x01e0) AM_WRITE(tms34061_latch_w) - AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w) - AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size) - AM_RANGE(0x4000, 0xffff) AM_ROMBANK(1) -ADDRESS_MAP_END - - -/*------ Ninja Clowns layout ------*/ -static ADDRESS_MAP_START( ninclown_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION(REGION_CPU1, 0) - AM_RANGE(0x000080, 0x003fff) AM_RAM AM_BASE((void *)&main_ram) AM_SIZE(&main_ram_size) - AM_RANGE(0x004000, 0x07ffff) AM_ROM - AM_RANGE(0x100080, 0x100081) AM_WRITE(sound_data16_w) - AM_RANGE(0x100100, 0x100101) AM_READWRITE(input_port_0_word_r, grom_bank16_w) AM_BASE((void *)&itech8_grom_bank) - AM_RANGE(0x100180, 0x100181) AM_READWRITE(input_port_1_word_r, display_page16_w) - AM_RANGE(0x100240, 0x100241) AM_WRITE(tms34061_latch16_w) - AM_RANGE(0x100280, 0x100281) AM_READWRITE(input_port_2_word_r, MWA16_NOP) - AM_RANGE(0x100300, 0x10031f) AM_READWRITE(blitter16_r, blitter16_w) - AM_RANGE(0x100380, 0x1003ff) AM_WRITE(palette16_w) - AM_RANGE(0x110000, 0x110fff) AM_READWRITE(tms34061_16_r, tms34061_16_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -/*------ YM2203-based sound ------*/ -static ADDRESS_MAP_START( sound2203_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0000) AM_WRITENOP - AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r) - AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0002) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) - AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x0002) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0x4000, 0x4000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -/*------ YM3812-based sound ------*/ -static ADDRESS_MAP_START( sound3812_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0000) AM_WRITENOP - AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r) - AM_RANGE(0x2000, 0x2000) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x2001, 0x2001) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0x4000, 0x4000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0x5000, 0x5003) AM_READWRITE(pia_0_r, pia_0_w) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -/*------ external YM3812-based sound board ------*/ -static ADDRESS_MAP_START( sound3812_external_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0000) AM_WRITENOP - AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r) - AM_RANGE(0x2000, 0x2000) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0x2001, 0x2001) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0x3000, 0x37ff) AM_RAM - AM_RANGE(0x4000, 0x4000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0x5000, 0x500f) AM_READWRITE(via_0_r, via_0_w) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Other CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( slikz80_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7ff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( slikz80_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READWRITE(slikz80_port_r, slikz80_port_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -#define UNUSED_ANALOG \ - PORT_START \ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - -INPUT_PORTS_START( wfortune ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Blue Player") PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Yellow Player") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Red Player") PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - UNUSED_ANALOG /* analog C */ - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(75) PORT_KEYDELTA(10) PORT_PLAYER(1) - - UNUSED_ANALOG /* analog E */ - - PORT_START /* analog F */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(75) PORT_KEYDELTA(10) PORT_COCKTAIL PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( stratab ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Right Hook") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Left Hook") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Right Hook") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Left Hook") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* analog C */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1) - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* analog E */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2) - - PORT_START /* analog F */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( gtg ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - /* it is still unknown how the second player inputs are muxed in */ - /* currently we map both sets of controls to the same inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Swing") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Swing") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( gtgt ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Face Right") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Face Left") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* analog C */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1) - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( gtg2t ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Face Right") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Face Left") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Face Right") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Face Left") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* analog C */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1) - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* analog E */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2) - - PORT_START /* analog F */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( slikshot ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Yellow") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Red") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Green") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ - - PORT_START_TAG("FAKEX") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1) - - PORT_START_TAG("FAKEY") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( dynobop ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ball gate */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* ball detect */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ - - PORT_START_TAG("FAKEX") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1) - - PORT_START_TAG("FAKEY") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( sstrike ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Left Hook") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Hook") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ - - PORT_START_TAG("FAKEX") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1) - - PORT_START_TAG("FAKEY") /* fake */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(100) PORT_RESET PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( pokrdice ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Lower Right") PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Upper Right") PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Middle") PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Lower Left") PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Raise") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Upper Left") PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Play") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( hstennis ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x08, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown )) /* see code at fbb5 */ - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Soft") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hard") PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Soft") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hard") PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( arlingtn ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown )) /* see code at e23c */ - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Place") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Win") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Show") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Race") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Collect") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( peggle ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( pegglet ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x7e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - UNUSED_ANALOG /* analog C */ - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_RESET PORT_PLAYER(1) - - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( neckneck ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown )) /* see code at e23c */ - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Horse 3") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Horse 2") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Horse 1") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Horse 4") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Horse 6") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Horse 5") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( rimrockn ) - PORT_START /* 40 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* input from sound board */ - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* special 161 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Pass") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Shoot") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* special 162 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Pass") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Shoot") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* special 163 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P3 Shoot") PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P3 Pass") PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START /* special 164 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Shoot") PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P4 Pass") PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START /* special 165 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x18, "1 player" ) - PORT_DIPSETTING( 0x10, "2 players" ) - PORT_DIPSETTING( 0x08, "3 players" ) - PORT_DIPSETTING( 0x00, "4 players" ) - PORT_DIPNAME( 0x20, 0x00, "Coin Slots" ) - PORT_DIPSETTING( 0x04, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x40, 0x00, "Video Sync" ) - PORT_DIPSETTING( 0x02, "Positive" ) - PORT_DIPSETTING( 0x00, "Negative" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ninclown ) - PORT_START /* 40 */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_LOW ) - PORT_BIT( 0x0c00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* 60 */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Throw") PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Kick") PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Punch") PORT_PLAYER(1) - - PORT_START /* 80 */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Throw") PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Kick") PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Punch") PORT_PLAYER(2) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - -INPUT_PORTS_START( gtg2 ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x40, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 60 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Face Right") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Face Left") PORT_PLAYER(1) - PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* 80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Face Right") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Face Left") PORT_COCKTAIL PORT_PLAYER(2) - PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* analog C */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_PLAYER(1) - - PORT_START /* analog D */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* analog E */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_COCKTAIL PORT_PLAYER(2) - - PORT_START /* analog F */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_RESET PORT_REVERSE PORT_COCKTAIL PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( gpgolf ) - PORT_START /* 40 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x40, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 60 */ - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Swing") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* 80 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - UNUSED_ANALOG /* analog C */ - UNUSED_ANALOG /* analog D */ - UNUSED_ANALOG /* analog E */ - UNUSED_ANALOG /* analog F */ -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct YM2203interface ym2203_interface = -{ - 0, - 0, - 0, - ym2203_portb_out, - generate_sound_irq -}; - - -static struct YM3812interface ym3812_interface = -{ - generate_sound_irq -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -/************* core pieces ******************/ - -static MACHINE_DRIVER_START( itech8_core_lo ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809, CLOCK_8MHz/4) - MDRV_CPU_PROGRAM_MAP(tmslo_map,0) - MDRV_CPU_VBLANK_INT(generate_nmi,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((int)(((263. - 240.) / 263.) * 1000000. / 60.))) - - MDRV_MACHINE_START(itech8) - MDRV_MACHINE_RESET(itech8) - MDRV_NVRAM_HANDLER(itech8) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 263) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(itech8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("oki", OKIM6295, CLOCK_8MHz/8) // was /128?? - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128, not /132, so unsure so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( itech8_core_hi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tmshi_map,0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( itech8_sound_ym2203 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("sound", M6809, CLOCK_8MHz/4) - MDRV_CPU_PROGRAM_MAP(sound2203_map,0) - - /* sound hardware */ - MDRV_SOUND_ADD_TAG("ym", YM2203, CLOCK_8MHz/2) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.07) - MDRV_SOUND_ROUTE(1, "mono", 0.07) - MDRV_SOUND_ROUTE(2, "mono", 0.07) - MDRV_SOUND_ROUTE(3, "mono", 0.75) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( itech8_sound_ym3812 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("sound", M6809, CLOCK_8MHz/4) - MDRV_CPU_PROGRAM_MAP(sound3812_map,0) - - /* sound hardware */ - MDRV_SOUND_ADD_TAG("ym", YM3812, CLOCK_8MHz/2) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( itech8_sound_ym3812_external ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("sound", M6809, CLOCK_8MHz/4) - MDRV_CPU_PROGRAM_MAP(sound3812_external_map,0) - - /* sound hardware */ - MDRV_SOUND_ADD_TAG("ym", YM3812, CLOCK_8MHz/2) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_DRIVER_END - - -/************* full drivers ******************/ - -static MACHINE_DRIVER_START( wfortune ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2layer) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( stratab_hi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2layer) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( stratab_lo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2layer) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( slikshot_hi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - MDRV_CPU_ADD(Z80, CLOCK_8MHz/2) - MDRV_CPU_PROGRAM_MAP(slikz80_mem_map,0) - MDRV_CPU_IO_MAP(slikz80_io_map,0) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(slikshot) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( slikshot_lo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - MDRV_CPU_ADD(Z80, CLOCK_8MHz/2) - MDRV_CPU_PROGRAM_MAP(slikz80_mem_map,0) - MDRV_CPU_IO_MAP(slikz80_io_map,0) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(slikshot) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( slikshot_lo_noz80 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_IMPORT_FROM(itech8_sound_ym2203) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2page) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hstennis_hi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym3812) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2page_large) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hstennis_lo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_IMPORT_FROM(itech8_sound_ym3812) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2page_large) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( rimrockn ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym3812_external) - - MDRV_CPU_REPLACE("main", M6809/*HD6309*/, CLOCK_12MHz/4) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(24, 375, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2page_large) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ninclown ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_hi) - MDRV_IMPORT_FROM(itech8_sound_ym3812_external) - - MDRV_CPU_REPLACE("main", M68000, CLOCK_12MHz) - MDRV_CPU_PROGRAM_MAP(ninclown_map,0) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(64, 423, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2page_large) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gtg2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(itech8_core_lo) - MDRV_IMPORT_FROM(itech8_sound_ym3812_external) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gtg2_map,0) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 239) - MDRV_VIDEO_UPDATE(itech8_2layer) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( wfortune ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "wofpgm", 0x04000, 0x4000, CRC(bd984654) SHA1(8e16d2feb26e9a6f86c4a36bf0f03db80ded03f6) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "wofsnd", 0x08000, 0x8000, CRC(0a6aa5dc) SHA1(42eef40a4300d6d16d9e2af678432a02be05f104) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "wofgrom0", 0x00000, 0x10000, CRC(9a157b2c) SHA1(c349b41ba00cf6e2fec32872627c8cfdd8b5c1b9) ) - ROM_LOAD( "wofgrom1", 0x10000, 0x10000, CRC(5064739b) SHA1(424e3f94333f8ca21ac39b64b684cf6b487164d3) ) - ROM_LOAD( "wofgrom2", 0x20000, 0x10000, CRC(3d393b2b) SHA1(2c94d2dab7369c099c470cf96391b033f39add78) ) - ROM_LOAD( "wofgrom3", 0x30000, 0x10000, CRC(117a2ce9) SHA1(8d601c1cf9f783a42617f13c6862a5835553ac4f) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "wofsbom0", 0x00000, 0x20000, CRC(5c28c3fe) SHA1(eba64ede749fb26f9926f644d66860b54b4c76e7) ) -ROM_END - - -ROM_START( wfortuna ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "wofpgmr1.bin", 0x04000, 0x4000, CRC(c3d3eb21) SHA1(21137663afd19fba875e188640f0347fc8c5dcf0) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "wofsnd", 0x08000, 0x8000, CRC(0a6aa5dc) SHA1(42eef40a4300d6d16d9e2af678432a02be05f104) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "wofgrom0", 0x00000, 0x10000, CRC(9a157b2c) SHA1(c349b41ba00cf6e2fec32872627c8cfdd8b5c1b9) ) - ROM_LOAD( "wofgrom1", 0x10000, 0x10000, CRC(5064739b) SHA1(424e3f94333f8ca21ac39b64b684cf6b487164d3) ) - ROM_LOAD( "wofgrom2", 0x20000, 0x10000, CRC(3d393b2b) SHA1(2c94d2dab7369c099c470cf96391b033f39add78) ) - ROM_LOAD( "wofgrom3", 0x30000, 0x10000, CRC(117a2ce9) SHA1(8d601c1cf9f783a42617f13c6862a5835553ac4f) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "wofsbom0", 0x00000, 0x20000, CRC(5c28c3fe) SHA1(eba64ede749fb26f9926f644d66860b54b4c76e7) ) -ROM_END - - -ROM_START( stratab ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "sbprogv3.bin", 0x08000, 0x8000, CRC(a5ae728f) SHA1(85098eef1614d5148e8082df4c936883662292ee) ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sbsnds.bin", 0x08000, 0x8000, CRC(b36c8f0a) SHA1(c4c3edf3352d95561f76705087338c1946137447) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a915b0bd) SHA1(0955c7ebb48e97ccffc18c5deec6eccce1d68de8) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(340c661f) SHA1(150f9158fa6d956d08051c67c17723b1d8c66867) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(5df9f1cf) SHA1(cad87f63ac0e902dffeeaa42538fc73f792d87d9) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) ) -ROM_END - - -ROM_START( stratab1 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "sbprgv1.bin", 0x08000, 0x8000, CRC(46d51604) SHA1(de7b6306fdcee4907b07667baf874bd195822e6a) ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sbsnds.bin", 0x08000, 0x8000, CRC(b36c8f0a) SHA1(c4c3edf3352d95561f76705087338c1946137447) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a915b0bd) SHA1(0955c7ebb48e97ccffc18c5deec6eccce1d68de8) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(340c661f) SHA1(150f9158fa6d956d08051c67c17723b1d8c66867) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(5df9f1cf) SHA1(cad87f63ac0e902dffeeaa42538fc73f792d87d9) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) ) -ROM_END - - -ROM_START( gtg ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "u5.bin", 0x04000, 0x4000, CRC(61984272) SHA1(be735f8576fb2cccc0e9e6ea6f2fd54b6c0b3bb3) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(358d2440) SHA1(7b09350c89f9d2c86dc187d8812bbf26b576a38f) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) ) - ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(5b393314) SHA1(9e314a75ea52373369904915ec786f09eee725a9) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) ) -ROM_END - - -ROM_START( gtgt ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "pgm-u5.512", 0x04000, 0x4000, CRC(ec70b510) SHA1(318984d77eb1df6258b855781ae1c9a09aa74f15) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "snd-u27.256", 0x08000, 0x8000, CRC(471da557) SHA1(32bfe450a42d9eb6c14edcfa2b4e33f65a11126e) ) - - ROM_REGION( 0xb0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(b52a23f6) SHA1(092961acf47875179b44342e2dd8955670e67ea2) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(9b8e3a61) SHA1(1b5682b1328d6c97b604fb71512e8f72322a688f) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(b6e9fb15) SHA1(c1b28ea911696cb4ed56bfba212848693530b59f) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(faa16729) SHA1(5d46cddda66b6d23c9ebdf2fb4cebce15586b4ad) ) - ROM_LOAD( "grom5.512", 0xa0000, 0x10000, CRC(44b47015) SHA1(5dde4c932a697b51fe02eab8d948889b3fe7baff) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.010", 0x00000, 0x20000, CRC(d041e0c9) SHA1(1d90f37071d92c714ff69ab2b0337c7c66147995) ) -ROM_END - - -ROM_START( gtg2t ) - /* banks are loaded in the opposite order from the others, */ - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "u5", 0x10000, 0x4000, CRC(c7b3a9f3) SHA1(5edaca6fd6ee58bd1676dc9b2c86da4dd2f51687) ) - ROM_CONTINUE( 0x04000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(dd2a5905) SHA1(dc93f13de3953852a6757361eb9683a57d3ed326) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) ) - ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom00.bin", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.u11", 0x0000, 0x0104, CRC(9bf5a75f) SHA1(79786f7ce656f30a33a92887a290b767a7cbbf31) ) -ROM_END - - -ROM_START( gtg2j ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "u5.bin", 0x04000, 0x4000, CRC(9c95ceaa) SHA1(d9fd2b2419c026822a07d2ba51d6ab40b7cd0d49) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(dd2a5905) SHA1(dc93f13de3953852a6757361eb9683a57d3ed326) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) ) - ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(1cccbfdf) SHA1(546059fea2e7cd5627a666d80b1fc3ed8fcc0762) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.u11", 0x0000, 0x0104, CRC(9bf5a75f) SHA1(79786f7ce656f30a33a92887a290b767a7cbbf31) ) -ROM_END - - -ROM_START( slikshot ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "pgm20.u5", 0x04000, 0x4000, CRC(370a00eb) SHA1(b2878f161f4931d9fc3979a84b29660941e2608f) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(e60c2804) SHA1(e62d11b6c4439a70a2f32df72c8c64e2f110351e) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(d764d542) SHA1(43fc0c9b627484a670d87da91e212741b137e995) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) ) -ROM_END - - -ROM_START( sliksh17 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "u5.bin", 0x04000, 0x4000, CRC(09d70554) SHA1(a009cd3b22261c60f1028694baef51f61713154f) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(e60c2804) SHA1(e62d11b6c4439a70a2f32df72c8c64e2f110351e) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(d764d542) SHA1(43fc0c9b627484a670d87da91e212741b137e995) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) ) -ROM_END - - -ROM_START( sliksh16 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "poolpgm-16.u5", 0x04000, 0x4000, CRC(c0f17012) SHA1(5d466e058daf91b4f52e634498df9d2a03627aaa) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27.bin", 0x08000, 0x8000, CRC(a96ce0f7) SHA1(c1fec3aeef97c846fd1a20b91af54f6bf9723a71) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "pool-grom.0", 0x00000, 0x10000, CRC(e6d0edc6) SHA1(5287a31bbdde1e4291d8e9e6b99d3aa12bfb6e18) ) - ROM_LOAD( "pool-grom.1", 0x10000, 0x10000, CRC(5a071aa2) SHA1(9c5506e37625d213429b1231d457d7ce8a7a81ff) ) - ROM_LOAD( "pool-grom.2", 0x20000, 0x10000, CRC(c0bdf4e0) SHA1(3b7c635375c5e5fddcbc1bd1b186c960081ec37e) ) - ROM_LOAD( "pool-grom.3", 0x30000, 0x10000, CRC(cb0bd9a3) SHA1(107ff127f9adad84a5f92077851423249fce8e30) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x10000, CRC(4b075f5e) SHA1(d1ac2c06352a5b96486a7e8cf8baae0c0e5b1883) ) -ROM_END - - -ROM_START( dynobop ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "dynobop.u5", 0x04000, 0x4000, CRC(98452c40) SHA1(9b9316fc258792e0d825f16e0fadf8e0c35a864e) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "dynobop.u27", 0x08000, 0x8000, CRC(a37d862b) SHA1(922eeae184df2c5c28040da27699dd55744f8dca) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "dynobop.u53", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "dynobop.gr0", 0x00000, 0x20000, CRC(3525a7a3) SHA1(fe0b08203c135d55507506936dc34e1503e4906b) ) - ROM_LOAD( "dynobop.gr1", 0x20000, 0x20000, CRC(1544a232) SHA1(60bba76537c82887db8e38c6a87c528afdd385d0) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "dynobop.sr0", 0x00000, 0x10000, CRC(b355bf1d) SHA1(c9745638feb33ec181b8d9a894421f9854286cd9) ) -ROM_END - - -ROM_START( sstrike ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "sstrku5.bin", 0x08000, 0x8000, CRC(af00cddf) SHA1(b866e8dfce1449f7462a79efa385ea6b55cdc6e7) ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sstrku27.bin", 0x08000, 0x8000, CRC(efab7252) SHA1(eb3b2002531e551e3d67958ea3cc56a69fa660e2) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "spstku53.bin", 0x00000, 0x0800, CRC(04b85918) SHA1(409aef2e71937c7654334999df9313909d757966) ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - ROM_CONTINUE( 0x00000, 0x0800 ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "sstgrom0.bin", 0x00000, 0x20000, CRC(9cfb9849) SHA1(5aa860c0c6e3916ebdb8898ee44f633bf3347ca8) ) - ROM_LOAD( "sstgrom1.bin", 0x20000, 0x20000, CRC(d9ea14e1) SHA1(4cddf3237c203b0a3f7ae770f85f1be35e9e1b78) ) - ROM_LOAD( "sstgrom2.bin", 0x40000, 0x20000, CRC(dcd97bf7) SHA1(95361222ac58bf74539f2a7e80574bcd848c615e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "sstsrom0.bin", 0x00000, 0x20000, CRC(6ff390b9) SHA1(f31dae9e31f3fc83b9253e49fd4204820db3587e) ) -ROM_END - - -ROM_START( pokrdice ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "pd-v17.u5", 0x04000, 0x4000, CRC(5e24be82) SHA1(97e50cc023ff651fb09cc5e85a1bef1bc234ccb9) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "pd-snd.bin", 0x08000, 0x8000, CRC(4925401c) SHA1(e35983bec4a0dd4cb1d942fd909790b1adeb415d) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "pd-grom0.bin", 0x00000, 0x20000, CRC(7c2573e7) SHA1(d6a2a16277ad854c66927d88c5617d05eefe1057) ) - ROM_LOAD( "pd-grom1.bin", 0x20000, 0x20000, CRC(e7c06aeb) SHA1(4be54b078d886359bf6ed376019cc1f6f04f52d6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "pd-srom.0", 0x00000, 0x10000, CRC(f85dbd6f) SHA1(fce53019432e4a84e52f0ae1996b2e0d94b32bc0) ) -ROM_END - - -ROM_START( hstennis ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "tenbim.v11", 0x04000, 0x4000, CRC(faffab5c) SHA1(4de525f6adb16205c47788b78aecdebd57008295) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "tensnd.v1", 0x08000, 0x8000, CRC(f034a694) SHA1(3540e2edff2ce47504260ec856bab9b638d9260d) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(1e69ebae) SHA1(a32e2c2f4e4a527ae6b57adeccd2c4d2045ab5fe) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(4e6a22d5) SHA1(3c2d51dd874f61c0a557ea2c1968afa02d9bfc42) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(c0b643a9) SHA1(d240f703a55c39ce4a969612fbb9cd76e4b849ac) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(54afb456) SHA1(0a7f10b1a490825a85489ac3f678eb1e11a0ac65) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(ee09d645) SHA1(8233cfbd17d9de548ae3ca5e30928061712e0781) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(d9ce58c3) SHA1(92574e60497d86b8608fba6278ccfc9036cb7f22) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-itvs.u11", 0x0000, 0x0104, CRC(fee03727) SHA1(e784ff18505cdccc1020dbe5cb0e7cc9efc068a4) ) -ROM_END - - -ROM_START( hstenn10 ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "tenbim.v10", 0x04000, 0x4000, CRC(d108a6e0) SHA1(1041e1d95b10245fc50f6484e710803db2706f9a) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "tensnd.v1", 0x08000, 0x8000, CRC(f034a694) SHA1(3540e2edff2ce47504260ec856bab9b638d9260d) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(1e69ebae) SHA1(a32e2c2f4e4a527ae6b57adeccd2c4d2045ab5fe) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(4e6a22d5) SHA1(3c2d51dd874f61c0a557ea2c1968afa02d9bfc42) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(c0b643a9) SHA1(d240f703a55c39ce4a969612fbb9cd76e4b849ac) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(54afb456) SHA1(0a7f10b1a490825a85489ac3f678eb1e11a0ac65) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(ee09d645) SHA1(8233cfbd17d9de548ae3ca5e30928061712e0781) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x20000, CRC(d9ce58c3) SHA1(92574e60497d86b8608fba6278ccfc9036cb7f22) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-itvs.u11", 0x0000, 0x0104, CRC(fee03727) SHA1(e784ff18505cdccc1020dbe5cb0e7cc9efc068a4) ) -ROM_END - - -ROM_START( arlingtn ) - /* banks are loaded in the opposite order from the others, */ - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "ahrd121.bin", 0x10000, 0x4000, CRC(00aae02e) SHA1(3bcfbd256c34ae222dde24ba9544f19da70b698e) ) - ROM_CONTINUE( 0x04000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "ahrsnd11.bin", 0x08000, 0x8000, CRC(dec57dca) SHA1(21a8ead10b0434629f41f6b067c49b6622569a6c) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(5ef57fe5) SHA1(e877979e034a61968b432037501e25a302a17a9a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(6aca95c0) SHA1(da7a899bf0812a7af178e48b5a626ce56a836579) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x10000, CRC(6d6fde1b) SHA1(aaabc45d4b566be42e8d28d767e4771a96d9caae) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x40000, CRC(56087f81) SHA1(1d4a1f396ee9d8ed51d0417ea94b0b379312d72f) ) -ROM_END - - -ROM_START( peggle ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "j-stick.u5", 0x04000, 0x4000, CRC(140d5a9c) SHA1(841e5f45c6f306d9bd286e7d3e3c75b169c932e1) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sound.u27", 0x08000, 0x8000, CRC(b99beb70) SHA1(8d82c3b081a1afb236afa658abb3aa605c6c2264) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(5c02348d) SHA1(c85352728d94b3a5ca78c2493e98bdb4b3206bed) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(85a7a3a2) SHA1(7fb7be67c75867fcccf4272f1ce42f2af94c16e6) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(bfe11f18) SHA1(5e8d36c6a86a8eb883f50620fbfcea3d8398faeb) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x20000, CRC(001846ea) SHA1(6a6b77f6d51c4a68105c935804b896aad9981719) ) -ROM_END - - -ROM_START( pegglet ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "trakball.u5", 0x04000, 0x4000, CRC(d2694868) SHA1(9945a308550c9d89a647d80257e3ab14f793ac6f) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sound.u27", 0x08000, 0x8000, CRC(b99beb70) SHA1(8d82c3b081a1afb236afa658abb3aa605c6c2264) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(5c02348d) SHA1(c85352728d94b3a5ca78c2493e98bdb4b3206bed) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(85a7a3a2) SHA1(7fb7be67c75867fcccf4272f1ce42f2af94c16e6) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(bfe11f18) SHA1(5e8d36c6a86a8eb883f50620fbfcea3d8398faeb) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x20000, CRC(001846ea) SHA1(6a6b77f6d51c4a68105c935804b896aad9981719) ) -ROM_END - - -ROM_START( neckneck ) - /* banks are loaded in the opposite order from the others, */ - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "nn_prg12.u5", 0x04000, 0x4000, CRC(8e51734a) SHA1(c184af73670235a9245bfdeec2b58acfe93170e3) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "nn_snd10.u27", 0x08000, 0x8000, CRC(74771b2f) SHA1(0a963d2962699bb1b4d08bd486979151d0a228da) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "nn_grom0.bin", 0x00000, 0x20000, CRC(064d1464) SHA1(4ce5bcadad93586c9af2b0c499d7a7140b080cdb) ) - ROM_LOAD( "nn_grom1.bin", 0x20000, 0x20000, CRC(622d9a0b) SHA1(f084dcf194cfc658f97f36972f2b2ff30e834fc5) ) - ROM_LOAD( "nn_grom2.bin", 0x40000, 0x20000, CRC(e7eb4020) SHA1(29ceb535d1dfddf8c12cf78919ea10f6b956b8b3) ) - ROM_LOAD( "nn_grom3.bin", 0x60000, 0x20000, CRC(765c8593) SHA1(a39d757a01d61b637b264bdb4449e090a1e90219) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "nn_srom0.bin", 0x00000, 0x40000, CRC(33687201) SHA1(7c84d453fb7e59b0a27cd68a049d019ff65f6f19) ) -ROM_END - - -ROM_START( rimrockn ) - ROM_REGION( 0x34000, REGION_CPU1, 0 ) - ROM_LOAD( "u5-2_2", 0x04000, 0x4000, CRC(97777683) SHA1(0998dde26daaa2d2b78e83647e03ba01b0ef31f2) ) - ROM_CONTINUE( 0x10000, 0x4000 ) - ROM_CONTINUE( 0x1c000, 0x4000 ) - ROM_CONTINUE( 0x28000, 0xc000 ) - ROM_CONTINUE( 0x2c000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x08000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x14000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x20000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) ) - ROM_LOAD( "grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) ) - ROM_LOAD( "grom02-2.st2", 0x80000, 0x40000, CRC(47904233) SHA1(6a4d10e8f7b75582f706a74b37d59788613ffc61) ) - ROM_LOAD( "grom03-2.st2", 0xc0000, 0x40000, CRC(f005f118) SHA1(aa39f12d07827e21eceb286557e37973e519b433) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) ) - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8.u14", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16r4.u45", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal16l8.u29", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -ROM_START( rimrck20 ) - ROM_REGION( 0x34000, REGION_CPU1, 0 ) - ROM_LOAD( "rrb.bin", 0x04000, 0x4000, CRC(7e9d5545) SHA1(2aa028b3f5d05bec4ee289e7d39eaad30b3d4d5f) ) - ROM_CONTINUE( 0x10000, 0x4000 ) - ROM_CONTINUE( 0x1c000, 0x4000 ) - ROM_CONTINUE( 0x28000, 0xc000 ) - ROM_CONTINUE( 0x2c000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x08000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x14000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x20000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) ) - ROM_LOAD( "grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) ) - ROM_LOAD( "grom02-2.st2", 0x80000, 0x40000, CRC(47904233) SHA1(6a4d10e8f7b75582f706a74b37d59788613ffc61) ) - ROM_LOAD( "grom03-2.st2", 0xc0000, 0x40000, CRC(f005f118) SHA1(aa39f12d07827e21eceb286557e37973e519b433) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) ) -ROM_END - - -ROM_START( rimrck16 ) - ROM_REGION( 0x34000, REGION_CPU1, 0 ) - ROM_LOAD( "rrbbv16.u5",0x04000, 0x4000, CRC(999cd502) SHA1(8ad0d641a9f853eff27be1d4de04ab86b9275d57) ) - ROM_CONTINUE( 0x10000, 0x4000 ) - ROM_CONTINUE( 0x1c000, 0x4000 ) - ROM_CONTINUE( 0x28000, 0xc000 ) - ROM_CONTINUE( 0x2c000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x08000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x14000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x20000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u27", 0x08000, 0x8000, CRC(59f87f0e) SHA1(46f38aca35a7c2faee227b4c950d20a6076c6fa7) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) ) - ROM_LOAD( "grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) ) - ROM_LOAD( "grom02", 0x80000, 0x40000, CRC(34e567d5) SHA1(d0eb6fd0da8b9c3bfe7d4ecfb4bd903e4926b63a) ) - ROM_LOAD( "grom03", 0xc0000, 0x40000, CRC(fd18045d) SHA1(a1b98e4a2aa6f3cd33a3e2f5744160e05cc9f8d1) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) ) -ROM_END - - -ROM_START( rimrck12 ) - ROM_REGION( 0x34000, REGION_CPU1, 0 ) - ROM_LOAD( "rrbbv12.u5",0x04000, 0x4000, CRC(661761a6) SHA1(7224b1eac2fd0969d70657448ab241a433143df4) ) - ROM_CONTINUE( 0x10000, 0x4000 ) - ROM_CONTINUE( 0x1c000, 0x4000 ) - ROM_CONTINUE( 0x28000, 0xc000 ) - ROM_CONTINUE( 0x2c000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x08000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x14000, 0x8000 ) - ROM_COPY( REGION_CPU1, 0x2c000, 0x20000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "rrbsndv1.u27", 0x08000, 0x8000, CRC(8eda5f53) SHA1(f256544a8c87125587719460ed0fef14efef9015) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) - ROM_LOAD( "grom00", 0x00000, 0x40000, CRC(3eacbad9) SHA1(bff1ec6a24ccf983434e4e9453c30f36fa397534) ) - ROM_LOAD( "grom01", 0x40000, 0x40000, CRC(864cc269) SHA1(06f92889cd20881faeb59ec06ca1578ead2294f4) ) - ROM_LOAD( "grom02", 0x80000, 0x40000, CRC(34e567d5) SHA1(d0eb6fd0da8b9c3bfe7d4ecfb4bd903e4926b63a) ) - ROM_LOAD( "grom03", 0xc0000, 0x40000, CRC(fd18045d) SHA1(a1b98e4a2aa6f3cd33a3e2f5744160e05cc9f8d1) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0", 0x00000, 0x40000, CRC(7ad42be0) SHA1(c9b519bad3c5c9a3315d1bf3292cc30ee0771db7) ) -ROM_END - - -ROM_START( ninclown ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "prog1", 0x00000, 0x20000, CRC(fabfdcd2) SHA1(7a9852838cf7772d8f8f956b03823c4222520a5a) ) - ROM_LOAD16_BYTE( "prog0", 0x00001, 0x20000, CRC(eca63db5) SHA1(b86d75ee81e155a21de18c2e0fa898f15d61560d) ) - ROM_COPY( REGION_CPU1, 0x00000, 0x40000, 0x40000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "nc-snd", 0x08000, 0x8000, CRC(f9d5b4e1) SHA1(e5c3774db349b60baf11baecf55ac432871e612c) ) - - ROM_REGION( 0x180000, REGION_GFX1, 0 ) - ROM_LOAD( "nc-grom0", 0x000000, 0x40000, CRC(532f7bff) SHA1(cc7a64ad1581f37ff4bcad78c11aad355a6e9aa8) ) - ROM_LOAD( "nc-grom1", 0x040000, 0x40000, CRC(45640d4a) SHA1(1b59ae2a74fef535c646586422f17b39c9ae247b) ) - ROM_LOAD( "nc-grom2", 0x080000, 0x40000, CRC(c8281d06) SHA1(f75d4e858f9bc19e5234f184b75818e448638c15) ) - ROM_LOAD( "nc-grom3", 0x0c0000, 0x40000, CRC(2a6d33ac) SHA1(0773a53ece0b09e7c33f0e5beb4518059f76b7af) ) - ROM_LOAD( "nc-grom4", 0x100000, 0x40000, CRC(910876ba) SHA1(d65d0a5043afe2239596ba76174a27fea60ffb35) ) - ROM_LOAD( "nc-grom5", 0x140000, 0x40000, CRC(2533279b) SHA1(c21b218b11d20f2cdac2321ffcb1334ec9ec9ffc) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom0.bin", 0x00000, 0x40000, CRC(f6b501e1) SHA1(0f1eb6f40f891d11822f1255c0a84975526b2b1b) ) -ROM_END - - -ROM_START( gpgolf ) - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "gpgjv1_1.bin", 0x04000, 0x4000, CRC(631e77e0) SHA1(847ba1e00d31441620a2a1f45a9aa58df84bde8b) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x14000, 0x8000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sndv1.u27", 0x08000, 0x8000, CRC(55734876) SHA1(eb5ef816acbc6e35642749e38a2908b7ba359b9d) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom00.bin", 0x00000, 0x40000, CRC(c3a7b54b) SHA1(414d693bc5337d578d2630817dd647cf7e5cbcf7) ) - ROM_LOAD( "grom01.bin", 0x40000, 0x40000, BAD_DUMP CRC(2c834cf9) SHA1(49eb070ca4439d4fcd2d8a2db62d3c99b824bf99) ) /* Self test checksum reports BAD */ - ROM_LOAD( "grom02.bin", 0x80000, 0x40000, CRC(aebe6c45) SHA1(15e64fcb36cb1064988ee5cd45699d501a6e7f01) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom00.bin", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) ) -ROM_END - - -ROM_START( gtg2 ) - /* banks are loaded in the opposite order from the others, */ - ROM_REGION( 0x1c000, REGION_CPU1, 0 ) - ROM_LOAD( "u5.2", 0x10000, 0x4000, CRC(4a61580f) SHA1(7c64648d47418fbcc0f9b5bd91f88856209bc0f5) ) - ROM_CONTINUE( 0x04000, 0xc000 ) - ROM_COPY( REGION_CPU1, 0x8000, 0x14000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sndv1.u27", 0x08000, 0x8000, CRC(55734876) SHA1(eb5ef816acbc6e35642749e38a2908b7ba359b9d) ) - - ROM_REGION( 0xc0000, REGION_GFX1, 0 ) - ROM_LOAD( "grom0.bin", 0x00000, 0x20000, CRC(a29c688a) SHA1(32dbb996a5e4c23cfd44b79312ac4a767658f20a) ) - ROM_LOAD( "grom1.bin", 0x20000, 0x20000, CRC(a4182776) SHA1(9f4704d1a61a4fffce454c82cb3eb4629d9a2006) ) - ROM_LOAD( "grom2.bin", 0x40000, 0x20000, CRC(0580bb99) SHA1(012d473bc63632a5ed1a250daa54a00a4e30e8b2) ) - ROM_LOAD( "grom3.bin", 0x60000, 0x20000, CRC(89edb624) SHA1(e77d5ecd04f44f184e76eb2506660a04b6bc7fe8) ) - ROM_LOAD( "grom4.bin", 0x80000, 0x20000, CRC(f6557950) SHA1(fd2bbd6b852a9f2775a23d9fdaa20d31d6766d7f) ) - ROM_LOAD( "grom5.bin", 0xa0000, 0x20000, CRC(a680ce6a) SHA1(fe51546933c093cea81858b213afb0e926e9eb4e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "srom00.bin", 0x00000, 0x20000, CRC(4dd4db42) SHA1(0dffb51e8de36d8747f443fd65fe9927815eaff0) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.u29", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - - - -/************************************* - * - * Driver-specific init - * - *************************************/ - -static DRIVER_INIT( slikshot ) -{ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0180, 0x0180, 0, 0, slikshot_z80_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x01cf, 0x01cf, 0, 0, slikshot_z80_control_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x01cf, 0x01cf, 0, 0, slikshot_z80_control_w); - - slikshot_set_crosshair_range(116 - 80, 116 + 80); -} - - -static DRIVER_INIT( sstrike ) -{ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x1180, 0x1180, 0, 0, slikshot_z80_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x11cf, 0x11cf, 0, 0, slikshot_z80_control_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x11cf, 0x11cf, 0, 0, slikshot_z80_control_w); - - slikshot_set_crosshair_range(186 - 40, 186 + 40); - - /* we need to update behind the beam as well */ - timer_set(cpu_getscanlinetime(0), 32, behind_the_beam_update); -} - - -static DRIVER_INIT( hstennis ) -{ - static const rectangle visible = { 0, 375, 0, 239 }; - visarea = &visible; -} - - -static DRIVER_INIT( arligntn ) -{ - static const rectangle visible = { 16, 389, 0, 239 }; - visarea = &visible; -} - - -static DRIVER_INIT( peggle ) -{ - static const rectangle visible = { 18, 367, 0, 239 }; - visarea = &visible; -} - - -static DRIVER_INIT( neckneck ) -{ - static const rectangle visible = { 8, 375, 0, 239 }; - visarea = &visible; -} - - -static DRIVER_INIT( rimrockn ) -{ - /* additional input ports */ - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0160, 0x0160, 0, 0, special_port1_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0161, 0x0161, 0, 0, input_port_3_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0162, 0x0162, 0, 0, input_port_4_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0163, 0x0163, 0, 0, input_port_5_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0164, 0x0164, 0, 0, input_port_6_r); - memory_install_read8_handler (0, ADDRESS_SPACE_PROGRAM, 0x0165, 0x0165, 0, 0, input_port_7_r); - - /* different banking mechanism (disable the old one) */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x01a0, 0x01a0, 0, 0, rimrockn_bank_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x01c0, 0x01df, 0, 0, itech8_blitter_w); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -/* Wheel of Fortune-style PCB */ -GAME( 1989, wfortune, 0, wfortune, wfortune, 0, ROT0, "GameTek", "Wheel Of Fortune", 0 ) -GAME( 1989, wfortuna, wfortune, wfortune, wfortune, 0, ROT0, "GameTek", "Wheel Of Fortune (alternate)", 0 ) - -/* Strata Bowling-style PCB */ -GAME( 1990, stratab, 0, stratab_hi, stratab, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V3)", 0 ) -GAME( 1990, stratab1, stratab, stratab_hi, stratab, 0, ROT270, "Strata/Incredible Technologies", "Strata Bowling (V1)", 0 ) -GAME( 1990, gtg, 0, stratab_hi, gtg, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Joystick, v3.1)", 0 ) -GAME( 1989, gtgt, gtg, stratab_hi, gtgt, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf (Trackball, v1.0)", 0 ) -GAME( 1989, gtg2t, gtg2, stratab_hi, gtg2t, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V1.1)", 0 ) -GAME( 1991, gtg2j, gtg2, stratab_lo, gtg, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Joystick, V1.0)", 0 ) - -/* Slick Shot-style PCB */ -GAME( 1990, slikshot, 0, slikshot_hi, slikshot, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V2.2)", 0 ) -GAME( 1990, sliksh17, slikshot, slikshot_hi, slikshot, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.7)", 0 ) -GAME( 1990, sliksh16, slikshot, slikshot_hi, slikshot, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.6)", 0 ) -GAME( 1990, dynobop, 0, slikshot_hi, dynobop, slikshot, ROT90, "Grand Products/Incredible Technologies", "Dyno Bop", 0 ) -GAME( 1990, sstrike, 0, slikshot_lo, sstrike, sstrike, ROT270, "Strata/Incredible Technologies", "Super Strike Bowling", 0 ) -GAME( 1991, pokrdice, 0, slikshot_lo_noz80, pokrdice, 0, ROT90, "Strata/Incredible Technologies", "Poker Dice", 0 ) - -/* Hot Shots Tennis-style PCB */ -GAME( 1990, hstennis, 0, hstennis_hi, hstennis, hstennis, ROT90, "Strata/Incredible Technologies", "Hot Shots Tennis (V1.1)", 0 ) -GAME( 1990, hstenn10, hstennis, hstennis_hi, hstennis, hstennis, ROT90, "Strata/Incredible Technologies", "Hot Shots Tennis (V1.0)", 0 ) -GAME( 1991, arlingtn, 0, hstennis_hi, arlingtn, arligntn, ROT0, "Strata/Incredible Technologies", "Arlington Horse Racing (v1.21-D)", 0 ) -GAME( 1991, peggle, 0, hstennis_lo, peggle, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Joystick, v1.0)", 0 ) -GAME( 1991, pegglet, peggle, hstennis_lo, pegglet, peggle, ROT90, "Strata/Incredible Technologies", "Peggle (Trackball, v1.0)", 0 ) -GAME( 1992, neckneck, 0, hstennis_lo, neckneck, neckneck, ROT0, "Bundra Games/Incredible Technologies", "Neck-n-Neck (v1.2)", 0 ) - -/* Rim Rockin' Basketball-style PCB */ -GAME( 1991, rimrockn, 0, rimrockn, rimrockn, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.2)", 0 ) -GAME( 1991, rimrck20, rimrockn, rimrockn, rimrockn, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V2.0)", 0 ) -GAME( 1991, rimrck16, rimrockn, rimrockn, rimrockn, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.6)", 0 ) -GAME( 1991, rimrck12, rimrockn, rimrockn, rimrockn, rimrockn, ROT0, "Strata/Incredible Technologies", "Rim Rockin' Basketball (V1.2)", 0 ) - -/* Ninja Clowns-style PCB */ -GAME( 1991, ninclown, 0, ninclown, ninclown, 0, ROT0, "Strata/Incredible Technologies", "Ninja Clowns (08/27/91)", 0 ) - -/* Golden Tee Golf II-style PCB */ -GAME( 1992, gpgolf, 0, gtg2, gpgolf, 0, ROT0, "Strata/Incredible Technologies", "Golden Par Golf (Joystick, V1.1)", 0 ) -GAME( 1992, gtg2, 0, gtg2, gtg2, 0, ROT0, "Strata/Incredible Technologies", "Golden Tee Golf II (Trackball, V2.2)", 0 ) diff --git a/src/drivers/jack.c b/src/drivers/jack.c deleted file mode 100644 index 54eccd6ea..000000000 --- a/src/drivers/jack.c +++ /dev/null @@ -1,1331 +0,0 @@ -/*************************************************************************** - -Jack the Giant Killer memory map (preliminary) - -driver by Brad Oliver - - -Main CPU --------- -0000-3fff ROM -4000-5fff RAM -b000-b07f sprite ram -b400 command for sound CPU -b500-b505 input ports -b506 screen flip off -b507 screen flip on -b600-b61f palette ram -b800-bbff video ram -bc00-bfff color ram -c000-ffff More ROM - -Sound CPU (appears to run in interrupt mode 1) ---------- -0000-0fff ROM -1000-1fff ROM (Zzyzzyxx only) -4000-43ff RAM -6000-6fff R/C filter ??? - -I/O ---- -0x40: Read - ay-8910 port 0 - Write - ay-8910 write -0x80: Write - ay-8910 control - -The 2 ay-8910 read ports are responsible for reading the sound commands. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" - - -extern WRITE8_HANDLER( jack_videoram_w ); -extern WRITE8_HANDLER( jack_colorram_w ); -extern WRITE8_HANDLER( jack_paletteram_w ); -extern READ8_HANDLER( jack_flipscreen_r ); -extern WRITE8_HANDLER( jack_flipscreen_w ); - -extern VIDEO_START( jack ); -extern VIDEO_UPDATE( jack ); - -extern PALETTE_INIT( joinem ); -extern VIDEO_START( joinem ); -extern VIDEO_UPDATE( joinem ); - -static int timer_rate; - -static READ8_HANDLER( timer_r ) -{ - /* wrong! there should be no need for timer_rate, the same function */ - /* should work for both games */ - return activecpu_gettotalcycles() / timer_rate; -} - - -static WRITE8_HANDLER( jack_sh_command_w ) -{ - soundlatch_w(0,data); - cpunum_set_input_line(1, 0, HOLD_LINE); -} - - -/* these handlers are guessed, because otherwise you can't enter test mode */ - -static int joinem_snd_bit = 0; - -static WRITE8_HANDLER( joinem_misc_w ) -{ - flip_screen_set(data & 0x80); - joinem_snd_bit = data & 1; -} - -static READ8_HANDLER( joinem_input1_r ) -{ - UINT8 ret = readinputport(1) & ~0x20; - - if((readinputport(4) & 0x80) && !joinem_snd_bit) - ret |= 0x20; - - return ret; -} - -/* - Super Triv questions read handler -*/ - -static int question_address = 0; -static int question_rom = 0; -static int remap_address[16]; - -static READ8_HANDLER( striv_question_r ) -{ - // Set-up the remap table for every 16 bytes - if((offset & 0xc00) == 0x800) - { - remap_address[offset & 0x0f] = (offset & 0xf0) >> 4; - } - // Select which rom to read and the high 5 bits of address - else if((offset & 0xc00) == 0xc00) - { - question_rom = offset & 7; - question_address = (offset & 0xf8) << 7; - } - // Read the actual byte from question roms - else - { - UINT8 *ROM = memory_region(REGION_USER1); - int real_address; - - real_address = question_address | (offset & 0x3f0) | remap_address[offset & 0x0f]; - - // Check if it wants to read from the upper 8 roms or not - if(offset & 0x400) - real_address |= 0x8000 * (question_rom + 8); - else - real_address |= 0x8000 * question_rom; - - return ROM[real_address]; - } - - return 0; // the value read from the configuration reads is discarded -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0xb000, 0xb07f) AM_READ(MRA8_RAM) - AM_RANGE(0xb500, 0xb500) AM_READ(input_port_0_r) - AM_RANGE(0xb501, 0xb501) AM_READ(input_port_1_r) - AM_RANGE(0xb502, 0xb502) AM_READ(input_port_2_r) - AM_RANGE(0xb503, 0xb503) AM_READ(input_port_3_r) - AM_RANGE(0xb504, 0xb504) AM_READ(input_port_4_r) - AM_RANGE(0xb505, 0xb505) AM_READ(input_port_5_r) - AM_RANGE(0xb506, 0xb507) AM_READ(jack_flipscreen_r) - AM_RANGE(0xb800, 0xbfff) AM_READ(MRA8_RAM) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xb000, 0xb07f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xb400, 0xb400) AM_WRITE(jack_sh_command_w) - AM_RANGE(0xb506, 0xb507) AM_WRITE(jack_flipscreen_w) - AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xb800, 0xbbff) AM_WRITE(jack_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xbc00, 0xbfff) AM_WRITE(jack_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xc000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( joinem_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0xb000, 0xb0ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xb400, 0xb400) AM_WRITE(jack_sh_command_w) - AM_RANGE(0xb500, 0xb500) AM_READ(input_port_0_r) - AM_RANGE(0xb501, 0xb501) AM_READ(joinem_input1_r) - AM_RANGE(0xb502, 0xb502) AM_READ(input_port_2_r) - AM_RANGE(0xb503, 0xb503) AM_READ(input_port_3_r) - AM_RANGE(0xb504, 0xb504) AM_READ(input_port_4_r) - AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w) - AM_RANGE(0xb700, 0xb700) AM_WRITE(joinem_misc_w) - AM_RANGE(0xb800, 0xbbff) AM_RAM AM_WRITE(jack_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xbc00, 0xbfff) AM_RAM AM_WRITE(jack_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_NOP) /* R/C filter ??? */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x80) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w) -ADDRESS_MAP_END - -#define COMMON_REMAINDER1\ - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) )\ - PORT_DIPSETTING( 0x00, "3" )\ - PORT_DIPSETTING( 0x10, "5" )\ - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )\ - PORT_DIPSETTING( 0x00, "Every 10000" )\ - PORT_DIPSETTING( 0x20, "10000 Only" )\ - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) )\ - PORT_DIPSETTING( 0x00, "Start on Level 1" )\ - PORT_DIPSETTING( 0x40, "Start on Level 13" )\ - PORT_DIPNAME( 0x80, 0x00, "Bullets per Bean Collected" )\ - PORT_DIPSETTING( 0x00, "1" )\ - PORT_DIPSETTING( 0x80, "2" ) - -#define COMMON_REMAINDER2\ - PORT_START_TAG("DSW2")\ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )\ - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )\ - PORT_BIT( 0x1e, IP_ACTIVE_HIGH, IPT_UNUSED )\ - PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )\ - PORT_DIPNAME( 0x40, 0x00, "Invulnerability (Cheat)")\ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x40, DEF_STR( On ) )\ - PORT_DIPNAME( 0x80, 0x00, "255 Lives (Cheat)")\ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x80, DEF_STR( On ) )\ - PORT_START_TAG("IN2")\ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )\ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )\ - PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_UNUSED )\ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )\ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 )\ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )\ - PORT_START_TAG("IN3")\ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY\ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY\ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY\ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY\ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL\ - PORT_START_TAG("IN4")\ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )\ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )\ - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )\ - PORT_START_TAG("IN5")\ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL\ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL\ - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - -INPUT_PORTS_START( jack ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - COMMON_REMAINDER1 - COMMON_REMAINDER2 -INPUT_PORTS_END - -/* Same as 'jack', but different coinage */ -INPUT_PORTS_START( jack2 ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -COMMON_REMAINDER1 -COMMON_REMAINDER2 -INPUT_PORTS_END - -/* Same as 'jack', but another different coinage */ -INPUT_PORTS_START( jack3 ) - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -COMMON_REMAINDER1 -COMMON_REMAINDER2 -INPUT_PORTS_END - -/* Same as 'jack', but different "Bullets per Bean Collected" and "Difficulty" Dip Switches */ -INPUT_PORTS_START( treahunt ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Every 10000" ) - PORT_DIPSETTING( 0x20, "10000 Only" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, "Start on Level 1" ) - PORT_DIPSETTING( 0x40, "Start on Level 6" ) - PORT_DIPNAME( 0x80, 0x00, "Bullets per Bean Collected" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x80, "20" ) -COMMON_REMAINDER2 -INPUT_PORTS_END - -INPUT_PORTS_START( zzyzzyxx ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x08, 0x00, "2 Credits on Reset" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, DEF_STR( None ) ) - PORT_DIPSETTING( 0x00, "10000 50000" ) - PORT_DIPSETTING( 0x01, "25000 100000" ) - PORT_DIPSETTING( 0x03, "100000 300000" ) - PORT_DIPNAME( 0x04, 0x04, "2nd Bonus Given" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x00, "Starting Laps" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPNAME( 0x10, 0x00, "Difficulty of Pleasing Lola" ) // /me Raises eyebrow (EC) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x20, 0x00, "Show Intermissions" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0xc0, 0x40, "Extra Lives" ) - PORT_DIPSETTING( 0x00, "3 under 4000 pts" ) - PORT_DIPSETTING( 0x80, "5 under 4000 pts" ) - PORT_DIPSETTING( 0x40, DEF_STR( None ) ) // 3 under 0 pts -// PORT_DIPSETTING( 0xc0, DEF_STR( None ) ) // 5 under 0 pts - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( freeze ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x08, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x10, "10000 40000" ) - PORT_DIPSETTING( 0x20, "10000 60000" ) - PORT_DIPSETTING( 0x30, "20000 100000" ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) ) - - PORT_START_TAG("DSW2") - /* probably unused */ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( sucasino ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x70, 0x00, DEF_STR( Unknown ) ) // Check code at 0xf700 - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x50, "5" ) - PORT_DIPSETTING( 0x60, "6" ) - PORT_DIPSETTING( 0x70, "7" ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("DSW2") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( tripool ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME ("Select Game 1") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME ("Select Game 2") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME ("Select Game 3") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // not needed? - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL // not needed? - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( joinem ) - PORT_START - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) // sound check - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Infinite Lives" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // otherwise it doesn't boot because the code is buggy - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) -INPUT_PORTS_END - -INPUT_PORTS_START( striv ) - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x02, 0x00, "Monitor" ) - PORT_DIPSETTING( 0x02, "Horizontal" ) - PORT_DIPSETTING( 0x00, "Vertical" ) - PORT_DIPNAME( 0x05, 0x05, "Gaming Option Number" ) - PORT_DIPSETTING( 0x01, "2" ) PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x05, "3" ) PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x00, "4" ) PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x04, "5" ) PORT_CONDITION("DSW1",0x20,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x01, "4" ) PORT_CONDITION("DSW1",0x20,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x05, "5" ) PORT_CONDITION("DSW1",0x20,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x00, "6" ) PORT_CONDITION("DSW1",0x20,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x04, "7" ) PORT_CONDITION("DSW1",0x20,PORTCOND_NOTEQUALS,0x20) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, "Gaming Option" ) - PORT_DIPSETTING( 0x20, "Number of Wrong Answer" ) - PORT_DIPSETTING( 0x00, "Number of Questions" ) - PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("DSW2") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0xfd, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 2, /* 2 bits per pixel */ - { 0, 1024*8*8 }, /* the two bitplanes are seperated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 16 bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 8 }, - { -1 } /* end of array */ -}; - -static const gfx_layout joinem_charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3),RGN_FRAC(1,3),RGN_FRAC(2,3) }, - { 0,1,2,3,4,5,6,7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode joinem_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &joinem_charlayout, 0, 32 }, - { -1 } -}; - -static struct AY8910interface ay8910_interface = -{ - soundlatch_r, - timer_r -}; - - -static MACHINE_DRIVER_START( jack ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 18000000/6) /* 3 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* jack needs 1 or its too fast */ - - MDRV_CPU_ADD(Z80,18000000/12) - /* audio CPU */ /* 1.5 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - - MDRV_VIDEO_START(jack) - MDRV_VIDEO_UPDATE(jack) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 18000000/12) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tripool ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(jack) - MDRV_CPU_MODIFY("main") - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) /* tripool needs 2 or the palette is broken */ -MACHINE_DRIVER_END - -INTERRUPT_GEN( joinem_interrupts ) -{ - if(cpu_getiloops() > 0) - { - cpunum_set_input_line(0, 0, PULSE_LINE); - } - else - { - if(!(readinputport(4) & 0x80)) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static MACHINE_DRIVER_START( joinem ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(jack) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(joinem_map,0) - MDRV_CPU_VBLANK_INT(joinem_interrupts,3) - - MDRV_GFXDECODE(joinem_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x100) - - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - - MDRV_PALETTE_INIT(joinem) - MDRV_VIDEO_START(joinem) - MDRV_VIDEO_UPDATE(joinem) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( jack ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "j8", 0x0000, 0x1000, CRC(c8e73998) SHA1(1332c8dee99d07cc2823797ecc3551d720428b36) ) - ROM_LOAD( "jgk.j6", 0x1000, 0x1000, CRC(36d7810e) SHA1(b8757222586eb6aa31fc3b1d1fd00ddb1c68cb0b) ) - ROM_LOAD( "jgk.j7", 0x2000, 0x1000, CRC(b15ff3ee) SHA1(fa99b4c2d96fb355ff8ba12c2f40ee4d00bb04da) ) - ROM_LOAD( "jgk.j5", 0x3000, 0x1000, CRC(4a63d242) SHA1(afecfb515144963eb819a58ef3b368c20e6fc4ff) ) - ROM_LOAD( "jgk.j3", 0xc000, 0x1000, CRC(605514a8) SHA1(74769053a977cea0324b1198e582f8e712af9a22) ) - ROM_LOAD( "jgk.j4", 0xd000, 0x1000, CRC(bce489b7) SHA1(8c1bb82f38f1757b08c99230454a6e7eca8709f3) ) - ROM_LOAD( "jgk.j2", 0xe000, 0x1000, CRC(db21bd55) SHA1(5518c34d381129c7940de85c476639cafd0e5025) ) - ROM_LOAD( "jgk.j1", 0xf000, 0x1000, CRC(49fffe31) SHA1(b5a0a7d021c8001368bb5d3b41a728734eb50ac5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "jgk.j9", 0x0000, 0x1000, CRC(c2dc1e00) SHA1(57e8abf5a5eb3f5a22e206ee2562b64ea0ba2d05) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "jgk.j12", 0x0000, 0x1000, CRC(ce726df0) SHA1(d0b83c5ceb558dafb6387445d5cfb4668f2f4386) ) - ROM_LOAD( "jgk.j13", 0x1000, 0x1000, CRC(6aec2c8d) SHA1(f81c44e79e18a864abfeb8769f012a6e93679164) ) - ROM_LOAD( "jgk.j11", 0x2000, 0x1000, CRC(fd14c525) SHA1(5e6a8274d008c5dd276aaf85f7f943810b5ac987) ) - ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) -ROM_END - -ROM_START( jack2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "jgk.j8", 0x0000, 0x1000, CRC(fe229e20) SHA1(191cfb7bb08d46cab713e23abd69f27db1685346) ) - ROM_LOAD( "jgk.j6", 0x1000, 0x1000, CRC(36d7810e) SHA1(b8757222586eb6aa31fc3b1d1fd00ddb1c68cb0b) ) - ROM_LOAD( "jgk.j7", 0x2000, 0x1000, CRC(b15ff3ee) SHA1(fa99b4c2d96fb355ff8ba12c2f40ee4d00bb04da) ) - ROM_LOAD( "jgk.j5", 0x3000, 0x1000, CRC(4a63d242) SHA1(afecfb515144963eb819a58ef3b368c20e6fc4ff) ) - ROM_LOAD( "jgk.j3", 0xc000, 0x1000, CRC(605514a8) SHA1(74769053a977cea0324b1198e582f8e712af9a22) ) - ROM_LOAD( "jgk.j4", 0xd000, 0x1000, CRC(bce489b7) SHA1(8c1bb82f38f1757b08c99230454a6e7eca8709f3) ) - ROM_LOAD( "jgk.j2", 0xe000, 0x1000, CRC(db21bd55) SHA1(5518c34d381129c7940de85c476639cafd0e5025) ) - ROM_LOAD( "jgk.j1", 0xf000, 0x1000, CRC(49fffe31) SHA1(b5a0a7d021c8001368bb5d3b41a728734eb50ac5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "jgk.j9", 0x0000, 0x1000, CRC(c2dc1e00) SHA1(57e8abf5a5eb3f5a22e206ee2562b64ea0ba2d05) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "jgk.j12", 0x0000, 0x1000, CRC(ce726df0) SHA1(d0b83c5ceb558dafb6387445d5cfb4668f2f4386) ) - ROM_LOAD( "jgk.j13", 0x1000, 0x1000, CRC(6aec2c8d) SHA1(f81c44e79e18a864abfeb8769f012a6e93679164) ) - ROM_LOAD( "jgk.j11", 0x2000, 0x1000, CRC(fd14c525) SHA1(5e6a8274d008c5dd276aaf85f7f943810b5ac987) ) - ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) -ROM_END - -ROM_START( jack3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "jack8", 0x0000, 0x1000, CRC(632151d2) SHA1(080f29818d537474c821b9920427bda47f5a7254) ) - ROM_LOAD( "jack6", 0x1000, 0x1000, CRC(f94f80d9) SHA1(2301e6d0b814bf897e5c8ed43a342e3213be0a27) ) - ROM_LOAD( "jack7", 0x2000, 0x1000, CRC(c830ff1e) SHA1(f85b8bf39600212846f0b68012fbdb6b5fd3ad5c) ) - ROM_LOAD( "jack5", 0x3000, 0x1000, CRC(8dea17e7) SHA1(7e70bce78eaa40963ba981c9e7926ee0529898dd) ) - ROM_LOAD( "jgk.j3", 0xc000, 0x1000, CRC(605514a8) SHA1(74769053a977cea0324b1198e582f8e712af9a22) ) - ROM_LOAD( "jgk.j4", 0xd000, 0x1000, CRC(bce489b7) SHA1(8c1bb82f38f1757b08c99230454a6e7eca8709f3) ) - ROM_LOAD( "jgk.j2", 0xe000, 0x1000, CRC(db21bd55) SHA1(5518c34d381129c7940de85c476639cafd0e5025) ) - ROM_LOAD( "jack1", 0xf000, 0x1000, CRC(7e75ea3d) SHA1(9f3b998a8a494d67e3aa8933eb113fa2d2adae61) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "jgk.j9", 0x0000, 0x1000, CRC(c2dc1e00) SHA1(57e8abf5a5eb3f5a22e206ee2562b64ea0ba2d05) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "jack12", 0x0000, 0x1000, CRC(80320647) SHA1(5e39891033e23256456aad1a3f53cd1e516de51d) ) - ROM_LOAD( "jgk.j13", 0x1000, 0x1000, CRC(6aec2c8d) SHA1(f81c44e79e18a864abfeb8769f012a6e93679164) ) - ROM_LOAD( "jgk.j11", 0x2000, 0x1000, CRC(fd14c525) SHA1(5e6a8274d008c5dd276aaf85f7f943810b5ac987) ) - ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) -ROM_END - -ROM_START( treahunt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ - ROM_LOAD( "thunt-1.f2", 0x0000, 0x1000, CRC(0b35858c) SHA1(b8f80c69fcbce71e1b85c8f39599f8bebfeb2585) ) - ROM_LOAD( "thunt-2.f3", 0x1000, 0x1000, CRC(67305a51) SHA1(c00b9592c4e146892313e8d32261338957a6a04a) ) - ROM_LOAD( "thunt-3.4f", 0x2000, 0x1000, CRC(d7a969c3) SHA1(7edcbc90836e32aff4a26b0c55a76bbc9bb488fe) ) - ROM_LOAD( "thunt-4.6f", 0x3000, 0x1000, CRC(2483f14d) SHA1(ffb7965433b0caaaae74e8eca19633fcecbdb4f8) ) - ROM_LOAD( "thunt-5.7f", 0xc000, 0x1000, CRC(c69d5e21) SHA1(27b734b2997bc95d04c79b992969db19b743b086) ) - ROM_LOAD( "thunt-6.7e", 0xd000, 0x1000, CRC(11bf3d49) SHA1(6c566aa81568985662461df7bd2386ee72ee3ba7) ) - ROM_LOAD( "thunt-7.6e", 0xe000, 0x1000, CRC(7c2d6279) SHA1(b3dd9875faf9cd91034193794a7b187d79741353) ) - ROM_LOAD( "thunt-8.4e", 0xf000, 0x1000, CRC(f73b86fb) SHA1(7fd4d0876ffee74ec73def085fc845535bb7e451) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "jgk.j9", 0x0000, 0x1000, CRC(c2dc1e00) SHA1(57e8abf5a5eb3f5a22e206ee2562b64ea0ba2d05) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "thunt-13.a4", 0x0000, 0x1000, CRC(e03f1f09) SHA1(546b270aeeb2d35b718ddd6f15829d4cbe0f7ef6) ) - ROM_LOAD( "thunt-12.a3", 0x1000, 0x1000, CRC(da4ee9eb) SHA1(e01c9cfa426d2b94e6bc976622b888b2ca224771) ) - ROM_LOAD( "thunt-10.a1", 0x2000, 0x1000, CRC(51ec7934) SHA1(f39d99c356d8d9960022fa2c068b5f7206404d85) ) - ROM_LOAD( "thunt-11.a2", 0x3000, 0x1000, CRC(f9781143) SHA1(f168648a78240fdf02063d39f324838f4dfe9a56) ) -ROM_END - -ROM_START( zzyzzyxx ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a.2f", 0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) ) - ROM_LOAD( "zzyzzyxx.b", 0x1000, 0x1000, CRC(efa9d4c6) SHA1(aaa66723fed87f1134b59634050d1eb6a83c8159) ) - ROM_LOAD( "zzyzzyxx.c", 0x2000, 0x1000, CRC(b0a365b1) SHA1(67e3c2bab8b2b35c42a986b0ace120724008f555) ) - ROM_LOAD( "zzyzzyxx.d", 0x3000, 0x1000, CRC(5ed6dd9a) SHA1(1279cee868eacefdc26524f2effa7b35f24ec30d) ) - ROM_LOAD( "zzyzzyxx.e", 0xc000, 0x1000, CRC(5966fdbf) SHA1(c1476db9e8508cb71684b568a19ae32c8c0e012a) ) - ROM_LOAD( "f.7e", 0xd000, 0x1000, CRC(12f24c68) SHA1(6d4181d3f044de491d810a3406e9d253d2c669d6) ) - ROM_LOAD( "g.6e", 0xe000, 0x1000, CRC(408f2326) SHA1(fe45084ed50701577eade2da8f4f787ee41d7acf) ) - ROM_LOAD( "h.4e", 0xf000, 0x1000, CRC(f8bbabe0) SHA1(59b2223219712f8a572b2cfbbc14f80ec2b32aae) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "i.5a", 0x0000, 0x1000, CRC(c7742460) SHA1(1dbf0f5be1e2666feef83f256e2993a6c23d7cfc) ) - ROM_LOAD( "j.6a", 0x1000, 0x1000, CRC(72166ccd) SHA1(4f4efcd8ed7f729f4630446607b0e9c93098aa3a) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "n.1c", 0x0000, 0x1000, CRC(4f64538d) SHA1(1d48f12ff0d1c5604d19338b26e800a91f1be9c1) ) - ROM_LOAD( "m.1d", 0x1000, 0x1000, CRC(217b1402) SHA1(b842b2bde8ff5be6b240ccfb35c7a9f701dab5f4) ) - ROM_LOAD( "k.1b", 0x2000, 0x1000, CRC(b8b2b8cc) SHA1(e149fc91043f3233e10c81358b8624a4bc0baf4e) ) - ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) -ROM_END - -ROM_START( zzyzzyx2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a.2f", 0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) ) - ROM_LOAD( "b.3f", 0x1000, 0x1000, CRC(4277beab) SHA1(269338a165286ed44b0fad1873e409f847b8d476) ) - ROM_LOAD( "c.4f", 0x2000, 0x1000, CRC(72ac99e1) SHA1(66b99a0271ae31cf109749159ddd1652b804f077) ) - ROM_LOAD( "d.6f", 0x3000, 0x1000, CRC(7c7eec2b) SHA1(fa62950d9db718069905331140e129711c707775) ) - ROM_LOAD( "e.7f", 0xc000, 0x1000, CRC(cffc4a68) SHA1(95b13cbf9dc2196844038ce23ddfc33fecc9caef) ) - ROM_LOAD( "f.7e", 0xd000, 0x1000, CRC(12f24c68) SHA1(6d4181d3f044de491d810a3406e9d253d2c669d6) ) - ROM_LOAD( "g.6e", 0xe000, 0x1000, CRC(408f2326) SHA1(fe45084ed50701577eade2da8f4f787ee41d7acf) ) - ROM_LOAD( "h.4e", 0xf000, 0x1000, CRC(f8bbabe0) SHA1(59b2223219712f8a572b2cfbbc14f80ec2b32aae) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "i.5a", 0x0000, 0x1000, CRC(c7742460) SHA1(1dbf0f5be1e2666feef83f256e2993a6c23d7cfc) ) - ROM_LOAD( "j.6a", 0x1000, 0x1000, CRC(72166ccd) SHA1(4f4efcd8ed7f729f4630446607b0e9c93098aa3a) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "n.1c", 0x0000, 0x1000, CRC(4f64538d) SHA1(1d48f12ff0d1c5604d19338b26e800a91f1be9c1) ) - ROM_LOAD( "m.1d", 0x1000, 0x1000, CRC(217b1402) SHA1(b842b2bde8ff5be6b240ccfb35c7a9f701dab5f4) ) - ROM_LOAD( "k.1b", 0x2000, 0x1000, CRC(b8b2b8cc) SHA1(e149fc91043f3233e10c81358b8624a4bc0baf4e) ) - ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) -ROM_END - -ROM_START( brix ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a", 0x0000, 0x1000, CRC(050e0d70) SHA1(f5e0ed0845443701233de194d9ce24ec35e03a27) ) - ROM_LOAD( "b", 0x1000, 0x1000, CRC(668118ae) SHA1(688d6f79d30186bade15dbb1f08e8b25cbefa852) ) - ROM_LOAD( "c", 0x2000, 0x1000, CRC(ff5ed6cf) SHA1(b6309ed322c2bb12626dfaca705e296723ee7e47) ) - ROM_LOAD( "d", 0x3000, 0x1000, CRC(c3ae45a9) SHA1(879f0a495d9de855ffcbb0907b9b733ca626a7ef) ) - ROM_LOAD( "e", 0xc000, 0x1000, CRC(def99fa9) SHA1(e28d32934e1ad31595ec6097befd8518178c9d51) ) - ROM_LOAD( "f", 0xd000, 0x1000, CRC(dde717ed) SHA1(cf9063aa25faf2027770a4b27831e2e20d1801a0) ) - ROM_LOAD( "g", 0xe000, 0x1000, CRC(adca02d8) SHA1(75703a6f6d8b5eeb609ed5829d12b97b62309ba4) ) - ROM_LOAD( "h", 0xf000, 0x1000, CRC(bc3b878c) SHA1(91a5daa90a4c46a354f4ef64730b4a0a8348b6a0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "i.5a", 0x0000, 0x1000, CRC(c7742460) SHA1(1dbf0f5be1e2666feef83f256e2993a6c23d7cfc) ) - ROM_LOAD( "j.6a", 0x1000, 0x1000, CRC(72166ccd) SHA1(4f4efcd8ed7f729f4630446607b0e9c93098aa3a) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "n", 0x0000, 0x1000, CRC(8064910e) SHA1(331048e30604ef2a0ae0d7ee5ca5c230b601aec7) ) - ROM_LOAD( "m.1d", 0x1000, 0x1000, CRC(217b1402) SHA1(b842b2bde8ff5be6b240ccfb35c7a9f701dab5f4) ) - ROM_LOAD( "k", 0x2000, 0x1000, CRC(c7d7e2a0) SHA1(9790e78abf4f57ddfcef8e5632699152f9440a67) ) - ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) -ROM_END - -ROM_START( freeze ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "freeze.f2", 0x0000, 0x1000, CRC(0a431665) SHA1(57b7fc72c7e3b0d09b4a0676a4e7094657e2b742) ) - ROM_LOAD( "freeze.f3", 0x1000, 0x1000, CRC(1189b8ad) SHA1(8feb9387783e63a98efb60778fdf9eb9d5392cd9) ) - ROM_LOAD( "freeze.f4", 0x2000, 0x1000, CRC(10c4a5ea) SHA1(9ace2cff0280f10b03752568258b2e3a13ac964f) ) - ROM_LOAD( "freeze.f5", 0x3000, 0x1000, CRC(16024c53) SHA1(354b91ad880ce0ea0f1481c3aea91570d05797c7) ) - ROM_LOAD( "freeze.f7", 0xc000, 0x1000, CRC(ea0b0765) SHA1(17923177d31ab4ca9f9bba1fc95fff825d8113e3) ) - ROM_LOAD( "freeze.e7", 0xd000, 0x1000, CRC(1155c00b) SHA1(734eb7cc77432f7112e6032a298f8d38152a0717) ) - ROM_LOAD( "freeze.e5", 0xe000, 0x1000, CRC(95c18d75) SHA1(02c8b9738049f61d1d34053f508b26ee588b2025) ) - ROM_LOAD( "freeze.e4", 0xf000, 0x1000, CRC(7e8f5afc) SHA1(5694982671ef5c7564f216150825f4e81c4ba617) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "freeze.a1", 0x0000, 0x1000, CRC(7771f5b9) SHA1(48715945f67a0d736c86d1fdd738964c6cf74c35) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "freeze.5a", 0x0000, 0x1000, CRC(6c8a98a0) SHA1(358a88377a227566962251c2a6ad7aea52ae1d17) ) - ROM_LOAD( "freeze.3a", 0x1000, 0x1000, CRC(6d2125e4) SHA1(6c3a12af512a1243b73759a758da8329bca38833) ) - ROM_LOAD( "freeze.1a", 0x2000, 0x1000, CRC(3a7f2fa9) SHA1(5f0811ea4e61b9918de2d16ffcfa4a02af833613) ) - ROM_LOAD( "freeze.2a", 0x3000, 0x1000, CRC(dd70ddd6) SHA1(d03cac0b4248da5d49ffac6ee57a3f8dd368731b) ) -ROM_END - -ROM_START( sucasino ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1", 0x0000, 0x1000, CRC(e116e979) SHA1(99b0c783ace93e643738a1a924cafb690d2c1127) ) - ROM_LOAD( "2", 0x1000, 0x1000, CRC(2a2635f5) SHA1(e3b70942adc4eab81000287c8da67d3732ddda70) ) - ROM_LOAD( "3", 0x2000, 0x1000, CRC(69864d90) SHA1(244eaf4079b90f367c671e00e8081d885f26e26d) ) - ROM_LOAD( "4", 0x3000, 0x1000, CRC(174c9373) SHA1(070175bf1b7b14f34549d03a8288c8ff1f2f4eaa) ) - ROM_LOAD( "5", 0xc000, 0x1000, CRC(115bcb1e) SHA1(9b50e1dcb77db1b60ab5fd7d9843261e25580647) ) - ROM_LOAD( "6", 0xd000, 0x1000, CRC(434caa17) SHA1(2f537063db14cfdfb771dece2ea33841c874c708) ) - ROM_LOAD( "7", 0xe000, 0x1000, CRC(67c68b82) SHA1(b5d3977bf1f1337a96ae7bb60fe11e6ca9e87485) ) - ROM_LOAD( "8", 0xf000, 0x1000, CRC(f5b63006) SHA1(a069fb9b9b6d47ac3f0fbbd9b2c89da31d6b1202) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "9", 0x0000, 0x1000, CRC(67cf8aec) SHA1(95be671d5f7526610b175fc4121459e0ffc3649b) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11", 0x0000, 0x1000, CRC(f92c4c5b) SHA1(a415c8f55d1792e79d05ece223ef423f8578f896) ) - /* 1000-1fff empty */ - ROM_LOAD( "10", 0x2000, 0x1000, CRC(3b0783ce) SHA1(880f258351a8b0d76abe433cc77d95b991ae1adc) ) - /* 3000-3fff empty */ -ROM_END - -ROM_START( tripool ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tri73a.bin", 0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) ) - ROM_LOAD( "tri62a.bin", 0x2000, 0x1000, CRC(3299dc65) SHA1(8f93247e2f49be6b601006be62f4ad539ec899fe) ) - ROM_LOAD( "tri52b.bin", 0x3000, 0x1000, CRC(27ef765e) SHA1(2a18a9b74fd4d9f3a724270cd3a98adbfdf22a5e) ) - ROM_LOAD( "tri33c.bin", 0xc000, 0x1000, CRC(d7ef061d) SHA1(3ea3a136ecb3b5753a1dd929212b93ad8c7e9157) ) - ROM_LOAD( "tri45c.bin", 0xd000, 0x1000, CRC(51b813b1) SHA1(11ace37869a44a8c4bec76f19815a7f2fcc1d23e) ) - ROM_LOAD( "tri25d.bin", 0xe000, 0x1000, CRC(8e64512d) SHA1(c4983db1e8143dc90f9a8c99bdbb73dc31529a6c) ) - ROM_LOAD( "tri13d.bin", 0xf000, 0x1000, CRC(ad268e9b) SHA1(5d8d9b1c57b332b5a28b01d6a4f4885239d80b00) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tri93a.bin", 0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) ) - ROM_LOAD( "tri105a.bin", 0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) ) -ROM_END - -ROM_START( tripoola ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tri73a.bin", 0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) ) - ROM_LOAD( "tri62a.bin", 0x2000, 0x1000, CRC(3299dc65) SHA1(8f93247e2f49be6b601006be62f4ad539ec899fe) ) - ROM_LOAD( "tri52b.bin", 0x3000, 0x1000, CRC(27ef765e) SHA1(2a18a9b74fd4d9f3a724270cd3a98adbfdf22a5e) ) - ROM_LOAD( "tri33c.bin", 0xc000, 0x1000, CRC(d7ef061d) SHA1(3ea3a136ecb3b5753a1dd929212b93ad8c7e9157) ) - ROM_LOAD( "tri45c.bin", 0xd000, 0x1000, CRC(51b813b1) SHA1(11ace37869a44a8c4bec76f19815a7f2fcc1d23e) ) - ROM_LOAD( "tri25d.bin", 0xe000, 0x1000, CRC(8e64512d) SHA1(c4983db1e8143dc90f9a8c99bdbb73dc31529a6c) ) - ROM_LOAD( "tp1ckt", 0xf000, 0x1000, CRC(72ec43a3) SHA1(a4f5b20872e41845340db627321e0dbcad4b964e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tri93a.bin", 0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) ) - ROM_LOAD( "tri105a.bin", 0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) ) -ROM_END - -ROM_START( joinem ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* main z80 cpu */ - ROM_LOAD( "join1.r0", 0x0000, 0x2000, CRC(b5b2e2cc) SHA1(e939478d19ac27807ba4180835c512b5fcb8d0c5) ) - ROM_LOAD( "join2.r2", 0x2000, 0x2000, CRC(bcf140e6) SHA1(3fb4fbb758518d8ae26abbe76f12678cf988bd0e) ) - ROM_LOAD( "join3.r4", 0x4000, 0x2000, CRC(fe04e4d4) SHA1(9b34cc5915dd78340d1cedb34f5d397d3b39ca14) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound z80 cpu */ - ROM_LOAD( "join7.s0", 0x0000, 0x1000, CRC(bb8a7814) SHA1(cfb85408827b96a81401223256e23082b7e9598f) ) - - ROM_REGION( 0x3000, REGION_GFX1, ROMREGION_DISPOSE ) /* gfx - 8x8x3bpp */ - ROM_LOAD( "join4.p3", 0x0000, 0x1000, CRC(4964c82c) SHA1(7a45399db20f9bbdb2de58243732e3951ffe358c) ) - ROM_LOAD( "join5.p2", 0x1000, 0x1000, CRC(ae78fa89) SHA1(8f43fd2ec037185a1b9bd9c61c49ad891c504d4d) ) - ROM_LOAD( "join6.p1", 0x2000, 0x1000, CRC(2b533261) SHA1(ce6c1fa833b34aeb401f430d212415c33beb2922) ) - - ROM_REGION( 0x100, REGION_PROMS, 0 ) /* colours */ - ROM_LOAD_NIB_LOW( "l82s129.11n", 0x0000, 0x100, CRC(7b724211) SHA1(7396c773e8d48dea856d9482d6c48de966616c83) ) - ROM_LOAD_NIB_HIGH( "h82s129.12n", 0x0000, 0x100, CRC(2e81c5ff) SHA1(e103c8813af704d5de11fe705de5105ff3a691c3) ) -ROM_END - -/* - -Super Triv -?, 1985 - -PCB Layout ----------- - -Top Board - -P-1244-1A MADE IN JAPAN -HARA INDUSTRIES JAPAN CO., LTD. -|-------------------------------------------| -| | -| 2114 | -| VOL 2114 | -| DIP40 | -| | -| DSW1 6116 | -|4 DSW2 6116 6116 | -|4 DIP24 BC3.7E | -|W PR4.6F BC2.6E SND.5A| -|A PR3.5F BC1.5E | -|Y PR2.4F | -| DIP24 Z80 | -| Z80 | -|--|---CN-J----|----------------------------| - |-----------| - -Notes: - DIP24/40 - Empty sockets used to connect ROM daughterboard to main board - Z80 - Z80 CPU running at 3.000MHz (both) - 6116 - 2K x8 SRAM - 2114 - 1K x4 SRAM - CN-J - 50 pin flat cable PCB joiner - -Bottom Board - -P-1244-2A MADE IN JAPAN -|-------------------------------------------| -| 82S16 18MHz | -| 82S16 | -| 82S16 | -| 82S16 | -| 82S16 | -| 2114 2114 | -| 2114 2114 | -| 2114 2114 CHR3.5A| -| 2114 2114 | -| 2114 CHR2.4A| -| 2114 | -| 2114 CHR1.2A| -| 2114 CHR0.1A| -|--|---CN-J----|----------------------------| - |-----------| -Notes: - 82S16 - 256bytes x 1bit Bipolar DRAM - 2114 - 1K x4 SRAM - CN-J - 50 pin flat cable PCB joiner - - -ROM Daughterboard - -|-----------------------------| -|ROM.U7 TBFT1.U14 AY3-8910 | -|ROM.U6 TBFT0.U13 TBFD0.U21 | -| TBFL2.U12 | -| TBFL1.U11 | -| TBFL0.U10 | -| TBFD3.U9 | -|PR1.F2 TBFD2.U8 TBFD1.U15 | -|-----------------------------| - - -*/ - -ROM_START( striv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pr1.f2", 0x0000, 0x1000, CRC(dcf5da6e) SHA1(e88c8226ae4d4a0af717f0760e551e0ce4c79c5e) ) - ROM_LOAD( "pr2.4f", 0x1000, 0x1000, CRC(921610ba) SHA1(7dea7a57543dd79325da34cebd7b9dd8a767bb2a) ) - ROM_LOAD( "pr3.5f", 0x2000, 0x1000, CRC(c36f0e21) SHA1(d036a56798bbb42bee269450524172ec071dcf03) ) - ROM_LOAD( "pr4.6f", 0x3000, 0x1000, CRC(0dc98a97) SHA1(36c1c61d3330e2c00d9aa94ae80bcb1b9c5aea21) ) - /* 0xc000 - 0xcfff questions rom space */ - ROM_LOAD( "bc3.7e", 0xd000, 0x1000, CRC(83f03885) SHA1(d83f03752ccf85fd9f10c2d801ecd5f4ef729cde) ) - ROM_LOAD( "bc2.6e", 0xe000, 0x1000, CRC(75f18361) SHA1(4966418f3b6204e888bd56f36db88518dcd08640) ) - ROM_LOAD( "bc1.5e", 0xf000, 0x1000, CRC(0d150385) SHA1(090139797a1b6935fcf4c239e11bdd7ae55fac76) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "snd.5a", 0x0000, 0x1000, CRC(b7ddf84f) SHA1(fa4cc0b2e5a88c82c62492c03e97ac6aa8a905b1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "chr0.1a", 0x0000, 0x1000, CRC(8f60229b) SHA1(96a888ae02797a205e1c6202395d3b42a820ad4d) ) - ROM_LOAD( "chr2.4a", 0x1000, 0x1000, CRC(8f982a9c) SHA1(dd6f454dfd3e03d008080890881cfafd79758a40) ) - ROM_LOAD( "chr3.5a", 0x2000, 0x1000, CRC(8f982a9c) SHA1(dd6f454dfd3e03d008080890881cfafd79758a40) ) - ROM_LOAD( "chr1.2a", 0x3000, 0x1000, CRC(7ad4358e) SHA1(dd3a03c78fa8bf435e9905b901dc5a9987cd52e4) ) - - ROM_REGION( 0x80000, REGION_USER1, ROMREGION_ERASEFF ) /* Question roms */ - ROM_LOAD( "rom.u6", 0x00000, 0x8000, CRC(a32d7a28) SHA1(fbad0b5c9f1dbeb4f245a2198248c18ceae556fa) ) - ROM_LOAD( "rom.u7", 0x08000, 0x8000, CRC(bc44ae18) SHA1(815cc3c87b89fc702a9ca88d5117ab46464b53c0) ) - ROM_LOAD( "tbfd2.u8", 0x10000, 0x8000, CRC(9572984a) SHA1(0edd668754b84cc8c3dce9c8db17ea6e4a397765) ) - ROM_LOAD( "tbfd3.u9", 0x18000, 0x8000, CRC(d904a2f1) SHA1(a7adc07319f04f4bd383145ec07f1924eb5cbd4d) ) - ROM_LOAD( "tbfl0.u10", 0x20000, 0x8000, CRC(680264a2) SHA1(a3637aa36a31c0cda1d530c8307996516a05f9ef) ) - ROM_LOAD( "tbfl1.u11", 0x28000, 0x8000, CRC(33e99d00) SHA1(0b6c6b564507e0ee189fe8ba1d85c77c2c4c77e7) ) - ROM_LOAD( "tbfl2.u12", 0x30000, 0x8000, CRC(2e7a941f) SHA1(8f5331df91f865c559381114e21aa118c8fe34eb) ) - ROM_LOAD( "tbft0.u13", 0x38000, 0x8000, CRC(7d2e5e89) SHA1(4e56fe325b93d577602e8bcab3130f426cee3de4) ) - ROM_LOAD( "tbft1.u14", 0x40000, 0x8000, CRC(d36246cf) SHA1(553ce72c35822694461adc2e572522a9eeff5667) ) - ROM_LOAD( "tbfd1.u15", 0x48000, 0x8000, CRC(745db398) SHA1(52b6999699ebae8ed9ada45d47a8f8ee68e36bf1) ) - // 0x50000 - 0x7ffff empty - - ROM_REGION( 0x2000, REGION_USER2, ROMREGION_DISPOSE ) // ? probably leftover / unused, it's a program rom from Hyper Olympic - ROM_LOAD( "tbfd0.u21", 0x0000, 0x2000, CRC(15b83099) SHA1(79827590d74f20c9a95723e06b05af2b15c34f5f) ) -ROM_END - - -static void treahunt_decode(void) -{ - int A; - UINT8 *rom = memory_region(REGION_CPU1); - UINT8 *decrypt = auto_malloc(0x4000); - int data; - - memory_set_decrypted_region(0, 0x0000, 0x3fff, decrypt); - - /* Thanks to Mike Balfour for helping out with the decryption */ - for (A = 0; A < 0x4000; A++) - { - data = rom[A]; - - if (A & 0x1000) - { - /* unencrypted = D0 D2 D5 D1 D3 D6 D4 D7 */ - decrypt[A] = - ((data & 0x01) << 7) | - ((data & 0x02) << 3) | - ((data & 0x04) << 4) | - (data & 0x28) | - ((data & 0x10) >> 3) | - ((data & 0x40) >> 4) | - ((data & 0x80) >> 7); - - if ((A & 0x04) == 0) - /* unencrypted = !D0 D2 D5 D1 D3 D6 D4 !D7 */ - decrypt[A] ^= 0x81; - } - else - { - /* unencrypted = !D7 D2 D5 D1 D3 D6 D4 !D0 */ - decrypt[A] = - (~data & 0x81) | - ((data & 0x02) << 3) | - ((data & 0x04) << 4) | - (data & 0x28) | - ((data & 0x10) >> 3) | - ((data & 0x40) >> 4); - } - } -} - -static DRIVER_INIT( jack ) -{ - timer_rate = 128; -} - -static DRIVER_INIT( treahunt ) -{ - timer_rate = 128; - treahunt_decode(); -} - -static DRIVER_INIT( zzyzzyxx ) -{ - timer_rate = 16; -} - -static DRIVER_INIT( striv ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - UINT8 data; - int A; - - /* decrypt program rom */ - /* thanks to David Widel to have helped with the decryption */ - for( A = 0; A < 0x4000; A++ ) - { - data = ROM[A]; - - if(A & 0x1000) - { - if(A & 4) - ROM[A] = BITSWAP8(data,7,2,5,1,3,6,4,0) ^ 1; - else - ROM[A] = BITSWAP8(data,0,2,5,1,3,6,4,7) ^ 0x81; - } - else - { - if(A & 4) - ROM[A] = BITSWAP8(data,7,2,5,1,3,6,4,0) ^ 1; - else - ROM[A] = BITSWAP8(data,0,2,5,1,3,6,4,7); - } - } - - // Set-up the weirdest questions read ever done - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc000, 0xcfff, 0, 0, striv_question_r); - - // Nop out unused sprites writes - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb000, 0xb0ff, 0, 0, MWA8_NOP); - - timer_rate = 128; -} - -GAME( 1982, jack, 0, jack, jack, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 1)", 0 ) -GAME( 1982, jack2, jack, jack, jack2, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 2)", 0 ) -GAME( 1982, jack3, jack, jack, jack3, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 3)", 0 ) -GAME( 1982, treahunt, jack, jack, treahunt, treahunt, ROT90, "Hara Industries", "Treasure Hunt (Japan?)", 0 ) -GAME( 1982, zzyzzyxx, 0, jack, zzyzzyxx, zzyzzyxx, ROT90, "Cinematronics + Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", 0 ) -GAME( 1982, zzyzzyx2, zzyzzyxx, jack, zzyzzyxx, zzyzzyxx, ROT90, "Cinematronics + Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", 0 ) -GAME( 1982, brix, zzyzzyxx, jack, zzyzzyxx, zzyzzyxx, ROT90, "Cinematronics + Advanced Microcomputer Systems", "Brix", 0 ) -GAME( 1984, freeze, 0, jack, freeze, jack, ROT90, "Cinematronics", "Freeze", 0 ) -GAME( 1984, sucasino, 0, jack, sucasino, jack, ROT90, "Data Amusement", "Super Casino", 0 ) -GAME( 1981, tripool, 0, tripool, tripool, jack, ROT90, "Noma (Casino Tech license)", "Tri-Pool (Casino Tech)", 0 ) -GAME( 1981, tripoola, tripool, tripool, tripool, jack, ROT90, "Noma (Costal Games license)", "Tri-Pool (Costal Games)", 0 ) -GAME( 1986, joinem, 0, joinem, joinem, zzyzzyxx, ROT90, "Global Corporation", "Joinem", 0 ) -GAME( 1985, striv, 0, jack, striv, striv, ROT270,"Hara Industries", "Super Triv", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) diff --git a/src/drivers/jailbrek.c b/src/drivers/jailbrek.c deleted file mode 100644 index 19618794a..000000000 --- a/src/drivers/jailbrek.c +++ /dev/null @@ -1,332 +0,0 @@ -/*************************************************************************** - -Jailbreak - (c) 1986 Konami - -Ernesto Corvi -ernesto@imagina.com - -***************************************************************************/ - -/* - - TODO: - - - coin counters - -*/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "sound/sn76496.h" -#include "sound/vlm5030.h" - - -void konami1_decode(void); - -extern UINT8 *jailbrek_scroll_x; -extern UINT8 *jailbrek_scroll_dir; - -extern WRITE8_HANDLER( jailbrek_videoram_w ); -extern WRITE8_HANDLER( jailbrek_colorram_w ); - -extern PALETTE_INIT( jailbrek ); -extern VIDEO_START( jailbrek ); -extern VIDEO_UPDATE( jailbrek ); - - -static int irq_enable,nmi_enable; - - -static WRITE8_HANDLER( ctrl_w ) -{ - nmi_enable = data & 0x01; - irq_enable = data & 0x02; - flip_screen_set(data & 0x08); -} - -static INTERRUPT_GEN( jb_interrupt ) -{ - if (irq_enable) - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static INTERRUPT_GEN( jb_interrupt_nmi ) -{ - if (nmi_enable) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - - -static READ8_HANDLER( jailbrek_speech_r ) { - return ( VLM5030_BSY() ? 1 : 0 ); -} - -static WRITE8_HANDLER( jailbrek_speech_w ) { - /* bit 0 could be latch direction like in yiear */ - VLM5030_ST( ( data >> 1 ) & 1 ); - VLM5030_RST( ( data >> 2 ) & 1 ); -} - -static ADDRESS_MAP_START( jailbrek_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_WRITE(jailbrek_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x0800, 0x0fff) AM_RAM AM_WRITE(jailbrek_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x10c0, 0x14ff) AM_RAM /* ??? */ - AM_RANGE(0x1500, 0x1fff) AM_RAM /* work ram */ - AM_RANGE(0x2000, 0x203f) AM_RAM AM_BASE(&jailbrek_scroll_x) - AM_RANGE(0x2040, 0x2040) AM_WRITENOP /* ??? */ - AM_RANGE(0x2041, 0x2041) AM_WRITENOP /* ??? */ - AM_RANGE(0x2042, 0x2042) AM_RAM AM_BASE(&jailbrek_scroll_dir) /* bit 2 = scroll direction */ - AM_RANGE(0x2043, 0x2043) AM_WRITENOP /* ??? */ - AM_RANGE(0x2044, 0x2044) AM_WRITE(ctrl_w) /* irq, nmi enable, screen flip */ - AM_RANGE(0x3000, 0x307f) AM_RAM /* related to sprites? */ - AM_RANGE(0x3100, 0x3100) AM_READWRITE(input_port_4_r, SN76496_0_w) /* DSW1 */ - AM_RANGE(0x3200, 0x3200) AM_READ(input_port_5_r) AM_WRITENOP /* DSW2 */ /* mirror of the previous? */ - AM_RANGE(0x3300, 0x3300) AM_READWRITE(input_port_0_r, watchdog_reset_w) /* coins, start */ - AM_RANGE(0x3301, 0x3301) AM_READ(input_port_1_r) /* joy1 */ - AM_RANGE(0x3302, 0x3302) AM_READ(input_port_2_r) /* joy2 */ - AM_RANGE(0x3303, 0x3303) AM_READ(input_port_3_r) /* DSW0 */ - AM_RANGE(0x4000, 0x4000) AM_WRITE(jailbrek_speech_w) /* speech pins */ - AM_RANGE(0x5000, 0x5000) AM_WRITE(VLM5030_data_w) /* speech data */ - AM_RANGE(0x6000, 0x6000) AM_READ(jailbrek_speech_r) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -INPUT_PORTS_START( jailbrek ) - PORT_START /* IN0 - $3300 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 - $3301 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) // shoot - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) // select - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 - $3302 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW0 - $3303 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW1 - $3100 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "30K 70K+" ) - PORT_DIPSETTING( 0x00, "40K 80K+" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW2 - $3200 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) - PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every char takes 32 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 512, /* 512 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 32*8+0*4, 32*8+1*4, 32*8+2*4, 32*8+3*4, 32*8+4*4, 32*8+5*4, 32*8+6*4, 32*8+7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, /* characters */ - { REGION_GFX2, 0, &spritelayout, 16*16, 16 }, /* sprites */ - { -1 } /* end of array */ -}; - - - -static struct VLM5030interface vlm5030_interface = -{ - REGION_SOUND1, /* memory region of speech rom */ - 0 /* memory size of speech rom */ -}; - -static MACHINE_DRIVER_START( jailbrek ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 3000000) /* 3 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(jailbrek_map, 0) - MDRV_CPU_VBLANK_INT(jb_interrupt,1) - MDRV_CPU_PERIODIC_INT(jb_interrupt_nmi,TIME_IN_HZ(500)) /* ? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(512) - - MDRV_PALETTE_INIT(jailbrek) - MDRV_VIDEO_START(jailbrek) - MDRV_VIDEO_UPDATE(jailbrek) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(VLM5030, 3580000) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( jailbrek ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "jailb11d.bin", 0x8000, 0x4000, CRC(a0b88dfd) SHA1(f999e382b9d3b812fca41f4d0da3ea692fef6b19) ) - ROM_LOAD( "jailb9d.bin", 0xc000, 0x4000, CRC(444b7d8e) SHA1(c708b67c2d249448dae9a3d10c24d13ba6849597) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "jailb4f.bin", 0x00000, 0x4000, CRC(e3b7a226) SHA1(c19a02a2def65648bf198fccec98ebbd2fc7c0fb) ) /* characters */ - ROM_LOAD( "jailb5f.bin", 0x04000, 0x4000, CRC(504f0912) SHA1(b51a45dd5506bccdf0061dd6edd7f49ac86ed0f8) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "jailb3e.bin", 0x00000, 0x4000, CRC(0d269524) SHA1(a10ddb405e884bfec521a3c7a29d22f63e535b59) ) /* sprites */ - ROM_LOAD( "jailb4e.bin", 0x04000, 0x4000, CRC(27d4f6f4) SHA1(c42c064dbd7c5cf0b1d99651367e0bee1728a5b0) ) - ROM_LOAD( "jailb5e.bin", 0x08000, 0x4000, CRC(717485cb) SHA1(22609489186dcb3d7cd49b7ddfdc6f04d0739354) ) - ROM_LOAD( "jailb3f.bin", 0x0c000, 0x4000, CRC(e933086f) SHA1(c0fd1e8d23c0f7e14c0b75f629448034420cf8ef) ) - - ROM_REGION( 0x0240, REGION_PROMS, 0 ) - ROM_LOAD( "jailbbl.cl2", 0x0000, 0x0020, CRC(f1909605) SHA1(91eaa865375b3bc052897732b64b1ff7df3f78f6) ) /* red & green */ - ROM_LOAD( "jailbbl.cl1", 0x0020, 0x0020, CRC(f70bb122) SHA1(bf77990260e8346faa3d3481718cbe46a4a27150) ) /* blue */ - ROM_LOAD( "jailbbl.bp2", 0x0040, 0x0100, CRC(d4fe5c97) SHA1(972e9dab6c53722545dd3a43e3ada7921e88708b) ) /* char lookup */ - ROM_LOAD( "jailbbl.bp1", 0x0140, 0x0100, CRC(0266c7db) SHA1(a8f21e86e6d974c9bfd92a147689d0e7316d66e2) ) /* sprites lookup */ - - ROM_REGION( 0x2000, REGION_SOUND1, 0 ) /* speech rom */ - ROM_LOAD( "jailb8c.bin", 0x0000, 0x2000, CRC(d91d15e3) SHA1(475fe50aafbf8f2fb79880ef0e2c25158eda5270) ) -ROM_END - -ROM_START( manhatan ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "507n03.9d", 0x8000, 0x4000, CRC(e5039f7e) SHA1(0f12484ed40444d978e0405c27bdd027ae2e2a0b) ) - ROM_LOAD( "507n02.11d", 0xc000, 0x4000, CRC(143cc62c) SHA1(9520dbb1b6f1fa439e03d4caa9bed96ef8f805f2) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "507j08.4f", 0x00000, 0x4000, CRC(175e1b49) SHA1(4cfe982cdf7729bd05c6da803480571876320bf6) ) /* characters */ - ROM_LOAD( "jailb5f.bin", 0x04000, 0x4000, CRC(504f0912) SHA1(b51a45dd5506bccdf0061dd6edd7f49ac86ed0f8) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "jailb3e.bin", 0x00000, 0x4000, CRC(0d269524) SHA1(a10ddb405e884bfec521a3c7a29d22f63e535b59) ) /* sprites */ - ROM_LOAD( "jailb4e.bin", 0x04000, 0x4000, CRC(27d4f6f4) SHA1(c42c064dbd7c5cf0b1d99651367e0bee1728a5b0) ) - ROM_LOAD( "jailb5e.bin", 0x08000, 0x4000, CRC(717485cb) SHA1(22609489186dcb3d7cd49b7ddfdc6f04d0739354) ) - ROM_LOAD( "jailb3f.bin", 0x0c000, 0x4000, CRC(e933086f) SHA1(c0fd1e8d23c0f7e14c0b75f629448034420cf8ef) ) - - ROM_REGION( 0x0240, REGION_PROMS, 0 ) - ROM_LOAD( "jailbbl.cl2", 0x0000, 0x0020, CRC(f1909605) SHA1(91eaa865375b3bc052897732b64b1ff7df3f78f6) ) /* red & green */ - ROM_LOAD( "jailbbl.cl1", 0x0020, 0x0020, CRC(f70bb122) SHA1(bf77990260e8346faa3d3481718cbe46a4a27150) ) /* blue */ - ROM_LOAD( "jailbbl.bp2", 0x0040, 0x0100, CRC(d4fe5c97) SHA1(972e9dab6c53722545dd3a43e3ada7921e88708b) ) /* char lookup */ - ROM_LOAD( "jailbbl.bp1", 0x0140, 0x0100, CRC(0266c7db) SHA1(a8f21e86e6d974c9bfd92a147689d0e7316d66e2) ) /* sprites lookup */ - - ROM_REGION( 0x2000, REGION_SOUND1, 0 ) /* speech rom */ - ROM_LOAD( "507p01.8c", 0x0000, 0x2000, CRC(4a1da0b7) SHA1(e18987f0f7fa8740d5f91d1701ee11612c94e8e8) ) -ROM_END - - -static DRIVER_INIT( jailbrek ) -{ - konami1_decode(); -} - - -GAME( 1986, jailbrek, 0, jailbrek, jailbrek, jailbrek, ROT0, "Konami", "Jail Break", 0 ) -GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, jailbrek, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", 0 ) diff --git a/src/drivers/jedi.c b/src/drivers/jedi.c deleted file mode 100644 index 1b2601875..000000000 --- a/src/drivers/jedi.c +++ /dev/null @@ -1,613 +0,0 @@ -/*************************************************************************** - - Atari Return of the Jedi hardware - - driver by Dan Boris - - Games supported: - * Return of the Jedi - - Known bugs: - * none at this time - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - CPU #1 - ======================================================================== - 0000-07FF R/W xxxxxxxx Z-page Working RAM - 0800-08FF R/W xxxxxxxx NVRAM - 0C00 R xxxx-xxx Switch inputs #1 - R x------- (right coin) - R -x------ (left coin) - R --x----- (aux coin) - R ---x---- (self test) - R -----x-- (left thumb switch) - R ------x- (fire switches) - R -------x (right thumb switch) - 0C01 R xxx--x-- Communications - R x------- (VBLANK) - R -x------ (sound CPU communications latch full flag) - R --x----- (sound CPU acknowledge latch flag) - R -----x-- (slam switch) - 1400 R xxxxxxxx Sound acknowledge latch - 1800 R xxxxxxxx Read A/D conversion - 1C00 W -------- Enable NVRAM - 1C01 W -------- Disable NVRAM - 1C80 W -------- Start A/D conversion (horizontal) - 1C82 W -------- Start A/D conversion (vertical) - 1D00 W -------- NVRAM store - 1D80 W -------- Watchdog clear - 1E00 W -------- Interrupt acknowledge - 1E80 W x------- Left coin counter - 1E81 W x------- Right coin counter - 1E82 W x------- LED 1 (not used) - 1E83 W x------- LED 2 (not used) - 1E84 W x------- Alphanumerics bank select - 1E86 W x------- Sound CPU reset - 1E87 W x------- Video off - 1F00 W xxxxxxxx Sound communications latch - 1F80 W -----xxx Program ROM bank select - 2000-23FF R/W xxxxxxxx Scrolling playfield (low 8 bits) - 2400-27FF R/W ----xxxx Scrolling playfield (upper 4 bits) - 2800-2BFF R/W xxxxxxxx Color RAM low - R/W -----xxx (blue) - R/W --xxx--- (green) - R/W xx------ (red LSBs) - 2C00-2FFF R/W ----xxxx Color RAM high - R/W -------x (red MSB) - R/W ----xxx- (intensity) - 3000-37BF R/W xxxxxxxx Alphanumerics RAM - 37C0-37EF R/W xxxxxxxx Motion object picture - 3800-382F R/W -xxxxxxx Motion object flags - R/W -x---xx- (picture bank) - R/W --x----- (vertical flip) - R/W ---x---- (horizontal flip) - R/W ----x--- (32 pixels tall) - R/W -------x (X position MSB) - 3840-386F R/W xxxxxxxx (Y position) - 38C0-38EF R/W xxxxxxxx (X position LSBs) - 3C00-3C01 W xxxxxxxx Scrolling playfield vertical position - 3D00-3D01 W xxxxxxxx Scrolling playfield horizontal position - 3E00-3FFF W xxxxxxxx PIXI graphics expander RAM - 4000-7FFF R xxxxxxxx Banked program ROM - 8000-FFFF R xxxxxxxx Fixed program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by 32V - ======================================================================== - - - ======================================================================== - CPU #2 - ======================================================================== - 0000-07FF R/W xxxxxxxx Z-page working RAM - 0800-083F R/W xxxxxxxx Custom I/O - 1000 W -------- Interrupt acknowledge - 1100 W xxxxxxxx Speech data - 1200 W -------- Speech write strobe on - 1300 W -------- Speech write strobe off - 1400 W xxxxxxxx Main CPU acknowledge latch - 1500 W -------x Speech chip reset - 1800 R xxxxxxxx Main CPU communication latch - 1C00 R x------- Speech chip ready - 1C01 R xx------ Communications - R x------- (sound CPU communication latch full flag) - R -x------ (sound CPU acknowledge latch full flag) - 8000-FFFF R xxxxxxxx Program ROM - ======================================================================== - Interrupts: - NMI not connected - IRQ generated by 32V - ======================================================================== - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "sound/5220intf.h" -#include "sound/pokey.h" -#include "jedi.h" - - -/* constants */ -#define MAIN_CPU_OSC 10000000 -#define SOUND_CPU_OSC 12096000 - - -/* local variables */ -static UINT8 control_num; -static UINT8 sound_latch; -static UINT8 sound_ack_latch; -static UINT8 sound_comm_stat; -static UINT8 speech_write_buffer; -static UINT8 speech_strobe_state; -static UINT8 nvram_enabled; - -static mame_timer *interrupt_timer; - - -/************************************* - * - * Interrupt handling - * - *************************************/ - -static void generate_interrupt(int scanline) -{ - /* IRQ is set by /32V */ - cpunum_set_input_line(0, M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(1, M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); - - /* set up for the next */ - scanline += 32; - if (scanline > 256) - scanline = 32; - timer_adjust(interrupt_timer, cpu_getscanlinetime(scanline), scanline, 0); -} - - -static WRITE8_HANDLER( main_irq_ack_w ) -{ - cpunum_set_input_line(0, M6502_IRQ_LINE, CLEAR_LINE); -} - - -static WRITE8_HANDLER( sound_irq_ack_w ) -{ - cpunum_set_input_line(1, M6502_IRQ_LINE, CLEAR_LINE); -} - - -static MACHINE_START( jedi ) -{ - /* set a timer to run the interrupts */ - interrupt_timer = timer_alloc(generate_interrupt); - timer_adjust(interrupt_timer, cpu_getscanlinetime(32), 32, 0); - - /* configure the banks */ - memory_configure_bank(1, 0, 3, memory_region(REGION_CPU1) + 0x10000, 0x4000); - - /* set up save state */ - state_save_register_global(control_num); - state_save_register_global(sound_latch); - state_save_register_global(sound_ack_latch); - state_save_register_global(sound_comm_stat); - state_save_register_global(speech_write_buffer); - state_save_register_global(speech_strobe_state); - state_save_register_global(nvram_enabled); - return 0; -} - - -static MACHINE_RESET( jedi ) -{ - /* init globals */ - control_num = 0; - sound_latch = 0; - sound_ack_latch = 0; - sound_comm_stat = 0; - speech_write_buffer = 0; - speech_strobe_state = 0; - nvram_enabled = 0; -} - - - -/************************************* - * - * Main program ROM banking - * - *************************************/ - -static WRITE8_HANDLER( rom_banksel_w ) -{ - if (data & 0x01) memory_set_bank(1, 0); - if (data & 0x02) memory_set_bank(1, 1); - if (data & 0x04) memory_set_bank(1, 2); -} - - - -/************************************* - * - * Main CPU -> Sound CPU communications - * - *************************************/ - -static WRITE8_HANDLER( sound_reset_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); -} - - -static void delayed_sound_latch_w(int data) -{ - sound_latch = data; - sound_comm_stat |= 0x80; -} - - -static WRITE8_HANDLER( sound_latch_w ) -{ - timer_set(TIME_NOW, data, delayed_sound_latch_w); -} - - -static READ8_HANDLER( sound_latch_r ) -{ - sound_comm_stat &= ~0x80; - return sound_latch; -} - - - -/************************************* - * - * Sound CPU -> Main CPU communications - * - *************************************/ - -static READ8_HANDLER( sound_ack_latch_r ) -{ - sound_comm_stat &= ~0x40; - return sound_ack_latch; -} - - -static WRITE8_HANDLER( sound_ack_latch_w ) -{ - sound_ack_latch = data; - sound_comm_stat |= 0x40; -} - - - -/************************************* - * - * I/O ports - * - *************************************/ - -static READ8_HANDLER( a2d_data_r ) -{ - switch (control_num) - { - case 0: return readinputport(2); - case 2: return readinputport(3); - default: return 0; - } - return 0; -} - - -static READ8_HANDLER( special_port1_r ) -{ - return readinputport(1) ^ ((sound_comm_stat >> 1) & 0x60); -} - - -static WRITE8_HANDLER( a2d_select_w ) -{ - control_num = offset; -} - - -static READ8_HANDLER( soundstat_r ) -{ - return sound_comm_stat; -} - - -static WRITE8_HANDLER( jedi_coin_counter_w ) -{ - coin_counter_w(offset, data >> 7); -} - - - -/************************************* - * - * Speech access - * - *************************************/ - -static WRITE8_HANDLER( speech_data_w ) -{ - speech_write_buffer = data; -} - - -static WRITE8_HANDLER( speech_strobe_w ) -{ - int state = (~offset >> 8) & 1; - - if ((state ^ speech_strobe_state) && state) - tms5220_data_w(0, speech_write_buffer); - speech_strobe_state = state; -} - - -static READ8_HANDLER( speech_ready_r ) -{ - return (!tms5220_ready_r()) << 7; -} - - - -/************************************* - * - * NVRAM - * - *************************************/ - -static WRITE8_HANDLER( nvram_data_w ) -{ - if (nvram_enabled) - generic_nvram[offset] = data; -} - - -static WRITE8_HANDLER( nvram_enable_w ) -{ - nvram_enabled = ~offset & 1; -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM - AM_RANGE(0x0800, 0x08ff) AM_READWRITE(MRA8_RAM, nvram_data_w) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x0c00, 0x0c00) AM_READ(input_port_0_r) - AM_RANGE(0x0c01, 0x0c01) AM_READ(special_port1_r) - AM_RANGE(0x1400, 0x1400) AM_READ(sound_ack_latch_r) - AM_RANGE(0x1800, 0x1800) AM_READ(a2d_data_r) - AM_RANGE(0x1c00, 0x1c01) AM_WRITE(nvram_enable_w) - AM_RANGE(0x1c80, 0x1c82) AM_WRITE(a2d_select_w) - AM_RANGE(0x1d00, 0x1d00) AM_WRITE(MWA8_NOP) /* NVRAM store */ - AM_RANGE(0x1d80, 0x1d80) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1e00, 0x1e00) AM_WRITE(main_irq_ack_w) - AM_RANGE(0x1e80, 0x1e81) AM_WRITE(jedi_coin_counter_w) - AM_RANGE(0x1e82, 0x1e83) AM_WRITE(MWA8_NOP) /* LED control; not used */ - AM_RANGE(0x1e84, 0x1e84) AM_WRITE(jedi_alpha_banksel_w) - AM_RANGE(0x1e86, 0x1e86) AM_WRITE(sound_reset_w) - AM_RANGE(0x1e87, 0x1e87) AM_WRITE(jedi_video_off_w) - AM_RANGE(0x1f00, 0x1f00) AM_WRITE(sound_latch_w) - AM_RANGE(0x1f80, 0x1f80) AM_WRITE(rom_banksel_w) - AM_RANGE(0x2000, 0x27ff) AM_READWRITE(MRA8_RAM, jedi_backgroundram_w) AM_BASE(&jedi_backgroundram) AM_SIZE(&jedi_backgroundram_size) - AM_RANGE(0x2800, 0x2fff) AM_READWRITE(MRA8_RAM, jedi_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x3000, 0x37bf) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x37c0, 0x3bff) AM_READWRITE(MRA8_RAM, MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x3c00, 0x3c01) AM_WRITE(jedi_vscroll_w) - AM_RANGE(0x3d00, 0x3d01) AM_WRITE(jedi_hscroll_w) - AM_RANGE(0x3e00, 0x3fff) AM_WRITE(jedi_PIXIRAM_w) AM_BASE(&jedi_PIXIRAM) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM - AM_RANGE(0x0800, 0x080f) AM_READWRITE(pokey1_r, pokey1_w) - AM_RANGE(0x0810, 0x081f) AM_READWRITE(pokey2_r, pokey2_w) - AM_RANGE(0x0820, 0x082f) AM_READWRITE(pokey3_r, pokey3_w) - AM_RANGE(0x0830, 0x083f) AM_READWRITE(pokey4_r, pokey4_w) - AM_RANGE(0x1000, 0x1000) AM_WRITE(sound_irq_ack_w) - AM_RANGE(0x1100, 0x11ff) AM_WRITE(speech_data_w) - AM_RANGE(0x1200, 0x13ff) AM_WRITE(speech_strobe_w) - AM_RANGE(0x1400, 0x1400) AM_WRITE(sound_ack_latch_w) - AM_RANGE(0x1800, 0x1800) AM_READ(sound_latch_r) - AM_RANGE(0x1c00, 0x1c00) AM_READ(speech_ready_r) - AM_RANGE(0x1c01, 0x1c01) AM_READ(soundstat_r) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( jedi ) - PORT_START /* 0C00 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* 0C01 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) - PORT_BIT( 0x18, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x60, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sound comm */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START /* analog Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START /* analog X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics layouts - * - *************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 0, 1 }, - { 0, 2, 4, 6, 8, 10, 12, 14 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - - -static const gfx_layout pflayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0, 4, RGN_FRAC(1,2), RGN_FRAC(1,2)+4 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - - -static const gfx_layout spritelayout = -{ - 8,16, - RGN_FRAC(1,2), - 4, - { 0, 4, RGN_FRAC(1,2), RGN_FRAC(1,2)+4 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3}, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 32*8 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { REGION_GFX2, 0, &pflayout, 0, 1 }, - { REGION_GFX3, 0, &spritelayout, 0, 1 }, - { -1 } -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( jedi ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502,MAIN_CPU_OSC/2/2) /* 2.5MHz */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_CPU_ADD(M6502,SOUND_CPU_OSC/2/4) /* 1.5MHz */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(4) - - MDRV_MACHINE_START(jedi) - MDRV_MACHINE_RESET(jedi) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(37*8, 30*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024+1) - - MDRV_VIDEO_START(jedi) - MDRV_VIDEO_UPDATE(jedi) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(POKEY, SOUND_CPU_OSC/2/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30) - - MDRV_SOUND_ADD(POKEY, SOUND_CPU_OSC/2/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30) - - MDRV_SOUND_ADD(POKEY, SOUND_CPU_OSC/2/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30) - - MDRV_SOUND_ADD(POKEY, SOUND_CPU_OSC/2/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30) - - MDRV_SOUND_ADD(TMS5220, SOUND_CPU_OSC/2/9) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( jedi ) - ROM_REGION( 0x1C000, REGION_CPU1, 0 ) /* 64k for code + 48k for banked ROMs */ - ROM_LOAD( "136030-221.14f", 0x08000, 0x4000, CRC(414d05e3) SHA1(e5f5f8d85433467a13d6ca9e3889e07a62b00e52) ) - ROM_LOAD( "136030-222.13f", 0x0c000, 0x4000, CRC(7b3f21be) SHA1(8fe62401f9b78c7a3e62b544c4b705b1bfa9b8f3) ) - ROM_LOAD( "136030-123.13d", 0x10000, 0x4000, CRC(877f554a) SHA1(8b51109cabd84741b024052f892b3172fbe83223) ) /* Page 0 */ - ROM_LOAD( "136030-124.13b", 0x14000, 0x4000, CRC(e72d41db) SHA1(1b3fcdc435f1e470e8d5b7241856e398a4c3910e) ) /* Page 1 */ - ROM_LOAD( "136030-122.13a", 0x18000, 0x4000, CRC(cce7ced5) SHA1(bff031a637aefca713355dbf251dcb5c2cea0885) ) /* Page 2 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* space for the sound ROMs */ - ROM_LOAD( "136030-133.01c", 0x8000, 0x4000, CRC(6c601c69) SHA1(618b77800bbbb4db34a53ca974a71bdaf89b5930) ) - ROM_LOAD( "136030-134.01a", 0xC000, 0x4000, CRC(5e36c564) SHA1(4b0afceb9a1d912f1d5c1f26928d244d5b14ea4a) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "136030-215.11t", 0x00000, 0x2000, CRC(3e49491f) SHA1(ade5e846069c2fa6edf667469d13ce5a6a45c06d) ) /* Alphanumeric */ - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136030-126.06r", 0x00000, 0x8000, CRC(9c55ece8) SHA1(b8faa23314bb0d199ef46199bfabd9cb17510dd3) ) /* Playfield */ - ROM_LOAD( "136030-127.06n", 0x08000, 0x8000, CRC(4b09dcc5) SHA1(d46b5f4fb69c4b8d823dd9c4d92f8713badfa44a) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "136030-130.01h", 0x00000, 0x8000, CRC(2646a793) SHA1(dcb5fd50eafbb27565bce099a884be83a9d82285) ) /* Sprites */ - ROM_LOAD( "136030-131.01f", 0x08000, 0x8000, CRC(60107350) SHA1(ded03a46996d3f2349df7f59fd435a7ad6ed465e) ) - ROM_LOAD( "136030-128.01m", 0x10000, 0x8000, CRC(24663184) SHA1(5eba142ed926671ee131430944e59f21a55a5c57) ) - ROM_LOAD( "136030-129.01k", 0x18000, 0x8000, CRC(ac86b98c) SHA1(9f86c8801a7293fa46e9432f1651dd85bf00f4b9) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* background smoothing */ - ROM_LOAD( "136030-117.bin", 0x0000, 0x0400, CRC(9831bd55) SHA1(12945ef2d1582914125b9ee591567034d71d6573) ) - ROM_LOAD( "136030-118.bin", 0x0400, 0x0400, CRC(261fbfe7) SHA1(efc65a74a3718563a07b718e34d8a7aa23339a69) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1984, jedi, 0, jedi, jedi, 0, ROT0, "Atari", "Return of the Jedi", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/kaneko16.c b/src/drivers/kaneko16.c deleted file mode 100644 index e178bec94..000000000 --- a/src/drivers/kaneko16.c +++ /dev/null @@ -1,4008 +0,0 @@ -/*************************************************************************** - - -= Kaneko 16 Bit Games =- - - driver by Luca Elia (l.elia@tin.it) - - -CPU : 68000 + MCU [Optional] - -SOUND : OKI-M6295 x (1 | 2) + YM2149 x (0 | 2) - OR : Z80 + YM2151 - -OTHER : 93C46 EEPROM [Optional] - -CUSTOM : VU-001 046A (48pin PQFP) - VU-002 052 151021 (160pin PQFP) <- Sprites - VU-003 <- High Colour Background - VIEW2-CHIP 23160-509 9047EAI (144pin PQFP) <- Tilemaps - MUX2-CHIP (64pin PQFP) - HELP1-CHIP - IU-001 9045KP002 (44pin PQFP) - I/O JAMMA MC-8282 047 (46pin) <- Inputs - - ---------------------------------------------------------------------------- -Year + Game PCB Notes ---------------------------------------------------------------------------- -91 The Berlin Wall - Magical Crystals Z00FC-02 -92 Bakuretsu Breaker - Blaze On 2 Sprites Chips !? - Sand Scorpion (by Face) MCU protection (collision detection etc.) - Shogun Warriors MCU protection (68k code snippets, NOT WORKING) - B.Rap Boys MCU protection (not working, game can be - run on a shoggwar board ok) -94 Great 1000 Miles Rally MCU protection (EEPROM handling etc.) - Bonk's Adventure Z09AF-003 MCU protection (EEPROM handling etc.) -95 Great 1000 Miles Rally 2 MCU protection (EEPROM handling etc.) ---------------------------------------------------------------------------- - -Note: gtmr manual shows "Compatible with AX Kaneko System Board" -Note: Magic Crystals reports "TOYBOX SYSTEM Version 0.93B+" - -To Do: - -[gtmr] - -- Stage 4: The layers' scrolling is very jerky for a couple of seconds - in the middle of this level (probably interrupt related) - -- The layers' colours are not initialised when showing the self test - screen and the very first screen (with the Kaneko logo in the middle). - They're probably supposed to be disabled in those occasions, but the - relevant registers aren't changed throughout the game (?) - -[gtmr2] - -- Finish the Inputs (different wheels and pedals) - -- Find infos about the communication stuff (even if it won't be supported) - -[bonkadv] - -- Bad tilemap colors in levels 2 and 3 - -***************************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "includes/kaneko16.h" -#include "sound/2203intf.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -extern void (*toybox_mcu_run)(void); /* one of the following */ -void bloodwar_mcu_run(void); -void bonkadv_mcu_run(void); -void gtmr_mcu_run(void); - -/*************************************************************************** - - - Machine Initialisation - - -***************************************************************************/ - -MACHINE_RESET( kaneko16 ) -{ - kaneko16_sprite_type = 0; - - kaneko16_sprite_xoffs = 0; - kaneko16_sprite_yoffs = 0; - -/* - Sx = Sprites with priority x, x = tiles with priority x, - Sprites - Tiles Order (bottom -> top): - - 0 S0 1 2 3 - 0 1 S1 2 3 - 0 1 2 S2 3 - 0 1 2 3 S3 -*/ - kaneko16_priority.sprite[0] = 1; // above tile[0], below the others - kaneko16_priority.sprite[1] = 2; // above tile[0-1], below the others - kaneko16_priority.sprite[2] = 3; // above tile[0-2], below the others - kaneko16_priority.sprite[3] = 8; // above all -} - -static MACHINE_RESET( berlwall ) -{ - machine_reset_kaneko16(machine); - - kaneko16_sprite_type = 2; // like type 0, but using 16 instead of 8 bytes -} - -static MACHINE_RESET( blazeon ) -{ - machine_reset_kaneko16(machine); - - kaneko16_sprite_xoffs = 0x10000 - 0x680; - kaneko16_sprite_yoffs = 0x000; - -/* - Sx = Sprites with priority x, x = tiles with priority x, - Sprites - Tiles Order (bottom -> top): - - 0 S0 1 2 3 - 0 1 S1 2 3 - 0 1 2 3 S2 - 0 1 2 3 S3 -*/ - kaneko16_priority.sprite[0] = 1; // above tile[0], below the others - kaneko16_priority.sprite[1] = 2; // above tile[0-1], below the others - kaneko16_priority.sprite[2] = 8; // above all - kaneko16_priority.sprite[3] = 8; // "" -} - -static MACHINE_RESET( bloodwar ) -{ - kaneko16_priority.sprite[0] = 2; // ever used ? - kaneko16_priority.sprite[1] = 3; // character selection / vs. portraits - kaneko16_priority.sprite[2] = 5; // winning portrait - kaneko16_priority.sprite[3] = 7; - - kaneko16_sprite_type = 1; - - kaneko16_priority.VIEW2_2_pri = 1; - - toybox_mcu_run = bloodwar_mcu_run; - toybox_mcu_init(); -} - -static MACHINE_RESET( bonkadv ) -{ - kaneko16_priority.sprite[0] = 2; // ever used ? - kaneko16_priority.sprite[1] = 3; // volcano lava on level 2 - kaneko16_priority.sprite[2] = 5; // in-game player - kaneko16_priority.sprite[3] = 7; // demostration text - - kaneko16_sprite_type = 1; - - kaneko16_priority.VIEW2_2_pri = 1; - - toybox_mcu_run = bonkadv_mcu_run; - toybox_mcu_init(); -} - -static MACHINE_RESET( bakubrkr ) -{ - machine_reset_kaneko16(machine); - - kaneko16_priority.sprite[0] = 8; // above all - kaneko16_priority.sprite[1] = 8; // above all - kaneko16_priority.sprite[2] = 8; // above all - kaneko16_priority.sprite[3] = 8; // above all - - kaneko16_priority.VIEW2_2_pri = 1; -} - -static MACHINE_RESET( gtmr ) -{ - machine_reset_kaneko16(machine); - - kaneko16_sprite_type = 1; - - kaneko16_priority.VIEW2_2_pri = 1; - - toybox_mcu_run = gtmr_mcu_run; - toybox_mcu_init(); -} - -static MACHINE_RESET( mgcrystl ) -{ - machine_reset_kaneko16(machine); -/* - Sx = Sprites with priority x, x = tiles with priority x, - Sprites - Tiles Order: - - S0: below 0 2 - - S1: over 2 - below 0 - - S2: over 0 2 - - S3: over all - - tiles of the 2nd VIEW2 chip always behind sprites? - -*/ - kaneko16_priority.sprite[0] = 2; // below all - kaneko16_priority.sprite[1] = 3; // above tile[0], below the others - kaneko16_priority.sprite[2] = 5; // above all - kaneko16_priority.sprite[3] = 7; // "" - - kaneko16_priority.VIEW2_2_pri = 0; -} - -static MACHINE_RESET( sandscrp ) -{ - machine_reset_kaneko16(machine); - - kaneko16_sprite_type = 3; // "different" sprites layout -} - -static MACHINE_RESET( shogwarr ) -{ - machine_reset_kaneko16(machine); - - calc3_mcu_init(); -} - - -/*************************************************************************** - - - Misc Machine Emulation Routines - - -***************************************************************************/ - -READ16_HANDLER( kaneko16_rnd_r ) -{ - return mame_rand(Machine) & 0xffff; -} - -WRITE16_HANDLER( kaneko16_coin_lockout_w ) -{ - if (ACCESSING_MSB) - { - coin_counter_w(0, data & 0x0100); - coin_counter_w(1, data & 0x0200); - coin_lockout_w(0, (~data) & 0x0400 ); - coin_lockout_w(1, (~data) & 0x0800 ); - } -} - -/* Sand Scorpion */ - -static UINT8 sprite_irq; -static UINT8 unknown_irq; -static UINT8 vblank_irq; - - -/* Update the IRQ state based on all possible causes */ -static void update_irq_state(void) -{ - if (vblank_irq || sprite_irq || unknown_irq) - cpunum_set_input_line(0, 1, ASSERT_LINE); - else - cpunum_set_input_line(0, 1, CLEAR_LINE); -} - - -/* Called once/frame to generate the VBLANK interrupt */ -static INTERRUPT_GEN( sandscrp_interrupt ) -{ - vblank_irq = 1; - update_irq_state(); -} - - -static VIDEO_EOF( sandscrp ) -{ - sprite_irq = 1; - update_irq_state(); -} - -/* Reads the cause of the interrupt */ -static READ16_HANDLER( sandscrp_irq_cause_r ) -{ - return ( sprite_irq ? 0x08 : 0 ) | - ( unknown_irq ? 0x10 : 0 ) | - ( vblank_irq ? 0x20 : 0 ) ; -} - - -/* Clear the cause of the interrupt */ -static WRITE16_HANDLER( sandscrp_irq_cause_w ) -{ - if (ACCESSING_LSB) - { - kaneko16_sprite_flipx = data & 1; - kaneko16_sprite_flipy = data & 1; - - if (data & 0x08) sprite_irq = 0; - if (data & 0x10) unknown_irq = 0; - if (data & 0x20) vblank_irq = 0; - } - - update_irq_state(); -} - - -/*************************************************************************** - - - Sound - - -***************************************************************************/ - -WRITE16_HANDLER( kaneko16_soundlatch_w ) -{ - if (ACCESSING_MSB) - { - soundlatch_w(0, (data & 0xff00) >> 8 ); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - } -} - -/* Two identically mapped YM2149 chips */ - -READ16_HANDLER( kaneko16_YM2149_0_r ) -{ - /* Each 2149 register is mapped to a different address */ - AY8910_control_port_0_w(0,offset); - return AY8910_read_port_0_r(0); -} -READ16_HANDLER( kaneko16_YM2149_1_r ) -{ - /* Each 2149 register is mapped to a different address */ - AY8910_control_port_1_w(0,offset); - return AY8910_read_port_1_r(0); -} - -WRITE16_HANDLER( kaneko16_YM2149_0_w ) -{ - /* Each 2149 register is mapped to a different address */ - AY8910_control_port_0_w(0,offset); - /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_LSB) AY8910_write_port_0_w(0, data & 0xff); - else AY8910_write_port_0_w(0,(data >> 8) & 0xff); -} -WRITE16_HANDLER( kaneko16_YM2149_1_w ) -{ - /* Each 2149 register is mapped to a different address */ - AY8910_control_port_1_w(0,offset); - /* The registers are mapped to odd addresses, except one! */ - if (ACCESSING_LSB) AY8910_write_port_1_w(0, data & 0xff); - else AY8910_write_port_1_w(0,(data >> 8) & 0xff); -} - - -/*************************************************************************** - - - EEPROM - - -***************************************************************************/ - -READ8_HANDLER( kaneko16_eeprom_r ) -{ - return EEPROM_read_bit() & 1; -} - -WRITE8_HANDLER( kaneko16_eeprom_reset_w ) -{ - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE ); -} - -WRITE16_HANDLER( kaneko16_eeprom_w ) -{ - if (ACCESSING_LSB) - { - // latch the bit - EEPROM_write_bit(data & 0x02); - - // reset line asserted: reset. -// EEPROM_set_cs_line((data & 0x00) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); - } - - if (ACCESSING_MSB) - { - coin_counter_w(0, data & 0x0100); - coin_counter_w(1, data & 0x0200); - coin_lockout_w(0, data & 0x8000); - coin_lockout_w(1, data & 0x8000); - } -} - - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - -/*************************************************************************** - The Berlin Wall -***************************************************************************/ - -static ADDRESS_MAP_START( berlwall, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM - AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM - AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x400000, 0x400fff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette -// AM_RANGE(0x480000, 0x480001) AM_RAM // ? - AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_BASE(&kaneko16_bg15_reg) // High Color Background - AM_RANGE(0x580000, 0x580001) AM_READWRITE(kaneko16_bg15_select_r, kaneko16_bg15_select_w) AM_BASE(&kaneko16_bg15_select) - AM_RANGE(0x600000, 0x60003f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0x680000, 0x680001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0x680002, 0x680003) AM_READ(input_port_1_word_r) - AM_RANGE(0x680004, 0x680005) AM_READ(input_port_2_word_r) -// AM_RANGE(0x680006, 0x680007) AM_READ(input_port_3_word_r) - AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout - AM_RANGE(0x780000, 0x780001) AM_READ(watchdog_reset16_r) // Watchdog - AM_RANGE(0x800000, 0x80001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound - AM_RANGE(0x800200, 0x80021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w) - AM_RANGE(0x8003fe, 0x8003ff) AM_NOP // for OKI when accessed as .l - AM_RANGE(0x800400, 0x800401) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) - AM_RANGE(0xc00000, 0xc00fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers - AM_RANGE(0xc01000, 0xc01fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0xc02000, 0xc02fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0xc03000, 0xc03fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers Regs -ADDRESS_MAP_END - - -/*************************************************************************** - Bakuretsu Breaker -***************************************************************************/ - -/* Two un-assigned OKI samples get requested during game play. Leftover bug? */ -/* The two YM2149 chips are only used when entering high score initials, and */ -/* when the game is fully completed. Overkill??? */ - -WRITE16_HANDLER( bakubrkr_oki_bank_sw ) -{ - if (ACCESSING_LSB) { - OKIM6295_set_bank_base(0, 0x40000 * (data & 0x7) ); - logerror("PC:%06X Selecting OKI bank %02X\n",activecpu_get_pc(),data&0xff); - } -} - -static ADDRESS_MAP_START( bakubrkr, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - AM_RANGE(0x400000, 0x40001f) AM_READ(kaneko16_YM2149_0_r) // Sound - AM_RANGE(0x400000, 0x40001d) AM_WRITE(kaneko16_YM2149_0_w) - AM_RANGE(0x40001e, 0x40001f) AM_WRITE(bakubrkr_oki_bank_sw) // OKI bank Switch - AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r,kaneko16_YM2149_1_w) // Sound - AM_RANGE(0x400400, 0x400401) AM_READWRITE(OKIM6295_status_0_lsb_r,OKIM6295_data_0_lsb_w) // - AM_RANGE(0x500000, 0x500fff) AM_READWRITE(MRA16_RAM,kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x501000, 0x501fff) AM_READWRITE(MRA16_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x503000, 0x503fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x580000, 0x580fff) AM_READWRITE(MRA16_RAM,kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1 - AM_RANGE(0x581000, 0x581fff) AM_READWRITE(MRA16_RAM,kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) // - AM_RANGE(0x582000, 0x582fff) AM_RAM AM_BASE(&kaneko16_vscroll_3) // - AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE(&kaneko16_vscroll_2) // - AM_RANGE(0x600000, 0x601fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x700000, 0x700fff) AM_READWRITE(MRA16_RAM,paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x800000, 0x80001f) AM_READWRITE(MRA16_RAM,kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x900000, 0x90001f) AM_READWRITE(MRA16_RAM,kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs - AM_RANGE(0xa80000, 0xa80001) AM_READ(watchdog_reset16_r) // Watchdog - AM_RANGE(0xb00000, 0xb0001f) AM_READWRITE(MRA16_RAM,kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM - AM_RANGE(0xe00000, 0xe00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xe00002, 0xe00003) AM_READ(input_port_1_word_r) - AM_RANGE(0xe00004, 0xe00005) AM_READ(input_port_2_word_r) - AM_RANGE(0xe00006, 0xe00007) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - - -/*************************************************************************** - Blaze On -***************************************************************************/ - -static ADDRESS_MAP_START( blazeon, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM - AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM - AM_RANGE(0x500000, 0x500fff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x600000, 0x600fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x601000, 0x601fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x603000, 0x603fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x800000, 0x80001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x900000, 0x90001f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs #1 - AM_RANGE(0x980000, 0x98001f) AM_RAM // Sprites Regs #2 - AM_RANGE(0xc00000, 0xc00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r) - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_2_word_r) - AM_RANGE(0xc00006, 0xc00007) AM_READ(input_port_3_word_r) - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout - AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(MRA16_NOP, kaneko16_soundlatch_w) // Read = IRQ Ack ? - AM_RANGE(0xe40000, 0xe40001) AM_READ(MRA16_NOP) // IRQ Ack ? -// AM_RANGE(0xe80000, 0xe80001) AM_READ(MRA16_NOP) // IRQ Ack ? - AM_RANGE(0xec0000, 0xec0001) AM_READ(MRA16_NOP) // Lev 4 IRQ Ack ? -ADDRESS_MAP_END - - -/*************************************************************************** - Blood Warrior -***************************************************************************/ - -static WRITE16_HANDLER( bloodwar_oki_0_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(0, 0x40000 * (data & 0xf) ); -// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",activecpu_get_pc(),data); - } -} - -static WRITE16_HANDLER( bloodwar_oki_1_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(1, 0x40000 * data ); -// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",activecpu_get_pc(),data); - } -} - -static WRITE16_HANDLER( bloodwar_coin_lockout_w ) -{ - if (ACCESSING_MSB) - { - coin_counter_w(0, data & 0x0100); - coin_counter_w(1, data & 0x0200); - coin_lockout_w(0, data & 0x8000); - coin_lockout_w(1, data & 0x8000); - } -} - -static ADDRESS_MAP_START( bloodwar, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(&mcu_ram) // Shared With MCU - AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? - AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) - AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) - AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x500000, 0x500fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x501000, 0x501fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x503000, 0x503fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x580000, 0x580fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1 - AM_RANGE(0x581000, 0x581fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) // - AM_RANGE(0x582000, 0x582fff) AM_RAM AM_BASE(&kaneko16_vscroll_3) // - AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE(&kaneko16_vscroll_2) // - AM_RANGE(0x600000, 0x60001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x680000, 0x68001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs - AM_RANGE(0x700000, 0x70001f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) - AM_RANGE(0x880000, 0x880001) AM_READWRITE(OKIM6295_status_1_lsb_r, OKIM6295_data_1_lsb_w) - AM_RANGE(0x900000, 0x90003f) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) // WIP: more collision chip registers! - AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xb00002, 0xb00003) AM_READ(input_port_1_word_r) // - AM_RANGE(0xb00004, 0xb00005) AM_READ(input_port_2_word_r) // - AM_RANGE(0xb00006, 0xb00007) AM_READ(input_port_3_word_r) // - AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) - AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bloodwar_oki_0_bank_w) - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bloodwar_oki_1_bank_w) -ADDRESS_MAP_END - - -/*************************************************************************** - Bonk's Adventure -***************************************************************************/ - -static WRITE16_HANDLER( bonkadv_oki_0_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(0, 0x40000 * (data & 0xF)); - logerror("CPU #0 PC %06X : OKI0 bank %08X\n",activecpu_get_pc(),data); - } -} - -static WRITE16_HANDLER( bonkadv_oki_1_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(1, 0x40000 * data ); - logerror("CPU #0 PC %06X : OKI1 bank %08X\n",activecpu_get_pc(),data); - } -} - - -static ADDRESS_MAP_START( bonkadv, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(&mcu_ram) // Shared With MCU - AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w) // To MCU ? - AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w) - AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) - AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) - AM_RANGE(0x300000, 0x30ffff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x500000, 0x500fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x501000, 0x501fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x503000, 0x503fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x580000, 0x580fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1 - AM_RANGE(0x581000, 0x581fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) // - AM_RANGE(0x582000, 0x582fff) AM_RAM AM_BASE(&kaneko16_vscroll_3) // - AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE(&kaneko16_vscroll_2) // - AM_RANGE(0x600000, 0x60001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x680000, 0x68001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs - AM_RANGE(0x700000, 0x70001f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) - AM_RANGE(0x880000, 0x880001) AM_READWRITE(OKIM6295_status_1_lsb_r, OKIM6295_data_1_lsb_w) - AM_RANGE(0x900000, 0x900015) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) - AM_RANGE(0xa00000, 0xa00001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xb00002, 0xb00003) AM_READ(input_port_1_word_r) // - AM_RANGE(0xb00004, 0xb00005) AM_READ(input_port_2_word_r) // - AM_RANGE(0xb00006, 0xb00007) AM_READ(input_port_3_word_r) // - AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable) - AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(bonkadv_oki_0_bank_w) - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(bonkadv_oki_1_bank_w) -ADDRESS_MAP_END - - -/*************************************************************************** - Great 1000 Miles Rally -***************************************************************************/ - - -READ16_HANDLER( gtmr_wheel_r ) -{ - if ( (readinputport(4) & 0x1800) == 0x10) // DSW setting - return readinputport(5)<<8; // 360' Wheel - else - return readinputport(5); // 270' Wheel -} - -WRITE16_HANDLER( gtmr_oki_0_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(0, 0x40000 * (data & 0xF) ); -// logerror("CPU #0 PC %06X : OKI0 bank %08X\n",activecpu_get_pc(),data); - } -} - -WRITE16_HANDLER( gtmr_oki_1_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(1, 0x40000 * (data & 0x1) ); -// logerror("CPU #0 PC %06X : OKI1 bank %08X\n",activecpu_get_pc(),data); - } -} - -WRITE16_HANDLER( gtmr_oki_0_data_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_data_0_w(0,data); -// logerror("CPU #0 PC %06X : OKI0 <- %08X\n",activecpu_get_pc(),data); - } -} - -WRITE16_HANDLER( gtmr_oki_1_data_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_data_1_w(0,data); -// logerror("CPU #0 PC %06X : OKI1 <- %08X\n",activecpu_get_pc(),data); - } -} - -static ADDRESS_MAP_START( gtmr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0ffffd) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r ) // Wheel Value - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM ) // Shared With MCU - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x310000, 0x327fff) AM_READ(MRA16_RAM ) // - AM_RANGE(0x400000, 0x401fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x500000, 0x503fff) AM_READ(MRA16_RAM ) // Layers 0 - AM_RANGE(0x580000, 0x583fff) AM_READ(MRA16_RAM ) // Layers 1 - AM_RANGE(0x600000, 0x60000f) AM_READ(MRA16_RAM ) // Layers 0 Regs - AM_RANGE(0x680000, 0x68000f) AM_READ(MRA16_RAM ) // Layers 1 Regs - AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READ(OKIM6295_status_0_lsb_r ) // Samples - AM_RANGE(0x880000, 0x880001) AM_READ(OKIM6295_status_1_lsb_r ) - AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ? - AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xb00002, 0xb00003) AM_READ(input_port_1_word_r ) - AM_RANGE(0xb00004, 0xb00005) AM_READ(input_port_2_word_r ) - AM_RANGE(0xb00006, 0xb00007) AM_READ(input_port_3_word_r ) - AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gtmr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM ) // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&mcu_ram ) // Shared With MCU - AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(toybox_mcu_com0_w ) // To MCU ? - AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(toybox_mcu_com1_w ) - AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w ) - AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w ) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x310000, 0x327fff) AM_WRITE(MWA16_RAM ) // - AM_RANGE(0x400000, 0x401fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x500000, 0x500fff) AM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1 ) // Layers 0 - AM_RANGE(0x501000, 0x501fff) AM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0 ) // - AM_RANGE(0x502000, 0x502fff) AM_WRITE(MWA16_RAM) AM_BASE(&kaneko16_vscroll_1 ) // - AM_RANGE(0x503000, 0x503fff) AM_WRITE(MWA16_RAM) AM_BASE(&kaneko16_vscroll_0 ) // - AM_RANGE(0x580000, 0x580fff) AM_WRITE(kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3 ) // Layers 1 - AM_RANGE(0x581000, 0x581fff) AM_WRITE(kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2 ) // - AM_RANGE(0x582000, 0x582fff) AM_WRITE(MWA16_RAM) AM_BASE(&kaneko16_vscroll_3 ) // - AM_RANGE(0x583000, 0x583fff) AM_WRITE(MWA16_RAM) AM_BASE(&kaneko16_vscroll_2 ) // - AM_RANGE(0x600000, 0x60000f) AM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs ) // Layers 0 Regs - AM_RANGE(0x680000, 0x68000f) AM_WRITE(kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs ) // Layers 1 Regs - AM_RANGE(0x700000, 0x70001f) AM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_WRITE(gtmr_oki_0_data_w ) // Samples - AM_RANGE(0x880000, 0x880001) AM_WRITE(gtmr_oki_1_data_w ) - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w ) // Coin Lockout - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(kaneko16_display_enable ) // might do more than that - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gtmr_oki_0_bank_w ) // Samples Bankswitching - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(gtmr_oki_1_bank_w ) -ADDRESS_MAP_END - - -/*************************************************************************** - Great 1000 Miles Rally 2 -***************************************************************************/ - - -READ16_HANDLER( gtmr2_wheel_r ) -{ - switch (readinputport(4) & 0x1800) - { - case 0x0000: // 270' A. Wheel - return (readinputport(5)); - break; - case 0x1000: // 270' D. Wheel - return (readinputport(6) << 8); - break; - case 0x0800: // 360' Wheel - return (readinputport(7) << 8); - break; - default: - logerror("gtmr2_wheel_r : read at %06x with joystick\n", activecpu_get_pc()); - return (~0); - break; - } -} - -READ16_HANDLER( gtmr2_IN1_r ) -{ - return (readinputport(1) & (readinputport(8) | ~0x7100)); -} - -static ADDRESS_MAP_START( gtmr2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0ffffd) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r ) // Wheel Value - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM ) // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM ) // Shared With MCU - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x310000, 0x327fff) AM_READ(MRA16_RAM ) // - AM_RANGE(0x400000, 0x401fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x500000, 0x503fff) AM_READ(MRA16_RAM ) // Layers 0 - AM_RANGE(0x580000, 0x583fff) AM_READ(MRA16_RAM ) // Layers 1 - AM_RANGE(0x600000, 0x60000f) AM_READ(MRA16_RAM ) // Layers 0 Regs - AM_RANGE(0x680000, 0x68000f) AM_READ(MRA16_RAM ) // Layers 1 Regs - AM_RANGE(0x700000, 0x70001f) AM_READ(kaneko16_sprites_regs_r ) // Sprites Regs - AM_RANGE(0x800000, 0x800001) AM_READ(OKIM6295_status_0_lsb_r ) // Samples - AM_RANGE(0x880000, 0x880001) AM_READ(OKIM6295_status_1_lsb_r ) - AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r ) // Random Number ? - AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r ) // Watchdog - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r ) // Inputs -// AM_RANGE(0xb00002, 0xb00003) AM_READ(input_port_1_word_r ) - AM_RANGE(0xb00002, 0xb00003) AM_READ(gtmr2_IN1_r ) - AM_RANGE(0xb00004, 0xb00005) AM_READ(input_port_2_word_r ) - AM_RANGE(0xb00006, 0xb00007) AM_READ(input_port_3_word_r ) - AM_RANGE(0xd00000, 0xd00001) AM_READ(toybox_mcu_status_r ) -ADDRESS_MAP_END - - -/*************************************************************************** - Magical Crystal -***************************************************************************/ - -static ADDRESS_MAP_START( mgcrystl, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM - AM_RANGE(0x300000, 0x30ffff) AM_RAM // Work RAM - AM_RANGE(0x400000, 0x40001f) AM_READWRITE(kaneko16_YM2149_0_r, kaneko16_YM2149_0_w) // Sound - AM_RANGE(0x400200, 0x40021f) AM_READWRITE(kaneko16_YM2149_1_r, kaneko16_YM2149_1_w) - AM_RANGE(0x400400, 0x400401) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) - AM_RANGE(0x500000, 0x500fff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x600000, 0x600fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x601000, 0x601fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x603000, 0x603fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x680000, 0x680fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_3_w) AM_BASE(&kaneko16_vram_3) // Layers 1 - AM_RANGE(0x681000, 0x681fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_2_w) AM_BASE(&kaneko16_vram_2) // - AM_RANGE(0x682000, 0x682fff) AM_RAM AM_BASE(&kaneko16_vscroll_3) // - AM_RANGE(0x683000, 0x683fff) AM_RAM AM_BASE(&kaneko16_vscroll_2) // - AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x800000, 0x80001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x900000, 0x90001f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0xb00000, 0xb0001f) AM_READWRITE(MRA16_RAM, kaneko16_layers_1_regs_w) AM_BASE(&kaneko16_layers_1_regs) // Layers 1 Regs - AM_RANGE(0xa00000, 0xa00001) AM_READ(watchdog_reset16_r) // Watchdog - AM_RANGE(0xc00000, 0xc00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r) // - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_2_word_r) // - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Sand Scorpion -***************************************************************************/ - -WRITE16_HANDLER( sandscrp_coin_counter_w ) -{ - if (ACCESSING_LSB) - { - coin_counter_w(0, data & 0x0001); - coin_counter_w(1, data & 0x0002); - } -} - -static UINT8 latch1_full; -static UINT8 latch2_full; - -static READ16_HANDLER( sandscrp_latchstatus_word_r ) -{ - return (latch1_full ? 0x80 : 0) | - (latch2_full ? 0x40 : 0) ; -} - -static WRITE16_HANDLER( sandscrp_latchstatus_word_w ) -{ - if (ACCESSING_LSB) - { - latch1_full = data & 0x80; - latch2_full = data & 0x40; - } -} - -static READ16_HANDLER( sandscrp_soundlatch_word_r ) -{ - latch2_full = 0; - return soundlatch2_r(0); -} - -static WRITE16_HANDLER( sandscrp_soundlatch_word_w ) -{ - if (ACCESSING_LSB) - { - latch1_full = 1; - soundlatch_w(0, data & 0xff); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_time(TIME_IN_USEC(100)); // Allow the other cpu to reply - } -} - -static ADDRESS_MAP_START( sandscrp, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM - AM_RANGE(0x700000, 0x70ffff) AM_RAM // RAM - AM_RANGE(0x200000, 0x20001f) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) // Protection - AM_RANGE(0x300000, 0x30000f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x400000, 0x400fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x401000, 0x401fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x402000, 0x402fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x403000, 0x403fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x500000, 0x501fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x600000, 0x600fff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(sandscrp_coin_counter_w) // Coin Counters (Lockout unused) - AM_RANGE(0xb00000, 0xb00001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xb00002, 0xb00003) AM_READ(input_port_1_word_r) // - AM_RANGE(0xb00004, 0xb00005) AM_READ(input_port_2_word_r) // - AM_RANGE(0xb00006, 0xb00007) AM_READ(input_port_3_word_r) // - AM_RANGE(0xec0000, 0xec0001) AM_READ(watchdog_reset16_r) // - AM_RANGE(0x800000, 0x800001) AM_READ(sandscrp_irq_cause_r) // IRQ Cause - AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(sandscrp_soundlatch_word_r, sandscrp_soundlatch_word_w) // From/To Sound CPU - AM_RANGE(0xe40000, 0xe40001) AM_READWRITE(sandscrp_latchstatus_word_r, sandscrp_latchstatus_word_w) // - AM_RANGE(0x100000, 0x100001) AM_WRITE(sandscrp_irq_cause_w) // IRQ Ack -ADDRESS_MAP_END - - -/*************************************************************************** - Shogun Warriors -***************************************************************************/ - -/* Untested */ -WRITE16_HANDLER( shogwarr_oki_bank_w ) -{ - if (ACCESSING_LSB) - { - OKIM6295_set_bank_base(0, 0x10000 * ((data >> 0) & 0x3) ); - OKIM6295_set_bank_base(1, 0x10000 * ((data >> 4) & 0x3) ); - } -} - -static ADDRESS_MAP_START( shogwarr, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM - AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(MRA16_RAM,calc3_mcu_ram_w) AM_BASE(&mcu_ram) // Shared With MCU - AM_RANGE(0x280000, 0x280001) AM_WRITE(calc3_mcu_com0_w) - AM_RANGE(0x290000, 0x290001) AM_WRITE(calc3_mcu_com1_w) - AM_RANGE(0x2b0000, 0x2b0001) AM_WRITE(calc3_mcu_com2_w) - AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(calc3_mcu_com3_w) - AM_RANGE(0x380000, 0x380fff) AM_READWRITE(MRA16_RAM, paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // Palette - AM_RANGE(0x400000, 0x400001) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) // Samples - AM_RANGE(0x480000, 0x480001) AM_READWRITE(OKIM6295_status_1_lsb_r, OKIM6295_data_1_lsb_w) - AM_RANGE(0x580000, 0x581fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites - AM_RANGE(0x600000, 0x600fff) AM_READWRITE(MRA16_RAM, kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x601000, 0x601fff) AM_READWRITE(MRA16_RAM,kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) - AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) - AM_RANGE(0x603000, 0x603fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) - AM_RANGE(0x800000, 0x80000f) AM_READWRITE(MRA16_RAM, kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs - AM_RANGE(0x900000, 0x90001f) AM_READWRITE(MRA16_RAM, kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // Sprites Regs - AM_RANGE(0xa00014, 0xa00015) AM_READ(kaneko16_rnd_r) // Random Number ? - AM_RANGE(0xa80000, 0xa80001) AM_READWRITE(watchdog_reset16_r, watchdog_reset16_w) // Watchdog - AM_RANGE(0xb80000, 0xb80001) AM_READ(input_port_0_word_r) // Inputs - AM_RANGE(0xb80002, 0xb80003) AM_READ(input_port_1_word_r) - AM_RANGE(0xb80004, 0xb80005) AM_READ(input_port_2_word_r) - AM_RANGE(0xb80006, 0xb80007) AM_READ(input_port_3_word_r) - AM_RANGE(0xd00000, 0xd00001) AM_NOP // ? (bit 0) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(shogwarr_oki_bank_w) // Samples Bankswitching -ADDRESS_MAP_END - - -/*************************************************************************** - - - Memory Maps - Sound CPU - - -***************************************************************************/ - -/*************************************************************************** - Blaze On -***************************************************************************/ - -#if 0 -static WRITE8_HANDLER( blazeon_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bank = data & 7; - memory_set_bankptr(15, &RAM[bank * 0x10000 + 0x1000]); -} -#endif - -static ADDRESS_MAP_START( blazeon_soundmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM - AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blazeon_soundport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x02, 0x02) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) - AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r) -ADDRESS_MAP_END - - -/*************************************************************************** - Sand Scorpion -***************************************************************************/ - -WRITE8_HANDLER( sandscrp_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bank = data & 0x07; - - if ( bank != data ) logerror("CPU #1 - PC %04X: Bank %02X\n",activecpu_get_pc(),data); - - if (bank < 3) RAM = &RAM[0x4000 * bank]; - else RAM = &RAM[0x4000 * (bank-3) + 0x10000]; - - memory_set_bankptr(1, RAM); -} - -static READ8_HANDLER( sandscrp_latchstatus_r ) -{ - return (latch2_full ? 0x80 : 0) | // swapped!? - (latch1_full ? 0x40 : 0) ; -} - -static READ8_HANDLER( sandscrp_soundlatch_r ) -{ - latch1_full = 0; - return soundlatch_r(0); -} - -static WRITE8_HANDLER( sandscrp_soundlatch_w ) -{ - latch2_full = 1; - soundlatch2_w(0,data); -} - -static ADDRESS_MAP_START( sandscrp_soundmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM - AM_RANGE(0x8000, 0xbfff) AM_READWRITE(MRA8_BANK1, MWA8_ROM) // Banked ROM - AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sandscrp_soundport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(sandscrp_bankswitch_w) // ROM Bank - AM_RANGE(0x02, 0x02) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) // YM2203 - AM_RANGE(0x03, 0x03) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) // PORTA/B read - AM_RANGE(0x04, 0x04) AM_WRITE(OKIM6295_data_0_w) // OKIM6295 - AM_RANGE(0x06, 0x06) AM_WRITE(sandscrp_soundlatch_w) // - AM_RANGE(0x07, 0x07) AM_READ(sandscrp_soundlatch_r) // - AM_RANGE(0x08, 0x08) AM_READ(sandscrp_latchstatus_r) // -ADDRESS_MAP_END - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - -/*************************************************************************** - Bakuretsu Breaker -***************************************************************************/ - -INPUT_PORTS_START( bakubrkr ) - PORT_START // IN0 - Player 1 + DSW - e00000.w - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0002, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) /* All other game settings done through the test mode */ - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - e00002.b - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Coins - e00004.b - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) // pause - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - Seems unused ! - e00006.b - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - The Berlin Wall (set 1) -***************************************************************************/ - -INPUT_PORTS_START( berlwall ) - PORT_START // IN0 - Player 1 - 680000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - 680002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Coins - 680004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - ? - 680006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW 1 - $200018.b <- ! $80001d.b - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Reserved" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - - PORT_START // IN5 - DSW 2 - $200019.b <- $80001f.b - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) // 1p lives at 202982.b - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x0c, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPNAME( 0x30, 0x30, "Country" ) - PORT_DIPSETTING( 0x30, "England" ) - PORT_DIPSETTING( 0x20, "Italy" ) - PORT_DIPSETTING( 0x10, "Germany" ) - PORT_DIPSETTING( 0x00, "Freeze Screen" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -/*************************************************************************** - The Berlin Wall (set 2) -***************************************************************************/ - -// Same as berlwall, but for a different lives setting - -INPUT_PORTS_START( berlwalt ) - PORT_START // IN0 - Player 1 - 680000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - 680002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Coins - 680004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - ? - 680006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW 1 - $80001d.b - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Reserved" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - - PORT_START // IN5 - DSW 2 - $80001f.b - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPNAME( 0x30, 0x30, "Country" ) - PORT_DIPSETTING( 0x30, "England" ) - PORT_DIPSETTING( 0x20, "Italy" ) - PORT_DIPSETTING( 0x10, "Germany" ) - PORT_DIPSETTING( 0x00, "Freeze Screen" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -/*************************************************************************** - Blaze On -***************************************************************************/ - -INPUT_PORTS_START( blazeon ) - PORT_START // IN0 - Player 1 + DSW - c00000.w - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x000c, "3" ) - PORT_DIPSETTING( 0x0008, "4" ) - PORT_DIPSETTING( 0x0004, "5" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - - PORT_START // IN1 - Player 2 - c00002.w - PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0005, "6 Coins/3 Credits" ) - PORT_DIPSETTING( 0x0009, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, "5 Coins/6 Credits" ) - PORT_DIPSETTING( 0x0002, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_3C ) ) -// PORT_DIPSETTING( 0x0001, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) ) - - PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0070, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0050, "6 Coins/3 Credits" ) - PORT_DIPSETTING( 0x0090, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, "5 Coins/6 Credits" ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 2C_3C ) ) -// PORT_DIPSETTING( 0x0010, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - - PORT_START // IN2 - ? - c00004.w - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused? - - PORT_START // IN3 - Other Buttons - c00006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) -INPUT_PORTS_END - -/*************************************************************************** - Blood Warrior -***************************************************************************/ - -INPUT_PORTS_START( bloodwar ) - PORT_START // IN0 - Player 1 - b00000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_START // IN1 - Player 2 - b00002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START // IN2 - Coins - b00004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // tested - - PORT_START // IN3 - ? - b00006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) // tested - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // tested - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW from the MCU - $10497e.b <- $208000.b - PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0200, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x3800, "1 Easy" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x2800, "3" ) - PORT_DIPSETTING( 0x2000, "4" ) - PORT_DIPSETTING( 0x1800, "5" ) - PORT_DIPSETTING( 0x1000, "6" ) - PORT_DIPSETTING( 0x0800, "7" ) - PORT_DIPSETTING( 0x0000, "8 Hard" ) - PORT_DIPNAME( 0x4000, 0x4000, "Join During Game" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -/*************************************************************************** - Bonk's Adventure -***************************************************************************/ - -INPUT_PORTS_START( bonkadv ) - PORT_START // IN0 - Player 1 - b00000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_START // IN1 - Player 2 - b00002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START // IN2 - Coins - b00004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE2 ) - - PORT_START // IN3 - ? - b00006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // tested - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // tested - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW from the MCU - $10019e.b <- $200200.b - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, "Ticket dispenser" ) /* "Reserved" for Japan/Europe */ - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x0000, "Title Level Display" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Reserved" ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Reserved" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -/*************************************************************************** - Great 1000 Miles Rally -***************************************************************************/ - -INPUT_PORTS_START( gtmr ) - PORT_START // IN0 - Player 1 - b00000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // swapped for consistency: - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // button1 is usually accel. - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - b00002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // swapped for consistency: - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // button1 is usually accel. - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Coins - b00004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - Seems unused ! - b00006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW from the MCU - 101265.b <- 206000.b - PORT_SERVICE( 0x0100, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Controls ) ) - PORT_DIPSETTING( 0x1800, "1 Joystick" ) - PORT_DIPSETTING( 0x0800, "2 Joysticks" ) - PORT_DIPSETTING( 0x1000, "Wheel (360)" ) - PORT_DIPSETTING( 0x0000, "Wheel (270)" ) - PORT_DIPNAME( 0x2000, 0x2000, "Use Brake" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, "National Anthem & Flag" ) - PORT_DIPSETTING( 0xc000, "Use Memory" ) - PORT_DIPSETTING( 0x8000, "Anthem Only" ) - PORT_DIPSETTING( 0x4000, "Flag Only" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - - PORT_START // IN5 - Wheel - 100015.b <- ffffe.b - PORT_BIT ( 0x00ff, 0x0080, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(1) -INPUT_PORTS_END - - -/*************************************************************************** - Great 1000 Miles Rally 2 -***************************************************************************/ - -INPUT_PORTS_START( gtmr2 ) - PORT_START // IN0 - Player 1 - 100004.w <- b00000.w (cpl) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // swapped for consistency: - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // button1 is usually accel. - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - 10000c.w <- b00002.w (cpl) - for "test mode" only - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // swapped for consistency: - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // button1 is usually accel. - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Coins - 100014.w <- b00004.w (cpl) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) // only in "test mode" - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - 100017.w <- b00006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("IN 3-6") // Code at 0x002236 - Centers 270D wheel ? - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW from the MCU - 1016f7.b <- 206000.b - PORT_DIPNAME( 0x0700, 0x0700, "Communication" ) - PORT_DIPSETTING( 0x0700, DEF_STR( None ) ) - PORT_DIPSETTING( 0x0600, "Machine 1" ) - PORT_DIPSETTING( 0x0500, "Machine 2" ) - PORT_DIPSETTING( 0x0400, "Machine 3" ) - PORT_DIPSETTING( 0x0300, "Machine 4" ) - /* 0x0000 to 0x0200 : "Machine 4" - PORT_DIPSETTING( 0x0200, "Machine 4 (0x0200)" ) - PORT_DIPSETTING( 0x0100, "Machine 4 (0x0100)" ) - PORT_DIPSETTING( 0x0000, "Machine 4 (0x0000)" ) - */ - PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Controls ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( Joystick ) ) - PORT_DIPSETTING( 0x0800, "Wheel (360)" ) // Not working correctly in race - PORT_DIPSETTING( 0x1000, "Wheel (270D)" ) // Not working correctly ! - PORT_DIPSETTING( 0x0000, "Wheel (270A)" ) // Not working correctly in race - PORT_DIPNAME( 0x2000, 0x2000, "Pedal Function" ) - PORT_DIPSETTING( 0x2000, "Microswitch" ) -// PORT_DIPSETTING( 0x0000, "Potentiometer" ) // Not implemented yet - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) - - PORT_START // IN5 - Wheel (270A) - 100019.b <- fffff.b - PORT_BIT ( 0x00ff, 0x0080, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(1) - - PORT_START // IN6 - Wheel (270D) - 100019.b <- ffffe.b - PORT_BIT ( 0x00ff, 0x0080, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(1) - - PORT_START // IN7 - Wheel (360) - 100019.b <- ffffe.b - PORT_BIT( 0x00ff, 0x0080, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) - - PORT_START // Fake IN1 - To be pressed during boot sequence - Code at 0x000c9e - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("IN 1-0") PORT_CODE(KEYCODE_H) // "sound test" - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("IN 1-4") PORT_CODE(KEYCODE_J) // "view tiles" - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("IN 1-5") PORT_CODE(KEYCODE_K) // "view memory" - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("IN 1-6") PORT_CODE(KEYCODE_L) // "view sprites ?" - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Magical Crystal -***************************************************************************/ - -INPUT_PORTS_START( mgcrystl ) - PORT_START // IN0 - Player 1 + DSW - c00000.w - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0002, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) /* All other game settings done through the test mode */ - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) // TESTED! - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - Player 2 - c00002.b - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - Other Buttons - c00004.b - PORT_BIT ( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Sand Scorpion -***************************************************************************/ - -INPUT_PORTS_START( sandscrp ) - PORT_START // IN0 - $b00000.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN1 - $b00002.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN2 - $b00004.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN3 - $b00006.w - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW 1 read by the Z80 through the sound chip - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, "Bombs" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x80, "100K, 300K" ) - PORT_DIPSETTING( 0xc0, "200K, 500K" ) - PORT_DIPSETTING( 0x40, "500K, 1000K" ) - PORT_DIPSETTING( 0x00, "1000K, 3000K" ) - - PORT_START // IN5 - DSW 2 read by the Z80 through the sound chip - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 8C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -/*************************************************************************** - Shogun Warriors -***************************************************************************/ - -INPUT_PORTS_START( shogwarr ) - PORT_START // IN0 - - b80000.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? tested - - PORT_START // IN1 - - b80002.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? tested - - PORT_START // IN2 - Coins - b80004.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? tested - - PORT_START // IN3 - ? - b80006.w - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN4 - DSW from the MCU - 102e15.b <- 200059.b - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x02, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x38, "1" ) // easy - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x28, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x18, "5" ) - PORT_DIPSETTING( 0x10, "6" ) - PORT_DIPSETTING( 0x08, "7" ) - PORT_DIPSETTING( 0x00, "8" ) - PORT_DIPNAME( 0x40, 0x40, "Can Join During Game" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // 2 credits winner vs computer - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) // 1 credit game over - PORT_DIPNAME( 0x80, 0x80, "Special Continue Mode" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - - -/* - 16x16x4 made of 4 8x8x4 blocks arrenged like: 01 - (nibbles are swapped for tiles, not for sprites) 23 -*/ -static const gfx_layout layout_16x16x4 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { STEP8(8*8*4*0,4), STEP8(8*8*4*1,4) }, - { STEP8(8*8*4*0,8*4), STEP8(8*8*4*2,8*4) }, - 16*16*4 -}; - -/* - 16x16x8 made of 4 8x8x8 blocks arrenged like: 01 - 23 -*/ -static const gfx_layout layout_16x16x8 = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { STEP8(0,1) }, - { STEP8(0,8), STEP8(8*8*8*1,8) }, - { STEP8(0,8*8), STEP8(8*8*8*2,8*8) }, - 16*16*8 -}; - -static const gfx_decode kaneko16_gfx_1x4bit_1x4bit[] = -{ - { REGION_GFX1, 0, &layout_16x16x4, 0, 0x40 }, // [0] Sprites - { REGION_GFX2, 0, &layout_16x16x4, 0x40 * 16, 0x40 }, // [1] Layers - { -1 } -}; -static const gfx_decode kaneko16_gfx_1x4bit_2x4bit[] = -{ - { REGION_GFX1, 0, &layout_16x16x4, 0, 0x40 }, // [0] Sprites - { REGION_GFX2, 0, &layout_16x16x4, 0x40 * 16, 0x40 }, // [1] Layers - { REGION_GFX3, 0, &layout_16x16x4, 0x40 * 16, 0x40 }, // [2] Layers - { -1 } -}; -static const gfx_decode kaneko16_gfx_1x8bit_2x4bit[] = -{ - { REGION_GFX1, 0, &layout_16x16x8, 0x40 * 256, 0x40 }, // [0] Sprites - { REGION_GFX2, 0, &layout_16x16x4, 0, 0x40 }, // [1] Layers - { REGION_GFX3, 0, &layout_16x16x4, 0, 0x40 }, // [2] Layers - { -1 } -}; - -/* 16x16x4 tiles (made of four 8x8 tiles) */ -static const gfx_layout layout_16x16x4_2 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { STEP4(8*8*4*0 + 3*4, -4), STEP4(8*8*4*0 + 7*4, -4), - STEP4(8*8*4*1 + 3*4, -4), STEP4(8*8*4*1 + 7*4, -4) }, - { STEP8(8*8*4*0, 8*4), STEP8(8*8*4*2, 8*4) }, - 16*16*4 -}; -static const gfx_decode sandscrp_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x4, 0x000, 0x10 }, // [0] Sprites - { REGION_GFX2, 0, &layout_16x16x4_2, 0x400, 0x40 }, // [1] Layers - { -1 } -}; - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -#define KANEKO16_INTERRUPTS_NUM 3 -INTERRUPT_GEN( kaneko16_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 2: cpunum_set_input_line(0, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(0, 4, HOLD_LINE); break; - case 0: cpunum_set_input_line(0, 5, HOLD_LINE); break; - } -} - -static struct AY8910interface ay8910_intf_dsw = -{ - input_port_4_r, /* input A: DSW 1 */ - input_port_5_r /* input B: DSW 2 */ -}; - -static struct AY8910interface ay8910_intf_eeprom = -{ - kaneko16_eeprom_r, /* inputs A: 0,EEPROM bit read */ - 0, /* inputs B */ - 0, /* outputs A */ - kaneko16_eeprom_reset_w /* outputs B: 0,EEPROM reset */ -}; - - -/*************************************************************************** - The Berlin Wall -***************************************************************************/ - -/* - Berlwall interrupts: - - 1-3] e8c: - 4] e54: - 5] de4: - 6-7] rte -*/ - -static MACHINE_DRIVER_START( berlwall ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* MC68000P12 */ - MDRV_CPU_PROGRAM_MAP(berlwall,0) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(berlwall) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MDRV_GFXDECODE(kaneko16_gfx_1x4bit_1x4bit) - MDRV_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */ - - MDRV_PALETTE_INIT(berlwall) - MDRV_VIDEO_START(berlwall) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(ay8910_intf_dsw) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 12000000/6) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Bakuretsu Breaker -***************************************************************************/ - -static MACHINE_DRIVER_START( bakubrkr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* TMP68HC000-12 */ - MDRV_CPU_PROGRAM_MAP(bakubrkr,0) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM) - - MDRV_SCREEN_REFRESH_RATE(59) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(bakubrkr) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MDRV_GFXDECODE(kaneko16_gfx_1x4bit_2x4bit) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(kaneko16_2xVIEW2) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_CONFIG(ay8910_intf_eeprom) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 12000000/6) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Blaze On -***************************************************************************/ - -/* - Blaze On: - 1] busy loop - 2] does nothing - 3] rte - 4] drives the game - 5] == 2 - 6-7] busy loop -*/ - -static MACHINE_DRIVER_START( blazeon ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,12000000) /* TMP68HC000-12 */ - MDRV_CPU_PROGRAM_MAP(blazeon,0) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM) - - MDRV_CPU_ADD(Z80,4000000) /* D780C-2 */ - MDRV_CPU_PROGRAM_MAP(blazeon_soundmem,0) - MDRV_CPU_IO_MAP(blazeon_soundport,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(blazeon) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8) - MDRV_GFXDECODE(kaneko16_gfx_1x4bit_1x4bit) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(kaneko16_1xVIEW2) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - Great 1000 Miles Rally -***************************************************************************/ - -/* - gtmr interrupts: - - 3] 476: time, input ports, scroll registers - 4] 466->258e: set sprite ram - 5] 438: set sprite colors - - VIDEO_UPDATE_AFTER_VBLANK fixes the mangled/wrong colored sprites -*/ - -static MACHINE_DRIVER_START( gtmr ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("gtmr", M68000, 16000000) /* ? Most likely a 68000-HC16 */ - MDRV_CPU_PROGRAM_MAP(gtmr_readmem,gtmr_writemem) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(gtmr) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(kaneko16_gfx_1x8bit_2x4bit) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(kaneko16_2xVIEW2) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1980000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - - MDRV_SOUND_ADD(OKIM6295, 1980000) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_DRIVER_END - -/*************************************************************************** - Blood Warrior -***************************************************************************/ - -static MACHINE_DRIVER_START( bloodwar ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(gtmr) - MDRV_CPU_MODIFY("gtmr") - MDRV_CPU_PROGRAM_MAP(bloodwar,0) - - MDRV_MACHINE_RESET( bloodwar ) -MACHINE_DRIVER_END - -/*************************************************************************** - Great 1000 Miles Rally 2 -***************************************************************************/ - -static MACHINE_DRIVER_START( gtmr2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(gtmr) - MDRV_CPU_MODIFY("gtmr") - MDRV_CPU_PROGRAM_MAP(gtmr2_readmem,gtmr_writemem) -MACHINE_DRIVER_END - -/*************************************************************************** - Bonk's Adventure -***************************************************************************/ - -/* - Even though 3 interrupts are triggered, I set an int_num of 4. (notice '+1') - I agree that it is kind of a misuse of the function, but I haven't found - clues in code on how interrupts are scheduled... - IT5 is the main int, and needs more time to execute than IT 3 and 4. - Between other things, each of these 2 int are responsible of translating - a part of sprite buffer from work ram to sprite ram. - So now test mode is fully working and visible. - SebV -*/ -static MACHINE_DRIVER_START( bonkadv ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(gtmr) - MDRV_CPU_MODIFY("gtmr") - MDRV_CPU_PROGRAM_MAP(bonkadv,0) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM + 1 ) // comment above - - MDRV_MACHINE_RESET( bonkadv ) -MACHINE_DRIVER_END - -/*************************************************************************** - Magical Crystal -***************************************************************************/ - -static MACHINE_DRIVER_START( mgcrystl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(mgcrystl,0) - MDRV_CPU_VBLANK_INT(kaneko16_interrupt,KANEKO16_INTERRUPTS_NUM) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(mgcrystl) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(kaneko16_gfx_1x4bit_2x4bit) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(kaneko16_2xVIEW2) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_CONFIG(ay8910_intf_eeprom) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 12000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - Sand Scorpion -***************************************************************************/ - -/* YM3014B + YM2203C */ - -static void irq_handler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_intf_sandscrp = -{ - input_port_4_r, /* Port A Read - DSW 1 */ - input_port_5_r, /* Port B Read - DSW 2 */ - 0, /* Port A Write */ - 0, /* Port B Write */ - irq_handler /* IRQ handler */ -}; - - -static MACHINE_DRIVER_START( sandscrp ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,12000000) /* TMP68HC000N-12 */ - MDRV_CPU_PROGRAM_MAP(sandscrp,0) - MDRV_CPU_VBLANK_INT(sandscrp_interrupt,1) - - MDRV_CPU_ADD(Z80,4000000) /* Z8400AB1, Reads the DSWs: it can't be disabled */ - MDRV_CPU_PROGRAM_MAP(sandscrp_soundmem,0) - MDRV_CPU_IO_MAP(sandscrp_soundport,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) // eof callback - MDRV_WATCHDOG_VBLANK_INIT(DEFAULT_60HZ_3S_VBLANK_WATCHDOG) - - MDRV_MACHINE_RESET(sandscrp) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(sandscrp_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(sandscrp_1xVIEW2) - MDRV_VIDEO_EOF(sandscrp) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 12000000/6) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.25) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_intf_sandscrp) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.25) -MACHINE_DRIVER_END - - -/*************************************************************************** - Shogun Warriors -***************************************************************************/ - -/* - shogwarr interrupts: - - 2] 100: rte - 3] 102: - 4] 136: - movem.l D0-D7/A0-A6, -(A7) - movea.l $207808.l, A0 ; from mcu? - jmp ($4,A0) - - other: busy loop -*/ -#define SHOGWARR_INTERRUPTS_NUM 3 -INTERRUPT_GEN( shogwarr_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 2: cpunum_set_input_line(0, 2, HOLD_LINE); break; - case 1: cpunum_set_input_line(0, 3, HOLD_LINE); break; -// case 0: cpunum_set_input_line(0, 4, HOLD_LINE); break; - } -} - -static MACHINE_DRIVER_START( shogwarr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(shogwarr,0) - MDRV_CPU_VBLANK_INT(shogwarr_interrupt,SHOGWARR_INTERRUPTS_NUM) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(shogwarr) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(kaneko16_gfx_1x4bit_1x4bit) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(kaneko16_1xVIEW2) - MDRV_VIDEO_UPDATE(kaneko16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1980000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 1980000) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/* - Sprites and tiles are stored in the ROMs using the same layout. But tiles - have the even and odd pixels swapped. So we use this function to untangle - them and have one single gfxlayout for both tiles and sprites. -*/ -void kaneko16_unscramble_tiles(int region) -{ - unsigned char *RAM = memory_region(region); - int size = memory_region_length(region); - int i; - - if (RAM == NULL) return; - - for (i = 0; i < size; i ++) - { - RAM[i] = ((RAM[i] & 0xF0)>>4) + ((RAM[i] & 0x0F)<<4); - } -} - -void kaneko16_expand_sample_banks(int region) -{ - /* The sample data for the first OKI has an address translator/ - banking register in it that munges the addresses as follows: - - Offsets 00000-2FFFF always come from ROM 00000-2FFFF - Offsets 30000-3FFFF come from ROM (10000*bank) + 00000-0FFFF - - Because we can't do this dynamically, we pre-generate all 16 - possible combinations of these and swap between them. - */ - int bank; - - if (memory_region_length(region) < 0x40000 * 16) - fatalerror("gtmr SOUND1 region too small"); - - /* bank 0 maps to itself, so we just leave it alone */ - for (bank = 15; bank > 0; bank--) - { - UINT8 *src0 = memory_region(region); - UINT8 *srcn = src0 + 0x10000 * (bank < 3 ? 3 : bank); - UINT8 *dst = src0 + 0x40000 * bank; - - memcpy(dst + 0x30000, srcn + 0x00000, 0x10000); - memcpy(dst + 0x00000, src0 + 0x00000, 0x30000); - } -} - -DRIVER_INIT( kaneko16 ) -{ - kaneko16_unscramble_tiles(REGION_GFX2); - kaneko16_unscramble_tiles(REGION_GFX3); -} - -DRIVER_INIT( berlwall ) -{ - kaneko16_unscramble_tiles(REGION_GFX2); -} - -DRIVER_INIT( samplebank ) -{ - kaneko16_unscramble_tiles(REGION_GFX2); - kaneko16_unscramble_tiles(REGION_GFX3); - kaneko16_expand_sample_banks(REGION_SOUND1); -} - - -/*************************************************************************** - - Bakuretsu Breaker - - USES TOSHIBA 68000 CPU W/TWO YM2149 & OKI M6295 FOR SOUND - - LOCATION TYPE - ------------------ - U38 27C040 - U37 " - U36 27C020 - U19 " - U18 " - -Bakuretsu Breaker -Kaneko, 1992 - -PCB Layout ----------- - -ZOOFC-02 -|------------------------------------------| -| PAL TS020.U33 PAL | -| 6264 6264 | -| 6264 VIEW2-CHIP 6264 | -| 4464 4464 VIEW2-CHIP TS010.U4 | -| 4464 4464 | -| 4464 4464 699206P | -| 5116 (QFP44) | -| | -| TS002J.U36 MUX2-CHIP 699205P | -|VU-002 TS001J.U37 5116 (QFP44) J| -|(QFP160) TS000J.U38 A| -| 62256 TS100J.U18 M| -| 6116 6116 62256 TS101J.U19 M| -| PAL PAL A| -|16MHz PAL PAL TMP68HC000N-12 | -|12MHz PAL IU-001 | -| VU-001 (QFP44) | -| (QFP48) YM2149 PAL | -|93C46 YM2149 TS030.U5 M6295 | -| DSW1(4) | -|------------------------------------------| - -Notes: - 68000 clock: 12.000MHz - YM2149 clock: 2.000MHz - M6295 clock: 2.000MHz, sample rate = clock /132 - VSync: 59Hz - HSync: 15.68kHz - - -***************************************************************************/ - -ROM_START( explbrkr ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "ts100e.u18", 0x000000, 0x040000, CRC(cc84a985) SHA1(1732a607cc1f894dd45cfc915dfe0407335f0073) ) - ROM_LOAD16_BYTE( "ts101e.u19", 0x000001, 0x040000, CRC(88f4afb7) SHA1(08b8efd6bd935bc1b8cf9753d58b38ccf9a70b4d) ) - - /* these actually match the other set but have different names on the board..*/ - ROM_REGION( 0x240000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "ts001e.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) ) - ROM_RELOAD( 0x100000, 0x080000 ) - ROM_LOAD( "ts000e.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) ) - ROM_RELOAD( 0x180000, 0x080000 ) - ROM_LOAD( "ts002e.u36", 0x200000, 0x040000, CRC(611271e6) SHA1(811c21822b074fbb4bb809fed29d48bbd51d57a0) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ts010.u4", 0x000000, 0x100000, CRC(df935324) SHA1(73b7aff8800a4e88a47ad426190b73dabdfbf142) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ts020.u33", 0x000000, 0x100000, CRC(eb58c35d) SHA1(762c5219de6f729a0fc1df90fce09cdf711c2a1e) ) - - ROM_REGION( 0x100000, REGION_USER1, ROMREGION_DISPOSE ) /* OKI Sample ROM */ - ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) ) - - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x020000) - ROM_COPY( REGION_USER1, 0x020000, 0x020000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x040000, 0x020000) - ROM_COPY( REGION_USER1, 0x040000, 0x060000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x080000, 0x020000) - ROM_COPY( REGION_USER1, 0x060000, 0x0a0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x0c0000, 0x020000) - ROM_COPY( REGION_USER1, 0x080000, 0x0e0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x100000, 0x020000) - ROM_COPY( REGION_USER1, 0x0a0000, 0x120000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x140000, 0x020000) - ROM_COPY( REGION_USER1, 0x0c0000, 0x160000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x180000, 0x020000) - ROM_COPY( REGION_USER1, 0x0e0000, 0x1a0000, 0x020000) - ROM_FILL( 0x1c0000, 0x020000, 0x00 ) - ROM_FILL( 0x1e0000, 0x020000, 0x00 ) -ROM_END - -ROM_START( bakubrkr ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "ts100j.u18", 0x000000, 0x040000, CRC(8cc0a4fd) SHA1(e7e18b5ea236522a79ba9db8f573ac8f7ade504b) ) - ROM_LOAD16_BYTE( "ts101j.u19", 0x000001, 0x040000, CRC(aea92195) SHA1(e89f964e7e936fd7774f21956eb4ff5c9104837b) ) - - ROM_REGION( 0x240000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "ts001j.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) ) - ROM_RELOAD( 0x100000, 0x080000 ) - ROM_LOAD( "ts000j.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) ) - ROM_RELOAD( 0x180000, 0x080000 ) - ROM_LOAD( "ts002j.u36", 0x200000, 0x040000, CRC(611271e6) SHA1(811c21822b074fbb4bb809fed29d48bbd51d57a0) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ts010.u4", 0x000000, 0x100000, CRC(df935324) SHA1(73b7aff8800a4e88a47ad426190b73dabdfbf142) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ts020.u33", 0x000000, 0x100000, CRC(eb58c35d) SHA1(762c5219de6f729a0fc1df90fce09cdf711c2a1e) ) - - ROM_REGION( 0x100000, REGION_USER1, ROMREGION_DISPOSE ) /* OKI Sample ROM */ - ROM_LOAD( "ts030.u5", 0x000000, 0x100000, CRC(1d68e9d1) SHA1(aaa64a8e8d7cd7f91d2be346fafb9d1f29b40eda) ) - - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x020000) - ROM_COPY( REGION_USER1, 0x020000, 0x020000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x040000, 0x020000) - ROM_COPY( REGION_USER1, 0x040000, 0x060000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x080000, 0x020000) - ROM_COPY( REGION_USER1, 0x060000, 0x0a0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x0c0000, 0x020000) - ROM_COPY( REGION_USER1, 0x080000, 0x0e0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x100000, 0x020000) - ROM_COPY( REGION_USER1, 0x0a0000, 0x120000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x140000, 0x020000) - ROM_COPY( REGION_USER1, 0x0c0000, 0x160000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x180000, 0x020000) - ROM_COPY( REGION_USER1, 0x0e0000, 0x1a0000, 0x020000) - ROM_FILL( 0x1c0000, 0x020000, 0x00 ) - ROM_FILL( 0x1e0000, 0x020000, 0x00 ) -ROM_END - - -/*************************************************************************** - - The Berlin Wall - -The Berlin Wall, Kaneko 1991, BW-002 - ----- - -BW-004 BW-008 VU-003 -BW-005 BW-009 VU-003 -BW-006 BW-00A VU-003 -BW-007 BW-00B 6116-90 - 6116-90 -BW-003 52256 52256 - BW101A BW100A -5864 -5864 MUX2 68000 - VIEW2 -BW300 -BW-002 -BW-001 42101 - 42101 -41464 41464 VU-002 -41464 41464 YM2149 IU-004 -41464 41464 YM2149 - SWB BW-000 6295 - SWA - - -PALs : BW-U47, BW-U48 (backgrounds encryption) - -***************************************************************************/ - -ROM_START( berlwall ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u23_01.bin", 0x000000, 0x020000, CRC(76b526ce) SHA1(95ba7cccbe88fd695c28b6a7c25a1afd130c1aa6) ) - ROM_LOAD16_BYTE( "u39_01.bin", 0x000001, 0x020000, CRC(78fa7ef2) SHA1(8392de6e307dcd2bf5bcbeb37d578d33246acfcf) ) - - ROM_REGION( 0x120000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "bw001", 0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) ) - ROM_LOAD( "bw002", 0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) ) - ROM_LOAD( "bw300", 0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "bw003", 0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* High Color Background */ - ROM_LOAD16_BYTE( "bw004", 0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) ) - ROM_LOAD16_BYTE( "bw008", 0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw005", 0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) ) - ROM_LOAD16_BYTE( "bw009", 0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw006", 0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) ) - ROM_LOAD16_BYTE( "bw00a", 0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw007", 0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) ) - ROM_LOAD16_BYTE( "bw00b", 0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "bw000", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) ) -ROM_END - - -/* -berlwalt original bug ? - -info from SebV: - -After about level 5 or so, if you insert a coin when the continue screen -pops up, an error message "Copy Board" pops up. ----------------------------------------- -Happened to me when player dies, at level 4. -The message is not written in ROM, its sprite ram adress is (always?) -$30fd40 -Routine $337d2 writes it (and routine $5c8c erases it) -The 'COPY BOARD!' message in stored in ROM directly as sprite number -($1cfa8) - -$20288a : seems to contain the level number (initialized to 2 (?) when a -game is started, and is incremented by 1 once a level is finished) - -01CF3E: move.b $20288a.l, D0 -01CF44: cmpi.b #$d, D0 -01CF48: bcs 1cf76 ; branch not taken -=> 'COPY BOARD!' -01CF4A: movem.l D0/A0-A2, -(A7) -01CF4E: movea.l A0, A1 -01CF50: lea ($4c,PC), A0; ($1cf9e) -01CF54: nop -01CF56: lea ($a,A0), A0 ; A0 = $1cfa8 = 'COPY BOARD!' -01CF5A: lea $30e064.l, A1 -01CF60: lea (-$64,A1), A1 -01CF64: lea ($1d40,A1), A1 -01CF68: move.b #$80, D1 -01CF6C: jsr $33776.l ; display routine -01CF72: movem.l (A7)+, D0/A0-A2 -01CF76: - -berlwall levels: 1-1,2,3(anim),... -berlwalt levels: 1-1(anim)2-1/2/3/4/5(anim)3-1/2/3/4/5(anim)4-1(*) - -note: berlwall may be genuine while berlwalt may be bootleg! because -stage 1-1 of berlwalt is stage 1-3 of berlwall, and berlwall has -explanation ingame. + the flyer from TAFA shows main character as -berlwall and not berlwalt! --------------------------------------------------------------------------------- -*/ - -ROM_START( berlwalt ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "bw100a", 0x000000, 0x020000, CRC(e6bcb4eb) SHA1(220b8fddc79230b4f6a8cf33e1035355c485e8d1) ) - ROM_LOAD16_BYTE( "bw101a", 0x000001, 0x020000, CRC(38056fb2) SHA1(48338b9a5ebea872286541a3c45016673c4af76b) ) - - ROM_REGION( 0x120000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "bw001", 0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) ) - ROM_LOAD( "bw002", 0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) ) - ROM_LOAD( "bw300", 0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "bw003", 0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* High Color Background */ - ROM_LOAD16_BYTE( "bw004", 0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) ) - ROM_LOAD16_BYTE( "bw008", 0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw005", 0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) ) - ROM_LOAD16_BYTE( "bw009", 0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw006", 0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) ) - ROM_LOAD16_BYTE( "bw00a", 0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0) - ROM_LOAD16_BYTE( "bw007", 0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) ) - ROM_LOAD16_BYTE( "bw00b", 0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "bw000", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) ) -ROM_END - - -/*************************************************************************** - - Blaze On (Japan version) - -CPU: TMP68HC000-12/D780C-2(Z80) -SOUND: YM2151 -OSC: 13.3330/16.000MHz -CUSTOM: KANEKO VU-002 x2 - KANEKO 23160-509 VIEW2-CHIP - KANEKO MUX2-CHIP - KANEKO HELP1-CHIP - ---------------------------------------------------- - filemanes devices kind ---------------------------------------------------- - BZ_PRG1.U80 27C020 68000 main prg. - BZ_PRG2.U81 27C020 68000 main prg. - 3.U45 27C010 Z80 sound prg. - BZ_BG.U2 57C8200 BG CHR - BZ_SP1.U20 27C8001 OBJ - BZ_SP2.U21 27C8001 OBJ - BZ_SP1.U68 ( == BZ_SP1.U20) - BZ_SP2.U86 ( == BZ_SP2.U21) - -***************************************************************************/ - -ROM_START( blazeon ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "bz_prg1.u80", 0x000000, 0x040000, CRC(8409e31d) SHA1(a9dfc299f4b457df190314401aef309adfaf9bae) ) - ROM_LOAD16_BYTE( "bz_prg2.u81", 0x000001, 0x040000, CRC(b8a0a08b) SHA1(5f275b98d3e49a834850b45179d26e8c2f9fd604) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "3.u45", 0x000000, 0x020000, CRC(52fe4c94) SHA1(896230e4627503292575bbd84edc3cf9cb18b27e) ) // 1xxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "bz_sp1.u20", 0x000000, 0x100000, CRC(0d5809a1) SHA1(e72669f95b050d1967d10a865bab8f3634c9daad) ) - ROM_LOAD( "bz_sp2.u21", 0x100000, 0x100000, CRC(56ead2bd) SHA1(463723f3c533603ce3a95310e9ce12b4e582b52d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "bz_bg.u2", 0x000000, 0x100000, CRC(fc67f19f) SHA1(f5d9e037a736b0932efbfb48587de08bec93df5d) ) -ROM_END - -/*************************************************************************** - - Blood Warrior - -Kaneko 1994 - -TOP BOARD: Z09AF-005 - -CPU - Toshiba TMP68HC000N - 16 -SOUND - OKI M6295 x2 -QUARTZ OSCILLATORS AT 27.0000MHz, 16.0000MHz, 20.0000MHz and 33.3330MHz -RAM - LC3664 x6, 424260 x2, LH52B256D x6, D42101C x2 - - -PCU11.u11 - 18CV8PC \ -PCU15.u15 - 18CV8PC | NEAR OKI -Z091P016.u16 - 18CV8PC / -Z091P013.u13 - 18CV8PC \ -PCU17.u17 - 18CV8PC | -PCU14.u14 - 18CV8PC | NEAR 68000 -PCU94.u94 - 18CV8PC | -PCU92.u92 - 18CV8PC | -Z092P093.u93 - 18CV8PC / -ALL ABOVE NOT DUMPED - -Custom Chips - -231609-509 View2-Chip x2 -KC-002 L0002 023 9321EK702 -9343T - 44 pin PQFP (NEAR JAMMMA CONNECTOR) - -BOTTOM BOARD: Z09AF-ROM4 - -TBS0P01 452 9339PK001 - MCU - -ofs1g006.u6 - GAL16V8B -ofs1g007.u7 - GAL16V8B -ofs1p059.u59 - 18CV8PC -ofs1p511.u511 - 18CV8PC -ALL ABOVE NOT DUMPED - -ROMS - -9346.u126 - 93C46 -ofdox3.U124 - 27C010 -ofp1f3.U513 - 27C4000 -ofpof3.U514 - 27C4000 -of101f0223.U101 - 27C800 -of20902011.u17 - 27C080 -of210000213.u19 - 27C080 -of2110215.u21 - 27C080 -of21200217.u23 - 27C080 -of21300219.u25 - 27C080 -of21400221.u27 - 27C080 -of1000222.u99 - 27C800 -of0010226.u55 - 27C800 -of3000225.u51 - 27C800 -of2080209.u28 - 27V160 -of2060207.u14 - 27V160 -of2070208.u15 - 27V160 -of2050206.u13 - 27V160 -of2040205.u12 - 27V160 -of2030204.u11 - 27V160 -of2020203.u10 - 27V160 -of2010202.u9 - 27V160 -of2000201.u8 - 27V160 -of209e0210.u16 - 27C080 -of210e0212.u18 - 27C080 -of211e0214.u20 - 27C080 -of212e0216.u22 - 27C080 -of213e0218.u24 - 27C080 -of214e0220.u26 - 27C080 - -***************************************************************************/ - -ROM_START( bloodwar ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pof3.514", 0x000000, 0x080000, CRC(0c93da15) SHA1(65b6b1b4acfc32c551ae4fbe6a13f7f2b8554dbf) ) - ROM_LOAD16_BYTE( "p1f3.513", 0x000001, 0x080000, CRC(894ecbe5) SHA1(bf403d19e6315266114ac742a08cac903e7b54b5) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "dox3.124", 0x000000, 0x020000, CRC(399f2005) SHA1(ff0370724770c35963953fd9596d9f808ba87d8f) ) - - ROM_REGION16_BE( 0x0080, REGION_USER1, 0 ) /* EEPROM */ - ROM_LOAD16_WORD( "9346.126", 0x0000, 0x0080, CRC(1579db94) SHA1(acb842676946efea29b73bdc9ecb266f49d2f5a8) ) - - ROM_REGION( 0x1e00000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD ( "2000201.8", 0x0000000, 0x200000, CRC(bba63025) SHA1(daec5285469ee953f6f838fe3cb3903524e9ac39) ) - ROM_LOAD ( "2010202.9", 0x0200000, 0x200000, CRC(4ffd9ddc) SHA1(62bc8c0ed2efab407fc2956c514c3e732bcc47ee) ) - ROM_LOAD ( "2020203.10", 0x0400000, 0x200000, CRC(fbcc5363) SHA1(9eff48c29d5c887d39e4db442c6ee51ec879521e) ) - ROM_LOAD ( "2030204.11", 0x0600000, 0x200000, CRC(8e818ce9) SHA1(bc37d35247edfc563400cd67459d455b1fea6eab) ) - ROM_LOAD ( "2040205.12", 0x0800000, 0x200000, CRC(70c4a76b) SHA1(01b17bda156f2e6f480bdc976927c8bba47c1186) ) - ROM_LOAD ( "2050206.13", 0x0a00000, 0x200000, CRC(80c667bb) SHA1(7edf33c713c8448ff73fa84b9f7684dd4d46eed1) ) - ROM_LOAD ( "2060207.14", 0x0c00000, 0x200000, CRC(c2028c97) SHA1(ac3b73ff34f84015432ceb22cf9c57ab0ff07a70) ) - ROM_LOAD ( "2070208.15", 0x0e00000, 0x200000, CRC(b1f30c61) SHA1(2ae010c10b7a2ae09df904f7ea81425e80389622) ) - ROM_LOAD ( "2080209.28", 0x1000000, 0x200000, CRC(a8f29545) SHA1(5d018147aa71207f679909343104deaa0f08fd9d) ) - ROM_LOAD16_BYTE( "209e0210.16", 0x1200000, 0x100000, CRC(93018468) SHA1(d156f408a78fbd736048ce33e44c0b1e10403b0e) ) - ROM_LOAD16_BYTE( "20902011.17", 0x1200001, 0x100000, CRC(3fb226a1) SHA1(efba54f82fb9914559faad5fba92aa108ec039d5) ) - ROM_LOAD16_BYTE( "210e0212.18", 0x1400000, 0x100000, CRC(80f3fa1b) SHA1(ca0e84cb47228ef5ac3b94238a33c3ebc3c2f528) ) - ROM_LOAD16_BYTE( "21000213.19", 0x1400001, 0x100000, CRC(8ca3a3d6) SHA1(b6f3876f987ce6828bfa26ca492ff6ca2d282d80) ) - ROM_LOAD16_BYTE( "211e0214.20", 0x1600000, 0x100000, CRC(8d3d96f7) SHA1(0a7c459f02938f86d53979498647c73837eb9e51) ) - ROM_LOAD16_BYTE( "21100215.21", 0x1600001, 0x100000, CRC(78268230) SHA1(63fbf88551f6fde833222ae6a4382891e1bf5b39) ) - ROM_LOAD16_BYTE( "212e0216.22", 0x1800000, 0x100000, CRC(5a013d99) SHA1(c4af944c8f0b33a93b4bb083e32e2901c5607a39) ) - ROM_LOAD16_BYTE( "21200217.23", 0x1800001, 0x100000, CRC(84ed25bd) SHA1(ddff811d326586eb7353230e74db37867af075eb) ) - ROM_LOAD16_BYTE( "213e0218.24", 0x1a00000, 0x100000, CRC(861bc5b1) SHA1(a85936781a56b5406bee2e4f36fadcb5b9f43b05) ) - ROM_LOAD16_BYTE( "21300219.25", 0x1a00001, 0x100000, CRC(a79b8119) SHA1(62e3fb28fd3a538a8191a51242dbed7e88c62a54) ) - ROM_LOAD16_BYTE( "214e0220.26", 0x1c00000, 0x100000, CRC(43c622de) SHA1(73efe57233f056127e2d34590c624f39d1c0ab79) ) - ROM_LOAD16_BYTE( "21400221.27", 0x1c00001, 0x100000, CRC(d10bf03c) SHA1(a81d6b7df7382fc8d50614c1332611e0c202b805) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "3000225.51", 0x000000, 0x100000, CRC(fbc3c08a) SHA1(0ba52b381e7a10fb1513244b394438b440950af3) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "3010226.55", 0x000000, 0x100000, CRC(fcf215de) SHA1(83015f10e62b917efd6e3edfbd45fb8f9b35db2b) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "101f0223.101", 0x000000, 0x100000, CRC(295f3c93) SHA1(558698f1d04b23dd2a73e2eae5ecce598defb228) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "1000222.99", 0x000000, 0x100000, CRC(42b12269) SHA1(f9d9c42057e176710f09e8db0bfcbf603c15ca11) ) -ROM_END - - -/*************************************************************************** - - Great 1000 Miles Rally - -GMMU2+1 512K * 2 68k -GMMU23 1M OKI6295: 00000-2ffff + chunks of 0x10000 with headers -GMMU24 1M OKI6295: chunks of 0x40000 with headers - FIRST AND SECOND HALF IDENTICAL - -GMMU27 2M sprites -GMMU28 2M sprites -GMMU29 2M sprites -GMMU30 512k sprites - -GMMU64 1M sprites - FIRST AND SECOND HALF IDENTICAL -GMMU65 1M sprites - FIRST AND SECOND HALF IDENTICAL - -GMMU52 2M tiles - - ---------------------------------------------------------------------------- - Game code ---------------------------------------------------------------------------- - -100000.b <- (!b00000.b) & 7f [1p] - 01.b previous value of the above - 02.b bits gone high - -100008.b <- (!b00002.b) & 7f [2p] - -100010.b <- !b00004.b [coins] - 11.b previous value of the above - 12.b bits gone high - -100013.b <- b00006.b (both never accessed again?) - -100015.b <- wheel value - -600000.w <- 100a20.w + 100a30.w 600002.w <- 100a22.w + 100a32.w -600004.w <- 100a24.w + 100a34.w 600006.w <- 100a26.w + 100a36.w - -680000.w <- 100a28.w + 100a38.w 680002.w <- 100a2a.w + 100a3a.w -680004.w <- 100a2c.w + 100a3c.w 680006.w <- 100a2e.w + 100a3e.w - -101265.b <- DSW (from 206000) -101266 <- Settings from NVRAM (0x80 bytes from 208000) - -1034f8.b credits -103502.b coins x .. -103503.b .. credits - -1035ec.l *** Time (BCD: seconds * 10000) *** -103e64.w *** Speed << 4 *** - -10421a.b bank for the oki mapped at 800000 -104216.b last value of the above - -10421c.b bank for the oki mapped at 880000 -104218.b last value of the above - -ROUTINES: - -dd6 print string: a2->scr ; a1->string ; d1.l = xpos.w<<6|ypos.w<<6 - -Trap #2 = 43a0 ; d0.w = routine index ; (where not specified: 43c0): -1: 43C4 2: 43F8 3: 448E 4: 44EE -5: 44D2 6: 4508 7: 453A 10: 0AF6 -18: 4580 19: 4604 -20> 2128 writes 700000-70001f -21: 21F6 -24> 2346 clears 400000-401407 (641*8 = $281*8) -30> 282A writes 600008/9/b/e-f, 680008/9/b/e-f -31: 295A -32> 2B36 100a30-f <- 100a10-f -34> 2B4C clears 500000-503fff, 580000-583fff -35> 2B9E d1.w = selects between: 500000;501000;580000;581000. - Fill 0x1000 bytes from there with d2.l - -70: 2BCE> 11d8a -71: 2BD6 -74: 2BDE 90: 3D44 -91> 3D4C wait for bit 0 of d00000 to be 0 -92> 3D5C 200010.w<-D1 200012.w<-D2 200014.w<-D3 -f1: 10F6 - -***************************************************************************/ - -/* This version displays: - - tb05mm-eu "1000 miglia" - master up= 94/07/18 15:12:35 */ - -ROM_START( gtmr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "u2.bin", 0x000000, 0x080000, CRC(031799f7) SHA1(a59a9635002d139247828e3b74f6cf2fbdd5e569) ) - ROM_LOAD16_BYTE( "u1.bin", 0x000001, 0x080000, CRC(6238790a) SHA1(a137fd581138804534f3193068f117611a982004) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "mmd0x2.u124.bin", 0x000000, 0x020000, CRC(3d7cb329) SHA1(053106acde642a414fde0b01105fe6762b6a10f6) ) // from gtmra - - ROM_REGION( 0x840000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "mm-200-402-s0.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) ) - ROM_LOAD( "mm-201-403-s1.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) ) - ROM_LOAD( "mm-202-404-s2.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) ) - ROM_LOAD( "mm-203-405-s3.bin", 0x600000, 0x080000, CRC(e9747c8c) SHA1(2507102ec34755c6f110eadb3444e6d3a3474051) ) - ROM_LOAD16_BYTE( "mms1x2.u30.bin", 0x800001, 0x020000, CRC(b42b426f) SHA1(6aee5759b5f0786c5ee074d9df3d2716919ea621) ) - ROM_LOAD16_BYTE( "mms0x2.u29.bin", 0x800000, 0x020000, CRC(bd22b7d2) SHA1(ef82d00d72439590c71aed33ecfabc6ee71a6ff9) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "mm-300-406-a0.bin", 0x000000, 0x200000, CRC(b15f6b7f) SHA1(5e84919d788add53fc87f4d85f437df413b1dbc5) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x200000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000 - - ROM_REGION( 0x100000, REGION_SOUND2, ROMREGION_ERASE00 ) /* Samples */ - /* Not present on this board */ -ROM_END - -ROM_START( gtmra ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "mmp0x2.u514.bin", 0x000000, 0x080000, CRC(ba4a77c8) SHA1(efb6ae0e7aa71ab0c5f486f799bf31edcec24e2b) ) - ROM_LOAD16_BYTE( "mmp1x2.u513.bin", 0x000001, 0x080000, CRC(a2b9034e) SHA1(466bcb1bf7124eb15d23b25c4e1307b9706474ec) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "mmd0x2.u124.bin", 0x000000, 0x020000, CRC(3d7cb329) SHA1(053106acde642a414fde0b01105fe6762b6a10f6) ) - - ROM_REGION( 0x840000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "mm-200-402-s0.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) ) - ROM_LOAD( "mm-201-403-s1.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) ) - ROM_LOAD( "mm-202-404-s2.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) ) - ROM_LOAD( "mm-203-405-s3.bin", 0x600000, 0x080000, CRC(e9747c8c) SHA1(2507102ec34755c6f110eadb3444e6d3a3474051) ) - ROM_LOAD16_BYTE( "mms1x2.u30.bin", 0x800001, 0x020000, CRC(b42b426f) SHA1(6aee5759b5f0786c5ee074d9df3d2716919ea621) ) - ROM_LOAD16_BYTE( "mms0x2.u29.bin", 0x800000, 0x020000, CRC(bd22b7d2) SHA1(ef82d00d72439590c71aed33ecfabc6ee71a6ff9) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "mm-300-406-a0.bin", 0x000000, 0x200000, CRC(b15f6b7f) SHA1(5e84919d788add53fc87f4d85f437df413b1dbc5) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x200000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "mm-100-401-e0.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000 - - ROM_REGION( 0x100000, REGION_SOUND2, ROMREGION_ERASE00 ) /* Samples */ - /* Not present on this board */ -ROM_END - -/* The evolution and USA versions seem to be more like GTMR 1.5, they have some fairly significant changes */ - -/* This version displays: - - tb05mm-eu "1000 miglia" - master up= 94/09/06 14:49:19 */ - -ROM_START( gtmre ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "gmmu2.bin", 0x000000, 0x080000, CRC(36dc4aa9) SHA1(0aea4dc169d7aad2ea957a1de698d1fa12c71556) ) - ROM_LOAD16_BYTE( "gmmu1.bin", 0x000001, 0x080000, CRC(8653c144) SHA1(a253a01327a9443337a55a13c063ea5096444c4c) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "mcu_code.u12", 0x000000, 0x020000, NO_DUMP ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - /* fill the 0x700000-7fffff range first, with the second of the identical halves */ - ROM_LOAD16_BYTE( "gmmu64.bin", 0x600000, 0x100000, CRC(57d77b33) SHA1(f7ae28ae889be4442b7b236705943eaad1f0c84e) ) // HALVES IDENTICAL - ROM_LOAD16_BYTE( "gmmu65.bin", 0x600001, 0x100000, CRC(05b8bdca) SHA1(44471d66787d5b48ae8b13676f42f27af44e5c6a) ) // HALVES IDENTICAL - ROM_LOAD( "gmmu27.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) ) - ROM_LOAD( "gmmu28.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) ) - ROM_LOAD( "gmmu29.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) ) - ROM_LOAD( "gmmu30.bin", 0x600000, 0x080000, CRC(e9747c8c) SHA1(2507102ec34755c6f110eadb3444e6d3a3474051) ) - /* codes 6800-6fff are explicitly skipped */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "gmmu52.bin", 0x000000, 0x200000, CRC(b15f6b7f) SHA1(5e84919d788add53fc87f4d85f437df413b1dbc5) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x200000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "gmmu23.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000 - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "gmmu24.bin", 0x000000, 0x100000, CRC(380cdc7c) SHA1(ba7f51201b0f2bf15e66557e45bb2af5cf797779) ) // 2 x $40000 - HALVES IDENTICAL -ROM_END - - -/* This version displays: - - tb05mm-eu "1000 miglia" - master up= 94/09/06 20:30:39 */ - -ROM_START( gtmrusa ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "gtmrusa.u2", 0x000000, 0x080000, CRC(5be615c4) SHA1(c14d11a5bf6e025a65b932039165302ff407c4e1) ) - ROM_LOAD16_BYTE( "gtmrusa.u1", 0x000001, 0x080000, CRC(ae853e4e) SHA1(31eaa73b0c5ddab1292f521ceec43b202653efe9) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code? */ - ROM_LOAD( "gtmrusa.u12", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - /* fill the 0x700000-7fffff range first, with the second of the identical halves */ - ROM_LOAD16_BYTE( "gmmu64.bin", 0x600000, 0x100000, CRC(57d77b33) SHA1(f7ae28ae889be4442b7b236705943eaad1f0c84e) ) // HALVES IDENTICAL - ROM_LOAD16_BYTE( "gmmu65.bin", 0x600001, 0x100000, CRC(05b8bdca) SHA1(44471d66787d5b48ae8b13676f42f27af44e5c6a) ) // HALVES IDENTICAL - ROM_LOAD( "gmmu27.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) ) - ROM_LOAD( "gmmu28.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) ) - ROM_LOAD( "gmmu29.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) ) - ROM_LOAD( "gmmu30.bin", 0x600000, 0x080000, CRC(e9747c8c) SHA1(2507102ec34755c6f110eadb3444e6d3a3474051) ) - /* codes 6800-6fff are explicitly skipped */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "gmmu52.bin", 0x000000, 0x200000, CRC(b15f6b7f) SHA1(5e84919d788add53fc87f4d85f437df413b1dbc5) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x200000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "gmmu23.bin", 0x000000, 0x100000, CRC(b9cbfbee) SHA1(051d48a68477ef9c29bd5cc0bb7955d513a0ab94) ) // 16 x $10000 - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "gmmu24.bin", 0x000000, 0x100000, CRC(380cdc7c) SHA1(ba7f51201b0f2bf15e66557e45bb2af5cf797779) ) // 2 x $40000 - HALVES IDENTICAL -ROM_END - - -/*************************************************************************** - - Great 1000 Miles Rally 2 - -Bootup displays "TB06MM2EX 1000 Miglia 2" - "Master Up 95-04-04 19:39:01" - -Top board ---------- -PCB ID : M201F00138 KANEKO AX-SYSTEM BOARD -CPU : TMP68HC000N-16 (68000) -SOUND : Oki M6295 (x2) -OSC : 27.000MHz, 16.000MHz, 20.000MHz, 33.3330MHz -RAM : LC3664 (28 pin SOIC, x4) - UT6264 (28 pin SOIC, x2) - LH628256 (28 pin DIP, x6) - D42101 (24 pin DIP, x2) - 424260 (40 pin SOIC, x2) -PALs : AXOP048, AXOP049, AXOP050 (GAL16V8, near M6295's) - AXOP021 \ - AXOP022 | - AXOP062 | - AXOP063 | (18CV8 ) - AXOP064 | (near 68000) - AXOP070 | - AXOP071 | - AXOP089 / - -OTHER : Custom chips - Kaneko Japan 9448 TA (44 pin PQFP, near JAMMA connector) - Kaneko VIEW2-CHIP (x2, 144 pin PQFP) - Kaneko KC002 L0002 023 9339EK706 (208 pin PQFP) - -ROMs : None - - -Bottom board ------------- -PCB ID : AX09S00138 KANEKO AX-SYSTEM BOARD ROM-08 -DIP : 8 position (x1) -RAM : 6116 (x4) -PALs : COMUX4, COMUX4 (GAL16V8, near U21) - MMs4P067 (18CV8, near U47) - MMs6G095 (GAL16V8, near U94) - MMs4G084 (GAL16V8, near U50) - COMUX2, COMUX3 (GAL16V8, near U33) - COMUX1, MMS4P004 (18CV8, near U33) - -OTHER : 93C46 EEPROM - KANEKO TBSOP02 454 9451MK002 (74 pin PQFP, Custom MCU?) - -ROMs : (filename is ROM Label, extension is PCB 'u' location) - -***************************************************************************/ - -ROM_START( gtmr2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "m2p0x1a.u8", 0x000000, 0x080000, CRC(c29039fb) SHA1(a16e8863608353c2931e9d45359fbcec8f11ef9d) ) - ROM_LOAD16_BYTE( "m2p1x1a.u7", 0x000001, 0x080000, CRC(8ef392c4) SHA1(06bd720d931911e32264183dd215ab70ad6d2961) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code? */ - ROM_LOAD( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) ) - ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) ) - ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) ) - ROM_LOAD16_BYTE( "m2s0x1a.u32", 0x700000, 0x080000, CRC(a485eec6) SHA1(f8aff62daed95a63544106472a9ef34902feaaa2) ) - ROM_LOAD16_BYTE( "m2s1x1a.u33", 0x700001, 0x080000, CRC(c5b71bb2) SHA1(874e2a2e19cd8f916afa6fcf54169a8db035fe64) ) - - ROM_REGION( 0x440000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "m2-300-0.u89", 0x000000, 0x200000, CRC(4dc42fbb) SHA1(f14c287bc60f561eb9a57db4e3390aae9a81c392) ) - ROM_LOAD( "m2-301-0.u90", 0x200000, 0x200000, CRC(f4e894f2) SHA1(1f983a1d93845fe298afba60d4dacdd1a10cab7f) ) - ROM_LOAD16_BYTE( "m2b0x0.u93", 0x400000, 0x020000, CRC(e023d51b) SHA1(3c9f591f3ca2ee8e1100b83ae8eb593e11e6eac7) ) - ROM_LOAD16_BYTE( "m2b1x0.u94", 0x400001, 0x020000, CRC(03c48bdb) SHA1(f5ba45d026530d46f760cf06d02a1ffcca89aa3c) ) - - ROM_REGION( 0x440000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x440000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "m2w1x0.u47", 0x040000, 0x040000, CRC(1b0513c5) SHA1(8c9ddef19297e1b39d900297005203b7ff28667e) ) -ROM_END - -ROM_START( gtmr2a ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "m2p0x1.u8", 0x000000, 0x080000, CRC(525f6618) SHA1(da8008cc7768b4e8c0091aa3ea21752d0ca33691) ) - ROM_LOAD16_BYTE( "m2p1x1.u7", 0x000001, 0x080000, CRC(914683e5) SHA1(dbb2140f7de86073647abc6e73ba739ea201dd30) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code? */ - ROM_LOAD( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) ) - ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) ) - ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) ) - ROM_LOAD16_BYTE( "m2s0x1.u32", 0x700000, 0x080000, CRC(4069d6c7) SHA1(2ed1cbb7ebde8347e0359cd56ee3a0d4d42d551f) ) - ROM_LOAD16_BYTE( "m2s1x1.u33", 0x700001, 0x080000, CRC(c53fe269) SHA1(e6c485bbaea4b67f074b89e047f686f107805713) ) - - ROM_REGION( 0x440000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "m2-300-0.u89", 0x000000, 0x200000, CRC(4dc42fbb) SHA1(f14c287bc60f561eb9a57db4e3390aae9a81c392) ) - ROM_LOAD( "m2-301-0.u90", 0x200000, 0x200000, CRC(f4e894f2) SHA1(1f983a1d93845fe298afba60d4dacdd1a10cab7f) ) - ROM_LOAD16_BYTE( "m2b0x0.u93", 0x400000, 0x020000, CRC(e023d51b) SHA1(3c9f591f3ca2ee8e1100b83ae8eb593e11e6eac7) ) - ROM_LOAD16_BYTE( "m2b1x0.u94", 0x400001, 0x020000, CRC(03c48bdb) SHA1(f5ba45d026530d46f760cf06d02a1ffcca89aa3c) ) - - ROM_REGION( 0x440000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x440000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "m2w1x0.u47", 0x040000, 0x040000, CRC(1b0513c5) SHA1(8c9ddef19297e1b39d900297005203b7ff28667e) ) -ROM_END - -ROM_START( gtmr2u ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "m2p0a1.u8", 0x000000, 0x080000, CRC(813e1d5e) SHA1(602df02933dc7b77be311113af1d1edad2751cc9) ) - ROM_LOAD16_BYTE( "m2p1a1.u7", 0x000001, 0x080000, CRC(bee63666) SHA1(07585a63f901f50f2a2314eb4dc4307e7028ded7) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code? */ - ROM_LOAD( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) ) - ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) ) - ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) ) - ROM_LOAD16_BYTE( "m2s0a1.u32", 0x700000, 0x080000, CRC(98977171) SHA1(5b69462e07778b5bd1f5119cae6b63ede38cd642) ) - ROM_LOAD16_BYTE( "m2s1a1.u33", 0x700001, 0x080000, CRC(c69a732e) SHA1(810b333f442c0714f4cb8b4a73136d0b44443277) ) - - ROM_REGION( 0x440000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "m2-300-0.u89", 0x000000, 0x200000, CRC(4dc42fbb) SHA1(f14c287bc60f561eb9a57db4e3390aae9a81c392) ) - ROM_LOAD( "m2-301-0.u90", 0x200000, 0x200000, CRC(f4e894f2) SHA1(1f983a1d93845fe298afba60d4dacdd1a10cab7f) ) - ROM_LOAD16_BYTE( "m2b0x0.u93", 0x400000, 0x020000, CRC(e023d51b) SHA1(3c9f591f3ca2ee8e1100b83ae8eb593e11e6eac7) ) - ROM_LOAD16_BYTE( "m2b1x0.u94", 0x400001, 0x020000, CRC(03c48bdb) SHA1(f5ba45d026530d46f760cf06d02a1ffcca89aa3c) ) - - ROM_REGION( 0x440000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_COPY(REGION_GFX2,0,0,0x440000) // it isn't on the board twice. - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "m2-100-0.u48", 0x000000, 0x100000, CRC(5250fa45) SHA1(b1ad4660906997faea0aa89866de01a0e9f2b61d) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "m2w1a1.u47", 0x000000, 0x080000, CRC(15f25342) SHA1(9947e66575738700345c12c104701b812c62ce03) ) -ROM_END - -/*************************************************************************** - - Magical Crystals - -(c)1991 Kaneko/Atlus -Z00FC-02 - -CPU : TMP68HC000N-12 -Sound: YM2149Fx2 M6295 -OSC : 16.0000MHz(X1) 12.0000MHz(X2) - -ROMs: -mc100j.u18 - Main programs -mc101j.u19 / - -mc000.u38 - Graphics (32pin mask) -mc001.u37 | (32pin mask) -mc002j.u36 / (27c010) - -mc010.u04 - Graphics (42pin mask) - -mc020.u33 - Graphics (42pin mask) - -mc030.u32 - Samples (32pin mask) - -PALs (18CV8PC): -u08, u20, u41, u42, u50, u51, u54 - -Custom chips: -KANEKO VU-001 046A (u53, 48pin PQFP) -KANEKO VU-002 052 151021 (u60, 160pin PQFP) -KANEKO 23160-509 9047EAI VIEW2-CHIP (u24 & u34, 144pin PQFP) -KANEKO MUX2-CHIP (u28, 64pin PQFP) -KANEKO IU-001 9045KP002 (u22, 44pin PQFP) -KANEKO I/O JAMMA MC-8282 047 (u5, 46pin) -699206p (u09, 44pin PQFP) -699205p (u10, 44pin PQFP) - -Other: -93C46 EEPROM - -DIP settings: -1: Flip screen -2: Test mode -3: Unused -4: Unused - -Yes, one program rom actually is a 27C010 and the other one is a 27C020 - -***************************************************************************/ - -ROM_START( mgcrystl ) /* Master Up: 92/01/10 14:21:30 */ - ROM_REGION( 0x040000*2, REGION_CPU1, ROMREGION_ERASE ) /* 68000 Code */ - ROM_LOAD16_BYTE( "mc100e02.u18", 0x000000, 0x020000, CRC(246a1335) SHA1(8333945a92e08a7bff425d2d6602557386016dc5) ) /* Labeled as MC100E/U18-02 */ - ROM_LOAD16_BYTE( "mc101e02.u19", 0x000001, 0x040000, CRC(708ea1dc) SHA1(ae6eca6620729bc1e815f1bfbd8fe130f0ba943c) ) /* Labeled as MC101E/U19-02 */ - - ROM_REGION( 0x280000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "mc000.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) ) - ROM_LOAD( "mc001.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) ) - ROM_RELOAD( 0x180000, 0x080000 ) - ROM_LOAD( "mc002e02.u36", 0x200000, 0x020000, CRC(27ac1056) SHA1(34b07c1a0d403ca45c9849d3d8d311012f787df6) ) /* Labeled as MC002E/U36-02 */ - ROM_RELOAD( 0x220000, 0x020000 ) - ROM_RELOAD( 0x240000, 0x020000 ) - ROM_RELOAD( 0x260000, 0x020000 ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc010.u04", 0x000000, 0x100000, CRC(85072772) SHA1(25e903cc2c893d61db791d1fe60a1205a4395667) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc020.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mc030.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) ) -ROM_END - -ROM_START( mgcrysto ) /* Master Up: 91/12/10 01:56:06 */ - ROM_REGION( 0x040000*2, REGION_CPU1, ROMREGION_ERASE ) /* 68000 Code */ - ROM_LOAD16_BYTE( "mc100h00.u18", 0x000000, 0x020000, CRC(c7456ba7) SHA1(96c25c3432069373fa86d7af3e093e02e39aea34) ) /* Labeled as MC100H/U18-00 */ - ROM_LOAD16_BYTE( "mc101h00.u19", 0x000001, 0x040000, CRC(ea8f9300) SHA1(0cd0d448805aa45986b63befca00b08fe066dbb2) ) /* Labeled as MC101H/U19-00 */ - - ROM_REGION( 0x280000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "mc000.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) ) - ROM_LOAD( "mc001.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) ) - ROM_RELOAD( 0x180000, 0x080000 ) - ROM_LOAD( "mc002h00.u36", 0x200000, 0x020000, CRC(22729037) SHA1(de4e1bdab57aa617411b6327f3db4856970e8953) ) /* Labeled as MC002H/U36-00 */ - ROM_RELOAD( 0x220000, 0x020000 ) - ROM_RELOAD( 0x240000, 0x020000 ) - ROM_RELOAD( 0x260000, 0x020000 ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc010.u04", 0x000000, 0x100000, CRC(85072772) SHA1(25e903cc2c893d61db791d1fe60a1205a4395667) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc020.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mc030.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) ) -ROM_END - -ROM_START( mgcrystj ) /* Master Up: 92/01/13 14:44:20 */ - ROM_REGION( 0x040000*2, REGION_CPU1, ROMREGION_ERASE ) /* 68000 Code */ - ROM_LOAD16_BYTE( "mc100j02.u18", 0x000000, 0x020000, CRC(afe5882d) SHA1(176e6e12e3df63c08d7aff781f5e5a9bd83ec293) ) /* Labeled as MC100J/U18-02 */ - ROM_LOAD16_BYTE( "mc101j02.u19", 0x000001, 0x040000, CRC(60da5492) SHA1(82b90a617d355825624ce9fb30bddf4714bd0d18) ) /* Labeled as MC101J/U19-02 */ - - ROM_REGION( 0x280000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "mc000.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) ) - ROM_LOAD( "mc001.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) ) - ROM_RELOAD( 0x180000, 0x080000 ) - ROM_LOAD( "mc002e02.u36", 0x200000, 0x020000, CRC(27ac1056) SHA1(34b07c1a0d403ca45c9849d3d8d311012f787df6) ) /* Labeled as MC002J/U36-02, but same as MC002E/U36-02 */ - ROM_RELOAD( 0x220000, 0x020000 ) - ROM_RELOAD( 0x240000, 0x020000 ) - ROM_RELOAD( 0x260000, 0x020000 ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc010.u04", 0x000000, 0x100000, CRC(85072772) SHA1(25e903cc2c893d61db791d1fe60a1205a4395667) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (Scrambled) */ - ROM_LOAD( "mc020.u34", 0x000000, 0x100000, CRC(1ea92ff1) SHA1(66ec53e664b2a5a751a280a538aaeceafc187ceb) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mc030.u32", 0x000000, 0x040000, CRC(c165962e) SHA1(f7e130db387ae9dcb7223f7ad6e51270d3033bc9) ) -ROM_END - - -/*************************************************************************** - - Sand Scorpion - -(C) FACE -68HC000N-12 -Z8400AB1 -OKI6295, YM2203C -OSC: 16.000mhz, 12.000mhz - -SANDSC03.BIN 27C040 -SANDSC04.BIN 27C040 -SANDSC05.BIN 27C040 -SANDSC06.BIN 27C040 -SANDSC07.BIN 27C2001 -SANDSC08.BIN 27C1001 -SANDSC11.BIN 27C2001 -SANDSC12.BIN 27C2001 - -***************************************************************************/ - -ROM_START( sandscrp ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "sandsc11.bin", 0x000000, 0x040000, CRC(9b24ab40) SHA1(3187422dbe8b15d8053be4cb20e56d3e6afbd5f2) ) - ROM_LOAD16_BYTE( "sandsc12.bin", 0x000001, 0x040000, CRC(ad12caee) SHA1(83267445b89c3cf4dc317106aa68763d2f29eff7) ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "sandsc08.bin", 0x00000, 0x0c000, CRC(6f3e9db1) SHA1(06a04fa17f44319986913bff70433510c89e38f1) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "sandsc05.bin", 0x000000, 0x080000, CRC(9bb675f6) SHA1(c3f6768cfd99a0e19ca2224fff9aa4e27ec0da24) ) - ROM_LOAD( "sandsc06.bin", 0x080000, 0x080000, CRC(7df2f219) SHA1(e2a59e201bfededa92d6c86f8dc1b212527ef66f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers */ - ROM_LOAD16_BYTE( "sandsc04.bin", 0x000000, 0x080000, CRC(b9222ff2) SHA1(a445da3f7f5dea5ff64bb0b048f624f947875a39) ) - ROM_LOAD16_BYTE( "sandsc03.bin", 0x000001, 0x080000, CRC(adf20fa0) SHA1(67a7a2be774c86916cbb97e4c9b16c2e48125780) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sandsc07.bin", 0x000000, 0x040000, CRC(9870ab12) SHA1(5ea3412cbc57bfaa32a1e2552b2eb46f4ceb5fa8) ) -ROM_END - - -ROM_START( sandscra ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "11.ic4", 0x000000, 0x040000, CRC(80020cab) SHA1(4f1f4d8ea07ad745f2d6d3f800686f07fe4bf20f) ) - ROM_LOAD16_BYTE( "12.ic5", 0x000001, 0x040000, CRC(8df1d42f) SHA1(2a9db5c4b99a8a3f62bffa9ddd96a95e2042602b) ) - - ROM_REGION( 0x24000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "sandsc08.bin", 0x00000, 0x0c000, CRC(6f3e9db1) SHA1(06a04fa17f44319986913bff70433510c89e38f1) ) - ROM_CONTINUE( 0x10000, 0x14000 ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "ss502.ic16", 0x000000, 0x100000, CRC(d8012ebb) SHA1(975bbb3b57a09e41d2257d4fa3a64097144de554) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layers */ - ROM_LOAD16_WORD_SWAP( "ss501.ic30", 0x000000, 0x100000, CRC(0cf9f99d) SHA1(47f7f120d2bc075bedaff0a44306a8f46a1d848c) ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sandsc07.bin", 0x000000, 0x040000, CRC(9870ab12) SHA1(5ea3412cbc57bfaa32a1e2552b2eb46f4ceb5fa8) ) -ROM_END - - -/*************************************************************************** - - Shogun Warriors - -Shogun Warriors, Kaneko 1992 - - fb010.u65 fb040.u33 - fb011.u66 - rb012.u67 - rb013.u68 - - fb001.u43 - 68000-12 fb000.u42 m6295 - 51257 fb030.u61 fb002.u44 m6295 - 51257 fb031.u62 fb003.u45 - - - fb021a.u3 - fb021b.u4 - fb022a.u5 - fb023.u7 fb022b.u6 - fb020a.u1 fb020b.u2 - - - ---------------------------------------------------------------------------- - Game code ---------------------------------------------------------------------------- - -102e04-7 <- !b80004-7 -102e18.w -> $800000 -102e1c.w -> $800002 , $800006 -102e1a.w -> $800004 -102e20.w -> $800008 - -ROUTINES: - -6622 print ($600000) - -***************************************************************************/ - -ROM_START( shogwarr ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "fb030a.u61", 0x000000, 0x020000, CRC(a04106c6) SHA1(95ab084f2e709be7cec2964cb09bcf5a8d3aacdf) ) - ROM_LOAD16_BYTE( "fb031a.u62", 0x000001, 0x020000, CRC(d1def5e2) SHA1(f442de4433547e52b483549aca5786e4597a7122) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "fb040a.u33", 0x000000, 0x020000, CRC(4b62c4d9) SHA1(35c943dde70438a411714070e42a84366db5ef83) ) - - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "fb020a.u1", 0x000000, 0x080000, CRC(da1b7373) SHA1(89510901848f1798fb76dd82d1cd9ac97c41521d) ) - ROM_LOAD( "fb022a.u5", 0x080000, 0x080000, CRC(60aa1282) SHA1(4648816016e00df3256226ba5134f6e5bb429909) ) - ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) ) - ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) ) - ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) ) - ROM_LOAD( "fb023.u7", 0x400000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) ) - ROM_LOAD( "fb022b.u6", 0x500000, 0x080000, CRC(cd05a5c8) SHA1(9f000cca8d31e19fdc4b38c00c3ed13f71e5541c) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) ) - ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) ) // ?! - ROM_LOAD( "rb012.u67", 0x200000, 0x100000, CRC(bfdbe0d1) SHA1(3abc5398ee8ee1871b4d081f9b748539d69bcdba) ) - ROM_LOAD( "rb013.u68", 0x300000, 0x100000, CRC(28c37fe8) SHA1(e10dd1a810983077328b44e6e33ce2e899c506d2) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "fb000e.u42", 0x000000, 0x080000, CRC(969f1465) SHA1(4f56d1ad341b08f4db41b7ab2498740612ff7c3d) ) // 2 x $40000 - ROM_LOAD( "fb001e.u43", 0x080000, 0x080000, CRC(f524aaa1) SHA1(006a886f9df2e57c51b61c6cea70a6574fc20304) ) // 2 x $40000 - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "fb002.u44", 0x000000, 0x080000, CRC(05d7c2a9) SHA1(e34d395985caec10139a22daa179bb185df157d6) ) // 2 x $40000 - ROM_LOAD( "fb003.u45", 0x080000, 0x080000, CRC(405722e9) SHA1(92e51093d50f74f650ba137f5fc2910e0f85337e) ) // 2 x $40000 -ROM_END - - -DRIVER_INIT( shogwarr ) -{ - init_kaneko16(machine); - -/* - ROM test at 2237e: - - the chksum of 00000-03fffd = $657f is added to ($200042).w - [from shared ram]. The result must be $f463 [=($3fffe).w] - - Now, $f463-$657f = $8ee4 = byte sum of FB040A.U33 !! - - So, there's probably the MCU's code in there, though - I can't id what kind of CPU should run it :-( -*/ -} - -/*************************************************************************** - - Fujiyama Buster - -Japan (c) 1992 Kaneko -This is the Japanese version of Shogun Warriors - -Main PCB No: ZO1DK-002 (Same as B.Rap Boys) - ROM PCB No: ZO5DP - CPU: TMP68HC000N-12 (Toshiba) - SND: OKI M6295 x 2 - OSC: 16.000MHz, 12.000MHz - DIP: 1 x 8 POSITION - -OTHER: -93C46 (8 Pin DIP, EEPROM, Linked to FB-040.U33 & CALC3 Chip) -KANEKO JAPAN 9152EV 175101 (160 Pin PQFP) -KANEKO VIEW2-CHIP (144 Pin PQFP) -KANEKO MUX2-CHIP (64 Pin PQFP) -KANEKO CALC3 508 (74 Pin PQFP, MCU, Linked to FB-040.U33) -KANEKO JAPAN 9203 T (44 PIN PQFP) - -Differences from Shogun Warriors: - -File Name CRC32 Labelled As ROM Type -=============================================== -fb030j.u61 0x32ce7909 FB030J/U61-00 27C010 | 68000 CPU Code -fb031j.u62 0x000c8c08 FB031J/U62-00 27C010 / - -fb040j.u33 0x299d0746 FB040J/U33-00 27C010 - MCU Code? 68000 Code snipets?? - -fb000j.u43 0xa7522555 FB000J/U43-00 27C040 | Japanese Sound Samples -fb001j_u.101 0x07d4e8e2 FB001J/U101-0 27C040 / - -NOTE: U67 & U68 are empty on this Original board. - -***************************************************************************/ - -ROM_START( fjbuster ) // Fujiyama Buster - Japan version of Shogun Warriors - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "fb030j.u61", 0x000000, 0x020000, CRC(32ce7909) SHA1(02d87342706ac9547eb611bd542f8498ba41e34a) ) - ROM_LOAD16_BYTE( "fb031j.u62", 0x000001, 0x020000, CRC(000c8c08) SHA1(439daac1541c34557b5a4308ed69dfebb93abe13) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "fb040j.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) ) - - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "fb020a.u1", 0x000000, 0x080000, CRC(da1b7373) SHA1(89510901848f1798fb76dd82d1cd9ac97c41521d) ) - ROM_LOAD( "fb022a.u5", 0x080000, 0x080000, CRC(60aa1282) SHA1(4648816016e00df3256226ba5134f6e5bb429909) ) - ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) ) - ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) ) - ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) ) - ROM_LOAD( "fb023.u7", 0x400000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) ) - ROM_LOAD( "fb022b.u6", 0x500000, 0x080000, CRC(cd05a5c8) SHA1(9f000cca8d31e19fdc4b38c00c3ed13f71e5541c) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) ) - ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) ) // ?! -// ROM_LOAD( "rb012.u67", 0x200000, 0x100000, CRC(bfdbe0d1) SHA1(3abc5398ee8ee1871b4d081f9b748539d69bcdba) ) Not used! No ROMs here -// ROM_LOAD( "rb013.u68", 0x300000, 0x100000, CRC(28c37fe8) SHA1(e10dd1a810983077328b44e6e33ce2e899c506d2) ) Not used! No ROMs here - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "fb000j.u43", 0x000000, 0x080000, CRC(a7522555) SHA1(ea88d90dda20bc309f98a1924c41551e7708e6af) ) // 2 x $40000 - ROM_LOAD( "fb001j_u.101", 0x080000, 0x080000, CRC(07d4e8e2) SHA1(0de911f452ddeb54b0b435b9c1cf5d5881175d44) ) // 2 x $40000 - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "fb002.u44", 0x000000, 0x080000, CRC(05d7c2a9) SHA1(e34d395985caec10139a22daa179bb185df157d6) ) // 2 x $40000 - ROM_LOAD( "fb003.u45", 0x080000, 0x080000, CRC(405722e9) SHA1(92e51093d50f74f650ba137f5fc2910e0f85337e) ) // 2 x $40000 -ROM_END - -/*************************************************************************** - - B.Rap Boys - -B.Rap Boys -Kaneko, 1992 - -Game is a beat-em up, where a bunch of rapping boys (The B.Rap Boys) beats -up anyone and anything that gets in their way, smashing shop windows -and other property with their fists, chairs, wooden bats and whatever else -they can lay their hands on! - - -Main PCB No: ZO1DK-002 -ROM PCB No: ZO1DK-EXROM -CPU: TMP68HC000N-12 -SND: OKI M6295 x 2 -OSC: 16.000MHz, 12.000MHz -DIP: 1 x 8 POSITION -SW1 - PCB location for 2 position DIP but location is unpopulated. -SW2: - - 1 2 3 4 5 6 7 8 -SCREEN FLIP NORMAL OFF - FLIP ON -MODE NORMAL OFF - TEST ON -SWITCH TEST [1] NO OFF - YES ON -POSITION #4 NOT USED OFF -COIN TYPE LOCAL COIN OFF - COMMON COIN ON -GAME TYPE 3 PLAYERS OFF - 2 PLAYERS ON -DIFFICULTY [2] EASY ON OFF - NORMAL OFF OFF - HARD OFF ON - VERY HARD ON ON - -[1] This additional test becomes available in test mode when this DIP is ON. -[2] Additional settings available in test mode via another on-screen menu. -Some text is written in Japanese. See scan in archive for details. - -Control is via 8 Way Joystick and 2 buttons - -There are two extra pin connectors near the JAMMA connector. -Pinouts are.... - -(A) -10 3P START SW - 9 3P COIN SW - 8 3P BUTTON 2 - 7 3P BUTTON 1 - 6 3P UP - 5 3P DOWN - 4 3P LEFT - 3 3P RIGHT - 2 GND - 1 GND - -(B) -6 COIN COUNTER 3 -5 COIN LOCKOUT 3 -4 TOTAL COIN COUNTER -3 NC -2 NC -1 NC - -RAM: -M5M4464 x 6, M51257AL x 2, KM6264BLS x 2, D42101C x 2, LH5116D x 2, CAT71C256 x 2 - -OTHER: -93C46 (8 PIN DIP, EEPROM, LINKED TO RB-006.U33) -KANEKO JAPAN 9152EV 175101 (160 PIN PQFP) -KANEKO VIEW2-CHIP (144 PIN PQFP) -KANEKO MUX2-CHIP (64 PIN PQFP) -KANEKO CALC3 508 (74 PIN PQFP, MCU, LINKED TO RB-006.U33) -KANEKO JAPAN 9204 T (44 PIN PQFP) -PALs (x 11, read protected, not dumped) - -ROMs: -RB-004.U61 27C010 \ Main program -RB-005.U62 27C010 / - -RB-000.U43 2M mask \ -RB-001.U44 4M mask | Located near main program and OKI M6295 chips -RB-002.U45 4M mask | Possibly sound related / OKI Samples etc.. -RB-003.101 4M mask / - -RB-006.U33 27C010 MCU program? (Linked to CALC3 508) - -RB-010.U65 8M mask \ -RB-011.U66 8M mask | GFX -RB-012.U67 8M mask | -RB-013.U68 8M mask / - -RB-021.U76 4M mask \ -RB-022.U77 4M mask | -RB-023.U78 4M mask | GFX (located under a plug-in ROM PCB) -RB-024.U79 4M mask / - -RB-020.U2 4M mask \ -RB-025.U4 27C040 | GFX (located on a plug-in ROM PCB) -RB-026.U5 27C040 / - - ------ - -Game can be ROM Swapped onto a Shogun Warriors board and works - -***************************************************************************/ - -ROM_START( brapboys ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "rb-004.u61", 0x000000, 0x020000, CRC(5432442c) SHA1(f0f7328ece96ef25e6d4fd1958d734f64a9ef371) ) - ROM_LOAD16_BYTE( "rb-005.u62", 0x000001, 0x020000, CRC(118b3cfb) SHA1(1690ecf5c629879bd97131ff77029e152919e45d) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "rb-006.u33", 0x000000, 0x020000, CRC(f1d76b20) SHA1(c571b5f28e529589ee2d7697ef5d4b60ccb66e7a) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - /* order is probably wrong, but until it does more we can't tell */ - ROM_LOAD( "rb-020.u2", 0x000000, 0x080000, CRC(b038440e) SHA1(9e32cb62358ab846470d9a75d4dab771d608a3cf) ) - ROM_LOAD( "rb-025.u4", 0x080000, 0x080000, CRC(aa795ba5) SHA1(c5256dcceded2e76f548b60c18e51d0dd0209d81) ) - ROM_LOAD( "rb-026.u5", 0x100000, 0x080000, CRC(bb7604d4) SHA1(57d51ce4ea2000f9a50bae326cfcb66ec494249f) ) - - ROM_LOAD( "rb-021.u76", 0x200000, 0x080000, CRC(b7e2d362) SHA1(7e98e5b3d1ee972fc4cf9bebd33a3ca96a77357c) ) - ROM_LOAD( "rb-022.u77", 0x280000, 0x080000, CRC(8d40c97a) SHA1(353b0a4a508f2fff8eeed680b1f685c7fdc29a7d) ) // right pos. (text) - ROM_LOAD( "rb-023.u78", 0x300000, 0x080000, CRC(dcf11c8d) SHA1(eed801f7cca3d3a941b1a4e4815cac9d20d970f7) ) - ROM_LOAD( "rb-024.u79", 0x380000, 0x080000, CRC(65fa6447) SHA1(551e540d7bf412753b4a7098e25e6f9d8774bcf4) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "rb-010.u65", 0x000000, 0x100000, CRC(ffd73f87) SHA1(1a661f71976be61c22d9b962850e738ba17f1d45) ) - ROM_LOAD( "rb-011.u66", 0x100000, 0x100000, CRC(d9325f78) SHA1(346832608664aa8f3ac9260a549903386b4125a8) ) - ROM_LOAD( "rb-012.u67", 0x200000, 0x100000, CRC(bfdbe0d1) SHA1(3abc5398ee8ee1871b4d081f9b748539d69bcdba) ) // same as shoggwar - ROM_LOAD( "rb-013.u68", 0x300000, 0x100000, CRC(28c37fe8) SHA1(e10dd1a810983077328b44e6e33ce2e899c506d2) ) // same as shoggwar - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - /* order is probably wrong, but until it does more we can't tell */ - ROM_LOAD( "rb-003.101", 0x000000, 0x080000, CRC(2cac25d7) SHA1(0412c317bf650a93051b9304d23035efde0c026a) ) - ROM_LOAD( "rb-000.u43", 0x080000, 0x040000, CRC(c7c848ac) SHA1(77754efd6efeac50a40dcd530de504090257d8b3) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) /* Samples */ - /* order is probably wrong, but until it does more we can't tell */ - ROM_LOAD( "rb-001.u44", 0x000000, 0x080000, CRC(09c779e3) SHA1(c9c9bf939d58d329b87e0aa08ec3d35f7440d3c7) ) - ROM_LOAD( "rb-002.u45", 0x080000, 0x080000, CRC(55de7003) SHA1(cc349fd8671926cafed4d86d1a5cb671e591c408) ) -ROM_END - -/********************************************************************** - - Bonk's Adventure - -Bonk's Adventure -Kaneko, 1994 - -PCB Layout ----------- - -Z09AF-003 -|--------------------------------------------------------| -| LA4460 PC604109.101 PAL 3664 3664 PC500105.55 | -| M6295 PC603108.102 PAL | -| M6295 PC602107.100 PAL VIEW2-CHIP | -| PC601106.99 PAL | -| PC400104.51 | -| 3664 3664 | -| 62256 | -|J KANEKO 62256 VIEW2-CHIP | -|A JAPAN | -|M 9203T 424260 | -|M | -|A 62256 62256 6116 | -| PRG.7 PRG.8 6116 KANEKO 424260 | -| 3364 KC-002 PAL | -| 62256 68000 3364 | -| 62256 | -| PAL PAL 20MHz | -| PAL PAL 16MHz PC600106.42 | -| PAL PC700107.43 | -| MCU.124 PC200102.40 | -| DSW(8) KANEKO 93C46 PC100101.37 PC300103.38 | -| TBSOP01 27MHz 33.3333MHz | -|--------------------------------------------------------| - -Notes: - 68000 clock: 16.000MHz - M6295 clock: 2.000MHz, Sample Rate: /165 (both) - VSync: 60Hz - HSync: 15.625kHz - - PC100-PC500: 16M MASK - PC601-PC604: 8M MASK - PC600-PC700: 27C4001 - PRG's: 27C4001 - MCU : 27C010 - -**********************************************************************/ - -ROM_START( bonkadv ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "prg.8", 0x000000, 0x080000, CRC(af2e60f8) SHA1(406f79e155d1244b84f8c89c25b37188e1b4f4a6) ) - ROM_LOAD16_BYTE( "prg.7", 0x000001, 0x080000, CRC(a1cc6a78) SHA1(a9cea21a6a0dfd3b0952664681c057190aa27f8c) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) /* MCU Code */ - ROM_LOAD( "mcu.124", 0x000000, 0x020000, CRC(9d4e2724) SHA1(9dd43703265e39f876877020a0ac3875de6faa8d) ) - - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "pc100101.37", 0x000000, 0x200000, CRC(c96e7c10) SHA1(607cc7745abc3ff820047e8a00060ece61646623) ) - ROM_LOAD( "pc200102.40", 0x200000, 0x100000, CRC(c2b7a26a) SHA1(1c8783442e0ccf30c5640866c5493f1dc1dd48f8) ) - ROM_LOAD( "pc300103.38", 0x300000, 0x100000, CRC(51ee162c) SHA1(b33afc7d1e9f55f191e08472e8c51ca931b0389d) ) - ROM_LOAD16_BYTE( "pc600106.42", 0x400000, 0x080000, CRC(25877026) SHA1(96814d97e9f9284f98c35edfe5e76677ac50dd97) ) - ROM_LOAD16_BYTE( "pc700107.43", 0x400001, 0x080000, CRC(bfe21c44) SHA1(9900a6fe4182b720a90d64d368bd0fd08bf936a8) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "pc400104.51", 0x000000, 0x100000, CRC(3b176f84) SHA1(0ad6fd5f03d275165490881173bafcb0a94762eb) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Tiles (scrambled) */ - ROM_LOAD( "pc500105.55", 0x000000, 0x100000, CRC(bebb3edc) SHA1(e0fed4307316deaeb811ec29f5022adeaf577a95) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples, plus room for expansion */ - ROM_LOAD( "pc604109.101", 0x000000, 0x100000, CRC(76025530) SHA1(e0c8192d783057798eea084aa3e87938f6e01cb7) ) - - ROM_REGION( 0x300000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "pc601106.99", 0x000000, 0x100000, CRC(a893651c) SHA1(d221ce89f19a76be497724f6c16fab82c8a52661) ) - ROM_LOAD( "pc602107.100", 0x100000, 0x100000, CRC(0fbb23aa) SHA1(69b620375c65246317d7105fbc414f3c36e02b2c) ) - ROM_LOAD( "pc603108.102", 0x200000, 0x100000, CRC(58458985) SHA1(9a846d604ba901eb2a59d2b6cd9c42e3b43adb6a) ) - - ROM_REGION16_BE( 0x0080, REGION_USER1, 0 ) /* EEPROM */ - ROM_LOAD16_WORD( "eeprom.126", 0x0000, 0x0080, CRC(d04adc84) SHA1(85415062867605587b09a646ead4700014ebcb5c) ) -ROM_END - -/*************************************************************************** - - - Game drivers - - -***************************************************************************/ - -/* Working games */ - -GAME( 1991, berlwall, 0, berlwall, berlwall, berlwall, ROT0, "Kaneko", "The Berlin Wall", 0 ) -GAME( 1991, berlwalt, berlwall, berlwall, berlwalt, berlwall, ROT0, "Kaneko", "The Berlin Wall (bootleg ?)", 0 ) -GAME( 1991, mgcrystl, 0, mgcrystl, mgcrystl, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 92/01/10)", 0 ) -GAME( 1991, mgcrysto, mgcrystl, mgcrystl, mgcrystl, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 91/12/10)", 0 ) -GAME( 1991, mgcrystj, mgcrystl, mgcrystl, mgcrystl, kaneko16, ROT0, "Kaneko (Atlus license)", "Magical Crystals (Japan, 92/01/13)", 0 ) -GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16, ROT0, "Atlus", "Blaze On (Japan)", 0 ) -GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16, ROT90, "Kaneko", "Explosive Breaker", 0 ) -GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", 0 ) -GAME( 1992, sandscrp, 0, sandscrp, sandscrp, 0, ROT90, "Face", "Sand Scorpion (set 1)", 0 ) -GAME( 1992, sandscra, sandscrp, sandscrp, sandscrp, 0, ROT90, "Face", "Sand Scorpion (set 2)", 0 ) -GAME( 1994, bonkadv, 0, bonkadv , bonkadv, samplebank, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1994, gtmr, 0, gtmr, gtmr, samplebank, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", 0 ) -GAME( 1994, gtmra, gtmr, gtmr, gtmr, samplebank, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", 0 ) -GAME( 1994, gtmre, gtmr, gtmr, gtmr, samplebank, ROT0, "Kaneko", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", 0 ) -GAME( 1994, gtmrusa, gtmr, gtmr, gtmr, samplebank, ROT0, "Kaneko", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", 0 ) // U.S.A version seems part of the title, rather than region -GAME( 1995, gtmr2, 0, gtmr2, gtmr2, samplebank, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", 0 ) -GAME( 1995, gtmr2a, gtmr2, gtmr2, gtmr2, samplebank, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", 0 ) -GAME( 1995, gtmr2u, gtmr2, gtmr2, gtmr2, samplebank, ROT0, "Kaneko", "Great 1000 Miles Rally 2 USA (95/05/18)", 0 ) - -/* Non-working games (mainly due to protection) */ - -GAME( 1992, shogwarr, 0, shogwarr, shogwarr, shogwarr, ROT0, "Kaneko", "Shogun Warriors", GAME_NOT_WORKING ) -GAME( 1992, fjbuster, shogwarr, shogwarr, shogwarr, shogwarr, ROT0, "Kaneko", "Fujiyama Buster (Japan)", GAME_NOT_WORKING ) -GAME( 1992, brapboys, 0, shogwarr, shogwarr, 0, ROT0, "Kaneko", "B.Rap Boys", GAME_NOT_WORKING ) -GAME( 1994, bloodwar, 0, bloodwar, bloodwar, samplebank, ROT0, "Kaneko", "Blood Warrior", GAME_NOT_WORKING ) diff --git a/src/drivers/kchamp.c b/src/drivers/kchamp.c deleted file mode 100644 index 412c4787c..000000000 --- a/src/drivers/kchamp.c +++ /dev/null @@ -1,745 +0,0 @@ -/*************************************************************************** - -Karate Champ - (c) 1984 Data East - -driver by Ernesto Corvi - - -Changes: -(1999/11/11 Takahiro Nogi) -Changed "karatedo" to "karatevs". -Supported "karatedo". -Corrected DIPSW settings.(kchamp/karatedo) - -Currently supported sets: -Karate Champ - 1 Player Version (kchamp) -Karate Champ - VS Version (kchampvs) -Karate Champ - 1 Player Version Japanese (karatedo) -Karate Champ - VS Version Japanese (karatevs) - -VS Version Info: ---------------- -Memory Map: -Main CPU -0000-bfff ROM (encrypted) -c000-cfff RAM -d000-d3ff char videoram -d400-d7ff color videoram -d800-d8ff sprites -e000-ffff ROM (encrypted) - -Sound CPU -0000-5fff ROM -6000-6300 RAM - -IO Ports: -Main CPU -INPUT 00 = Player 1 Controls - ( ACTIVE LOW ) -INPUT 40 = Player 2 Controls - ( ACTIVE LOW ) -INPUT 80 = Coins and Start Buttons - ( ACTIVE LOW ) -INPUT C0 = Dip Switches - ( ACTIVE LOW ) -OUTPUT 00 = Screen Flip -OUTPUT 01 = CPU Control - bit 0 = external nmi enable -OUTPUT 02 = Sound Reset -OUTPUT 40 = Sound latch write - -Sound CPU -INPUT 01 = Sound latch read -OUTPUT 00 = AY8910 #1 data write -OUTPUT 01 = AY8910 #1 control write -OUTPUT 02 = AY8910 #2 data write -OUTPUT 03 = AY8910 #2 control write -OUTPUT 04 = MSM5205 write -OUTPUT 05 = CPU Control - bit 0 = MSM5205 trigger - bit 1 = external nmi enable - -1P Version Info: ---------------- -Same as VS version but with a DAC instead of a MSM5205. Also some minor -IO ports and memory map changes. Dip switches differ too. - -***************************************************************************/ -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/dac.h" -#include "sound/msm5205.h" - - -/* from vidhrdw */ -extern WRITE8_HANDLER( kchamp_videoram_w ); -extern WRITE8_HANDLER( kchamp_colorram_w ); -extern WRITE8_HANDLER( kchamp_flipscreen_w ); - -extern PALETTE_INIT( kchamp ); -extern VIDEO_START( kchamp ); -extern VIDEO_UPDATE( kchamp ); -extern VIDEO_UPDATE( kchampvs ); - - -static int nmi_enable = 0; -static int sound_nmi_enable = 0; - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd400, 0xd7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd800, 0xd8ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd900, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xd3ff) AM_WRITE(kchamp_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xd400, 0xd7ff) AM_WRITE(kchamp_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd800, 0xd8ff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd900, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0x6000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static WRITE8_HANDLER( control_w ) { - nmi_enable = data & 1; -} - -static WRITE8_HANDLER( sound_reset_w ) { - if ( !( data & 1 ) ) - cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); -} - -static WRITE8_HANDLER( sound_control_w ) { - MSM5205_reset_w( 0, !( data & 1 ) ); - sound_nmi_enable = ( ( data >> 1 ) & 1 ); -} - -static WRITE8_HANDLER( sound_command_w ) { - soundlatch_w( 0, data ); - cpunum_set_input_line_and_vector( 1, 0, HOLD_LINE, 0xff ); -} - -static int msm_data = 0; -static int msm_play_lo_nibble = 1; - -static WRITE8_HANDLER( sound_msm_w ) { - msm_data = data; - msm_play_lo_nibble = 1; -} - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* Player 1 controls - ACTIVE LOW */ - AM_RANGE(0x40, 0x40) AM_READ(input_port_1_r) /* Player 2 controls - ACTIVE LOW */ - AM_RANGE(0x80, 0x80) AM_READ(input_port_2_r) /* Coins & Start - ACTIVE LOW */ - AM_RANGE(0xC0, 0xC0) AM_READ(input_port_3_r) /* Dipswitch */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(kchamp_flipscreen_w) - AM_RANGE(0x01, 0x01) AM_WRITE(control_w) - AM_RANGE(0x02, 0x02) AM_WRITE(sound_reset_w) - AM_RANGE(0x40, 0x40) AM_WRITE(sound_command_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(sound_msm_w) - AM_RANGE(0x05, 0x05) AM_WRITE(sound_control_w) -ADDRESS_MAP_END - -/******************** -* 1 Player Version * -********************/ - -static ADDRESS_MAP_START( kc_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe400, 0xe7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xea00, 0xeaff) AM_READ(MRA8_RAM) - AM_RANGE(0xeb00, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(kchamp_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xe400, 0xe7ff) AM_WRITE(kchamp_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xea00, 0xeaff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xeb00, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xe2ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xe2ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static READ8_HANDLER( sound_reset_r ) { - cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); - return 0; -} - -static WRITE8_HANDLER( kc_sound_control_w ) { - if ( offset == 0 ) - sound_nmi_enable = ( ( data >> 7 ) & 1 ); -// else -// DAC_set_volume(0,( data == 1 ) ? 255 : 0,0); -} - -static ADDRESS_MAP_START( kc_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x90, 0x90) AM_READ(input_port_0_r) /* Player 1 controls - ACTIVE LOW */ - AM_RANGE(0x98, 0x98) AM_READ(input_port_1_r) /* Player 2 controls - ACTIVE LOW */ - AM_RANGE(0xa0, 0xa0) AM_READ(input_port_2_r) /* Coins & Start - ACTIVE LOW */ - AM_RANGE(0x80, 0x80) AM_READ(input_port_3_r) /* Dipswitch */ - AM_RANGE(0xa8, 0xa8) AM_READ(sound_reset_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x80) AM_WRITE(kchamp_flipscreen_w) - AM_RANGE(0x81, 0x81) AM_WRITE(control_w) - AM_RANGE(0xa8, 0xa8) AM_WRITE(sound_command_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x06, 0x06) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kc_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(DAC_0_data_w) - AM_RANGE(0x05, 0x05) AM_WRITE(kc_sound_control_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( kchampvs ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_4WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_4WAY - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_4WAY PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -/******************** -* 1 Player Version * -********************/ - -INPUT_PORTS_START( kchamp ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_4WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_4WAY - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_4WAY PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -static const gfx_layout tilelayout = -{ - 8,8, /* tile size */ - 256*8, /* number of tiles */ - 2, /* bits per pixel */ - { 0x4000*8, 0 }, /* plane offsets */ - { 0,1,2,3,4,5,6,7 }, /* x offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, /* y offsets */ - 8*8 /* offset to next tile */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* tile size */ - 512, /* number of tiles */ - 2, /* bits per pixel */ - { 0xC000*8, 0 }, /* plane offsets */ - { 0,1,2,3,4,5,6,7, - 0x2000*8+0,0x2000*8+1,0x2000*8+2,0x2000*8+3, - 0x2000*8+4,0x2000*8+5,0x2000*8+6,0x2000*8+7 }, /* x offsets */ - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8, - 8*8,9*8,10*8,11*8,12*8,13*8,14*8, 15*8 }, /* y offsets */ - 16*8 /* ofset to next tile */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x00000, &tilelayout, 32*4, 32 }, - { REGION_GFX2, 0x08000, &spritelayout, 0, 16 }, - { REGION_GFX2, 0x04000, &spritelayout, 0, 16 }, - { REGION_GFX2, 0x00000, &spritelayout, 0, 16 }, - { -1 } -}; - - - -static INTERRUPT_GEN( kc_interrupt ) { - - if ( nmi_enable ) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static void msmint( int data ) { - - static int counter = 0; - - if ( msm_play_lo_nibble ) - MSM5205_data_w( 0, msm_data & 0x0f ); - else - MSM5205_data_w( 0, ( msm_data >> 4 ) & 0x0f ); - - msm_play_lo_nibble ^= 1; - - if ( !( counter ^= 1 ) ) { - if ( sound_nmi_enable ) { - cpunum_set_input_line( 1, INPUT_LINE_NMI, PULSE_LINE ); - } - } -} - -static struct MSM5205interface msm_interface = -{ - msmint, /* interrupt function */ - MSM5205_S96_4B /* 1 / 96 = 3906.25Hz playback */ -}; - -/******************** -* 1 Player Version * -********************/ - -static INTERRUPT_GEN( sound_int ) { - - if ( sound_nmi_enable ) - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - - -static MACHINE_DRIVER_START( kchampvs ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3000000) /* 12MHz / 4 = 3.0 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(kc_interrupt,1) - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ /* 12MHz / 4 = 3.0 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - /* irq's triggered from main cpu */ - /* nmi's from msm5205 */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(256) - - MDRV_PALETTE_INIT(kchamp) - MDRV_VIDEO_START(kchamp) - MDRV_VIDEO_UPDATE(kchampvs) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(MSM5205, 375000) - MDRV_SOUND_CONFIG(msm_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/******************** -* 1 Player Version * -********************/ - -static MACHINE_DRIVER_START( kchamp ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3000000) /* 12MHz / 4 = 3.0 MHz */ - MDRV_CPU_PROGRAM_MAP(kc_readmem,kc_writemem) - MDRV_CPU_IO_MAP(kc_readport,kc_writeport) - MDRV_CPU_VBLANK_INT(kc_interrupt,1) - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ /* 12MHz / 4 = 3.0 MHz */ - MDRV_CPU_PROGRAM_MAP(kc_sound_readmem,kc_sound_writemem) - MDRV_CPU_IO_MAP(kc_sound_readport,kc_sound_writeport) - MDRV_CPU_PERIODIC_INT(sound_int, TIME_IN_HZ(125)) /* Hz */ - /* irq's triggered from main cpu */ - /* nmi's from 125 Hz clock */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(256) - - MDRV_PALETTE_INIT(kchamp) - MDRV_VIDEO_START(kchamp) - MDRV_VIDEO_UPDATE(kchamp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( kchamp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "b014.bin", 0x0000, 0x2000, CRC(0000d1a0) SHA1(0c584096825e1d3cc718e0bda1abb897a7f4d2df) ) - ROM_LOAD( "b015.bin", 0x2000, 0x2000, CRC(03fae67e) SHA1(3b6a30f39f5ad512415e3b8ba6e07f3118e28d9e) ) - ROM_LOAD( "b016.bin", 0x4000, 0x2000, CRC(3b6e1d08) SHA1(ecf7d2b0f31f04c0be7d5a1f450b9c95d9f54d80) ) - ROM_LOAD( "b017.bin", 0x6000, 0x2000, CRC(c1848d1a) SHA1(eb5f85d88e170e864d0cd4c372be2a193935caa2) ) - ROM_LOAD( "b018.bin", 0x8000, 0x2000, CRC(b824abc7) SHA1(4a30fec025150e889600a78497700155e743c99e) ) - ROM_LOAD( "b019.bin", 0xa000, 0x2000, CRC(3b487a46) SHA1(7837e480fd4648e0d3f792b79fa0019e063abdc6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */ /* 64k for code */ - ROM_LOAD( "b026.bin", 0x0000, 0x2000, CRC(999ed2c7) SHA1(f01e4ee81f8f7b0d1cf001d3ec01a9210f8109b4) ) - ROM_LOAD( "b025.bin", 0x2000, 0x2000, CRC(33171e07) SHA1(55ee74c9f1d86ec13d92ea0d1b700bbe24b79def) ) /* adpcm */ - ROM_LOAD( "b024.bin", 0x4000, 0x2000, CRC(910b48b9) SHA1(c6a2f8266ff1f14b462b92d47a4a86542df77cdd) ) /* adpcm */ - ROM_LOAD( "b023.bin", 0x6000, 0x2000, CRC(47f66aac) SHA1(484802cfbff7c5f51dd97cb3b2321e137b03481c) ) - ROM_LOAD( "b022.bin", 0x8000, 0x2000, CRC(5928e749) SHA1(a4dbd6f2a6a7aa9597875dfd781e55b0fb14d49b) ) - ROM_LOAD( "b021.bin", 0xa000, 0x2000, CRC(ca17e3ba) SHA1(91a3ccd6045dcef5f3293d669fe5a4df59cd954b) ) - ROM_LOAD( "b020.bin", 0xc000, 0x2000, CRC(ada4f2cd) SHA1(15a4ed7497cb6c06f523ebe38bc4eb6dbcd09549) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b000.bin", 0x00000, 0x2000, CRC(a4fa98a1) SHA1(33b9a1a56d72ffa5f4e16b69e6e19af5a2882b2c) ) /* plane0 */ /* tiles */ - ROM_LOAD( "b001.bin", 0x04000, 0x2000, CRC(fea09f7c) SHA1(174fc8022c455438538e6a3b67c7effc857ae634) ) /* plane1 */ /* tiles */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b013.bin", 0x00000, 0x2000, CRC(eaad4168) SHA1(f31b05ffb86677157f3a44cdcf0f9a729e0ab259) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "b004.bin", 0x02000, 0x2000, CRC(10a47e2d) SHA1(97fe2de3ce2b8dc017dceffce494be18695708d2) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "b012.bin", 0x04000, 0x2000, CRC(b4842ea9) SHA1(471475f65edbd292b9162ad50e5cb0c7144845b0) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "b003.bin", 0x06000, 0x2000, CRC(8cd166a5) SHA1(4b623c4c0025d75b3ed9746f8b6730bf3e65d85a) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "b011.bin", 0x08000, 0x2000, CRC(4cbd3aa3) SHA1(a9a683dcc4f52b18450659a20434a4d2a7b411d9) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "b002.bin", 0x0a000, 0x2000, CRC(6be342a6) SHA1(0b8ac7ef7c6a6464fbc027a9fd17fa7ce1ffd962) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "b007.bin", 0x0c000, 0x2000, CRC(cb91d16b) SHA1(bf32a03e7882b74280b29fa004429b77ad52e5ee) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "b010.bin", 0x0e000, 0x2000, CRC(489c9c04) SHA1(d920ef4f03e1b2e871df0cb2d672689c89febe96) ) /* bot, plane1 */ /* sprites */ - ROM_LOAD( "b006.bin", 0x10000, 0x2000, CRC(7346db8a) SHA1(d2b2c1700ae0ff9c614a9981a3da3d69879e9f25) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "b009.bin", 0x12000, 0x2000, CRC(b78714fc) SHA1(4df7f15c37d56a9d66d0049aad65b32063e5c29a) ) /* bot, plane1 */ /* sprites */ - ROM_LOAD( "b005.bin", 0x14000, 0x2000, CRC(b2557102) SHA1(ec4285029fc3ee1ad0adb05f363b234c67f8903d) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "b008.bin", 0x16000, 0x2000, CRC(c85aba0e) SHA1(4be21b38623c2a8ae7f1e7397fb002e4cb9e4614) ) /* bot, plane1 */ /* sprites */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "br27", 0x0000, 0x0100, CRC(f683c54a) SHA1(92893990456b92f04a2be98b8e9626e97b7a2562) ) /* red */ - ROM_LOAD( "br26", 0x0100, 0x0100, CRC(3ddbb6c4) SHA1(0eca5594d6812bc79f8b78f83fe003877d20c973) ) /* green */ - ROM_LOAD( "br25", 0x0200, 0x0100, CRC(ba4a5651) SHA1(77e81bd64ab59a7466d20eabdff4be241e963c52) ) /* blue */ -ROM_END - -ROM_START( karatedo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "be14", 0x0000, 0x2000, CRC(44e60aa0) SHA1(6d007d7082c15182832f947444b00b7feb0e7738) ) - ROM_LOAD( "be15", 0x2000, 0x2000, CRC(a65e3793) SHA1(bf1e8fbc6755e85414eb7629e6fab3bf154f6546) ) - ROM_LOAD( "be16", 0x4000, 0x2000, CRC(151d8872) SHA1(1bb27142fdb33e3aeaf95c7a0ad7e8c258bbcb66) ) - ROM_LOAD( "be17", 0x6000, 0x2000, CRC(8f393b6a) SHA1(f246a6e069a2f562c5b7de05a2b8a6a09c1f4d1b) ) - ROM_LOAD( "be18", 0x8000, 0x2000, CRC(a09046ad) SHA1(665973bffc38e36b8b0f6bc79e10db280be0613e) ) - ROM_LOAD( "be19", 0xa000, 0x2000, CRC(0cdc4da9) SHA1(405454deda311abb8badd58a47529e42ddce5f6a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */ /* 64k for code */ - ROM_LOAD( "be26", 0x0000, 0x2000, CRC(999ab0a3) SHA1(6aa545cee7a261f3dc5774dea2066f1412f63f49) ) - ROM_LOAD( "be25", 0x2000, 0x2000, CRC(253bf0da) SHA1(33bae6401003dc57deaa14bf7f6a7ebad5b7efe3) ) /* adpcm */ - ROM_LOAD( "be24", 0x4000, 0x2000, CRC(e2c188af) SHA1(b7a0801a4c634694f1556873fd21f7e13441be17) ) /* adpcm */ - ROM_LOAD( "be23", 0x6000, 0x2000, CRC(25262de1) SHA1(6264cd82756be9e1cdcd9ad3c3dfc6fef78dab8f) ) - ROM_LOAD( "be22", 0x8000, 0x2000, CRC(38055c48) SHA1(8406a52aaa7e56093a8d8552e928988b6fdd6c95) ) - ROM_LOAD( "be21", 0xa000, 0x2000, CRC(5f0efbe7) SHA1(f831efd02c917adac827fe6db8449ca8707b3d44) ) - ROM_LOAD( "be20", 0xc000, 0x2000, CRC(cbe8a533) SHA1(04cb41c487c2f951417628ed2888e04d59a39d29) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "be00", 0x00000, 0x2000, CRC(cec020f2) SHA1(07c501cc24797000f369fd98a26efe13875107bb) ) /* plane0 */ /* tiles */ - ROM_LOAD( "be01", 0x04000, 0x2000, CRC(cd96271c) SHA1(bcc71010e5489b19ad1553141c7b2e366bbbc68f) ) /* plane1 */ /* tiles */ - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "be13", 0x00000, 0x2000, CRC(fb358707) SHA1(37124f1f545787723fecf466d8dcd31b88cdd75d) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "be04", 0x02000, 0x2000, CRC(48372bf8) SHA1(28231b3bdb1d7226d7856554ba667b6d61f4fe22) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "b012.bin", 0x04000, 0x2000, CRC(b4842ea9) SHA1(471475f65edbd292b9162ad50e5cb0c7144845b0) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "b003.bin", 0x06000, 0x2000, CRC(8cd166a5) SHA1(4b623c4c0025d75b3ed9746f8b6730bf3e65d85a) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "b011.bin", 0x08000, 0x2000, CRC(4cbd3aa3) SHA1(a9a683dcc4f52b18450659a20434a4d2a7b411d9) ) /* top, plane0 */ /* sprites */ - ROM_LOAD( "b002.bin", 0x0a000, 0x2000, CRC(6be342a6) SHA1(0b8ac7ef7c6a6464fbc027a9fd17fa7ce1ffd962) ) /* bot, plane0 */ /* sprites */ - ROM_LOAD( "be07", 0x0c000, 0x2000, CRC(40f2b6fb) SHA1(8d9ee04d917a8e143bd00fa7582990213bfa42d3) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "be10", 0x0e000, 0x2000, CRC(325c0a97) SHA1(0159536ff0ebac8ccf65aac1a524a30b3fca3418) ) /* bot, plane1 */ /* sprites */ - ROM_LOAD( "b006.bin", 0x10000, 0x2000, CRC(7346db8a) SHA1(d2b2c1700ae0ff9c614a9981a3da3d69879e9f25) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "b009.bin", 0x12000, 0x2000, CRC(b78714fc) SHA1(4df7f15c37d56a9d66d0049aad65b32063e5c29a) ) /* bot, plane1 */ /* sprites */ - ROM_LOAD( "b005.bin", 0x14000, 0x2000, CRC(b2557102) SHA1(ec4285029fc3ee1ad0adb05f363b234c67f8903d) ) /* top, plane1 */ /* sprites */ - ROM_LOAD( "b008.bin", 0x16000, 0x2000, CRC(c85aba0e) SHA1(4be21b38623c2a8ae7f1e7397fb002e4cb9e4614) ) /* bot, plane1 */ /* sprites */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "br27", 0x0000, 0x0100, CRC(f683c54a) SHA1(92893990456b92f04a2be98b8e9626e97b7a2562) ) /* red */ - ROM_LOAD( "br26", 0x0100, 0x0100, CRC(3ddbb6c4) SHA1(0eca5594d6812bc79f8b78f83fe003877d20c973) ) /* green */ - ROM_LOAD( "br25", 0x0200, 0x0100, CRC(ba4a5651) SHA1(77e81bd64ab59a7466d20eabdff4be241e963c52) ) /* blue */ -ROM_END - -ROM_START( kchampvs ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ - ROM_LOAD( "bs24", 0x0000, 0x2000, CRC(829da69b) SHA1(3266e7686e537f34ee5ce4cccc349eb12fc65038) ) - ROM_LOAD( "bs23", 0x2000, 0x2000, CRC(091f810e) SHA1(283edb08ce106835185a1c2d6b88f7544d75f3b4) ) - ROM_LOAD( "bs22", 0x4000, 0x2000, CRC(d4df2a52) SHA1(60d6cb1cb51c6f80a0f88913d4152ab8bda752d6) ) - ROM_LOAD( "bs21", 0x6000, 0x2000, CRC(3d4ef0da) SHA1(228c8e47bb7123b69746506402edb875a43d7af5) ) - ROM_LOAD( "bs20", 0x8000, 0x2000, CRC(623a467b) SHA1(5f150c67632f8e32769b75aa0615d0eb018afdc4) ) - ROM_LOAD( "bs19", 0xa000, 0x2000, CRC(43e196c4) SHA1(8029798ea0a560603c3dcde56db5a1ccde58c514) ) - ROM_CONTINUE( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */ /* 64k for code */ - ROM_LOAD( "bs18", 0x0000, 0x2000, CRC(eaa646eb) SHA1(cbd48f4d5d225b71c2dd0b14f420838561e3f83e) ) - ROM_LOAD( "bs17", 0x2000, 0x2000, CRC(d71031ad) SHA1(b168f4ef4feb4195305404df699acecb731eab02) ) /* adpcm */ - ROM_LOAD( "bs16", 0x4000, 0x2000, CRC(6f811c43) SHA1(1d33ac8129562ab709bd7396b4c2457b6db99277) ) /* adpcm */ - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bs12", 0x00000, 0x2000, CRC(4c574ecd) SHA1(86914eef33da73463ba6261eecae75209d24fac1) ) - ROM_LOAD( "bs13", 0x02000, 0x2000, CRC(750b66af) SHA1(c7824994b977d4e846f3ecadfcfc51331f52b6f4) ) - ROM_LOAD( "bs14", 0x04000, 0x2000, CRC(9ad6227c) SHA1(708af5e70927040cf7f2ae6f792344c19099530c) ) - ROM_LOAD( "bs15", 0x06000, 0x2000, CRC(3b6d5de5) SHA1(288fffcbc9369db5c75e7e0d6181612de6f12da3) ) - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "bs00", 0x00000, 0x2000, CRC(51eda56c) SHA1(31438e115e95c2a684ec65ed2bdb9125e3675226) ) - ROM_LOAD( "bs06", 0x02000, 0x2000, CRC(593264cf) SHA1(866469f37b6c90afc65e53e6589b67ac4b25997e) ) - ROM_LOAD( "b012.bin", 0x04000, 0x2000, CRC(b4842ea9) SHA1(471475f65edbd292b9162ad50e5cb0c7144845b0) ) /* bs01 */ - ROM_LOAD( "b003.bin", 0x06000, 0x2000, CRC(8cd166a5) SHA1(4b623c4c0025d75b3ed9746f8b6730bf3e65d85a) ) /* bs07 */ - ROM_LOAD( "b011.bin", 0x08000, 0x2000, CRC(4cbd3aa3) SHA1(a9a683dcc4f52b18450659a20434a4d2a7b411d9) ) /* bs02 */ - ROM_LOAD( "b002.bin", 0x0a000, 0x2000, CRC(6be342a6) SHA1(0b8ac7ef7c6a6464fbc027a9fd17fa7ce1ffd962) ) /* bs08 */ - ROM_LOAD( "bs03", 0x0c000, 0x2000, CRC(8dcd271a) SHA1(0abeaa46433a59c110815ecf188c7afd6fa387a4) ) - ROM_LOAD( "bs09", 0x0e000, 0x2000, CRC(4ee1dba7) SHA1(717ce9a4e20f6e02adf678b1400af4aaecdbfb40) ) - ROM_LOAD( "b006.bin", 0x10000, 0x2000, CRC(7346db8a) SHA1(d2b2c1700ae0ff9c614a9981a3da3d69879e9f25) ) /* bs04 */ - ROM_LOAD( "b009.bin", 0x12000, 0x2000, CRC(b78714fc) SHA1(4df7f15c37d56a9d66d0049aad65b32063e5c29a) ) /* bs10 */ - ROM_LOAD( "b005.bin", 0x14000, 0x2000, CRC(b2557102) SHA1(ec4285029fc3ee1ad0adb05f363b234c67f8903d) ) /* bs05 */ - ROM_LOAD( "b008.bin", 0x16000, 0x2000, CRC(c85aba0e) SHA1(4be21b38623c2a8ae7f1e7397fb002e4cb9e4614) ) /* bs11 */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "br27", 0x0000, 0x0100, CRC(f683c54a) SHA1(92893990456b92f04a2be98b8e9626e97b7a2562) ) /* red */ - ROM_LOAD( "br26", 0x0100, 0x0100, CRC(3ddbb6c4) SHA1(0eca5594d6812bc79f8b78f83fe003877d20c973) ) /* green */ - ROM_LOAD( "br25", 0x0200, 0x0100, CRC(ba4a5651) SHA1(77e81bd64ab59a7466d20eabdff4be241e963c52) ) /* blue */ -ROM_END - -ROM_START( karatevs ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ - ROM_LOAD( "br24", 0x0000, 0x2000, CRC(ea9cda49) SHA1(7d753a8d391418d0fe5231eb88b3627f7d3fd99e) ) - ROM_LOAD( "br23", 0x2000, 0x2000, CRC(46074489) SHA1(5593f819b6893820ef0c0fece13cf3ca83e1ab85) ) - ROM_LOAD( "br22", 0x4000, 0x2000, CRC(294f67ba) SHA1(45f13a7deb75bb167176c5405128de3ca76e22f0) ) - ROM_LOAD( "br21", 0x6000, 0x2000, CRC(934ea874) SHA1(dbc139715a1598033beedbf4f8fec73703b016d6) ) - ROM_LOAD( "br20", 0x8000, 0x2000, CRC(97d7816a) SHA1(e02f9306fc3539f4feaedfcabea66d172d09a510) ) - ROM_LOAD( "br19", 0xa000, 0x2000, CRC(dd2239d2) SHA1(0533d5abf8e25a4aeec2f7832b657eab56fd11f0) ) - ROM_CONTINUE( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU */ /* 64k for code */ - ROM_LOAD( "br18", 0x0000, 0x2000, CRC(00ccb8ea) SHA1(83d69684dc3ad37aca03c901fd23c7652134766f) ) - ROM_LOAD( "bs17", 0x2000, 0x2000, CRC(d71031ad) SHA1(b168f4ef4feb4195305404df699acecb731eab02) ) /* adpcm */ - ROM_LOAD( "br16", 0x4000, 0x2000, CRC(2512d961) SHA1(f0cd1be112b915d700e0587759606d48d115a83f) ) /* adpcm */ - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "br12", 0x00000, 0x2000, CRC(9ed6f00d) SHA1(3def985deb29a7644309ede3bd82c225b4ae23f8) ) - ROM_LOAD( "bs13", 0x02000, 0x2000, CRC(750b66af) SHA1(c7824994b977d4e846f3ecadfcfc51331f52b6f4) ) - ROM_LOAD( "br14", 0x04000, 0x2000, CRC(fc399229) SHA1(e8d633151b0d7fa49c455920c4b0588575a7084e) ) - ROM_LOAD( "bs15", 0x06000, 0x2000, CRC(3b6d5de5) SHA1(288fffcbc9369db5c75e7e0d6181612de6f12da3) ) - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "br00", 0x00000, 0x2000, CRC(c46a8b88) SHA1(a47e56a6dc7f36b896b8156e77a1da7e8be2332e) ) - ROM_LOAD( "br06", 0x02000, 0x2000, CRC(cf8982ff) SHA1(aafb249503ad51f64b1f31ea2d869dfc0e065d19) ) - ROM_LOAD( "b012.bin", 0x04000, 0x2000, CRC(b4842ea9) SHA1(471475f65edbd292b9162ad50e5cb0c7144845b0) ) /* bs01 */ - ROM_LOAD( "b003.bin", 0x06000, 0x2000, CRC(8cd166a5) SHA1(4b623c4c0025d75b3ed9746f8b6730bf3e65d85a) ) /* bs07 */ - ROM_LOAD( "b011.bin", 0x08000, 0x2000, CRC(4cbd3aa3) SHA1(a9a683dcc4f52b18450659a20434a4d2a7b411d9) ) /* bs02 */ - ROM_LOAD( "b002.bin", 0x0a000, 0x2000, CRC(6be342a6) SHA1(0b8ac7ef7c6a6464fbc027a9fd17fa7ce1ffd962) ) /* bs08 */ - ROM_LOAD( "br03", 0x0c000, 0x2000, CRC(bde8a52b) SHA1(1a0800472caf8c79a15cc977dad1a7bc97c74b2b) ) - ROM_LOAD( "br09", 0x0e000, 0x2000, CRC(e9a5f945) SHA1(e6b21912bee97de06819c8ac85a45bbc70030f88) ) - ROM_LOAD( "b006.bin", 0x10000, 0x2000, CRC(7346db8a) SHA1(d2b2c1700ae0ff9c614a9981a3da3d69879e9f25) ) /* bs04 */ - ROM_LOAD( "b009.bin", 0x12000, 0x2000, CRC(b78714fc) SHA1(4df7f15c37d56a9d66d0049aad65b32063e5c29a) ) /* bs10 */ - ROM_LOAD( "b005.bin", 0x14000, 0x2000, CRC(b2557102) SHA1(ec4285029fc3ee1ad0adb05f363b234c67f8903d) ) /* bs05 */ - ROM_LOAD( "b008.bin", 0x16000, 0x2000, CRC(c85aba0e) SHA1(4be21b38623c2a8ae7f1e7397fb002e4cb9e4614) ) /* bs11 */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "br27", 0x0000, 0x0100, CRC(f683c54a) SHA1(92893990456b92f04a2be98b8e9626e97b7a2562) ) /* red */ - ROM_LOAD( "br26", 0x0100, 0x0100, CRC(3ddbb6c4) SHA1(0eca5594d6812bc79f8b78f83fe003877d20c973) ) /* green */ - ROM_LOAD( "br25", 0x0200, 0x0100, CRC(ba4a5651) SHA1(77e81bd64ab59a7466d20eabdff4be241e963c52) ) /* blue */ -ROM_END - - - -static DRIVER_INIT( kchampvs ) -{ - UINT8 *decrypted = auto_malloc(0x10000); - UINT8 *rom = memory_region(REGION_CPU1); - int A; - - memory_set_decrypted_region(0, 0x0000, 0xffff, decrypted); - - for (A = 0;A < 0x10000;A++) - decrypted[A] = (rom[A] & 0x55) | ((rom[A] & 0x88) >> 2) | ((rom[A] & 0x22) << 2); - - /* - Note that the first 4 opcodes that the program - executes aren't encrypted for some obscure reason. - The address for the 2nd opcode (a jump) is encrypted too. - It's not clear what the 3rd and 4th opcode are supposed to do, - they just write to a RAM location. This write might be what - turns the encryption on, but this doesn't explain the - encrypted address for the jump. - */ - decrypted[0] = rom[0]; /* this is a jump */ - A = rom[1] + 256 * rom[2]; - decrypted[A] = rom[A]; /* fix opcode on first jump address (again, a jump) */ - rom[A+1] ^= 0xee; /* fix address of the second jump */ - A = rom[A+1] + 256 * rom[A+2]; - decrypted[A] = rom[A]; /* fix third opcode (ld a,$xx) */ - A += 2; - decrypted[A] = rom[A]; /* fix fourth opcode (ld ($xxxx),a */ - /* and from here on, opcodes are encrypted */ -} - - - -GAME( 1984, kchamp, 0, kchamp, kchamp, 0, ROT90, "Data East USA", "Karate Champ (US)", 0 ) -GAME( 1984, karatedo, kchamp, kchamp, kchamp, 0, ROT90, "Data East Corporation", "Karate Dou (Japan)", 0 ) -GAME( 1984, kchampvs, kchamp, kchampvs, kchampvs, kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version)", 0 ) -GAME( 1984, karatevs, kchamp, kchampvs, kchampvs, kchampvs, ROT90, "Data East Corporation", "Taisen Karate Dou (Japan VS version)", 0 ) diff --git a/src/drivers/konamigx.c b/src/drivers/konamigx.c deleted file mode 100644 index d4a7b39d5..000000000 --- a/src/drivers/konamigx.c +++ /dev/null @@ -1,3611 +0,0 @@ -/************************************************************************** - * - * konamigx.c - Konami System GX - * Driver by R. Belmont, Acho A. Tang, and Phil Stroffolino. - * ESC protection emulation and TMS57002 skipper by Olivier Galibert. - * - * Basic hardware consists of: - * - MC68EC020 main CPU at 24 MHz - * - MC68000 sound CPU with 2x K054539 PCM chips plus a TMS57002 DASP for effects - * - * Tilemaps are handled by the old familiar K054156 with a new partner K056832. - * This combination is mostly compatible with the 156/157 combo but now sports - * up to 8 bits per pixel as well as larger 128x64 tile planes. - * - * Sprites are handled by a K053246 combined with a K055673. This combo was - * actually used on some 16 bit Konami games as well. It appears identical - * to the standard 246/247 combo except with 5-8 bits per pixel. - * - * Video output is handled by a K055555 mixer/priority encoder. This is a much - * more capable beast than the earlier 53251, supporting a background gradient - * and flexible priority handling among other features. It's combined with the - * 54338 alpha blending engine first seen in Xexex for flexible blending. - * - * There are actually 4 types of System GX hardware, which are differentiated - * by their ROM board. The most common is the "Type 2". - * - * 68020 memory map for Type 2: - * 000000: BIOS ROM (128k) - * 200000: game program ROM (1 meg, possibly up to 2) - * 400000: data ROMs - * c00000: Work RAM (128k) - * cc0000: Protection chip - * d00000: 054157 ROM readback for memory test - * d20000: sprite RAM (4k) - * d40000: 054157/056832 tilemap generator (VACSET) - * d44000: tile bank selectors (VSCCS) - * d48000: 053246/055673 sprite generator (OBJSET1) - * d4a000: more readback for sprite generator (OBJSET2) - * d4c000: CCU1 registers (CCUS1) - * 00: HCH 6M/288 8M/384 12M/576 224 256 - * 02: HCL HCH 01 01 02 VCH 01 01 - * 04: HFPH HCL 7f ff ff VCL 07 20 - * 06: HFPL HFPH 00 00 00 VFP 11 0c - * 08: HBPH HFPL 10 19 23 VBP 0e 0e - * 0A: HBPL HBPH 00 00 00 VSW 07 05 - * 10: VCH HBPL 30 3f 4d - * 12: VCL HSW 03 04 09 - * 14: VFP - * 16: VBP - * 18: VSW/HSW - * 1A: INT TIME - * 1C: INT1ACK (read VCTH) INT1 = V blank - * 1E: INT2ACK (read VCTL) INT2 = H blank - * d4e000: CCU2 registers (CCUS2) - * d50000: K055555 8-bit-per-pixel priority encoder (PCUCS) - * d52000: shared RAM with audio 68000 (SOUNDCS) - * d56000: EEPROM comms, bit 7 is watchdog, bit 5 is frame?? (WRPOR1) - * d56001: IRQ acknowledge (bits 0->3 = irq 1->4), IRQ enable in hi nibble (bits 4->7 = irq 1->4) - * d58000: control register (OBJCHA, 68000 enable/disable, probably more) (WRPOR2) - * d5a000: dipswitch bank 1 (RDPORT1) - * d5a001: dipswitch bank 2 - * d5a002: input port (service switch) - * d5a003: EEPROM data/ready in bit 0 - * d5c000: player 1 inputs (RDPORT2) - * d5c001: player 2 inputs - * d5e000: test switch (RDPORT3) - * d80000: K054338 alpha blender registers - * d90000: palette RAM for tilemaps - * da0000: tilemap RAM (8k window, bankswitched by d40033) - * dc0000: LANCRAMCS - * dd0000: LANCIOCS - * dd2000: RS232C-1 - * dd4000: RS232C-2 - * dd6000: trackball 1 - * dd8000: trackball 2 - * dda000: ADC-WRPORT - * ddc000: ADC-RDPORT - * dde000: EXT-WRPORT - * de0000: EXT_RDPORT - * e00000: type3/4: PSAC2 registers - * e20000: type3/4: unk. register - * e40000: type3/4: unk. register - * e60000: type3/4: PSAC2 linecontrol RAM - * e80000: type3/4: main monitor's palette - * ea0000: type3/4: sub monitor's palette - * ec0000: type3/4: frame flag - * f00000: 32k of RnG2 additional RAM - * - * IRQs: - * 1: VBL (at 60 Hz) - * 2: HBL - * 3: Sprite DMA complete - * 4: from protection device, indicates command completion for "ESC" chip - * - */ - -#define GX_DEBUG 0 - -#include "driver.h" - -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/k054539.h" -#include "machine/konamigx.h" -#include "machine/adc083x.h" - -VIDEO_START(konamigx_5bpp); -VIDEO_START(konamigx_6bpp); -VIDEO_START(konamigx_6bpp_2); -VIDEO_START(konamigx_type3); -VIDEO_START(konamigx_type4); -VIDEO_START(le2); -VIDEO_START(dragoonj); -VIDEO_START(winspike); -VIDEO_START(opengolf); -VIDEO_START(racinfrc); -VIDEO_UPDATE(konamigx); - -MACHINE_START(konamigx); -MACHINE_RESET(konamigx); - -WRITE32_HANDLER( konamigx_palette_w ); -WRITE32_HANDLER( konamigx_palette2_w ); -WRITE32_HANDLER( konamigx_555_palette_w ); -WRITE32_HANDLER( konamigx_555_palette2_w ); -WRITE32_HANDLER( konamigx_tilebank_w ); - -UINT32 *gx_psacram, *gx_subpaletteram32; -WRITE32_HANDLER( konamigx_t1_psacmap_w ); -WRITE32_HANDLER( konamigx_t4_psacmap_w ); - -int konamigx_cfgport; - -static UINT32 *gx_workram; /* workram pointer for ESC protection fun */ -static UINT16 *gx_sndram; -static int gx_rdport1_3, gx_syncen; - -static void *dmadelay_timer; - -/**********************************************************************************/ -/* - Konami ESC (E Security Chip) protection chip found on: - - Salamander 2 - - Sexy Parodius - - Twinbee Yahhoo - - Dragoon Might - - Daisu-Kiss - - The ESC is a custom microcontroller with external SRAM connected - to it. It's microprogram is uploaded by the host game. The ESC - has complete DMA access to the entire 68020 address space, like - most Konami protection devices. - - Most games use the same or a compatible microprogram. This - program gathers the sprite information scattered around work RAM - and builds a sprite list in sprite RAM which is properly sorted - in priority order. The Japanese version of Gokujou Parodius - contains a 68020 version of this program at 0x2a285c. The code - below is almost a direct translation into C of that routine. - - Salamander 2 uses a different work RAM format and a different - ESC program, and Dragoon Might uses a third format and program. - These games haven't been reverse-engineered yet and so have - no sprites. - - Winning Spike and the Type 4 games use a new protection chip - made from a Xilinx FPGA. See type4_prot_w for details. - -*/ - -/* constant names mostly taken from sexy parodius, which includes - a debug protection routine with asserts intact! Cracking the ESC - would have been much more difficult without it. - */ - -#define ESC_INIT_CONSTANT 0x0108db04 -#define ESC_OBJECT_MAGIC_ID 0xfef724fb -#define ESTATE_END 2 -#define ESTATE_ERROR 3 - -// opcode 1 -// dragoonj -// ESC Opcode 1 : 000000xx 000000xx 00000xx0 00000000 -// tbyahhoo sprites at c00000 -// ESC Opcode 1 : 0000ffff 0000ffff 0000ffff 0000000e -// sexyparo sprites at c00604 -// ESC Opcode 1 : 00000000 00000000 00d20000 00000000 -// ESC Opcode 1 : 00000000 00000000 00d21000 00000000 -// salmndr2 -// ESC Opcode 1 : 00c1f7f8 0022002c 00c00060 00010014 -// tokkae -// ESC Opcode 1 : 00c00000 0000000x 00000023 0000ffff -// puzldama -// ESC Opcode 1 : 002xxxxx 00236102 xxxxxx01 xxxxxxxx - -// Say hello to gokuparo at 0x2a285c - -static struct sprite_entry { - int pri; - unsigned int adr; -} sprites[0x100]; - -static void generate_sprites(UINT32 src, UINT32 spr, int count) -{ - int i; - int scount; - int ecount; - scount = 0; - ecount = 0; - - for(i=0; i= 0x200000 && set < 0xd00000) - { - unsigned short count2 = program_read_word(set); - set += 2; - while(count2) { - unsigned short idx = program_read_word(set); - unsigned short flip = program_read_word(set+2); - unsigned short col = program_read_word(set+4); - short y = program_read_word(set+6); - short x = program_read_word(set+8); - - if(idx == 0xffff) { - set = (flip<<16) | col; - if(set >= 0x200000 && set < 0xd00000) - continue; - else - break; - } - - if(zoom_y != 0x40) - y = y*0x40/zoom_y; - if(zoom_x != 0x40) - x = x*0x40/zoom_x; - - if(flip_x) - x = glob_x - x; - else - x = glob_x + x; - if(x < -256 || x > 512+32) - goto next; - - if(flip_y) - y = glob_y - y; - else - y = glob_y + y; - if(y < -256 || y > 512) - goto next; - - col = (col & color_mask) | color_val; - if(color_set) - col = (col & 0xffe0) | color_set; - if(color_rotate) - col = (col & 0xffe0) | ((col + color_rotate) & 0x1f); - - program_write_word(spr , (flip ^ glob_f) | sprites[i].pri); - program_write_word(spr+ 2, idx); - program_write_word(spr+ 4, y); - program_write_word(spr+ 6, x); - program_write_word(spr+ 8, zoom_y); - program_write_word(spr+10, zoom_x); - program_write_word(spr+12, col); - spr += 16; - scount++; - if(scount == 256) - return; - next: - count2--; - set += 10; - } - } - } - } - while(scount < 256) { - program_write_word(spr, scount); - scount++; - spr += 16; - } -} - -static void tkmmpzdm_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - konamigx_esc_alert(gx_workram, 0x0142, 0x100, 0); -} - -static void dragoonj_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - konamigx_esc_alert(gx_workram, 0x5c00, 0x100, 0); -} - -static void sal2_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - konamigx_esc_alert(gx_workram, 0x1c8c, 0x172, 1); -} - -static void sexyparo_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - // The d20000 should probably be p3 - generate_sprites(0xc00604, 0xd20000, 0xfc); -} - -static void tbyahhoo_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - generate_sprites(0xc00000, 0xd20000, 0x100); -} - -static void daiskiss_esc(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4) -{ - generate_sprites(0xc00000, 0xd20000, 0x100); -} - -static unsigned char esc_program[4096]; -static void (*esc_cb)(UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4); - -static WRITE32_HANDLER( esc_w ) -{ - unsigned int opcode; - unsigned int params; - - /* ignore NULL writes to the ESC (these appear to be "keepalives" on the real hardware) */ - if (!data) - { - return; - } - - /* ignore out-of-range addresses */ - if ((data < 0xc00000) || (data > 0xc1ffff)) - { - return; - } - - /* the master opcode can be at an unaligned address, so get it "safely" */ - opcode = (program_read_word(data+2))|(program_read_word(data)<<16); - - /* if there's an OBJECT_MAGIC_ID, that means - there is a valid ESC command packet. */ - if (opcode == ESC_OBJECT_MAGIC_ID) - { - int i; - /* get the subop now */ - opcode = program_read_byte(data+8); - params = (program_read_word(data+12) << 16) | program_read_word(data+14); - - switch(opcode) { - case 5: // Reset - break; - case 2: // Load program - for(i=0; i<4096; i++) - esc_program[i] = program_read_byte(params+i); -/* - { - FILE *f; - - f = fopen("esc.bin", "wb"); - fwrite(esc_program, 4096, 1, f); - fclose(f); - - logerror("Dumping ESC program\n"); - } -*/ - break; - case 1: // Run program - if(esc_cb) { - UINT32 p1 = (program_read_word(params+0)<<16) | program_read_word(params+2); - UINT32 p2 = (program_read_word(params+4)<<16) | program_read_word(params+6); - UINT32 p3 = (program_read_word(params+8)<<16) | program_read_word(params+10); - UINT32 p4 = (program_read_word(params+12)<<16) | program_read_word(params+14); - esc_cb(p1, p2, p3, p4); - } - break; - default: -// logerror("Unknown ESC opcode %d\n", opcode); - break; - } - program_write_byte(data+9, ESTATE_END); - - if (konamigx_wrport1_1 & 0x10) - { - gx_rdport1_3 &= ~8; - cpunum_set_input_line(0, 4, HOLD_LINE); - } - } - else - { - /* INIT_CONSTANT means just for the ESC to initialize itself, - there is not normal command parsing here. */ - if (opcode == ESC_INIT_CONSTANT) - { -// logerror("Got ESC_INIT_CONSTANT, 'booting' ESC\n"); - return; - } - - /* unknown constant (never been seen in any game..) */ - } -} - -/**********************************************************************************/ -/* NVRAM and EEPROM handlers */ - -static int init_eeprom_count; - -static NVRAM_HANDLER(konamigx_93C46) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C46); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ32_HANDLER( eeprom_r ) -{ - // d5a000 = DIP switches #1 (RDPORT1) - // d5a001 = DIP switches #2 - // d5a002 = input port: service4/3/2/1 coin 4/3/2/1 - // d5a003 = objint stat, exioint stat, trackint stat, excgint stat, escint stat, - // excpuint stat, objdma stat, eeprom do - - // note: racin' force expects bit 1 of the eeprom port to toggle - return(readinputport(6)<<24 | readinputport(7)<<16 | readinputport(0)<<8 | EEPROM_read_bit() | gx_rdport1_3); -} - -static WRITE32_HANDLER( eeprom_w ) -{ - UINT32 odata; - - if (!(mem_mask & 0xff000000)) - { - odata = data >> 24; - /* - bit 7: afr - bit 6: objscan - bit 5: background color select: 0 = 338 solid color, 1 = 5^5 gradient - bit 4: coin counter 2 - bit 3: coin counter 1 - bit 2: eeprom clock - bit 1: eeprom chip select - bit 0: eeprom data - */ - - EEPROM_write_bit((odata&0x01) ? 1 : 0); - EEPROM_set_cs_line((odata&0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((odata&0x04) ? ASSERT_LINE : CLEAR_LINE); - - konamigx_wrport1_0 = odata; - } - - if (!(mem_mask & 0xff0000)) - { - /* - bit 7 = mask all IRQ - bit 6 = LAN IRQ enable - bit 5 = CCU2 IRQ enable - bit 4 = ESC IRQ enable - bit 3 = EXCPU IRQ enable - bit 2 = OBJ IRQ enable - bit 1 = CCU1-INT2 enable - bit 0 = CCU1-INT1 enable - */ - - konamigx_wrport1_1 = (data>>16)&0xff; -// logerror("write %x to IRQ register (PC=%x)\n", konamigx_wrport1_1, activecpu_get_pc()); - - // gx_syncen is to ensure each IRQ is trigger at least once after being enabled - if (konamigx_wrport1_1 & 0x80) gx_syncen |= konamigx_wrport1_1 & 0x1f; - } -} - -static WRITE32_HANDLER( control_w ) -{ - //logerror("write %x to control register (mask=%x)\n", data, mem_mask); - - // known controls: - // bit 23 = reset graphics chips - // bit 22 = 0 to halt 68000, 1 to let it run (SOUNDRESET) - // bit 21 = VRAM-CHARD 0=VRAM, 1=ROM - // bit 20 = OBJCHA line for '246 - // bit 19 = select top 2 sprite priority bits to be 14/15 or 16/17 of the - // spritelist "color" word. - // bit 18 = if 0, the top 2 sprite priority bits are "11" else use bit 19's - // results. - // bit 17 = DOTSEL1 : 0 = 6M, 1=8M, 2=12M, 3=16M - // bit 16 = DOTSEL0 - if (!(mem_mask & 0x00ff0000)) - { - if (data & 0x400000) - { - // enable 68k - // clear the halt condition and reset the 68000 - cpunum_set_input_line(1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); - } - else - { - // disable 68k - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - } - - K053246_set_OBJCHA_line((data&0x100000) ? ASSERT_LINE : CLEAR_LINE); - - konamigx_wrport2 = (data>>16)&0xff; - } -} - - -/**********************************************************************************/ -/* IRQ controllers */ - -#define ADD_SKIPPER32(PC, BASE, START, END, DATA, MASK){ \ - waitskip.pc = PC; \ - waitskip.offs = START/4; \ - waitskip.data = DATA; \ - waitskip.mask = MASK; \ - resume_trigger= 1000; \ - memory_install_read32_handler \ - (0, ADDRESS_SPACE_PROGRAM, (BASE+START)&~3, (BASE+END)|3, 0, 0, waitskip_r);} - -static struct { UINT32 offs, pc, mask, data; } waitskip; -static int suspension_active, resume_trigger; - -static READ32_HANDLER(waitskip_r) -{ - UINT32 data = gx_workram[waitskip.offs+offset]; - mem_mask = ~mem_mask; - - if (activecpu_get_pc() == waitskip.pc && (data & mem_mask) == (waitskip.data & mem_mask)) - { - cpu_spinuntil_trigger(resume_trigger); - suspension_active = 1; - } - - return(data); -} - - -static READ32_HANDLER( ccu_r ) -{ - // the routine at 204abe in opengolf polls to see if we're in vblank (it wants values between 0x111 and 0x1df) - if (offset == 0x1c/4) - { - return 0x01002000; - } - else - { -// logerror("Read unhandled CCU register %x\n", offset); - } - - return 0; -} - -static WRITE32_HANDLER( ccu_w ) -{ - if (offset == 0x1c/4) - { - // vblank interrupt ACK - if (!(mem_mask & 0xff000000)) - { - cpunum_set_input_line(0, 1, CLEAR_LINE); - gx_syncen |= 0x20; - } - - // hblank interrupt ACK - if (!(mem_mask & 0x0000ff00)) - { - cpunum_set_input_line(0, 2, CLEAR_LINE); - gx_syncen |= 0x40; - } - } -} - - -/* - GX object DMA timings: - - 6Mhz dotclock: 42.7us(clear) / 341.3us(transfer) - 8Mhz dotclock: 32.0us(clear) / 256.0us(transfer) - 12Mhz dotclock: 42.7us(clear) / 341.3us(transfer) -*/ - -static void dmaend_callback(int data) -{ - // foul-proof (CPU0 could be deactivated while we wait) - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(resume_trigger); } - - // DMA busy flag must be cleared before triggering IRQ 3 - gx_rdport1_3 &= ~2; - - // IRQ 3 is the "object DMA end" IRQ also happens during vblank - if ((konamigx_wrport1_1 & 0x84) == 0x84 || (gx_syncen & 4)) - { - gx_syncen &= ~4; - - // lower OBJINT-REQ flag and trigger interrupt - gx_rdport1_3 &= ~0x80; - cpunum_set_input_line(0, 3, HOLD_LINE); - } -} - -static void dmastart_callback(int data) -{ - // raise the DMA busy flag - gx_rdport1_3 |= 2; - - // begin transfer if DMAEN(bit4 of OBJSET1) is set (see p.48) - if (K053246_read_register(5) & 0x10) - { - // disabled by default since it doesn't work too well in MAME - konamigx_objdma(); - } - - // simulate DMA delay - timer_adjust(dmadelay_timer, TIME_IN_USEC(120), 0, 0); -} - - -static INTERRUPT_GEN(konamigx_vbinterrupt) -{ - // lift idle suspension - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(resume_trigger); } - - // IRQ 1 is the main 60hz vblank interrupt - if (gx_syncen & 0x20) - { - gx_syncen &= ~0x20; - - if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1)) - { - gx_syncen &= ~1; - cpunum_set_input_line(0, 1, HOLD_LINE); - } - } - - dmastart_callback(0); -} - -static INTERRUPT_GEN(konamigx_vbinterrupt_type4) -{ - // lift idle suspension - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(resume_trigger); } - - // IRQ 1 is the main 60hz vblank interrupt - // the gx_syncen & 0x20 test doesn't work on type 3 or 4 ROM boards, likely because the ROM board - // generates the timing in those cases. With this change, rushing heroes and rng2 boot :) - if (1) // gx_syncen & 0x20) - { - gx_syncen &= ~0x20; - - if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1)) - { - gx_syncen &= ~1; - cpunum_set_input_line(0, 1, HOLD_LINE); - } - } - - dmastart_callback(0); -} - -static INTERRUPT_GEN(konamigx_hbinterrupt) -{ - if (!cpu_getiloops()) - { - konamigx_vbinterrupt_type4(); - } - else // hblank - { - // IRQ 2 is a programmable interrupt with scanline resolution - if (gx_syncen & 0x40) - { - gx_syncen &= ~0x40; - - if ((konamigx_wrport1_1 & 0x82) == 0x82 || (gx_syncen & 2)) - { - gx_syncen &= ~2; - cpunum_set_input_line(0, 2, HOLD_LINE); - } - } - } -} - - -/**********************************************************************************/ -/* sound communication handlers */ - -static UINT8 sndto000[16], sndto020[16]; /* read/write split mapping */ -static int snd020_hack; - -static READ32_HANDLER( sound020_r ) -{ - UINT32 reg, MSW, LSW, rv = 0; - - reg = offset << 1; - - if (!(mem_mask & 0xff000000)) - { - MSW = sndto020[reg]; - if (reg == 2) MSW &= ~3; // supress VOLWR busy flags - rv |= MSW<<24; - } - - if (!(mem_mask & 0x0000ff00)) - { - LSW = sndto020[reg+1]; - rv |= LSW<<8; - } - -// mame_printf_debug("Read 68k @ %x (PC=%x)\n", reg, activecpu_get_pc()); - - // we clearly have some problem because some games require these hacks - // perhaps 68000/68020 timing is skewed? - switch (snd020_hack) - { - case 1: // Lethal Enforcer init - if (reg == 0) rv |= 0xff00; - break; - case 2: // Winning Spike - if (activecpu_get_pc() == 0x2026fe) rv = 0xc0c0c0c0; - break; - case 3: // Run'n Gun 2 - if (activecpu_get_pc() == 0x24f122) rv = 0xc0c0c0c0; - break; - case 4: // Rushing Heroes - if (activecpu_get_pc() == 0x20eda6) rv = 0xc0c0c0c0; - break; - case 5: // Vs. Net Soccer ver. UAB - if (activecpu_get_pc() == 0x24c63e) rv = 0xc0c0c0c0; - break; - case 6: // Slam Dunk 2 - if (activecpu_get_pc() == 0x24f21c) rv = 0xc0c0c0c0; - break; - case 7: // Vs. Net Soccer ver. AAA - if (activecpu_get_pc() == 0x24c722) rv = 0xc0c0c0c0; - break; - case 8: // Vs. Net Soccer ver. EAD - if (activecpu_get_pc() == 0x24c482) rv = 0xc0c0c0c0; - break; - case 9: // Vs. Net Soccer ver. EAB - if (activecpu_get_pc() == 0x24c46c) rv = 0xc0c0c0c0; - break; - case 10: // Vs. Net Soccer ver. JAB - if (activecpu_get_pc() == 0x24c5f0) rv = 0xc0c0c0c0; - break; - } - - return(rv); -} - -INLINE void write_snd_020(int reg, int val) -{ - sndto000[reg] = val; - - if (reg == 7) - { - cpunum_set_input_line(1, 1, HOLD_LINE); - } -} - -static WRITE32_HANDLER( sound020_w ) -{ - int reg=0, val=0; - - if (!(mem_mask & 0xff000000)) - { - reg = offset<<1; - val = data>>24; - write_snd_020(reg, val); - } - - if (!(mem_mask & 0x0000ff00)) - { - reg = (offset<<1)+1; - val = (data>>8)&0xff; - write_snd_020(reg, val); - } -} - - -/**********************************************************************************/ -/* input handlers */ - -/* National Semiconductor ADC0834 4-channel serial ADC emulation */ - -static READ32_HANDLER( adc0834_r ) -{ - return adc083x_do_read( 0 ) << 24; -} - -static WRITE32_HANDLER( adc0834_w ) -{ - adc083x_clk_write( 0, ( data >> 24 ) & 1 ); - adc083x_di_write( 0, ( data >> 25 ) & 1 ); - adc083x_cs_write( 0, ( data >> 26 ) & 1 ); -} - -double adc0834_callback( int input ) -{ - switch( input ) - { - case ADC083X_CH0: - return ( (double)5 * readinputport( 9 ) ) / 255; // steer - case ADC083X_CH1: - return ( (double)5 * readinputport( 10 ) ) / 255; // gas - case ADC083X_VREF: - return 5; - } - return 0; -} - -static READ32_HANDLER( le2_gun_H_r ) -{ - int p1x = readinputport(9)*287/0xff+22; - int p2x = readinputport(11)*287/0xff+22; - - return (p1x<<16)|p2x; -} - -static READ32_HANDLER( le2_gun_V_r ) -{ - int p1y = readinputport(10)*223/0xff+1; - int p2y = readinputport(12)*223/0xff+1; - - return (p1y<<16)|p2y; -} - -static READ32_HANDLER( service_r ) -{ - int res = (readinputport(1)<<24) | (readinputport(8)<<8); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= ~0x08000000; - } - - return res; -} - -static READ32_HANDLER( players_r ) -{ - return (readinputport(2)<<24) | (readinputport(3)<<16) | (readinputport(4)<<8) | (readinputport(5)); -} - - -/**********************************************************************************/ -/* system or game dependent handlers */ - -static READ32_HANDLER( gx5bppspr_r ) -{ - return (K055673_rom_word_r(offset*2+1, 0xffff) | K055673_rom_word_r(offset*2, 0xffff)<<16); -} - -static READ32_HANDLER( gx6bppspr_r ) -{ - return (K055673_GX6bpp_rom_word_r(offset*2+1, 0xffff) | K055673_GX6bpp_rom_word_r(offset*2, 0xffff)<<16); -} - -static READ32_HANDLER( type1_roz_r1 ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_GFX3); - - return ROM[offset]; -} - -static READ32_HANDLER( type1_roz_r2 ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_GFX3); - - ROM += (0x600000/2); - - return ROM[offset]; -} - -static int sync_frame = 0; - -static READ32_HANDLER( type3_sync_r ) -{ - sync_frame ^= 0xffffffff; - - return sync_frame; -} - -static int last_prot_op = -1, last_prot_clk; - -/* - Run and Gun 2, Rushing Heroes, Winning Spike, and Vs. Net Soccer contain a XILINX FPGA that serves as security. - - RnG2's version is stamped "K002204", while Rushing Heroes' is "K0000035891". Vs Net's is unknown at this time. - Winning Spike's is "0000032652". - - RnG2's is used to generate the sprite list just like the ESC, among other tasks. (RnG2 sends many commands per frame to the protection). - - Rushing Heroes is much simpler and uses only 1 command during gameplay. They set up a giant table of pointers - at C10200->C102EF (see the routine at 2043CE. C10001 contains which monitor they want to update (main or sub) - and it changes the pointers accordingly). This sets up the palettes, the sprite list, and the ROZ tilemap, from the looks of things. - - Here are the lists constructed by Rushing Heroes (I've reordered the original code so it's in linear address order). - Vs. Net Soccer does the same thing starting at 2064DC (in fact, Rushing Heroes appears to be heavily based on Vs. Net's code). - - main monitor (2043da) sub monitor (204616) - move.l #$C0C000,($C10200).l move.l #$C1C000,($C10200).l - move.l #$C10000,($C10204).l move.l #$C20000,($C10204).l - move.l #$C0C000,($C10208).l move.l #$C1C000,($C10208).l - move.l #$C0C200,($C1020C).l move.l #$C1C200,($C1020C).l - move.l #$C0C200,($C10210).l move.l #$C1C200,($C10210).l - move.l #$C0D800,($C10214).l move.l #$C1D800,($C10214).l - move.l #$C0D800,($C10218).l move.l #$C1D800,($C10218).l - move.l #$C0EE00,($C1021C).l move.l #$C1EE00,($C1021C).l - move.l #$C0EE00,($C10220).l move.l #$C1EE00,($C10220).l - move.l #$C0F200,($C10224).l move.l #$C1F200,($C10224).l - move.l #$C0EE00,($C10228).l move.l #$C1EE00,($C10228).l - move.l #$C0EE00,($C1022C).l move.l #$C1EE00,($C1022C).l - move.l #$C0F000,($C10230).l move.l #$C1F000,($C10230).l - move.l #$C1C200,($C10234).l move.l #$C0C200,($C10234).l - move.l #$C1EE00,($C10238).l move.l #$C0EE00,($C10238).l - move.l #$C0A000,($C1023C).l move.l #$C1A000,($C1023C).l - move.l #$C0C000,($C10240).l move.l #$C1C000,($C10240).l - move.l #$C0A000,($C10244).l move.l #$C1A000,($C10244).l - move.l #$C10000,($C10248).l move.l #$C20000,($C10248).l - move.l #$C0FA00,($C1024C).l move.l #$C1FA00,($C1024C).l - move.l #$C1A000,($C10250).l move.l #$C0A000,($C10250).l - move.l #$C00000,($C10260).l move.l #$C10000,($C10260).l - move.l #$C10000,($C10264).l move.l #$C00000,($C10264).l - move.l #$C00800,($C10268).l move.l #$C10800,($C10268).l - move.l #$C01000,($C1026C).l move.l #$C11000,($C1026C).l - move.l #$C00500,($C10270).l move.l #$C10500,($C10270).l - move.l #$C00520,($C10274).l move.l #$C10520,($C10274).l - move.l #$C00540,($C10278).l move.l #$C10540,($C10278).l - move.l #$C00560,($C1027C).l move.l #$C10560,($C1027C).l - move.l #$C100C0,($C10280).l move.l #$C100E0,($C10280).l - move.l #$C100D0,($C10284).l move.l #$C100F0,($C10284).l - move.l #$C100E0,($C10288).l move.l #$C100C0,($C10288).l - move.l #$C100F0,($C1028C).l move.l #$C100D0,($C1028C).l - move.l #$E82000,($C10290).l move.l #$EA2000,($C10290).l palette segment (E80000 = main monitor palette, EA0000 = sub monitor palette) - move.l #$E83000,($C10294).l move.l #$EA3000,($C10294).l palette segment - move.l #$E84000,($C10298).l move.l #$EA4000,($C10298).l palette segment - move.l #$E85000,($C1029C).l move.l #$EA5000,($C1029C).l palette segment - move.l #$E80000,($C102A0).l move.l #$EA0000,($C102A0).l palette segment - move.l #$E86000,($C102A4).l move.l #$EA6000,($C102A4).l palette segment - move.l #$E86800,($C102A8).l move.l #$EA6800,($C102A8).l palette segment - move.l #$D20000,($C102B0).l move.l #$D21000,($C102B0).l sprite list - move.l #$D21000,($C102B4).l move.l #$D22000,($C102B4).l sprite end - move.l #$C09000,($C102B8).l move.l #$C19000,($C102B8).l - move.l #$C0A000,($C102BC).l move.l #$C1A000,($C102BC).l - move.l #$C00700,($C102C0).l move.l #$C10700,($C102C0).l - move.l #$C00780,($C102C4).l move.l #$C10780,($C102C4).l - move.l #$C10700,($C102C8).l move.l #$C00700,($C102C8).l - move.l #$C10780,($C102CC).l move.l #$C00780,($C102CC).l - move.l #$C02070,($C102D0).l move.l #$C12070,($C102D0).l - move.l #$C09000,($C102D4).l move.l #$C19000,($C102D4).l - move.l #$C12070,($C102D8).l move.l #$C02070,($C102D8).l - move.l #$C19000,($C102DC).l move.l #$C09000,($C102DC).l - move.l #$C12000,($C102E0).l move.l #$C12000,($C102E0).l - move.l #$C20000,($C102E4).l move.l #$C20000,($C102E4).l - move.l #$C10300,($C102E8).l move.l #$C10300,($C102E8).l - move.l #$C10400,($C102EC).l move.l #$C10400,($C102EC).l -*/ - -static WRITE32_HANDLER( type4_prot_w ) -{ - int clk; - int i; - - if (offset == 1) - { - last_prot_op = data>>16; - } - else - { - data >>= 16; - - clk = data & 0x200; - if ((clk == 0) && (last_prot_clk != 0)) - { - if (last_prot_op != -1) - { - -// mame_printf_debug("type 4 prot command: %x\n", last_prot_op); - /* - known commands: - rng2 rushhero vsnet winspike what - ------------------------------------------------------------------------------ - 0a56 0d96 0d14 0d1c memcpy from c01000 to c01400 for 0x400 bytes - 0b16 generate sprite list at c01000 or c08400 (not sure entirely, see routine at 209922 in rungun2) - 0d97 0515 parse big DMA list at c10200 - 57a copy 4 bytes from c00f10 to c10f00 and 4 bytes from c00f30 to c0fe00 - */ - if ((last_prot_op == 0xa56) || (last_prot_op == 0xd96) || (last_prot_op == 0xd14) || (last_prot_op == 0xd1c)) - { - // memcpy from c01000 to c01400 for 0x400 bytes (startup check for type 4 games) - for (i = 0; i < 0x400; i += 2) - { - program_write_word(0xc01400+i, program_read_word(0xc01000+i)); - } - } - else if(last_prot_op == 0x57a) // winspike - { - program_write_dword(0xc10f00, program_read_dword(0xc00f10)); - program_write_dword(0xc10f04, program_read_dword(0xc00f14)); - program_write_dword(0xc0fe00, program_read_dword(0xc00f30)); - program_write_dword(0xc0fe04, program_read_dword(0xc00f34)); - } - else if(last_prot_op == 0xd97) // rushhero - { - int src = 0xc09ff0; - int dst = 0xd20000; - int spr; - - for (spr = 0; spr < 256; spr++) - { - for (i = 0; i <= 0x10; i += 4) - { - program_write_dword(dst + i, program_read_dword(src+i)); - } - - src -= 0x10; - dst += 0x10; - } - } - else - { - logerror("GXT4: unknown protection command %x (PC=%x)\n", last_prot_op, activecpu_get_pc()); - } - - if (konamigx_wrport1_1 & 0x10) - { - gx_rdport1_3 &= ~8; - cpunum_set_input_line(0, 4, HOLD_LINE); - } - - // don't accidentally do a phony command - last_prot_op = -1; - } - } - last_prot_clk = clk; - } -} - -// cabinet lamps for type 1 games -static WRITE32_HANDLER( type1_cablamps_w ) -{ - set_led_status(0, (data>>24)&1); -} - -/**********************************************************************************/ -/* 68EC020 memory handlers */ -/**********************************************************************************/ - -static ADDRESS_MAP_START( gx_base_memmap, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x01ffff) AM_ROM // BIOS ROM - AM_RANGE(0x200000, 0x3fffff) AM_ROM // main program ROM - AM_RANGE(0x400000, 0x7fffff) AM_ROM // data ROM - AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_BASE(&gx_workram) // work RAM - AM_RANGE(0xd00000, 0xd01fff) AM_READ(K056832_5bpp_rom_long_r) - AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(K053247_long_r, K053247_long_w) - AM_RANGE(0xd21000, 0xd23fff) AM_RAM - AM_RANGE(0xd40000, 0xd4003f) AM_WRITE(K056832_long_w) - AM_RANGE(0xd44000, 0xd4400f) AM_WRITE(konamigx_tilebank_w) - AM_RANGE(0xd48000, 0xd48007) AM_WRITE(K053246_long_w) - AM_RANGE(0xd4a010, 0xd4a01f) AM_WRITE(K053247_reg_long_w) - AM_RANGE(0xd4c000, 0xd4c01f) AM_READWRITE(ccu_r, ccu_w) - AM_RANGE(0xd4e000, 0xd4e01f) AM_WRITENOP - AM_RANGE(0xd50000, 0xd500ff) AM_WRITE(K055555_long_w) - AM_RANGE(0xd52000, 0xd5200f) AM_WRITE(sound020_w) - AM_RANGE(0xd52010, 0xd5201f) AM_READ(sound020_r) - AM_RANGE(0xd56000, 0xd56003) AM_WRITE(eeprom_w) - AM_RANGE(0xd58000, 0xd58003) AM_WRITE(control_w) - AM_RANGE(0xd5a000, 0xd5a003) AM_READ(eeprom_r) - AM_RANGE(0xd5c000, 0xd5c003) AM_READ(players_r) - AM_RANGE(0xd5e000, 0xd5e003) AM_READ(service_r) - AM_RANGE(0xd80000, 0xd8001f) AM_WRITE(K054338_long_w) - AM_RANGE(0xda0000, 0xda1fff) AM_READWRITE(K056832_ram_long_r, K056832_ram_long_w) - AM_RANGE(0xda2000, 0xda3fff) AM_READWRITE(K056832_ram_long_r, K056832_ram_long_w) -#if GX_DEBUG - AM_RANGE(0xd40000, 0xd4003f) AM_READ(K056832_long_r) - AM_RANGE(0xd50000, 0xd500ff) AM_READ(K055555_long_r) - AM_RANGE(0xd4a010, 0xd4a01f) AM_READ(K053247_reg_long_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx_type1_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0xd4a000, 0xd4a01f) AM_READ(gx6bppspr_r) // sprite ROM readback - AM_RANGE(0xd90000, 0xd97fff) AM_RAM AM_WRITE(konamigx_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't) - AM_RANGE(0xdd0000, 0xdd00ff) AM_READNOP AM_WRITENOP // LAN board - AM_RANGE(0xdda000, 0xddafff) AM_WRITE(adc0834_w) - AM_RANGE(0xddc000, 0xddcfff) AM_READ(adc0834_r) - AM_RANGE(0xdde000, 0xdde003) AM_WRITE(type1_cablamps_w) - AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) - AM_RANGE(0xe20000, 0xe2000f) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe40000, 0xe40003) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe80000, 0xe81fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) // chips 21L+19L / S - AM_RANGE(0xec0000, 0xedffff) AM_RAM AM_WRITE(konamigx_t1_psacmap_w) AM_BASE(&gx_psacram) // chips 20J+23J+18J / S - AM_RANGE(0xf00000, 0xf3ffff) AM_READ(type1_roz_r1) // ROM readback - AM_RANGE(0xf40000, 0xf7ffff) AM_READ(type1_roz_r2) // ROM readback - AM_RANGE(0xf80000, 0xf80fff) AM_RAM // chip 21Q / S - AM_RANGE(0xfc0000, 0xfc00ff) AM_RAM // chip 22N / S -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx_type2_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE(esc_w) - AM_RANGE(0xd90000, 0xd97fff) AM_RAM AM_WRITE(konamigx_palette_w) AM_BASE(&paletteram32) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx_type3_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0xd90000, 0xd97fff) AM_RAM - AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w) - AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) - AM_RANGE(0xe20000, 0xe20003) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe40000, 0xe40003) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) - AM_RANGE(0xe80000, 0xe87fff) AM_RAM AM_WRITE(konamigx_555_palette_w) AM_BASE(&paletteram32) // main monitor palette (twice as large as reality) - AM_RANGE(0xea0000, 0xea3fff) AM_RAM AM_WRITE(konamigx_555_palette2_w) AM_BASE(&gx_subpaletteram32) // sub monitor palette - AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) - AM_RANGE(0xf00000, 0xf07fff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx_type4_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w) - AM_RANGE(0xd90000, 0xd97fff) AM_RAM - AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl) - AM_RANGE(0xe20000, 0xe20003) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe40000, 0xe40003) AM_WRITE(MWA32_NOP) - AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl) // 29C & 29G (PSAC2 line control) - AM_RANGE(0xe80000, 0xe8ffff) AM_RAM AM_WRITE(konamigx_palette_w) AM_BASE(&paletteram32) // 11G/13G/15G (main screen palette RAM) (twice as large as reality) - AM_RANGE(0xea0000, 0xea7fff) AM_RAM AM_WRITE(konamigx_palette2_w) AM_BASE(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM) - AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) // type 4 polls this too - AM_RANGE(0xf00000, 0xf07fff) AM_RAM AM_WRITE(konamigx_t4_psacmap_w) AM_BASE(&gx_psacram) // PSAC2 tilemap -ADDRESS_MAP_END - -/**********************************************************************************/ -/* Sound handling */ - -static READ16_HANDLER( dual539_r ) -{ - UINT16 ret = 0; - - if (ACCESSING_LSB16) - ret |= K054539_1_r(offset); - if (ACCESSING_MSB16) - ret |= K054539_0_r(offset)<<8; - - return ret; -} - -static WRITE16_HANDLER( dual539_w ) -{ - if (ACCESSING_LSB16) - K054539_1_w(offset, data); - if (ACCESSING_MSB16) - K054539_0_w(offset, data>>8); -} - -static READ16_HANDLER( sndcomm68k_r ) -{ - return sndto000[offset]; -} - -static WRITE16_HANDLER( sndcomm68k_w ) -{ -// logerror("68K: write %x to %x\n", data, offset); - sndto020[offset] = data; -} - -/* 68000 memory handling */ -static ADDRESS_MAP_START( gxsndmap, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(&gx_sndram) - AM_RANGE(0x200000, 0x2004ff) AM_READWRITE(dual539_r, dual539_w) - AM_RANGE(0x300000, 0x300001) AM_READWRITE(tms57002_data_word_r, tms57002_data_word_w) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(sndcomm68k_w) - AM_RANGE(0x400010, 0x40001f) AM_READ(sndcomm68k_r) - AM_RANGE(0x500000, 0x500001) AM_READWRITE(tms57002_status_word_r, tms57002_control_word_w) - AM_RANGE(0x580000, 0x580001) AM_WRITENOP -ADDRESS_MAP_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - - -/**********************************************************************************/ -/* hardware definitions */ - -/* i think we could reduce the number of machine drivers with different visible areas by adjusting the sprite - positioning on a per game basis too */ - -static const gfx_layout bglayout_8bpp = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 16*128 -}; - -gfx_layout t1_charlayout6 = -{ - 16, 16, - RGN_FRAC(1,1), - 6, - { 20, 16, 12, 8, 4, 0 }, - { 3, 2, 1, 0, 27, 26, 25, 24, 51, 50, 49, 48, 75, 74, 73, 72 }, - { 0, 12*8, 12*8*2, 12*8*3, 12*8*4, 12*8*5, 12*8*6, 12*8*7, - 12*8*8, 12*8*9, 12*8*10, 12*8*11, 12*8*12, 12*8*13, 12*8*14, 12*8*15 }, - 16*16*6 -}; - -gfx_layout t1_charlayout8 = -{ - 16, 16, - RGN_FRAC(1,1), - 8, - { 28, 24, 20, 16, 12, 8, 4, 0 }, - { 3, 2, 1, 0, 35, 34, 33, 32, 67, 66, 65, 64, 99, 98, 97, 96 }, - { 0, 16*8, 16*8*2, 16*8*3, 16*8*4, 16*8*5, 16*8*6, 16*8*7, - 16*8*8, 16*8*9, 16*8*10, 16*8*11, 16*8*12, 16*8*13, 16*8*14, 16*8*15 }, - 16*16*8 -}; - -/* type 1 (opengolf + racinfrc) use 6 and 8 bpp planar layouts for the 53936 */ -static const gfx_decode gfxdecodeinfo_opengolf[] = -{ - { REGION_GFX3, 0, &t1_charlayout8, 0x0000, 8 }, - { REGION_GFX4, 0, &t1_charlayout6, 0x0000, 8 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_racinfrc[] = -{ - { REGION_GFX3, 0, &t1_charlayout6, 0x0000, 8 }, - { REGION_GFX4, 0, &t1_charlayout6, 0x0000, 8 }, - { -1 } /* end of array */ -}; - -/* type 3 & 4 games use a simple 8bpp decode for the 53936 */ -static const gfx_decode gfxdecodeinfo_type34[] = -{ - { REGION_GFX3, 0, &bglayout_8bpp, 0x0000, 8 }, - { -1 } /* end of array */ -}; - -static MACHINE_DRIVER_START( konamigx ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68EC020, 24000000) - MDRV_CPU_PROGRAM_MAP(gx_base_memmap, gx_type2_map) - MDRV_CPU_VBLANK_INT(konamigx_vbinterrupt, 1) - - /* note: part is a -8, crystals are 18.4 and 32.0 MHz, and - twinbee yahhoo will not pass POST if the 68000 isn't - running at least this fast. so the higher speed is probably a HACK... */ - MDRV_CPU_ADD_TAG("sound", M68000, 9200000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(gxsndmap, 0) - MDRV_CPU_PERIODIC_INT(irq2_line_hold, TIME_IN_HZ(480)) - - MDRV_INTERLEAVE(32); - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(600)) - - MDRV_MACHINE_START(konamigx) - MDRV_MACHINE_RESET(konamigx) - MDRV_NVRAM_HANDLER(konamigx_93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(konamigx_5bpp) - MDRV_VIDEO_UPDATE(konamigx) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dragoonj ) - MDRV_IMPORT_FROM(konamigx) - MDRV_CPU_REPLACE("main", M68EC020, 26400000) // needs higher clock to stop sprite flickerings - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MDRV_VIDEO_START(dragoonj) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( le2 ) - MDRV_IMPORT_FROM(konamigx) - MDRV_VIDEO_START(le2) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( konamigx_6bpp ) - MDRV_IMPORT_FROM(konamigx) - MDRV_VIDEO_START(konamigx_6bpp) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( konamigx_6bpp_2 ) - MDRV_IMPORT_FROM(konamigx) - MDRV_VIDEO_START(konamigx_6bpp_2) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( opengolf ) - MDRV_IMPORT_FROM(konamigx) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MDRV_GFXDECODE(gfxdecodeinfo_opengolf) - MDRV_VIDEO_START(opengolf) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gx_base_memmap, gx_type1_map) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( racinfrc ) - MDRV_IMPORT_FROM(konamigx) - MDRV_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1) - MDRV_GFXDECODE(gfxdecodeinfo_racinfrc) - MDRV_VIDEO_START(racinfrc) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gx_base_memmap, gx_type1_map) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gxtype3 ) - MDRV_IMPORT_FROM(konamigx) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gx_base_memmap, gx_type3_map) - MDRV_CPU_VBLANK_INT(konamigx_hbinterrupt, 262) - - MDRV_VIDEO_START(konamigx_type3) - MDRV_PALETTE_LENGTH(16384) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_type34) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gxtype4 ) - MDRV_IMPORT_FROM(konamigx) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gx_base_memmap, gx_type4_map) - MDRV_CPU_VBLANK_INT(konamigx_hbinterrupt, 262) - - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MDRV_PALETTE_LENGTH(16384) - MDRV_GFXDECODE(gfxdecodeinfo_type34) - MDRV_VIDEO_START(konamigx_type4) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( winspike ) - MDRV_IMPORT_FROM(konamigx) - - MDRV_SCREEN_VISIBLE_AREA(38, 38+384-1, 16, 16+224-1) - MDRV_VIDEO_START(winspike) -MACHINE_DRIVER_END - -/**********************************************************************************/ -/* port maps */ - -INPUT_PORTS_START( konamigx ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* for gun games */ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, "Foo") - PORT_DIPSETTING( 0x00, "Foo") - PORT_DIPSETTING( 0x01, "Bar") - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( racinfrc ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* for gun games */ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // racin force needs this set to get past the calibration screen - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, "Foo") - PORT_DIPSETTING( 0x00, "Foo") - PORT_DIPSETTING( 0x01, "Bar") - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* no gun */ - - PORT_START /* mask default type sens delta min max */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x68) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_CODE_DEC(KEYCODE_LCONTROL) -INPUT_PORTS_END - -INPUT_PORTS_START( le2 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* for gun games */ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, "Coin Mechanism") - PORT_DIPSETTING( 0x02, "Common") - PORT_DIPSETTING( 0x00, "Independant") - PORT_DIPNAME( 0x04, 0x04, "Stage Select" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Mirror" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* for gun games */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* mask default type sens delta min max */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( gokuparo ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( puzldama ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Vs. cabinet" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPSETTING( 0x02, DEF_STR( High ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dragoonj ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Vs. cabinet" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPSETTING( 0x02, DEF_STR( High ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( type3 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPSETTING( 0x01, DEF_STR( Mono )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Screens" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPSETTING( 0x02, DEF_STR( High ) ) -INPUT_PORTS_END - - -/**********************************************************************************/ -/* BIOS and ROM maps */ - -#define GX_BIOS ROM_LOAD("300a01.34k", 0x000000, 128*1024, CRC(d5fa95f5) SHA1(c483aa98ff8ef40cdac359c19ad23fea5ecc1906) ) - -ROM_START(konamigx) - ROM_REGION( 0x800000, REGION_CPU1, 0) - GX_BIOS -ROM_END - -#define SPR_WOR_DROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPSIZE(2) | ROM_SKIP(5)) -#define SPR_5TH_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPSIZE(1) | ROM_SKIP(5)) - -#define TILE_WORD_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPDWORD | ROM_SKIP(1)) -#define TILE_BYTE_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPBYTE | ROM_SKIP(4)) - -#define TILE_WORDS2_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPDWORD | ROM_SKIP(2)) -#define TILE_BYTES2_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(4)) - -#define T1_PSAC6_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPBYTE | ROM_SKIP(2)) -#define T1_PSAC8_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPBYTE | ROM_SKIP(3)) - -#define _48_WORD_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(4)) -#define _64_WORD_ROM_LOAD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(6)) - - -/* Gokujou Parodius */ -ROM_START( gokuparo ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "321jad02.31b", 0x200002, 512*1024, CRC(c2e548c0) SHA1(48fbcc96d1f56bb3abb5098400536a18a676d934) ) - ROM_LOAD32_WORD_SWAP( "321jad04.27b", 0x200000, 512*1024, CRC(916a7951) SHA1(d6f56ff5f6c6708939767e69a3ebc7c7eddb6003) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("321_b06.9c", 0x000000, 128*1024, CRC(da810554) SHA1(f253e1aa137eecf283d8b083ef2b3b049e8366f4) ) - ROM_LOAD16_BYTE("321_b07.7c", 0x000001, 128*1024, CRC(c47634c0) SHA1(20e4105df5bbc33edd01894e78f74ed5f173576e) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "fj-jap.17h", 0x000000, 2*1024*1024, CRC(437d0057) SHA1(30c449200e0510dc664289b527bade6e10dbe57a) ) - TILE_BYTE_ROM_LOAD( "321b12.13g", 0x000004, 512*1024, CRC(5f9edfa0) SHA1(36d54c5fe498a4d0fa64757cef11c56c67518258) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "fj-jap.25g", 0x000000, 2*1024*1024, CRC(c6e2e74d) SHA1(3875a50923e46e2986dbe2573453af5c7fa726f7) ) - ROM_LOAD32_WORD( "fj-jap.28g", 0x000002, 2*1024*1024, CRC(ea9f8c48) SHA1(b5e880015887308a5f1c1c623011d9b0903e848f) ) - ROM_LOAD( "321b09.30g", 0x400000, 1*1024*1024, CRC(94add237) SHA1(9a6d0a9727e7fa02d91ece220b145074a6741a95) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "321b17.9g", 0x000000, 2*1024*1024, CRC(b3e8d5d8) SHA1(6644a414e7f0e69ded9aa1bf892566002cebae26) ) - ROM_LOAD( "321b18.7g", 0x200000, 2*1024*1024, CRC(2c561ad0) SHA1(6265054072ba1c2837dd96e0259b20bc50457160) ) -ROM_END - -/* Fantastic Journey (version) */ -ROM_START( fantjour ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "fsus31b.bin", 0x200002, 512*1024, CRC(afaf9d17) SHA1(a12214c6e634862d6507f56719b55d4a23a0ef0f) ) - ROM_LOAD32_WORD_SWAP( "fsus27b.bin", 0x200000, 512*1024, CRC(b2cfe225) SHA1(7fd43acb1dd853a7980e7fcf48971ae28175e421) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("321_b06.9c", 0x000000, 128*1024, CRC(da810554) SHA1(f253e1aa137eecf283d8b083ef2b3b049e8366f4) ) - ROM_LOAD16_BYTE("321_b07.7c", 0x000001, 128*1024, CRC(c47634c0) SHA1(20e4105df5bbc33edd01894e78f74ed5f173576e) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "fj-jap.17h", 0x000000, 2*1024*1024, CRC(437d0057) SHA1(30c449200e0510dc664289b527bade6e10dbe57a) ) - TILE_BYTE_ROM_LOAD( "321b12.13g", 0x000004, 512*1024, CRC(5f9edfa0) SHA1(36d54c5fe498a4d0fa64757cef11c56c67518258) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "fj-jap.25g", 0x000000, 2*1024*1024, CRC(c6e2e74d) SHA1(3875a50923e46e2986dbe2573453af5c7fa726f7) ) - ROM_LOAD32_WORD( "fj-jap.28g", 0x000002, 2*1024*1024, CRC(ea9f8c48) SHA1(b5e880015887308a5f1c1c623011d9b0903e848f) ) - ROM_LOAD( "321b09.30g", 0x400000, 1*1024*1024, CRC(94add237) SHA1(9a6d0a9727e7fa02d91ece220b145074a6741a95) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "321b17.9g", 0x000000, 2*1024*1024, CRC(b3e8d5d8) SHA1(6644a414e7f0e69ded9aa1bf892566002cebae26) ) - ROM_LOAD( "321b18.7g", 0x200000, 2*1024*1024, CRC(2c561ad0) SHA1(6265054072ba1c2837dd96e0259b20bc50457160) ) -ROM_END - -/* Salamander 2 */ -ROM_START( salmndr2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "521jaa02.31b", 0x200002, 512*1024, CRC(f6c3a95b) SHA1(c4ef3631eca898e5787fb2d356355da7e5d475eb) ) - ROM_LOAD32_WORD_SWAP( "521jaa03.27b", 0x200000, 512*1024, CRC(c3be5e0a) SHA1(13bbce62c4d04a657de4594cc4d258e2468a59a4) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("521-a04.9c", 0x000000, 64*1024, CRC(efddca7a) SHA1(ac6b45044b6abeb2455ec21a61322185bf1c7219) ) - ROM_LOAD16_BYTE("521-a05.7c", 0x000001, 64*1024, CRC(51a3af2c) SHA1(94d220ae619d53747bd3e762000ed59cf1b4d305) ) - - /* tiles */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD("521-a09.17h", 0x000000, 2*1024*1024, CRC(fb9e2f5e) SHA1(acb41616625d6976ad50e184787ab74e29f86039) ) - TILE_WORDS2_ROM_LOAD("521-a11.15h", 0x300000, 1*1024*1024, CRC(25e0a6e5) SHA1(592e9f183f077e9272a4f0ead441b5bfd8029816) ) - TILE_BYTES2_ROM_LOAD("521-a13.13c", 0x000004, 2*1024*1024, CRC(3ed7441b) SHA1(57e3e8035c056cf46a383d228c76a7da7def134f) ) - - /* sprites */ - ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_ERASE00 ) - _48_WORD_ROM_LOAD( "521-a08.25g", 0x000000, 2*1024*1024, CRC(f24f76bd) SHA1(823f614d436901241743c923206cb61d8bbb5c58) ) - _48_WORD_ROM_LOAD( "521-a07.28g", 0x000002, 2*1024*1024, CRC(50ef9b7a) SHA1(104eac2bce43e99d4adc208145afe7be9156628e) ) - _48_WORD_ROM_LOAD( "521-a06.30g", 0x000004, 2*1024*1024, CRC(cba5db2c) SHA1(505efdf8571ae28d8788dcafbfffcfb67e3189ce) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "521-a12.9g", 0x000000, 2*1024*1024, CRC(66614d3b) SHA1(e1e5ebe546bced6ab74b0af500acf0f3308902a4) ) - ROM_LOAD( "521-a13.7g", 0x200000, 1*1024*1024, CRC(c3322475) SHA1(1774524ff031e0c4a7f3432810e968d37f9c6331) ) -ROM_END - -/* Twinbee Yahoo! */ -ROM_START( tbyahhoo ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "426jaa02.31b", 0x200002, 512*1024, CRC(0416ad78) SHA1(a94c37a95e431c8f8cc3db66713faed406ab27c4) ) - ROM_LOAD32_WORD_SWAP( "424jaa04.27b", 0x200000, 512*1024, CRC(bcbe0e40) SHA1(715f72a172a0662e6e65a57baa1f5a18d6210389) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("424a06.9c", 0x000000, 128*1024, CRC(a4760e14) SHA1(78dbd309f3f7fa61e92c9554e594449a7d4eed5a) ) - ROM_LOAD16_BYTE("424a07.7c", 0x000001, 128*1024, CRC(fa90d7e2) SHA1(6b6dee29643309005834416bdfdb18d74f34cb1b) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "424a14.17h", 0x000000, 2*1024*1024, CRC(b1d9fce8) SHA1(143ed2f03ac10a0f18d878c0ee0509a5714e4664) ) - TILE_BYTE_ROM_LOAD( "424a12.13g", 0x000004, 512*1024, CRC(7f9cb8b1) SHA1(f5e18d70fcb572bb85f9b064995fc0ab0bb581e8) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "424a11.25g", 0x000000, 2*1024*1024, CRC(29592688) SHA1(a4b44e9153988a510915af83116e3c18dd15642f) ) - ROM_LOAD32_WORD( "424a10.28g", 0x000002, 2*1024*1024, CRC(cf24e5e3) SHA1(095bf2ae4f47c6e4768515ae5e22c982fbc660a5) ) - ROM_LOAD( "424a09.30g", 0x400000, 1*1024*1024, CRC(daa07224) SHA1(198cafa3d0ead2aa2593be066c6f372e66c11c44) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "424a17.9g", 0x000000, 2*1024*1024, CRC(e9dd9692) SHA1(c289019c8d1dd71b3cec26479c39b649de804707) ) - ROM_LOAD( "424a18.7g", 0x200000, 2*1024*1024, CRC(0f0d9f3a) SHA1(57f6b113b80f06964b7e672ad517c1654c5569c5) ) -ROM_END - -/* Daisu-Kiss */ -ROM_START( daiskiss ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "535jaa02.31b", 0x200002, 512*1024, CRC(e5b3e0e5) SHA1(94910d79299e99022a1759998304b87440694ca0) ) - ROM_LOAD32_WORD_SWAP( "535jaa03.27b", 0x200000, 512*1024, CRC(9dc10140) SHA1(0c4cc20b2c8ff5080fbd4ceb9446e6940b12cc53) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("535a08.9c", 0x000000, 128*1024, CRC(449416a7) SHA1(c79bf0d68c8639f67eb17f24f1bc10dd867a4c37) ) - ROM_LOAD16_BYTE("535a09.7c", 0x000001, 128*1024, CRC(8ec57ab4) SHA1(bd8e12c796d42d2cb27c1e47dc6253bfb74a2887) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "535a19.17h", 0x000000, 2*1024*1024, CRC(fa1c59d1) SHA1(7344afab2b8101f979c35ff9ec8d9c18475bb821) ) - TILE_BYTE_ROM_LOAD( "535a18.13g", 0x000004, 512*1024, CRC(d02e5103) SHA1(43c63a718a034636bad29d2def054d8b48f071e3) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "535a17.25g", 0x000000, 1*1024*1024, CRC(b12070e2) SHA1(51a763bf0e2c1d5c2b9983fcd4304d74c7fe6dd1) ) - ROM_LOAD32_WORD( "535a13.28g", 0x000002, 1*1024*1024, CRC(10cf9d05) SHA1(6c6e51082ce340643d381863fec9b220e3d0ac53) ) - ROM_LOAD( "535a11.30g", 0x400000, 512*1024, CRC(2b176b0f) SHA1(ecf4114d95a308be8f96a5c602c0f5ed5ffc8f29) ) - - /* sound data */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "535a22.9g", 0x000000, 2*1024*1024, CRC(7ee59acb) SHA1(782bf15f205e9fe7bd069f6445eb8187837dee32) ) -ROM_END - -/* Sexy Parodius */ -ROM_START( sexyparo ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "533jaa02.31b", 0x200002, 512*1024, CRC(b8030abc) SHA1(ee0add1513f620e35583a6ec1e773f53ea27e455) ) - ROM_LOAD32_WORD_SWAP( "533jaa03.27b", 0x200000, 512*1024, CRC(4a95e80d) SHA1(ff0aef613745c07b5891e66b6b1759e048599214) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("533a08.9c", 0x000000, 128*1024, CRC(06d14cff) SHA1(21c01a06eabfacc4ac1d83bfad389f3dfa41b95f) ) - ROM_LOAD16_BYTE("533a09.7c", 0x000001, 128*1024, CRC(a93c6f0b) SHA1(bee1abab985c7163212cad1a4bc0a427804dfed3) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "533a19.17h", 0x000000, 2*1024*1024, CRC(3ec1843e) SHA1(5d2c37f1eb299c846daa63f35ccd5334a516a1f5) ) - TILE_BYTE_ROM_LOAD( "533-ja.13g", 0x000004, 512*1024, CRC(d3e0d058) SHA1(c50bdb3493501bfbbe092d01f5d4c38bfa3412f8) ) - - /* sprites */ - ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "533a17.25g", 0x000000, 2*1024*1024, CRC(9947af57) SHA1(a8f67cb49cf55e8402de352bb530c7c90c643144) ) - ROM_LOAD32_WORD( "533a13.28g", 0x000002, 2*1024*1024, CRC(58f1fc38) SHA1(9662b4fb036ffe90f294ee36fa52a0c1e1dbd116) ) - ROM_LOAD( "533a11.30g", 0x400000, 2*1024*1024, CRC(983105e1) SHA1(c688f6f73fab16107f01523081558a2e02a5311c) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "533a22.9g", 0x000000, 2*1024*1024, CRC(97233814) SHA1(dba20a81517796b7baf7c82551bd7f1c1a8ecd7e) ) - ROM_LOAD( "533a23.7g", 0x200000, 2*1024*1024, CRC(1bb7552b) SHA1(3c6f96b4ab97737c3634c08b94dd304d5517d88d) ) -ROM_END - -/* Run and Gun 2 */ -ROM_START( rungun2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "505uaa02.31b", 0x200002, 512*1024, CRC(cfca23f7) SHA1(dfea871f0aaf6b2db6d924ddfd4174e7a14333e8)) - ROM_LOAD32_WORD_SWAP( "505uaa03.27b", 0x200000, 512*1024, CRC(ad7f9ded) SHA1(824448daeb6109b822667e54baa1c73484642ac9)) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "505a04.31r", 0x400000, 1024*1024, CRC(11a73f01) SHA1(0738f347f1b639130d512f31034888d2063767c0) ) - ROM_LOAD32_WORD_SWAP( "505a05.29r", 0x400002, 1024*1024, CRC(5da5d695) SHA1(02bfbfa4ba0213a23819828a9be02923740dccd6) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("505a06.9m", 0x000000, 128*1024, CRC(920013f1) SHA1(6bd7f2bdeaa777412d12eeef4ba6c7f952805739) ) - ROM_LOAD16_BYTE("505a07.7m", 0x000001, 128*1024, CRC(5641c603) SHA1(1af1f92032e7f870e1668e8d720742fb53c4d0e2) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "505a21.11r", 0x000000, 1024*1024, CRC(03fda175) SHA1(4fdf7cfaa0d4024a2c40bba1f229c41e0627b8c8) ) - ROM_LOAD16_BYTE( "505a20.11m", 0x000001, 1024*1024, CRC(a6a300fb) SHA1(290d97c6ec36e3cab8e6fcd5310030e00fb0ce07) ) - - /* sprites */ - ROM_REGION( 0x1800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "505a19.14r", 0x0000000, 2*1024*1024, CRC(ffde4f17) SHA1(df93853f7bd3c775a15836b0ca9042f75eb65630) ) - ROM_LOAD32_WORD( "505a15.18r", 0x0000002, 2*1024*1024, CRC(d9ab1e6c) SHA1(748a61d939bd335c1b50f440e819303552b3d5a1) ) - ROM_LOAD32_WORD( "505a18.18m", 0x0400000, 2*1024*1024, CRC(c12bacfe) SHA1(5b5f4dd9a51c7a305dd4de1354cd1df2ce75c932) ) - ROM_LOAD32_WORD( "505a14.14m", 0x0400002, 2*1024*1024, CRC(356a75b0) SHA1(5f8b7a9d06d4207f19ed0f7c89513226488afde1) ) - ROM_LOAD32_WORD( "505a13.21r", 0x0800000, 2*1024*1024, CRC(e60c5191) SHA1(02a8af81682838800489aa1123a453045d70acd8) ) - ROM_LOAD32_WORD( "505a17.16r", 0x0800002, 2*1024*1024, CRC(8176f2f5) SHA1(d7944314b35bcd5301bbfba8a5b1ed6b35b9b888) ) - ROM_LOAD32_WORD( "505a12.21m", 0x0c00000, 2*1024*1024, CRC(421d5034) SHA1(f7a85b7e41f3ddf9ddbdc6f8b6d3dbf8ba40d61b) ) - ROM_LOAD32_WORD( "505a16.16m", 0x0c00002, 2*1024*1024, CRC(ca9c2193) SHA1(cc3fb558b834e0b7914879ab47c3750170d257f4) ) - ROM_LOAD32_WORD( "505a11.23r", 0x1000000, 2*1024*1024, CRC(75c13df0) SHA1(6680f75a67ca510fac29b65bce32fef64e844695) ) - ROM_LOAD32_WORD( "505a10.23m", 0x1000002, 2*1024*1024, CRC(fc315ee0) SHA1(4dab661e0bd8e5386e52d514a1511ceba6e5b7bd) ) - ROM_LOAD32_WORD( "505a09.25r", 0x1400000, 2*1024*1024, CRC(3e1d5a15) SHA1(ec4d46c2f2cc57e6193865357ffb3d62a9eecd4f) ) - ROM_LOAD32_WORD( "505a08.25m", 0x1400002, 2*1024*1024, CRC(442ed3ec) SHA1(d44e1c4e9f8c63a8f754f8d20064cec15ae0b6d6) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD("505a24.22h", 0x000000, 2*1024*1024, CRC(70e906da) SHA1(4b1a412a71910633f48c6a0b9fd6949dcc82e365) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "505a23.7r", 0x000000, 2*1024*1024, CRC(67f03445) SHA1(9b5c1d1bb7b0ee275862d10effd9daed49568af4) ) - ROM_LOAD( "505a22.9r", 0x200000, 2*1024*1024, CRC(c2b67a9d) SHA1(9ff091972d7fad50bf0df2b3d8b5ee989e3df27f) ) -ROM_END - -/* Slam Dunk 2 */ -ROM_START( slamdnk2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "505jaa02.31m", 0x200002, 512*1024, CRC(9f72d48e) SHA1(6dd0520d0f0312e46f21ad4f6c41e47f3b5cb16b) ) - ROM_LOAD32_WORD_SWAP( "505jaa03.29m", 0x200000, 512*1024, CRC(52513794) SHA1(8a8fadb0eb582db53163620982dd53d1e5f8ca4c) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "505a04.31r", 0x400000, 1024*1024, CRC(11a73f01) SHA1(0738f347f1b639130d512f31034888d2063767c0) ) - ROM_LOAD32_WORD_SWAP( "505a05.29r", 0x400002, 1024*1024, CRC(5da5d695) SHA1(02bfbfa4ba0213a23819828a9be02923740dccd6) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("505a06.9m", 0x000000, 128*1024, CRC(920013f1) SHA1(6bd7f2bdeaa777412d12eeef4ba6c7f952805739) ) - ROM_LOAD16_BYTE("505a07.7m", 0x000001, 128*1024, CRC(5641c603) SHA1(1af1f92032e7f870e1668e8d720742fb53c4d0e2) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "505a21.11r", 0x000000, 1024*1024, CRC(03fda175) SHA1(4fdf7cfaa0d4024a2c40bba1f229c41e0627b8c8) ) - ROM_LOAD16_BYTE( "505a20.11m", 0x000001, 1024*1024, CRC(a6a300fb) SHA1(290d97c6ec36e3cab8e6fcd5310030e00fb0ce07) ) - - /* sprites */ - ROM_REGION( 0x1800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "505a19.14r", 0x0000000, 2*1024*1024, CRC(ffde4f17) SHA1(df93853f7bd3c775a15836b0ca9042f75eb65630) ) - ROM_LOAD32_WORD( "505a15.18r", 0x0000002, 2*1024*1024, CRC(d9ab1e6c) SHA1(748a61d939bd335c1b50f440e819303552b3d5a1) ) - ROM_LOAD32_WORD( "505a18.18m", 0x0400000, 2*1024*1024, CRC(c12bacfe) SHA1(5b5f4dd9a51c7a305dd4de1354cd1df2ce75c932) ) - ROM_LOAD32_WORD( "505a14.14m", 0x0400002, 2*1024*1024, CRC(356a75b0) SHA1(5f8b7a9d06d4207f19ed0f7c89513226488afde1) ) - ROM_LOAD32_WORD( "505a13.21r", 0x0800000, 2*1024*1024, CRC(e60c5191) SHA1(02a8af81682838800489aa1123a453045d70acd8) ) - ROM_LOAD32_WORD( "505a17.16r", 0x0800002, 2*1024*1024, CRC(8176f2f5) SHA1(d7944314b35bcd5301bbfba8a5b1ed6b35b9b888) ) - ROM_LOAD32_WORD( "505a12.21m", 0x0c00000, 2*1024*1024, CRC(421d5034) SHA1(f7a85b7e41f3ddf9ddbdc6f8b6d3dbf8ba40d61b) ) - ROM_LOAD32_WORD( "505a16.16m", 0x0c00002, 2*1024*1024, CRC(ca9c2193) SHA1(cc3fb558b834e0b7914879ab47c3750170d257f4) ) - ROM_LOAD32_WORD( "505a11.23r", 0x1000000, 2*1024*1024, CRC(75c13df0) SHA1(6680f75a67ca510fac29b65bce32fef64e844695) ) - ROM_LOAD32_WORD( "505a10.23m", 0x1000002, 2*1024*1024, CRC(fc315ee0) SHA1(4dab661e0bd8e5386e52d514a1511ceba6e5b7bd) ) - ROM_LOAD32_WORD( "505a09.25r", 0x1400000, 2*1024*1024, CRC(3e1d5a15) SHA1(ec4d46c2f2cc57e6193865357ffb3d62a9eecd4f) ) - ROM_LOAD32_WORD( "505a08.25m", 0x1400002, 2*1024*1024, CRC(442ed3ec) SHA1(d44e1c4e9f8c63a8f754f8d20064cec15ae0b6d6) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD("505a24.22h", 0x000000, 2*1024*1024, CRC(70e906da) SHA1(4b1a412a71910633f48c6a0b9fd6949dcc82e365) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "505a23.7r", 0x000000, 2*1024*1024, CRC(67f03445) SHA1(9b5c1d1bb7b0ee275862d10effd9daed49568af4) ) - ROM_LOAD( "505a22.9r", 0x200000, 2*1024*1024, CRC(c2b67a9d) SHA1(9ff091972d7fad50bf0df2b3d8b5ee989e3df27f) ) -ROM_END - -/* Rushing Heroes */ -ROM_START( rushhero ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "605b02.31m", 0x200002, 512*1024, CRC(94c3d835) SHA1(f48d34987fa6575a2c41d3ca3359e9e2cbc817e0) ) - ROM_LOAD32_WORD_SWAP( "605b03.29m", 0x200000, 512*1024, CRC(c5b8d31d) SHA1(6c5b359e1fcf511c50d6a876946631fc38a6dade) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "605a04.31r", 0x400000, 1024*1024, CRC(f6788154) SHA1(093c145d5348b4f10193acc258f5539bd59138a1)) - ROM_LOAD32_WORD_SWAP( "605a05.29r", 0x400002, 1024*1024, CRC(9bca4297) SHA1(c20be1ffcee8bd56f69d4fcc19d0035b3f74b8f2)) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("605a06.9m", 0x000000, 128*1024, CRC(9ca03dce) SHA1(008106e864d8390d7ae8645a2fe06d0eaaa746e0)) - ROM_LOAD16_BYTE("605a07.7m", 0x000001, 128*1024, CRC(3116a8b0) SHA1(f0899d7027464d9aad45ffa6a464288a51a80dc1)) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "605a21.11r", 0x000000, 1024*1024, CRC(0e5add29) SHA1(f80d81ff8110825ba19ebc3cf50480b8cf275571)) - ROM_LOAD16_BYTE( "605a20.11m", 0x000001, 1024*1024, CRC(a8fb4288) SHA1(b0ee6c2add5a8063f771ac8bbdfd78c0382a5036)) - - /* sprites */ - ROM_REGION( 0x3000000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "605a19.14r", 0x0000000, 4*1024*1024, CRC(293427d0) SHA1(c31f93797bda09ea7e990100a5556eb0fde64968) ) - ROM_LOAD32_WORD( "605a15.18r", 0x0000002, 4*1024*1024, CRC(19e6e356) SHA1(b2568e14d6fb9a9792f95aafcf694dbf00c0d2c8) ) - ROM_LOAD32_WORD( "605a18.18m", 0x0800000, 4*1024*1024, CRC(b5115d76) SHA1(48c3119afb649c58d4df36806fe5530ddd379782) ) - ROM_LOAD32_WORD( "605a14.14m", 0x0800002, 4*1024*1024, CRC(4d4dbecb) SHA1(7c3cb2739d6b729d855d652b1991c7af6cd79d1c) ) - ROM_LOAD32_WORD( "605a13.21r", 0x1000000, 4*1024*1024, CRC(08137923) SHA1(c1af6b55c1c08e16384d2660b2210ccf3b955be9) ) - ROM_LOAD32_WORD( "605a17.16r", 0x1000002, 4*1024*1024, CRC(42e6dc6f) SHA1(8035b7160267a988a1aa2690423c68b6f1975f1a) ) - ROM_LOAD32_WORD( "605a12.21m", 0x1800000, 4*1024*1024, CRC(194ffad0) SHA1(1c56f4e89bfe72b435793b907e7ca3e62ecddf4b) ) - ROM_LOAD32_WORD( "605a16.16m", 0x1800002, 4*1024*1024, CRC(aab542ca) SHA1(9728b028f48768236f47a7a9bddb27944297b583) ) - ROM_LOAD32_WORD( "605a11.23r", 0x2000000, 4*1024*1024, CRC(bc61339c) SHA1(77a5737501bf8ffd7ae4192a6e5924c479eb6655) ) - ROM_LOAD32_WORD( "605a10.23m", 0x2000002, 4*1024*1024, CRC(4f47d434) SHA1(c4503993c738e1b8df6f045f5a82504363682db7) ) - ROM_LOAD32_WORD( "605a09.25r", 0x2800000, 4*1024*1024, CRC(624fd486) SHA1(edd81d5487f8239ffa89b931430cf41f06a17cf6) ) - ROM_LOAD32_WORD( "605a08.25m", 0x2800002, 4*1024*1024, CRC(ea80ddfd) SHA1(4be61af09bcc80c97505196a6f43797753d14f85) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD("605a24.22h", 0x000000, 1024*1024, CRC(e5ba1bb7) SHA1(d677e03b418a8bde7a4e4932fd452924768e7d72)) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "605a23.7r", 0x000000, 4*1024*1024, CRC(992c4751) SHA1(18ecfc21138f9dc62f0658750808bbef649510f7)) -ROM_END - -/* Taisen Tokkae-dama */ -ROM_START( tokkae ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "615jaa02.31b", 0x200002, 512*1024, CRC(f66d6dbf) SHA1(16c4a84e37475d3773b505f33f8a0ee8168f282f) ) - ROM_LOAD32_WORD_SWAP( "615jaa03.27b", 0x200000, 512*1024, CRC(b7760e2b) SHA1(7903d8c2d32ef7d324e965e52544a9a41abf62fd) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("615a08.9c", 0x000000, 128*1024, CRC(a5340de4) SHA1(96d74624f44423e57fe8fcecadecdd76d91c27bc) ) - ROM_LOAD16_BYTE("615a09.7c", 0x000001, 128*1024, CRC(c61f954c) SHA1(5242a2872db1db9ab4edd9951c2ac2d872f06dc7) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "615a19.17h", 0x000000, 1*1024*1024, CRC(07749e1e) SHA1(79a5f979b1dc7fa92ae37af03447edf4885ecdf8) ) - TILE_BYTES2_ROM_LOAD( "615a20.13c", 0x000004, 512*1024, CRC(9911b5a1) SHA1(7dc9348fd23331ca7614db27dc5f280610f87a20) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "615a17.25g", 0x000000, 2*1024*1024, CRC(b864654b) SHA1(bbd74c992ba3c3c629520e68687d7c8f3c26d0b9) ) - ROM_LOAD32_WORD( "615a13.28g", 0x000002, 2*1024*1024, CRC(4e8afa1a) SHA1(d980104ddf9670e689236f381db3345471aff6fd) ) - ROM_LOAD32_WORD( "615a16.18h", 0x400000, 2*1024*1024, CRC(dfa0f0fe) SHA1(4f68767f8329f6348055a472d923557e7dec3154) ) - ROM_LOAD32_WORD( "615a12.27g", 0x400002, 2*1024*1024, CRC(fbc563fd) SHA1(19a6544297e0eade09e69741b9e3d8b32c7e2794) ) - - ROM_LOAD( "615a11.30g", 0x800000, 2*1024*1024, CRC(f25946e4) SHA1(e7744cdbeccc7325fdb31e134fed71d4cf8f9b0a) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "615a22.9g", 0x000000, 2*1024*1024, CRC(ea7e47dd) SHA1(5bf5bad9427b083757c400eaf58c63a6267c1caf) ) - ROM_LOAD( "615a23.7g", 0x200000, 2*1024*1024, CRC(22d71f36) SHA1(3f24bb4cd8e1d693b42219e05960ad0c756b08cb) ) -ROM_END - -/* Tokimeki Memorial Taisen Puzzle-dama */ -ROM_START( tkmmpzdm ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "515jab02.31b", 0x200002, 512*1024, CRC(60d4d577) SHA1(5320ce2e004f01ca73e2f2048a622f14ab7a053d) ) - ROM_LOAD32_WORD_SWAP( "515jab03.27b", 0x200000, 512*1024, CRC(c383413d) SHA1(1227e4c8bfdb5149896da81efa0109a55ae62708) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("515a04.9c", 0x000000, 128*1024, CRC(a9b7bb45) SHA1(ad11a7b5c24a03658ff4309dbd8c7334f4adf7b4) ) - ROM_LOAD16_BYTE("515a05.7c", 0x000001, 128*1024, CRC(dea4ca2f) SHA1(5d11469a93293381228233baad6896e098994d9b) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "515a11.17h", 0x000000, 1024*1024, CRC(8689852d) SHA1(42ba16a9dfba47132fe07c6b1d044c5b32753220) ) - TILE_BYTES2_ROM_LOAD( "515a12.13c", 0x000004, 512*1024, CRC(6936f94a) SHA1(e2c7fc327638ee39eef6109c4f164eaf98972f00) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "515a10.25g", 0x000000, 2*1024*1024, CRC(e6e7ab7e) SHA1(3f7ddab4b814673264b542d2a8761c56f82f2180) ) - ROM_LOAD32_WORD( "515a08.28g", 0x000002, 2*1024*1024, CRC(5613daea) SHA1(43480c8104582cc27d8ab6920ec113e660de5ae7) ) - ROM_LOAD32_WORD( "515a09.18h", 0x400000, 2*1024*1024, CRC(28ffdb48) SHA1(8511def7bb151f912755c2bbcb0cae1a2e52f405) ) - ROM_LOAD32_WORD( "515a07.27g", 0x400002, 2*1024*1024, CRC(246e6cb1) SHA1(a320e0820895717c765d07f80cf7983b502af8f0) ) - ROM_LOAD( "515a06.30g", 0x800000, 2*1024*1024, CRC(13b7b953) SHA1(4393c5b3515f3ded9db3ac5d59308f99f40f2b76) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "515a13.9g", 0x000000, 2*1024*1024, CRC(4b066b00) SHA1(874dd49847b10e6d9c39decb81557534baa36d79) ) - ROM_LOAD( "515a14.7g", 0x200000, 2*1024*1024, CRC(128cc944) SHA1(b0cd2ec1b9a2ac936d57b6d6c2a70f9c13dc97a5) ) -ROM_END - -/* Winning Spike - Version EAA (Euro) */ -ROM_START( winspike ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "705eaa02.31b", 0x200002, 512*1024, CRC(522d1bbd) SHA1(08280a90c64adacfe4d1f0abc939bbf3f8265aeb) ) - ROM_LOAD32_WORD_SWAP( "705eaa03.27b", 0x200000, 512*1024, CRC(778de17b) SHA1(6ccf1169542259c05d16cff706f782837eeafb46) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("705a08.9c", 0x000000, 128*1024, CRC(0d531639) SHA1(14a72925f75528e7b4d6b701b2b51f4557f031f0) ) - ROM_LOAD16_BYTE("705a09.7c", 0x000001, 128*1024, CRC(24e58845) SHA1(a01caced5bad9d98a3f33d72ca5eb9096c45e4ba) ) - - /* tiles: length of 1 meg each is TRUSTED by the internal checksum code */ - /* do NOT change these to the 4 meg dumps again, those are WRONG!!!!!!! */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "705a19.17h", 0x000000, 0x100000, CRC(bab84b30) SHA1(8522a0dc5e37524f51d632e9d975e949a14c0dc3) ) - ROM_LOAD16_BYTE( "705a18.22h", 0x000001, 0x100000, CRC(eb97fb5f) SHA1(13de0ad060fd6f1312fa10edde1fef6481e8df64) ) - - /* sprites */ - ROM_REGION( 0x1000000, REGION_GFX2, ROMREGION_ERASE00 ) - _64_WORD_ROM_LOAD( "705a10.33g", 0x000000, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) - _64_WORD_ROM_LOAD( "705a11.30g", 0x000002, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) - _64_WORD_ROM_LOAD( "705a13.28g", 0x000004, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) - _64_WORD_ROM_LOAD( "705a17.25g", 0x000006, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "705a22.9g", 0x000000, 4*1024*1024, CRC(1a9246f6) SHA1(a40ff43310d035f7b88c4e397a4ee75151578c17) ) -ROM_END - -/* Winning Spike - Version JAA (Japan) */ -ROM_START( winspikj ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "705jaa02.31b", 0x200002, 512*1024, CRC(85f11b03) SHA1(ab597d16df654179050cc029179aaf946f0426c5) ) - ROM_LOAD32_WORD_SWAP( "705jaa03.27b", 0x200000, 512*1024, CRC(1d5e3922) SHA1(b5e1fd1ea4f872159522e64c2725bf8441a58ef9) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("705a08.9c", 0x000000, 128*1024, CRC(0d531639) SHA1(14a72925f75528e7b4d6b701b2b51f4557f031f0) ) - ROM_LOAD16_BYTE("705a09.7c", 0x000001, 128*1024, CRC(24e58845) SHA1(a01caced5bad9d98a3f33d72ca5eb9096c45e4ba) ) - - /* tiles: length of 1 meg each is TRUSTED by the internal checksum code */ - /* do NOT change these to the 4 meg dumps again, those are WRONG!!!!!!! */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "705a19.17h", 0x000000, 0x100000, CRC(bab84b30) SHA1(8522a0dc5e37524f51d632e9d975e949a14c0dc3) ) - ROM_LOAD16_BYTE( "705a18.22h", 0x000001, 0x100000, CRC(eb97fb5f) SHA1(13de0ad060fd6f1312fa10edde1fef6481e8df64) ) - - /* sprites */ - ROM_REGION( 0x1000000, REGION_GFX2, ROMREGION_ERASE00 ) - _64_WORD_ROM_LOAD( "705a10.33g", 0x000000, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) - _64_WORD_ROM_LOAD( "705a11.30g", 0x000002, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) - _64_WORD_ROM_LOAD( "705a13.28g", 0x000004, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) - _64_WORD_ROM_LOAD( "705a17.25g", 0x000006, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "705a22.9g", 0x000000, 4*1024*1024, CRC(1a9246f6) SHA1(a40ff43310d035f7b88c4e397a4ee75151578c17) ) -ROM_END - -/* Taisen Puzzle-dama */ -ROM_START( puzldama ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "315jaa02.31b", 0x200002, 512*1024, CRC(e0a35c7d) SHA1(6f35dc0c43fa331fc71968c67f111fb73e5add2f) ) - ROM_LOAD32_WORD_SWAP( "315jaa04.27b", 0x200000, 512*1024, CRC(abe4f0e7) SHA1(ece76088c61eddcad2efb554937d24d642d38be6) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("315a06.9c", 0x000000, 128*1024, CRC(06580a9f) SHA1(75e13aa13e3c1060cdd630c101d6644b3904317f) ) - ROM_LOAD16_BYTE("315a07.7c", 0x000001, 128*1024, CRC(431c58f3) SHA1(4888e305875d56cca5e1d792bdf27e57b3e42b03) ) - - /* tiles */ - ROM_REGION( 0xa00000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "315a14.17h", 0x000000, 512*1024, CRC(0ab731e0) SHA1(1f7d6ce40e689e1dddfee656bb46bd044012c2d6) ) - TILE_BYTE_ROM_LOAD( "315a12.13g", 0x000004, 2*1024*1024, CRC(3047b8d2) SHA1(99fa4d20ee5aae89b9093ceb581f187bc9acc0ae) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "315a11.25g", 0x000000, 2*1024*1024, CRC(b8a99c29) SHA1(60086f663aa6cbfc3fb378caeb2509c65637564e) ) - ROM_LOAD32_WORD( "315a10.28g", 0x000002, 2*1024*1024, CRC(77d175dc) SHA1(73506df30db5ce38a9a21a1dce3e8b4cc1dfa7be) ) - ROM_LOAD( "315a09.30g", 0x400000, 1*1024*1024, CRC(82580329) SHA1(99749a67f1843dfd0fe93cc6bbcbc126b7bb7fb4) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "315a17.9g", 0x000000, 2*1024*1024, CRC(ea763d61) SHA1(2a7dcb2a2a23c9fea62fb82ffc18949bf15b9f6f) ) - ROM_LOAD( "315a18.7g", 0x200000, 2*1024*1024, CRC(6e416cee) SHA1(145a766ad2fa2b692692053dd36e0caf51d67a56) ) -ROM_END - -/* Dragoon Might */ -ROM_START( dragoonj ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "417jaa02.31b", 0x200002, 512*1024, CRC(533cbbd5) SHA1(4b7a0345ce0e503c647c7cde6f284ad0ee10f0ff) ) - ROM_LOAD32_WORD_SWAP( "417jaa03.27b", 0x200000, 512*1024, CRC(8e1f883f) SHA1(e9f25c0fae7491c55812fda336436a2884c4d417) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "417a04.26c", 0x400002, 1024*1024, CRC(dc574747) SHA1(43cbb6a08c27bb96bb25568c3b636c44fff3e08e) ) - ROM_LOAD32_WORD_SWAP( "417a05.23c", 0x400000, 1024*1024, CRC(2ee2c587) SHA1(a1b2b288c375a3406d4b12e66c973484c03fe26e) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("417a06.9c", 0x000000, 128*1024, CRC(8addbbee) SHA1(fdb38fab1fd65b7362578b108bf6128e926b5f13) ) - ROM_LOAD16_BYTE("417a07.7c", 0x000001, 128*1024, CRC(c1fd7584) SHA1(1b204165ef07b6b53f47adc16eed69d11dab53b2) ) - - /* tiles */ - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "417a16.17h", 0x000000, 2*1024*1024, CRC(88b2213b) SHA1(ac4ac57618cf98d7486b147f5494e6943bff1a4d) ) - - /* sprites */ - ROM_REGION( 0x1000000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "417a15.25g", 0x000000, 2*1024*1024, CRC(83bccd01) SHA1(c0e65c43115164c3f64ac14a449c65c4e3e3c4cf) ) - ROM_LOAD32_WORD( "417a11.28g", 0x000002, 2*1024*1024, CRC(624a7c4c) SHA1(5fda37cd02b4dcb328b80b29041214c685c77a78) ) - ROM_LOAD32_WORD( "417a14.18h", 0x400000, 2*1024*1024, CRC(fbf551f1) SHA1(871c5804aba9845aa04596db51def3ba3b8bae30) ) - ROM_LOAD32_WORD( "417a10.27g", 0x400002, 2*1024*1024, CRC(18fde49f) SHA1(f85b2981172be2cddc5d691bb803f0133a36cb1a) ) - ROM_LOAD32_WORD( "417a13.20h", 0x800000, 2*1024*1024, CRC(d2e3959d) SHA1(efe516e6b84c67c0a154726a0f7f7054ee866738) ) - ROM_LOAD32_WORD( "417a09.30g", 0x800002, 2*1024*1024, CRC(b5653e24) SHA1(ffa44d6b65feef298fa4dcc064ebd173c7cc22aa) ) - ROM_LOAD32_WORD( "417a12.23h", 0xc00000, 2*1024*1024, CRC(25496115) SHA1(e53164f8ad95187011059c465a67fff1d18ba888) ) - ROM_LOAD32_WORD( "417a08.33g", 0xc00002, 2*1024*1024, CRC(801e9d93) SHA1(9364d802b4ca03e652b25304c8298be8de8936b4) ) - - /* sound data */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "417a17.9g", 0x000000, 2*1024*1024, CRC(88d47dfd) SHA1(b5d6dd7ee9ac0c427dc3e714a97945c954260913) ) -ROM_END - -/* Dragoon Might (Asia) */ -ROM_START( dragoona ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "417aab02.31b", 0x200002, 512*1024, CRC(0421c19c) SHA1(7b79685047df996f6eda6d9bd6327d7a1cf40dd6) ) - ROM_LOAD32_WORD_SWAP( "417aab03.27b", 0x200000, 512*1024, CRC(813dd8d5) SHA1(fb07e4836662d179902b751fefcf19f004a4f009) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "417a04.26c", 0x400002, 1024*1024, CRC(dc574747) SHA1(43cbb6a08c27bb96bb25568c3b636c44fff3e08e) ) - ROM_LOAD32_WORD_SWAP( "417a05.23c", 0x400000, 1024*1024, CRC(2ee2c587) SHA1(a1b2b288c375a3406d4b12e66c973484c03fe26e) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("417a06.9c", 0x000000, 128*1024, CRC(8addbbee) SHA1(fdb38fab1fd65b7362578b108bf6128e926b5f13) ) - ROM_LOAD16_BYTE("417a07.7c", 0x000001, 128*1024, CRC(c1fd7584) SHA1(1b204165ef07b6b53f47adc16eed69d11dab53b2) ) - - /* tiles */ - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "417a16.17h", 0x000000, 2*1024*1024, CRC(88b2213b) SHA1(ac4ac57618cf98d7486b147f5494e6943bff1a4d) ) - - /* sprites */ - ROM_REGION( 0x1000000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "417a15.25g", 0x000000, 2*1024*1024, CRC(83bccd01) SHA1(c0e65c43115164c3f64ac14a449c65c4e3e3c4cf) ) - ROM_LOAD32_WORD( "417a11.28g", 0x000002, 2*1024*1024, CRC(624a7c4c) SHA1(5fda37cd02b4dcb328b80b29041214c685c77a78) ) - ROM_LOAD32_WORD( "417a14.18h", 0x400000, 2*1024*1024, CRC(fbf551f1) SHA1(871c5804aba9845aa04596db51def3ba3b8bae30) ) - ROM_LOAD32_WORD( "417a10.27g", 0x400002, 2*1024*1024, CRC(18fde49f) SHA1(f85b2981172be2cddc5d691bb803f0133a36cb1a) ) - ROM_LOAD32_WORD( "417a13.20h", 0x800000, 2*1024*1024, CRC(d2e3959d) SHA1(efe516e6b84c67c0a154726a0f7f7054ee866738) ) - ROM_LOAD32_WORD( "417a09.30g", 0x800002, 2*1024*1024, CRC(b5653e24) SHA1(ffa44d6b65feef298fa4dcc064ebd173c7cc22aa) ) - ROM_LOAD32_WORD( "417a12.23h", 0xc00000, 2*1024*1024, CRC(25496115) SHA1(e53164f8ad95187011059c465a67fff1d18ba888) ) - ROM_LOAD32_WORD( "417a08.33g", 0xc00002, 2*1024*1024, CRC(801e9d93) SHA1(9364d802b4ca03e652b25304c8298be8de8936b4) ) - - /* sound data */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "417a17.9g", 0x000000, 2*1024*1024, CRC(88d47dfd) SHA1(b5d6dd7ee9ac0c427dc3e714a97945c954260913) ) -ROM_END - -/* Soccer Superstars (Europe ver EAA)*/ -ROM_START( soccerss ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "427ea_c02.28m", 0x200000, 512*1024, CRC(1817b218) SHA1(d69c70f0d8f1cbf385046c755a9533c01fe1eb4a) ) - ROM_LOAD32_WORD_SWAP( "427ea_c03.30m", 0x200002, 512*1024, CRC(8a17f509) SHA1(c3944b766499f2b6f217357159a02e54e44060c2) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) ) - ROM_LOAD32_WORD_SWAP( "427a05.30r", 0x400002, 0x080000, CRC(5372f0a5) SHA1(36e8d0a73918cbd018c1865d1a05445daba8997c) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("427a07.6m", 0x000000, 128*1024, CRC(8dbaf4c7) SHA1(cb69bf94090a4871b35e7ba1f58e3225077b82cd) ) - ROM_LOAD16_BYTE("427a06.9m", 0x000001, 128*1024, CRC(979df65d) SHA1(7499e9a27aa562692bd3a296789696492a6254bc) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "427a15.11r", 0x000000, 0x100000, CRC(33ce2b8e) SHA1(b0936386cdc7c41f33b1d7b4f5ce25fe618d1286) ) - TILE_BYTES2_ROM_LOAD( "427a14.143", 0x000004, 0x080000, CRC(7575a0ed) SHA1(92fda2747ac090f93e60cff8478af6721b949dc2) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "427a08.140", 0x000000, 2*1024*1024, CRC(221250af) SHA1(fd24e7f0e3024df5aa08506523953c5e35d2267b) ) - ROM_LOAD32_WORD( "427a09.137", 0x000002, 2*1024*1024, CRC(56bdd480) SHA1(01d164aedc77f71f6310cfd739c00b33289a2e7e) ) - ROM_LOAD32_WORD( "427a10.25r", 0x400000, 2*1024*1024, CRC(6b3ccb41) SHA1(b246ef350a430e60f0afd1b80ff48139c325e926) ) - ROM_LOAD32_WORD( "427a11.23r", 0x400002, 2*1024*1024, CRC(c1ca74c1) SHA1(b7286df8e59f8f1939ebf17aaf9345a857b0b100) ) - ROM_LOAD32_WORD( "427a12.21r", 0x800000, 2*1024*1024, CRC(97d6fd38) SHA1(8d2895850cafdea95db08c84e7eeea90a1921515) ) - ROM_LOAD32_WORD( "427a13.18r", 0x800002, 2*1024*1024, CRC(815a9b87) SHA1(7d9d5932fff7dd7aa4cbccf0c8d3784dc8042e70) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_LOAD( "427a18.145", 0x000000, 0x100000, CRC(bb6e6ec6) SHA1(aa1365a4318866d9e7e74461a6e6c113f83b6771) ) - - /* PSAC2 map data */ - ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_LOAD( "427a17.24c", 0x000000, 0x080000, CRC(fb6eb01f) SHA1(28cdb30ff70ee5fc7624e18fe048dd85dfa49ace) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "427a16.9r", 0x000000, 2*1024*1024, CRC(39547265) SHA1(c0efd68c0c1ea59141045150842f36d43e1f01d8) ) -ROM_END - -/* Soccer Superstars (Japan ver JAA)*/ -ROM_START( soccersj ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "427jaa02.28m", 0x200000, 512*1024, CRC(210f9ba7) SHA1(766fc821d1c7aaf9e306c6e2379d85e7aa50738c) ) - ROM_LOAD32_WORD_SWAP( "427jaa03.30m", 0x200002, 512*1024, CRC(f76add04) SHA1(755dff41ce3b0488ed8f9f5feebfe95a22b70d16) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) ) - ROM_LOAD32_WORD_SWAP( "427a05.30r", 0x400002, 0x080000, CRC(5372f0a5) SHA1(36e8d0a73918cbd018c1865d1a05445daba8997c) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("427a07.6m", 0x000000, 128*1024, CRC(8dbaf4c7) SHA1(cb69bf94090a4871b35e7ba1f58e3225077b82cd) ) - ROM_LOAD16_BYTE("427a06.9m", 0x000001, 128*1024, CRC(979df65d) SHA1(7499e9a27aa562692bd3a296789696492a6254bc) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "427a15.11r", 0x000000, 0x100000, CRC(33ce2b8e) SHA1(b0936386cdc7c41f33b1d7b4f5ce25fe618d1286) ) - TILE_BYTES2_ROM_LOAD( "427a14.143", 0x000004, 0x080000, CRC(7575a0ed) SHA1(92fda2747ac090f93e60cff8478af6721b949dc2) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "427a08.140", 0x000000, 2*1024*1024, CRC(221250af) SHA1(fd24e7f0e3024df5aa08506523953c5e35d2267b) ) - ROM_LOAD32_WORD( "427a09.137", 0x000002, 2*1024*1024, CRC(56bdd480) SHA1(01d164aedc77f71f6310cfd739c00b33289a2e7e) ) - ROM_LOAD32_WORD( "427a10.25r", 0x400000, 2*1024*1024, CRC(6b3ccb41) SHA1(b246ef350a430e60f0afd1b80ff48139c325e926) ) - ROM_LOAD32_WORD( "427a11.23r", 0x400002, 2*1024*1024, CRC(c1ca74c1) SHA1(b7286df8e59f8f1939ebf17aaf9345a857b0b100) ) - ROM_LOAD32_WORD( "427a12.21r", 0x800000, 2*1024*1024, CRC(97d6fd38) SHA1(8d2895850cafdea95db08c84e7eeea90a1921515) ) - ROM_LOAD32_WORD( "427a13.18r", 0x800002, 2*1024*1024, CRC(815a9b87) SHA1(7d9d5932fff7dd7aa4cbccf0c8d3784dc8042e70) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_LOAD( "427a18.145", 0x000000, 0x100000, CRC(bb6e6ec6) SHA1(aa1365a4318866d9e7e74461a6e6c113f83b6771) ) - - /* PSAC2 map data */ - ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_LOAD( "427a17.24c", 0x000000, 0x080000, CRC(fb6eb01f) SHA1(28cdb30ff70ee5fc7624e18fe048dd85dfa49ace) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "427a16.9r", 0x000000, 2*1024*1024, CRC(39547265) SHA1(c0efd68c0c1ea59141045150842f36d43e1f01d8) ) -ROM_END - -/* Soccer Superstars (Asian ver AAA) */ -ROM_START( soccersa ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "427aaa02.28m", 0x200000, 512*1024, CRC(a001d4bf) SHA1(424d6ee1fed8c0278bf87e989f88a90b34387068) ) - ROM_LOAD32_WORD_SWAP( "427aaa03.30m", 0x200002, 512*1024, CRC(83d37f48) SHA1(c96e564ec39d74c9f4447d7f339d7861a7cead14) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) ) - ROM_LOAD32_WORD_SWAP( "427a05.30r", 0x400002, 0x080000, CRC(5372f0a5) SHA1(36e8d0a73918cbd018c1865d1a05445daba8997c) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("427a07.6m", 0x000000, 128*1024, CRC(8dbaf4c7) SHA1(cb69bf94090a4871b35e7ba1f58e3225077b82cd) ) - ROM_LOAD16_BYTE("427a06.9m", 0x000001, 128*1024, CRC(979df65d) SHA1(7499e9a27aa562692bd3a296789696492a6254bc) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "427a15.11r", 0x000000, 0x100000, CRC(33ce2b8e) SHA1(b0936386cdc7c41f33b1d7b4f5ce25fe618d1286) ) - TILE_BYTES2_ROM_LOAD( "427a14.143", 0x000004, 0x080000, CRC(7575a0ed) SHA1(92fda2747ac090f93e60cff8478af6721b949dc2) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "427a08.140", 0x000000, 2*1024*1024, CRC(221250af) SHA1(fd24e7f0e3024df5aa08506523953c5e35d2267b) ) - ROM_LOAD32_WORD( "427a09.137", 0x000002, 2*1024*1024, CRC(56bdd480) SHA1(01d164aedc77f71f6310cfd739c00b33289a2e7e) ) - ROM_LOAD32_WORD( "427a10.25r", 0x400000, 2*1024*1024, CRC(6b3ccb41) SHA1(b246ef350a430e60f0afd1b80ff48139c325e926) ) - ROM_LOAD32_WORD( "427a11.23r", 0x400002, 2*1024*1024, CRC(c1ca74c1) SHA1(b7286df8e59f8f1939ebf17aaf9345a857b0b100) ) - ROM_LOAD32_WORD( "427a12.21r", 0x800000, 2*1024*1024, CRC(97d6fd38) SHA1(8d2895850cafdea95db08c84e7eeea90a1921515) ) - ROM_LOAD32_WORD( "427a13.18r", 0x800002, 2*1024*1024, CRC(815a9b87) SHA1(7d9d5932fff7dd7aa4cbccf0c8d3784dc8042e70) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_LOAD( "427a18.145", 0x000000, 0x100000, CRC(bb6e6ec6) SHA1(aa1365a4318866d9e7e74461a6e6c113f83b6771) ) - - /* PSAC2 map data */ - ROM_REGION( 0x080000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_LOAD( "427a17.24c", 0x000000, 0x080000, CRC(fb6eb01f) SHA1(28cdb30ff70ee5fc7624e18fe048dd85dfa49ace) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "427a16.9r", 0x000000, 2*1024*1024, CRC(39547265) SHA1(c0efd68c0c1ea59141045150842f36d43e1f01d8) ) -ROM_END - -/* Vs. Net Soccer (ver EAD) */ -ROM_START(vsnetscr) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "627ead03.29m", 0x200000, 0x080000, CRC(2da707e2) SHA1(3273c671e417abc4e82cd0d4f5d01dd4c9c432f9) ) - ROM_LOAD32_WORD_SWAP( "627ead02.31m", 0x200002, 0x080000, CRC(01ab336a) SHA1(6e7ab03a82548cc5bd17938df0baf47381dd86aa) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "627a05.31r", 0x400000, 1024*1024, CRC(be4e7b3c) SHA1(f44e7b1913aa54f759bd31bb86fdedbb9747b2d5) ) - ROM_LOAD32_WORD_SWAP( "627a04.29r", 0x400002, 1024*1024, CRC(17334e9a) SHA1(82cdba016c29160550c43feee7a4feff6e1184aa) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("627b06.9m", 0x000000, 128*1024, CRC(c8337b9d) SHA1(574c674676f493ca4b5a135728ce01e664d1293d) ) - ROM_LOAD16_BYTE("627b07.7m", 0x000001, 128*1024, CRC(d7d92579) SHA1(929b8e90cfef2ef14d84173267b637e4efdb6867) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "627a21.11r", 0x000000, 1024*1024, CRC(d0755fb8) SHA1(de37ea2a7969a97b6f2abccb7dc2a58950482bf0) ) - ROM_LOAD16_BYTE( "627a20.11m", 0x000001, 1024*1024, CRC(f68b28f2) SHA1(1463717ed581494fcab77a80dc6ffd3ab82ab1fa) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "627a19.14r", 0x000000, 2*1024*1024, CRC(5efaa3bc) SHA1(95314c1054ccf5b9626f0b06f9e1c857a127e2ca) ) - ROM_LOAD32_WORD( "627a15.18r", 0x000002, 2*1024*1024, CRC(5180ca06) SHA1(d5569f6fc6b0374cd111f8313f635e4b7c49351f) ) - ROM_LOAD32_WORD( "627a13.21r", 0x400000, 2*1024*1024, CRC(af48849d) SHA1(c43981883ef042968444b6d993a640edc429daae) ) - ROM_LOAD32_WORD( "627a17.16r", 0x400002, 2*1024*1024, CRC(ca99d29c) SHA1(919dfb029dbc7d2c5e420d54df36eef3ec3bb1a2) ) - ROM_LOAD32_WORD( "627a11.23r", 0x800000, 2*1024*1024, CRC(a2e507f2) SHA1(ceaaccbac22fecef32fa34f887568bb18464265d) ) - ROM_LOAD32_WORD( "627a09.25r", 0x800002, 2*1024*1024, CRC(312cf8a4) SHA1(107456fc1a1906a60b5b50f4ca6b7e8cd258e6ee) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00) - ROM_LOAD( "627a24.22h", 0x000000, 0x200000, CRC(2cd73305) SHA1(5a46148c08198499639adc4b6936af0b2b530bc9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "627a23.7r", 0x000000, 0x400000, CRC(0917d7de) SHA1(f2447637b396a9c92553b2c1dbf4edecc55ccc24) ) -ROM_END - -/* Vs. Net Soccer (ver EAB) */ -ROM_START(vsnetseb) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "627eab03.29m", 0x200000, 0x080000, CRC(878b2369) SHA1(c92783ef1eb33c0596a9354e97f30f8c017e842c) ) - ROM_LOAD32_WORD_SWAP( "627eab02.31m", 0x200002, 0x080000, CRC(cc76bce8) SHA1(54a4047412a98a5c4f64a8bc2fd3cda9c07e58b3) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "627a05.31r", 0x400000, 1024*1024, CRC(be4e7b3c) SHA1(f44e7b1913aa54f759bd31bb86fdedbb9747b2d5) ) - ROM_LOAD32_WORD_SWAP( "627a04.29r", 0x400002, 1024*1024, CRC(17334e9a) SHA1(82cdba016c29160550c43feee7a4feff6e1184aa) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("627b06.9m", 0x000000, 128*1024, CRC(c8337b9d) SHA1(574c674676f493ca4b5a135728ce01e664d1293d) ) - ROM_LOAD16_BYTE("627b07.7m", 0x000001, 128*1024, CRC(d7d92579) SHA1(929b8e90cfef2ef14d84173267b637e4efdb6867) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "627a21.11r", 0x000000, 1024*1024, CRC(d0755fb8) SHA1(de37ea2a7969a97b6f2abccb7dc2a58950482bf0) ) - ROM_LOAD16_BYTE( "627a20.11m", 0x000001, 1024*1024, CRC(f68b28f2) SHA1(1463717ed581494fcab77a80dc6ffd3ab82ab1fa) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "627a19.14r", 0x000000, 2*1024*1024, CRC(5efaa3bc) SHA1(95314c1054ccf5b9626f0b06f9e1c857a127e2ca) ) - ROM_LOAD32_WORD( "627a15.18r", 0x000002, 2*1024*1024, CRC(5180ca06) SHA1(d5569f6fc6b0374cd111f8313f635e4b7c49351f) ) - ROM_LOAD32_WORD( "627a13.21r", 0x400000, 2*1024*1024, CRC(af48849d) SHA1(c43981883ef042968444b6d993a640edc429daae) ) - ROM_LOAD32_WORD( "627a17.16r", 0x400002, 2*1024*1024, CRC(ca99d29c) SHA1(919dfb029dbc7d2c5e420d54df36eef3ec3bb1a2) ) - ROM_LOAD32_WORD( "627a11.23r", 0x800000, 2*1024*1024, CRC(a2e507f2) SHA1(ceaaccbac22fecef32fa34f887568bb18464265d) ) - ROM_LOAD32_WORD( "627a09.25r", 0x800002, 2*1024*1024, CRC(312cf8a4) SHA1(107456fc1a1906a60b5b50f4ca6b7e8cd258e6ee) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00) - ROM_LOAD( "627a24.22h", 0x000000, 0x200000, CRC(2cd73305) SHA1(5a46148c08198499639adc4b6936af0b2b530bc9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "627a23.7r", 0x000000, 0x400000, CRC(0917d7de) SHA1(f2447637b396a9c92553b2c1dbf4edecc55ccc24) ) -ROM_END - -/* Vs. Net Soccer (ver UAB) */ -ROM_START(vsnetscu) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "627uab03.29m", 0x200000, 512*1024, CRC(53ca7eec) SHA1(d2d5a491417849c31aaff61a93da4ab2e94495d4) ) - ROM_LOAD32_WORD_SWAP( "627uab02.31m", 0x200002, 512*1024, CRC(c352cc6f) SHA1(d8d0d802eb6bd0910e35dcc6b81b7ac9036e32ea) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "627a05.31r", 0x400000, 1024*1024, CRC(be4e7b3c) SHA1(f44e7b1913aa54f759bd31bb86fdedbb9747b2d5) ) - ROM_LOAD32_WORD_SWAP( "627a04.29r", 0x400002, 1024*1024, CRC(17334e9a) SHA1(82cdba016c29160550c43feee7a4feff6e1184aa) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("627b06.9m", 0x000000, 128*1024, CRC(c8337b9d) SHA1(574c674676f493ca4b5a135728ce01e664d1293d) ) - ROM_LOAD16_BYTE("627b07.7m", 0x000001, 128*1024, CRC(d7d92579) SHA1(929b8e90cfef2ef14d84173267b637e4efdb6867) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "627a21.11r", 0x000000, 1024*1024, CRC(d0755fb8) SHA1(de37ea2a7969a97b6f2abccb7dc2a58950482bf0) ) - ROM_LOAD16_BYTE( "627a20.11m", 0x000001, 1024*1024, CRC(f68b28f2) SHA1(1463717ed581494fcab77a80dc6ffd3ab82ab1fa) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "627a19.14r", 0x000000, 2*1024*1024, CRC(5efaa3bc) SHA1(95314c1054ccf5b9626f0b06f9e1c857a127e2ca) ) - ROM_LOAD32_WORD( "627a15.18r", 0x000002, 2*1024*1024, CRC(5180ca06) SHA1(d5569f6fc6b0374cd111f8313f635e4b7c49351f) ) - ROM_LOAD32_WORD( "627a13.21r", 0x400000, 2*1024*1024, CRC(af48849d) SHA1(c43981883ef042968444b6d993a640edc429daae) ) - ROM_LOAD32_WORD( "627a17.16r", 0x400002, 2*1024*1024, CRC(ca99d29c) SHA1(919dfb029dbc7d2c5e420d54df36eef3ec3bb1a2) ) - ROM_LOAD32_WORD( "627a11.23r", 0x800000, 2*1024*1024, CRC(a2e507f2) SHA1(ceaaccbac22fecef32fa34f887568bb18464265d) ) - ROM_LOAD32_WORD( "627a09.25r", 0x800002, 2*1024*1024, CRC(312cf8a4) SHA1(107456fc1a1906a60b5b50f4ca6b7e8cd258e6ee) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00) - ROM_LOAD( "627a24.22h", 0x000000, 0x200000, CRC(2cd73305) SHA1(5a46148c08198499639adc4b6936af0b2b530bc9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "627a23.7r", 0x000000, 0x400000, CRC(0917d7de) SHA1(f2447637b396a9c92553b2c1dbf4edecc55ccc24) ) -ROM_END - -/* Vs. Net Soccer (ver JAB) */ -ROM_START(vsnetscj) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "627jab03.29m", 0x200000, 512*1024, CRC(68c4bb17) SHA1(db109998221d0cc41d3fd5c9339773c7077edbf4) ) - ROM_LOAD32_WORD_SWAP( "627jab02.31m", 0x200002, 512*1024, CRC(f10929d7) SHA1(304001d44ed762682a4606a849305a9352e9bec3) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "627a05.31r", 0x400000, 1024*1024, CRC(be4e7b3c) SHA1(f44e7b1913aa54f759bd31bb86fdedbb9747b2d5) ) - ROM_LOAD32_WORD_SWAP( "627a04.29r", 0x400002, 1024*1024, CRC(17334e9a) SHA1(82cdba016c29160550c43feee7a4feff6e1184aa) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("627b06.9m", 0x000000, 128*1024, CRC(c8337b9d) SHA1(574c674676f493ca4b5a135728ce01e664d1293d) ) - ROM_LOAD16_BYTE("627b07.7m", 0x000001, 128*1024, CRC(d7d92579) SHA1(929b8e90cfef2ef14d84173267b637e4efdb6867) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "627a21.11r", 0x000000, 1024*1024, CRC(d0755fb8) SHA1(de37ea2a7969a97b6f2abccb7dc2a58950482bf0) ) - ROM_LOAD16_BYTE( "627a20.11m", 0x000001, 1024*1024, CRC(f68b28f2) SHA1(1463717ed581494fcab77a80dc6ffd3ab82ab1fa) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "627a19.14r", 0x000000, 2*1024*1024, CRC(5efaa3bc) SHA1(95314c1054ccf5b9626f0b06f9e1c857a127e2ca) ) - ROM_LOAD32_WORD( "627a15.18r", 0x000002, 2*1024*1024, CRC(5180ca06) SHA1(d5569f6fc6b0374cd111f8313f635e4b7c49351f) ) - ROM_LOAD32_WORD( "627a13.21r", 0x400000, 2*1024*1024, CRC(af48849d) SHA1(c43981883ef042968444b6d993a640edc429daae) ) - ROM_LOAD32_WORD( "627a17.16r", 0x400002, 2*1024*1024, CRC(ca99d29c) SHA1(919dfb029dbc7d2c5e420d54df36eef3ec3bb1a2) ) - ROM_LOAD32_WORD( "627a11.23r", 0x800000, 2*1024*1024, CRC(a2e507f2) SHA1(ceaaccbac22fecef32fa34f887568bb18464265d) ) - ROM_LOAD32_WORD( "627a09.25r", 0x800002, 2*1024*1024, CRC(312cf8a4) SHA1(107456fc1a1906a60b5b50f4ca6b7e8cd258e6ee) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00) - ROM_LOAD( "627a24.22h", 0x000000, 0x200000, CRC(2cd73305) SHA1(5a46148c08198499639adc4b6936af0b2b530bc9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "627a23.7r", 0x000000, 0x400000, CRC(0917d7de) SHA1(f2447637b396a9c92553b2c1dbf4edecc55ccc24) ) -ROM_END - -/* Vs. Net Soccer (ver AAA) */ -ROM_START(vsnetsca) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "627aaa03.29m", 0x200000, 0x080000, CRC(50e23a50) SHA1(82cf1b051cfb2f94567c5a4199802960798c1152) ) - ROM_LOAD32_WORD_SWAP( "627aaa02.31m", 0x200002, 0x080000, CRC(e3d21afe) SHA1(28c213106087da425f85bb7f3398aca98964ea38) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "627a05.31r", 0x400000, 1024*1024, CRC(be4e7b3c) SHA1(f44e7b1913aa54f759bd31bb86fdedbb9747b2d5) ) - ROM_LOAD32_WORD_SWAP( "627a04.29r", 0x400002, 1024*1024, CRC(17334e9a) SHA1(82cdba016c29160550c43feee7a4feff6e1184aa) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("627b06.9m", 0x000000, 128*1024, CRC(c8337b9d) SHA1(574c674676f493ca4b5a135728ce01e664d1293d) ) - ROM_LOAD16_BYTE("627b07.7m", 0x000001, 128*1024, CRC(d7d92579) SHA1(929b8e90cfef2ef14d84173267b637e4efdb6867) ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "627a21.11r", 0x000000, 1024*1024, CRC(d0755fb8) SHA1(de37ea2a7969a97b6f2abccb7dc2a58950482bf0) ) - ROM_LOAD16_BYTE( "627a20.11m", 0x000001, 1024*1024, CRC(f68b28f2) SHA1(1463717ed581494fcab77a80dc6ffd3ab82ab1fa) ) - - /* sprites */ - ROM_REGION( 0xc00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "627a19.14r", 0x000000, 2*1024*1024, CRC(5efaa3bc) SHA1(95314c1054ccf5b9626f0b06f9e1c857a127e2ca) ) - ROM_LOAD32_WORD( "627a15.18r", 0x000002, 2*1024*1024, CRC(5180ca06) SHA1(d5569f6fc6b0374cd111f8313f635e4b7c49351f) ) - ROM_LOAD32_WORD( "627a13.21r", 0x400000, 2*1024*1024, CRC(af48849d) SHA1(c43981883ef042968444b6d993a640edc429daae) ) - ROM_LOAD32_WORD( "627a17.16r", 0x400002, 2*1024*1024, CRC(ca99d29c) SHA1(919dfb029dbc7d2c5e420d54df36eef3ec3bb1a2) ) - ROM_LOAD32_WORD( "627a11.23r", 0x800000, 2*1024*1024, CRC(a2e507f2) SHA1(ceaaccbac22fecef32fa34f887568bb18464265d) ) - ROM_LOAD32_WORD( "627a09.25r", 0x800002, 2*1024*1024, CRC(312cf8a4) SHA1(107456fc1a1906a60b5b50f4ca6b7e8cd258e6ee) ) - - /* PSAC2 tiles */ - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00) - ROM_LOAD( "627a24.22h", 0x000000, 0x200000, CRC(2cd73305) SHA1(5a46148c08198499639adc4b6936af0b2b530bc9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "627a23.7r", 0x000000, 0x400000, CRC(0917d7de) SHA1(f2447637b396a9c92553b2c1dbf4edecc55ccc24) ) -ROM_END - -/* Lethal Enforcers II */ -ROM_START( le2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_BYTE( "312eaa05.26b", 0x200000, 128*1024, CRC(875f6561) SHA1(8ede0697ff91134011f9fb5eb26e596cbc6e8f12) ) - ROM_LOAD32_BYTE( "312eaa04.28b", 0x200001, 128*1024, CRC(d5fb8d30) SHA1(824d6a43bed5aff2f65096922620ff5bff3b29f9) ) - ROM_LOAD32_BYTE( "312eaa03.30b", 0x200002, 128*1024, CRC(cfe07036) SHA1(cd7181ace76feb0e684a51db488b64b86ced5f55) ) - ROM_LOAD32_BYTE( "312eaa02.33b", 0x200003, 128*1024, CRC(5094b965) SHA1(cb597b663c49d0f63af770fd6ce344e5df9a1ed9) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("312b06.9c", 0x000000, 128*1024, CRC(a6f62539) SHA1(b333e02c55237a0429d8c5386ec68b67797a1107) ) - ROM_LOAD16_BYTE("312b07.7c", 0x000001, 128*1024, CRC(1aa19c41) SHA1(5b879fb17ac514f266e63db6af50f2f4af7da32c) ) - - /* tiles */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "312a14.17h", 0x000000, 2*1024*1024, CRC(dc862f19) SHA1(8ec9f8715b622462fb8c79a48162c161eb9fe13b) ) - ROM_LOAD16_BYTE( "312a12.22h", 0x000001, 2*1024*1024, CRC(98c04ddd) SHA1(7bc7af21625466e75003da9fd950437249e75b78) ) - ROM_LOAD16_BYTE( "312a15.15h", 0x400000, 2*1024*1024, CRC(516f2941) SHA1(07415fec2d96fe6b707f801a9e9e963186d83d6a) ) - ROM_LOAD16_BYTE( "312a13.20h", 0x400001, 2*1024*1024, CRC(16e5fdaa) SHA1(f04e09ee4207eb2bd67533997d36f4b3cf42a439) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - _64_WORD_ROM_LOAD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) - _64_WORD_ROM_LOAD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) - _64_WORD_ROM_LOAD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) - _64_WORD_ROM_LOAD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "312a17.9g", 0x000000, 2*1024*1024, CRC(ed101448) SHA1(ef1342f37fbbb092eddee0c237b40989ad42cf26) ) - ROM_LOAD( "312a18.7g", 0x200000, 1*1024*1024, CRC(5717abd7) SHA1(d304d733e7fca0363ea6b3872c2d3bbe4edf1179) ) -ROM_END - -/* Lethal Enforcers II (US Version) */ -ROM_START( le2u ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_BYTE( "312uaa05.26b", 0x200000, 128*1024, CRC(973aa500) SHA1(ad834b0fed37502ff3e3fe7f608fd5dbe172f452) ) - ROM_LOAD32_BYTE( "312uaa04.28b", 0x200001, 128*1024, CRC(cba39552) SHA1(243f2115047d9e646f69368d78b18be47b7eacc6) ) - ROM_LOAD32_BYTE( "312uaa03.30b", 0x200002, 128*1024, CRC(20bc94e6) SHA1(652ca7b3b7ece9e702134691373e913ce3651401) ) - ROM_LOAD32_BYTE( "312uaa02.33b", 0x200003, 128*1024, CRC(04f3bd9e) SHA1(0617fd065efeae8c5fa665a65ed69a246d7a8ed7) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("312a06.9c", 0x000000, 128*1024, CRC(ff6f2cd4) SHA1(a52cab6b64b54bd60e96437ed91277c76293af2d) ) - ROM_LOAD16_BYTE("312a07.7c", 0x000001, 128*1024, CRC(3d31e989) SHA1(1fdf205b0f9c21093bc6147aaacdf178aa628508) ) - - /* tiles */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "312a14.17h", 0x000000, 2*1024*1024, CRC(dc862f19) SHA1(8ec9f8715b622462fb8c79a48162c161eb9fe13b) ) - ROM_LOAD16_BYTE( "312a12.22h", 0x000001, 2*1024*1024, CRC(98c04ddd) SHA1(7bc7af21625466e75003da9fd950437249e75b78) ) - ROM_LOAD16_BYTE( "312a15.15h", 0x400000, 2*1024*1024, CRC(516f2941) SHA1(07415fec2d96fe6b707f801a9e9e963186d83d6a) ) - ROM_LOAD16_BYTE( "312a13.20h", 0x400001, 2*1024*1024, CRC(16e5fdaa) SHA1(f04e09ee4207eb2bd67533997d36f4b3cf42a439) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - _64_WORD_ROM_LOAD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) - _64_WORD_ROM_LOAD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) - _64_WORD_ROM_LOAD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) - _64_WORD_ROM_LOAD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "312a17.9g", 0x000000, 2*1024*1024, CRC(ed101448) SHA1(ef1342f37fbbb092eddee0c237b40989ad42cf26) ) - ROM_LOAD( "312a18.7g", 0x200000, 1*1024*1024, CRC(5717abd7) SHA1(d304d733e7fca0363ea6b3872c2d3bbe4edf1179) ) -ROM_END - -/* Lethal Enforcers II (version) */ -ROM_START( le2j ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_BYTE( "312jaa05.26b", 0x200000, 0x020000, BAD_DUMP CRC(7eaa6ce2) SHA1(59d3460be98ac32ebea0422c2a9962556a9e964e) ) - ROM_LOAD32_BYTE( "312jaa04.28b", 0x200001, 0x020000, BAD_DUMP CRC(c3d19ddc) SHA1(3bc3e705567e8e59e56a40ae64381082c4f22271) ) - ROM_LOAD32_BYTE( "312jaa03.30b", 0x200002, 0x020000, BAD_DUMP CRC(465e3d03) SHA1(8efeb775f6d9f1dfcebdbc79d0c832107278c063) ) - ROM_LOAD32_BYTE( "312jaa02.33b", 0x200003, 0x020000, BAD_DUMP CRC(e971cb87) SHA1(53e2e7c4b96e4331df27d4788aa1bb81efddf9f0) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("312b06.9c", 0x000000, 128*1024, CRC(a6f62539) SHA1(b333e02c55237a0429d8c5386ec68b67797a1107) ) - ROM_LOAD16_BYTE("312b07.7c", 0x000001, 128*1024, CRC(1aa19c41) SHA1(5b879fb17ac514f266e63db6af50f2f4af7da32c) ) - - /* tiles */ - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "312a14.17h", 0x000000, 2*1024*1024, CRC(dc862f19) SHA1(8ec9f8715b622462fb8c79a48162c161eb9fe13b) ) - ROM_LOAD16_BYTE( "312a12.22h", 0x000001, 2*1024*1024, CRC(98c04ddd) SHA1(7bc7af21625466e75003da9fd950437249e75b78) ) - ROM_LOAD16_BYTE( "312a15.15h", 0x400000, 2*1024*1024, CRC(516f2941) SHA1(07415fec2d96fe6b707f801a9e9e963186d83d6a) ) - ROM_LOAD16_BYTE( "312a13.20h", 0x400001, 2*1024*1024, CRC(16e5fdaa) SHA1(f04e09ee4207eb2bd67533997d36f4b3cf42a439) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - _64_WORD_ROM_LOAD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) - _64_WORD_ROM_LOAD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) - _64_WORD_ROM_LOAD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) - _64_WORD_ROM_LOAD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "312a17.9g", 0x000000, 2*1024*1024, CRC(ed101448) SHA1(ef1342f37fbbb092eddee0c237b40989ad42cf26) ) - ROM_LOAD( "312a18.7g", 0x200000, 1*1024*1024, CRC(5717abd7) SHA1(d304d733e7fca0363ea6b3872c2d3bbe4edf1179) ) -ROM_END - -/* Racin' Force */ -ROM_START( racinfrc ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "250uab02.34n", 0x200000, 512*1024, CRC(315040c6) SHA1(940d54c1eb898d9a44d823f9f5ae9e91a20f746f) ) - ROM_LOAD32_WORD_SWAP( "250uab03.31n", 0x200002, 512*1024, CRC(171134ab) SHA1(308b7e76a80c3d860a15408a144b1e0f76fcee87) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "250a04.34s", 0x400000, 2*1024*1024, CRC(45e4d43c) SHA1(a668431d53b50fd41e1fa3c8959c0dc96e50c52b) ) - ROM_LOAD32_WORD_SWAP( "250a05.31s", 0x400002, 2*1024*1024, CRC(a235af3e) SHA1(381cd16552f007ccb508411a03fdfd18e32203d0) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("250a06.8p", 0x000000, 128*1024, CRC(2d0a3ff1) SHA1(ce4261d5f86821e98e971a35403c793506d0566b) ) - ROM_LOAD16_BYTE("250a07.6p", 0x000001, 128*1024, CRC(612b670a) SHA1(255515fa5096fcc4681b32defa0ae855286d8ed1) ) - - /* tiles */ - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORDS2_ROM_LOAD( "250a15.19y", 0x000000, 0x100000, CRC(60abc472) SHA1(ff360d81222e2d8cd55b907ca5a9947f958aaaab) ) - TILE_BYTES2_ROM_LOAD( "250a14.21y", 0x000004, 0x080000, CRC(d14abf98) SHA1(14827a01deb659c96fd38a5c76f1c9cead5f83c7) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD32_WORD( "250a12.26y", 0x000000, 0x200000, CRC(e4ca3cff) SHA1(5dfddda4b5257e98a53fb8669714004ae3aeb3a7) ) - ROM_LOAD32_WORD( "250a10.31y", 0x000002, 0x200000, CRC(75c02d12) SHA1(3ca471d887b92261b1c3f50777903df13f07b1a9) ) - ROM_LOAD32_WORD( "250a13.24y", 0x400000, 0x200000, CRC(7aeef929) SHA1(9f656e2ede27aea7d51f0f0a3a91a8f2c2d250c0) ) - ROM_LOAD32_WORD( "250a11.28y", 0x400002, 0x200000, CRC(dfbce309) SHA1(831444e7a7588833ffc9b712412f7aef34a7fa2e) ) - ROM_LOAD( "250a08.36y", 0x800000, 0x200000, CRC(25ff6414) SHA1(0af4ef7fe00d7da5fcb5dd0770d470a556c62d61) ) - - /* K053936 tiles (CROM and HROM from the schematics) */ - ROM_REGION( 0x300000, REGION_GFX3, ROMREGION_ERASE00 ) - T1_PSAC6_ROM_LOAD( "250a20.10d", 0x000000, 0x100000, CRC(26a2fcaf) SHA1(d2e38dc0c61e6fed93441dfe2b811993ac9f0ad3) ) - T1_PSAC6_ROM_LOAD( "250a21.7d", 0x000001, 0x100000, CRC(370d7771) SHA1(59ab52287d5aca37baa68d941db165d8da212c69) ) - T1_PSAC6_ROM_LOAD( "250a22.5d", 0x000002, 0x100000, CRC(c66a7775) SHA1(80087b2a3a221f8b2d6c4d1c1c535602e611b561) ) - - ROM_REGION( 0x300000, REGION_GFX4, ROMREGION_ERASE00 ) - T1_PSAC6_ROM_LOAD( "250a24.10h", 0x000000, 0x100000, CRC(a14547da) SHA1(a379ff2f62b340a6ea46c84878a865ccff0d132c) ) - T1_PSAC6_ROM_LOAD( "250a25.7h", 0x000001, 0x100000, CRC(58310501) SHA1(e0be82f112fd86cdb448c9c8ceda0ad4cc03e3e4) ) - T1_PSAC6_ROM_LOAD( "250a26.5h", 0x000002, 0x100000, CRC(f72e4cbe) SHA1(822895b42fe4dc8fc1c55501009b6d6e57ee46a1) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "250a17.14y", 0x000000, 2*1024*1024, CRC(adefa079) SHA1(d25911e3a02d92dc936c3d7e9d76fc270bd1a75a) ) - ROM_LOAD( "250a18.12y", 0x200000, 2*1024*1024, CRC(8014a2eb) SHA1(d82f0a7d559340ae05a78ecc8bb69bb35b9c0658) ) -ROM_END - -/* Konami's Open Golf Championship - version EAE */ -ROM_START( opengolf ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "218eae02.34n", 0x200000, 512*1024, CRC(6f99ddb0) SHA1(99b18c571ce5b67dc8572ffef737b7b6beaf740e) ) - ROM_LOAD32_WORD_SWAP( "218eae03.31n", 0x200002, 512*1024, CRC(c173cf3c) SHA1(f78fd40717997e913b0183f9f2d03a0433071c93) ) - ROM_LOAD32_WORD_SWAP( "218eae02.34n", 0x300000, 512*1024, CRC(6f99ddb0) SHA1(99b18c571ce5b67dc8572ffef737b7b6beaf740e) ) - ROM_LOAD32_WORD_SWAP( "218eae03.31n", 0x300002, 512*1024, CRC(c173cf3c) SHA1(f78fd40717997e913b0183f9f2d03a0433071c93) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "218a04.34s", 0x400000, 512*1024, CRC(e50043a7) SHA1(d3a8e214362c34c4151408f422c9b1c723f7f01c) ) - ROM_LOAD32_WORD_SWAP( "218a05.31s", 0x400002, 512*1024, CRC(46c6b5d3) SHA1(e59c6d2dac9db635589149e4b4852e5f6a9c3c4f) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("218a06.8p", 0x000000, 128*1024, CRC(6755ccf9) SHA1(3bcb18302c385a937c748cf586970c12cef21b38) ) - ROM_LOAD16_BYTE("218a07.6p", 0x000001, 128*1024, CRC(221e5293) SHA1(44b0b4fa37da4c19c29d4d2e5b93b94fbec03633) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "218a15.19y", 0x000000, 2*1024*1024, CRC(78ddc8af) SHA1(24313881dbf7e1b06da008080b0143c3ca5e15b1) ) - TILE_WORD_ROM_LOAD( "218a16.16y", 0x280000, 512*1024, CRC(a41a3ec8) SHA1(dfef4c3e4d6d4e453a4958f2bd52788497c64093) ) - TILE_BYTE_ROM_LOAD( "218a14.22y", 0x000004, 1*1024*1024, CRC(508cd75e) SHA1(adfaac92bc55f60b178a5817c48774a664d8980d) ) - - /* sprites */ - ROM_REGION( 0x900000, REGION_GFX2, ROMREGION_ERASE00 ) - _48_WORD_ROM_LOAD( "218a12.26y", 0x000000, 2*1024*1024, CRC(83158653) SHA1(b7e43d63f12a793b18ce9fc9cc2c38352d211905) ) - _48_WORD_ROM_LOAD( "218a10.31y", 0x000002, 2*1024*1024, CRC(059bfee3) SHA1(e7f4621313b7f9a6cad81d455700172654bc7404) ) - _48_WORD_ROM_LOAD( "218a08.35y", 0x000004, 2*1024*1024, CRC(5b7098f3) SHA1(91bedf731e94d1554f9a8f86f79425a2c58bbaf9) ) - _48_WORD_ROM_LOAD( "218a13.24y", 0x600000, 1*1024*1024, CRC(b9ffd12a) SHA1(f8a689957b8ff966a38f999a679cdbf18a6dfc77) ) - _48_WORD_ROM_LOAD( "218a11.28y", 0x600002, 1*1024*1024, CRC(b57231e5) SHA1(e1cd1854e909ca53dc2c32b27e5f9bb2217b0e4c) ) - _48_WORD_ROM_LOAD( "218a09.33y", 0x600004, 1*1024*1024, CRC(13627443) SHA1(b51758e19ed7d6bb1e313f7c8a509ad1aad8b22c) ) - - /* K053936 tiles (CROM and HROM from the schematics) */ - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) - T1_PSAC8_ROM_LOAD( "218a20.10d", 0x000000, 0x200000, CRC(f0ac2d6f) SHA1(acae9e20d663932a9a44a2e1089546338442c71f) ) - T1_PSAC8_ROM_LOAD( "218a21.7d", 0x000001, 0x200000, CRC(cb15122a) SHA1(2d159dcfbd4a7fc6e824c1be0cc5b81dee7ce8a3) ) - T1_PSAC8_ROM_LOAD( "218a22.5d", 0x000002, 0x200000, CRC(1b08d7dc) SHA1(2b963dbc415a30d3545ea730e47a592798f30a45) ) - T1_PSAC8_ROM_LOAD( "218a23.3d", 0x000003, 0x200000, CRC(1e4224b5) SHA1(f34849d500a35001944da6b8864c796e7a0a7224) ) - - ROM_REGION( 0x600000, REGION_GFX4, ROMREGION_ERASE00 ) - T1_PSAC6_ROM_LOAD( "218a24.10h", 0x000000, 0x200000, CRC(e938d96a) SHA1(176a9bfd252f01bc034ca348d018705926a1a545) ) - T1_PSAC6_ROM_LOAD( "218a25.7h", 0x000001, 0x200000, CRC(11600c2d) SHA1(721c9361761dd20810ff18c63543b222c98a47a4) ) - T1_PSAC6_ROM_LOAD( "218a26.5h", 0x000002, 0x200000, CRC(b37e4b7a) SHA1(3d21e540a366f6ef8ba761855fceecd8591179d7) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "218a17.14y", 0x000000, 2*1024*1024, CRC(0b525127) SHA1(218b306c12e1094a676815b7dddaf13bf19be2d5) ) - ROM_LOAD( "218a18.12y", 0x200000, 1*1024*1024, CRC(98ec4cfb) SHA1(638753f9d9269719a37133b9c39c242507fdd8ac) ) -ROM_END - -/* Konami's Open Golf Championship - version EAD */ -ROM_START( opengol2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "218ead02.34n", 0x200000, 512*1024, CRC(eeb58816) SHA1(fe88a4515b552975f78897543bc564495b69dd68) ) - ROM_LOAD32_WORD_SWAP( "218ead03.31n", 0x200002, 512*1024, CRC(5c36f84c) SHA1(8dcbc9e1a8857be9d407a9d0e962a62b963e7187) ) - ROM_LOAD32_WORD_SWAP( "218ead02.34n", 0x300000, 512*1024, CRC(eeb58816) SHA1(fe88a4515b552975f78897543bc564495b69dd68) ) - ROM_LOAD32_WORD_SWAP( "218ead03.31n", 0x300002, 512*1024, CRC(5c36f84c) SHA1(8dcbc9e1a8857be9d407a9d0e962a62b963e7187) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "218a04.34s", 0x400000, 512*1024, CRC(e50043a7) SHA1(d3a8e214362c34c4151408f422c9b1c723f7f01c) ) - ROM_LOAD32_WORD_SWAP( "218a05.31s", 0x400002, 512*1024, CRC(46c6b5d3) SHA1(e59c6d2dac9db635589149e4b4852e5f6a9c3c4f) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("218a06.8p", 0x000000, 128*1024, CRC(6755ccf9) SHA1(3bcb18302c385a937c748cf586970c12cef21b38) ) - ROM_LOAD16_BYTE("218a07.6p", 0x000001, 128*1024, CRC(221e5293) SHA1(44b0b4fa37da4c19c29d4d2e5b93b94fbec03633) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "218a15.19y", 0x000000, 2*1024*1024, CRC(78ddc8af) SHA1(24313881dbf7e1b06da008080b0143c3ca5e15b1) ) - TILE_WORD_ROM_LOAD( "218a16.16y", 0x280000, 512*1024, CRC(a41a3ec8) SHA1(dfef4c3e4d6d4e453a4958f2bd52788497c64093) ) - TILE_BYTE_ROM_LOAD( "218a14.22y", 0x000004, 1*1024*1024, CRC(508cd75e) SHA1(adfaac92bc55f60b178a5817c48774a664d8980d) ) - - /* sprites */ - ROM_REGION( 0x900000, REGION_GFX2, ROMREGION_ERASE00 ) - _48_WORD_ROM_LOAD( "218a12.26y", 0x000000, 2*1024*1024, CRC(83158653) SHA1(b7e43d63f12a793b18ce9fc9cc2c38352d211905) ) - _48_WORD_ROM_LOAD( "218a10.31y", 0x000002, 2*1024*1024, CRC(059bfee3) SHA1(e7f4621313b7f9a6cad81d455700172654bc7404) ) - _48_WORD_ROM_LOAD( "218a08.35y", 0x000004, 2*1024*1024, CRC(5b7098f3) SHA1(91bedf731e94d1554f9a8f86f79425a2c58bbaf9) ) - _48_WORD_ROM_LOAD( "218a13.24y", 0x600000, 1*1024*1024, CRC(b9ffd12a) SHA1(f8a689957b8ff966a38f999a679cdbf18a6dfc77) ) - _48_WORD_ROM_LOAD( "218a11.28y", 0x600002, 1*1024*1024, CRC(b57231e5) SHA1(e1cd1854e909ca53dc2c32b27e5f9bb2217b0e4c) ) - _48_WORD_ROM_LOAD( "218a09.33y", 0x600004, 1*1024*1024, CRC(13627443) SHA1(b51758e19ed7d6bb1e313f7c8a509ad1aad8b22c) ) - - /* K053936 tiles (CROM and HROM from the schematics) */ - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) - T1_PSAC8_ROM_LOAD( "218a20.10d", 0x000000, 0x200000, CRC(f0ac2d6f) SHA1(acae9e20d663932a9a44a2e1089546338442c71f) ) - T1_PSAC8_ROM_LOAD( "218a21.7d", 0x000001, 0x200000, CRC(cb15122a) SHA1(2d159dcfbd4a7fc6e824c1be0cc5b81dee7ce8a3) ) - T1_PSAC8_ROM_LOAD( "218a22.5d", 0x000002, 0x200000, CRC(1b08d7dc) SHA1(2b963dbc415a30d3545ea730e47a592798f30a45) ) - T1_PSAC8_ROM_LOAD( "218a23.3d", 0x000003, 0x200000, CRC(1e4224b5) SHA1(f34849d500a35001944da6b8864c796e7a0a7224) ) - - ROM_REGION( 0x600000, REGION_GFX4, ROMREGION_ERASE00 ) - T1_PSAC6_ROM_LOAD( "218a24.10h", 0x000000, 0x200000, CRC(e938d96a) SHA1(176a9bfd252f01bc034ca348d018705926a1a545) ) - T1_PSAC6_ROM_LOAD( "218a25.7h", 0x000001, 0x200000, CRC(11600c2d) SHA1(721c9361761dd20810ff18c63543b222c98a47a4) ) - T1_PSAC6_ROM_LOAD( "218a26.5h", 0x000002, 0x200000, CRC(b37e4b7a) SHA1(3d21e540a366f6ef8ba761855fceecd8591179d7) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "218a17.14y", 0x000000, 2*1024*1024, CRC(0b525127) SHA1(218b306c12e1094a676815b7dddaf13bf19be2d5) ) - ROM_LOAD( "218a18.12y", 0x200000, 1*1024*1024, CRC(98ec4cfb) SHA1(638753f9d9269719a37133b9c39c242507fdd8ac) ) -ROM_END - -/* Golfing Greats 2 */ -ROM_START( ggreats2 ) - /* main program */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - GX_BIOS - ROM_LOAD32_WORD_SWAP( "218jac02.34n", 0x200000, 0x080000, CRC(e4d47f92) SHA1(4761cf69670d97db548b146b127c9af04f8809d6) ) - ROM_LOAD32_WORD_SWAP( "218jac03.31n", 0x200002, 0x080000, CRC(ec10c0b2) SHA1(4084d8420c53e73630786adf1a4f0fde548fa212) ) - - /* data roms */ - ROM_LOAD32_WORD_SWAP( "218a04.34s", 0x400000, 512*1024, CRC(e50043a7) SHA1(d3a8e214362c34c4151408f422c9b1c723f7f01c) ) - ROM_LOAD32_WORD_SWAP( "218a05.31s", 0x400002, 512*1024, CRC(46c6b5d3) SHA1(e59c6d2dac9db635589149e4b4852e5f6a9c3c4f) ) - - /* sound program */ - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE("218a06.8p", 0x000000, 128*1024, CRC(6755ccf9) SHA1(3bcb18302c385a937c748cf586970c12cef21b38) ) - ROM_LOAD16_BYTE("218a07.6p", 0x000001, 128*1024, CRC(221e5293) SHA1(44b0b4fa37da4c19c29d4d2e5b93b94fbec03633) ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - TILE_WORD_ROM_LOAD( "218a15.19y", 0x000000, 2*1024*1024, CRC(78ddc8af) SHA1(24313881dbf7e1b06da008080b0143c3ca5e15b1) ) - TILE_WORD_ROM_LOAD( "218a16.16y", 0x280000, 512*1024, CRC(a41a3ec8) SHA1(dfef4c3e4d6d4e453a4958f2bd52788497c64093) ) - TILE_BYTE_ROM_LOAD( "218a14.22y", 0x000004, 1*1024*1024, CRC(508cd75e) SHA1(adfaac92bc55f60b178a5817c48774a664d8980d) ) - - /* sprites */ - ROM_REGION( 0x900000, REGION_GFX2, ROMREGION_ERASE00 ) - _48_WORD_ROM_LOAD( "218a12.26y", 0x000000, 2*1024*1024, CRC(83158653) SHA1(b7e43d63f12a793b18ce9fc9cc2c38352d211905) ) - _48_WORD_ROM_LOAD( "218a10.31y", 0x000002, 2*1024*1024, CRC(059bfee3) SHA1(e7f4621313b7f9a6cad81d455700172654bc7404) ) - _48_WORD_ROM_LOAD( "218a08.35y", 0x000004, 2*1024*1024, CRC(5b7098f3) SHA1(91bedf731e94d1554f9a8f86f79425a2c58bbaf9) ) - _48_WORD_ROM_LOAD( "218a13.24y", 0x600000, 1*1024*1024, CRC(b9ffd12a) SHA1(f8a689957b8ff966a38f999a679cdbf18a6dfc77) ) - _48_WORD_ROM_LOAD( "218a11.28y", 0x600002, 1*1024*1024, CRC(b57231e5) SHA1(e1cd1854e909ca53dc2c32b27e5f9bb2217b0e4c) ) - _48_WORD_ROM_LOAD( "218a09.33y", 0x600004, 1*1024*1024, CRC(13627443) SHA1(b51758e19ed7d6bb1e313f7c8a509ad1aad8b22c) ) - - /* K053936 tiles (CROM and HROM from the schematics) */ - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) - T1_PSAC8_ROM_LOAD( "218a20.10d", 0x000000, 0x200000, CRC(f0ac2d6f) SHA1(acae9e20d663932a9a44a2e1089546338442c71f) ) - T1_PSAC8_ROM_LOAD( "218a21.7d", 0x000001, 0x200000, CRC(cb15122a) SHA1(2d159dcfbd4a7fc6e824c1be0cc5b81dee7ce8a3) ) - T1_PSAC8_ROM_LOAD( "218a22.5d", 0x000002, 0x200000, CRC(1b08d7dc) SHA1(2b963dbc415a30d3545ea730e47a592798f30a45) ) - T1_PSAC8_ROM_LOAD( "218a23.3d", 0x000003, 0x200000, CRC(1e4224b5) SHA1(f34849d500a35001944da6b8864c796e7a0a7224) ) - - ROM_REGION( 0x600000, REGION_GFX4, ROMREGION_ERASE00 ) - T1_PSAC6_ROM_LOAD( "218a24.10h", 0x000000, 0x200000, CRC(e938d96a) SHA1(176a9bfd252f01bc034ca348d018705926a1a545) ) - T1_PSAC6_ROM_LOAD( "218a25.7h", 0x000001, 0x200000, CRC(11600c2d) SHA1(721c9361761dd20810ff18c63543b222c98a47a4) ) - T1_PSAC6_ROM_LOAD( "218a26.5h", 0x000002, 0x200000, CRC(b37e4b7a) SHA1(3d21e540a366f6ef8ba761855fceecd8591179d7) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "218a17.14y", 0x000000, 2*1024*1024, CRC(0b525127) SHA1(218b306c12e1094a676815b7dddaf13bf19be2d5) ) - ROM_LOAD( "218a18.12y", 0x200000, 1*1024*1024, CRC(98ec4cfb) SHA1(638753f9d9269719a37133b9c39c242507fdd8ac) ) -ROM_END - -/**********************************************************************************/ -/* initializers */ - -MACHINE_START( konamigx ) -{ - state_save_register_global(konamigx_wrport1_1); - state_save_register_global_array(sndto020); - state_save_register_global_array(sndto000); - return 0; -} - -MACHINE_RESET(konamigx) -{ - int i; - - konamigx_wrport1_0 = konamigx_wrport1_1 = 0; - konamigx_wrport2 = 0; - -/* - bit0 : EEPROM data(don't care) - bit1 : DMA busy (cleared) - bit2-7: IRQ ready (all set) -*/ - gx_rdport1_3 = 0xfc; - gx_syncen = 0; - suspension_active = 0; - - memset(sndto000, 0, 16); - memset(sndto020, 0, 16); - - tms57002_init(); - - // sound CPU initially disabled? - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - - if (!strcmp(Machine->gamedrv->name, "tkmmpzdm")) - { - // boost voice(chip 1 channel 3-7) - for (i=3; i<=7; i++) K054539_set_gain(1, i, 2.0); - } - else if ((!strcmp(Machine->gamedrv->name, "dragoonj")) || (!strcmp(Machine->gamedrv->name, "dragoona"))) - { - // soften percussions(chip 1 channel 0-3), boost voice(chip 1 channel 4-7) - for (i=0; i<=3; i++) - { - K054539_set_gain(1, i, 0.8); - K054539_set_gain(1, i+4, 2.0); - } - } -} - -typedef struct -{ - const char *romname; - UINT32 cfgport; - UINT32 sndhack; - UINT32 special; - UINT32 readback; -} GXGameInfoT; - -#define BPP4 0 -#define BPP5 1 -#define BPP6 2 -#define BPP66 3 - -static GXGameInfoT gameDefs[] = -{ - { "racinfrc", 11, 0, 0, BPP4 }, - { "opengolf", 11, 0, 0, BPP4 }, - { "le2", 13, 1, 1, BPP4 }, - { "le2u", 13, 1, 1, BPP4 }, - { "gokuparo", 7, 0, 0, BPP5 }, - { "fantjour", 7, 0, 0, BPP5 }, - { "puzldama", 7, 0, 0, BPP5 }, - { "tbyahhoo", 7, 0, 8, BPP5 }, - { "tkmmpzdm", 7, 0, 2, BPP6 }, - { "dragoonj", 7, 0, 3, BPP4 }, - { "dragoona", 7, 0, 3, BPP4 }, - { "sexyparo", 7, 0, 4, BPP5 }, - { "daiskiss", 7, 0, 5, BPP5 }, - { "tokkae", 7, 0, 0, BPP5 }, - { "salmndr2", 7, 0, 6, BPP66 }, - { "winspike", 8, 2, 7, BPP4 }, - { "winspikj", 8, 2, 7, BPP4 }, - { "soccerss", 7, 0, 0, BPP4 }, - { "soccersa", 7, 0, 0, BPP4 }, - { "soccersj", 7, 0, 0, BPP4 }, - { "vsnetscr", 7, 8, 0, BPP4 }, - { "vsnetscu", 7, 5, 0, BPP4 }, - { "vsnetscj", 7, 10, 0, BPP4 }, - { "vsnetsca", 7, 7, 0, BPP4 }, - { "vsnetseb", 7, 9, 0, BPP4 }, - { "rungun2", 7, 3, 0, BPP4 }, - { "slamdnk2", 7, 6, 0, BPP4 }, - { "rushhero", 7, 4, 0, BPP4 }, - { "", -1, -1, -1, -1 }, -}; - - -static DRIVER_INIT(konamigx) -{ - int i, match; - int readback = 0; - - adc083x_init( 0, ADC0834, adc0834_callback ); - - konamigx_cfgport = -1; - last_prot_op = -1; - last_prot_clk = 0; - - esc_cb = 0; - snd020_hack = 0; - resume_trigger = 0; - - dmadelay_timer = timer_alloc(dmaend_callback); - - i = match = 0; - while ((gameDefs[i].cfgport != -1) && (!match)) - { - if (!strcmp(Machine->gamedrv->name, gameDefs[i].romname)) - { - match = 1; - konamigx_cfgport = gameDefs[i].cfgport; - snd020_hack = gameDefs[i].sndhack; - readback = gameDefs[i].readback; - - switch (gameDefs[i].special) - { - case 1: // LE2 guns - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd44000, 0xd44003, 0, 0, le2_gun_H_r ); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd44004, 0xd44007, 0, 0, le2_gun_V_r ); - break; - - case 2: // tkmmpzdm hack - { - UINT32 *rom = (UINT32*)memory_region(REGION_CPU1); - - // The display is initialized after POST but the copyright screen disabled - // planes B,C,D and didn't bother restoring them. I've spent a good - // amount of time chasing this bug but the cause remains inconclusive. - // My guess is the CCU somehow masked or delayed vblank interrupts - // during the copyright message. - rom[0x810f1] &= ~1; // fix checksum - rom[0x872ea] |= 0xe0000; // enable plane B,C,D - - esc_cb = tkmmpzdm_esc; - } - break; - - case 3: // dragoon might - esc_cb = dragoonj_esc; - break; - - case 4: // sexyparo - esc_cb = sexyparo_esc; - break; - - case 5: // daiskiss - esc_cb = daiskiss_esc; - break; - - case 6: // salamander 2 - esc_cb = sal2_esc; - break; - - case 7: // install type 4 Xilinx protection for non-type 3/4 games - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0xcc0000, 0xcc0007, 0, 0, type4_prot_w ); - break; - - case 8: // tbyahhoo - esc_cb = tbyahhoo_esc; - break; - } - } - - i++; - } - - switch (readback) - { - case BPP5: - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd4a000, 0xd4a00f, 0, 0, gx5bppspr_r); - break; - - case BPP66: - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd00000, 0xd01fff, 0, 0, K056832_6bpp_rom_long_r); - - case BPP6: - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0xd4a000, 0xd4a00f, 0, 0, gx6bppspr_r); - break; - } - -#undef BPP5 -#undef BPP6 -#undef BPP66 -} - -/**********************************************************************************/ -/* year ROM parent machine inp init */ - -/* dummy parent for the BIOS */ -GAME( 1994, konamigx, 0, konamigx, konamigx, konamigx, ROT0, "Konami", "System GX", NOT_A_DRIVER ) - - -/* Type 1: standard with an add-on 53936 on the ROM board, analog inputs, */ -/* and optional LAN capability (only on Racin' Force - chips aren't present on the golf games) */ -/* needs the ROZ layer to be playable */ -GAME( 1994, racinfrc, konamigx, racinfrc, racinfrc, konamigx, ROT0, "Konami", "Racin' Force (ver UAB)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1994, opengolf, konamigx, opengolf, racinfrc, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1994, opengol2, opengolf, opengolf, racinfrc, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1994, ggreats2, opengolf, opengolf, racinfrc, konamigx, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) - - -/* Type 2: totally stock, sometimes with funny protection chips on the ROM board */ -/* these games work and are playable with minor graphics glitches */ -GAME( 1994, le2, konamigx, le2, le2, konamigx, ROT0, "Konami", "Lethal Enforcers II: Gun Fighters (ver EAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, le2u, le2, le2, le2, konamigx, ROT0, "Konami", "Lethal Enforcers II: Gun Fighters (ver UAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, le2j, le2, le2, le2, konamigx, ROT0, "Konami", "Lethal Enforcers II: Gun Fighters (ver JAA)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING) -GAME( 1994, gokuparo, konamigx, konamigx, gokuparo, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, puzldama, konamigx, konamigx, puzldama, konamigx, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, tbyahhoo, konamigx, konamigx, gokuparo, konamigx, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx, ROT0, "Konami", "Dragoon Might (ver AAB)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx, ROT0, "Konami", "Dragoon Might (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, sexyparo, konamigx, konamigx, gokuparo, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, daiskiss, konamigx, konamigx, gokuparo, konamigx, ROT0, "Konami", "Daisu-Kiss (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, tokkae, konamigx, konamigx_6bpp, puzldama, konamigx, ROT0, "Konami", "Taisen Tokkae-dama (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -/* protection controls player ship direction in attract mode - doesn't impact playability */ -GAME( 1996, salmndr2, konamigx, konamigx_6bpp_2, gokuparo, konamigx, ROT0, "Konami", "Salamander 2 (ver JAA)", GAME_IMPERFECT_GRAPHICS|GAME_UNEMULATED_PROTECTION ) -/* bad sprite colours, part of tilemap gets blanked out when a game starts (might be more protection) */ -GAME( 1997, winspike, konamigx, winspike, konamigx, konamigx, ROT0, "Konami", "Winning Spike (ver EAA)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, winspikj, winspike, winspike, konamigx, konamigx, ROT0, "Konami", "Winning Spike (ver JAA)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS ) - -/* this game is unplayable due to protection */ -GAME( 1994, fantjour, gokuparo, konamigx, gokuparo, konamigx, ROT0, "Konami", "Fantastic Journey", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) - -/* Type 3: dual monitor output and 53936 on the ROM board, external palette RAM */ -GAME( 1994, soccerss, konamigx, gxtype3, type3, konamigx, ROT0, "Konami", "Soccer Superstars (ver EAA)", GAME_NOT_WORKING ) -GAME( 1994, soccersj, soccerss, gxtype3, type3, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAA)", GAME_NOT_WORKING ) -GAME( 1994, soccersa, soccerss, gxtype3, type3, konamigx, ROT0, "Konami", "Soccer Superstars (ver AAA)", GAME_NOT_WORKING ) - -/* Type 4: dual monitor output and 53936 on the ROM board, external palette RAM, DMA protection */ -GAME( 1996, vsnetscr, konamigx, gxtype4, type3, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAD)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, vsnetseb, vsnetscr, gxtype4, type3, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAB)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, vsnetscu, vsnetscr, gxtype4, type3, konamigx, ROT0, "Konami", "Versus Net Soccer (ver UAB)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, vsnetsca, vsnetscr, gxtype4, type3, konamigx, ROT0, "Konami", "Versus Net Soccer (ver AAA)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, vsnetscj, vsnetscr, gxtype4, type3, konamigx, ROT0, "Konami", "Versus Net Soccer (ver JAB)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, rungun2, konamigx, gxtype4, type3, konamigx, ROT0, "Konami", "Run and Gun 2 (ver UAA)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, slamdnk2, rungun2, gxtype4, type3, konamigx, ROT0, "Konami", "Slam Dunk 2 (ver JAA)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) -GAME( 1996, rushhero, konamigx, gxtype4, type3, konamigx, ROT0, "Konami", "Rushing Heroes (ver UAB)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) diff --git a/src/drivers/konamim2.c b/src/drivers/konamim2.c deleted file mode 100644 index 63d1656d1..000000000 --- a/src/drivers/konamim2.c +++ /dev/null @@ -1,517 +0,0 @@ -/* Konami M2 Hardware - - Preliminary driver by Ville Linde - - Games on this hardware: - ======================= - - Game | Konami ID - --------------------------------- - Evil Night | GN810 - Heat of Eleven '98 | GX703 - Tobe! Polystars | GX623 - Battle Tryst | G?636 - -*/ - -/* -Tobe! PolyStars -Konami, 1997 - -This game runs on 3DO-based Konami M2 hardware. - -PCB Layout ----------- - -Top Board - -[M]DFUP0882ZAM1 -FZ-20B1AK 7BKSA03500 (sticker) -|---------------------------------------------------| -| |--------------------| |----------| | -| |--------------------| |----------| | -| 2902 |---| |--------| | -| AK4309 CY2292S|---| |*2 | | 3DO | |-------| | -| |*1 | |---| | | |IBM | | -| 18MHz |---| | | |POWERPC| | -| | | |602 | | -| |--------| |-------| | -| D4516161 D4516161 | -| |---| |-------| | -|DSW |-------| |*3 | |IBM | | -| | | |---| |POWERPC| | -| D4516161 D4516161 | *4 | |602 | | -| | | |-------| | -| |-------| | -|---------------------------------------------------| -Notes: - AK4309 - Asahi Kasei Microsystems AK4309-VM Digital to Analog Converter (SOIC24) - 2902 - Japan Radio Co. JRC2902 Quad Operational Amplifier (SOIC14) - CY2292S - Cypress CY2292S Three-PLL General-Purpose EPROM Programmable Clock Generator (SOIC16) - XTALIN - 18.000MHz, XTALOUT - 18.000MHz, XBUF - 18.000MHz, CPUCLK - 25.2000MHz - CLKA - , CLKB - , CLKC - 16.9345MHz, CLKD - - 3DO - 9701 B861131 VY21118- CDE2 3DO 02473-001-0F (QFP208) - *1 - [M] JAPAN ASUKA 9651HX001 044 (QFP44) - *2 - Motorola MC44200FT - *3 - [M] BIG BODY 2 BU6244KS 704 157 (QFP56) - *4 - Unknown BGA chip (Graphics Engine, with heatsink attached) - DSW - 2 position dip switch - - -Bottom Board - -PWB403045B (C) 1997 KONAMI CO., LTD. -|----------------------------------------------------------| -| CN16 |--------------------| |----------| | -|LA4705 |--------------------| |----------| | -| NJM5532D 9.83MHz | -| 19.66MHz | -|J |--------| 93C46.7K |-| -|A | 058232 | 623B01.8Q | | -|M |--------| |------| | | -|M |------| |003461| | | -|A |056879| | | | |CN15 -| | | |------| | | -| TEST |------| | | -| | | -| DSW | | -| |-| -| | -|----------------------------------------------------------| -Notes: - 056879 - Konami custom IC, location 10E (QFP120) - 058232 - Konami custom ceramic flat pack IC, DAC? - 003461 - Konami custom IC, location 11K (QFP100) - CN16 - 4 pin connector for CD-DA in from CDROM - CN15 - Standard (PC-compatible) 40 pin IDE CDROM flat cable connector and 4 pin power plug connector, - connected to Panasonic CR-583 8-speed CDROM drive. - CDROM disc contains 1 data track & 24 audio tracks. Total Capacity: 581 MBytes - Konami part number: 003894 - Software revision: 623JAA02 - LA4705 - LA4705 Power Amplifier - 623B01.8Q- 16MBit MASKROM. Location 8Q (DIP42) - 93C46.7K - 128bytes x8bit Serial EEPROM. Location 7K (DIP8) - DSW - 8 position dip switch - -*/ - -#include "driver.h" -#include "cpu/powerpc/ppc.h" - -static UINT64 *main_ram; - -static UINT32 vdl0_address; -static UINT32 vdl1_address; - -VIDEO_START( m2 ) -{ - return 0; -} - -VIDEO_UPDATE( m2 ) -{ - int i, j; - - UINT32 fb_start = 0xffffffff; - if (vdl0_address != 0) - { - fb_start = *(UINT32*)&main_ram[(vdl0_address - 0x40000000) / 8] - 0x40000000; - } - - if (fb_start <= 0x800000) - { - UINT16 *frame = (UINT16*)&main_ram[fb_start/8]; - for (j=0; j < 384; j++) - { - UINT16 *fb = &frame[(j*512)]; - UINT16 *d = BITMAP_ADDR16(bitmap, j, 0); - for (i=0; i < 512; i++) - { - d[i^3] = *fb++; - } - } - } - else - { - fillbitmap(bitmap, 0, cliprect); - } - return 0; -} - -static READ64_HANDLER(unk1_r) -{ - return U64(0xffffffffffffffff); - //return 0; -} - -static READ64_HANDLER(unk2_r) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - return (UINT64)0xa5 << 32; - } - return 0; -} - -static UINT64 unk3 = -1; -static READ64_HANDLER(unk3_r) -{ - //return U64(0xffffffffffffffff); - return unk3; -} - -static UINT32 unk20004 = 0; -static READ64_HANDLER(unk4_r) -{ - UINT64 r = 0; - logerror("unk4_r: %08X, %08X%08X at %08X\n", offset, (UINT32)(mem_mask>>32), (UINT32)(mem_mask), activecpu_get_pc()); - - if (!(mem_mask & U64(0xffffffff00000000))) - { - // MCfg - r |= (UINT64)((0 << 13) | (5 << 10)) << 32; - } - if (!(mem_mask & U64(0x00000000ffffffff))) - { - r |= unk20004; - } - return r; -} - -static WRITE64_HANDLER(unk4_w) -{ - logerror("unk4_w: %08X%08X, %08X, %08X%08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), - offset, (UINT32)(mem_mask>>32), (UINT32)(mem_mask), activecpu_get_pc()); - - if (!(mem_mask & U64(0x00000000ffffffff))) - { - unk20004 = (UINT32)(data); - return; - } -} - -static int counter1 = 0; -static READ64_HANDLER(unk30000_r) -{ - counter1++; - return (UINT64)(counter1 & 0x7f) << 32; -} - -static READ64_HANDLER(unk30030_r) -{ - if (!(mem_mask & U64(0x00000000ffffffff))) - { - return 1; - } - return 0; -} - -static READ64_HANDLER(unk4000280_r) -{ - // SysCfg - - UINT32 sys_config = 0x03600000; - - sys_config |= 0 << 0; // Bit 0: PAL/NTSC switch (default is selected by encoder) - sys_config |= 0 << 2; // Bit 2-3: Video Encoder (0 = MEIENC, 1 = VP536, 2 = BT9103, 3 = DENC) - sys_config |= 3 << 11; // Bit 11-12: Country - // 0 = ??? - // 1 = UK - // 2 = Japan - // 3 = US - sys_config |= 0xb << 15; // Bit 15-18: 0x8 = AC-DevCard - // 0xb = AC-CoreBoard - // 0xc = DevCard (not allowed) - // 0xe = Upgrade (not allowed) - // 0xf = Multiplayer (not allowed) - sys_config |= 3 << 29; // Bit 29-30: Audio chip (1 = CS4216, 3 = Asahi AK4309) - - return ((UINT64)(sys_config) << 32); - -} - -static WRITE64_HANDLER(unk4000010_w) -{ - if ((data & 0xff) == 0xd) - { - mame_printf_debug("\n"); - } - else - { - mame_printf_debug("%c", (UINT8)(data & 0xff)); - } -} - -static WRITE64_HANDLER(unk4000418_w) -{ -} - -static WRITE64_HANDLER(reset_w) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - if (data & U64(0x100000000)) - { - cpunum_set_input_line(0, INPUT_LINE_RESET, PULSE_LINE); - unk3 = 0; - } - } -} - -static WRITE64_HANDLER(video_w) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - vdl0_address = (UINT32)(data >> 32); - } - if (!(mem_mask & U64(0x00000000ffffffff))) - { - vdl1_address = (UINT32)(data); - } -} - - -static int cde_num_status_bytes = 0; - -static READ64_HANDLER(cde_r) -{ - UINT32 r = 0; - int reg = offset * 2; - - if (!(mem_mask & U64(0x00000000ffffffff))) - reg++; - - switch (reg) - { - case 0x000/4: - { - r = (0x01) << 16; // Device identifier, 1 = CDE - break; - } - case 0x018/4: - { - r = 0x100038; - break; - } - case 0x02c/4: - { - r = 3; - if (cde_num_status_bytes > 0) - { - r |= 0x100; - } - cde_num_status_bytes--; - break; - } - - case 0x2a0/4: - { - r = 0x20; - break; - } - - default: - { - // mame_printf_debug("cde_r: %08X at %08X\n", reg*4, activecpu_get_pc()); - break; - } - } - - if (reg & 1) - { - return (UINT64)(r); - } - else - { - return (UINT64)(r) << 32; - } -} - -static WRITE64_HANDLER(cde_w) -{ - int reg = offset * 2; - UINT32 d; - - if (!(mem_mask & U64(0x00000000ffffffff))) - { - reg++; - d = (UINT32)(data); - } - else - { - d = (UINT32)(data >> 32); - } - - switch (reg) - { - case 0x028/4: // Command write - { - if (d != 0x180 && d != 0) - { - //mame_printf_debug("CDE: command %08X\n", d); - } - - switch (d) - { - case 0x83: cde_num_status_bytes = 0xc; break; - case 0x0180: break; - default: break; - } - break; - } - case 0x418/4: // ??? - { - break; - } - - default: - { - - // mame_printf_debug("cde_w: %08X, %08X at %08X\n", d, reg*4, activecpu_get_pc()); - break; - } - } -} - -static READ64_HANDLER(cpu_r) -{ - UINT64 r = 0; - - if (!(mem_mask & U64(0xffffffff00000000))) - { - r = (UINT64)(cpu_getactivecpu() ? 0x80000000 : 0); - //r |= 0x40000000; // sets Video-LowRes !? - return r << 32; - } - - return 0; -} - -static ADDRESS_MAP_START( m2_main, ADDRESS_SPACE_PROGRAM, 64 ) - AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(unk4_r, unk4_w) - AM_RANGE(0x00030000, 0x00030007) AM_READ(unk30000_r) - AM_RANGE(0x00030010, 0x00030017) AM_WRITE(video_w) - AM_RANGE(0x00030030, 0x00030037) AM_READ(unk30030_r) - AM_RANGE(0x01000000, 0x01000fff) AM_READWRITE(cde_r, cde_w) - AM_RANGE(0x04000010, 0x04000017) AM_WRITE(unk4000010_w) - AM_RANGE(0x04000018, 0x0400001f) AM_READ(unk1_r) - AM_RANGE(0x04000020, 0x04000027) AM_WRITE(reset_w) - AM_RANGE(0x04000418, 0x0400041f) AM_WRITE(unk4000418_w) - AM_RANGE(0x04000208, 0x0400020f) AM_READ(unk3_r) - AM_RANGE(0x04000280, 0x04000287) AM_READ(unk4000280_r) - AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r) - AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_SHARE(2) - AM_RANGE(0x40000000, 0x407fffff) AM_RAM AM_SHARE(3) AM_BASE(&main_ram) - AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(2) -ADDRESS_MAP_END - -INPUT_PORTS_START( m2 ) -INPUT_PORTS_END - - -static ppc_config ppc602_config = -{ - PPC_MODEL_602, - 0x20, /* Multiplier 2, Bus = 33MHz, Core = 66MHz */ - BUS_FREQUENCY_33MHZ -}; - -static INTERRUPT_GEN(m2) -{ - //cpunum_set_input_line(0, INPUT_LINE_IRQ1, ASSERT_LINE); -} - -static MACHINE_DRIVER_START( m2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(PPC602, 33000000) /* actually PPC602, 66MHz */ - MDRV_CPU_CONFIG(ppc602_config) - MDRV_CPU_PROGRAM_MAP(m2_main, 0) - MDRV_CPU_VBLANK_INT(m2, 1) - - MDRV_CPU_ADD(PPC602, 33000000) /* actually PPC602, 66MHz */ - MDRV_CPU_CONFIG(ppc602_config) - MDRV_CPU_PROGRAM_MAP(m2_main, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(640, 480) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(m2) - MDRV_VIDEO_UPDATE(m2) - -MACHINE_DRIVER_END - - -#define ROM_REGION64_BE(length,type,flags) ROM_REGION(length, type, (flags) | ROMREGION_64BIT | ROMREGION_BE) - -ROM_START(polystar) - ROM_REGION64_BE(0x200000, REGION_USER1, 0) /* boot rom */ - ROM_LOAD16_WORD("623b01.8q", 0x000000, 0x200000, CRC(bd879f93) SHA1(e2d63bfbd2b15260a2664082652442eadea3eab6)) - - ROM_REGION( 0x80, REGION_USER2, 0 ) /* serial eeprom */ - ROM_LOAD( "93c46.7k", 0x000000, 0x000080, CRC(66d02984) SHA1(d07c57d198c611b6ff67a783c20a3d038ba34cd1) ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE( "623jaa02", 0, MD5(6071c1b70c190fa7c50676eb5308e024) SHA1(a7dc6086d0244b5472f61b41992623c7a9dc2e9c)) -ROM_END - -ROM_START(btltryst) - ROM_REGION64_BE(0x200000, REGION_USER1, 0) /* boot rom */ - ROM_LOAD16_WORD("636a01.8q", 0x000000, 0x200000, CRC(7b1dc738) SHA1(32ae8e7ddd38fcc70b4410275a2cc5e9a0d7d33b)) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE( "btltryst", 0, MD5(4286d25a896d1450705f742cccd26ef2) SHA1(becc606b8480f6a09365b611565d83cfdc82b0b3)) -ROM_END - -ROM_START(heatof11) - ROM_REGION64_BE(0x200000, REGION_USER1, 0) /* boot rom */ - ROM_LOAD16_WORD("636a01.8q", 0x000000, 0x200000, CRC(7b1dc738) SHA1(32ae8e7ddd38fcc70b4410275a2cc5e9a0d7d33b)) - - ROM_REGION( 0x2000, REGION_USER2, 0 ) /* timekeeper eeprom */ - ROM_LOAD( "dallas.5e", 0x000000, 0x002000, CRC(8611ff09) SHA1(6410236947d99c552c4a1f7dd5fd8c7a5ae4cba1) ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE( "heatof11", 0, MD5(1eef9f191439f13d1a867629226b0230) SHA1(87599d03aecadf5d119d05173bdef2940bcce515)) -ROM_END - -ROM_START(evilngt) - ROM_REGION64_BE(0x200000, REGION_USER1, 0) /* boot rom */ - ROM_LOAD16_WORD("636a01.8q", 0x000000, 0x200000, CRC(7b1dc738) SHA1(32ae8e7ddd38fcc70b4410275a2cc5e9a0d7d33b)) - - ROM_REGION( 0x1000, REGION_USER2, 0 ) /* timekeeper eeprom */ - ROM_LOAD( "m48t58y.u1", 0x000000, 0x001000, CRC(169bb8f4) SHA1(55c0bafab5d309fe69156489186e232aa87ca0dd) ) -ROM_END - -ROM_START(totlvice) - ROM_REGION64_BE(0x200000, REGION_USER1, 0) /* boot rom */ - ROM_LOAD16_WORD("636a01.8q", 0x000000, 0x200000, CRC(7b1dc738) SHA1(32ae8e7ddd38fcc70b4410275a2cc5e9a0d7d33b)) - - ROM_REGION( 0x100000, REGION_USER2, 0 ) /* sound rom on sub board */ - ROM_LOAD( "639jaa02.bin", 0x000000, 0x100000, CRC(c6163818) SHA1(b6f8f2d808b98610becc0a5be5443ece3908df0b) ) -ROM_END - -static DRIVER_INIT( polystar ) -{ -} - -static DRIVER_INIT( btltryst ) -{ -} - -static DRIVER_INIT( m2 ) -{ -} - - -GAME( 1997, polystar, 0, m2, m2, polystar, ROT0, "Konami", "Tobe! Polystars (ver JAA)", GAME_NOT_WORKING | GAME_NO_SOUND ) -GAME( 1997, totlvice, 0, m2, m2, m2, ROT0, "Konami", "Total Vice (ver JAA)", GAME_NOT_WORKING | GAME_NO_SOUND ) -GAME( 1998, btltryst, 0, m2, m2, btltryst, ROT0, "Konami", "Battle Tryst (ver JAC)", GAME_NOT_WORKING | GAME_NO_SOUND ) -GAME( 1998, heatof11, 0, m2, m2, m2, ROT0, "Konami", "Heat of Eleven '98 (ver EAA)", GAME_NOT_WORKING | GAME_NO_SOUND ) -GAME( 1998, evilngt, 0, m2, m2, m2, ROT0, "Konami", "Evil Night (ver EAA)", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/ksys573.c b/src/drivers/ksys573.c deleted file mode 100644 index 9d5c4ce61..000000000 --- a/src/drivers/ksys573.c +++ /dev/null @@ -1,2310 +0,0 @@ -/*************************************************************************** - - Konami System 573 - =========================================================== - Driver by R. Belmont & smf - - NOTE: The first time you run each game, it will go through a special initialization - procedure. This can be quite lengthy (in the case of Dark Horse Legend). Let it - complete all the way before exiting MAME and you will not have to do it again! - - NOTE 2: The first time you run Konami 80's Gallery, it will dump you on a clock - setting screen. Press DOWN to select "SAVE AND EXIT" then press player 1 START - to continue. - - TODO: - * fix root counters in machine/psx.c so the hack here (actually MAME 0.89's machine/psx.c code) - can be removed - * integrate ATAPI code with Aaron's ATA/IDE code - - ----------------------------------------------------------------------------------------- - - System 573 Hardware Overview - Konami, 1998-2001 - - This system uses Konami PSX-based hardware with an ATAPI CDROM drive. - There is a slot for a security cart (cart is installed in CN14) and also a PCMCIA card slot, - which is unused. The main board and CDROM drive are housed in a black metal box. - The games can be swapped by exchanging the CDROM disc and the security cart, whereby the main-board - FlashROMs are re-programmed after a small wait. On subsequent power-ups, there is a check to test if the - contents of the FlashROMs matches the CDROM, then the game boots up immediately. - - The games that run on this system include... - - Game Year Hardware Code CD Code - -------------------------------------------------------------------------- - *Anime Champ 2000 - Bass Angler 1998 GE765 JA 765 JA A02 - *Bass Angler 2 1999 - Dark Horse Legend 1998 GX706 JA 706 JA A02 - *Dark Horse 2 ? - *Fighting Mania 2000 - Fisherman's Bait 1998 GE765 UA 765 UA B02 - Fisherman's Bait 2 1998 GC865 UA 865 UA B02 - Fisherman's Bait Marlin Challenge 1999 - *Gun Mania 2001 - *Gun Mania Zone Plus 2001 - *Gachaga Champ 1999 - *Hyper Bishi Bashi 1999 - *Hyper Bishi Bashi Champ 2000 - Jikkyo Pawafuru Pro Yakyu 1998 GX802 JA 802 JA B02 - *Kick & Kick 2001 - Konami 80's Arcade Gallery 1998 GC826 JA 826 JA A01 - Konami 80's AC Special 1998 GC826 UA 826 UA A01 - Salary Man Champ 2001 - *Step Champ 1999 - - Note: - Not all games listed above are confirmed to run on System 573. - * - denotes not dumped yet. If you can help with the remaining undumped System 573 games, - please contact http://www.mameworld.net/gurudumps/comments.html - - - Main PCB Layout - --------------- - External controls port - GX700-PWB(A)B || - (C)1997 KONAMI CO. LTD. \/ - |-----------------------------------------------------==============-------| - | CN15 CNA CN10 | - | CN16 | - | |------------------------| - | PQ30RV21 | | - | |-------| | | - | KM416V256 |SONY | | PCMCIA SLOT | - | |CXD2925| | | - | |-------| | | - | | | - | |------------------------| - | |-----| CN21 | - | |32M | |---------| |---------| | - | |-----| |SONY | |SONY | | - | |CXD8561Q | |CXD8530CQ| 29F016 29F016 |--| | - | |-----| | | | | | | | - | |32M | | | | | | | | - | |-----| |---------| |---------| 29F016 29F016 | | | - | 53.693175MHz 67.7376MHz | | | - | |-----| | |CN14| - | KM48V514 KM48V514 |9536 | 29F016 29F016 | | | - | KM48V514 KM48V514 | | | | | - | KM48V514 KM48V514 |-----| | | | - | KM48V514 KM48V514 29F016 29F016 |--| | - | MC44200FT M48T58Y-70PC1 | - | CN12| - | 700A01.22 | - | 14.7456MHz | - | |-------| | - | |KONAMI | |----| LA4705| - | 058232 |056879 | |3644| SM5877 | - | | | |----| ADC0834 LM358| - | |-------| ADM485 CN4 | - | CN3 CN17 | - | TEST_SW DIP4 USB CN8 RCA-L/R CN9 | - |--| JAMMA |-------------------------------------------| - |---------------------------| - Notes: - CNA - 40-pin IDE cable connector - CN3 - 10-pin connector labelled 'ANALOG', connected to a 9-pin DSUB connector mounted in the - front face of the housing, labelled 'OPTION1' - CN4 - 12-pin connector labelled 'EXT-OUT' - CN5 - 10-pin connector labelled 'EXT-IN', connected to a 9-pin DSUB connector mounted in the - front face of the housing, labelled 'OPTION2' - CN8 - 15-pin DSUB plug labelled 'VGA-DSUB15' extending from the front face of the housing - labelled 'RGB'. Use of this connector is optional because the video is output via the - standard JAMMA connector - CN9 - 4-pin connector for amplified stereo sound output to 2 speakers - CN10 - Custom 80-pin connector (for mounting an additional plug-in board for extra controls, - possibly with CN21 also) - CN12 - 4-pin CD-DA input connector (for Red-Book audio from CDROM drive to main board) - CN14 - 44-pin security cartridge connector. The cartridge only contains a small PCB labelled - 'GX700-PWB(D) (C)1997 KONAMI' and has locations for 2 ICs only - IC1 - Small SOIC8 chip, identified as a XICOR X76F041 security supervisor containing 4X - 128 x8 secureFLASH arrays, stamped '0038323 E9750' - IC2 - Solder pads for mounting of a PLCC68 or QFP68 packaged IC (not populated) - CN15 - 4-pin CDROM power connector - CN16 - 2-pin fan connector - CN17 - 6-pin power connector, connected to an 8-pin power plug mounted in the front face - of the housing. This can be left unused because the JAMMA connector supplies all power - requirements to the PCB - CN21 - Custom 30-pin connector (purpose unknown, but probably for mounting an additional - plug-in board with CN10 also) - TEST_SW - Push-button test switch - DIP4 - 4-position DIP switch - USB - USB connector extended from the front face of the housing labelled 'I/O' - RCA-L/R - RCA connectors for left/right audio output - PQ30RV21 - Sharp PQ30RV21 low-power voltage regulator (5 Volt to 3 Volt) - LA4705 - Sanyo LA4705 15W 2-channel power amplifier (SIP18) - LM358 - National Semiconductor LM358 low power dual operational amplifier (SOIC8, @ 33C) - CXD2925Q - Sony CXD2925Q SPU (QFP100, @ 15Q) - CXD8561Q - Sony CXD8561Q GTE (QFP208, @ 10M) - CXD8530CQ - Sony CXD8530CQ R3000-based CPU (QFP208, @ 17M) - 9536 - Xilinx XC9536 in-system-programmable CPLD (PLCC44, @ 22J) - 3644 - Hitachi H8/3644 HD6473644H microcontroller with 32k ROM & 1k RAM (QFP64, @ 18E, - labelled '700 02 38920') - 056879 - Konami 056879 custom IC (QFP120, @ 13E) - MC44200FT - Motorola MC44200FT Triple 8-bit Video DAC (QFP44) - 058232 - Konami 058232 custom ceramic IC (SIP14, @ 6C) - SM5877 - Nippon Precision Circuits SM5877 2-channel D/A convertor (SSOP24, @32D) - ADM485 - Analog Devices ADM485 low power EIA RS-485 transceiver (SOIC8, @ 20C) - ADC0834 - National Semiconductor ADC0834 8-Bit Serial I/O A/D Converter with Multiplexer - Option (SOIC14, @ 24D) - M48T58Y-70- STMicroelectronics M48T58Y-70PC1 8k x8 Timekeeper RAM (DIP32, @ 22H) - Note that this is not used for protection. If you put in a new blank Timekeeper RAM - it will be programmed with some data on power-up. If you swap games, the Timekeeper - is updated with the new game data - 29F016 Fujitsu 29F016A-90PFTN 2M x8 FlashROM (TSOP48, @ 27H/J/L/M & 31H/J/L/M) - Also found Sharp LH28F016S (2M x8 TSOP40) in some units - KM416V256 - Samsung Electronics KM416V256BT-7 256k x 16 DRAM (TSOP44/40, @ 11Q) - KM48V514 - Samsung Electronics KM48V514BJ-6 512k x 8 EDO DRAM (SOJ28, @ 16G/H, 14G/H, 12G/H, 9G/H) - 32M - NEC D481850GF-A12 128k x 32Bit x 2 Banks SGRAM (QFP100, @ 4P & 4L) - - Software - - - 700A01.22G 4M MaskROM (DIP32, @ 22G) - - SONY ATAPI CDROM drive, with CDROM disc containing program + graphics + sound - Some System 573 units contain a CR-583 drive dated October 1997, some contain a - CR-587 drive dated March 1998. Note that the CR-587 will not read CDR discs ;-) - - - Auxillary Controls PCB - ---------------------- - - GE765-PWB(B)A (C)1998 KONAMI CO. LTD. - |-----------------------------| - | CN33 C2242 | - | C2242 | - | NRPS11-G1A | - | CN35| - | D4701 | - | 74LS14 PC817 |-----------------| - | | - | PAL PAL | - | (E765B1) (E765B2) LCX245 | - | | - | 74LS174 PAL | - | (E765B1) | - | | - | 74LS174 CN31 | - |-----------------------------------------------| - Notes: (all IC's shown) - This PCB is known to be used for the fishing reel controls on all of the fishing games (at least). - - CN31 - Connector joining this PCB to the MAIN PCB - CN33 - Connector used to join the external controls connector mounted on the outside of the - metal case to this PCB. - CN35 - Power connector - NRPS11-G1A - Relay? - D4701 - NEC uPD4701 Encoder (SOP24) - C2242 - 2SC2242 Transistor - PC817 - Sharp PC817 Photo-coupler IC (DIP4) - PAL - AMD PALCE16V8Q, stamped 'E765Bx' (DIP20) -*/ - -#include "driver.h" -#include "state.h" -#include "cdrom.h" -#include "cpu/mips/psx.h" -#include "includes/psx.h" -#include "machine/intelfsh.h" -#include "machine/scsidev.h" -#include "machine/timekpr.h" -#include "machine/adc083x.h" -#include "machine/upd4701.h" -#include "machine/x76f041.h" -#include "sound/psx.h" -#include "sound/cdda.h" -#include - -#define VERBOSE_LEVEL ( 0 ) - -INLINE void verboselog( int n_level, const char *s_fmt, ... ) -{ - if( VERBOSE_LEVEL >= n_level ) - { - va_list v; - char buf[ 32768 ]; - va_start( v, s_fmt ); - vsprintf( buf, s_fmt, v ); - va_end( v ); - if( cpu_getactivecpu() != -1 ) - { - logerror( "%08x: %s", activecpu_get_pc(), buf ); - } - else - { - logerror( "(timer) : %s", buf ); - } - } -} - -static INT32 flash_bank; -static int flash_chips; -static int onboard_flash_start; -static int pccard1_flash_start; -static int pccard2_flash_start; -static int pccard3_flash_start; -static int pccard4_flash_start; - - -/* EEPROM handlers */ - -static NVRAM_HANDLER( konami573 ) -{ - int i; - - nvram_handler_timekeeper_0( machine, file, read_or_write ); - nvram_handler_x76f041_0( machine, file, read_or_write ); - - for( i = 0; i < flash_chips; i++ ) - { - nvram_handler_intelflash( machine, i, file, read_or_write ); - } -} - -static WRITE32_HANDLER( mb89371_w ) -{ - verboselog( 2, "mb89371_w %08x %08x %08x\n", offset, mem_mask, data ); -} - -static READ32_HANDLER( mb89371_r ) -{ - UINT32 data = 0xffffffff; - verboselog( 2, "mb89371_r %08x %08x\n", offset, mem_mask, data ); - return data; -} - -UINT32 stage_mask = 0xffffffff; - -static READ32_HANDLER( jamma_r ) -{ - UINT32 data = 0; - - switch (offset) - { - case 0: - data = readinputport(0); - break; - case 1: - data = readinputport(1); - data |= 0x000000c0; - data |= adc083x_do_read( 0 ) << 16; - data |= x76f041_sda_read( 0 ) << 18; - if( pccard1_flash_start < 0 ) - { - data |= ( 1 << 26 ); - } - if( pccard2_flash_start < 0 ) - { - data |= ( 1 << 27 ); - } - break; - case 2: - data = readinputport(2) & stage_mask; - break; - case 3: - data = readinputport(3); - break; - } - - verboselog( 2, "jamma_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - - return data; -} - -static WRITE32_HANDLER( jamma_w ) -{ - verboselog( 2, "jamma_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - switch( offset ) - { - case 0: - adc083x_cs_write( 0, ( data >> 1 ) & 1 ); - adc083x_clk_write( 0, ( data >> 2 ) & 1 ); - adc083x_di_write( 0, ( data >> 0 ) & 1 ); - adc083x_se_write( 0, 0 ); - break; - - default: - verboselog( 0, "jamma_w: unhandled offset %08x %08x %08x\n", offset, mem_mask, data ); - break; - } -} - -static UINT32 control; - -static READ32_HANDLER( control_r ) -{ - verboselog( 2, "control_r( %08x, %08x ) %08x\n", offset, mem_mask, control ); - - return control; -} - -static WRITE32_HANDLER( control_w ) -{ -// int old_bank = flash_bank; - COMBINE_DATA(&control); - - verboselog( 2, "control_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - flash_bank = -1; - - if( onboard_flash_start >= 0 && ( control & ~0x43 ) == 0x00 ) - { - flash_bank = onboard_flash_start + ( ( control & 3 ) * 2 ); -// if( flash_bank != old_bank ) mame_printf_debug( "onboard %d\r", control & 3 ); - } - else if( pccard1_flash_start >= 0 && ( control & ~0x47 ) == 0x10 ) - { - flash_bank = pccard1_flash_start + ( ( control & 7 ) * 2 ); -// if( flash_bank != old_bank ) mame_printf_debug( "pccard1 %d\r", control & 7 ); - } - else if( pccard2_flash_start >= 0 && ( control & ~0x47 ) == 0x20 ) - { - flash_bank = pccard2_flash_start + ( ( control & 7 ) * 2 ); -// if( flash_bank != old_bank ) mame_printf_debug( "pccard2 %d\r", control & 7 ); - } - else if( pccard3_flash_start >= 0 && ( control & ~0x47 ) == 0x20 ) - { - flash_bank = pccard3_flash_start + ( ( control & 7 ) * 2 ); -// if( flash_bank != old_bank ) mame_printf_debug( "pccard3 %d\r", control & 7 ); - } - else if( pccard4_flash_start >= 0 && ( control & ~0x47 ) == 0x28 ) - { - flash_bank = pccard4_flash_start + ( ( control & 7 ) * 2 ); -// if( flash_bank != old_bank ) mame_printf_debug( "pccard4 %d\r", control & 7 ); - } -} - -#define ATAPI_CYCLES_PER_SECTOR (5000) // plenty of time to allow DMA setup etc. BIOS requires this be at least 2000, individual games may vary. - -static UINT8 atapi_regs[16]; -static void *atapi_timer; -static pSCSIDispatch atapi_device; -static void *atapi_device_data; - -#define ATAPI_STAT_BSY 0x80 -#define ATAPI_STAT_DRDY 0x40 -#define ATAPI_STAT_DMARDDF 0x20 -#define ATAPI_STAT_SERVDSC 0x10 -#define ATAPI_STAT_DRQ 0x08 -#define ATAPI_STAT_CORR 0x04 -#define ATAPI_STAT_CHECK 0x01 - -#define ATAPI_INTREASON_COMMAND 0x01 -#define ATAPI_INTREASON_IO 0x02 -#define ATAPI_INTREASON_RELEASE 0x04 - -#define ATAPI_REG_DATA 0 -#define ATAPI_REG_ERRFEAT 1 -#define ATAPI_REG_INTREASON 2 -#define ATAPI_REG_SAMTAG 3 -#define ATAPI_REG_COUNTLOW 4 -#define ATAPI_REG_COUNTHIGH 5 -#define ATAPI_REG_DRIVESEL 6 -#define ATAPI_REG_CMDSTATUS 7 - -static UINT16 atapi_data[32*1024]; -static UINT8 atapi_scsi_packet[32*1024]; -static int atapi_data_ptr, atapi_data_len, atapi_xferlen, atapi_xferbase, atapi_cdata_wait, atapi_xfermod; - -static UINT8 sector_buffer[ 4096 ]; - -#define MAX_TRANSFER_SIZE ( 63488 ) - -static void atapi_xfer_end( int x ) -{ - int i, n_this; - - timer_adjust(atapi_timer, TIME_NEVER, 0, 0); - -// verboselog( 2, "atapi_xfer_end( %d ) atapi_xferlen = %d, atapi_xfermod=%d\n", x, atapi_xfermod, atapi_xferlen ); - -// mame_printf_debug("ATAPI: xfer_end. xferlen = %d, atapi_xfermod = %d\n", atapi_xferlen, atapi_xfermod); - - while (atapi_xferlen > 0 ) - { - // get a sector from the SCSI device - atapi_device(SCSIOP_READ_DATA, atapi_device_data, 2048, sector_buffer); - - atapi_xferlen -= 2048; - - i = 0; - n_this = 2048 / 4; - while( n_this > 0 ) - { - g_p_n_psxram[ atapi_xferbase / 4 ] = - ( sector_buffer[ i + 0 ] << 0 ) | - ( sector_buffer[ i + 1 ] << 8 ) | - ( sector_buffer[ i + 2 ] << 16 ) | - ( sector_buffer[ i + 3 ] << 24 ); - atapi_xferbase += 4; - i += 4; - n_this--; - } - } - - if (atapi_xfermod > MAX_TRANSFER_SIZE) - { - atapi_xferlen = MAX_TRANSFER_SIZE; - atapi_xfermod = atapi_xfermod - MAX_TRANSFER_SIZE; - } - else - { - atapi_xferlen = atapi_xfermod; - atapi_xfermod = 0; - } - - if (atapi_xferlen > 0) - { - //mame_printf_debug("ATAPI: starting next piece of multi-part transfer\n"); - atapi_regs[ATAPI_REG_COUNTLOW] = atapi_xferlen & 0xff; - atapi_regs[ATAPI_REG_COUNTHIGH] = (atapi_xferlen>>8)&0xff; - - timer_adjust(atapi_timer, TIME_IN_CYCLES((ATAPI_CYCLES_PER_SECTOR * (atapi_xferlen/2048)), 0), 0, 0); - } - else - { - //mame_printf_debug("ATAPI: Transfer completed, dropping DRQ\n"); - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRDY; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO | ATAPI_INTREASON_COMMAND; - } - - psx_irq_set(0x400); -} - -static READ32_HANDLER( atapi_r ) -{ - int reg, data; - int i; - - if (mem_mask == 0xffff0000) // word-wide command read - { -// mame_printf_debug("ATAPI: packet read = %04x\n", atapi_data[atapi_data_ptr]); - - // assert IRQ and drop DRQ - if (atapi_data_ptr == 0 && atapi_data_len == 0) - { - while( atapi_xferlen > 0 ) - { - int transfer = atapi_xferlen; - if( transfer > 2048 ) - { - transfer = 2048; - } - - // get the data from the device - atapi_device(SCSIOP_READ_DATA, atapi_device_data, transfer, sector_buffer); - - // fix it up in an endian-safe way - for (i = 0; i < transfer; i += 2) - { - atapi_data[ atapi_data_len++ ] = sector_buffer[i] | sector_buffer[i+1]<<8; - } - - atapi_xferlen -= transfer; - } - - if (atapi_xfermod > MAX_TRANSFER_SIZE) - { - atapi_xferlen = MAX_TRANSFER_SIZE; - atapi_xfermod = atapi_xfermod - MAX_TRANSFER_SIZE; - } - else - { - atapi_xferlen = atapi_xfermod; - atapi_xfermod = 0; - } - - verboselog( 2, "atapi_r: atapi_xferlen=%d\n", atapi_xferlen ); - if( atapi_xferlen != 0 ) - { - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_SERVDSC; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; - } - else - { - //mame_printf_debug("ATAPI: dropping DRQ\n"); - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; - } - - atapi_regs[ATAPI_REG_COUNTLOW] = atapi_xferlen & 0xff; - atapi_regs[ATAPI_REG_COUNTHIGH] = (atapi_xferlen>>8)&0xff; - - psx_irq_set(0x400); - } - - if( atapi_data_ptr < atapi_data_len ) - { - data = atapi_data[atapi_data_ptr++]; - if( atapi_data_ptr >= atapi_data_len ) - { -// verboselog( 2, "atapi_r: read all bytes\n" ); - atapi_data_ptr = 0; - atapi_data_len = 0; - - if( atapi_xferlen == 0 ) - { - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; - psx_irq_set(0x400); - } - } - } - else - { - data = 0; - } - } - else - { - int shift; - reg = offset<<1; - shift = 0; - if (mem_mask == 0xff00ffff) - { - reg += 1; - shift = 16; - } - - data = atapi_regs[reg]; - - switch( reg ) - { - case ATAPI_REG_DATA: - verboselog( 1, "atapi_r: data=%02x\n", data ); - break; - case ATAPI_REG_ERRFEAT: - verboselog( 1, "atapi_r: errfeat=%02x\n", data ); - break; - case ATAPI_REG_INTREASON: - verboselog( 1, "atapi_r: intreason=%02x\n", data ); - break; - case ATAPI_REG_SAMTAG: - verboselog( 1, "atapi_r: samtag=%02x\n", data ); - break; - case ATAPI_REG_COUNTLOW: - verboselog( 1, "atapi_r: countlow=%02x\n", data ); - break; - case ATAPI_REG_COUNTHIGH: - verboselog( 1, "atapi_r: counthigh=%02x\n", data ); - break; - case ATAPI_REG_DRIVESEL: - verboselog( 1, "atapi_r: drivesel=%02x\n", data ); - break; - case ATAPI_REG_CMDSTATUS: - verboselog( 1, "atapi_r: cmdstatus=%02x\n", data ); - break; - } - -// mame_printf_debug("ATAPI: read reg %d = %x (PC=%x)\n", reg, data, activecpu_get_pc()); - - data <<= shift; - } - - verboselog( 2, "atapi_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - return data; -} - -static WRITE32_HANDLER( atapi_w ) -{ - int reg; - int i; - - verboselog( 2, "atapi_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - if (mem_mask == 0xffff0000) // word-wide command write - { - verboselog( 2, "atapi_w: data=%04x\n", data ); - -// mame_printf_debug("ATAPI: packet write %04x\n", data); - atapi_data[atapi_data_ptr++] = data; - - if (atapi_cdata_wait) - { -// mame_printf_debug("ATAPI: waiting, ptr %d wait %d\n", atapi_data_ptr, atapi_cdata_wait); - if (atapi_data_ptr == atapi_cdata_wait) - { - // decompose SCSI packet into proper byte order - for (i = 0; i < atapi_cdata_wait; i += 2) - { - atapi_scsi_packet[i] = atapi_data[i/2]&0xff; - atapi_scsi_packet[i+1] = atapi_data[i/2]>>8; - } - - // send it to the device - atapi_device(SCSIOP_WRITE_DATA, atapi_device_data, atapi_cdata_wait, atapi_scsi_packet); - - // assert IRQ - psx_irq_set(0x400); - - // not sure here, but clear DRQ at least? - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - } - } - - if ((!atapi_cdata_wait) && (atapi_data_ptr == 6)) - { - verboselog( 2, "atapi_w: command %02x\n", atapi_data[0]&0xff ); - - // reset data pointer for reading SCSI results - atapi_data_ptr = 0; - atapi_data_len = 0; - - // decompose SCSI packet into proper byte order - for (i = 0; i < 16; i += 2) - { - atapi_scsi_packet[i] = atapi_data[i/2]&0xff; - atapi_scsi_packet[i+1] = atapi_data[i/2]>>8; - } - - // send it to the SCSI device - atapi_xferlen = atapi_device(SCSIOP_EXEC_COMMAND, atapi_device_data, 0, atapi_scsi_packet); - - if (atapi_xferlen != -1) - { -// mame_printf_debug("ATAPI: SCSI command %02x returned %d bytes from the device\n", atapi_data[0]&0xff, atapi_xferlen); - - // store the returned command length in the ATAPI regs, splitting into - // multiple transfers if necessary - atapi_xfermod = 0; - if (atapi_xferlen > MAX_TRANSFER_SIZE) - { - atapi_xfermod = atapi_xferlen - MAX_TRANSFER_SIZE; - atapi_xferlen = MAX_TRANSFER_SIZE; - } - - atapi_regs[ATAPI_REG_COUNTLOW] = atapi_xferlen & 0xff; - atapi_regs[ATAPI_REG_COUNTHIGH] = (atapi_xferlen>>8)&0xff; - - if (atapi_xferlen == 0) - { - // if no data to return, set the registers properly - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRDY; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO|ATAPI_INTREASON_COMMAND; - } - else - { - // indicate data ready: set DRQ and DMA ready, and IO in INTREASON - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_SERVDSC; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; - } - - // perform special ATAPI processing of certain commands - switch (atapi_data[0]&0xff) - { - case 0x55: // MODE SELECT - atapi_cdata_wait = atapi_data[4]/2; - break; - - case 0x00: // BUS RESET / TEST UNIT READY - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - break; - - case 0x45: // PLAY - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_BSY; - timer_adjust( atapi_timer, TIME_IN_CYCLES( ATAPI_CYCLES_PER_SECTOR, 0 ), 0, 0 ); - break; - - case 0xbb: // SET CDROM SPEED - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - break; - } - - // assert IRQ - psx_irq_set(0x400); - } - else - { -// mame_printf_debug("ATAPI: SCSI device returned error!\n"); - - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_CHECK; - atapi_regs[ATAPI_REG_ERRFEAT] = 0x50; // sense key = ILLEGAL REQUEST - atapi_regs[ATAPI_REG_COUNTLOW] = 0; - atapi_regs[ATAPI_REG_COUNTHIGH] = 0; - } - } - } - else - { - reg = offset<<1; - if (mem_mask == 0xff00ffff) - { - reg += 1; - data >>= 16; - } - - switch( reg ) - { - case ATAPI_REG_DATA: - verboselog( 1, "atapi_w: data=%02x\n", data ); - break; - case ATAPI_REG_ERRFEAT: - verboselog( 1, "atapi_w: errfeat=%02x\n", data ); - break; - case ATAPI_REG_INTREASON: - verboselog( 1, "atapi_w: intreason=%02x\n", data ); - break; - case ATAPI_REG_SAMTAG: - verboselog( 1, "atapi_w: samtag=%02x\n", data ); - break; - case ATAPI_REG_COUNTLOW: - verboselog( 1, "atapi_w: countlow=%02x\n", data ); - break; - case ATAPI_REG_COUNTHIGH: - verboselog( 1, "atapi_w: counthigh=%02x\n", data ); - break; - case ATAPI_REG_DRIVESEL: - verboselog( 1, "atapi_w: drivesel=%02x\n", data ); - break; - case ATAPI_REG_CMDSTATUS: - verboselog( 1, "atapi_w: cmdstatus=%02x\n", data ); - break; - } - - atapi_regs[reg] = data; -// mame_printf_debug("ATAPI: reg %d = %x (offset %x mask %x PC=%x)\n", reg, data, offset, mem_mask, activecpu_get_pc()); - - if (reg == ATAPI_REG_CMDSTATUS) - { -// mame_printf_debug("ATAPI command %x issued! (PC=%x)\n", data, activecpu_get_pc()); - - switch (data) - { - case 0xa0: // PACKET - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ; - atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_COMMAND; - - atapi_data_ptr = 0; - atapi_data_len = 0; - - /* we have no data */ - atapi_xferlen = 0; - atapi_xfermod = 0; - - atapi_cdata_wait = 0; - break; - - case 0xa1: // IDENTIFY PACKET DEVICE - atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ; - - atapi_data_ptr = 0; - atapi_data_len = 512; - - /* we have no data */ - atapi_xferlen = 0; - atapi_xfermod = 0; - - memset( atapi_data, 0, atapi_data_len ); - - atapi_data[0] = 0x8500; // ATAPI device, cmd set 5 compliant, DRQ within 3 ms of PACKET command - atapi_data[49] = 0x0400; // IORDY may be disabled - - atapi_regs[ATAPI_REG_COUNTLOW] = 0; - atapi_regs[ATAPI_REG_COUNTHIGH] = 2; - - psx_irq_set(0x400); - break; - - case 0xef: // SET FEATURES - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - - atapi_data_ptr = 0; - atapi_data_len = 0; - - psx_irq_set(0x400); - break; - - default: - mame_printf_debug("ATAPI: Unknown IDE command %x\n", data); - break; - } - } - } -} - -static void atapi_init(void) -{ - memset(atapi_regs, 0, sizeof(atapi_regs)); - - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - atapi_regs[ATAPI_REG_ERRFEAT] = 1; - atapi_regs[ATAPI_REG_COUNTLOW] = 0x14; - atapi_regs[ATAPI_REG_COUNTHIGH] = 0xeb; - - atapi_data_ptr = 0; - atapi_data_len = 0; - atapi_cdata_wait = 0; - - atapi_timer = timer_alloc( atapi_xfer_end ); - timer_adjust(atapi_timer, TIME_NEVER, 0, 0); - - // allocate a SCSI CD-ROM device - atapi_device = SCSI_DEVICE_CDROM; - atapi_device(SCSIOP_ALLOC_INSTANCE, &atapi_device_data, 0, (UINT8 *)NULL); -} - -static WRITE32_HANDLER( atapi_reset_w ) -{ - verboselog( 2, "atapi_reset_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - if (data) - { - verboselog( 1, "atapi_reset_w: reset\n" ); - -// mame_printf_debug("ATAPI reset\n"); - - atapi_regs[ATAPI_REG_CMDSTATUS] = 0; - atapi_regs[ATAPI_REG_ERRFEAT] = 1; - atapi_regs[ATAPI_REG_COUNTLOW] = 0x14; - atapi_regs[ATAPI_REG_COUNTHIGH] = 0xeb; - - atapi_data_ptr = 0; - atapi_data_len = 0; - atapi_cdata_wait = 0; - - atapi_xferlen = 0; - atapi_xfermod = 0; - } -} - -static void cdrom_dma_read( UINT32 n_address, INT32 n_size ) -{ - verboselog( 2, "cdrom_dma_read( %08x, %08x )\n", n_address, n_size ); -// mame_printf_debug("DMA read: address %08x size %08x\n", n_address, n_size); -} - -static void cdrom_dma_write( UINT32 n_address, INT32 n_size ) -{ - verboselog( 2, "cdrom_dma_write( %08x, %08x )\n", n_address, n_size ); -// mame_printf_debug("DMA write: address %08x size %08x\n", n_address, n_size); - - atapi_xferbase = n_address; - - // set a transfer complete timer (Note: CYCLES_PER_SECTOR can't be lower than 2000 or the BIOS ends up "out of order") - timer_adjust(atapi_timer, TIME_IN_CYCLES((ATAPI_CYCLES_PER_SECTOR * (atapi_xferlen/2048)), 0), 0, 0); -} - -static UINT32 m_n_security_control; - -static WRITE32_HANDLER( security_w ) -{ - COMBINE_DATA( &m_n_security_control ); - - verboselog( 2, "security_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - if( ACCESSING_LSW32 ) - { - x76f041_sda_write( 0, ( data >> 0 ) & 1 ); - x76f041_scl_write( 0, ( data >> 1 ) & 1 ); - x76f041_cs_write( 0, ( data >> 2 ) & 1 ); - x76f041_rst_write( 0, ( data >> 3 ) & 1 ); - } -} - -static READ32_HANDLER( security_r ) -{ - UINT32 data = m_n_security_control; - verboselog( 2, "security_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - return data; -} - -static READ32_HANDLER( flash_r ) -{ - UINT32 data = 0; - - if( flash_bank < 0 ) - { - mame_printf_debug( "%08x: flash_r( %08x, %08x ) no bank selected %08x\n", activecpu_get_pc(), offset, mem_mask, control ); - data = 0xffffffff; - } - else - { - int adr = offset * 2; - - if( ACCESSING_LSB32 ) - { - data |= ( intelflash_read( flash_bank + 0, adr + 0 ) & 0xff ) << 0; // 31m/31l/31j/31h - } - if( ( mem_mask & 0x0000ff00 ) == 0 ) - { - data |= ( intelflash_read( flash_bank + 1, adr + 0 ) & 0xff ) << 8; // 27m/27l/27j/27h - } - if( ( mem_mask & 0x00ff0000 ) == 0 ) - { - data |= ( intelflash_read( flash_bank + 0, adr + 1 ) & 0xff ) << 16; // 31m/31l/31j/31h - } - if( ACCESSING_MSB32 ) - { - data |= ( intelflash_read( flash_bank + 1, adr + 1 ) & 0xff ) << 24; // 27m/27l/27j/27h - } - } - - verboselog( 2, "flash_r( %08x, %08x, %08x)\n", offset, mem_mask, data ); - - return data; -} - -static WRITE32_HANDLER( flash_w ) -{ - verboselog( 2, "flash_w( %08x, %08x, %08x\n", offset, mem_mask, data ); - - if( flash_bank < 0 ) - { - mame_printf_debug( "%08x: flash_w( %08x, %08x, %08x ) no bank selected %08x\n", activecpu_get_pc(), offset, mem_mask, data, control ); - } - else - { - int adr = offset * 2; - - if( ( mem_mask & 0x000000ff ) == 0 ) - { - intelflash_write( flash_bank + 0, adr + 0, ( data >> 0 ) & 0xff ); - } - if( ( mem_mask & 0x0000ff00 ) == 0 ) - { - intelflash_write( flash_bank + 1, adr + 0, ( data >> 8 ) & 0xff ); - } - if( ( mem_mask & 0x00ff0000 ) == 0 ) - { - intelflash_write( flash_bank + 0, adr + 1, ( data >> 16 ) & 0xff ); - } - if( ( mem_mask & 0xff000000 ) == 0 ) - { - intelflash_write( flash_bank + 1, adr + 1, ( data >> 24 ) & 0xff ); - } - } -} - -/* Root Counters */ - -static void *m_p_timer_root[ 3 ]; -static UINT16 m_p_n_root_count[ 3 ]; -static UINT16 m_p_n_root_mode[ 3 ]; -static UINT16 m_p_n_root_target[ 3 ]; -static UINT32 m_p_n_root_start[ 3 ]; - -#define RC_STOP ( 0x01 ) -#define RC_RESET ( 0x04 ) /* guess */ -#define RC_COUNTTARGET ( 0x08 ) -#define RC_IRQTARGET ( 0x10 ) -#define RC_IRQOVERFLOW ( 0x20 ) -#define RC_REPEAT ( 0x40 ) -#define RC_CLC ( 0x100 ) -#define RC_DIV ( 0x200 ) - -static UINT32 psxcpu_gettotalcycles( void ) -{ - /* TODO: should return the start of the current tick. */ - return cpunum_gettotalcycles(0) * 2; -} - -static int root_divider( int n_counter ) -{ - if( n_counter == 0 && ( m_p_n_root_mode[ n_counter ] & RC_CLC ) != 0 ) - { - /* TODO: pixel clock, probably based on resolution */ - return 5; - } - else if( n_counter == 1 && ( m_p_n_root_mode[ n_counter ] & RC_CLC ) != 0 ) - { - return 2150; - } - else if( n_counter == 2 && ( m_p_n_root_mode[ n_counter ] & RC_DIV ) != 0 ) - { - return 8; - } - return 1; -} - -static UINT16 root_current( int n_counter ) -{ - if( ( m_p_n_root_mode[ n_counter ] & RC_STOP ) != 0 ) - { - return m_p_n_root_count[ n_counter ]; - } - else - { - UINT32 n_current; - n_current = psxcpu_gettotalcycles() - m_p_n_root_start[ n_counter ]; - n_current /= root_divider( n_counter ); - n_current += m_p_n_root_count[ n_counter ]; - if( n_current > 0xffff ) - { - /* TODO: use timer for wrap on 0x10000. */ - m_p_n_root_count[ n_counter ] = n_current; - m_p_n_root_start[ n_counter ] = psxcpu_gettotalcycles(); - } - return n_current; - } -} - -static int root_target( int n_counter ) -{ - if( ( m_p_n_root_mode[ n_counter ] & RC_COUNTTARGET ) != 0 || - ( m_p_n_root_mode[ n_counter ] & RC_IRQTARGET ) != 0 ) - { - return m_p_n_root_target[ n_counter ]; - } - return 0x10000; -} - -static void root_timer_adjust( int n_counter ) -{ - if( ( m_p_n_root_mode[ n_counter ] & RC_STOP ) != 0 ) - { - timer_adjust( m_p_timer_root[ n_counter ], TIME_NEVER, n_counter, 0 ); - } - else - { - int n_duration; - - n_duration = root_target( n_counter ) - root_current( n_counter ); - if( n_duration < 1 ) - { - n_duration += 0x10000; - } - - n_duration *= root_divider( n_counter ); - - timer_adjust( m_p_timer_root[ n_counter ], TIME_IN_SEC( (double)n_duration / 33868800 ), n_counter, 0 ); - } -} - -static void root_finished( int n_counter ) -{ -// if( ( m_p_n_root_mode[ n_counter ] & RC_COUNTTARGET ) != 0 ) - { - /* TODO: wrap should be handled differently as RC_COUNTTARGET & RC_IRQTARGET don't have to be the same. */ - m_p_n_root_count[ n_counter ] = 0; - m_p_n_root_start[ n_counter ] = psxcpu_gettotalcycles(); - } - if( ( m_p_n_root_mode[ n_counter ] & RC_REPEAT ) != 0 ) - { - root_timer_adjust( n_counter ); - } - if( ( m_p_n_root_mode[ n_counter ] & RC_IRQOVERFLOW ) != 0 || - ( m_p_n_root_mode[ n_counter ] & RC_IRQTARGET ) != 0 ) - { - psx_irq_set( 0x10 << n_counter ); - } -} - -WRITE32_HANDLER( k573_counter_w ) -{ - int n_counter; - - n_counter = offset / 4; - - switch( offset % 4 ) - { - case 0: - m_p_n_root_count[ n_counter ] = data; - m_p_n_root_start[ n_counter ] = psxcpu_gettotalcycles(); - break; - case 1: - m_p_n_root_count[ n_counter ] = root_current( n_counter ); - m_p_n_root_start[ n_counter ] = psxcpu_gettotalcycles(); - m_p_n_root_mode[ n_counter ] = data; - - if( ( m_p_n_root_mode[ n_counter ] & RC_RESET ) != 0 ) - { - /* todo: check this is correct */ - m_p_n_root_count[ n_counter ] = 0; - m_p_n_root_mode[ n_counter ] &= ~( RC_STOP | RC_RESET ); - } -// if( ( data & 0xfca6 ) != 0 || -// ( ( data & 0x0100 ) != 0 && n_counter != 0 && n_counter != 1 ) || -// ( ( data & 0x0200 ) != 0 && n_counter != 2 ) ) -// { -// printf( "mode %d 0x%04x\n", n_counter, data & 0xfca6 ); -// } - break; - case 2: - m_p_n_root_target[ n_counter ] = data; - break; - default: - return; - } - - root_timer_adjust( n_counter ); -} - -READ32_HANDLER( k573_counter_r ) -{ - int n_counter; - UINT32 data; - - n_counter = offset / 4; - - switch( offset % 4 ) - { - case 0: - data = root_current( n_counter ); - break; - case 1: - data = m_p_n_root_mode[ n_counter ]; - break; - case 2: - data = m_p_n_root_target[ n_counter ]; - break; - default: - return 0; - } - return data; -} - -static ADDRESS_MAP_START( konami573_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE(1) AM_BASE(&g_p_n_psxram) AM_SIZE(&g_n_psxramsize) /* ram */ - AM_RANGE(0x1f000000, 0x1f3fffff) AM_READWRITE( flash_r, flash_w ) - AM_RANGE(0x1f400000, 0x1f40001f) AM_READWRITE( jamma_r, jamma_w ) - AM_RANGE(0x1f480000, 0x1f48000f) AM_READWRITE( atapi_r, atapi_w ) // IDE controller, used mostly in ATAPI mode (only 3 pure IDE commands seen so far) - AM_RANGE(0x1f500000, 0x1f500003) AM_READWRITE( control_r, control_w ) // Konami can't make a game without a "control" register. - AM_RANGE(0x1f560000, 0x1f560003) AM_WRITE( atapi_reset_w ) - AM_RANGE(0x1f5c0000, 0x1f5c0003) AM_WRITENOP // watchdog? - AM_RANGE(0x1f620000, 0x1f623fff) AM_READWRITE( timekeeper_0_32le_lsb16_r, timekeeper_0_32le_lsb16_w ) - AM_RANGE(0x1f680000, 0x1f68001f) AM_READWRITE(mb89371_r, mb89371_w) - AM_RANGE(0x1f6a0000, 0x1f6a0003) AM_READWRITE( security_r, security_w ) - AM_RANGE(0x1f800000, 0x1f8003ff) AM_RAM /* scratchpad */ - AM_RANGE(0x1f801000, 0x1f801007) AM_WRITENOP - AM_RANGE(0x1f801008, 0x1f80100b) AM_RAM /* ?? */ - AM_RANGE(0x1f80100c, 0x1f80102f) AM_WRITENOP - AM_RANGE(0x1f801010, 0x1f801013) AM_READNOP - AM_RANGE(0x1f801014, 0x1f801017) AM_READ(psx_spu_delay_r) - AM_RANGE(0x1f801040, 0x1f80105f) AM_READWRITE(psx_sio_r, psx_sio_w) - AM_RANGE(0x1f801060, 0x1f80106f) AM_WRITENOP - AM_RANGE(0x1f801070, 0x1f801077) AM_READWRITE(psx_irq_r, psx_irq_w) - AM_RANGE(0x1f801080, 0x1f8010ff) AM_READWRITE(psx_dma_r, psx_dma_w) - AM_RANGE(0x1f801100, 0x1f80112f) AM_READWRITE(k573_counter_r, k573_counter_w) - AM_RANGE(0x1f801810, 0x1f801817) AM_READWRITE(psx_gpu_r, psx_gpu_w) - AM_RANGE(0x1f801820, 0x1f801827) AM_READWRITE(psx_mdec_r, psx_mdec_w) - AM_RANGE(0x1f801c00, 0x1f801dff) AM_READWRITE(psx_spu_r, psx_spu_w) - AM_RANGE(0x1f802020, 0x1f802033) AM_RAM /* ?? */ - AM_RANGE(0x1f802040, 0x1f802043) AM_WRITENOP - AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_SHARE(2) AM_REGION(REGION_USER1, 0) /* bios */ - AM_RANGE(0x80000000, 0x803fffff) AM_RAM AM_SHARE(1) /* ram mirror */ - AM_RANGE(0x9fc00000, 0x9fc7ffff) AM_ROM AM_SHARE(2) /* bios mirror */ - AM_RANGE(0xa0000000, 0xa03fffff) AM_RAM AM_SHARE(1) /* ram mirror */ - AM_RANGE(0xbfc00000, 0xbfc7ffff) AM_ROM AM_SHARE(2) /* bios mirror */ - AM_RANGE(0xfffe0130, 0xfffe0133) AM_WRITENOP -ADDRESS_MAP_END - - -static void flash_init( void ) -{ - int i; - int chip; - int size; - unsigned char *data; - static struct - { - int *start; - int region; - int chips; - int type; - int size; - } - flash_init[] = - { - { &onboard_flash_start, REGION_USER3, 8, FLASH_FUJITSU_29F016A, 0x200000 }, - { &pccard1_flash_start, REGION_USER4, 16, FLASH_FUJITSU_29F016A, 0x200000 }, - { &pccard2_flash_start, REGION_USER5, 16, FLASH_FUJITSU_29F016A, 0x200000 }, - { &pccard3_flash_start, REGION_USER6, 16, FLASH_FUJITSU_29F016A, 0x200000 }, - { &pccard4_flash_start, REGION_USER7, 16, FLASH_FUJITSU_29F016A, 0x200000 }, - { NULL, 0, 0, 0, 0 }, - }; - - flash_chips = 0; - - i = 0; - while( flash_init[ i ].start != NULL ) - { - data = memory_region( flash_init[ i ].region ); - if( data != NULL ) - { - size = 0; - *( flash_init[ i ].start ) = flash_chips; - for( chip = 0; chip < flash_init[ i ].chips; chip++ ) - { - intelflash_init( flash_chips, flash_init[ i ].type, data + size ); - size += flash_init[ i ].size; - flash_chips++; - } - if( size != memory_region_length( flash_init[ i ].region ) ) - { - fatalerror( "flash_init %d incorrect region length\n", i ); - } - } - else - { - *( flash_init[ i ].start ) = -1; - } - i++; - } -} - -static double analogue_inputs_callback( int input ) -{ - switch( input ) - { - case ADC083X_CH0: - return (double) ( readinputportbytag_safe( "analog0", 0 ) * 5 ) / 255; - case ADC083X_CH1: - return (double) ( readinputportbytag_safe( "analog1", 0 ) * 5 ) / 255; - case ADC083X_CH2: - return (double) ( readinputportbytag_safe( "analog2", 0 ) * 5 ) / 255; - case ADC083X_CH3: - return (double) ( readinputportbytag_safe( "analog3", 0 ) * 5 ) / 255; - case ADC083X_AGND: - return 0; - case ADC083X_VREF: - return 5; - } - return 0; -} - -void *atapi_get_device(void) -{ - void *ret; - atapi_device(SCSIOP_GET_DEVICE, atapi_device_data, 0, (UINT8 *)&ret); - return ret; -} - -static DRIVER_INIT( konami573 ) -{ - int i; - - psx_driver_init(); - atapi_init(); - psx_dma_install_read_handler(5, cdrom_dma_read); - psx_dma_install_write_handler(5, cdrom_dma_write); - - for (i = 0; i < 3; i++) - { - m_p_timer_root[i] = timer_alloc(root_finished); - } - - timekeeper_init( 0, TIMEKEEPER_M48T58, NULL ); - x76f041_init( 0, memory_region( REGION_USER2 ) ); - adc083x_init( 0, ADC0834, analogue_inputs_callback ); - flash_init(); -} - -static MACHINE_RESET( konami573 ) -{ - psx_machine_init(); - - /* security cart */ - psx_sio_input( 1, PSX_SIO_IN_DSR, PSX_SIO_IN_DSR ); - - cdda_set_cdrom(0, atapi_get_device()); - - flash_bank = -1; -} - -static struct PSXSPUinterface konami573_psxspu_interface = -{ - &g_p_n_psxram, - psx_irq_set, - psx_dma_install_read_handler, - psx_dma_install_write_handler -}; - -INTERRUPT_GEN( sys573_vblank ) -{ - if( strcmp( Machine->gamedrv->name, "ddr2ndl" ) == 0 ) - { - /* patch out security-plate error */ - - /* 8001f850: jal $8003221c */ - if( g_p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c887 ) - { - /* 8001f850: j $8001f888 */ - g_p_n_psxram[ 0x1f850 / 4 ] = 0x08007e22; - } - } - psx_vblank(); -} - -/* -GE765-PWB(B)A - -todo: - find out what offset 4 is - fix reel type detection - find adc0834 SARS - -*/ - -static READ32_HANDLER( ge765pwbba_r ) -{ - UINT32 data = 0; - - switch( offset ) - { - case 0x26: - uPD4701_y_add( 0, readinputportbytag_safe( "uPD4701_y", 0 ) ); - uPD4701_switches_set( 0, readinputportbytag_safe( "uPD4701_switches", 0 ) ); - - uPD4701_cs_w( 0, 0 ); - uPD4701_xy_w( 0, 1 ); - - if( ( mem_mask & 0x000000ff ) != 0x000000ff ) - { - uPD4701_ul_w( 0, 0 ); - data |= uPD4701_d_r( 0 ) << 0; - } - - if( ( mem_mask & 0x00ff0000 ) != 0x00ff0000 ) - { - uPD4701_ul_w( 0, 1 ); - data |= uPD4701_d_r( 0 ) << 16; - } - - uPD4701_cs_w( 0, 1 ); - break; - - default: - verboselog( 0, "ge765pwbba_r: unhandled offset %08x %08x\n", offset, mem_mask ); - break; - } - - verboselog( 2, "ge765pwbba_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - return data; -} - -static WRITE32_HANDLER( ge765pwbba_w ) -{ - switch( offset ) - { - case 0x04: - break; - - case 0x20: - if( ( mem_mask & 0x000000ff ) != 0x000000ff ) - { - output_set_value( "motor", data & 0xff ); - } - break; - - case 0x22: - if( ( mem_mask & 0x000000ff ) != 0x000000ff ) - { - output_set_value( "brake", data & 0xff ); - } - break; - - case 0x28: - if( ( mem_mask & 0x000000ff ) != 0x000000ff ) - { - uPD4701_resety_w( 0, 1 ); - uPD4701_resety_w( 0, 0 ); - } - break; - - default: - verboselog( 0, "ge765pwbba_w: unhandled offset %08x %08x %08x\n", offset, mem_mask, data ); - break; - } - - verboselog( 2, "ge765pwbba_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); -} - -static DRIVER_INIT( ge765pwbba ) -{ - init_konami573( machine ); - - uPD4701_init( 0 ); - - memory_install_read32_handler ( 0, ADDRESS_SPACE_PROGRAM, 0x1f640000, 0x1f6400ff, 0, 0, ge765pwbba_r ); - memory_install_write32_handler( 0, ADDRESS_SPACE_PROGRAM, 0x1f640000, 0x1f6400ff, 0, 0, ge765pwbba_w ); -} - -/* -GX700-PWB(F) -*/ - -static UINT8 gx700pwbf_output_data[ 4 ]; -static void (*gx700pwfbf_output_callback)( int offset, int data ); - -static READ32_HANDLER( gx700pwbf_io_r ) -{ - UINT32 data = 0; - switch( offset ) - { - case 0x20: - /* result not used? */ - break; - - case 0x22: - /* result not used? */ - break; - - case 0x24: - /* result not used? */ - break; - - case 0x26: - /* result not used? */ - break; - - default: -// printf( "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - break; - } - - verboselog( 2, "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); - - return data; -} - -static void gx700pwbf_output( int offset, UINT8 data ) -{ - int i; - static int shift[] = { 7, 6, 1, 0, 5, 4, 3, 2 }; - for( i = 0; i < 8; i++ ) - { - int oldbit = ( gx700pwbf_output_data[ offset ] >> shift[ i ] ) & 1; - int newbit = ( data >> shift[ i ] ) & 1; - if( oldbit != newbit ) - { - gx700pwfbf_output_callback( ( offset * 8 ) + i, newbit ); - } - } - gx700pwbf_output_data[ offset ] = data; -} - -static WRITE32_HANDLER( gx700pwbf_io_w ) -{ - verboselog( 2, "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - - switch( offset ) - { - case 0x20: - - if( ACCESSING_LSW32 ) - { - gx700pwbf_output( 0, data & 0xff ); - } - break; - - case 0x22: - if( ACCESSING_LSW32 ) - { - gx700pwbf_output( 1, data & 0xff ); - } - break; - - case 0x24: - if( ACCESSING_LSW32 ) - { - gx700pwbf_output( 2, data & 0xff ); - } - break; - - case 0x26: - if( ACCESSING_LSW32 ) - { - gx700pwbf_output( 3, data & 0xff ); - } - break; - - default: -// printf( "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); - break; - } -} - -static void gx700pwfbf_init( void (*output_callback)( int offset, int data ) ) -{ - memset( gx700pwbf_output_data, 0, sizeof( gx700pwbf_output_data ) ); - - gx700pwfbf_output_callback = output_callback; - - memory_install_read32_handler ( 0, ADDRESS_SPACE_PROGRAM, 0x1f640000, 0x1f6400ff, 0, 0, gx700pwbf_io_r ); - memory_install_write32_handler( 0, ADDRESS_SPACE_PROGRAM, 0x1f640000, 0x1f6400ff, 0, 0, gx700pwbf_io_w ); -} - -/* - -DDR Stage - -TODO: - find out the pcb id - -*/ - -#define DDR_STAGE_IDLE ( 0 ) -#define DDR_STAGE_INIT ( 1 ) - -static struct -{ - int DO; - int shift; - int state; - int bit; -} stage[ 2 ]; - -static int mask[] = -{ - 0, 6, 2, 4, - 0, 4, 0, 4, - 0, 4, 0, 4, - 0, 4, 0, 4, - 0, 4, 0, 4, - 0, 4, 0, 6 -}; - -static void ddr_stage_do_w( int offset, int data ) -{ - stage[ offset ].DO = data; -} - -static void ddr_stage_clk_w( int offset, int data ) -{ - if( data ) - { - stage[ offset ].shift = ( stage[ offset ].shift >> 1 ) | ( stage[ offset ].DO << 12 ); - - switch( stage[ offset ].state ) - { - case DDR_STAGE_IDLE: - if( stage[ offset ].shift == 0xc90 ) - { - stage[ offset ].state = DDR_STAGE_INIT; - stage[ offset ].bit = 0; - stage_mask = 0xfffff9f9; - } - break; - - case DDR_STAGE_INIT: - stage[ offset ].bit++; - if( stage[ offset ].bit < 22 ) - { - int a = ( ( ( ( ~0x06 ) | mask[ stage[ 0 ].bit ] ) & 0xff ) << 8 ); - int b = ( ( ( ( ~0x06 ) | mask[ stage[ 1 ].bit ] ) & 0xff ) << 0 ); - - stage_mask = 0xffff0000 | a | b; - } - else - { - stage[ offset ].bit = 0; - stage[ offset ].state = DDR_STAGE_IDLE; - - stage_mask = 0xffffffff; - } - break; - } - - verboselog( 2, "stage: %dp data d0=%d shift=%08x bit=%d stage_mask=%08x\n", offset + 1, stage[ offset ].DO, stage[ offset ].shift, stage[ offset ].bit, stage_mask ); - } -} - -static void ddr_output_callback( int offset, int data ) -{ - switch( offset ) - { - case 0: - output_set_value( "foot 1p up", !data ); - break; - - case 1: - output_set_value( "foot 1p left", !data ); - break; - - case 2: - output_set_value( "foot 1p right", !data ); - break; - - case 3: - output_set_value( "foot 1p down", !data ); - break; - - case 4: - ddr_stage_do_w( 0, data ); - break; - - case 7: - ddr_stage_clk_w( 0, data ); - break; - - case 8: - output_set_value( "foot 2p up", !data ); - break; - - case 9: - output_set_value( "foot 2p left", !data ); - break; - - case 10: - output_set_value( "foot 2p right", !data ); - break; - - case 11: - output_set_value( "foot 2p down", !data ); - break; - - case 12: - ddr_stage_do_w( 1, data ); - break; - - case 15: - ddr_stage_clk_w( 1, data ); - break; - - case 17: - output_set_led_value( 0, !data ); // start 1 - break; - - case 18: - output_set_led_value( 1, !data ); // start 2 - break; - - case 20: - output_set_value( "body right low", !data ); - break; - - case 21: - output_set_value( "body left low", !data ); - break; - - case 22: - output_set_value( "body left high", !data ); - break; - - case 23: - output_set_value( "body right high", !data ); - break; - - case 30: - output_set_value( "speaker", !data ); - break; - - default: -// printf( "%d=%d\n", offset, data ); - break; - } -} - -static DRIVER_INIT( ddr ) -{ - init_konami573( machine ); - - gx700pwfbf_init( ddr_output_callback ); -} - -/* - -Guitar Freaks - -todo: - find out what offset 4 is - find out the pcb id - -*/ - -static READ32_HANDLER( gtrfrks_io_r ) -{ - UINT32 data = 0; - switch( offset ) - { - case 0: - break; - - default: - verboselog( 0, "gtrfrks_io_r: unhandled offset %08x, %08x\n", offset, mem_mask ); - break; - } - - verboselog( 2, "gtrfrks_io_r( %08x, %08x ) %08x\n", data ); - return data; -} - -static WRITE32_HANDLER( gtrfrks_io_w ) -{ - verboselog( 2, "gtrfrks_io_w( %08x, %08x ) %08x\n", data ); - - switch( offset ) - { - case 0: - output_set_value( "spot left", !( ( data >> 7 ) & 1 ) ); - output_set_value( "spot right", !( ( data >> 6 ) & 1 ) ); - output_set_led_value( 0, !( ( data >> 5 ) & 1 ) ); // start left - output_set_led_value( 1, !( ( data >> 4 ) & 1 ) ); // start right - break; - - case 4: - break; - - default: - verboselog( 0, "gtrfrks_io_w: unhandled offset %08x, %08x\n", offset, mem_mask ); - break; - } -} - -static DRIVER_INIT( gtrfrks ) -{ - init_konami573( machine ); - - memory_install_read32_handler ( 0, ADDRESS_SPACE_PROGRAM, 0x1f600000, 0x1f6000ff, 0, 0, gtrfrks_io_r ); - memory_install_write32_handler( 0, ADDRESS_SPACE_PROGRAM, 0x1f600000, 0x1f6000ff, 0, 0, gtrfrks_io_w ); -} - -static MACHINE_DRIVER_START( konami573 ) - /* basic machine hardware */ - MDRV_CPU_ADD( PSXCPU, 33868800 / 2 ) /* 33MHz ?? */ - MDRV_CPU_PROGRAM_MAP( konami573_map, 0 ) - MDRV_CPU_VBLANK_INT( sys573_vblank, 1 ) - - MDRV_SCREEN_REFRESH_RATE( 60 ) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC( 0 )) - - MDRV_MACHINE_RESET( konami573 ) - MDRV_NVRAM_HANDLER( konami573 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE( 1024, 1024 ) - MDRV_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 ) - MDRV_PALETTE_LENGTH( 65536 ) - - MDRV_PALETTE_INIT( psx ) - MDRV_VIDEO_START( psx_type2 ) - MDRV_VIDEO_UPDATE( psx ) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD( PSXSPU, 0 ) - MDRV_SOUND_CONFIG( konami573_psxspu_interface ) - MDRV_SOUND_ROUTE( 0, "left", 1.0 ) - MDRV_SOUND_ROUTE( 1, "right", 1.0 ) - - MDRV_SOUND_ADD( CDDA, 0 ) - MDRV_SOUND_ROUTE( 0, "left", 1.0 ) - MDRV_SOUND_ROUTE( 1, "right", 1.0 ) -MACHINE_DRIVER_END - -INPUT_PORTS_START( konami573 ) - PORT_START_TAG("IN0") - PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x00000001, 0x00000001, "Unused 2" ) - PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000002, 0x00000002, "Screen Flip" ) - PORT_DIPSETTING( 0x00000002, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00000000, "V-Flip" ) - PORT_DIPNAME( 0x00000004, 0x00000004, "Unused 1") - PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00000008, 0x00000008, "Start Up Device" ) - PORT_DIPSETTING( 0x00000008, "CD-ROM Drive" ) - PORT_DIPSETTING( 0x00000000, "Flash ROM" ) - PORT_BIT( 0x000000f0, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 0xc0 */ - PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) -// PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x00001000, 0x00001000, "Network?" ) - PORT_DIPSETTING( 0x00001000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) -// PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* adc0834 d0 */ -// PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* x76f041 sda */ -// PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */ - PORT_BIT( 0x00200000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */ -// PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* PCCARD 1 */ - PORT_BIT( 0x08000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* PCCARD 2 */ - PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_SERVICE1 ) -// PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* skip init? */ - PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 ) /* skip init? */ - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* skip init? */ - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) /* skip init? */ - - PORT_START_TAG("IN3") - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0b000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* skip e-Amusement error */ -// PORT_BIT( 0xf4fff0ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( fbaitbc ) - PORT_INCLUDE( konami573 ) - - PORT_MODIFY("IN3") - - PORT_START_TAG( "uPD4701_y" ) - PORT_BIT( 0x0fff, 0, IPT_MOUSE_Y ) PORT_MINMAX( 0, 0xfff ) PORT_SENSITIVITY( 15 ) PORT_KEYDELTA( 8 ) PORT_RESET - - PORT_START_TAG( "uPD4701_switches" ) - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( fbaitmc ) - PORT_INCLUDE( fbaitbc ) - - PORT_START_TAG( "analog0" ) - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x20,0xdf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) PORT_REVERSE - - PORT_START_TAG( "analog1" ) - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xdf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( ddr ) - PORT_INCLUDE( konami573 ) - - PORT_MODIFY("IN2") - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) /* serial? */ - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER(1) /* serial? */ - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(1) - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(2) - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(2) /* serial? */ - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER(2) /* serial? */ - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( gtrfrks ) - PORT_INCLUDE( konami573 ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* SERVICE1 */ - - PORT_MODIFY("IN2") - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Effect 1") - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Effect 2") - PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Pick") - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("P1 Wailing") - PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Button R") - PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Button G") - PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Button B") - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Effect 1") - PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Effect 2") - PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("P2 Pick") - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(2) PORT_NAME("P2 Wailing") - PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Button R") - PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Button G") - PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Button B") - PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_MODIFY("IN3") - PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* P1 BUTTON4 */ - PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */ - PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ -INPUT_PORTS_END - -#define SYS573_BIOS_A ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - -// BIOS -ROM_START( sys573 ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_FILL( 0x0000000, 0x0000224, 0x00 ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) -ROM_END - -// Games -ROM_START( bassangl ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "ge765ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ee1b32a7) SHA1(c0f6b14b054f5a95ce474e794a3e0ca78faac681) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "765jaa02", 0, MD5(11693b1234458c238ed613ef37f71245) SHA1(d820f8166b7d5ffcf41e7a70c8c4c4d1c207c1bd) ) -ROM_END - -ROM_START( darkhleg ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx706ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(72b42574) SHA1(79dc959f0ce95ccb9ac0dbf0a72aec973e91bc56) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "706jaa02", 0, MD5(4f096051df039b0d104d4c0fff5dadb8) SHA1(4c8d976096c2da6d01804a44957daf9b50103c90) ) -ROM_END - -ROM_START( dstage ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gn845ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(db643af7) SHA1(881221da640b883302e657b906ea0a4e74555679) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "845ea", 0, BAD_DUMP MD5(32d52ee2b37559d7413788c87085f37c) SHA1(e82610e1a34fba144499f9ee892ac882d1e96853) ) -ROM_END - -ROM_START( ddru ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gn845ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(c9e7fced) SHA1(aac4dde100091bc64d397f53484a0ffbf68b8101) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "845uaa02", 0, MD5(32d52ee2b37559d7413788c87085f37c) SHA1(e82610e1a34fba144499f9ee892ac882d1e96853) ) -ROM_END - -ROM_START( ddrj ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc845jb.u1", 0x000000, 0x000224, BAD_DUMP CRC(a16f42b8) SHA1(da4f1eb3eb2b28cb3a0bc74bb9b9945970f56ac2) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "845jba02", 0, MD5(314f64301c3429312770ecdeb975d285) SHA1(8ebd9a68bbea3d9947a95d896347b0fea2145e4a) ) -ROM_END - -ROM_START( ddra ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gn845aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(327c4851) SHA1(f0939224af706fd103a67aae9c96518c1db90ac9) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "845aaa02", 0, MD5(2ab58fc647d35673861788a78df2afba) SHA1(fe2d18cdab7a3088f7c876ce531d64a2f3ae9294) ) -ROM_END - -ROM_START( ddr2nd ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gn895jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(363f427e) SHA1(adec886a07b9bd91f142f286b04fc6582205f037) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "895ja", 0, BAD_DUMP MD5(2013c3aac0d7fdbae10eadf1aaa8a174) SHA1(03e64fc507d42d3fd6fec288893ec065e4313b00) ) -ROM_END - -ROM_START( ddr2ndl ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "700a01.bin", 0x0000000, 0x080000, CRC(11812ef8) ) - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "ge885jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - ROM_REGION( 0x2000000, REGION_USER4, 0 ) /* PCCARD1 */ - ROM_FILL( 0x0000000, 0x2000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "885jaa02", 0, MD5(696e39fa7113f61181875bffca13a1b4) SHA1(ece1d34a3bdbe07b608429abe30802bc7327a94a) ) -ROM_END - -ROM_START( fbait2bc ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc865ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8f0b4b) SHA1(363b1ea1a520b239ba8bca867366bbe8a9977a43) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "865uab02", 0, MD5(5a253a58417539f9b0cb9726311f73d5) SHA1(86ccbaac30e9e2d7d0ad6ae65a4f53f606f50525) ) -ROM_END - -ROM_START( fbaitbc ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "ge765ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(588748c6) SHA1(ea1ead61e0dcb324ef7b6106cae00bcf6702d6c4) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "765uab02", 0, MD5(56d8a23bb592932631f8f81b9797fce6) SHA1(dda131b8655e3c4394e50749fe3a1e468f9df353) ) -ROM_END - -ROM_START( fbaitmc ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx889ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(753ad84e) SHA1(e024cefaaee7c9945ccc1f9a3d896b8560adce2e) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "889ea", 0, BAD_DUMP MD5(43eae52edd38019f0836897ea8def527) SHA1(2e6937c265c222ac2cea50fbf32201ade425ee30) ) -ROM_END - -ROM_START( fbaitmca ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx889aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9c22aae8) SHA1(c107b0bf7fa76708f2d4f6aaf2cf27b3858378a3) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "889aa", 0, BAD_DUMP MD5(43eae52edd38019f0836897ea8def527) SHA1(2e6937c265c222ac2cea50fbf32201ade425ee30) ) -ROM_END - -ROM_START( fbaitmcj ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx889ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(6278603c) SHA1(d6b59e270cfe4016e12565aedec8a4f0702e1a6f) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "889ja", 0, BAD_DUMP MD5(43eae52edd38019f0836897ea8def527) SHA1(2e6937c265c222ac2cea50fbf32201ade425ee30) ) -ROM_END - -ROM_START( fbaitmcu ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx889ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(67b91e54) SHA1(4d94bfab08e2bf6e34ee606dd3c4e345d8e5d158) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "889ua", 0, BAD_DUMP MD5(43eae52edd38019f0836897ea8def527) SHA1(2e6937c265c222ac2cea50fbf32201ade425ee30) ) -ROM_END - -ROM_START( gtrfrks ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gq886eac.u1", 0x000000, 0x000224, BAD_DUMP CRC(06bd6c4f) SHA1(61930e467ad135e2f31393ff5af981ed52f3bef9) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "886ea", 0, BAD_DUMP MD5(b8b39a6e48867fdad640bd256273bdfc) SHA1(2277c6268b8327be8d7636d4812920e5d3b353cd) ) -ROM_END - -ROM_START( gtrfrksu ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gq886uac.u1", 0x000000, 0x000224, BAD_DUMP CRC(143eaa55) SHA1(51a4fa3693f1cb1646a8986003f9b6cc1ae8b630) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "886ua", 0, BAD_DUMP MD5(b8b39a6e48867fdad640bd256273bdfc) SHA1(2277c6268b8327be8d7636d4812920e5d3b353cd) ) -ROM_END - -ROM_START( gtrfrksj ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gq886jac.u1", 0x000000, 0x000224, BAD_DUMP CRC(11ffd43d) SHA1(27f4f4d782604379254fb98c3c57e547aa4b321f) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "886ja", 0, BAD_DUMP MD5(b8b39a6e48867fdad640bd256273bdfc) SHA1(2277c6268b8327be8d7636d4812920e5d3b353cd) ) -ROM_END - -ROM_START( gtrfrksa ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gq886aac.u1", 0x000000, 0x000224, BAD_DUMP CRC(efa51ee9) SHA1(3374d936de69c287e0161bc526546441c2943555) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "886aa", 0, BAD_DUMP MD5(b8b39a6e48867fdad640bd256273bdfc) SHA1(2277c6268b8327be8d7636d4812920e5d3b353cd) ) -ROM_END - -ROM_START( konam80a ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc826aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9b38b959) SHA1(6b4fca340a9b1c2ae21ad3903c1ac1e39ab08b1a) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "826aaa01", 0, BAD_DUMP MD5(456f683c5d47dd73cfb73ce80b8a7351) SHA1(452c94088ffefe42e61c978b48d425e7094a5af6) ) -ROM_END - -ROM_START( konam80j ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc826ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(e9e861e8) SHA1(45841db0b42d096213d9539a8d076d39391dca6d) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "826jaa01", 0, MD5(456f683c5d47dd73cfb73ce80b8a7351) SHA1(452c94088ffefe42e61c978b48d425e7094a5af6) ) -ROM_END - -ROM_START( konam80k ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc826ka.u1", 0x000000, 0x000224, BAD_DUMP CRC(d41f7e38) SHA1(73e2bb132e23be72e72ea5b0686ccad28e47574a) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "826kaa01", 0, BAD_DUMP MD5(456f683c5d47dd73cfb73ce80b8a7351) SHA1(452c94088ffefe42e61c978b48d425e7094a5af6) ) -ROM_END - -ROM_START( konam80s ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc826ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(6ce4c619) SHA1(d2be08c213c0a74e30b7ebdd93946374cc64457f) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "826eaa01", 0, BAD_DUMP MD5(456f683c5d47dd73cfb73ce80b8a7351) SHA1(452c94088ffefe42e61c978b48d425e7094a5af6) ) -ROM_END - -ROM_START( konam80u ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gc826ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(0577379b) SHA1(3988a2a5ef1f1d5981c4767cbed05b73351be903) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "826uaa01", 0, MD5(456f683c5d47dd73cfb73ce80b8a7351) SHA1(452c94088ffefe42e61c978b48d425e7094a5af6) ) -ROM_END - -ROM_START( pbballex ) - ROM_REGION32_LE( 0x080000, REGION_USER1, 0 ) - SYS573_BIOS_A - - ROM_REGION( 0x0000224, REGION_USER2, 0 ) /* security cart */ - ROM_LOAD( "gx802ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8bdda3) SHA1(780034ab08871631ef0e3e9b779ca89e016c26a8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) /* onboard flash */ - ROM_FILL( 0x0000000, 0x1000000, 0xff ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE_READONLY( "802jab02", 0, MD5(52bb53327ba48f87dcb030d5e50fe94f) SHA1(67ddce1ad7e436c18e08d5a8c77f3259dbf30572) ) -ROM_END - -// System 573 BIOS (we're missing the later version that boots up with a pseudo-GUI) -GAME( 1998, sys573, 0, konami573, konami573, konami573, ROT0, "Konami", "System 573 BIOS", NOT_A_DRIVER ) - -// Standard System 573 games -GAME( 1998, darkhleg, sys573, konami573, konami573, konami573, ROT0, "Konami", "Dark Horse Legend (GX706 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, fbaitbc, sys573, konami573, fbaitbc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, bassangl, fbaitbc, konami573, fbaitbc, ge765pwbba, ROT0, "Konami", "Bass Angler (GE765 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, pbballex, sys573, konami573, konami573, konami573, ROT0, "Konami", "Powerful Pro Baseball EX (GX802 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, konam80s, sys573, konami573, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, konam80u, konam80s, konami573, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, konam80j, konam80s, konami573, konami573, konami573, ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, konam80a, konam80s, konami573, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, konam80k, konam80s, konami573, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, dstage, sys573, konami573, ddr, ddr, ROT0, "Konami", "Dancing Stage (GN845 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, ddru, dstage, konami573, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, ddrj, dstage, konami573, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, ddra, dstage, konami573, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1998, fbait2bc, sys573, konami573, fbaitbc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, ddr2ndl, sys573, konami573, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix Link (GE885 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, gtrfrks, sys573, konami573, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksu, gtrfrks, konami573, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksj, gtrfrks, konami573, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. JAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, gtrfrksa, gtrfrks, konami573, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. AAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, fbaitmc, sys573, konami573, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, fbaitmcu, fbaitmc, konami573, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, fbaitmcj, fbaitmc, konami573, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, fbaitmca, fbaitmc, konami573, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1999, ddr2nd, sys573, konami573, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/labyrunr.c b/src/drivers/labyrunr.c deleted file mode 100644 index 69fe9b1f4..000000000 --- a/src/drivers/labyrunr.c +++ /dev/null @@ -1,339 +0,0 @@ -/*************************************************************************** - -Labyrinth Runner (GX771) (c) 1987 Konami - -similar to Fast Lane - -Driver by Nicola Salmoria - -***************************************************************************/ - -#include "driver.h" -#include "cpu/hd6309/hd6309.h" -#include "vidhrdw/konamiic.h" -#include "sound/2203intf.h" - - -/* from vidhrdw/labyrunr.c */ -extern unsigned char *labyrunr_videoram1,*labyrunr_videoram2,*labyrunr_scrollram; -PALETTE_INIT( labyrunr ); -WRITE8_HANDLER( labyrunr_vram1_w ); -WRITE8_HANDLER( labyrunr_vram2_w ); -VIDEO_START( labyrunr ); -VIDEO_UPDATE( labyrunr ); - -static INTERRUPT_GEN( labyrunr_interrupt ) -{ - if (cpu_getiloops() == 0) - { - if (K007121_ctrlram[0][0x07] & 0x02) - cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); - } - else if (cpu_getiloops() % 2) - { - if (K007121_ctrlram[0][0x07] & 0x01) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static WRITE8_HANDLER( labyrunr_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - -if (data & 0xe0) popmessage("bankswitch %02x",data); - - /* bits 0-2 = bank number */ - bankaddress = 0x10000 + (data & 0x07) * 0x4000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* bits 3 and 4 are coin counters */ - coin_counter_w(0,data & 0x08); - coin_counter_w(1,data & 0x10); -} - -static ADDRESS_MAP_START( labyrunr_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0020, 0x005f) AM_READ(MRA8_RAM) /* scroll registers */ - AM_RANGE(0x0801, 0x0801) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x0800, 0x0800) AM_READ(YM2203_read_port_0_r) - AM_RANGE(0x0901, 0x0901) AM_READ(YM2203_status_port_1_r) - AM_RANGE(0x0900, 0x0900) AM_READ(YM2203_read_port_1_r) - AM_RANGE(0x0a00, 0x0a00) AM_READ(input_port_5_r) - AM_RANGE(0x0a01, 0x0a01) AM_READ(input_port_4_r) - AM_RANGE(0x0b00, 0x0b00) AM_READ(input_port_3_r) - AM_RANGE(0x0d00, 0x0d1f) AM_READ(K051733_r) /* 051733 (protection) */ - AM_RANGE(0x1000, 0x10ff) AM_READ(paletteram_r) - AM_RANGE(0x1800, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( labyrunr_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0007) AM_WRITE(K007121_ctrl_0_w) - AM_RANGE(0x0020, 0x005f) AM_WRITE(MWA8_RAM) AM_BASE(&labyrunr_scrollram) /* scroll registers */ - AM_RANGE(0x0801, 0x0801) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x0800, 0x0800) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0x0901, 0x0901) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0x0900, 0x0900) AM_WRITE(YM2203_write_port_1_w) - AM_RANGE(0x0c00, 0x0c00) AM_WRITE(labyrunr_bankswitch_w) - AM_RANGE(0x0d00, 0x0d1f) AM_WRITE(K051733_w) /* 051733 (protection) */ - AM_RANGE(0x0e00, 0x0e00) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x1000, 0x10ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram) - AM_RANGE(0x1800, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) /* Sprite RAM */ - AM_RANGE(0x3000, 0x37ff) AM_WRITE(labyrunr_vram1_w) AM_BASE(&labyrunr_videoram1) - AM_RANGE(0x3800, 0x3fff) AM_WRITE(labyrunr_vram2_w) AM_BASE(&labyrunr_videoram2) - AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( labyrunr ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "30000 70000" ) - PORT_DIPSETTING( 0x10, "40000 80000" ) - PORT_DIPSETTING( 0x08, "40000" ) - PORT_DIPSETTING( 0x00, "50000" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Upright Controls" ) - PORT_DIPSETTING( 0x02, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Continues ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) -INPUT_PORTS_END - - - -static const gfx_layout gfxlayout = -{ - 8,8, - 0x40000/32, - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &gfxlayout, 0, 8*16 }, - { -1 } /* end of array */ -}; - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct YM2203interface ym2203_interface_1 = -{ - input_port_0_r, - input_port_1_r -}; - -static struct YM2203interface ym2203_interface_2 = -{ - 0, - input_port_2_r -}; - - - -static MACHINE_DRIVER_START( labyrunr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 24MHz/8? */ - MDRV_CPU_PROGRAM_MAP(labyrunr_readmem,labyrunr_writemem) - MDRV_CPU_VBLANK_INT(labyrunr_interrupt,8) /* 1 IRQ + 4 NMI (generated by 007121) */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(37*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(2*8*16*16) - - MDRV_PALETTE_INIT(labyrunr) - MDRV_VIDEO_START(labyrunr) - MDRV_VIDEO_UPDATE(labyrunr) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface_1) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) - MDRV_SOUND_ROUTE(2, "mono", 0.40) - MDRV_SOUND_ROUTE(3, "mono", 0.80) - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface_2) - MDRV_SOUND_ROUTE(0, "mono", 0.40) - MDRV_SOUND_ROUTE(1, "mono", 0.40) - MDRV_SOUND_ROUTE(2, "mono", 0.40) - MDRV_SOUND_ROUTE(3, "mono", 0.80) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( tricktrp ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "771e04", 0x10000, 0x08000, CRC(ba2c7e20) SHA1(713dcc0e65bf9431f2c0df9db1210346a9476a52) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "771e03", 0x18000, 0x10000, CRC(d0d68036) SHA1(8589ee07e229259341a4cc22bc64de8f06536472) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "771e01a", 0x00000, 0x10000, CRC(103ffa0d) SHA1(1949c49ca3b243e4cfb5fb19ecd3a1e1492cfddd) ) /* tiles + sprites */ - ROM_LOAD16_BYTE( "771e01c", 0x00001, 0x10000, CRC(cfec5be9) SHA1(2b6a32e2608a70c47d1ec9b4de38b5c3a0898cde) ) - ROM_LOAD16_BYTE( "771d01b", 0x20000, 0x10000, CRC(07f2a71c) SHA1(63c79e75e71539e69d4d9d35e629a6021124f6d0) ) - ROM_LOAD16_BYTE( "771d01d", 0x20001, 0x10000, CRC(f6810a49) SHA1(b40e9f0d0919188a05c1990347da8dc8ff12d65a) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) /* sprite lookup table */ - /* there is no char lookup table */ -ROM_END - -ROM_START( labyrunr ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "771j04.10f", 0x10000, 0x08000, CRC(354a41d0) SHA1(302e8f5c469ad3f615aeca8005ebde6b6051aaae) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "771j03.08f", 0x18000, 0x10000, CRC(12b49044) SHA1(e9b22fb093cfb746a9767e94ef5deef98bed5b7a) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "771d01.14a", 0x00000, 0x40000, CRC(15c8f5f9) SHA1(e4235e1315d0331f3ce5047834a68764ed43aa4b) ) /* tiles + sprites */ - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) /* sprite lookup table */ - /* there is no char lookup table */ -ROM_END - -ROM_START( labyrunk ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "771k04.10f", 0x10000, 0x08000, CRC(9816ab35) SHA1(6efb0332f4a62f20889f212682ee7225e4a182a9) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - ROM_LOAD( "771k03.8f", 0x18000, 0x10000, CRC(48d732ae) SHA1(8bc7917397f32cf5f995b3763ae921725e27de05) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "771d01a.13a", 0x00000, 0x10000, CRC(0cd1ed1a) SHA1(eac6c106de28acc54535ae1fb99f778c1ed4013e) ) /* tiles + sprites */ - ROM_LOAD16_BYTE( "771d01c.13a", 0x00001, 0x10000, CRC(d75521fe) SHA1(72f0c4d9511bc70d77415f50be93293026305bd5) ) - ROM_LOAD16_BYTE( "771d01b", 0x20000, 0x10000, CRC(07f2a71c) SHA1(63c79e75e71539e69d4d9d35e629a6021124f6d0) ) - ROM_LOAD16_BYTE( "771d01d", 0x20001, 0x10000, CRC(f6810a49) SHA1(b40e9f0d0919188a05c1990347da8dc8ff12d65a) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "771d02.08d", 0x0000, 0x0100, CRC(3d34bb5a) SHA1(3f3c845f1197457244e7c7e4f9b2a03c278613e4) ) /* sprite lookup table */ - /* there is no char lookup table */ -ROM_END - - -GAME( 1987, tricktrp, 0, labyrunr, labyrunr, 0, ROT90, "Konami", "Trick Trap (World?)", 0 ) -GAME( 1987, labyrunr, tricktrp, labyrunr, labyrunr, 0, ROT90, "Konami", "Labyrinth Runner (Japan)", 0 ) -GAME( 1987, labyrunk, tricktrp, labyrunr, labyrunr, 0, ROT90, "Konami", "Labyrinth Runner (World Ver. K)", 0 ) diff --git a/src/drivers/lasso.c b/src/drivers/lasso.c deleted file mode 100644 index d7b3ac4bc..000000000 --- a/src/drivers/lasso.c +++ /dev/null @@ -1,978 +0,0 @@ -/*************************************************************************** - - Lasso and similar hardware - - driver by Phil Stroffolino, Nicola Salmoria, Luca Elia - ---------------------------------------------------------------------------- -Year + Game By CPUs Sound Chips ---------------------------------------------------------------------------- -82 Lasso SNK 3 x 6502 2 x SN76489 -83 Chameleon Jaleco 2 x 6502 2 x SN76489 -84 Wai Wai Jockey Gate-In! Jaleco/Casio 2 x 6502 2 x SN76489 + DAC -84 Pinbo Jaleco 6502 + Z80 2 x AY-8910 ---------------------------------------------------------------------------- - -Notes: - -- unknown CPU speeds (affect game timing) -- Lasso: fire button auto-repeats on high score entry screen (real behavior?) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "lasso.h" -#include "sound/dac.h" -#include "sound/sn76496.h" -#include "sound/ay8910.h" - - -/* IRQ = VBlank, NMI = Coin Insertion */ - -static INTERRUPT_GEN( lasso_interrupt ) -{ - static int old; - int new; - - // VBlank - if (cpu_getiloops() == 0) - { - cpunum_set_input_line(0, 0, HOLD_LINE); - return; - } - - // Coins - new = ~readinputport(3) & 0x30; - - if ( ((new & 0x10) && !(old & 0x10)) || - ((new & 0x20) && !(old & 0x20)) ) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - - old = new; -} - - -/* Shared RAM between Main CPU and sub CPU */ - -static UINT8 *lasso_sharedram; - -static READ8_HANDLER( lasso_sharedram_r ) -{ - return lasso_sharedram[offset]; -} -static WRITE8_HANDLER( lasso_sharedram_w ) -{ - lasso_sharedram[offset] = data; -} - - -/* Write to the sound latch and generate an IRQ on the sound CPU */ - -static WRITE8_HANDLER( sound_command_w ) -{ - soundlatch_w(offset,data); - cpunum_set_input_line( 1, 0, PULSE_LINE ); -} - -static READ8_HANDLER( sound_status_r ) -{ - /* 0x01: chip#0 ready; 0x02: chip#1 ready */ - return 0x03; -} - -static UINT8 lasso_chip_data; - -static WRITE8_HANDLER( sound_data_w ) -{ - lasso_chip_data = BITSWAP8(data,0,1,2,3,4,5,6,7); -} - -static WRITE8_HANDLER( sound_select_w ) -{ - if (~data & 0x01) /* chip #0 */ - SN76496_0_w(0,lasso_chip_data); - - if (~data & 0x02) /* chip #1 */ - SN76496_1_w(0,lasso_chip_data); -} - - - -static ADDRESS_MAP_START( lasso_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0c7f) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x17ff) AM_READ(lasso_sharedram_r ) - AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r) - AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r) - AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r) - AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lasso_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram) - AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram) - AM_RANGE(0x0c00, 0x0c7f) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size) - AM_RANGE(0x1000, 0x17ff) AM_WRITE(lasso_sharedram_w ) - AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w) - AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w ) - AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w) - AM_RANGE(0x1806, 0x1806) AM_WRITE(MWA8_NOP) // games uses 'lsr' to read port - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( chameleo_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r) - AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r) - AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r) - AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r) - AM_RANGE(0x2000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chameleo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram) - AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram) - AM_RANGE(0x0c00, 0x0fff) AM_WRITE(MWA8_RAM) // - AM_RANGE(0x1000, 0x107f) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size) - AM_RANGE(0x1080, 0x10ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w) - AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w ) - AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w) - AM_RANGE(0x2000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( wwjgtin_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r) - AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r) - AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r) - AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r) - AM_RANGE(0x5000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xfffa, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wwjgtin_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram) - AM_RANGE(0x0c00, 0x0fff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram) - AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size) - AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w) - AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w ) - AM_RANGE(0x1802, 0x1802) AM_WRITE(wwjgtin_video_control_w ) - AM_RANGE(0x1c00, 0x1c03) AM_WRITE(wwjgtin_lastcolor_w) - AM_RANGE(0x1c04, 0x1c07) AM_WRITE(MWA8_RAM) AM_BASE(&wwjgtin_track_scroll) - AM_RANGE(0x5000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( pinbo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram) - AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram) - AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size) - AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w) - AM_RANGE(0x1802, 0x1802) AM_WRITE(pinbo_video_control_w) - AM_RANGE(0x2000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( lasso_coprocessor_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lasso_coprocessor_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_sharedram) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_bitmap_ram) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( lasso_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) - AM_RANGE(0x5000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r) - AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lasso_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( chameleo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r) - AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r) - AM_RANGE(0xfffa, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chameleo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w) - AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( wwjgtin_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w) - AM_RANGE(0xb003, 0xb003) AM_WRITE(DAC_0_data_w) - AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( pinbo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pinbo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pinbo_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_1_r) - AM_RANGE(0x08, 0x08) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pinbo_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x08, 0x08) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x14, 0x14) AM_WRITE(MWA8_NOP) /* ??? */ -ADDRESS_MAP_END - - - -INPUT_PORTS_START( lasso ) - PORT_START_TAG("1804") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* lasso */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) /* shoot */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1805") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1806") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) ) -// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0a, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) -// PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x80, 0x80, "Warm-Up Instructions" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) - - PORT_START_TAG("1807") - PORT_DIPNAME( 0x01, 0x00, "Warm-Up" ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, "Warm-Up Language" ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x02, DEF_STR( German ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* used */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( chameleo ) - PORT_START_TAG("1804") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1805") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1806") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) ) -// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0a, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x30, "5" ) -// PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x20, "Infinite (Cheat)") - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("1807") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( wwjgtin ) - PORT_START_TAG("1804") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1805") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("1806") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* used - has to do with the controls */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) ) -// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0a, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("1807") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life) ) - PORT_DIPSETTING( 0x00, "20k" ) - PORT_DIPSETTING( 0x01, "50k" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) -INPUT_PORTS_END - -INPUT_PORTS_START( pinbo ) - PORT_START_TAG("1804") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("1805") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("1806") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C ) ) -// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0a, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x30, "70 (Cheat)") - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("1807") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life) ) - PORT_DIPSETTING( 0x00, "500000,1000000" ) - PORT_DIPSETTING( 0x01, DEF_STR( None ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Controls ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Reversed" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* probably unused */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - - -static const gfx_layout lasso_charlayout = -{ - 8,8, - RGN_FRAC(1,4), - 2, - { RGN_FRAC(0,4), RGN_FRAC(2,4) }, - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 -}; - -static const gfx_layout lasso_spritelayout = -{ - 16,16, - RGN_FRAC(1,4), - 2, - { RGN_FRAC(1,4), RGN_FRAC(3,4) }, - { STEP8(0,1), STEP8(8*8*1,1) }, - { STEP8(0,8), STEP8(8*8*2,8) }, - 16*16 -}; - -static const gfx_layout wwjgtin_tracklayout = -{ - 16,16, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(1,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(2,4) }, - { STEP8(0,1), STEP8(8*8*1,1) }, - { STEP8(0,8), STEP8(8*8*2,8) }, - 16*16 -}; - -/* Pinbo is 3bpp, otherwise the same */ -static const gfx_layout pinbo_charlayout = -{ - 8,8, - RGN_FRAC(1,6), - 3, - { RGN_FRAC(0,6), RGN_FRAC(2,6), RGN_FRAC(4,6) }, - { STEP8(0,1) }, - { STEP8(0,8) }, - 8*8 -}; - -static const gfx_layout pinbo_spritelayout = -{ - 16,16, - RGN_FRAC(1,6), - 3, - { RGN_FRAC(1,6), RGN_FRAC(3,6), RGN_FRAC(5,6) }, - { STEP8(0,1), STEP8(8*8*1,1) }, - { STEP8(0,8), STEP8(8*8*2,8) }, - 16*16 -}; - - -static const gfx_decode lasso_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &lasso_charlayout, 0, 16 }, - { REGION_GFX1, 0, &lasso_spritelayout, 0, 16 }, - { -1 } -}; - -static const gfx_decode wwjgtin_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &lasso_charlayout, 0, 16 }, - { REGION_GFX1, 0, &lasso_spritelayout, 0, 16 }, - { REGION_GFX2, 0, &wwjgtin_tracklayout, 4*16, 16 }, - { -1 } -}; - -static const gfx_decode pinbo_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &pinbo_charlayout, 0, 16 }, - { REGION_GFX1, 0, &pinbo_spritelayout, 0, 16 }, - { -1 } -}; - - - -static MACHINE_DRIVER_START( lasso ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6502, 2000000) /* 2 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(lasso_readmem,lasso_writemem) - MDRV_CPU_VBLANK_INT(lasso_interrupt,2) /* IRQ = VBlank, NMI = Coin Insertion */ - - MDRV_CPU_ADD_TAG("audio", M6502, 600000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(lasso_sound_readmem,lasso_sound_writemem) - - MDRV_CPU_ADD_TAG("blitter", M6502, 2000000) /* 2 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(lasso_coprocessor_readmem,lasso_coprocessor_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(lasso_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x40) - - MDRV_PALETTE_INIT(lasso) - MDRV_VIDEO_START(lasso) - MDRV_VIDEO_UPDATE(lasso) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("sn76496.1", SN76496, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD_TAG("sn76496.2", SN76496, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( chameleo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(lasso) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(chameleo_readmem,chameleo_writemem) - - MDRV_CPU_MODIFY("audio") - MDRV_CPU_PROGRAM_MAP(chameleo_sound_readmem,chameleo_sound_writemem) - - MDRV_CPU_REMOVE("blitter") - - /* video hardware */ - MDRV_VIDEO_UPDATE(chameleo) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( wwjgtin ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(lasso) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(wwjgtin_readmem,wwjgtin_writemem) - - MDRV_CPU_MODIFY("audio") - MDRV_CPU_PROGRAM_MAP(lasso_sound_readmem,wwjgtin_sound_writemem) - - MDRV_CPU_REMOVE("blitter") - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area? - MDRV_GFXDECODE(wwjgtin_gfxdecodeinfo) // Has 1 additional layer - MDRV_PALETTE_LENGTH(0x40+1) - MDRV_COLORTABLE_LENGTH(4*16 + 16*16) // Reserve 1 color for black - - MDRV_PALETTE_INIT(wwjgtin) - MDRV_VIDEO_START(wwjgtin) - MDRV_VIDEO_UPDATE(wwjgtin) - - /* sound hardware */ - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pinbo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(lasso) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(chameleo_readmem,pinbo_writemem) - - MDRV_CPU_REPLACE("audio", Z80, 3000000) - MDRV_CPU_PROGRAM_MAP(pinbo_sound_readmem,pinbo_sound_writemem) - MDRV_CPU_IO_MAP(pinbo_sound_readport,pinbo_sound_writeport) - - MDRV_CPU_REMOVE("blitter") - - /* video hardware */ - MDRV_GFXDECODE(pinbo_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(pinbo) - MDRV_VIDEO_UPDATE(chameleo) - - /* sound hardware */ - MDRV_SOUND_REMOVE("sn76496.1") - MDRV_SOUND_REMOVE("sn76496.2") - - MDRV_SOUND_ADD(AY8910, 1250000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1250000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -ROM_START( lasso ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "wm3", 0x8000, 0x2000, CRC(f93addd6) SHA1(b0a1b263874da8608c3bab4e8785358e2aa19c2e) ) - ROM_RELOAD( 0xc000, 0x2000) - ROM_LOAD( "wm4", 0xe000, 0x2000, CRC(77719859) SHA1(d206b6af9a567f70d69624866ae9973652527065) ) - ROM_RELOAD( 0xa000, 0x2000) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "wmc", 0x5000, 0x1000, CRC(8b4eb242) SHA1(55ada50036abbaa10799f37e35254e6ff70ee947) ) - ROM_LOAD( "wmb", 0x6000, 0x1000, CRC(4658bcb9) SHA1(ecc83ef99edbe5f69a884a142478ff0f56edba12) ) - ROM_LOAD( "wma", 0x7000, 0x1000, CRC(2e7de3e9) SHA1(665a89b9914ca16b9c08b751e142cf7320aaf793) ) - ROM_RELOAD( 0xf000, 0x1000 ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 6502 code (lasso image blitter) */ - ROM_LOAD( "wm5", 0xf000, 0x1000, CRC(7dc3ff07) SHA1(46aaa9186940d06fd679a573330e9ad3796aa647) ) - ROM_RELOAD( 0x8000, 0x1000) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "wm1", 0x0000, 0x0800, CRC(7db77256) SHA1(d12305bdfb6923c32982982a5544ae9bd8dbc2cb) ) /* Tiles */ - ROM_CONTINUE( 0x1000, 0x0800 ) /* Sprites */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_LOAD( "wm2", 0x2000, 0x0800, CRC(9e7d0b6f) SHA1(c82be332209bf7331718e51926004fe9aa6f5ebd) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x3000, 0x0800 ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x3800, 0x0800 ) - - ROM_REGION( 0x40, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.69", 0x0000, 0x0020, CRC(1eabb04d) SHA1(3dc5b407bc1b1dea77337b4e913f1e945386d5c9) ) - ROM_LOAD( "82s123.70", 0x0020, 0x0020, CRC(09060f8c) SHA1(8f14b00bcfb7ab89d2e443cc82f7a65dc96ee819) ) -ROM_END - -ROM_START( chameleo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 6502 Code (Main CPU) */ - ROM_LOAD( "chamel4.bin", 0x4000, 0x2000, CRC(97379c47) SHA1(b29fa2318d4260c29fc95d22a461173dc960ad1a) ) - ROM_LOAD( "chamel5.bin", 0x6000, 0x2000, CRC(0a2cadfd) SHA1(1ccc43accd60ca15b8f03ed1c3fda76a840a2bb1) ) - ROM_LOAD( "chamel6.bin", 0x8000, 0x2000, CRC(b023c354) SHA1(0424ecf81ac9f0e055f9ff01cf0bd6d5c9ff866c) ) - ROM_LOAD( "chamel7.bin", 0xa000, 0x2000, CRC(a5a03375) SHA1(c1eac4596c2bda419f3c513ecd3df9fae49ae159) ) - ROM_RELOAD( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 6502 Code (Sound CPU) */ - ROM_LOAD( "chamel3.bin", 0x1000, 0x1000, CRC(52eab9ec) SHA1(554c34134e3af970262da89fe82feeaf47fd30bc) ) - ROM_LOAD( "chamel2.bin", 0x6000, 0x1000, CRC(81dcc49c) SHA1(7e1b4351775f9c140a43f531da8b055271b7b28c) ) - ROM_LOAD( "chamel1.bin", 0x7000, 0x1000, CRC(96031d3b) SHA1(a143b54b98891423d355e0ba08c3b88d70fa0e23) ) - ROM_RELOAD( 0xf000, 0x1000 ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "chamel8.bin", 0x0800, 0x0800, CRC(dc67916b) SHA1(8b3fad0d5d42925b44e51df7f88ea4b6a8dbb4f6) ) /* Tiles */ - ROM_CONTINUE( 0x1800, 0x0800 ) /* Sprites */ - ROM_CONTINUE( 0x0000, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_LOAD( "chamel9.bin", 0x2800, 0x0800, CRC(6b559bf1) SHA1(b7b8b8bccbd88ea868e2d3ccb42513615120d8e6) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x3800, 0x0800 ) - ROM_CONTINUE( 0x2000, 0x0800 ) - ROM_CONTINUE( 0x3000, 0x0800 ) - - ROM_REGION( 0x40, REGION_PROMS, ROMREGION_DISPOSE ) /* Colors */ - ROM_LOAD( "chambprm.bin", 0x0000, 0x0020, CRC(e3ad76df) SHA1(cd115cece4931bfcfc0f60147b942998a5c21bf7) ) - ROM_LOAD( "chamaprm.bin", 0x0020, 0x0020, CRC(c7063b54) SHA1(53baed3806848207ab3a8fafd182cabec3be4b04) ) -ROM_END - -ROM_START( wwjgtin ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 6502 Code (Main CPU) */ - ROM_LOAD( "ic2.6", 0x4000, 0x4000, CRC(744ba45b) SHA1(cccf3e2dd3c27bf54d2abd366cd9a044311aa031) ) - ROM_LOAD( "ic5.5", 0x8000, 0x4000, CRC(af751614) SHA1(fc0f0a3967524b1743a182c1da4f9b0c3097a157) ) - ROM_RELOAD( 0xc000, 0x4000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 6502 Code (Sound CPU) */ - ROM_LOAD( "ic59.9", 0x4000, 0x4000, CRC(2ecb4d98) SHA1(d5b0d447b24f64fca452dc13e6ff95b090fce2d7) ) - ROM_RELOAD( 0xc000, 0x4000 ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic81.7", 0x0000, 0x0800, CRC(a27f1a63) SHA1(3c770424bd4996f648687afce4aecea252da83a7) ) /* Tiles */ - ROM_CONTINUE( 0x2000, 0x0800 ) /* Sprites */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x3000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_CONTINUE( 0x3800, 0x0800 ) - ROM_LOAD( "ic82.8", 0x4000, 0x0800, CRC(ea2862b3) SHA1(f7604fd324560c54311c35f806a17e30e018032a) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x6000, 0x0800 ) /* Sprites */ - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x6800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x7000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_CONTINUE( 0x7800, 0x0800 ) - - ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic47.3", 0x0000, 0x2000, CRC(40594c59) SHA1(94533be8e267d9aa5bcdd52b45f6974436d3fed5) ) // 1xxxxxxxxxxxx = 0xFF - ROM_LOAD( "ic46.4", 0x2000, 0x2000, CRC(d1921348) SHA1(8b5506ff80a31ce721aed515cad1b4a7e52e47a2) ) - - ROM_REGION( 0x4000, REGION_USER1, 0 ) /* tilemap */ - ROM_LOAD( "ic48.2", 0x0000, 0x2000, CRC(a4a7df77) SHA1(476aab702346a402169ab404a8b06589e4932d37) ) - ROM_LOAD( "ic49.1", 0x2000, 0x2000, CRC(e480fbba) SHA1(197c86747ef8477040169f90eb6e04d928aedbe5) ) // FIXED BITS (1111xxxx) - - ROM_REGION( 0x40, REGION_PROMS, ROMREGION_DISPOSE ) - ROM_LOAD( "2.bpr", 0x0000, 0x0020, CRC(79adda5d) SHA1(e54de3eb02f744d49f524cd81e1cf993338916e3) ) - ROM_LOAD( "1.bpr", 0x0020, 0x0020, CRC(c1a93cc8) SHA1(805641ea2ce86589b968f1ff44e5d3ab9377769d) ) -ROM_END - -ROM_START( pinbo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rom2.b7", 0x2000, 0x2000, CRC(9a185338) SHA1(4029cf927686b5e14ef7600b17ea3056cc58b15b) ) - ROM_LOAD( "rom3.e7", 0x6000, 0x2000, CRC(1cd1b3bd) SHA1(388ea72568f5bfd39856d872415327a2afaf7fad) ) - ROM_LOAD( "rom4.h7", 0x8000, 0x2000, CRC(ba043fa7) SHA1(ef3d67b6dab5c82035c58290879a3ca969a0256d) ) - ROM_LOAD( "rom5.j7", 0xa000, 0x2000, CRC(e71046c4) SHA1(f49133544c98df5f3e1a1d2ae92e17261b1504fc) ) - ROM_RELOAD( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */ - ROM_LOAD( "rom1.s8", 0x0000, 0x2000, CRC(ca45a1be) SHA1(d0b2d8f1e6d01b60cba83d2bd458a57548549b4b) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */ - ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x3000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_CONTINUE( 0x3800, 0x0800 ) - ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x6000, 0x0800 ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x6800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x7000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_CONTINUE( 0x7800, 0x0800 ) - ROM_LOAD( "rom7.d1", 0x8000, 0x0800, CRC(327a3c21) SHA1(e938915d28ac4ec033b20d33728788493e3f30f6) ) /* 3rd bitplane */ - ROM_CONTINUE( 0xa000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0xa800, 0x0800 ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0xb000, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_CONTINUE( 0xb800, 0x0800 ) - - ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */ - ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) ) - ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) ) - ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) ) -ROM_END - -ROM_START( pinboa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rom2.b7", 0x2000, 0x2000, CRC(9a185338) SHA1(4029cf927686b5e14ef7600b17ea3056cc58b15b) ) - ROM_LOAD( "6.bin", 0x6000, 0x2000, CRC(f80b204c) SHA1(ee9b4ae1d8ea2fc062022fcfae67df87ed7aff41) ) - ROM_LOAD( "5.bin", 0x8000, 0x2000, CRC(c57fe503) SHA1(11b7371c07c9b2c73ab61420a2cc609653c48d37) ) - ROM_LOAD( "4.bin", 0xa000, 0x2000, CRC(d632b598) SHA1(270a5a790a66eaf3d90bf8081ab144fd1af9db3d) ) - ROM_RELOAD( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */ - ROM_LOAD( "8.bin", 0x0000, 0x2000, CRC(32d1df14) SHA1(c0d4181378bbd6f2c594e923e2f8b21647c7fb0e) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */ - ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x3000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_CONTINUE( 0x3800, 0x0800 ) - ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x6000, 0x0800 ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x6800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x7000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_CONTINUE( 0x7800, 0x0800 ) - ROM_LOAD( "2.bin", 0x8000, 0x0800, CRC(33cac92e) SHA1(55d4ff3ae9c9519a59bd6021a53584c873b4d327) ) /* 3rd bitplane */ - ROM_CONTINUE( 0xa000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0xa800, 0x0800 ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0xb000, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_CONTINUE( 0xb800, 0x0800 ) - - ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */ - ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) ) - ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) ) - ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) ) -ROM_END - -ROM_START( pinbos ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "b4.bin", 0x2000, 0x2000, CRC(d9452d4f) SHA1(c744ee037275b880c0ddc2fd83b3c05eb0a53621) ) - ROM_LOAD( "b5.bin", 0x6000, 0x2000, CRC(f80b204c) SHA1(ee9b4ae1d8ea2fc062022fcfae67df87ed7aff41) ) - ROM_LOAD( "b6.bin", 0x8000, 0x2000, CRC(ae967d83) SHA1(e79db85917a31821d10f919c4c429da33e97894d) ) - ROM_LOAD( "b7.bin", 0xa000, 0x2000, CRC(7a584b4e) SHA1(2eb55b706815228b3b12ee5c0f6c415cd1d612e6) ) - ROM_RELOAD( 0xe000, 0x2000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */ - ROM_LOAD( "b8.bin", 0x0000, 0x2000, CRC(32d1df14) SHA1(c0d4181378bbd6f2c594e923e2f8b21647c7fb0e) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */ - ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */ - ROM_CONTINUE( 0x0800, 0x0800 ) - ROM_CONTINUE( 0x2800, 0x0800 ) - ROM_CONTINUE( 0x1000, 0x0800 ) - ROM_CONTINUE( 0x3000, 0x0800 ) - ROM_CONTINUE( 0x1800, 0x0800 ) - ROM_CONTINUE( 0x3800, 0x0800 ) - ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */ - ROM_CONTINUE( 0x6000, 0x0800 ) - ROM_CONTINUE( 0x4800, 0x0800 ) - ROM_CONTINUE( 0x6800, 0x0800 ) - ROM_CONTINUE( 0x5000, 0x0800 ) - ROM_CONTINUE( 0x7000, 0x0800 ) - ROM_CONTINUE( 0x5800, 0x0800 ) - ROM_CONTINUE( 0x7800, 0x0800 ) - ROM_LOAD( "rom7.d1", 0x8000, 0x0800, CRC(327a3c21) SHA1(e938915d28ac4ec033b20d33728788493e3f30f6) ) /* 3rd bitplane */ - ROM_CONTINUE( 0xa000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0xa800, 0x0800 ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0xb000, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_CONTINUE( 0xb800, 0x0800 ) - - ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */ - ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) ) - ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) ) - ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) ) -ROM_END - - - -/*************************************************************************** - - Game Drivers - -***************************************************************************/ - -GAME( 1982, lasso, 0, lasso, lasso, 0, ROT90, "SNK", "Lasso" , 0 ) -GAME( 1983, chameleo, 0, chameleo, chameleo, 0, ROT0, "Jaleco", "Chameleon" , 0 ) -GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", 0 ) -GAME( 1984, pinbo, 0, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 1)", 0 ) -GAME( 1984, pinboa, pinbo, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 2)", 0 ) -GAME( 1985, pinbos, pinbo, pinbo, pinbo, 0, ROT90, "bootleg?", "Pinbo (Strike)", 0 ) diff --git a/src/drivers/lazercmd.c b/src/drivers/lazercmd.c deleted file mode 100644 index 9c1f03305..000000000 --- a/src/drivers/lazercmd.c +++ /dev/null @@ -1,868 +0,0 @@ -/*************************************************************************** - Lazer Command memory map (preliminary) - - driver by Juergen Buchmueller - - 0000-0bff ROM - - 1c00-1c1f RAM CPU scratch pad is first 32 bytes of video RAM(not displayed) - - 1c20-1eff RAM video buffer - xxxx D0 - D5 character select - D6 horz line below character (row #9) - D7 vert line right of character (bit #0) - - 1f00-1f03 R/W hardware - - 1f00 W audio channels - D4 gun fire - D5 explosion - D6 tank engine - D7 running man - 1f00 R player 1 joystick - D0 up - D1 down - D2 right - D3 left - - 1f01 W D0 - D7 marker y position - 1f01 R player 2 joystick - D0 up - D1 down - D2 right - D3 left - - 1f02 W D0 - D7 marker x position - 1f02 R player 1 + 2 buttons - D0 button 1 player 2 - D1 button 1 player 1 - D2 button 2 player 2 - D3 button 2 player 1 - - 1f03 W attract mode - D0 toggle on attract mode - (attract mode switched off by coin detected) - D4 clear coin detected toggle - 1f03 R coinage, coin detected and start buttons - D0 coin 1/2 (DIP switch 4) - D1 start 'expert' - D2 start 'novice' - D3 coin detected - - 1f04-1f07 Read only hardware - - 1f04 R vertical scan counter - D0 60 Hz - D1 120 Hz - D2 240 Hz - D3 480 Hz - - 1f05 R vertical scan counter - D0 7.860 KHz - D1 3.960 KHz - D2 1.980 KHz - D3 960 Hz - - 1f06 R D0 - D7 readback of marker x position - - 1f07 R D0 - D7 readback of marker y position - - I/O ports: - - 'data' R game time - D0 - D1 60,90,120,180 seconds (DIP switch 1 - 2) - -***************************************************************************/ - -/*************************************************************************** - Meadows Lanes memory map (preliminary) - - 0000-0bff ROM - - 0c00-0c1f RAM CPU scratch pad is first 32 bytes of video RAM(not displayed) - - 0c20-0eff RAM video buffer - xxxx D0 - D5 character select - D6 horz line below character (row #9) - D7 vert line right of character (bit #0) - - 1000-17ff ROM - - 1f00-1f03 R/W hardware - - 1f00 W audio control bits - D0 - D3 not used - D4 bowl and hit - D5 hit - D6 - D7 not used - 1f00 R bowl ball - D0 fast - D1 slow - joystick - D2 right - D3 left - - 1f01 W D0 - D7 marker y position - 1f01 R hook control - D0 left - D1 right - D2 - D3 not used - - 1f02 W D0 - D7 marker x position - 1f02 R D0 - D3 not used - - 1f03 W attract mode - D0 toggle on attract mode - (attract mode switched off by coin detected) - D4 clear coin detected toggle - D5 can be jumpered to control inverse video - D6 - D7 not used - 1f03 R coinage, coin detected and start buttons - D0 coin 1/2 (DIP switch 4) - D1 start - D2 not used - D3 coin detected - - 1f04-1f07 Read only hardware - - 1f04 R vertical scan counter - D0 60 Hz - D1 120 Hz - D2 240 Hz - D3 480 Hz - - 1f05 R vertical scan counter - D0 7.860 KHz - D1 3.960 KHz - D2 1.980 KHz - D3 960 Hz - - 1f06 R D0 - D7 readback of marker x position - - 1f07 R D0 - D7 readback of marker y position - - I/O ports: - - 'data' R game time - D0 time on (DIP switch 1) - D1 3,5 seconds (DIP switch 2) - -***************************************************************************/ - -/*************************************************************************** - Bigfoot Bonkers memory map (preliminary) - - driver by Juergen Buchmueller - - 0000-07ff ROM - - 1c00-1c1f RAM CPU scratch pad is first 32 bytes of video RAM(not displayed) - - 1c20-1eff RAM video buffer - xxxx D0 - D5 character select - D6 horz line below character (row #9) - D7 vert line right of character (bit #0) - - 1f00-1f03 R/W hardware - - 1f00 W audio channels - D4 unused - D5 tone 1 - D6 tone 2 - D7 unused - 1f00 R player 1 joystick - D0 up - D1 down - D2 right - D3 left - - 1f01 W D0 - D7 unused - 1f01 R player 2 joystick - D0 up - D1 down - D2 right - D3 left - - 1f02 W D0 - D7 unused - 1f02 R player 1 + 2 buttons - D0 unused - D1 unused - D2 unused - D3 unused - - 1f03 W attract mode - D0 toggle on attract mode - (attract mode switched off by coin detected) - D4 clear coin detected toggle - 1f03 R coinage, coin detected and start buttons - D0 coin 1/2 (DIP switch 4) - D1 start - D2 start - D3 coin detected - - 1f04-1f07 Read only hardware - - 1f04 R vertical scan counter - D0 60 Hz - D1 120 Hz - D2 240 Hz - D3 480 Hz - - 1f05 R vertical scan counter - D0 7.860 KHz - D1 3.960 KHz - D2 1.980 KHz - D3 960 Hz - - 1f06 R D0 - D7 unused - - 1f07 R D0 - D7 unused - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/lazercmd.h" -#include "cpu/s2650/s2650.h" -#include "sound/dac.h" - -#include "rendlay.h" -#include "lazercmd.lh" - - -/************************************************************* - * - * Statics - * - *************************************************************/ -static int timer_count = 0; - -/************************************************************* - * Interrupt for the cpu - * Fake something toggling the sense input line of the S2650 - * The rate should be at about 1 Hz - *************************************************************/ -static INTERRUPT_GEN( lazercmd_timer ) -{ - static int sense_state = 0; - - if( ++timer_count >= 64*128 ) { - timer_count = 0; - sense_state ^= 1; - cpunum_set_input_line( 0, 1, (sense_state) ? ASSERT_LINE : CLEAR_LINE ); - } -} - -static INTERRUPT_GEN( bbonk_timer ) -{ - if( ++timer_count >= 64*128 ) - timer_count = 0; -} - -/************************************************************* - * - * IO port read/write - * - *************************************************************/ - -/* triggered by WRTC,r opcode */ -static WRITE8_HANDLER( lazercmd_ctrl_port_w ) -{ -} - -/* triggered by REDC,r opcode */ -static READ8_HANDLER( lazercmd_ctrl_port_r ) -{ - int data = 0; - return data; -} - -/* triggered by WRTD,r opcode */ -static WRITE8_HANDLER( lazercmd_data_port_w ) -{ -} - -/* triggered by REDD,r opcode */ -static READ8_HANDLER( lazercmd_data_port_r ) -{ - int data; - data = input_port_2_r(0) & 0x0f; - return data; -} - -static WRITE8_HANDLER( lazercmd_hardware_w ) -{ - static int DAC_data = 0; - - switch (offset) - { - case 0: /* audio channels */ - DAC_data=(data&0x80)^((data&0x40)<<1)^((data&0x20)<<2)^((data&0x10)<<3); - if (DAC_data) - { - DAC_data_w(0, 0xff); - } - else - { - DAC_data_w(0, 0); - } - break; - case 1: /* marker Y position */ - lazercmd_marker_dirty(0); /* mark old position dirty */ - marker_y = data; - break; - case 2: /* marker X position */ - lazercmd_marker_dirty(0); /* mark old position dirty */ - marker_x = data; - break; - case 3: /* D4 clears coin detected and D0 toggles on attract mode */ - break; - } -} - -static WRITE8_HANDLER( medlanes_hardware_w ) -{ - static int DAC_data = 0; - - switch (offset) - { - case 0: /* audio control */ - /* bits 4 and 5 are used to control a sound board */ - /* these could be used to control sound samples */ - /* at the moment they are routed through the dac */ - DAC_data=((data&0x20)<<2)^((data&0x10)<<3); - if (DAC_data) - { - DAC_data_w(0, 0xff); - } - else - { - DAC_data_w(0, 0); - } - break; - case 1: /* marker Y position */ - lazercmd_marker_dirty(0); /* mark old position dirty */ - marker_y = data; - break; - case 2: /* marker X position */ - lazercmd_marker_dirty(0); /* mark old position dirty */ - marker_x = data; - break; - case 3: /* D4 clears coin detected and D0 toggles on attract mode */ - break; - } -} - -static WRITE8_HANDLER( bbonk_hardware_w ) -{ - static int DAC_data = 0; - - switch (offset) - { - case 0: /* audio control */ - /* bits 4 and 5 are used to control a sound board */ - /* these could be used to control sound samples */ - /* at the moment they are routed through the dac */ - DAC_data=((data&0x20)<<2)^((data&0x10)<<3); - if (DAC_data) - { - DAC_data_w(0, 0xff); - } - else - { - DAC_data_w(0, 0); - } - break; - case 3: /* D4 clears coin detected and D0 toggles on attract mode */ - break; - } -} - -static READ8_HANDLER( lazercmd_hardware_r ) -{ - int data = 0; - - switch (offset) - { - case 0: /* player 1 joysticks */ - data = input_port_0_r(0); - break; - case 1: /* player 2 joysticks */ - data = input_port_1_r(0); - break; - case 2: /* player 1 + 2 buttons */ - data = input_port_4_r(0); - break; - case 3: /* coin slot + start buttons */ - data = input_port_3_r(0); - break; - case 4: /* vertical scan counter */ - data = ((timer_count&0x10)>>1)|((timer_count&0x20)>>3)|((timer_count&0x40)>>5)|((timer_count&0x80)>>7); - break; - case 5: /* vertical scan counter */ - data = timer_count & 0x0f; - break; - case 6: /* 1f02 readback */ - data = marker_x; - break; - case 7: /* 1f01 readback */ - data = marker_y; - break; - } - return data; -} - - -/************************************************************* - * - * Memory maps - * - *************************************************************/ - -static ADDRESS_MAP_START( lazercmd_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0bff) AM_ROM - AM_RANGE(0x1c00, 0x1c1f) AM_RAM - AM_RANGE(0x1c20, 0x1eff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x1f00, 0x1f03) AM_WRITE(lazercmd_hardware_w) - AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( medlanes_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0bff) AM_ROM - AM_RANGE(0x1000, 0x17ff) AM_ROM - AM_RANGE(0x1c00, 0x1c1f) AM_RAM - AM_RANGE(0x1c20, 0x1eff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x1f00, 0x1f03) AM_WRITE(medlanes_hardware_w) - AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( bbonk_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0bff) AM_ROM - AM_RANGE(0x1c00, 0x1c1f) AM_RAM - AM_RANGE(0x1c20, 0x1eff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x1f00, 0x1f03) AM_WRITE(bbonk_hardware_w) - AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( lazercmd_portmap, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(lazercmd_ctrl_port_r, lazercmd_ctrl_port_w) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(lazercmd_data_port_r, lazercmd_data_port_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( lazercmd ) - PORT_START /* IN0 player 1 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 player 2 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 dip switch */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x00, "60 seconds" ) - PORT_DIPSETTING( 0x01, "90 seconds" ) - PORT_DIPSETTING( 0x02, "120 seconds" ) - PORT_DIPSETTING( 0x03, "180 seconds" ) - PORT_BIT( 0x18, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x20, 0x20, "Video Invert" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Marker Size" ) - PORT_DIPSETTING( 0x00, "Small" ) - PORT_DIPSETTING( 0x40, "Large" ) -// PORT_DIPNAME( 0x80, 0x80, "Color Overlay" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN3 coinage & start */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN4 player 1 + 2 buttons */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( medlanes ) - PORT_START /* IN0 player 1 controls */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 player 1 controls */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hook Left") PORT_CODE(KEYCODE_Z) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hook Right") PORT_CODE(KEYCODE_X) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START /* IN2 dip switch */ - PORT_DIPNAME( 0x01, 0x01, "Game Timer" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Time" ) - PORT_DIPSETTING( 0x00, "3 seconds" ) - PORT_DIPSETTING( 0x02, "5 seconds" ) - PORT_BIT( 0x1C, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x20, 0x00, "Video Invert" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Marker Size" ) - PORT_DIPSETTING( 0x00, "Small" ) - PORT_DIPSETTING( 0x40, "Large" ) -// PORT_DIPNAME( 0x80, 0x80, "Color Overlay" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN3 coinage & start */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0xf4, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN4 not used */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( bbonk ) - PORT_START /* IN0 player 1 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 player 2 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 dip switch */ - PORT_DIPNAME( 0x03, 0x02, "Games to win" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_BIT( 0x1C, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME( 0x20, 0x00, "Video Invert" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED) -// PORT_DIPNAME( 0x80, 0x00, "Color Overlay" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) -// PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN3 coinage & start */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0xf4, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN4 not used */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8, 10, /* 8*10 characters */ - 4*64, /* 4 * 64 characters */ - 1, /* 1 bit per pixel */ - { 0 }, /* no bitplanes */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 }, - 10*8 /* every char takes 10 bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 2 }, - { -1 } /* end of array */ -}; - -static unsigned short colortable_source[] = -{ - 1, 0, - 0, 1 -}; -static PALETTE_INIT( lazercmd ) -{ - palette_set_color(machine,0,0x00,0x00,0x00); /* black */ - palette_set_color(machine,1,0xb0,0xb0,0xb0); /* white */ - palette_set_color(machine,2,0xff,0xff,0xff); /* bright white */ - memcpy(colortable,colortable_source,sizeof(colortable_source)); -} - -static MACHINE_DRIVER_START( lazercmd ) - - /* basic machine hardware */ - MDRV_CPU_ADD(S2650,8064000/12) /* 672 kHz? */ -/* Main Clock is 8MHz divided by 12 - but memory and IO access is only possible - within the line and frame blanking period - thus requiring an extra loading of approx 3-5 */ - MDRV_CPU_PROGRAM_MAP(lazercmd_map,0) - MDRV_CPU_IO_MAP(lazercmd_portmap,0) - MDRV_CPU_VBLANK_INT(lazercmd_timer, 128) /* 7680 Hz */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) - MDRV_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, - 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(3) - MDRV_COLORTABLE_LENGTH(2*2) - - MDRV_PALETTE_INIT(lazercmd) - MDRV_VIDEO_START(lazercmd) - MDRV_VIDEO_UPDATE(lazercmd) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( medlanes ) - - /* basic machine hardware */ - MDRV_CPU_ADD(S2650,8064000/12) /* 672 kHz? */ -/* Main Clock is 8MHz divided by 12 - but memory and IO access is only possible - within the line and frame blanking period - thus requiring an extra loading of approx 3-5 */ - MDRV_CPU_PROGRAM_MAP(medlanes_map,0) - MDRV_CPU_IO_MAP(lazercmd_portmap,0) - MDRV_CPU_VBLANK_INT(lazercmd_timer, 128) /* 7680 Hz */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) - MDRV_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, - 0 * VERT_CHR, VERT_RES * VERT_CHR - 1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(3) - MDRV_COLORTABLE_LENGTH(2*2) - - MDRV_PALETTE_INIT(lazercmd) - MDRV_VIDEO_START(lazercmd) - MDRV_VIDEO_UPDATE(lazercmd) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bbonk ) - - /* basic machine hardware */ - MDRV_CPU_ADD(S2650,8064000/12) /* 672 kHz? */ -/* Main Clock is 8MHz divided by 12 - but memory and IO access is only possible - within the line and frame blanking period - thus requiring an extra loading of approx 3-5 */ - MDRV_CPU_PROGRAM_MAP(bbonk_map,0) - MDRV_CPU_IO_MAP(lazercmd_portmap,0) - MDRV_CPU_VBLANK_INT(bbonk_timer, 128) /* 7680 Hz */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) - MDRV_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, - 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(3) - MDRV_COLORTABLE_LENGTH(2*2) - - MDRV_PALETTE_INIT(lazercmd) - MDRV_VIDEO_START(lazercmd) - MDRV_VIDEO_UPDATE(lazercmd) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( lazercmd ) - ROM_REGION( 0x0c00, REGION_CPU1, ROMREGION_INVERT ) /* 32K cpu, 4K for ROM/RAM */ - ROM_LOAD_NIB_HIGH( "lc.e5", 0x0000, 0x0400, CRC(56dc7a40) SHA1(1324d5d6a44d7314723a0b5745d89f8e27f49d25) ) - ROM_LOAD_NIB_LOW( "lc.f5", 0x0000, 0x0400, CRC(fc5b38a4) SHA1(bff670d7b78c6b9324d2bf4b2d8a4f9dbfe82158) ) - ROM_LOAD_NIB_HIGH( "lc.e6", 0x0400, 0x0400, CRC(b1ef0aa2) SHA1(3edeaa4d4f4e18536066898284d430a1ac00512e) ) - ROM_LOAD_NIB_LOW( "lc.f6", 0x0400, 0x0400, CRC(26eaee21) SHA1(9c0a4a22abb0b0466378f067ef52a45f86cc4369) ) - ROM_LOAD_NIB_HIGH( "lc.e7", 0x0800, 0x0400, CRC(8e6ffc97) SHA1(d5243ce88585db91573b6586d3d47d13b5b473c8) ) - ROM_LOAD_NIB_LOW( "lc.f7", 0x0800, 0x0400, CRC(9ec3534d) SHA1(98f15c5828ad2743bf205f71b8e69abd4db78a58) ) - - ROM_REGION( 0x0c00, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "lc.b8", 0x0a00, 0x0200, CRC(6d708edd) SHA1(85a45a292eb7bca288b06a118658bf754f828a92) ) -ROM_END - -ROM_START( medlanes ) - ROM_REGION( 0x1800, REGION_CPU1, ROMREGION_INVERT ) /* 32K cpu, 4K for ROM/RAM */ - ROM_LOAD_NIB_HIGH( "medlanes.2a", 0x0000, 0x0400, CRC(9c77566a) SHA1(60e1820012b47da8b86d54f00b6f60d2d0123745) ) - ROM_LOAD_NIB_LOW( "medlanes.3a", 0x0000, 0x0400, CRC(22bc56a6) SHA1(7444170c19274d9d889df61796e6f61af2361f3e) ) - ROM_LOAD_NIB_HIGH( "medlanes.2b", 0x0400, 0x0400, CRC(7841b1a9) SHA1(80621d30995dad42ae44c62494922ca8b75415cf) ) - ROM_LOAD_NIB_LOW( "medlanes.3b", 0x0400, 0x0400, CRC(6616dbef) SHA1(9506177315883b7d87a9bfada712ddeea12fd446) ) - ROM_LOAD_NIB_HIGH( "medlanes.2c", 0x0800, 0x0400, CRC(a359b5b8) SHA1(dbc3c286951c50e3465132fc0d6054f06026425d) ) - ROM_LOAD_NIB_LOW( "medlanes.3c", 0x0800, 0x0400, CRC(b3db0f3d) SHA1(57c28a54f7a1f17df3a24b61dd0cf37f9f6bc7d8) ) - ROM_LOAD_NIB_HIGH( "medlanes.1a", 0x1000, 0x0400, CRC(0d57c596) SHA1(f3ce4802fc777c57f75fe691c93b7062903bdf06) ) - ROM_LOAD_NIB_LOW( "medlanes.4a", 0x1000, 0x0400, CRC(30d495e9) SHA1(4f2414bf60ef91093bedf5e9ae16833e9e135aa7) ) - ROM_LOAD_NIB_HIGH( "medlanes.1b", 0x1400, 0x0400, CRC(1d451630) SHA1(bf9de3096e98685355c906ab7e1dc2628dce79d6) ) - ROM_LOAD_NIB_LOW( "medlanes.4b", 0x1400, 0x0400, CRC(a4abb5db) SHA1(a20da872b0f7d6b16b9551233af4269db9d1b55f) ) - - ROM_REGION( 0x0c00, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "medlanes.8b", 0x0a00, 0x0200, CRC(44e5de8f) SHA1(fc797fa137f0c11a15caf9c0013aac668fd69a3c) ) -ROM_END - - -ROM_START( bbonk ) - ROM_REGION( 0x0c00, REGION_CPU1, ROMREGION_INVERT ) /* 32K cpu, 4K for ROM/RAM */ - ROM_LOAD_NIB_HIGH( "bbonk.e5", 0x0000, 0x0400, CRC(d032baa0) SHA1(09cba16f6a2b7d8a8c501db639bd5eeefb63dc0f) ) - ROM_LOAD_NIB_LOW( "bbonk.f5", 0x0000, 0x0400, CRC(748e8c7f) SHA1(99e4e182ee41c246e31f656411a9f09d7b617f92) ) - ROM_LOAD_NIB_HIGH( "bbonk.e6", 0x0400, 0x0400, CRC(71df0e25) SHA1(c2f78490816add1296923861a89df15be9822fed) ) - ROM_LOAD_NIB_LOW( "bbonk.f6", 0x0400, 0x0400, CRC(5ce183ed) SHA1(7c78dfa463a37605e8423104426af2f5906fae24) ) - - ROM_REGION( 0x0c00, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bbonk.b8", 0x0a00, 0x0200, CRC(5ac34260) SHA1(7c2b1e378d2b9fed27117f9adab1381507f5d554) ) -ROM_END - - -DRIVER_INIT( lazercmd ) -{ -int i, y; - -/****************************************************************** - * To show the maze bit #6 and #7 of the video ram are used. - * Bit #7: add a vertical line to the right of the character - * Bit #6: add a horizontal line below the character - * The video logic generates 10 lines per character row, but the - * character generator only contains 8 rows, so we expand the - * font to 8x10. - ******************************************************************/ - for (i = 0; i < 0x40; i++) - { -UINT8 *d = &memory_region(REGION_GFX1)[0 * 64 * 10 + i * VERT_CHR]; -UINT8 *s = &memory_region(REGION_GFX1)[4 * 64 * 10 + i * VERT_FNT]; - - for (y = 0; y < VERT_CHR; y++) - { - d[0*64*10] = (y < VERT_FNT) ? *s++ : 0xff; - d[1*64*10] = (y == VERT_CHR - 1) ? 0 : *d; - d[2*64*10] = *d & 0xfe; - d[3*64*10] = (y == VERT_CHR - 1) ? 0 : *d & 0xfe; - d++; - } - } -} - -DRIVER_INIT( medlanes ) -{ -int i, y; - -/****************************************************************** - * To show the maze bit #6 and #7 of the video ram are used. - * Bit #7: add a vertical line to the right of the character - * Bit #6: add a horizontal line below the character - * The video logic generates 10 lines per character row, but the - * character generator only contains 8 rows, so we expand the - * font to 8x10. - ******************************************************************/ - for (i = 0; i < 0x40; i++) - { -UINT8 *d = &memory_region(REGION_GFX1)[0 * 64 * 10 + i * VERT_CHR]; -UINT8 *s = &memory_region(REGION_GFX1)[4 * 64 * 10 + i * VERT_FNT]; - - for (y = 0; y < VERT_CHR; y++) - { - d[0*64*10] = (y < VERT_FNT) ? *s++ : 0xff; - d[1*64*10] = (y == VERT_CHR - 1) ? 0 : *d; - d[2*64*10] = *d & 0xfe; - d[3*64*10] = (y == VERT_CHR - 1) ? 0 : *d & 0xfe; - d++; - } - } -} - -DRIVER_INIT( bbonk ) -{ -int i, y; - -/****************************************************************** - * To show the maze bit #6 and #7 of the video ram are used. - * Bit #7: add a vertical line to the right of the character - * Bit #6: add a horizontal line below the character - * The video logic generates 10 lines per character row, but the - * character generator only contains 8 rows, so we expand the - * font to 8x10. - ******************************************************************/ - for (i = 0; i < 0x40; i++) - { -UINT8 *d = &memory_region(REGION_GFX1)[0 * 64 * 10 + i * VERT_CHR]; -UINT8 *s = &memory_region(REGION_GFX1)[4 * 64 * 10 + i * VERT_FNT]; - - for (y = 0; y < VERT_CHR; y++) - { - d[0*64*10] = (y < VERT_FNT) ? *s++ : 0xff; - d[1*64*10] = (y == VERT_CHR - 1) ? 0 : *d; - d[2*64*10] = *d & 0xfe; - d[3*64*10] = (y == VERT_CHR - 1) ? 0 : *d & 0xfe; - d++; - } - } -} - - - -GAMEL( 1976, lazercmd, 0, lazercmd, lazercmd, lazercmd, ROT0, "Meadows Games, Inc.", "Lazer Command", 0, layout_lazercmd ) -GAMEL( 1977, medlanes, 0, medlanes, medlanes, medlanes, ROT0, "Meadows Games, Inc.", "Meadows Lanes", GAME_IMPERFECT_SOUND, layout_ho2eff2e ) -GAME ( 1976, bbonk, 0, bbonk, bbonk, bbonk, ROT0, "Meadows Games, Inc.", "Bigfoot Bonkers", 0 ) diff --git a/src/drivers/legionna.c b/src/drivers/legionna.c deleted file mode 100644 index 65a108060..000000000 --- a/src/drivers/legionna.c +++ /dev/null @@ -1,4047 +0,0 @@ -/*************************************************************************** - -Legionnaire (c) Tad 1992 ------------ - -David Graves - -Made from MAME D-con and Toki drivers (by Bryan McPhail, Jarek Parchanski) - - -Heated Barrel looks like a minor revision of the Legionnaire -hardware. It has a graphics banking facility, which doubles the 0xfff -different tiles available for use in the foreground layer. - - -Legionnaire BK3 charsets ------------------------- - -The GFX roms contain two odd sections of 256 16x16 tiles marked as BK3. -These need to be brought together and decoded as a single section of -0x200 tiles. - -The 0x104000 area appears to be extra paletteram? - - -TODO ----- - -Unemulated protection messes up both games. - -Seibu sound system mentioned in log. - - -Legionnaire ------------ - -Foreground tiles screwy (screen after character selection screen). - -Need 16 px off top of vis area? - - -Heated Barrel -------------- - -Big problems with layers not being cleared, especially the text -layer. There may be a write to the COP controlling layer clearance? - -Ends with Access violation when you die on round 1 boss. A lot of -non-existent area reads in log - maybe because of bad reads from -the COP. - - -Denjin Makai ------------- - -Palette Ram format correct,but color offset wrong? -Probably protection related,game updates paletteram with rom data... - -Need a sound kludge to start. - -Sprite GFX ROM order wrong,causes wrong sprite graphics. - - -Godzilla --------- - -The COP-MCU appears to write to the work ram area,otherwise it resets in mid-animation -of the title screen. - - -Preliminary COP MCU memory map ------------------------------- - -0x400-0x5ff Protection related: -0x400 Sprite parameter (color) -0x414-0x412 Sprite DMA source address -0x478 Layer clearance (?) -0x48e X limiter (SD Gundam) -0x48c Y limiter (SD Gundam) -0x4c0-0x4a0 COP reg 0 -0x4c2-0x4a2 COP reg 1 -0x4c4-0x4a4 COP reg 2 -0x4c6-0x4a6 COP reg 3 -0x580(r) Hit Check (bit 1 & bit 0) -0x590-0x59c(r)BCD number -0x5b0 DMA bit flag (bit 1) -0x600-0x6ff Includes standard screen control words -0x700-0x7ff Includes standard Seibu sound system - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/generic.h" -#include "cpu/z80/z80.h" -#include "sndhrdw/seibu.h" -#include "sound/3812intf.h" -#include "cpu/m68000/m68000.h" - -extern WRITE16_HANDLER( legionna_background_w ); -extern WRITE16_HANDLER( legionna_foreground_w ); -extern WRITE16_HANDLER( legionna_midground_w ); -extern WRITE16_HANDLER( legionna_text_w ); -extern WRITE16_HANDLER( legionna_control_w ); - -extern VIDEO_START( legionna ); -extern VIDEO_START( cupsoc ); -extern VIDEO_START( denjinmk ); -extern VIDEO_UPDATE( legionna ); -extern VIDEO_UPDATE( godzilla ); -extern VIDEO_UPDATE( sdgndmrb ); -void heatbrl_setgfxbank(UINT16 data); -void denjinmk_setgfxbank(UINT16 data); - -extern UINT16 *legionna_back_data,*legionna_fore_data,*legionna_mid_data,*legionna_scrollram16,*legionna_textram; -static UINT16 *mcu_ram; -extern UINT8 pri_n; - -static WRITE16_HANDLER( legionna_paletteram16_w ) /* xBBBBxRRRRxGGGGx */ -{ - int a; - COMBINE_DATA(&paletteram16[offset]); - a = paletteram16[offset]; - palette_set_color(Machine,offset,pal4bit(a >> 1),pal4bit(a >> 6),pal4bit(a >> 11)); -} - - -/* Mcu reads in attract in Legionnaire game demo - -Guess the 0x400-0x5ff area of the COP is protection related. - -CPU0 PC 0032a2 unknown MCU write offset: 0260 data: 9c6c -CPU0 PC 0032a8 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 0032c8 unknown MCU write offset: 0261 data: 987c -CPU0 PC 0032ce unknown MCU write offset: 0251 data: 0010 -CPU0 PC 003546 unknown MCU write offset: 0262 data: 02c4 -CPU0 PC 00354a unknown MCU write offset: 0252 data: 0004 -CPU0 PC 00355c unknown MCU write offset: 0263 data: 0000 -CPU0 PC 003560 unknown MCU write offset: 0253 data: 0004 -CPU0 PC 003568 unknown MCU write offset: 0280 data: a180 -CPU0 PC 00356e unknown MCU write offset: 0280 data: a980 -CPU0 PC 003574 unknown MCU write offset: 0280 data: b100 -CPU0 PC 00357a unknown MCU write offset: 0280 data: b900 -CPU0 PC 003580 unknown MCU read offset: 02c4 -CPU0 PC 003588 unknown MCU read offset: 02c2 -CPU0 PC 003594 unknown MCU read offset: 02c1 -CPU0 PC 0035a0 unknown MCU read offset: 02c3 -CPU0 PC 0032a2 unknown MCU write offset: 0260 data: 9c6c -CPU0 PC 0032a8 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 0032c8 unknown MCU write offset: 0261 data: 987c -CPU0 PC 0032ce unknown MCU write offset: 0251 data: 0010 -CPU0 PC 003422 unknown MCU write offset: 0280 data: 138e -CPU0 PC 003428 unknown MCU read offset: 02da -CPU0 PC 00342e unknown MCU read offset: 02d8 -CPU0 PC 00346c unknown MCU write offset: 0280 data: 3bb0 -CPU0 PC 0032a2 unknown MCU write offset: 0260 data: 987c -CPU0 PC 0032a8 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 003306 unknown MCU write offset: 0280 data: 8100 -CPU0 PC 00330c unknown MCU write offset: 0280 data: 8900 - - -Mcu reads in attract in Heated Barrel game demo (note -partial similarity) - -(i) This sequence repeats a number of times early on: - -CPU0 PC 0085b4 unknown MCU write offset: 0210 data: 0064 -CPU0 PC 0085ba unknown MCU write offset: 0211 data: 0000 -CPU0 PC 0085be unknown MCU read offset: 02ca -CPU0 PC 0085ee unknown MCU read offset: 02c9 -CPU0 PC 008622 unknown MCU read offset: 02c8 -[Protection BCD,see protection_bcd_jsr()] - -(ii) This happens a few times: - -CPU0 PC 0017ac unknown MCU write offset: 0260 data: b6cc -CPU0 PC 0017b2 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 0017d2 unknown MCU write offset: 0261 data: babc -CPU0 PC 0017d8 unknown MCU write offset: 0251 data: 0010 -CPU0 PC 00192c unknown MCU write offset: 0280 data: 138e -CPU0 PC 001932 unknown MCU read offset: 02da -CPU0 PC 001938 unknown MCU read offset: 02d8 -CPU0 PC 001976 unknown MCU write offset: 0280 data: 3bb0 -CPU0 PC 0017ac unknown MCU write offset: 0260 data: b6cc -CPU0 PC 0017b2 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 0017d2 unknown MCU write offset: 0261 data: bb9c -CPU0 PC 0017d8 unknown MCU write offset: 0251 data: 0010 -CPU0 PC 00192c unknown MCU write offset: 0280 data: 138e -CPU0 PC 001932 unknown MCU read offset: 02da -CPU0 PC 001938 unknown MCU read offset: 02d8 -CPU0 PC 001976 unknown MCU write offset: 0280 data: 3bb0 - - - -(iii) Later on this happens a lot: - -CPU0 PC 0017ac unknown MCU write offset: 0260 data: c61c -CPU0 PC 0017b2 unknown MCU write offset: 0250 data: 0010 -CPU0 PC 0017d2 unknown MCU write offset: 0261 data: bb9c -CPU0 PC 0017d8 unknown MCU write offset: 0251 data: 0010 -CPU0 PC 001a5c unknown MCU write offset: 0262 data: aa48 -CPU0 PC 001a62 unknown MCU write offset: 0252 data: 0003 -CPU0 PC 001a7c unknown MCU write offset: 0263 data: a0c8 -CPU0 PC 001a82 unknown MCU write offset: 0253 data: 0003 -CPU0 PC 001a86 unknown MCU write offset: 0280 data: a100 -CPU0 PC 001a8c unknown MCU write offset: 0280 data: b080 -CPU0 PC 001a92 unknown MCU write offset: 0280 data: a900 -CPU0 PC 001a98 unknown MCU write offset: 0280 data: b880 -CPU0 PC 001a9e unknown MCU read offset: 02c0 -CPU0 PC 001aa6 unknown MCU read offset: 02c2 -CPU0 PC 001ab2 unknown MCU read offset: 02c1 - -write to $500 these values to determine the kind of sub-routine to do -hit_check -a180 -a980 -b100 -b900 -|| b880 (heatbrl) - -movement protection -8100 -8900 - -00DB2A: D6A8 0048 add.l ($48,A0), D3 -00DB2E: D8A8 0044 add.l ($44,A0), D4 -00DB32: 0C83 FFF0 0000 cmpi.l #-$100000, D3 -00DB38: 6D2E blt $db68 -00DB3A: 0C83 0100 0000 cmpi.l #$1000000, D3 -00DB40: 6C26 bge $db68 -00DB42: 2143 003C move.l D3, ($3c,A0) -00DB46: 0C84 FFF0 0000 cmpi.l #-$100000, D4 -00DB4C: 6D1A blt $db68 -00DB4E: 0C84 0100 0000 cmpi.l #$1000000, D4 -00DB54: 6E12 bgt $db68 -00DB56: 2144 0038 move.l D4, ($38,A0) -00DB5A: 3168 003C 0022 move.w ($3c,A0), ($22,A0) -00DB60: 3168 0038 0024 move.w ($38,A0), ($24,A0) -00DB66: 4E75 rts - - -sprite DMA - -*/ -/*Movement protection*//*Legionnaire,Heated Barrel*/ -static UINT32 ram_addr[2],rom_addr[2]; -/*Sprite DMA protection*//*SD Gundam*/ -static UINT8 dma_status; -static UINT32 dma_src,dma_dst; -static UINT16 prot_data[2],dma_size; -/*Number protection*//*Heated Barrel,SD Gundam,Godzilla,Denjin Makai*/ -static UINT32 prot_bcd[4]; -/*Hit check protection*//*Legionnaire,Heated Barrel,SD Gundam*/ -static UINT8 xy_check; -static UINT32 hit_check_x,hit_check_y; - - - -#define CRT_MODE(_x_,_y_,_flip_) \ - { \ - screen_state *state = &Machine->screen[0]; \ - rectangle visarea = state->visarea; \ - visarea.min_x = 0; \ - visarea.max_x = _x_-1; \ - visarea.min_y = 0; \ - visarea.max_y = _y_-1; \ - video_screen_configure(0, _x_, _y_, &visarea, state->refresh ); \ - flip_screen_set(_flip_); \ - } \ - -/*TODO: numbers over 65535?*/ -static UINT32 protection_bcd_jsr(UINT16 prot_data) -{ - UINT32 res,bcd_data; - - res = 0; - bcd_data = prot_data; - while(bcd_data > 0) - { - if(bcd_data > 999) - { - res+=0x01000000; - bcd_data-=1000; - } - else if(bcd_data > 99) - { - res+=0x00010000; - bcd_data-=100; - } - else if(bcd_data > 9) - { - res+=0x00000100; - bcd_data-=10; - } - else - { - res++; - bcd_data--; - } - } - - return res & 0x0f0f0f0f; -} - -/*TODO: -move x-axis limits,to calculate basing on the screen xy-axis values*/ -/* -the second value should be end of calculation (in other words,check everything between the two values) */ -#define PLAYER 0 -#define ENEMY 1 -static void protection_move_jsr(UINT32 work_ram,UINT8 k) -{ - static UINT32 move_data,x_data,y_data; - /*Read the movement data to execute*/ - move_data = ((program_read_word(work_ram+0x34)<<16) & 0xffff0000) | - (program_read_word(work_ram+0x36) & 0xffff); - - /*Read the x/y axis of the sprite to change*/ - x_data = (program_read_word(work_ram+0x8)); - y_data = (program_read_word(work_ram+0x4)); - /*it's bit sensitive AFAIK*/ - /*move_data hi-word on player - $17 = walk floor - $1b = jump - $30 = ? - */ - /*Check the kind of movement that we need to execute*/ - switch(k & 1) - { - case PLAYER: - switch(move_data & 0xffff) - { - case 0x0000: x_data++; break; //right - case 0x0040: y_data++; break; //down - case 0x00c0: y_data--; break; //up - case 0x0080: x_data--; break; //left - case 0x00a0: y_data--; x_data--; break; //up-left - case 0x0060: y_data++; x_data--; break; //down-left - case 0x0020: y_data++; x_data++; break; //down-right - case 0x00e0: y_data--; x_data++; break; //up-right - } - break; - /*wrong...*/ - case ENEMY: - switch(move_data & 0xffff) - { - case 0x0000: x_data++; break; //right - case 0x0040: y_data++; break; //down - case 0x00c0: y_data--; break; //up - case 0x0080: x_data--; break; //left - case 0x00a0: y_data--; x_data--; break; //up-left - case 0x0060: y_data++; x_data--; break; //down-left - case 0x0020: y_data++; x_data++; break; //down-right - case 0x00e0: y_data--; x_data++; break; //up-right - default: - popmessage("%08x",move_data); - break; - } - break; - } - /*Write the new values to the sprite x/y data*/ - program_write_word(work_ram+0x8,x_data); - program_write_word(work_ram+0x4,y_data); -} - -static void protection_move2_jsr(void) -{ -// static UINT32 move_data; - //... -} - -static UINT16 hit_check; - -static void protection_hit_jsr(UINT32 work_ram1,UINT32 work_ram2) -{ - static UINT16 x1,y1,x2,y2/*,hit1,hit2*/; - x1 = (program_read_word(work_ram1+0x8)); - y1 = (program_read_word(work_ram1+0x4)); - //hit1 = (program_read_word(work_ram1-));//this sprite is attacking - x2 = (program_read_word(work_ram2+0x8)); - y2 = (program_read_word(work_ram2+0x4)); - //hit2 = (program_read_word()); - - popmessage("%08x:x=%04x y=%04x %08x:x=%04x y=%04x",work_ram1,x1,y1,work_ram2,x2,y2); - - if((x1 >= (x2-0x80)) && - (x1 <= (x2+0x80)) && - (y1 >= (y1-3)) && - (y1 <= (y2+3))) - hit_check = 0; - else - hit_check = 0xffff; -} - -static READ16_HANDLER( mcu_r ) -{ - switch (offset) - { - /* Protection is not understood */ - - case (0x470/2): /* read PC $110a, could be some sort of control word: - sometimes a bit is changed then it's poked back in... */ - return (rand() &0xffff); - - case (0x582/2): /* read PC $3594 */ - return (0); - - case (0x584/2): /* read PC $3588 */ - return (0); - - case (0x586/2): /* read PC $35a0 */ - return (0); - - case (0x588/2): /* read PC $3580 */ - return hit_check; - - case (0x5b0/2): /* bit 15 is branched on a few times in the $3300 area */ - return (0); - - case (0x5b4/2): /* read and stored in ram before +0x5b0 bit 15 tested */ - return (0); - - /* Non-protection reads */ - - case (0x708/2): /* seibu sound: these three around $b10 on */ - return seibu_main_word_r(2,0); - - case (0x70c/2): - return seibu_main_word_r(3,0); - - case (0x714/2): - return seibu_main_word_r(5,0); - - /* Inputs */ - - case (0x740/2): /* code at $b00 sticks waiting for bit 6 hi */ - return input_port_1_word_r(0,0); - - case (0x744/2): - return input_port_2_word_r(0,0); - - case (0x748/2): /* code at $f4a reads this 4 times in _weird_ fashion */ - return input_port_0_word_r(0,0); - - case (0x74c/2): - return input_port_3_word_r(0,0); - - } -//logerror("CPU0 PC %06x unknown MCU read offset: %04x\n",activecpu_get_previouspc(),offset); - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( mcu_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch (offset) - { - - case (0x4c0/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - ram_addr[0] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a0/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - ram_addr[0] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4c2/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - ram_addr[1] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a2/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - ram_addr[1] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4c4/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - rom_addr[0] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a4/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - rom_addr[0] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4c6/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - rom_addr[1] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a6/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - rom_addr[1] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x500/2): - { - /*Movement protection*/ - if(mcu_ram[0x500/2] == 0x8900 || mcu_ram[0x500/2] == 0x0205) - { - static UINT16 xy_data[2]; - static UINT8 k; - xy_data[0] = program_read_word(rom_addr[0]); - xy_data[1] = program_read_word(rom_addr[1]); - k = (mcu_ram[0x500/2] == 0x0205) ? ENEMY : PLAYER; - protection_move_jsr(ram_addr[0],k); - //protection_move_jsr(ram_addr[1]); //??? - //popmessage("%08x %08x %04x %04x",ram_addr[0],ram_addr[1],xy_data[0],xy_data[1]); - } - else if(mcu_ram[0x500/2] == 0x3bb0 || mcu_ram[0x500/2] == 0x138e) - { - protection_hit_jsr(ram_addr[0],ram_addr[1]); - } - break; - } - - // 61a bit 0 is flipscreen - // 61c probably layer disables, like Dcon - // 620 - 62a scroll control; is there a layer priority switch...? - - case (0x620/2): - { - legionna_scrollram16[0] = mcu_ram[offset]; - break; - } - case (0x622/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x624/2): - { - legionna_scrollram16[2] = mcu_ram[offset]; - break; - } - case (0x626/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x628/2): - { - legionna_scrollram16[4] = mcu_ram[offset]; - break; - } - case (0x62a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - case (0x700/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x704/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x710/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x718/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } -// default: -//logerror("CPU0 PC %06x unknown MCU write offset: %04x data: %04x\n",activecpu_get_previouspc(),offset,data); - } -} - -static READ16_HANDLER( cop2_mcu_r ) -{ - switch (offset) - { - /* Protection is not understood */ - - case (0x580/2): /* read PC $1a9e */ - return (3); - - case (0x582/2): /* read PC $1ab2 */ - return (3); - - case (0x584/2): /* read PC $1aa6 */ - return (3); - - /*number protection*/ - case (0x590/2): - { - /*BCD read*/ - return (prot_bcd[0] & 0xffff) + 0x3030; - } - case (0x592/2): - { - return ((prot_bcd[0] & 0xffff0000) >> 16) + 0x3030; - } - case (0x594/2): - { - return (prot_bcd[1] & 0xffff) + 0x3030; - } - case (0x596/2): - { - return ((prot_bcd[1] & 0xffff0000) >> 16) + 0x3030; - } - case (0x598/2): - { - return 0x3030; - } - case (0x59a/2): - { - return 0x3030; - } - case (0x59c/2): - { - return 0x3030; - } - - case (0x5b0/2): /* bit 15 is branched on a few times in the $1938 area */ - return (mcu_ram[offset]); - - case (0x5b4/2): /* read at $1932 and stored in ram before +0x5b0 bit 15 tested */ - return (0); - - /* Non-protection reads */ - - case (0x7c8/2): /* seibu sound */ - return seibu_main_word_r(2,0); - - case (0x7cc/2): - return seibu_main_word_r(3,0); - - case (0x7d4/2): - return seibu_main_word_r(5,0); - - /* Inputs */ - - case (0x740/2): - return input_port_1_word_r(0,0); - - case (0x744/2): - return input_port_2_word_r(0,0); - - case (0x748/2): - return input_port_4_word_r(0,0); - - case (0x74c/2): - return input_port_3_word_r(0,0); - - } -//logerror("CPU0 PC %06x unknown MCU read offset: %04x\n",activecpu_get_previouspc(),offset); - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( cop2_mcu_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch (offset) - { - case (0x470/2): - { - heatbrl_setgfxbank( mcu_ram[offset] ); - break; - } - - /*"Number protection" sub-routine*/ - case (0x420/2): - { - //coin counter write - //popmessage("%04x",mcu_ram[offset]); - prot_bcd[0] = protection_bcd_jsr(mcu_ram[offset]); - //prot_bcd = mcu_ram[offset] - 0x22; - break; - } - case (0x422/2): - { - prot_bcd[1] = protection_bcd_jsr(mcu_ram[offset]); - break; - } - - - case (0x478/2): - { - static UINT16 i; - /* - AM_RANGE(0x100800, 0x100fff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - */ - switch(mcu_ram[offset]) - { - /*layer clearance*/ - case 0x4080: - /*text layer*/ - for(i=0;i<0x1000;i+=2) - program_write_word(i+0x102000,0x0000); - /*background layer*/ - for(i=0;i<0x800;i+=2) - program_write_word(i+0x100800,0x0000); - - break; - case 0x4100: break; - case 0x41c0: break; - //default: popmessage("%04x",mcu_ram[offset]); - } - break; - } - // 65a bit 0 is flipscreen - // 65c probably layer disables, like Dcon? Used on screen when you press P1-4 start (values 13, 11, 0 seen) - // 660 - 66a scroll control; is there a layer priority switch...? - - case (0x500/2): - { - if(mcu_ram[offset] == 0x8900) - protection_move2_jsr(); - break; - } - - case (0x660/2): - { - legionna_scrollram16[0] = mcu_ram[offset]; - break; - } - case (0x662/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x664/2): - { - legionna_scrollram16[2] = mcu_ram[offset]; - break; - } - case (0x666/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x668/2): - { - legionna_scrollram16[4] = mcu_ram[offset]; - break; - } - case (0x66a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - case (0x7c0/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x7c4/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x7d0/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x7d8/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } - default: -logerror("CPU0 PC %06x unknown MCU write offset: %04x data: %04x\n",activecpu_get_previouspc(),offset,data); - } -} - -/* -player-1 priorities list: -1086d8: show this sprite (bit 15) -1086dc: lives (BCD,bits 3,2,1,0) -1086de: energy bar (upper byte) -1086e0: walk animation (lower byte) -1086ec: "death" status (bit 15) -1086f4: sprite y axis -1086f0: sprite x axis - -Sprite DMA TODO: --sprite priorities,likely to be a protection issue because in-game sprites MUST - be behind the foreground layer but the attract mode logos (the ones used when - the story is explained) should be above it.They both use 0 as priority number. --sprites at the very left border disappears. --some bullets STILL remains on screen? --3rd mid-boss disappears (0x1f0),2nd boss lasers wrong positioning - -spriteram DMA [1] -001DE4: 3086 move.w D6, (A0) ;$100400,color + other stuff -001DE6: 2440 movea.l D0, A2 -001DE8: 0269 0004 0002 andi.w #$4, ($2,A1) -001DEE: 3152 000C move.w (A2), ($c,A0) ;DMA size -001DF2: 3145 0002 move.w D5, ($2,A0) -001DF6: 0245 0040 andi.w #$40, D5 -001DFA: 2009 move.l A1, D0 -001DFC: 3140 00C0 move.w D0, ($c0,A0) ;RAM -> $1004c0 (work ram index?) -001E00: 4840 swap D0 -001E02: 3140 00A0 move.w D0, ($a0,A0) ;RAM -> $1004a0 -001E06: 200A move.l A2, D0 -001E08: 3140 0014 move.w D0, ($14,A0) ;$ROM lo -> $100414 src -001E0C: 4840 swap D0 -001E0E: 3140 0012 move.w D0, ($12,A0) ;$ROM hi -> $100412 -001E12: 2679 0010 8116 movea.l $108116.l, A3 ;points to dst spriteram -001E18: 3839 0010 810A move.w $10810a.l, D4 ;spriteram index -001E1E: 260B move.l A3, D3 -001E20: 3143 00C8 move.w D3, ($c8,A0) ;sets the dst spriteram -001E24: 4843 swap D3 -001E26: 3143 00A8 move.w D3, ($a8,A0) -001E2A: 45EA 0004 lea ($4,A2), A2 -//at this point we're ready for DMAing -001E2E: 317C A180 0100 move.w #$a180, ($100,A0) ;<-DMA parameters!? -001E34: 317C 6980 0102 move.w #$6980, ($102,A0) ;<-"" -001E3A: 317C C480 0102 move.w #$c480, ($102,A0) ;<-"" -001E40: 317C 0000 0010 move.w #$0, ($10,A0) ;<-"" -001E46: 302A 0002 move.w ($2,A2), D0 -001E4A: 816B 0006 or.w D0, ($6,A3) -001E4E: 45EA 0006 lea ($6,A2), A2 -001E52: 302B 0008 move.w ($8,A3), D0 -001E56: B079 0010 8112 cmp.w $108112.l, D0 -001E5C: 6E00 0054 bgt $1eb2 -001E60: B079 0010 8110 cmp.w $108110.l, D0 -001E66: 6D00 004A blt $1eb2 -001E6A: 026B 7FFF 000A andi.w #$7fff, ($a,A3) -001E70: 8B6B 0004 or.w D5, ($4,A3) -001E74: 47EB 0008 lea ($8,A3), A3 -001E78: 260B move.l A3, D3 -001E7A: 3143 00C8 move.w D3, ($c8,A0) -001E7E: 4843 swap D3 -001E80: 3143 00A8 move.w D3, ($a8,A0) -001E84: 5244 addq.w #1, D4 -001E86: B879 0010 8114 cmp.w $108114.l, D4 -001E8C: 6500 000C bcs $1e9a -001E90: 0069 0002 0002 ori.w #$2, ($2,A1) -001E96: 6000 000C bra $1ea4 -//Note: I believe the above program is there just for protection copy -001E9A: 3028 01B0 move.w ($1b0,A0), D0 ;bit 1 = DMA job finished -001E9E: 0240 0002 andi.w #$2, D0 -001EA2: 6790 beq $1e34 -001EA4: 33C4 0010 810A move.w D4, $10810a.l -001EAA: 23CB 0010 8116 move.l A3, $108116.l -001EB0: 4E75 rts - -x/y check [2] -002030: E58D lsl.l #2, D5 -002032: 0685 0003 0000 addi.l #$30000, D5 -002038: 33C5 0010 04C4 move.w D5, $1004c4.l -00203E: 4845 swap D5 -002040: 33C5 0010 04A4 move.w D5, $1004a4.l -002046: E58E lsl.l #2, D6 -002048: 0686 0003 0000 addi.l #$30000, D6 -00204E: 33C6 0010 04C6 move.w D6, $1004c6.l -002054: 4846 swap D6 -002056: 33C6 0010 04A6 move.w D6, $1004a6.l -00205C: 33FC A180 0010 0500 move.w #$a180, $100500.l -002064: 33FC B100 0010 0500 move.w #$b100, $100500.l -00206C: 33FC A980 0010 0500 move.w #$a980, $100500.l -002074: 33FC B900 0010 0500 move.w #$b900, $100500.l -00207C: 4E75 rts -[...] -//then reads at $580 - -*/ - -static UINT16 s_i; - -static void dma_transfer(void) -{ - static UINT16 rel_xy; - static UINT16 abs_x,abs_y; - static UINT16 param; - - //for(s_i = dma_size;s_i > 0;s_i--) - { - /*Sprite Color*/ - param = program_read_word(0x100400) & 0x3f; - /*Write the entire parameters [offs+0]*/ - program_write_word(dma_dst,program_read_word(dma_src) + param); - /*Sprite Priority (guess)*/ - //param = ((program_read_word(0x100400) & 0x40) ? 0x4000 : 0); - /*Write the sprite number [offs+1]*/ - program_write_word(dma_dst+2,program_read_word(dma_src+2)); - /*Sprite Relative x/y coords*/ - rel_xy = program_read_word(dma_src+4); /*???*/ - /*temporary hardwired,it should point to 0x4c0/0x4a0*/ - abs_x = (program_read_word(0x110008) - program_read_word(0x10048e)); - abs_y = (program_read_word(0x110004) - program_read_word(0x10048c)); - program_write_word(dma_dst+4,((rel_xy & 0x7f) + (abs_x) - ((rel_xy & 0x80) ? 0x80 : 0)) & 0x1ff); - program_write_word(dma_dst+6,(((rel_xy & 0x7f00) >> 8) + (abs_y) + (0x10) - ((rel_xy & 0x8000) ? 0x80 : 0)) & 0x1ff); - dma_dst+=8; - dma_src+=6; - } -} - -#define SRC_P_XY(_val1_,_val2_,_val3_,_val4_) \ - xsrc[0] = program_read_word(src + _val1_); \ - xsrc[1] = program_read_word(src + _val2_); \ - ysrc[0] = program_read_word(src + _val3_); \ - ysrc[1] = program_read_word(src + _val4_); \ - -#define DST_P_XY(_val1_,_val2_,_val3_,_val4_) \ - xdst[0] = program_read_word(dst + _val1_); \ - xdst[1] = program_read_word(dst + _val2_); \ - ydst[0] = program_read_word(dst + _val3_); \ - ydst[1] = program_read_word(dst + _val4_); \ - -#define SRC_E0_XY(_val1_,_val2_) \ - xsrc[0] = program_read_word(src + _val1_); \ - ysrc[0] = program_read_word(src + _val2_); \ - -#define DST_E0_XY(_val1_,_val2_) \ - xdst[0] = program_read_word(dst + _val1_); \ - ydst[0] = program_read_word(dst + _val2_); \ - -#define SRC_E1_XY(_val1_,_val2_) \ - xsrc[1] = xsrc[0]+_val1_; ysrc[1] = ysrc[0]+_val2_; \ - -#define DST_E1_XY(_val1_,_val2_) \ - xdst[1] = xdst[0]+_val1_; ydst[1] = ydst[0]+_val2_; \ - -#define XY_CHECK \ - if((xdst[0] <= xsrc[0] && xdst[1] >= xsrc[0]) && \ - (ydst[0] <= ysrc[0] && ydst[1] >= ysrc[0])) \ - xy_check = 0; \ - else \ - xy_check = 3; \ - - -/* - switch(program_read_word(hit_check_x)) - { - case 0xb4: xparam = 0x0c/2; break; - case 0xb8: xparam = 0x10/2; break; - case 0xbc: xparam = 0x14/2; break; - case 0xc0: xparam = 0x18/2; break; - case 0xc4: xparam = 0x1c/2; break; - case 0xd4: xparam = 0x20/2; break; - ... - case 0xb0: xparam = 0x08/2; - case 0xac: xparam = 0x04/2; - } -*/ -static UINT16 check_calc(UINT16 param) -{ - UINT16 num,i; - - i = param; - i-=0xac; - i/=4; - num = (0x4/2); - for(;i>0;i--) - num+=(0x4/2); - - return num; -} - -static UINT16 hit_check_jsr(void) -{ - static INT16 xsrc,xdst,ysrc,ydst,xparam,yparam; - xsrc = (program_read_word(0x110008)); - ysrc = (program_read_word(0x110004)); - xdst = (program_read_word(0x110048)); - ydst = (program_read_word(0x110044)); - - /*Here we check the destination sprite width*/ - /*0x4a4/0x4c4*/ - xparam = check_calc(program_read_word(hit_check_x)); - /*Here we check the destination sprite height*/ - /*0x4a6/0x4c6*/ - yparam = check_calc(program_read_word(hit_check_y)); - - if(!xparam || !yparam) - popmessage("SRC:%04x %04x DST:%04x %04x V:%08x %08x",xsrc,ysrc,xdst,ydst,program_read_word(hit_check_x),program_read_word(hit_check_y)); - if(xdst >= (xsrc-xparam) && ydst >= (ysrc-yparam) && - xdst <= (xsrc+xparam) && ydst <= (ysrc+yparam)) - return 0;//sprites collide - else - return 3;//sprites do not collide -} - -static READ16_HANDLER( sdgndmrb_cop_mcu_r ) -{ - switch (offset) - { - /*hit protection*/ - case (0x580/2): - { - /*PC=ce96*/ - /*---- ---- ---- --xx used bits*/ - //if(!xy_check) - //{ - // xy_check = 3; - // return 0; - //} - //else return 3; - return xy_check; - } - - /*number protection*/ - case (0x590/2): - { - /*BCD read*/ - return (prot_bcd[0] & 0xffff) + 0x3030; - } - case (0x592/2): - { - return ((prot_bcd[0] & 0xffff0000) >> 16) + 0x3030; - } - case (0x594/2): - { - return (prot_bcd[1] & 0xffff) + 0x3030; - } - case (0x596/2): - { - return ((prot_bcd[1] & 0xffff0000) >> 16) + 0x3030; - } - case (0x598/2): - { - return (prot_bcd[2] & 0xffff) + 0x3030; - } - case (0x59a/2): - { - return ((prot_bcd[2] & 0xffff0000) >> 16) + 0x3030; - } - case (0x59c/2): - { - return 0x3030; - } - - case (0x5b0/2): - /*check if the DMA has been finished*/ - if(dma_status == 1) - { - dma_status = 0; - return 2; - } - return mcu_ram[offset]; - - /* Non-protection reads */ - case (0x708/2): /* seibu sound */ - return seibu_main_word_r(2,0); - - case (0x70c/2): - return seibu_main_word_r(3,0); - - case (0x714/2): - return seibu_main_word_r(5,0); - - /* Inputs */ - - case (0x740/2): - return input_port_1_word_r(0,0); - - case (0x744/2): - return input_port_2_word_r(0,0); - - case (0x748/2): - return input_port_4_word_r(0,0); - - case (0x74c/2): - return input_port_3_word_r(0,0); - - case (0x75c/2): - return input_port_5_word_r(0,0); - } -// return rand(); - if(offset > (0x500/2) && offset < (0x600/2)) - { - logerror("CPU0 PC %06x MCU read offset: %04x\n",activecpu_get_previouspc(),offset*2); - //popmessage("PC %06x MCU read: %04x",activecpu_get_previouspc(),offset*2); - } - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( sdgndmrb_cop_mcu_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch (offset) - { - case (0x478/2): - { - static UINT16 i; - /* - AM_RANGE(0x100800, 0x100fff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - */ - switch(mcu_ram[offset]) - { - /*txt layer clearance*/ - case 0x4080: - for(i=0;i<0x1000;i+=2) - program_write_word(i+0x102000,0x0000); - break; - case 0x4100: break; - case 0x41c0: break; - //default: popmessage("%04x",mcu_ram[offset]); - } - break; - } - - /*The following two transfers the index of the work ram that should be picked up, - Both of them are united into one index of 32-bits*/ - - /*DMA source address*/ - case (0x414/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - dma_src = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x412/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - dma_src = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - /*Hit Check x address*/ - case (0x4c4/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - hit_check_x = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a4/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - hit_check_x = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - /*Hit Check y address*/ - case (0x4c6/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - hit_check_y = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a6/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - hit_check_y = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - break; - } - - /*DMA destination address*/ - case (0x4c8/2): - { - /*---- ---- ---- ---- xxxx xxxx xxxx xxxx*/ - prot_data[0] = mcu_ram[offset]; - dma_dst = ((prot_data[0]&0xffff)+4)|((prot_data[1]&0xffff)<<16); - break; - } - - case (0x4a8/2): - { - /*xxxx xxxx xxxx xxxx ---- ---- ---- ----*/ - prot_data[1] = mcu_ram[offset]; - dma_dst = ((prot_data[0]&0xffff)+4)|((prot_data[1]&0xffff)<<16); - break; - } - - /*"Number protection" sub-routine*/ - case (0x420/2): - { - //coin counter write - //popmessage("%04x",mcu_ram[offset]); - prot_bcd[0] = protection_bcd_jsr(mcu_ram[offset]); - //prot_bcd = mcu_ram[offset] - 0x22; - break; - } - - case (0x422/2): - { - prot_bcd[1] = protection_bcd_jsr(mcu_ram[offset]); - break; - } - - case (0x424/2): - { - prot_bcd[2] = protection_bcd_jsr(mcu_ram[offset]); - break; - } - - /*sprite ram clear(Guess)*/ - case (0x47e/2): - { - static UINT16 i; - if(mcu_ram[0x47e/2] == 0x118) - { - for(i=0;i<0x800;i+=2) - program_write_word((0x107000 | i),0x0000); - } - break; - } - - case (0x40c/2): - { - dma_size = mcu_ram[offset]; - break; - } - - case (0x500/2): - { - switch(mcu_ram[0x500/2]) - { - case 0xa180:/*do the job [1]*/ - { - //popmessage("%08x %08x %04x",dma_src,dma_dst,dma_size); - /*fix the offset for easier reading*/ - dma_src+=4; - //dma_dst+=4; - s_i = dma_size; - //dma_dst+=((program_read_word(0x110000) & 0x000f) * 8); - //program_write_word(0x1004c8,dma_dst & 0xffff); - //dma_status = 1; - break; - } - case 0xb900: - { - /*$30000*/ - /*$30010*/ - /*$30020*/ - /*$30030*/ - /*$30040*/ - /*vectors points to a ROM value (probably of the COP rom), - use these values to calculate the right spriteram vector in work RAM*/ - /* - x1 is the left border of the sprite - x2 is the right border of the sprite - y1 is the up border of the sprite - y2 is the bottom border of the sprite - example p1 sprite: - x1 = 108620 = +0x00 #0x108620 + 0x1c + src(30000=0xb4) - x2 = 108620 = +0x10 #0x108620 + 0x2c + src(30000=0xb4) - y1 = 108620 = +0x04 #0x108620 + 0x20 + src - y2 = 108620 = +0x14 #0x108620 + 0x30 + src - example mini-boss sprite: - x1 = 109a70 = 0x108620 + 0x1c + dst(300ac=0x160) - #x2 = 108700 = 0x108620 + 0x2c + dst(300ac=0x160) - y1 = 109a74 = 0x108620 + 0x20 + dst - #y2 = 108704 = 0x108620 + 0x30 + dst - */ - #if 0 - /*this variable should be removed when we have the entire table*/ - static UINT8 debug_av; - debug_av = 0; - static INT16 xsrc[2],ysrc[2],xdst[2],ydst[2]; - static UINT32 src,dst; - - switch(hit_check_y & 0xfffff) - { - case 0x30000: dst = 0x1082e0; DST_P_XY(0x00,0x18,0x02,0x1a); break; /*Player 1*/ - case 0x30020: dst = 0x1081d0; DST_E0_XY(0x00,0x02); break; - default: debug_av = 1; break; /*Unk*/ - } - - /*debug code*/ - if(debug_av == 1) - { - xy_check = 1; - popmessage("%08x %08x",hit_check_x,hit_check_y); - return; - } - /*...*/ - - switch(hit_check_x & 0xfffff) - { - /*Power-Ups*/ - case 0x30010: - for(src = 0x108140;src <= 0x108300;src+=8) - { - SRC_E0_XY(0x00,0x02); - XY_CHECK; - popmessage("DST: %d %d %d %d SRC: %d %d | %04x",xdst[0],xdst[1],ydst[0],ydst[1],xsrc[0],ysrc[0],xy_check); - if(xy_check == 0) - return; - } - break; - /*Enemy touch*/ - case 0x30020: - src = 0x108340; - SRC_E0_XY(0x00,0x02); - XY_CHECK; - break; - default: debug_av = 1; break; /*Unk*/ - } - - /*debug code*/ - if(debug_av == 1) - { - xy_check = 1; - popmessage("%08x %08x",hit_check_x,hit_check_x); - return; - } - /*...*/ - #else - xy_check = hit_check_jsr(); - #endif - break; - } - default: - logerror("DMA CMD 0x500 with parameter = %04x PC = %08x\n",mcu_ram[offset],activecpu_get_previouspc()); - } - break; - } - - case (0x502/2): - { - if(mcu_ram[0x502/2] == 0xc480) - { - dma_transfer(); - s_i--; - if(s_i == 0) - dma_status = 1; - } - break; - } - - /* TODO: tilemaps x-axis are offset,we use a temporary kludge for now */ - case (0x620/2): - { - legionna_scrollram16[0] = 0x10 + mcu_ram[offset]; - break; - } - case (0x622/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x624/2): - { - legionna_scrollram16[2] = 0x10 + mcu_ram[offset]; - break; - } - case (0x626/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x628/2): - { - legionna_scrollram16[4] = 0x10 + mcu_ram[offset]; - break; - } - case (0x62a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - /* scroll mirrors? */ - case (0x62c/2): - case (0x62e/2): - case (0x630/2): - case (0x632/2): - case (0x634/2): - case (0x636/2): - break; - /*Layer Enable,bit wise active low*/ - case (0x61c/2): - { - /* - ---x ---- (used in test mode) - ---- x--- Text Layer - ---- -x-- Foreground Layer - ---- --x- Midground Layer - ---- ---x Background Layer - */ - pri_n = mcu_ram[offset] & 0xf; - break; - } - - /* Text Layer scroll registers */ - case (0x638/2): - { - legionna_scrollram16[6] = 0x38 + mcu_ram[offset]; - break; - } - case (0x63a/2): - { - legionna_scrollram16[7] = mcu_ram[offset]; - break; - } - /*C.R.T. Controller (note:game calls it OBJ register)*/ - case (0x644/2): - { - /* - data = setting - 0x01e = 320x256 - 0x0e1 = 320x256 REVERSE - 0x016 = 320x240 - 0x0e9 = 320x240 REVERSE - 0x004 = 320x224 - 0x10b = 320x224 REVERSE - It is like to be per cases and not per bits. - */ - switch(data) - { - case 0x0000: - case 0x0003: - case 0x001e: CRT_MODE(320,224,0); break; - case 0x00e1: CRT_MODE(320,224,1); break; - case 0x0016: CRT_MODE(320,256,0); break; - case 0x00e9: CRT_MODE(320,256,1); break; - case 0x0004: CRT_MODE(320,240,0); break; - case 0x00fb: CRT_MODE(320,240,1); break; - default: - #ifdef MAME_DEBUG - popmessage("Warning: Undefined CRT Mode %04x",data); - #endif - CRT_MODE(320,256,0); - } - } - break; - - /* Seems a mirror for the choices in the test menu... */ - case (0x67c/2): - case (0x680/2): - break; - case (0x6fc/2): - break; - - case (0x700/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x704/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x710/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x718/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } - -// default: -// logerror("CPU0 PC %06x MCU write offset: %04x data: %04x\n",activecpu_get_previouspc(),offset*2,data); -// popmessage("CPU0 PC %06x MCU write offset: %04x data: %04x",activecpu_get_previouspc(),offset*2,data); - } -} - -static READ16_HANDLER( denjinmk_cop_mcu_r ) -{ - switch (offset) - { - /*number protection*/ - case (0x590/2): - { - /*BCD read*/ - return (prot_bcd[0] & 0xffff) + 0x3030; - } - case (0x592/2): - { - return ((prot_bcd[0] & 0xffff0000) >> 16) + 0x3030; - } - case (0x594/2): - { - return 0x3030; - } - case (0x596/2): - { - return 0x3030; - } - case (0x598/2): - { - return 0x3030; - } - case (0x59a/2): - { - return 0x3030; - } - case (0x59c/2): - { - return 0x3030; - } - - /* Non-protection reads */ - - case (0x708/2): /* seibu sound */ - return seibu_main_word_r(2,0); - - case (0x70c/2): - return seibu_main_word_r(3,0); - - case (0x714/2): - return seibu_main_word_r(5,0); - - /* Inputs */ - - case (0x740/2): - return input_port_1_word_r(0,0); - - case (0x744/2): - return input_port_2_word_r(0,0); - - case (0x748/2): - return input_port_4_word_r(0,0); - - case (0x74c/2): - return input_port_3_word_r(0,0); - - } -//logerror("CPU0 PC %06x unknown MCU read offset: %04x\n",activecpu_get_previouspc(),offset); - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( denjinmk_cop_mcu_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch (offset) - { - /*"Number protection" sub-routine*/ - case (0x420/2): - { - //coin counter write - //popmessage("%04x",mcu_ram[offset]); - prot_bcd[0] = protection_bcd_jsr(mcu_ram[offset]); - //prot_bcd = mcu_ram[offset] - 0x22; - break; - } - - - case (0x470/2): - { - denjinmk_setgfxbank( mcu_ram[offset] ); - break; - } - case (0x620/2): - { - legionna_scrollram16[0] = mcu_ram[offset]; - break; - } - case (0x622/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x624/2): - { - legionna_scrollram16[2] = mcu_ram[offset]; - break; - } - case (0x626/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x628/2): - { - legionna_scrollram16[4] = mcu_ram[offset]; - break; - } - case (0x62a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - case (0x700/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x704/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x710/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x718/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } - // default: - // if(offset >= (0x700/2) && offset < (0x800/2)) - //printf("CPU0 PC %06x MCU write offset: %04x data: %04x\n",activecpu_get_previouspc(),offset*2,data); - } -} - -static READ16_HANDLER( godzilla_cop_mcu_r ) -{ - switch (offset) - { - /*number protection*/ - case (0x590/2): - { - /*BCD read*/ - return (prot_bcd[0] & 0xffff) + 0x3030; - } - case (0x592/2): - { - return ((prot_bcd[0] & 0xffff0000) >> 16) + 0x3030; - } - case (0x594/2): - { - return 0x3030; - } - case (0x596/2): - { - return 0x3030; - } - case (0x598/2): - { - return 0x3030; - } - case (0x59a/2): - { - return 0x3030; - } - case (0x59c/2): - { - return 0x3030; - } - - /* Non-protection reads */ - - case (0x7c8/2): /* seibu sound */ - return seibu_main_word_r(2,0); - - case (0x7cc/2): - return seibu_main_word_r(3,0); - - case (0x7d4/2): - return seibu_main_word_r(5,0); - - /* Inputs */ - - case (0x740/2): - return input_port_1_word_r(0,0); - - case (0x744/2): - return input_port_2_word_r(0,0); - - case (0x748/2): - return input_port_4_word_r(0,0); - - case (0x74c/2): - return input_port_3_word_r(0,0); - - } -// if(offset >= (0x400/2) && offset < (0x600/2) && offset != (0x5a4/2)) -// popmessage("CPU0 PC %06x unknown MCU read offset: %04x\n",activecpu_get_previouspc(),offset*2); - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( godzilla_cop_mcu_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch (offset) - { - /*"Number protection" sub-routine*/ - case (0x420/2): - { - //coin counter write - //popmessage("%04x",mcu_ram[offset]); - prot_bcd[0] = protection_bcd_jsr(mcu_ram[offset]); - //prot_bcd = mcu_ram[offset] - 0x22; - break; - } - - case (0x478/2): - { - static UINT16 i; - /* - */ - switch(mcu_ram[offset]) - { - /*txt layer clearance*/ - case 0x40a0: - for(i=0;i<0x1000;i+=2) - program_write_word(i+0x102800,0x0000); - break; - case 0x4040: break; - case 0x4140: break; - case 0x4180: break; - case 0x4100: break; - case 0x41c0: break; - //default: popmessage("%04x",mcu_ram[offset]); - } - break; - } - - case (0x620/2): - { - legionna_scrollram16[0] = mcu_ram[offset]; - break; - } - case (0x622/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x624/2): - { - legionna_scrollram16[2] = mcu_ram[offset]; - break; - } - case (0x626/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x628/2): - { - legionna_scrollram16[4] = mcu_ram[offset]; - break; - } - case (0x62a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - - case (0x7c0/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x7c4/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x7d0/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x7d8/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } -// default: -// logerror("CPU0 PC %06x MCU write offset: %04x data: %04x\n",activecpu_get_previouspc(),offset*2,data); - } -} - -static READ16_HANDLER( copdx_0_r ) -{ - switch(offset) - { - //case (0x47e/2): - //case (0x5b0/2): - //case (0x5b4/2): - // return mcu_ram[offset]; - - case (0x700/2): - return input_port_1_word_r(0,0); - - case (0x704/2): - return input_port_2_word_r(0,0); - - case (0x708/2): - return input_port_4_word_r(0,0); - - case (0x70c/2): - return input_port_3_word_r(0,0); - - case (0x71c/2): - return input_port_5_word_r(0,0); - - case (0x748/2): /* seibu sound */ - return seibu_main_word_r(2,0); - case (0x74c/2): - return seibu_main_word_r(3,0); - case (0x754/2): - return seibu_main_word_r(5,0); - - } - - //logerror("COP has read at PC=%06x offset = %04x\n",activecpu_get_pc(),offset*2); - - return mcu_ram[offset]; -} - -static UINT16 cop_fct; -static UINT32 cop_reg[8]; - -/*This is version 1,so some stuff is different (less complex)*/ -static void cop_run(void) -{ - switch(cop_fct) - { - /*???*/ - case 0x8100: - { - UINT32 src = cop_reg[0]; - program_write_word(src+0x36,0xffc0); - break; - } - case 0x8900: - { - UINT32 src = cop_reg[0]; - program_write_word(src+0x36,0xff80); - break; - } - /*Right*/ - case 0x0205: - { - UINT32 src = cop_reg[0]; - INT16 y = program_read_word(src+0x4); - INT16 x = program_read_word(src+0x8); - INT16 y_rel = program_read_word(src+0x10); - INT16 x_rel = program_read_word(src+0x14); - program_write_word(src+0x4,(y+y_rel)); - program_write_word(src+0x8,(x+x_rel)); - /*printf("%08x %08x %08x %08x %08x\n",cop_reg[0], - program_read_word(cop_reg[0]+0x4), - program_read_word(cop_reg[0]+0x8), - program_read_word(cop_reg[0]+0x10), - program_read_word(cop_reg[0]+0x14));*/ - break; - } - /*???*/ - case 0x3bb0: - { - //UINT32 dst = cop_reg[0]; - //UINT32 dst = cop_reg[1]; - //program_write_word(dst, rand()/*program_read_word(src)*/); - //program_write_word(dst+2,rand()/*program_read_word(src+2)*/); - //program_write_word(dst+4,rand()/*program_read_word(src+4)*/); - //program_write_word(dst+6,rand()/*program_read_word(src+6)*/); - //printf("%04x\n",cop_reg[0]); - break; - } - default: - //printf("%04x\n",cop_fct); - break; - } -} -//tmp_data[1] = mcu_ram[offset]; -//cop_reg[0] = (prot_data[0]&0xffff)|((prot_data[1]&0xffff)<<16); - -static void cop_reg_w(UINT16 data,UINT8 offset,UINT8 mask) -{ - if(mask) - cop_reg[offset] = ((data&0xffff)<<16) | (cop_reg[offset]&0xffff); - else - cop_reg[offset] = (cop_reg[offset]&0xffff0000) | (data&0xffff); - - //popmessage("%08x",cop_reg[offset]); -} - -static WRITE16_HANDLER( copdx_0_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch(offset) - { - case (0x4a0/2): - case (0x4a2/2): - case (0x4a4/2): - case (0x4a6/2): - case (0x4a8/2): - case (0x4aa/2): - case (0x4ac/2): - case (0x4ae/2): - case (0x4c0/2): - case (0x4c2/2): - case (0x4c4/2): - case (0x4c6/2): - case (0x4c8/2): - case (0x4ca/2): - case (0x4cc/2): - case (0x4ce/2): - cop_reg_w(mcu_ram[offset],offset & 0x000f, (offset < (0x4b0/2)) ? 1 : 0); - break; - /*layer clearance,but the bootleg doesn't send values,so this function is an - original left-over.*/ - case (0x478/2): - { - /* - AM_RANGE(0x100800, 0x100fff) AM_READWRITE(MRA16_RAM,legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_READWRITE(MRA16_RAM,legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_READWRITE(MRA16_RAM,legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_READWRITE(MRA16_RAM,legionna_text_w) AM_BASE(&legionna_textram) - */ - break; - } - case (0x500/2): - { - cop_fct = mcu_ram[offset]; - cop_run(); - break; - } - case (0x604/2): - { - //C.R.T. Controller - /* - data = setting - 0x01e = 320x256 ---- ---x xxx- - 0x0e1 = 320x256 REVERSE ---- xxx- ---x - 0x016 = 320x240 ---- ---x -xx- - 0x0e9 = 320x240 REVERSE ---- xxx- x--x - 0x004 = 320x224 ---- ---- -x-- - 0x10b = 320x224 REVERSE ---x ---- x-xx - For now we use this by cases and not per bits. - */ - - switch(data) - { - case 0x0000: - case 0x001e: CRT_MODE(320,256,0); break; - case 0x00e1: CRT_MODE(320,256,1); break; - case 0x0016: CRT_MODE(320,240,0); break; - case 0x00e9: CRT_MODE(320,240,1); break; - case 0x0004: CRT_MODE(320,224,0); break; - case 0x010b: CRT_MODE(320,224,1); break; - default: - #ifdef MAME_DEBUG - popmessage("Warning: Undefined CRT Mode %04x",data); - #endif - CRT_MODE(320,256,0); - } - break; - } - /*TODO: what's going on here,some scroll values aren't sent in these locations - but somewhere else?*/ - case (0x62c/2): - { - legionna_scrollram16[0] = mcu_ram[offset]; - break; - } - case (0x62e/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x630/2): - { - legionna_scrollram16[2] = mcu_ram[offset]; - break; - } - case (0x632/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x634/2): - { - legionna_scrollram16[4] = mcu_ram[offset]; - break; - } - case (0x636/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - case (0x638/2): - { - legionna_scrollram16[6] = mcu_ram[offset]; - break; - } - case (0x63a/2): - { - legionna_scrollram16[7] = mcu_ram[offset]; - break; - } - /*video regs (not scrollram,something else)*/ - //case (0x660/2): - //case (0x662/2): - //case (0x664/2): - //case (0x666/2): - //case (0x668/2): - //case (0x66a/2): - //case (0x66c/2): - //case (0x66e/2): - // break; - - case (0x740/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x744/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x750/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x758/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } - } - //usrintf_showmessage("COP:write at PC=%06x offset = %04x data %04x\n",activecpu_get_pc(),offset*2,data); -} - -static READ16_HANDLER( copdxbl_0_r ) -{ - switch(offset) - { - //case (0x47e/2): - //case (0x5b0/2): - //case (0x5b4/2): - // return mcu_ram[offset]; - - case (0x700/2): - return input_port_1_word_r(0,0); - - case (0x704/2): - return input_port_2_word_r(0,0); - - case (0x708/2): - return input_port_4_word_r(0,0); - - case (0x70c/2): - return input_port_3_word_r(0,0); - - case (0x71c/2): - return input_port_5_word_r(0,0); -#if 0 - case (0x748/2): /* seibu sound */ - return seibu_main_word_r(2,0); - case (0x74c/2): - return seibu_main_word_r(3,0); - case (0x754/2): - return seibu_main_word_r(5,0); - #endif - - } - - //logerror("COP has read at PC=%06x offset = %04x\n",activecpu_get_pc(),offset*2); - - return mcu_ram[offset]; -} - -static WRITE16_HANDLER( copdxbl_0_w ) -{ - COMBINE_DATA(&mcu_ram[offset]); - - switch(offset) - { - case (0x4a0/2): - case (0x4a2/2): - case (0x4a4/2): - case (0x4a6/2): - case (0x4a8/2): - case (0x4aa/2): - case (0x4ac/2): - case (0x4ae/2): - case (0x4c0/2): - case (0x4c2/2): - case (0x4c4/2): - case (0x4c6/2): - case (0x4c8/2): - case (0x4ca/2): - case (0x4cc/2): - case (0x4ce/2): - cop_reg_w(mcu_ram[offset],offset & 0x000f, (offset < (0x4b0/2)) ? 1 : 0); - break; - /*layer clearance,but the bootleg doesn't send values,so this function - is an original left-over.*/ - case (0x478/2): - { - /* - AM_RANGE(0x100800, 0x100fff) AM_READWRITE(MRA16_RAM,legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_READWRITE(MRA16_RAM,legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_READWRITE(MRA16_RAM,legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_READWRITE(MRA16_RAM,legionna_text_w) AM_BASE(&legionna_textram) - */ - break; - } - case (0x500/2): - { - cop_fct = mcu_ram[offset]; - cop_run(); - break; - } - case (0x604/2): - { - //C.R.T. Controller - /* - data = setting - 0x01e = 320x256 ---- ---x xxx- - 0x0e1 = 320x256 REVERSE ---- xxx- ---x - 0x016 = 320x240 ---- ---x -xx- - 0x0e9 = 320x240 REVERSE ---- xxx- x--x - 0x004 = 320x224 ---- ---- -x-- - 0x10b = 320x224 REVERSE ---x ---- x-xx - For now we use this by cases and not per bits. - */ - - switch(data) - { - case 0x0000: - case 0x001e: CRT_MODE(320,256,0); break; - case 0x00e1: CRT_MODE(320,256,1); break; - case 0x0016: CRT_MODE(320,240,0); break; - case 0x00e9: CRT_MODE(320,240,1); break; - case 0x0004: CRT_MODE(320,224,0); break; - case 0x010b: CRT_MODE(320,224,1); break; - default: - #ifdef MAME_DEBUG - popmessage("Warning: Undefined CRT Mode %04x",data); - #endif - CRT_MODE(320,256,0); - } - break; - } - /*TODO: kludge on x-axis.*/ - case (0x660/2): - { - legionna_scrollram16[0] = mcu_ram[offset] - 0x1f0; - break; - } - case (0x662/2): - { - legionna_scrollram16[1] = mcu_ram[offset]; - break; - } - case (0x664/2): - { - legionna_scrollram16[2] = mcu_ram[offset] - 0x1f0; - break; - } - case (0x666/2): - { - legionna_scrollram16[3] = mcu_ram[offset]; - break; - } - case (0x668/2): - { - legionna_scrollram16[4] = mcu_ram[offset] - 0x1f0; - break; - } - case (0x66a/2): - { - legionna_scrollram16[5] = mcu_ram[offset]; - break; - } - case (0x66c/2): - { - legionna_scrollram16[6] = mcu_ram[offset] - 0x1f0; - break; - } - case (0x66e/2): - { - legionna_scrollram16[7] = mcu_ram[offset]; - break; - } - /*WRONG*/ - case (0x65c/2): - { - soundlatch_w(1,data&0xff); - cpunum_set_input_line( 1, INPUT_LINE_NMI, PULSE_LINE ); - break; - } - /*video regs (not scrollram,something else)*/ - //case (0x660/2): - //case (0x662/2): - //case (0x664/2): - //case (0x666/2): - //case (0x668/2): - //case (0x66a/2): - //case (0x66c/2): - //case (0x66e/2): - // break; - /*bootleg sound HW*/ - /*case (0x740/2): - { - soundlatch_w(1,data&0x00ff); - cpunum_set_input_line( 1, INPUT_LINE_NMI, PULSE_LINE ); - break; - }*/ - #if 0 - case (0x740/2): /* seibu(0) */ - { - seibu_main_word_w(0,mcu_ram[offset],0xff00); - break; - } - case (0x744/2): /* seibu(1) */ - { - seibu_main_word_w(1,mcu_ram[offset],0xff00); - break; - } - case (0x750/2): /* seibu(4) */ - { - seibu_main_word_w(4,mcu_ram[offset],0xff00); - break; - } - case (0x758/2): /* seibu(6) */ - { - seibu_main_word_w(6,mcu_ram[offset],0xff00); - break; - } - #endif - } - //usrintf_showmessage("COP:write at PC=%06x offset = %04x data %04x\n",activecpu_get_pc(),offset*2,data); -} - -/*****************************************************************************/ - -static ADDRESS_MAP_START( legionna_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_READ(mcu_r) /* COP mcu */ - AM_RANGE(0x101000, 0x1017ff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x101800, 0x101fff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x102000, 0x1027ff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x102800, 0x1037ff) AM_READ(MRA16_RAM) /* 64x32 text/front layer, 8x8 tiles */ - - /* The 4000-4fff area contains PALETTE words and may be extra paletteram? */ - AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM) /* palette mirror ? */ -// AM_RANGE(0x104000, 0x10401f) AM_READ(MRA16_RAM) /* debugging... */ -// AM_RANGE(0x104200, 0x1043ff) AM_READ(MRA16_RAM) /* ??? */ -// AM_RANGE(0x104600, 0x1047ff) AM_READ(MRA16_RAM) /* ??? */ -// AM_RANGE(0x104800, 0x10481f) AM_READ(MRA16_RAM) /* ??? */ - - AM_RANGE(0x105000, 0x105fff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0x106000, 0x106fff) AM_READ(MRA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_READ(MRA16_RAM) /* palette */ - AM_RANGE(0x108000, 0x11ffff) AM_READ(MRA16_RAM) /* main ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( legionna_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_WRITE(mcu_w) AM_BASE(&mcu_ram) /* COP mcu */ - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x102000, 0x1027ff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102800, 0x1037ff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - - /* The 4000-4fff area contains PALETTE words and may be extra paletteram? */ - AM_RANGE(0x104000, 0x104fff) AM_WRITE(MWA16_RAM) -// AM_RANGE(0x104000, 0x104fff) AM_WRITE(legionna_paletteram16_w) -// AM_RANGE(0x104000, 0x10401f) AM_WRITE(MWA16_RAM) -// AM_RANGE(0x104200, 0x1043ff) AM_WRITE(MWA16_RAM) -// AM_RANGE(0x104600, 0x1047ff) AM_WRITE(MWA16_RAM) -// AM_RANGE(0x104800, 0x10481f) AM_WRITE(MWA16_RAM) - - AM_RANGE(0x105000, 0x105fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x106000, 0x106fff) AM_WRITE(MWA16_RAM) /* is this used outside inits ?? */ - AM_RANGE(0x107000, 0x107fff) AM_WRITE(legionna_paletteram16_w) AM_BASE(&paletteram16) /* palette xRRRRxGGGGxBBBBx ? */ - AM_RANGE(0x108000, 0x11ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( heatbrl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_READ(cop2_mcu_r) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x101000, 0x1017ff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x101800, 0x101fff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) /* 64x32 text/front layer, 8x8 tiles */ - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM) /* palette */ - AM_RANGE(0x108000, 0x11ffff) AM_READ(MRA16_RAM) /* main ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( heatbrl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_WRITE(cop2_mcu_w) AM_BASE(&mcu_ram) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x103000, 0x103fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x104000, 0x104fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x108000, 0x11ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( godzilla_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_READ(godzilla_cop_mcu_r) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_READ(MRA16_RAM) - AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM) - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM) - AM_RANGE(0x105000, 0x106fff) AM_READ(MRA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_READ(MRA16_RAM) /*Ani-DSP ram*/ - AM_RANGE(0x108000, 0x11ffff) AM_READ(MRA16_RAM) /* main ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( godzilla_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_WRITE(godzilla_cop_mcu_w) AM_BASE(&mcu_ram) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x101000, 0x101fff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x102000, 0x1027ff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102800, 0x1037ff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x103800, 0x103fff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x104000, 0x104fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x105000, 0x105fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x106000, 0x1067ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x106800, 0x106fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_WRITE(MWA16_RAM) /*Ani-DSP ram*/ - AM_RANGE(0x108000, 0x11ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( denjinmk_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_READ(denjinmk_cop_mcu_r) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_READ(MRA16_RAM) - AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM) - AM_RANGE(0x102000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM) - AM_RANGE(0x105000, 0x105fff) AM_READ(MRA16_RAM) - AM_RANGE(0x106000, 0x106fff) AM_READ(MRA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_READ(MRA16_RAM) - AM_RANGE(0x108000, 0x11dfff) AM_READ(MRA16_RAM) /* main ram */ - AM_RANGE(0x11e000, 0x11efff) AM_READ(MRA16_RAM) - AM_RANGE(0x11f000, 0x11ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( denjinmk_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_WRITE(denjinmk_cop_mcu_w) AM_BASE(&mcu_ram) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x102000, 0x1027ff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102800, 0x103fff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x104000, 0x104fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x105000, 0x105fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x106000, 0x107fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x108000, 0x11dfff) AM_WRITE(MWA16_RAM) /* main ram */ - AM_RANGE(0x11e000, 0x11efff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x11f000, 0x11ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sdgndmrb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_READ(sdgndmrb_cop_mcu_r) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x101000, 0x1017ff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x101800, 0x101fff) AM_READ(MRA16_RAM) /* 32x16 bg layer, 16x16 tiles */ - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) /* 64x32 text/front layer, 8x8 tiles */ - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) /* palette */ - AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM) /* palette mirror */ - AM_RANGE(0x105000, 0x105fff) AM_READ(MRA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_READ(MRA16_RAM) /* extra spriteram? */ - AM_RANGE(0x108000, 0x11ffff) AM_READ(MRA16_RAM) /* main ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sdgndmrb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x1007ff) AM_WRITE(sdgndmrb_cop_mcu_w) AM_BASE(&mcu_ram) /* COP mcu */ - AM_RANGE(0x100800, 0x100fff) AM_WRITE(legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_WRITE(legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_WRITE(legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_WRITE(legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x103000, 0x103fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x104000, 0x104fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) - AM_RANGE(0x105000, 0x105fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x106000, 0x106fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x107000, 0x107fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x108000, 0x11ffff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cupsoc_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x1007ff) AM_READWRITE(copdx_0_r,copdx_0_w) AM_BASE(&mcu_ram) - AM_RANGE(0x100800, 0x100fff) AM_READWRITE(MRA16_RAM,legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_READWRITE(MRA16_RAM,legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_READWRITE(MRA16_RAM,legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_READWRITE(MRA16_RAM,legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x103000, 0x103fff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x104000, 0x104fff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) /**/ - AM_RANGE(0x105000, 0x106fff) AM_RAM - AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x107800, 0x107fff) AM_RAM /*Ani Dsp(?) Ram*/ - AM_RANGE(0x108000, 0x10ffff) AM_RAM - AM_RANGE(0x110000, 0x119fff) AM_RAM - AM_RANGE(0x11a000, 0x11dfff) AM_RAM//AM_READWRITE(copdxbl_1_r,copdxbl_1_w) AM_BASE(&work_ram)/*shared with the COP MCU too!*/ - AM_RANGE(0x11e000, 0x11ffff) AM_RAM /*Stack Ram*/ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cupsocbl_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x1007ff) AM_READWRITE(copdxbl_0_r,copdxbl_0_w) AM_BASE(&mcu_ram) - AM_RANGE(0x100800, 0x100fff) AM_READWRITE(MRA16_RAM,legionna_background_w) AM_BASE(&legionna_back_data) - AM_RANGE(0x101000, 0x1017ff) AM_READWRITE(MRA16_RAM,legionna_foreground_w) AM_BASE(&legionna_fore_data) - AM_RANGE(0x101800, 0x101fff) AM_READWRITE(MRA16_RAM,legionna_midground_w) AM_BASE(&legionna_mid_data) - AM_RANGE(0x102000, 0x102fff) AM_READWRITE(MRA16_RAM,legionna_text_w) AM_BASE(&legionna_textram) - AM_RANGE(0x103000, 0x103fff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x104000, 0x104fff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) /**/ - AM_RANGE(0x105000, 0x106fff) AM_RAM - AM_RANGE(0x107000, 0x1077ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x107800, 0x107fff) AM_RAM /*Ani Dsp(?) Ram*/ - AM_RANGE(0x108000, 0x10ffff) AM_RAM - AM_RANGE(0x110000, 0x119fff) AM_RAM - AM_RANGE(0x11a000, 0x11dfff) AM_RAM//AM_READWRITE(copdxbl_1_r,copdxbl_1_w) AM_BASE(&work_ram)/*shared with the COP MCU too!*/ - AM_RANGE(0x11e000, 0x11ffff) AM_RAM /*Stack Ram*/ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cupsocbl_sound_mem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0x9000, 0x9000) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0x9800, 0x9800) AM_READWRITE(OKIM6295_status_1_r, OKIM6295_data_1_w) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -/*****************************************************************************/ - -INPUT_PORTS_START( legionna ) - SEIBU_COIN_INPUTS /* Must be port 0: coin inputs read through sound cpu */ - - PORT_START - PORT_DIPNAME( 0x001f, 0x001f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0015, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0017, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0019, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x001b, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 8C_3C ) ) - PORT_DIPSETTING( 0x001d, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x001f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0009, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0013, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0011, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x001e, "A 1/1 B 1/2" ) - PORT_DIPSETTING( 0x0014, "A 2/1 B 1/3" ) - PORT_DIPSETTING( 0x000a, "A 3/1 B 1/5" ) - PORT_DIPSETTING( 0x0000, "A 5/1 B 1/6" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, "Freeze" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0200, "1" ) - PORT_DIPSETTING( 0x0300, "2" ) - PORT_DIPSETTING( 0x0100, "3" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Extend" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -// PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( heatbrl ) - SEIBU_COIN_INPUTS /* Must be port 0: coin inputs read through sound cpu */ - - PORT_START - PORT_DIPNAME( 0x001f, 0x001f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0015, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0017, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0019, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x001b, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 8C_3C ) ) - PORT_DIPSETTING( 0x001d, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x001f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0009, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0013, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0011, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x001e, "A 1/1 B 1/2" ) - PORT_DIPSETTING( 0x0014, "A 2/1 B 1/3" ) - PORT_DIPSETTING( 0x000a, "A 3/1 B 1/5" ) - PORT_DIPSETTING( 0x0000, "A 5/1 B 1/6" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0020, "2" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x0040, 0x0040, "Freeze" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0200, "1" ) - PORT_DIPSETTING( 0x0100, "2" ) - PORT_DIPSETTING( 0x0300, "3" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0400, 0x0400, "Extend" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( On ) ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN4 ) // haven't found coin4, maybe it doesn't exist -// PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( godzilla ) - SEIBU_COIN_INPUTS /* Must be port 0: coin inputs read through sound cpu */ - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Service_Mode ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( sdgndmrb ) - SEIBU_COIN_INPUTS /* Must be port 0: coin inputs read through sound cpu */ - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Service_Mode ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) //debug button - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( cupsoc ) - SEIBU_COIN_INPUTS /* Must be port 0: coin inputs read through sound cpu */ - - PORT_START - PORT_DIPNAME( 0x0007, 0x0007, "Coin 1 (3)" ) - PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0038, 0x0038, "Coin 2 (4)" ) - PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0040, 0x0040, "Staring Coin" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "x2" ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, "Time vs Computer" ) - PORT_DIPSETTING( 0x0200, "1:30" ) - PORT_DIPSETTING( 0x0300, "2:00" ) - PORT_DIPSETTING( 0x0100, "2:30" ) - PORT_DIPSETTING( 0x0000, "3:00" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Time vs Player, 2 Players" ) - PORT_DIPSETTING( 0x0800, "2:00" ) - PORT_DIPSETTING( 0x0c00, "2:30" ) - PORT_DIPSETTING( 0x0400, "3:00" ) - PORT_DIPNAME( 0x3000, 0x3000, "Time vs Player, 3 Players" ) - PORT_DIPSETTING( 0x2000, "2:30" ) - PORT_DIPSETTING( 0x3000, "3:00" ) - PORT_DIPSETTING( 0x1000, "3:30" ) - PORT_DIPNAME( 0xc000, 0xc000, "Time vs Player, 4 Players" ) - PORT_DIPSETTING( 0x8000, "3:00" ) - PORT_DIPSETTING( 0xc000, "3:30" ) - PORT_DIPSETTING( 0x4000, "4:00" ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) //TEST - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) //TEST - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x000c, 0x0000, "Players / Coin Mode" ) - PORT_DIPSETTING( 0x0000, "4 Players / 1 Coin Slot" ) - PORT_DIPSETTING( 0x0004, "4 Players / 4 Coin Slots" ) - PORT_DIPSETTING( 0x0008, "4 Players / 2 Coin Slots" ) - PORT_DIPSETTING( 0x000c, "2 Players" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Service_Mode ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0xffc0, 0xffc0, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0xffc0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -/*****************************************************************************/ - - -static const gfx_layout legionna_charlayout = -{ - 8,8, - RGN_FRAC(1,4), /* other half is BK3, decoded in char2layout */ - 4, - { 0, 4, 4096*16*8+0, 4096*16*8+4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_layout heatbrl_charlayout = -{ - 8,8, - RGN_FRAC(1,2), /* second half is junk, like legionna we may need a different decode */ - 4, - { 0, 4, 4096*16*8+0, 4096*16*8+4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - - -static const gfx_layout legionna_char2layout = -{ - 16,16, - 256, /* Can't use RGN_FRAC as (1,16) not supported */ - 4, - { 0, 4, 4096*16*8+0, 4096*16*8+4 }, - { 3, 2, 1, 0, 11, 10, 9, 8, - 1024*16*8 +3, 1024*16*8 +2, 1024*16*8 +1, 1024*16*8 +0, - 1024*16*8 +11, 1024*16*8 +10, 1024*16*8 +9, 1024*16*8 +8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 512*16*8 +0*16, 512*16*8 +1*16, 512*16*8 +2*16, 512*16*8 +3*16, - 512*16*8 +4*16, 512*16*8 +5*16, 512*16*8 +6*16, 512*16*8 +7*16 }, - 16*8 -}; - -static const gfx_layout legionna_tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 2*4, 3*4, 0*4, 1*4 }, - { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, - 64*8+3, 64*8+2, 64*8+1, 64*8+0, 64*8+16+3, 64*8+16+2, 64*8+16+1, 64*8+16+0 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 128*8 -}; - -static const gfx_layout legionna_spritelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 2*4, 3*4, 0*4, 1*4 }, - { 3, 2, 1, 0, 16+3, 16+2, 16+1, 16+0, - 64*8+3, 64*8+2, 64*8+1, 64*8+0, 64*8+16+3, 64*8+16+2, 64*8+16+1, 64*8+16+0 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 128*8 -}; - -static const gfx_decode legionna_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &legionna_charlayout, 48*16, 16 }, - { REGION_GFX3, 0, &legionna_tilelayout, 0*16, 16 }, - { REGION_GFX4, 0, &legionna_char2layout, 32*16, 16 }, /* example BK3 decode */ - { REGION_GFX2, 0, &legionna_spritelayout, 0*16, 8*16 }, - { REGION_GFX5, 0, &legionna_tilelayout, 32*16, 16 }, /* this should be the BK3 decode */ - { REGION_GFX6, 0, &legionna_tilelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode heatbrl_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &heatbrl_charlayout, 48*16, 16 }, - { REGION_GFX3, 0, &legionna_tilelayout, 0*16, 16 }, - { REGION_GFX4, 0, &legionna_char2layout, 32*16, 16 }, /* unused */ - { REGION_GFX2, 0, &legionna_spritelayout, 0*16, 8*16 }, - { REGION_GFX5, 0, &legionna_tilelayout, 32*16, 16 }, - { REGION_GFX6, 0, &legionna_tilelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode sdgndmrb_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &heatbrl_charlayout, 48*16, 16 }, - { REGION_GFX3, 0, &legionna_tilelayout, 0*16, 16 }, - { REGION_GFX4, 0, &legionna_char2layout, 32*16, 16 }, /* unused */ - { REGION_GFX2, 0, &legionna_spritelayout, 0*16, 8*16 }, - { REGION_GFX5, 0, &legionna_tilelayout, 32*16, 16 }, - { REGION_GFX6, 0, &legionna_tilelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - -/*****************************************************************************/ - -/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */ -SEIBU_SOUND_SYSTEM_YM3812_HARDWARE - -SEIBU_SOUND_SYSTEM_YM2151_HARDWARE - -/*****************************************************************************/ - -static MACHINE_DRIVER_START( legionna ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000/2) /* ??? */ - MDRV_CPU_PROGRAM_MAP(legionna_readmem,legionna_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1)/* VBL */ - - SEIBU_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(legionna_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(legionna) - MDRV_VIDEO_UPDATE(legionna) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000,1) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( heatbrl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000/2) /* ??? */ - MDRV_CPU_PROGRAM_MAP(heatbrl_readmem,heatbrl_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1)/* VBL */ - - SEIBU_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(heatbrl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(legionna) - MDRV_VIDEO_UPDATE(legionna) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,8000,1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( godzilla ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 20000000/2) - MDRV_CPU_PROGRAM_MAP(godzilla_readmem,godzilla_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - SEIBU2_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(61) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(heatbrl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(legionna) - MDRV_VIDEO_UPDATE(godzilla) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000,1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( denjinmk ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 20000000/2) - MDRV_CPU_PROGRAM_MAP(denjinmk_readmem,denjinmk_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - SEIBU2_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_REFRESH_RATE(61) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(heatbrl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(denjinmk) - MDRV_VIDEO_UPDATE(godzilla) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000,1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( sdgndmrb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 20000000/2) - MDRV_CPU_PROGRAM_MAP(sdgndmrb_readmem,sdgndmrb_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - SEIBU2_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(sdgndmrb_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(legionna) - MDRV_VIDEO_UPDATE(sdgndmrb) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM2151_INTERFACE(14318180/4,1320000,1) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cupsoc ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000/2) - MDRV_CPU_PROGRAM_MAP(cupsoc_mem,0) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1)/* VBL */ - - SEIBU_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_MACHINE_RESET(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(heatbrl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(cupsoc) - MDRV_VIDEO_UPDATE(sdgndmrb) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,8000,1) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cupsocbl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,12000000) - MDRV_CPU_PROGRAM_MAP(cupsocbl_mem,0) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) /* VBL */ - - /*Different Sound hardware*/ - //SEIBU_SOUND_SYSTEM_CPU(14318180/4) - MDRV_CPU_ADD(Z80,14318180/4) - MDRV_CPU_PROGRAM_MAP(cupsocbl_sound_mem,0) - //MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - //MDRV_MACHINE_INIT(seibu_sound_1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(heatbrl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128*16) - - MDRV_VIDEO_START(cupsoc) - MDRV_VIDEO_UPDATE(sdgndmrb) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1000000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(OKIM6295, 1000000) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( legionna ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "1", 0x00000, 0x20000, CRC(9e2d3ec8) SHA1(8af9ca349389cbbd2b541aafa09de57f87f6fd72) ) - ROM_LOAD32_BYTE( "2", 0x00001, 0x20000, CRC(35c8a28f) SHA1(31a1f2f9e04dfcab4b3357d6d27c24b434a8c14b) ) - ROM_LOAD32_BYTE( "3", 0x00002, 0x20000, CRC(553fc7c0) SHA1(b12a2eea6b2c9bd76c0c74ddf2765d58510f586a) ) - ROM_LOAD32_BYTE( "legion4.bin", 0x00003, 0x20000, CRC(2cc36c98) SHA1(484fc6eeeed89386ec69df0f92919b742cfdd89f) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "6", 0x00000, 0x08000, CRC(fe7b8d06) SHA1(1e5b52ea4b4042940e2ee2db75c7c0f24973422a) ) - ROM_CONTINUE( 0x10000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "7", 0x000000, 0x10000, CRC(88e26809) SHA1(40ee55d3b5329b6f657e0621d93c4caf6a035fdf) ) /* chars, some BK3 tiles too */ - ROM_LOAD( "8", 0x010000, 0x10000, CRC(06e35407) SHA1(affeeb97b7f3cfa9b65a584ebe25c16a5b2c9a89) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1", 0x000000, 0x100000, CRC(d35602f5) SHA1(79379abf1c8131df47f81f42b2dc6876926a4e9d) ) /* sprites */ - ROM_LOAD( "obj2", 0x100000, 0x100000, CRC(351d3917) SHA1(014562ac55c09227c08275df3129df19d81af164) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "back", 0x000000, 0x100000, CRC(58280989) SHA1(e3eef1f52829a91b8f87cfe27776a1f12679b3ca) ) /* 3 sets of tiles ('MBK','LBK','BK3') */ - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* example BK3 decode */ - ROM_COPY( REGION_GFX1, 0x00000, 0x00000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX5, ROMREGION_DISPOSE ) /* we _should_ decode all BK3 tiles here */ - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles (plus BK3 at end) */ - ROM_COPY( REGION_GFX3, 0x80000, 0x00000, 0x80000 ) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "5", 0x00000, 0x20000, CRC(21d09bde) SHA1(8dce5011e083706ac7b57c5aee4b79d30fa8d4cb) ) -ROM_END - -ROM_START( legionnu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "1", 0x00000, 0x20000, CRC(9e2d3ec8) SHA1(8af9ca349389cbbd2b541aafa09de57f87f6fd72) ) - ROM_LOAD32_BYTE( "2", 0x00001, 0x20000, CRC(35c8a28f) SHA1(31a1f2f9e04dfcab4b3357d6d27c24b434a8c14b) ) - ROM_LOAD32_BYTE( "3", 0x00002, 0x20000, CRC(553fc7c0) SHA1(b12a2eea6b2c9bd76c0c74ddf2765d58510f586a) ) - ROM_LOAD32_BYTE( "4", 0x00003, 0x20000, CRC(91fd4648) SHA1(8ad6d0512996b88d3c0c7a96912eebaae2333424) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "6", 0x00000, 0x08000, CRC(fe7b8d06) SHA1(1e5b52ea4b4042940e2ee2db75c7c0f24973422a) ) - ROM_CONTINUE( 0x10000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "7", 0x000000, 0x10000, CRC(88e26809) SHA1(40ee55d3b5329b6f657e0621d93c4caf6a035fdf) ) /* chars, some BK3 tiles too */ - ROM_LOAD( "8", 0x010000, 0x10000, CRC(06e35407) SHA1(affeeb97b7f3cfa9b65a584ebe25c16a5b2c9a89) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1", 0x000000, 0x100000, CRC(d35602f5) SHA1(79379abf1c8131df47f81f42b2dc6876926a4e9d) ) /* sprites */ - ROM_LOAD( "obj2", 0x100000, 0x100000, CRC(351d3917) SHA1(014562ac55c09227c08275df3129df19d81af164) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "back", 0x000000, 0x100000, CRC(58280989) SHA1(e3eef1f52829a91b8f87cfe27776a1f12679b3ca) ) /* 3 sets of tiles ('MBK','LBK','BK3') */ - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* example BK3 decode */ - ROM_COPY( REGION_GFX1, 0x00000, 0x00000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX5, ROMREGION_DISPOSE ) /* we _should_ decode all BK3 tiles here */ - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles (plus BK3 at end) */ - ROM_COPY( REGION_GFX3, 0x80000, 0x00000, 0x80000 ) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "5", 0x00000, 0x20000, CRC(21d09bde) SHA1(8dce5011e083706ac7b57c5aee4b79d30fa8d4cb) ) -ROM_END - -ROM_START( heatbrl ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "1e_ver2.9k", 0x00000, 0x20000, CRC(b30bd632) SHA1(8684dd4787929886b0bce283301e492206ade9d9) ) - ROM_LOAD32_BYTE( "2e_ver2.9m", 0x00001, 0x20000, CRC(f3a23056) SHA1(d8840468535ac59fede60ea5a2928410d9c7a33a) ) - ROM_LOAD32_BYTE( "3e_ver2.9f", 0x00002, 0x20000, CRC(a2c41715) SHA1(a15b7a35ae0792ed00c47426d2e07c445acd8b8d) ) - ROM_LOAD32_BYTE( "4e_ver2.9h", 0x00003, 0x20000, CRC(a50f4f08) SHA1(f468e4a016a53803b8404bacdef5712311c6f0ac) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "barrel.7", 0x00000, 0x08000, CRC(0784dbd8) SHA1(bdf7f8a3a3eb346eb2aeaf4f9bfc49af059d04c9) ) - ROM_CONTINUE( 0x10000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "barrel.6", 0x000000, 0x10000, CRC(bea3c581) SHA1(7f7f0a74bf106acaf57c182d47f0c707da2011bd) ) /* chars */ - ROM_LOAD( "barrel.5", 0x010000, 0x10000, CRC(5604d155) SHA1(afc30347b1e1316ec25056c0c1576f78be5f1a72) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1", 0x000000, 0x100000, CRC(f7a7c31c) SHA1(683e5c7a0732ff5fd56167dd82035ca050de0507) ) /* sprites */ - ROM_LOAD( "obj2", 0x100000, 0x100000, CRC(24236116) SHA1(b27bd771cacd1587d4927e3f489c4f54b5dec110) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "bg-1", 0x000000, 0x100000, CRC(2f5d8baa) SHA1(0bf687c46c603150eadb304adcd78d53a338e615) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "bg-3", 0x000000, 0x080000, CRC(83850e2d) SHA1(cdc2df8e3bc58319c50768ea2a05b9c7ddc2a652) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_LOAD( "bg-2", 0x000000, 0x080000, CRC(77ee4c6f) SHA1(a0072331bc970ba448ac5bb1ae5caa0332c82a99) ) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "barrel.8", 0x00000, 0x20000, CRC(489e5b1d) SHA1(ecd69d87ed354d1d08dbe6c2890af5f05d9d67d0) ) -ROM_END - -ROM_START( heatbrlo ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "barrel.1h", 0x00000, 0x20000, CRC(d5a85c36) SHA1(421a42863faa940057ed5637748f791152a15502) ) - ROM_LOAD32_BYTE( "barrel.2h", 0x00001, 0x20000, CRC(5104d463) SHA1(f65ee824508da431567661804f6235b61425b2dd) ) - ROM_LOAD32_BYTE( "barrel.3h", 0x00002, 0x20000, CRC(823373a0) SHA1(1bb7f811df4f85db8ca10e59fe22137a09470def) ) - ROM_LOAD32_BYTE( "barrel.4h", 0x00003, 0x20000, CRC(19a8606b) SHA1(6e950212c532e46bb6645c3c1f8205c2a4ea2c87) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "barrel.7", 0x00000, 0x08000, CRC(0784dbd8) SHA1(bdf7f8a3a3eb346eb2aeaf4f9bfc49af059d04c9) ) - ROM_CONTINUE( 0x10000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "barrel.6", 0x000000, 0x10000, CRC(bea3c581) SHA1(7f7f0a74bf106acaf57c182d47f0c707da2011bd) ) /* chars */ - ROM_LOAD( "barrel.5", 0x010000, 0x10000, CRC(5604d155) SHA1(afc30347b1e1316ec25056c0c1576f78be5f1a72) ) - -/* Sprite + tilemap gfx roms not dumped, for now we use ones from heatbrlu -Readme mentions as undumped: -barrel1,2,3,4.OBJ -barrel1,2,3,4.BG */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1", 0x000000, 0x100000, CRC(f7a7c31c) SHA1(683e5c7a0732ff5fd56167dd82035ca050de0507) ) /* sprites */ - ROM_LOAD( "obj2", 0x100000, 0x100000, CRC(24236116) SHA1(b27bd771cacd1587d4927e3f489c4f54b5dec110) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "bg-1", 0x000000, 0x100000, CRC(2f5d8baa) SHA1(0bf687c46c603150eadb304adcd78d53a338e615) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "bg-3", 0x000000, 0x080000, CRC(83850e2d) SHA1(cdc2df8e3bc58319c50768ea2a05b9c7ddc2a652) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_LOAD( "bg-2", 0x000000, 0x080000, CRC(77ee4c6f) SHA1(a0072331bc970ba448ac5bb1ae5caa0332c82a99) ) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "barrel.8", 0x00000, 0x20000, CRC(489e5b1d) SHA1(ecd69d87ed354d1d08dbe6c2890af5f05d9d67d0) ) -ROM_END - -ROM_START( heatbrlu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "1e_ver2.9k", 0x00000, 0x20000, CRC(b30bd632) SHA1(8684dd4787929886b0bce283301e492206ade9d9) ) - ROM_LOAD32_BYTE( "2u", 0x00001, 0x20000, CRC(289dd629) SHA1(fb379e067ffee4e54d55da638e45e22d6b2ef788) ) - ROM_LOAD32_BYTE( "3e_ver2.9f", 0x00002, 0x20000, CRC(a2c41715) SHA1(a15b7a35ae0792ed00c47426d2e07c445acd8b8d) ) - ROM_LOAD32_BYTE( "4e_ver2.9h", 0x00003, 0x20000, CRC(a50f4f08) SHA1(f468e4a016a53803b8404bacdef5712311c6f0ac) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "barrel.7", 0x00000, 0x08000, CRC(0784dbd8) SHA1(bdf7f8a3a3eb346eb2aeaf4f9bfc49af059d04c9) ) - ROM_CONTINUE( 0x10000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "barrel.6", 0x000000, 0x10000, CRC(bea3c581) SHA1(7f7f0a74bf106acaf57c182d47f0c707da2011bd) ) /* chars */ - ROM_LOAD( "barrel.5", 0x010000, 0x10000, CRC(5604d155) SHA1(afc30347b1e1316ec25056c0c1576f78be5f1a72) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1", 0x000000, 0x100000, CRC(f7a7c31c) SHA1(683e5c7a0732ff5fd56167dd82035ca050de0507) ) /* sprites */ - ROM_LOAD( "obj2", 0x100000, 0x100000, CRC(24236116) SHA1(b27bd771cacd1587d4927e3f489c4f54b5dec110) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "bg-1", 0x000000, 0x100000, CRC(2f5d8baa) SHA1(0bf687c46c603150eadb304adcd78d53a338e615) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "bg-3", 0x000000, 0x080000, CRC(83850e2d) SHA1(cdc2df8e3bc58319c50768ea2a05b9c7ddc2a652) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_LOAD( "bg-2", 0x000000, 0x080000, CRC(77ee4c6f) SHA1(a0072331bc970ba448ac5bb1ae5caa0332c82a99) ) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "barrel.8", 0x00000, 0x20000, CRC(489e5b1d) SHA1(ecd69d87ed354d1d08dbe6c2890af5f05d9d67d0) ) -ROM_END - -/* - -Godzilla -Banpresto 1993 - -This game runs on Seibu hardware, similar to Legionairre. - -PCB Layout -|----------------------------------------------------| -| YM2151 M6295 PCM.922 8 Z80 PAL | -| YM3014 PAL | -| YM3931 SEI0220 14.31818MHz 6116 | -| (SEI0100) | -| OBJ1.648 OBJ3.743 | -| SEI0211 | -|J OBJ2.756 OBJ4.757 | -|A | -|M DSW1-8 2.025 4.026 62256 | -|M DSW2-8 62256 | -|A S68E08.844 PAL 1.024 3.023 62256 | -| 6264 PAL PAL 62256 | -| 6264 | -| SEI0200 COPX-D2.313 SEI0300 | -| TC110G21AF TC25SC900AF| -| | -|BK1.618 11.620 20MHz PAL PAL | -| BK3.619 10.615 PAL 68000 | -|----------------------------------------------------| - -Notes: - Z80 clock : 3.579545MHz - 68000 clock : 10.000MHz - YM2151 clock : 3.579545MHz - M6295 clock : 1.000MHz, sample rate = clk /132 - VSync : 61Hz - HSync : 15.74kHz - S68E08.844 : 82S147 bipolar PROM - BK & OBJ : 8M MASK (read as 238000) - Main PRG 1-4 : 27C010 EPROM - ROMs 8,10,11 : 27C512 EPROM - COPX-D2.313 : 4M MASK (read as 234200) - PCM : 4M MASK (read as 27C040) - - Custom SEIBU chips: - SEI0211 and SEI0220: connected to OBJ ROMs - SEI300 : connected to PRG ROMs and 68000 - SEI0200 : connected to BG ROMs - -*/ - -ROM_START( godzilla ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "2.025", 0x000000, 0x020000, CRC(be9c6e5a) SHA1(9a7e49ac9cdbcc02b13b3448544cee5fe398ec16) ) - ROM_LOAD32_BYTE( "1.024", 0x000001, 0x020000, CRC(0d6b663d) SHA1(01e02999cffd2642f7a37e492fe7f83770cddd67) ) - ROM_LOAD32_BYTE( "4.026", 0x000002, 0x020000, CRC(bb8c0132) SHA1(fa8b049f590be710b3cf82f27deade63656db730) ) - ROM_LOAD32_BYTE( "3.023", 0x000003, 0x020000, CRC(bb16e5d0) SHA1(31d8941e6e297b1f410944f0063a4c9219d23f23) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "8.016", 0x000000, 0x08000, CRC(4ab76e43) SHA1(40c34fade03161c4b50f9f6a2ae61078b8d8ea6d) ) - ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "11.620", 0x000000, 0x010000, CRC(58e0e41f) SHA1(563c633eb3d4df41e467c93957c74b540a0ae43c) ) - ROM_LOAD( "10.615", 0x010000, 0x010000, CRC(9c22bc13) SHA1(a94d9ed63ee1f5e358ebcaf517e6a1c986fa5d96) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj1.748", 0x300000, 0x100000, CRC(146bacb0) SHA1(1331f04f3d9e6236cec7524e9da1782ed1916ff7) ) - ROM_LOAD( "obj2.756", 0x200000, 0x100000, CRC(91c2a6a5) SHA1(0e9d9d94c3d99a54c6f9f99270e65682eb0a8b6a) ) - ROM_LOAD( "obj3.743", 0x100000, 0x100000, CRC(5af0114e) SHA1(9362de9ade6db67ab0e3a2dfea580e688bbf7729) ) - ROM_LOAD( "obj4.757", 0x000000, 0x100000, CRC(7448b054) SHA1(5c08319329eb8c90b63e5393c0011bc39911ebbb) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "bg1.618", 0x000000, 0x100000, CRC(78fbbb84) SHA1(b1f5d4041bb88c5b2a561949239b11c3fd7c5fbc) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x100000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "bg2.619", 0x000000, 0x100000, CRC(8ac192a5) SHA1(54b557e81a704c70a651e6b8da70207a2a70530f) ) - - ROM_REGION( 0x100000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX3, 0x00000, 0x00000, 0x100000 ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "pcm.922", 0x000000, 0x080000, CRC(59cbef10) SHA1(6b89b7286f80f9c903dfb81dc93a03c38dff707c) ) - - ROM_REGION( 0x200, REGION_PROMS, 0 ) - ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ - - ROM_REGION( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) -ROM_END - -/* - -Denjin Makai -Banpresto, 1994 - -This game runs on early 90's Seibu hardware. -(i.e. Raiden II, Godzilla, Seibu Cup Soccer, Legionairre, Heated Barrel etc). -The PCB looks to have been converted from some other game (a lot of flux traces are -left on the PCB). The game might be a simple ROM swap for some other Seibu-based game. - - -PCB Layout ----------- - -|-----------------------------------------------------| -|LA4460 YM2151 M6295 ROM6 ROM5 Z80 PAL6 | -| 6116 PAL9 | -| SEI0100BU SEI0220BP 14.31818MHz | -| | -| 6116 | -| OBJ-0-3 OBJ-6-7 | -|J 6116 SEI0211 | -|A OBJ-4-5 OBJ-8-9 | -|M | -|M ROM1 ROM3 62256 | -|M 62256 | -| ROM2 ROM4 62256 | -| DSW1 S68E08 PAL7 62256 | -| DSW2 PAL6 PAL3 | -|SEI0200 | -| 6264 | -| 6264 COPX-D2 | -| SEI1000 | -|BG-1-AB ROM7 PAL2 PAL1 | -| | -|BG-2-AB BG-3-AB ROM8 20MHz PAL5 68000 | -|-----------------------------------------------------| -Notes: - 68000 clock : 10.000MHz (20 / 2) - Z80 clock : 3.579545MHz (14.31818 / 4) - YM2151 clock : 3.579545MHz (14.31818 / 4) - M6295 clock : 1.000MHz, sample rate = M6295 clock / 132 - VSync : 56Hz - - 62256 : 32K x8 SRAM - 6264 : 8K x8 SRAM - 6116 : 2K x8 SRAM - SEI0200 : Custom Seibu QFP100 also stamped TC110G21AF - SEI1000 : Custom Seibu QFP184 also stamped SB01-001 - SEI0211 : Custom Seibu QFP128 - SEI0100BU: Custom Seibu SDIP64 also stamped YM3931 - SEI0220BP: Custom Seibu QFP80 - - ROMs 1, 2, 3, 4 Main program 27C020 EPROM - ROM 6 OKI samples 27C020 EPROM - ROM 5 Sound program 27C512 EPROM - ROMs 7 and 8 Graphics 27C512 EPROM - ROMs BG* Graphics 8M Mask ROM - ROMs OBJ* Graphics 8M Mask ROM - COPX-D2 ? 4M Mask ROM - - PAL1 : type AMI 18CV8PC, labelled 'S68E01' - PAL2 : type MMI PAL16L8ACN, labelled 'S68E02' - PAL3 : type MMI PAL16L8ACN, labelled 'S68E03' - PAL4 : type AMI 18CV8PC, labelled 'S68E04' - PAL5 : type AMI 18CV8PC, labelled 'S68E05T' - PAL6 : type AMI 18CV8PC, labelled 'S68E06T' - PAL7 : type AMI 18CV8PC, labelled 'S68E07' - PAL9 : type MMI PAL16L8ACN, labelled 'S68E09' - - S68E08 : PROM type 82S147, labelled 'S68E08' - - -*/ - -ROM_START( denjinmk ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "rom1.025", 0x000000, 0x040000, CRC(44a648e8) SHA1(a3c1721e89ac6b9fc16f80682b2f701cb24b5d76) ) - ROM_LOAD32_BYTE( "rom2.024", 0x000001, 0x040000, CRC(e5ee8fe0) SHA1(2ebff4fdbe82062fb526598e10f11358b0b5c02f) ) - ROM_LOAD32_BYTE( "rom3.026", 0x000002, 0x040000, CRC(781b942e) SHA1(f1f4ddc332de3dc29b716a1b82c2ecc2045efb3a) ) - ROM_LOAD32_BYTE( "rom4.023", 0x000003, 0x040000, CRC(502a588b) SHA1(9055b631240fe52d33b572e34275d31a9f3d290f) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "rom5.016", 0x000000, 0x08000, CRC(7fe7e352) SHA1(1ceae22186751ca91dfffab7bd11f275e693451f) ) - ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rom7.620", 0x000000, 0x010000, CRC(e1f759b1) SHA1(ddc60e78e7791a59c59403dd4089b3f6e1ecf8cb) ) - ROM_LOAD( "rom8.615", 0x010000, 0x010000, CRC(cc36af0d) SHA1(69c2ae38f03be79be4d138fcc73a6a86407eb285) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) -/**/ROM_LOAD( "obj-0-3.748", 0x000000, 0x100000, CRC(3dcc7b04) SHA1(3c3ad5ddc18a42046348dcb54e65f6173c003d72) ) - ROM_LOAD( "obj-8-9.757", 0x100000, 0x100000, CRC(c8f7e1c9) SHA1(a746d187b50a0ecdd5a7f687a2601e5dc8bfe272) ) - ROM_LOAD( "obj-4-5.756", 0x200000, 0x100000, CRC(01f8d4e6) SHA1(25b69da693be8c3404f750b419c330a7a56e88ec) ) - ROM_LOAD( "obj-6-7.743", 0x300000, 0x100000, CRC(e5805757) SHA1(9d392c27eef7c1fcda560dac17ba9d7ae2287ac8) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "bg-1-ab.618", 0x000000, 0x100000, CRC(eaad151a) SHA1(bdd1d83ee8497efe20f21baf873e786446372bcb) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* BK2 used */ - ROM_LOAD( "bg-2-ab.617", 0x000000, 0x100000, CRC(40938f74) SHA1(d68b0f8245a8b390ad5d4e6ebc7514a939b8ac51) ) - - ROM_REGION( 0x100000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "bg-3-ab.619", 0x000000, 0x100000, CRC(de7366ee) SHA1(0c3969d15f3cd963e579d4164b6e0a6b4012c9c6) ) - - ROM_REGION( 0x100000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX4, 0x00000, 0x00000, 0x100000 ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "rom6.922", 0x000000, 0x040000, CRC(09e13213) SHA1(9500e057104c6b83da0467938e46d9efa2f49f4c) ) - - ROM_REGION( 0x200, REGION_PROMS, 0 ) - ROM_LOAD( "s68e08.844", 0x000000, 0x000200, CRC(96f7646e) SHA1(400a831b83d6ac4d2a46ef95b97b1ee237099e44) ) /* Priority */ - - ROM_REGION( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "copx-d2.313", 0x000000, 0x080000, CRC(7c52581b) SHA1(7e668476f886806b0c06fa0bcf4bbc955878c87c) ) -ROM_END - -/* - -SD Gundam Sangokushi Rainbow Tairiku Senki -(c)1993 Banpresto -TYPE-R -Board made by Seibu? - -CPU : MC68000P10 -Sound: Z80A YM2151 M6295 Y3014B -OSC : 20.0000MHz (X11), 14.31818MHz (X71) - -ROMs: -rb-p1.25 - Main programs (27c020) -rb-p2.24 | -rb-p3.26 | -rb-p4.23 / - -rb-s.016 - Sound program (27c512) -rb-ad.922 - Sound data (27c1001) - -rb-bg-01.618 - Background (TC538200AP) -rb-bg-2.619 | -rb-f1.620 | (27c512) -rb-f2.615 / - -rb-spr01.748 - Sprites (TC538200AP) -rb-spr23.756 / - -copx-d2.313 - ? (2M-16bit) - -s68e08.844 - (N82S147N) - -PALs: -s68e01.122 -s68e02.310 (16L8ACN) -s68e03.322 (16L8ACN) -s68e04.551 -s68e05.552 -s68e06r.741 (18CV8) -s68e07.842 -s68e09.015 (16L8ACN) - - -Custom chips: -SEI0100BU YM3931 9149 EALA -SEI0220BP JAPAN S 9208 U ("S" for "Sharp") -SEI0211 9215 ABBB -SEI0200 TC110G21AF 0076 9324EAI JAPAN -SEI300 TC25SC900AF 001 9211EAI JAPAN - -*/ - -ROM_START( sdgndmrb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "rb-p1.25", 0x000000, 0x040000, CRC(0995c511) SHA1(97fb2bd7d26720552ace25e655fce09ad9a7afd7) ) - ROM_LOAD32_BYTE( "rb-p2.24", 0x000001, 0x040000, CRC(c9eb756f) SHA1(88d784a71bfab4f321d3320aed1b6b2648529979) ) - ROM_LOAD32_BYTE( "rb-p3.26", 0x000002, 0x040000, CRC(fe2f08a8) SHA1(bb95e5c113a0343b6da43c5dca1292601dec00eb) ) - ROM_LOAD32_BYTE( "rb-p4.23", 0x000003, 0x040000, CRC(f558962a) SHA1(fcfb6f2cba59effd14c76602b0f87f564235d8ef) ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* 64k code for sound Z80 */ - ROM_LOAD( "rb-s.016", 0x000000, 0x08000, CRC(8439bf5b) SHA1(089009b91768d64edef6639e7694723d2d1c46ff) ) - ROM_CONTINUE( 0x010000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rb-f1.620", 0x000000, 0x010000, CRC(792c403d) SHA1(3c606af696fe8f3d6edefdab3940bd5eb341bca9) ) - ROM_LOAD( "rb-f2.615", 0x010000, 0x010000, CRC(a30e0903) SHA1(b9e7646da1ccab6dadaca6beda08125b34946653) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rb-spr01.748", 0x000000, 0x100000, CRC(11a3479d) SHA1(4d2d06d62da02c6e9884735de8c319f37ca1715c) ) - ROM_LOAD( "rb-spr23.756", 0x100000, 0x100000, CRC(fd08a761) SHA1(3297a2bfaabef17ed9320e24e9a4ffa2f3eb3a44) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "rb-bg-01.618", 0x000000, 0x100000, CRC(6a4ca7e7) SHA1(13612d29f8f04cf62b4357b69b81240dd1eceae4) ) - - ROM_REGION( 0x040000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x100000, REGION_GFX5, ROMREGION_DISPOSE ) - ROM_LOAD( "rb-bg-2.619", 0x000000, 0x100000, CRC(a9b5c85e) SHA1(0ae044e05730e8080d94f1f6758f8dd051b03c41) ) - - ROM_REGION( 0x100000, REGION_GFX6, ROMREGION_DISPOSE ) -//#define ROM_COPY(rgn,srcoffset,offset,length) - ROM_COPY( REGION_GFX3, 0x80000, 0x00000, 0x80000 ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "rb-ad.922", 0x000000, 0x020000, CRC(a364cb42) SHA1(c527b39a1627ecee20a2c4df4cf2b5f2ba729081) ) - - ROM_REGION( 0x040000, REGION_USER1, 0 ) - ROM_LOAD( "copx-d2.313", 0x0000, 0x040000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) -ROM_END - -ROM_START( cupsoc ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "seibu1.10n", 0x000000, 0x040000, CRC(e91fdc95) SHA1(71c56fffabca79e73dfc61aad17bc58e09a28680) ) - ROM_LOAD32_BYTE( "seibu2.10q", 0x000001, 0x040000, CRC(7816df3c) SHA1(d5cfbf493cc00c47406b314c08e9cbf159a7f98c) ) - ROM_LOAD32_BYTE( "seibu3.10f", 0x000002, 0x040000, CRC(3be8a330) SHA1(f821080acd29c5801abc36da3341aabaea82ceb0) ) - ROM_LOAD32_BYTE( "seibu4.10k", 0x000003, 0x040000, CRC(f30167ea) SHA1(5431296e3245631c90362373027c54166f8fba16) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "seibu7.8a", 0x000000, 0x08000, CRC(f63329f9) SHA1(51736de48efc14415cfdf169b43623d4c95fde2b) ) - ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "seibu6.7x", 0x000000, 0x010000, CRC(21c1e1b8) SHA1(30928c8ef98bf32ba0bf795ddadba1c95fcffe9d) ) - ROM_LOAD( "seibu5.7y", 0x010000, 0x010000, CRC(955d9fd7) SHA1(782451e8e85f7ba285d6cacd9d3fdcf48bde60bc) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj.8c", 0x000000, 0x100000, CRC(e2377895) SHA1(1d1c7f31a08a464139cdaf383a5e1ade0717dc9f) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "back-1.4y", 0x000000, 0x100000, CRC(3dfea0ec) SHA1(8f41d267e488e07831946ef898d593897f10bfe2) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "back-2.6y", 0x000000, 0x080000, CRC(e07712af) SHA1(2a0285d6a1e0141838e898252b8d922a6263b05f) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX5, 0x00000, 0x00000, 0x080000 ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) -ROM_END - -ROM_START( cupsoc2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "scc_01.bin", 0x000000, 0x040000, CRC(c122203c) SHA1(93c0ae90c0ed3889b9159774ba89536108c9b259) ) - ROM_LOAD32_BYTE( "scc_02.bin", 0x000001, 0x040000, CRC(105511b4) SHA1(f2ebe95a10f5928f57d4f532e2d2432f13b774b2) ) - ROM_LOAD32_BYTE( "scc_03.bin", 0x000002, 0x040000, CRC(2d23d78f) SHA1(c479ded8782f2d23e123b7d00ec57c18a8f80578) ) - ROM_LOAD32_BYTE( "scc_04.bin", 0x000003, 0x040000, CRC(e8877461) SHA1(3be44459699fd455b0daaac10e8a37d1b7985607) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "seibu7.8a", 0x000000, 0x08000, CRC(f63329f9) SHA1(51736de48efc14415cfdf169b43623d4c95fde2b) ) - ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "scc_06.bin", 0x000000, 0x010000, CRC(f1a18ec6) SHA1(43f8ec3fc541b8dc2a17533329dd3448afadcb3b) ) - ROM_LOAD( "scc_05.bin", 0x010000, 0x010000, CRC(c0358503) SHA1(e87991c6a6f3e060a1b03b4899fa891510fca15f) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj.8c", 0x000000, 0x100000, CRC(e2377895) SHA1(1d1c7f31a08a464139cdaf383a5e1ade0717dc9f) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "back-1.4y", 0x000000, 0x100000, CRC(3dfea0ec) SHA1(8f41d267e488e07831946ef898d593897f10bfe2) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "back-2.6y", 0x000000, 0x080000, CRC(e07712af) SHA1(2a0285d6a1e0141838e898252b8d922a6263b05f) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX5, 0x00000, 0x00000, 0x080000 ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) - - ROM_REGION( 0x080000, REGION_USER1, 0 ) - ROM_LOAD( "copx-d1.bin", 0x000000, 0x080000, CRC(029bc402) SHA1(0f64e4c32d95abfa3920b39ed3cf0cc6eb50191b) ) -ROM_END - -ROM_START( olysoc92 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD32_BYTE( "u025.1", 0x000000, 0x040000, CRC(a94e7780) SHA1(abbe328be425b4529e6b75ffa723c6771e4b6fcf) ) - ROM_LOAD32_BYTE( "u024.2", 0x000001, 0x040000, CRC(cb5f0748) SHA1(e11bf11a3766ab33c60a143867496887c6238b11) ) - ROM_LOAD32_BYTE( "u026.3", 0x000002, 0x040000, CRC(f71cc626) SHA1(7f66031509063d5fac33a3b5873b616c7ad0c25b) ) - ROM_LOAD32_BYTE( "u023.4", 0x000003, 0x040000, CRC(2ba10e6c) SHA1(d682d97426a749cfdbaf728edb219dbf84e9eef8) ) - - ROM_REGION( 0x20000*2, REGION_CPU2, 0 ) /* Z80 code, banked data */ - ROM_LOAD( "seibu7.8a", 0x000000, 0x08000, CRC(f63329f9) SHA1(51736de48efc14415cfdf169b43623d4c95fde2b) ) - ROM_CONTINUE( 0x010000, 0x08000 ) /* banked stuff */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "seibu6.7x", 0x000000, 0x010000, CRC(21c1e1b8) SHA1(30928c8ef98bf32ba0bf795ddadba1c95fcffe9d) ) - ROM_LOAD( "seibu5.7y", 0x010000, 0x010000, CRC(955d9fd7) SHA1(782451e8e85f7ba285d6cacd9d3fdcf48bde60bc) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj.8c", 0x000000, 0x100000, CRC(e2377895) SHA1(1d1c7f31a08a464139cdaf383a5e1ade0717dc9f) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "back-1.4y", 0x000000, 0x100000, CRC(3dfea0ec) SHA1(8f41d267e488e07831946ef898d593897f10bfe2) ) - - ROM_REGION( 0x020000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "back-2.6y", 0x000000, 0x080000, CRC(e07712af) SHA1(2a0285d6a1e0141838e898252b8d922a6263b05f) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX5, 0x00000, 0x00000, 0x080000 ) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "seibu8.7a", 0x000000, 0x040000, CRC(6f594808) SHA1(218aa12068aa587c7656355f6a6b86d97c868774) ) -ROM_END - -/* - -Seibu Cup Soccer - Seibu - Bootleg - -2 boards - -1st board - -(snd) -1 x z80 -1 x oki 6295 -sc_01 (prg) -sc_02 and sc_03 (data) - -(prg) -1 x 68000 -sc_04 and sc_05 - -(gfx) -2 x ti tpc1020 -from sc_06 to sc_11 - -2nd board - -(gfx) -1 x actel pl84c -from sc_12 to sc_15 - -*/ - -ROM_START( cupsocbl ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "sc_04.bin", 0x00001, 0x80000, CRC(22566087) SHA1(4392f46ca50cc9947823a5190aa25f5e9654aa0d) ) - ROM_LOAD16_BYTE( "sc_05.bin", 0x00000, 0x80000, CRC(2f977dff) SHA1(4d8d6e7d06ce17bb7292072965911f8b1f1067e2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - /*First part is full of $FF,a bad dump?*/ - ROM_LOAD( "sc_01.bin", 0x000000, 0x08000, CRC(cea39d6d) SHA1(f0b79c03ffafdd1e57673d6d4836becbe415110b) ) - ROM_CONTINUE( 0x000000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "seibu6.7x", 0x000000, 0x010000, CRC(21c1e1b8) SHA1(30928c8ef98bf32ba0bf795ddadba1c95fcffe9d) ) - ROM_LOAD( "seibu5.7y", 0x010000, 0x010000, CRC(955d9fd7) SHA1(782451e8e85f7ba285d6cacd9d3fdcf48bde60bc) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "obj.8c", 0x000000, 0x100000, CRC(e2377895) SHA1(1d1c7f31a08a464139cdaf383a5e1ade0717dc9f) ) - ROM_RELOAD( 0x100000, 0x100000 ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* MBK tiles */ - ROM_LOAD( "back-1.4y", 0x000000, 0x100000, CRC(3dfea0ec) SHA1(8f41d267e488e07831946ef898d593897f10bfe2) ) - - ROM_REGION( 0x100000, REGION_GFX4, ROMREGION_DISPOSE ) /* not used */ - ROM_COPY(REGION_GFX3,0x00000,0x00000,0x100000) - - ROM_REGION( 0x080000, REGION_GFX5, ROMREGION_DISPOSE ) /* BK3 tiles */ - ROM_LOAD( "back-2.6y", 0x000000, 0x080000, CRC(e07712af) SHA1(2a0285d6a1e0141838e898252b8d922a6263b05f) ) - - ROM_REGION( 0x080000, REGION_GFX6, ROMREGION_DISPOSE ) /* LBK tiles */ - ROM_COPY( REGION_GFX5, 0x00000, 0x00000, 0x080000 ) - - /*bootleg GFX roms,for now load the original roms*/ - ROM_REGION( 0x500000, REGION_USER2, 0 ) - ROM_LOAD( "sc_07.bin", 0x000000, 0x080000, CRC(dcb29d01) SHA1(72b4234622605f0ab03f21fdb6a61c6dac36000d) ) - ROM_LOAD( "sc_06.bin", 0x080000, 0x080000, CRC(2dc70e05) SHA1(f1d0beb8428a7e1d7c7818e6719abdc543b2fa80) ) - ROM_LOAD( "sc_13.bin", 0x100000, 0x010000, CRC(229bddd8) SHA1(0924bf29db9c5a970546f154e7752697fdce6a58) ) - ROM_LOAD( "sc_12.bin", 0x110000, 0x010000, CRC(dabfa826) SHA1(0db587c846755491b169ef7751ba8e7cdc2607e6) ) - ROM_LOAD( "sc_08.bin", 0x200000, 0x080000, CRC(637120f3) SHA1(b4b2ad192e46ff80d4cb440d7fb6dac215a353ed) ) - ROM_LOAD( "sc_09.bin", 0x280000, 0x080000, CRC(695b6342) SHA1(dfccb43789021ba2568b9284ae61e64f7f89b152) ) - ROM_LOAD( "sc_14.bin", 0x300000, 0x080000, CRC(566086c2) SHA1(b7d09ce978f99ecc0d1975b31330ed49317701d5) ) - ROM_LOAD( "sc_15.bin", 0x380000, 0x080000, CRC(8fd87e65) SHA1(acc9fd0289fa9ab60bec16d3e642039380e5180a) ) - ROM_LOAD( "sc_10.bin", 0x400000, 0x080000, CRC(27e172b8) SHA1(ed86db2f42c8061607d46f2407b0130aaf692a02) ) - ROM_LOAD( "sc_11.bin", 0x480000, 0x080000, CRC(0cd5ca5e) SHA1(a59665e543e9383355de2576e6693348ec356591) ) - - ROM_REGION( 0x020000, REGION_SOUND2, 0 ) /* ADPCM samples */ - ROM_LOAD( "sc_02.bin", 0x000000, 0x20000, CRC(a70d4f03) SHA1(c2482e624c8a828a94206a36d10c1021ad8ca1d0) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) // sound related ? - ROM_LOAD( "sc_03.bin", 0x000000, 0x080000, CRC(6e254d12) SHA1(857779dbd276b688201a8ea3afd5817e38acad2e) ) -ROM_END - -static DRIVER_INIT( legionna ) -{ - /* Unscramble gfx: quarters 1&2 swapped, quarters 3&4 swapped */ - - UINT8 *gfx = memory_region(REGION_GFX1); - int len = memory_region_length(REGION_GFX1)/2; - int a,i; - - for (i = 0; i < len/2; i++) - { - a = gfx[i]; - gfx[i] = gfx[i + len/2]; - gfx[i+len/2] = a; - - a = gfx[i+len]; - gfx[i+len] = gfx[i + len/2 + len]; - gfx[i + len/2 +len] = a; - } -} - -#define CUPSOC_DEBUG_MODE 1 - -static DRIVER_INIT( cupsoc ) -{ - #if CUPSOC_DEBUG_MODE - UINT16 *ROM = (UINT16 *)memory_region(REGION_CPU1); - - /*Press p1 button 3 to enter into debug mode during gameplay*/ - ROM[0xffffb/2] = 0x0000; - ROM[0xffff7/2] = 0x0000; - #endif -} - - -GAME( 1992, legionna, 0, legionna, legionna, legionna, ROT0, "Tad", "Legionnaire (World)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, legionnu, legionna, legionna, legionna, legionna, ROT0, "Tad (Fabtek license)", "Legionnaire (US)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) - -GAME( 1992, heatbrl, 0, heatbrl, heatbrl, 0, ROT0, "Tad", "Heated Barrel (World)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, heatbrlo, heatbrl, heatbrl, heatbrl, 0, ROT0, "Tad", "Heated Barrel (World old version)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, heatbrlu, heatbrl, heatbrl, heatbrl, 0, ROT0, "Tad", "Heated Barrel (US)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) - -GAME( 1993, godzilla, 0, godzilla, godzilla, 0, ROT0, "Banpresto", "Godzilla", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1993, sdgndmrb, 0, sdgndmrb, sdgndmrb, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1993, denjinmk, 0, denjinmk, godzilla, 0, ROT0, "Banpresto", "Denjin Makai", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) - -GAME( 1992, cupsoc, 0, cupsoc, cupsoc, 0, ROT0, "Seibu", "Seibu Cup Soccer", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, cupsoc2, cupsoc, cupsoc, cupsoc, 0, ROT0, "Seibu", "Seibu Cup Soccer (set 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, olysoc92, cupsoc, cupsoc, cupsoc, 0, ROT0, "Seibu", "Olympic Soccer '92", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1992, cupsocbl, cupsoc, cupsocbl, cupsoc, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer (bootleg)", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/leland.c b/src/drivers/leland.c deleted file mode 100644 index 8d7c6fc50..000000000 --- a/src/drivers/leland.c +++ /dev/null @@ -1,2578 +0,0 @@ -/*************************************************************************** - - Cinemat/Leland driver - - driver by Aaron Giles and Paul Leaman - - Games supported: - * Cerberus - * Mayhem 2002 - * Power Play - * World Series: The Season - * Alley Master - * Up Your Alley - * Danger Zone - * Baseball The Season II - * Super Baseball Double Play Home Run Derby - * Strike Zone Baseball - * Redline Racer - * Quarterback - * Viper - * John Elway's Team Quarterback - * All American Football - * Ironman Stewart's Super Off-Road - * Pigout - - Known bugs: - * none at this time - -**************************************************************************** - - To enter service mode in most games, press 1P start and then press - the service switch (F2). - - For Redline Racer, hold the service switch down and reset the machine. - - For Super Offroad, press the blue nitro button (3P button 1) and then - press the service switch. - -***************************************************************************/ - - -#include "driver.h" -#include "machine/eeprom.h" -#include "cpu/z80/z80.h" -#include "leland.h" -#include "sound/ay8910.h" -#include "sound/custom.h" - - -/************************************* - * - * Master CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( master_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x9fff) AM_ROMBANK(1) - AM_RANGE(0xa000, 0xdfff) AM_ROMBANK(2) - AM_RANGE(0xa000, 0xdfff) AM_WRITE(leland_battery_ram_w) - AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(leland_gated_paletteram_r, leland_gated_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xf800, 0xf801) AM_WRITE(leland_master_video_addr_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( master_map_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0xf0, 0xf0) AM_WRITE(leland_master_alt_bankswitch_w) - AM_RANGE(0xf2, 0xf2) AM_READWRITE(leland_i86_response_r, leland_i86_command_lo_w) - AM_RANGE(0xf4, 0xf4) AM_WRITE(leland_i86_command_hi_w) - AM_RANGE(0xfd, 0xff) AM_READWRITE(leland_master_analog_key_r, leland_master_analog_key_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Slave CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( slave_small_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0xdfff) AM_ROMBANK(3) - AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf800, 0xf801) AM_WRITE(leland_slave_video_addr_w) - AM_RANGE(0xf802, 0xf802) AM_READ(leland_raster_r) - AM_RANGE(0xf803, 0xf803) AM_WRITE(leland_slave_small_banksw_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( slave_large_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x4000, 0xbfff) AM_ROMBANK(3) - AM_RANGE(0xc000, 0xc000) AM_WRITE(leland_slave_large_banksw_w) - AM_RANGE(0xe000, 0xefff) AM_RAM - AM_RANGE(0xf800, 0xf801) AM_WRITE(leland_slave_video_addr_w) - AM_RANGE(0xf802, 0xf802) AM_READ(leland_raster_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( slave_map_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x1f) AM_READWRITE(leland_svram_port_r, leland_svram_port_w) - AM_RANGE(0x40, 0x5f) AM_READWRITE(leland_svram_port_r, leland_svram_port_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -/* Helps document the input ports. */ -#define IPT_SLAVEHALT IPT_SPECIAL -#define IPT_EEPROM_DATA IPT_SPECIAL - - -INPUT_PORTS_START( cerberus ) /* complete, verified from code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_START -INPUT_PORTS_END - - -INPUT_PORTS_START( mayhem ) /* complete, verified from code */ - PORT_START /* 0xC0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START /* 0xC1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xD0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_START - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_START -INPUT_PORTS_END - - -INPUT_PORTS_START( wseries ) /* complete, verified from code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Extra Base") PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Go Back") PORT_PLAYER(1) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Aim") PORT_PLAYER(1) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( alleymas ) /* complete, verified from code */ - PORT_START /* 0xC0 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* 0xC1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xD0 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* redundant inputs */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* redundant inputs */ - - PORT_START /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,224) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_START -INPUT_PORTS_END - - -INPUT_PORTS_START( upyoural ) /* complete, verified from code */ - PORT_START /* 0xC0 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* 0xC1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xD0 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,224) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_START -INPUT_PORTS_END - - -INPUT_PORTS_START( dangerz ) /* complete, verified from code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog 1 */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog 2 */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( basebal2 ) /* complete, verified from code */ - PORT_START /* 0x40/C0 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* read by strkzone, but never referenced */ - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Extra Base") PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Go Back") PORT_PLAYER(1) - - PORT_START /* 0x41/C1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x50/D0 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("R Run/Steal") PORT_PLAYER(1) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("L Run/Steal") PORT_PLAYER(1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Run/Aim") PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Run/Cutoff") PORT_PLAYER(1) - - PORT_START /* 0x51/D1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog joystick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog joystick 2 */ - PORT_START - PORT_START /* Analog joystick 3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( redline ) /* complete, verified in code */ - PORT_START /* 0xC0 */ - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xe0, 0xe0, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(64) PORT_PLAYER(1) - - PORT_START /* 0xC1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* used, but for what purpose? */ - - PORT_START /* 0xD0 */ - PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xe0, 0xe0, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(64) PORT_PLAYER(2) - - PORT_START /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog wheel 1 */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog wheel 2 */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( quarterb ) /* complete, verified in code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog spring stick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 3 */ - PORT_START /* Analog spring stick 4 */ - PORT_START /* Analog spring stick 5 */ - PORT_START /* Analog spring stick 6 */ -INPUT_PORTS_END - - -INPUT_PORTS_START( teamqb ) /* complete, verified in code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog spring stick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 3 */ - PORT_START /* Analog spring stick 4 */ - PORT_START /* Analog spring stick 5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3) - PORT_START /* Analog spring stick 6 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3) - - PORT_START /* 0x7C */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START /* 0x7F */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3) -INPUT_PORTS_END - - -INPUT_PORTS_START( aafb2p ) /* complete, verified in code */ - PORT_START /* 0x80 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x81 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x90 */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - - PORT_START /* 0x91 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog spring stick 1 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog spring stick 3 */ - PORT_START /* Analog spring stick 4 */ - PORT_START /* Analog spring stick 5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START /* Analog spring stick 6 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START /* 0x7C */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x7F */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( offroad ) /* complete, verified from code */ - PORT_START /* 0xC0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* read */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* read */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* read */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xC1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xD0 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0xD1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Analog pedal 1 */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog pedal 2 */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START /* Analog pedal 3 */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3) - PORT_START /* Analog wheel 1 */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_START /* Analog wheel 2 */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - PORT_START /* Analog wheel 3 */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(3) -INPUT_PORTS_END - - -INPUT_PORTS_START( pigout ) /* complete, verified from code */ - PORT_START /* 0x40 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START /* 0x41 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLAVEHALT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* read, but never referenced */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x50 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - - PORT_START /* 0x51 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_EEPROM_DATA ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* 0x7F */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout bklayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &bklayout, 0, 8 }, - { -1 } /* end of array */ -}; - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -/* - 2 AY8910 chips - Actually, one of these is an 8912 - (8910 with only 1 output port) - - Port A of both chips is connected to a banking control - register. -*/ - -static struct AY8910interface ay8910_interface = -{ - leland_sound_port_r, - 0, - leland_sound_port_w, - 0 -}; - - -static struct CustomSound_interface dac_custom_interface = -{ - leland_sh_start -}; - - -static struct CustomSound_interface i186_custom_interface = -{ - leland_i186_sh_start -}; - - -static struct CustomSound_interface redline_custom_interface = -{ - redline_i186_sh_start -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( leland ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("master", Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(master_map_program,0) - MDRV_CPU_IO_MAP(master_map_io,0) - MDRV_CPU_VBLANK_INT(leland_master_interrupt,1) - - MDRV_CPU_ADD_TAG("slave", Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(slave_small_map_program,0) - MDRV_CPU_IO_MAP(slave_map_io,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000*16)/(256*60))) - - MDRV_MACHINE_START(leland) - MDRV_MACHINE_RESET(leland) - MDRV_NVRAM_HANDLER(leland) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 30*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(leland) - MDRV_VIDEO_EOF(leland) - MDRV_VIDEO_UPDATE(leland) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("ay8910.1", AY8910, 10000000/6) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("ay8910.2", AY8910, 10000000/6) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("custom", CUSTOM, 0) - MDRV_SOUND_CONFIG(dac_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( redline ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(leland) - MDRV_CPU_ADD_TAG("sound", I186, 16000000/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(leland_i86_map_program,0) - MDRV_CPU_IO_MAP(redline_i86_map_io,0) - - /* sound hardware */ - MDRV_SOUND_REPLACE("custom", CUSTOM, 0) - MDRV_SOUND_CONFIG(redline_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( quarterb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(redline) - MDRV_CPU_MODIFY("sound") - MDRV_CPU_IO_MAP(leland_i86_map_io,0) - - /* sound hardware */ - MDRV_SOUND_REPLACE("custom", CUSTOM, 0) - MDRV_SOUND_CONFIG(i186_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( lelandi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(quarterb) - MDRV_CPU_MODIFY("slave") - MDRV_CPU_PROGRAM_MAP(slave_large_map_program,0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( cerberus ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "3-23u101", 0x00000, 0x02000, CRC(d78210df) SHA1(7557bc9da7d7347073cebcc080ff2040184ee77b) ) - ROM_LOAD( "3-23u102", 0x02000, 0x02000, CRC(eed121ef) SHA1(862c4fee6c4483569aec7969ce797a5c3fbae336) ) - ROM_LOAD( "3-23u103", 0x04000, 0x02000, CRC(45b82bf7) SHA1(ca239fcb96754c9e388d55eea4974824e6ce4d75) ) - ROM_LOAD( "3-23u104", 0x06000, 0x02000, CRC(e133d6bf) SHA1(7afe4883d7b072277fab8b383ad3a247c7045403) ) - ROM_LOAD( "3-23u105", 0x08000, 0x02000, CRC(a12c2c79) SHA1(1a36405a8f9bc4422f01c2bb1361061fb8d76b51) ) - ROM_LOAD( "3-23u106", 0x0a000, 0x02000, CRC(d64110d2) SHA1(3bd8cda21e848357c84f5064f38e0b9da35051db) ) - ROM_LOAD( "3-23u107", 0x0c000, 0x02000, CRC(24e41c34) SHA1(b38462593320bd004a24392e0cce7b36fe12434e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "3-23u3", 0x00000, 0x02000, CRC(b0579138) SHA1(b79888d0c8cc4ecb015e3865df379859e02e2846) ) - ROM_LOAD( "3-23u4", 0x02000, 0x02000, CRC(ba0dc990) SHA1(836eef85e31b81a4b6f84529ecbe64167a5059dd) ) - ROM_LOAD( "3-23u5", 0x04000, 0x02000, CRC(f8d6cc5d) SHA1(5b82c722aa6a055d1955f654985b43e114792704) ) - ROM_LOAD( "3-23u6", 0x06000, 0x02000, CRC(42cdd393) SHA1(3d2a803cb90ec25af0b34de1ae549408fc0292c3) ) - ROM_LOAD( "3-23u7", 0x08000, 0x02000, CRC(c020148a) SHA1(5ed0211526f0dc04ed010b9103bb7992dc17766f) ) - ROM_LOAD( "3-23u8", 0x0a000, 0x02000, CRC(dbabdbde) SHA1(906ff8f91eaf01f0435d7ac1291af62073568d2f) ) - ROM_LOAD( "3-23u9", 0x0c000, 0x02000, CRC(eb992385) SHA1(0951d6fb5ff8508ef7184e9c26be6c20b85bad72) ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "3-23u93", 0x00000, 0x02000, CRC(14a1a4b0) SHA1(aad63e368a09497188f8112d1ca0ac0d0366ac61) ) - ROM_LOAD( "3-23u94", 0x02000, 0x02000, CRC(207a1709) SHA1(c7fbb80a83a5684b6b35750df68d51091e8747e4) ) - ROM_LOAD( "3-23u95", 0x04000, 0x02000, CRC(e9c86267) SHA1(c7f3a4725824da1e2793160409821017bd0bd956) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "3-23u70", 0x02000, 0x2000, CRC(96499983) SHA1(202c9d74fe4bbce7b93fcbb6352c35eb480d8297) ) - ROM_LOAD( "3-23_u92", 0x06000, 0x2000, CRC(497bb717) SHA1(748ac9f22d896b493cdf182ec9deb3e07e2ffb48) ) - ROM_LOAD( "3-23u69", 0x0a000, 0x2000, CRC(ebd14d9e) SHA1(8eb061d43eb60eea01b122e0b4e937bfc00146cc) ) - ROM_LOAD( "3-23u91", 0x0e000, 0x2000, CRC(b592d2e5) SHA1(bbacbd772b6fc683dfec4f13bdf9a1746f3ea1e6) ) - ROM_LOAD( "3-23u68", 0x12000, 0x2000, CRC(cfa7b8bf) SHA1(7f38f8148cddc93baedfaa28a8c72918eb5d3b98) ) - ROM_LOAD( "3-23u90", 0x16000, 0x2000, CRC(b7566f8a) SHA1(a0128b3bf4803947050a75df0607e4886f5ed931) ) - ROM_LOAD( "3-23u67", 0x1a000, 0x2000, CRC(02b079a8) SHA1(2ad76641831a391d9acefe8e42515e16dd056868) ) - ROM_LOAD( "3-23u89", 0x1e000, 0x2000, CRC(7e5e82bb) SHA1(ccbb583689d420a0b7413c0a221a3f57a5ab0e63) ) -ROM_END - - -ROM_START( mayhem ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD( "13208.101", 0x00000, 0x04000, CRC(04306973) SHA1(83e35fa7f2b2c6c1a65ee2f76223e12234eb69ad) ) - ROM_LOAD( "13215.102", 0x10000, 0x02000, CRC(06e689ae) SHA1(1bf4ae82809eaaf06608d2015bdeceae57a345a1) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13216.103", 0x12000, 0x02000, CRC(6452a82c) SHA1(8008238359fbf1c138f4fa9fce5580d63db978f2) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13217.104", 0x14000, 0x02000, CRC(62f6036e) SHA1(3e88e3f4390236b0a4623678a1a6e160c30ff747) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13218.105", 0x16000, 0x02000, CRC(162f5eb1) SHA1(9658b8bae35ea1d55e147a5a43ec00a25e102f54) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13219.106", 0x18000, 0x02000, CRC(c0a74d6f) SHA1(c47ff4dc47bea79c76198a677181c92026e8c3db) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "13207.3", 0x00000, 0x04000, CRC(be1df6aa) SHA1(72e8782a96d598580a13b2183fbdc434f68d490b) ) /* DO NOT TRIM THIS ROM */ - ROM_LOAD( "13209.4", 0x10000, 0x02000, CRC(39fcd7c6) SHA1(2064a7caec0753d38a39095492f705a20482eb83) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13210.5", 0x12000, 0x02000, CRC(630ed136) SHA1(fc9bc18ec18a57b8d45adcab737e29512fc62d3a) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13211.6", 0x14000, 0x02000, CRC(28b4aecd) SHA1(66bfcdc66efec6e8537b29382b9702f713455826) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13212.7", 0x16000, 0x02000, CRC(1d6b39ab) SHA1(094e3b7e2b933c5e00722f889a75e4d76569f6fb) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13213.8", 0x18000, 0x02000, CRC(f3b2ea05) SHA1(ee916b903ce6891e7ea98848d559362c0e0ac8d2) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "13214.9", 0x1a000, 0x02000, CRC(96f3e8d9) SHA1(e0a663c3c9dc77f2ec10c71a9d227ec3ea765c6e) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "13204.93", 0x00000, 0x04000, CRC(de183518) SHA1(080cd45c2c7d81b8edd5170aa6a587ae6e7e54fb) ) - ROM_LOAD( "13205.94", 0x04000, 0x04000, CRC(c61f63ac) SHA1(c52fe331391720796556a7eab7d145fd1dacf6ed) ) - ROM_LOAD( "13206.95", 0x08000, 0x04000, CRC(8e7bd2fd) SHA1(ccd97ef604be6d4479a8a91fccecb5d71a4d82af) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "13203.92", 0x04000, 0x4000, CRC(121ed5bf) SHA1(691b09a3bad3d1fd13ec38a81a15436b8baba0a1) ) - ROM_LOAD( "13201.69", 0x08000, 0x4000, CRC(90283e29) SHA1(36b71e2df455758b139a503968b80112a65c347a) ) - /* U91 = Empty */ - /* U68 = Empty */ - /* U90 = Empty */ - /* U67 = Empty */ - ROM_LOAD( "13202.89", 0x1c000, 0x4000, CRC(c5eaa4e3) SHA1(007a526543d06b8f39e4e93da6ad19725ec6aa2d) ) -ROM_END - - -ROM_START( powrplay ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD( "13306.101", 0x00000, 0x02000, CRC(981fc215) SHA1(c2ae1ff12f96c713d0dc6f6503ce0ba18ac342c4) ) - ROM_LOAD( "13307.102", 0x10000, 0x02000, CRC(38a6ddfe) SHA1(a4a4372697e14584c3a6a9a8c94e5a4ee58b3ee6) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13308.103", 0x12000, 0x02000, CRC(7fa2ab9e) SHA1(d774f3a32d799f845805e88e21e1687aa35a390e) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13309.104", 0x14000, 0x02000, CRC(bd9e6fa8) SHA1(4530d449d9e1cee0e346f8915e3b727b396a399d) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13310.105", 0x16000, 0x02000, CRC(b6df3a5a) SHA1(b968c47ecceb8be7f3b21f1f35f1a13840821f32) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13311.106", 0x18000, 0x02000, CRC(5e17fe84) SHA1(8f53de9acc08f17dd2bc5a81489d8da86ad3c690) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "13305.003", 0x00000, 0x02000, CRC(df8fbeed) SHA1(2b5ec692cf90fe66d06a2261d9d56cb88528750d) ) - ROM_LOAD( "13313.004", 0x10000, 0x02000, CRC(081eb88f) SHA1(97700d9dba05a459fb85911db8f4b4fe1283776b) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13314.005", 0x12000, 0x02000, CRC(b8e61f8c) SHA1(0ae3439510ad8a15f9f9c1981b2278aa950cc0b4) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13315.006", 0x14000, 0x02000, CRC(776d3c40) SHA1(7fc68f16dc148c860c1ae12fb8e12d3adbe3d7c1) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13316.007", 0x16000, 0x02000, CRC(9b3ec2a1) SHA1(a8cc461124c93019310a0cd6de5faf83f13060d6) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13317.008", 0x18000, 0x02000, CRC(a081a031) SHA1(c7eef2022bc623bb3399895e092d6cb56c50b5e3) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "13302.093", 0x00000, 0x02000, CRC(9beaa403) SHA1(02af1fb98f61b3e7758524978deba094224c8a5d) ) - ROM_LOAD( "13303.094", 0x02000, 0x02000, CRC(2bf711d0) SHA1(bf20177e1b07b12b4ef833072b313a2917d1b65e) ) - ROM_LOAD( "13304.095", 0x04000, 0x02000, CRC(06b8675b) SHA1(8b25a473c03f8210f5d8542c0dc6643c499a0afa) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "13301.070", 0x00000, 0x2000, CRC(aa6d3b9d) SHA1(cb1f148495b029b73f5a32c5162dcc54c0387b4e) ) - /* U92 = Empty */ - /* U69 = Empty */ - /* U91 = Empty */ - /* U68 = Empty */ - /* U90 = Empty */ - /* U67 = Empty */ - /* U89 = Empty */ -ROM_END - - -ROM_START( wseries ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD( "13409-01.101", 0x00000, 0x02000, CRC(b5eccf5c) SHA1(1ca781245292399d1b573e6be2edbb79daf9b5d6) ) - ROM_LOAD( "13410-01.102", 0x10000, 0x02000, CRC(dd1ec091) SHA1(ef644c49bbe1cc30ecafab928a0715ea3461a1bd) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13411-01.103", 0x12000, 0x02000, CRC(ec867a0e) SHA1(7b0e390e234056fcc8e6ae9605d633b6ed874e32) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13412-01.104", 0x14000, 0x02000, CRC(2977956d) SHA1(24c8317f10710a5ae4d4e43bc1321a815e47c78f) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13413-01.105", 0x16000, 0x02000, CRC(569468a6) SHA1(311257c3b7575cbf442c3afbb42ae3603c03807a) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13414-01.106", 0x18000, 0x02000, CRC(b178632d) SHA1(c764e9e69bbd9fd9eb8e950abfd869b8bef71325) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "13415-01.107", 0x1a000, 0x02000, CRC(20b92eff) SHA1(02156fb36cae6c47b6ae9afcbc27f8f5e9074bbe) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "13416-00.u3", 0x00000, 0x02000, CRC(37c960cf) SHA1(e18c72cdbd642e8dfa1184814b65770535a469cb) ) - ROM_LOAD( "13417-00.u4", 0x10000, 0x02000, CRC(97f044b5) SHA1(289a9e19ce46dd039c7edc4d78bd07c355da6dad) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13418-00.u5", 0x12000, 0x02000, CRC(0931cfc0) SHA1(13adb7caf6b1dcf3918277352545fe03e27da3c1) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13419-00.u6", 0x14000, 0x02000, CRC(a7962b5a) SHA1(857c05395b8a1d4aeb3cbac394b673d3bc551b7f) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13420-00.u7", 0x16000, 0x02000, CRC(3c275262) SHA1(3a352c184ef3ab87bc7f926eb1af2bef7befcfb6) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13421-00.u8", 0x18000, 0x02000, CRC(86f57c80) SHA1(460fb2e1d432840797edafcf4643e23072006c2e) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "13422-00.u9", 0x1a000, 0x02000, CRC(222e8405) SHA1(a1cc700e06df43847b635858d21ff2e45d8e00ab) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "13401-00.u93", 0x00000, 0x04000, CRC(4ea3e641) SHA1(7628fbf25b5e36d06818d2f9cdc66e2fb15cba4f) ) - ROM_LOAD( "13402-00.u94", 0x04000, 0x04000, CRC(71a8a56c) SHA1(b793a9641dd5d4cd122fb8f5cf1eef5dc3fd475c) ) - ROM_LOAD( "13403-00.u95", 0x08000, 0x04000, CRC(8077ae25) SHA1(15bb1f99e8aea67b9057ef5ef8570f33470a24a3) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "13404-00.u92", 0x04000, 0x4000, CRC(22da40aa) SHA1(a0306f795f1300d9ab88356ab44117764f6f22a4) ) - ROM_LOAD( "13405-00.u69", 0x08000, 0x4000, CRC(6f65b313) SHA1(2ae85686f679eaa8be15f0cd7d5af61af966c4bd) ) - /* U91 = Empty */ - ROM_LOAD( "13406-00.u68", 0x12000, 0x2000, CRC(bb568693) SHA1(f7f3af505ba5caa330a36cde77b1c2c3cbf83398) ) - ROM_LOAD( "13407-00.u90", 0x14000, 0x4000, CRC(e46ca57f) SHA1(771b43c4a2bcedc6a5bdde14a3c04701032b5713) ) - ROM_LOAD( "13408-00.u67", 0x18000, 0x4000, CRC(be637305) SHA1(a13cbc1644dc06ec52faa0a18340b679c03dc902) ) - /* 89 = Empty */ -ROM_END - - -ROM_START( alleymas ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD( "101", 0x00000, 0x02000, CRC(4273e260) SHA1(1b2a726e0a6fe6a60d447c987471a6e1a9e78479) ) - ROM_LOAD( "102", 0x10000, 0x02000, CRC(eb6575aa) SHA1(0876c83d13565937610b5af52aacee1ae6fd59ba) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "103", 0x12000, 0x02000, CRC(cc9d778c) SHA1(293ac75d45be4531af1982c0b99597d18bab6a05) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "104", 0x14000, 0x02000, CRC(8edb129b) SHA1(f1268617cf18c1c3fd5fb324e882db14cced3d8c) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "105", 0x16000, 0x02000, CRC(a342dc8e) SHA1(9a6657d66fba5cb1ae3d11e940467b85d47472ea) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "106", 0x18000, 0x02000, CRC(b396c254) SHA1(06b118ae07d3018209b7ae831f7667cc23d23abd) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "107", 0x1a000, 0x02000, CRC(3ca13e8c) SHA1(34e00a17ce305c8327674bd79347f01cda14bc8b) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "003", 0x00000, 0x02000, CRC(3fee63ae) SHA1(519fe4981dc2c6d025fc2f27af6682103c99dd5e) ) - ROM_LOAD( "004", 0x10000, 0x02000, CRC(d302b5d1) SHA1(77263944d7b4e335fbc3b91d69def6cc85648ec6) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "005", 0x12000, 0x02000, CRC(79bdb24d) SHA1(f64c3c5a715d5f4a27e01aeb31e1c43f1f3d5b17) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "006", 0x14000, 0x02000, CRC(f0b15d68) SHA1(8017fce4b30e2f3bee74fba82d2a0154b3a1ab6d) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "007", 0x16000, 0x02000, CRC(6974036c) SHA1(222dd4d8c6d69f6b44b76681a508ff2cfafe1acc) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "008", 0x18000, 0x02000, CRC(a4357b5a) SHA1(c58505e1ef66641f4da5f29edbb197c5a09a367b) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "009", 0x1a000, 0x02000, CRC(6d74274e) SHA1(10bb04243eabeb8178884b4e0691c5e1765a1dc4) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x06000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "093", 0x00000, 0x02000, CRC(54456e6f) SHA1(be41711f57b5b9bd6651399f0df00c538ca1a3a5) ) - ROM_LOAD( "094", 0x02000, 0x02000, CRC(edc240da) SHA1(a812ab0cccb20cd68e9dbe283d4aab92f540af24) ) - ROM_LOAD( "095", 0x04000, 0x02000, CRC(19793ed0) SHA1(2a3cb81726977b29c88d47c90d6e15a7e287c836) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "092", 0x04000, 0x2000, CRC(a020eab5) SHA1(2f4f51f0eff8a042bf23d5f3ff42166db56e7822) ) - ROM_LOAD( "069", 0x08000, 0x2000, CRC(79abb979) SHA1(dfff8ea4d13dd0db2836e75b6b57f5f3ddac0201) ) - /* U91 = Empty */ - ROM_LOAD( "068", 0x10000, 0x2000, CRC(0c583385) SHA1(4bf5648991441470c4427c88ce17265b447d30d0) ) - ROM_LOAD( "090", 0x14000, 0x2000, CRC(0e1769e3) SHA1(7ca5e3205e790d90e0a39dc88766c582f25147b7) ) - /* U67 = Empty */ - /* U89 = Empty */ -ROM_END - - -ROM_START( upyoural ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) - ROM_LOAD( "uya-u101.bin", 0x00000, 0x02000, CRC(82bf3b7a) SHA1(1a23da0535c736fa2f49a83fe5e33b8d60117bd1) ) - ROM_LOAD( "uya-u102.bin", 0x10000, 0x02000, CRC(e1681268) SHA1(205519bf59e3be1ec485de7d81e3c4751e6630f6) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "uya-u103.bin", 0x12000, 0x02000, CRC(0d36aa78) SHA1(77241adf02e65e5ff85dcc4a2f70411a637eed54) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "uya-u104.bin", 0x14000, 0x02000, CRC(a4473886) SHA1(af63f8c0e96b3f9ce58469948a0ebdb6a853f5c4) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "uya-u105.bin", 0x16000, 0x02000, CRC(4cad86a4) SHA1(f330800ca276aec7301a76c7c974736ee25290ce) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "uya-u106.bin", 0x18000, 0x02000, CRC(26f4848e) SHA1(b76179b89483a19ca3ca16e0b56af3667c252d8b) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "uya-u107.bin", 0x1a000, 0x02000, CRC(fd087cc7) SHA1(96b70e94d96baf4ea66d98b225cf67bf69cdd972) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "uya-u3.bin", 0x00000, 0x02000, CRC(3fee63ae) SHA1(519fe4981dc2c6d025fc2f27af6682103c99dd5e) ) - ROM_LOAD( "uya-u4.bin", 0x10000, 0x02000, CRC(d302b5d1) SHA1(77263944d7b4e335fbc3b91d69def6cc85648ec6) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "uya-u5.bin", 0x12000, 0x02000, CRC(79bdb24d) SHA1(f64c3c5a715d5f4a27e01aeb31e1c43f1f3d5b17) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "uya-u6.bin", 0x14000, 0x02000, CRC(f0b15d68) SHA1(8017fce4b30e2f3bee74fba82d2a0154b3a1ab6d) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "uya-u7.bin", 0x16000, 0x02000, CRC(6974036c) SHA1(222dd4d8c6d69f6b44b76681a508ff2cfafe1acc) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "uya-u8.bin", 0x18000, 0x02000, CRC(a4357b5a) SHA1(c58505e1ef66641f4da5f29edbb197c5a09a367b) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "uya-u9.bin", 0x1a000, 0x02000, CRC(6d74274e) SHA1(10bb04243eabeb8178884b4e0691c5e1765a1dc4) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "uya-u93.bin", 0x00000, 0x04000, CRC(e8addd70) SHA1(6fd6a09fbdbe866440c3205b103e4bede7e4b2d5) ) - ROM_LOAD( "uya-u94.bin", 0x04000, 0x04000, CRC(3fd3be09) SHA1(abdafbf9472fe3320be1a3effd13407dadf66709) ) - ROM_LOAD( "uya-u95.bin", 0x08000, 0x04000, CRC(37088dd1) SHA1(35e4a3b338baceae2e4b8ac6d95691af49ebc3c1) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "uya-u92.bin", 0x04000, 0x2000, CRC(a020eab5) SHA1(2f4f51f0eff8a042bf23d5f3ff42166db56e7822) ) - ROM_LOAD( "uya-u69.bin", 0x08000, 0x2000, CRC(79abb979) SHA1(dfff8ea4d13dd0db2836e75b6b57f5f3ddac0201) ) - /* U91 = Empty */ - ROM_LOAD( "uya-u68.bin", 0x10000, 0x2000, CRC(0c583385) SHA1(4bf5648991441470c4427c88ce17265b447d30d0) ) - ROM_LOAD( "uya-u90.bin", 0x14000, 0x2000, CRC(0e1769e3) SHA1(7ca5e3205e790d90e0a39dc88766c582f25147b7) ) - ROM_LOAD( "uya-u67.bin", 0x18000, 0x4000, CRC(d30a385d) SHA1(a1e83d360acef6087c24235c5a56457d25ccd937) ) - ROM_LOAD( "uya-u89.bin", 0x1c000, 0x4000, CRC(5c17401e) SHA1(2759b1d336ee43116cc4e34db36bd9c56762cca9) ) -ROM_END - - -ROM_START( dangerz ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "13823.12t", 0x00000, 0x10000, CRC(31604634) SHA1(0b3d4fea91faf41519888954a21a82827eae6e2a) ) - ROM_LOAD( "13824.13t", 0x10000, 0x10000, CRC(381026c6) SHA1(16c810d162789154e3b5ad38545855370f73b679) ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "13818.3", 0x00000, 0x04000, CRC(71863c5b) SHA1(18fdae631d0990815b07934d9cce73a41df9152f) ) - ROM_LOAD( "13817.4", 0x10000, 0x02000, CRC(924bead3) SHA1(ba8dd39db9992b426968e5584c94a8b5ed7c0535) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13818.5", 0x12000, 0x02000, CRC(403bdfea) SHA1(71b959c674e7583670e638ebbd44c75784f565c8) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13819.6", 0x14000, 0x02000, CRC(1fee5f10) SHA1(0aee1e139e13528ec328a8a949f576bfca1892a1) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13820.7", 0x16000, 0x02000, CRC(42657a1e) SHA1(d5bb6b6a4bc121fea39809b3b2c891345b12f4d7) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13821.8", 0x18000, 0x02000, CRC(92f3e006) SHA1(134a2412ddc700473b70aec6331b1a65db3c7e29) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "13801.93", 0x00000, 0x04000, CRC(f9ff55ec) SHA1(2eab55b3708def97f22a1f13d1faa0bfe19c18e9) ) - ROM_LOAD( "13802.94", 0x04000, 0x04000, CRC(d4adbcbb) SHA1(dfd427d5a0db309cc7e056857c3b63a1b6e7769b) ) - ROM_LOAD( "13803.95", 0x08000, 0x04000, CRC(9178ed76) SHA1(f05568eea53c38f46b16217e63b73194d3a3c500) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "13809.70", 0x00000, 0x4000, CRC(e44eb9f5) SHA1(f15e4262eb96989cbd13a4cbf0b4a0ab390005aa) ) - ROM_LOAD( "13804.92", 0x04000, 0x4000, CRC(6c23f1a5) SHA1(0de32ba7b5796bfe37b142fb892beb223f27c381) ) - ROM_LOAD( "13805.69", 0x08000, 0x4000, CRC(e9c9f38b) SHA1(6a03cf9ab4d06f05d4fb846f14eab22467c79661) ) - ROM_LOAD( "13808.91", 0x0c000, 0x4000, CRC(035534ad) SHA1(e4759992c479d039d6810f129fa2267e0e9527a2) ) - ROM_LOAD( "13806.68", 0x10000, 0x4000, CRC(2dbd64d2) SHA1(eaa015c92daa9562f58e5ed1d153ecd3f1403546) ) - ROM_LOAD( "13808.90", 0x14000, 0x4000, CRC(d5b4985d) SHA1(d9a5e331f6cf9b4abf9f5d739fadf0d6216fe994) ) - ROM_LOAD( "13822.67", 0x18000, 0x4000, CRC(00ff3033) SHA1(ca183f28cb4732ebfc41b6c1651405fee28a9ec6) ) - ROM_LOAD( "13810.89", 0x1c000, 0x4000, CRC(4f645973) SHA1(94bf12db53dc08eb917c17f1ba0d5a40922ff22c) ) -ROM_END - - -ROM_START( basebal2 ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) - ROM_LOAD( "14115-00.101", 0x00000, 0x02000, CRC(05231fee) SHA1(d2f4f81309d344576aadb39c209240b901476ac2) ) - ROM_LOAD( "14116-00.102", 0x10000, 0x02000, CRC(e1482ea3) SHA1(a55b8c99428fefd033ac481944b370a4c82ac134) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "14117-01.103", 0x12000, 0x02000, CRC(677181dd) SHA1(afc3f33c50551efe5087a3a90f672fe95e3b9087) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "14118-01.104", 0x14000, 0x02000, CRC(5f570264) SHA1(09bf8ec7e40292e3764d51988d5ed613920869ec) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "14119-01.105", 0x16000, 0x02000, CRC(90822145) SHA1(52c872e69055589936d5804334255ffc70a5892e) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "14120-00.106", 0x18000, 0x02000, CRC(4d2b7217) SHA1(c67cd8361077653f04fc02e8218fd933591d1e45) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "14121-01.107", 0x1a000, 0x02000, CRC(b987b97c) SHA1(d9fb7142cbb29ce4389f38416584037a398d3fe2) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - /* Extra banks ( referred to as the "top" board). Probably an add-on */ - ROM_LOAD( "14122-01.u2t", 0x28000, 0x02000, CRC(a89882d8) SHA1(fb17b527c65f5de271fa756d7e682449c76bd4ad) ) - ROM_RELOAD( 0x30000, 0x02000 ) - ROM_LOAD( "14123-01.u3t", 0x2a000, 0x02000, CRC(f9c51e5a) SHA1(a4ed976b9490457b54f2ac6528cf9f4d04732808) ) - ROM_RELOAD( 0x32000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "14100-01.u3", 0x00000, 0x02000, CRC(1dffbdaf) SHA1(15630a84c6034a13449cd481bcb6a93bdf009d1f) ) - ROM_LOAD( "14101-01.u4", 0x10000, 0x02000, CRC(c585529c) SHA1(208807c1f8761675903fcf3c590ba3920e980a8b) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "14102-01.u5", 0x12000, 0x02000, CRC(ace3f918) SHA1(d393f28d0b8c6faf4d76180208deb023f94277fc) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "14103-01.u6", 0x14000, 0x02000, CRC(cd41cf7a) SHA1(bed00824399cea55017d3cc026ae65ddf7edf5e5) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "14104-01.u7", 0x16000, 0x02000, CRC(9b169e78) SHA1(16ced9610cef997d21668230a5eed6bdfc1df4bd) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "14105-01.u8", 0x18000, 0x02000, CRC(ec596b43) SHA1(230cdfe0ab4dfd837b3fd66acc961a93e196ce2d) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "14106-01.u9", 0x1a000, 0x02000, CRC(b9656baa) SHA1(41b25ee6127981b703859c07f730e94f5694faff) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "14112-00.u93", 0x00000, 0x04000, CRC(8ccb1404) SHA1(28ef5a7da1b9edf7ecbba0fd473599df5d181602) ) - ROM_LOAD( "14113-00.u94", 0x04000, 0x04000, CRC(9941a55b) SHA1(6917b70bb2a7a23c0517fde43e9375a7dbd64c18) ) - ROM_LOAD( "14114-00.u95", 0x08000, 0x04000, CRC(b68baf47) SHA1(ea1d5efe696af56ef5b9161c00957b2a9c7ce372) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "14111-01.u92", 0x04000, 0x4000, CRC(2508a9ad) SHA1(f0a56d1b8dbe57b16dc1b3d21980149bbdcd0068) ) - ROM_LOAD( "14109-00.u69", 0x08000, 0x4000, CRC(b123a28e) SHA1(8d244db422aee9117e901e7d150cdefcbf96dd53) ) - /* U91 = Empty */ - ROM_LOAD( "14108-01.u68", 0x10000, 0x4000, CRC(a1a51383) SHA1(6b734c5d82fb8159768f8849a26f5569cab2f074) ) - ROM_LOAD( "14110-01.u90", 0x14000, 0x4000, CRC(ef01d997) SHA1(693bc42b0aaa436f2734efbe2cfb8c98ad4858c6) ) - ROM_LOAD( "14107-00.u67", 0x18000, 0x4000, CRC(976334e6) SHA1(5b2534f5ba697bd5bad0aef9cefbb7d1c421c06b) ) - /* 89 = Empty */ -ROM_END - - -ROM_START( dblplay ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) - ROM_LOAD( "15018-01.101", 0x00000, 0x02000, CRC(17b6af29) SHA1(00865927d74f735ed9bbe635bb554d408bf7f856) ) - ROM_LOAD( "15019-01.102", 0x10000, 0x02000, CRC(9fc8205e) SHA1(2b783c406539a3d06adacd6b15c8edd86b994561) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "15020-01.103", 0x12000, 0x02000, CRC(4edcc091) SHA1(5db2641fb92eeba22b731074e2818484aaa247a0) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "15021-01.104", 0x14000, 0x02000, CRC(a0eba1c7) SHA1(5d1afd2e6f694416ab64aec334ce6f7803dac93e) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "15022-01.105", 0x16000, 0x02000, CRC(7bbfe0b7) SHA1(551e4d48ffc8f3660d59bb4e59f73d438f4eb20d) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "15023-01.106", 0x18000, 0x02000, CRC(bbedae34) SHA1(4c15f63ea6ac822a6c9bc5c3b9f9e5a62e57b88c) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "15024-01.107", 0x1a000, 0x02000, CRC(02afcf52) SHA1(686332740733d92f87fb004de85be4cb9cbaabc0) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - /* Extra banks ( referred to as the "top" board). Probably an add-on */ - ROM_LOAD( "15025-01.u2t", 0x28000, 0x02000, CRC(1c959895) SHA1(efd40c1775f8283162602fdb490bfc18ee784a12) ) - ROM_RELOAD( 0x30000, 0x02000 ) - ROM_LOAD( "15026-01.u3t", 0x2a000, 0x02000, CRC(ed5196d6) SHA1(03dbc4fa30cee9e2cc132d1fa1e45ac9f503705a) ) - ROM_RELOAD( 0x32000, 0x02000 ) - ROM_LOAD( "15027-01.u4t", 0x2c000, 0x02000, CRC(9b1e72e9) SHA1(09609835b6951d3dc271e48c8bf91cbff99b6f50) ) - ROM_CONTINUE( 0x34000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "15000-01.u03", 0x00000, 0x02000, CRC(208a920a) SHA1(3544bd79e008f696a9ff400aad8bf0eb52a42451) ) - ROM_LOAD( "15001-01.u04", 0x10000, 0x02000, CRC(751c40d6) SHA1(00e0cba02916c641c85748a1b15af192aca5d60f) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "14402-01.u05", 0x12000, 0x02000, CRC(5ffaec36) SHA1(edb36f3f480f6a6ed3b030f7b90e6622b451d086) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "14403-01.u06", 0x14000, 0x02000, CRC(48d6d9d3) SHA1(6208f16883867448f478eb49155cd5dbcd25236b) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "15004-01.u07", 0x16000, 0x02000, CRC(6a7acebc) SHA1(133258a78fdb7b8dc08312e8619767fa694f175e) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "15005-01.u08", 0x18000, 0x02000, CRC(69d487c9) SHA1(217560f9cbb196970fb9ccbe32c640b376321b7e) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "15006-01.u09", 0x1a000, 0x02000, CRC(ab3aac49) SHA1(699a6a66e6b35f1b287ff1ab3a12365dbdc16041) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15015-01.u93", 0x00000, 0x04000, CRC(8ccb1404) SHA1(28ef5a7da1b9edf7ecbba0fd473599df5d181602) ) - ROM_LOAD( "15016-01.u94", 0x04000, 0x04000, CRC(9941a55b) SHA1(6917b70bb2a7a23c0517fde43e9375a7dbd64c18) ) - ROM_LOAD( "15017-01.u95", 0x08000, 0x04000, CRC(b68baf47) SHA1(ea1d5efe696af56ef5b9161c00957b2a9c7ce372) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "15014-01.u92", 0x04000, 0x4000, CRC(2508a9ad) SHA1(f0a56d1b8dbe57b16dc1b3d21980149bbdcd0068) ) - ROM_LOAD( "15009-01.u69", 0x08000, 0x4000, CRC(b123a28e) SHA1(8d244db422aee9117e901e7d150cdefcbf96dd53) ) - /* U91 = Empty */ - ROM_LOAD( "15008-01.u68", 0x10000, 0x4000, CRC(a1a51383) SHA1(6b734c5d82fb8159768f8849a26f5569cab2f074) ) - ROM_LOAD( "15012-01.u90", 0x14000, 0x4000, CRC(ef01d997) SHA1(693bc42b0aaa436f2734efbe2cfb8c98ad4858c6) ) - ROM_LOAD( "15007-01.u67", 0x18000, 0x4000, CRC(976334e6) SHA1(5b2534f5ba697bd5bad0aef9cefbb7d1c421c06b) ) - /* 89 = Empty */ -ROM_END - - -ROM_START( strkzone ) - ROM_REGION( 0x38000, REGION_CPU1, 0 ) - ROM_LOAD( "strkzone.101", 0x00000, 0x04000, CRC(8d83a611) SHA1(d17114559c8d60e3107895bdcb1886cc843b624c) ) - ROM_LOAD( "strkzone.102", 0x10000, 0x02000, CRC(3859e67d) SHA1(0a0d18c16fa5becae2ecc147dfafadc16dee8d2f) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "strkzone.103", 0x12000, 0x02000, CRC(cdd83bfb) SHA1(6d5c1e9e951a0bfdd79fd54b06e2e4f1bf8e37b4) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "strkzone.104", 0x14000, 0x02000, CRC(be280212) SHA1(f48f2edd41bd4f2729ee6c15fb228c758da40ea1) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "strkzone.105", 0x16000, 0x02000, CRC(afb63390) SHA1(42df802ca2a247b971ae274bd6f7d1f1e5893fe3) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "strkzone.106", 0x18000, 0x02000, CRC(e853b9f6) SHA1(07cc7bd0053422d68526a6e1b68165db60af6429) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "strkzone.107", 0x1a000, 0x02000, CRC(1b4b6c2d) SHA1(9cd5e5ce7bc3088f14b6cbbd7c2d5b5e69a7bc11) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - /* Extra banks ( referred to as the "top" board). Probably an add-on */ - ROM_LOAD( "strkzone.u2t", 0x28000, 0x02000, CRC(8e0af06f) SHA1(ad277433a2c97c388e626a0ce9119466dff85d37) ) - ROM_RELOAD( 0x30000, 0x02000 ) - ROM_LOAD( "strkzone.u3t", 0x2a000, 0x02000, CRC(909d35f3) SHA1(2ec51b1591990cf13b71d6c343bfe9540d3c2b69) ) - ROM_RELOAD( 0x32000, 0x02000 ) - ROM_LOAD( "strkzone.u4t", 0x2c000, 0x02000, CRC(9b1e72e9) SHA1(09609835b6951d3dc271e48c8bf91cbff99b6f50) ) - ROM_CONTINUE( 0x34000, 0x02000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) - ROM_LOAD( "strkzone.u3", 0x00000, 0x02000, CRC(40258fbe) SHA1(4a68dbf050455bf15fadef20f615ab1de194a1c2) ) - ROM_LOAD( "strkzone.u4", 0x10000, 0x02000, CRC(df7f2604) SHA1(4aed43905fedf84de683dea9785a73d6d9f89713) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "strkzone.u5", 0x12000, 0x02000, CRC(37885206) SHA1(60428a4ad16c452e7a90c6d2617c9905cef8ed0b) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "strkzone.u6", 0x14000, 0x02000, CRC(6892dc4f) SHA1(be0c8c0afed925e2e373e10b42c00f5ab6cfed40) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "strkzone.u7", 0x16000, 0x02000, CRC(6ac8f87c) SHA1(cf820922f09d503bdd73e20f9e5e786910ab2ab8) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "strkzone.u8", 0x18000, 0x02000, CRC(4b6d3725) SHA1(e7d1d31df3fd10dd51a6969a0ca688a4b7e3d3f1) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "strkzone.u9", 0x1a000, 0x02000, CRC(ab3aac49) SHA1(699a6a66e6b35f1b287ff1ab3a12365dbdc16041) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "strkzone.u93", 0x00000, 0x04000, CRC(8ccb1404) SHA1(28ef5a7da1b9edf7ecbba0fd473599df5d181602) ) - ROM_LOAD( "strkzone.u94", 0x04000, 0x04000, CRC(9941a55b) SHA1(6917b70bb2a7a23c0517fde43e9375a7dbd64c18) ) - ROM_LOAD( "strkzone.u95", 0x08000, 0x04000, CRC(b68baf47) SHA1(ea1d5efe696af56ef5b9161c00957b2a9c7ce372) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* U70 = Empty */ - ROM_LOAD( "strkzone.u92", 0x04000, 0x4000, CRC(2508a9ad) SHA1(f0a56d1b8dbe57b16dc1b3d21980149bbdcd0068) ) - ROM_LOAD( "strkzone.u69", 0x08000, 0x4000, CRC(b123a28e) SHA1(8d244db422aee9117e901e7d150cdefcbf96dd53) ) - /* U91 = Empty */ - ROM_LOAD( "strkzone.u68", 0x10000, 0x4000, CRC(a1a51383) SHA1(6b734c5d82fb8159768f8849a26f5569cab2f074) ) - ROM_LOAD( "strkzone.u90", 0x14000, 0x4000, CRC(ef01d997) SHA1(693bc42b0aaa436f2734efbe2cfb8c98ad4858c6) ) - ROM_LOAD( "strkzone.u67", 0x18000, 0x4000, CRC(976334e6) SHA1(5b2534f5ba697bd5bad0aef9cefbb7d1c421c06b) ) - /* 89 = Empty */ -ROM_END - - -ROM_START( redlin2p ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "13932-01.23t", 0x00000, 0x10000, CRC(ecdf0fbe) SHA1(186e1cecadb84b5085d9ccbf6512553a80b9ebfb) ) - ROM_LOAD( "13931-01.22t", 0x10000, 0x10000, CRC(16d01978) SHA1(6882eac35a54a91f12a8d37a4f83d7ca0dc65ef5) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "13907-01.u3", 0x00000, 0x04000, CRC(b760d63e) SHA1(b117fd1f96b861abefedd049a305b60c964aadad) ) - ROM_LOAD( "13908-01.u4", 0x10000, 0x02000, CRC(a30739d3) SHA1(eefce1f11ead0ca4c7fc3ed3102fbdb8bfbf3cbc) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "13909-01.u5", 0x12000, 0x02000, CRC(aaf16ad7) SHA1(d08d224ecb824204143e9fd1b1657dc2dd6035e6) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "13910-01.u6", 0x14000, 0x02000, CRC(d03469eb) SHA1(78bda66821cc458be58ae179c0d39879b9f02282) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "13911-01.u7", 0x16000, 0x02000, CRC(8ee1f547) SHA1(05ef34786f0e26f5d891f5b25c007956b92bf0cb) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "13912-01.u8", 0x18000, 0x02000, CRC(e5b57eac) SHA1(b31f38ddfdf896cc90703df486b840214ed16a7f) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "13913-01.u9", 0x1a000, 0x02000, CRC(02886071) SHA1(699f13677a3e76e8ec2ec73e62d4da4038f9f85d) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "17t", 0x0e0001, 0x10000, CRC(8d26f221) SHA1(cd5b1d88fec0ff1ab7af554a9fcffc43d33a12e7) ) - ROM_LOAD16_BYTE( "28t", 0x0e0000, 0x10000, CRC(7aa21b2c) SHA1(5fd9f49d4bb1dc28393b9df76dfa19e28677639b) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "13930-01.u93", 0x00000, 0x04000, CRC(0721f42e) SHA1(fe3d447316b1e6c7c1b6849319fad1aebe5e6aa1) ) - ROM_LOAD( "13929-01.u94", 0x04000, 0x04000, CRC(1522e7b2) SHA1(540fc55013a22a5afb32a89b42ef9b11dbe36d97) ) - ROM_LOAD( "13928-01.u95", 0x08000, 0x04000, CRC(c321b5d1) SHA1(d1524165e71fe200cab6fd6f6327da0e6efc6868) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "13920-01.u70", 0x00000, 0x4000, CRC(f343d34a) SHA1(161348e082afeb69862c3752f4dd536166edad21) ) - ROM_LOAD( "13921-01.u92", 0x04000, 0x4000, CRC(c9ba8d41) SHA1(777a504e3ffe6c3da94f71eb1b14e05dc861db66) ) - ROM_LOAD( "13922-01.u69", 0x08000, 0x4000, CRC(276cfba0) SHA1(4b252f21e2d1314801cf9329ed9383ff9158c382) ) - ROM_LOAD( "13923-01.u91", 0x0c000, 0x4000, CRC(4a88ea34) SHA1(e79cc404f435789ef8f62c6bef03af1b9b89caeb) ) - ROM_LOAD( "13924-01.u68", 0x10000, 0x4000, CRC(3995cb7e) SHA1(4a77d3c71e2a8240a21a82ac946804895f4af959) ) - /* 90 = empty / missing */ - ROM_LOAD( "13926-01.u67", 0x18000, 0x4000, CRC(daa30add) SHA1(e9c066406c2d50ab3fc8eea8a97a181ad8c950c7) ) - ROM_LOAD( "13927-01.u89", 0x1c000, 0x4000, CRC(30e60fb5) SHA1(374c84358d2b7ae7c74321996797af9adbc2a155) ) - - ROM_REGION( 0x0300, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-2601.25t", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pl20x10-0501.u21", 0x0200, 0x00cc, CRC(09ef7a46) SHA1(c37b10d268bf730a68748eee085b9d3757ee45b3) ) -ROM_END - - -ROM_START( quarterb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "15219-05.49t", 0x00000, 0x10000, CRC(ff653e4f) SHA1(761e18ccbdc1c559648c47d06ee21a8a4710c5a0) ) - ROM_LOAD( "15218-05.48t", 0x10000, 0x10000, CRC(34b83d81) SHA1(0425638063872ff562939439871631f7aa642182) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "15200-01.u3", 0x00000, 0x04000, CRC(83297861) SHA1(9d836f647491af945de021fbf8c75159b32c22c9) ) - ROM_LOAD( "15201-01.u4", 0x10000, 0x02000, CRC(af8dbdab) SHA1(663a32b55ef0337074a223288e59b53c4a10b616) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "15202-01.u5", 0x12000, 0x02000, CRC(3eeecb3d) SHA1(ee2a7a2dba8137c6e414f74300b445db9141a49d) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "15203-01.u6", 0x14000, 0x02000, CRC(b9c5b663) SHA1(5948f77301446dcab64d787ae6f2c49bee666a7b) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "15204-01.u7", 0x16000, 0x02000, CRC(c68821b7) SHA1(bd68282453ab2752a31681a2c5f31361a704bc07) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "15205-01.u8", 0x18000, 0x02000, CRC(2be843a9) SHA1(a77c84ab95e20dfef09ff2c34b302b2c4ec87f02) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "15206-01.u9", 0x1a000, 0x02000, CRC(6bf8d4ab) SHA1(cc9b3f1e651b2a667f17553aac655f0039983890) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "15222-02.45t", 0x040001, 0x10000, CRC(710bdc76) SHA1(610f7baa17adf2d16c9494b05556b49ae376fe81) ) - ROM_LOAD16_BYTE( "15225-02.62t", 0x040000, 0x10000, CRC(041cecde) SHA1(91556a393d61979d3e92f75142832353e9081a15) ) - ROM_LOAD16_BYTE( "15221-02.44t", 0x060001, 0x10000, CRC(e0459ddb) SHA1(811896fe3398ecc322ca20c2376b715b2d44992e) ) - ROM_LOAD16_BYTE( "15224-02.61t", 0x060000, 0x10000, CRC(9027c579) SHA1(47177f9c42d134ec44a8b1aad17012dd971cf1fd) ) - ROM_LOAD16_BYTE( "15220-02.43t", 0x0e0001, 0x10000, CRC(48a8a018) SHA1(f50d66feeab32f1edc47f4b3f33e579c06fd979e) ) - ROM_LOAD16_BYTE( "15223-02.60t", 0x0e0000, 0x10000, CRC(6a299766) SHA1(4e5b1f930f668302496a314bbe8876a21012fb20) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15215-01.u93", 0x00000, 0x04000, CRC(4fb678d7) SHA1(ca729ca8d2ba1e22a7b650ddfc330e85e294e48f) ) - ROM_LOAD( "lelqb.94", 0x04000, 0x04000, CRC(7b57a44c) SHA1(b28ecdc8b1579e677a58a4b5257d5d754783148f) ) - ROM_LOAD( "lelqb.95", 0x08000, 0x04000, CRC(29bc33fd) SHA1(e85d20b24144c5b0f6ffa6dc96f1abb35bce437a) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "15210-01.u70", 0x00000, 0x4000, CRC(a5aea20e) SHA1(c5b40bdb63cd29386f73e69b814c37eb43dadbac) ) - ROM_LOAD( "15214-01.u92", 0x04000, 0x4000, CRC(36f261ca) SHA1(d42868c9ace5bec75b74268393755340ccafea59) ) - ROM_LOAD( "15209-01.u69", 0x08000, 0x4000, CRC(0f5d74a4) SHA1(76bd78153a5f986ffdd0db606a1e2a0b895b4832) ) - /* 91 = empty */ - ROM_LOAD( "15208-01.u68", 0x10000, 0x4000, CRC(0319aec7) SHA1(e4f14ce9b4712c1cee69141165d187e9068101fc) ) - ROM_LOAD( "15212-01.u90", 0x14000, 0x4000, CRC(38b298d6) SHA1(fa22d8d5fa66f1f7f052541f21408a6d755a1317) ) - ROM_LOAD( "15207-01.u67", 0x18000, 0x4000, CRC(5ff86aad) SHA1(6c2704dc4a934270e7080c610181018c9c5e10c5) ) - /* 89 = empty */ -ROM_END - - -ROM_START( quartrba ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "15219-02.49t", 0x00000, 0x10000, CRC(7fbe1e5a) SHA1(a4af54328935e348f2903fe7f7dea8612660b899) ) - ROM_LOAD( "15218-02.48t", 0x10000, 0x10000, CRC(6fbd4b27) SHA1(8146f276af5e3ef968851fa95c8f979b8b969ef6) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "15200-01.u3", 0x00000, 0x04000, CRC(83297861) SHA1(9d836f647491af945de021fbf8c75159b32c22c9) ) - ROM_LOAD( "15201-01.u4", 0x10000, 0x02000, CRC(af8dbdab) SHA1(663a32b55ef0337074a223288e59b53c4a10b616) ) - ROM_CONTINUE( 0x1c000, 0x02000 ) - ROM_LOAD( "15202-01.u5", 0x12000, 0x02000, CRC(3eeecb3d) SHA1(ee2a7a2dba8137c6e414f74300b445db9141a49d) ) - ROM_CONTINUE( 0x1e000, 0x02000 ) - ROM_LOAD( "15203-01.u6", 0x14000, 0x02000, CRC(b9c5b663) SHA1(5948f77301446dcab64d787ae6f2c49bee666a7b) ) - ROM_CONTINUE( 0x20000, 0x02000 ) - ROM_LOAD( "15204-01.u7", 0x16000, 0x02000, CRC(c68821b7) SHA1(bd68282453ab2752a31681a2c5f31361a704bc07) ) - ROM_CONTINUE( 0x22000, 0x02000 ) - ROM_LOAD( "15205-01.u8", 0x18000, 0x02000, CRC(2be843a9) SHA1(a77c84ab95e20dfef09ff2c34b302b2c4ec87f02) ) - ROM_CONTINUE( 0x24000, 0x02000 ) - ROM_LOAD( "15206-01.u9", 0x1a000, 0x02000, CRC(6bf8d4ab) SHA1(cc9b3f1e651b2a667f17553aac655f0039983890) ) - ROM_CONTINUE( 0x26000, 0x02000 ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "15222-01.45t", 0x040001, 0x10000, CRC(722d1a19) SHA1(b7c7c606798c4357cee58b64d95f2f6a6172d72e) ) - ROM_LOAD16_BYTE( "15225-01.62t", 0x040000, 0x10000, CRC(f8c20496) SHA1(5f948a56743127e19d9fbd888b546ce82c0b05f6) ) - ROM_LOAD16_BYTE( "15221-01.44t", 0x060001, 0x10000, CRC(bc6abaaf) SHA1(2ca9116c1861d7089679de034c2255bc51179338) ) - ROM_LOAD16_BYTE( "15224-01.61t", 0x060000, 0x10000, CRC(7ce3c3b7) SHA1(fa85a9159895e26dff03cc6955fdd880213a0dec) ) - ROM_LOAD16_BYTE( "15220-01.43t", 0x0e0001, 0x10000, CRC(ccb6c8d7) SHA1(bafe1ba6259f396cfa91fc6d2ff7832199763f3e) ) - ROM_LOAD16_BYTE( "15223-01.60t", 0x0e0000, 0x10000, CRC(c0ee425d) SHA1(4edbd62b8bb7f814e7ffa3111e6fb1e8b6615ae8) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15215-01.u93", 0x00000, 0x04000, CRC(4fb678d7) SHA1(ca729ca8d2ba1e22a7b650ddfc330e85e294e48f) ) - ROM_LOAD( "lelqb.94", 0x04000, 0x04000, CRC(7b57a44c) SHA1(b28ecdc8b1579e677a58a4b5257d5d754783148f) ) - ROM_LOAD( "lelqb.95", 0x08000, 0x04000, CRC(29bc33fd) SHA1(e85d20b24144c5b0f6ffa6dc96f1abb35bce437a) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "15210-01.u70", 0x00000, 0x4000, CRC(a5aea20e) SHA1(c5b40bdb63cd29386f73e69b814c37eb43dadbac) ) - ROM_LOAD( "15214-01.u92", 0x04000, 0x4000, CRC(36f261ca) SHA1(d42868c9ace5bec75b74268393755340ccafea59) ) - ROM_LOAD( "15209-01.u69", 0x08000, 0x4000, CRC(0f5d74a4) SHA1(76bd78153a5f986ffdd0db606a1e2a0b895b4832) ) - /* 91 = empty */ - ROM_LOAD( "15208-01.u68", 0x10000, 0x4000, CRC(0319aec7) SHA1(e4f14ce9b4712c1cee69141165d187e9068101fc) ) - ROM_LOAD( "15212-01.u90", 0x14000, 0x4000, CRC(38b298d6) SHA1(fa22d8d5fa66f1f7f052541f21408a6d755a1317) ) - ROM_LOAD( "15207-01.u67", 0x18000, 0x4000, CRC(5ff86aad) SHA1(6c2704dc4a934270e7080c610181018c9c5e10c5) ) - /* 89 = empty */ -ROM_END - - -ROM_START( viper ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "15617-03.49t", 0x00000, 0x10000, CRC(7e4688a6) SHA1(282f98d22447b2f93d6f328a351ce1613a33069b) ) - ROM_LOAD( "15616-03.48t", 0x10000, 0x10000, CRC(3fe2f0bf) SHA1(2a1a7d1654e5f45a5b30374596865006e80928f5) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "15600-02.u3", 0x00000, 0x02000, CRC(0f57f68a) SHA1(2cb132eb41da5f8a90f83e54a6a8c00a62b66949) ) - ROM_LOAD( "viper.u2t", 0x10000, 0x10000, CRC(4043d4ee) SHA1(70ebb98444f13a25cdcd8d31ee47a20af7df5613) ) - ROM_LOAD( "viper.u3t", 0x20000, 0x10000, CRC(213bc02b) SHA1(53fadd81a0138525d3d39fd9c2ea258f90b2e6e7) ) - ROM_LOAD( "viper.u4t", 0x30000, 0x10000, CRC(ce0b95b4) SHA1(1a322714ce1e9e5589da9966f2e684e9a2c22592) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "15620-02.45t", 0x040001, 0x10000, CRC(7380ece1) SHA1(c131c80c67503785ba1ec5b31366cd72f0f7e0e3) ) - ROM_LOAD16_BYTE( "15623-02.62t", 0x040000, 0x10000, CRC(2921d8f9) SHA1(5ce6752ef3928b40263efdcd81fae376e2d86e36) ) - ROM_LOAD16_BYTE( "15619-02.44t", 0x060001, 0x10000, CRC(c8507cc2) SHA1(aae9f19b3bc6790a137d94e3c4bb3e61e8670b42) ) - ROM_LOAD16_BYTE( "15622-02.61t", 0x060000, 0x10000, CRC(32dfda37) SHA1(bbd643239add553e61735c2997bb4ffdbe67d9e1) ) - ROM_LOAD16_BYTE( "15618-02.43t", 0x0e0001, 0x10000, CRC(5562e0c3) SHA1(4c7b0cedc5adc4e24a1cd6010591205ddb16d554) ) - ROM_LOAD16_BYTE( "15621-02.60t", 0x0e0000, 0x10000, CRC(cb468f2b) SHA1(f37596c781b1d7c49d8f62d289c15a2ae0d752cc) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15609-01.u93", 0x00000, 0x04000, CRC(08ad92e9) SHA1(6eaffd58f03db3a67871ce7390b01754842e2574) ) - ROM_LOAD( "15610-01.u94", 0x04000, 0x04000, CRC(d4e56dfb) SHA1(0fc83847b8629534b15f9366f197c87e3c81c61a) ) - ROM_LOAD( "15611-01.u95", 0x08000, 0x04000, CRC(3a2c46fb) SHA1(e96849447852a9922e72f7f1908c76fea3c603c4) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "15604-01.u70", 0x00000, 0x4000, CRC(7e3b0cce) SHA1(d9002df27e3de28d40a9cfb081512526987377b2) ) - ROM_LOAD( "15608-01.u92", 0x04000, 0x4000, CRC(a9bde0ef) SHA1(84f55bc62fc49ae0232ada2ac192c5c8a2519703) ) - ROM_LOAD( "15603-01.u69", 0x08000, 0x4000, CRC(aecc9516) SHA1(513ae810d62d5df29a96a567a7c024f12c6837d5) ) - ROM_LOAD( "15607-01.u91", 0x0c000, 0x4000, CRC(14f06f88) SHA1(7e76b5b7d74635dff2dd2245d345beee5c0ee46e) ) - ROM_LOAD( "15602-01.u68", 0x10000, 0x4000, CRC(4ef613ad) SHA1(b08445056038fdef90bd9de0a4effdfd18f81e15) ) - ROM_LOAD( "15606-01.u90", 0x14000, 0x4000, CRC(3c2e8e76) SHA1(f526240df82e14102854de8e391571f747dfa405) ) - ROM_LOAD( "15601-01.u67", 0x18000, 0x4000, CRC(dc7006cd) SHA1(d828b9c7a43c1b37aa55d1c5891fe0744ea78595) ) - ROM_LOAD( "15605-01.u89", 0x1c000, 0x4000, CRC(4aa9c788) SHA1(77095d7ce4949db3c39c19d131d2902e4099b6d4) ) -ROM_END - - -ROM_START( teamqb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "15618-03.58t", 0x00000, 0x10000, CRC(b32568dc) SHA1(92fb8dd89cc7838129e7b106bc0e35107372904f) ) - ROM_LOAD( "15619-03.59t", 0x10000, 0x10000, CRC(40b3319f) SHA1(26c6e26cd440fc7e1ab5ee7536e17a1c00b83f44) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "15600-01.u3", 0x00000, 0x02000, CRC(46615844) SHA1(cb73dd73d389d1f6a5da91d0935b5461649ba706) ) - ROM_LOAD( "15601-01.u2t", 0x10000, 0x10000, CRC(8e523c58) SHA1(7f1133144177c39849fd6355bf9250895b2d597f) ) - ROM_LOAD( "15602-01.u3t", 0x20000, 0x10000, CRC(545b27a1) SHA1(1e8beebc1384cf6513bff7c2381ca214967ff135) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "15607-01.u8t", 0x70000, 0x10000, CRC(57cb6d2d) SHA1(56e364aedca25935a5cd7ab4460d9213fcc58b4a) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "15623-01.25t", 0x040001, 0x10000, CRC(710bdc76) SHA1(610f7baa17adf2d16c9494b05556b49ae376fe81) ) - ROM_LOAD16_BYTE( "15620-01.13t", 0x040000, 0x10000, CRC(7e5cb8ad) SHA1(aaff4e93053638955b95951dceea3b35e842e80f) ) - ROM_LOAD16_BYTE( "15624-01.26t", 0x060001, 0x10000, CRC(dd090d33) SHA1(09a3fa4fa3a50c6692be2bc5fec2c4e9a5072d5d) ) - ROM_LOAD16_BYTE( "15621-01.14t", 0x060000, 0x10000, CRC(f68c68c9) SHA1(a7d77c36831d455a8c36d2156460287cf28c9694) ) - ROM_LOAD16_BYTE( "15625-01.27t", 0x0e0001, 0x10000, CRC(ac442523) SHA1(d05dcc413eb39b0938890ef80ec7b636773bb1a3) ) - ROM_LOAD16_BYTE( "15622-01.15t", 0x0e0000, 0x10000, CRC(9e84509a) SHA1(4c3a3e5192ba6c38d8391eedf817350795bddb8f) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15615-01.u93", 0x00000, 0x04000, CRC(a7ea6a87) SHA1(5cfd9ed6a5ffc8e86d18b7d8496761b9086b6368) ) - ROM_LOAD( "15616-01.u94", 0x04000, 0x04000, CRC(4a9b3900) SHA1(00398cc5056c999673604e414c9c0338d83b13d4) ) - ROM_LOAD( "15617-01.u95", 0x08000, 0x04000, CRC(2cd95edb) SHA1(939ff97562535b05f427186b085a74a8fe5a332a) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "15611-01.u70", 0x00000, 0x4000, CRC(bf2695fb) SHA1(58a6d1e9e83912f7567eabdf54278db85061c284) ) - ROM_LOAD( "15614-01.u92", 0x04000, 0x4000, CRC(c93fd870) SHA1(1086334496a4d1900a2d697cbd2575a77df89d65) ) - ROM_LOAD( "15610-01.u69", 0x08000, 0x4000, CRC(3e5b786f) SHA1(13d2ab7b6a1182933272b597718d3e715b547a10) ) - /* 91 = empty */ - ROM_LOAD( "15609-01.u68", 0x10000, 0x4000, CRC(0319aec7) SHA1(e4f14ce9b4712c1cee69141165d187e9068101fc) ) - ROM_LOAD( "15613-01.u90", 0x14000, 0x4000, CRC(4805802e) SHA1(a121aec2b0340773288687baccf85519c0ef3160) ) - ROM_LOAD( "15608-01.u67", 0x18000, 0x4000, CRC(78f0fd2b) SHA1(e83b1106411bb03c64a985a08c5f20c2eb397140) ) - /* 89 = empty */ -ROM_END - - -ROM_START( teamqb2 ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "15618-03.58t", 0x00000, 0x10000, CRC(b32568dc) SHA1(92fb8dd89cc7838129e7b106bc0e35107372904f) ) - ROM_LOAD( "15619-02.59t", 0x10000, 0x10000, CRC(6d533714) SHA1(ab177aaa5b034250c85bde0c2441902f72d44f42) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "15600-01.u3", 0x00000, 0x02000, CRC(46615844) SHA1(cb73dd73d389d1f6a5da91d0935b5461649ba706) ) - ROM_LOAD( "15601-01.u2t", 0x10000, 0x10000, CRC(8e523c58) SHA1(7f1133144177c39849fd6355bf9250895b2d597f) ) - ROM_LOAD( "15602-01.u3t", 0x20000, 0x10000, CRC(545b27a1) SHA1(1e8beebc1384cf6513bff7c2381ca214967ff135) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "15607-01.u8t", 0x70000, 0x10000, CRC(57cb6d2d) SHA1(56e364aedca25935a5cd7ab4460d9213fcc58b4a) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "15623-01.25t", 0x040001, 0x10000, CRC(710bdc76) SHA1(610f7baa17adf2d16c9494b05556b49ae376fe81) ) - ROM_LOAD16_BYTE( "15620-01.13t", 0x040000, 0x10000, CRC(7e5cb8ad) SHA1(aaff4e93053638955b95951dceea3b35e842e80f) ) - ROM_LOAD16_BYTE( "15624-01.26t", 0x060001, 0x10000, CRC(dd090d33) SHA1(09a3fa4fa3a50c6692be2bc5fec2c4e9a5072d5d) ) - ROM_LOAD16_BYTE( "15621-01.14t", 0x060000, 0x10000, CRC(f68c68c9) SHA1(a7d77c36831d455a8c36d2156460287cf28c9694) ) - ROM_LOAD16_BYTE( "15625-01.27t", 0x0e0001, 0x10000, CRC(ac442523) SHA1(d05dcc413eb39b0938890ef80ec7b636773bb1a3) ) - ROM_LOAD16_BYTE( "15622-01.15t", 0x0e0000, 0x10000, CRC(9e84509a) SHA1(4c3a3e5192ba6c38d8391eedf817350795bddb8f) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "15615-01.u93", 0x00000, 0x04000, CRC(a7ea6a87) SHA1(5cfd9ed6a5ffc8e86d18b7d8496761b9086b6368) ) - ROM_LOAD( "15616-01.u94", 0x04000, 0x04000, CRC(4a9b3900) SHA1(00398cc5056c999673604e414c9c0338d83b13d4) ) - ROM_LOAD( "15617-01.u95", 0x08000, 0x04000, CRC(2cd95edb) SHA1(939ff97562535b05f427186b085a74a8fe5a332a) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "15611-01.u70", 0x00000, 0x4000, CRC(bf2695fb) SHA1(58a6d1e9e83912f7567eabdf54278db85061c284) ) - ROM_LOAD( "15614-01.u92", 0x04000, 0x4000, CRC(c93fd870) SHA1(1086334496a4d1900a2d697cbd2575a77df89d65) ) - ROM_LOAD( "15610-01.u69", 0x08000, 0x4000, CRC(3e5b786f) SHA1(13d2ab7b6a1182933272b597718d3e715b547a10) ) - /* 91 = empty */ - ROM_LOAD( "15609-01.u68", 0x10000, 0x4000, CRC(0319aec7) SHA1(e4f14ce9b4712c1cee69141165d187e9068101fc) ) - ROM_LOAD( "15613-01.u90", 0x14000, 0x4000, CRC(4805802e) SHA1(a121aec2b0340773288687baccf85519c0ef3160) ) - ROM_LOAD( "15608-01.u67", 0x18000, 0x4000, CRC(78f0fd2b) SHA1(e83b1106411bb03c64a985a08c5f20c2eb397140) ) - /* 89 = empty */ -ROM_END - - -ROM_START( aafb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "03-28011.u58", 0x00000, 0x10000, CRC(fa75a4a0) SHA1(ff37d71d8f2776a8ae9b15f95f105f282b079c5b) ) - ROM_LOAD( "03-28012.u59", 0x10000, 0x10000, CRC(ab6a606f) SHA1(6c8872c73b26760517884b2996a0f3834b16b480) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "03-28000.u3", 0x00000, 0x02000, CRC(cb531986) SHA1(e3bc3fdd1471719e0489d9990302a267a2cedc23) ) - ROM_LOAD( "26001-01.2t", 0x10000, 0x10000, CRC(f118b9b4) SHA1(95d0ae9055cf60e2d0b414ab64632fed1f48bf99) ) - ROM_LOAD( "24002-02.u3t", 0x20000, 0x10000, CRC(bbb92184) SHA1(d9890d1c95fb19e9fff6465c977cabf71e4528b4) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "03-28002.u8", 0x70000, 0x10000, CRC(c3e09811) SHA1(9b6e036a53000c9bcb104677d9c71743f02fd841) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "24019-01.u25", 0x040001, 0x10000, CRC(9e344768) SHA1(7f16d29c52f3d7f0046f414185c4d889f6128597) ) - ROM_LOAD16_BYTE( "24016-01.u13", 0x040000, 0x10000, CRC(6997025f) SHA1(5eda3bcae896933385fe97a4e1396ae2da7576cb) ) - ROM_LOAD16_BYTE( "24020-01.u26", 0x060001, 0x10000, CRC(0788f2a5) SHA1(75eb1ab00185f8efa71f1d46197b5f6d20d721f2) ) - ROM_LOAD16_BYTE( "24017-01.u14", 0x060000, 0x10000, CRC(a48bd721) SHA1(e099074165594a7c289a25c522005db7e9554ca1) ) - ROM_LOAD16_BYTE( "24021-01.u27", 0x0e0001, 0x10000, CRC(94081899) SHA1(289eb2f494d1110d169552e8898296e4a47fcb1d) ) - ROM_LOAD16_BYTE( "24018-01.u15", 0x0e0000, 0x10000, CRC(76eb6077) SHA1(255731c63f4a846bb01d4203a786eb34a4734e66) ) - - ROM_REGION( 0x0c000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "03-28008.u93", 0x00000, 0x04000, NO_DUMP ) - ROM_LOAD( "03-28009.u94", 0x04000, 0x04000, CRC(669791ac) SHA1(e8b7bdec313ea9d40f89f13499a31f0b125951a8) ) - ROM_LOAD( "03-28010.u95", 0x08000, 0x04000, CRC(bd62aa8a) SHA1(c8a177a11ec94671bb3bd5883b40692495c049a2) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "03-28005.u70", 0x00000, 0x4000, CRC(5ca6f4e2) SHA1(76c86d432fac27d0b30f38e12d340b013baf0dd4) ) - ROM_LOAD( "03-28007.u92", 0x04000, 0x4000, CRC(1d9e33c2) SHA1(0b05d1dc20eb9dd803056113265ac6a43291711b) ) - ROM_LOAD( "03-28004.u69", 0x08000, 0x4000, CRC(d4b8a471) SHA1(a9940f749a756409da303c1ebbd2382f635e9a3f) ) - /* 91 = empty */ - /* 68 = empty */ - ROM_LOAD( "03-28006.u90", 0x14000, 0x4000, CRC(e68c8b6e) SHA1(94f2774d1713fadf0e644641bc0226fd03040bf8) ) - ROM_LOAD( "03-28003.u67", 0x18000, 0x4000, CRC(c92f6357) SHA1(07fa8f9e07aafbe844e11cd6f9a0cbe65625dc53) ) - /* 89 = empty */ -ROM_END - - -ROM_START( aafbb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "24014-02.u58", 0x00000, 0x10000, CRC(5db4a3d0) SHA1(f759ab16de48562db1640bc5df68be188725aecf) ) - ROM_LOAD( "24015-02.u59", 0x10000, 0x10000, CRC(f384f716) SHA1(e689ec6b76bfdf58a059409850c397d407740dda) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "24000-02.u3", 0x00000, 0x02000, CRC(52df0354) SHA1(a39a2538b733e336eac5a1491c42c89fd4f4d1aa) ) - ROM_LOAD( "24001-02.u2t", 0x10000, 0x10000, CRC(9b20697d) SHA1(ccb9851e5db4360731f19e5446a0ef9205110860) ) - ROM_LOAD( "24002-02.u3t", 0x20000, 0x10000, CRC(bbb92184) SHA1(d9890d1c95fb19e9fff6465c977cabf71e4528b4) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "24002-02.u8t", 0x70000, 0x10000, CRC(3d9747c9) SHA1(4624ac39ff5336b0fd8c70bf35685041d5c38b1c) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "24019-01.u25", 0x040001, 0x10000, CRC(9e344768) SHA1(7f16d29c52f3d7f0046f414185c4d889f6128597) ) - ROM_LOAD16_BYTE( "24016-01.u13", 0x040000, 0x10000, CRC(6997025f) SHA1(5eda3bcae896933385fe97a4e1396ae2da7576cb) ) - ROM_LOAD16_BYTE( "24020-01.u26", 0x060001, 0x10000, CRC(0788f2a5) SHA1(75eb1ab00185f8efa71f1d46197b5f6d20d721f2) ) - ROM_LOAD16_BYTE( "24017-01.u14", 0x060000, 0x10000, CRC(a48bd721) SHA1(e099074165594a7c289a25c522005db7e9554ca1) ) - ROM_LOAD16_BYTE( "24021-01.u27", 0x0e0001, 0x10000, CRC(94081899) SHA1(289eb2f494d1110d169552e8898296e4a47fcb1d) ) - ROM_LOAD16_BYTE( "24018-01.u15", 0x0e0000, 0x10000, CRC(76eb6077) SHA1(255731c63f4a846bb01d4203a786eb34a4734e66) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "24011-02.u93", 0x00000, 0x08000, CRC(71f4425b) SHA1(074c79d709bf9e927f538932ef05b13e5e649197) ) - ROM_LOAD( "24012-02.u94", 0x08000, 0x08000, CRC(b2499547) SHA1(cf5979e56cc307133cbdbfdba448cdf3087eaf8c) ) - ROM_LOAD( "24013-02.u95", 0x10000, 0x08000, CRC(0a604e0d) SHA1(08917c3e9fb408b8e128fe2e3617c8c17d964d66) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "24007-01.u70", 0x00000, 0x4000, CRC(40e46aa4) SHA1(e8a27c9007218906683eac29affdd748f64cc6e6) ) - ROM_LOAD( "24010-01.u92", 0x04000, 0x4000, CRC(78705f42) SHA1(4b941df0690a8ce4e390b0488a7ce7e083f52ff3) ) - ROM_LOAD( "24006-01.u69", 0x08000, 0x4000, CRC(6a576aa9) SHA1(8849929c66012de6d2d8c1b4faefe71f11133aac) ) - ROM_LOAD( "24009-02.u91", 0x0c000, 0x4000, CRC(b857a1ad) SHA1(40aeb6afb115af14530177f05100b7cf4baf330a) ) - ROM_LOAD( "24005-02.u68", 0x10000, 0x4000, CRC(8ea75319) SHA1(8651346030e51f19bd77d0ddd76a2544e951b12e) ) - ROM_LOAD( "24008-01.u90", 0x14000, 0x4000, CRC(4538bc58) SHA1(a568e392771398f60b2aa0f83425935fc7198f72) ) - ROM_LOAD( "24004-02.u67", 0x18000, 0x4000, CRC(cd7a3338) SHA1(c91d277578ad9d039f2febdd15d977d7259e5fc8) ) - /* 89 = empty */ -ROM_END - - -ROM_START( aafbc ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "u58t.bin", 0x00000, 0x10000, CRC(25cc4ccc) SHA1(0fe02e23942a10bb9a46524e75705f10fbb0a79a) ) - ROM_LOAD( "u59t.bin", 0x10000, 0x10000, CRC(bfa1b56f) SHA1(b5dba27bfcd47cfeebdcf99e9d5f978d5d7f4fb3) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "24000-02.u3", 0x00000, 0x02000, CRC(52df0354) SHA1(a39a2538b733e336eac5a1491c42c89fd4f4d1aa) ) - ROM_LOAD( "24001-02.u2t", 0x10000, 0x10000, CRC(9b20697d) SHA1(ccb9851e5db4360731f19e5446a0ef9205110860) ) - ROM_LOAD( "24002-02.u3t", 0x20000, 0x10000, CRC(bbb92184) SHA1(d9890d1c95fb19e9fff6465c977cabf71e4528b4) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "24002-02.u8t", 0x70000, 0x10000, CRC(3d9747c9) SHA1(4624ac39ff5336b0fd8c70bf35685041d5c38b1c) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "24019-01.u25", 0x040001, 0x10000, CRC(9e344768) SHA1(7f16d29c52f3d7f0046f414185c4d889f6128597) ) - ROM_LOAD16_BYTE( "24016-01.u13", 0x040000, 0x10000, CRC(6997025f) SHA1(5eda3bcae896933385fe97a4e1396ae2da7576cb) ) - ROM_LOAD16_BYTE( "24020-01.u26", 0x060001, 0x10000, CRC(0788f2a5) SHA1(75eb1ab00185f8efa71f1d46197b5f6d20d721f2) ) - ROM_LOAD16_BYTE( "24017-01.u14", 0x060000, 0x10000, CRC(a48bd721) SHA1(e099074165594a7c289a25c522005db7e9554ca1) ) - ROM_LOAD16_BYTE( "24021-01.u27", 0x0e0001, 0x10000, CRC(94081899) SHA1(289eb2f494d1110d169552e8898296e4a47fcb1d) ) - ROM_LOAD16_BYTE( "24018-01.u15", 0x0e0000, 0x10000, CRC(76eb6077) SHA1(255731c63f4a846bb01d4203a786eb34a4734e66) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "24011-02.u93", 0x00000, 0x08000, CRC(71f4425b) SHA1(074c79d709bf9e927f538932ef05b13e5e649197) ) - ROM_LOAD( "24012-02.u94", 0x08000, 0x08000, CRC(b2499547) SHA1(cf5979e56cc307133cbdbfdba448cdf3087eaf8c) ) - ROM_LOAD( "24013-02.u95", 0x10000, 0x08000, CRC(0a604e0d) SHA1(08917c3e9fb408b8e128fe2e3617c8c17d964d66) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "24007-01.u70", 0x00000, 0x4000, CRC(40e46aa4) SHA1(e8a27c9007218906683eac29affdd748f64cc6e6) ) - ROM_LOAD( "24010-01.u92", 0x04000, 0x4000, CRC(78705f42) SHA1(4b941df0690a8ce4e390b0488a7ce7e083f52ff3) ) - ROM_LOAD( "24006-01.u69", 0x08000, 0x4000, CRC(6a576aa9) SHA1(8849929c66012de6d2d8c1b4faefe71f11133aac) ) - ROM_LOAD( "24009-02.u91", 0x0c000, 0x4000, CRC(b857a1ad) SHA1(40aeb6afb115af14530177f05100b7cf4baf330a) ) - ROM_LOAD( "24005-02.u68", 0x10000, 0x4000, CRC(8ea75319) SHA1(8651346030e51f19bd77d0ddd76a2544e951b12e) ) - ROM_LOAD( "24008-01.u90", 0x14000, 0x4000, CRC(4538bc58) SHA1(a568e392771398f60b2aa0f83425935fc7198f72) ) - ROM_LOAD( "24004-02.u67", 0x18000, 0x4000, CRC(cd7a3338) SHA1(c91d277578ad9d039f2febdd15d977d7259e5fc8) ) - /* 89 = empty */ -ROM_END - - -ROM_START( aafbd2p ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "26014-01.58t", 0x00000, 0x10000, CRC(79fd14cd) SHA1(1dd75bcecd51d414194ca19381bee0b9f70a8007) ) - ROM_LOAD( "26015-01.59t", 0x10000, 0x10000, CRC(3b0382f0) SHA1(1b01af999201f202e76da8e445ff986d096103cd) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "26000-01.u3", 0x00000, 0x02000, CRC(98c06c63) SHA1(91922f7e2d4f30018ee7302f3d9b7b6793b43dba) ) - ROM_LOAD( "26001-01.2t", 0x10000, 0x10000, CRC(f118b9b4) SHA1(95d0ae9055cf60e2d0b414ab64632fed1f48bf99) ) - ROM_LOAD( "24002-02.u3t", 0x20000, 0x10000, CRC(bbb92184) SHA1(d9890d1c95fb19e9fff6465c977cabf71e4528b4) ) - ROM_LOAD( "15603-01.u4t", 0x30000, 0x10000, CRC(cdc9c09d) SHA1(8641312638507d027948c17c042417b0d0362714) ) - ROM_LOAD( "15604-01.u5t", 0x40000, 0x10000, CRC(3c03e92e) SHA1(7cd9b02bbf1d30a8432632d902c4ea6c8108210b) ) - ROM_LOAD( "15605-01.u6t", 0x50000, 0x10000, CRC(cdf7d19c) SHA1(577c8bf5964d77dbfef4840c53ae40cda68bf4f3) ) - ROM_LOAD( "15606-01.u7t", 0x60000, 0x10000, CRC(8eeb007c) SHA1(6f9d4132c7e5e6502108cb3e8eab9114f07848b4) ) - ROM_LOAD( "24002-02.u8t", 0x70000, 0x10000, CRC(3d9747c9) SHA1(4624ac39ff5336b0fd8c70bf35685041d5c38b1c) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "24019-01.u25", 0x040001, 0x10000, CRC(9e344768) SHA1(7f16d29c52f3d7f0046f414185c4d889f6128597) ) - ROM_LOAD16_BYTE( "24016-01.u13", 0x040000, 0x10000, CRC(6997025f) SHA1(5eda3bcae896933385fe97a4e1396ae2da7576cb) ) - ROM_LOAD16_BYTE( "24020-01.u26", 0x060001, 0x10000, CRC(0788f2a5) SHA1(75eb1ab00185f8efa71f1d46197b5f6d20d721f2) ) - ROM_LOAD16_BYTE( "24017-01.u14", 0x060000, 0x10000, CRC(a48bd721) SHA1(e099074165594a7c289a25c522005db7e9554ca1) ) - ROM_LOAD16_BYTE( "24021-01.u27", 0x0e0001, 0x10000, CRC(94081899) SHA1(289eb2f494d1110d169552e8898296e4a47fcb1d) ) - ROM_LOAD16_BYTE( "24018-01.u15", 0x0e0000, 0x10000, CRC(76eb6077) SHA1(255731c63f4a846bb01d4203a786eb34a4734e66) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "24011-02.u93", 0x00000, 0x08000, CRC(71f4425b) SHA1(074c79d709bf9e927f538932ef05b13e5e649197) ) - ROM_LOAD( "24012-02.u94", 0x08000, 0x08000, CRC(b2499547) SHA1(cf5979e56cc307133cbdbfdba448cdf3087eaf8c) ) - ROM_LOAD( "24013-02.u95", 0x10000, 0x08000, CRC(0a604e0d) SHA1(08917c3e9fb408b8e128fe2e3617c8c17d964d66) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "24007-01.u70", 0x00000, 0x4000, CRC(40e46aa4) SHA1(e8a27c9007218906683eac29affdd748f64cc6e6) ) - ROM_LOAD( "24010-01.u92", 0x04000, 0x4000, CRC(78705f42) SHA1(4b941df0690a8ce4e390b0488a7ce7e083f52ff3) ) - ROM_LOAD( "24006-01.u69", 0x08000, 0x4000, CRC(6a576aa9) SHA1(8849929c66012de6d2d8c1b4faefe71f11133aac) ) - ROM_LOAD( "24009-02.u91", 0x0c000, 0x4000, CRC(b857a1ad) SHA1(40aeb6afb115af14530177f05100b7cf4baf330a) ) - ROM_LOAD( "24005-02.u68", 0x10000, 0x4000, CRC(8ea75319) SHA1(8651346030e51f19bd77d0ddd76a2544e951b12e) ) - ROM_LOAD( "24008-01.u90", 0x14000, 0x4000, CRC(4538bc58) SHA1(a568e392771398f60b2aa0f83425935fc7198f72) ) - ROM_LOAD( "24004-02.u67", 0x18000, 0x4000, CRC(cd7a3338) SHA1(c91d277578ad9d039f2febdd15d977d7259e5fc8) ) - /* 89 = empty */ -ROM_END - - -ROM_START( offroad ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "22121-04.u58", 0x00000, 0x10000, CRC(c5790988) SHA1(a6bae6b024d86b49a23805037b77d15a3c7913ef) ) - ROM_LOAD( "22122-03.u59", 0x10000, 0x10000, CRC(ae862fdc) SHA1(ac31630cff5850409f87bfa5a7303eeedf8a895d) ) - ROM_LOAD( "22120-01.u57", 0x20000, 0x10000, CRC(e9f0f175) SHA1(db8c55015d1e8230f1fb27dfac6b8b364b0718a2) ) - ROM_LOAD( "22119-02.u56", 0x30000, 0x10000, CRC(38642f22) SHA1(9167bbc7ed8a8a0b913ead3b8b5a7749a29f15cb) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "22100-01.u2", 0x00000, 0x02000, CRC(08c96a4b) SHA1(7d93dd918a5733c190b2668811d161f5f6339cf0) ) - ROM_LOAD( "22108-02.u4", 0x30000, 0x10000, CRC(0d72780a) SHA1(634b87e7afff4ac2e8e3b98554364c5f3c4d9176) ) - ROM_LOAD( "22109-02.u5", 0x40000, 0x10000, CRC(5429ce2c) SHA1(73e543796629ac719928f4fe48442f1975db5092) ) - ROM_LOAD( "22110-02.u6", 0x50000, 0x10000, CRC(f97bad5c) SHA1(c68f8022c86bfc5c0480e5ce426fe2f985dc255f) ) - ROM_LOAD( "22111-01.u7", 0x60000, 0x10000, CRC(f79157a1) SHA1(a5731aa92f805123cb00c6ef93a0aed3dc84dae4) ) - ROM_LOAD( "22112-01.u8", 0x70000, 0x10000, CRC(3eef38d3) SHA1(9131960592a44c8567ab483f72955d2cc8898445) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "22116-03.u25", 0x040001, 0x10000, CRC(95bb31d3) SHA1(e7bc43b63126fd33663865b2e41bacc58e962628) ) - ROM_LOAD16_BYTE( "22113-03.u13", 0x040000, 0x10000, CRC(71b28df6) SHA1(caf8e4c98a1650dbaedf83f4d38da920d0976f78) ) - ROM_LOAD16_BYTE( "22117-03.u26", 0x060001, 0x10000, CRC(703d81ce) SHA1(caf5363fb468a461a260e0ec636b0a7a8dc9cd3d) ) - ROM_LOAD16_BYTE( "22114-03.u14", 0x060000, 0x10000, CRC(f8b31bf8) SHA1(cb8133effe5484c5b4c40b77769f6ec72441c333) ) - ROM_LOAD16_BYTE( "22118-03.u27", 0x0e0001, 0x10000, CRC(806ccf8b) SHA1(7335a85fc84d5c2f7537548c3856c9cd2f267609) ) - ROM_LOAD16_BYTE( "22115-03.u15", 0x0e0000, 0x10000, CRC(c8439a7a) SHA1(9a8bb1fca8d3414dcfd4839bc0c4289e4d810943) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "22105-01.u93", 0x00000, 0x08000, CRC(4426e367) SHA1(298203112d724feb9a75a7bfc34b3dbb4d7fffe7) ) - ROM_LOAD( "22106-02.u94", 0x08000, 0x08000, CRC(687dc1fc) SHA1(876c72561d942ebc5f3a148d3d3efdceb39c9e2e) ) - ROM_LOAD( "22107-02.u95", 0x10000, 0x08000, CRC(cee6ee5f) SHA1(3f1c6e8d9eb9de207cabca7c9d6d8d633bd69681) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* 70 = empty */ - ROM_LOAD( "22104-01.u92", 0x04000, 0x4000, CRC(03e0497d) SHA1(bffd870251d51cce262961b77f1953f360f9607b) ) - ROM_LOAD( "22102-01.u69", 0x08000, 0x4000, CRC(c3f2e443) SHA1(82f22dabc99b3aaa94acaa303735a155ac13e592) ) - /* 91 = empty */ - /* 68 = empty */ - ROM_LOAD( "22103-02.u90", 0x14000, 0x4000, CRC(2266757a) SHA1(22aaf4b14f11198ffd14c9830c7997fd47ee14b6) ) - ROM_LOAD( "22101-01.u67", 0x18000, 0x4000, CRC(ecab0527) SHA1(6bbf8243d9b2ea775897719592212b51998f1b01) ) - /* 89 = empty */ -ROM_END - - -ROM_START( offroadt ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) - ROM_LOAD( "ortpu58.bin", 0x00000, 0x10000, CRC(adbc6211) SHA1(cb3181a0dd64754d9a65a7a557e4a183b8d539a2) ) - ROM_LOAD( "ortpu59.bin", 0x10000, 0x10000, CRC(296dd3b6) SHA1(01ae1f2976e2fecc8237fc7b4cf4fb86dd170a70) ) - ROM_LOAD( "ortpu57.bin", 0x20000, 0x10000, CRC(e9f0f175) SHA1(db8c55015d1e8230f1fb27dfac6b8b364b0718a2) ) - ROM_LOAD( "ortpu56.bin", 0x30000, 0x10000, CRC(2c1a22b3) SHA1(fb18af5ec873968beab47d163d9ef23532c40771) ) - - ROM_REGION( 0x90000, REGION_CPU2, 0 ) - ROM_LOAD( "ortpu3b.bin", 0x00000, 0x02000, CRC(95abb9f1) SHA1(98e9e8f388047d6992a664ae87c50ca65a5db0b1) ) - ROM_LOAD( "ortpu2.bin", 0x10000, 0x10000, CRC(c46c1627) SHA1(1e911bc774cbc0a66b2feb68b600aa5ad272daa6) ) - ROM_LOAD( "ortpu3.bin", 0x20000, 0x10000, CRC(2276546f) SHA1(d19335504a71ccf74864c8e9896347709bf794e4) ) - ROM_LOAD( "ortpu4.bin", 0x30000, 0x10000, CRC(aa4b5975) SHA1(7d695957c283aae4c7e6fb90dab117add65571b4) ) - ROM_LOAD( "ortpu5.bin", 0x40000, 0x10000, CRC(69100b06) SHA1(c25d1273d08fd20651d1873ce412bb1e18eff06f) ) - ROM_LOAD( "ortpu6.bin", 0x50000, 0x10000, CRC(b75015b8) SHA1(2bb6b4422e087502cfeb9bce0d3e3ffe18192fe0) ) - ROM_LOAD( "ortpu7.bin", 0x60000, 0x10000, CRC(a5af5b4f) SHA1(e4992bfbf628d034a879bf9317377348ee4c24e9) ) - ROM_LOAD( "ortpu8.bin", 0x70000, 0x10000, CRC(0f735078) SHA1(cb59b11fbed672cb372759384e5916418e6c3dc7) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "ortpu25.bin", 0x040001, 0x10000, CRC(f952f800) SHA1(0f1fc837b0b5f5495a666b0a42adb6068e58a57a) ) - ROM_LOAD16_BYTE( "ortpu13.bin", 0x040000, 0x10000, CRC(7beec9fc) SHA1(b03b4a28217a8c7c02dc0314db97fef1d4ab6f20) ) - ROM_LOAD16_BYTE( "ortpu26.bin", 0x060001, 0x10000, CRC(6227ea94) SHA1(26384af82f73452b7be8a0eeac9f8a3b464068f6) ) - ROM_LOAD16_BYTE( "ortpu14.bin", 0x060000, 0x10000, CRC(0a44331d) SHA1(1a52da64c44bc91c2fc9499d1c41191725f9f2be) ) - ROM_LOAD16_BYTE( "ortpu27.bin", 0x0e0001, 0x10000, CRC(b80c5f99) SHA1(6b0657db870fb4e14e20cbd955655d0990dd7bda) ) - ROM_LOAD16_BYTE( "ortpu15.bin", 0x0e0000, 0x10000, CRC(2a1a1c3c) SHA1(990328240a2dba7264bb5add5ea8cae2752327d9) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ortpu93b.bin", 0x00000, 0x08000, CRC(f0c1d8b0) SHA1(aa6e53b56474fa97b17b60ef1123a28442482b80) ) - ROM_LOAD( "ortpu94b.bin", 0x08000, 0x08000, CRC(7460d8c0) SHA1(9e3560056da89108c58b320125deeed0e009d0a8) ) - ROM_LOAD( "ortpu95b.bin", 0x10000, 0x08000, CRC(081ee7a8) SHA1(2b884a8ed4173b64f7890edf9a6954c62b5ba012) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - /* 70 = empty */ - ROM_LOAD( "ortpu92b.bin", 0x04000, 0x4000, CRC(f9988e28) SHA1(250071f4a26782266303331ddbef5479cc241220) ) - ROM_LOAD( "ortpu69b.bin", 0x08000, 0x4000, CRC(fe5f8d8f) SHA1(5e520da33f30a594c8f37e8e214d0d257ba5c801) ) - /* 91 = empty */ - /* 68 = empty */ - ROM_LOAD( "ortpu90b.bin", 0x14000, 0x4000, CRC(bda2ecb1) SHA1(c7a70ed794cf1655aebdf4538ab25f74be38cda3) ) - ROM_LOAD( "ortpu67b.bin", 0x18000, 0x4000, CRC(38c9bf29) SHA1(aa681f0a3eb5d31f2b01116939162d296e113428) ) - /* 89 = empty */ -ROM_END - - -ROM_START( pigout ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) - ROM_LOAD( "poutu58t.bin", 0x00000, 0x10000, CRC(8fe4b683) SHA1(6f98a4e54a558a642b7193af85823b29ade46919) ) - ROM_LOAD( "poutu59t.bin", 0x10000, 0x10000, CRC(ab907762) SHA1(971c34ae42c17aa27880665966dc15a98387bebb) ) - ROM_LOAD( "poutu57t.bin", 0x20000, 0x10000, CRC(c22be0ff) SHA1(52b76918358046f40ea4b74e53a38d8984125dbb) ) - - ROM_REGION( 0x080000, REGION_CPU2, 0 ) - ROM_LOAD( "poutu3.bin", 0x00000, 0x02000, CRC(af213cb7) SHA1(cf31ee09ee3685274f5ce1df954e7e87199e2e80) ) - ROM_LOAD( "poutu2t.bin", 0x10000, 0x10000, CRC(b23164c6) SHA1(11edbea7bf54a68cb85df36345f39654d726a7f2) ) - ROM_LOAD( "poutu3t.bin", 0x20000, 0x10000, CRC(d93f105f) SHA1(9fe469d674e84209eb55704fd2ad317d11e4caac) ) - ROM_LOAD( "poutu4t.bin", 0x30000, 0x10000, CRC(b7c47bfe) SHA1(42b1ce4401e3754f6fb1453ab4a661dc4237770d) ) - ROM_LOAD( "poutu5t.bin", 0x40000, 0x10000, CRC(d9b9dfbf) SHA1(a6f663638d9f6e14c1a6a99ca811d1d495664412) ) - ROM_LOAD( "poutu6t.bin", 0x50000, 0x10000, CRC(728c7c1a) SHA1(cc3211313a6b3998a0458d3865e3d2a0f9eb8a94) ) - ROM_LOAD( "poutu7t.bin", 0x60000, 0x10000, CRC(393bd990) SHA1(d66d3c5c6d97bb983549d5037bd69c481751b9bf) ) - ROM_LOAD( "poutu8t.bin", 0x70000, 0x10000, CRC(cb9ffaad) SHA1(f39fb33e5a30619cd3017574739ccace80afbe1f) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "poutu25t.bin", 0x040001, 0x10000, CRC(92cd2617) SHA1(88e318f4a41c67fd9e91f013b3c29b6275b69c31) ) - ROM_LOAD16_BYTE( "poutu13t.bin", 0x040000, 0x10000, CRC(9448c389) SHA1(7bb0bd49044ba4b302048d2922ed300f799a2efb) ) - ROM_LOAD16_BYTE( "poutu26t.bin", 0x060001, 0x10000, CRC(ab57de8f) SHA1(28a366e7441bc85dfb814f7a7797aa704a0277ba) ) - ROM_LOAD16_BYTE( "poutu14t.bin", 0x060000, 0x10000, CRC(30678e93) SHA1(6d2c8f5c9de3d016538dc1da99ec0017fefdf35a) ) - ROM_LOAD16_BYTE( "poutu27t.bin", 0x0e0001, 0x10000, CRC(37a8156e) SHA1(a0b44b1ba6701daaa26576c6c892fd97ec82d5e3) ) - ROM_LOAD16_BYTE( "poutu15t.bin", 0x0e0000, 0x10000, CRC(1c60d58b) SHA1(93f83a231d06cd958d3539a528e6ee6c2d9904ed) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "poutu93.bin", 0x000000, 0x08000, CRC(f102a04d) SHA1(3ecc0ab34a5d6e760679dc5fd7d32dd439f797d5) ) - ROM_LOAD( "poutu94.bin", 0x008000, 0x08000, CRC(ec63c015) SHA1(10010a17ffda468dbe2940fae6aae49c56e1ad78) ) - ROM_LOAD( "poutu95.bin", 0x010000, 0x08000, CRC(ba6e797e) SHA1(135f905b7663026a99fd9aca8e0247a72bf43cdb) ) - - ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "poutu70.bin", 0x00000, 0x4000, CRC(7db4eaa1) SHA1(e1ec186a8359b3302071e87577092008065c39de) ) - ROM_LOAD( "poutu92.bin", 0x04000, 0x4000, CRC(20fa57bb) SHA1(7e94698a25c5459991f0e99a50e5e98f392cda41) ) - ROM_LOAD( "poutu69.bin", 0x08000, 0x4000, CRC(a16886f3) SHA1(48a0cbbea80cc38cd4d5594d3367282690724c59) ) - ROM_LOAD( "poutu91.bin", 0x0c000, 0x4000, CRC(482a3581) SHA1(bab1140a5c0a2ff4c3ef076155429e35cbfe2335) ) - ROM_LOAD( "poutu68.bin", 0x10000, 0x4000, CRC(7b62a3ed) SHA1(fc707626a3fa78d38f5b2cbe3b8786e8c4382563) ) - ROM_LOAD( "poutu90.bin", 0x14000, 0x4000, CRC(9615d710) SHA1(a9b2d2bf4d6edecdc212f5d96eec8095833bee22) ) - ROM_LOAD( "poutu67.bin", 0x18000, 0x4000, CRC(af85ce79) SHA1(76e421772dfdf4d27e36aa51993a987883e015b0) ) - ROM_LOAD( "poutu89.bin", 0x1c000, 0x4000, CRC(6c874a05) SHA1(a931ba5ac41facfaf32c5e940eb011e780ab234a) ) -ROM_END - - -ROM_START( pigouta ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) - ROM_LOAD( "03-29020.01", 0x00000, 0x10000, CRC(6c815982) SHA1(0720b22afd16e9bdc5d4a9e9a0071674ea46d038) ) - ROM_LOAD( "03-29021.01", 0x10000, 0x10000, CRC(9de7a763) SHA1(9a612730a9d80d84114c1afc4a1887277d1ad5bc) ) - ROM_LOAD( "poutu57t.bin", 0x20000, 0x10000, CRC(c22be0ff) SHA1(52b76918358046f40ea4b74e53a38d8984125dbb) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) - ROM_LOAD( "poutu3.bin", 0x00000, 0x02000, CRC(af213cb7) SHA1(cf31ee09ee3685274f5ce1df954e7e87199e2e80) ) - ROM_LOAD( "poutu2t.bin", 0x10000, 0x10000, CRC(b23164c6) SHA1(11edbea7bf54a68cb85df36345f39654d726a7f2) ) - ROM_LOAD( "poutu3t.bin", 0x20000, 0x10000, CRC(d93f105f) SHA1(9fe469d674e84209eb55704fd2ad317d11e4caac) ) - ROM_LOAD( "poutu4t.bin", 0x30000, 0x10000, CRC(b7c47bfe) SHA1(42b1ce4401e3754f6fb1453ab4a661dc4237770d) ) - ROM_LOAD( "poutu5t.bin", 0x40000, 0x10000, CRC(d9b9dfbf) SHA1(a6f663638d9f6e14c1a6a99ca811d1d495664412) ) - ROM_LOAD( "poutu6t.bin", 0x50000, 0x10000, CRC(728c7c1a) SHA1(cc3211313a6b3998a0458d3865e3d2a0f9eb8a94) ) - ROM_LOAD( "poutu7t.bin", 0x60000, 0x10000, CRC(393bd990) SHA1(d66d3c5c6d97bb983549d5037bd69c481751b9bf) ) - ROM_LOAD( "poutu8t.bin", 0x70000, 0x10000, CRC(cb9ffaad) SHA1(f39fb33e5a30619cd3017574739ccace80afbe1f) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "poutu25t.bin", 0x040001, 0x10000, CRC(92cd2617) SHA1(88e318f4a41c67fd9e91f013b3c29b6275b69c31) ) - ROM_LOAD16_BYTE( "poutu13t.bin", 0x040000, 0x10000, CRC(9448c389) SHA1(7bb0bd49044ba4b302048d2922ed300f799a2efb) ) - ROM_LOAD16_BYTE( "poutu26t.bin", 0x060001, 0x10000, CRC(ab57de8f) SHA1(28a366e7441bc85dfb814f7a7797aa704a0277ba) ) - ROM_LOAD16_BYTE( "poutu14t.bin", 0x060000, 0x10000, CRC(30678e93) SHA1(6d2c8f5c9de3d016538dc1da99ec0017fefdf35a) ) - ROM_LOAD16_BYTE( "poutu27t.bin", 0x0e0001, 0x10000, CRC(37a8156e) SHA1(a0b44b1ba6701daaa26576c6c892fd97ec82d5e3) ) - ROM_LOAD16_BYTE( "poutu15t.bin", 0x0e0000, 0x10000, CRC(1c60d58b) SHA1(93f83a231d06cd958d3539a528e6ee6c2d9904ed) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "poutu93.bin", 0x000000, 0x08000, CRC(f102a04d) SHA1(3ecc0ab34a5d6e760679dc5fd7d32dd439f797d5) ) - ROM_LOAD( "poutu94.bin", 0x008000, 0x08000, CRC(ec63c015) SHA1(10010a17ffda468dbe2940fae6aae49c56e1ad78) ) - ROM_LOAD( "poutu95.bin", 0x010000, 0x08000, CRC(ba6e797e) SHA1(135f905b7663026a99fd9aca8e0247a72bf43cdb) ) - - ROM_REGION( 0x40000, REGION_USER1, 0 ) /* Ordering: 70/92/69/91/68/90/67/89 */ - ROM_LOAD( "poutu70.bin", 0x00000, 0x4000, CRC(7db4eaa1) SHA1(e1ec186a8359b3302071e87577092008065c39de) ) - ROM_LOAD( "poutu92.bin", 0x04000, 0x4000, CRC(20fa57bb) SHA1(7e94698a25c5459991f0e99a50e5e98f392cda41) ) - ROM_LOAD( "poutu69.bin", 0x08000, 0x4000, CRC(a16886f3) SHA1(48a0cbbea80cc38cd4d5594d3367282690724c59) ) - ROM_LOAD( "poutu91.bin", 0x0c000, 0x4000, CRC(482a3581) SHA1(bab1140a5c0a2ff4c3ef076155429e35cbfe2335) ) - ROM_LOAD( "poutu68.bin", 0x10000, 0x4000, CRC(7b62a3ed) SHA1(fc707626a3fa78d38f5b2cbe3b8786e8c4382563) ) - ROM_LOAD( "poutu90.bin", 0x14000, 0x4000, CRC(9615d710) SHA1(a9b2d2bf4d6edecdc212f5d96eec8095833bee22) ) - ROM_LOAD( "poutu67.bin", 0x18000, 0x4000, CRC(af85ce79) SHA1(76e421772dfdf4d27e36aa51993a987883e015b0) ) - ROM_LOAD( "poutu89.bin", 0x1c000, 0x4000, CRC(6c874a05) SHA1(a931ba5ac41facfaf32c5e940eb011e780ab234a) ) -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -#if 0 -/* -Copy this code into the init function and modify: -{ - UINT8 *ram = memory_region(REGION_CPU1); - FILE *output; - - output = fopen("indyheat.m", "w"); - dasm_chunk("Resident", &ram[0x00000], 0x0000, 0x2000, output); - dasm_chunk("Bank 0x02000:", &ram[0x02000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x10000:", &ram[0x10000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x18000:", &ram[0x18000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x20000:", &ram[0x20000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x28000:", &ram[0x28000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x30000:", &ram[0x30000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x38000:", &ram[0x38000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x40000:", &ram[0x40000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x48000:", &ram[0x48000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x50000:", &ram[0x50000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x58000:", &ram[0x58000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x60000:", &ram[0x60000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x68000:", &ram[0x68000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x70000:", &ram[0x70000], 0x2000, 0x8000, output); - dasm_chunk("Bank 0x78000:", &ram[0x78000], 0x2000, 0x8000, output); - fclose(output); -} -*/ - -static void dasm_chunk(char *tag, UINT8 *base, UINT16 pc, UINT32 length, FILE *output) -{ - extern unsigned DasmZ80(char *buffer, unsigned _pc); - - UINT8 *old_rom = opcode_base; - UINT8 *old_ram = opcode_arg_base; - char buffer[256]; - int count, offset, i; - - fprintf(output, "\n\n\n%s:\n", tag); - opcode_base = opcode_arg_base = &base[-pc]; - for (offset = 0; offset < length; offset += count) - { - count = DasmZ80(buffer, pc); - for (i = 0; i < 4; i++) - if (i < count) - fprintf(output, "%c", (cpu_readop(pc + i) >= 32 && cpu_readop(pc + i) < 127) ? cpu_readop(pc + i) : ' '); - else - fprintf(output, " "); - fprintf(output, " %04X: ", pc); - for (i = 0; i < 4; i++) - if (i < count) - fprintf(output, "%02X ", cpu_readop(pc++)); - else - fprintf(output, " "); - fprintf(output, "%s\n", buffer); - } - opcode_base = old_rom; - opcode_arg_base = old_ram; -} -#endif - -static void init_master_ports(UINT8 mvram_base, UINT8 io_base) -{ - /* set up the master CPU VRAM I/O */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, mvram_base, mvram_base + 0x1f, 0, 0, leland_mvram_port_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, mvram_base, mvram_base + 0x1f, 0, 0, leland_mvram_port_w); - - /* set up the master CPU I/O ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, io_base, io_base + 0x1f, 0, 0, leland_master_input_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, io_base, io_base + 0x0f, 0, 0, leland_master_output_w); -} - - -static DRIVER_INIT( cerberus ) -{ - /* initialize the default EEPROM state */ - static const UINT16 cerberus_eeprom_data[] = - { - 0x05,0x0001, - 0x06,0x0001, - 0x07,0x0001, - 0x08,0x0001, - 0x09,0x0004, - 0x0a,0x0004, - 0x0e,0x0001, - 0x0f,0x0003, - 0x10,0x0500, - 0x12,0x0005, - 0x13,0x0003, - 0x3f,0x001d, - 0xffff - }; - leland_init_eeprom(0x00, cerberus_eeprom_data, 0, SERIAL_TYPE_NONE); - - /* master CPU bankswitching */ - leland_update_master_bank = cerberus_bankswitch; - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x2000); - memory_set_bankptr(2, memory_region(REGION_CPU1) + 0xa000); - memory_set_bankptr(3, memory_region(REGION_CPU2) + 0x2000); - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x80, 0x80, 0, 0, cerberus_dial_1_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x90, 0x90, 0, 0, cerberus_dial_2_r); -} - - -static DRIVER_INIT( mayhem ) -{ - /* initialize the default EEPROM state */ - static const UINT16 mayhem_eeprom_data[] = - { - 0x05,0x0001, - 0x06,0x0001, - 0x07,0x0001, - 0x08,0x0001, - 0x09,0x0004, - 0x0a,0x0004, - 0x0c,0xff00, - 0x13,0x28ff, - 0x14,0x0023, - 0x15,0x0005, - 0x1b,0x0060, - 0x1c,0x4a00, - 0x1d,0x4520, - 0x1e,0x4943, - 0x1f,0x454e, - 0x20,0x414d, - 0x21,0x5254, - 0x22,0x4e4f, - 0x23,0x4349, - 0x24,0x2053, - 0x25,0x2020, - 0x26,0x2020, - 0x27,0x2020, - 0x3f,0x0818, - 0xffff - }; - leland_init_eeprom(0x00, mayhem_eeprom_data, 0x28, SERIAL_TYPE_ADD); - - /* master CPU bankswitching */ - leland_update_master_bank = mayhem_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); -} - - -static DRIVER_INIT( powrplay ) -{ - /* initialize the default EEPROM state */ - static const UINT16 powrplay_eeprom_data[] = - { - 0x21,0xfffe, - 0x22,0xfffe, - 0x23,0xfffe, - 0x24,0xfffe, - 0x25,0xfffb, - 0x26,0xfffb, - 0x27,0xfefe, - 0x28,0x0000, - 0x29,0xd700, - 0x2a,0xd7dc, - 0x2b,0xffdc, - 0x2c,0xfffb, - 0xffff - }; - leland_init_eeprom(0xff, powrplay_eeprom_data, 0x2d, SERIAL_TYPE_ADD_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = mayhem_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); -} - - -static DRIVER_INIT( wseries ) -{ - /* initialize the default EEPROM state */ - static const UINT16 wseries_eeprom_data[] = - { - 0x19,0xfefe, - 0x1a,0xfefe, - 0x1b,0xfbfb, - 0x1d,0x00ff, - 0xffff - }; - leland_init_eeprom(0xff, wseries_eeprom_data, 0x12, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = mayhem_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); -} - - -static DRIVER_INIT( alleymas ) -{ - /* initialize the default EEPROM state */ - static const UINT16 alleymas_eeprom_data[] = - { - 0x13,0xfefe, - 0x14,0xfefe, - 0x15,0xfbfb, - 0x17,0x00ff, - 0x18,0xff00, - 0x37,0x00ff, - 0xffff - }; - leland_init_eeprom(0xff, alleymas_eeprom_data, 0x0c, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = mayhem_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); - - /* kludge warning: the game uses location E0CA to determine if the joysticks are available */ - /* it gets cleared by the code, but there is no obvious way for the value to be set to a */ - /* non-zero value. If the value is zero, the joystick is never read. */ - alleymas_kludge_mem = memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe0ca, 0xe0ca, 0, 0, alleymas_joystick_kludge); -} - - -static DRIVER_INIT( upyoural ) -{ - /* initialize the default EEPROM state */ - static const UINT16 upyoural_eeprom_data[] = - { - 0x0c,0x07bb, - 0x0d,0xf483, - 0x13,0xfefe, - 0x14,0xfefe, - 0x15,0xfbfb, - 0x17,0x00ff, - 0x18,0xff00, - 0x37,0x00ff, - 0xffff - }; - leland_init_eeprom(0xff, upyoural_eeprom_data, 0x0c, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = mayhem_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); -} - - -static DRIVER_INIT( dangerz ) -{ - /* initialize the default EEPROM state */ - static const UINT16 dangerz_eeprom_data[] = - { - 0x17,0xfefe, - 0x18,0xfefe, - 0x19,0xfbfb, - 0x1b,0x00ff, - 0x1c,0xfffa, - 0x38,0xb6bc, - 0x39,0xffb1, - 0x3a,0x8007, - 0xffff - }; - leland_init_eeprom(0xff, dangerz_eeprom_data, 0x10, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = dangerz_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf4, 0xf4, 0, 0, dangerz_input_upper_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, dangerz_input_y_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfc, 0xfc, 0, 0, dangerz_input_x_r); -} - - -static DRIVER_INIT( basebal2 ) -{ - /* initialize the default EEPROM state */ - static const UINT16 basebal2_eeprom_data[] = - { - 0x19,0xfefe, - 0x1a,0xfefe, - 0x1b,0xfbfb, - 0x1d,0x00ff, - 0xffff - }; - leland_init_eeprom(0xff, basebal2_eeprom_data, 0x12, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = basebal2_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); -} - - -static DRIVER_INIT( dblplay ) -{ - /* initialize the default EEPROM state */ - static const UINT16 dblplay_eeprom_data[] = - { - 0x18,0xfefe, - 0x19,0xfefe, - 0x1a,0xfbfb, - 0x1c,0x00ff, - 0x3b,0xffe1, - 0xffff - }; - leland_init_eeprom(0xff, dblplay_eeprom_data, 0x11, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = basebal2_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x80, 0x40); -} - - -static DRIVER_INIT( strkzone ) -{ - /* initialize the default EEPROM state */ - static const UINT16 strkzone_eeprom_data[] = - { - 0x16,0xfefe, - 0x17,0xfefe, - 0x18,0xfbfb, - 0x1a,0x00ff, - 0x1b,0xffe1, - 0xffff - }; - leland_init_eeprom(0xff, strkzone_eeprom_data, 0x0f, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = basebal2_bankswitch; - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0x40); -} - - -static DRIVER_INIT( redlin2p ) -{ - /* initialize the default EEPROM state */ - static const UINT16 redlin2p_eeprom_data[] = - { - 0x1f,0xfefe, - 0x20,0xfffb, - 0x21,0xfa00, - 0x22,0xfffe, - 0xffff - }; - leland_init_eeprom(0xff, redlin2p_eeprom_data, 0x18, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = redline_bankswitch; - - leland_rotate_memory(0); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, redline_pedal_1_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xd0, 0xd0, 0, 0, redline_pedal_2_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, redline_wheel_2_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfb, 0xfb, 0, 0, redline_wheel_1_r); -} - - -static DRIVER_INIT( quarterb ) -{ - /* initialize the default EEPROM state */ - static const UINT16 quarterb_eeprom_data[] = - { - 0x34,0xfefe, - 0x35,0xfefe, - 0x36,0xfbfb, - 0x38,0x00ff, - 0x39,0x53ff, - 0x3a,0xffd9, - 0xffff - }; - leland_init_eeprom(0xff, quarterb_eeprom_data, 0x24, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); -} - - -static DRIVER_INIT( viper ) -{ - /* initialize the default EEPROM state */ - static const UINT16 viper_eeprom_data[] = - { - 0x13,0xfefe, - 0x14,0xfefe, - 0x15,0xfbfb, - 0x17,0x00ff, - 0x18,0xfcfa, - 0x1b,0xfffe, - 0xffff - }; - leland_init_eeprom(0xff, viper_eeprom_data, 0x0c, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xa4, 0xa4, 0, 0, dangerz_input_upper_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xb8, 0xb8, 0, 0, dangerz_input_y_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xbc, 0xbc, 0, 0, dangerz_input_x_r); -} - - -static DRIVER_INIT( teamqb ) -{ - /* initialize the default EEPROM state */ - static const UINT16 teamqb_eeprom_data[] = - { - 0x36,0xfefe, - 0x37,0xfefe, - 0x38,0xfbfb, - 0x3a,0x5300, - 0x3b,0xffd9, - 0xffff - }; - leland_init_eeprom(0xff, teamqb_eeprom_data, 0x1a, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x40, 0x80); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7c, 0x7c, 0, 0, input_port_10_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7f, 0x7f, 0, 0, input_port_11_r); -} - - -static DRIVER_INIT( aafb ) -{ - /* initialize the default EEPROM state */ - static const UINT16 aafb_eeprom_data[] = - { - 0x36,0xfefe, - 0x37,0xfefe, - 0x38,0xfbfb, - 0x3a,0x5300, - 0x3b,0xffd9, - 0xffff - }; - leland_init_eeprom(0xff, aafb_eeprom_data, 0x1a, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7c, 0x7c, 0, 0, input_port_10_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7f, 0x7f, 0, 0, input_port_11_r); -} - - -static DRIVER_INIT( aafbb ) -{ - /* initialize the default EEPROM state */ - static const UINT16 aafb_eeprom_data[] = - { - 0x36,0xfefe, - 0x37,0xfefe, - 0x38,0xfbfb, - 0x3a,0x5300, - 0x3b,0xffd9, - 0xffff - }; - leland_init_eeprom(0xff, aafb_eeprom_data, 0x1a, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x80, 0x40); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7c, 0x7c, 0, 0, input_port_10_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7f, 0x7f, 0, 0, input_port_11_r); -} - - -static DRIVER_INIT( aafbd2p ) -{ - /* initialize the default EEPROM state */ - static const UINT16 aafb_eeprom_data[] = - { - 0x36,0xfefe, - 0x37,0xfefe, - 0x38,0xfbfb, - 0x3a,0x5300, - 0x3b,0xffd9, - 0xffff - }; - leland_init_eeprom(0xff, aafb_eeprom_data, 0x1a, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = viper_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0x40); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7c, 0x7c, 0, 0, input_port_10_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7f, 0x7f, 0, 0, input_port_11_r); -} - - -static DRIVER_INIT( offroad ) -{ - /* initialize the default EEPROM state */ - static const UINT16 offroad_eeprom_data[] = - { - 0x09,0xfefe, - 0x0a,0xfffb, - 0x0d,0x00ff, - 0x0e,0xfffb, - 0x36,0xfeff, - 0x37,0xfefe, - 0x38,0xfffe, - 0x39,0x50ff, - 0x3a,0x976c, - 0x3b,0xffad, - 0xffff - }; - leland_init_eeprom(0xff, offroad_eeprom_data, 0x00, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = offroad_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0xc0); - init_master_ports(0x40, 0x80); /* yes, this is intentional */ - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, offroad_wheel_3_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf9, 0xf9, 0, 0, offroad_wheel_1_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfb, 0xfb, 0, 0, offroad_wheel_2_r); -} - - -static DRIVER_INIT( offroadt ) -{ - /* initialize the default EEPROM state */ - static const UINT16 offroadt_eeprom_data[] = - { - 0x09,0xfefe, - 0x0a,0xfffb, - 0x0d,0x00ff, - 0x0e,0xfffb, - 0x36,0xfeff, - 0x37,0xfefe, - 0x38,0xfffe, - 0x39,0x50ff, - 0x3a,0x976c, - 0x3b,0xffad, - 0xffff - }; - leland_init_eeprom(0xff, offroadt_eeprom_data, 0x00, SERIAL_TYPE_ENCRYPT_XOR); - - /* master CPU bankswitching */ - leland_update_master_bank = offroad_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x80, 0x40); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, offroad_wheel_3_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf9, 0xf9, 0, 0, offroad_wheel_1_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfb, 0xfb, 0, 0, offroad_wheel_2_r); -} - - -static DRIVER_INIT( pigout ) -{ - /* initialize the default EEPROM state */ - static const UINT16 pigout_eeprom_data[] = - { - 0x09,0xfefe, - 0x0a,0xfefb, - 0x0b,0xfffe, - 0x0c,0xfefe, - 0x0d,0xfffb, - 0x39,0xfcff, - 0x3a,0xfb00, - 0x3b,0xfffc, - 0xffff - }; - leland_init_eeprom(0xff, pigout_eeprom_data, 0x00, SERIAL_TYPE_ENCRYPT); - - /* master CPU bankswitching */ - leland_update_master_bank = offroad_bankswitch; - - leland_rotate_memory(0); - leland_rotate_memory(1); - leland_rotate_memory(1); - - /* set up the master CPU I/O ports */ - init_master_ports(0x00, 0x40); - - /* set up additional input ports */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x7f, 0x7f, 0, 0, input_port_4_r); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -/* small master banks, small slave banks */ -GAME( 1985, cerberus, 0, leland, cerberus, cerberus, ROT0, "Cinematronics", "Cerberus", 0 ) -GAME( 1985, mayhem, 0, leland, mayhem, mayhem, ROT0, "Cinematronics", "Mayhem 2002", 0 ) -GAME( 1985, powrplay, 0, leland, mayhem, powrplay, ROT0, "Cinematronics", "Power Play", 0 ) -GAME( 1985, wseries, 0, leland, wseries, wseries, ROT0, "Cinematronics", "World Series: The Season", 0 ) -GAME( 1986, alleymas, 0, leland, alleymas, alleymas, ROT270, "Cinematronics", "Alley Master", 0 ) -GAME( 1987, upyoural, 0, leland, upyoural, upyoural, ROT270, "Cinematronics", "Up Your Alley", 0 ) - -/* odd master banks, small slave banks */ -GAME( 1986, dangerz, 0, leland, dangerz, dangerz, ROT0, "Cinematronics", "Danger Zone", 0 ) - -/* small master banks + extra top board, small slave banks */ -GAME( 1987, basebal2, 0, leland, basebal2, basebal2, ROT0, "Cinematronics", "Baseball The Season II", 0 ) -GAME( 1987, dblplay, 0, leland, basebal2, dblplay, ROT0, "Leland Corp. / Tradewest", "Super Baseball Double Play Home Run Derby", 0 ) -GAME( 1988, strkzone, 0, leland, basebal2, strkzone, ROT0, "Leland Corp.", "Strike Zone Baseball", 0 ) - -/* large master banks, small slave banks, I86 sound */ -GAME( 1987, redlin2p, 0, redline, redline, redlin2p, ROT270, "Cinematronics (Tradewest license)", "Redline Racer (2 players)", 0 ) -GAME( 1987, quarterb, 0, quarterb,quarterb, quarterb, ROT270, "Leland Corp.", "Quarterback", 0 ) -GAME( 1987, quartrba, quarterb,quarterb,quarterb, quarterb, ROT270, "Leland Corp.", "Quarterback (set 2)", 0 ) - -/* large master banks, large slave banks, I86 sound */ -GAME( 1988, viper, 0, lelandi, dangerz, viper, ROT0, "Leland Corp.", "Viper", 0 ) -GAME( 1988, teamqb, 0, lelandi, teamqb, teamqb, ROT270, "Leland Corp.", "John Elway's Team Quarterback", 0 ) -GAME( 1988, teamqb2, teamqb, lelandi, teamqb, teamqb, ROT270, "Leland Corp.", "John Elway's Team Quarterback (set 2)", 0 ) -GAME( 1989, aafb, 0, lelandi, teamqb, aafb, ROT270, "Leland Corp.", "All American Football (rev E)", 0 ) -GAME( 1989, aafbd2p, aafb, lelandi, aafb2p, aafbd2p, ROT270, "Leland Corp.", "All American Football (rev D, 2 Players)", 0 ) -GAME( 1989, aafbc, aafb, lelandi, teamqb, aafbb, ROT270, "Leland Corp.", "All American Football (rev C)", 0 ) -GAME( 1989, aafbb, aafb, lelandi, teamqb, aafbb, ROT270, "Leland Corp.", "All American Football (rev B)", 0 ) - -/* huge master banks, large slave banks, I86 sound */ -GAME( 1989, offroad, 0, lelandi, offroad, offroad, ROT0, "Leland Corp.", "Ironman Stewart's Super Off-Road", 0 ) -GAME( 1989, offroadt, 0, lelandi, offroad, offroadt, ROT0, "Leland Corp.", "Ironman Stewart's Super Off-Road Track Pack", 0 ) -GAME( 1990, pigout, 0, lelandi, pigout, pigout, ROT0, "Leland Corp.", "Pigout", 0 ) -GAME( 1990, pigouta, pigout, lelandi, pigout, pigout, ROT0, "Leland Corp.", "Pigout (alternate)", 0 ) diff --git a/src/drivers/lethal.c b/src/drivers/lethal.c deleted file mode 100644 index 762f9ef14..000000000 --- a/src/drivers/lethal.c +++ /dev/null @@ -1,919 +0,0 @@ -/*************************************************************************** - - Lethal Enforcers - (c) 1992 Konami - Driver by R. Belmont and Nicola Salmoria. - - This hardware is exceptionally weird - they have a bunch of chips intended - for use with a 68000 hooked up to an 8-bit CPU. So everything is bankswitched - like crazy. - - LETHAL ENFORCERS - KONAMI 1993 - - 84256 053245A - 191A03.A4 6116 191A04.A8 191A05.A10 - 054539 053244A 053244A - Z80B 191A02.F4 - 6116 - 191A06.C9 - 7C185 - 7C185 - 007644 5116 - 054000 4464 - 4464 4464 - 191E01.U4 5116 054157 054157 - 63C09EP 054156 - 24MHZ 191A07.V8 191A08.V10 - 191A09.V9 191A10.V10 - - - ---- - - -Lethal Enforcers (c) Konami 1992 -GX191 PWB353060A - -Dump of USA program ROMs only. - -Label CRC32 Location Code Chip Type - 1 [72b843cc] F4 Z80 TMS 27C512 (64k) - 6 [1b6b8f16] U4 6309 ST 27C4001 (512k) - -At offset 0x3FD03 in 6_usa.u4 is "08/17/92 21:38" - -Run down of PCB: -Main CPU: HD63C09EP - OSC 24.00000MHz near 6309 - -Sound CPU: Z80 (Zilog Z0840006PSC) - OSC 18.43200MHz near Z80, 054968A & 054539 - -Konami Custom chips: - -054986A (sound latch + Z80 memory mapper/banker + output DAC) -054539 (sound) -054000 (collision/protection) -053244A (x2) (sprites) -053245A (sprites) -054156 (tilemaps) -054157 (x2) (tilemaps) -007324 (???) - -All other ROMs surface mounted (not included): - -Label Printed* Position -191 A03 Mask16M-8bit - Near 054986A & 054539 - Sound - Also labeled as 056046 - -191A04 Mask8M-16bit \ Near 053244A (x2) & 05245A - Sprites -191A05 Mask8M-16bit / -191 A06 Mask8M-16bit - Also labeled as 056049 - -191A07 Mask8M-16bitx4 \ -191A08 Mask8M-16bitx4 | Near 054157 (x2) & 054156 - Tiles -191A09 Mask8M-16bitx4 | -191A10 Mask8M-16bitx4 / - -* This info is printed/silk-screened on to the PCB for assembly information? - - -4 way Dip Switch - ---------------------------------------------------- - DipSwitch Title | Function | 1 | 2 | 3 | 4 | ---------------------------------------------------- - Sound Output | Stereo |off| | - | Monaural |on | | ---------------------------------------------------- - Coin Mechanism | Common | |off| | - | Independent | |on | | ---------------------------------------------------- - Game Type | Street | |off| | - | Arcade | |on | | ---------------------------------------------------- - Language* | English | |off| - | Spanish | |on | ---------------------------------------------------- - Default Settings |off|off|on |off| ---------------------------------------------------- - NOTE: Listed as "NOT USED" in UK / World Manual | ---------------------------------------------------- - -Push Button Test Switch - - -Memory map (from the schematics) - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R xxxxxxxx PROM program ROM (banked) -001xxxxxxxxxxxxx R/W xxxxxxxx WRAM work RAM -010000--00xxxxxx W xxxxxxxx VREG 056832 control -010000--01--xxxx W xxxxxxxx VSCG 056832 control -010000--1000---- R/W -------- AFR watchdog reset -010000--1001---- W SDON sound enable? -010000--1010 CCLR ? -010000--1011---- n.c. -010000--11-000-- W ------xx COIN1/2 coin counters -010000--11-000-- W ----xx-- CKO1/2 coin enables? -010000--11-000-- W ---x---- VRD \ related to reading graphics ROMs? -010000--11-000-- W --x----- CRDB / -010000--11-001-- W -----xxx EEP EEPROM DI, CS, CLK -010000--11-001-- W ----x--- MUT sound mute? -010000--11-001-- W ---x---- CBNK bank switch 4800-7FFF region between palette and 053245/056832 -010000--11-001-- W --x----- n.c. -010000--11-001-- W xx------ SHD0/1 shadow control -010000--11-010-- W -----xxx PCU1/XBA palette bank (tilemap A) -010000--11-010-- W -xxx---- PCU1/XBB palette bank (tilemap B) -010000--11-011-- W -----xxx PCU2/XBC palette bank (tilemap C) -010000--11-011-- W -xxx---- PCU2/XBD palette bank (tilemap D) -010000--11-100-- W -----xxx PCU3/XBO palette bank (sprites) -010000--11-100-- W -xxx---- PCU3/XBK palette bank (background?) -010000--11-101xx R xxxxxxxx POG gun inputs -010000--11-11000 R xxxxxxxx SW dip switches, EEPROM DO, R/B -010000--11-11001 R xxxxxxxx SW inputs -010000--11-11010 R xxxxxxxx SW unused inputs (crossed out in schematics) -010000--11-11011 R xx------ HHI1/2 gun input ready? -010000--11-11011 R -------x NCPU ? -010000--11-111-- W --xxxxxx BREG ROM bank select -010010--00------ n.c. -010010--01---xxx R/W xxxxxxxx OREG 053244 -010010--10-xxxxx R/W xxxxxxxx HIP 054000 -010010--11 R/W xxxxxxxx PAR sound communication -010100xxxxxxxxxx R/W xxxxxxxx OBJ 053245 -011xxxxxxxxxxxxx R/W xxxxxxxx VRAM 056832 -1xxxxxxxxxxxxxxx R xxxxxxxx PROM program ROM - - -note: - -lethal enforcers has 2 sprite rendering chips working in parallel mixing -data together to give 6bpp.. we cheat by using a custom function in -konamiic.c and a fixed 6bpp decode. - -japanese version scroll / mirror / guns not set up correctly - -guns might be slightly off center - -'external' rowscroll not hooked up correctly (1st attract level, highscores) - -can't find the flip bits used for the tiles.. (p2 start screen, reload indicator) - -maybe some priority issues / sprite placement issues.. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/m6809/m6809.h" -#include "cpu/hd6309/hd6309.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/k054539.h" - -#define GUNX( a ) (( ( readinputport( a ) * 287 ) / 0xff ) + 16) -#define GUNY( a ) (( ( readinputport( a ) * 223 ) / 0xff ) + 10) - -VIDEO_START(lethalen); -VIDEO_UPDATE(lethalen); -WRITE8_HANDLER(le_palette_control); - -static int init_eeprom_count; -static UINT8 cur_control2; - -/* Default Eeprom for the parent.. otherwise it will always complain first boot */ -/* its easy to init but this saves me a bit of time.. */ -unsigned char lethalen_default_eeprom[48] = { - 0x02, 0x1E, 0x00, 0x00, 0x39, 0x31, 0x39, 0x31, 0x55, 0x45, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x02, 0x01, 0x00, 0x03, 0x05, 0x01, 0x01, 0x02, 0x28, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF -}; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "011100", /* write command */ - "0100100000000", /* erase command */ - "0100000000000", /* lock command */ - "0100110000000" /* unlock command */ -}; - -static NVRAM_HANDLER( lethalen ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - { - init_eeprom_count = 10; - EEPROM_set_data(lethalen_default_eeprom,48); - - } - } -} - -static READ8_HANDLER( control2_r ) -{ - return 0x02 | EEPROM_read_bit() | (input_port_1_r(0) & 0xf0); -} - -static WRITE8_HANDLER( control2_w ) -{ - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - /* bit 3 is "MUT" on the schematics (audio mute?) */ - /* bit 4 bankswitches the 4800-4fff region: 0 = registers, 1 = RAM ("CBNK" on schematics) */ - /* bit 6 is "SHD0" (some kind of shadow control) */ - /* bit 7 is "SHD1" (ditto) */ - - cur_control2 = data; - - EEPROM_write_bit(cur_control2 & 0x01); - EEPROM_set_cs_line((cur_control2 & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((cur_control2 & 0x04) ? ASSERT_LINE : CLEAR_LINE); -} - -static INTERRUPT_GEN(lethalen_interrupt) -{ - if (K056832_is_IRQ_enabled(0)) cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); -} - -static WRITE8_HANDLER( sound_cmd_w ) -{ - soundlatch_w(0, data); -} - -static WRITE8_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -static READ8_HANDLER( sound_status_r ) -{ - return 0xf; -} - -static void sound_nmi(void) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static WRITE8_HANDLER( le_bankswitch_w ) -{ - UINT8 *prgrom = (UINT8 *)memory_region(REGION_CPU1)+0x10000; - - memory_set_bankptr(1, &prgrom[data * 0x2000]); -} - -static READ8_HANDLER( le_4800_r ) -{ - if (cur_control2 & 0x10) // RAM enable - { - return paletteram_r(offset); - } - else - { - if (offset < 0x0800) - { - switch (offset) - { - case 0x40: - case 0x41: - case 0x42: - case 0x43: - case 0x44: - case 0x45: - case 0x46: - return K053244_r(offset-0x40); - break; - - case 0x80: - case 0x81: - case 0x82: - case 0x83: - case 0x84: - case 0x85: - case 0x86: - case 0x87: - case 0x88: - case 0x89: - case 0x8a: - case 0x8b: - case 0x8c: - case 0x8d: - case 0x8e: - case 0x8f: - case 0x90: - case 0x91: - case 0x92: - case 0x93: - case 0x94: - case 0x95: - case 0x96: - case 0x97: - case 0x98: - case 0x99: - case 0x9a: - case 0x9b: - case 0x9c: - case 0x9d: - case 0x9e: - case 0x9f: - return K054000_r(offset-0x80); - break; - - case 0xca: - return sound_status_r(0); - break; - } - } - else if (offset < 0x1800) - return K053245_r((offset - 0x0800) & 0x07ff); - else if (offset < 0x2000) - return K056832_ram_code_lo_r(offset - 0x1800); - else if (offset < 0x2800) - return K056832_ram_code_hi_r(offset - 0x2000); - else if (offset < 0x3000) - return K056832_ram_attr_lo_r(offset - 0x2800); - else // (offset < 0x3800) - return K056832_ram_attr_hi_r(offset - 0x3000); - } - - return 0; -} - -static WRITE8_HANDLER( le_4800_w ) -{ - if (cur_control2 & 0x10) // RAM enable - { - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - } - else - { - if (offset < 0x0800) - { - switch (offset) - { - case 0xc6: - sound_cmd_w(0, data); - break; - - case 0xc7: - sound_irq_w(0, data); - break; - - case 0x40: - case 0x41: - case 0x42: - case 0x43: - case 0x44: - case 0x45: - case 0x46: - K053244_w(offset-0x40, data); - break; - - case 0x80: - case 0x81: - case 0x82: - case 0x83: - case 0x84: - case 0x85: - case 0x86: - case 0x87: - case 0x88: - case 0x89: - case 0x8a: - case 0x8b: - case 0x8c: - case 0x8d: - case 0x8e: - case 0x8f: - case 0x90: - case 0x91: - case 0x92: - case 0x93: - case 0x94: - case 0x95: - case 0x96: - case 0x97: - case 0x98: - case 0x99: - case 0x9a: - case 0x9b: - case 0x9c: - case 0x9d: - case 0x9e: - case 0x9f: - K054000_w(offset-0x80, data); - break; - - default: - logerror("Unknown LE 48xx register write: %x to %x (PC=%x)\n", data, offset, activecpu_get_pc()); - break; - } - } - else if (offset < 0x1800) - { - K053245_w((offset - 0x0800) & 0x07ff, data); - - } - else if (offset < 0x2000) - K056832_ram_code_lo_w(offset - 0x1800, data); - else if (offset < 0x2800) - K056832_ram_code_hi_w(offset - 0x2000, data); - else if (offset < 0x3000) - K056832_ram_attr_lo_w(offset - 0x2800, data); - else // (offset < 0x3800) - K056832_ram_attr_hi_w(offset - 0x3000, data); - } -} - -// use one more palette entry for the BG color -static WRITE8_HANDLER(le_bgcolor_w) -{ - paletteram_xBBBBBGGGGGRRRRR_be_w(0x3800+offset, data); -} - -static READ8_HANDLER(guns_r) -{ - switch (offset) - { - case 0: - return GUNX(2)>>1; - break; - case 1: - if ((240-GUNY(3)) == 7) - return 0; - else - return (240-GUNY(3)); - break; - case 2: - return GUNX(4)>>1; - break; - case 3: - if ((240-GUNY(5)) == 7) - return 0; - else - return (240-GUNY(5)); - break; - } - - return 0; -} - -static READ8_HANDLER(gunsaux_r) -{ - int res = 0; - - if (GUNX(2) & 1) res |= 0x80; - if (GUNX(4) & 1) res |= 0x40; - - return res; -} - -static ADDRESS_MAP_START( le_main, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_BANK1) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x3fff) AM_RAM // work RAM - AM_RANGE(0x4000, 0x403f) AM_WRITE(K056832_w) - AM_RANGE(0x4040, 0x404f) AM_WRITE(K056832_b_w) - AM_RANGE(0x4080, 0x4080) AM_READ(MRA8_NOP) // watchdog - AM_RANGE(0x4090, 0x4090) AM_READNOP - AM_RANGE(0x40a0, 0x40a0) AM_READNOP - AM_RANGE(0x40c4, 0x40c4) AM_WRITE(control2_w) - AM_RANGE(0x40c8, 0x40d0) AM_WRITE(le_palette_control) // PCU1-PCU3 on the schematics - AM_RANGE(0x40d4, 0x40d7) AM_READ(guns_r) - AM_RANGE(0x40d8, 0x40d8) AM_READ(control2_r) - AM_RANGE(0x40d9, 0x40d9) AM_READ(input_port_0_r) - AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r) // top X bit of guns - AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w) - AM_RANGE(0x47fe, 0x47ff) AM_WRITE(le_bgcolor_w) // BG color - AM_RANGE(0x4800, 0x7fff) AM_READWRITE(le_4800_r, le_4800_w) AM_BASE(&paletteram) // bankswitched: RAM and registers - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK2) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( le_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xfa2f) AM_READWRITE(K054539_0_r, K054539_0_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(soundlatch2_w) - AM_RANGE(0xfc02, 0xfc02) AM_READ(soundlatch_r) - AM_RANGE(0xfc03, 0xfc03) AM_READNOP -ADDRESS_MAP_END - -/* sound */ - -INPUT_PORTS_START( lethalen ) - /* IN 0 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN 1 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR(Language) ) - PORT_DIPSETTING( 0x10, DEF_STR(English) ) - PORT_DIPSETTING( 0x00, DEF_STR(Spanish) ) - PORT_DIPNAME( 0x20, 0x00, "Game Type" ) - PORT_DIPSETTING( 0x20, "Street" ) - PORT_DIPSETTING( 0x00, "Arcade" ) - PORT_DIPNAME( 0x40, 0x40, "Coin Mechanism" ) - PORT_DIPSETTING( 0x40, "Common" ) - PORT_DIPSETTING( 0x00, "Independent" ) - PORT_DIPNAME( 0x0080, 0x0080, "Sound Output" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Stereo ) ) - - /* IN 2 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - /* IN 3 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - /* IN 4 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - /* IN 5 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( lethalej ) - /* IN 0 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN 1 */ - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR(Language) ) - PORT_DIPSETTING( 0x10, DEF_STR(English) ) - PORT_DIPSETTING( 0x00, DEF_STR(Spanish) ) - PORT_DIPNAME( 0x20, 0x00, "Game Type" ) - PORT_DIPSETTING( 0x20, "Street" ) - PORT_DIPSETTING( 0x00, "Arcade" ) - PORT_DIPNAME( 0x40, 0x40, "Coin Mechanism" ) - PORT_DIPSETTING( 0x40, "Common" ) - PORT_DIPSETTING( 0x00, "Independent" ) - PORT_DIPNAME( 0x0080, 0x0080, "Sound Output" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Stereo ) ) - - /* IN 2 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE - - /* IN 3 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE - - /* IN 4 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) PORT_REVERSE - - /* IN 5 */ - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) PORT_REVERSE -INPUT_PORTS_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1, - NULL, - sound_nmi -}; - -static MACHINE_START( lethalen ) -{ - state_save_register_global(cur_control2); - return 0; -} - -static MACHINE_RESET( lethalen ) -{ - UINT8 *prgrom = (UINT8 *)memory_region(REGION_CPU1); - - memory_set_bankptr(1, &prgrom[0x10000]); - memory_set_bankptr(2, &prgrom[0x48000]); -} -static const gfx_layout lethal_6bpp = -{ - 16,16, - RGN_FRAC(1,2), - 6, - { RGN_FRAC(1,2)+8,RGN_FRAC(1,2)+0, 8, 0, 24, 16 }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 8*32+0, 8*32+1, 8*32+2, 8*32+3, 8*32+4, 8*32+5, 8*32+6, 8*32+7 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }, - 128*8 -}; - -/* we use this decode instead of the one done by the sprite video start due to it being 6bpp */ -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &lethal_6bpp, 0x000/*0x400*/, 256 }, /* sprites tiles */ - { -1 } /* end of array */ -}; - -static MACHINE_DRIVER_START( lethalen ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", HD6309, 8000000) // ??? - MDRV_CPU_PROGRAM_MAP(le_main, 0) - MDRV_CPU_VBLANK_INT(lethalen_interrupt, 1) - - MDRV_CPU_ADD_TAG("sound", Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(le_sound, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(lethalen) - MDRV_MACHINE_RESET(lethalen) - - MDRV_NVRAM_HANDLER(lethalen) - - MDRV_GFXDECODE(gfxdecodeinfo) - - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1) - - MDRV_PALETTE_LENGTH(7168+1) - - MDRV_VIDEO_START(lethalen) - MDRV_VIDEO_UPDATE(lethalen) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( lethalej ) - MDRV_IMPORT_FROM(lethalen) - - MDRV_SCREEN_VISIBLE_AREA(224, 512-1, 16, 240-1) -MACHINE_DRIVER_END - -ROM_START( lethalen ) // US version UAE - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "191uae01.u4", 0x10000, 0x40000, CRC(dca340e3) SHA1(8efbba0e3a459bcfe23c75c584bf3a4ce25148bb) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - -ROM_START( lethalej ) // Japan version JAD - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "191jad01.u4", 0x10000, 0x40000, CRC(160a25c0) SHA1(1d3ed5a158e461a73c079fe24a8e9d5e2a87e126) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - -ROM_START( lethalux ) // US version ?, proto / hack?, very different to other sets - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "191xxx01.u4", 0x10000, 0x40000, CRC(a3b9e790) SHA1(868b422850be129952c8b11c3c4aa730d8ea1544) ) // hacked? fails rom test - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - -ROM_START( letheab ) // Euro ver. EAB - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "191eab01.u4", 0x10000, 0x40000, CRC(d7ce111e) SHA1(e56137a0ba7664f09b5d05bb39ec6eb4d1e412c7) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - -ROM_START( letheae ) // Euro ver. EAE - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "191eae01.u4", 0x10000, 0x40000, CRC(c6a3c6ac) SHA1(96a209a3a5b4af40af36bd7090c59a74f8c8df59) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - -ROM_START( lethalua ) // *might* be UAA (writes UA to Eeprom) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD( "6_usa.u4", 0x10000, 0x40000, CRC(ab6b8f16) SHA1(8de6c429a6e71144270e79d18ad47b5aad13fe04) ) - - ROM_REGION( 0x020000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "191a02.f4", 0x000000, 0x010000, CRC(72b843cc) SHA1(b44b2f039358c26fa792d740639b66a5c8bf78e7) ) - ROM_RELOAD( 0x010000, 0x010000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD32_WORD( "191a08", 0x000002, 0x100000, CRC(555bd4db) SHA1(d2e55796b4ab2306ae549fa9e7288e41eaa8f3de) ) - ROM_LOAD32_WORD( "191a10", 0x000000, 0x100000, CRC(2fa9bf51) SHA1(1e4ec56b41dfd8744347a7b5799e3ebce0939adc) ) - ROM_LOAD32_WORD( "191a07", 0x200002, 0x100000, CRC(1dad184c) SHA1(b2c4a8e48084005056aef2c8eaccb3d2eca71b73) ) - ROM_LOAD32_WORD( "191a09", 0x200000, 0x100000, CRC(e2028531) SHA1(63ccce7855d829763e9e248a6c3eb6ea89ab17ee) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_ERASE00 ) - /* sprites - fake 6bpp decode is done from here */ - ROM_LOAD( "191a04", 0x000000, 0x100000, CRC(5c3eeb2b) SHA1(33ea8b3968b78806334b5a0aab3a2c24e45c604e) ) - ROM_LOAD( "191a05", 0x100000, 0x100000, CRC(f2e3b58b) SHA1(0bbc2fe87a4fd00b5073a884bcfebcf9c2c402ad) ) - ROM_LOAD( "191a06", 0x200000, 0x100000, CRC(ee11fc08) SHA1(ec6dd684e8261b181d65b8bf1b9e97da5c4468f7) ) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0,0, 0x200000) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_ERASE00 ) - ROM_COPY(REGION_GFX2,0x200000,0, 0x200000) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "191a03", 0x000000, 0x200000, CRC(9b13fbe8) SHA1(19b02dbd9d6da54045b0ba4dfe7b282c72745c9c)) -ROM_END - - - -static DRIVER_INIT( lethalen ) -{ - konami_rom_deinterleave_2_half(REGION_GFX2); - konami_rom_deinterleave_2(REGION_GFX3); - konami_rom_deinterleave_2(REGION_GFX4); -} - -GAME( 1992, lethalen, 0, lethalen, lethalen, lethalen, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", GAME_IMPERFECT_GRAPHICS) // writes UE to eeprom -GAME( 1992, lethalua, lethalen, lethalen, lethalen, lethalen, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver unknown, US, 08/17/92 21:38)", GAME_IMPERFECT_GRAPHICS) // UAA? (writes UA to eeprom) -GAME( 1992, lethalux, lethalen, lethalen, lethalen, lethalen, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver unknown, US, 08/06/92 15:11, hacked/proto?)", GAME_IMPERFECT_GRAPHICS) // writes UA to eeprom but earlier than suspected UAA set, might be a proto, might be hacked, fails rom test -GAME( 1992, letheab, lethalen, lethalen, lethalen, lethalen, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAB, 10/14/92 19:53)", GAME_IMPERFECT_GRAPHICS) // writes EC to eeprom?! -GAME( 1992, letheae, lethalen, lethalen, lethalen, lethalen, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver EAE, 11/19/92 16:24)", GAME_IMPERFECT_GRAPHICS) // writes EE to eeprom -// different mirror / display setup, shoot off the top of the screen to reload.. -GAME( 1992, lethalej, lethalen, lethalej, lethalej, lethalen, ORIENTATION_FLIP_X, "Konami", "Lethal Enforcers (ver JAD, 12/04/92 17:16)", GAME_IMPERFECT_GRAPHICS) // writes JC to eeprom?! diff --git a/src/drivers/m72.c b/src/drivers/m72.c deleted file mode 100644 index b88971b11..000000000 --- a/src/drivers/m72.c +++ /dev/null @@ -1,3402 +0,0 @@ -/*************************************************************************** - -IREM M72 board - -driver by Nicola Salmoria -protection information by Nao - - Year Board Protected? -R-Type 1987 M72 N -Battle Chopper / Mr. Heli 1987 M72 Y -Ninja Spirit 1988 M72 Y -Image Fight 1988 M72 Y -Legend of Hero Tonma 1989 M72 Y -X Multiply 1989 M72(1) Y -Dragon Breed 1989 M81 N -Dragon Breed 1989 M72 Y -R-Type II 1989 M82/M84(2) N -Major Title 1990 M84 N -Hammerin' Harry / Daiku no Gensan 1990 M82(3) N - Daiku no Gensan 1990 M72(4) Y -Pound for Pound 1990 M85 N -Air Duel 1990 M72? Y -Cosmic Cop / 1991 M84 N - Gallop - Armed Police Unit 1991 M72 N -Ken-Go 1991 ? Encrypted - -(1) different addressing PALs, so different memory map -(2) rtype2j has M84 written on the board, but it's the same hardware as rtype2 -(3) multiple versions supported, running on different hardware -(4) normal M72 memory map, but IRQ vectors and sprite control as in X-Multiply - - -TODO: -- majtitle_gfx_ctrl_w is unknown, it seems to be used to disable rowscroll, - and maybe other things - -- Maybe there is a layer enable register, e.g. nspirit shows (for an instant) - incomplete screens with bad colors when you start a game. - -- A lot of unknown I/O writes from the sound CPU in Pound for Pound. - -- the sprite chip triggers IRQ1 when it has finished copying the sprite RAM to its - private buffer. This isn't implemented (all games have an empty IRQ1 handler). - The cpu board also has support for IRQ3 and IRQ4, coming from the external - connectors, but I don't think they are used by any game. - -IRQ controller --------------- -The initialization consists of one write to port 0x40 and multiple writes -(2 or 3) to port 0x42. The first value written to 0x42 is the IRQ vector base. -Kengo probably has a different controller. - -Game irqbase 0x40 0x42 ----- ------- ---- ---------- -rtype 0x20 17 20 0F -bchopper " " " -nspirit " " " -loht " " " -rtype2 " " " -airduel " " " -gallop " " " -imgfight 0x20 17 20 0F 06 -majtitle " " " -poundfor 0x20 17 20 0F 0A -xmultipl 0x08 13 08 0F FA -dbreed " " " -hharry " " " -cosmccop 0x18 -------------- -kengo 0x18 -------------- - -***************************************************************************/ - -#include "driver.h" -#include "machine/irem_cpu.h" -#include "sndhrdw/m72.h" -#include "sound/dac.h" -#include "sound/2151intf.h" - - -/* in vidhrdw/m72.c */ -extern UINT8 *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram; -MACHINE_RESET( m72 ); -MACHINE_RESET( xmultipl ); -MACHINE_RESET( kengo ); -INTERRUPT_GEN( m72_interrupt ); -VIDEO_START( m72 ); -VIDEO_START( rtype2 ); -VIDEO_START( majtitle ); -VIDEO_START( hharry ); -VIDEO_START( poundfor ); -READ8_HANDLER( m72_palette1_r ); -READ8_HANDLER( m72_palette2_r ); -WRITE8_HANDLER( m72_palette1_w ); -WRITE8_HANDLER( m72_palette2_w ); -READ8_HANDLER( m72_videoram1_r ); -READ8_HANDLER( m72_videoram2_r ); -WRITE8_HANDLER( m72_videoram1_w ); -WRITE8_HANDLER( m72_videoram2_w ); -WRITE8_HANDLER( m72_irq_line_w ); -WRITE8_HANDLER( m72_scrollx1_w ); -WRITE8_HANDLER( m72_scrollx2_w ); -WRITE8_HANDLER( m72_scrolly1_w ); -WRITE8_HANDLER( m72_scrolly2_w ); -WRITE8_HANDLER( m72_dmaon_w ); -WRITE8_HANDLER( m72_port02_w ); -WRITE8_HANDLER( rtype2_port02_w ); -WRITE8_HANDLER( majtitle_gfx_ctrl_w ); -VIDEO_UPDATE( m72 ); -VIDEO_UPDATE( majtitle ); - - -static UINT8 *protection_ram; - - - -/*************************************************************************** - -Sample playback - -In the later games, the sound CPU can program the start offset of the PCM -samples, but it seems the earlier games have them hardcoded somewhere (maybe -the protection MCU?). -So, here I provided some tables with the start offset precomputed. -They could be built automatically in most cases (00 marks the end of a -sample), but a couple of games (nspirit, loht) have holes in the numbering -so we would have to do them differently anyway. - -Also, some games (dkgenm72, poundfor, airduel, gallop) have an empty NMI -handler, so the sample playback has to be handled entirely by external -hardware; we work around that by using (for all games, not just the ones -without a NMI handler) a NMI interrupt gen that mimics the behaviour of -the NMI handler in the other games. - -***************************************************************************/ - -#if 0 -static int find_sample(int num) -{ - UINT8 *rom = memory_region(REGION_SOUND1); - int len = memory_region_length(REGION_SOUND1); - int addr = 0; - - while (num--) - { - /* find end of sample */ - while (addr < len && rom[addr]) addr++; - - /* skip 0 filler between samples */ - while (addr < len && !rom[addr]) addr++; - } - - return addr; -} -#endif - -static INTERRUPT_GEN(fake_nmi) -{ - int sample = m72_sample_r(0); - if (sample) - m72_sample_w(0,sample); -} - - -static WRITE8_HANDLER( bchopper_sample_trigger_w ) -{ - static const int a[6] = { 0x0000, 0x0010, 0x2510, 0x6510, 0x8510, 0x9310 }; - if (data < 6) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( nspirit_sample_trigger_w ) -{ - static const int a[9] = { 0x0000, 0x0020, 0x2020, 0, 0x5720, 0, 0x7b60, 0x9b60, 0xc360 }; - if (data < 9) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( imgfight_sample_trigger_w ) -{ - static const int a[7] = { 0x0000, 0x0020, 0x44e0, 0x98a0, 0xc820, 0xf7a0, 0x108c0 }; - if (data < 7) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( loht_sample_trigger_w ) -{ - static const int a[7] = { 0x0000, 0x0020, 0, 0x2c40, 0x4320, 0x7120, 0xb200 }; - if (data < 7) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( xmultipl_sample_trigger_w ) -{ - static const int a[3] = { 0x0000, 0x0020, 0x1a40 }; - if (data < 3) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( dbreed72_sample_trigger_w ) -{ - static const int a[9] = { 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 }; - if (data < 9) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( airduel_sample_trigger_w ) -{ - static const int a[16] = { - 0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60, - 0x112e0, 0x13dc0, 0x16520, 0x16d60, 0x18ae0, 0x1a5a0, 0x1bf00, 0x1c340 }; - if (data < 16) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( dkgenm72_sample_trigger_w ) -{ - static const int a[28] = { - 0x00000, 0x00020, 0x01800, 0x02da0, 0x03be0, 0x05ae0, 0x06100, 0x06de0, - 0x07260, 0x07a60, 0x08720, 0x0a5c0, 0x0c3c0, 0x0c7a0, 0x0e140, 0x0fb00, - 0x10fa0, 0x10fc0, 0x10fe0, 0x11f40, 0x12b20, 0x130a0, 0x13c60, 0x14740, - 0x153c0, 0x197e0, 0x1af40, 0x1c080 }; - - if (data < 28) m72_set_sample_start(a[data]); -} - -static WRITE8_HANDLER( gallop_sample_trigger_w ) -{ - static const int a[31] = { - 0x00000, 0x00020, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0, - 0x08660, 0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0, - 0x10200, 0x10220, 0x10240, 0x11380, 0x12760, 0x12780, 0x127a0, 0x13c40, - 0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60, 0x1bbc0, 0x1cee0 }; - - if (data < 31) m72_set_sample_start(a[data]); -} - - - -/*************************************************************************** - -Protection simulation - -Most of the games running on this board have an 8751 protection mcu. -It is not known how it works in detail, however it's pretty clear that it -shares RAM at b0000-b0fff. -On startup, the game writes a pattern to the whole RAM, then reads it back -expecting it to be INVERTED. If it isn't, it reports a RAM error. -If the RAM passes the test, the program increments every byte up to b0ffb, -then calls a subroutine at b0000, which has to be provided by the mcu. -It seems that this routine is not supposed to RET, but instead it should -jump directly to the game entry point. The routine should also write some -bytes here and there in RAM (different in every game); those bytes are -checked at various points during the game, causing a crash if they aren't -right. -Note that the program keeps incrementing b0ffe while the game is running, -maybe this is done to keep the 8751 alive. We don't bother with that. - -Finally, to do the ROM test the program asks the mcu to provide the correct -values. This is done only in service, so doesn't seem to be much of a -protection. Here we have provided the correct crcs for the available dumps, -of course there is no guarantee that they are actually good. - -All the protection routines below are entirely made up. They get the games -running, but they have not been derived from the real 8751 code. - -***************************************************************************/ - -#define CODE_LEN 96 -#define CRC_LEN 18 - -/* Battle Chopper / Mr. Heli */ -static UINT8 bchopper_code[CODE_LEN] = -{ - 0x68,0x00,0xa0, // push 0a000h - 0x1f, // pop ds - 0xc6,0x06,0x38,0x38,0x53, // mov [3838h], byte 053h - 0xc6,0x06,0x3a,0x38,0x41, // mov [383ah], byte 041h - 0xc6,0x06,0x3c,0x38,0x4d, // mov [383ch], byte 04dh - 0xc6,0x06,0x3e,0x38,0x4f, // mov [383eh], byte 04fh - 0xc6,0x06,0x40,0x38,0x54, // mov [3840h], byte 054h - 0xc6,0x06,0x42,0x38,0x4f, // mov [3842h], byte 04fh - 0x68,0x00,0xb0, // push 0b000h - 0x1f, // pop ds - 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h - 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h - 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h - 0xc6,0x06,0x00,0x00,0xcb^0xff, // mov [0000h], byte 0cbh ; retf : bypass protection check during the game - 0x68,0x00,0xd0, // push 0d000h - 0x1f, // pop ds - // the following is for mrheli only, the game checks for - // "This game can only be played in Japan..." message in the video text buffer - // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu - 0xc6,0x06,0x70,0x16,0x77, // mov [1670h], byte 077h - 0xea,0x68,0x01,0x40,0x00 // jmp 0040:$0168 -}; -static UINT8 bchopper_crc[CRC_LEN] = { 0x1a,0x12,0x5c,0x08, 0x84,0xb6,0x73,0xd1, - 0x54,0x91,0x94,0xeb, 0x00,0x00 }; -static UINT8 mrheli_crc[CRC_LEN] = { 0x24,0x21,0x1f,0x14, 0xf9,0x28,0xfb,0x47, - 0x4c,0x77,0x9e,0xc2, 0x00,0x00 }; - -/* Ninja Spirit */ -static UINT8 nspirit_code[CODE_LEN] = -{ - 0x68,0x00,0xa0, // push 0a000h - 0x1f, // pop ds - 0xc6,0x06,0x38,0x38,0x4e, // mov [3838h], byte 04eh - 0xc6,0x06,0x3a,0x38,0x49, // mov [383ah], byte 049h - 0xc6,0x06,0x3c,0x38,0x4e, // mov [383ch], byte 04eh - 0xc6,0x06,0x3e,0x38,0x44, // mov [383eh], byte 044h - 0xc6,0x06,0x40,0x38,0x4f, // mov [3840h], byte 04fh - 0xc6,0x06,0x42,0x38,0x55, // mov [3842h], byte 055h - 0x68,0x00,0xb0, // push 0b000h - 0x1f, // pop ds - 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h - 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h - 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h - 0x68,0x00,0xd0, // push 0d000h - 0x1f, // pop ds - // the following is for nspiritj only, the game checks for - // "This game can only be played in Japan..." message in the video text buffer - // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu - 0xc6,0x06,0x70,0x16,0x57, // mov [1670h], byte 057h - 0xc6,0x06,0x71,0x16,0x00, // mov [1671h], byte 000h - 0xea,0x00,0x00,0x40,0x00 // jmp 0040:$0000 -}; -static UINT8 nspirit_crc[CRC_LEN] = { 0xfe,0x94,0x6e,0x4e, 0xc8,0x33,0xa7,0x2d, - 0xf2,0xa3,0xf9,0xe1, 0xa9,0x6c,0x02,0x95, 0x00,0x00 }; -static UINT8 nspiritj_crc[CRC_LEN] = { 0x26,0xa3,0xa5,0xe9, 0xc8,0x33,0xa7,0x2d, - 0xf2,0xa3,0xf9,0xe1, 0xbc,0x6c,0x01,0x95, 0x00,0x00 }; - -/* Image Fight */ -static UINT8 imgfight_code[CODE_LEN] = -{ - 0x68,0x00,0xa0, // push 0a000h - 0x1f, // pop ds - 0xc6,0x06,0x38,0x38,0x50, // mov [3838h], byte 050h - 0xc6,0x06,0x3a,0x38,0x49, // mov [383ah], byte 049h - 0xc6,0x06,0x3c,0x38,0x43, // mov [383ch], byte 043h - 0xc6,0x06,0x3e,0x38,0x4b, // mov [383eh], byte 04bh - 0xc6,0x06,0x40,0x38,0x45, // mov [3840h], byte 045h - 0xc6,0x06,0x42,0x38,0x54, // mov [3842h], byte 054h - 0x68,0x00,0xb0, // push 0b000h - 0x1f, // pop ds - 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h - 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h - 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h - 0xc6,0x06,0x20,0x09,0x49^0xff, // mov [0920h], byte 049h - 0xc6,0x06,0x21,0x09,0x4d^0xff, // mov [0921h], byte 04dh - 0xc6,0x06,0x22,0x09,0x41^0xff, // mov [0922h], byte 041h - 0xc6,0x06,0x23,0x09,0x47^0xff, // mov [0923h], byte 047h - 0x68,0x00,0xd0, // push 0d000h - 0x1f, // pop ds - // the game checks for - // "This game can only be played in Japan..." message in the video text buffer - // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu - 0xc6,0x06,0xb0,0x1c,0x57, // mov [1cb0h], byte 057h - 0xea,0x00,0x00,0x40,0x00 // jmp 0040:$0000 -}; -static UINT8 imgfight_crc[CRC_LEN] = { 0x7e,0xcc,0xec,0x03, 0x04,0x33,0xb6,0xc5, - 0xbf,0x37,0x92,0x94, 0x00,0x00 }; - -/* Legend of Hero Tonma */ -static UINT8 loht_code[CODE_LEN] = -{ - 0x68,0x00,0xa0, // push 0a000h - 0x1f, // pop ds - 0xc6,0x06,0x3c,0x38,0x47, // mov [383ch], byte 047h - 0xc6,0x06,0x3d,0x38,0x47, // mov [383dh], byte 047h - 0xc6,0x06,0x42,0x38,0x44, // mov [3842h], byte 044h - 0xc6,0x06,0x43,0x38,0x44, // mov [3843h], byte 044h - 0x68,0x00,0xb0, // push 0b000h - 0x1f, // pop ds - 0xc6,0x06,0x00,0x09,0x49^0xff, // mov [0900h], byte 049h - 0xc6,0x06,0x00,0x0a,0x49^0xff, // mov [0a00h], byte 049h - 0xc6,0x06,0x00,0x0b,0x49^0xff, // mov [0b00h], byte 049h - 0xea,0x5d,0x01,0x40,0x00 // jmp 0040:$015d -}; -static UINT8 loht_crc[CRC_LEN] = { 0x39,0x00,0x82,0xae, 0x2c,0x9d,0x4b,0x73, - 0xfb,0xac,0xd4,0x6d, 0x6d,0x5b,0x77,0xc0, 0x00,0x00 }; - -/* X Multiply */ -static UINT8 xmultipl_code[CODE_LEN] = -{ - 0xea,0x30,0x02,0x00,0x0e // jmp 0e00:$0230 -}; -static UINT8 xmultipl_crc[CRC_LEN] = { 0x73,0x82,0x4e,0x3f, 0xfc,0x56,0x59,0x06, - 0x05,0x48,0xa8,0xf4, 0x00,0x00 }; - -/* Dragon Breed */ -static UINT8 dbreed72_code[CODE_LEN] = -{ - 0xea,0x6c,0x00,0x00,0x00 // jmp 0000:$006c -}; -static UINT8 dbreed72_crc[CRC_LEN] = { 0xa4,0x96,0x5f,0xc0, 0xab,0x49,0x9f,0x19, - 0x84,0xe6,0xd6,0xca, 0x00,0x00 }; - -/* Air Duel */ -static UINT8 airduel_code[CODE_LEN] = -{ - 0x68,0x00,0xd0, // push 0d000h - 0x1f, // pop ds - // the game checks for - // "This game can only be played in Japan..." message in the video text buffer - // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu - 0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h - 0xea,0x69,0x0b,0x00,0x00 // jmp 0000:$0b69 -}; -static UINT8 airduel_crc[CRC_LEN] = { 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea, - 0x00,0x00 }; - -/* Daiku no Gensan */ -static UINT8 dkgenm72_code[CODE_LEN] = -{ - 0xea,0x3d,0x00,0x00,0x10 // jmp 1000:$003d -}; -static UINT8 dkgenm72_crc[CRC_LEN] = { 0xc8,0xb4,0xdc,0xf8, 0xd3,0xba,0x48,0xed, - 0x79,0x08,0x1c,0xb3, 0x00,0x00 }; - - -static UINT8 *protection_code,*protection_crc; - -static READ8_HANDLER( protection_r ) -{ - memcpy(protection_ram,protection_code,CODE_LEN); - return protection_ram[0xffb+offset]; -} - -static WRITE8_HANDLER( protection_w ) -{ - protection_ram[offset] = data ^ 0xff;; - - if (offset == 0x0fff && data == 0) - memcpy(&protection_ram[0x0fe0],protection_crc,CRC_LEN); -} - -static void install_protection_handler(UINT8 *code,UINT8 *crc) -{ - protection_ram = auto_malloc(0x1000); - protection_code = code; - protection_crc = crc; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xb0fff, 0, 0, MRA8_BANK1); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0ffb, 0xb0ffb, 0, 0, protection_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xb0000, 0xb0fff, 0, 0, protection_w); - memory_set_bankptr(1, protection_ram); -} - -static DRIVER_INIT( bchopper ) -{ - install_protection_handler(bchopper_code,bchopper_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, bchopper_sample_trigger_w); -} - -static DRIVER_INIT( mrheli ) -{ - install_protection_handler(bchopper_code,mrheli_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, bchopper_sample_trigger_w); -} - -static DRIVER_INIT( nspirit ) -{ - install_protection_handler(nspirit_code,nspirit_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, nspirit_sample_trigger_w); -} - -static DRIVER_INIT( nspiritj ) -{ - install_protection_handler(nspirit_code,nspiritj_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, nspirit_sample_trigger_w); -} - -static DRIVER_INIT( imgfight ) -{ - install_protection_handler(imgfight_code,imgfight_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, imgfight_sample_trigger_w); -} - -static DRIVER_INIT( loht ) -{ - install_protection_handler(loht_code,loht_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, loht_sample_trigger_w); - - /* since we skip the startup tests, clear video RAM to prevent garbage on title screen */ - memset(m72_videoram2,0,0x4000); -} - -static DRIVER_INIT( xmultipl ) -{ - install_protection_handler(xmultipl_code,xmultipl_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, xmultipl_sample_trigger_w); -} - -static DRIVER_INIT( dbreed72 ) -{ - install_protection_handler(dbreed72_code,dbreed72_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, dbreed72_sample_trigger_w); -} - -static DRIVER_INIT( airduel ) -{ - install_protection_handler(airduel_code,airduel_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, airduel_sample_trigger_w); -} - -static DRIVER_INIT( dkgenm72 ) -{ - install_protection_handler(dkgenm72_code,dkgenm72_crc); - - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, dkgenm72_sample_trigger_w); -} - -static DRIVER_INIT( gallop ) -{ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xc0, 0xc0, 0, 0, gallop_sample_trigger_w); -} - - - - -static UINT8 *soundram; - - -static READ8_HANDLER( soundram_r ) -{ - return soundram[offset]; -} - -static WRITE8_HANDLER( soundram_w ) -{ - soundram[offset] = data; -} - - -static READ8_HANDLER( poundfor_trackball_r ) -{ - static int prev[4],diff[4]; - - if (offset == 0) - { - int i,curr; - - for (i = 0;i < 4;i++) - { - curr = readinputport(6+i); - diff[i] = (curr - prev[i]); - prev[i] = curr; - } - } - - switch (offset) - { - default: - case 0: - return diff[0] & 0xff; - case 1: - return diff[2] & 0xff; - case 2: - return ((diff[0] >> 8) & 0x1f) | (readinputport(0) & 0xe0); - case 3: - return ((diff[2] >> 8) & 0x1f) | (readinputport(1) & 0xe0); - case 4: - return diff[1] & 0xff; - case 5: - return diff[3] & 0xff; - case 6: - return ((diff[1] >> 8) & 0x1f); - case 7: - return ((diff[3] >> 8) & 0x1f); - } -} - - -#define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \ -static ADDRESS_MAP_START( NAME##_readmem, ADDRESS_SPACE_PROGRAM, 8 ) \ - AM_RANGE(0x00000, ROMSIZE-1) AM_READ(MRA8_ROM) \ - AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_READ(MRA8_RAM) \ - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) \ - AM_RANGE(0xc8000, 0xc8bff) AM_READ(m72_palette1_r) \ - AM_RANGE(0xcc000, 0xccbff) AM_READ(m72_palette2_r) \ - AM_RANGE(0xd0000, 0xd3fff) AM_READ(m72_videoram1_r) \ - AM_RANGE(0xd8000, 0xdbfff) AM_READ(m72_videoram2_r) \ - AM_RANGE(0xe0000, 0xeffff) AM_READ(soundram_r) \ - AM_RANGE(0xffff0, 0xfffff) AM_ROM \ -ADDRESS_MAP_END \ - \ -static ADDRESS_MAP_START( NAME##_writemem, ADDRESS_SPACE_PROGRAM, 8 ) \ - AM_RANGE(0x00000, ROMSIZE-1) AM_WRITE(MWA8_ROM) \ - AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_WRITE(MWA8_RAM) /* work RAM */ \ - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) \ - AM_RANGE(0xc8000, 0xc8bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) \ - AM_RANGE(0xcc000, 0xccbff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) \ - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) \ - AM_RANGE(0xd8000, 0xdbfff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) \ - AM_RANGE(0xe0000, 0xeffff) AM_WRITE(soundram_w) \ -ADDRESS_MAP_END - - -/* ROMSIZE WORKRAM */ -CPU1_MEMORY( rtype, 0x40000, 0x40000 ) -CPU1_MEMORY( m72, 0x80000, 0xa0000 ) -CPU1_MEMORY( xmultipl, 0x80000, 0x80000 ) -CPU1_MEMORY( dbreed72, 0x80000, 0x90000 ) - -static ADDRESS_MAP_START( dbreed_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0x88000, 0x8bfff) AM_READ(MRA8_RAM) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc8000, 0xc8bff) AM_READ(m72_palette1_r) - AM_RANGE(0xcc000, 0xccbff) AM_READ(m72_palette2_r) - AM_RANGE(0xd0000, 0xd3fff) AM_READ(m72_videoram1_r) - AM_RANGE(0xd8000, 0xdbfff) AM_READ(m72_videoram2_r) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dbreed_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x88000, 0x8bfff) AM_WRITE(MWA8_RAM) /* work RAM */ - AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(MWA8_RAM) /* leftover from protection?? */ - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xc8000, 0xc8bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xcc000, 0xccbff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0xd8000, 0xdbfff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rtype2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc8000, 0xc8bff) AM_READ(m72_palette1_r) - AM_RANGE(0xd0000, 0xd3fff) AM_READ(m72_videoram1_r) - AM_RANGE(0xd4000, 0xd7fff) AM_READ(m72_videoram2_r) - AM_RANGE(0xd8000, 0xd8bff) AM_READ(m72_palette2_r) - AM_RANGE(0xe0000, 0xe3fff) AM_READ(MRA8_RAM) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rtype2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w) - AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w) - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xc8000, 0xc8bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0xd4000, 0xd7fff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) - AM_RANGE(0xd8000, 0xd8bff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xe0000, 0xe3fff) AM_WRITE(MWA8_RAM) /* work RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( majtitle_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0xa0000, 0xa03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa4000, 0xa4bff) AM_READ(m72_palette2_r) - AM_RANGE(0xac000, 0xaffff) AM_READ(m72_videoram1_r) - AM_RANGE(0xb0000, 0xbffff) AM_READ(m72_videoram2_r) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc8000, 0xc83ff) AM_READ(MRA8_RAM) - AM_RANGE(0xcc000, 0xccbff) AM_READ(m72_palette1_r) - AM_RANGE(0xd0000, 0xd3fff) AM_READ(MRA8_RAM) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( majtitle_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa0000, 0xa03ff) AM_WRITE(MWA8_RAM) AM_BASE(&majtitle_rowscrollram) - AM_RANGE(0xa4000, 0xa4bff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xac000, 0xaffff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0xb0000, 0xbffff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) /* larger than the other games */ - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xc8000, 0xc83ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram_2) - AM_RANGE(0xcc000, 0xccbff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(MWA8_RAM) /* work RAM */ - AM_RANGE(0xe0000, 0xe0001) AM_WRITE(m72_irq_line_w) - AM_RANGE(0xe4000, 0xe4001) AM_WRITE(MWA8_RAM) /* playfield enable? 1 during screen transitions, 0 otherwise */ - AM_RANGE(0xec000, 0xec001) AM_WRITE(m72_dmaon_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hharry_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0xa0000, 0xa3fff) AM_READ(MRA8_RAM) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc8000, 0xc8bff) AM_READ(m72_palette1_r) - AM_RANGE(0xcc000, 0xccbff) AM_READ(m72_palette2_r) - AM_RANGE(0xd0000, 0xd3fff) AM_READ(m72_videoram1_r) - AM_RANGE(0xd8000, 0xdbfff) AM_READ(m72_videoram2_r) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hharry_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa0000, 0xa3fff) AM_WRITE(MWA8_RAM) /* work RAM */ - AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(MWA8_RAM) /* leftover from protection?? */ - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xc8000, 0xc8bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xcc000, 0xccbff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0xd8000, 0xdbfff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hharryu_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0xa0000, 0xa0bff) AM_READ(m72_palette1_r) - AM_RANGE(0xa8000, 0xa8bff) AM_READ(m72_palette2_r) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd0000, 0xd3fff) AM_READ(m72_videoram1_r) - AM_RANGE(0xd4000, 0xd7fff) AM_READ(m72_videoram2_r) - AM_RANGE(0xe0000, 0xe3fff) AM_READ(MRA8_RAM) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hharryu_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa0000, 0xa0bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xa8000, 0xa8bff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w) - AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w) - AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITE(MWA8_RAM) /* leftover from protection?? */ - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd0000, 0xd3fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0xd4000, 0xd7fff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) - AM_RANGE(0xe0000, 0xe3fff) AM_WRITE(MWA8_RAM) /* work RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kengo_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA8_ROM) - AM_RANGE(0xa0000, 0xa0bff) AM_READ(m72_palette1_r) - AM_RANGE(0xa8000, 0xa8bff) AM_READ(m72_palette2_r) - AM_RANGE(0xc0000, 0xc03ff) AM_READ(MRA8_RAM) - AM_RANGE(0x80000, 0x83fff) AM_READ(m72_videoram1_r) - AM_RANGE(0x84000, 0x87fff) AM_READ(m72_videoram2_r) - AM_RANGE(0xe0000, 0xe3fff) AM_READ(MRA8_RAM) - AM_RANGE(0xffff0, 0xfffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kengo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa0000, 0xa0bff) AM_WRITE(m72_palette1_w) AM_BASE(&paletteram) - AM_RANGE(0xa8000, 0xa8bff) AM_WRITE(m72_palette2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w) -AM_RANGE(0xb4000, 0xb4001) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w) - AM_RANGE(0xc0000, 0xc03ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x80000, 0x83fff) AM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1) - AM_RANGE(0x84000, 0x87fff) AM_WRITE(m72_videoram2_w) AM_BASE(&m72_videoram2) - AM_RANGE(0xe0000, 0xe3fff) AM_WRITE(MWA8_RAM) /* work RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_READ(input_port_3_r) - AM_RANGE(0x04, 0x04) AM_READ(input_port_4_r) - AM_RANGE(0x05, 0x05) AM_READ(input_port_5_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( poundfor_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_READ(input_port_3_r) - AM_RANGE(0x04, 0x04) AM_READ(input_port_4_r) - AM_RANGE(0x05, 0x05) AM_READ(input_port_5_r) - AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(m72_port02_w) /* coin counters, reset sound cpu, other stuff? */ - AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w) - AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w) - AM_RANGE(0x40, 0x43) AM_WRITE(MWA8_NOP) /* Interrupt controller, only written to at bootup */ - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) -/* { 0xc0, 0xc0 trigger sample, filled by init_ function */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( xmultipl_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(m72_port02_w) /* coin counters, reset sound cpu, other stuff? */ - AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w) - AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w) - AM_RANGE(0x40, 0x43) AM_WRITE(MWA8_NOP) /* Interrupt controller, only written to at bootup */ - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) -/* { 0xc0, 0xc0 trigger sample, filled by init_ function */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rtype2_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) - AM_RANGE(0x40, 0x43) AM_WRITE(MWA8_NOP) /* Interrupt controller, only written to at bootup */ - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( majtitle_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) - AM_RANGE(0x40, 0x43) AM_WRITE(MWA8_NOP) /* Interrupt controller, only written to at bootup */ - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) - AM_RANGE(0x8e, 0x8f) AM_WRITE(majtitle_gfx_ctrl_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hharry_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) /* coin counters, reset sound cpu, other stuff? */ - AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w) - AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w) - AM_RANGE(0x40, 0x43) AM_WRITE(MWA8_NOP) /* Interrupt controller, only written to at bootup */ - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kengo_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w) - AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) - AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w) - AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w) - AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w) - AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w) -//AM_RANGE(0x8c, 0x8f) AM_WRITE(MWA8_NOP) /* ??? */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_ram_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_RAM AM_BASE(&soundram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_rom_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r) - AM_RANGE(0x84, 0x84) AM_READ(m72_sample_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x06, 0x06) AM_WRITE(m72_sound_irq_ack_w) - AM_RANGE(0x82, 0x82) AM_WRITE(m72_sample_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rtype2_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x80, 0x80) AM_READ(soundlatch_r) - AM_RANGE(0x84, 0x84) AM_READ(m72_sample_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rtype2_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x80, 0x81) AM_WRITE(rtype2_sample_addr_w) - AM_RANGE(0x82, 0x82) AM_WRITE(m72_sample_w) - AM_RANGE(0x83, 0x83) AM_WRITE(m72_sound_irq_ack_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( poundfor_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x41, 0x41) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x42, 0x42) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( poundfor_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x10, 0x13) AM_WRITE(poundfor_sample_addr_w) - AM_RANGE(0x40, 0x40) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x41, 0x41) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x42, 0x42) AM_WRITE(m72_sound_irq_ack_w) -ADDRESS_MAP_END - - - -#define JOYSTICK_1 \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - -#define JOYSTICK_2 \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - -#define COIN_MODE_1 \ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) \ - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 8C_3C ) ) \ - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 5C_3C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - -#define COIN_MODE_2 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - - -INPUT_PORTS_START( rtype ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "50K 150K 250K 400K 600K" ) - PORT_DIPSETTING( 0x08, "100K 200K 350K 500K 700K" ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -/* identical but Demo Sounds is inverted */ -INPUT_PORTS_START( rtypep ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "50K 150K 250K 400K 600K" ) - PORT_DIPSETTING( 0x08, "100K 200K 350K 500K 700K" ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( bchopper ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "80K 200K 350K" ) - PORT_DIPSETTING( 0x00, "100K 250K 400K" ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( nspirit ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( imgfight ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x00, "Debug Mode 2lap" ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( loht ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hardest ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( xmultipl ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, "Upright (single)" ) PORT_CONDITION("DSW2", 0x10, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) PORT_CONDITION("DSW2", 0x10, PORTCOND_NOTEQUALS, 0x00) - PORT_DIPSETTING( 0x00, "Upright (double) On" ) PORT_CONDITION("DSW2", 0x10, PORTCOND_EQUALS, 0x00) - PORT_DIPSETTING( 0x02, "Upright (double) Off" ) PORT_CONDITION("DSW2", 0x10, PORTCOND_EQUALS, 0x00) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Upright (double) Mode" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( dbreed ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( rtype2 ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - /* Coin Mode 1 */ - COIN_MODE_1 - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) - PORT_DIPSETTING( 0x04, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Upright (2P)" ) - PORT_DIPSETTING( 0x18, DEF_STR( Cocktail ) ) - /* In stop mode, press 2 to stop and 1 to restart */ - PORT_DIPNAME( 0x20, 0x20, "Stop Mode" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( hharry ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, "Continue Limit" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Upright (2P)" ) - PORT_DIPSETTING( 0x06, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) - PORT_DIPSETTING( 0x08, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - /* Coin Mode 1 */ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, "2 Coins/1 Credit, 1 Coin/Continue" ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* Coin mode 2, not supported yet */ - // COIN_MODE_2 -INPUT_PORTS_END - -INPUT_PORTS_START( poundfor ) - PORT_START - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* high bits of trackball X */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* high bits of trackball X */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, "Round Time" ) - PORT_DIPSETTING( 0x02, "60" ) - PORT_DIPSETTING( 0x03, "90" ) - PORT_DIPSETTING( 0x01, "120" ) - PORT_DIPSETTING( 0x00, "150" ) - PORT_DIPNAME( 0x04, 0x04, "Matches/Credit (2P)" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x08, 0x08, "Rounds/Match" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x20, 0x20, "Trackball Size" ) - PORT_DIPSETTING( 0x20, "Small" ) - PORT_DIPSETTING( 0x00, "Large" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, "Upright (2P)" ) - PORT_DIPSETTING( 0x06, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) - PORT_DIPSETTING( 0x08, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - - /* Coin Mode 1 */ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit, 1 Coin/Continue" ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 - - PORT_START - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( airduel ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) - PORT_DIPSETTING( 0x08, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - - /* Coin Mode 1 */ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) -// PORT_DIPSETTING( 0x10, DEF_STR( Free-Play ) ) /* another free play */ - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* Coin Mode 2, not supported yet */ - // COIN_MODE_2 -INPUT_PORTS_END - -INPUT_PORTS_START( gallop ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, "Upright (2P)" ) - PORT_DIPSETTING( 0x06, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) - PORT_DIPSETTING( 0x08, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - /* Coin Mode 1 */ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, "2 Coins/1 Credit, 1 Coin/Continue" ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* Coin mode 2, not supported yet */ - // COIN_MODE_2 -INPUT_PORTS_END - -INPUT_PORTS_START( kengo ) - PORT_START - JOYSTICK_1 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START - JOYSTICK_2 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* sprite DMA complete */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) - PORT_DIPSETTING( 0x08, "Mode 1" ) - PORT_DIPSETTING( 0x00, "Mode 2" ) - /* Coin Mode 1 */ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, "2 Coins/1 Credit, 1 Coin/Continue" ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - /* Coin mode 2, not supported yet */ - // COIN_MODE_2 -INPUT_PORTS_END - - - -static const gfx_layout tilelayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,4), /* NUM characters */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 */ - RGN_FRAC(1,4), /* NUM characters */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode m72_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &spritelayout, 0, 16 }, - { REGION_GFX2, 0, &tilelayout, 256, 16 }, - { REGION_GFX3, 0, &tilelayout, 256, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode rtype2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &spritelayout, 0, 16 }, - { REGION_GFX2, 0, &tilelayout, 256, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode majtitle_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &spritelayout, 0, 16 }, - { REGION_GFX2, 0, &tilelayout, 256, 16 }, - { REGION_GFX3, 0, &spritelayout, 0, 16 }, - { -1 } /* end of array */ -}; - - - -static struct YM2151interface ym2151_interface = -{ - m72_ym2151_irq_handler -}; - - - -static MACHINE_DRIVER_START( rtype ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(rtype_readmem,rtype_writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_ram_map,0) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(m72) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(m72_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(m72) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( m72 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(m72_readmem,m72_writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_ram_map,0) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(m72) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(m72_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(m72) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dkgenm72 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(m72_readmem,m72_writemem) - MDRV_CPU_IO_MAP(readport,xmultipl_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_ram_map,0) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(m72_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(m72) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( xmultipl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(xmultipl_readmem,xmultipl_writemem) - MDRV_CPU_IO_MAP(readport,xmultipl_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_ram_map,0) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(m72_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(m72) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dbreed ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(dbreed_readmem,dbreed_writemem) - MDRV_CPU_IO_MAP(readport,hharry_writeport)//xmultipl_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(hharry) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dbreed72 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(dbreed72_readmem,dbreed72_writemem) - MDRV_CPU_IO_MAP(readport,xmultipl_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_ram_map,0) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(m72_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(m72) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( rtype2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(rtype2_readmem,rtype2_writemem) - MDRV_CPU_IO_MAP(readport,rtype2_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(m72) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(rtype2) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( majtitle ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(majtitle_readmem,majtitle_writemem) - MDRV_CPU_IO_MAP(readport,majtitle_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(m72) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(majtitle_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(majtitle) - MDRV_VIDEO_UPDATE(majtitle) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( hharry ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(hharry_readmem,hharry_writemem) - MDRV_CPU_IO_MAP(readport,hharry_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(hharry) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hharryu ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(hharryu_readmem,hharryu_writemem) - MDRV_CPU_IO_MAP(readport,rtype2_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(xmultipl) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(rtype2) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( poundfor ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(rtype2_readmem,rtype2_writemem) - MDRV_CPU_IO_MAP(poundfor_readport,rtype2_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(poundfor_sound_readport,poundfor_sound_writeport) - MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(m72) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(poundfor) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( kengo ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */ - MDRV_CPU_PROGRAM_MAP(kengo_readmem,kengo_writemem) - MDRV_CPU_IO_MAP(readport,kengo_writeport) - MDRV_CPU_VBLANK_INT(m72_interrupt,256) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_rom_map,0) - MDRV_CPU_IO_MAP(rtype2_sound_readport,rtype2_sound_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */ - /* IRQs are generated by main Z80 and YM2151 */ - MDRV_SCREEN_REFRESH_RATE(55) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(kengo) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 512) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 ) - MDRV_GFXDECODE(rtype2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(poundfor) - MDRV_VIDEO_UPDATE(m72) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( rtype ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD16_BYTE( "rt_r-h0-b.1b", 0x00001, 0x10000, CRC(591c7754) SHA1(0b9d5474bc5963224923126cf84d74a39b8270cc) ) - ROM_LOAD16_BYTE( "rt_r-l0-b.3b", 0x00000, 0x10000, CRC(a1928df0) SHA1(3001c1b87cd1d441ba1226fb5b9dd6268458c0e8) ) - ROM_LOAD16_BYTE( "rt_r-h1-b.1c", 0x20001, 0x10000, CRC(a9d71eca) SHA1(008d1dc289df2ae2ba8f93d319c2b2c108cb9b89) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "rt_r-l1-b.3c", 0x20000, 0x10000, CRC(0df3573d) SHA1(0144c846fd0bdb3e4d790f6cb7bb64829e931b76) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ - ROM_LOAD( "rt_r-01.1j", 0x10000, 0x10000, CRC(b28d1a60) SHA1(26d0b5a381f5b462a223cb474067c7b5e67706df) ) - ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) - ROM_LOAD( "rt_r-11.1l", 0x30000, 0x10000, CRC(bb182f1a) SHA1(93b24bb0d6abd5c42c84a041c79b1dcea568e443) ) - ROM_LOAD( "rt_r-20.3h", 0x40000, 0x10000, CRC(fc247c8a) SHA1(01cf0a60f47fa5e2ed430a3f075e69e6cb762a48) ) - ROM_LOAD( "rt_r-21.3j", 0x50000, 0x10000, CRC(5b41f5f3) SHA1(8f47a77fb6513b8f611671d34721e33d284dc035) ) - ROM_LOAD( "rt_r-30.3k", 0x60000, 0x10000, CRC(eb02a1cb) SHA1(60a394ab53afdcbbf9e88083b8dbe8c897170d77) ) - ROM_LOAD( "rt_r-31.3l", 0x70000, 0x10000, CRC(2bec510a) SHA1(3455e72095832135ac006944a1209e720ec5c8bf) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ - ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) - ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) - ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ - ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) - ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) - ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) -ROM_END - -ROM_START( rtypej ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD16_BYTE( "rt_r-h0-.1b", 0x00001, 0x10000, CRC(c2940df2) SHA1(cbccd205ef81a0e39990a34d46e3f7d52b62e385) ) - ROM_LOAD16_BYTE( "rt_r-l0-.3b", 0x00000, 0x10000, CRC(858cc0f6) SHA1(7a256fe3aa3a96e161dd485a90b18c421b61458b) ) - ROM_LOAD16_BYTE( "rt_r-h1-.1c", 0x20001, 0x10000, CRC(5bcededa) SHA1(4ada3fd207fa57751f8e3d885bc91b374e27035d) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "rt_r-l1-.3c", 0x20000, 0x10000, CRC(4821141c) SHA1(df6cf04c3ecd04b6f27a96871848904575414dae) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ - ROM_LOAD( "rt_r-01.1j", 0x10000, 0x10000, CRC(b28d1a60) SHA1(26d0b5a381f5b462a223cb474067c7b5e67706df) ) - ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) - ROM_LOAD( "rt_r-11.1l", 0x30000, 0x10000, CRC(bb182f1a) SHA1(93b24bb0d6abd5c42c84a041c79b1dcea568e443) ) - ROM_LOAD( "rt_r-20.3h", 0x40000, 0x10000, CRC(fc247c8a) SHA1(01cf0a60f47fa5e2ed430a3f075e69e6cb762a48) ) - ROM_LOAD( "rt_r-21.3j", 0x50000, 0x10000, CRC(5b41f5f3) SHA1(8f47a77fb6513b8f611671d34721e33d284dc035) ) - ROM_LOAD( "rt_r-30.3k", 0x60000, 0x10000, CRC(eb02a1cb) SHA1(60a394ab53afdcbbf9e88083b8dbe8c897170d77) ) - ROM_LOAD( "rt_r-31.3l", 0x70000, 0x10000, CRC(2bec510a) SHA1(3455e72095832135ac006944a1209e720ec5c8bf) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ - ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) - ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) - ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ - ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) - ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) - ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) -ROM_END - -ROM_START( rtypejp ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD16_BYTE( "db_b1.bin", 0x00001, 0x10000, CRC(c1865141) SHA1(3302b6529aa903d81eb2196d745eb4f7f8316857) ) - ROM_LOAD16_BYTE( "db_a1.bin", 0x00000, 0x10000, CRC(5ad2bd90) SHA1(0937dbbdf0cbce2e81cecf4d770bbd8c6bd82801) ) - ROM_LOAD16_BYTE( "db_b2.bin", 0x20001, 0x10000, CRC(b4f6407e) SHA1(4a00d8e104c580900b4feb318dd162b77b71d0a5) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "db_a2.bin", 0x20000, 0x10000, CRC(6098d86f) SHA1(c6c9c1c2c30d5f190c40e000004bd21606efb8b0) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ - ROM_LOAD( "rt_r-01.1j", 0x10000, 0x10000, CRC(b28d1a60) SHA1(26d0b5a381f5b462a223cb474067c7b5e67706df) ) - ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) - ROM_LOAD( "rt_r-11.1l", 0x30000, 0x10000, CRC(bb182f1a) SHA1(93b24bb0d6abd5c42c84a041c79b1dcea568e443) ) - ROM_LOAD( "rt_r-20.3h", 0x40000, 0x10000, CRC(fc247c8a) SHA1(01cf0a60f47fa5e2ed430a3f075e69e6cb762a48) ) - ROM_LOAD( "rt_r-21.3j", 0x50000, 0x10000, CRC(5b41f5f3) SHA1(8f47a77fb6513b8f611671d34721e33d284dc035) ) - ROM_LOAD( "rt_r-30.3k", 0x60000, 0x10000, CRC(eb02a1cb) SHA1(60a394ab53afdcbbf9e88083b8dbe8c897170d77) ) - ROM_LOAD( "rt_r-31.3l", 0x70000, 0x10000, CRC(2bec510a) SHA1(3455e72095832135ac006944a1209e720ec5c8bf) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ - ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) - ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) - ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ - ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) - ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) - ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) -ROM_END - -ROM_START( rtypeu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD16_BYTE( "rt_r-h0-a.1b", 0x00001, 0x10000, CRC(36008a4e) SHA1(832006cb14a34e1671e305cc8ae606c3c6185a6a) ) - ROM_LOAD16_BYTE( "rt_r-l0-a.3b", 0x00000, 0x10000, CRC(4aaa668e) SHA1(87059460b59f43f2ca8cd959d76f721facd9de96) ) - ROM_LOAD16_BYTE( "rt_r-h1-a.1c", 0x20001, 0x10000, CRC(7ebb2a53) SHA1(1466df19888c3374847eb77f702060647e49d6ad) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "rt_r-l1-a.3c", 0x20000, 0x10000, CRC(c28b103b) SHA1(f294a23c3917b97812eb4c7f3a99253fd0cbb7ea) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) /* Roms located on the M72-ROM-C rom board */ - ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */ - ROM_LOAD( "rt_r-01.1j", 0x10000, 0x10000, CRC(b28d1a60) SHA1(26d0b5a381f5b462a223cb474067c7b5e67706df) ) - ROM_LOAD( "rt_r-10.1k", 0x20000, 0x10000, CRC(d6a66298) SHA1(d2873d05aa3b257e7699c188880ac3daad672fa5) ) - ROM_LOAD( "rt_r-11.1l", 0x30000, 0x10000, CRC(bb182f1a) SHA1(93b24bb0d6abd5c42c84a041c79b1dcea568e443) ) - ROM_LOAD( "rt_r-20.3h", 0x40000, 0x10000, CRC(fc247c8a) SHA1(01cf0a60f47fa5e2ed430a3f075e69e6cb762a48) ) - ROM_LOAD( "rt_r-21.3j", 0x50000, 0x10000, CRC(5b41f5f3) SHA1(8f47a77fb6513b8f611671d34721e33d284dc035) ) - ROM_LOAD( "rt_r-30.3k", 0x60000, 0x10000, CRC(eb02a1cb) SHA1(60a394ab53afdcbbf9e88083b8dbe8c897170d77) ) - ROM_LOAD( "rt_r-31.3l", 0x70000, 0x10000, CRC(2bec510a) SHA1(3455e72095832135ac006944a1209e720ec5c8bf) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-a0.3c", 0x00000, 0x08000, CRC(4e212fb0) SHA1(687061ecade2ebd0bd1343c9c4a831791853f79c) ) /* tiles #1 */ - ROM_LOAD( "rt_b-a1.3d", 0x08000, 0x08000, CRC(8a65bdff) SHA1(130bf6af521f13247a739a95eab4bdaa24b2ac10) ) - ROM_LOAD( "rt_b-a2.3a", 0x10000, 0x08000, CRC(5a4ae5b9) SHA1(95c3b64f50e6f673b2bf9b40642c152da5009d25) ) - ROM_LOAD( "rt_b-a3.3e", 0x18000, 0x08000, CRC(73327606) SHA1(9529ecdedd30e2a0400fb1083117992cc18b5158) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Roms located on the M72-B-D rom board */ - ROM_LOAD( "rt_b-b0.3j", 0x00000, 0x08000, CRC(a7b17491) SHA1(5b390770e56ba2d35e108534d7eda8dca996fdf7) ) /* tiles #2 */ - ROM_LOAD( "rt_b-b1.3k", 0x08000, 0x08000, CRC(b9709686) SHA1(700905a3e9661e0874939f54da2909e1396ce596) ) - ROM_LOAD( "rt_b-b2.3h", 0x10000, 0x08000, CRC(433b229a) SHA1(14222eaa3e67e5a7f80eafcf22bac4eb2d485a9a) ) - ROM_LOAD( "rt_b-b3.3f", 0x18000, 0x08000, CRC(ad89b072) SHA1(e2683d0e7415f3abd147e518bf6c87e44744cd4f) ) -ROM_END - -ROM_START( bchopper ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "c-h0-b.rom", 0x00001, 0x10000, CRC(f2feab16) SHA1(03ee874658e0f59957f8425e1ebf9c938737cc19) ) - ROM_LOAD16_BYTE( "c-l0-b.rom", 0x00000, 0x10000, CRC(9f887096) SHA1(4f41ef29580fc026ea91d110ec6b2e6af83dbd9a) ) - ROM_LOAD16_BYTE( "c-h1-b.rom", 0x20001, 0x10000, CRC(a995d64f) SHA1(43eb2eb11e6875298a6ef2b18f0f5e587f1bba16) ) - ROM_LOAD16_BYTE( "c-l1-b.rom", 0x20000, 0x10000, CRC(41dda999) SHA1(4d07a399aaf16bc37b5488e3e4bb60e78811a099) ) - ROM_LOAD16_BYTE( "c-h3-b.rom", 0x60001, 0x10000, CRC(ab9451ca) SHA1(ec0e0ad592d8b21bb4e6927a452e3b7964cda015) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "c-l3-b.rom", 0x60000, 0x10000, CRC(11562221) SHA1(a2f136a487fb6f30350e8d1e26c0729eb0686c7d) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c-00-a.rom", 0x00000, 0x10000, CRC(f6e6e660) SHA1(e066e5ed37719cf2b6fd36e0117f11325bb06f9c) ) /* sprites */ - ROM_LOAD( "c-01-b.rom", 0x10000, 0x10000, CRC(708cdd37) SHA1(24f3fcd381422f0d75410c2af7a56744e3b4a699) ) - ROM_LOAD( "c-10-a.rom", 0x20000, 0x10000, CRC(292c8520) SHA1(c552090d295ee1c1ca611b0cddee356e509e2045) ) - ROM_LOAD( "c-11-b.rom", 0x30000, 0x10000, CRC(20904cf3) SHA1(71fe505f2da53c2eb445b7b758d257d6af42e6f1) ) - ROM_LOAD( "c-20-a.rom", 0x40000, 0x10000, CRC(1ab50c23) SHA1(43e2f11e5bbf157c47764e04e372f40ed68bab59) ) - ROM_LOAD( "c-21-b.rom", 0x50000, 0x10000, CRC(c823d34c) SHA1(47383214b6a60e0b1b70208b00c291f8ffed36bc) ) - ROM_LOAD( "c-30-a.rom", 0x60000, 0x10000, CRC(11f6c56b) SHA1(39a2a674698b044c84fea65ae41a9e003a50b639) ) - ROM_LOAD( "c-31-b.rom", 0x70000, 0x10000, CRC(23134ec5) SHA1(43453f8a13b51310e04729dc828d391ca9c04da2) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b-a0-b.rom", 0x00000, 0x10000, CRC(e46ed7bf) SHA1(75abb5f40629f7c40a610a44e068b6c4e3a5126e) ) /* tiles #1 */ - ROM_LOAD( "b-a1-b.rom", 0x10000, 0x10000, CRC(590605ff) SHA1(fbb5c0cebd28b08d4ce39db4055d6343620e0f1c) ) - ROM_LOAD( "b-a2-b.rom", 0x20000, 0x10000, CRC(f8158226) SHA1(bb3a8686cd89bb8265b6b9e03682cc0bf6533793) ) - ROM_LOAD( "b-a3-b.rom", 0x30000, 0x10000, CRC(0f07b9b7) SHA1(63dbec17097f07eb39299372b736fbbc1b11b65e) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b-b0-.rom", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) /* tiles #2 */ - ROM_LOAD( "b-b1-.rom", 0x10000, 0x10000, CRC(74ca16ee) SHA1(7984bc9a0b46e1b4a8ecac7528d57606305aad73) ) - ROM_LOAD( "b-b2-.rom", 0x20000, 0x10000, CRC(b82cca04) SHA1(c12b95be311205181b01d15021bcf9f01ed3e0a3) ) - ROM_LOAD( "b-b3-.rom", 0x30000, 0x10000, CRC(a7afc920) SHA1(92c75463ada39184e731b82ef2883ae6f1f67482) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "c-v0-b.rom", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) ) -ROM_END - -ROM_START( mrheli ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "mh-c-h0.bin", 0x00001, 0x10000, CRC(e2ca5646) SHA1(9f4fe2f0a45233325bd9336cabb925a1f625453b) ) - ROM_LOAD16_BYTE( "mh-c-l0.bin", 0x00000, 0x10000, CRC(643e23cd) SHA1(66998a6dfc7ef538540986b61d2414a5ef250d0d) ) - ROM_LOAD16_BYTE( "mh-c-h1.bin", 0x20001, 0x10000, CRC(8974e84d) SHA1(39e05c80e805dde45f2fc5fc429b75f9b599089c) ) - ROM_LOAD16_BYTE( "mh-c-l1.bin", 0x20000, 0x10000, CRC(5f8bda69) SHA1(48629d617bd48c9de9c6a567fb203258a56fdbbd) ) - ROM_LOAD16_BYTE( "mh-c-h3.bin", 0x60001, 0x10000, CRC(143f596e) SHA1(f9d444eebcd53dac925d14b7a2858803b7fd9ce2) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "mh-c-l3.bin", 0x60000, 0x10000, CRC(c0982536) SHA1(45399f8d0577c6e2a277a69303954ce5d2de7c07) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mh-c-00.bin", 0x00000, 0x20000, CRC(dec4e121) SHA1(92169b523f1600e994e016dc1959a52958e1d89d) ) /* sprites */ - ROM_LOAD( "mh-c-10.bin", 0x20000, 0x20000, CRC(7aaa151e) SHA1(efd980bb2eed7084354b7a4aa2f733cd2f876741) ) - ROM_LOAD( "mh-c-20.bin", 0x40000, 0x20000, CRC(eae0de74) SHA1(3a2469c0eeb18131f989807afb50228f57ccea30) ) - ROM_LOAD( "mh-c-30.bin", 0x60000, 0x20000, CRC(01d5052f) SHA1(5d5e70913bb7af48193c70209595f27a64fa6cac) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mh-b-a0.bin", 0x00000, 0x10000, CRC(6a0db256) SHA1(fa3a2dc03da5bbe06a9c9b3d4ed4fddb47c469ac) ) /* tiles #1 */ - ROM_LOAD( "mh-b-a1.bin", 0x10000, 0x10000, CRC(14ec9795) SHA1(4842e076115efe9daf00dab8f61516d28c19baae) ) - ROM_LOAD( "mh-b-a2.bin", 0x20000, 0x10000, CRC(dfcb510e) SHA1(2387cde4ec0bae176486e1f7541103fd557fe255) ) - ROM_LOAD( "mh-b-a3.bin", 0x30000, 0x10000, CRC(957e329b) SHA1(9d48a0b84915e1cef0b0311a3581991dc83ee199) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b-b0-.rom", 0x00000, 0x10000, CRC(b5b95776) SHA1(4685b56071b916ce712c45f24da8068dd7e40ed1) ) /* tiles #2 */ - ROM_LOAD( "b-b1-.rom", 0x10000, 0x10000, CRC(74ca16ee) SHA1(7984bc9a0b46e1b4a8ecac7528d57606305aad73) ) - ROM_LOAD( "b-b2-.rom", 0x20000, 0x10000, CRC(b82cca04) SHA1(c12b95be311205181b01d15021bcf9f01ed3e0a3) ) - ROM_LOAD( "b-b3-.rom", 0x30000, 0x10000, CRC(a7afc920) SHA1(92c75463ada39184e731b82ef2883ae6f1f67482) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "c-v0-b.rom", 0x00000, 0x10000, CRC(d0c27e58) SHA1(fec76217cc0c04c723989c3ec127a2bd33d64c60) ) -ROM_END - -ROM_START( nspirit ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "nin-c-h0.rom", 0x00001, 0x10000, CRC(035692fa) SHA1(d5ab54488344bf405063737ed55d68ff1e64b55f) ) - ROM_LOAD16_BYTE( "nin-c-l0.rom", 0x00000, 0x10000, CRC(9a405898) SHA1(b28d71c1a6410720a37e6b6518b3cc66d4c32972) ) - ROM_LOAD16_BYTE( "nin-c-h1.rom", 0x20001, 0x10000, CRC(cbc10586) SHA1(9b1935ea9ebb21fe42ee3a57d6c10f1e8516f23c) ) - ROM_LOAD16_BYTE( "nin-c-l1.rom", 0x20000, 0x10000, CRC(b75c9a4d) SHA1(03c28896cbe0c9f778c259d59d2e69796902daa8) ) - ROM_LOAD16_BYTE( "nin-c-h2.rom", 0x40001, 0x10000, CRC(8ad818fa) SHA1(dd25e79b656b7fc6c31d1f8971fd0916295ccdb0) ) - ROM_LOAD16_BYTE( "nin-c-l2.rom", 0x40000, 0x10000, CRC(c52ca78c) SHA1(2b40cce5a1f5c588b49634e7fd4bc28c9160fe43) ) - ROM_LOAD16_BYTE( "nin-c-h3.rom", 0x60001, 0x10000, CRC(501104ef) SHA1(e44e060c072affd359e52bf6606b1dd565368d44) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "nin-c-l3.rom", 0x60000, 0x10000, CRC(fd7408b8) SHA1(3cbe72835a561c50265a047f0f5cd62db48378fd) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-r00.rom", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */ - ROM_LOAD( "nin-r10.rom", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) ) - ROM_LOAD( "nin-r20.rom", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) ) - ROM_LOAD( "nin-r30.rom", 0x60000, 0x20000, CRC(175d2a24) SHA1(d1887efd4d8e74c38c53dbbc541ca8d17f29eb59) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) /* tiles #1 */ - ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, CRC(75eb8306) SHA1(2abc359a0bb2863759a68ed60e730761b9751829) ) - ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, CRC(df532172) SHA1(58b5a79a57e71405b3e1abd41d54cf6a4d12873a) ) - ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, CRC(4dedd64c) SHA1(8a5c73a024d95e6fe3ab70daafcd5b235418ad36) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-b0.rom", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) /* tiles #2 */ - ROM_LOAD( "nin-b1.rom", 0x10000, 0x10000, CRC(728727f0) SHA1(2f594c77a847ebee71c9da8a644f83ea2a1313d7) ) - ROM_LOAD( "nin-b2.rom", 0x20000, 0x10000, CRC(f87efd75) SHA1(16474c7ab57b4fbb5cb50799ea6a2326c66706b5) ) - ROM_LOAD( "nin-b3.rom", 0x30000, 0x10000, CRC(98856cb4) SHA1(aa4fbae972d2e827c75650a71ab4ef73a33cd018) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "nin-v0.rom", 0x00000, 0x10000, CRC(a32e8caf) SHA1(63d56ad3a63fb089056e4a170159120287594ea8) ) -ROM_END - -ROM_START( nspiritj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "c-h0", 0x00001, 0x10000, CRC(8603fab2) SHA1(2c5bc97b6c9648156969b4a9f139081dca19fa24) ) - ROM_LOAD16_BYTE( "c-l0", 0x00000, 0x10000, CRC(e520fa35) SHA1(05f7e5a1a5ada95809ffd941080fb2c2b54363b7) ) - ROM_LOAD16_BYTE( "nin-c-h1.rom", 0x20001, 0x10000, CRC(cbc10586) SHA1(9b1935ea9ebb21fe42ee3a57d6c10f1e8516f23c) ) - ROM_LOAD16_BYTE( "nin-c-l1.rom", 0x20000, 0x10000, CRC(b75c9a4d) SHA1(03c28896cbe0c9f778c259d59d2e69796902daa8) ) - ROM_LOAD16_BYTE( "nin-c-h2.rom", 0x40001, 0x10000, CRC(8ad818fa) SHA1(dd25e79b656b7fc6c31d1f8971fd0916295ccdb0) ) - ROM_LOAD16_BYTE( "nin-c-l2.rom", 0x40000, 0x10000, CRC(c52ca78c) SHA1(2b40cce5a1f5c588b49634e7fd4bc28c9160fe43) ) - ROM_LOAD16_BYTE( "c-h3", 0x60001, 0x10000, CRC(95b63a61) SHA1(bd5ec35fffe6d4898e6712eb6add7c51077b58d2) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "c-l3", 0x60000, 0x10000, CRC(e754a87a) SHA1(9951d972ed13a0415c827beff122bc7ddb078447) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-r00.rom", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */ - ROM_LOAD( "nin-r10.rom", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) ) - ROM_LOAD( "nin-r20.rom", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) ) - ROM_LOAD( "nin-r30.rom", 0x60000, 0x20000, CRC(175d2a24) SHA1(d1887efd4d8e74c38c53dbbc541ca8d17f29eb59) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, CRC(63f8f658) SHA1(82c02d0f7a2d95dfd8d300c46312d511524775ce) ) /* tiles #1 */ - ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, CRC(75eb8306) SHA1(2abc359a0bb2863759a68ed60e730761b9751829) ) - ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, CRC(df532172) SHA1(58b5a79a57e71405b3e1abd41d54cf6a4d12873a) ) - ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, CRC(4dedd64c) SHA1(8a5c73a024d95e6fe3ab70daafcd5b235418ad36) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "nin-b0.rom", 0x00000, 0x10000, CRC(1b0e08a6) SHA1(892686594970c264babbe8673c258929a5e480f6) ) /* tiles #2 */ - ROM_LOAD( "nin-b1.rom", 0x10000, 0x10000, CRC(728727f0) SHA1(2f594c77a847ebee71c9da8a644f83ea2a1313d7) ) - ROM_LOAD( "nin-b2.rom", 0x20000, 0x10000, CRC(f87efd75) SHA1(16474c7ab57b4fbb5cb50799ea6a2326c66706b5) ) - ROM_LOAD( "nin-b3.rom", 0x30000, 0x10000, CRC(98856cb4) SHA1(aa4fbae972d2e827c75650a71ab4ef73a33cd018) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "nin-v0.rom", 0x00000, 0x10000, CRC(a32e8caf) SHA1(63d56ad3a63fb089056e4a170159120287594ea8) ) -ROM_END - -ROM_START( imgfight ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "if-c-h0.bin", 0x00001, 0x10000, CRC(592d2d80) SHA1(d54916a9bfe4b65a972b62202af706135e73518d) ) - ROM_LOAD16_BYTE( "if-c-l0.bin", 0x00000, 0x10000, CRC(61f89056) SHA1(3e0724dbc2b00a30193ea6cfac8b4331055d4fd4) ) - ROM_LOAD16_BYTE( "if-c-h3.bin", 0x40001, 0x20000, CRC(ea030541) SHA1(ee4c12773ecced2d755443ce0ca78fb2b2c04805) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "if-c-l3.bin", 0x40000, 0x20000, CRC(c66ae348) SHA1(eca5096ebd5bffc6e68f3fc9969cda9679bd921f) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "if-c-00.bin", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) /* sprites */ - ROM_LOAD( "if-c-10.bin", 0x20000, 0x20000, CRC(b7108449) SHA1(1f41ebe7164fab86958caaf6749b99425e682657) ) - ROM_LOAD( "if-c-20.bin", 0x40000, 0x20000, CRC(aef33cba) SHA1(2d8a8458207d0c790c81b1285366463c8540d190) ) - ROM_LOAD( "if-c-30.bin", 0x60000, 0x20000, CRC(1f98e695) SHA1(5fddcfb17523f8e96f4b85f0cb15d837b81f2bd4) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "if-a-a0.bin", 0x00000, 0x10000, CRC(34ee2d77) SHA1(38826e0318aa8da893fa4c93f217288c015df606) ) /* tiles #1 */ - ROM_LOAD( "if-a-a1.bin", 0x10000, 0x10000, CRC(6bd2845b) SHA1(149cf14f919590da88b9a8e254690da010709862) ) - ROM_LOAD( "if-a-a2.bin", 0x20000, 0x10000, CRC(090d50e5) SHA1(4f2a7c76320b3f8dafae90a246187e034fe7562b) ) - ROM_LOAD( "if-a-a3.bin", 0x30000, 0x10000, CRC(3a8e3083) SHA1(8a75d556790b6bea41ead1a5f95589dd293bdf4e) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "if-a-b0.bin", 0x00000, 0x10000, CRC(b425c829) SHA1(0ccd487dba00bb7cb0ff5d1c67f8fee3e68df5d8) ) /* tiles #2 */ - ROM_LOAD( "if-a-b1.bin", 0x10000, 0x10000, CRC(e9bfe23e) SHA1(f97a68dbdce7e06d07faab19acf7625cdc8eeaa8) ) - ROM_LOAD( "if-a-b2.bin", 0x20000, 0x10000, CRC(256e50f2) SHA1(9e9fda4f1f1449548942c0da4478f61fe0d263d1) ) - ROM_LOAD( "if-a-b3.bin", 0x30000, 0x10000, CRC(4c682785) SHA1(f61f1227e0ad629fdfca106306b17a9f6a9959e3) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "if-c-v0.bin", 0x00000, 0x10000, CRC(cb64a194) SHA1(940fad6b9147bccc8290e112f5973f8ea062b52f) ) - ROM_LOAD( "if-c-v1.bin", 0x10000, 0x10000, CRC(45b68bf5) SHA1(2fb28793019ca85b3b6d7c4c31eedff1d71f2d83) ) -ROM_END - -ROM_START( loht ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "tom_c-h0.rom", 0x00001, 0x20000, CRC(a63204b6) SHA1(d217bc70650a1a1bbe0cf536ec3bb678f670718d) ) - ROM_LOAD16_BYTE( "tom_c-l0.rom", 0x00000, 0x20000, CRC(e788002f) SHA1(35f509976b342fd47e645453381faa3d86645876) ) - ROM_LOAD16_BYTE( "tom_c-h3.rom", 0x40001, 0x20000, CRC(714778b5) SHA1(e2eaa35d6b5fa5df5163fe0d7b45fa66667f9947) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "tom_c-l3.rom", 0x40000, 0x20000, CRC(2f049b03) SHA1(21047cb10912b1fc23795673af3ea7de249328b7) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tom_m53.rom", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) /* sprites */ - ROM_LOAD( "tom_m51.rom", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) ) - ROM_LOAD( "tom_m49.rom", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) ) - ROM_LOAD( "tom_m47.rom", 0x60000, 0x20000, CRC(9d81a25b) SHA1(a354537c2fbba85f06485aa8487d7583a7133357) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tom_m21.rom", 0x00000, 0x10000, CRC(3ca3e771) SHA1(be052e01c5429ee89057c9d408794f2c7744047c) ) /* tiles #1 */ - ROM_LOAD( "tom_m22.rom", 0x10000, 0x10000, CRC(7a05ee2f) SHA1(7d1ca5db9a5a85610129e3bc6c640ade036fe7f9) ) - ROM_LOAD( "tom_m20.rom", 0x20000, 0x10000, CRC(79aa2335) SHA1(6b70c79d800a7b755aa7c9a368c4ea74029aaa1e) ) - ROM_LOAD( "tom_m23.rom", 0x30000, 0x10000, CRC(789e8b24) SHA1(e957cd25c3c155ca295ab1aea03d610f91562cfb) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "tom_m26.rom", 0x00000, 0x10000, CRC(44626bf6) SHA1(571ef74d42d30a272ff0fb33f830652b4a4bad29) ) /* tiles #2 */ - ROM_LOAD( "tom_m27.rom", 0x10000, 0x10000, CRC(464952cf) SHA1(6b99360b6ba1ed5a72c257f51291f9f7a1ddf363) ) - ROM_LOAD( "tom_m25.rom", 0x20000, 0x10000, CRC(3db9b2c7) SHA1(02a318ffc459c494b7f40827eff5f89b41ac0426) ) - ROM_LOAD( "tom_m24.rom", 0x30000, 0x10000, CRC(f01fe899) SHA1(c5ab967b7af55a757638bcdc9975f4b15064022d) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "tom_m44.rom", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) ) -ROM_END - -ROM_START( xmultipl ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ch3.h3", 0x00001, 0x20000, CRC(20685021) SHA1(92f4216320bf525045223b9454fb5bb224c536d8) ) - ROM_LOAD16_BYTE( "cl3.l3", 0x00000, 0x20000, CRC(93fdd200) SHA1(dd4244ba0ce6c621136b0648374179da44363c01) ) - ROM_LOAD16_BYTE( "ch0.h0", 0x40001, 0x10000, CRC(9438dd8a) SHA1(dc85789c47d31a96300b4236dc43f065e1b01e4a) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "cl0.l0", 0x40000, 0x10000, CRC(06a9e213) SHA1(9831c110814642703d6e71d49848d854095b7d3a) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */ - ROM_LOAD( "t45.01", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) ) - ROM_LOAD( "t46.10", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) ) - ROM_LOAD( "t47.11", 0x60000, 0x20000, CRC(1263b24b) SHA1(0445a5381df3a868bed6967c8e5de7169e4be6a3) ) - ROM_LOAD( "t48.20", 0x80000, 0x20000, CRC(4129944f) SHA1(988b072032d1667c3ac0731fada32fb6978505dc) ) - ROM_LOAD( "t49.21", 0xa0000, 0x20000, CRC(2346e6f9) SHA1(b3de017dd0353e04d279f57e151c47f5fcc70e9c) ) - ROM_LOAD( "t50.30", 0xc0000, 0x20000, CRC(e322543e) SHA1(b4c3a7f202d81485d5f0a7b7668ee89fc1edb215) ) - ROM_LOAD( "t51.31", 0xe0000, 0x20000, CRC(229bf7b1) SHA1(ae42c7efbb6278dd3fa56842361138391f2d49ca) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) /* tiles #1 */ - ROM_LOAD( "t54.a1", 0x20000, 0x20000, CRC(076c16c5) SHA1(4be858806b916953d59aceee550e721eaf3996a6) ) - ROM_LOAD( "t55.a2", 0x40000, 0x20000, CRC(25d877a5) SHA1(48c948bf714c432f534c098123c8f50d5561756f) ) - ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */ - ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) ) - ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) ) - ROM_LOAD( "t60.b3", 0x60000, 0x20000, CRC(14c69f99) SHA1(4bea72f8bd421ef3ca559363f7473ce2e7038699) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "t52.v0", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) ) -ROM_END - -ROM_START( dbreed ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "db-a-h0-.59", 0x00001, 0x10000, CRC(e1177267) SHA1(f226f34ce85305870e659dd4f519bee30936af9a) ) - ROM_CONTINUE( 0x60001, 0x10000 ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "db-a-l0-.68", 0x00000, 0x10000, CRC(d82b167e) SHA1(f9ccb152feb31971230f61371a906bd900ef34e8) ) - ROM_CONTINUE( 0x60000, 0x10000 ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "db-a-sp-.14", 0x0000, 0x10000, CRC(54a61560) SHA1(e5fccfcedcadbab1667900f98370043c1907dd89) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */ - ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) ) - ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) ) - ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles */ - ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) - ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) - ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "db_a-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) ) -ROM_END - -ROM_START( dbreed72 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "db_c-h3.rom", 0x00001, 0x20000, CRC(4bf3063c) SHA1(3f970c9ece2ac700738e217e0b31b3aba2848ab2) ) - ROM_LOAD16_BYTE( "db_c-l3.rom", 0x00000, 0x20000, CRC(e4b89b79) SHA1(c312925940633e60fb5d0f05044c6e73e4f7fd54) ) - ROM_LOAD16_BYTE( "db_c-h0.rom", 0x60001, 0x10000, CRC(5aa79fb2) SHA1(b7b862699ddccf90cf18d3822703078668aa1dc7) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "db_c-l0.rom", 0x60000, 0x10000, CRC(ed0f5e06) SHA1(9030840b15e83c18d59c884ed08c93c05fa70c5b) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */ - ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) ) - ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) ) - ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #1 */ - ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) - ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) - ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #2 */ - ROM_LOAD( "db_k805m.b1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) ) - ROM_LOAD( "db_k806m.b2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) ) - ROM_LOAD( "db_k807m.b3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "db_c-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) ) -ROM_END - -ROM_START( rtype2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ic54.8d", 0x00001, 0x20000, CRC(d8ece6f4) SHA1(f7bb246fe8b75af24716d419bb3c6e7d9cd0971e) ) - ROM_LOAD16_BYTE( "ic60.9d", 0x00000, 0x20000, CRC(32cfb2e4) SHA1(d4b44a40e2933040eddb2b09de7bfe28d76c5f25) ) - ROM_LOAD16_BYTE( "ic53.8b", 0x40001, 0x20000, CRC(4f6e9b15) SHA1(ef733c2615951f54691877ad3e84d08107723324) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "ic59.9b", 0x40000, 0x20000, CRC(0fd123bf) SHA1(1133163f6716e9a4bbb437b3a471477d0bd97051) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ic17.4f", 0x0000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */ - ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) - ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) - ROM_LOAD( "ic22.4m", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) /* tiles */ - ROM_LOAD( "ic51.7u", 0x20000, 0x20000, CRC(b4c543af) SHA1(56042eba711160fc701021c8787414dcaddcdecb) ) - ROM_LOAD( "ic56.8s", 0x40000, 0x20000, CRC(4cb80d66) SHA1(31c5496c14b277e428a2f22195fe1742d6a577d4) ) - ROM_LOAD( "ic57.8u", 0x60000, 0x20000, CRC(bee128e0) SHA1(b149dae5f8f67a329d6df033fadf50ad75c0a57a) ) - ROM_LOAD( "ic65.9r", 0x80000, 0x20000, CRC(2dc9c71a) SHA1(124e89c17f3af034d5a387ff3eab906d289c27f7) ) - ROM_LOAD( "ic66.9u", 0xa0000, 0x20000, CRC(7533c428) SHA1(ba435cfb6c3c49fcc4d716dcecf8f17545b8eec6) ) - ROM_LOAD( "ic63.9m", 0xc0000, 0x20000, CRC(a6ad67f2) SHA1(b005b037ce8b3c932089982ecfbccdc922278fe3) ) - ROM_LOAD( "ic64.9p", 0xe0000, 0x20000, CRC(3686d555) SHA1(d03754d9b8a6a3bfd4a85eeddacc35a36af197bd) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) -ROM_END - -ROM_START( rtype2j ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "rt2-a-h0.54", 0x00001, 0x20000, CRC(7857ccf6) SHA1(9f6774a8128ee2dbb5b6c42289095275337bc73e) ) - ROM_LOAD16_BYTE( "rt2-a-l0.60", 0x00000, 0x20000, CRC(cb22cd6e) SHA1(a877cffbac9f55bca8932b12540a4686ba975684) ) - ROM_LOAD16_BYTE( "rt2-a-h1.53", 0x40001, 0x20000, CRC(49e75d28) SHA1(956bafaaa6711a8a13f2bffe43e8d05d51d8a3c9) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "rt2-a-l1.59", 0x40000, 0x20000, CRC(12ec1676) SHA1(10cee9a87dd954444b0e64fad7f15a5ae529890d) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ic17.4f", 0x0000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */ - ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) ) - ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) ) - ROM_LOAD( "ic22.4m", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic50.7s", 0x00000, 0x20000, CRC(f3f8736e) SHA1(37872b30459ad05b2981d4ac84983f3b52d0d2d6) ) /* tiles */ - ROM_LOAD( "ic51.7u", 0x20000, 0x20000, CRC(b4c543af) SHA1(56042eba711160fc701021c8787414dcaddcdecb) ) - ROM_LOAD( "ic56.8s", 0x40000, 0x20000, CRC(4cb80d66) SHA1(31c5496c14b277e428a2f22195fe1742d6a577d4) ) - ROM_LOAD( "ic57.8u", 0x60000, 0x20000, CRC(bee128e0) SHA1(b149dae5f8f67a329d6df033fadf50ad75c0a57a) ) - ROM_LOAD( "ic65.9r", 0x80000, 0x20000, CRC(2dc9c71a) SHA1(124e89c17f3af034d5a387ff3eab906d289c27f7) ) - ROM_LOAD( "ic66.9u", 0xa0000, 0x20000, CRC(7533c428) SHA1(ba435cfb6c3c49fcc4d716dcecf8f17545b8eec6) ) - ROM_LOAD( "ic63.9m", 0xc0000, 0x20000, CRC(a6ad67f2) SHA1(b005b037ce8b3c932089982ecfbccdc922278fe3) ) - ROM_LOAD( "ic64.9p", 0xe0000, 0x20000, CRC(3686d555) SHA1(d03754d9b8a6a3bfd4a85eeddacc35a36af197bd) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) ) -ROM_END - -ROM_START( majtitle ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "mt_m0.bin", 0x00001, 0x20000, CRC(b9682c70) SHA1(b979c0a630397f2a2eb73709cf12c5262c973782) ) - ROM_LOAD16_BYTE( "mt_l0.bin", 0x00000, 0x20000, CRC(702c9fd6) SHA1(84a5e9e64f4bf235d115f5648b4a108f710ade1d) ) - ROM_LOAD16_BYTE( "mt_m1.bin", 0x40001, 0x20000, CRC(d9e97c30) SHA1(97f59b614eeeced0a414f8a1693590525a58f788) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "mt_l1.bin", 0x40000, 0x20000, CRC(8dbd91b5) SHA1(2bd01f3fba0fa1ca4b6f8ff57e7dc4434c42ce48) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "mt_sp.bin", 0x0000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */ - ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) ) - ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) ) - ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */ - ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) ) - ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) ) - ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */ - ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) ) - ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) ) - ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) ) -ROM_END - -ROM_START( hharry ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "a-h0-v.rom", 0x00001, 0x20000, CRC(c52802a5) SHA1(7180189c886aebe8d3e7fd38922916cecfddae32) ) - ROM_LOAD16_BYTE( "a-l0-v.rom", 0x00000, 0x20000, CRC(f463074c) SHA1(aca86345610e65848c276ab278092d35ba215916) ) - ROM_LOAD16_BYTE( "a-h1-0.rom", 0x60001, 0x10000, CRC(3ae21335) SHA1(780d7a0c5bebe4b914ea5b3741e30630f8c29a4f) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "a-l1-0.rom", 0x60000, 0x10000, CRC(bc6ac5f9) SHA1(c6afba4967a8055f6b63827697425eac743f5a75) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a-sp-0.rom", 0x0000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ - ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) - ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) - ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ - ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) - ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) - ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) ) -ROM_END - -ROM_START( hharryu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "a-ho-u.8d", 0x00001, 0x20000, CRC(ede7f755) SHA1(adcec83d6b936ab1a14d039792b9375e9f803a08) ) - ROM_LOAD16_BYTE( "a-lo-u.9d", 0x00000, 0x20000, CRC(df0726ae) SHA1(7ef163d2e8c14a14328d4365705bb31540bdc7cb) ) - ROM_LOAD16_BYTE( "a-h1-f.8b", 0x60001, 0x10000, CRC(31b741c5) SHA1(46c1c4cea09477cc4989f3e06e08851d02743e62) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "a-l1-f.9b", 0x60000, 0x10000, CRC(b23e966c) SHA1(f506f6d1f4f7874070e91d1df8f141cca031ce29) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a-sp-0.rom", 0x0000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ - ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) - ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) - ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ - ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) - ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) - ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) ) -ROM_END - -ROM_START( dkgensan ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "gen-a-h0.bin", 0x00001, 0x20000, CRC(07a45f6d) SHA1(8ffbd395aad244747d9f87062d2b062f41a4829c) ) - ROM_LOAD16_BYTE( "gen-a-l0.bin", 0x00000, 0x20000, CRC(46478fea) SHA1(fd4ff544588535333c1b98fbc08446ef49b11212) ) - ROM_LOAD16_BYTE( "gen-a-h1.bin", 0x60001, 0x10000, CRC(54e5b73c) SHA1(5664f6e0a931b1c139e82dc98fcc9e38acd14616) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "gen-a-l1.bin", 0x60000, 0x10000, CRC(894f8a9f) SHA1(57a0885c52a094def03b129a450cc891e6c075c6) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "gen-a-sp.bin", 0x0000, 0x10000, CRC(e83cfc2c) SHA1(3193bdd06a9712fc499e6fc90a33140463ef59fe) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ - ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) - ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) - ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */ - ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) ) - ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) ) - ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) ) -ROM_END - -ROM_START( dkgenm72 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ge72-h0.bin", 0x00001, 0x20000, CRC(a0ad992c) SHA1(6de4105d8454c4e4e62762fdd7e22829acc2442b) ) - ROM_LOAD16_BYTE( "ge72-l0.bin", 0x00000, 0x20000, CRC(996396f0) SHA1(1a2501ba46bcbc607f772765e8614bc442154a18) ) - ROM_LOAD16_BYTE( "ge72-h3.bin", 0x60001, 0x10000, CRC(d8b86005) SHA1(dd626cfe50a823066c54cc24d9fdaaf03d61d1e7) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - ROM_LOAD16_BYTE( "ge72-l3.bin", 0x60000, 0x10000, CRC(23d303a5) SHA1(b62010f34d71afb590deae458493454f9af38f7c) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */ - ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) ) - ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) ) - ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ge72b-a0.bin", 0x00000, 0x10000, CRC(f5f56b2a) SHA1(4ef6602052fa70e765d6d7747e672b7108b44f59) ) /* tiles #1 */ - ROM_LOAD( "ge72-a1.bin", 0x10000, 0x10000, CRC(d194ea08) SHA1(0270897049cd256472df42f3dda856ee707535cd) ) - ROM_LOAD( "ge72-a2.bin", 0x20000, 0x10000, CRC(2b06bcc3) SHA1(36378a4a69f3c3da96d2dc8df48916af8de50009) ) - ROM_LOAD( "ge72-a3.bin", 0x30000, 0x10000, CRC(94b96bfa) SHA1(33c1e9045e7a984097f3fe4954b20d954cffbafa) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "ge72-b0.bin", 0x00000, 0x10000, CRC(208796b3) SHA1(38b90732c8d5c77ee84053364a8a7e3daaaabe66) ) /* tiles #2 */ - ROM_LOAD( "ge72-b1.bin", 0x10000, 0x10000, CRC(b4a7f490) SHA1(851b40650fc8920b49f43f9cc6f19e845a25e945) ) - ROM_LOAD( "ge72b-b2.bin", 0x20000, 0x10000, CRC(34fe8f7f) SHA1(fbf8839b26be55ad83ad4db538ba3e196c1ab945) ) - ROM_LOAD( "ge72b-b3.bin", 0x30000, 0x10000, CRC(4b0e92f4) SHA1(16ad9220ca6708028cea18c1c4b57e2b6eb425b4) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) ) -ROM_END - -ROM_START( poundfor ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ppa-h0-b.bin", 0x00001, 0x20000, CRC(50d4a2d8) SHA1(7fd62c6613cb58b512c6c3670fa66a5b9906e6a1) ) - ROM_LOAD16_BYTE( "ppa-l0-b.bin", 0x00000, 0x20000, CRC(bd997942) SHA1(da484afe3b79e09e323c768a0b2165e6283971a7) ) - ROM_LOAD16_BYTE( "ppa-h1.9f", 0x40001, 0x20000, CRC(f6c82f48) SHA1(b38a2f9f0f6439b2cf453fec87ca11d959777ee6) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "ppa-l1.9c", 0x40000, 0x20000, CRC(5b07b087) SHA1(04a2403eb8c443cb92b880edc612542acdbcafa4) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ppa-sp.4j", 0x0000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */ - ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) ) - ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) ) - ROM_LOAD( "ppb-n3.bin", 0xc0000, 0x40000, CRC(93dc9490) SHA1(3df4d57a7bf19443f5aa6a416bcee968f81d9059) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) /* tiles */ - ROM_LOAD( "ppa-g10.bin", 0x20000, 0x20000, CRC(e48a66ac) SHA1(49b33db6a922d6f1d1417e28714a67431b7c0217) ) - ROM_LOAD( "ppa-g20.bin", 0x40000, 0x20000, CRC(12b93e79) SHA1(f3d2b76a30874827c8998c1d13a55a3990b699b7) ) - ROM_LOAD( "ppa-g30.bin", 0x60000, 0x20000, CRC(faa39aee) SHA1(9cc1a468b304437766c04189054d3b8f7ff1f958) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) -ROM_END - -ROM_START( poundfou ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ppa-ho-a.9e", 0x00001, 0x20000, CRC(ff4c83a4) SHA1(1b7791c784bf7c4774e3200b76d65ab0bf0ff93b) ) - ROM_LOAD16_BYTE( "ppa-lo-a.9d", 0x00000, 0x20000, CRC(3374ce8f) SHA1(7455f8339aeed0ef3d0567baa804b62ca3615283) ) - ROM_LOAD16_BYTE( "ppa-h1.9f", 0x40001, 0x20000, CRC(f6c82f48) SHA1(b38a2f9f0f6439b2cf453fec87ca11d959777ee6) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "ppa-l1.9c", 0x40000, 0x20000, CRC(5b07b087) SHA1(04a2403eb8c443cb92b880edc612542acdbcafa4) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ppa-sp.4j", 0x0000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */ - ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) ) - ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) ) - ROM_LOAD( "ppb-n3.bin", 0xc0000, 0x40000, CRC(93dc9490) SHA1(3df4d57a7bf19443f5aa6a416bcee968f81d9059) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ppa-g00.bin", 0x00000, 0x20000, CRC(8a88a174) SHA1(d360b9014aec31960538ee488894496248a820dc) ) /* tiles */ - ROM_LOAD( "ppa-g10.bin", 0x20000, 0x20000, CRC(e48a66ac) SHA1(49b33db6a922d6f1d1417e28714a67431b7c0217) ) - ROM_LOAD( "ppa-g20.bin", 0x40000, 0x20000, CRC(12b93e79) SHA1(f3d2b76a30874827c8998c1d13a55a3990b699b7) ) - ROM_LOAD( "ppa-g30.bin", 0x60000, 0x20000, CRC(faa39aee) SHA1(9cc1a468b304437766c04189054d3b8f7ff1f958) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) ) -ROM_END - -ROM_START( airduel ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ad-c-h0.bin", 0x00001, 0x20000, CRC(12140276) SHA1(f218c5f2e6795b6295dea064817d7d6b1a7762b6) ) - ROM_LOAD16_BYTE( "ad-c-l0.bin", 0x00000, 0x20000, CRC(4ac0b91d) SHA1(97e2f633181cd5c25927fd0e2988af2acdb3f388) ) - ROM_LOAD16_BYTE( "ad-c-h3.bin", 0x40001, 0x20000, CRC(9f7cfca3) SHA1(becf827aa7749c54f1c435ea224e1fd9c8b3f5f9) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "ad-c-l3.bin", 0x40000, 0x20000, CRC(9dd343f7) SHA1(9f499936b6d3807aa5b5c18e9811c73c9a2c99f9) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ad-00.bin", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */ - ROM_LOAD( "ad-10.bin", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) ) - ROM_LOAD( "ad-20.bin", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) ) - ROM_LOAD( "ad-30.bin", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ad-a0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #1 */ - ROM_LOAD( "ad-a1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) - ROM_LOAD( "ad-a2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) - ROM_LOAD( "ad-a3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "ad-b0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #2 */ - ROM_LOAD( "ad-b1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) ) - ROM_LOAD( "ad-b2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) ) - ROM_LOAD( "ad-b3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) ) -ROM_END - -ROM_START( cosmccop ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) ) - ROM_RELOAD( 0x80001, 0x40000 ) - ROM_LOAD16_BYTE( "cc-d-l0b.bin", 0x00000, 0x40000, CRC(eff87f70) SHA1(61f49b8738cf31546d4182680b761705274b01bf) ) - ROM_RELOAD( 0x80000, 0x40000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "cc-d-sp.bin", 0x0000, 0x10000, CRC(3e3ace60) SHA1(d89b1b84de2887598bb7bcb17b1df1ec8d1862a9) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // cc-b-n0 - ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // cc-b-n1 - ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // cc-b-n2 - ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // cc-b-n3 - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cc-d-g00.bin", 0x00000, 0x20000, CRC(e7f3d772) SHA1(c7f0bc42e8dde7bae334c7974c3d0ddba3856144) ) /* tiles */ - ROM_LOAD( "cc-d-g10.bin", 0x20000, 0x20000, CRC(418b4e4c) SHA1(1191f12741ee7a360240f706534c9c83be8d5c2d) ) - ROM_LOAD( "cc-d-g20.bin", 0x40000, 0x20000, CRC(a4b558eb) SHA1(0babf725de0065dbeca73fa170bd33565305d129) ) - ROM_LOAD( "cc-d-g30.bin", 0x60000, 0x20000, CRC(f64a3166) SHA1(1661db2a37c76e6b4552e48c04966dbbccab8926) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // cc-d-v0 -ROM_END - -ROM_START( gallop ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "cc-c-h0.bin", 0x00001, 0x20000, CRC(2217dcd0) SHA1(9485b6c3eec99e720439e69dcbe0e55798bbff1c) ) - ROM_LOAD16_BYTE( "cc-c-l0.bin", 0x00000, 0x20000, CRC(ff39d7fb) SHA1(fad95f76050fce04464268b5edff6622b2cb798f) ) - ROM_LOAD16_BYTE( "cc-c-h3.bin", 0x40001, 0x20000, CRC(9b2bbab9) SHA1(255d4dda55be667f5f1f4324e9e66111738e79b3) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "cc-c-l3.bin", 0x40000, 0x20000, CRC(acd3278e) SHA1(83d7ddfbdb4bc9548a179b728351a21b3b0ac134) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) /* sprites */ - ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) - ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) - ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cc-b-a0.bin", 0x00000, 0x10000, CRC(a33472bd) SHA1(962047fe3dd1fb996285ecef615a8ebdb529adef) ) /* tiles #1 */ - ROM_LOAD( "cc-b-a1.bin", 0x10000, 0x10000, CRC(118b1f2d) SHA1(7413ccc67a8aa9dae156e6ee122b1ca5beeb9a76) ) - ROM_LOAD( "cc-b-a2.bin", 0x20000, 0x10000, CRC(83cebf48) SHA1(12847827ecbf6b493eb9dbddd0a469729d87a451) ) - ROM_LOAD( "cc-b-a3.bin", 0x30000, 0x10000, CRC(572903fc) SHA1(03305301bcf939e97044e746594736b1ca1d7c0a) ) - - ROM_REGION( 0x040000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "cc-b-b0.bin", 0x00000, 0x10000, CRC(0df5b439) SHA1(0775cf92139a111542c8b5f940da0f7f43020982) ) /* tiles #2 */ - ROM_LOAD( "cc-b-b1.bin", 0x10000, 0x10000, CRC(010b778f) SHA1(cc5bfeb0fbe0ed2fe513458c5785ec0ce5b02f53) ) - ROM_LOAD( "cc-b-b2.bin", 0x20000, 0x10000, CRC(bda9f6fb) SHA1(a6b655ae5bff0568c1fb56ee8a3874fc6524052c) ) - ROM_LOAD( "cc-b-b3.bin", 0x30000, 0x10000, CRC(d361ba3f) SHA1(7348fdae03e997e05187a2726eb221edb92553df) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) -ROM_END - -ROM_START( kengo ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ken_d-h0.rom", 0x00001, 0x20000, CRC(f4ddeea5) SHA1(bcf016e40886e11c171f2f50de39ac0d8cabcdd1) ) - ROM_RELOAD( 0xc0001, 0x20000 ) - ROM_LOAD16_BYTE( "ken_d-l0.rom", 0x00000, 0x20000, CRC(04dc0f81) SHA1(b296529f0bc26d53b344449dfa5a08eca70f30d8) ) - ROM_RELOAD( 0xc0000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ken_d-sp.rom", 0x0000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */ - ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) ) - ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) ) - ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */ - ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) ) - ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) ) - ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */ - ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) ) -ROM_END - - - -static DRIVER_INIT( kengo ) -{ - irem_cpu_decrypt(0,gunforce_decryption_table); -} - - - -GAME( 1987, rtype, 0, rtype, rtype, 0, ROT0, "Irem", "R-Type (World)", GAME_NO_COCKTAIL ) -GAME( 1987, rtypej, rtype, rtype, rtypep, 0, ROT0, "Irem", "R-Type (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, rtypejp, rtype, rtype, rtypep, 0, ROT0, "Irem", "R-Type (Japan prototype)", GAME_NO_COCKTAIL ) -GAME( 1987, rtypeu, rtype, rtype, rtype, 0, ROT0, "Irem (Nintendo of America license)", "R-Type (US)", GAME_NO_COCKTAIL ) -GAME( 1987, bchopper, 0, m72, bchopper, bchopper, ROT0, "Irem", "Battle Chopper", GAME_NO_COCKTAIL ) -GAME( 1987, mrheli, bchopper, m72, bchopper, mrheli, ROT0, "Irem", "Mr. HELI no Dai-Bouken", GAME_NO_COCKTAIL ) -GAME( 1988, nspirit, 0, m72, nspirit, nspirit, ROT0, "Irem", "Ninja Spirit", GAME_NO_COCKTAIL ) -GAME( 1988, nspiritj, nspirit, m72, nspirit, nspiritj, ROT0, "Irem", "Saigo no Nindou (Japan)", GAME_NO_COCKTAIL ) -GAME( 1988, imgfight, 0, m72, imgfight, imgfight, ROT270, "Irem", "Image Fight (Japan)", 0 ) -GAME( 1989, loht, 0, m72, loht, loht, ROT0, "Irem", "Legend of Hero Tonma", GAME_NO_COCKTAIL ) -GAME( 1989, xmultipl, 0, xmultipl, xmultipl, xmultipl, ROT0, "Irem", "X Multiply (Japan)", GAME_NO_COCKTAIL ) -GAME( 1989, dbreed, 0, dbreed, dbreed, 0, ROT0, "Irem", "Dragon Breed (M81 pcb version)", GAME_NO_COCKTAIL ) -GAME( 1989, dbreed72, dbreed, dbreed72, dbreed, dbreed72, ROT0, "Irem", "Dragon Breed (M72 pcb version)", GAME_NO_COCKTAIL ) -GAME( 1989, rtype2, 0, rtype2, rtype2, 0, ROT0, "Irem", "R-Type II", GAME_NO_COCKTAIL ) -GAME( 1989, rtype2j, rtype2, rtype2, rtype2, 0, ROT0, "Irem", "R-Type II (Japan)", GAME_NO_COCKTAIL ) -GAME( 1990, majtitle, 0, majtitle, rtype2, 0, ROT0, "Irem", "Major Title (Japan)", GAME_NO_COCKTAIL ) -GAME( 1990, hharry, 0, hharry, hharry, 0, ROT0, "Irem", "Hammerin' Harry (World)", GAME_NO_COCKTAIL ) -GAME( 1990, hharryu, hharry, hharryu, hharry, 0, ROT0, "Irem America", "Hammerin' Harry (US)", GAME_NO_COCKTAIL ) -GAME( 1990, dkgensan, hharry, hharryu, hharry, 0, ROT0, "Irem", "Daiku no Gensan (Japan)", GAME_NO_COCKTAIL ) -GAME( 1990, dkgenm72, hharry, dkgenm72, hharry, dkgenm72, ROT0, "Irem", "Daiku no Gensan (Japan, M72)", GAME_NO_COCKTAIL ) -GAME( 1990, poundfor, 0, poundfor, poundfor, 0, ROT270, "Irem", "Pound for Pound (World)", GAME_NO_COCKTAIL ) -GAME( 1990, poundfou, poundfor, poundfor, poundfor, 0, ROT270, "Irem America", "Pound for Pound (US)", GAME_NO_COCKTAIL ) -GAME( 1990, airduel, 0, m72, airduel, airduel, ROT270, "Irem", "Air Duel (Japan)", 0 ) -GAME( 1991, cosmccop, 0, kengo, gallop, 0, ROT0, "Irem", "Cosmic Cop (World)", GAME_NO_COCKTAIL ) -GAME( 1991, gallop, cosmccop, m72, gallop, gallop, ROT0, "Irem", "Gallop - Armed police Unit (Japan)", GAME_NO_COCKTAIL ) -GAME( 1991, kengo, 0, kengo, kengo, kengo, ROT0, "Irem", "Ken-Go", GAME_NO_COCKTAIL ) diff --git a/src/drivers/macrossp.c b/src/drivers/macrossp.c deleted file mode 100644 index 3561d0678..000000000 --- a/src/drivers/macrossp.c +++ /dev/null @@ -1,923 +0,0 @@ -/*** DRIVER INFO ************************************************************** - -Macross Plus (c)1996 Banpresto -Quiz Bisyoujo Senshi Sailor Moon (c)1997 Banpresto -Driver by David Haywood - -TODO: -- macrossp: tilemap zoom is wrong, see title screen (misplaced) and level 2 boss - (background scrolls faster than sprites) -- should use VIDEO_RGB_DIRECT for alpha blending to work, but tilemap_draw_roz() - doesn't support it. -- Sprite Zoom on quizmoon title screen isn't right -- Tilemap zoom effect on macrossp title screen and probably other places -- Priorities (Sprites & Backgrounds) - see quizmoon attract mode -- sprite/tilemap priorities might not be 100% correct -- Sound -- palette fade on macrossp Banpresto logo screen (and black on some screen - transitions). quizmoon doesn't use that register. -- All Other Unused Reads / Writes -- Correct DSWs / Ports -- Clean Up - - Notes: - - Whats the BIOS rom? should it be in the 68020 map, its different between - games. - - 68020 interrupts - lev 1 : 0x64 : 0000 084c - unknown.. - lev 2 : 0x68 : 0000 0882 - unknown.. - lev 3 : 0x6c : 0000 08b0 - vblank? - lev 4 : 0x70 : 001f 002a - x - lev 5 : 0x74 : 001f 002a - x - lev 6 : 0x78 : 001f 002a - x - lev 7 : 0x7c : 001f 002a - x - -******************************************************************************/ - -#include "driver.h" -#include "sound/es5506.h" - -/*** README INFO ************************************************************** - ---- ROMSET: macrossp --- - -Macross Plus -Banpresto Co., Ltd., 1996 - -PCB: BP964 -CPU: MC68EC020FG25 -SND: TMP68HC000N-16, OTTOR2 ES5506000102 -OSC: 50.000MHz, 32.000MHz, 27.000MHz -RAM: TC55257CFL-85 x 8 (28 PIN TSOP), MCM62068AEJ25 x 12 (28 PIN SSOP), TC55328AJ-15 x 6 (28 PIN SSOP) -GFX: IKM-AA004 (208 PIN PQFP) - IKM-AA0062 (208 PIN PQFP) - IKM-AA005 x 2 (208 PIN PQFP) -DIPS: 2x 8-Position - - -(Typed directly from original sheet supplied with PCB) - -SW1: - - 1 2 3 4 5 6 7 8 -------------------------------------------------------------------------------------- -COIN A 1COIN 1PLAY OFF OFF OFF OFF - 1C2P ON OFF OFF OFF - 1C3P OFF ON OFF OFF - 1C4P ON ON OFF OFF - 1C5P OFF OFF ON OFF - 1C6P ON OFF ON OFF - 1C7P OFF ON ON OFF - 2C1P ON ON ON OFF - 2C3P OFF OFF OFF ON - 2C5P ON OFF OFF ON - 3C1P OFF ON OFF ON - 3C2P ON ON OFF ON - 3C4P OFF OFF ON ON - 4C1P ON OFF ON ON - 4C3P OFF ON ON ON - FREEPLAY ON ON ON ON - -COIN B 1COIN 1PLAY OFF OFF OFF OFF - 1C2P ON OFF OFF OFF - 1C3P OFF ON OFF OFF - 1C4P ON ON OFF OFF - 1C5P OFF OFF ON OFF - 1C6P ON OFF ON OFF - 1C7P OFF ON ON OFF - 2C1P ON ON ON OFF - 2C3P OFF OFF OFF ON - 2C5P ON OFF OFF ON - 3C1P OFF ON OFF ON - 3C2P ON ON OFF ON - 3C4P OFF OFF ON ON - 4C1P ON OFF ON ON - 4C3P OFF ON ON ON - 5C3P ON ON ON ON - -FACTORY SETTING = ALL OFF - - -SW2 - - 1 2 3 4 5 6 7 8 --------------------------------------------------------------------------------------- -DIFFICULTY NORMAL OFF OFF - EASY ON OFF - HARD OFF ON - HARDEST ON ON - -PLAYERS 3 OFF OFF - 4 ON OFF - 5 OFF ON - 2 ON ON - -DEMO SOUND YES OFF - NO ON - -SCREEN F/F PLAY OFF - MUTE ON - -NOT USED OFF - -MODE GAME OFF - TEST ON - - -FACTORY SETTING = ALL OFF - - -ROMs: (Filename = ROM label, extension also on ROM label) - -TOP ROM PCB ------------ -BP964A-C.U1 \ -BP964A-C.U2 | -BP964A-C.U3 | -BP964A-C.U4 > 27C040 -BP964A.U19 | -BP964A.U20 | -BP964A.U21 / - -BP964A.U9 \ -BP964A.U10 | -BP964A.U11 | -BP964A.U12 | -BP964A.U13 | -BP964A.U14 > 32M (44 pin SOP - surface mounted) -BP964A.U15 | -BP964A.U16 | -BP964A.U17 | -BP964A.U18 | -BP964A.U24 / - -ROMs: (Filename = ROM Label) - -MOTHERBOARD PCB ---------------- -BP964A.U49 27C010 - ---- ROMSET: quizmoon --- - -Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un - -(c)1997 Banpresto / Gazelle -BP965A - ------------ -Motherboard ------------ -CPU : MC68EC020FG25 -Sound: TMP68HC000N-16, ENSONIQ OTTO R2 (ES5506) -OSC : 50.000MHz (X1), 32.000MHz (X2), 27.000MHz (X3) - -ROMs: -u49.bin - (ST 27c1001) - -GALs (16V8B, not dumped): -u009.bin -u200.bin - -Custom chips: -IKM-AA004 1633JF8433 JAPAN 9523YAA (U62, 208pin QFP) -IKM-AA005 1670F1541 JAPAN 9525EAI (U47&48, 208pin QFP) -IKM-AA006 1633JF8432 JAPAN 9525YAA (U31, 208pin QFP) - --------------- -Mask ROM board --------------- -u5.bin - Main programs (TI 27c040) -u6.bin | -u7.bin | -u8.bin | -u1.bin | (ST 27c1001) -u2.bin | -u3.bin | -u4.bin / - -u09.bin - Graphics (uPD23C32000GX) -u10.bin | -u11.bin | -u12.bin | -u13.bin | -u15.bin | -u17.bin / (uPD23C16000GX) - -u20.bin - Sound programs (ST 27c1001) -u21.bin / - -u24.bin - Samples (uPD23C32000GX) -u25.bin | -u26.bin | -u27.bin / - -******************************************************************************/ - -extern UINT32 *macrossp_scra_videoram, *macrossp_scra_videoregs; -extern UINT32 *macrossp_scrb_videoram, *macrossp_scrb_videoregs; -extern UINT32 *macrossp_scrc_videoram, *macrossp_scrc_videoregs; -extern UINT32 *macrossp_text_videoram, *macrossp_text_videoregs; -extern UINT32 *macrossp_spriteram; - -static UINT32 *macrossp_mainram; - -/* in vidhrdw */ -WRITE32_HANDLER( macrossp_scra_videoram_w ); -WRITE32_HANDLER( macrossp_scrb_videoram_w ); -WRITE32_HANDLER( macrossp_scrc_videoram_w ); -WRITE32_HANDLER( macrossp_text_videoram_w ); -VIDEO_START(macrossp); -VIDEO_UPDATE(macrossp); -VIDEO_EOF(macrossp); - -/*** VARIOUS READ / WRITE HANDLERS *******************************************/ - -static READ32_HANDLER ( macrossp_ports1_r ) -{ - return ((readinputport(0) << 16) | (readinputport(1) << 0)); -} - -static READ32_HANDLER ( macrossp_ports2_r ) -{ - return ((readinputport(2) << 16) | (readinputport(3) << 0)); -} - -static WRITE32_HANDLER( paletteram32_macrossp_w ) -{ - int r,g,b; - COMBINE_DATA(&paletteram32[offset]); - - b = ((paletteram32[offset] & 0x0000ff00) >>8); - g = ((paletteram32[offset] & 0x00ff0000) >>16); - r = ((paletteram32[offset] & 0xff000000) >>24); - - palette_set_color(Machine,offset,r,g,b); -} - - -static int sndpending; - -static READ32_HANDLER ( macrossp_soundstatus_r ) -{ - static int toggle; - -// logerror("%08x read soundstatus\n",activecpu_get_pc()); - - /* bit 1 is sound status */ - /* bit 0 unknown - it is expected to toggle, vblank? */ - - toggle ^= 1; - - return (sndpending << 1) | toggle; -} - -static WRITE32_HANDLER( macrossp_soundcmd_w ) -{ - if (ACCESSING_MSW32) - { - //logerror("%08x write soundcmd %08x (%08x)\n",activecpu_get_pc(),data,mem_mask); - soundlatch_word_w(0,data >> 16,0); - sndpending = 1; - cpunum_set_input_line(1,2,HOLD_LINE); - /* spin for a while to let the sound CPU read the command */ - cpu_spinuntil_time(TIME_IN_USEC(50)); - } -} - -static READ16_HANDLER( macrossp_soundcmd_r ) -{ -// logerror("%06x read soundcmd\n",activecpu_get_pc()); - sndpending = 0; - return soundlatch_word_r(offset,mem_mask); -} - - -/*** MEMORY MAPS *************************************************************/ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x3fffff) AM_READ(MRA32_ROM) - - AM_RANGE(0x800000, 0x802fff) AM_READ(MRA32_RAM) - - AM_RANGE(0x900000, 0x903fff) AM_READ(MRA32_RAM) - AM_RANGE(0x908000, 0x90bfff) AM_READ(MRA32_RAM) - AM_RANGE(0x910000, 0x913fff) AM_READ(MRA32_RAM) - AM_RANGE(0x918000, 0x91bfff) AM_READ(MRA32_RAM) - - AM_RANGE(0xa00000, 0xa03fff) AM_READ(MRA32_RAM) - - AM_RANGE(0xb00000, 0xb00003) AM_READ(macrossp_ports1_r) - AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r) - AM_RANGE(0xb0000c, 0xb0000f) AM_READ(macrossp_ports2_r) - - AM_RANGE(0xf00000, 0xf1ffff) AM_READ(MRA32_RAM) - -// AM_RANGE(0xfe0000, 0xfe0003) AM_READ(MRA32_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x3fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x800000, 0x802fff) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_spriteram) AM_SIZE(&spriteram_size) - - /* SCR A Layer */ - AM_RANGE(0x900000, 0x903fff) AM_WRITE(macrossp_scra_videoram_w) AM_BASE(¯ossp_scra_videoram) - AM_RANGE(0x904200, 0x9043ff) AM_WRITE(MWA32_RAM) /* W/O? */ - AM_RANGE(0x905000, 0x90500b) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_scra_videoregs) /* W/O? */ - /* SCR B Layer */ - AM_RANGE(0x908000, 0x90bfff) AM_WRITE(macrossp_scrb_videoram_w) AM_BASE(¯ossp_scrb_videoram) - AM_RANGE(0x90c200, 0x90c3ff) AM_WRITE(MWA32_RAM) /* W/O? */ - AM_RANGE(0x90d000, 0x90d00b) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_scrb_videoregs) /* W/O? */ - /* SCR C Layer */ - AM_RANGE(0x910000, 0x913fff) AM_WRITE(macrossp_scrc_videoram_w) AM_BASE(¯ossp_scrc_videoram) - AM_RANGE(0x914200, 0x9143ff) AM_WRITE(MWA32_RAM) /* W/O? */ - AM_RANGE(0x915000, 0x91500b) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_scrc_videoregs) /* W/O? */ - /* Text Layer */ - AM_RANGE(0x918000, 0x91bfff) AM_WRITE(macrossp_text_videoram_w) AM_BASE(¯ossp_text_videoram) - AM_RANGE(0x91c200, 0x91c3ff) AM_WRITE(MWA32_RAM) /* W/O? */ - AM_RANGE(0x91d000, 0x91d00b) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_text_videoregs) /* W/O? */ - - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(paletteram32_macrossp_w) AM_BASE(&paletteram32) - - AM_RANGE(0xb00004, 0xb00007) AM_WRITE(MWA32_NOP) // ???? - AM_RANGE(0xb00008, 0xb0000b) AM_WRITE(MWA32_NOP) // ???? -// AM_RANGE(0xb0000c, 0xb0000f) AM_WRITE(MWA32_NOP) - AM_RANGE(0xb00010, 0xb00013) AM_WRITE(MWA32_RAM) // macrossp palette fade -// AM_RANGE(0xb00020, 0xb00023) AM_WRITE(MWA32_NOP) - - AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w) - - AM_RANGE(0xf00000, 0xf1ffff) AM_WRITE(MWA32_RAM) AM_BASE(¯ossp_mainram) /* Main Ram */ - -// AM_RANGE(0xfe0000, 0xfe0003) AM_WRITE(MWA32_NOP) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x207fff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40007f) AM_READ(ES5506_data_0_word_r) - AM_RANGE(0x600000, 0x600001) AM_READ(macrossp_soundcmd_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x207fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x40007f) AM_WRITE(ES5506_data_0_word_w) -ADDRESS_MAP_END - -/*** INPUT PORTS *************************************************************/ - -INPUT_PORTS_START( macrossp ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0009, "1 Coins/7 Credits" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play) ) - PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0070, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0090, "1 Coins/7 Credits" ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0c00, "3" ) - PORT_DIPSETTING( 0x0800, "4" ) - PORT_DIPSETTING( 0x0400, "5" ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) // See above for manual listing.... - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Language ) ) // See title page for difference :-) - PORT_DIPSETTING( 0x4000, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( English ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - -INPUT_PORTS_END - - -INPUT_PORTS_START( quizmoon ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Test ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Tilt ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x000d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0009, "1 Coins/7 Credits" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play) ) - PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00f0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0070, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x00d0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00b0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0090, "1 Coins/7 Credits" ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0c00, "3" ) - PORT_DIPSETTING( 0x0800, "4" ) - PORT_DIPSETTING( 0x0400, "5" ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Flip_Screen ) ) // See in test mode ok but not working.... - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - -INPUT_PORTS_END - -/*** GFX DECODE **************************************************************/ - -static const gfx_layout macrossp_char16x16x4layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0,1,2,3 }, - { 0, 4, 8, 12, 16, 20, 24, 28, 32+0,32+4,32+8,32+12,32+16,32+20,32+24,32+28 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64,11*64,12*64,13*64,14*64,15*64}, - 16*64 -}; - -static const gfx_layout macrossp_char16x16x8layout = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0, 8, 16, 24, 32, 40, 48, 56, 64+0,64+8,64+16,64+24,64+32,64+40,64+48,64+56 }, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, - 8*128, 9*128, 10*128,11*128,12*128,13*128,14*128,15*128}, - 16*128 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, ¯ossp_char16x16x8layout, 0x000, 0x20 }, /* 8bpp but 6bpp granularity */ - { REGION_GFX2, 0, ¯ossp_char16x16x8layout, 0x800, 0x20 }, /* 8bpp but 6bpp granularity */ - { REGION_GFX3, 0, ¯ossp_char16x16x8layout, 0x800, 0x20 }, /* 8bpp but 6bpp granularity */ - { REGION_GFX4, 0, ¯ossp_char16x16x8layout, 0x800, 0x20 }, /* 8bpp but 6bpp granularity */ - { REGION_GFX5, 0, ¯ossp_char16x16x4layout, 0x800, 0x80 }, - { -1 } /* end of array */ -}; - -/*** MACHINE DRIVER **********************************************************/ - -static void irqhandler(int irq) -{ - logerror("ES5506 irq %d\n",irq); - - /* IRQ lines 1 & 4 on the sound 68000 are definitely triggered by the ES5506, - but I haven't noticed the ES5506 ever assert the line - maybe only used when developing the game? */ -// cpunum_set_input_line(1,1,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct ES5506interface es5506_interface = -{ - REGION_SOUND1, - REGION_SOUND2, - REGION_SOUND3, - REGION_SOUND4, - irqhandler -}; - - -static MACHINE_DRIVER_START( macrossp ) - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 50000000/2) /* 25 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq3_line_hold,1) // there are others ... - - MDRV_CPU_ADD(M68000, 32000000/2) /* 16 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) /* only needs 6 bits because of alpha blending */ - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*16, 16*16) - MDRV_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 0*16, 15*16-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x1000) - - MDRV_VIDEO_START(macrossp) - MDRV_VIDEO_EOF(macrossp) - MDRV_VIDEO_UPDATE(macrossp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(ES5506, 16000000) - MDRV_SOUND_CONFIG(es5506_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( quizmoon ) - MDRV_IMPORT_FROM(macrossp) - - MDRV_SCREEN_VISIBLE_AREA(0, 24*16-1, 0*8, 14*16-1) -MACHINE_DRIVER_END - - - -/*** ROM LOADING *************************************************************/ - -ROM_START( macrossp ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD32_BYTE( "bp964a-c.u1", 0x000003, 0x080000, CRC(39da35e7) SHA1(022c902b0adf21090c650ce68e4b8b42498e1be6) ) - ROM_LOAD32_BYTE( "bp964a-c.u2", 0x000002, 0x080000, CRC(86d0ca6a) SHA1(8cc1b4a83cbba8b07e1343c5c20e2590d3ce471a) ) - ROM_LOAD32_BYTE( "bp964a-c.u3", 0x000001, 0x080000, CRC(fb895a7b) SHA1(547e5d3d43e503a15573748ab49a44e5569db1d7) ) - ROM_LOAD32_BYTE( "bp964a-c.u4", 0x000000, 0x080000, CRC(8c8b966c) SHA1(881fa2b7aefc3ea916924b715d2cd0ceaffe2d92) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "bp964a.u20", 0x000001, 0x080000, CRC(12960cbb) SHA1(7182c4b36849a5d34ddf388bf5f4485ed360fe84) ) - ROM_LOAD16_BYTE( "bp964a.u21", 0x000000, 0x080000, CRC(87bdd2fc) SHA1(c33f087ebca6e98db195404788ca8e0cc6663622) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) - ROM_LOAD( "bp964a.u49", 0x000000, 0x020000, CRC(ad203f76) SHA1(3eb86eeeb020349dfd88ebc8b4fc9579d1cc50fb) ) // 'BIOS' - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* sprites - 16x16x8 */ - ROM_LOAD32_BYTE( "bp964a.u9", 0x000003, 0x400000, CRC(bd51a70d) SHA1(3447ae9d368e4e33df2d4e2848b4fd5aa0fc6840) ) - ROM_LOAD32_BYTE( "bp964a.u10", 0x000002, 0x400000, CRC(ab84bba7) SHA1(d30876b2e45c4b78cda27d3c648100e60f739d9c) ) - ROM_LOAD32_BYTE( "bp964a.u11", 0x000001, 0x400000, CRC(b9ae1d0b) SHA1(bc541a8bd622c99cf5065b3a793f0b5f6420ac64) ) - ROM_LOAD32_BYTE( "bp964a.u12", 0x000000, 0x400000, CRC(8dda1052) SHA1(c374335e98859ae98ac392a7cdb44f15b4e1c23a) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) /* backgrounds - 16x16x8 */ - ROM_LOAD( "bp964a.u13", 0x000000, 0x400000, CRC(f4d3c5bf) SHA1(82522d276a6d49148da8a4fb11846a039429bcf8) ) - ROM_LOAD( "bp964a.u14", 0x400000, 0x400000, CRC(4f2dd1b2) SHA1(30a2c9fb26bca8bb27fbc5637878f99e7f6ad8f4) ) - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) /* backgrounds - 16x16x8 */ - ROM_LOAD( "bp964a.u15", 0x000000, 0x400000, CRC(5b97a870) SHA1(16f3921649b28ecb6d628871214f972333bbeca4) ) - ROM_LOAD( "bp964a.u16", 0x400000, 0x400000, CRC(c8a0cd64) SHA1(2a30a4d4ec3f94631783eb08c62003b116bb2ee3) ) - - ROM_REGION( 0x800000, REGION_GFX4, 0 ) /* backgrounds - 16x16x8 */ - ROM_LOAD( "bp964a.u17", 0x000000, 0x400000, CRC(f2470876) SHA1(e683208432f71f3cc19ced245fa5b8a82466d19b) ) - ROM_LOAD( "bp964a.u18", 0x400000, 0x400000, CRC(52ef21f3) SHA1(08fb1969ad0ffd0c5bf11d3d5448a26112d562b0) ) - - ROM_REGION( 0x400000, REGION_GFX5, 0 ) /* foreground - 16x16x4 */ - ROM_LOAD( "bp964a.u19", 0x000000, 0x080000, CRC(19c7acd9) SHA1(b7631e74f359c5570c44addf46c3e96c80adc6c3) ) - - ROM_REGION16_BE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) - ROM_LOAD16_BYTE( "bp964a.u24", 0x000000, 0x400000, CRC(93f90336) SHA1(75daa2f8cedc732cf5ef98254f61748c94b94aea) ) - - ROM_REGION16_BE( 0x400000, REGION_SOUND2, 0 ) - ROM_COPY( REGION_SOUND1, 0x400000, 0x000000, 0x400000 ) -ROM_END - -ROM_START( quizmoon ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD32_BYTE( "u1.bin", 0x000003, 0x020000, CRC(ea404553) SHA1(123bb8e399a5b54c43f4eb41d3e5f52c6947900f) ) - ROM_LOAD32_BYTE( "u2.bin", 0x000002, 0x020000, CRC(024eedff) SHA1(cbaa2b71980a2686e582331616dc36e34ecd9e67) ) - ROM_LOAD32_BYTE( "u3.bin", 0x000001, 0x020000, CRC(545b1d17) SHA1(f1b15260942482857c48b574ada1e2a3b728f395) ) - ROM_LOAD32_BYTE( "u4.bin", 0x000000, 0x020000, CRC(60b3d18c) SHA1(230342a084938fdbd2b4da23df2054391eab165b) ) - ROM_LOAD32_BYTE( "u5.bin", 0x200003, 0x080000, CRC(4cc65f5e) SHA1(eebad4c1bf761f08cacbf8c75e7f7bd421ee65ca) ) - ROM_LOAD32_BYTE( "u6.bin", 0x200002, 0x080000, CRC(d84b7c6c) SHA1(ba6ab34fb5c61aa1a97159b7aa3d89e978fb0538) ) - ROM_LOAD32_BYTE( "u7.bin", 0x200001, 0x080000, CRC(656b2125) SHA1(ac3874e71ec0aa4e77ac0d556e4572606ce673c7) ) - ROM_LOAD32_BYTE( "u8.bin", 0x200000, 0x080000, CRC(944df309) SHA1(ee85f6dbfe970b63943d01d9f8b491717a4d5a71) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "u20.bin", 0x000001, 0x020000, CRC(d7ad1ffb) SHA1(9d375285628b32296c93456a00bc005a3f40ce38) ) - ROM_LOAD16_BYTE( "u21.bin", 0x000000, 0x020000, CRC(6fc625c6) SHA1(542bc025cf0e37686eae5d6c80bc5e047d6389fd) ) - - ROM_REGION( 0x20000, REGION_USER1, 0 ) - ROM_LOAD( "u49.bin", 0x000000, 0x020000, CRC(1590ad81) SHA1(04fb8119d9eafc6d2a921700dfb11e9c8b705c88) ) // 'BIOS' - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD32_BYTE( "u9.bin", 0x0000003, 0x0400000, CRC(aaaf2ca9) SHA1(b9e59590daf4cdee4b1deeb6d4ecc80eb12a2e18) ) - ROM_LOAD32_BYTE( "u10.bin", 0x0000002, 0x0400000, CRC(f0349691) SHA1(623a680ad164d407be0af585a15540f0dca995a4) ) - ROM_LOAD32_BYTE( "u11.bin", 0x0000001, 0x0400000, CRC(893ab178) SHA1(ba68b9a3e81af4c2565715504ada35c7da3f135f) ) - ROM_LOAD32_BYTE( "u12.bin", 0x0000000, 0x0400000, CRC(39b731b8) SHA1(2bf1d083fc6d8058a0d26b29714945e8be0e2c79) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) - ROM_LOAD( "u13.bin", 0x0000000, 0x0400000, CRC(3dcbb041) SHA1(fcff67113707fcf14d49538551724490498c0909) ) - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD( "u15.bin", 0x0000000, 0x0400000, CRC(b84224f0) SHA1(7163aec2cc118111b2c5d8deb61133d762a5d74c) ) - - ROM_REGION( 0x0200000, REGION_GFX4, 0 ) - ROM_LOAD( "u17.bin", 0x0000000, 0x0200000, CRC(ff93c949) SHA1(13917d73a6cb70d03d0335bd816bf6b094758d0b) ) - - ROM_REGION( 0x400000, REGION_GFX5, ROMREGION_ERASE00 ) - /* nothing on this game? */ - - ROM_REGION16_BE( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD16_BYTE( "u26.bin", 0x0000000, 0x0400000, CRC(6c8f30d4) SHA1(7e215589e4a52cbce7f2bb31b333f874a9f83d00) ) - ROM_LOAD16_BYTE( "u24.bin", 0x0000001, 0x0400000, CRC(5b12d0b1) SHA1(c5ddff2053148a1da0710a10f48689bf5c736ae4) ) - - ROM_REGION16_BE( 0x400000, REGION_SOUND2, 0 ) - ROM_COPY( REGION_SOUND1, 0x400000, 0x000000, 0x400000 ) - - ROM_REGION16_BE( 0x800000, REGION_SOUND3, 0 ) - ROM_LOAD16_BYTE( "u27.bin", 0x0000000, 0x0400000, CRC(bd75d165) SHA1(2da770d15c812cbfdb4e3048d320071edffccfa1) ) - ROM_LOAD16_BYTE( "u25.bin", 0x0000001, 0x0400000, CRC(3b9689bc) SHA1(0857c3d3e9810f9468f7c17f8b795825c55a9f08) ) - - ROM_REGION16_BE( 0x400000, REGION_SOUND4, 0 ) - ROM_COPY( REGION_SOUND3, 0x400000, 0x000000, 0x400000 ) -ROM_END - - - -static WRITE32_HANDLER( macrossp_speedup_w ) -{ -/* -PC :00018104 018104: addq.w #1, $f1015a.l -PC :0001810A 01810A: cmp.w $f10140.l, D0 -PC :00018110 018110: beq 18104 -*/ - COMBINE_DATA(¯ossp_mainram[0x10158/4]); - if (activecpu_get_pc()==0x001810A) cpu_spinuntil_int(); -} - -static DRIVER_INIT( macrossp ) -{ - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0xf10158, 0xf1015b, 0, 0, macrossp_speedup_w ); -} - -static DRIVER_INIT( quizmoon ) -{ -} - -GAME( 1996, macrossp, 0, macrossp, macrossp, macrossp, ROT270, "Banpresto", "Macross Plus", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, quizmoon, 0, quizmoon, quizmoon, quizmoon, ROT0, "Banpresto", "Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/magmax.c b/src/drivers/magmax.c deleted file mode 100644 index 424544baf..000000000 --- a/src/drivers/magmax.c +++ /dev/null @@ -1,461 +0,0 @@ -/*************************************************************************** - -MAGMAX -(c)1985 NihonBussan Co.,Ltd. - -Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/11/05 - -Additional tweaking by Jarek Burczynski - -***************************************************************************/ - -#include "state.h" -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "sound/ay8910.h" - -PALETTE_INIT( magmax ); -VIDEO_UPDATE( magmax ); -VIDEO_START( magmax ); - -extern UINT16 magmax_vreg; -extern UINT16 *magmax_scroll_x; -extern UINT16 *magmax_scroll_y; - - -static UINT8 sound_latch = 0; -static UINT8 LS74_clr = 0; -static UINT8 LS74_q = 0; -static UINT8 gain_control = 0; - -static mame_timer *interrupt_timer; - -static WRITE16_HANDLER( magmax_sound_w ) -{ - if (ACCESSING_LSB) - { - sound_latch = (data & 0xff) << 1; - cpunum_set_input_line(1, 0, ASSERT_LINE); - } -} - -static READ8_HANDLER( magmax_sound_irq_ack ) -{ - cpunum_set_input_line(1, 0, CLEAR_LINE); - return 0; -} - -static READ8_HANDLER( magmax_sound_r ) -{ - return (sound_latch | LS74_q); -} - -WRITE8_HANDLER( ay8910_portB_0_w ) -{ - /*bit 0 is input to CLR line of the LS74*/ - LS74_clr = data & 1; - if (LS74_clr == 0) - LS74_q = 0; -} - -static void scanline_callback(int scanline) -{ - /* bit 0 goes hi whenever line V6 from video part goes lo->hi */ - /* that is when scanline is 64 and 192 accordingly */ - if (LS74_clr != 0) - LS74_q = 1; - - scanline += 128; - scanline &= 255; - - timer_adjust(interrupt_timer, cpu_getscanlinetime( scanline ), scanline, 0); -} - -static MACHINE_START( magmax ) -{ - /* Create interrupt timer */ - interrupt_timer = timer_alloc(scanline_callback); - - /* Set up save state */ - state_save_register_global(sound_latch); - state_save_register_global(LS74_clr); - state_save_register_global(LS74_q); - state_save_register_global(gain_control); - - return 0; -} - -static MACHINE_RESET( magmax ) -{ - timer_adjust(interrupt_timer, cpu_getscanlinetime(64), 64, 0); - -#if 0 - { - int i; - for (i=0; i<9; i++) - logerror("SOUND Chan#%i name=%s\n", i, mixer_get_name(i) ); - } -#endif -} - - - -WRITE8_HANDLER( ay8910_portA_0_w ) -{ -float percent; - -/*There are three AY8910 chips and four(!) separate amplifiers on the board -* Each of AY channels is hardware mapped in following way: -* amplifier 0 gain x 1.00 <- AY0 CHA -* amplifier 1 gain x 1.00 <- AY0 CHB + AY0 CHC + AY1 CHA + AY1 CHB -* amplifier 2 gain x 4.54 (150K/33K) <- AY1 CHC + AY2 CHA -* amplifier 3 gain x 4.54 (150K/33K) <- AY2 CHB + AY2 CHC -* -* Each of the amps has its own analog cuircit: -* amp0, amp1 and amp2 are different from each other; amp3 is the same as amp2 -* -* Outputs of those amps are inputs to post amps, each having own cuircit -* that is partially controlled by AY #0 port A. -* PORT A BIT 0 - control postamp 0 (gain x10.0 | gain x 5.00) -* PORT A BIT 1 - control postamp 1 (gain x4.54 | gain x 2.27) -* PORT A BIT 2 - control postamp 2 (gain x1.00 | gain x 0.50) -* PORT A BIT 3 - control postamp 3 (gain x1.00 | gain x 0.50) -* -* The "control" means assert/clear input pins on chip called 4066 (it is analog switch) -* which results in volume gain (exactly 2 times). -* I use mixer_set_volume() to emulate the effect. - -gain summary: -port A control ON OFF -amp0 = *1*10.0=10.0 *1*5.0 = 5.0 -amp1 = *1*4.54=4.54 *1*2.27 = 2.27 -amp2 = *4.54*1=4.54 *4.54*0.5= 2.27 -amp3 = *4.54*1=4.54 *4.54*0.5= 2.27 -*/ - -/* -bit0 - SOUND Chan#0 name=AY-3-8910 #0 Ch A - -bit1 - SOUND Chan#1 name=AY-3-8910 #0 Ch B -bit1 - SOUND Chan#2 name=AY-3-8910 #0 Ch C -bit1 - SOUND Chan#3 name=AY-3-8910 #1 Ch A -bit1 - SOUND Chan#4 name=AY-3-8910 #1 Ch B - -bit2 - SOUND Chan#5 name=AY-3-8910 #1 Ch C -bit2 - SOUND Chan#6 name=AY-3-8910 #2 Ch A - -bit3 - SOUND Chan#7 name=AY-3-8910 #2 Ch B -bit3 - SOUND Chan#8 name=AY-3-8910 #2 Ch C -*/ - - if (gain_control == (data & 0x0f)) - return; - - gain_control = data & 0x0f; - - /*popmessage("gain_ctrl = %2x",data&0x0f);*/ - - percent = (gain_control & 1) ? 1.0 : 0.50; - sndti_set_output_gain(SOUND_AY8910, 0, 0, percent); -//fixme: set_RC_filter(0,10000,100000000,0,10000); /* 10K, 10000pF = 0.010uF */ - - percent = (gain_control & 2) ? 0.45 : 0.23; - sndti_set_output_gain(SOUND_AY8910, 0, 1, percent); - sndti_set_output_gain(SOUND_AY8910, 0, 2, percent); - sndti_set_output_gain(SOUND_AY8910, 1, 0, percent); - sndti_set_output_gain(SOUND_AY8910, 1, 1, percent); -//fixme: set_RC_filter(1,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */ -//fixme: set_RC_filter(2,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */ -//fixme: set_RC_filter(3,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */ -//fixme: set_RC_filter(4,4700,100000000,0,4700); /* 4.7K, 4700pF = 0.0047uF */ - - percent = (gain_control & 4) ? 0.45 : 0.23; - sndti_set_output_gain(SOUND_AY8910, 1, 2, percent); - sndti_set_output_gain(SOUND_AY8910, 2, 0, percent); - - percent = (gain_control & 8) ? 0.45 : 0.23; - sndti_set_output_gain(SOUND_AY8910, 2, 1, percent); - sndti_set_output_gain(SOUND_AY8910, 2, 2, percent); -} - -static WRITE16_HANDLER( magmax_vreg_w ) -{ - /* VRAM CONTROL REGISTER */ - /* bit0 - coin counter 1 */ - /* bit1 - coin counter 2 */ - /* bit2 - flip screen (INV) */ - /* bit3 - page bank to be displayed (PG) */ - /* bit4 - sprite bank LSB (DP0) */ - /* bit5 - sprite bank MSB (DP1) */ - /* bit6 - BG display enable (BE)*/ - COMBINE_DATA(&magmax_vreg); -} - - - -static ADDRESS_MAP_START( magmax_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x013fff) AM_READ(MRA16_ROM) - AM_RANGE(0x018000, 0x018fff) AM_READ(MRA16_RAM) - AM_RANGE(0x020000, 0x0207ff) AM_READ(MRA16_RAM) - AM_RANGE(0x028000, 0x0281ff) AM_READ(MRA16_RAM) - AM_RANGE(0x030000, 0x030001) AM_READ(input_port_0_word_r) - AM_RANGE(0x030002, 0x030003) AM_READ(input_port_1_word_r) - AM_RANGE(0x030004, 0x030005) AM_READ(input_port_2_word_r) - AM_RANGE(0x030006, 0x030007) AM_READ(input_port_3_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magmax_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x013fff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x018000, 0x018fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x020000, 0x0207ff) AM_WRITE(MWA16_RAM) AM_BASE(&videoram16) AM_SIZE(&videoram_size) - AM_RANGE(0x028000, 0x0281ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x030010, 0x030011) AM_WRITE(magmax_vreg_w) - AM_RANGE(0x030012, 0x030013) AM_WRITE(MWA16_RAM) AM_BASE(&magmax_scroll_x) - AM_RANGE(0x030014, 0x030015) AM_WRITE(MWA16_RAM) AM_BASE(&magmax_scroll_y) - AM_RANGE(0x03001c, 0x03001d) AM_WRITE(magmax_sound_w) - AM_RANGE(0x03001e, 0x03001f) AM_WRITE(MWA16_NOP) /* IRQ ack */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magmax_soundreadmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4000) AM_READ(magmax_sound_irq_ack) - AM_RANGE(0x6000, 0x67ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magmax_soundwritemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x67ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magmax_soundreadport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x06, 0x06) AM_READ(magmax_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( magmax_soundwriteport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_2_w) - AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_2_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( magmax ) - PORT_START /* Player 1 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) /*Maybe this is just a test button and as such is not available to player*/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Player 2 controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Coin, Start, Test, Dipswitch */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Dipswitch */ - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0003, "3" ) - PORT_DIPSETTING( 0x0002, "4" ) - PORT_DIPSETTING( 0x0001, "5" ) - PORT_DIPSETTING( 0x0000, "6" ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x000c, "30000 every" ) - PORT_DIPSETTING( 0x0004, "70000 every" ) - PORT_DIPSETTING( 0x0008, "50000 every" ) - PORT_DIPSETTING( 0x0000, "90000 every" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8, 8, /* 8*8 characters */ - 256, /* 256 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout spritelayout = -{ - 16, 16, /* 16*16 characters */ - 512, /* 512 characters */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 4, 0, 4+512*64*8, 0+512*64*8, 12, 8, 12+512*64*8, 8+512*64*8, - 20, 16, 20+512*64*8, 16+512*64*8, 28, 24, 28+512*64*8, 24+512*64*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, /*no color codes*/ - { REGION_GFX2, 0, &spritelayout, 1*16, 16 }, /*16 color codes*/ - { -1 } -}; - - -static struct AY8910interface ay8910_interface = -{ - 0, - 0, - ay8910_portA_0_w, /*write port A*/ - ay8910_portB_0_w /*write port B*/ -}; - - -static MACHINE_DRIVER_START( magmax ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(magmax_readmem,magmax_writemem) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80,10000000/4) - /* audio CPU */ /* 2.5 MHz */ - MDRV_CPU_PROGRAM_MAP(magmax_soundreadmem,magmax_soundwritemem) - MDRV_CPU_IO_MAP(magmax_soundreadport,magmax_soundwriteport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_START(magmax) - MDRV_MACHINE_RESET(magmax) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(1*16 + 16*16) - - MDRV_PALETTE_INIT(magmax) - MDRV_VIDEO_START(magmax) - MDRV_VIDEO_UPDATE(magmax) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 10000000/8) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD(AY8910, 10000000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD(AY8910, 10000000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) -MACHINE_DRIVER_END - - -ROM_START( magmax ) - ROM_REGION( 0x14000, REGION_CPU1, 0 ) /* 68000 (main) cpu code */ - ROM_LOAD16_BYTE( "1.3b", 0x00001, 0x4000, CRC(33793cbb) SHA1(a0bc0e4be434d9fc8115de8d63c92e942334bc85) ) - ROM_LOAD16_BYTE( "6.3d", 0x00000, 0x4000, CRC(677ef450) SHA1(9003ff1c1c455970c1bd036b0b5e44dae2e379a5) ) - ROM_LOAD16_BYTE( "2.5b", 0x08001, 0x4000, CRC(1a0c84df) SHA1(77ff21de33392a148d7ca69a77acc654260af0db) ) - ROM_LOAD16_BYTE( "7.5d", 0x08000, 0x4000, CRC(01c35e95) SHA1(4f1a0d0463a956d8f9ed425cbeaed6186eb130a5) ) - ROM_LOAD16_BYTE( "3.6b", 0x10001, 0x2000, CRC(d06e6cae) SHA1(94047b2bcf030d34295ff8107f95097ce57efe6b) ) - ROM_LOAD16_BYTE( "8.6d", 0x10000, 0x2000, CRC(790a82be) SHA1(9a25d5a7c87aeef5e736b0f2fb8dde1c9be70039) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 (sound) cpu code */ - ROM_LOAD( "15.17b", 0x00000, 0x2000, CRC(19e7b983) SHA1(b1cd0b728e7cce87d9b1039be179d0915d939a4f) ) - ROM_LOAD( "16.18b", 0x02000, 0x2000, CRC(055e3126) SHA1(8c9b03eb7588512ef17f8c1b731a2fd7cf372bf8) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* chars */ - ROM_LOAD( "23.15g", 0x00000, 0x2000, CRC(a7471da2) SHA1(ec2815a5801bc55955e612173a845399fd493eb7) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "17.3e", 0x00000, 0x2000, CRC(8e305b2e) SHA1(74c318089f6bebafbee31c22302e93a09d3ffa32) ) - ROM_LOAD( "18.5e", 0x02000, 0x2000, CRC(14c55a60) SHA1(fd2a1b434bb65502f0f791995caf1cd869ccd254) ) - ROM_LOAD( "19.6e", 0x04000, 0x2000, CRC(fa4141d8) SHA1(a5279d1ada5a13df14a8bbc18ceeea79f82a4c23) ) - ROM_LOAD( "20.3g", 0x08000, 0x2000, CRC(6fa3918b) SHA1(658bdbdc581732922c986b07746a9601d86ec5a2) ) - ROM_LOAD( "21.5g", 0x0a000, 0x2000, CRC(dd52eda4) SHA1(773e92c918f5b076ce3cae55a33a27c38d958edf) ) - ROM_LOAD( "22.6g", 0x0c000, 0x2000, CRC(4afc98ff) SHA1(a34d63befdb3c749460d1cfb62e15ced52859b9b) ) - - ROM_REGION( 0x10000, REGION_USER1, 0 ) /* surface scroll control */ - ROM_LOAD16_BYTE( "4.18b", 0x00000, 0x2000, CRC(1550942e) SHA1(436424d63ca576d13b0f4a3713f009a38e33f2f3) ) - ROM_LOAD16_BYTE( "5.20b", 0x00001, 0x2000, CRC(3b93017f) SHA1(b1b67c2050c8033c29bb74ab909075c39e4f7c6a) ) - /* BG control data */ - ROM_LOAD( "9.18d", 0x04000, 0x2000, CRC(9ecc9ab8) SHA1(ea5fbd9e9ce09e25f532dc74623e0f7e8464b7f3) ) /* surface */ - ROM_LOAD( "10.20d", 0x06000, 0x2000, CRC(e2ff7293) SHA1(d93c30f7edac53747efcf840325a8ce5f5e47b32) ) /* underground */ - /* background tiles */ - ROM_LOAD( "11.15f", 0x08000, 0x2000, CRC(91f3edb6) SHA1(64e8008cad0e9c42c2ee972c2ee867c7c51cae27) ) /* surface */ - ROM_LOAD( "12.17f", 0x0a000, 0x2000, CRC(99771eff) SHA1(5a1e2316b4055a1332d9d1f02edee5bc6aae90ac) ) /* underground */ - ROM_LOAD( "13.18f", 0x0c000, 0x2000, CRC(75f30159) SHA1(d188ccf926e7a842e90ebc1aad3dc20c37d84b98) ) /* surface of mechanical level */ - ROM_LOAD( "14.20f", 0x0e000, 0x2000, CRC(96babcba) SHA1(fec58ccc1e5cc2cec56658a412b94fe7b989541d) ) /* underground of mechanical level */ - - ROM_REGION( 0x0200, REGION_USER2, 0 ) /* BG control data */ - ROM_LOAD( "mag_b.14d", 0x0000, 0x0100, CRC(a0fb7297) SHA1(e6461050e7e586475343156aae1066b944ceab66) ) /* background control PROM */ - ROM_LOAD( "mag_c.15d", 0x0100, 0x0100, CRC(d84a6f78) SHA1(f2ce329b1adf39bde6df2eb79be6d144adea65d0) ) /* background control PROM */ - - ROM_REGION( 0x0500, REGION_PROMS, 0 ) /* color PROMs */ - ROM_LOAD( "mag_e.10f", 0x0000, 0x0100, CRC(75e4f06a) SHA1(cdaccc3e56df4ac9ace04b93b3bab9a62f1ea6f5) ) /* red */ - ROM_LOAD( "mag_d.10e", 0x0100, 0x0100, CRC(34b6a6e3) SHA1(af254ccf0d38e1f4644375cd357d468ad4efe450) ) /* green */ - ROM_LOAD( "mag_a.10d", 0x0200, 0x0100, CRC(a7ea7718) SHA1(4789586d6795644517a18f179b4ae5f23737b21d) ) /* blue */ - ROM_LOAD( "mag_g.2e", 0x0300, 0x0100, CRC(830be358) SHA1(f412587718040a783c4e6453619930c90daf385e) ) /* sprites color lookup table */ - ROM_LOAD( "mag_f.13b", 0x0400, 0x0100, CRC(4a6f9a6d) SHA1(65f1e0bfacd1f354ece1b18598a551044c27c4d1) ) /* state machine data used for video signals generation (not used in emulation)*/ -ROM_END - - -GAME( 1985, magmax, 0, magmax, magmax, 0, ROT0, "Nichibutsu", "Mag Max", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/mainevt.c b/src/drivers/mainevt.c deleted file mode 100644 index 60a752d27..000000000 --- a/src/drivers/mainevt.c +++ /dev/null @@ -1,1031 +0,0 @@ -/*************************************************************************** - - The Main Event, (c) 1988 Konami - Devastators, (c) 1988 Konami - -Emulation by Bryan McPhail, mish@tendril.co.uk - -Notes: -- Schematics show a palette/work RAM bank selector, but this doesn't seem - to be used? - -- In Devastators, shadows don't work. Bit 7 of the sprite attribute is always 0, - could there be a global enable flag in the 051960? - This is particularly evident in level 2 where plane shadows cover other sprites. - The priority/shadow encoder PROM is quite complex, however bits 5-7 of the sprite - attribute don't seem to be used, at least not in the first two levels, so the - PROM just maps to the fixed priority order currently implemented. - -- In Devastators, sprite zooming for the planes in level 2 is particularly bad. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/m6809/m6809.h" -#include "sound/2151intf.h" -#include "sound/k007232.h" -#include "sound/upd7759.h" - - -VIDEO_UPDATE( mainevt ); -VIDEO_UPDATE( dv ); -VIDEO_START( mainevt ); -VIDEO_START( dv ); - - - -static INTERRUPT_GEN( mainevt_interrupt ) -{ - if (K052109_is_IRQ_enabled()) - irq0_line_hold(); -} - - -static int nmi_enable; - -static WRITE8_HANDLER( dv_nmienable_w ) -{ - nmi_enable = data; -} - -static INTERRUPT_GEN( dv_interrupt ) -{ - if (nmi_enable) - nmi_line_pulse(); -} - - -WRITE8_HANDLER( mainevt_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int bankaddress; - - /* bit 0-1 ROM bank select */ - bankaddress = 0x10000 + (data & 0x03) * 0x2000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* TODO: bit 5 = select work RAM or palette? */ -// palette_selected = data & 0x20; - - /* bit 6 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 7 = NINITSET (unknown) */ - - /* other bits unused */ -} - -WRITE8_HANDLER( mainevt_coin_w ) -{ - coin_counter_w(0,data & 0x10); - coin_counter_w(1,data & 0x20); - set_led_status(0,data & 0x01); - set_led_status(1,data & 0x02); - set_led_status(2,data & 0x04); - set_led_status(3,data & 0x08); -} - -WRITE8_HANDLER( mainevt_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -WRITE8_HANDLER( mainevt_sh_irqcontrol_w ) -{ - upd7759_reset_w(0, data & 2); - upd7759_start_w(0, data & 1); - - interrupt_enable_w(0,data & 4); -} - -WRITE8_HANDLER( devstor_sh_irqcontrol_w ) -{ -interrupt_enable_w(0,data & 4); -} - -WRITE8_HANDLER( mainevt_sh_bankswitch_w ) -{ - int bank_A,bank_B; - -//logerror("CPU #1 PC: %04x bank switch = %02x\n",activecpu_get_pc(),data); - - /* bits 0-3 select the 007232 banks */ - bank_A=(data&0x3); - bank_B=((data>>2)&0x3); - K007232_set_bank( 0, bank_A, bank_B ); - - /* bits 4-5 select the UPD7759 bank */ - upd7759_set_bank_base(0, ((data >> 4) & 0x03) * 0x20000); -} - -WRITE8_HANDLER( dv_sh_bankswitch_w ) -{ - int bank_A,bank_B; - -//logerror("CPU #1 PC: %04x bank switch = %02x\n",activecpu_get_pc(),data); - - /* bits 0-3 select the 007232 banks */ - bank_A=(data&0x3); - bank_B=((data>>2)&0x3); - K007232_set_bank( 0, bank_A, bank_B ); -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f94, 0x1f94) AM_READ(input_port_0_r) /* Coins */ - AM_RANGE(0x1f95, 0x1f95) AM_READ(input_port_1_r) /* Player 1 */ - AM_RANGE(0x1f96, 0x1f96) AM_READ(input_port_2_r) /* Player 2 */ - AM_RANGE(0x1f97, 0x1f97) AM_READ(input_port_5_r) /* Dip 1 */ - AM_RANGE(0x1f98, 0x1f98) AM_READ(input_port_7_r) /* Dip 3 */ - AM_RANGE(0x1f99, 0x1f99) AM_READ(input_port_3_r) /* Player 3 */ - AM_RANGE(0x1f9a, 0x1f9a) AM_READ(input_port_4_r) /* Player 4 */ - AM_RANGE(0x1f9b, 0x1f9b) AM_READ(input_port_6_r) /* Dip 2 */ - - AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w) - AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* probably */ - AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */ - AM_RANGE(0x1f8c, 0x1f8d) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */ - - AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x4000, 0x5dff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5e00, 0x5fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram) - AM_RANGE(0x6000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( dv_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f94, 0x1f94) AM_READ(input_port_0_r) /* Coins */ - AM_RANGE(0x1f95, 0x1f95) AM_READ(input_port_1_r) /* Player 1 */ - AM_RANGE(0x1f96, 0x1f96) AM_READ(input_port_2_r) /* Player 2 */ - AM_RANGE(0x1f97, 0x1f97) AM_READ(input_port_5_r) /* Dip 1 */ - AM_RANGE(0x1f98, 0x1f98) AM_READ(input_port_7_r) /* Dip 3 */ - AM_RANGE(0x1f9b, 0x1f9b) AM_READ(input_port_6_r) /* Dip 2 */ - AM_RANGE(0x1fa0, 0x1fbf) AM_READ(K051733_r) - - AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r) - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dv_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w) - AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w) /* probably */ - AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */ - AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */ - AM_RANGE(0x1fb2, 0x1fb2) AM_WRITE(dv_nmienable_w) - AM_RANGE(0x1fa0, 0x1fbf) AM_WRITE(K051733_w) - - AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x4000, 0x5dff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x5e00, 0x5fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram) - AM_RANGE(0x6000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xd000, 0xd000) AM_READ(upd7759_0_busy_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0x9000, 0x9000) AM_WRITE(upd7759_0_port_w) - AM_RANGE(0xe000, 0xe000) AM_WRITE(mainevt_sh_irqcontrol_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(mainevt_sh_bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dv_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dv_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xe000, 0xe000) AM_WRITE(devstor_sh_irqcontrol_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(dv_sh_bankswitch_w) -ADDRESS_MAP_END - - - -/*****************************************************************************/ - -INPUT_PORTS_START( mainevt ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" ) - PORT_DIPSETTING( 0x00, "60" ) - PORT_DIPSETTING( 0x08, "70" ) - PORT_DIPSETTING( 0x10, "80" ) - PORT_DIPSETTING( 0x18, "90" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( mainev2p ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" ) - PORT_DIPSETTING( 0x00, "60" ) - PORT_DIPSETTING( 0x08, "70" ) - PORT_DIPSETTING( 0x10, "80" ) - PORT_DIPSETTING( 0x18, "90" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( devstors ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "150 and every 200" ) - PORT_DIPSETTING( 0x10, "150 and every 250" ) - PORT_DIPSETTING( 0x08, "150 Only" ) - PORT_DIPSETTING( 0x00, "200 Only" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -/* Same as 'devstors', but additional "Cocktail" Dip Switch (even if I don't see the use) */ -INPUT_PORTS_START( devstor2 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "150 and every 200" ) - PORT_DIPSETTING( 0x10, "150 and every 250" ) - PORT_DIPSETTING( 0x08, "150 Only" ) - PORT_DIPSETTING( 0x00, "200 Only" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -/*****************************************************************************/ - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND1, /* memory regions */ - volume_callback /* external port callback */ -}; - -static struct upd7759_interface upd7759_interface = -{ - REGION_SOUND2, /* memory region */ - 0 -}; - -static MACHINE_DRIVER_START( mainevt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* ?? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(mainevt_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,8) /* ??? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(mainevt) - MDRV_VIDEO_UPDATE(mainevt) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) - - MDRV_SOUND_ADD(UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(upd7759_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( devstors ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* ?? */ - MDRV_CPU_PROGRAM_MAP(dv_readmem,dv_writemem) - MDRV_CPU_VBLANK_INT(dv_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(dv_sound_readmem,dv_sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(dv) - MDRV_VIDEO_UPDATE(dv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "mono", 0.30) - MDRV_SOUND_ROUTE(1, "mono", 0.30) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* 4 players - English title screen - No "Warning" message in the ROM */ - -ROM_START( mainevt ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "799c02.k11", 0x10000, 0x08000, CRC(e2e7dbd5) SHA1(80314cd42a9f47f7bb82a2160fb5ef2ddc6dff30) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "799c06.f22", 0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) ) - ROM_LOAD16_BYTE( "799c07.h22", 0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) ) - ROM_LOAD16_BYTE( "799c08.j22", 0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) ) - ROM_LOAD16_BYTE( "799c09.k22", 0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "799b04.h4", 0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) ) - ROM_LOAD( "799b05.k4", 0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "63s141n.bin", 0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "799b03.d4", 0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 512k for the UPD7759C samples */ - ROM_LOAD( "799b06.c22", 0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) ) -ROM_END - - -/* 4 players - English title screen - No "Warning" message in the ROM */ - -ROM_START( mainevto ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "799_02.k11", 0x10000, 0x08000, CRC(c143596b) SHA1(5da7efaf0f7c7a493cc242eae115f278bc9c134b) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "799c06.f22", 0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) ) - ROM_LOAD16_BYTE( "799c07.h22", 0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) ) - ROM_LOAD16_BYTE( "799c08.j22", 0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) ) - ROM_LOAD16_BYTE( "799c09.k22", 0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "799b04.h4", 0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) ) - ROM_LOAD( "799b05.k4", 0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "63s141n.bin", 0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "799b03.d4", 0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 512k for the UPD7759C samples */ - ROM_LOAD( "799b06.c22", 0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) ) -ROM_END - - -/* 2 players - English title screen - "Warning" message in the ROM (not displayed) */ - -ROM_START( mainev2p ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "799x02.k11", 0x10000, 0x08000, CRC(42cfc650) SHA1(2d1918ebc0d93a2356ad995a6854dbde7c3b8daf) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "799c06.f22", 0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) ) - ROM_LOAD16_BYTE( "799c07.h22", 0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) ) - ROM_LOAD16_BYTE( "799c08.j22", 0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) ) - ROM_LOAD16_BYTE( "799c09.k22", 0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "799b04.h4", 0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) ) - ROM_LOAD( "799b05.k4", 0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "63s141n.bin", 0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "799b03.d4", 0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 512k for the UPD7759C samples */ - ROM_LOAD( "799b06.c22", 0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) ) -ROM_END - - -/* 2 players - Japan title screen - "Warning" message in the ROM (displayed) */ - -ROM_START( ringohja ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "799n02.k11", 0x10000, 0x08000, CRC(f9305dd0) SHA1(7135053be9d46ac9c09ab63eca1eb71825a71a13) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "799c06.f22", 0x00000, 0x08000, CRC(f839cb58) SHA1(b36202ca2b68b6249c3f972ad09501e28a0162f7) ) - ROM_LOAD16_BYTE( "799c07.h22", 0x00001, 0x08000, CRC(176df538) SHA1(379e1de81afb85b1559de170cd2ab9f4af2b137e) ) - ROM_LOAD16_BYTE( "799c08.j22", 0x10000, 0x08000, CRC(d01e0078) SHA1(7ac242eb24271ac2783ec4d9e97ae051f1f3363a) ) - ROM_LOAD16_BYTE( "799c09.k22", 0x10001, 0x08000, CRC(9baec75e) SHA1(a8f6102c8fd46f18678f336bc44be31458ca9256) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "799b04.h4", 0x00000, 0x80000, CRC(323e0c2b) SHA1(c108d656b6ceff13c910739e4ca760acbb640de3) ) - ROM_LOAD( "799b05.k4", 0x80000, 0x80000, CRC(571c5831) SHA1(2a18f0bcf6946ada6e0bde7edbd11afd4db1c170) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "63s141n.bin", 0x0000, 0x0100, CRC(61f6c8d1) SHA1(c70f1f8e434aaaffb89e30e2230a08374ef324ad) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "799b03.d4", 0x00000, 0x80000, CRC(f1cfd342) SHA1(079afc5c631de7f5b652d0ce6fd44b3aacd14a1b) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 512k for the UPD7759C samples */ - ROM_LOAD( "799b06.c22", 0x00000, 0x80000, CRC(2c8c47d7) SHA1(18a899767177ddfd870df9ed156d8bbc04b58a19) ) -ROM_END - -ROM_START( devstors ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "890-z02.k11", 0x10000, 0x08000, CRC(ebeb306f) SHA1(838fcfe95dfedd61f21f34301d48e337db765ab2) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "dev-k01.rom", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "dev-f06.rom", 0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) ) - ROM_LOAD16_BYTE( "dev-f07.rom", 0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) ) - ROM_LOAD16_BYTE( "dev-f08.rom", 0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) ) - ROM_LOAD16_BYTE( "dev-f09.rom", 0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "dev-f04.rom", 0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) ) - ROM_LOAD( "dev-f05.rom", 0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "dev-f03.rom", 0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) ) -ROM_END - -ROM_START( devstor2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "dev-x02.rom", 0x10000, 0x08000, CRC(e58ebb35) SHA1(4253b6a7128534cc0866bc910a271d91ac8b40fd) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "dev-k01.rom", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "dev-f06.rom", 0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) ) - ROM_LOAD16_BYTE( "dev-f07.rom", 0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) ) - ROM_LOAD16_BYTE( "dev-f08.rom", 0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) ) - ROM_LOAD16_BYTE( "dev-f09.rom", 0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "dev-f04.rom", 0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) ) - ROM_LOAD( "dev-f05.rom", 0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "dev-f03.rom", 0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) ) -ROM_END - -ROM_START( devstor3 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "890k02.k11", 0x10000, 0x08000, CRC(52f4ccdd) SHA1(074e526ed170a5f2083c8c0808734291a2ea7403) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "dev-k01.rom", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "dev-f06.rom", 0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) ) - ROM_LOAD16_BYTE( "dev-f07.rom", 0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) ) - ROM_LOAD16_BYTE( "dev-f08.rom", 0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) ) - ROM_LOAD16_BYTE( "dev-f09.rom", 0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "dev-f04.rom", 0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) ) - ROM_LOAD( "dev-f05.rom", 0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "dev-f03.rom", 0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) ) -ROM_END - -ROM_START( garuka ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD( "890w02.bin", 0x10000, 0x08000, CRC(b2f6f538) SHA1(95dad3258a2e4c5648d0fc22c06fa3e2da3b5ed1) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "dev-k01.rom", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD16_BYTE( "dev-f06.rom", 0x00000, 0x10000, CRC(26592155) SHA1(aa1f8662f091ca1eb495223e41a35edd861ae9e9) ) - ROM_LOAD16_BYTE( "dev-f07.rom", 0x00001, 0x10000, CRC(6c74fa2e) SHA1(419a2ad31d269fafe4c474bf512e935d5e018846) ) - ROM_LOAD16_BYTE( "dev-f08.rom", 0x20000, 0x10000, CRC(29e12e80) SHA1(6d09e190055218e2dfd07838f1446dfb5f801206) ) - ROM_LOAD16_BYTE( "dev-f09.rom", 0x20001, 0x10000, CRC(67ca40d5) SHA1(ff719f55d2534ff076fbdd2bcb7d12c683bfe958) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics (addressable by the main CPU) */ - ROM_LOAD( "dev-f04.rom", 0x00000, 0x80000, CRC(f16cd1fa) SHA1(60ea19c19918a71aded3c9ea398c956908e217f1) ) - ROM_LOAD( "dev-f05.rom", 0x80000, 0x80000, CRC(da37db05) SHA1(0b48d1021cf0dec78dae0ef183b4c61fea783533) ) - - ROM_REGION( 0x0100, REGION_PROMS, 0 ) - ROM_LOAD( "devaprom.bin", 0x0000, 0x0100, CRC(d3620106) SHA1(528a0a34754902d0f262a9619c6105da6de99354) ) /* priority encoder (not used) */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 512k for 007232 samples */ - ROM_LOAD( "dev-f03.rom", 0x00000, 0x80000, CRC(19065031) SHA1(12c47fbe28f85fa2f901fe52601188a5e9633f22) ) -ROM_END - - - -static DRIVER_INIT( mainevt ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1988, mainevt, 0, mainevt, mainevt, mainevt, ROT0, "Konami", "The Main Event (4 Players ver. Y)", 0 ) -GAME( 1988, mainevto, mainevt, mainevt, mainevt, mainevt, ROT0, "Konami", "The Main Event (4 Players ver. F)", 0 ) -GAME( 1988, mainev2p, mainevt, mainevt, mainev2p, mainevt, ROT0, "Konami", "The Main Event (2 Players ver. X)", 0 ) -GAME( 1988, ringohja, mainevt, mainevt, mainev2p, mainevt, ROT0, "Konami", "Ring no Ohja (Japan 2 Players ver. N)", 0 ) -GAME( 1988, devstors, 0, devstors, devstors, mainevt, ROT90, "Konami", "Devastators (ver. Z)", 0 ) -GAME( 1988, devstor2, devstors, devstors, devstor2, mainevt, ROT90, "Konami", "Devastators (ver. X)", 0 ) -GAME( 1988, devstor3, devstors, devstors, devstors, mainevt, ROT90, "Konami", "Devastators (ver. V)", 0 ) -GAME( 1988, garuka, devstors, devstors, devstor2, mainevt, ROT90, "Konami", "Garuka (Japan ver. W)", 0 ) diff --git a/src/drivers/malzak.c b/src/drivers/malzak.c deleted file mode 100644 index e732c9099..000000000 --- a/src/drivers/malzak.c +++ /dev/null @@ -1,568 +0,0 @@ -/* - - Malzak - - Produced by Kitronix, cabinet artwork suggests it was - released in 1980. - - Was sold around New Zealand in the early '80s. - Sold about 500 sets, fairly decent for the time. - - There are more games on this hardware, as far as I am aware. - - Driver by Reip, Barry Rodewald - SAA 5050 display code "borrowed" from the Philips 2000T/2000M driver in MESS - - Basic memory map - - 0x0000 - 0x0fff | S2650 code [malzak.5, malzak.4, malzak.2 (data only)] - 0x1000 - 0x13ff | Work RAM - 0x1400 - 0x14ff | S2636 #1 video - 0x1500 - 0x15ff | S2636 #2 video - 0x1600 - 0x16ff | Playfield gfx - 0x1700 - 0x17ff | Work RAM - contains hiscore table, coin count - 0x1800 - 0x1fff | SAA 5050 video RAM - - TODO - I/O ports (0x00 for sprite->background collisions) - sound (2x SN76477) - playfield graphics may be banked, tiles above 0x1f are incorrect - sprite->sprite collisions aren't quite perfect - (you can often fly through flying missiles) - - Notes: - - Test mode in Malzak II should be enabled by setting a POT to position - '4' and pressing button 1 three times. Then the POT is set to position - '1' to go back to the game. - -*/ - -#include "driver.h" -#include "vidhrdw/s2636.h" -#include "cpu/s2650/s2650.h" -#include "sound/sn76477.h" - -#define SAA5050_VBLANK 2500 - -static int malzak_bank1; - -extern int malzak_x; -extern int malzak_y; - -extern unsigned char* saa5050_vidram; /* Video RAM for SAA 5050 */ - -// in vidhrdw/malzak.c -VIDEO_START( malzak ); -VIDEO_UPDATE( malzak ); -WRITE8_HANDLER( playfield_w ); - -READ8_HANDLER( malzak_s2636_1_r ) -{ - return s2636_1_ram[offset]; -} - -READ8_HANDLER( malzak_s2636_2_r ) -{ - return s2636_2_ram[offset]; -} - -WRITE8_HANDLER( malzak_s2636_1_w ) -{ - s2636_w(s2636_1_ram,offset,data,s2636_1_dirty); -} - -WRITE8_HANDLER( malzak_s2636_2_w ) -{ - s2636_w(s2636_2_ram,offset,data,s2636_2_dirty); -} - - -static READ8_HANDLER( saa5050_r ) -{ - return saa5050_vidram[offset]; -} - -static WRITE8_HANDLER( saa5050_w ) -{ - saa5050_vidram[offset] = data; -} - -static READ8_HANDLER( fake_VRLE_r ) -{ - return (s2636_1_ram[0xcb] & 0x3f) + (cpu_getvblank()*0x40); -} - -static READ8_HANDLER( ram_mirror_r ) -{ - return program_read_byte(0x1000+offset); -} - -static WRITE8_HANDLER( ram_mirror_w ) -{ - program_write_byte(0x1000+offset,data); -} - -static READ8_HANDLER( bank_r ) -{ - unsigned char* bank = memory_region(REGION_USER2); - - return bank[offset + (malzak_bank1 * 0x0400)]; -} - -static READ8_HANDLER( s2636_portA_r ) -{ - // POT switch position, read from port A of the first S2636 - // Not sure of the correct values to return, but these should - // do based on the game code. - switch(readinputport(1)) - { - case 0: // Normal play - return 0xf0; - case 1: - return 0x90; - case 2: - return 0x70; - case 3: // Change settings - return 0x00; - default: - return 0xf0; - } -} - -/* -static READ8_HANDLER( bank2_r ) -{ // probably very wrong :) - unsigned char* bank = memory_region(REGION_USER1); - - return bank[offset + (malzak_bank1 * 0x0400)]; -} -*/ -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0bff) AM_READ(MRA8_ROM) - AM_RANGE(0x0c00, 0x0fff) AM_READ(bank_r) - AM_RANGE(0x1000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1100, 0x11ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1200, 0x12ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1300, 0x13ff) AM_READ(MRA8_RAM) - AM_RANGE(0x14cb, 0x14cb) AM_READ(fake_VRLE_r) - AM_RANGE(0x1400, 0x14ff) AM_READ(malzak_s2636_1_r) - AM_RANGE(0x1500, 0x15ff) AM_READ(malzak_s2636_2_r) - AM_RANGE(0x1600, 0x16ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1700, 0x17ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1800, 0x1fff) AM_READ(saa5050_r) // SAA 5050 video RAM - AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_READ(ram_mirror_r) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_READ(ram_mirror_r) - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_READ(ram_mirror_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1100, 0x11ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1200, 0x12ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1300, 0x13ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1400, 0x14ff) AM_WRITE(malzak_s2636_1_w) - AM_RANGE(0x1500, 0x15ff) AM_WRITE(malzak_s2636_2_w) - AM_RANGE(0x1600, 0x16ff) AM_WRITE(playfield_w) - AM_RANGE(0x1600, 0x16ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1700, 0x17ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1800, 0x1fff) AM_WRITE(saa5050_w) // SAA 5050 video RAM - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_WRITE(ram_mirror_w) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_WRITE(ram_mirror_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_WRITE(ram_mirror_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( malzak2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0bff) AM_READ(MRA8_ROM) - AM_RANGE(0x0c00, 0x0fff) AM_READ(bank_r) - AM_RANGE(0x1000, 0x10ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1100, 0x11ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1200, 0x12ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1300, 0x13ff) AM_READ(MRA8_RAM) - AM_RANGE(0x14cb, 0x14cb) AM_READ(fake_VRLE_r) - AM_RANGE(0x14cc, 0x14cc) AM_READ(s2636_portA_r) - AM_RANGE(0x1400, 0x14ff) AM_READ(malzak_s2636_1_r) - AM_RANGE(0x1500, 0x15ff) AM_READ(malzak_s2636_2_r) - AM_RANGE(0x1600, 0x16ff) AM_READ(MRA8_RAM) - AM_RANGE(0x1700, 0x17ff) AM_READ(MRA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x1800, 0x1fff) AM_READ(saa5050_r) // SAA 5050 video RAM - AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_READ(ram_mirror_r) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_READ(ram_mirror_r) - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_READ(ram_mirror_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( malzak2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1100, 0x11ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1200, 0x12ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1300, 0x13ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1400, 0x14ff) AM_WRITE(malzak_s2636_1_w) - AM_RANGE(0x1500, 0x15ff) AM_WRITE(malzak_s2636_2_w) - AM_RANGE(0x1600, 0x16ff) AM_WRITE(playfield_w) - AM_RANGE(0x1600, 0x16ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1700, 0x17ff) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x1800, 0x1fff) AM_WRITE(saa5050_w) // SAA 5050 video RAM - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x3000, 0x3fff) AM_WRITE(ram_mirror_w) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x5000, 0x5fff) AM_WRITE(ram_mirror_w) - AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7000, 0x7fff) AM_WRITE(ram_mirror_w) -ADDRESS_MAP_END - -static READ8_HANDLER( s2650_data_r ) -{ - popmessage("S2650 data port read"); - return 0xff; -} - -static WRITE8_HANDLER( port40_w ) -{ -// Bit 0 is constantly set high during gameplay -// Bit 4 is set high, then low, upon death -// Bit 1 is set high on boot, and on the title screens. -// Bits 1-3 are all set high upon death, until the game continues -// Bit 6 is used only in Malzak II, and is set high after checking -// the selected version -// logerror("S2650 [0x%04x]: port 0x40 write: 0x%02x\n",cpunum_get_physical_pc_byte(0),data); - if(data & 0x40) - malzak_bank1 = 1; - else - malzak_bank1 = 0; -} - -static WRITE8_HANDLER( port60_w ) -{ - malzak_x = data; -// logerror("I/O: port 0x60 write 0x%02x\n",data); -} - -static WRITE8_HANDLER( portc0_w ) -{ - malzak_y = data; -// logerror("I/O: port 0xc0 write 0x%02x\n",data); -} - -static READ8_HANDLER( collision_r ) -{ - // High 4 bits seem to refer to the row affected. - static int counter; - - if(++counter > 15) - counter = 0; -// logerror("I/O port 0x00 read\n"); - return 0xd0 + counter; -} - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(collision_r) // returns where a collision can occur. - AM_RANGE(0x80, 0x80) AM_READ(input_port_0_r) //controls - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(s2650_data_r) // read upon death - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x40, 0x40) AM_WRITE(port40_w) // possibly sound codes for dual SN76477s - AM_RANGE(0x60, 0x60) AM_WRITE(port60_w) // possibly playfield scroll X offset - AM_RANGE(0xa0, 0xa0) AM_WRITE(MWA8_NOP) // echoes I/O port read from port 0x80 - AM_RANGE(0xc0, 0xc0) AM_WRITE(portc0_w) // possibly playfield row selection for writing and/or collisions -ADDRESS_MAP_END - -INPUT_PORTS_START( malzak ) - - /* Malzak has an 8-way stick - and only one button (firing and bomb dropping on the same button) */ - - PORT_START /* I/O port 0x80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - - PORT_START - // No POT switch on Malzak as far as I know - - PORT_START /* SENSE */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - -INPUT_PORTS_END - -INPUT_PORTS_START( malzak2 ) - - /* Same as Malzak, but with additional POT switch, and - possibly a reset button too. */ - - PORT_START /* I/O port 0x80 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - - PORT_START // Fake DIP switch to handle the POT switch. - PORT_DIPNAME( 0x03, 0x00, "POT switch position" ) - PORT_DIPSETTING( 0x00, "1" ) // Normal play - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x03, "4" ) // Change settings - - PORT_START /* SENSE */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 0 }, - { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, -// { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*16 -// 8*8 -}; - -static const gfx_layout s2636_character10 = -{ - 8,10, - 5, - 1, - { 0 }, - { 0,1,2,3,4,5,6,7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 }, - 8*16 -}; - -static const gfx_layout saa5050_charlayout = -{ - 6, 10, - 256, - 1, - { 0 }, - { 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, - 5*8, 6*8, 7*8, 8*8, 9*8 }, - 8 * 10 -}; - -static const gfx_layout saa5050_hilayout = -{ - 6, 10, - 256, - 1, - { 0 }, - { 2, 3, 4, 5, 6, 7 }, - { 0*8, 0*8, 1*8, 1*8, 2*8, - 2*8, 3*8, 3*8, 4*8, 4*8 }, - 8 * 10 -}; - -static const gfx_layout saa5050_lolayout = -{ - 6, 10, - 256, - 1, - { 0 }, - { 2, 3, 4, 5, 6, 7 }, - { 5*8, 5*8, 6*8, 6*8, 7*8, - 7*8, 8*8, 8*8, 9*8, 9*8 }, - 8 * 10 -}; - -static unsigned char saa5050_palette[8 * 3] = -{ - 0x00, 0x00, 0x00, /* black */ - 0xff, 0x00, 0x00, /* red */ - 0x00, 0xff, 0x00, /* green */ - 0xff, 0xff, 0x00, /* yellow */ - 0x00, 0x00, 0xff, /* blue */ - 0xff, 0x00, 0xff, /* magenta */ - 0x00, 0xff, 0xff, /* cyan */ - 0xff, 0xff, 0xff /* white */ -}; - -/* bgnd, fgnd */ -static unsigned short saa5050_colortable[64 * 2] = -{ - 0,1, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, - 1,0, 1,1, 1,2, 1,3, 1,4, 1,5, 1,6, 1,7, - 2,0, 2,1, 2,2, 2,3, 2,4, 2,5, 2,6, 2,7, - 3,0, 3,1, 3,2, 3,3, 3,4, 3,5, 3,6, 3,7, - 4,0, 4,1, 4,2, 4,3, 4,4, 4,5, 4,6, 4,7, - 5,0, 5,1, 5,2, 5,3, 5,4, 5,5, 5,6, 5,7, - 6,0, 6,1, 6,2, 6,3, 6,4, 6,5, 6,6, 6,7, - 7,0, 7,1, 7,2, 7,3, 7,4, 7,5, 7,6, 7,7 -}; - -//add s2636 decodes here (i.e. from zac2650) and maybe re-arrange them -static const gfx_decode malzak_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_CPU1, 0x0000, &s2636_character10, 0, 8 }, /* s2636 #1 */ - { REGION_CPU1, 0x0000, &s2636_character10, 0, 8 }, /* s2636 #2 */ - { REGION_GFX2, 0x0000, &saa5050_charlayout, 0, 128}, - { REGION_GFX2, 0x0000, &saa5050_hilayout, 0, 128}, - { REGION_GFX2, 0x0000, &saa5050_lolayout, 0, 128}, - { -1 } /* end of array */ -}; - -//static int val = -1; - - -static PALETTE_INIT( malzak ) -{ - palette_set_colors(machine, 0, saa5050_palette, sizeof(saa5050_palette) / 3); - memcpy(colortable, saa5050_colortable, sizeof (saa5050_colortable)); -} - - -MACHINE_RESET(malzak) -{ -// val++; -// mame_printf_debug("val = %X\n",val); -} - -static struct SN76477interface sn76477_intf = -{ - 0, /* N/C */ /* 4 noise_res */ - 0, /* N/C */ /* 5 filter_res */ - 0, /* N/C */ /* 6 filter_cap */ - 0, /* N/C */ /* 7 decay_res */ - 0, /* N/C */ /* 8 attack_decay_cap */ - RES_K(100), /* 10 attack_res */ - RES_K(56), /* 11 amplitude_res */ - RES_K(10), /* 12 feedback_res */ - 0, /* N/C */ /* 16 vco_voltage */ - CAP_U(0.1), /* 17 vco_cap */ - RES_K(8.2), /* 18 vco_res */ - 5.0, /* 19 pitch_voltage */ - RES_K(120), /* 20 slf_res */ - CAP_U(1.0), /* 21 slf_cap */ - 0, /* N/C */ /* 23 oneshot_cap */ - 0, /* N/C */ /* 24 oneshot_res */ - 0, /* 22 vco */ - 1, /* 26 mixer A */ - 1, /* 25 mixer B */ - 1, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable */ -}; - - -static MACHINE_DRIVER_START( malzak ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", S2650, 3800000/4) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(SAA5050_VBLANK)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(240, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 239, 0, 239) - MDRV_GFXDECODE(malzak_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_PALETTE_INIT(malzak) - MDRV_COLORTABLE_LENGTH(128) - -// MDRV_MACHINE_RESET(malzak) - - MDRV_VIDEO_START(malzak) - MDRV_VIDEO_UPDATE(malzak) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76477, 0) - MDRV_SOUND_CONFIG(sn76477_intf) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(SN76477, 0) - MDRV_SOUND_CONFIG(sn76477_intf) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( malzak2 ) - MDRV_IMPORT_FROM( malzak ) - - MDRV_CPU_MODIFY( "main" ) - MDRV_CPU_PROGRAM_MAP( malzak2_readmem, malzak2_writemem ) - - MDRV_NVRAM_HANDLER( generic_0fill ) -MACHINE_DRIVER_END - -ROM_START( malzak ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "malzak.5", 0x0000, 0x0800, CRC(75355c98) SHA1(7036ed5d9ee38585b1a6bc204d410d5fb5ddd81f) ) - ROM_CONTINUE( 0x2000, 0x0800 ) - ROM_LOAD( "malzak.4", 0x0800, 0x0400, CRC(744c81e3) SHA1(c08d6df3cf2808a5f99d8247fc19a59be88121a9) ) - ROM_CONTINUE( 0x4000, 0x0c00 ) - // Terrain data - ROM_LOAD( "malzak.3", 0x4400, 0x0800, CRC(b947229e) SHA1(37b88b5aa91a483fcfe60a9bdd67a66f6378c487) ) - - // Screen data - ROM_REGION(0x0800, REGION_USER2, 0) - ROM_LOAD( "malzak.2", 0x0000, 0x0800, CRC(2a12ad67) SHA1(f89a50b62311a170004c061abd8dedc3ebd84748) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "malzak.1", 0x0000, 0x0800, CRC(74d5ff7b) SHA1(cae326370dc83b86542f9d070e2dc91b1b833356) ) - - ROM_REGION(0x01000, REGION_GFX2,0) // SAA5050 internal character ROM - ROM_LOAD("p2000.chr", 0x0140, 0x08c0, BAD_DUMP CRC(78c17e3e) SHA1(4e1c59dc484505de1dc0b1ba7e5f70a54b0d4ccc) ) - -ROM_END - -ROM_START( malzak2 ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "malz1a.bin", 0x000000, 0x000800, CRC(5c3cb14c) SHA1(2d3b5703cb9a47e34aa593f0e8d42d4e67c167d9) ) - ROM_CONTINUE( 0x2000, 0x0800 ) - - ROM_LOAD( "malz2b.bin", 0x0800, 0x0400, CRC(2af8aace) SHA1(7aaf03d4848c2cce72b2b3729661e7826834ad44) ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_CONTINUE( 0x2800, 0x0400 ) - ROM_CONTINUE( 0x6000, 0x0400 ) - // Terrain data - ROM_LOAD( "malz3c.bin", 0x4400, 0x0800, CRC(54d6a02e) SHA1(80c550d74da770689fe451cb0ee8e550a63b1b96) ) - - // Screen data - ROM_REGION(0x0800, REGION_USER2, 0) - ROM_LOAD( "malz4d.bin", 0x0000, 0x0800, CRC(5c6ca415) SHA1(e7571519ac7911507d2c1cf975a7663f41321cb9) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "malzak.1", 0x0000, 0x0800, CRC(74d5ff7b) SHA1(cae326370dc83b86542f9d070e2dc91b1b833356) ) - - ROM_REGION(0x01000, REGION_GFX2,0) // SAA5050 internal character ROM - ROM_LOAD("p2000.chr", 0x0140, 0x08c0, BAD_DUMP CRC(78c17e3e) SHA1(4e1c59dc484505de1dc0b1ba7e5f70a54b0d4ccc) ) - -ROM_END - - -GAME( 19??, malzak, 0, malzak, malzak, 0, ROT0, "Kitronix", "Malzak", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS ) -GAME( 19??, malzak2, malzak, malzak2, malzak2, 0, ROT0, "Kitronix", "Malzak II", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/mario.c b/src/drivers/mario.c deleted file mode 100644 index 8a56c211a..000000000 --- a/src/drivers/mario.c +++ /dev/null @@ -1,566 +0,0 @@ -/*************************************************************************** - -Mario Bros memory map (preliminary): - -driver by Mirko Buffoni - - -0000-5fff ROM -6000-6fff RAM -7000-73ff ? -7400-77ff Video RAM -f000-ffff ROM - -read: -7c00 IN0 -7c80 IN1 -7f80 DSW - -* - * IN0 (bits NOT inverted) - * bit 7 : TEST - * bit 6 : START 2 - * bit 5 : START 1 - * bit 4 : JUMP player 1 - * bit 3 : ? DOWN player 1 ? - * bit 2 : ? UP player 1 ? - * bit 1 : LEFT player 1 - * bit 0 : RIGHT player 1 - * -* - * IN1 (bits NOT inverted) - * bit 7 : ? - * bit 6 : COIN 2 - * bit 5 : COIN 1 - * bit 4 : JUMP player 2 - * bit 3 : ? DOWN player 2 ? - * bit 2 : ? UP player 2 ? - * bit 1 : LEFT player 2 - * bit 0 : RIGHT player 2 - * -* - * DSW (bits NOT inverted) - * bit 7 : \ difficulty - * bit 6 : / 00 = easy 01 = medium 10 = hard 11 = hardest - * bit 5 : \ bonus - * bit 4 : / 00 = 20000 01 = 30000 10 = 40000 11 = none - * bit 3 : \ coins per play - * bit 2 : / - * bit 1 : \ 00 = 3 lives 01 = 4 lives - * bit 0 : / 10 = 5 lives 11 = 6 lives - * - -write: -7d00 vertical scroll (pow) -7d80 ? -7e00 sound -7e80-7e82 ? -7e83 sprite palette bank select -7e84 interrupt enable -7e85 ? -7f00-7f07 sound triggers - - -I/O ports - -write: -00 ? - -***************************************************************************/ - -#include "driver.h" -#include "cpu/i8039/i8039.h" -#include "sound/dac.h" -#include "sound/ay8910.h" -#include "sound/samples.h" - -static UINT8 p[8] = { 0,0xf0,0,0,0,0,0,0 }; -static UINT8 t[2] = { 0,0 }; - -static UINT8 last; - - -extern WRITE8_HANDLER( mario_videoram_w ); -extern WRITE8_HANDLER( mario_gfxbank_w ); -extern WRITE8_HANDLER( mario_palettebank_w ); -extern WRITE8_HANDLER( mario_scroll_w ); - -extern PALETTE_INIT( mario ); -extern VIDEO_START( mario ); -extern VIDEO_UPDATE( mario ); - -/* - * from sndhrdw/mario.c - */ -extern WRITE8_HANDLER( mario_sh_w ); -extern WRITE8_HANDLER( mario_sh1_w ); -extern WRITE8_HANDLER( mario_sh2_w ); -extern WRITE8_HANDLER( mario_sh3_w ); - - -static MACHINE_START( mario ) -{ - state_save_register_global_array(p); - state_save_register_global_array(t); - state_save_register_global(last); - return 0; -} - - -#define ACTIVELOW_PORT_BIT(P,A,D) ((P & (~(1 << A))) | ((D ^ 1) << A)) -#define ACTIVEHIGH_PORT_BIT(P,A,D) ((P & (~(1 << A))) | (D << A)) - - -WRITE8_HANDLER( mario_sh_getcoin_w ) { t[0] = data; } -WRITE8_HANDLER( mario_sh_crab_w ) { p[1] = ACTIVEHIGH_PORT_BIT(p[1],0,data); } -WRITE8_HANDLER( mario_sh_turtle_w ) { p[1] = ACTIVEHIGH_PORT_BIT(p[1],1,data); } -WRITE8_HANDLER( mario_sh_fly_w ) { p[1] = ACTIVEHIGH_PORT_BIT(p[1],2,data); } -static WRITE8_HANDLER( mario_sh_tuneselect_w ) { soundlatch_w(offset,data); } - -static READ8_HANDLER( mario_sh_p1_r ) { return p[1]; } -static READ8_HANDLER( mario_sh_p2_r ) { return p[2]; } -static READ8_HANDLER( mario_sh_t0_r ) { return t[0]; } -static READ8_HANDLER( mario_sh_t1_r ) { return t[1]; } -static READ8_HANDLER( mario_sh_tune_r ) { return soundlatch_r(offset); } - -static WRITE8_HANDLER( mario_sh_sound_w ) -{ - DAC_data_w(0,data); -} -static WRITE8_HANDLER( mario_sh_p1_w ) -{ - p[1] = data; -} -static WRITE8_HANDLER( mario_sh_p2_w ) -{ - p[2] = data; -} -WRITE8_HANDLER( masao_sh_irqtrigger_w ) -{ - if (last == 1 && data == 0) - { - /* setting bit 0 high then low triggers IRQ on the sound CPU */ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); - } - - last = data; -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_ROM) - AM_RANGE(0x6000, 0x6fff) AM_READ(MRA8_RAM) - AM_RANGE(0x7400, 0x77ff) AM_READ(MRA8_RAM) /* video RAM */ - AM_RANGE(0x7c00, 0x7c00) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x7c80, 0x7c80) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x7f80, 0x7f80) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(mario_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7c00, 0x7c00) AM_WRITE(mario_sh1_w) /* Mario run sample */ - AM_RANGE(0x7c80, 0x7c80) AM_WRITE(mario_sh2_w) /* Luigi run sample */ - AM_RANGE(0x7d00, 0x7d00) AM_WRITE(mario_scroll_w) - AM_RANGE(0x7e80, 0x7e80) AM_WRITE(mario_gfxbank_w) - AM_RANGE(0x7e83, 0x7e83) AM_WRITE(mario_palettebank_w) - AM_RANGE(0x7e84, 0x7e84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7f00, 0x7f00) AM_WRITE(mario_sh_w) /* death */ - AM_RANGE(0x7f01, 0x7f01) AM_WRITE(mario_sh_getcoin_w) - AM_RANGE(0x7f03, 0x7f03) AM_WRITE(mario_sh_crab_w) - AM_RANGE(0x7f04, 0x7f04) AM_WRITE(mario_sh_turtle_w) - AM_RANGE(0x7f05, 0x7f05) AM_WRITE(mario_sh_fly_w) - AM_RANGE(0x7f00, 0x7f07) AM_WRITE(mario_sh3_w) /* Misc discrete samples */ - AM_RANGE(0x7e00, 0x7e00) AM_WRITE(mario_sh_tuneselect_w) - AM_RANGE(0x7000, 0x73ff) AM_WRITE(MWA8_NOP) /* ??? */ -// AM_RANGE(0x7e85, 0x7e85) AM_WRITE(MWA8_RAM) /* Sets alternative 1 and 0 */ - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( masao_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x6000, 0x68ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6a80, 0x6fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6900, 0x6a7f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x7400, 0x77ff) AM_WRITE(mario_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x7d00, 0x7d00) AM_WRITE(mario_scroll_w) - AM_RANGE(0x7e00, 0x7e00) AM_WRITE(soundlatch_w) - AM_RANGE(0x7e80, 0x7e80) AM_WRITE(mario_gfxbank_w) - AM_RANGE(0x7e83, 0x7e83) AM_WRITE(mario_palettebank_w) - AM_RANGE(0x7e84, 0x7e84) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x7000, 0x73ff) AM_WRITE(MWA8_NOP) /* ??? */ - AM_RANGE(0x7f00, 0x7f00) AM_WRITE(masao_sh_irqtrigger_w) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mario_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(MWA8_NOP) /* unknown... is this a trigger? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END -static ADDRESS_MAP_START( readport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0xff) AM_READ(mario_sh_tune_r) - AM_RANGE(I8039_p1, I8039_p1) AM_READ(mario_sh_p1_r) - AM_RANGE(I8039_p2, I8039_p2) AM_READ(mario_sh_p2_r) - AM_RANGE(I8039_t0, I8039_t0) AM_READ(mario_sh_t0_r) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(mario_sh_t1_r) -ADDRESS_MAP_END -static ADDRESS_MAP_START( writeport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0xff) AM_WRITE(mario_sh_sound_w) - AM_RANGE(I8039_p1, I8039_p1) AM_WRITE(mario_sh_p1_w) - AM_RANGE(I8039_p2, I8039_p2) AM_WRITE(mario_sh_p2_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( mario ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x10, "30000" ) - PORT_DIPSETTING( 0x20, "40000" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( mariojp ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) /* doesn't work in game, but does in service mode */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x20, 0x20, "2 Players Game" ) - PORT_DIPSETTING( 0x00, "1 Credit" ) - PORT_DIPSETTING( 0x20, "2 Credits" ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x40, "30000" ) - PORT_DIPSETTING( 0x80, "40000" ) - PORT_DIPSETTING( 0xc0, DEF_STR( None ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 512*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, /* pretty straightforward layout */ - { 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 */ - 256, /* 256 sprites */ - 3, /* 3 bits per pixel */ - { 2*256*16*16, 256*16*16, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, /* the two halves of the sprite are separated */ - 256*16*8+0, 256*16*8+1, 256*16*8+2, 256*16*8+3, 256*16*8+4, 256*16*8+5, 256*16*8+6, 256*16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 16*8 /* every sprite takes 16 consecutive bytes */ -}; - - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &spritelayout, 16*4, 32 }, - { -1 } /* end of array */ -}; - - - -static const char *mario_sample_names[] = -{ - "*mario", - - /* 7f01 - 7f07 sounds */ - "ice.wav", /* 0x02 ice appears (formerly effect0.wav) */ - "coin.wav", /* 0x06 coin appears (formerly effect1.wav) */ - "skid.wav", /* 0x07 skid */ - - /* 7c00 */ - "run.wav", /* 03, 02, 01 - 0x1b */ - - /* 7c80 */ - "luigirun.wav", /* 03, 02, 01 - 0x1c */ - - 0 /* end of array */ -}; - -static struct Samplesinterface samples_interface = -{ - 3, /* 3 channels */ - mario_sample_names -}; - -static struct AY8910interface ay8910_interface = -{ - soundlatch_r -}; - -static ADDRESS_MAP_START( masao_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) - AM_RANGE(0x2000, 0x23ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x4000) AM_READ(AY8910_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( masao_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2000, 0x23ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6000, 0x6000) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x4000, 0x4000) AM_WRITE(AY8910_write_port_0_w) -ADDRESS_MAP_END - - -static MACHINE_DRIVER_START( mario ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(0,mario_writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(I8039, 730000) - /* audio CPU */ /* 730 kHz */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_MACHINE_START(mario) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(16*4+32*8) - - MDRV_PALETTE_INIT(mario) - MDRV_VIDEO_START(mario) - MDRV_VIDEO_UPDATE(mario) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( masao ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4.000 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,masao_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(Z80,24576000/16) - /* audio CPU */ /* ???? */ - MDRV_CPU_PROGRAM_MAP(masao_sound_readmem,masao_sound_writemem) - - MDRV_MACHINE_START(mario) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(16*4+32*8) - - MDRV_PALETTE_INIT(mario) - MDRV_VIDEO_START(mario) - MDRV_VIDEO_UPDATE(mario) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318000/6) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( mario ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mario.7f", 0x0000, 0x2000, CRC(c0c6e014) SHA1(36a04f9ca1c2a583477cb8a6f2ef94e044e08296) ) - ROM_LOAD( "mario.7e", 0x2000, 0x2000, CRC(116b3856) SHA1(e372f846d0e5a2b9b47ebd0330293fcc8a12363f) ) - ROM_LOAD( "mario.7d", 0x4000, 0x2000, CRC(dcceb6c1) SHA1(b19804e69ce2c98cf276c6055c3a250316b96b45) ) - ROM_LOAD( "mario.7c", 0xf000, 0x1000, CRC(4a63d96b) SHA1(b09060b2c84ab77cc540a27b8f932cb60ec8d442) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "tma1c-a.6k", 0x0000, 0x1000, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mario.3f", 0x0000, 0x1000, CRC(28b0c42c) SHA1(46749568aff88a28c3b6a1ac423abd1b90742a4d) ) - ROM_LOAD( "mario.3j", 0x1000, 0x1000, CRC(0c8cc04d) SHA1(15fae47d701dc1ef15c943cee6aa991776ecffdf) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mario.7m", 0x0000, 0x1000, CRC(22b7372e) SHA1(4a1c1e239cb6d483e76f50d7a3b941025963c6a3) ) - ROM_LOAD( "mario.7n", 0x1000, 0x1000, CRC(4f3a1f47) SHA1(0747d693b9482f6dd28b0bc484fd1d3e29d35654) ) - ROM_LOAD( "mario.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) ) - ROM_LOAD( "mario.7s", 0x3000, 0x1000, CRC(56f1d613) SHA1(9af6844dbaa3615433d0595e9e85e72493e31a54) ) - ROM_LOAD( "mario.7t", 0x4000, 0x1000, CRC(641f0008) SHA1(589fe108c7c11278fd897f2ded8f0498bc149cfd) ) - ROM_LOAD( "mario.7u", 0x5000, 0x1000, CRC(7baf5309) SHA1(d9194ff7b89a18273d37b47228fc7fb7e2a0ed1f) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mario.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) -ROM_END - -ROM_START( mariojp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tma1c-a1.7f", 0x0000, 0x2000, CRC(b64b6330) SHA1(f7084251ac325bbfa3fb804da16a50622e1fd213) ) - ROM_LOAD( "tma1c-a2.7e", 0x2000, 0x2000, CRC(290c4977) SHA1(5af266be0ddc883c6548c90e4a9084024a1e91a0) ) - ROM_LOAD( "tma1c-a1.7d", 0x4000, 0x2000, CRC(f8575f31) SHA1(710d0e72fcfce700ed2a22fb9c7c392cc76b250b) ) - ROM_LOAD( "tma1c-a2.7c", 0xf000, 0x1000, CRC(a3c11e9e) SHA1(d0612b0f8c2ea4e798f551922a04a324f4ed5f3d) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) /* sound */ - ROM_LOAD( "tma1c-a.6k", 0x0000, 0x1000, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tma1v-a.3f", 0x0000, 0x1000, CRC(adf49ee0) SHA1(11fc2cd197bfe3ecb6af55c3c7a326c94988d2bd) ) - ROM_LOAD( "tma1v-a.3j", 0x1000, 0x1000, CRC(a5318f2d) SHA1(e42f5e51804195c64a56addb18b7ad12c57bb09a) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tma1v-a.7m", 0x0000, 0x1000, CRC(186762f8) SHA1(711fdd37392656bdd5027e020d51d083ccd7c407) ) - ROM_LOAD( "tma1v-a.7n", 0x1000, 0x1000, CRC(e0e08bba) SHA1(315eba2c10d426c9c0bb4e36987bf8ebed7df9a0) ) - ROM_LOAD( "tma1v-a.7p", 0x2000, 0x1000, CRC(7b27c8c1) SHA1(3fb2613ce19e353fbcc77b6817927794fb35810f) ) - ROM_LOAD( "tma1v-a.7s", 0x3000, 0x1000, CRC(912ba80a) SHA1(351fb5b160216eb10e281815d05a7165ca0e5909) ) - ROM_LOAD( "tma1v-a.7t", 0x4000, 0x1000, CRC(5cbb92a5) SHA1(a78a378e6d3060143dc456e9c33a5068da648331) ) - ROM_LOAD( "tma1v-a.7u", 0x5000, 0x1000, CRC(13afb9ed) SHA1(b29dcd91cf5e639ee50b734afc7a3afce79634df) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mario.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) -ROM_END - -ROM_START( masao ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "masao-4.rom", 0x0000, 0x2000, CRC(07a75745) SHA1(acc760242a8862d177e3cff90aa32c4f3dac4e65) ) - ROM_LOAD( "masao-3.rom", 0x2000, 0x2000, CRC(55c629b6) SHA1(1f5b5699821871aadacc511663cb4bd4e357e215) ) - ROM_LOAD( "masao-2.rom", 0x4000, 0x2000, CRC(42e85240) SHA1(bc8cdf867b743c5ee58fcacb63a44f826c8f8c1a) ) - ROM_LOAD( "masao-1.rom", 0xf000, 0x1000, CRC(b2817af9) SHA1(95e83752e544671a68df2107fae1010b187f04a6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "masao-5.rom", 0x0000, 0x1000, CRC(bd437198) SHA1(ebae88461984afc97bbc103fc6d95bc3c1865eec) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "masao-6.rom", 0x0000, 0x1000, CRC(1c9e0be2) SHA1(b4a650412dad90c6f6d79e93cde49055703b7f3e) ) - ROM_LOAD( "masao-7.rom", 0x1000, 0x1000, CRC(747c1349) SHA1(54674f78edf86953b7d500b66393483d1a5ce8ab) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tma1v-a.7m", 0x0000, 0x1000, CRC(186762f8) SHA1(711fdd37392656bdd5027e020d51d083ccd7c407) ) - ROM_LOAD( "masao-9.rom", 0x1000, 0x1000, CRC(50be3918) SHA1(73e22eee67a03732ff57e523f900f20c6aee0491) ) - ROM_LOAD( "mario.7p", 0x2000, 0x1000, CRC(56be6ccd) SHA1(15a6e16c189d45f72761ebcbe9db5001bdecd659) ) - ROM_LOAD( "tma1v-a.7s", 0x3000, 0x1000, CRC(912ba80a) SHA1(351fb5b160216eb10e281815d05a7165ca0e5909) ) - ROM_LOAD( "tma1v-a.7t", 0x4000, 0x1000, CRC(5cbb92a5) SHA1(a78a378e6d3060143dc456e9c33a5068da648331) ) - ROM_LOAD( "tma1v-a.7u", 0x5000, 0x1000, CRC(13afb9ed) SHA1(b29dcd91cf5e639ee50b734afc7a3afce79634df) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mario.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) ) -ROM_END - - - -GAME( 1983, mario, 0, mario, mario, 0, ROT180, "Nintendo of America", "Mario Bros. (US)", GAME_SUPPORTS_SAVE ) -GAME( 1983, mariojp, mario, mario, mariojp, 0, ROT180, "Nintendo", "Mario Bros. (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1983, masao, mario, masao, mario, 0, ROT180, "bootleg", "Masao", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/mcr.c b/src/drivers/mcr.c deleted file mode 100644 index aaecd95ea..000000000 --- a/src/drivers/mcr.c +++ /dev/null @@ -1,2546 +0,0 @@ -/*************************************************************************** - - Midway MCR systems - - driver by Christopher Kirmse, Aaron Giles - - Games supported: - * Solar Fox - * Kick - * Satan's Hollow - * Tron - * Kozmik Krooz'r - * Domino Man - * Wacko - * Two Tigers - * Journey - * Tapper - * Timber - * Discs of Tron (Squawk n' Talk) - * NFL Football (Squawk n' Talk + laserdisk) - * Demolition Derby (Turbo Chip Squeak) - - Known bugs: - * none at this time - -**************************************************************************** - - Early MCR systems have three PCBs, which can be intermixed to a certain - degree: - - CPU board contains: - * the main Z80 and program ROMs - * the video sync chain - * the background generation and background graphics ROMs - * the mixing logic and color generation - - Video generator board contains: - * the foreground generation and foreground graphics ROMs - - Sound I/O board contains: - * the Z80 that drivers the sound - * two AY-8910s for sound generation - * all input/output ports accessed by the main CPU - - The layout of the PCB is identified by a five-digit number silkscreened - on the PCB. This number also matches the number in the bottom-right - corner of the schematics. Note, however, that the wiring diagrams in - the schematics are generally a horrible cut and paste job and often - have incorrect board numbers! - - Below is the definitive list of MCR games and which boards comprise - their stack. Anything with identical boards should be interchangeable - without problems. If you want to hook up some of the odd boards, you - should look at the board descriptions below to understand the - differences between each type of board: - - - CPU Video Sound Others - ----- ----- ----- ------------ - Kick 90009 91399 90908 - Solar Fox 90009 91399 90908 - - Satan's Hollow 90010 91399 90913 - Tron 90010 91399 90913 91418 - Kozmik Krooz'r 90010 91399 91483 91458 91482 - Domino Man 90010 91399 90913 - Wacko 90010 91399 90913 - Two Tigers - Journey 91475 91464 90913 - - Tapper 91490 91464 90913 - Timber - Discs of Tron 91490 91464 91657 91660 - NFL Football 91490 91464 91657 91660 91695 - Demolition Derby 91490 91464 90913 - - Spy Hunter 91442 91433 91657/90913 91671 - Crater Raider 91721 91464 91657 - Turbo Tag 91442 91433 91657 - -**************************************************************************** - - Detailed CPU board descriptions: - 90009 (Kick, Solar Fox) - * 2.5MHz Z80 - * up to 7x2k program EPROMs - * 2x4k background EPROMs - * 32 entry palette RAM - * background colors 0-15 - * sprite colors 16-31 - * sprite pen 8 shows foreground through - - 90010 (Satan's Hollow, Tron, Kozmik Krooz'r, Domino Man, Wacko) - * 2.5MHz Z80 - * up to 6x8k program EPROMs - * 2x8k background EPROMs - * 64 entry palette RAM - * background colors 0-63, upper two bits come from tile RAM - * sprite colors 0-63, upper two bits come from tile RAM - * sprite pen 8 shows foreground through - - 91442 (Spy Hunter, Turbo Tag) - * 5MHz Z80 - * up to 6x8k program EPROMs - * 4x8k background EPROMs (odd format) - * 1x4k alpha EPROM - * 64 entry palette RAM - * background colors 0-15 on top half of screen, 32-47 on bottom - * sprite colors 16-31 on top half of screen, 48-63 on bottom - * alpha colors hard coded to green, blue, or white - - 91475 (Journey) - * identical to 90010 except: - * sprite colors 0-63, upper two bits come from video gen - * sprite colors 48-63 have an extra bit for higher grayscale resolution - - 91490 (Tapper, Discs of Tron, Demolition Derby) - * 5MHz Z80 - * up to 3x16k + 1x8k program EPROMs - * 2x16k background EPROMs - * 64 entry palette RAM - * background colors 0-63, upper two bits come from tile RAM - * sprite colors 0-63, upper two bits come from either tile RAM or video gen (select via jumpers) - - 91721 (Crater Raider) - * unknown, but expected to be identical to 91442 except: - * background colors 0-15 on all scanlines - * sprite colors 0-63, upper two bits come from video gen - -**************************************************************************** - - Detailed Video board descriptions: - 91399 (Kick, Solar Fox, Satan's Hollow, Tron, Kozmik Krooz'r, Domino Man, Wacko) - * 4x8k sprite EPROMs - * data is ORed into linebuffers - * support for hflip, vflip (code bits 6,7) - * output is 4 bits: VID0-3 - - 91442 (Spy Hunter, Turbo Tag) - * 8x32k sprite EPROMs - * data is written to linebuffers if not all F's - * support for hflip, vflip (flags bits 4,5) - * output is 4 bits: VID0-3 - - 91464 (Journey, Tapper, Discs of Tron, Demolition Derby) - * 8x32k sprite EPROMs - * data is written to linebuffers if not all F's - * support for hflip, vflip (flags bits 4,5) - * support for 4 bits of extra data per pixel (flags bits 0-3) - * output is 8 bits: VID0-3, COL0-3 - -**************************************************************************** - - Detailed Sound Board descriptions: - 90908 (Kick, Solar Fox) - * 2MHz Z80 - * 2x2MHz AY8910 - * each AY8910 channel has a duty cycle controlled @ 50kHz by a down counter - * each AY8910 has a 3-to-8 demux that controls the left/right panning - * anecdotal evidence suggests that this was not stuffed - * input port 0 (J4 1-8) - * input port 1 (J4 10-13,14-18) - * input port 2 (J5 1-8) - * DIP switch (10 position, port 3) - * DIP switch (8 position, port 4) - * output port (J5 10-17) - - 90913 (Satan's Hollow, Tron, Domino Man, Wacko, Journey, Tapper, Demolition Derby) - * 2MHz Z80 - * 2x2MHz AY8910 - * each AY8910 channel has a duty cycle controlled @ 50kHz by a down counter - * removed the panning controls - * input port 0 (J4 1-8) - * input port 1 (J4 10-13,14-18) - * input port 2 (J5 1-8) - * DIP switch (10 position, port 3), top bit goes to J6 10 - * input port 4 (J6 1-7,9) - * output port (J5 10-17) - - 91483 (Kozmik Krooz'r) - * basically identical to 90913 - * input port 4 has a set of jumpers between it and the J6 outputs - - 91657 (NFL Football, Discs of Tron, Spy Hunter) - * appears to be identical in every way to 90908 - * the panning circuitry is stuffed on these boards - -**************************************************************************** - - 90009 = CPU Board (Kick, SolarFox) - 90010 = Super CPU (Kroozr, Tron, SHollow) - 90908 = Sound I/O (Kick, SolarFox) - 90913 = Super Sound I/O (SHollow, Tron) - 91399 = Video Gen (Kick, SolarFox, SHollow, Tron, Kroozr) - 91418 = Optical Encoder (Tron) - 91433 = Video Gen III (SpyHunt) - 91434 = Optical Sensor PC (Kroozr) - 91442 = CPU Board MCR III (SpyHunt) - 91458 = Analog Joystick PC (Kroozr) - 91464 = Super Video Gen MCR III (Tapper) - 91482 = Optical Sensor PC (Kroozr) - 91483 = Super Sound I/O (Kroozr) - 91490 = 5MHz CPU (Tapper) - 91649 = Absolute Position PC (SpyHunt) - 91657 = Super Sound I/O with Panning (DOTron) - 91658 = Lamp Sequencer (DOTron) - 91659 = Flashing Fluorescent Assembly (DOTron) - 91660 = Squawk & Talk (DOTron, NFLFoot) - 91671 = Chip Squeak Deluxe (SpyHunt) - 91673 = Lamp Driver (SpyHunt) - 91695 = IPU laserdisk controller (NFLFoot) - 91794 = Optical Encoder Deluxe (DemoDerb) - 91799 = Turbo Chip Squeak (DemoDerb) - -**************************************************************************** - - SSIO outputs: - Output port 4 = J5=10-17 - Output port - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - CPU #1 - ======================================================================== - 0000-6FFF R xxxxxxxx Program ROM - 7000-77FF R/W xxxxxxxx NVRAM - F000-F1FF R/W xxxxxxxx Sprite RAM - F400-F41F W xxxxxxxx Palette RAM blue/green - F800-F81F W xxxxxxxx Palette RAM red - FC00-FFFF R/W xxxxxxxx Background video RAM - ======================================================================== - 0000 R x-xxxxxx Input ports - R x------- Service switch (active low) - R --x----- Tilt - R ---xxx-- External inputs - R ------x- Right coin - R -------x Left coin - 0000 W xxxxxxxx Data latch OP0 (coin meters, 2 led's and cocktail 'flip') - 0001 R xxxxxxxx External inputs - 0002 R xxxxxxxx External inputs - 0003 R xxxxxxxx DIP switches - 0004 R xxxxxxxx External inputs - 0004 W xxxxxxxx Data latch OP4 (comm. with external hardware) - 0007 R xxxxxxxx Audio status - 001C-001F W xxxxxxxx Audio latches 1-4 - 00E0 W -------- Watchdog reset - 00E8 W xxxxxxxx Unknown (written at initialization time) - 00F0-00F3 W xxxxxxxx CTC communications - ======================================================================== - Interrupts: - NMI ??? - INT generated by CTC - ======================================================================== - - - ======================================================================== - CPU #2 (Super Sound I/O) - ======================================================================== - 0000-3FFF R xxxxxxxx Program ROM - 8000-83FF R/W xxxxxxxx Program RAM - 9000-9003 R xxxxxxxx Audio latches 1-4 - A000 W xxxxxxxx AY-8910 #1 control - A001 R xxxxxxxx AY-8910 #1 status - A002 W xxxxxxxx AY-8910 #1 data - B000 W xxxxxxxx AY-8910 #2 control - B001 R xxxxxxxx AY-8910 #2 status - B002 W xxxxxxxx AY-8910 #2 data - C000 W xxxxxxxx Audio status - E000 W xxxxxxxx Unknown - F000 R xxxxxxxx Audio board switches - ======================================================================== - Interrupts: - NMI ??? - INT generated by external circuitry 780 times/second - ======================================================================== - -***************************************************************************/ - - -#include "driver.h" -#include "machine/z80ctc.h" -#include "machine/z80pio.h" -#include "machine/z80sio.h" -#include "sndhrdw/mcr.h" -#include "sound/samples.h" -#include "mcr.h" - - -static UINT8 input_mux; -static UINT8 last_op4; - -static UINT8 nflfoot_serial_out_active; -static UINT8 nflfoot_serial_out_bits; -static UINT8 nflfoot_serial_out_numbits; - -static UINT8 nflfoot_serial_in_active; -static UINT16 nflfoot_serial_in_bits; -static UINT8 nflfoot_serial_in_numbits; - - - -/************************************* - * - * Solar Fox input ports - * - *************************************/ - -static READ8_HANDLER( solarfox_ip0_r ) -{ - /* This is a kludge; according to the wiring diagram, the player 2 */ - /* controls are hooked up as documented below. If you go into test */ - /* mode, they will respond. However, if you try it in a 2-player */ - /* game in cocktail mode, they don't work at all. So we fake-mux */ - /* the controls through player 1's ports */ - if (mcr_cocktail_flip) - return readinputportbytag("SSIO.IP0") | 0x08; - else - return ((readinputportbytag("SSIO.IP0") & ~0x14) | 0x08) | ((readinputportbytag("SSIO.IP0") & 0x08) >> 1) | ((readinputportbytag("SSIO.IP2") & 0x01) << 4); -} - - -static READ8_HANDLER( solarfox_ip1_r ) -{ - /* same deal as above */ - if (mcr_cocktail_flip) - return readinputportbytag("SSIO.IP1") | 0xf0; - else - return (readinputportbytag("SSIO.IP1") >> 4) | 0xf0; -} - - - -/************************************* - * - * Kick input ports - * - *************************************/ - -static READ8_HANDLER( kick_ip1_r ) -{ - return (readinputportbytag("DIAL2") << 4) & 0xf0; -} - - - -/************************************* - * - * Wacko input ports - * - *************************************/ - -static WRITE8_HANDLER( wacko_op4_w ) -{ - input_mux = data & 1; -} - - -static READ8_HANDLER( wacko_ip1_r ) -{ - if (!input_mux) - return readinputportbytag("SSIO.IP1"); - else - return readinputportbytag("SSIO.IP1.ALT"); -} - - -static READ8_HANDLER( wacko_ip2_r ) -{ - if (!input_mux) - return readinputportbytag("SSIO.IP2"); - else - return readinputportbytag("SSIO.IP2.ALT"); -} - - - -/************************************* - * - * Kozmik Krooz'r input ports - * - *************************************/ - -static READ8_HANDLER( kroozr_ip1_r ) -{ - int dial = readinputportbytag("DIAL"); - return ((dial & 0x80) >> 1) | ((dial & 0x70) >> 4); -} - - -static WRITE8_HANDLER( kroozr_op4_w ) -{ - /* - bit 2 = ship control - bit 4 = cargo light cntl 1 - bit 5 = cargo light cntl 2 - */ -} - - - -/************************************* - * - * Journey I/O ports - * - *************************************/ - -static WRITE8_HANDLER( journey_op4_w ) -{ - /* if we're not playing the sample yet, start it */ - if (!sample_playing(0)) - sample_start(0, 0, 1); - - /* bit 0 turns cassette on/off */ - sample_set_pause(0, ~data & 1); -} - - - -/************************************* - * - * Discs of Tron I/O ports - * - *************************************/ - -static WRITE8_HANDLER( dotron_op4_w ) -{ - /* - Flasher Control: - A 555 timer is set up in astable mode with R1=R2=56k and C=1uF giving - a frequency of 8.5714 Hz. The timer is enabled if J1-3 is high (1). - The output of the timer is connected to the input of a D-type flip - flop at 1A, which is clocked by the AC sync (since this is a - fluorescent light fixture). - - The J1-4 input is also connected the input of another D-type flip flop - on the same chip at 1A. The output of this directly controls the light - fixture. - - Thus: - J1-3 enables a strobe effect at 8.5714 Hz (77.616ms high, 38.808ms low) - J1-4 directly enables/disables the lamp. - The two outputs are wire-ored together. - */ - /* bit 7 = FL1 (J1-3) on flasher control board */ - /* bit 6 = FL0 (J1-4) on flasher control board */ - output_set_value("backlight", (data >> 6) & 1); - - /* - Lamp Sequencer: - A 556 timer is set up in astable mode with two different frequencies, - one using R1=R2=10k and C=10uF giving a frequency of 4.8 Hz, and the - second using R1=R2=5.1k and C=10uF giving a frequency of 9.4118 Hz. - - The outputs of these clocks go into a mux at U4, whose input is - selected by the input bit latched from J1-6. - - The output of the mux clocks a 16-bit binary counter at U3. The - output of the binary counter becomes the low 4 address bits of the - 82S123 PROM at U2. The upper address bit comes from the input bit - latched from J1-5. - - Each of the 5 output bits from the 82S123 is inverted and connected - to one of the lamps. The /CE pin on the 82S123 is connected to the - input bit latched from J1-4. - - Thus: - J1-4 enables (0) or disables (1) the lamp sequencing. - J1-5 selects one of two 16-entry sequences stored in the 82S123. - J1-6 selects one of two speeds (0=4.8 Hz, 1=9.4118 Hz) - - */ - /* bit 5 = SEL1 (J1-1) on the Lamp Sequencer board */ - if (((last_op4 ^ data) & 0x20) && (data & 0x20)) - { - /* bit 2 -> J1-4 = enable */ - /* bit 1 -> J1-5 = sequence select */ - /* bit 0 -> J1-6 = speed (0=slow, 1=fast) */ - logerror("Lamp: en=%d seq=%d speed=%d\n", (data >> 2) & 1, (data >> 1) & 1, data & 1); - } - last_op4 = data; - - /* bit 4 = SEL0 (J1-8) on squawk n talk board */ - /* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */ - squawkntalk_data_w(offset, data); -} - - - -/************************************* - * - * NFL Football Tron I/O ports - * - *************************************/ - -WRITE8_HANDLER( mcr_ipu_sio_transmit ) -{ - logerror("ipu_sio_transmit: %02X\n", data); - - /* create a 10-bit value with a '1','0' sequence for the start bit */ - nflfoot_serial_in_active = TRUE; - nflfoot_serial_in_bits = (data << 2) | 1; - nflfoot_serial_in_numbits = 10; -} - - -static READ8_HANDLER( nflfoot_ip2_r ) -{ - /* bit 7 = J3-2 on IPU board = TXDA on SIO */ - UINT8 val = 0x80; - - /* we only do this if we have active data */ - if (nflfoot_serial_in_active) - { - val = (nflfoot_serial_in_bits & 1) ? 0x00 : 0x80; - nflfoot_serial_in_bits >>= 1; - if (--nflfoot_serial_in_numbits == 0) - nflfoot_serial_in_active = FALSE; - } - - if (activecpu_get_pc() != 0x107) - logerror("%04X:ip2_r = %02X\n", activecpu_get_pc(), val); - return val; -} - - -static WRITE8_HANDLER( nflfoot_op4_w ) -{ - /* bit 7 = J3-7 on IPU board = /RXDA on SIO */ - logerror("%04X:op4_w(%d%d%d)\n", activecpu_get_pc(), (data >> 7) & 1, (data >> 6) & 1, (data >> 5) & 1); - - /* look for a non-zero start bit to go active */ - if (!nflfoot_serial_out_active && (data & 0x80)) - { - nflfoot_serial_out_active = TRUE; - nflfoot_serial_out_bits = 0; - nflfoot_serial_out_numbits = 0; - logerror(" -- serial active\n"); - } - - /* accumulate bits as they are written */ - else if (nflfoot_serial_out_active) - { - /* if we've accumulated less than 8, just add to the pile */ - if (nflfoot_serial_out_numbits < 8) - { - nflfoot_serial_out_bits = (nflfoot_serial_out_bits >> 1) | (~data & 0x80); - nflfoot_serial_out_numbits++; - logerror(" -- accumulated %d bits\n", nflfoot_serial_out_numbits); - } - - /* once we have 8, the final bit is a stop bit, feed it to the SIO */ - else - { - logerror(" -- stop bit = %d; final value = %02X\n", (data >> 7) & 1, nflfoot_serial_out_bits); - nflfoot_serial_out_active = FALSE; - z80sio_receive_data(0, 0, nflfoot_serial_out_bits); - } - } - - /* bit 6 = J3-3 on IPU board = CTSA on SIO */ - z80sio_set_cts(0, 0, (data >> 6) & 1); - - /* bit 4 = SEL0 (J1-8) on squawk n talk board */ - /* bits 3-0 = MD3-0 connected to squawk n talk (J1-4,3,2,1) */ - squawkntalk_data_w(offset, data); -} - - - -/************************************* - * - * Demolition Derby I/O ports - * - *************************************/ - -static READ8_HANDLER( demoderb_ip1_r ) -{ - return readinputportbytag(input_mux ? "SSIO.IP1.ALT" : "SSIO.IP1"); -} - - -static READ8_HANDLER( demoderb_ip2_r ) -{ - return readinputportbytag(input_mux ? "SSIO.IP2.ALT" : "SSIO.IP2"); -} - - -static WRITE8_HANDLER( demoderb_op4_w ) -{ - if (data & 0x40) input_mux = 1; - if (data & 0x80) input_mux = 0; - turbocs_data_w(offset, data); -} - - - -/************************************* - * - * CPU board 90009 memory handlers - * - *************************************/ - -/* address map verified from schematics */ -static ADDRESS_MAP_START( cpu_90009_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x6fff) AM_ROM - AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split1_w) AM_BASE(&paletteram) - AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xfc00, 0xffff) AM_READWRITE(MRA8_RAM, mcr_90009_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) -ADDRESS_MAP_END - -/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */ -static ADDRESS_MAP_START( cpu_90009_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) ) - SSIO_INPUT_PORTS - AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf0, 0xf3) AM_READWRITE(z80ctc_0_r, z80ctc_0_w) -ADDRESS_MAP_END - - - -/************************************* - * - * CPU board 90010 memory handlers - * - *************************************/ - -/* address map verified from schematics */ -static ADDRESS_MAP_START( cpu_90010_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe800, 0xefff) AM_MIRROR(0x1000) AM_READWRITE(MRA8_RAM, mcr_90010_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) -ADDRESS_MAP_END - -/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */ -static ADDRESS_MAP_START( cpu_90010_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) ) - SSIO_INPUT_PORTS - AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf0, 0xf3) AM_READWRITE(z80ctc_0_r, z80ctc_0_w) -ADDRESS_MAP_END - - - -/************************************* - * - * CPU board 91490 memory handlers - * - *************************************/ - -/* address map verified from schematics */ -static ADDRESS_MAP_START( cpu_91490_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xe800, 0xe9ff) AM_MIRROR(0x0200) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(MRA8_RAM, mcr_91490_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xf800, 0xf87f) AM_MIRROR(0x0780) AM_WRITE(mcr_91490_paletteram_w) AM_BASE(&paletteram) -ADDRESS_MAP_END - -/* upper I/O map determined by PAL; only SSIO ports are verified from schematics */ -static ADDRESS_MAP_START( cpu_91490_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) ) - SSIO_INPUT_PORTS - AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xe8, 0xe8) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf0, 0xf3) AM_READWRITE(z80ctc_0_r, z80ctc_0_w) -ADDRESS_MAP_END - - - -/************************************* - * - * IPU board 91695 memory handlers - * - *************************************/ - -/* address map verified from schematics */ -static ADDRESS_MAP_START( ipu_91695_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0xe000, 0xffff) AM_RAM -ADDRESS_MAP_END - -/* I/O verified from schematics */ -static ADDRESS_MAP_START( ipu_91695_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) | AMEF_UNMAP(1) ) - AM_RANGE(0x00, 0x03) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_pio_0_r, mcr_ipu_pio_0_w) - AM_RANGE(0x04, 0x07) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_sio_r, mcr_ipu_sio_w) - AM_RANGE(0x08, 0x0b) AM_MIRROR(0xe0) AM_READWRITE(z80ctc_1_r, z80ctc_1_w) - AM_RANGE(0x0c, 0x0f) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_pio_1_r, mcr_ipu_pio_1_w) - AM_RANGE(0x10, 0x13) AM_MIRROR(0xe0) AM_WRITE(mcr_ipu_laserdisk_w) - AM_RANGE(0x1c, 0x1f) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_watchdog_r, mcr_ipu_watchdog_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( solarfox ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x03, 0x03, "Bonus" ) - PORT_DIPSETTING( 0x02, DEF_STR( None ) ) - PORT_DIPSETTING( 0x03, "After 10 racks" ) - PORT_DIPSETTING( 0x01, "After 20 racks" ) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds )) - PORT_DIPSETTING( 0x10, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x40, 0x40, "Ignore Hardware Failure" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x80, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( kick ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(3) PORT_KEYDELTA(50) PORT_REVERSE - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x00, "Music" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DIAL2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( kicka ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(3) PORT_KEYDELTA(50) PORT_REVERSE - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x00, "Music" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x00, DEF_STR( Upright )) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail )) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DIAL2") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(3) PORT_KEYDELTA(50) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( shollow ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x01, "Coin Meters" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( tron ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x00, "Coin Meters" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( kroozr ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* low 3 bits of spinner */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sensor J1-10 */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sensor J1-9 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* sensor J1-8 */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* upper 1 bit of spinner */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0xff, 0x64, IPT_AD_STICK_X ) PORT_MINMAX(48,152) PORT_SENSITIVITY(100) PORT_KEYDELTA(52) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, 0x64, IPT_AD_STICK_Y ) PORT_MINMAX(48,152) PORT_SENSITIVITY(100) PORT_KEYDELTA(52) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DIAL") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( domino ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x00, "Music" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x02, "Skin Color" ) - PORT_DIPSETTING( 0x02, "Light" ) - PORT_DIPSETTING( 0x00, "Dark" ) - PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, "Coin Meters" ) - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( journey ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x01, "Coin Meters" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( wacko ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, "Coin Meters" ) - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_4WAY PORT_COCKTAIL - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP1.ALT") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_COCKTAIL - - PORT_START_TAG("SSIO.IP2.ALT") - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - - -/* not verified, no manual found */ -INPUT_PORTS_START( twotiger ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Dogfight Start") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x72, IPT_AD_STICK_X ) PORT_MINMAX(0,228) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0xff, 0x72, IPT_AD_STICK_X ) PORT_MINMAX(0,228) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x00, "Shot Speed" ) - PORT_DIPSETTING( 0x01, "Fast" ) - PORT_DIPSETTING( 0x00, "Slow" ) - PORT_DIPNAME( 0x02, 0x00, "Dogfight" ) - PORT_DIPSETTING( 0x00, "1 Credit" ) - PORT_DIPSETTING( 0x02, "2 Credits" ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* not verified, no manual found */ -INPUT_PORTS_START( twotigrc ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Dogfight Start") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( tapper ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) 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( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin Meters" ) - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* not verified, no manual found */ -INPUT_PORTS_START( timber ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin Meters" ) - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( dotron ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_REVERSE - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Aim Down") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Aim Up") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - /* we default to Environmental otherwise speech is disabled */ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, "Environmental" ) - PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x01, "Coin Meters" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("FAKE") /* fake port to make aiming up & down easier */ - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -/* verified from wiring diagram, plus DIP switches from manual */ -INPUT_PORTS_START( nflfoot ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BILL1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) /* continue game */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* service */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) /* new game */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* left engage */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* left select #1 play */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* left select #2 play */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) /* left select #3 play */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* left select #4 play */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* left select #5 play */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) /* select one player */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* right engage */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* right select #1 play */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* right select #2 play */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* right select #3 play */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* right select #4 play */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) /* right select #5 play */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(2) /* select two player */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) /* connects to IPU board */ - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x01, "Coin Meters" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/* "wiring diagram was not available at time of publication" according to the manual */ -/* DIPs verified from the manual */ -INPUT_PORTS_START( demoderb ) - PORT_START_TAG("SSIO.IP0") /* J4 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SSIO.IP1") /* J4 10-13,15-18 */ /* The high 6 bits contain the steering wheel value */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("SSIO.IP2") /* J5 1-8 */ /* The high 6 bits contain the steering wheel value */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("SSIO.IP3") /* DIPSW @ B3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, "2P Upright" ) - PORT_DIPSETTING( 0x00, "4P Cocktail" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Harder ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Reward Screen" ) - PORT_DIPSETTING( 0x08, "Expanded" ) - PORT_DIPSETTING( 0x00, "Limited" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP4") /* J6 1-8 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - - PORT_START_TAG("SSIO.DIP") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SSIO.IP1.ALT") /* IN1 (muxed) -- the high 6 bits contain the steering wheel value */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(3) - - PORT_START_TAG("SSIO.IP2.ALT") /* IN2 (muxed) -- the high 6 bits contain the steering wheel value */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xfc, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(4) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &mcr_bg_layout, 0, 4 }, /* colors 0-15 */ - { REGION_GFX2, 0, &mcr_sprite_layout, 0, 4 }, /* colors 16-31 */ - { -1 } -}; - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static const char *journey_sample_names[] = -{ - "*journey", - "sepways.wav", - 0 -}; - -struct Samplesinterface journey_samples_interface = -{ - 1, - journey_sample_names -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -/* 90009 CPU board plus 90908/90913/91483 sound board */ -static MACHINE_DRIVER_START( mcr_90009 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, MAIN_OSC_MCR_I/8) - MDRV_CPU_CONFIG(mcr_daisy_chain) - MDRV_CPU_PROGRAM_MAP(cpu_90009_map,0) - MDRV_CPU_IO_MAP(cpu_90009_portmap,0) - MDRV_CPU_VBLANK_INT(mcr_interrupt,2) - - MDRV_SCREEN_REFRESH_RATE(30) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(DEFAULT_REAL_30HZ_VBLANK_DURATION)) - MDRV_WATCHDOG_VBLANK_INIT(16) - MDRV_MACHINE_START(mcr) - MDRV_MACHINE_RESET(mcr) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*16, 30*16) - MDRV_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - - MDRV_VIDEO_START(mcr) - MDRV_VIDEO_UPDATE(mcr) - - /* sound hardware */ - MDRV_IMPORT_FROM(mcr_ssio) -MACHINE_DRIVER_END - - -/* 90010 CPU board plus 90908/90913/91483 sound board */ -static MACHINE_DRIVER_START( mcr_90010 ) - MDRV_IMPORT_FROM(mcr_90009) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(cpu_90010_map,0) - MDRV_CPU_IO_MAP(cpu_90010_portmap,0) - - /* video hardware */ - MDRV_PALETTE_LENGTH(64) -MACHINE_DRIVER_END - - -/* 91475 CPU board plus 90908/90913/91483 sound board plus cassette interface */ -static MACHINE_DRIVER_START( mcr_91475 ) - MDRV_IMPORT_FROM(mcr_90010) - - /* video hardware */ - MDRV_PALETTE_LENGTH(128) - - /* sound hardware */ - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(journey_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.25) -MACHINE_DRIVER_END - - -/* 91490 CPU board plus 90908/90913/91483 sound board */ -static MACHINE_DRIVER_START( mcr_91490 ) - MDRV_IMPORT_FROM(mcr_90010) - - /* basic machine hardware */ - MDRV_CPU_REPLACE("main", Z80, 5000000) - MDRV_CPU_PROGRAM_MAP(cpu_91490_map,0) - MDRV_CPU_IO_MAP(cpu_91490_portmap,0) -MACHINE_DRIVER_END - - -/* 91490 CPU board plus 90908/90913/91483 sound board plus Squawk n' Talk sound board */ -static MACHINE_DRIVER_START( mcr_91490_snt ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mcr_91490) - MDRV_IMPORT_FROM(squawk_n_talk) -MACHINE_DRIVER_END - - -/* 91490 CPU board plus 90908/90913/91483 sound board plus Squawk n' Talk sound board plus IPU */ -static MACHINE_DRIVER_START( mcr_91490_ipu ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mcr_91490_snt) - MDRV_MACHINE_START(nflfoot) - - MDRV_CPU_ADD_TAG("ipu", Z80, 7372800/2) - MDRV_CPU_CONFIG(mcr_ipu_daisy_chain) - MDRV_CPU_PROGRAM_MAP(ipu_91695_map,0) - MDRV_CPU_IO_MAP(ipu_91695_portmap,0) - MDRV_CPU_VBLANK_INT(mcr_ipu_interrupt,2) -MACHINE_DRIVER_END - - -/* 91490 CPU board plus 90908/90913/91483 sound board plus Turbo Chip Squeak sound board */ -static MACHINE_DRIVER_START( mcr_91490_tcs ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mcr_91490) - MDRV_IMPORT_FROM(turbo_chip_squeak) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( solarfox ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sfcpu.3b", 0x0000, 0x1000, CRC(8c40f6eb) SHA1(a323897cfa8771edd28d58d806913e62110a2689) ) - ROM_LOAD( "sfcpu.4b", 0x1000, 0x1000, CRC(4d47bd7e) SHA1(0cfa09f2c1fe6d662c3a96abc43edf431ccf6d02) ) - ROM_LOAD( "sfcpu.5b", 0x2000, 0x1000, CRC(b52c3bd5) SHA1(bc289641830a3c6640303b1a799c378bf456bed1) ) - ROM_LOAD( "sfcpu.4d", 0x3000, 0x1000, CRC(bd5d25ba) SHA1(b7be1250dfb6af9cc0f9c6b446fb183528eab7de) ) - ROM_LOAD( "sfcpu.5d", 0x4000, 0x1000, CRC(dd57d817) SHA1(059a020313cf929130d1ae9a80f3b91c54fe7699) ) - ROM_LOAD( "sfcpu.6d", 0x5000, 0x1000, CRC(bd993cd9) SHA1(c074a6a40d0b9c0f4bf3fc5982263c89549fb338) ) - ROM_LOAD( "sfcpu.7d", 0x6000, 0x1000, CRC(8ad8731d) SHA1(ffd19c3fbad3c5a240ab27963812cc300f3d7b89) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sfsnd.7a", 0x0000, 0x1000, CRC(cdecf83a) SHA1(5acd2709e214408d756b39916bb98cd4ecda7988) ) - ROM_LOAD( "sfsnd.8a", 0x1000, 0x1000, CRC(cb7788cb) SHA1(9e86f9131a6f0fc96dd436e21baf45e215ee65f4) ) - ROM_LOAD( "sfsnd.9a", 0x2000, 0x1000, CRC(304896ce) SHA1(00ff640eab50022da980cdc5ce8cedebaaebc9cf) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sfcpu.4g", 0x0000, 0x1000, CRC(ba019a60) SHA1(81923f8c51eedfef6f5e9d6ace1d785d7afafc14) ) - ROM_LOAD( "sfcpu.5g", 0x1000, 0x1000, CRC(7ff0364e) SHA1(b04034fc076008302931a485e00762dc34660498) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sfvid.1a", 0x0000, 0x2000, CRC(9d9b5d7e) SHA1(4896c532a3d5763284a4403e8558f634f7b968d8) ) - ROM_LOAD( "sfvid.1b", 0x2000, 0x2000, CRC(78801e83) SHA1(23b5811a03fe4ad576c5313d2205203577300159) ) - ROM_LOAD( "sfvid.1d", 0x4000, 0x2000, CRC(4d8445cf) SHA1(fbe427da0e758b79eb2230713f2cd12e6f8bdeb7) ) - ROM_LOAD( "sfvid.1e", 0x6000, 0x2000, CRC(3da25495) SHA1(e7b703bc8caca7497af92efc869c6f1b7dbc8bf1) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( kick ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1200a-v2.b3", 0x0000, 0x1000, CRC(65924917) SHA1(4fbc7161f4b03bc395c775fa6239a23bf7357e89) ) - ROM_LOAD( "1300b-v2.b4", 0x1000, 0x1000, CRC(27929f52) SHA1(e03a550792df68eeb2a1f5177309fe01b5fcaa3d) ) - ROM_LOAD( "1400c-v2.b5", 0x2000, 0x1000, CRC(69107ce6) SHA1(4aedbb9f1072e315f7e5e3c8559f2995146f4b9d) ) - ROM_LOAD( "1500d-v2.d4", 0x3000, 0x1000, CRC(04a23aa1) SHA1(9a70ca3dc6db984dbb490076cf0ec11cc213f199) ) - ROM_LOAD( "1600e-v2.d5", 0x4000, 0x1000, CRC(1d2834c0) SHA1(176fad90ab14c922a575c3d12a2c8a339d1518d4) ) - ROM_LOAD( "1700f-v2.d6", 0x5000, 0x1000, CRC(ddf84ce1) SHA1(6f80b9a5cbd75b6e4af569ca4bcfcde7daaad64f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "4200-a.a7", 0x0000, 0x1000, CRC(9e35c02e) SHA1(92afd0126dcfb2d4401927b2cf261090e186b6fa) ) - ROM_LOAD( "4300-b.a8", 0x1000, 0x1000, CRC(ca2b7c28) SHA1(fdcca3b755822c045c3c321cccc3f58112e2ad11) ) - ROM_LOAD( "4400-c.a9", 0x2000, 0x1000, CRC(d1901551) SHA1(fd7d6059f8ac59f95ae6f8ef12fbfce7ed16ec12) ) - ROM_LOAD( "4500-d.a10", 0x3000, 0x1000, CRC(d36ddcdc) SHA1(2d3ec83b9fa5a9d309c393a0c3ee45f0ba8192c9) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1800g-v2.g4", 0x0000, 0x1000, CRC(b4d120f3) SHA1(e61ae236f14eb1f519e196046fe8240c10932c2e) ) - ROM_LOAD( "1900h-v2.g5", 0x1000, 0x1000, CRC(c3ba4893) SHA1(76998db55519d7f1cf0f6b51d4f8ad7161b3a92e) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2600a-v2.1e", 0x0000, 0x2000, CRC(2c5d6b55) SHA1(c326b8c7bcb903ea3a1a721443a37e1e8eabe975) ) - ROM_LOAD( "2700b-v2.1d", 0x2000, 0x2000, CRC(565ea97d) SHA1(4a30a371ad407bf774cf08bf528f824675383698) ) - ROM_LOAD( "2800c-v2.1b", 0x4000, 0x2000, CRC(f3be56a1) SHA1(eb3eb0379a918a2959565572d88f9b0f021d1c2a) ) - ROM_LOAD( "2900d-v2.1a", 0x6000, 0x2000, CRC(77da795e) SHA1(ebebc8551e7a7534d89bb8458eb2576713cfbeaf) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - -ROM_START( kicka ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1200-a.b3", 0x0000, 0x1000, CRC(22fa42ed) SHA1(3922ce1f13e21cae9ee8d1af58f2bbe83d5eb979) ) - ROM_LOAD( "1300-b.b4", 0x1000, 0x1000, CRC(afaca819) SHA1(383f40d49e4c256e9eb83e778c140b0b97860f69) ) - ROM_LOAD( "1400-c.b5", 0x2000, 0x1000, CRC(6054ee56) SHA1(77da5a8d6209c746b233808a452dbf1917da7f3e) ) - ROM_LOAD( "1500-d.d4", 0x3000, 0x1000, CRC(263af0f3) SHA1(f8c511852f48b6fb5617d5b3666df53b08584db5) ) - ROM_LOAD( "1600-e.d5", 0x4000, 0x1000, CRC(eaaa78a7) SHA1(3c057d486f3938561fb9947e0463b1255ae04ef9) ) - ROM_LOAD( "1700-f.d6", 0x5000, 0x1000, CRC(c06c880f) SHA1(d5ac5682de316b9cb09d433e2c02746efadd2a81) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "4200-a.a7", 0x0000, 0x1000, CRC(9e35c02e) SHA1(92afd0126dcfb2d4401927b2cf261090e186b6fa) ) - ROM_LOAD( "4300-b.a8", 0x1000, 0x1000, CRC(ca2b7c28) SHA1(fdcca3b755822c045c3c321cccc3f58112e2ad11) ) - ROM_LOAD( "4400-c.a9", 0x2000, 0x1000, CRC(d1901551) SHA1(fd7d6059f8ac59f95ae6f8ef12fbfce7ed16ec12) ) - ROM_LOAD( "4500-d.a10", 0x3000, 0x1000, CRC(d36ddcdc) SHA1(2d3ec83b9fa5a9d309c393a0c3ee45f0ba8192c9) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1000-g.g4", 0x0000, 0x1000, CRC(acdae4f6) SHA1(8af065a7fe07f5b444314adc0ac69073e7bd5354) ) - ROM_LOAD( "1100-h.g5", 0x1000, 0x1000, CRC(dbb18c96) SHA1(a437d5d83b0638ca498e066bab1222bb5f39d5fb) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2600-a.1e", 0x0000, 0x2000, CRC(74b409d7) SHA1(13769060c02ab514d70e29a2452512f342189fa9) ) - ROM_LOAD( "2700-b.1d", 0x2000, 0x2000, CRC(78eda36c) SHA1(5cf9da6f364f586f324e7ac529db0dc273498320) ) - ROM_LOAD( "2800-c.1b", 0x4000, 0x2000, CRC(c93e0170) SHA1(a7efdb6fd13dccd8d8d10de61b87585828bde6ac) ) - ROM_LOAD( "2900-d.1a", 0x6000, 0x2000, CRC(91e59383) SHA1(bf87642cc747f1abbd80c6f529adfa60a1d9bc9e) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( shollow ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sh-pro.00", 0x0000, 0x2000, CRC(95e2b800) SHA1(8781295e21e5202288293fb9eb558cb1835b11ea) ) - ROM_LOAD( "sh-pro.01", 0x2000, 0x2000, CRC(b99f6ff8) SHA1(575cdba5bf9965c7765ce913a3376c7ba36b8291) ) - ROM_LOAD( "sh-pro.02", 0x4000, 0x2000, CRC(1202c7b2) SHA1(ebae4711f124a34f19305da16657ece805e1da26) ) - ROM_LOAD( "sh-pro.03", 0x6000, 0x2000, CRC(0a64afb9) SHA1(3ac6660d2b0166c58ec4fecfe37ce36e545064df) ) - ROM_LOAD( "sh-pro.04", 0x8000, 0x2000, CRC(22fa9175) SHA1(fd8ea76b3a7ffaf48fc11dd3b7c58e548e3e57c5) ) - ROM_LOAD( "sh-pro.05", 0xa000, 0x2000, CRC(1716e2bb) SHA1(771e4c20d63e4e1d99723e6355db67064a278ae5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sh-snd.01", 0x0000, 0x1000, CRC(55a297cc) SHA1(b34f37fca61cdba26b5671feee991d133b8697a4) ) - ROM_LOAD( "sh-snd.02", 0x1000, 0x1000, CRC(46fc31f6) SHA1(9b1a56962b2d210b1013bc35de780c6d5b3eb4bc) ) - ROM_LOAD( "sh-snd.03", 0x2000, 0x1000, CRC(b1f4a6a8) SHA1(ba724f9cc0cc35dd31d4ad8b36a51da9d6cbfbcf) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sh-bg.00", 0x0000, 0x2000, CRC(3e2b333c) SHA1(b4347d0b3d6149e94da4a38684c0fab931e76cc5) ) - ROM_LOAD( "sh-bg.01", 0x2000, 0x2000, CRC(d1d70cc4) SHA1(550e2e8c0bcbf7913b218fe48cd3324622c8d0f4) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sh-fg.00", 0x0000, 0x2000, CRC(33f4554e) SHA1(88dd803158d3c65429b79d2aaf8334130315aa93) ) - ROM_LOAD( "sh-fg.01", 0x2000, 0x2000, CRC(ba1a38b4) SHA1(cee5f0a66e40c779f1bfbb4bfafe5301385e7dae) ) - ROM_LOAD( "sh-fg.02", 0x4000, 0x2000, CRC(6b57f6da) SHA1(71165df59dd5ca037116dc0f46fd4f6aac6dbfd1) ) - ROM_LOAD( "sh-fg.03", 0x6000, 0x2000, CRC(37ea9d07) SHA1(82e006b01ee12390308be530d4b68fc2404b6b91) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( shollow2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sh-pro.00", 0x0000, 0x2000, CRC(95e2b800) SHA1(8781295e21e5202288293fb9eb558cb1835b11ea) ) - ROM_LOAD( "sh-pro.01", 0x2000, 0x2000, CRC(b99f6ff8) SHA1(575cdba5bf9965c7765ce913a3376c7ba36b8291) ) - ROM_LOAD( "sh-pro.02", 0x4000, 0x2000, CRC(1202c7b2) SHA1(ebae4711f124a34f19305da16657ece805e1da26) ) - ROM_LOAD( "sh-pro.03", 0x6000, 0x2000, CRC(0a64afb9) SHA1(3ac6660d2b0166c58ec4fecfe37ce36e545064df) ) - ROM_LOAD( "sh-pro.04", 0x8000, 0x2000, CRC(22fa9175) SHA1(fd8ea76b3a7ffaf48fc11dd3b7c58e548e3e57c5) ) - ROM_LOAD( "sh-pro.05", 0xa000, 0x2000, CRC(1716e2bb) SHA1(771e4c20d63e4e1d99723e6355db67064a278ae5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "snd-0.a7", 0x0000, 0x1000, CRC(9d815bb3) SHA1(51af797e08dbe3921e11ce70c3d0da50979336a4) ) - ROM_LOAD( "snd-1.a8", 0x1000, 0x1000, CRC(9f253412) SHA1(a526e864073a2f9e67e2cbe53ab17fe726336241) ) - ROM_LOAD( "snd-2.a9", 0x2000, 0x1000, CRC(7783d6c6) SHA1(1fb2117532e7da28afdb9837bcb6848165cf8173) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sh-bg.00", 0x0000, 0x2000, CRC(3e2b333c) SHA1(b4347d0b3d6149e94da4a38684c0fab931e76cc5) ) - ROM_LOAD( "sh-bg.01", 0x2000, 0x2000, CRC(d1d70cc4) SHA1(550e2e8c0bcbf7913b218fe48cd3324622c8d0f4) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sh-fg.00", 0x0000, 0x2000, CRC(33f4554e) SHA1(88dd803158d3c65429b79d2aaf8334130315aa93) ) - ROM_LOAD( "sh-fg.01", 0x2000, 0x2000, CRC(ba1a38b4) SHA1(cee5f0a66e40c779f1bfbb4bfafe5301385e7dae) ) - ROM_LOAD( "sh-fg.02", 0x4000, 0x2000, CRC(6b57f6da) SHA1(71165df59dd5ca037116dc0f46fd4f6aac6dbfd1) ) - ROM_LOAD( "sh-fg.03", 0x6000, 0x2000, CRC(37ea9d07) SHA1(82e006b01ee12390308be530d4b68fc2404b6b91) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - - -ROM_START( tron ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "scpu_pga.bin", 0x0000, 0x2000, CRC(5151770b) SHA1(26f4d830de7be228528e462dd628f439629a2641) ) - ROM_LOAD( "scpu_pgb.bin", 0x2000, 0x2000, CRC(8ddf8717) SHA1(e0c294afa8ba0b0ba89e3e0fb3ff6d8fc4398e32) ) - ROM_LOAD( "scpu_pgc.bin", 0x4000, 0x2000, CRC(4241e3a0) SHA1(24c1bd2f31e194542571c391c5dccf21354115c2) ) - ROM_LOAD( "scpu_pgd.bin", 0x6000, 0x2000, CRC(035d2fe7) SHA1(1b827ca30a439d2f4cc94fcc0e90ee0cf87e018c) ) - ROM_LOAD( "scpu_pge.bin", 0x8000, 0x2000, CRC(24c185d8) SHA1(45ac7c53f6f4eba5c7bf3fc6559cddd3821eddad) ) - ROM_LOAD( "scpu_pgf.bin", 0xa000, 0x2000, CRC(38c4bbaf) SHA1(a7cd496ce75199b8279ea963520cf70d5f562bb2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ssi_0a.bin", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) ) - ROM_LOAD( "ssi_0b.bin", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) ) - ROM_LOAD( "ssi_0c.bin", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "scpu_bgg.bin", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) ) - ROM_LOAD( "scpu_bgh.bin", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vg_3.bin", 0x0000, 0x2000, CRC(bc036d1d) SHA1(c5d54d0b80ac768ccf6fdd32cad1ef6359fa324c) ) - ROM_LOAD( "vg_2.bin", 0x2000, 0x2000, CRC(58ee14d3) SHA1(5fb4268c9c73bdfc3b1e866618979aea3f219bbc) ) - ROM_LOAD( "vg_1.bin", 0x4000, 0x2000, CRC(3329f9d4) SHA1(11f4d744374e475d2c5b195a9f70888414529dd3) ) - ROM_LOAD( "vg_0.bin", 0x6000, 0x2000, CRC(9743f873) SHA1(71ed80ecd8caaf9fce1d7010f95c4678c9bd7102) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.d12", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( tron2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pro0.d2", 0x0000, 0x2000, CRC(0de0471a) SHA1(378847604a6a9c079d887348010ab9539d5f6195) ) - ROM_LOAD( "scpu_pgb.bin", 0x2000, 0x2000, CRC(8ddf8717) SHA1(e0c294afa8ba0b0ba89e3e0fb3ff6d8fc4398e32) ) - ROM_LOAD( "scpu_pgc.bin", 0x4000, 0x2000, CRC(4241e3a0) SHA1(24c1bd2f31e194542571c391c5dccf21354115c2) ) - ROM_LOAD( "scpu_pgd.bin", 0x6000, 0x2000, CRC(035d2fe7) SHA1(1b827ca30a439d2f4cc94fcc0e90ee0cf87e018c) ) - ROM_LOAD( "scpu_pge.bin", 0x8000, 0x2000, CRC(24c185d8) SHA1(45ac7c53f6f4eba5c7bf3fc6559cddd3821eddad) ) - ROM_LOAD( "scpu_pgf.bin", 0xA000, 0x2000, CRC(38c4bbaf) SHA1(a7cd496ce75199b8279ea963520cf70d5f562bb2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ssi_0a.bin", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) ) - ROM_LOAD( "ssi_0b.bin", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) ) - ROM_LOAD( "ssi_0c.bin", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "scpu_bgg.bin", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) ) - ROM_LOAD( "scpu_bgh.bin", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vg_3.bin", 0x0000, 0x2000, CRC(bc036d1d) SHA1(c5d54d0b80ac768ccf6fdd32cad1ef6359fa324c) ) - ROM_LOAD( "vg_2.bin", 0x2000, 0x2000, CRC(58ee14d3) SHA1(5fb4268c9c73bdfc3b1e866618979aea3f219bbc) ) - ROM_LOAD( "vg_1.bin", 0x4000, 0x2000, CRC(3329f9d4) SHA1(11f4d744374e475d2c5b195a9f70888414529dd3) ) - ROM_LOAD( "vg_0.bin", 0x6000, 0x2000, CRC(9743f873) SHA1(71ed80ecd8caaf9fce1d7010f95c4678c9bd7102) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.d12", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( tron3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "6-17-pga.rom", 0x0000, 0x2000, CRC(fc33afd7) SHA1(99a2ed972c3db477f35a7162079563367864f207) ) - ROM_LOAD( "6-17-pgb.rom", 0x2000, 0x2000, CRC(7d9e22ac) SHA1(16a6e9651d5f764e8762fd8d6e53d13fda7473de) ) - ROM_LOAD( "6-14-pgc.rom", 0x4000, 0x2000, CRC(902011c6) SHA1(17ac768a0fd1278ae83414f0d67d6ac8337f4773) ) - ROM_LOAD( "6-17-pgd.rom", 0x6000, 0x2000, CRC(86477e89) SHA1(196f0d3930d10bfe4ddee82ce8b28bb99324069e) ) - ROM_LOAD( "6-17-pge.rom", 0x8000, 0x2000, CRC(ea198fa8) SHA1(d8c97ea87d504e77edc38c87c2953c8c4f1a405b) ) - ROM_LOAD( "6-17-pgf.rom", 0xa000, 0x2000, CRC(4325fb08) SHA1(70727aa37354425315d8a8b3ca07bbe91f7e8f08) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ssi_0a.bin", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) ) - ROM_LOAD( "ssi_0b.bin", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) ) - ROM_LOAD( "ssi_0c.bin", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "scpu_bgg.bin", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) ) - ROM_LOAD( "scpu_bgh.bin", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vg_3.bin", 0x0000, 0x2000, CRC(bc036d1d) SHA1(c5d54d0b80ac768ccf6fdd32cad1ef6359fa324c) ) - ROM_LOAD( "vg_2.bin", 0x2000, 0x2000, CRC(58ee14d3) SHA1(5fb4268c9c73bdfc3b1e866618979aea3f219bbc) ) - ROM_LOAD( "vg_1.bin", 0x4000, 0x2000, CRC(3329f9d4) SHA1(11f4d744374e475d2c5b195a9f70888414529dd3) ) - ROM_LOAD( "vg_0.bin", 0x6000, 0x2000, CRC(9743f873) SHA1(71ed80ecd8caaf9fce1d7010f95c4678c9bd7102) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.d12", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( tron4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pga-615.d2", 0x0000, 0x2000, CRC(09d7a95a) SHA1(630f4c43204df0510926c5fc07e0c1b3783cf5e4) ) - ROM_LOAD( "pgb-615.d3", 0x2000, 0x2000, CRC(b454337d) SHA1(c2306ad5401a3f60e231be59198610a36b527f1f) ) - ROM_LOAD( "pgc-615.d4", 0x4000, 0x2000, CRC(ac1836ff) SHA1(a8d20facf91b4c93082f8e71a663e5da8b036ecb) ) - ROM_LOAD( "pgd-615.d5", 0x6000, 0x2000, CRC(1a7bec6d) SHA1(4d47020494e0963db22473a459e97c1c06c4b5ee) ) - ROM_LOAD( "pge-615.d6", 0x8000, 0x2000, CRC(ea198fa8) SHA1(d8c97ea87d504e77edc38c87c2953c8c4f1a405b) ) - ROM_LOAD( "pgf-615.d7", 0xa000, 0x2000, CRC(790ee743) SHA1(14dc84b2bbaab22772e0579f11fe0bf136a0ddab) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "snd0-510.a7", 0x0000, 0x1000, CRC(2cbb332b) SHA1(48d1cbb336733588af728a3d0e02c8613d2b5fb2) ) - ROM_LOAD( "ssiob.a8", 0x1000, 0x1000, CRC(1355b7e6) SHA1(61ed045212da67cd449910ae601058cf209b37e5) ) - ROM_LOAD( "ssioc.a9", 0x2000, 0x1000, CRC(6dd4b7c9) SHA1(1ce78c242d1a7d9a4524a663a42fc8bc2870053a) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "scpu_bgg.bin", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) ) - ROM_LOAD( "scpu_bgh.bin", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vg_3.bin", 0x0000, 0x2000, CRC(bc036d1d) SHA1(c5d54d0b80ac768ccf6fdd32cad1ef6359fa324c) ) - ROM_LOAD( "vg_2.bin", 0x2000, 0x2000, CRC(58ee14d3) SHA1(5fb4268c9c73bdfc3b1e866618979aea3f219bbc) ) - ROM_LOAD( "vg_1.bin", 0x4000, 0x2000, CRC(3329f9d4) SHA1(11f4d744374e475d2c5b195a9f70888414529dd3) ) - ROM_LOAD( "vg_0.bin", 0x6000, 0x2000, CRC(9743f873) SHA1(71ed80ecd8caaf9fce1d7010f95c4678c9bd7102) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.d12", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - - -ROM_START( kroozr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "kozmkcpu.2d", 0x0000, 0x2000, CRC(61e02045) SHA1(42ba00f28466870407be96e864fadba5d6908648) ) - ROM_LOAD( "kozmkcpu.3d", 0x2000, 0x2000, CRC(caabed57) SHA1(1effe2285939ad55b5ff254c7e5ea3512e843f84) ) - ROM_LOAD( "kozmkcpu.4d", 0x4000, 0x2000, CRC(2bc83fc7) SHA1(71a3b32309e368f4afb650444d6427ac4e05b5fa) ) - ROM_LOAD( "kozmkcpu.5d", 0x6000, 0x2000, CRC(a0ec38c1) SHA1(adf3ef36355d255e4ebc0d4dc86b9d7910e26b03) ) - ROM_LOAD( "kozmkcpu.6d", 0x8000, 0x2000, CRC(7044f2b6) SHA1(55b64c9233fe0c8b351688fab29aad049d49faf2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "kozmksnd.7a", 0x0000, 0x1000, CRC(6736e433) SHA1(d43216ef34a67f047b7c35001767d838386add7d) ) - ROM_LOAD( "kozmksnd.8a", 0x1000, 0x1000, CRC(ea9cd919) SHA1(a1533b2857c881c83adce2c7bbfaa4a3148ead8e) ) - ROM_LOAD( "kozmksnd.9a", 0x2000, 0x1000, CRC(9dfa7994) SHA1(0a2d824e9fe1d48c43027f5f10f4c43476f08e07) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "kozmkcpu.3g", 0x0000, 0x2000, CRC(eda6ed2d) SHA1(c999b2aa31a83800ff205cf665f344d67eb149a0) ) - ROM_LOAD( "kozmkcpu.4g", 0x2000, 0x2000, CRC(ddde894b) SHA1(b2fe32196e947e992a959af806d6684227aaf3a2) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "kozmkvid.1e", 0x0000, 0x2000, CRC(ca60e2cc) SHA1(e26bf1284a0e74933ac193178ac8b834e5cf0146) ) - ROM_LOAD( "kozmkvid.1d", 0x2000, 0x2000, CRC(4e23b35b) SHA1(322221ea207ad0eeb0e711f3af473f71b70f7128) ) - ROM_LOAD( "kozmkvid.1b", 0x4000, 0x2000, CRC(c6041ba7) SHA1(9bd55f06d360657af5c56062053221dd24027978) ) - ROM_LOAD( "kozmkvid.1a", 0x6000, 0x2000, CRC(b57fb0ff) SHA1(e4dde9fb09a0e5051352ba05d776ebbe0cd81504) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( domino ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dmanpg0.bin", 0x0000, 0x2000, CRC(3bf3bb1c) SHA1(0dc38b47fc1f6828cd1dc2e14f43448d878ccd8a) ) - ROM_LOAD( "dmanpg1.bin", 0x2000, 0x2000, CRC(85cf1d69) SHA1(32198a2b8fbfb5b9593f083034ef4762b7ab1a27) ) - ROM_LOAD( "dmanpg2.bin", 0x4000, 0x2000, CRC(7dd2177a) SHA1(b4b17e2580679fbe340d8b8d8cb7171c49ae0a21) ) - ROM_LOAD( "dmanpg3.bin", 0x6000, 0x2000, CRC(f2e0aa44) SHA1(2f04dc74c69dfe3847d5e4330e560b0a9f18c33a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "dm-a7.snd", 0x0000, 0x1000, CRC(fa982dcc) SHA1(970340bfa0ac13ad8c2bf5adc21d7ca7aa9e525a) ) - ROM_LOAD( "dm-a8.snd", 0x1000, 0x1000, CRC(72839019) SHA1(4aa278cfb00fac76cba88600bb300ee88ec3f7ee) ) - ROM_LOAD( "dm-a9.snd", 0x2000, 0x1000, CRC(ad760da7) SHA1(024fce0f5d46e82b66c4283925556130735b863e) ) - ROM_LOAD( "dm-a10.snd", 0x3000, 0x1000, CRC(958c7287) SHA1(0dd1ae1b6073f19925d0ec1ba1090d736e0a7cf6) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dmanbg0.bin", 0x0000, 0x2000, CRC(9163007f) SHA1(a7b2e3ed68105ff99841776e8114279f557c90ed) ) - ROM_LOAD( "dmanbg1.bin", 0x2000, 0x2000, CRC(28615c56) SHA1(d4b91c092f594b1216d9a135345ba8955e5e5ec5) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "dmanfg0.bin", 0x0000, 0x2000, CRC(0b1f9f9e) SHA1(051d0b126d060300283a5572e1179c7624cedbbf) ) - ROM_LOAD( "dmanfg1.bin", 0x2000, 0x2000, CRC(16aa4b9b) SHA1(700f7dc3ce20dacce38dc40783b28fc9b4c1443a) ) - ROM_LOAD( "dmanfg2.bin", 0x4000, 0x2000, CRC(4a8e76b8) SHA1(563b9db39940060265b771f3b0c4a2055963cf2b) ) - ROM_LOAD( "dmanfg3.bin", 0x6000, 0x2000, CRC(1f39257e) SHA1(645f9b7e8bd2254167d15567c3bd577d3a574f7d) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( wacko ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "wackocpu.2d", 0x0000, 0x2000, CRC(c98e29b6) SHA1(38fbb663c238b354925b34b67de246d8ba3356e1) ) - ROM_LOAD( "wackocpu.3d", 0x2000, 0x2000, CRC(90b89774) SHA1(1f9cbe8134e7d7f797d88c0cb4be3d8c39ca03a3) ) - ROM_LOAD( "wackocpu.4d", 0x4000, 0x2000, CRC(515edff7) SHA1(9288cb5efb51086ef8610eecf8e3feae1da9fc2a) ) - ROM_LOAD( "wackocpu.5d", 0x6000, 0x2000, CRC(9b01bf32) SHA1(d209ba2503d7b54786f74107bb399313a08a09ba) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "wackosnd.7a", 0x0000, 0x1000, CRC(1a58763f) SHA1(37f0870d67d52c86ae2d188e9beaa56a3a8fa130) ) - ROM_LOAD( "wackosnd.8a", 0x1000, 0x1000, CRC(a4e3c771) SHA1(fe677090423e1d80cde07d2e74be8380d8c55e95) ) - ROM_LOAD( "wackosnd.9a", 0x2000, 0x1000, CRC(155ba3dd) SHA1(51aaeeb68b2b7eb8238c7c3b06e84dcf44683ee9) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "wackocpu.3g", 0x0000, 0x2000, CRC(33160eb1) SHA1(7d66198cb84294cc3689d7f51365566f252d6252) ) - ROM_LOAD( "wackocpu.4g", 0x2000, 0x2000, CRC(daf37d7c) SHA1(37fe68b0a5984828ec03886860f84a20461713fc) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "wackovid.1e", 0x0000, 0x2000, CRC(dca59be7) SHA1(c78af8e0c99a6f58a35f8aa73bcee15ee8fda372) ) - ROM_LOAD( "wackovid.1d", 0x2000, 0x2000, CRC(a02f1672) SHA1(1d1b7eada4dae5e31dc1474b13cefd71926cbfc7) ) - ROM_LOAD( "wackovid.1b", 0x4000, 0x2000, CRC(7d899790) SHA1(aa320f4ac41d2a1acec4880a8d95dfe6406e210e) ) - ROM_LOAD( "wackovid.1a", 0x6000, 0x2000, CRC(080be3ad) SHA1(ead2be17d749a15841123e42d434aab573870fba) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( twotiger ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cpu_d2", 0x0000, 0x2000, CRC(a682ed24) SHA1(e4418143b02739e417c44e6b4089354778e8d77f) ) - ROM_LOAD( "cpu_d3", 0x2000, 0x2000, CRC(5b48fde9) SHA1(52e07ffdd360631ea322935af5fb560afe3006ea) ) - ROM_LOAD( "cpu_d4", 0x4000, 0x2000, CRC(f1ab8c4d) SHA1(0c410ddd2e1cd8a19c73bc0c7aca70d8c4308eeb) ) - ROM_LOAD( "cpu_d5", 0x6000, 0x2000, CRC(d7129900) SHA1(af5093082cfbc9fa4b42cfc74e62adbf9b6c63db) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "ssio_a7", 0x0000, 0x1000, CRC(64ddc16c) SHA1(e119e1702ea00ffb86d413ed8e68b4e9dfefa79e) ) - ROM_LOAD( "ssio_a8", 0x1000, 0x1000, CRC(c3467612) SHA1(c968776d9561a7ac67e95a987b6d826ec2dc748e) ) - ROM_LOAD( "ssio_a9", 0x2000, 0x1000, CRC(c50f7b2d) SHA1(0f4779d4955d500c50b544d945fa78a5428b86ce) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2tgrbg0.bin", 0x0000, 0x2000, CRC(52f69068) SHA1(30422e66ae1a6fe8c10494037758758dcd1211d1) ) - ROM_LOAD( "2tgrbg1.bin", 0x2000, 0x2000, CRC(758d4f7d) SHA1(272127f802bccf47958b5dcc949b7468b1ba4512) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vid_d1", 0x0000, 0x2000, CRC(da5f49da) SHA1(9396d708d5771ec19f7abdadd8c8f874af68ab10) ) - ROM_LOAD( "vid_c1", 0x2000, 0x2000, CRC(62ed737b) SHA1(954c1f17da2ceb77e710faf0822d29381b873a07) ) - ROM_LOAD( "vid_b1", 0x4000, 0x2000, CRC(0939921e) SHA1(f52d3475232557959e501f70765a4ad472300e84) ) - ROM_LOAD( "vid_a1", 0x6000, 0x2000, CRC(ef515824) SHA1(983af762733405b96351ef4910f4f4be40c4880e) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - -ROM_START( twotigrc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "2tgrpg0.bin", 0x0000, 0x2000, CRC(e77a924b) SHA1(c1720a8a6ca8e6551ef38d565d5f18db7fbd5d2e) ) - ROM_LOAD( "2tgrpg1.bin", 0x2000, 0x2000, CRC(2699ebdc) SHA1(bed7c5fe8783dab79e7563f6b2348b9a980bdcc7) ) - ROM_LOAD( "2tgrpg2.bin", 0x4000, 0x2000, CRC(b5ca3f17) SHA1(ac51eefe9ff49bc358daf58525e529070684ed1b) ) - ROM_LOAD( "2tgrpg3.bin", 0x6000, 0x2000, CRC(8aa82049) SHA1(6e42d082d29986f5c0698ae39750fb8f9eb1e6cd) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "2tgra7.bin", 0x0000, 0x1000, CRC(4620d970) SHA1(2c2c1da84199b846575a6291dc235f30539959fa) ) - ROM_LOAD( "2tgra8.bin", 0x1000, 0x1000, CRC(e95d8cfe) SHA1(846d5543596bb86cf08f998056c1fc695cb4f62c) ) - ROM_LOAD( "2tgra9.bin", 0x2000, 0x1000, CRC(81e6ce0e) SHA1(77e145e150763bfe5760ac3e4f68218a65b9bfe0) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "2tgrbg0.bin", 0x0000, 0x2000, CRC(52f69068) SHA1(30422e66ae1a6fe8c10494037758758dcd1211d1) ) - ROM_LOAD( "2tgrbg1.bin", 0x2000, 0x2000, CRC(758d4f7d) SHA1(272127f802bccf47958b5dcc949b7468b1ba4512) ) - - ROM_REGION( 0x08000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "2tgrfg0.bin", 0x0000, 0x2000, CRC(4abf3ca0) SHA1(8cef27a1c91d32473a95e9da76db061466977559) ) - ROM_LOAD( "2tgrfg1.bin", 0x2000, 0x2000, CRC(fbcaffa5) SHA1(5145cd7cc08552388b8662b5d159b3af6344c51a) ) - ROM_LOAD( "2tgrfg2.bin", 0x4000, 0x2000, CRC(08e3e1a6) SHA1(c9c5ce072b235a299a3151f984d73bab97289e19) ) - ROM_LOAD( "2tgrfg3.bin", 0x6000, 0x2000, CRC(9b22697b) SHA1(4c3fa30ce1b645ab18c0e53ce0f3754133a267ad) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( journey ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "d2", 0x0000, 0x2000, CRC(f2618913) SHA1(eee323ac502cedefef0675a90c3c9c17f9610fc9) ) - ROM_LOAD( "d3", 0x2000, 0x2000, CRC(2f290d2e) SHA1(b672064969326e594b6a4225e73bf51d25f33871) ) - ROM_LOAD( "d4", 0x4000, 0x2000, CRC(cc6c0150) SHA1(83b00b137e0c343db9b61c90469d5e2392444fc3) ) - ROM_LOAD( "d5", 0x6000, 0x2000, CRC(c3023931) SHA1(e591a18c5fc8befcd9f2b93d9131374c572cdbcd) ) - ROM_LOAD( "d6", 0x8000, 0x2000, CRC(5d445c99) SHA1(df2bce203f510b4bda42bb7114b79eb0b2b4e2e0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a", 0x0000, 0x1000, CRC(2524a2aa) SHA1(4bd78b4fb42c2506fa6734419b42cbbe4c240e94) ) - ROM_LOAD( "b", 0x1000, 0x1000, CRC(b8e35814) SHA1(379308431d1204d6cb5ae8a13e378ec7b3fab0a9) ) - ROM_LOAD( "c", 0x2000, 0x1000, CRC(09c488cf) SHA1(7aa3321db748f2612693f8348e590369e8d48140) ) - ROM_LOAD( "d", 0x3000, 0x1000, CRC(3d627bee) SHA1(42239ee73ba88206d28fd9cff9787b11c40bb2f1) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g3", 0x0000, 0x2000, CRC(c14558de) SHA1(f47624ec235f782559eff076758ff28366dbf21d) ) - ROM_LOAD( "g4", 0x2000, 0x2000, CRC(9104c1d0) SHA1(9ae732d6f1edb8656c54ac9b8fa6b35b342adc4b) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a7", 0x0000, 0x2000, CRC(4ca2bb2d) SHA1(62ae3b30a2c52649d4c8f1264b9f8726c3ac81ce) ) - ROM_LOAD( "a8", 0x2000, 0x2000, CRC(4fb7925d) SHA1(a1f4a2bdd6e80a3a9e5f1e698c014b6f91dfb000) ) - ROM_LOAD( "a5", 0x4000, 0x2000, CRC(560c474f) SHA1(bb44fb5f1bd14b92bff110e74d8c9f22df07b47f) ) - ROM_LOAD( "a6", 0x6000, 0x2000, CRC(b1f31583) SHA1(3ebedacc75d031525d166b3265c136f0f7407d0f) ) - ROM_LOAD( "a3", 0x8000, 0x2000, CRC(f295afda) SHA1(de8086ca5750736eba939f80c089ba96b7e53300) ) - ROM_LOAD( "a4", 0xa000, 0x2000, CRC(765876a7) SHA1(9c477f5fae068f7e424939652e959711b3ad3a80) ) - ROM_LOAD( "a1", 0xc000, 0x2000, CRC(4af986f8) SHA1(56af9525a404bcf6d76b19318efe541189844210) ) - ROM_LOAD( "a2", 0xe000, 0x2000, CRC(b30cd2a7) SHA1(df1b36a3481fdec49f73d504f23951070c121291) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( tapper ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "tappg0.bin", 0x00000, 0x4000, CRC(127171d1) SHA1(373e9a9d73b71e100c02862662d025f5ead2f94d) ) - ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) ) - ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) ) - ROM_LOAD( "tappg3.bin", 0x0c000, 0x2000, CRC(e8dcdaa4) SHA1(45bf1571a2418c7dc00ccc7061a3e04e65cb6bff) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) ) - ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) ) - ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) ) - ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tapbg1.bin", 0x00000, 0x4000, CRC(2a30238c) SHA1(eb30b9bb654324340f0fc5b44776ac2440c1e869) ) - ROM_LOAD( "tapbg0.bin", 0x04000, 0x4000, CRC(394ab576) SHA1(23e29ec942e1e7516ae8068837af2d1c79592378) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tapfg1.bin", 0x00000, 0x4000, CRC(32509011) SHA1(a38667573d235efe2dc515e52af05825fe4e0f30) ) - ROM_LOAD( "tapfg0.bin", 0x04000, 0x4000, CRC(8412c808) SHA1(2077f79177fda26f9c674b2ab525ec3833802059) ) - ROM_LOAD( "tapfg3.bin", 0x08000, 0x4000, CRC(818fffd4) SHA1(930142dd73fb30c4d3ec09a1e37517c6c6774024) ) - ROM_LOAD( "tapfg2.bin", 0x0c000, 0x4000, CRC(67e37690) SHA1(d553b8517c1d03a2be0b065f4da2fa99d9e6fb30) ) - ROM_LOAD( "tapfg5.bin", 0x10000, 0x4000, CRC(800f7c8a) SHA1(8aead89e1adaee5f0b679661c4bfba36e0d639e8) ) - ROM_LOAD( "tapfg4.bin", 0x14000, 0x4000, CRC(32674ee6) SHA1(402c166d50b4a693959b3f0706a7931a5daef6ce) ) - ROM_LOAD( "tapfg7.bin", 0x18000, 0x4000, CRC(070b4c81) SHA1(95879a455ecfe2e3de7fe2a75078f9e6934960f5) ) - ROM_LOAD( "tapfg6.bin", 0x1c000, 0x4000, CRC(a37aef36) SHA1(a24696f16d467d9eea4f25aef5f4c5ff55bf51ff) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( tappera ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pr00_1c.128", 0x00000, 0x4000, CRC(bb060bb0) SHA1(ff5a729e36faea3758c8c7b345a42dd8bb465f44) ) - ROM_LOAD( "pr01_2c.128", 0x04000, 0x4000, CRC(fd9acc22) SHA1(b9f0396e2eba5772deec4725c41fa9de49658e72) ) - ROM_LOAD( "pr02_3c.128", 0x08000, 0x4000, CRC(b3755d41) SHA1(434d3c27b9f1e43def081d79b9f56dbce93a9207) ) - ROM_LOAD( "pr03_4c.64", 0x0c000, 0x2000, CRC(77273096) SHA1(5e4e2dc1703b39f588ba374f6a610f273d710532) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) ) - ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) ) - ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) ) - ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "tapbg1.bin", 0x00000, 0x4000, CRC(2a30238c) SHA1(eb30b9bb654324340f0fc5b44776ac2440c1e869) ) - ROM_LOAD( "tapbg0.bin", 0x04000, 0x4000, CRC(394ab576) SHA1(23e29ec942e1e7516ae8068837af2d1c79592378) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "fg1_a7.128", 0x00000, 0x4000, CRC(bac70b69) SHA1(7fd26cc8ff2faab86d04fcee2b5ec49ecf6b8143) ) - ROM_LOAD( "fg0_a8.128", 0x04000, 0x4000, CRC(c300925d) SHA1(45df1ac033512be942460d678a7c1ba9dcef1937) ) - ROM_LOAD( "fg3_a5.128", 0x08000, 0x4000, CRC(ecff6c23) SHA1(0b28e7e59eba983bc1929758f8dcaf315b7134a1) ) - ROM_LOAD( "fg2_a6.128", 0x0c000, 0x4000, CRC(a4f2d1be) SHA1(faf631d4ee96edf6b2c4349780e2d89eaedf70ab) ) - ROM_LOAD( "fg5_a3.128", 0x10000, 0x4000, CRC(16ce38cb) SHA1(9829c9574fff0803973246f9d22311ca76be4e58) ) - ROM_LOAD( "fg4_a4.128", 0x14000, 0x4000, CRC(082a4059) SHA1(52672b853d67432fd80e4612fa54208c225d2444) ) - ROM_LOAD( "fg7_a1.128", 0x18000, 0x4000, CRC(3b476abe) SHA1(6fe170695386fc77310384a5590a7cc3671ae853) ) - ROM_LOAD( "fg6_a2.128", 0x1c000, 0x4000, CRC(6717264c) SHA1(5a6d30974e73f952694b8c09fb3a5393a76db4f2) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( sutapper ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "5791", 0x0000, 0x4000, CRC(87119cc4) SHA1(155dc1df977a474f3f1bd238d851c2ff8fe1faba) ) - ROM_LOAD( "5792", 0x4000, 0x4000, CRC(4c23ad89) SHA1(0eebe98be6c21d701c7b7fc6547b5c94f934f5ab) ) - ROM_LOAD( "5793", 0x8000, 0x4000, CRC(fecbf683) SHA1(de365f4e567d93a9ed9672fabbc739a3a0d47d59) ) - ROM_LOAD( "5794", 0xc000, 0x2000, CRC(5bdc1916) SHA1(ee038443ae55598568bd1a53c0a671a2828d3949) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "5788", 0x00000, 0x1000, CRC(5c1d0982) SHA1(c2c94ab26ebce30ce4efc239e555c6368794d265) ) - ROM_LOAD( "5787", 0x01000, 0x1000, CRC(09e74ed8) SHA1(f5c8585d443bca67d4065314a06431d1f104c553) ) - ROM_LOAD( "5786", 0x02000, 0x1000, CRC(c3e98284) SHA1(2a4dc0deca48f4d2ac9fe673ecb9548415c996a9) ) - ROM_LOAD( "5785", 0x03000, 0x1000, CRC(ced2fd47) SHA1(a41323149c50adcae7675efcef69fd7d8365e527) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "5790", 0x00000, 0x4000, CRC(ac1558c1) SHA1(f976889b529937948043460679f84b962b4c12bc) ) - ROM_LOAD( "5789", 0x04000, 0x4000, CRC(fa66cab5) SHA1(96b89dc08f2feeb9950fbbba43d0ee57a9e31804) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5795", 0x00000, 0x4000, CRC(5d987c92) SHA1(3c26b0b0d903fb6782c6a1d72e32cd8c57ecad1f) ) - ROM_LOAD( "5796", 0x04000, 0x4000, CRC(de5700b4) SHA1(c613c2225eeff5cc65dc6ec301e616e54755b1c2) ) - ROM_LOAD( "5797", 0x08000, 0x4000, CRC(f10a1d05) SHA1(ca54d1fa6704d38e65a4d2a94449ed8dd56cc94b) ) - ROM_LOAD( "5798", 0x0c000, 0x4000, CRC(614990cd) SHA1(1a6eac2a8fa99d86889d5042c6b64f828b3c5d65) ) - ROM_LOAD( "5799", 0x10000, 0x4000, CRC(02c69432) SHA1(7f4260f4a4e8b33842355e9d8e859ffb9278c3c2) ) - ROM_LOAD( "5800", 0x14000, 0x4000, CRC(ebf1f948) SHA1(251cf018da8db11c3844123255082146b22507e5) ) - ROM_LOAD( "5801", 0x18000, 0x4000, CRC(d70defa7) SHA1(e8ceabe94080eb28aa393b97ec54729cf8aba001) ) - ROM_LOAD( "5802", 0x1c000, 0x4000, CRC(d4f114b9) SHA1(58ae647b4fd0f48af4158b85e29c813605d930d3) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - -ROM_START( rbtapper ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rbtpg0.bin", 0x00000, 0x4000, CRC(20b9adf4) SHA1(31b583c98e7c2cecab42223df8b5400004c9f3d3) ) - ROM_LOAD( "rbtpg1.bin", 0x04000, 0x4000, CRC(87e616c2) SHA1(7de10632b2538524fee418175e2cc41be9c8c0e8) ) - ROM_LOAD( "rbtpg2.bin", 0x08000, 0x4000, CRC(0b332c97) SHA1(b9878c8a61a98e787e547bb6ab81c809875891f3) ) - ROM_LOAD( "rbtpg3.bin", 0x0c000, 0x2000, CRC(698c06f2) SHA1(ddb21e39ede2222cb2286ec9dba06341fe1c9db7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "5788", 0x00000, 0x1000, CRC(5c1d0982) SHA1(c2c94ab26ebce30ce4efc239e555c6368794d265) ) - ROM_LOAD( "5787", 0x01000, 0x1000, CRC(09e74ed8) SHA1(f5c8585d443bca67d4065314a06431d1f104c553) ) - ROM_LOAD( "5786", 0x02000, 0x1000, CRC(c3e98284) SHA1(2a4dc0deca48f4d2ac9fe673ecb9548415c996a9) ) - ROM_LOAD( "5785", 0x03000, 0x1000, CRC(ced2fd47) SHA1(a41323149c50adcae7675efcef69fd7d8365e527) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rbtbg1.bin", 0x00000, 0x4000, CRC(44dfa483) SHA1(9e96a3ff0b66a4b1d07fe86059f7dfab0d53231c) ) - ROM_LOAD( "rbtbg0.bin", 0x04000, 0x4000, CRC(510b13de) SHA1(a4b24fffbbe299e0c2058abe372f00954e5edf98) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rbtfg1.bin", 0x00000, 0x4000, CRC(1c0b8791) SHA1(532239605b74b137cd0f6035a6bc7ac43f559d82) ) - ROM_LOAD( "rbtfg0.bin", 0x04000, 0x4000, CRC(e99f6018) SHA1(3a8e3e927b0fd2d49222e417e4c1f28b5a45c6ca) ) - ROM_LOAD( "rbtfg3.bin", 0x08000, 0x4000, CRC(3e725e77) SHA1(3811f499aa076fb81af42f7cb522879b0af50e37) ) - ROM_LOAD( "rbtfg2.bin", 0x0c000, 0x4000, CRC(4ee8b624) SHA1(d02a306f8b32b3a097fc51e75e106a40fe942d35) ) - ROM_LOAD( "rbtfg5.bin", 0x10000, 0x4000, CRC(9eeca46e) SHA1(523efaba9a3cbe871868ee09caea062382f31fad) ) - ROM_LOAD( "rbtfg4.bin", 0x14000, 0x4000, CRC(8c79e7d7) SHA1(e2a427324fc1d4422e50a1ab79822aff0290e109) ) - ROM_LOAD( "rbtfg7.bin", 0x18000, 0x4000, CRC(8dbf0c36) SHA1(dab52db0bca13b9f3470060bc3babe4a6c2cdcc8) ) - ROM_LOAD( "rbtfg6.bin", 0x1c000, 0x4000, CRC(441201a0) SHA1(400d390729601610b152e21da55399399830221f) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - - -ROM_START( timber ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "timpg0.bin", 0x00000, 0x4000, CRC(377032ab) SHA1(7b6c6e9c5088651720990c49296ddccb5416a729) ) - ROM_LOAD( "timpg1.bin", 0x04000, 0x4000, CRC(fd772836) SHA1(ce5266f7b1ab7dc8c1af864bc8afe33d724649fc) ) - ROM_LOAD( "timpg2.bin", 0x08000, 0x4000, CRC(632989f9) SHA1(9e9dc343746299bb0dc7ada206211366c5a05075) ) - ROM_LOAD( "timpg3.bin", 0x0c000, 0x2000, CRC(dae8a0dc) SHA1(f065fa3184efa6524d4f950616f3fbae4ea17513) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "tima7.bin", 0x00000, 0x1000, CRC(c615dc3e) SHA1(664d5e3ac3936fd04a855ee0c88f1c1b4d1dea5b) ) - ROM_LOAD( "tima8.bin", 0x01000, 0x1000, CRC(83841c87) SHA1(bd5a2e567e015e10e45651e15b42ffb3b69d2305) ) - ROM_LOAD( "tima9.bin", 0x02000, 0x1000, CRC(22bcdcd3) SHA1(69cedc8cec52ca310f828dfe73d7de04729b06d3) ) - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "timbg1.bin", 0x00000, 0x4000, CRC(b1cb2651) SHA1(799efcc35b08a3432ee2c13de3f6c65477a6de07) ) - ROM_LOAD( "timbg0.bin", 0x04000, 0x4000, CRC(2ae352c4) SHA1(8039f09cdba6ce43005f98dcff91958ba16363bb) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "timfg1.bin", 0x00000, 0x4000, CRC(81de4a73) SHA1(38e06b67004aa44dc58d205793ae83d3707472a6) ) - ROM_LOAD( "timfg0.bin", 0x04000, 0x4000, CRC(7f3a4f59) SHA1(2723cb93c1b7b229b370d069651cf83ecb1cff3a) ) - ROM_LOAD( "timfg3.bin", 0x08000, 0x4000, CRC(37c03272) SHA1(2f5793b6a148af43c5b6efe718714942ce7d271b) ) - ROM_LOAD( "timfg2.bin", 0x0c000, 0x4000, CRC(e2c2885c) SHA1(618dab8cf2ee189343210d0e20dd246447c4c542) ) - ROM_LOAD( "timfg5.bin", 0x10000, 0x4000, CRC(eb636216) SHA1(c347a64933f547cf1925e5fa187deda6e0bf713c) ) - ROM_LOAD( "timfg4.bin", 0x14000, 0x4000, CRC(b7105eb7) SHA1(913687f0e5dd105a3dfdc0afd1b5610b27124451) ) - ROM_LOAD( "timfg7.bin", 0x18000, 0x4000, CRC(d9c27475) SHA1(24a7e6200e4f3514d4d3f25b2ffe3338c0c2a495) ) - ROM_LOAD( "timfg6.bin", 0x1c000, 0x4000, CRC(244778e8) SHA1(494bc1e627997cd4f1d5267c5fafd0779ccf9255) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - -ROM_START( dotron ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "loc-pg0.1c", 0x00000, 0x4000, CRC(ba0da15f) SHA1(c0dfac2e5d6549620525b9e3d64b7c5494164dbd) ) - ROM_LOAD( "loc-pg1.2c", 0x04000, 0x4000, CRC(dc300191) SHA1(417e964f38bfbdd84cae79939c23a7de41cd7bae) ) - ROM_LOAD( "loc-pg2.3c", 0x08000, 0x4000, CRC(ab0b3800) SHA1(457a18bd98a3c4a9f893a3704dbc7d0fde4ef8ba) ) - ROM_LOAD( "loc-pg1.4c", 0x0c000, 0x2000, CRC(f98c9f8e) SHA1(a215f0fd6cd9e8cacbe06cb7bfe4e2cced150c86) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sound0.a7", 0x00000, 0x1000, CRC(6d39bf19) SHA1(3d27466fcb6d41133f16119cddb815833c8b4eda) ) - ROM_LOAD( "sound1.a8", 0x01000, 0x1000, CRC(ac872e1d) SHA1(c2833b20e124c505be3d5be2c885b9cf9927ca4c) ) - ROM_LOAD( "sound2.a9", 0x02000, 0x1000, CRC(e8ef6519) SHA1(261b0463a73b403bc46df3e04f3d12173787d6e7) ) - ROM_LOAD( "sound3.a10", 0x03000, 0x1000, CRC(6b5aeb02) SHA1(039d8d664f067bc0d085ad7730ef63dbd6dc387e) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-bg2.6f", 0x00000, 0x2000, CRC(40167124) SHA1(782c8192dd58a3f23ff2338452dd03206d79030a) ) - ROM_LOAD( "loc-bg1.5f", 0x02000, 0x2000, CRC(bb2d7a5d) SHA1(8044be9ffca9520fd77e0da492147e553f9f7da3) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-g.cp4", 0x00000, 0x2000, CRC(57a2b1ff) SHA1(b97539ffd2f5fc8b86fc2f8f233cc26ba16f82ee) ) - ROM_LOAD( "loc-h.cp3", 0x02000, 0x2000, CRC(3bb4d475) SHA1(3795ba1640790041da51ebeac8517cc7d32e243e) ) - ROM_LOAD( "loc-e.cp6", 0x04000, 0x2000, CRC(ce957f1a) SHA1(24177a8dd6dcb377cf8aee7c7b47b26f29e77e20) ) - ROM_LOAD( "loc-f.cp5", 0x06000, 0x2000, CRC(d26053ce) SHA1(b7fb3d1df9b80c056cf131574565addb529645e1) ) - ROM_LOAD( "loc-c.cp8", 0x08000, 0x2000, CRC(ef45d146) SHA1(6cd83909b4376abce287e435a10e5bc25e18b265) ) - ROM_LOAD( "loc-d.cp7", 0x0a000, 0x2000, CRC(5e8a3ef3) SHA1(74983c922eae1326ecd0ff14000851e0b424cc61) ) - ROM_LOAD( "loc-a.cp0", 0x0c000, 0x2000, CRC(b35f5374) SHA1(3f330ffde52ac57c02dfdf8e105aefcc10f87a0b) ) - ROM_LOAD( "loc-b.cp9", 0x0e000, 0x2000, CRC(565a5c48) SHA1(9dfafd58bd552bfda4e1799a175735ecc1369ba3) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - -ROM_START( dotrona ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "aloc-pg0.1c", 0x00000, 0x4000, CRC(40d00195) SHA1(e06a8097f02b9f445df0dd5c0ec13f9a0a1dcd8a) ) - ROM_LOAD( "aloc-pg1.2c", 0x04000, 0x4000, CRC(5a7d1300) SHA1(8a1f088de9289cd902e72b55d3e72c3f07246778) ) - ROM_LOAD( "aloc-pg2.3c", 0x08000, 0x4000, CRC(cb89c9be) SHA1(c773a68891fbf94808a2ee0036928c0c48d6673d) ) - ROM_LOAD( "aloc-pg1.4c", 0x0c000, 0x2000, CRC(5098faf4) SHA1(9f861f99cb170513b68aee48bbfd60ee439d7fa9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "asound0.a7", 0x00000, 0x1000, CRC(7fb54293) SHA1(6d538a3e48f98e269623850f1f6774848a89fd59) ) - ROM_LOAD( "asound1.a8", 0x01000, 0x1000, CRC(edef7326) SHA1(5c9a64604252eea0628bf9d6221e8add82f66abe) ) - ROM_LOAD( "sound2.a9", 0x02000, 0x1000, CRC(e8ef6519) SHA1(261b0463a73b403bc46df3e04f3d12173787d6e7) ) - ROM_LOAD( "sound3.a10", 0x03000, 0x1000, CRC(6b5aeb02) SHA1(039d8d664f067bc0d085ad7730ef63dbd6dc387e) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-bg2.6f", 0x00000, 0x2000, CRC(40167124) SHA1(782c8192dd58a3f23ff2338452dd03206d79030a) ) - ROM_LOAD( "loc-bg1.5f", 0x02000, 0x2000, CRC(bb2d7a5d) SHA1(8044be9ffca9520fd77e0da492147e553f9f7da3) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-g.cp4", 0x00000, 0x2000, CRC(57a2b1ff) SHA1(b97539ffd2f5fc8b86fc2f8f233cc26ba16f82ee) ) - ROM_LOAD( "loc-h.cp3", 0x02000, 0x2000, CRC(3bb4d475) SHA1(3795ba1640790041da51ebeac8517cc7d32e243e) ) - ROM_LOAD( "loc-e.cp6", 0x04000, 0x2000, CRC(ce957f1a) SHA1(24177a8dd6dcb377cf8aee7c7b47b26f29e77e20) ) - ROM_LOAD( "loc-f.cp5", 0x06000, 0x2000, CRC(d26053ce) SHA1(b7fb3d1df9b80c056cf131574565addb529645e1) ) - ROM_LOAD( "loc-c.cp8", 0x08000, 0x2000, CRC(ef45d146) SHA1(6cd83909b4376abce287e435a10e5bc25e18b265) ) - ROM_LOAD( "loc-d.cp7", 0x0a000, 0x2000, CRC(5e8a3ef3) SHA1(74983c922eae1326ecd0ff14000851e0b424cc61) ) - ROM_LOAD( "loc-a.cp0", 0x0c000, 0x2000, CRC(b35f5374) SHA1(3f330ffde52ac57c02dfdf8e105aefcc10f87a0b) ) - ROM_LOAD( "loc-b.cp9", 0x0e000, 0x2000, CRC(565a5c48) SHA1(9dfafd58bd552bfda4e1799a175735ecc1369ba3) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - -ROM_START( dotrone ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "loc-cpu1", 0x00000, 0x4000, CRC(eee31b8c) SHA1(c05ad1d10588a6c1050c608f1a473685ebe4daad) ) - ROM_LOAD( "loc-cpu2", 0x04000, 0x4000, CRC(75ba6ad3) SHA1(d02c3d731073fb6083bd8f771f76338939384a07) ) - ROM_LOAD( "loc-cpu3", 0x08000, 0x4000, CRC(94bb1a0e) SHA1(af4769fac39e67eff840675bf93cc4304f2875fd) ) - ROM_LOAD( "loc-cpu4", 0x0c000, 0x2000, CRC(c137383c) SHA1(ccf7cf9c7c0528aa819cfca34c1c0e89ab2d586a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "loc-a", 0x00000, 0x1000, CRC(2de6a8a8) SHA1(6bba00daed8836297f3189db4e4fe8e158adc465) ) - ROM_LOAD( "loc-b", 0x01000, 0x1000, CRC(4097663e) SHA1(afb5224529550cec378415a5cd81b47f6c6c101b) ) - ROM_LOAD( "loc-c", 0x02000, 0x1000, CRC(f576b9e7) SHA1(4ff39c46c390aa93d900f5f7a0b35fa71f066863) ) - ROM_LOAD( "loc-d", 0x03000, 0x1000, CRC(74b0059e) SHA1(1fe393721446538036fb6110fdc3920959ebd596) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "pre.u3", 0x09000, 0x1000, CRC(c3d0f762) SHA1(a1857641c35b5bcb33f29fe79a1a581c4cbf129b) ) - ROM_LOAD( "pre.u4", 0x0a000, 0x1000, CRC(7ca79b43) SHA1(c995e1e67d70706a090eb777e9fec0f1ba03f82d) ) - ROM_LOAD( "pre.u5", 0x0b000, 0x1000, CRC(24e9618e) SHA1(eb245ff381a76b314a0ed3519e140444afae341c) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-bg2.6f", 0x00000, 0x2000, CRC(40167124) SHA1(782c8192dd58a3f23ff2338452dd03206d79030a) ) - ROM_LOAD( "loc-bg1.5f", 0x02000, 0x2000, CRC(bb2d7a5d) SHA1(8044be9ffca9520fd77e0da492147e553f9f7da3) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "loc-g.cp4", 0x00000, 0x2000, CRC(57a2b1ff) SHA1(b97539ffd2f5fc8b86fc2f8f233cc26ba16f82ee) ) - ROM_LOAD( "loc-h.cp3", 0x02000, 0x2000, CRC(3bb4d475) SHA1(3795ba1640790041da51ebeac8517cc7d32e243e) ) - ROM_LOAD( "loc-e.cp6", 0x04000, 0x2000, CRC(ce957f1a) SHA1(24177a8dd6dcb377cf8aee7c7b47b26f29e77e20) ) - ROM_LOAD( "loc-f.cp5", 0x06000, 0x2000, CRC(d26053ce) SHA1(b7fb3d1df9b80c056cf131574565addb529645e1) ) - ROM_LOAD( "loc-c.cp8", 0x08000, 0x2000, CRC(ef45d146) SHA1(6cd83909b4376abce287e435a10e5bc25e18b265) ) - ROM_LOAD( "loc-d.cp7", 0x0a000, 0x2000, CRC(5e8a3ef3) SHA1(74983c922eae1326ecd0ff14000851e0b424cc61) ) - ROM_LOAD( "loc-a.cp0", 0x0c000, 0x2000, CRC(b35f5374) SHA1(3f330ffde52ac57c02dfdf8e105aefcc10f87a0b) ) - ROM_LOAD( "loc-b.cp9", 0x0e000, 0x2000, CRC(565a5c48) SHA1(9dfafd58bd552bfda4e1799a175735ecc1369ba3) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ - ROM_LOAD( "edotlamp.u2", 0x0020, 0x0020, CRC(fb58b867) SHA1(45beb55f2c2e9197f091fc06e9a2f595e57e5c93) ) /* lamp sequencer PROM */ -ROM_END - - -ROM_START( nflfoot ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "nflcpupg.1c", 0x00000, 0x4000, CRC(d76a7a41) SHA1(591c1f530469ac2131f2c0fb4c3350546f44c358) ) - ROM_LOAD( "nflcpupg.2c", 0x04000, 0x4000, CRC(2aa76168) SHA1(608df883f5e960153a963404d5cc4b4ce4ec435d) ) - ROM_LOAD( "nflcpupg.3c", 0x08000, 0x4000, CRC(5ec01e09) SHA1(2bf60ab7d47f53583b677195976d6f6a9e90c55c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "nflsnd.a7", 0x0000, 0x1000, CRC(1339be2e) SHA1(5c1743f4d20f94053eb306d3749057608df4a6a2) ) - ROM_LOAD( "nflsnd.a8", 0x1000, 0x1000, CRC(8630b560) SHA1(0c537f48184d3a7a9ee51c30d7c33dc39c46e823) ) - ROM_LOAD( "nflsnd.a9", 0x2000, 0x1000, CRC(1e0fe4c8) SHA1(718dfaced2d8d84dab4c32265bed422e07af0f9e) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "nfl-sqtk-11-15-83.u2", 0x08000, 0x1000, CRC(aeddda31) SHA1(8ebe9d8606c4328b1b3f4633db30d7636acf210b) ) - ROM_LOAD( "nfl-sqtk-11-15-83.u3", 0x09000, 0x1000, CRC(36229d13) SHA1(d174098ce1e4bc89ded15a08db37933ab9532f2b) ) - ROM_LOAD( "nfl-sqtk-11-15-83.u4", 0x0a000, 0x1000, CRC(b202439b) SHA1(b09e94b0b176f80b12fb4cefa6efd5b2cccb6192) ) - ROM_LOAD( "nfl-sqtk-11-15-83.u5", 0x0b000, 0x1000, CRC(bbfe4d39) SHA1(161ed211701e576978d6ef8b9766eb7742a29eb3) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* 64k for the IPU CPU */ - ROM_LOAD( "ipu-7-9.a2", 0x0000, 0x2000, CRC(0e083adb) SHA1(b799568ff851f7320869fb84821a90eb1156556f) ) - ROM_LOAD( "ipu-7-9.a4", 0x2000, 0x2000, CRC(5c9c4764) SHA1(ee9fe1d85dbfb1089bc8ed106a28fe5f3c36fb42) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nflcpubg.6f", 0x00000, 0x2000, CRC(6d116cd9) SHA1(72acbb593e011b7732915c05fd2376eb5a9c5078) ) - ROM_LOAD( "nflcpubg.5f", 0x02000, 0x2000, CRC(5f1b0b67) SHA1(90b223ce65f814de26507d45a6db257ceaa932b1) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "nflvidfg.cp4", 0x00000, 0x2000, CRC(eb6b808d) SHA1(e81580959710ecfd2f56a661c61b681ac22887cf) ) - ROM_LOAD( "nflvidfg.cp3", 0x02000, 0x2000, CRC(be21580a) SHA1(f057635a0a4d7fd99d50e0496fe0af8c6ed27ed9) ) - ROM_LOAD( "nflvidfg.cp6", 0x04000, 0x2000, CRC(54a0bff8) SHA1(1a4de884a1a43b97d402d068d3281696c7b48904) ) - ROM_LOAD( "nflvidfg.cp5", 0x06000, 0x2000, CRC(6aeba0ab) SHA1(2d99a28bc8bd8289ac12824258b16118c808d6c7) ) - ROM_LOAD( "nflvidfg.cp8", 0x08000, 0x2000, CRC(112ee67b) SHA1(fc9ca6cd87f84f7f033729ca0a06978ec0bb7c32) ) - ROM_LOAD( "nflvidfg.cp7", 0x0a000, 0x2000, CRC(73f62392) SHA1(18f28be7264f8edff38f8a6aa067eeb1970f544c) ) - ROM_LOAD( "nflvidfg.c10", 0x0c000, 0x2000, CRC(1766dcc7) SHA1(df499e3c66ae702d2d56e6cd095a754665569fcd) ) - ROM_LOAD( "nflvidfg.cp9", 0x0e000, 0x2000, CRC(46558146) SHA1(4bedfae8cf0fcb9d837706ee13fbe3944ab47216) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "5784", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) -ROM_END - - -ROM_START( demoderb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "dd_pro", 0x00000, 0x4000, CRC(8781b367) SHA1(52fe4f4e3fa0370284845d88bc7b30a95c962b22) ) - ROM_LOAD( "dd_pro1", 0x04000, 0x4000, CRC(4c713bfe) SHA1(493b6ba01e86e7586ad123c53cf7f0a0c191d670) ) - ROM_LOAD( "dd_pro2", 0x08000, 0x4000, CRC(c2cbd2a4) SHA1(fa642b2f61ff5529ab688a43c1dc14357a4eba6f) ) - - ROM_REGION( 0x10000, REGION_CPU2, ROMREGION_ERASE00 ) /* 64k for the audio CPU, not populated */ - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the Turbo Cheap Squeak */ - ROM_LOAD( "tcs_u5.bin", 0x0c000, 0x2000, CRC(eca33b2c) SHA1(938b021ea3b0f23aed7a98a930a58af371a02303) ) - ROM_LOAD( "tcs_u4.bin", 0x0e000, 0x2000, CRC(3490289a) SHA1(a9d56ea60bb901267da41ab408f8e1ed3742b0ac) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "dd_bg0.6f", 0x00000, 0x2000, CRC(cf80be19) SHA1(a2ab09ee2dc76fab472fec7520ed972ccc10e826) ) - ROM_LOAD( "dd_bg1.5f", 0x02000, 0x2000, CRC(4e173e52) SHA1(ac5ae8007a63f9c074444783c1058109327dd118) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "dd_fg-0.a4", 0x00000, 0x4000, CRC(e57a4de6) SHA1(d1b2396a85b984e171d751ef8e1cf970ac4ff9fb) ) - ROM_LOAD( "dd_fg-4.a3", 0x04000, 0x4000, CRC(55aa667f) SHA1(d611dbf9e8ef383d02514b0edb9ea36670193bf0) ) - ROM_LOAD( "dd_fg-1.a6", 0x08000, 0x4000, CRC(70259651) SHA1(55967aaf2a7617c8f5a199d1e07128d79ce16970) ) - ROM_LOAD( "dd_fg-5.a5", 0x0c000, 0x4000, CRC(5fe99007) SHA1(9d640b4715333efdc6300dc353991d6934929399) ) - ROM_LOAD( "dd_fg-2.a8", 0x10000, 0x4000, CRC(6cab7b95) SHA1(8faff7458ab5ff2dd096dd78b1449a4096cc6345) ) - ROM_LOAD( "dd_fg-6.a7", 0x14000, 0x4000, CRC(abfb9a8b) SHA1(14ab416bc76db25ad97353c9072048c64ec95344) ) - ROM_LOAD( "dd_fg-3.a10", 0x18000, 0x4000, CRC(801d9b86) SHA1(5a8c72d1060eea1a3ad67b98aa6eff13f6837af6) ) - ROM_LOAD( "dd_fg-7.a9", 0x1c000, 0x4000, CRC(0ec3f60a) SHA1(4176b246b0ea7bce9498c20e12678f16f7173529) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "82s123.12d", 0x0000, 0x0020, CRC(e1281ee9) SHA1(9ac9b01d24affc0ee9227a4364c4fd8f8290343a) ) /* from shollow, assuming it's the same */ -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -static void mcr_init(int cpuboard, int vidboard, int ssioboard) -{ - mcr_cpu_board = cpuboard; - mcr_sprite_board = vidboard; - - mcr12_sprite_xoffs = 0; - mcr12_sprite_xoffs_flip = 0; - - state_save_register_global(input_mux); - state_save_register_global(last_op4); -} - - -static DRIVER_INIT( solarfox ) -{ - mcr_init(90009, 91399, 90908); - mcr_sound_init(MCR_SSIO); - - ssio_set_custom_input(0, 0x1c, solarfox_ip0_r); - ssio_set_custom_input(1, 0xff, solarfox_ip1_r); - - mcr12_sprite_xoffs = 16; -} - - -static DRIVER_INIT( kick ) -{ - mcr_init(90009, 91399, 90908); - mcr_sound_init(MCR_SSIO); - - ssio_set_custom_input(1, 0xf0, kick_ip1_r); - - mcr12_sprite_xoffs_flip = 16; -} - - -static DRIVER_INIT( mcr_90010 ) -{ - mcr_init(90010, 91399, 90913); - mcr_sound_init(MCR_SSIO); -} - - -static DRIVER_INIT( wacko ) -{ - mcr_init(90010, 91399, 90913); - mcr_sound_init(MCR_SSIO); - - ssio_set_custom_input(1, 0xff, wacko_ip1_r); - ssio_set_custom_input(2, 0xff, wacko_ip2_r); - ssio_set_custom_output(4, 0x01, wacko_op4_w); -} - - -static DRIVER_INIT( twotiger ) -{ - mcr_init(90010, 91399, 90913); - mcr_sound_init(MCR_SSIO); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0x1000, twotiger_videoram_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe800, 0xefff, 0, 0x1000, twotiger_videoram_w); -} - - -static DRIVER_INIT( kroozr ) -{ - mcr_init(90010, 91399, 91483); - mcr_sound_init(MCR_SSIO); - - ssio_set_custom_input(1, 0x47, kroozr_ip1_r); - ssio_set_custom_output(4, 0x34, kroozr_op4_w); -} - - -static DRIVER_INIT( journey ) -{ - mcr_init(91475, 91464, 90913); - mcr_sound_init(MCR_SSIO); - - ssio_set_custom_output(4, 0x01, journey_op4_w); -} - - -static DRIVER_INIT( mcr_91490 ) -{ - mcr_init(91490, 91464, 90913); - mcr_sound_init(MCR_SSIO); -} - - -static DRIVER_INIT( dotrone ) -{ - mcr_init(91490, 91464, 91657); - mcr_sound_init(MCR_SSIO | MCR_SQUAWK_N_TALK); - - ssio_set_custom_output(4, 0xff, dotron_op4_w); -} - - -static DRIVER_INIT( nflfoot ) -{ - mcr_init(91490, 91464, 91657); - mcr_sound_init(MCR_SSIO | MCR_SQUAWK_N_TALK); - - ssio_set_custom_input(2, 0x80, nflfoot_ip2_r); - ssio_set_custom_output(4, 0xff, nflfoot_op4_w); - - nflfoot_serial_out_active = FALSE; - nflfoot_serial_in_active = FALSE; - - state_save_register_global(nflfoot_serial_out_active); - state_save_register_global(nflfoot_serial_out_bits); - state_save_register_global(nflfoot_serial_out_numbits); - state_save_register_global(nflfoot_serial_in_active); - state_save_register_global(nflfoot_serial_in_bits); - state_save_register_global(nflfoot_serial_in_numbits); -} - - -static DRIVER_INIT( demoderb ) -{ - mcr_init(91490, 91464, 90913); - mcr_sound_init(MCR_SSIO | MCR_TURBO_CHIP_SQUEAK); - - ssio_set_custom_input(1, 0xfc, demoderb_ip1_r); - ssio_set_custom_input(2, 0xfc, demoderb_ip2_r); - ssio_set_custom_output(4, 0xff, demoderb_op4_w); - - /* the SSIO Z80 doesn't have any program to execute */ - cpunum_suspend(1, SUSPEND_REASON_DISABLE, 1); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -/* 90009 CPU board + 91399 video gen + 90908 sound I/O */ -GAME( 1981, solarfox, 0, mcr_90009, solarfox, solarfox, ROT90 ^ ORIENTATION_FLIP_Y, "Bally Midway", "Solar Fox (upright)", GAME_SUPPORTS_SAVE ) -GAME( 1981, kick, 0, mcr_90009, kick, kick, ORIENTATION_SWAP_XY, "Midway", "Kick (upright)", GAME_SUPPORTS_SAVE ) -GAME( 1981, kicka, kick, mcr_90009, kicka, kick, ROT90, "Midway", "Kick (cocktail)", GAME_SUPPORTS_SAVE ) - -/* 90010 CPU board + 91399 video gen + 90913 sound I/O */ -GAME( 1981, shollow, 0, mcr_90010, shollow, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1981, shollow2, shollow, mcr_90010, shollow, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, tron, 0, mcr_90010, tron, mcr_90010, ROT90, "Bally Midway", "Tron (set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1982, tron2, tron, mcr_90010, tron, mcr_90010, ROT90, "Bally Midway", "Tron (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1982, tron3, tron, mcr_90010, tron, mcr_90010, ROT90, "Bally Midway", "Tron (set 3)", GAME_SUPPORTS_SAVE ) -GAME( 1982, tron4, tron, mcr_90010, tron, mcr_90010, ROT90, "Bally Midway", "Tron (set 4)", GAME_SUPPORTS_SAVE ) -GAME( 1982, domino, 0, mcr_90010, domino, mcr_90010, ROT0, "Bally Midway", "Domino Man", GAME_SUPPORTS_SAVE ) -GAME( 1982, wacko, 0, mcr_90010, wacko, wacko, ROT0, "Bally Midway", "Wacko", GAME_SUPPORTS_SAVE ) -GAME( 1984, twotigrc, twotiger, mcr_90010, twotigrc, mcr_90010, ROT0, "Bally Midway", "Two Tigers (Tron conversion)", GAME_SUPPORTS_SAVE ) - -/* hacked 90010 CPU board + 91399 video gen + 90913 sound I/O + 8-track interface */ -GAME( 1984, twotiger, 0, mcr_90010, twotiger, twotiger, ROT0, "Bally Midway", "Two Tigers (dedicated)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) - -/* 90010 CPU board + 91399 video gen + 91483 sound I/O */ -GAME( 1982, kroozr, 0, mcr_90010, kroozr, kroozr, ROT0, "Bally Midway", "Kozmik Kroozr", GAME_SUPPORTS_SAVE ) - -/* 91475 CPU board + 91464 video gen + 90913 sound I/O + cassette interface */ -GAME( 1983, journey, 0, mcr_91475, journey, journey, ROT90, "Bally Midway", "Journey", GAME_SUPPORTS_SAVE ) - -/* 91490 CPU board + 91464 video gen + 90913 sound I/O */ -GAME( 1983, tapper, 0, mcr_91490, tapper, mcr_91490, ROT0, "Bally Midway", "Tapper (Budweiser)", GAME_SUPPORTS_SAVE ) -GAME( 1983, tappera, tapper, mcr_91490, tapper, mcr_91490, ROT0, "Bally Midway", "Tapper (alternate)", GAME_SUPPORTS_SAVE ) -GAME( 1983, sutapper, tapper, mcr_91490, tapper, mcr_91490, ROT0, "Bally Midway", "Tapper (Suntory)", GAME_SUPPORTS_SAVE ) -GAME( 1984, rbtapper, tapper, mcr_91490, tapper, mcr_91490, ROT0, "Bally Midway", "Tapper (Root Beer)", GAME_SUPPORTS_SAVE ) -GAME( 1984, timber, 0, mcr_91490, timber, mcr_91490, ROT0, "Bally Midway", "Timber", GAME_SUPPORTS_SAVE ) -GAME( 1983, dotron, 0, mcr_91490, dotron, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright)", GAME_SUPPORTS_SAVE ) -GAME( 1983, dotrona, dotron, mcr_91490, dotron, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright alternate)", GAME_SUPPORTS_SAVE ) - -/* 91490 CPU board + 91464 video gen + 91657 sound I/O + Squawk n' Talk */ -GAME( 1983, dotrone, dotron, mcr_91490_snt, dotron, dotrone, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Environmental)", GAME_SUPPORTS_SAVE ) - -/* 91490 CPU board + 91464 video gen + 91657 sound I/O + Squawk n' Talk + IPU laserdisk interface */ -GAME( 1983, nflfoot, 0, mcr_91490_ipu, nflfoot, nflfoot, ROT0, "Bally Midway", "NFL Football", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) - -/* 91490 CPU board + 91464 video gen + 90913 sound I/O + Turbo Chip Squeak */ -GAME( 1984, demoderb, 0, mcr_91490_tcs, demoderb, demoderb, ROT0, "Bally Midway", "Demolition Derby", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/metro.c b/src/drivers/metro.c deleted file mode 100644 index 539f51712..000000000 --- a/src/drivers/metro.c +++ /dev/null @@ -1,5937 +0,0 @@ -/*************************************************************************** - - -= Metro Games =- - - driver by Luca Elia (l.elia@tin.it) - - -Main CPU : MC68000 - -Video Chips : Imagetek 14100 052 9227KK701 Or - Imagetek 14220 071 9338EK707 Or - Imagetek 14300 095 - -Sound CPU : NEC78C10 [Optional] - -Sound Chips : OKIM6295 + YM2413 or - YRW801-M + YMF278B (YM2610 compatible) - -Other : Memory Blitter - ---------------------------------------------------------------------------- -Year + Game PCB Video Chip Issues / Notes ---------------------------------------------------------------------------- -92 Last Fortress - Toride VG420 14100 -92 Last Fortress - Toride (Ger)VG460-(A) 14100 -92 Pang Poms VG420 14100 -92 Sky Alert VG420 14100 -92 The Karate Tournament VG460-B 14100 -93? Lady Killer / Moeyo Gonta!! VG460-B 14100 -93 Poitto! MTR5260-A 14100 -94 Dharma Doujou MTR5260-A 14220 -94 Gun Master MTR5260-A 14220 -94 Toride II Adauchi Gaiden MTR5260-A 14220 -94 Blazing Tornado ? 14220 Also has Konami 053936 gfx chip -96 Grand Striker 2 HUM-003(A) 14220 Also has Konami 053936 gfx chip -95 Daitoride MTR5260-A 14220 -95 Pururun MTR5260-A 14220 -95 Puzzli MTR5260-A 14220 -96 Sankokushi MTR5260-A 14220 -96 Bal Cube ? 14220 No sound CPU -96 Bang Bang Ball ? 14220 No sound CPU -95 Mahjong Doukyuhsei VG330-B 14300 No sound CPU -95 Mahjong Doukyuusei Special VG340-A 14300 No sound CPU -97 Mahjong Gakuensai VG340-A 14300 No sound CPU -98 Mahjong Gakuensai 2 VG340-A 14300 No sound CPU -96 Mouja VG410-B 14300 No sound CPU -99 Battle Bubble v2.00 LM2D-Y 14220 No sound CPU ---------------------------------------------------------------------------- - -Not dumped yet: -94 Toride II - -To Do: - -- 1 pixel granularity in the window's placement (8 pixels now, see daitorid title) -- Coin lockout -- Some gfx problems in ladykill, 3kokushi, puzzli, gakusai -- Are the 16x16 tiles used by Mouja a Imagetek 14300-only feature? -- Flip screen doesn't work correctly in Mouja due to asymmetrical visible area - -Notes: - -- To enter service mode in Lady Killer, toggle the dip switch and reset - keeping start 2 pressed. -- Sprite zoom in Mouja at the end of a match looks wrong, but it's been verified - to be the same on the original board - -lastfort info from guru ---- -Master clock = 24.00MHz -D7810 clock : 12.00MHz (24 / 2) -M6295 clock: 1.200MHz (24 / 20), sample rate = M6295 clock /165 -YM2413 clock: 3.579545MHz -Vsync: 58Hz -HSync: 15.16kHz - -Compared to the real PCB, MAME is too fast, so 60fps needs to be changed to 58fps (i.e 58Hz). --- -driver modified by Eisuke Watanabe -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/upd7810/upd7810.h" -#include "machine/eeprom.h" -#include "sound/2610intf.h" -#include "sound/2151intf.h" -#include "sound/2413intf.h" -#include "sound/okim6295.h" -#include "sound/ymf278b.h" - -/* Variables defined in vidhrdw: */ - -extern UINT16 *metro_videoregs; -extern UINT16 *metro_screenctrl; -extern UINT16 *metro_scroll; -extern UINT16 *metro_tiletable; -extern size_t metro_tiletable_size; -extern UINT16 *metro_vram_0, *metro_vram_1, *metro_vram_2; -extern UINT16 *metro_window; -extern UINT16 *metro_K053936_ram; -WRITE16_HANDLER( metro_K053936_w ); - - -/* Functions defined in vidhrdw: */ - -WRITE16_HANDLER( metro_paletteram_w ); - -WRITE16_HANDLER( metro_window_w ); - -WRITE16_HANDLER( metro_vram_0_w ); -WRITE16_HANDLER( metro_vram_1_w ); -WRITE16_HANDLER( metro_vram_2_w ); - - -VIDEO_START( metro_14100 ); -VIDEO_START( metro_14220 ); -VIDEO_START( metro_14300 ); -VIDEO_START( blzntrnd ); -VIDEO_START( gstrik2 ); - -VIDEO_UPDATE( metro ); - - -/*************************************************************************** - - - Interrupts - - -***************************************************************************/ - -static int irq_line, blitter_bit; - -static UINT8 requested_int[8]; - -static UINT16 *metro_irq_levels, *metro_irq_vectors, *metro_irq_enable; - -READ16_HANDLER( metro_irq_cause_r ) -{ - return requested_int[0] * 0x01 + // vblank - requested_int[1] * 0x02 + - requested_int[2] * 0x04 + // blitter - requested_int[3] * 0x08 + - requested_int[4] * 0x10 + - requested_int[5] * 0x20 + - requested_int[6] * 0x40 + // unused - requested_int[7] * 0x80 ; // unused -} - - -/* Update the IRQ state based on all possible causes */ -static void update_irq_state(void) -{ - /* Get the pending IRQs (only the enabled ones, e.g. where - irq_enable is *0*) */ - UINT16 irq = metro_irq_cause_r(0,0) & ~*metro_irq_enable; - - if (irq_line == -1) /* mouja, gakusai, gakusai2, dokyusei, dokyusp */ - { - /* This is for games that supply an *IRQ Vector* on the data bus - together with an IRQ level for each possible IRQ source */ - - int i = 0; - while ( i < 8 ) - { - if (irq & (1 << i)) - { - cpunum_set_input_line(0, metro_irq_levels[i]&7, ASSERT_LINE); - return; - } - i++; - } - cpunum_set_input_line(0, 0, ASSERT_LINE); - } - else - { - /* This is for games where every IRQ source generates the same - IRQ level. The interrupt service routine then reads the actual - source by peeking a register (metro_irq_cause_r) */ - - int state = (irq ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(0, irq_line, state); - } -} - - -/* For games that supply an *IRQ Vector* on the data bus */ -int metro_irq_callback(int int_level) -{ -// logerror("CPU #0 PC %06X: irq callback returns %04X\n",activecpu_get_pc(),metro_irq_vectors[int_level]); - return metro_irq_vectors[int_level]&0xff; -} - -MACHINE_RESET( metro ) -{ - if (irq_line == -1) - cpunum_set_irq_callback(0, metro_irq_callback); -} - - -WRITE16_HANDLER( metro_irq_cause_w ) -{ -//if (data & ~0x15) logerror("CPU #0 PC %06X : unknown bits of irqcause written: %04X\n",activecpu_get_pc(),data); - - if (ACCESSING_LSB) - { - data &= ~*metro_irq_enable; - if (data & 0x01) requested_int[0] = 0; - if (data & 0x02) requested_int[1] = 0; // DAITORIDE, BALCUBE, KARATOUR, MOUJA - if (data & 0x04) requested_int[2] = 0; - if (data & 0x08) requested_int[3] = 0; // KARATOUR - if (data & 0x10) requested_int[4] = 0; - if (data & 0x20) requested_int[5] = 0; // KARATOUR, BLZNTRND - if (data & 0x40) requested_int[6] = 0; - if (data & 0x80) requested_int[7] = 0; - } - - update_irq_state(); -} - - -INTERRUPT_GEN( metro_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 0: - requested_int[0] = 1; - update_irq_state(); - break; - - default: - requested_int[4] = 1; - update_irq_state(); - break; - } -} - -/* Lev 1. Lev 2 seems sound related */ -INTERRUPT_GEN( bangball_interrupt ) -{ - requested_int[0] = 1; // set scroll regs if a flag is set - requested_int[4] = 1; // clear that flag - update_irq_state(); -} - - -static void vblank_end_callback(int param) -{ - requested_int[5] = param; -} - -/* lev 2-7 (lev 1 seems sound related) */ -INTERRUPT_GEN( karatour_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 0: - requested_int[0] = 1; - requested_int[5] = 1; // write the scroll registers - timer_set(DEFAULT_REAL_60HZ_VBLANK_DURATION, 0, vblank_end_callback); - update_irq_state(); - break; - - default: - requested_int[4] = 1; - update_irq_state(); - break; - } -} - -static void *mouja_irq_timer; - -static void mouja_irq_callback(int param) -{ - requested_int[0] = 1; - update_irq_state(); -} - -static WRITE16_HANDLER( mouja_irq_timer_ctrl_w ) -{ - double timer; - - timer = 58.0 + (0xff - (data & 0xff)) / 2.2; /* 0xff=58Hz, 0x80=116Hz? */ - timer_adjust(mouja_irq_timer, TIME_NOW, 0, TIME_IN_HZ(timer)); -} - -INTERRUPT_GEN( mouja_interrupt ) -{ - requested_int[1] = 1; - update_irq_state(); -} - - -INTERRUPT_GEN( gakusai_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 0: - requested_int[1] = 1; - update_irq_state(); - break; - } -} - -INTERRUPT_GEN( dokyusei_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 0: - requested_int[1] = 1; - update_irq_state(); - break; - case 1: // needed? - requested_int[5] = 1; - update_irq_state(); - break; - } -} - -static void ymf278b_interrupt(int active) -{ - cpunum_set_input_line(0, 2, active); -} - -/*************************************************************************** - - - Sound Communication - - -***************************************************************************/ - -static UINT16 metro_soundstatus; -static int porta, portb, busy_sndcpu; - -static int metro_io_callback(int ioline, int state) -{ - UINT8 data = 0; - - switch ( ioline ) - { - case UPD7810_RXD: /* read the RxD line */ - data = soundlatch_r(0); - state = data & 1; - soundlatch_w(0, data >> 1); - break; - default: - logerror("upd7810 ioline %d not handled\n", ioline); - } - - return state; -} - -static WRITE16_HANDLER( metro_soundlatch_w ) -{ - if (ACCESSING_LSB) - { - soundlatch_w(0,data & 0xff); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_int(); - busy_sndcpu = 1; - } -} - - -static READ16_HANDLER( metro_soundstatus_r ) -{ - return (busy_sndcpu ? 0x00 : 0x01); -} - -static READ16_HANDLER( daitorid_soundstatus_r ) -{ - return readinputport(0) | (busy_sndcpu ? 0x80 : 0x00); -} - -static WRITE16_HANDLER( metro_soundstatus_w ) -{ - if (ACCESSING_LSB) - metro_soundstatus = data & 0x01; -} - - -static WRITE8_HANDLER( metro_sound_rombank_w ) -{ - int bankaddress; - UINT8 *ROM = memory_region(REGION_CPU2); - - bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x03) * 0x4000; - if (bankaddress < 0x10000) bankaddress = 0x0000; - - memory_set_bankptr(1, &ROM[bankaddress]); -} - -static WRITE8_HANDLER( daitorid_sound_rombank_w ) -{ - int bankaddress; - UINT8 *ROM = memory_region(REGION_CPU2); - - bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x07) * 0x4000; - if (bankaddress < 0x10000) bankaddress = 0x10000; - - memory_set_bankptr(1, &ROM[bankaddress]); -} - - -static READ8_HANDLER( metro_porta_r ) -{ - return porta; -} - -static WRITE8_HANDLER( metro_porta_w ) -{ - porta = data; -} - -static WRITE8_HANDLER( metro_portb_w ) -{ - /* port B layout: - 7 !clock latch for message to main CPU - 6 - 5 !clock YM2413 I/O - 4 !clock MSM6295 I/O - 3 - 2 !enable write to YM2413/6295 - 1 select YM2151 register or data port - 0 - */ - - if (BIT(portb,7) && !BIT(data,7)) /* clock 1->0 */ - { - busy_sndcpu = 0; - portb = data; - return; - } - - if (BIT(portb,5) && !BIT(data,5)) /* clock 1->0 */ - { - if (!BIT(data,2)) - { - /* write */ - if (BIT(data,1)) - YM2413_data_port_0_w(0,porta); - else - YM2413_register_port_0_w(0,porta); - } - portb = data; - return; - } - - if (BIT(portb,2) && !BIT(data,2)) /* clock 1->0 */ - { - /* write */ - if (!BIT(data,4)) - OKIM6295_data_0_w(0,porta); - } - portb = data; -} - - -static WRITE8_HANDLER( daitorid_portb_w ) -{ - /* port B layout: - 7 !clock latch for message to main CPU - 6 !clock YM2151 I/O - 5 - 4 !clock MSM6295 I/O - 3 !enable read from YM2151/6295 - 2 !enable write to YM2151/6295 - 1 select YM2151 register or data port - 0 - */ - - if (BIT(portb,7) && !BIT(data,7)) /* clock 1->0 */ - { - busy_sndcpu = 0; - portb = data; - return; - } - - if (BIT(portb,6) && !BIT(data,6)) /* clock 1->0 */ - { - if (!BIT(data,2)) - { - /* write */ - if (BIT(data,1)) - YM2151_data_port_0_w(0,porta); - else - YM2151_register_port_0_w(0,porta); - } - if (!BIT(data,3)) - { - /* read */ - if (BIT(data,1)) - porta = YM2151_status_port_0_r(0); - } - portb = data; - return; - } - - if (BIT(portb,2) && !BIT(data,2)) /* clock 1->0 */ - { - /* write */ - if (!BIT(data,4)) - OKIM6295_data_0_w(0,porta); - } - if (BIT(portb,3) && !BIT(data,3)) /* clock 1->0 */ - { - /* read */ - if (!BIT(data,4)) - porta = OKIM6295_status_0_r(0); - } - portb = data; -} - -static void metro_sound_irq_handler(int state) -{ - cpunum_set_input_line(1, UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2151interface ym2151_interface = -{ - metro_sound_irq_handler /* irq handler */ -}; - - -static READ16_HANDLER( ymf278b_r ) -{ - return YMF278B_status_port_0_r(0); -} - -static WRITE16_HANDLER( ymf278b_w ) -{ - if(ACCESSING_LSB) - switch(offset) - { - case 0: - YMF278B_control_port_0_A_w(0, data); - break; - case 1: - YMF278B_data_port_0_A_w(0, data); - break; - case 2: - YMF278B_control_port_0_B_w(0, data); - break; - case 3: - YMF278B_data_port_0_B_w(0, data); - break; - case 4: - YMF278B_control_port_0_C_w(0, data); - break; - case 5: - YMF278B_data_port_0_C_w(0, data); - break; - } -} - - -static struct YMF278B_interface ymf278b_interface = -{ - REGION_SOUND1, - ymf278b_interrupt -}; - - -/*************************************************************************** - - - Coin Lockout - - -***************************************************************************/ - -/* IT DOESN'T WORK PROPERLY */ - -WRITE16_HANDLER( metro_coin_lockout_1word_w ) -{ - if (ACCESSING_LSB) - { -// coin_lockout_w(0, data & 1); -// coin_lockout_w(1, data & 2); - } - if (data & ~3) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n",activecpu_get_pc(),data); -} - - -WRITE16_HANDLER( metro_coin_lockout_4words_w ) -{ -// coin_lockout_w( (offset >> 1) & 1, offset & 1 ); - if (data & ~1) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n",activecpu_get_pc(),data); -} - - - - -/*************************************************************************** - - - Banked ROM access - - -***************************************************************************/ - -/* - The main CPU has access to the ROMs that hold the graphics through - a banked window of 64k. Those ROMs also usually store the tables for - the virtual tiles set. The tile codes to be written to the tilemap - memory to render the backgrounds are also stored here, in a format - that the blitter can readily use (which is a form of compression) -*/ - -static UINT16 *metro_rombank; - -READ16_HANDLER( metro_bankedrom_r ) -{ - const int region = REGION_GFX1; - - UINT8 *ROM = memory_region( region ); - size_t len = memory_region_length( region ); - - offset = offset * 2 + 0x10000 * (*metro_rombank); - - if ( offset < len ) return ((ROM[offset+0]<<8)+ROM[offset+1])^0xffff; - else return 0xffff; -} - - - - -/*************************************************************************** - - - Blitter - - [ Registers ] - - Offset: Value: - - 0.l Destination Tilemap (1,2,3) - 4.l Blitter Data Address (byte offset into the gfx ROMs) - 8.l Destination Address << 7 (byte offset into the tilemap) - - The Blitter reads a byte and looks at the most significative - bits for the opcode, while the remaining bits define a value - (usually how many bytes to write). The opcode byte may be - followed by a number of other bytes: - - 76------ Opcode - --543210 N - (at most N+1 bytes follow) - - - The blitter is designed to write every other byte (e.g. it - writes a byte and skips the next). Hence 2 blits are needed - to fill a tilemap (first even, then odd addresses) - - [ Opcodes ] - - 0 Copy the following N+1 bytes. If the whole byte - is $00: stop and generate an IRQ - - 1 Fill N+1 bytes with a sequence, starting with - the value in the following byte - - 2 Fill N+1 bytes with the value in the following - byte - - 3 Skip N+1 bytes. If the whole byte is $C0: - skip to the next row of the tilemap (+0x200 bytes) - but preserve the column passed at the start of the - blit (destination address % 0x200) - - -***************************************************************************/ - -UINT16 *metro_blitter_regs; - -void metro_blit_done(int param) -{ - requested_int[blitter_bit] = 1; - update_irq_state(); -} - -INLINE int blt_read(const UINT8 *ROM, const int offs) -{ - return ROM[offs] ^ 0xff; -} - -INLINE void blt_write(const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask) -{ - switch( tmap ) - { - case 1: metro_vram_0_w(offs,data,mask); break; - case 2: metro_vram_1_w(offs,data,mask); break; - case 3: metro_vram_2_w(offs,data,mask); break; - } -// logerror("CPU #0 PC %06X : Blitter %X] %04X <- %04X & %04X\n",activecpu_get_pc(),tmap,offs,data,mask); -} - - -WRITE16_HANDLER( metro_blitter_w ) -{ - COMBINE_DATA( &metro_blitter_regs[offset] ); - - if (offset == 0xC/2) - { - const int region = REGION_GFX1; - - UINT8 *src = memory_region(region); - size_t src_len = memory_region_length(region); - - UINT32 tmap = (metro_blitter_regs[ 0x00 / 2 ] << 16 ) + - metro_blitter_regs[ 0x02 / 2 ]; - UINT32 src_offs = (metro_blitter_regs[ 0x04 / 2 ] << 16 ) + - metro_blitter_regs[ 0x06 / 2 ]; - UINT32 dst_offs = (metro_blitter_regs[ 0x08 / 2 ] << 16 ) + - metro_blitter_regs[ 0x0a / 2 ]; - - int shift = (dst_offs & 0x80) ? 0 : 8; - UINT16 mask = (dst_offs & 0x80) ? 0xff00 : 0x00ff; - -// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n",activecpu_get_pc(),tmap,src_offs,dst_offs); - - dst_offs >>= 7+1; - switch( tmap ) - { - case 1: - case 2: - case 3: - break; - default: - logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n",activecpu_get_pc(),tmap); - return; - } - - while (1) - { - UINT16 b1,b2,count; - - src_offs %= src_len; - b1 = blt_read(src,src_offs); -// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs); - src_offs++; - - count = ((~b1) & 0x3f) + 1; - - switch( (b1 & 0xc0) >> 6 ) - { - case 0: - - /* Stop and Generate an IRQ. We can't generate it now - both because it's unlikely that the blitter is so - fast and because some games (e.g. lastfort) need to - complete the blitter irq service routine before doing - another blit. */ - if (b1 == 0) - { - timer_set(TIME_IN_USEC(500),0,metro_blit_done); - return; - } - - /* Copy */ - while (count--) - { - src_offs %= src_len; - b2 = blt_read(src,src_offs) << shift; - src_offs++; - - dst_offs &= 0xffff; - blt_write(tmap,dst_offs,b2,mask); - dst_offs = ((dst_offs+1) & (0x100-1)) | (dst_offs & (~(0x100-1))); - } - break; - - - case 1: - - /* Fill with an increasing value */ - src_offs %= src_len; - b2 = blt_read(src,src_offs); - src_offs++; - - while (count--) - { - dst_offs &= 0xffff; - blt_write(tmap,dst_offs,b2<> (7+1)); - } - else - { - dst_offs += count; - } - break; - - - default: - logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n",activecpu_get_pc(),b1,src_offs-1); - return; - } - - } - } - -} - - -/*************************************************************************** - - - Memory Maps - - -***************************************************************************/ - -/* - Lines starting with an empty comment in the following MemoryReadAddress - arrays are there for debug (e.g. the game does not read from those ranges - AFAIK) -*/ - - -static ADDRESS_MAP_START( metro_snd_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) /* External ROM */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* External ROM (Banked) */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* External RAM */ - AM_RANGE(0xff00, 0xffff) AM_READ(MRA8_RAM) /* Internal RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metro_snd_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) /* External ROM */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_BANK1) /* External ROM (Banked) */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* External RAM */ - AM_RANGE(0xff00, 0xffff) AM_WRITE(MWA8_RAM) /* Internal RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metro_snd_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(metro_porta_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metro_snd_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_WRITE(metro_porta_w) - AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(metro_portb_w) - AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(metro_sound_rombank_w) -ADDRESS_MAP_END - -/*****************/ - -static ADDRESS_MAP_START( daitorid_snd_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) /* External ROM */ - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) /* External ROM (Banked) */ - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* External RAM */ - AM_RANGE(0xff00, 0xffff) AM_READ(MRA8_RAM) /* Internal RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( daitorid_snd_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) /* External ROM */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_BANK1) /* External ROM (Banked) */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* External RAM */ - AM_RANGE(0xff00, 0xffff) AM_WRITE(MWA8_RAM) /* Internal RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( daitorid_snd_readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(metro_porta_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( daitorid_snd_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_WRITE(metro_porta_w) - AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(daitorid_portb_w) - AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(daitorid_sound_rombank_w) -ADDRESS_MAP_END - -/*************************************************************************** - Bal Cube -***************************************************************************/ - -/* Really weird way of mapping 3 DSWs */ -static READ16_HANDLER( balcube_dsw_r ) -{ - UINT16 dsw1 = readinputport(2) >> 0; - UINT16 dsw2 = readinputport(2) >> 8; - UINT16 dsw3 = readinputport(3); - - switch (offset*2) - { - case 0x1FFFC: return ((dsw1 & 0x01) ? 0x40 : 0) | ((dsw3 & 0x01) ? 0x80 : 0); - case 0x1FFFA: return ((dsw1 & 0x02) ? 0x40 : 0) | ((dsw3 & 0x02) ? 0x80 : 0); - case 0x1FFF6: return ((dsw1 & 0x04) ? 0x40 : 0) | ((dsw3 & 0x04) ? 0x80 : 0); - case 0x1FFEE: return ((dsw1 & 0x08) ? 0x40 : 0) | ((dsw3 & 0x08) ? 0x80 : 0); - case 0x1FFDE: return ((dsw1 & 0x10) ? 0x40 : 0) | ((dsw3 & 0x10) ? 0x80 : 0); - case 0x1FFBE: return ((dsw1 & 0x20) ? 0x40 : 0) | ((dsw3 & 0x20) ? 0x80 : 0); - case 0x1FF7E: return ((dsw1 & 0x40) ? 0x40 : 0) | ((dsw3 & 0x40) ? 0x80 : 0); - case 0x1FEFE: return ((dsw1 & 0x80) ? 0x40 : 0) | ((dsw3 & 0x80) ? 0x80 : 0); - - case 0x1FDFE: return (dsw2 & 0x01) ? 0x40 : 0; - case 0x1FBFE: return (dsw2 & 0x02) ? 0x40 : 0; - case 0x1F7FE: return (dsw2 & 0x04) ? 0x40 : 0; - case 0x1EFFE: return (dsw2 & 0x08) ? 0x40 : 0; - case 0x1DFFE: return (dsw2 & 0x10) ? 0x40 : 0; - case 0x1BFFE: return (dsw2 & 0x20) ? 0x40 : 0; - case 0x17FFE: return (dsw2 & 0x40) ? 0x40 : 0; - case 0x0FFFE: return (dsw2 & 0x80) ? 0x40 : 0; - } - logerror("CPU #0 PC %06X : unknown dsw address read: %04X\n",activecpu_get_pc(),offset); - return 0xffff; -} - - -static ADDRESS_MAP_START( balcube_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x300000, 0x300001) AM_READ(ymf278b_r ) // Sound - AM_RANGE(0x400000, 0x41ffff) AM_READ(balcube_dsw_r ) // DSW x 3 - AM_RANGE(0x600000, 0x61ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x620000, 0x63ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x640000, 0x65ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x670000, 0x673fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x674000, 0x674fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x678000, 0x6787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x6788a2, 0x6788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x500000, 0x500001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x500002, 0x500003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x500006, 0x500007) AM_READ(MRA16_NOP ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( balcube_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x300000, 0x30000b) AM_WRITE(ymf278b_w ) // Sound - AM_RANGE(0x500002, 0x500009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout - AM_RANGE(0x670000, 0x673fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x674000, 0x674fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x600000, 0x61ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x620000, 0x63ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x640000, 0x65ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x678000, 0x6787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x678870, 0x67887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x678880, 0x678881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x678890, 0x678891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x6788a2, 0x6788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x6788a4, 0x6788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x6788aa, 0x6788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x6788ac, 0x6788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x679700, 0x679713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers -ADDRESS_MAP_END - - -/*************************************************************************** - Bang Bang Ball -***************************************************************************/ - -static ADDRESS_MAP_START( bangball_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0xf10000, 0xf10fff) AM_READ(MRA16_RAM ) // RAM (bug in the ram test routine) - AM_RANGE(0xb00000, 0xb00001) AM_READ(ymf278b_r ) // Sound - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(balcube_dsw_r ) // DSW x 3 - AM_RANGE(0xd00000, 0xd00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xd00002, 0xd00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xd00006, 0xd00007) AM_READ(MRA16_NOP ) // - AM_RANGE(0xe00000, 0xe1ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0xe20000, 0xe3ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0xe40000, 0xe5ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0xe70000, 0xe73fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xe74000, 0xe74fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xe78000, 0xe787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0xe788a2, 0xe788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bangball_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0xf10000, 0xf10fff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0xb00000, 0xb0000b) AM_WRITE(ymf278b_w ) // Sound - AM_RANGE(0xd00002, 0xd00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout - AM_RANGE(0xe00000, 0xe1ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0xe20000, 0xe3ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0xe40000, 0xe5ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0xe70000, 0xe73fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xe74000, 0xe74fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xe78000, 0xe787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0xe78860, 0xe7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0xe78870, 0xe7887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0xe78880, 0xe78881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xe78890, 0xe78891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xe788a2, 0xe788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0xe788a4, 0xe788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0xe788aa, 0xe788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0xe788ac, 0xe788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0xe79700, 0xe79713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers -ADDRESS_MAP_END - -/*************************************************************************** - Battle Bubble -***************************************************************************/ - -static ADDRESS_MAP_START( batlbubl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x120000, 0x13ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x140000, 0x15ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x170000, 0x173fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x174000, 0x174fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x178000, 0x1787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x1788a2, 0x1788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x200000, 0x200001) AM_READ(input_port_0_word_r ) - AM_RANGE(0x200002, 0x200003) AM_READ(input_port_1_word_r ) - AM_RANGE(0x200004, 0x200005) AM_READ(input_port_2_word_r ) - AM_RANGE(0x200006, 0x200007) AM_READ(input_port_3_word_r ) - AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r ) // read but ignored? - AM_RANGE(0x400000, 0x400001) AM_READ(ymf278b_r ) // Sound - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0xf10000, 0xf10fff) AM_READ(MRA16_RAM ) // RAM (bug in the ram test routine) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( batlbubl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x120000, 0x13ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x140000, 0x15ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x170000, 0x173fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x174000, 0x174fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x178000, 0x1787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x178860, 0x17886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x178870, 0x17887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x178880, 0x178881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x178890, 0x178891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x1788a2, 0x1788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x1788a4, 0x1788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x1788aa, 0x1788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x1788ac, 0x1788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x179700, 0x179713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout - AM_RANGE(0x400000, 0x40000b) AM_WRITE(ymf278b_w ) // Sound - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0xf10000, 0xf10fff) AM_WRITE(MWA16_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Dai Toride -***************************************************************************/ - -static ADDRESS_MAP_START( daitorid_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x470000, 0x473fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x4788a2, 0x4788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r) // Inputs - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xc00006, 0xc00007) AM_READ(input_port_3_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( daitorid_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x470000, 0x473fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x478870, 0x47887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x478880, 0x478881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x478890, 0x478891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x4788a2, 0x4788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x4788a4, 0x4788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x4788aa, 0x4788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x4788ac, 0x4788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x479700, 0x479713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Dharma Doujou -***************************************************************************/ - -static ADDRESS_MAP_START( dharma_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r) // Inputs - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xc00006, 0xc00007) AM_READ(input_port_3_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dharma_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x870000, 0x873fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x879700, 0x879713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Karate Tournament -***************************************************************************/ - -/* This game uses almost only the blitter to write to the tilemaps. - The CPU can only access a "window" of 512x256 pixels in the upper - left corner of the big tilemap */ - -#define KARATOUR_OFFS( _x_ ) ((_x_) & (0x3f)) + (((_x_) & ~(0x3f)) * (0x100 / 0x40)) - -#define KARATOUR_VRAM( _n_ ) \ -static READ16_HANDLER( karatour_vram_##_n_##_r ) \ -{ \ - return metro_vram_##_n_[KARATOUR_OFFS(offset)]; \ -} \ -static WRITE16_HANDLER( karatour_vram_##_n_##_w ) \ -{ \ - metro_vram_##_n_##_w(KARATOUR_OFFS(offset),data,mem_mask); \ -} - -KARATOUR_VRAM( 0 ) -KARATOUR_VRAM( 1 ) -KARATOUR_VRAM( 2 ) - -static ADDRESS_MAP_START( karatour_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_READ(metro_soundstatus_r ) // From Sound CPU - AM_RANGE(0x400002, 0x400003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x400004, 0x400005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x400006, 0x400007) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x40000a, 0x40000b) AM_READ(input_port_3_word_r ) // - AM_RANGE(0x40000c, 0x40000d) AM_READ(input_port_4_word_r ) // - AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x875000, 0x875fff) AM_READ(karatour_vram_0_r ) // Layer 0 (Part of) - AM_RANGE(0x876000, 0x876fff) AM_READ(karatour_vram_1_r ) // Layer 1 (Part of) - AM_RANGE(0x877000, 0x877fff) AM_READ(karatour_vram_2_r ) // Layer 2 (Part of) - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause -ADDRESS_MAP_END - -static ADDRESS_MAP_START( karatour_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w ) // Coin Lockout - AM_RANGE(0x870000, 0x873fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x875000, 0x875fff) AM_WRITE(karatour_vram_0_w ) // Layer 0 (Part of) - AM_RANGE(0x876000, 0x876fff) AM_WRITE(karatour_vram_1_w ) // Layer 1 (Part of) - AM_RANGE(0x877000, 0x877fff) AM_WRITE(karatour_vram_2_w ) // Layer 2 (Part of) - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x878800, 0x878813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control -ADDRESS_MAP_END - - -/*************************************************************************** - Sankokushi -***************************************************************************/ - -/* same limited tilemap access as karatour */ - -static ADDRESS_MAP_START( kokushi_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x7fc000, 0x7fffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x875000, 0x875fff) AM_READ(karatour_vram_0_r ) // Layer 0 (Part of) - AM_RANGE(0x876000, 0x876fff) AM_READ(karatour_vram_1_r ) // Layer 1 (Part of) - AM_RANGE(0x877000, 0x877fff) AM_READ(karatour_vram_2_r ) // Layer 2 (Part of) - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc00001) AM_READ(daitorid_soundstatus_r) // From Sound CPU - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r ) // Inputs - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_2_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kokushi_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x7fc000, 0x7fffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x870000, 0x873fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x875000, 0x875fff) AM_WRITE(karatour_vram_0_w ) // Layer 0 (Part of) - AM_RANGE(0x876000, 0x876fff) AM_WRITE(karatour_vram_1_w ) // Layer 1 (Part of) - AM_RANGE(0x877000, 0x877fff) AM_WRITE(karatour_vram_2_w ) // Layer 2 (Part of) - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - WRONG -// AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x879700, 0x879713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - - -/*************************************************************************** - Last Fortress -***************************************************************************/ - -static ADDRESS_MAP_START( lastfort_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc00001) AM_READ(metro_soundstatus_r ) // From Sound CPU - AM_RANGE(0xc00002, 0xc00003) AM_READ(MRA16_NOP ) // - AM_RANGE(0xc00004, 0xc00005) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xc00006, 0xc00007) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xc00008, 0xc00009) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xc0000a, 0xc0000b) AM_READ(input_port_3_word_r ) // - AM_RANGE(0xc0000c, 0xc0000d) AM_READ(input_port_4_word_r ) // - AM_RANGE(0xc0000e, 0xc0000f) AM_READ(input_port_5_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lastfort_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x870000, 0x873fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x878800, 0x878813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0xc00002, 0xc00003) AM_WRITE(metro_coin_lockout_1word_w ) // Coin Lockout -ADDRESS_MAP_END - -/* the German version is halfway between lastfort and ladykill (karatour) memory maps */ - -/* todo: clean up input reads etc. */ -static ADDRESS_MAP_START( lastforg_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x400001) AM_READ(metro_soundstatus_r ) // From Sound CPU - AM_RANGE(0x400002, 0x400003) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x400004, 0x400005) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x400006, 0x400007) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x40000a, 0x40000b) AM_READ(input_port_3_word_r ) // - AM_RANGE(0x40000c, 0x40000d) AM_READ(input_port_4_word_r ) // - AM_RANGE(0x880000, 0x89ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x8a0000, 0x8bffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x8c0000, 0x8dffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x8f0000, 0x8f3fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x8f4000, 0x8f4fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x8f8000, 0x8f87ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8f88a2, 0x8f88a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( lastforg_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w ) // Coin Lockout - AM_RANGE(0x880000, 0x89ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x8a0000, 0x8bffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x8c0000, 0x8dffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x8f0000, 0x8f3fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x8f4000, 0x8f4fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x8f8000, 0x8f87ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x8f8800, 0x8f8813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x8f8840, 0x8f884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x8f8860, 0x8f886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x8f8870, 0x8f887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x8f8880, 0x8f8881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8f8890, 0x8f8891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8f88a2, 0x8f88a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8f88a4, 0x8f88a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8f88aa, 0x8f88ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8f88ac, 0x8f88ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Mahjong Gakuensai -***************************************************************************/ - -static int gakusai_oki_bank_lo, gakusai_oki_bank_hi; - -void gakusai_oki_bank_set(void) -{ - int bank = (gakusai_oki_bank_lo & 7) + (gakusai_oki_bank_hi & 1) * 8; - OKIM6295_set_bank_base(0, bank * 0x40000); -} - -static WRITE16_HANDLER( gakusai_oki_bank_hi_w ) -{ - if (ACCESSING_LSB) - { - gakusai_oki_bank_hi = data & 0xff; - gakusai_oki_bank_set(); - } -} - -static WRITE16_HANDLER( gakusai_oki_bank_lo_w ) -{ - if (ACCESSING_LSB) - { - gakusai_oki_bank_lo = data & 0xff; - gakusai_oki_bank_set(); - } -} - -static UINT16 *gakusai_input_sel; - -static READ16_HANDLER( gakusai_input_r ) -{ - UINT16 input_sel = (*gakusai_input_sel) ^ 0x3e; - // Bit 0 ?? - if (input_sel & 0x0002) return readinputport(0); - if (input_sel & 0x0004) return readinputport(1); - if (input_sel & 0x0008) return readinputport(2); - if (input_sel & 0x0010) return readinputport(3); - if (input_sel & 0x0020) return readinputport(4); - return 0xffff; -} - -READ16_HANDLER( gakusai_eeprom_r ) -{ - return EEPROM_read_bit() & 1; -} - -WRITE16_HANDLER( gakusai_eeprom_w ) -{ - if (ACCESSING_LSB) - { - // latch the bit - EEPROM_write_bit(data & 0x01); - - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE ); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); - } -} - -static ADDRESS_MAP_START( gakusai_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x200000, 0x21ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x270000, 0x273fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x278832, 0x278833) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r ) // Inputs - AM_RANGE(0x278882, 0x278883) AM_READ(input_port_5_word_r ) // - AM_RANGE(0x27880e, 0x27880f) AM_READ(MRA16_RAM ) // Screen Control - AM_RANGE(0x700000, 0x700001) AM_READ(OKIM6295_status_0_lsb_r ) // Sound - AM_RANGE(0xc00000, 0xc00001) AM_READ(gakusai_eeprom_r ) // EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gakusai_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x200000, 0x21ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x270000, 0x273fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x27880e, 0x27880f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x278810, 0x27881f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_levels ) // IRQ Levels - AM_RANGE(0x278820, 0x27882f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_vectors ) // IRQ Vectors - AM_RANGE(0x278830, 0x278831) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x278832, 0x278833) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x278850, 0x27885b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x278870, 0x278871) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x278888, 0x278889) AM_WRITE(MWA16_RAM) AM_BASE(&gakusai_input_sel ) // Inputs - AM_RANGE(0x279700, 0x279713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x400000, 0x400001) AM_WRITE(MWA16_NOP ) // ? 5 - AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w ) // Sound - AM_RANGE(0x600000, 0x600001) AM_WRITE(YM2413_register_port_0_lsb_w ) - AM_RANGE(0x600002, 0x600003) AM_WRITE(YM2413_data_port_0_lsb_w ) - AM_RANGE(0x700000, 0x700001) AM_WRITE(OKIM6295_data_0_lsb_w ) - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(gakusai_eeprom_w ) // EEPROM - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(gakusai_oki_bank_hi_w ) -ADDRESS_MAP_END - - -/*************************************************************************** - Mahjong Gakuensai 2 -***************************************************************************/ - -static ADDRESS_MAP_START( gakusai2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x600000, 0x61ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x620000, 0x63ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x640000, 0x65ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x670000, 0x673fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x674000, 0x674fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x675000, 0x675fff) AM_READ(MRA16_RAM ) // Sprites? - AM_RANGE(0x678000, 0x6787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x678832, 0x678833) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x678880, 0x678881) AM_READ(gakusai_input_r ) // Inputs - AM_RANGE(0x678882, 0x678883) AM_READ(input_port_5_word_r ) // - AM_RANGE(0x67880e, 0x67880f) AM_READ(MRA16_RAM ) // Screen Control - AM_RANGE(0xb00000, 0xb00001) AM_READ(OKIM6295_status_0_lsb_r ) // Sound - AM_RANGE(0xe00000, 0xe00001) AM_READ(gakusai_eeprom_r ) // EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gakusai2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x600000, 0x61ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x620000, 0x63ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x640000, 0x65ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x670000, 0x673fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x674000, 0x674fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x675000, 0x675fff) AM_WRITE(MWA16_RAM ) // Sprites? - AM_RANGE(0x678000, 0x6787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x67880e, 0x67880f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x678810, 0x67881f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_levels ) // IRQ Levels - AM_RANGE(0x678820, 0x67882f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_vectors ) // IRQ Vectors - AM_RANGE(0x678830, 0x678831) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x678832, 0x678833) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x678836, 0x678837) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x678850, 0x67885b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x678870, 0x678871) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x678888, 0x678889) AM_WRITE(MWA16_RAM) AM_BASE(&gakusai_input_sel ) // Inputs - AM_RANGE(0x679700, 0x679713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x800000, 0x800001) AM_WRITE(MWA16_NOP ) // ? 5 - AM_RANGE(0x900000, 0x900001) AM_WRITE(gakusai_oki_bank_lo_w ) // Sound - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w ) - AM_RANGE(0xb00000, 0xb00001) AM_WRITE(OKIM6295_data_0_lsb_w ) - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(YM2413_register_port_0_lsb_w ) - AM_RANGE(0xc00002, 0xc00003) AM_WRITE(YM2413_data_port_0_lsb_w ) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(gakusai_eeprom_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Mahjong Doukyuusei Special -***************************************************************************/ - -READ16_HANDLER( dokyusp_eeprom_r ) -{ - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line(CLEAR_LINE); - EEPROM_set_clock_line(ASSERT_LINE); - - return EEPROM_read_bit() & 1; -} - -WRITE16_HANDLER( dokyusp_eeprom_bit_w ) -{ - if (ACCESSING_LSB) - { - // latch the bit - EEPROM_write_bit(data & 0x01); - - // clock line asserted: write latch or select next bit to read - EEPROM_set_clock_line(CLEAR_LINE); - EEPROM_set_clock_line(ASSERT_LINE); - } -} - -WRITE16_HANDLER( dokyusp_eeprom_reset_w ) -{ - if (ACCESSING_LSB) - { - // reset line asserted: reset. - EEPROM_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - } -} - -static ADDRESS_MAP_START( dokyusp_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x200000, 0x21ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x270000, 0x273fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x278832, 0x278833) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r ) // Inputs - AM_RANGE(0x278882, 0x278883) AM_READ(input_port_5_word_r ) // - AM_RANGE(0x27880e, 0x27880f) AM_READ(MRA16_RAM ) // Screen Control - AM_RANGE(0x700000, 0x700001) AM_READ(OKIM6295_status_0_lsb_r ) // Sound - AM_RANGE(0xd00000, 0xd00001) AM_READ(dokyusp_eeprom_r ) // EEPROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dokyusp_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x200000, 0x21ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x270000, 0x273fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x27880e, 0x27880f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x278810, 0x27881f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_levels ) // IRQ Levels - AM_RANGE(0x278820, 0x27882f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_vectors ) // IRQ Vectors - AM_RANGE(0x278830, 0x278831) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x278832, 0x278833) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x278850, 0x27885b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x278870, 0x278871) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x278888, 0x278889) AM_WRITE(MWA16_RAM) AM_BASE(&gakusai_input_sel ) // Inputs - AM_RANGE(0x279700, 0x279713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x400000, 0x400001) AM_WRITE(MWA16_NOP ) // ? 5 - AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w ) // Sound - AM_RANGE(0x600000, 0x600001) AM_WRITE(YM2413_register_port_0_lsb_w ) - AM_RANGE(0x600002, 0x600003) AM_WRITE(YM2413_data_port_0_lsb_w ) - AM_RANGE(0x700000, 0x700001) AM_WRITE(OKIM6295_data_0_lsb_w ) - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w ) // EEPROM - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(dokyusp_eeprom_bit_w ) // EEPROM -ADDRESS_MAP_END - - -/*************************************************************************** - Mahjong Doukyuusei -***************************************************************************/ - -static ADDRESS_MAP_START( dokyusei_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x470000, 0x473fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_READ(MRA16_RAM ) // Tiles Set -// AM_RANGE(0x478832, 0x478833) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x478880, 0x478881) AM_READ(gakusai_input_r ) // Inputs - AM_RANGE(0x478882, 0x478883) AM_READ(input_port_5_word_r ) // - AM_RANGE(0x478884, 0x478885) AM_READ(input_port_6_word_r ) // 2 x DSW - AM_RANGE(0x478886, 0x478887) AM_READ(input_port_7_word_r ) // - AM_RANGE(0xd00000, 0xd00001) AM_READ(OKIM6295_status_0_lsb_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dokyusei_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x460000, 0x46ffff) AM_WRITE(MWA16_NOP ) // DSW Selection - AM_RANGE(0x470000, 0x473fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x47880e, 0x47880f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x478810, 0x47881f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_levels ) // IRQ Levels - AM_RANGE(0x478820, 0x47882f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_vectors ) // IRQ Vectors - AM_RANGE(0x478830, 0x478831) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x478832, 0x478833) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x478836, 0x478837) AM_WRITE(MWA16_NOP ) // ? watchdog ? - AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x478850, 0x47885b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x478870, 0x478871) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x479700, 0x479713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x478888, 0x478889) AM_WRITE(MWA16_RAM) AM_BASE(&gakusai_input_sel ) // Inputs - AM_RANGE(0x800000, 0x800001) AM_WRITE(gakusai_oki_bank_hi_w ) // Samples Bank? - AM_RANGE(0x900000, 0x900001) AM_WRITE(MWA16_NOP ) // ? 4 - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_lo_w ) // Samples Bank - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(YM2413_register_port_0_lsb_w ) // Sound - AM_RANGE(0xc00002, 0xc00003) AM_WRITE(YM2413_data_port_0_lsb_w ) // - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(OKIM6295_data_0_lsb_w ) // -ADDRESS_MAP_END - - -/*************************************************************************** - Pang Poms -***************************************************************************/ - -static ADDRESS_MAP_START( pangpoms_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x470000, 0x473fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x4788a2, 0x4788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x800000, 0x800001) AM_READ(metro_soundstatus_r ) // From Sound CPU - AM_RANGE(0x800002, 0x800003) AM_READ(MRA16_NOP ) // - AM_RANGE(0x800004, 0x800005) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x800006, 0x800007) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x800008, 0x800009) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x80000a, 0x80000b) AM_READ(input_port_3_word_r ) // - AM_RANGE(0x80000c, 0x80000d) AM_READ(input_port_4_word_r ) // - AM_RANGE(0x80000e, 0x80000f) AM_READ(input_port_5_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pangpoms_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x470000, 0x473fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x478800, 0x478813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x478870, 0x47887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x478880, 0x478881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x478890, 0x478891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x4788a2, 0x4788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x4788a4, 0x4788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x4788aa, 0x4788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x4788ac, 0x4788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x800000, 0x800001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x800002, 0x800003) AM_WRITE(metro_coin_lockout_1word_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Poitto! -***************************************************************************/ - -static ADDRESS_MAP_START( poitto_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0xc70000, 0xc73fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0xc788a2, 0xc788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x800000, 0x800001) AM_READ(daitorid_soundstatus_r) // Inputs - AM_RANGE(0x800002, 0x800003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x800004, 0x800005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x800006, 0x800007) AM_READ(input_port_3_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( poitto_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0xc00000, 0xc1ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0xc70000, 0xc73fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0xc78800, 0xc78813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0xc78870, 0xc7887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0xc78880, 0xc78881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc78890, 0xc78891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc788a2, 0xc788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0xc788a4, 0xc788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0xc788aa, 0xc788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0xc788ac, 0xc788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x800000, 0x800001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Sky Alert -***************************************************************************/ - -static ADDRESS_MAP_START( skyalert_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x870000, 0x873fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x8788a2, 0x8788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x400000, 0x400001) AM_READ(metro_soundstatus_r ) // From Sound CPU - AM_RANGE(0x400002, 0x400003) AM_READ(MRA16_NOP ) // - AM_RANGE(0x400004, 0x400005) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x400006, 0x400007) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x400008, 0x400009) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x40000a, 0x40000b) AM_READ(input_port_3_word_r ) // - AM_RANGE(0x40000c, 0x40000d) AM_READ(input_port_4_word_r ) // - AM_RANGE(0x40000e, 0x40000f) AM_READ(input_port_5_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( skyalert_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x800000, 0x81ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x820000, 0x83ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x840000, 0x85ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x870000, 0x873fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x874000, 0x874fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x878000, 0x8787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x878800, 0x878813) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x878870, 0x87887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x878880, 0x878881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x878890, 0x878891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x8788a2, 0x8788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x8788a4, 0x8788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0x8788aa, 0x8788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x8788ac, 0x8788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Pururun -***************************************************************************/ - -static ADDRESS_MAP_START( pururun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0xc70000, 0xc73fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0xc788a2, 0xc788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x400000, 0x400001) AM_READ(daitorid_soundstatus_r) // Inputs - AM_RANGE(0x400002, 0x400003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x400004, 0x400005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x400006, 0x400007) AM_READ(input_port_3_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pururun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0xc00000, 0xc1ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0xc70000, 0xc73fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0xc78870, 0xc7887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0xc78880, 0xc78881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc78890, 0xc78891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc788a2, 0xc788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0xc788a4, 0xc788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0xc788aa, 0xc788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0xc788ac, 0xc788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0xc79700, 0xc79713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x400000, 0x400001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x400002, 0x400009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Toride II Adauchi Gaiden -***************************************************************************/ - -static ADDRESS_MAP_START( toride2g_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0x400000, 0x4cffff) AM_READ(MRA16_RAM ) // RAM (4xc000-4xffff mirrored?) - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0xc70000, 0xc73fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0xc788a2, 0xc788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x800000, 0x800001) AM_READ(daitorid_soundstatus_r) // Inputs - AM_RANGE(0x800002, 0x800003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x800004, 0x800005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x800006, 0x800007) AM_READ(input_port_3_word_r ) // -ADDRESS_MAP_END - -static ADDRESS_MAP_START( toride2g_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x400000, 0x4cffff) AM_WRITE(MWA16_RAM ) // RAM (4xc000-4xffff mirrored?) - AM_RANGE(0xc00000, 0xc1ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0xc20000, 0xc3ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0xc40000, 0xc5ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0xc70000, 0xc73fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc74000, 0xc74fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc78000, 0xc787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0xc78870, 0xc7887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0xc78880, 0xc78881) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc78890, 0xc78891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0xc788a2, 0xc788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0xc788a4, 0xc788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w ) // To Sound CPU - AM_RANGE(0xc788aa, 0xc788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0xc788ac, 0xc788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0xc79700, 0xc79713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x800000, 0x800001) AM_WRITE(metro_soundstatus_w ) // To Sound CPU - AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -ADDRESS_MAP_END - - -/*************************************************************************** - Blazing Tornado -***************************************************************************/ - -static WRITE16_HANDLER( blzntrnd_sound_w ) -{ - soundlatch_w(offset, data>>8); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static WRITE8_HANDLER( blzntrnd_sh_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU2); - int bankaddress; - - bankaddress = 0x10000 + (data & 0x03) * 0x4000; - memory_set_bankptr(1, &RAM[bankaddress]); -} - -static void blzntrnd_irqhandler(int irq) -{ - cpunum_set_input_line(1, 0, irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface blzntrnd_ym2610_interface = -{ - blzntrnd_irqhandler, - REGION_SOUND1, - REGION_SOUND2 -}; - -static ADDRESS_MAP_START( blzntrnd_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blzntrnd_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blzntrnd_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x40, 0x40) AM_READ(soundlatch_r) - AM_RANGE(0x80, 0x80) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x82, 0x82) AM_READ(YM2610_status_port_0_B_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blzntrnd_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w) - AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) - AM_RANGE(0x80, 0x80) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0x81, 0x81) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0x82, 0x82) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0x83, 0x83) AM_WRITE(YM2610_data_port_0_B_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blzntrnd_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM -// AM_RANGE(0x300000, 0x300001) AM_READ(MRA16_NOP ) // Sound - AM_RANGE(0x200000, 0x21ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r ) // Banked ROM - AM_RANGE(0x270000, 0x273fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x2788a2, 0x2788a3) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0xe00000, 0xe00001) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0xe00002, 0xe00003) AM_READ(input_port_1_word_r ) // - AM_RANGE(0xe00004, 0xe00005) AM_READ(input_port_2_word_r ) // - AM_RANGE(0xe00006, 0xe00007) AM_READ(input_port_3_word_r ) // - AM_RANGE(0xe00008, 0xe00009) AM_READ(input_port_4_word_r ) // - AM_RANGE(0x400000, 0x43ffff) AM_READ(MRA16_RAM ) // 053936 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blzntrnd_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0x200000, 0x21ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x220000, 0x23ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x240000, 0x25ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x260000, 0x26ffff) AM_WRITE(MWA16_NOP ) // ?????? - AM_RANGE(0x270000, 0x273fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x274000, 0x274fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x278000, 0x2787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x278870, 0x27887b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll - AM_RANGE(0x278890, 0x278891) AM_WRITE(MWA16_NOP ) // ? increasing - AM_RANGE(0x2788a2, 0x2788a3) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x2788a4, 0x2788a5) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x2788aa, 0x2788ab) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x2788ac, 0x2788ad) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x279700, 0x279713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0x400000, 0x43ffff) AM_WRITE(metro_K053936_w) AM_BASE(&metro_K053936_ram ) // 053936 - AM_RANGE(0x500000, 0x500fff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) // 053936 line control - AM_RANGE(0x600000, 0x60001f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl ) // 053936 control - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP) - AM_RANGE(0xe00002, 0xe00003) AM_WRITE(blzntrnd_sound_w) - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Mouja -***************************************************************************/ - -static WRITE16_HANDLER( mouja_sound_rombank_w ) -{ - if (ACCESSING_LSB) - OKIM6295_set_bank_base(0, ((data >> 3) & 0x07) * 0x40000); -} - -static ADDRESS_MAP_START( mouja_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(MRA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_READ(MRA16_RAM ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_READ(MRA16_RAM ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_READ(MRA16_RAM ) // Layer 2 - AM_RANGE(0x470000, 0x473fff) AM_READ(MRA16_RAM ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_READ(MRA16_RAM ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_READ(MRA16_RAM ) // Tiles Set - AM_RANGE(0x478832, 0x478833) AM_READ(metro_irq_cause_r ) // IRQ Cause - AM_RANGE(0x478880, 0x478881) AM_READ(input_port_0_word_r ) // Inputs - AM_RANGE(0x478882, 0x478883) AM_READ(input_port_1_word_r ) // - AM_RANGE(0x478884, 0x478885) AM_READ(input_port_2_word_r ) // - AM_RANGE(0x478886, 0x478887) AM_READ(input_port_3_word_r ) // - AM_RANGE(0xd00000, 0xd00001) AM_READ(OKIM6295_status_0_lsb_r) -#if 0 - AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r ) // Banked ROM -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mouja_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(MWA16_RAM ) // RAM - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(metro_vram_0_w) AM_BASE(&metro_vram_0 ) // Layer 0 - AM_RANGE(0x420000, 0x43ffff) AM_WRITE(metro_vram_1_w) AM_BASE(&metro_vram_1 ) // Layer 1 - AM_RANGE(0x440000, 0x45ffff) AM_WRITE(metro_vram_2_w) AM_BASE(&metro_vram_2 ) // Layer 2 - AM_RANGE(0x470000, 0x473fff) AM_WRITE(metro_paletteram_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x474000, 0x474fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x478000, 0x4787ff) AM_WRITE(MWA16_RAM) AM_BASE(&metro_tiletable) AM_SIZE(&metro_tiletable_size ) // Tiles Set - AM_RANGE(0x47880e, 0x47880f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_screenctrl ) // Screen Control - AM_RANGE(0x478810, 0x47881f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_levels ) // IRQ Levels - AM_RANGE(0x478820, 0x47882f) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_vectors ) // IRQ Vectors - AM_RANGE(0x478830, 0x478831) AM_WRITE(MWA16_RAM) AM_BASE(&metro_irq_enable ) // IRQ Enable - AM_RANGE(0x478832, 0x478833) AM_WRITE(metro_irq_cause_w ) // IRQ Acknowledge - AM_RANGE(0x478834, 0x478835) AM_WRITE(mouja_irq_timer_ctrl_w ) // IRQ set timer count - AM_RANGE(0x478836, 0x478837) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window ) // Tilemap Window - AM_RANGE(0x478850, 0x47885b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_scroll ) // Scroll Regs - AM_RANGE(0x478888, 0x478889) AM_WRITE(MWA16_NOP) // ?? - AM_RANGE(0x479700, 0x479713) AM_WRITE(MWA16_RAM) AM_BASE(&metro_videoregs ) // Video Registers - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(YM2413_register_port_0_lsb_w ) - AM_RANGE(0xc00002, 0xc00003) AM_WRITE(YM2413_data_port_0_lsb_w ) - AM_RANGE(0x800000, 0x800001) AM_WRITE(mouja_sound_rombank_w ) - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(OKIM6295_data_0_msb_w ) - -#if 0 - AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(&metro_blitter_regs ) // Tiles Blitter - AM_RANGE(0x47883a, 0x47883b) AM_WRITE(MWA16_RAM) AM_BASE(&metro_rombank ) // Rom Bank - AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout -#endif -ADDRESS_MAP_END - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - - -#define JOY_LSB(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - - -#define JOY_MSB(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - - -#define COINS \ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) \ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) \ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN ) \ - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* From Sound CPU in some games */ - - -#define COINAGE_DSW \ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) \ - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) \ - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) \ - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) \ - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - - - -/*************************************************************************** - Bal Cube -***************************************************************************/ - -INPUT_PORTS_START( balcube ) - PORT_START_TAG("IN0") // $500000 - COINS - - PORT_START_TAG("IN1") // $500002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN2") // Strangely mapped in the 0x400000-0x41ffff range - COINAGE_DSW - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0400, 0x0400, "2 Players Game" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPSETTING( 0x0400, "2 Credits" ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0800, "2" ) - PORT_DIPSETTING( 0x0000, "3" ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // Strangely mapped in the 0x400000-0x41ffff range - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused -INPUT_PORTS_END - - -/*************************************************************************** - Bang Bang Ball -***************************************************************************/ - -INPUT_PORTS_START( bangball ) - PORT_START_TAG("IN0") // $d00000 - COINS - - PORT_START_TAG("IN1") // $d00002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN2") // Strangely mapped in the 0xc00000-0xc1ffff range - COINAGE_DSW - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0800, "2" ) - PORT_DIPSETTING( 0x0400, "3" ) - PORT_DIPSETTING( 0x0c00, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( English ) ) - - PORT_START_TAG("IN3") // Strangely mapped in the 0xc00000-0xc1ffff range - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // used for debug -INPUT_PORTS_END - -/*************************************************************************** - Battle Bubble -***************************************************************************/ - -INPUT_PORTS_START( batlbubl ) - PORT_START_TAG("IN0") - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN2") // Strangely mapped in the 0xc00000-0xc1ffff range - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0008, "2" ) - PORT_DIPSETTING( 0x0004, "3" ) - PORT_DIPSETTING( 0x000c, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x8000, IP_ACTIVE_LOW ) - - PORT_START_TAG("IN0") // $d00000 - COINS - - PORT_START_TAG("IN3") // Strangely mapped in the 0xc00000-0xc1ffff range - PORT_DIPNAME( 0x0001, 0x0001, "0" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Debug Mode?" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -/*************************************************************************** - Blazing Tornado -***************************************************************************/ - -INPUT_PORTS_START( blzntrnd ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x0007, 0x0004, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0007, "Beginner" ) - PORT_DIPSETTING( 0x0006, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x0001, "Expert" ) - PORT_DIPSETTING( 0x0000, "Master" ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x00c0, 0x0000, "Control Panel" ) - PORT_DIPSETTING( 0x0000, "4 Players" ) -// PORT_DIPSETTING( 0x0040, "4 Players" ) - PORT_DIPSETTING( 0x0080, "1P & 2P Tag only" ) - PORT_DIPSETTING( 0x00c0, "1P & 2P vs only" ) - PORT_DIPNAME( 0x0300, 0x0300, "Half Continue" ) - PORT_DIPSETTING( 0x0000, "6C to start, 3C to continue" ) - PORT_DIPSETTING( 0x0100, "4C to start, 2C to continue" ) - PORT_DIPSETTING( 0x0200, "2C to start, 1C to continue" ) - PORT_DIPSETTING( 0x0300, "Disabled" ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE_NO_TOGGLE(0x0080, IP_ACTIVE_LOW) - PORT_DIPNAME( 0x0300, 0x0300, "CP Single" ) - PORT_DIPSETTING( 0x0300, "2:00" ) - PORT_DIPSETTING( 0x0200, "2:30" ) - PORT_DIPSETTING( 0x0100, "3:00" ) - PORT_DIPSETTING( 0x0000, "3:30" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "CP Tag" ) - PORT_DIPSETTING( 0x0c00, "2:00" ) - PORT_DIPSETTING( 0x0800, "2:30" ) - PORT_DIPSETTING( 0x0400, "3:00" ) - PORT_DIPSETTING( 0x0000, "3:30" ) - PORT_DIPNAME( 0x3000, 0x3000, "Vs Single" ) - PORT_DIPSETTING( 0x3000, "2:30" ) - PORT_DIPSETTING( 0x2000, "3:00" ) - PORT_DIPSETTING( 0x1000, "4:00" ) - PORT_DIPSETTING( 0x0000, "5:00" ) - PORT_DIPNAME( 0xc000, 0xc000, "Vs Tag" ) - PORT_DIPSETTING( 0xc000, "2:30" ) - PORT_DIPSETTING( 0x8000, "3:00" ) - PORT_DIPSETTING( 0x4000, "4:00" ) - PORT_DIPSETTING( 0x0000, "5:00" ) - - PORT_START_TAG("IN2") - JOY_LSB(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - JOY_MSB(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START_TAG("IN3") - JOY_LSB(3, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - JOY_MSB(4, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START_TAG("IN4") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x0002, IP_ACTIVE_LOW) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - - -/*************************************************************************** - Grand Striker 2 -***************************************************************************/ - -INPUT_PORTS_START( gstrik2 ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x0003, 0x0003, "Player Vs Com" ) - PORT_DIPSETTING( 0x0003, "1:00" ) - PORT_DIPSETTING( 0x0002, "1:30" ) - PORT_DIPSETTING( 0x0001, "2:00" ) - PORT_DIPSETTING( 0x0000, "2:30" ) - PORT_DIPNAME( 0x000c, 0x000c, "1P Vs 2P" ) - PORT_DIPSETTING( 0x000c, "0:45" ) - PORT_DIPSETTING( 0x0008, "1:00" ) - PORT_DIPSETTING( 0x0004, "1:30" ) - PORT_DIPSETTING( 0x0000, "2:00" ) - PORT_DIPNAME( 0x0030, 0x0030, "Extra Time" ) - PORT_DIPSETTING( 0x0030, "0:30" ) - PORT_DIPSETTING( 0x0020, "0:45" ) - PORT_DIPSETTING( 0x0010, "1:00" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Extra Time" ) - PORT_DIPSETTING( 0x0080, "Sudden Death" ) - PORT_DIPSETTING( 0x0000, "Full" ) - PORT_DIPNAME( 0x0700, 0x0400, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0x0600, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE_NO_TOGGLE(0x8000, IP_ACTIVE_LOW) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x001f, 0x001f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x001d, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 4C_2C ) ) - PORT_DIPSETTING( 0x001e, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0019, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_4C ) ) - PORT_DIPSETTING( 0x0015, DEF_STR( 3C_3C ) ) - PORT_DIPSETTING( 0x001a, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x001f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x0011, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0008, "4 Coins/6 Credits" ) - PORT_DIPSETTING( 0x0016, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x000d, "3 Coins/5 Credits" ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_7C ) ) - PORT_DIPSETTING( 0x0000, "4 Coins/8 Credits" ) - PORT_DIPSETTING( 0x0009, "3 Coins/6 Credits" ) - PORT_DIPSETTING( 0x0012, DEF_STR( 2C_4C ) ) - PORT_DIPSETTING( 0x001b, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, "3 Coins/7 Credits" ) - PORT_DIPSETTING( 0x000e, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0001, "3 Coins/8 Credits" ) - PORT_DIPSETTING( 0x000a, DEF_STR( 2C_6C ) ) - PORT_DIPSETTING( 0x0017, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_7C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 2C_8C ) ) - PORT_DIPSETTING( 0x0013, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x000f, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x000b, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0x00e0, 0x0000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00e0, "Same as Coin A" ) - PORT_DIPNAME( 0x0300, 0x0300, "Credits to Start" ) - PORT_DIPSETTING( 0x0300, "1" ) - PORT_DIPSETTING( 0x0200, "2" ) - PORT_DIPSETTING( 0x0100, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Credits to Continue" ) - PORT_DIPSETTING( 0x0c00, "1" ) - PORT_DIPSETTING( 0x0800, "2" ) - PORT_DIPSETTING( 0x0400, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x1000, 0x1000, "Continue" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Playmode" ) - PORT_DIPSETTING( 0x4000, "1 Credit for 1 Player" ) - PORT_DIPSETTING( 0x0000, "1 Credit for 2 Players" ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN2") - JOY_LSB(1, BUTTON1, BUTTON2, BUTTON3, UNUSED) - JOY_MSB(2, BUTTON1, BUTTON2, BUTTON3, UNUSED) - - PORT_START_TAG("IN3") - /* Not Used */ - - PORT_START_TAG("IN4") - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x0002, IP_ACTIVE_LOW ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -/*************************************************************************** - Dai Toride -***************************************************************************/ - -/* If only ONE of the "Coinage" is set to "Free Play", it is in fact "5C_1C". - - IN2 bits 12 and 13 are in fact "merged" : - - 12 13 effect - Off Off Continue, Retry level - On Off Continue, Ask player for retry - Off On No continue - On On Continue, Retry level - -*/ -INPUT_PORTS_START( daitorid ) - PORT_START_TAG("IN0") // $c00000 - COINS - - PORT_START_TAG("IN1") // $c00002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") // $c00004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, "Timer Speed" ) - PORT_DIPSETTING( 0x0200, "Slower" ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, "Fast" ) - PORT_DIPSETTING( 0x0000, "Fastest" ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, "Winning Rounds (Player VS Player)" ) - PORT_DIPSETTING( 0x0000, "1/1" ) - PORT_DIPSETTING( 0x0800, "2/3" ) - PORT_DIPNAME( 0x1000, 0x0000, "Retry Level On Continue" ) - PORT_DIPSETTING( 0x0000, "Ask Player" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // $c00006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Dharma Doujou -***************************************************************************/ - -/* I don't really know HOW to describe the effect of IN2 bits 8 and 9. - All I can tell is that in "table 2" the values are smaller for the 2 - first levels (so the game is harder), but they vary less between the - levels (so there is almost no increasing difficulty). - - Even if there are 4 "tables" the 2 first ones and the 2 last ones - contains the same values for the timer. */ -INPUT_PORTS_START( dharma ) - PORT_START_TAG("IN0") //$c00000 - COINS - - PORT_START_TAG("IN1") //$c00002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$c00004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, "Time" ) // Check code at 0x00da0a and see notes - PORT_DIPSETTING( 0x0000, "Table 1" ) // Table offset : 0x00e668 -// PORT_DIPSETTING( 0x0100, "Table 1" ) // Table offset : 0x00e6c0 -// PORT_DIPSETTING( 0x0200, "Table 2" ) // Table offset : 0x00e718 - PORT_DIPSETTING( 0x0300, "Table 2" ) // Table offset : 0x00e770 - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) // Timer (crab) speed - PORT_DIPSETTING( 0x0800, DEF_STR( Easy ) ) // Slow - PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) // Normal - PORT_DIPSETTING( 0x0400, DEF_STR( Hard ) ) // Fast - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) // Fastest - PORT_DIPNAME( 0x1000, 0x1000, "2 Players Game" ) - PORT_DIPSETTING( 0x1000, "2 Credits" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Freeze (Cheat)") - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // $c00006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/*************************************************************************** - Gun Master -***************************************************************************/ - -INPUT_PORTS_START( gunmast ) - PORT_START_TAG("IN0") //$400000 - COINS - - PORT_START_TAG("IN1") //$400002 - JOY_LSB(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) - JOY_MSB(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN) - - PORT_START_TAG("IN2") //$400004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0800, 0x0800, "Allow P2 to Join Game" ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x2000, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) /* Listed as "Unused" */ - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) /* Listed as "Unused" */ - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START // IN3 - $400006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/*************************************************************************** - Karate Tournament -***************************************************************************/ - -INPUT_PORTS_START( karatour ) - PORT_START_TAG("IN0") // $400002 - JOY_LSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN1") //$400004 - COINS - - PORT_START_TAG("IN2") // $400006 - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0001, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0003, "3" ) - PORT_DIPSETTING( 0x0002, "4" ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0010, 0x0010, "Time" ) /* Listed as "Timer" */ - PORT_DIPSETTING( 0x0010, "60" ) /* Listed as "Normal" */ - PORT_DIPSETTING( 0x0000, "40" ) /* Listed as "Short" */ - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Free_Play ) ) /* Listed as "Unused" */ - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // $40000a - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - - PORT_START_TAG("IN4") // $40000c - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) -INPUT_PORTS_END - - -/*************************************************************************** - Lady Killer -***************************************************************************/ - -#define LKILL_COMMON1\ - PORT_START_TAG("IN0") /*$400002*/\ - JOY_LSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)\ - PORT_START_TAG("IN1") /*$400004*/\ - COINS - -#define LKILL_COMMON2\ - PORT_START_TAG("IN3") /*$40000a*/\ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )\ - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) )\ - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) )\ - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) )\ - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) )\ - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) )\ - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) )\ - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) )\ - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) )\ - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) )\ - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) )\ - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )\ - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x0000, DEF_STR( On ) )\ - PORT_START_TAG("IN4") /*$40000c*/\ - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - -INPUT_PORTS_START( ladykill ) - LKILL_COMMON1 - PORT_START_TAG("IN2") // $400006 - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0001, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0003, "3" ) - PORT_DIPSETTING( 0x0002, "4" ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0010, 0x0000, "Nudity" ) - PORT_DIPSETTING( 0x0010, "Partial" ) - PORT_DIPSETTING( 0x0000, "Full" ) - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - LKILL_COMMON2 - -INPUT_PORTS_END - -/* Same as 'ladykill' but NO "Nudity" Dip Switch */ -INPUT_PORTS_START( moegonta ) - LKILL_COMMON1 - - PORT_START_TAG("IN2") // $400006 - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0001, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0003, "3" ) - PORT_DIPSETTING( 0x0002, "4" ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0020, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - LKILL_COMMON2 - INPUT_PORTS_END - - -/*************************************************************************** - Last Fortress -***************************************************************************/ - -/* The code which tests IN4 bit 7 is the SAME as the one for 'lastfero'. - So WHY can't the game display cards instead of mahjong tiles ? - Is it due to different GFX ROMS or to an emulation bug ? -*/ -#define LFORT_COMMON\ - PORT_START_TAG("IN0")/*$c00004*/\ - COINS\ - PORT_START_TAG("IN1")/*$c00006*/\ - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) /* BUTTON2 and BUTTON3 in "test mode" only*/\ - PORT_START_TAG("IN2")/*$c00008*/\ - JOY_LSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) /*BUTTON2 and BUTTON3 in "test mode" only*/\ - PORT_START_TAG("IN3")/*$c0000a*/\ - COINAGE_DSW\ - - -INPUT_PORTS_START( lastfort ) - LFORT_COMMON - - PORT_START_TAG("IN4")// $c0000c - PORT_DIPNAME( 0x0300, 0x0300, "Timer Speed" ) - PORT_DIPSETTING( 0x0200, "Slower" ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, "Fast" ) - PORT_DIPSETTING( 0x0000, "Fastest" ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "Retry Level On Continue" ) - PORT_DIPSETTING( 0x0008, "Ask Player" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0010, 0x0010, "2 Players Game" ) - PORT_DIPSETTING( 0x0010, "2 Credits" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Tiles" ) - PORT_DIPSETTING( 0x0080, "Mahjong" ) -// PORT_DIPSETTING( 0x0000, "Cards" ) // Not working - See notes - - PORT_START_TAG("IN5")// $c0000e - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Last Fortress (Erotic) -***************************************************************************/ - -/* Same as 'lastfort' but WORKING "Tiles" Dip Switch */ -INPUT_PORTS_START( lastfero ) - LFORT_COMMON - - PORT_START // IN4 - $c0000c - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) // Timer speed - PORT_DIPSETTING( 0x0000, DEF_STR( Easiest ) ) // Slowest - PORT_DIPSETTING( 0x0001, DEF_STR( Easy ) ) // Slow - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) // Normal - PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) ) // Fast - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "Retry Level On Continue" ) - PORT_DIPSETTING( 0x0008, "Ask Player" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0010, 0x0010, "2 Players Game" ) - PORT_DIPSETTING( 0x0010, "2 Credits" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Tiles" ) - PORT_DIPSETTING( 0x0080, "Mahjong" ) - PORT_DIPSETTING( 0x0000, "Cards" ) - - PORT_START // IN5 - $c0000e - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Mahjong Doukyuusei -***************************************************************************/ - -#define MAHJONG_PANEL\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_A )\ - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_E )\ - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_I )\ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_M )\ - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )\ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_B )\ - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_F )\ - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_J )\ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_N )\ - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )\ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN2")\ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_C )\ - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_G )\ - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_K )\ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )\ - PORT_BIT(0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_RON )\ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN3")\ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_D )\ - PORT_BIT(0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_H )\ - PORT_BIT(0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_L )\ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_PON )\ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN4")\ - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN5")\ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)\ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )\ - PORT_SERVICE_NO_TOGGLE(0x0008, IP_ACTIVE_LOW )\ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - - -INPUT_PORTS_START( dokyusei ) - MAHJONG_PANEL - - PORT_START_TAG("IN6") // $478884.w - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x1400, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Game Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Auto TSUMO after REACH" ) - PORT_DIPSETTING( 0x8000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Yes ) ) - - PORT_START_TAG("IN7") // $478886.w - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, "CPU wears clothes on RON" ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0400, 0x0400, "CPU clothes on continue play" ) - PORT_DIPSETTING( 0x0400, "Return to default" ) - PORT_DIPSETTING( 0x0000, "Keep current status" ) - PORT_SERVICE( 0x0800, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x1000, 0x0000, "Self Test" ) //! - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, "Unknown 2-5" ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, "Unknown 2-6" ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - - -/*************************************************************************** - Mahjong Gakuensai 1 & 2 -***************************************************************************/ - -/* Same as dokyusei, without the DSWs (these games have an eeprom) */ - -INPUT_PORTS_START( gakusai ) - -MAHJONG_PANEL - -INPUT_PORTS_END - - -/*************************************************************************** - Mouja -***************************************************************************/ - -INPUT_PORTS_START( mouja ) - PORT_START_TAG("IN0") //$478880 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") //$478882 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE(0x0080, IP_ACTIVE_LOW) - - PORT_START_TAG("IN2") //$478884 - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Service_Mode ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0800, 0x0000, "Winning Rounds (Player VS Computer)" ) - PORT_DIPSETTING( 0x0800, "1/1" ) - PORT_DIPSETTING( 0x0000, "2/3" ) - PORT_DIPNAME( 0x1000, 0x1000, "Winning Rounds (Player VS Player)" ) - PORT_DIPSETTING( 0x1000, "1/1" ) - PORT_DIPSETTING( 0x0000, "2/3" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") //$478886 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Pang Poms -***************************************************************************/ - -INPUT_PORTS_START( pangpoms ) - PORT_START_TAG("IN0") //$800004 - COINS - - PORT_START_TAG("IN1") //$800006 - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN2") //$800008 - JOY_LSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN3") //$80000a - COINAGE_DSW - - PORT_START_TAG("IN4") //$80000c - PORT_DIPNAME( 0x0003, 0x0003, "Time Speed" ) - PORT_DIPSETTING( 0x0000, "Slowest" ) // 60 (1 game sec. lasts x/60 real sec.) - PORT_DIPSETTING( 0x0001, "Slow" ) // 90 - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) // 120 - PORT_DIPSETTING( 0x0002, "Fast" ) // 150 - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0008, "1" ) - PORT_DIPSETTING( 0x0004, "2" ) - PORT_DIPSETTING( 0x000c, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x0030, 0x0020, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0020, "400k and 800k" ) - PORT_DIPSETTING( 0x0030, "400k" ) - PORT_DIPSETTING( 0x0010, "800k" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) - - PORT_START_TAG("IN5") //$80000e - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Poitto! -***************************************************************************/ - -INPUT_PORTS_START( poitto ) - PORT_START_TAG("IN0") //$800000 - COINS - - PORT_START_TAG("IN1") //$800002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$800004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") //$800006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Puzzli -***************************************************************************/ - -INPUT_PORTS_START( puzzli ) - PORT_START_TAG("IN0") //$c00000 - COINS - - PORT_START_TAG("IN1") //$c00002 - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$c00004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) -// PORT_DIPSETTING( 0x0100, DEF_STR( Normal ) ) // Duplicated setting - PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Join In" ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0800, 0x0800, "2 Players Game" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPSETTING( 0x0800, "2 Credits" ) - PORT_DIPNAME( 0x1000, 0x1000, "Winning Rounds (Player VS Player)" ) - PORT_DIPSETTING( 0x0000, "1/1" ) - PORT_DIPSETTING( 0x1000, "2/3" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") //$c00006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Sankokushi -***************************************************************************/ - -INPUT_PORTS_START( 3kokushi ) - PORT_START_TAG("IN0") //$c00000 - COINS - - PORT_START_TAG("IN1") //$c00002 - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - JOY_MSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) - - PORT_START_TAG("IN2") //$c00004 - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) // Timer speed - PORT_DIPSETTING( 0x0200, DEF_STR( Easy ) ) // Slow - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) // Normal - PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) // Fast - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) // Fastest - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, "Helps" ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x4000, "2" ) - PORT_DIPSETTING( 0xc000, "3" ) - PORT_DIPSETTING( 0x8000, "4" ) -INPUT_PORTS_END - - -/*************************************************************************** - Pururun -***************************************************************************/ - -INPUT_PORTS_START( pururun ) - PORT_START_TAG("IN0") //$400000 - COINS - - PORT_START_TAG("IN1") //$400002 - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$400004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) ) // Distance to goal - PORT_DIPSETTING( 0x0200, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x0400, 0x0400, "Join In" ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0800, 0x0800, "2 Players Game" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPSETTING( 0x0800, "2 Credits" ) - PORT_DIPNAME( 0x1000, 0x1000, "Bombs" ) - PORT_DIPSETTING( 0x1000, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START // IN3 - $400006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Sky Alert -***************************************************************************/ - -/* The game shows wrong values on screen for the "Bonus Life" Dip Switch ! - The wrong values are text which is stored at 0x02671a, and to determine - which text to display, the routine at 0x0022f2 is called. - The REAL "Bonus Life" table is stored at 0x0097f6, and to determine what - are the values, the routine at 0x00974e is called. - - Here is the correspondance between real and fake values : - - Real Fake - 100K, 400K 100K, 400K - 200K, 400K 50K, 300K - 200K 150K, 500K - "none" "none" - -*/ -INPUT_PORTS_START( skyalert ) - PORT_START_TAG("IN0") //$400004 - COINS - - PORT_START_TAG("IN1") //$400006 - JOY_LSB(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$400008 - JOY_LSB(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN) // BUTTON3 in "test mode" only - - PORT_START_TAG("IN3") //$40000a - COINAGE_DSW - - PORT_START_TAG("IN4") //$40000c - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0008, "1" ) - PORT_DIPSETTING( 0x0004, "2" ) - PORT_DIPSETTING( 0x000c, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Bonus_Life ) ) // See notes - PORT_DIPSETTING( 0x0030, "100K, every 400K" ) - PORT_DIPSETTING( 0x0020, "200K, every 400K" ) - PORT_DIPSETTING( 0x0010, "200K" ) - PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) - - PORT_START_TAG("IN5") //$40000e - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -/*************************************************************************** - Toride II Adauchi Gaiden -***************************************************************************/ - -/* I don't really know HOW to describe the effect of IN2 bit 10. - All I can tell is that is that it affects the levels which are - proposed, but there is no evidence that one "table" is harder - than another. */ -INPUT_PORTS_START( toride2g ) - PORT_START_TAG("IN0") //$800000 - COINS - - PORT_START_TAG("IN1") //$800002 - JOY_LSB(1, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - JOY_MSB(2, BUTTON1, UNKNOWN, UNKNOWN, UNKNOWN) // BUTTON2 and BUTTON3 in "test mode" only - - PORT_START_TAG("IN2") //$800004 - COINAGE_DSW - - PORT_DIPNAME( 0x0300, 0x0300, "Timer Speed" ) - PORT_DIPSETTING( 0x0200, "Slower" ) - PORT_DIPSETTING( 0x0300, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0100, "Fast" ) - PORT_DIPSETTING( 0x0000, "Fastest" ) - PORT_DIPNAME( 0x0400, 0x0400, "Tile Arrangement" ) /* As listed by the manual */ - PORT_DIPSETTING( 0x0400, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x0800, 0x0000, "Retry Level On Continue" ) - PORT_DIPSETTING( 0x0000, "Ask Player" ) - PORT_DIPSETTING( 0x0800, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x1000, 0x1000, "2 Players Game" ) - PORT_DIPSETTING( 0x1000, "2 Credits" ) - PORT_DIPSETTING( 0x0000, "1 Credit" ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START_TAG("IN3") //$800006 - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // BIT 6 !? -INPUT_PORTS_END - - - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - - -/* 8x8x4 tiles */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 4*8 }, /* line modulo */ - 32*8 /* char modulo */ -}; - -/* 8x8x8 tiles for later games */ -static const gfx_layout layout_8x8x8h = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 8*8 }, /* line modulo */ - 32*8 /* char modulo (half char step) */ -}; - -/* 16x16x4 tiles for later games */ -static const gfx_layout layout_16x16x4q = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 8*8 }, /* line modulo */ - 32*8 /* char modulo (quarter char step) */ -}; - -/* 16x16x8 tiles for later games */ -static const gfx_layout layout_16x16x8o = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 16*8 }, /* line modulo */ - 32*8 /* char modulo (1/8th char step) */ -}; - -static const gfx_layout layout_053936 = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - { 0*8*8, 1*8*8, 2*8*8, 3*8*8, 4*8*8, 5*8*8, 6*8*8, 7*8*8 }, - 8*8*8 -}; - -static const gfx_layout layout_053936_16 = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8*8+0*8, 8*8*8+1*8, 8*8*8+2*8, 8*8*8+3*8, 8*8*8+4*8, 8*8*8+5*8, 8*8*8+6*8, 8*8*8+7*8, - }, - - { 0*8*8, 1*8*8, 2*8*8, 3*8*8, 4*8*8, 5*8*8, 6*8*8, 7*8*8, - 8*8*8*2+0*8*8, 8*8*8*2+1*8*8, 8*8*8*2+2*8*8, 8*8*8*2+3*8*8, 8*8*8*2+4*8*8, 8*8*8*2+5*8*8, 8*8*8*2+6*8*8, 8*8*8*2+7*8*8, - }, - 8*8*8*4 -}; - -static const gfx_decode gfxdecodeinfo_14100[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { -1 } -}; - -static const gfx_decode gfxdecodeinfo_14220[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { REGION_GFX1, 0, &layout_8x8x8h, 0x0, 0x20 }, // [1] 8 Bit Tiles - { -1 } -}; - -static const gfx_decode gfxdecodeinfo_blzntrnd[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { REGION_GFX1, 0, &layout_8x8x8h, 0x0, 0x20 }, // [1] 8 Bit Tiles - { REGION_GFX3, 0, &layout_053936, 0x0, 0x20 }, // [2] 053936 Tiles - { -1 } -}; - -static const gfx_decode gfxdecodeinfo_gstrik2[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { REGION_GFX1, 0, &layout_8x8x8h, 0x0, 0x20 }, // [1] 8 Bit Tiles - { REGION_GFX3, 0, &layout_053936_16,0x0, 0x20 }, // [2] 053936 Tiles - { -1 } -}; - -static const gfx_decode gfxdecodeinfo_14300[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0x0, 0x200 }, // [0] 4 Bit Tiles - { REGION_GFX1, 0, &layout_8x8x8h, 0x0, 0x20 }, // [1] 8 Bit Tiles - { REGION_GFX1, 0, &layout_16x16x4q, 0x0, 0x200 }, // [2] 4 Bit Tiles 16x16 - { REGION_GFX1, 0, &layout_16x16x8o, 0x0, 0x200 }, // [2] 8 Bit Tiles 16x16 - { -1 } -}; - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -UPD7810_CONFIG metro_cpu_config = -{ - TYPE_7810, - metro_io_callback -}; - -static MACHINE_DRIVER_START( balcube ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(balcube_readmem,balcube_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14220) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF278B, YMF278B_STD_CLOCK) - MDRV_SOUND_CONFIG(ymf278b_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bangball ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(bangball_readmem,bangball_writemem) - MDRV_CPU_VBLANK_INT(bangball_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14220) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF278B, YMF278B_STD_CLOCK) - MDRV_SOUND_CONFIG(ymf278b_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( batlbubl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(batlbubl_readmem,batlbubl_writemem) - MDRV_CPU_VBLANK_INT(bangball_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14220) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF278B, YMF278B_STD_CLOCK) - MDRV_SOUND_CONFIG(ymf278b_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( daitorid ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(daitorid_readmem,daitorid_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(daitorid_snd_readmem,daitorid_snd_writemem) - MDRV_CPU_IO_MAP(daitorid_snd_readport,daitorid_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14220) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dharma ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(dharma_readmem,dharma_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( karatour ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(karatour_readmem,karatour_writemem) - MDRV_CPU_VBLANK_INT(karatour_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( 3kokushi ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(kokushi_readmem,kokushi_writemem) - MDRV_CPU_VBLANK_INT(karatour_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(gfxdecodeinfo_14220) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14220) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( lastfort ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(lastfort_readmem,lastfort_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( lastforg ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(lastforg_readmem,lastforg_writemem) - MDRV_CPU_VBLANK_INT(karatour_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dokyusei ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(dokyusei_readmem,dokyusei_writemem) - MDRV_CPU_VBLANK_INT(dokyusei_interrupt,2) /* ? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 256-32) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1) - MDRV_GFXDECODE(gfxdecodeinfo_14300) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14300) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(YM2413, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - -NVRAM_HANDLER( dokyusp ) -{ - static const UINT8 def_data[] = {0x00,0xe0}; - - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C46); - if (file) EEPROM_load(file); - else EEPROM_set_data(def_data,sizeof(def_data)/sizeof(def_data[0])); - } -} - -static MACHINE_DRIVER_START( dokyusp ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(dokyusp_readmem,dokyusp_writemem) - MDRV_CPU_VBLANK_INT(gakusai_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - MDRV_NVRAM_HANDLER(dokyusp) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(384, 256-32) - MDRV_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-32-1) - MDRV_GFXDECODE(gfxdecodeinfo_14300) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14300) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(YM2413, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gakusai ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(gakusai_readmem,gakusai_writemem) - MDRV_CPU_VBLANK_INT(gakusai_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(gfxdecodeinfo_14300) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14300) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(YM2413, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gakusai2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(gakusai2_readmem,gakusai2_writemem) - MDRV_CPU_VBLANK_INT(gakusai_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - MDRV_NVRAM_HANDLER(93C46) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 240) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) - MDRV_GFXDECODE(gfxdecodeinfo_14300) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14300) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 2112000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(YM2413, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pangpoms ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(pangpoms_readmem,pangpoms_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( poitto ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(poitto_readmem,poitto_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pururun ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(pururun_readmem,pururun_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(daitorid_snd_readmem,daitorid_snd_writemem) - MDRV_CPU_IO_MAP(daitorid_snd_readport,daitorid_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( skyalert ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(skyalert_readmem,skyalert_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(360, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( toride2g ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(toride2g_readmem,toride2g_writemem) - MDRV_CPU_VBLANK_INT(metro_interrupt,10) /* ? */ - - MDRV_CPU_ADD(UPD7810, 12000000) - /* audio CPU */ - MDRV_CPU_CONFIG(metro_cpu_config) - MDRV_CPU_PROGRAM_MAP(metro_snd_readmem,metro_snd_writemem) - MDRV_CPU_IO_MAP(metro_snd_readport,metro_snd_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14100) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14100) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1200000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // was /128.. so pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.90) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.90) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mouja ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* ??? */ - MDRV_CPU_PROGRAM_MAP(mouja_readmem,mouja_writemem) - MDRV_CPU_VBLANK_INT(mouja_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_14300) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(metro_14300) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - MDRV_SOUND_ADD(OKIM6295, 16000000/1024*132) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.25) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.25) - - MDRV_SOUND_ADD(YM2413, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.00) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.00) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( blzntrnd ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(blzntrnd_readmem,blzntrnd_writemem) - MDRV_CPU_VBLANK_INT(karatour_interrupt,10) /* ? */ - - MDRV_CPU_ADD(Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(blzntrnd_sound_readmem, blzntrnd_sound_writemem) - MDRV_CPU_IO_MAP(blzntrnd_sound_readport, blzntrnd_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_blzntrnd) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(blzntrnd) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(blzntrnd_ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -/* like blzntrnd but new vidstart / gfxdecode for the different bg tilemap */ -static MACHINE_DRIVER_START( gstrik2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(blzntrnd_readmem,blzntrnd_writemem) - MDRV_CPU_VBLANK_INT(karatour_interrupt,10) /* ? */ - - MDRV_CPU_ADD(Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(blzntrnd_sound_readmem, blzntrnd_sound_writemem) - MDRV_CPU_IO_MAP(blzntrnd_sound_readport, blzntrnd_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(metro) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(320, 224) - MDRV_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) - MDRV_GFXDECODE(gfxdecodeinfo_gstrik2) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(gstrik2) - MDRV_VIDEO_UPDATE(metro) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(blzntrnd_ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -static void metro_common(void) -{ - int i; - - /* - Tiles can be either 4-bit or 8-bit, and both depths can be used at the same - time. The transparent pen is the last one, that is 15 or 255. To make - tilemap.c handle that, we invert gfx data so the transparent pen becomes 0 - for both tile depths. - */ - for (i = 0;i < memory_region_length(REGION_GFX1);i++) - memory_region(REGION_GFX1)[i] ^= 0xff; - - if (memory_region(REGION_GFX3)) /* blzntrnd */ - for (i = 0;i < memory_region_length(REGION_GFX3);i++) - memory_region(REGION_GFX3)[i] ^= 0xff; - - requested_int[0] = 0; - requested_int[1] = 0; - requested_int[2] = 0; - requested_int[3] = 0; - requested_int[4] = 0; - requested_int[5] = 0; - requested_int[6] = 0; - requested_int[7] = 0; - - irq_line = 2; - - blitter_bit = 2; - - *metro_irq_enable = 0; -} - - -static DRIVER_INIT( metro ) -{ - metro_common(); - - porta = 0x00; - portb = 0x00; - busy_sndcpu = 0; - metro_sound_rombank_w(0, 0x00); -} - -static DRIVER_INIT( karatour ) -{ - UINT16 *RAM = (UINT16 *)auto_malloc(0x20000*3); -int i; - metro_vram_0 = RAM + (0x20000/2) * 0; - metro_vram_1 = RAM + (0x20000/2) * 1; - metro_vram_2 = RAM + (0x20000/2) * 2; -for (i = 0;i < (0x20000*3)/2;i++) - RAM[i] = rand(); - - init_metro(machine); -} - -static DRIVER_INIT( daitorid ) -{ - metro_common(); - - porta = 0x00; - portb = 0x00; - busy_sndcpu = 0; - daitorid_sound_rombank_w(0, 0x00); -} - - -/* Unscramble the GFX ROMs */ -static DRIVER_INIT( balcube ) -{ - const int region = REGION_GFX1; - - const size_t len = memory_region_length(region); - UINT8 *src = memory_region(region); - UINT8 *end = memory_region(region) + len; - - while(src < end) - { - static const unsigned char scramble[16] = - { 0x0,0x8,0x4,0xc,0x2,0xa,0x6,0xe,0x1,0x9,0x5,0xd,0x3,0xb,0x7,0xf }; - - unsigned char data; - - data = *src; - *src = (scramble[data & 0xF] << 4) | scramble[data >> 4]; - src += 2; - } - - metro_common(); - irq_line = 1; -} - - -DRIVER_INIT( dharmak ) -{ - UINT8 *src = memory_region( REGION_GFX1 ); - int i; - for (i=0;i<0x200000;i+=4) - { - UINT8 dat; - dat = src[i+1]; - dat = BITSWAP8(dat, 7,3,2,4, 5,6,1,0); - src[i+1] = dat; - - dat = src[i+3]; - dat = BITSWAP8(dat, 7,2,5,4, 3,6,1,0); - src[i+3] = dat; - } - - init_metro(Machine); -} - -static DRIVER_INIT( blzntrnd ) -{ - metro_common(); - irq_line = 1; -} - -static DRIVER_INIT( mouja ) -{ - metro_common(); - irq_line = -1; /* split interrupt handlers */ - mouja_irq_timer = timer_alloc(mouja_irq_callback); -} - -static DRIVER_INIT( gakusai ) -{ - metro_common(); - irq_line = -1; - blitter_bit = 3; -} - - -/*************************************************************************** - -Bal Cube -Metro 1996 - - 7 1 - YRW801-M 2 - 33.369MHz YMF278B 3 - 4 - - - - 16MHz Imagetek - 6 5 14220 - 84256 84256 - 68000-16 52258-20 61C640-20 - 26.666MHz 52258-20 - -***************************************************************************/ - -ROM_START( balcube ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "6", 0x000000, 0x040000, CRC(c400f84d) SHA1(416eb82ec1201d24d9d964191a5a1792c9445923) ) - ROM_LOAD16_BYTE( "5", 0x000001, 0x040000, CRC(15313e3f) SHA1(10a8702016f223194dc91875b4736253fd47dbb8) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "2", 0x000000, 0x080000, CRC(492ca8f0) SHA1(478336a462a2bfc288cf91262314f5767f8c707d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4", 0x000002, 0x080000, CRC(d1acda2c) SHA1(f58015302af6c864523d48bdf8f8a4383b69fa9d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1", 0x000004, 0x080000, CRC(0ea3d161) SHA1(63ae430a19e777ce82b41ab02baef3bb224c7557) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3", 0x000006, 0x080000, CRC(eef1d3b4) SHA1(be535963c00390e34a2305586397a16325f3c3c0) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "yrw801-m", 0x000000, 0x200000, CRC(2a9d8d43) SHA1(32760893ce06dbe3930627755ba065cc3d8ec6ca) ) // Yamaha YRW801 2MB ROM with samples for the OPL4. - ROM_LOAD( "7", 0x200000, 0x080000, CRC(f769287d) SHA1(dd0f781b4a1a1fd6bf0a50048b4996f3cf41e155) ) // PCM 16 Bit (Signed) -ROM_END - - -/*************************************************************************** - -Bang Bang Ball -(c)1996 Banpresto/Kunihiko Tashiro/Goodhouse - -CPU : TMP68HC000P-16 -Sound: YAMAHA OPL YMF278B-F -OSC : 16.0000MHz (OSC1) 26.6660MHz (OSC2) 33.869?MHz (OSC3) - -ROMs: -rom#005.u19 - Main programs (27c020) -rom#006.u18 / - -rom#007.u49 - Sound samples (27c040) -yrw801-m.u52 - Wave data ROM (44pin SOP 16M mask (LH537019)) - -bp963a.u27 - Graphics (mask, read as 27c800) -bp963a.u28 | -bp963a.u29 | -bp963a.u30 / - -PLD: -ALTERA EPM7032LC44-15T D9522 - -Custom chip: -Imagetek, Inc. I4220 071 9403EK701 - -********************************** - -Battle Bubble -(c)1999 Limenko - - Listed on Limenko's Web site as kit LM2DY00 - -PCB - - REV: LM2D-Y - SEL: 00-200-004 - -Same basic componets as those listed for Bang Bang Ball, except -PCB uses a Xlinix XC9536 istead of the Altera EMP7032LC44 PLD. - -Did Limenko license this or bootleg it? The board doesn't look like a -bootleg and has all original parts on it.. - -Limenko's web site states: - - 1998 6 Developed LM2D-Y00-LM - 10 Contract the technology and products in cooperation with Metro Ltd. - 1999 11 Begin to sell Battle Bubble internally - 12 Received an overseas order for Battle Bubble - -***************************************************************************/ - -ROM_START( bangball ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "rom#006.u18", 0x000000, 0x040000, CRC(0e4124bc) SHA1(f5cd762df4e822ab5c8dba6f276b3366895235d1) ) - ROM_LOAD16_BYTE( "rom#005.u19", 0x000001, 0x040000, CRC(3fa08587) SHA1(8fdafdde5e77d077b5cd8f94f97b5430fe062936) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "bp963a.u30", 0x000000, 0x100000, CRC(b0ca8e39) SHA1(f2eb1d07cd10050c234f0b418146c742b496f196) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bp963a.u29", 0x000002, 0x100000, CRC(d934468f) SHA1(b93353bf2302b68a297d71fc9d91dc55c1cccce4) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bp963a.u28", 0x000004, 0x100000, CRC(96d03c6a) SHA1(6257585721291e5a5ce311c2873c9e1e1dac2fc6) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "bp963a.u27", 0x000006, 0x100000, CRC(5e3c7732) SHA1(e8c442a8038921ae3de48ce52923d25cb97e36ea) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "yrw801-m", 0x000000, 0x200000, CRC(2a9d8d43) SHA1(32760893ce06dbe3930627755ba065cc3d8ec6ca) ) - ROM_LOAD( "rom#007.u49", 0x200000, 0x080000, CRC(04cc91a9) SHA1(e5cf6055a0803f4ad44919090cd147702e805d88) ) -ROM_END - -ROM_START( batlbubl ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "lm-01.u11", 0x000000, 0x080000, CRC(1d562807) SHA1(3e5dbe6f4b04aa9e01b7b8938d0b46d4862054bf) ) - ROM_LOAD16_WORD_SWAP( "lm-02.u12", 0x080000, 0x080000, CRC(852e4750) SHA1(d8b703ba65d0f267eba07f160b13dbe0f5ac40c2) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "lm-07.u30", 0x000000, 0x200000, CRC(03d9dfd8) SHA1(33c96f1b0fa28c6e46b2d2c0a62dfe0306139e09) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "lm-06.u29", 0x000002, 0x200000, CRC(5efb905b) SHA1(c3f5d781941225c17d37473e2e0ed84875cebace) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "lm-05.u28", 0x000004, 0x200000, CRC(e53ba59f) SHA1(d82749c04d776fbf9e5cc44a23d2bfafe073fafa) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "lm-04.u27", 0x000006, 0x200000, CRC(2e687cfb) SHA1(4766ddc882c3e330e948b64e4e44a08846bf2046) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "lm-08.u40", 0x000000, 0x200000, CRC(2a9d8d43) SHA1(32760893ce06dbe3930627755ba065cc3d8ec6ca) ) /* PCB labeled YRM801, Sticker says lm-08 */ - ROM_LOAD( "lm-03.u42", 0x200000, 0x080000, CRC(04cc91a9) SHA1(e5cf6055a0803f4ad44919090cd147702e805d88) ) -ROM_END - -/*************************************************************************** - -Blazing Tornado -(c)1994 Human - -CPU: 68000-16 -Sound: Z80-8 - YMF286K -OSC: 16.0000MHz - 26.666MHz -Chips: Imagetek 14220 071 - Konami 053936 (PSAC2) - -***************************************************************************/ - -ROM_START( blzntrnd ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 */ - ROM_LOAD16_BYTE( "1k.bin", 0x000000, 0x80000, CRC(b007893b) SHA1(609363449c0218b8a38de72d37c66e6f3bb4f8cd) ) - ROM_LOAD16_BYTE( "2k.bin", 0x000001, 0x80000, CRC(ec173252) SHA1(652d70055d2799442beede1ae68e54551931068f) ) - ROM_LOAD16_BYTE( "3k.bin", 0x100000, 0x80000, CRC(1e230ba2) SHA1(ca96c82d57a6b5bacc1bfd2f7965503c2a6e162f) ) - ROM_LOAD16_BYTE( "4k.bin", 0x100001, 0x80000, CRC(e98ca99e) SHA1(9346fc0d419add23eaceb5843c505f3ffa69e495) ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* Z80 */ - ROM_LOAD( "rom5.bin", 0x0000, 0x20000, CRC(7e90b774) SHA1(abd0eda9eababa1f7ab17a2f60534dcebda33c9c) ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "rom142.bin", 0x0000000, 0x200000, CRC(a7200598) SHA1(f8168a94abc380308901303a69cbd15097019797) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom186.bin", 0x0000002, 0x200000, CRC(6ee28ea7) SHA1(b33bcbf16423999135d96a62bf25c6ff23031f2a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom131.bin", 0x0000004, 0x200000, CRC(c77e75d3) SHA1(8ad716d4e37d6efe478a8e49feb4e68283310890) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom175.bin", 0x0000006, 0x200000, CRC(04a84f9b) SHA1(83aabbc1c7ab06b351168153335f3c2f91fba0e9) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom242.bin", 0x0800000, 0x200000, CRC(1182463f) SHA1(6fa2a0b3186a3542b43926e3f37714b78a890542) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom286.bin", 0x0800002, 0x200000, CRC(384424fc) SHA1(f89d43756bd38515a223fe4ffbed3a44c673ae28) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom231.bin", 0x0800004, 0x200000, CRC(f0812362) SHA1(9f8be51f60f7baf72f9de8352e4e13d730f85903) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom275.bin", 0x0800006, 0x200000, CRC(184cb129) SHA1(8ffb3cdc7e0d227b6f0a7962bc6d853c6b84c8d2) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom342.bin", 0x1000000, 0x200000, CRC(e527fee5) SHA1(e5de1e134d95aa7a48695183189924061482e3a3) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom386.bin", 0x1000002, 0x200000, CRC(d10b1401) SHA1(0eb75a283000a8b19a14177461b6f335c9d9dec2) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom331.bin", 0x1000004, 0x200000, CRC(4d909c28) SHA1(fb9bb824e518f67713799ed2c0159a7bd70f35c4) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "rom375.bin", 0x1000006, 0x200000, CRC(6eb4f97c) SHA1(c7f006230cbf10e706b0362eeed34655a3aef1a5) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* 053936 gfx data */ - ROM_LOAD( "rom9.bin", 0x000000, 0x200000, CRC(37ca3570) SHA1(3374c586bf84583fa33f2793c4e8f2f61a0cab1c) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "rom8.bin", 0x000000, 0x080000, CRC(565a4086) SHA1(bd5780acfa5affa8705acbfccb0af16bac8ed298) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* ? YRW801-M ? */ - ROM_LOAD( "rom6.bin", 0x000000, 0x200000, CRC(8b8819fc) SHA1(5fd9d2b5088cb676c11d32cac7ba8c5c18e31b64) ) - ROM_LOAD( "rom7.bin", 0x200000, 0x200000, CRC(0089a52b) SHA1(d643ac122d62557de27f06ba1413ef757a45a927) ) -ROM_END - -/* - -Grand Striker 2 -Human Entertainment, 1996 - -PCB Layout ----------- - -HUM-003(A) -|-----------------------------------------------------------------------| -| YM3016 ROM8.22 ROM342.88 ROM386.87 ROM331.86 ROM375.85 | -| | -| 6264 YM2610 ROM142.80 ROM186.79 ROM131.78 ROM175.77 | -| | -| ROM7.27 ROM442.92 ROM486.91 ROM431.90 ROM475.89 | -| | -| PAL ROM242.84 ROM286.83 ROM231.82 ROM275.81 | -| SPRG.30 | -| PAL Z80 ROM6.23 | -| | -|J | -|A | -|M |--------| | -|M PRG2 PRG3 |IMAGETEK| 6264 | -|A |14220 | | -| PRG0 PRG1 |--------| | -| 16MHz 68000 62256 62256 26.666MHz | -| | -| DSW1 | -| DSW2 EPM7032 |------| 62256 62256 | -| DSW3 6116 |053936| 62256 62256 | -| DSW4 6116 |PSAC2 | PAL | -| |------| ROM9.60 | -|-----------------------------------------------------------------------| - -Notes: - 68000 clock: 16.000MHz - Z80 clock: 8.000MHz - YM2610 clock: 8.000MHz - VSync: 58Hz - HSync: 15.11kHz - -*/ - -ROM_START( gstrik2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 */ - ROM_LOAD16_BYTE( "prg0.107", 0x000000, 0x80000, CRC(e60a8c19) SHA1(19be6cfcb60ede6fd4eb2e14914b174107c4b52d) ) - ROM_LOAD16_BYTE( "prg1.108", 0x000001, 0x80000, CRC(853f6f7c) SHA1(8fb9d7cd0390f620560a1669bb13f2033eed7c81) ) - ROM_LOAD16_BYTE( "prg2.109", 0x100000, 0x80000, CRC(ead86919) SHA1(eb9b68dff4e08d90ac90043c7f3021914caa007d) ) - ROM_LOAD16_BYTE( "prg3.110", 0x100001, 0x80000, CRC(e0b026e3) SHA1(05f75c0432efda3dec0372199382e310bb268fba) ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* Z80 */ - ROM_LOAD( "sprg.30", 0x0000, 0x20000, CRC(aeef6045) SHA1(61b8c89ca495d3aac79e53413a85dd203db816f3) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "chr0.80", 0x0000000, 0x200000, CRC(f63a52a9) SHA1(1ad52bb3a051eaffe8fb6ba49d4fc1d0b6144156) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr1.79", 0x0000002, 0x200000, CRC(4110c184) SHA1(90ccb3d50eff7a655336cfa9c072f7213589e64c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr2.78", 0x0000004, 0x200000, CRC(ddb4b9ee) SHA1(0e2c151c3690b9c3d298dda8842e283660d37386) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr3.77", 0x0000006, 0x200000, CRC(5ab367db) SHA1(adf8749451f4583f8e9e00ab61f3408d804a7265) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr4.84", 0x0800000, 0x200000, CRC(77d7ef99) SHA1(8f5cf72f5919fe9363e7549e0bb1b3ee633cec3b) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr5.83", 0x0800002, 0x200000, CRC(a4d49e95) SHA1(9789bacba7876100e0f0293f54c81def545ed068) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr6.82", 0x0800004, 0x200000, CRC(32eb33b0) SHA1(2ea06484ca326b44a35ee470343147a9d91d5626) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "chr7.81", 0x0800006, 0x200000, CRC(2d30a21e) SHA1(749e86b7935ef71556eaee4caf6f954634e9bcbf) , ROM_GROUPWORD | ROM_SKIP(6)) - /* not populated */ -// ROMX_LOAD( "chr8.88", 0x1000000, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr9.87", 0x1000002, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr10.86", 0x1000004, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr11.85", 0x1000006, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr12.92", 0x1800000, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr13.91", 0x1800002, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr14.90", 0x1800004, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) -// ROMX_LOAD( "chr15.89", 0x1800006, 0x200000, CRC() SHA1() , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* 053936 gfx data */ - ROM_LOAD( "psacrom.60", 0x000000, 0x200000, CRC(73f1f279) SHA1(1135b2b1eb4c52249bc12ee178340bbb202a94c8) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sndpcm-b.22", 0x000000, 0x200000, CRC(a5d844d2) SHA1(18d644545f0844e66aa53775b67b0a29c7b7c31b) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* ? YRW801-M ? */ - ROM_LOAD( "sndpcm-a.23", 0x000000, 0x200000, CRC(e6d32373) SHA1(8a79d4ea8b27d785fffd80e38d5ae73b7cea7304) ) - /* ROM7.27 not populated? */ -ROM_END - -/*************************************************************************** - -Daitoride -Metro 1995 - -MTR5260-A - - 12MHz 6116 - YM2151 DT7 DT8 - M6295 - 7C199 78C10 - 7C199 Imagetek14220 - 61C64 - - 68000-16 DT1 - 32MHz 52258 DT2 - SW1 52258 DT3 - SW2 DT6 DT5 DT4 - -***************************************************************************/ - -ROM_START( daitorid ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "dt-ja-5.19e", 0x000000, 0x020000, CRC(441efd77) SHA1(18b255f42ba7a180535f0897aaeebe5d2a33df46) ) - ROM_LOAD16_BYTE( "dt-ja-6.19c", 0x000001, 0x020000, CRC(494f9cc3) SHA1(b88af581fee9e2d94a12a5c1fed0797614bb738e) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "dt-ja-8.3h", 0x000000, 0x004000, CRC(0351ad5b) SHA1(942c1cbb52bf2933aea4209335c1bc4cdd1cc3dd) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "dt-ja-2.14h", 0x000000, 0x080000, CRC(56881062) SHA1(150a8f043e61b28c22d0f898aea61853d1accddc) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "dt-ja-4.18h", 0x000002, 0x080000, CRC(85522e3b) SHA1(2c6e7c8ad01d39843669ef1afe7a0843ea6c107c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "dt-ja-1.12h", 0x000004, 0x080000, CRC(2a220bf2) SHA1(553dea2ab42d845b2e91930219fe8df026748642) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "dt-ja-3.16h", 0x000006, 0x080000, CRC(fd1f58e0) SHA1(b4bbe94127ae59d4c899d09862703c374c8f4746) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "dt-ja-7.3f", 0x000000, 0x040000, CRC(0d888cde) SHA1(fa871fc34f8b8ff0eebe47f338733e4f9fe65b76) ) -ROM_END - - -/*************************************************************************** - -Dharma Doujou -Metro 1994 - - - M6395 JA-7 JA-8 - - 26.666MHz NEC78C10 - 7C199 - 7C199 - 7C199 JB-1 - JB-2 - JB-3 - 68000-12 JB-4 - - 24MHz - 6264 - 6264 - JC-5 JC-6 - -***************************************************************************/ - -ROM_START( dharma ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "jc-5", 0x000000, 0x020000, CRC(b5d44426) SHA1(d68aaf6b9976ccf5cb665d7ec0afa44e2453094d) ) - ROM_LOAD16_BYTE( "jc-6", 0x000001, 0x020000, CRC(bc5a202e) SHA1(c2b6d2e44e3605e0525bde4030c5162badad4d4b) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "ja-8", 0x000000, 0x004000, CRC(af7ebc4c) SHA1(6abf0036346da10be56932f9674f8c250a3ea592) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "jb-2", 0x000000, 0x080000, CRC(2c07c29b) SHA1(26244145139df1ffe2b6ec25a32e5009da6a5aba) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "jb-4", 0x000002, 0x080000, CRC(fe15538e) SHA1(a52ac04656783611ec5d5af01b18e22254decc0c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "jb-1", 0x000004, 0x080000, CRC(e6ca9bf6) SHA1(0379250303eb6895a4dda080da8bf031d055ce8e) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "jb-3", 0x000006, 0x080000, CRC(6ecbe193) SHA1(33b799699d5d17705df36591cdc40032278388d1) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ja-7", 0x000000, 0x040000, CRC(7ce817eb) SHA1(9dfb79021a552877fbc26049cca853c0b93735b5) ) -ROM_END - -/* - -This is a Korean version of Dharma -Runs on Metro hardware. -PCB Number - METRO CORP. MTR527 -Imagetek 14220 gfx chip -68000 CPU -XTALs 26.666MHz, 24.0MHz, 3.579545MHz -YM2413 -OKI M6295 -D78C10 -MACH110 -8-position DSW x2 -6116 SRAM x1 -6264 SRAM x5 - -*/ - -ROM_START( dharmak ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x020000, CRC(7dec1f77) SHA1(86cda990392e738f1bacec9d7a232d27887c1135) ) - ROM_LOAD16_BYTE( "6.bin", 0x000001, 0x020000, CRC(a194edbe) SHA1(676a4c0d4ee842a1b9d1c86ecd89417ebd6b5927) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "8.bin", 0x000000, 0x004000, CRC(d0e0a8e2) SHA1(99a3142589a1763ba162ed5b1b6c44961a5aaabc) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ /* note, these are bitswapped, see init */ - ROMX_LOAD( "2.bin", 0x000000, 0x080000, CRC(3cc0bb6c) SHA1(aaa063fa748e0f6fe3c07f2dfb510c1b69ea92af) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4.bin", 0x000002, 0x080000, CRC(2cdcdf91) SHA1(44da8eac822a89e9c07bfd28720ec0b566d19b44) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1.bin", 0x000004, 0x080000, CRC(312ee2ec) SHA1(73ea401e4615eb9ad5f42be9c75ca4550c3a4668) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3.bin", 0x000006, 0x080000, CRC(b81aede8) SHA1(fe11e1523a9bcd59397b5866bc03c9d24049a5f5) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "7.bin", 0x000000, 0x040000, CRC(8af698d7) SHA1(9f8b2ecc07c19f38088cd4be05a498ae4f5af6f5) ) -ROM_END - - - -/* - -Gun Master -Metro Corp. 1994 - -PCB Layout ----------- - -MTR5260-A -|-----------------------------------------------| -|TA7222 3.579545MHz | -| YM3012 6116 | -|C3403 C3403 YM2151 M6295 | -| 26.666MHz GMJA-7 GMJA-8 | -| 6264 | -|J 6264 |--------| D78C10 | -|A 6264 |IMAGETEK| | -|M |14220 | | -|M MM1035 | | | -|A |------------| |--------| | -| | 68000 | GMJA-1 | -| |------------| | -| GMJA-2 | -| 24MHz | -| MACH110 GMJA-3 | -| 6264 | -|DSW1 6264 GMJA-4 | -|DSW2 GMJA-6 GMJA-5 | -|-----------------------------------------------| -Notes: - 68000 clock - 12.000MHz [24/2] - D78C10 clock - 12.000MHz [24/2] - YM2151 clock - 3.579545MHz - Oki M6295 clock - 1.200MHz [24/20], sample rate = 1200000 / 132 - VSync - 60Hz - HSync - 15.55kHz - -68000 @ 12MHz -NEC D78C10 -AMD Mach110 -Imagetek 14220 -YM2151 + M6295 + YM3012 -RAM - CY7C199 (x2), 6164 (x2), LH5168 (x2), 6116 (x1) -DIPSW 8-position (x2) -XTAL - 3.579545MHz (near YM2151 & M6295) -OSC - 24MHz (near 68000 & Mach110) -OSC - 26.666MHz (near 14220) -ROMs 5+6 = Main Prg -ROMs 7+8 = Sound Data -ROMs 1-4 = GFX Data - -*/ - -ROM_START( gunmast ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "gmja-5.20e", 0x000000, 0x040000, CRC(7334b2a3) SHA1(23f0a00b7539329f23eb564bc2823383997f83a9) ) - ROM_LOAD16_BYTE( "gmja-6.20c", 0x000001, 0x040000, CRC(c38d185e) SHA1(fdbc16a6ffc791778cb7ac2dafd15f4eb72c4cf9) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "gmja-8.3i", 0x000000, 0x004000, CRC(ab4bcc56) SHA1(9ef91e14d0974f30c874a12370ddd04ee8ab6d5d) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "gmja-2.14i", 0x000000, 0x080000, CRC(bc9acd54) SHA1(e6154cc5e8e33b38f56a0055dd0a51aa6adc4f9c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "gmja-4.18i", 0x000002, 0x080000, CRC(f2d72d90) SHA1(575a01999e4608d1503904ba22310413b680b2b9) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "gmja-1.12i", 0x000004, 0x080000, CRC(336d0a90) SHA1(39ff59ba13e21f2a8488e5dc2d44cf2c50f7c4fb) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "gmja-3.16i", 0x000006, 0x080000, CRC(a6651297) SHA1(cdfb8a176cced552a9e72d39980c7fb005edf4f9) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "gmja-7.3g", 0x000000, 0x040000, CRC(3a342312) SHA1(5c31bc9ec5159e1a0c9a931c7b702a31d3a1af10) ) -ROM_END - - - -/*************************************************************************** - -Karate Tournament - -68000-12 -NEC D78C10ACN -OKI6295 -YM2413 -OSC: 24.000MHz, 20.000MHz, XTAL 3579545 - -On board, location for but unused things... -Unused DIP#3 -Unused BAT1 - -I can see a large square surface-mounted chip with -these markings... - -ImageTek Inc. -14100 -052 -9227KK702 - -Filename Type Location -KT001.BIN 27C010 1I -KT002.BIN 27C2001 8G -KT003.BIN 27C2001 10G -KT008.BIN 27C2001 1D - -Filename Chip Markings Location -KTMASK1.BIN 361A04 9241D 15F -KTMASK2.BIN 361A05 9239D 17F -KTMASK3.BIN 361A06 9239D 15D -KTMASK4.BIN 361A07 9239D 17D - -***************************************************************************/ - -ROM_START( karatour ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "kt002.8g", 0x000000, 0x040000, CRC(316a97ec) SHA1(4b099d2fa91822c9c85d647aab3d6779fc400250) ) - ROM_LOAD16_BYTE( "kt003.10g", 0x000001, 0x040000, CRC(abe1b991) SHA1(9b6327169d66717dd9dd74816bc33eb208c3763c) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "kt001.1i", 0x000000, 0x004000, CRC(1dd2008c) SHA1(488b6f5d15bdbc069ee2cd6d7a0980a228d2f790) ) // 11xxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "ktmask.15f", 0x000000, 0x100000, CRC(f6bf20a5) SHA1(cb4cb249eb1c106fe7ef0ace735c0cc3106f1ab7) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ktmask.17d", 0x000002, 0x100000, CRC(794cc1c0) SHA1(ecfdec5874a95846c0fb7966fdd1da625d85531f) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ktmask.17f", 0x000004, 0x100000, CRC(ea9c11fc) SHA1(176c4419cfe13ff019654a93cd7b0befa238bbc3) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ktmask.15d", 0x000006, 0x100000, CRC(7e15f058) SHA1(267f0a5acb874d4fff3556ffa405e24724174667) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "kt008.1d", 0x000000, 0x040000, CRC(47cf9fa1) SHA1(88923ace550154c58c066f859cadfa7864c5344c) ) -ROM_END - - -/*************************************************************************** - -Moeyo Gonta!! (Lady Killer) -(c)1993 Yanyaka -VG460-(B) - -CPU : TMP68HC000P-16 -Sound: D78C10ACW YM2413 M6295 -OSC : 3.579545MHz(XTAL1) 20.0000MHz(XTAL2) 24.0000MHz(XTAL3) - -ROMs: -e1.1i - Sound program (27c010) - -j2.8g - Main programs (27c020) -j3.10g / - -ladyj-4.15f - Graphics (mask, read as 27c800) -ladyj-5.17f | -ladyj-6.15d | -ladyj-7.17d / - -e8j.1d - Samples (27c020) - -Others: -Imagetek I4100 052 9330EK712 - -***************************************************************************/ - -ROM_START( ladykill ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e2.bin", 0x000000, 0x040000, CRC(211a4865) SHA1(4315c0a708383d357d8dd89a1820fe6cf7652adb) ) - ROM_LOAD16_BYTE( "e3.bin", 0x000001, 0x040000, CRC(581a55ea) SHA1(41bfcaae84e583bf185948ab53ec39c05180a7a4) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "e1.1i", 0x000000, 0x004000, CRC(a4d95cfb) SHA1(2fd8a5cbb0dc289bd5294519dbd5369bfb4c2d4d) ) // 11xxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "ladyj-4.15f", 0x000000, 0x100000, CRC(65e5906c) SHA1(cc3918c2094ca819ec4043055564e1dbff4a4750) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-7.17d", 0x000002, 0x100000, CRC(56bd64a5) SHA1(911272078b0fd375111f5d1463945c2075c19e40) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-5.17f", 0x000004, 0x100000, CRC(a81ffaa3) SHA1(5c161b0ef33f1bab077e9a2eb2d3432825729e83) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-6.15d", 0x000006, 0x100000, CRC(3a34913a) SHA1(a55624ede7c368e61555ca7b9cd9e6948265b784) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "e8.bin", 0x000000, 0x040000, CRC(da88244d) SHA1(90c0cc275b69afffd9a0126985fd3fe16d44dced) ) -ROM_END - -ROM_START( moegonta ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "j2.8g", 0x000000, 0x040000, CRC(aa18d130) SHA1(6e0fd3b95d8589665b418bcae4fe64b288289c78) ) - ROM_LOAD16_BYTE( "j3.10g", 0x000001, 0x040000, CRC(b555e6ab) SHA1(adfc6eafec612c8770b9f832a0a2574c53c3d047) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "e1.1i", 0x000000, 0x004000, CRC(a4d95cfb) SHA1(2fd8a5cbb0dc289bd5294519dbd5369bfb4c2d4d) ) // 11xxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "ladyj-4.15f", 0x000000, 0x100000, CRC(65e5906c) SHA1(cc3918c2094ca819ec4043055564e1dbff4a4750) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-7.17d", 0x000002, 0x100000, CRC(56bd64a5) SHA1(911272078b0fd375111f5d1463945c2075c19e40) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-5.17f", 0x000004, 0x100000, CRC(a81ffaa3) SHA1(5c161b0ef33f1bab077e9a2eb2d3432825729e83) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "ladyj-6.15d", 0x000006, 0x100000, CRC(3a34913a) SHA1(a55624ede7c368e61555ca7b9cd9e6948265b784) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "e8j.1d", 0x000000, 0x040000, CRC(f66c2a80) SHA1(d95ddc8fe4144a6ad4a92385ff962d0b9391d53b) ) -ROM_END - - -/*************************************************************************** - -Last Fortress - Toride -Metro 1992 -VG420 - - TR_JB12 5216 - SW2 SW1 NEC78C10 3.579MHz - - 6269 - TR_JB11 - 55328 55328 55328 24MHz - - 4064 4064 TR_ TR_ 68000-12 - Imagetek JC10 JC09 - 14100 - - TR_ TR_ TR_ TR_ TR_ TR_ TR_ TR_ - JC08 JC07 JC06 JC05 JC04 JC03 JC02 JC01 - -***************************************************************************/ - -ROM_START( lastfort ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "tr_jc09", 0x000000, 0x020000, CRC(8b98a49a) SHA1(15adca78d54973820d04f8b308dc58d0784eb900) ) - ROM_LOAD16_BYTE( "tr_jc10", 0x000001, 0x020000, CRC(8d04da04) SHA1(5c7e65a39929e94d1fa99aeb5fed7030b110451f) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "tr_jb12", 0x000000, 0x004000, CRC(8a8f5fef) SHA1(530b4966ec058cd80a2fc5f9e961239ce59d0b89) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "tr_jc02", 0x000000, 0x020000, CRC(db3c5b79) SHA1(337f4c547a6267f317415cbc78cdac41574b1024) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc04", 0x000001, 0x020000, CRC(f8ab2f9b) SHA1(bfbbd5ec2bc039b8eaef92467c2e7fd3b425b477) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc06", 0x000002, 0x020000, CRC(47a7f397) SHA1(1d2b11b95ce81ca66713457283464d6d85753e4b) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc08", 0x000003, 0x020000, CRC(d7ba5e26) SHA1(294fd9b68eebd28ca64627f0d6e64b325cab18a0) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc01", 0x000004, 0x020000, CRC(3e3dab03) SHA1(e3c6eb73467f0ed207657084e51ee87d85152c3f) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc03", 0x000005, 0x020000, CRC(87ac046f) SHA1(6555a55642383990bc7a8282ab5ea8fc0ba6cd14) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc05", 0x000006, 0x020000, CRC(3fbbe49c) SHA1(642631e69d78898403013884cf0fb711ea000541) , ROM_SKIP(7)) - ROMX_LOAD( "tr_jc07", 0x000007, 0x020000, CRC(05e1456b) SHA1(51cd3ad2aa9c0adc7b9d63a337b247b4b65701ca) , ROM_SKIP(7)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "tr_jb11", 0x000000, 0x020000, CRC(83786a09) SHA1(910cf0ccf4493f2a80062149f6364dbb6a1c2a5d) ) -ROM_END - -/* German version on PCB VG460-(A) */ - -ROM_START( lastforg ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "trma02.bin", 0x000000, 0x020000, CRC(e6f40918) SHA1(c8c9369103530b2214c779c8a643ba9349b3eac5) ) - ROM_LOAD16_BYTE( "trma03.bin", 0x000001, 0x020000, CRC(b00fb126) SHA1(7dd4b7a2d1c5401fde2275ef76fac1ccc586a0bd) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "trma01.bin", 0x000000, 0x004000, CRC(8a8f5fef) SHA1(530b4966ec058cd80a2fc5f9e961239ce59d0b89) ) // 11xxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "trma04.bin", 0x000000, 0x080000, CRC(5feafc6f) SHA1(eb50905eb0d25eb342e08d591907f79b5eadff43) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trma07.bin", 0x000002, 0x080000, CRC(7519d569) SHA1(c88932a19a48d45a19b777113a4719b18f42a297) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trma05.bin", 0x000004, 0x080000, CRC(5d917ba5) SHA1(34fc72924fa2877c1038d7f61b22f7667af01e9f) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trma06.bin", 0x000006, 0x080000, CRC(d366c04e) SHA1(e0a67688043cb45916860d32ff1076d9257e6ad9) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "trma08.bin", 0x000000, 0x020000, CRC(83786a09) SHA1(910cf0ccf4493f2a80062149f6364dbb6a1c2a5d) ) -ROM_END - -/*************************************************************************** - -Last Fortress - Toride (Erotic) -Metro Corporation. - -Board number VG420 - -CPU: MC68000P12 -SND: OKI M6295+ YM2413 + NEC D78C10ACW + NEC D4016 (ram?) -DSW: see manual (scanned in sub-directory Manual) -OSC: 24.000 MHz - -***************************************************************************/ - -ROM_START( lastfero ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "tre_jc09", 0x000000, 0x020000, CRC(32f43390) SHA1(b5bad9d80f2155f277265fe487a59f0f4ec6575d) ) - ROM_LOAD16_BYTE( "tre_jc10", 0x000001, 0x020000, CRC(9536369c) SHA1(39291e92c107be35d130ff29533b42581efc308b) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "tr_jb12", 0x000000, 0x004000, CRC(8a8f5fef) SHA1(530b4966ec058cd80a2fc5f9e961239ce59d0b89) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "tre_jc02", 0x000000, 0x020000, CRC(11cfbc84) SHA1(fb7005be7678564713b5480569f2cdab6c36f029) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc04", 0x000001, 0x020000, CRC(32bf9c26) SHA1(9d16eca8810d1823726dc9c047504bd24f2a55f7) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc06", 0x000002, 0x020000, CRC(16937977) SHA1(768bb6b1c9b90b2eedc9dbb19c8e9fa8f4265f17) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc08", 0x000003, 0x020000, CRC(6dd96a9b) SHA1(fe8214d57dc83157eff53f2d83bd3a4e2da91555) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc01", 0x000004, 0x020000, CRC(aceb44b3) SHA1(9a236eddbc916c206bfa694b576d971d788e8eb1) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc03", 0x000005, 0x020000, CRC(f18f1248) SHA1(30e39d904368c61a46719a0f21a6acb7fa55593f) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc05", 0x000006, 0x020000, CRC(79f769dd) SHA1(7a9ff8e961ae09fdf36a0a751befc141f47c9fd8) , ROM_SKIP(7)) - ROMX_LOAD( "tre_jc07", 0x000007, 0x020000, CRC(b6feacb2) SHA1(85df28d5ff6601753a435e31bcaf45702c7489ea) , ROM_SKIP(7)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "tr_jb11", 0x000000, 0x020000, CRC(83786a09) SHA1(910cf0ccf4493f2a80062149f6364dbb6a1c2a5d) ) -ROM_END - - -/*************************************************************************** - -Mahjong Doukyuhsei (JPN Ver.) - -(c)1995 make software/elf/media trading corp. - -CPU :68000 16MHz -Sound :YM2413 custom -OSC :16.0000MHz 3.579545MHz 26.666MHz - -Board Name?:VG330-B - -***************************************************************************/ - -ROM_START( dokyusei ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "330_a06.bin", 0x000000, 0x020000, CRC(36157c2e) SHA1(f855175143caf476dcbee5a8aaec802a8fdb64fa) ) - ROM_LOAD16_BYTE( "330_a05.bin", 0x000001, 0x020000, CRC(177f50d2) SHA1(2298411152553041b907d9243aaa7983ca21c946) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "2.bin", 0x000000, 0x200000, CRC(075bface) SHA1(7f0e47ebdc37a1fc09b072cb8e0f38258a702a3d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4.bin", 0x000002, 0x200000, CRC(bc631438) SHA1(da3ef24d94e69197e3c69e4fd2b716162c275278) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1.bin", 0x000004, 0x200000, CRC(4566c29b) SHA1(3216e21d898855cbb0ad328e6d45f3726d95b099) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3.bin", 0x000006, 0x200000, CRC(5f6d7969) SHA1(bcb48c5808f268ca35a28f162d4e9da9df65b843) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "7.bin", 0x000000, 0x100000, CRC(c572aee1) SHA1(2a3baf962617577f8ac3f9e58fb4e5a0dae4f0e8) ) // 4 x 0x40000 -ROM_END - - -/*************************************************************************** - -Mahjong Doukyuusei Special -(c)1995 Make Software / Elf / Media Trading - -Board: VG340-A - -CPU: 68000-16 -Sound: M6295 - YM2413 -OSC: 32.0000MHz - 3.579545MHz -EEPROM: 93C46 -Custom: 14300 095 - -***************************************************************************/ - -ROM_START( dokyusp ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x020000, CRC(01729b7f) SHA1(42a60f034ee5d5c2a42856b97d0d4c499b24627b) ) - ROM_LOAD16_BYTE( "5.bin", 0x000001, 0x020000, CRC(57770776) SHA1(15093886f2fe49443e8d7541903714de0a14aa0b) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "2l.bin", 0x0000000, 0x400000, CRC(4bed184d) SHA1(12bdb00030d19c2c9fb2120ed6b267a7982c213a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4l.bin", 0x0000002, 0x400000, CRC(2ee468e6) SHA1(ced58fdd8b5c99ce3f09cece2e05d7fcf4c7f786) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1l.bin", 0x0000004, 0x400000, CRC(510ace14) SHA1(f5f1f46f4d8d150dd9e17083f32e9b45938c1dad) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3l.bin", 0x0000006, 0x400000, CRC(82ea562e) SHA1(42839de9f346ccd0736bdbd3eead61ad66fcb666) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "7.bin", 0x000000, 0x200000, CRC(763985e1) SHA1(395d925b79922de5060a3f59de99fbcc9bd40fad) ) -ROM_END - - -/*************************************************************************** - -Mahjong Gakuensai (JPN Ver.) -(c)1997 Make Software - -Board: VG340-A - -CPU: 68000-16 -Sound: M6295 - YM2413 -OSC: 26.6660MHz - 3.5795MHz - -Custom: 14300 095 - -***************************************************************************/ - -ROM_START( gakusai ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x040000, CRC(6f8ab082) SHA1(18caf49a0c65f831d375f089f27b8570b094f029) ) - ROM_LOAD16_BYTE( "5.bin", 0x000001, 0x040000, CRC(010176c4) SHA1(48fcea18c02c1426a699a636f44b21cf7625e8a0) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "2l.bin", 0x0000000, 0x400000, CRC(45dfb5c7) SHA1(04338d695bd6973fd7d7286a8da563250ae4f71b) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4l.bin", 0x0000002, 0x400000, CRC(7ab64f49) SHA1(e4d9a7bf97635b41fe632b3542eee1f609db080a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1l.bin", 0x0000004, 0x400000, CRC(75093421) SHA1(cfe549e24abfedd740ead30cab235df494e9f45d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3l.bin", 0x0000006, 0x400000, CRC(4dcfcd98) SHA1(bfb882d99c854e68e86f4e8f8aa7d02dcf5e9cfc) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "2u.bin", 0x1000000, 0x400000, CRC(8d4f912b) SHA1(1fcf1dd50fd678cc908ab47bcccaa4ed7b2b6938) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4u.bin", 0x1000002, 0x400000, CRC(1f83e98a) SHA1(10b2d3ceb4bda6a2ecf795b865c948563c2fb84d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1u.bin", 0x1000004, 0x400000, CRC(28b386d9) SHA1(d1e151fa112c86d2cb97b7a5439a1e549359055d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3u.bin", 0x1000006, 0x400000, CRC(87f3c5e6) SHA1(097c0a53b040399d928f17fe3e9f42755b1d72f3) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "7.bin", 0x000000, 0x400000, CRC(34575a14) SHA1(53d458513f208f07844e1727d5889e85dcd4f0ed) ) -ROM_END - - -/*************************************************************************** - -Mahjong Gakuensai 2 (JPN Ver.) -(c)1998 Make Software - -Board: VG340-A - -CPU: 68000-16 -Sound: M6295 - YM2413 -OSC: 26.6660MHz - 3.579545MHz - -Custom: 14300 095 - -***************************************************************************/ - -ROM_START( gakusai2 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "mg2a06.bin", 0x000000, 0x020000, CRC(8b006dd4) SHA1(893ec0e7c367d79bc99e65ab8abd0d290f2ede58) ) - ROM_LOAD16_BYTE( "mg2a05.bin", 0x000001, 0x020000, CRC(7702b9ac) SHA1(09d0c11fa2c9ed9cde365cb1ff215d55e39b7734) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "mg22l.bin", 0x0000000, 0x400000, CRC(28366708) SHA1(56fccee126916cc301678a205dfe629efefb79db) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg24l.bin", 0x0000002, 0x400000, CRC(9e003bb0) SHA1(aa73cc0e79732fd6826c89671b179cb3189571e0) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg21l.bin", 0x0000004, 0x400000, CRC(3827098d) SHA1(dda9fb6c56c4408802d54c5975fb9470ca2e1d34) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg23l.bin", 0x0000006, 0x400000, CRC(a6f96961) SHA1(dd2578da5d091991580a2c7a979ba8dbfa0cceb3) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg22u.bin", 0x1000000, 0x400000, CRC(53ffa68a) SHA1(3d8d69c2063c78bd79cdbd7457bca1af9700bf3c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg24u.bin", 0x1000002, 0x400000, CRC(c218e9ab) SHA1(3b6ee4cc828198b284ac9020e2da911efc90725a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg21u.bin", 0x1000004, 0x400000, CRC(385495e5) SHA1(5181e279fef23780d07ab5a124618e4d0e5cb821) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "mg23u.bin", 0x1000006, 0x400000, CRC(d8315923) SHA1(6bb5cad317f7efa6a384f6c257c5faeb789a8eed) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mg2-7.bin", 0x000000, 0x400000, CRC(2f1c041e) SHA1(a72720b3d7f816e23452775f2fd4223cf2d02985) ) -ROM_END - - -/*************************************************************************** - -Mouja (JPN Ver.) -(c)1996 Etona / (c)1995 FPS/FWS -VG410-B - -CPU :TMP68H000P-12 -Sound :YM2413,OKI M6295 -OSC :16000.00KHz,3.579545MHz,26.666MHz -other :Imagetek Inc 14300 095 - -***************************************************************************/ - -ROM_START( mouja ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "10.bin", 0x000000, 0x040000, CRC(f9742b69) SHA1(f8c6508b227403a82413ceeb0651922759d7e0f4) ) - ROM_LOAD16_BYTE( "9.bin", 0x000001, 0x040000, CRC(dc77216f) SHA1(3b73d29f4e8e385f45f2abfb38eaffc2d8406948) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "42.bin", 0x000000, 0x100000, CRC(c4dd3194) SHA1(c9c88a8d2046224957b35de14763aa4bdf0d407f) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "86.bin", 0x000002, 0x100000, CRC(09530f9d) SHA1(03f2ec5ea694266808d245abe7f688de0ef6d853) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "31.bin", 0x000004, 0x100000, CRC(5dd7a7b2) SHA1(b0347e8951b29356a7d945b906d93c40b9abc19c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "75.bin", 0x000006, 0x100000, CRC(430c3925) SHA1(41e5bd02a665eee87ef8f4ae9f4bee374c25e00b) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) /* Samples */ - ROM_LOAD( "11.bin", 0x000000, 0x100000, CRC(fe3df432) SHA1(4fb7ad997ca6e91468d7516e5c4a94cde6e07104) ) - - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x020000) - ROM_COPY( REGION_USER1, 0x020000, 0x020000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x040000, 0x020000) - ROM_COPY( REGION_USER1, 0x020000, 0x060000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x080000, 0x020000) - ROM_COPY( REGION_USER1, 0x040000, 0x0a0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x0c0000, 0x020000) - ROM_COPY( REGION_USER1, 0x060000, 0x0e0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x100000, 0x020000) - ROM_COPY( REGION_USER1, 0x080000, 0x120000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x140000, 0x020000) - ROM_COPY( REGION_USER1, 0x0a0000, 0x160000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x180000, 0x020000) - ROM_COPY( REGION_USER1, 0x0c0000, 0x1a0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x1c0000, 0x020000) - ROM_COPY( REGION_USER1, 0x0e0000, 0x1e0000, 0x020000) -ROM_END - - -/*************************************************************************** - -Pang Poms (c) 1992 Metro - -Pcb code: VG420 (Same as Toride) - -Cpus: M68000, Z80 -Clocks: 24 MHz, 3.579 MHz -Sound: M6295, YM2413, _unused_ slot for a YM2151 - -Custom graphics chip - Imagetek 14100 052 9227KK701 (same as Karate Tournament) - -***************************************************************************/ - -ROM_START( pangpoms ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "ppoms09.bin", 0x000000, 0x020000, CRC(0c292dbc) SHA1(8b09de2a560e804e0dea514c95b317c2e2b6501d) ) - ROM_LOAD16_BYTE( "ppoms10.bin", 0x000001, 0x020000, CRC(0bc18853) SHA1(68d50ad50caad34e72d32e7b9fea1d85af74b879) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "ppoms12.bin", 0x000000, 0x004000, CRC(a749357b) SHA1(1555f565c301c5be7c49fc44a004b5c0cb3777c6) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "ppoms02.bin", 0x000000, 0x020000, CRC(88f902f7) SHA1(12ea58d7c000b629ccdceec3dedc2747a63b84be) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms04.bin", 0x000001, 0x020000, CRC(9190c2a0) SHA1(a7399cc2dea5a963e7c930e426915e8eb3552213) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms06.bin", 0x000002, 0x020000, CRC(ed15c93d) SHA1(95072e7d1def0d8e97946a612b90ce078c64aed2) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms08.bin", 0x000003, 0x020000, CRC(9a3408b9) SHA1(924b184d3a47bbe8aa5d41761ea5e94ba7e4f2e9) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms01.bin", 0x000004, 0x020000, CRC(11ac3810) SHA1(6ada82a73d4383f99f5be67369b810a692d27ef9) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms03.bin", 0x000005, 0x020000, CRC(e595529e) SHA1(91b4bd1f029ce09d7689815099b38916fe0d2686) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms05.bin", 0x000006, 0x020000, CRC(02226214) SHA1(82302e7f1e7269c45e11dfba45ec7bbf522b47f1) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms07.bin", 0x000007, 0x020000, CRC(48471c87) SHA1(025fa79993788a0091c4edb83423725abd3a47a2) , ROM_SKIP(7)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ppoms11.bin", 0x000000, 0x020000, CRC(e89bd565) SHA1(6c7c1ad67ba708dbbe9654c1d290af290207d2be) ) -ROM_END - -ROM_START( pangpomm ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pa.c09", 0x000000, 0x020000, CRC(e01a7a08) SHA1(1890b290dfb1521ab73b2392409aaf44b99d63bb) ) - ROM_LOAD16_BYTE( "pa.c10", 0x000001, 0x020000, CRC(5e509cee) SHA1(821cfbf5f65cc3091eb8008310266f9f2c838072) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "ppoms12.bin", 0x000000, 0x004000, CRC(a749357b) SHA1(1555f565c301c5be7c49fc44a004b5c0cb3777c6) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "ppoms02.bin", 0x000000, 0x020000, CRC(88f902f7) SHA1(12ea58d7c000b629ccdceec3dedc2747a63b84be) , ROM_SKIP(7)) - ROMX_LOAD( "pj.e04", 0x000001, 0x020000, CRC(54bf2f10) SHA1(2f0f18984e336f226457295d375a73bcf86cef31) , ROM_SKIP(7)) - ROMX_LOAD( "pj.e06", 0x000002, 0x020000, CRC(c8b6347d) SHA1(7090e44dc7032432795b6fb6bc166bf4de159685) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms08.bin", 0x000003, 0x020000, CRC(9a3408b9) SHA1(924b184d3a47bbe8aa5d41761ea5e94ba7e4f2e9) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms01.bin", 0x000004, 0x020000, CRC(11ac3810) SHA1(6ada82a73d4383f99f5be67369b810a692d27ef9) , ROM_SKIP(7)) - ROMX_LOAD( "pj.e03", 0x000005, 0x020000, CRC(d126e774) SHA1(f782d1e1277956f088dc91dec8f338f85b9af13a) , ROM_SKIP(7)) - ROMX_LOAD( "pj.e05", 0x000006, 0x020000, CRC(79c0ec1e) SHA1(b15582e89d859dda4f82908c62e9e07cb45229b9) , ROM_SKIP(7)) - ROMX_LOAD( "ppoms07.bin", 0x000007, 0x020000, CRC(48471c87) SHA1(025fa79993788a0091c4edb83423725abd3a47a2) , ROM_SKIP(7)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ppoms11.bin", 0x000000, 0x020000, CRC(e89bd565) SHA1(6c7c1ad67ba708dbbe9654c1d290af290207d2be) ) -ROM_END - - -/*************************************************************************** - -Poitto! (c)1993 Metro corp -MTR5260-A - -CPU : TMP68HC000P-16 -Sound: D78C10ACW M6295 YM2413 -OSC : 24.0000MHz (OSC1) - (OSC2) - (OSC3) - 3.579545MHz (OSC4) - (OSC5) - -ROMs: -pt-1.13i - Graphics (23c4000) -pt-2.15i | -pt-3.17i | -pt-4.19i / - -pt-jd05.20e - Main programs (27c010) -pt-jd06.20c / - -pt-jc07.3g - Sound data (27c020) -pt-jc08.3i - Sound program (27c010) - -Others: -Imagetek 14100 052 9309EK701 (208pin PQFP) -AMD MACH110-20 (CPLD) - -***************************************************************************/ - -ROM_START( poitto ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pt-jd05.20e", 0x000000, 0x020000, CRC(6b1be034) SHA1(270c94f6017c5ce77f562bfe17273c79d4455053) ) - ROM_LOAD16_BYTE( "pt-jd06.20c", 0x000001, 0x020000, CRC(3092d9d4) SHA1(4ff95355fdf94eaa55c0ad46e6ce3b505e3ef790) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "pt-jc08.3i", 0x000000, 0x004000, CRC(f32d386a) SHA1(655c561aec1112d88c1b94725e932059e5d1d5a8) ) // 1xxxxxxxxxxxxxxxx = 0xFF - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "pt-2.15i", 0x000000, 0x080000, CRC(05d15d01) SHA1(24405908fb8207228cd3419657e0be49e413f152) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pt-4.19i", 0x000002, 0x080000, CRC(8a39edb5) SHA1(1d860e0a1b975a93907d5bb0704e3bad383bbda7) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pt-1.13i", 0x000004, 0x080000, CRC(ea6e2289) SHA1(2c939b32d2bf155bb5c8bd979dadcf4f75e178b0) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pt-3.17i", 0x000006, 0x080000, CRC(522917c1) SHA1(cc2f5b574d31b0b93fe52c690f450b20b233dcad) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pt-jc07.3g", 0x000000, 0x040000, CRC(5ae28b8d) SHA1(5e5f80ebbc4e3726ac8dbbfbefb9217f2e3e3563) ) -ROM_END - - -/*************************************************************************** - -Puzzli -Metro/Banpresto 1995 - -MTR5260-A 3.5759MHz 12MHz - YM2151 6116 - 26.666MHz M6295 PZ.JB7 PZ.JB8 - 78C10 - 7C199 Imagetek - 7C199 14220 - 61C64 - - PZ.JB1 - 68000-16 PZ.JB2 - 32MHz 6164 PZ.JB3 - 6164 PZ.JB4 - SW PZ.JB6 PZ.JB5 - SW - -***************************************************************************/ - -ROM_START( puzzli ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pz.jb5", 0x000000, 0x020000, CRC(33bbbd28) SHA1(41a98cfbdd60a638e4aa08f15f1730a2436106f9) ) - ROM_LOAD16_BYTE( "pz.jb6", 0x000001, 0x020000, CRC(e0bdea18) SHA1(9941a2cd88d7a3c1a640f837d9f34c39ba643ee5) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "pz.jb8", 0x000000, 0x004000, CRC(c652da32) SHA1(907eba5103373ca6204f9d62c426ccdeef0a3791) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "pz.jb2", 0x000000, 0x080000, CRC(0c0997d4) SHA1(922d8553ef505f65238e5cc77b45861a80022d75) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pz.jb4", 0x000002, 0x080000, CRC(576bc5c2) SHA1(08c10e0a3356ee1f79b78eff92395d8b18e43485) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pz.jb1", 0x000004, 0x080000, CRC(29f01eb3) SHA1(1a56f0b8efb599ae4f3cd0a4f0b6a6152ea6b117) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pz.jb3", 0x000006, 0x080000, CRC(6753e282) SHA1(49d092543db34f2cb54697897790df12ca3eda74) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pz.jb7", 0x000000, 0x040000, CRC(b3aab610) SHA1(9bcf1f98e19a7e26b22e152313dfbd43c882f008) ) -ROM_END - - -/*************************************************************************** - -Sankokushi (JPN Ver.) -(c)1996 Mitchell - -Board: MTR5260-A - -sound: YM2413 + M6295 - -***************************************************************************/ - -ROM_START( 3kokushi ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x040000, CRC(6104ea35) SHA1(efb4a9a98577894fac720028f18cb9877a00239a) ) - ROM_LOAD16_BYTE( "6.bin", 0x000001, 0x040000, CRC(aac25540) SHA1(811de761bb1b3cc47d811b00f4b5c960c8f061d0) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "8.bin", 0x000000, 0x004000, CRC(f56cca45) SHA1(4739b83b0b3a4235fac10def3d26b0bd190eb12a) ) // (c)1992 Imagetek (11xxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "2.bin", 0x000000, 0x080000, CRC(291f8149) SHA1(82f460517543ef544c21a81e51987fb2f5c6273d) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "4.bin", 0x000002, 0x080000, CRC(9317c359) SHA1(9756757fb5d2b298a2b1917a131f391ef0e31fb9) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "1.bin", 0x000004, 0x080000, CRC(d5495759) SHA1(9cbcb48915ec44a8026d88d96ab391e118e89df5) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "3.bin", 0x000006, 0x080000, CRC(3d76bdf3) SHA1(f621fcc8e6bde58077216b534c2e876ea9311e15) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "7.bin", 0x000000, 0x040000, CRC(78fe9d44) SHA1(365a2d51daa24741957fa619bbbbf96e8f370701) ) -ROM_END - - -/*************************************************************************** - -Pururun (c)1995 Metro/Banpresto -MTR5260-A - -CPU : TMP68HC000P-16 -Sound: D78C10ACW M6295 YM2151 Y3012 -OSC : 24.000MHz (OSC1) - (OSC2) - 26.6660MHz (OSC3) - (OSC4) - 3.579545MHz (OSC5) - -ROMs: -pu9-19-1.12i - Graphics (27c4096) -pu9-19-2.14i | -pu9-19-3.16i | -pu9-19-4.18i / - -pu9-19-5.20e - Main programs (27c010) -pu9-19-6.20c / - -pu9-19-7.3g - Sound data (27c020) -pu9-19-8.3i - Sound program (27c010) - -Others: -Imagetek 14220 071 9338EK707 (208pin PQFP) -AMD MACH110-20 (CPLD) - -***************************************************************************/ - -ROM_START( pururun ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pu9-19-5.20e", 0x000000, 0x020000, CRC(5a466a1b) SHA1(032eeaf66ce1b601385a8e76d2efd9ea6fd34680) ) - ROM_LOAD16_BYTE( "pu9-19-6.20c", 0x000001, 0x020000, CRC(d155a53c) SHA1(6916a1bad82c624b8757f5124416dac50a8dd7f5) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "pu9-19-8.3i", 0x000000, 0x004000, CRC(edc3830b) SHA1(13ee759d10711218465f6d7155e9c443a82b323c) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "pu9-19-2.14i", 0x000000, 0x080000, CRC(21550b26) SHA1(cb2a2f672cdca84def2fac8d325b7a80a1e9bfc0) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pu9-19-4.18i", 0x000002, 0x080000, CRC(3f3e216d) SHA1(9881e07d5ee237b7134e2ddcf9a9887a1d7f3b4c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pu9-19-1.12i", 0x000004, 0x080000, CRC(7e83a75f) SHA1(9f516bbfc4ca8a8e857ebf7a19c37d7f026695a6) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "pu9-19-3.16i", 0x000006, 0x080000, CRC(d15485c5) SHA1(d37670b0d696f4ee9da7b8199da114fb4e45cd20) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x040000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pu9-19-7.3g", 0x000000, 0x040000, CRC(51ae4926) SHA1(1a69a00e960bda399aaf051b3dcc9e0a108c8047) ) -ROM_END - - -/*************************************************************************** - -Sky Alert (JPN Ver.) -(c)1992 Metro -VG420 - -CPU :MC68000P12 -Sound :YM2413,OKI M6295 -OSC :24.0000MHz,3.579545MHz -other :D78C10ACW,Imagetek Inc 14100 052 - -***************************************************************************/ - -ROM_START( skyalert ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "sa_c_09.bin", 0x000000, 0x020000, CRC(6f14d9ae) SHA1(37e134af3d8461280dab971bc3ee9112f25de335) ) - ROM_LOAD16_BYTE( "sa_c_10.bin", 0x000001, 0x020000, CRC(f10bb216) SHA1(d904030fbb838d906ca69a77cffe286e903b273d) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "sa_b_12.bin", 0x000000, 0x004000, CRC(f358175d) SHA1(781d0f846217aa71e3c6d73c1d63bd87d1fa6b48) ) // (c)1992 Imagetek (1xxxxxxxxxxxxxxxx = 0xFF) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "sa_a_02.bin", 0x000000, 0x040000, CRC(f4f81d41) SHA1(85e587b4fda71fa5b944b0ac158d36c00e290f5f) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_04.bin", 0x000001, 0x040000, CRC(7d071e7e) SHA1(24b9b0cb7e9f719259b0444ee896bdc1ad79a28d) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_06.bin", 0x000002, 0x040000, CRC(77e4d5e1) SHA1(420e5aaf187e297b371830ebd5787675cff6177b) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_08.bin", 0x000003, 0x040000, CRC(f2a5a093) SHA1(66d482cc3f45ff7bf1363cf3c88e2dabc902a299) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_01.bin", 0x000004, 0x040000, CRC(41ec6491) SHA1(c0bd66409bc6ea969f4c45cc006fde891ba8b4d7) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_03.bin", 0x000005, 0x040000, CRC(e0dff10d) SHA1(3aa18b05f06b4b0a88ba4df86dfc0ca650c2684e) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_05.bin", 0x000006, 0x040000, CRC(62169d31) SHA1(294887b6ce0d56e053e7f7583b8a160afeef4ce5) , ROM_SKIP(7)) - ROMX_LOAD( "sa_a_07.bin", 0x000007, 0x040000, CRC(a6f5966f) SHA1(00319b96dacc4dcfd70935e1626da0ae6aa63e5a) , ROM_SKIP(7)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sa_a_11.bin", 0x000000, 0x020000, CRC(04842a60) SHA1(ade016c85867dee7ac27efe3910b01f5f8e730a0) ) -ROM_END - - -/*************************************************************************** - -Toride II Adauchi Gaiden (c)1994 Metro corp -MTR5260-A - -CPU : TMP68HC000P-16 -Sound: D78C10ACW M6295 YM2413 -OSC : 24.0000MHz (OSC1) - (OSC2) - 26.6660MHz (OSC3) - 3.579545MHz (OSC4) - (OSC5) - -ROMs: -tr2aja-1.12i - Graphics (27c4096) -tr2aja-2.14i | -tr2aja-3.16i | -tr2aja-4.18i / - -tr2aja-5.20e - Main programs (27c020) -tr2aja-6.20c / - -tr2aja-7.3g - Sound data (27c010) -tr2aja-8.3i - Sound program (27c010) - -Others: -Imagetek 14220 071 9338EK700 (208pin PQFP) -AMD MACH110-20 (CPLD) - -***************************************************************************/ - -ROM_START( toride2g ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "tr2aja-5.20e", 0x000000, 0x040000, CRC(b96a52f6) SHA1(353b5599d50d96b96bdd6352c046ad669cf8da44) ) - ROM_LOAD16_BYTE( "tr2aja-6.20c", 0x000001, 0x040000, CRC(2918b6b4) SHA1(86ebb884759dc9a8a701784d19845467aa1ce11b) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "tr2aja-8.3i", 0x000000, 0x004000, CRC(fdd29146) SHA1(8e996e1afd33f16d35ebf5a40829feb3e92f781f) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "tr2aja-2.14i", 0x000000, 0x080000, CRC(5c73f629) SHA1(b38b7ee213bcc0dd5e4c339a8f9f2fdd81ede6ad) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "tr2aja-4.18i", 0x000002, 0x080000, CRC(67ebaf1b) SHA1(a0c5f253cc33620251fb58ef6f1647453d778462) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "tr2aja-1.12i", 0x000004, 0x080000, CRC(96245a5c) SHA1(524990c88a08648de6f330652fc5c02a27e1325c) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "tr2aja-3.16i", 0x000006, 0x080000, CRC(49013f5d) SHA1(8f29bd2606b30260e9b21886f2b257f7ae8fb2bf) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "tr2aja-7.3g", 0x000000, 0x020000, CRC(630c6193) SHA1(ddb63724e0b0f7264cb02904e49b24b87beb35a9) ) -ROM_END - -ROM_START( torid2gg ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "trii_ge_5", 0x000000, 0x040000, CRC(5e0815a8) SHA1(574c1bf1149b7e98222876b402b20d824f207c79) ) - ROM_LOAD16_BYTE( "trii_ge_6", 0x000001, 0x040000, CRC(55eba67d) SHA1(c12a11a98d49baf3643404a594d2b87b434acb01) ) - - ROM_REGION( 0x02c000, REGION_CPU2, 0 ) /* NEC78C10 Code */ - ROM_LOAD( "trii_jb_8", 0x000000, 0x004000, CRC(0168f46f) SHA1(01bf4cc425d72936897c3c572f6c0b1366fe4041) ) - ROM_CONTINUE( 0x010000, 0x01c000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* Gfx + Data (Addressable by CPU & Blitter) */ - ROMX_LOAD( "trii_gb_2", 0x000000, 0x080000, CRC(5949e65f) SHA1(f51ff9590904e691b9ec91b22d3c52bf579deaff) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trii_gb_4", 0x000002, 0x080000, CRC(adc84c7b) SHA1(fe0f2b6e3c586c427701e43fdd4827c8b183b42a) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trii_gb_1", 0x000004, 0x080000, CRC(bcf30944) SHA1(c36fbffa6062a2443a47d8faf83baa903529ee97) , ROM_GROUPWORD | ROM_SKIP(6)) - ROMX_LOAD( "trii_gb_3", 0x000006, 0x080000, CRC(138e68d0) SHA1(5a9655f31e2f2e2f16a5bdc334efa78b2cfc37d2) , ROM_GROUPWORD | ROM_SKIP(6)) - - ROM_REGION( 0x020000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "trii_ja_7", 0x000000, 0x020000, CRC(6ee32315) SHA1(ef4d59576929deab0aa459a67be21d97c2803dea) ) -ROM_END - -/*************************************************************************** - - - Game Drivers - - -***************************************************************************/ - -/* year rom clone machine inputs init */ -GAME( 1992, karatour, 0, karatour, karatour, karatour, ROT0, "Mitchell", "The Karate Tournament", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, pangpoms, 0, pangpoms, pangpoms, metro, ROT0, "Metro", "Pang Poms" , 0 ) -GAME( 1992, pangpomm, pangpoms, pangpoms, pangpoms, metro, ROT0, "Metro (Mitchell license)", "Pang Poms (Mitchell)" , 0 ) -GAME( 1992, skyalert, 0, skyalert, skyalert, metro, ROT270, "Metro", "Sky Alert" , 0 ) -GAME( 1993?,ladykill, 0, karatour, ladykill, karatour, ROT90, "Yanyaka (Mitchell license)", "Lady Killer", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993?,moegonta, ladykill, karatour, moegonta, karatour, ROT90, "Yanyaka", "Moeyo Gonta!! (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, poitto, 0, poitto, poitto, metro, ROT0, "Metro / Able Corp.", "Poitto!" , 0 ) -GAME( 1994, dharma, 0, dharma, dharma, metro, ROT0, "Metro", "Dharma Doujou" , 0 ) -GAME( 1994, dharmak, dharma, dharma, dharma, dharmak, ROT0, "Metro", "Dharma Doujou (Korea)" , 0 ) -GAME( 1994, lastfort, 0, lastfort, lastfort, metro, ROT0, "Metro", "Last Fortress - Toride" , 0 ) -GAME( 1994, lastfero, lastfort, lastfort, lastfero, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic)" , 0 ) -GAME( 1994, lastforg, lastfort, lastforg, ladykill, metro, ROT0, "Metro", "Last Fortress - Toride (German)" , 0 ) -GAME( 1994, toride2g, 0, toride2g, toride2g, metro, ROT0, "Metro", "Toride II Adauchi Gaiden", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, torid2gg, toride2g, toride2g, toride2g, metro, ROT0, "Metro", "Toride II Adauchi Gaiden (German)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, gunmast, 0, pururun, gunmast, daitorid, ROT0, "Metro", "Gun Master" , 0 ) -GAME( 1995, daitorid, 0, daitorid, daitorid, daitorid, ROT0, "Metro", "Daitoride", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, dokyusei, 0, dokyusei, dokyusei, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei" , 0 ) -GAME( 1995, dokyusp, 0, dokyusp, gakusai, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei Special", 0 ) -GAME( 1995, pururun, 0, pururun, pururun, daitorid, ROT0, "Metro / Banpresto", "Pururun" , 0 ) -GAME( 1995, puzzli, 0, daitorid, puzzli, daitorid, ROT0, "Metro / Banpresto", "Puzzli", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, 3kokushi, 0, 3kokushi, 3kokushi, karatour, ROT0, "Mitchell", "Sankokushi (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, balcube, 0, balcube, balcube, balcube, ROT0, "Metro", "Bal Cube" , 0 ) -GAME( 1996, bangball, 0, bangball, bangball, balcube, ROT0, "Banpresto / Kunihiko Tashiro+Goodhouse", "Bang Bang Ball (v1.05)" , 0 ) -GAME( 1999, batlbubl, bangball, batlbubl, batlbubl, balcube, ROT0, "Limenko", "Battle Bubble (v2.00)" , 0 ) -GAME( 1996, mouja, 0, mouja, mouja, mouja, ROT0, "Etona", "Mouja (Japan)", GAME_NO_COCKTAIL ) -GAME( 1997, gakusai, 0, gakusai, gakusai, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, gakusai2, 0, gakusai2, gakusai, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai 2 (Japan)" , 0 ) - -GAME( 1994, blzntrnd, 0, blzntrnd, blzntrnd, blzntrnd, ROT0, "Human Amusement", "Blazing Tornado", GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, gstrik2, 0, gstrik2, gstrik2, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Japan)", GAME_IMPERFECT_GRAPHICS ) // priority between rounds diff --git a/src/drivers/mhavoc.c b/src/drivers/mhavoc.c deleted file mode 100644 index 4cbc5b39d..000000000 --- a/src/drivers/mhavoc.c +++ /dev/null @@ -1,810 +0,0 @@ -/*************************************************************************** - - Atari Major Havoc hardware - - driver by Mike Appolo - - Modified 10/08/2006 by Jess M. Askey to include support for Speech which was not stuffed on production - Major Havoc PCB's. However, the hardware if stuffed is functional. Speech is used in Major Havoc Return - to Vaxx. - - Games supported: - * Alpha One - * Major Havoc - * Major Havoc: Return to Vax (including speech) - This version is a hack that includes 3 new levels - near the end of the game. Level 19 is incomplete. - - Known bugs: - * none at this time - -**************************************************************************** - - MAJOR HAVOC (Driver) - - Notes: - - This game was provided in three configurations: - 1) New Machine Purchase - 2) Upgrade kit for Tempest (Kit "A") - 3) Upgrade kit for Space Duel, Gravitar, and Black Window (Kit "B") - - Controls on the machine were: - A backlit cylinder (roller) on new Major Havoc machines - or - A Tempest-like spinner on upgrades - - - Memory Map for Major Havoc - - Alpha Processor - D D D D D D D D - Hex Address 7 6 5 4 3 2 1 0 Function - -------------------------------------------------------------------------------- - 0000-01FF | D D D D D D D D | R/W | Program RAM (1/2K) - 0200-07FF | D D D D D D D D | R/W | Paged Program RAM (3K) - 0800-09FF | D D D D D D D D | R/W | Program RAM (1/2K) - | | | - 1000 | D D D D D D D D | R | Gamma Commuication Read Port - | | | - 1200 | D | R | Right Coin (Player 1=0) - 1200 | D | R | Left Coin (Player 1=0) - 1200 | D | R | Aux. Coin (Player 1=0) - 1200 | D | R | Diagnostic Step - 1200 | D | R | Self Test Switch (Player 1=1) - 1200 | D | R | Cabinet Switch (Player 1=1) - 1200 | D | R | Aux. Coin Switch (Player 1=1) - 1200 | D | R | Diagnostic Step - 1200 | D | R | Gammma Rcvd Flag - 1200 | D | R | Gamma Xmtd Flag - 1200 | D | R | 2.4 KHz - 1200 | D | R | Vector Generator Halt Flag - | | | - 1400-141F | D D D D | W | ColorRAM - | | | - 1600 | D | W | Invert X - 1600 | D | W | Invert Y - 1600 | D | W | Player 1 - 1600 | D | W | Not Used - 1600 | D | W | Gamma Proc. Reset - 1600 | D | W | Beta Proc. Reset - 1600 | D | W | Not Used - 1600 | D | W | Roller Controller Light - | | | - 1640 | | W | Vector Generator Go - 1680 | | W | Watchdog Clear - 16C0 | | W | Vector Generator Reset - | | | - 1700 | | W | IRQ Acknowledge - 1740 | D D | W | Program ROM Page Select - 1780 | D | W | Program RAM Page Select - 17C0 | D D D D D D D D | W | Gamma Comm. Write Port - | | | - 1800-1FFF | D D D D D D D D | R/W | Shared Beta RAM(not used) - | | | - 2000-3FFF | D D D D D D D D | R | Paged Program ROM (32K) - 4000-4FFF | D D D D D D D D | R/W | Vector Generator RAM (4K) - 5000-5FFF | D D D D D D D D | R | Vector Generator ROM (4K) - 6000-7FFF | D D D D D D D D | R | Paged Vector ROM (32K) - 8000-FFFF | D D D D D D D D | R | Program ROM (32K) - ------------------------------------------------------------------------------- - - Gamma Processor - - D D D D D D D D - Hex Address 7 6 5 4 3 2 1 0 Function - -------------------------------------------------------------------------------- - 0000-07FF | D D D D D D D D | R/W | Program RAM (2K) - 2000-203F | D D D D D D D D | R/W | Quad-Pokey I/O - | | | - 2800 | D | R | Fire 1 Switch - 2800 | D | R | Shield 1 Switch - 2800 | D | R | Fire 2 Switch - 2800 | D | R | Shield 2 Switch - 2800 | D | R | Not Used - 2800 | D | R | Speech Chip Ready - 2800 | D | R | Alpha Rcvd Flag - 2800 | D | R | Alpha Xmtd Flag - | | | - 3000 | D D D D D D D D | R | Alpha Comm. Read Port - | | | - 3800-3803 | D D D D D D D D | R | Roller Controller Input - | | | - 4000 | | W | IRQ Acknowledge - 4800 | D | W | Left Coin Counter - 4800 | D | W | Right Coin Counter - | | | - 5000 | D D D D D D D D | W | Alpha Comm. Write Port - | | | - 5800 | D D D D D D D D | W | Speech Data Write / Write Strobe Clear - 5900 | | W | Speech Write Strobe Set - | | | - 6000-61FF | D D D D D D D D | R/W | EEROM - 8000-BFFF | D D D D D D D D | R | Program ROM (16K) - ----------------------------------------------------------------------------- - - - - MAJOR HAVOC DIP SWITCH SETTINGS - - $=Default - - DIP Switch at position 13/14S - - 1 2 3 4 5 6 7 8 - STARTING LIVES _________________________________________ - Free Play 1 Coin 2 Coin | | | | | | | | | - 2 3 5 $|Off |Off | | | | | | | - 3 4 4 | On | On | | | | | | | - 4 5 6 | On |Off | | | | | | | - 5 6 7 |Off | On | | | | | | | - GAME DIFFICULTY | | | | | | | | | - Hard | | | On | On | | | | | - Medium $| | |Off |Off | | | | | - Easy | | |Off | On | | | | | - Demo | | | On |Off | | | | | - BONUS LIFE | | | | | | | | | - 50,000 | | | | | On | On | | | - 100,000 $| | | | |Off |Off | | | - 200,000 | | | | |Off | On | | | - No Bonus Life | | | | | On |Off | | | - ATTRACT MODE SOUND | | | | | | | | | - Silence | | | | | | | On | | - Sound $| | | | | | |Off | | - ADAPTIVE DIFFICULTY | | | | | | | | | - No | | | | | | | | On | - Yes $| | | | | | | |Off | - ----------------------------------------- - - DIP Switch at position 8S - - 1 2 3 4 5 6 7 8 - _________________________________________ - Free Play | | | | | | | On |Off | - 1 Coin for 1 Game | | | | | | |Off |Off | - 1 Coin for 2 Games | | | | | | | On | On | - 2 Coins for 1 Game $| | | | | | |Off | On | - RIGHT COIN MECHANISM | | | | | | | | | - x1 $| | | | |Off |Off | | | - x4 | | | | |Off | On | | | - x5 | | | | | On |Off | | | - x6 | | | | | On | On | | | - LEFT COIN MECHANISM | | | | | | | | | - x1 $| | | |Off | | | | | - x2 | | | | On | | | | | - BONUS COIN ADDER | | | | | | | | | - No Bonus Coins $|Off |Off |Off | | | | | | - Every 4, add 1 |Off | On |Off | | | | | | - Every 4, add 2 |Off | On | On | | | | | | - Every 5, add 1 | On |Off |Off | | | | | | - Every 3, add 1 | On |Off | On | | | | | | - ----------------------------------------- - - 2 COIN MINIMUM OPTION: Short pin 6 @13N to ground. - -***************************************************************************/ - -#include "driver.h" -#include "machine/atari_vg.h" -#include "vidhrdw/avgdvg.h" -#include "vidhrdw/vector.h" -#include "sound/5220intf.h" -#include "sound/pokey.h" -#include "mhavoc.h" - -static UINT8 speech_write_buffer; - -/************************************* - * - * Alpha One: dual POKEY? - * - *************************************/ - -static READ8_HANDLER( dual_pokey_r ) -{ - int pokey_num = (offset >> 3) & 0x01; - int control = (offset & 0x10) >> 1; - int pokey_reg = (offset % 8) | control; - - if (pokey_num == 0) - return pokey1_r(pokey_reg); - else - return pokey2_r(pokey_reg); -} - - -static WRITE8_HANDLER( dual_pokey_w ) -{ - int pokey_num = (offset >> 3) & 0x01; - int control = (offset & 0x10) >> 1; - int pokey_reg = (offset % 8) | control; - - if (pokey_num == 0) - pokey1_w(pokey_reg, data); - else - pokey2_w(pokey_reg, data); -} - - -/************************************* - * - * Speech access - * - *************************************/ - -static WRITE8_HANDLER( speech_data_w ) -{ - speech_write_buffer = data; -} - - -static WRITE8_HANDLER( speech_strobe_w ) -{ - tms5220_data_w(0, speech_write_buffer); -} - -/************************************* - * - * Alpha CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( alpha_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_RAM - AM_RANGE(0x0200, 0x07ff) AM_RAMBANK(1) AM_BASE(&mhavoc_zram0) - AM_RANGE(0x0800, 0x09ff) AM_RAM - AM_RANGE(0x0a00, 0x0fff) AM_RAMBANK(1) AM_BASE(&mhavoc_zram1) - AM_RANGE(0x1000, 0x1000) AM_READ(mhavoc_gamma_r) /* Gamma Read Port */ - AM_RANGE(0x1200, 0x1200) AM_READWRITE(mhavoc_port_0_r, MWA8_NOP) /* Alpha Input Port 0 */ - AM_RANGE(0x1400, 0x141f) AM_RAM AM_BASE(&mhavoc_colorram) /* ColorRAM */ - AM_RANGE(0x1600, 0x1600) AM_WRITE(mhavoc_out_0_w) /* Control Signals */ - AM_RANGE(0x1640, 0x1640) AM_WRITE(avgdvg_go_w) /* Vector Generator GO */ - AM_RANGE(0x1680, 0x1680) AM_WRITE(watchdog_reset_w) /* Watchdog Clear */ - AM_RANGE(0x16c0, 0x16c0) AM_WRITE(avgdvg_reset_w) /* Vector Generator Reset */ - AM_RANGE(0x1700, 0x1700) AM_WRITE(mhavoc_alpha_irq_ack_w) /* IRQ ack */ - AM_RANGE(0x1740, 0x1740) AM_WRITE(mhavoc_rom_banksel_w) /* Program ROM Page Select */ - AM_RANGE(0x1780, 0x1780) AM_WRITE(mhavoc_ram_banksel_w) /* Program RAM Page Select */ - AM_RANGE(0x17c0, 0x17c0) AM_WRITE(mhavoc_gamma_w) /* Gamma Communication Write Port */ - AM_RANGE(0x1800, 0x1fff) AM_RAM /* Shared Beta Ram */ - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(2) /* Paged Program ROM (32K) */ - AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x4000)/* Vector Generator RAM */ - AM_RANGE(0x5000, 0x7fff) AM_ROM /* Vector ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* Program ROM (32K) */ -ADDRESS_MAP_END - - - -/************************************* - * - * Gamma CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( gamma_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM /* Program RAM (2K) */ - AM_RANGE(0x0800, 0x0fff) AM_RAM AM_MIRROR (0x1800) - AM_RANGE(0x2000, 0x203f) AM_READWRITE(quad_pokey_r, quad_pokey_w) /* Quad Pokey read */ - AM_RANGE(0x2800, 0x2800) AM_READ(mhavoc_port_1_r) /* Gamma Input Port */ - AM_RANGE(0x3000, 0x3000) AM_READ(mhavoc_alpha_r) /* Alpha Comm. Read Port*/ - AM_RANGE(0x3800, 0x3803) AM_READ(input_port_2_r) /* Roller Controller Input*/ - AM_RANGE(0x4000, 0x4000) AM_READWRITE(input_port_4_r, mhavoc_gamma_irq_ack_w) /* DSW at 8S, IRQ Acknowledge*/ - AM_RANGE(0x4800, 0x4800) AM_WRITE(mhavoc_out_1_w) /* Coin Counters */ - AM_RANGE(0x5000, 0x5000) AM_WRITE(mhavoc_alpha_w) /* Alpha Comm. Write Port */ - AM_RANGE(0x6000, 0x61ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* EEROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* Program ROM (16K) */ -ADDRESS_MAP_END - - - - -/************************************* - * - * Main CPU memory handlers (Alpha One) - * - *************************************/ - -static ADDRESS_MAP_START( alphaone_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_RAM - AM_RANGE(0x0200, 0x07ff) AM_RAMBANK(1) AM_BASE(&mhavoc_zram0) - AM_RANGE(0x0800, 0x09ff) AM_RAM - AM_RANGE(0x0a00, 0x0fff) AM_RAMBANK(1) AM_BASE(&mhavoc_zram1) - AM_RANGE(0x1020, 0x103f) AM_READWRITE(dual_pokey_r, dual_pokey_w) - AM_RANGE(0x1040, 0x1040) AM_READWRITE(alphaone_port_0_r, MWA8_NOP) /* Alpha Input Port 0 */ - AM_RANGE(0x1060, 0x1060) AM_READ(input_port_1_r) /* Gamma Input Port */ - AM_RANGE(0x1080, 0x1080) AM_READ(input_port_2_r) /* Roller Controller Input*/ - AM_RANGE(0x10a0, 0x10a0) AM_WRITE(alphaone_out_0_w) /* Control Signals */ - AM_RANGE(0x10a4, 0x10a4) AM_WRITE(avgdvg_go_w) /* Vector Generator GO */ - AM_RANGE(0x10a8, 0x10a8) AM_WRITE(watchdog_reset_w) /* Watchdog Clear */ - AM_RANGE(0x10ac, 0x10ac) AM_WRITE(avgdvg_reset_w) /* Vector Generator Reset */ - AM_RANGE(0x10b0, 0x10b0) AM_WRITE(mhavoc_alpha_irq_ack_w) /* IRQ ack */ - AM_RANGE(0x10b4, 0x10b4) AM_WRITE(mhavoc_rom_banksel_w) - AM_RANGE(0x10b8, 0x10b8) AM_WRITE(mhavoc_ram_banksel_w) - AM_RANGE(0x10e0, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&mhavoc_colorram) /* ColorRAM */ - AM_RANGE(0x1800, 0x18ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* EEROM */ - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(2) /* Paged Program ROM (32K) */ - AM_RANGE(0x4000, 0x4fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0x4000) /* Vector Generator RAM */ - AM_RANGE(0x5000, 0x7fff) AM_ROM /* Vector ROM */ - AM_RANGE(0x8000, 0xffff) AM_ROM /* Program ROM (32K) */ -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( mhavoc ) - PORT_START /* IN0 - alpha (player_1 = 0) */ - PORT_BIT ( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diag Step/Coin C") PORT_CODE(KEYCODE_F1) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) /* Left Coin Switch */ - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) /* Right Coin */ - - PORT_START /* IN1 - gamma */ - PORT_BIT ( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* IN2 - gamma */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START /* DIP Switch at position 13/14S */ - PORT_DIPNAME( 0x01, 0x00, "Adaptive Difficulty" ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x0c, "50000") - PORT_DIPSETTING( 0x00, "100000") - PORT_DIPSETTING( 0x04, "200000") - PORT_DIPSETTING( 0x08, DEF_STR( None )) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x10, DEF_STR( Easy )) - PORT_DIPSETTING( 0x00, DEF_STR( Medium )) - PORT_DIPSETTING( 0x30, DEF_STR( Hard )) - PORT_DIPSETTING( 0x20, "Demo") - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, "3 (2 in Free Play)") - PORT_DIPSETTING( 0xc0, "4 (3 in Free Play)") - PORT_DIPSETTING( 0x80, "5 (4 in Free Play)") - PORT_DIPSETTING( 0x40, "6 (5 in Free Play)") - - PORT_START /* DIP Switch at position 8S */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:7,8") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Right Coin Mechanism" ) PORT_DIPLOCATION("SW2:5,6") - PORT_DIPSETTING( 0x0c, "x1" ) - PORT_DIPSETTING( 0x08, "x4" ) - PORT_DIPSETTING( 0x04, "x5" ) - PORT_DIPSETTING( 0x00, "x6" ) - PORT_DIPNAME( 0x10, 0x10, "Left Coin Mechanism" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x10, "x1" ) - PORT_DIPSETTING( 0x00, "x2" ) - PORT_DIPNAME( 0xe0, 0xe0, "Bonus Credits" ) PORT_DIPLOCATION("SW2:1,2,3") - PORT_DIPSETTING( 0x80, "2 each 4" ) - PORT_DIPSETTING( 0x40, "1 each 3" ) - PORT_DIPSETTING( 0xa0, "1 each 4" ) - PORT_DIPSETTING( 0x60, "1 each 5" ) - PORT_DIPSETTING( 0xe0, DEF_STR( None ) ) - - PORT_START /* IN5 - dummy for player_1 = 1 on alpha */ - PORT_BIT ( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_DIPNAME( 0x40, 0x40, "Credit to start" ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -INPUT_PORTS_START( mhavocp ) - PORT_START /* IN0 - alpha (player_1 = 0) */ - PORT_BIT ( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diag Step/Coin C") PORT_CODE(KEYCODE_F1) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) /* Left Coin Switch */ - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) /* Right Coin */ - - PORT_START /* IN1 - gamma */ - PORT_BIT ( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* IN2 - gamma */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE - - PORT_START /* DIP Switch at position 13/14S */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x03, "4" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x0c, "50000") - PORT_DIPSETTING( 0x00, "100000") - PORT_DIPSETTING( 0x04, "200000") - PORT_DIPSETTING( 0x08, DEF_STR( None )) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x10, DEF_STR( Easy )) - PORT_DIPSETTING( 0x00, DEF_STR( Medium )) - PORT_DIPSETTING( 0x30, DEF_STR( Hard )) - PORT_DIPSETTING( 0x20, "Demo") - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") - PORT_DIPSETTING( 0x00, "3 (2 in Free Play)") - PORT_DIPSETTING( 0xc0, "4 (3 in Free Play)") - PORT_DIPSETTING( 0x80, "5 (4 in Free Play)") - PORT_DIPSETTING( 0x40, "6 (5 in Free Play)") - - PORT_START /* DIP Switch at position 8S */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:7,8") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Right Coin Mechanism" ) PORT_DIPLOCATION("SW2:5,6") - PORT_DIPSETTING( 0x0c, "x1" ) - PORT_DIPSETTING( 0x08, "x4" ) - PORT_DIPSETTING( 0x04, "x5" ) - PORT_DIPSETTING( 0x00, "x6" ) - PORT_DIPNAME( 0x10, 0x10, "Left Coin Mechanism" ) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x10, "x1" ) - PORT_DIPSETTING( 0x00, "x2" ) - PORT_DIPNAME( 0xe0, 0xe0, "Bonus Credits" ) PORT_DIPLOCATION("SW2:1,2,3") - PORT_DIPSETTING( 0x80, "2 each 4" ) - PORT_DIPSETTING( 0x40, "1 each 3" ) - PORT_DIPSETTING( 0xa0, "1 each 4" ) - PORT_DIPSETTING( 0x60, "1 each 5" ) - PORT_DIPSETTING( 0xe0, DEF_STR( None ) ) - - PORT_START /* IN5 - dummy for player_1 = 1 on alpha */ - PORT_BIT ( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_DIPNAME( 0x40, 0x40, "Credit to start" ) - PORT_DIPSETTING( 0x40, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - -INPUT_PORTS_START( alphaone ) - PORT_START /* IN0 - alpha (player_1 = 0) */ - PORT_BIT ( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT ( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* IN1 - gamma */ - PORT_BIT ( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* IN2 - gamma */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE -INPUT_PORTS_END - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static struct POKEYinterface pokey_interface = -{ - { 0 }, - input_port_3_r -}; - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( mhavoc ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("alpha", M6502, MHAVOC_CLOCK_2_5M) /* 2.5 MHz */ - MDRV_CPU_PROGRAM_MAP(alpha_map, 0) - - MDRV_CPU_ADD_TAG("gamma", M6502, MHAVOC_CLOCK_1_25M) /* 1.25 MHz */ - MDRV_CPU_PROGRAM_MAP(gamma_map, 0) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_MACHINE_RESET(mhavoc) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 300, 0, 260) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(avg_mhavoc) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("pokey.1", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_CONFIG(pokey_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("pokey.2", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("pokey.3", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("pokey.4", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mhavocrv ) - MDRV_IMPORT_FROM( mhavoc ) - - MDRV_SOUND_ADD(TMS5220, MHAVOC_CLOCK/2/9) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( alphaone ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mhavoc) - MDRV_CPU_MODIFY("alpha") - MDRV_CPU_PROGRAM_MAP(alphaone_map, 0) - MDRV_CPU_REMOVE("gamma") - - MDRV_SCREEN_VISIBLE_AREA(0, 580, 0, 500) - - /* sound hardware */ - MDRV_SOUND_REPLACE("pokey.1", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_REPLACE("pokey.2", POKEY, MHAVOC_CLOCK_1_25M) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_REMOVE("pokey.3") - MDRV_SOUND_REMOVE("pokey.4") -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -/* - * Notes: - * the R3 roms are supported as "mhavoc", the R2 roms (with a bug in gameplay) - * are supported as "mhavoc2". - * "Return to Vax" - Jess Askey's souped up version (errors on self test) - * are supported as "mhavocrv". - * Prototype is supported as "mhavocp" - * Alpha one is a single-board prototype - */ - -ROM_START( mhavoc ) - /* Alpha Processor ROMs */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 152KB for ROMs */ - /* Vector Generator ROM */ - ROM_LOAD( "136025.210", 0x05000, 0x2000, CRC(c67284ca) SHA1(d9adad80c266d36429444f483cac4ebcf1fec7b8) ) - - /* Program ROM */ - ROM_LOAD( "136025.216", 0x08000, 0x4000, CRC(522a9cc0) SHA1(bbd75e01c45220e1c87bd1e013cf2c2fb9f376b2) ) - ROM_LOAD( "136025.217", 0x0c000, 0x4000, CRC(ea3d6877) SHA1(27823c1b546c073b37ff11a8cb25312ea71673c2) ) - - /* Paged Program ROM */ - ROM_LOAD( "136025.215", 0x10000, 0x4000, CRC(a4d380ca) SHA1(c3cdc76054be2f904b1fb6f28c3c027eba5c3a70) ) /* page 0+1 */ - ROM_LOAD( "136025.318", 0x14000, 0x4000, CRC(ba935067) SHA1(05ad81e7a1982b9d8fddb48502546f48b5dc21b7) ) /* page 2+3 */ - - /* Paged Vector Generator ROM */ - ROM_LOAD( "136025.106", 0x18000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ - ROM_LOAD( "136025.107", 0x1c000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */ - - /* Gamma Processor ROM */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 16k for code */ - ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) - ROM_RELOAD( 0x0c000, 0x4000 ) /* reset+interrupt vectors */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) - -ROM_END - - -ROM_START( mhavoc2 ) - /* Alpha Processor ROMs */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - /* Vector Generator ROM */ - ROM_LOAD( "136025.110", 0x05000, 0x2000, CRC(16eef583) SHA1(277252bd716dd96d5b98ec5e33a3a6a3bc1a9abf) ) - - /* Program ROM */ - ROM_LOAD( "136025.103", 0x08000, 0x4000, CRC(bf192284) SHA1(4c2dc3ba75122e521ebf2c42f89b31737613c2df) ) - ROM_LOAD( "136025.104", 0x0c000, 0x4000, CRC(833c5d4e) SHA1(932861b2a329172247c1a5d0a6498a00a1fce814) ) - - /* Paged Program ROM - switched to 2000-3fff */ - ROM_LOAD( "136025.101", 0x10000, 0x4000, CRC(2b3b591f) SHA1(39fd6fdd14367906bc0102bde15d509d3289206b) ) /* page 0+1 */ - ROM_LOAD( "136025.109", 0x14000, 0x4000, CRC(4d766827) SHA1(7697bf6f92bff0e62850ed75ff66008a08583ef7) ) /* page 2+3 */ - - /* Paged Vector Generator ROM */ - ROM_LOAD( "136025.106", 0x18000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ - ROM_LOAD( "136025.107", 0x1c000, 0x4000, CRC(5f81c5f3) SHA1(be4055727a2d4536e37ec20150deffdb5af5b01f) ) /* page 2+3 */ - - /* the last 0x1000 is used for the 2 RAM pages */ - - /* Gamma Processor ROM */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 16k for code */ - ROM_LOAD( "136025.108", 0x08000, 0x4000, CRC(93faf210) SHA1(7744368a1d520f986d1c4246113a7e24fcdd6d04) ) - ROM_RELOAD( 0x0c000, 0x4000 ) /* reset+interrupt vectors */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( mhavocrv ) - /* Alpha Processor ROMs */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 152KB for ROMs */ - /* Vector Generator ROM */ - ROM_LOAD( "136025.210", 0x05000, 0x2000, CRC(c67284ca) SHA1(d9adad80c266d36429444f483cac4ebcf1fec7b8) ) - - /* Program ROM */ - ROM_LOAD( "136025.916", 0x08000, 0x4000, CRC(1255bd7f) SHA1(e277fe7b23ce8cf1294b6bfa5548b24a6c8952ce) ) - ROM_LOAD( "136025.917", 0x0c000, 0x4000, CRC(21889079) SHA1(d1ad6d9fa1432912e376bca50ceeefac2bfd6ac3) ) - - /* Paged Program ROM */ - ROM_LOAD( "136025.915", 0x10000, 0x4000, CRC(4c7235dc) SHA1(67cafc2ce438ec389550efb46c554a7fe7b45efc) ) /* page 0+1 */ - ROM_LOAD( "136025.918", 0x14000, 0x4000, CRC(84735445) SHA1(21aacd862ce8911d257c6f48ead119ee5bb0b60d) ) /* page 2+3 */ - - /* Paged Vector Generator ROM */ - ROM_LOAD( "136025.106", 0x18000, 0x4000, CRC(2ca83c76) SHA1(cc1adca32f70af30c4590e9fd6b056b051ccdb38) ) /* page 0+1 */ - ROM_LOAD( "136025.907", 0x1c000, 0x4000, CRC(4deea2c9) SHA1(c4107581748a3f2d2084de2a4f120abd67a52189) ) /* page 2+3 */ - - /* Gamma Processor ROM */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 16k for code */ - ROM_LOAD( "136025.908", 0x08000, 0x4000, CRC(c52ec664) SHA1(08120a385f71b17ec02a3c2ef856ff835a91773e) ) - ROM_RELOAD( 0x0c000, 0x4000 ) /* reset+interrupt vectors */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( mhavocp ) - /* Alpha Processor ROMs */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - /* Vector Generator ROM */ - ROM_LOAD( "136025.010", 0x05000, 0x2000, CRC(3050c0e6) SHA1(f19a9538996d949cdca7e6abd4f04e8ff6e0e2c1) ) - - /* Program ROM */ - ROM_LOAD( "136025.016", 0x08000, 0x4000, CRC(94caf6c0) SHA1(8734411280bd0484c99a59231b97ad64d6e787e8) ) - ROM_LOAD( "136025.017", 0x0c000, 0x4000, CRC(05cba70a) SHA1(c069e6dec3e5bc278103156d0908ab93f3784be1) ) - - /* Paged Program ROM - switched to 2000-3fff */ - ROM_LOAD( "136025.015", 0x10000, 0x4000, CRC(c567c11b) SHA1(23b89389f59bb6a040342adfe583818a91ce5bff) ) - ROM_LOAD( "136025.018", 0x14000, 0x4000, CRC(a8c35ccd) SHA1(c243a5407557390a64c6560d857f5031f839973f) ) - - /* Paged Vector Generator ROM */ - ROM_LOAD( "136025.006", 0x18000, 0x4000, CRC(e272ed41) SHA1(0de395d1c4300a64da7f45746d7b550779e36a21) ) - ROM_LOAD( "136025.007", 0x1c000, 0x4000, CRC(e152c9d8) SHA1(79d0938fa9ad262c7f28c5a8ad21004a4dec9ed8) ) - - /* the last 0x1000 is used for the 2 RAM pages */ - - /* Gamma Processor ROM */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 16k for code */ - ROM_LOAD( "136025.008", 0x8000, 0x4000, CRC(22ea7399) SHA1(eeda8cc40089506063835a62c3273e7dd3918fd5) ) - ROM_RELOAD( 0xc000, 0x4000 )/* reset+interrupt vectors */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( alphaone ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - /* Vector Generator ROM */ - ROM_LOAD( "vec5000.tw", 0x05000, 0x1000, CRC(2a4c149f) SHA1(b60a0b29958bee9b5f7c1d88163680b626bb76dd) ) - - /* Program ROM */ - ROM_LOAD( "8000.tw", 0x08000, 0x2000, CRC(962d4da2) SHA1(2299f850aed7470a80a21526143f7b412a879cb1) ) - ROM_LOAD( "a000.tw", 0x0a000, 0x2000, CRC(f739a791) SHA1(1e70e446fc7dd27683ad71e768ebb2bc1d4fedd3) ) - ROM_LOAD( "twjk1.bin", 0x0c000, 0x2000, CRC(1ead0b34) SHA1(085e05526d029bcff7c8ae050cde73f52ee13846) ) - ROM_LOAD( "e000.tw", 0x0e000, 0x1000, CRC(6b1d7d2b) SHA1(36ac8b53e2fe01ed281c94afec02484ef676ddad) ) - ROM_RELOAD( 0x0f000, 0x1000 ) - - /* Paged Program ROM - switched to 2000-3fff */ - ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) ) - - /* Paged Vector Generator ROM */ - ROM_LOAD( "vec_pg01.tw", 0x18000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) ) - ROM_LOAD( "vec_pg23.tw", 0x1c000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) ) - - /* the last 0x1000 is used for the 2 RAM pages */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "036408-01.b1", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - -ROM_START( alphaona ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - /* Vector Generator ROM */ - ROM_LOAD( "vec5000.tw", 0x05000, 0x1000, CRC(2a4c149f) SHA1(b60a0b29958bee9b5f7c1d88163680b626bb76dd) ) - - /* Program ROM */ - ROM_LOAD( "8000.tw", 0x08000, 0x2000, CRC(962d4da2) SHA1(2299f850aed7470a80a21526143f7b412a879cb1) ) - ROM_LOAD( "a000.tw", 0x0a000, 0x2000, CRC(f739a791) SHA1(1e70e446fc7dd27683ad71e768ebb2bc1d4fedd3) ) - ROM_LOAD( "c000.tw", 0x0c000, 0x2000, CRC(f21fb1ac) SHA1(2590147e75611a3f87397e7b0baa7020e7528ac8) ) - ROM_LOAD( "e000.tw", 0x0e000, 0x1000, CRC(6b1d7d2b) SHA1(36ac8b53e2fe01ed281c94afec02484ef676ddad) ) - ROM_RELOAD( 0x0f000, 0x1000 ) - - /* Paged Program ROM - switched to 2000-3fff */ - ROM_LOAD( "page01.tw", 0x10000, 0x4000, CRC(cbf3b05a) SHA1(1dfaf9300a252c9c921f06167160a59cdf329726) ) - - /* Paged Vector Generator ROM */ - ROM_LOAD( "vec_pg01.tw", 0x18000, 0x4000, CRC(e392a94d) SHA1(b5843da97d7aa5767c87c29660115efc5ad9ad54) ) - ROM_LOAD( "vec_pg23.tw", 0x1c000, 0x4000, CRC(1ff74292) SHA1(90e61c48544c62d905e207bba5c67ae7694e86a5) ) - - /* the last 0x1000 is used for the 2 RAM pages */ - - /* AVG PROM */ - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "136002-125.6c", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) -ROM_END - - - -/************************************* - * - * Driver-specific init - * - *************************************/ - -static DRIVER_INIT( mhavocrv ) -{ - /* install the speech support that was only optionally stuffed for use */ - /* in the Return to Vax hack */ - memory_install_read8_handler(1, ADDRESS_SPACE_PROGRAM, 0x2800, 0x2800, 0, 0, mhavoc_port_1_sp_r); - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0x5800, 0x5800, 0, 0, speech_data_w); - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0x5900, 0x5900, 0, 0, speech_strobe_w); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, mhavoc, 0, mhavoc, mhavoc, 0, ROT0, "Atari", "Major Havoc (rev 3)", GAME_SUPPORTS_SAVE ) -GAME( 1983, mhavoc2, mhavoc, mhavoc, mhavoc, 0, ROT0, "Atari", "Major Havoc (rev 2)", GAME_SUPPORTS_SAVE ) -GAME( 1983, mhavocrv, mhavoc, mhavocrv, mhavoc, mhavocrv, ROT0, "JMA", "Major Havoc (Return to Vax)", GAME_SUPPORTS_SAVE ) -GAME( 1983, mhavocp, mhavoc, mhavoc, mhavocp, 0, ROT0, "Atari", "Major Havoc (prototype)", GAME_SUPPORTS_SAVE ) -GAME( 1983, alphaone, mhavoc, alphaone, alphaone, 0, ROT0, "Atari", "Alpha One (prototype, 3 lives)", GAME_SUPPORTS_SAVE ) -GAME( 1983, alphaona, mhavoc, alphaone, alphaone, 0, ROT0, "Atari", "Alpha One (prototype, 5 lives)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/midtunit.c b/src/drivers/midtunit.c deleted file mode 100644 index 65d139fb1..000000000 --- a/src/drivers/midtunit.c +++ /dev/null @@ -1,1304 +0,0 @@ -/************************************************************************* - - Midway T-unit system - - driver by Alex Pasadyn, Zsolt Vasvari, Kurt Mahan, Ernesto Corvi, - and Aaron Giles - - Games supported: - * Mortal Kombat (T-unit version) - * Mortal Kombat 2 - * NBA Jam - * NBA Jam Tournament Edition - * Judge Dredd (prototype) - - Known bugs: - * page flipping seems off in NBA Jam (or else there's a blank-the - screen bit we're missing) - -**************************************************************************/ - - -#include "driver.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/adsp2100/adsp2100.h" -#include "sndhrdw/williams.h" -#include "sndhrdw/dcs.h" -#include "midtunit.h" - - - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w) - AM_RANGE(0x01000000, 0x013fffff) AM_RAM - AM_RANGE(0x01400000, 0x0141ffff) AM_READWRITE(midtunit_cmos_r, midtunit_cmos_w) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x01480000, 0x014fffff) AM_WRITE(midtunit_cmos_enable_w) - AM_RANGE(0x01600000, 0x0160003f) AM_READ(midtunit_input_r) - AM_RANGE(0x01800000, 0x0187ffff) AM_READWRITE(MRA16_RAM, midtunit_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0x01a80000, 0x01a800ff) AM_READWRITE(midtunit_dma_r, midtunit_dma_w) - AM_RANGE(0x01b00000, 0x01b0001f) AM_WRITE(midtunit_control_w) -/* AM_RANGE(0x01c00060, 0x01c0007f) AM_WRITE(midtunit_cmos_enable_w) */ - AM_RANGE(0x01d00000, 0x01d0001f) AM_READ(midtunit_sound_state_r) - AM_RANGE(0x01d01020, 0x01d0103f) AM_READWRITE(midtunit_sound_r, midtunit_sound_w) - AM_RANGE(0x01d81060, 0x01d8107f) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x01f00000, 0x01f0001f) AM_WRITE(midtunit_control_w) - AM_RANGE(0x02000000, 0x07ffffff) AM_READ(midtunit_gfxrom_r) AM_BASE((UINT16 **)&midyunit_gfx_rom) AM_SIZE(&midyunit_gfx_rom_size) - AM_RANGE(0x1f800000, 0x1fffffff) AM_ROM AM_REGION(REGION_USER1, 0) /* mirror used by MK */ - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) - AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( mk ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - //There should be an additional block button for player 2, but I coudn't find it. - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0002, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_DIPNAME( 0x007c, 0x007c, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x007c, "USA-1" ) - PORT_DIPSETTING( 0x003c, "USA-2" ) - PORT_DIPSETTING( 0x005c, "USA-3" ) - PORT_DIPSETTING( 0x001c, "USA-4" ) - PORT_DIPSETTING( 0x006c, "USA-ECA" ) - PORT_DIPSETTING( 0x000c, "USA-Free Play" ) - PORT_DIPSETTING( 0x0074, "German-1" ) - PORT_DIPSETTING( 0x0034, "German-2" ) - PORT_DIPSETTING( 0x0054, "German-3" ) - PORT_DIPSETTING( 0x0014, "German-4" ) - PORT_DIPSETTING( 0x0064, "German-5" ) - PORT_DIPSETTING( 0x0024, "German-ECA" ) - PORT_DIPSETTING( 0x0004, "German-Free Play" ) - PORT_DIPSETTING( 0x0078, "French-1" ) - PORT_DIPSETTING( 0x0038, "French-2" ) - PORT_DIPSETTING( 0x0058, "French-3" ) - PORT_DIPSETTING( 0x0018, "French-4" ) - PORT_DIPSETTING( 0x0068, "French-ECA" ) - PORT_DIPSETTING( 0x0008, "French-Free Play" ) - PORT_DIPNAME( 0x0080, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0080, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x0100, 0x0000, "Skip Post Test") - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0800, 0x0800, "Comic Book Offer" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0800, DEF_STR( On )) - PORT_DIPNAME( 0x1000, 0x1000, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x1000, DEF_STR( On )) - PORT_DIPNAME( 0x2000, 0x2000, "Low Blows" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x2000, DEF_STR( On )) - PORT_DIPNAME( 0x4000, 0x4000, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x4000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, "Violence" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x8000, DEF_STR( On )) -INPUT_PORTS_END - - -INPUT_PORTS_START( mk2 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0600, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x6000, IP_ACTIVE_LOW, IPT_UNUSED ) - //PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) //Renamed to unused because without it the game seemed to hold P1 Block down-someone with more experience should check - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED ) - /*Note-the real MK2 board has a special cable designed for SF2 cab conversions that has the 2 SF2 - Medium punch/kick buttons as block buttons for MK2. The secondary block button registers in test mode, - but does not have an indicator light show up. During gameplay, the second block only functions temporarily. - You can hold the button, but the character will only take a block position for 1 second. This is correct behavior.*/ - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0002, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_DIPNAME( 0x007c, 0x007c, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x007c, "USA-1" ) - PORT_DIPSETTING( 0x003c, "USA-2" ) - PORT_DIPSETTING( 0x005c, "USA-3" ) - PORT_DIPSETTING( 0x001c, "USA-4" ) - PORT_DIPSETTING( 0x006c, "USA-ECA" ) - PORT_DIPSETTING( 0x000c, "USA-Free Play" ) - PORT_DIPSETTING( 0x0074, "German-1" ) - PORT_DIPSETTING( 0x0034, "German-2" ) - PORT_DIPSETTING( 0x0054, "German-3" ) - PORT_DIPSETTING( 0x0014, "German-4" ) - PORT_DIPSETTING( 0x0064, "German-5" ) - PORT_DIPSETTING( 0x0024, "German-ECA" ) - PORT_DIPSETTING( 0x0004, "German-Free Play" ) - PORT_DIPSETTING( 0x0078, "French-1" ) - PORT_DIPSETTING( 0x0038, "French-2" ) - PORT_DIPSETTING( 0x0058, "French-3" ) - PORT_DIPSETTING( 0x0018, "French-4" ) - PORT_DIPSETTING( 0x0068, "French-ECA" ) - PORT_DIPSETTING( 0x0008, "French-Free Play" ) - PORT_DIPNAME( 0x0080, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0080, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x0100, 0x0000, "Circuit Boards" ) - PORT_DIPSETTING( 0x0100, "2" ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPNAME( 0x0200, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0200, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, "Bill Validator" ) - PORT_DIPSETTING( 0x0000, "Installed" ) - PORT_DIPSETTING( 0x0400, "Not Present" ) - PORT_DIPNAME( 0x0800, 0x0800, "Comic Book Offer" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0800, DEF_STR( On )) - PORT_DIPNAME( 0x1000, 0x1000, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x1000, DEF_STR( On )) - PORT_DIPNAME( 0x2000, 0x2000, "Low Blows" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x2000, DEF_STR( On )) - PORT_DIPNAME( 0x4000, 0x4000, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x4000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, "Violence" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x8000, DEF_STR( On )) -INPUT_PORTS_END - - -INPUT_PORTS_START( jdreddp ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DS1 */ - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused )) //listed as 'Powerup Test' in service mode, does nothing - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0020, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Validator" ) - PORT_DIPSETTING( 0x0000, "Installed" ) - PORT_DIPSETTING( 0x0040, DEF_STR( None ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) //listed as 2/3 player in service mode - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0300, 0x0000, "Coin Counters" ) -// PORT_DIPSETTING( 0x0300, "1 Counter, 1 count/coin" ) - PORT_DIPSETTING( 0x0200, "1 Counter, Totalizing" ) - PORT_DIPSETTING( 0x0100, "2 Counters, 1 count/coin" ) - PORT_DIPSETTING( 0x0000, "1 Counter, 1 count/coin" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Country" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( German ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x7000, 0x5000, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7000, "1" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x5000, "3" ) // the game reads this as Skip Power up Test and Coinage 3 - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x6000, "ECA" ) -// PORT_DIPSETTING( 0x4000, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x2000, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( nbajam ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DS1 */ - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0002, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Video" ) - PORT_DIPSETTING( 0x0000, "Skip" ) - PORT_DIPSETTING( 0x0020, "Show" ) - PORT_DIPNAME( 0x0040, 0x0040, "Validator" ) - PORT_DIPSETTING( 0x0000, "Installed" ) - PORT_DIPSETTING( 0x0040, "Not Present" ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0080, "4" ) - PORT_DIPNAME( 0x0300, 0x0300, "Coin Counters" ) - PORT_DIPSETTING( 0x0300, "1 Counter, 1 count/coin" ) - PORT_DIPSETTING( 0x0200, "1 Counter, Totalizing" ) - PORT_DIPSETTING( 0x0100, "2 Counters, 1 count/coin" ) -// PORT_DIPSETTING( 0x0000, "1 Counter, 1 count/coin" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Country" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7000, "1" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x5000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x6000, "ECA" ) -// PORT_DIPSETTING( 0x4000, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x2000, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( nbajamte ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DS1 */ - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0002, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0020, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Validator" ) - PORT_DIPSETTING( 0x0000, "Installed" ) - PORT_DIPSETTING( 0x0040, "Not Present" ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0080, "4" ) - PORT_DIPNAME( 0x0300, 0x0300, "Coin Counters" ) - PORT_DIPSETTING( 0x0300, "1 Counter, 1 count/coin" ) - PORT_DIPSETTING( 0x0200, "1 Counter, Totalizing" ) - PORT_DIPSETTING( 0x0100, "2 Counters, 1 count/coin" ) -// PORT_DIPSETTING( 0x0000, "1 Counter, 1 count/coin" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Country" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7000, "1" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x5000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x6000, "ECA" ) -// PORT_DIPSETTING( 0x4000, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x2000, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) -INPUT_PORTS_END - - -/************************************* - * - * 34010 configuration - * - *************************************/ - -static struct tms34010_config tms_config = -{ - 0, /* halt on reset */ - NULL, /* generate interrupt */ - midtunit_to_shiftreg, /* write to shiftreg function */ - midtunit_from_shiftreg, /* read from shiftreg function */ - 0, /* display address changed */ - 0 /* display interrupt callback */ -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -/* - all games use identical visible areas and VBLANK timing - based on these video params: - - VERTICAL HORIZONTAL - mk: 0014-0112 / 0120 (254) 002D-00F5 / 00FC (400) - mk2: 0014-0112 / 0120 (254) 002D-00F5 / 00FC (400) - jdredd: 0014-0112 / 0120 (254) 0032-00FA / 00FC (400) - nbajam: 0014-0112 / 0120 (254) 0032-00FA / 00FC (400) -*/ - -static MACHINE_DRIVER_START( tunit_core ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", TMS34010, 50000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_CONFIG(tms_config) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_SCREEN_REFRESH_RATE(MKLA5_FPS) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (288 - 254)) / (MKLA5_FPS * 288))) - MDRV_MACHINE_RESET(midtunit) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 253) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(midtunit) - MDRV_VIDEO_UPDATE(midtunit) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tunit_adpcm ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(tunit_core) - MDRV_IMPORT_FROM(williams_adpcm_sound) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tunit_dcs ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(tunit_core) - MDRV_IMPORT_FROM(dcs_audio_2k) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( mk ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkt-uj12.bin", 0x00000, 0x80000, CRC(f4990bf2) SHA1(796ec84d37c8d20ca36d6439c14dee626fb8481e) ) - ROM_LOAD16_BYTE( "mkt-ug12.bin", 0x00001, 0x80000, CRC(b06aeac1) SHA1(f66655eeab67c8cf5e496ae42dbae54d6400586f) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) - ROM_LOAD( "mkt-ug16.bin", 0x080000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) - ROM_LOAD( "mkt-ug17.bin", 0x100000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) - - ROM_LOAD( "mkt-uj14.bin", 0x300000, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) - ROM_LOAD( "mkt-uj16.bin", 0x380000, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) - ROM_LOAD( "mkt-uj17.bin", 0x400000, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) - - ROM_LOAD( "mkt-ug19.bin", 0x600000, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) - ROM_LOAD( "mkt-ug20.bin", 0x680000, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) - ROM_LOAD( "mkt-ug22.bin", 0x700000, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) - - ROM_LOAD( "mkt-uj19.bin", 0x900000, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) - ROM_LOAD( "mkt-uj20.bin", 0x980000, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) - ROM_LOAD( "mkt-uj22.bin", 0xa00000, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) -ROM_END - - -ROM_START( mkr4 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkr4uj12.bin", 0x00000, 0x80000, CRC(a1b6635a) SHA1(22d396cc9c1e3a14cb01d196de6d3e864f7afc55) ) - ROM_LOAD16_BYTE( "mkr4ug12.bin", 0x00001, 0x80000, CRC(aa94f7ea) SHA1(bd8957bf52f73b49767cc78fec84ed1109a37701) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) - ROM_LOAD( "mkt-ug16.bin", 0x080000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) ) - ROM_LOAD( "mkt-ug17.bin", 0x100000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) ) - - ROM_LOAD( "mkt-uj14.bin", 0x300000, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) - ROM_LOAD( "mkt-uj16.bin", 0x380000, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) ) - ROM_LOAD( "mkt-uj17.bin", 0x400000, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) ) - - ROM_LOAD( "mkt-ug19.bin", 0x600000, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) - ROM_LOAD( "mkt-ug20.bin", 0x680000, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) ) - ROM_LOAD( "mkt-ug22.bin", 0x700000, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) ) - - ROM_LOAD( "mkt-uj19.bin", 0x900000, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) ) - ROM_LOAD( "mkt-uj20.bin", 0x980000, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) ) - ROM_LOAD( "mkt-uj22.bin", 0xa00000, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) ) -ROM_END - - -ROM_START( mk2 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l31", 0x00000, 0x80000, CRC(cf100a75) SHA1(c5cf739fdb08e311f47794eb93a8d34d4bc11cde) ) - ROM_LOAD16_BYTE( "ug12.l31", 0x00001, 0x80000, CRC(582c7dfd) SHA1(f32bd1213ce70f74caa97a2047815cf4baee56b5) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2r32 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l32", 0x00000, 0x80000, CRC(43f773a6) SHA1(a97b75bac2793f99738abcbd4054f2b860aff574) ) - ROM_LOAD16_BYTE( "ug12.l32", 0x00001, 0x80000, CRC(dcde9619) SHA1(72b39bd68eff5938cd87d3388074172a07bda816) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2r21 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.121", 0x00000, 0x80000, CRC(d6a35699) SHA1(17feee7886108d6f946bf04669479d35c2edac76) ) - ROM_LOAD16_BYTE( "ug12.121", 0x00001, 0x80000, CRC(aeb703ff) SHA1(e94cd9e6feb45e3de85661ca12452aff6e14d3ae) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2r14 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l14", 0x00000, 0x80000, CRC(6d43bc6d) SHA1(578ea9c60fa94689d6ae583b86769cd56d8db311) ) - ROM_LOAD16_BYTE( "ug12.l14", 0x00001, 0x80000, CRC(42b0da21) SHA1(94ef25b04c35b4c26b692c2c3c5f68ba747bef49) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2r42 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mk242j12.bin", 0x00000, 0x80000, CRC(c7fb1525) SHA1(350be1a6f6da3a6b42764cfceae196696482def2) ) - ROM_LOAD16_BYTE( "mk242g12.bin", 0x00001, 0x80000, CRC(443d0e0a) SHA1(20e69c266cda59be92d7cd6423f6e03ad65226eb) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2r91 ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l91", 0x00000, 0x80000, CRC(41953903) SHA1(f72f92beb32e724d37e5f951b24539902dc16a9f) ) - ROM_LOAD16_BYTE( "ug12.l91", 0x00001, 0x80000, CRC(c07f745a) SHA1(049a18bc162274c897cae695032f32c851e57330) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -ROM_START( mk2chal ) - ROM_REGION16_LE( 0xc00000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) - ROM_RELOAD( 0x100000, 0x80000 ) - ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) - ROM_RELOAD( 0x300000, 0x80000 ) - ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) ) - ROM_RELOAD( 0x500000, 0x80000 ) - ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) ) - ROM_RELOAD( 0x900000, 0x80000 ) - ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) - ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.chl", 0x00000, 0x80000, CRC(2d5c04e6) SHA1(85947876319c86bdcdeccda99ae1ddbcfb212484) ) - ROM_LOAD16_BYTE( "ug12.chl", 0x00001, 0x80000, CRC(3e7a4bad) SHA1(9a8ad99e09badcea7f2bcf80a649c96a883a0463) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) - ROM_LOAD( "ug16-vid", 0x100000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) ) - ROM_LOAD( "ug17-vid", 0x200000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) ) - - ROM_LOAD( "uj14-vid", 0x300000, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) - ROM_LOAD( "uj16-vid", 0x400000, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) ) - ROM_LOAD( "uj17-vid", 0x500000, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) ) - - ROM_LOAD( "ug19-vid", 0x600000, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) - ROM_LOAD( "ug20-vid", 0x700000, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) ) - ROM_LOAD( "ug22-vid", 0x800000, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) ) - - ROM_LOAD( "uj19-vid", 0x900000, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) ) - ROM_LOAD( "uj20-vid", 0xa00000, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) ) - ROM_LOAD( "uj22-vid", 0xb00000, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) ) -ROM_END - - -/* - equivalences for the extension board version (same contents, split in half) - - ROM_LOAD( "ug14.l1", 0x000000, 0x080000, CRC(74f5aaf1) ) - ROM_LOAD( "ug16.l11", 0x080000, 0x080000, CRC(1cf58c4c) ) - ROM_LOAD( "u8.l1", 0x200000, 0x080000, CRC(56e22ff5) ) - ROM_LOAD( "u11.l1", 0x280000, 0x080000, CRC(559ca4a3) ) - ROM_LOAD( "ug17.l1", 0x100000, 0x080000, CRC(4202d8bf) ) - ROM_LOAD( "ug18.l1", 0x180000, 0x080000, CRC(a3deab6a) ) - - ROM_LOAD( "uj14.l1", 0x300000, 0x080000, CRC(869a3c55) ) - ROM_LOAD( "uj16.l11", 0x380000, 0x080000, CRC(c70cf053) ) - ROM_LOAD( "u9.l1", 0x500000, 0x080000, CRC(67da0769) ) - ROM_LOAD( "u10.l1", 0x580000, 0x080000, CRC(69000ac3) ) - ROM_LOAD( "uj17.l1", 0x400000, 0x080000, CRC(ec3e1884) ) - ROM_LOAD( "uj18.l1", 0x480000, 0x080000, CRC(c9f5aef4) ) - - ROM_LOAD( "u6.l1", 0x600000, 0x080000, CRC(8d4c496a) ) - ROM_LOAD( "u13.l11", 0x680000, 0x080000, CRC(7fb20a45) ) - ROM_LOAD( "ug19.l1", 0x800000, 0x080000, CRC(d6c1f75e) ) - ROM_LOAD( "ug20.l1", 0x880000, 0x080000, CRC(19a33cff) ) - ROM_LOAD( "ug22.l1", 0x700000, 0x080000, CRC(db6cfa45) ) - ROM_LOAD( "ug23.l1", 0x780000, 0x080000, CRC(bfd8b656) ) - - ROM_LOAD( "u7.l1", 0x900000, 0x080000, CRC(3988aac8) ) - ROM_LOAD( "u12.l11", 0x980000, 0x080000, CRC(2ef12cc6) ) - ROM_LOAD( "uj19.l1", 0xb00000, 0x080000, CRC(4eed6f18) ) - ROM_LOAD( "uj20.l1", 0xb80000, 0x080000, CRC(337b1e20) ) - ROM_LOAD( "uj22.l1", 0xa00000, 0x080000, CRC(a6546b15) ) - ROM_LOAD( "uj23.l1", 0xa80000, 0x080000, CRC(45867c6f) ) -*/ - - -ROM_START( nbajam ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "nbau3.bin", 0x010000, 0x20000, CRC(3a3ea480) SHA1(d12a45cba5c35f046b176661d7877fa4fd0e6c13) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "nbau12.bin", 0x000000, 0x80000, CRC(b94847f1) SHA1(e7efa0a379bfa91fe4ffb75f07a5dfbfde9a96b4) ) - ROM_LOAD( "nbau13.bin", 0x080000, 0x80000, CRC(b6fe24bd) SHA1(f70f75b5570a2b368ebc74d2a7d264c618940430) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "nbauj12.bin", 0x00000, 0x80000, CRC(b93e271c) SHA1(b0e9f055376a4a4cd1115a81f71c933903c251b1) ) - ROM_LOAD16_BYTE( "nbaug12.bin", 0x00001, 0x80000, CRC(407d3390) SHA1(a319bc890d94310e44fe2ec98bfc95665a662701) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "nbaug16.bin", 0x080000, 0x80000, CRC(8591c572) SHA1(237bab2e93abf438a84be3603505db5de59922af) ) - ROM_LOAD( "nbaug17.bin", 0x100000, 0x80000, CRC(6f921886) SHA1(72542249ca6602dc4816952765c1810f064ff394) ) - ROM_LOAD( "nbaug18.bin", 0x180000, 0x80000, CRC(5162d3d6) SHA1(14d377977510b7793e4006a7a5089dbfd785d7d1) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "nbauj16.bin", 0x380000, 0x80000, CRC(d2e554f1) SHA1(139aa39bd48b8605058ece188f9f5e6793561fcb) ) - ROM_LOAD( "nbauj17.bin", 0x400000, 0x80000, CRC(b2e14981) SHA1(5cec9b7fcaa6d0ce5bff689541fc98db435c5b5f) ) - ROM_LOAD( "nbauj18.bin", 0x480000, 0x80000, CRC(fdee0037) SHA1(3bcc740f4bdb3236822cd6e7ed06241804351cca) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "nbaug20.bin", 0x680000, 0x80000, CRC(44fd6221) SHA1(1d6754bf2c24950080523f66b77407931babba29) ) - ROM_LOAD( "nbaug22.bin", 0x700000, 0x80000, CRC(ab05ed89) SHA1(4153d098fbaeac963d93f26dcd9d8bc33a48a734) ) - ROM_LOAD( "nbaug23.bin", 0x780000, 0x80000, CRC(7b934c7a) SHA1(a6992fb3c50429ac4fa15bd91612ae0c0b8f961d) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "nbauj20.bin", 0x980000, 0x80000, CRC(f9cebbb6) SHA1(6202e490bc5658bd0741422f841540fcd037cfee) ) - ROM_LOAD( "nbauj22.bin", 0xa00000, 0x80000, CRC(59a95878) SHA1(b95165987853f164842ab2b5895ea95484a1d78b) ) - ROM_LOAD( "nbauj23.bin", 0xa80000, 0x80000, CRC(427d2eee) SHA1(4985e3dd9c9e1bedd5a900958bf549656debd494) ) -ROM_END - - -ROM_START( nbajamr2 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "nbau3.bin", 0x010000, 0x20000, CRC(3a3ea480) SHA1(d12a45cba5c35f046b176661d7877fa4fd0e6c13) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "nbau12.bin", 0x000000, 0x80000, CRC(b94847f1) SHA1(e7efa0a379bfa91fe4ffb75f07a5dfbfde9a96b4) ) - ROM_LOAD( "nbau13.bin", 0x080000, 0x80000, CRC(b6fe24bd) SHA1(f70f75b5570a2b368ebc74d2a7d264c618940430) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "jam2uj12.bin", 0x00000, 0x80000, CRC(0fe80b36) SHA1(fe6b21dc9b393b25c511b2914b568fa92301d749) ) - ROM_LOAD16_BYTE( "jam2ug12.bin", 0x00001, 0x80000, CRC(5d106315) SHA1(e2cddd9ed6771e77711e3a4f25fe2d07712d954e) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "nbaug16.bin", 0x080000, 0x80000, CRC(8591c572) SHA1(237bab2e93abf438a84be3603505db5de59922af) ) - ROM_LOAD( "nbaug17.bin", 0x100000, 0x80000, CRC(6f921886) SHA1(72542249ca6602dc4816952765c1810f064ff394) ) - ROM_LOAD( "nbaug18.bin", 0x180000, 0x80000, CRC(5162d3d6) SHA1(14d377977510b7793e4006a7a5089dbfd785d7d1) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "nbauj16.bin", 0x380000, 0x80000, CRC(d2e554f1) SHA1(139aa39bd48b8605058ece188f9f5e6793561fcb) ) - ROM_LOAD( "nbauj17.bin", 0x400000, 0x80000, CRC(b2e14981) SHA1(5cec9b7fcaa6d0ce5bff689541fc98db435c5b5f) ) - ROM_LOAD( "nbauj18.bin", 0x480000, 0x80000, CRC(fdee0037) SHA1(3bcc740f4bdb3236822cd6e7ed06241804351cca) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "nbaug20.bin", 0x680000, 0x80000, CRC(44fd6221) SHA1(1d6754bf2c24950080523f66b77407931babba29) ) - ROM_LOAD( "nbaug22.bin", 0x700000, 0x80000, CRC(ab05ed89) SHA1(4153d098fbaeac963d93f26dcd9d8bc33a48a734) ) - ROM_LOAD( "nbaug23.bin", 0x780000, 0x80000, CRC(7b934c7a) SHA1(a6992fb3c50429ac4fa15bd91612ae0c0b8f961d) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "nbauj20.bin", 0x980000, 0x80000, CRC(f9cebbb6) SHA1(6202e490bc5658bd0741422f841540fcd037cfee) ) - ROM_LOAD( "nbauj22.bin", 0xa00000, 0x80000, CRC(59a95878) SHA1(b95165987853f164842ab2b5895ea95484a1d78b) ) - ROM_LOAD( "nbauj23.bin", 0xa80000, 0x80000, CRC(427d2eee) SHA1(4985e3dd9c9e1bedd5a900958bf549656debd494) ) -ROM_END - - -ROM_START( nbajamte ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "te-u3.bin", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "te-u12.bin", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) - ROM_LOAD( "te-u13.bin", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "te-uj12.l4", 0x00000, 0x80000, CRC(d7c21bc4) SHA1(e05f0299b955500df6a08b1c0b24b932a9cdfa6a) ) - ROM_LOAD16_BYTE( "te-ug12.l4", 0x00001, 0x80000, CRC(7ad49229) SHA1(e9ceedb0e620809d8a4d42087d806aa296a4cd59) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "te-ug16.bin", 0x080000, 0x80000, CRC(c7ce74d0) SHA1(93861cd909e0f28ed112096d6f9fc57d0d31c57c) ) - ROM_LOAD( "te-ug17.bin", 0x100000, 0x80000, CRC(9401be62) SHA1(597413a8a1eb66a7ad89af2f548fa3062e5e8efb) ) - ROM_LOAD( "te-ug18.bin", 0x180000, 0x80000, CRC(6fd08f57) SHA1(5b7031dffc88374c5bfdf3021aa01ec4e28d0631) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "te-uj16.bin", 0x380000, 0x80000, CRC(905ad88b) SHA1(24c336ccc0e2ac0ee96a34ad6fe4aa7464de0009) ) - ROM_LOAD( "te-uj17.bin", 0x400000, 0x80000, CRC(8a852b9e) SHA1(604c7f4305887e9505320630027765ea76607c58) ) - ROM_LOAD( "te-uj18.bin", 0x480000, 0x80000, CRC(4eb73c26) SHA1(693bf45f777da8e55b7bcd8699ea5bd711964941) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "te-ug20.bin", 0x680000, 0x80000, CRC(8a48728c) SHA1(3684099b4934b027336c319c77d9e0710b8c22dc) ) - ROM_LOAD( "te-ug22.bin", 0x700000, 0x80000, CRC(3b05133b) SHA1(f6067abb92b8751afe7352a4f1b1a22c9528002b) ) - ROM_LOAD( "te-ug23.bin", 0x780000, 0x80000, CRC(854f73bc) SHA1(242cc8ce28711f6f0787524a1070eb4b0956e6ae) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "te-uj20.bin", 0x980000, 0x80000, CRC(bf263d61) SHA1(b5b59e8df55f8030eff068c1d8b07dad8521bf5d) ) - ROM_LOAD( "te-uj22.bin", 0xa00000, 0x80000, CRC(39791051) SHA1(7aa02500ddacd31fca04044a22a38f36452ca300) ) - ROM_LOAD( "te-uj23.bin", 0xa80000, 0x80000, CRC(f8c30998) SHA1(33e2f982d74e9f3686b1f4a8172c49fb8b604cf5) ) -ROM_END - - -ROM_START( nbajamt1 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "te-u3.bin", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "te-u12.bin", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) - ROM_LOAD( "te-u13.bin", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "te-uj12.l1", 0x00000, 0x80000, CRC(a9f555ad) SHA1(34f5fc1b003ef8acbb2b38fbacd58d018d20ab1b) ) - ROM_LOAD16_BYTE( "te-ug12.l1", 0x00001, 0x80000, CRC(bd4579b5) SHA1(c893cff931f1e60a1d0d29d2719f514d92fb3490) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "te-ug16.bin", 0x080000, 0x80000, CRC(c7ce74d0) SHA1(93861cd909e0f28ed112096d6f9fc57d0d31c57c) ) - ROM_LOAD( "te-ug17.bin", 0x100000, 0x80000, CRC(9401be62) SHA1(597413a8a1eb66a7ad89af2f548fa3062e5e8efb) ) - ROM_LOAD( "te-ug18.bin", 0x180000, 0x80000, CRC(6fd08f57) SHA1(5b7031dffc88374c5bfdf3021aa01ec4e28d0631) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "te-uj16.bin", 0x380000, 0x80000, CRC(905ad88b) SHA1(24c336ccc0e2ac0ee96a34ad6fe4aa7464de0009) ) - ROM_LOAD( "te-uj17.bin", 0x400000, 0x80000, CRC(8a852b9e) SHA1(604c7f4305887e9505320630027765ea76607c58) ) - ROM_LOAD( "te-uj18.bin", 0x480000, 0x80000, CRC(4eb73c26) SHA1(693bf45f777da8e55b7bcd8699ea5bd711964941) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "te-ug20.bin", 0x680000, 0x80000, CRC(8a48728c) SHA1(3684099b4934b027336c319c77d9e0710b8c22dc) ) - ROM_LOAD( "te-ug22.bin", 0x700000, 0x80000, CRC(3b05133b) SHA1(f6067abb92b8751afe7352a4f1b1a22c9528002b) ) - ROM_LOAD( "te-ug23.bin", 0x780000, 0x80000, CRC(854f73bc) SHA1(242cc8ce28711f6f0787524a1070eb4b0956e6ae) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "te-uj20.bin", 0x980000, 0x80000, CRC(bf263d61) SHA1(b5b59e8df55f8030eff068c1d8b07dad8521bf5d) ) - ROM_LOAD( "te-uj22.bin", 0xa00000, 0x80000, CRC(39791051) SHA1(7aa02500ddacd31fca04044a22a38f36452ca300) ) - ROM_LOAD( "te-uj23.bin", 0xa80000, 0x80000, CRC(f8c30998) SHA1(33e2f982d74e9f3686b1f4a8172c49fb8b604cf5) ) -ROM_END - - -ROM_START( nbajamt2 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "te-u3.bin", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "te-u12.bin", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) - ROM_LOAD( "te-u13.bin", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "te-uj12.l2", 0x00000, 0x80000, CRC(eaa6fb32) SHA1(8c8c0c6ace2b98679d7fe90e1f9284bdf0e14eaf) ) - ROM_LOAD16_BYTE( "te-ug12.l2", 0x00001, 0x80000, CRC(5a694d9a) SHA1(fb74e4242d9adba03f24a81451ea06e8d9b4af96) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "te-ug16.bin", 0x080000, 0x80000, CRC(c7ce74d0) SHA1(93861cd909e0f28ed112096d6f9fc57d0d31c57c) ) - ROM_LOAD( "te-ug17.bin", 0x100000, 0x80000, CRC(9401be62) SHA1(597413a8a1eb66a7ad89af2f548fa3062e5e8efb) ) - ROM_LOAD( "te-ug18.bin", 0x180000, 0x80000, CRC(6fd08f57) SHA1(5b7031dffc88374c5bfdf3021aa01ec4e28d0631) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "te-uj16.bin", 0x380000, 0x80000, CRC(905ad88b) SHA1(24c336ccc0e2ac0ee96a34ad6fe4aa7464de0009) ) - ROM_LOAD( "te-uj17.bin", 0x400000, 0x80000, CRC(8a852b9e) SHA1(604c7f4305887e9505320630027765ea76607c58) ) - ROM_LOAD( "te-uj18.bin", 0x480000, 0x80000, CRC(4eb73c26) SHA1(693bf45f777da8e55b7bcd8699ea5bd711964941) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "te-ug20.bin", 0x680000, 0x80000, CRC(8a48728c) SHA1(3684099b4934b027336c319c77d9e0710b8c22dc) ) - ROM_LOAD( "te-ug22.bin", 0x700000, 0x80000, CRC(3b05133b) SHA1(f6067abb92b8751afe7352a4f1b1a22c9528002b) ) - ROM_LOAD( "te-ug23.bin", 0x780000, 0x80000, CRC(854f73bc) SHA1(242cc8ce28711f6f0787524a1070eb4b0956e6ae) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "te-uj20.bin", 0x980000, 0x80000, CRC(bf263d61) SHA1(b5b59e8df55f8030eff068c1d8b07dad8521bf5d) ) - ROM_LOAD( "te-uj22.bin", 0xa00000, 0x80000, CRC(39791051) SHA1(7aa02500ddacd31fca04044a22a38f36452ca300) ) - ROM_LOAD( "te-uj23.bin", 0xa80000, 0x80000, CRC(f8c30998) SHA1(33e2f982d74e9f3686b1f4a8172c49fb8b604cf5) ) -ROM_END - - -ROM_START( nbajamt3 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "te-u3.bin", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "te-u12.bin", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) - ROM_LOAD( "te-u13.bin", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "te-uj12.l3", 0x00000, 0x80000, CRC(8fdf77b4) SHA1(1a8a178b19d0b8e7a5fd2ddf373a4279321440d0) ) - ROM_LOAD16_BYTE( "te-ug12.l3", 0x00001, 0x80000, CRC(656579ed) SHA1(b038fdc814ebc8d203724fdb2f7501d40f1dc21f) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nbaug14.bin", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) - ROM_LOAD( "te-ug16.bin", 0x080000, 0x80000, CRC(c7ce74d0) SHA1(93861cd909e0f28ed112096d6f9fc57d0d31c57c) ) - ROM_LOAD( "te-ug17.bin", 0x100000, 0x80000, CRC(9401be62) SHA1(597413a8a1eb66a7ad89af2f548fa3062e5e8efb) ) - ROM_LOAD( "te-ug18.bin", 0x180000, 0x80000, CRC(6fd08f57) SHA1(5b7031dffc88374c5bfdf3021aa01ec4e28d0631) ) - - ROM_LOAD( "nbauj14.bin", 0x300000, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) - ROM_LOAD( "te-uj16.bin", 0x380000, 0x80000, CRC(905ad88b) SHA1(24c336ccc0e2ac0ee96a34ad6fe4aa7464de0009) ) - ROM_LOAD( "te-uj17.bin", 0x400000, 0x80000, CRC(8a852b9e) SHA1(604c7f4305887e9505320630027765ea76607c58) ) - ROM_LOAD( "te-uj18.bin", 0x480000, 0x80000, CRC(4eb73c26) SHA1(693bf45f777da8e55b7bcd8699ea5bd711964941) ) - - ROM_LOAD( "nbaug19.bin", 0x600000, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) - ROM_LOAD( "te-ug20.bin", 0x680000, 0x80000, CRC(8a48728c) SHA1(3684099b4934b027336c319c77d9e0710b8c22dc) ) - ROM_LOAD( "te-ug22.bin", 0x700000, 0x80000, CRC(3b05133b) SHA1(f6067abb92b8751afe7352a4f1b1a22c9528002b) ) - ROM_LOAD( "te-ug23.bin", 0x780000, 0x80000, CRC(854f73bc) SHA1(242cc8ce28711f6f0787524a1070eb4b0956e6ae) ) - - ROM_LOAD( "nbauj19.bin", 0x900000, 0x80000, CRC(8130a8a2) SHA1(f23f124024285d07d8cf822817b62e42c38b82db) ) - ROM_LOAD( "te-uj20.bin", 0x980000, 0x80000, CRC(bf263d61) SHA1(b5b59e8df55f8030eff068c1d8b07dad8521bf5d) ) - ROM_LOAD( "te-uj22.bin", 0xa00000, 0x80000, CRC(39791051) SHA1(7aa02500ddacd31fca04044a22a38f36452ca300) ) - ROM_LOAD( "te-uj23.bin", 0xa80000, 0x80000, CRC(f8c30998) SHA1(33e2f982d74e9f3686b1f4a8172c49fb8b604cf5) ) -ROM_END - - -ROM_START( jdreddp ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "jd_u3.rom", 0x010000, 0x20000, CRC(6154d108) SHA1(54328455ec22ba815de85aa3bfe6405353c64f5c) ) - ROM_RELOAD( 0x030000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "jd_u12.rom", 0x000000, 0x80000, CRC(ef32f202) SHA1(16aea085e63496dec259291de1a64fbeab52f039) ) - ROM_LOAD( "jd_u13.rom", 0x080000, 0x80000, CRC(3dc70473) SHA1(a3d7210301ff0579889009a075092115d9bf0600) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "jd_uj12.rom", 0x00000, 0x80000, CRC(7e5c8d5a) SHA1(65c0e887fea01846426067adfc4cf60dce4a1e24) ) - ROM_LOAD16_BYTE( "jd_ug12.rom", 0x00001, 0x80000, CRC(a16b8a4a) SHA1(77abb31e7cb3b66c63ef7c1874d8544ae9a02667) ) - - ROM_REGION( 0xc00000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "jd_ug14.rom", 0x000000, 0x80000, CRC(468484d7) SHA1(87e3b87051e3afff097333af90efa0eb4dd61a35) ) - ROM_LOAD( "jd_ug16.rom", 0x080000, 0x80000, CRC(1d7f12b6) SHA1(beb864615a6c554097377a2f2b6dfe361c1fb084) ) - ROM_LOAD( "jd_ug17.rom", 0x100000, 0x80000, CRC(b6d83d74) SHA1(e0e71f691af5b55fb4153a6b80d3055641cb7cf4) ) - ROM_LOAD( "jd_ug18.rom", 0x180000, 0x80000, CRC(c8a45e01) SHA1(6d63a977c30d5f421baf48db55da90c75032a75f) ) - - ROM_LOAD( "jd_uj14.rom", 0x300000, 0x80000, CRC(fe6ec0ec) SHA1(3e3b1774e1c5cf6629fbd3aeff36cadff1adfbf9) ) - ROM_LOAD( "jd_uj16.rom", 0x380000, 0x80000, CRC(31d4a71b) SHA1(703448956968f1913e5755a6aedf0f7d15ea4a4e) ) - ROM_LOAD( "jd_uj17.rom", 0x400000, 0x80000, CRC(ddc76f0b) SHA1(8f3091c6a5ec1488fcd296e75bbd0572f1a4485c) ) - ROM_LOAD( "jd_uj18.rom", 0x480000, 0x80000, CRC(3e16e7a9) SHA1(f517d42594225b06d70404f29e44dc144ad87a72) ) - - ROM_LOAD( "jd_ug19.rom", 0x600000, 0x80000, CRC(e076c08e) SHA1(9b52470feac66b258e62e53dfd6a6a74c1e47ac1) ) - ROM_LOAD( "jd_ug20.rom", 0x680000, 0x80000, CRC(7b8c370a) SHA1(e6562782519610447657d0850481b1f9fd7c08b3) ) - ROM_LOAD( "jd_ug22.rom", 0x700000, 0x80000, CRC(6705d5b3) SHA1(da304ea33cd20c118b97147fe603237fe5940732) ) - ROM_LOAD( "jd_ug23.rom", 0x780000, 0x80000, CRC(0c9edbc4) SHA1(bb3926a992efd1923d64c5bc615dac39867f426d) ) - - ROM_LOAD( "jd_uj19.rom", 0x900000, 0x80000, CRC(bd8cffe0) SHA1(7690bfa82ab5c2c102dc5c6e60628f341b83a77b) ) - ROM_LOAD( "jd_uj20.rom", 0x980000, 0x80000, CRC(8fc7bfb9) SHA1(c3c31ea641a6e304b060a7938e2ac473db8a7aab) ) - ROM_LOAD( "jd_uj22.rom", 0xa00000, 0x80000, CRC(7438295e) SHA1(dbc28a9273897d50abf8e7bebe0753949365eb42) ) - ROM_LOAD( "jd_uj23.rom", 0xa80000, 0x80000, CRC(86ea157d) SHA1(9189e07abc73b601a26ae8aaf6d49ed87d1befca) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1992, mk, 0, tunit_adpcm, mk, mktunit, ROT0, "Midway", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", 0 ) -GAME( 1992, mkr4, mk, tunit_adpcm, mk, mktunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", 0 ) - -GAME( 1993, mk2, 0, tunit_dcs, mk2, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1)", 0 ) -GAME( 1993, mk2r32, mk2, tunit_dcs, mk2, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.2 (European))", 0 ) -GAME( 1993, mk2r21, mk2, tunit_dcs, mk2, mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.1)", 0 ) -GAME( 1993, mk2r14, mk2, tunit_dcs, mk2, mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.4)", 0 ) -GAME( 1993, mk2r42, mk2, tunit_dcs, mk2, mk2, ROT0, "hack", "Mortal Kombat II (rev L4.2, hack)", 0 ) -GAME( 1993, mk2r91, mk2, tunit_dcs, mk2, mk2, ROT0, "hack", "Mortal Kombat II (rev L9.1, hack)", 0 ) -GAME( 1993, mk2chal, mk2, tunit_dcs, mk2, mk2, ROT0, "hack", "Mortal Kombat II Challenger (hack)", 0 ) - -GAME( 1993, jdreddp, 0, tunit_adpcm, jdreddp, jdreddp, ROT0, "Midway", "Judge Dredd (rev LA1, prototype)", 0 ) - -GAME( 1993, nbajam, 0, tunit_adpcm, nbajam, nbajam, ROT0, "Midway", "NBA Jam (rev 3.01 04/07/93)", 0 ) -GAME( 1993, nbajamr2, nbajam, tunit_adpcm, nbajam, nbajam, ROT0, "Midway", "NBA Jam (rev 2.00 02/10/93)", 0 ) -GAME( 1994, nbajamte, nbajam, tunit_adpcm, nbajamte, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 4.0 03/23/94)", 0 ) -GAME( 1994, nbajamt1, nbajam, tunit_adpcm, nbajamte, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 1.0 01/17/94)", 0 ) -GAME( 1994, nbajamt2, nbajam, tunit_adpcm, nbajamte, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 2.0 01/28/94)", 0 ) -GAME( 1994, nbajamt3, nbajam, tunit_adpcm, nbajamte, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 3.0 03/04/94)", 0 ) diff --git a/src/drivers/midvunit.c b/src/drivers/midvunit.c deleted file mode 100644 index cbb1ebc71..000000000 --- a/src/drivers/midvunit.c +++ /dev/null @@ -1,1438 +0,0 @@ -/************************************************************************* - - Driver for Midway V-Unit games - - driver by Aaron Giles - - Games supported: - * Cruis'n USA (1994) [3 sets] - * Cruis'n World (1996) [4 sets] - * War Gods (1996) - * Off Road Challenge (1997) - - Known bugs: - * textures for automatic/manual selection get overwritten in Cruis'n World - * rendering needs to be looked at a little more closely to fix some holes - * in Cruis'n World attract mode, right side of sky looks like it has wrapped - * Off Road Challenge has polygon sorting issues, among other problems - -**************************************************************************/ - -#include "driver.h" -#include "cpu/tms32031/tms32031.h" -#include "cpu/adsp2100/adsp2100.h" -#include "sndhrdw/dcs.h" -#include "machine/idectrl.h" -#include "machine/midwayic.h" -#include "midvunit.h" -#include - - -static UINT32 *ram_base; -static UINT32 *fastram_base; -static UINT8 cmos_protected; -static UINT16 control_data; - -static UINT8 adc_data; -static UINT8 adc_shift; - -static UINT16 last_port0; -static UINT8 shifter_state; - -static void *timer[2]; -static double timer_rate; - -static UINT32 *tms32031_control; - -static UINT32 *midvplus_misc; - - - -/************************************* - * - * Machine init - * - *************************************/ - -static MACHINE_RESET( midvunit ) -{ - dcs_reset_w(1); - dcs_reset_w(0); - - memcpy(ram_base, memory_region(REGION_USER1), 0x20000*4); - - timer[0] = timer_alloc(NULL); - timer[1] = timer_alloc(NULL); -} - - -static MACHINE_RESET( midvplus ) -{ - dcs_reset_w(1); - dcs_reset_w(0); - - memcpy(ram_base, memory_region(REGION_USER1), 0x20000*4); - - timer[0] = timer_alloc(NULL); - timer[1] = timer_alloc(NULL); - - ide_controller_reset(0); -} - - - -/************************************* - * - * Input ports - * - *************************************/ - -static READ32_HANDLER( port0_r ) -{ - UINT16 val = readinputport(0); - UINT16 diff = val ^ last_port0; - - /* make sure the shift controls are mutually exclusive */ - if ((diff & 0x0400) && !(val & 0x0400)) - shifter_state = (shifter_state == 1) ? 0 : 1; - if ((diff & 0x0800) && !(val & 0x0800)) - shifter_state = (shifter_state == 2) ? 0 : 2; - if ((diff & 0x1000) && !(val & 0x1000)) - shifter_state = (shifter_state == 4) ? 0 : 4; - if ((diff & 0x2000) && !(val & 0x2000)) - shifter_state = (shifter_state == 8) ? 0 : 8; - last_port0 = val; - - val = (val | 0x3c00) ^ (shifter_state << 10); - - return (val << 16) | val; -} - - -static READ32_HANDLER( port1_r ) -{ - return (readinputport(1) << 16) | readinputport(1); -} - - -static READ32_HANDLER( port2_r ) -{ - return (readinputport(2) << 16) | readinputport(2); -} - - - -/************************************* - * - * ADC input ports - * - *************************************/ - -READ32_HANDLER( midvunit_adc_r ) -{ - if (!(control_data & 0x40)) - return adc_data << adc_shift; - else - logerror("adc_r without enabling reads!\n"); - return 0xffffffff; -} - - -static void adc_ready(int param) -{ - cpunum_set_input_line(0, 3, ASSERT_LINE); -} - - -WRITE32_HANDLER( midvunit_adc_w ) -{ - if (!(control_data & 0x20)) - { - int which = (data >> adc_shift) - 4; - if (which < 0 || which > 2) - logerror("adc_w: unexpected which = %02X\n", which + 4); - adc_data = readinputport(3 + which); - timer_set(TIME_IN_MSEC(1), 0, adc_ready); - } - else - logerror("adc_w without enabling writes!\n"); -} - - - -/************************************* - * - * CMOS access - * - *************************************/ - -static WRITE32_HANDLER( midvunit_cmos_protect_w ) -{ - cmos_protected = ((data & 0xc00) != 0xc00); -} - - -static WRITE32_HANDLER( midvunit_cmos_w ) -{ - if (!cmos_protected) - COMBINE_DATA(generic_nvram32 + offset); -} - - -static READ32_HANDLER( midvunit_cmos_r ) -{ - return generic_nvram32[offset]; -} - - - -/************************************* - * - * System controls - * - *************************************/ - -WRITE32_HANDLER( midvunit_control_w ) -{ - UINT16 olddata = control_data; - COMBINE_DATA(&control_data); - - /* bit 7 is the LED */ - - /* bit 3 is the watchdog */ - if ((olddata ^ control_data) & 0x0008) - watchdog_reset_w(0, 0); - - /* bit 1 is the DCS sound reset */ - dcs_reset_w((~control_data >> 1) & 1); - - /* log anything unusual */ - if ((olddata ^ control_data) & ~0x00e8) - logerror("midvunit_control_w: old=%04X new=%04X diff=%04X\n", olddata, control_data, olddata ^ control_data); -} - - -WRITE32_HANDLER( crusnwld_control_w ) -{ - UINT16 olddata = control_data; - COMBINE_DATA(&control_data); - - /* bit 11 is the DCS sound reset */ - dcs_reset_w((~control_data >> 11) & 1); - - /* bit 9 is the watchdog */ - if ((olddata ^ control_data) & 0x0200) - watchdog_reset_w(0, 0); - - /* bit 8 is the LED */ - - /* log anything unusual */ - if ((olddata ^ control_data) & ~0xe800) - logerror("crusnwld_control_w: old=%04X new=%04X diff=%04X\n", olddata, control_data, olddata ^ control_data); -} - - -static WRITE32_HANDLER( midvunit_sound_w ) -{ - logerror("Sound W = %02X\n", data); - dcs_data_w(data & 0xff); -} - - - -/************************************* - * - * TMS32031 I/O accesses - * - *************************************/ - -READ32_HANDLER( tms32031_control_r ) -{ - /* watch for accesses to the timers */ - if (offset == 0x24 || offset == 0x34) - { - /* timer is clocked at 100ns */ - int which = (offset >> 4) & 1; - INT32 result = timer_timeelapsed(timer[which]) * timer_rate; -// logerror("%06X:tms32031_control_r(%02X) = %08X\n", activecpu_get_pc(), offset, result); - return result; - } - - /* log anything else except the memory control register */ - if (offset != 0x64) - logerror("%06X:tms32031_control_r(%02X)\n", activecpu_get_pc(), offset); - - return tms32031_control[offset]; -} - - -WRITE32_HANDLER( tms32031_control_w ) -{ - COMBINE_DATA(&tms32031_control[offset]); - - /* ignore changes to the memory control register */ - if (offset == 0x64) - ; - - /* watch for accesses to the timers */ - else if (offset == 0x20 || offset == 0x30) - { - int which = (offset >> 4) & 1; -// logerror("%06X:tms32031_control_w(%02X) = %08X\n", activecpu_get_pc(), offset, data); - if (data & 0x40) - timer_adjust(timer[which], TIME_NEVER, 0, TIME_NEVER); - - /* bit 0x200 selects internal clocking, which is 1/2 the main CPU clock rate */ - if (data & 0x200) - timer_rate = (double)Machine->drv->cpu[0].cpu_clock * 0.5; - else - timer_rate = 10000000.; - } - else - logerror("%06X:tms32031_control_w(%02X) = %08X\n", activecpu_get_pc(), offset, data); -} - - - -/************************************* - * - * Serial number access - * - *************************************/ - -#if 0 -static READ32_HANDLER( crusnwld_serial_status_r ) -{ - int status = midway_serial_pic_status_r(); - return (port1_r(offset, mem_mask) & 0x7fff7fff) | (status << 31) | (status << 15); -} - - -static READ32_HANDLER( crusnwld_serial_data_r ) -{ - return midway_serial_pic_r() << 16; -} - - -static WRITE32_HANDLER( crusnwld_serial_data_w ) -{ - if ((data & 0xf0000) == 0x10000) - { - midway_serial_pic_reset_w(1); - midway_serial_pic_reset_w(0); - } - midway_serial_pic_w(data >> 16); -} -#endif - - -/************************************* - * - * Some kind of protection-like - * device - * - *************************************/ - -/* values from offset 3, 6, and 10 must add up to 0x904752a2 */ -static UINT16 bit_index; -static UINT32 bit_data[0x10] = -{ - 0x3017c636,0x3017c636,0x3017c636,0x3017c636, - 0x3017c636,0x3017c636,0x3017c636,0x3017c636, - 0x3017c636,0x3017c636,0x3017c636,0x3017c636, - 0x3017c636,0x3017c636,0x3017c636,0x3017c636 -}; - - -static READ32_HANDLER( bit_data_r ) -{ - int bit = (bit_data[bit_index / 32] >> (31 - (bit_index % 32))) & 1; - bit_index = (bit_index + 1) % 512; - return bit ? generic_nvram32[offset] : ~generic_nvram32[offset]; -} - - -static WRITE32_HANDLER( bit_reset_w ) -{ - bit_index = 0; -} - - - -/************************************* - * - * Off Road Challenge PIC access - * - *************************************/ - -static READ32_HANDLER( offroadc_serial_status_r ) -{ - int status = midway_serial_pic2_status_r(); - return (port1_r(offset, mem_mask) & 0x7fff7fff) | (status << 31) | (status << 15); -} - - -static READ32_HANDLER( offroadc_serial_data_r ) -{ - return midway_serial_pic2_r() << 16; -} - - -static WRITE32_HANDLER( offroadc_serial_data_w ) -{ - midway_serial_pic2_w(data >> 16); -} - - - -/************************************* - * - * War Gods I/O ASICs - * - *************************************/ - -static READ32_HANDLER( midvplus_misc_r ) -{ - UINT32 result = midvplus_misc[offset]; - - switch (offset) - { - case 0: - result = 0xb580; - break; - - case 2: - result = 0xf3ff; - break; - - case 3: - /* seems to want loopback */ - break; - } - - if (offset != 0 && offset != 3) - logerror("%06X:midvplus_misc_r(%d) = %08X\n", activecpu_get_pc(), offset, result); - return result; -} - - -static WRITE32_HANDLER( midvplus_misc_w ) -{ - UINT32 olddata = midvplus_misc[offset]; - int logit = 1; - - COMBINE_DATA(&midvplus_misc[offset]); - - switch (offset) - { - case 0: - /* bit 0x10 resets watchdog */ - if ((olddata ^ midvplus_misc[offset]) & 0x0010) - { - watchdog_reset_w(0, 0); - logit = 0; - } - break; - - case 3: - logit = 0; - break; - } - - if (logit) - logerror("%06X:midvplus_misc_w(%d) = %08X\n", activecpu_get_pc(), offset, data); -} - - - -/************************************* - * - * War Gods RAM grossness - * - *************************************/ - -static void midvplus_xf1_w(UINT8 val) -{ - static int lastval; -// mame_printf_debug("xf1_w = %d\n", val); - - if (lastval && !val) - memcpy(ram_base, fastram_base, 0x20000*4); - - lastval = val; -} - - - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( midvunit_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x01ffff) AM_RAM AM_BASE(&ram_base) - AM_RANGE(0x400000, 0x41ffff) AM_RAM - AM_RANGE(0x600000, 0x600000) AM_WRITE(midvunit_dma_queue_w) - AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE(&tms32031_control) - AM_RANGE(0x809800, 0x809fff) AM_RAM - AM_RANGE(0x900000, 0x97ffff) AM_READWRITE(midvunit_videoram_r, midvunit_videoram_w) AM_BASE((UINT32 **)&midvunit_videoram) - AM_RANGE(0x980000, 0x980000) AM_READ(midvunit_dma_queue_entries_r) - AM_RANGE(0x980020, 0x980020) AM_READ(midvunit_scanline_r) - AM_RANGE(0x980020, 0x98002b) AM_WRITE(midvunit_video_control_w) - AM_RANGE(0x980040, 0x980040) AM_READWRITE(midvunit_page_control_r, midvunit_page_control_w) - AM_RANGE(0x980080, 0x980080) AM_NOP - AM_RANGE(0x980082, 0x980083) AM_READ(midvunit_dma_trigger_r) - AM_RANGE(0x990000, 0x990000) AM_READ(MRA32_NOP) // link PAL (low 4 bits must == 4) - AM_RANGE(0x991030, 0x991030) AM_READ(port1_r) -// AM_RANGE(0x991050, 0x991050) AM_READ(MRA32_RAM) // seems to be another port - AM_RANGE(0x991060, 0x991060) AM_READ(port0_r) - AM_RANGE(0x992000, 0x992000) AM_READ(port2_r) - AM_RANGE(0x993000, 0x993000) AM_READWRITE(midvunit_adc_r, midvunit_adc_w) - AM_RANGE(0x994000, 0x994000) AM_WRITE(midvunit_control_w) - AM_RANGE(0x995000, 0x995000) AM_WRITE(MWA32_NOP) // force feedback? - AM_RANGE(0x995020, 0x995020) AM_WRITE(midvunit_cmos_protect_w) - AM_RANGE(0x997000, 0x997000) AM_NOP // communications - AM_RANGE(0x9a0000, 0x9a0000) AM_WRITE(midvunit_sound_w) - AM_RANGE(0x9c0000, 0x9c1fff) AM_READWRITE(midvunit_cmos_r, midvunit_cmos_w) AM_BASE(&generic_nvram32) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x9e0000, 0x9e7fff) AM_READWRITE(MRA32_RAM, midvunit_paletteram_w) AM_BASE(&paletteram32) - AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(midvunit_textureram_r, midvunit_textureram_w) AM_BASE(&midvunit_textureram) - AM_RANGE(0xc00000, 0xffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - - -static struct tms32031_config midvplus_config = { 0, NULL, midvplus_xf1_w }; - -static ADDRESS_MAP_START( midvplus_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x01ffff) AM_RAM AM_BASE(&ram_base) - AM_RANGE(0x400000, 0x41ffff) AM_RAM AM_BASE(&fastram_base) - AM_RANGE(0x600000, 0x600000) AM_WRITE(midvunit_dma_queue_w) - AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE(&tms32031_control) - AM_RANGE(0x809800, 0x809fff) AM_RAM - AM_RANGE(0x900000, 0x97ffff) AM_READWRITE(midvunit_videoram_r, midvunit_videoram_w) AM_BASE((UINT32 **)&midvunit_videoram) - AM_RANGE(0x980000, 0x980000) AM_READ(midvunit_dma_queue_entries_r) - AM_RANGE(0x980020, 0x980020) AM_READ(midvunit_scanline_r) - AM_RANGE(0x980020, 0x98002b) AM_WRITE(midvunit_video_control_w) - AM_RANGE(0x980040, 0x980040) AM_READWRITE(midvunit_page_control_r, midvunit_page_control_w) - AM_RANGE(0x980080, 0x980080) AM_NOP - AM_RANGE(0x980082, 0x980083) AM_READ(midvunit_dma_trigger_r) - AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w) - AM_RANGE(0x994000, 0x994000) AM_WRITE(midvunit_control_w) - AM_RANGE(0x995020, 0x995020) AM_WRITE(midvunit_cmos_protect_w) - AM_RANGE(0x9a0000, 0x9a0007) AM_READWRITE(midway_ide_asic_r, midway_ide_asic_w) - AM_RANGE(0x9c0000, 0x9c7fff) AM_READWRITE(MRA32_RAM, midvunit_paletteram_w) AM_BASE(&paletteram32) - AM_RANGE(0x9d0000, 0x9d000f) AM_READWRITE(midvplus_misc_r, midvplus_misc_w) AM_BASE(&midvplus_misc) - AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(midvunit_textureram_r, midvunit_textureram_w) AM_BASE(&midvunit_textureram) - AM_RANGE(0xc00000, 0xcfffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( crusnusa ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE(KEYCODE_F2) /* Test switch */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* 4th */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* 3rd */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* 2nd */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* 1st */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* radio */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* view 1 */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* view 2 */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* view 3 */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* view 4 */ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0000, "Link Status" ) - PORT_DIPSETTING( 0x0000, "Master" ) - PORT_DIPSETTING( 0x0001, "Slave" ) - PORT_DIPNAME( 0x0002, 0x0002, "Link???" ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, "Linking" ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, "Freeze" ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x0020, DEF_STR( Upright )) - PORT_DIPSETTING( 0x0000, "Sitdown" ) - PORT_DIPNAME( 0x0040, 0x0040, "Enable Motion" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0100, 0x0100, "Coin Counters" ) - PORT_DIPSETTING( 0x0100, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0xfe00, 0xf800, DEF_STR( Coinage )) - PORT_DIPSETTING( 0xfe00, "USA-1" ) - PORT_DIPSETTING( 0xfa00, "USA-3" ) - PORT_DIPSETTING( 0xfc00, "USA-7" ) - PORT_DIPSETTING( 0xf800, "USA-8" ) - PORT_DIPSETTING( 0xf600, "Norway-1" ) - PORT_DIPSETTING( 0xee00, "Australia-1" ) - PORT_DIPSETTING( 0xea00, "Australia-2" ) - PORT_DIPSETTING( 0xec00, "Australia-3" ) - PORT_DIPSETTING( 0xe800, "Australia-4" ) - PORT_DIPSETTING( 0xde00, "Swiss-1" ) - PORT_DIPSETTING( 0xda00, "Swiss-2" ) - PORT_DIPSETTING( 0xdc00, "Swiss-3" ) - PORT_DIPSETTING( 0xce00, "Belgium-1" ) - PORT_DIPSETTING( 0xca00, "Belgium-2" ) - PORT_DIPSETTING( 0xcc00, "Belgium-3" ) - PORT_DIPSETTING( 0xbe00, "French-1" ) - PORT_DIPSETTING( 0xba00, "French-2" ) - PORT_DIPSETTING( 0xbc00, "French-3" ) - PORT_DIPSETTING( 0xb800, "French-4" ) - PORT_DIPSETTING( 0xb600, "Hungary-1" ) - PORT_DIPSETTING( 0xae00, "Taiwan-1" ) - PORT_DIPSETTING( 0xaa00, "Taiwan-2" ) - PORT_DIPSETTING( 0xac00, "Taiwan-3" ) - PORT_DIPSETTING( 0x9e00, "UK-1" ) - PORT_DIPSETTING( 0x9a00, "UK-2" ) - PORT_DIPSETTING( 0x9c00, "UK-3" ) - PORT_DIPSETTING( 0x8e00, "Finland-1" ) - PORT_DIPSETTING( 0x7e00, "German-1" ) - PORT_DIPSETTING( 0x7a00, "German-2" ) - PORT_DIPSETTING( 0x7c00, "German-3" ) - PORT_DIPSETTING( 0x7800, "German-4" ) - PORT_DIPSETTING( 0x7600, "Denmark-1" ) - PORT_DIPSETTING( 0x6e00, "Japan-1" ) - PORT_DIPSETTING( 0x6a00, "Japan-2" ) - PORT_DIPSETTING( 0x6c00, "Japan-3" ) - PORT_DIPSETTING( 0x5e00, "Italy-1" ) - PORT_DIPSETTING( 0x5a00, "Italy-2" ) - PORT_DIPSETTING( 0x5c00, "Italy-3" ) - PORT_DIPSETTING( 0x4e00, "Sweden-1" ) - PORT_DIPSETTING( 0x3e00, "Canada-1" ) - PORT_DIPSETTING( 0x3a00, "Canada-2" ) - PORT_DIPSETTING( 0x3c00, "Canada-3" ) - PORT_DIPSETTING( 0x3600, "General-1" ) - PORT_DIPSETTING( 0x3200, "General-3" ) - PORT_DIPSETTING( 0x3400, "General-5" ) - PORT_DIPSETTING( 0x3000, "General-7" ) - PORT_DIPSETTING( 0x2e00, "Austria-1" ) - PORT_DIPSETTING( 0x2a00, "Austria-2" ) - PORT_DIPSETTING( 0x2c00, "Austria-3" ) - PORT_DIPSETTING( 0x2800, "Austria-4" ) - PORT_DIPSETTING( 0x1e00, "Spain-1" ) - PORT_DIPSETTING( 0x1a00, "Spain-2" ) - PORT_DIPSETTING( 0x1c00, "Spain-3" ) - PORT_DIPSETTING( 0x1800, "Spain-4" ) - PORT_DIPSETTING( 0x0e00, "Netherland-1" ) - - PORT_START /* wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* brake pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( crusnwld ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE(KEYCODE_F2) /* Test switch */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* 4th */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* 3rd */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* 2nd */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* 1st */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* radio */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* view 1 */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* view 2 */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* view 3 */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* view 4 */ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0003, 0x0000, "Link Number" ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0001, "2" ) - PORT_DIPSETTING( 0x0002, "3" ) - PORT_DIPSETTING( 0x0003, "4" ) - PORT_DIPNAME( 0x0004, 0x0004, "Linking" ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0018, 0x0008, "Games Linked" ) - PORT_DIPSETTING( 0x0008, "2" ) - PORT_DIPSETTING( 0x0010, "3" ) - PORT_DIPSETTING( 0x0018, "4" ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x0020, DEF_STR( Upright )) - PORT_DIPSETTING( 0x0000, "Sitdown" ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0100, 0x0100, "Coin Counters" ) - PORT_DIPSETTING( 0x0100, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0xfe00, 0xf800, DEF_STR( Coinage )) - PORT_DIPSETTING( 0xfe00, "USA-1" ) - PORT_DIPSETTING( 0xfa00, "USA-3" ) - PORT_DIPSETTING( 0xfc00, "USA-7" ) - PORT_DIPSETTING( 0xf800, "USA-8" ) - PORT_DIPSETTING( 0xf600, "Norway-1" ) - PORT_DIPSETTING( 0xee00, "Australia-1" ) - PORT_DIPSETTING( 0xea00, "Australia-2" ) - PORT_DIPSETTING( 0xec00, "Australia-3" ) - PORT_DIPSETTING( 0xe800, "Australia-4" ) - PORT_DIPSETTING( 0xde00, "Swiss-1" ) - PORT_DIPSETTING( 0xda00, "Swiss-2" ) - PORT_DIPSETTING( 0xdc00, "Swiss-3" ) - PORT_DIPSETTING( 0xce00, "Belgium-1" ) - PORT_DIPSETTING( 0xca00, "Belgium-2" ) - PORT_DIPSETTING( 0xcc00, "Belgium-3" ) - PORT_DIPSETTING( 0xbe00, "French-1" ) - PORT_DIPSETTING( 0xba00, "French-2" ) - PORT_DIPSETTING( 0xbc00, "French-3" ) - PORT_DIPSETTING( 0xb800, "French-4" ) - PORT_DIPSETTING( 0xb600, "Hungary-1" ) - PORT_DIPSETTING( 0xae00, "Taiwan-1" ) - PORT_DIPSETTING( 0xaa00, "Taiwan-2" ) - PORT_DIPSETTING( 0xac00, "Taiwan-3" ) - PORT_DIPSETTING( 0x9e00, "UK-1" ) - PORT_DIPSETTING( 0x9a00, "UK-2" ) - PORT_DIPSETTING( 0x9c00, "UK-3" ) - PORT_DIPSETTING( 0x8e00, "Finland-1" ) - PORT_DIPSETTING( 0x7e00, "German-1" ) - PORT_DIPSETTING( 0x7a00, "German-2" ) - PORT_DIPSETTING( 0x7c00, "German-3" ) - PORT_DIPSETTING( 0x7800, "German-4" ) - PORT_DIPSETTING( 0x7600, "Denmark-1" ) - PORT_DIPSETTING( 0x6e00, "Japan-1" ) - PORT_DIPSETTING( 0x6a00, "Japan-2" ) - PORT_DIPSETTING( 0x6c00, "Japan-3" ) - PORT_DIPSETTING( 0x5e00, "Italy-1" ) - PORT_DIPSETTING( 0x5a00, "Italy-2" ) - PORT_DIPSETTING( 0x5c00, "Italy-3" ) - PORT_DIPSETTING( 0x4e00, "Sweden-1" ) - PORT_DIPSETTING( 0x3e00, "Canada-1" ) - PORT_DIPSETTING( 0x3a00, "Canada-2" ) - PORT_DIPSETTING( 0x3c00, "Canada-3" ) - PORT_DIPSETTING( 0x3600, "General-1" ) - PORT_DIPSETTING( 0x3200, "General-3" ) - PORT_DIPSETTING( 0x3400, "General-5" ) - PORT_DIPSETTING( 0x3000, "General-7" ) - PORT_DIPSETTING( 0x2e00, "Austria-1" ) - PORT_DIPSETTING( 0x2a00, "Austria-2" ) - PORT_DIPSETTING( 0x2c00, "Austria-3" ) - PORT_DIPSETTING( 0x2800, "Austria-4" ) - PORT_DIPSETTING( 0x1e00, "Spain-1" ) - PORT_DIPSETTING( 0x1a00, "Spain-2" ) - PORT_DIPSETTING( 0x1c00, "Spain-3" ) - PORT_DIPSETTING( 0x1800, "Spain-4" ) - PORT_DIPSETTING( 0x0e00, "Netherland-1" ) - - PORT_START /* wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* brake pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( offroadc ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE(KEYCODE_F2) /* Test switch */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* 4th */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* 3rd */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* 2nd */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* 1st */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* radio */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* view 1 */ - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* view 2 */ - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* view 3 */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* view 4 */ - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Shifter" ) - PORT_DIPSETTING( 0x0002, "Closed" ) - PORT_DIPSETTING( 0x0000, "Open" ) - PORT_DIPNAME( 0x0004, 0x0004, "Girls" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0004, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, "Road Kill" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0008, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Link" ) - PORT_DIPSETTING( 0x0020, "Disabled" ) - PORT_DIPSETTING( 0x0000, "Enabled" ) - PORT_DIPNAME( 0x00c0, 0x00c0, "Link Machine" ) - PORT_DIPSETTING( 0x00c0, "1" ) - PORT_DIPSETTING( 0x0080, "2" ) - PORT_DIPSETTING( 0x0040, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0xf800, 0xf800, DEF_STR( Coinage )) - PORT_DIPSETTING( 0xf800, "USA 1" ) - PORT_DIPSETTING( 0xf000, "German 1" ) - PORT_DIPSETTING( 0xe800, "French 1" ) - PORT_DIPSETTING( 0xe000, "Canada 1" ) - PORT_DIPSETTING( 0xd800, "Swiss 1" ) - PORT_DIPSETTING( 0xd000, "Italy 1" ) - PORT_DIPSETTING( 0xc800, "UK 1" ) - PORT_DIPSETTING( 0xc000, "Spain 1" ) - PORT_DIPSETTING( 0xb800, "Australia 1" ) - PORT_DIPSETTING( 0xb000, "Japan 1" ) - PORT_DIPSETTING( 0xa800, "Taiwan 1" ) - PORT_DIPSETTING( 0xa000, "Austria 1" ) - PORT_DIPSETTING( 0x9800, "Belgium 1" ) - PORT_DIPSETTING( 0x9000, "Sweden 1" ) - PORT_DIPSETTING( 0x8800, "Finland 1" ) - PORT_DIPSETTING( 0x8000, "Netherlands 1" ) - PORT_DIPSETTING( 0x7800, "Norway 1" ) - PORT_DIPSETTING( 0x7000, "Denmark 1" ) - PORT_DIPSETTING( 0x6800, "Hungary 1" ) - - PORT_START /* wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) - - PORT_START /* brake pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( wargods ) - PORT_START /* DS1 */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0008, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, "Graphics" ) - PORT_DIPSETTING( 0x0010, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Family" ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0020, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Coinage Source" ) - PORT_DIPSETTING( 0x0100, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x3e00, 0x3e00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x3e00, "USA-1" ) - PORT_DIPSETTING( 0x3c00, "USA-2" ) - PORT_DIPSETTING( 0x3a00, "USA-3" ) - PORT_DIPSETTING( 0x3800, "USA-4" ) - PORT_DIPSETTING( 0x3400, "USA-9" ) - PORT_DIPSETTING( 0x3200, "USA-10" ) - PORT_DIPSETTING( 0x3600, "USA-ECA" ) - PORT_DIPSETTING( 0x2e00, "German-1" ) - PORT_DIPSETTING( 0x2c00, "German-2" ) - PORT_DIPSETTING( 0x2a00, "German-3" ) - PORT_DIPSETTING( 0x2800, "German-4" ) - PORT_DIPSETTING( 0x2400, "German-5" ) - PORT_DIPSETTING( 0x2600, "German-ECA" ) - PORT_DIPSETTING( 0x1e00, "French-1" ) - PORT_DIPSETTING( 0x1c00, "French-2" ) - PORT_DIPSETTING( 0x1a00, "French-3" ) - PORT_DIPSETTING( 0x1800, "French-4" ) - PORT_DIPSETTING( 0x1400, "French-11" ) - PORT_DIPSETTING( 0x1200, "French-12" ) - PORT_DIPSETTING( 0x1600, "French-ECA" ) - PORT_DIPSETTING( 0x3000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x4000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x6000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BILL1 ) /* Bill */ - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0xff80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -MACHINE_DRIVER_START( midvcommon ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", TMS32031, 50000000) - MDRV_CPU_PROGRAM_MAP(midvunit_map,0) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(midvunit) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 432) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(midvunit) - MDRV_VIDEO_UPDATE(midvunit) -MACHINE_DRIVER_END - - -MACHINE_DRIVER_START( midvunit ) - MDRV_IMPORT_FROM(midvcommon) - - /* sound hardware */ - MDRV_IMPORT_FROM(dcs_audio_2k) -MACHINE_DRIVER_END - - -MACHINE_DRIVER_START( midvplus ) - MDRV_IMPORT_FROM(midvcommon) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_CONFIG(midvplus_config) - MDRV_CPU_PROGRAM_MAP(midvplus_map,0) - - MDRV_MACHINE_RESET(midvplus) - MDRV_NVRAM_HANDLER(midway_serial_pic2) - - /* sound hardware */ - MDRV_IMPORT_FROM(dcs2_audio_2115) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( crusnusa ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cusa.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) - ROM_LOAD16_BYTE( "cusa.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) - ROM_LOAD16_BYTE( "cusa.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) - ROM_LOAD16_BYTE( "cusa.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) - ROM_LOAD16_BYTE( "cusa.u6", 0x800000, 0x80000, CRC(a9f915d3) SHA1(6a16a2d7a807a775673e7121b54f37c583581203) ) - ROM_LOAD16_BYTE( "cusa.u7", 0xa00000, 0x80000, CRC(424f0bbc) SHA1(f38a431fc0fb7102c51f2d5b6f716dd4669a9822) ) - ROM_LOAD16_BYTE( "cusa.u8", 0xc00000, 0x80000, CRC(03c28199) SHA1(393b009acd3eceb346b8fff45ae2bdf4f53d041f) ) - ROM_LOAD16_BYTE( "cusa.u9", 0xe00000, 0x80000, CRC(24ba6371) SHA1(f60a9ff73b3645e2c8bad67e2f6debc61b5e0653) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "cusa-l41.u10", 0x000000, 0x80000, CRC(eb9372d1) SHA1(ab1e489b23b4540c4e0d1d9a6c9a2c9317f5c099) ) - ROM_LOAD32_BYTE( "cusa-l41.u11", 0x000001, 0x80000, CRC(76f3cd40) SHA1(52276841944ada54d56ecd2da95998aabd699465) ) - ROM_LOAD32_BYTE( "cusa-l41.u12", 0x000002, 0x80000, CRC(9021a376) SHA1(6a838d49bec4201e8ead7491e3b6d4a3a52dcb12) ) - ROM_LOAD32_BYTE( "cusa-l41.u13", 0x000003, 0x80000, CRC(1687c932) SHA1(45947c0c22bd4e6640f792d0c7fd06a1f4483131) ) - ROM_LOAD32_BYTE( "cusa.u14", 0x200000, 0x80000, CRC(6a4ae622) SHA1(f488e7616371125d5aef2047b8e0fc954ca4b9b4) ) - ROM_LOAD32_BYTE( "cusa.u15", 0x200001, 0x80000, CRC(1a0ad3b7) SHA1(a5300f3c789a4d9d257fda3a280e882f17f4a99f) ) - ROM_LOAD32_BYTE( "cusa.u16", 0x200002, 0x80000, CRC(799d4dd6) SHA1(f1208967544477005924f2a553037e0ffbc668ab) ) - ROM_LOAD32_BYTE( "cusa.u17", 0x200003, 0x80000, CRC(3d68b660) SHA1(3f14e32c205a504ef39abf1e390bd8031d9d7b5b) ) - ROM_LOAD32_BYTE( "cusa.u18", 0x400000, 0x80000, CRC(9e8193fb) SHA1(ec88c2b51bb607d3181e467f8b255c13efebc73c) ) - ROM_LOAD32_BYTE( "cusa.u19", 0x400001, 0x80000, CRC(0bf60cde) SHA1(6c63b3eacaefeb405c8fdf641437786262bcb10d) ) - ROM_LOAD32_BYTE( "cusa.u20", 0x400002, 0x80000, CRC(c07f68f0) SHA1(444ccf8e49fd9c0f707ab32347984ca5628207f9) ) - ROM_LOAD32_BYTE( "cusa.u21", 0x400003, 0x80000, CRC(b0264aed) SHA1(d6a6eca4e4ecedfbc5590dbd06870761155ae8c5) ) - ROM_LOAD32_BYTE( "cusa.u22", 0x600000, 0x80000, CRC(ad137193) SHA1(642a7c37940cb3b2b190661da7b1d4848c7c513d) ) - ROM_LOAD32_BYTE( "cusa.u23", 0x600001, 0x80000, CRC(842449b0) SHA1(b23ebe28ff3c6a268ff9ae1242a4392d2305396b) ) - ROM_LOAD32_BYTE( "cusa.u24", 0x600002, 0x80000, CRC(0b2275be) SHA1(3dc79095064cc158d37218c9a038b5b7a777fc66) ) - ROM_LOAD32_BYTE( "cusa.u25", 0x600003, 0x80000, CRC(2b9fe68f) SHA1(2750613e61c1eaac629ef5b9e89fd88e99a262cc) ) - ROM_LOAD32_BYTE( "cusa.u26", 0x800000, 0x80000, CRC(ae56b871) SHA1(1e218426084123c6c2389d96ce92691010012aa4) ) - ROM_LOAD32_BYTE( "cusa.u27", 0x800001, 0x80000, CRC(2d977a8e) SHA1(8f4d511bfd6c3bee18daa7253be1a27d079aec8f) ) - ROM_LOAD32_BYTE( "cusa.u28", 0x800002, 0x80000, CRC(cffa5fb1) SHA1(fb73bc8f65b604c374f88d0ecf06c50ef52f0547) ) - ROM_LOAD32_BYTE( "cusa.u29", 0x800003, 0x80000, CRC(cbe52c60) SHA1(3f309ce8ef1784c830f4160cfe76dc3a0b438cac) ) -ROM_END - - -ROM_START( crusnu40 ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cusa.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) - ROM_LOAD16_BYTE( "cusa.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) - ROM_LOAD16_BYTE( "cusa.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) - ROM_LOAD16_BYTE( "cusa.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) - ROM_LOAD16_BYTE( "cusa.u6", 0x800000, 0x80000, CRC(a9f915d3) SHA1(6a16a2d7a807a775673e7121b54f37c583581203) ) - ROM_LOAD16_BYTE( "cusa.u7", 0xa00000, 0x80000, CRC(424f0bbc) SHA1(f38a431fc0fb7102c51f2d5b6f716dd4669a9822) ) - ROM_LOAD16_BYTE( "cusa.u8", 0xc00000, 0x80000, CRC(03c28199) SHA1(393b009acd3eceb346b8fff45ae2bdf4f53d041f) ) - ROM_LOAD16_BYTE( "cusa.u9", 0xe00000, 0x80000, CRC(24ba6371) SHA1(f60a9ff73b3645e2c8bad67e2f6debc61b5e0653) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "cusa-l4.u10", 0x000000, 0x80000, CRC(7526d8bf) SHA1(ef00ea3b6e1923d3e4d10bf3601b080a009fb711) ) - ROM_LOAD32_BYTE( "cusa-l4.u11", 0x000001, 0x80000, CRC(bfc691b9) SHA1(41d1503c4290e396a49043fea7778851cdf11310) ) - ROM_LOAD32_BYTE( "cusa-l4.u12", 0x000002, 0x80000, CRC(059c2234) SHA1(145ec1ab3a46c3316f39bd731730dcb57b55b4ec) ) - ROM_LOAD32_BYTE( "cusa-l4.u13", 0x000003, 0x80000, CRC(39e0ff7d) SHA1(3b0f95bf2a6999b8ec8722e0bc0f3a60264469aa) ) - ROM_LOAD32_BYTE( "cusa.u14", 0x200000, 0x80000, CRC(6a4ae622) SHA1(f488e7616371125d5aef2047b8e0fc954ca4b9b4) ) - ROM_LOAD32_BYTE( "cusa.u15", 0x200001, 0x80000, CRC(1a0ad3b7) SHA1(a5300f3c789a4d9d257fda3a280e882f17f4a99f) ) - ROM_LOAD32_BYTE( "cusa.u16", 0x200002, 0x80000, CRC(799d4dd6) SHA1(f1208967544477005924f2a553037e0ffbc668ab) ) - ROM_LOAD32_BYTE( "cusa.u17", 0x200003, 0x80000, CRC(3d68b660) SHA1(3f14e32c205a504ef39abf1e390bd8031d9d7b5b) ) - ROM_LOAD32_BYTE( "cusa.u18", 0x400000, 0x80000, CRC(9e8193fb) SHA1(ec88c2b51bb607d3181e467f8b255c13efebc73c) ) - ROM_LOAD32_BYTE( "cusa.u19", 0x400001, 0x80000, CRC(0bf60cde) SHA1(6c63b3eacaefeb405c8fdf641437786262bcb10d) ) - ROM_LOAD32_BYTE( "cusa.u20", 0x400002, 0x80000, CRC(c07f68f0) SHA1(444ccf8e49fd9c0f707ab32347984ca5628207f9) ) - ROM_LOAD32_BYTE( "cusa.u21", 0x400003, 0x80000, CRC(b0264aed) SHA1(d6a6eca4e4ecedfbc5590dbd06870761155ae8c5) ) - ROM_LOAD32_BYTE( "cusa.u22", 0x600000, 0x80000, CRC(ad137193) SHA1(642a7c37940cb3b2b190661da7b1d4848c7c513d) ) - ROM_LOAD32_BYTE( "cusa.u23", 0x600001, 0x80000, CRC(842449b0) SHA1(b23ebe28ff3c6a268ff9ae1242a4392d2305396b) ) - ROM_LOAD32_BYTE( "cusa.u24", 0x600002, 0x80000, CRC(0b2275be) SHA1(3dc79095064cc158d37218c9a038b5b7a777fc66) ) - ROM_LOAD32_BYTE( "cusa.u25", 0x600003, 0x80000, CRC(2b9fe68f) SHA1(2750613e61c1eaac629ef5b9e89fd88e99a262cc) ) - ROM_LOAD32_BYTE( "cusa.u26", 0x800000, 0x80000, CRC(ae56b871) SHA1(1e218426084123c6c2389d96ce92691010012aa4) ) - ROM_LOAD32_BYTE( "cusa.u27", 0x800001, 0x80000, CRC(2d977a8e) SHA1(8f4d511bfd6c3bee18daa7253be1a27d079aec8f) ) - ROM_LOAD32_BYTE( "cusa.u28", 0x800002, 0x80000, CRC(cffa5fb1) SHA1(fb73bc8f65b604c374f88d0ecf06c50ef52f0547) ) - ROM_LOAD32_BYTE( "cusa.u29", 0x800003, 0x80000, CRC(cbe52c60) SHA1(3f309ce8ef1784c830f4160cfe76dc3a0b438cac) ) -ROM_END - - -ROM_START( crusnu21 ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cusa.u2", 0x000000, 0x80000, CRC(b9338332) SHA1(e5c420e63c4eba0010a68c7e0a57ef210e2c83d2) ) - ROM_LOAD16_BYTE( "cusa.u3", 0x200000, 0x80000, CRC(cd8325d6) SHA1(d65d7263e056ca1d637adb44cafef523e0831a34) ) - ROM_LOAD16_BYTE( "cusa.u4", 0x400000, 0x80000, CRC(fab457f3) SHA1(2b4b647838b7a8100afc25ca1ffdc74ed67ae00a) ) - ROM_LOAD16_BYTE( "cusa.u5", 0x600000, 0x80000, CRC(becc92f4) SHA1(6dffa73ff5270155c44f295e443d5e77c03c0338) ) - ROM_LOAD16_BYTE( "cusa.u6", 0x800000, 0x80000, CRC(a9f915d3) SHA1(6a16a2d7a807a775673e7121b54f37c583581203) ) - ROM_LOAD16_BYTE( "cusa.u7", 0xa00000, 0x80000, CRC(424f0bbc) SHA1(f38a431fc0fb7102c51f2d5b6f716dd4669a9822) ) - ROM_LOAD16_BYTE( "cusa.u8", 0xc00000, 0x80000, CRC(03c28199) SHA1(393b009acd3eceb346b8fff45ae2bdf4f53d041f) ) - ROM_LOAD16_BYTE( "cusa.u9", 0xe00000, 0x80000, CRC(24ba6371) SHA1(f60a9ff73b3645e2c8bad67e2f6debc61b5e0653) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "cusa-l21.u10", 0x000000, 0x80000, CRC(bb759945) SHA1(dbf5270503cb58adb0abd34a8aece5933063ec66) ) - ROM_LOAD32_BYTE( "cusa-l21.u11", 0x000001, 0x80000, CRC(4d2da096) SHA1(6ccb9fee095580089f8d43a2e86e0f8a4407dda5) ) - ROM_LOAD32_BYTE( "cusa-l21.u12", 0x000002, 0x80000, CRC(4b66fe5e) SHA1(885d31c06b11209a1154789bc84e75d0ac9e1e8a) ) - ROM_LOAD32_BYTE( "cusa-l21.u13", 0x000003, 0x80000, CRC(a165359f) SHA1(eefbeaa67282b3826503f4edff84282ff5f45d35) ) - ROM_LOAD32_BYTE( "cusa.u14", 0x200000, 0x80000, CRC(6a4ae622) SHA1(f488e7616371125d5aef2047b8e0fc954ca4b9b4) ) - ROM_LOAD32_BYTE( "cusa.u15", 0x200001, 0x80000, CRC(1a0ad3b7) SHA1(a5300f3c789a4d9d257fda3a280e882f17f4a99f) ) - ROM_LOAD32_BYTE( "cusa.u16", 0x200002, 0x80000, CRC(799d4dd6) SHA1(f1208967544477005924f2a553037e0ffbc668ab) ) - ROM_LOAD32_BYTE( "cusa.u17", 0x200003, 0x80000, CRC(3d68b660) SHA1(3f14e32c205a504ef39abf1e390bd8031d9d7b5b) ) - ROM_LOAD32_BYTE( "cusa.u18", 0x400000, 0x80000, CRC(9e8193fb) SHA1(ec88c2b51bb607d3181e467f8b255c13efebc73c) ) - ROM_LOAD32_BYTE( "cusa.u19", 0x400001, 0x80000, CRC(0bf60cde) SHA1(6c63b3eacaefeb405c8fdf641437786262bcb10d) ) - ROM_LOAD32_BYTE( "cusa.u20", 0x400002, 0x80000, CRC(c07f68f0) SHA1(444ccf8e49fd9c0f707ab32347984ca5628207f9) ) - ROM_LOAD32_BYTE( "cusa.u21", 0x400003, 0x80000, CRC(b0264aed) SHA1(d6a6eca4e4ecedfbc5590dbd06870761155ae8c5) ) - ROM_LOAD32_BYTE( "cusa.u22", 0x600000, 0x80000, CRC(ad137193) SHA1(642a7c37940cb3b2b190661da7b1d4848c7c513d) ) - ROM_LOAD32_BYTE( "cusa.u23", 0x600001, 0x80000, CRC(842449b0) SHA1(b23ebe28ff3c6a268ff9ae1242a4392d2305396b) ) - ROM_LOAD32_BYTE( "cusa.u24", 0x600002, 0x80000, CRC(0b2275be) SHA1(3dc79095064cc158d37218c9a038b5b7a777fc66) ) - ROM_LOAD32_BYTE( "cusa.u25", 0x600003, 0x80000, CRC(2b9fe68f) SHA1(2750613e61c1eaac629ef5b9e89fd88e99a262cc) ) - ROM_LOAD32_BYTE( "cusa.u26", 0x800000, 0x80000, CRC(ae56b871) SHA1(1e218426084123c6c2389d96ce92691010012aa4) ) - ROM_LOAD32_BYTE( "cusa.u27", 0x800001, 0x80000, CRC(2d977a8e) SHA1(8f4d511bfd6c3bee18daa7253be1a27d079aec8f) ) - ROM_LOAD32_BYTE( "cusa.u28", 0x800002, 0x80000, CRC(cffa5fb1) SHA1(fb73bc8f65b604c374f88d0ecf06c50ef52f0547) ) - ROM_LOAD32_BYTE( "cusa.u29", 0x800003, 0x80000, CRC(cbe52c60) SHA1(3f309ce8ef1784c830f4160cfe76dc3a0b438cac) ) -ROM_END - - -ROM_START( crusnwld ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cwld.u2", 0x000000, 0x80000, CRC(7a233c89) SHA1(ecfad4bc48a69cd3399e3b3266c81574082e0169) ) - ROM_LOAD16_BYTE( "cwld.u3", 0x200000, 0x80000, CRC(be9a5ff0) SHA1(98d69dbfa6aa8462cdd46772e991ee418b79c653) ) - ROM_LOAD16_BYTE( "cwld.u4", 0x400000, 0x80000, CRC(69f02d84) SHA1(0fb4ff750de78505f241ae6cd18fccf3ddf4223f) ) - ROM_LOAD16_BYTE( "cwld.u5", 0x600000, 0x80000, CRC(9d0b9071) SHA1(05edf9073399a942a9d0b969274a7ebf4ca677da) ) - ROM_LOAD16_BYTE( "cwld.u6", 0x800000, 0x80000, CRC(df28f492) SHA1(c61f3870f59458b7bb5efbf93d697e3fa44a7830) ) - ROM_LOAD16_BYTE( "cwld.u7", 0xa00000, 0x80000, CRC(0128913e) SHA1(c11bc115877310c17f9b57f72b29d19b0ad71afa) ) - ROM_LOAD16_BYTE( "cwld.u8", 0xc00000, 0x80000, CRC(5127c08e) SHA1(4f0eae73817270fa156829100b66f0ff88fa422c) ) - ROM_LOAD16_BYTE( "cwld.u9", 0xe00000, 0x80000, CRC(84cdc781) SHA1(62287aa72903698d1890908adde53c39f8bd200c) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "crusnw24.u10", 0x0000000, 0x100000, CRC(551ec903) SHA1(f3d983ca5d9a90b2898fb2c3adf8859ab7b43917) ) - ROM_LOAD32_BYTE( "crusnw24.u11", 0x0000001, 0x100000, CRC(4c57faf2) SHA1(d5717e6222bb59c5aba782bce04aa52c1d148c49) ) - ROM_LOAD32_BYTE( "crusnw24.u12", 0x0000002, 0x100000, CRC(3a4d9a30) SHA1(ac944555340502e9324df8360c3efc538315e474) ) - ROM_LOAD32_BYTE( "crusnw24.u13", 0x0000003, 0x100000, CRC(ca6a0c94) SHA1(217659d2ce1b970265df258e330148fef327c6f1) ) - ROM_LOAD32_BYTE( "cwld.u14", 0x0400000, 0x100000, CRC(ee815091) SHA1(fb8a99bae07f42966f76a3bb073d7d8280d8efcb) ) - ROM_LOAD32_BYTE( "cwld.u15", 0x0400001, 0x100000, CRC(e2da7bf1) SHA1(9d9a80055ee62476f47c95e30ec9a989d5d0e25b) ) - ROM_LOAD32_BYTE( "cwld.u16", 0x0400002, 0x100000, CRC(05a7ad2f) SHA1(4bdfde671379ecefa3f8ceb6fc06e8df5d70fc22) ) - ROM_LOAD32_BYTE( "cwld.u17", 0x0400003, 0x100000, CRC(d6278c0c) SHA1(3e152d755d69903718a84d4154e442a31026f3d8) ) - ROM_LOAD32_BYTE( "cwld.u18", 0x0800000, 0x100000, CRC(e2dc2733) SHA1(c277643548c03d831a3b091f1a311accac9d106b) ) - ROM_LOAD32_BYTE( "cwld.u19", 0x0800001, 0x100000, CRC(5223a070) SHA1(90ce48b2308fa9e7cb636c4732b20b8e177aa9b1) ) - ROM_LOAD32_BYTE( "cwld.u20", 0x0800002, 0x100000, CRC(db535625) SHA1(599ccd6bcfb155eb68ac131de4af524510ab35b7) ) - ROM_LOAD32_BYTE( "cwld.u21", 0x0800003, 0x100000, CRC(92a080e8) SHA1(e5e0faf820b5870a81f121b6ad4c37a9081724e4) ) - ROM_LOAD32_BYTE( "cwld.u22", 0x0c00000, 0x100000, CRC(77c56318) SHA1(52344038942c83f3ce82f3169a345ceb86e43dcb) ) - ROM_LOAD32_BYTE( "cwld.u23", 0x0c00001, 0x100000, CRC(6b920fc7) SHA1(993da81181f24075e1aead7c4b374f36dd86a9c3) ) - ROM_LOAD32_BYTE( "cwld.u24", 0x0c00002, 0x100000, CRC(83485401) SHA1(58407818a82a7a3657530dcda7e373e678b58ab2) ) - ROM_LOAD32_BYTE( "cwld.u25", 0x0c00003, 0x100000, CRC(0dad97a9) SHA1(cdb0c02da35243b118e37ff1519aa6ee1a79d06d) ) -ROM_END - - -ROM_START( crusnw23 ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cwld.u2", 0x000000, 0x80000, CRC(7a233c89) SHA1(ecfad4bc48a69cd3399e3b3266c81574082e0169) ) - ROM_LOAD16_BYTE( "cwld.u3", 0x200000, 0x80000, CRC(be9a5ff0) SHA1(98d69dbfa6aa8462cdd46772e991ee418b79c653) ) - ROM_LOAD16_BYTE( "cwld.u4", 0x400000, 0x80000, CRC(69f02d84) SHA1(0fb4ff750de78505f241ae6cd18fccf3ddf4223f) ) - ROM_LOAD16_BYTE( "cwld.u5", 0x600000, 0x80000, CRC(9d0b9071) SHA1(05edf9073399a942a9d0b969274a7ebf4ca677da) ) - ROM_LOAD16_BYTE( "cwld.u6", 0x800000, 0x80000, CRC(df28f492) SHA1(c61f3870f59458b7bb5efbf93d697e3fa44a7830) ) - ROM_LOAD16_BYTE( "cwld.u7", 0xa00000, 0x80000, CRC(0128913e) SHA1(c11bc115877310c17f9b57f72b29d19b0ad71afa) ) - ROM_LOAD16_BYTE( "cwld.u8", 0xc00000, 0x80000, CRC(5127c08e) SHA1(4f0eae73817270fa156829100b66f0ff88fa422c) ) - ROM_LOAD16_BYTE( "cwld.u9", 0xe00000, 0x80000, CRC(84cdc781) SHA1(62287aa72903698d1890908adde53c39f8bd200c) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "cwld_l23.u10", 0x0000000, 0x100000, CRC(956e0642) SHA1(c023d41159bac9b468d6fc411005f66b15b9dff6) ) - ROM_LOAD32_BYTE( "cwld_l23.u11", 0x0000001, 0x100000, CRC(b4ed2929) SHA1(22afc3c7bcc57b7b24b4156376df0b7fb8f0c9fb) ) - ROM_LOAD32_BYTE( "cwld_l23.u12", 0x0000002, 0x100000, CRC(cd12528e) SHA1(685e2280448be2cd90a875cca9ef2ab3d2f8d3e1) ) - ROM_LOAD32_BYTE( "cwld_l23.u13", 0x0000003, 0x100000, CRC(b096d211) SHA1(a2663b58e2f21bcfcba5317ff0ae91dd21a399f5) ) - ROM_LOAD32_BYTE( "cwld.u14", 0x0400000, 0x100000, CRC(ee815091) SHA1(fb8a99bae07f42966f76a3bb073d7d8280d8efcb) ) - ROM_LOAD32_BYTE( "cwld.u15", 0x0400001, 0x100000, CRC(e2da7bf1) SHA1(9d9a80055ee62476f47c95e30ec9a989d5d0e25b) ) - ROM_LOAD32_BYTE( "cwld.u16", 0x0400002, 0x100000, CRC(05a7ad2f) SHA1(4bdfde671379ecefa3f8ceb6fc06e8df5d70fc22) ) - ROM_LOAD32_BYTE( "cwld.u17", 0x0400003, 0x100000, CRC(d6278c0c) SHA1(3e152d755d69903718a84d4154e442a31026f3d8) ) - ROM_LOAD32_BYTE( "cwld.u18", 0x0800000, 0x100000, CRC(e2dc2733) SHA1(c277643548c03d831a3b091f1a311accac9d106b) ) - ROM_LOAD32_BYTE( "cwld.u19", 0x0800001, 0x100000, CRC(5223a070) SHA1(90ce48b2308fa9e7cb636c4732b20b8e177aa9b1) ) - ROM_LOAD32_BYTE( "cwld.u20", 0x0800002, 0x100000, CRC(db535625) SHA1(599ccd6bcfb155eb68ac131de4af524510ab35b7) ) - ROM_LOAD32_BYTE( "cwld.u21", 0x0800003, 0x100000, CRC(92a080e8) SHA1(e5e0faf820b5870a81f121b6ad4c37a9081724e4) ) - ROM_LOAD32_BYTE( "cwld.u22", 0x0c00000, 0x100000, CRC(77c56318) SHA1(52344038942c83f3ce82f3169a345ceb86e43dcb) ) - ROM_LOAD32_BYTE( "cwld.u23", 0x0c00001, 0x100000, CRC(6b920fc7) SHA1(993da81181f24075e1aead7c4b374f36dd86a9c3) ) - ROM_LOAD32_BYTE( "cwld.u24", 0x0c00002, 0x100000, CRC(83485401) SHA1(58407818a82a7a3657530dcda7e373e678b58ab2) ) - ROM_LOAD32_BYTE( "cwld.u25", 0x0c00003, 0x100000, CRC(0dad97a9) SHA1(cdb0c02da35243b118e37ff1519aa6ee1a79d06d) ) -ROM_END - - -ROM_START( crusnw20 ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cwld.u2", 0x000000, 0x80000, CRC(7a233c89) SHA1(ecfad4bc48a69cd3399e3b3266c81574082e0169) ) - ROM_LOAD16_BYTE( "cwld.u3", 0x200000, 0x80000, CRC(be9a5ff0) SHA1(98d69dbfa6aa8462cdd46772e991ee418b79c653) ) - ROM_LOAD16_BYTE( "cwld.u4", 0x400000, 0x80000, CRC(69f02d84) SHA1(0fb4ff750de78505f241ae6cd18fccf3ddf4223f) ) - ROM_LOAD16_BYTE( "cwld.u5", 0x600000, 0x80000, CRC(9d0b9071) SHA1(05edf9073399a942a9d0b969274a7ebf4ca677da) ) - ROM_LOAD16_BYTE( "cwld.u6", 0x800000, 0x80000, CRC(df28f492) SHA1(c61f3870f59458b7bb5efbf93d697e3fa44a7830) ) - ROM_LOAD16_BYTE( "cwld.u7", 0xa00000, 0x80000, CRC(0128913e) SHA1(c11bc115877310c17f9b57f72b29d19b0ad71afa) ) - ROM_LOAD16_BYTE( "cwld.u8", 0xc00000, 0x80000, CRC(5127c08e) SHA1(4f0eae73817270fa156829100b66f0ff88fa422c) ) - ROM_LOAD16_BYTE( "cwld.u9", 0xe00000, 0x80000, CRC(84cdc781) SHA1(62287aa72903698d1890908adde53c39f8bd200c) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "u10_v20.u10", 0x0000000, 0x100000, CRC(2a04da6d) SHA1(0aab4f3dc4853de11234245ac14baa14cb3867f3) ) - ROM_LOAD32_BYTE( "u11_v20.u11", 0x0000001, 0x100000, CRC(26a8ad51) SHA1(522ef3499ba83fa808d7cdae71759e056df353bf) ) - ROM_LOAD32_BYTE( "u12_v20.u12", 0x0000002, 0x100000, CRC(236caec0) SHA1(f53df733943a52f94878bb1b7d6c877722b3fd82) ) - ROM_LOAD32_BYTE( "u13_v20.u13", 0x0000003, 0x100000, CRC(7e056e53) SHA1(62b593e093d06a8c0cca56e34f567f795bfc41fc) ) - ROM_LOAD32_BYTE( "cwld.u14", 0x0400000, 0x100000, CRC(ee815091) SHA1(fb8a99bae07f42966f76a3bb073d7d8280d8efcb) ) - ROM_LOAD32_BYTE( "cwld.u15", 0x0400001, 0x100000, CRC(e2da7bf1) SHA1(9d9a80055ee62476f47c95e30ec9a989d5d0e25b) ) - ROM_LOAD32_BYTE( "cwld.u16", 0x0400002, 0x100000, CRC(05a7ad2f) SHA1(4bdfde671379ecefa3f8ceb6fc06e8df5d70fc22) ) - ROM_LOAD32_BYTE( "cwld.u17", 0x0400003, 0x100000, CRC(d6278c0c) SHA1(3e152d755d69903718a84d4154e442a31026f3d8) ) - ROM_LOAD32_BYTE( "cwld.u18", 0x0800000, 0x100000, CRC(e2dc2733) SHA1(c277643548c03d831a3b091f1a311accac9d106b) ) - ROM_LOAD32_BYTE( "cwld.u19", 0x0800001, 0x100000, CRC(5223a070) SHA1(90ce48b2308fa9e7cb636c4732b20b8e177aa9b1) ) - ROM_LOAD32_BYTE( "cwld.u20", 0x0800002, 0x100000, CRC(db535625) SHA1(599ccd6bcfb155eb68ac131de4af524510ab35b7) ) - ROM_LOAD32_BYTE( "cwld.u21", 0x0800003, 0x100000, CRC(92a080e8) SHA1(e5e0faf820b5870a81f121b6ad4c37a9081724e4) ) - ROM_LOAD32_BYTE( "cwld.u22", 0x0c00000, 0x100000, CRC(77c56318) SHA1(52344038942c83f3ce82f3169a345ceb86e43dcb) ) - ROM_LOAD32_BYTE( "cwld.u23", 0x0c00001, 0x100000, CRC(6b920fc7) SHA1(993da81181f24075e1aead7c4b374f36dd86a9c3) ) - ROM_LOAD32_BYTE( "cwld.u24", 0x0c00002, 0x100000, CRC(83485401) SHA1(58407818a82a7a3657530dcda7e373e678b58ab2) ) - ROM_LOAD32_BYTE( "cwld.u25", 0x0c00003, 0x100000, CRC(0dad97a9) SHA1(cdb0c02da35243b118e37ff1519aa6ee1a79d06d) ) -ROM_END - - -ROM_START( crusnw13 ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "cwld.u2", 0x000000, 0x80000, CRC(7a233c89) SHA1(ecfad4bc48a69cd3399e3b3266c81574082e0169) ) - ROM_LOAD16_BYTE( "cwld.u3", 0x200000, 0x80000, CRC(be9a5ff0) SHA1(98d69dbfa6aa8462cdd46772e991ee418b79c653) ) - ROM_LOAD16_BYTE( "cwld.u4", 0x400000, 0x80000, CRC(69f02d84) SHA1(0fb4ff750de78505f241ae6cd18fccf3ddf4223f) ) - ROM_LOAD16_BYTE( "cwld.u5", 0x600000, 0x80000, CRC(9d0b9071) SHA1(05edf9073399a942a9d0b969274a7ebf4ca677da) ) - ROM_LOAD16_BYTE( "cwld.u6", 0x800000, 0x80000, CRC(df28f492) SHA1(c61f3870f59458b7bb5efbf93d697e3fa44a7830) ) - ROM_LOAD16_BYTE( "cwld.u7", 0xa00000, 0x80000, CRC(0128913e) SHA1(c11bc115877310c17f9b57f72b29d19b0ad71afa) ) - ROM_LOAD16_BYTE( "cwld.u8", 0xc00000, 0x80000, CRC(5127c08e) SHA1(4f0eae73817270fa156829100b66f0ff88fa422c) ) - ROM_LOAD16_BYTE( "cwld.u9", 0xe00000, 0x80000, CRC(84cdc781) SHA1(62287aa72903698d1890908adde53c39f8bd200c) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "cwld_l13.u10", 0x0000000, 0x100000, CRC(d361d17d) SHA1(7f42baec5492c4040e030e6233e500eb54bd9cba) ) - ROM_LOAD32_BYTE( "cwld_l13.u11", 0x0000001, 0x100000, CRC(b0c0a462) SHA1(22ae081c3eb9f298aea73e99a0124becd540f0df) ) - ROM_LOAD32_BYTE( "cwld_l13.u12", 0x0000002, 0x100000, CRC(5e7c566b) SHA1(81e6f21309bd3ba8589bc591a9ba5729f301539e) ) - ROM_LOAD32_BYTE( "cwld_l13.u13", 0x0000003, 0x100000, CRC(46886e9c) SHA1(a2400f42fef9838fd8a347e8a249ba977d9fbcfe) ) - ROM_LOAD32_BYTE( "cwld.u14", 0x0400000, 0x100000, CRC(ee815091) SHA1(fb8a99bae07f42966f76a3bb073d7d8280d8efcb) ) - ROM_LOAD32_BYTE( "cwld.u15", 0x0400001, 0x100000, CRC(e2da7bf1) SHA1(9d9a80055ee62476f47c95e30ec9a989d5d0e25b) ) - ROM_LOAD32_BYTE( "cwld.u16", 0x0400002, 0x100000, CRC(05a7ad2f) SHA1(4bdfde671379ecefa3f8ceb6fc06e8df5d70fc22) ) - ROM_LOAD32_BYTE( "cwld.u17", 0x0400003, 0x100000, CRC(d6278c0c) SHA1(3e152d755d69903718a84d4154e442a31026f3d8) ) - ROM_LOAD32_BYTE( "cwld.u18", 0x0800000, 0x100000, CRC(e2dc2733) SHA1(c277643548c03d831a3b091f1a311accac9d106b) ) - ROM_LOAD32_BYTE( "cwld.u19", 0x0800001, 0x100000, CRC(5223a070) SHA1(90ce48b2308fa9e7cb636c4732b20b8e177aa9b1) ) - ROM_LOAD32_BYTE( "cwld.u20", 0x0800002, 0x100000, CRC(db535625) SHA1(599ccd6bcfb155eb68ac131de4af524510ab35b7) ) - ROM_LOAD32_BYTE( "cwld.u21", 0x0800003, 0x100000, CRC(92a080e8) SHA1(e5e0faf820b5870a81f121b6ad4c37a9081724e4) ) - ROM_LOAD32_BYTE( "cwld.u22", 0x0c00000, 0x100000, CRC(77c56318) SHA1(52344038942c83f3ce82f3169a345ceb86e43dcb) ) - ROM_LOAD32_BYTE( "cwld.u23", 0x0c00001, 0x100000, CRC(6b920fc7) SHA1(993da81181f24075e1aead7c4b374f36dd86a9c3) ) - ROM_LOAD32_BYTE( "cwld.u24", 0x0c00002, 0x100000, CRC(83485401) SHA1(58407818a82a7a3657530dcda7e373e678b58ab2) ) - ROM_LOAD32_BYTE( "cwld.u25", 0x0c00003, 0x100000, CRC(0dad97a9) SHA1(cdb0c02da35243b118e37ff1519aa6ee1a79d06d) ) -ROM_END - - -ROM_START( offroadc ) - ROM_REGION16_LE( 0x1000000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "offroadc.u2", 0x000000, 0x80000, CRC(69976e9d) SHA1(63c886ac2563c43a10840f49f929f8613cd94de2) ) - ROM_LOAD16_BYTE( "offroadc.u3", 0x200000, 0x80000, CRC(2db9b548) SHA1(4f454a3e6a8851b0ef5d325dd28102d57ea11a11) ) - ROM_LOAD16_BYTE( "offroadc.u4", 0x400000, 0x80000, CRC(42bdf9d0) SHA1(04add0f0ee7fa61de1913cc0b988345d3d430cde) ) - ROM_LOAD16_BYTE( "offroadc.u5", 0x600000, 0x80000, CRC(569cc84b) SHA1(08b917cc41fae6b6a3e9d9461a783d3d2865e72a) ) - ROM_LOAD16_BYTE( "offroadc.u6", 0x800000, 0x80000, CRC(0896f679) SHA1(dde39ef17834256909ef2c9fcd5b5fb9939d5178) ) - ROM_LOAD16_BYTE( "offroadc.u7", 0xa00000, 0x80000, CRC(fe242d6a) SHA1(8fbac22ed23044841f309ce58c5b1affcdd5d114) ) - ROM_LOAD16_BYTE( "offroadc.u8", 0xc00000, 0x80000, CRC(5da13f12) SHA1(2bb5e929e8bc6c70cb4475024a6b0bb07ac25244) ) - ROM_LOAD16_BYTE( "offroadc.u9", 0xe00000, 0x80000, CRC(7ad27f69) SHA1(b33665d0593a95b58d529720aae49e90449bf714) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD32_BYTE( "offroadc.u10", 0x0000000, 0x100000, CRC(4729660c) SHA1(0baff6a27015f4eb3fe0a981ecbac33d140e872a) ) - ROM_LOAD32_BYTE( "offroadc.u11", 0x0000001, 0x100000, CRC(6272d013) SHA1(860121184282627ed692e56a0dafee8b64562811) ) - ROM_LOAD32_BYTE( "offroadc.u12", 0x0000002, 0x100000, CRC(9c8326be) SHA1(55f16d14379f57d08ed84d82f9db1a582bc223a1) ) - ROM_LOAD32_BYTE( "offroadc.u13", 0x0000003, 0x100000, CRC(53bbc181) SHA1(1ab29a27a216eb09d69a9f3d681865de1a904717) ) - ROM_LOAD32_BYTE( "offroadc.u14", 0x0400000, 0x100000, CRC(1e41d14b) SHA1(3f7c5fae1f8b82ddd811720837fa298785a8dd27) ) - ROM_LOAD32_BYTE( "offroadc.u15", 0x0400001, 0x100000, CRC(654d623d) SHA1(a944b8f8d71b099d7b5bbd7df6effb90afc3aec8) ) - ROM_LOAD32_BYTE( "offroadc.u16", 0x0400002, 0x100000, CRC(259774d8) SHA1(90cdf659324b84b3c2c59497cc5611e8f12629a6) ) - ROM_LOAD32_BYTE( "offroadc.u17", 0x0400003, 0x100000, CRC(50c61434) SHA1(52bc603101b4f88b7d892af683b7c8358cabbf4a) ) - ROM_LOAD32_BYTE( "offroadc.u18", 0x0800000, 0x100000, CRC(015be91c) SHA1(1624537068c6bc5fa6235bf0b0343347c337e8d8) ) - ROM_LOAD32_BYTE( "offroadc.u19", 0x0800001, 0x100000, CRC(cfc6b70e) SHA1(8c5ad84c50ca142726db0595153cf04caaabec9c) ) - ROM_LOAD32_BYTE( "offroadc.u20", 0x0800002, 0x100000, CRC(f48d6e33) SHA1(8b9c205e24f217ac110cdd82388c056ebbbb09b0) ) - ROM_LOAD32_BYTE( "offroadc.u21", 0x0800003, 0x100000, CRC(17794b56) SHA1(8bfd8f5b43056bfe7f62524bb8c3a8564a3a9413) ) - ROM_LOAD32_BYTE( "offroadc.u22", 0x0c00000, 0x100000, CRC(f2a6e622) SHA1(a7d7004e95b058124cc02e8073dab8fbed8813c5) ) - ROM_LOAD32_BYTE( "offroadc.u23", 0x0c00001, 0x100000, CRC(1cba6e20) SHA1(a7c9c58bfc4d26decb08979d83cccedb27528eb6) ) - ROM_LOAD32_BYTE( "offroadc.u24", 0x0c00002, 0x100000, CRC(fd3ce11f) SHA1(78c65267712488784bc6dc14eef98a90494a9553) ) - ROM_LOAD32_BYTE( "offroadc.u25", 0x0c00003, 0x100000, CRC(78f8e5db) SHA1(7ec2a5add27d66c43ba5cb7182554321007f5798) ) -ROM_END - - -ROM_START( wargods ) - ROM_REGION16_LE( 0x10000, REGION_SOUND1, 0 ) /* sound data */ - ROM_LOAD16_BYTE( "u2.rom", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) - ROM_LOAD( "u41.rom", 0x000000, 0x20000, CRC(398c54cc) SHA1(6c4b5d6ec5c844dcbf181f9d86a9196a088ed2db) ) - - DISK_REGION( REGION_DISKS ) - DISK_IMAGE( "wargods", 0, MD5(9a41ae319a67fc626377b6d9ea34c860) SHA1(4b02f8f33027a0e7b2c750c10da1fe22222b3e1e) ) -ROM_END - - - -/************************************* - * - * Driver init - * - *************************************/ - -static UINT32 *generic_speedup; -static READ32_HANDLER( generic_speedup_r ) -{ - activecpu_eat_cycles(100); - return generic_speedup[offset]; -} - - -static void init_crusnusa_common(offs_t speedup) -{ - dcs_init(); - adc_shift = 24; - - /* speedups */ - generic_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, speedup, speedup + 1, 0, 0, generic_speedup_r); -} -static DRIVER_INIT( crusnusa ) { init_crusnusa_common(0xc93e); } -static DRIVER_INIT( crusnu40 ) { init_crusnusa_common(0xc957); } -static DRIVER_INIT( crusnu21 ) { init_crusnusa_common(0xc051); } - - -static void init_crusnwld_common(offs_t speedup) -{ - dcs_init(); - adc_shift = 16; - - /* control register is different */ - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x994000, 0x994000, 0, 0, crusnwld_control_w); - - /* valid values are 450 or 460 */ - midway_serial_pic_init(450); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x991030, 0x991030, 0, 0, offroadc_serial_status_r); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x996000, 0x996000, 0, 0, offroadc_serial_data_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x996000, 0x996000, 0, 0, offroadc_serial_data_w); - - /* install strange protection device */ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x9d0000, 0x9d1fff, 0, 0, bit_data_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x9d0000, 0x9d0000, 0, 0, bit_reset_w); - - /* speedups */ - if (speedup) - generic_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, speedup, speedup + 1, 0, 0, generic_speedup_r); -} -static DRIVER_INIT( crusnwld ) { init_crusnwld_common(0xd4c0); } -#if 0 -static DRIVER_INIT( crusnw20 ) { init_crusnwld_common(0xd49c); } -static DRIVER_INIT( crusnw13 ) { init_crusnwld_common(0); } -#endif - -static DRIVER_INIT( offroadc ) -{ - dcs_init(); - adc_shift = 16; - - /* control register is different */ - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x994000, 0x994000, 0, 0, crusnwld_control_w); - - /* valid values are 230 or 234 */ - midway_serial_pic2_init(230, 94); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x991030, 0x991030, 0, 0, offroadc_serial_status_r); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x996000, 0x996000, 0, 0, offroadc_serial_data_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x996000, 0x996000, 0, 0, offroadc_serial_data_w); - - /* speedups */ - generic_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x195aa, 0x195aa, 0, 0, generic_speedup_r); -} - - -static struct ide_interface ide_intf = -{ - 0 -}; - -static DRIVER_INIT( wargods ) -{ - UINT8 default_nvram[256]; - - /* initialize the subsystems */ - dcs2_init(2, 0x3839); - ide_controller_init(0, &ide_intf); - midway_ioasic_init(0, 452/* no alternates */, 94, NULL); - adc_shift = 16; - - /* we need proper VRAM */ - memset(default_nvram, 0xff, sizeof(default_nvram)); - default_nvram[0x0e] = default_nvram[0x2e] = 0x67; - default_nvram[0x0f] = default_nvram[0x2f] = 0x32; - default_nvram[0x10] = default_nvram[0x30] = 0x0a; - default_nvram[0x11] = default_nvram[0x31] = 0x00; - default_nvram[0x12] = default_nvram[0x32] = 0xaf; - default_nvram[0x17] = default_nvram[0x37] = 0xd8; - default_nvram[0x18] = default_nvram[0x38] = 0xe7; - midway_serial_pic2_set_default_nvram(default_nvram); - - /* speedups */ - generic_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x2f4c, 0x2f4c, 0, 0, generic_speedup_r); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1994, crusnusa, 0, midvunit, crusnusa, crusnusa, ROT0, "Midway", "Cruis'n USA (rev L4.1)", 0 ) -GAME( 1994, crusnu40, crusnusa, midvunit, crusnusa, crusnu40, ROT0, "Midway", "Cruis'n USA (rev L4.0)", 0 ) -GAME( 1994, crusnu21, crusnusa, midvunit, crusnusa, crusnu21, ROT0, "Midway", "Cruis'n USA (rev L2.1)", 0 ) -GAME( 1996, crusnwld, 0, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.4)", 0 ) -GAME( 1996, crusnw23, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", 0 ) -GAME( 1996, crusnw20, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.0)", 0 ) -GAME( 1996, crusnw13, crusnwld, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.3)", 0 ) -GAME( 1997, offroadc, 0, midvunit, offroadc, offroadc, ROT0, "Midway", "Off Road Challenge", GAME_NOT_WORKING ) - -GAME( 1995, wargods, 0, midvplus, wargods, wargods, ROT0, "Midway", "War Gods", 0 ) diff --git a/src/drivers/midwunit.c b/src/drivers/midwunit.c deleted file mode 100644 index 090f4097f..000000000 --- a/src/drivers/midwunit.c +++ /dev/null @@ -1,1217 +0,0 @@ -/************************************************************************* - - Midway Wolf-unit system - - driver by Ernesto Corvi, Aaron Giles - based on Y/Z-unit driver by Alex Pasadyn, Zsolt Vasvari, Kurt Mahan - - Games supported: - * Mortal Kombat 3 - * Ultimate Mortal Kombat 3 - * NBA Hangtime - * NBA Maximum Hangtime - * 2 On 2 Open Ice Challenge - * WWF Wrestlemania - * Rampage World Tour - - Known bugs: - * WWF has an unimplemented and not Y2K compatible real-time clock - -*************************************************************************** - -MK3/ Ultimate Mortal Kombat 3 / Williams-Midway Wolf hardware -Midway, 1995 - -PCB Layout ----------- - -5770-14086-05 -|---------------------------------------------------------------------------------------------------| -| 42C8128 42C8128 42C8128 42C8128 *U102 *U103 *U104 *U105 | -| 42C8128 42C8128 42C8128 42C8128 | -| *U106 *U107 *U108 *U109 | -| | -| |---------| U110 U111 U112 U113 | -| |-------| |5410- | | -| |5410- | |12862- | *U114 *U115 *U116 *U117 | -| |14120-0| |00 | |------| | -| |-------| |WILLIAMS | |ALTERA| U118 U119 U120 U121 | -| 84256 84256 |---------| |FPGA3 | | -| |------| U122 U123 U124 U125 | -| RESET_SW | -| U126 U127 U128 U129 | -| 8MHz |------| | -| |ALTERA| BATTERY U130 U131 U132 U133 | -||------| |FPGA2 | | -||ALTERA| | | 42S4260 | -||FPGA1 | |------| 10MHz | -|| |50MHz GAL |-----| ROM.U5 *U9 | -||------| ROM.U54 |ADSP-| | -| LH5268 |2105 | ROM.U4 *U8 | -| |------| |-----| | -| |TMS | ROM.U63 PIC16C57.U64 ROM.U3 *U7 | -| |34010 | 65764 | -| | | LED LED 65764 ROM.U2 *U6 | -| |------| P6 65764 | -| | -| | -| TL084 MAX693 DSW2 DSW1 | -| AD1851 ULN2064 | -|TDA7240 LED | -| |----| JAMMA |----| P9 P10 P11 P12 | -|------------| |-------------------------| |--------------------------------------------------| -Notes: - * - Empty DIP32 socket (for UMK3) - P9/10/11/12 - connector for extra controls - P6 - connector possibly tied to the PIC via some logic? - GAL - labelled 'MKIII-U57 A-20093 (C)1995 MIDWAY MFG. CO.' - PIC.U64 - labelled 'MK3 ULTIMATE U64' - ALTERA FPGA1 - labelled 'MKIII-U45 A-20096 (C)1995 MIDWAY MFG. CO.' - ALTERA FPGA2 - labelled 'MKIII-U47 A-20249 (C)1995 MIDWAY MFG. CO.' - ALTERA FPGA3 - labelled 'MKIII-U35 A-20095 (C)1995 MIDWAY MFG. CO.' - TMS34010 - input clock (pin5) 50.000MHz - ADSP-2105 - clock input 10.000MHz - PIC16C57 - clock input 4.000MHz [8/2] - TDA7240 - Sound Amplifier IC - RAM - 42C8128 (x8), 42S4260 (x1), 84256 (x2), LH5268 (x1), 65764 (x3) - VSync - 54.5Hz (measured on pin 31 of TMS34010) - HSync - 15.81kHz (measured on pin 30 of TMS34010) - - All ROMs from U102 to U133 are labelled 'MORTAL KOMBAT III ULTIMATE (C) MIDWAY MFG U' + U# as 3 digits + 'VIDEO IMAGE' - U3 labelled 'MORTAL KOMBAT 3 U3 MUSIC/SPCH' - U2 labelled 'MORTAL KOMBAT 3 U2 ULTIMATE' - -**************************************************************************/ - - -#include "driver.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/adsp2100/adsp2100.h" -#include "sndhrdw/dcs.h" -#include "midwunit.h" - - - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000000, 0x003fffff) AM_READWRITE(midtunit_vram_r, midtunit_vram_w) - AM_RANGE(0x01000000, 0x013fffff) AM_RAM - AM_RANGE(0x01400000, 0x0145ffff) AM_READWRITE(midwunit_cmos_r, midwunit_cmos_w) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x01480000, 0x014fffff) AM_WRITE(midwunit_cmos_enable_w) - AM_RANGE(0x01600000, 0x0160001f) AM_READWRITE(midwunit_security_r, midwunit_security_w) - AM_RANGE(0x01680000, 0x0168001f) AM_READWRITE(midwunit_sound_r, midwunit_sound_w) - AM_RANGE(0x01800000, 0x0187ffff) AM_READWRITE(midwunit_io_r, midwunit_io_w) - AM_RANGE(0x01880000, 0x018fffff) AM_READWRITE(MRA16_RAM, midtunit_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0x01a00000, 0x01a000ff) AM_MIRROR(0x00080000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w) - AM_RANGE(0x01b00000, 0x01b0001f) AM_READWRITE(midwunit_control_r, midwunit_control_w) - AM_RANGE(0x02000000, 0x06ffffff) AM_READ(midwunit_gfxrom_r) AM_BASE((UINT16 **)&midwunit_decode_memory) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w) - AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( mk3 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0002, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_DIPNAME( 0x007c, 0x007c, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x007c, "USA-1" ) - PORT_DIPSETTING( 0x003c, "USA-2" ) - PORT_DIPSETTING( 0x005c, "USA-3" ) - PORT_DIPSETTING( 0x001c, "USA-4" ) - PORT_DIPSETTING( 0x006c, "USA-ECA" ) - PORT_DIPSETTING( 0x000c, "USA-Free Play" ) - PORT_DIPSETTING( 0x0074, "German-1" ) - PORT_DIPSETTING( 0x0034, "German-2" ) - PORT_DIPSETTING( 0x0054, "German-3" ) - PORT_DIPSETTING( 0x0014, "German-4" ) - PORT_DIPSETTING( 0x0064, "German-5" ) - PORT_DIPSETTING( 0x0024, "German-ECA" ) - PORT_DIPSETTING( 0x0004, "German-Free Play" ) - PORT_DIPSETTING( 0x0078, "French-1" ) - PORT_DIPSETTING( 0x0038, "French-2" ) - PORT_DIPSETTING( 0x0058, "French-3" ) - PORT_DIPSETTING( 0x0018, "French-4" ) - PORT_DIPSETTING( 0x0068, "French-ECA" ) - PORT_DIPSETTING( 0x0008, "French-Free Play" ) - PORT_DIPNAME( 0x0080, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0080, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0200, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0200, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, "Bill Validator" ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x1000, 0x1000, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x1000, DEF_STR( On )) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x4000, 0x4000, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x4000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, "Violence" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x8000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* interrupt */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( openice ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0001, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x003e, 0x003e, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x003e, "USA-1" ) - PORT_DIPSETTING( 0x003c, "USA-2" ) - PORT_DIPSETTING( 0x003a, "USA-3" ) - PORT_DIPSETTING( 0x0038, "USA-4" ) - PORT_DIPSETTING( 0x0034, "USA-9" ) - PORT_DIPSETTING( 0x0032, "USA-10" ) - PORT_DIPSETTING( 0x0036, "USA-ECA" ) - PORT_DIPSETTING( 0x0030, "USA-Free Play" ) - PORT_DIPSETTING( 0x002e, "German-1" ) - PORT_DIPSETTING( 0x002c, "German-2" ) - PORT_DIPSETTING( 0x002a, "German-3" ) - PORT_DIPSETTING( 0x0028, "German-4" ) - PORT_DIPSETTING( 0x0024, "German-5" ) - PORT_DIPSETTING( 0x0026, "German-ECA" ) - PORT_DIPSETTING( 0x0020, "German-Free Play" ) - PORT_DIPSETTING( 0x001e, "French-1" ) - PORT_DIPSETTING( 0x001c, "French-2" ) - PORT_DIPSETTING( 0x001a, "French-3" ) - PORT_DIPSETTING( 0x0018, "French-4" ) - PORT_DIPSETTING( 0x0014, "French-11" ) - PORT_DIPSETTING( 0x0012, "French-12" ) - PORT_DIPSETTING( 0x0016, "French-ECA" ) - PORT_DIPSETTING( 0x0010, "French-Free Play" ) - PORT_DIPNAME( 0x0040, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0040, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0100, 0x0100, "Bill Validator" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0200, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0400, DEF_STR( On )) - PORT_DIPNAME( 0x0800, 0x0800, "Head Size" ) - PORT_DIPSETTING( 0x0800, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0000, "Large" ) - PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x0000, "2-player" ) - PORT_DIPSETTING( 0x1000, "4-player" ) - PORT_BIT( 0x6000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* interlock */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( nbahangt ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0002, DEF_STR( On )) - PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0040, 0x0040, "Bill Validator" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x0000, "2-player" ) - PORT_DIPSETTING( 0x0080, "4-player" ) - PORT_DIPNAME( 0x0300, 0x0300, "Counters" ) - PORT_DIPSETTING( 0x0300, "One, 1/1" ) - PORT_DIPSETTING( 0x0200, "One, Totalizing" ) - PORT_DIPSETTING( 0x0100, "Two, 1/1" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Country" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7000, "1" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x5000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x6000, "ECA" ) -// PORT_DIPSETTING( 0x4000, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x2000, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* interlock */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( rmpgwt ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0xff80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0001, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x003e, 0x003e, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x003e, "USA-1" ) - PORT_DIPSETTING( 0x003c, "USA-2" ) - PORT_DIPSETTING( 0x003a, "USA-3" ) - PORT_DIPSETTING( 0x0038, "USA-4" ) - PORT_DIPSETTING( 0x0034, "USA-9" ) - PORT_DIPSETTING( 0x0032, "USA-10" ) - PORT_DIPSETTING( 0x0036, "USA-ECA" ) - PORT_DIPSETTING( 0x0030, "USA-Free Play" ) - PORT_DIPSETTING( 0x002e, "German-1" ) - PORT_DIPSETTING( 0x002c, "German-2" ) - PORT_DIPSETTING( 0x002a, "German-3" ) - PORT_DIPSETTING( 0x0028, "German-4" ) - PORT_DIPSETTING( 0x0024, "German-5" ) - PORT_DIPSETTING( 0x0026, "German-ECA" ) - PORT_DIPSETTING( 0x0020, "German-Free Play" ) - PORT_DIPSETTING( 0x001e, "French-1" ) - PORT_DIPSETTING( 0x001c, "French-2" ) - PORT_DIPSETTING( 0x001a, "French-3" ) - PORT_DIPSETTING( 0x0018, "French-4" ) - PORT_DIPSETTING( 0x0014, "French-11" ) - PORT_DIPSETTING( 0x0012, "French-12" ) - PORT_DIPSETTING( 0x0016, "French-ECA" ) - PORT_DIPSETTING( 0x0010, "French-Free Play" ) - PORT_DIPNAME( 0x0040, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0040, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0100, 0x0100, "Bill Validator" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0400, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0400, DEF_STR( On )) - PORT_BIT( 0x7800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* interlock */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( wwfmania ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0002, DEF_STR( On )) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0008, 0x0008, "Realtime Clock" ) - PORT_DIPSETTING( 0x0008, DEF_STR( No )) - PORT_DIPSETTING( 0x0000, DEF_STR( Yes )) - PORT_BIT( 0x0030, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0040, 0x0040, "Bill Validator" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0300, 0x0300, "Counters" ) - PORT_DIPSETTING( 0x0300, "One, 1/1" ) - PORT_DIPSETTING( 0x0200, "One, Totalizing" ) - PORT_DIPSETTING( 0x0100, "Two, 1/1" ) - PORT_DIPNAME( 0x0c00, 0x0c00, "Country" ) - PORT_DIPSETTING( 0x0c00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7000, "1" ) - PORT_DIPSETTING( 0x3000, "2" ) - PORT_DIPSETTING( 0x5000, "3" ) - PORT_DIPSETTING( 0x1000, "4" ) - PORT_DIPSETTING( 0x6000, "ECA" ) -// PORT_DIPSETTING( 0x4000, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x2000, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED ) /* interrupt */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * 34010 configuration - * - *************************************/ - -static struct tms34010_config tms_config = -{ - 0, /* halt on reset */ - NULL, /* generate interrupt */ - midtunit_to_shiftreg, /* write to shiftreg function */ - midtunit_from_shiftreg, /* read from shiftreg function */ - 0, /* display address changed */ - 0 /* display interrupt callback */ -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -/* - all games use identical visible areas and VBLANK timing - based on these video params: - - VERTICAL HORIZONTAL - mk3: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) - umk3: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) - wwfmania: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) - openice: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) - nbahangt: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) - nbamht: 0014-0112 / 0120 (254) 0065-001F5 / 01F9 (400) -*/ - -static MACHINE_DRIVER_START( wunit ) - - MDRV_CPU_ADD(TMS34010, 50000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_CONFIG(tms_config) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_SCREEN_REFRESH_RATE(MKLA5_FPS) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((1000000 * (288 - 254)) / (MKLA5_FPS * 288))) - MDRV_MACHINE_RESET(midwunit) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 253) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(midwunit) - MDRV_VIDEO_UPDATE(midtunit) - - /* sound hardware */ - MDRV_IMPORT_FROM(dcs_audio_8k) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( mk3 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mk321u54.bin", 0x00000, 0x80000, CRC(9e344401) SHA1(5760b355f0a5c27c9746f33abfdedf4302f1af38) ) - ROM_LOAD16_BYTE( "mk321u63.bin", 0x00001, 0x80000, CRC(64d34776) SHA1(d8f09e1e946dc13fec5e9f83fdaf61d4076ba9ea) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "mk3-u121.bin", 0x0c00000, 0x100000, CRC(b6c6296a) SHA1(7b92a92d65493bb201daf5ece6f00140f017ac51) ) - ROM_LOAD( "mk3-u120.bin", 0x0d00000, 0x100000, CRC(8d1ccc3b) SHA1(35d91c00113718a08a9d56eb04366f8cf4069ba6) ) - ROM_LOAD( "mk3-u119.bin", 0x0e00000, 0x100000, CRC(63215b59) SHA1(709bce15fba1520bcba40f0a5cb614542f1b460f) ) - ROM_LOAD( "mk3-u118.bin", 0x0f00000, 0x100000, CRC(8b681e34) SHA1(524104ba2eb2deb3cfae9760e6b2125ce6b6633e) ) - - ROM_LOAD( "mk3-u117.bin", 0x1000000, 0x080000, CRC(1ab20377) SHA1(0c0d14464d8b23a60e0693669af2ddb82655eff8) ) - ROM_LOAD( "mk3-u116.bin", 0x1100000, 0x080000, CRC(ba246ad0) SHA1(ec6bdd4b9cd3007bb66bb8de36d148abb30e7f11) ) - ROM_LOAD( "mk3-u115.bin", 0x1200000, 0x080000, CRC(3ee8b124) SHA1(1523d51e36d3c336b134a562da36a29ba137c0f6) ) - ROM_LOAD( "mk3-u114.bin", 0x1300000, 0x080000, CRC(a8d99922) SHA1(04ff8d85448701070672f44dbf5bcfd744f1bc8a) ) -ROM_END - - -ROM_START( mk3r20 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mk320u54.bin", 0x00000, 0x80000, CRC(453da302) SHA1(d9a4814e7abb49ac0eb306ad05adcceac68df6a5) ) - ROM_LOAD16_BYTE( "mk320u63.bin", 0x00001, 0x80000, CRC(f8dc0600) SHA1(6eb689d92619c751252155b40af119ad47e94cfa) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "mk3-u121.bin", 0x0c00000, 0x100000, CRC(b6c6296a) SHA1(7b92a92d65493bb201daf5ece6f00140f017ac51) ) - ROM_LOAD( "mk3-u120.bin", 0x0d00000, 0x100000, CRC(8d1ccc3b) SHA1(35d91c00113718a08a9d56eb04366f8cf4069ba6) ) - ROM_LOAD( "mk3-u119.bin", 0x0e00000, 0x100000, CRC(63215b59) SHA1(709bce15fba1520bcba40f0a5cb614542f1b460f) ) - ROM_LOAD( "mk3-u118.bin", 0x0f00000, 0x100000, CRC(8b681e34) SHA1(524104ba2eb2deb3cfae9760e6b2125ce6b6633e) ) - - ROM_LOAD( "mk3-u117.bin", 0x1000000, 0x080000, CRC(1ab20377) SHA1(0c0d14464d8b23a60e0693669af2ddb82655eff8) ) - ROM_LOAD( "mk3-u116.bin", 0x1100000, 0x080000, CRC(ba246ad0) SHA1(ec6bdd4b9cd3007bb66bb8de36d148abb30e7f11) ) - ROM_LOAD( "mk3-u115.bin", 0x1200000, 0x080000, CRC(3ee8b124) SHA1(1523d51e36d3c336b134a562da36a29ba137c0f6) ) - ROM_LOAD( "mk3-u114.bin", 0x1300000, 0x080000, CRC(a8d99922) SHA1(04ff8d85448701070672f44dbf5bcfd744f1bc8a) ) -ROM_END - - -ROM_START( mk3r10 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mk310u54.bin", 0x00000, 0x80000, CRC(41829228) SHA1(5686b50a08b528d41b28ef578cfb171da9905c45) ) - ROM_LOAD16_BYTE( "mk310u63.bin", 0x00001, 0x80000, CRC(b074e1e8) SHA1(fe1a6f622614b1ebd8edc3edeec442d39ba2924c) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "mk3-u121.bin", 0x0c00000, 0x100000, CRC(b6c6296a) SHA1(7b92a92d65493bb201daf5ece6f00140f017ac51) ) - ROM_LOAD( "mk3-u120.bin", 0x0d00000, 0x100000, CRC(8d1ccc3b) SHA1(35d91c00113718a08a9d56eb04366f8cf4069ba6) ) - ROM_LOAD( "mk3-u119.bin", 0x0e00000, 0x100000, CRC(63215b59) SHA1(709bce15fba1520bcba40f0a5cb614542f1b460f) ) - ROM_LOAD( "mk3-u118.bin", 0x0f00000, 0x100000, CRC(8b681e34) SHA1(524104ba2eb2deb3cfae9760e6b2125ce6b6633e) ) - - ROM_LOAD( "mk3-u117.bin", 0x1000000, 0x080000, CRC(1ab20377) SHA1(0c0d14464d8b23a60e0693669af2ddb82655eff8) ) - ROM_LOAD( "mk3-u116.bin", 0x1100000, 0x080000, CRC(ba246ad0) SHA1(ec6bdd4b9cd3007bb66bb8de36d148abb30e7f11) ) - ROM_LOAD( "mk3-u115.bin", 0x1200000, 0x080000, CRC(3ee8b124) SHA1(1523d51e36d3c336b134a562da36a29ba137c0f6) ) - ROM_LOAD( "mk3-u114.bin", 0x1300000, 0x080000, CRC(a8d99922) SHA1(04ff8d85448701070672f44dbf5bcfd744f1bc8a) ) -ROM_END - - -ROM_START( umk3 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "um312u54.bin", 0x00000, 0x80000, CRC(712b4db6) SHA1(7015a55f3d745c6aeb8630903e2d5cd9554b2766) ) - ROM_LOAD16_BYTE( "um312u63.bin", 0x00001, 0x80000, CRC(6d301faf) SHA1(18a8e29cc3e8ce5cc0e10f8386d43e7f44fd7b75) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) - ROM_LOAD( "umk-u120.bin", 0x0d00000, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) - ROM_LOAD( "umk-u119.bin", 0x0e00000, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) - ROM_LOAD( "umk-u118.bin", 0x0f00000, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - - ROM_LOAD( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) - ROM_LOAD( "umk-u112.bin", 0x1500000, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) - ROM_LOAD( "umk-u111.bin", 0x1600000, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) - ROM_LOAD( "umk-u110.bin", 0x1700000, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) -ROM_END - - -ROM_START( umk3r11 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "um311u54.bin", 0x00000, 0x80000, CRC(8bb27659) SHA1(a3ffe3d8f21c261b36c7510d620d691a8bbf665b) ) - ROM_LOAD16_BYTE( "um311u63.bin", 0x00001, 0x80000, CRC(ea731783) SHA1(2915626090650c4b5adf5b26e736c3ec91ce81a6) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) - ROM_LOAD( "umk-u120.bin", 0x0d00000, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) - ROM_LOAD( "umk-u119.bin", 0x0e00000, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) - ROM_LOAD( "umk-u118.bin", 0x0f00000, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - - ROM_LOAD( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) - ROM_LOAD( "umk-u112.bin", 0x1500000, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) - ROM_LOAD( "umk-u111.bin", 0x1600000, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) - ROM_LOAD( "umk-u110.bin", 0x1700000, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) -ROM_END - - -ROM_START( umk3r10 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "umk3-u2.bin", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) - ROM_LOAD16_BYTE( "umk3-u3.bin", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) - ROM_LOAD16_BYTE( "umk3-u4.bin", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) - ROM_LOAD16_BYTE( "umk3-u5.bin", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "um310u54.bin", 0x00000, 0x80000, CRC(dfd735da) SHA1(bcb6d80dbde407d0042ec2f225b2f98740a79203) ) - ROM_LOAD16_BYTE( "um310u63.bin", 0x00001, 0x80000, CRC(2dff0c83) SHA1(8942ffa3addf134085ea8d77d56e82593312e7a5) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "umk-u133.bin", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) - ROM_LOAD( "umk-u132.bin", 0x0100000, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) - ROM_LOAD( "umk-u131.bin", 0x0200000, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) - ROM_LOAD( "umk-u130.bin", 0x0300000, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) - - ROM_LOAD( "umk-u129.bin", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) ) - ROM_LOAD( "umk-u128.bin", 0x0500000, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) ) - ROM_LOAD( "umk-u127.bin", 0x0600000, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) ) - ROM_LOAD( "umk-u126.bin", 0x0700000, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) ) - - ROM_LOAD( "umk-u125.bin", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) ) - ROM_LOAD( "umk-u124.bin", 0x0900000, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) ) - ROM_LOAD( "umk-u123.bin", 0x0a00000, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) - ROM_LOAD( "umk-u122.bin", 0x0b00000, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - - ROM_LOAD( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) - ROM_LOAD( "umk-u120.bin", 0x0d00000, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) - ROM_LOAD( "umk-u119.bin", 0x0e00000, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) - ROM_LOAD( "umk-u118.bin", 0x0f00000, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - - ROM_LOAD( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) - ROM_LOAD( "umk-u112.bin", 0x1500000, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) - ROM_LOAD( "umk-u111.bin", 0x1600000, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) ) - ROM_LOAD( "umk-u110.bin", 0x1700000, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) ) -ROM_END - - -ROM_START( openice ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "oiceu2.bin", 0x000000, 0x100000, CRC(8adb5aab) SHA1(4c25bc051c90947f3366f83ac5ca8dc78e26b8a4) ) - ROM_LOAD16_BYTE( "oiceu3.bin", 0x200000, 0x100000, CRC(11c61ad6) SHA1(324621d6b486399b6d5ede1fed39d4e448cdeb32) ) - ROM_LOAD16_BYTE( "oiceu4.bin", 0x400000, 0x100000, CRC(04279290) SHA1(daf1e57137ae1c3434194054e69809bfe3ed1fc3) ) - ROM_LOAD16_BYTE( "oiceu5.bin", 0x600000, 0x100000, CRC(e90ad61f) SHA1(59eeabcae7e0e70cdb4472cde64b8a28b07ede98) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "oiceu54.bin", 0x00000, 0x80000, CRC(e4225284) SHA1(d5e267cf35826c106bb0a800363849ed4d489e56) ) - ROM_LOAD16_BYTE( "oiceu63.bin", 0x00001, 0x80000, CRC(97d308a3) SHA1(0a517fab77bc2277884587c7e29e392bb360d27b) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "oiceu133.bin", 0x0000000, 0x100000, CRC(8a81605c) SHA1(cf397b8da242566b21579b90528857ccd2f93141) ) - ROM_LOAD( "oiceu132.bin", 0x0100000, 0x100000, CRC(cfdd6702) SHA1(0198d2cc2de93a8aa345ba0af8d92713d798be8a) ) - ROM_LOAD( "oiceu131.bin", 0x0200000, 0x100000, CRC(cc428eb7) SHA1(ff2403077453f24bd1b176f57b17649b1b64bccf) ) - ROM_LOAD( "oiceu130.bin", 0x0300000, 0x100000, CRC(74c2d50c) SHA1(7880a28b003aa44878384efcb72b98833383f67e) ) - - ROM_LOAD( "oiceu129.bin", 0x0400000, 0x100000, CRC(9e2ff012) SHA1(35160ab239f0d8efcb2dc67dee4bd8d204226e3d) ) - ROM_LOAD( "oiceu128.bin", 0x0500000, 0x100000, CRC(35d2e610) SHA1(c4bd18f44592299f120344ecaf1464a8b31d80c8) ) - ROM_LOAD( "oiceu127.bin", 0x0600000, 0x100000, CRC(bcbf19fe) SHA1(e28f0238ef020b75b10318e5c3dd4c5472b3638a) ) - ROM_LOAD( "oiceu126.bin", 0x0700000, 0x100000, CRC(8e3106ae) SHA1(58d1fd097e23578195d28671f22cfa3ed161c0f5) ) - - ROM_LOAD( "oiceu125.bin", 0x0800000, 0x100000, CRC(a7b54550) SHA1(83e3627c4e84466ec10023b0e2259ad86b791fd7) ) - ROM_LOAD( "oiceu124.bin", 0x0900000, 0x100000, CRC(7c02cb50) SHA1(92d24bcfd66396c52c823b816118eed39c4ef9cd) ) - ROM_LOAD( "oiceu123.bin", 0x0a00000, 0x100000, CRC(d543bd9d) SHA1(a9ff8589fe185ea058b549c2ed4e71f6c50e9638) ) - ROM_LOAD( "oiceu122.bin", 0x0b00000, 0x100000, CRC(3744d291) SHA1(e4484f377a66c4c64b015ef461419d956b6e23e4) ) - - ROM_LOAD( "oiceu121.bin", 0x0c00000, 0x100000, CRC(acd2f7c7) SHA1(82d6f09e63a825b118c36d668427011cd8892eaa) ) - ROM_LOAD( "oiceu120.bin", 0x0d00000, 0x100000, CRC(4295686a) SHA1(2522e57335bb8cca6d76942d2fd62560f88e37a6) ) - ROM_LOAD( "oiceu119.bin", 0x0e00000, 0x100000, CRC(948b9b27) SHA1(62d031410f491d557e27ba055d3db9d36d5a153c) ) - ROM_LOAD( "oiceu118.bin", 0x0f00000, 0x100000, CRC(9eaaf93e) SHA1(56bd881df5282f659ac68ace960a3b085c13dd9d) ) -ROM_END - - -ROM_START( nbahangt ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "mhtu2.bin", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) - ROM_LOAD16_BYTE( "mhtu3.bin", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) - ROM_LOAD16_BYTE( "mhtu4.bin", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) - ROM_LOAD16_BYTE( "mhtu5.bin", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "htime54.bin", 0x00000, 0x80000, CRC(c2875d98) SHA1(3f88f6f5c15ae03bedda39f71a1deaf549a55516) ) - ROM_LOAD16_BYTE( "htime63.bin", 0x00001, 0x80000, CRC(6f4728c3) SHA1(c059f4aa72cc5c3edc41e72428b3ebba97cc9417) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "mhtu133.bin", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) - ROM_LOAD( "mhtu132.bin", 0x0100000, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) - ROM_LOAD( "mhtu131.bin", 0x0200000, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) - ROM_LOAD( "mhtu130.bin", 0x0300000, 0x100000, CRC(c7c0c514) SHA1(49788ff885996d9c5909c0ecebe06b6abd4298ed) ) - - ROM_LOAD( "mhtu129.bin", 0x0400000, 0x100000, CRC(b3d0daa0) SHA1(302208c30f2b0c4aead8cf9201ae4c9501f7f952) ) - ROM_LOAD( "mhtu128.bin", 0x0500000, 0x100000, CRC(3704ee69) SHA1(e57846e96380af480fd6851c5359f88d432ac7cc) ) - ROM_LOAD( "mhtu127.bin", 0x0600000, 0x100000, CRC(4ea64d5a) SHA1(e7054c3946898ab0c5b4c27244c2eb6b24eaced7) ) - ROM_LOAD( "mhtu126.bin", 0x0700000, 0x100000, CRC(0c5c19b7) SHA1(802a05f53fcc2827960a63ef5c32a884fc96aaee) ) - - ROM_LOAD( "mhtu125.bin", 0x0800000, 0x100000, CRC(46c43d67) SHA1(13a4d924fed51c2db7f750436b0b7c6ef03d36a5) ) - ROM_LOAD( "mhtu124.bin", 0x0900000, 0x100000, CRC(ed495156) SHA1(40f67fb2ccdd185b444f1127b1ec2fa4b493d7d6) ) - ROM_LOAD( "mhtu123.bin", 0x0a00000, 0x100000, CRC(b48aa5da) SHA1(d8ee259a63dd7d997f2b99b73d0f11a277ba961d) ) - ROM_LOAD( "mhtu122.bin", 0x0b00000, 0x100000, CRC(b18cd181) SHA1(d86eb5c81b10ba112ed989ab581683ccb669c3b5) ) - - ROM_LOAD( "mhtu121.bin", 0x0c00000, 0x100000, CRC(5acb267a) SHA1(9c7e55991f795f0deae5f5cada3d5f49b7da578e) ) - ROM_LOAD( "mhtu120.bin", 0x0d00000, 0x100000, CRC(28e05f86) SHA1(ab642e7525b8fe55aab79597fcf84c4a8265463f) ) - ROM_LOAD( "mhtu119.bin", 0x0e00000, 0x100000, CRC(b4f604ea) SHA1(3997acfc856eead321e98584f7cb21953c95951a) ) - ROM_LOAD( "mhtu118.bin", 0x0f00000, 0x100000, CRC(a257b973) SHA1(31b4e3cf4e93be673d9b32dc85d7be0edcf6234c) ) - - ROM_LOAD( "mhtu113.bin", 0x1400000, 0x100000, CRC(d712a779) SHA1(ca0e25fbb570c28c9ac6674f35050152a9072a5b) ) - ROM_LOAD( "mhtu112.bin", 0x1500000, 0x100000, CRC(644e1bca) SHA1(447cc3b0a16aaff39b6cd095f1c255a91f235f7f) ) - ROM_LOAD( "mhtu111.bin", 0x1600000, 0x100000, CRC(10d3b768) SHA1(e22fcb02a17c78f963ee5d35a38a9ab14f3de450) ) - ROM_LOAD( "mhtu110.bin", 0x1700000, 0x100000, CRC(8575aeb2) SHA1(883acfc45416ab6e1ab77fc897638f89286bea7e) ) -ROM_END - - -ROM_START( nbamht ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "mhtu2.bin", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) - ROM_LOAD16_BYTE( "mhtu3.bin", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) - ROM_LOAD16_BYTE( "mhtu4.bin", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) - ROM_LOAD16_BYTE( "mhtu5.bin", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mhtu54_v103.bin", 0x00000, 0x80000, CRC(21b0d9e1) SHA1(34fa928bdb222fba1fec2a9f37b853f77922250f) ) - ROM_LOAD16_BYTE( "mhtu63_v103.bin", 0x00001, 0x80000, CRC(c6fdbb97) SHA1(e6cf0c6a94441befdde40b620a182877c11582a5) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "mhtu133.bin", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) - ROM_LOAD( "mhtu132.bin", 0x0100000, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) - ROM_LOAD( "mhtu131.bin", 0x0200000, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) - ROM_LOAD( "mhtu130.bin", 0x0300000, 0x100000, CRC(c7c0c514) SHA1(49788ff885996d9c5909c0ecebe06b6abd4298ed) ) - - ROM_LOAD( "mhtu129.bin", 0x0400000, 0x100000, CRC(b3d0daa0) SHA1(302208c30f2b0c4aead8cf9201ae4c9501f7f952) ) - ROM_LOAD( "mhtu128.bin", 0x0500000, 0x100000, CRC(3704ee69) SHA1(e57846e96380af480fd6851c5359f88d432ac7cc) ) - ROM_LOAD( "mhtu127.bin", 0x0600000, 0x100000, CRC(4ea64d5a) SHA1(e7054c3946898ab0c5b4c27244c2eb6b24eaced7) ) - ROM_LOAD( "mhtu126.bin", 0x0700000, 0x100000, CRC(0c5c19b7) SHA1(802a05f53fcc2827960a63ef5c32a884fc96aaee) ) - - ROM_LOAD( "mhtu125.bin", 0x0800000, 0x100000, CRC(46c43d67) SHA1(13a4d924fed51c2db7f750436b0b7c6ef03d36a5) ) - ROM_LOAD( "mhtu124.bin", 0x0900000, 0x100000, CRC(ed495156) SHA1(40f67fb2ccdd185b444f1127b1ec2fa4b493d7d6) ) - ROM_LOAD( "mhtu123.bin", 0x0a00000, 0x100000, CRC(b48aa5da) SHA1(d8ee259a63dd7d997f2b99b73d0f11a277ba961d) ) - ROM_LOAD( "mhtu122.bin", 0x0b00000, 0x100000, CRC(b18cd181) SHA1(d86eb5c81b10ba112ed989ab581683ccb669c3b5) ) - - ROM_LOAD( "mhtu121.bin", 0x0c00000, 0x100000, CRC(5acb267a) SHA1(9c7e55991f795f0deae5f5cada3d5f49b7da578e) ) - ROM_LOAD( "mhtu120.bin", 0x0d00000, 0x100000, CRC(28e05f86) SHA1(ab642e7525b8fe55aab79597fcf84c4a8265463f) ) - ROM_LOAD( "mhtu119.bin", 0x0e00000, 0x100000, CRC(b4f604ea) SHA1(3997acfc856eead321e98584f7cb21953c95951a) ) - ROM_LOAD( "mhtu118.bin", 0x0f00000, 0x100000, CRC(a257b973) SHA1(31b4e3cf4e93be673d9b32dc85d7be0edcf6234c) ) - - ROM_LOAD( "mhtu113.bin", 0x1400000, 0x100000, CRC(d712a779) SHA1(ca0e25fbb570c28c9ac6674f35050152a9072a5b) ) - ROM_LOAD( "mhtu112.bin", 0x1500000, 0x100000, CRC(644e1bca) SHA1(447cc3b0a16aaff39b6cd095f1c255a91f235f7f) ) - ROM_LOAD( "mhtu111.bin", 0x1600000, 0x100000, CRC(10d3b768) SHA1(e22fcb02a17c78f963ee5d35a38a9ab14f3de450) ) - ROM_LOAD( "mhtu110.bin", 0x1700000, 0x100000, CRC(8575aeb2) SHA1(883acfc45416ab6e1ab77fc897638f89286bea7e) ) -ROM_END - -ROM_START( nbamht1 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "mhtu2.bin", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) - ROM_LOAD16_BYTE( "mhtu3.bin", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) - ROM_LOAD16_BYTE( "mhtu4.bin", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) - ROM_LOAD16_BYTE( "mhtu5.bin", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mhtu54_v10.bin", 0x00000, 0x80000, CRC(dfb6b3ae) SHA1(1dc59a2d89bf9764a47cebf71b9657c6ae7ce959) ) - ROM_LOAD16_BYTE( "mhtu63_v10.bin", 0x00001, 0x80000, CRC(78da472c) SHA1(b4573ff19dc0d8a99f1bceace872e4999d53317a) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "mhtu133.bin", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) - ROM_LOAD( "mhtu132.bin", 0x0100000, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) - ROM_LOAD( "mhtu131.bin", 0x0200000, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) - ROM_LOAD( "mhtu130.bin", 0x0300000, 0x100000, CRC(c7c0c514) SHA1(49788ff885996d9c5909c0ecebe06b6abd4298ed) ) - - ROM_LOAD( "mhtu129.bin", 0x0400000, 0x100000, CRC(b3d0daa0) SHA1(302208c30f2b0c4aead8cf9201ae4c9501f7f952) ) - ROM_LOAD( "mhtu128.bin", 0x0500000, 0x100000, CRC(3704ee69) SHA1(e57846e96380af480fd6851c5359f88d432ac7cc) ) - ROM_LOAD( "mhtu127.bin", 0x0600000, 0x100000, CRC(4ea64d5a) SHA1(e7054c3946898ab0c5b4c27244c2eb6b24eaced7) ) - ROM_LOAD( "mhtu126.bin", 0x0700000, 0x100000, CRC(0c5c19b7) SHA1(802a05f53fcc2827960a63ef5c32a884fc96aaee) ) - - ROM_LOAD( "mhtu125.bin", 0x0800000, 0x100000, CRC(46c43d67) SHA1(13a4d924fed51c2db7f750436b0b7c6ef03d36a5) ) - ROM_LOAD( "mhtu124.bin", 0x0900000, 0x100000, CRC(ed495156) SHA1(40f67fb2ccdd185b444f1127b1ec2fa4b493d7d6) ) - ROM_LOAD( "mhtu123.bin", 0x0a00000, 0x100000, CRC(b48aa5da) SHA1(d8ee259a63dd7d997f2b99b73d0f11a277ba961d) ) - ROM_LOAD( "mhtu122.bin", 0x0b00000, 0x100000, CRC(b18cd181) SHA1(d86eb5c81b10ba112ed989ab581683ccb669c3b5) ) - - ROM_LOAD( "mhtu121.bin", 0x0c00000, 0x100000, CRC(5acb267a) SHA1(9c7e55991f795f0deae5f5cada3d5f49b7da578e) ) - ROM_LOAD( "mhtu120.bin", 0x0d00000, 0x100000, CRC(28e05f86) SHA1(ab642e7525b8fe55aab79597fcf84c4a8265463f) ) - ROM_LOAD( "mhtu119.bin", 0x0e00000, 0x100000, CRC(b4f604ea) SHA1(3997acfc856eead321e98584f7cb21953c95951a) ) - ROM_LOAD( "mhtu118.bin", 0x0f00000, 0x100000, CRC(a257b973) SHA1(31b4e3cf4e93be673d9b32dc85d7be0edcf6234c) ) - - ROM_LOAD( "mhtu113.bin", 0x1400000, 0x100000, CRC(d712a779) SHA1(ca0e25fbb570c28c9ac6674f35050152a9072a5b) ) - ROM_LOAD( "mhtu112.bin", 0x1500000, 0x100000, CRC(644e1bca) SHA1(447cc3b0a16aaff39b6cd095f1c255a91f235f7f) ) - ROM_LOAD( "mhtu111.bin", 0x1600000, 0x100000, CRC(10d3b768) SHA1(e22fcb02a17c78f963ee5d35a38a9ab14f3de450) ) - ROM_LOAD( "mhtu110.bin", 0x1700000, 0x100000, CRC(8575aeb2) SHA1(883acfc45416ab6e1ab77fc897638f89286bea7e) ) -ROM_END - - -ROM_START( rmpgwt ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "rwt.2", 0x000000, 0x100000, CRC(0e82f83d) SHA1(215eebb6c229ef9ad0fcbcbc6e4e07300c05654f) ) - ROM_LOAD16_BYTE( "rwt.3", 0x200000, 0x100000, CRC(3ff54d15) SHA1(827805602091313ec68ea1bccf667bd3b3fc6b8b) ) - ROM_LOAD16_BYTE( "rwt.4", 0x400000, 0x100000, CRC(5c7f5656) SHA1(6c9d692bad539fec8b5aa0bfb56de3ef3719c68a) ) - ROM_LOAD16_BYTE( "rwt.5", 0x600000, 0x100000, CRC(fd9aaf24) SHA1(d60dc076e72618c99ecac9d081d8c49d337b90c7) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "rwtr13.54", 0x00000, 0x80000, CRC(2a8f6e1e) SHA1(7a87ad37fa1d1228c4cdd4704ff0aee42e9c86cb) ) - ROM_LOAD16_BYTE( "rwtr13.63", 0x00001, 0x80000, CRC(403ae41e) SHA1(c08d9352efe63849f5d10c1bd1efe2b9dd7382e0) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "rwt.133", 0x0000000, 0x100000, CRC(5b5ac449) SHA1(1c01dde9a9dbd9f4a6cd30aea9f6410cab13c2c9) ) - ROM_LOAD( "rwt.132", 0x0100000, 0x100000, CRC(7b3f09c6) SHA1(477658481ee96d5ce462d5e198d80faff4d4352c) ) - ROM_LOAD( "rwt.131", 0x0200000, 0x100000, CRC(fdecf12e) SHA1(bcbd29009dabed484e2357dc75c38c7d7bade251) ) - ROM_LOAD( "rwt.130", 0x0300000, 0x100000, CRC(4a983b05) SHA1(022753e6fa3b3d74eff5b2ec835b07787f5473ab) ) - - ROM_LOAD( "rwt.129", 0x0400000, 0x100000, CRC(dc495c6e) SHA1(7ec80d293f06a013c4f95bfb3fafe5b4a71cf170) ) - ROM_LOAD( "rwt.128", 0x0500000, 0x100000, CRC(5545503d) SHA1(75298ca742339d70f86460645a6145070737a883) ) - ROM_LOAD( "rwt.127", 0x0600000, 0x100000, CRC(6e1756ba) SHA1(6e88ee4f239d41430cdcacfbfe9dfe9e75c5e4ed) ) - ROM_LOAD( "rwt.126", 0x0700000, 0x100000, CRC(c300eb1b) SHA1(e2fffa31c773737d5f5f3f053f9afee4690fcd3d) ) - - ROM_LOAD( "rwt.125", 0x0800000, 0x100000, CRC(7369bf5d) SHA1(edd84d4119d63263bc65adf953370a6e36c797d3) ) - ROM_LOAD( "rwt.124", 0x0900000, 0x100000, CRC(c0bf88c8) SHA1(5ea348bcd208c1c1f5f5943f1e1ef81d25d2b95d) ) - ROM_LOAD( "rwt.123", 0x0a00000, 0x100000, CRC(ac4c712a) SHA1(ccf40d004ddf1b62870b99da359b00d9fd702944) ) - ROM_LOAD( "rwt.122", 0x0b00000, 0x100000, CRC(609862a2) SHA1(366c70d5de9135c28934ed6ccf4f373c5a76c748) ) - - ROM_LOAD( "rwt.121", 0x0c00000, 0x100000, CRC(f65119b7) SHA1(4c3110f3be370cad0b031a7aa8605559bdd14842) ) - ROM_LOAD( "rwt.120", 0x0d00000, 0x100000, CRC(6d643dee) SHA1(923ad01a0eb5a26d2a913f09fde254605113c868) ) - ROM_LOAD( "rwt.119", 0x0e00000, 0x100000, CRC(4e49c133) SHA1(0f83b0d645286f6c6196bcf316ac010378b96c43) ) - ROM_LOAD( "rwt.118", 0x0f00000, 0x100000, CRC(43a6f51e) SHA1(cb9d698a6a2ab9134339264e851b57e599db135c) ) -ROM_END - - -ROM_START( rmpgwt11 ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "rwt.2", 0x000000, 0x100000, CRC(0e82f83d) SHA1(215eebb6c229ef9ad0fcbcbc6e4e07300c05654f) ) - ROM_LOAD16_BYTE( "rwt.3", 0x200000, 0x100000, CRC(3ff54d15) SHA1(827805602091313ec68ea1bccf667bd3b3fc6b8b) ) - ROM_LOAD16_BYTE( "rwt.4", 0x400000, 0x100000, CRC(5c7f5656) SHA1(6c9d692bad539fec8b5aa0bfb56de3ef3719c68a) ) - ROM_LOAD16_BYTE( "rwt.5", 0x600000, 0x100000, CRC(fd9aaf24) SHA1(d60dc076e72618c99ecac9d081d8c49d337b90c7) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "rwtr11.54", 0x00000, 0x80000, CRC(3aa514eb) SHA1(4ed8db55f257da6d872586d0f9f0cdf1c30e0d22) ) - ROM_LOAD16_BYTE( "rwtr11.63", 0x00001, 0x80000, CRC(031c908f) SHA1(531669b13c33921ff199be1e841dd337c86fec50) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "rwt.133", 0x0000000, 0x100000, CRC(5b5ac449) SHA1(1c01dde9a9dbd9f4a6cd30aea9f6410cab13c2c9) ) - ROM_LOAD( "rwt.132", 0x0100000, 0x100000, CRC(7b3f09c6) SHA1(477658481ee96d5ce462d5e198d80faff4d4352c) ) - ROM_LOAD( "rwt.131", 0x0200000, 0x100000, CRC(fdecf12e) SHA1(bcbd29009dabed484e2357dc75c38c7d7bade251) ) - ROM_LOAD( "rwt.130", 0x0300000, 0x100000, CRC(4a983b05) SHA1(022753e6fa3b3d74eff5b2ec835b07787f5473ab) ) - - ROM_LOAD( "rwt.129", 0x0400000, 0x100000, CRC(dc495c6e) SHA1(7ec80d293f06a013c4f95bfb3fafe5b4a71cf170) ) - ROM_LOAD( "rwt.128", 0x0500000, 0x100000, CRC(5545503d) SHA1(75298ca742339d70f86460645a6145070737a883) ) - ROM_LOAD( "rwt.127", 0x0600000, 0x100000, CRC(6e1756ba) SHA1(6e88ee4f239d41430cdcacfbfe9dfe9e75c5e4ed) ) - ROM_LOAD( "rwt.126", 0x0700000, 0x100000, CRC(c300eb1b) SHA1(e2fffa31c773737d5f5f3f053f9afee4690fcd3d) ) - - ROM_LOAD( "rwt.125", 0x0800000, 0x100000, CRC(7369bf5d) SHA1(edd84d4119d63263bc65adf953370a6e36c797d3) ) - ROM_LOAD( "rwt.124", 0x0900000, 0x100000, CRC(c0bf88c8) SHA1(5ea348bcd208c1c1f5f5943f1e1ef81d25d2b95d) ) - ROM_LOAD( "rwt.123", 0x0a00000, 0x100000, CRC(ac4c712a) SHA1(ccf40d004ddf1b62870b99da359b00d9fd702944) ) - ROM_LOAD( "rwt.122", 0x0b00000, 0x100000, CRC(609862a2) SHA1(366c70d5de9135c28934ed6ccf4f373c5a76c748) ) - - ROM_LOAD( "rwt.121", 0x0c00000, 0x100000, CRC(f65119b7) SHA1(4c3110f3be370cad0b031a7aa8605559bdd14842) ) - ROM_LOAD( "rwt.120", 0x0d00000, 0x100000, CRC(6d643dee) SHA1(923ad01a0eb5a26d2a913f09fde254605113c868) ) - ROM_LOAD( "rwt.119", 0x0e00000, 0x100000, CRC(4e49c133) SHA1(0f83b0d645286f6c6196bcf316ac010378b96c43) ) - ROM_LOAD( "rwt.118", 0x0f00000, 0x100000, CRC(43a6f51e) SHA1(cb9d698a6a2ab9134339264e851b57e599db135c) ) -ROM_END - - -ROM_START( wwfmania ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf.2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) - ROM_LOAD16_BYTE( "wwf.3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) - ROM_LOAD16_BYTE( "wwf.4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) - ROM_LOAD16_BYTE( "wwf.5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "wwf.54", 0x00000, 0x80000, CRC(eeb7bf58) SHA1(d93df59aed1672ab38af231d909d9df1a8e30f44) ) - ROM_LOAD16_BYTE( "wwf.63", 0x00001, 0x80000, CRC(09759529) SHA1(cf548ff199428a93b9bc5f4fc1347c4a3cbdf106) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "wwf.133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) - ROM_LOAD( "wwf.132", 0x0100000, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) - ROM_LOAD( "wwf.131", 0x0200000, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) - ROM_LOAD( "wwf.130", 0x0300000, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) - - ROM_LOAD( "wwf.129", 0x0400000, 0x100000, CRC(c644c2f4) SHA1(9094452eb37ec92932109ab2b209e12074111dd7) ) - ROM_LOAD( "wwf.128", 0x0500000, 0x100000, CRC(fcda4e9a) SHA1(a05a12f606632034eae662cccfee5aaaffe0348b) ) - ROM_LOAD( "wwf.127", 0x0600000, 0x100000, CRC(45be7428) SHA1(a5d3e37c64cac03139028fe998494b76e6b6a7ae) ) - ROM_LOAD( "wwf.126", 0x0700000, 0x100000, CRC(eaa276a8) SHA1(d0c2f4d4409830355c6e112e3eafb4d3a1b8c22e) ) - - ROM_LOAD( "wwf.125", 0x0800000, 0x100000, CRC(a19ebeed) SHA1(cf51bca29fd39c6189c2b431eb718a6341781d1f) ) - ROM_LOAD( "wwf.124", 0x0900000, 0x100000, CRC(dc7d3dbb) SHA1(8982d9a1babce57ae7465bce3f4863dd336c20ac) ) - ROM_LOAD( "wwf.123", 0x0a00000, 0x100000, CRC(e0ade56f) SHA1(a15c672a45f39c0232d678e71380d4f58c4659ae) ) - ROM_LOAD( "wwf.122", 0x0b00000, 0x100000, CRC(2800c78d) SHA1(8012785f1c1eaf8d533a98e0a521a5d31efc7a42) ) - - ROM_LOAD( "wwf.121", 0x0c00000, 0x100000, CRC(a28ffcba) SHA1(f66be0793b12a7f04e32d3db8311d1f33b0c3fbe) ) - ROM_LOAD( "wwf.120", 0x0d00000, 0x100000, CRC(3a05d371) SHA1(4ed73e1c06ea7bd33e6c72a6a752960ba55d1975) ) - ROM_LOAD( "wwf.119", 0x0e00000, 0x100000, CRC(97ffa659) SHA1(986f8ec57085b808d33c85ed55b35a5e1cadf3b6) ) - ROM_LOAD( "wwf.118", 0x0f00000, 0x100000, CRC(46668e97) SHA1(282ca2e561f7553717d60b5a745f8e3fc1bda610) ) -ROM_END - - -ROM_START( wwfmanib ) - ROM_REGION16_LE( 0x800000, REGION_SOUND1, ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf.2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) - ROM_LOAD16_BYTE( "wwf.3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) - ROM_LOAD16_BYTE( "wwf.4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) - ROM_LOAD16_BYTE( "wwf.5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u54.bin", 0x00000, 0x80000, CRC(1b2dce48) SHA1(f70b6c5b56f9fc15cedfd8e0a95f983f3ea6dbb7) ) - ROM_LOAD16_BYTE( "u63.bin", 0x00001, 0x80000, CRC(1262f0bb) SHA1(e97a5939f10532f7815d08b1a7d63a7554d47d4f) ) - - ROM_REGION( 0x2000000, REGION_GFX1, 0 ) - ROM_LOAD( "wwf.133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) - ROM_LOAD( "wwf.132", 0x0100000, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) - ROM_LOAD( "wwf.131", 0x0200000, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) - ROM_LOAD( "wwf.130", 0x0300000, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) - - ROM_LOAD( "wwf.129", 0x0400000, 0x100000, CRC(c644c2f4) SHA1(9094452eb37ec92932109ab2b209e12074111dd7) ) - ROM_LOAD( "wwf.128", 0x0500000, 0x100000, CRC(fcda4e9a) SHA1(a05a12f606632034eae662cccfee5aaaffe0348b) ) - ROM_LOAD( "wwf.127", 0x0600000, 0x100000, CRC(45be7428) SHA1(a5d3e37c64cac03139028fe998494b76e6b6a7ae) ) - ROM_LOAD( "wwf.126", 0x0700000, 0x100000, CRC(eaa276a8) SHA1(d0c2f4d4409830355c6e112e3eafb4d3a1b8c22e) ) - - ROM_LOAD( "wwf.125", 0x0800000, 0x100000, CRC(a19ebeed) SHA1(cf51bca29fd39c6189c2b431eb718a6341781d1f) ) - ROM_LOAD( "wwf.124", 0x0900000, 0x100000, CRC(dc7d3dbb) SHA1(8982d9a1babce57ae7465bce3f4863dd336c20ac) ) - ROM_LOAD( "wwf.123", 0x0a00000, 0x100000, CRC(e0ade56f) SHA1(a15c672a45f39c0232d678e71380d4f58c4659ae) ) - ROM_LOAD( "wwf.122", 0x0b00000, 0x100000, CRC(2800c78d) SHA1(8012785f1c1eaf8d533a98e0a521a5d31efc7a42) ) - - ROM_LOAD( "wwf.121", 0x0c00000, 0x100000, CRC(a28ffcba) SHA1(f66be0793b12a7f04e32d3db8311d1f33b0c3fbe) ) - ROM_LOAD( "wwf.120", 0x0d00000, 0x100000, CRC(3a05d371) SHA1(4ed73e1c06ea7bd33e6c72a6a752960ba55d1975) ) - ROM_LOAD( "wwf.119", 0x0e00000, 0x100000, CRC(97ffa659) SHA1(986f8ec57085b808d33c85ed55b35a5e1cadf3b6) ) - ROM_LOAD( "wwf.118", 0x0f00000, 0x100000, CRC(46668e97) SHA1(282ca2e561f7553717d60b5a745f8e3fc1bda610) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1994, mk3, 0, wunit, mk3, mk3, ROT0, "Midway", "Mortal Kombat 3 (rev 2.1)", 0 ) -GAME( 1994, mk3r20, mk3, wunit, mk3, mk3r20, ROT0, "Midway", "Mortal Kombat 3 (rev 2.0)", 0 ) -GAME( 1994, mk3r10, mk3, wunit, mk3, mk3r10, ROT0, "Midway", "Mortal Kombat 3 (rev 1.0)", 0 ) -GAME( 1994, umk3, mk3, wunit, mk3, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2)", 0 ) -GAME( 1994, umk3r11, mk3, wunit, mk3, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.1)", 0 ) -GAME( 1994, umk3r10, mk3, wunit, mk3, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.0)", 0 ) - -GAME( 1995, wwfmania,0, wunit, wwfmania,wwfmania,ROT0, "Midway", "WWF: Wrestlemania (rev 1.30 08/10/95)", 0 ) -GAME( 1995, wwfmanib,wwfmania, wunit, wwfmania,wwfmania,ROT0, "Midway", "WWF: Wrestlemania (rev 1.20 08/02/95)", 0 ) -GAME( 1995, openice, 0, wunit, openice, openice, ROT0, "Midway", "2 On 2 Open Ice Challenge (rev 1.21)", 0 ) -GAME( 1996, nbahangt,0, wunit, nbahangt,nbahangt,ROT0, "Midway", "NBA Hangtime (rev L1.1 04/16/96)", 0 ) -GAME( 1996, nbamht, nbahangt, wunit, nbahangt,nbahangt,ROT0, "Midway", "NBA Maximum Hangtime (rev 1.03 06/09/97)", 0 ) -GAME( 1996, nbamht1, nbahangt, wunit, nbahangt,nbahangt,ROT0, "Midway", "NBA Maximum Hangtime (rev 1.0 11/08/96)", 0 ) -GAME( 1997, rmpgwt, 0, wunit, rmpgwt, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.3)", 0 ) -GAME( 1997, rmpgwt11,rmpgwt, wunit, rmpgwt, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.1)", 0 ) diff --git a/src/drivers/midyunit.c b/src/drivers/midyunit.c deleted file mode 100644 index d0bd07200..000000000 --- a/src/drivers/midyunit.c +++ /dev/null @@ -1,2069 +0,0 @@ -/************************************************************************* - - Williams/Midway Y/Z-unit system - - driver by Alex Pasadyn, Zsolt Vasvari, Kurt Mahan, Ernesto Corvi, - and Aaron Giles - - Games supported: - * Narc - * Trog (prototype and release versions) - * Strike Force - * Smash TV - * Hi Impact Football - * Super Hi Impact - * Terminator 2 - * Mortal Kombat (Y-unit versions) - * Total Carnage - - Known bugs: - * Super Hi Impact freaks out during play - * when the Porsche spins in Narc, the wheels are missing for - a single frame (may be an original bug) - * Terminator 2 freezes while playing the movies after destroying - skynet. Currently we have a hack in which prevents the freeze, - but we really should eventually figure it out for real - -**************************************************************************/ - -#include "driver.h" -#include "cpu/tms34010/tms34010.h" -#include "sndhrdw/williams.h" -#include "sound/okim6295.h" -#include "midyunit.h" - - - -/************************************* - * - * Yawdim sound banking - * - *************************************/ - -static WRITE8_HANDLER( yawdim_oki_bank_w ) -{ - if (data & 4) - OKIM6295_set_bank_base(0, 0x40000 * (data & 3)); -} - - - -/************************************* - * - * CMOS read/write - * - *************************************/ - -static NVRAM_HANDLER( midyunit ) -{ - if (read_or_write) - mame_fwrite(file, midyunit_cmos_ram, 0x8000); - else if (file) - mame_fread(file, midyunit_cmos_ram, 0x8000); - else - memset(midyunit_cmos_ram, 0, 0x8000); -} - - - -/************************************* - * - * Memory maps - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000000, 0x001fffff) AM_READWRITE(midyunit_vram_r, midyunit_vram_w) - AM_RANGE(0x01000000, 0x010fffff) AM_RAM - AM_RANGE(0x01400000, 0x0140ffff) AM_READWRITE(midyunit_cmos_r, midyunit_cmos_w) - AM_RANGE(0x01800000, 0x0181ffff) AM_READWRITE(MRA16_RAM, midyunit_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0x01a80000, 0x01a8009f) AM_MIRROR(0x00080000) AM_READWRITE(midyunit_dma_r, midyunit_dma_w) - AM_RANGE(0x01c00000, 0x01c0005f) AM_READ(midyunit_input_r) - AM_RANGE(0x01c00060, 0x01c0007f) AM_READWRITE(midyunit_protection_r, midyunit_cmos_enable_w) - AM_RANGE(0x01e00000, 0x01e0001f) AM_WRITE(midyunit_sound_w) - AM_RANGE(0x01f00000, 0x01f0001f) AM_WRITE(midyunit_control_w) - AM_RANGE(0x02000000, 0x05ffffff) AM_READ(midyunit_gfxrom_r) AM_BASE((UINT16 **)&midyunit_gfx_rom) AM_SIZE(&midyunit_gfx_rom_size) - AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, midyunit_io_register_w) - AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( yawdim_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0x9000, 0x97ff) AM_WRITE(yawdim_oki_bank_w) - AM_RANGE(0x9800, 0x9fff) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w) - AM_RANGE(0xa000, 0xa7ff) AM_READ(soundlatch_r) -ADDRESS_MAP_END - - - -/************************************* - * - * Input ports - * - *************************************/ - -INPUT_PORTS_START( narc ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Advance") PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* Video Freeze */ - PORT_BIT(0x0040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Vault Switch") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) /* T/B strobe */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) /* memory protect interlock */ - PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Language ) ) /* Is this a REAL dip or toggle? or software enable? */ - PORT_DIPSETTING( 0xc000, DEF_STR( English ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( French ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unknown ) ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( trog ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x00e0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0xe000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x0038, "1" ) - PORT_DIPSETTING( 0x0018, "2" ) - PORT_DIPSETTING( 0x0028, "3" ) - PORT_DIPSETTING( 0x0008, "4" ) - PORT_DIPSETTING( 0x0030, "ECA" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0040, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x0040, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Cabinet )) - PORT_DIPSETTING( 0x0080, DEF_STR( Upright )) - PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x0100, 0x0100, "Test Switch" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, "Video Freeze" ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0c00, "4 Players" ) - PORT_DIPSETTING( 0x0400, "3 Players" ) - PORT_DIPSETTING( 0x0800, "2 Players" ) - PORT_DIPSETTING( 0x0000, "1 Player" ) - PORT_DIPNAME( 0x1000, 0x0000, "Coin Counters" ) - PORT_DIPSETTING( 0x1000, "One Counter" ) - PORT_DIPSETTING( 0x0000, "Two Counters" ) - PORT_DIPNAME( 0x2000, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x2000, DEF_STR( On )) - PORT_DIPNAME( 0xc000, 0xc000, "Country" ) - PORT_DIPSETTING( 0xc000, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( French ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( smashtv ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xf800, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "1-8" ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0002, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0004, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0008, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0010, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0020, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "2-8" ) /* Coinage? */ - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown )) /* Coinage? */ - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown )) /* Coinage? */ - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown )) /* Coinage? */ - PORT_DIPSETTING( 0x0800, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown )) /* Coinage? */ - PORT_DIPSETTING( 0x1000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown )) /* Coinage? */ - PORT_DIPSETTING( 0x2000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown )) /* Rotary Joystick enable? */ - PORT_DIPSETTING( 0x4000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Service_Mode )) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) -/* I cannot figure out how to enable dip coinage -Does the Rotary Joystick Dip do anything? */ - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( strkforc ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x0001, 0x0001, "Coin Meter" ) - PORT_DIPSETTING( 0x0001, "Shared" ) - PORT_DIPSETTING( 0x0000, "Independent" ) - PORT_DIPNAME( 0x0002, 0x0002, "Credits to Start" ) - PORT_DIPSETTING( 0x0002, "1" ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPNAME( 0x000c, 0x000c, "Points for Ship" ) - PORT_DIPSETTING( 0x0008, "40000" ) - PORT_DIPSETTING( 0x000c, "50000" ) - PORT_DIPSETTING( 0x0004, "75000" ) - PORT_DIPSETTING( 0x0000, "100000" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Lives )) - PORT_DIPSETTING( 0x0010, "3" ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Difficulty )) - PORT_DIPSETTING( 0x0080, "Level 1" ) - PORT_DIPSETTING( 0x00c0, "Level 2" ) - PORT_DIPSETTING( 0x00a0, "Level 3" ) - PORT_DIPSETTING( 0x00e0, "Level 4" ) - PORT_DIPSETTING( 0x0060, "Level 5" ) - PORT_DIPSETTING( 0x0040, "Level 6" ) - PORT_DIPSETTING( 0x0020, "Level 7" ) - PORT_DIPSETTING( 0x0000, "Level 8" ) - PORT_DIPNAME( 0x0700, 0x0700, "Coin 2" ) - PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C )) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C )) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_5C )) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_6C )) - PORT_DIPSETTING( 0x0100, "U.K. Elect." ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x7800, 0x7800, "Coin 1" ) - PORT_DIPSETTING( 0x3000, DEF_STR( 5C_1C )) - PORT_DIPSETTING( 0x3800, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x4000, DEF_STR( 3C_1C )) - PORT_DIPSETTING( 0x4800, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x7800, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x7000, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x6800, DEF_STR( 1C_3C )) - PORT_DIPSETTING( 0x6000, DEF_STR( 1C_4C )) - PORT_DIPSETTING( 0x5800, DEF_STR( 1C_5C )) - PORT_DIPSETTING( 0x5000, DEF_STR( 1C_6C )) - PORT_DIPSETTING( 0x2800, "1 Coin/1 Credit - 2 Coins/3 Credits" ) - PORT_DIPSETTING( 0x2000, "1 Coin/1 Credit - 3 Coins/4 Credits" ) - PORT_DIPSETTING( 0x1800, "1 Coin/1 Credit - 4 Coins/5 Credits" ) - PORT_DIPSETTING( 0x1000, "1 Coin/1 Credit - 5 Coins/6 Credits" ) - PORT_DIPSETTING( 0x0800, "3 Coin/1 Credit - 5 Coins/2 Credits" ) - PORT_DIPSETTING( 0x0000, "1 Coin/2 Credits - 2 Coins/5 Credits" ) - PORT_DIPNAME( 0x8000, 0x8000, "Test Switch" ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( mkla2 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - //There should be an additional block button for player 2, but I coudn't find it. - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0010, 0x0010, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0010, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Low Blows" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0020, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0040, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, "Violence" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0080, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Test Switch" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0200, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_DIPNAME( 0x7c00, 0x7c00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7c00, "USA-1" ) - PORT_DIPSETTING( 0x3c00, "USA-2" ) - PORT_DIPSETTING( 0x5c00, "USA-3" ) - PORT_DIPSETTING( 0x1c00, "USA-4" ) - PORT_DIPSETTING( 0x6c00, "USA-ECA" ) - PORT_DIPSETTING( 0x0c00, "USA-Free Play" ) - PORT_DIPSETTING( 0x7400, "German-1" ) - PORT_DIPSETTING( 0x3400, "German-2" ) - PORT_DIPSETTING( 0x5400, "German-3" ) - PORT_DIPSETTING( 0x1400, "German-4" ) - PORT_DIPSETTING( 0x6400, "German-5" ) - PORT_DIPSETTING( 0x2400, "German-ECA" ) - PORT_DIPSETTING( 0x0400, "German-Free Play" ) - PORT_DIPSETTING( 0x7800, "French-1" ) - PORT_DIPSETTING( 0x3800, "French-2" ) - PORT_DIPSETTING( 0x5800, "French-3" ) - PORT_DIPSETTING( 0x1800, "French-4" ) - PORT_DIPSETTING( 0x6800, "French-ECA" ) - PORT_DIPSETTING( 0x0800, "French-Free Play" ) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( mkla4 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - //There should be an additional block button for player 2, but I coudn't find it. - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x0007, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0008, 0x0008, "Comic Book Offer" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0008, DEF_STR( On )) - PORT_DIPNAME( 0x0010, 0x0010, "Attract Sound" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0010, DEF_STR( On )) - PORT_DIPNAME( 0x0020, 0x0020, "Low Blows" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0020, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Blood" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0040, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, "Violence" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0080, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Test Switch" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0000, "Counters" ) - PORT_DIPSETTING( 0x0200, "One" ) - PORT_DIPSETTING( 0x0000, "Two" ) - PORT_DIPNAME( 0x7c00, 0x7c00, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x7c00, "USA-1" ) - PORT_DIPSETTING( 0x3c00, "USA-2" ) - PORT_DIPSETTING( 0x5c00, "USA-3" ) - PORT_DIPSETTING( 0x1c00, "USA-4" ) - PORT_DIPSETTING( 0x6c00, "USA-ECA" ) - PORT_DIPSETTING( 0x0c00, "USA-Free Play" ) - PORT_DIPSETTING( 0x7400, "German-1" ) - PORT_DIPSETTING( 0x3400, "German-2" ) - PORT_DIPSETTING( 0x5400, "German-3" ) - PORT_DIPSETTING( 0x1400, "German-4" ) - PORT_DIPSETTING( 0x6400, "German-5" ) - PORT_DIPSETTING( 0x2400, "German-ECA" ) - PORT_DIPSETTING( 0x0400, "German-Free Play" ) - PORT_DIPSETTING( 0x7800, "French-1" ) - PORT_DIPSETTING( 0x3800, "French-2" ) - PORT_DIPSETTING( 0x5800, "French-3" ) - PORT_DIPSETTING( 0x1800, "French-4" ) - PORT_DIPSETTING( 0x6800, "French-ECA" ) - PORT_DIPSETTING( 0x0800, "French-Free Play" ) - PORT_DIPNAME( 0x8000, 0x0000, "Coinage Source" ) - PORT_DIPSETTING( 0x8000, "Dipswitch" ) - PORT_DIPSETTING( 0x0000, "CMOS" ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( term2 ) - PORT_START - PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, 0x0080, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_DIPNAME( 0x0007, 0x0003, "Credits" ) - PORT_DIPSETTING( 0x0007, "2 Start/1 Continue" ) - PORT_DIPSETTING( 0x0006, "4 Start/1 Continue" ) - PORT_DIPSETTING( 0x0005, "2 Start/2 Continue" ) - PORT_DIPSETTING( 0x0004, "4 Start/2 Continue" ) - PORT_DIPSETTING( 0x0003, "1 Start/1 Continue" ) - PORT_DIPSETTING( 0x0002, "3 Start/2 Continue" ) - PORT_DIPSETTING( 0x0001, "3 Start/1 Continue" ) - PORT_DIPSETTING( 0x0000, "3 Start/3 Continue" ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x0038, "1" ) - PORT_DIPSETTING( 0x0018, "2" ) - PORT_DIPSETTING( 0x0028, "3" ) - PORT_DIPSETTING( 0x0008, "4" ) - PORT_DIPSETTING( 0x0030, "ECA" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play )) - PORT_DIPNAME( 0x0040, 0x0040, "Dipswitch Coinage" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0040, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, "Normal Display" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0100, 0x0100, "Test Switch" ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, "Video Freeze" ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused )) - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Players ) ) - PORT_DIPSETTING( 0x0800, "2 Players" ) - PORT_DIPSETTING( 0x0000, "1 Player" ) - PORT_DIPNAME( 0x1000, 0x0000, "Two Counters" ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x2000, 0x0000, "Powerup Test" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off )) - PORT_DIPSETTING( 0x2000, DEF_STR( On )) - PORT_DIPNAME( 0xc000, 0xc000, "Country" ) - PORT_DIPSETTING( 0xc000, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( French ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( German ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(2) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2) - PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( totcarn ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME( 0x001f, 0x001f, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x001f, "USA 1" ) - PORT_DIPSETTING( 0x001e, "USA 2" ) - PORT_DIPSETTING( 0x001d, "USA 3" ) - PORT_DIPSETTING( 0x001c, "German 1" ) - PORT_DIPSETTING( 0x001b, "German 2" ) - PORT_DIPSETTING( 0x001a, "German 3" ) - PORT_DIPSETTING( 0x0019, "France 2" ) - PORT_DIPSETTING( 0x0018, "France 3" ) - PORT_DIPSETTING( 0x0017, "France 4" ) - PORT_DIPSETTING( 0x0016, "Swiss 1" ) - PORT_DIPSETTING( 0x0015, "Italy" ) - PORT_DIPSETTING( 0x0014, "U.K. 1" ) - PORT_DIPSETTING( 0x0013, "U.K. 2" ) - PORT_DIPSETTING( 0x0012, "U.K. ECA" ) - PORT_DIPSETTING( 0x0011, "Spain 1" ) - PORT_DIPSETTING( 0x0010, "Australia 1" ) - PORT_DIPSETTING( 0x000f, "Japan 1" ) - PORT_DIPSETTING( 0x000e, "Japan 2" ) - PORT_DIPSETTING( 0x000d, "Austria 1" ) - PORT_DIPSETTING( 0x000c, "Belgium 1" ) - PORT_DIPSETTING( 0x000b, "Belgium 2" ) - PORT_DIPSETTING( 0x000a, "Sweden" ) - PORT_DIPSETTING( 0x0009, "New Zealand 1" ) - PORT_DIPSETTING( 0x0008, "Netherlands" ) - PORT_DIPSETTING( 0x0007, "Finland" ) - PORT_DIPSETTING( 0x0006, "Norway" ) - PORT_DIPSETTING( 0x0005, "Denmark" ) -// PORT_DIPSETTING( 0x0004, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x0003, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x0002, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x0001, DEF_STR( Unused )) -// PORT_DIPSETTING( 0x0000, DEF_STR( Unused )) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0020, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0040, 0x0040, "Dipswitch Coinage" ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0080, 0x0080, "Keys for Pleasure Dome" ) - PORT_DIPSETTING( 0x0080, "220" ) - PORT_DIPSETTING( 0x0000, "200" ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Service_Mode )) - PORT_DIPSETTING( 0x0100, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0200, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0400, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x0800, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x1000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x2000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x4000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown )) - PORT_DIPSETTING( 0x8000, DEF_STR( Off )) - PORT_DIPSETTING( 0x0000, DEF_STR( On )) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/************************************* - * - * 34010 configuration - * - *************************************/ - -static struct tms34010_config tms_config = -{ - 0, /* halt on reset */ - NULL, /* generate interrupt */ - midyunit_to_shiftreg, /* write to shiftreg function */ - midyunit_from_shiftreg, /* read from shiftreg function */ - midyunit_display_addr_changed, /* display address changed */ - midyunit_display_interrupt /* display interrupt callback */ -}; - - - -/************************************* - * - * Z-unit machine driver - * - *************************************/ - -#define COMPUTED_VBLANK(yvis, ytotal, fps) ((1000000 * (ytotal - yvis)) / (fps * ytotal)) - -static MACHINE_DRIVER_START( zunit ) - - /* basic machine hardware */ - MDRV_CPU_ADD(TMS34010, 48000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_CONFIG(tms_config) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(400, 432, 57))) - MDRV_MACHINE_RESET(midyunit) - MDRV_NVRAM_HANDLER(midyunit) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 400) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(midzunit) - MDRV_VIDEO_EOF(midyunit) - MDRV_VIDEO_UPDATE(midyunit) - - /* sound hardware */ - MDRV_IMPORT_FROM(williams_narc_sound) -MACHINE_DRIVER_END - - - -/************************************* - * - * Y-unit machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( yunit_core ) - - /* basic machine hardware */ - MDRV_CPU_ADD(TMS34010, 50000000/TMS34010_CLOCK_DIVIDER) - MDRV_CPU_CONFIG(tms_config) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_SCREEN_REFRESH_RATE(MKLA5_FPS) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(256, 288, MKLA5_FPS))) - MDRV_MACHINE_RESET(midyunit) - MDRV_NVRAM_HANDLER(midyunit) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(410, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 255) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_EOF(midyunit) - MDRV_VIDEO_UPDATE(midyunit) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( yunit_cvsd_4bit ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(yunit_core) - MDRV_IMPORT_FROM(williams_cvsd_sound) - - /* video hardware */ - MDRV_PALETTE_LENGTH(256) - MDRV_VIDEO_START(midyunit_4bit) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( yunit_cvsd_6bit ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(yunit_core) - MDRV_IMPORT_FROM(williams_cvsd_sound) - - /* video hardware */ - MDRV_PALETTE_LENGTH(4096) - MDRV_VIDEO_START(midyunit_6bit) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( yunit_adpcm ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(yunit_core) - MDRV_IMPORT_FROM(williams_adpcm_sound) - - /* video hardware */ - MDRV_PALETTE_LENGTH(4096) - MDRV_VIDEO_START(midyunit_6bit) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mkyawdim ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(yunit_core) - - MDRV_CPU_ADD(Z80, 5000000) - MDRV_CPU_PROGRAM_MAP(yawdim_sound_map,0) - - /* video hardware */ - MDRV_PALETTE_LENGTH(4096) - MDRV_VIDEO_START(mkyawdim) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/* - individual machine drivers with tweaked areas and VBLANK timing - based on these video params: - - VERTICAL HORIZONTAL - Narc: 001B-01AB / 01B0 (400) 003D-013D / 0150 (512) - Trog: 0014-0114 / 0120 (256) 002D-00F3 / 00FC (396) - Strkforc: 0014-0113 / 0120 (255) 002D-00F5 / 00FC (400) - Smashtv: 0014-0114 / 0120 (256) 002D-00FA / 00FC (410) - Hiimpact: 0014-0114 / 0120 (256) 002D-00F3 / 00FC (396) - Shimpact: 0014-0114 / 0120 (256) 002D-00F3 / 00FC (396) - Term2: 0014-0113 / 0120 (255) 002D-00F7 / 00FC (404) - MK: 0014-0112 / 0120 (254) 002D-00F5 / 00FC (400) - Totcarn: 0014-0114 / 0120 (256) 0032-00FA / 00FC (400) -*/ - - -static MACHINE_DRIVER_START( trog ) - MDRV_IMPORT_FROM(yunit_cvsd_4bit) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(256, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 395, 0, 255) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( strkforc ) - MDRV_IMPORT_FROM(yunit_cvsd_4bit) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(255, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 254) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( smashtv ) - MDRV_IMPORT_FROM(yunit_cvsd_6bit) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(256, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 409, 0, 255) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hiimpact ) - MDRV_IMPORT_FROM(yunit_cvsd_6bit) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(256, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 395, 0, 255) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( term2 ) - MDRV_IMPORT_FROM(yunit_adpcm) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(255, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 255) -// MDRV_SCREEN_VISIBLE_AREA(0, 403, 0, 254) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mk ) - MDRV_IMPORT_FROM(yunit_adpcm) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(254, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 253) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( totcarn ) - MDRV_IMPORT_FROM(yunit_adpcm) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(COMPUTED_VBLANK(256, 288, MKLA5_FPS))) - MDRV_SCREEN_VISIBLE_AREA(0, 399, 0, 255) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( narc ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "u4-snd", 0x50000, 0x10000, CRC(450a591a) SHA1(bbda8061262738e5866f2707f69483a0a51d2910) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD( "u5-snd", 0x70000, 0x10000, CRC(e551e5e3) SHA1(c8b4f53dbd4c534abb77d4dc07c4d12653b79894) ) - ROM_RELOAD( 0x80000, 0x10000 ) - - ROM_REGION( 0x90000, REGION_CPU3, 0 ) /* slave sound CPU */ - ROM_LOAD( "u35-snd", 0x10000, 0x10000, CRC(81295892) SHA1(159664e5ee03c88d6e940e70e87e2150dc5b8b25) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "u36-snd", 0x30000, 0x10000, CRC(16cdbb13) SHA1(2dfd961a5d909c1804f4fda34de33ee2664c4bc6) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "u37-snd", 0x50000, 0x10000, CRC(29dbeffd) SHA1(4cbdc619db34f9c552de1ed3d034f8c079987e03) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD( "u38-snd", 0x70000, 0x10000, CRC(09b03b80) SHA1(a45782d29a426fac38299b56af0815e844e35ae4) ) - ROM_RELOAD( 0x80000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u42", 0x80000, 0x20000, CRC(d1111b76) SHA1(9700261aaba6a1ac0415362874817499f90b142a) ) - ROM_LOAD16_BYTE( "u24", 0x80001, 0x20000, CRC(aa0d3082) SHA1(7da59098319c49842406e7daf06aceae80fbd0ed) ) - ROM_LOAD16_BYTE( "u41", 0xc0000, 0x20000, CRC(3903191f) SHA1(1ad89cb03956f6625d9403e98951383fc9219478) ) - ROM_LOAD16_BYTE( "u23", 0xc0001, 0x20000, CRC(7a316582) SHA1(f640966c79bab70b536f2f92d4f46475a021b5b1) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "u94", 0x000000, 0x10000, CRC(ca3194e4) SHA1(d6aa6a09e4353a1dddd502abf85acf48e6e94cef) ) - ROM_LOAD( "u93", 0x010000, 0x10000, CRC(0ed7f7f5) SHA1(913d0dc81531adc6a7e6ffabfe681150aa4638a3) ) - ROM_LOAD( "u92", 0x020000, 0x10000, CRC(40d2fc66) SHA1(95b8d90e6abe336ad05dc3746d02b38823d2b8cd) ) - ROM_LOAD( "u91", 0x030000, 0x10000, CRC(f39325e0) SHA1(c1179825c76ed2934dfeff263a9296c2c1a5abe4) ) - ROM_LOAD( "u90", 0x040000, 0x10000, CRC(0132aefa) SHA1(9bf11ebc06f1069ea056427750902c204facbd3d) ) - ROM_LOAD( "u89", 0x050000, 0x10000, CRC(f7260c9e) SHA1(5a3fd88c7c0fa01ec2eb6fdef380ccee9d7da3a8) ) - ROM_LOAD( "u88", 0x060000, 0x10000, CRC(edc19f42) SHA1(b7121b3df743e5744ae72de2216b679fe71a2049) ) - ROM_LOAD( "u87", 0x070000, 0x10000, CRC(d9b42ff9) SHA1(cab05a5f8aadff010fba1107eb2000cc128063ff) ) - ROM_LOAD( "u86", 0x080000, 0x10000, CRC(af7daad3) SHA1(e2635a0acd6a238159ef91c1c3c9dfe8de8ae18f) ) - ROM_LOAD( "u85", 0x090000, 0x10000, CRC(095fae6b) SHA1(94f1df799142990a559e54cd949d9723481806b1) ) - ROM_LOAD( "u84", 0x0a0000, 0x10000, CRC(3fdf2057) SHA1(25ac6263a4eb962d90a305572fb95b75cb9f4138) ) - ROM_LOAD( "u83", 0x0b0000, 0x10000, CRC(f2d27c9f) SHA1(de30c7e0191adf62b11b2f2fbdf80687e653de12) ) - ROM_LOAD( "u82", 0x0c0000, 0x10000, CRC(962ce47c) SHA1(ea32f7f58a5ec1d941b372db5378d14fd850a2a7) ) - ROM_LOAD( "u81", 0x0d0000, 0x10000, CRC(00fe59ec) SHA1(85efd623b9cd75b249e19b2e97440a47718da728) ) - ROM_LOAD( "u80", 0x0e0000, 0x10000, CRC(147ba8e9) SHA1(1065b57082e0198025fe6f0bb3548f37c6a715e4) ) - - ROM_LOAD( "u76", 0x200000, 0x10000, CRC(1cd897f4) SHA1(80414c3718ac6719abcca83f483302fc16fcfef3) ) - ROM_LOAD( "u75", 0x210000, 0x10000, CRC(78abfa01) SHA1(1523f537491b901f2d987d4443077b92e24b969d) ) - ROM_LOAD( "u74", 0x220000, 0x10000, CRC(66d2a234) SHA1(290b3051fa9d35e24a9d00fcc2b72d2751f3e7f1) ) - ROM_LOAD( "u73", 0x230000, 0x10000, CRC(efa5cd4e) SHA1(7aca6058d644a025c6799d55ffa082ba8eb5d76f) ) - ROM_LOAD( "u72", 0x240000, 0x10000, CRC(70638eb5) SHA1(fbafb354fca7c3c402be5073fa03060de569f536) ) - ROM_LOAD( "u71", 0x250000, 0x10000, CRC(61226883) SHA1(09a366df0603cc0afc8c6c5547ec6ae3a02724b2) ) - ROM_LOAD( "u70", 0x260000, 0x10000, CRC(c808849f) SHA1(bd3f69c4641331738e415d6d72fafe0eeeb2e56b) ) - ROM_LOAD( "u69", 0x270000, 0x10000, CRC(e7f9c34f) SHA1(f65aed012f1d575a63690222b8c8f2c56bc196c3) ) - ROM_LOAD( "u68", 0x280000, 0x10000, CRC(88a634d5) SHA1(9ddf86ca8cd91965348bc311cc722151f831db21) ) - ROM_LOAD( "u67", 0x290000, 0x10000, CRC(4ab8b69e) SHA1(4320407c78864edc7876ad3604405414a3e7762d) ) - ROM_LOAD( "u66", 0x2a0000, 0x10000, CRC(e1da4b25) SHA1(c81ed1ffc0a4bf64e794a1313559453f9455c312) ) - ROM_LOAD( "u65", 0x2b0000, 0x10000, CRC(6df0d125) SHA1(37392cc917e73cfa09970fd24503b45ced399976) ) - ROM_LOAD( "u64", 0x2c0000, 0x10000, CRC(abab1b16) SHA1(2913a94e1fcf8df52e29d0fb6e373aa64d23c019) ) - ROM_LOAD( "u63", 0x2d0000, 0x10000, CRC(80602f31) SHA1(f1c5c4476dbf80382f33c0776c103cff9bed8346) ) - ROM_LOAD( "u62", 0x2e0000, 0x10000, CRC(c2a476d1) SHA1(ffde1784548050d87f1404aaca3689417e6f7a81) ) - - ROM_LOAD( "u58", 0x400000, 0x10000, CRC(8a7501e3) SHA1(dcd87c464fcb88180cc1c24ec82586440a197a5c) ) - ROM_LOAD( "u57", 0x410000, 0x10000, CRC(a504735f) SHA1(2afe58e576eea2e0326c6b42adb621358a270881) ) - ROM_LOAD( "u56", 0x420000, 0x10000, CRC(55f8cca7) SHA1(0b0a0d50be4401e4ac4e75d8040f18540f9ddc61) ) - ROM_LOAD( "u55", 0x430000, 0x10000, CRC(d3c932c1) SHA1(1a7ffc04e796ba355506bf9037c21aef18fe01a3) ) - ROM_LOAD( "u54", 0x440000, 0x10000, CRC(c7f4134b) SHA1(aea523e17f95c27d1f2c1f69884f626d96c8cb3b) ) - ROM_LOAD( "u53", 0x450000, 0x10000, CRC(6be4da56) SHA1(35a93a259be04a644ca70df4922f6915274c3932) ) - ROM_LOAD( "u52", 0x460000, 0x10000, CRC(1ea36a4a) SHA1(78e5437d46c1ecff5e221bc301925b10f00c5269) ) - ROM_LOAD( "u51", 0x470000, 0x10000, CRC(9d4b0324) SHA1(80fb38a9ac81a0383112df680b9755d7cccbd50b) ) - ROM_LOAD( "u50", 0x480000, 0x10000, CRC(6f9f0c26) SHA1(be77d99fb37fa31c3824725b28ee74206c584b90) ) - ROM_LOAD( "u49", 0x490000, 0x10000, CRC(80386fce) SHA1(f182ed0f1a3753dedc56cb120cb8d10e1556e966) ) - ROM_LOAD( "u48", 0x4a0000, 0x10000, CRC(05c16185) SHA1(429910c5b1f1fe47fdec6cfcba765ee9f10749f0) ) - ROM_LOAD( "u47", 0x4b0000, 0x10000, CRC(4c0151f1) SHA1(b526066fc594f3ec83bb4866986e3b73cdae3992) ) - ROM_LOAD( "u46", 0x4c0000, 0x10000, CRC(5670bfcb) SHA1(b20829b715c6421894c10c02aebb08d22b5109c9) ) - ROM_LOAD( "u45", 0x4d0000, 0x10000, CRC(27f10d98) SHA1(b027ade2b4a52977d9c40c9549b9067d37fab41c) ) - ROM_LOAD( "u44", 0x4e0000, 0x10000, CRC(93b8eaa4) SHA1(b786f3286c5443cf08e556e9fb030b3444288f3c) ) - - ROM_LOAD( "u40", 0x600000, 0x10000, CRC(7fcaebc7) SHA1(b951d63c072d693f7dfc7e362a12513eb9bd6bab) ) - ROM_LOAD( "u39", 0x610000, 0x10000, CRC(7db5cf52) SHA1(478aefc1126493378d22c857646e2fce221c7d21) ) - ROM_LOAD( "u38", 0x620000, 0x10000, CRC(3f9f3ef7) SHA1(5315e8c372bb63d95f814d8eafe0f41e4d95ba1a) ) - ROM_LOAD( "u37", 0x630000, 0x10000, CRC(ed81826c) SHA1(afe1c0fc692a802279c1f7f31143d33028d35ce4) ) - ROM_LOAD( "u36", 0x640000, 0x10000, CRC(e5d855c0) SHA1(3fa0f765238ad2a27c0c65805bf56ebfbe50bf05) ) - ROM_LOAD( "u35", 0x650000, 0x10000, CRC(3a7b1329) SHA1(e8b547a3b8f85cd13e12cfe0bf3949acc1486e6b) ) - ROM_LOAD( "u34", 0x660000, 0x10000, CRC(fe982b0e) SHA1(a03e7e348186339fd93ce119f65e8f0ea7b7bb7a) ) - ROM_LOAD( "u33", 0x670000, 0x10000, CRC(6bc7eb0f) SHA1(6964ef63d0daf1bc7fa9585567659cfc198b6cc3) ) - ROM_LOAD( "u32", 0x680000, 0x10000, CRC(5875a6d3) SHA1(ae64aa786239be39c3c99bbe019bdc91003c1691) ) - ROM_LOAD( "u31", 0x690000, 0x10000, CRC(2fa4b8e5) SHA1(8e4e4abd60d20e0ef955ac4b1f300cfd157e50ca) ) - ROM_LOAD( "u30", 0x6a0000, 0x10000, CRC(7e4bb8ee) SHA1(7166bd56a569329e01ed0c03579a403d659a4a7b) ) - ROM_LOAD( "u29", 0x6b0000, 0x10000, CRC(45136fd9) SHA1(44388e16d02a8c55fed0dbbcd842c941fa4b11b1) ) - ROM_LOAD( "u28", 0x6c0000, 0x10000, CRC(d6cdac24) SHA1(d4bbe3a1be89be7d21769bfe476b50c05cd0c357) ) - ROM_LOAD( "u27", 0x6d0000, 0x10000, CRC(4d33bbec) SHA1(05a3bd66ff91c824e841ca3943585f6aa383c5c2) ) - ROM_LOAD( "u26", 0x6e0000, 0x10000, CRC(cb19f784) SHA1(1e4d85603c940e247fdc45f0366dfb484285e588) ) -ROM_END - - -ROM_START( narc3 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "u4-snd", 0x50000, 0x10000, CRC(450a591a) SHA1(bbda8061262738e5866f2707f69483a0a51d2910) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD( "u5-snd", 0x70000, 0x10000, CRC(e551e5e3) SHA1(c8b4f53dbd4c534abb77d4dc07c4d12653b79894) ) - ROM_RELOAD( 0x80000, 0x10000 ) - - ROM_REGION( 0x90000, REGION_CPU3, 0 ) /* slave sound CPU */ - ROM_LOAD( "u35-snd", 0x10000, 0x10000, CRC(81295892) SHA1(159664e5ee03c88d6e940e70e87e2150dc5b8b25) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "u36-snd", 0x30000, 0x10000, CRC(16cdbb13) SHA1(2dfd961a5d909c1804f4fda34de33ee2664c4bc6) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD( "u37-snd", 0x50000, 0x10000, CRC(29dbeffd) SHA1(4cbdc619db34f9c552de1ed3d034f8c079987e03) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD( "u38-snd", 0x70000, 0x10000, CRC(09b03b80) SHA1(a45782d29a426fac38299b56af0815e844e35ae4) ) - ROM_RELOAD( 0x80000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "narcrev3.u78", 0x00000, 0x10000, CRC(388581b0) SHA1(9d3c718c7bee8f3db9b87ae08ec3bcc1bf65084b) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u60", 0x00001, 0x10000, CRC(f273bc04) SHA1(d4a75c1d6fa706f582ac8131387042a3c9abd08e) ) - ROM_RELOAD( 0x20001, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u77", 0x40000, 0x10000, CRC(bdafaccc) SHA1(9e0607d2a2a939847e95489970969df5af1fb708) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u59", 0x40001, 0x10000, CRC(96314a99) SHA1(917cde404b325d0689a2c5848a145eedfd31fc57) ) - ROM_RELOAD( 0x60001, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u42", 0x80000, 0x10000, CRC(56aebc81) SHA1(5177ea0121e1b742934ffdcf85795b2c9595b5de) ) - ROM_RELOAD( 0xa0000, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u24", 0x80001, 0x10000, CRC(11d7e143) SHA1(c58bc9615d480a97443cc5d4fb2f8ce9fba9db63) ) - ROM_RELOAD( 0xa0001, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u41", 0xc0000, 0x10000, CRC(6142fab7) SHA1(e1cc5b088bf2fb9be51d4620b3ff3e50e0fd3117) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_LOAD16_BYTE( "narcrev3.u23", 0xc0001, 0x10000, CRC(98cdd178) SHA1(dd46a957462f2a9dc6de89379fe3e21664873a3c) ) - ROM_RELOAD( 0xe0001, 0x10000 ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "u94", 0x000000, 0x10000, CRC(ca3194e4) SHA1(d6aa6a09e4353a1dddd502abf85acf48e6e94cef) ) - ROM_LOAD( "u93", 0x010000, 0x10000, CRC(0ed7f7f5) SHA1(913d0dc81531adc6a7e6ffabfe681150aa4638a3) ) - ROM_LOAD( "u92", 0x020000, 0x10000, CRC(40d2fc66) SHA1(95b8d90e6abe336ad05dc3746d02b38823d2b8cd) ) - ROM_LOAD( "u91", 0x030000, 0x10000, CRC(f39325e0) SHA1(c1179825c76ed2934dfeff263a9296c2c1a5abe4) ) - ROM_LOAD( "u90", 0x040000, 0x10000, CRC(0132aefa) SHA1(9bf11ebc06f1069ea056427750902c204facbd3d) ) - ROM_LOAD( "u89", 0x050000, 0x10000, CRC(f7260c9e) SHA1(5a3fd88c7c0fa01ec2eb6fdef380ccee9d7da3a8) ) - ROM_LOAD( "u88", 0x060000, 0x10000, CRC(edc19f42) SHA1(b7121b3df743e5744ae72de2216b679fe71a2049) ) - ROM_LOAD( "u87", 0x070000, 0x10000, CRC(d9b42ff9) SHA1(cab05a5f8aadff010fba1107eb2000cc128063ff) ) - ROM_LOAD( "u86", 0x080000, 0x10000, CRC(af7daad3) SHA1(e2635a0acd6a238159ef91c1c3c9dfe8de8ae18f) ) - ROM_LOAD( "u85", 0x090000, 0x10000, CRC(095fae6b) SHA1(94f1df799142990a559e54cd949d9723481806b1) ) - ROM_LOAD( "u84", 0x0a0000, 0x10000, CRC(3fdf2057) SHA1(25ac6263a4eb962d90a305572fb95b75cb9f4138) ) - ROM_LOAD( "u83", 0x0b0000, 0x10000, CRC(f2d27c9f) SHA1(de30c7e0191adf62b11b2f2fbdf80687e653de12) ) - ROM_LOAD( "u82", 0x0c0000, 0x10000, CRC(962ce47c) SHA1(ea32f7f58a5ec1d941b372db5378d14fd850a2a7) ) - ROM_LOAD( "u81", 0x0d0000, 0x10000, CRC(00fe59ec) SHA1(85efd623b9cd75b249e19b2e97440a47718da728) ) - ROM_LOAD( "u80", 0x0e0000, 0x10000, CRC(147ba8e9) SHA1(1065b57082e0198025fe6f0bb3548f37c6a715e4) ) - - ROM_LOAD( "u76", 0x200000, 0x10000, CRC(1cd897f4) SHA1(80414c3718ac6719abcca83f483302fc16fcfef3) ) - ROM_LOAD( "u75", 0x210000, 0x10000, CRC(78abfa01) SHA1(1523f537491b901f2d987d4443077b92e24b969d) ) - ROM_LOAD( "u74", 0x220000, 0x10000, CRC(66d2a234) SHA1(290b3051fa9d35e24a9d00fcc2b72d2751f3e7f1) ) - ROM_LOAD( "u73", 0x230000, 0x10000, CRC(efa5cd4e) SHA1(7aca6058d644a025c6799d55ffa082ba8eb5d76f) ) - ROM_LOAD( "u72", 0x240000, 0x10000, CRC(70638eb5) SHA1(fbafb354fca7c3c402be5073fa03060de569f536) ) - ROM_LOAD( "u71", 0x250000, 0x10000, CRC(61226883) SHA1(09a366df0603cc0afc8c6c5547ec6ae3a02724b2) ) - ROM_LOAD( "u70", 0x260000, 0x10000, CRC(c808849f) SHA1(bd3f69c4641331738e415d6d72fafe0eeeb2e56b) ) - ROM_LOAD( "u69", 0x270000, 0x10000, CRC(e7f9c34f) SHA1(f65aed012f1d575a63690222b8c8f2c56bc196c3) ) - ROM_LOAD( "u68", 0x280000, 0x10000, CRC(88a634d5) SHA1(9ddf86ca8cd91965348bc311cc722151f831db21) ) - ROM_LOAD( "u67", 0x290000, 0x10000, CRC(4ab8b69e) SHA1(4320407c78864edc7876ad3604405414a3e7762d) ) - ROM_LOAD( "u66", 0x2a0000, 0x10000, CRC(e1da4b25) SHA1(c81ed1ffc0a4bf64e794a1313559453f9455c312) ) - ROM_LOAD( "u65", 0x2b0000, 0x10000, CRC(6df0d125) SHA1(37392cc917e73cfa09970fd24503b45ced399976) ) - ROM_LOAD( "u64", 0x2c0000, 0x10000, CRC(abab1b16) SHA1(2913a94e1fcf8df52e29d0fb6e373aa64d23c019) ) - ROM_LOAD( "u63", 0x2d0000, 0x10000, CRC(80602f31) SHA1(f1c5c4476dbf80382f33c0776c103cff9bed8346) ) - ROM_LOAD( "u62", 0x2e0000, 0x10000, CRC(c2a476d1) SHA1(ffde1784548050d87f1404aaca3689417e6f7a81) ) - - ROM_LOAD( "u58", 0x400000, 0x10000, CRC(8a7501e3) SHA1(dcd87c464fcb88180cc1c24ec82586440a197a5c) ) - ROM_LOAD( "u57", 0x410000, 0x10000, CRC(a504735f) SHA1(2afe58e576eea2e0326c6b42adb621358a270881) ) - ROM_LOAD( "u56", 0x420000, 0x10000, CRC(55f8cca7) SHA1(0b0a0d50be4401e4ac4e75d8040f18540f9ddc61) ) - ROM_LOAD( "u55", 0x430000, 0x10000, CRC(d3c932c1) SHA1(1a7ffc04e796ba355506bf9037c21aef18fe01a3) ) - ROM_LOAD( "u54", 0x440000, 0x10000, CRC(c7f4134b) SHA1(aea523e17f95c27d1f2c1f69884f626d96c8cb3b) ) - ROM_LOAD( "u53", 0x450000, 0x10000, CRC(6be4da56) SHA1(35a93a259be04a644ca70df4922f6915274c3932) ) - ROM_LOAD( "u52", 0x460000, 0x10000, CRC(1ea36a4a) SHA1(78e5437d46c1ecff5e221bc301925b10f00c5269) ) - ROM_LOAD( "u51", 0x470000, 0x10000, CRC(9d4b0324) SHA1(80fb38a9ac81a0383112df680b9755d7cccbd50b) ) - ROM_LOAD( "u50", 0x480000, 0x10000, CRC(6f9f0c26) SHA1(be77d99fb37fa31c3824725b28ee74206c584b90) ) - ROM_LOAD( "u49", 0x490000, 0x10000, CRC(80386fce) SHA1(f182ed0f1a3753dedc56cb120cb8d10e1556e966) ) - ROM_LOAD( "u48", 0x4a0000, 0x10000, CRC(05c16185) SHA1(429910c5b1f1fe47fdec6cfcba765ee9f10749f0) ) - ROM_LOAD( "u47", 0x4b0000, 0x10000, CRC(4c0151f1) SHA1(b526066fc594f3ec83bb4866986e3b73cdae3992) ) - ROM_LOAD( "u46", 0x4c0000, 0x10000, CRC(5670bfcb) SHA1(b20829b715c6421894c10c02aebb08d22b5109c9) ) - ROM_LOAD( "u45", 0x4d0000, 0x10000, CRC(27f10d98) SHA1(b027ade2b4a52977d9c40c9549b9067d37fab41c) ) - ROM_LOAD( "u44", 0x4e0000, 0x10000, CRC(93b8eaa4) SHA1(b786f3286c5443cf08e556e9fb030b3444288f3c) ) - - ROM_LOAD( "u40", 0x600000, 0x10000, CRC(7fcaebc7) SHA1(b951d63c072d693f7dfc7e362a12513eb9bd6bab) ) - ROM_LOAD( "u39", 0x610000, 0x10000, CRC(7db5cf52) SHA1(478aefc1126493378d22c857646e2fce221c7d21) ) - ROM_LOAD( "u38", 0x620000, 0x10000, CRC(3f9f3ef7) SHA1(5315e8c372bb63d95f814d8eafe0f41e4d95ba1a) ) - ROM_LOAD( "u37", 0x630000, 0x10000, CRC(ed81826c) SHA1(afe1c0fc692a802279c1f7f31143d33028d35ce4) ) - ROM_LOAD( "u36", 0x640000, 0x10000, CRC(e5d855c0) SHA1(3fa0f765238ad2a27c0c65805bf56ebfbe50bf05) ) - ROM_LOAD( "u35", 0x650000, 0x10000, CRC(3a7b1329) SHA1(e8b547a3b8f85cd13e12cfe0bf3949acc1486e6b) ) - ROM_LOAD( "u34", 0x660000, 0x10000, CRC(fe982b0e) SHA1(a03e7e348186339fd93ce119f65e8f0ea7b7bb7a) ) - ROM_LOAD( "u33", 0x670000, 0x10000, CRC(6bc7eb0f) SHA1(6964ef63d0daf1bc7fa9585567659cfc198b6cc3) ) - ROM_LOAD( "u32", 0x680000, 0x10000, CRC(5875a6d3) SHA1(ae64aa786239be39c3c99bbe019bdc91003c1691) ) - ROM_LOAD( "u31", 0x690000, 0x10000, CRC(2fa4b8e5) SHA1(8e4e4abd60d20e0ef955ac4b1f300cfd157e50ca) ) - ROM_LOAD( "u30", 0x6a0000, 0x10000, CRC(7e4bb8ee) SHA1(7166bd56a569329e01ed0c03579a403d659a4a7b) ) - ROM_LOAD( "u29", 0x6b0000, 0x10000, CRC(45136fd9) SHA1(44388e16d02a8c55fed0dbbcd842c941fa4b11b1) ) - ROM_LOAD( "u28", 0x6c0000, 0x10000, CRC(d6cdac24) SHA1(d4bbe3a1be89be7d21769bfe476b50c05cd0c357) ) - ROM_LOAD( "u27", 0x6d0000, 0x10000, CRC(4d33bbec) SHA1(05a3bd66ff91c824e841ca3943585f6aa383c5c2) ) - ROM_LOAD( "u26", 0x6e0000, 0x10000, CRC(cb19f784) SHA1(1e4d85603c940e247fdc45f0366dfb484285e588) ) -ROM_END - - -ROM_START( trog ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "trogu4.bin", 0x10000, 0x10000, CRC(759d0bf4) SHA1(c4c3fa51c43cf7fd241ac1f33d7d220aa9f9edb3) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "trogu19.bin", 0x30000, 0x10000, CRC(960c333d) SHA1(da8ce8dfffffe7a2d60b3f75cc5aa88e5e2be659) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "trogu20.bin", 0x50000, 0x10000, CRC(67f1658a) SHA1(c85dc920ff4b292afa9f6681f31918a200799cc9) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "trogu105.bin", 0xc0000, 0x20000, CRC(e6095189) SHA1(a2caaf64e371050b37c63d9608ba5d289cf3cd91) ) - ROM_LOAD16_BYTE( "trogu89.bin", 0xc0001, 0x20000, CRC(fdd7cc65) SHA1(bfc4339953c122bca968f9cfa3a82df3584a3727) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "trogu111.bin", 0x000000, 0x20000, CRC(9ded08c1) SHA1(bbf069f218e3f3d67e45fa2229a471451b3a8f96) ) - ROM_LOAD ( "trogu112.bin", 0x020000, 0x20000, CRC(42293843) SHA1(cae77eeddd784573beccb79e54573da0e4ccdd8a) ) - ROM_LOAD ( "trogu113.bin", 0x040000, 0x20000, CRC(77f50cbb) SHA1(5f2df3aedd90871ac02bca07c66387f6cda0dfdf) ) - - ROM_LOAD ( "trogu106.bin", 0x080000, 0x20000, CRC(af2eb0d8) SHA1(3767e6f3853b092b40664c2b6c6a838f0243514b) ) - ROM_LOAD ( "trogu107.bin", 0x0a0000, 0x20000, CRC(88a7b3f6) SHA1(ba55f66929841a915d7b96aabf4b11e50ba6cfbd) ) - - ROM_LOAD ( "trogu95.bin", 0x200000, 0x20000, CRC(f3ba2838) SHA1(2bee6c783c84a9f3f9309d802f42983857190ece) ) - ROM_LOAD ( "trogu96.bin", 0x220000, 0x20000, CRC(cfed2e77) SHA1(7fc0f52ac844c9efcbcc3004c40f9f4fc7e1c346) ) - ROM_LOAD ( "trogu97.bin", 0x240000, 0x20000, CRC(3262d1f8) SHA1(754e3e8223edd11398b2db77fd5db619dad1577b) ) - - ROM_LOAD ( "trogu90.bin", 0x280000, 0x20000, CRC(16e06753) SHA1(62ec2b18e6b965ea0792d655d7878b4225da3aca) ) - ROM_LOAD ( "trogu91.bin", 0x2a0000, 0x20000, CRC(880a02c7) SHA1(ab1b2d24be4571a183b230d267c6c8167d4a42a4) ) -ROM_END - - -ROM_START( trog3 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "trogu4.bin", 0x10000, 0x10000, CRC(759d0bf4) SHA1(c4c3fa51c43cf7fd241ac1f33d7d220aa9f9edb3) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "trogu19.bin", 0x30000, 0x10000, CRC(960c333d) SHA1(da8ce8dfffffe7a2d60b3f75cc5aa88e5e2be659) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "trogu20.bin", 0x50000, 0x10000, CRC(67f1658a) SHA1(c85dc920ff4b292afa9f6681f31918a200799cc9) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u105-la3", 0xc0000, 0x20000, CRC(d09cea97) SHA1(0c1384be2af8abbaf1c5c7f86f31ec605c18e798) ) - ROM_LOAD16_BYTE( "u89-la3", 0xc0001, 0x20000, CRC(a61e3572) SHA1(5366f4c9592dc9e23ffe867a16cbf51d1811a622) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "trogu111.bin", 0x000000, 0x20000, CRC(9ded08c1) SHA1(bbf069f218e3f3d67e45fa2229a471451b3a8f96) ) - ROM_LOAD ( "trogu112.bin", 0x020000, 0x20000, CRC(42293843) SHA1(cae77eeddd784573beccb79e54573da0e4ccdd8a) ) - ROM_LOAD ( "trogu113.bin", 0x040000, 0x20000, CRC(77f50cbb) SHA1(5f2df3aedd90871ac02bca07c66387f6cda0dfdf) ) - - ROM_LOAD ( "trogu106.bin", 0x080000, 0x20000, CRC(af2eb0d8) SHA1(3767e6f3853b092b40664c2b6c6a838f0243514b) ) - ROM_LOAD ( "trogu107.bin", 0x0a0000, 0x20000, CRC(88a7b3f6) SHA1(ba55f66929841a915d7b96aabf4b11e50ba6cfbd) ) - - ROM_LOAD ( "trogu95.bin", 0x200000, 0x20000, CRC(f3ba2838) SHA1(2bee6c783c84a9f3f9309d802f42983857190ece) ) - ROM_LOAD ( "trogu96.bin", 0x220000, 0x20000, CRC(cfed2e77) SHA1(7fc0f52ac844c9efcbcc3004c40f9f4fc7e1c346) ) - ROM_LOAD ( "trogu97.bin", 0x240000, 0x20000, CRC(3262d1f8) SHA1(754e3e8223edd11398b2db77fd5db619dad1577b) ) - - ROM_LOAD ( "trogu90.bin", 0x280000, 0x20000, CRC(16e06753) SHA1(62ec2b18e6b965ea0792d655d7878b4225da3aca) ) - ROM_LOAD ( "trogu91.bin", 0x2a0000, 0x20000, CRC(880a02c7) SHA1(ab1b2d24be4571a183b230d267c6c8167d4a42a4) ) -ROM_END - - -ROM_START( trogpa6 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "trogu4.bin", 0x10000, 0x10000, CRC(759d0bf4) SHA1(c4c3fa51c43cf7fd241ac1f33d7d220aa9f9edb3) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "trogu19.bin", 0x30000, 0x10000, CRC(960c333d) SHA1(da8ce8dfffffe7a2d60b3f75cc5aa88e5e2be659) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "trogu20.bin", 0x50000, 0x10000, CRC(67f1658a) SHA1(c85dc920ff4b292afa9f6681f31918a200799cc9) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "trog_pa6.105", 0xc0000, 0x20000, CRC(71ad1903) SHA1(e7ff1344a7bdc3b90f09ce8251ebcd25012be602) ) - ROM_LOAD16_BYTE( "trog_pa6.89", 0xc0001, 0x20000, CRC(04473da8) SHA1(47d9e918fba93b4af1e3cacbac9df843e6a10091) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "trogu111.bin", 0x000000, 0x20000, CRC(9ded08c1) SHA1(bbf069f218e3f3d67e45fa2229a471451b3a8f96) ) - ROM_LOAD ( "trogu112.bin", 0x020000, 0x20000, CRC(42293843) SHA1(cae77eeddd784573beccb79e54573da0e4ccdd8a) ) - ROM_LOAD ( "trog_pa6.113", 0x040000, 0x20000, CRC(ae50e5ea) SHA1(915b76f76e7ccbf2c4c28829cea15feaafea498b) ) - - ROM_LOAD ( "trogu95.bin", 0x200000, 0x20000, CRC(f3ba2838) SHA1(2bee6c783c84a9f3f9309d802f42983857190ece) ) - ROM_LOAD ( "trogu96.bin", 0x220000, 0x20000, CRC(cfed2e77) SHA1(7fc0f52ac844c9efcbcc3004c40f9f4fc7e1c346) ) - ROM_LOAD ( "trog_pa6.97", 0x240000, 0x20000, CRC(354b1cb3) SHA1(88400e39f0476d32a0798c50855a8ff9dc0a6617) ) - - ROM_LOAD ( "trogu106.bin", 0x080000, 0x20000, CRC(af2eb0d8) SHA1(3767e6f3853b092b40664c2b6c6a838f0243514b) ) - ROM_LOAD ( "trogu107.bin", 0x0a0000, 0x20000, CRC(88a7b3f6) SHA1(ba55f66929841a915d7b96aabf4b11e50ba6cfbd) ) - - ROM_LOAD ( "trogu90.bin", 0x280000, 0x20000, CRC(16e06753) SHA1(62ec2b18e6b965ea0792d655d7878b4225da3aca) ) - ROM_LOAD ( "trogu91.bin", 0x2a0000, 0x20000, CRC(880a02c7) SHA1(ab1b2d24be4571a183b230d267c6c8167d4a42a4) ) -ROM_END - - -ROM_START( trogp ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "trogu4.bin", 0x10000, 0x10000, CRC(759d0bf4) SHA1(c4c3fa51c43cf7fd241ac1f33d7d220aa9f9edb3) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "trogu19.bin", 0x30000, 0x10000, CRC(960c333d) SHA1(da8ce8dfffffe7a2d60b3f75cc5aa88e5e2be659) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "trogu20.bin", 0x50000, 0x10000, CRC(67f1658a) SHA1(c85dc920ff4b292afa9f6681f31918a200799cc9) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "trog105.dat", 0xc0000, 0x20000, CRC(526a3f5b) SHA1(8ad8cb15ada527f989f774a4fb81a171697c6dad) ) - ROM_LOAD16_BYTE( "trog89.dat", 0xc0001, 0x20000, CRC(38d68685) SHA1(42b73a64641301bf2991929cf365b8f45fc1b5d8) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "trogu111.bin", 0x000000, 0x20000, CRC(9ded08c1) SHA1(bbf069f218e3f3d67e45fa2229a471451b3a8f96) ) - ROM_LOAD ( "trogu112.bin", 0x020000, 0x20000, CRC(42293843) SHA1(cae77eeddd784573beccb79e54573da0e4ccdd8a) ) - ROM_LOAD ( "trog113.dat", 0x040000, 0x20000, CRC(2980a56f) SHA1(1e6ab16be6071d6568149e9ba56e146e3431b5f2) ) - - ROM_LOAD ( "trogu106.bin", 0x080000, 0x20000, CRC(af2eb0d8) SHA1(3767e6f3853b092b40664c2b6c6a838f0243514b) ) - ROM_LOAD ( "trogu107.bin", 0x0a0000, 0x20000, CRC(88a7b3f6) SHA1(ba55f66929841a915d7b96aabf4b11e50ba6cfbd) ) - - ROM_LOAD ( "trogu95.bin", 0x200000, 0x20000, CRC(f3ba2838) SHA1(2bee6c783c84a9f3f9309d802f42983857190ece) ) - ROM_LOAD ( "trogu96.bin", 0x220000, 0x20000, CRC(cfed2e77) SHA1(7fc0f52ac844c9efcbcc3004c40f9f4fc7e1c346) ) - ROM_LOAD ( "trog97.dat", 0x240000, 0x20000, CRC(f94b77c1) SHA1(d4ca3d7270ea1d86cb5c53e85dc7682b0e5945ef) ) - - ROM_LOAD ( "trogu90.bin", 0x280000, 0x20000, CRC(16e06753) SHA1(62ec2b18e6b965ea0792d655d7878b4225da3aca) ) - ROM_LOAD ( "trogu91.bin", 0x2a0000, 0x20000, CRC(880a02c7) SHA1(ab1b2d24be4571a183b230d267c6c8167d4a42a4) ) -ROM_END - - -ROM_START( smashtv ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "u4.snd", 0x10000, 0x10000, CRC(29d3f6c8) SHA1(8a90cdff54f59ddb7dba521504d880515a59df08) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "u19.snd", 0x30000, 0x10000, CRC(ac5a402a) SHA1(c476018062126dc3936caa2c328de490737165ec) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "u20.snd", 0x50000, 0x10000, CRC(875c66d9) SHA1(51cdad62ec57e69bba6fcf14e59841ec628dec11) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u105.l8", 0xc0000, 0x20000, CRC(48cd793f) SHA1(7d0d9edccf0610f57e40934ab33e32315369656d) ) - ROM_LOAD16_BYTE( "u89.l8", 0xc0001, 0x20000, CRC(8e7fe463) SHA1(629332be706cda26f8b170b8e2877355230119ee) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "u111.gam", 0x000000, 0x20000, CRC(72f0ba84) SHA1(2e925b3cdd3c8e14046b3948d82f0f3cde3c22c5) ) - ROM_LOAD ( "u112.gam", 0x020000, 0x20000, CRC(436f0283) SHA1(ec33a8942c0fc326db885e08dad9346ec5a63360) ) - ROM_LOAD ( "u113.gam", 0x040000, 0x20000, CRC(4a4b8110) SHA1(9f1881d1d2682764ab85aebd685d97eb8b4afe46) ) - - ROM_LOAD ( "u95.gam", 0x200000, 0x20000, CRC(e864a44b) SHA1(40eb8e11a183f4f82dc8decb36aaeded9cd1bc26) ) - ROM_LOAD ( "u96.gam", 0x220000, 0x20000, CRC(15555ea7) SHA1(4fefc059736ca424dc05a08cb55b9acf9e31228b) ) - ROM_LOAD ( "u97.gam", 0x240000, 0x20000, CRC(ccac9d9e) SHA1(a43d70d1a0bbd377f0fc539c2e8b725f7079f463) ) - - ROM_LOAD ( "u106.gam", 0x400000, 0x20000, CRC(5c718361) SHA1(6178b1d53411f24d5a5a01559727e300cd27d587) ) - ROM_LOAD ( "u107.gam", 0x420000, 0x20000, CRC(0fba1e36) SHA1(17038cf35a72678bba149a632f1ad1b80cc3a38c) ) - ROM_LOAD ( "u108.gam", 0x440000, 0x20000, CRC(cb0a092f) SHA1(33cbb87b4be1eadb1f3624ef5e218e65109fa3eb) ) -ROM_END - - -ROM_START( smashtv6 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "u4.snd", 0x10000, 0x10000, CRC(29d3f6c8) SHA1(8a90cdff54f59ddb7dba521504d880515a59df08) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "u19.snd", 0x30000, 0x10000, CRC(ac5a402a) SHA1(c476018062126dc3936caa2c328de490737165ec) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "u20.snd", 0x50000, 0x10000, CRC(875c66d9) SHA1(51cdad62ec57e69bba6fcf14e59841ec628dec11) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "la6-u105", 0xc0000, 0x20000, CRC(f1666017) SHA1(2283e71ad55a7cd3bc97bd6b20aebb90ad618bf8) ) - ROM_LOAD16_BYTE( "la6-u89", 0xc0001, 0x20000, CRC(908aca5d) SHA1(c97f05ecb8d96306fecef40330331e279d29f78d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "u111.gam", 0x000000, 0x20000, CRC(72f0ba84) SHA1(2e925b3cdd3c8e14046b3948d82f0f3cde3c22c5) ) - ROM_LOAD ( "u112.gam", 0x020000, 0x20000, CRC(436f0283) SHA1(ec33a8942c0fc326db885e08dad9346ec5a63360) ) - ROM_LOAD ( "u113.gam", 0x040000, 0x20000, CRC(4a4b8110) SHA1(9f1881d1d2682764ab85aebd685d97eb8b4afe46) ) - - ROM_LOAD ( "u95.gam", 0x200000, 0x20000, CRC(e864a44b) SHA1(40eb8e11a183f4f82dc8decb36aaeded9cd1bc26) ) - ROM_LOAD ( "u96.gam", 0x220000, 0x20000, CRC(15555ea7) SHA1(4fefc059736ca424dc05a08cb55b9acf9e31228b) ) - ROM_LOAD ( "u97.gam", 0x240000, 0x20000, CRC(ccac9d9e) SHA1(a43d70d1a0bbd377f0fc539c2e8b725f7079f463) ) - - ROM_LOAD ( "u106.gam", 0x400000, 0x20000, CRC(5c718361) SHA1(6178b1d53411f24d5a5a01559727e300cd27d587) ) - ROM_LOAD ( "u107.gam", 0x420000, 0x20000, CRC(0fba1e36) SHA1(17038cf35a72678bba149a632f1ad1b80cc3a38c) ) - ROM_LOAD ( "u108.gam", 0x440000, 0x20000, CRC(cb0a092f) SHA1(33cbb87b4be1eadb1f3624ef5e218e65109fa3eb) ) -ROM_END - - -ROM_START( smashtv5 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "u4.snd", 0x10000, 0x10000, CRC(29d3f6c8) SHA1(8a90cdff54f59ddb7dba521504d880515a59df08) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "u19.snd", 0x30000, 0x10000, CRC(ac5a402a) SHA1(c476018062126dc3936caa2c328de490737165ec) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "u20.snd", 0x50000, 0x10000, CRC(875c66d9) SHA1(51cdad62ec57e69bba6fcf14e59841ec628dec11) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u105-v5", 0xc0000, 0x20000, CRC(81f564b9) SHA1(5bddcda054be6766b40af88ae2519b3a87c33667) ) - ROM_LOAD16_BYTE( "u89-v5", 0xc0001, 0x20000, CRC(e5017d25) SHA1(27e544efa7f5cbe6ed3fc3211b12694c15a316c7) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "u111.gam", 0x000000, 0x20000, CRC(72f0ba84) SHA1(2e925b3cdd3c8e14046b3948d82f0f3cde3c22c5) ) - ROM_LOAD ( "u112.gam", 0x020000, 0x20000, CRC(436f0283) SHA1(ec33a8942c0fc326db885e08dad9346ec5a63360) ) - ROM_LOAD ( "u113.gam", 0x040000, 0x20000, CRC(4a4b8110) SHA1(9f1881d1d2682764ab85aebd685d97eb8b4afe46) ) - - ROM_LOAD ( "u95.gam", 0x200000, 0x20000, CRC(e864a44b) SHA1(40eb8e11a183f4f82dc8decb36aaeded9cd1bc26) ) - ROM_LOAD ( "u96.gam", 0x220000, 0x20000, CRC(15555ea7) SHA1(4fefc059736ca424dc05a08cb55b9acf9e31228b) ) - ROM_LOAD ( "u97.gam", 0x240000, 0x20000, CRC(ccac9d9e) SHA1(a43d70d1a0bbd377f0fc539c2e8b725f7079f463) ) - - ROM_LOAD ( "u106.gam", 0x400000, 0x20000, CRC(5c718361) SHA1(6178b1d53411f24d5a5a01559727e300cd27d587) ) - ROM_LOAD ( "u107.gam", 0x420000, 0x20000, CRC(0fba1e36) SHA1(17038cf35a72678bba149a632f1ad1b80cc3a38c) ) - ROM_LOAD ( "u108.gam", 0x440000, 0x20000, CRC(cb0a092f) SHA1(33cbb87b4be1eadb1f3624ef5e218e65109fa3eb) ) -ROM_END - - -ROM_START( smashtv4 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "u4.snd", 0x10000, 0x10000, CRC(29d3f6c8) SHA1(8a90cdff54f59ddb7dba521504d880515a59df08) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "u19.snd", 0x30000, 0x10000, CRC(ac5a402a) SHA1(c476018062126dc3936caa2c328de490737165ec) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "u20.snd", 0x50000, 0x10000, CRC(875c66d9) SHA1(51cdad62ec57e69bba6fcf14e59841ec628dec11) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "la4-u105", 0xc0000, 0x20000, CRC(a50ccb71) SHA1(414dfe355e314f6460ce07edbdd5e4b801451cf8) ) - ROM_LOAD16_BYTE( "la4-u89", 0xc0001, 0x20000, CRC(ef0b0279) SHA1(baad5a2a8d51d007e365f378f3214bbd2ea9699c) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "u111.gam", 0x000000, 0x20000, CRC(72f0ba84) SHA1(2e925b3cdd3c8e14046b3948d82f0f3cde3c22c5) ) - ROM_LOAD ( "u112.gam", 0x020000, 0x20000, CRC(436f0283) SHA1(ec33a8942c0fc326db885e08dad9346ec5a63360) ) - ROM_LOAD ( "u113.gam", 0x040000, 0x20000, CRC(4a4b8110) SHA1(9f1881d1d2682764ab85aebd685d97eb8b4afe46) ) - - ROM_LOAD ( "u95.gam", 0x200000, 0x20000, CRC(e864a44b) SHA1(40eb8e11a183f4f82dc8decb36aaeded9cd1bc26) ) - ROM_LOAD ( "u96.gam", 0x220000, 0x20000, CRC(15555ea7) SHA1(4fefc059736ca424dc05a08cb55b9acf9e31228b) ) - ROM_LOAD ( "u97.gam", 0x240000, 0x20000, CRC(ccac9d9e) SHA1(a43d70d1a0bbd377f0fc539c2e8b725f7079f463) ) - - ROM_LOAD ( "u106.gam", 0x400000, 0x20000, CRC(5c718361) SHA1(6178b1d53411f24d5a5a01559727e300cd27d587) ) - ROM_LOAD ( "u107.gam", 0x420000, 0x20000, CRC(0fba1e36) SHA1(17038cf35a72678bba149a632f1ad1b80cc3a38c) ) - ROM_LOAD ( "u108.gam", 0x440000, 0x20000, CRC(cb0a092f) SHA1(33cbb87b4be1eadb1f3624ef5e218e65109fa3eb) ) -ROM_END - - -ROM_START( hiimpact ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "sl1u4.bin", 0x10000, 0x20000, CRC(28effd6a) SHA1(4a839f15e1b453a22fdef7b1801b8cc5cfdf3c29) ) - ROM_LOAD ( "sl1u19.bin", 0x30000, 0x20000, CRC(0ea22c89) SHA1(6d4579f6b10cac685be01348451b3537a0626034) ) - ROM_LOAD ( "sl1u20.bin", 0x50000, 0x20000, CRC(4e747ab5) SHA1(82040f40aac7dae577376a742eadaaa9644500c1) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "la4u105.bin", 0xc0000, 0x20000, CRC(5f67f823) SHA1(4171b6949682d1b2180e39d44c4e0033c4c07149) ) - ROM_LOAD16_BYTE( "la4u89.bin", 0xc0001, 0x20000, CRC(404d260b) SHA1(46bb44b3f1895d3424dba7664f198bce7dee911d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "la1u111.bin", 0x000000, 0x20000, CRC(49560560) SHA1(03d51e6019afa9a396c91a484969be4922fa4c99) ) - ROM_LOAD ( "la1u112.bin", 0x020000, 0x20000, CRC(4dd879dc) SHA1(ac4f02fcb933df38f1ebf51b109092b77563b684) ) - ROM_LOAD ( "la1u113.bin", 0x040000, 0x20000, CRC(b67aeb70) SHA1(dd1512329c46da4254712712b6f847544f4487bd) ) - ROM_LOAD ( "la1u114.bin", 0x060000, 0x20000, CRC(9a4bc44b) SHA1(309eb5214fe5e1fe64d724d515190a31fc524aae) ) - - ROM_LOAD ( "la1u95.bin", 0x200000, 0x20000, CRC(e1352dc0) SHA1(7faa2cfa9ebaf2d99b243232316221b672869703) ) - ROM_LOAD ( "la1u96.bin", 0x220000, 0x20000, CRC(197d0f34) SHA1(2d544588c3241423188ac7fb7aff87043fdd063d) ) - ROM_LOAD ( "la1u97.bin", 0x240000, 0x20000, CRC(908ea575) SHA1(79802d8df4e016d178be98333d2b1d047a27eccc) ) - ROM_LOAD ( "la1u98.bin", 0x260000, 0x20000, CRC(6dcbab11) SHA1(7432172810fd4b922b61769c68d86f24769a42cf) ) - - ROM_LOAD ( "la1u106.bin", 0x400000, 0x20000, CRC(7d0ead0d) SHA1(1e65b6e7e629021d70603df37db5fa89cfe93175) ) - ROM_LOAD ( "la1u107.bin", 0x420000, 0x20000, CRC(ef48e8fa) SHA1(538de37cd8342085ec27f67292a7eeb1007e3b1f) ) - ROM_LOAD ( "la1u108.bin", 0x440000, 0x20000, CRC(5f363e12) SHA1(da398c0204f785aad4c52007d2f25031ecc1c63f) ) - ROM_LOAD ( "la1u109.bin", 0x460000, 0x20000, CRC(3689fbbc) SHA1(d95c0a2e3abf977ba7a899e419c22d004020c560) ) - - ROM_REGION( 0x1100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ep610.u8", 0x0000, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pls153a.u40", 0x0400, 0x00eb, CRC(69e5143f) SHA1(1a1e7b3233f7d5a1c161564710e8e984a9b0a16c) ) - ROM_LOAD( "ep610.u51", 0x0500, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u52", 0x0900, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u65", 0x0d00, 0x032f, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -ROM_START( hiimpac3 ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "sl1u4.bin", 0x10000, 0x20000, CRC(28effd6a) SHA1(4a839f15e1b453a22fdef7b1801b8cc5cfdf3c29) ) - ROM_LOAD ( "sl1u19.bin", 0x30000, 0x20000, CRC(0ea22c89) SHA1(6d4579f6b10cac685be01348451b3537a0626034) ) - ROM_LOAD ( "sl1u20.bin", 0x50000, 0x20000, CRC(4e747ab5) SHA1(82040f40aac7dae577376a742eadaaa9644500c1) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "la3u105.bin", 0xc0000, 0x20000, CRC(b9190c4a) SHA1(adcf1023d62f67fbde7a7a7aeeda068d7711f7cf) ) - ROM_LOAD16_BYTE( "la3u89.bin", 0xc0001, 0x20000, CRC(1cbc72a5) SHA1(ba0b4b54453fcd1888d40690848e0ee4150bb8e1) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "la1u111.bin", 0x000000, 0x20000, CRC(49560560) SHA1(03d51e6019afa9a396c91a484969be4922fa4c99) ) - ROM_LOAD ( "la1u112.bin", 0x020000, 0x20000, CRC(4dd879dc) SHA1(ac4f02fcb933df38f1ebf51b109092b77563b684) ) - ROM_LOAD ( "la1u113.bin", 0x040000, 0x20000, CRC(b67aeb70) SHA1(dd1512329c46da4254712712b6f847544f4487bd) ) - ROM_LOAD ( "la1u114.bin", 0x060000, 0x20000, CRC(9a4bc44b) SHA1(309eb5214fe5e1fe64d724d515190a31fc524aae) ) - - ROM_LOAD ( "la1u95.bin", 0x200000, 0x20000, CRC(e1352dc0) SHA1(7faa2cfa9ebaf2d99b243232316221b672869703) ) - ROM_LOAD ( "la1u96.bin", 0x220000, 0x20000, CRC(197d0f34) SHA1(2d544588c3241423188ac7fb7aff87043fdd063d) ) - ROM_LOAD ( "la1u97.bin", 0x240000, 0x20000, CRC(908ea575) SHA1(79802d8df4e016d178be98333d2b1d047a27eccc) ) - ROM_LOAD ( "la1u98.bin", 0x260000, 0x20000, CRC(6dcbab11) SHA1(7432172810fd4b922b61769c68d86f24769a42cf) ) - - ROM_LOAD ( "la1u106.bin", 0x400000, 0x20000, CRC(7d0ead0d) SHA1(1e65b6e7e629021d70603df37db5fa89cfe93175) ) - ROM_LOAD ( "la1u107.bin", 0x420000, 0x20000, CRC(ef48e8fa) SHA1(538de37cd8342085ec27f67292a7eeb1007e3b1f) ) - ROM_LOAD ( "la1u108.bin", 0x440000, 0x20000, CRC(5f363e12) SHA1(da398c0204f785aad4c52007d2f25031ecc1c63f) ) - ROM_LOAD ( "la1u109.bin", 0x460000, 0x20000, CRC(3689fbbc) SHA1(d95c0a2e3abf977ba7a899e419c22d004020c560) ) - - ROM_REGION( 0x1100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ep610.u8", 0x0000, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pls153a.u40", 0x0400, 0x00eb, CRC(69e5143f) SHA1(1a1e7b3233f7d5a1c161564710e8e984a9b0a16c) ) - ROM_LOAD( "ep610.u51", 0x0500, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u52", 0x0900, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u65", 0x0d00, 0x032f, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -ROM_START( hiimpacp ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "sl1u4.bin", 0x10000, 0x20000, CRC(28effd6a) SHA1(4a839f15e1b453a22fdef7b1801b8cc5cfdf3c29) ) - ROM_LOAD ( "sl1u19.bin", 0x30000, 0x20000, CRC(0ea22c89) SHA1(6d4579f6b10cac685be01348451b3537a0626034) ) - ROM_LOAD ( "sl1u20.bin", 0x50000, 0x20000, CRC(4e747ab5) SHA1(82040f40aac7dae577376a742eadaaa9644500c1) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "pa1u105.bin", 0xc0000, 0x20000, CRC(79ef9a35) SHA1(200d50b108401e889b6200c53c203ee5041d1423) ) - ROM_LOAD16_BYTE( "pa1u89.bin", 0xc0001, 0x20000, CRC(2bd3de30) SHA1(ee3615c1cc5b948731eb258887641f059b942b25) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "la1u111.bin", 0x000000, 0x20000, CRC(49560560) SHA1(03d51e6019afa9a396c91a484969be4922fa4c99) ) - ROM_LOAD ( "la1u112.bin", 0x020000, 0x20000, CRC(4dd879dc) SHA1(ac4f02fcb933df38f1ebf51b109092b77563b684) ) - ROM_LOAD ( "la1u113.bin", 0x040000, 0x20000, CRC(b67aeb70) SHA1(dd1512329c46da4254712712b6f847544f4487bd) ) - ROM_LOAD ( "la1u114.bin", 0x060000, 0x20000, CRC(9a4bc44b) SHA1(309eb5214fe5e1fe64d724d515190a31fc524aae) ) - - ROM_LOAD ( "la1u95.bin", 0x200000, 0x20000, CRC(e1352dc0) SHA1(7faa2cfa9ebaf2d99b243232316221b672869703) ) - ROM_LOAD ( "la1u96.bin", 0x220000, 0x20000, CRC(197d0f34) SHA1(2d544588c3241423188ac7fb7aff87043fdd063d) ) - ROM_LOAD ( "la1u97.bin", 0x240000, 0x20000, CRC(908ea575) SHA1(79802d8df4e016d178be98333d2b1d047a27eccc) ) - ROM_LOAD ( "la1u98.bin", 0x260000, 0x20000, CRC(6dcbab11) SHA1(7432172810fd4b922b61769c68d86f24769a42cf) ) - - ROM_LOAD ( "la1u106.bin", 0x400000, 0x20000, CRC(7d0ead0d) SHA1(1e65b6e7e629021d70603df37db5fa89cfe93175) ) - ROM_LOAD ( "la1u107.bin", 0x420000, 0x20000, CRC(ef48e8fa) SHA1(538de37cd8342085ec27f67292a7eeb1007e3b1f) ) - ROM_LOAD ( "la1u108.bin", 0x440000, 0x20000, CRC(5f363e12) SHA1(da398c0204f785aad4c52007d2f25031ecc1c63f) ) - ROM_LOAD ( "la1u109.bin", 0x460000, 0x20000, CRC(3689fbbc) SHA1(d95c0a2e3abf977ba7a899e419c22d004020c560) ) - - ROM_REGION( 0x1100, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ep610.u8", 0x0000, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pls153a.u40", 0x0400, 0x00eb, CRC(69e5143f) SHA1(1a1e7b3233f7d5a1c161564710e8e984a9b0a16c) ) - ROM_LOAD( "ep610.u51", 0x0500, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u52", 0x0900, 0x032f, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "ep610.u65", 0x0d00, 0x032f, NO_DUMP ) /* PAL is read protected */ -ROM_END - - -ROM_START( shimpact ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "shiu4.bin", 0x10000, 0x20000, CRC(1e5a012c) SHA1(4077fc266799a01738b7f88e867535f1fbacd557) ) - ROM_LOAD ( "shiu19.bin", 0x30000, 0x20000, CRC(10f9684e) SHA1(1fdc5364f87fb65f4f2a438841e0fe847f765aaf) ) - ROM_LOAD ( "shiu20.bin", 0x50000, 0x20000, CRC(1b4a71c1) SHA1(74b7b4ae76ebe65f1f46b2117970bfefefbb5344) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "shiu105.bin", 0xc0000, 0x20000, CRC(f2cf8de3) SHA1(97428d05208c18a9fcf8f2e3c6ed2bf6441350c3) ) - ROM_LOAD16_BYTE( "shiu89.bin", 0xc0001, 0x20000, CRC(f97d9b01) SHA1(d5f39d6a5db23f5efd123cf9da0d09c84893b9c4) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "shiu111.bin", 0x000000, 0x40000, CRC(80ae2a86) SHA1(1ff76e3064c7636f6877e426f4a88c094d1a6325) ) - ROM_LOAD ( "shiu112.bin", 0x040000, 0x40000, CRC(3ffc27e9) SHA1(ec337629c17daaa2445fb344e08243de7f09536e) ) - ROM_LOAD ( "shiu113.bin", 0x080000, 0x40000, CRC(01549d00) SHA1(40604e949cef056f90031850bdb91782135e7ec2) ) - ROM_LOAD ( "shiu114.bin", 0x0c0000, 0x40000, CRC(a68af319) SHA1(9ed2e620a952dce26e08d0931f52eaeb638fc14d) ) - - ROM_LOAD ( "shiu95.bin", 0x200000, 0x40000, CRC(e8f56ef5) SHA1(7cb0b6bad3f0be822ef9b92e6523572e45776969) ) - ROM_LOAD ( "shiu96.bin", 0x240000, 0x40000, CRC(24ed04f9) SHA1(f4e91640713c0c376861652f3f0db33bff32656d) ) - ROM_LOAD ( "shiu97.bin", 0x280000, 0x40000, CRC(dd7f41a9) SHA1(a14a285ccc593f8f1d50b0d5574af4845a1e287e) ) - ROM_LOAD ( "shiu98.bin", 0x2c0000, 0x40000, CRC(23ef65dd) SHA1(58400c305dfad1de18b84a8c118f72529b507414) ) - - ROM_LOAD ( "shiu106.bin", 0x400000, 0x40000, CRC(6f5bf337) SHA1(5b1a0d927302c7e1727976c2d8c612a80b8f1484) ) - ROM_LOAD ( "shiu107.bin", 0x440000, 0x40000, CRC(a8815dad) SHA1(627d916a4b0ab03a943d123ca0eabd514634ad30) ) - ROM_LOAD ( "shiu108.bin", 0x480000, 0x40000, CRC(d39685a3) SHA1(84e5da34a9946b954635befd37760683850d310b) ) - ROM_LOAD ( "shiu109.bin", 0x4c0000, 0x40000, CRC(36e0b2b2) SHA1(96d76698a09cd884349bf0c4c1b75423b4404432) ) -ROM_END - - -ROM_START( shimpacp ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "shiu4.bin", 0x10000, 0x20000, CRC(1e5a012c) SHA1(4077fc266799a01738b7f88e867535f1fbacd557) ) - ROM_LOAD ( "shiu19.bin", 0x30000, 0x20000, CRC(10f9684e) SHA1(1fdc5364f87fb65f4f2a438841e0fe847f765aaf) ) - ROM_LOAD ( "shiu20.bin", 0x50000, 0x20000, CRC(1b4a71c1) SHA1(74b7b4ae76ebe65f1f46b2117970bfefefbb5344) ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "shiu105.pa5", 0xc0000, 0x20000, CRC(4342cd45) SHA1(a8e8609efbd67a957104316a0fd4824802134290) ) - ROM_LOAD16_BYTE( "shiu89.pa5", 0xc0001, 0x20000, CRC(cda47b73) SHA1(9b51f7d0cd6ffa07a5880e4cc8a855c2f7616c22) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "shiu111.bin", 0x000000, 0x40000, CRC(80ae2a86) SHA1(1ff76e3064c7636f6877e426f4a88c094d1a6325) ) - ROM_LOAD ( "shiu112.bin", 0x040000, 0x40000, CRC(3ffc27e9) SHA1(ec337629c17daaa2445fb344e08243de7f09536e) ) - ROM_LOAD ( "shiu113.bin", 0x080000, 0x40000, CRC(01549d00) SHA1(40604e949cef056f90031850bdb91782135e7ec2) ) - ROM_LOAD ( "shiu114.pa3", 0x0c0000, 0x40000, CRC(56f96a67) SHA1(070ba9c34c23b3037e91c2a7e0a85093c95def69) ) - - ROM_LOAD ( "shiu95.bin", 0x200000, 0x40000, CRC(e8f56ef5) SHA1(7cb0b6bad3f0be822ef9b92e6523572e45776969) ) - ROM_LOAD ( "shiu96.bin", 0x240000, 0x40000, CRC(24ed04f9) SHA1(f4e91640713c0c376861652f3f0db33bff32656d) ) - ROM_LOAD ( "shiu97.bin", 0x280000, 0x40000, CRC(dd7f41a9) SHA1(a14a285ccc593f8f1d50b0d5574af4845a1e287e) ) - ROM_LOAD ( "shiu98.pa3", 0x2c0000, 0x40000, CRC(28418723) SHA1(d4eef3131c82f1ecb65d6623b195c4f76010aa1b) ) - - ROM_LOAD ( "shiu106.bin", 0x400000, 0x40000, CRC(6f5bf337) SHA1(5b1a0d927302c7e1727976c2d8c612a80b8f1484) ) - ROM_LOAD ( "shiu107.bin", 0x440000, 0x40000, CRC(a8815dad) SHA1(627d916a4b0ab03a943d123ca0eabd514634ad30) ) - ROM_LOAD ( "shiu108.bin", 0x480000, 0x40000, CRC(d39685a3) SHA1(84e5da34a9946b954635befd37760683850d310b) ) - ROM_LOAD ( "shiu109.pa3", 0x4c0000, 0x40000, CRC(58f71141) SHA1(f7143bdaa7325b88e01a1d6be3aeb1d69cf0672b) ) -ROM_END - - -ROM_START( strkforc ) - ROM_REGION( 0x90000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "sfu4.bin", 0x10000, 0x10000, CRC(8f747312) SHA1(729929c209741e72eb83b407cf95d7709ec1b5ae) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD ( "sfu19.bin", 0x30000, 0x10000, CRC(afb29926) SHA1(ad904c0968a90b8187cc87d6c171fbc021d2f66f) ) - ROM_RELOAD( 0x40000, 0x10000 ) - ROM_LOAD ( "sfu20.bin", 0x50000, 0x10000, CRC(1bc9b746) SHA1(a5ad40ce7f228f30c21c5a7bdc2893c2a7fe7f58) ) - ROM_RELOAD( 0x60000, 0x10000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "sfu105.bin", 0xc0000, 0x20000, CRC(7895e0e3) SHA1(fa471af9e673a82713a590f463f87a4c59e3d5d8) ) - ROM_LOAD16_BYTE( "sfu89.bin", 0xc0001, 0x20000, CRC(26114d9e) SHA1(79906966859f0ae0884b956e7d520e3cff78fab7) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "sfu111.bin", 0x000000, 0x20000, CRC(878efc80) SHA1(94448002faff5839beab5466e5a41195869face3) ) - ROM_LOAD ( "sfu112.bin", 0x020000, 0x20000, CRC(93394399) SHA1(67ad5c27c3c82fa6055032df98c365c56c7f8b1b) ) - ROM_LOAD ( "sfu113.bin", 0x040000, 0x20000, CRC(9565a79b) SHA1(ebb90132ed8acbbed09bbcdff435cdf60a3ef8ab) ) - ROM_LOAD ( "sfu114.bin", 0x060000, 0x20000, CRC(b71152da) SHA1(784e229a5ae51776a3e984f22d1d73b2286cfc68) ) - - ROM_LOAD ( "sfu106.bin", 0x080000, 0x20000, CRC(a394d4cf) SHA1(d08c5994b08dafd233a270d24b4c851bcedf5cbe) ) - ROM_LOAD ( "sfu107.bin", 0x0a0000, 0x20000, CRC(edef1419) SHA1(cda8de55355eabf8146a243f917f6d27babe5ce3) ) - - ROM_LOAD ( "sfu95.bin", 0x200000, 0x20000, CRC(519cb2b4) SHA1(9059d2ca2705bd297c066a9470b756aecb395431) ) - ROM_LOAD ( "sfu96.bin", 0x220000, 0x20000, CRC(61214796) SHA1(bad32ef909f714289ee7cf2a5179a3b96678a72a) ) - ROM_LOAD ( "sfu97.bin", 0x240000, 0x20000, CRC(eb5dee5f) SHA1(9432140b4c983472fdc41f36390ee4db67896475) ) - ROM_LOAD ( "sfu98.bin", 0x260000, 0x20000, CRC(c5c079e7) SHA1(3cbd56db7d0eeaa6fb4f1cc8793cd1deff4e3c2c) ) - - ROM_LOAD ( "sfu90.bin", 0x280000, 0x20000, CRC(607bcdc0) SHA1(f174a549ade75df2f86142150a1e4c3554907602) ) - ROM_LOAD ( "sfu91.bin", 0x2a0000, 0x20000, CRC(da02547e) SHA1(d29c071bd9deab2414ac0733d9a18fcf8c68b4d9) ) -ROM_END - - -ROM_START( mkprot9 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkprot9.105", 0x00000, 0x80000, CRC(20772bbd) SHA1(d5b400700b91c7a70bd2441c5254300cf1f743d7) ) - ROM_LOAD16_BYTE( "mkprot9.89", 0x00001, 0x80000, CRC(3238d45b) SHA1(8a4e827994d0d20feda3785a5f8f0f77b737052b) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( mkla1 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkg-u105.la1", 0x00000, 0x80000, CRC(e1f7b4c9) SHA1(dc62e67e03b54460494bd94a50347327c19b72ec) ) - ROM_LOAD16_BYTE( "mkg-u89.la1", 0x00001, 0x80000, CRC(9d38ac75) SHA1(86ff581cd3546f6b1be75e1d0744a8d767b22f5a) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( mkla2 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkg-u105.la2", 0x00000, 0x80000, CRC(8531d44e) SHA1(652c7946cc725e11815f852af8891511b87de186) ) - ROM_LOAD16_BYTE( "mkg-u89.la2", 0x00001, 0x80000, CRC(b88dc26e) SHA1(bf34a03bdb70b67fd9c0b6d636b038a63827151e) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( mkla3 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkg-u105.la3", 0x00000, 0x80000, CRC(2ce843c5) SHA1(d48efcecd6528414249f3884edc32e0dafa9677f) ) - ROM_LOAD16_BYTE( "mkg-u89.la3", 0x00001, 0x80000, CRC(49a46e10) SHA1(c63c00531b29c01ee864acc141b1713507d25c69) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( mkla4 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "mkg-u105.la4", 0x00000, 0x80000, CRC(29af348f) SHA1(9f8a57606647c5ea056d61aa4ab1232538539fd8) ) - ROM_LOAD16_BYTE( "mkg-u89.la4", 0x00001, 0x80000, CRC(1ad76662) SHA1(bee4ab5371f58df799365e73ec0cc02e903f240c) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( mkyawdim ) - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "1.u67", 0x00000, 0x10000, CRC(b58d229e) SHA1(3ed14ef650dfa7f9d460611b19e9233a022cbea6) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD( "2.u59", 0x00000, 0x20000, CRC(a72ad81e) SHA1(7be4285b28755bd48acce670f34d6a7f043dda96) ) - ROM_CONTINUE( 0x40000, 0x20000 ) - ROM_CONTINUE( 0x80000, 0x20000 ) - ROM_CONTINUE( 0xc0000, 0x20000 ) - ROM_LOAD( "3.u60", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) ) - ROM_CONTINUE( 0x60000, 0x20000 ) - ROM_CONTINUE( 0xa0000, 0x20000 ) - ROM_CONTINUE( 0xe0000, 0x20000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "4.u25", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) ) - ROM_LOAD16_BYTE( "5.u26", 0x00001, 0x80000, CRC(7a37dc5c) SHA1(c4fc6933d8b990c5c56c65282b1f72b90b5d5435) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) ) - ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) ) - ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) ) - ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) ) - - ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) ) - ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) ) - ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) ) - ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) ) - - ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) ) - ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) ) - ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) ) - ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) ) -ROM_END - - -ROM_START( term2 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) ) - ROM_RELOAD ( 0x30000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "t2_snd.12", 0x00000, 0x40000, CRC(e192a40d) SHA1(1f7a0e282c0c8eb66cbe514128bd104433e53b7a) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "t2_snd.13", 0x80000, 0x40000, CRC(956fa80b) SHA1(02ab504627f4b25a394fa4192bb134138cbf6a4f) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "t2.105", 0x00000, 0x80000, CRC(34142b28) SHA1(985fd169b3d62c4197fe4c6f11055a6c17872899) ) - ROM_LOAD16_BYTE( "t2.89", 0x00001, 0x80000, CRC(5ffea427) SHA1(c6f65bc57b33ae1a123f610c635e0d65663e54da) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "t2.111", 0x000000, 0x80000, CRC(916d0197) SHA1(3b53d3770955b10cc6002e3d3bf0f71429667af0) ) - ROM_LOAD ( "t2.112", 0x080000, 0x80000, CRC(39ae1c87) SHA1(a9d332dffc77c1e0dc50549825f5b403cf19c41d) ) - ROM_LOAD ( "t2.113", 0x100000, 0x80000, CRC(cb5084e5) SHA1(58cab00d8ebc72792f6c29899013ae6a0d2278b9) ) - ROM_LOAD ( "t2.114", 0x180000, 0x80000, CRC(53c516ec) SHA1(2a33639bc5bb4e7f7b3e341ddb59173260461d20) ) - - ROM_LOAD ( "t2.95", 0x200000, 0x80000, CRC(dd39cf73) SHA1(53bb54e66e4dfbe58385915004b0ad57583a7543) ) - ROM_LOAD ( "t2.96", 0x280000, 0x80000, CRC(31f4fd36) SHA1(766fca7d5e5043fc9e68bd3dc15e6a7830279d88) ) - ROM_LOAD ( "t2.97", 0x300000, 0x80000, CRC(7f72e775) SHA1(7e2369c6b4ed5d653700b041df58355a0960193a) ) - ROM_LOAD ( "t2.98", 0x380000, 0x80000, CRC(1a20ce29) SHA1(9089b7f77da5d67ad46ed249d72de8b8e0e5d807) ) - - ROM_LOAD ( "t2.106", 0x400000, 0x80000, CRC(f08a9536) SHA1(fbac314bd52f23c7a704acd3c707e75cdf204c07) ) - ROM_LOAD ( "t2.107", 0x480000, 0x80000, CRC(268d4035) SHA1(89a310830be9fbc91794fcccc57053d0933c42a3) ) - ROM_LOAD ( "t2.108", 0x500000, 0x80000, CRC(379fdaed) SHA1(408df6702c8ea8d3dce0b231955c6a60f3f5f22b) ) - ROM_LOAD ( "t2.109", 0x580000, 0x80000, CRC(306a9366) SHA1(b94c23c033221f7f7fddd2911b8cec9549929768) ) -ROM_END - - -ROM_START( term2la2 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) ) - ROM_RELOAD ( 0x30000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "t2_snd.12", 0x00000, 0x40000, CRC(e192a40d) SHA1(1f7a0e282c0c8eb66cbe514128bd104433e53b7a) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "t2_snd.13", 0x80000, 0x40000, CRC(956fa80b) SHA1(02ab504627f4b25a394fa4192bb134138cbf6a4f) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "t2la2.105", 0x00000, 0x80000, CRC(7177de98) SHA1(0987be413d6cb5ded7059ad6ebbca49331b046b2) ) - ROM_LOAD16_BYTE( "t2la2.89", 0x00001, 0x80000, CRC(14d7b9f5) SHA1(b8676d21d53fd3c8492d8911e749d74df1c66b1d) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "t2.111", 0x000000, 0x80000, CRC(916d0197) SHA1(3b53d3770955b10cc6002e3d3bf0f71429667af0) ) - ROM_LOAD ( "t2.112", 0x080000, 0x80000, CRC(39ae1c87) SHA1(a9d332dffc77c1e0dc50549825f5b403cf19c41d) ) - ROM_LOAD ( "t2.113", 0x100000, 0x80000, CRC(cb5084e5) SHA1(58cab00d8ebc72792f6c29899013ae6a0d2278b9) ) - ROM_LOAD ( "t2.114", 0x180000, 0x80000, CRC(53c516ec) SHA1(2a33639bc5bb4e7f7b3e341ddb59173260461d20) ) - - ROM_LOAD ( "t2.95", 0x200000, 0x80000, CRC(dd39cf73) SHA1(53bb54e66e4dfbe58385915004b0ad57583a7543) ) - ROM_LOAD ( "t2.96", 0x280000, 0x80000, CRC(31f4fd36) SHA1(766fca7d5e5043fc9e68bd3dc15e6a7830279d88) ) - ROM_LOAD ( "t2.97", 0x300000, 0x80000, CRC(7f72e775) SHA1(7e2369c6b4ed5d653700b041df58355a0960193a) ) - ROM_LOAD ( "t2.98", 0x380000, 0x80000, CRC(1a20ce29) SHA1(9089b7f77da5d67ad46ed249d72de8b8e0e5d807) ) - - ROM_LOAD ( "t2.106", 0x400000, 0x80000, CRC(f08a9536) SHA1(fbac314bd52f23c7a704acd3c707e75cdf204c07) ) - ROM_LOAD ( "t2.107", 0x480000, 0x80000, CRC(268d4035) SHA1(89a310830be9fbc91794fcccc57053d0933c42a3) ) - ROM_LOAD ( "t2.108", 0x500000, 0x80000, CRC(379fdaed) SHA1(408df6702c8ea8d3dce0b231955c6a60f3f5f22b) ) - ROM_LOAD ( "t2.109", 0x580000, 0x80000, CRC(306a9366) SHA1(b94c23c033221f7f7fddd2911b8cec9549929768) ) -ROM_END - - -ROM_START( term2la1 ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) ) - ROM_RELOAD ( 0x30000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "t2_snd.12", 0x00000, 0x40000, CRC(e192a40d) SHA1(1f7a0e282c0c8eb66cbe514128bd104433e53b7a) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "t2_snd.13", 0x80000, 0x40000, CRC(956fa80b) SHA1(02ab504627f4b25a394fa4192bb134138cbf6a4f) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "t2la1.105", 0x00000, 0x80000, CRC(ca52a8b0) SHA1(20b91bdd9fe8e7be6a3c3cb9684769733d66d401) ) - ROM_LOAD16_BYTE( "t2la1.89", 0x00001, 0x80000, CRC(08535210) SHA1(a7986541bc504294bd6523ce691e19e496f8be7c) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "t2.111", 0x000000, 0x80000, CRC(916d0197) SHA1(3b53d3770955b10cc6002e3d3bf0f71429667af0) ) - ROM_LOAD ( "t2.112", 0x080000, 0x80000, CRC(39ae1c87) SHA1(a9d332dffc77c1e0dc50549825f5b403cf19c41d) ) - ROM_LOAD ( "t2.113", 0x100000, 0x80000, CRC(cb5084e5) SHA1(58cab00d8ebc72792f6c29899013ae6a0d2278b9) ) - ROM_LOAD ( "t2.114", 0x180000, 0x80000, CRC(53c516ec) SHA1(2a33639bc5bb4e7f7b3e341ddb59173260461d20) ) - - ROM_LOAD ( "t2.95", 0x200000, 0x80000, CRC(dd39cf73) SHA1(53bb54e66e4dfbe58385915004b0ad57583a7543) ) - ROM_LOAD ( "t2.96", 0x280000, 0x80000, CRC(31f4fd36) SHA1(766fca7d5e5043fc9e68bd3dc15e6a7830279d88) ) - ROM_LOAD ( "t2.97", 0x300000, 0x80000, CRC(7f72e775) SHA1(7e2369c6b4ed5d653700b041df58355a0960193a) ) - ROM_LOAD ( "t2.98", 0x380000, 0x80000, CRC(1a20ce29) SHA1(9089b7f77da5d67ad46ed249d72de8b8e0e5d807) ) - - ROM_LOAD ( "t2.106", 0x400000, 0x80000, CRC(f08a9536) SHA1(fbac314bd52f23c7a704acd3c707e75cdf204c07) ) - ROM_LOAD ( "t2.107", 0x480000, 0x80000, CRC(268d4035) SHA1(89a310830be9fbc91794fcccc57053d0933c42a3) ) - ROM_LOAD ( "t2.108", 0x500000, 0x80000, CRC(379fdaed) SHA1(408df6702c8ea8d3dce0b231955c6a60f3f5f22b) ) - ROM_LOAD ( "t2.109", 0x580000, 0x80000, CRC(306a9366) SHA1(b94c23c033221f7f7fddd2911b8cec9549929768) ) -ROM_END - - -ROM_START( totcarn ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "tcu3.bin", 0x10000, 0x20000, CRC(5bdb4665) SHA1(c6b90b914785b8703790957cc4bb4983a332fba6) ) - ROM_RELOAD ( 0x30000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "tcu12.bin", 0x00000, 0x40000, CRC(d0000ac7) SHA1(2d476c7727462623feb2f1a23fb797eaeed5ce30) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "tcu13.bin", 0x80000, 0x40000, CRC(e48e6f0c) SHA1(bf7d548b6b1901966f99c815129ea160ef36f024) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "tcu105.bin", 0x80000, 0x40000, CRC(7c651047) SHA1(530c8b4e453778a81479d02913ffe7097903447f) ) - ROM_LOAD16_BYTE( "tcu89.bin", 0x80001, 0x40000, CRC(6761daf3) SHA1(8be881ecc5ea1121bb6cee1a34901a4d5e50dbb6) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "tcu111.bin", 0x000000, 0x40000, CRC(13f3f231) SHA1(6df0dca72e170818c260d9931477103a38864a1e) ) - ROM_LOAD ( "tcu112.bin", 0x040000, 0x40000, CRC(72e45007) SHA1(b6f5dfb844b6ff46a3594d20e85f1f20bdbfb793) ) - ROM_LOAD ( "tcu113.bin", 0x080000, 0x40000, CRC(2c8ec753) SHA1(9393179ea19cbec7ac7e4f8e912bb4f86d93e8bd) ) - ROM_LOAD ( "tcu114.bin", 0x0c0000, 0x40000, CRC(6210c36c) SHA1(607acdf024c1d36238ed19841c3ef2c96f49038f) ) - - ROM_LOAD ( "tcu95.bin", 0x200000, 0x40000, CRC(579caeba) SHA1(de7d9921a210839e1db4bf54fb96833bcb073862) ) - ROM_LOAD ( "tcu96.bin", 0x240000, 0x40000, CRC(f43f1ffe) SHA1(60401092be1fed52a028dc81b7a28ade923c35ea) ) - ROM_LOAD ( "tcu97.bin", 0x280000, 0x40000, CRC(1675e50d) SHA1(1479712b03fa2b67fcd2d4694f26ce1bd1959b97) ) - ROM_LOAD ( "tcu98.bin", 0x2c0000, 0x40000, CRC(ab06c885) SHA1(09163060269fed2ebd697b71602166e906c95317) ) - - ROM_LOAD ( "tcu106.bin", 0x400000, 0x40000, CRC(146e3863) SHA1(1933e62a060eb667889b1edd5002c30a37ae00a7) ) - ROM_LOAD ( "tcu107.bin", 0x440000, 0x40000, CRC(95323320) SHA1(5296206f3d84c21374968ffcacfe59eb3215ca46) ) - ROM_LOAD ( "tcu108.bin", 0x480000, 0x40000, CRC(ed152acc) SHA1(372dbc4fdb581ac00a7eb5669cc1ac7afd6033f8) ) - ROM_LOAD ( "tcu109.bin", 0x4c0000, 0x40000, CRC(80715252) SHA1(4586a259780963837ce362b526f161122d2e3cb4) ) -ROM_END - - -ROM_START( totcarnp ) - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD ( "tcu3.bin", 0x10000, 0x20000, CRC(5bdb4665) SHA1(c6b90b914785b8703790957cc4bb4983a332fba6) ) - ROM_RELOAD ( 0x30000, 0x20000 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM */ - ROM_LOAD ( "tcu12.bin", 0x00000, 0x40000, CRC(d0000ac7) SHA1(2d476c7727462623feb2f1a23fb797eaeed5ce30) ) - ROM_RELOAD( 0x40000, 0x40000 ) - ROM_LOAD ( "tcu13.bin", 0x80000, 0x40000, CRC(e48e6f0c) SHA1(bf7d548b6b1901966f99c815129ea160ef36f024) ) - ROM_RELOAD( 0xc0000, 0x40000 ) - - ROM_REGION16_LE( 0x100000, REGION_USER1, 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "u105", 0x80000, 0x40000, CRC(7a782cae) SHA1(806894e23876325fffcad4d707c850fbd91d973a) ) - ROM_LOAD16_BYTE( "u89", 0x80001, 0x40000, CRC(1c899a8d) SHA1(953d4def814f036969b9ecf3be16e145c2d2bf9f) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "tcu111.bin", 0x000000, 0x40000, CRC(13f3f231) SHA1(6df0dca72e170818c260d9931477103a38864a1e) ) - ROM_LOAD ( "tcu112.bin", 0x040000, 0x40000, CRC(72e45007) SHA1(b6f5dfb844b6ff46a3594d20e85f1f20bdbfb793) ) - ROM_LOAD ( "tcu113.bin", 0x080000, 0x40000, CRC(2c8ec753) SHA1(9393179ea19cbec7ac7e4f8e912bb4f86d93e8bd) ) - ROM_LOAD ( "tcu114.bin", 0x0c0000, 0x40000, CRC(6210c36c) SHA1(607acdf024c1d36238ed19841c3ef2c96f49038f) ) - - ROM_LOAD ( "tcu95.bin", 0x200000, 0x40000, CRC(579caeba) SHA1(de7d9921a210839e1db4bf54fb96833bcb073862) ) - ROM_LOAD ( "tcu96.bin", 0x240000, 0x40000, CRC(f43f1ffe) SHA1(60401092be1fed52a028dc81b7a28ade923c35ea) ) - ROM_LOAD ( "tcu97.bin", 0x280000, 0x40000, CRC(1675e50d) SHA1(1479712b03fa2b67fcd2d4694f26ce1bd1959b97) ) - ROM_LOAD ( "tcu98.bin", 0x2c0000, 0x40000, CRC(ab06c885) SHA1(09163060269fed2ebd697b71602166e906c95317) ) - - ROM_LOAD ( "tcu106.bin", 0x400000, 0x40000, CRC(146e3863) SHA1(1933e62a060eb667889b1edd5002c30a37ae00a7) ) - ROM_LOAD ( "tcu107.bin", 0x440000, 0x40000, CRC(95323320) SHA1(5296206f3d84c21374968ffcacfe59eb3215ca46) ) - ROM_LOAD ( "tcu108.bin", 0x480000, 0x40000, CRC(ed152acc) SHA1(372dbc4fdb581ac00a7eb5669cc1ac7afd6033f8) ) - ROM_LOAD ( "tcu109.bin", 0x4c0000, 0x40000, CRC(80715252) SHA1(4586a259780963837ce362b526f161122d2e3cb4) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1988, narc, 0, zunit, narc, narc, ROT0, "Williams", "Narc (rev 7.00)", 0 ) -GAME( 1988, narc3, narc, zunit, narc, narc, ROT0, "Williams", "Narc (rev 3.20)", 0 ) - -GAME( 1990, trog, 0, trog, trog, trog, ROT0, "Midway", "Trog (rev LA4 03/11/91)", 0 ) -GAME( 1990, trog3, trog, trog, trog, trog, ROT0, "Midway", "Trog (rev LA3 02/14/91)", 0 ) -GAME( 1990, trogpa6, trog, trog, trog, trog, ROT0, "Midway", "Trog (rev PA6-PAC 09/09/90)", 0 ) -GAME( 1990, trogp, trog, trog, trog, trog, ROT0, "Midway", "Trog (prototype, rev 4.00 07/27/90)", 0 ) -GAME( 1991, strkforc, 0, strkforc, strkforc,strkforc, ROT0, "Midway", "Strike Force (rev 1 02/25/91)", 0 ) - -GAME( 1990, smashtv, 0, smashtv, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 8.00)", 0 ) -GAME( 1990, smashtv6, smashtv, smashtv, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 6.00)", 0 ) -GAME( 1990, smashtv5, smashtv, smashtv, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 5.00)", 0 ) -GAME( 1990, smashtv4, smashtv, smashtv, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 4.00)", 0 ) -GAME( 1990, hiimpact, 0, hiimpact, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA4 02/04/91)", 0 ) -GAME( 1990, hiimpac3, hiimpact,hiimpact, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA3 12/27/90)", 0 ) -GAME( 1990, hiimpacp, hiimpact,hiimpact, trog, hiimpact, ROT0, "Williams", "High Impact Football (prototype, rev 8.6 12/09/90)", 0 ) -GAME( 1991, shimpact, 0, hiimpact, trog, shimpact, ROT0, "Midway", "Super High Impact (rev LA1 09/30/91)", GAME_NOT_WORKING ) -GAME( 1991, shimpacp, shimpact,hiimpact, trog, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 5.0 09/15/91)", GAME_NOT_WORKING ) - -GAME( 1991, term2, 0, term2, term2, term2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", 0 ) -GAME( 1991, term2la2, term2, term2, term2, term2la2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", 0 ) -GAME( 1991, term2la1, term2, term2, term2, term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", 0 ) -GAME( 1992, mkprot9, mk, mk, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", 0 ) -GAME( 1992, mkla1, mk, mk, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", 0 ) -GAME( 1992, mkla2, mk, mk, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", 0 ) -GAME( 1992, mkla3, mk, mk, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", 0 ) -GAME( 1992, mkla4, mk, mk, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", 0 ) -GAME( 1992, mkyawdim, mk, mkyawdim, mkla4, mkyawdim, ROT0, "Midway", "Mortal Kombat (Yawdim bootleg)", 0 ) -GAME( 1992, totcarn, 0, totcarn, totcarn, totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", 0 ) -GAME( 1992, totcarnp, totcarn, totcarn, totcarn, totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", 0 ) diff --git a/src/drivers/model1.c b/src/drivers/model1.c deleted file mode 100644 index 64a1ca8c2..000000000 --- a/src/drivers/model1.c +++ /dev/null @@ -1,878 +0,0 @@ -/* -** V60 + 68k + 4xTGP -*/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "system16.h" -#include "vidhrdw/segaic24.h" -#include "cpu/m68000/m68k.h" -#include "sound/multipcm.h" -#include "sound/2612intf.h" - -WRITE16_HANDLER( model1_paletteram_w ); -VIDEO_START(model1); -VIDEO_UPDATE(model1); -VIDEO_EOF(model1); -extern UINT16 *model1_display_list0, *model1_display_list1; -extern UINT16 *model1_color_xlat; -READ16_HANDLER( model1_listctl_r ); -WRITE16_HANDLER( model1_listctl_w ); - -READ16_HANDLER( model1_tgp_copro_r ); -WRITE16_HANDLER( model1_tgp_copro_w ); -READ16_HANDLER( model1_tgp_copro_adr_r ); -WRITE16_HANDLER( model1_tgp_copro_adr_w ); -READ16_HANDLER( model1_tgp_copro_ram_r ); -WRITE16_HANDLER( model1_tgp_copro_ram_w ); - -static int model1_sound_irq; - -#define FIFO_SIZE (8) -static int to_68k[FIFO_SIZE], fifo_wptr, fifo_rptr; - -void model1_tgp_reset(int swa); - -static READ16_HANDLER( io_r ) -{ - if(offset < 0x8) - return readinputport(offset); - if(offset < 0x10) { - offset -= 0x8; - if(offset < 3) - return readinputport(offset+8) | 0xff00; - return 0xff; - } - - logerror("IOR: %02x\n", offset); - return 0xffff; -} - -static READ16_HANDLER( fifoin_status_r ) -{ - return 0xffff; -} - -static WRITE16_HANDLER( bank_w ) -{ - if(ACCESSING_LSB) { - switch(data & 0xf) { - case 0x1: // 100000-1fffff data roms banking - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x1000000 + 0x100000*((data >> 4) & 0xf)); - logerror("BANK %x\n", 0x1000000 + 0x100000*((data >> 4) & 0xf)); - break; - case 0x2: // 200000-2fffff data roms banking (unused, all known games have only one bank) - break; - case 0xf: // f00000-ffffff program roms banking (unused, all known games have only one bank) - break; - } - } -} - - -static int last_irq; - -static void irq_raise(int level) -{ - // logerror("irq: raising %d\n", level); - // irq_status |= (1 << level); - last_irq = level; - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static int irq_callback(int irqline) -{ - return last_irq; -} -// vf -// 1 = fe3ed4 -// 3 = fe3f5c -// other = fe3ec8 / fe3ebc - -// vr -// 1 = fe02bc -// other = f302a4 / fe02b0 - -// swa -// 1 = ff504 -// 3 = ff54c -// other = ff568/ff574 - -static void irq_init(void) -{ - cpunum_set_input_line(0, 0, CLEAR_LINE); - cpunum_set_irq_callback(0, irq_callback); -} - -extern void tgp_tick(void); -static INTERRUPT_GEN(model1_interrupt) -{ - if (cpu_getiloops()) - { - irq_raise(1); - tgp_tick(); - } - else - { - irq_raise(model1_sound_irq); - - // if the FIFO has something in it, signal the 68k too - if (fifo_rptr != fifo_wptr) - { - cpunum_set_input_line(1, 2, HOLD_LINE); - } - } -} - -static MACHINE_RESET(model1) -{ - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x1000000); - irq_init(); - model1_tgp_reset(!strcmp(Machine->gamedrv->name, "swa") || !strcmp(Machine->gamedrv->name, "wingwar") || !strcmp(Machine->gamedrv->name, "wingwara")); - if (!strcmp(Machine->gamedrv->name, "swa")) - { - model1_sound_irq = 0; - } - else - { - model1_sound_irq = 3; - } - - // init the sound FIFO - fifo_rptr = fifo_wptr = 0; - memset(to_68k, 0, sizeof(to_68k)); -} - -static READ16_HANDLER( network_ctl_r ) -{ - if(offset) - return 0x40; - else - return 0x00; -} - -static WRITE16_HANDLER( network_ctl_w ) -{ -} - -static WRITE16_HANDLER(md1_w) -{ - extern int model1_dump; - COMBINE_DATA(model1_display_list1+offset); - if(0 && offset) - return; - if(1 && model1_dump) - logerror("TGP: md1_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, activecpu_get_pc()); -} - -static WRITE16_HANDLER(md0_w) -{ - extern int model1_dump; - COMBINE_DATA(model1_display_list0+offset); - if(0 && offset) - return; - if(1 && model1_dump) - logerror("TGP: md0_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, activecpu_get_pc()); -} - -static WRITE16_HANDLER(p_w) -{ - UINT16 old = paletteram16[offset]; - paletteram16_xBBBBBGGGGGRRRRR_word_w(offset, data, mem_mask); - if(0 && paletteram16[offset] != old) - logerror("XVIDEO: p_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, activecpu_get_pc()); -} - -static UINT16 *mr; -static WRITE16_HANDLER(mr_w) -{ - COMBINE_DATA(mr+offset); - if(0 && offset == 0x1138/2) - logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x500000, data, mem_mask, activecpu_get_pc()); -} - -static UINT16 *mr2; -static WRITE16_HANDLER(mr2_w) -{ - COMBINE_DATA(mr2+offset); -#if 0 - if(0 && offset == 0x6e8/2) { - logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x400000, data, mem_mask, activecpu_get_pc()); - } - if(offset/2 == 0x3680/4) - logerror("MW f80[r25], %04x%04x (%x)\n", mr2[0x3680/2+1], mr2[0x3680/2], activecpu_get_pc()); - if(offset/2 == 0x06ca/4) - logerror("MW fca[r19], %04x%04x (%x)\n", mr2[0x06ca/2+1], mr2[0x06ca/2], activecpu_get_pc()); - if(offset/2 == 0x1eca/4) - logerror("MW fca[r22], %04x%04x (%x)\n", mr2[0x1eca/2+1], mr2[0x1eca/2], activecpu_get_pc()); -#endif - - // wingwar scene position, pc=e1ce -> d735 - if(offset/2 == 0x1f08/4) - logerror("MW 8[r10], %f (%x)\n", *(float *)(mr2+0x1f08/2), activecpu_get_pc()); - if(offset/2 == 0x1f0c/4) - logerror("MW c[r10], %f (%x)\n", *(float *)(mr2+0x1f0c/2), activecpu_get_pc()); - if(offset/2 == 0x1f10/4) - logerror("MW 10[r10], %f (%x)\n", *(float *)(mr2+0x1f10/2), activecpu_get_pc()); -} - -static READ16_HANDLER( snd_68k_ready_r ) -{ - int sr = cpunum_get_reg(1, M68K_REG_SR); - - if ((sr & 0x0700) > 0x0100) - { - cpu_spinuntil_time(TIME_IN_USEC(40)); - return 0; // not ready yet, interrupts disabled - } - - return 0xff; -} - -static WRITE16_HANDLER( snd_latch_to_68k_w ) -{ - to_68k[fifo_wptr] = data; - fifo_wptr++; - if (fifo_wptr >= FIFO_SIZE) fifo_wptr = 0; - - // signal the 68000 that there's data waiting - cpunum_set_input_line(1, 2, HOLD_LINE); - // give the 68k time to reply - cpu_spinuntil_time(TIME_IN_USEC(40)); -} - -static ADDRESS_MAP_START( model1_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK(1) - AM_RANGE(0x200000, 0x2fffff) AM_ROM - - AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(MRA16_RAM, mr2_w) AM_BASE(&mr2) - AM_RANGE(0x500000, 0x53ffff) AM_READWRITE(MRA16_RAM, mr_w) AM_BASE(&mr) - - AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(MRA16_RAM, md0_w) AM_BASE(&model1_display_list0) - AM_RANGE(0x610000, 0x61ffff) AM_READWRITE(MRA16_RAM, md1_w) AM_BASE(&model1_display_list1) - AM_RANGE(0x680000, 0x680003) AM_READWRITE(model1_listctl_r, model1_listctl_w) - - AM_RANGE(0x700000, 0x70ffff) AM_READWRITE(sys24_tile_r, sys24_tile_w) - AM_RANGE(0x720000, 0x720001) AM_WRITENOP // Unknown, always 0 - AM_RANGE(0x740000, 0x740001) AM_WRITENOP // Horizontal synchronization register - AM_RANGE(0x760000, 0x760001) AM_WRITENOP // Vertical synchronization register - AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch - AM_RANGE(0x780000, 0x7fffff) AM_READWRITE(sys24_char_r, sys24_char_w) - - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(MRA16_RAM, p_w) AM_BASE(&paletteram16) - AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_BASE(&model1_color_xlat) - - AM_RANGE(0xc00000, 0xc0003f) AM_READ(io_r) AM_WRITENOP - - AM_RANGE(0xc00040, 0xc00043) AM_READWRITE(network_ctl_r, network_ctl_w) - - AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) - - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(snd_latch_to_68k_w) - AM_RANGE(0xc40002, 0xc40003) AM_READ(snd_68k_ready_r) - - AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(model1_tgp_copro_adr_r, model1_tgp_copro_adr_w) - AM_RANGE(0xd20000, 0xd20003) AM_WRITE(model1_tgp_copro_ram_w ) - AM_RANGE(0xd80000, 0xd80003) AM_WRITE(model1_tgp_copro_w) AM_MIRROR(0x10) - AM_RANGE(0xdc0000, 0xdc0003) AM_READ(fifoin_status_r) - - AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // Watchdog? IRQ ack? Always 0x20, usually on irq - AM_RANGE(0xe00004, 0xe00005) AM_WRITE(bank_w) - AM_RANGE(0xe0000c, 0xe0000f) AM_WRITENOP - - AM_RANGE(0xfc0000, 0xffffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( model1_io, ADDRESS_SPACE_IO, 16 ) - AM_RANGE(0xd20000, 0xd20003) AM_READ(model1_tgp_copro_ram_r) - AM_RANGE(0xd80000, 0xd80003) AM_READ(model1_tgp_copro_r) -ADDRESS_MAP_END - -static READ16_HANDLER( m1_snd_68k_latch_r ) -{ - UINT16 retval; - - retval = to_68k[fifo_rptr]; - - fifo_rptr++; - if (fifo_rptr >= FIFO_SIZE) fifo_rptr = 0; - - return retval; -} - -static READ16_HANDLER( m1_snd_v60_ready_r ) -{ - return 1; -} - -static READ16_HANDLER( m1_snd_mpcm0_r ) -{ - return MultiPCM_reg_0_r(0); -} - -static WRITE16_HANDLER( m1_snd_mpcm0_w ) -{ - MultiPCM_reg_0_w(offset, data); -} - -static WRITE16_HANDLER( m1_snd_mpcm0_bnk_w ) -{ - multipcm_set_bank(0, 0x100000 * (data & 3), 0x100000 * (data & 3)); -} - -static READ16_HANDLER( m1_snd_mpcm1_r ) -{ - return MultiPCM_reg_1_r(0); -} - -static WRITE16_HANDLER( m1_snd_mpcm1_w ) -{ - MultiPCM_reg_1_w(offset, data); -} - -static WRITE16_HANDLER( m1_snd_mpcm1_bnk_w ) -{ - multipcm_set_bank(1, 0x100000 * (data & 3), 0x100000 * (data & 3)); -} - -static READ16_HANDLER( m1_snd_ym_r ) -{ - return YM3438_status_port_0_A_r(0); -} - -static WRITE16_HANDLER( m1_snd_ym_w ) -{ - switch (offset) - { - case 0: - YM3438_control_port_0_A_w(0, data); - break; - - case 1: - YM3438_data_port_0_A_w(0, data); - break; - - case 2: - YM3438_control_port_0_B_w(0, data); - break; - - case 3: - YM3438_data_port_0_B_w(0, data); - break; - } -} - -static WRITE16_HANDLER( m1_snd_68k_latch1_w ) -{ -} - -static WRITE16_HANDLER( m1_snd_68k_latch2_w ) -{ -} - -static ADDRESS_MAP_START( model1_snd, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_ROM - AM_RANGE(0xc20000, 0xc20001) AM_READWRITE( m1_snd_68k_latch_r, m1_snd_68k_latch1_w ) - AM_RANGE(0xc20002, 0xc20003) AM_READWRITE( m1_snd_v60_ready_r, m1_snd_68k_latch2_w ) - AM_RANGE(0xc40000, 0xc40007) AM_READWRITE( m1_snd_mpcm0_r, m1_snd_mpcm0_w ) - AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP - AM_RANGE(0xc50000, 0xc50001) AM_WRITE( m1_snd_mpcm0_bnk_w ) - AM_RANGE(0xc60000, 0xc60007) AM_READWRITE( m1_snd_mpcm1_r, m1_snd_mpcm1_w ) - AM_RANGE(0xc70000, 0xc70001) AM_WRITE( m1_snd_mpcm1_bnk_w ) - AM_RANGE(0xd00000, 0xd00007) AM_READWRITE( m1_snd_ym_r, m1_snd_ym_w ) - AM_RANGE(0xf00000, 0xf0ffff) AM_RAM -ADDRESS_MAP_END - -static struct MultiPCM_interface m1_multipcm_interface_1 = -{ - REGION_SOUND1 -}; - -static struct MultiPCM_interface m1_multipcm_interface_2 = -{ - REGION_SOUND2 -}; - -INPUT_PORTS_START( vf ) - PORT_START_TAG("AN0") /* Unused analog port 0 */ - PORT_START_TAG("AN1") /* Unused analog port 1 */ - PORT_START_TAG("AN2") /* Unused analog port 2 */ - PORT_START_TAG("AN3") /* Unused analog port 3 */ - PORT_START_TAG("AN4") /* Unused analog port 4 */ - PORT_START_TAG("AN5") /* Unused analog port 5 */ - PORT_START_TAG("AN6") /* Unused analog port 6 */ - PORT_START_TAG("AN7") /* Unused analog port 7 */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( vr ) - PORT_START_TAG("AN0") /* Steering */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(3) - - PORT_START_TAG("AN1") /* Accel / Decel */ - PORT_BIT( 0xff, 0x30, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) - - PORT_START_TAG("AN2") /* Brake */ - PORT_BIT( 0xff, 0x30, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_PLAYER(2) - - PORT_START_TAG("AN3") /* Unused analog port 3 */ - PORT_START_TAG("AN4") /* Unused analog port 4 */ - PORT_START_TAG("AN5") /* Unused analog port 5 */ - PORT_START_TAG("AN6") /* Unused analog port 6 */ - PORT_START_TAG("AN7") /* Unused analog port 7 */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( wingwar ) - PORT_START_TAG("AN0") /* X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) - - PORT_START_TAG("AN1") /* Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("AN2") /* Throttle */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) - - PORT_START_TAG("AN3") /* Unused analog port 3 */ - PORT_START_TAG("AN4") /* Unused analog port 4 */ - PORT_START_TAG("AN5") /* Unused analog port 5 */ - PORT_START_TAG("AN6") /* Unused analog port 6 */ - PORT_START_TAG("AN7") /* Unused analog port 7 */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( swa ) - PORT_START_TAG("AN0") /* X */ - PORT_BIT( 0xff, 127, IPT_AD_STICK_X ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("AN1") /* Y */ - PORT_BIT( 0xff, 127, IPT_AD_STICK_Y ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("AN2") /* Throttle */ - PORT_BIT( 0xff, 228, IPT_PEDAL ) PORT_MINMAX(28,228) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_REVERSE - - PORT_START_TAG("AN3") /* Unused analog port 3 */ - - PORT_START_TAG("AN4") /* X */ - PORT_BIT( 0xff, 127, IPT_AD_STICK_X ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("AN5") /* Y */ - PORT_BIT( 0xff, 127, IPT_AD_STICK_Y ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) - - PORT_START_TAG("AN6") /* Unused analog port 6 */ - PORT_START_TAG("AN7") /* Unused analog port 7 */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -ROM_START( vf ) - ROM_REGION( 0x1400000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr-16082.14", 0x200000, 0x80000, CRC(b23f22ee) SHA1(9fd5b5a5974703a60a54de3d2bce4301bfc0e533) ) - ROM_LOAD16_BYTE( "epr-16083.15", 0x200001, 0x80000, CRC(d12c77f8) SHA1(b4aeba8d5f1ab4aec024391407a2cb58ce2e94b0) ) - - ROM_LOAD( "epr-16080.4", 0xfc0000, 0x20000, CRC(3662E1A5) SHA1(6bfceb1a7c1c7912679c907f2b7516ae9c7dda67) ) - ROM_LOAD( "epr-16081.5", 0xfe0000, 0x20000, CRC(6DEC06CE) SHA1(7891544456bccd2fc647bccd058945ad50466636) ) - - ROM_LOAD16_BYTE( "mpr-16084.6", 0x1000000, 0x80000, CRC(483f453b) SHA1(41a5527be73f5dd1c87b2a8113235bdd247ec049) ) - ROM_LOAD16_BYTE( "mpr-16085.7", 0x1000001, 0x80000, CRC(5fa01277) SHA1(dfa7ddff0a7daf29071431f26b93dd8e8e5793b6) ) - ROM_LOAD16_BYTE( "mpr-16086.8", 0x1100000, 0x80000, CRC(deac47a1) SHA1(3a8016124e4dc579d4aae745d4af1905ad0e4fbd) ) - ROM_LOAD16_BYTE( "mpr-16087.9", 0x1100001, 0x80000, CRC(7a64daac) SHA1(da6a9cad4b0cb2af4299e664c0889f3fbdc25530) ) - ROM_LOAD16_BYTE( "mpr-16088.10", 0x1200000, 0x80000, CRC(fcda2d1e) SHA1(0f7d0f604d429a1da0d1c3f31694520bada49680) ) - ROM_LOAD16_BYTE( "mpr-16089.11", 0x1200001, 0x80000, CRC(39befbe0) SHA1(362c493092cd0536fadee7326ecc7f973e23fb58) ) - ROM_LOAD16_BYTE( "mpr-16090.12", 0x1300000, 0x80000, CRC(90c76831) SHA1(5a3c25f2a131cfbb2ad067bef1ab7b1c95645d41) ) - ROM_LOAD16_BYTE( "mpr-16091.13", 0x1300001, 0x80000, CRC(53115448) SHA1(af798d5b1fcb720d7288a5ac48839d9ace16a2f2) ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP( "epr-16120.7", 0x00000, 0x20000, CRC(2bff8378) SHA1(854b08ab983e4e98cb666f2f44de9a6829b1eb52) ) - ROM_LOAD16_WORD_SWAP( "epr-16121.8", 0x20000, 0x20000, CRC(ff6723f9) SHA1(53498b8c103745883657dfd6efe27edfd48b356f) ) - ROM_RELOAD( 0x80000, 0x20000) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mpr-16122.32", 0x000000, 0x200000, CRC(568bc64e) SHA1(31fd0ef8319efe258011b4621adebb790b620770) ) - ROM_LOAD( "mpr-16123.33", 0x200000, 0x200000, CRC(15d78844) SHA1(37c17e38604cf7004a951408024941cd06b1d93e) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "mpr-16124.4", 0x000000, 0x200000, CRC(45520ba1) SHA1(c33e3c12639961016e5fa6b5025d0a67dff28907) ) - ROM_LOAD( "mpr-16125.5", 0x200000, 0x200000, CRC(9b4998b6) SHA1(0418d9b0acf79f35d0f7575c21f1be9a0ea343da) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-16096.26", 0x000000, 0x200000, CRC(a92b0bf3) SHA1(fd3adff5f41f0b0be98df548c848eda04fc0da48) ) - ROM_LOAD32_WORD( "mpr-16097.27", 0x000002, 0x200000, CRC(0232955a) SHA1(df934fb6d022032620932571ff5ed176d5dcb017) ) - ROM_LOAD32_WORD( "mpr-16098.28", 0x400000, 0x200000, CRC(cf2e1b84) SHA1(f3d16c72344f7f218a792ce7f1dd7cad910a8c97) ) - ROM_LOAD32_WORD( "mpr-16099.29", 0x400002, 0x200000, CRC(20e46854) SHA1(423d3642bd2f14e68d29029c027b791de2c1ec53) ) - ROM_LOAD32_WORD( "mpr-16100.30", 0x800000, 0x200000, CRC(e13e983d) SHA1(120637caa2404ad4124b676fd6fcd721f30948df) ) - ROM_LOAD32_WORD( "mpr-16101.31", 0x800002, 0x200000, CRC(0dbed94d) SHA1(df1cddcc1d3976816bd786c2d6211a8563f6f690) ) - ROM_LOAD32_WORD( "mpr-16102.32", 0xc00000, 0x200000, CRC(4cb41fb6) SHA1(4a07bfad4f221508de8c931861424dcc5be3f46a) ) - ROM_LOAD32_WORD( "mpr-16103.33", 0xc00002, 0x200000, CRC(526d1c76) SHA1(edc8dafc9261cd0e970c3b50e3c1ca51a32a4cdf) ) -ROM_END - -ROM_START( vr ) - ROM_REGION( 0x1400000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr-14882.14", 0x200000, 0x80000, CRC(547D75AD) SHA1(a57c11966886c37de1d7df131ad60457669231dd) ) - ROM_LOAD16_BYTE( "epr-14883.15", 0x200001, 0x80000, CRC(6BFAD8B1) SHA1(c1f780e456b405abd42d92f4e03e40aad88f8c22) ) - - ROM_LOAD( "epr-14878a.4", 0xfc0000, 0x20000, CRC(6D69E695) SHA1(12d3612d3dfd474b8020cdfb8ffc5dcc64e2e1a3) ) - ROM_LOAD( "epr-14879a.5", 0xfe0000, 0x20000, CRC(D45AF9DD) SHA1(48f2bf940c78e3ae4273a56e9f32371d870e41e0) ) - - ROM_LOAD16_BYTE( "mpr-14880.6", 0x1000000, 0x80000, CRC(ADC7C208) SHA1(967b6f522011f17fd2821ccbe20bcb6d4680a4a0) ) - ROM_LOAD16_BYTE( "mpr-14881.7", 0x1000001, 0x80000, CRC(E5AB89DF) SHA1(873dea86628457e69f732158e3efb05d133eaa44) ) - ROM_LOAD16_BYTE( "mpr-14884.8", 0x1100000, 0x80000, CRC(6CF9C026) SHA1(f4d717958dba6b6402f5ffe7638fe0bf353b61ed) ) - ROM_LOAD16_BYTE( "mpr-14885.9", 0x1100001, 0x80000, CRC(F65C9262) SHA1(511a22bcfaf199737bfc5a809fd66cb4439dd386) ) - ROM_LOAD16_BYTE( "mpr-14886.10", 0x1200000, 0x80000, CRC(92868734) SHA1(e1dfb134dc3ba7e0b1d40681621e09ac5a222518) ) - ROM_LOAD16_BYTE( "mpr-14887.11", 0x1200001, 0x80000, CRC(10C7C636) SHA1(c77d55460bba4354349e473e129f21afeed05e91) ) - ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04BFDC5B) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) ) - ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(C49F0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) ) - ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) ) - ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) ) - ROM_LOAD32_WORD( "mpr-14893.29", 0x400002, 0x200000, CRC(1c531ada) SHA1(8b373ac97a3649c64f48eb3d1dd95c5833f330b6) ) - ROM_LOAD32_WORD( "mpr-14894.30", 0x800000, 0x200000, CRC(830a71bc) SHA1(884378e8a5afeb819daf5285d0d205986d566340) ) - ROM_LOAD32_WORD( "mpr-14895.31", 0x800002, 0x200000, CRC(af027ac5) SHA1(523f03d90358ddb7d0e96fd06b9a65cebfc09f24) ) - ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) ) - ROM_LOAD32_WORD( "mpr-14879.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) ) - - ROM_REGION32_LE( 0x200000, REGION_USER2, 0 ) /* TGP data roms */ - ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) ) - ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) ) - ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) ) - ROM_LOAD32_BYTE( "mpr-14901.42", 0x000003, 0x80000, CRC(175b7a9a) SHA1(c86602e771cd49bab425b4ba7926d2f44858bd39) ) -ROM_END - -ROM_START( vformula ) - ROM_REGION( 0x1400000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr15638.14", 0x200000, 0x80000, CRC(b9db21a2) SHA1(db58c047977f5fc37f278afe7159a78e3fa6c015) ) - ROM_LOAD16_BYTE( "epr15639.15", 0x200001, 0x80000, CRC(4c3796f5) SHA1(1bf312a4999a15fbc5d194627f9c0ad9dbc1f2c0) ) - - ROM_LOAD( "epr15623.4", 0xfc0000, 0x20000, CRC(155fa5be) SHA1(a0a3fd8980c52279adbc1c64aa22e42a0b196dd9) ) - ROM_LOAD( "epr15622.5", 0xfe0000, 0x20000, CRC(18007f6f) SHA1(61573742627ec027abd2cc700e79f04da5215bfd) ) - - ROM_LOAD16_BYTE( "epr15641.6", 0x1000000, 0x80000, CRC(bf01e4d5) SHA1(53ad9ecd2de2ea1d7b446f9db61352e10a55ea05) ) - ROM_LOAD16_BYTE( "epr15640.7", 0x1000001, 0x80000, CRC(3e6d83dc) SHA1(62aa552a38ee193e0dfab5d1261756fe237db42c) ) - ROM_LOAD16_BYTE( "mpr-14884.8", 0x1100000, 0x80000, CRC(6CF9C026) SHA1(f4d717958dba6b6402f5ffe7638fe0bf353b61ed) ) - ROM_LOAD16_BYTE( "mpr-14885.9", 0x1100001, 0x80000, CRC(F65C9262) SHA1(511a22bcfaf199737bfc5a809fd66cb4439dd386) ) - ROM_LOAD16_BYTE( "mpr-14886.10", 0x1200000, 0x80000, CRC(92868734) SHA1(e1dfb134dc3ba7e0b1d40681621e09ac5a222518) ) - ROM_LOAD16_BYTE( "mpr-14887.11", 0x1200001, 0x80000, CRC(10C7C636) SHA1(c77d55460bba4354349e473e129f21afeed05e91) ) - ROM_LOAD16_BYTE( "mpr-14888.12", 0x1300000, 0x80000, CRC(04BFDC5B) SHA1(bb8788a761620d0440a62ae51c3b41f70a04b5e4) ) - ROM_LOAD16_BYTE( "mpr-14889.13", 0x1300001, 0x80000, CRC(C49F0486) SHA1(cc2bb9059c016ba2c4f6e7508bd1687df07b8b48) ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP( "epr-14870a.7", 0x00000, 0x20000, CRC(919d9b75) SHA1(27be79881cc9a2b5cf37e18f1e2d87251426b428) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mpr-14873.32", 0x000000, 0x200000, CRC(b1965190) SHA1(fc47e9ed4a44d48477bd9a35e42c26508c0f4a0c) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "mpr-14876.4", 0x000000, 0x200000, CRC(ba6b2327) SHA1(02285520624a4e612cb4b65510e3458b13b1c6ba) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-14890.26", 0x000000, 0x200000, CRC(dcbe006b) SHA1(195be7fabec405ca1b4e1338d3b8d7bb4a06dd73) ) - ROM_LOAD32_WORD( "mpr-14891.27", 0x000002, 0x200000, CRC(25832b38) SHA1(a8d74538149c92bae661334e327b031eaca2a8f2) ) - ROM_LOAD32_WORD( "mpr-14892.28", 0x400000, 0x200000, CRC(5136f3ba) SHA1(ce8312975764db09bbfa2068b99559a5c1798a36) ) - ROM_LOAD32_WORD( "mpr-14893.29", 0x400002, 0x200000, CRC(1c531ada) SHA1(8b373ac97a3649c64f48eb3d1dd95c5833f330b6) ) - ROM_LOAD32_WORD( "mpr-14894.30", 0x800000, 0x200000, CRC(830a71bc) SHA1(884378e8a5afeb819daf5285d0d205986d566340) ) - ROM_LOAD32_WORD( "mpr-14895.31", 0x800002, 0x200000, CRC(af027ac5) SHA1(523f03d90358ddb7d0e96fd06b9a65cebfc09f24) ) - ROM_LOAD32_WORD( "mpr-14896.32", 0xc00000, 0x200000, CRC(382091dc) SHA1(efa266f0f6bfe36ad1c365e588fff33b01e166dd) ) - ROM_LOAD32_WORD( "mpr-14879.33", 0xc00002, 0x200000, CRC(74873195) SHA1(80705ec577d14570f9bba77cc26766f831c41f42) ) - - ROM_REGION32_LE( 0x200000, REGION_USER2, 0 ) /* TGP data roms */ - ROM_LOAD32_BYTE( "mpr-14898.39", 0x000000, 0x80000, CRC(61da2bb6) SHA1(7a12ba522d64a1aeec1ca6f5a87ee063692131f9) ) - ROM_LOAD32_BYTE( "mpr-14899.40", 0x000001, 0x80000, CRC(2cd58bee) SHA1(73defec823de4244a387af55fea7210edc1b314f) ) - ROM_LOAD32_BYTE( "mpr-14900.41", 0x000002, 0x80000, CRC(aa7c017d) SHA1(0fa2b59a8bb5f5907b2b2567e69d11c73b398dc1) ) - ROM_LOAD32_BYTE( "mpr-14901.42", 0x000003, 0x80000, CRC(175b7a9a) SHA1(c86602e771cd49bab425b4ba7926d2f44858bd39) ) - - ROM_REGION( 0x20000, REGION_USER3, 0 ) /* Comms Board */ - ROM_LOAD( "epr15624.17", 0x00000, 0x20000, CRC(9b3ba315) SHA1(0cd0983cc8b2f2d6b41617d0d0a24cc6c188e62a) ) -ROM_END - - -ROM_START( swa ) - ROM_REGION( 0x1000000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr-16468.14", 0x200000, 0x80000, CRC(681d03c0) SHA1(4d21e26ce211466d429b84bca69a8147ff31ec6c) ) - ROM_LOAD16_BYTE( "epr-16469.15", 0x200001, 0x80000, CRC(6f281f7c) SHA1(6a9179e48d14838bb2a1a3f63fdd3a68ed009e03) ) - - ROM_LOAD( "epr-16467.5", 0xf80000, 0x80000, CRC(605068f5) SHA1(99d7e171ce3353477c282d7567dedb9947206f14) ) - ROM_RELOAD( 0x000000, 0x80000 ) - ROM_RELOAD( 0x080000, 0x80000 ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP( "epr16470.bin", 0x000000, 0x020000, CRC(7da18cf7) SHA1(bd432d882d217277faee120e2577357a32eb4a6e) ) - ROM_RELOAD(0x80000, 0x20000) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mpr16486.bin", 0x000000, 0x200000, CRC(7df50533) SHA1(f2fb876738e37d70eb9005e5629a9ae89aa413a8) ) - ROM_LOAD( "mpr16487.bin", 0x200000, 0x200000, CRC(31b28dfa) SHA1(bd1ac11bf2f9161f61f8af3b9ff4c2709b7ee700) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "mpr16484.bin", 0x000000, 0x200000, CRC(9d4c334d) SHA1(8b4d903f14559fed425d225bb23ccfe8da23cbd3) ) - ROM_LOAD( "mpr16485.bin", 0x200000, 0x200000, CRC(95aadcad) SHA1(4276db655db9834692c3843eb96a3e3a89cb7252) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 DSB code */ - ROM_LOAD( "epr16471.bin", 0x000000, 0x020000, CRC(f4ee84a4) SHA1(f12b214e6f195b0e5f49ba9f41d8e54bfcea9acc) ) - - ROM_REGION( 0x400000, REGION_SOUND3, 0 ) /* DSB MPEG data */ - ROM_LOAD( "mpr16514.bin", 0x000000, 0x200000, CRC(3175b0be) SHA1(63649d053c8c17ce1746d16d0cc8202be20c302f) ) - ROM_LOAD( "mpr16515.bin", 0x000000, 0x200000, CRC(3114d748) SHA1(9ef090623cdd2a1d06b5d1bc4b9a07ab4eff5b76) ) - - ROM_REGION32_LE( 0xc00000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-16476.26", 0x000000, 0x200000, CRC(d48609ae) SHA1(8c8686a5c9ca4837447a7f70ed194e2f1882b66d) ) -// original dump (which one is right?) -// ROM_LOAD32_WORD( "mpr-16477.27", 0x000002, 0x200000, CRC(b979b082) SHA1(0c60d259093e987f3856730b57b43bde7e9562e3) ) -// new dump - ROM_LOAD32_WORD( "mpr16477.bin", 0x000002, 0x200000, CRC(971ff194) SHA1(9665ede3ca22885489f1f1b5865ccfac42364206) ) - ROM_LOAD32_WORD( "mpr-16478.28", 0x400000, 0x200000, CRC(80c780f7) SHA1(2f57c5373b02765d302bcd81e24f7b7bc4181387) ) - ROM_LOAD32_WORD( "mpr-16479.29", 0x400002, 0x200000, CRC(e43183b3) SHA1(4e62c67cdf7a6fdac0ded86d5f9e81044b9dea8d) ) - ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) ) - ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) ) - - ROM_REGION32_LE( 0x200000, REGION_USER2, 0 ) /* TGP data roms */ - ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) ) - ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) ) - ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) ) - ROM_LOAD32_BYTE( "mpr-16475.42", 0x000003, 0x80000, CRC(b9266be9) SHA1(cf195cd89c9d191b9eb8c5299f8cc154c2b4bd82) ) -ROM_END - -ROM_START( wingwar ) - ROM_REGION( 0x1300000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) ) - ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) ) - - ROM_LOAD( "epr-16951.4", 0xfc0000, 0x20000, CRC(8df5a798) SHA1(ef2756f237933ecf429dab0f362e572eb1965f4d) ) - ROM_RELOAD( 0x000000, 0x20000 ) - ROM_LOAD( "epr-16950.5", 0xfe0000, 0x20000, CRC(841e2195) SHA1(66f465aaf71955496e6f83335f7b836ad1d8c724) ) - ROM_RELOAD( 0x020000, 0x20000 ) - - ROM_LOAD16_BYTE( "mpr-16738.6", 0x1000000, 0x80000, CRC(51518ffa) SHA1(e4674ddfed4205957b14e133c6fdf6454872f324) ) - ROM_LOAD16_BYTE( "mpr-16737.7", 0x1000001, 0x80000, CRC(37b1379c) SHA1(98620c324268e1dd906c077ac8a8cd903b9de1f7) ) - ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) ) - ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) ) - ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) ) - ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP("epr-16751.7", 0x000000, 0x20000, CRC(23ba5ebc) SHA1(b98aab546c5e980baeedbada4e7472eb4c588260) ) - ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) ) - ROM_RELOAD(0x80000, 0x20000) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) ) - ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) ) - ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) ) - ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) ) - ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) ) - ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) ) - ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) ) - ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) ) - ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) ) - ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) ) - - ROM_REGION32_LE( 0x200000, REGION_USER2, 0 ) /* TGP data roms */ - ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) ) - ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) ) - ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) ) - ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) ) -ROM_END - -ROM_START( wingwara ) - ROM_REGION( 0x1300000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD16_BYTE( "epr-16729.14", 0x200000, 0x80000, CRC(7edec2cc) SHA1(3e423a868ca7c8475fbb5bc1a10526e69d94d865) ) - ROM_LOAD16_BYTE( "epr-16730.15", 0x200001, 0x80000, CRC(bab24dee) SHA1(26c95139c1aa7f34b6a5cce39e5bd1dd2ef0dd49) ) - - ROM_LOAD( "epr16953.bin", 0xfc0000, 0x20000, CRC(c821a920) SHA1(7fc9ea5d828aac664514fa6d38f708f1ffd26220) ) - ROM_RELOAD( 0x000000, 0x20000 ) - ROM_LOAD( "epr16952.bin", 0xfe0000, 0x20000, CRC(03a3ecc5) SHA1(5c4aa221302b0a0800e1af99a41ab46fe4325184) ) - ROM_RELOAD( 0x020000, 0x20000 ) - - ROM_LOAD16_BYTE( "mpr-16738.6", 0x1000000, 0x80000, CRC(51518ffa) SHA1(e4674ddfed4205957b14e133c6fdf6454872f324) ) - ROM_LOAD16_BYTE( "mpr-16737.7", 0x1000001, 0x80000, CRC(37b1379c) SHA1(98620c324268e1dd906c077ac8a8cd903b9de1f7) ) - ROM_LOAD16_BYTE( "mpr-16736.8", 0x1100000, 0x80000, CRC(10b6a025) SHA1(7a4f624ceb7c0b92044a5db8ff55440562ef836b) ) - ROM_LOAD16_BYTE( "mpr-16735.9", 0x1100001, 0x80000, CRC(c82fd198) SHA1(d9e53ae1e14dfc8e84a14c0026ef0b904863bb1b) ) - ROM_LOAD16_BYTE( "mpr-16734.10", 0x1200000, 0x80000, CRC(f76371c1) SHA1(0ff082db3877383d0dd977dc60c932b725e3d164) ) - ROM_LOAD16_BYTE( "mpr-16733.11", 0x1200001, 0x80000, CRC(e105847b) SHA1(8489a6c91fd6d1e9ba81e8eaf36c514da30dccbe) ) - - ROM_REGION( 0xc0000, REGION_CPU2, 0 ) /* 68K code */ - ROM_LOAD16_WORD_SWAP("epr17126.bin",0x000000, 0x20000, CRC(50178e40) SHA1(fb01aecfbe4e90adc997de0d45a63c16ef353b37) ) - ROM_LOAD16_WORD_SWAP("epr-16752.8", 0x020000, 0x20000, CRC(6541c48f) SHA1(9341eff160e31a8574b9545fafc1c4059323fa0c) ) - ROM_RELOAD(0x80000, 0x20000) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD("mpr-16753.32", 0x000000, 0x200000, CRC(324a8333) SHA1(960342e08db637c6f72615d49cffd9fb0889620b) ) - ROM_LOAD("mpr-16754.33", 0x200000, 0x200000, CRC(144f3cf5) SHA1(d2f8cc9086affbbc5ef2195272200230f724e5d1) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD("mpr-16755.4", 0x000000, 0x200000, CRC(4baaf878) SHA1(661d4ea9be6a4952852d0ef94becee7ed42bf4a1) ) - ROM_LOAD("mpr-16756.5", 0x200000, 0x200000, CRC(d9c40672) SHA1(83e6f1156b30888d3a00103f079dc74f4fca8446) ) - - ROM_REGION32_LE( 0x1000000, REGION_USER1, 0 ) /* TGP model roms */ - ROM_LOAD32_WORD( "mpr-16743.26", 0x000000, 0x200000, CRC(a710d33c) SHA1(1d0184545b34789ed511caaa25d57db3cd9a8e2f) ) - ROM_LOAD32_WORD( "mpr-16744.27", 0x000002, 0x200000, CRC(de796e1f) SHA1(397efb86a21b178770f29d2464bacf5f893619a0) ) - ROM_LOAD32_WORD( "mpr-16745.28", 0x400000, 0x200000, CRC(905b689c) SHA1(685dec2a65d5b3a386bda0af1bb5ae7e2b73a01a) ) - ROM_LOAD32_WORD( "mpr-16746.29", 0x400002, 0x200000, CRC(163b312e) SHA1(6b45007d6a9d17c8a0b46d81ec84ce9bfefb1695) ) - ROM_LOAD32_WORD( "mpr-16747.30", 0x800000, 0x200000, CRC(7353bb12) SHA1(608c5d561e909b8ba31d53db18e6e199855eaaec) ) - ROM_LOAD32_WORD( "mpr-16748.31", 0x800002, 0x200000, CRC(8ce98d3a) SHA1(1978776a0e2ea817508e30ba232d5f8d9c158f70) ) - ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) ) - ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) ) - - ROM_REGION32_LE( 0x200000, REGION_USER2, 0 ) /* TGP data roms */ - ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) ) - ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) ) - ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) ) - ROM_LOAD32_BYTE( "mpr-16740.42", 0x000003, 0x80000, CRC(44b31007) SHA1(4bb265fea25a7bbcbb8ab080fdcf09849b18f1de) ) -ROM_END - -static MACHINE_DRIVER_START( model1 ) - MDRV_CPU_ADD(V60, 16000000) - MDRV_CPU_PROGRAM_MAP(model1_mem, 0) - MDRV_CPU_IO_MAP(model1_io, 0) - MDRV_CPU_VBLANK_INT(model1_interrupt, 2) - - MDRV_CPU_ADD(M68000, 10000000) // verified on real h/w - MDRV_CPU_PROGRAM_MAP(model1_snd, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(model1) - MDRV_NVRAM_HANDLER(generic_0fill) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(model1) - MDRV_VIDEO_UPDATE(model1) - MDRV_VIDEO_EOF(model1) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3438, 8000000) - MDRV_SOUND_ROUTE(0, "left", 0.60) - MDRV_SOUND_ROUTE(1, "right", 0.60) - - MDRV_SOUND_ADD(MULTIPCM, 8000000) - MDRV_SOUND_CONFIG(m1_multipcm_interface_1) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(MULTIPCM, 8000000) - MDRV_SOUND_CONFIG(m1_multipcm_interface_2) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -GAME( 1993, vf, 0, model1, vf, 0, ROT0, "Sega", "Virtua Fighter", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, vr, 0, model1, vr, 0, ROT0, "Sega", "Virtua Racing", GAME_NOT_WORKING ) -GAME( 1993, vformula, vr, model1, vr, 0, ROT0, "Sega", "Virtua Formula", GAME_NOT_WORKING ) -GAME( 1993, swa, 0, model1, swa, 0, ROT0, "Sega", "Star Wars Arcade", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) -GAME( 1994, wingwar, 0, model1, wingwar, 0, ROT0, "Sega", "Wing War (US)", GAME_NOT_WORKING ) -GAME( 1994, wingwara, wingwar, model1, wingwar, 0, ROT0, "Sega", "Wing War", GAME_NOT_WORKING ) diff --git a/src/drivers/model2.c b/src/drivers/model2.c deleted file mode 100644 index 557b49aaf..000000000 --- a/src/drivers/model2.c +++ /dev/null @@ -1,3758 +0,0 @@ -/* - Sega Model 2: i960KB + (5x TGP) or (2x SHARC) or (2x TGPx4) - System 24 tilemaps - Custom Sega/Lockheed-Martin rasterization hardware - (68000 + YM3834 + 2x MultiPCM) or (68000 + SCSP) - - Hardware and protection reverse-engineering and general assistance by ElSemi. - MAME driver by R. Belmont, Olivier Galibert, and ElSemi. - - OK (controls may be wrong/missing/incomplete) - -- - daytona/daytonat/daytonam - desert - vcop - vf2 - vcop2 - zerogun - gunblade - indy500 - bel - hotd - topskatr - von - fvipers - schamp - stcc - srallyc - skytargt - dynamcop - dynabb - lastbrnj/lastbrnx - pltkids/pltkidsa - skisuprg - - almost OK - --------- - sgt24h: hangs on network test. You can set it to non-linked in test but it still hangs on the network test. - overrev: bad network test like sgt24h. - vstriker: shows some attract mode, then hangs - manxtt: no escape from "active motion slider" tutorial (needs analog inputs) - doaa: shows parade of 'ANIME' errors - - - TODO - ---- - Controls are pretty basic right now - Sound doesn't work properly in all games - System 24 tilemaps need more advanced linescroll support (see fvipers, daytona) - DSP cores + hookups -*/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "vidhrdw/segaic24.h" -#include "cpu/i960/i960.h" -#include "cpu/m68000/m68k.h" -#include "cpu/sharc/sharc.h" -#include "sound/scsp.h" -#include "sound/multipcm.h" -#include "sound/2612intf.h" - -extern VIDEO_START(model2); -extern VIDEO_UPDATE(model2); - -UINT32 *model2_bufferram, *model2_colorxlat, *model2_workram, *model2_backup1, *model2_backup2; -UINT32 *model2_textureram0, *model2_textureram1, *model2_lumaram; -static UINT32 model2_intreq; -static UINT32 model2_intena; -static UINT32 model2_coproctl, model2_coprocnt, model2_geoctl, model2_geocnt; - -static UINT32 model2_timervals[4], model2_timerorig[4]; -static int model2_timerrun[4]; -static void *model2_timers[4]; -static int model2_ctrlmode; - - - -#define COPRO_FIFOIN_SIZE 32000 -static int copro_fifoin_rpos, copro_fifoin_wpos; -static UINT32 copro_fifoin_data[COPRO_FIFOIN_SIZE]; -static int copro_fifoin_num = 0; -static UINT32 copro_fifoin_pop(void) -{ - UINT32 r; - //if (copro_fifoin_wpos == copro_fifoin_rpos) - if (copro_fifoin_num == 0) - { - fatalerror("Copro FIFOIN underflow (at %08X)", activecpu_get_pc()); - return 0; - } - r = copro_fifoin_data[copro_fifoin_rpos++]; - - if (copro_fifoin_rpos == COPRO_FIFOIN_SIZE) - { - copro_fifoin_rpos = 0; - } - - copro_fifoin_num--; - if (copro_fifoin_num == 0) - { - cpuintrf_push_context(2); - sharc_set_flag_input(0, ASSERT_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG0, ASSERT_LINE); - } - else - { - cpuintrf_push_context(2); - sharc_set_flag_input(0, CLEAR_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG0, CLEAR_LINE); - } - - return r; -} - -static void copro_fifoin_push(UINT32 data) -{ - //if (copro_fifoin_wpos == copro_fifoin_rpos) - if (copro_fifoin_num == COPRO_FIFOIN_SIZE) - { - fatalerror("Copro FIFOIN overflow (at %08X)", activecpu_get_pc()); - return; - } - - //mame_printf_debug("COPRO FIFOIN at %08X, %08X, %f\n", activecpu_get_pc(), data, *(float*)&data); - - copro_fifoin_data[copro_fifoin_wpos++] = data; - if (copro_fifoin_wpos == COPRO_FIFOIN_SIZE) - { - copro_fifoin_wpos = 0; - } - - - copro_fifoin_num++; - // clear FIFO empty flag on SHARC - cpuintrf_push_context(2); - sharc_set_flag_input(0, CLEAR_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG0, CLEAR_LINE); -} - - -#define COPRO_FIFOOUT_SIZE 32000 -static int copro_fifoout_rpos, copro_fifoout_wpos; -static UINT32 copro_fifoout_data[COPRO_FIFOOUT_SIZE]; -static int copro_fifoout_num = 0; -static UINT32 copro_fifoout_pop(void) -{ - UINT32 r; - //if (copro_fifoout_wpos == copro_fifoout_rpos) - if (copro_fifoout_num == 0) - { - // Reading from empty FIFO causes the i960 to enter wait state - i960_stall(); - return 0; - } - r = copro_fifoout_data[copro_fifoout_rpos++]; - - if (copro_fifoout_rpos == COPRO_FIFOOUT_SIZE) - { - copro_fifoout_rpos = 0; - } - copro_fifoout_num--; - - // set SHARC flag 1: 0 if space available, 1 if FIFO full - if (copro_fifoout_num == COPRO_FIFOOUT_SIZE) - { - cpuintrf_push_context(2); - sharc_set_flag_input(1, ASSERT_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG1, ASSERT_LINE); - } - else - { - cpuintrf_push_context(2); - sharc_set_flag_input(1, CLEAR_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG1, CLEAR_LINE); - } - - return r; -} - -static void copro_fifoout_push(UINT32 data) -{ - //if (copro_fifoout_wpos == copro_fifoout_rpos) - if (copro_fifoout_num == COPRO_FIFOOUT_SIZE) - { - fatalerror("Copro FIFOOUT overflow (at %08X)", activecpu_get_pc()); - return; - } - - //mame_printf_debug("COPRO FIFOOUT %08X, %f\n", data, *(float*)&data); - - copro_fifoout_data[copro_fifoout_wpos++] = data; - if (copro_fifoout_wpos == COPRO_FIFOOUT_SIZE) - { - copro_fifoout_wpos = 0; - } - - copro_fifoout_num++; - - // set SHARC flag 1: 0 if space available, 1 if FIFO full - if (copro_fifoout_num == COPRO_FIFOOUT_SIZE) - { - cpuintrf_push_context(2); - sharc_set_flag_input(1, ASSERT_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG1, ASSERT_LINE); - } - else - { - cpuintrf_push_context(2); - sharc_set_flag_input(1, CLEAR_LINE); - cpuintrf_pop_context(); - - //cpunum_set_input_line(2, SHARC_INPUT_FLAG1, CLEAR_LINE); - } -} - - - -static NVRAM_HANDLER( model2 ) -{ - nvram_handler_93C46(machine, file, read_or_write); - - if (read_or_write) - { - mame_fwrite(file, model2_backup1, 0x3fff); - if (model2_backup2) - mame_fwrite(file, model2_backup2, 0xff); - } - else - { - if (file) - { - mame_fread(file, model2_backup1, 0x3fff); - if (model2_backup2) - mame_fread(file, model2_backup2, 0xff); - } - } -} - -/* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */ -static READ32_HANDLER( timers_r ) -{ - i960_noburst(); - - // if timer is running, calculate current value - if (model2_timerrun[offset]) - { - double cur; - - // get elapsed time - cur = timer_timeelapsed(model2_timers[offset]); - - // convert to units of 25 MHz - cur /= (1.0 / 25000000.0); - - // subtract units from starting value - model2_timervals[offset] = model2_timerorig[offset] - cur; - } - - return model2_timervals[offset]; -} - -static WRITE32_HANDLER( timers_w ) -{ - double time; - - i960_noburst(); - COMBINE_DATA(&model2_timervals[offset]); - - model2_timerorig[offset] = model2_timervals[offset]; - time = 25000000.0 / (double)model2_timerorig[offset]; - timer_adjust(model2_timers[offset], TIME_IN_HZ(time), 0, 0); - model2_timerrun[offset] = 1; -} - -static void model2_timer_exp(int tnum, int bit) -{ - timer_adjust(model2_timers[tnum], TIME_NEVER, 0, 0); - - model2_intreq |= (1<> 0),pal5bit(data >> 5),pal5bit(data >> 10)); -} - -static WRITE32_HANDLER(pal32_w) -{ - COMBINE_DATA(paletteram32+offset); - if(ACCESSING_LSW32) - chcolor(offset*2, paletteram32[offset]); - if(ACCESSING_MSW32) - chcolor(offset*2+1, paletteram32[offset]>>16); -} - -static WRITE32_HANDLER(ctrl0_w) -{ - if(!(mem_mask & 0x000000ff)) { - model2_ctrlmode = data & 0x01; - EEPROM_write_bit(data & 0x20); - EEPROM_set_clock_line((data & 0x80) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE); - } -} - -static READ32_HANDLER(ctrl0_r) -{ - UINT32 ret = readinputport(0); - ret <<= 16; - if(model2_ctrlmode==0) - { - return ret; - } - else - { - ret &= ~0x00300000; - return ret | 0x00100000 | (EEPROM_read_bit() << 21); - } -} -static READ32_HANDLER(ctrl1_r) -{ - return readinputport(1) | readinputport(2)<<16; -} - -static READ32_HANDLER(ctrl10_r) -{ - return readinputport(0) | readinputport(1)<<16; -} - -static READ32_HANDLER(ctrl14_r) -{ - return readinputport(2); -} - -static READ32_HANDLER(analog_r) -{ - if (offset) - return readinputport(5); - - return readinputport(3) | readinputport(4)<<16; -} - -static READ32_HANDLER(fifoctl_r) -{ - UINT32 r = 0; - - if (copro_fifoout_num == 0) - { - r |= 1; - } - - // #### 1 if fifo empty, zerogun needs | 0x04 set - return r | 0x04; -} - -static READ32_HANDLER(videoctl_r) -{ - return (cpu_getcurrentframe() & 1)<<2; -} - - - - -/*****************************************************************************/ -/* COPRO */ - -static READ32_HANDLER(copro_prg_r) -{ - if ((strcmp(Machine->gamedrv->name, "manxtt" ) == 0) || (strcmp(Machine->gamedrv->name, "srallyc" ) == 0)) - { - return 8; - } - - return 0xffffffff; -} - -static WRITE32_HANDLER(copro_prg_w) -{ - if (model2_coproctl & 0x80000000) - { - logerror("copro_prg_w: %08X: %08X\n", model2_coprocnt, data); - model2_coprocnt++; - } - else - { - //mame_printf_debug("COPRO: push %08X\n", data); - } -} - -static WRITE32_HANDLER( copro_ctl1_w ) -{ - // did hi bit change? - if ((data ^ model2_coproctl) == 0x80000000) - { - if (data & 0x80000000) - { - logerror("Start copro upload\n"); - model2_coprocnt = 0; - } - else - { - logerror("Boot copro, %d dwords\n", model2_coprocnt); - } - } - - model2_coproctl = data; -} - -static WRITE32_HANDLER( copro_sharc_ctl1_w ) -{ - // did hi bit change? - if ((data ^ model2_coproctl) == 0x80000000) - { - if (data & 0x80000000) - { - logerror("Start copro upload\n"); - model2_coprocnt = 0; - } - else - { - logerror("Boot copro, %d dwords\n", model2_coprocnt); - cpunum_set_input_line(2, INPUT_LINE_HALT, CLEAR_LINE); - //cpu_spinuntil_time(TIME_IN_USEC(1000)); // Give the SHARC enough time to boot itself - } - } - - model2_coproctl = data; -} - -static WRITE32_HANDLER(copro_function_port_w) -{ - UINT32 d = data & 0x800fffff; - UINT32 a = (offset >> 2) & 0xff; - d |= a << 23; - - //logerror("copro_function_port_w: %08X, %08X, %08X\n", data, offset, mem_mask); - copro_fifoin_push(d); -} - -static READ32_HANDLER(copro_sharc_fifo_r) -{ - if ((strcmp(Machine->gamedrv->name, "manxtt" ) == 0) || (strcmp(Machine->gamedrv->name, "srallyc" ) == 0)) - { - return 8; - } - else - { - //logerror("copro_fifo_r: %08X, %08X\n", offset, mem_mask); - return copro_fifoout_pop(); - } -} - -static WRITE32_HANDLER(copro_sharc_fifo_w) -{ - if (model2_coproctl & 0x80000000) - { - cpuintrf_push_context(2); - sharc_external_dma_write(model2_coprocnt, data & 0xffff); - cpuintrf_pop_context(); - - model2_coprocnt++; - } - else - { - //mame_printf_debug("copro_fifo_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, activecpu_get_pc()); - copro_fifoin_push(data); - } -} - -static int iop_write_num = 0; -static UINT32 iop_data = 0; -static WRITE32_HANDLER(copro_sharc_iop_w) -{ - if ((strcmp(Machine->gamedrv->name, "schamp" ) == 0) || - (strcmp(Machine->gamedrv->name, "fvipers" ) == 0) || - (strcmp(Machine->gamedrv->name, "vstriker" ) == 0) || - (strcmp(Machine->gamedrv->name, "gunblade" ) == 0)) - { - cpuintrf_push_context(2); - sharc_external_iop_write(offset, data); - cpuintrf_pop_context(); - } - else - { - if ((iop_write_num & 1) == 0) - { - iop_data = data & 0xffff; - } - else - { - iop_data |= (data & 0xffff) << 16; - cpuintrf_push_context(2); - sharc_external_iop_write(offset, iop_data); - cpuintrf_pop_context(); - } - iop_write_num++; - } -} - - - - - -/*****************************************************************************/ -/* GEO */ - -UINT32 geo_read_start_address = 0; -UINT32 geo_write_start_address = 0; - -static WRITE32_HANDLER( geo_ctl1_w ) -{ - // did hi bit change? - if ((data ^ model2_geoctl) == 0x80000000) - { - if (data & 0x80000000) - { - logerror("Start geo upload\n"); - model2_geocnt = 0; - } - else - { - logerror("Boot geo, %d dwords\n", model2_geocnt); - } - } - - model2_geoctl = data; -} - - -/* -static WRITE32_HANDLER( geo_sharc_ctl1_w ) -{ - // did hi bit change? - if ((data ^ model2_geoctl) == 0x80000000) - { - if (data & 0x80000000) - { - logerror("Start geo upload\n"); - model2_geocnt = 0; - } - else - { - logerror("Boot geo, %d dwords\n", model2_geocnt); - cpunum_set_input_line(3, INPUT_LINE_HALT, CLEAR_LINE); - //cpu_spinuntil_time(TIME_IN_USEC(1000)); // Give the SHARC enough time to boot itself - } - } - - model2_geoctl = data; -} - -static READ32_HANDLER(geo_sharc_fifo_r) -{ - if ((strcmp(Machine->gamedrv->name, "manxtt" ) == 0) || (strcmp(Machine->gamedrv->name, "srallyc" ) == 0)) - { - return 8; - } - else - { - //logerror("copro_fifo_r: %08X, %08X\n", offset, mem_mask); - return 0; - } -} - -static WRITE32_HANDLER(geo_sharc_fifo_w) -{ - if (model2_geoctl & 0x80000000) - { - cpuintrf_push_context(3); - sharc_external_dma_write(model2_geocnt, data & 0xffff); - cpuintrf_pop_context(); - - model2_geocnt++; - } - else - { - //mame_printf_debug("copro_fifo_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, activecpu_get_pc()); - } -} - -static int geo_iop_write_num = 0; -static UINT32 geo_iop_data = 0; -static WRITE32_HANDLER(geo_sharc_iop_w) -{ - if ((strcmp(Machine->gamedrv->name, "schamp" ) == 0)) - { - cpuintrf_push_context(3); - sharc_external_iop_write(offset, data); - cpuintrf_pop_context(); - } - else - { - if ((geo_iop_write_num & 1) == 0) - { - geo_iop_data = data & 0xffff; - } - else - { - geo_iop_data |= (data & 0xffff) << 16; - cpuintrf_push_context(3); - sharc_external_iop_write(offset, geo_iop_data); - cpuintrf_pop_context(); - } - geo_iop_write_num++; - } -} -*/ - - -static void push_geo_data(UINT32 data) -{ - //mame_printf_debug("push_geo_data: %08X: %08X\n", 0x900000+geo_write_start_address, data); - model2_bufferram[geo_write_start_address/4] = data; - geo_write_start_address += 4; -} - -static READ32_HANDLER(geo_prg_r) -{ - return 0xffffffff; -} - -static WRITE32_HANDLER(geo_prg_w) -{ - if (model2_geoctl & 0x80000000) - { - //logerror("geo_prg_w: %08X: %08X\n", model2_geocnt, data); - model2_geocnt++; - } - else - { - //mame_printf_debug("GEO: %08X: push %08X\n", geo_write_start_address, data); - push_geo_data(data); - } -} - -static READ32_HANDLER( geo_r ) -{ - int address = offset * 4; - if (address == 0x2008) - { - return geo_write_start_address; - } - else if (address == 0x3008) - { - return geo_read_start_address; - } - - fatalerror("geo_r: %08X, %08X\n", address, mem_mask); -} - -static WRITE32_HANDLER( geo_w ) -{ - int address = offset * 4; - - if (address < 0x1000) - { - /*if (data & 0x80000000) - { - int i; - UINT32 a; - mame_printf_debug("GEO: jump to %08X\n", (data & 0xfffff)); - a = (data & 0xfffff) / 4; - for (i=0; i < 4; i++) - { - mame_printf_debug(" %08X: %08X %08X %08X %08X\n", 0x900000+(a*4)+(i*16), - model2_bufferram[a+(i*4)+0], model2_bufferram[a+(i*4)+1], model2_bufferram[a+(i*4)+2], model2_bufferram[a+(i*4)+3]); - } - } - else - { - int function = (address >> 4) & 0x3f; - switch (address & 0xf) - { - case 0x0: - { - mame_printf_debug("GEO: function %02X (%08X, %08X)\n", function, address, data); - break; - } - - case 0x4: mame_printf_debug("GEO: function %02X, command length %d\n", function, data & 0x3f); break; - case 0x8: mame_printf_debug("GEO: function %02X, data length %d\n", function, data & 0x7f); break; - } - }*/ - - if (data & 0x80000000) - { - UINT32 r = 0; - r |= data & 0x800fffff; - r |= ((address >> 4) & 0x3f) << 23; - push_geo_data(r); - } - else - { - if ((address & 0xf) == 0) - { - UINT32 r = 0; - r |= data & 0x000fffff; - r |= ((address >> 4) & 0x3f) << 23; - push_geo_data(r); - } - } - } - else if (address == 0x1008) - { - //mame_printf_debug("GEO: Write Start Address: %08X\n", data); - geo_write_start_address = data & 0xfffff; - } - else if (address == 0x3008) - { - //mame_printf_debug("GEO: Read Start Address: %08X\n", data); - geo_read_start_address = data & 0xfffff; - } - else - { - fatalerror("geo_w: %08X = %08X\n", address, data); - } -} - -/*****************************************************************************/ - - - - - - -static READ32_HANDLER(hotd_unk_r) -{ - return 0x000c0000; -} - -static READ32_HANDLER(sonic_unk_r) -{ - return 0x001a0000; -} - -static READ32_HANDLER(daytona_unk_r) -{ - return 0x00400000; -} - -static READ32_HANDLER(desert_unk_r) -{ - // vcop needs bit 3 clear (infinite loop otherwise) - // desert needs other bits set (not sure which specifically) - // daytona needs the MSW to return ff - return 0x00ff00f7; -} - -static READ32_HANDLER(model2_irq_r) -{ - i960_noburst(); - - if (offset) - { - return model2_intena; - } - - return model2_intreq; -} - -static WRITE32_HANDLER(model2_irq_w) -{ - i960_noburst(); - - if (offset) - { - COMBINE_DATA(&model2_intena); - return; - } - - model2_intreq &= data; -} - -static int to_68k; - -static int snd_68k_ready_r(void) -{ - int sr = cpunum_get_reg(1, M68K_REG_SR); - - if ((sr & 0x0700) > 0x0100) - { - cpu_spinuntil_time(TIME_IN_USEC(40)); - return 0; // not ready yet, interrupts disabled - } - - return 0xff; -} - -static void snd_latch_to_68k_w(int data) -{ - while (!snd_68k_ready_r()) - { - cpu_spinuntil_time(TIME_IN_USEC(40)); - } - - to_68k = data; - - cpunum_set_input_line(1, 2, HOLD_LINE); - - // give the 68k time to notice - cpu_spinuntil_time(TIME_IN_USEC(40)); -} - -static READ32_HANDLER( model2_serial_r ) -{ - if ((offset == 0) && (mem_mask == 0x0000ffff)) - { - return 0x00070000; // TxRdy RxRdy (zeroguna also needs bit 4 set) - } - - return 0xffffffff; -} - -static WRITE32_HANDLER( model2o_serial_w ) -{ - if (mem_mask == 0xffff0000) - { - snd_latch_to_68k_w(data&0xff); - } -} - -static WRITE32_HANDLER( model2_serial_w ) -{ - if (mem_mask == 0xffff0000) - { - SCSP_MidiIn(0, data&0xff, 0); - - // give the 68k time to notice - cpu_spinuntil_time(TIME_IN_USEC(40)); - } -} - -/* Protection handling */ - -static unsigned char ZGUNProt[] = -{ - 0x7F,0x4E,0x1B,0x1E,0xA8,0x48,0xF5,0x49,0x31,0x32,0x4A,0x09,0x89,0x29,0xC0,0x41, - 0x3A,0x49,0x85,0x24,0xA0,0x4D,0x21,0x31,0xEA,0xC3,0x3F,0xAF,0x0E,0x4B,0x25,0x02, - 0xFB,0x0F,0x44,0x55,0x2E,0x82,0x55,0xC3,0xCB,0x91,0x52,0x7E,0x72,0x53,0xF2,0xAA, - 0x39,0x19,0xB1,0x42,0x33,0x63,0x13,0xFA,0x39,0x9C,0xE0,0x53,0x93,0x8B,0x14,0x91, - 0x9D,0x1C,0xFE,0x52,0x59,0xD4,0x2A,0x6A,0xA3,0xC5,0xA0,0xCA,0x92,0x5A,0x58,0xAC, - 0x95,0x4A,0x19,0x89,0x65,0xD3,0xA8,0x4A,0xE3,0xCE,0x8D,0x89,0xC5,0x48,0x95,0xE4, - 0x94,0xD5,0x73,0x09,0xE4,0x3D,0x2D,0x92,0xC9,0xA7,0xA3,0x53,0x42,0x82,0x55,0x67, - 0xE4,0x66,0xD0,0x4A,0x7D,0x4A,0x13,0xDE,0xD7,0x9F,0x38,0xAA,0x00,0x56,0x85,0x0A -}; -static unsigned char DCOPKey1326[]= -{ - 0x43,0x66,0x54,0x11,0x99,0xfe,0xcc,0x8e,0xdd,0x87,0x11,0x89,0x22,0xdf,0x44,0x09 -}; -static int protstate, protpos; -static unsigned char protram[256]; - -static READ32_HANDLER( model2_prot_r ) -{ - static int a = 0; - UINT32 retval = 0; - - if (offset == 0x10000/4) - { - // status: bit 0 = 1 for busy, 0 for ready - return 0; // we're always ready - } - else if (offset == 0x1000e/4) - { - retval = protram[protstate+1] | protram[protstate]<<8; - retval <<= 16; - protstate+=2; - } - else if (offset == 0x7ff8/4) - { - retval = protram[protstate+1] | protram[protstate]<<8; - protstate+=2; - } - else if (offset == 0x400c/4) - { - a = !a; - if (a) - return 0xffff; - else - return 0xfff0; - } - else logerror("Unhandled Protection READ @ %x mask %x (PC=%x)\n", offset, mem_mask, activecpu_get_pc()); - - return retval; -} - -static WRITE32_HANDLER( model2_prot_w ) -{ - if (mem_mask == 0xffff) - { - data >>= 16; - } - - if (offset == 0x10008/4) - { - protpos = data; - } - else if (offset == 0x1000c/4) - { - switch (data) - { - // dynamcop - case 0x7700: - strcpy((char *)protram+2, "UCHIDA MOMOKA "); - break; - - // dynamcop - case 0x1326: - protstate = 0; - memcpy(protram+2, DCOPKey1326, sizeof(DCOPKey1326)); - break; - - // zerogun - case 0xA1BC: - case 0xAD23: - case 0x13CD: - case 0x4D53: - case 0x234D: - case 0x113D: - case 0x1049: - case 0x993D: - case 0x983C: - case 0x935: - case 0x9845: - case 0x556D: - case 0x98CC: - case 0x3422: - case 0x10: - protstate = 0; - memcpy(protram+2, ZGUNProt+((2*protpos)/12)*8, sizeof(ZGUNProt)); - break; - - // pltkids - case 0x7140: - protstate = 0; - strcpy((char *)protram+2, "98-PILOT "); - break; - - default: - protstate = 0; - break; - } - } - else if (offset == 0x7ff2/4) - { - if (data == 0) - { - protstate = 0; - strcpy((char *)protram, " TECMO LTD. DEAD OR ALIVE 1996.10.22 VER. 1.00"); - } - } - else logerror("Unhandled Protection WRITE %x @ %x mask %x (PC=%x)\n", data, offset, mem_mask, activecpu_get_pc()); - -} - -/* Daytona "To The MAXX" PIC protection simulation */ - -static int model2_maxxstate = 0; - -static READ32_HANDLER( maxx_r ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - if (offset <= 0x1f/4) - { - // special - if (mem_mask == 0x0000ffff) - { - // 16-bit protection reads - model2_maxxstate++; - model2_maxxstate &= 0xf; - if (!model2_maxxstate) - { - return 0x00070000; - } - else - { - if (model2_maxxstate & 0x2) - { - return 0; - } - else - { - return 0x00040000; - } - } - } - else if (mem_mask == 0) - { - // 32-bit read - if (offset == 0x22/4) - { - return 0x00ff0000; - } - } - } - - return ROM[offset + (0x040000/4)]; -} - -/* Network board emulation */ - -static UINT32 model2_netram[0x8000/4]; - -static int zflagi, zflag, sysres; - -static READ32_HANDLER( network_r ) -{ - if ((mem_mask == 0) || (mem_mask == 0xffff0000) || (mem_mask == 0x0000ffff)) - { - return 0xffffffff; - } - - if (offset < 0x4000/4) - { - return model2_netram[offset]; - } - - if (mem_mask == 0xff00ffff) - { - return sysres<<16; - } - else if (mem_mask == 0xffffff00) - { - return zflagi; - } - - return 0xffffffff; -} - -static WRITE32_HANDLER( network_w ) -{ - if ((mem_mask == 0) || (mem_mask == 0xffff0000) || (mem_mask == 0x0000ffff)) - { - COMBINE_DATA(&model2_netram[offset+0x4000/4]); - return; - } - - if (offset < 0x4000/4) - { - COMBINE_DATA(&model2_netram[offset]); - return; - } - - if (mem_mask == 0xff00ffff) - { - sysres = data>>16; - } - else if (mem_mask == 0xffffff00) - { - zflagi = data; - zflag = 0; - if (data & 0x01) zflag |= 0x80; - if (data & 0x80) zflag |= 0x01; - } -} - -static WRITE32_HANDLER( copro_w ) -{ - int address = offset * 4; - - if (address < 0x400) - { - int function = (address & 0xfff) >> 4; - switch (address & 0xf) - { - case 0x0: mame_printf_debug("COPRO: function %02X, command %d\n", function, (data >> 23) & 0x3f); break; - case 0x4: mame_printf_debug("COPRO: function %02X, command length %d\n", function, data & 0x3f); break; - case 0x8: mame_printf_debug("COPRO: function %02X, data length %d\n", function, data & 0x7f); break; - } - } - - //mame_printf_debug("COPRO: %08X = %08X\n", offset, data); -} - -static WRITE32_HANDLER(mode_w) -{ - mame_printf_debug("Mode = %08X\n", data); -} - -/* common map for all Model 2 versions */ -static ADDRESS_MAP_START( model2_base_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_WRITENOP - - AM_RANGE(0x00500000, 0x005fffff) AM_RAM AM_BASE(&model2_workram) - - AM_RANGE(0x00800000, 0x00803fff) AM_READWRITE(geo_r, geo_w) - //AM_RANGE(0x00800010, 0x00800013) AM_WRITENOP - //AM_RANGE(0x008000b0, 0x008000b3) AM_WRITENOP - //AM_RANGE(0x00804004, 0x0080400f) AM_WRITENOP // quiet psikyo games - - //AM_RANGE(0x00880000, 0x00883fff) AM_WRITE(copro_w) - - AM_RANGE(0x00900000, 0x0097ffff) AM_RAM AM_BASE(&model2_bufferram) - - - AM_RANGE(0x00980004, 0x00980007) AM_READ(fifoctl_r) - AM_RANGE(0x0098000c, 0x0098000f) AM_READ(videoctl_r) - - AM_RANGE(0x00e80000, 0x00e80007) AM_READWRITE(model2_irq_r, model2_irq_w) - - AM_RANGE(0x00f00000, 0x00f0000f) AM_READWRITE(timers_r, timers_w) - - AM_RANGE(0x01000000, 0x0100ffff) AM_READWRITE(sys24_tile32_r, sys24_tile32_w) AM_MIRROR(0x100000) - AM_RANGE(0x01020000, 0x01020003) AM_WRITENOP AM_MIRROR(0x100000) // Unknown, always 0 - AM_RANGE(0x01040000, 0x01040003) AM_WRITENOP AM_MIRROR(0x100000) // Horizontal synchronization register - AM_RANGE(0x01060000, 0x01060003) AM_WRITENOP AM_MIRROR(0x100000) // Vertical synchronization register - AM_RANGE(0x01070000, 0x01070003) AM_WRITENOP AM_MIRROR(0x100000) // Video synchronization switch - AM_RANGE(0x01080000, 0x010fffff) AM_READWRITE(sys24_char32_r, sys24_char32_w) AM_MIRROR(0x100000) - AM_RANGE(0x01100000, 0x0110ffff) AM_READWRITE(sys24_tile32_r, sys24_tile32_w) AM_MIRROR(0x10000) - AM_RANGE(0x01180000, 0x011fffff) AM_READWRITE(sys24_char32_r, sys24_char32_w) AM_MIRROR(0x100000) - - AM_RANGE(0x01800000, 0x01803fff) AM_READWRITE(MRA32_RAM, pal32_w) AM_BASE(&paletteram32) - AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_BASE(&model2_colorxlat) - AM_RANGE(0x01a10000, 0x01a1ffff) AM_READWRITE(network_r, network_w) - AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_BASE( &model2_backup1 ) // Backup sram - AM_RANGE(0x02000000, 0x03ffffff) AM_ROM AM_REGION(REGION_USER1, 0) - - // "extra" data - AM_RANGE(0x06000000, 0x06ffffff) AM_ROM AM_REGION(REGION_USER1, 0x1000000) - - AM_RANGE(0x10000000, 0x101fffff) AM_WRITE(mode_w) - - AM_RANGE(0x11000000, 0x111fffff) AM_RAM AM_BASE(&model2_textureram0) // texture RAM 0 (2b/2c) - AM_RANGE(0x11200000, 0x113fffff) AM_RAM AM_BASE(&model2_textureram1) // texture RAM 1 (2b/2c) - AM_RANGE(0x11400000, 0x1140ffff) AM_RAM AM_BASE(&model2_lumaram) // polygon "luma" RAM (2b/2c) - - AM_RANGE(0x11600000, 0x1167ffff) AM_RAM AM_SHARE(1) // framebuffer (last bronx) - AM_RANGE(0x11680000, 0x116fffff) AM_RAM AM_SHARE(1) // FB mirror - - AM_RANGE(0x12000000, 0x12ffffff) AM_WRITENOP // texture RAM for model 2/2a? -ADDRESS_MAP_END - -/* original Model 2 overrides */ -static ADDRESS_MAP_START( model2o_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00200000, 0x0021ffff) AM_RAM - AM_RANGE(0x00220000, 0x0023ffff) AM_ROM AM_REGION(REGION_CPU1, 0x20000) - - AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w) - AM_RANGE(0x00884000, 0x00887fff) AM_READWRITE(copro_prg_r, copro_prg_w) - - AM_RANGE(0x00980000, 0x00980003) AM_WRITE( copro_ctl1_w ) - AM_RANGE(0x00980008, 0x0098000b) AM_WRITE( geo_ctl1_w ) - AM_RANGE(0x009c0000, 0x009cffff) AM_READWRITE( model2_serial_r, model2o_serial_w ) - - AM_RANGE(0x01c00000, 0x01c00007) AM_READ(analog_r) - AM_RANGE(0x01c00010, 0x01c00013) AM_READ(ctrl10_r) - AM_RANGE(0x01c00014, 0x01c00017) AM_READ(ctrl14_r) - AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( desert_unk_r ) - AM_RANGE(0x01c00040, 0x01c00043) AM_READ( daytona_unk_r ) - AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_BASE( &model2_backup2 ) - AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2o_serial_w ) -ADDRESS_MAP_END - -/* 2A-CRX overrides */ -static ADDRESS_MAP_START( model2a_crx_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00200000, 0x0023ffff) AM_RAM - - AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w) - AM_RANGE(0x00884000, 0x00887fff) AM_READWRITE(copro_prg_r, copro_prg_w) - - AM_RANGE(0x00980000, 0x00980003) AM_WRITE( copro_ctl1_w ) - AM_RANGE(0x00980008, 0x0098000b) AM_WRITE( geo_ctl1_w ) - AM_RANGE(0x009c0000, 0x009cffff) AM_READWRITE( model2_serial_r, model2_serial_w ) - - AM_RANGE(0x01c00000, 0x01c00003) AM_READWRITE(ctrl0_r, ctrl0_w) - AM_RANGE(0x01c00004, 0x01c00007) AM_READ(ctrl1_r) - AM_RANGE(0x01c00010, 0x01c00013) AM_READ(ctrl10_r) - AM_RANGE(0x01c00014, 0x01c00017) AM_READ(ctrl14_r) - AM_RANGE(0x01c00018, 0x01c0001b) AM_READ( hotd_unk_r ) - AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( sonic_unk_r ) - AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_BASE( &model2_backup2 ) - AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2_serial_w ) -ADDRESS_MAP_END - -/* 2B-CRX overrides */ -static ADDRESS_MAP_START( model2b_crx_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00200000, 0x0023ffff) AM_RAM - - AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w) - //AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_sharc_fifo_r, geo_sharc_fifo_w) - //AM_RANGE(0x00840000, 0x00840fff) AM_WRITE(geo_sharc_iop_w) - - AM_RANGE(0x00880000, 0x00883fff) AM_WRITE(copro_function_port_w) - AM_RANGE(0x00884000, 0x00887fff) AM_READWRITE(copro_sharc_fifo_r, copro_sharc_fifo_w) - AM_RANGE(0x008c0000, 0x008c0fff) AM_WRITE(copro_sharc_iop_w) - - AM_RANGE(0x00980000, 0x00980003) AM_WRITE( copro_sharc_ctl1_w ) - - AM_RANGE(0x00980008, 0x0098000b) AM_WRITE( geo_ctl1_w ) - //AM_RANGE(0x00980008, 0x0098000b) AM_WRITE( geo_sharc_ctl1_w ) - - AM_RANGE(0x009c0000, 0x009cffff) AM_READWRITE( model2_serial_r, model2_serial_w ) - - AM_RANGE(0x01c00000, 0x01c00003) AM_READWRITE(ctrl0_r, ctrl0_w) - AM_RANGE(0x01c00004, 0x01c00007) AM_READ(ctrl1_r) - AM_RANGE(0x01c00010, 0x01c00013) AM_READ(ctrl10_r) - AM_RANGE(0x01c00014, 0x01c00017) AM_READ(ctrl14_r) - AM_RANGE(0x01c00018, 0x01c0001b) AM_READ( hotd_unk_r ) - AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( sonic_unk_r ) - AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2_serial_w ) -ADDRESS_MAP_END - -/* 2C-CRX overrides */ -static ADDRESS_MAP_START( model2c_crx_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00200000, 0x0023ffff) AM_RAM - - AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w) - AM_RANGE(0x00884000, 0x00887fff) AM_READWRITE(copro_prg_r, copro_prg_w) - - AM_RANGE(0x00980000, 0x00980003) AM_WRITE( copro_ctl1_w ) - AM_RANGE(0x00980008, 0x0098000b) AM_WRITE( geo_ctl1_w ) - AM_RANGE(0x009c0000, 0x009cffff) AM_READWRITE( model2_serial_r, model2_serial_w ) - - AM_RANGE(0x01c00000, 0x01c00003) AM_READWRITE(ctrl0_r, ctrl0_w) - AM_RANGE(0x01c00004, 0x01c00007) AM_READ(ctrl1_r) - AM_RANGE(0x01c00010, 0x01c00013) AM_READ(ctrl10_r) - AM_RANGE(0x01c00014, 0x01c00017) AM_READ(ctrl14_r) - AM_RANGE(0x01c00018, 0x01c0001b) AM_READ( hotd_unk_r ) - AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( sonic_unk_r ) - AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2_serial_w ) -ADDRESS_MAP_END - -/* Input definitions */ - -#define MODEL2_PLAYER_INPUTS(_n_, _b1_, _b2_, _b3_, _b4_) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_##_b1_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_##_b2_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_##_b3_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_##_b4_ ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) - -INPUT_PORTS_START( model2 ) - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1P Push Switch") PORT_CODE(KEYCODE_7) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("2P Push Switch") PORT_CODE(KEYCODE_8) - - PORT_START - MODEL2_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START - MODEL2_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) -INPUT_PORTS_END - -INPUT_PORTS_START( desert ) - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) // VR 1 (Blue) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // VR 2 (Green) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) // VR 3 (Red) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // shift - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // machine gun - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // cannon - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - MODEL2_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START // steer - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accel - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( daytona ) - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) // VR 1 (Red) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // VR 2 (Blue) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) // VR 3 (Yellow) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) // VR 4 (Green) - PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // shift 3 - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // shift 4 - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - - PORT_START - MODEL2_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START // steer - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accel - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( bel ) - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1P Push Switch") PORT_CODE(KEYCODE_7) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("2P Push Switch") PORT_CODE(KEYCODE_8) - - PORT_START - MODEL2_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4) - - PORT_START - MODEL2_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4) -INPUT_PORTS_END - -static INTERRUPT_GEN(model2_interrupt) -{ - switch (cpu_getiloops()) - { - case 0: - model2_intreq |= (1<<10); - if (model2_intena & (1<<10)) - { - cpunum_set_input_line(0, I960_IRQ3, ASSERT_LINE); - } - break; - case 1: - model2_intreq |= (1<<0); - if (model2_intena & (1<<0)) - { - cpunum_set_input_line(0, I960_IRQ0, ASSERT_LINE); - } - break; - } -} - -static INTERRUPT_GEN(model2c_interrupt) -{ - switch (cpu_getiloops()) - { - case 0: - model2_intreq |= (1<<10); - if (model2_intena & (1<<10)) - cpunum_set_input_line(0, I960_IRQ3, ASSERT_LINE); - break; - case 1: - model2_intreq |= (1<<2); - if (model2_intena & (1<<2)) - cpunum_set_input_line(0, I960_IRQ2, ASSERT_LINE); - - break; - case 2: - model2_intreq |= (1<<0); - if (model2_intena & (1<<0)) - cpunum_set_input_line(0, I960_IRQ0, ASSERT_LINE); - break; - } -} - -/* Model 1 sound board emulation */ - -static READ16_HANDLER( m1_snd_68k_latch_r ) -{ - return to_68k; -} - -static READ16_HANDLER( m1_snd_v60_ready_r ) -{ - return 1; -} - -static READ16_HANDLER( m1_snd_mpcm0_r ) -{ - return MultiPCM_reg_0_r(0); -} - -static WRITE16_HANDLER( m1_snd_mpcm0_w ) -{ - MultiPCM_reg_0_w(offset, data); -} - -static WRITE16_HANDLER( m1_snd_mpcm0_bnk_w ) -{ - multipcm_set_bank(0, 0x100000 * (data & 0xf), 0x100000 * (data & 0xf)); -} - -static READ16_HANDLER( m1_snd_mpcm1_r ) -{ - return MultiPCM_reg_1_r(0); -} - -static WRITE16_HANDLER( m1_snd_mpcm1_w ) -{ - MultiPCM_reg_1_w(offset, data); -} - -static WRITE16_HANDLER( m1_snd_mpcm1_bnk_w ) -{ - multipcm_set_bank(1, 0x100000 * (data & 0xf), 0x100000 * (data & 0xf)); -} - -static READ16_HANDLER( m1_snd_ym_r ) -{ - return YM3438_status_port_0_A_r(0); -} - -static WRITE16_HANDLER( m1_snd_ym_w ) -{ - switch (offset) - { - case 0: - YM3438_control_port_0_A_w(0, data); - break; - - case 1: - YM3438_data_port_0_A_w(0, data); - break; - - case 2: - YM3438_control_port_0_B_w(0, data); - break; - - case 3: - YM3438_data_port_0_B_w(0, data); - break; - } -} - -static WRITE16_HANDLER( m1_snd_68k_latch1_w ) -{ -} - -static WRITE16_HANDLER( m1_snd_68k_latch2_w ) -{ -} - -static ADDRESS_MAP_START( model1_snd, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x0bffff) AM_ROM AM_REGION(REGION_CPU2, 0x20000) // mirror of second program ROM - AM_RANGE(0xc20000, 0xc20001) AM_READWRITE( m1_snd_68k_latch_r, m1_snd_68k_latch1_w ) - AM_RANGE(0xc20002, 0xc20003) AM_READWRITE( m1_snd_v60_ready_r, m1_snd_68k_latch2_w ) - AM_RANGE(0xc40000, 0xc40007) AM_READWRITE( m1_snd_mpcm0_r, m1_snd_mpcm0_w ) - AM_RANGE(0xc40012, 0xc40013) AM_WRITENOP - AM_RANGE(0xc50000, 0xc50001) AM_WRITE( m1_snd_mpcm0_bnk_w ) - AM_RANGE(0xc60000, 0xc60007) AM_READWRITE( m1_snd_mpcm1_r, m1_snd_mpcm1_w ) - AM_RANGE(0xc70000, 0xc70001) AM_WRITE( m1_snd_mpcm1_bnk_w ) - AM_RANGE(0xd00000, 0xd00007) AM_READWRITE( m1_snd_ym_r, m1_snd_ym_w ) - AM_RANGE(0xf00000, 0xf0ffff) AM_RAM -ADDRESS_MAP_END - -/* Model 2 sound board emulation */ - -static WRITE16_HANDLER( model2snd_ctrl ) -{ - // handle sample banking - if (memory_region_length(REGION_SOUND1) > 0x800000) - { - if (data & 0x20) - { - memory_set_bankptr(4, memory_region(REGION_SOUND1) + 0x200000); - memory_set_bankptr(5, memory_region(REGION_SOUND1) + 0x600000); - } - else - { - memory_set_bankptr(4, memory_region(REGION_SOUND1) + 0x800000); - memory_set_bankptr(5, memory_region(REGION_SOUND1) + 0xa00000); - } - } -} - -static ADDRESS_MAP_START( model2_snd, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_REGION(REGION_CPU2, 0) - AM_RANGE(0x100000, 0x100fff) AM_READWRITE(SCSP_0_r, SCSP_0_w) - AM_RANGE(0x400000, 0x400001) AM_WRITE(model2snd_ctrl) - AM_RANGE(0x600000, 0x67ffff) AM_ROM AM_REGION(REGION_CPU2, 0x80000) - AM_RANGE(0x800000, 0x9fffff) AM_ROM AM_REGION(REGION_SOUND1, 0) - AM_RANGE(0xa00000, 0xdfffff) AM_READ(MRA16_BANK4) - AM_RANGE(0xe00000, 0xffffff) AM_READ(MRA16_BANK5) -ADDRESS_MAP_END - -static int scsp_last_line = 0; - -static void scsp_irq(int irq) -{ - if (irq > 0) - { - scsp_last_line = irq; - cpunum_set_input_line(1, irq, ASSERT_LINE); - } - else if ( irq < 0) - { - cpunum_set_input_line(1, irq, CLEAR_LINE); - } - else - { - cpunum_set_input_line(1, scsp_last_line, CLEAR_LINE); - } -} - -static struct SCSPinterface scsp_interface = -{ - REGION_CPU2, - 0, - scsp_irq -}; - -static struct MultiPCM_interface m1_multipcm_interface_1 = -{ - REGION_SOUND1 -}; - -static struct MultiPCM_interface m1_multipcm_interface_2 = -{ - REGION_SOUND2 -}; - - - - -static READ32_HANDLER(copro_sharc_input_fifo_r) -{ - //mame_printf_debug("SHARC FIFOIN pop at %08X\n", activecpu_get_pc()); - return copro_fifoin_pop(); -} - -static WRITE32_HANDLER(copro_sharc_output_fifo_w) -{ - //mame_printf_debug("SHARC FIFOOUT push %08X\n", data); - copro_fifoout_push(data); -} - -static READ32_HANDLER(copro_sharc_buffer_r) -{ - return model2_bufferram[offset & 0x7fff]; -} - -static WRITE32_HANDLER(copro_sharc_buffer_w) -{ - //mame_printf_debug("sharc_buffer_w: %08X at %08X, %08X, %f\n", offset, activecpu_get_pc(), data, *(float*)&data); - model2_bufferram[offset & 0x7fff] = data; -} - -static ADDRESS_MAP_START( copro_sharc_map, ADDRESS_SPACE_DATA, 32 ) - AM_RANGE(0x0400000, 0x0bfffff) AM_READ(copro_sharc_input_fifo_r) - AM_RANGE(0x0c00000, 0x13fffff) AM_WRITE(copro_sharc_output_fifo_w) - AM_RANGE(0x1400000, 0x1bfffff) AM_READWRITE(copro_sharc_buffer_r, copro_sharc_buffer_w) - AM_RANGE(0x1c00000, 0x1dfffff) AM_ROM AM_REGION(REGION_USER5, 0) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( geo_sharc_map, ADDRESS_SPACE_DATA, 32 ) -ADDRESS_MAP_END - - - - - -/* original Model 2 */ -static MACHINE_DRIVER_START( model2o ) - MDRV_CPU_ADD(I960, 25000000) - MDRV_CPU_PROGRAM_MAP(model2_base_mem, model2o_mem) - MDRV_CPU_VBLANK_INT(model2_interrupt,2) - - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(model1_snd, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(model2o) - MDRV_NVRAM_HANDLER( model2 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(model2) - MDRV_VIDEO_UPDATE(model2) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3438, 8000000) - MDRV_SOUND_ROUTE(0, "left", 0.60) - MDRV_SOUND_ROUTE(1, "right", 0.60) - - MDRV_SOUND_ADD(MULTIPCM, 8000000) - MDRV_SOUND_CONFIG(m1_multipcm_interface_1) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(MULTIPCM, 8000000) - MDRV_SOUND_CONFIG(m1_multipcm_interface_2) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/* 2A-CRX */ -static MACHINE_DRIVER_START( model2a ) - MDRV_CPU_ADD(I960, 25000000) - MDRV_CPU_PROGRAM_MAP(model2_base_mem, model2a_crx_mem) - MDRV_CPU_VBLANK_INT(model2_interrupt,2) - - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(model2_snd, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(model2) - MDRV_NVRAM_HANDLER( model2 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(model2) - MDRV_VIDEO_UPDATE(model2) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(SCSP, 0) - MDRV_SOUND_CONFIG(scsp_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(0, "right", 1.0) -MACHINE_DRIVER_END - - -static sharc_config sharc_cfg = -{ - BOOT_MODE_HOST -}; - -/* 2B-CRX */ -static MACHINE_DRIVER_START( model2b ) - MDRV_CPU_ADD(I960, 25000000) - MDRV_CPU_PROGRAM_MAP(model2_base_mem, model2b_crx_mem) - MDRV_CPU_VBLANK_INT(model2_interrupt,2) - - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(model2_snd, 0) - - MDRV_CPU_ADD(ADSP21062, 40000000) - MDRV_CPU_CONFIG(sharc_cfg) - MDRV_CPU_DATA_MAP(copro_sharc_map, 0) - - //MDRV_CPU_ADD(ADSP21062, 40000000) - //MDRV_CPU_CONFIG(sharc_cfg) - //MDRV_CPU_DATA_MAP(geo_sharc_map, 0) - - MDRV_INTERLEAVE(300) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(model2b) - MDRV_NVRAM_HANDLER( model2 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(model2) - MDRV_VIDEO_UPDATE(model2) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(SCSP, 0) - MDRV_SOUND_CONFIG(scsp_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(0, "right", 1.0) -MACHINE_DRIVER_END - -/* 2C-CRX */ -static MACHINE_DRIVER_START( model2c ) - MDRV_CPU_ADD(I960, 25000000) - MDRV_CPU_PROGRAM_MAP(model2_base_mem, model2c_crx_mem) - MDRV_CPU_VBLANK_INT(model2c_interrupt,3) - - MDRV_CPU_ADD(M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(model2_snd, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(model2) - MDRV_NVRAM_HANDLER( model2 ) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(model2) - MDRV_VIDEO_UPDATE(model2) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(SCSP, 0) - MDRV_SOUND_CONFIG(scsp_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(0, "right", 1.0) -MACHINE_DRIVER_END - -/* ROM definitions */ - -/* -(info from 2a) - -The smt ROMs are located on the CPU board and are labelled.... -OPR-14742A \ -OPR-14743A / Linked to 315-5674 -OPR-14744 \ -OPR-14745 / Linked to 315-5679B -OPR-14746 \ -OPR-14747 / Linked to 315-5679B - -*/ - -#define MODEL2_CPU_BOARD \ - ROM_REGION( 0xc0000, REGION_USER5, 0 ) \ - ROM_LOAD("opr-14742a.45", 0x000000, 0x20000, CRC(90c6b117) SHA1(f46429fffcee17d056f56d5fe035a33f1fd6c27e) ) \ - ROM_LOAD("opr-14743a.46", 0x020000, 0x20000, CRC(ae7f446b) SHA1(5b9f1fc47caf21e061e930c0d72804e4ec8c7bca) ) \ - ROM_LOAD("opr-14744.58", 0x040000, 0x20000, CRC(730ea9e0) SHA1(651f1db4089a400d073b19ada299b4b08b08f372) ) \ - ROM_LOAD("opr-14745.59", 0x060000, 0x20000, CRC(4c934d96) SHA1(e3349ece0e47f684d61ad11bfea4a90602287350) ) \ - ROM_LOAD("opr-14746.62", 0x080000, 0x20000, CRC(2a266cbd) SHA1(34e047a93459406c22acf4c25089d1a4955f94ca) ) \ - ROM_LOAD("opr-14747.63", 0x0a0000, 0x20000, CRC(a4ad5e19) SHA1(7d7ec300eeb9a8de1590011e37108688c092f329) ) \ - -/* -These are smt ROMs found on Sega Model 2A Video board -They are linked to a QFP208 IC labelled 315-5645 -*/ - -#define MODEL2A_VID_BOARD \ - ROM_REGION( 0x180000, REGION_USER6, 0 ) \ - ROM_LOAD("mpr-16310.15", 0x000000, 0x80000, CRC(c078a780) SHA1(0ad5b49774172743e2708b7ca4c061acfe10957a) ) \ - ROM_LOAD("mpr-16311.16", 0x080000, 0x80000, CRC(452a492b) SHA1(88c2f6c2dbfd0c1b39a7bf15c74455fb68c7274e) ) \ - ROM_LOAD("mpr-16312.14", 0x100000, 0x80000, CRC(a25fef5b) SHA1(c6a37856b97f5bc4996cb6b66209f47af392cc38) ) \ - - - -ROM_START( zeroguna ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20437", 0x000000, 0x080000, CRC(fad30cc0) SHA1(5c6222e07594b4be59b5095f7cc0a164d5895306) ) - ROM_LOAD32_WORD("epr-20438", 0x000002, 0x080000, CRC(ca364408) SHA1(4672ebdd7d9ccab5e107fda9d322b70583246c7a) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20296.11", 0x000000, 0x400000, CRC(072d8a5e) SHA1(7f69c90dd3c3e6e522d1065b3c4b09434cb4e634) ) - ROM_LOAD32_WORD("mpr-20297.12", 0x000002, 0x400000, CRC(ba6a825b) SHA1(670a86c3a1a78550c760cc66c0a6181928fb9054) ) - ROM_LOAD32_WORD("mpr-20294.9", 0x800000, 0x400000, CRC(a0bd1474) SHA1(c0c032adac69bd545e3aab481878b08f3c3edab8) ) - ROM_LOAD32_WORD("mpr-20295.10", 0x800002, 0x400000, CRC(c548cced) SHA1(d34f2fc9b4481c75a6824aa4bdd3f1884188d35b) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20298.17", 0x000000, 0x400000, CRC(8ab782fc) SHA1(595f6fc2e9c58ce9763d51798ceead8d470f0a33) ) - ROM_LOAD32_WORD("mpr-20299.21", 0x000002, 0x400000, CRC(90e20cdb) SHA1(730d58286fb7e91aa4128dc208b0f60eb3becc78) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20301.27", 0x000000, 0x200000, CRC(52010fb2) SHA1(8dce67c6f9e48d749c64b11d4569df413dc40e07) ) - ROM_LOAD32_WORD("mpr-20300.25", 0x000002, 0x200000, CRC(6f042792) SHA1(75db68e57ec3fbc7af377342eef81f26fae4e1c4) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20302.31", 0x080000, 0x80000, CRC(44ff50d2) SHA1(6ffec81042fd5708e8a5df47b63f9809f93bf0f8) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) - ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( zerogun ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20439.15", 0x000000, 0x080000, CRC(10125381) SHA1(1e178e6bd2b1312cd6290f1be4b386f520465836) ) - ROM_LOAD32_WORD("epr-20440.16", 0x000002, 0x080000, CRC(ce872747) SHA1(82bf138a42c659b675b14e41d526b1628fb46ae3) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20296.11", 0x000000, 0x400000, CRC(072d8a5e) SHA1(7f69c90dd3c3e6e522d1065b3c4b09434cb4e634) ) - ROM_LOAD32_WORD("mpr-20297.12", 0x000002, 0x400000, CRC(ba6a825b) SHA1(670a86c3a1a78550c760cc66c0a6181928fb9054) ) - ROM_LOAD32_WORD("mpr-20294.9", 0x800000, 0x400000, CRC(a0bd1474) SHA1(c0c032adac69bd545e3aab481878b08f3c3edab8) ) - ROM_LOAD32_WORD("mpr-20295.10", 0x800002, 0x400000, CRC(c548cced) SHA1(d34f2fc9b4481c75a6824aa4bdd3f1884188d35b) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20298.17", 0x000000, 0x400000, CRC(8ab782fc) SHA1(595f6fc2e9c58ce9763d51798ceead8d470f0a33) ) - ROM_LOAD32_WORD("mpr-20299.21", 0x000002, 0x400000, CRC(90e20cdb) SHA1(730d58286fb7e91aa4128dc208b0f60eb3becc78) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20301.27", 0x000000, 0x200000, CRC(52010fb2) SHA1(8dce67c6f9e48d749c64b11d4569df413dc40e07) ) - ROM_LOAD32_WORD("mpr-20300.25", 0x000002, 0x200000, CRC(6f042792) SHA1(75db68e57ec3fbc7af377342eef81f26fae4e1c4) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20302.31", 0x080000, 0x80000, CRC(44ff50d2) SHA1(6ffec81042fd5708e8a5df47b63f9809f93bf0f8) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) - ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) -ROM_END - -ROM_START( zerogunj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20290.15", 0x000000, 0x080000, CRC(9ce3ad21) SHA1(812ab45cc9e2920e74e58937d1826774f3f54183) ) - ROM_LOAD32_WORD("epr-20291.16", 0x000002, 0x080000, CRC(7267a03d) SHA1(a7216914ee7535fa1856cb19bc05c89948a93c89) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20296.11", 0x000000, 0x400000, CRC(072d8a5e) SHA1(7f69c90dd3c3e6e522d1065b3c4b09434cb4e634) ) - ROM_LOAD32_WORD("mpr-20297.12", 0x000002, 0x400000, CRC(ba6a825b) SHA1(670a86c3a1a78550c760cc66c0a6181928fb9054) ) - ROM_LOAD32_WORD("mpr-20294.9", 0x800000, 0x400000, CRC(a0bd1474) SHA1(c0c032adac69bd545e3aab481878b08f3c3edab8) ) - ROM_LOAD32_WORD("mpr-20295.10", 0x800002, 0x400000, CRC(c548cced) SHA1(d34f2fc9b4481c75a6824aa4bdd3f1884188d35b) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20298.17", 0x000000, 0x400000, CRC(8ab782fc) SHA1(595f6fc2e9c58ce9763d51798ceead8d470f0a33) ) - ROM_LOAD32_WORD("mpr-20299.21", 0x000002, 0x400000, CRC(90e20cdb) SHA1(730d58286fb7e91aa4128dc208b0f60eb3becc78) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20301.27", 0x000000, 0x200000, CRC(52010fb2) SHA1(8dce67c6f9e48d749c64b11d4569df413dc40e07) ) - ROM_LOAD32_WORD("mpr-20300.25", 0x000002, 0x200000, CRC(6f042792) SHA1(75db68e57ec3fbc7af377342eef81f26fae4e1c4) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20302.31", 0x080000, 0x80000, CRC(44ff50d2) SHA1(6ffec81042fd5708e8a5df47b63f9809f93bf0f8) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) - ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) -ROM_END - -ROM_START( gunblade ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18988a.15", 0x000000, 0x080000, CRC(f63f1ad2) SHA1(fcfb0a4691cd7d66168c421e4e1694ecaea56ab2) ) - ROM_LOAD32_WORD("epr-18989a.16", 0x000002, 0x080000, CRC(c1c84d65) SHA1(92bffbf1250c53499c37a53f9e2a054fc7bf256f) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18974.11", 0x000000, 0x400000, CRC(e29ecaff) SHA1(dcdfe9f59158cec2f02b213ee13f5e40cdb92e55) ) - ROM_LOAD32_WORD("mpr-18975.12", 0x000002, 0x400000, CRC(d8187582) SHA1(34a0b32eeed1a9f41bca8b9261851881b2ba79f2) ) - ROM_LOAD32_WORD("mpr-18976.9", 0x800000, 0x400000, CRC(c95c15eb) SHA1(892063e91b2ed20e0600d4b188da1e9f45a19692) ) - ROM_LOAD32_WORD("mpr-18977.10", 0x800002, 0x400000, CRC(db8f5b6f) SHA1(c11d2c9e1e215aa7b2ebb777639c8cd651901f52) ) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("mpr-18986.29", 0x000000, 0x400000, CRC(04820f7b) SHA1(5eb6682399b358d77658d82e612b02b724e3f3e1) ) - ROM_LOAD32_WORD("mpr-18987.30", 0x000002, 0x400000, CRC(2419367f) SHA1(0a04a1049d2da486dc9dbb97b383bd24259b78c8) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18980.17", 0x000000, 0x400000, CRC(22345534) SHA1(7b8bdcfe88953ce1b2d75af2ce4712ab6507e2cf) ) - ROM_LOAD32_WORD("mpr-18981.21", 0x000002, 0x400000, CRC(2544a33d) SHA1(a76193f70adb6abeba02328b290af5cca47d4e25) ) - ROM_LOAD32_WORD("mpr-18982.18", 0x800000, 0x400000, CRC(d0a92b2a) SHA1(95404baed88cc95b75ff9b9084d09622961d3e57) ) - ROM_LOAD32_WORD("mpr-18983.22", 0x800002, 0x400000, CRC(1b4af982) SHA1(550f8248699b9267da7d2e64002be56972381714) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18985.27", 0x000000, 0x400000, CRC(ad6166e3) SHA1(2c487fb743730cacf92dbea952b1efada0f073df) ) - ROM_LOAD32_WORD("mpr-18984.25", 0x000002, 0x400000, CRC(756f6f37) SHA1(095964de773f515d64d65dbc8f8ef9bae97e5ba9) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18990.31", 0x080000, 0x80000, CRC(02b1b0d1) SHA1(759b4683dc7149e04f41ddac7bd395e8d07ea858) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18978.32", 0x000000, 0x400000, CRC(0f78b3e3) SHA1(6c2cd6236cb001bb8d487a9b1e9907519dc43daa) ) - ROM_LOAD("mpr-18979.34", 0x400000, 0x400000, CRC(f13ea36f) SHA1(a8165116b5e07e031ff960201dd8c9a441544961) ) -ROM_END - -ROM_START( vf2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-18385.12", 0x000000, 0x020000, CRC(78ed2d41) SHA1(471c19389ceeec6138107dd81863320bd4825327) ) - ROM_LOAD32_WORD( "epr-18386.13", 0x000002, 0x020000, CRC(3418f428) SHA1(0f51e389e13efc172a26471331a60c459ad43c38) ) - ROM_LOAD32_WORD( "epr-18387.14", 0x040000, 0x020000, CRC(124a8453) SHA1(26fb787451824fc6060724e37fe0ba6bb66796cb) ) - ROM_LOAD32_WORD( "epr-18388.15", 0x040002, 0x020000, CRC(8d347980) SHA1(da79e51ad501b9560c4ed7cf1ec768daad93efe0) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-17560.10", 0x000000, 0x200000, CRC(d1389864) SHA1(88e9a8b6b0f58c96957015179e7ff10f837040e6) ) - ROM_LOAD32_WORD( "mpr-17561.11", 0x000002, 0x200000, CRC(b98d0101) SHA1(e154877380b9250d8119dd4c14ba306c7b337dcd) ) - ROM_LOAD32_WORD( "mpr-17558.8", 0x400000, 0x200000, CRC(4b15f5a6) SHA1(9a34724958fef9b49eae39c6ea136e0cf532154b) ) - ROM_LOAD32_WORD( "mpr-17559.9", 0x400002, 0x200000, CRC(d3264de6) SHA1(2f094ff0b95bf1cd5c283414634ea9597204d374) ) - ROM_LOAD32_WORD( "mpr-17566.6", 0x800000, 0x200000, CRC(fb41ef98) SHA1(ad4d1ba5e5b39b2d87105ae80750284867aa4ed3) ) - ROM_LOAD32_WORD( "mpr-17567.7", 0x800002, 0x200000, CRC(c3396922) SHA1(7e0700ded530e4eb58e9a68cdb92791284c91431) ) - ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) ) - ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) ) - ROM_LOAD32_WORD( "mpr-17548.20", 0x000002, 0x200000, CRC(c95facc2) SHA1(09d19abe5d75a335df7510df8abb2d4425159cdf) ) - ROM_LOAD32_WORD( "mpr-17555.17", 0x400000, 0x200000, CRC(4df2810b) SHA1(720c4628d7783f0323b5723b441e13741556241e) ) - ROM_LOAD32_WORD( "mpr-17549.21", 0x400002, 0x200000, CRC(e0bce0e6) SHA1(0570604dc2007288795a3125ffd480bc4b3b0802) ) - ROM_LOAD32_WORD( "mpr-17556.18", 0x800000, 0x200000, CRC(41a47616) SHA1(55b909d2bc2079d0dfed5036c78c9e09bce09843) ) - ROM_LOAD32_WORD( "mpr-17550.22", 0x800002, 0x200000, CRC(c36ff3f5) SHA1(f14fdf275905a90a0d4cc534d90b0302f26676d8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-17553.25", 0x000000, 0x200000, CRC(5da1c5d3) SHA1(c627b25a1f61a9fe9182e2199f70f6e485503c7b) ) - ROM_LOAD32_WORD( "mpr-17552.24", 0x000002, 0x200000, CRC(e91e7427) SHA1(0ac1111f2ecb4f924b5119eaaac8fa7bc87ab9d1) ) - ROM_LOAD32_WORD( "mpr-17547.27", 0x400000, 0x200000, CRC(be940431) SHA1(5c1196a6454a4fead79a930979f2e69639ec2bb9) ) - ROM_LOAD32_WORD( "mpr-17546.26", 0x400002, 0x200000, CRC(042a194b) SHA1(c6d8524dc0a879394f1234b7bb04836081bb3830) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-17574.30", 0x080000, 0x080000, CRC(4d4c3a55) SHA1(b6c0c3f0473bd7fc3ef4f5146110dfcc899a5af9) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-17573.31", 0x000000, 0x200000, CRC(e43557fe) SHA1(4c61a135819862df02347c118dc4d88a0adac273) ) - ROM_LOAD( "mpr-17572.32", 0x200000, 0x200000, CRC(4febecc8) SHA1(9683ea9bedfc5cd7b4a28e9a68792c0dc549d911) ) - ROM_LOAD( "mpr-17571.36", 0x400000, 0x200000, CRC(d22dc8ca) SHA1(3bba7780fa4ec23e40127a5b0104fba7d5e30b5f) ) - ROM_LOAD( "mpr-17570.37", 0x600000, 0x200000, CRC(bccd324b) SHA1(4c7ebdea08b2dedf621f121785ed1c40ebae4236) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( vf2b ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-17568b.12", 0x000000, 0x020000, CRC(5d966bbf) SHA1(01d46313148ce509fa5641fb07a3f840c00886ac) ) - ROM_LOAD32_WORD( "epr-17569b.13", 0x000002, 0x020000, CRC(0b8c1ccc) SHA1(ba2e0ac8b31955fed237ba9a5eda9fa14d1db11f) ) - ROM_LOAD32_WORD( "epr-17562b.14", 0x040000, 0x020000, CRC(b778d4eb) SHA1(a7162d9c39d601ac92310c8cf2ae388647a5295a) ) - ROM_LOAD32_WORD( "epr-17563b.15", 0x040002, 0x020000, CRC(a05c15f6) SHA1(b9b1f3c68c53a86dfa3cbc85fcb9150546c13f23) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-17560.10", 0x000000, 0x200000, CRC(d1389864) SHA1(88e9a8b6b0f58c96957015179e7ff10f837040e6) ) - ROM_LOAD32_WORD( "mpr-17561.11", 0x000002, 0x200000, CRC(b98d0101) SHA1(e154877380b9250d8119dd4c14ba306c7b337dcd) ) - ROM_LOAD32_WORD( "mpr-17558.8", 0x400000, 0x200000, CRC(4b15f5a6) SHA1(9a34724958fef9b49eae39c6ea136e0cf532154b) ) - ROM_LOAD32_WORD( "mpr-17559.9", 0x400002, 0x200000, CRC(d3264de6) SHA1(2f094ff0b95bf1cd5c283414634ea9597204d374) ) - ROM_LOAD32_WORD( "mpr-17566.6", 0x800000, 0x200000, CRC(fb41ef98) SHA1(ad4d1ba5e5b39b2d87105ae80750284867aa4ed3) ) - ROM_LOAD32_WORD( "mpr-17567.7", 0x800002, 0x200000, CRC(c3396922) SHA1(7e0700ded530e4eb58e9a68cdb92791284c91431) ) - ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) ) - ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) ) - ROM_LOAD32_WORD( "mpr-17548.20", 0x000002, 0x200000, CRC(c95facc2) SHA1(09d19abe5d75a335df7510df8abb2d4425159cdf) ) - ROM_LOAD32_WORD( "mpr-17555.17", 0x400000, 0x200000, CRC(4df2810b) SHA1(720c4628d7783f0323b5723b441e13741556241e) ) - ROM_LOAD32_WORD( "mpr-17549.21", 0x400002, 0x200000, CRC(e0bce0e6) SHA1(0570604dc2007288795a3125ffd480bc4b3b0802) ) - ROM_LOAD32_WORD( "mpr-17556.18", 0x800000, 0x200000, CRC(41a47616) SHA1(55b909d2bc2079d0dfed5036c78c9e09bce09843) ) - ROM_LOAD32_WORD( "mpr-17550.22", 0x800002, 0x200000, CRC(c36ff3f5) SHA1(f14fdf275905a90a0d4cc534d90b0302f26676d8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-17553.25", 0x000000, 0x200000, CRC(5da1c5d3) SHA1(c627b25a1f61a9fe9182e2199f70f6e485503c7b) ) - ROM_LOAD32_WORD( "mpr-17552.24", 0x000002, 0x200000, CRC(e91e7427) SHA1(0ac1111f2ecb4f924b5119eaaac8fa7bc87ab9d1) ) - ROM_LOAD32_WORD( "mpr-17547.27", 0x400000, 0x200000, CRC(be940431) SHA1(5c1196a6454a4fead79a930979f2e69639ec2bb9) ) - ROM_LOAD32_WORD( "mpr-17546.26", 0x400002, 0x200000, CRC(042a194b) SHA1(c6d8524dc0a879394f1234b7bb04836081bb3830) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-17574.30", 0x080000, 0x080000, CRC(4d4c3a55) SHA1(b6c0c3f0473bd7fc3ef4f5146110dfcc899a5af9) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-17573.31", 0x000000, 0x200000, CRC(e43557fe) SHA1(4c61a135819862df02347c118dc4d88a0adac273) ) - ROM_LOAD( "mpr-17572.32", 0x200000, 0x200000, CRC(4febecc8) SHA1(9683ea9bedfc5cd7b4a28e9a68792c0dc549d911) ) - ROM_LOAD( "mpr-17571.36", 0x400000, 0x200000, CRC(d22dc8ca) SHA1(3bba7780fa4ec23e40127a5b0104fba7d5e30b5f) ) - ROM_LOAD( "mpr-17570.37", 0x600000, 0x200000, CRC(bccd324b) SHA1(4c7ebdea08b2dedf621f121785ed1c40ebae4236) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( vf2o ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-17568.12", 0x000000, 0x020000, CRC(cf5d53d1) SHA1(4ed907bbfc1a47e51c9cc11f55645752574adaef) ) - ROM_LOAD32_WORD( "epr-17569.13", 0x000002, 0x020000, CRC(0fb32808) SHA1(95efb3eeaf95fb5f79ddae4ef20e2211b07f8d30) ) - ROM_LOAD32_WORD( "epr-17562.14", 0x040000, 0x020000, CRC(b893bcef) SHA1(2f862a7099aa757ee1f2ad8245eb4f8f4fdfb7bc) ) - ROM_LOAD32_WORD( "epr-17563.15", 0x040002, 0x020000, CRC(3b55f5a8) SHA1(b1ca3d4d3568c1652dcd8e546ffff23a4a21a699) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-17560.10", 0x000000, 0x200000, CRC(d1389864) SHA1(88e9a8b6b0f58c96957015179e7ff10f837040e6) ) - ROM_LOAD32_WORD( "mpr-17561.11", 0x000002, 0x200000, CRC(b98d0101) SHA1(e154877380b9250d8119dd4c14ba306c7b337dcd) ) - ROM_LOAD32_WORD( "mpr-17558.8", 0x400000, 0x200000, CRC(4b15f5a6) SHA1(9a34724958fef9b49eae39c6ea136e0cf532154b) ) - ROM_LOAD32_WORD( "mpr-17559.9", 0x400002, 0x200000, CRC(d3264de6) SHA1(2f094ff0b95bf1cd5c283414634ea9597204d374) ) - ROM_LOAD32_WORD( "mpr-17566.6", 0x800000, 0x200000, CRC(fb41ef98) SHA1(ad4d1ba5e5b39b2d87105ae80750284867aa4ed3) ) - ROM_LOAD32_WORD( "mpr-17567.7", 0x800002, 0x200000, CRC(c3396922) SHA1(7e0700ded530e4eb58e9a68cdb92791284c91431) ) - ROM_LOAD32_WORD( "mpr-17564.4", 0xc00000, 0x200000, CRC(d8062489) SHA1(57666b6937f79bb65c43ed02b04a454882d01e61) ) - ROM_LOAD32_WORD( "mpr-17565.5", 0xc00002, 0x200000, CRC(0517c6e9) SHA1(d9ba93998286713758385033119416714674c8d8) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-17554.16", 0x000000, 0x200000, CRC(27896d82) SHA1(c0624e58de2e427465daaa10dbb02ea2a1fd0f1b) ) - ROM_LOAD32_WORD( "mpr-17548.20", 0x000002, 0x200000, CRC(c95facc2) SHA1(09d19abe5d75a335df7510df8abb2d4425159cdf) ) - ROM_LOAD32_WORD( "mpr-17555.17", 0x400000, 0x200000, CRC(4df2810b) SHA1(720c4628d7783f0323b5723b441e13741556241e) ) - ROM_LOAD32_WORD( "mpr-17549.21", 0x400002, 0x200000, CRC(e0bce0e6) SHA1(0570604dc2007288795a3125ffd480bc4b3b0802) ) - ROM_LOAD32_WORD( "mpr-17556.18", 0x800000, 0x200000, CRC(41a47616) SHA1(55b909d2bc2079d0dfed5036c78c9e09bce09843) ) - ROM_LOAD32_WORD( "mpr-17550.22", 0x800002, 0x200000, CRC(c36ff3f5) SHA1(f14fdf275905a90a0d4cc534d90b0302f26676d8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-17553.25", 0x000000, 0x200000, CRC(5da1c5d3) SHA1(c627b25a1f61a9fe9182e2199f70f6e485503c7b) ) - ROM_LOAD32_WORD( "mpr-17552.24", 0x000002, 0x200000, CRC(e91e7427) SHA1(0ac1111f2ecb4f924b5119eaaac8fa7bc87ab9d1) ) - ROM_LOAD32_WORD( "mpr-17547.27", 0x400000, 0x200000, CRC(be940431) SHA1(5c1196a6454a4fead79a930979f2e69639ec2bb9) ) - ROM_LOAD32_WORD( "mpr-17546.26", 0x400002, 0x200000, CRC(042a194b) SHA1(c6d8524dc0a879394f1234b7bb04836081bb3830) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-17574.30", 0x080000, 0x080000, CRC(4d4c3a55) SHA1(b6c0c3f0473bd7fc3ef4f5146110dfcc899a5af9) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-17573.31", 0x000000, 0x200000, CRC(e43557fe) SHA1(4c61a135819862df02347c118dc4d88a0adac273) ) - ROM_LOAD( "mpr-17572.32", 0x200000, 0x200000, CRC(4febecc8) SHA1(9683ea9bedfc5cd7b4a28e9a68792c0dc549d911) ) - ROM_LOAD( "mpr-17571.36", 0x400000, 0x200000, CRC(d22dc8ca) SHA1(3bba7780fa4ec23e40127a5b0104fba7d5e30b5f) ) - ROM_LOAD( "mpr-17570.37", 0x600000, 0x200000, CRC(bccd324b) SHA1(4c7ebdea08b2dedf621f121785ed1c40ebae4236) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( srallyc ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-17888.12", 0x000000, 0x080000, CRC(3d6808aa) SHA1(33abf9cdcee9583dc600c94e1e29ce260e8c5d32) ) - ROM_LOAD32_WORD( "epr-17889.13", 0x000002, 0x080000, CRC(f43c7802) SHA1(4b1efb3d5644fed1753da1750bf5c300d3a15d2c) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-17746.bin", 0x000000, 0x200000, CRC(8fe311f4) SHA1(f4ada8e5c906fc384bed1b96f09cdf313f89e825) ) - ROM_LOAD32_WORD( "mpr-17747.bin", 0x000002, 0x200000, CRC(543593fd) SHA1(5ba63a77e9fc70569af21d50b3171bc8ff4522b8) ) - ROM_LOAD32_WORD( "mpr-17744.bin", 0x400000, 0x200000, CRC(71fed098) SHA1(1d187cad375121a45348d640edd3cc7dce658d28) ) - ROM_LOAD32_WORD( "mpr-17745.bin", 0x400002, 0x200000, CRC(8ecca705) SHA1(ed2b3298aad6f4e52dc672a0168183e457564b43) ) - ROM_LOAD32_WORD( "mpr-17884.bin", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) ) - ROM_LOAD32_WORD( "mpr-17885.bin", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD( "mpr-17754.bin", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) ) - ROM_LOAD32_WORD( "mpr-17755.bin", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-17748.bin", 0x000000, 0x200000, CRC(3148a2b2) SHA1(283cc49bfb6c6381a7ead9273fd097dca5b981b6) ) - ROM_LOAD32_WORD( "mpr-17749.bin", 0x000002, 0x200000, CRC(0838d184) SHA1(704175c8b29e4c989afcb7be42e7e0e096740eaf) ) - ROM_LOAD32_WORD( "mpr-17750.bin", 0x400000, 0x200000, CRC(232aec29) SHA1(4d470e71df61298282c356814e2d151fda323fb6) ) - ROM_LOAD32_WORD( "mpr-17751.bin", 0x400002, 0x200000, CRC(ed87ac62) SHA1(601542149d33ca52a47536b4b0af47bf1fd87eb2) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-17752.bin", 0x000000, 0x200000, CRC(d6aa86ce) SHA1(1d342f87d1af1e5438d1ae818b1b14268e765897) ) - ROM_LOAD32_WORD( "mpr-17753.bin", 0x000002, 0x200000, CRC(6db0eb36) SHA1(dd5fd3c9592360d3e95623ac2491e6faabe9dbcb) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0) // Communication program - ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-17890.30", 0x080000, 0x040000, CRC(5bac3fa1) SHA1(3635333d36463b6fab25560ed918e05138f964dc) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-17756.31", 0x000000, 0x200000, CRC(7725f111) SHA1(1f1ee3f19a6bcf57bc5a1c7dd64ee83f8b81f084) ) - ROM_LOAD( "mpr-17757.32", 0x000000, 0x200000, CRC(1616e649) SHA1(1d3a0e441d150ada0535a9d50e2f69dd4b99c584) ) - ROM_LOAD( "mpr-17886.36", 0x000000, 0x200000, CRC(54a72923) SHA1(103c4838b27378c834c08d29d6fb6ba95e7f9d03) ) - ROM_LOAD( "mpr-17887.37", 0x000000, 0x200000, CRC(38c31fdd) SHA1(a85f05160b060d9d4a431aaa73cfc03f24214fb9) ) - - ROM_REGION( 0x010000, REGION_USER4, 0 ) // Unknown (on "amp" board) - ROM_LOAD( "mpr-17891.bin", 0x000000, 0x010000, CRC(9a33b437) SHA1(3e8f210aa5159e78f640126cb5ce7f05f22560f2) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( manxtt ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-18822.12", 0x000000, 0x020000, CRC(c7b3e45a) SHA1(d3a6910bf6efc138e0e40332219b90dea7d6ea56) ) - ROM_LOAD32_WORD( "epr-18823.13", 0x000002, 0x020000, CRC(6b0c1dfb) SHA1(6da5c071e3ce842a99f928f473d4ccf7165785ac) ) - ROM_LOAD32_WORD( "epr-18824.14", 0x040000, 0x020000, CRC(352bb817) SHA1(389cbf951ba606acb9ab7bff5cda85d9166e64ff) ) - ROM_LOAD32_WORD( "epr-18825.15", 0x040002, 0x020000, CRC(f88b036c) SHA1(f6196e8da5e6579fe3fa5c24ab9538964c98e267) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-18751.bin", 0x000000, 0x200000, CRC(773ad43d) SHA1(4d1601dc08a08b724e33e7cd90a4f22e18cfed9c) ) - ROM_LOAD32_WORD( "mpr-18752.bin", 0x000002, 0x200000, CRC(4da3719e) SHA1(24007e4ae3ba1a06321328d14e2bd6002fa1936e) ) - ROM_LOAD32_WORD( "mpr-18749.bin", 0x400000, 0x200000, CRC(c3fe0eea) SHA1(ada21405a136935ac4da1a3535c25fccf903f2d1) ) - ROM_LOAD32_WORD( "mpr-18750.bin", 0x400002, 0x200000, CRC(40b55494) SHA1(d98ae5518c5d31b155b1a7c4f7d9d67f44d7beae) ) - ROM_LOAD32_WORD( "mpr-18747.bin", 0x800000, 0x200000, CRC(f2ecac6f) SHA1(879d7b277e238d1d8713f2b604bc3db407aa249d) ) - ROM_LOAD32_WORD( "mpr-18748.bin", 0x800002, 0x200000, CRC(7815d634) SHA1(bfeff77630759c88b2191ea7e1ff78e0d70cbdf5) ) - ROM_LOAD32_WORD( "mpr-18862.bin", 0xc00000, 0x080000, CRC(9adc3a30) SHA1(029db946338f8e0eccace8590082cc96bdf13e31) ) - ROM_RELOAD ( 0xd00000, 0x080000 ) - ROM_RELOAD ( 0xe00000, 0x080000 ) - ROM_RELOAD ( 0xf00000, 0x080000 ) - ROM_LOAD32_WORD( "mpr-18863.bin", 0xc00002, 0x080000, CRC(603742e9) SHA1(f78a5f7e582d313880c734158bb0fa68b256a58a) ) - ROM_RELOAD ( 0xd00002, 0x080000 ) - ROM_RELOAD ( 0xe00002, 0x080000 ) - ROM_RELOAD ( 0xf00002, 0x080000 ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-18753.bin", 0x000000, 0x200000, CRC(33ddaa0d) SHA1(26f643d6b9cecf08bd249290a670a0edea1b5be4) ) - ROM_LOAD32_WORD( "mpr-18756.bin", 0x000002, 0x200000, CRC(e1678c59) SHA1(d55828c2ed9714c4e07455a8eed7fc39967a9124) ) - ROM_LOAD32_WORD( "mpr-18754.bin", 0x400000, 0x200000, CRC(09aabde5) SHA1(e50646efb2ca59792833ce91398c4efa861ad6d1) ) - ROM_LOAD32_WORD( "mpr-18757.bin", 0x400004, 0x200000, CRC(25fc92e9) SHA1(226c4c7289b3b6009c1ffea4a171e3fb4e31a67c) ) - ROM_LOAD32_WORD( "mpr-18755.bin", 0x000000, 0x200000, CRC(fd1fa53c) SHA1(d8dabbd6efcc2752879cce3df2cb99b65e043eca) ) - ROM_LOAD32_WORD( "mpr-18758.bin", 0x800002, 0x200000, CRC(1b5473d0) SHA1(658e33503f6990f4d9a954c63efad5f53d15f3a4) ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD( "mpr-18761.bin", 0x000000, 0x200000, CRC(4e39ec05) SHA1(50696cd320f1a6492e0c193713acbce085d959cd) ) - ROM_LOAD32_WORD( "mpr-18762.bin", 0x000002, 0x200000, CRC(4ab165d8) SHA1(7ff42a4c7236fec76f94f2d0c5537e503bcc98e5) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-18759.bin", 0x000000, 0x200000, CRC(89d7927d) SHA1(6908de9cbb71b36fc7dd35aace6bfd61408bb30b) ) - ROM_LOAD32_WORD( "mpr-18760.bin", 0x000002, 0x200000, CRC(4e3a4a89) SHA1(bba6cd2a15b3f963388a3a87880da86b10f6e0a2) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-18826.30", 0x080000, 0x040000, CRC(ed9fe4c1) SHA1(c3dd8a1324a4dc9b012bd9bf21d1f48578870f72) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-18827.31", 0x000000, 0x200000, CRC(58d78ca1) SHA1(95275ed8315c044bfde2f23c10416f22627b34df) ) - ROM_LOAD( "mpr-18764.32", 0x200000, 0x200000, CRC(0dc6a860) SHA1(cb2ada0f8a592940de11ee781ad4beb5095c3b37) ) - ROM_LOAD( "mpr-18765.36", 0x400000, 0x200000, CRC(ca4a803c) SHA1(70b59da8f2532a02e980caba5bb86ec13a4d7ab5) ) - ROM_LOAD( "mpr-18766.37", 0x600000, 0x200000, CRC(10f3c932) SHA1(5f6da9825b70c1ea83a421e35038042fb17862ec) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( skytargt ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-18406.12", 0x000000, 0x080000, CRC(fde9c00a) SHA1(01cd519daaf6138d9df4940bf8bb5923a1f163df) ) - ROM_LOAD32_WORD( "epr-18407.13", 0x000002, 0x080000, CRC(35f8b529) SHA1(faf6dcf8f345c1e7968823f2dba60afcd88f37c2) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-18415.10", 0x0000000, 0x400000, CRC(d7a1bbd7) SHA1(3061cc68755ca36255f325135aa44659afc3498c) ) - ROM_LOAD32_WORD( "mpr-18416.11", 0x0000002, 0x400000, CRC(b77c9243) SHA1(6ffeef418364df9e08398c7564142cbf5750beb2) ) - ROM_LOAD32_WORD( "mpr-18417.8", 0x0800000, 0x400000, CRC(a0d03f63) SHA1(88b97a76f0a85a3977915808eee4d64b69734e88) ) - ROM_LOAD32_WORD( "mpr-18418.9", 0x0800002, 0x400000, CRC(c7a6f97f) SHA1(cf7c6887519e53d7fa321a2ad888b1673e16565b) ) - ROM_LOAD32_WORD( "epr-18404.6", 0x1000000, 0x080000, CRC(f1407ec4) SHA1(d6805faea657ea0f998fb2470d7d24aa78a02bd4) ) - ROM_RELOAD ( 0x1100000, 0x080000) - ROM_RELOAD ( 0x1200000, 0x080000) - ROM_RELOAD ( 0x1300000, 0x080000) - ROM_RELOAD ( 0x1400000, 0x080000) - ROM_RELOAD ( 0x1500000, 0x080000) - ROM_RELOAD ( 0x1600000, 0x080000) - ROM_RELOAD ( 0x1700000, 0x080000) - ROM_RELOAD ( 0x1800000, 0x080000) - ROM_RELOAD ( 0x1900000, 0x080000) - ROM_RELOAD ( 0x1a00000, 0x080000) - ROM_RELOAD ( 0x1b00000, 0x080000) - ROM_RELOAD ( 0x1c00000, 0x080000) - ROM_RELOAD ( 0x1d00000, 0x080000) - ROM_RELOAD ( 0x1e00000, 0x080000) - ROM_RELOAD ( 0x1f00000, 0x080000) - ROM_LOAD32_WORD( "epr-18405.7", 0x1000002, 0x080000, CRC(00b40f9e) SHA1(21b6b390d8635349ba76899acea176954a24985e) ) - ROM_RELOAD ( 0x1100002, 0x080000) - ROM_RELOAD ( 0x1200002, 0x080000) - ROM_RELOAD ( 0x1300002, 0x080000) - ROM_RELOAD ( 0x1400002, 0x080000) - ROM_RELOAD ( 0x1500002, 0x080000) - ROM_RELOAD ( 0x1600002, 0x080000) - ROM_RELOAD ( 0x1700002, 0x080000) - ROM_RELOAD ( 0x1800002, 0x080000) - ROM_RELOAD ( 0x1900002, 0x080000) - ROM_RELOAD ( 0x1a00002, 0x080000) - ROM_RELOAD ( 0x1b00002, 0x080000) - ROM_RELOAD ( 0x1c00002, 0x080000) - ROM_RELOAD ( 0x1d00002, 0x080000) - ROM_RELOAD ( 0x1e00002, 0x080000) - ROM_RELOAD ( 0x1f00002, 0x080000) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD( "mpr-18420.28", 0x000000, 0x200000, CRC(92b87817) SHA1(b6949b745d0bedeecd6d0240f8911cb345c16d8d) ) - ROM_LOAD32_WORD( "mpr-18419.29", 0x000002, 0x200000, CRC(74542d87) SHA1(37230e96dd526fb47fcbde5778e5466d8955a969) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-18413.16", 0x000000, 0x400000, CRC(1c4d416c) SHA1(2bd6eae4ab5751d485be105a06776fccd3c48d21) ) - ROM_LOAD32_WORD( "mpr-18414.17", 0x000002, 0x400000, CRC(858885ba) SHA1(1729f6ff689a462a3d6e303ebc2dac323145a67c) ) - ROM_LOAD32_WORD( "mpr-18409.20", 0x800000, 0x400000, CRC(666037ef) SHA1(6f622a82fd5ffd7a4692b5bf51b76755053a674b) ) - ROM_LOAD32_WORD( "mpr-18410.21", 0x800002, 0x400000, CRC(b821a695) SHA1(139cbba0ceffa83c0f9925258944ec8a414b3040) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-18411.24", 0x000000, 0x400000, CRC(9c2dc40c) SHA1(842a647a70ef29a8c775e88c0bcbc63782496bba) ) - ROM_LOAD32_WORD( "mpr-18412.25", 0x000002, 0x400000, CRC(4db52f8b) SHA1(66796f6c20e680a87e8939a70692680b1dd0b324) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-18408.30", 0x080000, 0x080000, CRC(6deb9657) SHA1(30e1894432a0765c64b93dd5ca7ca17ef58ac6c0) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-18424.31", 0x000000, 0x200000, CRC(590a4338) SHA1(826f167d7a4f5d30466b2f75f0123187c29c2d69) ) - ROM_LOAD( "mpr-18423.32", 0x200000, 0x200000, CRC(c356d765) SHA1(ae69c9d4e333579d826178d2863156dc784aedef) ) - ROM_LOAD( "mpr-18422.36", 0x400000, 0x200000, CRC(b4f3cea6) SHA1(49669be09e10dfae7fddce0fc4e415466cb29566) ) - ROM_LOAD( "mpr-18421.37", 0x600000, 0x200000, CRC(00522390) SHA1(5dbbf2ba008adad36929fcecb7c2c1e5ffd12618) ) -ROM_END - -ROM_START( vcop2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-18524.12", 0x000000, 0x080000, CRC(1858988b) SHA1(2979f8470cc31e6c5c32c6fec1a87dbd29b52309) ) - ROM_LOAD32_WORD( "epr-18525.13", 0x000002, 0x080000, CRC(0c13df3f) SHA1(6b4188f04aad80b89f1826e8ca47cff763980410) ) - ROM_LOAD32_WORD( "epr-18518.14", 0x100000, 0x080000, CRC(7842951b) SHA1(bed4ec9a5e59807d17e5e602bdaf3c68fcba08b6) ) - ROM_LOAD32_WORD( "epr-18519.15", 0x100002, 0x080000, CRC(31a30edc) SHA1(caf3c2676508a2ed032d3657ac640a257f04bdd4) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-18516.10", 0x000000, 0x200000, CRC(a3928ff0) SHA1(5a9695fb5eda394a1111a05ee5fb9cce29970e91) ) - ROM_LOAD32_WORD( "mpr-18517.11", 0x000002, 0x200000, CRC(4bd73da4) SHA1(a4434bce019729e2148a95e3a6dea38de7f789c1) ) - ROM_LOAD32_WORD( "mpr-18514.8", 0x400000, 0x200000, CRC(791283c5) SHA1(006fb22eefdd9205ede9a74fe53cbffe8c8fd45b) ) - ROM_LOAD32_WORD( "mpr-18515.9", 0x400002, 0x200000, CRC(6ba1ffec) SHA1(70f493aa4eb93edce8dd5b7b532d1f50f81069ce) ) - ROM_LOAD32_WORD( "mpr-18522.6", 0x800000, 0x200000, CRC(61d18536) SHA1(cc467cb26a8fccc48837d000fe9e1c41b0c0f4f9) ) - ROM_LOAD32_WORD( "mpr-18523.7", 0x800002, 0x200000, CRC(61d08dc4) SHA1(40d8231d184582c0fc01ad874371aaec7dfcc337) ) - ROM_LOAD32_WORD( "mpr-18520.4", 0xc00000, 0x080000, CRC(1d4ec5e8) SHA1(44c4b5560d150909342e4182496f136c8c5e2edb) ) - ROM_RELOAD ( 0xd00000, 0x080000 ) - ROM_RELOAD ( 0xe00000, 0x080000 ) - ROM_RELOAD ( 0xf00000, 0x080000 ) - ROM_LOAD32_WORD( "mpr-18521.5", 0xc00002, 0x080000, CRC(b8b3781c) SHA1(11956fe912c34d6a86a6b91d55987f6bead73473) ) - ROM_RELOAD ( 0xd00002, 0x080000 ) - ROM_RELOAD ( 0xe00002, 0x080000 ) - ROM_RELOAD ( 0xf00002, 0x080000 ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-18513.16", 0x000000, 0x200000, CRC(777a3633) SHA1(edc2798c4d88975ce67b54fc0db008e7d24db6ef) ) - ROM_LOAD32_WORD( "mpr-18510.20", 0x000002, 0x200000, CRC(083f5186) SHA1(0f9d5c6e18bf3ae5d6bc195f513668286aa23478) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-18511.24", 0x000000, 0x200000, CRC(cae77a4f) SHA1(f21474486f0dc4092cbad4566deea8a952862ab7) ) - ROM_LOAD32_WORD( "mpr-18512.25", 0x000002, 0x200000, CRC(d9bc7e71) SHA1(774eba886083b0dad9a47519c5801e44346312cf) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-18530.30", 0x080000, 0x080000, CRC(ac9c8357) SHA1(ad297c7fecaa9b877f0dd31e859983816947e437) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-18529.31", 0x000000, 0x200000, CRC(f76715b1) SHA1(258418c1cb37338a694e48f3b48fadfae5f40239) ) - ROM_LOAD( "mpr-18528.32", 0x200000, 0x200000, CRC(287a2f9a) SHA1(78ba93ab90322152efc37f7130073b0dc516ef5d) ) - ROM_LOAD( "mpr-18527.36", 0x400000, 0x200000, CRC(e6a49314) SHA1(26563f425f2f0906ae9278fe5de02955653d49fe) ) - ROM_LOAD( "mpr-18526.37", 0x600000, 0x200000, CRC(6516d9b5) SHA1(8f13cb02c76f7b7cd11f3c3772ff13302d55e9c3) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( dynamcop ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20930.12", 0x000000, 0x080000, CRC(b8fc8ff7) SHA1(53b0f9dc8494effa077170ddced2d95f43a5f134) ) - ROM_LOAD32_WORD("epr-20931.13", 0x000002, 0x080000, CRC(89d13f88) SHA1(5e266b5e153a0d9a57360cfd1af81e3a58a2fb7d) ) - ROM_LOAD32_WORD("epr-20932.14", 0x100000, 0x080000, CRC(618a68bf) SHA1(3022283dded4d08d790d034b6d543c0397b5bf5a) ) - ROM_LOAD32_WORD("epr-20933.15", 0x100002, 0x080000, CRC(13abe49c) SHA1(a741a0205c1b3664ab4d09d6d991a768269a79ea) ) - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20797.10", 0x0000000, 0x400000, CRC(87bab1e4) SHA1(af2b2d82364621a1528d6ed59fbfbf15dc93ee72) ) - ROM_LOAD32_WORD("mpr-20798.11", 0x0000002, 0x400000, CRC(40dd752b) SHA1(8c2e210ac7c7b133ba9befc79a07c4ca6b4e3f18) ) - ROM_LOAD32_WORD("mpr-20795.8", 0x0800000, 0x400000, CRC(0ef85e12) SHA1(97c657edd98cde6f0780a04a7711e5b370087a60) ) - ROM_LOAD32_WORD("mpr-20796.9", 0x0800002, 0x400000, CRC(870139cb) SHA1(24fda2cd458cf7a3db485564c02ac61d30cbdf5e) ) - ROM_LOAD32_WORD("mpr-20793.6", 0x1000000, 0x400000, CRC(42ea08f8) SHA1(e70b55709067628ea0bf3f5190a300100b61eed1) ) - ROM_LOAD32_WORD("mpr-20794.7", 0x1000002, 0x400000, CRC(8e5cd1db) SHA1(d90e86d38bda12f2d0f99e23a42928f05bde3ea8) ) - ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) ) - ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) ) - ROM_LOAD32_WORD("mpr-20803.20", 0x0000002, 0x400000, CRC(61a8ad52) SHA1(0215b5de6d10f0852ac0ca4e10475e10243e39c7) ) - ROM_LOAD32_WORD("mpr-20800.17", 0x0800000, 0x400000, CRC(3c2ee808) SHA1(dc0c470c6b410ab991ef0e09ce1cc0f63c8a204d) ) - ROM_LOAD32_WORD("mpr-20804.21", 0x0800002, 0x400000, CRC(03b35cb8) SHA1(7bd2ae89f9cc7c0570dbaffe5f54aea2dfa1b39e) ) - ROM_LOAD32_WORD("mpr-20801.18", 0x1000000, 0x400000, CRC(c6914173) SHA1(d0861366c4123c833a325df5345f951386a94d1a) ) - ROM_LOAD32_WORD("mpr-20805.22", 0x1000002, 0x400000, CRC(f6605ede) SHA1(7c95bfe2e95bae3d59c3c9efe1f40b5bc292ad44) ) - ROM_LOAD32_WORD("mpr-20802.19", 0x1800000, 0x400000, CRC(d11b5267) SHA1(b90909849fbe0f62d5ec7c38608c84e7fa845ebf) ) - ROM_LOAD32_WORD("mpr-20806.23", 0x1800002, 0x400000, CRC(0c942073) SHA1(5f32a56857e2213b110c32deea184dba882e34b8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20809.25", 0x0000000, 0x400000, CRC(3b7b4622) SHA1(c6f1a1fd2684f352d3846b7f859b0405fa2d667a) ) - ROM_LOAD32_WORD("mpr-20807.24", 0x0000002, 0x400000, CRC(1241e0f2) SHA1(3f7fa1d7d3d398bc8d5295bc1df6fe11405d20d9) ) - ROM_LOAD32_WORD("mpr-20810.27", 0x0800000, 0x400000, CRC(838a10a7) SHA1(a658f1864829058b1d419e7c001e47cd0ab06a20) ) - ROM_LOAD32_WORD("mpr-20808.26", 0x0800002, 0x400000, CRC(706bd495) SHA1(f857b303afda6301b19d97dfe5c313126261716e) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20811.30", 0x080000, 0x80000, CRC(a154b83e) SHA1(2640c6b6966f4a888329e583b6b713bd0e779b6b) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20812.31", 0x000000, 0x200000, CRC(695b6088) SHA1(09682d18144e60d740a9d7a3e19db6f76fa581f1) ) - ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) - ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) - ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( dyndeka2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20922.12", 0x000000, 0x080000, CRC(0a8b5604) SHA1(4076998fc600c1df3bb5ef48d42681c01e651495) ) - ROM_LOAD32_WORD("epr-20923.13", 0x000002, 0x080000, CRC(83be73d4) SHA1(1404a9c79cd2bae13f60e5e008307417324c3666) ) - ROM_LOAD32_WORD("epr-20924.14", 0x100000, 0x080000, CRC(618a68bf) SHA1(3022283dded4d08d790d034b6d543c0397b5bf5a) ) /* same as epr-20932.14 listed above */ - ROM_LOAD32_WORD("epr-20925.15", 0x100002, 0x080000, CRC(13abe49c) SHA1(a741a0205c1b3664ab4d09d6d991a768269a79ea) ) /* same as epr-20933.15 listed above */ - - ROM_REGION32_LE( 0x2400000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20797.10", 0x0000000, 0x400000, CRC(87bab1e4) SHA1(af2b2d82364621a1528d6ed59fbfbf15dc93ee72) ) - ROM_LOAD32_WORD("mpr-20798.11", 0x0000002, 0x400000, CRC(40dd752b) SHA1(8c2e210ac7c7b133ba9befc79a07c4ca6b4e3f18) ) - ROM_LOAD32_WORD("mpr-20795.8", 0x0800000, 0x400000, CRC(0ef85e12) SHA1(97c657edd98cde6f0780a04a7711e5b370087a60) ) - ROM_LOAD32_WORD("mpr-20796.9", 0x0800002, 0x400000, CRC(870139cb) SHA1(24fda2cd458cf7a3db485564c02ac61d30cbdf5e) ) - ROM_LOAD32_WORD("mpr-20793.6", 0x1000000, 0x400000, CRC(42ea08f8) SHA1(e70b55709067628ea0bf3f5190a300100b61eed1) ) - ROM_LOAD32_WORD("mpr-20794.7", 0x1000002, 0x400000, CRC(8e5cd1db) SHA1(d90e86d38bda12f2d0f99e23a42928f05bde3ea8) ) - ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) ) - ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) ) - ROM_LOAD32_WORD("mpr-20803.20", 0x0000002, 0x400000, CRC(61a8ad52) SHA1(0215b5de6d10f0852ac0ca4e10475e10243e39c7) ) - ROM_LOAD32_WORD("mpr-20800.17", 0x0800000, 0x400000, CRC(3c2ee808) SHA1(dc0c470c6b410ab991ef0e09ce1cc0f63c8a204d) ) - ROM_LOAD32_WORD("mpr-20804.21", 0x0800002, 0x400000, CRC(03b35cb8) SHA1(7bd2ae89f9cc7c0570dbaffe5f54aea2dfa1b39e) ) - ROM_LOAD32_WORD("mpr-20801.18", 0x1000000, 0x400000, CRC(c6914173) SHA1(d0861366c4123c833a325df5345f951386a94d1a) ) - ROM_LOAD32_WORD("mpr-20805.22", 0x1000002, 0x400000, CRC(f6605ede) SHA1(7c95bfe2e95bae3d59c3c9efe1f40b5bc292ad44) ) - ROM_LOAD32_WORD("mpr-20802.19", 0x1800000, 0x400000, CRC(d11b5267) SHA1(b90909849fbe0f62d5ec7c38608c84e7fa845ebf) ) - ROM_LOAD32_WORD("mpr-20806.23", 0x1800002, 0x400000, CRC(0c942073) SHA1(5f32a56857e2213b110c32deea184dba882e34b8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20809.25", 0x0000000, 0x400000, CRC(3b7b4622) SHA1(c6f1a1fd2684f352d3846b7f859b0405fa2d667a) ) - ROM_LOAD32_WORD("mpr-20807.24", 0x0000002, 0x400000, CRC(1241e0f2) SHA1(3f7fa1d7d3d398bc8d5295bc1df6fe11405d20d9) ) - ROM_LOAD32_WORD("mpr-20810.27", 0x0800000, 0x400000, CRC(838a10a7) SHA1(a658f1864829058b1d419e7c001e47cd0ab06a20) ) - ROM_LOAD32_WORD("mpr-20808.26", 0x0800002, 0x400000, CRC(706bd495) SHA1(f857b303afda6301b19d97dfe5c313126261716e) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20811.30", 0x080000, 0x80000, CRC(a154b83e) SHA1(2640c6b6966f4a888329e583b6b713bd0e779b6b) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20812.31", 0x000000, 0x200000, CRC(695b6088) SHA1(09682d18144e60d740a9d7a3e19db6f76fa581f1) ) - ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) - ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) - ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( dynmcopb ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("progrom0.15", 0x000000, 0x080000, CRC(29b142f2) SHA1(b81d1ee7203b2f5fb6db4ff4185f4071e99aaedf) ) /* These 4 rom names/numbers need to verified/corrected */ - ROM_LOAD32_WORD("progrom1.16", 0x000002, 0x080000, CRC(c495912e) SHA1(1a45296a5554923cb52b38586e40ceda2517f1bf) ) - ROM_LOAD32_WORD("epr-20932.13", 0x100000, 0x080000, CRC(618a68bf) SHA1(3022283dded4d08d790d034b6d543c0397b5bf5a) ) /* same as epr-20932.14, but Model 2B has different rom layout */ - ROM_LOAD32_WORD("epr-20933.14", 0x100002, 0x080000, CRC(13abe49c) SHA1(a741a0205c1b3664ab4d09d6d991a768269a79ea) ) /* same as epr-20933.15, but Model 2B has different rom layout */ - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20797.10", 0x0000000, 0x400000, CRC(87bab1e4) SHA1(af2b2d82364621a1528d6ed59fbfbf15dc93ee72) ) - ROM_LOAD32_WORD("mpr-20798.11", 0x0000002, 0x400000, CRC(40dd752b) SHA1(8c2e210ac7c7b133ba9befc79a07c4ca6b4e3f18) ) - ROM_LOAD32_WORD("mpr-20795.8", 0x0800000, 0x400000, CRC(0ef85e12) SHA1(97c657edd98cde6f0780a04a7711e5b370087a60) ) - ROM_LOAD32_WORD("mpr-20796.9", 0x0800002, 0x400000, CRC(870139cb) SHA1(24fda2cd458cf7a3db485564c02ac61d30cbdf5e) ) - ROM_LOAD32_WORD("mpr-20793.6", 0x1000000, 0x400000, CRC(42ea08f8) SHA1(e70b55709067628ea0bf3f5190a300100b61eed1) ) - ROM_LOAD32_WORD("mpr-20794.7", 0x1000002, 0x400000, CRC(8e5cd1db) SHA1(d90e86d38bda12f2d0f99e23a42928f05bde3ea8) ) - ROM_LOAD32_WORD("mpr-20791.4", 0x1800000, 0x400000, CRC(4883d0df) SHA1(b98af63e81f6c1b2766d7e96acbd1821bba000d4) ) - ROM_LOAD32_WORD("mpr-20792.5", 0x1800002, 0x400000, CRC(47becfa2) SHA1(a333885872a64b322f3cb464a70352d73654b1b3) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20799.16", 0x0000000, 0x400000, CRC(424571bf) SHA1(18a4e8d0e968fff3b645b59a0023b0ef38d51924) ) - ROM_LOAD32_WORD("mpr-20803.20", 0x0000002, 0x400000, CRC(61a8ad52) SHA1(0215b5de6d10f0852ac0ca4e10475e10243e39c7) ) - ROM_LOAD32_WORD("mpr-20800.17", 0x0800000, 0x400000, CRC(3c2ee808) SHA1(dc0c470c6b410ab991ef0e09ce1cc0f63c8a204d) ) - ROM_LOAD32_WORD("mpr-20804.21", 0x0800002, 0x400000, CRC(03b35cb8) SHA1(7bd2ae89f9cc7c0570dbaffe5f54aea2dfa1b39e) ) - ROM_LOAD32_WORD("mpr-20801.18", 0x1000000, 0x400000, CRC(c6914173) SHA1(d0861366c4123c833a325df5345f951386a94d1a) ) - ROM_LOAD32_WORD("mpr-20805.22", 0x1000002, 0x400000, CRC(f6605ede) SHA1(7c95bfe2e95bae3d59c3c9efe1f40b5bc292ad44) ) - ROM_LOAD32_WORD("mpr-20802.19", 0x1800000, 0x400000, CRC(d11b5267) SHA1(b90909849fbe0f62d5ec7c38608c84e7fa845ebf) ) - ROM_LOAD32_WORD("mpr-20806.23", 0x1800002, 0x400000, CRC(0c942073) SHA1(5f32a56857e2213b110c32deea184dba882e34b8) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20809.25", 0x0000000, 0x400000, CRC(3b7b4622) SHA1(c6f1a1fd2684f352d3846b7f859b0405fa2d667a) ) - ROM_LOAD32_WORD("mpr-20807.24", 0x0000002, 0x400000, CRC(1241e0f2) SHA1(3f7fa1d7d3d398bc8d5295bc1df6fe11405d20d9) ) - ROM_LOAD32_WORD("mpr-20810.27", 0x0800000, 0x400000, CRC(838a10a7) SHA1(a658f1864829058b1d419e7c001e47cd0ab06a20) ) - ROM_LOAD32_WORD("mpr-20808.26", 0x0800002, 0x400000, CRC(706bd495) SHA1(f857b303afda6301b19d97dfe5c313126261716e) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-20811.30", 0x080000, 0x80000, CRC(a154b83e) SHA1(2640c6b6966f4a888329e583b6b713bd0e779b6b) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20812.31", 0x000000, 0x200000, CRC(695b6088) SHA1(09682d18144e60d740a9d7a3e19db6f76fa581f1) ) - ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) - ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) - ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) -ROM_END - -ROM_START( schamp ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19001.15", 0x000000, 0x080000, CRC(9b088511) SHA1(20718d985d14f4d2b1b8e982bfbebddd73cdb972) ) - ROM_LOAD32_WORD("epr-19002.16", 0x000002, 0x080000, CRC(46f510da) SHA1(edcbf61122db568ccaa4c3106f507087c1740c9b) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19007.11", 0x0000000, 0x400000, CRC(8b8ff751) SHA1(5343a9a2502052e3587424c984bd48caa7564849) ) - ROM_LOAD32_WORD("mpr-19008.12", 0x0000002, 0x400000, CRC(a94654f5) SHA1(39ad2e9431543ea6cbc0307bc39933cf64956a74) ) - ROM_LOAD32_WORD("mpr-19005.9", 0x0800000, 0x400000, CRC(98cd1127) SHA1(300c9cdef199f31255bacb95399e9c75be73f817) ) - ROM_LOAD32_WORD("mpr-19006.10", 0x0800002, 0x400000, CRC(e79f0a26) SHA1(37a4ff13cfccfda587ca59a9ef08b5914d2c28d4) ) - ROM_LOAD32_WORD("epr-19003.7", 0x1000000, 0x080000, CRC(63bae5c5) SHA1(cbd55b7b7376ac2f67befaf4c43eef3727ba7b7f) ) - ROM_RELOAD ( 0x1100000, 0x080000) - ROM_RELOAD ( 0x1200000, 0x080000) - ROM_RELOAD ( 0x1300000, 0x080000) - ROM_RELOAD ( 0x1400000, 0x080000) - ROM_RELOAD ( 0x1500000, 0x080000) - ROM_RELOAD ( 0x1600000, 0x080000) - ROM_RELOAD ( 0x1700000, 0x080000) - ROM_RELOAD ( 0x1800000, 0x080000) - ROM_RELOAD ( 0x1900000, 0x080000) - ROM_RELOAD ( 0x1a00000, 0x080000) - ROM_RELOAD ( 0x1b00000, 0x080000) - ROM_RELOAD ( 0x1c00000, 0x080000) - ROM_RELOAD ( 0x1d00000, 0x080000) - ROM_RELOAD ( 0x1e00000, 0x080000) - ROM_RELOAD ( 0x1f00000, 0x080000) - ROM_LOAD32_WORD("epr-19004.8", 0x1000002, 0x080000, CRC(c10c9f39) SHA1(cf806501dbfa48d16cb7ed5f39a6146f734ba455) ) - ROM_RELOAD ( 0x1100002, 0x080000) - ROM_RELOAD ( 0x1200002, 0x080000) - ROM_RELOAD ( 0x1300002, 0x080000) - ROM_RELOAD ( 0x1400002, 0x080000) - ROM_RELOAD ( 0x1500002, 0x080000) - ROM_RELOAD ( 0x1600002, 0x080000) - ROM_RELOAD ( 0x1700002, 0x080000) - ROM_RELOAD ( 0x1800002, 0x080000) - ROM_RELOAD ( 0x1900002, 0x080000) - ROM_RELOAD ( 0x1a00002, 0x080000) - ROM_RELOAD ( 0x1b00002, 0x080000) - ROM_RELOAD ( 0x1c00002, 0x080000) - ROM_RELOAD ( 0x1d00002, 0x080000) - ROM_RELOAD ( 0x1e00002, 0x080000) - ROM_RELOAD ( 0x1f00002, 0x080000) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("mpr-19015.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) ) - ROM_LOAD32_WORD("mpr-19016.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19009.17", 0x000000, 0x400000, CRC(fd410350) SHA1(5af3a90c87ec8a90a8fc58ae469ef23ec6e6213c) ) - ROM_LOAD32_WORD("mpr-19012.21", 0x000002, 0x400000, CRC(9bb7b5b6) SHA1(8e13a0bb34e187a340b38d76ab15ff6fe4bae764) ) - ROM_LOAD32_WORD("mpr-19010.18", 0x800000, 0x400000, CRC(6fd94187) SHA1(e3318ef0eb0168998e139e527339c7c667c17fb1) ) - ROM_LOAD32_WORD("mpr-19013.22", 0x800002, 0x400000, CRC(9e232fe5) SHA1(a6c4b2b3bf8efc6f6263f73d6f4cacf9785010c1) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19019.27", 0x000000, 0x400000, CRC(59121896) SHA1(c29bedb41b14d63c6067ae12ad009deaafca2aa4) ) - ROM_LOAD32_WORD("mpr-19017.25", 0x000002, 0x400000, CRC(7b298379) SHA1(52fad61412040c90c7dd300c0fd7aa5b8d5af441) ) - ROM_LOAD32_WORD("mpr-19020.28", 0x800000, 0x400000, CRC(9540dba0) SHA1(7b9a75caa8c5b12ba54c6f4f746d80b165ee97ab) ) - ROM_LOAD32_WORD("mpr-19018.26", 0x800002, 0x400000, CRC(3b7e7a12) SHA1(9c707a7c2cffc5eff19f9919ddfae7300842fd19) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19021.31", 0x080000, 0x80000, CRC(0b9f7583) SHA1(21290389cd8bd9e52ed438152cc6cb5793f809d3) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19022.32", 0x000000, 0x200000, CRC(4381869b) SHA1(43a21609b49926a227558d4938088526acf1fe42) ) - ROM_LOAD("mpr-19023.33", 0x200000, 0x200000, CRC(07c67f88) SHA1(696dc85e066fb27c7618e52e0acd0d00451e4589) ) - ROM_LOAD("mpr-19024.34", 0x400000, 0x200000, CRC(15ff76d3) SHA1(b431bd85c973aa0a4d6032ac98fb057139f142a2) ) - ROM_LOAD("mpr-19025.35", 0x600000, 0x200000, CRC(6ad8fb70) SHA1(b666d31f9be26eb0cdcb71041a3c3c08d5aa41e1) ) -ROM_END - -ROM_START( stcc ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19272a.15", 0x000000, 0x080000, CRC(20cedd05) SHA1(e465967c784de18caaaac77e164796e9779f576a) ) - ROM_LOAD32_WORD("epr-19273a.16", 0x000002, 0x080000, CRC(1b0ab4d6) SHA1(142bcd53fa6632fcc866bbda817aa83470111ef1) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19257.11", 0x000000, 0x400000, CRC(ac28ee24) SHA1(31d360dc435336942f70365d0491a2ccfc24c4c0) ) - ROM_LOAD32_WORD("mpr-19258.12", 0x000002, 0x400000, CRC(f5ba7d78) SHA1(9c8304a1f856d1ded869ed2b86de52129510f019) ) - ROM_LOAD32_WORD("epr-19270.9", 0x800000, 0x080000, CRC(7bd1d04e) SHA1(0490f3abc97af16e05f0dc9623e8fc635b1d4262) ) - ROM_LOAD32_WORD("epr-19271.10", 0x800002, 0x080000, CRC(d2d74f85) SHA1(49e7a1e6478122b4f0e679d7b336fb34044b503b) ) - ROM_COPY(REGION_USER1, 0x800000, 0x900000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xa00000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xb00000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xc00000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xd00000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xe00000, 0x100000) - ROM_COPY(REGION_USER1, 0x800000, 0xf00000, 0x100000) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGPx4 program - ROM_LOAD32_WORD("mpr-19255.29", 0x000000, 0x200000, CRC(d78bf030) SHA1(e6b3d8422613d22db50cf6c251f9a21356d96653) ) - ROM_LOAD32_WORD("mpr-19256.30", 0x000002, 0x200000, CRC(cb2b2d9e) SHA1(86b2b8bb6074352f72eb81e616093a1ba6f5163f) ) - - ROM_REGION( 0x900000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19251.17", 0x000000, 0x400000, CRC(e06ff7ba) SHA1(6d472d03cd3caeb66be929c74ae63c32d305a3db) ) - ROM_LOAD32_WORD("mpr-19252.21", 0x000002, 0x400000, CRC(68509993) SHA1(654d5cdf44e7e1e788b26593f418ce76a5c1165a) ) - ROM_LOAD32_WORD("epr-19266.18", 0x800000, 0x080000, CRC(41464ee2) SHA1(afbbc0328bd36c34c69f0f54404dfd6a64036417) ) - ROM_LOAD32_WORD("epr-19267.22", 0x800002, 0x080000, CRC(780f994d) SHA1(f134482ed0fcfc7b3eea39947da47081301a111a) ) - - ROM_REGION( 0x900000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19254.27", 0x000000, 0x200000, CRC(1ec49c02) SHA1(a9bdbab7b4b265c9118cf27fd45ca94f4516d5c6) ) - ROM_RELOAD ( 0x400000, 0x200000 ) - ROM_LOAD32_WORD("mpr-19253.25", 0x000002, 0x200000, CRC(41ba79fb) SHA1(f4d8a4f8278eec6d528bd947b91ebeb5223559d5) ) - ROM_RELOAD ( 0x400002, 0x200000 ) - ROM_LOAD32_WORD("epr-19269.28", 0x800000, 0x080000, CRC(01881121) SHA1(fe711709e70b3743b2a0318b823d859f233d3ff8) ) - ROM_LOAD32_WORD("epr-19268.26", 0x800002, 0x080000, CRC(bc4e081c) SHA1(b89d39ed19a146d1e94e52682f67d2cd23d8df7f) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19274.31", 0x080000, 0x20000, CRC(2dcc08ae) SHA1(bad26e2c994f2d4db5d9be0e34cf21a8bf5aa7e9) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // DSB program - ROM_LOAD16_WORD_SWAP("epr-19275.2s", 0x000000, 0x20000, CRC(ee809d3f) SHA1(347080858fbfe9955002f382603a1b86a52d26d5) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0) // Communication program - ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a)) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD16_WORD_SWAP("mpr-19259.32", 0x000000, 0x400000, CRC(4d55dbfc) SHA1(6e57e6e6e785b0f14bb5e221a44d518dbde7ad65)) - ROM_LOAD16_WORD_SWAP("mpr-19261.34", 0x400000, 0x400000, CRC(b88878ff) SHA1(4bebcfba68b0cc2fa0bcacfaaf2d2e8af3625c5d)) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) // MPEG audio data - ROM_LOAD("mpr-19262.57s", 0x000000, 0x200000, CRC(922aed7a) SHA1(8d6872bdd46eaf2076c10d18c10af8ccbd3b10e8)) - ROM_LOAD("mpr-19263.58s", 0x200000, 0x200000, CRC(a256f4cd) SHA1(a17b49050f1ecf1970477b12201cc3b58b31d89c)) - ROM_LOAD("mpr-19264.59s", 0x400000, 0x200000, CRC(b6c51d0f) SHA1(9e0969a1e49ec1462f69cd0f0f9ce630d66174ce)) - ROM_LOAD("mpr-19265.60s", 0x600000, 0x200000, CRC(7d98700a) SHA1(bedd37314ecab424b5b27030e1e7dc1b596303f3)) -ROM_END - -ROM_START( skisuprg ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-19489.15", 0x000000, 0x080000, CRC(1df948a7) SHA1(a38faeb97c65b379ad05f7311b55217118c8d2be) ) - ROM_LOAD32_WORD( "epr-19490.16", 0x000002, 0x080000, CRC(e6fc24d3) SHA1(1ac9172cf0b4d6a3488483ffa490a4ca5d410927) ) - ROM_LOAD32_WORD( "epr-19551.13", 0x100000, 0x080000, CRC(3ee8f0d5) SHA1(23f45858559776a70b3b57f4cb2840f44e6a6531) ) - ROM_LOAD32_WORD( "epr-19552.14", 0x100002, 0x080000, CRC(baa2e49a) SHA1(b234f3b65e8fabfb6ec7ca62dd9a1d2935b2e95a) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-19494.11", 0x000000, 0x400000, CRC(f19cdb5c) SHA1(bdbb7d9e91a7742ff5a908b6244adbed291e5e7f) ) - ROM_LOAD32_WORD( "mpr-19495.12", 0x000002, 0x400000, CRC(d42e5ef2) SHA1(21ca5e7e543595a4691aacdbcdd2af21d464d939) ) - ROM_LOAD32_WORD( "mpr-19492.9", 0x800000, 0x400000, CRC(4805318f) SHA1(dbd1359817933313c6d74d3a1450682e8ce5857a) ) - ROM_LOAD32_WORD( "mpr-19493.10", 0x800002, 0x400000, CRC(39daa909) SHA1(e29e50c7fc39bd4945f993ceaa100358054efc5a) ) - - ROM_REGION( 0x800000, REGION_CPU3, 0 ) // TGPx4 program - ROM_LOAD32_WORD( "mpr-19502.29", 0x000000, 0x400000, CRC(2212d8d6) SHA1(3b8a4da2dc00a1eac41b48cbdc322ea1c31b8b29) ) - ROM_LOAD32_WORD( "mpr-19503.30", 0x000002, 0x400000, CRC(3c9cfc73) SHA1(2213485a00cef0bcef11b67f00027c4159c5e2f5) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-19496.17", 0x000000, 0x400000, CRC(0e9aef4e) SHA1(d4b511b90c0a6e27d6097cb25ff005f68d5fa83c) ) - ROM_LOAD32_WORD( "mpr-19497.21", 0x000002, 0x400000, CRC(5397efe9) SHA1(4b20bab36462f9506fa2601c2545051ca49de7f5) ) - ROM_LOAD32_WORD( "mpr-19498.18", 0x800000, 0x400000, CRC(32e5ae60) SHA1(b8a1cc117875c3919a78eedb60a06926288d9b95) ) - ROM_LOAD32_WORD( "mpr-19499.22", 0x800002, 0x400000, CRC(2b9f5b48) SHA1(40f3f2844244c3f1c8792aa262872243ad20fd69) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-19501.27", 0x000000, 0x400000, CRC(66d7b02e) SHA1(cede0dc5c8d9fbfa8de01fe864b3cc101abf67d7) ) - ROM_LOAD32_WORD( "mpr-19500.25", 0x000002, 0x400000, CRC(905f5798) SHA1(31f104e3022b5bc7ed7c667eb801a57949a06c93) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-19491.31", 0x000000, 0x080000, CRC(1c9b15fd) SHA1(045244a4eebc45f149aecf47f090cede1813477b) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-19504.32", 0x000000, 0x400000, CRC(9419ec08) SHA1(d05d9ceb7fd09fa8991c0df4d1c57eb621460e30) ) - ROM_LOAD( "mpr-19505.34", 0x400000, 0x400000, CRC(eba7f41d) SHA1(f6e521bedf298808a768f6fdcb0b60b320a66d04) ) -ROM_END - -ROM_START( hotd ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19696.15", 0x000000, 0x080000, CRC(03da5623) SHA1(be0bd34a9216375c7204445f084f6c74c4d3b0c8) ) - ROM_LOAD32_WORD("epr-19697.16", 0x000002, 0x080000, CRC(a9722d87) SHA1(0b14f9a81272f79a5b294bc024711042c5fb2637) ) - ROM_LOAD32_WORD("epr-19694.13", 0x100000, 0x080000, CRC(e85ca1a3) SHA1(3d688be98f78fe40c2af1e91df6decd500400ae9) ) - ROM_LOAD32_WORD("epr-19695.14", 0x100002, 0x080000, CRC(cd52b461) SHA1(bc96ab2a4ba7f30c0b89814acc8931c8bf800a82) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19704.11", 0x0000000, 0x400000, CRC(aa80dbb0) SHA1(24e63f4392847f288971469cd10448536eb435d4) ) - ROM_LOAD32_WORD("mpr-19705.12", 0x0000002, 0x400000, CRC(f906843b) SHA1(bee4f43b3ad15d93a2f9f07b873c9cf5d228e2f9) ) - ROM_LOAD32_WORD("mpr-19702.9", 0x0800000, 0x400000, CRC(fc8aa3b7) SHA1(b64afb17d9c97277d8c4f20811f14f65a61cbb56) ) - ROM_LOAD32_WORD("mpr-19703.10", 0x0800002, 0x400000, CRC(208d993d) SHA1(e5c45ea5621f99661a87ffe88e24764d2bbcb51e) ) - ROM_LOAD32_WORD("mpr-19700.7", 0x1000000, 0x400000, CRC(0558cfd3) SHA1(94440839d3325176c2d03f39a78949d0ef040bba) ) - ROM_LOAD32_WORD("mpr-19701.8", 0x1000002, 0x400000, CRC(224a8929) SHA1(933770546d46abca400e7f524eff2ae89241e56d) ) - ROM_LOAD32_WORD("epr-19698.5", 0x1800000, 0x080000, CRC(e7a7b6ea) SHA1(77cb53f8730fdb55080b70910ab8c750d79acb02) ) - ROM_RELOAD ( 0x1900000, 0x080000) - ROM_RELOAD ( 0x1a00000, 0x080000) - ROM_RELOAD ( 0x1b00000, 0x080000) - ROM_RELOAD ( 0x1c00000, 0x080000) - ROM_RELOAD ( 0x1d00000, 0x080000) - ROM_RELOAD ( 0x1e00000, 0x080000) - ROM_RELOAD ( 0x1f00000, 0x080000) - ROM_LOAD32_WORD("epr-19699.6", 0x1800002, 0x080000, CRC(8160b3d9) SHA1(9dab483c60624dddba8085e94a4325739592ec17) ) - ROM_RELOAD ( 0x1900002, 0x080000) - ROM_RELOAD ( 0x1a00002, 0x080000) - ROM_RELOAD ( 0x1b00002, 0x080000) - ROM_RELOAD ( 0x1c00002, 0x080000) - ROM_RELOAD ( 0x1d00002, 0x080000) - ROM_RELOAD ( 0x1e00002, 0x080000) - ROM_RELOAD ( 0x1f00002, 0x080000) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) // TGPx4 program - ROM_LOAD32_WORD("epr-19707.29", 0x000000, 0x080000, CRC(384fd133) SHA1(6d060378d0f801b04d12e7ee874f2fa0572992d9) ) - ROM_LOAD32_WORD("epr-19706.30", 0x000002, 0x080000, CRC(1277531c) SHA1(08d3e733ba9989fcd32290634171c73f26ab6e2b) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19715.17", 0x0000000, 0x400000, CRC(3ff7dda7) SHA1(0a61b091bb0bc659f0cbca8ad401d0925a1dc2ea) ) - ROM_LOAD32_WORD("mpr-19711.21", 0x0000002, 0x400000, CRC(080d13f1) SHA1(4167428a2a903aea2c14631ccf924afb81338b89) ) - ROM_LOAD32_WORD("mpr-19714.18", 0x0800000, 0x400000, CRC(3e55ab49) SHA1(70b4c1627db80e6734112c02265495e2b4a53278) ) - ROM_LOAD32_WORD("mpr-19710.22", 0x0800002, 0x400000, CRC(80df1036) SHA1(3cc59bb4910aa5382e95762f63325c06b763bd23) ) - ROM_LOAD32_WORD("mpr-19713.19", 0x1000000, 0x400000, CRC(4d092cd3) SHA1(b6d0be283c25235249186751c7f025a7c38d2f36) ) - ROM_LOAD32_WORD("mpr-19709.23", 0x1000002, 0x400000, CRC(d08937bf) SHA1(c92571e35960f27dc8b0b059f12167026d0666d1) ) - ROM_LOAD32_WORD("mpr-19712.20", 0x1800000, 0x400000, CRC(41577943) SHA1(25a0d921c8662043c5860dc7a226d4895ff9fff6) ) - ROM_LOAD32_WORD("mpr-19708.24", 0x1800002, 0x400000, CRC(5cb790f2) SHA1(d3cae450186bc62fd746b14d6a05cb397efcfe40) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19718.27", 0x0000000, 0x400000, CRC(a9de5924) SHA1(3ebac2aeb1467939337c9a5c87ad9c293560dae2) ) - ROM_LOAD32_WORD("mpr-19716.25", 0x0000002, 0x400000, CRC(45c7dcce) SHA1(f602cabd879c69afee544848feafb9fb9f5d51e2) ) - ROM_LOAD32_WORD("mpr-19719.28", 0x0800000, 0x400000, CRC(838f8343) SHA1(fe6622b5917f9a99c097fd60d9446ac6b481fa75) ) - ROM_LOAD32_WORD("mpr-19717.26", 0x0800002, 0x400000, CRC(393e440b) SHA1(927ac9cad22f87b339cc86043678470ff139ce1f) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19720.31", 0x080000, 0x80000, CRC(b367d21d) SHA1(1edaed489a3518ddad85728e416319f940ea02bb) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19721.32", 0x000000, 0x400000, CRC(f5d8fa9a) SHA1(6836973a687c59dd80f8e6c30d33155e306be199) ) - ROM_LOAD("mpr-19722.34", 0x400000, 0x400000, CRC(a56fa539) SHA1(405a892bc368ba862ba71bda7525b421d6973c0e) ) -ROM_END - -ROM_START( lastbrnj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19046a.15", 0x000000, 0x080000, CRC(75be7b7a) SHA1(e57320ac3abac54b7b5278596979746ed1856188) ) - ROM_LOAD32_WORD("epr-19047a.16", 0x000002, 0x080000, CRC(1f5541e2) SHA1(87214f285a7bf67fbd824f2190cb9b2daf408193) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19050.11", 0x000000, 0x400000, CRC(e6af2b61) SHA1(abdf7aa4c594f0916d4335c70fdd67dc6b1f4630) ) - ROM_LOAD32_WORD("mpr-19051.12", 0x000002, 0x400000, CRC(14b88961) SHA1(bec22f657c6d939c095b99ca9c6eb44b9683fd72) ) - ROM_LOAD32_WORD("mpr-19048.9", 0x800000, 0x400000, CRC(02180215) SHA1(cc5f8e61fee07aa4fc5bfe2d011088ee523c77c2) ) - ROM_LOAD32_WORD("mpr-19049.10", 0x800002, 0x400000, CRC(db7eecd6) SHA1(5955885ad2bfd69d7a2c4e1d1df907aca41fbdd0) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19052.17", 0x000000, 0x400000, CRC(d7f27216) SHA1(b393af96522306dc2e055aea1e837979f41940d4) ) - ROM_LOAD32_WORD("mpr-19053.21", 0x000002, 0x400000, CRC(1f328465) SHA1(950a92209b7c24f66db62c31627a1f1d52721f1e) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19055.27", 0x000000, 0x200000, CRC(85a57d49) SHA1(99c49fe135dc46fa861337b5bac654ae8478778a) ) - ROM_LOAD32_WORD("mpr-19054.25", 0x000002, 0x200000, CRC(05366277) SHA1(f618e2b9b26a1f7eccebfc8f8e17ef8ad9029be8) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("mpr-19056.31", 0x080000, 0x80000, CRC(22a22918) SHA1(baa039cd86650b6cd81f295916c4d256e60cb29c) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19057.32", 0x0000000, 0x400000, CRC(64809438) SHA1(aa008f83e1eff0daafe01944248ebae6054cee9f) ) - ROM_LOAD("mpr-19058.34", 0x0400000, 0x400000, CRC(e237c11c) SHA1(7c89cba757bd58747ed0d633b2fe7ef559fcd15e) ) -ROM_END - -ROM_START( lastbrnx ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19061a.15", 0x000000, 0x080000, CRC(c0aebab2) SHA1(fa63081b0aa6f02c3d197485865ee38e9c78b43d) ) - ROM_LOAD32_WORD("epr-19062a.16", 0x000002, 0x080000, CRC(cdf597e8) SHA1(a85ca36a537ba21d11ef3cfdf914c2c93ac5e68f) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19050.11", 0x000000, 0x400000, CRC(e6af2b61) SHA1(abdf7aa4c594f0916d4335c70fdd67dc6b1f4630) ) - ROM_LOAD32_WORD("mpr-19051.12", 0x000002, 0x400000, CRC(14b88961) SHA1(bec22f657c6d939c095b99ca9c6eb44b9683fd72) ) - ROM_LOAD32_WORD("mpr-19048.9", 0x800000, 0x400000, CRC(02180215) SHA1(cc5f8e61fee07aa4fc5bfe2d011088ee523c77c2) ) - ROM_LOAD32_WORD("mpr-19049.10", 0x800002, 0x400000, CRC(db7eecd6) SHA1(5955885ad2bfd69d7a2c4e1d1df907aca41fbdd0) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19052.17", 0x000000, 0x400000, CRC(d7f27216) SHA1(b393af96522306dc2e055aea1e837979f41940d4) ) - ROM_LOAD32_WORD("mpr-19053.21", 0x000002, 0x400000, CRC(1f328465) SHA1(950a92209b7c24f66db62c31627a1f1d52721f1e) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19055.27", 0x000000, 0x200000, CRC(85a57d49) SHA1(99c49fe135dc46fa861337b5bac654ae8478778a) ) - ROM_LOAD32_WORD("mpr-19054.25", 0x000002, 0x200000, CRC(05366277) SHA1(f618e2b9b26a1f7eccebfc8f8e17ef8ad9029be8) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("mpr-19056.31", 0x080000, 0x80000, CRC(22a22918) SHA1(baa039cd86650b6cd81f295916c4d256e60cb29c) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19057.32", 0x0000000, 0x400000, CRC(64809438) SHA1(aa008f83e1eff0daafe01944248ebae6054cee9f) ) - ROM_LOAD("mpr-19058.34", 0x0400000, 0x400000, CRC(e237c11c) SHA1(7c89cba757bd58747ed0d633b2fe7ef559fcd15e) ) -ROM_END - -ROM_START( pltkidsa ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-21281.pr0", 0x000000, 0x080000, CRC(293ead5d) SHA1(5a6295e543d7e68387de0ca4d88e930a0d8ed25c) ) - ROM_LOAD32_WORD("epr-21282.pr1", 0x000002, 0x080000, CRC(ed0e7b9e) SHA1(15f3fab6ac2dd40f32bda55503378ab14f998707) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-21262.da0", 0x000000, 0x400000, CRC(aa71353e) SHA1(6eb5e8284734f01beec1dbbee049b6b7672e2504) ) - ROM_LOAD32_WORD("mpr-21263.da1", 0x000002, 0x400000, CRC(d55d4509) SHA1(641db6ec3e9266f8265a4b541bcd8c2f7d164cc3) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-21264.tp0", 0x0000000, 0x400000, CRC(6b35204d) SHA1(3a07701b140eb3088fad29c8b2d9c1e1e7ef9471) ) - ROM_LOAD32_WORD("mpr-21268.tp1", 0x0000002, 0x400000, CRC(16ce2147) SHA1(39cba6b4f1130a3da7e2d226c948425eec34090e) ) - ROM_LOAD32_WORD("mpr-21265.tp2", 0x0800000, 0x400000, CRC(f061e639) SHA1(a89b7a84192fcc1e9e0fe9adf7446f7b275d5a03) ) - ROM_LOAD32_WORD("mpr-21269.tp3", 0x0800002, 0x400000, CRC(8c06255e) SHA1(9a8c302528e590be1b56ed301da30abf21f0be2e) ) - ROM_LOAD32_WORD("mpr-21266.tp4", 0x1000000, 0x400000, CRC(f9c32021) SHA1(b21f8bf281bf2cfcdc7e5eb798cd633e905ab8b8) ) - ROM_LOAD32_WORD("mpr-21270.tp5", 0x1000002, 0x400000, CRC(b61f81c3) SHA1(7733f44e791974070df139958eb97e0585ee50f8) ) - ROM_LOAD32_WORD("mpr-21267.tp6", 0x1800000, 0x400000, CRC(c42cc938) SHA1(6153f52add63295122e1215dd07d648d030a7306) ) - ROM_LOAD32_WORD("mpr-21271.tp7", 0x1800002, 0x400000, CRC(a5325c75) SHA1(d52836760475c7d9fbb4e5b8147ac416ffd1fcd9) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-21274.tx1", 0x0000000, 0x400000, CRC(f045e3d1) SHA1(548909d2da22ed98594e0ab6ecffebec4fca2f93) ) - ROM_LOAD32_WORD("mpr-21272.tx0", 0x0000002, 0x400000, CRC(dd605c21) SHA1(8363a082a666ceeb84df84929ff3fbaff49af821) ) - ROM_LOAD32_WORD("mpr-21275.tx3", 0x0800000, 0x400000, CRC(c4870b7c) SHA1(feb8a34acb620a36ed5aea92d22622a76d7e1b29) ) - ROM_LOAD32_WORD("mpr-21273.tx2", 0x0800002, 0x400000, CRC(722ec8a2) SHA1(1a1dc92488cde6284a96acce80e47a9cceccde76) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-21276.sd0", 0x080000, 0x080000, CRC(8f415bc3) SHA1(4e8e1ccbe025deca42fcf2582f3da46fa34780b7) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-21277.sd1", 0x0000000, 0x200000, CRC(bfba0ff6) SHA1(11081b3eabc33a42ecfc0b2b535ce16510496144) ) - ROM_LOAD("mpr-21278.sd2", 0x0200000, 0x200000, CRC(27e18e08) SHA1(254c0ad4d6bd572ff0efc3ea80489e73716a31a7) ) - ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) - ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( pltkids ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-21285a.15", 0x000000, 0x080000, CRC(bdde5b41) SHA1(14c3f5031f85c6756c00bc67765a967ebaf7eb7f) ) - ROM_LOAD32_WORD("epr-21286a.16", 0x000002, 0x080000, CRC(c8092e0e) SHA1(01030621efa9c97eb43f4a5e3e029ec99a2363c5) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-21262.da0", 0x000000, 0x400000, CRC(aa71353e) SHA1(6eb5e8284734f01beec1dbbee049b6b7672e2504) ) - ROM_LOAD32_WORD("mpr-21263.da1", 0x000002, 0x400000, CRC(d55d4509) SHA1(641db6ec3e9266f8265a4b541bcd8c2f7d164cc3) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-21264.tp0", 0x0000000, 0x400000, CRC(6b35204d) SHA1(3a07701b140eb3088fad29c8b2d9c1e1e7ef9471) ) - ROM_LOAD32_WORD("mpr-21268.tp1", 0x0000002, 0x400000, CRC(16ce2147) SHA1(39cba6b4f1130a3da7e2d226c948425eec34090e) ) - ROM_LOAD32_WORD("mpr-21265.tp2", 0x0800000, 0x400000, CRC(f061e639) SHA1(a89b7a84192fcc1e9e0fe9adf7446f7b275d5a03) ) - ROM_LOAD32_WORD("mpr-21269.tp3", 0x0800002, 0x400000, CRC(8c06255e) SHA1(9a8c302528e590be1b56ed301da30abf21f0be2e) ) - ROM_LOAD32_WORD("mpr-21266.tp4", 0x1000000, 0x400000, CRC(f9c32021) SHA1(b21f8bf281bf2cfcdc7e5eb798cd633e905ab8b8) ) - ROM_LOAD32_WORD("mpr-21270.tp5", 0x1000002, 0x400000, CRC(b61f81c3) SHA1(7733f44e791974070df139958eb97e0585ee50f8) ) - ROM_LOAD32_WORD("mpr-21267.tp6", 0x1800000, 0x400000, CRC(c42cc938) SHA1(6153f52add63295122e1215dd07d648d030a7306) ) - ROM_LOAD32_WORD("mpr-21271.tp7", 0x1800002, 0x400000, CRC(a5325c75) SHA1(d52836760475c7d9fbb4e5b8147ac416ffd1fcd9) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-21274.tx1", 0x0000000, 0x400000, CRC(f045e3d1) SHA1(548909d2da22ed98594e0ab6ecffebec4fca2f93) ) - ROM_LOAD32_WORD("mpr-21272.tx0", 0x0000002, 0x400000, CRC(dd605c21) SHA1(8363a082a666ceeb84df84929ff3fbaff49af821) ) - ROM_LOAD32_WORD("mpr-21275.tx3", 0x0800000, 0x400000, CRC(c4870b7c) SHA1(feb8a34acb620a36ed5aea92d22622a76d7e1b29) ) - ROM_LOAD32_WORD("mpr-21273.tx2", 0x0800002, 0x400000, CRC(722ec8a2) SHA1(1a1dc92488cde6284a96acce80e47a9cceccde76) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-21276.sd0", 0x080000, 0x080000, CRC(8f415bc3) SHA1(4e8e1ccbe025deca42fcf2582f3da46fa34780b7) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-21277.sd1", 0x0000000, 0x200000, CRC(bfba0ff6) SHA1(11081b3eabc33a42ecfc0b2b535ce16510496144) ) - ROM_LOAD("mpr-21278.sd2", 0x0200000, 0x200000, CRC(27e18e08) SHA1(254c0ad4d6bd572ff0efc3ea80489e73716a31a7) ) - ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) - ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) -ROM_END - -ROM_START( indy500 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18254a.15", 0x000000, 0x080000, CRC(ad0f1fc5) SHA1(0bff35fc1d892aaffbf1a3965bf3109c54839f4b) ) - ROM_LOAD32_WORD("epr-18255a.16", 0x000002, 0x080000, CRC(784daab8) SHA1(299e87f8ec7bdefa6f94f4ab65e29e91f290611e) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18237.11", 0x0000000, 0x400000, CRC(37e4255a) SHA1(3ee69a5b9364048dfab242773d97f3af430845b7) ) - ROM_LOAD32_WORD("mpr-18238.12", 0x0000002, 0x400000, CRC(bf837bac) SHA1(6624417b65f15f20427bc42c27283f10342c76b5) ) - ROM_LOAD32_WORD("mpr-18239.9", 0x0800000, 0x400000, CRC(9a2db86e) SHA1(0b81f6037657af7d96ed5e9bfef407d87cbcc294) ) - ROM_LOAD32_WORD("mpr-18240.10", 0x0800002, 0x400000, CRC(ab46a35f) SHA1(67da857db7155a858a1fa575b6c50f4be3c9ab7c) ) - ROM_LOAD32_WORD("epr-18389.7", 0x1000000, 0x080000, CRC(d22ea019) SHA1(ef10bb0ffcb1bbcf4672bb5f705a27679a793764) ) - ROM_RELOAD ( 0x1100000, 0x080000) - ROM_RELOAD ( 0x1200000, 0x080000) - ROM_RELOAD ( 0x1300000, 0x080000) - ROM_RELOAD ( 0x1400000, 0x080000) - ROM_RELOAD ( 0x1500000, 0x080000) - ROM_RELOAD ( 0x1600000, 0x080000) - ROM_RELOAD ( 0x1700000, 0x080000) - ROM_RELOAD ( 0x1800000, 0x080000) - ROM_RELOAD ( 0x1900000, 0x080000) - ROM_RELOAD ( 0x1a00000, 0x080000) - ROM_RELOAD ( 0x1b00000, 0x080000) - ROM_RELOAD ( 0x1c00000, 0x080000) - ROM_RELOAD ( 0x1d00000, 0x080000) - ROM_RELOAD ( 0x1e00000, 0x080000) - ROM_RELOAD ( 0x1f00000, 0x080000) - ROM_LOAD32_WORD("epr-18390.8", 0x1000002, 0x080000, CRC(38e796e5) SHA1(b23cfe45c363d616a65decd57aeb8ae61d5370e9) ) - ROM_RELOAD ( 0x1100002, 0x080000) - ROM_RELOAD ( 0x1200002, 0x080000) - ROM_RELOAD ( 0x1300002, 0x080000) - ROM_RELOAD ( 0x1400002, 0x080000) - ROM_RELOAD ( 0x1500002, 0x080000) - ROM_RELOAD ( 0x1600002, 0x080000) - ROM_RELOAD ( 0x1700002, 0x080000) - ROM_RELOAD ( 0x1800002, 0x080000) - ROM_RELOAD ( 0x1900002, 0x080000) - ROM_RELOAD ( 0x1a00002, 0x080000) - ROM_RELOAD ( 0x1b00002, 0x080000) - ROM_RELOAD ( 0x1c00002, 0x080000) - ROM_RELOAD ( 0x1d00002, 0x080000) - ROM_RELOAD ( 0x1e00002, 0x080000) - ROM_RELOAD ( 0x1f00002, 0x080000) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("epr-18249.29", 0x000000, 0x080000, CRC(a399f023) SHA1(8b453313c16d935701ed7dbf71c1607c40aede63) ) - ROM_LOAD32_WORD("epr-18250.30", 0x000002, 0x080000, CRC(7479ad52) SHA1(d453e25709cd5970cd21bdc8b4785bc8eb5a50d7) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18233.17", 0x000000, 0x400000, CRC(48a024d3) SHA1(501c6ab969713187025331942f922cb0e8efa69a) ) - ROM_LOAD32_WORD("mpr-18234.21", 0x000002, 0x400000, CRC(1178bfc8) SHA1(4a9982fdce08f9d375371763dd5287e8485c24b1) ) - ROM_LOAD32_WORD("mpr-18235.18", 0x800000, 0x400000, CRC(e7d70d59) SHA1(6081739c15a634d5cc7680a4fc7decead93540ed) ) - ROM_LOAD32_WORD("mpr-18236.22", 0x800002, 0x400000, CRC(6ca29e0e) SHA1(5de8b569d2a91047836f4a251c21db82fd7841c9) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18232.27", 0x000000, 0x400000, CRC(f962347d) SHA1(79f07ee6b821724294ca9e7a079cb33249102508) ) - ROM_LOAD32_WORD("mpr-18231.25", 0x000002, 0x400000, CRC(673d5338) SHA1(ce592857496ccc0a51efb377cf7cccc000b4296b) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18391.31", 0x080000, 0x40000, CRC(79579b72) SHA1(36fed8a9eeb34968b2852ea8fc9198427f0d27c6) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18241.32", 0x0000000, 0x200000, CRC(3a380ae1) SHA1(114113325e9e5262af8750c05089f24818943cde) ) - ROM_LOAD("mpr-18242.33", 0x0200000, 0x200000, CRC(1cc3deae) SHA1(5c9cb8ce43a909b25b4e734c6a4ffd786f4dde31) ) - ROM_LOAD("mpr-18243.34", 0x0400000, 0x200000, CRC(a00a0053) SHA1(9c24fbcd0318c7e195dd153d6ba05e8c1e052968) ) - ROM_LOAD("mpr-18244.35", 0x0600000, 0x200000, CRC(bfa75beb) SHA1(fec89260d887e90ee9c2803e2eaf937cf9bfa10b) ) -ROM_END - -ROM_START( bel ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-20225.15", 0x000000, 0x020000, CRC(4abc6b59) SHA1(cc6da75aafcbbc86720435182a66e8de065c8e99) ) - ROM_LOAD32_WORD("epr-20226.16", 0x000002, 0x020000, CRC(43e05b3a) SHA1(204b3cc6bbfdc92b4871c45fe4abff4ab4a66317) ) - ROM_LOAD32_WORD("epr-20223.13", 0x040000, 0x020000, CRC(61b1be98) SHA1(03c308c58a72bf3b78f41d5a9c0adaa7aad631c2) ) - ROM_LOAD32_WORD("epr-20224.14", 0x040002, 0x020000, CRC(eb2d7dbf) SHA1(f3b126e2fcef1cf673b239696ed8018241b1170e) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-20233.11", 0x000000, 0x200000, CRC(3e079a3b) SHA1(a3f15cd68a514cf80f0a40dbbb08e8b0489a0e4b) ) - ROM_LOAD32_WORD("mpr-20234.12", 0x000002, 0x200000, CRC(58bde826) SHA1(386d0d07738f579cb23e4168aceb26f56bcca1c1) ) - ROM_LOAD32_WORD("mpr-20231.9", 0x400000, 0x200000, CRC(b3393e93) SHA1(aa52ae307aa37faaaf86c326642af1946c5f4056) ) - ROM_LOAD32_WORD("mpr-20232.10", 0x400002, 0x200000, CRC(da4a2e11) SHA1(f9138813f6d1ca2126f5de10d8d69dcbb533aa0e) ) - ROM_LOAD32_WORD("mpr-20229.7", 0x800000, 0x200000, CRC(cdec7bf4) SHA1(510b6d41f1d32a9929379ba76037db137164cd43) ) - ROM_LOAD32_WORD("mpr-20230.8", 0x800002, 0x200000, CRC(a166fa87) SHA1(d4f6d4fba7f43b21f0bf9d948ec93b372425bf7c) ) - ROM_LOAD32_WORD("mpr-20227.5", 0xc00000, 0x200000, CRC(1277686e) SHA1(fff27006659458300001425261b944e690f1d494) ) - ROM_LOAD32_WORD("mpr-20228.6", 0xc00002, 0x200000, CRC(49cb5568) SHA1(ee3273302830f3499c7d4e548b629c51e0369e8a) ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGPx4 program - ROM_LOAD32_WORD("mpr-20236.29", 0x000000, 0x200000, CRC(8de9a3c2) SHA1(e7fde1fd509531e1002ff813163067dc0d134536) ) - ROM_LOAD32_WORD("mpr-20235.30", 0x000002, 0x200000, CRC(78fa11ef) SHA1(a60deabb662e9c09f5d6342dc1a1c6045744d93f) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-20244.17", 0x0000000, 0x200000, CRC(9d2a8660) SHA1(59302e7119c9ff779ce0c871713fe3688c29cccb) ) - ROM_LOAD32_WORD("mpr-20240.21", 0x0000002, 0x200000, CRC(51615908) SHA1(c70252b0b6f17aa0cd9b5264d4166df8ab7d1784) ) - ROM_LOAD32_WORD("mpr-20243.18", 0x0400000, 0x200000, CRC(48671f7c) SHA1(b0bdc7f42450c8d9cebbcf43cf858f7399e378e4) ) - ROM_LOAD32_WORD("mpr-20239.22", 0x0400002, 0x200000, CRC(6cd8d8a5) SHA1(1c634fbbcbafb1c3825117682901a3264599b246) ) - ROM_LOAD32_WORD("mpr-20242.19", 0x0800000, 0x200000, CRC(e7f86ac7) SHA1(7b7724127b27834eaaa228050ceb779d8a027882) ) - ROM_LOAD32_WORD("mpr-20238.23", 0x0800002, 0x200000, CRC(0a480c7c) SHA1(239d2c9c49cb8ddc0d6aa956a497b494217f38d7) ) - ROM_LOAD32_WORD("mpr-20241.20", 0x0c00000, 0x200000, CRC(51974b98) SHA1(7d6ab9c0ccec77676222611bf200d2e067e20520) ) - ROM_LOAD32_WORD("mpr-20237.24", 0x0c00002, 0x200000, CRC(89b5d8b6) SHA1(6e0a0323d6a804f1f1e4404694cc1ea7dfbf2d95) ) - - ROM_REGION( 0xc00000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-20247.27", 0x000000, 0x200000, CRC(00b0417d) SHA1(5e9d38509c1e5273079a342a64ca2c956cd47e6d) ) - ROM_LOAD32_WORD("mpr-20245.25", 0x000002, 0x200000, CRC(36490a08) SHA1(a462e094c9a9ec4743e4bf2c4ce23357257a2a54) ) - ROM_LOAD32_WORD("mpr-20248.28", 0x800000, 0x200000, CRC(0ace6bef) SHA1(a231aeb7b984f5b927144f0eec4ef2282429494f) ) - ROM_LOAD32_WORD("mpr-20246.26", 0x800002, 0x200000, CRC(250d6ca1) SHA1(cd1d4bc0fcf89e47884b87863a09bb263bce72cc) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("mpr-20249.31", 0x080000, 0x020000, CRC(dc24f13d) SHA1(66ab8e843319d07663ef13f3d2299c6c7414071f) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-20250.32", 0x0000000, 0x200000, CRC(91b735d3) SHA1(b0e7e493fb20ebf30c17378199e49d529ffb3f20) ) - ROM_LOAD("mpr-20251.33", 0x0200000, 0x200000, CRC(703a947b) SHA1(95b8d3dc29e87e6537b288d8e946728e0b345dd0) ) - ROM_LOAD("mpr-20252.34", 0x0400000, 0x200000, CRC(8f48f375) SHA1(9e511e89e99c77f06a5fba033ca8f9b98bd86f91) ) - ROM_LOAD("mpr-20253.35", 0x0600000, 0x200000, CRC(ca6aa17c) SHA1(f6df2483ca75573449ba36638dbbed4be7843a44) ) -ROM_END - -ROM_START( overrev ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-20124a.15", 0x000000, 0x080000, CRC(74beb8d7) SHA1(c65c641138ecd7312c4930702d1498b8a346175a) ) - ROM_LOAD32_WORD( "epr-20125a.16", 0x000002, 0x080000, CRC(def64456) SHA1(cedb64d2d99a73301ef45c2f5f860a9b87faf6a7) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-19996.11", 0x000000, 0x400000, CRC(21928a00) SHA1(6b439fd2b113b64df9378ef8180a17aa6fa975c5) ) - ROM_LOAD32_WORD( "mpr-19997.12", 0x000002, 0x400000, CRC(2a169cab) SHA1(dbf9af938afd0599d345c42c1df242e575c14de9) ) - ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) ) - ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) ) - - ROM_REGION( 0x800000, REGION_CPU3, ROMREGION_ERASE00 ) // TGPx4 program (COPRO sockets) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models (TGP sockets) - ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) ) - ROM_LOAD32_WORD( "mpr-19999.21", 0x000002, 0x200000, CRC(ff590a2d) SHA1(ad29e4270b4a2f82189fbab83358eb1200f43777) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures (TEXTURE sockets) - ROM_LOAD32_WORD( "mpr-20001.27", 0x000000, 0x200000, CRC(6ca236aa) SHA1(b3cb89fadb42afed13be4f229d7158dee487978a) ) - ROM_LOAD32_WORD( "mpr-20000.25", 0x000002, 0x200000, CRC(894d8ded) SHA1(9bf7c754a29eef47fa49b5567980601895127306) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-20002.31", 0x000000, 0x080000, CRC(7efb069e) SHA1(30b1bbaf348d6a6b9ee2fdf82a0749baa025e0bf) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-20003.32", 0x000000, 0x400000, CRC(149ac22b) SHA1(c890bbaebbbb07b62bcb8a3a8edded9fa0ec9a1e) ) - ROM_LOAD( "mpr-20004.34", 0x400000, 0x400000, CRC(0b9c5410) SHA1(e5bb30702fc853ccc03316be07a334269d3ebb4a) ) -ROM_END - -ROM_START( topskatr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19755a.15", 0x000000, 0x080000, CRC(b80633b9) SHA1(5396da414beeb918e6f38f25a43dd76345a0c8ed) ) - ROM_LOAD32_WORD("epr-19756a.16", 0x000002, 0x080000, CRC(472046a2) SHA1(06d0f609257ba476e6bd3b956e0850e7167429ce) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19735.11", 0x000000, 0x400000, CRC(8e509266) SHA1(49afc91467f08befaf34e743cbe823de3e3c9d85) ) - ROM_LOAD32_WORD("mpr-19736.12", 0x000002, 0x400000, CRC(094e0a0d) SHA1(de2c739f71e51166263446b9f6a566866ab8bee8) ) - ROM_LOAD32_WORD("mpr-19737.9", 0x800000, 0x400000, CRC(281a7dde) SHA1(71d5ba434328a81969bfdc71ac1160c5ff3ae9d3) ) - ROM_LOAD32_WORD("mpr-19738.10", 0x800002, 0x400000, CRC(f688327e) SHA1(68c9db242ef7e8f98979e968a09e4b093bc5d470) ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGPx4 program - ROM_LOAD32_WORD("mpr-19743.29", 0x000000, 0x200000, CRC(d41a41bf) SHA1(a5f6b24e6526d0d2ef9c526c273c018d1e0fed59) ) - ROM_LOAD32_WORD("mpr-19744.30", 0x000002, 0x200000, CRC(84f203bf) SHA1(4952b764e6bf6cd735018738c5eff08781ee2315) ) - - ROM_REGION( 0x400000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19741.17", 0x000000, 0x200000, CRC(111a6e29) SHA1(8664059f157626e4bbdcf8357e3d30b37d3c25b8) ) - ROM_LOAD32_WORD("mpr-19742.21", 0x000002, 0x200000, CRC(28510aff) SHA1(3e68aec090f36a60b3b70bc90f09e2f9ce088718) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19740.27", 0x000000, 0x400000, CRC(b20f508b) SHA1(c90fa3b42d87291ea459ccc137f3a2f3eb7efec0) ) - ROM_LOAD32_WORD("mpr-19739.25", 0x000002, 0x400000, CRC(8120cfd8) SHA1(a82744bff5dcdfae296c7c3e8c3fbfda26324e85) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("mpr-19759.31", 0x080000, 0x80000, CRC(573530f2) SHA1(7b205085965d6694f8e75e29c4028f7cb6f631ab) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // DSB program - ROM_LOAD16_WORD_SWAP("mpr-19760.2s", 0x000000, 0x20000, CRC(2e41ca15) SHA1(a302209bfe0f1491dff2da64b32cfaa13c3d3304) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD16_WORD_SWAP("mpr-19745.32", 0x000000, 0x400000, CRC(7082a0af) SHA1(415f9d0793a697cb1719bbd96370f4a741866527) ) - ROM_LOAD16_WORD_SWAP("mpr-19746.34", 0x400000, 0x400000, CRC(657b5977) SHA1(ca76f211d68b6b55678a4d7949bfd2ddef1b1710) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) // MPEG audio data - ROM_LOAD("mpr-19747.18s", 0x000000, 0x400000, CRC(6e895aaa) SHA1(4c67c1e1d58a3034bbd711252a78689db9f235bb) ) - ROM_LOAD("mpr-19748.20s", 0x400000, 0x400000, CRC(fcd74de3) SHA1(fd4da4cf40c4342c6263cf22eee5968292a4d2c0) ) - ROM_LOAD("mpr-19749.22s", 0x800000, 0x400000, CRC(842ca1eb) SHA1(6ee6b2eb2ea400bdb9c0a9b4a126b4b86886e813) ) - ROM_LOAD("mpr-19750.24s", 0xc00000, 0x400000, CRC(cd95d0bf) SHA1(40e2a2980c89049c339fefd48bf7aac79962cd2e) ) -ROM_END - -ROM_START( doaa ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19310a.12", 0x000000, 0x080000, CRC(06486f7a) SHA1(b3e14103570e5f45aed16e1c158e469bc85002ae) ) - ROM_LOAD32_WORD("epr-19311a.13", 0x000002, 0x080000, CRC(1be62912) SHA1(dcc2df8e28e1a107867f74248e6ffcac83afe7c0) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19318.11", 0x0000000, 0x400000, CRC(ab431bfe) SHA1(45b5ccf67c91014daf6bf3c4bd8ec372b246e404) ) - ROM_LOAD32_WORD("mpr-19319.12", 0x0000002, 0x400000, CRC(c5cb694d) SHA1(448b45d30cc7a71395a49a2c5789989fd7b7b4e7) ) - ROM_LOAD32_WORD("mpr-19316.9", 0x0800000, 0x400000, CRC(2d2d1b1a) SHA1(77ce5d8aa98bdbc97ae08a452f584b30d8885cfc) ) - ROM_LOAD32_WORD("mpr-19317.10", 0x0800002, 0x400000, CRC(96b17bcf) SHA1(3aa9d2f8afad74b5626ce2cf2d7a86aef8cac80b) ) - ROM_LOAD32_WORD("mpr-19314.7", 0x1000000, 0x400000, CRC(a8d963fb) SHA1(6a1680d6380321279b0d701e4b47d4ae712f3b72) ) - ROM_LOAD32_WORD("mpr-19315.8", 0x1000002, 0x400000, CRC(90ae5682) SHA1(ec56df14f0847daf9bd0435f785a8946c94d2988) ) - ROM_LOAD32_WORD("mpr-19312.5", 0x1800000, 0x200000, CRC(1dcedb10) SHA1(a60fb9e7c0731004d0f0ff28c4cde272b21dd658) ) - ROM_RELOAD ( 0x1c00000, 0x200000 ) - ROM_LOAD32_WORD("mpr-19313.6", 0x1800002, 0x200000, CRC(8c63055e) SHA1(9f375b3f4a8884163ffcf364989499f2cd21e18b) ) - ROM_RELOAD ( 0x1c00002, 0x200000 ) - - ROM_REGION( 0x1800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19322.17", 0x0000000, 0x400000, CRC(d0e6ecf0) SHA1(1b87f6337b4286fd738856da899462e7baa92601) ) - ROM_LOAD32_WORD("mpr-19325.21", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) ) - ROM_LOAD32_WORD("mpr-19323.18", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) ) - ROM_LOAD32_WORD("mpr-19326.22", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) ) - ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(d972201f) SHA1(1857ffc58697997ee22436586c398eb0c3daba6c) ) - ROM_LOAD32_WORD("mpr-19327.23", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19321.27", 0x000000, 0x400000, CRC(9c49e845) SHA1(344839640d9814263fa5ed00c2043cd6f18d5cb2) ) - ROM_LOAD32_WORD("mpr-19320.25", 0x000002, 0x400000, CRC(190c017f) SHA1(4c3250b9abe39fc5c8fd0fcdb5fb7ea131434516) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19328.30", 0x080000, 0x80000, CRC(400bdbfb) SHA1(54db969fa54cf3c502d77aa6a6aaeef5d7db9f04) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19329.31", 0x000000, 0x200000, CRC(8fd2708a) SHA1(7a341b15afa489aa95af70cb34ac3934b1a7d887) ) - ROM_LOAD("mpr-19330.32", 0x200000, 0x200000, CRC(0c69787d) SHA1(dc5870cd93da2babe5fc9c03b252fc6ea6e45721) ) - ROM_LOAD("mpr-19331.33", 0x400000, 0x200000, CRC(c18ea0b8) SHA1(0f42458829ae85fffcedd42cd9f728a7a3d75f1c) ) - ROM_LOAD("mpr-19332.34", 0x600000, 0x200000, CRC(2877f96f) SHA1(00e5677da30527b862e238f10762a5cbfbabde2b) ) - - MODEL2_CPU_BOARD - MODEL2A_VID_BOARD -ROM_END - -ROM_START( doa ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19379b.15", 0x000000, 0x080000, CRC(8a10a944) SHA1(c675a344f74d0118907fb5292495883c0c30c719) ) - ROM_LOAD32_WORD("epr-19380b.16", 0x000002, 0x080000, CRC(766c1ec8) SHA1(49250886f66db9fd37d88bc22c8f22046f74f043) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19318.11", 0x0000000, 0x400000, CRC(ab431bfe) SHA1(45b5ccf67c91014daf6bf3c4bd8ec372b246e404) ) - ROM_LOAD32_WORD("mpr-19319.12", 0x0000002, 0x400000, CRC(c5cb694d) SHA1(448b45d30cc7a71395a49a2c5789989fd7b7b4e7) ) - ROM_LOAD32_WORD("mpr-19316.9", 0x0800000, 0x400000, CRC(2d2d1b1a) SHA1(77ce5d8aa98bdbc97ae08a452f584b30d8885cfc) ) - ROM_LOAD32_WORD("mpr-19317.10", 0x0800002, 0x400000, CRC(96b17bcf) SHA1(3aa9d2f8afad74b5626ce2cf2d7a86aef8cac80b) ) - ROM_LOAD32_WORD("mpr-19314.7", 0x1000000, 0x400000, CRC(a8d963fb) SHA1(6a1680d6380321279b0d701e4b47d4ae712f3b72) ) - ROM_LOAD32_WORD("mpr-19315.8", 0x1000002, 0x400000, CRC(90ae5682) SHA1(ec56df14f0847daf9bd0435f785a8946c94d2988) ) - ROM_LOAD32_WORD("mpr-19312.5", 0x1800000, 0x200000, CRC(1dcedb10) SHA1(a60fb9e7c0731004d0f0ff28c4cde272b21dd658) ) - ROM_RELOAD ( 0x1c00000, 0x200000 ) - ROM_LOAD32_WORD("mpr-19313.6", 0x1800002, 0x200000, CRC(8c63055e) SHA1(9f375b3f4a8884163ffcf364989499f2cd21e18b) ) - ROM_RELOAD ( 0x1c00002, 0x200000 ) - - ROM_REGION( 0x1800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19322.17", 0x0000000, 0x400000, CRC(d0e6ecf0) SHA1(1b87f6337b4286fd738856da899462e7baa92601) ) - ROM_LOAD32_WORD("mpr-19325.21", 0x0000002, 0x400000, CRC(7cbe432d) SHA1(8b31e292160b88df9c77b36096914d09ab8b6086) ) - ROM_LOAD32_WORD("mpr-19323.18", 0x0800000, 0x400000, CRC(453d3f4a) SHA1(8c0530824bb8ecb007021ee6e93412597bb0ecd6) ) - ROM_LOAD32_WORD("mpr-19326.22", 0x0800002, 0x400000, CRC(b976da02) SHA1(a154eb128604aac9e35438d8811971133eab94a1) ) - ROM_LOAD32_WORD("mpr-19324.19", 0x1000000, 0x400000, CRC(d972201f) SHA1(1857ffc58697997ee22436586c398eb0c3daba6c) ) - ROM_LOAD32_WORD("mpr-19327.23", 0x1000002, 0x400000, CRC(6a75634c) SHA1(8ed74c7afd95fc7a4df0f01a47479b6f44e3073c) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19321.27", 0x000000, 0x400000, CRC(9c49e845) SHA1(344839640d9814263fa5ed00c2043cd6f18d5cb2) ) - ROM_LOAD32_WORD("mpr-19320.25", 0x000002, 0x400000, CRC(190c017f) SHA1(4c3250b9abe39fc5c8fd0fcdb5fb7ea131434516) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19328.30", 0x080000, 0x80000, CRC(400bdbfb) SHA1(54db969fa54cf3c502d77aa6a6aaeef5d7db9f04) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19329.31", 0x000000, 0x200000, CRC(8fd2708a) SHA1(7a341b15afa489aa95af70cb34ac3934b1a7d887) ) - ROM_LOAD("mpr-19330.32", 0x200000, 0x200000, CRC(0c69787d) SHA1(dc5870cd93da2babe5fc9c03b252fc6ea6e45721) ) - ROM_LOAD("mpr-19331.33", 0x400000, 0x200000, CRC(c18ea0b8) SHA1(0f42458829ae85fffcedd42cd9f728a7a3d75f1c) ) - ROM_LOAD("mpr-19332.34", 0x600000, 0x200000, CRC(2877f96f) SHA1(00e5677da30527b862e238f10762a5cbfbabde2b) ) -ROM_END - -ROM_START( sgt24h ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19155.15", 0x000000, 0x080000, CRC(593952fd) SHA1(1fc4afc6e3910cc8adb0688542e61a9efb442e56) ) - ROM_LOAD32_WORD("epr-19156.16", 0x000002, 0x080000, CRC(a91fc4ee) SHA1(a37611da0295f7d7e5d2411c3f9b73140d311f74) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19146.11", 0x000000, 0x400000, CRC(d66b5b0f) SHA1(c2a5b83c9041d8f46dfac4a3ff8cfdefb96d02b3) ) - ROM_LOAD32_WORD("mpr-19147.12", 0x000002, 0x400000, CRC(d5558f48) SHA1(c9f40328d6974b7767fa6ba719d0d2b7a173c210) ) - ROM_LOAD32_WORD("mpr-19148.9", 0x800000, 0x400000, CRC(a14c86db) SHA1(66cd8672c00e4e2572de7c5648de595674ffa8f8) ) - ROM_LOAD32_WORD("mpr-19149.10", 0x800002, 0x400000, CRC(94ef5849) SHA1(3e1748dc5e61c93eedbf0ca6b1946a30be722403) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19150.17", 0x000000, 0x400000, CRC(e0ad870e) SHA1(3429d9f9434d75ddb5fa05d4b493828adfe826a4) ) - ROM_LOAD32_WORD("mpr-19151.21", 0x000002, 0x400000, CRC(e2a1b125) SHA1(cc5c2d9ab8a01f52e66969464f53ae3cefca6a09) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19153.27", 0x000000, 0x200000, CRC(136adfd0) SHA1(70ce4e609c8b003ff04518044c18d29089e6a353) ) - ROM_LOAD32_WORD("mpr-19152.25", 0x000002, 0x200000, CRC(363769a2) SHA1(51b2f11a01fb72e151025771f8a8496993e605c2) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x20000, REGION_CPU5, 0) // Communication program - ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19157.31", 0x080000, 0x80000, CRC(8ffea0cf) SHA1(439e784081329db2fe03419681150f3216f4ccff) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19154.32", 0x000000, 0x400000, CRC(7cd9e679) SHA1(b9812c4f3042f95febc96bcdd46e3b0724ad4b4f) ) -ROM_END - -ROM_START( von ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18664b.15", 0x000000, 0x080000, CRC(27d0172c) SHA1(f3bcae9898c7d656eccb4d2546c9bb93daaefbb7) ) - ROM_LOAD32_WORD("epr-18665b.16", 0x000002, 0x080000, CRC(2f0142ee) SHA1(73f2a19a519ced8e0a1ab5cf69a4bf9d9841e288) ) - ROM_LOAD32_WORD("epr-18666.13", 0x100000, 0x080000, CRC(66edb432) SHA1(b67131b0158a58138380734dd5b9394b70010026) ) - ROM_LOAD32_WORD("epr-18667.14", 0x100002, 0x080000, CRC(b593d31f) SHA1(1e9f23f4052ab1b0275307cc80e51352f13bc319) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18648.11", 0x000000, 0x400000, CRC(2edbe489) SHA1(ded2e4b295be08970d13c387818c570c3afe8109) ) - ROM_LOAD32_WORD("mpr-18649.12", 0x000002, 0x400000, CRC(e68c5aa6) SHA1(cdee1ba9247eda4282442d0522f8de7d7c86e1e6) ) - ROM_LOAD32_WORD("mpr-18650.9", 0x800000, 0x400000, CRC(89a855b9) SHA1(5096db1da1f7e175000e89fca2a1dd3fd53030ea) ) - ROM_LOAD32_WORD("mpr-18651.10", 0x800002, 0x400000, CRC(f4c23107) SHA1(f65984614111b12dd414db80751efe64fcf5ef16) ) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("mpr-18662.29", 0x000000, 0x200000, CRC(a33d3335) SHA1(991bbe9dcbef8bfa96682e9d142623fc9b7c0879) ) - ROM_LOAD32_WORD("mpr-18663.30", 0x000002, 0x200000, CRC(ea74a641) SHA1(a684e13c0afe2ef3f3108ae9b73389121368fc4e) ) - - ROM_REGION( 0x2000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18654.17", 0x000000, 0x400000, CRC(6a0caf29) SHA1(9f009f44e62ae0f9dec7a34a163bc186d1c4cbbd) ) - ROM_LOAD32_WORD("mpr-18655.21", 0x000002, 0x400000, CRC(a4293e78) SHA1(af512c994bedbdaf3a5eeed607e771dcd87810fc) ) - ROM_LOAD32_WORD("mpr-18656.18", 0x800000, 0x400000, CRC(b4f51e76) SHA1(eb71ada331576f2a7219d238ea07a61bcbf6381a) ) - ROM_LOAD32_WORD("mpr-18657.22", 0x800002, 0x400000, CRC(a9be4674) SHA1(a918c2a3de78a08104480097edfb9d6aeaeda873) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18660.27", 0x000000, 0x200000, CRC(e53663e5) SHA1(0a4908be654bad4f00d7d58f0e42f631996911c9) ) - ROM_LOAD32_WORD("mpr-18658.25", 0x000002, 0x200000, CRC(3d0fcd01) SHA1(c8626c879bfcf7abd095cac5dc03a04ae8629423) ) - ROM_LOAD32_WORD("mpr-18661.28", 0x800000, 0x200000, CRC(52b50410) SHA1(64ea7b2f86745954e0b8a15d71203444705240a2) ) - ROM_LOAD32_WORD("mpr-18659.26", 0x800002, 0x200000, CRC(27aa8ae2) SHA1(e9b756e5b4b1c19e52e47af03c773fee544be420) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // Communication program - ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18670.31", 0x080000, 0x80000, CRC(3e715f76) SHA1(4fd997e379a8cdb94ec3b1986b3ab443fc6fa12a) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18652.32", 0x000000, 0x400000, CRC(037eee53) SHA1(e592f9e97abe0a7bc9009d8327b93da9bc43749c)) - ROM_LOAD("mpr-18653.34", 0x400000, 0x400000, CRC(9ec3e7bf) SHA1(197bc8adc823e93128c1cebf69361a7c7297f808)) -ROM_END - -ROM_START( vonusa ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("vo-prog0.usa", 0x000000, 0x080000, CRC(6499cc59) SHA1(8289be295f021acbf0c903513ba97ae7de50dedb) ) - ROM_LOAD32_WORD("vo-prog1.usa", 0x000002, 0x080000, CRC(0053b10f) SHA1(b89cc814b02b4ab5e37c75ee1a9cf57b88b63053) ) - ROM_LOAD32_WORD("epr-18666.13", 0x100000, 0x080000, CRC(66edb432) SHA1(b67131b0158a58138380734dd5b9394b70010026) ) - ROM_LOAD32_WORD("epr-18667.14", 0x100002, 0x080000, CRC(b593d31f) SHA1(1e9f23f4052ab1b0275307cc80e51352f13bc319) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18648.11", 0x000000, 0x400000, CRC(2edbe489) SHA1(ded2e4b295be08970d13c387818c570c3afe8109) ) - ROM_LOAD32_WORD("mpr-18649.12", 0x000002, 0x400000, CRC(e68c5aa6) SHA1(cdee1ba9247eda4282442d0522f8de7d7c86e1e6) ) - ROM_LOAD32_WORD("mpr-18650.9", 0x800000, 0x400000, CRC(89a855b9) SHA1(5096db1da1f7e175000e89fca2a1dd3fd53030ea) ) - ROM_LOAD32_WORD("mpr-18651.10", 0x800002, 0x400000, CRC(f4c23107) SHA1(f65984614111b12dd414db80751efe64fcf5ef16) ) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("mpr-18662.29", 0x000000, 0x200000, CRC(a33d3335) SHA1(991bbe9dcbef8bfa96682e9d142623fc9b7c0879) ) - ROM_LOAD32_WORD("mpr-18663.30", 0x000002, 0x200000, CRC(ea74a641) SHA1(a684e13c0afe2ef3f3108ae9b73389121368fc4e) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18654.17", 0x000000, 0x400000, CRC(6a0caf29) SHA1(9f009f44e62ae0f9dec7a34a163bc186d1c4cbbd) ) - ROM_LOAD32_WORD("mpr-18655.21", 0x000002, 0x400000, CRC(a4293e78) SHA1(af512c994bedbdaf3a5eeed607e771dcd87810fc) ) - ROM_LOAD32_WORD("mpr-18656.18", 0x800000, 0x400000, CRC(b4f51e76) SHA1(eb71ada331576f2a7219d238ea07a61bcbf6381a) ) - ROM_LOAD32_WORD("mpr-18657.22", 0x800002, 0x400000, CRC(a9be4674) SHA1(a918c2a3de78a08104480097edfb9d6aeaeda873) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18660.27", 0x000000, 0x200000, CRC(e53663e5) SHA1(0a4908be654bad4f00d7d58f0e42f631996911c9) ) - ROM_LOAD32_WORD("mpr-18658.25", 0x000002, 0x200000, CRC(3d0fcd01) SHA1(c8626c879bfcf7abd095cac5dc03a04ae8629423) ) - ROM_LOAD32_WORD("mpr-18661.28", 0x800000, 0x200000, CRC(52b50410) SHA1(64ea7b2f86745954e0b8a15d71203444705240a2) ) - ROM_LOAD32_WORD("mpr-18659.26", 0x800002, 0x200000, CRC(27aa8ae2) SHA1(e9b756e5b4b1c19e52e47af03c773fee544be420) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // Communication program - ROM_LOAD16_WORD_SWAP("epr-18643a.7", 0x000000, 0x20000, CRC(b5e048ec) SHA1(8182e05a2ffebd590a936c1359c81e60caa79c2a) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18670.31", 0x080000, 0x80000, CRC(3e715f76) SHA1(4fd997e379a8cdb94ec3b1986b3ab443fc6fa12a) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18652.32", 0x000000, 0x400000, CRC(037eee53) SHA1(e592f9e97abe0a7bc9009d8327b93da9bc43749c) ) - ROM_LOAD("mpr-18653.34", 0x400000, 0x400000, CRC(9ec3e7bf) SHA1(197bc8adc823e93128c1cebf69361a7c7297f808) ) -ROM_END - -ROM_START( vstriker ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18068a.15", 0x000000, 0x020000, CRC(afc69b54) SHA1(2127bde1de3cd6663c31cf2126847815234e09a4) ) - ROM_LOAD32_WORD("epr-18069a.16", 0x000002, 0x020000, CRC(0243250c) SHA1(3cbeac09d503a19c5950cf70e3b329f791acfa13) ) - ROM_LOAD32_WORD("epr-18066a.13", 0x040000, 0x020000, CRC(e658b33a) SHA1(33266e6372e73f670688f58e51081ec5a7deec11) ) - ROM_LOAD32_WORD("epr-18067a.14", 0x040002, 0x020000, CRC(49e94047) SHA1(56c8d1a365985886dffeddf24d692ce6b377760a) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18055.11", 0x000000, 0x200000, CRC(5aba9fc0) SHA1(40d45af7e58fa48b6afa85071c2bd1d4b5b5ffa5) ) - ROM_LOAD32_WORD("mpr-18056.12", 0x000002, 0x200000, CRC(017f0c55) SHA1(744e5a02abd82fbeb875c5cd30c5543570140cff) ) - ROM_LOAD32_WORD("mpr-18053.9", 0x400000, 0x200000, CRC(46c770c8) SHA1(000e9edfed49cc3dcc136f80e044dcd2b42378ce) ) - ROM_LOAD32_WORD("mpr-18054.10", 0x400002, 0x200000, CRC(437af66e) SHA1(c5afa62100a93e160aa96b327a260cc7fee51fdc) ) - ROM_LOAD32_WORD("epr-18070a.7", 0x800000, 0x080000, CRC(1961e2fc) SHA1(12ead9b782e092346b7cd5a7343b302f546fe066) ) - ROM_LOAD32_WORD("epr-18071a.8", 0x800002, 0x080000, CRC(b2492dca) SHA1(3b35522ab8e1fdfa327245fef797e3d7c0cceb85) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18057.17", 0x000000, 0x200000, CRC(890d8806) SHA1(fe73e4ea310e13b172e49d39c7eafba8f9052e67) ) - ROM_LOAD32_WORD("mpr-18059.21", 0x000002, 0x200000, CRC(c5cdf534) SHA1(fd127d33bc5a78b81aaa7d5886beca2192a62867) ) - ROM_LOAD32_WORD("mpr-18058.18", 0x400000, 0x200000, CRC(d4cbdf7c) SHA1(fe783c5bc94c2581fd990f0f0a705bdc5c05a386) ) - ROM_LOAD32_WORD("mpr-18060.22", 0x400002, 0x200000, CRC(93d5c95f) SHA1(bca83f024d85c97ca59fae8d9097fc510ec0fc7f) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18062.27", 0x000000, 0x200000, CRC(126e7de3) SHA1(0810364934dee8d5035cef623d01dfbacc64bf2b) ) - ROM_LOAD32_WORD("mpr-18061.25", 0x000002, 0x200000, CRC(c37f1c67) SHA1(c917046c2d98af17c59ceb0ea4f89d215cc0ead8) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18072.31", 0x080000, 0x20000, CRC(73eabb58) SHA1(4f6d70d6e0d7b469c5f2527efb08f208f4aa017e) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18063.32", 0x000000, 0x200000, CRC(b74d7c8a) SHA1(da0bc8b3822b01087b6f9de0446cab1eb6617e8e) ) - ROM_LOAD("mpr-18064.33", 0x200000, 0x200000, CRC(783b9910) SHA1(108b23bb57e3133c555083aa4f9bc573ac6e3152) ) - ROM_LOAD("mpr-18065.34", 0x400000, 0x200000, CRC(046b55fe) SHA1(2db7eabf4318881a67b10dba24f6f0cd68940ace) ) -ROM_END - -ROM_START( vstrikro ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18068.15", 0x000000, 0x020000, CRC(74a47795) SHA1(3ba34bd467e11e768eda95ff345f5993fb9d6bca) ) - ROM_LOAD32_WORD("epr-18069.16", 0x000002, 0x020000, CRC(f6c3fcbf) SHA1(84bf16fc2a441cb724f4bc635a4c4209c240cfbf) ) - ROM_LOAD32_WORD("epr-18066.13", 0x040000, 0x020000, CRC(e774229e) SHA1(0ff20aa3e030df869767bb9614565acc9f3fe3b1) ) - ROM_LOAD32_WORD("epr-18067.14", 0x040002, 0x020000, CRC(7dfd950c) SHA1(d5eff8aff37fb0ef3c7f9d8bfca8460213b0f0a7) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18055.11", 0x000000, 0x200000, CRC(5aba9fc0) SHA1(40d45af7e58fa48b6afa85071c2bd1d4b5b5ffa5) ) - ROM_LOAD32_WORD("mpr-18056.12", 0x000002, 0x200000, CRC(017f0c55) SHA1(744e5a02abd82fbeb875c5cd30c5543570140cff) ) - ROM_LOAD32_WORD("mpr-18053.9", 0x400000, 0x200000, CRC(46c770c8) SHA1(000e9edfed49cc3dcc136f80e044dcd2b42378ce) ) - ROM_LOAD32_WORD("mpr-18054.10", 0x400002, 0x200000, CRC(437af66e) SHA1(c5afa62100a93e160aa96b327a260cc7fee51fdc) ) - ROM_LOAD32_WORD("epr-18070.7", 0x800000, 0x080000, CRC(f52e4db5) SHA1(731452284c45329701258ee9fb8b7df6514fbba1) ) - ROM_LOAD32_WORD("epr-18071.8", 0x800002, 0x080000, CRC(1be63a7d) SHA1(c678f1f42de86cc968c3f823994d36c74b2e55fd) ) - - ROM_REGION( 0x800000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18057.17", 0x000000, 0x200000, CRC(890d8806) SHA1(fe73e4ea310e13b172e49d39c7eafba8f9052e67) ) - ROM_LOAD32_WORD("mpr-18059.21", 0x000002, 0x200000, CRC(c5cdf534) SHA1(fd127d33bc5a78b81aaa7d5886beca2192a62867) ) - ROM_LOAD32_WORD("mpr-18058.18", 0x400000, 0x200000, CRC(d4cbdf7c) SHA1(fe783c5bc94c2581fd990f0f0a705bdc5c05a386) ) - ROM_LOAD32_WORD("mpr-18060.22", 0x400002, 0x200000, CRC(93d5c95f) SHA1(bca83f024d85c97ca59fae8d9097fc510ec0fc7f) ) - - ROM_REGION( 0x400000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18062.27", 0x000000, 0x200000, CRC(126e7de3) SHA1(0810364934dee8d5035cef623d01dfbacc64bf2b) ) - ROM_LOAD32_WORD("mpr-18061.25", 0x000002, 0x200000, CRC(c37f1c67) SHA1(c917046c2d98af17c59ceb0ea4f89d215cc0ead8) ) - - ROM_REGION( 0x800000, REGION_USER5, ROMREGION_ERASE00 ) // Coprocessor Data ROM - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18072.31", 0x080000, 0x20000, CRC(73eabb58) SHA1(4f6d70d6e0d7b469c5f2527efb08f208f4aa017e) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18063.32", 0x000000, 0x200000, CRC(b74d7c8a) SHA1(da0bc8b3822b01087b6f9de0446cab1eb6617e8e) ) - ROM_LOAD("mpr-18064.33", 0x200000, 0x200000, CRC(783b9910) SHA1(108b23bb57e3133c555083aa4f9bc573ac6e3152) ) - ROM_LOAD("mpr-18065.34", 0x400000, 0x200000, CRC(046b55fe) SHA1(2db7eabf4318881a67b10dba24f6f0cd68940ace) ) -ROM_END - -ROM_START( dynabb ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-19833a.15", 0x000000, 0x080000, CRC(d99ed1b2) SHA1(b04613d564c04c35feafccad56ed85810d894185) ) - ROM_LOAD32_WORD("epr-19834a.16", 0x000002, 0x080000, CRC(24192bb1) SHA1(c535ab4b38ffd42f03eed6a5a1706e867eaccd67) ) - ROM_LOAD32_WORD("epr-19831a.13", 0x100000, 0x080000, CRC(0527ea40) SHA1(8e80e2627aafe395d8ced4a97ba50cd9a781fb45) ) - ROM_LOAD32_WORD("epr-19832a.14", 0x100002, 0x080000, CRC(2f380a40) SHA1(d770dfd70aa14dcc716aa47e6cbf26f32649f294) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-19841.11", 0x0000000, 0x400000, CRC(989309af) SHA1(d527f46865d00a91d5b38a93dc38baf62f372cb1) ) - ROM_LOAD32_WORD("mpr-19842.12", 0x0000002, 0x400000, CRC(eec54070) SHA1(29ed4a005b52f6e16492998183ec4e5f7475022b) ) - ROM_LOAD32_WORD("mpr-19839.9", 0x0800000, 0x400000, CRC(d5a74cf4) SHA1(ddea9cfc0a14461448acae2eed2092829ef3b418) ) - ROM_LOAD32_WORD("mpr-19840.10", 0x0800002, 0x400000, CRC(45704e95) SHA1(2a325ee39f9d719399040ed2a41123bcf0c6f385) ) - ROM_LOAD32_WORD("mpr-19837.7", 0x1000000, 0x400000, CRC(c02187d9) SHA1(1da108a2ec00e3fc472b1a819655aff8c679051d) ) - ROM_LOAD32_WORD("mpr-19838.8", 0x1000002, 0x400000, CRC(546b61cd) SHA1(0cc0edd0a9c288143168d63a7d48d0fbfa64d8bf) ) - ROM_LOAD32_WORD("mpr-19835.5", 0x1800000, 0x400000, CRC(a3b0a37c) SHA1(dcde1946008ab86c7fca212ec57c1cc468f30c58) ) - ROM_LOAD32_WORD("mpr-19836.6", 0x1800002, 0x400000, CRC(d70a32aa) SHA1(fd56bb284eb66e6c078b386a0db1c2b10dc1dd4a) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-19843.17", 0x000000, 0x400000, CRC(019bc583) SHA1(8889a9438d8f3ea50058372ad03ebd4653f23313) ) - ROM_LOAD32_WORD("mpr-19845.21", 0x000002, 0x400000, CRC(2d23e73a) SHA1(63e5859518172f88a5ba98b69309d4162c233cf0) ) - ROM_LOAD32_WORD("mpr-19844.18", 0x800000, 0x400000, CRC(150198d6) SHA1(3ea5c3e41eb95e715860619f771bc580c91b095f) ) - ROM_LOAD32_WORD("mpr-19846.22", 0x800002, 0x400000, CRC(fe53cd17) SHA1(58eab07976972917c345a8d3a50ff1e96e5fa798) ) - - ROM_REGION( 0x800000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-19848.27", 0x0000000, 0x400000, CRC(4c0526b7) SHA1(e8db7125be8a052e41a00c69cc08ca0d75b3b96f) ) - ROM_LOAD32_WORD("mpr-19847.25", 0x0000002, 0x400000, CRC(fe55edbd) SHA1(b0b6135b23349d7d6ae007002d8df83748cab7b1) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-19849.31", 0x080000, 0x80000, CRC(b0d5bff0) SHA1(1fb824adaf3ed330a8039be726a87eb85c00abd7) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-19880.32", 0x000000, 0x200000, CRC(e1fd27bf) SHA1(a7189ad398138a91f96b192cb7c112c0301dcda4) ) - ROM_LOAD("mpr-19850.33", 0x200000, 0x200000, CRC(dc644077) SHA1(8765bdb1d471dbeea065a97ae131f2d8f78aa13d) ) - ROM_LOAD("mpr-19851.34", 0x400000, 0x200000, CRC(cfda4efd) SHA1(14d55f127da6673c538c2ef9be34a4e02ca449f3) ) - ROM_LOAD("mpr-19853.35", 0x600000, 0x200000, CRC(cfc64857) SHA1(cf51fafb3d45bf799b9ccb407bee862e15c95981) ) -ROM_END - -ROM_START( fvipers ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-18606d.15", 0x000000, 0x020000, CRC(7334de7d) SHA1(d10355198a3f62b503701f44dc49bfe018c787d1) ) - ROM_LOAD32_WORD("epr-18607d.16", 0x000002, 0x020000, CRC(700d2ade) SHA1(656e25a6389f04f7fb9099f0b41fb03fa645a2f0) ) - ROM_LOAD32_WORD("epr-18604d.13", 0x040000, 0x020000, CRC(704fdfcf) SHA1(52b6ae90231d40a3ece133debaeb210fc36c6fcb) ) - ROM_LOAD32_WORD("epr-18605d.14", 0x040002, 0x020000, CRC(7dddf81f) SHA1(3e0da0eaf1f98dbbd4ca5f78c04052b347b234b2) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-18614.11", 0x0000000, 0x400000, CRC(0ebc899f) SHA1(49c80b11b207cba4ec10fbb7cc140f3a5b039e82) ) - ROM_LOAD32_WORD("mpr-18615.12", 0x0000002, 0x400000, CRC(018abdb7) SHA1(59e5b6378404e10ace4f3675428d61d3ae9d1963) ) - ROM_LOAD32_WORD("mpr-18612.9", 0x0800000, 0x400000, CRC(1f174cd1) SHA1(89b56dd2f350edd093dc06f4cc258652c26b1d45) ) - ROM_LOAD32_WORD("mpr-18613.10", 0x0800002, 0x400000, CRC(f057cdf2) SHA1(e16d5de2a00670aba4fbe0dc88ccf317de9842be) ) - ROM_LOAD32_WORD("epr-18610d.7", 0x1000000, 0x080000, CRC(a1871703) SHA1(8d7b362a8fd9d63f5cea2f3fab97e5fe3fa30d87) ) - ROM_RELOAD ( 0x1100000, 0x080000) - ROM_RELOAD ( 0x1200000, 0x080000) - ROM_RELOAD ( 0x1300000, 0x080000) - ROM_RELOAD ( 0x1400000, 0x080000) - ROM_RELOAD ( 0x1500000, 0x080000) - ROM_RELOAD ( 0x1600000, 0x080000) - ROM_RELOAD ( 0x1700000, 0x080000) - ROM_LOAD32_WORD("epr-18611d.8", 0x1000002, 0x080000, CRC(39a75fee) SHA1(c962805f03e2503dd1671ba3e906c6e306a92e48) ) - ROM_RELOAD ( 0x1100002, 0x080000) - ROM_RELOAD ( 0x1200002, 0x080000) - ROM_RELOAD ( 0x1300002, 0x080000) - ROM_RELOAD ( 0x1400002, 0x080000) - ROM_RELOAD ( 0x1500002, 0x080000) - ROM_RELOAD ( 0x1600002, 0x080000) - ROM_RELOAD ( 0x1700002, 0x080000) - ROM_LOAD32_WORD("epr-18608d.5", 0x1800000, 0x080000, CRC(5bc11881) SHA1(97ce5faf9719cb02dd3a15d47245cc4634f08fcb) ) - ROM_RELOAD ( 0x1900000, 0x080000) - ROM_RELOAD ( 0x1a00000, 0x080000) - ROM_RELOAD ( 0x1b00000, 0x080000) - ROM_RELOAD ( 0x1c00000, 0x080000) - ROM_RELOAD ( 0x1d00000, 0x080000) - ROM_RELOAD ( 0x1e00000, 0x080000) - ROM_RELOAD ( 0x1f00000, 0x080000) - ROM_LOAD32_WORD("epr-18609d.6", 0x1800002, 0x080000, CRC(cd426035) SHA1(94c85a656c86bc4880db6bff2ef795ec30f62f39) ) - ROM_RELOAD ( 0x1900002, 0x080000) - ROM_RELOAD ( 0x1a00002, 0x080000) - ROM_RELOAD ( 0x1b00002, 0x080000) - ROM_RELOAD ( 0x1c00002, 0x080000) - ROM_RELOAD ( 0x1d00002, 0x080000) - ROM_RELOAD ( 0x1e00002, 0x080000) - ROM_RELOAD ( 0x1f00002, 0x080000) - - ROM_REGION( 0x800000, REGION_USER5, 0 ) // Coprocessor Data ROM - ROM_LOAD32_WORD("mpr-18622.29", 0x000000, 0x200000, CRC(c74d99e3) SHA1(9914be9925b86af6af670745b5eba3a9e4f24af9) ) - ROM_LOAD32_WORD("mpr-18623.30", 0x000002, 0x200000, CRC(746ae931) SHA1(a6f0f589ad174a34493ee24dc0cb509ead3aed70) ) - - ROM_REGION( 0xc00000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-18616.17", 0x000000, 0x200000, CRC(15a239be) SHA1(1a33c48f99eed20da4b622219d21ec5995acc9aa) ) - ROM_LOAD32_WORD("mpr-18619.21", 0x000002, 0x200000, CRC(9d5e8e2b) SHA1(f79ae0a7b966ddb0948b464d233845d4f362a2e7) ) - ROM_LOAD32_WORD("mpr-18617.18", 0x400000, 0x200000, CRC(a62cab7d) SHA1(f20a545148f2a1d6f4f1c897f1ed82ad17429dce) ) - ROM_LOAD32_WORD("mpr-18620.22", 0x400002, 0x200000, CRC(4d432afd) SHA1(30a1ef1e309a163b2d8756810fc33debf069141c) ) - ROM_LOAD32_WORD("mpr-18618.19", 0x800000, 0x200000, CRC(adab589f) SHA1(67818ec4185da17f1549fb3a125cade267a46a48) ) - ROM_LOAD32_WORD("mpr-18621.23", 0x800002, 0x200000, CRC(f5eeaa95) SHA1(38d7019afcef6dbe292354d717fd49da511cbc2b) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-18626.27", 0x000000, 0x200000, CRC(9df0a961) SHA1(d8fb4bbbdc00303330047be380a79da7838d4fd5) ) - ROM_LOAD32_WORD("mpr-18624.25", 0x000002, 0x200000, CRC(1d74433e) SHA1(5b6d2d17609ae741546d99d40f575bb24d62b5d3) ) - ROM_LOAD32_WORD("mpr-18627.28", 0x800000, 0x200000, CRC(946175a0) SHA1(8b6e5e1342f98c9c6f2f7d61e843275d244f331a) ) - ROM_LOAD32_WORD("mpr-18625.26", 0x800002, 0x200000, CRC(182fd572) SHA1(b09a682eff7e835ff8c33aaece12f3727a91dd5e) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-18628.31", 0x080000, 0x80000, CRC(aa7dd79f) SHA1(d8bd1485273652d7c2a303bbdcdf607d3b530283) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-18629.32", 0x000000, 0x200000, CRC(5d0006cc) SHA1(f6d2552ffc5473836aafb06735b62f65ef8f5ef5) ) - ROM_LOAD("mpr-18630.33", 0x200000, 0x200000, CRC(9d405615) SHA1(7e7ffbb4ec080a0815c6ca49b9d8efe1f676203b) ) - ROM_LOAD("mpr-18631.34", 0x400000, 0x200000, CRC(9dae5b45) SHA1(055ac989eafb81749326520d0be264f7a984c627) ) - ROM_LOAD("mpr-18632.35", 0x600000, 0x200000, CRC(39da6805) SHA1(9e9523b7c2bc50f869d062f80955da1281951299) ) -ROM_END - -/* original Model 2 w/Model 1 sound board */ - -ROM_START( daytona ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr16722a.12", 0x000000, 0x020000, CRC(48b94318) SHA1(a476a9a3531beef760c88c9634ed4a7d270e8ee7) ) - ROM_LOAD32_WORD("epr16723a.13", 0x000002, 0x020000, CRC(8af8b32d) SHA1(2039ec1f8da524176fcf85473c10a8b6e49e139a) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr16528.10", 0x000000, 0x200000, CRC(9ce591f6) SHA1(e22fc8a70b533f7a6191f5952c581fb8f9627906) ) - ROM_LOAD32_WORD("mpr16529.11", 0x000002, 0x200000, CRC(f7095eaf) SHA1(da3c922f950dd730ea348eae12aa1cb69cee9a58) ) - ROM_LOAD32_WORD("mpr16808.8", 0x400000, 0x200000, CRC(44f1f5a0) SHA1(343866a6e2187a8ebc17f6727080f9f2f9ac9200) ) - ROM_LOAD32_WORD("mpr16809.9", 0x400002, 0x200000, CRC(37a2dd12) SHA1(8192d8698d6bd52ee11cc28917aff5840c447627) ) - ROM_LOAD32_WORD("epr16724a.6", 0x800000, 0x080000, CRC(469f10fd) SHA1(7fad3b8d03960e5e1f7a6cb36509238977e00fcc) ) - ROM_RELOAD ( 0x900000, 0x080000 ) - ROM_RELOAD ( 0xa00000, 0x080000 ) - ROM_RELOAD ( 0xb00000, 0x080000 ) - ROM_RELOAD ( 0xc00000, 0x080000 ) - ROM_RELOAD ( 0xd00000, 0x080000 ) - ROM_RELOAD ( 0xe00000, 0x080000 ) - ROM_RELOAD ( 0xf00000, 0x080000 ) - ROM_LOAD32_WORD("epr-16725a.7", 0x800002, 0x080000, CRC(ba0df8db) SHA1(d0c5581c56500b5266cab8e8151db24fcbdea0d7) ) - ROM_RELOAD ( 0x900002, 0x080000 ) - ROM_RELOAD ( 0xa00002, 0x080000 ) - ROM_RELOAD ( 0xb00002, 0x080000 ) - ROM_RELOAD ( 0xc00002, 0x080000 ) - ROM_RELOAD ( 0xd00002, 0x080000 ) - ROM_RELOAD ( 0xe00002, 0x080000 ) - ROM_RELOAD ( 0xf00002, 0x080000 ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD("mpr-16537.28", 0x000000, 0x100000, CRC(44ce6834) SHA1(61b7ee8f9667683bb723bb930945e550ba84daa4) ) - ROM_LOAD32_WORD("mpr-16536.29", 0x000002, 0x100000, CRC(adea6e68) SHA1(fd9065ea1a19791e813ec163525c072a2e985e61) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-16523.16", 0x000000, 0x200000, CRC(2f484d42) SHA1(0b83a3fc92b7d913a14cfb01d688c63555c17c41) ) - ROM_LOAD32_WORD("mpr-16518.20", 0x000002, 0x200000, CRC(df683bf7) SHA1(16afe5029591f3536b5b75d9cf50a34d0ea72c3d) ) - ROM_LOAD32_WORD("mpr-16524.17", 0x400000, 0x100000, CRC(fd5ce5e7) SHA1(b33098977b6fc980e3f21096f96745199a2155a9) ) - ROM_LOAD32_WORD("mpr-16519.21", 0x400002, 0x100000, CRC(5348d519) SHA1(b0fa271e6d350ac5112a258bb9c0fa569e05c739) ) - ROM_LOAD32_WORD("mpr-16525.18", 0x600000, 0x100000, CRC(04d56b09) SHA1(62d28ba02cdcc5de89b558ea32ac92aca95d1ff8) ) - ROM_LOAD32_WORD("mpr-16520.22", 0x600002, 0x100000, CRC(937f390b) SHA1(e8fe943a2824101d0a37dada5103daa1009a531d) ) - ROM_LOAD32_WORD("mpr-16772.19", 0x800000, 0x200000, CRC(770ed912) SHA1(1789f35dd403f73f8be18495a0fe4ad1e6841417) ) - ROM_LOAD32_WORD("mpr-16771.23", 0x800002, 0x200000, CRC(a2205124) SHA1(257a3675e4ef6adbf61285a5daa5954223c28cb2) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-16521.24", 0x000000, 0x200000, CRC(af1934fb) SHA1(a6a21a23cd34d0de6d3e6a5c3c2687f905d0dc2a) ) - ROM_LOAD32_WORD("mpr-16522.25", 0x000002, 0x200000, CRC(55d39a57) SHA1(abf7b0fc0f111f90da42463d600db9fa32e95efe) ) - ROM_LOAD32_WORD("mpr-16769.26", 0x400000, 0x200000, CRC(e57429e9) SHA1(8c712ab09e61ef510741a55f29b3c4e497471372) ) - ROM_LOAD32_WORD("mpr-16770.27", 0x400002, 0x200000, CRC(f9fa7bfb) SHA1(8aa933b74d4e05dc49987238705e50b00e5dae73) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // Communication program - ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) - ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) - ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) // Samples - ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) - ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) - - MODEL2_CPU_BOARD /* Model 2 CPU board extra roms */ - - ROM_REGION( 0x10000, REGION_USER7, 0 ) // Unknown ROM - ROM_LOAD("14869c.25", 0x000000, 0x010000, CRC(24b68e64) SHA1(c19d044d4c2fe551474492aa51922587394dd371) ) -ROM_END - -ROM_START( daytonat ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "turbo1.12", 0x000000, 0x080000, CRC(0b3d5d4e) SHA1(1660959cb383e22f0d6204547c30cf5fe9272b03) ) - ROM_LOAD32_WORD( "turbo2.13", 0x000002, 0x080000, CRC(f7d4e866) SHA1(c8c43904257f718665f9f7a89838eba14bde9465) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-16528.10", 0x000000, 0x200000, CRC(9ce591f6) SHA1(e22fc8a70b533f7a6191f5952c581fb8f9627906) ) - ROM_LOAD32_WORD("mpr-16529.11", 0x000002, 0x200000, CRC(f7095eaf) SHA1(da3c922f950dd730ea348eae12aa1cb69cee9a58) ) - ROM_LOAD32_WORD("mpr-16808.8", 0x400000, 0x200000, CRC(44f1f5a0) SHA1(343866a6e2187a8ebc17f6727080f9f2f9ac9200) ) - ROM_LOAD32_WORD("mpr-16809.9", 0x400002, 0x200000, CRC(37a2dd12) SHA1(8192d8698d6bd52ee11cc28917aff5840c447627) ) - ROM_LOAD32_WORD("epr-16724a.6", 0x800000, 0x080000, CRC(469f10fd) SHA1(7fad3b8d03960e5e1f7a6cb36509238977e00fcc) ) - ROM_RELOAD ( 0x900000, 0x080000 ) - ROM_RELOAD ( 0xa00000, 0x080000 ) - ROM_RELOAD ( 0xb00000, 0x080000 ) - ROM_RELOAD ( 0xc00000, 0x080000 ) - ROM_RELOAD ( 0xd00000, 0x080000 ) - ROM_RELOAD ( 0xe00000, 0x080000 ) - ROM_RELOAD ( 0xf00000, 0x080000 ) - ROM_LOAD32_WORD("epr-16725a.7", 0x800002, 0x080000, CRC(ba0df8db) SHA1(d0c5581c56500b5266cab8e8151db24fcbdea0d7) ) - ROM_RELOAD ( 0x900002, 0x080000 ) - ROM_RELOAD ( 0xa00002, 0x080000 ) - ROM_RELOAD ( 0xb00002, 0x080000 ) - ROM_RELOAD ( 0xc00002, 0x080000 ) - ROM_RELOAD ( 0xd00002, 0x080000 ) - ROM_RELOAD ( 0xe00002, 0x080000 ) - ROM_RELOAD ( 0xf00002, 0x080000 ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD("mpr-16537.28", 0x000000, 0x100000, CRC(44ce6834) SHA1(61b7ee8f9667683bb723bb930945e550ba84daa4) ) - ROM_LOAD32_WORD("mpr-16536.29", 0x000002, 0x100000, CRC(adea6e68) SHA1(fd9065ea1a19791e813ec163525c072a2e985e61) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-16523.16", 0x000000, 0x200000, CRC(2f484d42) SHA1(0b83a3fc92b7d913a14cfb01d688c63555c17c41) ) - ROM_LOAD32_WORD("mpr-16518.20", 0x000002, 0x200000, CRC(df683bf7) SHA1(16afe5029591f3536b5b75d9cf50a34d0ea72c3d) ) - ROM_LOAD32_WORD("mpr-16524.17", 0x400000, 0x100000, CRC(fd5ce5e7) SHA1(b33098977b6fc980e3f21096f96745199a2155a9) ) - ROM_LOAD32_WORD("mpr-16519.21", 0x400002, 0x100000, CRC(5348d519) SHA1(b0fa271e6d350ac5112a258bb9c0fa569e05c739) ) - ROM_LOAD32_WORD("mpr-16525.18", 0x600000, 0x100000, CRC(04d56b09) SHA1(62d28ba02cdcc5de89b558ea32ac92aca95d1ff8) ) - ROM_LOAD32_WORD("mpr-16520.22", 0x600002, 0x100000, CRC(937f390b) SHA1(e8fe943a2824101d0a37dada5103daa1009a531d) ) - ROM_LOAD32_WORD("mpr-16772.19", 0x800000, 0x200000, CRC(770ed912) SHA1(1789f35dd403f73f8be18495a0fe4ad1e6841417) ) - ROM_LOAD32_WORD("mpr-16771.23", 0x800002, 0x200000, CRC(a2205124) SHA1(257a3675e4ef6adbf61285a5daa5954223c28cb2) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-16521.24", 0x000000, 0x200000, CRC(af1934fb) SHA1(a6a21a23cd34d0de6d3e6a5c3c2687f905d0dc2a) ) - ROM_LOAD32_WORD("mpr-16522.25", 0x000002, 0x200000, CRC(55d39a57) SHA1(abf7b0fc0f111f90da42463d600db9fa32e95efe) ) - ROM_LOAD32_WORD("mpr-16769.26", 0x400000, 0x200000, CRC(e57429e9) SHA1(8c712ab09e61ef510741a55f29b3c4e497471372) ) - ROM_LOAD32_WORD("mpr-16770.27", 0x400002, 0x200000, CRC(f9fa7bfb) SHA1(8aa933b74d4e05dc49987238705e50b00e5dae73) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // Communication program - ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) - ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) - ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) // Samples - ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) - ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) - - MODEL2_CPU_BOARD /* Model 2 CPU board extra roms */ - - ROM_REGION( 0x10000, REGION_USER7, 0 ) // Unknown ROM - ROM_LOAD("14869c.25", 0x000000, 0x010000, CRC(24b68e64) SHA1(c19d044d4c2fe551474492aa51922587394dd371) ) -ROM_END - -ROM_START( daytonam ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "maxx.12", 0x000000, 0x020000, CRC(604ef2d9) SHA1(b1d5f0d41bea2e74fb9346da35a5041f4464265e) ) - ROM_LOAD32_WORD( "maxx.13", 0x000002, 0x020000, CRC(7d319970) SHA1(5bc150a77f20a29f54acdf5043fb1e8e55f6b08b) ) - ROM_LOAD32_WORD( "maxx.14", 0x040000, 0x020000, CRC(2debfce0) SHA1(b0f578ae68d49a3eebaf9b453a1ad774c8620476) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-16528.10", 0x000000, 0x200000, CRC(9ce591f6) SHA1(e22fc8a70b533f7a6191f5952c581fb8f9627906) ) - ROM_LOAD32_WORD("mpr-16529.11", 0x000002, 0x200000, CRC(f7095eaf) SHA1(da3c922f950dd730ea348eae12aa1cb69cee9a58) ) - ROM_LOAD32_WORD("mpr-16808.8", 0x400000, 0x200000, CRC(44f1f5a0) SHA1(343866a6e2187a8ebc17f6727080f9f2f9ac9200) ) - ROM_LOAD32_WORD("mpr-16809.9", 0x400002, 0x200000, CRC(37a2dd12) SHA1(8192d8698d6bd52ee11cc28917aff5840c447627) ) - ROM_LOAD32_WORD("epr-16724a.6", 0x800000, 0x080000, CRC(469f10fd) SHA1(7fad3b8d03960e5e1f7a6cb36509238977e00fcc) ) - ROM_RELOAD ( 0x900000, 0x080000 ) - ROM_RELOAD ( 0xa00000, 0x080000 ) - ROM_RELOAD ( 0xb00000, 0x080000 ) - ROM_RELOAD ( 0xc00000, 0x080000 ) - ROM_RELOAD ( 0xd00000, 0x080000 ) - ROM_RELOAD ( 0xe00000, 0x080000 ) - ROM_RELOAD ( 0xf00000, 0x080000 ) - ROM_LOAD32_WORD("epr-16725a.7", 0x800002, 0x080000, CRC(ba0df8db) SHA1(d0c5581c56500b5266cab8e8151db24fcbdea0d7) ) - ROM_RELOAD ( 0x900002, 0x080000 ) - ROM_RELOAD ( 0xa00002, 0x080000 ) - ROM_RELOAD ( 0xb00002, 0x080000 ) - ROM_RELOAD ( 0xc00002, 0x080000 ) - ROM_RELOAD ( 0xd00002, 0x080000 ) - ROM_RELOAD ( 0xe00002, 0x080000 ) - ROM_RELOAD ( 0xf00002, 0x080000 ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD("mpr-16537.28", 0x000000, 0x100000, CRC(44ce6834) SHA1(61b7ee8f9667683bb723bb930945e550ba84daa4) ) - ROM_LOAD32_WORD("mpr-16536.29", 0x000002, 0x100000, CRC(adea6e68) SHA1(fd9065ea1a19791e813ec163525c072a2e985e61) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-16523.16", 0x000000, 0x200000, CRC(2f484d42) SHA1(0b83a3fc92b7d913a14cfb01d688c63555c17c41) ) - ROM_LOAD32_WORD("mpr-16518.20", 0x000002, 0x200000, CRC(df683bf7) SHA1(16afe5029591f3536b5b75d9cf50a34d0ea72c3d) ) - ROM_LOAD32_WORD("mpr-16524.17", 0x400000, 0x100000, CRC(fd5ce5e7) SHA1(b33098977b6fc980e3f21096f96745199a2155a9) ) - ROM_LOAD32_WORD("mpr-16519.21", 0x400002, 0x100000, CRC(5348d519) SHA1(b0fa271e6d350ac5112a258bb9c0fa569e05c739) ) - ROM_LOAD32_WORD("mpr-16525.18", 0x600000, 0x100000, CRC(04d56b09) SHA1(62d28ba02cdcc5de89b558ea32ac92aca95d1ff8) ) - ROM_LOAD32_WORD("mpr-16520.22", 0x600002, 0x100000, CRC(937f390b) SHA1(e8fe943a2824101d0a37dada5103daa1009a531d) ) - ROM_LOAD32_WORD("mpr-16772.19", 0x800000, 0x200000, CRC(770ed912) SHA1(1789f35dd403f73f8be18495a0fe4ad1e6841417) ) - ROM_LOAD32_WORD("mpr-16771.23", 0x800002, 0x200000, CRC(a2205124) SHA1(257a3675e4ef6adbf61285a5daa5954223c28cb2) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-16521.24", 0x000000, 0x200000, CRC(af1934fb) SHA1(a6a21a23cd34d0de6d3e6a5c3c2687f905d0dc2a) ) - ROM_LOAD32_WORD("mpr-16522.25", 0x000002, 0x200000, CRC(55d39a57) SHA1(abf7b0fc0f111f90da42463d600db9fa32e95efe) ) - ROM_LOAD32_WORD("mpr-16769.26", 0x400000, 0x200000, CRC(e57429e9) SHA1(8c712ab09e61ef510741a55f29b3c4e497471372) ) - ROM_LOAD32_WORD("mpr-16770.27", 0x400002, 0x200000, CRC(f9fa7bfb) SHA1(8aa933b74d4e05dc49987238705e50b00e5dae73) ) - - ROM_REGION( 0x20000, REGION_CPU4, 0) // Communication program - ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-16720.7", 0x000000, 0x020000, CRC(8e73cffd) SHA1(9933ccc0757e8c86e0adb938d1c89210b26841ea) ) - ROM_LOAD16_WORD_SWAP("epr-16721.8", 0x020000, 0x020000, CRC(1bb3b7b7) SHA1(ee2fd1480e535fc37e9932e6fe4e31344559fc87) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-16491.32", 0x000000, 0x200000, CRC(89920903) SHA1(06d1d55470ae99f8de0f8c88c694f34c4eb13668) ) - ROM_LOAD("mpr-16492.33", 0x200000, 0x200000, CRC(459e701b) SHA1(2054f69cecad677eb00c6a3051f5b5d90885e19b) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) // Samples - ROM_LOAD("mpr-16493.4", 0x000000, 0x200000, CRC(9990db15) SHA1(ea9a8b45a07dccaae62be7cf095532ce7596a70c) ) - ROM_LOAD("mpr-16494.5", 0x200000, 0x200000, CRC(600e1d6c) SHA1(d4e246fc57a16ff562bbcbccf6a739b706f58696) ) - - MODEL2_CPU_BOARD /* Model 2 CPU board extra roms */ - - ROM_REGION( 0x10000, REGION_USER7, 0 ) // Unknown ROM - ROM_LOAD("14869c.25", 0x000000, 0x010000, CRC(24b68e64) SHA1(c19d044d4c2fe551474492aa51922587394dd371) ) -ROM_END - -ROM_START( vcop ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD( "epr-17166b.012", 0x000000, 0x020000, CRC(a5647c59) SHA1(0a9e0be447d3591e82efd40ef4acbfe7ae211579) ) - ROM_LOAD32_WORD( "epr-17167b.013", 0x000002, 0x020000, CRC(f5dde26a) SHA1(95db029bc4206a44ea216afbcd1c19689f79115a) ) - ROM_LOAD32_WORD( "epr-17160a.014", 0x040000, 0x020000, CRC(267f3242) SHA1(40ec09cda984bb80969bfae2278432153137c213) ) - ROM_LOAD32_WORD( "epr-17161a.015", 0x040002, 0x020000, CRC(f7126876) SHA1(b0ceb1206edaa507ec15723497fcd447a511f423) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD( "mpr-17164.010", 0x000000, 0x200000, CRC(ac5fc501) SHA1(e60deec1e79d207d37d3f4ddd83a1b2125c411ac) ) - ROM_LOAD32_WORD( "mpr-17165.011", 0x000002, 0x200000, CRC(82296d00) SHA1(23327137b36c98dfb9175ea9d36478e7385dfac2) ) - ROM_LOAD32_WORD( "mpr-17162.008", 0x400000, 0x200000, CRC(60ddd41e) SHA1(0894c9bcdedeb09f921419a309858e242cb8db3a) ) - ROM_LOAD32_WORD( "mpr-17163.009", 0x400002, 0x200000, CRC(8c1f9dc8) SHA1(cf99a5bb4f343d59c8d6f5716287b6e16bef6412) ) - ROM_LOAD32_WORD( "epr-17168a.006", 0x800000, 0x080000, CRC(59091a37) SHA1(14591c7015aaf126755be584aa94c04e6de222fa) ) - ROM_LOAD32_WORD( "epr-17169a.007", 0x800002, 0x080000, CRC(0495808d) SHA1(5b86a9a68c2b52f942aa8d858ee7a491f546a921) ) - - ROM_REGION( 0x400000, REGION_CPU3, ROMREGION_ERASE00 ) // TGP program - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD( "mpr-17159.016", 0x000000, 0x200000, CRC(e218727d) SHA1(1458d01d49936a0b8d497b62ff9ea940ca753b37) ) - ROM_LOAD32_WORD( "mpr-17156.020", 0x000002, 0x200000, CRC(c4f4aabf) SHA1(8814cd329609cc8a188fedd770230bb9a5d00361) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD( "mpr-17157.024", 0x000000, 0x200000, CRC(cf31e33d) SHA1(0cb62d4f28b5ad8a7e4c82b0ca8aea3037b05455) ) - ROM_LOAD32_WORD( "mpr-17158.025", 0x000002, 0x200000, CRC(1108d1ec) SHA1(e95d4166bd4b26c5f21b85821b410f53045f4309) ) - - ROM_REGION( 0x20000, REGION_CPU5, 0) // Communication program - ROM_LOAD32_WORD( "epr-17181.006", 0x000000, 0x010000, CRC(1add2b82) SHA1(81892251d466f630a96af25bde652c20e47d7ede) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP( "epr-17170.007", 0x000000, 0x020000, CRC(06a38ae2) SHA1(a2c3d14d9266449ebfc6d976a956e0a8a602cfb0) ) - ROM_LOAD16_WORD_SWAP( "epr-17171.008", 0x020000, 0x020000, CRC(b5e436f8) SHA1(1da3cb52d64f52d03a8de9954afffbc6e1549a5b) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD( "mpr-17172.032", 0x000000, 0x100000, CRC(ab22cac3) SHA1(0e872158faeb8c0404b10cdf0a3fa36f89a5093e) ) - ROM_LOAD( "mpr-17173.033", 0x200000, 0x100000, CRC(3cb4005c) SHA1(a56f436ea6dfe0968b73ae7bc92bb2f4c612460d) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) // Samples - ROM_LOAD( "mpr-17174.004", 0x000000, 0x200000, CRC(a50369cc) SHA1(69807157baf6e3679adc95633c82b0236db01247) ) - ROM_LOAD( "mpr-17175.005", 0x200000, 0x200000, CRC(9136d43c) SHA1(741f80a8ff8165ffe171dc568e0da4ad0bde4809) ) - - MODEL2_CPU_BOARD -ROM_END - -ROM_START( desert ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("epr-16976.12", 0x000000, 0x020000, CRC(d036dff0) SHA1(f3e5f22ef1f3ff9c9a1ff7352cdad3e2c2977a51) ) - ROM_LOAD32_WORD("epr-16977.13", 0x000002, 0x020000, CRC(e91194bd) SHA1(cec8eb8d4b52c387d5750ee5a0c6e6ce7c0fe80d) ) - ROM_LOAD32_WORD("epr-16970.14", 0x040000, 0x020000, CRC(4ea12d1f) SHA1(75133b03a450518bae27d62f0a1c37451c8c49a0) ) - ROM_LOAD32_WORD("epr-16971.15", 0x040002, 0x020000, CRC(d630b220) SHA1(ca7bd1e01e396b8b6a0925e767cc714729e0fd42) ) - - ROM_REGION32_LE( 0x2000000, REGION_USER1, 0 ) // Data - ROM_LOAD32_WORD("mpr-16974.10", 0x000000, 0x200000, CRC(2ab491c5) SHA1(79deb3877d0ffc8ee75c01d3bf0a6dd71cc2b552) ) - ROM_LOAD32_WORD("mpr-16975.11", 0x000002, 0x200000, CRC(e24fe7d3) SHA1(f8ab28c95d421978b1517adeacf09e7ee203d8f6) ) - ROM_LOAD32_WORD("mpr-16972.8", 0x400000, 0x200000, CRC(23e53748) SHA1(9c8a1d8aec8f9e5504e5aac0390dfb3770ab8616) ) - ROM_LOAD32_WORD("mpr-16973.9", 0x400002, 0x200000, CRC(77d6f509) SHA1(c83bce7f7b0a15bd14b99e829640b7dd9948e671) ) - ROM_LOAD32_WORD("epr-16978.6", 0x800000, 0x080000, CRC(38b3e574) SHA1(a1133df608b0fbb9c53bbeb29138650c87845d2c) ) - ROM_LOAD32_WORD("epr-16979.7", 0x800002, 0x080000, CRC(c314eb8b) SHA1(0c851dedd5c42b026195faed7d028924698a8b27) ) - - ROM_REGION( 0x400000, REGION_CPU3, 0 ) // TGP program? (COPRO socket) - ROM_LOAD32_WORD("epr-16981.28", 0x000000, 0x080000, CRC(ae847571) SHA1(32d0f9e685667ae9fddacea0b9f4ad6fb3a6fdad) ) - ROM_LOAD32_WORD("epr-16980.29", 0x000002, 0x080000, CRC(5239b864) SHA1(e889556e0f1ea80de52afff563b0923f87cef7ab) ) - - ROM_REGION( 0x1000000, REGION_USER2, 0 ) // Models - ROM_LOAD32_WORD("mpr-16968.16", 0x000000, 0x200000, CRC(4a16f465) SHA1(411214ed65ce966040d4299b50bfaa40f7f5f266) ) - ROM_LOAD32_WORD("mpr-16965.20", 0x000002, 0x200000, CRC(9ba7645f) SHA1(c04f369961f908bac16fad8e32b863202390c205) ) - ROM_LOAD32_WORD("mpr-16969.17", 0x400000, 0x200000, CRC(887380ac) SHA1(03a9f601764d06cb0b2daaadf4f8433f327abd4a) ) - ROM_LOAD32_WORD("mpr-16964.21", 0x400002, 0x200000, CRC(d4a769b6) SHA1(845c34f95a49e06e3996b0c67aa73b4886fa8996) ) - - ROM_REGION( 0x1000000, REGION_USER3, 0 ) // Textures - ROM_LOAD32_WORD("mpr-16966.24", 0x000000, 0x200000, CRC(7484efe9) SHA1(33e72139ad6c2990428e3fa041dbcdf39aca1c7a) ) - ROM_LOAD32_WORD("mpr-16967.25", 0x000002, 0x200000, CRC(b8b84c9d) SHA1(00ef320988609e98c8af383b68d845e3be8d0a03) ) - - ROM_REGION( 0x20000, REGION_CPU5, ROMREGION_ERASE00 ) // Communication program - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) // Sound program - ROM_LOAD16_WORD_SWAP("epr-16985.7", 0x000000, 0x20000, CRC(8c4d9056) SHA1(785752d761c648d1177c5f0cfa3e9fa44135d6dc) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("mpr-16986.32", 0x000000, 0x200000, CRC(559612f9) SHA1(33bcaddfc7d8fe899707e663299e8f04e9004d51) ) - - ROM_REGION( 0x400000, REGION_SOUND2, 0 ) // Samples - ROM_LOAD("mpr-16988.4", 0x000000, 0x200000, CRC(bc705875) SHA1(5351c6bd2d75df57ff92960e7f90493d95d9dfb9) ) - ROM_LOAD("mpr-16989.5", 0x200000, 0x200000, CRC(1b616b31) SHA1(35bd2bfd08514ba6f235cda2605c171cd51fd78e) ) - - MODEL2_CPU_BOARD -ROM_END - -static DRIVER_INIT( genprot ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_w); - protstate = protpos = 0; -} - -static DRIVER_INIT( pltkids ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_w); - protstate = protpos = 0; - - // fix bug in program: it destroys the interrupt table and never fixes it - ROM[0x730/4] = 0x08000004; -} - -static DRIVER_INIT( zerogun ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_w); - protstate = protpos = 0; - - // fix bug in program: it destroys the interrupt table and never fixes it - ROM[0x700/4] = 0x08000004; -} - -static DRIVER_INIT( daytona ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - // kill TGP busywait - ROM[0x11c7c/4] = 0x08000004; -} - -static DRIVER_INIT( daytonam ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x240000, 0x24ffff, 0, 0, maxx_r ); -} - -static DRIVER_INIT( sgt24h ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_w); - protstate = protpos = 0; - - ROM[0x56578/4] = 0x08000004; - ROM[0x5b3e8/4] = 0x08000004; -} - -static DRIVER_INIT( doa ) -{ - UINT32 *ROM = (UINT32 *)memory_region(REGION_CPU1); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x01d80000, 0x01dfffff, 0, 0, model2_prot_w); - protstate = protpos = 0; - - ROM[0x630/4] = 0x08000004; - ROM[0x808/4] = 0x08000004; -} - -// Model 2 (TGPs, Model 1 sound board) -GAME( 1993, daytona, 0, model2o, daytona, daytona, ROT0, "Sega", "Daytona USA (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, daytonat, daytona, model2o, daytona, 0, ROT0, "Sega", "Daytona USA (Japan, Turbo hack)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, daytonam, daytona, model2o, daytona, daytonam, ROT0, "Sega", "Daytona USA (Japan, To The MAXX)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, desert, 0, model2o, desert, 0, ROT0, "Sega/Martin Marietta", "Desert Tank", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, vcop, 0, model2o, daytona, 0, ROT0, "Sega", "Virtua Cop", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) - -// Model 2A-CRX (TGPs, SCSP sound board) -GAME( 1995, manxtt, 0, model2a, model2, 0, ROT0, "Sega", "Manx TT Superbike", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, srallyc, 0, model2a, model2, 0, ROT0, "Sega", "Sega Rally Championship", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2, 0, model2a, model2, 0, ROT0, "Sega", "Virtua Fighter 2 (ver 2.1)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2b, vf2, model2a, model2, 0, ROT0, "Sega", "Virtua Fighter 2 (ver B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, vf2o, vf2, model2a, model2, 0, ROT0, "Sega", "Virtua Fighter 2", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, vcop2, 0, model2a, model2, 0, ROT0, "Sega", "Virtua Cop 2", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, skytargt, 0, model2a, model2, 0, ROT0, "Sega", "Sky Target", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, dynamcop, 0, model2a, model2, genprot, ROT0, "Sega", "Dynamite Cop (Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, dyndeka2, dynamcop, model2a, model2, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, doaa, doa, model2a, model2, doa, ROT0, "Sega", "Dead or Alive (Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, zeroguna, zerogun, model2a, model2, zerogun, ROT0, "Psikyo", "Zero Gunner (Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, pltkidsa, pltkids, model2a, model2, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) - -// Model 2B-CRX (SHARC, SCSP sound board) -GAME( 1994, vstriker, 0, model2b, model2, 0, ROT0, "Sega", "Virtua Striker (Rev A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, vstrikro, vstriker, model2b, model2, 0, ROT0, "Sega", "Virtua Striker", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, fvipers, 0, model2b, model2, 0, ROT0, "Sega", "Fighting Vipers", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, gunblade, 0, model2b, model2, 0, ROT0, "Sega", "Gunblade NY", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, indy500, 0, model2b, model2, 0, ROT0, "Sega", "Indianapolis 500", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, dynmcopb, dynamcop, model2b, model2, genprot, ROT0, "Sega", "Dynamite Cop (Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, schamp, 0, model2b, model2, 0, ROT0, "Sega", "Sonic The Fighters", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, lastbrnx, 0, model2b, model2, 0, ROT0, "Sega", "Last Bronx (Export, Rev A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, lastbrnj, lastbrnx, model2b, model2, 0, ROT0, "Sega", "Last Bronx (Japan, Rev A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, doa, 0, model2b, model2, doa, ROT0, "Sega", "Dead or Alive (Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, sgt24h, 0, model2b, model2, sgt24h, ROT0, "Jaleco", "Super GT 24h", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, von, 0, model2b, model2, 0, ROT0, "Sega", "Virtual On Cyber Troopers (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, vonusa, von, model2b, model2, 0, ROT0, "Sega", "Virtual On Cyber Troopers (US)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, dynabb, 0, model2b, model2, 0, ROT0, "Sega", "Dynamite Baseball '97", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, zerogun, 0, model2b, model2, zerogun, ROT0, "Psikyo", "Zero Gunner (Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, zerogunj, zerogun, model2b, model2, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, pltkids, 0, model2b, model2, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) - -// Model 2C-CRX (TGPx4, SCSP sound board) -GAME( 1996, skisuprg, 0, model2c, model2, 0, ROT0, "Sega", "Sega Ski Super G", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1996, stcc, 0, model2c, model2, 0, ROT0, "Sega", "Sega Touring Car Championship", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, hotd, 0, model2c, model2, 0, ROT0, "Sega", "House of the Dead", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, overrev, 0, model2c, model2, 0, ROT0, "Jaleco", "Over Rev", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, topskatr, 0, model2c, model2, 0, ROT0, "Sega", "Top Skater", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, bel, 0, model2c, bel, 0, ROT0, "Sega/EPL Productions", "Behind Enemy Lines", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS ) - diff --git a/src/drivers/model3.c b/src/drivers/model3.c deleted file mode 100644 index da60f4c38..000000000 --- a/src/drivers/model3.c +++ /dev/null @@ -1,4329 +0,0 @@ -/* - Sega Model 3 - PowerPC 603e + tilemaps + Real3D 1000 + 68000 + 2x SCSP - Preliminary driver by Andrew Gardiner, R. Belmont and Ville Linde - - Hardware info from Team Supermodel: Bart Trzynadlowski, Ville Linde, and Stefano Teso - - Hardware revisions - ------------------ - Step 1.0: 66 MHz PPC - Step 1.5: 100 MHz PPC, faster 3D engine - Step 2.0: 166 MHz PPC, even faster 3D engine - Step 2.1: 166 MHz PPC, same 3D engine as 2.0, differences unknown - -=================================================================================== - -Tilemap generator notes: - - 0xF1000000-0xF111FFFF Tilegen VRAM - 0xF1180000-0xF11800FF (approx.) Tilegen regs - -Offsets in tilemap VRAM: - - 0 Tile pattern VRAM (can be 4 or 8 bpp, layout is normal chunky-pixel format) - 0xF8000 Layer 0 (top) - 0xFA000 Layer 1 - 0xFC000 Layer 2 - 0xFE000 Layer 3 (bottom) - - 0x100000 Palette (1-5-5-5 A-G-B-R format) - -Offsets in tilemap registers: - - 0x10: IRQ ack for VBlank - - 0x20: layer depths - - xxxxxxxxDCBAxxxxxxxxxxxxxxxxxxxx - 3 2 2 2 1 1 8 4 0 - 1 8 4 0 6 2 - - A: 0 = layer A is 8-bit, 1 = layer A is 4-bit - B: 0 = layer B is 8-bit, 1 = layer B is 4-bit - C: 0 = layer C is 8-bit, 1 = layer C is 4-bit - D: 0 = layer D is 8-bit, 1 = layer D is 4-bit - -Tilemap entry formats (16-bit wide): -15 0 -+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ -| T0|PHI|T14|T13|T12|T11|T10| T9| T8| T7| T6| T5| T4| T3| T2| T1| -+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - - T0 - T14 = pattern name (multiply by 32 or 64 to get a byte offset - into pattern VRAM. Yes, bit 15 is T0.) - To get the palette offset, use the top 7 (8 bpp) or 11 (4 bpp) - bits of the tilemap entry, *excluding* bit 15. So PHI-T9 - are the palette select bits for 8bpp and PHI-T5 for 4bpp. - -=================================================================================== - -Harley Davidson (Rev.A) -Sega, 1997 - -This game runs on Sega Model3 Step2 hardware. - -COMM Board ----------- - -171-7053B 837-11861 NEP-16T MODEL3 COMMUNICATION BOARD -|---------------------------------------------------------------------------------------------------| -| | -| LATTICE NKK N341256SJ-20 NKK N341256SJ-20 NKK N341256SJ-20 40MHz | -| PLSI 2032 JP3 JP1 | -| JP4 NKK N341256SJ-20 NKK N341256SJ-20 NKK N341256SJ-20 | -| JP2 | -| | -| PALCE16V8 | -| 315-6075A 68000FN12 315-5804 315-5917 315-5917 | -| (QFP144) (QFP80) (QFP80) | -| PALCE16V8 | -| 315-6074 | -| | -|---------------------------------------------------------------------------------------------------| -JP1: 1-2 -JP2: 2-3 -JP3: not shorted -JP4: shorted - - -ROM Board ---------- - -171-7427B 837-13022 MODEL3 STEP2 ROM BOARD -|---------------------------------------------------------------------------------------------------| -| | -| MC88915FN70 GAL16V8B | -| JP13 315-6090A JP1 JP11 JP2 JP7 2-3| -| 2-3 1-2 1-2 2-3 JP8 2-3| -| JP9 2-3| -| VROM01.26 VROM00.27 CROM03.1 CROM02.2 SROM0.21 | -| | -| VROM03.28 VROM02.29 CROM01.3 CROM00.4 | -| | -| VROM05.30 VROM04.31 CROM13.5 CROM12.6 CROM2.18 CROM0.20 SROM1.22 SROM3.24 | -| | -| VROM07.32 VROM06.33 CROM11.7 CROM10.8 | -| | -| VROM11.34 VROM10.35 CROM23.9 CROM22.10 | -| | -| VROM13.36 VROM12.37 CROM21.11 CROM20.12 | -| | -| VROM15.38 VROM14.39 CROM33.13 CROM32.14 CROM3.17 CROM1.19 SROM2.23 SROM4.25 | -| | -| VROM17.40 VROM16.41 CROM31.15 CROM30.16 | -| | -|---------------------------------------------------------------------------------------------------| - -VROM00.27 mpr-20378 \ -VROM01.26 mpr-20377 | -VROM02.29 mpr-20380 | -VROM03.28 mpr-20379 | -VROM04.31 mpr-20382 | -VROM05.30 mpr-20381 | -VROM06.33 mpr-20384 | -VROM07.32 mpr-20383 \ 32MBit DIP42 MASK ROM -VROM10.35 mpr-20386 / -VROM11.34 mpr-20385 | -VROM12.37 mpr-20388 | -VROM13.36 mpr-20387 | -VROM14.39 mpr-20390 | -VROM15.38 mpr-20389 | -VROM16.41 mpr-20392 | -VROM17.40 mpr-20391 / - -CROM00.4 mpr-20364 \ -CROM01.3 mpr-20363 | -CROM02.2 mpr-20362 | -CROM03.1 mpr-20361 \ 32MBit DIP42 MASK ROM -CROM10.8 mpr-20368 / -CROM11.7 mpr-20367 | -CROM12.6 mpr-20366 | -CROM13.5 mpr-20365 / -CROM20.12 not populated -CROM21.11 not populated -CROM22.10 not populated -CROM23.9 not populated -CROM30.16 epr-20412 \ -CROM31.15 epr-20411 | 16MBit DIP42 EPROM (27C160) -CROM32.14 epr-20410 | -CROM33.13 epr-20409 / - -CROM0.20 epr-20396A \ -CROM1.19 epr-20395A | 16MBit DIP42 EPROM (27C160) -CROM2.18 epr-20394A | -CROM3.17 epr-20393A / - -SROM0.21 epr-20397 4MBit DIP40 EPROM (27C4096) -SROM1.22 mpr-20373 \ -SROM2.23 mpr-20374 | 32MBit DIP42 MASK ROM -SROM3.24 mpr-20375 | -SROM4.25 mpr-20376 / - -The jumpers are used to configure the ROM types (All ROMs are 16 bit) -On Model 3 step 2.0 ROM boards, JP13 selects the size of the VROMs. -1-2 jumpered -> 16MBit (read as 27C160) -2-3 jumpered -> 32MBit (read as 27C322) - -JP1, JP11 & JP2 seems to select the size of the CROMs. The jumpers are tied to +5V and ground and to PAL 315-6090A. -Many lines from the PAL are tied to the highest address line of the CROMs. -The contents of the PAL is unknown, so it's difficult to determine what the jumpers do exactly. -It's assumed the PAL does the size selection based on certain pins on the PAL being high or low which are set by the jumpers. -JP1 1-2 \ -JP11 1-2 | Selects CROMs 00-03 & 10-13 as 32MBit -JP2 2-3 / and CROMs 30-33 as 16MBit -Alternative jumper configurations are not known. - -JP7 selects the size of SROM0 (jumper pin 2 connected to pin 39(A17) of SROM0) -1-2 jumpered -> 1MBit (read as 27C1024) -2-3 jumpered -> 4MBit (read as 27C4096) - -JP8 and JP9 seems to select the size of SROM1-4. -JP8 pin 2 is tied to pin 32 of SROM1-4 (highest address line A20) -JP9 pin 2 is tied to some logic. -JP8 & JP9 pin 3 are hardwired together. -JP8 and JP9 jumpered 2-3 selects SROM1-4 as 32MBit. -Alternative jumper configurations are not known. - - -CPU Board ---------- - -837-12715 171-7331C MODEL3 STEP2 CPU BOARD -|---------------------------------------------------------------------------------------------------| -| TC59S1616AFT-12 TC59S1616AFT-12 | -| (TSOP50) (TSOP50) GAL16V8D | -| 315-6089A | -| TC59S1616AFT-12 TC59S1616AFT-12 (PLCC20) | -| (TSOP50) (TSOP50) 45.158MHz 68000-12 | -| (PLCC68) | -| MOTOROLA PowerPC603ev 4066 | -| XPC106ARX66CE (QFP240, SEGA SEGA TDA1386T | -| MPC106+ HEATSINKED) 315-5687 "SCSP" 315-5687 "SCSP" | -| (BGA304) (QFP128) (QFP128) LMC6484 | -| PALCE16V8 | -| 315-6102 33.333MHz | -| (PLCC20) MPC950 HM514270CJ7 HM514270CJ7 TDA1386T | -| (QFP32) | -| | -| SEGA SEGA 3771 | -| 315-5894 SYMBIOS 315-5893 | -| (QFP240) 53C810 (QFP240) | -| (not populated) | -| | -| SEGA SEGA 71AJC46A | -| 315-5296 315-5649 (SOIC8) | -| CY7C199 32MHz (QFP100) (QFP100) | -| | -| | -| | -| CY7C199 | -| CN25 | -| RTC72423 (Connector for ) | -| KM4132G271AQ-10 (Protection PCB) | -| ( not used ) | -| 32MHz BATT_3V | -| NEC D71051-10 | -| | -| 24.576MHz SW1 SW2 LH52B256 LH52B256 DIPSW(8) SW4 SW3 | -|---------------------------------------------------------------------------------------------------| - - -Video Board ------------ - -837-12716 171-7332H MODEL3 STEP2 VIDEO BOARD -|---------------------------------------------------------------------------------------------------| -| | -| D4811650GF D4811650GF 33MHz M5M4V4169 M5M4V4169 M5M4V4169 M5M4V4169 | -| D4811650GF M5M4V4169 M5M4V4169 M5M4V4169 M5M4V4169 | -| M5M410092FP | -| (TQFP128) M5M4V4169 | -| SEGA SEGA M5M4V4169 | -| SEGA 315-6058 315-6060 | -| 315-6057 (BGA) (BGA) M5M4V4169 | -| SEGA (BGA) M5M4V4169 | -| 315-6022 | -| (QFP208) KM4132G271AQ-10 SEGA SEGA | -| (QFP100) 315-6059 315-6060 M5M4V4169 | -| (BGA) (BGA) M5M4V4169 | -| | -| | -| M5M410092FP M5M410092FP M5M4V4169 | -| SEGA (TQFP128) (TQFP128) M5M4V4169 | -| 315-6061 M5M410092FP | -| (BGA) (TQFP128) M5M4V4169 | -| M5M410092FP M5M4V4169 | -| (TQFP128) M5M410092FP | -| (TQFP128) SEGA SEGA M5M4V4169 | -| SEGA M5M410092FP 315-6059 315-6060 M5M4V4169 | -| 315-5648 (TQFP128) M5M410092FP (BGA) (BGA) | -| (QFP64) (TQFP128) SEGA | -| 315-6060 M5M4V4169 | -| (BGA) M5M4V4169 | -| | -| M5M4V4169 | -| M5M4V4169 | -| ADV7120KP30 | -| | -| | -| M5M410092FP M5M410092FP M5M4V4169 | -| SEGA (TQFP128) (TQFP128) M5M4V4169 | -| 315-6061 M5M410092FP | -| (BGA) (TQFP128) M5M4V4169 | -| M5M410092FP M5M4V4169 | -| (TQFP128) M5M410092FP | -| (TQFP128) SEGA SEGA M5M4V4169 | -| SEGA M5M410092FP 315-6059 315-6060 M5M4V4169 | -| 315-5648 (TQFP128) M5M410092FP (BGA) (BGA) | -| (QFP64) (TQFP128) SEGA | -| 315-6060 M5M4V4169 | -| (BGA) M5M4V4169 | -| | -| M5M4V4169 | -| M5M4V4169 | -| ADV7120KP30 | -| (PLCC44) | -| M5M4V4169 M5M4V4169 M5M4V4169 M5M4V4169 | -| M5M4V4169 M5M4V4169 M5M4V4169 M5M4V4169 | -| | -|---------------------------------------------------------------------------------------------------| - -=================================================================================== - -Scud Race -Sega, 1996 - -Tis game runs on Sega Model 3 Step 1.5 hardware - - -Sound Board (bolted to outside of the metal box) ------------ - -PCB Layout ----------- - -PCB Number: 837-10084 DIGITAL AUDIO BD (C) SEGA 1993 ---------------------------------------------------------------- -84256 D71051GU-10 D6376 SM5840 -epr-19612 -Z80 16MHz SEGA D65654GF102 - 315-5762 (QFP100) - (PLCC68) - 20MHz KM68257 - KM68257 84256 - KM68257 - 12.288MHz mpr-19603 - mpr-19604 - mpr-19605 -DSW1 mpr-19606 ----------------------------------------------------------------- - - -Jumpers -JP1: 1-2 (Select 16M ROM on bank 1 - ic57 & ic58) -JP2: 1-2 (Select 16M ROM on bank 2 - ic59 & ic60) - - - -ROM Board ---------- - -PCB Number: 837-11860 MODEL3 ROM BOARD (C) SEGA 1995 - -(For dumping reference) - -Jumpers centre pin joins -------------------------------------------------------- -JP3: 2-3 pin2 of ic 1 to 16 and pin 39 of ic 17 to 20 -JP4: 2-3 pin2 of ic 1 to 16 and pin 39 of ic 17 to 20 -JP5: 2-3 pin2 of ic 1 to 16 and pin 39 of ic 17 to 20 -JP6: 2-3 pin2 of ic 1 to 16 and pin 39 of ic 17 to 20 -JP7: 2-3 pin2 of ic 22 to 25 and pin 39 ic ic21 -JP8: 2-3 pin32 of ic 22 to 25 -JP9: 2-3 pin32 of ic 22 to 25 -Jumper pos. 1 is +5V - -JP1: 1-2 gnd -JP2: 2-3 +5v -Jumper pos. 1 is GND -Jumper pos. 3 is +5V - - pin1 joins -------------------------------- -JP10: 1-2 pin32 of ic 26 to 41 - -All CROM ROMs are 32M MASK -ALL VROM ROMs are 16M MASK - -*/ - -#include "driver.h" -#include "cpu/powerpc/ppc.h" -#include "machine/eeprom.h" -#include "machine/53c810.h" - -int model3_irq_enable; -int model3_irq_state; -int model3_step; -UINT32 *model3_vrom; - -static UINT64 *work_ram; -static UINT64 *model3_backup; -static int model3_crom_bank = 0; -static int model3_controls_bank; -static UINT32 real3d_device_id; - -extern UINT64 *paletteram64; - -/* defined in machine/model3.c */ -extern void model3_machine_init(int step); -extern int model3_tap_read(void); -extern void model3_tap_write(int tck, int tms, int tdi, int trst); -extern void model3_tap_reset(void); -extern READ32_HANDLER(rtc72421_r); -extern WRITE32_HANDLER(rtc72421_w); - - -/* defined in vidhrdw/model3.c */ -READ64_HANDLER(model3_char_r); -WRITE64_HANDLER(model3_char_w); -READ64_HANDLER(model3_tile_r); -WRITE64_HANDLER(model3_tile_w); -READ64_HANDLER(model3_vid_reg_r); -WRITE64_HANDLER(model3_vid_reg_w); -READ64_HANDLER(model3_palette_r); -WRITE64_HANDLER(model3_palette_w); -VIDEO_START(model3); -VIDEO_UPDATE(model3); -WRITE64_HANDLER(real3d_cmd_w); -WRITE64_HANDLER(real3d_display_list_w); -WRITE64_HANDLER(real3d_polygon_ram_w); -void real3d_display_list_end(void); -void real3d_display_list1_dma(UINT32 src, UINT32 dst, int length, int byteswap); -void real3d_display_list2_dma(UINT32 src, UINT32 dst, int length, int byteswap); -void real3d_vrom_texture_dma(UINT32 src, UINT32 dst, int length, int byteswap); -void real3d_texture_fifo_dma(UINT32 src, int length, int byteswap); -void real3d_polygon_ram_dma(UINT32 src, UINT32 dst, int length, int byteswap); - -static void real3d_dma_callback(UINT32 src, UINT32 dst, int length, int byteswap); - -#define BYTE_REVERSE32(x) (((x >> 24) & 0xff) | \ - ((x >> 8) & 0xff00) | \ - ((x << 8) & 0xff0000) | \ - ((x << 24) & 0xff000000)) - -static UINT32 pci_device_get_reg(int device, int reg) -{ - switch(device) - { - case 11: /* ??? */ - switch(reg) - { - case 0x14: return 0; /* ??? */ - default: - fatalerror("pci_device_get_reg: Device 11, unknown reg %02X", reg); - break; - } - - case 13: /* Real3D Controller chip */ - switch(reg) - { - case 0: return real3d_device_id; /* PCI Vendor ID & Device ID */ - default: - fatalerror("pci_device_get_reg: Real3D controller, unknown reg %02X", reg); - break; - } - break; - - case 14: /* NCR 53C810 SCSI Controller */ - switch(reg) - { - case 0: return 0x00011000; /* PCI Vendor ID (0x1000 = LSI Logic) */ - default: - fatalerror("pci_device_get_reg: SCSI Controller, unknown reg %02X", reg); - break; - } - break; - case 16: /* ??? (Used by Daytona 2) */ - switch(reg) - { - case 0: return 0x182711db; /* PCI Vendor ID & Device ID, 315-6183 ??? */ - default: - fatalerror("pci_device_get_reg: Device 16, unknown reg %02X", reg); - break; - } - break; - - default: - fatalerror("pci_device_get_reg: Unknown device %d, reg %02X", device, reg); - break; - } - - return 0; -} - -static void pci_device_set_reg(int device, int reg, UINT32 value) -{ - switch(device) - { - case 11: /* Unknown device for now !!! */ - switch(reg) - { - case 0x01: /* ??? */ - break; - case 0x04: /* ??? */ - break; - case 0x10: /* ??? */ - break; - case 0x11: - break; - case 0x14: /* ??? */ - break; - default: - fatalerror("pci_device_set_reg: Unknown device (11), unknown reg %02X %08X", reg, value); - break; - } - break; - - case 13: /* Real3D Controller chip */ - switch(reg) - { - case 0x01: /* ??? */ - break; - case 0x03: - break; - case 0x04: /* ??? */ - break; - default: - fatalerror("pci_device_set_reg: Real3D controller, unknown reg %02X %08X", reg, value); - break; - } - break; - - case 14: /* NCR 53C810 SCSI Controller */ - switch(reg) - { - case 0x04/4: /* Status / Command */ - break; - case 0x0c/4: /* Header Type / Latency Timer / Cache Line Size */ - break; - case 0x14/4: /* Base Address One (Memory) */ - break; - default: - fatalerror("pci_device_set_reg: SCSI Controller, unknown reg %02X, %08X", reg, value); - break; - } - break; - - case 16: /* ??? (Used by Daytona 2) */ - switch(reg) - { - case 4: /* Base address ? (set to 0xC3000000) */ - break; - default: - fatalerror("pci_device_set_reg: Device 16, unknown reg %02X, %08X", reg, value); - break; - } - break; - - default: - fatalerror("pci_device_set_reg: Unknown device %d, reg %02X, %08X", device, reg, value); - break; - } -} - -/*****************************************************************************/ -/* Motorola MPC105 PCI Bridge/Memory Controller */ - -static UINT32 mpc105_regs[0x40]; -static UINT32 mpc105_addr; -static int pci_bus; -static int pci_device; -static int pci_function; -static int pci_reg; - -static READ64_HANDLER( mpc105_addr_r ) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - return (UINT64)mpc105_addr << 32; - } - return 0; -} - -static WRITE64_HANDLER( mpc105_addr_w ) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - UINT32 d = BYTE_REVERSE32((UINT32)(data >> 32)); - mpc105_addr = data >> 32; - - pci_bus = (d >> 16) & 0xff; - pci_device = (d >> 11) & 0x1f; - pci_function = (d >> 8) & 0x7; - pci_reg = (d >> 2) & 0x3f; - } -} - -static READ64_HANDLER( mpc105_data_r ) -{ - if(pci_device == 0) { - return ((UINT64)(BYTE_REVERSE32(mpc105_regs[(pci_reg/2)+1])) << 32) | - ((UINT64)(BYTE_REVERSE32(mpc105_regs[(pci_reg/2)+0]))); - } - return BYTE_REVERSE32(pci_device_get_reg(pci_device, pci_reg)); -} - -static WRITE64_HANDLER( mpc105_data_w ) -{ - if(pci_device == 0) { - mpc105_regs[(pci_reg/2)+1] = BYTE_REVERSE32((UINT32)(data >> 32)); - mpc105_regs[(pci_reg/2)+0] = BYTE_REVERSE32((UINT32)(data)); - return; - } - if (!(mem_mask & 0xffffffff)) - { - pci_device_set_reg(pci_device, pci_reg, BYTE_REVERSE32((UINT32)data)); - } -} - -static READ64_HANDLER( mpc105_reg_r ) -{ - return ((UINT64)(mpc105_regs[(offset*2)+0]) << 32) | - (UINT64)(mpc105_regs[(offset*2)+1]); -} - -static WRITE64_HANDLER( mpc105_reg_w ) -{ - mpc105_regs[(offset*2)+0] = (UINT32)(data >> 32); - mpc105_regs[(offset*2)+1] = (UINT32)data; -} - -static void mpc105_init(void) -{ - /* set reset values */ - memset(mpc105_regs, 0, sizeof(mpc105_regs)); - mpc105_regs[0x00/4] = 0x00011057; /* Vendor ID & Device ID */ - mpc105_regs[0x04/4] = 0x00800006; /* PCI Command & PCI Status */ - mpc105_regs[0x08/4] = 0x00060000; /* Class code */ - mpc105_regs[0xa8/4] = 0x0010ff00; /* Processor interface configuration 1 */ - mpc105_regs[0xac/4] = 0x060c000c; /* Processor interface configuration 2 */ - mpc105_regs[0xb8/4] = 0x04000000; - mpc105_regs[0xf0/4] = 0x0000ff02; /* Memory control configuration 1 */ - mpc105_regs[0xf4/4] = 0x00030000; /* Memory control configuration 2 */ - mpc105_regs[0xfc/4] = 0x00000010; /* Memory control configuration 4 */ -} - -/*****************************************************************************/ -/* Motorola MPC106 PCI Bridge/Memory Controller */ - -static UINT32 mpc106_regs[0x40]; -static UINT32 mpc106_addr; - -static READ64_HANDLER( mpc106_addr_r ) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - return (UINT64)mpc106_addr << 32; - } - return 0; -} - -static WRITE64_HANDLER( mpc106_addr_w ) -{ - if (!(mem_mask & U64(0xffffffff00000000))) - { - UINT32 d = BYTE_REVERSE32((UINT32)(data >> 32)); - - if (((d >> 8) & 0xffffff) == 0x800000) - { - mpc106_addr = d & 0xff; - } - else - { - mpc106_addr = data >> 32; - - pci_bus = (d >> 16) & 0xff; - pci_device = (d >> 11) & 0x1f; - pci_function = (d >> 8) & 0x7; - pci_reg = (d >> 2) & 0x3f; - } - } -} - -static READ64_HANDLER( mpc106_data_r ) -{ - if(pci_device == 0) { - return ((UINT64)(BYTE_REVERSE32(mpc106_regs[(pci_reg/2)+1])) << 32) | - ((UINT64)(BYTE_REVERSE32(mpc106_regs[(pci_reg/2)+0]))); - } - if (!(mem_mask & U64(0xffffffff00000000))) - { - return (UINT64)(BYTE_REVERSE32(pci_device_get_reg(pci_device, pci_reg))) << 32; - } - else - { - return (UINT64)(BYTE_REVERSE32(pci_device_get_reg(pci_device, pci_reg))); - } -} - -static WRITE64_HANDLER( mpc106_data_w ) -{ - if(pci_device == 0) { - mpc106_regs[(pci_reg/2)+1] = BYTE_REVERSE32((UINT32)(data >> 32)); - mpc106_regs[(pci_reg/2)+0] = BYTE_REVERSE32((UINT32)(data)); - return; - } - if (!(mem_mask & 0xffffffff)) - { - pci_device_set_reg(pci_device, pci_reg, BYTE_REVERSE32((UINT32)data)); - } -} - -static READ64_HANDLER( mpc106_reg_r ) -{ - return ((UINT64)(mpc106_regs[(offset*2)+0]) << 32) | - (UINT64)(mpc106_regs[(offset*2)+1]); -} - -static WRITE64_HANDLER( mpc106_reg_w ) -{ - mpc106_regs[(offset*2)+0] = (UINT32)(data >> 32); - mpc106_regs[(offset*2)+1] = (UINT32)data; -} - -static void mpc106_init(void) -{ - /* set reset values */ - memset(mpc106_regs, 0, sizeof(mpc106_regs)); - mpc106_regs[0x00/4] = 0x00021057; /* Vendor ID & Device ID */ - mpc106_regs[0x04/4] = 0x00800006; /* PCI Command & PCI Status */ - mpc106_regs[0x08/4] = 0x00060000; /* Class code */ - mpc106_regs[0x0c/4] = 0x00000800; /* Cache line size */ - mpc106_regs[0x70/4] = 0x00cd0000; /* Output driver control */ - mpc106_regs[0xa8/4] = 0x0010ff00; /* Processor interface configuration 1 */ - mpc106_regs[0xac/4] = 0x060c000c; /* Processor interface configuration 2 */ - mpc106_regs[0xb8/4] = 0x04000000; - mpc106_regs[0xc0/4] = 0x00000100; /* Error enabling 1 */ - mpc106_regs[0xe0/4] = 0x00420fff; /* Emulation support configuration 1 */ - mpc106_regs[0xe8/4] = 0x00200000; /* Emulation support configuration 2 */ - mpc106_regs[0xf0/4] = 0x0000ff02; /* Memory control configuration 1 */ - mpc106_regs[0xf4/4] = 0x00030000; /* Memory control configuration 2 */ - mpc106_regs[0xfc/4] = 0x00000010; /* Memory control configuration 4 */ -} - -/*****************************************************************************/ - -static READ64_HANDLER(scsi_r) -{ - int reg = offset*8; - UINT64 r = 0; - if (!(mem_mask & U64(0xff00000000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+0) << 56; - } - if (!(mem_mask & U64(0x00ff000000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+1) << 48; - } - if (!(mem_mask & U64(0x0000ff0000000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+2) << 40; - } - if (!(mem_mask & U64(0x000000ff00000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+3) << 32; - } - if (!(mem_mask & U64(0x00000000ff000000))) { - r |= (UINT64)lsi53c810_reg_r(reg+4) << 24; - } - if (!(mem_mask & U64(0x0000000000ff0000))) { - r |= (UINT64)lsi53c810_reg_r(reg+5) << 16; - } - if (!(mem_mask & U64(0x000000000000ff00))) { - r |= (UINT64)lsi53c810_reg_r(reg+6) << 8; - } - if (!(mem_mask & U64(0x00000000000000ff))) { - r |= (UINT64)lsi53c810_reg_r(reg+7) << 0; - } - - return r; -} - -static WRITE64_HANDLER(scsi_w) -{ - int reg = offset*8; - if (!(mem_mask & U64(0xff00000000000000))) { - lsi53c810_reg_w(reg+0, data >> 56); - } - if (!(mem_mask & U64(0x00ff000000000000))) { - lsi53c810_reg_w(reg+1, data >> 48); - } - if (!(mem_mask & U64(0x0000ff0000000000))) { - lsi53c810_reg_w(reg+2, data >> 40); - } - if (!(mem_mask & U64(0x000000ff00000000))) { - lsi53c810_reg_w(reg+3, data >> 32); - } - if (!(mem_mask & U64(0x00000000ff000000))) { - lsi53c810_reg_w(reg+4, data >> 24); - } - if (!(mem_mask & U64(0x0000000000ff0000))) { - lsi53c810_reg_w(reg+5, data >> 16); - } - if (!(mem_mask & U64(0x000000000000ff00))) { - lsi53c810_reg_w(reg+6, data >> 8); - } - if (!(mem_mask & U64(0x00000000000000ff))) { - lsi53c810_reg_w(reg+7, data >> 0); - } -} - -static UINT32 scsi_fetch(UINT32 dsp) -{ - UINT32 result; - result = program_read_dword_64be(dsp); - return BYTE_REVERSE32(result); -} - -static void scsi_irq_callback(void) -{ - model3_irq_state |= model3_irq_enable & ~0x60; /* FIXME: enable only SCSI interrupt */ - cpunum_set_input_line(0, INPUT_LINE_IRQ1, ASSERT_LINE); -} - -/*****************************************************************************/ -/* Real3D DMA */ - -static UINT32 dma_data; -static UINT32 dma_status; -static UINT32 dma_source; -static UINT32 dma_dest; -static UINT32 dma_endian; -static UINT32 dma_irq; - -static READ64_HANDLER( real3d_dma_r ) -{ - switch(offset) - { - case 1: - return (dma_irq << 24) | (dma_endian << 8); - case 2: - if(!(mem_mask & U64(0x00000000ffffffff))) { - return dma_data; - } - break; - } - mame_printf_debug("real3d_dma_r: %08X, %08X%08X\n", offset, (UINT32)(mem_mask >> 32), (UINT32)(mem_mask)); - return 0; -} - -static WRITE64_HANDLER( real3d_dma_w ) -{ - switch(offset) - { - case 0: - if(!(mem_mask & U64(0xffffffff00000000))) { /* DMA source address */ - dma_source = BYTE_REVERSE32((UINT32)(data >> 32)); - return; - } - if(!(mem_mask & U64(0x00000000ffffffff))) { /* DMA destination address */ - dma_dest = BYTE_REVERSE32((UINT32)(data)); - return; - } - break; - case 1: - if(!(mem_mask & U64(0xffffffff00000000))) /* DMA length */ - { - int length = BYTE_REVERSE32((UINT32)(data >> 32)) * 4; - if (dma_endian & 0x80) - { - real3d_dma_callback(dma_source, dma_dest, length, 0); - } - else - { - real3d_dma_callback(dma_source, dma_dest, length, 1); - } - dma_irq |= 0x01; - scsi_irq_callback(); - return; - } - else if(!(mem_mask & U64(0x0000000000ff0000))) - { - if(data & 0x10000) { - dma_irq &= ~0x1; - } - return; - } - else if(!(mem_mask & U64(0x000000000000ff00))) - { - dma_endian = (data >> 8) & 0xff; - return; - } - break; - case 2: - if(!(mem_mask & U64(0xffffffff00000000))) { /* DMA command */ - UINT32 cmd = BYTE_REVERSE32((UINT32)(data >> 32)); - if(cmd & 0x20000000) { - dma_data = BYTE_REVERSE32(real3d_device_id); /* (PCI Vendor & Device ID) */ - } - else if(cmd & 0x80000000) { - dma_status ^= 0xffffffff; - dma_data = dma_status; - } - return; - } - if(!(mem_mask & U64(0x00000000ffffffff))) { /* ??? */ - dma_data = 0xffffffff; - return; - } - return; - break; - } - fatalerror("real3d_dma_w: %08X, %08X%08X, %08X%08X", offset, (UINT32)(data >> 32), (UINT32)(data), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask)); -} - -static void real3d_dma_callback(UINT32 src, UINT32 dst, int length, int byteswap) -{ - switch(dst >> 24) - { - case 0x88: /* Display List End Trigger */ - real3d_display_list_end(); - break; - case 0x8c: /* Display List RAM 2 */ - real3d_display_list2_dma(src, dst, length, byteswap); - break; - case 0x8e: /* Display List RAM 1 */ - real3d_display_list1_dma(src, dst, length, byteswap); - break; - case 0x90: /* VROM Texture Download */ - real3d_vrom_texture_dma(src, dst, length, byteswap); - break; - case 0x94: /* Texture FIFO */ - real3d_texture_fifo_dma(src, length, byteswap); - break; - case 0x98: /* Polygon RAM */ - real3d_polygon_ram_dma(src, dst, length, byteswap); - break; - case 0x9c: /* Unknown */ - break; - default: - fatalerror("dma_callback: %08X, %08X, %d at %08X", src, dst, length, activecpu_get_pc()); - break; - } -} - -/*****************************************************************************/ - -/* this is a 93C46 but with reset delay that is needed by Lost World */ -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "*110", /* read command */ - "*101", /* write command */ - "*111", /* erase command */ - "*10000xxxx", /* lock command */ - "*10011xxxx", /* unlock command */ - 1, /* enable_multi_read */ - 5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */ -}; - -static void eeprom_handler(mame_file *file,int read_or_write) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - if (file) EEPROM_load(file); - } -} - -static NVRAM_HANDLER( model3 ) -{ - if( mame_stricmp(Machine->gamedrv->name, "lostwsga") == 0 || - mame_stricmp(Machine->gamedrv->name, "dirtdvls") == 0 || - mame_stricmp(Machine->gamedrv->name, "dirtdvla") == 0 || - mame_stricmp(Machine->gamedrv->name, "lemans24") == 0 || - mame_stricmp(Machine->gamedrv->name, "von2") == 0 || - mame_stricmp(Machine->gamedrv->name, "von254g") == 0) - { - eeprom_handler(file, read_or_write); - } else { - nvram_handler_93C46(machine, file, read_or_write); - } - - if (read_or_write) - { - mame_fwrite(file, model3_backup, 0x1ffff); - } - else - { - if (file) - { - mame_fread(file, model3_backup, 0x1ffff); - } - } -} - -static SCSIConfigTable scsi_dev_table = -{ - 1, /* 1 SCSI device */ - { - { SCSI_ID_0, 0, SCSI_DEVICE_HARDDISK } /* SCSI ID 0, using HD 0, HD */ - } -}; - -static struct LSI53C810interface scsi_intf = -{ - &scsi_dev_table, /* SCSI device table */ - &scsi_irq_callback, - &real3d_dma_callback, - &scsi_fetch, -}; - -static void model3_init(int step) -{ - model3_step = step; - memory_set_bankptr( 1, memory_region( REGION_USER1 ) + 0x800000 ); /* banked CROM */ - - model3_machine_init(step); // step 1.5 - model3_tap_reset(); - - if(step < 0x20) { - if( mame_stricmp(Machine->gamedrv->name, "vs215") == 0 || - mame_stricmp(Machine->gamedrv->name, "vs29815") == 0 || - mame_stricmp(Machine->gamedrv->name, "bass") == 0 ) - { - mpc106_init(); - } else { - mpc105_init(); - } - lsi53c810_init(&scsi_intf); - real3d_device_id = 0x16c311db; /* PCI Vendor ID (11db = SEGA), Device ID (16c3 = 315-5827) */ - } - else { - mpc106_init(); - real3d_device_id = 0x178611db; /* PCI Vendor ID (11db = SEGA), Device ID (1786 = 315-6022) */ - } -} - -static MACHINE_RESET(model3_10) { model3_init(0x10); } -static MACHINE_RESET(model3_15) { model3_init(0x15); } -static MACHINE_RESET(model3_20) { model3_init(0x20); } -static MACHINE_RESET(model3_21) { model3_init(0x21); } - -static UINT32 eeprom_bit = 0; - -static UINT64 controls_2; -static UINT64 controls_3; -static UINT8 model3_serial_fifo1; -static UINT8 model3_serial_fifo2; -static int lightgun_reg_sel; -static int adc_channel; - -static READ64_HANDLER( model3_ctrl_r ) -{ - switch( offset ) - { - case 0: - if (!(mem_mask & U64(0xff00000000000000))) - { - return (UINT64)model3_controls_bank << 56; - } - else if (!(mem_mask & 0xff000000)) - { - if(model3_controls_bank & 0x1) { - eeprom_bit = EEPROM_read_bit() << 5; - return ((readinputport(1) & ~0x20) | eeprom_bit) << 24; - } - else { - return (readinputport(0)) << 24; - } - } - break; - - case 1: - if (!(mem_mask & U64(0xff00000000000000))) - { - return (UINT64)readinputport(2) << 56; - } - else if (!(mem_mask & 0xff000000)) - { - return readinputport(3) << 24; - } - break; - - case 2: - return U64(0xffffffffffffffff); - - case 3: - return U64(0xffffffffffffffff); /* Dip switches */ - - case 4: - return U64(0xffffffffffffffff); - - case 5: - if (!(mem_mask & 0xff000000)) /* Serial comm RX FIFO 1 */ - { - return (UINT64)model3_serial_fifo1 << 24; - } - break; - - case 6: - if (!(mem_mask & U64(0xff00000000000000))) /* Serial comm RX FIFO 2 */ - { - return (UINT64)model3_serial_fifo2 << 56; - } - else if (!(mem_mask & 0xff000000)) /* Serial comm full/empty flags */ - { - return 0x0c << 24; - } - break; - - case 7: - if (!(mem_mask & 0xff000000)) /* ADC Data read */ - { - UINT8 adc_data = readinputport(5 + adc_channel); - adc_channel++; - adc_channel &= 0x7; - return (UINT64)adc_data << 24; - } - break; - } - - fatalerror("ctrl_r: %02X, %08X%08X", offset, (UINT32)(mem_mask >> 32), (UINT32)(mem_mask)); - return 0; -} - -static WRITE64_HANDLER( model3_ctrl_w ) -{ - switch(offset) - { - case 0: - if (!(mem_mask & U64(0xff00000000000000))) - { - int reg = (data >> 56) & 0xff; - EEPROM_write_bit((reg & 0x20) ? 1 : 0); - EEPROM_set_clock_line((reg & 0x80) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((reg & 0x40) ? CLEAR_LINE : ASSERT_LINE); - model3_controls_bank = reg & 0xff; - } - return; - - case 2: - COMBINE_DATA(&controls_2); - return; - - case 3: - COMBINE_DATA(&controls_3); - return; - - case 4: - if (!(mem_mask & U64(0xff00000000000000))) /* Port 4 direction */ - { - - } - if (!(mem_mask & 0xff000000)) /* Serial comm TX FIFO 1 */ - { /* Used for reading the light gun in Lost World */ - switch(data >> 24) - { - case 0x00: - lightgun_reg_sel = model3_serial_fifo2; - break; - case 0x87: - model3_serial_fifo1 = 0; - switch(lightgun_reg_sel) /* read lightrun register */ - { - case 0: /* player 1 gun X-position, lower 8-bits */ - model3_serial_fifo2 = readinputport(6) & 0xff; - break; - case 1: /* player 1 gun X-position, upper 2-bits */ - model3_serial_fifo2 = (readinputport(6) >> 8) & 0x3; - break; - case 2: /* player 1 gun Y-position, lower 8-bits */ - model3_serial_fifo2 = readinputport(5) & 0xff; - break; - case 3: /* player 1 gun Y-position, upper 2-bits */ - model3_serial_fifo2 = (readinputport(5) >> 8) & 0x3; - break; - case 4: /* player 2 gun X-position, lower 8-bits */ - model3_serial_fifo2 = readinputport(8) & 0xff; - break; - case 5: /* player 2 gun X-position, upper 2-bits */ - model3_serial_fifo2 = (readinputport(8) >> 8) & 0x3; - break; - case 6: /* player 2 gun Y-position, lower 8-bits */ - model3_serial_fifo2 = readinputport(7) & 0xff; - break; - case 7: /* player 2 gun Y-position, upper 2-bits */ - model3_serial_fifo2 = (readinputport(7) >> 8) & 0x3; - break; - case 8: /* gun offscreen (bit set = gun offscreen, bit clear = gun on screen) */ - model3_serial_fifo2 = 0; /* bit 0 = player 1, bit 1 = player 2 */ - if(readinputport(9) & 0x1) { - model3_serial_fifo2 |= 0x01; - } - break; - } - break; - default: - //mame_printf_debug("Lightgun: Unknown command %02X at %08X\n", (UINT32)(data >> 24), activecpu_get_pc()); - break; - } - } - return; - - case 5: - if (!(mem_mask & U64(0xff00000000000000))) /* Serial comm TX FIFO 2 */ - { - model3_serial_fifo2 = data >> 56; - return; - } - break; - - case 7: - if (!(mem_mask & U64(0xff000000))) /* ADC Channel selection */ - { - adc_channel = (data >> 24) & 0xf; - } - return; - } - - fatalerror("ctrl_w: %02X, %08X%08X, %08X%08X", offset, (UINT32)(data >> 32), (UINT32)(data), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask)); -} - -static READ64_HANDLER( model3_sys_r ) -{ - switch (offset) - { - case 0x08/8: - if (!(mem_mask & U64(0xff00000000000000))) - { - return ((UINT64)model3_crom_bank << 56); - } - break; - - case 0x10/8: - if (!(mem_mask & U64(0xff00000000000000))) - { - UINT64 res = model3_tap_read(); - - return res<<61; - } - else if (!(mem_mask & 0xff000000)) - { - return (model3_irq_enable<<24); - } - else logerror("m3_sys: Unk sys_r @ 0x10: mask = %x\n", (UINT32)mem_mask); - break; - case 0x18/8: - return (UINT64)model3_irq_state<<56 | 0xff000000; - break; - } - - logerror("Unknown model3 sys_r: offs %08X mask %08X\n", offset, (UINT32)mem_mask); - return 0; -} - -static WRITE64_HANDLER( model3_sys_w ) -{ - switch (offset) - { - case 0x10/8: - if (!(mem_mask & 0xff000000)) - { - model3_irq_enable = (data>>24)&0xff; - } - else logerror("m3_sys: unknown mask on IRQen write\n"); - break; - case 0x08/8: - if (!(mem_mask & U64(0xff00000000000000))) - { - model3_crom_bank = data >> 56; - - data >>= 56; - data = (~data) & 0xf; - memory_set_bankptr( 1, memory_region( REGION_USER1 ) + 0x800000 + (data * 0x800000)); /* banked CROM */ - } - if (!(mem_mask & 0xff000000)) - { - data >>= 24; - model3_tap_write( - (data >> 6) & 1,// TCK - (data >> 2) & 1,// TMS - (data >> 5) & 1,// TDI - (data >> 7) & 1 // TRST - ); - } - break; - } -} - -static READ64_HANDLER( model3_rtc_r ) -{ - UINT64 r = 0; - if(!(mem_mask & U64(0xff00000000000000))) { - r |= (UINT64)rtc72421_r((offset*2)+0, (UINT32)(mem_mask >> 32)) << 32; - } - if(!(mem_mask & U64(0x00000000ff000000))) { - r |= (UINT64)rtc72421_r((offset*2)+1, (UINT32)(mem_mask)); - } - return r; -} - -static WRITE64_HANDLER( model3_rtc_w ) -{ - if(!(mem_mask & U64(0xff00000000000000))) { - rtc72421_w((offset*2)+0, (UINT32)(data >> 32), (UINT32)(mem_mask >> 32)); - } - if(!(mem_mask & U64(0x00000000ff000000))) { - rtc72421_w((offset*2)+1, (UINT32)(data), (UINT32)(mem_mask)); - } -} - -static UINT64 real3d_status = 0; -static READ64_HANDLER(real3d_status_r) -{ - real3d_status ^= U64(0xffffffffffffffff); - return real3d_status; -} - -/* SCSP interface */ -static READ64_HANDLER(model3_sound_r) -{ - return U64(0xffffffffffffffff); -} - -static WRITE64_HANDLER(model3_sound_w) -{ - model3_irq_state &= ~0x40; -} - - - -static UINT64 network_ram[0x10000]; -static READ64_HANDLER(network_r) -{ - mame_printf_debug("network_r: %02X at %08X\n", offset, activecpu_get_pc()); - return network_ram[offset]; -} - -static WRITE64_HANDLER(network_w) -{ - COMBINE_DATA(network_ram + offset); - mame_printf_debug("network_w: %02X, %08X%08X at %08X\n", offset, (UINT32)(data >> 32), (UINT32)(data), activecpu_get_pc()); -} - -static int prot_data_ptr = 0; - -static UINT16 vs299_prot_data[] = -{ - 0xc800, 0x4a20, 0x5041, 0x4e41, 0x4920, 0x4154, 0x594c, 0x4220, - 0x4152, 0x4953, 0x204c, 0x5241, 0x4547, 0x544e, 0x4e49, 0x2041, - 0x4547, 0x4d52, 0x4e41, 0x2059, 0x4e45, 0x4c47, 0x4e41, 0x2044, - 0x454e, 0x4854, 0x5245, 0x414c, 0x444e, 0x2053, 0x5246, 0x4e41, - 0x4543, 0x4320, 0x4c4f, 0x4d4f, 0x4942, 0x2041, 0x4150, 0x4152, - 0x5547, 0x5941, 0x4220, 0x4c55, 0x4147, 0x4952, 0x2041, 0x5053, - 0x4941, 0x204e, 0x5243, 0x414f, 0x4954, 0x2041, 0x4542, 0x474c, - 0x5549, 0x204d, 0x494e, 0x4547, 0x4952, 0x2041, 0x4153, 0x4455, - 0x2049, 0x4f4b, 0x4552, 0x2041, 0x4544, 0x4d4e, 0x5241, 0x204b, - 0x4f52, 0x414d, 0x494e, 0x2041, 0x4353, 0x544f, 0x414c, 0x444e, - 0x5520, 0x4153, 0x5320, 0x554f, 0x4854, 0x4641, 0x4952, 0x4143, - 0x4d20, 0x5845, 0x4349, 0x204f, 0x5559, 0x4f47, 0x4c53, 0x5641, - 0x4149, 0x4620, 0x5f43, 0x4553, 0x4147 -}; - -static UINT16 swt_prot_data[] = -{ - 0xffff, - 0x3d3d, 0x3d3d, 0x203d, 0x5453, 0x5241, 0x5720, 0x5241, 0x2053, - 0x3d3d, 0x3d3d, 0x0a3d, 0x6f43, 0x7970, 0x6952, 0x6867, 0x2074, - 0x4553, 0x4147, 0x4520, 0x746e, 0x7265, 0x7270, 0x7369, 0x7365, - 0x202c, 0x744c, 0x2e64, 0x410a, 0x756d, 0x6573, 0x656d, 0x746e, - 0x5220, 0x4426, 0x4420, 0x7065, 0x2e74, 0x2320, 0x3231, 0x4b0a, - 0x7461, 0x7573, 0x6179, 0x7573, 0x4120, 0x646e, 0x206f, 0x2026, - 0x614b, 0x6f79, 0x6f6b, 0x5920, 0x6d61, 0x6d61, 0x746f, 0x0a6f, -}; - -static UINT16 fvipers2_prot_data[] = -{ - 0x2a2a, - 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x202a, 0x5b5b, - 0x4620, 0x6769, 0x7468, 0x6e69, 0x2067, 0x6956, 0x6570, 0x7372, - 0x3220, 0x5d20, 0x205d, 0x6e69, 0x3c20, 0x4d3c, 0x444f, 0x4c45, - 0x332d, 0x3e3e, 0x4320, 0x706f, 0x7279, 0x6769, 0x7468, 0x2820, - 0x2943, 0x3931, 0x3839, 0x5320, 0x4745, 0x2041, 0x6e45, 0x6574, - 0x7072, 0x6972, 0x6573, 0x2c73, 0x544c, 0x2e44, 0x2020, 0x4120, - 0x6c6c, 0x7220, 0x6769, 0x7468, 0x7220, 0x7365, 0x7265, 0x6576, - 0x2e64, 0x2a20, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, -}; - -static UINT16 spikeout_prot_data[] = -{ - 0x0000, - 0x4f4d, 0x4544, 0x2d4c, 0x2033, 0x7953, 0x7473, 0x6d65, 0x5020, - 0x6f72, 0x7267, 0x6d61, 0x4320, 0x706f, 0x7279, 0x6769, 0x7468, - 0x2820, 0x2943, 0x3120, 0x3939, 0x2035, 0x4553, 0x4147, 0x4520, - 0x746e, 0x7265, 0x7270, 0x7369, 0x7365, 0x4c2c, 0x4454, 0x202e, - 0x6c41, 0x206c, 0x6972, 0x6867, 0x2074, 0x6572, 0x6573, 0x7672, - 0x6465, 0x202e, 0x2020, 0x0020 -}; - -static UINT16 eca_prot_data[] = -{ - 0x0000, - 0x2d2f, 0x202d, 0x4d45, 0x5245, 0x4547, 0x434e, 0x2059, 0x4143, - 0x4c4c, 0x4120, 0x424d, 0x4c55, 0x4e41, 0x4543, 0x2d20, 0x0a2d, - 0x6f43, 0x7970, 0x6952, 0x6867, 0x2074, 0x4553, 0x4147, 0x4520, - 0x746e, 0x7265, 0x7270, 0x7369, 0x7365, 0x202c, 0x744c, 0x2e64, - 0x530a, 0x666f, 0x7774, 0x7261, 0x2065, 0x2652, 0x2044, 0x6544, - 0x7470, 0x202e, 0x3123, 0x660a, 0x726f, 0x7420, 0x7365, 0x0a74, -}; - -static READ64_HANDLER(model3_security_r) -{ - switch(offset) - { - case 0x00/8: return 0; /* status */ - case 0x1c/8: /* security board data read */ - { - if (mame_stricmp(Machine->gamedrv->name, "vs299") == 0 || - mame_stricmp(Machine->gamedrv->name, "vs2v991") == 0) - { - return (UINT64)vs299_prot_data[prot_data_ptr++] << 48; - } - else if (mame_stricmp(Machine->gamedrv->name, "swtrilgy") == 0 || - mame_stricmp(Machine->gamedrv->name, "swtrilga") == 0) - { - UINT64 data = (UINT64)swt_prot_data[prot_data_ptr++] << 16; - if (prot_data_ptr > 0x38) - { - prot_data_ptr = 0; - } - return data; - } - else if (mame_stricmp(Machine->gamedrv->name, "fvipers2") == 0) - { - UINT64 data = (UINT64)fvipers2_prot_data[prot_data_ptr++] << 16; - if (prot_data_ptr >= 0x41) - { - prot_data_ptr = 0; - } - return data; - } - else if (mame_stricmp(Machine->gamedrv->name, "spikeout") == 0 || - mame_stricmp(Machine->gamedrv->name, "spikeofe") == 0) - { - UINT64 data = (UINT64)spikeout_prot_data[prot_data_ptr++] << 16; - if (prot_data_ptr >= 0x55) - { - prot_data_ptr = 0; - } - return data; - } - else if (mame_stricmp(Machine->gamedrv->name, "eca") == 0) - { - UINT64 data = (UINT64)eca_prot_data[prot_data_ptr++] << 16; - if (prot_data_ptr >= 0x31) - { - prot_data_ptr = 0; - } - return data; - } - else - { - return U64(0xffffffffffffffff); - } - } - } - return U64(0xffffffffffffffff); -} - -static WRITE64_HANDLER(daytona2_rombank_w) -{ - if (!(mem_mask & U64(0xff00000000000000))) - { - data >>= 56; - data = (~data) & 0xf; - memory_set_bankptr( 1, memory_region( REGION_USER1 ) + 0x800000 + (data * 0x800000)); /* banked CROM */ - } -} - -static ADDRESS_MAP_START( model3_mem, ADDRESS_SPACE_PROGRAM, 64) - AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_BASE(&work_ram) /* work RAM */ - - AM_RANGE(0x84000000, 0x8400003f) AM_READ( real3d_status_r ) - AM_RANGE(0x88000000, 0x88000007) AM_WRITE( real3d_cmd_w ) - AM_RANGE(0x8e000000, 0x8e0fffff) AM_WRITE( real3d_display_list_w ) - AM_RANGE(0x98000000, 0x980fffff) AM_WRITE( real3d_polygon_ram_w ) - - AM_RANGE(0xf0040000, 0xf004003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w ) - AM_RANGE(0xf0080000, 0xf0080007) AM_READWRITE( model3_sound_r, model3_sound_w ) - AM_RANGE(0xf00c0000, 0xf00dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */ - AM_RANGE(0xf0100000, 0xf010003f) AM_READWRITE( model3_sys_r, model3_sys_w ) - AM_RANGE(0xf0140000, 0xf014003f) AM_READWRITE( model3_rtc_r, model3_rtc_w ) - - AM_RANGE(0xf1000000, 0xf10f7fff) AM_READWRITE( model3_char_r, model3_char_w ) /* character RAM */ - AM_RANGE(0xf10f8000, 0xf10fffff) AM_READWRITE( model3_tile_r, model3_tile_w ) /* tilemaps */ - AM_RANGE(0xf1100000, 0xf111ffff) AM_READWRITE( model3_palette_r, model3_palette_w ) AM_BASE(&paletteram64) /* palette */ - AM_RANGE(0xf1180000, 0xf11800ff) AM_READWRITE( model3_vid_reg_r, model3_vid_reg_w ) - - AM_RANGE(0xfe040000, 0xfe04003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w ) - AM_RANGE(0xfe080000, 0xfe080007) AM_READWRITE( model3_sound_r, model3_sound_w ) - AM_RANGE(0xfe0c0000, 0xfe0dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */ - AM_RANGE(0xfe100000, 0xfe10003f) AM_READWRITE( model3_sys_r, model3_sys_w ) - AM_RANGE(0xfe140000, 0xfe14003f) AM_READWRITE( model3_rtc_r, model3_rtc_w ) - - AM_RANGE(0xfe180000, 0xfe19ffff) AM_RAM /* Security Board RAM */ - AM_RANGE(0xfe1a0000, 0xfe1a003f) AM_READ( model3_security_r ) /* Security board */ - - AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - -#define MODEL3_SYSTEM_CONTROLS_1 \ -PORT_START_TAG("IN0") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) /* Test Button */ \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define MODEL3_SYSTEM_CONTROLS_2 \ -PORT_START_TAG("IN1") \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7) \ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - - -INPUT_PORTS_START( model3 ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ -INPUT_PORTS_END - -INPUT_PORTS_START( lostwsga ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START // lightgun X-axis - PORT_BIT( 0x3ff, 0x200, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x3ff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // lightgun Y-axis - PORT_BIT( 0x3ff, 0x200, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x3ff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // lightgun X-axis - PORT_BIT( 0x3ff, 0x200, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x3ff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START // lightgun Y-axis - PORT_BIT( 0x3ff, 0x200, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x3ff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START // fake button to shoot offscreen - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( scud ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* View Button 1 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* View Button 2 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* View Button 3 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* View Button 4 */ - PORT_BIT( 0x50, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* Shift 1 */ - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* Shift 2 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) /* Shift 3 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) /* Shift 4 */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START // steering - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accelerator - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( bass ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* Cast */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* Select */ - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START /* Rod Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* Rod X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Reel */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* Stick Y */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE_V ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* Stick X */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( harley ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* View Button 1 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* View Button 2 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Shift down */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* Shift up */ - PORT_BIT( 0xcc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START // steering - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accelerator - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // front brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // back brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( daytona2 ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* View Button 1 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* View Button 2 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* View Button 3 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* View Button 4 */ - PORT_BIT( 0x50, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* Shift 1 */ - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* Shift 2 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) /* Shift 3 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON8 ) /* Shift 4 */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START // steering - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accelerator - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( swtrilgy ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xde, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START /* Analog Stick Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) - - PORT_START /* Analog Stick X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) - -INPUT_PORTS_END - -INPUT_PORTS_START( eca ) - MODEL3_SYSTEM_CONTROLS_1 - MODEL3_SYSTEM_CONTROLS_2 - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* View Change */ - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x50, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* Shift Up */ - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* Shift Down */ - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* Dip switches */ - - PORT_START // steering - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // accelerator - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START // brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - - -#define ROM_LOAD64_WORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(6)) -#define ROM_LOAD64_WORD_SWAP(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE| ROM_SKIP(6)) -#define ROM_LOAD_VROM(name, offset, length, hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(14) ) -#define ROM_REGION64_BE(length,type,flags) ROM_REGION(length, type, (flags) | ROMREGION_64BIT | ROMREGION_BE) - -ROM_START( lemans24 ) /* step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19887.17", 0x600006, 0x080000, CRC(2842bb87) SHA1(2acabf3f7281acaf6bab4d3bae9701df3909cf81) ) - ROM_LOAD64_WORD_SWAP( "epr-19888.18", 0x600004, 0x080000, CRC(800d763d) SHA1(4f2865a64d6dda638840d359db3bd2f22b6d1404) ) - ROM_LOAD64_WORD_SWAP( "epr-19889.19", 0x600002, 0x080000, CRC(d1f7e44c) SHA1(5faad711cf39c0fb10c3b9ccce25f5219ddd5a17) ) - ROM_LOAD64_WORD_SWAP( "epr-19890.20", 0x600000, 0x080000, CRC(9c16c3cc) SHA1(f1fba0c7cbdf7ddc4224356d50fdabea612c129d) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19857.01", 0x800006, 0x400000, CRC(82c9fcfc) SHA1(31c38483b33606b11d74da21dc49df8fa9f227db) ) - ROM_LOAD64_WORD_SWAP( "mpr-19858.02", 0x800004, 0x400000, CRC(993fa656) SHA1(9090156ece06b11f3f24fbb96240eca44122a805) ) - ROM_LOAD64_WORD_SWAP( "mpr-19859.03", 0x800002, 0x400000, CRC(15906869) SHA1(7ad216ac6d048718e1a6c99f16c1a2f98db065b8) ) - ROM_LOAD64_WORD_SWAP( "mpr-19860.04", 0x800000, 0x400000, CRC(19a1ddc7) SHA1(c13277a419ff8f1a8bc532f00375f015a99a1d7f) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19861.05", 0x1800006, 0x400000, CRC(6ddf21b3) SHA1(462f987068ac7a1c8caaf356f44e0452ef0e8238) ) - ROM_LOAD64_WORD_SWAP( "mpr-19862.06", 0x1800004, 0x400000, CRC(b0f69ae4) SHA1(a4e785cda6f0101e11cd82ac9aa9934926234ba1) ) - ROM_LOAD64_WORD_SWAP( "mpr-19863.07", 0x1800002, 0x400000, CRC(2b2619d0) SHA1(895c8090a8149429ca41d6b94822462d8482a533) ) - ROM_LOAD64_WORD_SWAP( "mpr-19864.08", 0x1800000, 0x400000, CRC(c7baab2b) SHA1(abc629abf677e8adb3b4eff4cb6e6cd21254bdba) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19865.09", 0x2800006, 0x400000, CRC(b2749d2b) SHA1(4e2a5d07eae2a2b2f9149328c68886df16389c2c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19866.10", 0x2800004, 0x400000, CRC(ede5fc78) SHA1(ff170fad7aaf1a6ba86d50022ad7586d0e785668) ) - ROM_LOAD64_WORD_SWAP( "mpr-19867.11", 0x2800002, 0x400000, CRC(ae610fc5) SHA1(b03c85cb661a67becf59b6bb29e52de736470add) ) - ROM_LOAD64_WORD_SWAP( "mpr-19868.12", 0x2800000, 0x400000, CRC(3c43d64f) SHA1(00e1bd91496a6b3f73343ef4ad24a0dd3cb6bcf5) ) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19871.26", 0x000002, 0x200000, CRC(5168e02b) SHA1(3572c748c8f1b70b194fcf27919d3e671c7a09a5) ) - ROM_LOAD_VROM( "mpr-19872.27", 0x000000, 0x200000, CRC(9e65fc06) SHA1(7de713cf1161d921d0b19aa4af6ec0790f043424) ) - ROM_LOAD_VROM( "mpr-19873.28", 0x000006, 0x200000, CRC(0b15d7ab) SHA1(d3f42e096b9d9bd3b7b5905d2ae6f3205caa3c82) ) - ROM_LOAD_VROM( "mpr-19874.29", 0x000004, 0x200000, CRC(6a28ec89) SHA1(cd5ed506cb08a7420729157dba912a3e8e7a9076) ) - ROM_LOAD_VROM( "mpr-19875.30", 0x00000a, 0x200000, CRC(a03e1173) SHA1(45a083a2aeecc0bc250f9e025940525dfdf607b1) ) - ROM_LOAD_VROM( "mpr-19876.31", 0x000008, 0x200000, CRC(c93bb036) SHA1(d317fc726c2c8e72234a507406b0e8b8b93fe85a) ) - ROM_LOAD_VROM( "mpr-19877.32", 0x00000e, 0x200000, CRC(b1e3df56) SHA1(f9784b33c49b30612f5f4415c7be47198457a9e7) ) - ROM_LOAD_VROM( "mpr-19878.33", 0x00000c, 0x200000, CRC(a2acc111) SHA1(f06205dbbf1fae5b20712270131c12ad8b014c82) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19879.34", 0x000002, 0x200000, CRC(90c1553f) SHA1(1424774c2c2bc126bcde985ee4acb62254357b90) ) - ROM_LOAD_VROM( "mpr-19880.35", 0x000000, 0x200000, CRC(42504e63) SHA1(ab4690e1ea701d391e731d8491e8769030bdc689) ) - ROM_LOAD_VROM( "mpr-19881.36", 0x000006, 0x200000, CRC(d06985cf) SHA1(daae76c0bad5fbcc610525a13aea39289021d929) ) - ROM_LOAD_VROM( "mpr-19882.37", 0x000004, 0x200000, CRC(a86f2e2f) SHA1(9b39f49618b86ccf5a80d84c5e3d4d349a3866cd) ) - ROM_LOAD_VROM( "mpr-19883.38", 0x00000a, 0x200000, CRC(12895d6e) SHA1(347a85d0236fb5fed1a6b848425e905e8d5a3ddd) ) - ROM_LOAD_VROM( "mpr-19884.39", 0x000008, 0x200000, CRC(711eebfb) SHA1(3a14251399265f5c3d29830dd713efb49c8c2f2e) ) - ROM_LOAD_VROM( "mpr-19885.40", 0x00000e, 0x200000, CRC(d1ae5473) SHA1(c225ad47175247b4cc0d3db57d2ecb68242639d5) ) - ROM_LOAD_VROM( "mpr-19886.41", 0x00000c, 0x200000, CRC(278aae0b) SHA1(471a74ca21d0394742d0275029642c712a6bc924) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19891.21", 0x080000, 0x080000, CRC(c3ecd448) SHA1(875ee429872f3a851fa0239e5c781870fa3f4323) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD32_WORD( "mpr-19869.22", 0x000000, 0x400000, CRC(ea1ef1cc) SHA1(399c43659d83673f83b551b30b3b1410a75d8f8c) ) - ROM_LOAD32_WORD( "mpr-19870.24", 0x000002, 0x400000, CRC(49c70296) SHA1(9bf88a63c38d318006a9c6c6b7b4452439df876c) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( scud ) /* step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19731.17", 0x0600006, 0x80000, CRC(3EE6447E) SHA1(124697791d90c1b352dd6e33bd3b45535aa92bb5) ) - ROM_LOAD64_WORD_SWAP( "epr-19732.18", 0x0600004, 0x80000, CRC(23E864BB) SHA1(0f34d963ee681ca1006f3dec12b593d961e3e442) ) - ROM_LOAD64_WORD_SWAP( "epr-19733.19", 0x0600002, 0x80000, CRC(6565E29A) SHA1(4fb4f3e77fa46a825900a63095307714e71c08f3) ) - ROM_LOAD64_WORD_SWAP( "epr-19734.20", 0x0600000, 0x80000, CRC(BE897336) SHA1(690e17f2f9a5fbe63686d197552a298efcc8c8c5) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19658.01", 0x0800006, 0x400000, CRC(d523235c) SHA1(0dbfe746b2bdc185768d82c50a329c4c58ad4a29) ) - ROM_LOAD64_WORD_SWAP( "mpr-19659.02", 0x0800004, 0x400000, CRC(c47e7002) SHA1(9644694e6d117564f92650f32f94ce4d7b5523fa) ) - ROM_LOAD64_WORD_SWAP( "mpr-19660.03", 0x0800002, 0x400000, CRC(d999c935) SHA1(ef5429e90314d7a789d8ccbad4d0efaeaff9741a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19661.04", 0x0800000, 0x400000, CRC(8e3fd241) SHA1(df2596f483c759f068c75337320d369d80189ea1) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19662.05", 0x1800006, 0x400000, CRC(3c700eff) SHA1(2ebb149a3d8a9de95afe091b3a1776f4dc3fc579) ) - ROM_LOAD64_WORD_SWAP( "mpr-19663.06", 0x1800004, 0x400000, CRC(f6af1ca4) SHA1(c78237b8f568792202d927ba0af86df6df80f87a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19664.07", 0x1800002, 0x400000, CRC(b9d11294) SHA1(69b6f5708f423fb11337184a3646597356554058) ) - ROM_LOAD64_WORD_SWAP( "mpr-19665.08", 0x1800000, 0x400000, CRC(f97c78f9) SHA1(39aa69e365bf597e5e9185aaf4a044b485ebad8d) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19666.09", 0x2800006, 0x400000, CRC(b53dc97f) SHA1(a4fbc7aade153e6f5fc1dd40ba97d462f643c2c4) ) - ROM_LOAD64_WORD_SWAP( "mpr-19667.10", 0x2800004, 0x400000, CRC(a8676799) SHA1(78734b194e2797ac7efc40f3d0a2ff09dc93409e) ) - ROM_LOAD64_WORD_SWAP( "mpr-19668.11", 0x2800002, 0x400000, CRC(0b4dd8d5) SHA1(b5668ce7ac5a4ac844a0a5a07df9649df9ad9615) ) - ROM_LOAD64_WORD_SWAP( "mpr-19669.12", 0x2800000, 0x400000, CRC(cdc43c61) SHA1(b096d0eb302a9285a8ee396fdbd7b8c546049fd4) ) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19672.26", 0x0000002, 0x200000, CRC(588c29fd) SHA1(5f58c885b506592106aa15208fc1db9d55ab4481) ) - ROM_LOAD_VROM( "mpr-19673.27", 0x0000000, 0x200000, CRC(156abaa9) SHA1(6ef9c042e9ee34090192c1c99c98d19f18efcfba) ) - ROM_LOAD_VROM( "mpr-19674.28", 0x0000006, 0x200000, CRC(c7b0f98c) SHA1(632dbc4cb225d91c82f6a1874517ed0b03b7a0c5) ) - ROM_LOAD_VROM( "mpr-19675.29", 0x0000004, 0x200000, CRC(ff113396) SHA1(af90bb696a3c1585318150cb83ea2ed85cdb67a1) ) - ROM_LOAD_VROM( "mpr-19676.30", 0x000000a, 0x200000, CRC(fd852ead) SHA1(854204c33aec8fb9c014db06e4106be37ecdaf0d) ) - ROM_LOAD_VROM( "mpr-19677.31", 0x0000008, 0x200000, CRC(c6ac0347) SHA1(c792da72af8bf9d011305c9ab7a6230b9e2c5316) ) - ROM_LOAD_VROM( "mpr-19678.32", 0x000000e, 0x200000, CRC(b8819cfe) SHA1(b99f8d0626bc38c75058e94d2461dbec6029589d) ) - ROM_LOAD_VROM( "mpr-19679.33", 0x000000c, 0x200000, CRC(e126c3e3) SHA1(5440540c2432a9ff5bd8e36467af46c456d16844) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19680.34", 0x0000002, 0x200000, CRC(00ea5cef) SHA1(3aed46182c0e99c0b72b26c718e2fa20fa7d2e44) ) - ROM_LOAD_VROM( "mpr-19681.35", 0x0000000, 0x200000, CRC(c949325f) SHA1(146de7abf764adc1840b84294cbd473f191cbcb8) ) - ROM_LOAD_VROM( "mpr-19682.36", 0x0000006, 0x200000, CRC(ce5ca065) SHA1(2f518186b29e7cf5fa1c6b036427b8015cfb681e) ) - ROM_LOAD_VROM( "mpr-19683.37", 0x0000004, 0x200000, CRC(e5856419) SHA1(3f8f5b8b36d417090955d34553dcf6d8d9f34558) ) - ROM_LOAD_VROM( "mpr-19684.38", 0x000000a, 0x200000, CRC(56f6ec97) SHA1(dfd251dba77b39342457036fcbe4683d24029600) ) - ROM_LOAD_VROM( "mpr-19685.39", 0x0000008, 0x200000, CRC(42b49304) SHA1(4e185d0f97de44a25b5f982a46f0c3d1dab406c2) ) - ROM_LOAD_VROM( "mpr-19686.40", 0x000000e, 0x200000, CRC(84eed592) SHA1(cc03094770945096d81bc981bff77b540452b045) ) - ROM_LOAD_VROM( "mpr-19687.41", 0x000000c, 0x200000, CRC(776ce694) SHA1(d1e56ebd0011aa3a54a5829c6bd0f5343b283fa0) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19692.21", 0x080000, 0x080000, CRC(a94f5521) SHA1(22b6a17d44fec8bf796e1790bcabc41f34c89baf) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD32_WORD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) ) - ROM_LOAD32_WORD( "mpr-19671.24", 0x000002, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) ) - ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) ) - ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) ) - ROM_LOAD( "mpr-19606.60", 0x600000, 0x200000, CRC(adad46b2) SHA1(360b23870f1d15ab527fae1bb731da6e7a8b19c1) ) -ROM_END - -ROM_START( scuda ) /* step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19688.17", 0x0600006, 0x80000, CRC(a4c85103) SHA1(b2e57f86d0a49e3e88fa7d6a77bbd99039c034bb) ) - ROM_LOAD64_WORD_SWAP( "epr-19689.18", 0x0600004, 0x80000, CRC(cbce6d62) SHA1(b6051af013ee80406cfadb0c8acf24b8825ccaf2) ) - ROM_LOAD64_WORD_SWAP( "epr-19690.19", 0x0600002, 0x80000, CRC(25f007fe) SHA1(d3814637f6278c30ea277e30e66ad06e37d37e15) ) - ROM_LOAD64_WORD_SWAP( "epr-19691.20", 0x0600000, 0x80000, CRC(83523b89) SHA1(c881c71c961948c8ff3fab33e1db23cff4db0ed8) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19658.01", 0x0800006, 0x400000, CRC(d523235c) SHA1(0dbfe746b2bdc185768d82c50a329c4c58ad4a29) ) - ROM_LOAD64_WORD_SWAP( "mpr-19659.02", 0x0800004, 0x400000, CRC(c47e7002) SHA1(9644694e6d117564f92650f32f94ce4d7b5523fa) ) - ROM_LOAD64_WORD_SWAP( "mpr-19660.03", 0x0800002, 0x400000, CRC(d999c935) SHA1(ef5429e90314d7a789d8ccbad4d0efaeaff9741a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19661.04", 0x0800000, 0x400000, CRC(8e3fd241) SHA1(df2596f483c759f068c75337320d369d80189ea1) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19662.05", 0x1800006, 0x400000, CRC(3c700eff) SHA1(2ebb149a3d8a9de95afe091b3a1776f4dc3fc579) ) - ROM_LOAD64_WORD_SWAP( "mpr-19663.06", 0x1800004, 0x400000, CRC(f6af1ca4) SHA1(c78237b8f568792202d927ba0af86df6df80f87a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19664.07", 0x1800002, 0x400000, CRC(b9d11294) SHA1(69b6f5708f423fb11337184a3646597356554058) ) - ROM_LOAD64_WORD_SWAP( "mpr-19665.08", 0x1800000, 0x400000, CRC(f97c78f9) SHA1(39aa69e365bf597e5e9185aaf4a044b485ebad8d) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19666.09", 0x2800006, 0x400000, CRC(b53dc97f) SHA1(a4fbc7aade153e6f5fc1dd40ba97d462f643c2c4) ) - ROM_LOAD64_WORD_SWAP( "mpr-19667.10", 0x2800004, 0x400000, CRC(a8676799) SHA1(78734b194e2797ac7efc40f3d0a2ff09dc93409e) ) - ROM_LOAD64_WORD_SWAP( "mpr-19668.11", 0x2800002, 0x400000, CRC(0b4dd8d5) SHA1(b5668ce7ac5a4ac844a0a5a07df9649df9ad9615) ) - ROM_LOAD64_WORD_SWAP( "mpr-19669.12", 0x2800000, 0x400000, CRC(cdc43c61) SHA1(b096d0eb302a9285a8ee396fdbd7b8c546049fd4) ) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19672.26", 0x02, 0x200000, CRC(588c29fd) SHA1(5f58c885b506592106aa15208fc1db9d55ab4481) ) - ROM_LOAD_VROM( "mpr-19673.27", 0x00, 0x200000, CRC(156abaa9) SHA1(6ef9c042e9ee34090192c1c99c98d19f18efcfba) ) - ROM_LOAD_VROM( "mpr-19674.28", 0x06, 0x200000, CRC(c7b0f98c) SHA1(632dbc4cb225d91c82f6a1874517ed0b03b7a0c5) ) - ROM_LOAD_VROM( "mpr-19675.29", 0x04, 0x200000, CRC(ff113396) SHA1(af90bb696a3c1585318150cb83ea2ed85cdb67a1) ) - ROM_LOAD_VROM( "mpr-19676.30", 0x0a, 0x200000, CRC(fd852ead) SHA1(854204c33aec8fb9c014db06e4106be37ecdaf0d) ) - ROM_LOAD_VROM( "mpr-19677.31", 0x08, 0x200000, CRC(c6ac0347) SHA1(c792da72af8bf9d011305c9ab7a6230b9e2c5316) ) - ROM_LOAD_VROM( "mpr-19678.32", 0x0e, 0x200000, CRC(b8819cfe) SHA1(b99f8d0626bc38c75058e94d2461dbec6029589d) ) - ROM_LOAD_VROM( "mpr-19679.33", 0x0c, 0x200000, CRC(e126c3e3) SHA1(5440540c2432a9ff5bd8e36467af46c456d16844) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19680.34", 0x02, 0x200000, CRC(00ea5cef) SHA1(3aed46182c0e99c0b72b26c718e2fa20fa7d2e44) ) - ROM_LOAD_VROM( "mpr-19681.35", 0x00, 0x200000, CRC(c949325f) SHA1(146de7abf764adc1840b84294cbd473f191cbcb8) ) - ROM_LOAD_VROM( "mpr-19682.36", 0x06, 0x200000, CRC(ce5ca065) SHA1(2f518186b29e7cf5fa1c6b036427b8015cfb681e) ) - ROM_LOAD_VROM( "mpr-19683.37", 0x04, 0x200000, CRC(e5856419) SHA1(3f8f5b8b36d417090955d34553dcf6d8d9f34558) ) - ROM_LOAD_VROM( "mpr-19684.38", 0x0a, 0x200000, CRC(56f6ec97) SHA1(dfd251dba77b39342457036fcbe4683d24029600) ) - ROM_LOAD_VROM( "mpr-19685.39", 0x08, 0x200000, CRC(42b49304) SHA1(4e185d0f97de44a25b5f982a46f0c3d1dab406c2) ) - ROM_LOAD_VROM( "mpr-19686.40", 0x0e, 0x200000, CRC(84eed592) SHA1(cc03094770945096d81bc981bff77b540452b045) ) - ROM_LOAD_VROM( "mpr-19687.41", 0x0c, 0x200000, CRC(776ce694) SHA1(d1e56ebd0011aa3a54a5829c6bd0f5343b283fa0) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19692.21", 0x080000, 0x080000, CRC(a94f5521) SHA1(22b6a17d44fec8bf796e1790bcabc41f34c89baf) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD32_WORD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) ) - ROM_LOAD32_WORD( "mpr-19671.24", 0x000002, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) ) - ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) ) - ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) ) - ROM_LOAD( "mpr-19606.60", 0x600000, 0x200000, CRC(adad46b2) SHA1(360b23870f1d15ab527fae1bb731da6e7a8b19c1) ) -ROM_END - -ROM_START( scudp ) /* step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20092a.17", 0x0600006, 0x80000, CRC(a94ec57e) SHA1(bda1d9cb38e10a25f7cdde38f30ae13541fdbc5e) ) - ROM_LOAD64_WORD_SWAP( "epr-20093a.18", 0x0600004, 0x80000, CRC(4ed2e35d) SHA1(ac149b369db9fc80e63e1ed943d42ccd056dab1b) ) - ROM_LOAD64_WORD_SWAP( "epr-20094a.19", 0x0600002, 0x80000, CRC(dbf17a43) SHA1(fd719515c8ed78dea80fef20f3af9b72461f81d7) ) - ROM_LOAD64_WORD_SWAP( "epr-20095a.20", 0x0600000, 0x80000, CRC(58c7e393) SHA1(7e25101f72daa271f680a39042341d06249fd104) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19658.01", 0x0800006, 0x400000, CRC(d523235c) SHA1(0dbfe746b2bdc185768d82c50a329c4c58ad4a29) ) - ROM_LOAD64_WORD_SWAP( "mpr-19659.02", 0x0800004, 0x400000, CRC(c47e7002) SHA1(9644694e6d117564f92650f32f94ce4d7b5523fa) ) - ROM_LOAD64_WORD_SWAP( "mpr-19660.03", 0x0800002, 0x400000, CRC(d999c935) SHA1(ef5429e90314d7a789d8ccbad4d0efaeaff9741a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19661.04", 0x0800000, 0x400000, CRC(8e3fd241) SHA1(df2596f483c759f068c75337320d369d80189ea1) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19662.05", 0x1800006, 0x400000, CRC(3c700eff) SHA1(2ebb149a3d8a9de95afe091b3a1776f4dc3fc579) ) - ROM_LOAD64_WORD_SWAP( "mpr-19663.06", 0x1800004, 0x400000, CRC(f6af1ca4) SHA1(c78237b8f568792202d927ba0af86df6df80f87a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19664.07", 0x1800002, 0x400000, CRC(b9d11294) SHA1(69b6f5708f423fb11337184a3646597356554058) ) - ROM_LOAD64_WORD_SWAP( "mpr-19665.08", 0x1800000, 0x400000, CRC(f97c78f9) SHA1(39aa69e365bf597e5e9185aaf4a044b485ebad8d) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19666.09", 0x2800006, 0x400000, CRC(b53dc97f) SHA1(a4fbc7aade153e6f5fc1dd40ba97d462f643c2c4) ) - ROM_LOAD64_WORD_SWAP( "mpr-19667.10", 0x2800004, 0x400000, CRC(a8676799) SHA1(78734b194e2797ac7efc40f3d0a2ff09dc93409e) ) - ROM_LOAD64_WORD_SWAP( "mpr-19668.11", 0x2800002, 0x400000, CRC(0b4dd8d5) SHA1(b5668ce7ac5a4ac844a0a5a07df9649df9ad9615) ) - ROM_LOAD64_WORD_SWAP( "mpr-19669.12", 0x2800000, 0x400000, CRC(cdc43c61) SHA1(b096d0eb302a9285a8ee396fdbd7b8c546049fd4) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20097.13", 0x3800006, 0x400000, CRC(269a9dbe) SHA1(df804ec1df87c1ab6387cd1bbd5dd224adc8d528) ) - ROM_LOAD64_WORD_SWAP( "mpr-20098.14", 0x3800004, 0x400000, CRC(8355fa41) SHA1(e6ac03fd7f1ab882a2861f65f6fea977c106dc15) ) - ROM_LOAD64_WORD_SWAP( "mpr-20099.15", 0x3800002, 0x400000, CRC(fc9bd7d9) SHA1(2dbcbb4b7f8fbeeeeacab51179003d8a4a9e771b) ) - ROM_LOAD64_WORD_SWAP( "mpr-20100.16", 0x3800000, 0x400000, CRC(c99e2c01) SHA1(074d4b5e85f00f5b7550e9944664fdfba8666569) ) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19672.26", 0x0000002, 0x200000, CRC(588c29fd) SHA1(5f58c885b506592106aa15208fc1db9d55ab4481) ) - ROM_LOAD_VROM( "mpr-19673.27", 0x0000000, 0x200000, CRC(156abaa9) SHA1(6ef9c042e9ee34090192c1c99c98d19f18efcfba) ) - ROM_LOAD_VROM( "mpr-19674.28", 0x0000006, 0x200000, CRC(c7b0f98c) SHA1(632dbc4cb225d91c82f6a1874517ed0b03b7a0c5) ) - ROM_LOAD_VROM( "mpr-19675.29", 0x0000004, 0x200000, CRC(ff113396) SHA1(af90bb696a3c1585318150cb83ea2ed85cdb67a1) ) - ROM_LOAD_VROM( "mpr-19676.30", 0x000000a, 0x200000, CRC(fd852ead) SHA1(854204c33aec8fb9c014db06e4106be37ecdaf0d) ) - ROM_LOAD_VROM( "mpr-19677.31", 0x0000008, 0x200000, CRC(c6ac0347) SHA1(c792da72af8bf9d011305c9ab7a6230b9e2c5316) ) - ROM_LOAD_VROM( "mpr-19678.32", 0x000000e, 0x200000, CRC(b8819cfe) SHA1(b99f8d0626bc38c75058e94d2461dbec6029589d) ) - ROM_LOAD_VROM( "mpr-19679.33", 0x000000c, 0x200000, CRC(e126c3e3) SHA1(5440540c2432a9ff5bd8e36467af46c456d16844) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19680.34", 0x0000002, 0x200000, CRC(00ea5cef) SHA1(3aed46182c0e99c0b72b26c718e2fa20fa7d2e44) ) - ROM_LOAD_VROM( "mpr-19681.35", 0x0000000, 0x200000, CRC(c949325f) SHA1(146de7abf764adc1840b84294cbd473f191cbcb8) ) - ROM_LOAD_VROM( "mpr-19682.36", 0x0000006, 0x200000, CRC(ce5ca065) SHA1(2f518186b29e7cf5fa1c6b036427b8015cfb681e) ) - ROM_LOAD_VROM( "mpr-19683.37", 0x0000004, 0x200000, CRC(e5856419) SHA1(3f8f5b8b36d417090955d34553dcf6d8d9f34558) ) - ROM_LOAD_VROM( "mpr-19684.38", 0x000000a, 0x200000, CRC(56f6ec97) SHA1(dfd251dba77b39342457036fcbe4683d24029600) ) - ROM_LOAD_VROM( "mpr-19685.39", 0x0000008, 0x200000, CRC(42b49304) SHA1(4e185d0f97de44a25b5f982a46f0c3d1dab406c2) ) - ROM_LOAD_VROM( "mpr-19686.40", 0x000000e, 0x200000, CRC(84eed592) SHA1(cc03094770945096d81bc981bff77b540452b045) ) - ROM_LOAD_VROM( "mpr-19687.41", 0x000000c, 0x200000, CRC(776ce694) SHA1(d1e56ebd0011aa3a54a5829c6bd0f5343b283fa0) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20096a.21", 0x080000, 0x080000, CRC(0fef288b) SHA1(d6842108d1baea5fffba679d81179c8ffaa87b93) ) - - // Samples - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD32_WORD( "mpr-19670.22", 0x000000, 0x400000, CRC(bd31cc06) SHA1(d1c85d0cf79b92de5bcbe20dfb8b626ad72de019) ) - ROM_LOAD32_WORD( "mpr-19671.24", 0x000002, 0x400000, CRC(8e8526ab) SHA1(3d2cbb09bd185660feea4dd80bee5af2e2a19aa6) ) - ROM_LOAD( "mpr-20101.23", 0x800000, 0x400000, CRC(66d1e31f) SHA1(cbc06e9aebcdf82f14bef1c35cbb3203530ef6ae) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-19612.2", 0x000000, 0x20000, CRC(13978fd4) SHA1(bb597914a34308376239afab6e04fc231e39e379) ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-19603.57", 0x000000, 0x200000, CRC(b1b1765f) SHA1(cdcb4d6e6507322f84ac5153b386c3eb5d031e22) ) - ROM_LOAD( "mpr-19604.58", 0x200000, 0x200000, CRC(6ac85b49) SHA1(3e74ae6e9ac7b208e2cd5ebdf80bb3cee19d436d) ) - ROM_LOAD( "mpr-19605.59", 0x400000, 0x200000, CRC(bec891eb) SHA1(357849d2842ac77f9945eb4a0ca89253e474f617) ) - ROM_LOAD( "mpr-19606.60", 0x600000, 0x200000, CRC(adad46b2) SHA1(360b23870f1d15ab527fae1bb731da6e7a8b19c1) ) -ROM_END - -ROM_START( vf3 ) /* step 1.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19227c.17", 0x600006, 0x080000, CRC(a7df4d75) SHA1(1b1186227f830556c5e2b6ca4c2bf20673b22f94) ) - ROM_LOAD64_WORD_SWAP( "epr-19228c.18", 0x600004, 0x080000, CRC(9c5727e2) SHA1(f9f8b8cf27fdce08ab2975dbaa8c7a03f5c064fb) ) - ROM_LOAD64_WORD_SWAP( "epr-19229c.19", 0x600002, 0x080000, CRC(731b6b78) SHA1(e39f92f721c2771f2d1f5b67625659e006f6fe0a) ) - ROM_LOAD64_WORD_SWAP( "epr-19230c.20", 0x600000, 0x080000, CRC(736a9431) SHA1(0f62a122f349c0b0aab43863a30284a8fe4b7ba9) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19193.1", 0x800006, 0x400000, CRC(7bab33d2) SHA1(243a09959f3c4311070f1de760ee63958cd47660) ) - ROM_LOAD64_WORD_SWAP( "mpr-19194.2", 0x800004, 0x400000, CRC(66254702) SHA1(843ac4f6791f312f3138f8f38d38c8e4d2bab305) ) - ROM_LOAD64_WORD_SWAP( "mpr-19195.3", 0x800002, 0x400000, CRC(bd5e27a3) SHA1(778c67bf7b5c7e3ae52fe12308a81b095563f52b) ) - ROM_LOAD64_WORD_SWAP( "mpr-19196.4", 0x800000, 0x400000, CRC(f386b850) SHA1(168d21382359acb8f1d52d722de8c6b9a9210378) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19197.5", 0x1800006, 0x400000, CRC(a22d76c9) SHA1(ad2d67a62436ccc6479e2a218ab09d2fc22c367d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19198.6", 0x1800004, 0x400000, CRC(d8ee5032) SHA1(3e9274142874ace76dba2bc9b5351cfdfb3a50cd) ) - ROM_LOAD64_WORD_SWAP( "mpr-19199.7", 0x1800002, 0x400000, CRC(9f80d6fe) SHA1(97b9076d413e28d00e9c45fcc7dad6f534ca8874) ) - ROM_LOAD64_WORD_SWAP( "mpr-19200.8", 0x1800000, 0x400000, CRC(74941091) SHA1(914db3955f355779147d86446f5976121191ea6d) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19201.9", 0x2800006, 0x400000, CRC(7c4a8c31) SHA1(473b7bef932d7d54a5dc06bd80d286f2e2e96d44) ) - ROM_LOAD64_WORD_SWAP( "mpr-19202.10", 0x2800004, 0x400000, CRC(aaa086c6) SHA1(01871c8e5454aed80e907fde199cfb23a57aa1c2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19203.11", 0x2800002, 0x400000, CRC(0afa6334) SHA1(1bb70e823fb6e05df069cbfafed2e57bda8776b9) ) - ROM_LOAD64_WORD_SWAP( "mpr-19204.12", 0x2800000, 0x400000, CRC(2f93310a) SHA1(3dfc5b72a78967d7772da4098adb41f18b5294d4) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-19205.13", 0x3800006, 0x400000, CRC(199c328e) SHA1(1ef1f09ff1f5253bf03e06c5b6e42be9599b9ea5) ) - ROM_LOAD64_WORD_SWAP( "mpr-19206.14", 0x3800004, 0x400000, CRC(71a98d73) SHA1(dda617f9f5f986e3369fa3d3090c423eefdf913c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19207.15", 0x3800002, 0x400000, CRC(2ce1612d) SHA1(736f559d460f0069c7a2d5ba7cddf9135737d6e2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19208.16", 0x3800000, 0x400000, CRC(08f30f71) SHA1(393525b19cdecddfbd62c6209203db5f3edfd9a8) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19211.26", 0x000002, 0x200000, CRC(9c8f5df1) SHA1(d47c8bd0189c8e617a3ed9f75ee3812a229f56c0) ) - ROM_LOAD_VROM( "mpr-19212.27", 0x000000, 0x200000, CRC(75036234) SHA1(01a20a6a62408017bff8f2e76dbd21c00275bc70) ) - ROM_LOAD_VROM( "mpr-19213.28", 0x000006, 0x200000, CRC(67b123cf) SHA1(b84c4f83c25edcc8ac929d3f9cf51da713045071) ) - ROM_LOAD_VROM( "mpr-19214.29", 0x000004, 0x200000, CRC(a6f5576b) SHA1(e994b3ef8e6eb07e8f3bbe474410c06d6c42354b) ) - ROM_LOAD_VROM( "mpr-19215.30", 0x00000a, 0x200000, CRC(c6fd9f0d) SHA1(1f3299706d6ac73836c069a7ed2866d412f60369) ) - ROM_LOAD_VROM( "mpr-19216.31", 0x000008, 0x200000, CRC(201bb1ed) SHA1(7ffd72ff56159529d74f01f8da0ba4798f109806) ) - ROM_LOAD_VROM( "mpr-19217.32", 0x00000e, 0x200000, CRC(4dadd41a) SHA1(7a1e0908962afcfc737132478c0e45d153d94ecb) ) - ROM_LOAD_VROM( "mpr-19218.33", 0x00000c, 0x200000, CRC(cff91953) SHA1(41e95704a65958377c3bbd9d00d90a5ad4552f66) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19219.34", 0x000002, 0x200000, CRC(c610d521) SHA1(cb146fe78d89176e9dd5c773644614cdc2ef57ce) ) - ROM_LOAD_VROM( "mpr-19220.35", 0x000000, 0x200000, CRC(e62924d0) SHA1(4d1ac11a5977a4e9cf942c9f1204960c0a895347) ) - ROM_LOAD_VROM( "mpr-19221.36", 0x000006, 0x200000, CRC(24f83e3c) SHA1(c587428fa47e849881bf45487af086db6b09264e) ) - ROM_LOAD_VROM( "mpr-19222.37", 0x000004, 0x200000, CRC(61a6aa7d) SHA1(cc26020b2f904f68822111073b595ee0cc8b2e0c) ) - ROM_LOAD_VROM( "mpr-19223.38", 0x00000a, 0x200000, CRC(1a8c1980) SHA1(43b8efb019c8a20fe38f95050fe60dfe9bf322f0) ) - ROM_LOAD_VROM( "mpr-19224.39", 0x000008, 0x200000, CRC(0a79a1bd) SHA1(1df71cf77ea8611462380a449eb99199664b3da3) ) - ROM_LOAD_VROM( "mpr-19225.40", 0x00000e, 0x200000, CRC(91a985eb) SHA1(5a842a260e4a78f5463222db44f13b068fa70b23) ) - ROM_LOAD_VROM( "mpr-19226.41", 0x00000c, 0x200000, CRC(00091722) SHA1(ef86db36b4b91a66b3e401c3c91735b9d28da2e2) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19231.21", 0x000000, 0x020000, CRC(f2ae2558) SHA1(7ab5fc508ffd1b0c9f3e70f4d3edeae44e3a0dc4) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-19209.22", 0x000000, 0x400000, CRC(3715e38c) SHA1(b11dbf8a5840990e9697c53b4796cd70ad91f6a1) ) - ROM_LOAD( "mpr-19210.24", 0x400000, 0x400000, CRC(c03d6502) SHA1(4ca49fe5dd5105ca5f78f4740477beb64137d4be) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vf3tb ) /* step 1.0? */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20126.17", 0x600006, 0x080000, CRC(27ecd3b0) SHA1(a9b913294ac925adb501d3b47f346006b70dfcd6) ) - ROM_LOAD64_WORD_SWAP( "epr-20127.18", 0x600004, 0x080000, CRC(5c0f694b) SHA1(ca346d6b249bb7a3015f016d25bfb3050360c8ec) ) - ROM_LOAD64_WORD_SWAP( "epr-20128.19", 0x600002, 0x080000, CRC(ffbdbdc5) SHA1(3cbcc5ce3fcb563f11dc87ac514de2325c6cc9f2) ) - ROM_LOAD64_WORD_SWAP( "epr-20129.20", 0x600000, 0x080000, CRC(0db897ce) SHA1(68f5005082c69fab254d43485669dd6b95a6cc9b) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20130.1", 0x800006, 0x200000, CRC(19e1eaca) SHA1(e63afe7d8f5e653d0efd026fe20da0850f908d5e) ) - ROM_LOAD64_WORD_SWAP( "mpr-20131.2", 0x800004, 0x200000, CRC(d86ec71b) SHA1(da8ffb1a8000b8e656893c29dad8458e04c91df6) ) - ROM_LOAD64_WORD_SWAP( "mpr-20132.3", 0x800002, 0x200000, CRC(91ebc0fb) SHA1(0c37d29c15ec7137dd5398c010a289ffce9ee1e8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20133.4", 0x800000, 0x200000, CRC(d9a10a89) SHA1(a1c1dff2cde54cd128690bb5896448786e5243b9) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19197.5", 0x1800006, 0x400000, CRC(a22d76c9) SHA1(ad2d67a62436ccc6479e2a218ab09d2fc22c367d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19198.6", 0x1800004, 0x400000, CRC(d8ee5032) SHA1(3e9274142874ace76dba2bc9b5351cfdfb3a50cd) ) - ROM_LOAD64_WORD_SWAP( "mpr-19199.7", 0x1800002, 0x400000, CRC(9f80d6fe) SHA1(97b9076d413e28d00e9c45fcc7dad6f534ca8874) ) - ROM_LOAD64_WORD_SWAP( "mpr-19200.8", 0x1800000, 0x400000, CRC(74941091) SHA1(914db3955f355779147d86446f5976121191ea6d) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19201.9", 0x2800006, 0x400000, CRC(7c4a8c31) SHA1(473b7bef932d7d54a5dc06bd80d286f2e2e96d44) ) - ROM_LOAD64_WORD_SWAP( "mpr-19202.10", 0x2800004, 0x400000, CRC(aaa086c6) SHA1(01871c8e5454aed80e907fde199cfb23a57aa1c2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19203.11", 0x2800002, 0x400000, CRC(0afa6334) SHA1(1bb70e823fb6e05df069cbfafed2e57bda8776b9) ) - ROM_LOAD64_WORD_SWAP( "mpr-19204.12", 0x2800000, 0x400000, CRC(2f93310a) SHA1(3dfc5b72a78967d7772da4098adb41f18b5294d4) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-19205.13", 0x3800006, 0x400000, CRC(199c328e) SHA1(1ef1f09ff1f5253bf03e06c5b6e42be9599b9ea5) ) - ROM_LOAD64_WORD_SWAP( "mpr-19206.14", 0x3800004, 0x400000, CRC(71a98d73) SHA1(dda617f9f5f986e3369fa3d3090c423eefdf913c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19207.15", 0x3800002, 0x400000, CRC(2ce1612d) SHA1(736f559d460f0069c7a2d5ba7cddf9135737d6e2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19208.16", 0x3800000, 0x400000, CRC(08f30f71) SHA1(393525b19cdecddfbd62c6209203db5f3edfd9a8) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19211.26", 0x000002, 0x200000, CRC(9c8f5df1) SHA1(d47c8bd0189c8e617a3ed9f75ee3812a229f56c0) ) - ROM_LOAD_VROM( "mpr-19212.27", 0x000000, 0x200000, CRC(75036234) SHA1(01a20a6a62408017bff8f2e76dbd21c00275bc70) ) - ROM_LOAD_VROM( "mpr-19213.28", 0x000006, 0x200000, CRC(67b123cf) SHA1(b84c4f83c25edcc8ac929d3f9cf51da713045071) ) - ROM_LOAD_VROM( "mpr-19214.29", 0x000004, 0x200000, CRC(a6f5576b) SHA1(e994b3ef8e6eb07e8f3bbe474410c06d6c42354b) ) - ROM_LOAD_VROM( "mpr-19215.30", 0x00000a, 0x200000, CRC(c6fd9f0d) SHA1(1f3299706d6ac73836c069a7ed2866d412f60369) ) - ROM_LOAD_VROM( "mpr-19216.31", 0x000008, 0x200000, CRC(201bb1ed) SHA1(7ffd72ff56159529d74f01f8da0ba4798f109806) ) - ROM_LOAD_VROM( "mpr-19217.32", 0x00000e, 0x200000, CRC(4dadd41a) SHA1(7a1e0908962afcfc737132478c0e45d153d94ecb) ) - ROM_LOAD_VROM( "mpr-19218.33", 0x00000c, 0x200000, CRC(cff91953) SHA1(41e95704a65958377c3bbd9d00d90a5ad4552f66) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19219.34", 0x000002, 0x200000, CRC(c610d521) SHA1(cb146fe78d89176e9dd5c773644614cdc2ef57ce) ) - ROM_LOAD_VROM( "mpr-19220.35", 0x000000, 0x200000, CRC(e62924d0) SHA1(4d1ac11a5977a4e9cf942c9f1204960c0a895347) ) - ROM_LOAD_VROM( "mpr-19221.36", 0x000006, 0x200000, CRC(24f83e3c) SHA1(c587428fa47e849881bf45487af086db6b09264e) ) - ROM_LOAD_VROM( "mpr-19222.37", 0x000004, 0x200000, CRC(61a6aa7d) SHA1(cc26020b2f904f68822111073b595ee0cc8b2e0c) ) - ROM_LOAD_VROM( "mpr-19223.38", 0x00000a, 0x200000, CRC(1a8c1980) SHA1(43b8efb019c8a20fe38f95050fe60dfe9bf322f0) ) - ROM_LOAD_VROM( "mpr-19224.39", 0x000008, 0x200000, CRC(0a79a1bd) SHA1(1df71cf77ea8611462380a449eb99199664b3da3) ) - ROM_LOAD_VROM( "mpr-19225.40", 0x00000e, 0x200000, CRC(91a985eb) SHA1(5a842a260e4a78f5463222db44f13b068fa70b23) ) - ROM_LOAD_VROM( "mpr-19226.41", 0x00000c, 0x200000, CRC(00091722) SHA1(ef86db36b4b91a66b3e401c3c91735b9d28da2e2) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19231.21", 0x000000, 0x020000, CRC(f2ae2558) SHA1(7ab5fc508ffd1b0c9f3e70f4d3edeae44e3a0dc4) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-19209.22", 0x000000, 0x400000, CRC(3715e38c) SHA1(b11dbf8a5840990e9697c53b4796cd70ad91f6a1) ) - ROM_LOAD( "mpr-19210.24", 0x400000, 0x400000, CRC(c03d6502) SHA1(4ca49fe5dd5105ca5f78f4740477beb64137d4be) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( bass ) /* step 1.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20643.17", 0x600006, 0x080000, CRC(daf02716) SHA1(b968f8ca602c78b9ca49969ff01f9440f175049a) ) - ROM_LOAD64_WORD_SWAP( "epr-20644.18", 0x600004, 0x080000, CRC(c28db2b6) SHA1(0b12fe9e5189714b1aca79c4bba4be57a9e0d5fd) ) - ROM_LOAD64_WORD_SWAP( "epr-20645.19", 0x600002, 0x080000, CRC(8eefa2b0) SHA1(130ce2a58daa2eba6e56e1f49488017ab871bb7d) ) - ROM_LOAD64_WORD_SWAP( "epr-20646.20", 0x600000, 0x080000, CRC(d740ae06) SHA1(f6c00b9f3f8cf67c8bd8fff73c64bc0c14d364c4) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20256.1", 0x800006, 0x400000, CRC(115302ac) SHA1(45f60aa9f91c9a5821a14647e5ac4d53caf71d5f) ) - ROM_LOAD64_WORD_SWAP( "mpr-20257.2", 0x800004, 0x400000, CRC(025bc06d) SHA1(e774021d8d884871e840100ba6f4c16299233a51) ) - ROM_LOAD64_WORD_SWAP( "mpr-20258.3", 0x800002, 0x400000, CRC(7b78b071) SHA1(f2b29a1238c9eae0a7a68c91a9728ac31f05ef7d) ) - ROM_LOAD64_WORD_SWAP( "mpr-20259.4", 0x800000, 0x400000, CRC(40052562) SHA1(2361fd299b76b1c0d112f1fed85bde16e1564382) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20260.5", 0x1800006, 0x400000, CRC(c56b4c10) SHA1(a0a81d4f05df5b8584c2dca53993c01a35d38812) ) - ROM_LOAD64_WORD_SWAP( "mpr-20261.6", 0x1800004, 0x400000, CRC(b1e9d44a) SHA1(dfe8c5ed848afd48040775bb5a440c590188272c) ) - ROM_LOAD64_WORD_SWAP( "mpr-20262.7", 0x1800002, 0x400000, CRC(52b0674d) SHA1(c9f817b46dc7fcd04dfc2bbc4b1d82b1f41fe258) ) - ROM_LOAD64_WORD_SWAP( "mpr-20263.8", 0x1800000, 0x400000, CRC(1cf4cba9) SHA1(2884bb00990ab4bdad0d524937123c2936523cbb) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20264.9", 0x2800006, 0x400000, CRC(8d995196) SHA1(ff410d80353956ee8e770d7b9e9dabac87ee76cc) ) - ROM_LOAD64_WORD_SWAP( "mpr-20265.10", 0x2800004, 0x400000, CRC(28f76e3e) SHA1(5446e0a0df60d77112bd71c726291fdbba7df284) ) - ROM_LOAD64_WORD_SWAP( "mpr-20266.11", 0x2800002, 0x400000, CRC(abd2db85) SHA1(ebe752071562c532e6ad494f285ff4d0b5050611) ) - ROM_LOAD64_WORD_SWAP( "mpr-20267.12", 0x2800000, 0x400000, CRC(48989191) SHA1(ddbf787ec5dae298ab29847f117eae2ce1ff935e) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20270.26", 0x000002, 0x200000, CRC(df68a7a7) SHA1(5d610962dd87c010a094fe2ce8d13408595b4ae4) ) - ROM_LOAD_VROM( "mpr-20271.27", 0x000000, 0x200000, CRC(4b01c3a4) SHA1(8d47109e7f410c9d34d57b22adfe1c3092e70074) ) - ROM_LOAD_VROM( "mpr-20272.28", 0x000006, 0x200000, CRC(a658da23) SHA1(b96270c64cf75625960fa7c03411af595880353f) ) - ROM_LOAD_VROM( "mpr-20273.29", 0x000004, 0x200000, CRC(577e9ffa) SHA1(b004fa10a073e6f4715b417da817051752db5636) ) - ROM_LOAD_VROM( "mpr-20274.30", 0x00000a, 0x200000, CRC(7c7056ae) SHA1(79f6e0ac65f9e80875946b2e73cf9437ecf73407) ) - ROM_LOAD_VROM( "mpr-20275.31", 0x000008, 0x200000, CRC(e739f77a) SHA1(6547c4bc0925af6e07beab54377a174a9c17e9fa) ) - ROM_LOAD_VROM( "mpr-20276.32", 0x00000e, 0x200000, CRC(cbf966c0) SHA1(7c63506d01b52c8ab86fe0dc9ac774e2d540f7c5) ) - ROM_LOAD_VROM( "mpr-20277.33", 0x00000c, 0x200000, CRC(9c75200b) SHA1(b39f571eeab11a619ab964d78a2ba0aa7b1dd24f) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20278.34", 0x000002, 0x200000, CRC(db3991ba) SHA1(7854a047741042f087a146882e27f2624f1f9e98) ) - ROM_LOAD_VROM( "mpr-20279.35", 0x000000, 0x200000, CRC(995a11b8) SHA1(eddd32fc3688d12458c5ffb3b3e70459947889a2) ) - ROM_LOAD_VROM( "mpr-20280.36", 0x000006, 0x200000, CRC(c2c8f9f5) SHA1(dd30c1fbece0a3dc8dad2d9d87e58a9f3798f4a2) ) - ROM_LOAD_VROM( "mpr-20281.37", 0x000004, 0x200000, CRC(da84b967) SHA1(dfc13942adc9cf438e70470cb17f4d1f846c4c1a) ) - ROM_LOAD_VROM( "mpr-20282.38", 0x00000a, 0x200000, CRC(1869ff49) SHA1(1368123edfd9c93d1ee591bf40ea110deeac88cf) ) - ROM_LOAD_VROM( "mpr-20283.39", 0x000008, 0x200000, CRC(7d8fb469) SHA1(ad95fec786e9181d91a6ea18808bbf2772e9be6a) ) - ROM_LOAD_VROM( "mpr-20284.40", 0x00000e, 0x200000, CRC(5c7f3a6f) SHA1(d242bc7ad213a79203cd6a060229c356ec0867e7) ) - ROM_LOAD_VROM( "mpr-20285.41", 0x00000c, 0x200000, CRC(4aadc573) SHA1(65aef06c8c48196a0c1f630529ae2248323c5747) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20313.21", 0x000000, 0x080000, CRC(863a7857) SHA1(72384dc6d7613806ab6bb84d935a3b0497e9e9d2) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20268.22", 0x000000, 0x400000, CRC(3631e93e) SHA1(3991d6cf03e4f39733d467c483857eac874505d1) ) - ROM_LOAD( "mpr-20269.24", 0x400000, 0x400000, CRC(105a3181) SHA1(022cbce1d01366461a584ff6225ded40bcb9000b) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( getbass ) /* step 1.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20309.17", 0x600006, 0x080000, CRC(a42e1033) SHA1(a834eb973e9529338413220a2d8e66ce98d6cb31) ) - ROM_LOAD64_WORD_SWAP( "epr-20310.18", 0x600004, 0x080000, CRC(4efcddc9) SHA1(d1362c2a844b605901083e875a6aad817401eb0a) ) - ROM_LOAD64_WORD_SWAP( "epr-20311.19", 0x600002, 0x080000, CRC(f721050d) SHA1(320a0bd29ac530760d941e54fec2dbc923d6d0f2) ) - ROM_LOAD64_WORD_SWAP( "epr-20312.20", 0x600000, 0x080000, CRC(9d8b8b58) SHA1(6e91aa6a56593e3df8909d149b0c8da189bfbe82) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20256.1", 0x800006, 0x400000, CRC(115302ac) SHA1(45f60aa9f91c9a5821a14647e5ac4d53caf71d5f) ) - ROM_LOAD64_WORD_SWAP( "mpr-20257.2", 0x800004, 0x400000, CRC(025bc06d) SHA1(e774021d8d884871e840100ba6f4c16299233a51) ) - ROM_LOAD64_WORD_SWAP( "mpr-20258.3", 0x800002, 0x400000, CRC(7b78b071) SHA1(f2b29a1238c9eae0a7a68c91a9728ac31f05ef7d) ) - ROM_LOAD64_WORD_SWAP( "mpr-20259.4", 0x800000, 0x400000, CRC(40052562) SHA1(2361fd299b76b1c0d112f1fed85bde16e1564382) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20260.5", 0x1800006, 0x400000, CRC(c56b4c10) SHA1(a0a81d4f05df5b8584c2dca53993c01a35d38812) ) - ROM_LOAD64_WORD_SWAP( "mpr-20261.6", 0x1800004, 0x400000, CRC(b1e9d44a) SHA1(dfe8c5ed848afd48040775bb5a440c590188272c) ) - ROM_LOAD64_WORD_SWAP( "mpr-20262.7", 0x1800002, 0x400000, CRC(52b0674d) SHA1(c9f817b46dc7fcd04dfc2bbc4b1d82b1f41fe258) ) - ROM_LOAD64_WORD_SWAP( "mpr-20263.8", 0x1800000, 0x400000, CRC(1cf4cba9) SHA1(2884bb00990ab4bdad0d524937123c2936523cbb) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20264.9", 0x2800006, 0x400000, CRC(8d995196) SHA1(ff410d80353956ee8e770d7b9e9dabac87ee76cc) ) - ROM_LOAD64_WORD_SWAP( "mpr-20265.10", 0x2800004, 0x400000, CRC(28f76e3e) SHA1(5446e0a0df60d77112bd71c726291fdbba7df284) ) - ROM_LOAD64_WORD_SWAP( "mpr-20266.11", 0x2800002, 0x400000, CRC(abd2db85) SHA1(ebe752071562c532e6ad494f285ff4d0b5050611) ) - ROM_LOAD64_WORD_SWAP( "mpr-20267.12", 0x2800000, 0x400000, CRC(48989191) SHA1(ddbf787ec5dae298ab29847f117eae2ce1ff935e) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20270.26", 0x000002, 0x200000, CRC(df68a7a7) SHA1(5d610962dd87c010a094fe2ce8d13408595b4ae4) ) - ROM_LOAD_VROM( "mpr-20271.27", 0x000000, 0x200000, CRC(4b01c3a4) SHA1(8d47109e7f410c9d34d57b22adfe1c3092e70074) ) - ROM_LOAD_VROM( "mpr-20272.28", 0x000006, 0x200000, CRC(a658da23) SHA1(b96270c64cf75625960fa7c03411af595880353f) ) - ROM_LOAD_VROM( "mpr-20273.29", 0x000004, 0x200000, CRC(577e9ffa) SHA1(b004fa10a073e6f4715b417da817051752db5636) ) - ROM_LOAD_VROM( "mpr-20274.30", 0x00000a, 0x200000, CRC(7c7056ae) SHA1(79f6e0ac65f9e80875946b2e73cf9437ecf73407) ) - ROM_LOAD_VROM( "mpr-20275.31", 0x000008, 0x200000, CRC(e739f77a) SHA1(6547c4bc0925af6e07beab54377a174a9c17e9fa) ) - ROM_LOAD_VROM( "mpr-20276.32", 0x00000e, 0x200000, CRC(cbf966c0) SHA1(7c63506d01b52c8ab86fe0dc9ac774e2d540f7c5) ) - ROM_LOAD_VROM( "mpr-20277.33", 0x00000c, 0x200000, CRC(9c75200b) SHA1(b39f571eeab11a619ab964d78a2ba0aa7b1dd24f) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20278.34", 0x000002, 0x200000, CRC(db3991ba) SHA1(7854a047741042f087a146882e27f2624f1f9e98) ) - ROM_LOAD_VROM( "mpr-20279.35", 0x000000, 0x200000, CRC(995a11b8) SHA1(eddd32fc3688d12458c5ffb3b3e70459947889a2) ) - ROM_LOAD_VROM( "mpr-20280.36", 0x000006, 0x200000, CRC(c2c8f9f5) SHA1(dd30c1fbece0a3dc8dad2d9d87e58a9f3798f4a2) ) - ROM_LOAD_VROM( "mpr-20281.37", 0x000004, 0x200000, CRC(da84b967) SHA1(dfc13942adc9cf438e70470cb17f4d1f846c4c1a) ) - ROM_LOAD_VROM( "mpr-20282.38", 0x00000a, 0x200000, CRC(1869ff49) SHA1(1368123edfd9c93d1ee591bf40ea110deeac88cf) ) - ROM_LOAD_VROM( "mpr-20283.39", 0x000008, 0x200000, CRC(7d8fb469) SHA1(ad95fec786e9181d91a6ea18808bbf2772e9be6a) ) - ROM_LOAD_VROM( "mpr-20284.40", 0x00000e, 0x200000, CRC(5c7f3a6f) SHA1(d242bc7ad213a79203cd6a060229c356ec0867e7) ) - ROM_LOAD_VROM( "mpr-20285.41", 0x00000c, 0x200000, CRC(4aadc573) SHA1(65aef06c8c48196a0c1f630529ae2248323c5747) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20313.21", 0x000000, 0x080000, CRC(863a7857) SHA1(72384dc6d7613806ab6bb84d935a3b0497e9e9d2) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20268.22", 0x000000, 0x400000, CRC(3631e93e) SHA1(3991d6cf03e4f39733d467c483857eac874505d1) ) - ROM_LOAD( "mpr-20269.24", 0x400000, 0x400000, CRC(105a3181) SHA1(022cbce1d01366461a584ff6225ded40bcb9000b) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( lostwsga ) /* Step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19939.17", 0x600006, 0x080000, CRC(8788b939) SHA1(30932057f763545568526f85977aa0afc4b66e7d) ) - ROM_LOAD64_WORD_SWAP( "epr-19938.18", 0x600004, 0x080000, CRC(38afe27a) SHA1(718a238ee246eeed9fa698b58493806932d0e7cb) ) - ROM_LOAD64_WORD_SWAP( "epr-19937.19", 0x600002, 0x080000, CRC(9dbf5712) SHA1(ca5923bb5a0b7702391dcacc20e863a7f615929d) ) - ROM_LOAD64_WORD_SWAP( "epr-19936.20", 0x600000, 0x080000, CRC(2f1ca664) SHA1(9138e28ad6c0219b4b3a4609136ed69f484de9a3) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19918.1", 0x800006, 0x400000, CRC(95b690e9) SHA1(50b71aa41372b9acda1db2e0b7ac70707a5cca4b) ) - ROM_LOAD64_WORD_SWAP( "mpr-19919.2", 0x800004, 0x400000, CRC(ff119949) SHA1(2f2648c2eeb8be2838188c5ce65a932c5e6803a6) ) - ROM_LOAD64_WORD_SWAP( "mpr-19920.3", 0x800002, 0x400000, CRC(8df33574) SHA1(671cfee1e5f304a480d8f4a9d44d0315b6839f99) ) - ROM_LOAD64_WORD_SWAP( "mpr-19921.4", 0x800000, 0x400000, CRC(9af3227f) SHA1(f1232ee486b974409f25d94ade1b1f50258cc609) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19922.5", 0x1800006, 0x400000, CRC(4dfd7fc6) SHA1(7fe7445dbf2c1a0b03c1aec40c4e27b391178472) ) - ROM_LOAD64_WORD_SWAP( "mpr-19923.6", 0x1800004, 0x400000, CRC(ed515cb2) SHA1(7604f7bd277a2fc0855effe24b03702878076c13) ) - ROM_LOAD64_WORD_SWAP( "mpr-19924.7", 0x1800002, 0x400000, CRC(4ee3ddc5) SHA1(37b1ca13a7442ae2dedd0ced6c222846c3690984) ) - ROM_LOAD64_WORD_SWAP( "mpr-19925.8", 0x1800000, 0x400000, CRC(cfa4bb49) SHA1(2584fe57f0e117ff64eb34bc4bb782912a379bd3) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19926.9", 0x2800006, 0x400000, CRC(05a232e0) SHA1(712db7664be2efb6c93181194316a7436c40e638) ) - ROM_LOAD64_WORD_SWAP( "mpr-19927.10", 0x2800004, 0x400000, CRC(0c96ef11) SHA1(789878204f3b07def187a8e6c471530021a8504a) ) - ROM_LOAD64_WORD_SWAP( "mpr-19928.11", 0x2800002, 0x400000, CRC(9afd5d4a) SHA1(e81982b7ca21a4a76d3ca5e307a88ce3c8063a6c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19929.12", 0x2800000, 0x400000, CRC(16491f63) SHA1(3ce750db13c6af5696dc14868487334cc7eb9276) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-19930.13", 0x3800006, 0x400000, CRC(b598c2f2) SHA1(bd9f3b729bec539a9f9b3e021efa9f4248337456) ) - ROM_LOAD64_WORD_SWAP( "mpr-19931.14", 0x3800004, 0x400000, CRC(448a5007) SHA1(d842d5552867026a1f5d6d22aa5c08e2209f5487) ) - ROM_LOAD64_WORD_SWAP( "mpr-19932.15", 0x3800002, 0x400000, CRC(04389385) SHA1(e645159672c6edbaab5bb3eda3bfbac98bd36210) ) - ROM_LOAD64_WORD_SWAP( "mpr-19933.16", 0x3800000, 0x400000, CRC(8e2acd3b) SHA1(9a87086c06d3d22ade96d6057709008663aa3cfa) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19902.26", 0x02, 0x200000, CRC(178bd471) SHA1(dc2cb409081e4fd1176470869e025320449a8d02) ) - ROM_LOAD_VROM( "mpr-19903.27", 0x00, 0x200000, CRC(fe575871) SHA1(db7aec4997b0c9d9a77a611139d53bcfba4bf258) ) - ROM_LOAD_VROM( "mpr-19904.28", 0x06, 0x200000, CRC(57971d7d) SHA1(710705d53e499c5cec6374438d8393a31277f8b7) ) - ROM_LOAD_VROM( "mpr-19905.29", 0x04, 0x200000, CRC(6fa122ee) SHA1(d3e373e7c3f72cee0658820848993c5fd0d4752d) ) - ROM_LOAD_VROM( "mpr-19906.30", 0x0a, 0x200000, CRC(a5b16dd9) SHA1(956a3dbbb101effe92c7a9be3207b9882cf09882) ) - ROM_LOAD_VROM( "mpr-19907.31", 0x08, 0x200000, CRC(84a425cd) SHA1(156541d9cacc0c57ac8d4e60f5ed85a87c7608e7) ) - ROM_LOAD_VROM( "mpr-19908.32", 0x0e, 0x200000, CRC(7702aa7c) SHA1(0ef4f56c95a6779a14b7df7c4e7b83bd219cb67d) ) - ROM_LOAD_VROM( "mpr-19909.33", 0x0c, 0x200000, CRC(8fca65f9) SHA1(17350103ddf0a2efdcde1c1f17d28800334d723f) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19910.34", 0x02, 0x200000, CRC(1ef585e2) SHA1(69583635a52aace7986dd8e8139482d685547b7a) ) - ROM_LOAD_VROM( "mpr-19911.35", 0x00, 0x200000, CRC(ca26a48d) SHA1(407434d74cb205211261e08bb633f5fc1863e495) ) - ROM_LOAD_VROM( "mpr-19912.36", 0x06, 0x200000, CRC(ffe000e0) SHA1(d5a2fe8a6ddd5efb934af9f369b24e4508be3143) ) - ROM_LOAD_VROM( "mpr-19913.37", 0x04, 0x200000, CRC(c003049e) SHA1(d3e26531fac33e36c01cdbc0d66f41b918af4c4d) ) - ROM_LOAD_VROM( "mpr-19914.38", 0x0a, 0x200000, CRC(3c21a953) SHA1(1968ba68298e9e73840aa8737dd6c7ad7220cff0) ) - ROM_LOAD_VROM( "mpr-19915.39", 0x08, 0x200000, CRC(fd0f2a2b) SHA1(f47bcbc0a4564682578dde454b4f42ca1a8c6b87) ) - ROM_LOAD_VROM( "mpr-19916.40", 0x0e, 0x200000, CRC(10b0c52e) SHA1(1076352f9a0484815a4f14e66485337a6d5b565e) ) - ROM_LOAD_VROM( "mpr-19917.41", 0x0c, 0x200000, CRC(3035833b) SHA1(e55a225aa1268bcfcc3381d48fc7aaf75f6e1839) ) - - ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19940.21", 0x080000, 0x080000, CRC(b06ffe5f) SHA1(1b49c2fbc3f188168828daf7f7f56a04c394e832) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-19934.22", 0x000000, 0x200000, CRC(661b09d0) SHA1(cc4a30aa9fe17964808a7ae967de8f64da36379a) ) - ROM_LOAD( "mpr-19935.24", 0x200000, 0x200000, CRC(6436e483) SHA1(f81b846e7898ec0172b50d74bb7f9062b81f38a8) ) - ROM_LOAD( "mpr-19934.22", 0x400000, 0x200000, CRC(661b09d0) SHA1(cc4a30aa9fe17964808a7ae967de8f64da36379a) ) - ROM_LOAD( "mpr-19935.24", 0x600000, 0x200000, CRC(6436e483) SHA1(f81b846e7898ec0172b50d74bb7f9062b81f38a8) ) - - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs2 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20467.17", 0x400006, 0x100000, CRC(25d7ae73) SHA1(433a7c1dac1bd5524b018da2ed09f937d527ac3e) ) - ROM_LOAD64_WORD_SWAP( "epr-20468.18", 0x400004, 0x100000, CRC(f0f0b6ea) SHA1(b3f545e5a4dd45b97df938093251cc7845c2a1f9) ) - ROM_LOAD64_WORD_SWAP( "epr-20469.19", 0x400002, 0x100000, CRC(9d7521f6) SHA1(9efcb5e6a9add4331c5ea60998afce792b8d6623) ) - ROM_LOAD64_WORD_SWAP( "epr-20470.20", 0x400000, 0x100000, CRC(2f62b292) SHA1(b38db0d7b690e7f9344adf7ee36037196bb521d2) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19769.1", 0x800006, 0x400000, CRC(dc020031) SHA1(35eba49a237c1c647dbf13024e664e2cb09f38b5) ) - ROM_LOAD64_WORD_SWAP( "mpr-19770.2", 0x800004, 0x400000, CRC(91f690b0) SHA1(e70482b255bdc37def897842313c2cb592dd3c6c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19771.3", 0x800002, 0x400000, CRC(189c510f) SHA1(9ebe3c4d98fc57744104608feef7c4e00c0dfd15) ) - ROM_LOAD64_WORD_SWAP( "mpr-19772.4", 0x800000, 0x400000, CRC(6db7b9d0) SHA1(098daad081c8e3ab5dc88e5a8d453b82101c5fc4) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19773.5", 0x1800006, 0x400000, CRC(4e381ae7) SHA1(8ada8de80e019d521d8a3dbdc832745478c84a3d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19774.6", 0x1800004, 0x400000, CRC(1d61d287) SHA1(f0ab5f687570fa3e33a87da9130859f804c8fc01) ) - ROM_LOAD64_WORD_SWAP( "mpr-19775.7", 0x1800002, 0x400000, CRC(a6b32bd9) SHA1(5e2e1e779ff11620a3cf2a8756f2ea08e46d0839) ) - ROM_LOAD64_WORD_SWAP( "mpr-19776.8", 0x1800000, 0x400000, CRC(5b31c7c1) SHA1(7821c5af52a9551be5358aae7df8cfddd58f0fb6) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19777.9", 0x2800006, 0x400000, CRC(c8f216a6) SHA1(0ec700ef15094f6746bbc886e7045329ccebb5d1) ) - ROM_LOAD64_WORD_SWAP( "mpr-19778.10", 0x2800004, 0x400000, CRC(2192b189) SHA1(63f81ab0bd099ef77470cc19fd6d218de72d7876) ) - ROM_LOAD64_WORD_SWAP( "mpr-19779.11", 0x2800002, 0x400000, CRC(2242b21b) SHA1(b5834c19a0a54fe38cac22cfbc2a1e14543aee9d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19780.12", 0x2800000, 0x400000, CRC(38508791) SHA1(0e6d629a6e4d11368a367d74f44bc805805f4365) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-19781.13", 0x3800006, 0x400000, CRC(783213f4) SHA1(042c0c0d8604d9d73f581064b0b31234ec7b81b2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19782.14", 0x3800004, 0x400000, CRC(43b43eef) SHA1(8a8b40581a13f56ab2da75f049ba3101a4d3adb4) ) - ROM_LOAD64_WORD_SWAP( "mpr-19783.15", 0x3800002, 0x400000, CRC(47c3d726) SHA1(99ca84b9318c45721ccc5053a909b6ef67a6671c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19784.16", 0x3800000, 0x400000, CRC(a1cc70be) SHA1(c0bb9e78ae9a45c03945b9bc647da129f6171812) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x400000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19787.26", 0x000002, 0x200000, CRC(856cc4ad) SHA1(a8856ee407c10b021f00f5fd2180dfae4cad2dad) ) - ROM_LOAD_VROM( "mpr-19788.27", 0x000000, 0x200000, CRC(72ef970a) SHA1(ee4af92444e7da61094b5eb5b8469b78aeeb8a32) ) - ROM_LOAD_VROM( "mpr-19789.28", 0x000006, 0x200000, CRC(076add9a) SHA1(117156fd7b802807ee2908dc8a1edb1cd79f1730) ) - ROM_LOAD_VROM( "mpr-19790.29", 0x000004, 0x200000, CRC(74ce238c) SHA1(f6662793d1f2f3c36d7548b912cd40b2ce58753e) ) - ROM_LOAD_VROM( "mpr-19791.30", 0x00000a, 0x200000, CRC(75a98f96) SHA1(9c4cdc5a782cac957fc43952e8f3e35d54f23d1c) ) - ROM_LOAD_VROM( "mpr-19792.31", 0x000008, 0x200000, CRC(85c81633) SHA1(e4311ca92e77502626b312d38a5069ceed9e679f) ) - ROM_LOAD_VROM( "mpr-19793.32", 0x00000e, 0x200000, CRC(7f288cc4) SHA1(71e42ac564c85402b35777e28fff2dce161cbf46) ) - ROM_LOAD_VROM( "mpr-19794.33", 0x00000c, 0x200000, CRC(e0c1c370) SHA1(8efc2940857109bbe74fb7ce1e6fb11d601630f2) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19795.34", 0x000002, 0x200000, CRC(90989b20) SHA1(bf96f5770ffaae3b625a906461b8ea755baf9756) ) - ROM_LOAD_VROM( "mpr-19796.35", 0x000000, 0x200000, CRC(5d1aab8d) SHA1(e004c30b9bc8fcad23459e162e9db0c1afd0d5b1) ) - ROM_LOAD_VROM( "mpr-19797.36", 0x000006, 0x200000, CRC(f5edc891) SHA1(e8a23be9a81568892f95e7c66c28ea8d7bd0f508) ) - ROM_LOAD_VROM( "mpr-19798.37", 0x000004, 0x200000, CRC(ae2da90f) SHA1(8243d1f81faa57d5ff5e1f64bcd33cff59219b69) ) - ROM_LOAD_VROM( "mpr-19799.38", 0x00000a, 0x200000, CRC(92b18ad7) SHA1(7be46d7ae2233337d866938ac803589156bfde94) ) - ROM_LOAD_VROM( "mpr-19800.39", 0x000008, 0x200000, CRC(4a57b16c) SHA1(341952460b2f7718e63d5f43a86f507de52bf421) ) - ROM_LOAD_VROM( "mpr-19801.40", 0x00000e, 0x200000, CRC(beb79a00) SHA1(63385ff70bf9ae223e6acfa1b6cb2d641afa2790) ) - ROM_LOAD_VROM( "mpr-19802.41", 0x00000c, 0x200000, CRC(f2c3a7b7) SHA1(d72fafe75baa3542ee27fed05230cd5da99aa459) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19807.21", 0x000000, 0x080000, CRC(9641cbaf) SHA1(aaffde7678b40bc940be04fb107efc4d0d416ea1) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-19785.22", 0x000000, 0x400000, CRC(e7d190e3) SHA1(f263af149e303429f469a3ab601b87461256aaa7) ) - ROM_LOAD( "mpr-19786.24", 0x400000, 0x400000, CRC(b08d889b) SHA1(790b5b2d62a28c39d43aeec9ffb365ccd9dc93af) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs215 ) /* Step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-19900.17", 0x600006, 0x080000, CRC(8fb6045d) SHA1(88497eafc23ba70ab4a43de552a16caccd8dccbe) ) - ROM_LOAD64_WORD_SWAP( "epr-19899.18", 0x600004, 0x080000, CRC(8cc2be9f) SHA1(ec82b1312c8d58adb200f4d7f6f9a9c8214415d5) ) - ROM_LOAD64_WORD_SWAP( "epr-19898.19", 0x600002, 0x080000, CRC(4389d9ce) SHA1(a5f412417484fdd70dc3dfb2f0cb5554ed4fc7f3) ) - ROM_LOAD64_WORD_SWAP( "epr-19897.20", 0x600000, 0x080000, CRC(25a722a9) SHA1(190b7d002009d91ac4521d180f7519cbeb49da30) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-19769.1", 0x800006, 0x400000, CRC(dc020031) SHA1(35eba49a237c1c647dbf13024e664e2cb09f38b5) ) - ROM_LOAD64_WORD_SWAP( "mpr-19770.2", 0x800004, 0x400000, CRC(91f690b0) SHA1(e70482b255bdc37def897842313c2cb592dd3c6c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19771.3", 0x800002, 0x400000, CRC(189c510f) SHA1(9ebe3c4d98fc57744104608feef7c4e00c0dfd15) ) - ROM_LOAD64_WORD_SWAP( "mpr-19772.4", 0x800000, 0x400000, CRC(6db7b9d0) SHA1(098daad081c8e3ab5dc88e5a8d453b82101c5fc4) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19773.5", 0x1800006, 0x400000, CRC(4e381ae7) SHA1(8ada8de80e019d521d8a3dbdc832745478c84a3d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19774.6", 0x1800004, 0x400000, CRC(1d61d287) SHA1(f0ab5f687570fa3e33a87da9130859f804c8fc01) ) - ROM_LOAD64_WORD_SWAP( "mpr-19775.7", 0x1800002, 0x400000, CRC(a6b32bd9) SHA1(5e2e1e779ff11620a3cf2a8756f2ea08e46d0839) ) - ROM_LOAD64_WORD_SWAP( "mpr-19776.8", 0x1800000, 0x400000, CRC(5b31c7c1) SHA1(7821c5af52a9551be5358aae7df8cfddd58f0fb6) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-19777.9", 0x2800006, 0x400000, CRC(c8f216a6) SHA1(0ec700ef15094f6746bbc886e7045329ccebb5d1) ) - ROM_LOAD64_WORD_SWAP( "mpr-19778.10", 0x2800004, 0x400000, CRC(2192b189) SHA1(63f81ab0bd099ef77470cc19fd6d218de72d7876) ) - ROM_LOAD64_WORD_SWAP( "mpr-19779.11", 0x2800002, 0x400000, CRC(2242b21b) SHA1(b5834c19a0a54fe38cac22cfbc2a1e14543aee9d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19780.12", 0x2800000, 0x400000, CRC(38508791) SHA1(0e6d629a6e4d11368a367d74f44bc805805f4365) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-19781.13", 0x3800006, 0x400000, CRC(783213f4) SHA1(042c0c0d8604d9d73f581064b0b31234ec7b81b2) ) - ROM_LOAD64_WORD_SWAP( "mpr-19782.14", 0x3800004, 0x400000, CRC(43b43eef) SHA1(8a8b40581a13f56ab2da75f049ba3101a4d3adb4) ) - ROM_LOAD64_WORD_SWAP( "mpr-19783.15", 0x3800002, 0x400000, CRC(47c3d726) SHA1(99ca84b9318c45721ccc5053a909b6ef67a6671c) ) - ROM_LOAD64_WORD_SWAP( "mpr-19784.16", 0x3800000, 0x400000, CRC(a1cc70be) SHA1(c0bb9e78ae9a45c03945b9bc647da129f6171812) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19787.26", 0x000002, 0x200000, CRC(856cc4ad) SHA1(a8856ee407c10b021f00f5fd2180dfae4cad2dad) ) - ROM_LOAD_VROM( "mpr-19788.27", 0x000000, 0x200000, CRC(72ef970a) SHA1(ee4af92444e7da61094b5eb5b8469b78aeeb8a32) ) - ROM_LOAD_VROM( "mpr-19789.28", 0x000006, 0x200000, CRC(076add9a) SHA1(117156fd7b802807ee2908dc8a1edb1cd79f1730) ) - ROM_LOAD_VROM( "mpr-19790.29", 0x000004, 0x200000, CRC(74ce238c) SHA1(f6662793d1f2f3c36d7548b912cd40b2ce58753e) ) - ROM_LOAD_VROM( "mpr-19791.30", 0x00000a, 0x200000, CRC(75a98f96) SHA1(9c4cdc5a782cac957fc43952e8f3e35d54f23d1c) ) - ROM_LOAD_VROM( "mpr-19792.31", 0x000008, 0x200000, CRC(85c81633) SHA1(e4311ca92e77502626b312d38a5069ceed9e679f) ) - ROM_LOAD_VROM( "mpr-19793.32", 0x00000e, 0x200000, CRC(7f288cc4) SHA1(71e42ac564c85402b35777e28fff2dce161cbf46) ) - ROM_LOAD_VROM( "mpr-19794.33", 0x00000c, 0x200000, CRC(e0c1c370) SHA1(8efc2940857109bbe74fb7ce1e6fb11d601630f2) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19795.34", 0x000002, 0x200000, CRC(90989b20) SHA1(bf96f5770ffaae3b625a906461b8ea755baf9756) ) - ROM_LOAD_VROM( "mpr-19796.35", 0x000000, 0x200000, CRC(5d1aab8d) SHA1(e004c30b9bc8fcad23459e162e9db0c1afd0d5b1) ) - ROM_LOAD_VROM( "mpr-19797.36", 0x000006, 0x200000, CRC(f5edc891) SHA1(e8a23be9a81568892f95e7c66c28ea8d7bd0f508) ) - ROM_LOAD_VROM( "mpr-19798.37", 0x000004, 0x200000, CRC(ae2da90f) SHA1(8243d1f81faa57d5ff5e1f64bcd33cff59219b69) ) - ROM_LOAD_VROM( "mpr-19799.38", 0x00000a, 0x200000, CRC(92b18ad7) SHA1(7be46d7ae2233337d866938ac803589156bfde94) ) - ROM_LOAD_VROM( "mpr-19800.39", 0x000008, 0x200000, CRC(4a57b16c) SHA1(341952460b2f7718e63d5f43a86f507de52bf421) ) - ROM_LOAD_VROM( "mpr-19801.40", 0x00000e, 0x200000, CRC(beb79a00) SHA1(63385ff70bf9ae223e6acfa1b6cb2d641afa2790) ) - ROM_LOAD_VROM( "mpr-19802.41", 0x00000c, 0x200000, CRC(f2c3a7b7) SHA1(d72fafe75baa3542ee27fed05230cd5da99aa459) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-19807.21", 0x000000, 0x080000, CRC(9641cbaf) SHA1(aaffde7678b40bc940be04fb107efc4d0d416ea1) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-19785.22", 0x000000, 0x400000, CRC(e7d190e3) SHA1(f263af149e303429f469a3ab601b87461256aaa7) ) - ROM_LOAD( "mpr-19786.24", 0x400000, 0x400000, CRC(b08d889b) SHA1(790b5b2d62a28c39d43aeec9ffb365ccd9dc93af) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs298 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20917.17", 0x400006, 0x100000, CRC(c3bbb270) SHA1(16b2342031ff72408f2290e775df5c8aa344c2e4) ) - ROM_LOAD64_WORD_SWAP( "epr-20918.18", 0x400004, 0x100000, CRC(0e9cdc5b) SHA1(356816d0380c791b9d812ce17fa95123d15bb5e9) ) - ROM_LOAD64_WORD_SWAP( "epr-20919.19", 0x400002, 0x100000, CRC(7a0713d2) SHA1(595f962ae852e48fb24aa08d0b8603692acfb1b9) ) - ROM_LOAD64_WORD_SWAP( "epr-20920.20", 0x400000, 0x100000, CRC(428d05fc) SHA1(451e78c7b381e7d84dbac2a3d68ebbd6f1490bad) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20891.1", 0x800006, 0x400000, CRC(9ecb0b39) SHA1(97b2ba2a863b7559923efff315aab04f7dca33b0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20892.2", 0x800004, 0x400000, CRC(8e5d3fe7) SHA1(5fe7ad8577ce46fdd2ea741eb2a98028eee61a82) ) - ROM_LOAD64_WORD_SWAP( "mpr-20893.3", 0x800002, 0x400000, CRC(5c83dcaa) SHA1(2d4794bc6c3bfd4913ee045692b6aec5680825e0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20894.4", 0x800000, 0x400000, CRC(09c065cc) SHA1(9a47c6fd45630549066f58b6872ad885908c6e38) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19773.5", 0x1800006, 0x400000, CRC(4e381ae7) SHA1(8ada8de80e019d521d8a3dbdc832745478c84a3d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19774.6", 0x1800004, 0x400000, CRC(1d61d287) SHA1(f0ab5f687570fa3e33a87da9130859f804c8fc01) ) - ROM_LOAD64_WORD_SWAP( "mpr-19775.7", 0x1800002, 0x400000, CRC(a6b32bd9) SHA1(5e2e1e779ff11620a3cf2a8756f2ea08e46d0839) ) - ROM_LOAD64_WORD_SWAP( "mpr-19776.8", 0x1800000, 0x400000, CRC(5b31c7c1) SHA1(7821c5af52a9551be5358aae7df8cfddd58f0fb6) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20895.9", 0x2800006, 0x400000, CRC(9b51cbf5) SHA1(670cfee991b997d4f7c3d51c48dad1ee032f93ef) ) - ROM_LOAD64_WORD_SWAP( "mpr-20896.10", 0x2800004, 0x400000, CRC(bf1cbd5e) SHA1(a677247d7c94f8d36ffece7824026047db1188e1) ) - ROM_LOAD64_WORD_SWAP( "mpr-20897.11", 0x2800002, 0x400000, CRC(c5cf067a) SHA1(ee9503bee3af238434590f439c87219fe45c91b9) ) - ROM_LOAD64_WORD_SWAP( "mpr-20898.12", 0x2800000, 0x400000, CRC(94040d37) SHA1(4a35a0e1cdfdf18a8b01ea11ae88815bf8e92ff3) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20899.13", 0x3800006, 0x400000, CRC(65422425) SHA1(ad4aba5996c2851f14741c5d0f3d7b65e7e765c5) ) - ROM_LOAD64_WORD_SWAP( "mpr-20900.14", 0x3800004, 0x400000, CRC(7a38b571) SHA1(664be2a614e3ce2cc75fdfb9baff55b6e9d77998) ) - ROM_LOAD64_WORD_SWAP( "mpr-20901.15", 0x3800002, 0x400000, CRC(3492ddc8) SHA1(2a36b91ca58b7cc1c8f7a337d2e40b671780ddeb) ) - ROM_LOAD64_WORD_SWAP( "mpr-20902.16", 0x3800000, 0x400000, CRC(f4d3ff3a) SHA1(da3ceba113bca0ea7bd8f67d39bdd7d0cbe5ff7f) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x400000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19787.26", 0x000002, 0x200000, CRC(856cc4ad) SHA1(a8856ee407c10b021f00f5fd2180dfae4cad2dad) ) - ROM_LOAD_VROM( "mpr-19788.27", 0x000000, 0x200000, CRC(72ef970a) SHA1(ee4af92444e7da61094b5eb5b8469b78aeeb8a32) ) - ROM_LOAD_VROM( "mpr-19789.28", 0x000006, 0x200000, CRC(076add9a) SHA1(117156fd7b802807ee2908dc8a1edb1cd79f1730) ) - ROM_LOAD_VROM( "mpr-19790.29", 0x000004, 0x200000, CRC(74ce238c) SHA1(f6662793d1f2f3c36d7548b912cd40b2ce58753e) ) - ROM_LOAD_VROM( "mpr-19791.30", 0x00000a, 0x200000, CRC(75a98f96) SHA1(9c4cdc5a782cac957fc43952e8f3e35d54f23d1c) ) - ROM_LOAD_VROM( "mpr-19792.31", 0x000008, 0x200000, CRC(85c81633) SHA1(e4311ca92e77502626b312d38a5069ceed9e679f) ) - ROM_LOAD_VROM( "mpr-19793.32", 0x00000e, 0x200000, CRC(7f288cc4) SHA1(71e42ac564c85402b35777e28fff2dce161cbf46) ) - ROM_LOAD_VROM( "mpr-19794.33", 0x00000c, 0x200000, CRC(e0c1c370) SHA1(8efc2940857109bbe74fb7ce1e6fb11d601630f2) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19795.34", 0x000002, 0x200000, CRC(90989b20) SHA1(bf96f5770ffaae3b625a906461b8ea755baf9756) ) - ROM_LOAD_VROM( "mpr-19796.35", 0x000000, 0x200000, CRC(5d1aab8d) SHA1(e004c30b9bc8fcad23459e162e9db0c1afd0d5b1) ) - ROM_LOAD_VROM( "mpr-19797.36", 0x000006, 0x200000, CRC(f5edc891) SHA1(e8a23be9a81568892f95e7c66c28ea8d7bd0f508) ) - ROM_LOAD_VROM( "mpr-19798.37", 0x000004, 0x200000, CRC(ae2da90f) SHA1(8243d1f81faa57d5ff5e1f64bcd33cff59219b69) ) - ROM_LOAD_VROM( "mpr-19799.38", 0x00000a, 0x200000, CRC(92b18ad7) SHA1(7be46d7ae2233337d866938ac803589156bfde94) ) - ROM_LOAD_VROM( "mpr-19800.39", 0x000008, 0x200000, CRC(4a57b16c) SHA1(341952460b2f7718e63d5f43a86f507de52bf421) ) - ROM_LOAD_VROM( "mpr-19801.40", 0x00000e, 0x200000, CRC(beb79a00) SHA1(63385ff70bf9ae223e6acfa1b6cb2d641afa2790) ) - ROM_LOAD_VROM( "mpr-19802.41", 0x00000c, 0x200000, CRC(f2c3a7b7) SHA1(d72fafe75baa3542ee27fed05230cd5da99aa459) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20921.21", 0x000000, 0x080000, CRC(30f032a7) SHA1(d29c9631bd50fabe3d86343f44c37ee535db14a0) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20903.22", 0x000000, 0x400000, CRC(e343e131) SHA1(cb144516e8c6f1e68bcb774a26cdc494383d3e1b) ) - ROM_LOAD( "mpr-20904.24", 0x400000, 0x400000, CRC(21a91b84) SHA1(cd2d7231b8652ff38376b672c47127ce054d1f32) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs29815 ) /* Step 1.5 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20909.17", 0x600006, 0x080000, CRC(3dff0d7e) SHA1(c6a6a103f499cd451796ae2480b8c38c3e87a143) ) - ROM_LOAD64_WORD_SWAP( "epr-20910.18", 0x600004, 0x080000, CRC(dc75a2e3) SHA1(f1b13674ae20b5b964be593171b9d6008d5a51b7) ) - ROM_LOAD64_WORD_SWAP( "epr-20911.19", 0x600002, 0x080000, CRC(acb8fd97) SHA1(2a0ae502283fc8b19ae2bb85b95f66bf80e1bcdf) ) - ROM_LOAD64_WORD_SWAP( "epr-20912.20", 0x600000, 0x080000, CRC(cd2c0538) SHA1(17b66f0cfa0530be3091f974ec959917f2805be1) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20891.1", 0x800006, 0x400000, CRC(9ecb0b39) SHA1(97b2ba2a863b7559923efff315aab04f7dca33b0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20892.2", 0x800004, 0x400000, CRC(8e5d3fe7) SHA1(5fe7ad8577ce46fdd2ea741eb2a98028eee61a82) ) - ROM_LOAD64_WORD_SWAP( "mpr-20893.3", 0x800002, 0x400000, CRC(5c83dcaa) SHA1(2d4794bc6c3bfd4913ee045692b6aec5680825e0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20894.4", 0x800000, 0x400000, CRC(09c065cc) SHA1(9a47c6fd45630549066f58b6872ad885908c6e38) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-19773.5", 0x1800006, 0x400000, CRC(4e381ae7) SHA1(8ada8de80e019d521d8a3dbdc832745478c84a3d) ) - ROM_LOAD64_WORD_SWAP( "mpr-19774.6", 0x1800004, 0x400000, CRC(1d61d287) SHA1(f0ab5f687570fa3e33a87da9130859f804c8fc01) ) - ROM_LOAD64_WORD_SWAP( "mpr-19775.7", 0x1800002, 0x400000, CRC(a6b32bd9) SHA1(5e2e1e779ff11620a3cf2a8756f2ea08e46d0839) ) - ROM_LOAD64_WORD_SWAP( "mpr-19776.8", 0x1800000, 0x400000, CRC(5b31c7c1) SHA1(7821c5af52a9551be5358aae7df8cfddd58f0fb6) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20895.9", 0x2800006, 0x400000, CRC(9b51cbf5) SHA1(670cfee991b997d4f7c3d51c48dad1ee032f93ef) ) - ROM_LOAD64_WORD_SWAP( "mpr-20896.10", 0x2800004, 0x400000, CRC(bf1cbd5e) SHA1(a677247d7c94f8d36ffece7824026047db1188e1) ) - ROM_LOAD64_WORD_SWAP( "mpr-20897.11", 0x2800002, 0x400000, CRC(c5cf067a) SHA1(ee9503bee3af238434590f439c87219fe45c91b9) ) - ROM_LOAD64_WORD_SWAP( "mpr-20898.12", 0x2800000, 0x400000, CRC(94040d37) SHA1(4a35a0e1cdfdf18a8b01ea11ae88815bf8e92ff3) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20899.13", 0x3800006, 0x400000, CRC(65422425) SHA1(ad4aba5996c2851f14741c5d0f3d7b65e7e765c5) ) - ROM_LOAD64_WORD_SWAP( "mpr-20900.14", 0x3800004, 0x400000, CRC(7a38b571) SHA1(664be2a614e3ce2cc75fdfb9baff55b6e9d77998) ) - ROM_LOAD64_WORD_SWAP( "mpr-20901.15", 0x3800002, 0x400000, CRC(3492ddc8) SHA1(2a36b91ca58b7cc1c8f7a337d2e40b671780ddeb) ) - ROM_LOAD64_WORD_SWAP( "mpr-20902.16", 0x3800000, 0x400000, CRC(f4d3ff3a) SHA1(da3ceba113bca0ea7bd8f67d39bdd7d0cbe5ff7f) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x600000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-19787.26", 0x000002, 0x200000, CRC(856cc4ad) SHA1(a8856ee407c10b021f00f5fd2180dfae4cad2dad) ) - ROM_LOAD_VROM( "mpr-19788.27", 0x000000, 0x200000, CRC(72ef970a) SHA1(ee4af92444e7da61094b5eb5b8469b78aeeb8a32) ) - ROM_LOAD_VROM( "mpr-19789.28", 0x000006, 0x200000, CRC(076add9a) SHA1(117156fd7b802807ee2908dc8a1edb1cd79f1730) ) - ROM_LOAD_VROM( "mpr-19790.29", 0x000004, 0x200000, CRC(74ce238c) SHA1(f6662793d1f2f3c36d7548b912cd40b2ce58753e) ) - ROM_LOAD_VROM( "mpr-19791.30", 0x00000a, 0x200000, CRC(75a98f96) SHA1(9c4cdc5a782cac957fc43952e8f3e35d54f23d1c) ) - ROM_LOAD_VROM( "mpr-19792.31", 0x000008, 0x200000, CRC(85c81633) SHA1(e4311ca92e77502626b312d38a5069ceed9e679f) ) - ROM_LOAD_VROM( "mpr-19793.32", 0x00000e, 0x200000, CRC(7f288cc4) SHA1(71e42ac564c85402b35777e28fff2dce161cbf46) ) - ROM_LOAD_VROM( "mpr-19794.33", 0x00000c, 0x200000, CRC(e0c1c370) SHA1(8efc2940857109bbe74fb7ce1e6fb11d601630f2) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-19795.34", 0x000002, 0x200000, CRC(90989b20) SHA1(bf96f5770ffaae3b625a906461b8ea755baf9756) ) - ROM_LOAD_VROM( "mpr-19796.35", 0x000000, 0x200000, CRC(5d1aab8d) SHA1(e004c30b9bc8fcad23459e162e9db0c1afd0d5b1) ) - ROM_LOAD_VROM( "mpr-19797.36", 0x000006, 0x200000, CRC(f5edc891) SHA1(e8a23be9a81568892f95e7c66c28ea8d7bd0f508) ) - ROM_LOAD_VROM( "mpr-19798.37", 0x000004, 0x200000, CRC(ae2da90f) SHA1(8243d1f81faa57d5ff5e1f64bcd33cff59219b69) ) - ROM_LOAD_VROM( "mpr-19799.38", 0x00000a, 0x200000, CRC(92b18ad7) SHA1(7be46d7ae2233337d866938ac803589156bfde94) ) - ROM_LOAD_VROM( "mpr-19800.39", 0x000008, 0x200000, CRC(4a57b16c) SHA1(341952460b2f7718e63d5f43a86f507de52bf421) ) - ROM_LOAD_VROM( "mpr-19801.40", 0x00000e, 0x200000, CRC(beb79a00) SHA1(63385ff70bf9ae223e6acfa1b6cb2d641afa2790) ) - ROM_LOAD_VROM( "mpr-19802.41", 0x00000c, 0x200000, CRC(f2c3a7b7) SHA1(d72fafe75baa3542ee27fed05230cd5da99aa459) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20921.21", 0x000000, 0x080000, CRC(30f032a7) SHA1(d29c9631bd50fabe3d86343f44c37ee535db14a0) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20903.22", 0x000000, 0x400000, CRC(e343e131) SHA1(cb144516e8c6f1e68bcb774a26cdc494383d3e1b) ) - ROM_LOAD( "mpr-20904.24", 0x400000, 0x400000, CRC(21a91b84) SHA1(cd2d7231b8652ff38376b672c47127ce054d1f32) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs2v991 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21535b.17", 0x400006, 0x100000, CRC(76c5fa8e) SHA1(862438198cb7fdd20beeba53e707a7c59e618ad9) ) - ROM_LOAD64_WORD_SWAP( "epr-21536b.18", 0x400004, 0x100000, CRC(1f2bd190) SHA1(19843e6c5626de03eba3cba79c03ce9f2471c183) ) - ROM_LOAD64_WORD_SWAP( "epr-21537b.19", 0x400002, 0x100000, CRC(a8b3fa5c) SHA1(884042590da9eef0fc2557f715c5d6811edb4ce1) ) - ROM_LOAD64_WORD_SWAP( "epr-21538b.20", 0x400000, 0x100000, CRC(b3f0ce2a) SHA1(940b76afe3e66bcd026e74f58a08b13c3925f449) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21497.1", 0x800006, 0x400000, CRC(8ea759a1) SHA1(0d444fa360d93f48e5d6607362a231f97a7685d4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21498.2", 0x800004, 0x400000, CRC(4f53d6e0) SHA1(c8cd14f46d4ac7afdf55035a20d2e9a5ce2b6cde) ) - ROM_LOAD64_WORD_SWAP( "mpr-21499.3", 0x800002, 0x400000, CRC(2cc4c1f1) SHA1(fd0fd747368e798095119a21d82f14778aeaa45e) ) - ROM_LOAD64_WORD_SWAP( "mpr-21500.4", 0x800000, 0x400000, CRC(8c43964b) SHA1(cf3a6e9402f9ba532fca73f6838478558fb9a3ba) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21501.5", 0x1800006, 0x400000, CRC(08bc2185) SHA1(6c4c977f68a73d605bdacdc0d76ca89bc7030c04) ) - ROM_LOAD64_WORD_SWAP( "mpr-21502.6", 0x1800004, 0x400000, CRC(921486be) SHA1(bb1261272992cf86e83e0c788788765f05b43bbf) ) - ROM_LOAD64_WORD_SWAP( "mpr-21503.7", 0x1800002, 0x400000, CRC(c9e1de6b) SHA1(d200c3da2c9bc6d4ed60dfa60a77056d25b19037) ) - ROM_LOAD64_WORD_SWAP( "mpr-21504.8", 0x1800000, 0x400000, CRC(7aae557e) SHA1(2128d7dfa52e639858d37eb6100875b9ce3d056f) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-21505.9", 0x2800006, 0x400000, CRC(e169ff72) SHA1(9d407b424403261a224ea15b9476eba16406c4a4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21506.10", 0x2800004, 0x400000, CRC(2c1477c7) SHA1(81ab7d9cef5127e1f0e16f9a94a9ea2acc4530a4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21507.11", 0x2800002, 0x400000, CRC(1d8eb68b) SHA1(634693f066059c738526913498bb18be2f7cd086) ) - ROM_LOAD64_WORD_SWAP( "mpr-21508.12", 0x2800000, 0x400000, CRC(2e8f798e) SHA1(8298df90101dd5850db8fccb7661ca2bc6806b3f) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-21509.13", 0x3800006, 0x400000, CRC(9a65e6b4) SHA1(e96c4bc2782b73490dffd5dcb11b9020077b11a3) ) - ROM_LOAD64_WORD_SWAP( "mpr-21510.14", 0x3800004, 0x400000, CRC(f47489a4) SHA1(8412505002628d7ae3ab766a13e2068a018f3bf3) ) - ROM_LOAD64_WORD_SWAP( "mpr-21511.15", 0x3800002, 0x400000, CRC(5ad9660c) SHA1(da387449292322a89af1cb6746d0fb8cea17575f) ) - ROM_LOAD64_WORD_SWAP( "mpr-21512.16", 0x3800000, 0x400000, CRC(7cb2b05c) SHA1(16edc6642c74d9cef883559ca6ec562d985a43d6) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x400000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21515.26", 0x000002, 0x200000, CRC(8ce9910b) SHA1(7a0d0696e4456d9ebf131041917c5214b7d2e3ec) ) - ROM_LOAD_VROM( "mpr-21516.27", 0x000000, 0x200000, CRC(8971a753) SHA1(00dfdb83a65f4fde337618c346157bb89f398531) ) - ROM_LOAD_VROM( "mpr-21517.28", 0x000006, 0x200000, CRC(55a4533b) SHA1(b5701bbf7780bb9fc386cef4c1835606ab792f91) ) - ROM_LOAD_VROM( "mpr-21518.29", 0x000004, 0x200000, CRC(4134026c) SHA1(2dfe1cbb354affe465c31a18c3ffb83a9bf555c9) ) - ROM_LOAD_VROM( "mpr-21519.30", 0x00000a, 0x200000, CRC(ef6757de) SHA1(d41bbfcc551a4589bac577e311c67f2cba0a49aa) ) - ROM_LOAD_VROM( "mpr-21520.31", 0x000008, 0x200000, CRC(c53be8cc) SHA1(b12dc0327a00b7e056254d2f11f96dbf396a0c91) ) - ROM_LOAD_VROM( "mpr-21521.32", 0x00000e, 0x200000, CRC(abb501dc) SHA1(88cb40b0f795e0de1ff56e1f31bf834fad0c7885) ) - ROM_LOAD_VROM( "mpr-21522.33", 0x00000c, 0x200000, CRC(e3b79973) SHA1(4b6ca16a23bb3e195ca60bee81b2d069f371ff70) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21523.34", 0x000002, 0x200000, CRC(fe4d1eac) SHA1(d222743d25ca92904ec212c66d03b3e3ff0ddbd9) ) - ROM_LOAD_VROM( "mpr-21524.35", 0x000000, 0x200000, CRC(8633b6e9) SHA1(65ec24eb29613831dd28e5338cac14696b0d975d) ) - ROM_LOAD_VROM( "mpr-21525.36", 0x000006, 0x200000, CRC(3c490167) SHA1(6fd46049723e0790b2231301cfa23071cd6ff1f6) ) - ROM_LOAD_VROM( "mpr-21526.37", 0x000004, 0x200000, CRC(5fe5f9b0) SHA1(c708918cfc60f5fd9f6ec49ec1cd3167f2876e30) ) - ROM_LOAD_VROM( "mpr-21527.38", 0x00000a, 0x200000, CRC(10d0fe7e) SHA1(63693b0de43e2eb6efbb3d2dfbe0e2f5bc6810dc) ) - ROM_LOAD_VROM( "mpr-21528.39", 0x000008, 0x200000, CRC(4e346a6c) SHA1(ae34038d5bf6f63ec5ad2e8dd8e06db66147c40e) ) - ROM_LOAD_VROM( "mpr-21529.40", 0x00000e, 0x200000, CRC(9a731a00) SHA1(eca98b142acc02fb28387675e1cb1bc7e4e59b86) ) - ROM_LOAD_VROM( "mpr-21530.41", 0x00000c, 0x200000, CRC(78400d5e) SHA1(9b4546848dbe213f33b02e8ea42743e60a0f763f) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21539.21", 0x000000, 0x080000, CRC(a1d3e00e) SHA1(e03bb31967929a12de9ae21923914e0e3bd96aaa) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21513.22", 0x000000, 0x400000, CRC(cca1cc00) SHA1(ba1fa3b8ef3bff7e116901a0a4bd80d2ae4018bf) ) - ROM_LOAD( "mpr-21514.24", 0x400000, 0x400000, CRC(6cedd292) SHA1(c1f44715697a8bac9d39926bcd6558ec9a9b2319) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( vs299 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21535.17", 0x400006, 0x100000, CRC(976a00bf) SHA1(d4be52ff59faa877b169f96ac509a2196cefb908) ) - ROM_LOAD64_WORD_SWAP( "epr-21536.18", 0x400004, 0x100000, CRC(9af2b0d5) SHA1(6ec296014228782f372611fe774014d252956b63) ) - ROM_LOAD64_WORD_SWAP( "epr-21537.19", 0x400002, 0x100000, CRC(fb37dc16) SHA1(205e7d6dae21ba2cd4c8e37c2acab680c3f5a9b4) ) - ROM_LOAD64_WORD_SWAP( "epr-21538.20", 0x400000, 0x100000, CRC(02df6ac8) SHA1(2259b528264dd30fa38ea06934e2d38b44b32981) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21497.1", 0x800006, 0x400000, CRC(8ea759a1) SHA1(0d444fa360d93f48e5d6607362a231f97a7685d4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21498.2", 0x800004, 0x400000, CRC(4f53d6e0) SHA1(c8cd14f46d4ac7afdf55035a20d2e9a5ce2b6cde) ) - ROM_LOAD64_WORD_SWAP( "mpr-21499.3", 0x800002, 0x400000, CRC(2cc4c1f1) SHA1(fd0fd747368e798095119a21d82f14778aeaa45e) ) - ROM_LOAD64_WORD_SWAP( "mpr-21500.4", 0x800000, 0x400000, CRC(8c43964b) SHA1(cf3a6e9402f9ba532fca73f6838478558fb9a3ba) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21501.5", 0x1800006, 0x400000, CRC(08bc2185) SHA1(6c4c977f68a73d605bdacdc0d76ca89bc7030c04) ) - ROM_LOAD64_WORD_SWAP( "mpr-21502.6", 0x1800004, 0x400000, CRC(921486be) SHA1(bb1261272992cf86e83e0c788788765f05b43bbf) ) - ROM_LOAD64_WORD_SWAP( "mpr-21503.7", 0x1800002, 0x400000, CRC(c9e1de6b) SHA1(d200c3da2c9bc6d4ed60dfa60a77056d25b19037) ) - ROM_LOAD64_WORD_SWAP( "mpr-21504.8", 0x1800000, 0x400000, CRC(7aae557e) SHA1(2128d7dfa52e639858d37eb6100875b9ce3d056f) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-21505.9", 0x2800006, 0x400000, CRC(e169ff72) SHA1(9d407b424403261a224ea15b9476eba16406c4a4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21506.10", 0x2800004, 0x400000, CRC(2c1477c7) SHA1(81ab7d9cef5127e1f0e16f9a94a9ea2acc4530a4) ) - ROM_LOAD64_WORD_SWAP( "mpr-21507.11", 0x2800002, 0x400000, CRC(1d8eb68b) SHA1(634693f066059c738526913498bb18be2f7cd086) ) - ROM_LOAD64_WORD_SWAP( "mpr-21508.12", 0x2800000, 0x400000, CRC(2e8f798e) SHA1(8298df90101dd5850db8fccb7661ca2bc6806b3f) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-21509.13", 0x3800006, 0x400000, CRC(9a65e6b4) SHA1(e96c4bc2782b73490dffd5dcb11b9020077b11a3) ) - ROM_LOAD64_WORD_SWAP( "mpr-21510.14", 0x3800004, 0x400000, CRC(f47489a4) SHA1(8412505002628d7ae3ab766a13e2068a018f3bf3) ) - ROM_LOAD64_WORD_SWAP( "mpr-21511.15", 0x3800002, 0x400000, CRC(5ad9660c) SHA1(da387449292322a89af1cb6746d0fb8cea17575f) ) - ROM_LOAD64_WORD_SWAP( "mpr-21512.16", 0x3800000, 0x400000, CRC(7cb2b05c) SHA1(16edc6642c74d9cef883559ca6ec562d985a43d6) ) - - // mirror CROM0 to CROM - ROM_COPY(REGION_USER1, 0x800000, 0x000000, 0x400000) - - ROM_REGION( 0x1000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21515.26", 0x000002, 0x200000, CRC(8ce9910b) SHA1(7a0d0696e4456d9ebf131041917c5214b7d2e3ec) ) - ROM_LOAD_VROM( "mpr-21516.27", 0x000000, 0x200000, CRC(8971a753) SHA1(00dfdb83a65f4fde337618c346157bb89f398531) ) - ROM_LOAD_VROM( "mpr-21517.28", 0x000006, 0x200000, CRC(55a4533b) SHA1(b5701bbf7780bb9fc386cef4c1835606ab792f91) ) - ROM_LOAD_VROM( "mpr-21518.29", 0x000004, 0x200000, CRC(4134026c) SHA1(2dfe1cbb354affe465c31a18c3ffb83a9bf555c9) ) - ROM_LOAD_VROM( "mpr-21519.30", 0x00000a, 0x200000, CRC(ef6757de) SHA1(d41bbfcc551a4589bac577e311c67f2cba0a49aa) ) - ROM_LOAD_VROM( "mpr-21520.31", 0x000008, 0x200000, CRC(c53be8cc) SHA1(b12dc0327a00b7e056254d2f11f96dbf396a0c91) ) - ROM_LOAD_VROM( "mpr-21521.32", 0x00000e, 0x200000, CRC(abb501dc) SHA1(88cb40b0f795e0de1ff56e1f31bf834fad0c7885) ) - ROM_LOAD_VROM( "mpr-21522.33", 0x00000c, 0x200000, CRC(e3b79973) SHA1(4b6ca16a23bb3e195ca60bee81b2d069f371ff70) ) - - ROM_REGION( 0x1000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21523.34", 0x000002, 0x200000, CRC(fe4d1eac) SHA1(d222743d25ca92904ec212c66d03b3e3ff0ddbd9) ) - ROM_LOAD_VROM( "mpr-21524.35", 0x000000, 0x200000, CRC(8633b6e9) SHA1(65ec24eb29613831dd28e5338cac14696b0d975d) ) - ROM_LOAD_VROM( "mpr-21525.36", 0x000006, 0x200000, CRC(3c490167) SHA1(6fd46049723e0790b2231301cfa23071cd6ff1f6) ) - ROM_LOAD_VROM( "mpr-21526.37", 0x000004, 0x200000, CRC(5fe5f9b0) SHA1(c708918cfc60f5fd9f6ec49ec1cd3167f2876e30) ) - ROM_LOAD_VROM( "mpr-21527.38", 0x00000a, 0x200000, CRC(10d0fe7e) SHA1(63693b0de43e2eb6efbb3d2dfbe0e2f5bc6810dc) ) - ROM_LOAD_VROM( "mpr-21528.39", 0x000008, 0x200000, CRC(4e346a6c) SHA1(ae34038d5bf6f63ec5ad2e8dd8e06db66147c40e) ) - ROM_LOAD_VROM( "mpr-21529.40", 0x00000e, 0x200000, CRC(9a731a00) SHA1(eca98b142acc02fb28387675e1cb1bc7e4e59b86) ) - ROM_LOAD_VROM( "mpr-21530.41", 0x00000c, 0x200000, CRC(78400d5e) SHA1(9b4546848dbe213f33b02e8ea42743e60a0f763f) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21539.21", 0x000000, 0x080000, CRC(a1d3e00e) SHA1(e03bb31967929a12de9ae21923914e0e3bd96aaa) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21513.22", 0x000000, 0x400000, CRC(cca1cc00) SHA1(ba1fa3b8ef3bff7e116901a0a4bd80d2ae4018bf) ) - ROM_LOAD( "mpr-21514.24", 0x400000, 0x400000, CRC(6cedd292) SHA1(c1f44715697a8bac9d39926bcd6558ec9a9b2319) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( von2 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20683b.17", 0x000006, 0x200000, CRC(59d9c974) SHA1(c45594ed474a9e8fd074e0d9d5fa6662bc88dee6) ) - ROM_LOAD64_WORD_SWAP( "epr-20684b.18", 0x000004, 0x200000, CRC(1fc15431) SHA1(c68c77dfcf5e2702214d64095ce07076d3702a5e) ) - ROM_LOAD64_WORD_SWAP( "epr-20685b.19", 0x000002, 0x200000, CRC(ae82cb35) SHA1(b4563f325945cc943a46bdc094e0169fcf82023d) ) - ROM_LOAD64_WORD_SWAP( "epr-20686b.20", 0x000000, 0x200000, CRC(3ea4de9f) SHA1(0d09e0a256e531c1e4115355e9ce29fa8016c458) ) - - // CROM0: - ROM_LOAD64_WORD_SWAP( "mpr-20647.1", 0x800006, 0x400000, CRC(e8586380) SHA1(67dd49975b31ba2c3f889ff38a3bc4663145934a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20648.2", 0x800004, 0x400000, CRC(107309e0) SHA1(61657814a30020c0d4ea77625cb8f11a1db7e866) ) - ROM_LOAD64_WORD_SWAP( "mpr-20649.3", 0x800002, 0x400000, CRC(b8fd56ba) SHA1(5e5051d4b752463e1da632f8294a6c8f9250dbc8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20650.4", 0x800000, 0x400000, CRC(81f96649) SHA1(0d7aba7654237b68de6e43811832fafaf61e2bec) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20651.5", 0x1800006, 0x400000, CRC(8373cab3) SHA1(1d36612668a3004e2448f99ab27d7184ff859478) ) - ROM_LOAD64_WORD_SWAP( "mpr-20652.6", 0x1800004, 0x400000, CRC(64c6fbb6) SHA1(c8682bda20d3119b4f95bbd2dbde301bfd036608) ) - ROM_LOAD64_WORD_SWAP( "mpr-20653.7", 0x1800002, 0x400000, CRC(858e6bba) SHA1(22b71826799249a577124a49d5a276908a53ce61) ) - ROM_LOAD64_WORD_SWAP( "mpr-20654.8", 0x1800000, 0x400000, CRC(763ef905) SHA1(4d5f6b1770cf9bf6cecd4d3a91a822e5cc658464) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20655.9", 0x2800006, 0x400000, CRC(f0a471e9) SHA1(8a40c9381e8b3733be297738c825b82abcb476d0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20656.10", 0x2800004, 0x400000, CRC(466bee13) SHA1(bc2087a138037188f462fa1cecc898e5efb3e8b8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20657.11", 0x2800002, 0x400000, CRC(14bf8964) SHA1(84444f7c489344ad1dd980b860364b5a4ed53038) ) - ROM_LOAD64_WORD_SWAP( "mpr-20658.12", 0x2800000, 0x400000, CRC(b80175b9) SHA1(26dc97f6a6e8415cbb7e9e1f64389d80a2b761a1) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20659.13", 0x3800006, 0x400000, CRC(edb63e7b) SHA1(761abcfc213e813967d053475c965459a9724a24) ) - ROM_LOAD64_WORD_SWAP( "mpr-20660.14", 0x3800004, 0x400000, CRC(d961d385) SHA1(7e341c2cf24715c5cecb276c42166bf426860819) ) - ROM_LOAD64_WORD_SWAP( "mpr-20661.15", 0x3800002, 0x400000, CRC(50e6189e) SHA1(04be5ff1379af4972edec3b320f148bdf09bfbb5) ) - ROM_LOAD64_WORD_SWAP( "mpr-20662.16", 0x3800000, 0x400000, CRC(7130cb61) SHA1(39de0e3c2086f339156bfd734a196b667df7f5ac) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20667.26", 0x000002, 0x400000, CRC(321e006f) SHA1(687165bd2d2d22f861cd79083adcab62eb827c0f) ) - ROM_LOAD_VROM( "mpr-20668.27", 0x000000, 0x400000, CRC(c2dd8053) SHA1(52bc88d172d335b47e3ae3d582233382e9608de2) ) - ROM_LOAD_VROM( "mpr-20669.28", 0x000006, 0x400000, CRC(63432497) SHA1(b072741fe9ba49f1a7eed03301c8b1956af94d26) ) - ROM_LOAD_VROM( "mpr-20670.29", 0x000004, 0x400000, CRC(f7b554fd) SHA1(84fb08413345e0f3afb6e20c723aa8aa8156fdc7) ) - ROM_LOAD_VROM( "mpr-20671.30", 0x00000a, 0x400000, CRC(fee1a49b) SHA1(a024a0564df65e065e8b1830e85513d17ebd8635) ) - ROM_LOAD_VROM( "mpr-20672.31", 0x000008, 0x400000, CRC(e4b8c6e6) SHA1(674d4d26285f2825050fd27dd3382ca6245d54c7) ) - ROM_LOAD_VROM( "mpr-20673.32", 0x00000e, 0x400000, CRC(e7b6403b) SHA1(0f74f7a916c091d49eed8222050981a6b73d4bdd) ) - ROM_LOAD_VROM( "mpr-20674.33", 0x00000c, 0x400000, CRC(9be22e13) SHA1(a00b0c69b6ed086f3f61d4f767df6c4ddea45052) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20675.34", 0x000002, 0x400000, CRC(6a7c3862) SHA1(f77145c2a5e373f567783cf5db70e25b71e77bf5) ) - ROM_LOAD_VROM( "mpr-20676.35", 0x000000, 0x400000, CRC(dd299648) SHA1(c222c10cb23753ac3d6d1c779b2d026a64c61bc4) ) - ROM_LOAD_VROM( "mpr-20677.36", 0x000006, 0x400000, CRC(3fc5f330) SHA1(778c1932b093a4de96c76ea704463b7c67cdcb33) ) - ROM_LOAD_VROM( "mpr-20678.37", 0x000004, 0x400000, CRC(62f794a1) SHA1(fc7adafb49056b23b6cc483978ffe4fd3635977d) ) - ROM_LOAD_VROM( "mpr-20679.38", 0x00000a, 0x400000, CRC(35a37c53) SHA1(cd727a8914c3c01e302378048e3998b4cd849c4a) ) - ROM_LOAD_VROM( "mpr-20680.39", 0x000008, 0x400000, CRC(81fec46e) SHA1(43b3fbb544d920a87f77437860e32a628ae2865b) ) - ROM_LOAD_VROM( "mpr-20681.40", 0x00000e, 0x400000, CRC(d517873b) SHA1(8e50dd149716ae6b0b8d7ac99cd425a17b3c0a46) ) - ROM_LOAD_VROM( "mpr-20682.41", 0x00000c, 0x400000, CRC(5b43250c) SHA1(fccb40cd03c096360ca3c565e8621d4110b273ab) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20687.21", 0x000000, 0x080000, CRC(fa084de5) SHA1(8a760b76bc12d60d4727f93106830f19179c9046) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - /* WARNING: mpr- numbers here are a guess based on how other sets are ordered and may not be right. - If restoring a real PCB, go by the IC numbers in the extension! (.22, .24) */ - ROM_LOAD( "mpr-20663.22", 0x000000, 0x400000, CRC(977eb6a4) SHA1(9dbba51630cbef2351d79b82ab6ae3af4aed99f0) ) - ROM_LOAD( "mpr-20665.24", 0x400000, 0x400000, CRC(0efc0ca8) SHA1(1414becad21eb7d03d816a8cba47506f941b3c29) ) - ROM_LOAD( "mpr-20664.23", 0x800000, 0x400000, CRC(89220782) SHA1(18a3585af960a76eb08f187223e9b69ad16809a1) ) - ROM_LOAD( "mpr-20666.25", 0xc00000, 0x400000, CRC(3ecb2606) SHA1(a38d1f61933c8873deaff0a913c657b768f9783d) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( von254g ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21788.17", 0x000006, 0x200000, CRC(97066bcf) SHA1(234c45ee1f23b22f61893825eebf31d867cf420f) ) - ROM_LOAD64_WORD_SWAP( "epr-21789.18", 0x000004, 0x200000, CRC(3069108f) SHA1(f4e82da677458423abcf07c9c5a837005ed8f1c4) ) - ROM_LOAD64_WORD_SWAP( "epr-21790.19", 0x000002, 0x200000, CRC(2ae1efd3) SHA1(fc3957a140d741138a8eeacc19eedbb237f629cd) ) - ROM_LOAD64_WORD_SWAP( "epr-21791.20", 0x000000, 0x200000, CRC(d0bb3ca3) SHA1(7d00205b5366d7a6f9ecc10f8f7dcf335789a043) ) - - // CROM0: - ROM_LOAD64_WORD_SWAP( "mpr-20647.1", 0x800006, 0x400000, CRC(e8586380) SHA1(67dd49975b31ba2c3f889ff38a3bc4663145934a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20648.2", 0x800004, 0x400000, CRC(107309e0) SHA1(61657814a30020c0d4ea77625cb8f11a1db7e866) ) - ROM_LOAD64_WORD_SWAP( "mpr-20649.3", 0x800002, 0x400000, CRC(b8fd56ba) SHA1(5e5051d4b752463e1da632f8294a6c8f9250dbc8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20650.4", 0x800000, 0x400000, CRC(81f96649) SHA1(0d7aba7654237b68de6e43811832fafaf61e2bec) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20651.5", 0x1800006, 0x400000, CRC(8373cab3) SHA1(1d36612668a3004e2448f99ab27d7184ff859478) ) - ROM_LOAD64_WORD_SWAP( "mpr-20652.6", 0x1800004, 0x400000, CRC(64c6fbb6) SHA1(c8682bda20d3119b4f95bbd2dbde301bfd036608) ) - ROM_LOAD64_WORD_SWAP( "mpr-20653.7", 0x1800002, 0x400000, CRC(858e6bba) SHA1(22b71826799249a577124a49d5a276908a53ce61) ) - ROM_LOAD64_WORD_SWAP( "mpr-20654.8", 0x1800000, 0x400000, CRC(763ef905) SHA1(4d5f6b1770cf9bf6cecd4d3a91a822e5cc658464) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20655.9", 0x2800006, 0x400000, CRC(f0a471e9) SHA1(8a40c9381e8b3733be297738c825b82abcb476d0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20656.10", 0x2800004, 0x400000, CRC(466bee13) SHA1(bc2087a138037188f462fa1cecc898e5efb3e8b8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20657.11", 0x2800002, 0x400000, CRC(14bf8964) SHA1(84444f7c489344ad1dd980b860364b5a4ed53038) ) - ROM_LOAD64_WORD_SWAP( "mpr-20658.12", 0x2800000, 0x400000, CRC(b80175b9) SHA1(26dc97f6a6e8415cbb7e9e1f64389d80a2b761a1) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20659.13", 0x3800006, 0x400000, CRC(edb63e7b) SHA1(761abcfc213e813967d053475c965459a9724a24) ) - ROM_LOAD64_WORD_SWAP( "mpr-20660.14", 0x3800004, 0x400000, CRC(d961d385) SHA1(7e341c2cf24715c5cecb276c42166bf426860819) ) - ROM_LOAD64_WORD_SWAP( "mpr-20661.15", 0x3800002, 0x400000, CRC(50e6189e) SHA1(04be5ff1379af4972edec3b320f148bdf09bfbb5) ) - ROM_LOAD64_WORD_SWAP( "mpr-20662.16", 0x3800000, 0x400000, CRC(7130cb61) SHA1(39de0e3c2086f339156bfd734a196b667df7f5ac) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20667.26", 0x000002, 0x400000, CRC(321e006f) SHA1(687165bd2d2d22f861cd79083adcab62eb827c0f) ) - ROM_LOAD_VROM( "mpr-20668.27", 0x000000, 0x400000, CRC(c2dd8053) SHA1(52bc88d172d335b47e3ae3d582233382e9608de2) ) - ROM_LOAD_VROM( "mpr-20669.28", 0x000006, 0x400000, CRC(63432497) SHA1(b072741fe9ba49f1a7eed03301c8b1956af94d26) ) - ROM_LOAD_VROM( "mpr-20670.29", 0x000004, 0x400000, CRC(f7b554fd) SHA1(84fb08413345e0f3afb6e20c723aa8aa8156fdc7) ) - ROM_LOAD_VROM( "mpr-20671.30", 0x00000a, 0x400000, CRC(fee1a49b) SHA1(a024a0564df65e065e8b1830e85513d17ebd8635) ) - ROM_LOAD_VROM( "mpr-20672.31", 0x000008, 0x400000, CRC(e4b8c6e6) SHA1(674d4d26285f2825050fd27dd3382ca6245d54c7) ) - ROM_LOAD_VROM( "mpr-20673.32", 0x00000e, 0x400000, CRC(e7b6403b) SHA1(0f74f7a916c091d49eed8222050981a6b73d4bdd) ) - ROM_LOAD_VROM( "mpr-20674.33", 0x00000c, 0x400000, CRC(9be22e13) SHA1(a00b0c69b6ed086f3f61d4f767df6c4ddea45052) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20675.34", 0x000002, 0x400000, CRC(6a7c3862) SHA1(f77145c2a5e373f567783cf5db70e25b71e77bf5) ) - ROM_LOAD_VROM( "mpr-20676.35", 0x000000, 0x400000, CRC(dd299648) SHA1(c222c10cb23753ac3d6d1c779b2d026a64c61bc4) ) - ROM_LOAD_VROM( "mpr-20677.36", 0x000006, 0x400000, CRC(3fc5f330) SHA1(778c1932b093a4de96c76ea704463b7c67cdcb33) ) - ROM_LOAD_VROM( "mpr-20678.37", 0x000004, 0x400000, CRC(62f794a1) SHA1(fc7adafb49056b23b6cc483978ffe4fd3635977d) ) - ROM_LOAD_VROM( "mpr-20679.38", 0x00000a, 0x400000, CRC(35a37c53) SHA1(cd727a8914c3c01e302378048e3998b4cd849c4a) ) - ROM_LOAD_VROM( "mpr-20680.39", 0x000008, 0x400000, CRC(81fec46e) SHA1(43b3fbb544d920a87f77437860e32a628ae2865b) ) - ROM_LOAD_VROM( "mpr-20681.40", 0x00000e, 0x400000, CRC(d517873b) SHA1(8e50dd149716ae6b0b8d7ac99cd425a17b3c0a46) ) - ROM_LOAD_VROM( "mpr-20682.41", 0x00000c, 0x400000, CRC(5b43250c) SHA1(fccb40cd03c096360ca3c565e8621d4110b273ab) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20687.21", 0x000000, 0x080000, CRC(fa084de5) SHA1(8a760b76bc12d60d4727f93106830f19179c9046) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - /* WARNING: mpr- numbers here are a guess based on how other sets are ordered and may not be right. - If restoring a real PCB, go by the IC numbers in the extension! (.22, .24) */ - ROM_LOAD( "mpr-20663.22", 0x000000, 0x400000, CRC(977eb6a4) SHA1(9dbba51630cbef2351d79b82ab6ae3af4aed99f0) ) - ROM_LOAD( "mpr-20665.24", 0x400000, 0x400000, CRC(0efc0ca8) SHA1(1414becad21eb7d03d816a8cba47506f941b3c29) ) - ROM_LOAD( "mpr-20664.23", 0x800000, 0x400000, CRC(89220782) SHA1(18a3585af960a76eb08f187223e9b69ad16809a1) ) - ROM_LOAD( "mpr-20666.25", 0xc00000, 0x400000, CRC(3ecb2606) SHA1(a38d1f61933c8873deaff0a913c657b768f9783d) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - - -ROM_START( swtrilgy ) /* Step 2.1 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21379a.17", 0x000006, 0x200000, CRC(24dc1555) SHA1(0a4b458bb09238de0f38ba2805512b5dbee7d58e) ) - ROM_LOAD64_WORD_SWAP( "epr-21380a.18", 0x000004, 0x200000, CRC(780fb4e7) SHA1(6650e114bad0e4c3f67b744599dba9845da82f11) ) - ROM_LOAD64_WORD_SWAP( "epr-21381a.19", 0x000002, 0x200000, CRC(2dd34e28) SHA1(b9d2034aee6be2313f7286091f4660bbba87e376) ) - ROM_LOAD64_WORD_SWAP( "epr-21382a.20", 0x000000, 0x200000, CRC(69baf117) SHA1(ceba6b9b092953b00777e5309bbba527270b0c40) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21339.01", 0x800006, 0x400000, CRC(c0ce5037) SHA1(1765339ac94b7e7e54217cc9703610f6a39eda4f) ) - ROM_LOAD64_WORD_SWAP( "mpr-21340.02", 0x800004, 0x400000, CRC(ad36040e) SHA1(d40b888f892aa40b1d7f375cf7523667f3b7ee12) ) - ROM_LOAD64_WORD_SWAP( "mpr-21341.03", 0x800002, 0x400000, CRC(b2a269e4) SHA1(b32769251118d3ae5c1c30864b58e27365b9602d) ) - ROM_LOAD64_WORD_SWAP( "mpr-21342.04", 0x800000, 0x400000, CRC(339525ce) SHA1(e93ee61705612ae7017d9d99b26a6b5c2d20a15c) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21343.05", 0x1800006, 0x400000, CRC(12552d07) SHA1(7ed31feecda71f44ca7d3409d753d75c36a03ae8) ) - ROM_LOAD64_WORD_SWAP( "mpr-21344.06", 0x1800004, 0x400000, CRC(87453d76) SHA1(5793ac0b4ae02364821d82e8cf30baf676bc7649) ) - ROM_LOAD64_WORD_SWAP( "mpr-21345.07", 0x1800002, 0x400000, CRC(6c183a21) SHA1(416e56b76464df4aed552fe2e7262334e5841b17) ) - ROM_LOAD64_WORD_SWAP( "mpr-21346.08", 0x1800000, 0x400000, CRC(c8733594) SHA1(1196ec899c64c58f21d56bff56e432b156aacb31) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-21347.09", 0x2800006, 0x400000, CRC(ecb6b934) SHA1(49e394adc3c339a13df6679457b910b9e0a078c1) ) - ROM_LOAD64_WORD_SWAP( "mpr-21348.10", 0x2800004, 0x400000, CRC(1f7cc5f5) SHA1(6ac1bef009ba86e97541f4d6bbdb935fb8a22f5a) ) - ROM_LOAD64_WORD_SWAP( "mpr-21349.11", 0x2800002, 0x400000, CRC(3d39454b) SHA1(1c55339a0694fc817e7ee2f2087c7548361c3f8b) ) - ROM_LOAD64_WORD_SWAP( "mpr-21350.12", 0x2800000, 0x400000, CRC(486195e7) SHA1(b3725da2317561b8570666e459737022370256a8) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21359.26", 0x000002, 0x400000, CRC(34ef4122) SHA1(26e0726e1ab722ba0e12624efd01af3a40fc320b) ) - ROM_LOAD_VROM( "mpr-21360.27", 0x000000, 0x400000, CRC(2882b95e) SHA1(e553661c98da3e23318920576488b8ff97430f44) ) - ROM_LOAD_VROM( "mpr-21361.28", 0x000006, 0x400000, CRC(9b61c3c1) SHA1(93b4acb9340176b578f8222fcaf8fc67fd874556) ) - ROM_LOAD_VROM( "mpr-21362.29", 0x000004, 0x400000, CRC(01a92169) SHA1(0911d5a656a5b5de5fefab77ea34a1b495863610) ) - ROM_LOAD_VROM( "mpr-21363.30", 0x00000a, 0x400000, CRC(e7d18fed) SHA1(3e77e09db4f00780a5bcf6e644bfdc72b9d4ac83) ) - ROM_LOAD_VROM( "mpr-21364.31", 0x000008, 0x400000, CRC(cb6a5468) SHA1(3ca093646b565eb6298c3d66da83664f718fe76a) ) - ROM_LOAD_VROM( "mpr-21365.32", 0x00000e, 0x400000, CRC(ad5449d8) SHA1(e7f1b4b6ebbe578f292b5a71258c79767f57cf90) ) - ROM_LOAD_VROM( "mpr-21366.33", 0x00000c, 0x400000, CRC(defb6b95) SHA1(a5de55c8e4bcbf2aef93972e3aba22ba64e46fdb) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21367.34", 0x000002, 0x400000, CRC(dfd51029) SHA1(44c2e6c8e36217bb4fc0743912f0b046a1944a74) ) - ROM_LOAD_VROM( "mpr-21368.35", 0x000000, 0x400000, CRC(ae90fd21) SHA1(a519add40e29e6b737f50d9314a6009d4c696a9f) ) - ROM_LOAD_VROM( "mpr-21369.36", 0x000006, 0x400000, CRC(bf17eeb4) SHA1(12d5f0c9c6ad27a225dbecdc7b94ade0e90a8f00) ) - ROM_LOAD_VROM( "mpr-21370.37", 0x000004, 0x400000, CRC(2321592a) SHA1(d4270b872e1a5ff82220014c65b726309305ecb0) ) - ROM_LOAD_VROM( "mpr-21371.38", 0x00000a, 0x400000, CRC(a68782fd) SHA1(610530f804876206fdd2c2f9ff159db9813fabea) ) - ROM_LOAD_VROM( "mpr-21372.39", 0x000008, 0x400000, CRC(fc3f4e8b) SHA1(47240f14d81458e104452125eabf44619e026ff9) ) - ROM_LOAD_VROM( "mpr-21373.40", 0x00000e, 0x400000, CRC(b76ad261) SHA1(de5a39a23ac6b12b17f16f2b3e82d1f5470ae600) ) - ROM_LOAD_VROM( "mpr-21374.41", 0x00000c, 0x400000, CRC(ae6c4d28) SHA1(b57733cfaa63ba018b0c3c9c935c12c48cc7f184) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21383.21", 0x000000, 0x080000, CRC(544d1e28) SHA1(8b4c99cf9ad0cf15d2d3da578bbc08705bafb829) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21355.22", 0x000000, 0x400000, CRC(c1b2d326) SHA1(118d9e02cdb9f500bd677b1de8331b29c57ca02f) ) - ROM_LOAD( "mpr-21357.24", 0x400000, 0x400000, CRC(02703fab) SHA1(c312f3d7967229660a7fb81b4fcd16c204d671cd) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD16_WORD_SWAP( "ep21384.2", 0x000000, 0x20000, CRC(12fa4780) SHA1(a10ce82d81045cc49efcfba490693d06aeced3ae) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mp21375.18", 0x000000, 0x400000, CRC(735157a9) SHA1(d1ff5dc7a6be8c8b0b6ba33fdf353c2008507afc) ) - ROM_LOAD( "mp21376.20", 0x400000, 0x400000, CRC(e635f81e) SHA1(3eb4243fd275946ce0e85d074abd59b5ed31bbcd) ) - ROM_LOAD( "mp21377.22", 0x800000, 0x400000, CRC(720621f8) SHA1(191bd8159010c172a82159d0ebfa56637c2a8462) ) - ROM_LOAD( "mp21378.24", 0xc00000, 0x400000, CRC(1fcf715e) SHA1(9706f36e7a61d885d34a6974311a2410fe3d6760) ) -ROM_END - -ROM_START( swtrilga ) /* Step 2.1 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "ep21379.17", 0x000006, 0x200000, CRC(61ad51d9) SHA1(b27ea929702bb94c86d03d6c1f479af32230b4d0) ) - ROM_LOAD64_WORD_SWAP( "ep21380.18", 0x000004, 0x200000, CRC(49b182f2) SHA1(9a4e3180f2661c95976963ab17e66a5184bca9a3) ) - ROM_LOAD64_WORD_SWAP( "ep21381.19", 0x000002, 0x200000, CRC(bb5757bf) SHA1(4e803f2a5fe09c82c0318d22240d3738e51e7e3b) ) - ROM_LOAD64_WORD_SWAP( "ep21382.20", 0x000000, 0x200000, CRC(0b9c44a0) SHA1(e7171bda684263a92746a84fd91ac32b788bfab4) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21339.01", 0x800006, 0x400000, CRC(c0ce5037) SHA1(1765339ac94b7e7e54217cc9703610f6a39eda4f) ) - ROM_LOAD64_WORD_SWAP( "mpr-21340.02", 0x800004, 0x400000, CRC(ad36040e) SHA1(d40b888f892aa40b1d7f375cf7523667f3b7ee12) ) - ROM_LOAD64_WORD_SWAP( "mpr-21341.03", 0x800002, 0x400000, CRC(b2a269e4) SHA1(b32769251118d3ae5c1c30864b58e27365b9602d) ) - ROM_LOAD64_WORD_SWAP( "mpr-21342.04", 0x800000, 0x400000, CRC(339525ce) SHA1(e93ee61705612ae7017d9d99b26a6b5c2d20a15c) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21343.05", 0x1800006, 0x400000, CRC(12552d07) SHA1(7ed31feecda71f44ca7d3409d753d75c36a03ae8) ) - ROM_LOAD64_WORD_SWAP( "mpr-21344.06", 0x1800004, 0x400000, CRC(87453d76) SHA1(5793ac0b4ae02364821d82e8cf30baf676bc7649) ) - ROM_LOAD64_WORD_SWAP( "mpr-21345.07", 0x1800002, 0x400000, CRC(6c183a21) SHA1(416e56b76464df4aed552fe2e7262334e5841b17) ) - ROM_LOAD64_WORD_SWAP( "mpr-21346.08", 0x1800000, 0x400000, CRC(c8733594) SHA1(1196ec899c64c58f21d56bff56e432b156aacb31) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-21347.09", 0x2800006, 0x400000, CRC(ecb6b934) SHA1(49e394adc3c339a13df6679457b910b9e0a078c1) ) - ROM_LOAD64_WORD_SWAP( "mpr-21348.10", 0x2800004, 0x400000, CRC(1f7cc5f5) SHA1(6ac1bef009ba86e97541f4d6bbdb935fb8a22f5a) ) - ROM_LOAD64_WORD_SWAP( "mpr-21349.11", 0x2800002, 0x400000, CRC(3d39454b) SHA1(1c55339a0694fc817e7ee2f2087c7548361c3f8b) ) - ROM_LOAD64_WORD_SWAP( "mpr-21350.12", 0x2800000, 0x400000, CRC(486195e7) SHA1(b3725da2317561b8570666e459737022370256a8) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21359.26", 0x000002, 0x400000, CRC(34ef4122) SHA1(26e0726e1ab722ba0e12624efd01af3a40fc320b) ) - ROM_LOAD_VROM( "mpr-21360.27", 0x000000, 0x400000, CRC(2882b95e) SHA1(e553661c98da3e23318920576488b8ff97430f44) ) - ROM_LOAD_VROM( "mpr-21361.28", 0x000006, 0x400000, CRC(9b61c3c1) SHA1(93b4acb9340176b578f8222fcaf8fc67fd874556) ) - ROM_LOAD_VROM( "mpr-21362.29", 0x000004, 0x400000, CRC(01a92169) SHA1(0911d5a656a5b5de5fefab77ea34a1b495863610) ) - ROM_LOAD_VROM( "mpr-21363.30", 0x00000a, 0x400000, CRC(e7d18fed) SHA1(3e77e09db4f00780a5bcf6e644bfdc72b9d4ac83) ) - ROM_LOAD_VROM( "mpr-21364.31", 0x000008, 0x400000, CRC(cb6a5468) SHA1(3ca093646b565eb6298c3d66da83664f718fe76a) ) - ROM_LOAD_VROM( "mpr-21365.32", 0x00000e, 0x400000, CRC(ad5449d8) SHA1(e7f1b4b6ebbe578f292b5a71258c79767f57cf90) ) - ROM_LOAD_VROM( "mpr-21366.33", 0x00000c, 0x400000, CRC(defb6b95) SHA1(a5de55c8e4bcbf2aef93972e3aba22ba64e46fdb) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21367.34", 0x000002, 0x400000, CRC(dfd51029) SHA1(44c2e6c8e36217bb4fc0743912f0b046a1944a74) ) - ROM_LOAD_VROM( "mpr-21368.35", 0x000000, 0x400000, CRC(ae90fd21) SHA1(a519add40e29e6b737f50d9314a6009d4c696a9f) ) - ROM_LOAD_VROM( "mpr-21369.36", 0x000006, 0x400000, CRC(bf17eeb4) SHA1(12d5f0c9c6ad27a225dbecdc7b94ade0e90a8f00) ) - ROM_LOAD_VROM( "mpr-21370.37", 0x000004, 0x400000, CRC(2321592a) SHA1(d4270b872e1a5ff82220014c65b726309305ecb0) ) - ROM_LOAD_VROM( "mpr-21371.38", 0x00000a, 0x400000, CRC(a68782fd) SHA1(610530f804876206fdd2c2f9ff159db9813fabea) ) - ROM_LOAD_VROM( "mpr-21372.39", 0x000008, 0x400000, CRC(fc3f4e8b) SHA1(47240f14d81458e104452125eabf44619e026ff9) ) - ROM_LOAD_VROM( "mpr-21373.40", 0x00000e, 0x400000, CRC(b76ad261) SHA1(de5a39a23ac6b12b17f16f2b3e82d1f5470ae600) ) - ROM_LOAD_VROM( "mpr-21374.41", 0x00000c, 0x400000, CRC(ae6c4d28) SHA1(b57733cfaa63ba018b0c3c9c935c12c48cc7f184) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21383.21", 0x000000, 0x080000, CRC(544d1e28) SHA1(8b4c99cf9ad0cf15d2d3da578bbc08705bafb829) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21355.22", 0x000000, 0x400000, CRC(c1b2d326) SHA1(118d9e02cdb9f500bd677b1de8331b29c57ca02f) ) - ROM_LOAD( "mpr-21357.24", 0x400000, 0x400000, CRC(02703fab) SHA1(c312f3d7967229660a7fb81b4fcd16c204d671cd) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD16_WORD_SWAP( "ep21384.2", 0x000000, 0x20000, CRC(12fa4780) SHA1(a10ce82d81045cc49efcfba490693d06aeced3ae) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mp21375.18", 0x000000, 0x400000, CRC(735157a9) SHA1(d1ff5dc7a6be8c8b0b6ba33fdf353c2008507afc) ) - ROM_LOAD( "mp21376.20", 0x400000, 0x400000, CRC(e635f81e) SHA1(3eb4243fd275946ce0e85d074abd59b5ed31bbcd) ) - ROM_LOAD( "mp21377.22", 0x800000, 0x400000, CRC(720621f8) SHA1(191bd8159010c172a82159d0ebfa56637c2a8462) ) - ROM_LOAD( "mp21378.24", 0xc00000, 0x400000, CRC(1fcf715e) SHA1(9706f36e7a61d885d34a6974311a2410fe3d6760) ) -ROM_END - -ROM_START( dirtdvls ) /* Step 2.1 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21062a.17", 0x000006, 0x200000, CRC(64b55254) SHA1(0e5de3786edad77dde08652ac837dc9125e7851c) ) - ROM_LOAD64_WORD_SWAP( "epr-21063a.18", 0x000004, 0x200000, CRC(6ab7eb32) SHA1(3a4226d4c786e7b64688af3b8883b4039b8c8407) ) - ROM_LOAD64_WORD_SWAP( "epr-21064a.19", 0x000002, 0x200000, CRC(2a01f9ad) SHA1(d936d8eeecbcc502e35799d484c36f5da9457013) ) - ROM_LOAD64_WORD_SWAP( "epr-21065a.20", 0x000000, 0x200000, CRC(3223db1a) SHA1(ad34d16475a571ffed48539ef98736357cb327b0) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21023.1", 0x800006, 0x400000, CRC(932a3724) SHA1(146dfe897caa8a4385c527bc7c649e9dbd2ce0c0) ) - ROM_LOAD64_WORD_SWAP( "mpr-21024.2", 0x800004, 0x400000, CRC(ede859b0) SHA1(cecd595a6ba60e248b7bf47778ba4da7658dcf93) ) - ROM_LOAD64_WORD_SWAP( "mpr-21025.3", 0x800002, 0x400000, CRC(6591c66e) SHA1(feaae431692a3bab867b79d52bc3934f77c4022b) ) - ROM_LOAD64_WORD_SWAP( "mpr-21026.4", 0x800000, 0x400000, CRC(f4937e3f) SHA1(21559ef991789ede4b4e7297e2a71f33f7cc7090) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21027.5", 0x1800006, 0x400000, CRC(74e1496a) SHA1(0988058a109216e8b97045dde9d1099688193a13) ) - ROM_LOAD64_WORD_SWAP( "mpr-21028.6", 0x1800004, 0x400000, CRC(db11f50a) SHA1(78bf2418bcea1ed30da9af936e9f95e9c76ce919) ) - ROM_LOAD64_WORD_SWAP( "mpr-21029.7", 0x1800002, 0x400000, CRC(89867d8a) SHA1(89ebd5bc5d98fbd63d4cad407033419a39b1d60a) ) - ROM_LOAD64_WORD_SWAP( "mpr-21030.8", 0x1800000, 0x400000, CRC(f8e51bec) SHA1(fe8a06ef21dd646e3ad6fa382e3f3d30db4cbd91) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21034.26", 0x000002, 0x400000, CRC(acba5ca6) SHA1(be213ca40d17f18e725349585f95d677e53c1bfc) ) - ROM_LOAD_VROM( "mpr-21035.27", 0x000000, 0x400000, CRC(618b7d6a) SHA1(0968b72c8d7fc4b2635062647da5d36a58e69b08) ) - ROM_LOAD_VROM( "mpr-21036.28", 0x000006, 0x400000, CRC(0e665bb2) SHA1(3b18ea93ed1d71873ff635358c3143e4f515bab9) ) - ROM_LOAD_VROM( "mpr-21037.29", 0x000004, 0x400000, CRC(90b98493) SHA1(3f98855caec5895c8651ed88e07f2dcec5a6c66a) ) - ROM_LOAD_VROM( "mpr-21038.30", 0x00000a, 0x400000, CRC(9b59d2c2) SHA1(3f14cfc905a018e0aa2b2ad4918cd4ee2ef65c7b) ) - ROM_LOAD_VROM( "mpr-21039.31", 0x000008, 0x400000, CRC(61407b07) SHA1(d7676a03110ca694cc53c1d3a6c781d2f8cee98b) ) - ROM_LOAD_VROM( "mpr-21040.32", 0x00000e, 0x400000, CRC(b550c229) SHA1(b13ea462914bb13388e11bed9a9b2e696a8eb759) ) - ROM_LOAD_VROM( "mpr-21041.33", 0x00000c, 0x400000, CRC(8f1ac988) SHA1(11b628c85533a307298765641eb87c305bde64d1) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21042.34", 0x000002, 0x400000, CRC(1dab621d) SHA1(cf0e59be7b5a12146f5562e208009054074151cd) ) - ROM_LOAD_VROM( "mpr-21043.35", 0x000000, 0x400000, CRC(707015c8) SHA1(125ff08cc555a4c8d9863e7433fad7949230630d) ) - ROM_LOAD_VROM( "mpr-21044.36", 0x000006, 0x400000, CRC(776f9580) SHA1(0529532975d74da851a2fd1ce9810e218d751d5f) ) - ROM_LOAD_VROM( "mpr-21045.37", 0x000004, 0x400000, CRC(a28ad02f) SHA1(8734568153dbf304193491e746b19a423a547f0d) ) - ROM_LOAD_VROM( "mpr-21046.38", 0x00000a, 0x400000, CRC(05c995ae) SHA1(d96391360692d30c456324dcd51511bf095a58cb) ) - ROM_LOAD_VROM( "mpr-21047.39", 0x000008, 0x400000, CRC(06b7826f) SHA1(cfdeb56964bd31196fde01b1f5cc294c8b49c215) ) - ROM_LOAD_VROM( "mpr-21048.40", 0x00000e, 0x400000, CRC(96849974) SHA1(347e2216ea1225eda92693dcd80eb97df88caabf) ) - ROM_LOAD_VROM( "mpr-21049.41", 0x00000c, 0x400000, CRC(91e8161a) SHA1(1edc0bc856e5d72f714bd0544814727f4ff12e7a) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21066.21", 0x000000, 0x080000, CRC(f7ed2582) SHA1(a4f80d5f82c86f0bdb74bcda5dc69b83b475c542) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21031.22", 0x000000, 0x400000, CRC(32f6b23a) SHA1(8cd092733b85aecf607c2f4b683c42e388a70906) ) - ROM_LOAD( "mpr-21033.24", 0x400000, 0x400000, CRC(253d3c70) SHA1(bfbc42d08cf46d89c87505f53e31b8a53e8a729a) ) - ROM_LOAD( "mpr-21032.23", 0x800000, 0x400000, CRC(3d3ff407) SHA1(5e298e24cb3050f8683658cef41ce59948e79166) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( dirtdvla ) /* Step 2.1 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21058a", 0x000006, 0x200000, CRC(4d7fdc8d) SHA1(c45031b4e3ea65519de671e0e11f87e0965e3c93) ) - ROM_LOAD64_WORD_SWAP( "epr-21059a", 0x000004, 0x200000, CRC(f31a2aa4) SHA1(b7398db217372885f763efdb909f3e43ccbac34a) ) - ROM_LOAD64_WORD_SWAP( "epr-21060a", 0x000002, 0x200000, CRC(5ebe2816) SHA1(9ebbaf69f4a3b071d65ce3cbe6aabcd7547f1634) ) - ROM_LOAD64_WORD_SWAP( "epr-21061a", 0x000000, 0x200000, CRC(755ca612) SHA1(ba21cf7f445bf1c33962affd0400247e27268233) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21023.1", 0x800006, 0x400000, CRC(932a3724) SHA1(146dfe897caa8a4385c527bc7c649e9dbd2ce0c0) ) - ROM_LOAD64_WORD_SWAP( "mpr-21024.2", 0x800004, 0x400000, CRC(ede859b0) SHA1(cecd595a6ba60e248b7bf47778ba4da7658dcf93) ) - ROM_LOAD64_WORD_SWAP( "mpr-21025.3", 0x800002, 0x400000, CRC(6591c66e) SHA1(feaae431692a3bab867b79d52bc3934f77c4022b) ) - ROM_LOAD64_WORD_SWAP( "mpr-21026.4", 0x800000, 0x400000, CRC(f4937e3f) SHA1(21559ef991789ede4b4e7297e2a71f33f7cc7090) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21027.5", 0x1800006, 0x400000, CRC(74e1496a) SHA1(0988058a109216e8b97045dde9d1099688193a13) ) - ROM_LOAD64_WORD_SWAP( "mpr-21028.6", 0x1800004, 0x400000, CRC(db11f50a) SHA1(78bf2418bcea1ed30da9af936e9f95e9c76ce919) ) - ROM_LOAD64_WORD_SWAP( "mpr-21029.7", 0x1800002, 0x400000, CRC(89867d8a) SHA1(89ebd5bc5d98fbd63d4cad407033419a39b1d60a) ) - ROM_LOAD64_WORD_SWAP( "mpr-21030.8", 0x1800000, 0x400000, CRC(f8e51bec) SHA1(fe8a06ef21dd646e3ad6fa382e3f3d30db4cbd91) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21034.26", 0x000002, 0x400000, CRC(acba5ca6) SHA1(be213ca40d17f18e725349585f95d677e53c1bfc) ) - ROM_LOAD_VROM( "mpr-21035.27", 0x000000, 0x400000, CRC(618b7d6a) SHA1(0968b72c8d7fc4b2635062647da5d36a58e69b08) ) - ROM_LOAD_VROM( "mpr-21036.28", 0x000006, 0x400000, CRC(0e665bb2) SHA1(3b18ea93ed1d71873ff635358c3143e4f515bab9) ) - ROM_LOAD_VROM( "mpr-21037.29", 0x000004, 0x400000, CRC(90b98493) SHA1(3f98855caec5895c8651ed88e07f2dcec5a6c66a) ) - ROM_LOAD_VROM( "mpr-21038.30", 0x00000a, 0x400000, CRC(9b59d2c2) SHA1(3f14cfc905a018e0aa2b2ad4918cd4ee2ef65c7b) ) - ROM_LOAD_VROM( "mpr-21039.31", 0x000008, 0x400000, CRC(61407b07) SHA1(d7676a03110ca694cc53c1d3a6c781d2f8cee98b) ) - ROM_LOAD_VROM( "mpr-21040.32", 0x00000e, 0x400000, CRC(b550c229) SHA1(b13ea462914bb13388e11bed9a9b2e696a8eb759) ) - ROM_LOAD_VROM( "mpr-21041.33", 0x00000c, 0x400000, CRC(8f1ac988) SHA1(11b628c85533a307298765641eb87c305bde64d1) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21042.34", 0x000002, 0x400000, CRC(1dab621d) SHA1(cf0e59be7b5a12146f5562e208009054074151cd) ) - ROM_LOAD_VROM( "mpr-21043.35", 0x000000, 0x400000, CRC(707015c8) SHA1(125ff08cc555a4c8d9863e7433fad7949230630d) ) - ROM_LOAD_VROM( "mpr-21044.36", 0x000006, 0x400000, CRC(776f9580) SHA1(0529532975d74da851a2fd1ce9810e218d751d5f) ) - ROM_LOAD_VROM( "mpr-21045.37", 0x000004, 0x400000, CRC(a28ad02f) SHA1(8734568153dbf304193491e746b19a423a547f0d) ) - ROM_LOAD_VROM( "mpr-21046.38", 0x00000a, 0x400000, CRC(05c995ae) SHA1(d96391360692d30c456324dcd51511bf095a58cb) ) - ROM_LOAD_VROM( "mpr-21047.39", 0x000008, 0x400000, CRC(06b7826f) SHA1(cfdeb56964bd31196fde01b1f5cc294c8b49c215) ) - ROM_LOAD_VROM( "mpr-21048.40", 0x00000e, 0x400000, CRC(96849974) SHA1(347e2216ea1225eda92693dcd80eb97df88caabf) ) - ROM_LOAD_VROM( "mpr-21049.41", 0x00000c, 0x400000, CRC(91e8161a) SHA1(1edc0bc856e5d72f714bd0544814727f4ff12e7a) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21066.21", 0x000000, 0x080000, CRC(f7ed2582) SHA1(a4f80d5f82c86f0bdb74bcda5dc69b83b475c542) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21031.22", 0x000000, 0x400000, CRC(32f6b23a) SHA1(8cd092733b85aecf607c2f4b683c42e388a70906) ) - ROM_LOAD( "mpr-21033.24", 0x400000, 0x400000, CRC(253d3c70) SHA1(bfbc42d08cf46d89c87505f53e31b8a53e8a729a) ) - ROM_LOAD( "mpr-21032.23", 0x800000, 0x400000, CRC(3d3ff407) SHA1(5e298e24cb3050f8683658cef41ce59948e79166) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x800000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x800000, 0 ) -ROM_END - -ROM_START( daytona2 ) /* Step 2.1 */ - ROM_REGION64_BE( 0x8800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20861a.17", 0x000006, 0x200000, CRC(89ba8e78) SHA1(7d27124b976a63fdadd16551a664b2cc8cc08e79) ) - ROM_LOAD64_WORD_SWAP( "epr-20862a.18", 0x000004, 0x200000, CRC(e1b2ca61) SHA1(a5aa3416554b9d62469af3fefa9c2bacd69b4707) ) - ROM_LOAD64_WORD_SWAP( "epr-20863a.19", 0x000002, 0x200000, CRC(1deb4686) SHA1(dd6fcc95afa36148089b766c24c53a2af4d392d4) ) - ROM_LOAD64_WORD_SWAP( "epr-20864a.20", 0x000000, 0x200000, CRC(5250f3a8) SHA1(d75b86cb320b854fcf53e1b76331f87806b9ae84) ) - - /* IC1-8 should be 64MBit */ - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20845.1", 0x800006, 0x400000, BAD_DUMP CRC(ab70d79e) SHA1(938c492f1ea7208d27dd0ea44c4d826625e652d8) ) - ROM_LOAD64_WORD_SWAP( "mpr-20846.2", 0x800004, 0x400000, BAD_DUMP CRC(aabf4392) SHA1(22d10c3e7896ff6e5cbbfd38e85ffa3daec895c0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20847.3", 0x800002, 0x400000, BAD_DUMP CRC(96f3e97a) SHA1(4f6a4dd7d1eecbad65dc10c2f47db4bb949b0dfc) ) - ROM_LOAD64_WORD_SWAP( "mpr-20848.4", 0x800000, 0x400000, BAD_DUMP CRC(7a22a63b) SHA1(00c0b7c179f02936847d9e3fc2507d822efc7202) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20849.5", 0x2800006, 0x400000, BAD_DUMP CRC(3c3cc882) SHA1(2e34b999155e3bac7978428abaf77be9fedcc306) ) - ROM_LOAD64_WORD_SWAP( "mpr-20850.6", 0x2800004, 0x400000, BAD_DUMP CRC(aa71a7a6) SHA1(27f160c6ecdc4dc99198879976ad1ddc46dd28ea) ) - ROM_LOAD64_WORD_SWAP( "mpr-20851.7", 0x2800002, 0x400000, BAD_DUMP CRC(ba128235) SHA1(e307addb5c172c248c0472574148d5b54f1e0b78) ) - ROM_LOAD64_WORD_SWAP( "mpr-20852.8", 0x2800000, 0x400000, BAD_DUMP CRC(e1000d4d) SHA1(5a09106616a7c116ee770025d1eedff8a0cda5ca) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20853.9", 0x4800006, 0x400000, CRC(3245ee68) SHA1(f957df447bab0559076bc8a14eeaa080040acb85) ) - ROM_LOAD64_WORD_SWAP( "mpr-20854.10", 0x4800004, 0x400000, CRC(68d94cdf) SHA1(298236225ab5d0265ec615e71d084c79932d0438) ) - ROM_LOAD64_WORD_SWAP( "mpr-20855.11", 0x4800002, 0x400000, CRC(f1ff0794) SHA1(22782a01de0b699e7663aeb659169581830e69fd) ) - ROM_LOAD64_WORD_SWAP( "mpr-20856.12", 0x4800000, 0x400000, CRC(0367a242) SHA1(e3bb0ad7abddd8e81e4052dae169dfa245acbfa8) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20857.13", 0x6800006, 0x400000, CRC(1eab9c62) SHA1(7c5cbab2761609cdf6ab20c2e198135fa9ae1067) ) - ROM_LOAD64_WORD_SWAP( "mpr-20858.14", 0x6800004, 0x400000, CRC(407fbad5) SHA1(594d45311d1daf00773b466c64ece4975df4dd5a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20859.15", 0x6800002, 0x400000, CRC(e14f5c46) SHA1(d80ccd2c5ea1f34280241aaa5c947397b0344820) ) - ROM_LOAD64_WORD_SWAP( "mpr-20860.16", 0x6800000, 0x400000, CRC(e5ce2939) SHA1(7e5626cfb68402de80a05e4c3b18bdfd8bb40f85) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20870.26", 0x000002, 0x400000, CRC(7c9e573d) SHA1(0c488dcca8946b846a179dd66ca09d9eabedc21c) ) - ROM_LOAD_VROM( "mpr-20871.27", 0x000000, 0x400000, CRC(47a1b789) SHA1(8f817fefcfe99c27b30bb3bd9276b0a0947e5992) ) - ROM_LOAD_VROM( "mpr-20872.28", 0x000006, 0x400000, CRC(2f55b423) SHA1(4fa5b00715163b8f68a01627eb04dadbcbb6e89a) ) - ROM_LOAD_VROM( "mpr-20873.29", 0x000004, 0x400000, CRC(c9000e48) SHA1(a64a13e3116e36309ed37ec8651ef8a38b27b71f) ) - ROM_LOAD_VROM( "mpr-20874.30", 0x00000a, 0x400000, CRC(26a9cca2) SHA1(e3b68daaef95e004217c6f7cf3c6d256d083b994) ) - ROM_LOAD_VROM( "mpr-20875.31", 0x000008, 0x400000, CRC(bfefd21e) SHA1(8422b16569e029fead5cfca1ab31a04179a0f4b2) ) - ROM_LOAD_VROM( "mpr-20876.32", 0x00000e, 0x400000, CRC(fa701b87) SHA1(4134da01818cd6776a3c3396ac4f9b9e815722f2) ) - ROM_LOAD_VROM( "mpr-20877.33", 0x00000c, 0x400000, CRC(2cd072f1) SHA1(97881da77abc1aee309de64b53a0da3d22c4112c) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20878.34", 0x000002, 0x400000, CRC(e6d5bc01) SHA1(d8d2e202830693ac2f32304c484276193eb550a3) ) - ROM_LOAD_VROM( "mpr-20879.35", 0x000000, 0x400000, CRC(f1d727ec) SHA1(aecd2096bee590e8ccab9710845e8f0675bd06b0) ) - ROM_LOAD_VROM( "mpr-20880.36", 0x000006, 0x400000, CRC(8b370602) SHA1(2c461ae94e0bd0fea623724b82e08238f947e26b) ) - ROM_LOAD_VROM( "mpr-20881.37", 0x000004, 0x400000, CRC(397322e7) SHA1(9d1c24a063e3e00ca4ee02162dc0fc6de48de2d7) ) - ROM_LOAD_VROM( "mpr-20882.38", 0x00000a, 0x400000, CRC(9185be51) SHA1(b9f5ce29d9dda45733a649aa049124990f536fd9) ) - ROM_LOAD_VROM( "mpr-20883.39", 0x000008, 0x400000, CRC(d1e39e83) SHA1(8d8ccd7f23004e43ede71f73069979a3834bc010) ) - ROM_LOAD_VROM( "mpr-20884.40", 0x00000e, 0x400000, CRC(63c4639a) SHA1(d2b47f7bb8244e0a25c15d025d1bb295101f8875) ) - ROM_LOAD_VROM( "mpr-20885.41", 0x00000c, 0x400000, CRC(61c292ca) SHA1(a2c7e81a8a8ded8d0fd33ffea74a8d2cc8f22520) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20865.21", 0x000000, 0x020000, CRC(b70c2699) SHA1(9ec3f59eda18c03530a5ab7a54c09c1e14cb1c4d) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20866.22", 0x000000, 0x400000, CRC(91f40c1c) SHA1(0c9bee8e9a8bb5ffb2699922204ec26b489eee84) ) - ROM_LOAD( "mpr-20868.24", 0x400000, 0x400000, CRC(fa0c7ec0) SHA1(e3570318b67b9e9819830ad73529a627ac2f2821) ) - ROM_LOAD( "mpr-20867.23", 0x800000, 0x400000, CRC(a579c884) SHA1(ffa626381b1b2c0b963f8f0bad508c052364e657) ) - ROM_LOAD( "mpr-20869.25", 0xc00000, 0x400000, CRC(1f338832) SHA1(77160ea4d336aa88725b868c0035a267e92030b3) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-20886.ic2", 0x000000, 0x020000, CRC(65b05f98) SHA1(b83a2a6e7ec3d2fcd34ce701ffa66d99f6feb86d) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-20887.ic18", 0x000000, 0x400000, CRC(a0757684) SHA1(9222527d90b3f462846a4fff95af83011871c277) ) - ROM_LOAD( "mpr-20888.ic20", 0x400000, 0x400000, CRC(b495fe65) SHA1(1573ced683534bb279a6dd69f6460745b728eac0) ) - ROM_LOAD( "mpr-20889.ic22", 0x800000, 0x400000, CRC(18eec79e) SHA1(341982d89952ed85c921c627c294609bf83ec44b) ) - ROM_LOAD( "mpr-20890.ic24", 0xc00000, 0x400000, CRC(aac96fa2) SHA1(bc68cd48eae50d3558d3c5a0302a3930639e3019) ) -ROM_END - -ROM_START( dayto2pe ) /* Step 2.1 */ - ROM_REGION64_BE( 0x8800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-21178.17", 0x000006, 0x200000, CRC(230bf8ac) SHA1(bc64c4f8a794ca59b5c488a34d1b5a2b67af8fec) ) - ROM_LOAD64_WORD_SWAP( "epr-21179.18", 0x000004, 0x200000, CRC(d5ffb4d6) SHA1(e1160bfcc180667463815b64e1815be38b6ef49d) ) - ROM_LOAD64_WORD_SWAP( "epr-21180.19", 0x000002, 0x200000, CRC(6e7b98ed) SHA1(67b0153dbc67c5df9231a968fd8a9714a1bb3f67) ) - ROM_LOAD64_WORD_SWAP( "epr-21181.20", 0x000000, 0x200000, CRC(bf0007ed) SHA1(4e044313e7abbd4d68c1c78ad9464688d7614590) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-21182.1", 0x800006, 0x400000, CRC(ba8e667f) SHA1(649f273cc612b014d9b04d301da018d248a73839) ) - ROM_LOAD64_WORD_SWAP( "mpr-21183.2", 0x800004, 0x400000, CRC(b4b44805) SHA1(8db3700207ec530ee3a83431fc891d7ab3d3bfec) ) - ROM_LOAD64_WORD_SWAP( "mpr-21184.3", 0x800002, 0x400000, CRC(25616403) SHA1(6607734479806a8812bff4d6a697f6a024156142) ) - ROM_LOAD64_WORD_SWAP( "mpr-21185.4", 0x800000, 0x400000, CRC(b6d5d2a1) SHA1(8e6548d65d926934c5ee3ee3669d1ce2a880bc82) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-21186.5", 0x2800006, 0x400000, CRC(a6128662) SHA1(52514e8ad978688e812a2a7d0fb54817814f2729) ) - ROM_LOAD64_WORD_SWAP( "mpr-21187.6", 0x2800004, 0x400000, CRC(3bd14ee6) SHA1(55d403c38439d9d489ce94bc34017ea43df27e91) ) - ROM_LOAD64_WORD_SWAP( "mpr-21188.7", 0x2800002, 0x400000, CRC(753fc2a5) SHA1(1d4bd2b971fb0b7897109f078e260eaae437a78c) ) - ROM_LOAD64_WORD_SWAP( "mpr-21189.8", 0x2800000, 0x400000, CRC(cb439c45) SHA1(a6326ae9cbbaa7235d7c9e45fa4dbc7267b681c9) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-21190.9", 0x4800006, 0x400000, CRC(984d56eb) SHA1(a04beeeadc8a11730b41ae66607777be3a7b1b5e) ) - ROM_LOAD64_WORD_SWAP( "mpr-21191.10", 0x4800004, 0x400000, CRC(a2bdcfe0) SHA1(c72896d0338a98efe83e70284c49b966d679e7ea) ) - ROM_LOAD64_WORD_SWAP( "mpr-21192.11", 0x4800002, 0x400000, CRC(60cbb1fa) SHA1(3b1d2da551a287efdc97e46ffeed56cf7e967bd5) ) - ROM_LOAD64_WORD_SWAP( "mpr-21193.12", 0x4800000, 0x400000, CRC(4638fef4) SHA1(0c880119c642c96b5f88eb024575f320d099d988) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-21194.13", 0x6800006, 0x400000, CRC(12c7a414) SHA1(3069ce4e50a82e243fa0c794faeafd735625df5c) ) - ROM_LOAD64_WORD_SWAP( "mpr-21195.14", 0x6800004, 0x400000, CRC(7f39761c) SHA1(e861e3c622bdc44510bd0ca7e2ef1284e4550d2e) ) - ROM_LOAD64_WORD_SWAP( "mpr-21196.15", 0x6800002, 0x400000, CRC(0ab46db5) SHA1(8c7ab959c677e6b8f1d1bc79cd8e04299aab56aa) ) - ROM_LOAD64_WORD_SWAP( "mpr-21197.16", 0x6800000, 0x400000, CRC(04015247) SHA1(a8b3d1f9572367e1c84475035ae0c6bb7726f01d) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-21198.26", 0x000002, 0x400000, CRC(42ec9ed4) SHA1(bdc73050a5e51032478df77a02f7cd4b4ed9d337) ) - ROM_LOAD_VROM( "mpr-21199.27", 0x000000, 0x400000, CRC(fa28088c) SHA1(851f4fc5baa596f78bed21b0fe0e756865c19a9b) ) - ROM_LOAD_VROM( "mpr-21200.28", 0x000006, 0x400000, CRC(fbb5aa1d) SHA1(04b25e8fb8783e785fd471ffcf8330ca9f2e3ae7) ) - ROM_LOAD_VROM( "mpr-21201.29", 0x000004, 0x400000, CRC(e6b13469) SHA1(4968ab49aba86d6adcfb6200a5a02a410bbbd98c) ) - ROM_LOAD_VROM( "mpr-21202.30", 0x00000a, 0x400000, CRC(e6b4c2be) SHA1(d3209101793f44d4ece327f24cd3a8a52bfc8298) ) - ROM_LOAD_VROM( "mpr-21203.31", 0x000008, 0x400000, CRC(32d08d33) SHA1(dd9a3ac5a8306b861e32bbbfad2d4c5a7790c45d) ) - ROM_LOAD_VROM( "mpr-21204.32", 0x00000e, 0x400000, CRC(ef18fe0a) SHA1(81c8c87537eef6266b5ab464ba84cd12594e64bd) ) - ROM_LOAD_VROM( "mpr-21205.33", 0x00000c, 0x400000, CRC(4687bea6) SHA1(6633ad8ea96f8b3a89f49dbe52f92906be504ba1) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-21206.34", 0x000002, 0x400000, CRC(ec2d6884) SHA1(8ec53005830902ebeb4f0ee36c5b2b73c2df5ebd) ) - ROM_LOAD_VROM( "mpr-21207.35", 0x000000, 0x400000, CRC(eeaa510b) SHA1(5f1b9e1d09f4866289ac4ad718cb90329a93353f) ) - ROM_LOAD_VROM( "mpr-21208.36", 0x000006, 0x400000, CRC(b222fef0) SHA1(88cf7ce17feef2da34a86217cced98a32051b22b) ) - ROM_LOAD_VROM( "mpr-21209.37", 0x000004, 0x400000, CRC(170a28ce) SHA1(ca0043d42e02f5913e4eb92686586704724a3e5e) ) - ROM_LOAD_VROM( "mpr-21210.38", 0x00000a, 0x400000, CRC(460cefe0) SHA1(820f3780e89173134792c62cc43f7c629bd555dd) ) - ROM_LOAD_VROM( "mpr-21211.39", 0x000008, 0x400000, CRC(c84759ce) SHA1(9b2de7fa26684457a61a2eeb0a69bd28125dd118) ) - ROM_LOAD_VROM( "mpr-21212.40", 0x00000e, 0x400000, CRC(6f8a75e0) SHA1(3b6cb238c29a6778be354882cd27b371ce96d332) ) - ROM_LOAD_VROM( "mpr-21213.41", 0x00000c, 0x400000, CRC(de75bec6) SHA1(f0d6f143ad227b221bf7f7c3d1b2edaa28ad4813) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-21325.21", 0x000000, 0x020000, CRC(004ad6ad) SHA1(3cedc58aaf40539325870c99ecedf51f161f4f4c) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-21285.22", 0x000000, 0x400000, CRC(7cdca6ac) SHA1(fda23365d5c40f4f9e810def914cd70418e5662e) ) - ROM_LOAD( "mpr-21287.24", 0x400000, 0x400000, CRC(06b66f17) SHA1(a7ce8f49d2db804429cedb5db53de8762b05845a) ) - ROM_LOAD( "mpr-21286.23", 0x800000, 0x400000, CRC(749dfef0) SHA1(43032b465f426188a6d718f22a11c6d9a79f7577) ) - ROM_LOAD( "mpr-21288.25", 0xc00000, 0x400000, CRC(14bee38e) SHA1(68300bf663ec3f597c73e7a39ca7057cf51a7a47) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-20886.ic2", 0x000000, 0x020000, CRC(65b05f98) SHA1(b83a2a6e7ec3d2fcd34ce701ffa66d99f6feb86d) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-20887.ic18", 0x000000, 0x400000, CRC(a0757684) SHA1(9222527d90b3f462846a4fff95af83011871c277) ) - ROM_LOAD( "mpr-20888.ic20", 0x400000, 0x400000, CRC(b495fe65) SHA1(1573ced683534bb279a6dd69f6460745b728eac0) ) - ROM_LOAD( "mpr-20889.ic22", 0x800000, 0x400000, CRC(18eec79e) SHA1(341982d89952ed85c921c627c294609bf83ec44b) ) - ROM_LOAD( "mpr-20890.ic24", 0xc00000, 0x400000, CRC(aac96fa2) SHA1(bc68cd48eae50d3558d3c5a0302a3930639e3019) ) -ROM_END - -ROM_START( srally2 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20632.17", 0x000006, 0x200000, CRC(6829a801) SHA1(2aa3834f6a8c53f5db57ab52994b8ab3fde2d7c2) ) - ROM_LOAD64_WORD_SWAP( "epr-20633.18", 0x000004, 0x200000, CRC(f5a24f24) SHA1(6f741bc53d51ff4b5535dbee35aa490f159945ec) ) - ROM_LOAD64_WORD_SWAP( "epr-20634.19", 0x000002, 0x200000, CRC(45a09245) SHA1(1e7e844d38e9cba59c2a7e6f2e6ca2bba2c8b352) ) - ROM_LOAD64_WORD_SWAP( "epr-20635.20", 0x000000, 0x200000, CRC(7937473f) SHA1(d5bb57a08019a4523f976c418526efffc6ef988b) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20602.1", 0x800006, 0x400000, CRC(60cfa72a) SHA1(2cb9e16d50979461d39e0493273ee38d23900b45) ) - ROM_LOAD64_WORD_SWAP( "mpr-20603.2", 0x800004, 0x400000, CRC(ad0d8eb8) SHA1(5bcd0a72b2d48d1834f296b7b37a56ae13c461fa) ) - ROM_LOAD64_WORD_SWAP( "mpr-20604.3", 0x800002, 0x400000, CRC(99c5f396) SHA1(dc586591a684bde224704f8356640343eb7651b3) ) - ROM_LOAD64_WORD_SWAP( "mpr-20605.4", 0x800000, 0x400000, CRC(00513401) SHA1(c6ac665cea999dcf483e9837daefd7fcdd755043) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20606.5", 0x1800006, 0x400000, CRC(072498fd) SHA1(f7804a7c2139901367b06823bf0a6472e24078a6) ) - ROM_LOAD64_WORD_SWAP( "mpr-20607.6", 0x1800004, 0x400000, CRC(6da85aa3) SHA1(04fce70fa69aca615e5b009be99f7a657070b0c0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20608.7", 0x1800002, 0x400000, CRC(0c9b0571) SHA1(2e13ab15d7fb6104316dc86770172269c8280306) ) - ROM_LOAD64_WORD_SWAP( "mpr-20609.8", 0x1800000, 0x400000, CRC(c03cc0e5) SHA1(8ee99dd37587dd1aa24d746ef14180515306e5d9) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20610.9", 0x2800006, 0x400000, CRC(b6e0ff4e) SHA1(9b6ab7925b64b34f0d16ff0ba72dd0a0e6d23290) ) - ROM_LOAD64_WORD_SWAP( "mpr-20611.10", 0x2800004, 0x400000, CRC(5d9f8ba2) SHA1(42bec0ca6cf8d0192183dd08c4a92157c34d3651) ) - ROM_LOAD64_WORD_SWAP( "mpr-20612.11", 0x2800002, 0x400000, CRC(721a44b6) SHA1(151e4f9e2ed4095620c88bf54bf69f13f441e5ce) ) - ROM_LOAD64_WORD_SWAP( "mpr-20613.12", 0x2800000, 0x400000, CRC(2938c0d9) SHA1(95c444ef0b53afd129d512f8a8961938b0fd703e) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20616.26", 0x000002, 0x400000, CRC(e11dcf8b) SHA1(bbc384e95d52d883cbc68122f5a3c44dee98d54c) ) - ROM_LOAD_VROM( "mpr-20617.27", 0x000000, 0x400000, CRC(96acef3f) SHA1(a72ed7ac3f8132562c3d2e9bdf7b5c596082cb29) ) - ROM_LOAD_VROM( "mpr-20618.28", 0x000006, 0x400000, CRC(6c281281) SHA1(ddf056386e7e44f2d2d034f405c55bc5a3109848) ) - ROM_LOAD_VROM( "mpr-20619.29", 0x000004, 0x400000, CRC(0fa65819) SHA1(b9ce62a149f019b04eb72e0d6c9339472f403823) ) - ROM_LOAD_VROM( "mpr-20620.30", 0x00000a, 0x400000, CRC(ee79585f) SHA1(ea1797667a6ef6e38cf48543a63fd69a097b1e50) ) - ROM_LOAD_VROM( "mpr-20621.31", 0x000008, 0x400000, CRC(3a99148f) SHA1(0a2e5b4af85a4ce370c8defeb8d81def1279e693) ) - ROM_LOAD_VROM( "mpr-20622.32", 0x00000e, 0x400000, CRC(0618f056) SHA1(873063ab147b6b513683d4b4fe6a874f920ba818) ) - ROM_LOAD_VROM( "mpr-20623.33", 0x00000c, 0x400000, CRC(ccf31b85) SHA1(b25ea13706734a2e5c2f7587f494d59b6ad43c1f) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20624.34", 0x000002, 0x400000, CRC(90f30936) SHA1(43be3fe5a4200ab4200a49d571d9114e894db700) ) - ROM_LOAD_VROM( "mpr-20625.35", 0x000000, 0x400000, CRC(04f804fa) SHA1(6537733d6a0c12e084937366bbdcc1b3bea3b4aa) ) - ROM_LOAD_VROM( "mpr-20626.36", 0x000006, 0x400000, CRC(2d6c97d6) SHA1(201d01556e8381f21670b9637eb479e8f88e880e) ) - ROM_LOAD_VROM( "mpr-20627.37", 0x000004, 0x400000, CRC(a14ee871) SHA1(c846e39760570703ec97ae085992b2de0daef458) ) - ROM_LOAD_VROM( "mpr-20628.38", 0x00000a, 0x400000, CRC(bba829a3) SHA1(ad44d53e9cf5bc1f6a03fe961d5f13410261d912) ) - ROM_LOAD_VROM( "mpr-20629.39", 0x000008, 0x400000, CRC(ead2eb31) SHA1(cfb2ff20d5fcdaa9e0b075f84e94d07ff069d17e) ) - ROM_LOAD_VROM( "mpr-20630.40", 0x00000e, 0x400000, CRC(cc5881b8) SHA1(6d9b973c442c5d3bb872624412b8dfbef0677b34) ) - ROM_LOAD_VROM( "mpr-20631.41", 0x00000c, 0x400000, CRC(5cb69ffd) SHA1(654d8187634726c8218bf84304765a40c2d4b117) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20636.21", 0x000000, 0x080000, CRC(7139ebf8) SHA1(3e06e8aa5c3eaf371073caa51e5fc5b42826f015) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20614.22", 0x000000, 0x400000, CRC(a3930e4a) SHA1(6a34f5b7817db8304454235997eaa453528bc655) ) - ROM_LOAD( "mpr-20615.24", 0x400000, 0x400000, CRC(62e8a94a) SHA1(abed71b1c6eb2563fe58e6598c10dd266340e5e0) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr-20641.2", 0x000000, 0x020000, CRC(c9b82035) SHA1(1e438f8104f79c2956bb1aeb710b01b6dc59101e) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr-20637.57", 0x000000, 0x400000, CRC(d66e8a02) SHA1(f5d2bf4c97139fa56d14ffe2885a86e8f17ee965) ) - ROM_LOAD( "mpr-20638.58", 0x400000, 0x400000, CRC(d1513382) SHA1(b4d5b7680e2e73b361530d689ffdb0bab62e9ee4) ) - ROM_LOAD( "mpr-20639.59", 0x800000, 0x400000, CRC(f6603b7b) SHA1(9f31a2562168e5eba51864935e1c15db4e3114fb) ) - ROM_LOAD( "mpr-20640.60", 0xc00000, 0x400000, CRC(9eea07b7) SHA1(bdcf136f29e1435c9d82718730ef209d8cfe74d8) ) -ROM_END - -ROM_START( sraly2dx ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20502.17", 0x000006, 0x200000, CRC(af16846d) SHA1(a0babc4dc3809ca1e71eaad4dc2f8c1597575e8b) ) - ROM_LOAD64_WORD_SWAP( "epr-20503.18", 0x000004, 0x200000, CRC(6e238b3d) SHA1(78da9abf39a2371d74d6b72b00f2467dfe86c4d5) ) - ROM_LOAD64_WORD_SWAP( "epr-20504.19", 0x000002, 0x200000, CRC(30bbc46d) SHA1(e6e2c76886cc740d009b4d7ac4412c0591caf34b) ) - ROM_LOAD64_WORD_SWAP( "epr-20505.20", 0x000000, 0x200000, CRC(c24a5097) SHA1(93ba7bd98333c8e7f2dd067ac10d4a231a38fa84) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20472.1", 0x800006, 0x400000, CRC(db8d6a00) SHA1(67b6206361edd5714aad9dc54c43d79d8e649c7e) ) - ROM_LOAD64_WORD_SWAP( "mpr-20473.2", 0x800004, 0x400000, CRC(dd8e3131) SHA1(402d50fddfd2a5e7691bbccf309ce8522e3afea9) ) - ROM_LOAD64_WORD_SWAP( "mpr-20474.3", 0x800002, 0x400000, CRC(66cb4c8e) SHA1(21b47691011643b7560a3bc55b38eb559f164376) ) - ROM_LOAD64_WORD_SWAP( "mpr-20475.4", 0x800000, 0x400000, CRC(d0f059ee) SHA1(d6c15419f60306f11b0ff19ac0ee8c0052ac0b67) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20476.5", 0x1800006, 0x400000, CRC(cc97d758) SHA1(3b9a83f1837a1b64ba70dfe4707edc738b489543) ) - ROM_LOAD64_WORD_SWAP( "mpr-20477.6", 0x1800004, 0x400000, CRC(0b5ac3ad) SHA1(87a8a983b3d020388240634a4598a8eae9896d3a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20478.7", 0x1800002, 0x400000, CRC(5dfd59f7) SHA1(dd01fcac97cee9f2a7216f3f9b3135e60d8c4704) ) - ROM_LOAD64_WORD_SWAP( "mpr-20479.8", 0x1800000, 0x400000, CRC(82ec5488) SHA1(b126aece3dc841bf09a9c1e450d1f49ce6337b71) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20480.9", 0x2800006, 0x400000, CRC(1e486a2e) SHA1(1da0f035f78a8e06c38291b3073c0d98b4603e45) ) - ROM_LOAD64_WORD_SWAP( "mpr-20481.10", 0x2800004, 0x400000, CRC(42acc4f9) SHA1(064b80116b24946cf638d1e3f3d608fe97a60815) ) - ROM_LOAD64_WORD_SWAP( "mpr-20482.11", 0x2800002, 0x400000, CRC(d21668d1) SHA1(94113533607d388003c4dc43fde0fe4aea4d9589) ) - ROM_LOAD64_WORD_SWAP( "mpr-20483.12", 0x2800000, 0x400000, CRC(7d487f3a) SHA1(0ef22b8ff6f05acf97cd8f792788467c47c4a2f9) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20486.26", 0x000002, 0x400000, CRC(dab1f70f) SHA1(37083dfd7a91618afccf3a70740de296e6b542cb) ) - ROM_LOAD_VROM( "mpr-20487.27", 0x000000, 0x400000, CRC(ffb38774) SHA1(0b8cd5fa26e7b70bd8e2e93e3be702194d119e52) ) - ROM_LOAD_VROM( "mpr-20488.28", 0x000006, 0x400000, CRC(0c25a1fb) SHA1(9ed754d8210aad3ac76416b5e7bd55d8e2f0a440) ) - ROM_LOAD_VROM( "mpr-20489.29", 0x000004, 0x400000, CRC(6e8a911a) SHA1(1d9aa42c81eb18cfae64c6df91e6cffb1e8f52fd) ) - ROM_LOAD_VROM( "mpr-20490.30", 0x00000a, 0x400000, CRC(93da0363) SHA1(1cf69103991dee4527dec490663ae8a2526fa12f) ) - ROM_LOAD_VROM( "mpr-20491.31", 0x000008, 0x400000, CRC(c4808e7a) SHA1(aa6af8a2338aa716b04f9e84fb7ce14d55bdd3bd) ) - ROM_LOAD_VROM( "mpr-20492.32", 0x00000e, 0x400000, CRC(d1b27b2b) SHA1(23c7b0c1c427ad420fbe208851d2ed14f5fbb723) ) - ROM_LOAD_VROM( "mpr-20493.33", 0x00000c, 0x400000, CRC(e43cc6af) SHA1(26489c60c7fccf2145ca4489717a4e0b1243b5ce) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20494.34", 0x000002, 0x400000, CRC(b997b531) SHA1(eb4568701d9540aeb681a2355cbb1f3f4adfd651) ) - ROM_LOAD_VROM( "mpr-20495.35", 0x000000, 0x400000, CRC(72480f09) SHA1(30466c8f57cf9109c1aebb6dc2fb1c580eca7a3c) ) - ROM_LOAD_VROM( "mpr-20496.36", 0x000006, 0x400000, CRC(96f6d3a8) SHA1(8b18dbd20567e6fa6dd07487b36f6ebba74a04c5) ) - ROM_LOAD_VROM( "mpr-20497.37", 0x000004, 0x400000, CRC(7dc700a3) SHA1(3bbc5517151067946c2ecefa03c8806249fbc7ff) ) - ROM_LOAD_VROM( "mpr-20498.38", 0x00000a, 0x400000, CRC(4e844081) SHA1(1e3acf84b4c5a85ac26cb4e3f6d5a31433e4b1f7) ) - ROM_LOAD_VROM( "mpr-20499.39", 0x000008, 0x400000, CRC(09d9c7d1) SHA1(78c81254eb0babdfbfc84612cae5037fce82b7fe) ) - ROM_LOAD_VROM( "mpr-20500.40", 0x00000e, 0x400000, CRC(3766fd87) SHA1(941ff6d89dbc8e59cc7a9a677c329aadb9068e5d) ) - ROM_LOAD_VROM( "mpr-20501.41", 0x00000c, 0x400000, CRC(741da4ac) SHA1(fa6e52b42b927bc659f139f4dd039204bda3b224) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20506.21", 0x000000, 0x080000, CRC(855af67b) SHA1(a0359b8329c9c0746bc996b9272b7a1f2db07368) ) - - // Samples - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20484.22", 0x000000, 0x400000, CRC(8ac3fbc4) SHA1(8b7624506ff00256a745bb4b7393cf17a081faa4) ) - ROM_LOAD( "mpr-20485.24", 0x400000, 0x400000, CRC(cfd8c19b) SHA1(3b8cc045cb02b93f9d35b81a48085d4d480d6bff) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x1000000, 0 ) -ROM_END - -ROM_START( harley ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20393a.17", 0x000006, 0x200000, CRC(b5646556) SHA1(4bff0e140e1d1df7459f7194aa4a335bc4592203) ) - ROM_LOAD64_WORD_SWAP( "epr-20394a.18", 0x000004, 0x200000, CRC(ce29e2b6) SHA1(482aaf5480b219b8ac6e4e36a6d64359e1834f44) ) - ROM_LOAD64_WORD_SWAP( "epr-20395a.19", 0x000002, 0x200000, CRC(761f4976) SHA1(3e451a99b87f05d6fa35efdd944cd4c2033dd5fd) ) - ROM_LOAD64_WORD_SWAP( "epr-20396a.20", 0x000000, 0x200000, CRC(16b0106b) SHA1(3b8449805b73ff6ff1a1c8b134cd861b77b7f8d8) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20361.1", 0x800006, 0x400000, CRC(ddb66c2f) SHA1(e47450cc38af99e2870aac1f598e057a0c6efe47) ) - ROM_LOAD64_WORD_SWAP( "mpr-20362.2", 0x800004, 0x400000, CRC(f7e60dfd) SHA1(e87b1a35513d6c9392643e8e97e2bc3eccdf21cb) ) - ROM_LOAD64_WORD_SWAP( "mpr-20363.3", 0x800002, 0x400000, CRC(3e3cc6ff) SHA1(ae0640ac00b6a09010984197a1aeb43817576181) ) - ROM_LOAD64_WORD_SWAP( "mpr-20364.4", 0x800000, 0x400000, CRC(a2a68ef2) SHA1(4d6ddd85d3350e56276c7cb11dd428d2c13a0374) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20365.5", 0x1800006, 0x400000, CRC(7dd50361) SHA1(731ed1b660ebdaf1c9d583b374181ddc1496322b) ) - ROM_LOAD64_WORD_SWAP( "mpr-20366.6", 0x1800004, 0x400000, CRC(45e3850e) SHA1(54e6a285c594418355ab80cdfa4f5881cf74e39a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20367.7", 0x1800002, 0x400000, CRC(6c3f9748) SHA1(0bec4c32c7e5fe715bb4572bf54c559583637170) ) - ROM_LOAD64_WORD_SWAP( "mpr-20368.8", 0x1800000, 0x400000, CRC(100c9846) SHA1(63b2ab000b5e4996c68724e3f3457a50e6185295) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "epr-20409.13", 0x4000006, 0x200000, CRC(58caaa75) SHA1(ce27ff9109f4fd69191b6aec3298013261f657e5) ) - ROM_LOAD64_WORD_SWAP( "epr-20410.14", 0x4000004, 0x200000, CRC(98b126f2) SHA1(f102ce6fdcd5c7eebc2c802b80a3ee861fc50f19) ) - ROM_LOAD64_WORD_SWAP( "epr-20411.15", 0x4000002, 0x200000, CRC(848daaf7) SHA1(85486e8fbac4237a2fed31120cc15239d5037d9a) ) - ROM_LOAD64_WORD_SWAP( "epr-20412.16", 0x4000000, 0x200000, CRC(0d51bb34) SHA1(24ce007e1abdd26d10b3d2a294503bf70a48db2d) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20377.26", 0x000002, 0x400000, CRC(4d2887e5) SHA1(6c965262bbeb8c5a10cdcf5ee31f2f50616ad6f0) ) - ROM_LOAD_VROM( "mpr-20378.27", 0x000000, 0x400000, CRC(5ad7c0ec) SHA1(19eee9a512abf857e2fea40261f90d727f79961a) ) - ROM_LOAD_VROM( "mpr-20379.28", 0x000006, 0x400000, CRC(1e51c9f0) SHA1(e62f6b4b5378f2724cd7ae9a0c87a9de31d0ff37) ) - ROM_LOAD_VROM( "mpr-20380.29", 0x000004, 0x400000, CRC(e10d35ae) SHA1(d99615b9d6b6c89cb1f9bfeba4f3aebefbaf857c) ) - ROM_LOAD_VROM( "mpr-20381.30", 0x00000a, 0x400000, CRC(76cd36a2) SHA1(026dfe1c996a923b8114defb96a3b200e2c72279) ) - ROM_LOAD_VROM( "mpr-20382.31", 0x000008, 0x400000, CRC(f089ae37) SHA1(d4366617fc956b2ad653409981227f238314c7eb) ) - ROM_LOAD_VROM( "mpr-20383.32", 0x00000e, 0x400000, CRC(9e96d3be) SHA1(a674544eb5e1792f82d2b58ab26e9be2cf3a4e25) ) - ROM_LOAD_VROM( "mpr-20384.33", 0x00000c, 0x400000, CRC(5bdfbb52) SHA1(31470f761170e489582db36124d7740d8dbb94aa) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20385.34", 0x000002, 0x400000, CRC(12db1729) SHA1(58fd946d8d63cf8b8da741a68d18c58f6894d661) ) - ROM_LOAD_VROM( "mpr-20386.35", 0x000000, 0x400000, CRC(db2ccaf8) SHA1(873fc1f293a50bb98e463449c8591d2cfc3cd93f) ) - ROM_LOAD_VROM( "mpr-20387.36", 0x000006, 0x400000, CRC(c5dde91b) SHA1(8155f49918cd57bc625fbc149ffdd9074f5906f0) ) - ROM_LOAD_VROM( "mpr-20388.37", 0x000004, 0x400000, CRC(aeaa862e) SHA1(e78a7e446df2f15570e1dc64a5f8b22ac09ac6a0) ) - ROM_LOAD_VROM( "mpr-20389.38", 0x00000a, 0x400000, CRC(49bb6593) SHA1(ffed9c3748405e4835998f644077cf8581bd00c7) ) - ROM_LOAD_VROM( "mpr-20390.39", 0x000008, 0x400000, CRC(1d4a8efe) SHA1(7a4515906a351737fb5b3a221bad839e61ea03a2) ) - ROM_LOAD_VROM( "mpr-20391.40", 0x00000e, 0x400000, CRC(5dc452dc) SHA1(203d5d8008bea8d2f43566fff6971b3f7add75bc) ) - ROM_LOAD_VROM( "mpr-20392.41", 0x00000c, 0x400000, CRC(892208cb) SHA1(12b5309f5f66d7c2165b285e0a9710ee0d9c99f4) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20397.21", 0x000000, 0x080000, CRC(5b20b54a) SHA1(26fa5aedc6ccc37f2c0879e1a0f9fbac2331e12e) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20373.22", 0x000000, 0x400000, CRC(c684e8a3) SHA1(2be1db24c3b221976cbcc6ad3d8cb7c6f4e3a13e) ) - ROM_LOAD( "mpr-20375.24", 0x400000, 0x400000, CRC(906ace86) SHA1(8edd2183d83897eda0578a34938b926672c21953) ) - ROM_LOAD( "mpr-20374.23", 0x800000, 0x400000, CRC(fcf6ea21) SHA1(9102323cf867f9a87fe362b78d8e1be8a2809fd3) ) - ROM_LOAD( "mpr-20376.25", 0xc00000, 0x400000, CRC(deeed366) SHA1(6d4809960c34865374d146605bb3e009394f7a8c) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x1000000, 0 ) -ROM_END - -ROM_START( fvipers2 ) /* Step 2.0 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr-20596a.17", 0x000006, 0x200000, CRC(969ab801) SHA1(a7a2aa71204d1c38a6a8c0605331fd859cb224f1) ) - ROM_LOAD64_WORD_SWAP( "epr-20597a.18", 0x000004, 0x200000, CRC(6fcee322) SHA1(d65303f2551902ac5446a35656241628d67f4a63) ) - ROM_LOAD64_WORD_SWAP( "epr-20598a.19", 0x000002, 0x200000, CRC(87bd070f) SHA1(270840e828a59f74d41a852d26f0c44e74775100) ) - ROM_LOAD64_WORD_SWAP( "epr-20599a.20", 0x000000, 0x200000, CRC(9df02ab9) SHA1(772185e0cd8b481ac62fee0dd472a155126c1fac) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr-20560.1", 0x800006, 0x400000, CRC(b0f6584d) SHA1(e776a47fae42e43189840418945d33cf23a1f5fe) ) - ROM_LOAD64_WORD_SWAP( "mpr-20561.2", 0x800004, 0x400000, CRC(38a0f112) SHA1(6ad9ee6a9f08ef379acce2360b3e861f574101f0) ) - ROM_LOAD64_WORD_SWAP( "mpr-20562.3", 0x800002, 0x400000, CRC(96e4942e) SHA1(2567671fe9d7e207634464d08e5789f4521ffed2) ) - ROM_LOAD64_WORD_SWAP( "mpr-20563.4", 0x800000, 0x400000, CRC(999848ac) SHA1(55b37ea0cfa7989871f88d89d9a13df5b1ec4e92) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr-20564.5", 0x1800006, 0x400000, CRC(be69fca0) SHA1(8a0c4449b5742235f8e5eaf6d168e7512ed96fa6) ) - ROM_LOAD64_WORD_SWAP( "mpr-20565.6", 0x1800004, 0x400000, CRC(d6bbe638) SHA1(725f53b087c65d09e28ad3cec8634d5e7e63158a) ) - ROM_LOAD64_WORD_SWAP( "mpr-20566.7", 0x1800002, 0x400000, CRC(2901883b) SHA1(f086587578e4f4931da8a18ff53adf8b3d665a09) ) - ROM_LOAD64_WORD_SWAP( "mpr-20567.8", 0x1800000, 0x400000, CRC(80f4eba7) SHA1(ead30d57e3ca39dcd4195eeb2b4c6ee71c968769) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr-20568.9", 0x2800006, 0x400000, CRC(ff23cf1c) SHA1(54b8a38c8deda1ddd0e26aa47504bfb0e2ed4b79) ) - ROM_LOAD64_WORD_SWAP( "mpr-20569.10", 0x2800004, 0x400000, CRC(136c014f) SHA1(c11b9b93ec6189ca745e6de9697bb274f07c6b1c) ) - ROM_LOAD64_WORD_SWAP( "mpr-20570.11", 0x2800002, 0x400000, CRC(2c0d91fc) SHA1(5ab896272da3650dbc482629ef7bdaccfa8eba54) ) - ROM_LOAD64_WORD_SWAP( "mpr-20571.12", 0x2800000, 0x400000, CRC(40b459af) SHA1(f2bca8783a787df45d4142436245d343a1a13fa7) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr-20572.13", 0x3800006, 0x400000, CRC(d4a41a0b) SHA1(2ceb45e5ff22e2539d52a960713606742e11ed18) ) - ROM_LOAD64_WORD_SWAP( "mpr-20573.14", 0x3800004, 0x400000, CRC(e0dee793) SHA1(be80a5ca9d3cd910b15a4372883e047c2cc6b267) ) - ROM_LOAD64_WORD_SWAP( "mpr-20574.15", 0x3800002, 0x400000, CRC(68567771) SHA1(6183f588092d079c10e002adf641520183148143) ) - ROM_LOAD64_WORD_SWAP( "mpr-20575.16", 0x3800000, 0x400000, CRC(ebc99d8a) SHA1(66bd76738d76f42e32d3a27db4a8586dbb694f36) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr-20580.26", 0x000002, 0x400000, CRC(6d42775e) SHA1(9cd77ee6a317dcac67466920f59ac5cac98f67e2) ) - ROM_LOAD_VROM( "mpr-20581.27", 0x000000, 0x400000, CRC(ac9eec04) SHA1(0d4af895bc7cc100f9618c52e989aadbc0aa6d6e) ) - ROM_LOAD_VROM( "mpr-20582.28", 0x000006, 0x400000, CRC(b202f7bd) SHA1(6600f4bf49795c2821a2119f1251348782bcbdb2) ) - ROM_LOAD_VROM( "mpr-20583.29", 0x000004, 0x400000, CRC(0d6d508a) SHA1(bf7e419b097b0c90ee278766a3ee527beb860e71) ) - ROM_LOAD_VROM( "mpr-20584.30", 0x00000a, 0x400000, CRC(eccf4de6) SHA1(b5508aab6fd28f8b55aae495920382259b4c75e5) ) - ROM_LOAD_VROM( "mpr-20585.31", 0x000008, 0x400000, CRC(b383f4e5) SHA1(4a0d02de7fc41c66862917c35b0c2026ad06dfd0) ) - ROM_LOAD_VROM( "mpr-20586.32", 0x00000e, 0x400000, CRC(e7cd5dfb) SHA1(b33698792b3a1190712ad1c8c337f1f7fe67a1cb) ) - ROM_LOAD_VROM( "mpr-20587.33", 0x00000c, 0x400000, CRC(e2b2abe1) SHA1(32a6253948b852eb647a28438e8928684fc57b72) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr-20588.34", 0x000002, 0x400000, CRC(84f4162d) SHA1(efb7c632399616052e39f21dd399eba78563d83a) ) - ROM_LOAD_VROM( "mpr-20589.35", 0x000000, 0x400000, CRC(4e653d02) SHA1(120161ed82d882daa90b5637aa84714de7b26c95) ) - ROM_LOAD_VROM( "mpr-20590.36", 0x000006, 0x400000, CRC(527049be) SHA1(541bba0101baacfae3de7d998a5f29da61b2b956) ) - ROM_LOAD_VROM( "mpr-20591.37", 0x000004, 0x400000, CRC(3be20243) SHA1(83797b50f368843462dc46401940eda1a5c2acbd) ) - ROM_LOAD_VROM( "mpr-20592.38", 0x00000a, 0x400000, CRC(d7985b28) SHA1(a7a15757802d88e8ded363bad4d1d673bfc53a76) ) - ROM_LOAD_VROM( "mpr-20593.39", 0x000008, 0x400000, CRC(e670c4d3) SHA1(bc180de98757972b322f4f0d461a8c8d8094ac05) ) - ROM_LOAD_VROM( "mpr-20594.40", 0x00000e, 0x400000, CRC(35578240) SHA1(7902f41d376dd3449a17fb4d907e0bd84d70272b) ) - ROM_LOAD_VROM( "mpr-20595.41", 0x00000c, 0x400000, CRC(1d4a2cad) SHA1(0ee9eef0bb969e715a98ca1c212a02d413f36145) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr-20600a.21", 0x000000, 0x080000, CRC(f0e7db7e) SHA1(980c1c6d3e8534c414d8b8016531e90f77e00f90) ) - - // Samples - /* Are these in the correct order ?? */ - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr-20576", 0x000000, 0x400000, CRC(1eeb540b) SHA1(f8de2ff302757aad38b61e2093e3783857d5d0fb) ) /* IC22 ?? */ - ROM_LOAD( "mpr-20578", 0x400000, 0x400000, CRC(d222f2d4) SHA1(f6128f8267e91242d7fc3d85beb2cd35124dd018) ) /* IC24 ?? */ - ROM_LOAD( "mpr-20577", 0x800000, 0x400000, CRC(3b236187) SHA1(0ba1513e0652f6686b306a4f600a565570b1ebcc) ) /* IC23 ?? */ - ROM_LOAD( "mpr-20579", 0xc00000, 0x400000, CRC(08788436) SHA1(6c9af2cf65e803882d6f4c0d57eb9e95cdeb5818) ) /* IC25 ?? */ - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x1000000, 0 ) -ROM_END - -ROM_START( spikeout ) /* Step 2.1 */ - ROM_REGION64_BE( 0x8800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr21214c.17", 0x000006, 0x200000, CRC(8dc0a85c) SHA1(c75088fd0594964a4ed78b80a2585d3d89c85464) ) - ROM_LOAD64_WORD_SWAP( "epr21215c.18", 0x000004, 0x200000, CRC(e2878221) SHA1(8c57efc942f6e091b7fbbed101c3a306b7368eed) ) - ROM_LOAD64_WORD_SWAP( "epr21216c.19", 0x000002, 0x200000, CRC(867d3a0f) SHA1(15ba12099eaa2cfd1d6cd985805df69c48441fb2) ) - ROM_LOAD64_WORD_SWAP( "epr21217c.20", 0x000000, 0x200000, CRC(ea8c30ce) SHA1(e076e32ba9134c63c7a5fb826eba4735774e3ab3) ) - - /* IC1-8 should be 64MBit */ - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr21134.1", 0x800006, 0x400000, BAD_DUMP CRC(7bfe21a4) SHA1(accbb4272da313f4bd2b897f3f395f5523e7a3f4) ) - ROM_LOAD64_WORD_SWAP( "mpr21135.2", 0x800004, 0x400000, BAD_DUMP CRC(972f4b4f) SHA1(fa6b9d1ef3a213cedbe42705de015f6ae8c216b6) ) - ROM_LOAD64_WORD_SWAP( "mpr21136.3", 0x800002, 0x400000, BAD_DUMP CRC(5d563fba) SHA1(1f157b25e70438f1cfc04bbe8c83afa0e3858c2a) ) - ROM_LOAD64_WORD_SWAP( "mpr21137.4", 0x800000, 0x400000, BAD_DUMP CRC(707e5921) SHA1(a38ac947860d0cf7ad40b641135f1fb203e3df67) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr21138.5", 0x2800006, 0x400000, BAD_DUMP CRC(48619c98) SHA1(34e0d10ea6c6a9dca3e1440e248ab0ec7bad0d8e) ) - ROM_LOAD64_WORD_SWAP( "mpr21139.6", 0x2800004, 0x400000, BAD_DUMP CRC(0425ba5d) SHA1(a2f347268279182e1be08a600d862adc49f3f3b4) ) - ROM_LOAD64_WORD_SWAP( "mpr21140.7", 0x2800002, 0x400000, BAD_DUMP CRC(df574950) SHA1(816f3c60f0cbcda3278e4acf99176af93e7c9b4b) ) - ROM_LOAD64_WORD_SWAP( "mpr21141.8", 0x2800000, 0x400000, BAD_DUMP CRC(d6a51bf1) SHA1(cb3196a7f9b378c755d4b29b01a97612d7d7a8d5) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr21142.9", 0x4800006, 0x400000, CRC(da35cd51) SHA1(6b89c79a4e207d4bb3fe36e918f41d09915facaa) ) - ROM_LOAD64_WORD_SWAP( "mpr21143.10", 0x4800004, 0x400000, CRC(ddcada10) SHA1(72a4d7a1bcd7e6745b7076f2a7945e8c7c51e68a) ) - ROM_LOAD64_WORD_SWAP( "mpr21144.11", 0x4800002, 0x400000, CRC(d93d778c) SHA1(b6be5f37c1e40764f2831537603bd88afa872b27) ) - ROM_LOAD64_WORD_SWAP( "mpr21145.12", 0x4800000, 0x400000, CRC(0e6a3ae3) SHA1(718bad86461e592ce1d56bd3dc0090b83ed82355) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr21146.13", 0x6800006, 0x400000, CRC(85f55311) SHA1(dc5529534e7702f05d48620fc9049289b7cbc9fb) ) - ROM_LOAD64_WORD_SWAP( "mpr21147.14", 0x6800004, 0x400000, CRC(a1f2b73f) SHA1(485bc11abd44826d00ac0c7e90cb72006cfa66e7) ) - ROM_LOAD64_WORD_SWAP( "mpr21148.15", 0x6800002, 0x400000, CRC(56d980ad) SHA1(f4175e97e68ca2c29ec6cb18d9ffd5ff170a6f6f) ) - ROM_LOAD64_WORD_SWAP( "mpr21149.16", 0x6800000, 0x400000, CRC(9e4ebe58) SHA1(130e2c09528d57522fec70fe93d2de55558ee87f) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr21154.26", 0x000002, 0x400000, CRC(3b76f8e8) SHA1(85773cdf1062ee0aed9b3cbc8a1a1b7dd2801afb) ) - ROM_LOAD_VROM( "mpr21155.27", 0x000000, 0x400000, CRC(aca19901) SHA1(d375defaa65e35aaf3f0f149bb1763f02d796c7a) ) - ROM_LOAD_VROM( "mpr21156.28", 0x000006, 0x400000, CRC(5c9df226) SHA1(00baf34ba2d4b57bf63b55386310ca6d6685fa96) ) - ROM_LOAD_VROM( "mpr21157.29", 0x000004, 0x400000, CRC(f6fb1279) SHA1(be61d8be27500c9af5f7dc6333fa37c667f337f8) ) - ROM_LOAD_VROM( "mpr21158.30", 0x00000a, 0x400000, CRC(61707554) SHA1(62b2de8ce88a361b272fde4998766f29e5beafc7) ) - ROM_LOAD_VROM( "mpr21159.31", 0x000008, 0x400000, CRC(fcc791f5) SHA1(03c66f65885f41766e860fdb5324226f4fb555f7) ) - ROM_LOAD_VROM( "mpr21160.32", 0x00000e, 0x400000, CRC(b40a38d3) SHA1(dec9590632b547a8eeb52528fa4f0b9f5f8bd769) ) - ROM_LOAD_VROM( "mpr21161.33", 0x00000c, 0x400000, CRC(559063f0) SHA1(f31a6d117550f1422bee76972c21bbdee6f3505d) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr21162.34", 0x000002, 0x400000, CRC(acc4b2e4) SHA1(b3ab137b0712c4088daeed1ac0fa2eaedca85940) ) - ROM_LOAD_VROM( "mpr21163.35", 0x000000, 0x400000, CRC(653c54c7) SHA1(cc5121215c3c511df03cfbddead06f6c09db849b) ) - ROM_LOAD_VROM( "mpr21164.36", 0x000006, 0x400000, CRC(902fd1e0) SHA1(930fc166beb87ca4801c66fb4c6e92e59050892b) ) - ROM_LOAD_VROM( "mpr21165.37", 0x000004, 0x400000, CRC(50b3be05) SHA1(016f5ba71f41b9cf358d22195b08319d86b95f78) ) - ROM_LOAD_VROM( "mpr21166.38", 0x00000a, 0x400000, CRC(8f87a782) SHA1(3631929f4d3dda71c3950a29a7d3135ecf4a9f57) ) - ROM_LOAD_VROM( "mpr21167.39", 0x000008, 0x400000, CRC(0f3994d0) SHA1(a5cf583c7ea4e05bd9ca493ca7ba9e61cdc803cd) ) - ROM_LOAD_VROM( "mpr21168.40", 0x00000e, 0x400000, CRC(c58be980) SHA1(77e3d5109c6659e1839b56ca2fdb157cdfba4b6a) ) - ROM_LOAD_VROM( "mpr21169.41", 0x00000c, 0x400000, CRC(aa3b2cc0) SHA1(1c804e602f9227a4e553cd1a5dfbfebd04930c61) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr21218.21", 0x000000, 0x080000, CRC(5821001a) SHA1(f6bc416b77279670bc6c1c3a62f42faf9323387e) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr21150.22", 0x000000, 0x400000, CRC(125201ce) SHA1(b6347042e1482561c6d468b05dfa3de261736485) ) - ROM_LOAD( "mpr21152.24", 0x400000, 0x400000, CRC(0afdee87) SHA1(2be20991a6d8fbee51dddc2dd0fbae7e43e5b3df) ) - ROM_LOAD( "mpr21151.23", 0x800000, 0x400000, CRC(599527b9) SHA1(bc124f916a72c85a1f2a10ababc4254adc951697) ) - ROM_LOAD( "mpr21153.25", 0xc00000, 0x400000, CRC(4155f307) SHA1(420a7b9d1a4aca9ff31ff7af7c8cea00963756af) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr21219.ic2", 0x00000, 0x20000, CRC(4e042b21) SHA1(90937659702ddcda1bdbb623a38bf26c3b29f9d9) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr21170.ic18", 0x000000, 0x400000, CRC(f51f7ce3) SHA1(38b853b0545196e2c95822f572afb46a0a5d4c6c) ) - ROM_LOAD( "mpr21171.ic20", 0x400000, 0x400000, CRC(8d3bd5b6) SHA1(42167dd53e4562869382ec1c8a00b69d1fd4602a) ) - ROM_LOAD( "mpr21172.ic22", 0x800000, 0x400000, CRC(be221e27) SHA1(cf396d0145172a0492bf4203a7ff12c5c8480c0c) ) - ROM_LOAD( "mpr21173.ic24", 0xc00000, 0x400000, CRC(ca7226d6) SHA1(e15c6fb9dee91a42889cef350479b1964bf1e5df) ) -ROM_END - -ROM_START( spikeofe ) /* Step 2.1 */ - ROM_REGION64_BE( 0x8800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr21653.17", 0x000006, 0x200000, CRC(f4bd9c3c) SHA1(de509c25226939d7a9c1b402ab6923844c12314e) ) - ROM_LOAD64_WORD_SWAP( "epr21654.18", 0x000004, 0x200000, CRC(5be245a3) SHA1(69cc84dd4ccc80b6453ace1944962b666e6fca3d) ) - ROM_LOAD64_WORD_SWAP( "epr21655.19", 0x000002, 0x200000, CRC(68a9e417) SHA1(8d5eb0d52eabde0d2cfb34ded4fc436f113cdcc0) ) - ROM_LOAD64_WORD_SWAP( "epr21656.20", 0x000000, 0x200000, CRC(bd2aaf64) SHA1(850c08f3e2fa269d94b4dc88c9d33854d5e38f21) ) - - /* IC1-8 should be 64MBit */ - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr21613.1", 0x800006, 0x400000, BAD_DUMP CRC(39f181c0) SHA1(a0734b2aa5fde29ff7af4d29443f7e76f3323af1) ) - ROM_LOAD64_WORD_SWAP( "mpr21614.2", 0x800004, 0x400000, BAD_DUMP CRC(789a96e9) SHA1(6ac8908e9613cab1bf4b584c29ba6e2eec16b436) ) - ROM_LOAD64_WORD_SWAP( "mpr21615.3", 0x800002, 0x400000, BAD_DUMP CRC(50341c34) SHA1(155f6e73bad81f98817e635352c0972b5544e466) ) - ROM_LOAD64_WORD_SWAP( "mpr21616.4", 0x800000, 0x400000, BAD_DUMP CRC(d5980569) SHA1(22439b2ea5afdbb4cf20bfc5479f8e6c0664e4c5) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr21617.5", 0x2800006, 0x400000, BAD_DUMP CRC(8306b52c) SHA1(4519e41ca621fa6cf4b8f880adbd89d10ef445dd) ) - ROM_LOAD64_WORD_SWAP( "mpr21618.6", 0x2800004, 0x400000, BAD_DUMP CRC(a9c0e6c4) SHA1(467b4ce1805d71a3b07b998816ce70ac8a3b678e) ) - ROM_LOAD64_WORD_SWAP( "mpr21619.7", 0x2800002, 0x400000, BAD_DUMP CRC(d2380847) SHA1(2f4860222da18fa560862e6fd730eef3551dfdce) ) - ROM_LOAD64_WORD_SWAP( "mpr21620.8", 0x2800000, 0x400000, BAD_DUMP CRC(3a1ecec4) SHA1(98eda2c0ad206aaf27c142198e8439424d585142) ) - - // CROM2 - ROM_LOAD64_WORD_SWAP( "mpr21621.9", 0x4800006, 0x400000, CRC(eaa96639) SHA1(153307007debaf7e063d7599785736cbf53ec891) ) - ROM_LOAD64_WORD_SWAP( "mpr21622.10", 0x4800004, 0x400000, CRC(8483a0d0) SHA1(dff98e755112a3402a158b9d05b886dd9c0bffb0) ) - ROM_LOAD64_WORD_SWAP( "mpr21623.11", 0x4800002, 0x400000, CRC(8d37d83e) SHA1(6cff317b02215f6d9a16354e01767d978c0531c3) ) - ROM_LOAD64_WORD_SWAP( "mpr21624.12", 0x4800000, 0x400000, CRC(56994cc6) SHA1(f4be0e530226cf3df01d396e723bcb5db79e21d0) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "mpr21625.13", 0x6800006, 0x400000, CRC(72a34707) SHA1(107b9e1dfead1d04a59ba9fbe9800c703a1bca56) ) - ROM_LOAD64_WORD_SWAP( "mpr21626.14", 0x6800004, 0x400000, CRC(1861652e) SHA1(45793397523ae0c1af0b5b0746182f9193bb35df) ) - ROM_LOAD64_WORD_SWAP( "mpr21627.15", 0x6800002, 0x400000, CRC(efe94608) SHA1(1c04b1ea6517acee8b306ae52fadaf33341750bb) ) - ROM_LOAD64_WORD_SWAP( "mpr21628.16", 0x6800000, 0x400000, CRC(de3866ea) SHA1(43068f2af2b84ce2ee63e806cfc048e75c77a451) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr21633.26", 0x000002, 0x400000, CRC(735fb67d) SHA1(7f8d1880b0e5302f3cc7e49c3f0de1d8800bb6f8) ) - ROM_LOAD_VROM( "mpr21634.27", 0x000000, 0x400000, CRC(876e6788) SHA1(18f80b79e1da6bc6e6c1f1d368d0ff1ff6b1f468) ) - ROM_LOAD_VROM( "mpr21635.28", 0x000006, 0x400000, CRC(093534a8) SHA1(8ecbc3e4456f0453f8728d1ab7687b7d05d7957b) ) - ROM_LOAD_VROM( "mpr21636.29", 0x000004, 0x400000, CRC(2433f21c) SHA1(8c62cc42f6a4d795855ec75512a38e5a8a120f8e) ) - ROM_LOAD_VROM( "mpr21637.30", 0x00000a, 0x400000, CRC(093534a8) SHA1(8ecbc3e4456f0453f8728d1ab7687b7d05d7957b) ) - ROM_LOAD_VROM( "mpr21638.31", 0x000008, 0x400000, CRC(3773a215) SHA1(f36baf8e38bb1d853bc87b99db70efdcca217c93) ) - ROM_LOAD_VROM( "mpr21639.32", 0x00000e, 0x400000, CRC(313d1872) SHA1(9e74786fc17c38b7687be3abcd115e3b817991b1) ) - ROM_LOAD_VROM( "mpr21640.33", 0x00000c, 0x400000, CRC(271366be) SHA1(eab9ab8105f3d72ce797439c2c17f49aebbd8f07) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr21641.34", 0x000002, 0x400000, CRC(782147e4) SHA1(080f28daeee38c169b1bd5030800eca032a42da2) ) - ROM_LOAD_VROM( "mpr21642.35", 0x000000, 0x400000, CRC(844732c9) SHA1(20ee88b762eed38d1a6f16a0c1b375496187c676) ) - ROM_LOAD_VROM( "mpr21643.36", 0x000006, 0x400000, CRC(9e922e9d) SHA1(f66df4876672c0ee17525c4809d737523b04650d) ) - ROM_LOAD_VROM( "mpr21644.37", 0x000004, 0x400000, CRC(617aa65a) SHA1(eb856645a8e587207452ddc7e0e2bdc9b8642af5) ) - ROM_LOAD_VROM( "mpr21645.38", 0x00000a, 0x400000, CRC(71396f52) SHA1(ef0d3068104e663143b42b7fd5f4c65d01b12a6b) ) - ROM_LOAD_VROM( "mpr21646.39", 0x000008, 0x400000, CRC(90fd9c87) SHA1(75097e021b7b91502793e3e1833aa55d3adbb084) ) - ROM_LOAD_VROM( "mpr21647.40", 0x00000e, 0x400000, CRC(cf87991f) SHA1(8249e086d2ef5ded8a0544b0ddbd2328e3c64876) ) - ROM_LOAD_VROM( "mpr21648.41", 0x00000c, 0x400000, CRC(30f974a1) SHA1(03e2481b9af9083c3b97273819c0fcd5edc41bd4) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr21657.21", 0x000000, 0x080000, CRC(7242e8fd) SHA1(9712972d821e2eca8db6666693340aca884f4393) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr21629.22", 0x000000, 0x400000, CRC(bc9701c4) SHA1(df8b4deb16736461d5ae69a42404785f57a84d7f) ) - ROM_LOAD( "mpr21630.24", 0x400000, 0x400000, CRC(9f2deadd) SHA1(964dea6c8f5e34c5682cd7ca207a853aab80306e) ) - ROM_LOAD( "mpr21631.23", 0x800000, 0x400000, CRC(299036c5) SHA1(861f5d6579ee0fba1793140468194c2ef0fd0b7f) ) - ROM_LOAD( "mpr21632.25", 0xc00000, 0x400000, CRC(ff162f0d) SHA1(e62dcf68a4bfe8087d0ab508468fd016ace1f9c5) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_LOAD( "epr21658.ic2", 0x00000, 0x20000, CRC(50bad8cb) SHA1(83947cbf8f074e6f15055917502a77f198123efe) ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_LOAD( "mpr21649.ic18", 0x000000, 0x400000, CRC(dac87f47) SHA1(429734ba3d97162e175a074249baf7c7a1aecdee) ) - ROM_LOAD( "mpr21650.ic20", 0x400000, 0x400000, CRC(86d90123) SHA1(1e90fb0242fbb032825684e763a5ebb329f63869) ) - ROM_LOAD( "mpr21651.ic22", 0x800000, 0x400000, CRC(81715565) SHA1(533deefed3565e7373a0aa2d043ea10e43e78b71) ) - ROM_LOAD( "mpr21652.ic24", 0xc00000, 0x400000, CRC(e7c8c9bf) SHA1(76d8fa89aed86fff4d1ba704aeef96fd2c326bc9) ) -ROM_END - -ROM_START( eca ) /* Step 2.1 */ - ROM_REGION64_BE( 0x4800000, REGION_USER1, 0 ) /* program + data ROMs */ - // CROM - ROM_LOAD64_WORD_SWAP( "epr22895.17", 0x000006, 0x200000, CRC(07df16a0) SHA1(a9ad2b229854a5f4f761565141db738adde28720) ) - ROM_LOAD64_WORD_SWAP( "epr22896.18", 0x000004, 0x200000, CRC(0ff828a8) SHA1(2a74414891ceb5989e6ccb6e9d597f7d2e31fec4) ) - ROM_LOAD64_WORD_SWAP( "epr22897.19", 0x000002, 0x200000, CRC(9755dd8c) SHA1(41f27a303f4af179f17520d0c2d6a0aa4467aae8) ) - ROM_LOAD64_WORD_SWAP( "epr22898.20", 0x000000, 0x200000, CRC(efb96701) SHA1(168c7763740225f832728ab02b22185c9b7997c3) ) - - // CROM0 - ROM_LOAD64_WORD_SWAP( "mpr22870.1", 0x800006, 0x400000, CRC(52054043) SHA1(f07c1f95a5847393c9e640c10cd14e2a3750b3ff) ) - ROM_LOAD64_WORD_SWAP( "mpr22871.2", 0x800004, 0x400000, CRC(cf5bb5b5) SHA1(fd056fcf9a48854faa357014c2cb4a6ed301c3a6) ) - ROM_LOAD64_WORD_SWAP( "mpr22872.3", 0x800002, 0x400000, CRC(4fde63a1) SHA1(72f88e514caea28eeee9e57e55c835c490465df0) ) - ROM_LOAD64_WORD_SWAP( "mpr22873.4", 0x800000, 0x400000, CRC(dd406330) SHA1(e17ed1814cb84820f19922eef27bbad65be1d355) ) - - // CROM1 - ROM_LOAD64_WORD_SWAP( "mpr22874.5", 0x1800006, 0x400000, CRC(5e990497) SHA1(f0df52a19a11ef23f82e88eddbacdcb2a6357ded) ) - ROM_LOAD64_WORD_SWAP( "mpr22875.6", 0x1800004, 0x400000, CRC(1bb5c018) SHA1(5d0146c32f6a50613340ba0d2f5cc5430b595965) ) - ROM_LOAD64_WORD_SWAP( "mpr22876.7", 0x1800002, 0x400000, CRC(a7561249) SHA1(b4217cb088234831ca2e9486af849866790bf704) ) - ROM_LOAD64_WORD_SWAP( "mpr22877.8", 0x1800000, 0x400000, CRC(e53b8764) SHA1(03756ef0526aa0b56c2944336590918d8ff9a9b8) ) - - // CROM3 - ROM_LOAD64_WORD_SWAP( "epr22882.13", 0x3800006, 0x400000, CRC(b161416f) SHA1(753810fa4db80a2d3a333a257dc92095a112d282) ) - ROM_LOAD64_WORD_SWAP( "epr22883.14", 0x3800004, 0x400000, CRC(86d90148) SHA1(4336efb9e3d62cc5e8073993c44cbe49141d987f) ) - ROM_LOAD64_WORD_SWAP( "epr22884.15", 0x3800002, 0x400000, CRC(254c3b63) SHA1(b5cd94ecbffb6f0da70fb2cb7541d5bfc96cb67c) ) - ROM_LOAD64_WORD_SWAP( "epr22885.16", 0x3800000, 0x400000, CRC(3525b46d) SHA1(d7914cd5c558b50b9115303f77bef63e04316b29) ) - - ROM_REGION( 0x2000000, REGION_USER3, ROMREGION_DISPOSE ) /* Video ROMs Part 1 */ - ROM_LOAD_VROM( "mpr22854.26", 0x000002, 0x400000, CRC(97a23d16) SHA1(17a11a3e1b1806f7b994955ae22dd0e5333d47ea) ) - ROM_LOAD_VROM( "mpr22855.27", 0x000000, 0x400000, CRC(7249cdc9) SHA1(4bd07d911382cc569e09fb888858806d06809f9f) ) - ROM_LOAD_VROM( "mpr22856.28", 0x000006, 0x400000, CRC(9c0d1d1b) SHA1(f15c756fb262e15d784328ed3f731aea40797d98) ) - ROM_LOAD_VROM( "mpr22857.29", 0x000004, 0x400000, CRC(44e6ce2b) SHA1(03a33417dc96d3ddcbeb92422654f75f620ef265) ) - ROM_LOAD_VROM( "mpr22858.30", 0x00000a, 0x400000, CRC(0af40aae) SHA1(1af762e09af932d267b860712fa46eaf4b1500ac) ) - ROM_LOAD_VROM( "mpr22859.31", 0x000008, 0x400000, CRC(c64f0158) SHA1(b92dba07e52b4fdabc9bd4bbd26cc41cdab0414d) ) - ROM_LOAD_VROM( "mpr22860.32", 0x00000e, 0x400000, CRC(053af14b) SHA1(6d13609e52a4999d6dca3c4da695ebd973b06b7e) ) - ROM_LOAD_VROM( "mpr22861.33", 0x00000c, 0x400000, CRC(d26343da) SHA1(9d8c860c388cc2434cc8d753cde139096c12e79e) ) - - ROM_REGION( 0x2000000, REGION_USER4, ROMREGION_DISPOSE ) /* Video ROMs Part 2 */ - ROM_LOAD_VROM( "mpr22862.34", 0x000002, 0x400000, CRC(38347c14) SHA1(6222a5001d3a6ed8e8ff3010284658dbc69edee6) ) - ROM_LOAD_VROM( "mpr22863.35", 0x000000, 0x400000, CRC(28b558e6) SHA1(9b4849499baebbd2ea81d00663dff0d40c9db602) ) - ROM_LOAD_VROM( "mpr22864.36", 0x000006, 0x400000, CRC(31ed02f6) SHA1(a669aa8a42ff70562c86f348fcf4be6f14c2f650) ) - ROM_LOAD_VROM( "mpr22865.37", 0x000004, 0x400000, CRC(3e3a211a) SHA1(422f960914a6604de59b110b18f3e67ed9116f22) ) - ROM_LOAD_VROM( "mpr22866.38", 0x00000a, 0x400000, CRC(a863a3c8) SHA1(52e13b76a3698deef05df4c607d047e6362d81c0) ) - ROM_LOAD_VROM( "mpr22867.39", 0x000008, 0x400000, CRC(1ce6c7b2) SHA1(d5fd49f9838d3dc636366c436c507ac2b4f2596e) ) - ROM_LOAD_VROM( "mpr22868.40", 0x00000e, 0x400000, CRC(2db40cf8) SHA1(be1e04aeb5034c2edc5c0ad153700c385a1b773a) ) - ROM_LOAD_VROM( "mpr22869.41", 0x00000c, 0x400000, CRC(c6d62634) SHA1(72d493653b50fb31333f70c7ee143a8c7531106f) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "epr22886.21", 0x000000, 0x080000, CRC(374ec1c6) SHA1(b06e678db191971f6701bd1f739815d00d4cfb3e) ) - - // Samples - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* SCSP samples */ - ROM_LOAD( "mpr22887.22", 0x000000, 0x400000, CRC(7d04a867) SHA1(053de98105880188b4daff183710d7932617547f) ) - ROM_LOAD( "mpr22889.24", 0x400000, 0x400000, CRC(4f9ba45d) SHA1(d60314e852637edf6510be52b9b6576a1f3e1b7e) ) - ROM_LOAD( "mpr22888.23", 0x800000, 0x400000, CRC(018fcf22) SHA1(c5133358f591d699f177617463e7dfa22edf5369) ) - ROM_LOAD( "mpr22890.25", 0xc00000, 0x400000, CRC(b638bd7c) SHA1(ed9c69175fd0ca4c6f22e542b4e68398a6e4ad07) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* Z80 code */ - ROM_FILL( 0x000000, 0x20000, 0 ) - - ROM_REGION( 0x1000000, REGION_SOUND2, 0 ) /* DSB samples */ - ROM_FILL( 0x000000, 0x1000000, 0 ) -ROM_END - - -/* IRQs */ -/* - 0x80: Unused ? - 0x40: SCSP - 0x20: Unused ? - 0x10: Network - 0x08: V-blank end ? - 0x04: ??? - 0x02: V-blank start - 0x01: Unused ? -*/ -static int model3_vblank = 0; -static INTERRUPT_GEN(model3_interrupt) -{ - if (model3_vblank == 0) { - model3_irq_state = 0x42; - } else { - model3_irq_state = 0x0d; - } - cpunum_set_input_line(0, INPUT_LINE_IRQ1, ASSERT_LINE); - - model3_vblank++; - model3_vblank &= 1; -} - -static ppc_config model3_10 = -{ - PPC_MODEL_603E, /* 603e, Stretch, 1.3 */ - 0x10, /* Multiplier 1, Bus = 66MHz, Core = 66MHz */ - BUS_FREQUENCY_66MHZ -}; - -static ppc_config model3_15 = -{ - PPC_MODEL_603E, /* 603e, Stretch, 1.3 */ - 0x15, /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ - BUS_FREQUENCY_66MHZ -}; - -static ppc_config model3_2x = -{ - PPC_MODEL_603R, /* 603e-PID7t, Goldeneye, 2.1 */ - 0x25, /* Multiplier 2.5, Bus = 66MHz, Core = 166MHz */ - BUS_FREQUENCY_66MHZ -}; - -static MACHINE_DRIVER_START( model3_10 ) - MDRV_CPU_ADD(PPC603, 66000000) - MDRV_CPU_CONFIG(model3_10) - MDRV_CPU_PROGRAM_MAP(model3_mem, 0) - MDRV_CPU_VBLANK_INT(model3_interrupt,2) - - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(model3_10) - MDRV_NVRAM_HANDLER(model3) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(496, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 495, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(model3) - MDRV_VIDEO_UPDATE(model3) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( model3_15 ) - MDRV_CPU_ADD(PPC603, 100000000) - MDRV_CPU_CONFIG(model3_15) - MDRV_CPU_PROGRAM_MAP(model3_mem, 0) - MDRV_CPU_VBLANK_INT(model3_interrupt,2) - - MDRV_MACHINE_RESET(model3_15) - MDRV_NVRAM_HANDLER(model3) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(496, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 495, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(model3) - MDRV_VIDEO_UPDATE(model3) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( model3_20 ) - MDRV_CPU_ADD(PPC603, 166000000) - MDRV_CPU_CONFIG(model3_2x) - MDRV_CPU_PROGRAM_MAP(model3_mem, 0) - MDRV_CPU_VBLANK_INT(model3_interrupt,2) - - MDRV_MACHINE_RESET(model3_20) - MDRV_NVRAM_HANDLER(model3) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(496, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 495, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(model3) - MDRV_VIDEO_UPDATE(model3) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( model3_21 ) - MDRV_CPU_ADD(PPC603, 166000000) - MDRV_CPU_CONFIG(model3_2x) - MDRV_CPU_PROGRAM_MAP(model3_mem, 0) - MDRV_CPU_VBLANK_INT(model3_interrupt,2) - - MDRV_MACHINE_RESET(model3_21) - MDRV_NVRAM_HANDLER(model3) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(496, 384) - MDRV_SCREEN_VISIBLE_AREA(0, 495, 0, 383) - MDRV_PALETTE_LENGTH(65536) - - MDRV_VIDEO_START(model3) - MDRV_VIDEO_UPDATE(model3) -MACHINE_DRIVER_END - -static void interleave_vroms(void) -{ - int start; - int i,j,x; - UINT16 *vrom1 = (UINT16*)memory_region(REGION_USER3); - UINT16 *vrom2 = (UINT16*)memory_region(REGION_USER4); - int vrom_length = memory_region_length(REGION_USER3); - UINT16 *vrom; - - model3_vrom = auto_malloc(0x4000000); - vrom = (UINT16 *)model3_vrom; - - if( vrom_length <= 0x1000000 ) { - start = 0x1000000; - } else { - start = 0; - } - - j=0; - for(i=start; i < 0x2000000; i+=16) { - for(x=0; x < 8; x++) { - vrom[i+x+0] = vrom1[(j+x)^1]; - } - for(x=0; x < 8; x++) { - vrom[i+x+8] = vrom2[(j+x)^1]; - } - j+=8; - } -} - -static DRIVER_INIT( model3_10 ) -{ - interleave_vroms(); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc0000000, 0xc00000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc0000000, 0xc00000ff, 0, 0, scsi_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_w ); -} - -static DRIVER_INIT( model3_15 ) -{ - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_w ); -} - -static DRIVER_INIT( model3_20 ) -{ - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc2000000, 0xc20000ff, 0, 0, real3d_dma_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc2000000, 0xc20000ff, 0, 0, real3d_dma_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_w ); -} - -static DRIVER_INIT( lostwsga ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_15(machine); - /* TODO: there's an M68K device at 0xC0000000 - FF, maybe lightgun controls ? */ - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_w ); - - rom[0x7374f0/4] = 0x38840004; /* This seems to be an actual bug in the original code */ -} - -static DRIVER_INIT( scud ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_15(machine); - /* TODO: network device at 0xC0000000 - FF */ - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_w ); - - rom[(0x71275c^4)/4] = 0x60000000; - rom[(0x71277c^4)/4] = 0x60000000; -} - -static DRIVER_INIT( scudp ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_15(machine); - /* TODO: network device at 0xC0000000 - FF */ - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_w ); - - rom[(0x713724^4)/4] = 0x60000000; - rom[(0x713744^4)/4] = 0x60000000; - - rom[(0x741f48^4)/4] = 0x60000000; - - rom[(0x741f68^4)/4] = 0x60000000; - rom[(0x741efc^4)/4] = 0x60000000; -} - -static DRIVER_INIT( lemans24 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_15(machine); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc1000000, 0xc10000ff, 0, 0, scsi_w ); - - rom[(0x73fe38^4)/4] = 0x38840004; /* This seems to be an actual bug in the original code */ - - rom[(0x73eb5c^4)/4] = 0x60000000; - rom[(0x73edd0^4)/4] = 0x60000000; - rom[(0x73edc4^4)/4] = 0x60000000; -} - -static DRIVER_INIT( vf3 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_10(machine); - - rom[(0x713c7c^4)/4] = 0x60000000; - rom[(0x713e54^4)/4] = 0x60000000; - rom[(0x7125b0^4)/4] = 0x60000000; - rom[(0x7125d0^4)/4] = 0x60000000; - -} - -static DRIVER_INIT( vs215 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - rom[(0x70dde0^4)/4] = 0x60000000; - rom[(0x70e6f0^4)/4] = 0x60000000; - rom[(0x70e710^4)/4] = 0x60000000; - - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_w ); -} - -static DRIVER_INIT( vs29815 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - rom[(0x6028ec^4)/4] = 0x60000000; - rom[(0x60290c^4)/4] = 0x60000000; - - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_w ); -} - -static DRIVER_INIT( bass ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - rom[(0x7999a8^4)/4] = 0x60000000; - rom[(0x7999c8^4)/4] = 0x60000000; - - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfec00000, 0xfedfffff, 0, 0, mpc106_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xfee00000, 0xfeffffff, 0, 0, mpc106_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc106_reg_w ); -} - -static DRIVER_INIT( getbass ) -{ - interleave_vroms(); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xff000000, 0xff7fffff, 0, 0, MRA64_BANK1 ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf9000000, 0xf90000ff, 0, 0, scsi_w ); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0800cf8, 0xf0800cff, 0, 0, mpc105_addr_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf0c00cf8, 0xf0c00cff, 0, 0, mpc105_data_w ); - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xf8fff000, 0xf8fff0ff, 0, 0, mpc105_reg_w ); -} - -static DRIVER_INIT( vs2 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_20(machine); - - rom[(0x705884^4)/4] = 0x60000000; - rom[(0x7058a4^4)/4] = 0x60000000; -} - -static DRIVER_INIT( vs298 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_20(machine); - - rom[(0x603868^4)/4] = 0x60000000; - rom[(0x603888^4)/4] = 0x60000000; -} - - -static DRIVER_INIT( vs2v991 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_20(machine); - - rom[(0x603868^4)/4] = 0x60000000; - rom[(0x603888^4)/4] = 0x60000000; -} - -static DRIVER_INIT( vs299 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - - init_model3_20(machine); - - rom[(0x603868^4)/4] = 0x60000000; - rom[(0x603888^4)/4] = 0x60000000; -} - -static DRIVER_INIT( harley ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - memory_install_read64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc0000000, 0xc00fffff, 0, 0, network_r ); - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc0000000, 0xc00fffff, 0, 0, network_w ); - - rom[(0x50e8d4^4)/4] = 0x60000000; - rom[(0x50e8f4^4)/4] = 0x60000000; - rom[(0x50fb84^4)/4] = 0x60000000; - rom[(0x4f736c^4)/4] = 0x60000000; - rom[(0x4f738c^4)/4] = 0x60000000; -} - -static DRIVER_INIT( srally2 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x7c0c4^4)/4] = 0x60000000; - rom[(0x7c0c8^4)/4] = 0x60000000; - rom[(0x7c0cc^4)/4] = 0x60000000; -} - -static DRIVER_INIT( swtrilgy ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0xf0e48^4)/4] = 0x60000000; - rom[(0x043dc^4)/4] = 0x48000090; - rom[(0x029a0^4)/4] = 0x60000000; - rom[(0x02a0c^4)/4] = 0x60000000; -} - -static DRIVER_INIT( swtrilga ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0xf6dd0^4)/4] = 0x60000000; -} - -static DRIVER_INIT( von2 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x189168^4)/4] = 0x60000000; - rom[(0x1890ac^4)/4] = 0x60000000; - rom[(0x1890b8^4)/4] = 0x60000000; - rom[(0x1888a8^4)/4] = 0x60000000; - rom[(0x1891c8^4)/4] = 0x60000000; -} - -static DRIVER_INIT( dirtdvls ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x0600a0^4)/4] = 0x60000000; - rom[(0x0608a4^4)/4] = 0x60000000; - rom[(0x0608b0^4)/4] = 0x60000000; - rom[(0x060960^4)/4] = 0x60000000; - rom[(0x0609c0^4)/4] = 0x60000000; - rom[(0x001e24^4)/4] = 0x60000000; -} - -static DRIVER_INIT( daytona2 ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc3800000, 0xc3800007, 0, 0, daytona2_rombank_w ); - - //rom[(0x68468c^4)/4] = 0x60000000; - rom[(0x6063c4^4)/4] = 0x60000000; - rom[(0x616434^4)/4] = 0x60000000; - rom[(0x69f4e4^4)/4] = 0x60000000; -} - -static DRIVER_INIT( dayto2pe ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - memory_install_write64_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc3800000, 0xc3800007, 0, 0, daytona2_rombank_w ); - - rom[(0x606784^4)/4] = 0x60000000; - rom[(0x69a3fc^4)/4] = 0x60000000; // jump to encrypted code - rom[(0x618b28^4)/4] = 0x60000000; // jump to encrypted code - - rom[(0x64ca34^4)/4] = 0x60000000; // dec -} - -static DRIVER_INIT( spikeout ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x6059cc^4)/4] = 0x60000000; - rom[(0x6059ec^4)/4] = 0x60000000; -} - -static DRIVER_INIT( spikeofe ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x6059cc^4)/4] = 0x60000000; - rom[(0x6059ec^4)/4] = 0x60000000; -} - -static DRIVER_INIT( eca ) -{ - UINT32 *rom = (UINT32*)memory_region(REGION_USER1); - init_model3_20(machine); - - rom[(0x535580^4)/4] = 0x60000000; - rom[(0x5023b4^4)/4] = 0x60000000; - rom[(0x5023d4^4)/4] = 0x60000000; -} - - - - - -/* Model 3 Step 1.0 */ -GAME( 1996, vf3, 0, model3_10, model3, vf3, ROT0, "Sega", "Virtua Fighter 3", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1996, vf3tb, vf3, model3_10, model3, model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, bass, 0, model3_10, bass, bass, ROT0, "Sega", "Sega Bass Fishing", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, getbass, bass, model3_10, bass, getbass, ROT0, "Sega", "Get Bass", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) - -/* Model 3 Step 1.5 */ -GAME( 1996, scud, 0, model3_15, scud, scud, ROT0, "Sega", "Scud Race (Australia)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1996, scuda, scud, model3_15, scud, scud, ROT0, "Sega", "Scud Race (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, scudp, scud, model3_15, scud, scudp, ROT0, "Sega", "Scud Race Plus", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, lostwsga, 0, model3_15, lostwsga, lostwsga, ROT0, "Sega", "The Lost World", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, vs215, vs2, model3_15, model3, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, lemans24, 0, model3_15, scud, lemans24, ROT0, "Sega", "LeMans 24", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, vs29815, vs298, model3_15, model3, vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) - -/* Model 3 Step 2.0 */ -GAME( 1997, vs2, 0, model3_20, model3, vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1997, harley, 0, model3_20, harley, harley, ROT0, "Sega", "Harley-Davidson and L.A. Riders", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, srally2, 0, model3_20, scud, srally2, ROT0, "Sega", "Sega Rally 2", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, sraly2dx, 0, model3_20, scud, srally2, ROT0, "Sega", "Sega Rally 2 DX", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, von2, 0, model3_20, model3, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, von254g, von2, model3_20, model3, model3_20, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, fvipers2, 0, model3_20, model3, model3_20, ROT0, "Sega", "Fighting Vipers 2", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, vs298, 0, model3_20, model3, vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1999, vs2v991, 0, model3_20, model3, vs2v991, ROT0, "Sega", "Virtua Striker 2 '99.1", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1999, vs299, vs2v991, model3_20, model3, vs299, ROT0, "Sega", "Virtua Striker 2 '99", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) - -/* Model 3 Step 2.1 */ -GAME( 1998, daytona2, 0, model3_21, daytona2, daytona2, ROT0, "Sega", "Daytona USA 2", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, dayto2pe, 0, model3_21, daytona2, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, dirtdvls, 0, model3_21, model3, dirtdvls, ROT0, "Sega", "Dirt Devils", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, dirtdvla,dirtdvls, model3_21, model3, dirtdvls, ROT0, "Sega", "Dirt Devils (alt)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, swtrilgy, 0, model3_21, swtrilgy, swtrilgy, ROT0, "Sega/LucasArts", "Star Wars Trilogy (ver A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, swtrilga,swtrilgy, model3_21, swtrilgy, swtrilga, ROT0, "Sega/LucasArts", "Star Wars Trilogy", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, spikeout, 0, model3_21, model3, spikeout, ROT0, "Sega", "Spikeout", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1998, spikeofe, 0, model3_21, model3, spikeofe, ROT0, "Sega", "Spikeout Final Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1999, eca, 0, model3_21, eca, eca, ROT0, "Sega", "Emergency Call Ambulance", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) diff --git a/src/drivers/moo.c b/src/drivers/moo.c deleted file mode 100644 index 9651caac6..000000000 --- a/src/drivers/moo.c +++ /dev/null @@ -1,943 +0,0 @@ -#define MOO_DEBUG 0 -#define MOO_DMADELAY (100) - -/*************************************************************************** - - Wild West C.O.W.boys of Moo Mesa - Bucky O'Hare - (c) 1992 Konami - Driver by R. Belmont and Acho A. Tang based on xexex.c by Olivier Galibert. - Moo Mesa protection information thanks to ElSemi and OG. - - These are the final Xexex hardware games before the pre-GX/Mystic Warriors - hardware took over. - -Bug Fixes and Outstanding Issues --------------------------------- -Moo: - - 54338 color blender support. Works fine with Bucky but needs a correct - enable/disable bit in Moo. (intro gfx missing and fog blocking view) - - Enemies coming out of the jail cells in the last stage have wrong priority. - Could be tile priority or the typical "small Z, big pri" sprite masking - trick currently not supported by K053247_sprites_draw(). - -Moo (bootleg): - - No sprites appear, and the game never enables '246 interrupts. Of course, - they're using some copy of a '246 on FPGAs, so who knows what's going on... - -Bucky: - - Shadows sometimes have wrong priority. (unsupported priority modes) - - Gaps between zoomed sprites. (fraction round-off) - - Rogue sprites keep popping on screen after stage 2. They can usually be - found near 950000 with sprite code around 5e40 or f400. The GFX viewer - only shows blanks at 5e40, however. Are they invalid data from bad - sprite ROMs or markers that aren't supposed to be displayed? These - artifacts have one thing in common: they all have zero zcode. In fact - no other sprites in Bucky seems to have zero zcode. - - Update: More garbages seen in later stages with a great variety. - There's enough indication to assume Bucky simply ignores sprites with - zero Z. I wonder why nobody reported this. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" -#include "sound/k054539.h" - -VIDEO_START(moo); -VIDEO_UPDATE(moo); -void moo_set_alpha(int on); - -static int init_eeprom_count, init_nosound_count, game_type; -static UINT16 *workram; -static UINT16 protram[16]; -static UINT16 cur_control2; - - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "011100", /* write command */ - "0100100000000", /* erase command */ - "0100000000000", /* lock command */ - "0100110000000" /* unlock command */ -}; - -static NVRAM_HANDLER( moo ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ16_HANDLER( control1_r ) -{ - int res; - - /* bit 0 is EEPROM data */ - /* bit 1 is EEPROM ready */ - /* bit 3 is service button */ - /* bits 4-7 are DIP switches */ - res = EEPROM_read_bit() | input_port_1_r(0); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= 0xf7; - } - - return res; -} - -static READ16_HANDLER( control2_r ) -{ - return cur_control2; -} - -static WRITE16_HANDLER( control2_w ) -{ - /* bit 0 is data */ - /* bit 1 is cs (active low) */ - /* bit 2 is clock (active high) */ - /* bit 5 is enable irq 5 (unconfirmed) */ - /* bit 8 is enable sprite ROM reading */ - /* bit 10 is watchdog */ - /* bit 11 is enable irq 4 (unconfirmed) */ - - COMBINE_DATA(&cur_control2); - - EEPROM_write_bit(cur_control2 & 0x01); - EEPROM_set_cs_line((cur_control2 & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((cur_control2 & 0x04) ? ASSERT_LINE : CLEAR_LINE); - - if (data & 0x100) - { - K053246_set_OBJCHA_line(ASSERT_LINE); - } - else - { - K053246_set_OBJCHA_line(CLEAR_LINE); - } -} - - -static void moo_objdma(int type) -{ - int counter, num_inactive; - UINT16 *src, *dst, zmask; - - K053247_export_config(&dst, 0, 0, 0, &counter); - src = spriteram16; - num_inactive = counter = 256; - - zmask = (type) ? 0x00ff : 0xffff; - - do { - if ((*src & 0x8000) && (*src & zmask)) - { - memcpy(dst, src, 0x10); - dst += 8; - num_inactive--; - } - src += 0x80; - } - while (--counter); - - if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive); -} - -static void dmaend_callback(int data) -{ - if (cur_control2 & 0x800) - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static INTERRUPT_GEN(moo_interrupt) -{ - if (K053246_is_IRQ_enabled()) - { - moo_objdma(game_type); - - // schedule DMA end interrupt (delay shortened to catch up with V-blank) - timer_set(TIME_IN_USEC(MOO_DMADELAY), 0, dmaend_callback); - } - - // trigger V-blank interrupt - if (cur_control2 & 0x20) - cpunum_set_input_line(0, 5, HOLD_LINE); -} - -static INTERRUPT_GEN(moobl_interrupt) -{ - moo_objdma(game_type); - - // schedule DMA end interrupt (delay shortened to catch up with V-blank) - timer_set(TIME_IN_USEC(MOO_DMADELAY), 0, dmaend_callback); - - // trigger V-blank interrupt - cpunum_set_input_line(0, 5, HOLD_LINE); -} - -static WRITE16_HANDLER( sound_cmd1_w ) -{ - if((data & 0x00ff0000) == 0) { - data &= 0xff; - soundlatch_w(0, data); - } -} - -static WRITE16_HANDLER( sound_cmd2_w ) -{ - if((data & 0x00ff0000) == 0) { - soundlatch2_w(0, data & 0xff); - } -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -static READ16_HANDLER( sound_status_r ) -{ - return soundlatch3_r(0); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - memory_set_bankptr(2, memory_region(REGION_CPU2) + 0x10000 + (data&0xf)*0x4000); -} - - -#if 0 // (for reference; do not remove) - -/* the interface with the 053247 is weird. The chip can address only 0x1000 bytes */ -/* of RAM, but they put 0x10000 there. The CPU can access them all. */ -static READ16_HANDLER( K053247_scattered_word_r ) -{ - if (offset & 0x0078) - return spriteram16[offset]; - else - { - offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4); - return K053247_word_r(offset,mem_mask); - } -} - -static WRITE16_HANDLER( K053247_scattered_word_w ) -{ - if (offset & 0x0078) - COMBINE_DATA(spriteram16+offset); - else - { - offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4); - - K053247_word_w(offset,data,mem_mask); - } -} - -#endif - - -static READ16_HANDLER( player1_r ) // players 1 and 3 -{ - return input_port_2_r(0) | (input_port_4_r(0)<<8); -} - -static READ16_HANDLER( player2_r ) // players 2 and 4 -{ - return input_port_3_r(0) | (input_port_5_r(0)<<8); -} - -static WRITE16_HANDLER( moo_prot_w ) -{ - UINT32 src1, src2, dst, length, a, b, res; - - COMBINE_DATA(&protram[offset]); - - if (offset == 0xc) // trigger operation - { - src1 = (protram[1]&0xff)<<16 | protram[0]; - src2 = (protram[3]&0xff)<<16 | protram[2]; - dst = (protram[5]&0xff)<<16 | protram[4]; - length = protram[0xf]; - - while (length) - { - a = program_read_word(src1); - b = program_read_word(src2); - res = a+2*b; - - program_write_word(dst, res); - - src1 += 2; - src2 += 2; - dst += 2; - length--; - } - } -} - - -static WRITE16_HANDLER( moobl_oki_bank_w ) -{ - logerror("%x to OKI bank\n", data); - - OKIM6295_set_bank_base(0, (data & 0x0f)* 0x40000); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) - AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r) - AM_RANGE(0x0d6000, 0x0d601f) AM_READ(MRA16_RAM) /* sound regs fall through */ - AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) - AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) - AM_RANGE(0x0dc000, 0x0dc001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) - AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) - AM_RANGE(0x100000, 0x17ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x180000, 0x18ffff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x190000, 0x19ffff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K056832_ram_word_r) /* Graphic planes */ - AM_RANGE(0x1a2000, 0x1a3fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */ - AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_READ(MRA16_RAM) -#if MOO_DEBUG - AM_RANGE(0x0c0000, 0x0c003f) AM_READ(K056832_word_r) - AM_RANGE(0x0c2000, 0x0c2007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x0ca000, 0x0ca01f) AM_READ(K054338_word_r) - AM_RANGE(0x0cc000, 0x0cc01f) AM_READ(K053251_lsb_r) - AM_RANGE(0x0d0000, 0x0d001f) AM_READ(MRA16_RAM) - AM_RANGE(0x0d8000, 0x0d8007) AM_READ(K056832_b_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w) - AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */ - AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w) - AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w) - AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(MWA16_RAM) /* CCU regs (ignored) */ - AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w) - AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x0d6000, 0x0d601f) AM_WRITE(MWA16_RAM) /* sound regs fall through */ - AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */ - AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w) - AM_RANGE(0x100000, 0x17ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x180000, 0x18ffff) AM_WRITE(MWA16_RAM) AM_BASE(&workram) - AM_RANGE(0x190000, 0x19ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) - AM_RANGE(0x1a0000, 0x1a1fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */ - AM_RANGE(0x1a2000, 0x1a3fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmembl, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0c2f00, 0x0c2f01) AM_READ(MRA16_NOP) /* heck if I know, but it's polled constantly */ - AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) - AM_RANGE(0x0d6ffe, 0x0d6fff) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) - AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) - AM_RANGE(0x0dc000, 0x0dc001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) - AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) - AM_RANGE(0x100000, 0x17ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x180000, 0x18ffff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x190000, 0x19ffff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K056832_ram_word_r) /* Graphic planes */ - AM_RANGE(0x1a2000, 0x1a3fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */ - AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemembl, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w) - AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */ - AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w) - AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(MWA16_RAM) /* CCU regs (ignored) */ - AM_RANGE(0x0d6ffc, 0x0d6ffd) AM_WRITE(moobl_oki_bank_w) - AM_RANGE(0x0d6ffe, 0x0d6fff) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */ - AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w) - AM_RANGE(0x100000, 0x17ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x180000, 0x18ffff) AM_WRITE(MWA16_RAM) AM_BASE(&workram) - AM_RANGE(0x190000, 0x19ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) - AM_RANGE(0x1a0000, 0x1a1fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */ - AM_RANGE(0x1a2000, 0x1a3fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */ - AM_RANGE(0x1c0000, 0x1c1fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( buckyreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x09ffff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x0a0000, 0x0affff) AM_READ(MRA16_RAM) /* extra sprite RAM? */ - AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) - AM_RANGE(0x0d2000, 0x0d20ff) AM_READ(K054000_lsb_r) - AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r) - AM_RANGE(0x0d6000, 0x0d601f) AM_READ(MRA16_RAM) /* sound regs fall through */ - AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r) - AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r) - AM_RANGE(0x0dc000, 0x0dc001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r) - AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r) - AM_RANGE(0x180000, 0x181fff) AM_READ(K056832_ram_word_r) /* Graphic planes */ - AM_RANGE(0x182000, 0x183fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */ - AM_RANGE(0x184000, 0x187fff) AM_READ(MRA16_RAM) /* extra tile RAM? */ - AM_RANGE(0x190000, 0x191fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */ - AM_RANGE(0x1b0000, 0x1b3fff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x23ffff) AM_READ(MRA16_ROM) /* data */ -#if MOO_DEBUG - AM_RANGE(0x0c0000, 0x0c003f) AM_READ(K056832_word_r) - AM_RANGE(0x0c2000, 0x0c2007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x0ca000, 0x0ca01f) AM_READ(K054338_word_r) - AM_RANGE(0x0cc000, 0x0cc01f) AM_READ(K053251_lsb_r) - AM_RANGE(0x0d0000, 0x0d001f) AM_READ(MRA16_RAM) - AM_RANGE(0x0d8000, 0x0d8007) AM_READ(K056832_b_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( buckywritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x090000, 0x09ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) /* Sprite RAM */ - AM_RANGE(0x0a0000, 0x0affff) AM_WRITE(MWA16_RAM) /* extra sprite RAM? */ - AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w) - AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */ - AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w) - AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w) - AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(MWA16_RAM) /* CCU regs (ignored) */ - AM_RANGE(0x0d2000, 0x0d20ff) AM_WRITE(K054000_lsb_w) - AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w) - AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x0d6000, 0x0d601f) AM_WRITE(MWA16_RAM) /* sound regs fall through */ - AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */ - AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w) - AM_RANGE(0x180000, 0x181fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */ - AM_RANGE(0x182000, 0x183fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */ - AM_RANGE(0x184000, 0x187fff) AM_WRITE(MWA16_RAM) /* extra tile RAM? */ - AM_RANGE(0x1b0000, 0x1b3fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) - AM_RANGE(0x200000, 0x23ffff) AM_WRITE(MWA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_READ(K054539_0_r) - AM_RANGE(0xec01, 0xec01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r) - AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_WRITE(K054539_0_w) - AM_RANGE(0xec00, 0xec00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xec01, 0xec01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( moo ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW) - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, "Coin Mechanism") - PORT_DIPSETTING( 0x20, "Common") - PORT_DIPSETTING( 0x00, "Independent") - PORT_DIPNAME( 0xc0, 0x80, "Number of Players") - PORT_DIPSETTING( 0xc0, "2") - PORT_DIPSETTING( 0x40, "3") - PORT_DIPSETTING( 0x80, "4") - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -/* Same as 'moo', but additional "Button 3" for all players */ -INPUT_PORTS_START( bucky ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW) - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, "Coin Mechanism") - PORT_DIPSETTING( 0x20, "Common") - PORT_DIPSETTING( 0x00, "Independent") - PORT_DIPNAME( 0xc0, 0x80, "Number of Players") - PORT_DIPSETTING( 0xc0, "2") - PORT_DIPSETTING( 0x40, "3") - PORT_DIPSETTING( 0x80, "4") - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - -static MACHINE_START( moo ) -{ - state_save_register_global(cur_control2); - state_save_register_global_array(protram); - return 0; -} - -static MACHINE_RESET( moo ) -{ - init_nosound_count = 0; -} - - -static MACHINE_DRIVER_START( moo ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(moo_interrupt, 1) - - MDRV_CPU_ADD_TAG("sound", Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers - - MDRV_MACHINE_START(moo) - MDRV_MACHINE_RESET(moo) - - MDRV_NVRAM_HANDLER(moo) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(moo) - MDRV_VIDEO_UPDATE(moo) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 0.75) - MDRV_SOUND_ROUTE(1, "right", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( moobl ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 16100000) - MDRV_CPU_PROGRAM_MAP(readmembl,writemembl) - MDRV_CPU_VBLANK_INT(moobl_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers - - MDRV_MACHINE_START(moo) - MDRV_MACHINE_RESET(moo) - MDRV_NVRAM_HANDLER(moo) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(moo) - MDRV_VIDEO_UPDATE(moo) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bucky ) - MDRV_IMPORT_FROM(moo) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(buckyreadmem,buckywritemem) - - /* video hardware */ - MDRV_PALETTE_LENGTH(4096) -MACHINE_DRIVER_END - - - -ROM_START( moo ) /* Version EA - Euro Ver A */ - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD16_BYTE( "151b01", 0x000000, 0x40000, CRC(fb2fa298) SHA1(f03b24681a2b329ba797fd2780ac9a3cf862ebcb) ) - ROM_LOAD16_BYTE( "151b02.ea", 0x000001, 0x40000, CRC(37b30c01) SHA1(cb91739097a4a36f8f8d92998d822ffc851e1279) ) - - /* data */ - ROM_LOAD16_BYTE( "151a03", 0x100000, 0x40000, CRC(c896d3ea) SHA1(ea83c63e2c3dbc4f1e1d49f1852a78ffc1f0ea4b) ) - ROM_LOAD16_BYTE( "151a04", 0x100001, 0x40000, CRC(3b24706a) SHA1(c2a77944284e35ff57f0774fa7b67e53d3b63e1f) ) - - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "151a07", 0x000000, 0x040000, CRC(cde247fc) SHA1(cdee0228db55d53ae43d7cd2d9001dadd20c2c61) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD( "151a05", 0x000000, 0x100000, CRC(bc616249) SHA1(58c1f1a03ce9bead8f79d12ce4b2d342432b24b5) ) - ROM_LOAD( "151a06", 0x100000, 0x100000, CRC(38dbcac1) SHA1(c357779733921695b20ac586db5b475f5b2b8f4c) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - /* sprites */ - ROM_LOAD( "151a10", 0x000000, 0x200000, CRC(376c64f1) SHA1(eb69c5a27f9795e28f04a503955132f0a9e4de12) ) - ROM_LOAD( "151a11", 0x200000, 0x200000, CRC(e7f49225) SHA1(1255b214f29b6507540dad5892c60a7ae2aafc5c) ) - ROM_LOAD( "151a12", 0x400000, 0x200000, CRC(4978555f) SHA1(d9871f21d0c8a512b408e137e2e80e9392c2bf6f) ) - ROM_LOAD( "151a13", 0x600000, 0x200000, CRC(4771f525) SHA1(218d86b6230919b5db0304dac00513eb6b27ba9a) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "151a08", 0x000000, 0x200000, CRC(962251d7) SHA1(32dccf515d2ca8eeffb45cada3dcc60089991b77) ) -ROM_END - -ROM_START( mooua ) /* Version UA - USA Ver A */ - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD16_BYTE( "151b01", 0x000000, 0x40000, CRC(fb2fa298) SHA1(f03b24681a2b329ba797fd2780ac9a3cf862ebcb) ) - ROM_LOAD16_BYTE( "151b02.ua", 0x000001, 0x40000, CRC(3d9f4d59) SHA1(db47044bd4935fce94ec659242c9819c30eb6d0f) ) - - /* data */ - ROM_LOAD16_BYTE( "151a03", 0x100000, 0x40000, CRC(c896d3ea) SHA1(ea83c63e2c3dbc4f1e1d49f1852a78ffc1f0ea4b) ) - ROM_LOAD16_BYTE( "151a04", 0x100001, 0x40000, CRC(3b24706a) SHA1(c2a77944284e35ff57f0774fa7b67e53d3b63e1f) ) - - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "151a07", 0x000000, 0x040000, CRC(cde247fc) SHA1(cdee0228db55d53ae43d7cd2d9001dadd20c2c61) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD( "151a05", 0x000000, 0x100000, CRC(bc616249) SHA1(58c1f1a03ce9bead8f79d12ce4b2d342432b24b5) ) - ROM_LOAD( "151a06", 0x100000, 0x100000, CRC(38dbcac1) SHA1(c357779733921695b20ac586db5b475f5b2b8f4c) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - /* sprites */ - ROM_LOAD( "151a10", 0x000000, 0x200000, CRC(376c64f1) SHA1(eb69c5a27f9795e28f04a503955132f0a9e4de12) ) - ROM_LOAD( "151a11", 0x200000, 0x200000, CRC(e7f49225) SHA1(1255b214f29b6507540dad5892c60a7ae2aafc5c) ) - ROM_LOAD( "151a12", 0x400000, 0x200000, CRC(4978555f) SHA1(d9871f21d0c8a512b408e137e2e80e9392c2bf6f) ) - ROM_LOAD( "151a13", 0x600000, 0x200000, CRC(4771f525) SHA1(218d86b6230919b5db0304dac00513eb6b27ba9a) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "151a08", 0x000000, 0x200000, CRC(962251d7) SHA1(32dccf515d2ca8eeffb45cada3dcc60089991b77) ) -ROM_END - -ROM_START( mooaa ) /* Version AA - Asia Ver A */ - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD16_BYTE( "151b01", 0x000000, 0x40000, CRC(fb2fa298) SHA1(f03b24681a2b329ba797fd2780ac9a3cf862ebcb) ) - ROM_LOAD16_BYTE( "151b02.aa", 0x000001, 0x40000, CRC(2162d593) SHA1(a6cfe4a57b3f22b2aa0f04f91acefe3b7bea9e76) ) - - /* data */ - ROM_LOAD16_BYTE( "151a03", 0x100000, 0x40000, CRC(c896d3ea) SHA1(ea83c63e2c3dbc4f1e1d49f1852a78ffc1f0ea4b) ) - ROM_LOAD16_BYTE( "151a04", 0x100001, 0x40000, CRC(3b24706a) SHA1(c2a77944284e35ff57f0774fa7b67e53d3b63e1f) ) - - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD( "151a07", 0x000000, 0x040000, CRC(cde247fc) SHA1(cdee0228db55d53ae43d7cd2d9001dadd20c2c61) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD( "151a05", 0x000000, 0x100000, CRC(bc616249) SHA1(58c1f1a03ce9bead8f79d12ce4b2d342432b24b5) ) - ROM_LOAD( "151a06", 0x100000, 0x100000, CRC(38dbcac1) SHA1(c357779733921695b20ac586db5b475f5b2b8f4c) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - /* sprites */ - ROM_LOAD( "151a10", 0x000000, 0x200000, CRC(376c64f1) SHA1(eb69c5a27f9795e28f04a503955132f0a9e4de12) ) - ROM_LOAD( "151a11", 0x200000, 0x200000, CRC(e7f49225) SHA1(1255b214f29b6507540dad5892c60a7ae2aafc5c) ) - ROM_LOAD( "151a12", 0x400000, 0x200000, CRC(4978555f) SHA1(d9871f21d0c8a512b408e137e2e80e9392c2bf6f) ) - ROM_LOAD( "151a13", 0x600000, 0x200000, CRC(4771f525) SHA1(218d86b6230919b5db0304dac00513eb6b27ba9a) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD( "151a08", 0x000000, 0x200000, CRC(962251d7) SHA1(32dccf515d2ca8eeffb45cada3dcc60089991b77) ) -ROM_END - -ROM_START( bucky ) - ROM_REGION( 0x240000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD16_BYTE( "173ea.b01", 0x000000, 0x40000, CRC(7785ac8a) SHA1(ef78d14f54d3a0b724b9702a18c67891e2d366a7) ) - ROM_LOAD16_BYTE( "173ea.b02", 0x000001, 0x40000, CRC(9b45f122) SHA1(325af1612e6f90ef9ae9353c43dc645be1f3465c) ) - - /* data */ - ROM_LOAD16_BYTE( "t5", 0x200000, 0x20000, CRC(cd724026) SHA1(525445499604b713da4d8bc0a88e428654ceab95) ) - ROM_LOAD16_BYTE( "t6", 0x200001, 0x20000, CRC(7dd54d6f) SHA1(b0ee8ec445b92254bca881eefd4449972fed506a) ) - - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD("173.a07", 0x000000, 0x40000, CRC(4cdaee71) SHA1(bdc05d4475415f6fac65d7cdbc48df398e57845e) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD( "173a05.t8", 0x000000, 0x100000, CRC(d14333b4) SHA1(d1a15ead2d156e1fceca0bf202ab3962411caf11) ) - ROM_LOAD( "173a06.t10", 0x100000, 0x100000, CRC(6541a34f) SHA1(15cf481498e3b7e0b2f7bfe5434121cc3bd65662) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - /* sprites */ - ROM_LOAD( "173a10.b8", 0x000000, 0x200000, CRC(42fb0a0c) SHA1(d68c932cfabdec7896698b433525fe47ef4698d0) ) - ROM_LOAD( "173a11.a8", 0x200000, 0x200000, CRC(b0d747c4) SHA1(0cf1ee1b9a35ded31a81c321df2a076f7b588971) ) - ROM_LOAD( "173a12.b10", 0x400000, 0x200000, CRC(0fc2ad24) SHA1(6eda1043ee1266b8ba938a03a90bc7787210a936) ) - ROM_LOAD( "173a13.a10", 0x600000, 0x200000, CRC(4cf85439) SHA1(8c298bf0e659a830a1830a1180f4ce71215ade45) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD("173a08.b6", 0x000000, 0x200000, CRC(dcdded95) SHA1(8eeb546a0b60a35a6dce36c5ee872e6c93c577c9) ) - ROM_LOAD("173a09.a6", 0x200000, 0x200000, CRC(c93697c4) SHA1(0528a604868267a30d281b822c187df118566691) ) -ROM_END - -ROM_START( buckyua ) - ROM_REGION( 0x240000, REGION_CPU1, 0 ) - /* main program */ - ROM_LOAD16_BYTE( "q5", 0x000000, 0x40000, CRC(dcaecca0) SHA1(c41847c9d89cdaf7cfa81ad9cc018c32592a882f) ) - ROM_LOAD16_BYTE( "q6", 0x000001, 0x40000, CRC(e3c856a6) SHA1(33cc8a29643e44b31ee280015c0c994bed72a0e3) ) - - /* data */ - ROM_LOAD16_BYTE( "t5", 0x200000, 0x20000, CRC(cd724026) SHA1(525445499604b713da4d8bc0a88e428654ceab95) ) - ROM_LOAD16_BYTE( "t6", 0x200001, 0x20000, CRC(7dd54d6f) SHA1(b0ee8ec445b92254bca881eefd4449972fed506a) ) - - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - /* Z80 sound program */ - ROM_LOAD("173.a07", 0x000000, 0x40000, CRC(4cdaee71) SHA1(bdc05d4475415f6fac65d7cdbc48df398e57845e) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - /* tilemaps */ - ROM_LOAD( "173a05.t8", 0x000000, 0x100000, CRC(d14333b4) SHA1(d1a15ead2d156e1fceca0bf202ab3962411caf11) ) - ROM_LOAD( "173a06.t10", 0x100000, 0x100000, CRC(6541a34f) SHA1(15cf481498e3b7e0b2f7bfe5434121cc3bd65662) ) - - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - /* sprites */ - ROM_LOAD( "173a10.b8", 0x000000, 0x200000, CRC(42fb0a0c) SHA1(d68c932cfabdec7896698b433525fe47ef4698d0) ) - ROM_LOAD( "173a11.a8", 0x200000, 0x200000, CRC(b0d747c4) SHA1(0cf1ee1b9a35ded31a81c321df2a076f7b588971) ) - ROM_LOAD( "173a12.b10", 0x400000, 0x200000, CRC(0fc2ad24) SHA1(6eda1043ee1266b8ba938a03a90bc7787210a936) ) - ROM_LOAD( "173a13.a10", 0x600000, 0x200000, CRC(4cf85439) SHA1(8c298bf0e659a830a1830a1180f4ce71215ade45) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - /* K054539 samples */ - ROM_LOAD("173a08.b6", 0x000000, 0x200000, CRC(dcdded95) SHA1(8eeb546a0b60a35a6dce36c5ee872e6c93c577c9) ) - ROM_LOAD("173a09.a6", 0x200000, 0x200000, CRC(c93697c4) SHA1(0528a604868267a30d281b822c187df118566691) ) -ROM_END - - -static DRIVER_INIT( moo ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_4(REGION_GFX2); - - game_type = (!strcmp(Machine->gamedrv->name, "bucky") || !strcmp(Machine->gamedrv->name, "buckyua")); -} - -ROM_START( moobl ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "moo03.rom", 0x000000, 0x80000, CRC(fed6a1cb) SHA1(be58e266973930d643b5e15dcc974a82e1a3ae35) ) - ROM_LOAD16_WORD_SWAP( "moo04.rom", 0x100000, 0x80000, CRC(ec45892a) SHA1(594330cbbfbca87e61ddf519e565018b6eaf5a20) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - ROM_LOAD16_WORD_SWAP( "moo03.rom", 0x000000, 0x80000, CRC(fed6a1cb) SHA1(be58e266973930d643b5e15dcc974a82e1a3ae35) ) - ROM_LOAD16_WORD_SWAP( "moo04.rom", 0x080000, 0x80000, CRC(ec45892a) SHA1(594330cbbfbca87e61ddf519e565018b6eaf5a20) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) - ROM_LOAD( "moo05.rom", 0x000000, 0x080000, CRC(8c045f9c) SHA1(cde81a722a4bc2efac09a26d7e300664059ec7bb) ) - ROM_LOAD( "moo06.rom", 0x080000, 0x080000, CRC(1261aa89) SHA1(b600916911bc0d8b6348e2ad4a16ed1a1c528261) ) - ROM_LOAD( "moo07.rom", 0x100000, 0x080000, CRC(b9e29f50) SHA1(c2af095df0af45064d49210085370425b319b82b) ) - ROM_LOAD( "moo08.rom", 0x180000, 0x080000, CRC(e6937229) SHA1(089b3d4af33e8d8fbc1f3abb81e047a7a590567c) ) - - // sprites from bootleg not included in dump, taken from original game - ROM_REGION( 0x800000, REGION_GFX2, 0 ) - ROM_LOAD( "151a10", 0x000000, 0x200000, CRC(376c64f1) SHA1(eb69c5a27f9795e28f04a503955132f0a9e4de12) ) - ROM_LOAD( "151a11", 0x200000, 0x200000, CRC(e7f49225) SHA1(1255b214f29b6507540dad5892c60a7ae2aafc5c) ) - ROM_LOAD( "151a12", 0x400000, 0x200000, CRC(4978555f) SHA1(d9871f21d0c8a512b408e137e2e80e9392c2bf6f) ) - ROM_LOAD( "151a13", 0x600000, 0x200000, CRC(4771f525) SHA1(218d86b6230919b5db0304dac00513eb6b27ba9a) ) - - ROM_REGION( 0x340000, REGION_SOUND1, 0 ) - ROM_LOAD( "moo01.rom", 0x000000, 0x040000, CRC(3311338a) SHA1(c0b5cd16f0275b5b93a2ea4fc64013c848c5fa43) )//bank 0 lo & hi - ROM_CONTINUE( 0x040000+0x30000, 0x010000)//bank 1 hi - ROM_CONTINUE( 0x080000+0x30000, 0x010000)//bank 2 hi - ROM_CONTINUE( 0x0c0000+0x30000, 0x010000)//bank 3 hi - ROM_CONTINUE( 0x100000+0x30000, 0x010000)//bank 4 hi - ROM_RELOAD( 0x040000, 0x30000 )//bank 1 lo - ROM_RELOAD( 0x080000, 0x30000 )//bank 2 lo - ROM_RELOAD( 0x0c0000, 0x30000 )//bank 3 lo - ROM_RELOAD( 0x100000, 0x30000 )//bank 4 lo - ROM_RELOAD( 0x140000, 0x30000 )//bank 5 lo - ROM_RELOAD( 0x180000, 0x30000 )//bank 6 lo - ROM_RELOAD( 0x1c0000, 0x30000 )//bank 7 lo - ROM_RELOAD( 0x200000, 0x30000 )//bank 8 lo - ROM_RELOAD( 0x240000, 0x30000 )//bank 9 lo - ROM_RELOAD( 0x280000, 0x30000 )//bank a lo - ROM_RELOAD( 0x2c0000, 0x30000 )//bank b lo - ROM_RELOAD( 0x300000, 0x30000 )//bank c lo - - ROM_LOAD( "moo02.rom", 0x140000+0x30000, 0x010000, CRC(2cf3a7c6) SHA1(06f495ba8250b34c32569d49c8b84e6edef562d3) )//bank 5 hi - ROM_CONTINUE( 0x180000+0x30000, 0x010000)//bank 6 hi - ROM_CONTINUE( 0x1c0000+0x30000, 0x010000)//bank 7 hi - ROM_CONTINUE( 0x200000+0x30000, 0x010000)//bank 8 hi - ROM_CONTINUE( 0x240000+0x30000, 0x010000)//bank 9 hi - ROM_CONTINUE( 0x280000+0x30000, 0x010000)//bank a hi - ROM_CONTINUE( 0x2c0000+0x30000, 0x010000)//bank b hi - ROM_CONTINUE( 0x300000+0x30000, 0x010000)//bank c hi -ROM_END - -GAME( 1992, moo, 0, moo, moo, moo, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver EA)", GAME_IMPERFECT_GRAPHICS) -GAME( 1992, mooua, moo, moo, moo, moo, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UA)", GAME_IMPERFECT_GRAPHICS) -GAME( 1992, mooaa, moo, moo, moo, moo, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver AA)", GAME_IMPERFECT_GRAPHICS) -GAME( 1992, moobl, moo, moobl, moo, moo, ROT0, "", "Wild West C.O.W.-Boys of Moo Mesa (bootleg ver AA)", GAME_NOT_WORKING) -GAME( 1992, bucky, 0, bucky, bucky, moo, ROT0, "Konami", "Bucky O'Hare (ver EA)", 0) -GAME( 1992, buckyua, bucky, bucky, bucky, moo, ROT0, "Konami", "Bucky O'Hare (ver UA)", 0) diff --git a/src/drivers/mpatrol.c b/src/drivers/mpatrol.c deleted file mode 100644 index 592b89525..000000000 --- a/src/drivers/mpatrol.c +++ /dev/null @@ -1,598 +0,0 @@ -/*************************************************************************** - -Moon Patrol memory map - -driver by Nicola Salmoria - -0000-3fff ROM -8000-83ff Video RAM -8400-87ff Color RAM -e000-e7ff RAM - - -read: -8800 protection -d000 IN0 -d001 IN1 -d002 IN2 -d003 DSW1 -d004 DSW2 - -write: -c800-c8ff sprites -d000 sound command -d001 flip screen - -I/O ports -write: -10-1f scroll registers -40 background #1 x position -60 background #1 y position -80 background #2 x position -a0 background #2 y position -c0 background control - -NOTE: It may be possible to remove the fake port now that conditional DIPS -are supported. What should really be filled in for each mode? -***************************************************************************/ - -#include "driver.h" -#include "sndhrdw/irem.h" -#include "cpu/z80/z80.h" - - - -WRITE8_HANDLER( mpatrol_scroll_w ); -WRITE8_HANDLER( mpatrol_bg1xpos_w ); -WRITE8_HANDLER( mpatrol_bg1ypos_w ); -WRITE8_HANDLER( mpatrol_bg2xpos_w ); -WRITE8_HANDLER( mpatrol_bg2ypos_w ); -WRITE8_HANDLER( mpatrol_bgcontrol_w ); -WRITE8_HANDLER( mpatrol_flipscreen_w ); -WRITE8_HANDLER( mpatrol_videoram_w ); -WRITE8_HANDLER( mpatrol_colorram_w ); - -PALETTE_INIT( mpatrol ); -VIDEO_START( mpatrol ); -VIDEO_UPDATE( mpatrol ); - - - -/* this looks like some kind of protection. The game does strange things */ -/* if a read from this address doesn't return the value it expects. */ -static READ8_HANDLER( mpatrol_protection_r ) -{ - return activecpu_get_reg(Z80_DE) & 0xff; -} - - -READ8_HANDLER( mpatrol_input_port_3_r ) -{ - int ret = input_port_3_r(0); - - /* Based on the coin mode fill in the upper bits */ - if (input_port_4_r(0) & 0x04) - { - /* Mode 1 */ - ret |= (input_port_5_r(0) << 4); - } - else - { - /* Mode 2 */ - ret |= (input_port_5_r(0) & 0xf0); - } - - return ret; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_READ(mpatrol_protection_r) - AM_RANGE(0xd000, 0xd000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0xd001, 0xd001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0xd002, 0xd002) AM_READ(input_port_2_r) /* IN2 */ - AM_RANGE(0xd003, 0xd003) AM_READ(mpatrol_input_port_3_r) /* DSW1 */ - AM_RANGE(0xd004, 0xd004) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(mpatrol_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(mpatrol_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xc800, 0xc8ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd000, 0xd000) AM_WRITE(irem_sound_cmd_w) - AM_RANGE(0xd001, 0xd001) AM_WRITE(mpatrol_flipscreen_w) /* + coin counters */ - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_alpha1v, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x6fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_READ(mpatrol_protection_r) - AM_RANGE(0xd000, 0xd000) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0xd001, 0xd001) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0xd002, 0xd002) AM_READ(input_port_2_r) /* IN2 */ - AM_RANGE(0xd003, 0xd003) AM_READ(mpatrol_input_port_3_r) /* DSW1 */ - AM_RANGE(0xd004, 0xd004) AM_READ(input_port_4_r) /* DSW2 */ - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_alpha1v, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x6fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(mpatrol_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(mpatrol_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xc800, 0xc9ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_SHARE(1) // bigger or mirrored? - AM_RANGE(0xd000, 0xd000) AM_WRITE(irem_sound_cmd_w) - AM_RANGE(0xd001, 0xd001) AM_WRITE(mpatrol_flipscreen_w) /* + coin counters */ - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_RAM) // bigger or mirrored? -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x10, 0x1f) AM_WRITE(mpatrol_scroll_w) - AM_RANGE(0x40, 0x40) AM_WRITE(mpatrol_bg1xpos_w) - AM_RANGE(0x60, 0x60) AM_WRITE(mpatrol_bg1ypos_w) - AM_RANGE(0x80, 0x80) AM_WRITE(mpatrol_bg2xpos_w) - AM_RANGE(0xa0, 0xa0) AM_WRITE(mpatrol_bg2ypos_w) - AM_RANGE(0xc0, 0xc0) AM_WRITE(mpatrol_bgcontrol_w) -ADDRESS_MAP_END - -#define MPATROL_COMMON\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )\ - /* coin input must be active for ? frames to be consistently recognized */\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(17)\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_START_TAG("IN2")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - -#define MPATROL_COMMON2\ - PORT_START_TAG("DSW1")\ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )\ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )\ - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) )\ - PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )\ - PORT_DIPSETTING( 0x04, "Mode 1" )\ - PORT_DIPSETTING( 0x00, "Mode 2" )\ - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )\ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - /* In stop mode, press 2 to stop and 1 to restart */\ - PORT_DIPNAME( 0x10, 0x10, "Stop Mode (Cheat)")\ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x20, 0x20, "Sector Selection (Cheat)")\ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)")\ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_SERVICE( 0x80, IP_ACTIVE_LOW )\ - /* Fake port to support the two different coin modes */\ - PORT_START_TAG("FAKE")\ - PORT_DIPNAME( 0x0f, 0x0f, "Coinage Mode 1" ) /* mapped on coin mode 1 */\ - PORT_DIPSETTING( 0x09, DEF_STR( 7C_1C ) )\ - PORT_DIPSETTING( 0x0a, DEF_STR( 6C_1C ) )\ - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) )\ - PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) )\ - PORT_DIPSETTING( 0x0d, DEF_STR( 3C_1C ) )\ - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C ) )\ - PORT_DIPSETTING( 0x05, DEF_STR( 1C_4C ) )\ - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )\ - PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )\ - PORT_DIPSETTING( 0x02, DEF_STR( 1C_7C ) )\ - PORT_DIPSETTING( 0x01, DEF_STR( 1C_8C ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ - PORT_DIPNAME( 0x30, 0x30, "Coin A Mode 2" ) /* mapped on coin mode 2 */\ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )\ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )\ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ - PORT_DIPNAME( 0xc0, 0xc0, "Coin B Mode 2" )\ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )\ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) )\ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -INPUT_PORTS_START( mpatrol ) -MPATROL_COMMON - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x01, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "10000 30000 50000" ) - PORT_DIPSETTING( 0x08, "20000 40000 60000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Gets filled in based on the coin mode */ - -MPATROL_COMMON2 -INPUT_PORTS_END - -/* Identical to mpatrol, the only difference is the number of lives */ -INPUT_PORTS_START( mpatrolw ) -MPATROL_COMMON - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "10000 30000 50000" ) - PORT_DIPSETTING( 0x08, "20000 40000 60000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Gets filled in based on the coin mode */ - -MPATROL_COMMON2 -INPUT_PORTS_END - - -INPUT_PORTS_START( alpha1v ) - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - /* coin input must be active for ? frames to be consistently recognized */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(17) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "10000 30000 50000" ) - PORT_DIPSETTING( 0x08, "20000 40000 60000" ) - PORT_DIPSETTING( 0x04, "10000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Gets filled in based on the coin mode */ - -MPATROL_COMMON2 -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 0, 512*8*8 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 */ - { 0, 128*16*16 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const UINT32 bgcharlayout_xoffset[256] = -{ - 0x000, 0x001, 0x002, 0x003, 0x008, 0x009, 0x00a, 0x00b, - 0x010, 0x011, 0x012, 0x013, 0x018, 0x019, 0x01a, 0x01b, - 0x020, 0x021, 0x022, 0x023, 0x028, 0x029, 0x02a, 0x02b, - 0x030, 0x031, 0x032, 0x033, 0x038, 0x039, 0x03a, 0x03b, - 0x040, 0x041, 0x042, 0x043, 0x048, 0x049, 0x04a, 0x04b, - 0x050, 0x051, 0x052, 0x053, 0x058, 0x059, 0x05a, 0x05b, - 0x060, 0x061, 0x062, 0x063, 0x068, 0x069, 0x06a, 0x06b, - 0x070, 0x071, 0x072, 0x073, 0x078, 0x079, 0x07a, 0x07b, - 0x080, 0x081, 0x082, 0x083, 0x088, 0x089, 0x08a, 0x08b, - 0x090, 0x091, 0x092, 0x093, 0x098, 0x099, 0x09a, 0x09b, - 0x0a0, 0x0a1, 0x0a2, 0x0a3, 0x0a8, 0x0a9, 0x0aa, 0x0ab, - 0x0b0, 0x0b1, 0x0b2, 0x0b3, 0x0b8, 0x0b9, 0x0ba, 0x0bb, - 0x0c0, 0x0c1, 0x0c2, 0x0c3, 0x0c8, 0x0c9, 0x0ca, 0x0cb, - 0x0d0, 0x0d1, 0x0d2, 0x0d3, 0x0d8, 0x0d9, 0x0da, 0x0db, - 0x0e0, 0x0e1, 0x0e2, 0x0e3, 0x0e8, 0x0e9, 0x0ea, 0x0eb, - 0x0f0, 0x0f1, 0x0f2, 0x0f3, 0x0f8, 0x0f9, 0x0fa, 0x0fb, - 0x100, 0x101, 0x102, 0x103, 0x108, 0x109, 0x10a, 0x10b, - 0x110, 0x111, 0x112, 0x113, 0x118, 0x119, 0x11a, 0x11b, - 0x120, 0x121, 0x122, 0x123, 0x128, 0x129, 0x12a, 0x12b, - 0x130, 0x131, 0x132, 0x133, 0x138, 0x139, 0x13a, 0x13b, - 0x140, 0x141, 0x142, 0x143, 0x148, 0x149, 0x14a, 0x14b, - 0x150, 0x151, 0x152, 0x153, 0x158, 0x159, 0x15a, 0x15b, - 0x160, 0x161, 0x162, 0x163, 0x168, 0x169, 0x16a, 0x16b, - 0x170, 0x171, 0x172, 0x173, 0x178, 0x179, 0x17a, 0x17b, - 0x180, 0x181, 0x182, 0x183, 0x188, 0x189, 0x18a, 0x18b, - 0x190, 0x191, 0x192, 0x193, 0x198, 0x199, 0x19a, 0x19b, - 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a8, 0x1a9, 0x1aa, 0x1ab, - 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b8, 0x1b9, 0x1ba, 0x1bb, - 0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c8, 0x1c9, 0x1ca, 0x1cb, - 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d8, 0x1d9, 0x1da, 0x1db, - 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e8, 0x1e9, 0x1ea, 0x1eb, - 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f8, 0x1f9, 0x1fa, 0x1fb, -}; - -static const UINT32 bgcharlayout_yoffset[64] = -{ - 0x0000, 0x0200, 0x0400, 0x0600, 0x0800, 0x0a00, 0x0c00, 0x0e00, - 0x1000, 0x1200, 0x1400, 0x1600, 0x1800, 0x1a00, 0x1c00, 0x1e00, - 0x2000, 0x2200, 0x2400, 0x2600, 0x2800, 0x2a00, 0x2c00, 0x2e00, - 0x3000, 0x3200, 0x3400, 0x3600, 0x3800, 0x3a00, 0x3c00, 0x3e00, - 0x4000, 0x4200, 0x4400, 0x4600, 0x4800, 0x4a00, 0x4c00, 0x4e00, - 0x5000, 0x5200, 0x5400, 0x5600, 0x5800, 0x5a00, 0x5c00, 0x5e00, - 0x6000, 0x6200, 0x6400, 0x6600, 0x6800, 0x6a00, 0x6c00, 0x6e00, - 0x7000, 0x7200, 0x7400, 0x7600, 0x7800, 0x7a00, 0x7c00, 0x7e00, -}; - -static const gfx_layout bgcharlayout = -{ - 256, 64, /* 256x64 image format */ - 1, /* 1 image */ - 2, /* 2 bits per pixel */ - { 4, 0 }, /* the two bitplanes for 4 pixels are packed into one byte */ - EXTENDED_XOFFS, - EXTENDED_YOFFS, - 0x8000, - bgcharlayout_xoffset, - bgcharlayout_yoffset -}; - - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 128 }, - { REGION_GFX2, 0x0000, &spritelayout, 128*4, 16 }, - { REGION_GFX3, 0x0000, &bgcharlayout, 128*4+16*4+0*4, 1 }, - { REGION_GFX4, 0x0000, &bgcharlayout, 128*4+16*4+1*4, 1 }, - { REGION_GFX5, 0x0000, &bgcharlayout, 128*4+16*4+2*4, 1 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( mpatrol ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(0,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1790) /* accurate frequency, measured on a real board, is 56.75Hz. */) - /* the Lode Runner manual (similar but different hardware) */ - /* talks about 55Hz and 1790ms vblank duration. */ - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512+32+32) - MDRV_COLORTABLE_LENGTH(128*4+16*4+3*4) - - MDRV_PALETTE_INIT(mpatrol) - MDRV_VIDEO_START(mpatrol) - MDRV_VIDEO_UPDATE(mpatrol) - - /* sound hardware */ - MDRV_IMPORT_FROM(irem_audio) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( alpha1v ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ? */ - MDRV_CPU_PROGRAM_MAP(readmem_alpha1v,writemem_alpha1v) - MDRV_CPU_IO_MAP(0,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1790) /* accurate frequency, measured on a real board, is 56.75Hz. */) - /* the Lode Runner manual (similar but different hardware) */ - /* talks about 55Hz and 1790ms vblank duration. */ - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 32*8-1) -// MDRV_GFXDECODE(gfxdecodeinfo_alpha1v) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512+32+32) - MDRV_COLORTABLE_LENGTH(128*4+16*4+3*4) - - MDRV_PALETTE_INIT(mpatrol) - MDRV_VIDEO_START(mpatrol) - MDRV_VIDEO_UPDATE(mpatrol) - - /* sound hardware */ - MDRV_IMPORT_FROM(irem_audio) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( mpatrol ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mpa-1.3m", 0x0000, 0x1000, CRC(5873a860) SHA1(8c03726d6e049c3edbc277440184e31679f78258) ) - ROM_LOAD( "mpa-2.3l", 0x1000, 0x1000, CRC(f4b85974) SHA1(dfb2efb57378a20af6f20569f4360cde95596f93) ) - ROM_LOAD( "mpa-3.3k", 0x2000, 0x1000, CRC(2e1a598c) SHA1(112c3c9678db8a8540a8df3708020c87fd10c91b) ) - ROM_LOAD( "mpa-4.3j", 0x3000, 0x1000, CRC(dd05b587) SHA1(727961b0dafa4a96b580d51013336db2a18aff1e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "mp-s1.1a", 0xf000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-5.3e", 0x0000, 0x1000, CRC(e3ee7f75) SHA1(b03d0d56150d3e9da4a4c871338097b4f450b649) ) /* chars */ - ROM_LOAD( "mpe-4.3f", 0x1000, 0x1000, CRC(cca6d023) SHA1(fecb3059fb09897a096add9452b50aec55c07545) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mpb-2.3m", 0x0000, 0x1000, CRC(707ace5e) SHA1(93c682e13e74bce29ced3a87bffb29569c114c3b) ) /* sprites */ - ROM_LOAD( "mpb-1.3n", 0x1000, 0x1000, CRC(9b72133a) SHA1(1393ef92ae1ad58a4b62ca1660c0793d30a8b5e2) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-1.3l", 0x0000, 0x1000, CRC(c46a7f72) SHA1(8bb7c9acaf6833fb6c0575b015991b873a305a84) ) /* background graphics */ - - ROM_REGION( 0x1000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-2.3k", 0x0000, 0x1000, CRC(c7aa1fb0) SHA1(14c6c76e1d0db2c0745e5d6d33ea6945fac8e9ee) ) - - ROM_REGION( 0x1000, REGION_GFX5, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-3.3h", 0x0000, 0x1000, CRC(a0919392) SHA1(8a090cb8d483a3d67c7360058e3fdd70e151cd62) ) - - ROM_REGION( 0x0340, REGION_PROMS, 0 ) - ROM_LOAD( "mpc-4.2a", 0x0000, 0x0200, CRC(07f99284) SHA1(dfc52958f2520e1ce4446dd4c84c91413bbacf76) ) - ROM_LOAD( "mpc-3.1m", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) ) /* background palette */ - ROM_LOAD( "mpc-1.1f", 0x0220, 0x0020, CRC(26979b13) SHA1(8c41a8cce4f3384c392a9f7a223a50d7be0e14a5) ) /* sprite palette */ - ROM_LOAD( "mpc-2.2h", 0x0240, 0x0100, CRC(7ae4cd97) SHA1(bc0662fac82ffe65f02092d912b2c2b0c7a8ac2b) ) /* sprite lookup table */ -ROM_END - -ROM_START( mpatrolw ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "mpa-1w.3m", 0x0000, 0x1000, CRC(baa1a1d4) SHA1(7968a7f221e7f4c9c81ddc8de17f6568e17b9ea8) ) - ROM_LOAD( "mpa-2w.3l", 0x1000, 0x1000, CRC(52459e51) SHA1(ae685b7848baa1b87a3f2bce97356286171e16d4) ) - ROM_LOAD( "mpa-3w.3k", 0x2000, 0x1000, CRC(9b249fe5) SHA1(c01e0d572c4c163f3cf4b2aa9f4246427811b78d) ) - ROM_LOAD( "mpa-4w.3j", 0x3000, 0x1000, CRC(fee76972) SHA1(c3166b027f89f61964ead804d3c2da387454c4c2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "mp-s1.1a", 0xf000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-5w.3e", 0x0000, 0x1000, CRC(f56e01fe) SHA1(93f582d63b9cd5c6dca207aa57b213c939cdda1d) ) /* chars */ - ROM_LOAD( "mpe-4w.3f", 0x1000, 0x1000, CRC(caaba2d9) SHA1(7016a26c2d01e3209749598e993cd8ce91f12c88) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "mpb-2.3m", 0x0000, 0x1000, CRC(707ace5e) SHA1(93c682e13e74bce29ced3a87bffb29569c114c3b) ) /* sprites */ - ROM_LOAD( "mpb-1.3n", 0x1000, 0x1000, CRC(9b72133a) SHA1(1393ef92ae1ad58a4b62ca1660c0793d30a8b5e2) ) - - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-1.3l", 0x0000, 0x1000, CRC(c46a7f72) SHA1(8bb7c9acaf6833fb6c0575b015991b873a305a84) ) /* background graphics */ - - ROM_REGION( 0x1000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-2.3k", 0x0000, 0x1000, CRC(c7aa1fb0) SHA1(14c6c76e1d0db2c0745e5d6d33ea6945fac8e9ee) ) - - ROM_REGION( 0x1000, REGION_GFX5, ROMREGION_DISPOSE ) - ROM_LOAD( "mpe-3.3h", 0x0000, 0x1000, CRC(a0919392) SHA1(8a090cb8d483a3d67c7360058e3fdd70e151cd62) ) - - ROM_REGION( 0x0340, REGION_PROMS, 0 ) - ROM_LOAD( "mpc-4a.2a", 0x0000, 0x0200, CRC(cb0a5ff3) SHA1(d3f88b4e0c4858abac8b52105656ecece0cf4df9) ) - ROM_LOAD( "mpc-3.1m", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) ) /* background palette */ - ROM_LOAD( "mpc-1.1f", 0x0220, 0x0020, CRC(26979b13) SHA1(8c41a8cce4f3384c392a9f7a223a50d7be0e14a5) ) /* sprite palette */ - ROM_LOAD( "mpc-2.2h", 0x0240, 0x0100, CRC(7ae4cd97) SHA1(bc0662fac82ffe65f02092d912b2c2b0c7a8ac2b) ) /* sprite lookup table */ -ROM_END - - -ROM_START( alpha1v ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "2-m3", 0x0000, 0x1000, CRC(3a679d34) SHA1(1a54a43070c56dc91d4d258f29e29613bb309f1c) ) - ROM_LOAD( "3-l3", 0x1000, 0x1000, CRC(2f09df64) SHA1(e91602e9e41ad24dd1d7f384ed81b9bdaadd03e1) ) - ROM_LOAD( "4-k3", 0x2000, 0x1000, CRC(64fb9c8a) SHA1(735fd00cc42193a417e6cde75f12b4cf2e804942) ) - ROM_LOAD( "5-j3", 0x3000, 0x1000, CRC(d1643d18) SHA1(7c794b82e17e2ba0a6237e3fc20d8314f6c2481c) ) - ROM_LOAD( "6-h3", 0x4000, 0x1000, CRC(cf34ab51) SHA1(3696da71e2bc7edd1ee7aeaac87be5386608c09e) ) - ROM_LOAD( "7-f3", 0x5000, 0x1000, CRC(99db9781) SHA1(a56a675cc4cbc9681bfe8052f51f19336eb2a0a6) ) - ROM_LOAD( "7a e3", 0x6000, 0x1000, CRC(3b0b4b0d) SHA1(0d8eea1e2db269943611289b3490a578ee347f85) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "1-a1", 0xf000, 0x1000, CRC(9e07fdd5) SHA1(ed4f462fcfe91fa8e88bfeaaba0a0c11fa0b4601) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "14-e3", 0x0000, 0x1000, CRC(cf00c737) SHA1(415e90289039cac4d04cb1d559f1378ca6a32132) ) /* chars */ - ROM_LOAD( "13-f3", 0x1000, 0x1000, CRC(4b799229) SHA1(42cbdcf787b08b041d30504d699a12c378224933) ) - - ROM_REGION( 0x3000, REGION_GFX2, ROMREGION_DISPOSE ) // 3bpp? (mpatrol is 2bpp..) - ROM_LOAD( "15-n3", 0x0000, 0x1000, CRC(dc26df76) SHA1(dd1cff7935f5559f9d1b440e02d5e5aa521b0054) ) - ROM_LOAD( "16-l3", 0x1000, 0x1000, CRC(39b9863b) SHA1(da9da9a1066188f050c422dfed1bbbd3ba612ccc) ) - ROM_LOAD( "17-k3", 0x2000, 0x1000, CRC(cfd90773) SHA1(052e126888b6de636db9c521a090699c282b620b) ) - - /* all the background roms just contain stars.. */ - ROM_REGION( 0x1000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "11-k3", 0x0000, 0x1000, CRC(7659440a) SHA1(2efd27c82913513dd03e799f1ed3c10b0863677d) ) // these two match.. - ROM_LOAD( "12-jh3", 0x0000, 0x1000, CRC(7659440a) SHA1(2efd27c82913513dd03e799f1ed3c10b0863677d) ) - - ROM_REGION( 0x1000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "9-n3", 0x0000, 0x1000, CRC(0fdb7d13) SHA1(e828254a4f94df633d338b5772719276d41c6b7f) ) - - ROM_REGION( 0x1000, REGION_GFX5, ROMREGION_DISPOSE ) - ROM_LOAD( "10-lm3", 0x0000, 0x1000, CRC(9dde3a75) SHA1(293d093485be19bfb20685d76a08ac78e24062bf) ) - - ROM_REGION( 0x0340, REGION_PROMS, 0 ) - ROM_LOAD( "63s481-a2", 0x0000, 0x0200, CRC(58678ea8) SHA1(b13a78a5bca8ad5bdec1293512b53654768a7a7a) ) - ROM_LOAD( "18s030-m1", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) ) /* background palette */ - ROM_LOAD( "mb7051-f1", 0x0220, 0x0020, CRC(d8bdd0df) SHA1(ca522428927911808214d319af314f601497ded4) ) /* sprite palette */ - ROM_LOAD( "mb7052-h2", 0x0240, 0x0100, CRC(ce9f0ef9) SHA1(3afb94ed033f272983bbed22a59856df7824ef8a) ) /* sprite lookup table */ -ROM_END - - - -GAME( 1982, mpatrol, 0, mpatrol, mpatrol, 0, ROT0, "Irem", "Moon Patrol", 0 ) -GAME( 1982, mpatrolw, mpatrol, mpatrol, mpatrolw, 0, ROT0, "Irem (Williams license)", "Moon Patrol (Williams)", 0 ) -GAME( 1988, alpha1v, 0, alpha1v, alpha1v, 0, ROT0, "Vision Electronics", "Alpha One (Vision Electronics / Kyle Hodgetts)", GAME_NOT_WORKING|GAME_NO_SOUND ) diff --git a/src/drivers/mustache.c b/src/drivers/mustache.c deleted file mode 100644 index bf3ceecc9..000000000 --- a/src/drivers/mustache.c +++ /dev/null @@ -1,387 +0,0 @@ -/*************************************************************************** - - Mustache Boy - (c)1987 March Electronics - - (there are also Seibu and Taito logos/copyrights in the ROMs) - - driver by Tomasz Slanina dox@space.pl - - The hardware similar to Knuckle Joe. - - TODO - Sound - - YM2151 + YM 3012 - - -Toshiba T5182 die map, by Jonathan Gevaryahu AKA Lord Nightmare, -with assistance from Kevin Horton. -T5182 supplied by Tomasz 'Dox' Slanina - -Die Diagram: -|------------------------| -\ ROM RAM Z80 A | -/ B C D E F G | -|------------------------| - -The ROM is a 23128 wired as a 2364 by tying a13 to /ce -The RAM is a 2016 -The Z80 is a ...Z80. go figure. -Subdie A is a 7408 quad AND gate -Subdie B is a 74245 bidirectional bus transciever -Subdie C is a 74245 bidirectional bus transciever -Subdie D is a 74245 bidirectional bus transciever -Subdie E is a 74138 1 to 8 decoder/demultiplexer with active low outputs -Subdie F is a 74138 1 to 8 decoder/demultiplexer with active low outputs -Subdie G is a 7408 quad AND gate -Thanks to Kevin Horton for working out most of the logic gate types -from the diagram. - - ______________________ - _|* |_ - GND |_|1 50|_| Vcc - _| |_ - A8 |_|2 49|_| A7 - _| |_ - A9 |_|3 48|_| A6 - _| |_ - A10 |_|4 47|_| A5 - _| |_ - A11 |_|5 46|_| A4 - _| TOSHIBA |_ - A12 |_|6 T5182 45|_| A3 - _| |_ - A13 |_|7 44|_| A2 - _| JAPAN 8612 |_ - A14 |_|8 43|_| A1 - _| |_ - A15 |_|9 42|_| A0 - _| |_ - D4 |_|10 41|_| D3 - _| |_ - D5 |_|11 40|_| D2 - _| |_ - D6 |_|12 39|_| D1 - _| |_ - D7 |_|13 38|_| D0 - _| |_ - I/O /EN 2 |_|14 37|_| I/O /EN 1 - _| |_ - I/O /EN 3 |_|15 36|_| I/O /EN 0 - _| |_ - I/O /EN 4 |_|16 35|_| /EN 0x8000-0xFFFF - _| |_ - I/O /EN 5 |_|17 34|_| /EN 0x4000-0x7FFF - _| |_ - Z80 phi clock in |_|18 33|_| N/C - _| |_ - Z80 /INT |_|19 32|_| Z80 /RESET - _| |_ - Z80 /NMI |_|20 31|_| Z80 /BUSRQ Test pin - _| |_ - Shorted to pin 22 |_|21 30|_| 74245 'A'+'B' DIR Test pin - _| |_ - /EN 0x0000-0x1fff |_|22 29|_| Z80 /BUSAK Test pin - _| |_ -Z80 /MREQ Test pin |_|23 28|_| Z80 /WR - _| |_ -Z80 /IORQ Test pin |_|24 27|_| Z80 /RD - _| |_ - GND |_|25 26|_| Vcc - |______________________| - -Based on sketch made by Tormod -Note: all pins marked as 'Test pin' are disabled internally and cannot be used without removing the chip cover and soldering together test pads. -Note: pins 21 and 22 are both shorted together, and go active (low) while the internal rom is being read. The internal rom can be disabled by pulling /IORQ or /MREQ low, - but both of those test pins are disabled, and also one would have to use the DIR test pin at the same time to feed the z80 a new internal rom (this is PROBABLY how - seibu prototyped the rom, they had an external rom connected to this enable, and the internal rom disabled somehow) This pin CAN however be used as an indicator as - to when the internal rom is being read, allowing one to snoop the address and data busses without fear of getting ram data as opposed to rom. - -Z80 Memory Map: -0x0000-0x1FFF - Internal ROM, also external space 0 (which is effectively disabled) -0x2000-0x3fff - Internal RAM, repeated/mirrored 4 times -0x4000-0x7fff - external space 1 (used for communication shared memory?) -0x8000-0xFFFF - external space 2 (used for sound rom) - -I/O map: -FEDCBA9876543210 -xxxxxxxxx000xxxx i/o /EN 0 goes low -xxxxxxxxx001xxxx i/o /EN 1 goes low -xxxxxxxxx010xxxx i/o /EN 2 goes low -xxxxxxxxx011xxxx i/o /EN 3 goes low -xxxxxxxxx100xxxx i/o /EN 4 goes low -xxxxxxxxx101xxxx i/o /EN 5 goes low -xxxxxxxxx110xxxx i/o /EN 6\__ these two are unbonded pins, so are useless. -xxxxxxxxx111xxxx i/o /EN 7/ - -IMPORTANT: the data lines for the external rom on darkmist are scrambled on the SEI8608B board as such: -CPU: ROM: -D0 D0 -D1 D6 -D2 D5 -D3 D4 -D4 D3 -D5 D2 -D6 D1 -D7 D7 -Only the data lines are scrambled, the address lines are not. -These lines are NOT scrambled to the ym2151 or anything else, just the external rom. - - -***************************************************************************/ -#include "driver.h" -#include "sndhrdw/seibu.h" - -WRITE8_HANDLER( mustache_videoram_w ); -WRITE8_HANDLER( mustache_scroll_w ); -WRITE8_HANDLER ( mustache_video_control_w); -VIDEO_START( mustache ); -VIDEO_UPDATE( mustache ); -PALETTE_INIT( mustache ); - - -static int read_coins=0; - -READ8_HANDLER ( mustache_coin_hack_r ) -{ - return (read_coins)?((offset&1 )?(input_port_5_r(0)<<5)|(input_port_5_r(0)<<7):(input_port_5_r(0)<<4)):0; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_READ(videoram_r) /* videoram */ - AM_RANGE(0xd001, 0xd001) AM_READ(MRA8_RAM) /* T5182 ? */ - AM_RANGE(0xd400, 0xd4ff) AM_READ(MRA8_RAM) /* shared with T5182 ?*/ - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) /* IN 0 */ - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) /* IN 1 */ - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) /* IN 2 */ - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) /* DSW A */ - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) /* DSW B */ - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(mustache_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xd000, 0xd003) AM_WRITE(MWA8_RAM) /* T5182 ? */ - AM_RANGE(0xd400, 0xd4ff) AM_WRITE(MWA8_RAM) /* shared with T5182 ?*/ - AM_RANGE(0xd806, 0xd806) AM_WRITE(mustache_scroll_w) - AM_RANGE(0xd807, 0xd807) AM_WRITE(mustache_video_control_w) - AM_RANGE(0xe800, 0xefff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -/******************************************************************************/ - -INPUT_PORTS_START( mustache ) - PORT_START /* IN 1 */ - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN 2 */ - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* IN 3 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xf9, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - - PORT_DIPNAME( 0x06, 0x04, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x18, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) ) - - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3),RGN_FRAC(2,3)}, - {STEP8(7,-1)}, - {STEP8(0,8)}, - 8*8 -}; -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(1,4), RGN_FRAC(3,4),RGN_FRAC(0,4),RGN_FRAC(2,4)}, - {STEP16(15,-1)}, - {STEP16(0,16)}, - 16*16 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x00, 16 }, - { REGION_GFX2, 0, &spritelayout, 0x80, 8 }, - { -1 } /* end of array */ -}; - - -INTERRUPT_GEN( mustache_interrupt) -{ - read_coins^=1; - cpunum_set_input_line(0, 0, PULSE_LINE); -} - - -static MACHINE_DRIVER_START( mustache ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/4) /* maybe 12000000/3 - two xtals (18.432 and 12.xxx) near cpu*/ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(mustache_interrupt,2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8*16+16*8) - - MDRV_PALETTE_INIT(mustache) - MDRV_VIDEO_START(mustache) - MDRV_VIDEO_UPDATE(mustache) -MACHINE_DRIVER_END - -ROM_START( mustache ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "mustache.h18", 0x0000, 0x8000, CRC(123bd9b8) SHA1(33a7cba5c3a54b0b1a15dd1e24d298b6f7274321) ) - ROM_LOAD( "mustache.h16", 0x8000, 0x4000, CRC(62552beb) SHA1(ee10991d7de0596608fa1db48805781cbfbbdb9f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* T5182 */ - ROM_LOAD( "mustache.e5",0x0000, 0x8000, CRC(efbb1943) SHA1(3320e9eaeb776d09ed63f7dedc79e720674e6718) ) - - ROM_REGION( 0x0c000, REGION_GFX1,0) /* BG tiles */ - ROM_LOAD( "mustache.a13", 0x0000, 0x4000, CRC(9baee4a7) SHA1(31bcec838789462e67e54ebe7256db9fc4e51b69) ) - ROM_LOAD( "mustache.a14", 0x4000, 0x4000, CRC(8155387d) SHA1(5f0a394c7671442519a831b0eeeaba4eecd5a406) ) - ROM_LOAD( "mustache.a16", 0x8000, 0x4000, CRC(4db4448d) SHA1(50a94fd65c263d95fd24b4009dbb87707929fdcb) ) - - ROM_REGION( 0x20000, REGION_GFX2,0 ) /* sprites */ - ROM_LOAD( "mustache.a4", 0x00000, 0x8000, CRC(d5c3bbbf) SHA1(914e3feea54246476701f492c31bd094ad9cea10) ) - ROM_LOAD( "mustache.a7", 0x08000, 0x8000, CRC(e2a6012d) SHA1(4e4cd1a186870c8a88924d5bff917c6889da953d) ) - ROM_LOAD( "mustache.a5", 0x10000, 0x8000, CRC(c975fb06) SHA1(4d166bd79e19c7cae422673de3e095ad8101e013) ) - ROM_LOAD( "mustache.a8", 0x18000, 0x8000, CRC(2e180ee4) SHA1(a5684a25c337aeb4effeda7982164d35bc190af9) ) - - ROM_REGION( 0x1300, REGION_PROMS,0 ) /* proms */ - ROM_LOAD( "mustache.c3",0x0000, 0x0100, CRC(68575300) SHA1(bc93a38df91ad8c2f335f9bccc98b52376f9b483) ) - ROM_LOAD( "mustache.c2",0x0100, 0x0100, CRC(eb008d62) SHA1(a370fbd1affaa489210ea36eb9e365263fb4e232) ) - ROM_LOAD( "mustache.c1",0x0200, 0x0100, CRC(65da3604) SHA1(e4874d4152a57944d4e47306250833ea5cd0d89b) ) - - ROM_LOAD( "mustache.b6",0x0300, 0x1000, CRC(5f83fa35) SHA1(cb13e63577762d818e5dcbb52b8a53f66e284e8f) ) /* 63S281N near SEI0070BU */ -ROM_END - -static DRIVER_INIT( mustache ) -{ - int i; - - int G1 = memory_region_length(REGION_GFX1)/3; - int G2 = memory_region_length(REGION_GFX2)/2; - UINT8 *gfx1 = memory_region(REGION_GFX1); - UINT8 *gfx2 = memory_region(REGION_GFX2); - UINT8 *buf=malloc_or_die(G2*2); - - /* BG data lines */ - for (i=0;i> 8; - buf[i+G1*2] = w & 0xff; - } - - /* BG address lines */ - for (i = 0; i < 3*G1; i++) - gfx1[i] = buf[BITSWAP16(i,15,14,13,2,1,0,12,11,10,9,8,7,6,5,4,3)]; - - /* SPR data lines */ - for (i=0;i> 8; - buf[i+G2] = w & 0xff; - } - - /* SPR address lines */ - for (i = 0; i < 2*G2; i++) - gfx2[i] = buf[BITSWAP24(i,23,22,21,20,19,18,17,16,15,12,11,10,9,8,7,6,5,4,13,14,3,2,1,0)]; - - free(buf); - seibu_sound_decrypt(REGION_CPU1,0x8000); - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd400, 0xd401, 0, 0, mustache_coin_hack_r); -} - - -GAME( 1987, mustache, 0, mustache, mustache, mustache, ROT90, "[Seibu Kaihatsu] (March license)", "Mustache Boy", GAME_NO_SOUND ) diff --git a/src/drivers/mw8080bw.c b/src/drivers/mw8080bw.c deleted file mode 100644 index e43eda60b..000000000 --- a/src/drivers/mw8080bw.c +++ /dev/null @@ -1,3154 +0,0 @@ -/*************************************************************************** - - Midway 8080-based black and white hardware - - driver by Michael Strutts, Nicola Salmoria, Tormod Tjaberg, Mirko Buffoni, - Lee Taylor, Valerio Verrando, Marco Cassili, Zsolt Vasvari and others - - Games supported: - * Sea Wolf - * Gun Fight - * Tornado Baseball - * Datsun 280 Zzzap - * Amazing Maze - * Boot Hill - * Checkmate - * Desert Gun - * Double Play - * Laguna Racer - * Guided Missile - * M-4 - * Clowns - * Extra Inning - * Shuffleboard - * Dog Patch - * Space Encounters - * Phantom II - * Bowling Alley - * Space Invaders - * Blue Shark - * Space Invaders II (Midway, cocktail version) - * Space Invaders Deluxe (cocktail version) - - Other games on this basic hardware: - * Space Walk - * Bowling Alley (cocktail version) - - Notes: - * The Amazing Maze Game" on title screen, but manual, flyer, - cabinet side art all call it just "Amazing Maze" - * Desert Gun was originally named Road Runner. The name was changed - when Midway merged with Bally who had a game by the same title - - Known issues/to-do's: - * Space Encounters: verify trench colors - * Space Encounters: verify strobe light frequency - * Phantom II: cloud generator is implemented according to the schematics, - but it doesn't look right. Cloud color mixing to be verified as well - * Dog Patch: find schematics and verify all assumptions - * M-4: figure out Unknown DIP switches - - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - MAIN CPU memory address space - ======================================================================== - - Address (15-bits) Dir Data Description - ----------------- --- -------- ----------------------- - x0xxxxxxxxxxxxx R xxxxxxxx Program ROM (various amounts populated) - -1xxxxxxxxxxxxx R/W xxxxxxxx Video RAM (256x256x1 bit display) - Portion in VBLANK region used as work RAM - Legend: (x) bit significant - (-) bit ignored - (0/1) bit must be given value - - The I/O address space is used differently from game to game. - -****************************************************************************/ - -#include "driver.h" -#include "rendlay.h" -#include "rescap.h" -#include "timer.h" -#include "mw8080bw.h" - -#include "clowns.lh" -#include "invaders.lh" -#include "invad2ct.lh" - - - -/************************************* - * - * Shifter circuit - * - *************************************/ - -static UINT16 shift_data; /* 15 bits only */ -static UINT8 shift_amount; /* 3 bits */ -static UINT8 rev_shift_res; - - -INLINE UINT8 do_shift(void) -{ - return shift_data >> shift_amount; -} - - -static READ8_HANDLER( mw8080bw_shift_res_r ) -{ - return do_shift(); -} - - -static READ8_HANDLER( mw8080bw_shift_res_rev_r ) -{ - UINT8 ret = do_shift(); - - return BITSWAP8(ret,0,1,2,3,4,5,6,7); -} - - -static READ8_HANDLER( mw8080bw_reversable_shift_res_r ) -{ - UINT8 ret; - - if (rev_shift_res) - { - ret = mw8080bw_shift_res_rev_r(0); - } - else - { - ret = mw8080bw_shift_res_r(0); - } - - return ret; -} - -static WRITE8_HANDLER( mw8080bw_shift_amount_w ) -{ - shift_amount = ~data & 0x07; -} - - -static WRITE8_HANDLER( mw8080bw_reversable_shift_amount_w) -{ - mw8080bw_shift_amount_w(offset, data); - - rev_shift_res = data & 0x08; -} - - -static WRITE8_HANDLER( mw8080bw_shift_data_w ) -{ - shift_data = (shift_data >> 8) | ((UINT16)data << 7); -} - - - -/************************************* - * - * Interrupt generation - * - *************************************/ - -/* an interrupt is raised when the expression - !(!(!VPIXCOUNT14 & VPIXCOUNT15) & !VBLANK) goes from LO to HI. - This happens when the vertical pixel count is 0x80 and 0xda and - VBLANK is 0 and 1, respectively. These correspond to lines - 96 and 224 as displayed. The interrupt vector is given by the - expression: 0xc7 | (VPIXCOUNT14 << 4) | (!VPIXCOUNT14 << 3), - giving 0xcf and 0xd7 for the vectors. */ - -static mame_timer *interrupt_timer; - - -static void mw8080bw_interrupt_callback(int param) -{ - /* determine vector and trigger interrupt based on the current vertical position */ - int vpos = video_screen_get_vpos(0); - - UINT8 vector = (vpos & 0x80) ? 0xd7 : 0xcf; /* rst 10h/08h */ - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, vector); - - /* set up for next interrupt */ - vpos = (vpos == 96) ? 224 : 96; - mame_timer_adjust(interrupt_timer, video_screen_get_time_until_pos(0, vpos, 0), 0, time_zero); -} - - -static void mw8080bw_create_interrupt_timer(void) -{ - interrupt_timer = timer_alloc(mw8080bw_interrupt_callback); -} - - -static void mw8080bw_start_interrupt_timer(void) -{ - mame_timer_adjust(interrupt_timer, video_screen_get_time_until_pos(0, 96, 0), 0, time_zero); -} - - - -/************************************* - * - * Machine setup - * - *************************************/ - -static MACHINE_START( mw8080bw ) -{ - mw8080bw_create_interrupt_timer(); - - /* setup for save states */ - state_save_register_global(shift_data); - state_save_register_global(shift_amount); - state_save_register_global(rev_shift_res); - - return machine_start_mw8080bw_sndhrdw(machine); -} - - - -/************************************* - * - * Machine reset - * - *************************************/ - -static MACHINE_RESET( mw8080bw) -{ - mw8080bw_start_interrupt_timer(); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4000, 0x5fff) AM_ROM -ADDRESS_MAP_END - - -static MACHINE_DRIVER_START( root ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",8080,MW8080BW_CPU_CLOCK) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_MACHINE_START(mw8080bw) - MDRV_MACHINE_RESET(mw8080bw) - - /* video hardware - +4 is added to HBSTART because the hardware displays that many pixels after - setting HBLANK */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HBSTART + 4, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) \ - MDRV_VIDEO_UPDATE(mw8080bw) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Sea Wolf (PCB #596) - * - *************************************/ - -#define SEAWOLF_ERASE_SW_PORT_TAG ("ERASESW") -#define SEAWOLF_ERASE_DIP_PORT_TAG ("ERASEDIP") - - -static WRITE8_HANDLER( seawolf_explosion_lamp_w ) -{ -/* D0-D3 are column drivers and D4-D7 are row drivers. - The following table shows values that light up individual lamps. - - D7 D6 D5 D4 D3 D2 D1 D0 Function - -------------------------------------------------------------------------------------- - 0 0 0 1 1 0 0 0 Explosion Lamp 0 - 0 0 0 1 0 1 0 0 Explosion Lamp 1 - 0 0 0 1 0 0 1 0 Explosion Lamp 2 - 0 0 0 1 0 0 0 1 Explosion Lamp 3 - 0 0 1 0 1 0 0 0 Explosion Lamp 4 - 0 0 1 0 0 1 0 0 Explosion Lamp 5 - 0 0 1 0 0 0 1 0 Explosion Lamp 6 - 0 0 1 0 0 0 0 1 Explosion Lamp 7 - 0 1 0 0 1 0 0 0 Explosion Lamp 8 - 0 1 0 0 0 1 0 0 Explosion Lamp 9 - 0 1 0 0 0 0 1 0 Explosion Lamp A - 0 1 0 0 0 0 0 1 Explosion Lamp B - 1 0 0 0 1 0 0 0 Explosion Lamp C - 1 0 0 0 0 1 0 0 Explosion Lamp D - 1 0 0 0 0 0 1 0 Explosion Lamp E - 1 0 0 0 0 0 0 1 Explosion Lamp F -*/ - int i; - - static const char *lamp_names[] = - { - "EXP_LAMP_0", "EXP_LAMP_1", "EXP_LAMP_2", "EXP_LAMP_3", - "EXP_LAMP_4", "EXP_LAMP_5", "EXP_LAMP_6", "EXP_LAMP_7", - "EXP_LAMP_8", "EXP_LAMP_9", "EXP_LAMP_A", "EXP_LAMP_B", - "EXP_LAMP_C", "EXP_LAMP_D", "EXP_LAMP_E", "EXP_LAMP_F" - }; - - static const UINT8 bits_for_lamps[] = - { - 0x18, 0x14, 0x12, 0x11, - 0x28, 0x24, 0x22, 0x21, - 0x48, 0x44, 0x42, 0x41, - 0x88, 0x84, 0x82, 0x81 - }; - - /* set each lamp */ - for (i = 0; i < 16; i++) - { - UINT8 bits_for_lamp = bits_for_lamps[i]; - - output_set_value(lamp_names[i], (data & bits_for_lamp) == bits_for_lamp); - } -} - - -static WRITE8_HANDLER( seawolf_periscope_lamp_w ) -{ - /* the schematics and the connecting diagrams show the - torpedo light order differently, but this order is - confirmed by the software */ - output_set_value("TORP_LAMP_4", (data >> 0) & 0x01); - output_set_value("TORP_LAMP_3", (data >> 1) & 0x01); - output_set_value("TORP_LAMP_2", (data >> 2) & 0x01); - output_set_value("TORP_LAMP_1", (data >> 3) & 0x01); - - output_set_value("READY_LAMP", (data >> 4) & 0x01); - - output_set_value("RELOAD_LAMP", (data >> 5) & 0x01); -} - - -static UINT32 seawolf_controller_input_r(void *param) -{ - static const UINT32 gray_code_5_bit[] = - { - 0, 1, 3, 2, 6, 7, 5, 4, - 12, 13, 15, 14, 10, 11, 9, 8, - 24, 25, 27, 26, 30, 31, 29, 28, - 20, 21, 23, 22, 18, 19, 17, 16, - }; - - return gray_code_5_bit[readinputportbytag(SEAWOLF_GUN_PORT_TAG)]; -} - - -static UINT32 seawolf_erase_input_r(void *param) -{ - return readinputportbytag(SEAWOLF_ERASE_SW_PORT_TAG) & - readinputportbytag(SEAWOLF_ERASE_DIP_PORT_TAG); -} - - -static ADDRESS_MAP_START( seawolf_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(seawolf_explosion_lamp_w) - AM_RANGE(0x02, 0x02) AM_WRITE(seawolf_periscope_lamp_w) - AM_RANGE(0x03, 0x03) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x04, 0x04) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x05, 0x05) AM_WRITE(seawolf_sh_port_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( seawolf ) - PORT_START_TAG("IN0") - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(seawolf_controller_input_r, 0) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Game_Time ) ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0xe0) PORT_DIPLOCATION("G4:1,2") - PORT_DIPSETTING( 0x00, "60 seconds + 20 extended" ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING( 0x40, "70 seconds + 20 extended" ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING( 0x80, "80 seconds + 20 extended" ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING( 0xc0, "90 seconds + 20 extended" ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0x00) - PORT_DIPSETTING( 0x00, "60 seconds" ) PORT_CONDITION("IN1",0xe0,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING( 0x40, "70 seconds" ) PORT_CONDITION("IN1",0xe0,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING( 0x80, "80 seconds" ) PORT_CONDITION("IN1",0xe0,PORTCOND_EQUALS,0x00) - PORT_DIPSETTING( 0xc0, "90 seconds" ) PORT_CONDITION("IN1",0xe0,PORTCOND_EQUALS,0x00) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN1",0xe0,PORTCOND_NOTEQUALS,0xe0) PORT_DIPLOCATION("G4:3,4") - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(seawolf_erase_input_r, 0) - PORT_DIPNAME( 0xe0, 0x60, "Extended Time At" ) PORT_DIPLOCATION("G4:6,7,8") - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x20, "2000" ) - PORT_DIPSETTING( 0x40, "3000" ) - PORT_DIPSETTING( 0x60, "4000" ) - PORT_DIPSETTING( 0x80, "5000" ) - PORT_DIPSETTING( 0xa0, "6000" ) - PORT_DIPSETTING( 0xc0, "7000" ) - PORT_DIPSETTING( 0xe0, "Test Mode" ) - - /* fake port to remap to Gray code */ - PORT_START_TAG(SEAWOLF_GUN_PORT_TAG) - PORT_BIT( 0x1f, 0x0f, IPT_PADDLE ) PORT_MINMAX(0x00,0x1f) PORT_CROSSHAIR(X, 1.0, 0.0, 0.139) PORT_SENSITIVITY(20) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* 2 fake ports for the 'Reset High Score' input, which has a DIP to enable it */ - PORT_START_TAG(SEAWOLF_ERASE_SW_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Reset High Score") PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(SEAWOLF_ERASE_DIP_PORT_TAG) - PORT_DIPNAME( 0x01, 0x01, "Enable Reset High Score Button" ) PORT_DIPLOCATION("G4:5") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( seawolf ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(seawolf_io_map,0) - /* there is no watchdog */ - - /* sound hardware */ - MDRV_IMPORT_FROM(seawolf_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Gun Fight (PCB #597) - * - *************************************/ - -#define GUNFIGHT_GUN_P1_PORT_TAG ("GUNP1") -#define GUNFIGHT_GUN_P2_PORT_TAG ("GUNP2") - - -static UINT32 gunfight_gun_input_r(void *param) -{ - static const UINT32 gray_code_3_bit[] = - { - 1, 5, 7, 3, 2, 6, 4, 0 - }; - - const char *tag = (const char *)param; - - UINT32 normal_binary = (readinputportbytag(tag) >> 5) & 0x07; - - return gray_code_3_bit[normal_binary]; -} - - -static WRITE8_HANDLER( gunfight_io_w ) -{ - if (offset & 0x01) gunfight_sh_port_w(0, data); - - if (offset & 0x02) mw8080bw_shift_amount_w(0, data); - - if (offset & 0x04) mw8080bw_shift_data_w(0, data); -} - - -static ADDRESS_MAP_START( gunfight_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - /* no decoder, just 3 AND gates */ - AM_RANGE(0x00, 0x07) AM_WRITE(gunfight_io_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( gunfight ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gunfight_gun_input_r, GUNFIGHT_GUN_P1_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gunfight_gun_input_r, GUNFIGHT_GUN_P2_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("C1:1,2,3,4") - PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 4C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 4C_4C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 3C_3C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 2C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("C1:5,6") - PORT_DIPSETTING( 0x00, "60 seconds" ) - PORT_DIPSETTING( 0x10, "70 seconds" ) - PORT_DIPSETTING( 0x20, "80 seconds" ) - PORT_DIPSETTING( 0x30, "90 seconds" ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - /* fake ports for aiming the guns */ - PORT_START_TAG(GUNFIGHT_GUN_P1_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_H) PORT_PLAYER(1) - - PORT_START_TAG(GUNFIGHT_GUN_P2_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_M) PORT_CODE_INC(KEYCODE_J) PORT_PLAYER(2) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( gunfight ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(gunfight_io_map,0) - /* there is no watchdog */ - - /* sound hardware */ - MDRV_IMPORT_FROM(gunfight_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Tornado Baseball (PCB #605) - * - * Notes: - * ----- - * - * In baseball, the Visitor team always hits first and the Home team pitches (throws the ball). - * This rule gives an advantage to the Home team because they get to score last in any baseball game. - * It is also the team that pitches that controls the player on the field, which, in this game, - * is limited to moving the 3 outfielders left and right. - * - * There are 3 types of cabinets using the same software: - * - * Old Upright: One of everything - * - * New Upright: One fielding/pitching controls, but two (Left/Right) hitting buttons - * - * Cocktail: Two of everything, but the pitching/fielding controls are swapped - * - * Interestingly, the "Whistle" sound effect is controlled by a different - * bit on the Old Upright cabinet than the other two types. - * - *************************************/ - -#define TORNBASE_L_HIT_PORT_TAG ("LHIT") -#define TORNBASE_R_HIT_PORT_TAG ("RHIT") -#define TORNBASE_L_PITCH_PORT_TAG ("LPITCH") -#define TORNBASE_R_PITCH_PORT_TAG ("RPITCH") -#define TORNBASE_SCORE_SW_PORT_TAG ("SCORESW") -#define TORNBASE_SCORE_DIP_PORT_TAG ("ERASEDIP") -#define TORNBASE_CAB_TYPE_PORT_TAG ("CAB") - - -UINT8 tornbase_get_cabinet_type() -{ - return readinputportbytag(TORNBASE_CAB_TYPE_PORT_TAG); -} - - -static UINT32 tornbase_hit_left_input_r(void *param) -{ - return readinputportbytag(TORNBASE_L_HIT_PORT_TAG); -} - - -static UINT32 tornbase_hit_right_input_r(void *param) -{ - UINT32 ret; - - switch (tornbase_get_cabinet_type()) - { - case TORNBASE_CAB_TYPE_UPRIGHT_OLD: - ret = readinputportbytag(TORNBASE_L_HIT_PORT_TAG); - break; - - case TORNBASE_CAB_TYPE_UPRIGHT_NEW: - case TORNBASE_CAB_TYPE_COCKTAIL: - default: - ret = readinputportbytag(TORNBASE_R_HIT_PORT_TAG); - break; - } - - return ret; -} - - -static UINT32 tornbase_pitch_left_input_r(void *param) -{ - UINT32 ret; - - switch (tornbase_get_cabinet_type()) - { - case TORNBASE_CAB_TYPE_UPRIGHT_OLD: - case TORNBASE_CAB_TYPE_UPRIGHT_NEW: - ret = readinputportbytag(TORNBASE_L_PITCH_PORT_TAG); - break; - - case TORNBASE_CAB_TYPE_COCKTAIL: - default: - ret = readinputportbytag(TORNBASE_R_PITCH_PORT_TAG); - break; - } - - return ret; -} - - -static UINT32 tornbase_pitch_right_input_r(void *param) -{ - return readinputportbytag(TORNBASE_L_PITCH_PORT_TAG); -} - - -static UINT32 tornbase_score_input_r(void *param) -{ - return readinputportbytag(TORNBASE_SCORE_SW_PORT_TAG) & - readinputportbytag(TORNBASE_SCORE_DIP_PORT_TAG); -} - - -static WRITE8_HANDLER( tornbase_io_w ) -{ - if (offset & 0x01) tornbase_sh_port_w(0, data); - - if (offset & 0x02) mw8080bw_shift_amount_w(0, data); - - if (offset & 0x04) mw8080bw_shift_data_w(0, data); -} - - -static ADDRESS_MAP_START( tornbase_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - /* no decoder, just 3 AND gates */ - AM_RANGE(0x00, 0x07) AM_WRITE(tornbase_io_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( tornbase ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_hit_left_input_r, 0) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_pitch_left_input_r, 0) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_hit_right_input_r, 0) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_pitch_right_input_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED) /* not connected */ - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* schematics shows it as "START", but not used by the software */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(tornbase_score_input_r, 0) - PORT_DIPNAME ( 0x78, 0x40, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B1:2,3,4,5") - PORT_DIPSETTING ( 0x18, "4 Coins/1 Inning" ) - PORT_DIPSETTING ( 0x10, "3 Coins/1 Inning" ) - PORT_DIPSETTING ( 0x38, "4 Coins/2 Innings" ) - PORT_DIPSETTING ( 0x08, "2 Coins/1 Inning" ) - PORT_DIPSETTING ( 0x30, "3 Coins/2 Innings" ) - PORT_DIPSETTING ( 0x28, "2 Coins/2 Innings" ) - PORT_DIPSETTING ( 0x00, "1 Coin/1 Inning" ) - PORT_DIPSETTING ( 0x58, "4 Coins/4 Innings" ) - PORT_DIPSETTING ( 0x50, "3 Coins/4 Innings" ) - PORT_DIPSETTING ( 0x48, "2 Coins/4 Innings" ) - PORT_DIPSETTING ( 0x20, "1 Coin/2 Innings" ) - PORT_DIPSETTING ( 0x40, "1 Coin/4 Innings" ) - PORT_DIPSETTING ( 0x78, "4 Coins/9 Innings" ) - PORT_DIPSETTING ( 0x70, "3 Coins/9 Innings" ) - PORT_DIPSETTING ( 0x68, "2 Coins/9 Innings" ) - PORT_DIPSETTING ( 0x60, "1 Coin/9 Innings" ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "B1:6" ) - - /* fake ports to handle the various input configurations based on cabinet type */ - PORT_START_TAG(TORNBASE_L_HIT_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Hit") PORT_PLAYER(1) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(TORNBASE_R_HIT_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Hit") PORT_PLAYER(2) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(TORNBASE_L_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Move Outfield Left") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Move Outfield Right") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("P1 Pitch Left") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Pitch Right") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("P1 Pitch Slow") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("P1 Pitch Fast") PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(TORNBASE_R_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Move Outfield Left") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P2 Move Outfield Right") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("P2 Pitch Left") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P2 Pitch Right") PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("P2 Pitch Slow") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("P2 Pitch Fast") PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* 2 fakes port for the 'ERASE' input, which has a DIP to enable it. - This switch is not actually used by the software */ - PORT_START_TAG(TORNBASE_SCORE_SW_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("SCORE Input (Not Used)") PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(TORNBASE_SCORE_DIP_PORT_TAG) - PORT_DIPNAME( 0x01, 0x01, "Enable SCORE Input" ) PORT_DIPLOCATION("B1:1") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* fake port for cabinet type */ - PORT_START_TAG(TORNBASE_CAB_TYPE_PORT_TAG) - PORT_CONFNAME( 0x03, TORNBASE_CAB_TYPE_UPRIGHT_NEW, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( TORNBASE_CAB_TYPE_UPRIGHT_OLD, "Upright/w One Hit Button" ) - PORT_CONFSETTING( TORNBASE_CAB_TYPE_UPRIGHT_NEW, "Upright/w P1/P2 Hit Buttons" ) - PORT_CONFSETTING( TORNBASE_CAB_TYPE_COCKTAIL, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( tornbase) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(tornbase_io_map,0) - /* there is no watchdog */ - - /* sound hardware */ - MDRV_IMPORT_FROM(tornbase_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * 280 ZZZAP (PCB #610) / Laguna Racer (PCB #622) - * - *************************************/ - -static ADDRESS_MAP_START( zzzap_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x02, 0x02) AM_WRITE(zzzap_sh_port_1_w) - AM_RANGE(0x03, 0x03) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x04, 0x04) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x05, 0x05) AM_WRITE(zzzap_sh_port_2_w) - AM_RANGE(0x07, 0x07) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( zzzap ) - PORT_START_TAG("IN0") - PORT_BIT( 0x0f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0x0f) PORT_SENSITIVITY(100) PORT_KEYDELTA(64) PORT_PLAYER(1) /* accelerator */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_TOGGLE PORT_NAME("P1 Shift") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") /* steering wheel */ - PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x0c,PORTCOND_NOTEQUALS,0x04) PORT_DIPLOCATION("E3:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Game_Time ) ) PORT_DIPLOCATION("E3:3,4") - PORT_DIPSETTING( 0x0c, "60 seconds + 30 extended" ) PORT_CONDITION("IN2",0x30,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x00, "80 seconds + 40 extended" ) PORT_CONDITION("IN2",0x30,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x08, "99 seconds + 50 extended" ) PORT_CONDITION("IN2",0x30,PORTCOND_NOTEQUALS,0x20) - PORT_DIPSETTING( 0x0c, "60 seconds" ) PORT_CONDITION("IN2",0x30,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x00, "80 seconds" ) PORT_CONDITION("IN2",0x30,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x08, "99 seconds" ) PORT_CONDITION("IN2",0x30,PORTCOND_EQUALS,0x20) - PORT_DIPSETTING( 0x04, "Test Mode" ) - PORT_DIPNAME( 0x30, 0x00, "Extended Time At" ) PORT_CONDITION("IN2",0x0c,PORTCOND_NOTEQUALS,0x04) PORT_DIPLOCATION("E3:5,6") - PORT_DIPSETTING( 0x10, "2.00" ) - PORT_DIPSETTING( 0x00, "2.50" ) - PORT_DIPSETTING( 0x20, DEF_STR( None ) ) - /* PORT_DIPSETTING( 0x30, DEF_STR( None ) ) */ - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Language )) PORT_CONDITION("IN2",0x0c,PORTCOND_NOTEQUALS,0x04) PORT_DIPLOCATION("E3:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( German ) ) - PORT_DIPSETTING( 0x80, DEF_STR( French ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Spanish ) ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( lagunar ) - PORT_START_TAG("IN0") - PORT_BIT( 0x0f, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0x0f) PORT_SENSITIVITY(100) PORT_KEYDELTA(64) PORT_PLAYER(1) /* accelerator */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_TOGGLE PORT_NAME("P1 Shift") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* start button, but never used */ - - PORT_START_TAG("IN1") /* steering wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("E3:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Game_Time ) ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0x04) PORT_DIPLOCATION("E3:3,4") - PORT_DIPSETTING( 0x00, "45 seconds + 22 extended" ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0xc0) - PORT_DIPSETTING( 0x04, "60 seconds + 30 extended" ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0xc0) - PORT_DIPSETTING( 0x08, "75 seconds + 37 extended" ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0xc0) - PORT_DIPSETTING( 0x0c, "90 seconds + 45 extended" ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0xc0) - PORT_DIPSETTING( 0x00, "45 seconds" ) PORT_CONDITION("IN2",0xc0,PORTCOND_EQUALS,0xc0) - PORT_DIPSETTING( 0x04, "60 seconds" ) PORT_CONDITION("IN2",0xc0,PORTCOND_EQUALS,0xc0) - PORT_DIPSETTING( 0x08, "75 seconds" ) PORT_CONDITION("IN2",0xc0,PORTCOND_EQUALS,0xc0) - PORT_DIPSETTING( 0x0c, "90 seconds" ) PORT_CONDITION("IN2",0xc0,PORTCOND_EQUALS,0xc0) - PORT_DIPNAME( 0x30, 0x20, "Extended Time At" ) PORT_CONDITION("IN2",0xc0,PORTCOND_NOTEQUALS,0xc0) PORT_DIPLOCATION("E3:5,6") - PORT_DIPSETTING( 0x00, "350" ) - PORT_DIPSETTING( 0x10, "400" ) - PORT_DIPSETTING( 0x20, "450" ) - PORT_DIPSETTING( 0x30, "500" ) - PORT_DIPNAME( 0xc0, 0x00, "Test Modes/Extended Time") PORT_DIPLOCATION("E3:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, "RAM/ROM Test" ) - PORT_DIPSETTING( 0x80, "Input Test" ) - PORT_DIPSETTING( 0xc0, "No Extended Time" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( zzzap ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(zzzap_io_map,0) - MDRV_WATCHDOG_TIME_INIT( TIME_OF_555(RES_M(1), CAP_U(1)) ) /* 1.1s */ - - /* sound hardware */ - /* MDRV_IMPORT_FROM(zzzap_sound) */ - -MACHINE_DRIVER_END - - - -/************************************* - * - * Amazing Maze (PCB #611) - * - *************************************/ - -static WRITE8_HANDLER( maze_coin_counter_w ) -{ - /* the data is not used, just pulse the counter */ - coin_counter_w(0, 0); - coin_counter_w(0, 1); -} - - -static WRITE8_HANDLER( maze_io_w ) -{ - if (offset & 0x01) maze_coin_counter_w(0, data); - - if (offset & 0x02) watchdog_reset_w(0, data); -} - - -static ADDRESS_MAP_START( maze_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(2) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - - /* no decoder, just a couple of AND gates */ - AM_RANGE(0x00, 0x03) AM_WRITE(maze_io_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( maze ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* labeled 'Not Used' */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_DIPNAME ( 0x30, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN1",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:1,2") - PORT_DIPSETTING ( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x30, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME ( 0x40, 0x40, "2 Player Game Time" ) PORT_CONDITION("IN1",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:3") - PORT_DIPSETTING ( 0x40, "4 minutes" ) - PORT_DIPSETTING ( 0x00, "6 minutes" ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW:4" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( maze ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(maze_io_map,0) - MDRV_WATCHDOG_TIME_INIT( TIME_OF_555(RES_K(270), CAP_U(10)) ) /* 2.97s */ - - /* sound hardware */ - /* MDRV_IMPORT_FROM(maze_sound) */ - -MACHINE_DRIVER_END - - - -/************************************* - * - * Boot Hill (PCB #612) - * - *************************************/ - -#define BOOTHILL_GUN_P1_PORT_TAG ("GUNP1") -#define BOOTHILL_GUN_P2_PORT_TAG ("GUNP2") - - -static UINT32 boothill_gun_input_r(void *param) -{ - static const UINT32 remapped[] = - { - 0, 4, 6, 7, 3, 1, 5, 5 - }; - - const char *tag = (const char *)param; - - UINT32 normal_binary = (readinputportbytag(tag) >> 5) & 0x07; - - return remapped[normal_binary]; -} - - -static ADDRESS_MAP_START( boothill_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(boothill_sh_port_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( boothill ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(boothill_gun_input_r, BOOTHILL_GUN_P2_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(boothill_gun_input_r, BOOTHILL_GUN_P1_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:1,2") - PORT_DIPSETTING ( 0x02, "2 Coins per Player" ) - PORT_DIPSETTING ( 0x03, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING ( 0x00, "1 Coin per Player" ) - PORT_DIPSETTING ( 0x01, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME ( 0x0c, 0x04, DEF_STR( Game_Time ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING ( 0x00, "60 seconds" ) - PORT_DIPSETTING ( 0x04, "70 seconds" ) - PORT_DIPSETTING ( 0x08, "80 seconds" ) - PORT_DIPSETTING ( 0x0c, "90 seconds" ) - PORT_SERVICE_DIPLOC (0x10, IP_ACTIVE_HIGH, "SW:5" ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* fake ports for aiming the guns */ - PORT_START_TAG(BOOTHILL_GUN_P2_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_M) PORT_CODE_INC(KEYCODE_J) PORT_CENTERDELTA(0) PORT_PLAYER(2) - - PORT_START_TAG(BOOTHILL_GUN_P1_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_H) PORT_CENTERDELTA(0) PORT_PLAYER(1) - - PORT_START_TAG("MUSIC_ADJ") /* 5 */ - PORT_ADJUSTER( 35, "Music Volume" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( boothill ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(boothill_io_map,0) - MDRV_WATCHDOG_TIME_INIT( TIME_OF_555(RES_K(270), CAP_U(10)) ) /* 2.97s */ - - /* sound hardware */ - MDRV_IMPORT_FROM(boothill_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Checkmate (PCB #615) - * - *************************************/ - -static WRITE8_HANDLER( checkmat_io_w ) -{ - if (offset & 0x01) checkmat_sh_port_w(0, data); - - if (offset & 0x02) watchdog_reset_w(0, data); -} - - -static ADDRESS_MAP_START( checkmat_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(2) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_READ(input_port_3_r) - - /* no decoder, just a couple of AND gates */ - AM_RANGE(0x00, 0x03) AM_WRITE(checkmat_io_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( checkmat ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x01, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("A4:1") - PORT_DIPSETTING ( 0x00, "1 Coin/1 or 2 Players" ) - PORT_DIPSETTING ( 0x01, "1 Coin/1 or 2 Players, 2 Coins/3 or 4 Players" ) - PORT_DIPNAME ( 0x02, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("A4:2") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( On ) ) - PORT_DIPNAME ( 0x0c, 0x04, "Rounds" ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("A4:3,4") - PORT_DIPSETTING ( 0x00, "2" ) - PORT_DIPSETTING ( 0x04, "3" ) - PORT_DIPSETTING ( 0x08, "4" ) - PORT_DIPSETTING ( 0x0c, "5" ) - PORT_DIPNAME ( 0x10, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("A4:5") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x10, DEF_STR( On ) ) - PORT_DIPNAME ( 0x60, 0x00, DEF_STR( Language ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("A4:6,7") - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x20, "Language 2" ) - PORT_DIPSETTING ( 0x40, "Language 3" ) - PORT_DIPSETTING ( 0x60, "Language 4" ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "A4:8" ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START4 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( checkmat ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(checkmat_io_map,0) - MDRV_WATCHDOG_TIME_INIT( TIME_OF_555(RES_K(270), CAP_U(10)) ) /* 2.97s */ - - /* sound hardware */ - /* MDRV_IMPORT_FROM(checkmat_sound) */ - -MACHINE_DRIVER_END - - - -/************************************* - * - * Desert Gun (PCB #618) - * - *************************************/ - -#define DESERTGU_DIP_SW_0_1_SET_1_TAG ("DIPSW01SET1") -#define DESERTGU_DIP_SW_0_1_SET_2_TAG ("DIPSW01SET2") - - -static UINT8 desertgu_controller_select; - - -static MACHINE_START( desertgu ) -{ - /* setup for save states */ - state_save_register_global(desertgu_controller_select); - - return machine_start_mw8080bw(machine); -} - - -void desertgun_set_controller_select(UINT8 data) -{ - desertgu_controller_select = data; -} - - -static UINT32 desertgu_gun_input_r(void *param) -{ - UINT32 ret; - - if (desertgu_controller_select) - { - ret = readinputportbytag(DESERTGU_GUN_X_PORT_TAG); - } - else - { - ret = readinputportbytag(DESERTGU_GUN_Y_PORT_TAG); - } - - return ret; -} - - -static UINT32 desertgu_dip_sw_0_1_r(void *param) -{ - UINT32 ret; - - if (desertgu_controller_select) - { - ret = readinputportbytag(DESERTGU_DIP_SW_0_1_SET_2_TAG); - } - else - { - ret = readinputportbytag(DESERTGU_DIP_SW_0_1_SET_1_TAG); - } - - return ret; -} - - -static ADDRESS_MAP_START( desertgu_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(desertgu_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) - AM_RANGE(0x07, 0x07) AM_WRITE(desertgu_sh_port_2_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( desertgu ) - PORT_START_TAG("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(desertgu_gun_input_r, 0) - - PORT_START_TAG("IN1") - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(desertgu_dip_sw_0_1_r, 0) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Language ) ) PORT_CONDITION("IN1",0x30,PORTCOND_NOTEQUALS,0x30) PORT_DIPLOCATION("C2:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x04, DEF_STR( German ) ) - PORT_DIPSETTING( 0x08, DEF_STR( French ) ) - PORT_DIPSETTING( 0x0c, "Danish" ) - PORT_DIPNAME( 0x30, 0x10, "Extended Time At" ) PORT_DIPLOCATION("C2:7,8") - PORT_DIPSETTING( 0x00, "5000" ) - PORT_DIPSETTING( 0x10, "7000" ) - PORT_DIPSETTING( 0x20, "9000" ) - PORT_DIPSETTING( 0x30, "Test Mode" ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - /* fake ports for reading the gun's X and Y axis */ - PORT_START_TAG(DESERTGU_GUN_X_PORT_TAG) - PORT_BIT( 0xff, 0x4d, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x10,0x8e) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) - - PORT_START_TAG(DESERTGU_GUN_Y_PORT_TAG) - PORT_BIT( 0xff, 0x48, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x10,0x7f) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) - - /* bits 0 and 1 in the DIP SW input port can reflect two sets of switches depending on the controller - select bit. These two ports are fakes to handle this case */ - PORT_START_TAG(DESERTGU_DIP_SW_0_1_SET_1_TAG) - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN1",0x30,PORTCOND_NOTEQUALS,0x30) PORT_DIPLOCATION("C2:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(DESERTGU_DIP_SW_0_1_SET_2_TAG) - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Game_Time ) ) PORT_CONDITION("IN1",0x30,PORTCOND_NOTEQUALS,0x30) PORT_DIPLOCATION("C2:3,4") - PORT_DIPSETTING( 0x00, "40 seconds + 30 extended" ) - PORT_DIPSETTING( 0x01, "50 seconds + 30 extended" ) - PORT_DIPSETTING( 0x02, "60 seconds + 30 extended" ) - PORT_DIPSETTING( 0x03, "70 seconds + 30 extended" ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("MUSIC_ADJ") /* 3 */ - PORT_ADJUSTER( 60, "Music Volume" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( desertgu ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(desertgu_io_map,0) - MDRV_MACHINE_START(desertgu) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(desertgu_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Double Play (PCB #619) / Extra Inning (PCB #642) - * - * This game comes in an upright and a cocktail cabinet. - * The upright one had a shared joystick and a hitting button for - * each player, while in the cocktail version each player - * had their own set of controls. The display is never flipped, - * as the two players sit diagonally across from each other. - * - *************************************/ - -#define DPLAY_L_PITCH_PORT_TAG ("LPITCH") -#define DPLAY_R_PITCH_PORT_TAG ("RPITCH") -#define DPLAY_CAB_TYPE_PORT_TAG ("CAB") -#define DPLAY_CAB_TYPE_UPRIGHT (0) -#define DPLAY_CAB_TYPE_COCKTAIL (1) - - -static UINT32 dplay_pitch_left_input_r(void *param) -{ - UINT32 ret; - - if (readinputportbytag(DPLAY_CAB_TYPE_PORT_TAG) == DPLAY_CAB_TYPE_UPRIGHT) - { - ret = readinputportbytag(DPLAY_L_PITCH_PORT_TAG); - } - else - { - ret = readinputportbytag(DPLAY_R_PITCH_PORT_TAG); - } - - return ret; -} - - -static UINT32 dplay_pitch_right_input_r(void *param) -{ - return readinputportbytag(DPLAY_L_PITCH_PORT_TAG); -} - - -static ADDRESS_MAP_START( dplay_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(dplay_sh_port_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( dplay ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hit") PORT_PLAYER(1) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_left_input_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hit") PORT_PLAYER(2) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_right_input_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x07, 0x00, DEF_STR( Coinage )) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:1,2,3") - PORT_DIPSETTING ( 0x05, "2 Coins/1 Inning/1 Player, 4 Coins/1 Inning/2 Players, 8 Coins/3 Innings/2 Players" ) - PORT_DIPSETTING ( 0x04, "1 Coin/1 Inning/1 Player, 2 Coins/1 Inning/2 Players, 4 Coins/3 Innings/2 Players" ) - PORT_DIPSETTING ( 0x02, "2 Coins per Inning" ) - PORT_DIPSETTING ( 0x03, "2 Coins/1 Inning, 4 Coins/3 Innings" ) - PORT_DIPSETTING ( 0x00, "1 Coin per Inning" ) - /* PORT_DIPSETTING ( 0x06, "1 Coin per Inning" ) */ - /* PORT_DIPSETTING ( 0x07, "1 Coin per Inning" ) */ - PORT_DIPSETTING ( 0x01, "1 Coin/1 Inning, 2 Coins/3 Innings" ) - PORT_DIPNAME ( 0x08, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:4") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( On ) ) - PORT_DIPNAME ( 0x10, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:5") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x10, DEF_STR( On ) ) - PORT_DIPNAME ( 0x20, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:6") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "C1:7" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - /* fake ports to handle the various input configurations based on cabinet type */ - PORT_START_TAG(DPLAY_L_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Move Outfield Left") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Move Outfield Right") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("P1 Pitch Left") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Pitch Right") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("P1 Pitch Slow") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("P1 Pitch Fast") PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG(DPLAY_R_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Move Outfield Left") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Move Outfield Right") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("P2 Pitch Left") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("P2 Pitch Right") PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("P2 Pitch Slow") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("P2 Pitch Fast") PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* fake port for cabinet type */ - PORT_START_TAG(DPLAY_CAB_TYPE_PORT_TAG) - PORT_CONFNAME( 0x01, DPLAY_CAB_TYPE_UPRIGHT, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( DPLAY_CAB_TYPE_UPRIGHT, DEF_STR( Upright ) ) - PORT_CONFSETTING( DPLAY_CAB_TYPE_COCKTAIL, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("MUSIC_ADJ") /* 3 */ - PORT_ADJUSTER( 60, "Music Volume" ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( einning ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Hit") PORT_PLAYER(1) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_left_input_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Hit") PORT_PLAYER(2) - PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dplay_pitch_right_input_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x07, 0x00, DEF_STR( Coinage )) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:1,2,3") - PORT_DIPSETTING ( 0x05, "2 Coins/1 Inning/1 Player, 4 Coins/1 Inning/2 Players, 8 Coins/3 Innings/2 Players" ) - PORT_DIPSETTING ( 0x04, "1 Coin/1 Inning/1 Player, 2 Coins/1 Inning/2 Players, 4 Coins/3 Innings/2 Players" ) - PORT_DIPSETTING ( 0x02, "2 Coins per Inning" ) - PORT_DIPSETTING ( 0x03, "2 Coins/1 Inning, 4 Coins/3 Innings" ) - PORT_DIPSETTING ( 0x00, "1 Coin per Inning" ) - /* PORT_DIPSETTING ( 0x06, "1 Coin per Inning" ) */ - /* PORT_DIPSETTING ( 0x07, "1 Coin per Inning" ) */ - PORT_DIPSETTING ( 0x01, "1 Coin/1 Inning, 2 Coins/3 Innings" ) - PORT_DIPNAME ( 0x08, 0x00, "Wall Knock Out Behavior" ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:4") - PORT_DIPSETTING ( 0x00, "Individually" ) - PORT_DIPSETTING ( 0x08, "In Pairs" ) - PORT_DIPNAME ( 0x10, 0x00, "Double Score when Special Lit" ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:5") - PORT_DIPSETTING ( 0x00, "Home Run Only" ) - PORT_DIPSETTING ( 0x10, "Any Hit" ) - PORT_DIPNAME ( 0x20, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x40,PORTCOND_EQUALS,0x40) PORT_DIPLOCATION("C1:6") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "C1:7" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - /* fake ports to handle the various input configurations based on cabinet type */ - PORT_START_TAG(DPLAY_L_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Move Outfield Left") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Move Outfield Right") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("P1 Pitch Left") PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Pitch Right") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("P1 Pitch Slow") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("P1 Pitch Fast") PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG(DPLAY_R_PITCH_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Move Outfield Left") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Move Outfield Right") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_NAME("P2 Pitch Left") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_NAME("P2 Pitch Right") PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("P2 Pitch Slow") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("P2 Pitch Fast") PORT_PLAYER(2) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* fake port for cabinet type */ - PORT_START_TAG(DPLAY_CAB_TYPE_PORT_TAG) - PORT_CONFNAME( 0x01, DPLAY_CAB_TYPE_UPRIGHT, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( DPLAY_CAB_TYPE_UPRIGHT, DEF_STR( Upright ) ) - PORT_CONFSETTING( DPLAY_CAB_TYPE_COCKTAIL, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("MUSIC_ADJ") /* 3 */ - PORT_ADJUSTER( 60, "Music Volume" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( dplay ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(dplay_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(dplay_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Guided Missile (PCB #623) - * - *************************************/ - -static ADDRESS_MAP_START( gmissile_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(gmissile_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(gmissile_sh_port_2_w) - /* also writes 0x00 to 0x06, but it is not connected */ - AM_RANGE(0x07, 0x07) AM_WRITE(gmissile_sh_port_3_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( gmissile ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x03, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("D1:1,2") - PORT_DIPSETTING ( 0x01, "2 Coins per Player" ) - PORT_DIPSETTING ( 0x00, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING ( 0x03, "1 Coin per Player" ) - PORT_DIPSETTING ( 0x02, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME ( 0x0c, 0x08, DEF_STR( Game_Time ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("D1:3,4") - PORT_DIPSETTING ( 0x00, "60 seconds + 30 extended" ) - PORT_DIPSETTING ( 0x08, "70 seconds + 35 extended" ) - PORT_DIPSETTING ( 0x04, "80 seconds + 40 extended" ) - PORT_DIPSETTING ( 0x0c, "90 seconds + 45 extended" ) - PORT_DIPNAME ( 0x30, 0x10, "Extended Time At" ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("D1:5,6") - PORT_DIPSETTING ( 0x00, "500" ) - PORT_DIPSETTING ( 0x20, "700" ) - PORT_DIPSETTING ( 0x10, "1000" ) - PORT_DIPSETTING ( 0x30, "1300" ) - PORT_DIPNAME ( 0x40, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("D1:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "D1:8" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( gmissile ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(gmissile_io_map,0) - MDRV_WATCHDOG_VBLANK_INIT(255) /* really based on a 60Hz clock source */ - - /* sound hardware */ - MDRV_IMPORT_FROM(gmissile_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * M-4 (PCB #626) - * - *************************************/ - -static ADDRESS_MAP_START( m4_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(m4_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(m4_sh_port_2_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( m4 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Trigger") PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Reload") PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_2WAY PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Trigger") PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Reload") PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x10) PORT_DIPLOCATION("C1:1,2") - PORT_DIPSETTING ( 0x02, "2 Coins per Player" ) - PORT_DIPSETTING ( 0x03, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING ( 0x00, "1 Coin per Player" ) - PORT_DIPSETTING ( 0x01, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME ( 0x0c, 0x04, DEF_STR( Game_Time ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x10) PORT_DIPLOCATION("C1:3,4") - PORT_DIPSETTING ( 0x00, "60 seconds" ) - PORT_DIPSETTING ( 0x04, "70 seconds" ) - PORT_DIPSETTING ( 0x08, "80 seconds" ) - PORT_DIPSETTING ( 0x0c, "90 seconds" ) - PORT_SERVICE_DIPLOC( 0x10, IP_ACTIVE_LOW, "C1:5" ) - PORT_DIPNAME ( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x10) PORT_DIPLOCATION("C1:6") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x20, DEF_STR( On ) ) - PORT_DIPNAME ( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x10) PORT_DIPLOCATION("C1:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_DIPNAME ( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_CONDITION("IN2",0x10,PORTCOND_EQUALS,0x10) PORT_DIPLOCATION("C1:8") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( m4 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(m4_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(m4_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Clowns (PCB #630) - * - *************************************/ - -#define CLOWNS_CONTROLLER_P1_TAG ("CONTP1") -#define CLOWNS_CONTROLLER_P2_TAG ("CONTP2") - - -static UINT8 clowns_controller_select; - - -static MACHINE_START( clowns ) -{ - /* setup for save states */ - state_save_register_global(clowns_controller_select); - - return machine_start_mw8080bw(machine); -} - - -void clowns_set_controller_select(UINT8 data) -{ - clowns_controller_select = data; -} - - -static UINT32 clowns_controller_r(void *param) -{ - UINT32 ret; - - if (clowns_controller_select) - { - ret = readinputportbytag(CLOWNS_CONTROLLER_P2_TAG); - } - else - { - ret = readinputportbytag(CLOWNS_CONTROLLER_P1_TAG); - } - - return ret; -} - - -static ADDRESS_MAP_START( clowns_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(clowns_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) - AM_RANGE(0x07, 0x07) AM_WRITE(clowns_sh_port_2_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( clowns ) - PORT_START_TAG("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, 0) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:1,2") - PORT_DIPSETTING ( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME ( 0x0c, 0x00, "Bonus Game" ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING ( 0x00, "No Bonus" ) - PORT_DIPSETTING ( 0x04, "9000" ) - PORT_DIPSETTING ( 0x08, "11000" ) - PORT_DIPSETTING ( 0x0c, "13000" ) - PORT_DIPNAME ( 0x10, 0x00, "Balloon Resets" ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING ( 0x00, "Each Row" ) - PORT_DIPSETTING ( 0x10, "All Rows" ) - PORT_DIPNAME ( 0x20, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:6") - PORT_DIPSETTING ( 0x00, "3000" ) - PORT_DIPSETTING ( 0x20, "4000" ) - PORT_DIPNAME ( 0x40, 0x00, DEF_STR( Lives ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:7") - PORT_DIPSETTING ( 0x00, "3" ) - PORT_DIPSETTING ( 0x40, "4" ) - /* test mode - press coin button for input test */ - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW:8" ) - - /* fake ports for two analog controls multiplexed */ - PORT_START_TAG(CLOWNS_CONTROLLER_P1_TAG) - PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1) - - PORT_START_TAG(CLOWNS_CONTROLLER_P2_TAG) - PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2) - - PORT_START_TAG("MUSIC_ADJ") /* 3 */ - PORT_ADJUSTER( 60, "Music Volume" ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( clowns1 ) - PORT_START_TAG("IN0") - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, 0) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:1,2") - PORT_DIPSETTING ( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME ( 0x0c, 0x04, DEF_STR( Lives ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING ( 0x00, "2" ) - PORT_DIPSETTING ( 0x04, "3" ) - PORT_DIPSETTING ( 0x08, "4" ) - PORT_DIPSETTING ( 0x0c, "5" ) - PORT_DIPNAME ( 0x10, 0x00, "Balloon Resets" ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING ( 0x00, "Each Row" ) - PORT_DIPSETTING ( 0x10, "All Rows" ) - PORT_DIPNAME ( 0x20, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("IN2",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("SW:6") - PORT_DIPSETTING ( 0x00, "3000" ) - PORT_DIPSETTING ( 0x20, "4000" ) - PORT_DIPNAME ( 0x40, 0x00, "Input Test" ) PORT_DIPLOCATION("SW:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW:8" ) - - PORT_START_TAG(CLOWNS_CONTROLLER_P1_TAG) - PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1) - - PORT_START_TAG(CLOWNS_CONTROLLER_P2_TAG) - PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2) - - PORT_START_TAG("MUSIC_ADJ") /* 3 */ - PORT_ADJUSTER( 60, "Music Volume" ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( clowns ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(clowns_io_map,0) - MDRV_MACHINE_START(clowns) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(clowns_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Shuffleboard (PCB #643) - * - *************************************/ - -static ADDRESS_MAP_START( shuffle_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(4) ) /* yes, 4, and no mirroring on the read handlers */ - AM_RANGE(0x01, 0x01) AM_READ(mw8080bw_shift_res_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r) - AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) - AM_RANGE(0x05, 0x05) AM_READ(input_port_2_r) - AM_RANGE(0x06, 0x06) AM_READ(input_port_3_r) - - AM_RANGE(0x01, 0x01) AM_MIRROR(0x08) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x08) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x04, 0x04) AM_MIRROR(0x08) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_WRITE(shuffle_sh_port_1_w) - AM_RANGE(0x06, 0x06) AM_MIRROR(0x08) AM_WRITE(shuffle_sh_port_2_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( shuffle ) - PORT_START_TAG("IN0") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Language ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("B3:1,2") - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( German ) ) - /* PORT_DIPSETTING ( 0x03, DEF_STR( German ) ) */ - PORT_DIPNAME ( 0x0c, 0x04, "Points to Win" ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("B3:3,4") - PORT_DIPSETTING ( 0x00, "Game 1 = 25, Game 2 = 11" ) - PORT_DIPSETTING ( 0x04, "Game 1 = 35, Game 2 = 15" ) - PORT_DIPSETTING ( 0x08, "Game 1 = 40, Game 2 = 18" ) - PORT_DIPSETTING ( 0x0c, "Game 1 = 50, Game 2 = 21" ) - PORT_DIPNAME ( 0x30, 0x10, DEF_STR( Coinage ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("B3:5,6") - PORT_DIPSETTING ( 0x30, "2 Coins per Player" ) - PORT_DIPSETTING ( 0x20, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING ( 0x10, "1 Coin per Player" ) - PORT_DIPSETTING ( 0x00, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME ( 0x40, 0x40, "Time Limit" ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("B3:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "B3:8" ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Game Select") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(50) PORT_PLAYER(1) - - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( shuffle ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(shuffle_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - /* MDRV_IMPORT_FROM(shuffle_sound) */ - -MACHINE_DRIVER_END - - - -/************************************* - * - * Dog Patch (PCB #644) - * - *************************************/ - -#define DOGPATCH_GUN_P1_PORT_TAG ("GUNP1") -#define DOGPATCH_GUN_P2_PORT_TAG ("GUNP2") - - -static UINT32 dogpatch_gun_input_r(void *param) -{ - static const UINT32 remapped[] = - { - 7, 6, 4, 5, 1, 0, 2, 2 - }; - - const char *tag = (const char *)param; - - UINT32 normal_binary = (readinputportbytag(tag) >> 5) & 0x07; - - return remapped[normal_binary]; -} - - -static ADDRESS_MAP_START( dogpatch_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(dogpatch_sh_port_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w) - AM_RANGE(0x06, 0x06) AM_WRITE(midway_tone_generator_hi_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( dogpatch ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dogpatch_gun_input_r, DOGPATCH_GUN_P2_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dogpatch_gun_input_r, DOGPATCH_GUN_P1_PORT_TAG) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_DIPNAME ( 0x03, 0x02, "Number of Cans" ) PORT_CONDITION("IN2",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:1,2") - PORT_DIPSETTING ( 0x03, "10" ) - PORT_DIPSETTING ( 0x02, "15" ) - PORT_DIPSETTING ( 0x01, "20" ) - PORT_DIPSETTING ( 0x00, "25" ) - PORT_DIPNAME ( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING ( 0x08, "2 Coins per Player" ) - PORT_DIPSETTING ( 0x0c, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING ( 0x00, "1 Coin per Player" ) - PORT_DIPSETTING ( 0x04, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME ( 0x10, 0x10, "Extended Time Reward" ) PORT_CONDITION("IN2",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING ( 0x10, "3 extra cans" ) - PORT_DIPSETTING ( 0x00, "5 extra cans" ) - PORT_SERVICE_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW:6" ) - PORT_DIPNAME ( 0xc0, 0x40, "Extended Time At" ) PORT_CONDITION("IN2",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:7,8") - PORT_DIPSETTING ( 0xc0, "150" ) - PORT_DIPSETTING ( 0x80, "175" ) - PORT_DIPSETTING ( 0x40, "225" ) - PORT_DIPSETTING ( 0x00, "275" ) - - /* fake ports for aiming the guns */ - PORT_START_TAG(DOGPATCH_GUN_P2_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE_V ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2) - - PORT_START_TAG(DOGPATCH_GUN_P1_PORT_TAG) - PORT_BIT( 0xff, 0x80, IPT_PADDLE_V ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( dogpatch ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(dogpatch_io_map,0) - /* the watch dog time is unknown, but all other */ - /* Midway boards of the era used the same circuit */ - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(dogpatch_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Space Encounters (PCB #645) - * - *************************************/ - -#define SPCENCTR_STICK_X_PORT_TAG ("STICKX") -#define SPCENCTR_STICK_Y_PORT_TAG ("STICKY") -#define SPCENCTR_STROBE_FREQ (9.00) /* Hz */ -#define SPCENCTR_STROBE_PERIOD (1.0 / SPCENCTR_STROBE_FREQ) /* sec */ -#define SPCENCTR_DUTY_CYCLE (0.95) - - -static mame_timer *spcenctr_strobe_on_timer; -static mame_timer *spcenctr_strobe_off_timer; -static UINT8 spcenctr_strobe_state; -static UINT8 spcenctr_trench_width; -static UINT8 spcenctr_trench_center; -static UINT8 spcenctr_trench_slope[16]; /* 16x4 bit RAM */ - - -static void adjust_strobe_timers(void) -{ - /* the strobe light is controlled by a 555 timer, which appears to have a - frequency of 9Hz and a duty cycle of 95% */ - if (spcenctr_strobe_state) - { - mame_timer_adjust(spcenctr_strobe_on_timer, time_zero, 1, double_to_mame_time(TIME_IN_SEC(SPCENCTR_STROBE_PERIOD))); - mame_timer_adjust(spcenctr_strobe_off_timer, double_to_mame_time(TIME_IN_SEC(SPCENCTR_STROBE_PERIOD) * SPCENCTR_DUTY_CYCLE), 0, double_to_mame_time(TIME_IN_SEC(SPCENCTR_STROBE_PERIOD))); - } - else - { - mame_timer_adjust(spcenctr_strobe_on_timer, time_never, 0, time_zero); - mame_timer_adjust(spcenctr_strobe_off_timer, time_never, 0, time_zero); - } -} - - -static void spcenctr_strobe_timer_callback(int param) -{ - output_set_value("STROBE", param); -} - - -static MACHINE_START( spcenctr ) -{ - /* create timers */ - spcenctr_strobe_on_timer = timer_alloc(spcenctr_strobe_timer_callback); - spcenctr_strobe_off_timer = timer_alloc(spcenctr_strobe_timer_callback); - - /* setup for save states */ - state_save_register_global(spcenctr_strobe_state); - state_save_register_global(spcenctr_trench_width); - state_save_register_global(spcenctr_trench_center); - state_save_register_global_array(spcenctr_trench_slope); - state_save_register_func_postload(adjust_strobe_timers); - - return machine_start_mw8080bw(machine); -} - - -void spcenctr_set_strobe_state(UINT8 data) -{ - if (data != spcenctr_strobe_state) - { - spcenctr_strobe_state = data; - - adjust_strobe_timers(); - } -} - - -UINT8 spcenctr_get_trench_width(void) -{ - return spcenctr_trench_width; -} - - -UINT8 spcenctr_get_trench_center(void) -{ - return spcenctr_trench_center; -} - - -UINT8 spcenctr_get_trench_slope(UINT8 addr) -{ - return spcenctr_trench_slope[addr & 0x0f]; -} - - -static UINT32 spcenctr_stick_input_r(void *param) -{ - static const UINT32 gray_code_6_bit[] = - { - 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 , - 12 , 13 , 15 , 14 , 10 , 11 , 9 , 8 , - 24 , 25 , 27 , 26 , 30 , 31 , 29 , 28 , - 20 , 21 , 23 , 22 , 18 , 19 , 17 , 16 , - 48 , 49 , 51 , 50 , 54 , 55 , 53 , 52 , - 60 , 61 , 63 , 62 , 58 , 59 , 57 , 56 , - 40 , 41 , 43 , 42 , 46 , 47 , 45 , 44 , - 36 , 37 , 39 , 38 , 34 , 35 , 33 , 32 - }; - - const char *tag = (const char *)param; - - UINT32 normal_binary = readinputportbytag(tag); - - return gray_code_6_bit[normal_binary] ^ 0x3f; -} - - -static WRITE8_HANDLER( spcenctr_io_w ) -{ /* A7 A6 A5 A4 A3 A2 A1 A0 */ - if ((offset & 0x07) == 0x02) - { - watchdog_reset_w(0, data); /* - - - - - 0 1 0 */ - } - else if ((offset & 0x5f) == 0x01) - { - spcenctr_sh_port_1_w(0, data); /* - 0 - 0 0 0 0 1 */ - } - else if ((offset & 0x5f) == 0x09) - { - spcenctr_sh_port_2_w(0, data); /* - 0 - 0 1 0 0 1 */ - } - else if ((offset & 0x5f) == 0x11) - { - spcenctr_sh_port_3_w(0, data); /* - 0 - 1 0 0 0 1 */ - } - else if ((offset & 0x07) == 0x03) - { /* - - - - - 0 1 1 */ - UINT8 addr = ((offset & 0xc0) >> 4) | ((offset & 0x18) >> 3); - spcenctr_trench_slope[addr] = data; - } - else if ((offset & 0x07) == 0x04) - { - spcenctr_trench_center = data; /* - - - - - 1 0 0 */ - } - else if ((offset & 0x07) == 0x07) - { - spcenctr_trench_width = data; /* - - - - - 1 1 1 */ - } - else - { - logerror("%04x: Unmapped I/O port write to %02x = %02x\n", - activecpu_get_pc(), offset, data); - } -} - - -static ADDRESS_MAP_START( spcenctr_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0xfc) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0xfc) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0xfc) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0xfc) AM_READNOP - - /* complicated addressing logic */ - AM_RANGE(0x00, 0xff) AM_WRITE(spcenctr_io_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( spcenctr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(spcenctr_stick_input_r, SPCENCTR_STICK_X_PORT_TAG) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(spcenctr_stick_input_r, SPCENCTR_STICK_Y_PORT_TAG) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* marked as COIN #2, but the software never reads it */ - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) ) PORT_CONDITION("IN2",0x30,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("F3:1,2") - PORT_DIPSETTING( 0x00, "2000 4000 8000" ) - PORT_DIPSETTING( 0x01, "3000 6000 12000" ) - PORT_DIPSETTING( 0x02, "4000 8000 16000" ) - PORT_DIPSETTING( 0x03, "5000 10000 20000" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2",0x30,PORTCOND_NOTEQUALS,0x10) PORT_DIPLOCATION("F3:3,4") - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x00, "Bonus/Test Mode" ) PORT_DIPLOCATION("F3:5,6") - PORT_DIPSETTING( 0x00, "Bonus On" ) - PORT_DIPSETTING( 0x30, "Bonus Off" ) - PORT_DIPSETTING( 0x20, "Cross Hatch" ) - PORT_DIPSETTING( 0x10, "Test Mode" ) - PORT_DIPNAME( 0xc0, 0x40, "Time" ) PORT_CONDITION("IN2",0x30,PORTCOND_NOTEQUALS,0x10) PORT_DIPLOCATION("F3:7,8") - PORT_DIPSETTING( 0x00, "45" ) - PORT_DIPSETTING( 0x40, "60" ) - PORT_DIPSETTING( 0x80, "75" ) - PORT_DIPSETTING( 0xc0, "90" ) - - /* fake ports for the joystick */ - PORT_START_TAG(SPCENCTR_STICK_X_PORT_TAG) - PORT_BIT( 0x3f, 0x1f, IPT_AD_STICK_X ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(SPCENCTR_STICK_Y_PORT_TAG) - PORT_BIT( 0x3f, 0x1f, IPT_AD_STICK_Y ) PORT_MINMAX(0,0x3f) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_PLAYER(1) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( spcenctr ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(spcenctr_io_map,0) - MDRV_MACHINE_START(spcenctr) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* video hardware */ - MDRV_VIDEO_UPDATE(spcenctr) - - /* sound hardware */ - MDRV_IMPORT_FROM(spcenctr_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Phantom II (PCB #652) - * - *************************************/ - -static UINT16 phantom2_cloud_counter = 0; - - -static MACHINE_START( phantom2 ) -{ - /* setup for save states */ - state_save_register_global(phantom2_cloud_counter); - - return machine_start_mw8080bw(machine); -} - - -UINT16 phantom2_get_cloud_counter(void) -{ - return phantom2_cloud_counter; -} - - -void phantom2_set_cloud_counter(UINT16 data) -{ - phantom2_cloud_counter = data; -} - - -static ADDRESS_MAP_START( phantom2_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(phantom2_sh_port_1_w) - AM_RANGE(0x06, 0x06) AM_WRITE(phantom2_sh_port_2_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( phantom2 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* not connected */ - - PORT_START_TAG("IN1") - PORT_DIPNAME ( 0x01, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING ( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME ( 0x06, 0x06, DEF_STR( Game_Time ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:2,3") - PORT_DIPSETTING ( 0x00, "45 seconds + 20 extended (at 20 points)" ) - PORT_DIPSETTING ( 0x02, "60 seconds + 25 extended (at 25 points)" ) - PORT_DIPSETTING ( 0x04, "75 seconds + 30 extended (at 30 points)" ) - PORT_DIPSETTING ( 0x06, "90 seconds + 35 extended (at 35 points)" ) - PORT_DIPNAME ( 0x08, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:4") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( On ) ) - PORT_DIPNAME ( 0x10, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x10, DEF_STR( On ) ) - PORT_SERVICE_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW:6" ) - PORT_DIPNAME ( 0x40, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_DIPNAME ( 0x80, 0x00, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x20,PORTCOND_EQUALS,0x20) PORT_DIPLOCATION("SW:8") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( phantom2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(phantom2_io_map,0) - MDRV_MACHINE_START(phantom2) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* video hardware */ - MDRV_VIDEO_UPDATE(phantom2) - MDRV_VIDEO_EOF(phantom2) - - /* sound hardware */ - MDRV_IMPORT_FROM(phantom2_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Bowling Alley (PCB #730) - * - *************************************/ - -static READ8_HANDLER( bowler_shift_res_r ) -{ - /* ZV - not too sure why this is needed, I don't see - anything unusual on the schematics that would cause - the bits to flip */ - - return ~do_shift(); -} - - -static WRITE8_HANDLER( bowler_lights_1_w ) -{ - output_set_value("200_LEFT_LIGHT", (data >> 0) & 0x01); - - output_set_value("400_LEFT_LIGHT", (data >> 1) & 0x01); - - output_set_value("500_LEFT_LIGHT", (data >> 2) & 0x01); - - output_set_value("700_LIGHT", (data >> 3) & 0x01); - - output_set_value("500_RIGHT_LIGHT", (data >> 4) & 0x01); - - output_set_value("400_RIGHT_LIGHT", (data >> 5) & 0x01); - - output_set_value("200_RIGHT_LIGHT", (data >> 6) & 0x01); - - output_set_value("X_LEFT_LIGHT", (data >> 7) & 0x01); - output_set_value("X_RIGHT_LIGHT", (data >> 7) & 0x01); -} - - -static WRITE8_HANDLER( bowler_lights_2_w ) -{ - output_set_value("REGULATION_GAME_LIGHT", ( data >> 0) & 0x01); - output_set_value("FLASH_GAME_LIGHT", (~data >> 0) & 0x01); - - output_set_value("STRAIGHT_BALL_LIGHT", ( data >> 1) & 0x01); - - output_set_value("HOOK_BALL_LIGHT", ( data >> 2) & 0x01); - - output_set_value("SELECT_GAME_LIGHT", ( data >> 3) & 0x01); - - /* bits 4-7 are not connected */ -} - - -static ADDRESS_MAP_START( bowler_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(4) ) /* no masking on the reads, all 4 bits are decoded */ - AM_RANGE(0x01, 0x01) AM_READ(bowler_shift_res_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_0_r) - AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) - AM_RANGE(0x05, 0x05) AM_READ(input_port_2_r) - AM_RANGE(0x06, 0x06) AM_READ(input_port_3_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x05, 0x05) AM_WRITE(bowler_sh_port_1_w) - AM_RANGE(0x06, 0x06) AM_WRITE(bowler_sh_port_2_w) - AM_RANGE(0x07, 0x07) AM_WRITE(bowler_lights_1_w) - AM_RANGE(0x08, 0x08) AM_WRITE(bowler_sh_port_3_w) - AM_RANGE(0x09, 0x09) AM_WRITE(bowler_sh_port_4_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(bowler_sh_port_5_w) - AM_RANGE(0x0e, 0x0e) AM_WRITE(bowler_lights_2_w) - AM_RANGE(0x0f, 0x0f) AM_WRITE(bowler_sh_port_6_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( bowler ) - PORT_START_TAG("IN0") - PORT_DIPNAME ( 0x03, 0x00, DEF_STR( Language ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:1,2") - PORT_DIPSETTING ( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( German ) ) - /*PORT_DIPSETTING ( 0x03, DEF_STR( German ) ) */ - PORT_DIPNAME ( 0x04, 0x04, DEF_STR( Demo_Sounds ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:3") - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x04, DEF_STR( On ) ) /* every 17 minutes */ - PORT_DIPNAME ( 0x08, 0x08, DEF_STR( Game_Time ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:4") - PORT_DIPSETTING ( 0x00, "No Limit" ) - PORT_DIPSETTING ( 0x08, "5 Minutes" ) - PORT_DIPNAME ( 0x10, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:5") - PORT_DIPSETTING ( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME ( 0x20, 0x20, DEF_STR( Difficulty ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:6") - PORT_DIPSETTING ( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME ( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_CONDITION("IN0",0x80,PORTCOND_EQUALS,0x00) PORT_DIPLOCATION("B3:7") - PORT_DIPSETTING ( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING ( 0x40, "Cocktail (not functional)" ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "B3:8" ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hook/Straight") PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(50) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN3") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( bowler ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(bowler_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - /* MDRV_IMPORT_FROM(bowler_sound) */ - -MACHINE_DRIVER_END - - - -/************************************* - * - * Space Invaders (PCB #739) - * - *************************************/ - -#define INVADERS_COIN_INPUT_PORT_TAG ("COIN") -#define INVADERS_SW6_SW7_PORT_TAG ("SW6SW7") -#define INVADERS_SW5_PORT_TAG ("SW5") -#define INVADERS_CAB_TYPE_PORT_TAG ("CAB") -#define INVADERS_P1_CONTROL_PORT_TAG ("CONTP1") -#define INVADERS_P2_CONTROL_PORT_TAG ("CONTP2") - - -static UINT8 invaders_flip_screen = 0; - - -static MACHINE_START( invaders ) -{ - /* setup for save states */ - state_save_register_global(invaders_flip_screen); - - return machine_start_mw8080bw(machine); -} - - -UINT8 invaders_is_flip_screen(void) -{ - return invaders_flip_screen; -} - - -void invaders_set_flip_screen(UINT8 data) -{ - invaders_flip_screen = data; -} - - -static UINT32 invaders_coin_input_r(void *param) -{ - UINT32 ret = readinputportbytag(INVADERS_COIN_INPUT_PORT_TAG); - - coin_counter_w(0, !ret); - - return ret; -} - - -static UINT32 invaders_sw6_sw7_r(void *param) -{ - UINT32 ret; - - /* upright PCB : switches visible - cocktail PCB: HI */ - - if (invaders_is_cabinet_cocktail()) - { - ret = 0x03; - } - else - { - ret = readinputportbytag(INVADERS_SW6_SW7_PORT_TAG); - } - - - return ret; -} - - -static UINT32 invaders_sw5_r(void *param) -{ - UINT32 ret; - - /* upright PCB : switch visible - cocktail PCB: HI */ - - if (invaders_is_cabinet_cocktail()) - { - ret = 0x01; - } - else - { - ret = readinputportbytag(INVADERS_SW5_PORT_TAG); - } - - - return ret; -} - - -static UINT32 invaders_in0_control_r(void *param) -{ - UINT32 ret; - - /* upright PCB : P1 controls - cocktail PCB: HI */ - - if (invaders_is_cabinet_cocktail()) - { - ret = 0x07; - } - else - { - ret = readinputportbytag(INVADERS_P1_CONTROL_PORT_TAG); - } - - - return ret; -} - - -static UINT32 invaders_in2_control_r(void *param) -{ - UINT32 ret; - - /* upright PCB : P1 controls - cocktail PCB: P2 controls */ - - if (invaders_is_cabinet_cocktail()) - { - ret = readinputportbytag(INVADERS_P2_CONTROL_PORT_TAG); - } - else - { - ret = readinputportbytag(INVADERS_P1_CONTROL_PORT_TAG); - } - - - return ret; -} - - -int invaders_is_cabinet_cocktail() -{ - return readinputportbytag(INVADERS_CAB_TYPE_PORT_TAG); -} - - -static ADDRESS_MAP_START( invaders_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x03, 0x03) AM_WRITE(invaders_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x05, 0x05) AM_WRITE(invaders_sh_port_2_w) - AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( invaders ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW:8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x06, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_sw6_sw7_r, 0) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_in0_control_r, 0) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_sw5_r, 0) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_coin_input_r, 0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* in the software, this is TILI, but not connected on the Midway PCB */ - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:2") - PORT_DIPSETTING( 0x08, "1000" ) - PORT_DIPSETTING( 0x00, "1500" ) - PORT_BIT( 0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_in2_control_r, 0) - PORT_DIPNAME( 0x80, 0x00, "Display Coinage" ) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* fake port for reading the coin input */ - PORT_START_TAG(INVADERS_COIN_INPUT_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* fake port for cabinet type */ - PORT_START_TAG(INVADERS_CAB_TYPE_PORT_TAG) - PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_CONFSETTING( 0x00, DEF_STR( Upright ) ) - PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - /* fake ports for handling the various input ports based on cabinet type */ - PORT_START_TAG(INVADERS_SW6_SW7_PORT_TAG) - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW:7") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(INVADERS_SW5_PORT_TAG) - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(INVADERS_P1_CONTROL_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG(INVADERS_P2_CONTROL_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -MACHINE_DRIVER_START( invaders ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(invaders_io_map,0) - MDRV_MACHINE_START(invaders) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* video hardware */ - MDRV_VIDEO_UPDATE(invaders) - - /* sound hardware */ - MDRV_IMPORT_FROM(invaders_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Blue Shark (PCB #742) - * - *************************************/ - -#define BLUESHRK_COIN_INPUT_PORT_TAG ("COIN") - - -static UINT32 blueshrk_coin_input_r(void *param) -{ - UINT32 ret = readinputportbytag(BLUESHRK_COIN_INPUT_PORT_TAG); - - coin_counter_w(0, !ret); - - return ret; -} - - -static ADDRESS_MAP_START( blueshrk_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_rev_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x03, 0x03) AM_WRITE(blueshrk_sh_port_w) - AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( blueshrk ) - PORT_START_TAG(BLUESHRK_SPEAR_PORT_TAG) - PORT_BIT( 0xff, 0x45, IPT_PADDLE ) PORT_CROSSHAIR(X, 1.0, 0.0, 0.139) PORT_MINMAX(0x08,0x82) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(blueshrk_coin_input_r, 0) - PORT_DIPNAME ( 0x04, 0x04, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("SW:3") - PORT_DIPSETTING ( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) /* not shown on the schematics, instead DIP SW4 is connected here */ - PORT_DIPNAME ( 0x10, 0x10, DEF_STR( Unused ) ) PORT_CONDITION("IN1",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("SW:5") - PORT_DIPSETTING ( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - PORT_DIPNAME ( 0x60, 0x40, "Replay" ) PORT_CONDITION("IN1",0x80,PORTCOND_EQUALS,0x80) PORT_DIPLOCATION("SW:6,7") - PORT_DIPSETTING ( 0x20, "14000" ) - PORT_DIPSETTING ( 0x40, "18000" ) - PORT_DIPSETTING ( 0x60, "22000" ) - PORT_DIPSETTING ( 0x00, DEF_STR( None ) ) - PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW:8" ) - - /* fake port for reading the coin input */ - PORT_START_TAG(BLUESHRK_COIN_INPUT_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( blueshrk ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(blueshrk_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(blueshrk_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * Space Invaders II (cocktail) (PCB #851) - * - *************************************/ - -#define INVAD2CT_COIN_INPUT_PORT_TAG ("COIN") - - -static UINT32 invad2ct_coin_input_r(void *param) -{ - UINT32 ret = readinputportbytag(INVAD2CT_COIN_INPUT_PORT_TAG); - - coin_counter_w(0, !ret); - - return ret; -} - - -static ADDRESS_MAP_START( invad2ct_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(3) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_res_r) - - AM_RANGE(0x01, 0x01) AM_WRITE(invad2ct_sh_port_3_w) - AM_RANGE(0x02, 0x02) AM_WRITE(mw8080bw_shift_amount_w) - AM_RANGE(0x03, 0x03) AM_WRITE(invad2ct_sh_port_1_w) - AM_RANGE(0x04, 0x04) AM_WRITE(mw8080bw_shift_data_w) - AM_RANGE(0x05, 0x05) AM_WRITE(invad2ct_sh_port_2_w) - AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x07, 0x07) AM_WRITE(invad2ct_sh_port_4_w) -ADDRESS_MAP_END - - -static INPUT_PORTS_START( invad2ct ) - PORT_START_TAG("IN0") - PORT_SERVICE_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW:8" ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* labeled NAMED RESET, but not read by the software */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(invaders_coin_input_r, 0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW:3,4") - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW:2") /* this switch only changes the orientation of the score */ - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW:1") - PORT_DIPSETTING( 0x80, "1500" ) - PORT_DIPSETTING( 0x00, "2000" ) - - /* fake port for reading the coin input */ - PORT_START_TAG(INVAD2CT_COIN_INPUT_PORT_TAG) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static MACHINE_DRIVER_START( invad2ct ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(root) - MDRV_CPU_MODIFY("main") - MDRV_CPU_IO_MAP(invad2ct_io_map,0) - MDRV_WATCHDOG_TIME_INIT(255 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)) - - /* sound hardware */ - MDRV_IMPORT_FROM(invad2ct_sound) - -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( seawolf ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sw0041.h", 0x0000, 0x0400, CRC(8f597323) SHA1(b538277d3a633dd8a3179cff202f18d322e6fe17) ) - ROM_LOAD( "sw0042.g", 0x0400, 0x0400, CRC(db980974) SHA1(cc2a99b18695f61e0540c9f6bf8fe3b391dde4a0) ) - ROM_LOAD( "sw0043.f", 0x0800, 0x0400, CRC(e6ffa008) SHA1(385198434b08fe4651ad2c920d44fb49cfe0bc33) ) - ROM_LOAD( "sw0044.e", 0x0c00, 0x0400, CRC(c3557d6a) SHA1(bd345dd72fed8ce15da76c381782b025f71b006f) ) -ROM_END - -ROM_START( gunfight ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "7609h.bin", 0x0000, 0x0400, CRC(0b117d73) SHA1(99d01313e251818d336281700e206d9003c71dae) ) - ROM_LOAD( "7609g.bin", 0x0400, 0x0400, CRC(57bc3159) SHA1(c177e3f72db9af17ab99b2481448ca26318184b9) ) - ROM_LOAD( "7609f.bin", 0x0800, 0x0400, CRC(8049a6bd) SHA1(215b068663e431582591001cbe028929fa96d49f) ) - ROM_LOAD( "7609e.bin", 0x0c00, 0x0400, CRC(773264e2) SHA1(de3f2e6841122bbe6e2fda5b87d37842c072289a) ) -ROM_END - -ROM_START( tornbase ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "tb.h", 0x0000, 0x0800, CRC(653f4797) SHA1(feb4c802aa3e0c2a66823cd032496cca5742c883) ) - ROM_LOAD( "tb.g", 0x0800, 0x0800, CRC(b63dcdb3) SHA1(bdaa0985bcb5257204ee10faa11a4e02a38b9ac5) ) - ROM_LOAD( "tb.f", 0x1000, 0x0800, CRC(215e070c) SHA1(425915b37e5315f9216707de0850290145f69a30) ) -ROM_END - -ROM_START( 280zzzap ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "zzzaph", 0x0000, 0x0400, CRC(1fa86e1c) SHA1(b9cf16eb037ada73631ed24297e9e3b3bf6ab3cd) ) - ROM_LOAD( "zzzapg", 0x0400, 0x0400, CRC(9639bc6b) SHA1(b2e2497e421e79a411d07ebf2eed2bb8dc227003) ) - ROM_LOAD( "zzzapf", 0x0800, 0x0400, CRC(adc6ede1) SHA1(206bf2575696c4b14437f3db37a215ba33211943) ) - ROM_LOAD( "zzzape", 0x0c00, 0x0400, CRC(472493d6) SHA1(ae5cf4481ee4b78ca0d2f4d560d295e922aa04a7) ) - ROM_LOAD( "zzzapd", 0x1000, 0x0400, CRC(4c240ee1) SHA1(972475f80253bb0d24773a10aec26a12f28e7c23) ) - ROM_LOAD( "zzzapc", 0x1400, 0x0400, CRC(6e85aeaf) SHA1(ffa6bb84ef1f7c2d72fd26c24bd33aa014aeab7e) ) -ROM_END - -ROM_START( maze ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "maze.h", 0x0000, 0x0800, CRC(f2860cff) SHA1(62b3fd3d04bf9c5dd9b50964374fb884dc0ab79c) ) - ROM_LOAD( "maze.g", 0x0800, 0x0800, CRC(65fad839) SHA1(893f0a7621e7df19f777be991faff0db4a9ad571) ) -ROM_END - -ROM_START( boothill ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "romh.cpu", 0x0000, 0x0800, CRC(1615d077) SHA1(e59a26c2f2fc67ab24301e22d2e3f33043acdf72) ) - ROM_LOAD( "romg.cpu", 0x0800, 0x0800, CRC(65a90420) SHA1(9f36c44b5ae5b912cdbbeb9ff11a42221b8362d2) ) - ROM_LOAD( "romf.cpu", 0x1000, 0x0800, CRC(3fdafd79) SHA1(b18e8ac9df40c4687ac1acd5174eb99f2ef60081) ) - ROM_LOAD( "rome.cpu", 0x1800, 0x0800, CRC(374529f4) SHA1(18c57b79df0c66052eef40a694779a5ade15d0e0) ) -ROM_END - -ROM_START( checkmat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "checkmat.h", 0x0000, 0x0400, CRC(3481a6d1) SHA1(f758599d6393398a6a8e6e7399dc1a3862604f65) ) - ROM_LOAD( "checkmat.g", 0x0400, 0x0400, CRC(df5fa551) SHA1(484ff9bfb95166ba09f34c753a7908a73de3cc7d) ) - ROM_LOAD( "checkmat.f", 0x0800, 0x0400, CRC(25586406) SHA1(39e0cf502735819a7e1d933e3686945fcfae21af) ) - ROM_LOAD( "checkmat.e", 0x0c00, 0x0400, CRC(59330d84) SHA1(453f95dd31968d439339c41e625481170437eb0f) ) - ROM_LOAD( "checkmat.d", 0x1000, 0x0400, NO_DUMP ) /* language ROM */ -ROM_END - -ROM_START( desertgu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "desertgu.h", 0x0000, 0x0800, CRC(c0030d7c) SHA1(4d0a3a59d4f8181c6e30966a6b1d19ba5b29c398) ) - ROM_LOAD( "desertgu.g", 0x0800, 0x0800, CRC(1ddde10b) SHA1(8fb8e85844a8ec6c0722883013ecdd4eeaeb08c1) ) - ROM_LOAD( "desertgu.f", 0x1000, 0x0800, CRC(808e46f1) SHA1(1cc4e9b0aa7e9546c133bd40d40ede6f2fbe93ba) ) - ROM_LOAD( "desertgu.e", 0x1800, 0x0800, CRC(ac64dc62) SHA1(202433dfb174901bd3b91e843d9d697a8333ef9e) ) -ROM_END - -ROM_START( dplay ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "dplay619.h", 0x0000, 0x0800, CRC(6680669b) SHA1(49ad2333f81613c2f27231de60b415cbc254546a) ) - ROM_LOAD( "dplay619.g", 0x0800, 0x0800, CRC(0eec7e01) SHA1(2661e77061119d7d95d498807bd29d2630c6b6ab) ) - ROM_LOAD( "dplay619.f", 0x1000, 0x0800, CRC(3af4b719) SHA1(3122138ac36b1a129226836ddf1916d763d73e10) ) - ROM_LOAD( "dplay619.e", 0x1800, 0x0800, CRC(65cab4fc) SHA1(1ce7cb832e95e4a6d0005bf730eec39225b2e960) ) -ROM_END - -ROM_START( lagunar ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "lagunar.h", 0x0000, 0x0800, CRC(0cd5a280) SHA1(89a744c912070f11b0b90b0cc92061e238b00b64) ) - ROM_LOAD( "lagunar.g", 0x0800, 0x0800, CRC(824cd6f5) SHA1(a74f6983787cf040eab6f19de2669c019962b9cb) ) - ROM_LOAD( "lagunar.f", 0x1000, 0x0800, CRC(62692ca7) SHA1(d62051bd1b45ca6e60df83942ff26a64ae25a97b) ) - ROM_LOAD( "lagunar.e", 0x1800, 0x0800, CRC(20e098ed) SHA1(e0c52c013f5e93794b363d7762ce0f34ba98c660) ) -ROM_END - -ROM_START( gmissile ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "gm_623.h", 0x0000, 0x0800, CRC(a3ebb792) SHA1(30d9613de849c1a868056c5e28cf2a8608b63e88) ) - ROM_LOAD( "gm_623.g", 0x0800, 0x0800, CRC(a5e740bb) SHA1(963c0984953eb58fe7eab84fabb724ec6e29e706) ) - ROM_LOAD( "gm_623.f", 0x1000, 0x0800, CRC(da381025) SHA1(c9d0511567ed571b424459896ce7de0326850388) ) - ROM_LOAD( "gm_623.e", 0x1800, 0x0800, CRC(f350146b) SHA1(a07000a979b1a735754eca623cc880988924877f) ) -ROM_END - -ROM_START( m4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "m4.h", 0x0000, 0x0800, CRC(9ee2a0b5) SHA1(b81b4001c90ac6db25edd838652c42913022d9a9) ) - ROM_LOAD( "m4.g", 0x0800, 0x0800, CRC(0e84b9cb) SHA1(a7b74851979aaaa16496e506c487a18df14ab6dc) ) - ROM_LOAD( "m4.f", 0x1000, 0x0800, CRC(9ded9956) SHA1(449204a50efd3345cde815ca5f1fb596843a30ac) ) - ROM_LOAD( "m4.e", 0x1800, 0x0800, CRC(b6983238) SHA1(3f3b99b33135e144c111d2ebaac8f9433c269bc5) ) -ROM_END - -ROM_START( clowns ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "h2.cpu", 0x0000, 0x0400, CRC(ff4432eb) SHA1(997aee1e3669daa1d8169b4e103d04baaab8ea8d) ) - ROM_LOAD( "g2.cpu", 0x0400, 0x0400, CRC(676c934b) SHA1(72b681ca9ef23d820fdd297cc417932aecc9677b) ) - ROM_LOAD( "f2.cpu", 0x0800, 0x0400, CRC(00757962) SHA1(ef39211493393e97284a08eea63be0757643ac88) ) - ROM_LOAD( "e2.cpu", 0x0c00, 0x0400, CRC(9e506a36) SHA1(8aad486a72d148d8b03e7bec4c12abd14e425c5f) ) - ROM_LOAD( "d2.cpu", 0x1000, 0x0400, CRC(d61b5b47) SHA1(6051c0a2e81d6e975e82c2d48d0e52dc0d4723e3) ) - ROM_LOAD( "c2.cpu", 0x1400, 0x0400, CRC(154d129a) SHA1(61eebb319ee3a6be598b764b295c18a93a953c1e) ) -ROM_END - -ROM_START( clowns1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "clownsv1.h", 0x0000, 0x0400, CRC(5560c951) SHA1(b6972e1918604263579de577ec58fa6a91e8ff3e) ) - ROM_LOAD( "clownsv1.g", 0x0400, 0x0400, CRC(6a571d66) SHA1(e825f95863e901a1b648c74bb47098c8e74f179b) ) - ROM_LOAD( "clownsv1.f", 0x0800, 0x0400, CRC(a2d56cea) SHA1(61bc07e6a24a1980216453b4dd2688695193a4ae) ) - ROM_LOAD( "clownsv1.e", 0x0c00, 0x0400, CRC(bbd606f6) SHA1(1cbaa21d9834c8d76cf335fd118851591e815c86) ) - ROM_LOAD( "clownsv1.d", 0x1000, 0x0400, CRC(37b6ff0e) SHA1(bf83bebb6c14b3663ca86a180f9ae3cddb84e571) ) - ROM_LOAD( "clownsv1.c", 0x1400, 0x0400, CRC(12968e52) SHA1(71e4f09d30b992a4ac44b0e88e83b4f8a0f63caa) ) -ROM_END - -ROM_START( einning ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "ei.h", 0x0000, 0x0800, CRC(eff9c7af) SHA1(316fffc972bd9935ead5ee4fd629bddc8a8ed5ce) ) - ROM_LOAD( "ei.g", 0x0800, 0x0800, CRC(5d1e66cb) SHA1(a5475362e12b7c251a05d67c2fd070cf7d333ad0) ) - ROM_LOAD( "ei.f", 0x1000, 0x0800, CRC(ed96785d) SHA1(d5557620227fcf6f30dcf6c8f5edd760d77d30ae) ) - ROM_LOAD( "ei.e", 0x1800, 0x0800, CRC(ad096a5d) SHA1(81d48302a0e039b8601a6aed7276e966592af693) ) - ROM_LOAD( "ei.b", 0x5000, 0x0800, CRC(56b407d4) SHA1(95e4be5b2f28192df85c6118079de2e68838b67c) ) -ROM_END - -ROM_START( shuffle ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "shuffle.h", 0x0000, 0x0800, CRC(0d422a18) SHA1(909c5b9e3c1194abd101cbf993a2ed7c8fbeb5d0) ) - ROM_LOAD( "shuffle.g", 0x0800, 0x0800, CRC(7db7fcf9) SHA1(f41b568f2340e5307a7a45658946cfd4cf4056bf) ) - ROM_LOAD( "shuffle.f", 0x1000, 0x0800, CRC(cd04d848) SHA1(f0f7e9bc483f08934d5c29568b4a7fe084623031) ) - ROM_LOAD( "shuffle.e", 0x1800, 0x0800, CRC(2c118357) SHA1(178db02aaa70963dd8dbcb9b8651209913c539af) ) -ROM_END - -ROM_START( dogpatch ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "dogpatch.h", 0x0000, 0x0800, CRC(74ebdf4d) SHA1(6b31f9563b0f79fe9128ee83e85a3e2f90d7985b) ) - ROM_LOAD( "dogpatch.g", 0x0800, 0x0800, CRC(ac246f70) SHA1(7ee356c3218558a78ee0ff495f9f51ef88cac951) ) - ROM_LOAD( "dogpatch.f", 0x1000, 0x0800, CRC(a975b011) SHA1(fb807d9eefde7177d7fd7ab06fc2dbdc58ae6fcb) ) - ROM_LOAD( "dogpatch.e", 0x1800, 0x0800, CRC(c12b1f60) SHA1(f0504e16d2ce60a0fb3fc2af8c323bfca0143818) ) -ROM_END - -ROM_START( spcenctr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "4m33.h", 0x0000, 0x0800, CRC(7458b2db) SHA1(c4f41efb8a35fd8bebc75bff0111476affe2b34d) ) - ROM_LOAD( "4m32.g", 0x0800, 0x0800, CRC(1b873788) SHA1(6cdf0d602a65c7efcf8abe149c6172b4c7ab87a1) ) - ROM_LOAD( "4m31.f", 0x1000, 0x0800, CRC(d4319c91) SHA1(30830595c220f490fe150ad018fbf4671bb71e02) ) - ROM_LOAD( "4m30.e", 0x1800, 0x0800, CRC(9b9a1a45) SHA1(8023a05c13e8b541f9e2fe4d389e6a2dcd4766ea) ) - ROM_LOAD( "4m29.d", 0x4000, 0x0800, CRC(294d52ce) SHA1(0ee63413c5caf60d45ae8bef08f6c07099d30f79) ) - ROM_LOAD( "4m28.c", 0x4800, 0x0800, CRC(ce44c923) SHA1(9d35908de3194c5fe6fc8495ae413fa722018744) ) - ROM_LOAD( "4m27.b", 0x5000, 0x0800, CRC(098070ab) SHA1(72ae344591df0174353dc2e3d22daf5a70e2261f) ) - ROM_LOAD( "4m26.a", 0x5800, 0x0800, CRC(7f1d1f44) SHA1(2f4951171a55e7ac072742fa24eceeee6aca7e39) ) -ROM_END - -ROM_START( phantom2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "phantom2.h", 0x0000, 0x0800, CRC(0e3c2439) SHA1(450182e590845c651530b2c84e1f11fe2451dcf6) ) - ROM_LOAD( "phantom2.g", 0x0800, 0x0800, CRC(e8df3e52) SHA1(833925e44e686df4d4056bce4c0ffae3269d57df) ) - ROM_LOAD( "phantom2.f", 0x1000, 0x0800, CRC(30e83c6d) SHA1(fe34a3e4519a7e5ffe66e76fe974049988656b71) ) - ROM_LOAD( "phantom2.e", 0x1800, 0x0800, CRC(8c641cac) SHA1(c4986daacb7ed9efed59b022c6101240b0eddcdc) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* cloud graphics */ - ROM_LOAD( "p2clouds.f2",0x0000, 0x0800, CRC(dcdd2927) SHA1(d8d42c6594e36c12b40ee6342a9ad01a8bbdef75) ) -ROM_END - -ROM_START( bowler ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "h.cpu", 0x0000, 0x0800, CRC(74c29b93) SHA1(9cbd5b7b8a4c889406b6bc065360f74c036320b2) ) - ROM_LOAD( "g.cpu", 0x0800, 0x0800, CRC(ca26d8b4) SHA1(cf18991cde8044a961cf556f18c6eb60a7ade595) ) - ROM_LOAD( "f.cpu", 0x1000, 0x0800, CRC(ba8a0bfa) SHA1(bb017ddac58d031b249596b70ab1068cd1bad499) ) - ROM_LOAD( "e.cpu", 0x1800, 0x0800, CRC(4da65a40) SHA1(7795d59870fa722da89888e72152145662554080) ) - ROM_LOAD( "d.cpu", 0x4000, 0x0800, CRC(e7dbc9d9) SHA1(05049a69ee588de85db86df188e7670778b77e90) ) -ROM_END - -ROM_START( invaders ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "invaders.h", 0x0000, 0x0800, CRC(734f5ad8) SHA1(ff6200af4c9110d8181249cbcef1a8a40fa40b7f) ) - ROM_LOAD( "invaders.g", 0x0800, 0x0800, CRC(6bfaca4a) SHA1(16f48649b531bdef8c2d1446c429b5f414524350) ) - ROM_LOAD( "invaders.f", 0x1000, 0x0800, CRC(0ccead96) SHA1(537aef03468f63c5b9e11dd61e253f7ae17d9743) ) - ROM_LOAD( "invaders.e", 0x1800, 0x0800, CRC(14e538b0) SHA1(1d6ca0c99f9df71e2990b610deb9d7da0125e2d8) ) -ROM_END - -ROM_START( blueshrk ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "blueshrk.h", 0x0000, 0x0800, CRC(4ff94187) SHA1(7cb80e2ccc34983bfd688c549ffc032d6dacf880) ) - ROM_LOAD( "blueshrk.g", 0x0800, 0x0800, CRC(e49368fd) SHA1(2495ba48532bb714361e4f0e94c9317161c6c77f) ) - ROM_LOAD( "blueshrk.f", 0x1000, 0x0800, CRC(86cca79d) SHA1(7b4633fb8033ee2c0e692135c383ebf57deef0e5) ) -ROM_END - -ROM_START( invad2ct ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "invad2ct.h", 0x0000, 0x0800, CRC(51d02a71) SHA1(2fa82ddc2702a72de0a9559ec244b70ab3db3f18) ) - ROM_LOAD( "invad2ct.g", 0x0800, 0x0800, CRC(533ac770) SHA1(edb65c289027432dad7861a7d6abbda9223c13b1) ) - ROM_LOAD( "invad2ct.f", 0x1000, 0x0800, CRC(d1799f39) SHA1(f7f1ba34d57f9883241ba3ef90e34ed20dfb8003) ) - ROM_LOAD( "invad2ct.e", 0x1800, 0x0800, CRC(291c1418) SHA1(0d9f7973ed81d28c43ef8b96f1180d6629871785) ) - ROM_LOAD( "invad2ct.b", 0x5000, 0x0800, CRC(8d9a07c4) SHA1(4acbe15185d958b5589508dc0ea3a615fbe3bcca) ) - ROM_LOAD( "invad2ct.a", 0x5800, 0x0800, CRC(efdabb03) SHA1(33f4cf249e88e2b7154350e54c479eb4fa86f26f) ) -ROM_END - - - -/************************************* - * - * Game drivers - * - *************************************/ - -/* PCB # rom parent machine inp */ - -/* 596 */ GAME( 1976, seawolf, 0, seawolf, seawolf, 0, ROT0, "Midway", "Sea Wolf", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 597 */ GAMEL(1975, gunfight, 0, gunfight, gunfight, 0, ROT0, "Midway", "Gun Fight", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_hoffff20 ) -/* 605 */ GAME( 1976, tornbase, 0, tornbase, tornbase, 0, ROT0, "Midway", "Tornado Baseball", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 610 */ GAME( 1976, 280zzzap, 0, zzzap, zzzap, 0, ROT0, "Midway", "Datsun 280 Zzzap", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -/* 611 */ GAMEL(1976, maze, 0, maze, maze, 0, ROT0, "Midway", "Amazing Maze", GAME_NO_SOUND | GAME_SUPPORTS_SAVE , layout_ho4f893d ) -/* 612 */ GAME( 1977, boothill, 0, boothill, boothill, 0, ROT0, "Midway", "Boot Hill" , GAME_SUPPORTS_SAVE ) -/* 615 */ GAME( 1977, checkmat, 0, checkmat, checkmat, 0, ROT0, "Midway", "Checkmate", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -/* 618 */ GAME( 1977, desertgu, 0, desertgu, desertgu, 0, ROT0, "Midway", "Desert Gun", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 619 */ GAME( 1977, dplay, 0, dplay, dplay, 0, ROT0, "Midway", "Double Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 622 */ GAME( 1977, lagunar, 0, zzzap, lagunar, 0, ROT90, "Midway", "Laguna Racer", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -/* 623 */ GAME( 1977, gmissile, 0, gmissile, gmissile, 0, ROT0, "Midway", "Guided Missile", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 626 */ GAME( 1977, m4, 0, m4, m4, 0, ROT0, "Midway", "M-4", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 630 */ GAMEL(1978, clowns, 0, clowns, clowns, 0, ROT0, "Midway", "Clowns (rev. 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_clowns ) -/* 630 */ GAMEL(1978, clowns1, clowns, clowns, clowns1, 0, ROT0, "Midway", "Clowns (rev. 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_clowns ) -/* 640 Space Walk (dump does not exist) */ -/* 642 */ GAME( 1978, einning, 0, dplay, einning, 0, ROT0, "Midway", "Extra Inning", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 643 */ GAME( 1978, shuffle, 0, shuffle, shuffle, 0, ROT90, "Midway", "Shuffleboard", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -/* 644 */ GAME( 1977, dogpatch, 0, dogpatch, dogpatch, 0, ROT0, "Midway", "Dog Patch", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 645 */ GAME( 1980, spcenctr, 0, spcenctr, spcenctr, 0, ROT0, "Midway", "Space Encounters", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 652 */ GAMEL(1979, phantom2, 0, phantom2, phantom2, 0, ROT0, "Midway", "Phantom II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_hoa0a0ff ) -/* 730 */ GAME( 1978, bowler, 0, bowler, bowler, 0, ROT90, "Midway", "Bowling Alley", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) -/* 739 */ GAMEL(1978, invaders, 0, invaders, invaders, 0, ROT270, "Midway", "Space Invaders", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_invaders ) -/* 742 */ GAME( 1978, blueshrk, 0, blueshrk, blueshrk, 0, ROT0, "Midway", "Blue Shark", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -/* 749 4 Player Bowling Alley (cocktail, dump does not exist) */ -/* 851 */ GAMEL(1980, invad2ct, 0, invad2ct, invad2ct, 0, ROT90, "Midway", "Space Invaders II (Midway, cocktail)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_invad2ct ) -/* 852 Space Invaders Deluxe (color hardware, not in this driver) */ -/* 870 Space Invaders Deluxe (cocktail, dump does not exist) */ diff --git a/src/drivers/mystwarr.c b/src/drivers/mystwarr.c deleted file mode 100644 index 52c191e45..000000000 --- a/src/drivers/mystwarr.c +++ /dev/null @@ -1,2153 +0,0 @@ -#define MW_DEBUG 0 - -/************************************************************************** - * Mystic Warrior (c) 1993 Konami - * Metamorphic Force (c) 1993 Konami - * Violent Storm (c) 1993 Konami - * Martial Champion (c) 1993 Konami - * Gaiapolis (c) 1993 Konami - * Ultimate Battler Dadandarn!! (c) 1993 Konami - * - * Driver by R. Belmont, Phil Stroffolino, Acho Tang, and Nicola Salmoria. - * Assists from Olivier Galibert, Brian Troha, The Guru, and Yasuhiro Ogawa. - * - * These games are the "pre-GX" boards, combining features of the previous - * line of hardware begun with Xexex and those of the future 32-bit System - * GX (notably 5 bit per pixel graphics, the powerful K055555 mixer/priority - * encoder, and K054338 alpha blend engine from System GX are used). - * - * Game status: - * - All games are playable with sound and correct colors. - * - Metamorphic Force's intro needs alpha blended sprites. - */ - -#include "driver.h" - -#include "vidhrdw/konamiic.h" -#include "machine/konamigx.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/k054539.h" - -VIDEO_START(gaiapols); -VIDEO_START(dadandrn); -VIDEO_START(viostorm); -VIDEO_START(metamrph); -VIDEO_START(martchmp); -VIDEO_START(mystwarr); -VIDEO_UPDATE(dadandrn); -VIDEO_UPDATE(mystwarr); -VIDEO_UPDATE(metamrph); -VIDEO_UPDATE(martchmp); - -WRITE16_HANDLER(ddd_053936_enable_w); -WRITE16_HANDLER(ddd_053936_clip_w); -READ16_HANDLER(gai_053936_tilerom_0_r); -READ16_HANDLER(ddd_053936_tilerom_0_r); -READ16_HANDLER(ddd_053936_tilerom_1_r); -READ16_HANDLER(gai_053936_tilerom_2_r); -READ16_HANDLER(ddd_053936_tilerom_2_r); - -static UINT16 *gx_workram; - -static INT32 init_eeprom_count; -static UINT8 mw_irq_control; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "011100", /* write command */ - "0100100000000",/* erase command */ - "0100000000000",/* lock command */ - "0100110000000" /* unlock command */ -}; - -/* Gaiapolis and Polygonet Commanders use the ER5911, - but the command formats are slightly different. Why? */ -static struct EEPROM_interface eeprom_interface_gaia = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "010100", /* write command */ - "0100100000000",/* erase command */ - "0100000000000",/* lock command */ - "0100110000000" /* unlock command */ -}; - -static NVRAM_HANDLER(mystwarr) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static NVRAM_HANDLER(gaiapols) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_gaia); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ16_HANDLER( mweeprom_r ) -{ - if (ACCESSING_LSB) - { - int res = readinputport(1) | EEPROM_read_bit(); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= ~0x04; - } - - return res; - } - -// logerror("msb access to eeprom port\n"); - - return 0; -} - -static READ16_HANDLER( vseeprom_r ) -{ - if (ACCESSING_LSB) - { - int res = readinputport(1) | EEPROM_read_bit(); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= ~0x08; - } - - return res; - } - -// logerror("msb access to eeprom port\n"); - - return 0; -} - -static WRITE16_HANDLER( mweeprom_w ) -{ - if (ACCESSING_MSB) - { - EEPROM_write_bit((data&0x0100) ? 1 : 0); - EEPROM_set_cs_line((data&0x0200) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data&0x0400) ? ASSERT_LINE : CLEAR_LINE); - return; - } - -// logerror("unknown LSB write %x to eeprom\n", data); - -} - -static READ16_HANDLER( dddeeprom_r ) -{ - if (ACCESSING_MSB) - { - return (readinputport(1) | EEPROM_read_bit())<<8; - } - - return readinputport(3); -} - -static WRITE16_HANDLER( mmeeprom_w ) -{ - if (ACCESSING_LSB) - { - EEPROM_write_bit((data&0x01) ? 1 : 0); - EEPROM_set_cs_line((data&0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data&0x04) ? ASSERT_LINE : CLEAR_LINE); - return; - } -} - - -/**********************************************************************************/ -/* IRQ controllers */ - -static INTERRUPT_GEN(mystwarr_interrupt) -{ - if (!(mw_irq_control & 0x01)) return; - - switch (cpu_getiloops()) - { - case 0: - cpunum_set_input_line(0, MC68000_IRQ_2, HOLD_LINE); - break; - - case 1: - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); - break; - - case 2: - cpunum_set_input_line(0, MC68000_IRQ_6, HOLD_LINE); - break; - } -} - -static INTERRUPT_GEN(metamrph_interrupt) -{ - switch (cpu_getiloops()) - { - case 0: - cpunum_set_input_line(0, MC68000_IRQ_4, HOLD_LINE); - break; - - case 15: - cpunum_set_input_line(0, MC68000_IRQ_6, HOLD_LINE); - break; - - case 39: - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(0, MC68000_IRQ_5, HOLD_LINE); - break; - } -} - -static INTERRUPT_GEN(mchamp_interrupt) -{ - if (!(mw_irq_control & 0x02)) return; - - switch (cpu_getiloops()) - { - case 0: - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(0, MC68000_IRQ_6, HOLD_LINE); - break; - - case 1: - cpunum_set_input_line(0, MC68000_IRQ_2, HOLD_LINE); - break; - } -} - -static INTERRUPT_GEN(ddd_interrupt) -{ - cpunum_set_input_line(0, MC68000_IRQ_5, HOLD_LINE); -} - - -/**********************************************************************************/ - -static WRITE16_HANDLER( sound_cmd1_w ) -{ - soundlatch_w(0, data&0xff); -} - -static WRITE16_HANDLER( sound_cmd1_msb_w ) -{ - soundlatch_w(0, data>>8); -} - -static WRITE16_HANDLER( sound_cmd2_w ) -{ - soundlatch2_w(0, data&0xff); - return; -} - -static WRITE16_HANDLER( sound_cmd2_msb_w ) -{ - soundlatch2_w(0, data>>8); - return; -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -static READ16_HANDLER( sound_status_r ) -{ - int latch = soundlatch3_r(0); - - if ((latch & 0xf) == 0xe) latch |= 1; - - return latch; -} - -static READ16_HANDLER( sound_status_msb_r ) -{ - int latch = soundlatch3_r(0); - - if ((latch & 0xf) == 0xe) latch |= 1; - - return latch<<8; -} - -static WRITE16_HANDLER( irq_ack_w ) -{ - K056832_b_word_w(offset, data, mem_mask); - - if (offset == 3 && ACCESSING_LSB) - { - mw_irq_control = data&0xff; - -// if ((data &0xf0) != 0xd0) logerror("Unknown write to IRQ reg: %x\n", data); - - } -} - -static READ16_HANDLER( player1_r ) -{ - return readinputport(2) | (readinputport(3)<<8); -} - -static READ16_HANDLER( player2_r ) -{ - return readinputport(4) | (readinputport(5)<<8); -} - -static READ16_HANDLER( mmplayer1_r ) -{ - return readinputport(2) | (readinputport(4)<<8); -} - -static READ16_HANDLER( mmplayer2_r ) -{ - return readinputport(3) | (readinputport(5)<<8); -} - -static READ16_HANDLER( mmcoins_r ) -{ - int res = readinputport(0); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= ~0x10; - } - - return res; -} - -static READ16_HANDLER( dddcoins_r ) -{ - int res = (readinputport(0)<<8) | readinputport(2); - - if (init_eeprom_count) - { - init_eeprom_count--; - res &= ~0x0800; - } - - return res; -} - -/* the interface with the 053247 is weird. The chip can address only 0x1000 bytes */ -/* of RAM, but they put 0x10000 there. The CPU can access them all. */ -static READ16_HANDLER( K053247_scattered_word_r ) -{ - if (offset & 0x0078) - return spriteram16[offset]; - else - { - offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4); - return K053247_word_r(offset,mem_mask); - } -} - -static WRITE16_HANDLER( K053247_scattered_word_w ) -{ - if (offset & 0x0078) - { -// mame_printf_debug("spr write %x to %x (PC=%x)\n", data, offset, activecpu_get_pc()); - COMBINE_DATA(spriteram16+offset); - } - else - { - offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4); - - K053247_word_w(offset,data,mem_mask); - } -} - -/* 68000 memory handlers */ -/* Mystic Warriors */ -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) // main program - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(K053247_scattered_word_r) - AM_RANGE(0x482000, 0x48200f) AM_READ(K055673_rom_word_r) - AM_RANGE(0x494000, 0x494001) AM_READ(player1_r) - AM_RANGE(0x494002, 0x494003) AM_READ(player2_r) - AM_RANGE(0x496000, 0x496001) AM_READ(mmcoins_r) - AM_RANGE(0x496002, 0x496003) AM_READ(mweeprom_r) - AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r) - AM_RANGE(0x498000, 0x49801f) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x601fff) AM_READ(K056832_ram_word_r) - AM_RANGE(0x602000, 0x603fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x680000, 0x683fff) AM_READ(K056832_mw_rom_word_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) -#if MW_DEBUG - AM_RANGE(0x480000, 0x4800ff) AM_READ(K055555_word_r) - AM_RANGE(0x482010, 0x48201f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x484000, 0x484007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x48a000, 0x48a01f) AM_READ(K054338_word_r) - AM_RANGE(0x48c000, 0x48c03f) AM_READ(K056832_word_r) - AM_RANGE(0x49c000, 0x49c01f) AM_READ(K053252_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(K053247_scattered_word_w) AM_BASE(&spriteram16) - AM_RANGE(0x480000, 0x4800ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x482010, 0x48201f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x484000, 0x484007) AM_WRITE(K053246_word_w) - AM_RANGE(0x48a000, 0x48a01f) AM_WRITE(K054338_word_w) - AM_RANGE(0x48c000, 0x48c03f) AM_WRITE(K056832_word_w) - AM_RANGE(0x490000, 0x490001) AM_WRITE(mweeprom_w) - AM_RANGE(0x492000, 0x492001) AM_WRITE(MWA16_NOP) // watchdog - AM_RANGE(0x49800c, 0x49800d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x49800e, 0x49800f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x498000, 0x49801f) AM_WRITE(MWA16_RAM) - AM_RANGE(0x49a000, 0x49a001) AM_WRITE(sound_irq_w) - AM_RANGE(0x49c000, 0x49c01f) AM_WRITE(K053252_word_w) - AM_RANGE(0x49e000, 0x49e007) AM_WRITE(irq_ack_w) // VSCCS (custom) - AM_RANGE(0x600000, 0x601fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x602000, 0x603fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror write(essential) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -/* Metamorphic Force */ -static ADDRESS_MAP_START( mmreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) // main program - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x210000, 0x210fff) AM_READ(K053247_word_r) - AM_RANGE(0x211000, 0x21ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x244000, 0x24400f) AM_READ(K055673_rom_word_r) - AM_RANGE(0x24c000, 0x24ffff) AM_READ(K053250_0_ram_r) - AM_RANGE(0x250000, 0x25000f) AM_READ(K053250_0_r) - AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r) - AM_RANGE(0x268000, 0x26801f) AM_READ(MRA16_RAM) - AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r) - AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r) - AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r) - AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r) - AM_RANGE(0x27c000, 0x27c001) AM_READ(MRA16_NOP) // watchdog lives here - AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r) - AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x310000, 0x311fff) AM_READ(K056832_mw_rom_word_r) - AM_RANGE(0x320000, 0x321fff) AM_READ(K053250_0_rom_r) - AM_RANGE(0x330000, 0x331fff) AM_READ(MRA16_RAM) -#if MW_DEBUG - AM_RANGE(0x240000, 0x240007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x244010, 0x24401f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x254000, 0x25401f) AM_READ(K054338_word_r) - AM_RANGE(0x258000, 0x2580ff) AM_READ(K055555_word_r) - AM_RANGE(0x260000, 0x26001f) AM_READ(K053252_word_r) - AM_RANGE(0x26C000, 0x26C007) AM_READ(K056832_b_word_r) - AM_RANGE(0x270000, 0x27003f) AM_READ(K056832_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mmwritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x210000, 0x210fff) AM_WRITE(K053247_word_w) - AM_RANGE(0x211000, 0x21ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x240000, 0x240007) AM_WRITE(K053246_word_w) - AM_RANGE(0x244010, 0x24401f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x24c000, 0x24ffff) AM_WRITE(K053250_0_ram_w) // "LVC RAM" (53250_ram) - AM_RANGE(0x250000, 0x25000f) AM_WRITE(K053250_0_w) - AM_RANGE(0x254000, 0x25401f) AM_WRITE(K054338_word_w) - AM_RANGE(0x258000, 0x2580ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x260000, 0x26001f) AM_WRITE(K053252_word_w) - AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w) - AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x268000, 0x26801f) AM_WRITE(MWA16_RAM) - AM_RANGE(0x26C000, 0x26C007) AM_WRITE(K056832_b_word_w) - AM_RANGE(0x270000, 0x27003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x27C000, 0x27C001) AM_WRITE(mmeeprom_w) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x302000, 0x303fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror write(essential) - AM_RANGE(0x330000, 0x331fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -/* Violent Storm */ -static ADDRESS_MAP_START( vsreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) // main program - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x210000, 0x210fff) AM_READ(K053247_word_r) - AM_RANGE(0x211000, 0x21ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x244000, 0x24400f) AM_READ(K055673_rom_word_r) - AM_RANGE(0x24c000, 0x24ffff) AM_READ(MRA16_RAM) // K053250_0_ram_r - AM_RANGE(0x250000, 0x25000f) AM_READ(MRA16_RAM) // K053250_0_r - AM_RANGE(0x25c000, 0x25c03f) AM_READ(K055550_word_r) - AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r) - AM_RANGE(0x268000, 0x26801f) AM_READ(MRA16_RAM) - AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r) - AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r) - AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r) - AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r) - AM_RANGE(0x27c000, 0x27c001) AM_READ(MRA16_NOP) // watchdog lives here - AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r) - AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x304000, 0x3041ff) AM_READ(MRA16_RAM) - AM_RANGE(0x310000, 0x311fff) AM_READ(K056832_mw_rom_word_r) - AM_RANGE(0x330000, 0x331fff) AM_READ(MRA16_RAM) -#if MW_DEBUG - AM_RANGE(0x240000, 0x240007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x244010, 0x24401f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x254000, 0x25401f) AM_READ(K054338_word_r) - AM_RANGE(0x258000, 0x2580ff) AM_READ(K055555_word_r) - AM_RANGE(0x260000, 0x26001f) AM_READ(K053252_word_r) - AM_RANGE(0x26C000, 0x26C007) AM_READ(K056832_b_word_r) - AM_RANGE(0x270000, 0x27003f) AM_READ(K056832_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vswritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x210000, 0x210fff) AM_WRITE(K053247_word_w) - AM_RANGE(0x211000, 0x21ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x240000, 0x240007) AM_WRITE(K053246_word_w) - AM_RANGE(0x244010, 0x24401f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x24c000, 0x24ffff) AM_WRITE(MWA16_RAM) // K053250_0_ram_w - AM_RANGE(0x250000, 0x25000f) AM_WRITE(MWA16_RAM) // K053250_0_w - AM_RANGE(0x254000, 0x25401f) AM_WRITE(K054338_word_w) - AM_RANGE(0x258000, 0x2580ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x25c000, 0x25c03f) AM_WRITE(K055550_word_w) - AM_RANGE(0x260000, 0x26001f) AM_WRITE(K053252_word_w) - AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w) - AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x268000, 0x26801f) AM_WRITE(MWA16_RAM) - AM_RANGE(0x26C000, 0x26C007) AM_WRITE(K056832_b_word_w) - AM_RANGE(0x270000, 0x27003f) AM_WRITE(K056832_word_w) - AM_RANGE(0x27C000, 0x27C001) AM_WRITE(mmeeprom_w) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x302000, 0x303fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror write(essential) - AM_RANGE(0x304000, 0x3041ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x330000, 0x331fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -// Martial Champion specific interfaces -static READ16_HANDLER( K053247_martchmp_word_r ) -{ - if (offset & 0x0018) - return spriteram16[offset]; - else - { - offset = (offset & 0x0007) | ((offset & 0x1fe0) >> 2); - return K053247_word_r(offset,mem_mask); - } -} - -static WRITE16_HANDLER( K053247_martchmp_word_w ) -{ - if (offset & 0x0018) - { - COMBINE_DATA(spriteram16+offset); - } - else - { - offset = (offset & 0x0007) | ((offset & 0x1fe0) >> 2); - - K053247_word_w(offset,data,mem_mask); - } -} - -static READ16_HANDLER( mccontrol_r ) -{ - return mw_irq_control<<8; -} - -static WRITE16_HANDLER( mccontrol_w ) -{ - if (ACCESSING_MSB) - { - mw_irq_control = data>>8; - // bit 0 = watchdog - // bit 1 = IRQ enable - // bit 2 = OBJCHA - - K053246_set_OBJCHA_line((data&0x04) ? ASSERT_LINE : CLEAR_LINE); - -// if (data & 0xf8) logerror("Unk write %x to mccontrol\n", data); - - } - -// else logerror("write %x to LSB of mccontrol\n", data); - -} - -/* Martial Champion */ -static ADDRESS_MAP_START( mcreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) // main program - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) // work RAM - AM_RANGE(0x300000, 0x3fffff) AM_READ(MRA16_ROM) // data ROM - AM_RANGE(0x402000, 0x40200f) AM_READ(K055673_rom_word_r) // sprite ROM readback - AM_RANGE(0x412000, 0x412001) AM_READ(mccontrol_r) - AM_RANGE(0x414000, 0x414001) AM_READ(player1_r) - AM_RANGE(0x414002, 0x414003) AM_READ(player2_r) - AM_RANGE(0x416000, 0x416001) AM_READ(mmcoins_r) // coin - AM_RANGE(0x416002, 0x416003) AM_READ(mweeprom_r) // eeprom read - AM_RANGE(0x418014, 0x418015) AM_READ(sound_status_r) // z80 status - AM_RANGE(0x418000, 0x41801f) AM_READ(MRA16_RAM) // sound regs fall through - AM_RANGE(0x480000, 0x483fff) AM_READ(K053247_martchmp_word_r)// sprite RAM - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) // palette RAM - AM_RANGE(0x680000, 0x681fff) AM_READ(K056832_ram_word_r) // tilemap RAM - AM_RANGE(0x682000, 0x683fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x700000, 0x703fff) AM_READ(K056832_mw_rom_word_r) // tile ROM readback -#if MW_DEBUG - AM_RANGE(0x400000, 0x4000ff) AM_READ(K055555_word_r) - AM_RANGE(0x402010, 0x40201f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x404000, 0x404007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x40a000, 0x40a01f) AM_READ(K054338_word_r) - AM_RANGE(0x40c000, 0x40c03f) AM_READ(K056832_word_r) - AM_RANGE(0x41c000, 0x41c01f) AM_READ(K053252_word_r) - AM_RANGE(0x41e000, 0x41e007) AM_READ(K056832_b_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcwritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x400000, 0x4000ff) AM_WRITE(K055555_word_w) // PCU2 - AM_RANGE(0x402010, 0x40201f) AM_WRITE(K053247_reg_word_w) // OBJSET2 - AM_RANGE(0x404000, 0x404007) AM_WRITE(K053246_word_w) // OBJSET1 - AM_RANGE(0x40a000, 0x40a01f) AM_WRITE(K054338_word_w) // CLTC - AM_RANGE(0x40c000, 0x40c03f) AM_WRITE(K056832_word_w) // VACSET - AM_RANGE(0x40e000, 0x40e03f) AM_WRITE(K053990_martchmp_word_w) // protection - AM_RANGE(0x410000, 0x410001) AM_WRITE(mweeprom_w) - AM_RANGE(0x412000, 0x412001) AM_WRITE(mccontrol_w) - AM_RANGE(0x41c000, 0x41c01f) AM_WRITE(K053252_word_w) // CCU - AM_RANGE(0x41e000, 0x41e007) AM_WRITE(K056832_b_word_w) // VSCCS - AM_RANGE(0x41800c, 0x41800d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x41800e, 0x41800f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x418000, 0x41801f) AM_WRITE(MWA16_RAM) // sound regs fall through - AM_RANGE(0x41a000, 0x41a001) AM_WRITE(sound_irq_w) - AM_RANGE(0x480000, 0x483fff) AM_WRITE(K053247_martchmp_word_w) AM_BASE(&spriteram16) - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) - AM_RANGE(0x680000, 0x681fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x682000, 0x683fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror write(essential) -ADDRESS_MAP_END - -/* Ultimate Battler Dadandarn */ -static ADDRESS_MAP_START( dddreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) // main program and data ROM - AM_RANGE(0x400000, 0x40ffff) AM_READ(K053247_scattered_word_r) - AM_RANGE(0x410000, 0x411fff) AM_READ(K056832_ram_word_r) // tilemap RAM - AM_RANGE(0x412000, 0x413fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x420000, 0x421fff) AM_READ(MRA16_RAM) - AM_RANGE(0x440000, 0x443fff) AM_READ(K056832_mw_rom_word_r) - AM_RANGE(0x450000, 0x45000f) AM_READ(K055673_rom_word_r) - AM_RANGE(0x470000, 0x470fff) AM_READ(MRA16_RAM) - AM_RANGE(0x48a014, 0x48a015) AM_READ(sound_status_msb_r) - AM_RANGE(0x48a000, 0x48a01f) AM_READ(MRA16_RAM) // sound regs fall-through - AM_RANGE(0x48e000, 0x48e001) AM_READ(dddcoins_r) // bit 3 (0x8) is test switch - AM_RANGE(0x48e020, 0x48e021) AM_READ(dddeeprom_r) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x680000, 0x68003f) AM_READ(K055550_word_r) - AM_RANGE(0x800000, 0x87ffff) AM_READ(ddd_053936_tilerom_0_r) // 256k tilemap readback - AM_RANGE(0xa00000, 0xa7ffff) AM_READ(ddd_053936_tilerom_1_r) // 128k tilemap readback - AM_RANGE(0xc00000, 0xdfffff) AM_READ(ddd_053936_tilerom_2_r) // tile character readback -#if MW_DEBUG - AM_RANGE(0x430000, 0x430007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x450010, 0x45001f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x480000, 0x48003f) AM_READ(K056832_word_r) - AM_RANGE(0x482000, 0x482007) AM_READ(K056832_b_word_r) - AM_RANGE(0x486000, 0x48601f) AM_READ(K053252_word_r) - AM_RANGE(0x488000, 0x4880ff) AM_READ(K055555_word_r) - AM_RANGE(0x48c000, 0x48c01f) AM_READ(K054338_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dddwritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(K053247_scattered_word_w) AM_BASE(&spriteram16) - AM_RANGE(0x410000, 0x411fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x412000, 0x413fff) AM_WRITE(K056832_ram_word_w) // tile RAM mirror write(essential) - AM_RANGE(0x420000, 0x421fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) - AM_RANGE(0x430000, 0x430007) AM_WRITE(K053246_word_w) - AM_RANGE(0x450010, 0x45001f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x460000, 0x46001f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0x470000, 0x470fff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) - AM_RANGE(0x480000, 0x48003f) AM_WRITE(K056832_word_w) // VACSET - AM_RANGE(0x482000, 0x482007) AM_WRITE(K056832_b_word_w) // VSCCS - AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w) - AM_RANGE(0x486000, 0x48601f) AM_WRITE(K053252_word_w) - AM_RANGE(0x488000, 0x4880ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w) - AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w) - AM_RANGE(0x48a000, 0x48a01f) AM_WRITE(MWA16_RAM) // sound regs fall-through - AM_RANGE(0x48c000, 0x48c01f) AM_WRITE(K054338_word_w) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x680000, 0x68003f) AM_WRITE(K055550_word_w) - AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w) - AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w) - AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP) // watchdog -ADDRESS_MAP_END - -/* Gaiapolis */ -// a00000 = the 128k tilemap -// 800000 = the 256k tilemap -// c00000 = 936 tiles (7fffff window) -static ADDRESS_MAP_START( gaiareadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x2fffff) AM_READ(MRA16_ROM) // main program - AM_RANGE(0x400000, 0x40ffff) AM_READ(K053247_scattered_word_r) - AM_RANGE(0x410000, 0x411fff) AM_READ(K056832_ram_word_r) // tilemap RAM - AM_RANGE(0x412000, 0x413fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential) - AM_RANGE(0x420000, 0x421fff) AM_READ(MRA16_RAM) - AM_RANGE(0x440000, 0x441fff) AM_READ(K056832_mw_rom_word_r) - AM_RANGE(0x450000, 0x45000f) AM_READ(K055673_rom_word_r) - AM_RANGE(0x470000, 0x470fff) AM_READ(MRA16_RAM) - AM_RANGE(0x48a014, 0x48a015) AM_READ(sound_status_msb_r) - AM_RANGE(0x48a000, 0x48a01f) AM_READ(MRA16_RAM) // sound regs fall-through - AM_RANGE(0x48e000, 0x48e001) AM_READ(dddcoins_r) // bit 3 (0x8) is test switch - AM_RANGE(0x48e020, 0x48e021) AM_READ(dddeeprom_r) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x660000, 0x6600ff) AM_READ(K054000_lsb_r) - AM_RANGE(0x800000, 0x87ffff) AM_READ(gai_053936_tilerom_0_r) // 256k tilemap readback - AM_RANGE(0xa00000, 0xa7ffff) AM_READ(ddd_053936_tilerom_1_r) // 128k tilemap readback - AM_RANGE(0xc00000, 0xdfffff) AM_READ(gai_053936_tilerom_2_r) // tile character readback -#if MW_DEBUG - AM_RANGE(0x430000, 0x430007) AM_READ(K053246_reg_word_r) - AM_RANGE(0x450010, 0x45001f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x480000, 0x48003f) AM_READ(K056832_word_r) - AM_RANGE(0x482000, 0x482007) AM_READ(K056832_b_word_r) - AM_RANGE(0x486000, 0x48601f) AM_READ(K053252_word_r) - AM_RANGE(0x488000, 0x4880ff) AM_READ(K055555_word_r) - AM_RANGE(0x48c000, 0x48c01f) AM_READ(K054338_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gaiawritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(K053247_scattered_word_w) AM_BASE(&spriteram16) - AM_RANGE(0x410000, 0x411fff) AM_WRITE(K056832_ram_word_w) - AM_RANGE(0x412000, 0x413fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror write(essential) - AM_RANGE(0x412000, 0x4120ff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x420000, 0x421fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16) - AM_RANGE(0x430000, 0x430007) AM_WRITE(K053246_word_w) - AM_RANGE(0x450010, 0x45001f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x460000, 0x46001f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0x470000, 0x470fff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) - AM_RANGE(0x480000, 0x48003f) AM_WRITE(K056832_word_w) // VACSET - AM_RANGE(0x482000, 0x482007) AM_WRITE(K056832_b_word_w) // VSCCS - AM_RANGE(0x484000, 0x484003) AM_WRITE(ddd_053936_clip_w) - AM_RANGE(0x486000, 0x48601f) AM_WRITE(K053252_word_w) - AM_RANGE(0x488000, 0x4880ff) AM_WRITE(K055555_word_w) - AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w) - AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w) - AM_RANGE(0x48a000, 0x48a01f) AM_WRITE(MWA16_RAM) // sound regs fall-through - AM_RANGE(0x48c000, 0x48c01f) AM_WRITE(K054338_word_w) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&gx_workram) - AM_RANGE(0x660000, 0x6600ff) AM_WRITE(K054000_lsb_w) - AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w) - AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w) - AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP) // watchdog -ADDRESS_MAP_END - -/**********************************************************************************/ - -static int cur_sound_region; - -static void reset_sound_region(void) -{ - memory_set_bankptr(2, memory_region(REGION_CPU2) + 0x10000 + cur_sound_region*0x4000); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - cur_sound_region = (data & 0xf); - reset_sound_region(); -} - -/* sound memory maps - - there are 2 sound boards: the martial champion single-'539 version - and the dual-'539 version used by run and gun, violent storm, monster maulers, - gaiapolous, metamorphic force, and mystic warriors. Their memory maps are - quite similar to xexex/gijoe/asterix's sound. - */ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_READ(K054539_0_r) - AM_RANGE(0xe230, 0xe3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe400, 0xe62f) AM_READ(K054539_1_r) - AM_RANGE(0xe630, 0xe7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r) - AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_NOP) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_WRITE(K054539_0_w) - AM_RANGE(0xe230, 0xe3ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe400, 0xe62f) AM_WRITE(K054539_1_w) - AM_RANGE(0xe630, 0xe7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w) - AM_RANGE(0xfff0, 0xfff3) AM_WRITE(MWA8_NOP) // unknown write -ADDRESS_MAP_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - -/**********************************************************************************/ - -static const gfx_layout bglayout_4bpp = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 16*64 -}; - -static const gfx_layout bglayout_8bpp = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 16*128 -}; - -static const gfx_decode gfxdecodeinfo_gaiapols[] = -{ - { REGION_GFX3, 0, &bglayout_4bpp, 0x0000, 128 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo_dadandrn[] = -{ - { REGION_GFX3, 0, &bglayout_8bpp, 0x0000, 8 }, - { -1 } /* end of array */ -}; - -static MACHINE_START( mystwarr ) -{ - /* set default bankswitch */ - cur_sound_region = 2; - reset_sound_region(); - - mw_irq_control = 0; - - state_save_register_global(mw_irq_control); - state_save_register_global(cur_sound_region); - state_save_register_func_postload(reset_sound_region); - - return 0; -} - -static MACHINE_RESET(mystwarr) -{ - int i; - - // soften chorus(chip 0 channel 0-3), boost voice(chip 0 channel 4-7) - for (i=0; i<=3; i++) - { - K054539_set_gain(0, i, 0.8); - K054539_set_gain(0, i+4, 2.0); - } - - // soften percussions(chip 1 channel 0-7) - for (i=0; i<=7; i++) K054539_set_gain(1, i, 0.5); -} - -static MACHINE_RESET(dadandrn) -{ - int i; - - // boost voice(chip 0 channel 4-7) - for (i=4; i<=7; i++) K054539_set_gain(0, i, 2.0); -} - -static MACHINE_RESET(viostorm) -{ - int i; - - // boost voice(chip 0 channel 4-7) - for (i=4; i<=7; i++) K054539_set_gain(0, i, 2.0); -} - -static MACHINE_RESET(metamrph) -{ - int i; - - // boost voice(chip 0 channel 4-7) and soften other channels - for (i=0; i<=3; i++) - { - K054539_set_gain(0, i, 0.8); - K054539_set_gain(0, i+4, 1.8); - K054539_set_gain(1, i, 0.8); - K054539_set_gain(1, i+4, 0.8); - } -} - -static MACHINE_RESET(martchmp) -{ - int i; - - K054539_init_flags(0, K054539_REVERSE_STEREO); - - // boost voice(chip 0 channel 4-7) - for (i=4; i<=7; i++) K054539_set_gain(0, i, 1.4); -} - -static MACHINE_RESET(gaiapols) -{ - int i; - - // boost voice(chip 0 channel 5-7) - for (i=5; i<=7; i++) K054539_set_gain(0, i, 2.0); -} - -static MACHINE_DRIVER_START( mystwarr ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 16000000) /* 16 MHz (confirmed) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(mystwarr_interrupt, 3) - - MDRV_CPU_ADD_TAG("sound", Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_PERIODIC_INT(nmi_line_pulse, TIME_IN_HZ(480)) - - MDRV_INTERLEAVE(32); - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(600)) - - MDRV_NVRAM_HANDLER(mystwarr) - MDRV_MACHINE_START(mystwarr) - MDRV_MACHINE_RESET(mystwarr) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(mystwarr) - MDRV_VIDEO_UPDATE(mystwarr) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "right", 1.0) /* stereo channels are inverted */ - MDRV_SOUND_ROUTE(1, "left", 1.0) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "right", 1.0) /* stereo channels are inverted */ - MDRV_SOUND_ROUTE(1, "left", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( viostorm ) - MDRV_IMPORT_FROM(mystwarr) - - MDRV_MACHINE_RESET(viostorm) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(vsreadmem,vswritemem) - MDRV_CPU_VBLANK_INT(metamrph_interrupt, 40) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(900)) - - /* video hardware */ - MDRV_VIDEO_START(viostorm) - MDRV_VIDEO_UPDATE(metamrph) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( metamrph ) - MDRV_IMPORT_FROM(mystwarr) - - MDRV_MACHINE_RESET(metamrph) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mmreadmem,mmwritemem) - MDRV_CPU_VBLANK_INT(metamrph_interrupt, 40) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(900)) - - /* video hardware */ - MDRV_VIDEO_START(metamrph) - MDRV_VIDEO_UPDATE(metamrph) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(24, 24+288-1, 17, 17+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( dadandrn ) - MDRV_IMPORT_FROM(mystwarr) - - MDRV_MACHINE_RESET(dadandrn) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dddreadmem, dddwritemem) - MDRV_CPU_VBLANK_INT(ddd_interrupt, 1) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(600)) - - MDRV_GFXDECODE(gfxdecodeinfo_dadandrn) - - /* video hardware */ - MDRV_VIDEO_START(dadandrn) - MDRV_VIDEO_UPDATE(dadandrn) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(24, 24+288-1, 17, 17+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( gaiapols ) - MDRV_IMPORT_FROM(mystwarr) - - MDRV_MACHINE_RESET(gaiapols) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gaiareadmem,gaiawritemem) - MDRV_CPU_VBLANK_INT(ddd_interrupt, 1) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(600)) - - MDRV_GFXDECODE(gfxdecodeinfo_gaiapols) - - MDRV_NVRAM_HANDLER(gaiapols) - - /* video hardware */ - MDRV_VIDEO_START(gaiapols) - MDRV_VIDEO_UPDATE(dadandrn) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+376-1, 16, 16+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( martchmp ) - MDRV_IMPORT_FROM(mystwarr) - - MDRV_MACHINE_RESET(martchmp) - - /* basic machine hardware */ - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mcreadmem,mcwritemem) - MDRV_CPU_VBLANK_INT(mchamp_interrupt, 2) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - - MDRV_VIDEO_START(martchmp) - MDRV_VIDEO_UPDATE(martchmp) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1) -MACHINE_DRIVER_END - -/**********************************************************************************/ - -INPUT_PORTS_START( mystwarr ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* game loops if this is set */ - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, "Coin Mechanism") - PORT_DIPSETTING( 0x20, "Common") - PORT_DIPSETTING( 0x00, "Independant") - PORT_DIPNAME( 0x40, 0x40, "Number of Players") - PORT_DIPSETTING( 0x00, "4") - PORT_DIPSETTING( 0x40, "2") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( metamrph ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, "Coin Mechanism") - PORT_DIPSETTING( 0x20, "Common") - PORT_DIPSETTING( 0x00, "Independant") - PORT_DIPNAME( 0x40, 0x40, "Number of Players") - PORT_DIPSETTING( 0x00, "4") - PORT_DIPSETTING( 0x40, "2") - PORT_DIPNAME( 0x80, 0x80, "Continuous Energy Increment") - PORT_DIPSETTING( 0x80, DEF_STR( No )) - PORT_DIPSETTING( 0x00, DEF_STR( Yes )) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( viostorm ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Coin Mechanism") - PORT_DIPSETTING( 0x40, "Common") - PORT_DIPSETTING( 0x00, "Independant") - PORT_DIPNAME( 0x80, 0x80, "Number of Players") - PORT_DIPSETTING( 0x00, "3") - PORT_DIPSETTING( 0x80, "2") - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( dadandrn ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( martchmp ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* game loops if this is set */ - PORT_DIPNAME( 0x10, 0x00, "Sound Output") - PORT_DIPSETTING( 0x10, DEF_STR( Mono )) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo )) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -/**********************************************************************************/ - -#define ROM_LOAD64_WORD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(6)) - -#define ROM_LOADTILE_WORD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(3) | ROM_REVERSE) -#define ROM_LOADTILE_BYTE(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPBYTE | ROM_SKIP(4)) - -ROM_START( mystwarr ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "128eaa01.20f", 0x000000, 0x40000, CRC(508f249c) SHA1(d27a272ec63e4a39379c4a23fe15c4fb45674cb4) ) - ROM_LOAD16_BYTE( "128eaa02.20g", 0x000001, 0x40000, CRC(f8ffa352) SHA1(678c59d5fbb85d808e842947621b7f13669d35b5) ) - ROM_LOAD16_BYTE( "128a03.19f", 0x100000, 0x80000, CRC(e98094f3) SHA1(a3f9b804ff487f792a00ce85a383868ab0b1b5d8) ) - ROM_LOAD16_BYTE( "128a04.19g", 0x100001, 0x80000, CRC(88c6a3e4) SHA1(7c2361f716a2320730a3dd6723a271e349ad61c3) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("128a05.6b", 0x000000, 0x020000, CRC(0e5194e0) SHA1(83356158d561f1b8e21f6ae5936b61da834a0545) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "128a08.1h", 0x000000, 1*1024*1024, CRC(63d6cfa0) SHA1(324bf25cf79aa030d2dcc94a53c1984eb8abec3a) ) - ROM_LOADTILE_WORD( "128a09.1k", 0x000002, 1*1024*1024, CRC(573a7725) SHA1(f2fef32053ed2a65c6c3ddd3e1657a866aa80b3e) ) - ROM_LOADTILE_BYTE( "128a10.3h", 0x000004, 512*1024, CRC(558e545a) SHA1(cac53e545f3f8980d431443f2c3b8b95e6077d1c) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "128a16.22k", 0x000000, 1*1024*1024, CRC(459b6407) SHA1(e4dace4912f9558bee75a8e95ee2637f5e950b47) ) - ROM_LOAD64_WORD( "128a15.20k", 0x000002, 1*1024*1024, CRC(6bbfedf4) SHA1(0b3acb2b34c722ddc60c0e64e12baa1f225e4fbb) ) - ROM_LOAD64_WORD( "128a14.19k", 0x000004, 1*1024*1024, CRC(f7bd89dd) SHA1(c9b2ebd5a49840f8b260d53c25cfcc238d21c75c) ) - ROM_LOAD64_WORD( "128a13.17k", 0x000006, 1*1024*1024, CRC(e89b66a2) SHA1(fce6e56d1759ffe987766426ecb28e9015a500b7) ) - ROM_LOAD16_BYTE( "128a12.12k", 0x400000, 512*1024, CRC(63de93e2) SHA1(c9a50e7beff1cbbc5d5820664adbd54d52782c54) ) - ROM_LOAD16_BYTE( "128a11.10k", 0x400001, 512*1024, CRC(4eac941a) SHA1(c0a33f4b975ebee217fd335001839992f4c0bdc8) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00 ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "128a06.2d", 0x000000, 2*1024*1024, CRC(88ed598c) SHA1(3c123e26b3a12541df77b368bc0e0d486f5622b6) ) - ROM_LOAD( "128a07.1d", 0x200000, 2*1024*1024, CRC(db79a66e) SHA1(b7e118ed26bac557038e8ae6cb77f23f3da5646f) ) -ROM_END - -ROM_START( mystwaru ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "128uaa01.20f", 0x000000, 0x40000, CRC(3a89aafd) SHA1(6d2ebb7e04d262545276c8dbe1c63405e5de4901) ) - ROM_LOAD16_BYTE( "128uaa02.20g", 0x000001, 0x40000, CRC(de07410f) SHA1(4583cb4402b3b046f185fa6d5a1cfaa8fe0d858c) ) - ROM_LOAD16_BYTE( "128a03.19f", 0x100000, 0x80000, CRC(e98094f3) SHA1(a3f9b804ff487f792a00ce85a383868ab0b1b5d8) ) - ROM_LOAD16_BYTE( "128a04.19g", 0x100001, 0x80000, CRC(88c6a3e4) SHA1(7c2361f716a2320730a3dd6723a271e349ad61c3) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("128a05.6b", 0x000000, 0x020000, CRC(0e5194e0) SHA1(83356158d561f1b8e21f6ae5936b61da834a0545) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "128a08.1h", 0x000000, 1*1024*1024, CRC(63d6cfa0) SHA1(324bf25cf79aa030d2dcc94a53c1984eb8abec3a) ) - ROM_LOADTILE_WORD( "128a09.1k", 0x000002, 1*1024*1024, CRC(573a7725) SHA1(f2fef32053ed2a65c6c3ddd3e1657a866aa80b3e) ) - ROM_LOADTILE_BYTE( "128a10.3h", 0x000004, 512*1024, CRC(558e545a) SHA1(cac53e545f3f8980d431443f2c3b8b95e6077d1c) ) - - /* sprites */ - ROM_REGION( 0x500000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "128a16.22k", 0x000000, 1*1024*1024, CRC(459b6407) SHA1(e4dace4912f9558bee75a8e95ee2637f5e950b47) ) - ROM_LOAD64_WORD( "128a15.20k", 0x000002, 1*1024*1024, CRC(6bbfedf4) SHA1(0b3acb2b34c722ddc60c0e64e12baa1f225e4fbb) ) - ROM_LOAD64_WORD( "128a14.19k", 0x000004, 1*1024*1024, CRC(f7bd89dd) SHA1(c9b2ebd5a49840f8b260d53c25cfcc238d21c75c) ) - ROM_LOAD64_WORD( "128a13.17k", 0x000006, 1*1024*1024, CRC(e89b66a2) SHA1(fce6e56d1759ffe987766426ecb28e9015a500b7) ) - ROM_LOAD16_BYTE( "128a12.12k", 0x400000, 512*1024, CRC(63de93e2) SHA1(c9a50e7beff1cbbc5d5820664adbd54d52782c54) ) - ROM_LOAD16_BYTE( "128a11.10k", 0x400001, 512*1024, CRC(4eac941a) SHA1(c0a33f4b975ebee217fd335001839992f4c0bdc8) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00 ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "128a06.2d", 0x000000, 2*1024*1024, CRC(88ed598c) SHA1(3c123e26b3a12541df77b368bc0e0d486f5622b6) ) - ROM_LOAD( "128a07.1d", 0x200000, 2*1024*1024, CRC(db79a66e) SHA1(b7e118ed26bac557038e8ae6cb77f23f3da5646f) ) -ROM_END - -ROM_START( viostorm ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "168eab01.15h", 0x000001, 0x80000, CRC(4eee6a8e) SHA1(5c83ed2011aa77f590abca4c469fdb565f35dde5) ) - ROM_LOAD16_BYTE( "168eab02.15f", 0x000000, 0x80000, CRC(8dd8aa4c) SHA1(e7937fe1272b635807ffff08a45a0338d48c376c) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("168a05.7c", 0x000000, 0x020000, CRC(507fb3eb) SHA1(a4f676e3caaafe86918c76ded08d0c202969adf6) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00) - ROM_LOADTILE_WORD( "168a09.1h", 0x000000, 2*1024*1024, CRC(1b34a881) SHA1(5de20f7ee7f90d4f6dea349ca5000bfcf74253b1) ) - ROM_LOADTILE_WORD( "168a08.1k", 0x000002, 2*1024*1024, CRC(db0ce743) SHA1(dfe24a1e3e72da188a92668928e79afd6c5d22ee) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00) - ROM_LOAD64_WORD( "168a10.22k", 0x000000, 2*1024*1024, CRC(bd2bbdea) SHA1(54faf2ded16e66d675bbbec4ebd42b4708edfaef) ) - ROM_LOAD64_WORD( "168a11.19k", 0x000002, 2*1024*1024, CRC(7a57c9e7) SHA1(8763c310f7b515aef52d4e007bc949e8803690f4) ) - ROM_LOAD64_WORD( "168a12.20k", 0x000004, 2*1024*1024, CRC(b6b1c4ef) SHA1(064ab4db884c8f98ab9e631b7034996d4b92ab7b) ) - ROM_LOAD64_WORD( "168a13.17k", 0x000006, 2*1024*1024, CRC(cdec3650) SHA1(949bc06bb38a2d5315ee4f6db19e043655b90e6e) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "168a06.1c", 0x000000, 2*1024*1024, CRC(25404fd7) SHA1(282cf523728b38d0bf14d765dd7257aa1fb2af39) ) - ROM_LOAD( "168a07.1e", 0x200000, 2*1024*1024, CRC(fdbbf8cc) SHA1(a8adf72a25fe2b9c4c338350d02c92deb5f8c8e9) ) -ROM_END - -ROM_START( viostrmu ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "168uab01.15h", 0x000001, 0x80000, CRC(2d6a9fa3) SHA1(a2f82702896eddb11cd2b2f9ed5fff730f6baf0f) ) - ROM_LOAD16_BYTE( "168uab02.15f", 0x000000, 0x80000, CRC(0e75f7cc) SHA1(57af86703dc728ba83ca12889246c93b9f8d4576) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("168a05.7c", 0x000000, 0x020000, CRC(507fb3eb) SHA1(a4f676e3caaafe86918c76ded08d0c202969adf6) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00) - ROM_LOADTILE_WORD( "168a09.1h", 0x000000, 2*1024*1024, CRC(1b34a881) SHA1(5de20f7ee7f90d4f6dea349ca5000bfcf74253b1) ) - ROM_LOADTILE_WORD( "168a08.1k", 0x000002, 2*1024*1024, CRC(db0ce743) SHA1(dfe24a1e3e72da188a92668928e79afd6c5d22ee) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00) - ROM_LOAD64_WORD( "168a10.22k", 0x000000, 2*1024*1024, CRC(bd2bbdea) SHA1(54faf2ded16e66d675bbbec4ebd42b4708edfaef) ) - ROM_LOAD64_WORD( "168a11.19k", 0x000002, 2*1024*1024, CRC(7a57c9e7) SHA1(8763c310f7b515aef52d4e007bc949e8803690f4) ) - ROM_LOAD64_WORD( "168a12.20k", 0x000004, 2*1024*1024, CRC(b6b1c4ef) SHA1(064ab4db884c8f98ab9e631b7034996d4b92ab7b) ) - ROM_LOAD64_WORD( "168a13.17k", 0x000006, 2*1024*1024, CRC(cdec3650) SHA1(949bc06bb38a2d5315ee4f6db19e043655b90e6e) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "168a06.1c", 0x000000, 2*1024*1024, CRC(25404fd7) SHA1(282cf523728b38d0bf14d765dd7257aa1fb2af39) ) - ROM_LOAD( "168a07.1e", 0x200000, 2*1024*1024, CRC(fdbbf8cc) SHA1(a8adf72a25fe2b9c4c338350d02c92deb5f8c8e9) ) -ROM_END - -ROM_START( viostrma ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "168aac01.15h", 0x000001, 0x80000, CRC(3620635c) SHA1(d296ba707a131bd78b401608d6b165b214f4fe61) ) - ROM_LOAD16_BYTE( "168aac02.15f", 0x000000, 0x80000, CRC(db679aec) SHA1(233f3ab54125db1035cb0afadb06312ef7bd3e09) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("168a05.7c", 0x000000, 0x020000, CRC(507fb3eb) SHA1(a4f676e3caaafe86918c76ded08d0c202969adf6) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "168a09.1h", 0x000000, 2*1024*1024, CRC(1b34a881) SHA1(5de20f7ee7f90d4f6dea349ca5000bfcf74253b1) ) - ROM_LOADTILE_WORD( "168a08.1k", 0x000002, 2*1024*1024, CRC(db0ce743) SHA1(dfe24a1e3e72da188a92668928e79afd6c5d22ee) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "168a10.22k", 0x000000, 2*1024*1024, CRC(bd2bbdea) SHA1(54faf2ded16e66d675bbbec4ebd42b4708edfaef) ) - ROM_LOAD64_WORD( "168a11.19k", 0x000002, 2*1024*1024, CRC(7a57c9e7) SHA1(8763c310f7b515aef52d4e007bc949e8803690f4) ) - ROM_LOAD64_WORD( "168a12.20k", 0x000004, 2*1024*1024, CRC(b6b1c4ef) SHA1(064ab4db884c8f98ab9e631b7034996d4b92ab7b) ) - ROM_LOAD64_WORD( "168a13.17k", 0x000006, 2*1024*1024, CRC(cdec3650) SHA1(949bc06bb38a2d5315ee4f6db19e043655b90e6e) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00 ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "168a06.1c", 0x000000, 2*1024*1024, CRC(25404fd7) SHA1(282cf523728b38d0bf14d765dd7257aa1fb2af39) ) - ROM_LOAD( "168a07.1e", 0x200000, 2*1024*1024, CRC(fdbbf8cc) SHA1(a8adf72a25fe2b9c4c338350d02c92deb5f8c8e9) ) -ROM_END - -ROM_START( viostrmj ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "168jac01.b01", 0x000001, 0x80000, CRC(f8be1225) SHA1(8c38ca218c0005c60a48cd3a43b5460b63a851e7) ) - ROM_LOAD16_BYTE( "168jac02.b02", 0x000000, 0x80000, CRC(f42fd1e5) SHA1(3b17c3039d800487f6117595050e7896a413db04) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("168a05.7c", 0x000000, 0x020000, CRC(507fb3eb) SHA1(a4f676e3caaafe86918c76ded08d0c202969adf6) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "168a09.1h", 0x000000, 2*1024*1024, CRC(1b34a881) SHA1(5de20f7ee7f90d4f6dea349ca5000bfcf74253b1) ) - ROM_LOADTILE_WORD( "168a08.1k", 0x000002, 2*1024*1024, CRC(db0ce743) SHA1(dfe24a1e3e72da188a92668928e79afd6c5d22ee) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "168a10.22k", 0x000000, 2*1024*1024, CRC(bd2bbdea) SHA1(54faf2ded16e66d675bbbec4ebd42b4708edfaef) ) - ROM_LOAD64_WORD( "168a11.19k", 0x000002, 2*1024*1024, CRC(7a57c9e7) SHA1(8763c310f7b515aef52d4e007bc949e8803690f4) ) - ROM_LOAD64_WORD( "168a12.20k", 0x000004, 2*1024*1024, CRC(b6b1c4ef) SHA1(064ab4db884c8f98ab9e631b7034996d4b92ab7b) ) - ROM_LOAD64_WORD( "168a13.17k", 0x000006, 2*1024*1024, CRC(cdec3650) SHA1(949bc06bb38a2d5315ee4f6db19e043655b90e6e) ) - - /* road generator */ - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_ERASE00 ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "168a06.1c", 0x000000, 2*1024*1024, CRC(25404fd7) SHA1(282cf523728b38d0bf14d765dd7257aa1fb2af39) ) - ROM_LOAD( "168a07.1e", 0x200000, 2*1024*1024, CRC(fdbbf8cc) SHA1(a8adf72a25fe2b9c4c338350d02c92deb5f8c8e9) ) -ROM_END - -ROM_START( metamrph ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "224eaa01.15h", 0x000001, 0x40000, CRC(30962c2b) SHA1(ae1b2f92881bb0f386b6a413c1da507e73c29382) ) - ROM_LOAD16_BYTE( "224eaa02.15f", 0x000000, 0x40000, CRC(e314330a) SHA1(728a18d604eca58409551e52b7dc18e2d807700a) ) - ROM_LOAD16_BYTE( "224a03", 0x100001, 0x80000, CRC(a5bedb01) SHA1(5e7a0b93af654ba6a87be8d449c7080a0f0e2a43) ) - ROM_LOAD16_BYTE( "224a04", 0x100000, 0x80000, CRC(ada53ba4) SHA1(f77bf854dff1f8f718579fe6d3730066708396e2) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("224a05", 0x000000, 0x040000, CRC(4b4c985c) SHA1(c83cce05355023be9cd55b4aa595c61f8236269c) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "224a09", 0x000000, 1*1024*1024, CRC(1931afce) SHA1(78838c0fd2a9c80f130db1fcf6c88b14f7363639) ) - ROM_LOADTILE_WORD( "224a08", 0x000002, 1*1024*1024, CRC(dc94d53a) SHA1(91e16371a335f078a81c06a1045759653080aba0) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "224a10", 0x000000, 2*1024*1024, CRC(161287f0) SHA1(a13b197a98fa1cebb11fb87b54e277c72852c4ee) ) - ROM_LOAD64_WORD( "224a11", 0x000002, 2*1024*1024, CRC(df5960e1) SHA1(ee7794dd119f5f2c52e7ba589d78067a89ff3cab) ) - ROM_LOAD64_WORD( "224a12", 0x000004, 2*1024*1024, CRC(ca72a4b3) SHA1(a09deb6d7cb8be4edaeb78e0e676ea2d6055e9e0) ) - ROM_LOAD64_WORD( "224a13", 0x000006, 2*1024*1024, CRC(86b58feb) SHA1(5a43746e2cd3c7aca21496c092aef83e64b3ab2c) ) - - /* K053250 linescroll/zoom thingy */ - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_ERASE00 ) // NOTE: region must be 2xROM size for unpacking - ROM_LOAD( "224a14", 0x000000, 0x40000, CRC(3c79b404) SHA1(7c6bb4cbf050f314ea0cd3e8bc6e1947d0573084) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "224a06", 0x000000, 2*1024*1024, CRC(972f6abe) SHA1(30907495fc49fe3424c092b074c1dc137aa14306) ) - ROM_LOAD( "224a07", 0x200000, 1*1024*1024, CRC(61b2f97a) SHA1(34bf835d6361c7809d40fa20fd238c9e2a84b101) ) -ROM_END - -ROM_START( metamrpu ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "224uaa01.15h", 0x000001, 0x40000, CRC(e1d9b516) SHA1(387ed5ce87af376c0568e39187330a4585dc499a) ) - ROM_LOAD16_BYTE( "224uaa02.15f", 0x000000, 0x40000, CRC(289c926b) SHA1(5a5129fd85afc4fee97155e28bff89d3bb497b59) ) - ROM_LOAD16_BYTE( "224a03", 0x100001, 0x80000, CRC(a5bedb01) SHA1(5e7a0b93af654ba6a87be8d449c7080a0f0e2a43) ) - ROM_LOAD16_BYTE( "224a04", 0x100000, 0x80000, CRC(ada53ba4) SHA1(f77bf854dff1f8f718579fe6d3730066708396e2) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("224a05", 0x000000, 0x040000, CRC(4b4c985c) SHA1(c83cce05355023be9cd55b4aa595c61f8236269c) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "224a09", 0x000000, 1*1024*1024, CRC(1931afce) SHA1(78838c0fd2a9c80f130db1fcf6c88b14f7363639) ) - ROM_LOADTILE_WORD( "224a08", 0x000002, 1*1024*1024, CRC(dc94d53a) SHA1(91e16371a335f078a81c06a1045759653080aba0) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "224a10", 0x000000, 2*1024*1024, CRC(161287f0) SHA1(a13b197a98fa1cebb11fb87b54e277c72852c4ee) ) - ROM_LOAD64_WORD( "224a11", 0x000002, 2*1024*1024, CRC(df5960e1) SHA1(ee7794dd119f5f2c52e7ba589d78067a89ff3cab) ) - ROM_LOAD64_WORD( "224a12", 0x000004, 2*1024*1024, CRC(ca72a4b3) SHA1(a09deb6d7cb8be4edaeb78e0e676ea2d6055e9e0) ) - ROM_LOAD64_WORD( "224a13", 0x000006, 2*1024*1024, CRC(86b58feb) SHA1(5a43746e2cd3c7aca21496c092aef83e64b3ab2c) ) - - /* K053250 linescroll/zoom thingy */ - ROM_REGION( 0x80000, REGION_GFX3, 0 ) // NOTE: region must be 2xROM size for unpacking - ROM_LOAD( "224a14", 0x000000, 0x40000, CRC(3c79b404) SHA1(7c6bb4cbf050f314ea0cd3e8bc6e1947d0573084) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "224a06", 0x000000, 2*1024*1024, CRC(972f6abe) SHA1(30907495fc49fe3424c092b074c1dc137aa14306) ) - ROM_LOAD( "224a07", 0x200000, 1*1024*1024, CRC(61b2f97a) SHA1(34bf835d6361c7809d40fa20fd238c9e2a84b101) ) -ROM_END - -ROM_START( metamrpj ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "224jaa01.15h", 0x000001, 0x40000, CRC(558d2602) SHA1(2dbc16fcc07436ca7eff8d070196348f272b8723) ) - ROM_LOAD16_BYTE( "224jaa02.15f", 0x000000, 0x40000, CRC(9b252ace) SHA1(efe8cd942f3d4e2366d9af0fb9647d2a4aeac2c9) ) - ROM_LOAD16_BYTE( "224a03", 0x100001, 0x80000, CRC(a5bedb01) SHA1(5e7a0b93af654ba6a87be8d449c7080a0f0e2a43) ) - ROM_LOAD16_BYTE( "224a04", 0x100000, 0x80000, CRC(ada53ba4) SHA1(f77bf854dff1f8f718579fe6d3730066708396e2) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("224a05", 0x000000, 0x040000, CRC(4b4c985c) SHA1(c83cce05355023be9cd55b4aa595c61f8236269c) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "224a09", 0x000000, 1*1024*1024, CRC(1931afce) SHA1(78838c0fd2a9c80f130db1fcf6c88b14f7363639) ) - ROM_LOADTILE_WORD( "224a08", 0x000002, 1*1024*1024, CRC(dc94d53a) SHA1(91e16371a335f078a81c06a1045759653080aba0) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "224a10", 0x000000, 2*1024*1024, CRC(161287f0) SHA1(a13b197a98fa1cebb11fb87b54e277c72852c4ee) ) - ROM_LOAD64_WORD( "224a11", 0x000002, 2*1024*1024, CRC(df5960e1) SHA1(ee7794dd119f5f2c52e7ba589d78067a89ff3cab) ) - ROM_LOAD64_WORD( "224a12", 0x000004, 2*1024*1024, CRC(ca72a4b3) SHA1(a09deb6d7cb8be4edaeb78e0e676ea2d6055e9e0) ) - ROM_LOAD64_WORD( "224a13", 0x000006, 2*1024*1024, CRC(86b58feb) SHA1(5a43746e2cd3c7aca21496c092aef83e64b3ab2c) ) - - /* K053250 linescroll/zoom thingy */ - ROM_REGION( 0x80000, REGION_GFX3, 0 ) // NOTE: region must be 2xROM size for unpacking - ROM_LOAD( "224a14", 0x000000, 0x40000, CRC(3c79b404) SHA1(7c6bb4cbf050f314ea0cd3e8bc6e1947d0573084) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "224a06", 0x000000, 2*1024*1024, CRC(972f6abe) SHA1(30907495fc49fe3424c092b074c1dc137aa14306) ) - ROM_LOAD( "224a07", 0x200000, 1*1024*1024, CRC(61b2f97a) SHA1(34bf835d6361c7809d40fa20fd238c9e2a84b101) ) -ROM_END - -ROM_START( mtlchamp ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "234eab01.20f", 0x000000, 0x40000, CRC(7c4d1e50) SHA1(f943b955aa66f0892c20df7a94fc8bf070bf4624) ) - ROM_LOAD16_BYTE( "234eab02.20g", 0x000001, 0x40000, CRC(d8bc85c9) SHA1(40a13b4139dd24c06378c6bd982ef3f5fd646dcc) ) - ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) - ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) - - /* sound program */ - ROM_REGION( 0x040000, REGION_CPU2, 0 ) - ROM_LOAD("234_d05.6b", 0x000000, 0x020000, CRC(efb6bcaa) SHA1(4fb24b89a50b341871945547859278a6e2f5e002) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "234a08.1h", 0x000000, 1*1024*1024, CRC(27e94288) SHA1(a92b03adf7beea6a1ceb74f659c87c628a7ab8e4) ) - ROM_LOADTILE_WORD( "234a09.1k", 0x000002, 1*1024*1024, CRC(03aad28f) SHA1(e7d9d788822ac9666e089b58288e3fcdba1b89da) ) - ROM_LOADTILE_BYTE( "234a10.3h", 0x000004, 512*1024, CRC(51f50fe2) SHA1(164fc975feff442d93f1917727c159051dcd3a55) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "234a16.22k", 0x000000, 2*1024*1024, CRC(14d909a5) SHA1(15da356852fc0c63ecd924ac37ebe24bf3ba0760) ) - ROM_LOAD64_WORD( "234a15.20k", 0x000002, 2*1024*1024, CRC(a5028418) SHA1(ec6fc7b38fb1d27490a5a9310ecac2d1049e197c) ) - ROM_LOAD64_WORD( "234a14.19k", 0x000004, 2*1024*1024, CRC(d7921f47) SHA1(3fc97b308ad2ca25a376373ddfe08c8a375c424e) ) - ROM_LOAD64_WORD( "234a13.17k", 0x000006, 2*1024*1024, CRC(5974392e) SHA1(7c380419244439804797a9510846d273ebe99d02) ) - ROM_LOAD16_BYTE( "234a12.12k", 0x800000, 1024*1024, CRC(c7f2b099) SHA1(b72b80feb52560a5a42a1db39b059ac8bca27c10) ) - ROM_LOAD16_BYTE( "234a11.10k", 0x800001, 1024*1024, CRC(82923713) SHA1(a36cd3b2c9d36e93a3c25ba1d4e162f3d92e06ae) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "234a06.2d", 0x000000, 2*1024*1024, CRC(12d32384) SHA1(ecd6cd752b0e20339e17a7652ed843fbb43f7595) ) - ROM_LOAD( "234a07.1d", 0x200000, 2*1024*1024, CRC(05ee239f) SHA1(f4e6e7568dc73666a2b5e0c3fe743432e0436464) ) -ROM_END - -ROM_START( mtlchmp1 ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "234eaa01.20f", 0x000000, 0x40000, CRC(8fa731db) SHA1(e2ed81762070a764f51aae36ce03859b5d86520d) ) - ROM_LOAD16_BYTE( "234eaa02.20g", 0x000001, 0x40000, CRC(e7b50b54) SHA1(594391a37479e6973aadd1fc866671c306a75497) ) - ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) - ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) - - /* sound program */ - ROM_REGION( 0x040000, REGION_CPU2, 0 ) - ROM_LOAD("234_d05.6b", 0x000000, 0x020000, CRC(efb6bcaa) SHA1(4fb24b89a50b341871945547859278a6e2f5e002) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "234a08.1h", 0x000000, 1*1024*1024, CRC(27e94288) SHA1(a92b03adf7beea6a1ceb74f659c87c628a7ab8e4) ) - ROM_LOADTILE_WORD( "234a09.1k", 0x000002, 1*1024*1024, CRC(03aad28f) SHA1(e7d9d788822ac9666e089b58288e3fcdba1b89da) ) - ROM_LOADTILE_BYTE( "234a10.3h", 0x000004, 512*1024, CRC(51f50fe2) SHA1(164fc975feff442d93f1917727c159051dcd3a55) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "234a16.22k", 0x000000, 2*1024*1024, CRC(14d909a5) SHA1(15da356852fc0c63ecd924ac37ebe24bf3ba0760) ) - ROM_LOAD64_WORD( "234a15.20k", 0x000002, 2*1024*1024, CRC(a5028418) SHA1(ec6fc7b38fb1d27490a5a9310ecac2d1049e197c) ) - ROM_LOAD64_WORD( "234a14.19k", 0x000004, 2*1024*1024, CRC(d7921f47) SHA1(3fc97b308ad2ca25a376373ddfe08c8a375c424e) ) - ROM_LOAD64_WORD( "234a13.17k", 0x000006, 2*1024*1024, CRC(5974392e) SHA1(7c380419244439804797a9510846d273ebe99d02) ) - ROM_LOAD16_BYTE( "234a12.12k", 0x800000, 1024*1024, CRC(c7f2b099) SHA1(b72b80feb52560a5a42a1db39b059ac8bca27c10) ) - ROM_LOAD16_BYTE( "234a11.10k", 0x800001, 1024*1024, CRC(82923713) SHA1(a36cd3b2c9d36e93a3c25ba1d4e162f3d92e06ae) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "234a06.2d", 0x000000, 2*1024*1024, CRC(12d32384) SHA1(ecd6cd752b0e20339e17a7652ed843fbb43f7595) ) - ROM_LOAD( "234a07.1d", 0x200000, 2*1024*1024, CRC(05ee239f) SHA1(f4e6e7568dc73666a2b5e0c3fe743432e0436464) ) -ROM_END - -ROM_START( mtlchmpa ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "234aaa01.20f", 0x000000, 0x40000, CRC(32c70e65) SHA1(10103ba403656d962bafe970a4ad0b2a9bed0ffe) ) - ROM_LOAD16_BYTE( "234aaa02.20g", 0x000001, 0x40000, CRC(2f666d52) SHA1(97765ef89e9b9ed36e7039f31f4d57187c6bb6e5) ) - ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) - ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) - - /* sound program */ - ROM_REGION( 0x040000, REGION_CPU2, 0 ) - ROM_LOAD("234_d05.6b", 0x000000, 0x020000, CRC(efb6bcaa) SHA1(4fb24b89a50b341871945547859278a6e2f5e002) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "234a08.1h", 0x000000, 1*1024*1024, CRC(27e94288) SHA1(a92b03adf7beea6a1ceb74f659c87c628a7ab8e4) ) - ROM_LOADTILE_WORD( "234a09.1k", 0x000002, 1*1024*1024, CRC(03aad28f) SHA1(e7d9d788822ac9666e089b58288e3fcdba1b89da) ) - ROM_LOADTILE_BYTE( "234a10.3h", 0x000004, 512*1024, CRC(51f50fe2) SHA1(164fc975feff442d93f1917727c159051dcd3a55) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "234a16.22k", 0x000000, 2*1024*1024, CRC(14d909a5) SHA1(15da356852fc0c63ecd924ac37ebe24bf3ba0760) ) - ROM_LOAD64_WORD( "234a15.20k", 0x000002, 2*1024*1024, CRC(a5028418) SHA1(ec6fc7b38fb1d27490a5a9310ecac2d1049e197c) ) - ROM_LOAD64_WORD( "234a14.19k", 0x000004, 2*1024*1024, CRC(d7921f47) SHA1(3fc97b308ad2ca25a376373ddfe08c8a375c424e) ) - ROM_LOAD64_WORD( "234a13.17k", 0x000006, 2*1024*1024, CRC(5974392e) SHA1(7c380419244439804797a9510846d273ebe99d02) ) - ROM_LOAD16_BYTE( "234a12.12k", 0x800000, 1024*1024, CRC(c7f2b099) SHA1(b72b80feb52560a5a42a1db39b059ac8bca27c10) ) - ROM_LOAD16_BYTE( "234a11.10k", 0x800001, 1024*1024, CRC(82923713) SHA1(a36cd3b2c9d36e93a3c25ba1d4e162f3d92e06ae) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "234a06.2d", 0x000000, 2*1024*1024, CRC(12d32384) SHA1(ecd6cd752b0e20339e17a7652ed843fbb43f7595) ) - ROM_LOAD( "234a07.1d", 0x200000, 2*1024*1024, CRC(05ee239f) SHA1(f4e6e7568dc73666a2b5e0c3fe743432e0436464) ) -ROM_END - -ROM_START( mtlchmpj ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "234jaa01.20f", 0x000000, 0x40000, CRC(76c3c568) SHA1(14c0009804fcedd8a3e5a105cc871dd6cd4cf7b3) ) - ROM_LOAD16_BYTE( "234jaa02.20g", 0x000001, 0x40000, CRC(95eec0aa) SHA1(11f1986d792951d6d5b3740b435dab2a2f4e6cbd) ) - ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) - ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) - - /* sound program */ - ROM_REGION( 0x040000, REGION_CPU2, 0 ) - ROM_LOAD("234_d05.6b", 0x000000, 0x020000, CRC(efb6bcaa) SHA1(4fb24b89a50b341871945547859278a6e2f5e002) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "234a08.1h", 0x000000, 1*1024*1024, CRC(27e94288) SHA1(a92b03adf7beea6a1ceb74f659c87c628a7ab8e4) ) - ROM_LOADTILE_WORD( "234a09.1k", 0x000002, 1*1024*1024, CRC(03aad28f) SHA1(e7d9d788822ac9666e089b58288e3fcdba1b89da) ) - ROM_LOADTILE_BYTE( "234a10.3h", 0x000004, 512*1024, CRC(51f50fe2) SHA1(164fc975feff442d93f1917727c159051dcd3a55) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "234a16.22k", 0x000000, 2*1024*1024, CRC(14d909a5) SHA1(15da356852fc0c63ecd924ac37ebe24bf3ba0760) ) - ROM_LOAD64_WORD( "234a15.20k", 0x000002, 2*1024*1024, CRC(a5028418) SHA1(ec6fc7b38fb1d27490a5a9310ecac2d1049e197c) ) - ROM_LOAD64_WORD( "234a14.19k", 0x000004, 2*1024*1024, CRC(d7921f47) SHA1(3fc97b308ad2ca25a376373ddfe08c8a375c424e) ) - ROM_LOAD64_WORD( "234a13.17k", 0x000006, 2*1024*1024, CRC(5974392e) SHA1(7c380419244439804797a9510846d273ebe99d02) ) - ROM_LOAD16_BYTE( "234a12.12k", 0x800000, 1024*1024, CRC(c7f2b099) SHA1(b72b80feb52560a5a42a1db39b059ac8bca27c10) ) - ROM_LOAD16_BYTE( "234a11.10k", 0x800001, 1024*1024, CRC(82923713) SHA1(a36cd3b2c9d36e93a3c25ba1d4e162f3d92e06ae) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "234a06.2d", 0x000000, 2*1024*1024, CRC(12d32384) SHA1(ecd6cd752b0e20339e17a7652ed843fbb43f7595) ) - ROM_LOAD( "234a07.1d", 0x200000, 2*1024*1024, CRC(05ee239f) SHA1(f4e6e7568dc73666a2b5e0c3fe743432e0436464) ) -ROM_END - -ROM_START( mtlchmpu ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "234uad01.20f", 0x000000, 0x40000, CRC(5f6c8d09) SHA1(5850398cb9582973b400eaa82d84b7d07c87f779) ) - ROM_LOAD16_BYTE( "234uad02.20g", 0x000001, 0x40000, CRC(15ca4fb2) SHA1(f3025f0d54ce20717207ce219fd9e07b808eda34) ) - ROM_LOAD16_BYTE( "234_d03.19f", 0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) ) - ROM_LOAD16_BYTE( "234_d04.19g", 0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) ) - - /* sound program */ - ROM_REGION( 0x040000, REGION_CPU2, 0 ) - ROM_LOAD("234_d05.6b", 0x000000, 0x020000, CRC(efb6bcaa) SHA1(4fb24b89a50b341871945547859278a6e2f5e002) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "234a08.1h", 0x000000, 1*1024*1024, CRC(27e94288) SHA1(a92b03adf7beea6a1ceb74f659c87c628a7ab8e4) ) - ROM_LOADTILE_WORD( "234a09.1k", 0x000002, 1*1024*1024, CRC(03aad28f) SHA1(e7d9d788822ac9666e089b58288e3fcdba1b89da) ) - ROM_LOADTILE_BYTE( "234a10.3h", 0x000004, 512*1024, CRC(51f50fe2) SHA1(164fc975feff442d93f1917727c159051dcd3a55) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "234a16.22k", 0x000000, 2*1024*1024, CRC(14d909a5) SHA1(15da356852fc0c63ecd924ac37ebe24bf3ba0760) ) - ROM_LOAD64_WORD( "234a15.20k", 0x000002, 2*1024*1024, CRC(a5028418) SHA1(ec6fc7b38fb1d27490a5a9310ecac2d1049e197c) ) - ROM_LOAD64_WORD( "234a14.19k", 0x000004, 2*1024*1024, CRC(d7921f47) SHA1(3fc97b308ad2ca25a376373ddfe08c8a375c424e) ) - ROM_LOAD64_WORD( "234a13.17k", 0x000006, 2*1024*1024, CRC(5974392e) SHA1(7c380419244439804797a9510846d273ebe99d02) ) - ROM_LOAD16_BYTE( "234a12.12k", 0x800000, 1024*1024, CRC(c7f2b099) SHA1(b72b80feb52560a5a42a1db39b059ac8bca27c10) ) - ROM_LOAD16_BYTE( "234a11.10k", 0x800001, 1024*1024, CRC(82923713) SHA1(a36cd3b2c9d36e93a3c25ba1d4e162f3d92e06ae) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "234a06.2d", 0x000000, 2*1024*1024, CRC(12d32384) SHA1(ecd6cd752b0e20339e17a7652ed843fbb43f7595) ) - ROM_LOAD( "234a07.1d", 0x200000, 2*1024*1024, CRC(05ee239f) SHA1(f4e6e7568dc73666a2b5e0c3fe743432e0436464) ) -ROM_END - -ROM_START( gaiapols ) - /* main program */ - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "123e07.24m", 0x000000, 1*1024*1024, CRC(f1a1db0f) SHA1(1394b8a57493cbc8d5bf555d363ad844a2407d98) ) - ROM_LOAD16_BYTE( "123e09.19l", 0x000001, 1*1024*1024, CRC(4b3b57e7) SHA1(1415ddc1393a468705d7a37d054ab6b08d0eb205) ) - - /* 68k data */ - ROM_LOAD16_BYTE( "123eaf11.19p", 0x200000, 256*1024, CRC(9c324ade) SHA1(c78b7884f538d285b389c0c46d415a40da844d0d) ) - ROM_LOAD16_BYTE( "123eaf12.17p", 0x200001, 256*1024, CRC(1dfa14c5) SHA1(540700edbe3dbbd76e3b9e2d2acc416940730a9b) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("123e13.9c", 0x000000, 0x040000, CRC(e772f822) SHA1(2a5cdfc0aacad56cbef8bdbe8319e7ff4ab71eee) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "123e16.2t", 0x000000, 1*1024*1024, CRC(a3238200) SHA1(9ea073f7611b5c0b328c707c97ef174634c303bc) ) - ROM_LOADTILE_WORD( "123e17.2x", 0x000002, 1*1024*1024, CRC(bd0b9fb9) SHA1(1714c19d2123b8fd4cfedb66d13bdcee6fc77576) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "123e19.34u", 0x000000, 2*1024*1024, CRC(219a7c26) SHA1(0f24873523f91379862e0d4317fc42b8a10d412e) ) - ROM_LOAD64_WORD( "123e21.34y", 0x000002, 2*1024*1024, CRC(1888947b) SHA1(41a046cbcd2406add2ff48cb82a1353d9ac5fa3c) ) - ROM_LOAD64_WORD( "123e18.36u", 0x000004, 2*1024*1024, CRC(3719b6d4) SHA1(25ef6e8c3c7f151f1cee063356bdd56c713356ea) ) - ROM_LOAD64_WORD( "123e20.36y", 0x000006, 2*1024*1024, CRC(490a6f64) SHA1(81b1acc74ce834399005a748eae50b3d633fa469) ) - - /* K053536 roz tiles */ - ROM_REGION( 0x180000, REGION_GFX3, 0 ) - ROM_LOAD( "123e04.32n", 0x000000, 0x080000, CRC(0d4d5b8b) SHA1(d3fb0c77ad46ee9b9c704be6f174258aa051aa71) ) - ROM_LOAD( "123e05.29n", 0x080000, 0x080000, CRC(7d123f3e) SHA1(f9752e96515dc965aae04e01dfa813fcc4cbccd6) ) - ROM_LOAD( "123e06.26n", 0x100000, 0x080000, CRC(fa50121e) SHA1(4596a9b0a6cc67f259182098d3976234b6ed8cb6) ) - - /* K053936 map data */ - ROM_REGION( 0xa0000, REGION_GFX4, 0 ) - ROM_LOAD( "123e01.36j", 0x000000, 0x20000, CRC(9dbc9678) SHA1(4183eb833d0d1cd710fac32071df7ebcb7a9c812) ) - ROM_LOAD( "123e02.34j", 0x020000, 0x40000, CRC(b8e3f500) SHA1(254c665b7aa534990e899fe8f54c3f24e8126fba) ) - ROM_LOAD( "123e03.36m", 0x060000, 0x40000, CRC(fde4749f) SHA1(7f9c09d11dcb16d72046c7605570c3a29e279fa9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "123e14.2g", 0x000000, 2*1024*1024, CRC(65dfd3ff) SHA1(57e13c05f420747c1c2010cc5340dd70e2c28971) ) - ROM_LOAD( "123e15.2m", 0x200000, 2*1024*1024, CRC(7017ff07) SHA1(37ecd54f2c757c5385305ab726d9f66aa1afd456) ) -ROM_END - -ROM_START( gaiapolu ) - /* main program */ - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "123e07.24m", 0x000000, 1*1024*1024, CRC(f1a1db0f) SHA1(1394b8a57493cbc8d5bf555d363ad844a2407d98) ) - ROM_LOAD16_BYTE( "123e09.19l", 0x000001, 1*1024*1024, CRC(4b3b57e7) SHA1(1415ddc1393a468705d7a37d054ab6b08d0eb205) ) - - /* 68k data */ - ROM_LOAD16_BYTE( "123uaf11.19p", 0x200000, 256*1024, CRC(39dc1298) SHA1(ce9e41ac6f52e20f13ad86fb0d47c0d6e838250e) ) - ROM_LOAD16_BYTE( "123uaf12.17p", 0x200001, 256*1024, CRC(c633cf52) SHA1(370be5557a271699342b7d771ebadf7021a27ae3) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("123e13.9c", 0x000000, 0x040000, CRC(e772f822) SHA1(2a5cdfc0aacad56cbef8bdbe8319e7ff4ab71eee) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "123e16.2t", 0x000000, 1*1024*1024, CRC(a3238200) SHA1(9ea073f7611b5c0b328c707c97ef174634c303bc) ) - ROM_LOADTILE_WORD( "123e17.2x", 0x000002, 1*1024*1024, CRC(bd0b9fb9) SHA1(1714c19d2123b8fd4cfedb66d13bdcee6fc77576) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "123e19.34u", 0x000000, 2*1024*1024, CRC(219a7c26) SHA1(0f24873523f91379862e0d4317fc42b8a10d412e) ) - ROM_LOAD64_WORD( "123e21.34y", 0x000002, 2*1024*1024, CRC(1888947b) SHA1(41a046cbcd2406add2ff48cb82a1353d9ac5fa3c) ) - ROM_LOAD64_WORD( "123e18.36u", 0x000004, 2*1024*1024, CRC(3719b6d4) SHA1(25ef6e8c3c7f151f1cee063356bdd56c713356ea) ) - ROM_LOAD64_WORD( "123e20.36y", 0x000006, 2*1024*1024, CRC(490a6f64) SHA1(81b1acc74ce834399005a748eae50b3d633fa469) ) - - /* K053536 roz tiles */ - ROM_REGION( 0x180000, REGION_GFX3, 0 ) - ROM_LOAD( "123e04.32n", 0x000000, 0x080000, CRC(0d4d5b8b) SHA1(d3fb0c77ad46ee9b9c704be6f174258aa051aa71) ) - ROM_LOAD( "123e05.29n", 0x080000, 0x080000, CRC(7d123f3e) SHA1(f9752e96515dc965aae04e01dfa813fcc4cbccd6) ) - ROM_LOAD( "123e06.26n", 0x100000, 0x080000, CRC(fa50121e) SHA1(4596a9b0a6cc67f259182098d3976234b6ed8cb6) ) - - /* K053936 map data */ - ROM_REGION( 0xa0000, REGION_GFX4, 0 ) - ROM_LOAD( "123e01.36j", 0x000000, 0x20000, CRC(9dbc9678) SHA1(4183eb833d0d1cd710fac32071df7ebcb7a9c812) ) - ROM_LOAD( "123e02.34j", 0x020000, 0x40000, CRC(b8e3f500) SHA1(254c665b7aa534990e899fe8f54c3f24e8126fba) ) - ROM_LOAD( "123e03.36m", 0x060000, 0x40000, CRC(fde4749f) SHA1(7f9c09d11dcb16d72046c7605570c3a29e279fa9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "123e14.2g", 0x000000, 2*1024*1024, CRC(65dfd3ff) SHA1(57e13c05f420747c1c2010cc5340dd70e2c28971) ) - ROM_LOAD( "123e15.2m", 0x200000, 2*1024*1024, CRC(7017ff07) SHA1(37ecd54f2c757c5385305ab726d9f66aa1afd456) ) -ROM_END - -ROM_START( gaiapolj ) - /* main program */ - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "123e07.24m", 0x000000, 1*1024*1024, CRC(f1a1db0f) SHA1(1394b8a57493cbc8d5bf555d363ad844a2407d98) ) - ROM_LOAD16_BYTE( "123e09.19l", 0x000001, 1*1024*1024, CRC(4b3b57e7) SHA1(1415ddc1393a468705d7a37d054ab6b08d0eb205) ) - - /* 68k data */ - ROM_LOAD16_BYTE( "123jaf11.19p", 0x200000, 256*1024, CRC(19919571) SHA1(e4fbbdd4003f18631e5723bb85a7fa60e57f2d2a) ) - ROM_LOAD16_BYTE( "123jaf12.17p", 0x200001, 256*1024, CRC(4246e595) SHA1(d5fe0b1dfe2a0c64b3e62820dea5094cc0f5bd12) ) - - /* sound program */ - ROM_REGION( 0x050000, REGION_CPU2, 0 ) - ROM_LOAD("123e13.9c", 0x000000, 0x040000, CRC(e772f822) SHA1(2a5cdfc0aacad56cbef8bdbe8319e7ff4ab71eee) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x500000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "123e16.2t", 0x000000, 1*1024*1024, CRC(a3238200) SHA1(9ea073f7611b5c0b328c707c97ef174634c303bc) ) - ROM_LOADTILE_WORD( "123e17.2x", 0x000002, 1*1024*1024, CRC(bd0b9fb9) SHA1(1714c19d2123b8fd4cfedb66d13bdcee6fc77576) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "123e19.34u", 0x000000, 2*1024*1024, CRC(219a7c26) SHA1(0f24873523f91379862e0d4317fc42b8a10d412e) ) - ROM_LOAD64_WORD( "123e21.34y", 0x000002, 2*1024*1024, CRC(1888947b) SHA1(41a046cbcd2406add2ff48cb82a1353d9ac5fa3c) ) - ROM_LOAD64_WORD( "123e18.36u", 0x000004, 2*1024*1024, CRC(3719b6d4) SHA1(25ef6e8c3c7f151f1cee063356bdd56c713356ea) ) - ROM_LOAD64_WORD( "123e20.36y", 0x000006, 2*1024*1024, CRC(490a6f64) SHA1(81b1acc74ce834399005a748eae50b3d633fa469) ) - - /* K053536 roz tiles */ - ROM_REGION( 0x180000, REGION_GFX3, 0 ) - ROM_LOAD( "123e04.32n", 0x000000, 0x080000, CRC(0d4d5b8b) SHA1(d3fb0c77ad46ee9b9c704be6f174258aa051aa71) ) - ROM_LOAD( "123e05.29n", 0x080000, 0x080000, CRC(7d123f3e) SHA1(f9752e96515dc965aae04e01dfa813fcc4cbccd6) ) - ROM_LOAD( "123e06.26n", 0x100000, 0x080000, CRC(fa50121e) SHA1(4596a9b0a6cc67f259182098d3976234b6ed8cb6) ) - - /* K053936 map data */ - ROM_REGION( 0xa0000, REGION_GFX4, 0 ) - ROM_LOAD( "123e01.36j", 0x000000, 0x20000, CRC(9dbc9678) SHA1(4183eb833d0d1cd710fac32071df7ebcb7a9c812) ) - ROM_LOAD( "123e02.34j", 0x020000, 0x40000, CRC(b8e3f500) SHA1(254c665b7aa534990e899fe8f54c3f24e8126fba) ) - ROM_LOAD( "123e03.36m", 0x060000, 0x40000, CRC(fde4749f) SHA1(7f9c09d11dcb16d72046c7605570c3a29e279fa9) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "123e14.2g", 0x000000, 2*1024*1024, CRC(65dfd3ff) SHA1(57e13c05f420747c1c2010cc5340dd70e2c28971) ) - ROM_LOAD( "123e15.2m", 0x200000, 2*1024*1024, CRC(7017ff07) SHA1(37ecd54f2c757c5385305ab726d9f66aa1afd456) ) -ROM_END - -ROM_START( mmaulers ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "170eaa07.24m", 0x000000, 0x80000, CRC(5458bd93) SHA1(d27a29076be3c745e3efdb1c528b07bd5d8aff1c) ) - ROM_LOAD16_BYTE( "170eaa09.19l", 0x000001, 0x80000, CRC(99c95c7b) SHA1(7f22930c2fe21205ccd01b80566d6bc31fea34d2) ) - ROM_LOAD16_BYTE( "170a08.21m", 0x100000, 0x40000, CRC(03c59ba2) SHA1(041473fe5f9004bfb7ca767c2004154c27f726ff) ) - ROM_LOAD16_BYTE( "170a10.17l", 0x100001, 0x40000, CRC(8a340909) SHA1(3e2ef2642e792cdc38b3442df67377ed9e70d3ab) ) - - /* sound program */ - ROM_REGION( 0x080000, REGION_CPU2, 0 ) - ROM_LOAD("170a13.9c", 0x000000, 0x40000, CRC(2ebf4d1c) SHA1(33a3f4153dfdc46cc223d216a17ef9428c09129d) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "170a16.2t", 0x000000, 1*1024*1024, CRC(41fee912) SHA1(73cf167ac9fc42cb8048a87b6c6d1c3c0ae3c2e2) ) - ROM_LOADTILE_WORD( "170a17.2x", 0x000002, 1*1024*1024, CRC(96957c91) SHA1(b12d356f8a015ec0984bdb86da9c569eb0c67880) ) - ROM_LOADTILE_BYTE( "170a24.5r", 0x000004, 512*1024, CRC(562ad4bd) SHA1(f55b29142ea39f090244f0945a56760bab25c7a7) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "170a19.34u", 0x000000, 2*1024*1024, CRC(be835141) SHA1(b76e1da45bf602dd9eb30fb8b7181cea2e820c3d) ) - ROM_LOAD64_WORD( "170a21.34y", 0x000002, 2*1024*1024, CRC(bcb68136) SHA1(1d453f59d832b8ea99cf0a60a917edce5c1c90a0) ) - ROM_LOAD64_WORD( "170a18.36u", 0x000004, 2*1024*1024, CRC(e1e3c8d2) SHA1(2c94fcedd1dcef3d3332af358ae8a67dea507216) ) - ROM_LOAD64_WORD( "170a20.36y", 0x000006, 2*1024*1024, CRC(ccb4d88c) SHA1(064b4dab0ca6e5a1fa2fc2e9bbb19c7499830ee1) ) - ROM_LOAD16_BYTE( "170a23.29y", 0x800000, 1024*1024, CRC(6b5390e4) SHA1(0c5066bc86e782db4b64c2a604aed89ae99af005) ) - ROM_LOAD16_BYTE( "170a22.32y", 0x800001, 1024*1024, CRC(21628106) SHA1(1e025ff53caa5cbbf7695f8a77736d59f8a8af1b) ) - - /* K053536 roz plane */ - ROM_REGION( 0x180000, REGION_GFX3, 0 ) - ROM_LOAD( "170a04.33n", 0x000000, 0x80000, CRC(64b9a73b) SHA1(8b984bfd8bdf6d93ad223fca46a4f958a0edb2be) ) - ROM_LOAD( "170a05.30n", 0x080000, 0x80000, CRC(f2c101d0) SHA1(d80045c9a02db08ea6c851bdc12826862e11c381) ) - ROM_LOAD( "170a06.27n", 0x100000, 0x80000, CRC(b032e59b) SHA1(482300c683db20c2b2fc6e007b8f7e35373e3c00) ) - - /* K053936 tilemap data */ - ROM_REGION( 0x80000, REGION_GFX4, 0 ) - ROM_LOAD( "170a02.34j", 0x000000, 0x40000, CRC(b040cebf) SHA1(4d1ba4ee60fd7caf678837ec6f4d68fcbce1ccf2) ) - ROM_LOAD( "170a03.36m", 0x040000, 0x40000, CRC(7fb412b2) SHA1(f603a8f0becf88e345f4b7a68cf018962a255a1e) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD("170a14.2g", 0x000000, 2*1024*1024, CRC(83317cda) SHA1(c5398c5959ef3ea73835e13db69660dd28c31486) ) - ROM_LOAD("170a15.2m", 0x200000, 2*1024*1024, CRC(d4113ae9) SHA1(e234d06f462e3db64455c384c2f42174f9ef9c6a) ) -ROM_END - -ROM_START( dadandrn ) - /* main program */ - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "170jaa07.24m", 0x000000, 0x80000, CRC(6a55e828) SHA1(06be9a45fdddcc826a33ff8d6eb595e11b98a31f) ) - ROM_LOAD16_BYTE( "170jaa09.19l", 0x000001, 0x80000, CRC(9e821cd8) SHA1(51e9c3b0a187db62cfcdff23ecaf3205f368f4e0) ) - ROM_LOAD16_BYTE( "170a08.21m", 0x100000, 0x40000, CRC(03c59ba2) SHA1(041473fe5f9004bfb7ca767c2004154c27f726ff) ) - ROM_LOAD16_BYTE( "170a10.17l", 0x100001, 0x40000, CRC(8a340909) SHA1(3e2ef2642e792cdc38b3442df67377ed9e70d3ab) ) - - /* sound program */ - ROM_REGION( 0x080000, REGION_CPU2, 0 ) - ROM_LOAD("170a13.9c", 0x000000, 0x40000, CRC(2ebf4d1c) SHA1(33a3f4153dfdc46cc223d216a17ef9428c09129d) ) - ROM_RELOAD( 0x010000, 0x040000 ) - - /* tiles */ - ROM_REGION( 0x600000, REGION_GFX1, ROMREGION_ERASE00 ) - ROM_LOADTILE_WORD( "170a16.2t", 0x000000, 1*1024*1024, CRC(41fee912) SHA1(73cf167ac9fc42cb8048a87b6c6d1c3c0ae3c2e2) ) - ROM_LOADTILE_WORD( "170a17.2x", 0x000002, 1*1024*1024, CRC(96957c91) SHA1(b12d356f8a015ec0984bdb86da9c569eb0c67880) ) - ROM_LOADTILE_BYTE( "170a24.5r", 0x000004, 512*1024, CRC(562ad4bd) SHA1(f55b29142ea39f090244f0945a56760bab25c7a7) ) - - /* sprites */ - ROM_REGION( 0xa00000, REGION_GFX2, ROMREGION_ERASE00 ) - ROM_LOAD64_WORD( "170a19.34u", 0x000000, 2*1024*1024, CRC(be835141) SHA1(b76e1da45bf602dd9eb30fb8b7181cea2e820c3d) ) - ROM_LOAD64_WORD( "170a21.34y", 0x000002, 2*1024*1024, CRC(bcb68136) SHA1(1d453f59d832b8ea99cf0a60a917edce5c1c90a0) ) - ROM_LOAD64_WORD( "170a18.36u", 0x000004, 2*1024*1024, CRC(e1e3c8d2) SHA1(2c94fcedd1dcef3d3332af358ae8a67dea507216) ) - ROM_LOAD64_WORD( "170a20.36y", 0x000006, 2*1024*1024, CRC(ccb4d88c) SHA1(064b4dab0ca6e5a1fa2fc2e9bbb19c7499830ee1) ) - ROM_LOAD16_BYTE( "170a23.29y", 0x800000, 1024*1024, CRC(6b5390e4) SHA1(0c5066bc86e782db4b64c2a604aed89ae99af005) ) - ROM_LOAD16_BYTE( "170a22.32y", 0x800001, 1024*1024, CRC(21628106) SHA1(1e025ff53caa5cbbf7695f8a77736d59f8a8af1b) ) - - /* K053536 roz plane */ - ROM_REGION( 0x180000, REGION_GFX3, 0 ) - ROM_LOAD( "170a04.33n", 0x000000, 0x80000, CRC(64b9a73b) SHA1(8b984bfd8bdf6d93ad223fca46a4f958a0edb2be) ) - ROM_LOAD( "170a05.30n", 0x080000, 0x80000, CRC(f2c101d0) SHA1(d80045c9a02db08ea6c851bdc12826862e11c381) ) - ROM_LOAD( "170a06.27n", 0x100000, 0x80000, CRC(b032e59b) SHA1(482300c683db20c2b2fc6e007b8f7e35373e3c00) ) - - /* K053936 tilemap data */ - ROM_REGION( 0x80000, REGION_GFX4, 0 ) - ROM_LOAD( "170a02.34j", 0x000000, 0x40000, CRC(b040cebf) SHA1(4d1ba4ee60fd7caf678837ec6f4d68fcbce1ccf2) ) - ROM_LOAD( "170a03.36m", 0x040000, 0x40000, CRC(7fb412b2) SHA1(f603a8f0becf88e345f4b7a68cf018962a255a1e) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD("170a14.2g", 0x000000, 2*1024*1024, CRC(83317cda) SHA1(c5398c5959ef3ea73835e13db69660dd28c31486) ) - ROM_LOAD("170a15.2m", 0x200000, 2*1024*1024, CRC(d4113ae9) SHA1(e234d06f462e3db64455c384c2f42174f9ef9c6a) ) -ROM_END - -static DRIVER_INIT(metamrph) -{ - K053250_unpack_pixels(REGION_GFX3); -} - - -/* ROM parent machine inp init */ -GAME( 1993, mystwarr, 0, mystwarr, mystwarr, 0, ROT0, "Konami", "Mystic Warriors (ver EAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mystwaru, mystwarr, mystwarr, mystwarr, 0, ROT0, "Konami", "Mystic Warriors (ver UAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mmaulers, 0, dadandrn, dadandrn, 0, ROT0, "Konami", "Monster Maulers (ver EAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, dadandrn, mmaulers, dadandrn, dadandrn, 0, ROT0, "Konami", "Kyukyoku Sentai Dadandarn (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, viostorm, 0, viostorm, viostorm, 0, ROT0, "Konami", "Violent Storm (ver EAB)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, viostrmu, viostorm, viostorm, viostorm, 0, ROT0, "Konami", "Violent Storm (ver UAB)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, viostrmj, viostorm, viostorm, viostorm, 0, ROT0, "Konami", "Violent Storm (ver JAC)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, viostrma, viostorm, viostorm, viostorm, 0, ROT0, "Konami", "Violent Storm (ver AAC)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrph, 0, metamrph, metamrph, metamrph, ROT0, "Konami", "Metamorphic Force (ver EAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrpu, metamrph, metamrph, metamrph, metamrph, ROT0, "Konami", "Metamorphic Force (ver UAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, metamrpj, metamrph, metamrph, metamrph, metamrph, ROT0, "Konami", "Metamorphic Force (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchamp, 0, martchmp, martchmp, 0, ROT0, "Konami", "Martial Champion (ver EAB)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchmp1, mtlchamp, martchmp, martchmp, 0, ROT0, "Konami", "Martial Champion (ver EAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchmpu, mtlchamp, martchmp, martchmp, 0, ROT0, "Konami", "Martial Champion (ver UAD)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchmpj, mtlchamp, martchmp, martchmp, 0, ROT0, "Konami", "Martial Champion (ver JAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, mtlchmpa, mtlchamp, martchmp, martchmp, 0, ROT0, "Konami", "Martial Champion (ver AAA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, gaiapols, 0, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver EAF)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, gaiapolu, gaiapols, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver UAF)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, gaiapolj, gaiapols, gaiapols, dadandrn, 0, ROT90, "Konami", "Gaiapolis (ver JAF)", GAME_IMPERFECT_GRAPHICS ) - diff --git a/src/drivers/namcofl.c b/src/drivers/namcofl.c deleted file mode 100644 index 65e5fe578..000000000 --- a/src/drivers/namcofl.c +++ /dev/null @@ -1,528 +0,0 @@ -/* - Namco System FL - Driver by R. Belmont and ElSemi - - IMPORTANT - --------- - To calibrate the steering, do the following: - 1) Delete the .nv file - 2) Start the game. Speed Racer will guide you through the calibration - (the "jump button" is the same as player 1 start). - For Final Lap R, hold down service (9) and tap test (F2). If you do - not get an "initializing" message followed by the input test, keep doing - it until you do. - 3) Exit MAME and restart the game, it's now calibrated. - - -PCB Layout ----------- - -SYSTEM-FL MAIN PCB 8636960100 (8636970100) - |--------------------------------------------------------------------------------------------| - | |-----------------| | - | | 4Z IC3 IC1| Z| - | 21Y 20Y 19Y 18Y 16Y 14Y 13Y 12Y | 4Y | Y| - | 20X | 4X | X| - |--| | IC4 IC2| W| - | 22U 21U 18U 16U 14U 13U 12U | Sub Board | U| - | 22T 18T |-----------------| T| - | | - |J 23S 12S 4S 2S S| - | | - |A 23R 13R R| - | | - |M 21P 20P 19P 18P 10P 8P 7P 5P P| - | 20N OSC1 N| - |M OSC2 | - | 23L 21L OSC3 3L L| - |A 14K 11K K| - | | - | 19J 18J 17J 16J J| - |--| 23F 21F F| - | | - |--| 23E 13E E| - |N 23D 19D 13D 3D D| - |A | - |M 23C C| - |C 25B 21B B| - |O | - |4 22A 21A 19A 18A 16A 15A 14A 13A 12A 11A 10A 9A 8A 7A 6A 5A 3A A| - |4 | - |--| | - |25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 | - |--------------------------------------------------------------------------------------------| - -CUSTOM ------- -4X : NAMCO C355 (sprite chip) -18Y: NAMCO 156 -20X: NAMCO C116 -21U: NAMCO 145 -18T: NAMCO 123 -23R: NAMCO C352 -3D : NAMCO C380 -4S : NAMCO 187 -23L: NAMCO 75 (M37702 MCU) -11K: NAMCO 137 -21B: NAMCO C345 9348EV 333791 VY06436A NX25024K JAPAN -21F: NAMCO 195 - - -ROMs - Main Board ------------------ -23S: MASK ROM - SE1_VOI.23S (PCB LABEL 'VOICE'), mounted on a small plug-in PCB - labelled MEMEXT 32M MROM PCB 8635909200 (8635909300). This chip is programmed in BYTE mode. -18U: MB834000 MASK ROM - SE1_SSH.18U (PCB LABEL 'SSHAPE') -21P: MB838000 MASK ROM - SE1_SCH0.21P (PCB LABEL 'SCHA0') -20P: MB838000 MASK ROM - SE1_SCH1.20P (PCB LABEL 'SCHA1') -19P: MB838000 MASK ROM - SE1_SCH2.19P (PCB LABEL 'SCHA2') -18P: MB838000 MASK ROM - SE1_SCH3.18P (PCB LABEL 'SCHA3') -21L: M27C4002 EPROM - SE1_SPR.21L (PCB LABEL 'SPROG') -14K: MB834000 MASK ROM - SE1_RSH.14K (PCB LABEL 'RSHAPE') -19J: MB838000 MASK ROM - SE1_RCH0.19J (PCB LABEL 'RCHA0') -18J: MB838000 MASK ROM - SE1_RCH1.18J (PCB LABEL 'RCHA1') -17J, 16J: RCH2, RCH3 but sockets not populated -19A: D27C4096 EPROM - SE2MPEA4.19A (PCB LABEL 'PROGE') -18A: D27C4096 EPROM - SE2MPOA4.18A (PCB LABEL 'PROGO') -16A: AM27C040 EPROM - SE1_DAT3.16A (PCB LABEL 'DATA3') -15A: AM27C040 EPROM - SE1_DAT2.15A (PCB LABEL 'DATA2') -14A: AM27C040 EPROM - SE1_DAT1.14A (PCB LABEL 'DATA1') -13A: AM27C040 EPROM - SE1_DAT0.13A (PCB LABEL 'DATA0') - - -ROMs - Sub Board ----------------- -IC1: MB8316200 SOP44 MASK ROM - SE1OBJ0L.IC1 (PCB LABEL 'OBJ0L') -IC2: MB8316200 SOP44 MASK ROM - SE1OBJ0U.IC2 (PCB LABEL 'OBJ0U') -IC3: MB8316200 SOP44 MASK ROM - SE1OBJ1L.IC3 (PCB LABEL 'OBJ1L') -IC4: MB8316200 SOP44 MASK ROM - SE1OBJ1U.IC4 (PCB LABEL 'OBJ1U') - - -PALs ----- -2S : PAL16L8BCN (PCB LABEL 'SYSFL-1') -3L : PAL16L8BCN (PCB LABEL 'SYSFL-2') -12S: PALCE16V8H (PCB LABEL 'SYSFL-3') -20N: PAL20L8BCN (PCB LABEL 'SYSFL-4') -19D: PALCE16V8H (PCB LABEL 'SYSFL-5') - - -OTHER ------ -OSC1: 80.000MHz -OSC2: 27.800MHz -OSC3: 48.384MHz -13D : KEYCUS2 (not populated) -3A : Intel NG80960KA-20 (i960 CPU) -25B : Sharp PC9D10 -23C : IR2C24AN -23D : IR2C24AN -13E : HN58C65 EEPROM - -*/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "namconb1.h" -#include "namcos2.h" -#include "namcoic.h" -#include "cpu/i960/i960.h" -#include "sndhrdw/namcoc7x.h" - -VIDEO_START( namcofl ); -VIDEO_UPDATE( namcofl ); - -extern UINT32 *namcofl_spritebank32; -extern UINT32 *namcofl_mcuram; -extern WRITE32_HANDLER(namcofl_spritebank_w); - -static UINT32 *namcofl_workram; - -static READ32_HANDLER( fl_unk1_r ) -{ - return 0xffffffff; -} - -static READ32_HANDLER( fl_network_r ) -{ - return 0xffffffff; -} - -static READ32_HANDLER( namcofl_sysreg_r ) -{ - return 0; -} - -static WRITE32_HANDLER( namcofl_sysreg_w ) -{ - if ((offset == 2) && !(mem_mask & 0xff)) // address space configuration - { - if (data == 0) // RAM at 00000000, ROM at 10000000 - { - memory_set_bankptr( 1, namcofl_workram ); - memory_set_bankptr( 2, memory_region(REGION_CPU1) ); - } - else // ROM at 00000000, RAM at 10000000 - { - memory_set_bankptr( 1, memory_region(REGION_CPU1) ); - memory_set_bankptr( 2, namcofl_workram ); - } - } -} - -static ADDRESS_MAP_START( sysfl_mem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_READWRITE(MRA32_BANK1, MWA32_BANK1) - AM_RANGE(0x10000000, 0x100fffff) AM_READWRITE(MRA32_BANK2, MWA32_BANK2) - AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_REGION(REGION_USER1, 0) /* data */ - AM_RANGE(0x30000000, 0x30001fff) AM_RAM AM_BASE(&generic_nvram32) AM_SIZE(&generic_nvram_size) /* nvram */ - AM_RANGE(0x30100000, 0x30100003) AM_WRITE(namcofl_spritebank_w) - AM_RANGE(0x30284000, 0x3028bfff) AM_RAM AM_BASE(&namcofl_mcuram) /* shared RAM with C75 MCU */ - AM_RANGE(0x30300000, 0x30303fff) AM_RAM /* COMRAM */ - AM_RANGE(0x30380000, 0x303800ff) AM_READ( fl_network_r ) /* network registers */ - AM_RANGE(0x30400000, 0x3040ffff) AM_RAM AM_BASE(&paletteram32) - AM_RANGE(0x30800000, 0x3080ffff) AM_READWRITE(namco_tilemapvideoram32_le_r, namco_tilemapvideoram32_le_w ) - AM_RANGE(0x30a00000, 0x30a0003f) AM_READWRITE(namco_tilemapcontrol32_le_r, namco_tilemapcontrol32_le_w ) - AM_RANGE(0x30c00000, 0x30c1ffff) AM_READWRITE(namco_rozvideoram32_le_r,namco_rozvideoram32_le_w) - AM_RANGE(0x30d00000, 0x30d0001f) AM_READWRITE(namco_rozcontrol32_le_r,namco_rozcontrol32_le_w) - AM_RANGE(0x30e00000, 0x30e1ffff) AM_READWRITE(namco_obj32_le_r, namco_obj32_le_w) - AM_RANGE(0x30f00000, 0x30f0000f) AM_RAM /* NebulaM2 code says this is int enable at 0000, int request at 0004, but doesn't do much about it */ - AM_RANGE(0x40000000, 0x4000005f) AM_READWRITE( namcofl_sysreg_r, namcofl_sysreg_w ) - AM_RANGE(0xfffffffc, 0xffffffff) AM_READ( fl_unk1_r ) -ADDRESS_MAP_END - -INPUT_PORTS_START( sysfl ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_TOGGLE PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // C75 status - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // button C - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // button A - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // button B - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_TOGGLE // shifter - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) -INPUT_PORTS_END - -static const gfx_layout obj_layout = -{ - 16,16, - RGN_FRAC(1,1), - 8, /* bits per pixel */ - { - /* plane offsets */ - 0,1,2,3,4,5,6,7, - }, - { - 0*16+8,1*16+8,0*16,1*16, - 2*16+8,3*16+8,2*16,3*16, - 4*16+8,5*16+8,4*16,5*16, - 6*16+8,7*16+8,6*16,7*16 - }, - { - 0x0*128,0x1*128,0x2*128,0x3*128,0x4*128,0x5*128,0x6*128,0x7*128, - 0x8*128,0x9*128,0xa*128,0xb*128,0xc*128,0xd*128,0xe*128,0xf*128 - }, - 16*128 -}; - -static const gfx_layout tile_layout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, - { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64 }, - 8*64 -}; - -static const gfx_layout roz_layout = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0,1,2,3,4,5,6,7 }, - { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 }, - { - 0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128,8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 - }, - 16*128 -}; - -static const gfx_decode gfxdecodeinfo2[] = -{ - { NAMCONB1_TILEGFXREGION, 0, &tile_layout, 0x1000, 0x08 }, - { NAMCONB1_SPRITEGFXREGION, 0, &obj_layout, 0x0000, 0x10 }, - { NAMCONB1_ROTGFXREGION, 0, &roz_layout, 0x1800, 0x08 }, - { -1 } -}; - - -static INTERRUPT_GEN(namcofl_interrupt) -{ - int currentscanline=224-cpu_getiloops(); - int v=(paletteram32[0x1808/4]>>16)&0xffff; - int triggerscanline=(((v>>8)&0xff)|((v&0xff)<<8))-(32+1); - - if (triggerscanline==currentscanline) - { - video_screen_update_partial(0, currentscanline); - cpunum_set_input_line(0, I960_IRQ1, ASSERT_LINE); - } - - - switch (cpu_getiloops()) - { - case 0: - cpunum_set_input_line(0, I960_IRQ2, ASSERT_LINE); //VSYNC - break; - case 2: - cpunum_set_input_line(0, I960_IRQ0, ASSERT_LINE); //Network - break; - } -} -NAMCO_C7X_HARDWARE - -static MACHINE_DRIVER_START( sysfl ) - MDRV_CPU_ADD(I960, 20000000) // i80960KA-20 == 20 MHz part - MDRV_CPU_PROGRAM_MAP(sysfl_mem, 0) - MDRV_CPU_VBLANK_INT(namcofl_interrupt, 224) - - NAMCO_C7X_MCU_SHARED( 16384000 ) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(generic_1fill) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK/* | */) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(NAMCONB1_COLS*8, NAMCONB1_ROWS*8) /* 288x224 pixels */ - MDRV_SCREEN_VISIBLE_AREA(0*8, NAMCONB1_COLS*8-1, 0*8, NAMCONB1_ROWS*8-1) - MDRV_PALETTE_LENGTH(8192) - - MDRV_GFXDECODE(gfxdecodeinfo2) - - MDRV_VIDEO_START(namcofl) - MDRV_VIDEO_UPDATE(namcofl) - - NAMCO_C7X_SOUND( 16384000 ) -MACHINE_DRIVER_END - -ROM_START( speedrcr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("se2mpea4.19a", 0x000000, 0x080000, CRC(95ab3fd7) SHA1(273a536f8512f3c55260ac1b78533bc35b8390ed) ) - ROM_LOAD32_WORD("se2mpoa4.18a", 0x000002, 0x080000, CRC(5b5ef1eb) SHA1(3e9e4abb1a32269baef772079de825dfe1ea230c) ) - - ROM_REGION( 0x200000, REGION_USER1, 0 ) // Data - ROM_LOAD32_BYTE("se1_dat0.13a", 0x000000, 0x080000, CRC(cc5d6ff5) SHA1(6fad40a1fac75bc64d3b7a7562cf7ce2a3abd36a) ) - ROM_LOAD32_BYTE("se1_dat1.14a", 0x000001, 0x080000, CRC(ddc8b306) SHA1(f169d521b800c108deffdef9fc6b0058621ee909) ) - ROM_LOAD32_BYTE("se1_dat2.15a", 0x000002, 0x080000, CRC(2a29abbb) SHA1(945419ed61e9a656a340214a63a01818396fbe98) ) - ROM_LOAD32_BYTE("se1_dat3.16a", 0x000003, 0x080000, CRC(49849aff) SHA1(b7c7eea1d56304e40e996ee998c971313ff03614) ) - - ROM_REGION( 0x200000, NAMCONB1_ROTGFXREGION, 0 ) // "RCHAR" (roz characters) - ROM_LOAD("se1_rch0.19j", 0x000000, 0x100000, CRC(a0827288) SHA1(13691ef4d402a6dc91851de4f82cfbdf96d417cb) ) - ROM_LOAD("se1_rch1.18j", 0x100000, 0x100000, CRC(af7609ad) SHA1(b16041f0eb47d7566011d9d762a3083411dc422e) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, 0 ) // "SCHAR" (regular BG characters) - ROM_LOAD("se1_sch0.21p", 0x000000, 0x100000, CRC(7b5cfad0) SHA1(5a0355e37eb191bc0cf8b6b7c3d0274560b9bbd5) ) - ROM_LOAD("se1_sch1.20p", 0x100000, 0x100000, CRC(5086e0d3) SHA1(0aa7d11f4f9a75117e69cc77f1b73a68d9007aef) ) - ROM_LOAD("se1_sch2.19p", 0x200000, 0x100000, CRC(e59a731e) SHA1(3fed72e9bb485d4d689ab51490360c4c6f1dc5cb) ) - ROM_LOAD("se1_sch3.18p", 0x300000, 0x100000, CRC(f817027a) SHA1(71745476f496c60d89c8563b3e46bc85eebc79ce) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) // OBJ - ROM_LOAD16_BYTE("se1obj0l.ic1", 0x000001, 0x200000, CRC(17585218) SHA1(3332afa9bd194ac37b8d6f352507c523a0f2e2b3) ) - ROM_LOAD16_BYTE("se1obj0u.ic2", 0x000000, 0x200000, CRC(d14b1236) SHA1(e5447732ef3acec88fb7a00e0deca3e71a40ae65) ) - ROM_LOAD16_BYTE("se1obj1l.ic3", 0x400001, 0x200000, CRC(c4809fd5) SHA1(e0b80fccc17c83fb9d08f7f1cf2cd2f0f3a510b4) ) - ROM_LOAD16_BYTE("se1obj1u.ic4", 0x400000, 0x200000, CRC(0beefa56) SHA1(012fb7b330dbf851ab2217da0a0e7136ddc3d23f) ) - - ROM_REGION( 0x100000, NAMCONB1_ROTMASKREGION, 0 ) // "RSHAPE" (roz mask like NB-1?) - ROM_LOAD("se1_rsh.14k", 0x000000, 0x100000, CRC(7aa5a962) SHA1(ff936dfcfcc4ee1f5f2232df62def76ff99e671e) ) - - ROM_REGION( 0x100000, NAMCONB1_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) - ROM_LOAD("se1_ssh.18u", 0x000000, 0x100000, CRC(7a8e0bda) SHA1(f6a508d90274d0205fec0c46f5f783a2715c0c6e) ) - - ROM_REGION( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD("se1_spr.21l", 0x000000, 0x80000, CRC(850a27ac) SHA1(7d5db840ec67659a1f2e69a62cdb03ce6ee0b47b) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("se1_voi.23s", 0x000000, 0x400000, CRC(b95e2ffb) SHA1(7669232d772caa9afa4c7593d018e8b6e534114a) ) -ROM_END - -ROM_START( finalapb ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("flr2mpeb.19a", 0x000000, 0x080000, CRC(8bfe615f) SHA1(7b867eb261268a83177f1f873689f77d1b6c47ca) ) - ROM_LOAD32_WORD("flr2mpob.18a", 0x000002, 0x080000, CRC(91c14e4f) SHA1(934a86daaef0e3e2c2b3066f4677ccb3aaab6eaf) ) - - ROM_REGION( 0x200000, REGION_USER1, ROMREGION_ERASEFF ) // Data - - ROM_REGION( 0x200000, NAMCONB1_ROTGFXREGION, 0 ) // "RCHAR" (roz characters) - ROM_LOAD("flr1rch0.19j", 0x000000, 0x100000, CRC(f413f50d) SHA1(cdd8073dda4feaea78e3b94520cf20a9799fd04d) ) - ROM_LOAD("flr1rch1.18j", 0x100000, 0x100000, CRC(4654d519) SHA1(f8bb473013cdca48dd98df0de2f78c300c156e91) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, 0 ) // "SCHAR" (regular BG characters) - ROM_LOAD("flr1sch0.21p", 0x000000, 0x100000, CRC(7169efca) SHA1(66c7aa1b50b236b4700b07be0dca7aebdabedb8c) ) - ROM_LOAD("flr1sch1.20p", 0x100000, 0x100000, CRC(aa233a02) SHA1(0011329f585658d90f820daf0ba08ce2735bddfc) ) - ROM_LOAD("flr1sch2.19p", 0x200000, 0x100000, CRC(9b6b7abd) SHA1(5cdec70db1b46bc5d0866ca155b520157fef3adf) ) - ROM_LOAD("flr1sch3.18p", 0x300000, 0x100000, CRC(50a14f54) SHA1(ab9c2f2e11f006a9dc7e5aedd5788d7d67166d36) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) // OBJ - ROM_LOAD16_BYTE("flr1obj0l.ic1", 0x000001, 0x200000, CRC(364a902c) SHA1(4a1ea48eee86d410e36096cc100b4c9a5a645034) ) - ROM_LOAD16_BYTE("flr1obj0u.ic2", 0x000000, 0x200000, CRC(a5c7b80e) SHA1(4e0e863cfdd8c051c3c4594bb21e11fb93c28f0c) ) - ROM_LOAD16_BYTE("flr1obj1l.ic3", 0x400001, 0x200000, CRC(51fd8de7) SHA1(b1571c45e8c33d746716fd790c704a3361d02bdc) ) - ROM_LOAD16_BYTE("flr1obj1u.ic4", 0x400000, 0x200000, CRC(1737aa3c) SHA1(8eaf0dc5d60a270d2c1626f54f5edbddbb0a59c8) ) - - ROM_REGION( 0x80000, NAMCONB1_ROTMASKREGION, 0 ) // "RSHAPE" (roz mask like NB-1?) - ROM_LOAD("flr1rsh.14k", 0x000000, 0x080000, CRC(037c0983) SHA1(c48574a8ad125cedfaf2538c5ff824e121204629) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) - ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - - ROM_REGION( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD("flr1spr.21l", 0x000000, 0x20000, CRC(69bb0f5e) SHA1(6831d618de42a165e508ad37db594d3aa290c530) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) -ROM_END - -ROM_START( finalapo ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("flr2mpe.19a", 0x000000, 0x080000, CRC(cc8961ae) SHA1(08ce4d27a723101370d1c536b26256ce0d8a1b6c) ) - ROM_LOAD32_WORD("flr2mpo.18a", 0x000002, 0x080000, CRC(8118f465) SHA1(c4b79878a82fd36b5707e92aa893f69c2b942d57) ) - - ROM_REGION( 0x200000, REGION_USER1, ROMREGION_ERASEFF ) // Data - - ROM_REGION( 0x200000, NAMCONB1_ROTGFXREGION, 0 ) // "RCHAR" (roz characters) - ROM_LOAD("flr1rch0.19j", 0x000000, 0x100000, CRC(f413f50d) SHA1(cdd8073dda4feaea78e3b94520cf20a9799fd04d) ) - ROM_LOAD("flr1rch1.18j", 0x100000, 0x100000, CRC(4654d519) SHA1(f8bb473013cdca48dd98df0de2f78c300c156e91) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, 0 ) // "SCHAR" (regular BG characters) - ROM_LOAD("flr1sch0.21p", 0x000000, 0x100000, CRC(7169efca) SHA1(66c7aa1b50b236b4700b07be0dca7aebdabedb8c) ) - ROM_LOAD("flr1sch1.20p", 0x100000, 0x100000, CRC(aa233a02) SHA1(0011329f585658d90f820daf0ba08ce2735bddfc) ) - ROM_LOAD("flr1sch2.19p", 0x200000, 0x100000, CRC(9b6b7abd) SHA1(5cdec70db1b46bc5d0866ca155b520157fef3adf) ) - ROM_LOAD("flr1sch3.18p", 0x300000, 0x100000, CRC(50a14f54) SHA1(ab9c2f2e11f006a9dc7e5aedd5788d7d67166d36) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) // OBJ - ROM_LOAD16_BYTE("flr1obj0l.ic1", 0x000001, 0x200000, CRC(364a902c) SHA1(4a1ea48eee86d410e36096cc100b4c9a5a645034) ) - ROM_LOAD16_BYTE("flr1obj0u.ic2", 0x000000, 0x200000, CRC(a5c7b80e) SHA1(4e0e863cfdd8c051c3c4594bb21e11fb93c28f0c) ) - ROM_LOAD16_BYTE("flr1obj1l.ic3", 0x400001, 0x200000, CRC(51fd8de7) SHA1(b1571c45e8c33d746716fd790c704a3361d02bdc) ) - ROM_LOAD16_BYTE("flr1obj1u.ic4", 0x400000, 0x200000, CRC(1737aa3c) SHA1(8eaf0dc5d60a270d2c1626f54f5edbddbb0a59c8) ) - - ROM_REGION( 0x80000, NAMCONB1_ROTMASKREGION, 0 ) // "RSHAPE" (roz mask like NB-1?) - ROM_LOAD("flr1rsh.14k", 0x000000, 0x080000, CRC(037c0983) SHA1(c48574a8ad125cedfaf2538c5ff824e121204629) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) - ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - - ROM_REGION( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD("flr1spr.21l", 0x000000, 0x20000, CRC(69bb0f5e) SHA1(6831d618de42a165e508ad37db594d3aa290c530) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) -ROM_END - -ROM_START( finalapr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) // i960 program - ROM_LOAD32_WORD("flr1_mpec.19a", 0x000000, 0x080000, CRC(52735494) SHA1(db9873cb39bcfdd3dbe2e5079249fecac2c46df9) ) - ROM_LOAD32_WORD("flr1_mpoc.18a", 0x000002, 0x080000, CRC(b11fe577) SHA1(70b51a1e66a3bb92f027aad7ba0f358c0e139b3c) ) - - ROM_REGION( 0x200000, REGION_USER1, ROMREGION_ERASEFF ) // Data - - ROM_REGION( 0x200000, NAMCONB1_ROTGFXREGION, 0 ) // "RCHAR" (roz characters) - ROM_LOAD("flr1rch0.19j", 0x000000, 0x100000, CRC(f413f50d) SHA1(cdd8073dda4feaea78e3b94520cf20a9799fd04d) ) - ROM_LOAD("flr1rch1.18j", 0x100000, 0x100000, CRC(4654d519) SHA1(f8bb473013cdca48dd98df0de2f78c300c156e91) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, 0 ) // "SCHAR" (regular BG characters) - ROM_LOAD("flr1sch0.21p", 0x000000, 0x100000, CRC(7169efca) SHA1(66c7aa1b50b236b4700b07be0dca7aebdabedb8c) ) - ROM_LOAD("flr1sch1.20p", 0x100000, 0x100000, CRC(aa233a02) SHA1(0011329f585658d90f820daf0ba08ce2735bddfc) ) - ROM_LOAD("flr1sch2.19p", 0x200000, 0x100000, CRC(9b6b7abd) SHA1(5cdec70db1b46bc5d0866ca155b520157fef3adf) ) - ROM_LOAD("flr1sch3.18p", 0x300000, 0x100000, CRC(50a14f54) SHA1(ab9c2f2e11f006a9dc7e5aedd5788d7d67166d36) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 ) // OBJ - ROM_LOAD16_BYTE("flr1obj0l.ic1", 0x000001, 0x200000, CRC(364a902c) SHA1(4a1ea48eee86d410e36096cc100b4c9a5a645034) ) - ROM_LOAD16_BYTE("flr1obj0u.ic2", 0x000000, 0x200000, CRC(a5c7b80e) SHA1(4e0e863cfdd8c051c3c4594bb21e11fb93c28f0c) ) - ROM_LOAD16_BYTE("flr1obj1l.ic3", 0x400001, 0x200000, CRC(51fd8de7) SHA1(b1571c45e8c33d746716fd790c704a3361d02bdc) ) - ROM_LOAD16_BYTE("flr1obj1u.ic4", 0x400000, 0x200000, CRC(1737aa3c) SHA1(8eaf0dc5d60a270d2c1626f54f5edbddbb0a59c8) ) - - ROM_REGION( 0x80000, NAMCONB1_ROTMASKREGION, 0 ) // "RSHAPE" (roz mask like NB-1?) - ROM_LOAD("flr1rsh.14k", 0x000000, 0x080000, CRC(037c0983) SHA1(c48574a8ad125cedfaf2538c5ff824e121204629) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) // "SSHAPE" (mask for other tiles?) - ROM_LOAD("flr1ssh.18u", 0x000000, 0x080000, CRC(f70cb2bf) SHA1(dbddda822287783a43415172b81d0382a8ac43d8) ) - - ROM_REGION( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD("flr1spr.21l", 0x000000, 0x20000, CRC(69bb0f5e) SHA1(6831d618de42a165e508ad37db594d3aa290c530) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) // Samples - ROM_LOAD("flr1voi.23s", 0x000000, 0x200000, CRC(ff6077cd) SHA1(73c289125ddeae3e43153e4c570549ca04501262) ) -ROM_END - -static void namcofl_common_init(void) -{ - namcofl_workram = auto_malloc(0x100000); - - memory_set_bankptr( 1, memory_region(REGION_CPU1) ); - memory_set_bankptr( 2, namcofl_workram ); - - namcoc7x_on_driver_init(); - namcoc7x_set_host_ram(namcofl_mcuram); -} - -static DRIVER_INIT(speedrcr) -{ - namcofl_common_init(); - namcos2_gametype = NAMCOFL_SPEED_RACER; -} - -static DRIVER_INIT(finalapr) -{ - namcofl_common_init(); - namcos2_gametype = NAMCOFL_FINAL_LAP_R; -} - -GAME( 1995, speedrcr, 0, sysfl, sysfl, speedrcr, ROT0, "Namco", "Speed Racer", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1995, finalapr, 0, sysfl, sysfl, finalapr, ROT0, "Namco", "Final Lap R (Japan Rev. C)", GAME_IMPERFECT_SOUND ) -GAME( 1995, finalapb, finalapr, sysfl, sysfl, finalapr, ROT0, "Namco", "Final Lap R (Rev. B)", GAME_IMPERFECT_SOUND ) -GAME( 1995, finalapo, finalapr, sysfl, sysfl, finalapr, ROT0, "Namco", "Final Lap R", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/namconb1.c b/src/drivers/namconb1.c deleted file mode 100644 index 2e10a4d0b..000000000 --- a/src/drivers/namconb1.c +++ /dev/null @@ -1,1418 +0,0 @@ -/* -Namco System NB-1 - -Notes: -- tilemap system is identical to Namco System2 - -ToDo: -- gunbulet force feedback -- MCU simulation (coin/inputs) is incomplete; it doesn't handle coinage -- sound support - -Main CPU : Motorola 68020 32-bit processor @ 25MHz -Secondary CPUs : C329 + 137 (both custom) -Custom Graphics Chips : GFX:123,145,156,C116 - Motion Objects:C355,187,C347 -Sound CPU : C351 (custom) -PCM Sound chip : C352 (custom) -I/O Chip : 160 (custom) -Board composition : Single board - -Known games using this hardware: -- Great Sluggers '93 -- Great Sluggers '94 -- Gun Bullet / Point Blank -- Nebulas Ray -- Super World Stadium '95 -- Super World Stadium '96 -- Super World Stadium '97 -- OutFoxies -- Mach Breakers - -***************************************************** - -Gun Bullet (JPN Ver.) -(c)1994 Namco -KeyCus.:C386 - -Note: CPU - Main PCB (NB-1) - MEM - MEMEXT OBJ8 PCB at J103 on the main PCB - SPR - MEMEXT SPR PCB at location 5B on the main PCB - - - Namco main PCB: NB-1 8634961101, (8634963101) - - MEMEXT OBJ8 PCB: 8635902201, (8635902301) - - * - Surface mounted ROMs - # - 32 pin DIP Custom IC (16bytes x 16-bit) - -Brief hardware overview ------------------------ - -Main processor - MC68EC020FG25 25MHz (100 pin PQFP) - - C329 custom (100 pin PQFP) - - 137 custom PLD (28 pin NDIP) - - C366 Key Custom - -Sound processor - C351 custom (160 pin PQFP) - (PCM) - C352 custom (100 pin PQFP) - (control inputs) - 160 custom (80 pin PQFP) - -GFX - 123 custom (80 pin PQFP) - - 145 custom (80 pin PQFP) - - 156 custom (64 pin PQFP) - - C116 custom (80 pin PQFP) - -Motion Objects - C355 custom (160 pin PQFP) - - 187 custom (160 pin PQFP) - - C347 custom (80 pin PQFP) - -PCB Jumper Settings -------------------- - -Location Setting Alt. Setting ----------------------------------------- - JP1 1M 4M - JP2 4M 1M - JP5 <1M 1M - JP6 8M >8M - JP7 4M 1M - JP8 4M 1M - JP9 cON cOFF - JP10 24M (MHz) 12M (MHz) - JP11 24M (MHz) 28M (MHz) - JP12 355 F32 - -***************************************************** - -Super World Stadium '95 (JPN Ver.) -(c)1986-1993 1995 Namco - -Namco NB-1 system - -KeyCus.:C393 - -***************************************************** - -Super World Stadium '96 (JPN Ver.) -(c)1986-1993 1995 1996 Namco - -Namco NB-1 system - -KeyCus.:C426 - -***************************************************** - -Super World Stadium '97 (JPN Ver.) -(c)1986-1993 1995 1996 1997 Namco - -Namco NB-1 system - -KeyCus.:C434 - -***************************************************** - -Great Sluggers Featuring 1994 Team Rosters -(c)1993 1994 Namco / 1994 MLBPA - -Namco NB-1 system - -KeyCus.:C359 - -***************************************************** - --------------------------- -Nebulasray by NAMCO (1994) --------------------------- -Location Device File ID Checksum -------------------------------------------------- -CPU 13B 27C402 NR1-MPRU B0ED [ MAIN PROG ] -CPU 15B 27C240 NR1-MPRL 90C4 [ MAIN PROG ] -SPR 27C1024 NR1-SPR0 99A6 [ SOUND PRG ] -CPU 5M MB834000B NR1-SHA0 DD59 [ SHAPE ] -CPU 8J MB838000B NR1-CHR0 22A4 [ CHARACTER ] -CPU 9J MB838000B NR1-CHR1 19D0 [ CHARACTER ] -CPU 10J MB838000B NR1-CHR2 B524 [ CHARACTER ] -CPU 11J MB838000B NR1-CHR3 0AF4 [ CHARACTER ] -CPU 5J KM2316000 NR1-VOI0 8C41 [ VOICE ] -MEM IC1 MT26C1600 * NR1-OBJ0L FD7C [ MOTION OBJL ] -MEM IC3 MT26C1600 * NR1-OBJ1L 7069 [ MOTION OBJL ] -MEM IC5 MT26C1600 * NR1-OBJ2L 07DC [ MOTION OBJL ] -MEM IC7 MT26C1600 * NR1-OBJ3L A61E [ MOTION OBJL ] -MEM IC2 MT26C1600 * NR1-OBJ0U 44D3 [ MOTION OBJU ] -MEM IC4 MT26C1600 * NR1-OBJ1U F822 [ MOTION OBJU ] -MEM IC6 MT26C1600 * NR1-OBJ2U DD24 [ MOTION OBJU ] -MEM IC8 MT26C1600 * NR1-OBJ3U F750 [ MOTION OBJU ] -CPU 11D Custom # C366.BIN 1C93 [ KEYCUSTUM ] - -Note: CPU - Main PCB (NB-1) - MEM - MEMEXT OBJ8 PCB at J103 on the main PCB - SPR - MEMEXT SPR PCB at location 5B on the main PCB - - - Namco main PCB: NB-1 8634961101, (8634963101) - - MEMEXT OBJ8 PCB: 8635902201, (8635902301) - - * - Surface mounted ROMs - # - 32 pin DIP Custom IC (16bytes x 16-bit) - -Brief hardware overview ------------------------ - -Main processor - MC68EC020FG25 25MHz (100 pin PQFP) - - C329 custom (100 pin PQFP) - - 137 custom PLD (28 pin NDIP) - - C366 Key Custom - -Sound processor - C351 custom (160 pin PQFP) - (PCM) - C352 custom (100 pin PQFP) - (control inputs) - 160 custom (80 pin PQFP) - -GFX - 123 custom (80 pin PQFP) - - 145 custom (80 pin PQFP) - - 156 custom (64 pin PQFP) - - C116 custom (80 pin PQFP) - -Motion Objects - C355 custom (160 pin PQFP) - - 187 custom (160 pin PQFP) - - C347 custom (80 pin PQFP) - -PCB Jumper Settings -------------------- - -Location Setting Alt. Setting ----------------------------------------- - JP1 1M 4M - JP2 4M 1M - JP5 <1M 1M - JP6 8M >8M - JP7 4M 1M - JP8 4M 1M - JP9 cON cOFF - JP10 24M (MHz) 12M (MHz) - JP11 24M (MHz) 28M (MHz) - JP12 355 F32 - - -Namco System NB2 - -Games running on this hardware: -- Outfoxies -- Mach Breakers - -Changes from Namcon System NB1 include: -- different memory map -- more complex sprite and tile banking -- 2 additional ROZ layers - ------------------------------ -The Outfoxies by NAMCO (1994) ------------------------------ -Location Device File ID Checksum ----------------------------------------------------- -CPU 11C PRGL 27C4002 OU2-MPRL 166F -CPU 11D PRGU 27C4002 OU2-MPRU F4C1 -CPU 5B SPR0 27C240 OU1-SPR0 7361 -CPU 20A DAT0 27C4002 OU1-DAT0 FCD1 -CPU 20B DAT1 27C4002 OU1-DAT1 0973 -CPU 18S SHAPE-R MB83800 OU1-SHAR C922 -CPU 12S SHAPE-S MB83400 OU1-SHAS 2820 -CPU 6N VOICE0 MB831600 OU1-VOI0 4132 -ROM 4C OBJ0L 16Meg SMD OU1-OBJ0L 171B -ROM 8C OBJ0U 16Meg SMD OU1-OBJ0U F961 -ROM 4B OBJ1L 16Meg SMD OU1-OBJ1L 1579 -ROM 8B OBJ1U 16Meg SMD OU1-OBJ1U E8DF -ROM 4A OBJ2L 16Meg SMD OU1-OBJ2L AE7B -ROM 8A OBJ2U 16Meg SMD OU1-OBJ2U 6588 -ROM 6C OBJ3L 16Meg SMD OU1-OBJ3L 9ED3 -ROM 9C OBJ3U 16Meg SMD OU1-OBJ3U ED3B -ROM 6B OBJ4L 16Meg SMD OU1-OBJ4L 59D4 -ROM 9B OBJ4U 16Meg SMD OU1-OBJ4U 56CA -ROM 3D ROT0 16Meg SMD OU1-ROT0 A615 -ROM 3C ROT1 16Meg SMD OU1-ROT1 6C0A -ROM 3B ROT2 16Meg SMD OU1-ROT2 313E -ROM 1D SCR0 16Meg SMD OU1-SCR0 751A - -CPU 8B DEC75 PAL16L8A NB1-2 -CPU 16N MIXER PAL16V8H NB2-1 -CPU 11E SIZE PAL16L8A NB2-2 -CPU 22C KEYCUS KeyCustom C390 - -CPU - Namco NB-2 Main PCB 8639960102 (8639970102) -ROM - Namco NB-2 Mask ROM PCB 8639969800 (8639979800) - - - Audio out is Stereo - -Jumper Settings: - - Setting Alternate -JP1 4M 1M -JP2 GND A20 -JP3 GND A20 -JP6 4M 1M -JP8 GND A20 -JP9 CON COFF -JP10 GND A20 - -Hardware info: - -Main CPU: MC68EC020FG25 - Custom C383 (100 pin PQFP) - Custom C385 (144 pin PQFP) - -Slave CPU: ?Custom C382 (160 pin PQFP) - Custom 160 ( 80 pin PQFP) - Custom C352 (100 pin PQFP) - -GFX: Custom 145 ( 80 pin PQFP) - Custom 156 ( 64 pin PQFP) - Custom 123 ( 64 pin PQFP) - 3x Custom 384 ( 48 pin PQFP) - Custom C355 (160 pin PQFP) - Custom 187 (120 pin PQFP) - Custom 169 (120 pin PQFP) -*/ -#include "driver.h" -#include "namconb1.h" -#include "namcos2.h" -#include "namcoic.h" -#include "sndhrdw/namcoc7x.h" - -#define NB1_NVMEM_SIZE (0x800) -static UINT32 *nvmem32; - -UINT32 *namconb1_workram32; -UINT32 *namconb1_spritebank32; -UINT32 *namconb1_tilebank32; - -/****************************************************************************/ - -static UINT32 *namconb_cpureg32; - -static int -GetCPURegister(int which) -{ - return (namconb_cpureg32[which/4]<<((which&3)*8))>>24; -} - -static void namconb1_TriggerPOSIRQ( int scanline ) -{ - int irqlevel = GetCPURegister(0x04)>>4; - video_screen_update_partial(0, scanline); - cpunum_set_input_line(0, irqlevel, PULSE_LINE); -} - -static void namconb2_TriggerPOSIRQ( int scanline ) -{ - int irqlevel = GetCPURegister(0x02); - video_screen_update_partial(0, scanline); - cpunum_set_input_line(0, irqlevel, PULSE_LINE); -} /* namconb2_TriggerPOSIRQ */ - -static INTERRUPT_GEN( namconb2_interrupt ) -{ - /** - * f00000 0x01 // VBLANK irq level - * f00001 0x00 - * f00002 0x05 // POSIRQ level - * f00003 0x00 - * - * f00004 VBLANK ack - * f00005 - * f00006 POSIRQ ack - * f00007 - * - * f00008 - * - * f00009 0x62 - * f0000a 0x0f - * f0000b 0x41 - * f0000c 0x70 - * f0000d 0x70 - * f0000e 0x23 - * f0000f 0x50 - * f00010 0x00 - * f00011 0x64 - * f00012 0x18 - * f00013 0xe7 - * f00014 (watchdog) - * f00016 0x00 - * f0001e 0x00 - * f0001f 0x01 - */ - int scanline = (paletteram32[0x1808/4]&0xffff)-32; - int irqlevel = GetCPURegister(0x00); - cpunum_set_input_line( 0, irqlevel, HOLD_LINE); - - if( scanline<0 ) - { - scanline = 0; - } - if( scanline < NAMCONB1_ROWS*8 ) - { - timer_set( cpu_getscanlinetime(scanline), scanline, namconb2_TriggerPOSIRQ ); - } -} /* namconb2_interrupt */ -static INTERRUPT_GEN( namconb1_interrupt ) -{ - /** - * 400000 0x00 - * 400001 0x00 - * 400002 0x00 - * 400003 0x00 - * 400004 0x35 // irq levels - * 400005 0x00 - * 400006 0x00 - * 400007 0x00 - * 400008 0x00 - * 400009 0x00 VBLANK ack - * 40000a 0x00 - * 40000b 0x03 - * 40000c 0x07 - * 40000d 0x01 - * 40000e 0x10 - * 40000f 0x03 - * 400010 0x00 - * 400011 0x07 - * 400012 0x10 - * 400013 0x10 - * 400014 0x00 - * 400015 0x01 - * 400016 (watchdog) - * 400017 0x00 - * 400018 0x01 - * 400019 0x00 - * 40001a 0x00 - * 40001b 0x00 - * 40001c 0x00 - * 40001d 0x00 - * 40001e 0x00 - * 40001f 0x00 - */ - int scanline = (paletteram32[0x1808/4]&0xffff)-32; - int irqlevel = GetCPURegister(0x04)&0xf; - cpunum_set_input_line( 0, irqlevel, HOLD_LINE); - if( scanline<0 ) - { - scanline = 0; - } - if( scanline < NAMCONB1_ROWS*8 ) - { - timer_set( cpu_getscanlinetime(scanline), scanline, namconb1_TriggerPOSIRQ ); - } -} /* namconb1_interrupt */ - -static WRITE32_HANDLER( namconb_cpureg_w ) -{ - COMBINE_DATA( &namconb_cpureg32[offset] ); -} /* namconb_cpureg_w */ - -/****************************************************************************/ - -static NVRAM_HANDLER( namconb1 ) -{ - int i; - UINT8 data[4]; - if( read_or_write ) - { - for( i=0; i>24; - data[1] = (dword&0x00ff0000)>>16; - data[2] = (dword&0x0000ff00)>>8; - data[3] = dword&0xff; - mame_fwrite( file, data, 4 ); - } - } - else - { - if (file) - { - for( i=0; i>16), offset*2); - } - else if (mem_mask == 0xffff0000) - { - namcoc7x_sound_write16((data&0xffff), (offset*2)+1); - } - } - - COMBINE_DATA(&namconb1_workram32[offset]); -} - -static ADDRESS_MAP_START( namconb1_am, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x10001f) AM_READ(gunbulet_gun_r) - AM_RANGE(0x1c0000, 0x1cffff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) - AM_RANGE(0x1e4000, 0x1e4003) AM_READWRITE(randgen_r,srand_w) - AM_RANGE(0x200000, 0x2fffff) AM_READ(MRA32_RAM) AM_WRITE(sharedram_w) AM_BASE(&namconb1_workram32) /* shared with MCU) */ - AM_RANGE(0x400000, 0x40001f) AM_READ(MRA32_RAM) AM_WRITE(namconb_cpureg_w) AM_BASE(&namconb_cpureg32) - AM_RANGE(0x580000, 0x5807ff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&nvmem32) - AM_RANGE(0x600000, 0x61ffff) AM_READWRITE(namco_obj32_r,namco_obj32_w) - AM_RANGE(0x620000, 0x620007) AM_READWRITE(namco_spritepos32_r,namco_spritepos32_w) - AM_RANGE(0x640000, 0x64ffff) AM_READWRITE(namco_tilemapvideoram32_r,namco_tilemapvideoram32_w ) - AM_RANGE(0x660000, 0x66003f) AM_READWRITE(namco_tilemapcontrol32_r,namco_tilemapcontrol32_w) - AM_RANGE(0x680000, 0x68000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_spritebank32) - AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITE(MWA32_NOP) - AM_RANGE(0x700000, 0x707fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&paletteram32) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( namconb2_am, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) AM_WRITE(MWA32_ROM) - AM_RANGE(0x1c0000, 0x1cffff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) - AM_RANGE(0x1e4000, 0x1e4003) AM_READWRITE(randgen_r,srand_w) - AM_RANGE(0x200000, 0x2fffff) AM_READ(MRA32_RAM) AM_WRITE(sharedram_w) AM_BASE(&namconb1_workram32) /* shared with MCU */ - AM_RANGE(0x400000, 0x4fffff) AM_READ(MRA32_BANK1)/* data ROMs */ - AM_RANGE(0x600000, 0x61ffff) AM_READWRITE(namco_obj32_r,namco_obj32_w) - AM_RANGE(0x620000, 0x620007) AM_READWRITE(namco_spritepos32_r,namco_spritepos32_w) - AM_RANGE(0x640000, 0x64000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) /* unknown xy offset */ - AM_RANGE(0x680000, 0x68ffff) AM_READWRITE(namco_tilemapvideoram32_r, namco_tilemapvideoram32_w ) - AM_RANGE(0x6c0000, 0x6c003f) AM_READWRITE(namco_tilemapcontrol32_r, namco_tilemapcontrol32_w ) - AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(namco_rozvideoram32_r,namco_rozvideoram32_w) - AM_RANGE(0x740000, 0x74001f) AM_READWRITE(namco_rozcontrol32_r,namco_rozcontrol32_w) - AM_RANGE(0x800000, 0x807fff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&paletteram32) - AM_RANGE(0x900008, 0x90000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_spritebank32) - AM_RANGE(0x940000, 0x94000f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb1_tilebank32) - AM_RANGE(0x980000, 0x98000f) AM_READ(namco_rozbank32_r) AM_WRITE(namco_rozbank32_w) - AM_RANGE(0xa00000, 0xa007ff) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&nvmem32) - AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITE(MWA32_NOP) - AM_RANGE(0xf00000, 0xf0001f) AM_READ(MRA32_RAM) AM_WRITE(MWA32_RAM) AM_BASE(&namconb_cpureg32) -ADDRESS_MAP_END /* namconb2_readmem */ - -#define MASTER_CLOCK_HZ 48384000 - -NAMCO_C7X_HARDWARE - -static MACHINE_DRIVER_START( namconb1 ) - MDRV_CPU_ADD(M68EC020,MASTER_CLOCK_HZ/2) - MDRV_CPU_PROGRAM_MAP(namconb1_am,0) - MDRV_CPU_VBLANK_INT(namconb1_interrupt,1) - - NAMCO_C7X_MCU(MASTER_CLOCK_HZ/3) - - MDRV_SCREEN_REFRESH_RATE(59.7) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_NVRAM_HANDLER(namconb1) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(NAMCONB1_COLS*8, NAMCONB1_ROWS*8) /* 288x224 pixels */ - MDRV_SCREEN_VISIBLE_AREA(0*8, NAMCONB1_COLS*8-1, 0*8, NAMCONB1_ROWS*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x2000) - MDRV_VIDEO_START(namconb1) - MDRV_VIDEO_UPDATE(namconb1) - - NAMCO_C7X_SOUND(MASTER_CLOCK_HZ/3) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( namconb2 ) - MDRV_CPU_ADD(M68EC020,MASTER_CLOCK_HZ/2) - MDRV_CPU_PROGRAM_MAP(namconb2_am,0) - MDRV_CPU_VBLANK_INT(namconb2_interrupt,1) - - NAMCO_C7X_MCU(MASTER_CLOCK_HZ/3) - - MDRV_SCREEN_REFRESH_RATE(59.7) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_NVRAM_HANDLER(namconb1) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(NAMCONB1_COLS*8, NAMCONB1_ROWS*8) /* 288x224 pixels */ - MDRV_SCREEN_VISIBLE_AREA(0*8, NAMCONB1_COLS*8-1, 0*8, NAMCONB1_ROWS*8-1) - MDRV_GFXDECODE(gfxdecodeinfo2) - MDRV_PALETTE_LENGTH(0x2000) - MDRV_VIDEO_START(namconb2) - MDRV_VIDEO_UPDATE(namconb2) - - NAMCO_C7X_SOUND(MASTER_CLOCK_HZ/3) -MACHINE_DRIVER_END - -/***************************************************************/ - -ROM_START( ptblank ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "gn2mprlb.15b", 0x00002, 0x80000, CRC(fe2d9425) SHA1(51b166a629cbb522720d63720558816b496b6b76) ) - ROM_LOAD32_WORD( "gn2mprub.13b", 0x00000, 0x80000, CRC(3bf4985a) SHA1(f559e0d5f55d23d886fe61bd7d5ca556acc7f87c) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "gn1-spr0.bin", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "gn1-voi0.bin", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "gn1obj0l.bin", 0x000001, 0x200000, CRC(06722dc8) SHA1(56fee4e17ed707fa6dbc6bad0d0281fc8cdf72d1) ) - ROM_LOAD16_BYTE( "gn1obj0u.bin", 0x000000, 0x200000, CRC(fcefc909) SHA1(48c19b6032096dd80777aa6d5eb5f90463095cbe) ) - ROM_LOAD16_BYTE( "gn1obj1u.bin", 0x400000, 0x200000, CRC(3109a071) SHA1(4bb16df5a3aecdf37baf843edfc82952d46f5227) ) - ROM_LOAD16_BYTE( "gn1obj1l.bin", 0x400001, 0x200000, CRC(48468df7) SHA1(c5fb9082c84ac2ffceb6f5f4cbc1d40047c55e3d) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "gn1-chr0.bin", 0x000000, 0x100000, CRC(a5c61246) SHA1(d1d9f286b93b5b9880160029c53384d13c08dd8a) ) - ROM_LOAD( "gn1-chr1.bin", 0x100000, 0x100000, CRC(c8c59772) SHA1(91de633a300e3b25a919579eaada5549640ab6f0) ) - ROM_LOAD( "gn1-chr2.bin", 0x200000, 0x100000, CRC(dc96d999) SHA1(d006a401762b57fef6716f56eb3a7edcb3d3c00e) ) - ROM_LOAD( "gn1-chr3.bin", 0x300000, 0x100000, CRC(4352c308) SHA1(785c13df219dceac2f940519141665b630a29f86) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "gn1-sha0.bin", 0, 0x80000, CRC(86d4ff85) SHA1(a71056b2bcbba50c834fe28269ebda9719df354a) ) -ROM_END - -ROM_START( gunbulet ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "gn1-mprl.bin", 0x00002, 0x80000, CRC(f99e309e) SHA1(3fe0ddf756e6849f8effc7672456cbe32f65c98a) ) - ROM_LOAD32_WORD( "gn1-mpru.bin", 0x00000, 0x80000, CRC(72a4db07) SHA1(8c5e1e51cd961b311d03f7b21f36a5bd5e8e9104) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "gn1-spr0.bin", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "gn1-voi0.bin", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "gn1obj0l.bin", 0x000001, 0x200000, CRC(06722dc8) SHA1(56fee4e17ed707fa6dbc6bad0d0281fc8cdf72d1) ) - ROM_LOAD16_BYTE( "gn1obj0u.bin", 0x000000, 0x200000, CRC(fcefc909) SHA1(48c19b6032096dd80777aa6d5eb5f90463095cbe) ) - ROM_LOAD16_BYTE( "gn1obj1u.bin", 0x400000, 0x200000, CRC(3109a071) SHA1(4bb16df5a3aecdf37baf843edfc82952d46f5227) ) - ROM_LOAD16_BYTE( "gn1obj1l.bin", 0x400001, 0x200000, CRC(48468df7) SHA1(c5fb9082c84ac2ffceb6f5f4cbc1d40047c55e3d) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "gn1-chr0.bin", 0x000000, 0x100000, CRC(a5c61246) SHA1(d1d9f286b93b5b9880160029c53384d13c08dd8a) ) - ROM_LOAD( "gn1-chr1.bin", 0x100000, 0x100000, CRC(c8c59772) SHA1(91de633a300e3b25a919579eaada5549640ab6f0) ) - ROM_LOAD( "gn1-chr2.bin", 0x200000, 0x100000, CRC(dc96d999) SHA1(d006a401762b57fef6716f56eb3a7edcb3d3c00e) ) - ROM_LOAD( "gn1-chr3.bin", 0x300000, 0x100000, CRC(4352c308) SHA1(785c13df219dceac2f940519141665b630a29f86) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "gn1-sha0.bin", 0, 0x80000, CRC(86d4ff85) SHA1(a71056b2bcbba50c834fe28269ebda9719df354a) ) -ROM_END - -ROM_START( nebulray ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "nr2-mpru.13b", 0x00000, 0x80000, CRC(049b97cb) SHA1(0e344b29a4d4bdc854fa9849589772df2eeb0a05) ) - ROM_LOAD32_WORD( "nr2-mprl.15b", 0x00002, 0x80000, CRC(0431b6d4) SHA1(54c96e8ac9e753956c31bdef79d390f1c20e10ff) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) - - ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "nr1obj0u", 0x000000, 0x200000, CRC(fb82a881) SHA1(c9fa0728a37376a5c85bff1f6e8400c13ce15769) ) - ROM_LOAD16_BYTE( "nr1obj0l", 0x000001, 0x200000, CRC(0e99ef46) SHA1(450fe61e448270b633f312361bd5ca89bb9684dd) ) - ROM_LOAD16_BYTE( "nr1obj1u", 0x400000, 0x200000, CRC(49d9dbd7) SHA1(2dbd842c192d65888f931cdb5c9387127b1ab632) ) - ROM_LOAD16_BYTE( "nr1obj1l", 0x400001, 0x200000, CRC(f7a898f0) SHA1(a25a134a42adeb9088019bde42a96d120f20407e) ) - ROM_LOAD16_BYTE( "nr1obj2u", 0x800000, 0x200000, CRC(8c8205b1) SHA1(2c5fb9392d8cd5f8d1f9aba6ddbbafd061271cd4) ) - ROM_LOAD16_BYTE( "nr1obj2l", 0x800001, 0x200000, CRC(b39871d1) SHA1(a8f910702bb88a001f2bfd1b33ad355aa3b0f429) ) - ROM_LOAD16_BYTE( "nr1obj3u", 0xc00000, 0x200000, CRC(d5918c9e) SHA1(530781fb44d7bbf01669bb265b658cb60e27bcd7) ) - ROM_LOAD16_BYTE( "nr1obj3l", 0xc00001, 0x200000, CRC(c90d13ae) SHA1(675f7b8b3325aac91b2bae1cbebe274a65aedc43) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "nr1-chr0", 0x000000, 0x100000,CRC(8d5b54ea) SHA1(616d5729f474da91da19a8246066280652da998c) ) - ROM_LOAD( "nr1-chr1", 0x100000, 0x100000,CRC(cd21630c) SHA1(9974c0eb1051ca52f001e6631264a1936bb50620) ) - ROM_LOAD( "nr1-chr2", 0x200000, 0x100000,CRC(70a11023) SHA1(bead486a86bd96c6fdfd2ea4d4d37c38bbe9bfbb) ) - ROM_LOAD( "nr1-chr3", 0x300000, 0x100000,CRC(8f4b1d51) SHA1(b48fb2c8ccd9105a5b48be44dd3fe4309769efa4) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "nr1-sha0", 0, 0x80000,CRC(ca667e13) SHA1(685032603224cb81bcb85361921477caec570d5e) ) - - ROM_REGION( 0x20, REGION_PROMS, 0 ) /* custom key data? */ - ROM_LOAD( "c366.bin", 0, 0x20, CRC(8c96f31d) SHA1(d186859cfc19a63266084372080d0a5bee687ae2) ) -ROM_END - -ROM_START( nebulryj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "nr1-mpru", 0x00000, 0x80000, CRC(42ef71f9) SHA1(20e3cb63e1fde293c60c404b378d901d635c4b79) ) - ROM_LOAD32_WORD( "nr1-mprl", 0x00002, 0x80000, CRC(fae5f62c) SHA1(143d716abbc834aac6270db3bbb89ec71ea3804d) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "nr1-spr0", 0, 0x20000, CRC(1cc2b44b) SHA1(161f4ed39fabe89d7ee1d539f8b9f08cd0ff3111) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "nr1-voi0", 0, 0x200000, CRC(332d5e26) SHA1(9daddac3fbe0709e25ed8e0b456bac15bfae20d7) ) - - ROM_REGION( 0x1000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "nr1obj0u", 0x000000, 0x200000, CRC(fb82a881) SHA1(c9fa0728a37376a5c85bff1f6e8400c13ce15769) ) - ROM_LOAD16_BYTE( "nr1obj0l", 0x000001, 0x200000, CRC(0e99ef46) SHA1(450fe61e448270b633f312361bd5ca89bb9684dd) ) - ROM_LOAD16_BYTE( "nr1obj1u", 0x400000, 0x200000, CRC(49d9dbd7) SHA1(2dbd842c192d65888f931cdb5c9387127b1ab632) ) - ROM_LOAD16_BYTE( "nr1obj1l", 0x400001, 0x200000, CRC(f7a898f0) SHA1(a25a134a42adeb9088019bde42a96d120f20407e) ) - ROM_LOAD16_BYTE( "nr1obj2u", 0x800000, 0x200000, CRC(8c8205b1) SHA1(2c5fb9392d8cd5f8d1f9aba6ddbbafd061271cd4) ) - ROM_LOAD16_BYTE( "nr1obj2l", 0x800001, 0x200000, CRC(b39871d1) SHA1(a8f910702bb88a001f2bfd1b33ad355aa3b0f429) ) - ROM_LOAD16_BYTE( "nr1obj3u", 0xc00000, 0x200000, CRC(d5918c9e) SHA1(530781fb44d7bbf01669bb265b658cb60e27bcd7) ) - ROM_LOAD16_BYTE( "nr1obj3l", 0xc00001, 0x200000, CRC(c90d13ae) SHA1(675f7b8b3325aac91b2bae1cbebe274a65aedc43) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "nr1-chr0", 0x000000, 0x100000,CRC(8d5b54ea) SHA1(616d5729f474da91da19a8246066280652da998c) ) - ROM_LOAD( "nr1-chr1", 0x100000, 0x100000,CRC(cd21630c) SHA1(9974c0eb1051ca52f001e6631264a1936bb50620) ) - ROM_LOAD( "nr1-chr2", 0x200000, 0x100000,CRC(70a11023) SHA1(bead486a86bd96c6fdfd2ea4d4d37c38bbe9bfbb) ) - ROM_LOAD( "nr1-chr3", 0x300000, 0x100000,CRC(8f4b1d51) SHA1(b48fb2c8ccd9105a5b48be44dd3fe4309769efa4) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "nr1-sha0", 0, 0x80000,CRC(ca667e13) SHA1(685032603224cb81bcb85361921477caec570d5e) ) - - ROM_REGION( 0x20, REGION_PROMS, 0 ) /* custom key data? */ - ROM_LOAD( "c366.bin", 0, 0x20, CRC(8c96f31d) SHA1(d186859cfc19a63266084372080d0a5bee687ae2) ) -ROM_END - -ROM_START( gslgr94u ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "gse2mprl.bin", 0x00002, 0x80000, CRC(a514349c) SHA1(1f7ec81cd6193410d2f01e6f0f84878561fc8035) ) - ROM_LOAD32_WORD( "gse2mpru.bin", 0x00000, 0x80000, CRC(b6afd238) SHA1(438a3411ac8ce3d22d5da8c0800738cb8d2994a9) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "gse2spr0.bin", 0, 0x20000, CRC(17e87cfc) SHA1(9cbeadb6dfcb736e8c80eab344f70fc2f58469d6) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "gse-voi0.bin", 0, 0x200000, CRC(d3480574) SHA1(0c468ed060769b36b7e41cf4919cb6d8691d64f6) ) - - ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "gseobj0l.bin", 0x000001, 0x200000, CRC(531520ca) SHA1(2a1a5282549c6f7a37d5fb8c0b342edb9dc45315) ) - ROM_LOAD16_BYTE( "gseobj0u.bin", 0x000000, 0x200000, CRC(fcc1283c) SHA1(fb44ed742f362e6737412cabf3f67d9506456a9e) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "gse-chr0.bin", 0x000000, 0x100000, CRC(9314085d) SHA1(150e8ea908861337f9be2749aa7f9e1d52570586) ) - ROM_LOAD( "gse-chr1.bin", 0x100000, 0x100000, CRC(c128a887) SHA1(4faf78064dd48ec50684a7dc8d120f8c5985bf2a) ) - ROM_LOAD( "gse-chr2.bin", 0x200000, 0x100000, CRC(48f0a311) SHA1(e39adcce835542e64ca87f6019d4a85fcbe388c2) ) - ROM_LOAD( "gse-chr3.bin", 0x300000, 0x100000, CRC(adbd1f88) SHA1(3c7bb1a9a398412bd3c98cadf8ce63a16e2bfed5) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "gse-sha0.bin", 0, 0x80000, CRC(6b2beabb) SHA1(815f7aef44735584edd4a9ca7e672471d07f225e) ) -ROM_END - -ROM_START( gslugrsj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "gs1mprl.15b", 0x00002, 0x80000, CRC(1e6c3626) SHA1(56abe21884fd87df10996db19c49ce14214d4b73) ) - ROM_LOAD32_WORD( "gs1mpru.13b", 0x00000, 0x80000, CRC(ef355179) SHA1(0ab0ef4301a318681bb5827d35734a0732b35484) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "gs1spr0.5b", 0, 0x80000, CRC(561ea20f) SHA1(adac6b77effc3a82079a9b228bafca0fcef72ba5) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "gs1voi-0.5j", 0, 0x200000, CRC(6f8262aa) SHA1(beea98d9f8b927a572eb0bfcf678e9d6e40fc68d) ) - - ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "gs1obj-0.ic1", 0x000001, 0x200000, CRC(9a55238f) SHA1(fc3fd4b8b6322bbe343edbcad7815b597562266b) ) - ROM_LOAD16_BYTE( "gs1obj-1.ic2", 0x000000, 0x200000, CRC(31c66f76) SHA1(8903e6586dff6f34a6ffca2d7c75343c0a5bff56) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "gs1chr-0.8j", 0x000000, 0x100000, CRC(e7ced86a) SHA1(de90c2e3870b317431d3910f581660681b46ff9d) ) - ROM_LOAD( "gs1chr-1.9j", 0x100000, 0x100000, CRC(1fe46749) SHA1(f4c0ea666d52cb1c8b1da93e7486ade5eae336cc) ) - ROM_LOAD( "gs1chr-2.10j", 0x200000, 0x100000, CRC(f53afa20) SHA1(5c317e276ca2355e9737c1e8114dccbb5e11058a) ) - ROM_LOAD( "gs1chr-3.11j", 0x300000, 0x100000, CRC(b149d7da) SHA1(d50c6258db0ccdd69b563e880d1711aae811fbe3) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "gs1sha-0.5m", 0, 0x80000, CRC(8a2832fe) SHA1(a1f54754fb01bbbc87274b1a0a4127fa9296ad1a) ) -ROM_END - -ROM_START( sws95 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "ss51mprl.bin", 0x00002, 0x80000, CRC(c9e0107d) SHA1(0f10582416023a86ea1ef2679f3f06016c086e08) ) - ROM_LOAD32_WORD( "ss51mpru.bin", 0x00000, 0x80000, CRC(0d93d261) SHA1(5edef26e2c86dbc09727d910af92747d022e4fed) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "ss51spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "ss51voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) - - - ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ss51ob0l.bin", 0x000001, 0x200000, CRC(e0395694) SHA1(e52045a7af4c4b0f9935695cfc5ff729bf9bd7c1) ) - ROM_LOAD16_BYTE( "ss51ob0u.bin", 0x000000, 0x200000, CRC(b0745ca0) SHA1(579ea7fd7b9a181fd9d08c50c6c5941264aa0b6d) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ss51chr0.bin", 0x000000, 0x100000, CRC(86dd3280) SHA1(07ba6d3edc5c38bf82ddaf8f6de7ef0f5d0788b2) ) - ROM_LOAD( "ss51chr1.bin", 0x100000, 0x100000, CRC(2ba0fb9e) SHA1(39ceddad7bc0073b361eb776762002a9fc61b337) ) - ROM_LOAD( "ss51chr2.bin", 0x200000, 0x100000, CRC(ca0e6c1a) SHA1(1221cd30894e97e2f7d456509c7b6732ec3d06a5) ) - ROM_LOAD( "ss51chr3.bin", 0x300000, 0x100000, CRC(73ca58f6) SHA1(44bdc943fb10dc53279662cd528169a27d57e478) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "ss51sha0.bin", 0, 0x80000, CRC(3bf4d081) SHA1(7b07b86f753ea6bcd90eb7d152c12884a6fe785a) ) -ROM_END - -ROM_START( sws96 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "ss61mprl.bin", 0x00002, 0x80000, CRC(06f55e73) SHA1(6be26f8a2ef600bf07c580f210d7b265ac464002) ) - ROM_LOAD32_WORD( "ss61mpru.bin", 0x00000, 0x80000, CRC(0abdbb83) SHA1(67e8b712291f9bcf2c3a52fbc451fad54679cab8) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "ss61spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "ss61voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) - - ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ss61ob0l.bin", 0x000001, 0x200000, CRC(579b19d4) SHA1(7f18097c683d2b1c532f54ee514dd499f5965165) ) - ROM_LOAD16_BYTE( "ss61ob0u.bin", 0x000000, 0x200000, CRC(a69bbd9e) SHA1(8f4c44e2caa31d25433a04c19c51904ec9461e2f) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ss61chr0.bin", 0x000000, 0x100000, CRC(9d2ae07b) SHA1(7d268f6c7d8145c913f80049369ae3106d69e939) ) - ROM_LOAD( "ss61chr1.bin", 0x100000, 0x100000, CRC(4dc75da6) SHA1(a29932b4fb39648e2c02df668f46cafb80c53619) ) - ROM_LOAD( "ss61chr2.bin", 0x200000, 0x100000, CRC(1240704b) SHA1(a24281681053cc6649f00ec5a31c7249101eaee1) ) - ROM_LOAD( "ss61chr3.bin", 0x300000, 0x100000, CRC(066581d4) SHA1(999cd478d9da452bb57793cd276c6c0d87e2825e) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "ss61sha0.bin", 0, 0x80000, CRC(fceaa19c) SHA1(c9303a755ac7af19c4804a264d1a09d987f39e74) ) -ROM_END - -ROM_START( sws97 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "ss71mprl.bin", 0x00002, 0x80000, CRC(bd60b50e) SHA1(9e00bacd506182ab2af2c0efdd5cc401b3e46485) ) - ROM_LOAD32_WORD( "ss71mpru.bin", 0x00000, 0x80000, CRC(3444f5a8) SHA1(8d0f35b3ba8f65dbc67c3b2d273833227a8b8b2a) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "ss71spr0.bin", 0, 0x80000, CRC(71cb12f5) SHA1(6e13bd16a5ba14d6e47a21875db3663ada3c06a5) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "ss71voi0.bin", 0, 0x200000, CRC(2740ec72) SHA1(9694a7378ea72771d2b1d43db6d74ed347ba27d3) ) - - ROM_REGION( 0x400000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ss71ob0l.bin", 0x000001, 0x200000, CRC(9559ad44) SHA1(fd56a8620f6958cc090f783d74cb38bba46d2423) ) - ROM_LOAD16_BYTE( "ss71ob0u.bin", 0x000000, 0x200000, CRC(4df4a722) SHA1(07eb94628ceeb7cbce2d39d479f33c37583a346a) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ss71chr0.bin", 0x000000, 0x100000, CRC(bd606356) SHA1(a62c55600e46f8821db0b84d79fc2588742ad7ad) ) - ROM_LOAD( "ss71chr1.bin", 0x100000, 0x100000, CRC(4dc75da6) SHA1(a29932b4fb39648e2c02df668f46cafb80c53619) ) - ROM_LOAD( "ss71chr2.bin", 0x200000, 0x100000, CRC(1240704b) SHA1(a24281681053cc6649f00ec5a31c7249101eaee1) ) - ROM_LOAD( "ss71chr3.bin", 0x300000, 0x100000, CRC(066581d4) SHA1(999cd478d9da452bb57793cd276c6c0d87e2825e) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "ss71sha0.bin", 0, 0x80000, CRC(be8c2758) SHA1(0a1b6c03cdaec6103ae8483b67faf3840234f825) ) -ROM_END - -ROM_START( vshoot ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "vsj1mprl.15b", 0x00002, 0x80000, CRC(83a60d92) SHA1(c3db0c79f772a79418914353a3d6ecc4883ea54e) ) - ROM_LOAD32_WORD( "vsj1mpru.13b", 0x00000, 0x80000, CRC(c63eb92d) SHA1(f93bd4b91daee645677955020dc8df14dc9bfd27) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "vsj1spr0.5b", 0, 0x80000, CRC(b0c71aa6) SHA1(a94fae02b46a645ff728d2f98827c85ff155892b) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "vsjvoi-0.5j", 0, 0x200000, CRC(0528c9ed) SHA1(52b67978fdeb97b77065575774a7ddeb49fe1d81) ) - - ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "vsjobj0l.ic1", 0x000001, 0x200000, CRC(e134faa7) SHA1(a844c8a5bd6d8907f9e5c7ba9e2ee8e9a886cd1e) ) - ROM_LOAD16_BYTE( "vsjobj0u.ic2", 0x000000, 0x200000, CRC(974d0714) SHA1(976050eaf82d4b66e13c1c579e5521eb867527fb) ) - ROM_LOAD16_BYTE( "vsjobj1l.ic3", 0x400001, 0x200000, CRC(ba46f967) SHA1(ddfb0ac7fba7369869e4df9a66d465a662eba2e6) ) - ROM_LOAD16_BYTE( "vsjobj1u.ic4", 0x400000, 0x200000, CRC(09da7e9c) SHA1(e98e07a886a4fe369748fc97f3cee6a4bb668385) ) - - ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "vsjchr-0.8j", 0x000000, 0x100000, CRC(2af8ba7c) SHA1(74f5a382425974a9b2167bb01672dd13dea882f5) ) - ROM_LOAD( "vsjchr-1.9j", 0x100000, 0x100000, CRC(b789d53e) SHA1(48b4cf956f9025e3c2b6f59b317596dfe0b6b142) ) - ROM_LOAD( "vsjchr-2.10j", 0x200000, 0x100000, CRC(7ef80758) SHA1(c7e6d14f0823607dfd8a13ea6f164ffa85b5563e) ) - ROM_LOAD( "vsjchr-3.11j", 0x300000, 0x100000, CRC(73ca58f6) SHA1(44bdc943fb10dc53279662cd528169a27d57e478) ) - - ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "vsjsha-0.5m", 0, 0x80000, CRC(78335ea4) SHA1(d4b9f179b1b456a866354ea308664c036de6414d) ) -ROM_END - -ROM_START( outfxies ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "ou2mprl.11c", 0x00002, 0x80000, CRC(f414a32e) SHA1(9733ab087cfde1b8fb5b676d8a2eb5325ebdbb56) ) - ROM_LOAD32_WORD( "ou2mpru.11d", 0x00000, 0x80000, CRC(ab5083fb) SHA1(cb2e7a4838c2b80057edb83ea63116bccb1394d3) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) - - ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "ou1shas.12s", 0, 0x200000,CRC(9bcb0397) SHA1(54a32b6394d0e6f51bfd281f8a4bafce6ddf6246) ) - - ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) - ROM_LOAD( "ou1shar.18s", 0, 0x200000, CRC(fbb48194) SHA1(2d3ec5bc519fad2b755018f83fadfe0cba13c292) ) - - ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ou1obj0l", 0x0000001, 0x200000, CRC(1b4f7184) SHA1(a05d67842fce92f321d1fdd3bd30aa3427775a0c) ) - ROM_LOAD16_BYTE( "ou1obj0u", 0x0000000, 0x200000, CRC(d0a69794) SHA1(07d449e54e9971abeb9cd5bb7b372270fafa8bac) ) - ROM_LOAD16_BYTE( "ou1obj1l", 0x0400001, 0x200000, CRC(48a93e84) SHA1(6935ec161a12237d4cec732d42070f381c23b47c) ) - ROM_LOAD16_BYTE( "ou1obj1u", 0x0400000, 0x200000, CRC(999de386) SHA1(d4780ab1929a3e2c2df464363d6451a2bcecb2a2) ) - ROM_LOAD16_BYTE( "ou1obj2l", 0x0800001, 0x200000, CRC(30386cd0) SHA1(3563c5378288da58136f102381373bd6fcaeec21) ) - ROM_LOAD16_BYTE( "ou1obj2u", 0x0800000, 0x200000, CRC(ccada5f8) SHA1(75ed95bb295780126879d67bba4d0ae1da63c928) ) - ROM_LOAD16_BYTE( "ou1obj3l", 0x0c00001, 0x200000, CRC(5f41b44e) SHA1(3f5376fcd3e15af772df65b8eda4d5ee07ee5664) ) - ROM_LOAD16_BYTE( "ou1obj3u", 0x0c00000, 0x200000, CRC(bc852c8e) SHA1(4863302c45ee16aaf2c36dac07aceaf287959c53) ) - ROM_LOAD16_BYTE( "ou1obj4l", 0x1000001, 0x200000, CRC(99a5f9d7) SHA1(b0f46f4ac357918137031a19c36a56a47b7aefd6) ) - ROM_LOAD16_BYTE( "ou1obj4u", 0x1000000, 0x200000, CRC(70ecaabb) SHA1(521c6849526fb271e6447f6c4f5bfa081f96b91e) ) - - ROM_REGION( 0x600000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ou1-rot0", 0x000000, 0x200000, CRC(a50c67c8) SHA1(432b8451eb9eaa3078134fce1e5e2d58a8b64be3) ) - ROM_LOAD( "ou1-rot1", 0x200000, 0x200000, CRC(14866780) SHA1(4a54151fada4dfba7232e53e40623e5697eeb7db) ) - ROM_LOAD( "ou1-rot2", 0x400000, 0x200000, CRC(55ccf3af) SHA1(d98489aaa840cbffb21c47609961c1163b0336f3) ) - - ROM_REGION( 0x200000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ou1-scr0", 0x000000, 0x200000, CRC(b3b3f2e9) SHA1(541bd7e9ba12aff4ec4033bd9c6bb19476acb3c4) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - ROM_LOAD( "ou1dat0.20a", 0x00000, 0x80000, CRC(1a49aead) SHA1(df243aff1a6fb5bcf4d5d883c5af2374a4aff477) ) - ROM_LOAD( "ou1dat1.20b", 0x80000, 0x80000, CRC(63bb119d) SHA1(d4c2820243b84c3f5cdf7f9e66bb50f53d0efed2) ) -ROM_END - -ROM_START( outfxesj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "ou1-mprl.11c", 0x00002, 0x80000, CRC(d3b9e530) SHA1(3f5fe5eea817a23dfe42e76f32912ce94d4c49c9) ) - ROM_LOAD32_WORD( "ou1-mpru.11d", 0x00000, 0x80000, CRC(d98308fb) SHA1(fdefeebf56464a20e3aaefd88df4eee9f7b5c4f3) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "ou1spr0.5b", 0, 0x80000, CRC(60cee566) SHA1(2f3b96793816d90011586e0f9f71c58b636b6d4c) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "ou1voi0.6n", 0, 0x200000, CRC(2d8fb271) SHA1(bde9d45979728f5a2cd8ec89f5f81bf16b694cc2) ) - - ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "ou1shas.12s", 0, 0x200000,CRC(9bcb0397) SHA1(54a32b6394d0e6f51bfd281f8a4bafce6ddf6246) ) - - ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) - ROM_LOAD( "ou1shar.18s", 0, 0x200000, CRC(fbb48194) SHA1(2d3ec5bc519fad2b755018f83fadfe0cba13c292) ) - - ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ou1obj0l", 0x0000001, 0x200000, CRC(1b4f7184) SHA1(a05d67842fce92f321d1fdd3bd30aa3427775a0c) ) - ROM_LOAD16_BYTE( "ou1obj0u", 0x0000000, 0x200000, CRC(d0a69794) SHA1(07d449e54e9971abeb9cd5bb7b372270fafa8bac) ) - ROM_LOAD16_BYTE( "ou1obj1l", 0x0400001, 0x200000, CRC(48a93e84) SHA1(6935ec161a12237d4cec732d42070f381c23b47c) ) - ROM_LOAD16_BYTE( "ou1obj1u", 0x0400000, 0x200000, CRC(999de386) SHA1(d4780ab1929a3e2c2df464363d6451a2bcecb2a2) ) - ROM_LOAD16_BYTE( "ou1obj2l", 0x0800001, 0x200000, CRC(30386cd0) SHA1(3563c5378288da58136f102381373bd6fcaeec21) ) - ROM_LOAD16_BYTE( "ou1obj2u", 0x0800000, 0x200000, CRC(ccada5f8) SHA1(75ed95bb295780126879d67bba4d0ae1da63c928) ) - ROM_LOAD16_BYTE( "ou1obj3l", 0x0c00001, 0x200000, CRC(5f41b44e) SHA1(3f5376fcd3e15af772df65b8eda4d5ee07ee5664) ) - ROM_LOAD16_BYTE( "ou1obj3u", 0x0c00000, 0x200000, CRC(bc852c8e) SHA1(4863302c45ee16aaf2c36dac07aceaf287959c53) ) - ROM_LOAD16_BYTE( "ou1obj4l", 0x1000001, 0x200000, CRC(99a5f9d7) SHA1(b0f46f4ac357918137031a19c36a56a47b7aefd6) ) - ROM_LOAD16_BYTE( "ou1obj4u", 0x1000000, 0x200000, CRC(70ecaabb) SHA1(521c6849526fb271e6447f6c4f5bfa081f96b91e) ) - - ROM_REGION( 0x600000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ou1-rot0", 0x000000, 0x200000, CRC(a50c67c8) SHA1(432b8451eb9eaa3078134fce1e5e2d58a8b64be3) ) - ROM_LOAD( "ou1-rot1", 0x200000, 0x200000, CRC(14866780) SHA1(4a54151fada4dfba7232e53e40623e5697eeb7db) ) - ROM_LOAD( "ou1-rot2", 0x400000, 0x200000, CRC(55ccf3af) SHA1(d98489aaa840cbffb21c47609961c1163b0336f3) ) - - ROM_REGION( 0x200000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "ou1-scr0", 0x000000, 0x200000, CRC(b3b3f2e9) SHA1(541bd7e9ba12aff4ec4033bd9c6bb19476acb3c4) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - ROM_LOAD( "ou1dat0.20a", 0x00000, 0x80000, CRC(1a49aead) SHA1(df243aff1a6fb5bcf4d5d883c5af2374a4aff477) ) - ROM_LOAD( "ou1dat1.20b", 0x80000, 0x80000, CRC(63bb119d) SHA1(d4c2820243b84c3f5cdf7f9e66bb50f53d0efed2) ) -ROM_END - - -ROM_START( machbrkr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* main program */ - ROM_LOAD32_WORD( "mb1_mprl.11c", 0x00002, 0x80000, CRC(86cf0644) SHA1(07eeadda1d94c9be2f882edb6f2eb0b98292e500) ) - ROM_LOAD32_WORD( "mb1_mpru.11d", 0x00000, 0x80000, CRC(fb1ff916) SHA1(e0ba96c1f26a60f87d8050e582e164d91e132183) ) - - ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */ - ROM_LOAD( "mb1_spr0.5b", 0, 0x80000, CRC(d10f6272) SHA1(cb99e06e050dbf86998ea51ef2ca130b2acfb2f6) ) - NAMCO_C7X_BIOS - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "mb1_voi0.6n", 0x000000, 0x200000, CRC(d363ca3b) SHA1(71650b66ca3eb00f6ad7d3f1df0f37210b77b942) ) - ROM_RELOAD( 0x400000, 0x200000) - ROM_LOAD( "mb1_voi1.6p", 0x800000, 0x200000, CRC(7e1c2603) SHA1(533098a54fb897931f1d75be9e69a5c047e4c446) ) - ROM_RELOAD( 0xc00000, 0x200000) - - ROM_REGION( 0x200000, NAMCONB1_TILEMASKREGION, 0 ) - ROM_LOAD( "mb1_shas.12s", 0, 0x100000, CRC(c51c614b) SHA1(519ecad2e4543c05ec35a727f4c875ab006291af) ) - - ROM_REGION( 0x200000, NAMCONB1_ROTMASKREGION, 0 ) - ROM_LOAD( "mb1_shar.18s", 0, 0x080000, CRC(d9329b10) SHA1(149c8804c07350f47af36bc7902371f1dfbed272) ) - - ROM_REGION( 0x2000000, NAMCONB1_SPRITEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "mb1obj0l.4c", 0x0000001, 0x200000, CRC(056e6b1c) SHA1(44e49de80c925c8fbe04bf9328a77a50a305a5a7) ) - ROM_LOAD16_BYTE( "mb1obj0u.8c", 0x0000000, 0x200000, CRC(e19b1714) SHA1(ff43bf3c8e8698934c4057c7b4c72db73929e2af) ) - ROM_LOAD16_BYTE( "mb1obj1l.4b", 0x0400001, 0x200000, CRC(af69f7f1) SHA1(414544ec1a9aaffb751beaf63d937ce78d0cf9c6) ) - ROM_LOAD16_BYTE( "mb1obj1u.8b", 0x0400000, 0x200000, CRC(e8ff9082) SHA1(a8c7feb33f6243f1f3bda00deffa695ac2b19171) ) - ROM_LOAD16_BYTE( "mb1obj2l.4a", 0x0800001, 0x200000, CRC(3a5c7379) SHA1(ffe9a229eb04a894e5f3bb8ac2fc4617b5413ac3) ) - ROM_LOAD16_BYTE( "mb1obj2u.8b", 0x0800000, 0x200000, CRC(b59cf5e0) SHA1(eee7511f117a4c1a24e4187e3f30e4d66f914a81) ) - ROM_LOAD16_BYTE( "mb1obj3l.6c", 0x0c00001, 0x200000, CRC(9a765d58) SHA1(2e9ea0f76f80383fcf093e947e1fe161743e33fb) ) - ROM_LOAD16_BYTE( "mb1obj3u.9c", 0x0c00000, 0x200000, CRC(5329c693) SHA1(955b3b8b9813826347a1211f71fa0a294b759ccd) ) - ROM_LOAD16_BYTE( "mb1obj4l.6b", 0x1000001, 0x200000, CRC(a650b05e) SHA1(b247699433c7bf4b6ae990fc06255cfd48a248dd) ) - ROM_LOAD16_BYTE( "mb1obj4u.9b", 0x1000000, 0x200000, CRC(6d0c37e9) SHA1(3a3feb74b890e0a933dcc791e5eee1fb4bdcbb69) ) - - ROM_REGION( 0x400000, NAMCONB1_ROTGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "mb1_rot0.3d", 0x000000, 0x200000, CRC(bc353630) SHA1(2bbddda632298899716394ddcfe51412576ca74a) ) - ROM_LOAD( "mb1_rot1.3c", 0x200000, 0x200000, CRC(cf7688cb) SHA1(29a040ce2c4e3bf671cff1a7a1ade06103db236a) ) - - ROM_REGION( 0x600000, NAMCONB1_TILEGFXREGION, ROMREGION_DISPOSE ) - ROM_LOAD( "mb1_scr0.1d", 0x000000, 0x200000, CRC(c678d5f3) SHA1(98d1523bef50d444be9485c4e7f6932cccbea191) ) - ROM_LOAD( "mb1_scr1.1c", 0x200000, 0x200000, CRC(fb2b1939) SHA1(bf9d7b93205e7012aa86693f3d2ba8f4d729bc97) ) - ROM_LOAD( "mb1_scr2.1b", 0x400000, 0x200000, CRC(0e6097a5) SHA1(b6c64b3e34ba913138b6b7c3d99d2be4f3ceda08) ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - ROM_LOAD( "mb1_dat0.20a", 0x00000, 0x80000, CRC(fb2e3cd1) SHA1(019b1d645a07619036522f42e0b9a537f39b6b93) ) -ROM_END - -/***************************************************************/ - -INPUT_PORTS_START( gunbulet ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "DSW2 (Unused)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_PLAYER(2) - PORT_START - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(4) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( machbrkr ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Freeze Screen" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Alternate Test Switch" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // self test: up - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // self test: enter - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // self test: down - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START3 ) - - PORT_START - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( outfxies ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Freeze Screen" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Alternate Test Switch" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) -INPUT_PORTS_END - -INPUT_PORTS_START( namconb1 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "DSW2 (Unused)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, "DSW1 (Test)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* C75 status */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) -INPUT_PORTS_END - - -GAME( 1994, nebulray, 0, namconb1, namconb1, nebulray, ROT90, "Namco", "Nebulas Ray (World)", GAME_IMPERFECT_SOUND ) -GAME( 1994, nebulryj, nebulray, namconb1, namconb1, nebulray, ROT90, "Namco", "Nebulas Ray (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1994, ptblank, 0, namconb1, gunbulet, gunbulet, ROT0, "Namco", "Point Blank", GAME_IMPERFECT_SOUND ) -GAME( 1994, gunbulet, ptblank, namconb1, gunbulet, gunbulet, ROT0, "Namco", "Gun Bullet (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1993, gslugrsj, 0, namconb1, namconb1, gslgr94u, ROT0, "Namco", "Great Sluggers (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1994, gslgr94u, 0, namconb1, namconb1, gslgr94u, ROT0, "Namco", "Great Sluggers '94", GAME_IMPERFECT_SOUND ) -GAME( 1995, sws95, 0, namconb1, namconb1, sws95, ROT0, "Namco", "Super World Stadium '95 (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1996, sws96, 0, namconb1, namconb1, sws96, ROT0, "Namco", "Super World Stadium '96 (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1997, sws97, 0, namconb1, namconb1, sws97, ROT0, "Namco", "Super World Stadium '97 (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1994, vshoot, 0, namconb1, namconb1, vshoot, ROT0, "Namco", "J-League Soccer V-Shoot", GAME_IMPERFECT_SOUND ) - -/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS */ -GAME( 1994, outfxies, 0, namconb2, outfxies, outfxies, ROT0, "Namco", "Outfoxies", GAME_IMPERFECT_SOUND ) -GAME( 1994, outfxesj, outfxies, namconb2, outfxies, outfxies, ROT0, "Namco", "Outfoxies (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1995, machbrkr, 0, namconb2, namconb1, machbrkr, ROT0, "Namco", "Mach Breakers (Japan)", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/namcos1.c b/src/drivers/namcos1.c deleted file mode 100644 index b9f30e096..000000000 --- a/src/drivers/namcos1.c +++ /dev/null @@ -1,2366 +0,0 @@ -/*********************************************************************** - -Namco System 1 - -Shadow Land / Yokai Douchuuki (c) 1987 Namco -Dragon Spirit (c) 1987 Namco -Blazer (c) 1987 Namco -Quester (c) 1987 Namco -Pac-Mania (c) 1987 Namco -Galaga '88 (c) 1987 Namco -World Stadium (c) 1988 Namco -Beraboh Man (c) 1988 Namco -Alice In Wonderland / Marchen Maze (c) 1988 Namco -Bakutotsu Kijuutei (c) 1988 Namco -World Court (c) 1988 Namco -Splatter House (c) 1988 Namco -Face Off (c) 1988 Namco -Rompers (c) 1989 Namco -Blast Off (c) 1989 Namco -World Stadium '89 (c) 1989 Namco -Dangerous Seed (c) 1989 Namco -World Stadium '90 (c) 1990 Namco -Pistol Daimyo no Bouken (c) 1990 Namco -Boxy Boy / Souko Ban Deluxe (c) 1990 Namco -Puzzle Club (c) 1990 Namco (prototype) -Tank Force (c) 1991 Namco - -We are missing some alternate versions: -- Alice In Wonderland (English version of Marchen Maze) -- Face Off (6 sticks) -- Tank Force (4 players) - - - -An important thing to note about the custom chips is that the sprite generator -is the same as System 86. - -From Pac-Mania schematics (but they show the Dragon Spirit key custom, and the -Galaga '88 schematics are the same again, so these three should be identical) -Custom ICs: ----------- -CUS27 clock divider -CUS30 sound control -CUS39 sprite generator -CUS48 sprite address generator -CUS64 MCU (63701) -CUS95(x5) I/O interface -CUS99(x2) sound volume -CUS116 display output generator -CUS117 main/sub CPU MMU -CUS120 sprite/tilemap mixer and palette address interface -CUS121 sound CPU address decoder -CUS123 scrolling tilemap address generator -CUS133 tilemap generator -CUS151 protection [1] - -[1] Changes from game to game - - -Memory map ----------- -Main, Sub CPU: -Address decoding is entirely handled by CUS117, which is a simple MMU providing a -virtual address space 23 bits wide. The chip outputs the various enable lines for -RAM, ROM, etc., and bits 12-21 of the virtual address (therefore bit 22 is handled -only internally). There are 8 banks in the 6809 address space, each one redirectable -to a portion of the virtual address space. The main and sub CPUs are independent, -each one can set up its own banks. - -Main & sub CPU memory map: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R/W xxxxxxxx bank #0 -001xxxxxxxxxxxxx R/W xxxxxxxx bank #1 -010xxxxxxxxxxxxx R/W xxxxxxxx bank #2 -011xxxxxxxxxxxxx R/W xxxxxxxx bank #3 -100xxxxxxxxxxxxx R/W xxxxxxxx bank #4 -101xxxxxxxxxxxxx R/W xxxxxxxx bank #5 -110xxxxxxxxxxxxx R/W xxxxxxxx bank #6 -111xxxxxxxxxxxxx R xxxxxxxx bank #7 -1110bbb--------0 W xxxxxxxx set bits 14-21 of bank #bbb -1110bbb--------1 W ------xx set bits 22-23 of bank #bbb -1111000--------- W -------x SUBRES sub CPUs reset (SRES) -1111001--------- W -------- watchdog reset (MRES, SRES) -1111010--------- W -------- ??? -1111011--------- W -------- IRQ acknowledge (MIRQ, SIRQ) -1111100--------- -------- FIRQ acknowledge (MFIRQ, MSIRQ) -1111101--------- W -------- trigger FIRQ on sub CPU (SFIRQ) (bakutotu) -1111110--------- W xxxxxxxx select bank #7 (ROM) for sub CPU -1111111--------- -------- not used? - - -virtual memory map: - -Address Dir Data Name Description ------------------------ --- -------- --------- ----------------------- -010110----------------x W -------- 3DCS side select for 3D glasses -01011100xxxxxxxxxxxxxxx R/W xxxxxxxx COLCS palette + video window (CUS116 & CUS120) -01011110xxxxxxxxxxxxxxx R/W xxxxxxxx CHAR tilemap RAM (CUS133) -0101111100---xxxxxxxxxx R/W xxxxxxxx KEY protection key custom [1] -01011111100xxxxxxxxxxxx R/W xxxxxxxx OBJECT work RAM (CUS48) -010111111001xxxxxxxxxxx R/W xxxxxxxx portion holding sprite registers -01011111101-------xxxxx R/W xxxxxxxx SCRDT tilemap control (CUS123 & CUS133) -01011111110--xxxxxxxxxx R/W xxxxxxxx SOUND sound RAM (through CUS30) [2] -01011111111-xxxxxxxxxxx R/W xxxxxxxx IOEN TRIRAM (shared with all other CPUs) -01100000xxxxxxxxxxxxxxx R/W xxxxxxxx RAM work RAM -1000xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM H10 program ROM -1001xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM K10 program ROM -1010xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM L10 program ROM -1011xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM M10 program ROM -1100xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM N10 program ROM -1101xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM P10 program ROM -1110xxxxxxxxxxxxxxxxxxx R xxxxxxxx ROM S10 program ROM -1111--xxxxxxxxxxxxxxxxx R xxxxxxxx ROM T10 program ROM [3] - -[1] different in every game -[2] from the schematics, it would seem that only 000-0FF is shared, but shadowld - proves that the whole 000-3FF is shared -[3] address bit 16 is inverted - - -sound CPU memory map: -address deconding is done for the most part by CUS121, and partially by CUS30 - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00xxxxxxxxxxxxxx R xxxxxxxx ROM A10/B10 program ROM (banked) -0100-----------x R/W xxxxxxxx YCS YM2151 -0101--xxxxxxxxxx R/W xxxxxxxx RAM 3F sound RAM (through CUS30, shared with main & sub CPU) [1] -0101--00xxxxxxxx R/W xxxxxxxx portion holding the sound wave data -0101--0100xxxxxx R/W xxxxxxxx portion holding the sound registers -0111-xxxxxxxxxxx R/W xxxxxxxx VOICEG TRIRAM (shared with the other CPUs) -100xxxxxxxxxxxxx R/W xxxxxxxx RAMC work RAM -11xxxxxxxxxxxxxx R xxxxxxxx ROM A10 program ROM -1100------------ W xxxx---- ROM bank select -1101------------ W -------- watchdog (RESOUT?) -1110------------ W -------- IRQ acknowledge (SNDIRQ) - -[1] from the schematics, it would seem that only 000-0FF is shared, but e.g. shadowld - proves that the whole 000-3FF RAM is shared - - -MCU memory map: -address decoding is done by a 16L8 PAL @ K3 which hasn't been read, so memory -map is inferred by program behaviour - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00000000xxxxxxxx MCU internal registers, timers, ports and RAM -000100--------x- R xxxxxxxx DIPSW dip switches -000101---------x R xxxxxxxx CONTROL switch inputs -000110---------- n.c. -000111---------- n.c. -01xxxxxxxxxxxxxx R xxxxxxxx ROM A4/B4/E4/F4/H4/K4 (lower half) (banked, see below) -10xxxxxxxxxxxxxx R xxxxxxxx ROM A4/B4/E4/F4/H4/K4 (upper half) (banked, see below) -11000xxxxxxxxxxx R/W xxxxxxxx TRIRAM work RAM (shared with the other CPUs) -11001xxxxxxxxxxx R/W xxxxxxxx EEROM non volatile memory -110100---------- W xxxxxxxx LT0 DAC #0 -110101---------- W xxxxxxxx LT1 DAC #1 -110110---------- W x------- \select ROM K4 -110110---------- W -x------ \select ROM H4 -110110---------- W --x----- \select ROM F4 -110110---------- W ---x---- \select ROM E4 -110110---------- W ----x--- \select ROM B4 -110110---------- W -----x-- \select ROM A4 -110110---------- W ------x- to A16 of active ROM (inverted for ROM A4) -110110---------- W -------x to A15 of active ROM -110111---------- n.c. -1110------------ n.c. -1111xxxxxxxxxxxx R xxxxxxxx MCU internal ROM -1111------------ W IRQ acknowledge - - - - -Preliminary driver by: -Ernesto Corvi -ernesto@imagina.com - -Updates by: -Vernon C. Brooks, Acho A. Tang, Nicola Salmoria - - -Notes: -- The ROM/RAM test is NOT performed by default. It is only done if the test mode - switch is on when the game powers up (setting it and resetting is not enough). - You can manage to make it work if you press F2 quickly enough after the MAME - startup screen, without having to exit MAME and restarting. - -- There are three watchdogs, one per CPU. Handling them separately is necessary - to allow entering service mode without manually resetting: only one of the CPUs - stops writing to the watchdog. - -- berabohm and bakutotu have a strange demo play on startup, the player doesn't - move. This seems to be by design, because after you play a game a few seconds - from the last game are replayed. It is weird that they didn't provide some - default, though. And in bakutotu you can fire during the demo. - If you play and then reset, the demo still does nothing. This should prove that - RAM is cleared on purpose during boot and there is no default. - -- bakutotu: - The main and sub processors work closely together and the game - quickly runs into trouble when one of them lacks behind. Heavy - sync and overclocking will help but there's a particularly nasty - loop appearing in more than 40 places of the code: - - 1) kick the watchdog - 2) raise a flag - 3) do some dummy tasks - 4) check whether the flag has been reset by the sub CPU - 5) go back to step 1 if not - -- berabohm has special pressure sensitive button, with two switches. The harder - you push the button, the faster the two switches are closed one after the other. - The speed is measured by an external board and reported to the game. - Due to MAME's limited input sample rate (once per frame) it is difficult - to reproduce that. Instead, I've hooked 6 fake buttons: weak, medium and strong - punch, and weak, medium and strong jump. - - -TODO: -- There is still a big mistery about the first location of tri port ram, which is - shared among all four CPUs. See namcos1_mcu_patch_w() for the kludge: essentially, - this location has to be 0xA6 for the games to work. However, the MCU first sets it - to 0xA6, then zeroes it - and there doesn't seem to be any code anywhere for any CPU - that would set it back to 0xA6. Se, we ignore the zeroing write. - -- Blast Off fails the ROM test (IO ERROR 64). This is caused by concurrent access - to the same memory during the RAM tests: CPU #2 writes to $7101 before the MCU - has read it back ($c101). - -- Most of the dip switches are undocumented debug controls. There might be still - more marked as "unknown" that have a function. - - - -Namco System 1 hardware -======================= - -Processors: - -6809 - Main CPU -6809 - Sub CPU -6809 - Sound CPU (PSG,FM) -63701 - MCU (input,EEPROM,DAC) - -Inter-processor communication is done via a 2K shared memory area. - -Bankswitching: - -Main/Sub - a 10-bit value is written to location Ex00 to select the 8K -bank (RAM or PRG0-PRG7) which is accessed at offset x000. (x is even) - -Sound - a 3-bit value is written to location C000 or C001, bits 4-6 to -select the 16K bank (SND0-SND1) which is accessed at offset 0000. - -MCU - a 8-bit value is written to location D800 to select the 32K bank -(VOI0-VOI5) which is accessed at offset 4000. Bits 2-7 are a bitmask -which specify the ROM to access and bits 0-1 specify the ROM offset. - -Graphics: - -Visible screen resolution: 288x244 pixels (36x28 tiles) - -3 scrolling 64x64 tilemapped playfields -1 scrolling 64x32 tilemapped playfield -2 fixed 36x28 tilemapped playfields - -Each playfield uses one of 8 color palettes, can be enabled or disabled, -and has programmable priorities. - -Each tile is a 8x8, 8 bit-per-pixel character from a selection of up to -16384 characters (CHR0-CHR7). A separate 1 bit-per-pixel character mask -(CHR8) defines the character shape. - -127 displayable 32x32, 4 bit-per-pixel sprites from a selection of up to -2048 sprites (OBJ0-OBJ7). Each sprite uses one of 127 color palettes or -a special shadow/highlight effect and has programmable priorities and -x-y flipping. Sprites may also be displayed as a smaller portion of a -32x32 object with a programmable size and position. The height and width -are programmed separately and may be 4,8,16,or 32 pixels. - -3 24-bit programmable RGB palette tables, 8 bits per color as follows: - -127 16-color entries for the sprites -8 256-color entries for the playfields -8 256-color entries for the playfields shadow/highlight effects - -Sound: - -Namco custom 8 channel 16-bit stereo PSG for sound effects -registor array based 2 channel 8-bit DAC for voice -Yamaha YM2151+YM3012 FM chip for background music - -Controls: - -The standard hardware supports one or two 8-way joysticks with up to -three buttons for each player, two start buttons, a service switch, two -coin slots, and one dipswitch block. Game settings are accessed via -service mode and are saved in EEPROM. - -Games: - -Date Name Key Screen ------ ------------------------------------- ---- ------ - 4/87 Yokai Douchuuki / Shadowland NONE H - 6/87 Dragon Spirit (old version) 136 V -??/87 Dragon Spirit (new version) 136 V - 7/87 Blazer 144 V - 9/87 Quester A V -??/87 Quester (special edition) A V -11/87 Pac-Mania 151 V-FLIP -11/87 Pac-Mania (Japanese version) 151 V -12/87 Galaga '88 153 V-FLIP -12/87 Galaga '88 (Japanese version) 153 V - 3/88 World Stadium 154 H - 5/88 Beraboh Man B H -??/88 Beraboh Man (standard NS1 hardware) NONE H - 7/88 Marchen Maze / Alice In Wonderland 152 H - 8/88 Bakutotsu Kijuutei / Baraduke 2 155 H -10/88 World Court 143 H -11/88 Splatter House 181 H -12/88 Face Off C H - 2/89 Rompers 182 V - 3/89 Blast Off 183 V - 7/89 World Stadium '89 184 H -12/89 Dangerous Seed 308 V - 7/90 World Stadium '90 310 H -10/90 Pistol Daimyo no Bouken 309 H-FLIP -11/90 Souko Ban Deluxe 311 H-FLIP -??/90 Puzzle Club (prototype) ? V -12/91 Tank Force 185 H-FLIP - -A - uses sub board with paddle control(s) -B - uses sub board with pressure sensitive controls -C - uses sub board with support for player 3 and 4 controls - -***********************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "cpu/m6800/m6800.h" -#include "sound/2151intf.h" -#include "sound/namco.h" -#include "sound/dac.h" - -/* from vidhrdw */ -VIDEO_START( namcos1 ); -VIDEO_UPDATE( namcos1 ); -VIDEO_EOF( namcos1 ); - -/* from machine */ -WRITE8_HANDLER( namcos1_bankswitch_w ); -WRITE8_HANDLER( namcos1_subcpu_bank_w ); - -WRITE8_HANDLER( namcos1_cpu_control_w ); -WRITE8_HANDLER( namcos1_watchdog_w ); -WRITE8_HANDLER( namcos1_sound_bankswitch_w ); - -WRITE8_HANDLER( namcos1_mcu_bankswitch_w ); -WRITE8_HANDLER( namcos1_mcu_patch_w ); - -MACHINE_RESET( namcos1 ); - -DRIVER_INIT( shadowld ); -DRIVER_INIT( dspirit ); -DRIVER_INIT( quester ); -DRIVER_INIT( blazer ); -DRIVER_INIT( pacmania ); -DRIVER_INIT( galaga88 ); -DRIVER_INIT( ws ); -DRIVER_INIT( berabohm ); -DRIVER_INIT( alice ); -DRIVER_INIT( bakutotu ); -DRIVER_INIT( wldcourt ); -DRIVER_INIT( splatter ); -DRIVER_INIT( faceoff ); -DRIVER_INIT( rompers ); -DRIVER_INIT( blastoff ); -DRIVER_INIT( ws89 ); -DRIVER_INIT( dangseed ); -DRIVER_INIT( ws90 ); -DRIVER_INIT( pistoldm ); -DRIVER_INIT( soukobdx ); -DRIVER_INIT( puzlclub ); -DRIVER_INIT( tankfrce ); - - -/**********************************************************************/ - -static WRITE8_HANDLER( namcos1_sub_firq_w ) -{ - cpunum_set_input_line(1, M6809_FIRQ_LINE, ASSERT_LINE); -} - -static WRITE8_HANDLER( irq_ack_w ) -{ - cpunum_set_input_line(cpu_getactivecpu(), 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( firq_ack_w ) -{ - cpunum_set_input_line(cpu_getactivecpu(), M6809_FIRQ_LINE, CLEAR_LINE); -} - - - -static READ8_HANDLER( dsw_r ) -{ - int ret = readinputportbytag("DIPSW"); - if (!(offset & 2)) ret >>= 4; - return 0xf0 | ret; -} - -static WRITE8_HANDLER( namcos1_coin_w ) -{ - coin_lockout_global_w(~data & 1); - coin_counter_w(0,data & 2); - coin_counter_w(1,data & 4); -} - -static int dac0_value ,dac1_value, dac0_gain=0x80, dac1_gain=0x80; - -static void namcos1_update_DACs(void) -{ - DAC_signed_data_16_w(0,0x8000 + (dac0_value * dac0_gain) + (dac1_value * dac1_gain)); -} - -static WRITE8_HANDLER( namcos1_dac_gain_w ) -{ - int value; - - /* DAC0 (bits 0,2) */ - value = (data & 1) | ((data >> 1) & 2); /* GAIN0,GAIN1 */ - dac0_gain = 0x20 * (value+1); - - /* DAC1 (bits 3,4) */ - value = (data >> 3) & 3; /* GAIN2,GAIN3 */ - dac1_gain = 0x20 * (value+1); - - namcos1_update_DACs(); -} - -static WRITE8_HANDLER( namcos1_dac0_w ) -{ - dac0_value = data - 0x80; /* shift zero point */ - namcos1_update_DACs(); -} - -static WRITE8_HANDLER( namcos1_dac1_w ) -{ - dac1_value = data - 0x80; /* shift zero point */ - namcos1_update_DACs(); -} - - - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAMBANK(1) - AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(2) - AM_RANGE(0x4000, 0x5fff) AM_RAMBANK(3) - AM_RANGE(0x6000, 0x7fff) AM_RAMBANK(4) - AM_RANGE(0x8000, 0x9fff) AM_RAMBANK(5) - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(6) - AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(7) - AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(namcos1_cpu_control_w) - AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w) -// AM_RANGE(0xf400, 0xf400) AM_WRITE(MWA8_NOP) // unknown - AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(namcos1_sub_firq_w) // asserts FIRQ on CPU1 - AM_RANGE(0xfc00, 0xfc01) AM_WRITE(namcos1_subcpu_bank_w) - AM_RANGE(0xe000, 0xffff) AM_ROMBANK(8) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_RAMBANK(9) - AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(10) - AM_RANGE(0x4000, 0x5fff) AM_RAMBANK(11) - AM_RANGE(0x6000, 0x7fff) AM_RAMBANK(12) - AM_RANGE(0x8000, 0x9fff) AM_RAMBANK(13) - AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(14) - AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(15) - AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w) -// AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) // IO Chip - AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w) -// AM_RANGE(0xf400, 0xf400) AM_WRITE(MWA8_NOP) // ? - AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w) - AM_RANGE(0xe000, 0xffff) AM_ROMBANK(16) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROMBANK(17) /* Banked ROMs */ - AM_RANGE(0x4000, 0x4001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x4000, 0x4000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x4001, 0x4001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x5000, 0x53ff) AM_READWRITE(namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0x400) AM_BASE(&namco_wavedata) /* PSG ( Shared ) */ - AM_RANGE(0x7000, 0x77ff) AM_RAMBANK(18) /* TRIRAM (shared) */ - AM_RANGE(0x8000, 0x9fff) AM_RAM /* Sound RAM 3 */ - AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos1_sound_bankswitch_w) /* ROM bank selector */ - AM_RANGE(0xd001, 0xd001) AM_WRITE(namcos1_watchdog_w) - AM_RANGE(0xe000, 0xe000) AM_WRITE(irq_ack_w) - AM_RANGE(0xc000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(hd63701_internal_registers_r, hd63701_internal_registers_w) - AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */ - AM_RANGE(0x1000, 0x1003) AM_READ(dsw_r) - AM_RANGE(0x1400, 0x1400) AM_READ(port_tag_to_handler8("CONTROL0")) - AM_RANGE(0x1401, 0x1401) AM_READ(port_tag_to_handler8("CONTROL1")) - AM_RANGE(0x4000, 0xbfff) AM_ROMBANK(20) /* banked ROM */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(namcos1_mcu_patch_w) /* kludge! see notes */ - AM_RANGE(0xc000, 0xc7ff) AM_RAMBANK(19) /* TRIRAM (shared) */ - AM_RANGE(0xc800, 0xcfff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* EEPROM */ - AM_RANGE(0xd000, 0xd000) AM_WRITE(namcos1_dac0_w) - AM_RANGE(0xd400, 0xd400) AM_WRITE(namcos1_dac1_w) - AM_RANGE(0xd800, 0xd800) AM_WRITE(namcos1_mcu_bankswitch_w) /* ROM bank selector */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(irq_ack_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_port_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(HD63701_PORT1, HD63701_PORT1) AM_READWRITE(port_tag_to_handler8("COIN"), namcos1_coin_w) - AM_RANGE(HD63701_PORT2, HD63701_PORT2) AM_READWRITE(MRA8_NOP, namcos1_dac_gain_w) -ADDRESS_MAP_END - - - -/* Standard Namco System 1 input port definition */ -INPUT_PORTS_START( ns1 ) - PORT_START_TAG( "CONTROL0" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG( "CONTROL1" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG( "DIPSW" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG( "COIN" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* OUT:coin lockout */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* OUT:coin counter 1 */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* OUT:coin counter 2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_F1) // service switch from the edge connector - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -INPUT_PORTS_START( shadowld ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Freeze" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Alternate sound effects" ) // e.g. the red bird - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( dspirit ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x7f, 0x7f, "Life" ) - PORT_DIPSETTING( 0x7f, "2" ) - PORT_DIPSETTING( 0x16, "3" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( quester ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "CONTROL0" ) - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) /* paddle */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_MODIFY( "CONTROL1" ) - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) /* paddle */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Unk 1" ) // read @ fac7 - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Freeze" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, "Brightness" ) - PORT_DIPSETTING( 0x04, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG( "PADDLE0" ) /* fake input port for player 1 paddle */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) - - PORT_START_TAG( "PADDLE1" ) /* fake input port for player 2 paddle */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( pacmania ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Freeze" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* this doesn't seem to have much use... */ - PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - /* to enter the A.D.S. menu, set the dip switch and reset with service coin pressed */ - PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( galaga88 ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x7f, 0x7f, "Auto Data Sampling" ) - PORT_DIPSETTING( 0x7f, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x57, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( berabohm ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "CONTROL0" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY( "CONTROL1" ) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_SPECIAL ) /* timing from the buttons interface */ - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x20, 0x20, "Invulnerability" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -#ifdef PRESSURE_SENSITIVE - /* - buttons (pressure sensitive) - each button has two switches: the first is closed as soon as the button is - pressed, the second a little later, depending on how hard the button is - pressed. - bits 0-5 control strength (0x00 = max 0x3f = min) - bit 6 indicates the button is pressed - bit 7 is not actually read by the game but I use it to simulate the second - switch - */ - PORT_START_TAG( "IN0" ) - PORT_BIT( 0x3f, 0x00, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - - PORT_START_TAG( "IN1" ) - PORT_BIT( 0x3f, 0x00, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - - PORT_START_TAG( "IN2" ) - PORT_BIT( 0x3f, 0x00, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START_TAG( "IN3" ) - PORT_BIT( 0x3f, 0x00, IPT_SPECIAL ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) -#else - PORT_START_TAG( "IN0" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) - - PORT_START_TAG( "IN1" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - - PORT_START_TAG( "IN2" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) - - PORT_START_TAG( "IN3" ) - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) -#endif -INPUT_PORTS_END - - -INPUT_PORTS_START( mmaze ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x10, 0x10, "Freeze" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( bakutotu ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x20, 0x20, "Show Coordinates" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Sprite Viewer" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( wldcourt ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - /* see code @ e331. The lines this draws can't even be seen because they are erased afterwards */ - PORT_DIPNAME( 0x7e, 0x7e, "Draw Debug Lines" ) - PORT_DIPSETTING( 0x7e, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x5c, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( splatter ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - /* these two don't seem to have much use... */ - PORT_DIPNAME( 0x11, 0x11, "CPU #0 Kick Watchdog in IRQ" ) - PORT_DIPSETTING( 0x11, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x06, 0x06, "CPU #0&1 Kick Watchdog in IRQ" ) - PORT_DIPSETTING( 0x06, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( faceoff ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "CONTROL0" ) - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_MODIFY( "CONTROL1" ) - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG( "IN0" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG( "IN1" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG( "IN2" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG( "IN3" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ws89 ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - /* see code @ e90c. The lines this draws can't even be seen because they are erased afterwards */ - PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( dangseed ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Freeze" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* this doesn't seem to have much use... */ - PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - /* to enter the A.D.S. menu, set the dip switch, keep 1p start pressed and press service coin */ - PORT_DIPNAME( 0x04, 0x04, "Auto Data Sampling" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( ws90 ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - /* see code @ e8ff. The lines this draws can't even be seen because they are erased afterwards */ - PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( boxyboy ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Freeze" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( puzlclub ) - PORT_INCLUDE( ns1 ) - - PORT_MODIFY( "DIPSW" ) - PORT_DIPNAME( 0x40, 0x40, "Auto Data Sampling" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout tilelayout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -static const gfx_layout spritelayout = -{ - 32,32, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4, - 256*4,257*4,258*4,259*4,260*4,261*4,262*4,263*4, - 264*4,265*4,266*4,267*4,268*4,269*4,270*4,271*4}, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64, - 32*64,33*64, 34*64, 35*64, 36*64, 37*64, 38*64, 39*64, - 40*64,41*64, 42*64, 43*64, 44*64, 45*64, 46*64, 47*64 }, - 32*32*4 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0x0800, 8 }, /* characters */ - { REGION_GFX3, 0, &spritelayout, 0x0000, 128 }, /* sprites 32/16/8/4 dots */ - { -1 } /* end of array */ -}; - - - -static void namcos1_sound_interrupt( int irq ) -{ - cpunum_set_input_line( 2, M6809_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2151interface ym2151_interface = -{ - namcos1_sound_interrupt -}; - -static struct namco_interface namco_interface = -{ - 8, /* number of voices */ - -1, /* memory region */ - 1 /* stereo */ -}; - -/* - namcos1 has two 8bit dac channel. But They are mixed before pre-amp. - And,they are connected with pre-amp through active LPF. - LPF info : Fco = 3.3KHz , g = -12dB/oct -*/ - -static MACHINE_DRIVER_START( ns1 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809,49152000/32) - MDRV_CPU_PROGRAM_MAP(main_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(M6809,49152000/32) - MDRV_CPU_PROGRAM_MAP(sub_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(M6809,49152000/32) - MDRV_CPU_PROGRAM_MAP(sound_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD_TAG("MCU",HD63701,49152000/32) - MDRV_CPU_PROGRAM_MAP(mcu_map, 0) - MDRV_CPU_IO_MAP(mcu_port_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - // heavy sync required to prevent CPUs from fighting for video RAM access and going into deadlocks - MDRV_INTERLEAVE(640) - - MDRV_MACHINE_RESET(namcos1) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 64*8) - MDRV_SCREEN_VISIBLE_AREA(9 + 8*8, 9 + 44*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x2000) - - MDRV_VIDEO_START(namcos1) - MDRV_VIDEO_UPDATE(namcos1) - MDRV_VIDEO_EOF(namcos1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579580) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(NAMCO_CUS30, 49152000/2048/2) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - - -/*********************************************************************** - - Game drivers - -***********************************************************************/ -/* load half size ROM to full size space */ -#define ROM_LOAD_HS(name,start,length,crc) \ - ROM_LOAD(name,start,length,crc) \ - ROM_RELOAD(start+length,length) -#define ROM_LOAD_512(name,start,crc) \ - ROM_LOAD(name,start,0x10000,crc) \ - ROM_RELOAD(start+ 0x10000,0x10000) \ - ROM_RELOAD(start+2*0x10000,0x10000) \ - ROM_RELOAD(start+3*0x10000,0x10000) \ - ROM_RELOAD(start+4*0x10000,0x10000) \ - ROM_RELOAD(start+5*0x10000,0x10000) \ - ROM_RELOAD(start+6*0x10000,0x10000) \ - ROM_RELOAD(start+7*0x10000,0x10000) - -#define ROM_LOAD_1024(name,start,crc) \ - ROM_LOAD(name,start,0x20000,crc) \ - ROM_RELOAD(start+ 0x20000,0x20000) \ - ROM_RELOAD(start+2*0x20000,0x20000) \ - ROM_RELOAD(start+3*0x20000,0x20000) - -/* Shadowland */ -ROM_START( shadowld ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "yd1_s0.bin", 0x0c000, 0x10000, CRC(a9cb51fb) SHA1(c46345b36306d35f73e25d0c8b1af53936927f0b) ) - ROM_LOAD( "yd1_s1.bin", 0x1c000, 0x10000, CRC(65d1dc0d) SHA1(e758fa5279c1a36c7dad941091694daed13f8b9a) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "yd1_p0.bin", 0x000000, CRC(07e49883) SHA1(b1e720b4d134893d3d9768d3f59162b31488a079) ) - ROM_LOAD_512( "yd1_p1.bin", 0x080000, CRC(a8ea6bd3) SHA1(d8c34084c90ff9f5627d432359a1c64959372195) ) - ROM_LOAD_512( "yd1_p2.bin", 0x100000, CRC(62e5bbec) SHA1(748482389a7e49d35d6c566e9d73e3bc4ab0e7c6) ) - ROM_LOAD_512( "yd1_p3.bin", 0x180000, CRC(a4f27c24) SHA1(9a4eea9f50f62a5653015539f8933676a37a61cb) ) - /* 180000-1fffff empty */ - ROM_LOAD_512( "yd1_p5.bin", 0x280000, CRC(29a78bd6) SHA1(99f022f205dcc0d4c24bf406a61034e7a6d0cfaf) ) - ROM_LOAD_512( "yd3_p6.bin", 0x300000, CRC(93d6811c) SHA1(87de3367bb4abdb6b8e9dc986378af7d3a52e02d) ) - ROM_LOAD_512( "yd3_p7.bin", 0x380000, CRC(f1c271a0) SHA1(a5d6b856367127a1ee900e7339f29763c06029c1) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "yd_voi-0.bin", 0x10000, 0x20000, CRC(448bc6a1) SHA1(89033eb023bb770bfedf925040bbe32f4bea4937) ) // yd1.v0 + yd1.v3 - ROM_LOAD( "yd_voi-1.bin", 0x30000, 0x20000, CRC(7809035c) SHA1(d1d12db8f1d2c25545ccb92c0a2f2af2d0267161) ) // yd1.v1 + yd1.v4 - ROM_LOAD( "yd_voi-2.bin", 0x50000, 0x20000, CRC(73bffc16) SHA1(a927e503bf8650e6b638d5c357cb48586cfa025b) ) // yd1.v2 + yd1.v5 - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "yd_chr-8.bin", 0x00000, 0x20000, CRC(0c8e69d0) SHA1(cedf12db2d9b14396cc8a15ccb025b96c92e190d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "yd_chr-0.bin", 0x00000, 0x20000, CRC(717441dd) SHA1(eb4d7e8293c4e404422bec79813a782c3373ef76) ) - ROM_LOAD( "yd_chr-1.bin", 0x20000, 0x20000, CRC(c1be6e35) SHA1(910fa2bbb708811413758a07ba472ce8dc772ee4) ) - ROM_LOAD( "yd_chr-2.bin", 0x40000, 0x20000, CRC(2df8d8cc) SHA1(44b7fef479a726cad6908d33e27999d7ad679c6f) ) - ROM_LOAD( "yd_chr-3.bin", 0x60000, 0x20000, CRC(d4e15c9e) SHA1(9915abecd8f82e34961cddaeba8823d1d7a277dc) ) - ROM_LOAD( "yd_chr-4.bin", 0x80000, 0x20000, CRC(c0041e0d) SHA1(959344b1bbcf7c480fbc2d521eaa8b892651b92e) ) - ROM_LOAD( "yd_chr-5.bin", 0xa0000, 0x20000, CRC(7b368461) SHA1(025ae116b6a74eef20c629e5402b45160778a416) ) - ROM_LOAD( "yd_chr-6.bin", 0xc0000, 0x20000, CRC(3ac6a90e) SHA1(7cf13b1998976c4f73d7c36c57afde1d1a6c71ec) ) - ROM_LOAD( "yd_chr-7.bin", 0xe0000, 0x20000, CRC(8d2cffa5) SHA1(2b293ed35bb3d9a81b5dc8cb06ec3aa9260dcf27) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "yd_obj-0.bin", 0x00000, 0x20000, CRC(efb8efe3) SHA1(fad3ca72932c4318e8062708739dd80cacd2e019) ) - ROM_LOAD( "yd_obj-1.bin", 0x20000, 0x20000, CRC(bf4ee682) SHA1(45aa98737f898a0ef105c9525c2edc9a1b425da1) ) - ROM_LOAD( "yd_obj-2.bin", 0x40000, 0x20000, CRC(cb721682) SHA1(2305e5950cefe8d6b569d966728c9c5c8b4299a1) ) - ROM_LOAD( "yd_obj-3.bin", 0x60000, 0x20000, CRC(8a6c3d1c) SHA1(e9cb9c859596de753de37368d186feb857a4d08f) ) - ROM_LOAD( "yd_obj-4.bin", 0x80000, 0x20000, CRC(ef97bffb) SHA1(35bf2102cad41e50e59a31279e69c26d337f2353) ) - ROM_LOAD_HS( "yd3_obj5.bin", 0xa0000, 0x10000, CRC(1e4aa460) SHA1(c70391c3fba13e270e3cf105bb6d466b9ffedb9a) ) -ROM_END - -/* Youkai Douchuuki (Shadowland Japan) */ -ROM_START( youkaidk ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "yd1.sd0", 0x0c000, 0x10000, CRC(a9cb51fb) SHA1(c46345b36306d35f73e25d0c8b1af53936927f0b) ) - ROM_LOAD( "yd1.sd1", 0x1c000, 0x10000, CRC(65d1dc0d) SHA1(e758fa5279c1a36c7dad941091694daed13f8b9a) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "yd1_p0.bin", 0x000000, CRC(07e49883) SHA1(b1e720b4d134893d3d9768d3f59162b31488a079) ) - ROM_LOAD_512( "yd1_p1.bin", 0x080000, CRC(a8ea6bd3) SHA1(d8c34084c90ff9f5627d432359a1c64959372195) ) - ROM_LOAD_512( "yd1_p2.bin", 0x100000, CRC(62e5bbec) SHA1(748482389a7e49d35d6c566e9d73e3bc4ab0e7c6) ) - ROM_LOAD_512( "yd1_p3.bin", 0x180000, CRC(a4f27c24) SHA1(9a4eea9f50f62a5653015539f8933676a37a61cb) ) - /* 180000-1fffff empty */ - ROM_LOAD_512( "yd1_p5.bin", 0x280000, CRC(29a78bd6) SHA1(99f022f205dcc0d4c24bf406a61034e7a6d0cfaf) ) - ROM_LOAD_512( "yd1_p6.bin", 0x300000, CRC(785a2772) SHA1(80c0a628bc834ff03460188b7fc63b6464c09476) ) - ROM_LOAD_512( "yd2_p7b.bin", 0x380000, CRC(a05bf3ae) SHA1(3477eee9a09b1998e72b31f19a92c89c5033b0f7) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "yd_voi-0.bin", 0x10000, 0x20000, CRC(448bc6a1) SHA1(89033eb023bb770bfedf925040bbe32f4bea4937) ) // yd1.v0 + yd1.v3 - ROM_LOAD( "yd_voi-1.bin", 0x30000, 0x20000, CRC(7809035c) SHA1(d1d12db8f1d2c25545ccb92c0a2f2af2d0267161) ) // yd1.v1 + yd1.v4 - ROM_LOAD( "yd_voi-2.bin", 0x50000, 0x20000, CRC(73bffc16) SHA1(a927e503bf8650e6b638d5c357cb48586cfa025b) ) // yd1.v2 + yd1.v5 - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "yd_chr-8.bin", 0x00000, 0x20000, CRC(0c8e69d0) SHA1(cedf12db2d9b14396cc8a15ccb025b96c92e190d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "yd_chr-0.bin", 0x00000, 0x20000, CRC(717441dd) SHA1(eb4d7e8293c4e404422bec79813a782c3373ef76) ) - ROM_LOAD( "yd_chr-1.bin", 0x20000, 0x20000, CRC(c1be6e35) SHA1(910fa2bbb708811413758a07ba472ce8dc772ee4) ) - ROM_LOAD( "yd_chr-2.bin", 0x40000, 0x20000, CRC(2df8d8cc) SHA1(44b7fef479a726cad6908d33e27999d7ad679c6f) ) - ROM_LOAD( "yd_chr-3.bin", 0x60000, 0x20000, CRC(d4e15c9e) SHA1(9915abecd8f82e34961cddaeba8823d1d7a277dc) ) - ROM_LOAD( "yd_chr-4.bin", 0x80000, 0x20000, CRC(c0041e0d) SHA1(959344b1bbcf7c480fbc2d521eaa8b892651b92e) ) - ROM_LOAD( "yd_chr-5.bin", 0xa0000, 0x20000, CRC(7b368461) SHA1(025ae116b6a74eef20c629e5402b45160778a416) ) - ROM_LOAD( "yd_chr-6.bin", 0xc0000, 0x20000, CRC(3ac6a90e) SHA1(7cf13b1998976c4f73d7c36c57afde1d1a6c71ec) ) - ROM_LOAD( "yd_chr-7.bin", 0xe0000, 0x20000, CRC(8d2cffa5) SHA1(2b293ed35bb3d9a81b5dc8cb06ec3aa9260dcf27) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "yd_obj-0.bin", 0x00000, 0x20000, CRC(efb8efe3) SHA1(fad3ca72932c4318e8062708739dd80cacd2e019) ) - ROM_LOAD( "yd_obj-1.bin", 0x20000, 0x20000, CRC(bf4ee682) SHA1(45aa98737f898a0ef105c9525c2edc9a1b425da1) ) - ROM_LOAD( "yd_obj-2.bin", 0x40000, 0x20000, CRC(cb721682) SHA1(2305e5950cefe8d6b569d966728c9c5c8b4299a1) ) - ROM_LOAD( "yd_obj-3.bin", 0x60000, 0x20000, CRC(8a6c3d1c) SHA1(e9cb9c859596de753de37368d186feb857a4d08f) ) - ROM_LOAD( "yd_obj-4.bin", 0x80000, 0x20000, CRC(ef97bffb) SHA1(35bf2102cad41e50e59a31279e69c26d337f2353) ) -ROM_END - -/* Youkai Douchuuki (Shadowland Japan old version) */ -ROM_START( yokaidko ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "yd1.sd0", 0x0c000, 0x10000, CRC(a9cb51fb) SHA1(c46345b36306d35f73e25d0c8b1af53936927f0b) ) - ROM_LOAD( "yd1.sd1", 0x1c000, 0x10000, CRC(65d1dc0d) SHA1(e758fa5279c1a36c7dad941091694daed13f8b9a) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "yd1_p0.bin", 0x000000, CRC(07e49883) SHA1(b1e720b4d134893d3d9768d3f59162b31488a079) ) - ROM_LOAD_512( "yd1_p1.bin", 0x080000, CRC(a8ea6bd3) SHA1(d8c34084c90ff9f5627d432359a1c64959372195) ) - ROM_LOAD_512( "yd1_p2.bin", 0x100000, CRC(62e5bbec) SHA1(748482389a7e49d35d6c566e9d73e3bc4ab0e7c6) ) - ROM_LOAD_512( "yd1_p3.bin", 0x180000, CRC(a4f27c24) SHA1(9a4eea9f50f62a5653015539f8933676a37a61cb) ) - /* 180000-1fffff empty */ - ROM_LOAD_512( "yd1_p5.bin", 0x280000, CRC(29a78bd6) SHA1(99f022f205dcc0d4c24bf406a61034e7a6d0cfaf) ) - ROM_LOAD_512( "yd1_p6.bin", 0x300000, CRC(785a2772) SHA1(80c0a628bc834ff03460188b7fc63b6464c09476) ) - ROM_LOAD_512( "yd2_p7.bin", 0x380000, CRC(3d39098c) SHA1(acdb5ea53358676d1b71c2a456cabaa9e46aed3f) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "yd_voi-0.bin", 0x10000, 0x20000, CRC(448bc6a1) SHA1(89033eb023bb770bfedf925040bbe32f4bea4937) ) // yd1.v0 + yd1.v3 - ROM_LOAD( "yd_voi-1.bin", 0x30000, 0x20000, CRC(7809035c) SHA1(d1d12db8f1d2c25545ccb92c0a2f2af2d0267161) ) // yd1.v1 + yd1.v4 - ROM_LOAD( "yd_voi-2.bin", 0x50000, 0x20000, CRC(73bffc16) SHA1(a927e503bf8650e6b638d5c357cb48586cfa025b) ) // yd1.v2 + yd1.v5 - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "yd_chr-8.bin", 0x00000, 0x20000, CRC(0c8e69d0) SHA1(cedf12db2d9b14396cc8a15ccb025b96c92e190d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "yd_chr-0.bin", 0x00000, 0x20000, CRC(717441dd) SHA1(eb4d7e8293c4e404422bec79813a782c3373ef76) ) - ROM_LOAD( "yd_chr-1.bin", 0x20000, 0x20000, CRC(c1be6e35) SHA1(910fa2bbb708811413758a07ba472ce8dc772ee4) ) - ROM_LOAD( "yd_chr-2.bin", 0x40000, 0x20000, CRC(2df8d8cc) SHA1(44b7fef479a726cad6908d33e27999d7ad679c6f) ) - ROM_LOAD( "yd_chr-3.bin", 0x60000, 0x20000, CRC(d4e15c9e) SHA1(9915abecd8f82e34961cddaeba8823d1d7a277dc) ) - ROM_LOAD( "yd_chr-4.bin", 0x80000, 0x20000, CRC(c0041e0d) SHA1(959344b1bbcf7c480fbc2d521eaa8b892651b92e) ) - ROM_LOAD( "yd_chr-5.bin", 0xa0000, 0x20000, CRC(7b368461) SHA1(025ae116b6a74eef20c629e5402b45160778a416) ) - ROM_LOAD( "yd_chr-6.bin", 0xc0000, 0x20000, CRC(3ac6a90e) SHA1(7cf13b1998976c4f73d7c36c57afde1d1a6c71ec) ) - ROM_LOAD( "yd_chr-7.bin", 0xe0000, 0x20000, CRC(8d2cffa5) SHA1(2b293ed35bb3d9a81b5dc8cb06ec3aa9260dcf27) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "yd_obj-0.bin", 0x00000, 0x20000, CRC(efb8efe3) SHA1(fad3ca72932c4318e8062708739dd80cacd2e019) ) - ROM_LOAD( "yd_obj-1.bin", 0x20000, 0x20000, CRC(bf4ee682) SHA1(45aa98737f898a0ef105c9525c2edc9a1b425da1) ) - ROM_LOAD( "yd_obj-2.bin", 0x40000, 0x20000, CRC(cb721682) SHA1(2305e5950cefe8d6b569d966728c9c5c8b4299a1) ) - ROM_LOAD( "yd_obj-3.bin", 0x60000, 0x20000, CRC(8a6c3d1c) SHA1(e9cb9c859596de753de37368d186feb857a4d08f) ) - ROM_LOAD( "yd_obj-4.bin", 0x80000, 0x20000, CRC(ef97bffb) SHA1(35bf2102cad41e50e59a31279e69c26d337f2353) ) -ROM_END - -/* Dragon Spirit */ -ROM_START( dspirit ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "ds1_s0.bin", 0x0c000, 0x10000, CRC(27100065) SHA1(e8fbacaa43a5b858fce2ca3b579b90c1e016396b) ) - ROM_LOAD( "ds1_s1.bin", 0x1c000, 0x10000, CRC(b398645f) SHA1(e83208e2aea7b57b4a26f123a43c112e30495aca) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "ds1_p0.bin", 0x000000, CRC(b22a2856) SHA1(8dea168e341460757c924bb510df4d4e9cdd908d) ) - ROM_LOAD_512( "ds1_p1.bin", 0x080000, CRC(f7e3298a) SHA1(76c924ed1311e7e292bd67f57c1e831054625bb6) ) - ROM_LOAD_512( "ds1_p2.bin", 0x100000, CRC(3c9b0100) SHA1(1def48a28b68e1e36cd1a165eb7127b05982c54d) ) - ROM_LOAD_512( "ds1_p3.bin", 0x180000, CRC(c6e5954b) SHA1(586fc108f264e91a4bbbb05153dd1aa19be81b5b) ) - ROM_LOAD_512( "ds1_p4.bin", 0x200000, CRC(f3307870) SHA1(a85d28c5dc55cbfa6c384d71e724db44c547d976) ) - ROM_LOAD_512( "ds1_p5.bin", 0x280000, CRC(9a3a1028) SHA1(505808834677c433e0a4cfbf387b2874e2d0fc47) ) - ROM_LOAD_512( "ds3_p6.bin", 0x300000, CRC(fcc01bd1) SHA1(dd95388d2ccc5ab51b86da2242776dc82ac86901) ) - ROM_LOAD_512( "ds3_p7.bin", 0x380000, CRC(820bedb2) SHA1(d05254c982635f9d184959065aacb10a077fcd34) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "ds1_v0.bin", 0x10000, 0x10000, CRC(313b3508) SHA1(4770fb28b45abc4967534face0bf6794d30df71a) ) - ROM_LOAD( "ds_voi-1.bin", 0x30000, 0x20000, CRC(54790d4e) SHA1(d327b1c65c487dd691389920789c59f0eb1ecee1) ) - ROM_LOAD( "ds_voi-2.bin", 0x50000, 0x20000, CRC(05298534) SHA1(5ffd9018a5c1d5ce992dd3c7575b5e25945f14fa) ) - ROM_LOAD( "ds_voi-3.bin", 0x70000, 0x20000, CRC(13e84c7e) SHA1(6ad0eb50eb3312f614a891ae8d66faca6b48d204) ) - ROM_LOAD( "ds_voi-4.bin", 0x90000, 0x20000, CRC(34fbb8cd) SHA1(3f56f136e9d54d45924802f7149bfbc319e0933a) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "ds_chr-8.bin", 0x00000, 0x20000, CRC(946eb242) SHA1(6964fff430fe306c575ff07e4c054c70aa7d96ca) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ds_chr-0.bin", 0x00000, 0x20000, CRC(7bf28ac3) SHA1(af42b568be0c3919dbbc0e0c7a9d5ea39f84481a) ) - ROM_LOAD( "ds_chr-1.bin", 0x20000, 0x20000, CRC(03582fea) SHA1(c6705702bdb55ec6f993fc2582f116a8729c14d0) ) - ROM_LOAD( "ds_chr-2.bin", 0x40000, 0x20000, CRC(5e05f4f9) SHA1(ededa62c261ca75fc5e79c80840fc15b27cb3989) ) - ROM_LOAD( "ds_chr-3.bin", 0x60000, 0x20000, CRC(dc540791) SHA1(02c5c44bae878b22608cc6f9b09b0dd97c03e51a) ) - ROM_LOAD( "ds_chr-4.bin", 0x80000, 0x20000, CRC(ffd1f35c) SHA1(39f19676edc01059dfcee6b5c04527da3ef78ffa) ) - ROM_LOAD( "ds_chr-5.bin", 0xa0000, 0x20000, CRC(8472e0a3) SHA1(cece9fec70421fb09107890f108fb47ea770890d) ) - ROM_LOAD( "ds_chr-6.bin", 0xc0000, 0x20000, CRC(a799665a) SHA1(70cd630e63714b544f3f61a6663a41e3439639d5) ) - ROM_LOAD( "ds_chr-7.bin", 0xe0000, 0x20000, CRC(a51724af) SHA1(85728add3f773c4d814202208bee3d9a053e50de) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "ds_obj-0.bin", 0x00000, 0x20000, CRC(03ec3076) SHA1(9926ec974ba3472d765531f6add4a8d6e398c46e) ) - ROM_LOAD( "ds_obj-1.bin", 0x20000, 0x20000, CRC(e67a8fa4) SHA1(c45070b929f3e4df0e3809cf33cb4538b0067464) ) - ROM_LOAD( "ds_obj-2.bin", 0x40000, 0x20000, CRC(061cd763) SHA1(df079052fddb60ea5618ed5a6c41fb4db0e313af) ) - ROM_LOAD( "ds_obj-3.bin", 0x60000, 0x20000, CRC(63225a09) SHA1(8fffcd5b6baaa9ced16fbac58f6a3eeb11183c8b) ) - ROM_LOAD_HS( "ds1_o4.bin", 0x80000, 0x10000, CRC(a6246fcb) SHA1(39de4fdb175ab16b791cdc5d757ff7bfee8e3d2b) ) -ROM_END - -/* Dragon Spirit (old version) */ -ROM_START( dspirito ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "ds1_s0.bin", 0x0c000, 0x10000, CRC(27100065) SHA1(e8fbacaa43a5b858fce2ca3b579b90c1e016396b) ) - ROM_LOAD( "ds1_s1.bin", 0x1c000, 0x10000, CRC(b398645f) SHA1(e83208e2aea7b57b4a26f123a43c112e30495aca) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "ds1_p0.bin", 0x000000, CRC(b22a2856) SHA1(8dea168e341460757c924bb510df4d4e9cdd908d) ) - ROM_LOAD_512( "ds1_p1.bin", 0x080000, CRC(f7e3298a) SHA1(76c924ed1311e7e292bd67f57c1e831054625bb6) ) - ROM_LOAD_512( "ds1_p2.bin", 0x100000, CRC(3c9b0100) SHA1(1def48a28b68e1e36cd1a165eb7127b05982c54d) ) - ROM_LOAD_512( "ds1_p3.bin", 0x180000, CRC(c6e5954b) SHA1(586fc108f264e91a4bbbb05153dd1aa19be81b5b) ) - ROM_LOAD_512( "ds1_p4.bin", 0x200000, CRC(f3307870) SHA1(a85d28c5dc55cbfa6c384d71e724db44c547d976) ) - ROM_LOAD_512( "ds1_p5.bin", 0x280000, CRC(9a3a1028) SHA1(505808834677c433e0a4cfbf387b2874e2d0fc47) ) - ROM_LOAD_512( "ds1_p6.bin", 0x300000, CRC(a82737b4) SHA1(13865eb05a5d7b5cf06316ad8e71da3abbad335a) ) - ROM_LOAD_512( "ds1_p7.bin", 0x380000, CRC(f4c0d75e) SHA1(87ac334b5d66b9b66ee0d4fe222afb76ff190534) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "ds1_v0.bin", 0x10000, 0x10000, CRC(313b3508) SHA1(4770fb28b45abc4967534face0bf6794d30df71a) ) - ROM_LOAD( "ds_voi-1.bin", 0x30000, 0x20000, CRC(54790d4e) SHA1(d327b1c65c487dd691389920789c59f0eb1ecee1) ) - ROM_LOAD( "ds_voi-2.bin", 0x50000, 0x20000, CRC(05298534) SHA1(5ffd9018a5c1d5ce992dd3c7575b5e25945f14fa) ) - ROM_LOAD( "ds_voi-3.bin", 0x70000, 0x20000, CRC(13e84c7e) SHA1(6ad0eb50eb3312f614a891ae8d66faca6b48d204) ) - ROM_LOAD( "ds_voi-4.bin", 0x90000, 0x20000, CRC(34fbb8cd) SHA1(3f56f136e9d54d45924802f7149bfbc319e0933a) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "ds_chr-8.bin", 0x00000, 0x20000, CRC(946eb242) SHA1(6964fff430fe306c575ff07e4c054c70aa7d96ca) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ds_chr-0.bin", 0x00000, 0x20000, CRC(7bf28ac3) SHA1(af42b568be0c3919dbbc0e0c7a9d5ea39f84481a) ) - ROM_LOAD( "ds_chr-1.bin", 0x20000, 0x20000, CRC(03582fea) SHA1(c6705702bdb55ec6f993fc2582f116a8729c14d0) ) - ROM_LOAD( "ds_chr-2.bin", 0x40000, 0x20000, CRC(5e05f4f9) SHA1(ededa62c261ca75fc5e79c80840fc15b27cb3989) ) - ROM_LOAD( "ds_chr-3.bin", 0x60000, 0x20000, CRC(dc540791) SHA1(02c5c44bae878b22608cc6f9b09b0dd97c03e51a) ) - ROM_LOAD( "ds_chr-4.bin", 0x80000, 0x20000, CRC(ffd1f35c) SHA1(39f19676edc01059dfcee6b5c04527da3ef78ffa) ) - ROM_LOAD( "ds_chr-5.bin", 0xa0000, 0x20000, CRC(8472e0a3) SHA1(cece9fec70421fb09107890f108fb47ea770890d) ) - ROM_LOAD( "ds_chr-6.bin", 0xc0000, 0x20000, CRC(a799665a) SHA1(70cd630e63714b544f3f61a6663a41e3439639d5) ) - ROM_LOAD( "ds_chr-7.bin", 0xe0000, 0x20000, CRC(a51724af) SHA1(85728add3f773c4d814202208bee3d9a053e50de) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "ds_obj-0.bin", 0x00000, 0x20000, CRC(03ec3076) SHA1(9926ec974ba3472d765531f6add4a8d6e398c46e) ) - ROM_LOAD( "ds_obj-1.bin", 0x20000, 0x20000, CRC(e67a8fa4) SHA1(c45070b929f3e4df0e3809cf33cb4538b0067464) ) - ROM_LOAD( "ds_obj-2.bin", 0x40000, 0x20000, CRC(061cd763) SHA1(df079052fddb60ea5618ed5a6c41fb4db0e313af) ) - ROM_LOAD( "ds_obj-3.bin", 0x60000, 0x20000, CRC(63225a09) SHA1(8fffcd5b6baaa9ced16fbac58f6a3eeb11183c8b) ) - ROM_LOAD_HS( "ds1_o4.bin", 0x80000, 0x10000, CRC(a6246fcb) SHA1(39de4fdb175ab16b791cdc5d757ff7bfee8e3d2b) ) -ROM_END - -/* Blazer */ -ROM_START( blazer ) - ROM_REGION( 0x1c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "bz1_s0.bin", 0x0c000, 0x10000, CRC(6c3a580b) SHA1(2b76ea0005245e30eb72fba3b044a885e47d588d) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512 ( "bz1_p0.bin", 0x000000, CRC(a7dd195b) SHA1(bd867ca54d25a4045c1f0a2bfd6c673982f88033) ) - ROM_LOAD_512 ( "bz1_p1.bin", 0x080000, CRC(c54bbbf4) SHA1(82ec5b72203a80b44657bee73d4a7a3e522a86ae) ) - ROM_LOAD_512 ( "bz1_p2.bin", 0x100000, CRC(5d700aed) SHA1(13ee900e73137dd5f09d54f2ee97faf696b16b8f) ) - ROM_LOAD_512 ( "bz1_p3.bin", 0x180000, CRC(81b32a1a) SHA1(cb691adadd24667a6ae0a31531f4025ee26b96b9) ) - ROM_LOAD_1024( "bz_prg-4.bin", 0x200000, CRC(65ef6f05) SHA1(1da6bca6a095496a38ca9be8730d62f2978d69d9) ) - ROM_LOAD_1024( "bz_prg-5.bin", 0x280000, CRC(900da191) SHA1(0f31584f623f8c48aa2d8b670da79f8f36af0d92) ) - ROM_LOAD_1024( "bz_prg-6.bin", 0x300000, CRC(81c48fc0) SHA1(3b93465e707d19d9eb4a1f2cef142a9ca06edf01) ) - ROM_LOAD_512 ( "bz1_p7.bin", 0x380000, CRC(2d4cbb95) SHA1(86918ccf5c3b59061891253d3419267a38b187b1) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "bz1_v0.bin", 0x10000, 0x10000, CRC(3d09d32e) SHA1(d29c6140f871633b5fbb6849b003629ff22e13f6) ) - ROM_LOAD( "bz_voi-1.bin", 0x30000, 0x20000, CRC(2043b141) SHA1(f8be0584026365e092be37fffa2e52a6a2c3ff0b) ) - ROM_LOAD( "bz_voi-2.bin", 0x50000, 0x20000, CRC(64143442) SHA1(bee3b98c0289b7c443450c551d791f7ffcee0b60) ) - ROM_LOAD( "bz_voi-3.bin", 0x70000, 0x20000, CRC(26cfc510) SHA1(749680eaf3072db5331cc76a21cd022c50f95647) ) - ROM_LOAD( "bz_voi-4.bin", 0x90000, 0x20000, CRC(d206b1bd) SHA1(32702fa67339ab337a2a70946e3861420a07b11b) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "bz_chr-8.bin", 0x00000, 0x20000, CRC(db28bfca) SHA1(510dd204da389db7eb5d9ce34dc0daf60bad1219) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bz_chr-0.bin", 0x00000, 0x20000, CRC(d346ba61) SHA1(eaae8557e77574a7692319b8819bd5078855ddc0) ) - ROM_LOAD( "bz_chr-1.bin", 0x20000, 0x20000, CRC(e45eb2ea) SHA1(b3a7b7df93544c6b76b4000d55e178b52f46c5c8) ) - ROM_LOAD( "bz_chr-2.bin", 0x40000, 0x20000, CRC(599079ee) SHA1(ceb57e5f352a740fc2a90175a73ef318cd3ffb6f) ) - ROM_LOAD( "bz_chr-3.bin", 0x60000, 0x20000, CRC(d5182e36) SHA1(1a913247d13c8ea9f9969ea7e2c69b17f15ba5ba) ) - ROM_LOAD( "bz_chr-4.bin", 0x80000, 0x20000, CRC(e788259e) SHA1(6654d424c1d6c9fd44b72603ae870ef3692af413) ) - ROM_LOAD( "bz_chr-5.bin", 0xa0000, 0x20000, CRC(107e6814) SHA1(b5b85e8e6995330c965e568743fa86f723231bbb) ) - ROM_LOAD( "bz_chr-6.bin", 0xc0000, 0x20000, CRC(0312e2ba) SHA1(c7332dddca71d819987d0c723bad35a39ed54d42) ) - ROM_LOAD( "bz_chr-7.bin", 0xe0000, 0x20000, CRC(d9d9a90f) SHA1(f62ea399afa38b2c44f6aa51bcf9a49151ccf70a) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "bz_obj-0.bin", 0x00000, 0x20000, CRC(22aee927) SHA1(f8cc0ea6469c2dec9c853269c3bf40e90c32d806) ) - ROM_LOAD( "bz_obj-1.bin", 0x20000, 0x20000, CRC(7cb10112) SHA1(83bc9af6d72b2d7894ac632ea486c2f603f8d08f) ) - ROM_LOAD( "bz_obj-2.bin", 0x40000, 0x20000, CRC(34b23bb7) SHA1(fb288d089270b0e41fccd0da03e019eb9e8cad0c) ) - ROM_LOAD( "bz_obj-3.bin", 0x60000, 0x20000, CRC(9bc1db71) SHA1(36faaec83decb9d92bb9ffe5c8a482a168de18d8) ) - ROM_FILL( 0x80000, 0x80000, 0xff ) -ROM_END - -/* Quester */ -ROM_START( quester ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "qs1_s0.bin", 0x0c000, 0x10000, CRC(c2ef3af9) SHA1(aa0766aad450660e216d817e41e030141e8d1f48) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - ROM_LOAD_512( "qs1_p5.bin", 0x280000, CRC(c8e11f30) SHA1(33589ceb723c3b3cfbe36d58ca9426d26bd28568) ) - /* 300000-37ffff empty */ - ROM_LOAD_512( "qs1_p7b.bin", 0x380000, CRC(f358a944) SHA1(317adf846c6dbf6d00b13020b5078e2263056f93) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "qs1_v0.bin", 0x10000, 0x10000, CRC(6a2f3038) SHA1(00870da9b7f65536ff052c32da2d553f8c6b994b) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "qs1_c8.bin", 0x00000, 0x10000, CRC(06730d54) SHA1(53d79c27e2f1b192b1de781b6b5024eb1e8126ad) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "qs1_c0.bin", 0x00000, 0x20000, CRC(ca69bd7a) SHA1(98130f06e3d7b480b76bf28a4e252b4aaa1e1b3e) ) - ROM_LOAD( "qs1_c1.bin", 0x20000, 0x20000, CRC(d660ba71) SHA1(738d225c0e2b91c785fde0c33a0520a672933659) ) - ROM_LOAD( "qs1_c2.bin", 0x40000, 0x20000, CRC(4686f656) SHA1(8628a18bf7154b8edaf7cfbee2d8881a28690bff) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "qs1_o0.bin", 0x00000, 0x10000, CRC(e24f0bf1) SHA1(31f37f853fe27c24cfeaa059f8959dfea37911cb) ) - ROM_LOAD( "qs1_o1.bin", 0x20000, 0x10000, CRC(e4aab0ca) SHA1(e4765dd369b02492dbb9955cc082f24665a01635) ) -ROM_END - -/* Pac-Mania */ -ROM_START( pacmania ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "pnx_s0.bin", 0x0c000, 0x10000, CRC(c10370fa) SHA1(f819a31075d3c8df5deee2919cd446b9e678c47d) ) - ROM_LOAD( "pnx_s1.bin", 0x1c000, 0x10000, CRC(f761ed5a) SHA1(1487932c86a6094ed01d5032904fd7ae3435d09c) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_1024( "pn_prg-6.bin", 0x300000, CRC(fe94900c) SHA1(5ce726baafc5ed24ea4cae33232c97637afb486b) ) - ROM_LOAD_512 ( "pnx_p7.bin", 0x380000, CRC(462fa4fd) SHA1(b27bee1ac64ac204c85703c3822de7dbda11b75e) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "pnx_v0.bin", 0x10000, 0x10000, CRC(1ad5788f) SHA1(f6b1ccdcc3db11c0ab83e3ff24e772cd2b491468) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "pn1_c8.bin", 0x00000, 0x10000, CRC(f3afd65d) SHA1(51daefd8685b49c464130b9e7d93e31cfdda724e) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "pn_chr-0.bin", 0x00000, 0x20000, CRC(7c57644c) SHA1(77d9cc9ffbed47a941e4c5e5645d7d1126f6c302) ) - ROM_LOAD( "pn_chr-1.bin", 0x20000, 0x20000, CRC(7eaa67ed) SHA1(4ad6cfa31d781fa7169663bbc319fc79d8965290) ) - ROM_LOAD( "pn_chr-2.bin", 0x40000, 0x20000, CRC(27e739ac) SHA1(be9dbd22d988b76f7044328e2056c3f26b703401) ) - ROM_LOAD( "pn_chr-3.bin", 0x60000, 0x20000, CRC(1dfda293) SHA1(fa01b0b8a820c1d24ff0f84b857d2784f0dac1cf) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "pn_obj-0.bin", 0x00000, 0x20000, CRC(fda57e8b) SHA1(16a72585268159d24f881dbb1aa6ae82bcc4bde7) ) - ROM_LOAD( "pnx_obj1.bin", 0x20000, 0x20000, CRC(4c08affe) SHA1(f8f60fdc31779e2abe496e36ba0e4f27546cbc54) ) -ROM_END - -/* Pac-Mania (Japan) diff o1,s0,s1,p7,v0 */ -ROM_START( pacmanij ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "pn1_s0.bin", 0x0c000, 0x10000, CRC(d5ef5eee) SHA1(6f263955662defe7a03cc89368b70d5fcb06ee3e) ) - ROM_LOAD( "pn1_s1.bin", 0x1c000, 0x10000, CRC(411bc134) SHA1(89960596def3580d19d9121d1efffbba2d1bdd94) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_1024( "pn_prg-6.bin", 0x300000, CRC(fe94900c) SHA1(5ce726baafc5ed24ea4cae33232c97637afb486b) ) - ROM_LOAD_512 ( "pn1_p7.bin", 0x380000, CRC(2aa99e2b) SHA1(1d5e8ce6eac03696d51b32c1d0f6c3e82f604422) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "pn1_v0.bin", 0x10000, 0x10000, CRC(e2689f79) SHA1(b88e3435f2932901cc0a3b379b31a764bb9b2e2b) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "pn1_c8.bin", 0x00000, 0x10000, CRC(f3afd65d) SHA1(51daefd8685b49c464130b9e7d93e31cfdda724e) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "pn_chr-0.bin", 0x00000, 0x20000, CRC(7c57644c) SHA1(77d9cc9ffbed47a941e4c5e5645d7d1126f6c302) ) - ROM_LOAD( "pn_chr-1.bin", 0x20000, 0x20000, CRC(7eaa67ed) SHA1(4ad6cfa31d781fa7169663bbc319fc79d8965290) ) - ROM_LOAD( "pn_chr-2.bin", 0x40000, 0x20000, CRC(27e739ac) SHA1(be9dbd22d988b76f7044328e2056c3f26b703401) ) - ROM_LOAD( "pn_chr-3.bin", 0x60000, 0x20000, CRC(1dfda293) SHA1(fa01b0b8a820c1d24ff0f84b857d2784f0dac1cf) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "pn_obj-0.bin", 0x00000, 0x20000, CRC(fda57e8b) SHA1(16a72585268159d24f881dbb1aa6ae82bcc4bde7) ) - ROM_LOAD( "pn_obj-1.bin", 0x20000, 0x20000, CRC(27bdf440) SHA1(0be16dc73590eb71090e6a0e6ddd6e7f4f3dbfba) ) -ROM_END - -/* Galaga '88 */ -ROM_START( galaga88 ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "g81_s0.bin", 0x0c000, 0x10000, CRC(164a3fdc) SHA1(d7b026f6a617bb444e3bce80cec2cbb4772cb533) ) - ROM_LOAD( "g81_s1.bin", 0x1c000, 0x10000, CRC(16a4b784) SHA1(a0d6f6ad4a68c9e10f2662e940ffaee691cafcac) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "g81_p0.bin", 0x000000, CRC(0f0778ca) SHA1(17cc03c6ff138cf947dafe05dc0759ff968a399e) ) - ROM_LOAD_512( "g81_p1.bin", 0x080000, CRC(e68cb351) SHA1(1087c0d9a53f3a4d238f19d479856b502bde7b77) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - ROM_LOAD_512( "g81_p5.bin", 0x280000, CRC(4fbd3f6c) SHA1(40d8dadc0a36b4c1886778cfc8d380a34aea2505) ) - ROM_LOAD_512( "g8x_p6.bin", 0x300000, CRC(403d01c1) SHA1(86109087b10c4fbcc940df6a84f7546de56303d2) ) - ROM_LOAD_512( "g8x_p7.bin", 0x380000, CRC(df75b7fc) SHA1(cb810e7ba05bd8e873559e529e25a99adbf6307d) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "g81_v0.bin", 0x10000, 0x10000, CRC(86921dd4) SHA1(7048fd5b6ed5f4ddf6788958c30604418a6613ff) ) - ROM_LOAD_HS( "g81_v1.bin", 0x30000, 0x10000, CRC(9c300e16) SHA1(6f3c82dc83290426068acef0b8fabba452421e8f) ) - ROM_LOAD_HS( "g81_v2.bin", 0x50000, 0x10000, CRC(5316b4b0) SHA1(353c06e0e7c8dd9d609f8b341663bbf0ca60f6b5) ) - ROM_LOAD_HS( "g81_v3.bin", 0x70000, 0x10000, CRC(dc077af4) SHA1(560090a335dfd345a6ae0eef8f1fd4d8098881f3) ) - ROM_LOAD_HS( "g81_v4.bin", 0x90000, 0x10000, CRC(ac0279a7) SHA1(8d25292eec9953516fc5d25a94e30acc8159b360) ) - ROM_LOAD_HS( "g81_v5.bin", 0xb0000, 0x10000, CRC(014ddba1) SHA1(26590b77a0c386dc076a8f8eccf6244c7e5a1e10) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "g8_chr-8.bin", 0x00000, 0x20000, CRC(3862ed0a) SHA1(4cae42bbfa434c7dce63fdceaa569fcb28768420) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "g8_chr-0.bin", 0x00000, 0x20000, CRC(68559c78) SHA1(28f6284acbf1fc263c2d38ae464ee77f367b0af5) ) - ROM_LOAD( "g8_chr-1.bin", 0x20000, 0x20000, CRC(3dc0f93f) SHA1(0db9f37cf6e06013b402df23e615b0ab0d32b9ee) ) - ROM_LOAD( "g8_chr-2.bin", 0x40000, 0x20000, CRC(dbf26f1f) SHA1(e52723647a8fe6db0b9c5e11c02486b20a549506) ) - ROM_LOAD( "g8_chr-3.bin", 0x60000, 0x20000, CRC(f5d6cac5) SHA1(3d098b8219de4a7729ec95547eebff17c9b505b9) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "g8_obj-0.bin", 0x00000, 0x20000, CRC(d7112e3f) SHA1(476f9e1b636b257e517fc789508dac923d05ef67) ) - ROM_LOAD( "g8_obj-1.bin", 0x20000, 0x20000, CRC(680db8e7) SHA1(84a68c27aaae27c0540f68f9c7d490a416c8f027) ) - ROM_LOAD( "g8_obj-2.bin", 0x40000, 0x20000, CRC(13c97512) SHA1(9c5f39bcfe28abe1faa67bbe829a61fbcec98ec8) ) - ROM_LOAD( "g8_obj-3.bin", 0x60000, 0x20000, CRC(3ed3941b) SHA1(5404aed795536ce6b37b8292d6a4446222bb50bf) ) - ROM_LOAD( "g8_obj-4.bin", 0x80000, 0x20000, CRC(370ff4ad) SHA1(61d7306325103c6a03def619c21877faadf12699) ) - ROM_LOAD( "g8_obj-5.bin", 0xa0000, 0x20000, CRC(b0645169) SHA1(e55dc9bd532b6bd821b7bf6994c35175600c317c) ) -ROM_END - -/* Galaga '88 (Japan) */ -ROM_START( galag88j ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "g81_s0.bin", 0x0c000, 0x10000, CRC(164a3fdc) SHA1(d7b026f6a617bb444e3bce80cec2cbb4772cb533) ) - ROM_LOAD( "g81_s1.bin", 0x1c000, 0x10000, CRC(16a4b784) SHA1(a0d6f6ad4a68c9e10f2662e940ffaee691cafcac) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "g81_p0.bin", 0x000000, CRC(0f0778ca) SHA1(17cc03c6ff138cf947dafe05dc0759ff968a399e) ) - ROM_LOAD_512( "g81_p1.bin", 0x080000, CRC(e68cb351) SHA1(1087c0d9a53f3a4d238f19d479856b502bde7b77) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - ROM_LOAD_512( "g81_p5.bin", 0x280000, CRC(4fbd3f6c) SHA1(40d8dadc0a36b4c1886778cfc8d380a34aea2505) ) - ROM_LOAD_512( "g81_p6.bin", 0x300000, CRC(e7203707) SHA1(1171196029ebf0734211e1cc2521db7aa8594f31) ) - ROM_LOAD_512( "g81_p7.bin", 0x380000, CRC(7c10965d) SHA1(35f2e4ef66525c2b60975b799014d60cc15f83a5) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "g81_v0.bin", 0x10000, 0x10000, CRC(86921dd4) SHA1(7048fd5b6ed5f4ddf6788958c30604418a6613ff) ) - ROM_LOAD_HS( "g81_v1.bin", 0x30000, 0x10000, CRC(9c300e16) SHA1(6f3c82dc83290426068acef0b8fabba452421e8f) ) - ROM_LOAD_HS( "g81_v2.bin", 0x50000, 0x10000, CRC(5316b4b0) SHA1(353c06e0e7c8dd9d609f8b341663bbf0ca60f6b5) ) - ROM_LOAD_HS( "g81_v3.bin", 0x70000, 0x10000, CRC(dc077af4) SHA1(560090a335dfd345a6ae0eef8f1fd4d8098881f3) ) - ROM_LOAD_HS( "g81_v4.bin", 0x90000, 0x10000, CRC(ac0279a7) SHA1(8d25292eec9953516fc5d25a94e30acc8159b360) ) - ROM_LOAD_HS( "g81_v5.bin", 0xb0000, 0x10000, CRC(014ddba1) SHA1(26590b77a0c386dc076a8f8eccf6244c7e5a1e10) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "g8_chr-8.bin", 0x00000, 0x20000, CRC(3862ed0a) SHA1(4cae42bbfa434c7dce63fdceaa569fcb28768420) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "g8_chr-0.bin", 0x00000, 0x20000, CRC(68559c78) SHA1(28f6284acbf1fc263c2d38ae464ee77f367b0af5) ) - ROM_LOAD( "g8_chr-1.bin", 0x20000, 0x20000, CRC(3dc0f93f) SHA1(0db9f37cf6e06013b402df23e615b0ab0d32b9ee) ) - ROM_LOAD( "g8_chr-2.bin", 0x40000, 0x20000, CRC(dbf26f1f) SHA1(e52723647a8fe6db0b9c5e11c02486b20a549506) ) - ROM_LOAD( "g8_chr-3.bin", 0x60000, 0x20000, CRC(f5d6cac5) SHA1(3d098b8219de4a7729ec95547eebff17c9b505b9) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "g8_obj-0.bin", 0x00000, 0x20000, CRC(d7112e3f) SHA1(476f9e1b636b257e517fc789508dac923d05ef67) ) - ROM_LOAD( "g8_obj-1.bin", 0x20000, 0x20000, CRC(680db8e7) SHA1(84a68c27aaae27c0540f68f9c7d490a416c8f027) ) - ROM_LOAD( "g8_obj-2.bin", 0x40000, 0x20000, CRC(13c97512) SHA1(9c5f39bcfe28abe1faa67bbe829a61fbcec98ec8) ) - ROM_LOAD( "g8_obj-3.bin", 0x60000, 0x20000, CRC(3ed3941b) SHA1(5404aed795536ce6b37b8292d6a4446222bb50bf) ) - ROM_LOAD( "g8_obj-4.bin", 0x80000, 0x20000, CRC(370ff4ad) SHA1(61d7306325103c6a03def619c21877faadf12699) ) - ROM_LOAD( "g8_obj-5.bin", 0xa0000, 0x20000, CRC(b0645169) SHA1(e55dc9bd532b6bd821b7bf6994c35175600c317c) ) -ROM_END - -/* World Stadium */ -ROM_START( ws ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "ws1_snd0.bin", 0x0c000, 0x10000, CRC(45a87810) SHA1(b6537500cc6e862d97074f636248446d6fae5d07) ) - ROM_LOAD( "ws1_snd1.bin", 0x1c000, 0x10000, CRC(31bf74c1) SHA1(ddb7a91d6f3ae93be79914a435178a540fe05bfb) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "ws1_prg0.bin", 0x000000, CRC(b0234298) SHA1(b46a70109801d85332fb6658426bd795e03f492a) ) - ROM_LOAD_512( "ws1_prg1.bin", 0x080000, CRC(dfd72bed) SHA1(5985e7112cb994b016b0027a933413d7edeba1f6) ) - ROM_LOAD_512( "ws1_prg2.bin", 0x100000, CRC(bb09fa9b) SHA1(af5223daee89cf55dceb838d2f812efd74d21d23) ) - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512( "ws1_prg7.bin", 0x380000, CRC(28712eba) SHA1(01ffb75af07eccd42426c4f4f933a3d562fdd165) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "ws1_voi0.bin", 0x10000, 0x10000, CRC(f6949199) SHA1(ef596b02060f8e58eac37765663dd16377244391) ) - ROM_LOAD( "ws_voi-1.bin", 0x30000, 0x20000, CRC(210e2af9) SHA1(f8a1f8c6b9fbb8a9b3f298674600c1fbb9c5840e) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "ws_chr-8.bin", 0x00000, 0x20000, CRC(d1897b9b) SHA1(29906614b879e5623b49bc925e80006aee3997b9) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ws_chr-0.bin", 0x00000, 0x20000, CRC(3e3e96b4) SHA1(7b5f72e7e2aab9c78f452171ac6ebe8c634a88c4) ) - ROM_LOAD( "ws_chr-1.bin", 0x20000, 0x20000, CRC(897dfbc1) SHA1(3e7425a456bada77591abcf1567ec75a99440334) ) - ROM_LOAD( "ws_chr-2.bin", 0x40000, 0x20000, CRC(e142527c) SHA1(606206b7b9916e3f456595344b70c17d44731fbb) ) - ROM_LOAD( "ws_chr-3.bin", 0x60000, 0x20000, CRC(907d4dc8) SHA1(16c31cbccef4d8a81f2150cec874a01688e46a59) ) - ROM_LOAD( "ws_chr-4.bin", 0x80000, 0x20000, CRC(afb11e17) SHA1(cf4aa124f0d4fe737686ccda72c55c199189ca49) ) - ROM_LOAD( "ws_chr-6.bin", 0xc0000, 0x20000, CRC(a16a17c2) SHA1(52917165d50a03db8ad6783a95731e0b438c2a6c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "ws_obj-0.bin", 0x00000, 0x20000, CRC(12dc83a6) SHA1(f3d0ebda14af81ff99642ceaa7b9c0e4a4bfbbcb) ) - ROM_LOAD( "ws_obj-1.bin", 0x20000, 0x20000, CRC(68290a46) SHA1(c05f31e1c2332cba5d5b8cafc0e9f616aadee5b7) ) - ROM_LOAD( "ws_obj-2.bin", 0x40000, 0x20000, CRC(cd5ba55d) SHA1(9b5a655909457bcffdaaa95842740a6f0f8f6cec) ) - ROM_LOAD_HS( "ws1_obj3.bin", 0x60000, 0x10000, CRC(f2ed5309) SHA1(b7d9c0a617660ecceaf7db3fd53bc0377ed1b6c1) ) -ROM_END - -/* Beraboh Man */ -ROM_START( berabohm ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "bm1_s0.bin", 0x0c000, 0x10000, CRC(d5d53cb1) SHA1(af5db529550382dab61197eb46e02110efc4c21b) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "bm1_p0.bin", 0x000000, CRC(b57ff8c1) SHA1(8169c95e83ada1016eb070aa6b4b99b153656615) ) - ROM_LOAD_1024( "bm1_p1.bin", 0x080000, CRC(b15f6407) SHA1(7d24510a663c8c647fe52f413c580dbbd08d0ddc) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - ROM_LOAD_1024( "bm1_p4.bin", 0x200000, CRC(f6cfcb8c) SHA1(22c78c9afbe71a66d2022778309463dbe28419aa) ) - /* 280000-2fffff empty */ - ROM_LOAD_512 ( "bm1-p6.bin", 0x300000, CRC(a51b69a5) SHA1(d04a52feb95f8b65978af88bd4b338883228fd93) ) - ROM_LOAD_1024( "bm1_p7c.bin", 0x380000, CRC(9694d7b2) SHA1(2953a7029457a8afb2767560f05c064aade28bca) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "bm1_v0.bin", 0x10000, 0x10000, CRC(4e40d0ca) SHA1(799c4becd2e5877719d7a5eb9b610f91a7a637af) ) - ROM_LOAD( "bm_voi-1.bin", 0x30000, 0x20000, CRC(be9ce0a8) SHA1(a211216125615cb14e515317f56976c4ebe13f5f) ) - ROM_LOAD_HS( "bm1_v2.bin", 0x50000, 0x10000, CRC(41225d04) SHA1(a670c5ce63ff1d2ed94aa5ea17cb2c91eb768f14) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "bm_chr-8.bin", 0x00000, 0x20000, CRC(92860e95) SHA1(d8c8d5aed956c876809f287700f33bc70a1b58a3) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bm_chr-0.bin", 0x00000, 0x20000, CRC(eda1d92e) SHA1(b9423a9feafb08c0f3d1f359783d8e4fb17bde98) ) - ROM_LOAD( "bm_chr-1.bin", 0x20000, 0x20000, CRC(8ae1891e) SHA1(95308defaf564680028abc3a0fd406cf35e461ce) ) - ROM_LOAD( "bm_chr-2.bin", 0x40000, 0x20000, CRC(774cdf4e) SHA1(a4663dec7bfb43bee4e6aaacb3b203d71e3e3c9e) ) - ROM_LOAD( "bm_chr-3.bin", 0x60000, 0x20000, CRC(6d81e6c9) SHA1(6837adf0b82c7a6cba973932083db33a0ba0b422) ) - ROM_LOAD( "bm_chr-4.bin", 0x80000, 0x20000, CRC(f4597683) SHA1(ea585ff6e998e647580bf75dc128c1c2892947eb) ) - ROM_LOAD( "bm_chr-5.bin", 0xa0000, 0x20000, CRC(0e0abde0) SHA1(1e17767ccf55bebf681b078b405bedd47fe502d5) ) - ROM_LOAD( "bm_chr-6.bin", 0xc0000, 0x20000, CRC(4a61f08c) SHA1(1136819780e1f3ed150663d4853b6caf835e1c3e) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "bm_obj-0.bin", 0x00000, 0x20000, CRC(15724b94) SHA1(2f40425138c574a51e742ff610ce88c8a47c0c16) ) - ROM_LOAD( "bm_obj-1.bin", 0x20000, 0x20000, CRC(5d21f962) SHA1(2cfeda30dd7e10bcb66fe8858470a9db7577a59d) ) - ROM_LOAD( "bm_obj-2.bin", 0x40000, 0x20000, CRC(5d48e924) SHA1(6642b9cc632bba216f341a37325a826808aa3f34) ) - ROM_LOAD( "bm_obj-3.bin", 0x60000, 0x20000, CRC(cbe56b7f) SHA1(6387d04f0f42cde3504fb85ebb702de334bb0e5a) ) - ROM_LOAD( "bm_obj-4.bin", 0x80000, 0x20000, CRC(76dcc24c) SHA1(78deeb6efca1d2a0d52ee047bdd869cb9c9e2816) ) - ROM_LOAD( "bm_obj-5.bin", 0xa0000, 0x20000, CRC(fe70201d) SHA1(49a621e169f096572583bbbdee2ab1a7916bf95f) ) - ROM_LOAD( "bm_obj-7.bin", 0xe0000, 0x20000, CRC(377c81ed) SHA1(85f4682c6079863793f5575d261a33309c221ba7) ) -ROM_END - -ROM_START( beraboho ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "bm1_s0.bin", 0x0c000, 0x10000, CRC(d5d53cb1) SHA1(af5db529550382dab61197eb46e02110efc4c21b) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "bm1_p0.bin", 0x000000, CRC(b57ff8c1) SHA1(8169c95e83ada1016eb070aa6b4b99b153656615) ) - ROM_LOAD_1024( "bm1_p1.bin", 0x080000, CRC(b15f6407) SHA1(7d24510a663c8c647fe52f413c580dbbd08d0ddc) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - ROM_LOAD_1024( "bm1_p4.bin", 0x200000, CRC(f6cfcb8c) SHA1(22c78c9afbe71a66d2022778309463dbe28419aa) ) - /* 280000-2fffff empty */ - ROM_LOAD_512 ( "bm1-p6.bin", 0x300000, CRC(a51b69a5) SHA1(d04a52feb95f8b65978af88bd4b338883228fd93) ) - ROM_LOAD_1024( "bm1_p7b.bin", 0x380000, CRC(e0c36ddd) SHA1(e949da36524add3ab70d5dd5dcc7c6f42e3799e7) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "bm1_v0.bin", 0x10000, 0x10000, CRC(4e40d0ca) SHA1(799c4becd2e5877719d7a5eb9b610f91a7a637af) ) - ROM_LOAD( "bm_voi-1.bin", 0x30000, 0x20000, CRC(be9ce0a8) SHA1(a211216125615cb14e515317f56976c4ebe13f5f) ) - ROM_LOAD_HS( "bm1_v2.bin", 0x50000, 0x10000, CRC(41225d04) SHA1(a670c5ce63ff1d2ed94aa5ea17cb2c91eb768f14) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "bm_chr-8.bin", 0x00000, 0x20000, CRC(92860e95) SHA1(d8c8d5aed956c876809f287700f33bc70a1b58a3) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bm_chr-0.bin", 0x00000, 0x20000, CRC(eda1d92e) SHA1(b9423a9feafb08c0f3d1f359783d8e4fb17bde98) ) - ROM_LOAD( "bm_chr-1.bin", 0x20000, 0x20000, CRC(8ae1891e) SHA1(95308defaf564680028abc3a0fd406cf35e461ce) ) - ROM_LOAD( "bm_chr-2.bin", 0x40000, 0x20000, CRC(774cdf4e) SHA1(a4663dec7bfb43bee4e6aaacb3b203d71e3e3c9e) ) - ROM_LOAD( "bm_chr-3.bin", 0x60000, 0x20000, CRC(6d81e6c9) SHA1(6837adf0b82c7a6cba973932083db33a0ba0b422) ) - ROM_LOAD( "bm_chr-4.bin", 0x80000, 0x20000, CRC(f4597683) SHA1(ea585ff6e998e647580bf75dc128c1c2892947eb) ) - ROM_LOAD( "bm_chr-5.bin", 0xa0000, 0x20000, CRC(0e0abde0) SHA1(1e17767ccf55bebf681b078b405bedd47fe502d5) ) - ROM_LOAD( "bm_chr-6.bin", 0xc0000, 0x20000, CRC(4a61f08c) SHA1(1136819780e1f3ed150663d4853b6caf835e1c3e) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "bm_obj-0.bin", 0x00000, 0x20000, CRC(15724b94) SHA1(2f40425138c574a51e742ff610ce88c8a47c0c16) ) - ROM_LOAD( "bm_obj-1.bin", 0x20000, 0x20000, CRC(5d21f962) SHA1(2cfeda30dd7e10bcb66fe8858470a9db7577a59d) ) - ROM_LOAD( "bm_obj-2.bin", 0x40000, 0x20000, CRC(5d48e924) SHA1(6642b9cc632bba216f341a37325a826808aa3f34) ) - ROM_LOAD( "bm_obj-3.bin", 0x60000, 0x20000, CRC(cbe56b7f) SHA1(6387d04f0f42cde3504fb85ebb702de334bb0e5a) ) - ROM_LOAD( "bm_obj-4.bin", 0x80000, 0x20000, CRC(76dcc24c) SHA1(78deeb6efca1d2a0d52ee047bdd869cb9c9e2816) ) - ROM_LOAD( "bm_obj-5.bin", 0xa0000, 0x20000, CRC(fe70201d) SHA1(49a621e169f096572583bbbdee2ab1a7916bf95f) ) - ROM_LOAD( "bm_obj-7.bin", 0xe0000, 0x20000, CRC(377c81ed) SHA1(85f4682c6079863793f5575d261a33309c221ba7) ) -ROM_END - -/* Marchen Maze */ -ROM_START( mmaze ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "mm_snd-0.bin", 0x0c000, 0x10000, CRC(25d25e07) SHA1(b2293bfc380fd767ac2a51e8b32e24bbea866be2) ) - ROM_LOAD( "mm_snd-1.bin", 0x1c000, 0x10000, CRC(2c5849c8) SHA1(1073719c9f4d4e41cbfd7c749bff42a0be460baf) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "mm_prg-0.bin", 0x000000, CRC(e169a911) SHA1(0537536f5278a9e7ebad03b55d9904ccbac7b3b6) ) - ROM_LOAD_1024( "mm_prg-1.bin", 0x080000, CRC(6ba14e41) SHA1(54d53a5653eb943210f519c85d190482957b3533) ) - ROM_LOAD_1024( "mm_prg-2.bin", 0x100000, CRC(91bde09f) SHA1(d7f6f644f526e36b6fd930d80f78ad1aa646fdfb) ) - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_512 ( "mm1_p6.bin", 0x300000, CRC(eaf530d8) SHA1(4c62f86b58ff2c62b269f2cef7982a3d49490ffa) ) - ROM_LOAD_512 ( "mm1_p7.bin", 0x380000, CRC(085e58cc) SHA1(3b83943e93eacae61a0e762d568cf7bc64128e37) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "mm_voi-0.bin", 0x10000, 0x20000, CRC(ee974cff) SHA1(f211c461a36dae9ce5ee614aaaabf92556181a85) ) - ROM_LOAD( "mm_voi-1.bin", 0x30000, 0x20000, CRC(d09b5830) SHA1(954be797e30f7d126b4fc2b04f190bfd7dc23bff) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "mm_chr-8.bin", 0x00000, 0x20000, CRC(a3784dfe) SHA1(7bcd71e0c675cd16587b61c23b470abb8ba434d3) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "mm_chr-0.bin", 0x00000, 0x20000, CRC(43ff2dfc) SHA1(4cf6834071f408eac5a7a67570bd11cb61a83b54) ) - ROM_LOAD( "mm_chr-1.bin", 0x20000, 0x20000, CRC(b9b4b72d) SHA1(cc11496a27cd94503eb3a16c95c49d60ed092e62) ) - ROM_LOAD( "mm_chr-2.bin", 0x40000, 0x20000, CRC(bee28425) SHA1(90e8aaf4bcb1af6239404bc05b9e6a1b25f61754) ) - ROM_LOAD( "mm_chr-3.bin", 0x60000, 0x20000, CRC(d9f41e5c) SHA1(c4fd2245ee02d8479209e07b8fe32d46b66de6ee) ) - ROM_LOAD( "mm_chr-4.bin", 0x80000, 0x20000, CRC(3484f4ae) SHA1(0cc177637e3fc8ef26bcde0f15ab507143745ff9) ) - ROM_LOAD( "mm_chr-5.bin", 0xa0000, 0x20000, CRC(c863deba) SHA1(cc2b8cd156cf11ee289c68b0a583e7bb4250414b) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "mm_obj-0.bin", 0x00000, 0x20000, CRC(d4b7e698) SHA1(c73ef73574a52d06e12e21047529b09854e1ba21) ) - ROM_LOAD( "mm_obj-1.bin", 0x20000, 0x20000, CRC(1ce49e04) SHA1(fc30a03e443bece11bd86771ebd1fcb40d15b0b9) ) - ROM_LOAD( "mm_obj-2.bin", 0x40000, 0x20000, CRC(3d3d5de3) SHA1(aa8032f1d99af1d92b0afaa11933548e0d39f03b) ) - ROM_LOAD( "mm_obj-3.bin", 0x60000, 0x20000, CRC(dac57358) SHA1(5175b66d3622cb56ed7be3568b247195d1485579) ) -ROM_END - -/* Bakutotsu Kijuutei */ -ROM_START( bakutotu ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "bk1_s0.bin", 0x0c000, 0x10000, CRC(c35d7df6) SHA1(9ea534fc700581171536ad1df60263d31e7239a6) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "bk_prg-0.bin", 0x000000, CRC(4529c362) SHA1(beae2119fb6a5752885766fb5fba9c4fac5dd38f) ) - ROM_LOAD_512 ( "bk1_p1.bin", 0x080000, CRC(d389d6d4) SHA1(04502f1670d96fb4c2369ca2f05edfd3181d63cf) ) - ROM_LOAD_512 ( "bk1_p2.bin", 0x100000, CRC(7a686daa) SHA1(1313603f12e06eb2384bf156aee1bfb40e8fa39c) ) - ROM_LOAD_1024( "bk1_p3.bin", 0x180000, CRC(e608234f) SHA1(0445321e19666effb4784f577bbeb5761822edb8) ) - ROM_LOAD_512 ( "bk1_p4.bin", 0x200000, CRC(96446d48) SHA1(22a3f0689b272df3e773509b2ff72d2801d25cfc) ) - ROM_LOAD_512 ( "bk1_p5.bin", 0x280000, CRC(dceed7cb) SHA1(af6a763a40a987e31a071debb85c42b45ec28644) ) - ROM_LOAD_1024( "bk1_p6.bin", 0x300000, CRC(57a3ce42) SHA1(773d5f93e75ffe4b114cbcd1093c7cb43e1d6362) ) - ROM_LOAD_1024( "bk1_prg7.bin", 0x380000, CRC(fac1c1bf) SHA1(59e2612d0f4b3aea5cf5f5652e7cbee89cde860f) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "bk1_v0.bin", 0x10000, 0x10000, CRC(008e290e) SHA1(87ac7291088f0d6a7179b1a5f3567a72dc92177c) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "bk_chr-8.bin", 0x00000, 0x20000, CRC(6c8d4029) SHA1(2eb6fd89ffaecfa53f9adcdebbe8f550199d067f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bk_chr-0.bin", 0x00000, 0x20000, CRC(4e011058) SHA1(bcefa12c1ca2486065ad648239704bed7f48dcfd) ) - ROM_LOAD( "bk_chr-1.bin", 0x20000, 0x20000, CRC(496fcb9b) SHA1(0321bbc6957a34533d85008adbe1315a22f9292b) ) - ROM_LOAD( "bk_chr-2.bin", 0x40000, 0x20000, CRC(dc812e28) SHA1(42c71a840f3f885f1d53285156c098d00a202ab1) ) - ROM_LOAD( "bk_chr-3.bin", 0x60000, 0x20000, CRC(2b6120f4) SHA1(2cd52ed82556f4177ad427a063b6a0867ad3d3ad) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "bk_obj-0.bin", 0x00000, 0x20000, CRC(88c627c1) SHA1(10b331d8eec2cba327a8fa6f3213880e8e50a38d) ) - - // obj1 and 2 may not exist on the real board - ROM_LOAD( "bk_obj-3.bin", 0x20000, 0x20000, CRC(f7d1909a) SHA1(3f74a186f29b8f13a4c33de8f5b3d241bd6ded89) ) // dummy mirroring obj3 - ROM_LOAD( "bk_obj-4.bin", 0x40000, 0x20000, CRC(27ed1441) SHA1(74fa3ad01cbf01ee3be9d5cc2d241885c8a90b18) ) // dummy mirroring obj4 - - ROM_LOAD( "bk_obj-3.bin", 0x60000, 0x20000, CRC(f7d1909a) SHA1(3f74a186f29b8f13a4c33de8f5b3d241bd6ded89) ) - ROM_LOAD( "bk_obj-4.bin", 0x80000, 0x20000, CRC(27ed1441) SHA1(74fa3ad01cbf01ee3be9d5cc2d241885c8a90b18) ) - ROM_LOAD( "bk_obj-5.bin", 0xa0000, 0x20000, CRC(790560c0) SHA1(b3b0be53a3dccada9b7c059c1f10342a16cc7e1a) ) - ROM_LOAD( "bk_obj-6.bin", 0xc0000, 0x20000, CRC(2cd4d2ea) SHA1(5a367841488304a93595757a653f9b484cfb252e) ) - ROM_LOAD( "bk_obj-7.bin", 0xe0000, 0x20000, CRC(809aa0e6) SHA1(d5dbc04037001a0808e79da742f7c4a8f5d3bc2f) ) -ROM_END - -/* World Court */ -ROM_START( wldcourt ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "wc1_snd0.bin", 0x0c000, 0x10000, CRC(17a6505d) SHA1(773636173947a656c3b5a21049c28eedc40e4654) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_512( "wc1_prg6.bin", 0x300000, CRC(e9216b9e) SHA1(dc2e0b7ca1b0de01ae7e05a4098eb6f2d1042211) ) - ROM_LOAD_512( "wc1_prg7.bin", 0x380000, CRC(8a7c6cac) SHA1(da3b1682c4aa756a8f8d06c15110ee8d23c215f1) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "wc1_voi0.bin", 0x10000, 0x10000, CRC(b57919f7) SHA1(5305c479513943a5d92988a63ad1671744e944b5) ) - ROM_LOAD( "wc1_voi1.bin", 0x30000, 0x20000, CRC(97974b4b) SHA1(1e4d10ce28cabc01f1f233a0edc05e20874e0285) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "wc1_chr8.bin", 0x00000, 0x20000, CRC(23e1c399) SHA1(2d22da5c68c0924767f18fb19576cb76a016ae8e) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "wc1_chr0.bin", 0x00000, 0x20000, CRC(9fb07b9b) SHA1(5e98da8a4800be264d219e7b47433531ae2bbb79) ) - ROM_LOAD( "wc1_chr1.bin", 0x20000, 0x20000, CRC(01bfbf60) SHA1(648bdabd0e9b5e98f20863335177ad2df455c022) ) - ROM_LOAD( "wc1_chr2.bin", 0x40000, 0x20000, CRC(7e8acf45) SHA1(0bc5206be76a8f44881a1bc5f559412c9a8ff57f) ) - ROM_LOAD( "wc1_chr3.bin", 0x60000, 0x20000, CRC(924e9c81) SHA1(4b5eb94c8da9e8397c5f1d03f338a5fa8895931c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "wc1_obj0.bin", 0x00000, 0x20000, CRC(70d562f8) SHA1(4445e2dd3eeaef79803d2b06e5b32782f6c4acbc) ) - ROM_LOAD( "wc1_obj1.bin", 0x20000, 0x20000, CRC(ba8b034a) SHA1(024a4dd4497c17792648f90b59da9bc3da884f13) ) - ROM_LOAD( "wc1_obj2.bin", 0x40000, 0x20000, CRC(c2bd5f0f) SHA1(9c29144fb77290a4d2aaa43c4c0b2f6757ed1f8c) ) - ROM_LOAD( "wc1_obj3.bin", 0x60000, 0x10000, CRC(1aa2dbc8) SHA1(dc100fd85aca8b4c29d2100dba43dd4093976633) ) -ROM_END - -/* Splatter House */ -ROM_START( splatter ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "sh1_snd0.bin", 0x0c000, 0x10000, CRC(90abd4ad) SHA1(caeba5befcf57d90671786c7ef1ce49d54821949) ) - ROM_LOAD( "sh1_snd1.bin", 0x1c000, 0x10000, CRC(8ece9e0a) SHA1(578da932a7684c6f633dde1d6412011c727c2380) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "sh1_prg0.bin", 0x000000, CRC(4e07e6d9) SHA1(9bca8aca0041c311c403cf3b9a2365d704b39769) ) - ROM_LOAD_512( "sh1_prg1.bin", 0x080000, CRC(7a3efe09) SHA1(2271356be580e29cf70dbb70f797fb3c49666ada) ) - ROM_LOAD_512( "sh1_prg2.bin", 0x100000, CRC(434dbe7d) SHA1(40bb1d4ed8e6563f98732501e212d7324c714af2) ) - ROM_LOAD_512( "sh1_prg3.bin", 0x180000, CRC(955ce93f) SHA1(5ba493769595bc9ebf5404a50435aaf0918d7dd3) ) - ROM_LOAD_512( "sh1_prg4.bin", 0x200000, CRC(350dee5b) SHA1(8928a7453ff52b3c7abbf28b2ab08b2e63b16d28) ) - ROM_LOAD_512( "sh1_prg5.bin", 0x280000, CRC(0187de9a) SHA1(9b6c5bbdb81fb5cbb9a93b2b6d2358711dfded31) ) - ROM_LOAD_512( "sh2_prg6.bin", 0x300000, CRC(054d6275) SHA1(5f28985897e35dca33a8063e98938c0f6d8fe9d8) ) - ROM_LOAD_512( "sh2_prg7.bin", 0x380000, CRC(942cb61e) SHA1(405804b85eed62150667116c500222f591a25dd3) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "sh_voi-0.bin", 0x10000, 0x20000, CRC(2199cb66) SHA1(f1c4e3fb0e7c6eae50c698cded8c85a3cbd36672) ) - ROM_LOAD( "sh_voi-1.bin", 0x30000, 0x20000, CRC(9b6472af) SHA1(b7cde805a4d25f9c332c2c13ffa474e683ec76d5) ) - ROM_LOAD( "sh_voi-2.bin", 0x50000, 0x20000, CRC(25ea75b6) SHA1(aafebbdddf4a2924d9e5a850ffb6861cb5c4a769) ) - ROM_LOAD( "sh_voi-3.bin", 0x70000, 0x20000, CRC(5eebcdb4) SHA1(973e95a49cb1dda14e4c61580501c997fc7bc015) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "sh_chr-8.bin", 0x00000, 0x20000, CRC(321f483b) SHA1(84d75367d2e3ae210ecd17c163b336f609628a91) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "sh_chr-0.bin", 0x00000, 0x20000, CRC(4dd2ef05) SHA1(c756c0986db9e61cf44379fafb00295f0d434667) ) - ROM_LOAD( "sh_chr-1.bin", 0x20000, 0x20000, CRC(7a764999) SHA1(836aee2c9abe2a8e3806b53e051f76dcf4266212) ) - ROM_LOAD( "sh_chr-2.bin", 0x40000, 0x20000, CRC(6e6526ee) SHA1(f96a672b4293657398cfc6c1cf4ab4e4b223f7f9) ) - ROM_LOAD( "sh_chr-3.bin", 0x60000, 0x20000, CRC(8d05abdb) SHA1(cdf6ae9edc880a1d750a4c36b9dc7150aab8e249) ) - ROM_LOAD( "sh_chr-4.bin", 0x80000, 0x20000, CRC(1e1f8488) SHA1(3649564746516260b8b2df404e0ccf874d3441f9) ) - ROM_LOAD( "sh_chr-5.bin", 0xa0000, 0x20000, CRC(684cf554) SHA1(77d3b6f03c8a96bd6e8bb7d2264fbfeb43bcde3d) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "sh_obj-0.bin", 0x00000, 0x20000, CRC(1cedbbae) SHA1(22811a9376195794f18ee8d377b2548d27fc868e) ) - ROM_LOAD( "sh_obj-1.bin", 0x20000, 0x20000, CRC(e56e91ee) SHA1(12b823ca92fb518d84c0432925ae8a4b33a1354d) ) - ROM_LOAD( "sh_obj-2.bin", 0x40000, 0x20000, CRC(3dfb0230) SHA1(bf68a20544931b9673ce1f9e81b5f82e99f50bd0) ) - ROM_LOAD( "sh_obj-3.bin", 0x60000, 0x20000, CRC(e4e5a581) SHA1(e6cebef3dafbcdfd8e9e25b0796af47c8673473f) ) - ROM_LOAD( "sh_obj-4.bin", 0x80000, 0x20000, CRC(b2422182) SHA1(84cba3b7552756a206793f4c7b90fc6b8821963d) ) - ROM_LOAD( "sh_obj-5.bin", 0xa0000, 0x20000, CRC(24d0266f) SHA1(5c768343554209a7d7858afe41489a58809dd5f1) ) - ROM_LOAD( "sh_obj-6.bin", 0xc0000, 0x20000, CRC(80830b0e) SHA1(f9d69ece0827f5ec46473142d24f3191d40a0d57) ) - ROM_LOAD( "sh_obj-7.bin", 0xe0000, 0x20000, CRC(08b1953a) SHA1(f84f97e8e14ed6fcf99565d2603651831101ed2f) ) -ROM_END - -/* Splatter House */ -ROM_START( splattej ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "sh1_snd0.bin", 0x0c000, 0x10000, CRC(90abd4ad) SHA1(caeba5befcf57d90671786c7ef1ce49d54821949) ) - ROM_LOAD( "sh1_snd1.bin", 0x1c000, 0x10000, CRC(8ece9e0a) SHA1(578da932a7684c6f633dde1d6412011c727c2380) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "sh1_prg0.bin", 0x000000, CRC(4e07e6d9) SHA1(9bca8aca0041c311c403cf3b9a2365d704b39769) ) - ROM_LOAD_512( "sh1_prg1.bin", 0x080000, CRC(7a3efe09) SHA1(2271356be580e29cf70dbb70f797fb3c49666ada) ) - ROM_LOAD_512( "sh1_prg2.bin", 0x100000, CRC(434dbe7d) SHA1(40bb1d4ed8e6563f98732501e212d7324c714af2) ) - ROM_LOAD_512( "sh1_prg3.bin", 0x180000, CRC(955ce93f) SHA1(5ba493769595bc9ebf5404a50435aaf0918d7dd3) ) - ROM_LOAD_512( "sh1_prg4.bin", 0x200000, CRC(350dee5b) SHA1(8928a7453ff52b3c7abbf28b2ab08b2e63b16d28) ) - ROM_LOAD_512( "sh1_prg5.bin", 0x280000, CRC(0187de9a) SHA1(9b6c5bbdb81fb5cbb9a93b2b6d2358711dfded31) ) - ROM_LOAD_512( "sh1_prg6.bin", 0x300000, CRC(97a3e664) SHA1(397907cedea1cd9ae25427df5d41b942933c3ca9) ) - ROM_LOAD_512( "sh1_prg7.bin", 0x380000, CRC(24c8cbd7) SHA1(72a2f008840b1b5cf026dd51e2797d87d92040fd) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "sh_voi-0.bin", 0x10000, 0x20000, CRC(2199cb66) SHA1(f1c4e3fb0e7c6eae50c698cded8c85a3cbd36672) ) - ROM_LOAD( "sh_voi-1.bin", 0x30000, 0x20000, CRC(9b6472af) SHA1(b7cde805a4d25f9c332c2c13ffa474e683ec76d5) ) - ROM_LOAD( "sh_voi-2.bin", 0x50000, 0x20000, CRC(25ea75b6) SHA1(aafebbdddf4a2924d9e5a850ffb6861cb5c4a769) ) - ROM_LOAD( "sh_voi-3.bin", 0x70000, 0x20000, CRC(5eebcdb4) SHA1(973e95a49cb1dda14e4c61580501c997fc7bc015) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "sh_chr-8.bin", 0x00000, 0x20000, CRC(321f483b) SHA1(84d75367d2e3ae210ecd17c163b336f609628a91) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "sh_chr-0.bin", 0x00000, 0x20000, CRC(4dd2ef05) SHA1(c756c0986db9e61cf44379fafb00295f0d434667) ) - ROM_LOAD( "sh_chr-1.bin", 0x20000, 0x20000, CRC(7a764999) SHA1(836aee2c9abe2a8e3806b53e051f76dcf4266212) ) - ROM_LOAD( "sh_chr-2.bin", 0x40000, 0x20000, CRC(6e6526ee) SHA1(f96a672b4293657398cfc6c1cf4ab4e4b223f7f9) ) - ROM_LOAD( "sh_chr-3.bin", 0x60000, 0x20000, CRC(8d05abdb) SHA1(cdf6ae9edc880a1d750a4c36b9dc7150aab8e249) ) - ROM_LOAD( "sh_chr-4.bin", 0x80000, 0x20000, CRC(1e1f8488) SHA1(3649564746516260b8b2df404e0ccf874d3441f9) ) - ROM_LOAD( "sh_chr-5.bin", 0xa0000, 0x20000, CRC(684cf554) SHA1(77d3b6f03c8a96bd6e8bb7d2264fbfeb43bcde3d) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "sh_obj-0.bin", 0x00000, 0x20000, CRC(1cedbbae) SHA1(22811a9376195794f18ee8d377b2548d27fc868e) ) - ROM_LOAD( "sh_obj-1.bin", 0x20000, 0x20000, CRC(e56e91ee) SHA1(12b823ca92fb518d84c0432925ae8a4b33a1354d) ) - ROM_LOAD( "sh_obj-2.bin", 0x40000, 0x20000, CRC(3dfb0230) SHA1(bf68a20544931b9673ce1f9e81b5f82e99f50bd0) ) - ROM_LOAD( "sh_obj-3.bin", 0x60000, 0x20000, CRC(e4e5a581) SHA1(e6cebef3dafbcdfd8e9e25b0796af47c8673473f) ) - ROM_LOAD( "sh_obj-4.bin", 0x80000, 0x20000, CRC(b2422182) SHA1(84cba3b7552756a206793f4c7b90fc6b8821963d) ) - ROM_LOAD( "sh_obj-5.bin", 0xa0000, 0x20000, CRC(24d0266f) SHA1(5c768343554209a7d7858afe41489a58809dd5f1) ) - ROM_LOAD( "sh_obj-6.bin", 0xc0000, 0x20000, CRC(80830b0e) SHA1(f9d69ece0827f5ec46473142d24f3191d40a0d57) ) - ROM_LOAD( "sh_obj-7.bin", 0xe0000, 0x20000, CRC(08b1953a) SHA1(f84f97e8e14ed6fcf99565d2603651831101ed2f) ) -ROM_END - -/* Face Off */ -ROM_START( faceoff ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "fo1_s0.bin", 0x0c000, 0x10000, CRC(9a00d97d) SHA1(f1dcad7b6c9adcdce720d7b336d9c34f37975b31) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_512( "fo1_p6.bin", 0x300000, CRC(a48ee82b) SHA1(d6dbcb6d84a1290185388fb7278e0b2fbb46a0e5) ) - ROM_LOAD_512( "fo1_p7.bin", 0x380000, CRC(6791d221) SHA1(e3a95bd4ff36df5fccd5168491beeb18b1a10d95) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "fo1_v0.bin", 0x10000, 0x10000, CRC(e6edf63e) SHA1(095f7fa93233e4b4f25e728868c212170be48550) ) - ROM_LOAD_HS( "fo1_v1.bin", 0x30000, 0x10000, CRC(132a5d90) SHA1(d5ceae68d7aea7cdde43600453f9724f35834519) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "fo1_c8.bin", 0x00000, 0x10000, CRC(d397216c) SHA1(baa3747bf3e12246e2629eaf0abdb3df05e423bd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "fo1_c0.bin", 0x00000, 0x20000, CRC(27884ac0) SHA1(b80444553e87d9dc0e3fdccee00ac9424a686a2a) ) - ROM_LOAD( "fo1_c1.bin", 0x20000, 0x20000, CRC(4d423499) SHA1(9c06f468562e7c2dced3514b8a94db4146a16989) ) - ROM_LOAD( "fo1_c2.bin", 0x40000, 0x20000, CRC(d62d86f1) SHA1(db526b9e5c701bb6264549581a00aabf6c95e7be) ) - ROM_LOAD( "fo1_c3.bin", 0x60000, 0x20000, CRC(c2a08694) SHA1(8a78956a7e9f43c93aa63d80bb8b984c0ab22ef9) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "fo1_o0.bin", 0x00000, 0x20000, CRC(41af669d) SHA1(299563252d1340fd6745d9c04d7193ab29290b27) ) - ROM_LOAD( "fo1_o1.bin", 0x20000, 0x20000, CRC(ad5fbaa7) SHA1(aebfd451e7666cfd49b9875b711a317356a0ea87) ) - ROM_LOAD( "fo1_o2.bin", 0x40000, 0x20000, CRC(c1f7eb52) SHA1(f87a59afa19bbc7a9b876f50a787df8148b63738) ) - ROM_LOAD( "fo1_o3.bin", 0x60000, 0x20000, CRC(aa95d2e0) SHA1(adb1acf5c032abc37c76445fd17f4bb02f0952f6) ) - ROM_LOAD( "fo1_o4.bin", 0x80000, 0x20000, CRC(985f04c7) SHA1(03fcb84c9134aa4521ce9549d09925a4f7a82318) ) -ROM_END - -/* Rompers */ -ROM_START( rompers ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "rp1_snd0.bin", 0x0c000, 0x10000, CRC(c7c8d649) SHA1(a60a58b4fc8e3f65e4e686b51fd2c17c9d74c444) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - ROM_LOAD_512( "rp1_prg4.bin", 0x200000, CRC(0918f06d) SHA1(0a9055e8e7d6940e1ff89b4bb83180184b4c63cd) ) - ROM_LOAD_512( "rp1_prg5.bin", 0x280000, CRC(98bd4133) SHA1(82b128eef2b6c9bd39816203feb60035556a09ee) ) - ROM_LOAD_512( "rp1prg6b.bin", 0x300000, CRC(80821065) SHA1(76e0dd774e064d8ed9399116d50230e7d7f38216) ) - ROM_LOAD_512( "rp1prg7b.bin", 0x380000, CRC(49d057e2) SHA1(c1e19218b1897827b3de7912a08f1677510a8b09) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "rp_voi-0.bin", 0x10000, 0x20000, CRC(11caef7e) SHA1(c6470cbbc6402872794e0a4e822a5d08ca2448ef) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "rp1_chr8.bin", 0x00000, 0x10000, CRC(69cfe46a) SHA1(01c5af1b7fc337ec06a5afabd87b9a6a7dcf3503) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "rp_chr-0.bin", 0x00000, 0x20000, CRC(41b10ef3) SHA1(b1230ef55db91bc92d251332434ca7d5c9e7f879) ) - ROM_LOAD( "rp_chr-1.bin", 0x20000, 0x20000, CRC(c18cd24e) SHA1(cfcf7ff4810ce18aaf188fbb552c926db9577c00) ) - ROM_LOAD( "rp_chr-2.bin", 0x40000, 0x20000, CRC(6c9a3c79) SHA1(7d70a87b411ebafd372eb3f46bb09c6bfbfafb04) ) - ROM_LOAD( "rp_chr-3.bin", 0x60000, 0x20000, CRC(473aa788) SHA1(8b3fcc7511bdc5ab443ac67a6bd0c05fb3463f8c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "rp_obj-0.bin", 0x00000, 0x20000, CRC(1dcbf8bb) SHA1(aec5d43b1a8c4af9a3002c815662179fa6324e2d) ) - ROM_LOAD( "rp_obj-1.bin", 0x20000, 0x20000, CRC(cb98e273) SHA1(f13fe6f19ff812a2dcb614343f040fb9c4131b56) ) - ROM_LOAD( "rp_obj-2.bin", 0x40000, 0x20000, CRC(6ebd191e) SHA1(e7ff23ac2586f4c38f3c5107b789e313a35e054e) ) - ROM_LOAD( "rp_obj-3.bin", 0x60000, 0x20000, CRC(7c9828a1) SHA1(0b0abd18b17b0cfe9308d4282400cc8bc89b640c) ) - ROM_LOAD( "rp_obj-4.bin", 0x80000, 0x20000, CRC(0348220b) SHA1(453c86d27490397c49d2708d5afc5a12c4bc99d1) ) - ROM_LOAD( "rp1_obj5.bin", 0xa0000, 0x10000, CRC(9e2ba243) SHA1(36721dbebfef5f7fb3935ff89462b52ee286df82) ) - ROM_LOAD( "rp1_obj6.bin", 0xc0000, 0x10000, CRC(6bf2aca6) SHA1(ecd6022c0e4022ebfc571ee20d89369921cf3f1d) ) -ROM_END - -/* Rompers (old version) */ -ROM_START( romperso ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "rp1_snd0.bin", 0x0c000, 0x10000, CRC(c7c8d649) SHA1(a60a58b4fc8e3f65e4e686b51fd2c17c9d74c444) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - ROM_LOAD_512( "rp1_prg4.bin", 0x200000, CRC(0918f06d) SHA1(0a9055e8e7d6940e1ff89b4bb83180184b4c63cd) ) - ROM_LOAD_512( "rp1_prg5.bin", 0x280000, CRC(98bd4133) SHA1(82b128eef2b6c9bd39816203feb60035556a09ee) ) - ROM_LOAD_512( "rp1_prg6.bin", 0x300000, CRC(fc183345) SHA1(1660233d8971236d059ac9c40ee430b269abdc8f) ) - ROM_LOAD_512( "rp1_prg7.bin", 0x380000, CRC(8d49f28a) SHA1(3b86757da6e3f81794a7c18907b14a555b99bb10) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "rp_voi-0.bin", 0x10000, 0x20000, CRC(11caef7e) SHA1(c6470cbbc6402872794e0a4e822a5d08ca2448ef) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "rp1_chr8.bin", 0x00000, 0x10000, CRC(69cfe46a) SHA1(01c5af1b7fc337ec06a5afabd87b9a6a7dcf3503) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "rp_chr-0.bin", 0x00000, 0x20000, CRC(41b10ef3) SHA1(b1230ef55db91bc92d251332434ca7d5c9e7f879) ) - ROM_LOAD( "rp_chr-1.bin", 0x20000, 0x20000, CRC(c18cd24e) SHA1(cfcf7ff4810ce18aaf188fbb552c926db9577c00) ) - ROM_LOAD( "rp_chr-2.bin", 0x40000, 0x20000, CRC(6c9a3c79) SHA1(7d70a87b411ebafd372eb3f46bb09c6bfbfafb04) ) - ROM_LOAD( "rp_chr-3.bin", 0x60000, 0x20000, CRC(473aa788) SHA1(8b3fcc7511bdc5ab443ac67a6bd0c05fb3463f8c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "rp_obj-0.bin", 0x00000, 0x20000, CRC(1dcbf8bb) SHA1(aec5d43b1a8c4af9a3002c815662179fa6324e2d) ) - ROM_LOAD( "rp_obj-1.bin", 0x20000, 0x20000, CRC(cb98e273) SHA1(f13fe6f19ff812a2dcb614343f040fb9c4131b56) ) - ROM_LOAD( "rp_obj-2.bin", 0x40000, 0x20000, CRC(6ebd191e) SHA1(e7ff23ac2586f4c38f3c5107b789e313a35e054e) ) - ROM_LOAD( "rp_obj-3.bin", 0x60000, 0x20000, CRC(7c9828a1) SHA1(0b0abd18b17b0cfe9308d4282400cc8bc89b640c) ) - ROM_LOAD( "rp_obj-4.bin", 0x80000, 0x20000, CRC(0348220b) SHA1(453c86d27490397c49d2708d5afc5a12c4bc99d1) ) - ROM_LOAD( "rp1_obj5.bin", 0xa0000, 0x10000, CRC(9e2ba243) SHA1(36721dbebfef5f7fb3935ff89462b52ee286df82) ) - ROM_LOAD( "rp1_obj6.bin", 0xc0000, 0x10000, CRC(6bf2aca6) SHA1(ecd6022c0e4022ebfc571ee20d89369921cf3f1d) ) -ROM_END - -/* Blast Off */ -ROM_START( blastoff ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "bo1-snd0.bin", 0x0c000, 0x10000, CRC(2ecab76e) SHA1(592f1f9ac06cea81517ad0ab7d2fd65bccf6a8d8) ) - ROM_LOAD( "bo1-snd1.bin", 0x1c000, 0x10000, CRC(048a6af1) SHA1(97b839c7c92053b1058f4c91fc5b6e398ee73045) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - ROM_LOAD_1024( "bo1_prg6.bin", 0x300000, CRC(d60da63e) SHA1(525e7d87e240d08f83e5d69b47eb185283b396d4) ) - ROM_LOAD_1024( "bo1prg7b.bin", 0x380000, CRC(b630383c) SHA1(eef9ae4e84f41bf5d137936d8eb033cb89374b86) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "bo_voi-0.bin", 0x10000, 0x20000, CRC(47065e18) SHA1(234e7a40be4def6846040a0fca3e9d7eff3754e3) ) - ROM_LOAD( "bo_voi-1.bin", 0x30000, 0x20000, CRC(0308b18e) SHA1(7196abdf36d660089d739e3f3a362648768a6127) ) - ROM_LOAD( "bo_voi-2.bin", 0x50000, 0x20000, CRC(88cab230) SHA1(659c4efeb8aa24f8b32509ee563407ed1e17d564) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "bo_chr-8.bin", 0x00000, 0x20000, CRC(e8b5f2d4) SHA1(70dd2898dcfed5f43f6c50f852660f24a9d7ec9d) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bo_chr-0.bin", 0x00000, 0x20000, CRC(bdc0afb5) SHA1(09d01640bd0ff8d9d96282411ec9176e5fc57cae) ) - ROM_LOAD( "bo_chr-1.bin", 0x20000, 0x20000, CRC(963d2639) SHA1(1bb936631c17e7695e087c95a72f1871fabb6647) ) - ROM_LOAD( "bo_chr-2.bin", 0x40000, 0x20000, CRC(acdb6894) SHA1(a0d712e4883cda7068aa678d698abbe9c910363b) ) - ROM_LOAD( "bo_chr-3.bin", 0x60000, 0x20000, CRC(214ec47f) SHA1(0f314740bdb2f3cd0ed8ab9a98a47eb8f8b1480b) ) - ROM_LOAD( "bo_chr-4.bin", 0x80000, 0x20000, CRC(08397583) SHA1(e2c0ce46982a1f9035f0a3c4f08dbf3a5e11a871) ) - ROM_LOAD( "bo_chr-5.bin", 0xa0000, 0x20000, CRC(20402429) SHA1(a84760f693ec15f8f8238653d1761a34e2499da9) ) - ROM_LOAD( "bo_chr-7.bin", 0xe0000, 0x20000, CRC(4c5c4603) SHA1(aa0c4f651ae38513f0a2b685dcc62c1897d0f310) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "bo_obj-0.bin", 0x00000, 0x20000, CRC(b3308ae7) SHA1(543ce5b41d922e0299ea691437d7d1a1741c1e0f) ) - ROM_LOAD( "bo_obj-1.bin", 0x20000, 0x20000, CRC(c9c93c47) SHA1(ed3e0e54a5602e2ec6d4e0ee9f7632bc0d4b99fe) ) - ROM_LOAD( "bo_obj-2.bin", 0x40000, 0x20000, CRC(eef77527) SHA1(ba1931a37e4ad06e57e73d61f985bf6267f92d76) ) - ROM_LOAD( "bo_obj-3.bin", 0x60000, 0x20000, CRC(e3d9ed58) SHA1(ddb68274957f52882331b4ab13c55f096a0b1f76) ) - ROM_LOAD( "bo1_obj4.bin", 0x80000, 0x20000, CRC(c2c1b9cb) SHA1(754bf6136f4b1b4958474072dca5c6dbf54517bd) ) -ROM_END - -/* World Stadium '89 */ -ROM_START( ws89 ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "w91_snd0.bin", 0x0c000, 0x10000, CRC(52b84d5a) SHA1(efe7921a565faa42793d581868aa3fa634d81103) ) - ROM_LOAD( "ws1_snd1.bin", 0x1c000, 0x10000, CRC(31bf74c1) SHA1(ddb7a91d6f3ae93be79914a435178a540fe05bfb) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "ws1_prg0.bin", 0x000000, CRC(b0234298) SHA1(b46a70109801d85332fb6658426bd795e03f492a) ) - ROM_LOAD_512( "w91_prg1.bin", 0x080000, CRC(7ad8768f) SHA1(7698b005e2c371266f390b8e0992666c822577d0) ) - ROM_LOAD_512( "w91_prg2.bin", 0x100000, CRC(522e5441) SHA1(e8448aabf3527e268b7b0722825be36978d32cf4) ) - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512( "w91_prg7.bin", 0x380000, CRC(611ed964) SHA1(855a9173bdc707f9cc0fa599ed5e6ccc4897f4e5) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "ws1_voi0.bin", 0x10000, 0x10000, CRC(f6949199) SHA1(ef596b02060f8e58eac37765663dd16377244391) ) - ROM_LOAD( "ws_voi-1.bin", 0x30000, 0x20000, CRC(210e2af9) SHA1(f8a1f8c6b9fbb8a9b3f298674600c1fbb9c5840e) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "ws_chr-8.bin", 0x00000, 0x20000, CRC(d1897b9b) SHA1(29906614b879e5623b49bc925e80006aee3997b9) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ws_chr-0.bin", 0x00000, 0x20000, CRC(3e3e96b4) SHA1(7b5f72e7e2aab9c78f452171ac6ebe8c634a88c4) ) - ROM_LOAD( "ws_chr-1.bin", 0x20000, 0x20000, CRC(897dfbc1) SHA1(3e7425a456bada77591abcf1567ec75a99440334) ) - ROM_LOAD( "ws_chr-2.bin", 0x40000, 0x20000, CRC(e142527c) SHA1(606206b7b9916e3f456595344b70c17d44731fbb) ) - ROM_LOAD( "ws_chr-3.bin", 0x60000, 0x20000, CRC(907d4dc8) SHA1(16c31cbccef4d8a81f2150cec874a01688e46a59) ) - ROM_LOAD( "ws_chr-4.bin", 0x80000, 0x20000, CRC(afb11e17) SHA1(cf4aa124f0d4fe737686ccda72c55c199189ca49) ) - ROM_LOAD( "ws_chr-6.bin", 0xc0000, 0x20000, CRC(a16a17c2) SHA1(52917165d50a03db8ad6783a95731e0b438c2a6c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "ws_obj-0.bin", 0x00000, 0x20000, CRC(12dc83a6) SHA1(f3d0ebda14af81ff99642ceaa7b9c0e4a4bfbbcb) ) - ROM_LOAD( "ws_obj-1.bin", 0x20000, 0x20000, CRC(68290a46) SHA1(c05f31e1c2332cba5d5b8cafc0e9f616aadee5b7) ) - ROM_LOAD( "ws_obj-2.bin", 0x40000, 0x20000, CRC(cd5ba55d) SHA1(9b5a655909457bcffdaaa95842740a6f0f8f6cec) ) - ROM_LOAD_HS( "w91_obj3.bin", 0x60000, 0x10000, CRC(8ee76105) SHA1(8b567631250981fd9ec15ef8beb1df469cc70c4d) ) -ROM_END - -/* Dangerous Seed */ -ROM_START( dangseed ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "dr1_snd0.bin", 0x0c000, 0x20000, CRC(bcbbb21d) SHA1(0ec3e43b94733af69c0a68fd6f5ce5cda916aef7) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - /* 000000-07ffff empty */ - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - ROM_LOAD_1024( "dr_prg-5.bin", 0x280000, CRC(7986bbdd) SHA1(7d6c99326469b5b6d88c2c9b000f03b5df390fdb) ) - ROM_LOAD_512 ( "dr1_prg6.bin", 0x300000, CRC(cc68262b) SHA1(34a6860a6e74e4060c118d06da7ecfb2530b8f97) ) - ROM_LOAD_1024( "dr1_prg7.bin", 0x380000, CRC(d7d2f653) SHA1(a08ca7ac0c36c8f06f516bbfb9f541b77e53e864) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "dr_voi-0.bin", 0x10000, 0x20000, CRC(de4fdc0e) SHA1(b5e952aaf5a81a2b4ff1c7cae141d50360545770) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "dr_chr-8.bin", 0x00000, 0x20000, CRC(0fbaa10e) SHA1(18ea77544678d889aded927a96a11bc04ad42fa6) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "dr_chr-0.bin", 0x00000, 0x20000, CRC(419bacc7) SHA1(a89c48caa4df66eeaf76dca33c1fc34f789ac36f) ) - ROM_LOAD( "dr_chr-1.bin", 0x20000, 0x20000, CRC(55ce77e1) SHA1(159027e45a298b65b0608852d666cc88ef834d2b) ) - ROM_LOAD( "dr_chr-2.bin", 0x40000, 0x20000, CRC(6f913419) SHA1(91906bad859f254b3aa3700bc62d71faccd48ad5) ) - ROM_LOAD( "dr_chr-3.bin", 0x60000, 0x20000, CRC(fe1f1a25) SHA1(c654df76b68f157c95b26294bd98fc392bca5a0a) ) - ROM_LOAD( "dr_chr-4.bin", 0x80000, 0x20000, CRC(c34471bc) SHA1(86a422c4ef4da538bf7964da0b5e920a4be85cfb) ) - ROM_LOAD( "dr_chr-5.bin", 0xa0000, 0x20000, CRC(715c0720) SHA1(65484358ff090fbe8e7925d97b6a39105ef00018) ) - ROM_LOAD( "dr_chr-6.bin", 0xc0000, 0x20000, CRC(5c1b71fa) SHA1(e6e75bce2d2564bf95c5911e208ec4d1705beeef) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "dr_obj-0.bin", 0x00000, 0x20000, CRC(abb95644) SHA1(f96f7aa3d1f6742f2460e3fc6aebc3b5ac4cdad7) ) - ROM_LOAD( "dr_obj-1.bin", 0x20000, 0x20000, CRC(24d6db51) SHA1(6ca66548cca53019dc242e39584b987f45e139f7) ) - ROM_LOAD( "dr_obj-2.bin", 0x40000, 0x20000, CRC(7e3a78c0) SHA1(d0026f70c05ef84dd9fc0588869ad7920949624a) ) -ROM_END - -/* World Stadium '90 */ -ROM_START( ws90 ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "w91_snd0.bin", 0x0c000, 0x10000, CRC(52b84d5a) SHA1(efe7921a565faa42793d581868aa3fa634d81103) ) - ROM_LOAD( "ws1_snd1.bin", 0x1c000, 0x10000, CRC(31bf74c1) SHA1(ddb7a91d6f3ae93be79914a435178a540fe05bfb) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "ws1_prg0.bin", 0x000000, CRC(b0234298) SHA1(b46a70109801d85332fb6658426bd795e03f492a) ) - ROM_LOAD_512( "w91_prg1.bin", 0x080000, CRC(7ad8768f) SHA1(7698b005e2c371266f390b8e0992666c822577d0) ) - ROM_LOAD_512( "w901prg2.bin", 0x100000, CRC(b9e98e2f) SHA1(65750e5c5073d35aa7c68b769afcfc3da7213041) ) - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512( "w901prg7.bin", 0x380000, CRC(37ae1b25) SHA1(e3f9d8abdfa68929495993d0842d64a8fd323d91) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "ws1_voi0.bin", 0x10000, 0x10000, CRC(f6949199) SHA1(ef596b02060f8e58eac37765663dd16377244391) ) - ROM_LOAD( "ws_voi-1.bin", 0x30000, 0x20000, CRC(210e2af9) SHA1(f8a1f8c6b9fbb8a9b3f298674600c1fbb9c5840e) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "ws_chr-8.bin", 0x00000, 0x20000, CRC(d1897b9b) SHA1(29906614b879e5623b49bc925e80006aee3997b9) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ws_chr-0.bin", 0x00000, 0x20000, CRC(3e3e96b4) SHA1(7b5f72e7e2aab9c78f452171ac6ebe8c634a88c4) ) - ROM_LOAD( "ws_chr-1.bin", 0x20000, 0x20000, CRC(897dfbc1) SHA1(3e7425a456bada77591abcf1567ec75a99440334) ) - ROM_LOAD( "ws_chr-2.bin", 0x40000, 0x20000, CRC(e142527c) SHA1(606206b7b9916e3f456595344b70c17d44731fbb) ) - ROM_LOAD( "ws_chr-3.bin", 0x60000, 0x20000, CRC(907d4dc8) SHA1(16c31cbccef4d8a81f2150cec874a01688e46a59) ) - ROM_LOAD( "ws_chr-4.bin", 0x80000, 0x20000, CRC(afb11e17) SHA1(cf4aa124f0d4fe737686ccda72c55c199189ca49) ) - ROM_LOAD( "ws_chr-6.bin", 0xc0000, 0x20000, CRC(a16a17c2) SHA1(52917165d50a03db8ad6783a95731e0b438c2a6c) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "ws_obj-0.bin", 0x00000, 0x20000, CRC(12dc83a6) SHA1(f3d0ebda14af81ff99642ceaa7b9c0e4a4bfbbcb) ) - ROM_LOAD( "ws_obj-1.bin", 0x20000, 0x20000, CRC(68290a46) SHA1(c05f31e1c2332cba5d5b8cafc0e9f616aadee5b7) ) - ROM_LOAD( "ws_obj-2.bin", 0x40000, 0x20000, CRC(cd5ba55d) SHA1(9b5a655909457bcffdaaa95842740a6f0f8f6cec) ) - ROM_LOAD_HS( "w901obj3.bin", 0x60000, 0x10000, CRC(7d0b8961) SHA1(b64e28e2a784bcc5f370436411da6c9fa8900c3d) ) -ROM_END - -/* Pistol Daimyo no Bouken */ -ROM_START( pistoldm ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "pd1_snd0.bin", 0x0c000, 0x20000, CRC(026da54e) SHA1(ffd710c57e59184b93eff864730123e672a0089d) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "pd1_prg0.bin", 0x000000, CRC(9db9b89c) SHA1(30eeaec74454e8401ce16aeb85613448984b6eac) ) - /* 080000-0fffff empty */ - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_1024( "pd1prg7b.bin", 0x380000, CRC(7189b797) SHA1(3652ee6b4a459946f61db8629a44b9675b082119) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "pd_voi-0.bin", 0x10000, 0x20000, CRC(ad1b8128) SHA1(f2112aa129abd7a243c0c329319d9d2ebf7869f7) ) - ROM_LOAD( "pd_voi-1.bin", 0x30000, 0x20000, CRC(2871c494) SHA1(9ac0dc559c22ac5083025c32f28e353b04348155) ) - ROM_LOAD( "pd_voi-2.bin", 0x50000, 0x20000, CRC(e783f0c4) SHA1(6a43f22226d1637d507c8194244058e8d96f8692) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "pd_chr-8.bin", 0x00000, 0x20000, CRC(a5f516db) SHA1(262c3a99cfa3061b58331d8ed254b49a06bfdd9f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "pd_chr-0.bin", 0x00000, 0x20000, CRC(adbbaf5c) SHA1(89d39be53f4d2584f28ffd12391d91af2d54652b) ) - ROM_LOAD( "pd_chr-1.bin", 0x20000, 0x20000, CRC(b4e4f554) SHA1(2102ea8f4d5b8ce84f100dd6a18bdc95287f9c81) ) - ROM_LOAD( "pd_chr-2.bin", 0x40000, 0x20000, CRC(84592540) SHA1(c54cac48a103d35f002f934107f09c1c8e58d0e7) ) - ROM_LOAD( "pd_chr-3.bin", 0x60000, 0x20000, CRC(450bdaa9) SHA1(ca9f749e4a1f44e92b01a860b7903c89ceaa1d1a) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "pd_obj-0.bin", 0x00000, 0x20000, CRC(7269821d) SHA1(0f2e24540a2deae0d36a8a23a67f81fec26141b5) ) - ROM_LOAD( "pd_obj-1.bin", 0x20000, 0x20000, CRC(4f9738e5) SHA1(d15a9bfe0bfabbce4fe131cdbaeb3cf0ea239f22) ) - ROM_LOAD( "pd_obj-2.bin", 0x40000, 0x20000, CRC(33208776) SHA1(c98d78cdc34e27b798768132a77df8c554fa85c9) ) - ROM_LOAD( "pd_obj-3.bin", 0x60000, 0x20000, CRC(0dbd54ef) SHA1(d2e2b1c4e8318bc9bc4febdced9cb1c2248aafb0) ) - ROM_LOAD( "pd_obj-4.bin", 0x80000, 0x20000, CRC(58e838e2) SHA1(eb869cd72bd025ed25cd50f2540a1d09d4745c1b) ) - ROM_LOAD( "pd_obj-5.bin", 0xa0000, 0x20000, CRC(414f9a9d) SHA1(e48c308152cf038117997caacb93b46e2ea2f481) ) - ROM_LOAD( "pd_obj-6.bin", 0xc0000, 0x20000, CRC(91b4e6e0) SHA1(aca45e1d3a8ee11b4feb50a8ada9c4e8e4820224) ) - ROM_LOAD( "pd_obj-7.bin", 0xe0000, 0x20000, CRC(00d4a8f0) SHA1(2312bea93272974b944ea5566b5cd2631761dfef) ) -ROM_END - -/* Souko Ban Deluxe */ -ROM_START( boxyboy ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "sb1_snd0.bin", 0x0c000, 0x10000, CRC(bf46a106) SHA1(cbc95759902c45869346973860cf27792860f781) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "sb1_prg0.bin", 0x000000, CRC(8af8cb73) SHA1(7c89ca0383e601a48d2f83449b2faf7b66a7a94d) ) - ROM_LOAD_1024( "sb1_prg1.bin", 0x080000, CRC(5d1fdd94) SHA1(df1f1f33df3041c7eb46dc9287427785c7264c2a) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512 ( "sbx_prg7.bin", 0x380000, CRC(7787c72e) SHA1(84b064165788481fbfb4836291c9c4000abcf7ce) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "sb1_voi0.bin", 0x10000, 0x10000, CRC(63d9cedf) SHA1(117767c6b25325bf3005756d74196da56008498c) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "sb1_chr8.bin", 0x00000, 0x10000, CRC(5692b297) SHA1(ed20a0f4ce80674d01cd2a30571ffeff9f9066fd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "sb1_chr0.bin", 0x00000, 0x20000, CRC(267f1331) SHA1(46a41ee3553cc7c73a47a339365e27b814067674) ) - ROM_LOAD( "sb1_chr1.bin", 0x20000, 0x20000, CRC(e5ff61ad) SHA1(30aff224dd5c5a85b057aa648677747b1b0e14a8) ) - ROM_LOAD( "sb1_chr2.bin", 0x40000, 0x20000, CRC(099b746b) SHA1(11125ee9cb988b23e9192dc37444fb59b60ab3ce) ) - ROM_LOAD( "sb1_chr3.bin", 0x60000, 0x20000, CRC(1551bb7c) SHA1(eaebc333e0bb8fddd6f48ab157eb492631e5e959) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "sb1_obj0.bin", 0x00000, 0x10000, CRC(ed810da4) SHA1(b3172b50b15d0e2fd40d38d32abf4de22b6f7a85) ) -ROM_END - -ROM_START( soukobdx ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "sb1_snd0.bin", 0x0c000, 0x10000, CRC(bf46a106) SHA1(cbc95759902c45869346973860cf27792860f781) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "sb1_prg0.bin", 0x000000, CRC(8af8cb73) SHA1(7c89ca0383e601a48d2f83449b2faf7b66a7a94d) ) - ROM_LOAD_1024( "sb1_prg1.bin", 0x080000, CRC(5d1fdd94) SHA1(df1f1f33df3041c7eb46dc9287427785c7264c2a) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512 ( "sb1_prg7.bin", 0x380000, CRC(c3bd418a) SHA1(f2c9cc3b5b115ee1b342517897bfa979dac11544) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD_HS( "sb1_voi0.bin", 0x10000, 0x10000, CRC(63d9cedf) SHA1(117767c6b25325bf3005756d74196da56008498c) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "sb1_chr8.bin", 0x00000, 0x10000, CRC(5692b297) SHA1(ed20a0f4ce80674d01cd2a30571ffeff9f9066fd) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "sb1_chr0.bin", 0x00000, 0x20000, CRC(267f1331) SHA1(46a41ee3553cc7c73a47a339365e27b814067674) ) - ROM_LOAD( "sb1_chr1.bin", 0x20000, 0x20000, CRC(e5ff61ad) SHA1(30aff224dd5c5a85b057aa648677747b1b0e14a8) ) - ROM_LOAD( "sb1_chr2.bin", 0x40000, 0x20000, CRC(099b746b) SHA1(11125ee9cb988b23e9192dc37444fb59b60ab3ce) ) - ROM_LOAD( "sb1_chr3.bin", 0x60000, 0x20000, CRC(1551bb7c) SHA1(eaebc333e0bb8fddd6f48ab157eb492631e5e959) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "sb1_obj0.bin", 0x00000, 0x10000, CRC(ed810da4) SHA1(b3172b50b15d0e2fd40d38d32abf4de22b6f7a85) ) -ROM_END - -/* Puzzle Club */ -ROM_START( puzlclub ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "pc1_s0.bin", 0x0c000, 0x10000, CRC(44737c02) SHA1(bcacfed1c3522d6ecddd3ac79ded620e5334df35) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_512( "pc1_p0.bin", 0x000000, CRC(2db477c8) SHA1(4f34750b08a72d1a46fe5caa56ee1209fde4accd) ) - ROM_LOAD_512( "pc1_p1.bin", 0x080000, CRC(dfd9108a) SHA1(07d246d50cdb5bc2c75490d21f87a60fbf559e72) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_512( "pc1_p7.bin", 0x380000, CRC(f0638260) SHA1(9ea33e2352ebeea42aa077ed049bec1037397431) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - /* no voices */ - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "pc1-c8.bin", 0x00000, 0x20000, CRC(4e196bcd) SHA1(2e27538bbbebeda32353c0c02f98d52f0d1994f9) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "pc1-c0.bin", 0x00000, 0x20000, CRC(ad7b134e) SHA1(e9b16cdbc990f3e1ab1eed87db61819683d45864) ) - ROM_LOAD( "pc1-c1.bin", 0x20000, 0x20000, CRC(10cb3207) SHA1(ecd62744eba88a3a0c40d943888ec3497ef8bb04) ) - ROM_LOAD( "pc1-c2.bin", 0x40000, 0x20000, CRC(d98d2c8f) SHA1(c626cae84e712b0c8b66cf6923e77c75c137dd52) ) - ROM_LOAD( "pc1-c3.bin", 0x60000, 0x20000, CRC(91a61d96) SHA1(a645b272e1bd2fa4657e3e4b06c85b93150b9e9e) ) - ROM_LOAD( "pc1-c4.bin", 0x80000, 0x20000, CRC(f1c95296) SHA1(f093c4227b4f6f524a76d0b9409c2c6ce33e560b) ) - ROM_LOAD( "pc1-c5.bin", 0xa0000, 0x20000, CRC(bc443c27) SHA1(af841b6a2b783b0d9b9bbc33083afbb56e8bff69) ) - ROM_LOAD( "pc1-c6.bin", 0xc0000, 0x20000, CRC(ec0a3dc5) SHA1(a5148e99f3198196fd635ff4ac0275393e6f7033) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - /* no sprites */ -ROM_END - -/* Tank Force */ -ROM_START( tankfrce ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "tf1_snd0.bin", 0x0c000, 0x20000, CRC(4d9cf7aa) SHA1(de51b9b36e9a530a7f3c35672ec72c19b607af04) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "tf1_prg0.bin", 0x000000, CRC(2ae4b9eb) SHA1(569d2754398b4276cf78a3dd038b5884778dc82e) ) - ROM_LOAD_1024( "tf1_prg1.bin", 0x080000, CRC(4a8bb251) SHA1(1df46ccf0ad7260398b7965e3825e936ba357062) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_1024( "tf1prg7.bin", 0x380000, CRC(2ec28a87) SHA1(91d2c1efbe156982beab24e437852d1c79dab412) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "tf1_voi0.bin", 0x10000, 0x20000, CRC(f542676a) SHA1(38d54db0807c58152bd120c393bf63b68754e8ff) ) - ROM_LOAD( "tf1_voi1.bin", 0x30000, 0x20000, CRC(615d09cd) SHA1(0aecf7ca6b65ddfcdcf74f8d412169ec800ba3a3) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "tf1_chr8.bin", 0x00000, 0x20000, CRC(7d53b31e) SHA1(7e4b5fc92f7956477392f1e14c6edfc0cada2be0) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "tf1_chr0.bin", 0x00000, 0x20000, CRC(9e91794e) SHA1(e873ed31fafae02a3c3d9127801a13f67cbdb5f4) ) - ROM_LOAD( "tf1_chr1.bin", 0x20000, 0x20000, CRC(76e1bc56) SHA1(f95e4100cad29a8972e4f435b4f9ee3cdc4f4504) ) - ROM_LOAD( "tf1_chr2.bin", 0x40000, 0x20000, CRC(fcb645d9) SHA1(afedb4c6c1b02444ddb1757ac9808df1b94de2d8) ) - ROM_LOAD( "tf1_chr3.bin", 0x60000, 0x20000, CRC(a8dbf080) SHA1(115f3b21e0546000076c3c4d588e5bdcc4cf50d5) ) - ROM_LOAD( "tf1_chr4.bin", 0x80000, 0x20000, CRC(51fedc8c) SHA1(4a0c337fe614ebf66ee0fc3cfb05cad51a048fcf) ) - ROM_LOAD( "tf1_chr5.bin", 0xa0000, 0x20000, CRC(e6c6609a) SHA1(0c05cdd6b1dc4f082b9ac0e4de252c3d72392bb0) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "tf1_obj0.bin", 0x00000, 0x20000, CRC(4bedd51a) SHA1(fedb972986efe5ff3bd6c75fa16f22f8267ee0b7) ) - ROM_LOAD( "tf1_obj1.bin", 0x20000, 0x20000, CRC(df674d6d) SHA1(65935c2d6072228fcb2fbca8808fc921db9e0ddd) ) -ROM_END - -/* Tank Force (Japan) */ -ROM_START( tankfrcj ) - ROM_REGION( 0x2c000, REGION_CPU3, 0 ) /* 176k for the sound cpu */ - ROM_LOAD( "tf1_snd0.bin", 0x0c000, 0x20000, CRC(4d9cf7aa) SHA1(de51b9b36e9a530a7f3c35672ec72c19b607af04) ) - - ROM_REGION( 0x400000, REGION_USER1, 0 ) /* 4M for ROMs */ - ROM_LOAD_1024( "tf1_prg0.bin", 0x000000, CRC(2ae4b9eb) SHA1(569d2754398b4276cf78a3dd038b5884778dc82e) ) - ROM_LOAD_1024( "tf1_prg1.bin", 0x080000, CRC(4a8bb251) SHA1(1df46ccf0ad7260398b7965e3825e936ba357062) ) - /* 100000-17ffff empty */ - /* 180000-1fffff empty */ - /* 200000-27ffff empty */ - /* 280000-2fffff empty */ - /* 300000-37ffff empty */ - ROM_LOAD_1024( "tf1_prg7.bin", 0x380000, CRC(9dfa0dd5) SHA1(eeb6904225e7dedb0d134e5634aa5321237f68ac) ) - - ROM_REGION( 0xd0000, REGION_CPU4, 0 ) /* the MCU & voice */ - ROM_LOAD( "cus64-64a1.mcu", 0x0f000, 0x01000, CRC(ffb5c0bd) SHA1(7a38c0cc2553c627f4ec507fb6e807cf7d537c02) ) /* internal 63701 MCU code */ - ROM_LOAD( "tf1_voi0.bin", 0x10000, 0x20000, CRC(f542676a) SHA1(38d54db0807c58152bd120c393bf63b68754e8ff) ) - ROM_LOAD( "tf1_voi1.bin", 0x30000, 0x20000, CRC(615d09cd) SHA1(0aecf7ca6b65ddfcdcf74f8d412169ec800ba3a3) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) /* character mask */ - ROM_LOAD( "tf1_chr8.bin", 0x00000, 0x20000, CRC(7d53b31e) SHA1(7e4b5fc92f7956477392f1e14c6edfc0cada2be0) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "tf1_chr0.bin", 0x00000, 0x20000, CRC(9e91794e) SHA1(e873ed31fafae02a3c3d9127801a13f67cbdb5f4) ) - ROM_LOAD( "tf1_chr1.bin", 0x20000, 0x20000, CRC(76e1bc56) SHA1(f95e4100cad29a8972e4f435b4f9ee3cdc4f4504) ) - ROM_LOAD( "tf1_chr2.bin", 0x40000, 0x20000, CRC(fcb645d9) SHA1(afedb4c6c1b02444ddb1757ac9808df1b94de2d8) ) - ROM_LOAD( "tf1_chr3.bin", 0x60000, 0x20000, CRC(a8dbf080) SHA1(115f3b21e0546000076c3c4d588e5bdcc4cf50d5) ) - ROM_LOAD( "tf1_chr4.bin", 0x80000, 0x20000, CRC(51fedc8c) SHA1(4a0c337fe614ebf66ee0fc3cfb05cad51a048fcf) ) - ROM_LOAD( "tf1_chr5.bin", 0xa0000, 0x20000, CRC(e6c6609a) SHA1(0c05cdd6b1dc4f082b9ac0e4de252c3d72392bb0) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "tf1_obj0.bin", 0x00000, 0x20000, CRC(4bedd51a) SHA1(fedb972986efe5ff3bd6c75fa16f22f8267ee0b7) ) - ROM_LOAD( "tf1_obj1.bin", 0x20000, 0x20000, CRC(df674d6d) SHA1(65935c2d6072228fcb2fbca8808fc921db9e0ddd) ) -ROM_END - - - -GAME( 1987, shadowld, 0, ns1, shadowld, shadowld, ROT180, "Namco", "Shadowland", 0 ) -GAME( 1987, youkaidk, shadowld, ns1, shadowld, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan new version)", 0 ) -GAME( 1987, yokaidko, shadowld, ns1, shadowld, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan old version)", 0 ) -GAME( 1987, dspirit, 0, ns1, dspirit, dspirit, ROT90, "Namco", "Dragon Spirit (new version)", 0 ) -GAME( 1987, dspirito, dspirit, ns1, dspirit, dspirit, ROT90, "Namco", "Dragon Spirit (old version)", 0 ) -GAME( 1987, blazer, 0, ns1, ns1, blazer, ROT90, "Namco", "Blazer (Japan)", 0 ) -GAME( 1987, quester, 0, ns1, quester, quester, ROT90, "Namco", "Quester (Japan)", 0 ) -GAME( 1987, pacmania, 0, ns1, pacmania, pacmania, ROT270, "Namco", "Pac-Mania", 0 ) -GAME( 1987, pacmanij, pacmania, ns1, pacmania, pacmania, ROT90, "Namco", "Pac-Mania (Japan)", 0 ) -GAME( 1987, galaga88, 0, ns1, galaga88, galaga88, ROT270, "Namco", "Galaga '88", 0 ) -GAME( 1987, galag88j, galaga88, ns1, galaga88, galaga88, ROT90, "Namco", "Galaga '88 (Japan)", 0 ) -GAME( 1988, ws, 0, ns1, ns1, ws, ROT180, "Namco", "World Stadium (Japan)", 0 ) -GAME( 1988, berabohm, 0, ns1, berabohm, berabohm, ROT180, "Namco", "Beraboh Man (Japan version C)", 0 ) -GAME( 1988, beraboho, berabohm, ns1, berabohm, berabohm, ROT180, "Namco", "Beraboh Man (Japan version B)", 0 ) -GAME( 1988, mmaze, 0, ns1, mmaze, alice, ROT180, "Namco", "Marchen Maze (Japan)", 0 ) -GAME( 1988, bakutotu, 0, ns1, bakutotu, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", 0 ) -GAME( 1988, wldcourt, 0, ns1, wldcourt, wldcourt, ROT180, "Namco", "World Court (Japan)", 0 ) -GAME( 1988, splatter, 0, ns1, splatter, splatter, ROT180, "Namco", "Splatter House (World)", 0 ) -GAME( 1988, splattej, splatter, ns1, splatter, splatter, ROT180, "Namco", "Splatter House (Japan)", 0 ) -GAME( 1988, faceoff, 0, ns1, faceoff, faceoff, ROT180, "Namco", "Face Off (Japan)", 0 ) -GAME( 1989, rompers, 0, ns1, ns1, rompers, ROT90, "Namco", "Rompers (Japan)", 0 ) -GAME( 1989, romperso, rompers, ns1, ns1, rompers, ROT90, "Namco", "Rompers (Japan old version)", 0 ) -GAME( 1989, blastoff, 0, ns1, ns1, blastoff, ROT90, "Namco", "Blast Off (Japan)", 0 ) -GAME( 1989, ws89, ws, ns1, ws89, ws89, ROT180, "Namco", "World Stadium '89 (Japan)", 0 ) -GAME( 1989, dangseed, 0, ns1, dangseed, dangseed, ROT90, "Namco", "Dangerous Seed (Japan)", 0 ) -GAME( 1990, ws90, ws, ns1, ws90, ws90, ROT180, "Namco", "World Stadium '90 (Japan)", 0 ) -GAME( 1990, pistoldm, 0, ns1, ns1, pistoldm, ROT0, "Namco", "Pistol Daimyo no Bouken (Japan)", 0 ) -GAME( 1990, boxyboy, 0, ns1, boxyboy, soukobdx, ROT0, "Namco", "Boxy Boy (US)", 0 ) -GAME( 1990, soukobdx, boxyboy, ns1, boxyboy, soukobdx, ROT0, "Namco", "Souko Ban Deluxe (Japan)", 0 ) -GAME( 1990, puzlclub, 0, ns1, puzlclub, puzlclub, ROT90, "Namco", "Puzzle Club (Japan prototype)", 0 ) -GAME( 1991, tankfrce, 0, ns1, ns1, tankfrce, ROT0, "Namco", "Tank Force (US)", 0 ) -GAME( 1991, tankfrcj, tankfrce, ns1, ns1, tankfrce, ROT0, "Namco", "Tank Force (Japan)", 0 ) - diff --git a/src/drivers/nemesis.c b/src/drivers/nemesis.c deleted file mode 100644 index d2fe5c239..000000000 --- a/src/drivers/nemesis.c +++ /dev/null @@ -1,3003 +0,0 @@ -/*************************************************************************** - - Nemesis (Hacked?) GX400 - Nemesis (World?) GX400 - Twin Bee GX412 - Gradius GX456 - Galactic Warriors GX578 - Konami GT GX561 - RF2 GX561 - Salamander (Version D) GX587 - Salamander (Version J) GX587 - Lifeforce (US) GX587 - Lifeforce (Japan) GX587 - Black Panther GX604 - City Bomber (World) GX787 - City Bomber (Japan) GX787 - Hyper Crash (Version D) GX790 - Hyper Crash (Version C) GX790 - Kitten Kaboodle GX712 - Nyan Nyan Panic (Japan) GX712 - - -driver by Bryan McPhail -modified by Eisuke Watanabe - spthx to Unagi,rassy,hina,nori,Tobikage,Tommy,Crimson,yasuken,cupmen,zoo - -Notes: -- blkpnthr: -There are sprite priority problems in upper part of the screen , -they can only be noticed in 2nd and 4th level . -Enemy sprites are behind blue walls 2 level) or metal construction (4 ) -but when they get close to top of the screen they go in front of them. --- -To display score, priority of upper part is always lower. -So this is the correct behavior of real hardware, not an emulation bug. - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/2151intf.h" -#include "sound/3812intf.h" -#include "sound/vlm5030.h" -#include "sound/k005289.h" -#include "sound/k007232.h" -#include "sound/k051649.h" - -static UINT16 *ram; -static UINT16 *ram2; - -extern UINT16 *nemesis_videoram1b; -extern UINT16 *nemesis_videoram1f; -extern UINT16 *nemesis_videoram2b; -extern UINT16 *nemesis_videoram2f; -extern UINT16 *nemesis_characterram; -extern UINT16 *nemesis_xscroll1,*nemesis_xscroll2, *nemesis_yscroll; -extern size_t nemesis_characterram_size; - -WRITE16_HANDLER( nemesis_videoram1b_word_w ); -WRITE16_HANDLER( nemesis_videoram1f_word_w ); -WRITE16_HANDLER( nemesis_videoram2b_word_w ); -WRITE16_HANDLER( nemesis_videoram2f_word_w ); -WRITE16_HANDLER( nemesis_characterram_word_w ); -VIDEO_UPDATE( nemesis ); -VIDEO_START( nemesis ); -VIDEO_UPDATE( salamand ); -MACHINE_RESET( nemesis ); - -WRITE16_HANDLER( nemesis_gfx_flipx_w ); -WRITE16_HANDLER( nemesis_gfx_flipy_w ); -WRITE16_HANDLER( salamander_palette_word_w ); - -extern UINT16 *nemesis_yscroll1, *nemesis_yscroll2; - -WRITE16_HANDLER( nemesis_palette_word_w ); - -static int irq_on = 0; -static int irq1_on = 0; -static int irq2_on = 0; -static int irq4_on = 0; - - -MACHINE_RESET( nemesis ) -{ - irq_on = 0; - irq1_on = 0; - irq2_on = 0; - irq4_on = 0; -} - - - -INTERRUPT_GEN( nemesis_interrupt ) -{ - if (irq_on) - cpunum_set_input_line(0, 1, HOLD_LINE); -} - - -WRITE16_HANDLER( salamand_soundlatch_word_w ) -{ - if(ACCESSING_LSB) { - soundlatch_w(offset,data & 0xff); - cpunum_set_input_line(1,0,HOLD_LINE); - } -} - -static int gx400_irq1_cnt; - -INTERRUPT_GEN( konamigt_interrupt ) -{ - if (cpu_getiloops() == 0) - { - if ( (irq_on) && (gx400_irq1_cnt++ & 1) ) cpunum_set_input_line(0, 1, HOLD_LINE); - } - else - { - if (irq2_on) cpunum_set_input_line(0, 2, HOLD_LINE); - } -} - -INTERRUPT_GEN( gx400_interrupt ) -{ - switch (cpu_getiloops()) - { - case 0: - if (irq2_on) cpunum_set_input_line(0, 2, HOLD_LINE); - break; - - case 1: - if ( (irq1_on) && (gx400_irq1_cnt++ & 1) ) cpunum_set_input_line(0, 1, HOLD_LINE); - break; - - case 2: - if (irq4_on) cpunum_set_input_line(0, 4, HOLD_LINE); - break; - } -} - -WRITE16_HANDLER( gx400_irq1_enable_word_w ) -{ - if (ACCESSING_LSB) - irq1_on = data & 0x0001; -/* else -logerror("irq1en = %08x\n",data);*/ -} - -WRITE16_HANDLER( gx400_irq2_enable_word_w ) -{ - if (ACCESSING_LSB) - irq2_on = data & 0x0001; -/* else -logerror("irq2en = %08x\n",data);*/ -} - -WRITE16_HANDLER( gx400_irq4_enable_word_w ) -{ - if (ACCESSING_MSB) - irq4_on = data & 0x0100; -/* else -logerror("irq4en = %08x\n",data);*/ -} - -static UINT8 *gx400_shared_ram; - -READ16_HANDLER( gx400_sharedram_word_r ) -{ - return gx400_shared_ram[offset]; -} - -WRITE16_HANDLER( gx400_sharedram_word_w ) -{ - if(ACCESSING_LSB) - gx400_shared_ram[offset] = data; -} - - - -INTERRUPT_GEN( salamand_interrupt ) -{ - if (irq_on) - cpunum_set_input_line(0, 1, HOLD_LINE); -} - -INTERRUPT_GEN( blkpnthr_interrupt ) -{ - if (irq_on) - cpunum_set_input_line(0, 2, HOLD_LINE); -} - -WRITE16_HANDLER( nemesis_irq_enable_word_w ) -{ - if(ACCESSING_LSB) - irq_on = data & 0xff; -} - -WRITE16_HANDLER( konamigt_irq_enable_word_w ) -{ - if(ACCESSING_LSB) - irq_on = data & 0xff; -} - -WRITE16_HANDLER( konamigt_irq2_enable_word_w ) -{ - if(ACCESSING_LSB) - irq2_on = data & 0xff; -} - -READ16_HANDLER( konamigt_input_word_r ) -{ -/* - bit 0-7: steering - bit 8-9: brake - bit 10-11: unknown - bit 12-15: accel -*/ - - int data=readinputport(7); - int data2=readinputport(6); - - int ret=0x0000; - -// if(data&0x10) ret|=0x0800; // turbo/gear? -// if(data&0x80) ret|=0x0400; // turbo? - if(data&0x20) ret|=0x0300; // brake (0-3) - - if(data&0x40) ret|=0xf000; // accel (0-f) - - ret|=data2&0x7f; // steering wheel, not exactly sure if DIAL works ok. - - return ret; -} - -/* Copied from WEC Le Mans 24 driver, explicity needed for Hyper Crash */ -static UINT16 hcrash_selected_ip; - -static WRITE16_HANDLER( selected_ip_w ) -{ - if (ACCESSING_LSB) hcrash_selected_ip = data & 0xff; // latch the value -} - -static READ16_HANDLER( selected_ip_r ) -{ - switch (hcrash_selected_ip & 0xf) - { // From WEC Le Mans Schems: - case 0xc: return input_port_8_r(offset); // Accel - Schems: Accelevr - case 0: return input_port_8_r(offset); - case 0xd: return input_port_9_r(offset); // Wheel - Schems: Handlevr - case 1: return input_port_9_r(offset); - - default: return ~0; - } -} - -WRITE16_HANDLER( nemesis_soundlatch_word_w ) -{ - if(ACCESSING_LSB) { - soundlatch_w(offset,data & 0xff); - } -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x04ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x050000, 0x0503ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050400, 0x0507ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050800, 0x050bff) AM_READ(MRA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_READ(MRA16_RAM) - - AM_RANGE(0x052000, 0x052fff) AM_READ(MRA16_RAM) - AM_RANGE(0x053000, 0x053fff) AM_READ(MRA16_RAM) - AM_RANGE(0x054000, 0x054fff) AM_READ(MRA16_RAM) - AM_RANGE(0x055000, 0x055fff) AM_READ(MRA16_RAM) - AM_RANGE(0x056000, 0x056fff) AM_READ(MRA16_RAM) - AM_RANGE(0x05a000, 0x05afff) AM_READ(MRA16_RAM) - - AM_RANGE(0x05c400, 0x05c401) AM_READ(input_port_4_word_r) /* DSW0 */ - AM_RANGE(0x05c402, 0x05c403) AM_READ(input_port_5_word_r) /* DSW1 */ - - AM_RANGE(0x05cc00, 0x05cc01) AM_READ(input_port_0_word_r) /* IN0 */ - AM_RANGE(0x05cc02, 0x05cc03) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x05cc04, 0x05cc05) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x05cc06, 0x05cc07) AM_READ(input_port_3_word_r) /* TEST */ - - AM_RANGE(0x060000, 0x067fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) /* ROM */ - - AM_RANGE(0x040000, 0x04ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - - AM_RANGE(0x050000, 0x0503ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x050400, 0x0507ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x050800, 0x050bff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll) - AM_RANGE(0x051000, 0x051fff) AM_WRITE(MWA16_NOP) /* used, but written to with 0's */ - - AM_RANGE(0x052000, 0x052fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x053000, 0x053fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x054000, 0x054fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x055000, 0x055fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x056000, 0x056fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x05a000, 0x05afff) AM_WRITE(nemesis_palette_word_w) AM_BASE(&paletteram16) - - AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w) - AM_RANGE(0x05c800, 0x05c801) AM_WRITE(watchdog_reset16_w) /* probably */ - - AM_RANGE(0x05e000, 0x05e001) AM_WRITE(&nemesis_irq_enable_word_w) /* Nemesis */ - AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&nemesis_irq_enable_word_w) /* Konami GT */ - AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_w) - AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_w) - AM_RANGE(0x060000, 0x067fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* WORK RAM */ -ADDRESS_MAP_END - -WRITE8_HANDLER( salamand_speech_start_w ) -{ - VLM5030_ST ( 1 ); - VLM5030_ST ( 0 ); -} - -WRITE8_HANDLER( gx400_speech_start_w ) -{ - /* the voice data is not in a rom but in sound RAM at $8000 */ - VLM5030_set_rom (gx400_shared_ram + 0x4000); - VLM5030_ST (1); - VLM5030_ST (0); -} - -static READ8_HANDLER( nemesis_portA_r ) -{ -/* - bit 0-3: timer - bit 4 6: unused (always high) - bit 5: vlm5030 busy - bit 7: unused by this software version. Bubble Memory version uses this bit. -*/ - - int res = (activecpu_gettotalcycles() / 1024) & 0x2f; // this should be 0x0f, but it doesn't work - - res |= 0xd0; - - if (sndti_to_sndnum(SOUND_VLM5030, 0) >= 0 && VLM5030_BSY()) - res |= 0x20; - - return res; -} - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x47ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe001, 0xe001) AM_READ(soundlatch_r) - AM_RANGE(0xe086, 0xe086) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0xe205, 0xe205) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x47ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xafff) AM_WRITE(k005289_pitch_A_w) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(k005289_pitch_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(k005289_keylatch_A_w) - AM_RANGE(0xe004, 0xe004) AM_WRITE(k005289_keylatch_B_w) - AM_RANGE(0xe005, 0xe005) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xe006, 0xe006) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xe106, 0xe106) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xe405, 0xe405) AM_WRITE(AY8910_write_port_1_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( konamigt_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x04ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x050000, 0x0503ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050400, 0x0507ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050800, 0x050bff) AM_READ(MRA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_READ(MRA16_RAM) - - AM_RANGE(0x052000, 0x052fff) AM_READ(MRA16_RAM) - AM_RANGE(0x053000, 0x053fff) AM_READ(MRA16_RAM) - AM_RANGE(0x054000, 0x054fff) AM_READ(MRA16_RAM) - AM_RANGE(0x055000, 0x055fff) AM_READ(MRA16_RAM) - AM_RANGE(0x056000, 0x056fff) AM_READ(MRA16_RAM) - AM_RANGE(0x05a000, 0x05afff) AM_READ(MRA16_RAM) - - AM_RANGE(0x05c400, 0x05c401) AM_READ(input_port_4_word_r) /* DSW0 */ - AM_RANGE(0x05c402, 0x05c403) AM_READ(input_port_5_word_r) /* DSW1 */ - - AM_RANGE(0x05cc00, 0x05cc01) AM_READ(input_port_0_word_r) /* IN0 */ - AM_RANGE(0x05cc02, 0x05cc03) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x05cc04, 0x05cc05) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x05cc06, 0x05cc07) AM_READ(input_port_3_word_r) /* TEST */ - - AM_RANGE(0x060000, 0x067fff) AM_READ(MRA16_RAM) - AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( konamigt_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) /* ROM */ - - AM_RANGE(0x040000, 0x04ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - - AM_RANGE(0x050000, 0x0503ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x050400, 0x0507ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x050800, 0x050bff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll) - AM_RANGE(0x051000, 0x051fff) AM_WRITE(MWA16_NOP) /* used, but written to with 0's */ - - AM_RANGE(0x052000, 0x052fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x053000, 0x053fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x054000, 0x054fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x055000, 0x055fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x056000, 0x056fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x05a000, 0x05afff) AM_WRITE(nemesis_palette_word_w) AM_BASE(&paletteram16) - - AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w) - AM_RANGE(0x05c800, 0x05c801) AM_WRITE(watchdog_reset16_w) /* probably */ - - AM_RANGE(0x05e000, 0x05e001) AM_WRITE(&konamigt_irq2_enable_word_w) - AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&konamigt_irq_enable_word_w) - AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_w) - AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_w) - AM_RANGE(0x060000, 0x067fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* WORK RAM */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( gx400_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x010000, 0x01ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x020000, 0x0287ff) AM_READ(gx400_sharedram_word_r) - AM_RANGE(0x030000, 0x03ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x050000, 0x0503ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050400, 0x0507ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050800, 0x050bff) AM_READ(MRA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_READ(MRA16_RAM) - AM_RANGE(0x052000, 0x052fff) AM_READ(MRA16_RAM) - AM_RANGE(0x053000, 0x053fff) AM_READ(MRA16_RAM) - AM_RANGE(0x054000, 0x054fff) AM_READ(MRA16_RAM) - AM_RANGE(0x055000, 0x055fff) AM_READ(MRA16_RAM) - AM_RANGE(0x056000, 0x056fff) AM_READ(MRA16_RAM) - AM_RANGE(0x057000, 0x057fff) AM_READ(MRA16_RAM) - AM_RANGE(0x05a000, 0x05afff) AM_READ(MRA16_RAM) - AM_RANGE(0x05c402, 0x05c403) AM_READ(input_port_4_word_r) /* DSW0 */ - AM_RANGE(0x05c404, 0x05c405) AM_READ(input_port_5_word_r) /* DSW1 */ - AM_RANGE(0x05c406, 0x05c407) AM_READ(input_port_3_word_r) /* TEST */ - AM_RANGE(0x05cc00, 0x05cc01) AM_READ(input_port_0_word_r) /* IN0 */ - AM_RANGE(0x05cc02, 0x05cc03) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x05cc04, 0x05cc05) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x060000, 0x07ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x080000, 0x0bffff) AM_READ(MRA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx400_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x010000, 0x01ffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) - AM_RANGE(0x020000, 0x0287ff) AM_WRITE(gx400_sharedram_word_w) - AM_RANGE(0x030000, 0x03ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x050000, 0x0503ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x050400, 0x0507ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x050800, 0x050bff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll) - AM_RANGE(0x051000, 0x051fff) AM_WRITE(MWA16_NOP) /* used, but written to with 0's */ - AM_RANGE(0x052000, 0x052fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x053000, 0x053fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x054000, 0x054fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x055000, 0x055fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x056000, 0x056fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x057000, 0x057fff) AM_WRITE(MWA16_RAM) /* needed for twinbee */ - AM_RANGE(0x05a000, 0x05afff) AM_WRITE(nemesis_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w) - AM_RANGE(0x05c800, 0x05c801) AM_WRITE(watchdog_reset16_w) /* probably */ - AM_RANGE(0x05e000, 0x05e001) AM_WRITE(&gx400_irq2_enable_word_w) /* ?? */ - AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&gx400_irq1_enable_word_w) /* ?? */ - AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_w) - AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_w) - AM_RANGE(0x05e008, 0x05e009) AM_WRITE(MWA16_NOP) /* IRQ acknowledge??? */ - AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(&gx400_irq4_enable_word_w) /* ?? */ - AM_RANGE(0x060000, 0x07ffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram2) - AM_RANGE(0x080000, 0x0bffff) AM_WRITE(MWA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rf2_gx400_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x010000, 0x01ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x020000, 0x0287ff) AM_READ(gx400_sharedram_word_r) - AM_RANGE(0x030000, 0x03ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x050000, 0x0503ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050400, 0x0507ff) AM_READ(MRA16_RAM) - AM_RANGE(0x050800, 0x050bff) AM_READ(MRA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_READ(MRA16_RAM) - AM_RANGE(0x052000, 0x052fff) AM_READ(MRA16_RAM) - AM_RANGE(0x053000, 0x053fff) AM_READ(MRA16_RAM) - AM_RANGE(0x054000, 0x054fff) AM_READ(MRA16_RAM) - AM_RANGE(0x055000, 0x055fff) AM_READ(MRA16_RAM) - AM_RANGE(0x056000, 0x056fff) AM_READ(MRA16_RAM) - AM_RANGE(0x05a000, 0x05afff) AM_READ(MRA16_RAM) - AM_RANGE(0x05c402, 0x05c403) AM_READ(input_port_4_word_r) /* DSW0 */ - AM_RANGE(0x05c404, 0x05c405) AM_READ(input_port_5_word_r) /* DSW1 */ - AM_RANGE(0x05c406, 0x05c407) AM_READ(input_port_3_word_r) /* TEST */ - AM_RANGE(0x05cc00, 0x05cc01) AM_READ(input_port_0_word_r) /* IN0 */ - AM_RANGE(0x05cc02, 0x05cc03) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x05cc04, 0x05cc05) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x060000, 0x067fff) AM_READ(MRA16_RAM) - AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r) - AM_RANGE(0x080000, 0x0bffff) AM_READ(MRA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rf2_gx400_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x010000, 0x01ffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram2) - AM_RANGE(0x020000, 0x0287ff) AM_WRITE(gx400_sharedram_word_w) - AM_RANGE(0x030000, 0x03ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x050000, 0x0503ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x050400, 0x0507ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x050800, 0x050bff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x050c00, 0x050fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll) - AM_RANGE(0x051000, 0x051fff) AM_WRITE(MWA16_NOP) /* used, but written to with 0's */ - AM_RANGE(0x052000, 0x052fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x053000, 0x053fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x054000, 0x054fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x055000, 0x055fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x056000, 0x056fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x05a000, 0x05afff) AM_WRITE(nemesis_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w) - AM_RANGE(0x05c800, 0x05c801) AM_WRITE(watchdog_reset16_w) /* probably */ - AM_RANGE(0x05e000, 0x05e001) AM_WRITE(&gx400_irq2_enable_word_w) /* ?? */ - AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&gx400_irq1_enable_word_w) /* ?? */ - AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_w) - AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_w) - AM_RANGE(0x05e008, 0x05e009) AM_WRITE(MWA16_NOP) /* IRQ acknowledge??? */ - AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(&gx400_irq4_enable_word_w) /* ?? */ - AM_RANGE(0x060000, 0x067fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* WORK RAM */ - AM_RANGE(0x080000, 0x0bffff) AM_WRITE(MWA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx400_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe001, 0xe001) AM_READ(soundlatch_r) - AM_RANGE(0xe086, 0xe086) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0xe205, 0xe205) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gx400_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&gx400_shared_ram) - AM_RANGE(0xa000, 0xafff) AM_WRITE(k005289_pitch_A_w) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(k005289_pitch_B_w) - AM_RANGE(0xe000, 0xe000) AM_WRITE(VLM5030_data_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(k005289_keylatch_A_w) - AM_RANGE(0xe004, 0xe004) AM_WRITE(k005289_keylatch_B_w) - AM_RANGE(0xe005, 0xe005) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xe006, 0xe006) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xe030, 0xe030) AM_WRITE(gx400_speech_start_w) - AM_RANGE(0xe106, 0xe106) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xe405, 0xe405) AM_WRITE(AY8910_write_port_1_w) -ADDRESS_MAP_END - -/******************************************************************************/ - -static ADDRESS_MAP_START( salamand_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x080000, 0x087fff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x091fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(input_port_3_word_r) /* DSW0 */ - AM_RANGE(0x0c2000, 0x0c2001) AM_READ(input_port_0_word_r) /* Coins, start buttons, test mode */ - AM_RANGE(0x0c2002, 0x0c2003) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x0c2004, 0x0c2005) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x0c2006, 0x0c2007) AM_READ(input_port_4_word_r) /* DSW1 */ - AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) - AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM) - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x120000, 0x12ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x180000, 0x180fff) AM_READ(MRA16_RAM) - AM_RANGE(0x190000, 0x1903ff) AM_READ(MRA16_RAM) - AM_RANGE(0x190400, 0x1907ff) AM_READ(MRA16_RAM) - AM_RANGE(0x190800, 0x190eff) AM_READ(MRA16_RAM) - AM_RANGE(0x190f00, 0x190f7f) AM_READ(MRA16_RAM) - AM_RANGE(0x190f80, 0x190fff) AM_READ(MRA16_RAM) - AM_RANGE(0x191000, 0x191fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( salamand_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x087fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) - AM_RANGE(0x090000, 0x091fff) AM_WRITE(salamander_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0A0000, 0x0A0001) AM_WRITE(nemesis_irq_enable_word_w) /* irq enable */ - AM_RANGE(0x0C0000, 0x0C0001) AM_WRITE(salamand_soundlatch_word_w) - AM_RANGE(0x0C0004, 0x0C0005) AM_WRITE(MWA16_NOP) /* Watchdog at $c0005 */ - AM_RANGE(0x100000, 0x100fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x101000, 0x101fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x102000, 0x102fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x103000, 0x103fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x120000, 0x12ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x180000, 0x180fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* more sprite ram ??? */ - AM_RANGE(0x190000, 0x1903ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x190400, 0x1907ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x190800, 0x190eff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x190f00, 0x190f7f) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll1) - AM_RANGE(0x190f80, 0x190fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll2) - AM_RANGE(0x191000, 0x191fff) AM_WRITE(MWA16_RAM) /* not used */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blkpnthr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x080000, 0x081fff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x097fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(input_port_3_word_r) /* DSW0 */ - AM_RANGE(0x0c2000, 0x0c2001) AM_READ(input_port_0_word_r) /* Coins, start buttons, test mode */ - AM_RANGE(0x0c2002, 0x0c2003) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x0c2004, 0x0c2005) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x0c2006, 0x0c2007) AM_READ(input_port_4_word_r) /* DSW1 */ - AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) - AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM) - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x120000, 0x12ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x180000, 0x1803ff) AM_READ(MRA16_RAM) - AM_RANGE(0x180400, 0x1807ff) AM_READ(MRA16_RAM) - AM_RANGE(0x180800, 0x180eff) AM_READ(MRA16_RAM) - AM_RANGE(0x180f00, 0x180f7f) AM_READ(MRA16_RAM) - AM_RANGE(0x180f80, 0x180fff) AM_READ(MRA16_RAM) - AM_RANGE(0x181000, 0x181fff) AM_READ(MRA16_RAM) - AM_RANGE(0x190000, 0x190fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blkpnthr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x081fff) AM_WRITE(salamander_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x090000, 0x097fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) - AM_RANGE(0x0A0000, 0x0A0001) AM_WRITE(nemesis_irq_enable_word_w) /* irq enable */ - AM_RANGE(0x0C0000, 0x0C0001) AM_WRITE(salamand_soundlatch_word_w) - AM_RANGE(0x0C0004, 0x0C0005) AM_WRITE(MWA16_NOP) /* Watchdog at $c0005 */ - AM_RANGE(0x100000, 0x100fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x101000, 0x101fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x102000, 0x102fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x103000, 0x103fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x120000, 0x12ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x180000, 0x1803ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x180400, 0x1807ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x180800, 0x180eff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x180f00, 0x180f7f) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll2) - AM_RANGE(0x180f80, 0x180fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll1) - AM_RANGE(0x181000, 0x181fff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x190000, 0x190fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* more sprite ram ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( citybomb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x080000, 0x087fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0e0000, 0x0e1fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f0000, 0x0f0001) AM_READ(input_port_4_word_r) /* DSW1 */ - AM_RANGE(0x0f0002, 0x0f0003) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x0f0004, 0x0f0005) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x0f0006, 0x0f0007) AM_READ(input_port_0_word_r) /* Coins, start buttons, test mode */ - AM_RANGE(0x0f0008, 0x0f0009) AM_READ(input_port_3_word_r) /* DSW0 */ - AM_RANGE(0x0f0020, 0x0f0021) AM_READ(MRA16_NOP) /* Analog device */ - AM_RANGE(0x100000, 0x1bffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x210000, 0x210fff) AM_READ(MRA16_RAM) - AM_RANGE(0x211000, 0x211fff) AM_READ(MRA16_RAM) - AM_RANGE(0x212000, 0x212fff) AM_READ(MRA16_RAM) - AM_RANGE(0x213000, 0x213fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x3003ff) AM_READ(MRA16_RAM) - AM_RANGE(0x300400, 0x3007ff) AM_READ(MRA16_RAM) - AM_RANGE(0x300800, 0x300eff) AM_READ(MRA16_RAM) - AM_RANGE(0x300f00, 0x300f7f) AM_READ(MRA16_RAM) - AM_RANGE(0x300f80, 0x300fff) AM_READ(MRA16_RAM) - AM_RANGE(0x301000, 0x301fff) AM_READ(MRA16_RAM) - AM_RANGE(0x310000, 0x310fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( citybomb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x087fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) - AM_RANGE(0x0e0000, 0x0e1fff) AM_WRITE(salamander_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0f0010, 0x0f0011) AM_WRITE(salamand_soundlatch_word_w) - AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(MWA16_NOP) /* Watchdog */ - AM_RANGE(0x0f0020, 0x0f0021) AM_WRITE(MWA16_NOP) /* Analog device */ - AM_RANGE(0x0f8000, 0x0f8001) AM_WRITE(nemesis_irq_enable_word_w) /* irq enable */ - AM_RANGE(0x100000, 0x1bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x210000, 0x210fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x211000, 0x211fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x212000, 0x212fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x213000, 0x213fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x300000, 0x3003ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x300400, 0x3007ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x300800, 0x300eff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x300f00, 0x300f7f) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll2) - AM_RANGE(0x300f80, 0x300fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll1) - AM_RANGE(0x301000, 0x301fff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x310000, 0x310fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* more sprite ram ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nyanpani_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x040000, 0x047fff) AM_READ(MRA16_RAM) - AM_RANGE(0x060000, 0x061fff) AM_READ(MRA16_RAM) - AM_RANGE(0x100000, 0x13ffff) AM_READ(MRA16_ROM) /* ROM BIOS */ - AM_RANGE(0x070000, 0x070001) AM_READ(input_port_4_word_r) /* DSW1 */ - AM_RANGE(0x070002, 0x070003) AM_READ(input_port_2_word_r) /* IN2 */ - AM_RANGE(0x070004, 0x070005) AM_READ(input_port_1_word_r) /* IN1 */ - AM_RANGE(0x070006, 0x070007) AM_READ(input_port_0_word_r) /* Coins, start buttons, test mode */ - AM_RANGE(0x070008, 0x070009) AM_READ(input_port_3_word_r) /* DSW0 */ - AM_RANGE(0x200000, 0x200fff) AM_READ(MRA16_RAM) - AM_RANGE(0x201000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x202000, 0x202fff) AM_READ(MRA16_RAM) - AM_RANGE(0x203000, 0x203fff) AM_READ(MRA16_RAM) - AM_RANGE(0x210000, 0x21ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x300fff) AM_READ(MRA16_RAM) - AM_RANGE(0x310000, 0x3103ff) AM_READ(MRA16_RAM) - AM_RANGE(0x310400, 0x3107ff) AM_READ(MRA16_RAM) - AM_RANGE(0x310800, 0x310eff) AM_READ(MRA16_RAM) - AM_RANGE(0x310f00, 0x310f7f) AM_READ(MRA16_RAM) - AM_RANGE(0x310f80, 0x310fff) AM_READ(MRA16_RAM) - AM_RANGE(0x311000, 0x311fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nyanpani_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x040000, 0x047fff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) - AM_RANGE(0x060000, 0x061fff) AM_WRITE(salamander_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x100000, 0x13ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x070010, 0x070011) AM_WRITE(salamand_soundlatch_word_w) - AM_RANGE(0x070018, 0x070019) AM_WRITE(MWA16_NOP) /* Watchdog */ - AM_RANGE(0x078000, 0x078001) AM_WRITE(nemesis_irq_enable_word_w) /* irq enable */ - AM_RANGE(0x200000, 0x200fff) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x201000, 0x201fff) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x202000, 0x202fff) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x203000, 0x203fff) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x300000, 0x300fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* more sprite ram ??? */ - AM_RANGE(0x310000, 0x3103ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x310400, 0x3107ff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x310800, 0x310eff) AM_WRITE(MWA16_RAM) /* not used */ - AM_RANGE(0x310f00, 0x310f7f) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll2) - AM_RANGE(0x310f80, 0x310fff) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll1) - AM_RANGE(0x311000, 0x311fff) AM_WRITE(MWA16_RAM) /* not used */ -ADDRESS_MAP_END - -static READ8_HANDLER( wd_r ) -{ - static int a=1; - a^= 1; - return a; -} - -static WRITE8_HANDLER( city_sound_bank_w ) -{ - int bank_A=(data&0x3); - int bank_B=((data>>2)&0x3); - K007232_set_bank( 0, bank_A, bank_B ); -} - -static ADDRESS_MAP_START( sal_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xc001, 0xc001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sal_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xd000, 0xd000) AM_WRITE(VLM5030_data_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(salamand_speech_start_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( city_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_READ(YM3812_status_port_0_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( city_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9800, 0x987f) AM_WRITE(K051649_waveform_w) - AM_RANGE(0x9880, 0x9889) AM_WRITE(K051649_frequency_w) - AM_RANGE(0x988a, 0x988e) AM_WRITE(K051649_volume_w) - AM_RANGE(0x988f, 0x988f) AM_WRITE(K051649_keyonoff_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM3812_control_port_0_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(city_sound_bank_w) /* 7232 bankswitch */ -ADDRESS_MAP_END - -/******************************************************************************/ - -static ADDRESS_MAP_START( hcrash_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_ROM - AM_RANGE(0x040000, 0x05ffff) AM_ROM - AM_RANGE(0x080000, 0x083fff) AM_RAM - AM_RANGE(0x090000, 0x091fff) AM_RAM AM_WRITE(salamander_palette_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(nemesis_irq_enable_word_w) /* irq enable */ - AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(salamand_soundlatch_word_w) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(input_port_4_word_r) - AM_RANGE(0x0c0004, 0x0c0005) AM_READ(input_port_5_word_r) - AM_RANGE(0x0c0006, 0x0c0007) AM_READ(input_port_3_word_r) - AM_RANGE(0x0c0008, 0x0c0009) AM_WRITENOP /* watchdog probably */ - AM_RANGE(0x0c000a, 0x0c000b) AM_READ(input_port_0_word_r) - AM_RANGE(0x0c2000, 0x0c2001) AM_READ(konamigt_input_word_r) /* Konami GT control */ - AM_RANGE(0x0c2800, 0x0c2801) AM_WRITENOP - AM_RANGE(0x0c2802, 0x0c2803) AM_WRITE(gx400_irq2_enable_word_w) // or at 0x0c2804 ? - AM_RANGE(0x0c2804, 0x0c2805) AM_WRITENOP - AM_RANGE(0x0c4000, 0x0c4001) AM_WRITE(selected_ip_w) AM_READ(input_port_1_word_r) - AM_RANGE(0x0c4002, 0x0c4003) AM_READ(selected_ip_r) /* WEC Le Mans 24 control */ AM_WRITENOP /* latches the value read previously */ - AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) AM_WRITE(nemesis_videoram1b_word_w) AM_BASE(&nemesis_videoram1b) /* VRAM 1 */ - AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM) AM_WRITE(nemesis_videoram1f_word_w) AM_BASE(&nemesis_videoram1f) /* VRAM 1 */ - AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) AM_WRITE(nemesis_videoram2b_word_w) AM_BASE(&nemesis_videoram2b) /* VRAM 2 */ - AM_RANGE(0x103000, 0x103fff) AM_READ(MRA16_RAM) AM_WRITE(nemesis_videoram2f_word_w) AM_BASE(&nemesis_videoram2f) /* VRAM 2 */ - AM_RANGE(0x120000, 0x12ffff) AM_READ(MRA16_RAM) AM_WRITE(nemesis_characterram_word_w) AM_BASE(&nemesis_characterram) AM_SIZE(&nemesis_characterram_size) - AM_RANGE(0x180000, 0x180fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x190000, 0x1903ff) AM_READ(MRA16_RAM) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll1) - AM_RANGE(0x190400, 0x1907ff) AM_READ(MRA16_RAM) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_xscroll2) - AM_RANGE(0x190800, 0x190eff) AM_RAM /* not used */ - AM_RANGE(0x190f00, 0x190f7f) AM_READ(MRA16_RAM) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll1) - AM_RANGE(0x190f80, 0x190fff) AM_READ(MRA16_RAM) AM_WRITE(MWA16_RAM) AM_BASE(&nemesis_yscroll2) - AM_RANGE(0x191000, 0x191fff) AM_RAM /* not used */ -ADDRESS_MAP_END - -/******************************************************************************/ - -#define GX400_COINAGE_DIP \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) \ - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) \ - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) \ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) \ - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) \ - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) \ - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) \ - PORT_DIPSETTING( 0x00, "Disabled" ) - - -INPUT_PORTS_START( nemesis ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // shoot - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // missile - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Vs" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "50k and every 100k" ) - PORT_DIPSETTING( 0x10, "30k" ) - PORT_DIPSETTING( 0x08, "50k" ) - PORT_DIPSETTING( 0x00, "100k" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( nemesuk ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // shoot - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // missile - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Vs" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20k and every 70k" ) - PORT_DIPSETTING( 0x10, "30k and every 80k" ) - PORT_DIPSETTING( 0x08, "20k" ) - PORT_DIPSETTING( 0x00, "30k" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -/* This needs to be sorted */ -INPUT_PORTS_START( konamigt ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) /* gear */ - PORT_BIT( 0xef, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN6 */ - PORT_BIT( 0xff, 0x40, IPT_DIAL ) PORT_MINMAX(0x00,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START /* IN7 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) -// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) -INPUT_PORTS_END - - -/* This needs to be sorted */ -INPUT_PORTS_START( rf2 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* don't change */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* gear (0-7) */ - PORT_BIT( 0x8f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN6 */ - PORT_BIT( 0xff, 0x40, IPT_DIAL ) PORT_MINMAX(0x00,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START /* IN7 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) -// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - -INPUT_PORTS_END - - -INPUT_PORTS_START( gwarrior ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Vs" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "30k 100k 200k 400k" ) - PORT_DIPSETTING( 0x10, "40k 120k 240k 480k" ) - PORT_DIPSETTING( 0x08, "50k 150k 300k 600k" ) - PORT_DIPSETTING( 0x00, "100k 200k 400k 800k" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( twinbee ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Vs" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20k 100k" ) - PORT_DIPSETTING( 0x10, "30k 120k" ) - PORT_DIPSETTING( 0x08, "40k 140k" ) - PORT_DIPSETTING( 0x00, "50k 160k" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( gradius ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // shoot - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // missile - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Vs" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20k and every 70k" ) - PORT_DIPSETTING( 0x10, "30k and every 80k" ) - PORT_DIPSETTING( 0x08, "20k only" ) - PORT_DIPSETTING( 0x00, "30k only" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( salamand ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, "Coin Slot(s)" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x18, 0x00, "Max Credit(s)" ) - PORT_DIPSETTING( 0x18, "1" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x08, "5" ) - PORT_DIPSETTING( 0x00, "9" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( lifefrcj ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // missile - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x04, 0x00, "Coin Slot(s)" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "70k and every 200k" ) - PORT_DIPSETTING( 0x10, "100k and every 300k" ) - PORT_DIPSETTING( 0x08, "70k only" ) - PORT_DIPSETTING( 0x00, "100k only" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( blkpnthr ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x80, "Continue" ) - PORT_DIPSETTING( 0xc0, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, "2 Areas" ) - PORT_DIPSETTING( 0x40, "3 Areas" ) - PORT_DIPSETTING( 0x00, "4 Areas" ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "50k 100k" ) - PORT_DIPSETTING( 0x10, "20k 50k" ) - PORT_DIPSETTING( 0x08, "30k 70k" ) - PORT_DIPSETTING( 0x00, "80k 150k" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( citybomb ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Upright Control" ) - PORT_DIPSETTING( 0x40, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_DIPNAME( 0x80, 0x80, "Device Type" ) - PORT_DIPSETTING( 0x00, "Handle" ) - PORT_DIPSETTING( 0x80, DEF_STR( Joystick ) ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x10, "Qualify" ) - PORT_DIPSETTING( 0x18, "Long" ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, "Short" ) - PORT_DIPSETTING( 0x00, "Very Short" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( nyanpani ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( hcrash ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (WEC Le Mans 24 cabinet)") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) // must be 0 otherwise game freezes when using WEC Le Mans 24 cabinet - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* TEST */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Quantity of Initials" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x02, "7" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, "Speed Unit" ) - PORT_DIPSETTING( 0x08, "km/h" ) - PORT_DIPSETTING( 0x00, "M.P.H." ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - GX400_COINAGE_DIP - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x03, "Konami GT without brake" ) - PORT_DIPSETTING( 0x02, "WEC Le Mans 24 Upright" ) - PORT_DIPSETTING( 0x01, "Konami GT with brake" ) - // 0x00 WEC Le Mans 24 Upright again - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* Konami GT specific control */ - PORT_START /* IN6 */ - PORT_BIT( 0xff, 0x40, IPT_DIAL ) PORT_MINMAX(0x00,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) - - PORT_START /* IN7 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (Konami GT cabinet)") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) -// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - - /* WEC Le Mans 24 specific control */ - PORT_START /* IN8 - Accelerator */ - PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START /* IN9 - Steering Wheel */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) -INPUT_PORTS_END - -/******************************************************************************/ - -#ifdef LSB_FIRST -#define XOR(x) ((x)^8) -#else -#define XOR(x) (x) -#endif - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 2048+1, /* 2048 characters (+ blank one) */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4) }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every char takes 32 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 512, /* 512 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4) }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout spritelayout3216 = -{ - 32,16, /* 32*16 sprites */ - 256, /* 256 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4), - XOR(16*4),XOR(17*4), XOR(18*4), XOR(19*4), XOR(20*4), XOR(21*4), XOR(22*4), XOR(23*4), - XOR(24*4),XOR(25*4), XOR(26*4), XOR(27*4), XOR(28*4), XOR(29*4), XOR(30*4), XOR(31*4)}, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, - 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 256*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout spritelayout1632 = -{ - 16,32, /* 16*32 sprites */ - 256, /* 256 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4)}, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64, - 16*64, 17*64, 18*64, 19*64, 20*64, 21*64, 22*64, 23*64, - 24*64, 25*64, 26*64, 27*64, 28*64, 29*64, 30*64, 31*64}, - 256*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout spritelayout3232 = -{ - 32,32, /* 32*32 sprites */ - 128, /* 128 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4), - XOR(16*4),XOR(17*4), XOR(18*4), XOR(19*4), XOR(20*4), XOR(21*4), XOR(22*4), XOR(23*4), - XOR(24*4),XOR(25*4), XOR(26*4), XOR(27*4), XOR(28*4), XOR(29*4), XOR(30*4), XOR(31*4)}, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, - 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128, - 16*128, 17*128, 18*128, 19*128, 20*128, 21*128, 22*128, 23*128, - 24*128, 25*128, 26*128, 27*128, 28*128, 29*128, 30*128, 31*128}, - 512*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout spritelayout816 = -{ - 8,16, /* 16*16 sprites */ - 1024, /* 1024 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4)}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 64*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout spritelayout168 = -{ - 16,8, /* 16*8 sprites */ - 1024, /* 1024 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* the two bitplanes are merged in the same nibble */ - { XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4)}, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64}, - 64*8 /* every sprite takes 128 consecutive bytes */ - -}; - -static const UINT32 spritelayout6464_xoffset[64] = -{ - XOR(0*4), XOR(1*4), XOR(2*4), XOR(3*4), XOR(4*4), XOR(5*4), XOR(6*4), XOR(7*4), - XOR(8*4), XOR(9*4), XOR(10*4), XOR(11*4), XOR(12*4), XOR(13*4), XOR(14*4), XOR(15*4), - XOR(16*4),XOR(17*4), XOR(18*4), XOR(19*4), XOR(20*4), XOR(21*4), XOR(22*4), XOR(23*4), - XOR(24*4),XOR(25*4), XOR(26*4), XOR(27*4), XOR(28*4), XOR(29*4), XOR(30*4), XOR(31*4), - XOR(32*4),XOR(33*4), XOR(34*4), XOR(35*4), XOR(36*4), XOR(37*4), XOR(38*4), XOR(39*4), - XOR(40*4),XOR(41*4), XOR(42*4), XOR(43*4), XOR(44*4), XOR(45*4), XOR(46*4), XOR(47*4), - XOR(48*4),XOR(49*4), XOR(50*4), XOR(51*4), XOR(52*4), XOR(53*4), XOR(54*4), XOR(55*4), - XOR(56*4),XOR(57*4), XOR(58*4), XOR(59*4), XOR(60*4), XOR(61*4), XOR(62*4), XOR(63*4) -}; - -static const UINT32 spritelayout6464_yoffset[64] = -{ - 0*256, 1*256, 2*256, 3*256, 4*256, 5*256, 6*256, 7*256, - 8*256, 9*256, 10*256, 11*256, 12*256, 13*256, 14*256, 15*256, - 16*256, 17*256, 18*256, 19*256, 20*256, 21*256, 22*256, 23*256, - 24*256, 25*256, 26*256, 27*256, 28*256, 29*256, 30*256, 31*256, - 32*256, 33*256, 34*256, 35*256, 36*256, 37*256, 38*256, 39*256, - 40*256, 41*256, 42*256, 43*256, 44*256, 45*256, 46*256, 47*256, - 48*256, 49*256, 50*256, 51*256, 52*256, 53*256, 54*256, 55*256, - 56*256, 57*256, 58*256, 59*256, 60*256, 61*256, 62*256, 63*256 -}; - -static const gfx_layout spritelayout6464 = -{ - 64,64, /* 32*32 sprites */ - 32, /* 128 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - EXTENDED_XOFFS, - EXTENDED_YOFFS, - 2048*8, /* every sprite takes 128 consecutive bytes */ - spritelayout6464_xoffset, - spritelayout6464_yoffset -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { 0, 0x0, &charlayout, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout3216, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout816, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout3232, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout1632, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout168, 0, 0x80 }, /* the game dynamically modifies this */ - { 0, 0x0, &spritelayout6464, 0, 0x80 }, /* the game dynamically modifies this */ - { -1 } -}; - -/******************************************************************************/ - -static struct AY8910interface ay8910_interface_1 = -{ - nemesis_portA_r -}; - -static struct AY8910interface ay8910_interface_2 = -{ - 0, - 0, - k005289_control_A_w, - k005289_control_B_w -}; - -static struct k005289_interface k005289_interface = -{ - REGION_SOUND1 /* prom memory region */ -}; - -static void sound_irq(int state) -{ -/* Interrupts _are_ generated, I wonder where they go.. */ -/*cpunum_set_input_line(1,0,HOLD_LINE);*/ -} - -static struct YM2151interface ym2151_interface = -{ - sound_irq -}; - -static struct YM3812interface ym3812_interface = -{ - sound_irq -}; - -static struct VLM5030interface vlm5030_interface = -{ - REGION_SOUND1, /* memory region */ - 0 /* memory length */ -}; - -static void volume_callback(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface = -{ - REGION_SOUND2, /* memory regions */ - volume_callback /* external port callback */ -}; - -/******************************************************************************/ - -static MACHINE_DRIVER_START( nemesis ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216 MHz? */ -// 14318180/2, /* From schematics, should be accurate */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(nemesis_interrupt,1) - - MDRV_CPU_ADD(Z80,14318180/4) - /* audio CPU */ /* From schematics, should be accurate */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) /* fixed */ - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* ??? */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(nemesis) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) /* verified with OST */ - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_2) /* fixed */ - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* verified with OST */ - - MDRV_SOUND_ADD(K005289, 3579545/2) - MDRV_SOUND_CONFIG(k005289_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35) /* verified with OST */ - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) /* unused */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( konamigt ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216 MHz? */ - MDRV_CPU_PROGRAM_MAP(konamigt_readmem,konamigt_writemem) - MDRV_CPU_VBLANK_INT(konamigt_interrupt,2) - - MDRV_CPU_ADD(Z80,14318180/4) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(nemesis) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.85) - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD(K005289, 3579545/2) - MDRV_SOUND_CONFIG(k005289_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( salamand ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216MHz */ - MDRV_CPU_PROGRAM_MAP(salamand_readmem,salamand_writemem) - MDRV_CPU_VBLANK_INT(salamand_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sal_sound_readmem,sal_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC((264-256)*62.5)) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(salamand) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.60) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.60) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.10) - MDRV_SOUND_ROUTE(0, "right", 0.10) - MDRV_SOUND_ROUTE(1, "left", 0.10) - MDRV_SOUND_ROUTE(1, "right", 0.10) - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( blkpnthr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216 MHz? */ - MDRV_CPU_PROGRAM_MAP(blkpnthr_readmem,blkpnthr_writemem) - MDRV_CPU_VBLANK_INT(blkpnthr_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sal_sound_readmem,sal_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(salamand) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.10) - MDRV_SOUND_ROUTE(0, "right", 0.10) - MDRV_SOUND_ROUTE(1, "left", 0.10) - MDRV_SOUND_ROUTE(1, "right", 0.10) - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( citybomb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216 MHz? */ - MDRV_CPU_PROGRAM_MAP(citybomb_readmem,citybomb_writemem) - MDRV_CPU_VBLANK_INT(salamand_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(city_sound_readmem,city_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(salamand) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.30) - MDRV_SOUND_ROUTE(0, "right", 0.30) - MDRV_SOUND_ROUTE(1, "left", 0.30) - MDRV_SOUND_ROUTE(1, "right", 0.30) - - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(K051649, 3579545/2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.38) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.38) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( nyanpani ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216 MHz? */ - MDRV_CPU_PROGRAM_MAP(nyanpani_readmem,nyanpani_writemem) - MDRV_CPU_VBLANK_INT(salamand_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(city_sound_readmem,city_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(salamand) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.30) - MDRV_SOUND_ROUTE(0, "right", 0.30) - MDRV_SOUND_ROUTE(1, "left", 0.30) - MDRV_SOUND_ROUTE(1, "right", 0.30) - - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(K051649, 3579545/2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.38) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.38) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gx400 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216MHz */ - MDRV_CPU_PROGRAM_MAP(gx400_readmem,gx400_writemem) - MDRV_CPU_VBLANK_INT(gx400_interrupt,3) - - MDRV_CPU_ADD(Z80,14318180/4) /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(gx400_sound_readmem,gx400_sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) /* interrupts are triggered by the main CPU */ - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(nemesis) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) /* verified with OST */ - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* verified with OST */ - - MDRV_SOUND_ADD(K005289, 3579545/2) - MDRV_SOUND_CONFIG(k005289_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35) /* verified with OST */ - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) /* unused */ -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( rf2_gx400 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/2) /* 9.216MHz */ - MDRV_CPU_PROGRAM_MAP(rf2_gx400_readmem,rf2_gx400_writemem) - MDRV_CPU_VBLANK_INT(gx400_interrupt,3) - - MDRV_CPU_ADD(Z80,14318180/4) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(gx400_sound_readmem,gx400_sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) /* interrupts are triggered by the main CPU */ - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(nemesis) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.85) - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD(K005289, 3579545/2) - MDRV_SOUND_CONFIG(k005289_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( hcrash ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,18432000/3) /* 6.144MHz */ - MDRV_CPU_PROGRAM_MAP(hcrash_map,0) - MDRV_CPU_VBLANK_INT(konamigt_interrupt,2) - - MDRV_CPU_ADD(Z80,14318180/4) - /* audio CPU */ /* 3.579545 MHz */ - MDRV_CPU_PROGRAM_MAP(sal_sound_readmem,sal_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nemesis) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(nemesis) - MDRV_VIDEO_UPDATE(salamand) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.60) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.60) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface) - MDRV_SOUND_ROUTE(0, "left", 0.10) - MDRV_SOUND_ROUTE(0, "right", 0.10) - MDRV_SOUND_ROUTE(1, "left", 0.10) - MDRV_SOUND_ROUTE(1, "right", 0.10) - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( nemesis ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 4 * 64k for code and rom */ - ROM_LOAD16_BYTE( "456-d01.12a", 0x00000, 0x8000, CRC(35ff1aaa) SHA1(2879a5d2ff7dca217fe5cd40be871878294c491f) ) - ROM_LOAD16_BYTE( "456-d05.12c", 0x00001, 0x8000, CRC(23155faa) SHA1(08c73c669b3a5275353cbfcbe58ced92d93244a7) ) - ROM_LOAD16_BYTE( "456-d02.13a", 0x10000, 0x8000, CRC(ac0cf163) SHA1(8b1a46c3ad102fe78cf099425e108d09dafd0955) ) - ROM_LOAD16_BYTE( "456-d06.13c", 0x10001, 0x8000, CRC(023f22a9) SHA1(0b9096b9cfcc3ed273de04c93227ab24c63513e8) ) - ROM_LOAD16_BYTE( "456-d03.14a", 0x20000, 0x8000, CRC(8cefb25f) SHA1(876b1974ca76ca89f8b8ea45b4ba9ec82d7c7228) ) - ROM_LOAD16_BYTE( "456-d07.14c", 0x20001, 0x8000, CRC(d50b82cb) SHA1(71e9fbe51272788e2ef6f150c7bff59ac8c28f1d) ) - ROM_LOAD16_BYTE( "456-d04.15a", 0x30000, 0x8000, CRC(9ca75592) SHA1(04388f2874faa54dd2cabfec4d6ce3e8d164cbcc) ) - ROM_LOAD16_BYTE( "456-d08.15c", 0x30001, 0x8000, CRC(03c0b7f5) SHA1(4eb31bcbd2ee66afe4158308351a57589c5a1e4e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "456-d09.9c", 0x00000, 0x4000, CRC(26bf9636) SHA1(009dcbf18ea6230fc75a72232bd4fc29ad28dbf0) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( nemesuk ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 4 * 64k for code and rom */ - ROM_LOAD16_BYTE( "456-e01.12a", 0x00000, 0x8000, CRC(e1993f91) SHA1(6759bb9ba0ce28ad4d7f61b824a7d0fe43215bdc) ) - ROM_LOAD16_BYTE( "456-e05.12c", 0x00001, 0x8000, CRC(c9761c78) SHA1(bfd63517efa820a05a0d9a908dd0917cd0d01b77) ) - ROM_LOAD16_BYTE( "456-e02.13a", 0x10000, 0x8000, CRC(f6169c4b) SHA1(047a204fbcf8c24eca2db7197d4297e5a28c2b42) ) - ROM_LOAD16_BYTE( "456-e06.13c", 0x10001, 0x8000, CRC(af58c548) SHA1(a15725c14b6e7840c84ab2bd4cf3668bbaf35abf) ) - ROM_LOAD16_BYTE( "456-d03.14a", 0x20000, 0x8000, CRC(8cefb25f) SHA1(876b1974ca76ca89f8b8ea45b4ba9ec82d7c7228) ) /* Labeled "E03" but same as above set */ - ROM_LOAD16_BYTE( "456-d07.14c", 0x20001, 0x8000, CRC(d50b82cb) SHA1(71e9fbe51272788e2ef6f150c7bff59ac8c28f1d) ) /* Labeled "E07" but same as above set */ - ROM_LOAD16_BYTE( "456-e04.15a", 0x30000, 0x8000, CRC(322423d0) SHA1(6106b607132a09193353f339d06032a13b1e3de8) ) - ROM_LOAD16_BYTE( "456-e08.15c", 0x30001, 0x8000, CRC(eb656266) SHA1(2f4abea282d30775f7a25747eb41bfd8d5299967) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "456-d09.9c", 0x00000, 0x4000, CRC(26bf9636) SHA1(009dcbf18ea6230fc75a72232bd4fc29ad28dbf0) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( konamigt ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 4 * 64k for code and rom */ - ROM_LOAD16_BYTE( "561-c01.12a", 0x00000, 0x8000, CRC(56245bfd) SHA1(12579ae0031c172d42b766f5a801ef479148105e) ) - ROM_LOAD16_BYTE( "561-c05.12c", 0x00001, 0x8000, CRC(8d651f44) SHA1(0d057ce063dd19c0a708cffa413511b367206682) ) - ROM_LOAD16_BYTE( "561-c02.13a", 0x10000, 0x8000, CRC(3407b7cb) SHA1(1df834a47e3b4cabc79ece4cd90e05e5df68df9a) ) - ROM_LOAD16_BYTE( "561-c06.13c", 0x10001, 0x8000, CRC(209942d4) SHA1(953321eeed88086dee3a9f8cd596191f19260b3a) ) - ROM_LOAD16_BYTE( "561-b03.14a", 0x20000, 0x8000, CRC(aef7df48) SHA1(04d3e79e8fa0e332d92738094933069bcdbdfeab) ) - ROM_LOAD16_BYTE( "561-b07.14c", 0x20001, 0x8000, CRC(e9bd6250) SHA1(507b72c7e5f8fb7b6feb357ec522e814e25f2cc1) ) - ROM_LOAD16_BYTE( "561-b04.15a", 0x30000, 0x8000, CRC(94bd4bd7) SHA1(314b537ba97dec1a91dcfc5deeb1dd9f7bb4a930) ) - ROM_LOAD16_BYTE( "561-b08.15c", 0x30001, 0x8000, CRC(b7236567) SHA1(7626d70262a0acff36357877a5e7c9ed3f45415e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "561-b09.9c", 0x00000, 0x4000, CRC(539d0c49) SHA1(4c16b07fbd876b6445fc0ec49c3ad5ab1a92cbf6) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( rf2 ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 5 * 64k for code and rom */ - ROM_LOAD16_BYTE( "400-a06.15l", 0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) ) - ROM_LOAD16_BYTE( "400-a04.10l", 0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) ) - ROM_LOAD16_BYTE( "561-a07.17l", 0x80000, 0x20000, CRC(ed6e7098) SHA1(a28f2846b091b5bc333088054451d7b6d7f6458e) ) - ROM_LOAD16_BYTE( "561-a05.12l", 0x80001, 0x20000, CRC(dfe04425) SHA1(0817992aeeba140feba1417c265b794f096936d9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "400-e03.5l", 0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( twinbee ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 5 * 64k for code and rom */ - ROM_LOAD16_BYTE( "400-a06.15l", 0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) ) - ROM_LOAD16_BYTE( "400-a04.10l", 0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) ) - ROM_LOAD16_BYTE( "412-a07.17l", 0x80000, 0x20000, CRC(d93c5499) SHA1(4555b9232ce86192360ea5b5092643ff51446aa0) ) - ROM_LOAD16_BYTE( "412-a05.12l", 0x80001, 0x20000, CRC(2b357069) SHA1(409cf3aa174f5d7dc5efc8b8b1c925fcb677fc98) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "400-e03.5l", 0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( gradius ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 5 * 64k for code and rom */ - ROM_LOAD16_BYTE( "400-a06.15l", 0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) ) - ROM_LOAD16_BYTE( "400-a04.10l", 0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) ) - ROM_LOAD16_BYTE( "456-a07.17l", 0x80000, 0x20000, CRC(92df792c) SHA1(aec916f70af92a2d6476d7a36ba9be265890f9aa) ) - ROM_LOAD16_BYTE( "456-a05.12l", 0x80001, 0x20000, CRC(5cafb263) SHA1(7cd12c695ec6ef4d5785ce218911961fc3528e95) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "400-e03.5l", 0x00000, 0x2000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( gwarrior ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 5 * 64k for code and rom */ - ROM_LOAD16_BYTE( "400-a06.15l", 0x00000, 0x08000, CRC(b99d8cff) SHA1(18e277827a534bab2b3b8b81e51d886b8382d435) ) - ROM_LOAD16_BYTE( "400-a04.10l", 0x00001, 0x08000, CRC(d02c9552) SHA1(ec0aaa093541dab98412c11f666161cd558c383a) ) - ROM_LOAD16_BYTE( "578-a07.17l", 0x80000, 0x20000, CRC(0aedacb5) SHA1(bf8e4b443df37e021a86e1fe76683113977a1a76) ) - ROM_LOAD16_BYTE( "578-a05.12l", 0x80001, 0x20000, CRC(76240e2e) SHA1(3f4086972fa655704ec6480fa3012c3e8999d8ab) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "400-e03.5l", 0x00000, 0x02000, CRC(a5a8e57d) SHA1(f4236770093392dec3f76835a5766e9b3ed64e2e) ) - - ROM_REGION( 0x0200, REGION_SOUND1, 0 ) /* 2x 256 byte for 0005289 wavetable data */ - ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) ) - ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) ) -ROM_END - -ROM_START( salamand ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "587-d02.18b", 0x00000, 0x10000, CRC(a42297f9) SHA1(7c974779e438eae649b39b36f6f6d24847099a6e) ) - ROM_LOAD16_BYTE( "587-d05.18c", 0x00001, 0x10000, CRC(f9130b0a) SHA1(925ea65c13fc87fc59f893cc0ead2c82fd0bed6f) ) - ROM_LOAD16_BYTE( "17b.bin", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) ) /* Mask rom */ - ROM_LOAD16_BYTE( "17c.bin", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) ) /* Mask rom */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "587-d09.11j", 0x00000, 0x08000, CRC(5020972c) SHA1(04c752c3b7fd850a8a51ecd230b39e6edde9dd7e) ) - - ROM_REGION( 0x04000, REGION_SOUND1, 0 ) /* VLM5030 data? */ - ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "10a.bin", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ -ROM_END - -ROM_START( salamanj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "587-j02.18b", 0x00000, 0x10000, CRC(f68ee99a) SHA1(aec1f4720abe2529120ae711daa9e7e7d966b351) ) - ROM_LOAD16_BYTE( "587-j05.18c", 0x00001, 0x10000, CRC(72c16128) SHA1(6921445caa0b1121e483c9c62c17aad8aa42cc18) ) - ROM_LOAD16_BYTE( "17b.bin", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) ) /* Mask rom */ - ROM_LOAD16_BYTE( "17c.bin", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) ) /* Mask rom */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "587-d09.11j", 0x00000, 0x08000, CRC(5020972c) SHA1(04c752c3b7fd850a8a51ecd230b39e6edde9dd7e) ) - - ROM_REGION( 0x04000, REGION_SOUND1, 0 ) /* VLM5030 data? */ - ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "10a.bin", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ -ROM_END - -ROM_START( lifefrce ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "587-k02.18b", 0x00000, 0x10000, CRC(4a44da18) SHA1(8e76bc2b9c48bfc65664fb6ee4d1d33622ee1eb8) ) - ROM_LOAD16_BYTE( "587-k05.18c", 0x00001, 0x10000, CRC(2f8c1cbd) SHA1(aa309d509be69f315e50047abff42d9b30334e1d) ) - ROM_LOAD16_BYTE( "17b.bin", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) ) /* Mask rom */ - ROM_LOAD16_BYTE( "17c.bin", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) ) /* Mask rom */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "587-k09.11j", 0x00000, 0x08000, CRC(2255fe8c) SHA1(6ee35575a15f593642b29020857ec466094ef495) ) - - ROM_REGION( 0x04000, REGION_SOUND1, 0 ) /* VLM5030 data? */ - ROM_LOAD( "587-k08.8g", 0x00000, 0x04000, CRC(7f0e9b41) SHA1(c9fc2723fac55691dfbb4cf9b3c472a42efa97c9) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "10a.bin", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ -ROM_END - -ROM_START( lifefrcj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "587-n02.18b", 0x00000, 0x10000, CRC(235dba71) SHA1(f3a0092a7d002436253054953e36d0865ce95b80) ) - ROM_LOAD16_BYTE( "587-n05.18c", 0x00001, 0x10000, CRC(054e569f) SHA1(e810f7e3e762875e2e71e4356997257e1bbe0da1) ) - ROM_LOAD16_BYTE( "587-n03.17b", 0x40000, 0x20000, CRC(9041f850) SHA1(d62b8c3132916a4053cb282448b2404ac0143e01) ) - ROM_LOAD16_BYTE( "587-n06.17c", 0x40001, 0x20000, CRC(fba8b6aa) SHA1(5ef861b89b7a89c9d70355e09621b106baa5c1e7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "587-n09.11j", 0x00000, 0x08000, CRC(e8496150) SHA1(c7d40b6dc56849dfd8d080f1aaebad36c88d93df) ) - - ROM_REGION( 0x04000, REGION_SOUND1, 0 ) /* VLM5030 data? */ - ROM_LOAD( "587-k08.8g", 0x00000, 0x04000, CRC(7f0e9b41) SHA1(c9fc2723fac55691dfbb4cf9b3c472a42efa97c9) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "10a.bin", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) ) /* Mask rom */ -ROM_END - -ROM_START( blkpnthr ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "604-f02.18b", 0x00000, 0x10000, CRC(487bf8da) SHA1(43b01599a1e3f82972d597a7a92bdd4ce1343847) ) - ROM_LOAD16_BYTE( "604-f05.18c", 0x00001, 0x10000, CRC(b08f8ca2) SHA1(ca3b17709a86abdcfa0034ccb4ff8d0afc84558f) ) - ROM_LOAD16_BYTE( "604-c03.17b", 0x40000, 0x20000, CRC(815bc3b0) SHA1(ee643b9af5906d12b1d621996503c2e28d93a207) ) - ROM_LOAD16_BYTE( "604-c06.17c", 0x40001, 0x20000, CRC(4af6bf7f) SHA1(bf6d128670dda1f30cbf72cb82b61bf6ddfcde60) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "604-a08.11j", 0x00000, 0x08000, CRC(aff88a2b) SHA1(7080add63deab5755606759a218dea9105df4819) ) - - ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "604-a01.10a", 0x00000, 0x20000, CRC(eceb64a6) SHA1(028157d336770fe4ca17c24476d62a790255898a) ) -ROM_END - -ROM_START( citybomb ) - ROM_REGION( 0x1c0000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "787-g10.15k", 0x000000, 0x10000, CRC(26207530) SHA1(ccb5e4ca472aad11cf308973d6a020d3af22a134) ) - ROM_LOAD16_BYTE( "787-g09.15h", 0x000001, 0x10000, CRC(ce7de262) SHA1(73ab58c057113ffffb633c314fa383e65236d423) ) - ROM_LOAD16_BYTE( "787-g08.15f", 0x100000, 0x20000, CRC(6242ef35) SHA1(16fd4478d54117bbf09792e22c786622ca5049bb) ) - ROM_LOAD16_BYTE( "787-g07.15d", 0x100001, 0x20000, CRC(21be5e9e) SHA1(37fdf6d6fe3e84e897f2d908afdfc47e8d4a9265) ) - ROM_LOAD16_BYTE( "787-e06.14f", 0x140000, 0x20000, CRC(c251154a) SHA1(7c6a1f862ddf64a604164b85e4a04bb01e2966a7) ) - ROM_LOAD16_BYTE( "787-e05.14d", 0x140001, 0x20000, CRC(0781e22d) SHA1(03a998ee47194960af4dde2bf553359fe8a3aee7) ) - ROM_LOAD16_BYTE( "787-g04.13f", 0x180000, 0x20000, CRC(137cf39f) SHA1(39cfd25c45d824cabc3641fd39eb77c98d32ec9b) ) - ROM_LOAD16_BYTE( "787-g03.13d", 0x180001, 0x20000, CRC(0cc704dc) SHA1(b0c3991393cdb6a75461597d51452bfa08955081) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "787-e02.4h", 0x00000, 0x08000, CRC(f4591e46) SHA1(c17c1a24bf1866fbba388521a4b7ea0975bda587) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "787-e01.1k", 0x00000, 0x80000, CRC(edc34d01) SHA1(b1465d1a7364a7cebc14b96cd01dc78e57975972) ) -ROM_END - -ROM_START( citybmrj ) - ROM_REGION( 0x1c0000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "787-h10.15k", 0x000000, 0x10000, CRC(66fecf69) SHA1(5881ec019ef6228a693af5c9f6c26e05bdee3846) ) - ROM_LOAD16_BYTE( "787-h09.15h", 0x000001, 0x10000, CRC(a0e29468) SHA1(78971da14a748ade6ea94770080a393c7617b97d) ) - ROM_LOAD16_BYTE( "787-g08.15f", 0x100000, 0x20000, CRC(6242ef35) SHA1(16fd4478d54117bbf09792e22c786622ca5049bb) ) - ROM_LOAD16_BYTE( "787-g07.15d", 0x100001, 0x20000, CRC(21be5e9e) SHA1(37fdf6d6fe3e84e897f2d908afdfc47e8d4a9265) ) - ROM_LOAD16_BYTE( "787-e06.14f", 0x140000, 0x20000, CRC(c251154a) SHA1(7c6a1f862ddf64a604164b85e4a04bb01e2966a7) ) - ROM_LOAD16_BYTE( "787-e05.14d", 0x140001, 0x20000, CRC(0781e22d) SHA1(03a998ee47194960af4dde2bf553359fe8a3aee7) ) - ROM_LOAD16_BYTE( "787-g04.13f", 0x180000, 0x20000, CRC(137cf39f) SHA1(39cfd25c45d824cabc3641fd39eb77c98d32ec9b) ) - ROM_LOAD16_BYTE( "787-g03.13d", 0x180001, 0x20000, CRC(0cc704dc) SHA1(b0c3991393cdb6a75461597d51452bfa08955081) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "787-e02.4h", 0x00000, 0x08000, CRC(f4591e46) SHA1(c17c1a24bf1866fbba388521a4b7ea0975bda587) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "787-e01.1k", 0x00000, 0x80000, CRC(edc34d01) SHA1(b1465d1a7364a7cebc14b96cd01dc78e57975972) ) -ROM_END - -ROM_START( kittenk ) - ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "kitten.15k", 0x000000, 0x10000, CRC(8267cb2b) SHA1(63c4ebef834850eff379141b8eb0fafbdcf26d0e) ) - ROM_LOAD16_BYTE( "kitten.15h", 0x000001, 0x10000, CRC(eb41cfa5) SHA1(d481e63faea098625a42613c13f82fec310a7c62) ) - ROM_LOAD16_BYTE( "712-b08.15f", 0x100000, 0x20000, CRC(e6d71611) SHA1(89fced4074c491c211fea908f08be94595c57f31) ) - ROM_LOAD16_BYTE( "712-b07.15d", 0x100001, 0x20000, CRC(30f75c9f) SHA1(0cbc247ff37800dd3275d2ff23a63ed19ec4cef2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "712-e02.4h", 0x00000, 0x08000, CRC(ba76f310) SHA1(cc2164a9617493d1b3b8ac67430f9eb26fd987d2) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "712-b01.1k", 0x00000, 0x80000, CRC(f65b5d95) SHA1(12701be68629844720cd16af857ce38ef06af61c) ) -ROM_END - -ROM_START( nyanpani ) - ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "712-j10.15k", 0x000000, 0x10000, CRC(924b27ec) SHA1(019279349b1be45ba46e57ef8f21d79a1b115d7b) ) - ROM_LOAD16_BYTE( "712-j09.15h", 0x000001, 0x10000, CRC(a9862ea1) SHA1(84e481eb6159889d54d0dfe4c31399ab06e13bb7) ) - ROM_LOAD16_BYTE( "712-b08.15f", 0x100000, 0x20000, CRC(e6d71611) SHA1(89fced4074c491c211fea908f08be94595c57f31) ) - ROM_LOAD16_BYTE( "712-b07.15d", 0x100001, 0x20000, CRC(30f75c9f) SHA1(0cbc247ff37800dd3275d2ff23a63ed19ec4cef2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "712-e02.4h", 0x00000, 0x08000, CRC(ba76f310) SHA1(cc2164a9617493d1b3b8ac67430f9eb26fd987d2) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "712-b01.1k", 0x00000, 0x80000, CRC(f65b5d95) SHA1(12701be68629844720cd16af857ce38ef06af61c) ) -ROM_END - -/* - -Hyper Crash -Konami, 1987 - -PCB Layout ----------- - -GX790 PWB(B) 250093A -|----------------------------------------------------------------------| -|VOL-L CN3 CN5 790C01.M10 | -|VOL-R CN4 | -| MB3722 UPC324 6264 790C02.S9 790C03.T9 |-| -| | | -|J ADC0804 UPC324 | | -|A | | -|M UPC324 | | -|M 6264 790C05.S7 790C06.T7 | | -|A 007232 | | -| |-| -| | -| YM3012 | -| 3.579545MHz | -| YM2151 | -| | -| Z80 68000 | -| VLM5030 |-| -| 790C08.J4 | | -|1 | | -|8 AN6914 | | -|W AN6914 | | -|A | | -|Y DSW3(4) | | -| 790C09.N2 007593 |-| -| CN7 DSW2(8) DSW1(8) | -| CN8 CN9 6116 | -|----------------------------------------------------------------------| -Notes: - 68000 CPU clock - 6.144MHz [18.432/3] - Z80 clock - 3.579545MHz - YM2151 clock - 3.579545MHz - VLM5030 clock - 3.579545MHz - 007232 clock - 3.579545MHz - CN3/CN4 - 4 pin plug/jumper for stereo/mono output selection - CN5 - Right speaker output connection - CN7 - 4 pin steering connector - CN8 - 4 pin accelerate/brake connection - CN9 - 8 pin connection labelled 'ACTION SEAT' - VSync - 60Hz - HSync - 15.52kHz - Konami Custom ICs - - 007232 (SDIP64) - 007593 (custom ceramic flat pack with 56 legs) - ROMs - - 790C02/05 - Fujitsu 27C512 OTP EPROM (DIP28) - 790C03/06 - Fujitsu 27C256 EPROM (DIP28) - 790C01 - Toshiba 571001 (in socket adapter to DIP28 pins on PCB) - Actual socket on PCB is wired for 28 pin 1M MaskROM - 790C09 - Fujitsu 27C256 EPROM (DIP28) - 790C08 - Fujitsu 27C256 EPROM (DIP28) - Note! PCB is wired for 27C128, top half of EPROM is blank. - - -GX400PWB(A)200204C -|----------------------------------------------------------------------| -| | -| 4416 4416 4416 4416 6264 0005292 | -| |-| -| 4416 4416 4416 4416 6264 | | -| | | -| | | -| | | -| | | -| | | -| |-| -| 6264 | -| 0005294 0005290 0005293 0005291 6116 6116 | -| | -| | -| | -| | -| |-| -| | | -| | | -| | | -| | | -|4164 4164 4164 4164 | | -|4164 4164 4164 4164 | | -| 6116 |-| -|4164 4164 4164 4164 0005295 | -|4164 4164 4164 4164 18.432MHz | -|----------------------------------------------------------------------| -Notes: - 4416 - 16K x4 DRAM - 4164 - 64K x1 DRAM - 6264 - 8K x8 SRAM - 6116 - 2K x8 SRAM - Konami Custom ICs - - 0005290 (SDIP64) - 0005291 (ZIP64) - 0005292(SDIP64) - 0005293 (SDIP64), also stamped 'TC15G014AP-0019' - 0005294 (ZIP64) - 0005295 (SDIP64) -*/ - -ROM_START( hcrash ) - ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "790-d03.t9", 0x00000, 0x08000, CRC(10177dce) SHA1(e46f75e3206eff5299e08e5258e67b68efc4c20c) ) - ROM_LOAD16_BYTE( "790-d06.t7", 0x00001, 0x08000, CRC(fca5ab3e) SHA1(2ad335cf25a86fe38c190e2e0fe101ea161eb81d) ) - ROM_LOAD16_BYTE( "790-c02.s9", 0x40000, 0x10000, CRC(8ae6318f) SHA1(b3205df1103a69eef34c5207e567a27a5fee5660) ) - ROM_LOAD16_BYTE( "790-c05.s7", 0x40001, 0x10000, CRC(c214f77b) SHA1(c5754c3da2a3820d8d06f8ff171be6c2aea92ecc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "790-c09.n2", 0x00000, 0x8000, CRC(a68a8cce) SHA1(a54966b9cbbe37b2be6a2276ee09c81452d9c0ca) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* VLM5030 data data */ - ROM_LOAD( "790-c08.j4", 0x04000, 0x04000, CRC(cfb844bc) SHA1(43b7adb6093e707212204118087ef4f79b0dbc1f) ) - ROM_CONTINUE( 0x00000, 0x04000 ) /* Board is wired for 27C128, top half of EPROM is blank */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "790-c01.m10", 0x00000, 0x20000, CRC(07976bc3) SHA1(9341ac6084fbbe17c4e7bbefade9a3f1dec3f132) ) -ROM_END - -ROM_START( hcrashc ) - ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD16_BYTE( "790-c03.t9", 0x00000, 0x08000, CRC(d98ec625) SHA1(ddec88b0babd1c538fe5055adec73b537d637d3e) ) - ROM_LOAD16_BYTE( "790-c06.t7", 0x00001, 0x08000, CRC(1d641a86) SHA1(d20ae01565d04db62d5687546c19d87c8e26248c) ) - ROM_LOAD16_BYTE( "790-c02.s9", 0x40000, 0x10000, CRC(8ae6318f) SHA1(b3205df1103a69eef34c5207e567a27a5fee5660) ) - ROM_LOAD16_BYTE( "790-c05.s7", 0x40001, 0x10000, CRC(c214f77b) SHA1(c5754c3da2a3820d8d06f8ff171be6c2aea92ecc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound */ - ROM_LOAD( "790-c09.n2", 0x00000, 0x8000, CRC(a68a8cce) SHA1(a54966b9cbbe37b2be6a2276ee09c81452d9c0ca) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* VLM5030 data data */ - ROM_LOAD( "790-c08.j4", 0x04000, 0x04000, CRC(cfb844bc) SHA1(43b7adb6093e707212204118087ef4f79b0dbc1f) ) - ROM_CONTINUE( 0x00000, 0x04000 ) /* Board is wired for 27C128, top half of EPROM is blank */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* 007232 data */ - ROM_LOAD( "790-c01.m10", 0x00000, 0x20000, CRC(07976bc3) SHA1(9341ac6084fbbe17c4e7bbefade9a3f1dec3f132) ) -ROM_END - - - -GAME( 1985, nemesis, 0, nemesis, nemesis, 0, ROT0, "Konami", "Nemesis", 0 ) -GAME( 1985, nemesuk, nemesis, nemesis, nemesuk, 0, ROT0, "Konami", "Nemesis (World?)", 0 ) -GAME( 1985, konamigt, 0, konamigt, konamigt, 0, ROT0, "Konami", "Konami GT", 0 ) -GAME( 1985, rf2, konamigt, rf2_gx400, rf2, 0, ROT0, "Konami", "Konami RF2 - Red Fighter", 0 ) -GAME( 1985, twinbee, 0, gx400, twinbee, 0, ROT90, "Konami", "TwinBee", 0 ) -GAME( 1985, gradius, nemesis, gx400, gradius, 0, ROT0, "Konami", "Gradius", 0 ) -GAME( 1985, gwarrior, 0, gx400, gwarrior, 0, ROT0, "Konami", "Galactic Warriors", 0 ) -GAME( 1986, salamand, 0, salamand, salamand, 0, ROT0, "Konami", "Salamander (version D)", GAME_NO_COCKTAIL ) -GAME( 1986, salamanj, salamand, salamand, salamand, 0, ROT0, "Konami", "Salamander (version J)", GAME_NO_COCKTAIL ) -GAME( 1986, lifefrce, salamand, salamand, salamand, 0, ROT0, "Konami", "Lifeforce (US)", GAME_NO_COCKTAIL ) -GAME( 1986, lifefrcj, salamand, salamand, lifefrcj, 0, ROT0, "Konami", "Lifeforce (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, blkpnthr, 0, blkpnthr, blkpnthr, 0, ROT0, "Konami", "Black Panther", GAME_NO_COCKTAIL ) -GAME( 1987, citybomb, 0, citybomb, citybomb, 0, ROT270, "Konami", "City Bomber (World)", GAME_NO_COCKTAIL ) -GAME( 1987, citybmrj, citybomb, citybomb, citybomb, 0, ROT270, "Konami", "City Bomber (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, hcrash, 0, hcrash, hcrash, 0, ROT0, "Konami", "Hyper Crash (version D)", GAME_NO_COCKTAIL ) -GAME( 1987, hcrashc, hcrash, hcrash, hcrash, 0, ROT0, "Konami", "Hyper Crash (version C)", GAME_NO_COCKTAIL ) -GAME( 1988, kittenk, 0, nyanpani, nyanpani, 0, ROT0, "Konami", "Kitten Kaboodle", GAME_NO_COCKTAIL ) -GAME( 1988, nyanpani, kittenk, nyanpani, nyanpani, 0, ROT0, "Konami", "Nyan Nyan Panic (Japan)", GAME_NO_COCKTAIL ) diff --git a/src/drivers/neogeo.c b/src/drivers/neogeo.c deleted file mode 100644 index 6df7815a4..000000000 --- a/src/drivers/neogeo.c +++ /dev/null @@ -1,8242 +0,0 @@ - -/*************************************************************************** - M.A.M.E. Neo Geo driver presented to you by the Shin Emu Keikaku team. - - The following people have all spent probably far too much time on this: - - AVDB - Bryan McPhail - Fuzz - Ernesto Corvi - Andrew Prime - - Neogeo Motherboard (info - courtesy of Guru) - -------------------------------------------- - - PCB Layout (single slot, older version) - - NEO-MVH MV1 - |---------------------------------------------------------------------| - | 4558 | - | HC04 HC32 | - | SP-S2.SP1 NEO-E0 000-L0.L0 LS244 AS04 | - | YM2610 | - | 4558 | - | 4558 5814 HC259 SFIX.SFIX | - | NEO-I0 | - | HA13001 YM3016 5814 | - --| | - | 4558 | - --| SM1.SM1 LS32 | - | | - | LSPC-A0 PRO-C0 LS244 | - | | - |J 68000 | - |A | - |M | - |M NEO-ZMC2 | - |A | - | LS273 NEO-G0 58256 58256 Z80A | - | 58256 58256 58256 58256 6116 | - | LS273 5864 | - --| LS05 5864 PRO-B0 | - | | - --| LS06 HC32 D4990A NEO-F0 24.000MHz | - | DSW1 BATT3.6V 32.768kHz NEO-D0 | - | 2003 2003 | - |---------------------------------------------------------------------| - - Notes: - 68k clock: 12.000MHz - Z80 clock: 4.000MHz - YM2610 clock: 8.000MHz - VSync: 60Hz - HSync: 15.21kHz - - Custom SNK chips - ---------------- - NEO-G0: QFP64 - NEO-E0: QFP64 - PRO-B0: QFP136 - LSPC-A0: QFP160 - PRO-C0: QFP136 - NEO-F0: QFP64 - NEO-D0: QFP64 - NEO-ZMC2: QFP80 - NEO-I0: QFP64 - - ROMs Type - ---------------------------- - SP-S2.SP1 TC531024 (DIP40) - 000-L0.L0 TC531000 (DIP28) - SFIX.SFIX D27C1000 (DIP32) - SM1.SM1 MB832001 (DIP32) - - ------------------------------------------------------ - -============================================================================= - -Points to note, known and proven information deleted from this map: - - 0x3000001 Dipswitches - bit 0 : Selftest - bit 1 : Unknown (Unused ?) \ something to do with - bit 2 : Unknown (Unused ?) / auto repeating keys ? - bit 3 : \ - bit 4 : | communication setting ? - bit 5 : / - bit 6 : free play - bit 7 : stop mode ? - - 0x320001 bit 0 : COIN 1 - bit 1 : COIN 2 - bit 2 : SERVICE - bit 3 : UNKNOWN - bit 4 : UNKNOWN - bit 5 : UNKNOWN - bit 6 : 4990 test pulse bit. - bit 7 : 4990 data bit. - - 0x380051 4990 control write register - bit 0: C0 - bit 1: C1 - bit 2: C2 - bit 3-7: unused. - - 0x02 = shift. - 0x00 = register hold. - 0x04 = ????. - 0x03 = time read (reset register). - - 0x3c000c IRQ acknowledge - - 0x380011 Backup bank select - - 0x3a0001 Enable display. - 0x3a0011 Disable display - - 0x3a0003 Swap in Bios (0x80 bytes vector table of BIOS) - 0x3a0013 Swap in Rom (0x80 bytes vector table of ROM bank) - - 0x3a000d lock backup ram - 0x3a001d unlock backup ram - - 0x3a000b set game vector table (?) mirror ? - 0x3a001b set bios vector table (?) mirror ? - - 0x3a000c Unknown (ghost pilots) - 0x31001c Unknown (ghost pilots) - - IO word read - - 0x3c0002 return vidram word (pointed to by 0x3c0000) - 0x3c0006 ?????. - 0x3c0008 shadow adress for 0x3c0000 (not confirmed). - 0x3c000a shadow adress for 0x3c0002 (confirmed, see - Puzzle de Pon). - IO word write - - 0x3c0006 Unknown, set vblank counter (?) - - 0x3c0008 shadow address for 0x3c0000 (not confirmed) - 0x3c000a shadow address for 0x3c0002 (not confirmed) - - The Neo Geo contains an NEC 4990 Serial I/O calendar & clock. - accesed through 0x320001, 0x380050, 0x280050 (shadow adress). - A schematic for this device can be found on the NEC webpages. - -******************************************************************************/ - -/* - --------------------------------------------------------------------------------- - - Driver Notes / Known Problems - - Fatal Fury 3 crashes during the ending - -- this doesn't occur if the language is set to Japanese, maybe the english endings - are incomplete / buggy? - - Graphical Glitches caused by incorrect timing? - -- Blazing Star glitches during the tunnel sequence - -- Ninja Combat sometimes glitches - -- Some raster effects are imperfect (off by a couple of lines) - --------------------------------------------------------------------------------- - - *NON* bugs - - Bad zooming in the Kof2003 bootlegs - -- this is what happens if you try and use the normal bios with a pcb set, it - looks like the bootleggers didn't care. - - Glitches at the edges of the screen - -- the real hardware can display 320x240 but most of the games seem designed - to work with a width of 304, some less. - - Distorted jumping sound in Nightmare in the Dark - -- Confirmed on real hardware - --------------------------------------------------------------------------------- - - Not Implemented - - Multi Cart support - -- the MVS can take up to 6 carts depending on the board being used. - - -------------------------------------------------------------------------------- - -*/ - - - -#include "driver.h" -#include "machine/pd4990a.h" -#include "cpu/z80/z80.h" -#include "neogeo.h" -#include "sound/2610intf.h" - - -/* values probed by Razoola from the real board */ -#define RASTER_LINES 264 -/* VBLANK should fire on line 248 */ -#define RASTER_COUNTER_START 0x1f0 /* value assumed right after vblank */ -#define RASTER_COUNTER_RELOAD 0x0f8 /* value assumed after 0x1ff */ -#define RASTER_LINE_RELOAD (0x200 - RASTER_COUNTER_START) - -#define SCANLINE_ADJUST 3 /* in theory should be 0, give or take an off-by-one mistake */ - - -/******************************************************************************/ - -unsigned int neogeo_frame_counter; -unsigned int neogeo_frame_counter_speed=4; - -/******************************************************************************/ - -static INT32 irq2start=1000,irq2control; -static INT32 current_rastercounter,current_rasterline,scanline_read; -static UINT32 irq2pos_value; -static INT32 vblank_int,scanline_int; - -/* flags for irq2control: - - 0x07 unused? kof94 sets some random combination of these at the character - selection screen but only because it does andi.w #$ff2f, $3c0006. It - clears them immediately after. - - 0x08 shocktro2, stops autoanim counter - - Maybe 0x07 writes to the autoanim counter, meaning that in conjunction with - 0x08 one could fine control it. However, if that was the case, writing the - the IRQ2 control bits would interfere with autoanimation, so I'm probably - wrong. - - 0x10 irq2 enable, tile engine scanline irq that is triggered - when a certain scanline is reached. - - 0x20 when set, the next values written in the irq position register - sets irq2 to happen N lines after the current one - - 0x40 when set, irq position register is automatically loaded at vblank to - set the irq2 line. - - 0x80 when set, every time irq2 is triggered the irq position register is - automatically loaded to set the next irq2 line. - - 0x80 and 0x40 may be set at the same time (Viewpoint does this). -*/ - -#define IRQ2CTRL_AUTOANIM_STOP 0x08 -#define IRQ2CTRL_ENABLE 0x10 -#define IRQ2CTRL_LOAD_RELATIVE 0x20 -#define IRQ2CTRL_AUTOLOAD_VBLANK 0x40 -#define IRQ2CTRL_AUTOLOAD_REPEAT 0x80 - - -static void update_interrupts(void) -{ - int level = 0; - - /* determine which interrupt is active */ - if (vblank_int) level = 1; - if (scanline_int) level = 2; - - /* either set or clear the appropriate lines */ - if (level) - cpunum_set_input_line(0, level, ASSERT_LINE); - else - cpunum_set_input_line(0, 7, CLEAR_LINE); -} - -static WRITE16_HANDLER( neo_irqack_w ) -{ - if (ACCESSING_LSB) - { - if (data & 4) vblank_int = 0; - if (data & 2) scanline_int = 0; - update_interrupts(); - } -} - - -static INT32 fc = 0; - -static INT32 neogeo_raster_enable = 1; - -static INTERRUPT_GEN( neogeo_raster_interrupt ) -{ - int line = RASTER_LINES - cpu_getiloops(); - - current_rasterline = line; - - { - int l = line; - - if (l == RASTER_LINES) l = 0; /* vblank */ - if (l < RASTER_LINE_RELOAD) - current_rastercounter = RASTER_COUNTER_START + l; - else - current_rastercounter = RASTER_COUNTER_RELOAD + l - RASTER_LINE_RELOAD; - } - - if (irq2control & IRQ2CTRL_ENABLE) - { - if (line == irq2start) - { -//logerror("trigger IRQ2 at raster line %d (raster counter %d)\n",line,current_rastercounter); - if (irq2control & IRQ2CTRL_AUTOLOAD_REPEAT) - irq2start += (irq2pos_value + 3) / 0x180; /* ridhero gives 0x17d */ - - scanline_int = 1; - } - } - - if (line == RASTER_LINES) /* vblank */ - { - current_rasterline = 0; - - if (irq2control & IRQ2CTRL_AUTOLOAD_VBLANK) - irq2start = (irq2pos_value + 3) / 0x180; /* ridhero gives 0x17d */ - else - irq2start = 1000; - - - /* Add a timer tick to the pd4990a */ - pd4990a_addretrace(); - - /* Animation counter */ - if (!(irq2control & IRQ2CTRL_AUTOANIM_STOP)) - { - if (fc++>neogeo_frame_counter_speed) /* fixed animation speed */ - { - fc=0; - neogeo_frame_counter++; - } - } - - /* return a standard vblank interrupt */ -//logerror("trigger IRQ1\n"); - vblank_int = 1; /* vertical blank */ - } - - update_interrupts(); -} - -static INT32 pending_command; -static INT32 result_code; - -/* Calendar, coins + Z80 communication */ -static READ16_HANDLER( timer16_r ) -{ - UINT16 res; - int coinflip = pd4990a_testbit_r(0); - int databit = pd4990a_databit_r(0); - -// logerror("CPU %04x - Read timer\n",activecpu_get_pc()); - - res = (readinputport(4) & ~(readinputport(5) & 0x20)) ^ (coinflip << 6) ^ (databit << 7); - - res |= result_code << 8; - if (pending_command) res &= 0x7fff; - - return res; -} - -static WRITE16_HANDLER( neo_z80_w ) -{ - /* tpgold uses 16-bit writes, this can't be correct */ -// if (ACCESSING_LSB) -// return; - - soundlatch_w(0,(data>>8)&0xff); - pending_command = 1; - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - /* spin for a while to let the Z80 read the command (fixes hanging sound in pspikes2) */ -// cpu_spinuntil_time(TIME_IN_USEC(20)); - cpu_boost_interleave(0, TIME_IN_USEC(20)); -} - -static int mjneogo_select; - -static WRITE16_HANDLER ( mjneogeo_w ) -{ - mjneogo_select = data; -} - -static READ16_HANDLER ( mjneogeo_r ) -{ - UINT16 res; - -/* -cpu #0 (PC=00C18B9A): unmapped memory word write to 00380000 = 0012 & 00FF -cpu #0 (PC=00C18BB6): unmapped memory word write to 00380000 = 001B & 00FF -cpu #0 (PC=00C18D54): unmapped memory word write to 00380000 = 0024 & 00FF -cpu #0 (PC=00C18D6C): unmapped memory word write to 00380000 = 0009 & 00FF -cpu #0 (PC=00C18C40): unmapped memory word write to 00380000 = 0000 & 00FF -*/ - res = 0; - - switch (mjneogo_select) - { - case 0x00: - res = 0; // nothing? - break; - case 0x09: - res = (readinputport(7) << 8); // a,b,c,d,e,g .... - break; - case 0x12: - res = (readinputport(8) << 8); // h,i,j,k,l ... - break; - case 0x1b: - res = (readinputport(0) << 8); // player 1 normal inputs? - break; - case 0x24: - res = (readinputport(9) << 8); // call etc. - break; - default: - break; - } - - return res + readinputport(3); -} - - - -int neogeo_has_trackball; -static int ts; - -static WRITE16_HANDLER( trackball_select_16_w ) -{ - ts = data & 1; -} - -static READ16_HANDLER( controller1_16_r ) -{ - UINT16 res; - - if (neogeo_has_trackball) - res = (readinputport(ts?7:0) << 8) + readinputport(3); - else - res = (readinputport(0) << 8) + readinputport(3); - - return res; -} -static READ16_HANDLER( controller2_16_r ) -{ - UINT16 res; - - res = (readinputport(1) << 8); - - return res; -} -static READ16_HANDLER( controller3_16_r ) -{ - if (memcard_present() == -1) - return (readinputport(2) << 8); - else - return ((readinputport(2) << 8)&0x8FFF); -} -static READ16_HANDLER( controller4_16_r ) -{ - return (readinputport(6) & ~(readinputport(5) & 0x40)); -} - -static READ16_HANDLER( popbounc1_16_r ) -{ - UINT16 res; - - res = (readinputport(ts?0:7) << 8) + readinputport(3); - - return res; -} - -static READ16_HANDLER( popbounc2_16_r ) -{ - UINT16 res; - - res = (readinputport(ts?1:8) << 8); - - return res; -} - -static WRITE16_HANDLER( neo_bankswitch_w ) -{ - int bankaddress; - - if (memory_region_length(REGION_CPU1) <= 0x100000) - { -logerror("warning: bankswitch to %02x but no banks available\n",data); - return; - } - - data = data&0x7; - bankaddress = (data+1)*0x100000; - if (bankaddress >= memory_region_length(REGION_CPU1)) - { -logerror("PC %06x: warning: bankswitch to empty bank %02x\n",activecpu_get_pc(),data); - bankaddress = 0x100000; - } - - neogeo_set_cpu1_second_bank(bankaddress); -} - - - -/* TODO: Figure out how this really works! */ -static READ16_HANDLER( neo_control_16_r ) -{ - int res; - - /* - The format of this very important location is: AAAA AAAA A??? BCCC - - A is the raster line counter. mosyougi relies solely on this to do the - raster effects on the title screen; sdodgeb loops waiting for the top - bit to be 1; zedblade heavily depends on it to work correctly (it - checks the top bit in the IRQ2 handler). - B is definitely a PAL/NTSC flag. Evidence: - 1) trally changes the position of the speed indicator depending on - it (0 = lower 1 = higher). - 2) samsho3 sets a variable to 60 when the bit is 0 and 50 when it's 1. - This is obviously the video refresh rate in Hz. - 3) samsho3 sets another variable to 256 or 307. This could be the total - screen height (including vblank), or close to that. - Some games (e.g. lstbld2, samsho3) do this (or similar): - bclr #$0, $3c000e.l - when the bit is set, so 3c000e (whose function is unknown) has to be - related - C is a variable speed counter. In blazstar, it controls the background - speed in level 2. - */ - - scanline_read = 1; /* needed for raster_busy optimization */ - - res = ((current_rastercounter << 7) & 0xff80) | /* raster counter */ - (neogeo_frame_counter & 0x0007); /* frame counter */ - - logerror("PC %06x: neo_control_16_r (%04x)\n",activecpu_get_pc(),res); - - return res; -} - - -/* this does much more than this, but I'm not sure exactly what */ -WRITE16_HANDLER( neo_control_16_w ) -{ - logerror("%06x: neo_control_16_w %04x\n",activecpu_get_pc(),data); - - /* Auto-Anim Speed Control */ - neogeo_frame_counter_speed = (data >> 8) & 0xff; - - irq2control = data & 0xff; -} - -static WRITE16_HANDLER( neo_irq2pos_16_w ) -{ - logerror("%06x: neo_irq2pos_16_w offset %d %04x\n",activecpu_get_pc(),offset,data); - - if (offset) - irq2pos_value = (irq2pos_value & 0xffff0000) | (UINT32)data; - else - irq2pos_value = (irq2pos_value & 0x0000ffff) | ((UINT32)data << 16); - - if (irq2control & IRQ2CTRL_LOAD_RELATIVE) - { -// int line = (irq2pos_value + 3) / 0x180; /* ridhero gives 0x17d */ - int line = (irq2pos_value + 0x3b) / 0x180; /* turfmast goes as low as 0x145 */ - - irq2start = current_rasterline + line; - - logerror("irq2start = %d, current_rasterline = %d, current_rastercounter = %d\n",irq2start,current_rasterline,current_rastercounter); - } -} - - - -static READ16_HANDLER ( neogeo_video_r ) -{ - - /* 8-bit reads of the low byte do NOT return the correct value on real hardware */ - /* they actually seem to return 0xcf in tests, but kof2002 requires 0xff for the - 'how to play' screen to work correctly */ - UINT16 retdata=0xffff; - - if (!ACCESSING_MSB) - { - return 0xff; - } - - offset &=0x3; - - switch (offset<<1) - { - case 0: retdata=neogeo_vidram16_data_r(0,mem_mask);break; - case 2: retdata=neogeo_vidram16_data_r(0,mem_mask);break; - case 4: retdata=neogeo_vidram16_modulo_r(0,mem_mask);break; - case 6: retdata=neo_control_16_r(0,mem_mask);break; - } - - return retdata; -} - -static WRITE16_HANDLER( neogeo_video_w ) -{ - int line = RASTER_LINES - cpu_getiloops(); - - /* If Video RAM changes force a partial update to the previous line */ - video_screen_update_partial(0, line-24); // tuned by ssideki4 / msyogui - - - offset &=0x7; - - switch (offset<<1) - { - case 0x0:neogeo_vidram16_offset_w(0,data,mem_mask); break; - case 0x2:neogeo_vidram16_data_w(0,data,mem_mask); break; - case 0x4:neogeo_vidram16_modulo_w(0,data,mem_mask); break; - case 0x6:neo_control_16_w(0,data,mem_mask); break; - case 0x8:neo_irq2pos_16_w(0,data,mem_mask); break; - case 0xa:neo_irq2pos_16_w(1,data,mem_mask); break; - case 0xc:neo_irqack_w(0,data,mem_mask); break; - case 0xe:break; /* Unknown, see control_r */ - } -} - -static WRITE16_HANDLER(neogeo_syscontrol_w) -{ - offset &=0x7f; - - switch (offset<<1) - { - case 0x00: trackball_select_16_w(0,data,mem_mask);break; - - case 0x30: break; // LEDs (latch) - case 0x40: break; // LEDs (send) - - - case 0x50: pd4990a_control_16_w(0,data,mem_mask);break; - case 0x60: break; // coin counters - case 0x62: break; // coin counters - case 0x64: break; // coin lockout - case 0x66: break;// coun lockout - - case 0xd0: pd4990a_control_16_w(0,data,mem_mask);break; - - case 0xe0: break;// coin counters - case 0xe2: break;// coin counters - case 0xe4: break;// coin lockout - case 0xe6: break;// coun lockout - - default: /* put warning message here */ break; - } -} - -static WRITE16_HANDLER( neogeo_syscontrol2_w ) -{ - offset &=0xf; - - switch (offset<<1) - { - /* BIOS Select */ - case 0x00: break; - case 0x02: neogeo_select_bios_vectors(0,data,mem_mask); break; - case 0x04: break; - case 0x06: break; - case 0x08: break; - case 0x0a: neo_board_fix_16_w(0,data,mem_mask);break; - case 0x0c: neogeo_sram16_lock_w(0,data,mem_mask);break; - case 0x0e:neogeo_setpalbank1_16_w(0,data,mem_mask);break; - /*GAME Select */ - case 0x10: break; - case 0x12: neogeo_select_game_vectors(0,data,mem_mask);break; - case 0x14: break; - case 0x16: break; - case 0x18: break; - case 0x1a: neo_game_fix_16_w(0,data,mem_mask);break; - case 0x1c: neogeo_sram16_unlock_w(0,data,mem_mask);break; - case 0x1e: neogeo_setpalbank0_16_w(0,data,mem_mask);break; - } -} - -static READ16_HANDLER(controller1and4_16_r) -{ - UINT16 retvalue=0; - - switch ((offset<<1)&0x80) - { - case 0x00: retvalue = controller1_16_r(0,mem_mask);break; - case 0x80: retvalue = controller4_16_r(0,mem_mask);break; - } - - return retvalue; -} - -/******************************************************************************/ - -/* -Games check for the text '-SNK STG SYSTEM-' at 0xc20010 -if they find it they jump to a subroutine at 0xc200b8. -For and example of this see routine at 0xb013c in kof2002 -*/ - - -/* NeoGeo Memory Map (not finished) * - -0x000000 0x0fffff r/o Rom Bank 1 - -0x100000 0x1fffff r/w Work Ram (0xffff in size, mirrored 16 times) - -0x200000 0x2fffff r/o Rom Bank 2 -0x200000 0x2fffef w/o Protection etc. on some games -0x2ffff0 0x2fffff w/o Banking registers - -0x3c0000 0x3dffff r/w Video Access - -0x400000 0x7fffff r/w Palette (0x1fff in size, mirrored) - -0x800000 0x800fff r/w Mem Card (mirrored?) - -0xc00000 0xcfffff r/o BIOS rom (mirrored 8 times) - -0xd00000 0xdfffff r/w SRAM - -*/ - - -/* Mirroring information thanks to Razoola */ - -static ADDRESS_MAP_START( neogeo_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) /* Rom bank 1 */ - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_BANK1) AM_MIRROR(0x0f0000) /* Ram bank 1 (mirrored to 0x1fffff) */ - AM_RANGE(0x200000, 0x2fffff) AM_READ(MRA16_BANK4) /* Rom bank 2 */ - AM_RANGE(0x300000, 0x31ffff) AM_READ(controller1and4_16_r) /* Inputs */ - AM_RANGE(0x320000, 0x33ffff) AM_READ(timer16_r) /* Coins, Calendar, Z80 communication */ - AM_RANGE(0x340000, 0x35ffff) AM_READ(controller2_16_r) /* Inputs */ - AM_RANGE(0x380000, 0x39ffff) AM_READ(controller3_16_r) /* Inputs */ - AM_RANGE(0x3c0000, 0x3dffff) AM_READ(neogeo_video_r) /* Video Hardware */ - AM_RANGE(0x400000, 0x7fffff) AM_READ(neogeo_paletteram16_r) /* Palette */ - AM_RANGE(0x800000, 0x800fff) AM_READ(neogeo_memcard16_r) /* Memory Card */ - AM_RANGE(0xc00000, 0xc1ffff) AM_READ(MRA16_BANK3) AM_MIRROR(0x0e0000) /* Bios rom (mirrored every 128k for standard bios) */ - AM_RANGE(0xd00000, 0xd0ffff) AM_READ(neogeo_sram16_r) AM_MIRROR(0x0f0000) /* 64k battery backed SRAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( neogeo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) /* ghost pilots writes to ROM */ - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_BANK1) AM_MIRROR(0x0f0000) /* WORK RAM (mirrored to 0x1fffff) */ - /* Some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the rom is read here too */ - AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(neo_bankswitch_w) /* Bankswitch for standard games */ - AM_RANGE(0x300000, 0x31ffff) AM_WRITE(watchdog_reset16_w) /* Watchdog, NOTE, odd addresses only! */ - AM_RANGE(0x320000, 0x33ffff) AM_WRITE(neo_z80_w) /* Sound CPU EVEN BYTES only!*/ - AM_RANGE(0x380000, 0x39ffff) AM_WRITE(neogeo_syscontrol_w) /* Coin Counters, LEDs, Clock etc. */ - AM_RANGE(0x3a0000, 0x3affff) AM_WRITE(neogeo_syscontrol2_w) /* BIOS / Game select etc. */ - AM_RANGE(0x3c0000, 0x3dffff) AM_WRITE(neogeo_video_w) /* Video Hardware */ - AM_RANGE(0x400000, 0x4fffff) AM_WRITE(neogeo_paletteram16_w) /* Palettes */ - AM_RANGE(0x800000, 0x800fff) AM_WRITE(neogeo_memcard16_w) /* Memory card */ - AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(neogeo_sram16_w) AM_BASE(&neogeo_sram16) AM_MIRROR(0x0f0000) /* 64k battery backed SRAM */ -ADDRESS_MAP_END - -/******************************************************************************/ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK5) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_BANK6) - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_BANK7) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_BANK8) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static UINT32 bank[4] = { - 0x08000, - 0x0c000, - 0x0e000, - 0x0f000 -}; - - -static READ8_HANDLER( z80_port_r ) -{ -#if 0 -{ - char buf[80]; - sprintf(buf,"%05x %05x %05x %05x",bank[0],bank[1],bank[2],bank[3]); - popmessage(buf); -} -#endif - - switch (offset & 0xff) - { - case 0x00: - pending_command = 0; - return soundlatch_r(0); - break; - - case 0x04: - return YM2610_status_port_0_A_r(0); - break; - - case 0x05: - return YM2610_read_port_0_r(0); - break; - - case 0x06: - return YM2610_status_port_0_B_r(0); - break; - - case 0x08: - { - UINT8 *mem08 = memory_region(REGION_CPU2); - bank[3] = 0x0800 * ((offset >> 8) & 0x7f) + 0x10000; - memory_set_bankptr(8,&mem08[bank[3]]); - return 0; - break; - } - - case 0x09: - { - UINT8 *mem08 = memory_region(REGION_CPU2); - bank[2] = 0x1000 * ((offset >> 8) & 0x3f) + 0x10000; - memory_set_bankptr(7,&mem08[bank[2]]); - return 0; - break; - } - - case 0x0a: - { - UINT8 *mem08 = memory_region(REGION_CPU2); - bank[1] = 0x2000 * ((offset >> 8) & 0x1f) + 0x10000; - memory_set_bankptr(6,&mem08[bank[1]]); - return 0; - break; - } - - case 0x0b: - { - UINT8 *mem08 = memory_region(REGION_CPU2); - bank[0] = 0x4000 * ((offset >> 8) & 0x0f) + 0x10000; - memory_set_bankptr(5,&mem08[bank[0]]); - return 0; - break; - } - - default: -logerror("CPU #1 PC %04x: read unmapped port %02x\n",activecpu_get_pc(),offset&0xff); - return 0; - break; - } -} - -static WRITE8_HANDLER( z80_port_w ) -{ - switch (offset & 0xff) - { - case 0x04: - YM2610_control_port_0_A_w(0,data); - break; - - case 0x05: - YM2610_data_port_0_A_w(0,data); - break; - - case 0x06: - YM2610_control_port_0_B_w(0,data); - break; - - case 0x07: - YM2610_data_port_0_B_w(0,data); - break; - - case 0x08: - /* NMI enable / acknowledge? (the data written doesn't matter) */ - break; - - case 0x0c: - result_code = data; - break; - - case 0x18: - /* NMI disable? (the data written doesn't matter) */ - break; - - default: -logerror("CPU #1 PC %04x: write %02x to unmapped port %02x\n",activecpu_get_pc(),data,offset&0xff); - break; - } -} - -static ADDRESS_MAP_START( neo_readio, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0xffff) AM_READ(z80_port_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( neo_writeio, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(z80_port_w) -ADDRESS_MAP_END - -/******************************************************************************/ -#define NGIN0\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )\ - -#define NGIN1\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - -#define NGIN2\ - PORT_START_TAG("IN2")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) /* Player 1 Start */\ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7)\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) /* Player 2 Start */\ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8)\ - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card inserted */\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card write protection */\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define NGIN3\ - PORT_START_TAG("DSW")\ - PORT_DIPNAME( 0x01, 0x01, "Test Switch" )\ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x02, 0x02, "Coin Chutes?" )\ - PORT_DIPSETTING( 0x00, "1?" )\ - PORT_DIPSETTING( 0x02, "2?" )\ - PORT_DIPNAME( 0x04, 0x04, "Autofire (in some games)" )\ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x38, 0x38, "COMM Setting" )\ - PORT_DIPSETTING( 0x38, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x30, "1" )\ - PORT_DIPSETTING( 0x20, "2" )\ - PORT_DIPSETTING( 0x10, "3" )\ - PORT_DIPSETTING( 0x00, "4" )\ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) )\ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x80, 0x80, "Freeze" )\ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -#define NGIN4\ - PORT_START_TAG("IN4")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms */\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms */\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) /* handled by fake IN5 */\ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - -#define NGIN6\ - PORT_START_TAG("IN6") /* Test switch */\ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) /* handled by fake IN5 */\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2) - -INPUT_PORTS_START( neogeo ) - NGIN0 - NGIN1 - NGIN2 - NGIN3 - NGIN4 - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 -INPUT_PORTS_END - -INPUT_PORTS_START( svcpcb ) - NGIN0 - NGIN1 - NGIN2 - NGIN3 - NGIN4 - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 - - /* the rom banking is tied directly to the dipswitch?, or is there a bank write somewhere? */ - PORT_START_TAG("HARDDIP") - PORT_DIPNAME( 0x01, 0x00, "Hard Dip 3 (Region)" ) - PORT_DIPSETTING( 0x00, DEF_STR( Asia ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Japan ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( kog ) - NGIN0 - NGIN1 - NGIN2 - NGIN3 - NGIN4 - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 - - /* a jumper on the pcb overlays a rom address, very strange but that's how it works. */ - PORT_START_TAG("JUMPER") - PORT_DIPNAME( 0x01, 0x01, "Jumper (Title)" ) - PORT_DIPSETTING( 0x01, DEF_STR( English ) ) - PORT_DIPSETTING( 0x00, "Non-English" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( mjneogeo ) - NGIN0 - NGIN1 - NGIN2 - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, "Test Switch" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Coin Chutes?" ) - PORT_DIPSETTING( 0x00, "1?" ) - PORT_DIPSETTING( 0x02, "2?" ) - PORT_DIPNAME( 0x04, 0x00, "Mahjong Control Panel" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x38, 0x38, "COMM Setting" ) - PORT_DIPSETTING( 0x38, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x30, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - NGIN4 - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 - - PORT_START_TAG("IN7") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_D ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_F ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_MAHJONG_G ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN8") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_H ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_I ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L ) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_MAHJONG_M ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_MAHJONG_N ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN9") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( irrmaze ) - PORT_START_TAG("IN0") /* IN0 multiplexed */ - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) /* Player 1 Start */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) /* Player 2 Start */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card inserted */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card write protection */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - NGIN3 - NGIN4 - - /* Fake */ - PORT_START_TAG("IN5") - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* This bit is used.. */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2) - - PORT_START_TAG("IN7") /* IN0 multiplexed */ - PORT_BIT( 0xff, 0x7f, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE -INPUT_PORTS_END - -INPUT_PORTS_START( popbounc ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) // note it needs it from 0x80 when using paddle - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // note it needs it from 0x80 when using paddle - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - NGIN2 - NGIN3 - NGIN4 - - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 - - PORT_START_TAG("IN7") /* IN0 multiplexed */ - PORT_BIT( 0xff, 0x7f, IPT_DIAL ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) - - PORT_START_TAG("IN8") /* IN1 multiplexed */ - PORT_BIT( 0xff, 0x7f, IPT_DIAL ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( vliner ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Big") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Small") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Double Up") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Start/Collect") - - NGIN1 /* there is no player 2 in this game */ - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Payout") /* to enable selection in Test Switch */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* This bit is used.. */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) /* there is no player 2 in this game */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* This bit is used.. */ - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card inserted */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card write protection */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - NGIN3 - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out") - - PORT_START_TAG("IN5") - - NGIN6 -INPUT_PORTS_END - -INPUT_PORTS_START( jockeygp ) - NGIN0 - NGIN1 - - PORT_START_TAG("IN2")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card inserted */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* memory card write protection */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - NGIN3 - NGIN4 - /* Fake*/ - PORT_START_TAG("IN5") - - NGIN6 -INPUT_PORTS_END - - -/******************************************************************************/ - -/* character layout (same for all games) */ -static const gfx_layout charlayout = /* All games */ -{ - 8,8, /* 8 x 8 chars */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, /* planes are packed in a nibble */ - { 33*4, 32*4, 49*4, 48*4, 1*4, 0*4, 17*4, 16*4 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 32*8 /* 32 bytes per char */ -}; - -/* Placeholder and also reminder of how this graphic format is put together */ -static const gfx_layout dummy_mvs_tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, - { GFX_RAW }, - { 0 }, /* org displacement */ - { 8*8 }, /* line modulo */ - 128*8 /* char modulo */ -}; - -static const gfx_decode neogeo_mvs_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &charlayout, 0, 16 }, - { REGION_GFX3, 0, &dummy_mvs_tilelayout, 0, 256 }, - { -1 } /* end of array */ -}; - -/******************************************************************************/ - -static void neogeo_sound_irq( int irq ) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -struct YM2610interface neogeo_ym2610_interface = -{ - neogeo_sound_irq, - REGION_SOUND2, - REGION_SOUND1 -}; - -/******************************************************************************/ - -/* - - - The watchdog timer will reset the system after ~0.13 seconds - On an MV-1F MVS system, the following code was used to test: - 000100 203C 0001 4F51 MOVE.L #0x14F51,D0 - 000106 13C0 0030 0001 MOVE.B D0,0x300001 - 00010C 5380 SUBQ.L #1,D0 - 00010E 64FC BCC.S *-0x2 [0x10C] - 000110 13C0 0030 0001 MOVE.B D0,0x300001 - 000116 60F8 BRA.S *-0x6 [0x110] - This code loops long enough to sometimes cause a reset, sometimes not. - The move takes 16 cycles, subq 8, bcc 10 if taken and 8 if not taken, so: - (0x14F51 * 18 + 14) cycles / 12000000 cycles per second = 0.128762 seconds - Newer games force a reset using the following code (this from kof99): - 009CDA 203C 0003 0D40 MOVE.L #0x30D40,D0 - 009CE0 5380 SUBQ.L #1,D0 - 009CE2 64FC BCC.S *-0x2 [0x9CE0] - Note however that there is a valid code path after this loop. - - ----- - - The watchdog is used as a form of protecetion on a number of games, - previously this was implemented as a specific hack which locked a single - address of SRAM. - - What actually happens is if the game doesn't find valid data in the - backup ram it will initialize it, then sit in a loop. The watchdog - should then reset the system while it is in this loop. If the watchdog - fails to reset the system the code will continue and set a value in - backup ram to indiate that the protection check has failed. - -*/ - - -static MACHINE_DRIVER_START( neogeo ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 12000000) /* verified */ - MDRV_CPU_PROGRAM_MAP(neogeo_readmem,neogeo_writemem) - MDRV_CPU_VBLANK_INT(neogeo_raster_interrupt,RASTER_LINES) - - MDRV_CPU_ADD(Z80, 4000000) /* verified */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(neo_readio,neo_writeio) - - MDRV_SCREEN_REFRESH_RATE(15625.0 / 264) /* verified with real PCB */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_WATCHDOG_TIME_INIT(TIME_IN_SEC(0.128762)) - - MDRV_MACHINE_START(neogeo) - MDRV_MACHINE_RESET(neogeo) - MDRV_NVRAM_HANDLER(neogeo) - MDRV_MEMCARD_HANDLER(neogeo) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(neogeo_mvs_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(neogeo_mvs) - MDRV_VIDEO_UPDATE(neogeo) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(neogeo_ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.60) - MDRV_SOUND_ROUTE(0, "right", 0.60) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -/******************************************************************************/ - -/**** - These are the known Bios Roms, Set options.bios to the one you want - ****/ - -SYSTEM_BIOS_START( neogeo ) - SYSTEM_BIOS_ADD( 0, "euro", "Europe MVS (Ver. 2)" ) - SYSTEM_BIOS_ADD( 1, "euro-s1", "Europe MVS (Ver. 1)" ) - SYSTEM_BIOS_ADD( 2, "us", "US MVS (Ver. 2?)" ) - SYSTEM_BIOS_ADD( 3, "us-e", "US MVS (Ver. 1)" ) - SYSTEM_BIOS_ADD( 4, "asia", "Asia MVS (Ver. 3)" ) - SYSTEM_BIOS_ADD( 5, "japan", "Japan MVS (Ver. 3)" ) - SYSTEM_BIOS_ADD( 6, "japan-s2", "Japan MVS (Ver. 2)" ) - SYSTEM_BIOS_ADD( 7, "japan-s1", "Japan MVS (Ver. 1)" ) - -// SYSTEM_BIOS_ADD( 8, "uni-bios.10","Unibios MVS (Hack, Ver. 1.0)" ) -// SYSTEM_BIOS_ADD( 9, "uni-bios.11","Unibios MVS (Hack, Ver. 1.1)" ) -// SYSTEM_BIOS_ADD(10, "debug", "Debug MVS (Hack?)" ) -// SYSTEM_BIOS_ADD(11, "asia-aes", "Asia AES" ) -SYSTEM_BIOS_END - -#define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \ - ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */ - -#define NEOGEO_BIOS \ - ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543) ) /* Europe, 1 Slot, has also been found on a 4 Slot (the old hacks were designed for this one) */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 2, "usa_2slt.bin", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 4, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 5, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp-j2.rom", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \ - ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1.jipan.1024",0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \ - -// ROM_LOAD16_WORD_SWAP_BIOS( 8, "uni-bios.10", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */ -// ROM_LOAD16_WORD_SWAP_BIOS( 9, "uni-bios.11", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ -// ROM_LOAD16_WORD_SWAP_BIOS(10, "neodebug.rom", 0x00000, 0x020000, CRC(698ebb7d) SHA1(081c49aa8cc7dad5939833dc1b18338321ea0a07) ) /* Debug (Development) Bios */ -// ROM_LOAD16_WORD_SWAP_BIOS(11, "aes-bios.bin", 0x00000, 0x020000, CRC(d27a71f1) SHA1(1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07) ) /* AES Console (Asia?) Bios */ - -/* note you'll have to modify the last for lines of each block to use the extra bios roms, - they're hacks / homebrew / console bios roms so Mame doesn't list them by default */ - - - -/* we only have one irritating maze bios and thats asia */ -#define IRRMAZE_BIOS \ - ROM_LOAD16_WORD_SWAP( "236-bios.bin", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) ) \ - -#define NEO_BIOS_SOUND_512K(name,sum) \ - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) \ - NEOGEO_BIOS \ - ROM_REGION( 0x90000, REGION_CPU2, 0 ) \ - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) /* we don't use the BIOS anyway... */ \ - ROM_LOAD( name, 0x00000, 0x80000, sum ) /* so overwrite it with the real thing */ \ - ROM_RELOAD( 0x10000, 0x80000 ) \ - ROM_REGION( 0x10000, REGION_GFX4, 0 ) \ - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - -#define NEO_BIOS_SOUND_256K(name,sum) \ - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) \ - NEOGEO_BIOS \ - ROM_REGION( 0x50000, REGION_CPU2, 0 ) \ - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) /* we don't use the BIOS anyway... */ \ - ROM_LOAD( name, 0x00000, 0x40000, sum ) /* so overwrite it with the real thing */ \ - ROM_RELOAD( 0x10000, 0x40000 ) \ - ROM_REGION( 0x10000, REGION_GFX4, 0 ) \ - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - -#define NEO_BIOS_SOUND_128K(name,sum) \ - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) \ - NEOGEO_BIOS \ - ROM_REGION( 0x50000, REGION_CPU2, 0 ) \ - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) /* we don't use the BIOS anyway... */ \ - ROM_LOAD( name, 0x00000, 0x20000, sum ) /* so overwrite it with the real thing */ \ - ROM_RELOAD( 0x10000, 0x20000 ) \ - ROM_REGION( 0x10000, REGION_GFX4, 0 ) \ - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - -#define NEO_BIOS_SOUND_64K(name,sum) \ - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) \ - NEOGEO_BIOS \ - ROM_REGION( 0x50000, REGION_CPU2, 0 ) \ - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) /* we don't use the BIOS anyway... */ \ - ROM_LOAD( name, 0x00000, 0x10000, sum ) /* so overwrite it with the real thing */ \ - ROM_RELOAD( 0x10000, 0x10000 ) \ - ROM_REGION( 0x10000, REGION_GFX4, 0 ) \ - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - -#define NO_DELTAT_REGION - -#define NEO_SFIX_128K(name, hash) \ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) \ - ROM_LOAD( name, 0x000000, 0x20000, hash ) \ - ROM_REGION( 0x20000, REGION_GFX2, 0 ) \ - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - -#define NEO_SFIX_64K(name, hash) \ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) \ - ROM_LOAD( name, 0x000000, 0x10000, hash ) \ - ROM_REGION( 0x20000, REGION_GFX2, 0 ) \ - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - -#define NEO_SFIX_32K(name, hash) \ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) \ - ROM_LOAD( name, 0x000000, 0x08000, hash ) \ - ROM_REGION( 0x20000, REGION_GFX2, 0 ) \ - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - -/******************************************************************************/ - -ROM_START( nam1975 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "001-p1.bin", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) ) - - NEO_SFIX_64K( "001-s1.bin", CRC(8ded55a5) SHA1(27c8ffac16fbcc19c843d1b5b47ae8d8ef83d44a) ) - - NEO_BIOS_SOUND_64K( "001-m1.bin", CRC(cd088502) SHA1(939f745cd576905f326e6246a2eed78e9fa88178) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "001-v11.bin", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) - - ROM_REGION( 0x180000, REGION_SOUND2, 0 ) - ROM_LOAD( "001-v21.bin", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) - ROM_LOAD( "001-v22.bin", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) - ROM_LOAD( "001-v23.bin", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "001-c1.bin", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "001-c2.bin", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "001-c3.bin", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "001-c4.bin", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "001-c5.bin", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "001-c6.bin", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( bstars ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "002-p1.bin", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) ) - - NEO_SFIX_128K( "002-s1.bin", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) - - NEO_BIOS_SOUND_64K( "002-m1.bin", CRC(79a8f4c2) SHA1(08ca2b72fd9b0ed068dc918ecda51d13203a3481) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "002-v11.bin", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) - ROM_LOAD( "002-v12.bin", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) - ROM_LOAD( "002-v13.bin", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) - ROM_LOAD( "002-v14.bin", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "002-v21.bin", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "002-c1.bin", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) - ROM_LOAD16_BYTE( "002-c2.bin", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) - ROM_LOAD16_BYTE( "002-c3.bin", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) ) - ROM_LOAD16_BYTE( "002-c4.bin", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) ) - ROM_LOAD16_BYTE( "002-c5.bin", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) ) - ROM_LOAD16_BYTE( "002-c6.bin", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) ) -ROM_END - -ROM_START( tpgolf ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "003-p1.bin", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) ) - ROM_LOAD16_WORD_SWAP( "003-p2.bin", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) ) - - NEO_SFIX_128K( "003-s1.bin", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) - - NEO_BIOS_SOUND_64K( "003-m1.bin", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "003-v11.bin", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) - - ROM_REGION( 0x200000, REGION_SOUND2, 0 ) - ROM_LOAD( "003-v21.bin", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) - ROM_LOAD( "003-v22.bin", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) - ROM_LOAD( "003-v23.bin", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) ) - ROM_LOAD( "003-v24.bin", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) ) - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "003-c1.bin", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) ) - ROM_LOAD16_BYTE( "003-c2.bin", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) ) - ROM_LOAD16_BYTE( "003-c3.bin", 0x100000, 0x80000, CRC(b09f1612) SHA1(03fbb5db4e377ce9cb4e65ddbc0b114c02e7bae1) ) - ROM_LOAD16_BYTE( "003-c4.bin", 0x100001, 0x80000, CRC(150ea7a1) SHA1(13edc30144b56285ef37eb8aa6fb934704de18d8) ) - ROM_LOAD16_BYTE( "003-c5.bin", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) ) - ROM_LOAD16_BYTE( "003-c6.bin", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) ) - ROM_LOAD16_BYTE( "003-c7.bin", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) ) - ROM_LOAD16_BYTE( "003-c8.bin", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) ) -ROM_END - -ROM_START( mahretsu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "004-p1.bin", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) ) - - NEO_SFIX_64K( "004-s1.bin", CRC(b0d16529) SHA1(1483a3459309596ee3ecff68bdbde0809d82dd7a) ) - - NEO_BIOS_SOUND_64K( "004-m1.bin", CRC(37965a73) SHA1(61ad03c74169f9f50a37048fb74300ee926ee766) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "004-v1.bin", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) ) - ROM_LOAD( "004-v2.bin", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) ) - - ROM_REGION( 0x180000, REGION_SOUND2, 0 ) - ROM_LOAD( "004-v3.bin", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) ) - ROM_LOAD( "004-v4.bin", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) ) - ROM_LOAD( "004-v5.bin", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) ) - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "004-c1.bin", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "004-c2.bin", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "004-c3.bin", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "004-c4.bin", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) ) /* Plane 2,3 */ -ROM_END - -ROM_START( maglord ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "005-p1.bin", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) ) - - NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) - - NEO_BIOS_SOUND_64K( "005-m1.bin", CRC(91ee1f73) SHA1(f060728543333a99216cc2879f7666a1f4235068) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "005-v11.bin", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) - ROM_LOAD( "005-v21.bin", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) - ROM_LOAD( "005-v22.bin", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "005-c1.bin", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c2.bin", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "005-c3.bin", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c4.bin", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "005-c5.bin", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c6.bin", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( maglordh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "005-p1h.bin", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) ) - - NEO_SFIX_128K( "005-s1.bin", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) - - NEO_BIOS_SOUND_64K( "005-m1.bin", CRC(91ee1f73) SHA1(f060728543333a99216cc2879f7666a1f4235068) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "005-v11.bin", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) - ROM_LOAD( "005-v21.bin", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) - ROM_LOAD( "005-v22.bin", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "005-c1.bin", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c2.bin", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "005-c3.bin", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c4.bin", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "005-c5.bin", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "005-c6.bin", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ridhero ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "006-p1.bin", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) ) - - NEO_SFIX_64K( "006-s1.bin", CRC(197d1a28) SHA1(3f6ec453ebdead50c9fabd71071817b699a8a82c) ) - - NEO_BIOS_SOUND_128K( "006-m1.bin", CRC(f0b6425d) SHA1(ba90c665d3e84c40d0383be64b1399ba831c0cfc) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "006-v11.bin", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) - ROM_LOAD( "006-v12.bin", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) - - ROM_REGION( 0x200000, REGION_SOUND2, 0 ) - ROM_LOAD( "006-v21.bin", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) - ROM_LOAD( "006-v22.bin", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) - ROM_LOAD( "006-v23.bin", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) - ROM_LOAD( "006-v24.bin", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "006-c1.bin", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "006-c2.bin", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "006-c3.bin", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "006-c4.bin", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ridheroh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "006-p1h.bin", 0x000000, 0x080000, CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) ) - - NEO_SFIX_64K( "006-s1.bin", CRC(197d1a28) SHA1(3f6ec453ebdead50c9fabd71071817b699a8a82c) ) - - NEO_BIOS_SOUND_128K( "006-m1.bin", CRC(f0b6425d) SHA1(ba90c665d3e84c40d0383be64b1399ba831c0cfc) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "006-v11.bin", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) - ROM_LOAD( "006-v12.bin", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) - - ROM_REGION( 0x200000, REGION_SOUND2, 0 ) - ROM_LOAD( "006-v21.bin", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) - ROM_LOAD( "006-v22.bin", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) - ROM_LOAD( "006-v23.bin", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) - ROM_LOAD( "006-v24.bin", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "006-c1.bin", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "006-c2.bin", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "006-c3.bin", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "006-c4.bin", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) ) /* Plane 2,3 */ -ROM_END - -ROM_START( alpham2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "007-p1.bin", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) ) - ROM_LOAD16_WORD_SWAP( "007-p2.bin", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) ) - - NEO_SFIX_128K( "007-s1.bin", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) - - NEO_BIOS_SOUND_128K( "007-m1.bin", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "007-v1.bin", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) ) - ROM_LOAD( "007-v2.bin", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "007-c1.bin", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "007-c2.bin", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "007-c3.bin", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "007-c4.bin", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ncombat ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "009-p1.bin", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) - - NEO_SFIX_128K( "009-s1.bin", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) - - NEO_BIOS_SOUND_128K( "009-m1.bin", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) - ROM_LOAD( "009-v11.bin", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) - ROM_LOAD( "009-v12.bin", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) - ROM_LOAD( "009-v13.bin", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "009-v21.bin", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "009-c1.bin", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c2.bin", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "009-c3.bin", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c4.bin", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "009-c5.bin", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c6.bin", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ncombata ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "009-pg1.bin", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) ) - - NEO_SFIX_128K( "009-s1.bin", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) - - NEO_BIOS_SOUND_128K( "009-m1.bin", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) - ROM_LOAD( "009-v11.bin", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) - ROM_LOAD( "009-v12.bin", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) - ROM_LOAD( "009-v13.bin", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "009-v21.bin", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "009-c1.bin", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c2.bin", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "009-c3.bin", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c4.bin", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "009-c5.bin", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "009-c6.bin", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( cyberlip ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "010-p1.bin", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) ) - - NEO_SFIX_128K( "010-s1.bin", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) - - NEO_BIOS_SOUND_64K( "010-m1.bin", CRC(47980d3a) SHA1(afd7be531d2ba69400dff5927202446873266c06) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "010-v11.bin", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) - ROM_LOAD( "010-v12.bin", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) - ROM_LOAD( "010-v13.bin", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) - ROM_LOAD( "010-v14.bin", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "010-v21.bin", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "010-c1.bin", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "010-c2.bin", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "010-c3.bin", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "010-c4.bin", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "010-c5.bin", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "010-c6.bin", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) ) /* Plane 2,3 */ -ROM_END - -ROM_START( superspy ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "011-p1.bin", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) ) - ROM_LOAD16_WORD_SWAP( "011-p2.bin", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) ) - - NEO_SFIX_128K( "011-s1.bin", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) - - NEO_BIOS_SOUND_128K( "011-m1.bin", CRC(d59d5d12) SHA1(0692b6f35c9ee3840f945703c4eb51ab83eb0714) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "011-v11.bin", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) ) - ROM_LOAD( "011-v12.bin", 0x100000, 0x100000, CRC(7df8898b) SHA1(23dd6df47fa51b210af800ae551295300e125106) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) - ROM_LOAD( "011-v21.bin", 0x000000, 0x100000, CRC(1ebe94c7) SHA1(c186810523a7df880cb080c62aa322bbcaefca17) ) - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "011-c1.bin", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "011-c2.bin", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "011-c3.bin", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "011-c4.bin", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mutnat ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "014-p1.bin", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) ) - - NEO_SFIX_128K( "014-s1.bin", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) - - NEO_BIOS_SOUND_128K( "014-m1.bin", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "014-v1.bin", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) ) - ROM_LOAD( "014-v2.bin", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "014-c1.bin", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "014-c2.bin", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "014-c3.bin", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "014-c4.bin", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kotm ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "016-p1.bin", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) ) - ROM_LOAD16_WORD_SWAP( "016-p2.bin", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) - - NEO_SFIX_128K( "016-s1.bin", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) - - NEO_BIOS_SOUND_128K( "016-m1.bin", CRC(0296abcb) SHA1(560046f256cd339fa685d0d38d55317cb6adfa99) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "016-v1.bin", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) - ROM_LOAD( "016-v2.bin", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "016-c1.bin", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "016-c2.bin", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "016-c3.bin", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "016-c4.bin", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kotmh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "016-hp1.bin",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) - ROM_LOAD16_WORD_SWAP( "016-p2.bin", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) - - NEO_SFIX_128K( "016-s1.bin", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) - - NEO_BIOS_SOUND_128K( "016-m1.bin", CRC(0296abcb) SHA1(560046f256cd339fa685d0d38d55317cb6adfa99) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "016-v1.bin", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) ) - ROM_LOAD( "016-v2.bin", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "016-c1.bin", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "016-c2.bin", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "016-c3.bin", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "016-c4.bin", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( sengoku ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "017-p1.bin", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) ) - ROM_LOAD16_WORD_SWAP( "017-p2.bin", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) - - NEO_SFIX_128K( "017-s1.bin", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) - - NEO_BIOS_SOUND_128K( "017-m1.bin", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "017-v1.bin", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) - ROM_LOAD( "017-v2.bin", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "017-c1.bin", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "017-c2.bin", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "017-c3.bin", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "017-c4.bin", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ -ROM_END - -ROM_START( sengokh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "017-p1h.bin", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) ) - ROM_LOAD16_WORD_SWAP( "017-p2.bin", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) ) - - NEO_SFIX_128K( "017-s1.bin", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) - - NEO_BIOS_SOUND_128K( "017-m1.bin", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "017-v1.bin", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) ) - ROM_LOAD( "017-v2.bin", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "017-c1.bin", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "017-c2.bin", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "017-c3.bin", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "017-c4.bin", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) ) /* Plane 2,3 */ -ROM_END - -ROM_START( burningf ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "018-p1.bin", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) ) - - NEO_SFIX_128K( "018-s1.bin", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) - - NEO_BIOS_SOUND_128K( "018-m1.bin", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "018-v1.bin", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) - ROM_LOAD( "018-v2.bin", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "018-c1.bin", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "018-c2.bin", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "018-c3.bin", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "018-c4.bin", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ -ROM_END - -ROM_START( burningh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "018-p1h.bin", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) ) - - NEO_SFIX_128K( "018-s1.bin", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) - - NEO_BIOS_SOUND_128K( "018-m1.bin", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "018-v1.bin", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) ) - ROM_LOAD( "018-v2.bin", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "018-c1.bin", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "018-c2.bin", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "018-c3.bin", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "018-c4.bin", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lbowling ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "019-p1.bin", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) ) - - NEO_SFIX_128K( "019-s1.bin", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) - - NEO_BIOS_SOUND_128K( "019-m1.bin", CRC(589d7f25) SHA1(9cffbf0a607a7c7f5bc21cf6d33c5b21c3354913) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "019-v11.bin", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) - ROM_LOAD( "019-v12.bin", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "019-v21.bin", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "019-c1.bin", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) ) - ROM_LOAD16_BYTE( "019-c2.bin", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) ) -ROM_END - -ROM_START( gpilots ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "020-p1.bin", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) ) - ROM_LOAD16_WORD_SWAP( "020-p2.bin", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) ) - - NEO_SFIX_128K( "020-s1.bin", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) - - NEO_BIOS_SOUND_128K( "020-m1.bin", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) - ROM_LOAD( "020-v11.bin", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) ) - ROM_LOAD( "020-v12.bin", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "020-v21.bin", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "020-c1.bin", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) ) - ROM_LOAD16_BYTE( "020-c2.bin", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) ) - ROM_LOAD16_BYTE( "020-c3.bin", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) ) - ROM_LOAD16_BYTE( "020-c4.bin", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) ) -ROM_END - -ROM_START( joyjoy ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "021-p1.bin", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) ) - - NEO_SFIX_128K( "021-s1.bin", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) - - NEO_BIOS_SOUND_64K( "021-m1.bin", CRC(058683ec) SHA1(2aff3dc18d078911ed3a09d48664faf5958b4ab5) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "021-v1.bin", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) - ROM_LOAD( "021-v2.bin", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "021-c1.bin", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) ) - ROM_LOAD16_BYTE( "021-c2.bin", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) ) -ROM_END - -ROM_START( bjourney ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "022-p1.bin", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) ) - - NEO_SFIX_128K( "022-s1.bin", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) - - NEO_BIOS_SOUND_64K( "022-m1.bin", CRC(a9e30496) SHA1(c7a42dc64007408fd9b3b9d3a54c523da3acf475) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "022-v11.bin", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) ) - ROM_LOAD( "022-v22.bin", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "022-c1.bin", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) ) - ROM_LOAD16_BYTE( "022-c2.bin", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) ) - ROM_LOAD16_BYTE( "022-c3.bin", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) ) - ROM_LOAD16_BYTE( "022-c4.bin", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) ) -ROM_END - -ROM_START( quizdais ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "023-p1.bin", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) ) - - NEO_SFIX_128K( "023-s1.bin", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) ) - - NEO_BIOS_SOUND_128K( "023-m1.bin", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "023-v1.bin", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "023-c1.bin", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "023-c2.bin", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lresort ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "024-p1.bin", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) ) - - NEO_SFIX_128K( "024-s1.bin", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) - - NEO_BIOS_SOUND_128K( "024-m1.bin", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "024-v1.bin", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) ) - ROM_LOAD( "024-v2.bin", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "024-c1.bin", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) ) - ROM_LOAD16_BYTE( "024-c2.bin", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) ) - ROM_LOAD16_BYTE( "024-c3.bin", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) ) - ROM_LOAD16_BYTE( "024-c4.bin", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) ) -ROM_END - -ROM_START( eightman ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "025-p1.bin", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) ) - - NEO_SFIX_128K( "025-s1.bin", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) - - NEO_BIOS_SOUND_128K( "025-m1.bin", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "025-v1.bin", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) ) - ROM_LOAD( "025-v2.bin", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "025-c1.bin", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "025-c2.bin", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "025-c3.bin", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "025-c4.bin", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) ) /* Plane 2,3 */ -ROM_END - -ROM_START( minasan ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "027-p1.bin", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) ) - - NEO_SFIX_128K( "027-s1.bin", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) - - NEO_BIOS_SOUND_128K( "027-m1.bin", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "027-v11.bin", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) - ROM_LOAD( "027-v21.bin", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) ) - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "027-c1.bin", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "027-c2.bin", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "027-c3.bin", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "027-c4.bin", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( legendos ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "029-p1.bin", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) ) - - NEO_SFIX_128K( "029-s1.bin", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) ) - - NEO_BIOS_SOUND_64K( "029-m1.bin", CRC(909d4ed9) SHA1(5230b423b3f629bb955a5b2dab7e502fa7d83254) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "029-v1.bin", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "029-c1.bin", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "029-c2.bin", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "029-c3.bin", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "029-c4.bin", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) ) /* Plane 2,3 */ -ROM_END - -ROM_START( 2020bb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "030-p1.bin", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) ) - - NEO_SFIX_128K( "030-s1.bin", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) - - NEO_BIOS_SOUND_128K( "030-m1.bin", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "030-v1.bin", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) - ROM_LOAD( "030-v2.bin", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "030-c1.bin", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c2.bin", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "030-c3.bin", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c4.bin", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ -ROM_END - -ROM_START( 2020bba ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "030-p1.rom", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) ) - - NEO_SFIX_128K( "030-s1.bin", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) - - NEO_BIOS_SOUND_128K( "030-m1.bin", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "030-v1.bin", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) - ROM_LOAD( "030-v2.bin", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "030-c1.bin", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c2.bin", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "030-c3.bin", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c4.bin", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ -ROM_END - -ROM_START( 2020bbh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "030-p1h.bin", 0x000000, 0x080000, CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) ) - - NEO_SFIX_128K( "030-s1.bin", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) - - NEO_BIOS_SOUND_128K( "030-m1.bin", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "030-v1.bin", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) ) - ROM_LOAD( "030-v2.bin", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "030-c1.bin", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c2.bin", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "030-c3.bin", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "030-c4.bin", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) ) /* Plane 2,3 */ -ROM_END - -ROM_START( socbrawl ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "031-p1.bin", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) ) - - NEO_SFIX_64K( "031-s1.bin", CRC(2db38c3b) SHA1(8f23b32f3abd3faed0ca238938ce6a2b6d75ee10) ) - - NEO_BIOS_SOUND_64K( "031-m1.bin", CRC(2f38d5d3) SHA1(0fc01750277e554978e68e7e6d596f8bd6b1e178) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "031-v1.bin", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) ) - ROM_LOAD( "031-v2.bin", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "031-c1.bin", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "031-c2.bin", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "031-c3.bin", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "031-c4.bin", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) ) /* Plane 2,3 */ -ROM_END - -ROM_START( roboarmy ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "032-p1.bin", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) - - NEO_SFIX_128K( "032-s1.bin", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) - - NEO_BIOS_SOUND_128K( "032-m1.bin", CRC(98edc671) SHA1(04ed65ccaa1197fa55fcefe2caed2772e7040bdb) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "032-v1.bin", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) - ROM_LOAD( "032-v2.bin", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "032-c1.bin", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "032-c2.bin", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "032-c3.bin", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "032-c4.bin", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( roboarma ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "032-p1h.bin", 0x000000, 0x080000, CRC(27c773cb) SHA1(597ca73f142b1129cc7780540bb9cfacd47bc6ce) ) - - NEO_SFIX_128K( "032-s1.bin", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) - - NEO_BIOS_SOUND_128K( "032-m1h.bin", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "032-v1.bin", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) - ROM_LOAD( "032-v2.bin", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "032-c1.bin", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "032-c2.bin", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "032-c3.bin", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "032-c4.bin", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fatfury1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "033-p1.bin", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) - ROM_LOAD16_WORD_SWAP( "033-p2.bin", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) - - NEO_SFIX_128K( "033-s1.bin", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) - - NEO_BIOS_SOUND_128K( "033-m1.bin", CRC(a8603979) SHA1(512f2280a43892d4ca003ac63945ce86c5211b97) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "033-v1.bin", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) - ROM_LOAD( "033-v2.bin", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "033-c1.bin", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "033-c2.bin", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "033-c3.bin", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "033-c4.bin", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fbfrenzy ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "034-p1.bin", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) ) - - NEO_SFIX_128K( "034-s1.bin", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) - - NEO_BIOS_SOUND_128K( "034-m1.bin", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "034-v1.bin", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) ) - ROM_LOAD( "034-v2.bin", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "034-c1.bin", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "034-c2.bin", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "034-c3.bin", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "034-c4.bin", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) ) /* Plane 2,3 */ -ROM_END - -ROM_START( bakatono ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "036-p1.bin", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) ) - - NEO_SFIX_128K( "036-s1.bin", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) - - NEO_BIOS_SOUND_128K( "036-m1.bin", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "036-v1.bin", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) ) - ROM_LOAD( "036-v2.bin", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "036-c1.bin", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "036-c2.bin", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "036-c3.bin", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "036-c4.bin", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) ) /* Plane 2,3 */ -ROM_END - -ROM_START( crsword ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "037-p1.bin", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) ) - - NEO_SFIX_128K( "037-s1.bin", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) - - NEO_BIOS_SOUND_128K( "037-m1.bin", CRC(9c384263) SHA1(74b86284048669e316c5d241b4aaeb02d59d4dfa) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "037-v1.bin", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "037-c1.bin", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "037-c2.bin", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "037-c3.bin", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "037-c4.bin", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( trally ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "038-p1.bin", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) ) - ROM_LOAD16_WORD_SWAP( "038-p2.bin", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) ) - - NEO_SFIX_128K( "038-s1.bin", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) - - NEO_BIOS_SOUND_128K( "038-m1.bin", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) - ROM_LOAD( "038-v1.bin", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) ) - ROM_LOAD( "038-v2.bin", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "038-c1.bin", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "038-c2.bin", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "038-c3.bin", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "038-c4.bin", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kotm2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "039-p1.bin", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) ) - ROM_LOAD16_WORD_SWAP( "039-p2.bin", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) ) - - NEO_SFIX_128K( "039-s1.bin", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) ) - - NEO_BIOS_SOUND_128K( "039-m1.bin", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "039-v2.bin", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) ) - ROM_LOAD( "039-v4.bin", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "039-c1.bin", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "039-c2.bin", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "039-c3.bin", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "039-c4.bin", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) ) /* Plane 2,3 */ -ROM_END - -ROM_START( sengoku2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "040-p1.bin", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) ) - - NEO_SFIX_128K( "040-s1.bin", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) - -// NEO_BIOS_SOUND_128K( "040-m1o.bin", CRC(9902dfa2) SHA1(af6284c5298328156726b76b968995ad25fdf4de) ) // old rom, bad?, diff rev? - NEO_BIOS_SOUND_128K( "040-m1.bin", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "040-v1.bin", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) ) - ROM_LOAD( "040-v2.bin", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "040-c1.bin", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "040-c2.bin", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "040-c3.bin", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "040-c4.bin", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) ) /* Plane 2,3 */ -ROM_END - -ROM_START( bstars2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "041-p1.bin", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) ) - - NEO_SFIX_128K( "041-s1.bin", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) ) - - NEO_BIOS_SOUND_64K( "041-m1.bin", CRC(b2611c03) SHA1(a2c8b850b53e445edabdfd44f05c64de596618b8) ) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "041-v1.bin", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) ) - ROM_LOAD( "041-v2.bin", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) ) - ROM_LOAD( "041-v3.bin", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "041-c1.bin", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) ) - ROM_LOAD16_BYTE( "041-c2.bin", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) ) - ROM_LOAD16_BYTE( "041-c3.bin", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) ) - ROM_LOAD16_BYTE( "041-c4.bin", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) ) -ROM_END - -ROM_START( quizdai2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "042-p1.bin", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) ) - - NEO_SFIX_128K( "042-s1.bin", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) ) - - NEO_BIOS_SOUND_128K( "042-m1.bin", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "042-v1.bin", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) ) - ROM_LOAD( "042-v2.bin", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x300000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "042-c1.bin", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "042-c2.bin", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "042-c3.bin", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "042-c4.bin", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) ) /* Plane 2,3 */ -ROM_END - -/* -3countb > corrected Cx - > do P1 & P2 set exist ? my set is 8Mbit P1 -*/ - -ROM_START( 3countb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "043-p1.bin", 0x000000, 0x080000, CRC(eb2714c4) SHA1(ba5dbfee4160f27ff36060b777d64b93dc2e929c) ) - ROM_LOAD16_WORD_SWAP( "043-p2.bin", 0x080000, 0x080000, CRC(5e764567) SHA1(3e34d051e8e1483073e4fcce0b688e50a1e713ce) ) - - NEO_SFIX_128K( "043-s1.bin", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) - - NEO_BIOS_SOUND_128K( "043-m1.bin", CRC(3377cda3) SHA1(5712cd0717585914120ebf307391e1e3171f5396) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "043-v1.bin", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) - ROM_LOAD( "043-v2.bin", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x0800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "043-c1.bin", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "043-c2.bin", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) ) - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "043-c3.bin", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) ) - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "043-c4.bin", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) ) - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -ROM_START( aof ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "044-p1.bin", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) - - NEO_SFIX_128K( "044-s1.bin", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) - - NEO_BIOS_SOUND_128K( "044-m1.bin", CRC(981345f8) SHA1(5eb6a5a3f633d74a48555808e2562a0ba16d8675) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "044-v2.bin", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) ) - ROM_LOAD( "044-v4.bin", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "044-c1.bin", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "044-c2.bin", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "044-c3.bin", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "044-c4.bin", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -ROM_START( samsho ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "045-p1.bin", 0x000000, 0x080000, CRC(80aa6c97) SHA1(6e07a4aa7b4719ae487a10cee9389cb55a370a7a) ) - ROM_LOAD16_WORD_SWAP( "045-p2.bin", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) ) - ROM_LOAD16_WORD_SWAP( "045-p3.bin", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) ) - - NEO_SFIX_128K( "045-s1.bin", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) - - NEO_BIOS_SOUND_128K( "045-m1.bin", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "045-v1.bin", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) ) - ROM_LOAD( "045-v2.bin", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x900000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "045-c1.bin", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "045-c2.bin", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "045-c3.bin", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "045-c4.bin", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "045-c5.bin", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "045-c6.bin", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ -ROM_END - -ROM_START( tophuntr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "046-p1.bin", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) ) - ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) - - NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) - - NEO_BIOS_SOUND_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) - ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) - ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) - ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ -ROM_END - -ROM_START( tophunta ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "046-pg1.bin",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) ) - ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) ) - - NEO_SFIX_128K( "046-s1.bin", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) ) - - NEO_BIOS_SOUND_128K( "046-m1.bin", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "046-v1.bin", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) ) - ROM_LOAD( "046-v2.bin", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) ) - ROM_LOAD( "046-v3.bin", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) ) - ROM_LOAD( "046-v4.bin", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "046-c1.bin", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c2.bin", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c3.bin", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c4.bin", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c5.bin", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c6.bin", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "046-c7.bin", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "046-c8.bin", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( fatfury2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "047-p1.bin", 0x000000, 0x080000, CRC(be40ea92) SHA1(958b891bb8beb6af122d5467257ab20cbc6cf574) ) - ROM_LOAD16_WORD_SWAP( "047-p2.bin", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) ) - - NEO_SFIX_128K( "047-s1.bin", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) - - NEO_BIOS_SOUND_128K( "047-m1.bin", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "047-v1.bin", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) - ROM_LOAD( "047-v2.bin", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "047-c1.bin", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "047-c2.bin", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "047-c3.bin", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x600000, 0x100000 ) - ROM_LOAD16_BYTE( "047-c4.bin", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x600001, 0x100000 ) -ROM_END - -ROM_START( janshin ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "048-p1.bin", 0x000000, 0x100000, CRC(7514cb7a) SHA1(da512c0a8e8160a9db7f956e351245327c38eaf1) ) - - NEO_SFIX_128K( "048-s1.bin", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) ) - - NEO_BIOS_SOUND_64K( "048-m1.bin", CRC(e191f955) SHA1(fc19705644ffb3d1ae76bcf2b6b78fef05bcf701) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "048-v1.bin", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "048-c1.bin", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) ) - ROM_LOAD16_BYTE( "048-c2.bin", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) ) -ROM_END - -ROM_START( androdun ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "049-p1.bin", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) ) - ROM_LOAD16_WORD_SWAP( "049-p2.bin", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) ) - - NEO_SFIX_128K( "049-s1.bin", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) - - NEO_BIOS_SOUND_128K( "049-m1.bin", CRC(1a009f8c) SHA1(7782dfe48e143417f34fba5353e6deb63efeaa8a) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "049-v1.bin", 0x000000, 0x080000, CRC(577c85b3) SHA1(2c3072401fe73497dca0e9009ae2ba4053fe936d) ) - ROM_LOAD( "049-v2.bin", 0x080000, 0x080000, CRC(e14551c4) SHA1(763a9912b9df55defb190af3f29ae034f6dd78d6) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "049-c1.bin", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "049-c2.bin", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ncommand ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "050-p1.bin", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) ) - - NEO_SFIX_128K( "050-s1.bin", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) - - NEO_BIOS_SOUND_128K( "050-m1.bin", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) - ROM_LOAD( "050-v1.bin", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) ) - ROM_LOAD( "050-v2.bin", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "050-c1.bin", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "050-c2.bin", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "050-c3.bin", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "050-c4.bin", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) ) /* Plane 2,3 */ -ROM_END - -ROM_START( viewpoin ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "051-p1.bin", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) ) - - NEO_SFIX_64K( "051-s1.bin", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) ) - - NEO_BIOS_SOUND_64K( "051-m1.bin", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "051-v1.bin", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) ) - ROM_LOAD( "051-v2.bin", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "051-c1.bin", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) ) - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "051-c2.bin", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) ) - ROM_CONTINUE( 0x400001, 0x100000 ) -ROM_END - -ROM_START( ssideki ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "052-p1.bin", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) ) - - NEO_SFIX_128K( "052-s1.bin", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) ) - - NEO_BIOS_SOUND_128K( "052-m1.bin", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "052-v1.bin", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "052-c1.bin", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "052-c2.bin", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) -ROM_END - -ROM_START( wh1 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "053-p1.bin", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) ) - ROM_LOAD16_WORD_SWAP( "053-p2.bin", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) ) - - NEO_SFIX_128K( "053-s1.bin", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) - - NEO_BIOS_SOUND_128K( "053-m1.bin", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "053-v2.bin", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) - ROM_LOAD( "053-v4.bin", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "053-c1.bin", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "053-c2.bin", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "053-c3.bin", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "053-c4.bin", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ -ROM_END - -ROM_START( wh1h ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "053-p1.rom", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) ) - ROM_LOAD16_WORD_SWAP( "053-p2.rom", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) ) - - NEO_SFIX_128K( "053-s1.bin", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) - - NEO_BIOS_SOUND_128K( "053-m1.bin", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "053-v2.bin", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) ) - ROM_LOAD( "053-v4.bin", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "053-c1.bin", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x400000, 0x100000 ) - ROM_LOAD16_BYTE( "053-c2.bin", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x400001, 0x100000 ) - ROM_LOAD16_BYTE( "053-c3.bin", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "053-c4.bin", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof94 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "055-p1.bin", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "055-s1.bin", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) ) - - NEO_BIOS_SOUND_128K( "055-m1.bin", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "055-v1.bin", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) ) - ROM_LOAD( "055-v2.bin", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) ) - ROM_LOAD( "055-v3.bin", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "055-c1.bin", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "055-c2.bin", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "055-c3.bin", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "055-c4.bin", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "055-c5.bin", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "055-c6.bin", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "055-c7.bin", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "055-c8.bin", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) ) /* Plane 2,3 */ -ROM_END - -ROM_START( aof2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "056-p1.bin", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) - - NEO_SFIX_128K( "056-s1.bin", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) - - NEO_BIOS_SOUND_128K( "056-m1.bin", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "056-v1.bin", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) - ROM_LOAD( "056-v2.bin", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) - ROM_LOAD( "056-v3.bin", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "056-c1.bin", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c2.bin", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c3.bin", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c4.bin", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c5.bin", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c6.bin", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c7.bin", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c8.bin", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ -ROM_END - -ROM_START( aof2a ) /* make parent? */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "056-p1.bin", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) - ROM_LOAD16_WORD_SWAP( "056-ep1.bin", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) ) /* updated revision, loads over the first 512kb */ - - NEO_SFIX_128K( "056-s1.bin", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) - - NEO_BIOS_SOUND_128K( "056-m1.bin", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "056-v1.bin", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) ) - ROM_LOAD( "056-v2.bin", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) ) - ROM_LOAD( "056-v3.bin", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "056-c1.bin", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c2.bin", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c3.bin", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c4.bin", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c5.bin", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c6.bin", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "056-c7.bin", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "056-c8.bin", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) ) /* Plane 2,3 */ -ROM_END - -ROM_START( wh2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "057-p1.bin", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "057-s1.bin", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) ) - - NEO_BIOS_SOUND_128K( "057-m1.bin", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "057-v1.bin", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) ) - ROM_LOAD( "057-v2.bin", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "057-c1.bin", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "057-c2.bin", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "057-c3.bin", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "057-c4.bin", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "057-c5.bin", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "057-c6.bin", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fatfursp ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) - ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) - - NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) - - NEO_BIOS_SOUND_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) - ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) - ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fatfursa ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "058-p1.bin", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) ) - ROM_LOAD16_WORD_SWAP( "058-p2.bin", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) ) - /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */ - ROM_LOAD16_WORD_SWAP( "058-ep1.bin", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) ) - - NEO_SFIX_128K( "058-s1.bin", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) ) - - NEO_BIOS_SOUND_128K( "058-m1.bin", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "058-v1.bin", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) ) - ROM_LOAD( "058-v2.bin", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) ) - ROM_LOAD( "058-v3.bin", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "058-c1.bin", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c2.bin", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "058-c3.bin", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c4.bin", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "058-c5.bin", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "058-c6.bin", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) ) /* Plane 2,3 */ -ROM_END - -ROM_START( savagere ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "059-p1.bin", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "059-s1.bin", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) ) - - NEO_BIOS_SOUND_128K( "059-m1.bin", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "059-v1.bin", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) - ROM_LOAD( "059-v2.bin", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) ) - ROM_LOAD( "059-v3.bin", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "059-c1.bin", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c2.bin", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "059-c3.bin", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c4.bin", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "059-c5.bin", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c6.bin", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "059-c7.bin", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c8.bin", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fightfev ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "060-p1.bin", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) ) - ROM_LOAD16_WORD_SWAP( "060-p2.bin", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) ) - - NEO_SFIX_128K( "060-s1.bin", CRC(70727a1e) SHA1(e0d226be0578adbe7c1d41baba79e61d4d8fac39) ) - - NEO_BIOS_SOUND_128K( "060-m1.bin", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "060-v1.bin", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) - ROM_LOAD( "060-v2.bin", 0x200000, 0x100000, CRC(64470036) SHA1(eb2b34b3c01eb5c1a0a40cff6f4c0f2eee7bf7f2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x0800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "060-c1.bin", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "060-c2.bin", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "060-c3.bin", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "060-c4.bin", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fightfva ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "060-p1a.bin", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) - /* there was also a copy of the 060-p1.bin with the name 060-p2.bin maybe it should be loaded over the top or this - larger rom is an older revision... */ - - NEO_SFIX_128K( "060-s1.bin", CRC(70727a1e) SHA1(e0d226be0578adbe7c1d41baba79e61d4d8fac39) ) - - NEO_BIOS_SOUND_128K( "060-m1.bin", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "060-v1.bin", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) ) - ROM_LOAD( "060-v2.bin", 0x200000, 0x100000, CRC(64470036) SHA1(eb2b34b3c01eb5c1a0a40cff6f4c0f2eee7bf7f2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x0800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "060-c1.bin", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "060-c2.bin", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "060-c3.bin", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "060-c4.bin", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ssideki2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "061-p1.bin", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) - - NEO_SFIX_128K( "061-s1.bin", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) - - NEO_BIOS_SOUND_128K( "061-m1.bin", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "061-v1.bin", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) ) - ROM_LOAD( "061-v2.bin", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "061-c1.bin", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "061-c2.bin", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "061-c3.bin", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "061-c4.bin", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) ) /* Plane 2,3 */ -ROM_END - -ROM_START( spinmast ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "062-p1.bin", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) ) - ROM_LOAD16_WORD_SWAP( "062-p2.bin", 0x100000, 0x080000, CRC(43763ad2) SHA1(9b08cf1a79294c3206f6364466cae2c8b15acad5) ) - - NEO_SFIX_128K( "062-s1.bin", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) ) - - NEO_BIOS_SOUND_128K( "062-m1.bin", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "062-v1.bin", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "062-c1.bin", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "062-c2.bin", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "062-c3.bin", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "062-c4.bin", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "062-c5.bin", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "062-c6.bin", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "062-c7.bin", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "062-c8.bin", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "063-p1.bin", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "063-s1.bin", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) - - NEO_BIOS_SOUND_128K( "063-m1.bin", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) ) - - ROM_REGION( 0x700000, REGION_SOUND1, 0 ) - ROM_LOAD( "063-v1.bin", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) ) - ROM_LOAD( "063-v2.bin", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) ) - ROM_LOAD( "063-v3.bin", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) ) - ROM_LOAD( "063-v4.bin", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "063-c1.bin", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "063-c2.bin", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "063-c3.bin", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "063-c4.bin", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "063-c5.bin", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "063-c6.bin", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "063-c7.bin", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "063-c8.bin", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) ) /* Plane 2,3 */ -ROM_END - -ROM_START( wh2j ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "064-p1.bin", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "064-s1.bin", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) ) - - NEO_BIOS_SOUND_128K( "064-m1.bin", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "064-v1.bin", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) ) - ROM_LOAD( "064-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "064-c1.bin", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "064-c2.bin", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "064-c3.bin", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "064-c4.bin", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "064-c5.bin", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "064-c6.bin", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "064-c7.bin", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "064-c8.bin", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) /* Plane 0,1 */ -ROM_END - -ROM_START( wjammers ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "065-p1.bin", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) ) - - NEO_SFIX_128K( "065-s1.bin", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) ) - - NEO_BIOS_SOUND_128K( "065-m1.bin", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "065-v1.bin", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) ) - ROM_LOAD( "065-v2.bin", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) ) - ROM_LOAD( "065-v3.bin", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) ) - ROM_LOAD( "065-v4.bin", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "065-c1.bin", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) ) - ROM_LOAD16_BYTE( "065-c2.bin", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) ) - ROM_LOAD16_BYTE( "065-c3.bin", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) ) - ROM_LOAD16_BYTE( "065-c4.bin", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) ) -ROM_END - -ROM_START( karnovr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "066-p1.bin", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) ) - - NEO_SFIX_128K( "066-s1.bin", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) ) - - NEO_BIOS_SOUND_128K( "066-m1.bin", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "066-v1.bin", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "066-c1.bin", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "066-c2.bin", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "066-c3.bin", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "066-c4.bin", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "066-c5.bin", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "066-c6.bin", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) ) /* Plane 2,3 */ -ROM_END - -ROM_START( gururin ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "067-p1.bin", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) ) - - NEO_SFIX_128K( "067-s1.bin", CRC(4f0cbd58) SHA1(509bad8416a057d5239439e775640b71ccf09ef7) ) - - NEO_BIOS_SOUND_64K( "067-m1.bin", CRC(833cdf1b) SHA1(3a92c79adbe0d37956ea46a4746d6f1cbf7d2c14) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "067-v1.bin", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "067-c1.bin", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "067-c2.bin", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) ) /* Plane 2,3 */ -ROM_END - -ROM_START( pspikes2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "068-pg1.bin", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) ) - - NEO_SFIX_128K( "068-sg1.bin", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) ) - - NEO_BIOS_SOUND_128K( "068-mg1.bin", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "068-v1.bin", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) - ROM_LOAD( "068-v2.bin", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) - ROM_LOAD( "068-v3.bin", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "068-c1.bin", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "068-c2.bin", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "068-c3.bin", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "068-c4.bin", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "068-c5.bin", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "068-c6.bin", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fatfury3 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "069-p1.bin", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) ) - ROM_LOAD16_WORD_SWAP( "069-p2.bin", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) ) - - NEO_SFIX_128K( "069-s1.bin", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) ) - - NEO_BIOS_SOUND_128K( "069-m1.bin", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) ) - - ROM_REGION( 0xa00000, REGION_SOUND1, 0 ) - ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) - ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) - ROM_LOAD( "069-v3.bin", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "069-c5.bin", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "069-c6.bin", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) ) /* Plane 2,3 */ -ROM_END - -ROM_START( panicbom ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "073-p1.bin", 0x000000, 0x040000, CRC(0b21130d) SHA1(885c67347d33c0a4cd8c91b45c72959900d707a5) ) - - NEO_SFIX_128K( "073-s1.bin", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) ) - - NEO_BIOS_SOUND_128K( "073-m1.bin", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) ) - - ROM_REGION( 0x300000, REGION_SOUND1, 0 ) - ROM_LOAD( "073-v1.bin", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) ) - ROM_LOAD( "073-v2.bin", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "073-c1.bin", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "073-c2.bin", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) ) /* Plane 2,3 */ -ROM_END - -ROM_START( aodk ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "074-p1.bin", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "074-s1.bin", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) ) - - NEO_BIOS_SOUND_128K( "074-m1.bin", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "074-v1.bin", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) ) - ROM_LOAD( "074-v2.bin", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "074-c1.bin", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "074-c2.bin", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "074-c3.bin", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "074-c4.bin", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "074-c5.bin", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "074-c6.bin", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "074-c7.bin", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "074-c8.bin", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) ) /* Plane 2,3 */ -ROM_END - -ROM_START( sonicwi2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "075-p1.bin", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "075-s1.bin", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) ) - - NEO_BIOS_SOUND_128K( "075-m1.bin", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) ) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "075-v1.bin", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) ) - ROM_LOAD( "075-v2.bin", 0x200000, 0x080000, CRC(6d0a728e) SHA1(9d226b9af855d0ae1a91ace7c362fa51ced8b243) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "075-c1.bin", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "075-c2.bin", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "075-c3.bin", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "075-c4.bin", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) ) /* Plane 2,3 */ -ROM_END - -ROM_START( zedblade ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "076-p1.bin", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) ) - - NEO_SFIX_128K( "076-s1.bin", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) ) - - NEO_BIOS_SOUND_128K( "076-m1.bin", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "076-v1.bin", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) ) - ROM_LOAD( "076-v2.bin", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) ) - ROM_LOAD( "076-v3.bin", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "076-c1.bin", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "076-c2.bin", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "076-c3.bin", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "076-c4.bin", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) ) /* Plane 2,3 */ -ROM_END - -ROM_START( galaxyfg ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "078-p1.bin", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "078-s1.bin", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) ) - - NEO_BIOS_SOUND_128K( "078-m1.bin", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "078-v1.bin", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) ) - ROM_LOAD( "078-v2.bin", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) ) - ROM_LOAD( "078-v3.bin", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xe00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "078-c1.bin", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "078-c2.bin", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "078-c3.bin", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "078-c4.bin", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "078-c5.bin", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "078-c6.bin", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "078-c7.bin", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "078-c8.bin", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) ) /* Plane 2,3 */ -ROM_END - -ROM_START( strhoop ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "079-p1.bin", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) ) - - NEO_SFIX_128K( "079-s1.bin", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) ) - - NEO_BIOS_SOUND_64K( "079-m1.bin", CRC(1a5f08db) SHA1(3121ed568fba4c30794b00d326ddb0c750b7f4ee) ) - - ROM_REGION( 0x280000, REGION_SOUND1, 0 ) - ROM_LOAD( "079-v1.bin", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) ) - ROM_LOAD( "079-v2.bin", 0x200000, 0x080000, CRC(b19884f8) SHA1(5fe910f2029da19ddab4dc95c2292d7fbb086741) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "079-c1.bin", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "079-c2.bin", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "079-c3.bin", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "079-c4.bin", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) ) /* Plane 2,3 */ -ROM_END - -ROM_START( quizkof ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "080-p1.bin", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) ) - - NEO_SFIX_128K( "080-s1.bin", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) ) - - NEO_BIOS_SOUND_128K( "080-m1.bin", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "080-v1.bin", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) ) - ROM_LOAD( "080-v2.bin", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) ) - ROM_LOAD( "080-v3.bin", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "080-c1.bin", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "080-c2.bin", 0x000001, 0x200000, CRC(c78c49da) SHA1(0b95a340842847ab304517060e506098f8e5f0e0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "080-c3.bin", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "080-c4.bin", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ssideki3 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "081-p1.bin", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "081-s1.bin", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) ) - - NEO_BIOS_SOUND_128K( "081-m1.bin", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "081-v1.bin", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) ) - ROM_LOAD( "081-v2.bin", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) ) - ROM_LOAD( "081-v3.bin", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "081-c1.bin", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "081-c2.bin", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "081-c3.bin", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "081-c4.bin", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "081-c5.bin", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "081-c6.bin", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) ) /* Plane 2,3 */ -ROM_END - -ROM_START( doubledr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "082-p1.bin", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "082-s1.bin", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) ) - - NEO_BIOS_SOUND_128K( "082-m1.bin", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "082-v1.bin", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) ) - ROM_LOAD( "082-v2.bin", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xe00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "082-c1.bin", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) ) - ROM_LOAD16_BYTE( "082-c2.bin", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) ) - ROM_LOAD16_BYTE( "082-c3.bin", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) ) - ROM_LOAD16_BYTE( "082-c4.bin", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) ) - ROM_LOAD16_BYTE( "082-c5.bin", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) ) - ROM_LOAD16_BYTE( "082-c6.bin", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) ) - ROM_LOAD16_BYTE( "082-c7.bin", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) ) - ROM_LOAD16_BYTE( "082-c8.bin", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) ) -ROM_END - -ROM_START( pbobblen ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "083-p1.bin", 0x000000, 0x040000, CRC(7c3c34e1) SHA1(50fafb3529351c82a3656e6b07ab174a7bf8da0b) ) - - NEO_SFIX_128K( "083-s1.bin", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) - - NEO_BIOS_SOUND_64K( "083-m1.bin", CRC(129e6054) SHA1(4edd18c44759e7a140705f1544413c649131c551) ) - - ROM_REGION( 0x380000, REGION_SOUND1, 0 ) - /* 0x000000-0x1fffff empty */ - ROM_LOAD( "083-v3.bin", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) - ROM_LOAD( "083-v4.bin", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "083-c5.bin", 0x000000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "083-c6.bin", 0x000001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( pbobblna ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "083-p1.rom", 0x000000, 0x040000, CRC(d6efe86f) SHA1(f80a0b291c2e88dd894851bd14fa8cf7523fb7fe) ) - - NEO_SFIX_128K( "083-s1.bin", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) ) - - NEO_BIOS_SOUND_64K( "083-m1.bin", CRC(129e6054) SHA1(4edd18c44759e7a140705f1544413c649131c551) ) - - ROM_REGION( 0x380000, REGION_SOUND1, 0 ) - /* 0x000000-0x1fffff empty */ - ROM_LOAD( "083-v3.bin", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) - ROM_LOAD( "083-v4.bin", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x100000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "083-c5.bin", 0x000000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "083-c6.bin", 0x000001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof95 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "084-p1.bin", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "084-s1.bin", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) - - NEO_BIOS_SOUND_128K( "084-m1.bin", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) - - ROM_REGION( 0x900000, REGION_SOUND1, 0 ) -// ROM_LOAD( "084-v1.bin", 0x000000, 0x400000, CRC(21469561) SHA1(f35c72d31f026efc9e74bc4f198a123999ab3fc3) ) // bad old rom ? - ROM_LOAD( "084-v1.bin", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) - ROM_LOAD( "084-v2.bin", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) - /* 600000-7fffff empty */ - ROM_LOAD( "084-v3.bin", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1a00000, REGION_GFX3, 0 ) - /* old set had the roms like this */ -#if 0 - ROM_LOAD16_BYTE( "084-c1.bin", 0x0400000, 0x200000, CRC(33bf8657) SHA1(79b0f0eb4e5c172f36c296ccabeb474804f7645a) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x0000000, 0x200000 ) - ROM_LOAD16_BYTE( "084-c2.bin", 0x0400001, 0x200000, CRC(f21908a4) SHA1(a0bec5961396e62af553ba5293b1007cdf9fbf62) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x0000001, 0x200000 ) - ROM_LOAD16_BYTE( "084-c3.bin", 0x0c00000, 0x200000, CRC(0cee1ddb) SHA1(f63c05020c5bee37c2598fd235d76157baea6c68) ) /* Plane 0,1 */ - ROM_CONTINUE( 0x0800000, 0x200000 ) - ROM_LOAD16_BYTE( "084-c4.bin", 0x0c00001, 0x200000, CRC(729db15d) SHA1(6167a601463d7aaba1c8d470b346a82e9aef8bb5) ) /* Plane 2,3 */ - ROM_CONTINUE( 0x0800001, 0x200000 ) -#endif - ROM_LOAD16_BYTE( "084-c1.bin", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c2.bin", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "084-c3.bin", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c4.bin", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ - - ROM_LOAD16_BYTE( "084-c5.bin", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c6.bin", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "084-c7.bin", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c8.bin", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof95a ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "084a-p1.bin",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "084-s1.bin", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) ) - - NEO_BIOS_SOUND_128K( "084-m1.bin", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) - - ROM_REGION( 0x900000, REGION_SOUND1, 0 ) - ROM_LOAD( "084-v1.bin", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) - ROM_LOAD( "084-v2.bin", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) - /* 600000-7fffff empty */ - ROM_LOAD( "084-v3.bin", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1a00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "084-c1.bin", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c2.bin", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "084-c3.bin", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c4.bin", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "084-c5.bin", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c6.bin", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "084-c7.bin", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "084-c8.bin", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ -ROM_END - -ROM_START( tws96 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "086-p1.bin", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) ) - - NEO_SFIX_128K( "086-s1.bin", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) ) - - NEO_BIOS_SOUND_64K( "086-m1.bin", CRC(860ba8c7) SHA1(6457964fd2fdda1d4f57787fff0cec76b47692cb) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "086-v1.bin", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) ) - ROM_LOAD( "086-v2.bin", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xa00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "086-c1.bin", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "086-c2.bin", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "086-c3.bin", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "086-c4.bin", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho3 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "087-p1.bin", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) ) - ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) - - NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) - - NEO_BIOS_SOUND_128K( "087-m1.bin", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "087-v1.bin", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) - ROM_LOAD( "087-v2.bin", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1a00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "087-c1.bin", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c2.bin", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c3.bin", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c4.bin", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c5.bin", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c6.bin", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c7.bin", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c8.bin", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho3a ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "087-ep1.bin", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) ) - ROM_LOAD16_WORD_SWAP( "087-ep2.bin", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) ) - ROM_LOAD16_WORD_SWAP( "087-ep3.bin", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) ) - ROM_LOAD16_WORD_SWAP( "087-ep4.bin", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) - ROM_LOAD16_WORD_SWAP( "087-p5.bin", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) - - NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) - - NEO_BIOS_SOUND_128K( "087-m1.bin", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "087-v1.bin", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) - ROM_LOAD( "087-v2.bin", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1a00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "087-c1.bin", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c2.bin", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c3.bin", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c4.bin", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c5.bin", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c6.bin", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c7.bin", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c8.bin", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( fswords ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "087-p1k.bin", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) ) - ROM_LOAD16_WORD_SWAP( "087-p2.bin", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) ) - - NEO_SFIX_128K( "087-s1.bin", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) - - NEO_BIOS_SOUND_128K( "087-m1.bin", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "087-v1.bin", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) ) - ROM_LOAD( "087-v2.bin", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1a00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "087-c1.bin", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c2.bin", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c3.bin", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c4.bin", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c5.bin", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c6.bin", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "087-c7.bin", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "087-c8.bin", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( stakwin ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "088-p1.bin", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) ) - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "088-s1.bin", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) ) - - NEO_BIOS_SOUND_128K( "088-m1.bin", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "088-v1.bin", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "088-c1.bin", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "088-c2.bin", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "088-c3.bin", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "088-c4.bin", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) ) /* Plane 2,3 */ -ROM_END - -ROM_START( pulstar ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "089-p1.bin", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) ) - ROM_LOAD16_WORD_SWAP( "089-p2.bin", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) ) - - NEO_SFIX_128K( "089-s1.bin", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) ) - - NEO_BIOS_SOUND_128K( "089-m1.bin", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "089-v1.bin", 0x000000, 0x400000, CRC(b458ded2) SHA1(75d659ecb1fd6002188f469fcaafc9907440e624) ) - ROM_LOAD( "089-v2.bin", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "089-c1.bin", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "089-c2.bin", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "089-c3.bin", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "089-c4.bin", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "089-c5.bin", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "089-c6.bin", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "089-c7.bin", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "089-c8.bin", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) ) /* Plane 2,3 */ -ROM_END - -ROM_START( whp ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "090-p1.bin", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "090-s1.bin", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) ) - - NEO_BIOS_SOUND_128K( "090-m1.bin", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "090-v1.bin", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) ) - ROM_LOAD( "090-v2.bin", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) ) - ROM_LOAD( "090-v3.bin", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "090-c1.bin", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) ) - ROM_LOAD16_BYTE( "090-c2.bin", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) ) - ROM_LOAD16_BYTE( "090-c3.bin", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) ) - ROM_LOAD16_BYTE( "090-c4.bin", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) ) - /* 0c00000-0ffffff empty */ - ROM_LOAD16_BYTE( "090-c5.bin", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) ) - ROM_LOAD16_BYTE( "090-c6.bin", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) ) - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "090-c7.bin", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) ) - ROM_LOAD16_BYTE( "090-c8.bin", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) ) -ROM_END - -ROM_START( kabukikl ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "092-p1.bin", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "092-s1.bin", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) ) - - NEO_BIOS_SOUND_128K( "092-m1.bin", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) ) - - ROM_REGION( 0x700000, REGION_SOUND1, 0 ) - ROM_LOAD( "092-v1.bin", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) ) - ROM_LOAD( "092-v2.bin", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) ) - ROM_LOAD( "092-v3.bin", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) ) - ROM_LOAD( "092-v4.bin", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "092-c1.bin", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "092-c2.bin", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "092-c3.bin", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "092-c4.bin", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) ) /* Plane 2,3 */ -ROM_END - -ROM_START( neobombe ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "093-p1.bin", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) ) - - NEO_SFIX_128K( "093-s1.bin", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) ) - - NEO_BIOS_SOUND_128K( "093-m1.bin", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "093-v1.bin", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) ) - ROM_LOAD( "093-v2.bin", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x900000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "093-c1.bin", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "093-c2.bin", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "093-c3.bin", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "093-c4.bin", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( gowcaizr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "094-p1.bin", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "094-s1.bin", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) ) - - NEO_BIOS_SOUND_128K( "094-m1.bin", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "094-v1.bin", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) ) - ROM_LOAD( "094-v2.bin", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) ) - ROM_LOAD( "094-v3.bin", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "094-c1.bin", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "094-c2.bin", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "094-c3.bin", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "094-c4.bin", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "094-c5.bin", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "094-c6.bin", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "094-c7.bin", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "094-c8.bin", 0xc00001, 0x200000, CRC(0d31dee6) SHA1(4979aa3daa7e490fbe39e7b3c70cbb2ef7551c5f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( rbff1 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "095-p1.bin", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) ) - ROM_LOAD16_WORD_SWAP( "095-p2.bin", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) ) - - NEO_SFIX_128K( "095-s1.bin", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) ) - - NEO_BIOS_SOUND_128K( "095-m1.bin", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "069-v1.bin", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) ) - ROM_LOAD( "069-v2.bin", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) ) - ROM_LOAD( "095-v3.bin", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "069-c1.bin", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "069-c2.bin", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "069-c3.bin", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "069-c4.bin", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "095-c5.bin", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "095-c6.bin", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "095-c7.bin", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "095-c8.bin", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( aof3 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "096-p1.bin", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) ) - ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) - - NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) - - NEO_BIOS_SOUND_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) - ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) - ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ -ROM_END - -ROM_START( aof3k ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "096-p1k.bin", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) ) - ROM_LOAD16_WORD_SWAP( "096-p2.bin", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) ) - - NEO_SFIX_128K( "096-s1.bin", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) ) - - NEO_BIOS_SOUND_128K( "096-m1.bin", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "096-v1.bin", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) ) - ROM_LOAD( "096-v2.bin", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) ) - ROM_LOAD( "096-v3.bin", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "096-c1.bin", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c2.bin", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c3.bin", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c4.bin", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c5.bin", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c6.bin", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "096-c7.bin", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "096-c8.bin", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( sonicwi3 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "097-p1.bin", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "097-s1.bin", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) ) - - NEO_BIOS_SOUND_128K( "097-m1.bin", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "097-v1.bin", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) ) - ROM_LOAD( "097-v2.bin", 0x400000, 0x100000, CRC(32187ccd) SHA1(35a93de2a23bdec181c504d9c21a871bf86edee1) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "097-c1.bin", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "097-c2.bin", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "097-c3.bin", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "097-c4.bin", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) ) /* Plane 2,3 */ -ROM_END - -ROM_START( turfmast ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "200-p1.bin", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) ) - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "200-s1.bin", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) ) - - NEO_BIOS_SOUND_128K( "200-m1.bin", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "200-v1.bin", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) ) - ROM_LOAD( "200-v2.bin", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) ) - ROM_LOAD( "200-v3.bin", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) ) - ROM_LOAD( "200-v4.bin", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "200-c1.bin", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "200-c2.bin", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslug ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "201-p1.bin", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "201-s1.bin", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) ) - - NEO_BIOS_SOUND_128K( "201-m1.bin", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "201-v1.bin", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) ) - ROM_LOAD( "201-v2.bin", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "201-c1.bin", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "201-c2.bin", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "201-c3.bin", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "201-c4.bin", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) ) /* Plane 2,3 */ -ROM_END - -ROM_START( puzzledp ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "202-p1.bin", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) ) - - NEO_SFIX_64K( "202-s1.bin", CRC(4a421612) SHA1(8a79055be7bf6e2c344a72d6afe6a33be3d4a6c3) ) - - NEO_BIOS_SOUND_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mosyougi ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "203-p1.bin", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) ) - - NEO_SFIX_128K( "203-s1.bin", CRC(4e132fac) SHA1(ecc5552880cc0a771121efe2a60810b70f6121ff) ) - - NEO_BIOS_SOUND_128K( "203-m1.bin", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "203-v1.bin", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "203-c1.bin", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "203-c2.bin", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) ) /* Plane 2,3 */ -ROM_END - -ROM_START( marukodq ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "206-p1.bin", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) ) - - NEO_SFIX_32K( "206-s1.bin", CRC(3b52a219) SHA1(3587ab9dd1b3026c28a03349f3a13e6dfa7ff490) ) - - NEO_BIOS_SOUND_128K( "206-m1.bin", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "206-v1.bin", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) ) - ROM_LOAD( "206-v2.bin", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xa00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "206-c1.bin", 0x000000, 0x400000, CRC(4bd5e70f) SHA1(2cd546aafb73e0523655f53b134955ebc273aacd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "206-c2.bin", 0x000001, 0x400000, CRC(67dbe24d) SHA1(37047c4e52525ff6d39a462222ec3e4cfc63e31c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "206-c3.bin", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "206-c4.bin", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) ) /* Plane 2,3 */ -ROM_END - -ROM_START( neomrdo ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "207-p1.bin", 0x000000, 0x80000, CRC(39efdb82) SHA1(75fe68921f871872e5fc92594e43b4cd712e819b) ) - - NEO_SFIX_64K( "207-s1.bin", CRC(6c4b09c4) SHA1(2e9eac88afab606fad6c439efba0f6490389dd5f) ) - - NEO_BIOS_SOUND_128K( "207-m1.bin", CRC(81eade02) SHA1(d6d135bc525f3ed14a8c255f0b83d83a52b0659c) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "207-v1.bin", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "207-c1.bin", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) ) - ROM_LOAD16_BYTE( "207-c2.bin", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) ) -ROM_END - -ROM_START( sdodgeb ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "208-p1.bin", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "208-s1.bin", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) ) - - NEO_BIOS_SOUND_128K( "208-m1.bin", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "208-v1.bin", 0x000000, 0x200000, CRC(8b53e945) SHA1(beb7d63f6101f8435f35321fddb8479d312505c4) ) - ROM_LOAD( "208-v2.bin", 0x200000, 0x200000, CRC(af37ebf8) SHA1(f5c511479483533480f2b9ecf8edd4b7ae64c2d9) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x0c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "208-c1.bin", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "208-c2.bin", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "208-c3.bin", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "208-c4.bin", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) ) /* Plane 2,3 */ -ROM_END - -ROM_START( goalx3 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "209-p1.bin", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "209-s1.bin", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) ) - - NEO_BIOS_SOUND_64K( "209-m1.bin", CRC(dd945773) SHA1(2304d070864da79dceb29c64e8d71b7db0992d1e) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "209-v1.bin", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xa00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "209-c1.bin", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "209-c2.bin", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "209-c3.bin", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "209-c4.bin", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) ) /* Plane 2,3 */ -ROM_END - -/* this Zintrick set appears to be a bootleg made from the CD version, not a genuine - prototype the code is based on that of the NeoCD version with some minor patches, - for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked - PROG LOAD ERROR message. the set is supported in order to distinguish the hacks from - a real prototype should one turn up. */ - -ROM_START( zintrckb ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "zin_p1.rom", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b)) - - NEO_SFIX_128K( "zin_s1.rom", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) ) - - NEO_BIOS_SOUND_128K( "zin_m1.rom", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "zin_v1.rom", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "zin_c1.rom", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) ) - ROM_LOAD16_BYTE( "zin_c2.rom", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) ) -ROM_END - -ROM_START( overtop ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "212-p1.bin", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "212-s1.bin", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) ) - - NEO_BIOS_SOUND_128K( "212-m1.bin", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "212-v1.bin", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "212-c1.bin", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "212-c2.bin", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "212-c3.bin", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "212-c4.bin", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "212-c5.bin", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "212-c6.bin", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) ) /* Plane 2,3 */ -ROM_END - -ROM_START( neodrift ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "213-p1.bin", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) ) - ROM_CONTINUE( 0x000000, 0x100000) - - NEO_SFIX_128K( "213-s1.bin", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) ) - - NEO_BIOS_SOUND_128K( "213-m1.bin", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "213-v1.bin", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) ) - ROM_LOAD( "213-v2.bin", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "213-c1.bin", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "213-c2.bin", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof96 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "214-p1.bin", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) - ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) - - NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) - - NEO_BIOS_SOUND_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) - - ROM_REGION( 0xa00000, REGION_SOUND1, 0 ) - ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) - ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) - ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof96h ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "214-pg1.bin",0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) ) - ROM_LOAD16_WORD_SWAP( "214-p2.bin", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) - - NEO_SFIX_128K( "214-s1.bin", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) - - NEO_BIOS_SOUND_128K( "214-m1.bin", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) ) - - ROM_REGION( 0xa00000, REGION_SOUND1, 0 ) - ROM_LOAD( "214-v1.bin", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) ) - ROM_LOAD( "214-v2.bin", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) ) - ROM_LOAD( "214-v3.bin", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "214-c1.bin", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c2.bin", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c3.bin", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c4.bin", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c5.bin", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c6.bin", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "214-c7.bin", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "214-c8.bin", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ssideki4 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "215-p1.bin", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "215-s1.bin", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) ) - - NEO_BIOS_SOUND_128K( "215-m1.bin", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "215-v1.bin", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) ) - ROM_LOAD( "215-v2.bin", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "215-c1.bin", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "215-c2.bin", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "215-c3.bin", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "215-c4.bin", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "215-c5.bin", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "215-c6.bin", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kizuna ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "216-p1.bin", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "216-s1.bin", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) ) - - NEO_BIOS_SOUND_128K( "216-m1.bin", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "059-v1.bin", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) ) - ROM_LOAD( "216-v2.bin", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) ) - ROM_LOAD( "059-v3.bin", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) ) - ROM_LOAD( "216-v4.bin", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1c00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "059-c1.bin", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c2.bin", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) ) /* Plane 2,3 */ - /* 400000-7fffff empty */ - ROM_LOAD16_BYTE( "216-c3.bin", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "216-c4.bin", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "059-c5.bin", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c6.bin", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) ) /* Plane 2,3 */ - /* 1400000-17fffff empty */ - ROM_LOAD16_BYTE( "059-c7.bin", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "059-c8.bin", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ninjamas ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "217-p1.bin", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) ) - ROM_LOAD16_WORD_SWAP( "217-p2.bin", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) ) - - NEO_SFIX_128K( "217-s1.bin", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) ) - - NEO_BIOS_SOUND_128K( "217-m1.bin", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "217-v1.bin", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) ) - ROM_LOAD( "217-v2.bin", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "217-c1.bin", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "217-c2.bin", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "217-c3.bin", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "217-c4.bin", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "217-c5.bin", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "217-c6.bin", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "217-c7.bin", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "217-c8.bin", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ragnagrd ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "218-p1.bin", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "218-s1.bin", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) ) - - NEO_BIOS_SOUND_128K( "218-m1.bin", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "218-v1.bin", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) ) - ROM_LOAD( "218-v2.bin", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "218-c1.bin", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "218-c2.bin", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "218-c3.bin", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "218-c4.bin", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "218-c5.bin", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "218-c6.bin", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "218-c7.bin", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "218-c8.bin", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) ) /* Plane 2,3 */ -ROM_END - -ROM_START( pgoal ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "219-p1.bin", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "219-s1.bin", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) ) - - NEO_BIOS_SOUND_128K( "219-m1.bin", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "219-v1.bin", 0x000000, 0x200000, CRC(2cc1bd05) SHA1(e204b6d359e5b37661dddc2c1f14d64fd9089f75) ) - ROM_LOAD( "219-v2.bin", 0x200000, 0x200000, CRC(06ac1d3f) SHA1(c7f2287e4e8366b78bc26ede7802e2e92d44d7c9) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "219-c1.bin", 0x0000000, 0x200000, CRC(2dc69faf) SHA1(658327fdea658ed40f0074fe8800423cc9d553d5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "219-c2.bin", 0x0000001, 0x200000, CRC(5db81811) SHA1(362c4df6ae62e125c0942ff8661a771ff32afbd7) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "219-c3.bin", 0x0400000, 0x200000, CRC(9dbfece5) SHA1(f52e2a34faab0416ea152559ff9089fb988b1f0b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "219-c4.bin", 0x0400001, 0x200000, CRC(c9f4324c) SHA1(9d0dfcd39e72cbd63252b71b3ed879971b6f3443) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "219-c5.bin", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "219-c6.bin", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) ) /* Plane 2,3 */ -ROM_END - -ROM_START( magdrop2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "221-p1.bin", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) ) - - NEO_SFIX_128K( "221-s1.bin", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) ) - - NEO_BIOS_SOUND_128K( "221-m1.bin", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "221-v1.bin", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "221-c1.bin", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "221-c2.bin", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho4 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "222-p1.bin", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) ) - ROM_LOAD16_WORD_SWAP( "222-p2.bin", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) ) - - NEO_SFIX_128K( "222-s1.bin", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) ) - - NEO_BIOS_SOUND_128K( "222-m1.bin", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) ) - - ROM_REGION( 0xa00000, REGION_SOUND1, 0 ) - ROM_LOAD( "222-v1.bin", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) ) - ROM_LOAD( "222-v2.bin", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) ) - ROM_LOAD( "222-v3.bin", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "222-c1.bin", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "222-c2.bin", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "222-c3.bin", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "222-c4.bin", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "222-c5.bin", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "222-c6.bin", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "222-c7.bin", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "222-c8.bin", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( rbffspec ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "223-p1.bin", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) ) - ROM_LOAD16_WORD_SWAP( "223-p2.bin", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) ) - - NEO_SFIX_128K( "223-s1.bin", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) ) - - NEO_BIOS_SOUND_128K( "223-m1.bin", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "223-v1.bin", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) ) - ROM_LOAD( "223-v2.bin", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) ) - ROM_LOAD( "223-v3.bin", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "223-c1.bin", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "223-c2.bin", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "223-c3.bin", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "223-c4.bin", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "223-c5.bin", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "223-c6.bin", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "223-c7.bin", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "223-c8.bin", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( twinspri ) - ROM_REGION( 0x400000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "224-p1.bin", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "224-s1.bin", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) ) - - NEO_BIOS_SOUND_128K( "224-m1.bin", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "224-v1.bin", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) ) - ROM_LOAD( "224-v2.bin", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xa00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "224-c1.bin", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "224-c2.bin", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "224-c3.bin", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "224-c4.bin", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) ) /* Plane 2,3 */ -ROM_END - -ROM_START( wakuwak7 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "225-p1.bin", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) ) - ROM_LOAD16_WORD_SWAP( "225-p2.bin", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) ) - - NEO_SFIX_128K( "225-s1.bin", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) ) - - NEO_BIOS_SOUND_128K( "225-m1.bin", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "225-v1.bin", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) ) - ROM_LOAD( "225-v2.bin", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "225-c1.bin", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "225-c2.bin", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "225-c3.bin", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "225-c4.bin", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "225-c5.bin", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "225-c6.bin", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) ) /* Plane 2,3 */ -ROM_END - -ROM_START( stakwin2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "227-p1.bin", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "227-s1.bin", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) ) - - NEO_BIOS_SOUND_128K( "227-m1.bin", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "227-v1.bin", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) ) - ROM_LOAD( "227-v2.bin", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xc00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "227-c1.bin", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "227-c2.bin", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "227-c3.bin", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "227-c4.bin", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ghostlop ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "gl-p1.rom", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) ) - - NEO_SFIX_128K( "gl-s1.rom", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) ) - - NEO_BIOS_SOUND_128K( "gl-m1.rom", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "gl-v1.rom", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "gl-c1.rom", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "gl-c2.rom", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) ) /* Plane 2,3 */ -ROM_END - -ROM_START( breakers ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "230-p1.bin", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "230-s1.bin", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) ) - - NEO_BIOS_SOUND_128K( "230-m1.bin", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "230-v1.bin", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) ) - ROM_LOAD( "230-v2.bin", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "230-c1.bin", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "230-c2.bin", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "230-c3.bin", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "230-c4.bin", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ -ROM_END - -ROM_START( miexchng ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "231-p1.bin", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) ) - - NEO_SFIX_128K( "231-s1.bin", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) ) - - NEO_BIOS_SOUND_128K( "231-m1.bin", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "231-v1.bin", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x500000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "231-c1.bin", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "231-c2.bin", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "231-c3.bin", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "231-c4.bin", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof97 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "232-p1.bin", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) - ROM_LOAD16_WORD_SWAP( "232-p2.bin", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) - - NEO_SFIX_128K( "232-s1.bin", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) - - NEO_BIOS_SOUND_128K( "232-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "232-v1.bin", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) - ROM_LOAD( "232-v2.bin", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) - ROM_LOAD( "232-v3.bin", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "232-c1.bin", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c2.bin", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c3.bin", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c4.bin", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c5.bin", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c6.bin", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof97a ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "232-pg1.bin",0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) - ROM_LOAD16_WORD_SWAP( "232-p2.bin", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) - - NEO_SFIX_128K( "232-s1.bin", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) - - NEO_BIOS_SOUND_128K( "232-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "232-v1.bin", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) - ROM_LOAD( "232-v2.bin", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) - ROM_LOAD( "232-v3.bin", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "232-c1.bin", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c2.bin", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c3.bin", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c4.bin", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c5.bin", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c6.bin", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof97pls ) /* bootleg */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "232-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) ) - ROM_LOAD16_WORD_SWAP( "232-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) ) - - NEO_SFIX_128K( "232-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) ) - - NEO_BIOS_SOUND_128K( "232-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "232-v1.bin", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) - ROM_LOAD( "232-v2.bin", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) - ROM_LOAD( "232-v3.bin", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "232-c1.bin", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c2.bin", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c3.bin", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c4.bin", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "232-c5.bin", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "232-c6.bin", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) ) /* Plane 2,3 */ -ROM_END - -ROM_START( magdrop3 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "233-p1.bin", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) ) - - NEO_SFIX_128K( "233-s1.bin", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) ) - - NEO_BIOS_SOUND_128K( "233-m1.bin", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) ) - - ROM_REGION( 0x480000, REGION_SOUND1, 0 ) - ROM_LOAD( "233-v1.bin", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) ) - ROM_LOAD( "233-v2.bin", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "233-c1.bin", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "233-c2.bin", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "233-c3.bin", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "233-c4.bin", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lastblad ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "234-p1.bin", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) ) - ROM_LOAD16_WORD_SWAP( "234-p2.bin", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) - - NEO_SFIX_128K( "234-s1.bin", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) - - NEO_BIOS_SOUND_128K( "234-m1.bin", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) - - ROM_REGION( 0xe00000, REGION_SOUND1, 0 ) - ROM_LOAD( "234-v1.bin", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) - ROM_LOAD( "234-v2.bin", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) - ROM_LOAD( "234-v3.bin", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) - ROM_LOAD( "234-v4.bin", 0xc00000, 0x200000, CRC(13583c4b) SHA1(8b84dd4117bb0d535f30531499621622967b2344) ) - /* V4 is 32Mbits, needs redump */ - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "234-c1.bin", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c2.bin", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c3.bin", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c4.bin", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c5.bin", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c6.bin", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lastblda ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "234-p1.rom", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) - ROM_LOAD16_WORD_SWAP( "234-p2.bin", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) - - NEO_SFIX_128K( "234-s1.bin", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) - - NEO_BIOS_SOUND_128K( "234-m1.bin", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "234-v1.bin", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) - ROM_LOAD( "234-v2.bin", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) - ROM_LOAD( "234-v3.bin", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) - ROM_LOAD( "lastblda_234-v4.bin", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) ) // this one is correct? - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "234-c1.bin", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c2.bin", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c3.bin", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c4.bin", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c5.bin", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c6.bin", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lastsold ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "234-p1k.bin", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) ) - ROM_LOAD16_WORD_SWAP( "234-p2.bin", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) - - NEO_SFIX_128K( "234-s1.bin", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) - - NEO_BIOS_SOUND_128K( "234-m1.bin", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) ) - - ROM_REGION( 0xe00000, REGION_SOUND1, 0 ) - ROM_LOAD( "234-v1.bin", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) ) - ROM_LOAD( "234-v2.bin", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) ) - ROM_LOAD( "234-v3.bin", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) ) - ROM_LOAD( "234-v4.bin", 0xc00000, 0x200000, CRC(13583c4b) SHA1(8b84dd4117bb0d535f30531499621622967b2344) ) - /* V4 is 32Mbits, needs redump */ - - NO_DELTAT_REGION - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "234-c1.bin", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c2.bin", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c3.bin", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c4.bin", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "234-c5.bin", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "234-c6.bin", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) ) /* Plane 2,3 */ -ROM_END - -ROM_START( puzzldpr ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "235-p1.bin", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) ) - - NEO_SFIX_64K( "235-s1.bin", CRC(5a68d91e) SHA1(a8c58eb68fd7e6e2d9d1153a9da514430437f342) ) - - NEO_BIOS_SOUND_128K( "202-m1.bin", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) ) - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) - ROM_LOAD( "202-v1.bin", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x200000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "202-c1.bin", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "202-c2.bin", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( irrmaze ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "236-p1.bin", 0x000000, 0x200000, CRC(6d536c6e) SHA1(87d66683304a6617da8af7dfdfcbf4a3ab63056a) ) - - NEO_SFIX_128K( "236-s1.bin", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) ) - - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) - /* special BIOS with trackball support */ - IRRMAZE_BIOS - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) /* we don't use the BIOS anyway... */ - ROM_LOAD( "236-m1.bin", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) ) /* so overwrite it with the real thing */ - ROM_RELOAD( 0x10000, 0x20000 ) - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "236-v1.bin", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) ) - - ROM_REGION( 0x100000, REGION_SOUND2, 0 ) - ROM_LOAD( "236-v2.bin", 0x000000, 0x100000, CRC(1e843567) SHA1(30d63887b4900571025b3077b9e41099a59c3ad9) ) - - ROM_REGION( 0x0800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "236-c1.bin", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "236-c2.bin", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) ) /* Plane 2,3 */ -ROM_END - -ROM_START( popbounc ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "237-p1.bin", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) ) - - NEO_SFIX_128K( "237-s1.bin", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) ) - - NEO_BIOS_SOUND_128K( "237-m1.bin", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "237-v1.bin", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "237-c1.bin", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) ) - ROM_LOAD16_BYTE( "237-c2.bin", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) ) -ROM_END - -ROM_START( shocktro ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "238-p1.bin", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) ) - ROM_LOAD16_WORD_SWAP( "238-p2.bin", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) - - NEO_SFIX_128K( "238-s1.bin", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) - - NEO_BIOS_SOUND_128K( "238-m1.bin", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "238-v1.bin", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) - ROM_LOAD( "238-v2.bin", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "238-c1.bin", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c2.bin", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c3.bin", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c4.bin", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c5.bin", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c6.bin", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c7.bin", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c8.bin", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ -ROM_END - -ROM_START( shocktra ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "238-pg1.bin", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) ) - ROM_LOAD16_WORD_SWAP( "238-p2.bin", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) ) - - NEO_SFIX_128K( "238-s1.bin", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) ) - - NEO_BIOS_SOUND_128K( "238-m1.bin", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "238-v1.bin", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) ) - ROM_LOAD( "238-v2.bin", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "238-c1.bin", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c2.bin", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c3.bin", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c4.bin", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c5.bin", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c6.bin", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "238-c7.bin", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "238-c8.bin", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) ) /* Plane 2,3 */ -ROM_END - -ROM_START( blazstar ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "239-p1.bin", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) ) - ROM_LOAD16_WORD_SWAP( "239-p2.bin", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) ) - - NEO_SFIX_128K( "239-s1.bin", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) ) - - NEO_BIOS_SOUND_128K( "239-m1.bin", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "239-v1.bin", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) ) - ROM_LOAD( "239-v2.bin", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "239-c1.bin", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "239-c2.bin", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "239-c3.bin", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "239-c4.bin", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "239-c5.bin", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "239-c6.bin", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "239-c7.bin", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "239-c8.bin", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( rbff2 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "240-p1.bin", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) ) - ROM_LOAD16_WORD_SWAP( "240-p2.bin", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) - - NEO_SFIX_128K( "240-s1.bin", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) - - NEO_BIOS_SOUND_256K( "240-m1.bin", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "240-v1.bin", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) - ROM_LOAD( "240-v2.bin", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) - ROM_LOAD( "240-v3.bin", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) - ROM_LOAD( "240-v4.bin", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "240-c1.bin", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c2.bin", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c3.bin", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c4.bin", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c5.bin", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c6.bin", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( rbff2a ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "240-p1.rom", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) ) - ROM_LOAD16_WORD_SWAP( "240-p2.bin", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) - - NEO_SFIX_128K( "240-s1.bin", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) - - NEO_BIOS_SOUND_256K( "240-m1.bin", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "240-v1.bin", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) - ROM_LOAD( "240-v2.bin", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) - ROM_LOAD( "240-v3.bin", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) - ROM_LOAD( "240-v4.bin", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "240-c1.bin", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c2.bin", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c3.bin", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c4.bin", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c5.bin", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c6.bin", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ -ROM_END - -ROM_START( rbff2k ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "240-p1k.bin", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) ) - ROM_LOAD16_WORD_SWAP( "240-p2.bin", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) ) - - NEO_SFIX_128K( "240-s1.bin", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) ) - - NEO_BIOS_SOUND_256K( "240-m1.bin", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "240-v1.bin", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) ) - ROM_LOAD( "240-v2.bin", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) ) - ROM_LOAD( "240-v3.bin", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) ) - ROM_LOAD( "240-v4.bin", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "240-c1.bin", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c2.bin", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c3.bin", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c4.bin", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "240-c5.bin", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "240-c6.bin", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( mslug2 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "241-p1.bin", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) ) - ROM_LOAD16_WORD_SWAP( "241-p2.bin", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) ) - - NEO_SFIX_128K( "241-s1.bin", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) ) - - NEO_BIOS_SOUND_128K( "241-m1.bin", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "241-v1.bin", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) ) - ROM_LOAD( "241-v2.bin", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "241-c1.bin", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "241-c2.bin", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "241-c3.bin", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "241-c4.bin", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof98 ) /* encrypted code + protection */ - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "yz98-p1.160", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) - ROM_LOAD16_WORD_SWAP( "242-p2.bin", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) - - NEO_SFIX_128K( "242-s1.bin", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) - - NEO_BIOS_SOUND_256K( "242-m1a.bin", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "242-v1.bin", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) - ROM_LOAD( "242-v2.bin", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) - ROM_LOAD( "242-v3.bin", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) - ROM_LOAD( "242-v4.bin", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "242-c1.bin", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c2.bin", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c3.bin", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c4.bin", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c5.bin", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c6.bin", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c7.bin", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c8.bin", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "yz98-p1.160", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) ) - ROM_LOAD16_WORD_SWAP( "242-p2.bin", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) - - NEO_SFIX_128K( "242-s1.bin", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) - - NEO_BIOS_SOUND_256K( "242-m1k.bin", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "242-v1.bin", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) - ROM_LOAD( "242-v2.bin", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) - ROM_LOAD( "242-v3.bin", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) - ROM_LOAD( "242-v4.bin", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "242-c1.bin", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c2.bin", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c3.bin", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c4.bin", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c5.bin", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c6.bin", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c7.bin", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c8.bin", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof98n ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "242-p1.bin", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) ) - ROM_LOAD16_WORD_SWAP( "242-p2.bin", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) ) - - NEO_SFIX_128K( "242-s1.bin", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) ) - - NEO_BIOS_SOUND_256K( "242-m1.bin", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "242-v1.bin", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) ) - ROM_LOAD( "242-v2.bin", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) ) - ROM_LOAD( "242-v3.bin", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) ) - ROM_LOAD( "242-v4.bin", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "242-c1.bin", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c2.bin", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c3.bin", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c4.bin", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c5.bin", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c6.bin", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "242-c7.bin", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "242-c8.bin", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lastbld2 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "243-p1.bin", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) ) - ROM_LOAD16_WORD_SWAP( "243-p2.bin", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) ) - - NEO_SFIX_128K( "243-s1.bin", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) ) - - NEO_BIOS_SOUND_128K( "243-m1.bin", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "243-v1.bin", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) ) - ROM_LOAD( "243-v2.bin", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) ) - ROM_LOAD( "243-v3.bin", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) ) - ROM_LOAD( "243-v4.bin", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "243-c1.bin", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "243-c2.bin", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "243-c3.bin", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "243-c4.bin", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "243-c5.bin", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "243-c6.bin", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) ) /* Plane 2,3 */ -ROM_END - -ROM_START( neocup98 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "244-p1.bin", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "244-s1.bin", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) ) - - NEO_BIOS_SOUND_128K( "244-m1.bin", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) ) - - ROM_REGION( 0x600000, REGION_SOUND1, 0 ) - ROM_LOAD( "244-v1.bin", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) ) - ROM_LOAD( "244-v2.bin", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "244-c1.bin", 0x000000, 0x800000, CRC(d2c40ec7) SHA1(989d972aabcc7f190bdd5d861d3e13c09dd0803e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "244-c2.bin", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) ) /* Plane 2,3 */ -ROM_END - -ROM_START( breakrev ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "245-p1.bin", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "245-s1.bin", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) ) - - NEO_BIOS_SOUND_128K( "245-m1.bin", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "245-v1.bin", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) ) - ROM_LOAD( "245-v2.bin", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "230-c1.bin", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "230-c2.bin", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "230-c3.bin", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "230-c4.bin", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "245-c5.bin", 0x1000000, 0x200000, CRC(28ff1792) SHA1(0cc5c16ac42f52cee74f88235aef0671bee33b4c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "245-c6.bin", 0x1000001, 0x200000, CRC(23c65644) SHA1(9dc74c3075cf0f738b6b41e5e8d89a74a6c9ef07) ) /* Plane 2,3 */ -ROM_END - -ROM_START( shocktr2 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "246-p1.bin", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) ) - ROM_LOAD16_WORD_SWAP( "246-p2.bin", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) ) - - NEO_SFIX_128K( "246-s1.bin", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) ) - - NEO_BIOS_SOUND_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "246-v1.bin", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) ) - ROM_LOAD( "246-v2.bin", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) ) - ROM_LOAD( "246-v3.bin", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "246-c1.bin", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "246-c2.bin", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "246-c3.bin", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "246-c4.bin", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "246-c5.bin", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "246-c6.bin", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) ) /* Plane 2,3 */ -ROM_END - -ROM_START( lans2004 ) /* Bootleg / Hack of Shock Troopers - 2nd Squad */ - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) ) - ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) ) - ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) ) - - NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) ) - - NEO_BIOS_SOUND_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) ) - - ROM_REGION( 0xA00000, REGION_SOUND1, 0 ) - ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) ) - ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) ) - ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( flipshot ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "247-p1.bin", 0x000000, 0x080000, CRC(d2e7a7e3) SHA1(1ff4f070fcc658bbc7dc69e16c87f82d7392d100) ) - - NEO_SFIX_128K( "247-s1.bin", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) ) - - NEO_BIOS_SOUND_128K( "247-m1.bin", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "247-v1.bin", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "247-c1.bin", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "247-c2.bin", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) ) /* Plane 2,3 */ -ROM_END - -ROM_START( pbobbl2n ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "248-p1.bin", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) ) - - NEO_SFIX_128K( "248-s1.bin", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) ) - - NEO_BIOS_SOUND_128K( "248-m1.bin", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) - ROM_LOAD( "248-v1.bin", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) ) - ROM_LOAD( "248-v2.bin", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) ) - - NO_DELTAT_REGION - - ROM_REGION( 0xa00000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "248-c1.bin", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "248-c2.bin", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "248-c3.bin", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "248-c4.bin", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ctomaday ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "249-p1.bin", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "249-s1.bin", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) ) - - NEO_BIOS_SOUND_128K( "249-m1.bin", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "249-v1.bin", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) ) - ROM_LOAD( "249-v2.bin", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "249-c1.bin", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "249-c2.bin", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslugx ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "250-p1.bin", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) ) - ROM_LOAD16_WORD_SWAP( "250-p2.bin", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) ) - - NEO_SFIX_128K( "250-s1.bin", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) ) - - NEO_BIOS_SOUND_128K( "250-m1.bin", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) ) - - ROM_REGION( 0xa00000, REGION_SOUND1, 0 ) - ROM_LOAD( "250-v1.bin", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) ) - ROM_LOAD( "250-v2.bin", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) ) - ROM_LOAD( "250-v3.bin", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "250-c1.bin", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "250-c2.bin", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "250-c3.bin", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "250-c4.bin", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "250-c5.bin", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "250-c6.bin", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) ) /* Plane 0,1 */ -ROM_END - -ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "251-sma.kc", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "251-p1.bin", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) - ROM_LOAD16_WORD_SWAP( "251-pg2.bin", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "251-m1.bin", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "251-v1.bin", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) - ROM_LOAD( "251-v2.bin", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) - ROM_LOAD( "251-v3.bin", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) - ROM_LOAD( "251-v4.bin", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.bin", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c2.bin", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c3.bin", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c4.bin", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c5.bin", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c6.bin", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c7.bin", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c8.bin", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof99a ) /* Original Version - Encrypted Code & GFX */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "251-sma.ka", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "251-p1.bin", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) ) - ROM_LOAD16_WORD_SWAP( "251-p2.bin", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "251-m1.bin", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "251-v1.bin", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) - ROM_LOAD( "251-v2.bin", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) - ROM_LOAD( "251-v3.bin", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) - ROM_LOAD( "251-v4.bin", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.bin", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c2.bin", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c3.bin", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c4.bin", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c5.bin", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c6.bin", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c7.bin", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c8.bin", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "251-sma.ka", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) ) - ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) ) - ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) ) - ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "251-m1.bin", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "251-v1.bin", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) - ROM_LOAD( "251-v2.bin", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) - ROM_LOAD( "251-v3.bin", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) - ROM_LOAD( "251-v4.bin", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.bin", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c2.bin", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c3.bin", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c4.bin", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c5.bin", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c6.bin", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c7.bin", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c8.bin", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof99n ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "152-p1.bin", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) ) - ROM_LOAD16_WORD_SWAP( "152-p2.bin", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "251-m1.bin", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "251-v1.bin", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) - ROM_LOAD( "251-v2.bin", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) - ROM_LOAD( "251-v3.bin", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) - ROM_LOAD( "251-v4.bin", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "251-c1.bin", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c2.bin", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c3.bin", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c4.bin", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c5.bin", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c6.bin", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c7.bin", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c8.bin", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "251-p1p.bin", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) ) - ROM_LOAD16_WORD_SWAP( "251-p2p.bin", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) ) - - /* This is the S1 from the prototype, the final is different */ - NEO_SFIX_128K( "251-s1p.bin", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) ) - - /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */ - NEO_BIOS_SOUND_128K( "251-m1.bin", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "251-v1.bin", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) ) - ROM_LOAD( "251-v2.bin", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) ) - ROM_LOAD( "251-v3.bin", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) ) - ROM_LOAD( "251-v4.bin", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* these are probably decrypted versions of the roms found in the final */ - ROM_LOAD16_BYTE( "251-c1p.bin", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c2p.bin", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c3p.bin", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c4p.bin", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c5p.bin", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c6p.bin", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "251-c7p.bin", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "251-c8p.bin", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ganryu ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "252-p1.bin", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "252-m1.bin", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) ) - - ROM_REGION( 0x0400000, REGION_SOUND1, 0 ) - ROM_LOAD( "252-v1.bin", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "252-c1.bin", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) ) - ROM_LOAD16_BYTE( "252-c2.bin", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) ) -ROM_END - -ROM_START( garou ) - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "253-sma.bin", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) ) - ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) ) - ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) ) - ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_256K( "253-m1.bin", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "253-v1.bin", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) - ROM_LOAD( "253-v2.bin", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) - ROM_LOAD( "253-v3.bin", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) - ROM_LOAD( "253-v4.bin", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "253-c1.bin", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c2.bin", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c3.bin", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c4.bin", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c5.bin", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c6.bin", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c7.bin", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c8.bin", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ -ROM_END - -ROM_START( garouo ) - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "253-smao.bin", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "253-p1.bin", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) - ROM_LOAD16_WORD_SWAP( "253-p2.bin", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_256K( "253-m1.bin", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "253-v1.bin", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) ) - ROM_LOAD( "253-v2.bin", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) ) - ROM_LOAD( "253-v3.bin", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) ) - ROM_LOAD( "253-v4.bin", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "253-c1.bin", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c2.bin", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c3.bin", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c4.bin", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c5.bin", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c6.bin", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c7.bin", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c8.bin", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) ) /* Plane 2,3 */ -ROM_END - -ROM_START( garoup ) /* Prototype Version, seems genuine */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "253-p1p.bin", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) ) - ROM_LOAD16_WORD_SWAP( "253-p2p.bin", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) ) - - NEO_SFIX_128K( "253-s1p.bin", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) ) - - NEO_BIOS_SOUND_256K( "253-m1p.bin", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "253-v1p.bin", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) ) - ROM_LOAD( "253-v2p.bin", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) ) - ROM_LOAD( "253-v3p.bin", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) ) - ROM_LOAD( "253-v4p.bin", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "253-c1p.bin", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c2p.bin", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c3p.bin", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c4p.bin", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c5p.bin", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c6p.bin", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "253-c7p.bin", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "253-c8p.bin", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "254-p1.bin", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) ) - ROM_LOAD16_WORD_SWAP( "254-p2.bin", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "254-m1.bin", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "254-v1.bin", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) ) - ROM_LOAD( "254-v2.bin", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) ) - ROM_LOAD( "254-v3.bin", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) ) - ROM_LOAD( "254-v4.bin", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "254-c1.bin", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "254-c2.bin", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "254-c3.bin", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "254-c4.bin", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "254-c5.bin", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "254-c6.bin", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "254-c7.bin", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "254-c8.bin", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) ) /* Plane 2,3 */ -ROM_END - -ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "255-p1.bin", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) ) - ROM_LOAD16_WORD_SWAP( "255-p2.bin", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "255-m1.bin", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) ) - - ROM_REGION( 0x0600000, REGION_SOUND1, 0 ) - ROM_LOAD( "255-v1.bin", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) ) - ROM_LOAD( "255-v2.bin", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "255-c1.bin", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "255-c2.bin", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "255-c3.bin", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "255-c4.bin", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "255-c5.bin", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "255-c6.bin", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "256-sma.bin", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "256-p1.bin", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) ) - ROM_LOAD16_WORD_SWAP( "256-p2.bin", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_512K( "256-m1.bin", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "256-v1.bin", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) - ROM_LOAD( "256-v2.bin", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) - ROM_LOAD( "256-v3.bin", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) - ROM_LOAD( "256-v4.bin", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.bin", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c2.bin", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c3.bin", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c4.bin", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c5.bin", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c6.bin", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c7.bin", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c8.bin", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslug3n ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "256-ph1.rom", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) ) - ROM_LOAD16_WORD_SWAP( "256-ph2.rom", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_512K( "256-m1.bin", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "256-v1.bin", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) - ROM_LOAD( "256-v2.bin", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) - ROM_LOAD( "256-v3.bin", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) - ROM_LOAD( "256-v4.bin", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.bin", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c2.bin", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c3.bin", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c4.bin", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c5.bin", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c6.bin", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c7.bin", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c8.bin", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "257-sma.bin", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */ - ROM_LOAD16_WORD_SWAP( "257-p1.bin", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) ) - ROM_LOAD16_WORD_SWAP( "257-p2.bin", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_REGION( 0x40000, REGION_USER4, 0 ) - ROM_LOAD( "257-m1.bin", 0x00000, 0x40000, CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) - NEO_BIOS_SOUND_256K( "257-m1_decrypted.bin", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "257-v1.bin", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) - ROM_LOAD( "257-v2.bin", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) - ROM_LOAD( "257-v3.bin", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) - ROM_LOAD( "257-v4.bin", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "257-c1.bin", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c2.bin", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c3.bin", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c4.bin", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c5.bin", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c6.bin", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c7.bin", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c8.bin", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "257-p1n.bin", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) ) - ROM_LOAD16_WORD_SWAP( "257-p2n.bin", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_REGION( 0x40000, REGION_USER4, 0 ) - ROM_LOAD( "257-m1.bin", 0x00000, 0x40000, CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) ) - NEO_BIOS_SOUND_256K( "257-m1_decrypted.bin", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "257-v1.bin", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) ) - ROM_LOAD( "257-v2.bin", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) ) - ROM_LOAD( "257-v3.bin", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) ) - ROM_LOAD( "257-v4.bin", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "257-c1.bin", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c2.bin", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c3.bin", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c4.bin", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c5.bin", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c6.bin", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "257-c7.bin", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "257-c8.bin", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) ) /* Plane 2,3 */ -ROM_END - -ROM_START( bangbead ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "259-p1.bin", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "259-m1.bin", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "259-v1.bin", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) ) - ROM_LOAD( "259-v2.bin", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "259-c1.bin", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) ) - ROM_LOAD16_BYTE( "259-c2.bin", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) ) -ROM_END - -/* same data, diff. format roms, not encrypted, it could be a bootleg, not a prototype, since its identical - when decrypted i'm disabling it for now */ -#if 0 -ROM_START( bangbedp ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "259-p1.bin", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "259-s1p.bin", CRC(bb50fb2d) SHA1(7372939f328fb5e7d09c16985e09ae8c34702b0c) ) - - NEO_BIOS_SOUND_128K( "259-m1.bin", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) ) - - ROM_REGION( 0x500000, REGION_SOUND1, 0 ) - ROM_LOAD( "259-v1p.bin", 0x000000, 0x200000, CRC(e97b9385) SHA1(d213cae6cf5732b8ab1f8a8cf04afee5dfd9a260) ) - ROM_LOAD( "259-v2p.bin", 0x200000, 0x200000, CRC(b0cbd70a) SHA1(fc7c8183f8ff9800e8aae7c8d44d962300058cfb) ) - ROM_LOAD( "259-v3p.bin", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x600000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "259-c1p.bin", 0x000000, 0x200000, CRC(e3919e44) SHA1(54c722414b5a7ad311dc8ddf6fdda88535e829d1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "259-c2p.bin", 0x000001, 0x200000, CRC(baf5a320) SHA1(ead3d81d9b4aeb45af4f9cb5c38157f2236b506c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "259-c3p.bin", 0x400000, 0x100000, CRC(c8e52157) SHA1(f10f58e905c4cbaf182b20e63abe5364462133c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "259-c4p.bin", 0x400001, 0x100000, CRC(69fa8e60) SHA1(29c1fbdb79dedf1470683202e2cb3435732d9275) ) /* Plane 2,3 */ -ROM_END -#endif - -ROM_START( nitd ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "260-p1.bin", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_512K( "260-m1.bin", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) ) - - ROM_REGION( 0x0400000, REGION_SOUND1, 0 ) - ROM_LOAD( "260-v1.bin", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "260-c1.bin", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) ) - ROM_LOAD16_BYTE( "260-c2.bin", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) ) -ROM_END - -ROM_START( zupapa ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "070-p1.bin", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "070-m1.bin", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) ) - - ROM_REGION( 0x0200000, REGION_SOUND1, 0 ) - ROM_LOAD( "070-v1.bin", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "070-c1.bin", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) ) - ROM_LOAD16_BYTE( "070-c2.bin", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) ) -ROM_END - -ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) -// ROM_LOAD16_WORD_SWAP( "261-p1.bin", 0x100000, 0x100000, CRC(5b557201) SHA1(d01421d1dc80fe7d2a46b9f79c0f344b3c81c1e7) ) this one is almost certainly bad - ROM_LOAD16_WORD_SWAP( "261-p1.bin", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "261-m1.bin", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) ) - - ROM_REGION( 0x0e00000, REGION_SOUND1, 0 ) - ROM_LOAD( "261-v1.bin", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) ) - ROM_LOAD( "261-v2.bin", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) ) - ROM_LOAD( "261-v3.bin", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) ) - ROM_LOAD( "261-v4.bin", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x2000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "261-c1.bin", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) ) - ROM_LOAD16_BYTE( "261-c2.bin", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) ) - ROM_LOAD16_BYTE( "261-c3.bin", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) ) - ROM_LOAD16_BYTE( "261-c4.bin", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) ) -ROM_END - -ROM_START( kof2001 ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "262-p1.bin", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) ) - ROM_LOAD16_WORD_SWAP( "262-p2.bin", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_REGION( 0x40000, REGION_USER4, 0 ) - ROM_LOAD( "265-262-m1.bin", 0x00000, 0x20000, CRC(1d5aab51) SHA1(52327c5bcad87770419057097cca20a3b187bec3) ) /* yes it really does have a strange name */ -// NEO_BIOS_SOUND_128K( "262-m1d.bin", CRC(73c1f5b0) SHA1(27975713e091ecc2a370061080d0920a3c4fde63) ) - NEO_BIOS_SOUND_128K( "265-262_decrypted-m1.bin", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) - - - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) - ROM_LOAD( "262-v2.bin", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) - ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) - ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "262-c1.bin", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c2.bin", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c3.bin", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c4.bin", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c5.bin", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c6.bin", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c7.bin", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c8.bin", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof2001h ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "262-pg1.bin", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) ) - ROM_LOAD16_WORD_SWAP( "262-pg2.bin", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_REGION( 0x40000, REGION_USER4, 0 ) - ROM_LOAD( "265-262-m1.bin", 0x00000, 0x20000, CRC(1d5aab51) SHA1(52327c5bcad87770419057097cca20a3b187bec3) ) /* yes it really does have a strange name */ -// NEO_BIOS_SOUND_128K( "262-m1d.bin", CRC(73c1f5b0) SHA1(27975713e091ecc2a370061080d0920a3c4fde63) ) - NEO_BIOS_SOUND_128K( "265-262_decrypted-m1.bin", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) - ROM_LOAD( "262-v2.bin", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) - ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) - ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "262-c1.bin", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c2.bin", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c3.bin", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c4.bin", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c5.bin", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c6.bin", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "262-c7.bin", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "262-c8.bin", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "263-p1.bin", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) ) - ROM_LOAD16_WORD_SWAP( "263-p2.bin", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_REGION( 0x40000, REGION_USER4, 0 ) - ROM_LOAD( "263-m1.bin", 0x00000, 0x10000, CRC(38ffad14) SHA1(03d526a887aad28306400c21abd131b9c301c221) ) - NEO_BIOS_SOUND_64K( "263-m1_decrypted.bin", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "263-v1.bin", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) ) - ROM_LOAD( "263-v2.bin", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "263-c1.bin", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "263-c2.bin", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "263-c3.bin", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "263-c4.bin", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "263-c5.bin", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "263-c6.bin", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ms4plus ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "263-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) ) - ROM_LOAD16_WORD_SWAP( "263-p2.bin", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) ) - - /* bootleg: regular s1 rom */ - NEO_SFIX_128K( "263-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) ) - - /* bootleg: non-encrypted m1 */ - NEO_BIOS_SOUND_64K( "263-m1_decrypted.bin", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* bootleg: non-encrypted samples */ - ROM_LOAD( "ms4n_v1.rom", 0x000000, 0x800000, CRC(fd6b982e) SHA1(100313166c9ec57f1c540de05625c506b30ad13c) ) - ROM_LOAD( "ms4n_v2.rom", 0x800000, 0x800000, CRC(20125227) SHA1(2e350c0c580e87445bf103c01fc62b14f0c19216) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x3000000, REGION_GFX3, 0 ) - /* bootleg: non-encrypted gfx */ - ROM_LOAD16_BYTE( "ms4n_c1.rom", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ms4n_c2.rom", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "ms4n_c3.rom", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ms4n_c4.rom", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "ms4n_c5.rom", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "ms4n_c6.rom", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( rotd ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "264-p1.bin", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x10000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "264-m1.bin", 0x00000, 0x10000, CRC(9abd048c) SHA1(f96eecb419362bcac50ea4f48a707bdf4375ce9a) ) - /* Decrypted */ - NEO_BIOS_SOUND_64K( "264-m1_decrypted.bin", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "264-v1.bin", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) ) - ROM_LOAD( "264-v2.bin", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "264-c1.bin", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "264-c2.bin", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "264-c3.bin", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "264-c4.bin", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "264-c5.bin", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "264-c6.bin", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "264-c7.bin", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "264-c8.bin", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( kof2002 ) /* Encrypted Set */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "265-p1.bin", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) ) - ROM_LOAD16_WORD_SWAP( "265-p2.bin", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x20000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "265-m1.bin", 0x00000, 0x20000, CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) - /* Decrypted */ - NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) - ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k2pls ) /* bootleg */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "265-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) ) - ROM_LOAD16_WORD_SWAP( "265-p2.bin", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) - - NEO_SFIX_128K( "265-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) ) - - ROM_REGION( 0x20000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "265-m1.bin", 0x00000, 0x20000, CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) - /* Decrypted */ - NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) - ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k2pla ) /* bootleg */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "265-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) ) - ROM_LOAD16_WORD_SWAP( "265-p2.bin", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) ) - - NEO_SFIX_128K( "265-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e)) - - ROM_REGION( 0x20000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "265-m1.bin", 0x00000, 0x20000, CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) ) - /* Decrypted */ - NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) - ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k2mp ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) ) - ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) ) - - NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) ) - - /* Decrypted */ - NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) - ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k2mp2 ) /* bootleg */ - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) ) - ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) ) - - NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) ) - - /* Decrypted */ - NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) - ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( matrim ) /* Encrypted Set */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) ) - ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x20000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "266-m1.bin", 0x00000, 0x20000, CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) ) - /* Decrypted */ - NEO_BIOS_SOUND_128K( "266-m1_decrypted.bin", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "266-v1.bin", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) ) - ROM_LOAD( "266-v2.bin", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "266-c1.bin", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "266-c2.bin", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "266-c3.bin", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "266-c4.bin", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "266-c5.bin", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "266-c6.bin", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "266-c7.bin", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "266-c8.bin", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( pnyaa ) /* Encrypted Set */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "267-p1.bin", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "267-m1.bin", 0x00000, 0x80000, CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "267-m1_decrypted.bin", CRC(d58eaa8e) SHA1(4c4faf1da671a41b4d854790eb623a40cb35f256) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "267-v1.bin", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "267-c1.bin", 0x0000000, 0x800000, BAD_DUMP CRC(2e20617a) SHA1(ed73724377a321aa024a5886eb148c416d4451aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "267-c2.bin", 0x0000001, 0x800000, BAD_DUMP CRC(4edfa720) SHA1(1407a1d0d44f73c1a196c95d368d6451b17f6176) ) /* Plane 2,3 */ -ROM_END - -ROM_START( mslug5 ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "268-p1cr.bin", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) - ROM_LOAD32_WORD_SWAP( "268-p2cr.bin", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) ) - /* Decrypted */ - NEO_BIOS_SOUND_64K( "268-m1_decrypted.bin", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) - ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "268-c1c.bin", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c2c.bin", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c3c.bin", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c4c.bin", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c5c.bin", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c6c.bin", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c7c.bin", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c8c.bin", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ -ROM_END - -/* program roms are the same on the PCB version, GFX roms etc. are different arrangement */ -ROM_START( ms5pcb ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "268-p1.bin", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) ) - ROM_LOAD32_WORD_SWAP( "268-p2.bin", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x80000, REGION_USER1, 0 ) - /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ - ROM_LOAD16_WORD_SWAP( "268-bios.bin", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) ) - /* Decrypted */ - ROM_LOAD( "268-m1_decrypted.bin", 0x00000, 0x10000, CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) - ROM_RELOAD( 0x10000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1.bin", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD32_WORD( "268-c1.bin", 0x0000000, 0x1000000, CRC(802042e8) SHA1(ff028b65f60f0b51b255a380cc47ec19fdc0c0cf) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "268-c2.bin", 0x0000002, 0x1000000, CRC(3b89fb9f) SHA1(cbc0729aae961f683b105ec3e1cda58b3f985abc) ) /* Plane 2,3 */ - ROM_LOAD32_WORD( "268-c3.bin", 0x2000000, 0x1000000, CRC(0f3f59e3) SHA1(8cc751dc7d4e94864a9ce3346f23b8f011082fcc) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "268-c4.bin", 0x2000002, 0x1000000, CRC(3ad8435a) SHA1(b333c8993c9b4c4ea59450ad0a3560e0b28056bc) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ms5plus ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "268-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) ) - ROM_LOAD16_WORD_SWAP( "268-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) ) - ROM_LOAD16_WORD_SWAP( "268-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_LOAD("268-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) ) - /* Decrypted */ - NEO_BIOS_SOUND_64K( "268-m1_decrypted.bin", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) ) - ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "268-c1c.bin", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c2c.bin", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c3c.bin", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c4c.bin", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c5c.bin", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c6c.bin", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "268-c7c.bin", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "268-c8c.bin", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */ -ROM_END - -ROM_START( svcpcb ) /* Encrypted Set, JAMMA PCB */ - ROM_REGION( 0x2000000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "269-p1.bin", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) ) - - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x80000, REGION_USER1, 0 ) - /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ - ROM_LOAD16_WORD_SWAP( "269-bios.bin", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) - - ROM_REGION( 0x90000, REGION_CPU2, 0 ) - /* Encrypted */ - ROM_LOAD( "269-m1.bin", 0x00000, 0x20000, CRC(7d337756) SHA1(205b8b5be7acc8d564fe17835795f25b13c27d7a) ) - /* Decrypted */ - ROM_LOAD( "269-m1_decrypted.bin", 0x00000, 0x20000, CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) ) - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "269-v1.bin", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) - ROM_LOAD( "269-v2.bin", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD( "269-c1.bin", 0x0000000, 0x2000000, CRC(1b608f9c) SHA1(4e70ad182da2ca18815bd3936efb04a06ebce01e) ) /* Plane 0,1 */ - ROM_LOAD( "269-c2.bin", 0x2000000, 0x2000000, CRC(5a95f294) SHA1(6123cc7b20b494076185d27c2ffea910e124b195) ) /* Plane 0,1 */ -ROM_END - -/* alt PCB version, this one has the same program roms as the MVS set, and different GFX / Sound rom arrangements */ -ROM_START( svcpcba ) /* Encrypted Set, JAMMA PCB */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "269-p1a.bin", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) - ROM_LOAD32_WORD_SWAP( "269-p2a.bin", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) - - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x80000, REGION_USER1, 0 ) - /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */ - ROM_LOAD16_WORD_SWAP( "269-bios.bin", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) ) - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - /* Encrypted */ - ROM_LOAD( "269-m1.bin", 0x00000, 0x20000, CRC(7d337756) SHA1(205b8b5be7acc8d564fe17835795f25b13c27d7a) ) - /* Decrypted */ - ROM_LOAD( "269-m1_decrypted.bin", 0x00000, 0x20000, CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) ) - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "269-v1a.bin", 0x000000, 0x1000000, CRC(a6af4753) SHA1(ec4f61a526b707a7faec4653b773beb3bf3a17ba) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD32_WORD( "269-c1a.bin", 0x0000000, 0x1000000, CRC(e64d2b0c) SHA1(0714198c400e5c273181e4c6f906b49e35fef75d) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "269-c2a.bin", 0x0000002, 0x1000000, CRC(249089c2) SHA1(1c0ca19e330efe1a74b2d35a1a9a8d61481e16a9) ) /* Plane 2,3 */ - ROM_LOAD32_WORD( "269-c3a.bin", 0x2000000, 0x1000000, CRC(d32f2fab) SHA1(273d58cb3c9075075b1ca39a3b247a2cd545fbe7) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "269-c4a.bin", 0x2000002, 0x1000000, CRC(bf77e878) SHA1(e6e76f8eed0d04ee9ad39bf38ce305930b10e2c1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( svc ) /* Encrypted Set, MVS Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "269-p1c.bin", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) ) - ROM_LOAD32_WORD_SWAP( "269-p2c.bin", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "269-m1c.bin", 0x00000, 0x20000, CRC(7d337756) SHA1(205b8b5be7acc8d564fe17835795f25b13c27d7a) ) - /* Decrypted */ - NEO_BIOS_SOUND_128K( "269-m1_decrypted.bin", CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "269-v1c.bin", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) ) - ROM_LOAD( "269-v2c.bin", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "269-c1c.bin", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "269-c2c.bin", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "269-c3c.bin", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "269-c4c.bin", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "269-c5c.bin", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "269-c6c.bin", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "269-c7c.bin", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "269-c8c.bin", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( svcboot ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) - NEOGEO_BIOS - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( REGION_CPU2, 0x00000, 0x10000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) -ROM_END - -ROM_START( svcplus ) - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) ) - ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) ) - ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) ) - - NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) ) - - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) - NEOGEO_BIOS - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( REGION_CPU2, 0x00000, 0x10000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) -ROM_END - -ROM_START( svcplusa ) - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) ) - ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) ) - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) - NEOGEO_BIOS - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( REGION_CPU2, 0x00000, 0x10000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) -ROM_END - -ROM_START( svcsplus ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) ) - ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) ) - - NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) ) - - ROM_REGION16_BE( 0x20000, REGION_USER1, 0 ) - NEOGEO_BIOS - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) - ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) ) - ROM_CONTINUE( 0x00000, 0x10000 ) - ROM_COPY( REGION_CPU2, 0x00000, 0x10000, 0x10000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) ) - ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) ) - ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) ) - ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) - ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) - ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) - ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) - ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) - ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) - ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) - ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) -ROM_END - -ROM_START( samsho5 ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "270-p1.bin", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) ) - ROM_LOAD16_WORD_SWAP( "270-p2.bin", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "270-m1.bin", 0x00000, 0x40000, CRC(e4a5ab0c) SHA1(dcf74be51593a9c96607f3f776a1210b43df4ac9) ) - /* Decrypted */ - NEO_BIOS_SOUND_256K( "270-m1_decrypted.bin", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */ - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "270-v1.bin", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) - ROM_LOAD( "270-v2.bin", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "270-c1.bin", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c2.bin", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c3.bin", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c4.bin", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c5.bin", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c6.bin", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c7.bin", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c8.bin", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "270-p1c.bin", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) ) - ROM_LOAD16_WORD_SWAP( "270-p2c.bin", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "270-m1.bin", 0x00000, 0x40000, CRC(e4a5ab0c) SHA1(dcf74be51593a9c96607f3f776a1210b43df4ac9) ) - /* Decrypted */ - NEO_BIOS_SOUND_256K( "270-m1_decrypted.bin", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */ - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "270-v1.bin", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) - ROM_LOAD( "270-v2.bin", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "270-c1.bin", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c2.bin", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c3.bin", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c4.bin", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c5.bin", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c6.bin", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c7.bin", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c8.bin", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsho5b ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "270-p2b.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) ) - ROM_LOAD16_WORD_SWAP( "270-p1b.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "270-m1.bin", 0x00000, 0x40000, CRC(e4a5ab0c) SHA1(dcf74be51593a9c96607f3f776a1210b43df4ac9) ) - /* Decrypted */ - NEO_BIOS_SOUND_256K( "270-m1_decrypted.bin", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */ - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "270-v1.bin", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) ) - ROM_LOAD( "270-v2.bin", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "270-c1.bin", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c2.bin", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c3.bin", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c4.bin", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c5.bin", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c6.bin", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "270-c7.bin", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "270-c8.bin", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k3pcb ) /* Encrypted Set, Decrypted C - JAMMA board */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) ) - ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) ) - ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x100000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION16_BE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD_SWAP( "271-bios.bin", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) ) // encrypted - - ROM_REGION( 0x90000, REGION_CPU2, 0 ) - /* Encrypted */ - ROM_LOAD( "271-m1.bin", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) ) - /* Decrypted */ - ROM_LOAD( "271-m1_decrypted.bin", 0x00000, 0x80000, CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) - ROM_RELOAD( 0x10000, 0x80000 ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x6000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD32_WORD( "271-c1.bin", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "271-c2.bin", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) ) /* Plane 2,3 */ - ROM_LOAD32_WORD( "271-c3.bin", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "271-c4.bin", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) ) /* Plane 2,3 */ - ROM_LOAD32_WORD( "271-c5.bin", 0x4000000, 0x1000000, CRC(18aa3540) SHA1(15e0a8c4e0927b1f7eb9bee8f532acea6818d5eb) ) /* Plane 0,1 */ - ROM_LOAD32_WORD( "271-c6.bin", 0x4000002, 0x1000000, CRC(1c40de87) SHA1(8d6425aed43ff6a96c88194e203df6a783286373) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ - ROM_REGION( 0x900000, REGION_CPU1, 0 ) - ROM_LOAD32_WORD_SWAP( "271-p1c.bin", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) ) - ROM_LOAD32_WORD_SWAP( "271-p2c.bin", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) ) - ROM_LOAD16_WORD_SWAP( "271-p3c.bin", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) // Encrypted - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x080000, REGION_USER4, 0 ) - /* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */ - ROM_LOAD( "271-m1c.bin", 0x00000, 0x080000, CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "271-m1_decrypted.bin", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "271-v1c.bin", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) - ROM_LOAD( "271-v2c.bin", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "271-c1c.bin", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) ) - ROM_LOAD16_BYTE( "271-c2c.bin", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) ) - ROM_LOAD16_BYTE( "271-c3c.bin", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) ) - ROM_LOAD16_BYTE( "271-c4c.bin", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) ) - ROM_LOAD16_BYTE( "271-c5c.bin", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) ) - ROM_LOAD16_BYTE( "271-c6c.bin", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) ) - ROM_LOAD16_BYTE( "271-c7c.bin", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) ) - ROM_LOAD16_BYTE( "271-c8c.bin", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) ) -ROM_END - -ROM_START( kf2k3bl ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "271-p1bl.bin" , 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) ) - ROM_LOAD16_WORD_SWAP( "271-p2bl.bin" , 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) ) - ROM_CONTINUE( 0x000000, 0x100000 ) - ROM_CONTINUE( 0x000000, 0x100000 ) - - NEO_SFIX_128K( "271-s1bl.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) - - NEO_BIOS_SOUND_128K( "271-m1bl.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k3-v1.bin", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) - ROM_LOAD( "2k3-v2.bin", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) - ROM_LOAD( "2k3-v3.bin", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) - ROM_LOAD( "2k3-v4.bin", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "2k3-c1.bin", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) - ROM_LOAD16_BYTE( "2k3-c2.bin", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) - ROM_LOAD16_BYTE( "2k3-c3.bin", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) - ROM_LOAD16_BYTE( "2k3-c4.bin", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) - ROM_LOAD16_BYTE( "2k3-c5.bin", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) - ROM_LOAD16_BYTE( "2k3-c6.bin", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) - ROM_LOAD16_BYTE( "2k3-c7.bin", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) - ROM_LOAD16_BYTE( "2k3-c8.bin", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) -ROM_END - - -ROM_START( kf2k3bla ) - ROM_REGION( 0x700000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "271-p1bl.rom", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) ) - ROM_LOAD16_WORD_SWAP( "271-p3bl.rom", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) - ROM_LOAD16_WORD_SWAP( "271-p2bl.rom", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) - - NEO_SFIX_128K( "271-s1bl.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) ) - - NEO_BIOS_SOUND_128K( "271-m1bl.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k3-v1.bin", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) - ROM_LOAD( "2k3-v2.bin", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) - ROM_LOAD( "2k3-v3.bin", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) - ROM_LOAD( "2k3-v4.bin", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "2k3-c1.bin", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) - ROM_LOAD16_BYTE( "2k3-c2.bin", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) - ROM_LOAD16_BYTE( "2k3-c3.bin", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) - ROM_LOAD16_BYTE( "2k3-c4.bin", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) - ROM_LOAD16_BYTE( "2k3-c5.bin", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) - ROM_LOAD16_BYTE( "2k3-c6.bin", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) - ROM_LOAD16_BYTE( "2k3-c7.bin", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) - ROM_LOAD16_BYTE( "2k3-c8.bin", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) -ROM_END - -ROM_START( kf2k3pl ) - ROM_REGION( 0x700000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "271-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) ) - ROM_LOAD16_WORD_SWAP( "271-p3bl.rom", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) ) - ROM_LOAD16_WORD_SWAP( "271-p2bl.rom", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) ) - - NEO_SFIX_128K( "271-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) ) - - NEO_BIOS_SOUND_128K( "271-m1bl.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k3-v1.bin", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) - ROM_LOAD( "2k3-v2.bin", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) - ROM_LOAD( "2k3-v3.bin", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) - ROM_LOAD( "2k3-v4.bin", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "2k3-c1.bin", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) - ROM_LOAD16_BYTE( "2k3-c2.bin", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) - ROM_LOAD16_BYTE( "2k3-c3.bin", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) - ROM_LOAD16_BYTE( "2k3-c4.bin", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) - ROM_LOAD16_BYTE( "2k3-c5.bin", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) - ROM_LOAD16_BYTE( "2k3-c6.bin", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) - ROM_LOAD16_BYTE( "2k3-c7.bin", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) - ROM_LOAD16_BYTE( "2k3-c8.bin", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) -ROM_END - -ROM_START( kf2k3upl ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) ) - - NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) ) - - NEO_BIOS_SOUND_128K( "271-m1bl.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "2k3-v1.bin", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) ) - ROM_LOAD( "2k3-v2.bin", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) ) - ROM_LOAD( "2k3-v3.bin", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) ) - ROM_LOAD( "2k3-v4.bin", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "2k3-c1.bin", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) ) - ROM_LOAD16_BYTE( "2k3-c2.bin", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) ) - ROM_LOAD16_BYTE( "2k3-c3.bin", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) ) - ROM_LOAD16_BYTE( "2k3-c4.bin", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) ) - ROM_LOAD16_BYTE( "2k3-c5.bin", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) ) - ROM_LOAD16_BYTE( "2k3-c6.bin", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) ) - ROM_LOAD16_BYTE( "2k3-c7.bin", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) ) - ROM_LOAD16_BYTE( "2k3-c8.bin", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) ) -ROM_END - - -ROM_START( samsh5sp ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "272-p1.bin", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) ) - ROM_LOAD16_WORD_SWAP( "272-p2.bin", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "272-m1.bin", 0x00000, 0x80000, CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "272-m1_decrypted.bin", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.bin", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.bin", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.bin", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.bin", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.bin", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.bin", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.bin", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.bin", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.bin", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.bin", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsh5sh ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "272-p1c.bin", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) ) - ROM_LOAD16_WORD_SWAP( "272-p2c.bin", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "272-m1.bin", 0x00000, 0x80000, CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "272-m1_decrypted.bin", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.bin", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.bin", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.bin", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.bin", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.bin", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.bin", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.bin", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.bin", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.bin", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.bin", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - -ROM_START( samsh5sn ) /* Encrypted Set */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "272-p1ca.bin", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) ) - ROM_LOAD16_WORD_SWAP( "272-p2ca.bin", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */ - ROM_FILL( 0x000000, 0x80000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* Encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "272-m1.bin", 0x00000, 0x80000, CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "272-m1_decrypted.bin", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - /* Encrypted */ - ROM_LOAD( "272-v1.bin", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) ) - ROM_LOAD( "272-v2.bin", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "272-c1.bin", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c2.bin", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c3.bin", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c4.bin", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c5.bin", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c6.bin", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "272-c7.bin", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "272-c8.bin", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( jockeygp ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "jgp-p1.bin", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) ) - ROM_FILL( 0x100000, 0x100000, 0xff ) - - /* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - ROM_REGION( 0x80000, REGION_USER4, 0 ) - /* encrypted, we load it here for reference and replace with decrypted ROM */ - ROM_LOAD( "jgp-m1.bin", 0x00000, 0x80000, CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) ) - /* Decrypted */ - NEO_BIOS_SOUND_512K( "jgp-m1_decrypted.bin", CRC(1cab4de2) SHA1(112ff90806d8757db0685b88b762c45ed02548de) ) - - ROM_REGION( 0x0200000, REGION_SOUND1, 0 ) - ROM_LOAD( "jgp-v1.bin", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x1000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "jgp-c1.bin", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) ) - ROM_LOAD16_BYTE( "jgp-c2.bin", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) ) -ROM_END - -ROM_START( vliner ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "vl_p1.rom", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) ) - - NEO_SFIX_128K( "vl_s1.rom", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) - - NEO_BIOS_SOUND_64K( "vl_m1.rom", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASE00 ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "vl_c1.rom", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "vl_c2.rom", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ -ROM_END - -ROM_START( vlinero ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "vl_p1_54.rom", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) ) - - NEO_SFIX_128K( "vl_s1.rom", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) ) - - NEO_BIOS_SOUND_64K( "vl_m1.rom", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASE00 ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "vl_c1.rom", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "vl_c2.rom", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) ) /* Plane 2,3 */ -ROM_END - -/* Various Bootlegs */ - -ROM_START( kog ) - ROM_REGION( 0x600000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) ) - ROM_LOAD16_WORD_SWAP( "232-p2.bin", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) - - NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) ) - - NEO_BIOS_SOUND_128K( "232-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) ) - - ROM_REGION( 0xc00000, REGION_SOUND1, 0 ) - ROM_LOAD( "232-v1.bin", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) ) - ROM_LOAD( "232-v2.bin", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) ) - ROM_LOAD( "232-v3.bin", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) ) - - ROM_REGION( 0x2800000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) ) /* Plane 2,3 */ -ROM_END - -ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) ) - ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) - - NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) ) - - NEO_BIOS_SOUND_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) - - /* sound roms are identical to kof2001 */ - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) - ROM_LOAD( "262-v2.bin", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) - ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) - ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) ) - ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) - ROM_LOAD( "5003-s1sp.bin", 0x00000, 0x40000, CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) ) - - /* sound roms are identical to kof2001 */ - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) ) - ROM_LOAD( "262-v2.bin", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) ) - ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) ) - ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof2k4se ) - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) ) - ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) ) - - NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) ) - - NEO_BIOS_SOUND_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) ) - ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kof10th ) - ROM_REGION( 0x900000, REGION_CPU1, 0 ) // Modified - ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) // modified - ROM_FILL( 0x000000, 0x40000, 0 ) // modified - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) - - NEO_BIOS_SOUND_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf2k5uni ) - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) ) - ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) ) - - NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) ) - - NEO_BIOS_SOUND_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) ) /* Plane 2,3 */ -ROM_END - -ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */ - ROM_REGION( 0x800000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "5008-p2.rom", 0x100000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) ) - ROM_LOAD16_WORD_SWAP( "5008-p3.rom", 0x500000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) ) - - ROM_REGION( 0x200000, REGION_USER4, 0 ) - ROM_LOAD( "5008-p1.rom", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) ) - - NEO_SFIX_128K( "5008-s1.rom", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) ) - - NEO_BIOS_SOUND_128K( "5008-m1.rom", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) ) - //NEO_BIOS_SOUND_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) ) - ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "5008-c7b.rom", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "5008-c8b.rom", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) ) /* Plane 2,3 */ -ROM_END - - -ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */ - ROM_REGION( 0x500000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) ) - ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) ) - - NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) ) - - NEO_BIOS_SOUND_512K( "256-m1.bin", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) ) - - ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) - ROM_LOAD( "256-v1.bin", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) ) - ROM_LOAD( "256-v2.bin", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) ) - ROM_LOAD( "256-v3.bin", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) ) - ROM_LOAD( "256-v4.bin", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x4000000, REGION_GFX3, 0 ) - /* Encrypted */ - ROM_LOAD16_BYTE( "256-c1.bin", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c2.bin", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c3.bin", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c4.bin", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c5.bin", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c6.bin", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) ) /* Plane 2,3 */ - ROM_LOAD16_BYTE( "256-c7.bin", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) ) /* Plane 0,1 */ - ROM_LOAD16_BYTE( "256-c8.bin", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) ) /* Plane 2,3 */ -ROM_END - -ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "dig_p1.rom", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) ) - - NEO_SFIX_64K( "dig_s1.rom", CRC(75a88c1f) SHA1(295dd9225f1e3d2fc64a65b3c287c7f1765417b1) ) - - NEO_BIOS_SOUND_64K( "dig_m1.rom", CRC(833cdf1b) SHA1(3a92c79adbe0d37956ea46a4746d6f1cbf7d2c14) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "dig_v1.rom", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) ) - - NO_DELTAT_REGION - - ROM_REGION( 0x400000, REGION_GFX3, 0 ) - ROM_LOAD16_BYTE( "dig_c1.rom", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) ) - ROM_LOAD16_BYTE( "dig_c2.rom", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) ) -ROM_END - - -/******************************************************************************/ - -/* dummy entry for the dummy bios driver */ -ROM_START( neogeo ) - ROM_REGION16_BE( 0x020000, REGION_USER1, 0 ) - NEOGEO_BIOS - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) - ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) ) - - ROM_REGION( 0x10000, REGION_GFX4, 0 ) - ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) ) /* Y zoom control */ - - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_FILL( 0x000000, 0x20000, 0 ) - ROM_REGION( 0x20000, REGION_GFX2, 0 ) - ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) -ROM_END - -DRIVER_INIT( fatfury2 ) -{ - init_neogeo(machine); - fatfury2_install_protection(); -} - -DRIVER_INIT( mslugx ) -{ - init_neogeo(machine); - mslugx_install_protection(); -} - -DRIVER_INIT( kof99 ) -{ - kof99_decrypt_68k(); - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x00); - init_neogeo(machine); - kof99_install_protection(); -} - -DRIVER_INIT( garou ) -{ - garou_decrypt_68k(); - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x06); - init_neogeo(machine); - garou_install_protection(); -} - -DRIVER_INIT( garouo ) -{ - garouo_decrypt_68k(); - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x06); - init_neogeo(machine); - garouo_install_protection(); -} - -DRIVER_INIT( mslug3 ) -{ - mslug3_decrypt_68k(); - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xad); - init_neogeo(machine); - mslug3_install_protection(); -} - -DRIVER_INIT( kof2000 ) -{ - kof2000_decrypt_68k(); - neogeo_fix_bank_type = 2; - kof2000_neogeo_gfx_decrypt(0x00); - init_neogeo(machine); - kof2000_install_protection(); -} - -DRIVER_INIT( kof2001 ) -{ - neogeo_fix_bank_type = 0; - kof2000_neogeo_gfx_decrypt(0x1e); - init_neogeo(machine); -} - -DRIVER_INIT( mslug4 ) -{ - neogeo_fix_bank_type = 1; /* USA violent content screen is wrong -- not a bug, confirmed on real hardware! */ - kof2000_neogeo_gfx_decrypt(0x31); - init_neogeo(machine); - neo_pcm2_snk_1999(8); -} - -DRIVER_INIT( kof99n ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x00); - init_neogeo(machine); -} - -DRIVER_INIT( ganryu ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x07); - init_neogeo(machine); -} - -DRIVER_INIT( s1945p ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x05); - init_neogeo(machine); -} - -DRIVER_INIT( preisle2 ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0x9f); - init_neogeo(machine); -} - -DRIVER_INIT( mslug3n ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xad); - init_neogeo(machine); -} - -DRIVER_INIT( kof2000n ) -{ - neogeo_fix_bank_type = 2; - kof2000_neogeo_gfx_decrypt(0x00); - init_neogeo(machine); -} - -DRIVER_INIT( bangbead ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xf8); - init_neogeo(machine); -} - -DRIVER_INIT( nitd ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xff); - init_neogeo(machine); -} - -DRIVER_INIT( zupapa ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xbd); - init_neogeo(machine); -} - -DRIVER_INIT( sengoku3 ) -{ - neogeo_fix_bank_type = 1; - kof99_neogeo_gfx_decrypt(0xfe); - init_neogeo(machine); -} - -DRIVER_INIT ( kof98 ) -{ - kof98_decrypt_68k(); - init_neogeo(machine); - install_kof98_protection(); -} - -/* The Mahjong games can use a Mahjong panel (although some sources indicate it may have only - been available for the home system */ -DRIVER_INIT( mjneogeo ) -{ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x300000, 0x300001, 0, 0, mjneogeo_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x380000, 0x380001, 0, 0, mjneogeo_w); - init_neogeo(machine); -} - -/* Pop and Bounce and use a custom Spinner for Controls */ -DRIVER_INIT( popbounc ) -{ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x300000, 0x300001, 0, 0, popbounc1_16_r); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x340000, 0x340001, 0, 0, popbounc2_16_r); - init_neogeo(machine); -} - -DRIVER_INIT( rotd ) -{ - neo_pcm2_snk_1999(16); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x3f); - init_neogeo(machine); -} - - -DRIVER_INIT( kof2002 ) -{ - kof2002_decrypt_68k(); - neo_pcm2_swap(0); - neogeo_fix_bank_type = 0; - kof2000_neogeo_gfx_decrypt(0xec); - init_neogeo(machine); -} - -DRIVER_INIT( kf2k2pls ) -{ - kof2002_decrypt_68k(); - neo_pcm2_swap(0); - neogeo_fix_bank_type = 0; - cmc50_neogeo_gfx_decrypt(0xec); - init_neogeo(machine); -} - -DRIVER_INIT( kf2k2mp ) -{ - kf2k2mp_decrypt(); - neo_pcm2_swap(0); - neogeo_bootleg_sx_decrypt(2); - neogeo_fix_bank_type = 0; - cmc50_neogeo_gfx_decrypt(0xec); - init_neogeo(machine); -} - -DRIVER_INIT( kof2km2 ) -{ - kof2km2_px_decrypt(); - neo_pcm2_swap(0); - neogeo_bootleg_sx_decrypt(1); - neogeo_fix_bank_type = 0; - cmc50_neogeo_gfx_decrypt(0xec); - init_neogeo(machine); -} - -DRIVER_INIT( matrim ) -{ - matrim_decrypt_68k(); - neo_pcm2_swap(1); - neogeo_fix_bank_type = 2; - kof2000_neogeo_gfx_decrypt(0x6a); - init_neogeo(machine); -} - -DRIVER_INIT( pnyaa ) -{ - neo_pcm2_snk_1999(4); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x2e); - init_neogeo(machine); -} - -DRIVER_INIT( mslug5 ) /* By HalRIN */ -{ - mslug5_decrypt_68k(); - neo_pcm2_swap(2); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x19); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( ms5pcb ) -{ - mslug5_decrypt_68k(); - svcpcb_gfx_decrypt(); - kof2000_neogeo_gfx_decrypt(0x19); - neogeo_fix_bank_type = 2; - svcpcb_s1data_decrypt(); - neo_pcm2_swap(2); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( ms5plus ) -{ - cmc50_neogeo_gfx_decrypt(0x19); - neo_pcm2_swap(2); -// decrypt_ms5plus_s1(); - neogeo_bootleg_sx_decrypt(1); - neogeo_fix_bank_type = 1; - init_neogeo(machine); - install_ms5plus_protection(); -} - -DRIVER_INIT( svcpcb ) -{ - svcchaos_px_decrypt(); - svcpcb_gfx_decrypt(); - kof2000_neogeo_gfx_decrypt(0x57); - svcpcb_s1data_decrypt(); - neo_pcm2_swap(3); - neogeo_fix_bank_type = 2; - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( svchaosa ) /* By HalRIN */ -{ - svcchaos_px_decrypt(); - neo_pcm2_swap(3); - neogeo_fix_bank_type = 2; - kof2000_neogeo_gfx_decrypt(0x57); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( svcboot ) -{ - svcboot_px_decrypt(); - svcboot_cx_decrypt(); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( svcplus ) -{ - svcplus_px_decrypt(); - svcboot_cx_decrypt(); -// svcplus_sx_decrypt(); - neogeo_bootleg_sx_decrypt(1); - svcplus_px_hack(); - init_neogeo(machine); -} - -DRIVER_INIT( svcplusa ) -{ - svcplusa_px_decrypt(); - svcboot_cx_decrypt(); - svcplus_px_hack(); - init_neogeo(machine); -} - -DRIVER_INIT( svcsplus ) -{ - svcsplus_px_decrypt(); -// svcsplus_sx_decrypt(); - neogeo_bootleg_sx_decrypt(2); - svcboot_cx_decrypt(); - svcsplus_px_hack(); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( samsho5 ) -{ - samsho5_decrypt_68k(); - neo_pcm2_swap(4); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x0f); - init_neogeo(machine); -} - -DRIVER_INIT( samsho5b ) -{ - neo_pcm2_swap(4); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x0f); - samsh5bl_px_decrypt(); - init_neogeo(machine); -} - -DRIVER_INIT( kf2k3pcb ) /* Jamama, Single Board */ -{ - kf2k3pcb_decrypt_68k(); - kf2k3pcb_gfx_decrypt(); - kof2000_neogeo_gfx_decrypt(0x9d); - kf2k3pcb_decrypt_s1data(); - kof2003biosdecode(); - /* rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2) -- extra encrypted m1 swap? not confirmed */ - neo_pcm2_swap(5); - neogeo_fix_bank_type = 2; - init_neogeo(machine); - install_pvc_protection(); - memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc7ffff, 0, 0, MRA16_BANK3 ); // 512k bios -} - - -DRIVER_INIT( kof2003 ) -{ - kof2003_decrypt_68k(); - neo_pcm2_swap(5); - neogeo_fix_bank_type = 2; - kof2000_neogeo_gfx_decrypt(0x9d); - init_neogeo(machine); - install_pvc_protection(); -} - -DRIVER_INIT( kof2003b ) -{ -// kof2003b_sx_decrypt(); - neogeo_bootleg_sx_decrypt(1); - init_neogeo(machine); - kof2003b_install_protection(); -} - -DRIVER_INIT( kof2k3pl ) -{ - kof2k3pl_px_decrypt(); - //decrypt_ms5plus_s1(); - neogeo_bootleg_sx_decrypt(1); - init_neogeo(machine); - kf2k3pl_install_protection(); -} - - -DRIVER_INIT( kof2k3up ) -{ - kof2k3up_px_decrypt(); -// kof2k3up_sx_decrypt(); - neogeo_bootleg_sx_decrypt(2); - init_neogeo(machine); - kof2k3up_install_protection(); -} - - - -DRIVER_INIT( samsh5sp ) -{ - samsh5p_decrypt_68k(); - neo_pcm2_swap(6); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0x0d); - init_neogeo(machine); -} - - -static UINT16 *brza_sram; - -READ16_HANDLER( vliner_2c0000_r ) -{ - return 0x0003; -} - -READ16_HANDLER( vliner_coins_r ) -{ - UINT16 res; - res = readinputport(4); - - return res; -} - -READ16_HANDLER( vliner_timer16_r ) -{ - UINT16 res; - int coinflip = pd4990a_testbit_r(0); - int databit = pd4990a_databit_r(0); - - res = 0x3f ^ (coinflip << 6) ^ (databit << 7); - - res |= result_code << 8; - if (pending_command) res &= 0x7fff; - - return res; -} - - -READ16_HANDLER( brza_sram16_2_r ) -{ - return brza_sram[offset]; -} - -WRITE16_HANDLER( brza_sram16_2_w ) -{ - COMBINE_DATA(&brza_sram[offset]); -} - -DRIVER_INIT( jockeygp ) -{ - brza_sram = auto_malloc(0x2000); - neogeo_fix_bank_type = 1; - kof2000_neogeo_gfx_decrypt(0xac); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x200000, 0x201FFF, 0, 0, brza_sram16_2_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x200000, 0x201FFF, 0, 0, brza_sram16_2_w); -// memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x320000, 0x320001, 0, 0, vliner_timer16_r ); -// memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x280000, 0x280001, 0, 0, vliner_coins_r ); -// memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2c0000, 0x2c0001, 0, 0, vliner_2c0000_r ); - - init_neogeo(machine); -} - -DRIVER_INIT( vliner ) -{ - brza_sram = auto_malloc(0x2000); - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x200000, 0x201FFF, 0, 0, brza_sram16_2_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x200000, 0x201FFF, 0, 0, brza_sram16_2_w); - memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x320000, 0x320001, 0, 0, vliner_timer16_r ); - memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x280000, 0x280001, 0, 0, vliner_coins_r ); - memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2c0000, 0x2c0001, 0, 0, vliner_2c0000_r ); - - init_neogeo(machine); -} - -/* bootleg related INITs */ - -DRIVER_INIT( kog ) -{ - kog_px_decrypt(); - neogeo_bootleg_sx_decrypt(1); - neogeo_bootleg_cx_decrypt(); - init_neogeo(machine); -} - - -DRIVER_INIT( kof10th ) -{ - decrypt_kof10th(); - init_neogeo(machine); - install_kof10th_protection(); -} - -DRIVER_INIT( kf10thep ) -{ - decrypt_kf10thep(); - init_neogeo(machine); -} - - -DRIVER_INIT( kf2k5uni ) -{ - decrypt_kf2k5uni(); - init_neogeo(machine); -} - -DRIVER_INIT( cthd2003 ) -{ - decrypt_cthd2003(); - init_neogeo(machine); - patch_cthd2003(); -} - -DRIVER_INIT ( ct2k3sp ) -{ - decrypt_ct2k3sp(); - init_neogeo(machine); - patch_cthd2003(); -} - -DRIVER_INIT( kof2k4se ) -{ - decrypt_kof2k4se_68k(); - init_neogeo(machine); -} - -DRIVER_INIT( lans2004 ) -{ - lans2004_decrypt_68k(); /* decrypt 68k + apply protection patches */ - lans2004_vx_decrypt(); - neogeo_bootleg_sx_decrypt(1); - neogeo_bootleg_cx_decrypt(); - init_neogeo(machine); -} - -DRIVER_INIT( mslug3b6 ) -{ - neogeo_bootleg_sx_decrypt(2); - cmc42_neogeo_gfx_decrypt(0xad); - init_neogeo(machine); -} - - - -/******************************************************************************/ - -static UINT32 cpu1_second_bankaddress; - -void neogeo_set_cpu1_second_bank(UINT32 bankaddress) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - cpu1_second_bankaddress = bankaddress; - memory_set_bankptr(4,&RAM[bankaddress]); -} - -void neogeo_init_cpu2_setbank(void) -{ - UINT8 *mem08 = memory_region(REGION_CPU2); - - memory_set_bankptr(5,&mem08[bank[0]]); - memory_set_bankptr(6,&mem08[bank[1]]); - memory_set_bankptr(7,&mem08[bank[2]]); - memory_set_bankptr(8,&mem08[bank[3]]); -} - -static void neogeo_init_cpu_banks(void) -{ - neogeo_set_cpu1_second_bank(cpu1_second_bankaddress); - neogeo_init_cpu2_setbank(); -} - -void neogeo_register_main_savestate(void) -{ - state_save_register_global(neogeo_frame_counter); - state_save_register_global(neogeo_frame_counter_speed); - state_save_register_global(current_rastercounter); - state_save_register_global(current_rasterline); - state_save_register_global(scanline_read); - state_save_register_global(irq2start); - state_save_register_global(irq2control); - state_save_register_global(irq2pos_value); - state_save_register_global(vblank_int); - state_save_register_global(scanline_int); - state_save_register_global(fc); - state_save_register_global(neogeo_raster_enable); - state_save_register_global(pending_command); - state_save_register_global(result_code); - state_save_register_global(ts); - state_save_register_global_array(bank); - state_save_register_global(neogeo_rng); - state_save_register_global(cpu1_second_bankaddress); - - state_save_register_func_postload(neogeo_init_cpu_banks); -} - -/******************************************************************************/ - -/* A dummy driver, so that the bios can be debugged, and to serve as */ -/* parent for the NEOGEO_BIOS files, so that we do not have to include */ -/* them in every zip file */ -GAMEB( 1990, neogeo, 0, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Neo-Geo", NOT_A_DRIVER ) - -/******************************************************************************/ - -/* YEAR NAME PARENT BIOS MACHINE INPUT INIT MONITOR */ - -/* SNK */ -GAMEB( 1990, nam1975, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "NAM-1975", 0 ) -GAMEB( 1990, bstars, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Baseball Stars Professional", 0 ) -GAMEB( 1990, tpgolf, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Top Player's Golf", 0 ) -GAMEB( 1990, mahretsu, neogeo, neogeo, neogeo, mjneogeo,mjneogeo, ROT0, "SNK", "Mahjong Kyoretsuden", 0 ) -GAMEB( 1990, ridhero, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Riding Hero (set 1)", 0 ) -GAMEB( 1990, ridheroh, ridhero, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Riding Hero (set 2)", 0 ) -GAMEB( 1991, alpham2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian", 0 ) -GAMEB( 1990, cyberlip, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Cyber-Lip", 0 ) -GAMEB( 1990, superspy, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The Super Spy", 0 ) -GAMEB( 1992, mutnat, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Mutation Nation", 0 ) -GAMEB( 1991, kotm, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", 0 ) -GAMEB( 1991, kotmh, kotm, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", 0 ) -GAMEB( 1991, sengoku, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (set 1)", 0 ) -GAMEB( 1991, sengokh, sengoku, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (set 2)", 0 ) -GAMEB( 1991, burningf, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Burning Fight (set 1)", 0 ) -GAMEB( 1991, burningh, burningf, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Burning Fight (set 2)", 0 ) -GAMEB( 1990, lbowling, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "League Bowling", 0 ) -GAMEB( 1991, gpilots, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Ghost Pilots", 0 ) -GAMEB( 1990, joyjoy, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid", 0 ) -GAMEB( 1991, quizdais, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down", 0 ) -GAMEB( 1992, lresort, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Last Resort", 0 ) -GAMEB( 1991, eightman, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK / Pallas", "Eight Man", 0 ) -GAMEB( 1991, legendos, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashitano Joe Densetsu", 0 ) -GAMEB( 1991, 2020bb, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", 0 ) -GAMEB( 1991, 2020bba, 2020bb, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", 0 ) -GAMEB( 1991, 2020bbh, 2020bb, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", 0 ) -GAMEB( 1991, socbrawl, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Soccer Brawl", 0 ) -GAMEB( 1991, fatfury1, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai", 0 ) -GAMEB( 1991, roboarmy, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Robo Army (set 1)", 0 ) -GAMEB( 1991, roboarma, roboarmy, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Robo Army (set 2)", 0 ) -GAMEB( 1992, fbfrenzy, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Football Frenzy", 0 ) -GAMEB( 1992, kotm2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing", 0 ) -GAMEB( 1993, sengoku2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", 0) -GAMEB( 1992, bstars2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Baseball Stars 2", 0 ) -GAMEB( 1992, quizdai2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2", 0 ) -GAMEB( 1993, 3countb, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex", 0 ) -GAMEB( 1992, aof, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken", 0 ) -GAMEB( 1993, samsho, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits", 0 ) -GAMEB( 1994, tophuntr, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (set 1)", 0 ) -GAMEB( 1994, tophunta, tophuntr, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (set 2)", 0 ) -GAMEB( 1992, fatfury2, neogeo, neogeo, neogeo, neogeo, fatfury2, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai", 0 ) -GAMEB( 1992, ssideki, neogeo, neogeo, neogeo, neogeo, fatfury2, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", 0 ) -GAMEB( 1994, kof94, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '94", 0 ) -GAMEB( 1994, aof2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (set 1)", 0 ) -GAMEB( 1994, aof2a, aof2, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (set 2)", 0 ) -GAMEB( 1993, fatfursp, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 1)", 0 ) -GAMEB( 1993, fatfursa, fatfursp, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 2)", 0 ) -GAMEB( 1995, savagere, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - kakutou sousei", 0 ) -GAMEB( 1994, ssideki2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football", 0 ) -GAMEB( 1994, samsho2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen", 0 ) -/* Jin Saulabi Tu Hon (Samurai shodown 2) - Korean censored version - http://www.kmrb.or.kr/Game_Image/1999/%EC%A0%9C1273%ED%98%B8.jpg */ -GAMEB( 1995, fatfury3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai", 0 ) -GAMEB( 1995, ssideki3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikoue no michi", 0 ) -GAMEB( 1995, kof95, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '95 (set 1)", 0 ) -GAMEB( 1995, kof95a, kof95, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '95 (set 2)", 0 ) -GAMEB( 1995, samsho3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (set 1)", 0 ) -GAMEB( 1995, samsho3a, samsho3, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (set 2)", 0 ) -GAMEB( 1995, fswords, samsho3, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", 0 ) -GAMEB( 1995, rbff1, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu", 0 ) -GAMEB( 1996, aof3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", 0 ) -GAMEB( 1996, aof3k, aof3, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", 0 ) // no Japanese title / mode -GAMEB( 1996, kof96, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '96 (set 1)", 0 ) -GAMEB( 1996, kof96h, kof96, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '96 (set 2)", 0 ) -GAMEB( 1996, ssideki4, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero, The", 0 ) -GAMEB( 1996, kizuna, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", 0 ) -GAMEB( 1996, samsho4, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin", 0 ) -/* Pae Wang Jeon Seol / Legend of Warrior - Korean / Chinese censored version of SamSho4, see http://www.kmrb.or.kr/Game_Image/1999/%EC%A0%9C2064%ED%98%B8.jpg */ -GAMEB( 1996, rbffspec, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", 0 ) -GAMEB( 1997, kof97, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '97 (set 1)", 0 ) -GAMEB( 1997, kof97a, kof97, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '97 (set 2)", 0 ) -GAMEB( 1997, kof97pls, kof97, neogeo, neogeo, neogeo, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", 0 ) -GAMEB( 1997, kog, kof97, neogeo, neogeo, kog, kog, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", GAME_NOT_WORKING ) // protected bootleg -GAMEB( 1997, lastblad, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Last Blade / Bakumatsu Roman - Gekka no Kenshi, The (set 1)", 0 ) -GAMEB( 1997, lastblda, lastblad, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Last Blade / Bakumatsu Roman - Gekka no Kenshi, The (set 2)", 0 ) -GAMEB( 1997, lastsold, lastblad, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", 0 ) -GAMEB( 1997, irrmaze, neogeo, neogeo, neogeo, irrmaze, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", 0 ) -GAMEB( 1998, rbff2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (set 1)", 0 ) -GAMEB( 1998, rbff2a, rbff2, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (set 2)", 0 ) -GAMEB( 1998, rbff2k, rbff2, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", 0 ) // no Japanese title / mode -GAMEB( 1998, mslug2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II", 0 ) -GAMEB( 1998, kof98, neogeo, neogeo, neogeo, neogeo, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends", 0 ) -GAMEB( 1998, kof98k, kof98, neogeo, neogeo, neogeo, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board)", 0 ) -GAMEB( 1998, kof98n, kof98, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (not encrypted)", 0 ) -GAMEB( 1998, lastbld2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi, The", 0 ) -GAMEB( 1998, neocup98, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", 0 ) -GAMEB( 1999, mslugx, neogeo, neogeo, neogeo, neogeo, mslugx, ROT0, "SNK", "Metal Slug X - Super Vehicle-001", 0 ) -GAMEB( 1999, kof99, neogeo, neogeo, neogeo, neogeo, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (set 1)" , 0) /* Encrypted Code & GFX */ -GAMEB( 1999, kof99a, kof99, neogeo, neogeo, neogeo, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (set 2)" , 0) /* Encrypted Code & GFX, crashes going into attract demo */ -GAMEB( 1999, kof99e, kof99, neogeo, neogeo, neogeo, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , 0) /* Encrypted Code & GFX */ -GAMEB( 1999, kof99n, kof99, neogeo, neogeo, neogeo, kof99n, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (not encrypted)" , 0) /* Encrypted GFX */ -GAMEB( 1999, kof99p, kof99, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", 0 ) -GAMEB( 1999, garou, neogeo, neogeo, neogeo, neogeo, garou, ROT0, "SNK", "Garou - Mark of the Wolves (set 1)" , 0) /* Encrypted Code & GFX */ -GAMEB( 1999, garouo, garou, neogeo, neogeo, neogeo, garouo, ROT0, "SNK", "Garou - Mark of the Wolves (set 2)" , 0) /* Encrypted Code & GFX */ -GAMEB( 1999, garoup, garou, neogeo, neogeo, neogeo, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", 0 ) -GAMEB( 2000, mslug3, neogeo, neogeo, neogeo, neogeo, mslug3, ROT0, "SNK", "Metal Slug 3" , 0) /* Encrypted Code & GFX */ -GAMEB( 2000, mslug3n, mslug3, neogeo, neogeo, neogeo, mslug3n, ROT0, "SNK", "Metal Slug 3 (not encrypted)" , 0) /* Encrypted GFX */ -GAMEB( 2000, mslug3b6, mslug3, neogeo, neogeo, neogeo, mslug3b6, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", 0 ) /* real Metal Slug 6 is an Atomiswave HW game, see atomswav.c ;-) */ -GAMEB( 2000, kof2000, neogeo, neogeo, neogeo, neogeo, kof2000, ROT0, "SNK", "The King of Fighters 2000" , 0) /* Encrypted Code & GFX */ -GAMEB( 2000, kof2000n, kof2000, neogeo, neogeo, neogeo, kof2000n, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , 0) /* Encrypted GFX */ -GAMEB( 2001, zupapa, neogeo, neogeo, neogeo, neogeo, zupapa, ROT0, "SNK", "Zupapa!" , 0) /* Encrypted GFX */ -GAMEB( 2001, sengoku3, neogeo, neogeo, neogeo, neogeo, sengoku3, ROT0, "SNK", "Sengoku 3" , 0) /* Encrypted GFX */ -GAMEB( 2001, kof2001, neogeo, neogeo, neogeo, neogeo, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (set 1)" , 0) /* Encrypted GFX */ -GAMEB( 2001, kof2001h, kof2001, neogeo, neogeo, neogeo, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (set 2)" , 0) /* Encrypted GFX */ -GAMEB( 2003, cthd2003, kof2001, neogeo, neogeo, neogeo, cthd2003, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", 0 ) /* Protected Hack / Bootleg of kof2001 */ -GAMEB( 2003, ct2k3sp, kof2001, neogeo, neogeo, neogeo, ct2k3sp, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", 0 ) /* Protected Hack / Bootleg of kof2001 */ -GAMEB( 2002, kof2002, neogeo, neogeo, neogeo, neogeo, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002" , 0) /* Encrypted GFX */ -GAMEB( 2002, kf2k2pls, kof2002, neogeo, neogeo, neogeo, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (set 1, bootleg)" , 0) /* Encrypted GFX */ -GAMEB( 2002, kf2k2pla, kof2002, neogeo, neogeo, neogeo, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (set 2, bootleg)" , 0) /* Encrypted GFX */ -GAMEB( 2002, kf2k2mp, kof2002, neogeo, neogeo, neogeo, kf2k2mp, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , 0) /* Encrypted GFX */ -GAMEB( 2002, kf2k2mp2, kof2002, neogeo, neogeo, neogeo, kof2km2, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , 0) /* Encrypted GFX */ -GAMEB( 2002, kof10th, kof2002, neogeo, neogeo, neogeo, kof10th, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", 0 ) // fake SNK copyright -GAMEB( 2004, kf2k5uni, kof2002, neogeo, neogeo, neogeo, kf2k5uni, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", 0 ) // fake SNK copyright -GAMEB( 2005, kf10thep, kof2002, neogeo, neogeo, neogeo, kf10thep, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", 0 ) // fake SNK copyright -GAMEB( 2004, kof2k4se, kof2002, neogeo, neogeo, neogeo, kof2k4se, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", 0 ) /* Hack / Bootleg of kof2002 */ -GAMEB( 2003, mslug5, neogeo, neogeo, neogeo, neogeo, mslug5, ROT0, "SNK Playmore", "Metal Slug 5", 0 ) -GAME ( 2003, ms5pcb, 0, neogeo, neogeo, ms5pcb, ROT0, "SNK Playmore", "Metal Slug 5 (JAMMA PCB)", 0 ) -GAMEB( 2003, ms5plus, mslug5, neogeo, neogeo, neogeo, ms5plus, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)",0 ) -GAME ( 2003, svcpcb, 0, neogeo, svcpcb, svcpcb, ROT0, "Playmore", "SvC Chaos - SNK vs Capcom (JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart. -GAME ( 2003, svcpcba, svcpcb, neogeo, svcpcb, svcpcb, ROT0, "Playmore", "SVC Chaos - SNK vs CAPCOM (JAMMA PCB, set 2)" , 0 ) /* Encrypted Code */ -GAMEB( 2003, svc, neogeo, neogeo, neogeo, neogeo, svchaosa, ROT0, "Playmore", "SvC Chaos - SNK vs Capcom (MVS)", 0 ) -GAMEB( 2003, svcboot, svc, neogeo, neogeo, neogeo, svcboot, ROT0, "bootleg", "SvC Chaos - SNK vs Capcom (MVS) (bootleg)",0 ) -GAMEB( 2003, svcplus, svc, neogeo, neogeo, neogeo, svcplus, ROT0, "bootleg", "SvC Chaos - SNK vs Capcom Plus (set 1, bootleg)",0 ) -GAMEB( 2003, svcplusa, svc, neogeo, neogeo, neogeo, svcplusa, ROT0, "bootleg", "SvC Chaos - SNK vs Capcom Plus (set 2, bootleg)",0 ) -GAMEB( 2003, svcsplus, svc, neogeo, neogeo, neogeo, svcsplus, ROT0, "bootleg", "SvC Chaos - SNK vs Capcom Super Plus (bootleg)",0 ) -GAMEB( 2003, samsho5, neogeo, neogeo, neogeo, neogeo, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (set 1)", 0 ) -GAMEB( 2003, samsho5h, samsho5, neogeo, neogeo, neogeo, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (set 2)", 0 ) -GAMEB( 2003, samsho5b, samsho5, neogeo, neogeo, neogeo, samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", 0 ) // different program scrambling -GAME ( 2003, kf2k3pcb, 0, neogeo, neogeo, kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart. -GAMEB( 2003, kof2003, neogeo, neogeo, neogeo, neogeo, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (World / US, MVS)", 0 ) -GAMEB( 2003, kf2k3bl, kof2003, neogeo, neogeo, neogeo, kof2003b, ROT0, "bootleg", "The King of Fighters 2003 (bootleg, set 1)",0 ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?) -GAMEB( 2003, kf2k3bla, kof2003, neogeo, neogeo, neogeo, kof2k3pl, ROT0, "bootleg", "The King of Fighters 2003 (bootleg, set 2)",0 ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAMEB( 2003, kf2k3pl, kof2003, neogeo, neogeo, neogeo, kof2k3pl, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)",0 ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAMEB( 2003, kf2k3upl, kof2003, neogeo, neogeo, neogeo, kof2k3up, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)",0 ) // zooming is wrong because its a bootleg of the pcb version on a cart -GAMEB( 2003, samsh5sp, neogeo, neogeo, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (set 1, uncensored)", 0 ) -GAMEB( 2003, samsh5sh, samsh5sp, neogeo, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (set 2, censored)", 0 ) -GAMEB( 2003, samsh5sn, samsh5sp, neogeo, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (set 3, less censored)", 0 ) - -/* there are other bootlegs kof2002b etc. kof96ep, matrimbl?, kf2k1pls -- work out which should be supported */ - -/* Alpha Denshi Co. / ADK (changed name in 1993) */ -GAMEB( 1990, maglord, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (set 1)", 0 ) -GAMEB( 1990, maglordh, maglord, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (set 2)", 0 ) -GAMEB( 1990, ncombat, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (set 1)", 0 ) -GAMEB( 1990, ncombata, ncombat, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (set 2)", 0 ) -GAMEB( 1990, bjourney, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy", 0 ) -GAMEB( 1991, crsword, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords", 0 ) -GAMEB( 1991, trally, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally", 0 ) -GAMEB( 1992, ncommand, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", 0 ) -GAMEB( 1992, wh1, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 1)", 0 ) -GAMEB( 1992, wh1h, wh1, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 2)", 0 ) -GAMEB( 1993, wh2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK", "World Heroes 2", 0 ) -GAMEB( 1994, wh2j, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet", 0 ) -GAMEB( 1994, aodk, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku", 0 ) -GAMEB( 1995, whp, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", 0 ) -GAMEB( 1995, mosyougi, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK / SNK", "Syougi No Tatsujin - Master of Syougi", 0 ) -GAMEB( 1996, overtop, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK", "Over Top", 0 ) -GAMEB( 1996, ninjamas, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK / SNK", "Ninja Master's - haoh-ninpo-cho", 0 ) -GAMEB( 1996, twinspri, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "ADK", "Twinkle Star Sprites", 0 ) -GAMEB( 1996, zintrckb, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "hack / bootleg", "Zintrick / Oshidashi Zentrix (hack / bootleg)", 0 ) - - -/* Aicom */ -GAMEB( 1994, janshin, neogeo, neogeo, neogeo, mjneogeo,mjneogeo, ROT0, "Aicom", "Jyanshin Densetsu - Quest of Jongmaster", 0 ) -GAMEB( 1995, pulstar, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Aicom", "Pulstar", 0 ) - -/* Data East Corporation */ -GAMEB( 1993, spinmast, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", 0 ) -GAMEB( 1994, wjammers, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", 0 ) -GAMEB( 1994, karnovr, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", 0 ) -GAMEB( 1994, strhoop, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream", 0 ) -GAMEB( 1996, ghostlop, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", 0 ) -GAMEB( 1996, magdrop2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Magical Drop II", 0 ) -GAMEB( 1997, magdrop3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Data East Corporation", "Magical Drop III", 0 ) - -/* Eleven */ -GAMEB( 2000, nitd, neogeo, neogeo, neogeo, neogeo, nitd, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , 0) /* Encrypted GFX */ - -/* Face */ -GAMEB( 1994, gururin, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Face", "Gururin", 0 ) -GAMEB( 1997, miexchng, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", 0 ) - -/* Hudson Soft */ -GAMEB( 1994, panicbom, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", 0 ) -GAMEB( 1995, kabukikl, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", 0 ) -GAMEB( 1997, neobombe, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Hudson", "Neo Bomberman", 0 ) - -/* Monolith Corp. */ -GAMEB( 1990, minasan, neogeo, neogeo, neogeo, mjneogeo,mjneogeo, ROT0, "Monolith Corp.", "Minnasanno Okagesamadesu", 0 ) -GAMEB( 1991, bakatono, neogeo, neogeo, neogeo, mjneogeo,mjneogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuki", 0 ) - -/* Nazca */ -GAMEB( 1996, turfmast, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", 0 ) -GAMEB( 1996, mslug, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", 0 ) - -/* NMK */ -GAMEB( 1994, zedblade, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", 0 ) - -/* Psikyo */ -GAMEB( 1999, s1945p, neogeo, neogeo, neogeo, neogeo, s1945p, ROT0, "Psikyo", "Strikers 1945 Plus" , 0) /* Encrypted GFX */ - -/* Sammy */ -GAMEB( 1992, viewpoin, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Sammy", "Viewpoint", 0 ) - -/* Saurus */ -GAMEB( 1995, quizkof, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Quiz King of Fighters", 0 ) -GAMEB( 1995, stakwin, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI kinzen seihae no michi", 0 ) -GAMEB( 1996, ragnagrd, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", 0 ) -GAMEB( 1996, pgoal, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer", 0 ) -GAMEB( 1996, stakwin2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Stakes Winner 2", 0 ) -GAMEB( 1997, shocktro, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", 0 ) -GAMEB( 1997, shocktra, shocktro, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", 0 ) -GAMEB( 1998, shocktr2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", 0 ) -GAMEB( 1998, lans2004, shocktr2, neogeo, neogeo, neogeo, lans2004, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", 0 ) - -/* Sunsoft */ -GAMEB( 1995, galaxyfg, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", 0 ) -GAMEB( 1996, wakuwak7, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Sunsoft", "Waku Waku 7", 0 ) - -/* Taito */ -GAMEB( 1994, pbobblen, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (set 1)", 0 ) -GAMEB( 1994, pbobblna, pbobblen, neogeo, neogeo, neogeo, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (set 2)", 0 ) -GAMEB( 1999, pbobbl2n, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", 0 ) -GAMEB( 2003, pnyaa, neogeo, neogeo, neogeo, neogeo, pnyaa, ROT0, "Aiky / Taito", "Pochi and Nyaa", 0 ) - -/* Takara */ -GAMEB( 1995, marukodq, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", 0 ) - -/* Technos */ -GAMEB( 1995, doubledr, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Double Dragon (Neo-Geo)", 0 ) -GAMEB( 1995, gowcaizr, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", 0) -GAMEB( 1996, sdodgeb, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Technos", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 0 ) - -/* Tecmo */ -GAMEB( 1996, tws96, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", 0 ) - -/* Yumekobo */ -GAMEB( 1998, blazstar, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Yumekobo", "Blazing Star", 0 ) -GAMEB( 1999, preisle2, neogeo, neogeo, neogeo, neogeo, preisle2, ROT0, "Yumekobo", "Prehistoric Isle 2" , 0) /* Encrypted GFX */ - -/* Viccom */ -GAMEB( 1994, fightfev, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", 0 ) -GAMEB( 1994, fightfva, fightfev, neogeo, neogeo, neogeo, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", 0 ) - -/* Video System Co. */ -GAMEB( 1994, pspikes2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Video System Co.", "Power Spikes II", 0 ) -GAMEB( 1994, sonicwi2, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", 0 ) -GAMEB( 1995, sonicwi3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", 0 ) -GAMEB( 1997, popbounc, neogeo, neogeo, neogeo, popbounc,popbounc, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", 0 ) - -/* Visco */ -GAMEB( 1992, androdun, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Andro Dunos", 0 ) -GAMEB( 1995, puzzledp, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", 0 ) -GAMEB( 1996, neomrdo, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Neo Mr. Do!", 0 ) -GAMEB( 1995, goalx3, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", 0 ) -GAMEB( 1996, neodrift, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", 0 ) -GAMEB( 1996, breakers, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Breakers", 0 ) -GAMEB( 1997, puzzldpr, puzzledp, neogeo, neogeo, neogeo, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", 0 ) -GAMEB( 1998, breakrev, breakers, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Breakers Revenge", 0) -GAMEB( 1998, flipshot, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Battle Flip Shot", 0 ) -GAMEB( 1999, ctomaday, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Captain Tomaday", 0 ) -GAMEB( 1999, ganryu, neogeo, neogeo, neogeo, neogeo, ganryu, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , 0) /* Encrypted GFX */ -GAMEB( 2000, bangbead, neogeo, neogeo, neogeo, neogeo, bangbead, ROT0, "Visco", "Bang Bead", 0 ) -//GAMEB( 2000, bangbedp, bangbead, neogeo, neogeo, neogeo, neogeo, ROT0, "Visco", "Bang Bead (prototype)", 0 ) - -/* Mega Enterprise */ -GAMEB( 2002, mslug4, neogeo, neogeo, neogeo, neogeo, mslug4, ROT0, "Mega", "Metal Slug 4", 0 ) -GAMEB( 2002, ms4plus, mslug4, neogeo, neogeo, neogeo, neogeo, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", 0 ) - -/* Evoga */ -GAMEB( 2002, rotd, neogeo, neogeo, neogeo, neogeo, rotd, ROT0, "Evoga / Playmore", "Rage of the Dragons", 0 ) - -/* Atlus */ -GAMEB( 2002, matrim, neogeo, neogeo, neogeo, neogeo, matrim, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon", 0 ) - -/* Breezasoft */ -GAMEB( 2001, jockeygp, neogeo, neogeo, neogeo, jockeygp,jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix", 0 ) -GAMEB( 2001, vliner, neogeo, neogeo, neogeo, vliner, vliner, ROT0, "Dyna / BreezaSoft", "V-Liner (set 1)", 0 ) -GAMEB( 2001, vlinero, vliner, neogeo, neogeo, vliner, vliner, ROT0, "Dyna / BreezaSoft", "V-Liner (set 2)", 0 ) - -/* Kyle Hodgetts */ -GAMEB( 2000, diggerma, neogeo, neogeo, neogeo, neogeo, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", 0 ) - diff --git a/src/drivers/ninjakd2.c b/src/drivers/ninjakd2.c deleted file mode 100644 index 2051504b6..000000000 --- a/src/drivers/ninjakd2.c +++ /dev/null @@ -1,698 +0,0 @@ -/*************************************************************************** - - ***************************** - *** NINJA KID II hardware *** (by Roberto Ventura) - ***************************** - -Game authors: -Game design: Tsutomu Fuzisawa -Program design: Satoru Kinjo -Char. design: Tsutomu Fizisawa -Char. design: Akemi Tsunoda -Sound compose: Tsutomu Fuzisawa -Bgm create: Mecano Associate -Data make: Takashi Hayashi - -General aspect. - -The game is driven by a fast Z80 CPU. -Screen resolution is 256x192. -768 colors on screen. -96 sprites. - -Rom Contents: - -NK2_01.ROM Main CPU program ROM -NK2_02.ROM CPU banked data ROM 0 (banks 0 and 1) -NK2_03.ROM CPU banked data ROM 1 (banks 2 and 3) -NK2_04.ROM CPU banked data ROM 2 (banks 4 and 5) -NK2_05.ROM CPU banked data ROM 3 (banks 6 and 7) -NK2_06.ROM Sound CPU program ROM (encrypted) -NK2_07.ROM Sprites data ROM 1 -NK2_08.ROM Sprites data ROM 0 -NK2_09.ROM Raw PCM samples (complete?) -NK2_10.ROM Background data ROM 1 -NK2_11.ROM Background data ROM 0 -NK2_12.ROM Foreground data ROM - -*** MEMORY MAP *** - -0000-7fff Main CPU ROM -8000-bfff Banked CPU ROM -c000-c7ff I/O -c800-cdff Color RAM -d000-d7ff "FRONT" tile map -d800-dfff "BACK" tile map -e000-efff Main RAM -f400-f7ff ??? screen frame ??? -f800-f9ff CPU Stack -fa00-ffff Sprite registers (misc RAM) - - -1) CPU - -1 OSC 12 MHz -1 OSC 5 MHz -2 YM 2203C.......CaBBe!. - -The Z80 runs in IM0,the game expects execution of RST10 each -frame. - -Game level maps,additional code and data are available to main -program via CPU banking at lacations 8000-bf00 - -In two of the sets, the encrypted sound program ROM is replaced with a -double-sized decrypted version. I don0t know if they are bootlegs or originals. - - - -2) I/O - -c000 "KEYCOIN" button - - 76543210 - || | || - || | |^-COIN 1 - || | ^--COIN 2 - || ^-----TEST MODE (on the fly,to be pressed during boot) - |^-------START 1 - ^--------START 2 - - -c001 "PAD1" -c002 "PAD2" - - 76543210 - |||||| - |||||^-RIGHT - ||||^--LEFT - |||^---DOWN - ||^----UP - |^-----FIRE 0 - ^------FIRE 1 - - -c003 "DIPSW1" - - 76543210 - |||||||| - |||||||^-UNUSED? - ||||||^-->EXTRA - |||||^--->LIVES - ||||^----CONTINUE MODE - |||^-----DEMO SOUND - ||^------NORMAL/HARD - |^-------LIVES 3/4 - ^--------ENGLISH/JAP - - -c004 "DIPSW2" - - 76543210 - |||||||| - |||||||^-TEST MODE - ||||||^--TABLE/UPRIGHT - |||||^---"CREDIT SERVICE" - ||||^----> - |||^----->> - ||^------>>> coin/credit configurations - |^------->> - ^--------> - -c200 Sound command - This byte is written when game plays sound effects... - it is set when music or sound effects (both pcm and fm) are triggered; - I guess it is read by another CPU,then. - -c201 Unknown,but used. - -c202 Bank selector (0 to 7) - -c203 Sprite 'overdraw' - this is the most interesting feature of the game,when set - the sprites drawn in the previous frame remain on the - screen,so the game can perform special effects such as the - 'close up' when you die or the "infinite balls" appearing - when an extra weapon is collected. - Appears to work like a xor mask,a sprite removes older - sprite 'bitmap' when present;other memory locations connected to - this function may be f400-f7ff...should be investigated more. - -mmmh... I believe this is sci-fiction for a non-bitmap game... - -C208 Scroll X 0-7 - -C209 Scroll X MSB - -C20A Scroll Y 0-7 - -C20B Scroll Y MSB - -C20C Background ENABLE - when set to zero the background is totally black,but - sprites are drawn correctly. - - -3) COLOR RAM - -The palette system is dynamic,the game can show up to 768 different -colors on screen. - -Palette depth is 12 bits as usual,two consecutive bytes are used for each -color code. - -format: RRRRGGGGBBBB0000 - -Colors are organized in palettes,since graphics is 4 bits (16 colors) -each palette takes 32 bytes,the three different layers,BACK,SPRITES and -FRONT don't share any color,each has its own 256 color space,hence the -768 colors on screen. - -c800-c9ff Background palettes -ca00-cbff Sprites palettes -cc00-cdff Foreground palettes - - -4) TILE-BASED LAYERS - -The tile format for background and foreground is the same,the -only difference is that background tiles are 16x16 pixels while foreground -tiles are only 8x8. - -Background virtual screen is 512x512 pixels scrollable. - -Two consecutive tiles bytes identify one tile. - - O7 O6 O5 O4 O3 O2 O1 O0 gfx Offset - O9 O8 FY FX C3 C2 C1 C0 Attibute - - O= GFX offset (1024 tiles) - F= Flip X and Y - C= Color palette selector - - -5) SPRITES - -Five bytes identify each sprite,but the registers actually used -are placed at intervals of 16. -Some of the remaining bytes are used (e.g. fa00),their meaning is totally -unknown to me,they seem to be related to the surprising additional sprite -feature of the game,but maybe they're just random writes in RAM. - -The first sprite data is located at fa0b,then fa1b and so on. - - -0b Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Y coord -0c X7 X6 X5 X4 X3 X2 X1 X0 X coord -0d O9 O8 FY FX -- -- EN X8 hi gfx - FLIP - Enable - hi X -0e O7 O6 O5 O4 O3 O2 O1 O0 gfx - offset -0f -- -- -- -- C3 C2 C1 C0 color - - Y= Y coordinate - X= X coordinate (X8 is used to clip sprite on the left) - O= Gfx offset (1024 sprites) - F= Flip - EN= Enable (this is maybe the Y8 coordinate bit,but it isn't set - accordingly in the test mode - C= Color palette selector - -***************************************************************************/ - - -#include "driver.h" -#include "sound/2203intf.h" -#include "sound/samples.h" - -extern WRITE8_HANDLER( ninjakd2_bgvideoram_w ); -extern WRITE8_HANDLER( ninjakd2_fgvideoram_w ); -extern WRITE8_HANDLER( ninjakd2_scrollx_w ); -extern WRITE8_HANDLER( ninjakd2_scrolly_w ); -extern WRITE8_HANDLER( ninjakd2_sprite_overdraw_w ); -extern WRITE8_HANDLER( ninjakd2_background_enable_w ); -extern VIDEO_START( ninjakd2 ); -extern VIDEO_UPDATE( ninjakd2 ); - -extern UINT8 *ninjakd2_bg_videoram, *ninjakd2_fg_videoram; - -static int ninjakd2_bank_latch = 255; -static INT16 *sampledata[8]; -static int samplelen[8]; - -void ninjakd2_init_samples(void) -{ - int i,n; - unsigned char *source = memory_region(REGION_SOUND1); - static const int sample_info [9][2] = { {0x0000,0x0A00},{0x0A00,0x1D00},{0x2700,0x1700}, - {0x3E00,0x1500},{0x5300,0x0B00},{0x5E00,0x0A00},{0x6800,0x0E00},{0x7600,0x1E00},{0xF000,0x0400} }; - - for (i=0;i<8;i++) - { - sampledata[i] = auto_malloc(sample_info[i][1] * sizeof(sampledata[0])); - samplelen[i] = sample_info[i][1]; - for (n=0; n> 8; /* for Wgp */ - cpua_ctrl = data; - - parse_control(); - - logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data); -} - - -/***************************************** - SOUND -*****************************************/ - -static INT32 banknum = -1; - -static void reset_sound_region(void) -{ - memory_set_bankptr( 10, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 ); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = (data - 1) & 7; - reset_sound_region(); -} - -static WRITE16_HANDLER( ninjaw_sound_w ) -{ - if (offset == 0) - taitosound_port_w (0, data & 0xff); - else if (offset == 1) - taitosound_comm_w (0, data & 0xff); - -#ifdef MAME_DEBUG - if (data & 0xff00) - popmessage("ninjaw_sound_w to high byte: %04x",data); -#endif -} - -static READ16_HANDLER( ninjaw_sound_r ) -{ - if (offset == 1) - return ((taitosound_comm_r (0) & 0xff)); - else return 0; -} - - -/**** sound pan control ****/ -static int ninjaw_pandata[4]; -WRITE8_HANDLER( ninjaw_pancontrol ) -{ - offset = offset&3; - ninjaw_pandata[offset] = (float)data * (100.f / 255.0f); - //popmessage(" pan %02x %02x %02x %02x", ninjaw_pandata[0], ninjaw_pandata[1], ninjaw_pandata[2], ninjaw_pandata[3] ); - flt_volume_set_volume(offset, ninjaw_pandata[offset] / 100.0); -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( ninjaw_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM) /* main ram */ - AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x220000, 0x220003) AM_READ(ninjaw_sound_r) - AM_RANGE(0x240000, 0x24ffff) AM_READ(sharedram_r) - AM_RANGE(0x260000, 0x263fff) AM_READ(MRA16_RAM) /* sprite ram */ - AM_RANGE(0x280000, 0x293fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */ - AM_RANGE(0x2a0000, 0x2a000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x2c0000, 0x2d3fff) AM_READ(TC0100SCN_word_1_r) /* tilemaps (2nd screen) */ - AM_RANGE(0x2e0000, 0x2e000f) AM_READ(TC0100SCN_ctrl_word_1_r) - AM_RANGE(0x300000, 0x313fff) AM_READ(TC0100SCN_word_2_r) /* tilemaps (3rd screen) */ - AM_RANGE(0x320000, 0x32000f) AM_READ(TC0100SCN_ctrl_word_2_r) - AM_RANGE(0x340000, 0x340007) AM_READ(TC0110PCR_word_r) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_READ(TC0110PCR_word_1_r) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_READ(TC0110PCR_word_2_r) /* palette (3rd screen) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ninjaw_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x220000, 0x220003) AM_WRITE(ninjaw_sound_w) - AM_RANGE(0x240000, 0x24ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size) - AM_RANGE(0x260000, 0x263fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x280000, 0x293fff) AM_WRITE(TC0100SCN_triple_screen_w) /* tilemaps (all screens) */ - AM_RANGE(0x2a0000, 0x2a000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x2c0000, 0x2d3fff) AM_WRITE(TC0100SCN_word_1_w) /* tilemaps (2nd screen) */ - AM_RANGE(0x2e0000, 0x2e000f) AM_WRITE(TC0100SCN_ctrl_word_1_w) - AM_RANGE(0x300000, 0x313fff) AM_WRITE(TC0100SCN_word_2_w) /* tilemaps (3rd screen) */ - AM_RANGE(0x320000, 0x32000f) AM_WRITE(TC0100SCN_ctrl_word_2_w) - AM_RANGE(0x340000, 0x340007) AM_WRITE(TC0110PCR_step1_word_w) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_WRITE(TC0110PCR_step1_word_1_w) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_WRITE(TC0110PCR_step1_word_2_w) /* palette (3rd screen) */ -ADDRESS_MAP_END - -// NB there could be conflicts between which cpu writes what to the -// palette, as our interleaving won't match the original board. - -static ADDRESS_MAP_START( ninjaw_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(MRA16_RAM) /* main ram */ - AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x240000, 0x24ffff) AM_READ(sharedram_r) - AM_RANGE(0x260000, 0x263fff) AM_READ(spriteram16_r) /* sprite ram */ - AM_RANGE(0x280000, 0x293fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */ - AM_RANGE(0x340000, 0x340007) AM_READ(TC0110PCR_word_r) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_READ(TC0110PCR_word_1_r) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_READ(TC0110PCR_word_2_r) /* palette (3rd screen) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ninjaw_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x240000, 0x24ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) - AM_RANGE(0x260000, 0x263fff) AM_WRITE(spriteram16_w) - AM_RANGE(0x280000, 0x293fff) AM_WRITE(TC0100SCN_triple_screen_w) /* tilemaps (all screens) */ - AM_RANGE(0x340000, 0x340007) AM_WRITE(TC0110PCR_step1_word_w) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_WRITE(TC0110PCR_step1_word_1_w) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_WRITE(TC0110PCR_step1_word_2_w) /* palette (3rd screen) */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( darius2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM) /* main ram */ - AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x220000, 0x220003) AM_READ(ninjaw_sound_r) - AM_RANGE(0x240000, 0x24ffff) AM_READ(sharedram_r) - AM_RANGE(0x260000, 0x263fff) AM_READ(MRA16_RAM) /* sprite ram */ - AM_RANGE(0x280000, 0x293fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */ - AM_RANGE(0x2a0000, 0x2a000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x2c0000, 0x2d3fff) AM_READ(TC0100SCN_word_1_r) /* tilemaps (2nd screen) */ - AM_RANGE(0x2e0000, 0x2e000f) AM_READ(TC0100SCN_ctrl_word_1_r) - AM_RANGE(0x300000, 0x313fff) AM_READ(TC0100SCN_word_2_r) /* tilemaps (3rd screen) */ - AM_RANGE(0x320000, 0x32000f) AM_READ(TC0100SCN_ctrl_word_2_r) - AM_RANGE(0x340000, 0x340007) AM_READ(TC0110PCR_word_r) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_READ(TC0110PCR_word_1_r) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_READ(TC0110PCR_word_2_r) /* palette (3rd screen) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x220000, 0x220003) AM_WRITE(ninjaw_sound_w) - AM_RANGE(0x240000, 0x24ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size) - AM_RANGE(0x260000, 0x263fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x280000, 0x293fff) AM_WRITE(TC0100SCN_triple_screen_w) /* tilemaps (all screens) */ - AM_RANGE(0x2a0000, 0x2a000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x2c0000, 0x2d3fff) AM_WRITE(TC0100SCN_word_1_w) /* tilemaps (2nd screen) */ - AM_RANGE(0x2e0000, 0x2e000f) AM_WRITE(TC0100SCN_ctrl_word_1_w) - AM_RANGE(0x300000, 0x313fff) AM_WRITE(TC0100SCN_word_2_w) /* tilemaps (3rd screen) */ - AM_RANGE(0x320000, 0x32000f) AM_WRITE(TC0100SCN_ctrl_word_2_w) - AM_RANGE(0x340000, 0x340007) AM_WRITE(TC0110PCR_step1_word_w) /* palette (1st screen) */ - AM_RANGE(0x350000, 0x350007) AM_WRITE(TC0110PCR_step1_word_1_w) /* palette (2nd screen) */ - AM_RANGE(0x360000, 0x360007) AM_WRITE(TC0110PCR_step1_word_2_w) /* palette (3rd screen) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius2_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(MRA16_RAM) /* main ram */ - AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x240000, 0x24ffff) AM_READ(sharedram_r) - AM_RANGE(0x260000, 0x263fff) AM_READ(spriteram16_r) /* sprite ram */ - AM_RANGE(0x280000, 0x293fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps (1st screen) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( darius2_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x240000, 0x24ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) - AM_RANGE(0x260000, 0x263fff) AM_WRITE(spriteram16_w) - AM_RANGE(0x280000, 0x293fff) AM_WRITE(TC0100SCN_triple_screen_w) /* tilemaps (all screens) */ -ADDRESS_MAP_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK10) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe200, 0xe200) AM_READ(MRA8_NOP) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - -#define NINJAW_DSWA \ - PORT_START_TAG("DSWA") \ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:1") \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) \ - PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW1:2" ) \ - PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" ) \ - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - -#define NINJAW_DSWB \ - PORT_START_TAG("DSWB") \ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") \ - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) \ - PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:3" ) /* Manual shows switches 3, 4, 5, 6 & 8 as not used */ \ - PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:4" ) \ - PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" ) \ - PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW2:6" ) \ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Continue_Price ) ) PORT_DIPLOCATION("SW2:7") \ - PORT_DIPSETTING( 0x40, "1 Credit" ) \ - PORT_DIPSETTING( 0x00, "As start price" ) \ - PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) - -#define TAITO_COINAGE_JAPAN_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_COINAGE_WORLD_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -#define NINJAW_IN2 \ - PORT_START_TAG("IN2") \ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Stops working if this is high */ \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) \ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) /* Freezes game */ \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define NINJAW_IN3 \ - PORT_START_TAG("IN3") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - -#define NINJAW_IN4 \ - PORT_START_TAG("IN4") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - -INPUT_PORTS_START( ninjaw ) - NINJAW_DSWA - TAITO_COINAGE_WORLD_8 - - NINJAW_DSWB - - NINJAW_IN2 - - NINJAW_IN3 - - NINJAW_IN4 -INPUT_PORTS_END - -INPUT_PORTS_START( ninjawj ) - NINJAW_DSWA - TAITO_COINAGE_JAPAN_8 - - NINJAW_DSWB - - NINJAW_IN2 - - NINJAW_IN3 - - NINJAW_IN4 -INPUT_PORTS_END - -INPUT_PORTS_START( darius2 ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Continuous Fire" ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Fast" ) - PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW1:3" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4") - PORT_DIPSETTING( 0x00, "every 500k" ) - PORT_DIPSETTING( 0x0c, "every 700k" ) - PORT_DIPSETTING( 0x08, "every 800k" ) - PORT_DIPSETTING( 0x04, "every 900k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6") - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:8") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - NINJAW_IN2 - - NINJAW_IN3 - - NINJAW_IN4 -INPUT_PORTS_END - - -/*********************************************************** - GFX DECODING - - (Thanks to Raine for the obj decoding) -***********************************************************/ - -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 8, 12, 0, 4 }, /* pixel bits separated, jump 4 to get to next one */ - { 3, 2, 1, 0, 19, 18, 17, 16, - 3+ 32*8, 2+ 32*8, 1+ 32*8, 0+ 32*8, 19+ 32*8, 18+ 32*8, 17+ 32*8, 16+ 32*8 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 64*8 + 0*32, 64*8 + 1*32, 64*8 + 2*32, 64*8 + 3*32, - 64*8 + 4*32, 64*8 + 5*32, 64*8 + 6*32, 64*8 + 7*32 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode ninjaw_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* scr tiles (screen 1) */ - { REGION_GFX3, 0, &charlayout, 0, 256 }, /* scr tiles (screens 2+) */ - { -1 } /* end of array */ -}; - - -/************************************************************** - YM2610 (SOUND) -**************************************************************/ - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - -/************************************************************** - SUBWOOFER (SOUND) -**************************************************************/ - -#if 0 -static int subwoofer_sh_start(const sound_config *msound) -{ - /* Adjust the lowpass filter of the first three YM2610 channels */ - - /* The 150 Hz is a common top frequency played by a generic */ - /* subwoofer, the real Arcade Machine may differs */ - - mixer_set_lowpass_frequency(0,20); - mixer_set_lowpass_frequency(1,20); - mixer_set_lowpass_frequency(2,20); - - return 0; -} - -static struct CustomSound_interface subwoofer_interface = -{ - subwoofer_sh_start, - 0, /* none */ - 0 /* none */ -}; -#endif - - -/************************************************************* - MACHINE DRIVERS - -Ninjaw: high interleaving of 100, but doesn't stop enemies -"sliding" when they should be standing still relative -to the scrolling background. - -Darius2: arbitrary interleaving of 10 to keep cpus synced. -*************************************************************/ - -static MACHINE_DRIVER_START( ninjaw ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(ninjaw_readmem,ninjaw_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 16/4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(ninjaw_cpub_readmem,ninjaw_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_INTERLEAVE(100) /* CPU slices */ - - MDRV_MACHINE_START(ninjaw) - MDRV_MACHINE_RESET(ninjaw) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(ninjaw_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096*3) - MDRV_DEFAULT_LAYOUT(layout_darius) - - MDRV_SCREEN_ADD("left", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_SCREEN_ADD("middle", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_SCREEN_ADD("right", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_VIDEO_START(ninjaw) - MDRV_VIDEO_UPDATE(ninjaw) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "2610.1.l", 1.0) - MDRV_SOUND_ROUTE(1, "2610.1.r", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2.l", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2.r", 1.0) - - MDRV_SOUND_ADD_TAG("2610.1.l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.1.r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("2610.2.l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.2.r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - -// MDRV_SOUND_ADD(CUSTOM, subwoofer_interface) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( darius2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(darius2_readmem,darius2_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000,16000000/2) /* 8 MHz ? */ - MDRV_CPU_PROGRAM_MAP(darius2_cpub_readmem,darius2_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_INTERLEAVE(100) /* CPU slices */ - - MDRV_MACHINE_START(ninjaw) - MDRV_MACHINE_RESET(ninjaw) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(ninjaw_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096*3) - MDRV_DEFAULT_LAYOUT(layout_darius) - - MDRV_SCREEN_ADD("left", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_SCREEN_ADD("middle", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_SCREEN_ADD("right", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(36*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) - - MDRV_VIDEO_START(ninjaw) - MDRV_VIDEO_UPDATE(ninjaw) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "2610.1.l", 1.0) - MDRV_SOUND_ROUTE(1, "2610.1.r", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2.l", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2.r", 1.0) - - MDRV_SOUND_ADD_TAG("2610.1.l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.1.r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("2610.2.l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.2.r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - -// MDRV_SOUND_ADD(CUSTOM, subwoofer_interface) -MACHINE_DRIVER_END - - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( ninjaw ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 256K for 68000 CPUA code */ - ROM_LOAD16_BYTE( "b31-45", 0x00000, 0x10000, CRC(107902c3) SHA1(026f71a918059e3374ae262304a2ee1270f5c5bd) ) - ROM_LOAD16_BYTE( "b31-47", 0x00001, 0x10000, CRC(bd536b1e) SHA1(39c86cbb3a33fc77a0141b5648a1aca862e0a5fd) ) - ROM_LOAD16_BYTE( "b31_29.34", 0x20000, 0x10000, CRC(f2941a37) SHA1(cf1f231d9caddc903116a8b654f49181ca459697) ) - ROM_LOAD16_BYTE( "b31_27.31", 0x20001, 0x10000, CRC(2f3ff642) SHA1(7d6775b51d96b459b163d8fde2385b0e3f5242ca) ) - - ROM_LOAD16_BYTE( "b31_41.5", 0x40000, 0x20000, CRC(0daef28a) SHA1(7c7e16b0eebc589ab99f62ddb98b372596ff5ae6) ) /* data roms ? */ - ROM_LOAD16_BYTE( "b31_39.2", 0x40001, 0x20000, CRC(e9197c3c) SHA1(a7f0ef2b3c4258c09edf05284fec45832a8fb147) ) - ROM_LOAD16_BYTE( "b31_40.6", 0x80000, 0x20000, CRC(2ce0f24e) SHA1(39632397ac7e8457607c32c31fccf1c08d4b2621) ) - ROM_LOAD16_BYTE( "b31_38.3", 0x80001, 0x20000, CRC(bc68cd99) SHA1(bb31ea589339c9f9b61e312e1024b5c8410cdb43) ) - - ROM_REGION( 0x60000, REGION_CPU3, 0 ) /* 384K for 68000 CPUB code */ - ROM_LOAD16_BYTE( "b31_33.87", 0x00000, 0x10000, CRC(6ce9af44) SHA1(486e332af238c211c3f64f7ead114282661687c4) ) - ROM_LOAD16_BYTE( "b31_36.97", 0x00001, 0x10000, CRC(ba20b0d4) SHA1(fb3dcb7681a95087afac9aa9393765d786243486) ) - ROM_LOAD16_BYTE( "b31_32.86", 0x20000, 0x10000, CRC(e6025fec) SHA1(071f83a9ddebe67bd6c6c2505318e177895163ee) ) - ROM_LOAD16_BYTE( "b31_35.96", 0x20001, 0x10000, CRC(70d9a89f) SHA1(20f846beb052fd8cddcf00c3e42e3304e102a87b) ) - ROM_LOAD16_BYTE( "b31_31.85", 0x40000, 0x10000, CRC(837f47e2) SHA1(88d596f01566456ba18a01afd0a6a7c121d3ca88) ) - ROM_LOAD16_BYTE( "b31_34.95", 0x40001, 0x10000, CRC(d6b5fb2a) SHA1(e3ae0d7ec62740465a90e4939b10341d3866d860) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b31_37.11", 0x00000, 0x04000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ - -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) - ROM_LOAD( "b31-10.17", 0x080000, 0x80000, CRC(c6434aef) SHA1(3348ce87882e3f668aa85bbb517975ec1fc9b6fd) ) - ROM_LOAD( "b31-11.16", 0x100000, 0x80000, CRC(8da531d4) SHA1(525dfab0a0729e9fb6f0e4c8187bf4ce16321b20) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b31-08.19", 0x000000, 0x80000, CRC(a0a1f87d) SHA1(6b0f8094f3a3ef1ced76984e333e22a17c51af29) ) - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* unknown roms */ - ROM_LOAD( "b31-25.38", 0x00000, 0x200, CRC(a0b4ba48) SHA1(dc9a46366a0cbf63a609f177c3d3ba9675416662) ) - ROM_LOAD( "b31-26.58", 0x00000, 0x200, CRC(13e5fe15) SHA1(c973c7965954a2a0b427908f099592ed89cf0ff0) ) -ROM_END - -ROM_START( ninjawj ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 256K for 68000 CPUA code */ - ROM_LOAD16_BYTE( "b31_30.35", 0x00000, 0x10000, CRC(056edd9f) SHA1(8922cede80b31ce0f7a00c8cab13d835464c6058) ) - ROM_LOAD16_BYTE( "b31_28.32", 0x00001, 0x10000, CRC(cfa7661c) SHA1(a7a6abb33a514d910e3198d5acbd4c31b2434b6c) ) - ROM_LOAD16_BYTE( "b31_29.34", 0x20000, 0x10000, CRC(f2941a37) SHA1(cf1f231d9caddc903116a8b654f49181ca459697) ) - ROM_LOAD16_BYTE( "b31_27.31", 0x20001, 0x10000, CRC(2f3ff642) SHA1(7d6775b51d96b459b163d8fde2385b0e3f5242ca) ) - - ROM_LOAD16_BYTE( "b31_41.5", 0x40000, 0x20000, CRC(0daef28a) SHA1(7c7e16b0eebc589ab99f62ddb98b372596ff5ae6) ) /* data roms ? */ - ROM_LOAD16_BYTE( "b31_39.2", 0x40001, 0x20000, CRC(e9197c3c) SHA1(a7f0ef2b3c4258c09edf05284fec45832a8fb147) ) - ROM_LOAD16_BYTE( "b31_40.6", 0x80000, 0x20000, CRC(2ce0f24e) SHA1(39632397ac7e8457607c32c31fccf1c08d4b2621) ) - ROM_LOAD16_BYTE( "b31_38.3", 0x80001, 0x20000, CRC(bc68cd99) SHA1(bb31ea589339c9f9b61e312e1024b5c8410cdb43) ) - - ROM_REGION( 0x60000, REGION_CPU3, 0 ) /* 384K for 68000 CPUB code */ - ROM_LOAD16_BYTE( "b31_33.87", 0x00000, 0x10000, CRC(6ce9af44) SHA1(486e332af238c211c3f64f7ead114282661687c4) ) - ROM_LOAD16_BYTE( "b31_36.97", 0x00001, 0x10000, CRC(ba20b0d4) SHA1(fb3dcb7681a95087afac9aa9393765d786243486) ) - ROM_LOAD16_BYTE( "b31_32.86", 0x20000, 0x10000, CRC(e6025fec) SHA1(071f83a9ddebe67bd6c6c2505318e177895163ee) ) - ROM_LOAD16_BYTE( "b31_35.96", 0x20001, 0x10000, CRC(70d9a89f) SHA1(20f846beb052fd8cddcf00c3e42e3304e102a87b) ) - ROM_LOAD16_BYTE( "b31_31.85", 0x40000, 0x10000, CRC(837f47e2) SHA1(88d596f01566456ba18a01afd0a6a7c121d3ca88) ) - ROM_LOAD16_BYTE( "b31_34.95", 0x40001, 0x10000, CRC(d6b5fb2a) SHA1(e3ae0d7ec62740465a90e4939b10341d3866d860) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b31_37.11", 0x00000, 0x04000, CRC(0ca5799d) SHA1(6485dde076d15b69b9ee65880dda57ad4f8d129c) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b31-01.23", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 1) */ - ROM_LOAD( "b31-02.24", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b31-07.176", 0x000000, 0x80000, CRC(33568cdb) SHA1(87abf56bbbd3659a1bd3e6ce9e43176be7950b41) ) /* OBJ */ - ROM_LOAD( "b31-06.175", 0x080000, 0x80000, CRC(0d59439e) SHA1(54d844492888e7fe2c3bc61afe64f8d47fdee8dc) ) - ROM_LOAD( "b31-05.174", 0x100000, 0x80000, CRC(0a1fc9fb) SHA1(a5d6975fd4f7e689c8cafd7c9cd3787797955779) ) - ROM_LOAD( "b31-04.173", 0x180000, 0x80000, CRC(2e1e4cb5) SHA1(4733cfc015a68e021108a9e1e8ea807b0e7eac7a) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ - -/* The actual board duplicates the SCR gfx roms for 2nd/3rd TC0100SCN */ -// ROM_LOAD( "b31-01.26", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 2) */ -// ROM_LOAD( "b31-02.27", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) -// ROM_LOAD( "b31-01.28", 0x00000, 0x80000, CRC(8e8237a7) SHA1(3e181a153d9b4b7f6a620614ea9022285583a5b5) ) /* SCR (screen 3) */ -// ROM_LOAD( "b31-02.29", 0x80000, 0x80000, CRC(4c3b4e33) SHA1(f99b379be1af085bf102d4d7cf35803e002fe80b) ) - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b31-09.18", 0x000000, 0x80000, CRC(60a73382) SHA1(0ddeb86fcd4d19a58e62bf8564f996d17e36e5c5) ) - ROM_LOAD( "b31-10.17", 0x080000, 0x80000, CRC(c6434aef) SHA1(3348ce87882e3f668aa85bbb517975ec1fc9b6fd) ) - ROM_LOAD( "b31-11.16", 0x100000, 0x80000, CRC(8da531d4) SHA1(525dfab0a0729e9fb6f0e4c8187bf4ce16321b20) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b31-08.19", 0x000000, 0x80000, CRC(a0a1f87d) SHA1(6b0f8094f3a3ef1ced76984e333e22a17c51af29) ) - - ROM_REGION( 0x01000, REGION_USER1, 0 ) /* unknown roms */ - ROM_LOAD( "b31-25.38", 0x00000, 0x200, CRC(a0b4ba48) SHA1(dc9a46366a0cbf63a609f177c3d3ba9675416662) ) - ROM_LOAD( "b31-26.58", 0x00000, 0x200, CRC(13e5fe15) SHA1(c973c7965954a2a0b427908f099592ed89cf0ff0) ) -ROM_END - -ROM_START( darius2 ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 256K for 68000 CPUA code */ - ROM_LOAD16_BYTE( "c07-32-1", 0x00000, 0x10000, CRC(216c8f6a) SHA1(493b0779b99a228911f56ef9d2d4a3945683bec0) ) - ROM_LOAD16_BYTE( "c07-29-1", 0x00001, 0x10000, CRC(48de567f) SHA1(cdf50052933cd2603fd4374e8bae8b30a6c690b5) ) - ROM_LOAD16_BYTE( "c07-31-1", 0x20000, 0x10000, CRC(8279d2f8) SHA1(bd3c80a024a58e4b554f4867f56d7f5741eb3031) ) - ROM_LOAD16_BYTE( "c07-30-1", 0x20001, 0x10000, CRC(6122e400) SHA1(2f68a423f9db8d69ab74453f8cef755f703cc94c) ) - - ROM_LOAD16_BYTE( "c07-27", 0x40000, 0x20000, CRC(0a6f7b6c) SHA1(0ed915201fbc0bf94fdcbef8dfd021cebe87474f) ) /* data roms ? */ - ROM_LOAD16_BYTE( "c07-25", 0x40001, 0x20000, CRC(059f40ce) SHA1(b05a96580edb66221af2f222df74a020366ce3ea) ) - ROM_LOAD16_BYTE( "c07-26", 0x80000, 0x20000, CRC(1f411242) SHA1(0fca5d864c1925473d0058e4cf81ad926f56cb14) ) - ROM_LOAD16_BYTE( "c07-24", 0x80001, 0x20000, CRC(486c9c20) SHA1(9e98fcc1777f044d69cc93eda674501b3be26097) ) - - ROM_REGION( 0x60000, REGION_CPU3, 0 ) /* 384K for 68000 CPUB code */ - ROM_LOAD16_BYTE( "c07-35-1", 0x00000, 0x10000, CRC(dd8c4723) SHA1(e17159f894ee661a84ccd53e2d00ee78f2b46196) ) - ROM_LOAD16_BYTE( "c07-38-1", 0x00001, 0x10000, CRC(46afb85c) SHA1(a08fb9fd2bf0929a5599ab015680fa663f1d4fe6) ) - ROM_LOAD16_BYTE( "c07-34-1", 0x20000, 0x10000, CRC(296984b8) SHA1(3ba28e293c9d3ce01ee2f8ae2c2aa450fe021d30) ) - ROM_LOAD16_BYTE( "c07-37-1", 0x20001, 0x10000, CRC(8b7d461f) SHA1(c783491ca23223dc58fa7e8f408407b9a10cbce4) ) - ROM_LOAD16_BYTE( "c07-33-1", 0x40000, 0x10000, CRC(2da03a3f) SHA1(f1f2de82e0addc5e19c8935e4f5810896691118f) ) - ROM_LOAD16_BYTE( "c07-36-1", 0x40001, 0x10000, CRC(02cf2b1c) SHA1(c94a64f26f94f182cfe2b6edb37e4ce35a0f681b) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c07-28", 0x00000, 0x04000, CRC(da304bc5) SHA1(689b4f329d9a640145f82e12dff3dd1fcf8a28c8) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c07-03.12", 0x00000, 0x80000, CRC(189bafce) SHA1(d885e444523489fe24269b90dec58e0d92cfbd6e) ) /* SCR (screen 1) */ - ROM_LOAD( "c07-04.11", 0x80000, 0x80000, CRC(50421e81) SHA1(27ac420602f1dac00dc32903543a518e6f47fb2f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "c07-01", 0x00000, 0x80000, CRC(3cf0f050) SHA1(f5a1f7e327a2617fb95ce2837e72945fd7447346) ) /* OBJ */ - ROM_LOAD( "c07-02", 0x80000, 0x80000, CRC(75d16d4b) SHA1(795423278b66eca41accce1f8a4425d65af7b629) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x100000 ) /* SCR (screens 2+) */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c07-10.95", 0x00000, 0x80000, CRC(4bbe0ed9) SHA1(081b73c4e4d4fa548445e5548573099bcb1e9213) ) - ROM_LOAD( "c07-11.96", 0x80000, 0x80000, CRC(3c815699) SHA1(0471ff5b0c0da905267f2cee52fd68c8661cccc9) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c07-12.107", 0x00000, 0x80000, CRC(e0b71258) SHA1(0258e308b643d723475824752ebffc4ea29d1ac4) ) -ROM_END - - -MACHINE_START( ninjaw ) -{ - cpua_ctrl = 0xff; - state_save_register_global(cpua_ctrl); - state_save_register_func_postload(parse_control); - - state_save_register_global(banknum); - state_save_register_func_postload(reset_sound_region); - return 0; -} - -MACHINE_RESET( ninjaw ) -{ - /**** mixer control enable ****/ - sound_global_enable( 1 ); /* mixer enabled */ -} - - -/* Working Games */ - -GAME( 1987, ninjaw, 0, ninjaw, ninjaw, 0, ROT0, "Taito Corporation Japan", "The Ninja Warriors (World)", 0 ) -GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", 0 ) -GAME( 1989, darius2, 0, darius2, darius2, 0, ROT0, "Taito Corporation", "Darius II (Japan)", 0 ) - diff --git a/src/drivers/nitedrvr.c b/src/drivers/nitedrvr.c deleted file mode 100644 index cfcb1227f..000000000 --- a/src/drivers/nitedrvr.c +++ /dev/null @@ -1,223 +0,0 @@ -/*************************************************************************** - - Atari Night Driver hardware - - driver by Mike Balfour - - Games supported: - * Night Driver - - Known issues: - * The road boxes in service mode are flipped horizontally and there - is an extraneous box according to the service manual. - -**************************************************************************** - - Memory Map: - 0000-01FF R/W SCRAM (Scratchpad RAM) - 0200-03FF W PFW (Playfield Write) - 0400-05FF W HVC (Horiz/Vert/Char for Roadway) - 0600-07FF R IN0 - 0800-09FF R IN1 - 0A00-0BFF W OUT0 - 0C00-0DFF W OUT1 - 0E00-0FFF - OUT2 (Not used) - 8000-83FF R PFR (Playfield Read) - 8400-87FF Steering Reset - 8800-8FFF - Spare (Not used) - 9000-97FF R Program ROM1 - 9800-9FFF R Program ROM2 - (F800-FFFF) R Program ROM2 - only needed for the 6502 vectors - - If you have any questions about how this driver works, don't hesitate to - ask. - Mike Balfour (mab22@po.cwru.edu) - -***************************************************************************/ - -#include "driver.h" -#include "sound/discrete.h" -#include "nitedrvr.h" - -extern READ8_HANDLER( nitedrvr_in0_r ); -extern READ8_HANDLER( nitedrvr_in1_r ); -extern READ8_HANDLER( nitedrvr_steering_reset_r ); -extern WRITE8_HANDLER( nitedrvr_steering_reset_w ); -extern WRITE8_HANDLER( nitedrvr_out0_w ); -extern WRITE8_HANDLER( nitedrvr_out1_w ); -extern void nitedrvr_crash_toggle(int dummy); -extern void nitedrvr_register_machine_vars(void); - -extern UINT8 *nitedrvr_hvc; - -extern WRITE8_HANDLER( nitedrvr_videoram_w ); -extern WRITE8_HANDLER( nitedrvr_hvc_w ); - -extern VIDEO_START( nitedrvr ); -extern VIDEO_UPDATE( nitedrvr ); - -/* Memory Map */ - -static ADDRESS_MAP_START( nitedrvr_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100) // SCRAM - AM_RANGE(0x0200, 0x027f) AM_RAM AM_MIRROR(0x180) AM_WRITE(nitedrvr_videoram_w) AM_BASE(&videoram) // PFW - AM_RANGE(0x0400, 0x05ff) AM_WRITE(nitedrvr_hvc_w) AM_BASE(&nitedrvr_hvc) // POSH, POSV, CHAR, Watchdog - AM_RANGE(0x0600, 0x07ff) AM_READ(nitedrvr_in0_r) - AM_RANGE(0x0800, 0x09ff) AM_READ(nitedrvr_in1_r) - AM_RANGE(0x0a00, 0x0bff) AM_WRITE(nitedrvr_out0_w) - AM_RANGE(0x0c00, 0x0dff) AM_WRITE(nitedrvr_out1_w) - AM_RANGE(0x8000, 0x807f) AM_RAM AM_MIRROR(0x380) AM_BASE(&videoram) // PFR - AM_RANGE(0x8400, 0x87ff) AM_READWRITE(nitedrvr_steering_reset_r, nitedrvr_steering_reset_w) - AM_RANGE(0x9000, 0x9fff) AM_ROM // ROM1-ROM2 - AM_RANGE(0xfff0, 0xffff) AM_ROM // ROM2 for 6502 vectors -ADDRESS_MAP_END - -/* Input Ports */ - -INPUT_PORTS_START( nitedrvr ) - PORT_START // fake - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - //PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) // not a typo - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0x80, "Playing Time" ) - PORT_DIPSETTING( 0x00, "50" ) - PORT_DIPSETTING( 0x40, "75" ) - PORT_DIPSETTING( 0x80, "100" ) - PORT_DIPSETTING( 0xC0, "125" ) - - PORT_START // fake - PORT_DIPNAME( 0x10, 0x00, "Track Set" ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Reverse ) ) - PORT_DIPNAME( 0x20, 0x20, "Bonus Time" ) - PORT_DIPSETTING( 0x00, DEF_STR ( No ) ) - PORT_DIPSETTING( 0x20, "Score = 350" ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START // fake - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("1st Gear") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("2nd Gear") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("3rd Gear") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("4th Gear") - - PORT_START // fake - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // Spare - PORT_DIPNAME( 0x20, 0x00, "Difficult Bonus" ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START // fake - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Novice Track") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Expert Track") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pro Track") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // Alternating signal? - - PORT_START // fake - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START - PORT_ADJUSTER( 60, "Motor RPM" ) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static const gfx_layout charlayout = -{ - 8, 8, - 64, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -/* Graphics Decode Information */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1 }, - { -1 } -}; - -/* Machine Initialization */ - -static MACHINE_RESET( nitedrvr ) -{ - timer_pulse(TIME_IN_SEC(0.693 * (180000 + (2 * 330)) * 1e-6), 0, nitedrvr_crash_toggle); - nitedrvr_register_machine_vars(); -} - -/* Machine Driver */ - -static MACHINE_DRIVER_START( nitedrvr ) - // basic machine hardware - MDRV_CPU_ADD(M6502, 12096000/12) // 1 MHz - MDRV_CPU_PROGRAM_MAP(nitedrvr_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold, 1) - MDRV_WATCHDOG_VBLANK_INIT(3) - - MDRV_SCREEN_REFRESH_RATE(57) // how is this derived? - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(nitedrvr) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - - MDRV_PALETTE_INIT(black_and_white) - MDRV_VIDEO_START(nitedrvr) - MDRV_VIDEO_UPDATE(nitedrvr) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(nitedrvr_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/* ROMs */ - -/* -ROM_START( nitedrvo ) // early revision has the program code stored in 8 chips - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "006560-01.h1", 0x9000, 0x0200, NO_DUMP ) // PROM 1 - ROM_LOAD( "006561-01.c1", 0x9200, 0x0200, NO_DUMP ) // PROM 2 - ROM_LOAD( "006562-01.j1", 0x9400, 0x0200, NO_DUMP ) // PROM 3 - ROM_LOAD( "006563-01.d1", 0x9600, 0x0200, NO_DUMP ) // PROM 4 - ROM_LOAD( "006564-01.k1", 0x9800, 0x0200, NO_DUMP ) // PROM 5 - ROM_LOAD( "006565-01.e1", 0x9a00, 0x0200, NO_DUMP ) // PROM 6 - ROM_LOAD( "006566-01.l1", 0x9c00, 0x0200, NO_DUMP ) // PROM 7 - ROM_LOAD( "006567-01.f1", 0x9e00, 0x0200, NO_DUMP ) // PROM 8 -ROM_END -*/ - -ROM_START( nitedrvr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "006569-01.d2", 0x9000, 0x0800, CRC(7afa7542) SHA1(81018e25ebdeae1daf1308676661063b6fd7fd22) ) // MASK ROM 1 - ROM_LOAD( "006570-01.f2", 0x9800, 0x0800, CRC(bf5d77b1) SHA1(6f603f8b0973bd89e0e721b66944aac8e9f904d9) ) // MASK ROM 2 - ROM_RELOAD( 0xf800, 0x0800 ) // vectors - - ROM_REGION( 0x200, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "006568-01.p2", 0x0000, 0x0200, CRC(f80d8889) SHA1(ca573543dcce1221459d5693c476cef14bfac4f4) ) // PROM, Alpha-Numeric - - ROM_REGION( 0x100, REGION_PROMS, 0 ) - ROM_LOAD( "006559-01.h7", 0x0000, 0x0100, CRC(5a8d0e42) SHA1(772220c4c24f18769696ddba26db2bc2e5b0909d) ) // PROM, Sync -ROM_END - -/* Game Drivers */ - -GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, 0, ROT0, "Atari", "Night Driver", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) diff --git a/src/drivers/nmk16.c b/src/drivers/nmk16.c deleted file mode 100644 index 98c02787e..000000000 --- a/src/drivers/nmk16.c +++ /dev/null @@ -1,4947 +0,0 @@ -/******************************************************************** - -Task Force Harrier 1989 UPL 68000 Z80 YM2203 2xOKIM6295 -Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295 -Mustang 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 -Bio-ship Paladin 1990 UPL 68000 YM2203 2xOKIM6295 -Vandyke 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 -Black Heart 1991 UPL 68000 NMK004 YM2203 2xOKIM6295 -Acrobat Mission 1991 UPL 68000 NMK004 YM2203 2xOKIM6295 -Strahl 1992 UPL 68000 YM2203 2xOKIM6295 -Thunder Dragon 1991 NMK/Tecmo 68000 YM2203 2xOKIM6295 -Hacha Mecha Fighter 1991 NMK 68000 YM2203 2xOKIM6295 -Macross 1992 Banpresto 68000 YM2203 2xOKIM6295 -GunNail 1993 NMK/Tecmo 68000 NMK004 YM2203 2xOKIM6295 -Macross II 1993 Banpresto 68000 Z80 YM2203 2xOKIM6295 -Thunder Dragon 2 1993 NMK 68000 Z80 YM2203 2xOKIM6295 -Rapid Hero 1994 NMK 68000 tmp90c841 YM2203 2xOKIM6295 - -S.S. Mission 1992 Comad 68000 Z80 OKIM6295 -Air Attack 1996 Comad 68000 Z80 OKIM6295 - -Mustang (bootleg) 68000 Z80 YM3812 OKIM6295 -Thunder Dragon (bootleg) 68000 Z80 YM3812 OKIM6295 - -Saboten Bombers 1992 NMK/Tecmo 68000 2xOKIM6295 -Bombjack Twin 1993 NMK 68000 2xOKIM6295 -Nouryoku Koujou Iinkai 1995 Tecmo 68000 2xOKIM6295 - -driver by Mirko Buffoni, Richard Bush, Nicola Salmoria, Bryan McPhail, - David Haywood, and R. Belmont. - -The NMK004 CPU might be a Toshiba TLCS-90 class CPU with internal ROM in the -0000-1fff range. - -The later games (from GunNail onwards) have an higher resolution (384x224 instead -of 256x224) but the hardware is pretty much the same. It's obvious that the higher -res is an afterthought, because the tilemap layout is weird (the left 8 screen -columns have to be taken from the rightmost 8 columns of the tilemap), and the -games rely on mirror addresses to access the tilemap sequentially. - -TODO: -- NMK004 sound CPU is just (imperfectly) simulated for now. -- There is a handshaking operation happening on boot in most games. It happens on - the NMK004 communication ports so I have implemented it in NMK004.c. However, - the same handshaking also happen in tharrier, which doesn't have a NMK004! - Therefore, it might be another protection device, which sits in the middle - between CPU and NMK004. -- Protection is patched in several games. -- In hachamf it seems that the protection device shares some RAM (fe000-fefff) - with the main CPU, and the main CPU fetches pointers from that shared RAM to - do important operations like reading the input ports. Some of them are easily - deduced checking for similarities in macross and bjtwin; however another - protection check involves (see the routine at 01429a) writing data to the - fe100-fe1ff range, and then jumping to subroutines in that range (most likely - function pointers since each one is only 0x10 bytes long), and heaven knows - what those should do. - On startup, hachamf does a RAM test, then copies some stuff and jumps to - RAM at 0xfef00, where it sits in a loop. We patch around that by replacing the - reset vector with the "real" one. - update: simulated this,see hachamf_mcu_shared_w() & tdragon_mcu_shared_w() for - more info about it. -- Hacha Mecha Fighter bg graphics are completely wrong except at the title screen & - the level 7.Likely to be a rom issue,the game activates the bgbank - when it is on the above two cases.Also the bomb graphics are wrong when the game - is in japanese mode... -- Cocktail mode is supported, but tilemap.c has problems with asymmetrical - visible areas. -- Music timing in nouryoku is a little off. -- In Bioship, there's an occasional flicker of one of the sprites composing big - ships. Increasing CPU speed from 12 to 16 MHz improved it, but it's still not - 100% fixed. -- Input ports in Bio-ship Paladin, Strahl -- Sound communication in Mustang might be incorrectly implemented -- Incorrect OKI samples banking in Rapid Hero - ----- - -IRQ1 controls audio output and coin/joysticks reads -IRQ4 controls DSW reads and vblank. -IRQ2 points to RTE (not used). - ----- - -tdragon,mustang and hachamf test mode: - -1) Press player 2 buttons 1+2 during reset. "Ready?" will appear -2) Press player 1 button 2 14 (!) times - -gunnail test mode: - -1) Press player 2 buttons 1+2 during reset. "Ready?" will appear -2) Press player 2 button 1 3 times - -bjtwin test mode: - -1) Press player 2 buttons 1+2 during reset. "Ready?" will appear -2) Press player 1 buttons in this sequence: - 2,2,2, 1,1,1, 2,2,2, 1,1,1 - The release date of this program will appear. - -Some code has to be patched out for this to work (see below). The program -remaps button 2 and 3 to button 1, so you can't enter the above sequence. - ---- - -Questions / Notes - -'manybloc' : - - - There are writes to 0x080010.w and 0x080012.w (MCU ?) in code between - 0x005000 to 0x005690, but I see no call to "main" routine at 0x005504 ! - - There are writes to 0x08001c.w and 0x08001e.w but I can't tell what - the effect is ! Could it be related to sound and/or interrupts ? - - - In the "test mode", press BOTH player 1 buttons to exit - - - When help is available, press BUTTON2 twice within the timer to "solve" - ---- - -Sound notes for games with a Z80: - -mustangb and tdragonb use the Seibu Raiden sound hardware and a modified -Z80 program (but the music is intact and recognizable). See sndhrdw/seibu.c -for more info on this. - -********************************************************************/ - -#include "driver.h" -#include "sndhrdw/seibu.h" -#include "sound/2203intf.h" -#include "sound/okim6295.h" -#include "sound/3812intf.h" -#include "machine/nmk004.h" -#include "machine/nmk112.h" - - -extern UINT16 *nmk_bgvideoram,*nmk_fgvideoram,*nmk_txvideoram; -extern UINT16 *gunnail_scrollram; -extern UINT16 tharrier_scroll; - -READ16_HANDLER( nmk_bgvideoram_r ); -WRITE16_HANDLER( nmk_bgvideoram_w ); -READ16_HANDLER( nmk_fgvideoram_r ); -WRITE16_HANDLER( nmk_fgvideoram_w ); -READ16_HANDLER( nmk_txvideoram_r ); -WRITE16_HANDLER( nmk_txvideoram_w ); -WRITE16_HANDLER( nmk_scroll_w ); -WRITE16_HANDLER( nmk_scroll_2_w ); -WRITE16_HANDLER( nmk_scroll_3_w ); -WRITE16_HANDLER( gunnail_scrollx_w ); -WRITE16_HANDLER( gunnail_scrolly_w ); -WRITE16_HANDLER( nmk_flipscreen_w ); -WRITE16_HANDLER( nmk_tilebank_w ); -WRITE16_HANDLER( bioship_scroll_w ); -WRITE16_HANDLER( bioship_bank_w ); -WRITE16_HANDLER( mustang_scroll_w ); -WRITE16_HANDLER( bioshipbg_scroll_w ); -WRITE16_HANDLER( vandyke_scroll_w ); -WRITE16_HANDLER( manybloc_scroll_w ); - -VIDEO_START( macross ); -VIDEO_UPDATE( manybloc ); -VIDEO_START( gunnail ); -VIDEO_START( macross2 ); -VIDEO_START( tdragon2 ); -VIDEO_START( bjtwin ); -VIDEO_START( bioship ); -VIDEO_START( strahl ); -VIDEO_UPDATE( bioship ); -VIDEO_UPDATE( strahl ); -VIDEO_UPDATE( macross ); -VIDEO_UPDATE( gunnail ); -VIDEO_UPDATE( bjtwin ); -VIDEO_UPDATE( tharrier ); -VIDEO_UPDATE( hachamf ); -VIDEO_UPDATE( tdragon ); -VIDEO_EOF( nmk ); - - -static MACHINE_RESET( nmk16 ) -{ -} - -static MACHINE_RESET( NMK004 ) -{ - NMK004_init(); -} - -static MACHINE_RESET( mustang_sound ) -{ - machine_reset_seibu_sound_1(machine); -} - -WRITE16_HANDLER ( ssmissin_sound_w ) -{ - /* maybe .. */ - if (ACCESSING_LSB) - { - soundlatch_w(0,data & 0xff); - cpunum_set_input_line(1,0, ASSERT_LINE); - } - - if (ACCESSING_MSB) - if ((data >> 8) & 0x80) - cpunum_set_input_line(1,0, CLEAR_LINE); -} - - - -WRITE8_HANDLER ( ssmissin_soundbank_w ) -{ - unsigned char *rom = memory_region(REGION_SOUND1); - int bank; - - bank = data & 0x3; - - memcpy(rom + 0x20000,rom + 0x80000 + bank * 0x20000,0x20000); -} - - -static UINT16 *ram; - - -static WRITE16_HANDLER( tharrier_shared_w ) -{ - if(offset==0xf00/2) - COMBINE_DATA(&tharrier_scroll); - COMBINE_DATA(&ram[offset]); -} - -static READ16_HANDLER( tharrier_shared_r ) -{ - if (ACCESSING_MSB && ACCESSING_LSB && (offset==0 || offset==0x6c/2 )) - return (ram[offset]>>8)|(ram[offset]&0xff00); - - return ram[offset]; -} - -static WRITE16_HANDLER( tharrier_mcu_control_w ) -{ -// logerror("%04x: mcu_control_w %02x\n",activecpu_get_pc(),data); -} - -static READ16_HANDLER( tharrier_mcu_r ) -{ - /* The MCU is mapped as the top byte for byte accesses only, - all word accesses are to the input port */ - if (ACCESSING_MSB && !ACCESSING_LSB) - { - static UINT8 to_main[] = - { - 0x82,0xc7,0x00,0x2c,0x6c,0x00,0x9f,0xc7,0x00,0x29,0x69,0x00,0x8b,0xc7,0x00 - }; - static int prot_count; - - int res; - - if (activecpu_get_pc()==0x8aa) res = (ram[0x064/2])|0x20; /* Task Force Harrier */ - else if (activecpu_get_pc()==0x8ce) res = (ram[0x064/2])|0x60; /* Task Force Harrier */ - else - { - res = to_main[prot_count++]; - if (prot_count > sizeof(to_main)) - prot_count = 0; - } - - return res << 8; - } - else - return ~input_port_1_word_r(0,0); -} - -static WRITE16_HANDLER( macross2_sound_command_w ) -{ - if (ACCESSING_LSB) - soundlatch_w(0,data & 0xff); -} - -static READ16_HANDLER( macross2_sound_result_r ) -{ - return soundlatch2_r(0); -} - -static WRITE8_HANDLER( macross2_sound_bank_w ) -{ - UINT8 *rom = memory_region(REGION_CPU2) + 0x10000; - - memory_set_bankptr(1,rom + (data & 0x07) * 0x4000); -} - -static WRITE8_HANDLER( tharrier_oki6295_bankswitch_0_w ) -{ - UINT8 *rom = memory_region(REGION_SOUND1); - - data &= 3; - if (data != 3) - memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000); -} - -static WRITE8_HANDLER( tharrier_oki6295_bankswitch_1_w ) -{ - UINT8 *rom = memory_region(REGION_SOUND2); - - data &= 3; - if (data != 3) - memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000); -} - -/***************************************************************************/ - -static ADDRESS_MAP_START( vandyke_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09d000, 0x09d7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vandyke_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080016, 0x080017) AM_WRITE(MWA16_NOP) /* IRQ enable? */ - AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c007) AM_WRITE(vandyke_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x094000, 0x097fff) AM_WRITE(MWA16_RAM) /* what is this */ - AM_RANGE(0x09d000, 0x09d7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) /* not tested in tests .. hardly used probably some registers not ram */ -ADDRESS_MAP_END - -static READ16_HANDLER(logr) -{ -//logerror("Read input port 1 %05x\n",activecpu_get_pc()); -return ~input_port_0_word_r(0,0); -} - -static ADDRESS_MAP_START( manybloc_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080004, 0x080005) AM_READ(input_port_2_word_r) - AM_RANGE(0x08001e, 0x08001f) AM_READ(soundlatch2_word_r) - AM_RANGE(0x088000, 0x0883ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09cfff) AM_READ(MRA16_RAM) - AM_RANGE(0x09d000, 0x09d7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( manybloc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080010, 0x080011) AM_WRITE(MWA16_NOP) /* See notes at the top of the driver */ - AM_RANGE(0x080012, 0x080013) AM_WRITE(MWA16_NOP) /* See notes at the top of the driver */ - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x08001c, 0x08001d) AM_WRITE(MWA16_NOP) /* See notes at the top of the driver */ - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) - AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09cfff) AM_WRITE(manybloc_scroll_w) AM_BASE(&gunnail_scrollram) - AM_RANGE(0x09d000, 0x09d7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_READ(soundlatch_r) - AM_RANGE(0xf400, 0xf400) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xf500, 0xf500) AM_READ(OKIM6295_status_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_w) - AM_RANGE(0xf400, 0xf400) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xf500, 0xf500) AM_WRITE(OKIM6295_data_1_w) - AM_RANGE(0xf600, 0xf600) AM_WRITE(tharrier_oki6295_bankswitch_0_w) - AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_1_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(logr)//input_port_0_word_r }, - AM_RANGE(0x080002, 0x080003) AM_READ(tharrier_mcu_r) //input_port_1_word_r }, - AM_RANGE(0x080004, 0x080005) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(soundlatch2_word_r) /* from Z80 */ - AM_RANGE(0x088000, 0x0883ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09d000, 0x09d7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(tharrier_shared_r)//MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tharrier_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080010, 0x080011) AM_WRITE(tharrier_mcu_control_w) - AM_RANGE(0x080012, 0x080013) AM_WRITE(MWA16_NOP) -// AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) -// AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w) - AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(MWA16_NOP) /* Unused txvideoram area? */ - AM_RANGE(0x09d000, 0x09d7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(tharrier_shared_w) AM_BASE(&ram) /* Work RAM again (fe000-fefff is shared with the sound CPU) */ -ADDRESS_MAP_END - -//Read input port 1 030c8/ BAD -//3478 GOOD - -static ADDRESS_MAP_START( mustang_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080004, 0x080005) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) -// AM_RANGE(0x08000e, 0x08000f) AM_READ(soundlatch2_word_r) /* from Z80 bootleg only? */ - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09c7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mustang_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x08000e, 0x08000f) AM_WRITE(MWA16_NOP) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x080016, 0x080017) AM_WRITE(MWA16_NOP) // frame number? - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) - AM_RANGE(0x08c002, 0x08c087) AM_WRITE(MWA16_NOP) // ?? - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mustangb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x080016, 0x080017) AM_WRITE(MWA16_NOP) // frame number? - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(seibu_main_mustb_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( acrobatm_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x80000, 0x8ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xc0000, 0xc0001) AM_READ(input_port_0_word_r) - AM_RANGE(0xc0002, 0xc0003) AM_READ(input_port_1_word_r) - AM_RANGE(0xc0008, 0xc0009) AM_READ(input_port_2_word_r) - AM_RANGE(0xc000a, 0xc000b) AM_READ(input_port_3_word_r) - AM_RANGE(0xc000e, 0xc000f) AM_READ(NMK004_r) - AM_RANGE(0xc4000, 0xc45ff) AM_READ(MRA16_RAM) - AM_RANGE(0xcc000, 0xcffff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0xd4000, 0xd47ff) AM_READ(nmk_txvideoram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( acrobatm_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x88000, 0x88fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x80000, 0x8ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xc0014, 0xc0015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0xc0016, 0xc0017) AM_WRITENOP - AM_RANGE(0xc0018, 0xc0019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0xc001e, 0xc001f) AM_WRITE(NMK004_w) - AM_RANGE(0xc4000, 0xc45ff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xc8000, 0xc8007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0xcc000, 0xcffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0xd4000, 0xd47ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bioship_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09c7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bioship_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) -// AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x084000, 0x084001) AM_WRITE(bioship_bank_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c007) AM_WRITE(bioshipbg_scroll_w) - AM_RANGE(0x08c010, 0x08c017) AM_WRITE(bioship_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) /* Work RAM again (fe000-fefff is shared with the sound CPU) */ -ADDRESS_MAP_END - -/****************************************************************************************** - -Thunder Dragon & Hacha Mecha Fighter shares some ram with the MCU,the job of the latter -is to provide some jsr vectors used by the game for gameplay calculations.Also it has -the job to give the vectors of where the inputs are to be read & to calculate the coin -settings,the latter is in the vidhrdw file to avoid sync problems. -To make a long story short,this MCU is an alternative version of the same protection -used by the MJ-8956 games (there are even the same kind of error codes!(i.e the number -printed on the up-left corner of the screen)... - -Note: I'm 100% sure of the Thunder Dragon vectors because I've compared it with the -bootleg sets,I'm *not* 100% sure of the Hacha Mecha Fighter vectors because I don't have -anything to compare,infact - -******************************************************************************************/ - -UINT16 *mcu_shared_ram; -UINT16 *mcu_work_ram; - -#define PROT_JSR(_offs_,_protvalue_,_pc_) \ - if(mcu_shared_ram[(_offs_)/2] == _protvalue_) \ - { \ - mcu_shared_ram[(_offs_)/2] = 0xffff; /*(MCU job done)*/ \ - mcu_shared_ram[(_offs_+2-0x10)/2] = 0x4ef9;/*JMP*/\ - mcu_shared_ram[(_offs_+4-0x10)/2] = 0x0000;/*HI-DWORD*/\ - mcu_shared_ram[(_offs_+6-0x10)/2] = _pc_; /*LO-DWORD*/\ - } \ - -#define PROT_INPUT(_offs_,_protvalue_,_protinput_,_input_) \ - if(mcu_shared_ram[_offs_] == _protvalue_) \ - {\ - mcu_shared_ram[_protinput_] = ((_input_ & 0xffff0000)>>16);\ - mcu_shared_ram[_protinput_+1] = (_input_ & 0x0000ffff);\ - } - -static READ16_HANDLER( mcu_shared_r ) -{ - return mcu_shared_ram[offset]; -} - -//td - hmf -//008D9E - 00796e -/* -007B9E: bra 7b9c -007BA0: move.w #$10, $f907a.l -007BA8: bsr 8106 -007BAC: bsr dfc4 -007BB0: bsr c44e -007BB4: bcs 7cfa -007BB8: bsr d9c6 -007BBC: bsr 9400 -007BC0: bsr 7a54 -007BC4: bsr da06 -007BC8: cmpi.w #$3, $f907a.l -007BD0: bcc 7be2 -007BD2: move.w #$a, $f530e.l -007BDA: move.w #$a, $f670e.l -007BE2: bsr 81aa -007BE6: bsr 8994 -007BEA: bsr 8c36 -007BEE: bsr 8d0c -007BF2: bsr 870a -007BF6: bsr 9d66 -007BFA: bsr b3f2 -007BFE: bsr b59e -007C02: bsr 9ac2 -007C06: bsr c366 - -thunder dragon algorithm (level 1): -90 - spriteram update -a0 - tilemap update -b0 - player inputs -c0 - controls sprite animation -d0 - player shoots -e0 - controls power-ups -f0 - player bombs -00 - controls player shoots -10 - ? -20 - level logic -30 - enemy appearence -40 - enemy energy -50 - enemy energy 2 -60 - enemy shoots - -hacha mecha fighter algorithm (level 1): -90 - spriteram update (d9c6) -a0 - tilemap update (d1f8?) -b0 - player inputs (da06) -c0 - controls sprite animation (81aa) -d0 - player shoots (8994) -e0 - controls power-ups & options (8d0c) -f0 - player bombs (8c36) -00 - controls player shoots (870a) -10 - ? -20 - level logic (9642) -30 - enemy appearence (9d66) -40 - enemy energy (b3f2) -50 - enemy energy 2 (b59e) -60 - enemy shoots (9ac2) -70 - ? -80 - - -*/ - -static WRITE16_HANDLER( hachamf_mcu_shared_w ) -{ - COMBINE_DATA(&mcu_shared_ram[offset]); - - switch(offset) - { - case 0x058/2: PROT_INPUT(0x058/2,0xc71f,0x000/2,0x00080000); break; - case 0x182/2: PROT_INPUT(0x182/2,0x865d,0x004/2,0x00080002); break; - case 0x51e/2: PROT_INPUT(0x51e/2,0x0f82,0x008/2,0x00080008); break; - case 0x6b4/2: PROT_INPUT(0x6b4/2,0x79be,0x00c/2,0x0008000a); break; - case 0x10e/2: PROT_JSR(0x10e,0x8007,0x870a);//870a not 9d66 - PROT_JSR(0x10e,0x8000,0xd9c6); break; - case 0x11e/2: PROT_JSR(0x11e,0x8038,0x972a);//972a - PROT_JSR(0x11e,0x8031,0xd1f8); break; - case 0x12e/2: PROT_JSR(0x12e,0x8019,0x9642);//OK-9642 - PROT_JSR(0x12e,0x8022,0xda06); break; - case 0x13e/2: PROT_JSR(0x13e,0x802a,0x9d66);//9d66 not 9400 - OK - PROT_JSR(0x13e,0x8013,0x81aa); break; - case 0x14e/2: PROT_JSR(0x14e,0x800b,0xb3f2);//b3f2 - OK - PROT_JSR(0x14e,0x8004,0x8994); break; - case 0x15e/2: PROT_JSR(0x15e,0x803c,0xb59e);//b59e - OK - PROT_JSR(0x15e,0x8035,0x8d0c); break; - case 0x16e/2: PROT_JSR(0x16e,0x801d,0x9ac2);//9ac2 - OK - PROT_JSR(0x16e,0x8026,0x8c36); break; - case 0x17e/2: PROT_JSR(0x17e,0x802e,0xc366);//c366 - OK - PROT_JSR(0x17e,0x8017,0x870a); break; - case 0x18e/2: PROT_JSR(0x18e,0x8004,0xd620); //unused - PROT_JSR(0x18e,0x8008,0x972a); break; //unused - case 0x19e/2: PROT_JSR(0x19e,0x8030,0xd9c6);//OK-d9c6 - PROT_JSR(0x19e,0x8039,0x9642); break; - case 0x1ae/2: PROT_JSR(0x1ae,0x8011,0xd1f8);//d1f8 not c67e - PROT_JSR(0x1ae,0x802a,0x9d66); break; - case 0x1be/2: PROT_JSR(0x1be,0x8022,0xda06);//da06 - PROT_JSR(0x1be,0x801b,0xb3f2); break; - case 0x1ce/2: PROT_JSR(0x1ce,0x8003,0x81aa);//81aa - PROT_JSR(0x1ce,0x800c,0xb59e); break; - case 0x1de/2: PROT_JSR(0x1de,0x8034,0x8994);//8994 - OK - PROT_JSR(0x1de,0x803d,0x9ac2); break; - case 0x1ee/2: PROT_JSR(0x1ee,0x8015,0x8d0c);//8d0c not 82f6 - PROT_JSR(0x1ee,0x802e,0xc366); break; - case 0x1fe/2: PROT_JSR(0x1fe,0x8026,0x8c36);//8c36 - PROT_JSR(0x1fe,0x8016,0xd620); break; //unused - case 0xf00/2: - if(mcu_shared_ram[0xf00/2] == 0x60fe) - { - mcu_shared_ram[0xf00/2] = 0x0000; //this is the coin counter - mcu_shared_ram[0xf02/2] = 0x0000; - mcu_shared_ram[0xf04/2] = 0x4ef9; - mcu_shared_ram[0xf06/2] = 0x0000; - mcu_shared_ram[0xf08/2] = 0x7dc2; - } - break; - } -} - -static ADDRESS_MAP_START( hachamf_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09c7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - //AM_RANGE(0x0fe000, 0x0fe00b) AM_READ(hachamf_protection_hack_r) - AM_RANGE(0x0f9000, 0x0fdfff) AM_READ(MRA16_RAM) - AM_RANGE(0x0fe000, 0x0fefff) AM_READ(MRA16_RAM) - AM_RANGE(0x0ff000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hachamf_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fdfff) AM_WRITE(MWA16_RAM) AM_BASE(&mcu_work_ram) /* Work RAM */ - AM_RANGE(0x0fe000, 0x0fefff) AM_RAM AM_READWRITE(mcu_shared_r,hachamf_mcu_shared_w) AM_BASE(&mcu_shared_ram) /* Work RAM */ - AM_RANGE(0x0ff000, 0x0fffff) AM_WRITE(MWA16_RAM) /* Work RAM */ -ADDRESS_MAP_END - -static WRITE16_HANDLER( tdragon_mcu_shared_w ) -{ - COMBINE_DATA(&mcu_shared_ram[offset]); - - switch(offset) - { - case 0x066/2: PROT_INPUT(0x066/2,0xe23e,0x000/2,0x000c0000); break; - case 0x144/2: PROT_INPUT(0x144/2,0xf54d,0x004/2,0x000c0002); break; - case 0x60e/2: PROT_INPUT(0x60e/2,0x067c,0x008/2,0x000c0008); break; - case 0x714/2: PROT_INPUT(0x714/2,0x198b,0x00c/2,0x000c000a); break; - case 0x70e/2: PROT_JSR(0x70e,0x8007,0x9e22); - PROT_JSR(0x70e,0x8000,0xd518); break; - case 0x71e/2: PROT_JSR(0x71e,0x8038,0xaa0a); - PROT_JSR(0x71e,0x8031,0x8e7c); break; - case 0x72e/2: PROT_JSR(0x72e,0x8019,0xac48); - PROT_JSR(0x72e,0x8022,0xd558); break; - case 0x73e/2: PROT_JSR(0x73e,0x802a,0xb110); - PROT_JSR(0x73e,0x8013,0x96da); break; - case 0x74e/2: PROT_JSR(0x74e,0x800b,0xb9b2); - PROT_JSR(0x74e,0x8004,0xa062); break; - case 0x75e/2: PROT_JSR(0x75e,0x803c,0xbb4c); - PROT_JSR(0x75e,0x8035,0xa154); break; - case 0x76e/2: PROT_JSR(0x76e,0x801d,0xafa6); - PROT_JSR(0x76e,0x8026,0xa57a); break; - case 0x77e/2: PROT_JSR(0x77e,0x802e,0xc6a4); - PROT_JSR(0x77e,0x8017,0x9e22); break; - case 0x78e/2: PROT_JSR(0x78e,0x8004,0xaa0a); - PROT_JSR(0x78e,0x8008,0xaa0a); break; - case 0x79e/2: PROT_JSR(0x79e,0x8030,0xd518); - PROT_JSR(0x79e,0x8039,0xac48); break; - case 0x7ae/2: PROT_JSR(0x7ae,0x8011,0x8e7c); - PROT_JSR(0x7ae,0x802a,0xb110); break; - case 0x7be/2: PROT_JSR(0x7be,0x8022,0xd558); - PROT_JSR(0x7be,0x801b,0xb9b2); break; - case 0x7ce/2: PROT_JSR(0x7ce,0x8003,0x96da); - PROT_JSR(0x7ce,0x800c,0xbb4c); break; - case 0x7de/2: PROT_JSR(0x7de,0x8034,0xa062); - PROT_JSR(0x7de,0x803d,0xafa6); break; - case 0x7ee/2: PROT_JSR(0x7ee,0x8015,0xa154); - PROT_JSR(0x7ee,0x802e,0xc6a4); break; - case 0x7fe/2: PROT_JSR(0x7fe,0x8026,0xa57a); - PROT_JSR(0x7fe,0x8016,0xa57a); break; - case 0xf00/2: - if(mcu_shared_ram[0xf00/2] == 0x60fe) - { - mcu_shared_ram[0xf00/2] = 0x0000; //this is the coin counter - mcu_shared_ram[0xf02/2] = 0x0000; - mcu_shared_ram[0xf04/2] = 0x4ef9; - mcu_shared_ram[0xf06/2] = 0x0000; - mcu_shared_ram[0xf08/2] = 0x92f4; - } - break; - } -} - -static ADDRESS_MAP_START( tdragon_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x044022, 0x044023) AM_READ(MRA16_NOP) /* No Idea */ - AM_RANGE(0x0b0000, 0x0b7fff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0b8000, 0x0b8fff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x0b9000, 0x0bdfff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0be000, 0x0befff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0bf000, 0x0bffff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0c8000, 0x0c87ff) AM_READ(MRA16_RAM) /* Palette RAM */ - AM_RANGE(0x0c0000, 0x0c0001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(input_port_1_word_r) - AM_RANGE(0x0c0008, 0x0c0009) AM_READ(input_port_2_word_r) - AM_RANGE(0x0c000a, 0x0c000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x0c000e, 0x0c000f) AM_READ(NMK004_r) - AM_RANGE(0x0cc000, 0x0cffff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x0d0000, 0x0d07ff) AM_READ(nmk_txvideoram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tdragon_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0b0000, 0x0b7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0b8000, 0x0b8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Sprite RAM */ - AM_RANGE(0x0b9000, 0x0bdfff) AM_WRITE(MWA16_RAM) AM_BASE(&mcu_work_ram) /* Work RAM */ - AM_RANGE(0x0be000, 0x0befff) AM_RAM AM_READWRITE(mcu_shared_r,tdragon_mcu_shared_w) AM_BASE(&mcu_shared_ram) /* Work RAM */ - AM_RANGE(0x0bf000, 0x0bffff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ - AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ - AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(NMK004_w) - AM_RANGE(0x0c4000, 0x0c4007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0cc000, 0x0cffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x0d0000, 0x0d07ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tdragonb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0b0000, 0x0b7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0b8000, 0x0b8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Sprite RAM */ - AM_RANGE(0x0b9000, 0x0bffff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ - AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ - AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(seibu_main_mustb_w) - AM_RANGE(0x0c4000, 0x0c4007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0cc000, 0x0cffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x0d0000, 0x0d07ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ssmissin_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x0b0000, 0x0b7fff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0b8000, 0x0b8fff) AM_READ(MRA16_RAM) /* Sprite RAM */ - AM_RANGE(0x0b9000, 0x0bffff) AM_READ(MRA16_RAM) /* Work RAM */ - AM_RANGE(0x0c8000, 0x0c87ff) AM_READ(MRA16_RAM) /* Palette RAM */ - AM_RANGE(0x0c0000, 0x0c0001) AM_READ(input_port_0_word_r) - AM_RANGE(0x0c0004, 0x0c0005) AM_READ(input_port_1_word_r) - AM_RANGE(0x0c0006, 0x0c0007) AM_READ(input_port_2_word_r) -// AM_RANGE(0x0c000e, 0x0c000f) AM_READ(??) - AM_RANGE(0x0cc000, 0x0cffff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x0d0000, 0x0d07ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0d0800, 0x0d0fff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0d1000, 0x0d17ff) AM_READ(nmk_txvideoram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ssmissin_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x0b0000, 0x0b7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0b8000, 0x0b8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Sprite RAM */ - AM_RANGE(0x0b9000, 0x0bffff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(nmk_flipscreen_w) /* Maybe */ - AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE(nmk_tilebank_w) /* Tile Bank ? */ - AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w) - AM_RANGE(0x0c4000, 0x0c4007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x0c8000, 0x0c87ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0cc000, 0x0cffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x0d0000, 0x0d07ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0d0800, 0x0d0fff) AM_WRITE(nmk_txvideoram_w) //mirror for airattck - AM_RANGE(0x0d1000, 0x0d17ff) AM_WRITE(nmk_txvideoram_w) //mirror for airattck -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( ssmissin_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9800, 0x9800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ssmissin_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(ssmissin_soundbank_w) - AM_RANGE(0x9800, 0x9800) AM_WRITE(OKIM6295_data_0_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( strahl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x80000, 0x80001) AM_READ(input_port_0_word_r) - AM_RANGE(0x80002, 0x80003) AM_READ(input_port_1_word_r) - AM_RANGE(0x80008, 0x80009) AM_READ(input_port_2_word_r) - AM_RANGE(0x8000a, 0x8000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x8000e, 0x8000f) AM_READ(NMK004_r) - AM_RANGE(0x8c000, 0x8c7ff) AM_READ(MRA16_RAM) - AM_RANGE(0x90000, 0x93fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x94000, 0x97fff) AM_READ(nmk_fgvideoram_r) - AM_RANGE(0x9c000, 0x9c7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0xf0000, 0xf7fff) AM_READ(MRA16_RAM) - AM_RANGE(0xf8000, 0xfefff) AM_READ(MRA16_RAM) - AM_RANGE(0xff000, 0xfffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( strahl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x3ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x80014, 0x80015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x80016, 0x80017) AM_WRITE(MWA16_NOP) /* IRQ enable? */ - AM_RANGE(0x8001e, 0x8001f) AM_WRITE(NMK004_w) - AM_RANGE(0x84000, 0x84007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x88000, 0x88007) AM_WRITE(nmk_scroll_2_w) - AM_RANGE(0x8c000, 0x8c7ff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x90000, 0x93fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x94000, 0x97fff) AM_WRITE(nmk_fgvideoram_w) AM_BASE(&nmk_fgvideoram) - AM_RANGE(0x9c000, 0x9c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0xf0000, 0xf7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0xf8000, 0xfefff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM again */ - AM_RANGE(0xff000, 0xfffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09c7ff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x080016, 0x080017) AM_WRITE(MWA16_NOP) /* IRQ enable? */ - AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM again */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gunnail_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) /* palette ram */ - AM_RANGE(0x090000, 0x093fff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09c000, 0x09cfff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x09d000, 0x09dfff) AM_READ(nmk_txvideoram_r) /* mirror */ - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gunnail_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x080016, 0x080017) AM_WRITE(MWA16_NOP) /* IRQ enable? */ - AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x08c000, 0x08c1ff) AM_RAM AM_WRITE(gunnail_scrollx_w) AM_BASE(&gunnail_scrollram) - AM_RANGE(0x08c200, 0x08c201) AM_WRITE(gunnail_scrolly_w) - AM_RANGE(0x08c202, 0x08c7ff) AM_RAM // extra scroll registers (used after a boss is killed and in level 5) - AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09c000, 0x09cfff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x09d000, 0x09dfff) AM_WRITE(nmk_txvideoram_w) /* mirror */ - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM again */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x100001) AM_READ(input_port_0_word_r) - AM_RANGE(0x100002, 0x100003) AM_READ(input_port_1_word_r) - AM_RANGE(0x100008, 0x100009) AM_READ(input_port_2_word_r) - AM_RANGE(0x10000a, 0x10000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x10000e, 0x10000f) AM_READ(macross2_sound_result_r) /* from Z80 */ - AM_RANGE(0x120000, 0x1207ff) AM_READ(MRA16_RAM) - AM_RANGE(0x140000, 0x14ffff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x170000, 0x170fff) AM_READ(nmk_txvideoram_r) - AM_RANGE(0x171000, 0x171fff) AM_READ(nmk_txvideoram_r) /* mirror */ - AM_RANGE(0x1f0000, 0x1f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1f8000, 0x1f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x1f9000, 0x1fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x100016, 0x100017) AM_WRITE(MWA16_NOP) /* IRQ eanble? */ - AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */ - AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x130000, 0x130007) AM_WRITE(nmk_scroll_w) - AM_RANGE(0x130008, 0x1307ff) AM_WRITE(MWA16_NOP) /* 0 only? */ - AM_RANGE(0x140000, 0x14ffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x170000, 0x170fff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x171000, 0x171fff) AM_WRITE(nmk_txvideoram_w) /* mirror */ - AM_RANGE(0x1f0000, 0x1f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x1f8000, 0x1f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x1f9000, 0x1fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM again */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( raphero_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x100016, 0x100017) AM_WRITE(MWA16_NOP) /* IRQ eanble? */ - AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to sound cpu */ - AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x130000, 0x1307ff) AM_WRITE(nmk_scroll_3_w) AM_BASE(&gunnail_scrollram) - AM_RANGE(0x140000, 0x14ffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x170000, 0x170fff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram) - AM_RANGE(0x171000, 0x171fff) AM_WRITE(nmk_txvideoram_w) /* mirror */ - AM_RANGE(0x1f0000, 0x1f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x1f8000, 0x1f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x1f9000, 0x1fffff) AM_WRITE(MWA16_RAM) AM_BASE(&ram) /* Work RAM again */ -ADDRESS_MAP_END - -#if 0 -/* - After playing the game to the end: - - ff,ff,ff,ff 20,00,f8,02 20,00,f8,04 00,04,d8,09 - 0f,00,00,ff 00,00,18,03 a0,13,fe,05 40,1e,1b,09 -*/ -static int mask[4*2]; -static WRITE8_HANDLER( okibank_w ) -{ - mask[offset] |= 1 << (data & 0x1f); - popmessage("%x %x %x %x - %x %x %x %x",mask[0],mask[1],mask[2],mask[3],mask[4],mask[5],mask[6],mask[7]); -} -#endif - -static WRITE8_HANDLER( raphero_sound_rombank_w ) -{ - memory_set_bankptr(1,memory_region(REGION_CPU2) + 0x10000 + (data & 0x07) * 0x4000); -} - -static ADDRESS_MAP_START( raphero_sound_mem_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE( 0x0000, 0x7fff ) AM_ROM - AM_RANGE( 0x8000, 0xbfff ) AM_READ( MRA8_BANK1 ) - AM_RANGE( 0xc000, 0xc000 ) AM_READWRITE( YM2203_status_port_0_r, YM2203_control_port_0_w ) - AM_RANGE( 0xc001, 0xc001 ) AM_READWRITE( YM2203_read_port_0_r, YM2203_write_port_0_w ) - AM_RANGE( 0xc800, 0xc800 ) AM_READWRITE( OKIM6295_status_0_r, OKIM6295_data_0_w ) - AM_RANGE( 0xc808, 0xc808 ) AM_READWRITE( OKIM6295_status_1_r, OKIM6295_data_1_w ) - AM_RANGE( 0xc810, 0xc817 ) AM_WRITE( NMK112_okibank_w ) -// AM_RANGE( 0xc810, 0xc817 ) AM_WRITE( okibank_w ) - AM_RANGE( 0xd000, 0xd000 ) AM_WRITE( raphero_sound_rombank_w ) - AM_RANGE( 0xd800, 0xd800 ) AM_READWRITE( soundlatch_r, soundlatch2_w ) // main cpu - AM_RANGE( 0xe000, 0xffff ) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0xa000, 0xa000) AM_READ(MRA8_NOP) /* IRQ ack? watchdog? */ - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_READ(soundlatch_r) /* from 68000 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe001, 0xe001) AM_WRITE(macross2_sound_bank_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_w) /* to 68000 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(YM2203_read_port_0_r) - AM_RANGE(0x80, 0x80) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0x88, 0x88) AM_READ(OKIM6295_status_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( macross2_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0x88, 0x88) AM_WRITE(OKIM6295_data_1_w) - AM_RANGE(0x90, 0x97) AM_WRITE(NMK112_okibank_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bjtwin_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x080001) AM_READ(input_port_0_word_r) - AM_RANGE(0x080002, 0x080003) AM_READ(input_port_1_word_r) - AM_RANGE(0x080008, 0x080009) AM_READ(input_port_2_word_r) - AM_RANGE(0x08000a, 0x08000b) AM_READ(input_port_3_word_r) - AM_RANGE(0x084000, 0x084001) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0x084010, 0x084011) AM_READ(OKIM6295_status_1_lsb_r) - AM_RANGE(0x088000, 0x0887ff) AM_READ(MRA16_RAM) - AM_RANGE(0x09c000, 0x09cfff) AM_READ(nmk_bgvideoram_r) - AM_RANGE(0x09d000, 0x09dfff) AM_READ(nmk_bgvideoram_r) /* mirror */ - AM_RANGE(0x0f0000, 0x0f7fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f8000, 0x0f8fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0f9000, 0x0fffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bjtwin_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w) - AM_RANGE(0x084000, 0x084001) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0x084010, 0x084011) AM_WRITE(OKIM6295_data_1_lsb_w) - AM_RANGE(0x084020, 0x08402f) AM_WRITE(NMK112_okibank_lsb_w) - AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w) - AM_RANGE(0x094002, 0x094003) AM_WRITE(MWA16_NOP) /* IRQ enable? */ - AM_RANGE(0x09c000, 0x09cfff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram) - AM_RANGE(0x09d000, 0x09dfff) AM_WRITE(nmk_bgvideoram_w) /* mirror */ - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(MWA16_RAM) /* Work RAM */ - AM_RANGE(0x0f8000, 0x0f8fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0f9000, 0x0fffff) AM_WRITE(MWA16_RAM) /* Work RAM again */ -ADDRESS_MAP_END - - -INPUT_PORTS_START( vandyke ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x08, IP_ACTIVE_LOW ) /* The manual states this dip is "Unused" */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hardest ) ) - - PORT_START /* DSW 2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( blkheart ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x02, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START /* DSW 2 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( manybloc ) - PORT_START /* IN0 - 0x080000 */ - PORT_BIT( 0x7fff, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // VBLANK ? Check code at 0x005640 - - PORT_START /* IN1 - 0x080002 */ - PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // select fruits - PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // help - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) // select fruits - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) // help - PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_COIN2 ) - - PORT_START /* DSW - 0x080004 -> 0x0f0036 */ - PORT_DIPNAME( 0x0001, 0x0000, "Slot System" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0000, "Explanation" ) - PORT_DIPSETTING( 0x0000, DEF_STR( English ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Cabinet ) ) // "Play Type" - PORT_DIPSETTING( 0x0008, DEF_STR( Upright ) ) // "Uplight" ! - PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) ) // "Table" - PORT_SERVICE( 0x0010, IP_ACTIVE_HIGH ) // "Test Mode" - PORT_DIPNAME( 0x0060, 0x0000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( Easy ) ) // "Level 1 - PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) // "Level 2 - PORT_DIPSETTING( 0x0020, DEF_STR( Hard ) ) // "Level 3 - PORT_DIPSETTING( 0x0040, DEF_STR( Hardest ) ) // "Level 4 - PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Flip_Screen ) ) // "Display" - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) // DEF_STR( Normal ) - PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) // "Inverse" - PORT_DIPNAME( 0x0700, 0x0000, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x3800, 0x0000, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x3800, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x2800, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0xc000, 0x0000, "Plate Probability" ) - PORT_DIPSETTING( 0xc000, "Bad" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x4000, "Better" ) - PORT_DIPSETTING( 0x8000, "Best" ) -INPUT_PORTS_END - -INPUT_PORTS_START( tharrier ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Mcu status? */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1)//IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2)//IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN) //IPT_COIN1 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )//COIN ? SERVICE ? - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 )//BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x3000, "200k" ) - PORT_DIPSETTING( 0x2000, "200k and 1 Mil" ) - PORT_DIPSETTING( 0x0000, "200k, 500k & 1,2,3,5 Mil" ) - PORT_DIPSETTING( 0x1000, DEF_STR( None ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x4000, "2" ) - PORT_DIPSETTING( 0xc000, "3" ) - PORT_DIPSETTING( 0x8000, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) -INPUT_PORTS_END - -INPUT_PORTS_START( mustang ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( On ) ) - PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00c0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00e0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00a0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x4000, "2" ) - PORT_DIPSETTING( 0xc000, "3" ) - PORT_DIPSETTING( 0x8000, "4" ) - PORT_DIPSETTING( 0x0000, "5" ) -INPUT_PORTS_END - -INPUT_PORTS_START( hachamf ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x3800, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x3000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x2800, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) -INPUT_PORTS_END - -INPUT_PORTS_START( strahl ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x40, "100k and every 200k" ) - PORT_DIPSETTING( 0x60, "200k and every 200k" ) - PORT_DIPSETTING( 0x20, "300k and every 300k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -INPUT_PORTS_START( acrobatm ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* used by secret code */ - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001C, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000C, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00C0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00E0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00A0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - - PORT_START /* DSW B */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, "50k and 100k" ) - PORT_DIPSETTING( 0x06, "100k and 100k" ) - PORT_DIPSETTING( 0x04, "100k and 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x00, "5" ) -INPUT_PORTS_END - -INPUT_PORTS_START( bioship ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //bryan: test mode in some games? - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0006, 0x0006, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Hardest ) ) - PORT_SERVICE( 0x0008, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_DIPNAME( 0x00C0, 0x00C0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x00C0, "3" ) - PORT_DIPSETTING( 0x0080, "4" ) - PORT_DIPSETTING( 0x0040, "5" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x001C, 0x001C, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x001C, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x000C, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0014, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x00E0, 0x00E0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00C0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00E0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00A0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( tdragon ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0040, "2" ) - PORT_DIPSETTING( 0x00c0, "3" ) - PORT_DIPSETTING( 0x0080, "4" ) - - PORT_START /* DSW 2 */ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) /* The MCU (undumped/unemulated) takes care of this */ - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( tdragonb ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // TEST in service mode - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0002, "2" ) - PORT_DIPSETTING( 0x0003, "3" ) - PORT_DIPSETTING( 0x0001, "4" ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START /* DSW 2 */ - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( ssmissin ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Servise" in "test mode" - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Fire" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Bomb" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Fire" - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Bomb" - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0040, "2" ) - PORT_DIPSETTING( 0x00c0, "3" ) - PORT_DIPSETTING( 0x0080, "4" ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) -#if 0 - PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_B ) ) // initialised but not read back - PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x1400, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x1800, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) -#else - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) -#endif - PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( airattck ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // "Servise" in "test mode" - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // "Fire" - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // "Bomb" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) // "Fire" - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) // "Bomb" - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0040, "2" ) - PORT_DIPSETTING( 0x00c0, "3" ) - PORT_DIPSETTING( 0x0080, "4" ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( macross ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( macross2 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) /* Initial points needed for 1st Stage Clear */ - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) /* 100,000 */ - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) /* 150,000 */ - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) /* 200,000 */ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) /* 250,000 */ - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( tdragon2 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x00, DEF_STR( Off) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gunnail ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) /* Will add "Distributed by TECMO" to the title screen */ - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) /* The manual states dips 4-8 are "Unused" */ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( raphero ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Language ) ) /* Doesn't seem to have any effect */ - PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x00, DEF_STR( Off) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( sabotenb ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* shown in service mode, but no effect */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( bjtwin ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* shown in service mode, but no effect */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Maybe unused */ - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e, 0x0e, "Starting level" ) - PORT_DIPSETTING( 0x08, "Germany" ) - PORT_DIPSETTING( 0x04, "Thailand" ) - PORT_DIPSETTING( 0x0c, "Nevada" ) - PORT_DIPSETTING( 0x0e, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x06, "Korea" ) - PORT_DIPSETTING( 0x0a, "England" ) - PORT_DIPSETTING( 0x02, "Hong Kong" ) - PORT_DIPSETTING( 0x00, "China" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( nouryoku ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, "Life Decrease Speed" ) - PORT_DIPSETTING( 0x02, "Slow" ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, "Fast" ) - PORT_DIPSETTING( 0x00, "Very Fast" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) /* The manual states this dip is "Unused" */ - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 16*32+0*4, 16*32+1*4, 16*32+2*4, 16*32+3*4, 16*32+4*4, 16*32+5*4, 16*32+6*4, 16*32+7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 32*32 -}; - -static const gfx_decode tharrier_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x000, 16 }, /* color 0x200-0x2ff */ - { REGION_GFX2, 0, &tilelayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX3, 0, &tilelayout, 0x100, 16 }, /* color 0x100-0x1ff */ - { -1 } /* end of array */ -}; - -static const gfx_decode macross_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x200, 16 }, /* color 0x200-0x2ff */ - { REGION_GFX2, 0, &tilelayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX3, 0, &tilelayout, 0x100, 16 }, /* color 0x100-0x1ff */ - { -1 } /* end of array */ -}; - -static const gfx_decode macross2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x300, 16 }, /* color 0x300-0x3ff */ - { REGION_GFX2, 0, &tilelayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX3, 0, &tilelayout, 0x100, 32 }, /* color 0x100-0x2ff */ - { -1 } /* end of array */ -}; - -static const gfx_decode bjtwin_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX2, 0, &charlayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX3, 0, &tilelayout, 0x100, 16 }, /* color 0x100-0x1ff */ - { -1 } /* end of array */ -}; - -static const gfx_decode bioship_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x300, 16 }, /* color 0x300-0x3ff */ - { REGION_GFX2, 0, &tilelayout, 0x100, 16 }, /* color 0x100-0x1ff */ - { REGION_GFX3, 0, &tilelayout, 0x200, 16 }, /* color 0x200-0x2ff */ - { REGION_GFX4, 0, &tilelayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { -1 } -}; - -static const gfx_decode strahl_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0x000, 16 }, /* color 0x000-0x0ff */ - { REGION_GFX2, 0, &tilelayout, 0x300, 16 }, /* color 0x300-0x3ff */ - { REGION_GFX3, 0, &tilelayout, 0x100, 16 }, /* color 0x100-0x1ff */ - { REGION_GFX4, 0, &tilelayout, 0x200, 16 }, /* color 0x200-0x2ff */ - { -1 } -}; - - - -static struct YM2203interface ym2203_nmk004_interface = -{ - 0,0,0,0,NMK004_irq -}; - -static void ym2203_irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_interface = -{ - 0,0,0,0,ym2203_irqhandler -}; - -static INTERRUPT_GEN( nmk_interrupt ) -{ - if (cpu_getiloops() == 0) cpunum_set_input_line(0, 4, HOLD_LINE); - else cpunum_set_input_line(0, 2, HOLD_LINE); -} - - -/* Parameters: YM3812 frequency, Oki frequency, Oki memory region */ -SEIBU_SOUND_SYSTEM_YM3812_HARDWARE - - -static MACHINE_DRIVER_START( tharrier ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz */ - MDRV_CPU_PROGRAM_MAP(tharrier_readmem,tharrier_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(tharrier_sound_readmem,tharrier_sound_writemem) - MDRV_CPU_IO_MAP(tharrier_sound_readport,tharrier_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(mustang_sound) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(tharrier_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(tharrier) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( manybloc ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10? MHz - check */ - MDRV_CPU_PROGRAM_MAP(manybloc_readmem,manybloc_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(60))/* is this is too high it breaks the game on this one, too low sprites flicker */ - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(tharrier_sound_readmem,tharrier_sound_writemem) - MDRV_CPU_IO_MAP(tharrier_sound_readport,tharrier_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(tharrier_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(macross) -// MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(manybloc) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mustang ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(mustang_readmem,mustang_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( mustangb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(mustang_readmem,mustangb_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - SEIBU_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(mustang_sound) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 8000, 1) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bioship ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ? */ - MDRV_CPU_PROGRAM_MAP(bioship_readmem,bioship_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(bioship_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(bioship) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(bioship) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( vandyke ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(vandyke_readmem,vandyke_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( acrobatm ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? 12 MHz? */ - MDRV_CPU_PROGRAM_MAP(acrobatm_readmem,acrobatm_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - - -/* bootleg using Raiden sound hardware */ -static MACHINE_DRIVER_START( tdragonb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(tdragon_readmem,tdragonb_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ?? drives music */ - - SEIBU_SOUND_SYSTEM_CPU(14318180/4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(mustang_sound) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4, 8000, 1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tdragon ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(tdragon_readmem,tdragon_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ?? drives music */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(tdragon) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ssmissin ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(ssmissin_readmem,ssmissin_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112)) /* input related */ - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(ssmissin_sound_readmem,ssmissin_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(nmk16) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 8000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( strahl ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ? */ - MDRV_CPU_PROGRAM_MAP(strahl_readmem,strahl_writemem) - MDRV_CPU_VBLANK_INT(nmk_interrupt,2) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(strahl_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(strahl) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(strahl) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hachamf ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(hachamf_readmem,hachamf_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(hachamf) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( macross ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(macross_readmem,macross_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gunnail ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz? */ - MDRV_CPU_PROGRAM_MAP(gunnail_readmem,gunnail_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112)) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(NMK004) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(gunnail) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(gunnail) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_nmk004_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - MDRV_SOUND_ROUTE(2, "mono", 0.50) - MDRV_SOUND_ROUTE(3, "mono", 2.00) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( macross2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(macross2_readmem,macross2_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(macross2_sound_readmem,macross2_sound_writemem) - MDRV_CPU_IO_MAP(macross2_sound_readport,macross2_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(nmk16) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross2) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tdragon2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz ? */ - MDRV_CPU_PROGRAM_MAP(macross2_readmem,macross2_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(macross2_sound_readmem,macross2_sound_writemem) - MDRV_CPU_IO_MAP(macross2_sound_readport,macross2_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(nmk16) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(tdragon2) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( raphero ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 14000000) /* 14 MHz measured */ - MDRV_CPU_PROGRAM_MAP(macross2_readmem,raphero_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ???????? */ - - MDRV_CPU_ADD_TAG("sound",TMP90841, 8000000) - MDRV_CPU_PROGRAM_MAP(raphero_sound_mem_map,0) - - MDRV_SCREEN_REFRESH_RATE(56) // measured - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(nmk16) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(macross2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(macross2) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(macross) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( bjtwin ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz? It's a P12, but xtals are 10MHz and 16MHz */ - MDRV_CPU_PROGRAM_MAP(bjtwin_readmem,bjtwin_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - MDRV_CPU_PERIODIC_INT(irq1_line_hold,TIME_IN_HZ(112))/* ?? drives music */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(nmk16) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(bjtwin_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(bjtwin) - MDRV_VIDEO_EOF(nmk) - MDRV_VIDEO_UPDATE(bjtwin) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(OKIM6295, 16000000/4) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7low) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) -MACHINE_DRIVER_END - -ROM_START( vandyke ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "vdk-1.16", 0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) ) - ROM_LOAD16_BYTE( "vdk-2.15", 0x00001, 0x20000, CRC(9d741cc2) SHA1(2d101044fba5fc5b7d63869a0a053c42fdc2598b) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ - ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ -ROM_END - -ROM_START( vandyjal ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "vdk-1.16", 0x00000, 0x20000, CRC(c1d01c59) SHA1(04a7fd31ca4d87d078070390660edf08bf1d96b5) ) - ROM_LOAD16_BYTE( "jaleco2.15", 0x00001, 0x20000, CRC(170e4d2e) SHA1(6009d19d30e345fea93e039d165061e2b20ff058) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ - ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ -ROM_END - -ROM_START( vandyja2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "vdk-even.16", 0x00000, 0x20000, CRC(cde05a84) SHA1(dab5981d7dad9abe86cfe011da8ca0b11d484a3f) ) /* Hand written labels, dated 2/12 */ - ROM_LOAD16_BYTE( "vdk-odd.15", 0x00001, 0x20000, CRC(0f6fea40) SHA1(3acbe72c251d51b028d8c66274263a2b39b042ea) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "vdk-4.127", 0x00000, 0x10000, CRC(eba544f0) SHA1(36f6d048d15a392542a9220a244d8a7049aaff8b) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-3.222", 0x000000, 0x010000, CRC(5a547c1b) SHA1(2d61f51ce2f91ebf0053ce3a00911d1bcbaba816) ) /* 8x8 tiles */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vdk-01.13", 0x000000, 0x080000, CRC(195a24be) SHA1(3a20dd746a87efc5c1fdc5025b709efeff82e05e) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "vdk-07.202", 0x000000, 0x080000, CRC(42d41f06) SHA1(69fd1d38187b8081f65acea2424bc1a0d455d90c) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-06.203", 0x000001, 0x080000, CRC(d54722a8) SHA1(47f8e97b29ae0ff1a1d7d50734e4219a87a2ed57) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-04.2-1", 0x100000, 0x080000, CRC(0a730547) SHA1(afac0549eb86d1fab5ca8ae2a0dad14144f55c02) ) /* Sprites */ - ROM_LOAD16_BYTE( "vdk-05.3-1", 0x100001, 0x080000, CRC(ba456d27) SHA1(5485a560ae2c2c8b6fdec314393c02a3de758ef3) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-02.126", 0x000000, 0x020000, CRC(b2103274) SHA1(6bbdc912393607cd5306be946327c5ea0178c7a6) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "vdk-03.165", 0x000000, 0x020000, CRC(631776d3) SHA1(ffd76e5b03130252c55eaa6ae7edfee5632dae73) ) - ROM_CONTINUE( 0x040000, 0x060000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "ic100.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* V-sync hw (unused) */ - ROM_LOAD( "ic101.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* H-sync hw (unused) */ -ROM_END - -ROM_START( tharrier ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "2" , 0x00000, 0x20000, CRC(78923aaa) SHA1(28338f49581180604403e1bd200f524fc4cb8b9f) ) - ROM_LOAD16_BYTE( "3" , 0x00001, 0x20000, CRC(99cea259) SHA1(75abfb08b2358dd13809ade5a2dfffeb8b8df82c) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "12" , 0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1" , 0x000000, 0x10000, CRC(c7402e4a) SHA1(25cade2f8d4784887f0f51beb48b1e6b695629c2) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "89050-4" , 0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "89050-13", 0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) ) /* Sprites */ - ROM_LOAD16_BYTE( "89050-17", 0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) ) - - ROM_REGION(0xa0000, REGION_SOUND1, 0 ) /* Oki sample data */ - ROM_LOAD( "89050-8", 0x00000, 0x20000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION(0xa0000, REGION_SOUND2, 0 ) /* Oki sample data */ - ROM_LOAD( "89050-10", 0x00000, 0x20000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x140, REGION_PROMS, 0 ) - ROM_LOAD( "21.bpr", 0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) ) - ROM_LOAD( "22.bpr", 0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) - ROM_LOAD( "23.bpr", 0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) ) - ROM_LOAD( "24.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) - ROM_LOAD( "25.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */ - ROM_LOAD( "26.bpr", 0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) ) -ROM_END - -ROM_START( tharierj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "2.bin" , 0x00000, 0x20000, CRC(f3887a44) SHA1(4e5b660d33ba1d1e00263030efa67e2db376a234) ) - ROM_LOAD16_BYTE( "3.bin" , 0x00001, 0x20000, CRC(65c247f6) SHA1(9f35f2b6f54814b4c4d23e2d78db8043e678fef2) ) - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) - ROM_LOAD( "12" , 0x00000, 0x10000, CRC(b959f837) SHA1(073b14935e7d5b0cad19a3471fd26e9e3a363827) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1.bin" , 0x000000, 0x10000, CRC(005c26c3) SHA1(ee88d8f956b9b0a8ba5fb49c5c05f6ed6f01729c) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "89050-4" , 0x000000, 0x80000, CRC(64d7d687) SHA1(dcfeac71fd577439e31cc1186b720388fbdc6ca0) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "89050-13", 0x000000, 0x80000, CRC(24db3fa4) SHA1(e0d76c479dfcacf03c04ec4760caecf3fd1e2ff7) ) /* Sprites */ - ROM_LOAD16_BYTE( "89050-17", 0x000001, 0x80000, CRC(7f715421) SHA1(bde5e0e1e22519e51ca0fd806909e90cc5b1c5b8) ) - - ROM_REGION(0xa0000, REGION_SOUND1, 0 ) /* Oki sample data */ - ROM_LOAD( "89050-8", 0x00000, 0x20000, CRC(11ee4c39) SHA1(163295c385cff963a5bf87dc3e7bef6019e10ba8) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION(0xa0000, REGION_SOUND2, 0 ) /* Oki sample data */ - ROM_LOAD( "89050-10", 0x00000, 0x20000, CRC(893552ab) SHA1(b0a34291f4e482858ed295203ae031b17c2dbabc) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x140, REGION_PROMS, 0 ) - ROM_LOAD( "21.bpr", 0x00000, 0x100, CRC(fcd5efea) SHA1(cbda6b14127dabd1788cc256743cf62efaa5e8c4) ) - ROM_LOAD( "22.bpr", 0x00000, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) - ROM_LOAD( "23.bpr", 0x00000, 0x020, CRC(fc3569f4) SHA1(e1c498085e4ae9d0a995c94530544b0a5b760fbf) ) - ROM_LOAD( "24.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) - ROM_LOAD( "25.bpr", 0x00000, 0x100, CRC(e0a009fe) SHA1(a66a27bb405d4ff8e4c0062273ee9b11e76ee520) ) /* same as 24.bin */ - ROM_LOAD( "26.bpr", 0x00120, 0x020, CRC(0cbfb33e) SHA1(5dfee031a0a14bcd667fe2af2fa9cdfac3941d22) ) -ROM_END - -ROM_START( mustang ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(bd9f7c89) SHA1(a0af46a8ff82b90bece2515e1bd74e7a7ddf5379) ) - ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(0eec36a5) SHA1(c549fbcd3e2741a6d0f2633ded6a85909d37f633) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "90058-7", 0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) - ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90058-5", 0x00000, 0x20000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90058-6", 0x00000, 0x20000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x200, REGION_PROMS, 0 ) - ROM_LOAD( "10.bpr", 0x00000, 0x100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ - ROM_LOAD( "90058-11", 0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ -ROM_END - -ROM_START( mustangs ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "90058-2", 0x00000, 0x20000, CRC(833aa458) SHA1(a9924f7044397e3a36c674b064173ffae80a79ec) ) - ROM_LOAD16_BYTE( "90058-3", 0x00001, 0x20000, CRC(e4b80f06) SHA1(ce589cebb5ea85c89eb44796b821a4bd0c44b9a8) ) - - ROM_REGION(0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "90058-7", 0x00000, 0x10000, CRC(920a93c8) SHA1(7660ca419e2fd98848ae7f5994994eaed023151e) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) - ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90058-5", 0x00000, 0x20000, CRC(c60c883e) SHA1(8a01950cad820b2e781ec81cd12737829edc4f19) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90058-6", 0x00000, 0x20000, CRC(233c1776) SHA1(7010a2f914611698a65bf4f22bc1753a9ed26277) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x200, REGION_PROMS, 0 ) - ROM_LOAD( "90058-10", 0x00000, 0x100, CRC(de156d99) SHA1(07b70deca74e23bab7c13e5e9aee32d0dbb06509) ) /* unknown */ - ROM_LOAD( "90058-11", 0x00100, 0x100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ -ROM_END - -ROM_START( mustangb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "mustang.14", 0x00000, 0x20000, CRC(13c6363b) SHA1(e2c1985d1c8ec9751c47cd7e1b85e007f3aeb6fd) ) - ROM_LOAD16_BYTE( "mustang.13", 0x00001, 0x20000, CRC(d8ccce31) SHA1(e8e3e34a480fcd298f11833c6c968c5df77c0e2a) ) - - ROM_REGION(0x20000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "mustang.16", 0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) - ROM_CONTINUE( 0x010000, 0x08000 ) - ROM_COPY( REGION_CPU2, 0, 0x018000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-1", 0x00000, 0x20000, CRC(81ccfcad) SHA1(70a0f769c0d4588f6f17bd52cc86a745f30e9f00) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "90058-4", 0x000000, 0x80000, CRC(a07a2002) SHA1(55720d84a251c33c52ae8c33aa41ff8ac9727941) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "90058-8", 0x00000, 0x80000, CRC(560bff04) SHA1(b005642adc81d878971ecbdead8ef5e604c90ae2) ) - ROM_LOAD16_BYTE( "90058-9", 0x00001, 0x80000, CRC(b9d72a03) SHA1(43ee9def1b6c491c6832562d66c1af54d81d9b3c) ) - - ROM_REGION( 0x010000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "mustang.17", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) -ROM_END - -ROM_START( acrobatm ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "02_ic100.bin", 0x00000, 0x20000, CRC(3fe487f4) SHA1(29aba5debcfddff14e584a1c7c5a403e85fc6ec0) ) - ROM_LOAD16_BYTE( "01_ic101.bin", 0x00001, 0x20000, CRC(17175753) SHA1(738865744badb78a0414ff650a94b97e516d0ea0) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "03_ic79.bin", 0x000000, 0x10000, CRC(d86c186e) SHA1(2e263d4780f2ba7acc7faa88472c85216fbae6a3) ) /* Characters */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "09_ic8.bin", 0x000000, 0x100000, CRC(7c12afed) SHA1(ae793e41599355a126cbcce91cd2c9f212d21853) ) /* Foreground */ - - ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "07_ic42.bin", 0x000000, 0x100000, CRC(5672bdaa) SHA1(5401a104d72904de19b73125451767bc63d36809) ) /* Sprites */ - ROM_LOAD( "08_ic29.bin", 0x100000, 0x080000, CRC(b4c0ace3) SHA1(5d638781d588cfbf4025d002d5a2309049fe1ee5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "04_ic74.bin", 0x00000, 0x10000, CRC(176905fb) SHA1(135a184f44bedd93b293b9124fa0bd725e0ee93b) ) - - ROM_REGION( 0xa0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "05_ic54.bin", 0x00000, 0x20000, CRC(3b8c2b0e) SHA1(72491da32512823540b67dc5027f21c74af08c7d) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0xa0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "06_ic53.bin", 0x00000, 0x20000, CRC(c1517cd4) SHA1(5a91ddc608c7a6fbdd9f93e503d39eac02ef04a4) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "10_ic81.bin", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ - ROM_LOAD( "11_ic80.bin", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ -ROM_END - -ROM_START( bioship ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "2", 0x00000, 0x20000, CRC(acf56afb) SHA1(0e8ec494ab406cfee24cf586059878332265de75) ) - ROM_LOAD16_BYTE( "1", 0x00001, 0x20000, CRC(820ef303) SHA1(d2ef29557b05abf8ae79a2c7ce0d15a91b36eeff) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "7", 0x000000, 0x10000, CRC(2f3f5a10) SHA1(c1006eb755eec75f69dc7972d78d0c59088eb140) ) /* Characters */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sbs-g.01", 0x000000, 0x80000, CRC(21302e78) SHA1(a17939c0529c8e9ec2a4edd5e6be4bcb67f86787) ) /* Foreground */ - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "sbs-g.03", 0x000000, 0x80000, CRC(60e00d7b) SHA1(36fd02a7842ce1e79b8c4cfbe9c97052bef4aa62) ) /* Sprites */ - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "sbs-g.02", 0x000000, 0x80000, CRC(f31eb668) SHA1(67d6d56ea203edfbae4db658399bf61f14134206) ) /* Background */ - - ROM_REGION16_BE(0x20000, REGION_GFX5, 0 ) /* Background tilemaps (used at runtime) */ - ROM_LOAD16_BYTE( "8", 0x00000, 0x10000, CRC(75a46fea) SHA1(3d78cfc482b42779bb5aedb722c4a39cbc71bd10) ) - ROM_LOAD16_BYTE( "9", 0x00001, 0x10000, CRC(d91448ee) SHA1(7f84ca3605edcab4bf226dab8dd7218cd5c3e5a4) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "6", 0x00000, 0x10000, CRC(5f39a980) SHA1(2a440f86685249f9c317634cad8cdedc8a8f1491) ) - - ROM_REGION(0xa0000, REGION_SOUND1, 0 ) /* Oki sample data */ - ROM_LOAD( "sbs-g.04", 0x00000, 0x20000, CRC(7c74cc4e) SHA1(92097b372eacabdb9e8e261b0bc4223821ff9273) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION(0xa0000, REGION_SOUND2, 0 ) /* Oki sample data */ - ROM_LOAD( "sbs-g.05", 0x00000, 0x20000, CRC(f0a782e3) SHA1(d572226b8e597f1c34d246cb284e047a6e2d9290) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ -ROM_END - -ROM_START( blkheart ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "blkhrt.7", 0x00000, 0x20000, CRC(5bd248c0) SHA1(0649f4f8682404aeb3fc80643fcabc2d7836bb23) ) - ROM_LOAD16_BYTE( "blkhrt.6", 0x00001, 0x20000, CRC(6449e50d) SHA1(d8cd126d921c95478346da96c20da01212395d77) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Code for (unknown?) CPU */ - ROM_LOAD( "4.bin", 0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "3.bin", 0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90068-2.bin", 0x00000, 0x20000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90068-1.bin", 0x00000, 0x20000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* unknown */ - ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ -ROM_END - -ROM_START( blkhearj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "7.bin", 0x00000, 0x20000, CRC(e0a5c667) SHA1(3ef39b2dc1f7ffdddf586f0b3080ecd1f362ec37) ) - ROM_LOAD16_BYTE( "6.bin", 0x00001, 0x20000, CRC(7cce45e8) SHA1(72491e30d1f9be2eede21fdde5a7484d4f65cfbf) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Code for (unknown?) CPU */ - ROM_LOAD( "4.bin", 0x00000, 0x10000, CRC(7cefa295) SHA1(408f46613b3620cee31dec43281688d231b47ddd) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "3.bin", 0x000000, 0x020000, CRC(a1ab3a16) SHA1(3fb57c9d2ef94ee188cbadd70378ae6f4407e71d) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "90068-5.bin", 0x000000, 0x100000, CRC(a1ab4f24) SHA1(b9f8104d53eda87ccd4000d049ee74ac9aa20b3e) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "90068-8.bin", 0x000000, 0x100000, CRC(9d3204b2) SHA1(b37a246ad37f9ce092b371f01122ddf2bc8b2db6) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90068-2.bin", 0x00000, 0x20000, CRC(3a583184) SHA1(9226f1ea7725e4b48bb055d1c17389cf960d75f8) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "90068-1.bin", 0x00000, 0x20000, CRC(e7af69d2) SHA1(da050880e186954bcf0e0adf00750dd5a371551b) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(98ed1c97) SHA1(f125ad05c3cbd1b1ab356161f9b1d814781d4c3b) ) /* unknown */ - ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ -ROM_END - -ROM_START( tdragon ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code -bitswapped- */ - ROM_LOAD16_BYTE( "thund.8", 0x00000, 0x20000, CRC(edd02831) SHA1(d6bc8d2c37707768a8bf666090f33eea12dda336) ) - ROM_LOAD16_BYTE( "thund.7", 0x00001, 0x20000, CRC(52192fe5) SHA1(9afef197410e7feb71dc48003e181fbbaf5c99b2) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "thund.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "thund.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "thund.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */ - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) /* Code for (unknown?) CPU */ - ROM_LOAD( "thund.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) ) - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "thund.3", 0x00000, 0x20000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "thund.2", 0x00000, 0x20000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "9.bin", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ - ROM_LOAD( "10.bin", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ -ROM_END - -ROM_START( tdragonb ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code -bitswapped- */ - ROM_LOAD16_BYTE( "td_04.bin", 0x00000, 0x20000, CRC(e8a62d3e) SHA1(dd221bcd80149fffb1bdddfd3d394996bd2f8ec5) ) - ROM_LOAD16_BYTE( "td_03.bin", 0x00001, 0x20000, CRC(2fa1aa04) SHA1(ddf2b2ff179c31a1677d15d0403b00d77f9f0a6c) ) - - ROM_REGION(0x20000, REGION_CPU2, 0 ) /* 64k for sound cpu code */ - ROM_LOAD( "td_02.bin", 0x00000, 0x8000, CRC(99ee7505) SHA1(b97c8ee5e26e8554b5de506fba3b32cc2fde53c9) ) - ROM_CONTINUE( 0x010000, 0x08000 ) - ROM_COPY( REGION_CPU2, 0, 0x018000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "td_08.bin", 0x000000, 0x20000, CRC(5144dc69) SHA1(e64d88dc0e7672f811868621f74ec209aeafbc6f) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "td_06.bin", 0x000000, 0x80000, CRC(c1be8a4d) SHA1(6269fd7fccf1546a01bab755d8b6b7dcffc1166e) ) /* 16x16 tiles */ - ROM_LOAD( "td_07.bin", 0x080000, 0x80000, CRC(2c3e371f) SHA1(77956425661f4f81c370fff63845d42057fcaec3) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "td_10.bin", 0x000000, 0x080000, CRC(bfd0ec5d) SHA1(7983661f74e8695f56e45c6e5c278d7d86431052) ) /* Sprites */ - ROM_LOAD16_BYTE( "td_09.bin", 0x000001, 0x080000, CRC(b6e074eb) SHA1(bdde068f03415391b5edaa42f1389df0f7eef899) ) /* Sprites */ - - ROM_REGION( 0x010000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "td_01.bin", 0x00000, 0x10000, CRC(f6f6c4bf) SHA1(ea4cf74d968e254ae47c16c2f4c2f4bc1a528808) ) -ROM_END - -ROM_START( ssmissin ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "ssm14.165", 0x00001, 0x20000, CRC(eda61b74) SHA1(6247682c27d2be7dff1fad407ccf86fe2a25f11c) ) - ROM_LOAD16_BYTE( "ssm15.166", 0x00000, 0x20000, CRC(aff15927) SHA1(258c2722ac7ca50360bfefa7b4e621373975a835) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ssm16.172", 0x000000, 0x20000, CRC(5cf6eb1f) SHA1(d406b11cf06ae1afc57a50685689e358e5677a45) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ssm17.147", 0x000000, 0x080000, CRC(c9c28455) SHA1(6a3e754aff3f368bde0e8905c33074084ad6ac30) ) /* 16x16 tiles */ - ROM_LOAD( "ssm18.148", 0x080000, 0x080000, CRC(ebfdaad6) SHA1(0814cdfe83f36a7dd7b5416f9d0478192733dac0) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "ssm20.34", 0x000001, 0x080000, CRC(a0c16c4d) SHA1(e198f69b4d8660e33851a2631b5411611b1b2ea6) ) /* 16x16 tiles */ - ROM_LOAD16_BYTE( "ssm19.33", 0x000000, 0x080000, CRC(b1943657) SHA1(97c05483b634315af338434bd2f565cc151a7283) ) /* 16x16 tiles */ - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) /* Code for Sound CPU */ - ROM_LOAD( "ssm11.188", 0x00000, 0x08000, CRC(8be6dce3) SHA1(d9a235c36e0bc44025c291247d6b0b753e4bc0c8) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* OKIM6295 samples? */ - ROM_LOAD( "ssm13.190", 0x00000, 0x20000, CRC(618f66f0) SHA1(97637a03d9fd82305e872e9bfa489862c974bb6c) ) - ROM_LOAD( "ssm12.189", 0x80000, 0x80000, CRC(e8219c83) SHA1(68673d071a58ca2bfd2de344a830417d10bc5757) ) /* banked */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "ssm-pr2.113", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ - ROM_LOAD( "ssm-pr1.114", 0x0100, 0x0200, CRC(ed0bd072) SHA1(66a6d435d8587c82ae96dd09c39ed5749fe00e24) ) /* unknown */ -ROM_END - -ROM_START( airattck ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "ue10.bin", 0x000000, 0x20000, CRC(71deb9d8) SHA1(21da5a68a13c9017d787e88f7b293f263fbc6b20) ) - ROM_LOAD16_BYTE( "uc10.bin", 0x000001, 0x20000, CRC(1837d4ba) SHA1(8dd5636a3a75c5d25d8850381e566a150ddc8ef1) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ul10.bin", 0x000000, 0x20000, CRC(e9362ab4) SHA1(d3e7d90e459bd4a80a189cc77821a6668103a640) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "uw9.bin", 0x000000, 0x80000, CRC(86e59966) SHA1(50944dddb4c9f28e6f9b7c610a205310f4d7a076) ) - ROM_LOAD( "ux9.bin", 0x080000, 0x80000, CRC(122c8d04) SHA1(70a348b1a94f1bc69532ba92dafc91a2c0e41d58) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "uob1.bin", 0x000000, 0x80000, CRC(3c38d671) SHA1(f9c9aaa1622ee0c20f569f6048e2b78bd507a1e5) ) /* 16x16 tiles */ - ROM_LOAD16_BYTE( "uob2.bin", 0x000001, 0x80000, CRC(9a83e3d8) SHA1(c765c4d278cc7f54ccdf6f00f8c6902a56abc2b8) ) /* 16x16 tiles */ - - ROM_REGION( 0x010000, REGION_CPU2, 0 ) /* Code for Sound CPU */ - ROM_LOAD( "su6.bin", 0x000000, 0x08000, CRC(3e352370) SHA1(6e84881dc0b09a23f8b589431005459adc334c34) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "su12.bin", 0x000000, 0x20000, CRC(93ab615b) SHA1(f670ac60f5f88148e55200e5e3591aa18b81c325) ) - ROM_LOAD( "su13.bin", 0x080000, 0x80000, CRC(09a836bb) SHA1(43fbd35c2ef3d201a4c82b0d3b7d7b971b385a14) ) -ROM_END - -ROM_START( strahl ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "strahl-2.82", 0x00000, 0x20000, CRC(c9d008ae) SHA1(e9218a3143d5887e702df051354a9083a806c69c) ) - ROM_LOAD16_BYTE( "strahl-1.83", 0x00001, 0x20000, CRC(afc3c4d6) SHA1(ab3dd7db692eb01e3a87f4216d322a702f3beaad) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "strahl-3.73", 0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */ - - ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "strl3-01.32", 0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */ - ROM_LOAD( "strl4-02.57", 0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) ) - ROM_LOAD( "strl5-03.58", 0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "strahl-4.66", 0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) ) - - ROM_REGION( 0xa0000, REGION_SOUND1, 0 ) /* Oki sample data */ - ROM_LOAD( "str8pmw1.540", 0x00000, 0x20000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0xa0000, REGION_SOUND2, 0 ) /* Oki sample data */ - ROM_LOAD( "str9pew1.639", 0x00000, 0x20000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ -ROM_END - -ROM_START( strahla ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "rom2", 0x00000, 0x20000, CRC(f80a22ef) SHA1(22099eb0bbb445702e0276713c3e48d60de60c30) ) - ROM_LOAD16_BYTE( "rom1", 0x00001, 0x20000, CRC(802ecbfc) SHA1(cc776023c7bd6b6d6af9659a0c822a2887e50199) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "strahl-3.73", 0x000000, 0x10000, CRC(2273b33e) SHA1(fa53e91b80dfea3f8b2c1f0ce66e5c6920c4960f) ) /* Characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "str7b2r0.275", 0x000000, 0x40000, CRC(5769e3e1) SHA1(7d7a16b11027d0a7618df1ec1e3484224b772e90) ) /* Tiles */ - - ROM_REGION( 0x180000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "strl3-01.32", 0x000000, 0x80000, CRC(d8337f15) SHA1(4df23fff2506b66a94dae4e0cf7d25499936b942) ) /* Sprites */ - ROM_LOAD( "strl4-02.57", 0x080000, 0x80000, CRC(2a38552b) SHA1(82335fc6aa3de9145dd84952e5ed423493bf7141) ) - ROM_LOAD( "strl5-03.58", 0x100000, 0x80000, CRC(a0e7d210) SHA1(96a762a3a1cdeaa91bde50429e0ac665fb81190b) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "str6b1w1.776", 0x000000, 0x80000, CRC(bb1bb155) SHA1(83a02e89180e15f0e7817e0e92b4bf4e209bb69a) ) /* Tiles */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "strahl-4.66", 0x00000, 0x10000, CRC(60a799c4) SHA1(8ade3cf827a389f7cb4080957dc4d67077ea4166) ) - - ROM_REGION( 0xa0000, REGION_SOUND1, 0 ) /* Oki sample data */ - ROM_LOAD( "str8pmw1.540", 0x00000, 0x20000, CRC(01d6bb6a) SHA1(b157f6f921483ed8067a7e13e370f73fdb60d136) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0xa0000, REGION_SOUND2, 0 ) /* Oki sample data */ - ROM_LOAD( "str9pew1.639", 0x00000, 0x20000, CRC(6bb3eb9f) SHA1(9c1394df4f8a08f9098c85eb3d38fb862d6eabbb) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ -ROM_END - -ROM_START( hachamf ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "hmf_07.rom", 0x00000, 0x20000, CRC(9d847c31) SHA1(1d370d8db9cadadb9c2cb213e32f681947d81b7f) ) - ROM_LOAD16_BYTE( "hmf_06.rom", 0x00001, 0x20000, CRC(de6408a0) SHA1(2df77fecd44d2d8b0444abd4545923213ed76b2d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* unknown - sound cpu ?????? */ - ROM_LOAD( "hmf_01.rom", 0x00000, 0x10000, CRC(9e6f48fc) SHA1(aeb5bfecc025b5478f6de874792fc0f7f54932be) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "hmf_05.rom", 0x000000, 0x020000, CRC(29fb04a2) SHA1(9654b90a66d0e2a0f9cd369cab29cdd0c6f77869) ) /* 8x8 tiles */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "hmf_04.rom", 0x000000, 0x080000, CRC(05a624e3) SHA1(e1b686b36c0adedfddf70eeb6411671bbcd897d8) ) /* 16x16 tiles */ - //ROM_COPY( REGION_GFX2, 0x0c8000, 0x000000, 0x038000) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "hmf_08.rom", 0x000000, 0x100000, CRC(7fd0f556) SHA1(d1b4bec0946869d3d7bcb870d9ae3bd17395a231) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "hmf_02.rom", 0x00000, 0x20000, CRC(3f1e67f2) SHA1(413e78587d8a043a0eb94447313ba1b3c5b35be5) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "hmf_03.rom", 0x00000, 0x20000, CRC(b25ed93b) SHA1(d7bc686bbccf982f40420a11158aa8e5dd4207c5) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ -ROM_END - -ROM_START( macross ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "921a03", 0x00000, 0x80000, CRC(33318d55) SHA1(c99f85e09bd334dc8ce138b08cbed2331b0d67dd) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound program (unknown CPU) */ - ROM_LOAD( "921a02", 0x00000, 0x10000, CRC(77c082c7) SHA1(be07aa14d0116f830f98e11a19f1debb48a5230e) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "921a01", 0x000000, 0x020000, CRC(bbd8242d) SHA1(7cf4897be1278e1190f499f00bc78384817a5160) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "921a04", 0x000000, 0x200000, CRC(4002e4bb) SHA1(281433d798ac85c84d4f1f3751a3032e8a3b5cd4) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "921a07", 0x000000, 0x200000, CRC(7d2bf112) SHA1(1997c99c2d3998096842abd1cee89e0e6ab43a47) ) /* Sprites */ - - ROM_REGION( 0xa0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "921a05", 0x00000, 0x20000, CRC(d5a1eddd) SHA1(42b5b255f02b9c6d856b1578af9a5dfc51ea6ebb) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0xa0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "921a06", 0x00000, 0x20000, CRC(89461d0f) SHA1(b7d27d0ee0b7ab44c20ab710b567f64fc3afb90c) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "921a08", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ - ROM_LOAD( "921a09", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ - ROM_LOAD( "921a10", 0x0200, 0x0020, CRC(8371e42d) SHA1(6cfd70dfa00e85ec1df8832d41df331cc3e3733a) ) /* unknown */ -ROM_END - -ROM_START( gunnail ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "3e.bin", 0x00000, 0x40000, CRC(61d985b2) SHA1(96daca603f18accb47f98a3e584b2c84fc5a2ca4) ) - ROM_LOAD16_BYTE( "3o.bin", 0x00001, 0x40000, CRC(f114e89c) SHA1(a12f5278167f446bb5277e87289c41b5aa365c86) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Code for (unknown?) CPU */ - ROM_LOAD( "92077_2.bin", 0x00000, 0x10000, CRC(cd4e55f8) SHA1(92182767ca0ec37ec4949bd1a88c2efdcdcb60ed) ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(3d00a9f4) SHA1(91a82e3e74c8774d7f8b2adceb228b97010facfd) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "92077-4.bin", 0x000000, 0x100000, CRC(a9ea2804) SHA1(14dbdb3c7986db5e44dc7c5be6fcf39f3d1e50b0) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "92077-7.bin", 0x000000, 0x200000, CRC(d49169b3) SHA1(565ff7725dd6ace79b55706114132d8d867e81a9) ) /* Sprites */ - - ROM_REGION( 0x0a0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "92077-5.bin", 0x00000, 0x20000, CRC(feb83c73) SHA1(b44e9d20b4af02e218c4bc875d66a7d6b8551cae) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0a0000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "92077-6.bin", 0x00000, 0x20000, CRC(6d133f0d) SHA1(8a5e6e27a297196f20e4de0d060f1188115809bb) ) - ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */ - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */ - ROM_LOAD( "9.bpr", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ - ROM_LOAD( "10.bpr", 0x0200, 0x0020, CRC(c60103c8) SHA1(dfb05b704bb5e1f75f5aaa4fa36e8ddcc905f8b6) ) /* unknown */ -ROM_END - -ROM_START( macross2 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "mcrs2j.3", 0x00000, 0x80000, CRC(36a618fe) SHA1(56fdb2bcb4a39888cfbaf9692d66335524a6ac0c) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "mcrs2j.2", 0x00000, 0x20000, CRC(b4aa8ac7) SHA1(73a6de56cbfb468450d9b39fcbae0362f242f37b) ) - ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mcrs2j.1", 0x000000, 0x020000, CRC(c7417410) SHA1(41431d8f1ff4d66baf1a8518a0b0c0125d1d71d4) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "bp932an.a04", 0x000000, 0x200000, CRC(c4d77ff0) SHA1(aca60a3f5f89265e7e3799e5d80ea8196fb11ff3) ) /* 16x16 tiles */ - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "bp932an.a07", 0x000000, 0x200000, CRC(aa1b21b9) SHA1(133822e3d8628aa4eb3e62fbd054956799423b98) ) /* Sprites */ - ROM_LOAD16_WORD_SWAP( "bp932an.a08", 0x200000, 0x200000, CRC(67eb2901) SHA1(25e0f9fda1a8c0c2b59616dd153cb6dcb459d2d9) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "bp932an.a06", 0x040000, 0x200000, CRC(ef0ffec0) SHA1(fd72cc77e02d1a00bf27e77a33d7dab5f6ba1cb4) ) /* all banked */ - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "bp932an.a05", 0x040000, 0x100000, CRC(b5335abb) SHA1(f4eaf4e465eeca31741d432ee46ed39ffcd92cca) ) /* all banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mcrs2bpr.9", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ - ROM_LOAD( "mcrs2bpr.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ -ROM_END - -ROM_START( tdragon2 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "6.bin", 0x00000, 0x80000, CRC(310d6bca) SHA1(f46ad1d13cf5014aef1f0e8862b369ab31c22866) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) - ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ - ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ - - ROM_REGION( 0x240000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ - ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ -ROM_END - -ROM_START( bigbang ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "eprom.3", 0x00000, 0x80000, CRC(28e5957a) SHA1(fe4f870a9c2235cc02b4e036a2a4116f071d59ad) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) ) - ROM_RELOAD( 0x10000, 0x20000 ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */ - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */ - ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) ) - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */ - - ROM_REGION( 0x240000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ - ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ -ROM_END - -/* - -Rapid Hero -NMK, 1994 - -The main board has no ROMs at all except 3 PROMs. There is a plug-in daughter -board that holds all the ROMs. It has the capacity for 3 socketed EPROMS and 7x -16M MASK ROMs total. - - -PCB Layout (Main board) ------------------------ - -AWA94099 ------------------------------------------------------------------------ -| YM2203 TMP90C841 6264 DSW2(8) 62256 62256 6116 62256 62256 6116 | -| 6295 NMK112 12MHz DSW1(8) | -| YM3014B 6295 16MHz NMK005 62256 62256 6116 62256 62256 6116 | -|J ----------------- | -|A | | | -|M ----------------- | -|M PROM3 NMK009 NMK009 | -|A NMK111 6116 6116 NMK008 | -| |-| 6116 6116 | -|6116 | | NMK902 ----------------- | -|6116 | | | | | -|PROM1 | | ----------------- | -| | | | -|NMK111 | | NMK903 | -| | | NMK903 PROM2 | -|NMK111 | | | -| |-| 6116 TMP68HC000P-16 | -| 62256 NMK901 6116 14MHz | -| 62256 | ------------------------------------------------------------------------ - -Notes: - 68k clock: 14.00MHz - VSync: 56Hz - HSync: 15.35kHz - 90c841 clock: 8.000MHz - - -PCB Layout (Daughter board) ---------------------------- - -AWA94099-ROME --------------------------- -| 2 6 7 5 3 | -| | -| 1 | -| | -| | -| | -| 4 8 9 10 | -| | -| | -| | --------------------------- - -*/ - -ROM_START( raphero ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_WORD_SWAP( "rhp94099.3", 0x00000, 0x80000, CRC(ec9b4f05) SHA1(e5bd797620dc449fd78b41d87e9ba5a764eb8b44) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* tmp90c841 */ - ROM_LOAD( "rhp94099.2", 0x00000, 0x20000, CRC(fe01ece1) SHA1(c469fb79f2774089848c814f92ddd3c9e384050f) ) - ROM_RELOAD( 0x10000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rhp94099.1", 0x000000, 0x020000, CRC(55a7a011) SHA1(87ded56bfdd38cbf8d3bd8b3789831f768550a12) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rhp94099.4", 0x000000, 0x200000, CRC(076eee7b) SHA1(7c315fe33d0fcd92e0ce2f274996c8059228b005) ) /* 16x16 tiles */ - - ROM_REGION( 0x600000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD16_WORD_SWAP( "rhp94099.8", 0x000000, 0x200000, CRC(49892f07) SHA1(2f5d20cd193cffcba9041aa11d6665adebeffffa) ) /* 16x16 tiles */ - ROM_LOAD16_WORD_SWAP( "rhp94099.9", 0x200000, 0x200000, CRC(ea2e47f0) SHA1(97dfa8f95f27b36deb5ce1c80e3d727bad24e52b) ) /* 16x16 tiles */ - ROM_LOAD16_WORD_SWAP( "rhp94099.10",0x400000, 0x200000, CRC(512cb839) SHA1(4a2c5ac88e4bf8a6f07c703277c4d33e649fd192) ) /* 16x16 tiles */ - - ROM_REGION( 0x240000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - // 1ST AND 2ND HALF IDENTICAL - ROM_LOAD( "rhp94099.7", 0x040000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ - - ROM_REGION( 0x840000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "rhp94099.5", 0x040000, 0x200000, CRC(515eba93) SHA1(c35cb5f31f4bc7327be5777624af168f9fb364a5) ) /* all banked */ - ROM_LOAD( "rhp94099.6", 0x240000, 0x200000, CRC(f1a80e5a) SHA1(218bd7b0c3d8b283bf96b95bf888228810699370) ) /* all banked */ - ROM_LOAD( "rhp94099.7", 0x440000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ - ROM_LOAD( "rhp94099.7", 0x640000, 0x200000, CRC(0d99547e) SHA1(2d9630bd55d27010f9d1d2dbdbd07ac265e8ebe6) ) /* all banked */ - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "prom1.u19", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */ - ROM_LOAD( "prom2.u53", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */ - ROM_LOAD( "prom3.u60", 0x0200, 0x0100, CRC(304f98c6) SHA1(8dfd9bf719087ec30c83efe95c4561666c7d1801) ) /* unknown */ -ROM_END - -ROM_START( sabotenb ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "ic76.sb1", 0x00000, 0x40000, CRC(b2b0b2cf) SHA1(219f1cefdb107d8404f4f8bfa0700fd3218d9320) ) - ROM_LOAD16_BYTE( "ic75.sb2", 0x00001, 0x40000, CRC(367e87b7) SHA1(c950041529b5117686e4bb1ae77db82fe758c1d0) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic35.sb3", 0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic32.sb4", 0x000000, 0x200000, CRC(24c62205) SHA1(3ab0ca5d7c698328d91421ccf6f7dafc20df3c8d) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "ic100.sb5", 0x000000, 0x200000, CRC(b20f166e) SHA1(074d770fd6d233040a80a92f4467d81f961c650b) ) /* Sprites */ - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic30.sb6", 0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) ) /* all banked */ - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic27.sb7", 0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) ) /* all banked */ -ROM_END - -ROM_START( sabotnba ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "sb1.76", 0x00000, 0x40000, CRC(df6f65e2) SHA1(6ad9e9f13539310646895c5e7992c6546e75684b) ) - ROM_LOAD16_BYTE( "sb2.75", 0x00001, 0x40000, CRC(0d2c1ab8) SHA1(abb43a8c5398195c0ad48d8d772ef47635bf25c2) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic35.sb3", 0x000000, 0x010000, CRC(eb7bc99d) SHA1(b3063afd58025a441d4750c22483e9129da402e7) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic32.sb4", 0x000000, 0x200000, CRC(24c62205) SHA1(3ab0ca5d7c698328d91421ccf6f7dafc20df3c8d) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "ic100.sb5", 0x000000, 0x200000, CRC(b20f166e) SHA1(074d770fd6d233040a80a92f4467d81f961c650b) ) /* Sprites */ - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic30.sb6", 0x040000, 0x100000, CRC(288407af) SHA1(78c08fae031337222681c593dc86a08df6a34a4b) ) /* all banked */ - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic27.sb7", 0x040000, 0x100000, CRC(43e33a7e) SHA1(51068b63f4415712eaa25dcf1ee6b0cc2850974e) ) /* all banked */ -ROM_END - -ROM_START( bjtwin ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "93087-1.bin", 0x00000, 0x20000, CRC(93c84e2d) SHA1(ad0755cabfef78e7e689856379d6f8c88a9b27c1) ) - ROM_LOAD16_BYTE( "93087-2.bin", 0x00001, 0x20000, CRC(30ff678a) SHA1(aa3ce4905e448e371e254545ef9ed7edb00b1cc3) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "93087-3.bin", 0x000000, 0x010000, CRC(aa13df7c) SHA1(162d4f12364c68028e86fe97ee75c262daa4c699) ) /* 8x8 tiles */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "93087-4.bin", 0x000000, 0x100000, CRC(8a4f26d0) SHA1(be057a2b6d28c623ac1f16cf02ddbe12ca430b4a) ) /* 16x16 tiles */ - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "93087-5.bin", 0x000000, 0x100000, CRC(bb06245d) SHA1(c91e2284d95370b8ef2eb1b9d6305fdd6cde23a0) ) /* Sprites */ - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "93087-6.bin", 0x040000, 0x100000, CRC(372d46dd) SHA1(18f44e777241af50787730652fa018c51b65ea15) ) /* all banked */ - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "93087-7.bin", 0x040000, 0x100000, CRC(8da67808) SHA1(f042574c097f5a8c2684fcc23f2c817c168254ef) ) /* all banked */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */ - ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */ -ROM_END - - -ROM_START( nouryoku ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "ic76.1", 0x00000, 0x40000, CRC(26075988) SHA1(c3d0eef0417be3f78008c026915fd7e2fd589563) ) - ROM_LOAD16_BYTE( "ic75.2", 0x00001, 0x40000, CRC(75ab82cd) SHA1(fb828f87eebbe9d61766535efc18de9dfded110c) ) - - ROM_REGION( 0x010000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic35.3", 0x000000, 0x010000, CRC(03d0c3b1) SHA1(4d5427c324e2141d0a953cc5133d10b327827e0b) ) /* 8x8 tiles */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic32.4", 0x000000, 0x200000, CRC(88d454fd) SHA1(c79c48d9b3602266499a5dd0b15fd2fb032809be) ) /* 16x16 tiles */ - - ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD16_WORD_SWAP( "ic100.5", 0x000000, 0x200000, CRC(24d3e24e) SHA1(71e38637953ec98bf308824aaef5628803aead21) ) /* Sprites */ - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic30.6", 0x040000, 0x100000, CRC(feea34f4) SHA1(bee467e74dbad497c6f5f6b38b7e52001e767012) ) /* all banked */ - - ROM_REGION( 0x140000, REGION_SOUND2, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic27.7", 0x040000, 0x100000, CRC(8a69fded) SHA1(ee73f1789bcc672232606a4b3b28087fea1c5c69) ) /* all banked */ -ROM_END - -ROM_START( manybloc ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "1-u33.bin", 0x00001, 0x20000, CRC(07473154) SHA1(e67f637e74dfe5f1be558f963c0b3225254afe33) ) - ROM_LOAD16_BYTE( "2-u35.bin", 0x00000, 0x20000, CRC(04acd8c1) SHA1(3ef329e8d25565c7f7166f12137f4df5a057022f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80? CPU */ - ROM_LOAD( "3-u146.bin", 0x00000, 0x10000, CRC(7bf5fafa) SHA1(d17feca628775860d6c7019a9725bd40fbc5b7d7) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "12-u39.bin", 0x000000, 0x10000, CRC(413b5438) SHA1(af366ce998ebe0d25255cc0cb1cd81689d3696ec) ) /* 8x8 tiles */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5-u97.bin", 0x000000, 0x40000, CRC(536699e6) SHA1(13ec233f5e4f2a65ac7bc55511e988508269acd5) ) - ROM_LOAD( "4-u96.bin", 0x040000, 0x40000, CRC(28af2640) SHA1(08fa57de66cf58fe2256455538261c2d05d27e1e) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprite tiles */ - ROM_LOAD16_BYTE( "8-u54b.bin", 0x000000, 0x20000, CRC(03eede77) SHA1(2476a488bb0d39790b2cc7f261ddb973378022ff) ) - ROM_LOAD16_BYTE( "10-u86b.bin", 0x000001, 0x20000, CRC(9eab216f) SHA1(616f3ee2d06aa7151af634773a5e8633bff9588e) ) - ROM_LOAD16_BYTE( "9-u53b.bin", 0x040000, 0x20000, CRC(dfcfa040) SHA1(f1561defe9746afdb1a5327d0a4435a6f3e87a77) ) - ROM_LOAD16_BYTE( "11-u85b.bin", 0x040001, 0x20000, CRC(fe747dd5) SHA1(6ba57a45f4d77e2574de95d4a2f0718c601e7214) ) - - ROM_REGION( 0xa0000, REGION_SOUND1, 0 ) /* OKIM6295 samples */ - ROM_LOAD( "6-u131.bin", 0x00000, 0x20000, CRC(79a4ae75) SHA1(f7609d0ca18b4af8c5f37daa1795a7a6c6d768ae) ) - ROM_CONTINUE( 0x40000, 0x20000 ) /* banked */ - ROM_LOAD( "7-u132.bin", 0x60000, 0x40000, CRC(21db875e) SHA1(e1d96155b6d8825f7c449f276d02f9769258345d) ) /* banked */ - - ROM_REGION( 0xa0000, REGION_SOUND2, ROMREGION_ERASE00 ) /* OKIM6295 samples */ - /* empty */ - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "u200.bpr", 0x0000, 0x0020, CRC(1823600b) SHA1(7011156ebcb815b176856bd67898ce655ea1b5ab) ) /* unknown */ - ROM_LOAD( "u7.bpr", 0x0020, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */ - ROM_LOAD( "u10.bpr", 0x0120, 0x0200, CRC(8e9b569a) SHA1(1d8d633fbeb72d5e55ad4b282df02e9ca5e240eb) ) /* unknown */ - ROM_LOAD( "u120.bpr", 0x0320, 0x0100, CRC(576c5984) SHA1(6e9b7f30de0d91cb766a62abc5888ec9af085a27) ) /* unknown */ -ROM_END - - - -static unsigned char decode_byte(unsigned char src, unsigned char *bitp) -{ - unsigned char ret, i; - - ret = 0; - for (i=0; i<8; i++) - ret |= (((src >> bitp[i]) & 1) << (7-i)); - - return ret; -} - -static unsigned long bjtwin_address_map_bg0(unsigned long addr) -{ - return ((addr&0x00004)>> 2) | ((addr&0x00800)>> 10) | ((addr&0x40000)>>16); -} - - -static unsigned short decode_word(unsigned short src, unsigned char *bitp) -{ - unsigned short ret, i; - - ret=0; - for (i=0; i<16; i++) - ret |= (((src >> bitp[i]) & 1) << (15-i)); - - return ret; -} - - -static unsigned long bjtwin_address_map_sprites(unsigned long addr) -{ - return ((addr&0x00010)>> 4) | ((addr&0x20000)>>16) | ((addr&0x100000)>>18); -} - - -static void decode_gfx(void) -{ - /* GFX are scrambled. We decode them here. (BIG Thanks to Antiriad for descrambling info) */ - unsigned char *rom; - int A; - - static unsigned char decode_data_bg[8][8] = - { - {0x3,0x0,0x7,0x2,0x5,0x1,0x4,0x6}, - {0x1,0x2,0x6,0x5,0x4,0x0,0x3,0x7}, - {0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0}, - {0x7,0x6,0x5,0x0,0x1,0x4,0x3,0x2}, - {0x2,0x0,0x1,0x4,0x3,0x5,0x7,0x6}, - {0x5,0x3,0x7,0x0,0x4,0x6,0x2,0x1}, - {0x2,0x7,0x0,0x6,0x5,0x3,0x1,0x4}, - {0x3,0x4,0x7,0x6,0x2,0x0,0x5,0x1}, - }; - - static unsigned char decode_data_sprite[8][16] = - { - {0x9,0x3,0x4,0x5,0x7,0x1,0xb,0x8,0x0,0xd,0x2,0xc,0xe,0x6,0xf,0xa}, - {0x1,0x3,0xc,0x4,0x0,0xf,0xb,0xa,0x8,0x5,0xe,0x6,0xd,0x2,0x7,0x9}, - {0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0}, - {0xf,0xe,0xc,0x6,0xa,0xb,0x7,0x8,0x9,0x2,0x3,0x4,0x5,0xd,0x1,0x0}, - - {0x1,0x6,0x2,0x5,0xf,0x7,0xb,0x9,0xa,0x3,0xd,0xe,0xc,0x4,0x0,0x8}, /* Haze 20/07/00 */ - {0x7,0x5,0xd,0xe,0xb,0xa,0x0,0x1,0x9,0x6,0xc,0x2,0x3,0x4,0x8,0xf}, /* Haze 20/07/00 */ - {0x0,0x5,0x6,0x3,0x9,0xb,0xa,0x7,0x1,0xd,0x2,0xe,0x4,0xc,0x8,0xf}, /* Antiriad, Corrected by Haze 20/07/00 */ - {0x9,0xc,0x4,0x2,0xf,0x0,0xb,0x8,0xa,0xd,0x3,0x6,0x5,0xe,0x1,0x7}, /* Antiriad, Corrected by Haze 20/07/00 */ - }; - - - /* background */ - rom = memory_region(REGION_GFX2); - for (A = 0;A < memory_region_length(REGION_GFX2);A++) - { - rom[A] = decode_byte( rom[A], decode_data_bg[bjtwin_address_map_bg0(A)]); - } - - /* sprites */ - rom = memory_region(REGION_GFX3); - for (A = 0;A < memory_region_length(REGION_GFX3);A += 2) - { - unsigned short tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_sprite[bjtwin_address_map_sprites(A)]); - rom[A+1] = tmp >> 8; - rom[A] = tmp & 0xff; - } -} - -static void decode_tdragonb(void) -{ - /* Descrambling Info Again Taken from Raine, Huge Thanks to Antiriad and the Raine Team for - going Open Source, best of luck in future development. */ - - unsigned char *rom; - int A; - - /* The Main 68k Program of the Bootleg is Bitswapped */ - static unsigned char decode_data_tdragonb[1][16] = - { - {0xe,0xc,0xa,0x8,0x7,0x5,0x3,0x1,0xf,0xd,0xb,0x9,0x6,0x4,0x2,0x0}, - }; - - /* Graphic Roms Could Also Do With Rearranging to make things simpler */ - static unsigned char decode_data_tdragonbgfx[1][8] = - { - {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, - }; - - rom = memory_region(REGION_CPU1); - for (A = 0;A < memory_region_length(REGION_CPU1);A += 2) - { -#ifdef LSB_FIRST - unsigned short tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_tdragonb[0]); - rom[A+1] = tmp >> 8; - rom[A] = tmp & 0xff; -#else - unsigned short tmp = decode_word( rom[A]*256 + rom[A+1], decode_data_tdragonb[0]); - rom[A] = tmp >> 8; - rom[A+1] = tmp & 0xff; -#endif - } - - rom = memory_region(REGION_GFX2); - for (A = 0;A < memory_region_length(REGION_GFX2);A++) - { - rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); - } - - rom = memory_region(REGION_GFX3); - for (A = 0;A < memory_region_length(REGION_GFX3);A++) - { - rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); - } -} - -static void decode_ssmissin(void) -{ - /* Like Thunder Dragon Bootleg without the Program Rom Swapping */ - unsigned char *rom; - int A; - - /* Graphic Roms Could Also Do With Rearranging to make things simpler */ - static unsigned char decode_data_tdragonbgfx[1][8] = - { - {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, - }; - - rom = memory_region(REGION_GFX2); - for (A = 0;A < memory_region_length(REGION_GFX2);A++) - { - rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); - } - - rom = memory_region(REGION_GFX3); - for (A = 0;A < memory_region_length(REGION_GFX3);A++) - { - rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); - } -} - - -static DRIVER_INIT( nmk ) -{ - decode_gfx(); -} - -static DRIVER_INIT( hachamf ) -{ - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - - //rom[0x0006/2] = 0x7dc2; /* replace reset vector with the "real" one */ - - // kludge the sound communication to let commands go through. - rom[0x048a/2] = 0x4e71; - rom[0x04aa/2] = 0x4e71; -} - -static DRIVER_INIT( tdragonb ) -{ - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - - decode_tdragonb(); - - /* The Following Patch is taken from Raine, Otherwise the game has no Sprites in Attract Mode or After Level 1 - which is rather odd considering its a bootleg.. */ - rom[0x00308/2] = 0x4e71; /* Sprite Problem */ -} - -static DRIVER_INIT( tdragon ) -{ - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - - //rom[0x94b0/2] = 0; /* Patch out JMP to shared memory (protection) */ - //rom[0x94b2/2] = 0x92f4; - - // kludge the sound communication to let commands go through. - rom[0x048a/2] = 0x4e71; - rom[0x04aa/2] = 0x4e71; -} - -static DRIVER_INIT( ssmissin ) -{ - decode_ssmissin(); -} - - -int is_blkheart; - -// see raine's games/nmk.c - -static WRITE16_HANDLER ( test_2a_w ) -{ - data = data >> 8; - - ram[0x2a/2] = (data << 8) | data; - - if (data == 1 || data == 2) { - ram[0x68/2] = 11; - ram[0x6a/2] = 0; - } -} - -static WRITE16_HANDLER ( test_2a_mustang_w ) -{ - data = data >> 8; - - ram[0x2a/2] = (data << 8) | data; - - if (data == 1 || data == 2) { - ram[0x2e/2] = 10; - ram[0x2c/2] = 0; - } - -} - -static DRIVER_INIT( blkheart ) -{ - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - - is_blkheart = 1; // sprite enable is different? - - // see raine's games/nmk.c - rom[0x872/2] = 0x4e71; - rom[0x874/2] = 0x4e71; - rom[0x876/2] = 0x4e71; - rom[0x8d6/2] = 0x0300; - rom[0xe1c/2] = 0x0300; - rom[0x23dc/2] = 0x0300; - rom[0x3dea/2] = 0x0300; - - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xf902a, 0xf902b, 0, 0, test_2a_w ); -} - -static DRIVER_INIT( mustang ) -{ - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1); - - is_blkheart = 1; // sprite enable is different? - - // see raine's games/nmk.c - rom[0x85c/2] = 0x4e71; - rom[0x85e/2] = 0x4e71; - rom[0x860/2] = 0x4e71; - rom[0x8c0/2] = 0x0300; - rom[0xc00/2] = 0x0300; - rom[0x30b2/2] = 0x0300; - - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xf902a, 0xf902b, 0, 0, test_2a_mustang_w ); -} - -static DRIVER_INIT( bjtwin ) -{ - init_nmk(machine); - - /* Patch rom to enable test mode */ - -/* 008F54: 33F9 0008 0000 000F FFFC move.w $80000.l, $ffffc.l - * 008F5E: 3639 0008 0002 move.w $80002.l, D3 - * 008F64: 3003 move.w D3, D0 \ - * 008F66: 3203 move.w D3, D1 | This code remaps - * 008F68: 0041 BFBF ori.w #-$4041, D1 | buttons 2 and 3 to - * 008F6C: E441 asr.w #2, D1 | button 1, so - * 008F6E: 0040 DFDF ori.w #-$2021, D0 | you can't enter - * 008F72: E240 asr.w #1, D0 | service mode - * 008F74: C640 and.w D0, D3 | - * 008F76: C641 and.w D1, D3 / - * 008F78: 33C3 000F FFFE move.w D3, $ffffe.l - * 008F7E: 207C 000F 9000 movea.l #$f9000, A0 - */ - -// data 16_t *rom = (UINT16 *)memory_region(REGION_CPU1); -// rom[0x09172/2] = 0x6006; /* patch checksum error */ -// rom[0x08f74/2] = 0x4e71); -} - -GAME( 1989, tharrier, 0, tharrier, tharrier, 0, ROT270, "UPL (American Sammy license)", "Task Force Harrier", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1989, tharierj, tharrier,tharrier, tharrier, 0, ROT270, "UPL", "Task Force Harrier (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) -GAME( 1990, mustang, 0, mustang, mustang, mustang, ROT0, "UPL", "US AAF Mustang (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND) // Playable but there are Still Protection Problems -GAME( 1990, mustangs, mustang, mustang, mustang, mustang, ROT0, "UPL (Seoul Trading license)", "US AAF Mustang (Seoul Trading)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems -GAME( 1990, mustangb, mustang, mustangb, mustang, mustang, ROT0, "bootleg", "US AAF Mustang (bootleg)", GAME_UNEMULATED_PROTECTION ) // Playable but there are Still Protection Problems -GAME( 1990, bioship, 0, bioship, bioship, 0, ROT0, "UPL (American Sammy license)", "Bio-ship Paladin", GAME_IMPERFECT_SOUND ) -GAME( 1990, vandyke, 0, vandyke, vandyke, 0, ROT270, "UPL", "Vandyke (Japan)", GAME_IMPERFECT_SOUND ) -GAME( 1990, vandyjal, vandyke, vandyke, vandyke, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, Set 1)", GAME_IMPERFECT_SOUND ) -GAME( 1990, vandyja2, vandyke, vandyke, vandyke, 0, ROT270, "UPL (Jaleco license)", "Vandyke (Jaleco, Set 2)", GAME_IMPERFECT_SOUND ) -GAME( 1991, manybloc, 0, manybloc, manybloc, 0, ROT270, "Bee-Oh", "Many Block", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) -GAME( 1991, blkheart, 0, macross, blkheart, blkheart, ROT0, "UPL", "Black Heart", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems -GAME( 1991, blkhearj, blkheart,macross, blkheart, blkheart, ROT0, "UPL", "Black Heart (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND ) // Playable but there are Still Protection Problems -GAME( 1991, acrobatm, 0, acrobatm, acrobatm, 0, ROT270, "UPL (Taito license)", "Acrobat Mission", GAME_IMPERFECT_SOUND ) -GAME( 1992, strahl, 0, strahl, strahl, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 1)", GAME_IMPERFECT_SOUND ) -GAME( 1992, strahla, strahl, strahl, strahl, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 2)", GAME_IMPERFECT_SOUND ) -GAME( 1991, tdragon, 0, tdragon, tdragon, tdragon, ROT270, "NMK (Tecmo license)", "Thunder Dragon", GAME_IMPERFECT_SOUND ) -GAME( 1991, tdragonb, tdragon, tdragonb, tdragonb, tdragonb, ROT270, "NMK / Tecmo", "Thunder Dragon (Bootleg)", 0 ) -GAME( 1992, ssmissin, 0, ssmissin, ssmissin, ssmissin, ROT270, "Comad", "S.S. Mission", GAME_NO_COCKTAIL ) -GAME( 1996, airattck, 0, ssmissin, airattck, ssmissin, ROT270, "Comad", "Air Attack", GAME_NO_COCKTAIL ) -GAME( 1991, hachamf, 0, hachamf, hachamf, hachamf, ROT0, "NMK", "Hacha Mecha Fighter", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1992, macross, 0, macross, macross, nmk, ROT270, "Banpresto", "Super Spacefortress Macross / Chou-Jikuu Yousai Macross", GAME_IMPERFECT_SOUND ) -GAME( 1993, gunnail, 0, gunnail, gunnail, nmk, ROT270, "NMK / Tecmo", "GunNail", GAME_IMPERFECT_SOUND ) -GAME( 1993, macross2, 0, macross2, macross2, 0, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", GAME_NO_COCKTAIL ) -GAME( 1993, tdragon2, 0, tdragon2, tdragon2, 0, ROT270, "NMK", "Thunder Dragon 2", GAME_NO_COCKTAIL ) -GAME( 1993, bigbang, tdragon2,tdragon2, tdragon2, 0, ROT270, "NMK", "Big Bang", GAME_NO_COCKTAIL ) -GAME( 1994, raphero, 0, raphero, raphero, 0, ROT270, "Media Trading Corp", "Rapid Hero (Japan?)", GAME_IMPERFECT_SOUND ) // 23rd July 1993 in test mode, (c)1994 on title screen - -GAME( 1992, sabotenb, 0, bjtwin, sabotenb, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 1)", GAME_NO_COCKTAIL ) -GAME( 1992, sabotnba, sabotenb,bjtwin, sabotenb, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 2)", GAME_NO_COCKTAIL ) -GAME( 1993, bjtwin, 0, bjtwin, bjtwin, bjtwin, ROT270, "NMK", "Bombjack Twin", GAME_NO_COCKTAIL ) -GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", GAME_NO_COCKTAIL ) diff --git a/src/drivers/nycaptor.c b/src/drivers/nycaptor.c deleted file mode 100644 index 387bcf9b3..000000000 --- a/src/drivers/nycaptor.c +++ /dev/null @@ -1,1310 +0,0 @@ -/*************************************************************************** - N.Y. Captor - Taito '85 - - Driver by Tomasz Slanina analog [at] op.pl -**************************************************************************** - Hardware similar to Fairyland Story - Cycle Shooting (Taito '86) is running on (almost) the same hardware - as NY Captor, but MCU dump is missing. - - -What's new : - - added bootlegs - Bronx and Colt - - Cycle Shooting added (bigger VRAM than nycpator, dfferent (unknwn yet) banking and - gfx control , ROMs probably are wrong mapped, gfx too) - - Sub CPU halt (cpu #0 ,$d001) - - Improved communication between main cpu and sound cpu ($d400 cpu#0 , $d000 sound cpu) - - -To do : - - REAL bg/sprite priority system - - cpu #0 , $d806 - only bits 0,1,2 used , something with sound control - (code at $62x) - - better sound emulation (mixing ?) - - unknown R/W - - 13th bit in color defs (priority? bit is set for all colors in spot1, - for 3/4 screen cols in spot2 etc) -Notes : - - $d000 - MCU data read/write - $d001 - Watchdog ? - $d002 - generic control ----x--- ROM Bank - - $d800 - Dip 0 ------xx Bonus life - 00 150000 300000 300000 - 01 100000 300000 300000 - 10 20000 80000 80000 - 11 50000 150000 200000 - -----x-- Unknown - ---xx--- Lives - 00 2 - 01 1 - 10 3 - 11 5 - --x----- Free Play - 0 Yes - 1 No - -x------ Allow Continue - 0 No - 1 Yes - x------- Demo Sounds - 0 Off - 1 On - - $d801 - Dip 1 Coinage - - $d802 - Dip 2 -------x Freeze - 0 On - 1 Off - ------x- Training Spot - 0 No - 1 Yes - ----xx-- Difficulty - 00 Hardest - 01 Normal - 10 Hard - 11 Easy - ---x---- Display Coinage - 0 No - 1 Yes - --x----- Reset Damage - 0 Every 4 Stages - 1 Every Stage - -x------ No Hit - 0 Yes - 1 No - x------- Coin Slots - 0 1 - 1 2 - - $d803 - Input Port 1 -------x Start1 - ------x- Unused - -----x-- Service1 - ----x--- Tilt - ---x---- Coin1 - --x----- Coin2 - xx------ Unknown - - $d804 - Input Port 2 -------x Button1 - xxxxxxx- Unused - - $d805 - MCU Status read ------x- MCU has sent data to the main cpu - - $d806 - Unknown - - $d807 - MCU Status read -------x MCU is ready to receive data from main cpu - - -RAM : - - $e18e - sync between 1st and 2nd Z80 - $e18d - same as a bove - - $e19d - coinage A (Word) - $e19f - coinage B (Word) - - $e298 - spot - $e299 - lives - $e2a1 - damage - $e2a2 - stage - - $e39c - video control byte stored here - $e39d - generic control value - $e39f - gun position update - $e397 - same as above ? - - $e3a0 - gun Y position ($18 - $f0 = visible area) - $e3a1 - gun X position ($08 - $c0 = visible area) - $e3a2 - shot trigger - - $e3a8 - timer for bullets reload - $e3aa - bullets - - $df00 R - x - beam counter - $df01 R - y - beam counter - $df02 R - bit 0 - beam detector - - $df03 W - video control byte - - -Stephh's additional notes (based on the game Z80 code and some tests) : - - - You need to press SERVICE1 while resetting the game to enter the "test mode". - Note that the grid is always displayed, so it's IMPOSSIBLE to see what's in it 8( - - - When "Infinite Bullets" is set to ON, there is no timer to reload the bullets. - - When "No Hit" Dip Switch is ON, damage is still incremented, but there are - no test made if it reaches the limit (0x0a). - - - Bit 2 of 0xd802 also determines the precision of a shot - (= range around a bullet where the enemies can be killed) : - * 0 : small range (0x0a) - * 1 : high range (0x0c) - -***************************************************************************/ - -//#define USE_MCU - - -#include -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/msm5232.h" - -VIDEO_START( nycaptor ); -VIDEO_UPDATE( nycaptor ); - - -extern UINT8 *nycaptor_scrlram; -UINT8 *nycaptor_sharedram; -static int generic_control_reg = 0; -static int sound_nmi_enable=0,pending_nmi=0; -int nyc_gametype=0; - -WRITE8_HANDLER( nycaptor_videoram_w ); -WRITE8_HANDLER( nycaptor_spriteram_w ); -WRITE8_HANDLER( nycaptor_palette_w ); -WRITE8_HANDLER( nycaptor_gfxctrl_w ); -WRITE8_HANDLER( nycaptor_scrlram_w ); -WRITE8_HANDLER( nycaptor_68705_portA_w ); -WRITE8_HANDLER( nycaptor_68705_portB_w ); -WRITE8_HANDLER( nycaptor_68705_portC_w ); -WRITE8_HANDLER( nycaptor_68705_ddrA_w ); -WRITE8_HANDLER( nycaptor_68705_ddrB_w ); -WRITE8_HANDLER( nycaptor_68705_ddrC_w ); -WRITE8_HANDLER( nycaptor_mcu_w ); - -READ8_HANDLER( nycaptor_mcu_r ); -READ8_HANDLER( nycaptor_mcu_status_r1 ); -READ8_HANDLER( nycaptor_mcu_status_r2 ); -READ8_HANDLER( nycaptor_spriteram_r ); -READ8_HANDLER( nycaptor_palette_r ); -READ8_HANDLER( nycaptor_gfxctrl_r ); -READ8_HANDLER( nycaptor_scrlram_r ); -READ8_HANDLER( nycaptor_68705_portC_r ); -READ8_HANDLER( nycaptor_68705_portB_r ); -READ8_HANDLER( nycaptor_68705_portA_r ); -READ8_HANDLER( nycaptor_videoram_r ); - - - -static WRITE8_HANDLER( sub_cpu_halt_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_HALT, (data )? ASSERT_LINE : CLEAR_LINE); -} - -static UINT8 snd_data; - -READ8_HANDLER( from_snd_r ) -{ - return snd_data; -} - -WRITE8_HANDLER( to_main_w ) -{ - snd_data = data; -} - - -READ8_HANDLER(nycaptor_sharedram_r) -{ - return nycaptor_sharedram[offset]; -} - -WRITE8_HANDLER(nycaptor_sharedram_w) -{ - nycaptor_sharedram[offset]=data; -} - - -static READ8_HANDLER( nycaptor_b_r ) -{ - return 1; -} - -static READ8_HANDLER( nycaptor_by_r ) -{ - int port=readinputport(6); - if(nyc_gametype==1) - port=255-port; - return port-8; -} - -static READ8_HANDLER( nycaptor_bx_r ) -{ - return (readinputport(5)+0x27)|1; -} - - -static WRITE8_HANDLER( sound_cpu_reset_w ) -{ - cpunum_set_input_line(2, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE); -} - -static int vol_ctrl[16]; - -static MACHINE_RESET( ta7630 ) -{ - int i; - - double db = 0.0; - double db_step = 0.50; /* 0.50 dB step (at least, maybe more) */ - double db_step_inc = 0.275; - for (i=0; i<16; i++) - { - double max = 100.0 / pow(10.0, db/20.0 ); - vol_ctrl[ 15-i ] = max; - /*logerror("vol_ctrl[%x] = %i (%f dB)\n",15-i,vol_ctrl[ 15-i ],db);*/ - db += db_step; - db_step += db_step_inc; - } -} - -static void nmi_callback(int param) -{ - if (sound_nmi_enable) cpunum_set_input_line(2,INPUT_LINE_NMI,PULSE_LINE); - else pending_nmi = 1; -} - -static WRITE8_HANDLER( sound_command_w ) -{ - soundlatch_w(0,data); - timer_set(TIME_NOW,data,nmi_callback); -} - -static WRITE8_HANDLER( nmi_disable_w ) -{ - sound_nmi_enable = 0; -} - -static WRITE8_HANDLER( nmi_enable_w ) -{ - sound_nmi_enable = 1; - if (pending_nmi) - { - cpunum_set_input_line(2,INPUT_LINE_NMI,PULSE_LINE); - pending_nmi = 0; - } -} - -static WRITE8_HANDLER(unk_w) -{ - -} - -static struct AY8910interface ay8910_interface = -{ - 0, - 0, - unk_w, - unk_w -}; - -static struct MSM5232interface msm5232_interface = -{ - { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 } /* 0.65 (???) uF capacitors (match the sample, not verified) */ -}; - - -static READ8_HANDLER ( nycaptor_generic_control_r ) -{ - return generic_control_reg; -} - -static WRITE8_HANDLER( nycaptor_generic_control_w ) -{ - generic_control_reg = data; - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x10000 + ((data&0x08)>>3)*0x4000 ); -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xc7ff) AM_READ(nycaptor_videoram_r) - AM_RANGE(0xd000, 0xd000) AM_READ(nycaptor_mcu_r) - AM_RANGE(0xd002, 0xd002) AM_READ(nycaptor_generic_control_r) - AM_RANGE(0xd400, 0xd400) AM_READ(from_snd_r) - AM_RANGE(0xd401, 0xd401) AM_READ(MRA8_NOP) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xd805, 0xd805) AM_READ(nycaptor_mcu_status_r1) - AM_RANGE(0xd806, 0xd806) AM_READ(MRA8_NOP) /* unknown ?sound? */ - AM_RANGE(0xd807, 0xd807) AM_READ(nycaptor_mcu_status_r2) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd000, 0xd000) AM_WRITE(nycaptor_mcu_w) - AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) - AM_RANGE(0xd002, 0xd002) AM_WRITE(nycaptor_generic_control_w) /* bit 3 - memory bank at 0x8000-0xbfff */ - AM_RANGE(0xd400, 0xd400) AM_WRITE(sound_command_w) - AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdce1, 0xdce1) AM_WRITE(MWA8_NOP) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( readmem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r) - AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r) - AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(MWA8_NOP)/* ? gfx control ? */ - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) - AM_RANGE(0xd200, 0xd200) AM_READ(MRA8_NOP) - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc800, 0xc800) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xc802, 0xc802) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xc803, 0xc803) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0xc900, 0xc90d) AM_WRITE(MSM5232_0_w) - AM_RANGE(0xca00, 0xca00) AM_WRITE(MWA8_NOP) - AM_RANGE(0xcb00, 0xcb00) AM_WRITE(MWA8_NOP) - AM_RANGE(0xcc00, 0xcc00) AM_WRITE(MWA8_NOP) - AM_RANGE(0xd000, 0xd000) AM_WRITE(to_main_w) - AM_RANGE(0xd200, 0xd200) AM_WRITE(nmi_enable_w) - AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w) - AM_RANGE(0xd600, 0xd600) AM_WRITE(MWA8_NOP) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READ(nycaptor_68705_portA_r) - AM_RANGE(0x0001, 0x0001) AM_READ(nycaptor_68705_portB_r) - AM_RANGE(0x0002, 0x0002) AM_READ(nycaptor_68705_portC_r) - AM_RANGE(0x0010, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_WRITE(nycaptor_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_WRITE(nycaptor_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_WRITE(nycaptor_68705_portC_w) - AM_RANGE(0x0004, 0x0004) AM_WRITE(nycaptor_68705_ddrA_w) - AM_RANGE(0x0005, 0x0005) AM_WRITE(nycaptor_68705_ddrB_w) - AM_RANGE(0x0006, 0x0006) AM_WRITE(nycaptor_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -/* Cycle Shooting */ - - -static READ8_HANDLER(cyclshtg_mcu_status_r) -{ - return 0xff; -} - -static READ8_HANDLER(cyclshtg_mcu_r) -{ - return 7; -} - -static WRITE8_HANDLER(cyclshtg_mcu_w) -{ - -} - -static READ8_HANDLER(cyclshtg_mcu_status_r1) -{ - return rand(); -} - -static WRITE8_HANDLER( cyclshtg_generic_control_w ) -{ - int bank=(data>>2)&3; - generic_control_reg = data; - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x10000 + bank*0x4000 ); -} - - -static ADDRESS_MAP_START( cyclshtg_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xcfff) AM_READ(nycaptor_videoram_r) - AM_RANGE(0xd000, 0xd000) AM_READ(cyclshtg_mcu_r) - AM_RANGE(0xd002, 0xd002) AM_READ(nycaptor_generic_control_r) - AM_RANGE(0xd400, 0xd400) AM_READ(from_snd_r) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xd806, 0xd806) AM_READ(MRA8_NOP) - AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cyclshtg_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd000, 0xd000) AM_WRITE(cyclshtg_mcu_w) - AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) - AM_RANGE(0xd002, 0xd002) AM_WRITE(cyclshtg_generic_control_w) - AM_RANGE(0xd400, 0xd400) AM_WRITE(sound_command_w) - AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdce1, 0xdce1) AM_WRITE(MWA8_NOP) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( cyclshtg_readmem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r) - AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r) - AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cyclshtg_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(MWA8_NOP) - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) -ADDRESS_MAP_END - -static READ8_HANDLER(unk_r) -{ - return rand(); -} - -static ADDRESS_MAP_START( bronx_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xcfff) AM_READ(nycaptor_videoram_r) - AM_RANGE(0xd000, 0xd000) AM_READ(cyclshtg_mcu_r) - AM_RANGE(0xd002, 0xd002) AM_READ(nycaptor_generic_control_r) - AM_RANGE(0xd400, 0xd400) AM_READ(from_snd_r) - AM_RANGE(0xd401, 0xd401) AM_READ(unk_r) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xd806, 0xd806) AM_READ(MRA8_NOP) - AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bronx_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd000, 0xd000) AM_WRITENOP - AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w) - AM_RANGE(0xd002, 0xd002) AM_WRITE(cyclshtg_generic_control_w) - AM_RANGE(0xd400, 0xd400) AM_WRITE(sound_command_w) - AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bronx_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bronx_readmem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_0_r) - AM_RANGE(0xd801, 0xd801) AM_READ(input_port_1_r) - AM_RANGE(0xd802, 0xd802) AM_READ(input_port_2_r) - AM_RANGE(0xd803, 0xd803) AM_READ(input_port_3_r) - AM_RANGE(0xd804, 0xd804) AM_READ(input_port_4_r) - AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r1) - AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r) - AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r) - AM_RANGE(0xdd00, 0xdeff) AM_READ(nycaptor_palette_r) - AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r) - AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r) - AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r) - AM_RANGE(0xdf03, 0xdf03) AM_READ(nycaptor_gfxctrl_r) - AM_RANGE(0xe000, 0xffff) AM_READ(nycaptor_sharedram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bronx_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(nycaptor_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w) - AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram) - AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w) - AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) -ADDRESS_MAP_END - -/* Cycle Shooting */ - - -INPUT_PORTS_START( cyclshtg ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x04, 0x04, "Test Mode" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - - PORT_START_TAG("IN2") - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )//? - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Tilt ) ) - PORT_DIPSETTING( 0x08, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START_TAG("IN6") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( nycaptor ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x02, "20k, 80k then every 80k" ) - PORT_DIPSETTING( 0x03, "50k, 150k then every 200k" ) - PORT_DIPSETTING( 0x01, "100k, 300k then every 300k" ) - PORT_DIPSETTING( 0x00, "150k, 300k then every 300k" ) - PORT_DIPNAME( 0x04, 0x04, "Infinite Bullets (Cheat)") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x18, "3" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) - - PORT_START_TAG("IN2") - PORT_DIPNAME( 0x01, 0x01, "Freeze" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Training Spot" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, "Coinage Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, "Reset Damage" ) - PORT_DIPSETTING( 0x20, "Every Stage" ) - PORT_DIPSETTING( 0x00, "Every 4 Stages" ) - PORT_DIPNAME( 0x40, 0x40, "No Hit (Cheat)") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Coin Slots" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x80, "2" ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* IPT_START2 is some similar Taito games (eg: 'flstory') */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "I/O ERROR" if active */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* "I/O ERROR" if active */ - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN5") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START_TAG("IN6") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 }, - { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0, - 16*8+3, 16*8+2, 16*8+1, 16*8+0, 16*8+8+3, 16*8+8+2, 16*8+8+1, 16*8+8+0 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 },//16 kolorow - { REGION_GFX1, 0, &spritelayout, 256, 16 },//paleta 2, 16 kolorow - { -1 } /* end of array */ -}; - - - - -static MACHINE_DRIVER_START( nycaptor ) - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,8000000/2) /* ??? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - MDRV_CPU_PROGRAM_MAP(readmem_sub,writemem_sub) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* IRQ generated by ??? */ - - MDRV_CPU_ADD(Z80,8000000/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) /* IRQ generated by ??? */ - - MDRV_CPU_ADD(M68705,2000000) - MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */ - - /* synchronization of the CPUs */ - MDRV_MACHINE_RESET(ta7630) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(nycaptor) - MDRV_VIDEO_UPDATE(nycaptor) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(MSM5232, 2000000) - MDRV_SOUND_CONFIG(msm5232_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cyclshtg ) - MDRV_CPU_ADD(Z80,8000000/2) - - MDRV_CPU_PROGRAM_MAP(cyclshtg_readmem,cyclshtg_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - MDRV_CPU_PROGRAM_MAP(cyclshtg_readmem_sub,cyclshtg_writemem_sub) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - -#ifdef USE_MCU - MDRV_CPU_ADD(M68705,2000000) - MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem) -#endif - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1) - MDRV_MACHINE_RESET(ta7630) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(nycaptor) - MDRV_VIDEO_UPDATE(nycaptor) - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(MSM5232, 2000000) - MDRV_SOUND_CONFIG(msm5232_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bronx ) - MDRV_CPU_ADD(Z80,8000000/2) - - MDRV_CPU_PROGRAM_MAP(bronx_readmem, bronx_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - MDRV_CPU_PROGRAM_MAP(bronx_readmem_sub, bronx_writemem_sub) - MDRV_CPU_IO_MAP(bronx_io, 0) - - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(2) - MDRV_MACHINE_RESET(ta7630) - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(nycaptor) - MDRV_VIDEO_UPDATE(nycaptor) - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(AY8910, 8000000/4) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - - MDRV_SOUND_ADD(MSM5232, 2000000) - MDRV_SOUND_CONFIG(msm5232_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - Game driver(s) -***************************************************************************/ - -ROM_START( nycaptor ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "a50_04", 0x00000, 0x4000, CRC(33d971a3) SHA1(8bf6cb8d799739dc6f115d352453af278d58de9a) ) - ROM_LOAD( "a50_03", 0x04000, 0x4000, CRC(8557fa44) SHA1(5639ec2ac21ae94c416c01bd7c0dae722cc14598) ) - ROM_LOAD( "a50_02", 0x10000, 0x4000, CRC(9697b898) SHA1(28b92963264b867ca4452dad7dcbbb8c8247d2f5) ) - ROM_LOAD( "a50_01", 0x14000, 0x4000, CRC(0965f84a) SHA1(22698446f52f5d29632aa982b9be87a9bf86fbef) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "a50_05-2", 0x0000, 0x4000, CRC(7796655a) SHA1(74cf84bf6f4dfee57ef6236280c0d64c1a156ffe) ) - ROM_LOAD( "a50_06", 0x4000, 0x4000, CRC(450d6783) SHA1(e652bf83fb6bdd8152dbafb05bb695259c2619cc) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "a50_15", 0x0000, 0x4000, CRC(f8a604e5) SHA1(8fae920fd09584b5e5ccd0db8b8934b393a23d50) ) - ROM_LOAD( "a50_16", 0x4000, 0x4000, CRC(fc24e11d) SHA1(ce1a1d7b809fa0f5f5e7a462047374b1b3f621c6) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "a50_17", 0x0000, 0x0800, CRC(69fe08dc) SHA1(9bdac3e835f63bbb8806892169d89f43d447df21) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a50_07", 0x00000, 0x4000, CRC(b3b330cf) SHA1(8330e4831b8d0068c0367417db2e27fded7c56fe) ) - ROM_LOAD( "a50_09", 0x04000, 0x4000, CRC(22e2232e) SHA1(3b43114a5511b00e45cd67073c3f833fcf098fb6) ) - ROM_LOAD( "a50_11", 0x08000, 0x4000, CRC(2c04ad4f) SHA1(a6272f91f583d46dd4a3fe863482b39406c70e97) ) - ROM_LOAD( "a50_13", 0x0c000, 0x4000, CRC(9940e78d) SHA1(8607808e6ff76808ae155d671c3179bfe7d2639b) ) - ROM_LOAD( "a50_08", 0x10000, 0x4000, CRC(3c31be14) SHA1(a1ed382fbd374609022535bd0d78bc9e84edd63b) ) - ROM_LOAD( "a50_10", 0x14000, 0x4000, CRC(ce84dc5a) SHA1(8723310f3e25820ef7490c16759ebcb8354dde85) ) - ROM_LOAD( "a50_12", 0x18000, 0x4000, CRC(3fb4cfa3) SHA1(b1c5f7b0297c59dc93420d31e0ef2b1125dbb9db) ) - ROM_LOAD( "a50_14", 0x1c000, 0x4000, CRC(24b2f1bf) SHA1(4757aec2e4b99ce33d993ce1e19ee46a4eb76e86) ) -ROM_END - -ROM_START( cyclshtg ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "a97_01.i17", 0x00000, 0x4000, CRC(686fac1a) SHA1(46d17cb98f064413bb76c5d869f8061d2771cda0) ) - ROM_LOAD( "a97_02.i16", 0x04000, 0x4000, CRC(48a812f9) SHA1(8ab18cb8d6a8b7ce1ed1a4009f5435ce4b0937b4) ) - ROM_LOAD( "a97_03.u15", 0x10000, 0x4000, CRC(67ad3067) SHA1(2e355653e91c093abe7db0a3d55d5a3f95c4a2e3) ) - ROM_LOAD( "a97_04.u14", 0x14000, 0x4000, CRC(804e6445) SHA1(5b6771c5729faf62d5002d090c0b9c5ca5cb9ad6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "a97_05.u22", 0x0000, 0x4000, CRC(fdc36c4f) SHA1(cae2d3f07c5bd6de9d40ff7d385b999e7dc9ce82) ) - ROM_LOAD( "a80_06.u23", 0x4000, 0x4000, CRC(2769c5ab) SHA1(b8f5a4a8c70c8d37d5e92b37faa0e25b287b3fb2) ) - ROM_LOAD( "a97_06.i24", 0x8000, 0x4000, CRC(c0473a54) SHA1(06fa7345a44a72995146e973c2cd7a14499f4310) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "a80_16.i26", 0x0000, 0x4000, CRC(ce171a48) SHA1(e5ae9bb22f58c8857737bc6f5317866819a4e4d1) ) - ROM_LOAD( "a80_17.i25", 0x4000, 0x4000, CRC(a90b7bbc) SHA1(bd5c96861a59a1f84bb5032775b1c70efdb7066f) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "a80_18", 0x0000, 0x0800, NO_DUMP ) /* Missing */ - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a80_11.u11", 0x00000, 0x4000, CRC(29e1293b) SHA1(106204ec46fae5d3b5e4a4d423bc0e886a637c61) ) - ROM_LOAD( "a80_10.u10", 0x04000, 0x4000, CRC(345f576c) SHA1(fee5b2167bcd0fdc21c0a7b22ffdf7506a24baee) ) - ROM_LOAD( "a80_09.u9", 0x08000, 0x4000, CRC(3ef06dff) SHA1(99bbd32ae89a6becac9e1bb8a34a834d81890444) ) - ROM_LOAD( "a97_07.u8", 0x0c000, 0x4000, CRC(8f2baf57) SHA1(bb4e5b69477c51536dfd95ea59c7281159f3bcc7) ) - ROM_LOAD( "a80_15.u39", 0x10000, 0x4000, CRC(2cefb47d) SHA1(3bef20c9c0c4f9237a327da3cbc9a7bbf63771ea) ) - ROM_LOAD( "a80_14.u34", 0x14000, 0x4000, CRC(91642de8) SHA1(531974fc147d25e9feada89bc82d5df62ec9d446) ) - ROM_LOAD( "a80_13.u33", 0x18000, 0x4000, CRC(96a67c6b) SHA1(3bed4313d6b8d554b35abb1515ab94e78c2718c5) ) - ROM_LOAD( "a80_12.u23", 0x1c000, 0x4000, CRC(9ff04c85) SHA1(a5edc50bbe6e2c976895c97400c75088bc90a1fc) ) - - -ROM_END - -/* -Bronx (Cycle Shooting bootleg) -Taito, 1986 - -The hardware is an almost exact copy of the original Taito hardware, -minus the 68705 Microcontroller :-) - -PCB Layout ----------- - -Top Board - - |----------------------------------| -|-| VOL VOL | -| | TDA2003 TDA2003 LM3900 | -| | | -| | | -| | | -| | LM3900 | -| | | -| | | -|-| M5232| - | AY-3-8910 | - | AY-3-8910 | - | | - | | - | | - | | - | 2016 | - | Z80 16 17 8MHz| - |----------------------------------| -Notes: - Z80 running at 4.000MHz - M5253 running at 2.000MHz - AY-3-8910's running at 2.000MHz - 2016 - 2k x8 SRAM (DIP24) - - -Middle Board - -|----------------------------------------------------| -| 74 Z80 ROM1 04 8MHz | -| |-| 74 | -| | | 139 ROM7 ROM2 | -| | | 240 | -| | | ROM6 ROM3 155 | -| | | 245 | -| | | ROM5 ROM4 139 | -| | | 245 |-| -|2 | | | | -|2 |-| 175 6264 Z80 | | -|W | | -|A | | -|Y 251 251 | | -| | | -| 251 | | -| |-| -| 251 251 244 244 393 | -| | -| 253 244 PAL 02 | -| | -| 251 32 107 00 | -| 74 74 | -| DSWC DSWB DSWA 244 | -|----------------------------------------------------| -Notes: - Both Z80s running at 4.000MHz - 6264 - 8k x8 SRAM (DIP28) - - -Bottom Board - -|----------------------------------------------------| -| 18.432MHz | -| | -| 2016 | -| | -| | -| | -| | -| 6148 |-| -|1 | | -|8 6148 | | -|W | | -|A | | -|Y 6148 | | -| | | -| 8 12 6148 | | -| |-| -| 9 13 6148 | -| | -| 10 14 6148 6148 | -| | -| 11 15 6148 | -| | -| 6148 | -|----------------------------------------------------| -Notes: - 2016 - 2k x8 SRAM (DIP24) - 6148 - 1k x4 SRAM (DIP18) -*/ - -ROM_START( bronx ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "1.bin", 0x00000, 0x4000, CRC(399b5063) SHA1(286e0d1a0c1a41060e87f2dadf199f38c787d40f) ) - ROM_LOAD( "2.bin", 0x04000, 0x4000, CRC(3b5f9756) SHA1(7df0e4808799ca6a7809bd9ac3a1689a18ae1cdb) ) - ROM_LOAD( "3.bin", 0x10000, 0x8000, CRC(d2ffd3ce) SHA1(06d237a4aa46e37192bd94e2db361c62c35d469c) ) - ROM_LOAD( "4.bin", 0x18000, 0x8000, CRC(20cf148d) SHA1(49f49f9e58d7aa5690ff828b746ab856c71b0d9c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "5.bin", 0x0000, 0x4000, CRC(19a1c665) SHA1(38f5f47f22740a75cf0ce6d0406368c2c86e0021) ) - ROM_LOAD( "6.bin", 0x4000, 0x4000, CRC(2769c5ab) SHA1(b8f5a4a8c70c8d37d5e92b37faa0e25b287b3fb2) ) - - ROM_REGION( 0x08000, REGION_USER1, 0 ) - ROM_LOAD( "7.bin", 0x00000, 0x8000, CRC(463f9f62) SHA1(8e1fa8f78d230d32502422078599e9e9af889a92) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "a80_16.i26", 0x0000, 0x4000, CRC(ce171a48) SHA1(e5ae9bb22f58c8857737bc6f5317866819a4e4d1) ) - ROM_LOAD( "a80_17.i25", 0x4000, 0x4000, CRC(a90b7bbc) SHA1(bd5c96861a59a1f84bb5032775b1c70efdb7066f) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a80_11.u11", 0x00000, 0x4000, CRC(29e1293b) SHA1(106204ec46fae5d3b5e4a4d423bc0e886a637c61) ) - ROM_LOAD( "a80_10.u10", 0x04000, 0x4000, CRC(345f576c) SHA1(fee5b2167bcd0fdc21c0a7b22ffdf7506a24baee) ) - ROM_LOAD( "a80_09.u9", 0x08000, 0x4000, CRC(3ef06dff) SHA1(99bbd32ae89a6becac9e1bb8a34a834d81890444) ) - ROM_LOAD( "8.bin", 0x0c000, 0x4000, CRC(2b778d24) SHA1(caca7a18743a4bb657a7c5691d93de0ccb867003) ) - - ROM_LOAD( "a80_15.u39", 0x10000, 0x4000, CRC(2cefb47d) SHA1(3bef20c9c0c4f9237a327da3cbc9a7bbf63771ea) ) - ROM_LOAD( "a80_14.u34", 0x14000, 0x4000, CRC(91642de8) SHA1(531974fc147d25e9feada89bc82d5df62ec9d446) ) - ROM_LOAD( "a80_13.u33", 0x18000, 0x4000, CRC(96a67c6b) SHA1(3bed4313d6b8d554b35abb1515ab94e78c2718c5) ) - ROM_LOAD( "a80_12.u23", 0x1c000, 0x4000, CRC(9ff04c85) SHA1(a5edc50bbe6e2c976895c97400c75088bc90a1fc) ) -ROM_END - -/* -Colt (NY Captor bootleg) -Terminator,1986 - -The hardware is an almost exact copy of the original Taito hardware, -minus the 68705 Microcontroller :-) -The hardware is exactly the same as the bootleg Cycle Shooting hardware. - -PCB Layout ----------- - -Top Board - - |----------------------------------| -|-| VOL VOL | -| | TDA2003 TDA2003 LM3900 | -| | | -| | | -| | | -| | LM3900 | -| | | -| | | -|-| M5232| - | AY-3-8910 | - | AY-3-8910 | - | | - | | - | | - | | - | 2016 | - | Z80 15 16 8MHz| - |----------------------------------| -Notes: - Z80 running at 4.000MHz - M5253 running at 2.000MHz - AY-3-8910's running at 2.000MHz - 2016 - 2k x8 SRAM (DIP24) - - -Middle Board - -|----------------------------------------------------| -| Z80 04 8MHz | -| |-| | -| | | * 03 | -| | | | -| | | 06 02 | -| | | | -| | | 05 01 | -| | | |-| -|2 | | | | -|2 |-| 6264 Z80 | | -|W | | -|A | | -|Y | | -| | | -| | | -| |-| -| | -| PAL | -| | -| | -| | -| | -| DSWC DSWB DSWA | -|----------------------------------------------------| -Notes: - Both Z80s running at 4.000MHz - 6264 - 8k x8 SRAM (DIP28) - * - socket not populated - -Bottom Board - -|----------------------------------------------------| -| 18.432MHz | -| | -| 2016 | -| | -| | -| | -| | -| 6148 |-| -|1 | | -|8 6148 | | -|W | | -|A | | -|Y 6148 | | -| | | -| 13 14 6148 | | -| |-| -| 11 12 6148 | -| | -| 09 10 6148 6148 | -| | -| 07 08 6148 | -| | -| 6148 | -|----------------------------------------------------| -Notes: - 2016 - 2k x8 SRAM (DIP24) - 6148 - 1k x4 SRAM (DIP18) - -*/ -ROM_START( colt ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "04.bin", 0x00000, 0x4000, CRC(dc61fdb2) SHA1(94fdd95082936b2445008aee60381ebe35385b4a) ) - ROM_LOAD( "03.bin", 0x04000, 0x4000, CRC(5835b8b1) SHA1(25a48660f8fb166f996133fb9113d1566dbae281) ) - ROM_LOAD( "02.bin", 0x10000, 0x4000, CRC(89c99a28) SHA1(1a4fdb5c13569699dfbf2bde0aeeb5e7fcc22ef9) ) - ROM_LOAD( "01.bin", 0x18000, 0x4000, CRC(9b0948f3) SHA1(a55e09243640ec56aa22e4b6d47165b02b880eb7) ) - ROM_COPY( REGION_CPU1, 0x10000, 0x014000, 0x04000 ) - ROM_COPY( REGION_CPU1, 0x18000, 0x01c000, 0x04000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "05.bin", 0x0000, 0x4000, CRC(2b6e017a) SHA1(60715e1c6fbcdd2c0e114035c342ba587dfc1b4b) ) - ROM_LOAD( "a50_06", 0x4000, 0x4000, CRC(450d6783) SHA1(e652bf83fb6bdd8152dbafb05bb695259c2619cc) ) - - ROM_REGION( 0x08000, REGION_USER1, ROMREGION_ERASE00 ) //empty - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "a50_15", 0x0000, 0x4000, CRC(f8a604e5) SHA1(8fae920fd09584b5e5ccd0db8b8934b393a23d50) ) - ROM_LOAD( "a50_16", 0x4000, 0x4000, CRC(fc24e11d) SHA1(ce1a1d7b809fa0f5f5e7a462047374b1b3f621c6) ) - - ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) - ROM_LOAD( "a50_07", 0x00000, 0x4000, CRC(b3b330cf) SHA1(8330e4831b8d0068c0367417db2e27fded7c56fe) ) - ROM_LOAD( "a50_09", 0x04000, 0x4000, CRC(22e2232e) SHA1(3b43114a5511b00e45cd67073c3f833fcf098fb6) ) - ROM_LOAD( "a50_11", 0x08000, 0x4000, CRC(2c04ad4f) SHA1(a6272f91f583d46dd4a3fe863482b39406c70e97) ) - ROM_LOAD( "a50_13", 0x0c000, 0x4000, CRC(9940e78d) SHA1(8607808e6ff76808ae155d671c3179bfe7d2639b) ) - ROM_LOAD( "08.bin", 0x10000, 0x4000, CRC(9c0689f3) SHA1(7cecabd03f4973ab97e9dde041fcc9220f7aa812) ) - ROM_LOAD( "a50_10", 0x14000, 0x4000, CRC(ce84dc5a) SHA1(8723310f3e25820ef7490c16759ebcb8354dde85) ) - ROM_LOAD( "a50_12", 0x18000, 0x4000, CRC(3fb4cfa3) SHA1(b1c5f7b0297c59dc93420d31e0ef2b1125dbb9db) ) - ROM_LOAD( "a50_14", 0x1c000, 0x4000, CRC(24b2f1bf) SHA1(4757aec2e4b99ce33d993ce1e19ee46a4eb76e86) ) -ROM_END - -static DRIVER_INIT(bronx) -{ - int i; - for(i=0;i<0x20000;i++) - memory_region(REGION_CPU1)[i]=BITSWAP8(memory_region(REGION_CPU1)[i],0,1,2,3,4,5,6,7); - nyc_gametype=1; -} - -static DRIVER_INIT(colt) -{ - int i; - for(i=0;i<0x20000;i++) - memory_region(REGION_CPU1)[i]=BITSWAP8(memory_region(REGION_CPU1)[i],0,1,2,3,4,5,6,7); - nyc_gametype=2; -} - -static DRIVER_INIT(nycaptor) -{ - nyc_gametype=0; -} - -static DRIVER_INIT(cyclshtg) -{ - nyc_gametype=1; -} - -GAME( 1985, nycaptor, 0, nycaptor, nycaptor, nycaptor, ROT0, "Taito", "N.Y. Captor", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1986, cyclshtg, 0, cyclshtg, cyclshtg, cyclshtg, ROT90, "Taito", "Cycle Shooting", GAME_NOT_WORKING) -//bootlegs -GAME( 1986, bronx, cyclshtg, bronx, cyclshtg, bronx, ROT90, "bootleg", "Bronx",GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND) -GAME( 1986, colt , nycaptor, bronx, nycaptor, colt, ROT0, "bootleg", "Colt",GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND|GAME_WRONG_COLORS) diff --git a/src/drivers/nyny.c b/src/drivers/nyny.c deleted file mode 100644 index 5efde2661..000000000 --- a/src/drivers/nyny.c +++ /dev/null @@ -1,471 +0,0 @@ -/**** - -New York, New York (c) 1980 Sigma - - -memory map main cpu (m6809) - -fedcba98 --------- -000xxxxx we1 $0000 8k (bitmap) -100xxxxx we1 $8000 8k (ram) - -010xxxxx we2 $4000 8k (bitmap) -110xxxxx we2 $C000 8k (ram) - -001xxxxx we3 $2000 16k x 3bits (colour) - -011xxxxx we4 $6000 16k x 3bits (colour) - -10100000 SRAM $A000 -10100001 CRTC $A100 -10100010 PIA $A200 -10100011 SOUND $A300 one latch for read one for write same address - -10101xxx ROM7 $A800 -10110xxx ROM6 $B000 -10111xxx ROM5 $B800 - -11100xxx ROM4 $E000 -11101xxx ROM3 $E800 -11110xxx ROM2 $F000 -11111xxx ROM1 $F800 - -****/ - -#include "driver.h" -#include "machine/6821pia.h" -#include "vidhrdw/crtc6845.h" -#include "cpu/m6800/m6800.h" -#include "cpu/m6809/m6809.h" -#include "sound/ay8910.h" -#include "sound/dac.h" - -PALETTE_INIT( nyny ); -VIDEO_UPDATE( nyny ); -VIDEO_START( nyny ); - -unsigned char *nyny_videoram ; -unsigned char *nyny_colourram ; - - -static unsigned char pia1_ca1 = 0 ; -static unsigned char dac_volume = 0 ; -static unsigned char dac_enable = 0 ; - -READ8_HANDLER( nyny_videoram0_r ); -WRITE8_HANDLER( nyny_videoram0_w ); -READ8_HANDLER( nyny_videoram1_r ); -WRITE8_HANDLER( nyny_videoram1_w ); - -READ8_HANDLER( nyny_colourram0_r ); -WRITE8_HANDLER( nyny_colourram0_w ); -READ8_HANDLER( nyny_colourram1_r ); -WRITE8_HANDLER( nyny_colourram1_w ); -WRITE8_HANDLER( nyny_flipscreen_w ) ; - - - -INTERRUPT_GEN( nyny_interrupt ) -{ - /* this is not accurate */ - /* pia1_ca1 should be toggled by output of LS123 */ - pia1_ca1 ^= 0x80 ; - - /* update for coin irq */ - pia_0_ca1_w(0,input_port_5_r(0)&0x01); - pia_0_ca2_w(0,input_port_6_r(0)&0x01); - - cpunum_set_input_line(0, 0, HOLD_LINE); -} - -/*************************************************************************** - 6821 PIA handlers -***************************************************************************/ - -static void cpu0_irq(int state) -{ - cpunum_set_input_line(0,M6809_IRQ_LINE,state ? ASSERT_LINE : CLEAR_LINE); -} - - -static READ8_HANDLER( pia1_ca1_r ) -{ - return pia1_ca1; -} - - -static WRITE8_HANDLER( pia1_porta_w ) -{ - /* bits 0-7 control a timer (low 8 bits) - is this for a starfield? */ -} - -static WRITE8_HANDLER( pia1_portb_w ) -{ - /* bits 0-3 control a timer (high 4 bits) - is this for a starfield? */ - /* bit 4 enables the starfield? */ - - /* bits 5-7 go to the music board */ - soundlatch2_w(0,(data & 0x60) >> 5); - cpunum_set_input_line(2,M6802_IRQ_LINE,(data & 0x80) ? CLEAR_LINE : ASSERT_LINE); -} - -static const pia6821_interface pia0_intf = -{ - /*inputs : A/B,CA/B1,CA/B2 */ input_port_0_r, input_port_1_r, input_port_5_r, 0, input_port_6_r, 0, - /*outputs: A/B,CA/B2 */ 0, 0, 0, 0, - /*irqs : A/B */ cpu0_irq, 0 -}; - -static const pia6821_interface pia1_intf = -{ - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, pia1_ca1_r, 0, 0, 0, - /*outputs: A/B,CA/B2 */ pia1_porta_w, pia1_portb_w, nyny_flipscreen_w, 0, - /*irqs : A/B */ 0, 0 -}; - -MACHINE_START( nyny ) -{ - pia_config(0, PIA_STANDARD_ORDERING, &pia0_intf); - pia_config(1, PIA_ALTERNATE_ORDERING, &pia1_intf); - return 0; -} - -MACHINE_RESET( nyny ) -{ - pia_reset(); -} - - - -WRITE8_HANDLER( ay8910_porta_w ) -{ - /* dac sounds like crap most likely bad implementation */ - dac_volume = data ; - DAC_1_data_w( 0, dac_enable * dac_volume ) ; -} - -WRITE8_HANDLER( ay8910_portb_w ) -{ - int v = (data & 7) << 5 ; - DAC_0_data_w( 0, v ) ; - - dac_enable = ( data & 8 ) >> 3 ; - DAC_1_data_w( 0, dac_enable * dac_volume ) ; -} - -static WRITE8_HANDLER( shared_w_irq ) -{ - soundlatch_w(0,data); - cpunum_set_input_line(1,M6802_IRQ_LINE,HOLD_LINE); -} - - -static unsigned char snd_w = 0; - -static READ8_HANDLER( snd_answer_r ) -{ - return snd_w; -} - -static WRITE8_HANDLER( snd_answer_w ) -{ - snd_w = data; -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(nyny_videoram0_r) // WE1 8k - AM_RANGE(0x2000, 0x3fff) AM_READ(nyny_colourram0_r) // WE3 - AM_RANGE(0x4000, 0x5fff) AM_READ(nyny_videoram1_r) // WE2 - AM_RANGE(0x6000, 0x7fff) AM_READ(nyny_colourram1_r) // WE4 - AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_RAM) // WE1 8k - AM_RANGE(0xa000, 0xa007) AM_READ(MRA8_RAM) // SRAM - AM_RANGE(0xa204, 0xa207) AM_READ(pia_0_r) - AM_RANGE(0xa208, 0xa20b) AM_READ(pia_1_r) - AM_RANGE(0xa300, 0xa300) AM_READ(snd_answer_r) - AM_RANGE(0xa800, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) // WE2 - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(nyny_videoram0_w) // WE1 - AM_RANGE(0x2000, 0x3fff) AM_WRITE(nyny_colourram0_w) // WE3 - AM_RANGE(0x4000, 0x5fff) AM_WRITE(nyny_videoram1_w) // WE2 - AM_RANGE(0x6000, 0x7fff) AM_WRITE(nyny_colourram1_w) // WE4 - AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_RAM) // WE1 - AM_RANGE(0xa000, 0xa007) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) // SRAM (coin counter, shown when holding F2) - AM_RANGE(0xa204, 0xa207) AM_WRITE(pia_0_w) - AM_RANGE(0xa208, 0xa20b) AM_WRITE(pia_1_w) - AM_RANGE(0xa300, 0xa300) AM_WRITE(shared_w_irq) - AM_RANGE(0xa100, 0xa100) AM_WRITE(crtc6845_address_w) - AM_RANGE(0xa101, 0xa101) AM_WRITE(crtc6845_register_w) - AM_RANGE(0xa800, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) // WE2 - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x9001, 0x9001) AM_READ(soundlatch_r) - AM_RANGE(0xa000, 0xa001) AM_READ(input_port_4_r) - AM_RANGE(0xb000, 0xb000) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0xb002, 0xb002) AM_READ(AY8910_read_port_1_r) - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9001, 0x9001) AM_WRITE(snd_answer_w) - AM_RANGE(0xb000, 0xb000) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xb002, 0xb002) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0xb003, 0xb003) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xd000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch2_r) - AM_RANGE(0xa000, 0xa000) AM_READ(AY8910_read_port_2_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_WRITE(AY8910_write_port_2_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(AY8910_control_port_2_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( nyny ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) /* PIA0 PA0 */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* PIA0 PA1 */ - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_HIGH) /* PIA0 PA2 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* PIA0 PA3 */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL /* PIA0 PA4 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) /* PIA0 PA5 */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) /* PIA0 PA6 */ - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL /* PIA0 PB0 */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL /* PIA0 PB1 */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY /* PIA0 PB2 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY /* PIA0 PB3 */ - - PORT_START_TAG("SW1") /* port 2*/ - PORT_DIPNAME( 0x03, 0x03, "Bombs from UFO (scr 3+)" ) - PORT_DIPSETTING( 0x03, "9" ) - PORT_DIPSETTING( 0x02, "12" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x04, 0x04, "Bombs from UFO (scr 1-2)" ) - PORT_DIPSETTING( 0x04, "6" ) - PORT_DIPSETTING( 0x00, "9" ) - PORT_DIPNAME( 0x80, 0x80, "Voice Volume" ) - PORT_DIPSETTING( 0x80, DEF_STR( High ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) - - PORT_START_TAG("SW2") /* port 3*/ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "No Replays" ) - PORT_DIPSETTING( 0x10, "5000 Points" ) - PORT_DIPSETTING( 0x00, "10000 Points" ) - PORT_DIPSETTING( 0x08, "15000 Points" ) - PORT_DIPNAME( 0x40, 0x40, "Extra Missile Base") - PORT_DIPSETTING( 0x00, "3000 Points" ) - PORT_DIPSETTING( 0x40, "5000 Points" ) - PORT_DIPNAME( 0x80, 0x80, "Extra Missile Mode" ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - PORT_DIPSETTING( 0x00, "No Extra Base" ) - - PORT_START_TAG("SW3") /* port 4*/ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x1c, 0x00, "Vertical Screen Position" ) - PORT_DIPSETTING( 0x00, "Neutral" ) - PORT_DIPSETTING( 0x04, "+1" ) - PORT_DIPSETTING( 0x08, "+2" ) - PORT_DIPSETTING( 0x0c, "+3" ) - PORT_DIPSETTING( 0x1c, "-1" ) - PORT_DIPSETTING( 0x18, "-2" ) - PORT_DIPSETTING( 0x14, "-3" ) - PORT_DIPNAME( 0xe0, 0x00, "Horizontal Screen Position" ) - PORT_DIPSETTING( 0x00, "Neutral" ) - PORT_DIPSETTING( 0x60, "+1" ) - PORT_DIPSETTING( 0x40, "+2" ) - PORT_DIPSETTING( 0x20, "+3" ) - PORT_DIPSETTING( 0xe0, "-1" ) - PORT_DIPSETTING( 0xc0, "-2" ) - PORT_DIPSETTING( 0xa0, "-3" ) - -/* PORT_START_TAG("CA1") Connected to PIA1 CA1 input - port 5 - PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START_TAG("CA2") Connected to PIA1 CA2 input - port 6 - PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_SERVICE1 ) */ -INPUT_PORTS_END - - - -static struct AY8910interface ay8910_interface_1 = -{ - 0, - 0, - ay8910_porta_w, - ay8910_portb_w -}; - -static struct AY8910interface ay8910_interface_2 = -{ - input_port_2_r, - input_port_3_r -}; - - - -static MACHINE_DRIVER_START( nyny ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 1400000) /* 1.40 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(nyny_interrupt,2) /* game doesn't use video based irqs it's polling based */ - - MDRV_CPU_ADD(M6802,4000000/4) /* 1 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_CPU_ADD(M6802,4000000/4) /* 1 MHz */ - MDRV_CPU_PROGRAM_MAP(sound2_readmem,sound2_writemem) - - MDRV_SCREEN_REFRESH_RATE(50) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(nyny) - MDRV_MACHINE_RESET(nyny) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 4, 251) /* visible_area - just a guess */ - MDRV_PALETTE_LENGTH(8) - - MDRV_PALETTE_INIT(nyny) - MDRV_VIDEO_START(nyny) - MDRV_VIDEO_UPDATE(nyny) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.03) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -/*************************************************************************** - Game driver(s) -***************************************************************************/ - - -ROM_START( nyny ) - ROM_REGION(0x10000, REGION_CPU1, 0) /* 64k for code for the first CPU (Video) */ - ROM_LOAD( "nyny01s.100", 0xa800, 0x800, CRC(a2b76eca) SHA1(e46717e6ad330be4c4e7d9fab4f055f89aa31bcc) ) - ROM_LOAD( "nyny02s.099", 0xb000, 0x800, CRC(ef2d4dae) SHA1(718c0ecf7770a780aebb1dc8bf4ca86ea0a5ea28) ) - ROM_LOAD( "nyny03s.098", 0xb800, 0x800, CRC(2734c229) SHA1(b028d057d26838bae50b8ddb90a3755b5315b4ee) ) - ROM_LOAD( "nyny04s.097", 0xe000, 0x800, CRC(bd94087f) SHA1(02dde604bb84097fcd95c434847c55198b4e4309) ) - ROM_LOAD( "nyny05s.096", 0xe800, 0x800, CRC(248b22c4) SHA1(d64d89bf78fa19d36e02720c296a60621ab8fe21) ) - ROM_LOAD( "nyny06s.095", 0xf000, 0x800, CRC(8c073052) SHA1(0ce103ac0e79124ac9f1e097dda1a0664b92b89b) ) - ROM_LOAD( "nyny07s.094", 0xf800, 0x800, CRC(d49d7429) SHA1(c12eaae7ba0b1d44c45a584232db03c5731c046a) ) - - ROM_REGION(0x10000, REGION_CPU2, 0) /* 64k for code for the second CPU (sound) */ - ROM_LOAD( "nyny08.093", 0xd000, 0x800, CRC(19ddb6c3) SHA1(0097fad542f9a33849565093c2fb106d90007b1a) ) - ROM_RELOAD( 0xd800, 0x800 ) /* needed high bit not wired */ - ROM_LOAD( "nyny09.092", 0xe000, 0x800, CRC(a359c6f1) SHA1(1bc7b487581399908c3cec823733810fb6d944ce) ) - ROM_RELOAD( 0xe800, 0x800 ) - ROM_LOAD( "nyny10.091", 0xf000, 0x800, CRC(a72a70fa) SHA1(deed7dec9cc43fa1d6c4854ba18169c894c9a2f0) ) - ROM_RELOAD( 0xf800, 0x800 ) - - ROM_REGION(0x10000, REGION_CPU3, 0) /* 64k for code for the third CPU (sound) */ - ROM_LOAD( "nyny11.snd", 0xf800, 0x800, CRC(650450fc) SHA1(214693df394ca05eff5dbe1e800107d326ba80f6) ) -ROM_END - -ROM_START( nynyg ) - ROM_REGION(0x10000, REGION_CPU1, 0) /* 64k for code for the first CPU (Video) */ - ROM_LOAD( "gny1.cpu", 0xa800, 0x800, CRC(fb5b8f17) SHA1(2202325451dfd4e7c16cba93f0fade46929ffa72) ) - ROM_LOAD( "gny2.cpu", 0xb000, 0x800, CRC(d248dd93) SHA1(0c4579698f8917332041c08af6902b8f8acd7d62) ) - ROM_LOAD( "gny3.cpu", 0xb800, 0x800, CRC(223a9d09) SHA1(c2b12270d375587489208d6a1b37a4e3ec87bc20) ) - ROM_LOAD( "gny4.cpu", 0xe000, 0x800, CRC(7964ec1f) SHA1(dba3dc2e928fb3fc04a9dca12951343669a4ecbe) ) - ROM_LOAD( "gny5.cpu", 0xe800, 0x800, CRC(4799dcfc) SHA1(13dcc4a58a029c14a4e9acd0bf584c71d5302c03) ) - ROM_LOAD( "gny6.cpu", 0xf000, 0x800, CRC(4839d4d2) SHA1(cfd6f2f252ee2f6a4d881496a017c02d7dd77944) ) - ROM_LOAD( "gny7.cpu", 0xf800, 0x800, CRC(b7564c5b) SHA1(e1d8fe7f37aa7aa98f18c538fe6e688675cc2de1) ) - - ROM_REGION(0x10000, REGION_CPU2, 0) /* 64k for code for the second CPU (sound) */ - ROM_LOAD( "gny8.cpu", 0xd000, 0x800, CRC(e0bf7d00) SHA1(7afca3affa413179f4f59ce2cad89525cfa5efbc) ) - ROM_RELOAD( 0xd800, 0x800 ) /* reload needed high bit not wired */ - ROM_LOAD( "gny9.cpu", 0xe000, 0x800, CRC(639bc81a) SHA1(91819d49099e438ac8c70920a787aeaed3ed82e9) ) - ROM_RELOAD( 0xe800, 0x800 ) - ROM_LOAD( "gny10.cpu", 0xf000, 0x800, CRC(73764021) SHA1(bb2f62130142487afbd8d2540e2d4fe5bb67c4ee) ) - ROM_RELOAD( 0xf800, 0x800 ) - - ROM_REGION(0x10000, REGION_CPU3, 0) /* 64k for code for the third CPU (sound) */ - /* The original dump of this ROM was bad [FIXED BITS (x1xxxxxx)] */ - /* Since what's left is identical to the Sigma version, I'm assuming it's the same. */ - ROM_LOAD( "nyny11.snd", 0xf800, 0x800, CRC(650450fc) SHA1(214693df394ca05eff5dbe1e800107d326ba80f6) ) -ROM_END - -ROM_START( arcadia ) - ROM_REGION(0x10000, REGION_CPU1, 0) /* 64k for code for the first CPU (Video) */ - ROM_LOAD( "ar-01", 0xa800, 0x800, CRC(7b7e8f27) SHA1(2bb1d07d87ad5b952de9460c840d7e8b59ed1b4a) ) - ROM_LOAD( "ar-02", 0xb000, 0x800, CRC(81d9e172) SHA1(4279582f1edf54f0974fa277565d8ade6d9faa50) ) - ROM_LOAD( "ar-03", 0xb800, 0x800, CRC(2c5feb05) SHA1(6f8952e7744ba7d7b8b345d67f546b504f7a3b30) ) - ROM_LOAD( "ar-04", 0xe000, 0x800, CRC(66fcbd7f) SHA1(7b8c09593b7d0d25cbe0b28097d58772c32f13bb) ) - ROM_LOAD( "ar-05", 0xe800, 0x800, CRC(b2320e20) SHA1(977afc2d26ef500eff4499e6bc61f14314b19130) ) - ROM_LOAD( "ar-06", 0xf000, 0x800, CRC(27b79cc0) SHA1(2c5c3a9a09069751c5e9c23d0840ee4996006c0b) ) - ROM_LOAD( "ar-07", 0xf800, 0x800, CRC(be77a477) SHA1(817c069855634dd844f0068d64bfbf1862980d6b) ) - - ROM_REGION(0x10000, REGION_CPU2, 0) /* 64k for code for the second CPU (sound) */ - ROM_LOAD( "ar-08", 0xd000, 0x800, CRC(38569b25) SHA1(887a9afaa65d0961097f7fb5f1ae390d40e9c164) ) - ROM_RELOAD( 0xd800, 0x800 ) /* needed high bit not wired */ - ROM_LOAD( "nyny09.092", 0xe000, 0x800, CRC(a359c6f1) SHA1(1bc7b487581399908c3cec823733810fb6d944ce) ) - ROM_RELOAD( 0xe800, 0x800 ) - ROM_LOAD( "nyny10.091", 0xf000, 0x800, CRC(a72a70fa) SHA1(deed7dec9cc43fa1d6c4854ba18169c894c9a2f0) ) - ROM_RELOAD( 0xf800, 0x800 ) - - ROM_REGION(0x10000, REGION_CPU3, 0) /* 64k for code for the third CPU (sound) */ - ROM_LOAD( "ar-11", 0xf800, 0x800, CRC(208f4488) SHA1(533f8942e1c964cc88253e9dc4ec711f77607e4c) ) -ROM_END - - -GAME( 1980, nyny, 0, nyny, nyny, 0, ROT270, "Sigma Enterprises Inc.", "New York New York", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1980, nynyg, nyny, nyny, nyny, 0, ROT270, "Sigma Enterprises Inc. (Gottlieb license)", "New York New York (Gottlieb)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1980, arcadia, nyny, nyny, nyny, 0, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/othunder.c b/src/drivers/othunder.c deleted file mode 100644 index 67bbf020d..000000000 --- a/src/drivers/othunder.c +++ /dev/null @@ -1,912 +0,0 @@ -/*************************************************************************** - -Operation Thunderbolt (Taito) ---------------------- - -David Graves - -(this is based on the F2 driver by Bryan McPhail, Brad Oliver, Andrew Prime, -Nicola Salmoria. Thanks to Richard Bush and the Raine team, whose open -source was very helpful in many areas particularly the sprites.) - - ***** - -Operation Thunderbolt -Taito, 1988 - -PCB Layout ----------- - -K1100381A -J1100166A MAIN PCB -|-----------------------------------------------------------------------| -| VOL VOL YM3016 B67-13.40 16MHz 24MHz | -| |------| PAL | -| |TAITO | Z80 | -| |TC0140| 6264 26.686MHz 6116 6116 | -| |SYT | 6116 6116 | -| |------| YM2610 6116 6116 | -| ADC0808 B67-08.67 6116 6116 | -| B67-07.44 |------| | -|J B67-06.66 |TAITO | |------| | -|A |------| |TC0020| |TAITO | | -|M |TAITO | 62256 62256 |VAR | |TC0050| | -|M |TC0220| |------| |------| |VDZ | | -|A |IOC | |TAITO | |------| | -| |------| |TC0100| 6116 6116 | -| |SCN | |------| | -| DSWA DSWB |------| B67-05.43 |TAITO | | -| |TC0050| | -| |------| |VDZ | | -| |------| B67-23.64 |TAITO | |----| |------| B67-04.4 | -| |TAITO | |TC0320| | 6 | | -| 555 |TC0110| B67-20.63 |OBR | | 8 | PAL |------| B67-03.3 | -| |PCR | |------| | 0 | |TAITO | | -| |------| B67-15.62 62256 | 0 | PAL |TC0050| B67-02.2 | -| | 0 | |VDZ | | -| 6264 B67-14.61 62256 |----| PAL |------| B67-01.1 | -|-----------------------------------------------------------------------| -Notes: - 68000 running at 12.000MHz [24/2] - Z80 running at 4.000MHz [24/6] - YM2610 running at 8.000MHz [16/2] - Taito Custom ICs - - TC0220IOC - TC0110PCR - TC0140SYT - TC0100SCN - TC0320OBR - TC0020VAR - TC0050VDZ (x3) - - -Operation Thunderbolt operates on hardware very similar to the Taito Z -system, in particular the game Spacegun. The lightgun hardware in these -two (as well as the eerom and calibration process) looks identical. - -The game has 4 separate layers of graphics - one 64x64 tiled scrolling -background plane of 8x8 tiles, a similar foreground plane, a sprite plane, -and a text plane with character definitions held in ram. - -The sprites are 16x8 tiles aggregated through a spritemap rom into 64x64 -zoomable sprites. - -The main difference is that Operation Thunderbolt uses only a single 68000 -CPU, whereas Spacegun has twin 68Ks. (Operation Thunderbolt has a Z80 -taking over sound duties, which Spacegun doesn't.) - - -custom ICs ----------- -TC0020VAR sprites?? -TC0050VDZ x3 sprites?? -TC0070RGB video DAC -TC0100SCN tilemaps -TC0110PCR palette -TC0140SYT main/sub CPU interface + sub cpu address decoder and I/O interface -TC0220IOC I/O interface -TC0310FAM x2 sound volume and panning -TC0320OBR sprites - - -memory map ----------- -68000: - -The address decoding is done by two PALs (IC37 and IC33). Part of the decoding, -and also interrupt control, is done by another PAL (IC36). Luckily this time, -the PALs HAVE been read, so the memory map is accurate :) - -Address Dir Data Name Description ------------------------- --- ---------------- --------- ----------------------- -000000xxxxxxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx TROM0 program ROM -000001xxxxxxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx TROM1 program ROM -00001000xxxxxxxxxxxxxxxx R/W xxxxxxxxxxxxxxxx TRAMH work RAM -00001001-----------xxxx- R/W --------xxxxxxxx II/O TC0220IOC -0001-----------------xxx R/W xxxxxxxxxxxxxxxx CLCS TC0110PCR -0010--xxxxxxxxxxxxxxxxxx R/W xxxxxxxxxxxxxxxx SCCS TC0100SCN -0011------------------xx R/W ------------xxxx SSCS TC0140SYT -0100---------xxxxxxxxxxx R/W xxxxxxxxxxxxxxxx OBCS TC0320OBR -0101----------------xxx- R/W --------xxxxxxxx A/DOE ADC0808 A/D converter (for lightgun) -0110----------------000- W ---------------- IRQ5 acknowledge (automatically enabled on reset) -0110----------------001- W ---------------- 6PR IRQ6 acknowledge (automatically enabled on reset) -0110----------------010- W ---------------- n.c. -0110----------------011- W ---------------- n.c. -0110----------------100- W ---------------- n.c. -0110----------------101- W ---------------- n.c. -0110----------------110- W ---------------- n.c. -0110----------------111- W ---------------- n.c. - - -Z80: - -all of the address decoding is done by the TC0140SYT, which uses address bits -A0 and A9-A15, and data bits D0-D3. - -Address Dir Data Name Description ----------------- --- -------- ----------- ----------------------- -00xxxxxxxxxxxxxx R xxxxxxxx ROM program ROM (TC0140SYT ROMCS0 pin) -01xxxxxxxxxxxxxx R xxxxxxxx ROM program ROM (banked) (TC0140SYT ROMCS0, ROMA14 and ROMA15 pins) -110xxxxxxxxxxxxx R/W xxxxxxxx SRAM work RAM (TC0140SYT RAMCS pin) -1110000-------xx R/W xxxxxxxx OP_T YM2610 (TC0140SYT OPX pin) -1110001--------x R/W ----xxxx TC0140SYT control -1110010-------00 W ---xxxxx CH1_VOLR_CT TC0310FAM #1 CS2 (TC0140SYT CSA pin) -1110010-------01 W ---xxxxx CH1_VOLF_CT TC0310FAM #1 CS1 (TC0140SYT CSA pin) -1110010-------10 W ---xxxxx CH2_VOLR_CT TC0310FAM #2 CS2 (TC0140SYT CSA pin) -1110010-------11 W ---xxxxx CH2_VOLF_CT TC0310FAM #2 CS1 (TC0140SYT CSA pin) -1110011--------- W ?? -1110100--------- -1110101--------- R -------x ROTARY 1 TC0140SYT I/OA0 pin -1110101--------- R ------x- ROTARY 2 TC0140SYT I/OA1 pin -1110101--------- R -----x-- ROTARY 3 TC0140SYT I/OA2 pin -1110110--------- -1110111--------- W ?? -1111000--------- W ?? -1111001--------- W ----xxxx TC0140SYT ROM bankswitch - - - -Notes: ------- -- The game checks an external input called ROTARY in the schematics, not - mentioned in the manual. The ROTARY input controls the separation between - left and right players, the game adjusts the values written to the external - volume controller depending on it. - Possible values are: 111 (max) 011 (high) -01 (med) --0 (low). It's a - rotary control so only one bit is supposed to be low. - -- The keyboard leds I'm turning on are actually the gun solenoid outputs, which - would rattle the gun while firing. - -- The newer US set has a dip switch option to continue with only one coin even - if coinage is set higher. I don't know if this is the only difference with the - older set. - - -TODO: ------ - -- With the correct clock speed of 12MHz for the 68000, garbage graphics remain - over the Taito logo on startup. This seems to be a bug in the original which - would have no effect if our timing was 100% right. The interrupt handling - should be quite correct, it's derived straight from the schematics and PAL - dump. - The current workaround is to make the 68000 run at 13MHz. Lowering below - 12MHz would work as well, and possibly be closer to the real reason (wait - states slowing the CPU down?) - -- The "FIRE!" arrows pointing to padlocks are not in perfect sync with the - background scrolling. Should they? - -- The quality of the zoomed sprites could probably be better. Drawing them as - made by 16x8 tiles loses precision due to limitations of drawgfxzoom(). - -- Schematics show a OBPRI output to control sprite priority. This doesn't seem - to be used however, and isn't hooked up. See othunder_TC0220IOC_w(). - -- TC0100SCN problem: text vs. bg0/1 offsets are wrong: first level - wants bg0 4 further right. Cut screens (all?) want bg0 4 pixels - further left. But the bg0 x scroll value is zero in both cases! - (and the code setting it is a CLR, so there's no doubt it's meant - to be). - There are no set bits in the TC0100SCN ctrl regs which might be - causing this. So I'm mystified. (Maybe it's related to game being - ORIENTATION_FLIP_X ??) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2610intf.h" -#include "sound/flt_vol.h" - -VIDEO_START( othunder ); -VIDEO_UPDATE( othunder ); - -extern UINT16 *othunder_ram; - - -/*********************************************************** - INTERRUPTS -***********************************************************/ - -static int vblank_irq, ad_irq, last_irq_level; - -static MACHINE_RESET( othunder ) -{ - vblank_irq = 0; - ad_irq = 0; - last_irq_level = 0; -} - -static void update_irq(void) -{ - int curr_level; - - if (ad_irq) - curr_level = 6; - else if (vblank_irq) - curr_level = 5; - else - curr_level = 0; - - if (curr_level != last_irq_level) - { - cpunum_set_input_line(0,curr_level,curr_level ? ASSERT_LINE : CLEAR_LINE); - last_irq_level = curr_level; - } -} - -static WRITE16_HANDLER( irq_ack_w ) -{ - switch (offset) - { - case 0: - vblank_irq = 0; - break; - - case 1: - ad_irq = 0; - break; - } - - update_irq(); -} - -static INTERRUPT_GEN( vblank_interrupt ) -{ - vblank_irq = 1; - update_irq(); -} - -static void ad_interrupt(int x) -{ - ad_irq = 1; - update_irq(); -} - - -/****************************************************************** - EEPROM - -This is an earlier version of the eeprom used in some TaitoB games. -The eeprom unlock command is different, and the write/clock/reset -bits are different. -******************************************************************/ - -static UINT8 default_eeprom[128]= -{ - 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0, - 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0, - 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00, - 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00, - 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff -}; - -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* lock command */ - "0100111111" /* unlock command */ -}; - -static NVRAM_HANDLER( othunder ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,128); /* Default the gun setup values */ - } -} - -static int eeprom_r(void) -{ - return (EEPROM_read_bit() & 0x01)<<7; -} - - -static WRITE16_HANDLER( othunder_TC0220IOC_w ) -{ - if (ACCESSING_LSB) - { - switch (offset) - { - case 0x03: - -/* 0000000x SOL-1 (gun solenoid) - 000000x0 SOL-2 (gun solenoid) - 00000x00 OBPRI (sprite priority) - 0000x000 (unused) - 000x0000 eeprom reset (active low) - 00x00000 eeprom clock - 0x000000 eeprom in data - x0000000 eeprom out data */ - - set_led_status(0, data & 1); - set_led_status(1, data & 2); - -if (data & 4) - popmessage("OBPRI SET!"); - - EEPROM_write_bit(data & 0x40); - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - break; - - default: - TC0220IOC_w(offset,data & 0xff); - } - } -} - - -/********************************************************** - GAME INPUTS -**********************************************************/ - -static READ16_HANDLER( othunder_TC0220IOC_r ) -{ - switch (offset) - { - case 0x03: - return eeprom_r(); - - default: - return TC0220IOC_r( offset ); - } -} - -static READ16_HANDLER( othunder_lightgun_r ) -{ - switch (offset) - { - case 0x00: - return input_port_5_word_r(0,mem_mask); /* P1X */ - - case 0x01: - return input_port_6_word_r(0,mem_mask); /* P1Y */ - - case 0x02: - return input_port_7_word_r(0,mem_mask); /* P2X */ - - case 0x03: - return input_port_8_word_r(0,mem_mask); /* P2Y */ - } - -//logerror("CPU #0 lightgun_r offset %06x: warning - read unmapped memory address %06x\n",activecpu_get_pc(),offset); - - return 0x0; -} - -static WRITE16_HANDLER( othunder_lightgun_w ) -{ - /* A write starts the A/D conversion. An interrupt will be triggered when - the conversion is complete. - The ADC60808 clock is 512kHz. Conversion takes between 0 and 8 clock - cycles, so would end in a maximum of 15.625us. We'll use 10. */ - - timer_set(TIME_IN_USEC(10),0, ad_interrupt); -} - - -/***************************************** - SOUND -*****************************************/ - -static INT32 banknum = -1; - -static void reset_sound_region(void) -{ - memory_set_bankptr( 10, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 ); -} - -static MACHINE_START( othunder ) -{ - state_save_register_global(banknum); - state_save_register_func_postload(reset_sound_region); - return 0; -} - - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = (data - 1) & 7; - reset_sound_region(); -} - -static WRITE16_HANDLER( othunder_sound_w ) -{ - if (offset == 0) - taitosound_port_w (0, data & 0xff); - else if (offset == 1) - taitosound_comm_w (0, data & 0xff); -} - -static READ16_HANDLER( othunder_sound_r ) -{ - if (offset == 1) - return ((taitosound_comm_r (0) & 0xff)); - else return 0; -} - -static WRITE8_HANDLER( othunder_TC0310FAM_w ) -{ - /* there are two TC0310FAM, one for CH1 and one for CH2 from the YM2610. The - PSG output is routed to both chips. */ - static int pan[4]; - int voll,volr; - - pan[offset] = data & 0x1f; - - /* PSG output (single ANALOG OUT pin on the YM2610, but we have three channels - because we are using the AY-3-8910 emulation. */ - volr = (pan[0] + pan[2]) * 100 / (2 * 0x1f); - voll = (pan[1] + pan[3]) * 100 / (2 * 0x1f); - flt_volume_set_volume(0, voll / 100.0); - flt_volume_set_volume(1, volr / 100.0); - - /* CH1 */ - volr = pan[0] * 100 / 0x1f; - voll = pan[1] * 100 / 0x1f; - flt_volume_set_volume(2, voll / 100.0); - flt_volume_set_volume(3, volr / 100.0); - - /* CH2 */ - volr = pan[2] * 100 / 0x1f; - voll = pan[3] * 100 / 0x1f; - flt_volume_set_volume(4, voll / 100.0); - flt_volume_set_volume(5, volr / 100.0); -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( othunder_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE(&othunder_ram) - AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_TC0220IOC_r, othunder_TC0220IOC_w) -// AM_RANGE(0x090006, 0x090007) AM_WRITE(eeprom_w) -// AM_RANGE(0x09000c, 0x09000d) AM_WRITE(MWA16_NOP) /* ?? (keeps writing 0x77) */ - AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w) /* palette */ - AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x300000, 0x300003) AM_READWRITE(othunder_sound_r, othunder_sound_w) - AM_RANGE(0x400000, 0x4005ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x500000, 0x500007) AM_READWRITE(othunder_lightgun_r, othunder_lightgun_w) - AM_RANGE(0x600000, 0x600003) AM_WRITE(irq_ack_w) -ADDRESS_MAP_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10) - AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_READWRITE(YM2610_read_port_0_r, YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_READWRITE(MRA8_NOP, taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */ - AM_RANGE(0xe600, 0xe600) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xea00, 0xea00) AM_READ(input_port_9_r) /* rotary input */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - -INPUT_PORTS_START( othundrj ) - PORT_START_TAG( "DSWA" ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - - PORT_START_TAG( "DSWB" ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Magazines/Rockets" ) - PORT_DIPSETTING( 0x0c, "5/3" ) - PORT_DIPSETTING( 0x08, "6/4" ) - PORT_DIPSETTING( 0x04, "7/5" ) - PORT_DIPSETTING( 0x00, "8/6" ) - PORT_DIPNAME( 0x30, 0x30, "Bullets per Magazine" ) - PORT_DIPSETTING( 0x00, "30" ) - PORT_DIPSETTING( 0x10, "35" ) - PORT_DIPSETTING( 0x30, "40" ) - PORT_DIPSETTING( 0x20, "50" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN1, unused */ - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* speed of 13 is compromise between moving aim around screen fast - enough and being accurate enough not to miss targets. 20 is too - inaccurate, and 10 is too slow. */ - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_REVERSE PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, -0.057, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_REVERSE PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, -0.057, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_PLAYER(2) - - PORT_START /* fake for rotary volume control */ - PORT_DIPNAME( 0x07, 0x07, "Stereo Separation" ) - PORT_DIPSETTING( 0x07, "Maximum" ) - PORT_DIPSETTING( 0x03, DEF_STR( High ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( othunder ) - PORT_INCLUDE( othundrj ) - - PORT_MODIFY( "DSWA" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( othundu ) - PORT_INCLUDE( othundrj ) - - PORT_MODIFY( "DSWB" ) - PORT_DIPNAME( 0x40, 0x40, "Discounted Continue" ) // e.g. 2 coins to start 1 to continue - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -/*********************************************************** - GFX DECODING -***********************************************************/ - -static const gfx_layout tile16x8_layout = -{ - 16,8, - RGN_FRAC(1,1), - 4, - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_decode othunder_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tile16x8_layout, 0, 256 }, /* sprite parts */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - - - -/************************************************************** - YM2610 (SOUND) -**************************************************************/ - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_DRIVER_START( othunder ) - - /* basic machine hardware */ -// MDRV_CPU_ADD(M68000, 24000000/2 ) /* 12 MHz */ - MDRV_CPU_ADD(M68000, 13000000 ) /* fixes garbage graphics on startup */ - MDRV_CPU_PROGRAM_MAP(othunder_map,0) - MDRV_CPU_VBLANK_INT(vblank_interrupt,1) - - MDRV_CPU_ADD(Z80,16000000/4 ) /* 4 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(z80_sound_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(othunder) - MDRV_MACHINE_START(othunder) - MDRV_MACHINE_RESET(othunder) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(othunder_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(othunder) - MDRV_VIDEO_UPDATE(othunder) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "2610.0l", 0.25) - MDRV_SOUND_ROUTE(0, "2610.0r", 0.25) - MDRV_SOUND_ROUTE(1, "2610.1l", 1.0) - MDRV_SOUND_ROUTE(1, "2610.1r", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2l", 1.0) - MDRV_SOUND_ROUTE(2, "2610.2r", 1.0) - - MDRV_SOUND_ADD_TAG("2610.0l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.0r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("2610.1l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.1r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - MDRV_SOUND_ADD_TAG("2610.2l", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ADD_TAG("2610.2r", FILTER_VOLUME, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( othunder ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code */ - ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) ) - ROM_LOAD16_BYTE( "b67-23.64", 0x00001, 0x20000, CRC(789e9daa) SHA1(15bb0eec68aeea0b9f55889566338c9ce0ac9b5e) ) - ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) ) - ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b67-13.40", 0x00000, 0x04000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) ) - ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) - ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) - ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) -ROM_END - -ROM_START( othunduo ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code */ - ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) ) - ROM_LOAD16_BYTE( "b67-22.64", 0x00001, 0x20000, CRC(0f99ad3c) SHA1(dd6c9e822470ca867ec01e642443a871e879bae5) ) - ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) ) - ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b67-13.40", 0x00000, 0x04000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) ) - ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) - ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) - ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) -ROM_END - -ROM_START( othundu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code */ - ROM_LOAD16_BYTE( "b67-20-1.63", 0x00000, 0x20000, CRC(851a453b) SHA1(48b8c379e78cd79463f1e24dc23816a97cf819b8) ) - ROM_LOAD16_BYTE( "b67-22-1.64", 0x00001, 0x20000, CRC(19480dc0) SHA1(8bbc982c89f0878e7639330970df5aa93ecbb083) ) - ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) ) - ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b67-13.40", 0x00000, 0x04000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) ) - ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) - ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) - ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) -ROM_END - -ROM_START( othundrj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code */ - ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) ) - ROM_LOAD16_BYTE( "b67-21.64", 0x00001, 0x20000, CRC(9690fc86) SHA1(4e695554fc9cc91c5f8cff95dc290333bb56d571) ) - ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) ) - ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b67-13.40", 0x00000, 0x04000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */ - ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) ) - ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) ) - ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) ) - ROM_LOAD( "pal16l8a-b67-11.ic36", 0x0200, 0x0104, CRC(3177fb06) SHA1(c128277fe03342d9ec8da3c6e08a404a3f010547) ) - ROM_LOAD( "pal20l8b-b67-12.ic37", 0x0400, 0x0144, CRC(a47c2798) SHA1(8c963efd416b3f6586cb12afb9417dc95c2bc574) ) - ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) ) -ROM_END - - - -GAME( 1988, othunder, 0, othunder, othunder, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", 0 ) -GAME( 1988, othundu, othunder, othunder, othundu, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", 0 ) -GAME( 1988, othunduo, othunder, othunder, othundrj, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, older)", 0 ) -GAME( 1988, othundrj, othunder, othunder, othundrj, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", 0 ) diff --git a/src/drivers/overdriv.c b/src/drivers/overdriv.c deleted file mode 100644 index 1227b9846..000000000 --- a/src/drivers/overdriv.c +++ /dev/null @@ -1,505 +0,0 @@ -/*************************************************************************** - -Over Drive (GX789) (c) 1990 Konami - -driver by Nicola Salmoria - -Notes: -- Missing road (two unemulated K053250) -- Visible area and relative placement of sprites and tiles is most likely wrong. -- Test mode doesn't work well with 3 IRQ5 per frame, the ROM check doens't work - and the coin A setting isn't shown. It's OK with 1 IRQ5 per frame. -- Some flickering sprites, this might be an interrupt/timing issue -- The screen is cluttered with sprites which aren't supposed to be visible, - increasing the coordinate mask in K053247_sprites_draw() from 0x3ff to 0xfff - fixes this but breaks other games (e.g. Vendetta). -- The "Continue?" sprites are not visible until you press start -- priorities - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "machine/eeprom.h" -#include "cpu/m6809/m6809.h" -#include "sound/2151intf.h" -#include "sound/k053260.h" - - -VIDEO_START( overdriv ); -VIDEO_UPDATE( overdriv ); - - - - -static READ16_HANDLER( K051316_0_msb_r ) -{ - return K051316_0_r(offset) << 8; -} - -static READ16_HANDLER( K051316_1_msb_r ) -{ - return K051316_1_r(offset) << 8; -} - -static READ16_HANDLER( K051316_rom_0_msb_r ) -{ - return K051316_rom_0_r(offset) << 8; -} - -static READ16_HANDLER( K051316_rom_1_msb_r ) -{ - return K051316_rom_1_r(offset) << 8; -} - -static WRITE16_HANDLER( K051316_0_msb_w ) -{ - if (ACCESSING_MSB) - K051316_0_w(offset,data >> 8); -} - -static WRITE16_HANDLER( K051316_1_msb_w ) -{ - if (ACCESSING_MSB) - K051316_1_w(offset,data >> 8); -} - -static WRITE16_HANDLER( K051316_ctrl_0_msb_w ) -{ - if (ACCESSING_MSB) - K051316_ctrl_0_w(offset,data >> 8); -} - -static WRITE16_HANDLER( K051316_ctrl_1_msb_w ) -{ - if (ACCESSING_MSB) - K051316_ctrl_1_w(offset,data >> 8); -} - - -/*************************************************************************** - - EEPROM - -***************************************************************************/ - -static UINT8 default_eeprom[128] = -{ - 0x77,0x58,0xFF,0xFF,0x00,0x78,0x90,0x00,0x00,0x78,0x70,0x00,0x00,0x78,0x50,0x00, - 0x54,0x41,0x4B,0x51,0x31,0x36,0x46,0x55,0x4A,0xFF,0x03,0x00,0x02,0x70,0x02,0x50, - 0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00, - 0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4, - 0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03, - 0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00, - 0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4, - 0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03,0x00,0xB4,0x03 -}; - - -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "011000", /* read command */ - "010100", /* write command */ - 0, /* erase command */ - "010000000000", /* lock command */ - "010011000000" /* unlock command */ -}; - -static NVRAM_HANDLER( overdriv ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,sizeof(default_eeprom)); - } -} - -static READ16_HANDLER( eeprom_r ) -{ - int res; - -//logerror("%06x eeprom_r\n",activecpu_get_pc()); - /* bit 6 is EEPROM data */ - res = (EEPROM_read_bit() << 6) | input_port_0_word_r(0,0); - - return res; -} - -static WRITE16_HANDLER( eeprom_w ) -{ -//logerror("%06x: write %04x to eeprom_w\n",activecpu_get_pc(),data); - if (ACCESSING_LSB) - { - /* bit 0 is data */ - /* bit 1 is clock (active high) */ - /* bit 2 is cs (active low) */ - EEPROM_write_bit(data & 0x01); - EEPROM_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); - } -} - - - - - -static INTERRUPT_GEN( cpuA_interrupt ) -{ - if (cpu_getiloops()) cpunum_set_input_line(0, 5, HOLD_LINE); - else cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static INTERRUPT_GEN( cpuB_interrupt ) -{ - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(1, 4, HOLD_LINE); -} - - -static MACHINE_RESET( overdriv ) -{ - /* start with cpu B halted */ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); -} - -static WRITE16_HANDLER( cpuA_ctrl_w ) -{ - if (ACCESSING_LSB) - { - /* bit 0 probably enables the second 68000 */ - cpunum_set_input_line(1, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - - /* bit 1 is clear during service mode - function unknown */ - - set_led_status(0,data & 0x08); - coin_counter_w(0,data & 0x10); - coin_counter_w(1,data & 0x20); - -//logerror("%06x: write %04x to cpuA_ctrl_w\n",activecpu_get_pc(),data); - } -} - - -static UINT16 cpuB_ctrl; - -static READ16_HANDLER( cpuB_ctrl_r ) -{ - return cpuB_ctrl; -} - -static WRITE16_HANDLER( cpuB_ctrl_w ) -{ - COMBINE_DATA(&cpuB_ctrl); - - if (ACCESSING_LSB) - { - /* bit 0 = enable sprite ROM reading */ - K053246_set_OBJCHA_line((data & 0x01) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 1 used but unknown (irq enable?) */ - - /* other bits unused? */ - } -} - - -static UINT16 *sharedram; - -static READ16_HANDLER( sharedram_r ) -{ - return sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&sharedram[offset]); -} - - - -static READ16_HANDLER( overdriv_sound_0_r ) -{ - return K053260_0_r(2 + offset); -} - -static READ16_HANDLER( overdriv_sound_1_r ) -{ - return K053260_1_r(2 + offset); -} - -static WRITE16_HANDLER( overdriv_soundirq_w ) -{ - cpunum_set_input_line(2,M6809_IRQ_LINE,HOLD_LINE); -} - -static WRITE16_HANDLER( overdriv_cpuB_irq5_w ) -{ - cpunum_set_input_line(1,5,HOLD_LINE); -} - -static WRITE16_HANDLER( overdriv_cpuB_irq6_w ) -{ - cpunum_set_input_line(1,6,HOLD_LINE); -} - - - - -static ADDRESS_MAP_START( overdriv_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x040000, 0x043fff) AM_READ(MRA16_RAM) - AM_RANGE(0x080000, 0x080fff) AM_READ(MRA16_RAM) - AM_RANGE(0x0c0000, 0x0c0001) AM_READ(eeprom_r) - AM_RANGE(0x0c0002, 0x0c0003) AM_READ(input_port_1_word_r) - AM_RANGE(0x180000, 0x180001) AM_READ(input_port_2_word_r) - AM_RANGE(0x1d8000, 0x1d8003) AM_READ(overdriv_sound_0_r) /* K053260 */ - AM_RANGE(0x1e0000, 0x1e0003) AM_READ(overdriv_sound_1_r) /* K053260 */ - AM_RANGE(0x200000, 0x203fff) AM_READ(sharedram_r) - AM_RANGE(0x210000, 0x210fff) AM_READ(K051316_0_msb_r) - AM_RANGE(0x218000, 0x218fff) AM_READ(K051316_1_msb_r) - AM_RANGE(0x220000, 0x220fff) AM_READ(K051316_rom_0_msb_r) - AM_RANGE(0x228000, 0x228fff) AM_READ(K051316_rom_1_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( overdriv_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x040000, 0x043fff) AM_WRITE(MWA16_RAM) /* work RAM */ - AM_RANGE(0x080000, 0x080fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(MWA16_NOP) /* unknown (always 0x30) */ - AM_RANGE(0x100000, 0x10001f) AM_WRITE(MWA16_NOP) /* 053252? (LSB) */ - AM_RANGE(0x140000, 0x140001) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(K051316_ctrl_0_msb_w) - AM_RANGE(0x1c8000, 0x1c801f) AM_WRITE(K051316_ctrl_1_msb_w) - AM_RANGE(0x1d0000, 0x1d001f) AM_WRITE(K053251_msb_w) - AM_RANGE(0x1d8000, 0x1d8003) AM_WRITE(K053260_0_lsb_w) - AM_RANGE(0x1e0000, 0x1e0003) AM_WRITE(K053260_1_lsb_w) - AM_RANGE(0x1e8000, 0x1e8001) AM_WRITE(overdriv_soundirq_w) - AM_RANGE(0x1f0000, 0x1f0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, coin counter, start lamp, other? */ - AM_RANGE(0x1f8000, 0x1f8001) AM_WRITE(eeprom_w) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) - AM_RANGE(0x210000, 0x210fff) AM_WRITE(K051316_0_msb_w) - AM_RANGE(0x218000, 0x218fff) AM_WRITE(K051316_1_msb_w) - AM_RANGE(0x230000, 0x230001) AM_WRITE(overdriv_cpuB_irq6_w) - AM_RANGE(0x238000, 0x238001) AM_WRITE(overdriv_cpuB_irq5_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( overdriv_readmem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) -AM_RANGE(0x0c0000, 0x0c1fff) AM_READ(MRA16_RAM) -AM_RANGE(0x100000, 0x10000f) AM_READ(MRA16_NOP) // K053250 #0 -AM_RANGE(0x108000, 0x10800f) AM_READ(MRA16_NOP) // K053250 #1 - AM_RANGE(0x118000, 0x118fff) AM_READ(K053247_word_r) - AM_RANGE(0x120000, 0x120001) AM_READ(K053246_word_r) - AM_RANGE(0x128000, 0x128001) AM_READ(cpuB_ctrl_r) - AM_RANGE(0x200000, 0x203fff) AM_READ(sharedram_r) -AM_RANGE(0x208000, 0x20bfff) AM_READ(MRA16_RAM) - -AM_RANGE(0x218000, 0x219fff) AM_READ(MRA16_NOP) // K053250 #0 gfx ROM read (LSB) -AM_RANGE(0x220000, 0x221fff) AM_READ(MRA16_NOP) // K053250 #1 gfx ROM read (LSB) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( overdriv_writemem2, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) /* work RAM */ -AM_RANGE(0x0c0000, 0x0c1fff) AM_WRITE(MWA16_RAM) -AM_RANGE(0x100000, 0x10000f) AM_WRITE(MWA16_NOP) // K053250 #0 -AM_RANGE(0x108000, 0x10800f) AM_WRITE(MWA16_NOP) // K053250 #1 - AM_RANGE(0x118000, 0x118fff) AM_WRITE(K053247_word_w) - AM_RANGE(0x128000, 0x128001) AM_WRITE(cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */ - AM_RANGE(0x130000, 0x130007) AM_WRITE(K053246_word_w) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(sharedram_w) -AM_RANGE(0x208000, 0x20bfff) AM_WRITE(MWA16_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( overdriv_s_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0201, 0x0201) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x0400, 0x042f) AM_READ(K053260_0_r) - AM_RANGE(0x0600, 0x062f) AM_READ(K053260_1_r) - AM_RANGE(0x0800, 0x0fff) AM_READ(MRA8_RAM) - AM_RANGE(0x1000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( overdriv_s_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0200, 0x0200) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x0201, 0x0201) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x0400, 0x042f) AM_WRITE(K053260_0_w) - AM_RANGE(0x0600, 0x062f) AM_WRITE(K053260_1_w) - AM_RANGE(0x0800, 0x0fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x1000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( overdriv ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_TOGGLE - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) // ? - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(50) PORT_RESET -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { STEP8(0,4) }, - { STEP8(7*8*4,-8*4) }, - 8*8*4 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX4, 0, &charlayout, 0, 0x80 }, - { REGION_GFX5, 0, &charlayout, 0, 0x80 }, - { -1 } -}; - - - -static struct K053260_interface k053260_interface = -{ - REGION_SOUND1 -}; - - - -static MACHINE_DRIVER_START( overdriv ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(overdriv_readmem,overdriv_writemem) - MDRV_CPU_VBLANK_INT(cpuA_interrupt,4) /* ??? IRQ 4 is vblank, IRQ 5 of unknown origin */ - - MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(overdriv_readmem2,overdriv_writemem2) - MDRV_CPU_VBLANK_INT(cpuB_interrupt,1) /* IRQ 5 and 6 are generated by the main CPU. */ - /* IRQ 5 is used only in test mode, to request the checksums of the gfx ROMs. */ - MDRV_CPU_ADD(M6809,3579545/2) /* 1.789 MHz?? This might be the right speed, but ROM testing */ - /* takes a little too much (the counter wraps from 0000 to 9999). */ - /* This might just mean that the video refresh rate is less than */ - /* 60 fps, that's how I fixed it for now. */ - MDRV_CPU_PROGRAM_MAP(overdriv_s_readmem,overdriv_s_writemem) - - MDRV_SCREEN_REFRESH_RATE(59) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(200) - - MDRV_MACHINE_RESET(overdriv) - MDRV_NVRAM_HANDLER(overdriv) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 0*8, 32*8-1 ) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(overdriv) - MDRV_VIDEO_UPDATE(overdriv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K053260, 3579545) - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(0, "left", 0.70) - MDRV_SOUND_ROUTE(1, "right", 0.70) - - MDRV_SOUND_ADD(K053260, 3579545) - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(0, "left", 0.70) - MDRV_SOUND_ROUTE(1, "right", 0.70) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( overdriv ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) - ROM_LOAD16_BYTE( "789.2", 0x00000, 0x20000, CRC(77f18f3f) SHA1(a8c91435573c7851a7864d07eeacfb2f142abbe2) ) - ROM_LOAD16_BYTE( "789.1", 0x00001, 0x20000, CRC(4f44e6ad) SHA1(9fa871f55e6b2ec353dd979ded568cd9da83f5d6) ) - - ROM_REGION( 0x40000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "789.4", 0x00000, 0x20000, CRC(46fb7e88) SHA1(f706a76aff9bec64abe6da325cba0715d6e6ed0a) ) - ROM_LOAD16_BYTE( "789.3", 0x00001, 0x20000, CRC(24427195) SHA1(48f4f81729acc0e497b40fddbde11242c5c4c573) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "789.5", 0x00000, 0x10000, CRC(1085f069) SHA1(27228cedb357ff2e130a4bd6d8aa01cf537e034f) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) /* graphics (addressable by the CPU) */ - ROM_LOAD( "e12.r1", 0x000000, 0x100000, CRC(14a10fb2) SHA1(03fb9c15514c5ecc2d9ae4a53961c4bbb49cec73) ) /* sprites */ - ROM_LOAD( "e13.r4", 0x100000, 0x100000, CRC(6314a628) SHA1(f8a8918998c266109348c77427a7696b503daeb3) ) - ROM_LOAD( "e14.r10", 0x200000, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) ) - ROM_LOAD( "e15.r15", 0x300000, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* graphics (addressable by the CPU) */ - ROM_LOAD( "e06.a21", 0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) ) /* zoom/rotate */ - - ROM_REGION( 0x020000, REGION_GFX3, 0 ) /* graphics (addressable by the CPU) */ - ROM_LOAD( "e07.c23", 0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) ) /* zoom/rotate */ - - ROM_REGION( 0x0c0000, REGION_GFX4, 0 ) /* graphics (addressable by the CPU) */ - ROM_LOAD( "e18.p22", 0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) ) /* 053250 #0 */ - ROM_LOAD( "e19.r22", 0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) ) - ROM_LOAD( "e20.s22", 0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) ) - - ROM_REGION( 0x080000, REGION_GFX5, 0 ) /* unknown (053250?) */ - ROM_LOAD( "e16.p12", 0x000000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) ) /* 053250 #1 */ - ROM_LOAD( "e17.p17", 0x040000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* 053260 samples */ - ROM_LOAD( "e03.j1", 0x000000, 0x100000, CRC(51ebfebe) SHA1(17f0c23189258e801f48d5833fe934e7a48d071b) ) - ROM_LOAD( "e02.f1", 0x100000, 0x100000, CRC(bdd3b5c6) SHA1(412332d64052c0a3714f4002c944b0e7d32980a4) ) -ROM_END - - - -static DRIVER_INIT( overdriv ) -{ - konami_rom_deinterleave_4(REGION_GFX1); -} - - - -GAME( 1990, overdriv, 0, overdriv, overdriv, overdriv, ROT90, "Konami", "Over Drive", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/parodius.c b/src/drivers/parodius.c deleted file mode 100644 index 3ab8b031b..000000000 --- a/src/drivers/parodius.c +++ /dev/null @@ -1,425 +0,0 @@ -/*************************************************************************** - -Parodius (Konami GX955) (c) 1990 Konami - -driver by Nicola Salmoria - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k053260.h" - -/* prototypes */ -static MACHINE_RESET( parodius ); -static void parodius_banking( int lines ); -VIDEO_START( parodius ); -VIDEO_UPDATE( parodius ); - -static int videobank; -static unsigned char *ram; - -static INTERRUPT_GEN( parodius_interrupt ) -{ - if (K052109_is_IRQ_enabled()) cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static READ8_HANDLER( bankedram_r ) -{ - if (videobank & 0x01) - { - if (videobank & 0x04) - return paletteram_r(offset + 0x0800); - else - return paletteram_r(offset); - } - else - return ram[offset]; -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (videobank & 0x01) - { - if (videobank & 0x04) - paletteram_xBBBBBGGGGGRRRRR_be_w(offset + 0x0800,data); - else - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - } - else - ram[offset] = data; -} - -static READ8_HANDLER( parodius_052109_053245_r ) -{ - if (videobank & 0x02) - return K053245_r(offset); - else - return K052109_r(offset); -} - -static WRITE8_HANDLER( parodius_052109_053245_w ) -{ - if (videobank & 0x02) - K053245_w(offset,data); - else - K052109_w(offset,data); -} - -static WRITE8_HANDLER( parodius_videobank_w ) -{ - if (videobank & 0xf8) logerror("%04x: videobank = %02x\n",activecpu_get_pc(),data); - - /* bit 0 = select palette or work RAM at 0000-07ff */ - /* bit 1 = select 052109 or 053245 at 2000-27ff */ - /* bit 2 = select palette bank 0 or 1 */ - videobank = data; -} - -static WRITE8_HANDLER( parodius_3fc0_w ) -{ - if ((data & 0xf4) != 0x10) logerror("%04x: 3fc0 = %02x\n",activecpu_get_pc(),data); - - /* bit 0/1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 3 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line( ( data & 0x08 ) ? ASSERT_LINE : CLEAR_LINE ); - - /* other bits unknown */ -} - -static READ8_HANDLER( parodius_sound_r ) -{ - return K053260_0_r(2 + offset); -} - -static WRITE8_HANDLER( parodius_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -#if 0 -static int nmi_enabled; - -static void sound_nmi_callback( int param ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); - - nmi_enabled = 0; -} -#endif - -static void nmi_callback(int param) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); -} - -static WRITE8_HANDLER( sound_arm_nmi_w ) -{ -// sound_nmi_enabled = 1; - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); - timer_set(TIME_IN_USEC(50),0,nmi_callback); /* kludge until the K053260 is emulated correctly */ -} - -/********************************************/ - -static ADDRESS_MAP_START( parodius_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(bankedram_r) - AM_RANGE(0x0800, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x3f8c, 0x3f8c) AM_READ(input_port_0_r) - AM_RANGE(0x3f8d, 0x3f8d) AM_READ(input_port_1_r) - AM_RANGE(0x3f8e, 0x3f8e) AM_READ(input_port_4_r) - AM_RANGE(0x3f8f, 0x3f8f) AM_READ(input_port_2_r) - AM_RANGE(0x3f90, 0x3f90) AM_READ(input_port_3_r) - AM_RANGE(0x3fa0, 0x3faf) AM_READ(K053244_r) - AM_RANGE(0x3fc0, 0x3fc0) AM_READ(watchdog_reset_r) - AM_RANGE(0x3fcc, 0x3fcd) AM_READ(parodius_sound_r) /* K053260 */ - AM_RANGE(0x2000, 0x27ff) AM_READ(parodius_052109_053245_r) - AM_RANGE(0x2000, 0x5fff) AM_READ(K052109_r) - AM_RANGE(0x6000, 0x9fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( parodius_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(bankedram_w) AM_BASE(&ram) - AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x3fa0, 0x3faf) AM_WRITE(K053244_w) - AM_RANGE(0x3fb0, 0x3fbf) AM_WRITE(K053251_w) - AM_RANGE(0x3fc0, 0x3fc0) AM_WRITE(parodius_3fc0_w) - AM_RANGE(0x3fc4, 0x3fc4) AM_WRITE(parodius_videobank_w) - AM_RANGE(0x3fc8, 0x3fc8) AM_WRITE(parodius_sh_irqtrigger_w) - AM_RANGE(0x3fcc, 0x3fcd) AM_WRITE(K053260_0_w) - AM_RANGE(0x2000, 0x27ff) AM_WRITE(parodius_052109_053245_w) - AM_RANGE(0x2000, 0x5fff) AM_WRITE(K052109_w) - AM_RANGE(0x6000, 0x9fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( parodius_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf801, 0xf801) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xfc00, 0xfc2f) AM_READ(K053260_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( parodius_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf800, 0xf800) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xf801, 0xf801) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w) - AM_RANGE(0xfc00, 0xfc2f) AM_WRITE(K053260_0_w) -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( parodius ) - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // missile - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "No Use" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "20000 80000" ) - PORT_DIPSETTING( 0x10, "30000 100000" ) - PORT_DIPSETTING( 0x08, "20000" ) - PORT_DIPSETTING( 0x00, "70000" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Upright Controls" ) - PORT_DIPSETTING( 0x20, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct K053260_interface k053260_interface = -{ - REGION_SOUND1 /* memory region */ -}; - - - -static MACHINE_DRIVER_START( parodius ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* 053248 */ - MDRV_CPU_PROGRAM_MAP(parodius_readmem,parodius_writemem) - MDRV_CPU_VBLANK_INT(parodius_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(parodius_readmem_sound,parodius_writemem_sound) - /* NMIs are triggered by the 053260 */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(parodius) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(parodius) - MDRV_VIDEO_UPDATE(parodius) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K053260, 3579545) - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(0, "left", 0.70) - MDRV_SOUND_ROUTE(1, "right", 0.70) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( parodius ) - ROM_REGION( 0x51000, REGION_CPU1, 0 ) /* code + banked roms + palette RAM */ - ROM_LOAD( "955l01.bin", 0x10000, 0x20000, CRC(49a658eb) SHA1(dd53060c4da99b8e1f896ebfec572296ef2b5665) ) - ROM_LOAD( "955l02.bin", 0x30000, 0x18000, CRC(161d7322) SHA1(a752f28c19c58263680221ad1119f2fd57df4723) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "955e03.bin", 0x0000, 0x10000, CRC(940aa356) SHA1(e7466f049be48861fd2d929eed786bd48782b5bb) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "955d07.bin", 0x000000, 0x080000, CRC(89473fec) SHA1(0da18c4b078c3a30233a6f5c2b90032168136f58) ) /* characters */ - ROM_LOAD( "955d08.bin", 0x080000, 0x080000, CRC(43d5cda1) SHA1(2c51bad4857d1d31456c6dc1e7d41326ea35468b) ) /* characters */ - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "955d05.bin", 0x000000, 0x080000, CRC(7a1e55e0) SHA1(7a0e04ebde28d1e7b60aef3de926dc0e78662b1e) ) /* sprites */ - ROM_LOAD( "955d06.bin", 0x080000, 0x080000, CRC(f4252875) SHA1(490f2e19b30cf8724e4b03b8d9f089c470ec13bd) ) /* sprites */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 053260 samples */ - ROM_LOAD( "955d04.bin", 0x00000, 0x80000, CRC(e671491a) SHA1(79e71cb5212eb7d14d3479b0734ea0270473a66d) ) -ROM_END - -ROM_START( parodisj ) - ROM_REGION( 0x51000, REGION_CPU1, 0 ) /* code + banked roms + palette RAM */ - ROM_LOAD( "955e01.bin", 0x10000, 0x20000, CRC(49baa334) SHA1(8902fbb2228111b15de6537bd168241933df134d) ) - ROM_LOAD( "955e02.bin", 0x30000, 0x18000, CRC(14010d6f) SHA1(69fe162ea08c3bd4b3e78e9d10d278bd15444af4) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "955e03.bin", 0x0000, 0x10000, CRC(940aa356) SHA1(e7466f049be48861fd2d929eed786bd48782b5bb) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "955d07.bin", 0x000000, 0x080000, CRC(89473fec) SHA1(0da18c4b078c3a30233a6f5c2b90032168136f58) ) /* characters */ - ROM_LOAD( "955d08.bin", 0x080000, 0x080000, CRC(43d5cda1) SHA1(2c51bad4857d1d31456c6dc1e7d41326ea35468b) ) /* characters */ - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "955d05.bin", 0x000000, 0x080000, CRC(7a1e55e0) SHA1(7a0e04ebde28d1e7b60aef3de926dc0e78662b1e) ) /* sprites */ - ROM_LOAD( "955d06.bin", 0x080000, 0x080000, CRC(f4252875) SHA1(490f2e19b30cf8724e4b03b8d9f089c470ec13bd) ) /* sprites */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* 053260 samples */ - ROM_LOAD( "955d04.bin", 0x00000, 0x80000, CRC(e671491a) SHA1(79e71cb5212eb7d14d3479b0734ea0270473a66d) ) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void parodius_banking(int lines) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0; - - if (lines & 0xf0) logerror("%04x: setlines %02x\n",activecpu_get_pc(),lines); - - offs = 0x10000 + (((lines & 0x0f)^0x0f) * 0x4000); - if (offs >= 0x48000) offs -= 0x40000; - memory_set_bankptr( 1, &RAM[offs] ); -} - -static MACHINE_RESET( parodius ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)parodius_banking); - - paletteram = &memory_region(REGION_CPU1)[0x48000]; - - videobank = 0; - - /* init the default bank */ - memory_set_bankptr(1,&RAM[0x10000]); -} - - -static DRIVER_INIT( parodius ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - - -GAME( 1990, parodius, 0, parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (World)", 0 ) -GAME( 1990, parodisj, parodius, parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (Japan)", 0 ) diff --git a/src/drivers/pass.c b/src/drivers/pass.c deleted file mode 100644 index 01e7df434..000000000 --- a/src/drivers/pass.c +++ /dev/null @@ -1,335 +0,0 @@ -/* Pass (c)1992, Oksan - - Driver by David Haywood - Inputs by Stephh - - Is that a Korean flag I see? Are Oksan maybe a Korean Developer? - - Information from ReadMe - ----------------------- - - Pass, Oksan, 1992 - CPU : MC68000P10 - Sound : YM2203C - Other main chips : Goldstar Z8400B PS, 4 * Hyundai HY6264ALP-10 - Also : PAL20L8ACNS - The rest all TTl chips - - 8 dipswitches (1 bank) - speed : 14.31818MHz - Rest see pic - (included was scans of the board) - - ---------------------- - - Working Notes: - - 68k interrupts - lev 1 : 0x64 : 0000 0500 - vblank? - lev 2 : 0x68 : 0000 0500 - vblank? - lev 3 : 0x6c : 0000 0500 - vblank? - lev 4 : 0x70 : 0000 0500 - vblank? - lev 5 : 0x74 : 0000 0500 - vblank? - lev 6 : 0x78 : 0000 0500 - vblank? - lev 7 : 0x7c : 0000 0500 - vblank? - (all point to the same place ..) - - z80 interrupts - 0x38 looks to have a valid IRQ - 0x66 might be valid NMI - - -- stephh's notes on the inputs -- - - reads from 0x230100.w : - - 0x001066 : mask = 0xe000 (coinage) - - 0x00124e : mask = 0x0300 (player 1 lives) - 0x001292 : mask = 0x0300 (player 2 lives) - - 0x0046ea : mask = 0x0001 (unknown effect - flip ? demo sounds ?) -> - - 0x004182 : mask = 0x1800 (time, difficulty) - - - reads from 0x230200.w : - - 0x001000 : mask = 0xffff -> >> 0 in 0x080010 - 0x001000 : mask = 0x00f0 -> >> 4 in 0x080016 (player 1 directions) - 0x001000 : mask = 0xf000 -> >> 12 in 0x080018 (player 2 directions) - - - 0x080010.w : inputs - - bit 00 : COIN1 - bit 01 : START1 - bit 02 : tested at 0x002bca, 0x002f00, 0x004c26, 0x00c25e, 0x001f48, 0x00c474, 0x00c628 - bit 03 : tested at 0x002bca, 0x002f00, 0x004c4c, 0x00c2ce, 0x00c644 - bit 04 : UP - bit 05 : DOWN - bit 06 : LEFT - bit 07 : RIGHT - - bit 08 : COIN2 - bit 09 : START2 - bit 10 : tested at 0x002bca, 0x002f00, 0x004c8a, 0x00c2a8, 0x0021b8 - bit 11 : tested at 0x002bca, 0x002f00, 0x004cb0, 0x00c282 - bit 12 : UP - bit 13 : DOWN - bit 14 : LEFT - bit 15 : RIGHT - - - 0x080014.w : credits (max = 0x005a) - - 0x08007e.w : lives (player 1) - 0x080080.w : lives (player 2) - - 0x080002.w : time (0x0000-0x0099, BCD coded) - - --- Game Notes --- - - Graphical Glitches caused when 2 sprites are close together are NOT bugs, the Sprites are - infact contructed from a tilemap made of 4x4 tiles. - - I imagine flicker on the main character at times is also correct. - - Its rather interesting to see a game this old using 8bpp tiles - - - */ - -#include "driver.h" -#include "sound/2203intf.h" -#include "sound/okim6295.h" - -UINT16 *pass_bg_videoram; -UINT16 *pass_fg_videoram; - -/* in vidhrdw */ - -VIDEO_START( pass ); -VIDEO_UPDATE( pass ); -WRITE16_HANDLER( pass_fg_videoram_w ); -WRITE16_HANDLER( pass_bg_videoram_w ); - -/* end in vidhrdw */ - -static WRITE16_HANDLER ( pass_soundwrite ) -{ - soundlatch_w(0,data & 0xff); -} - -/* todo: check all memory regions actually readable / read from */ -static ADDRESS_MAP_START( pass_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x200fff) AM_READ(MRA16_RAM) - AM_RANGE(0x210000, 0x213fff) AM_READ(MRA16_RAM) - AM_RANGE(0x220000, 0x2203ff) AM_READ(MRA16_RAM) - AM_RANGE(0x230100, 0x230101) AM_READ(input_port_0_word_r) - AM_RANGE(0x230200, 0x230201) AM_READ(input_port_1_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pass_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200fff) AM_WRITE(pass_bg_videoram_w) AM_BASE(&pass_bg_videoram) // Background - AM_RANGE(0x210000, 0x213fff) AM_WRITE(pass_fg_videoram_w) AM_BASE(&pass_fg_videoram) // Foreground - AM_RANGE(0x220000, 0x2203ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x230000, 0x230001) AM_WRITE(pass_soundwrite) -ADDRESS_MAP_END - -/* sound cpu */ - -static ADDRESS_MAP_START( pass_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pass_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pass_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) - AM_RANGE(0x70, 0x70) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0x71, 0x71) AM_READ(YM2203_read_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pass_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x70, 0x70) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x71, 0x71) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0x80, 0x80) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xc0, 0xc0) AM_WRITE(soundlatch_clear_w) -ADDRESS_MAP_END - - -/* todo : work out function of unknown but used dsw */ -INPUT_PORTS_START( pass ) - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, "Unknown SW 0-0" ) // USED ! Check code at 0x0046ea - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, "Unused SW 0-1" ) // Unused ? - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, "Unused SW 0-2" ) // Unused ? - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "Unused SW 0-3" ) // Unused ? - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, "Unused SW 0-4" ) // Unused ? - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, "Unused SW 0-5" ) // Unused ? - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, "Unused SW 0-6" ) // Unused ? - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, "Unused SW 0-7" ) // Unused ? - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "2" ) - PORT_DIPSETTING( 0x0300, "3" ) - PORT_DIPSETTING( 0x0100, "4" ) - PORT_DIPSETTING( 0x0200, "5" ) - PORT_DIPNAME( 0x0400, 0x0400, "Unused SW 0-10" ) // Unused ? - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1800, 0x0000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) ) // Time = 99 - PORT_DIPSETTING( 0x1800, DEF_STR( Normal ) ) // Time = 88 - PORT_DIPSETTING( 0x0800, DEF_STR( Hard ) ) // Time = 77 - PORT_DIPSETTING( 0x1000, DEF_STR( Hardest ) ) // Time = 66 - PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coinage ) ) -// PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe000, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x6000, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa000, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( 1C_4C ) ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) -INPUT_PORTS_END - -static const gfx_layout tiles8x8_layout = -{ - 8,8, - RGN_FRAC(1,1), - 8, - { 0,1, 2,3, 4,5,6,7 }, - { 0, 8, 16, 24, 32, 40, 48, 56 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 -}; - -/* for something so simple this took a while to see */ -static const gfx_layout tiles4x4_fg_layout = -{ - 4,4, - RGN_FRAC(1,1), - 8, - { 0,1, 2,3, 4,5,6,7 }, - { 0, 8, 16, 24 }, - { 0*32, 1*32, 2*32, 3*32 }, - 4*32 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tiles4x4_fg_layout, 256, 2 }, - { REGION_GFX2, 0, &tiles8x8_layout, 0, 2 }, - { -1 } -}; - -/* todo : is this correct? */ - - - -static MACHINE_DRIVER_START( pass ) - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 14318180/2 ) - MDRV_CPU_PROGRAM_MAP(pass_readmem,pass_writemem) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) /* all the same */ - - MDRV_CPU_ADD(Z80, 14318180/4 ) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(pass_sound_readmem,pass_sound_writemem) - MDRV_CPU_IO_MAP(pass_sound_readport,pass_sound_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MDRV_PALETTE_LENGTH(0x200) - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_VIDEO_START(pass) - MDRV_VIDEO_UPDATE(pass) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 14318180/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) - - MDRV_SOUND_ADD(OKIM6295, 792000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_DRIVER_END - - -ROM_START( pass ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68k */ - ROM_LOAD16_BYTE( "33", 0x00001, 0x20000, CRC(0c5f18f6) SHA1(49b60d46e4149ad1d49b044522a6888737c17e7d) ) - ROM_LOAD16_BYTE( "34", 0x00000, 0x20000, CRC(7b54573d) SHA1(251e99fa1f045ae4c90676e1953e49e8191440e4) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* z80 clone? */ - ROM_LOAD( "23", 0x00000, 0x10000, CRC(b9a0ccde) SHA1(33e7dda247aa44b1933ae9c033c161c152276ce6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples? */ - ROM_LOAD( "31", 0x00000, 0x20000, CRC(c7315bbd) SHA1(c0bb392793cafc7b3f76da8fb26c6c16948f87e5) ) - - ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* fg layer 'sprites' */ - ROM_LOAD16_BYTE( "35", 0x00000, 0x20000, CRC(2ab33f07) SHA1(23f2481450b3f43bbe3856c4cf595af74b1da2e0) ) - ROM_LOAD16_BYTE( "36", 0x00001, 0x20000, CRC(6677709d) SHA1(0d3df11097855294d606e46c0db0cf801c1dc28a) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* bg tiles */ - ROM_LOAD16_BYTE( "37", 0x40000, 0x20000, CRC(296499e7) SHA1(b7727f7942e20a2428df84e99075a572189a0096) ) - ROM_LOAD16_BYTE( "39", 0x40001, 0x20000, CRC(35c0ad5c) SHA1(78e3ca8b2e382a3c7bc53ede2ef5611c520ab095) ) - ROM_LOAD16_BYTE( "38", 0x00000, 0x20000, CRC(7f11b81a) SHA1(50253da7c13f9390fe7afd2faf17b8057f0bee1b) ) - ROM_LOAD16_BYTE( "40", 0x00001, 0x20000, CRC(80e0a71d) SHA1(e62c855f357e7492a59f8719c62a16d418dfa60b) ) -ROM_END - - -GAME( 1992, pass, 0, pass, pass, 0, ROT0, "Oksan", "Pass", 0) diff --git a/src/drivers/phoenix.c b/src/drivers/phoenix.c deleted file mode 100644 index 595e236a6..000000000 --- a/src/drivers/phoenix.c +++ /dev/null @@ -1,1259 +0,0 @@ -/*************************************************************************** - -Phoenix hardware games - -driver by Richard Davies - -Note: - The discrete sound part of Phoenix requires a sample rate of at least 44100. - This is because the frequencies are so high, that some sounds will be - missed at a lower sample rate. - - pleiads is using another sound driver, sndhrdw\pleiads.c - Andrew Scott (ascott@utkux.utcc.utk.edu) - - -To Do: - - -Survival: - -- Protection. There is a 14 pin part connected to the 8910 Port B D0 labeled DL57S22. - There is a loop at $2002 that reads the player controls -- the game sits in this - loop as long as Port B changes. Also, Port B seems to invert the input bits, and - the game checks for this at $2f32. The game also uses the RIM instruction a lot, - that's purpose is unclear, as the result doesn't seem to be used (even when it's - stored, the result is never read again.) I would think that this advances the - protection chip somehow, but isn't RIM a read only operation? - -- Check background visibile area. When the background scrolls up, it - currently shows below the top and bottom of the border of the play area. - - -Pleiads: - -- Palette banking. Controlled by 3 custom chips marked T-X, T-Y and T-Z. - These chips are reponsible for the protection as well. - -***************************************************************************/ - -#include "driver.h" -#include "sound/tms36xx.h" -#include "sound/ay8910.h" -#include "sound/custom.h" -#include "phoenix.h" - - -static ADDRESS_MAP_START( phoenix_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_BANK1) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x7000, 0x73ff) AM_READ(phoenix_input_port_0_r) /* IN0 or IN1 */ - AM_RANGE(0x7800, 0x7bff) AM_READ(input_port_2_r) /* DSW */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pleiads_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_BANK1) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x7000, 0x73ff) AM_READ(pleiads_input_port_0_r) /* IN0 or IN1 + protection */ - AM_RANGE(0x7800, 0x7bff) AM_READ(input_port_2_r) /* DSW */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( survival_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_READ(MRA8_BANK1) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x6900, 0x69ff) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0x7000, 0x73ff) AM_READ(survival_input_port_0_r)/* IN0 or IN1 */ - AM_RANGE(0x7800, 0x7bff) AM_READ(input_port_2_r) /* DSW */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( phoenix_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w) - AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w) - AM_RANGE(0x6000, 0x63ff) AM_WRITE(phoenix_sound_control_a_w) - AM_RANGE(0x6800, 0x6bff) AM_WRITE(phoenix_sound_control_b_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pleiads_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x5000, 0x53ff) AM_WRITE(pleiads_videoreg_w) - AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w) - AM_RANGE(0x6000, 0x63ff) AM_WRITE(pleiads_sound_control_a_w) - AM_RANGE(0x6800, 0x6bff) AM_WRITE(pleiads_sound_control_b_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( survival_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x4fff) AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */ - AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w) - AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w) - AM_RANGE(0x6800, 0x68ff) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x6900, 0x69ff) AM_WRITE(AY8910_write_port_0_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( phoenix ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( phoenixa ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - /* Coinage is backwards from phoenix (Amstar) */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( phoenixt ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( phoenix3 ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x40, "A - 2C/1C B - 1C/3C" ) - PORT_DIPSETTING( 0x00, "A - 1C/1C B - 1C/6C" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( condor ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "Every 6000" ) - PORT_DIPSETTING( 0x08, "Every 10000" ) - PORT_DIPSETTING( 0x04, "Every 14000" ) - PORT_DIPSETTING( 0x0c, "Every 18000" ) - PORT_DIPNAME( 0x70, 0x30, "Fuel Consumption" ) - PORT_DIPSETTING( 0x00, "Slowest" ) - PORT_DIPSETTING( 0x10, "Slower" ) - PORT_DIPSETTING( 0x20, "Slow" ) - PORT_DIPSETTING( 0x30, "Bit Slow" ) - PORT_DIPSETTING( 0x40, "Bit Fast" ) - PORT_DIPSETTING( 0x50, "Fast" ) - PORT_DIPSETTING( 0x60, "Faster" ) - PORT_DIPSETTING( 0x70, "Fastest" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 2C_4C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 2C_7C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 2C_8C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 2C_4C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 2C_6C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 2C_7C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 2C_8C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( falcona ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( pleiads ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Protection. See 0x0552 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( pleiadce ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Protection. See 0x0552 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "7K 70K" ) - PORT_DIPSETTING( 0x04, "8K 80K" ) - PORT_DIPSETTING( 0x08, "9K 90K" ) - /*PORT_DIPSETTING( 0x0c, "INVALID" ) Sets bonus to A000 */ - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( capitol ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "3K 30K" ) - PORT_DIPSETTING( 0x04, "4K 40K" ) - PORT_DIPSETTING( 0x08, "5K 50K" ) - PORT_DIPSETTING( 0x0c, "6K 60K" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( survival ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_SPECIAL ) /* comes from IN0 0-2 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "25000" ) - PORT_DIPSETTING( 0x08, "35000" ) - PORT_DIPSETTING( 0x04, "45000" ) - PORT_DIPSETTING( 0x00, "55000" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* fake port for non-memory mapped dip switch */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 2, /* 2 bits per pixel */ - { 256*8*8, 0 }, /* the two bitplanes are separated */ - { 7, 6, 5, 4, 3, 2, 1, 0 }, /* pretty straightforward layout */ - { 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_decode phoenix_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &charlayout, 16*4, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode pleiads_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 32 }, - { REGION_GFX2, 0, &charlayout, 32*4, 32 }, - { -1 } /* end of array */ -}; - - -static struct TMS36XXinterface phoenix_tms36xx_interface = -{ - MM6221AA, /* TMS36xx subtype(s) */ - {0.50,0,0,1.05,0,0}, /* decay times of voices */ - 0.21 /* tune speed (time between beats) */ -}; - -static struct CustomSound_interface phoenix_custom_interface = -{ - phoenix_sh_start -}; - -static struct TMS36XXinterface pleiads_tms36xx_interface = -{ - TMS3615, /* TMS36xx subtype(s) */ - /* - * Decay times of the voices; NOTE: it's unknown if - * the the TMS3615 mixes more than one voice internally. - * A wav taken from Pop Flamer sounds like there - * are at least no 'odd' harmonics (5 1/3' and 2 2/3') - */ - {0.33,0.33,0,0.33,0,0.33} -}; - -static struct CustomSound_interface pleiads_custom_interface = -{ - pleiads_sh_start -}; - -static struct AY8910interface survival_ay8910_interface = -{ - 0, - survival_protection_r -}; - - - -static MACHINE_RESET( phoenix ) -{ - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x4000); -} - - -static MACHINE_DRIVER_START( phoenix ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", 8085A, 11000000/4) /* 2.75 MHz */ - MDRV_CPU_PROGRAM_MAP(phoenix_readmem,phoenix_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION /* frames per second, vblank duration */) - - MDRV_MACHINE_RESET(phoenix) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 26*8-1) - MDRV_GFXDECODE(phoenix_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(16*4+16*4) - - MDRV_PALETTE_INIT(phoenix) - MDRV_VIDEO_START(phoenix) - MDRV_VIDEO_UPDATE(phoenix) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("tms", TMS36XX, 372) - MDRV_SOUND_CONFIG(phoenix_tms36xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) - - MDRV_SOUND_ADD_TAG("cust", CUSTOM, 0) - MDRV_SOUND_CONFIG(phoenix_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.4) - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 120000) - MDRV_SOUND_CONFIG(phoenix_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.6) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pleiads ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(phoenix) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pleiads_readmem,pleiads_writemem) - - /* video hardware */ - MDRV_GFXDECODE(pleiads_gfxdecodeinfo) - MDRV_COLORTABLE_LENGTH(32*4+32*4) - - MDRV_PALETTE_INIT(pleiads) - - /* sound hardware */ - MDRV_SOUND_REPLACE("tms", TMS36XX, 247) - MDRV_SOUND_CONFIG(pleiads_tms36xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - - MDRV_SOUND_REPLACE("cust", CUSTOM, 0) - MDRV_SOUND_CONFIG(pleiads_custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_REMOVE("discrete") -MACHINE_DRIVER_END - - -/* Same as Phoenix, but uses an AY8910 and an extra visible line (column) */ - -static MACHINE_DRIVER_START( survival ) - - /* basic machine hardware */ - MDRV_CPU_ADD(8085A,11000000/4) /* 2.75 MHz */ - MDRV_CPU_PROGRAM_MAP(survival_readmem,survival_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1) - MDRV_GFXDECODE(phoenix_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(16*4+16*4) - - MDRV_PALETTE_INIT(phoenix) - MDRV_VIDEO_START(phoenix) - MDRV_VIDEO_UPDATE(phoenix) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 11000000/4) - MDRV_SOUND_CONFIG(survival_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/* Uses a Z80 */ -static MACHINE_DRIVER_START( condor ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(phoenix) - MDRV_CPU_REPLACE("main", Z80, 11000000/4) /* 2.75 MHz??? */ -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( phoenix ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic45", 0x0000, 0x0800, CRC(9f68086b) SHA1(fc3cef299bf03bf0586c4047c6b96ca666846220) ) - ROM_LOAD( "ic46", 0x0800, 0x0800, CRC(273a4a82) SHA1(6f3019a074e73ff50ceb92f655fcf15659f34919) ) - ROM_LOAD( "ic47", 0x1000, 0x0800, CRC(3d4284b9) SHA1(6e69f8f0d537fe89140cd95d2398531d7e93d102) ) - ROM_LOAD( "ic48", 0x1800, 0x0800, CRC(cb5d9915) SHA1(49bcf55a5721cfcc02c3b811a4b601e35ea576db) ) - ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "h8-ic52.8a", 0x3800, 0x0800, CRC(aff8e9c5) SHA1(e4164f85ec12d4d9bcbffba27ab1f51b3599f6d0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b1-ic39.3b", 0x0000, 0x0800, CRC(53413e8f) SHA1(d772358505b973b10da840d204afb210c0c746ec) ) - ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( phoenixa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1-ic45.1a", 0x0000, 0x0800, CRC(c7a9b499) SHA1(cda61de47956b3603ff6e48556ce528b5f45deab) ) - ROM_LOAD( "2-ic46.2a", 0x0800, 0x0800, CRC(d0e6ae1b) SHA1(63c6df8365dcb8befa338e8479482e34a4259abf) ) - ROM_LOAD( "3-ic47.3a", 0x1000, 0x0800, CRC(64bf463a) SHA1(6cd876e80b85fbac6374ea1f26620c026ba9e99a) ) - ROM_LOAD( "4-ic48.4a", 0x1800, 0x0800, CRC(1b20fe62) SHA1(87d2da6b9bde9049825245ca4b994fc84543e8b9) ) - ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "h8-ic52.8a", 0x3800, 0x0800, CRC(aff8e9c5) SHA1(e4164f85ec12d4d9bcbffba27ab1f51b3599f6d0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b1-ic39.3b", 0x0000, 0x0800, CRC(53413e8f) SHA1(d772358505b973b10da840d204afb210c0c746ec) ) - ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( phoenixb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1-ic45.1a", 0x0000, 0x0800, CRC(c7a9b499) SHA1(cda61de47956b3603ff6e48556ce528b5f45deab) ) - ROM_LOAD( "2-ic46.2a", 0x0800, 0x0800, CRC(d0e6ae1b) SHA1(63c6df8365dcb8befa338e8479482e34a4259abf) ) - ROM_LOAD( "3-ic47.3a", 0x1000, 0x0800, CRC(64bf463a) SHA1(6cd876e80b85fbac6374ea1f26620c026ba9e99a) ) - ROM_LOAD( "4-ic48.4a", 0x1800, 0x0800, CRC(1b20fe62) SHA1(87d2da6b9bde9049825245ca4b994fc84543e8b9) ) - ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "h8-ic52.8a", 0x3800, 0x0800, CRC(aff8e9c5) SHA1(e4164f85ec12d4d9bcbffba27ab1f51b3599f6d0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "phoenixc.39", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) - ROM_LOAD( "phoenixc.40", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( phoenixt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) - ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) - ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) - ROM_LOAD( "phoenix.48", 0x1800, 0x0800, CRC(cb65eff8) SHA1(63e674d680972d3744d66b943e8546f3b77ee6d4) ) - ROM_LOAD( "phoenix.49", 0x2000, 0x0800, CRC(c8a5d6d6) SHA1(ef6ade323544e3edd4101609138ecf35e8cb9577) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "phoenix.52", 0x3800, 0x0800, CRC(b9915263) SHA1(f61396077b23364b5b26f62c6923394d23a37eb3) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b1-ic39.3b", 0x0000, 0x0800, CRC(53413e8f) SHA1(d772358505b973b10da840d204afb210c0c746ec) ) - ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( phoenix3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "phoenix3.45", 0x0000, 0x0800, CRC(a362cda0) SHA1(5ab38afaf92179c965533326574c773f6a63dbbb) ) - ROM_LOAD( "phoenix3.46", 0x0800, 0x0800, CRC(5748f486) SHA1(49e6fd836d26ec24105e95227b24cf668e8a470a) ) - ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) - ROM_LOAD( "phoenix3.48", 0x1800, 0x0800, CRC(b5d97a4d) SHA1(d5d92c5e34431b2ded47e58608c459cc8cdd7937) ) - ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "phoenix3.52", 0x3800, 0x0800, CRC(d2c5c984) SHA1(a9432f9aff8a2f5ca1d347443efc008a177d8ae0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b1-ic39.3b", 0x0000, 0x0800, CRC(53413e8f) SHA1(d772358505b973b10da840d204afb210c0c746ec) ) - ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( phoenixc ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) ) - ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) - ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) - ROM_LOAD( "phoenixc.48", 0x1800, 0x0800, CRC(5ae0b215) SHA1(f6dd86806fb9c467aaa63edf0cb4dbed9645e7c0) ) - ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) - ROM_LOAD( "phoenixc.52", 0x3800, 0x0800, CRC(8424d7c4) SHA1(1b5fa7d8be9e8750a4148dfefc17e96c86ed084d) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "phoenixc.39", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) - ROM_LOAD( "phoenixc.40", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( condor ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cond01c.bin", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) - ROM_LOAD( "cond02c.bin", 0x0800, 0x0800, CRC(440d56e8) SHA1(b3147d5416cec8c00c7df40b878b826434121737) ) - ROM_LOAD( "cond03c.bin", 0x1000, 0x0800, CRC(750b059b) SHA1(6fbaa2ef4c7eef6f731a73b2d33a02fff21b318a) ) - ROM_LOAD( "cond04c.bin", 0x1800, 0x0800, CRC(ca55e1dd) SHA1(f3d8de56e54ec8651ab95af90ed122096c076c65) ) - ROM_LOAD( "cond05c.bin", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) ) - ROM_LOAD( "cond06c.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) ) - ROM_LOAD( "cond07c.bin", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) - ROM_LOAD( "cond08c.bin", 0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cond09c.bin", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "cond10c.bin", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cond11c.bin", 0x0000, 0x0800, CRC(53c52eb0) SHA1(19624ca359996b77d3c65ef78a7af90eeb092377) ) - ROM_LOAD( "cond12c.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( falcon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "falcon.45", 0x0000, 0x0800, CRC(80382b6c) SHA1(47e24f04b5dd8aa8258ce324a0e4ef68a75dc168) ) - ROM_LOAD( "falcon.46", 0x0800, 0x0800, CRC(6a13193b) SHA1(760347695f1abc92cfe19ea7085e5aaf2dced383) ) - ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) - ROM_LOAD( "falcon.48", 0x1800, 0x0800, CRC(084e9766) SHA1(844b83041c3cf60c51a045029624296f205847ab) ) - ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) - ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) - ROM_LOAD( "falcon.51", 0x3000, 0x0800, CRC(6e82e400) SHA1(22e97f74ca7010bba4263ea844cb7b2c6da09ab7) ) - ROM_LOAD( "h8-ic52.8a", 0x3800, 0x0800, CRC(aff8e9c5) SHA1(e4164f85ec12d4d9bcbffba27ab1f51b3599f6d0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b1-ic39.3b", 0x0000, 0x0800, CRC(53413e8f) SHA1(d772358505b973b10da840d204afb210c0c746ec) ) - ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( vautour ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "vautor01.1e", 0x0000, 0x0800, CRC(cd2807ee) SHA1(79b9769f212d25b9ccb5124e2aa632c964c14a0b) ) - ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) ) - ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) - ROM_LOAD( "vautor04.1j", 0x1800, 0x0800, CRC(106262eb) SHA1(1e52ca66ea3542d86f2604f5aadc854ffe22fd89) ) - ROM_LOAD( "phoenixc.49", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) ) - ROM_LOAD( "vautor06.1h", 0x2800, 0x0800, CRC(c90e3287) SHA1(696014738d3b87acb10175b021d9fd4885904a9f) ) - ROM_LOAD( "vautor07.1m", 0x3000, 0x0800, CRC(079ac364) SHA1(55b17c069b191cd1752e78068ef683b33c094e56) ) - ROM_LOAD( "vautor08.1n", 0x3800, 0x0800, CRC(1dbd937a) SHA1(efed9adad3d639c893b33071fd86c64800a7a32f) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vautor12.2h", 0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) ) - ROM_LOAD( "vautor11.2j", 0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( vautour2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "vautour1.bin", 0x0000, 0x0800, CRC(a600f6a4) SHA1(f1aea5ec71da0d0664fb90b87602fe4c4eed2dbe) ) - ROM_LOAD( "vautour2.bin", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) ) - ROM_LOAD( "vautour3.bin", 0x1000, 0x0800, CRC(750b059b) SHA1(6fbaa2ef4c7eef6f731a73b2d33a02fff21b318a) ) - ROM_LOAD( "vautour4.bin", 0x1800, 0x0800, CRC(01a4bfde) SHA1(a740b8f43a226eb585ea538d41228a98392872d6) ) - ROM_LOAD( "vautour5.bin", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) ) - ROM_LOAD( "vautour6.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) ) - ROM_LOAD( "vautour7.bin", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) - ROM_LOAD( "vautour8.bin", 0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "vautor12.2h", 0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) ) - ROM_LOAD( "vautor11.2j", 0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( fenix ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "0.1e", 0x0000, 0x0800, NO_DUMP ) // socket at location '1e' is empty. - ROM_LOAD( "1.1f", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) ) // 1.1f - ROM_LOAD( "2.1h", 0x1000, 0x0800, CRC(750b059b) SHA1(6fbaa2ef4c7eef6f731a73b2d33a02fff21b318a) ) // 2.1h - ROM_LOAD( "3.1j", 0x1800, 0x0800, CRC(61b8a41b) SHA1(6dc7b23cee607042183ac13a0ecf408d88057513) ) // 96.386719% - ROM_LOAD( "4.1k", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) ) // 4.1k - ROM_LOAD( "5.1l", 0x2800, 0x0800, CRC(a210fe51) SHA1(0487d5bc835549cf2bfb8f26f665019490f643b7) ) // 82.812500% - ROM_LOAD( "6.1m", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) // 6.1m - ROM_LOAD( "7.1n", 0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) ) // 7.1n - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "9.2h", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) // 9.2h - ROM_LOAD( "8.2j", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) // 8.2j - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "11.3h", 0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) ) // 11.3h - ROM_LOAD( "10.3j", 0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) ) // 10.3j - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( griffon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "griffon0.a5", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) - ROM_LOAD( "griffon1.a6", 0x0800, 0x0800, CRC(3cc33e4a) SHA1(45d16334f245cc185e18f63062e08627e9bd06bb) ) - ROM_LOAD( "griffon2.a7", 0x1000, 0x0800, CRC(750b059b) SHA1(6fbaa2ef4c7eef6f731a73b2d33a02fff21b318a) ) - ROM_LOAD( "griffon3.a8", 0x1800, 0x0800, CRC(3a6188eb) SHA1(f343d7a6dc836d118621e9a143799e33658a3005) ) - ROM_LOAD( "griffon4.a9", 0x2000, 0x0800, CRC(87a45ceb) SHA1(0788dd57eac3047e34a50e730df37059616abc1a) ) - ROM_LOAD( "griffon5.a10", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) ) - ROM_LOAD( "griffon6.a11", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) - ROM_LOAD( "griffon7.a12", 0x3800, 0x0800, CRC(55e68cb1) SHA1(b19de884fb3c988599772a76c0c5229e76241e6d) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "griffon.d7", 0x0000, 0x0800, CRC(53c52eb0) SHA1(19624ca359996b77d3c65ef78a7af90eeb092377) ) - ROM_LOAD( "griffon.d8", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( falcona ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "f45.bin", 0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) ) - ROM_LOAD( "f46.bin", 0x0800, 0x0800, CRC(22ddb600) SHA1(9606d11722261990c34b788baae5dc7516ba52d6) ) - ROM_LOAD( "f47.bin", 0x1000, 0x0800, CRC(cb2838d9) SHA1(332e339475b17d17eeb43a524c5cb3bf9818837a) ) - ROM_LOAD( "f48.bin", 0x1800, 0x0800, CRC(552cf57a) SHA1(d9d36495f0cb25c1648e0807c8d37daf49bbf0d4) ) - ROM_LOAD( "f49.bin", 0x2000, 0x0800, CRC(1ff3a982) SHA1(66fb39e7abdf7a9c6e2eb01d41cfe9429781d6aa) ) - ROM_LOAD( "f50.bin", 0x2800, 0x0800, CRC(8c83bff7) SHA1(3dfb090d7e3a9ae8da882b06e166c48555eaf77c) ) - ROM_LOAD( "f51.bin", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) ) - ROM_LOAD( "f52.bin", 0x3800, 0x0800, CRC(33f3af63) SHA1(f2e2ebdec205360a6fa8ce4bc8cdf15b82b02728) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) - ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "f39.bin", 0x0000, 0x0800, CRC(53c52eb0) SHA1(19624ca359996b77d3c65ef78a7af90eeb092377) ) - ROM_LOAD( "f40.bin", 0x0800, 0x0800, CRC(eba42f0f) SHA1(378282cb2c4e10c23179ae3c605ae7bf691150f6) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ - ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ -ROM_END - -ROM_START( pleiads ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic47.r1", 0x0000, 0x0800, CRC(960212c8) SHA1(52a3232e99920805ce9e195b8a6338ae7044dd18) ) - ROM_LOAD( "ic48.r2", 0x0800, 0x0800, CRC(b254217c) SHA1(312a33cca09d5d2d18992f28eb051230a90db6e3) ) - ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(87e700bb) SHA1(0f352b5461da957c564920fd1da83bc81f41ffb9) ) /* IC 49 on real board */ - ROM_LOAD( "ic48.bin", 0x1800, 0x0800, CRC(2d5198d0) SHA1(6bfdc6c965199c5d4d687fe35dda057ec38cd8e0) ) /* IC 50 on real board */ - ROM_LOAD( "ic51.r5", 0x2000, 0x0800, CRC(49c629bc) SHA1(fd7937d0c114c8d9c1efaa9918ae3df2af41f032) ) - ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(f1a8a00d) SHA1(5c183e3a73fa882ffec3cb9219fb5619e625591a) ) /* IC 52 on real board */ - ROM_LOAD( "ic53.r7", 0x3000, 0x0800, CRC(b5f07fbc) SHA1(2ae687c84732942e69ad4dfb7a4ac1b97b77487a) ) - ROM_LOAD( "ic52.bin", 0x3800, 0x0800, CRC(b1b5a8a6) SHA1(7e4ef298c8ddefc7dc0cbf94a9c9f36a4b807ba0) ) /* IC 54 on real board */ - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.bin", 0x0000, 0x0800, CRC(4e30f9e7) SHA1(da023a94725dc40107cd97e4decfd4dc0f9f00ee) ) /* IC 45 on real board */ - ROM_LOAD( "ic24.bin", 0x0800, 0x0800, CRC(5188fc29) SHA1(421dedc674c6dde7abf01412df035a8eb8e6db9b) ) /* IC 44 on real board */ - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(85866607) SHA1(cd240bd056f761b2f9e2142049434f02cae3e315) ) /* IC 27 on real board */ - ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(a841d511) SHA1(8349008ab1d8ef08775b54170c37deb1d391fffc) ) /* IC 26 on real board */ - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "7611-5.26", 0x0000, 0x0100, CRC(7a1bcb1e) SHA1(bdfab316ea26e2063879e7aa78b6ae2b55eb95c8) ) /* palette low bits */ - ROM_LOAD( "7611-5.33", 0x0100, 0x0100, CRC(e38eeb83) SHA1(252880d80425b2e697146e76efdc6cb9f3ba0378) ) /* palette high bits */ -ROM_END - -ROM_START( pleiadbl ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic45.bin", 0x0000, 0x0800, CRC(93fc2958) SHA1(d8723c4f4376e035e655f69352c1765fdbf4a602) ) - ROM_LOAD( "ic46.bin", 0x0800, 0x0800, CRC(e2b5b8cd) SHA1(514ab2b24fc1d6d1fd64e74470b601ba9a11f36f) ) - ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(87e700bb) SHA1(0f352b5461da957c564920fd1da83bc81f41ffb9) ) - ROM_LOAD( "ic48.bin", 0x1800, 0x0800, CRC(2d5198d0) SHA1(6bfdc6c965199c5d4d687fe35dda057ec38cd8e0) ) - ROM_LOAD( "ic49.bin", 0x2000, 0x0800, CRC(9dc73e63) SHA1(8a2de6666fecead7071285125b16641b50249adc) ) - ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(f1a8a00d) SHA1(5c183e3a73fa882ffec3cb9219fb5619e625591a) ) - ROM_LOAD( "ic51.bin", 0x3000, 0x0800, CRC(6f56f317) SHA1(d7e6b0b1c58b741de3504640bcc23e86d1a134a0) ) - ROM_LOAD( "ic52.bin", 0x3800, 0x0800, CRC(b1b5a8a6) SHA1(7e4ef298c8ddefc7dc0cbf94a9c9f36a4b807ba0) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic23.bin", 0x0000, 0x0800, CRC(4e30f9e7) SHA1(da023a94725dc40107cd97e4decfd4dc0f9f00ee) ) - ROM_LOAD( "ic24.bin", 0x0800, 0x0800, CRC(5188fc29) SHA1(421dedc674c6dde7abf01412df035a8eb8e6db9b) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(85866607) SHA1(cd240bd056f761b2f9e2142049434f02cae3e315) ) - ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(a841d511) SHA1(8349008ab1d8ef08775b54170c37deb1d391fffc) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "7611-5.26", 0x0000, 0x0100, CRC(7a1bcb1e) SHA1(bdfab316ea26e2063879e7aa78b6ae2b55eb95c8) ) /* palette low bits */ - ROM_LOAD( "7611-5.33", 0x0100, 0x0100, CRC(e38eeb83) SHA1(252880d80425b2e697146e76efdc6cb9f3ba0378) ) /* palette high bits */ -ROM_END - -ROM_START( pleiadce ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pleiades.47", 0x0000, 0x0800, CRC(711e2ba0) SHA1(62d9108b9066d3e2b99c712daf2b9412704970cc) ) - ROM_LOAD( "pleiades.48", 0x0800, 0x0800, CRC(93a36943) SHA1(7cb4a9e8b60e28415df8401373ff4e595eaab7f5) ) - ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(87e700bb) SHA1(0f352b5461da957c564920fd1da83bc81f41ffb9) ) - ROM_LOAD( "pleiades.50", 0x1800, 0x0800, CRC(5a9beba0) SHA1(e9cf03c88d8db2a7cf97877a103cfdd1fe3f459e) ) - ROM_LOAD( "pleiades.51", 0x2000, 0x0800, CRC(1d828719) SHA1(54857a3de9f4c9c5f18b0d46cf428b4171f839e9) ) - ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(f1a8a00d) SHA1(5c183e3a73fa882ffec3cb9219fb5619e625591a) ) - ROM_LOAD( "pleiades.53", 0x3000, 0x0800, CRC(037b319c) SHA1(2ff7a7777a63326e2abca2d1881df33a8e3f8561) ) - ROM_LOAD( "pleiades.54", 0x3800, 0x0800, CRC(ca264c7c) SHA1(3a6adfaa935a1a11cb62e73b9f43b228b711c2da) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pleiades.45", 0x0000, 0x0800, CRC(8dbd3785) SHA1(700cb9eb8ea64be99d843910cebcd29d601ab2e9) ) - ROM_LOAD( "pleiades.44", 0x0800, 0x0800, CRC(0db3e436) SHA1(cd1825775b0a10df66d2ccc01cb4b6a9a3d2141a) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(85866607) SHA1(cd240bd056f761b2f9e2142049434f02cae3e315) ) - ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(a841d511) SHA1(8349008ab1d8ef08775b54170c37deb1d391fffc) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "7611-5.26", 0x0000, 0x0100, CRC(7a1bcb1e) SHA1(bdfab316ea26e2063879e7aa78b6ae2b55eb95c8) ) /* palette low bits */ - ROM_LOAD( "7611-5.33", 0x0100, 0x0100, CRC(e38eeb83) SHA1(252880d80425b2e697146e76efdc6cb9f3ba0378) ) /* palette high bits */ -ROM_END - -ROM_START( capitol ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cp1.45", 0x0000, 0x0800, CRC(0922905b) SHA1(501342b0162bba43570b1cbefa1ada6302a54017) ) - ROM_LOAD( "cp2.46", 0x0800, 0x0800, CRC(4f168f45) SHA1(8d268dad54a2cf7081f22a29a3e025174ae462e7) ) - ROM_LOAD( "cp3.47", 0x1000, 0x0800, CRC(3975e0b0) SHA1(d509398aa8b90c7c451d9e60bc1ca6488b1563a9) ) - ROM_LOAD( "cp4.48", 0x1800, 0x0800, CRC(da49caa8) SHA1(274c8dcabb9f43a2cbf9682b849ffd2bc8cf6496) ) - ROM_LOAD( "cp5.49", 0x2000, 0x0800, CRC(38e4362b) SHA1(c5aeb8b7d49b3da760904a16b57604e782cf29fc) ) - ROM_LOAD( "cp6.50", 0x2800, 0x0800, CRC(aaf798eb) SHA1(660774db4195aaa499569804a2304e969f168cdf) ) - ROM_LOAD( "cp7.51", 0x3000, 0x0800, CRC(eaadf14c) SHA1(753a46317e98b1ae63f88f5c3e70ff1c7ec04286) ) - ROM_LOAD( "cp8.52", 0x3800, 0x0800, CRC(d3fe2af4) SHA1(f0c9bfc17ba6f55fbe95136da40a3de775aa46d2) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cp11.23", 0x0000, 0x0800, CRC(9b0bbb8d) SHA1(cde7c0140e773fe28e97e36486d4e048710f6004) ) - ROM_LOAD( "cp12.24", 0x0800, 0x0800, CRC(39949e66) SHA1(21a204f22f04c5808538b21d49ebc6b7cb7625e8) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cp9.39", 0x0000, 0x0800, CRC(04f7d19a) SHA1(9b8e55ad0e374d4e7538e82c7b3f081b3bb98124) ) - ROM_LOAD( "cp10.40", 0x0800, 0x0800, CRC(4807408f) SHA1(4aa81e934a65e9986b194e9a9bab99f6c85ff7a5) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "ic40.prm", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) - ROM_LOAD( "ic41.prm", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) -ROM_END - -ROM_START( survival ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "g959-32a.u45", 0x0000, 0x0800, CRC(0bc53541) SHA1(0d1bcf226b89d0cfe0864aab8126b276273a23c2) ) - ROM_LOAD( "g959-33a.u46", 0x0800, 0x0800, CRC(726e9428) SHA1(515c6278ece9bf39827b9c886a1a900e274bd272) ) - ROM_LOAD( "g959-34a.u47", 0x1000, 0x0800, CRC(78f166ff) SHA1(ad079372067319dcfad4a00e437d34a999ff9161) ) - ROM_LOAD( "g959-35a.u48", 0x1800, 0x0800, CRC(59dbe099) SHA1(b7a60302510c72d61b397f7d0f615cfe1762ef5f) ) - ROM_LOAD( "g959-36a.u49", 0x2000, 0x0800, CRC(bd5e586e) SHA1(8e53e5de7bf73cb56fbd6c18017f09cbbbb17769) ) - ROM_LOAD( "g959-37a.u50", 0x2800, 0x0800, CRC(b2de1094) SHA1(c8b35b9dd57bd50f837087f10c50f2af04cea823) ) - ROM_LOAD( "g959-38a.u51", 0x3000, 0x0800, CRC(131c4440) SHA1(c2610d8fbf63110767037c384b6776cfe981da4c) ) - ROM_LOAD( "g959-39a.u52", 0x3800, 0x0800, CRC(213bc910) SHA1(a03b3ca8185e929898cc32ea2d5e944c4c897d0d) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g959-42.u23", 0x0000, 0x0800, CRC(3d1ce38d) SHA1(48b94027467ba360c08a7f56bb75474e6859381f) ) - ROM_LOAD( "g959-43.u24", 0x0800, 0x0800, CRC(cd150da9) SHA1(642264c0eed34ae2b9f1156d261786361f296d1a) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "g959-40.u39", 0x0000, 0x0800, CRC(41dee996) SHA1(55a792504b2ffc1236eb3f427dee38893e1ca5b7) ) - ROM_LOAD( "g959-41.u40", 0x0800, 0x0800, CRC(a255d6dc) SHA1(1b2f635f4392d0df1cbd527dcf6cf662b2a1014e) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "clr.u40", 0x0000, 0x0100, CRC(b3e20669) SHA1(4f01c5d74fc8abe748dd88e4513edf52b977ee32) ) /* palette low bits */ - ROM_LOAD( "clr.u41", 0x0100, 0x0100, CRC(abddf69a) SHA1(e22c380a94fb491bec95c4f4c2d4f072839c09cf) ) /* palette high bits */ -ROM_END - - -static DRIVER_INIT( condor ) -{ - /* additional inputs for coinage */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x5000, 0, 0, input_port_4_r ); -} - -static DRIVER_INIT( survival ) -{ - unsigned char *rom = memory_region(REGION_CPU1); - - rom[0x0157] = 0x21; /* ROM check */ - rom[0x02e8] = 0x21; /* crash due to protection, it still locks up somewhere else */ -} - - - -GAME( 1980, phoenix, 0, phoenix, phoenix, 0, ROT90, "Amstar", "Phoenix (Amstar)", 0 ) -GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri), Set 1", 0 ) -GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri), Set 2", 0 ) -GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, 0, ROT90, "Taito", "Phoenix (Taito)", 0 ) -GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, 0, ROT90, "bootleg", "Phoenix (T.P.N.)", 0 ) -GAME( 1981, phoenixc, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg?", "Phoenix (IRECSA, G.G.I Corp)", 0 ) -GAME( 1981, condor, phoenix, condor, condor, condor, ROT90, "Sidam", "Condor", 0 ) -// the following 2 were common bootlegs in england & france respectively -GAME( 1980, falcon, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg", "Falcon (bootleg set 1)", 0 ) -GAME( 1980, vautour, phoenix, phoenix, phoenixt, 0, ROT90, "bootleg", "Vautour (set 1 - Jeutel France)", 0 ) -GAME( 1980, vautour2, phoenix, condor, condor, condor, ROT90, "bootleg", "Vautour (set 2)", 0 ) -// fenix is an italian bootleg based on vautour -GAME( 1980, fenix, phoenix, condor, condor, condor, ROT90, "bootleg", "Fenix", GAME_NOT_WORKING ) -GAME( 1980, griffon, phoenix, condor, condor, condor, ROT90, "Videotron", "Griffon", 0 ) -GAME( 1980, falcona, phoenix, condor, falcona, 0, ROT90, "bootleg", "Falcon (bootleg set 2)", 0 ) -GAME( 1981, pleiads, 0, pleiads, pleiads, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS ) -GAME( 1981, pleiadbl, pleiads, pleiads, pleiads, 0, ROT90, "bootleg", "Pleiads (bootleg)", GAME_IMPERFECT_COLORS ) -GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS ) -GAME( 1981, capitol, pleiads, phoenix, capitol, 0, ROT90, "Universal Video Spiel", "Capitol", GAME_IMPERFECT_COLORS ) -GAME( 1982, survival, 0, survival, survival, survival, ROT90, "Rock-ola", "Survival", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) diff --git a/src/drivers/pingpong.c b/src/drivers/pingpong.c deleted file mode 100644 index 76712d521..000000000 --- a/src/drivers/pingpong.c +++ /dev/null @@ -1,467 +0,0 @@ -#include "driver.h" -#include "sound/sn76496.h" - -extern WRITE8_HANDLER( pingpong_videoram_w ); -extern WRITE8_HANDLER( pingpong_colorram_w ); - -extern PALETTE_INIT( pingpong ); -extern VIDEO_START( pingpong ); -extern VIDEO_UPDATE( pingpong ); - -static int intenable; - -static WRITE8_HANDLER( coin_w ) -{ - /* bit 2 = irq enable, bit 3 = nmi enable */ - intenable = data & 0x0c; - - /* bit 0/1 = coin counters */ - coin_counter_w(0,data & 1); - coin_counter_w(1,data & 2); - - /* other bits unknown */ -} - -static INTERRUPT_GEN( pingpong_interrupt ) -{ - if (cpu_getiloops() == 0) - { - if (intenable & 0x04) cpunum_set_input_line(0, 0, HOLD_LINE); - } - else if (cpu_getiloops() % 2) - { - if (intenable & 0x08) cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x97ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa800, 0xa800) AM_READ(input_port_0_r) - AM_RANGE(0xa880, 0xa880) AM_READ(input_port_1_r) - AM_RANGE(0xa900, 0xa900) AM_READ(input_port_2_r) - AM_RANGE(0xa980, 0xa980) AM_READ(input_port_3_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(pingpong_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(pingpong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x9000, 0x9002) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9003, 0x9052) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9053, 0x97ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* coin counters + irq enables */ - AM_RANGE(0xa200, 0xa200) AM_WRITE(MWA8_NOP) /* SN76496 data latch */ - AM_RANGE(0xa400, 0xa400) AM_WRITE(SN76496_0_w) /* trigger read */ - AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( merlinmm_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x5400, 0x57ff) AM_RAM - AM_RANGE(0x6000, 0x6007) AM_WRITENOP /* solenoid writes */ - AM_RANGE(0x7000, 0x7000) AM_READ(input_port_4_r) - AM_RANGE(0x8000, 0x83ff) AM_RAM AM_WRITE(pingpong_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_WRITE(pingpong_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x9000, 0x9002) AM_RAM - AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9053, 0x97ff) AM_RAM - AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* irq enables */ - AM_RANGE(0xa000, 0xa000) AM_READ(input_port_0_r) - AM_RANGE(0xa080, 0xa080) AM_READ(input_port_1_r) - AM_RANGE(0xa100, 0xa100) AM_READ(input_port_2_r) - AM_RANGE(0xa180, 0xa180) AM_READ(input_port_3_r) - AM_RANGE(0xa200, 0xa200) AM_WRITE(MWA8_NOP) /* SN76496 data latch */ - AM_RANGE(0xa400, 0xa400) AM_WRITE(SN76496_0_w) /* trigger read */ - AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( pingpong ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x0F, 0x0F, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0A, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0F, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0C, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0E, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0B, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0D, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xF0, 0xF0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0xA0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xF0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xC0, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0xE0, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xB0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xD0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START /* DSW2 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( merlinmm ) - PORT_START_TAG("IN0") - PORT_DIPNAME( 0x01, 0x01, "Bank 3-3") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Bank 3-2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Bank 3-1") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Door Close") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Door Open") //Seems strange, one input to register an open door - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) //And a different one for closing it! - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - - PORT_START_TAG("IN2") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, "Stake" ) - PORT_DIPSETTING( 0x02, "10p" ) - PORT_DIPSETTING( 0x00, "20p" ) - PORT_DIPNAME( 0x04, 0x04, "Bank 1-6") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Bank 1-5") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "10p Enabled" ) - PORT_DIPSETTING( 0x10, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, "20p Enabled" ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "50p Enabled" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, "100p Enabled" ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - - PORT_START_TAG("IN3") - PORT_DIPNAME( 0x01, 0x01, "Bank 2-8") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Bank 2-7") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Bank 2-6") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Bank 2-5") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Bank 2-4") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Bank 2-3") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Bank 2-2") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Bank 2-1") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN4") - PORT_DIPNAME( 0x01, 0x01, "10P Level" )//Most likely to be optos, rather than DIPs. - PORT_DIPSETTING( 0x01, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x02, 0x02, "20P Level" ) - PORT_DIPSETTING( 0x02, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x04, 0x04, "50P Level" ) - PORT_DIPSETTING( 0x04, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x08, 0x08, "100P Level" ) - PORT_DIPSETTING( 0x08, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("10P") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("20P") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50P") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100P") -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 4, 0 }, /* the bitplanes are packed in one nibble */ - { 3, 2, 1, 0, 8*8+3, 8*8+2, 8*8+1, 8*8+0 }, /* x bit */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, /* y bit */ - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 128, /* 128 sprites */ - 2, /* 2 bits per pixel */ - { 4, 0 }, /* the bitplanes are packed in one nibble */ - { 12*16+3,12*16+2,12*16+1,12*16+0, - 8*16+3, 8*16+2, 8*16+1, 8*16+0, - 4*16+3, 4*16+2, 4*16+1, 4*16+0, - 3, 2, 1, 0 }, /* x bit */ - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, /* y bit */ - 64*8 /* every char takes 64 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 64 }, - { REGION_GFX2, 0, &spritelayout, 64*4, 64 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( pingpong ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("cpu",Z80,18432000/6) /* 3.072 MHz (probably) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(pingpong_interrupt,16) /* 1 IRQ + 8 NMI */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(64*4+64*4) - - MDRV_PALETTE_INIT(pingpong) - MDRV_VIDEO_START(pingpong) - MDRV_VIDEO_UPDATE(pingpong) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 18432000/8) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/* too fast! */ -static MACHINE_DRIVER_START( merlinmm ) - MDRV_IMPORT_FROM( pingpong ) - MDRV_CPU_MODIFY("cpu") - MDRV_CPU_PROGRAM_MAP(merlinmm_map,0) - MDRV_CPU_VBLANK_INT(pingpong_interrupt,2) - - MDRV_NVRAM_HANDLER(generic_0fill) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( pingpong ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "pp_e04.rom", 0x0000, 0x4000, CRC(18552f8f) SHA1(cb03659b5e8a68003e72182a20979384d829280f) ) - ROM_LOAD( "pp_e03.rom", 0x4000, 0x4000, CRC(ae5f01e8) SHA1(f0d6a2c64822f2662fed3f601e279db18246f894) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pp_e01.rom", 0x0000, 0x2000, CRC(d1d6f090) SHA1(7b7d7cb90bed746dda871227463145263e4b0c5a) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pp_e02.rom", 0x0000, 0x2000, CRC(33c687e0) SHA1(7c90de4d163d2ffad00c8cb6a194fa6125a4f4c1) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "pingpong.3j", 0x0000, 0x0020, CRC(3e04f06e) SHA1(a642c350f148e062d56eb2a2fc53c470603000e3) ) /* palette (this might be bad) */ - ROM_LOAD( "pingpong.11j", 0x0020, 0x0100, CRC(09d96b08) SHA1(81405e33eacc47f91ea4c7221d122f7e6f5b1e5d) ) /* sprites */ - ROM_LOAD( "pingpong.5h", 0x0120, 0x0100, CRC(8456046a) SHA1(8226f1325c14eb8aed5cd3c3d6bad9f9fd88c5fa) ) /* characters */ -ROM_END - -ROM_START( merlinmm ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "merlinmm.ic2", 0x0000, 0x4000, CRC(ea5b6590) SHA1(fdd5873c67761955e33260743cc45075dea34fb4) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "merlinmm.7h", 0x0000, 0x2000, CRC(f7d535aa) SHA1(65f100c15b07ec3aa21f5ed132e2fbf6e9120dbe) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "merl_sp.12c", 0x0000, 0x2000, CRC(517ecd57) SHA1(b0d4e2d106cddd6d19acd0e10f2d32544c84a900) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "merlinmm.3j", 0x0000, 0x0020, CRC(d56e91f4) SHA1(152d88e4d168f697030d96c02ab9aeb220cc765d) ) /* palette */ - ROM_LOAD( "pingpong.11j", 0x0020, 0x0100, CRC(09d96b08) SHA1(81405e33eacc47f91ea4c7221d122f7e6f5b1e5d) ) /* sprites */ - ROM_LOAD( "pingpong.5h", 0x0120, 0x0100, CRC(8456046a) SHA1(8226f1325c14eb8aed5cd3c3d6bad9f9fd88c5fa) ) /* characters */ -ROM_END - -ROM_START( cashquiz ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "cashqcv5.ic3", 0x0000, 0x4000, CRC(8e9e2bed) SHA1(1894d40f89226a810c703ce5e49fdfd64d70287f) ) - /* 0x4000 - 0x7fff = extra hardware for question board */ - - ROM_REGION( 0x80000, REGION_USER1, ROMREGION_ERASEFF) /* Question roms */ - ROM_LOAD( "q30_soaps.ic1", 0x00000, 0x8000, CRC(b35a30ac) SHA1(5daf52a6d973f5a1b1ec3395962bcab690c54e43) ) - ROM_LOAD( "q10.ic2", 0x08000, 0x8000, CRC(54962e11) SHA1(3c89ac26ebc002b2bc723f1424a7ba3db7a98e5f) ) - ROM_LOAD( "q29_newsoccrick.ic3",0x10000, 0x8000, CRC(03d47262) SHA1(8a849cb4d4440042042cbdc0f34feebe71d6cb37) ) - ROM_LOAD( "q28_sportstime.ic4", 0x18000, 0x8000, CRC(2bd00476) SHA1(88ed9d26909873c52273290686b4783563edfb61) ) - ROM_LOAD( "q20_mot.ic5", 0x20000, 0x8000, CRC(17a38baf) SHA1(5560932e4747a242df7c8b7bbaf8679c9a8be6ac) ) - ROM_LOAD( "q14_popmusic2.ic6", 0x28000, 0x8000, CRC(e486d6ee) SHA1(421723fa7604c0509092891e53723191bd62e294) ) - ROM_LOAD( "q26_screenent.ic7", 0x30000, 0x8000, CRC(9d130515) SHA1(bfc32219d4d4eaca4efa02c3c46125144c8cd286) ) - ROM_LOAD( "q19.ic8", 0x38000, 0x8000, CRC(9f3f77e6) SHA1(aa1600215e774b090f379a0aae520027cd1795c1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "cashq.7h", 0x0000, 0x2000, CRC(44b72a4f) SHA1(a993f1570cf9d8f86d4229198e9b1a0d6a92e51f) ) - ROM_CONTINUE(0x0000, 0x2000) /* rom is a 27128 in a 2764 socket */ - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "cashq.12c", 0x0000, 0x2000, NO_DUMP ) // missing :-( - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "cashquiz.3j", 0x0000, 0x0020, CRC(dc70e23b) SHA1(90948f76d5c61eb57838e013aa93d733913a2d92) ) /* palette */ - ROM_LOAD( "pingpong.11j", 0x0020, 0x0100, CRC(09d96b08) SHA1(81405e33eacc47f91ea4c7221d122f7e6f5b1e5d) ) /* sprites */ - ROM_LOAD( "pingpong.5h", 0x0120, 0x0100, CRC(8456046a) SHA1(8226f1325c14eb8aed5cd3c3d6bad9f9fd88c5fa) ) /* characters */ -ROM_END - -DRIVER_INIT( merlinmm ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - int i; - - /* decrypt program code */ - for( i = 0; i < 0x4000; i++ ) - ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); -} - -WRITE8_HANDLER( cashquiz_question_bank_w ) -{ - logerror("%04x cashquiz_question_bank_w address %04x data %02x\n", activecpu_get_pc(), offset+0x4000, data); - /* how do we interpret the bank values? I can't make sense of them */ -} - -READ8_HANDLER( cashquiz_unk_extra_r ) -{ - logerror("%04x cashquiz_unk_extra_r address %04x\n", activecpu_get_pc(), offset+0x4000); - return rand(); -} - -WRITE8_HANDLER( cashquiz_unk_extra_w ) -{ - logerror("%04x cashquiz_unk_extra_w address %04x data %02x\n", activecpu_get_pc(), offset+0x4000, data); -} - -DRIVER_INIT( cashquiz ) -{ - UINT8 *ROM; - int i; - - /* decrypt program code */ - ROM = memory_region(REGION_CPU1); - for( i = 0; i < 0x4000; i++ ) - ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); - - /* decrypt questions - like wizz quiz? (some of the question roms match..) */ - ROM = memory_region(REGION_USER1); - for( i = 0; i < 0x80000; i++ ) - ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); - - /* extra hardware ends up being mapped in the banked area */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x7fff, 0, 0, cashquiz_unk_extra_w ); // catch anything - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x4001, 0, 0, cashquiz_question_bank_w); // seems to be banking.. - - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x4000, 0x7fff, 0, 0, cashquiz_unk_extra_r ); // catch anything - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x5000, 0x57ff, 0, 0, MRA8_BANK1); // reads bank data here? - memory_set_bankptr( 1, memory_region(REGION_USER1) ); -} - - -GAME( 1985, pingpong, 0, pingpong, pingpong, 0, ROT0, "Konami", "Ping Pong", 0 ) -GAME( 1986, merlinmm, 0, merlinmm, merlinmm, merlinmm, ROT90,"Zilec - Zenitone", "Merlins Money Maze", 0 ) -GAME( 1986, cashquiz, 0, merlinmm, merlinmm, cashquiz, ROT0, "Zilec - Zenitone", "Cash Quiz (Type B, Version 5)", GAME_NOT_WORKING ) diff --git a/src/drivers/playch10.c b/src/drivers/playch10.c deleted file mode 100644 index 3022cc0d2..000000000 --- a/src/drivers/playch10.c +++ /dev/null @@ -1,1752 +0,0 @@ -/*************************************************************************** - -Playchoice 10 - (c) 1986 Nintendo of America - - Written by Ernesto Corvi. - - Portions of this code are heavily based on - Brad Oliver's MESS implementation of the NES. - - Thanks to people that contributed to this driver, namely: - - Brad Oliver. - - Aaron Giles. - -**************************************************************************** - -BIOS: - Memory Map - ---------- - 0000 - 3fff = Program ROM (8T) - 8000 - 87ff = RAM (8V) - 8800 - 8fff = RAM (8W) - 9000 - 97ff = SRAM (8R - Videoram) - Cxxx = /INST ROM SEL - Exxx = /IDSEL - - Input Ports ----------- - Read: - - Port 0 - bit0 = CHSelect(?) - bit1 = Enter button - bit2 = Reset button - bit3 = INTDETECT - bit4 = N/C - bit5 = Coin 2 - bit6 = Service button - bit7 = Coin 1 - - Port 1 = Dipswitch 1 - - Port 2 = Dipswitch 2 - - Port 3 = /DETECTCLR - - Write: (always bit 0) - - Port 0 = SDCS (ShareD CS) - - Port 1 = /CNTRLMASK - - Port 2 = /DISPMASK - - Port 3 = /SOUNDMASK - - Port 4 = /GAMERES - - Port 5 = /GAMESTOP - - Port 6 = N/C - - Port 7 = N/ - - Port 8 = NMI Enable - - Port 9 = DOG DI - - Port A = /PPURES - - Port B = CSEL0 \ - - Port C = CSEL1 \ (Cartridge select: 0 to 9) - - Port D = CSEL2 / - - Port E = CSEL3 / - - Port F = 8UP KEY - -**************************************************************************** - -Working games: --------------- - - 1942 (NF) - Standard board - - Balloon Fight (BF) - Standard board - - Baseball (BA) - Standard board - - Baseball Stars (B9) - F board - - Captain Sky Hawk (YW) - i board - - Castlevania (CV) - B board - - Contra (CT) - B board - - Double Dragon (WD) - F board - - Double Dribble (DW) - B board - - Dr. Mario (VU) - F board - - Duck Hunt (DH) - Standard board - - Excite Bike (EB) - Standard board - - Fester's Quest (EQ) - F board - - Gauntlet (GL) - G board - - Golf (GF) - Standard board - - Gradius (GR) - A board - - Hogan's Alley (HA) - Standard board - - Kung Fu (SX) - Standard board - - Mario Bros. (MA) - Standard board - - Mario Open Golf (UG) - K board - - Mega Man 3 (XU) - G board - - Metroid (MT) - D board - - Ninja Gaiden (NG) - F board - - Ninja Gaiden 2 (NW) - G board - - Ninja Gaiden 3 (3N) - G board - - Nintendo World Cup (XZ) - G board - - Power Blade (7T) - G board - - Pro Wrestling (PW) - B board - - Rad Racer (RC) - D board - - Rad Racer II (QR) - G board - - RC Pro Am (PM) - F board - - Rescue Rangers (RU) - F board - - Rockin' Kats (7A) - G board - - Rush N' Attack (RA) - B board - - Rygar (RY) - B board - - Solar Jetman (LJ) - i board - - Super C (UE) - G board - - Super Mario Bros (SM) - Standard board - - Super Mario Bros 2 (MW) - G board - - Super Mario Bros 3 (UM) - G board - - Tecmo Bowl (TW) - F board - - Teenage Mutant Ninja Turtles (U2) - F board - - Teenage Mutant Ninja Turtles 2 (2N) - G board - - Tennis (TE) - Standard board - - Track & Field (TR) - A board - - Trojan (TJ) - B board - - The Goonies (GN) - C board - - Volley Ball (VB) - Standard board - - Wild Gunman (WG) - Standard board - - Yo Noid (YC) - F board - -Non working games due to mapper/nes emulation issues: ------------------------------------------------------ - - Mike Tyson's Punchout (PT) - E board - - Pinbot (IO) - H board - -Non working games due to missing roms: --------------------------------------- - - ShatterHand (??) - ? board - -**************************************************************************** - -Dipswitches information: ------------------------- -Steph 2000.09.07 - -The 6 first DSWA (A-F) are used for coinage (units of time given for coin A/coin B) -When bit 6 of DSWB (O) is ON, units of time given for coin B are divided by 2 - -The 6 first DSWB (I-N) are used to set timer speed : - [0x80d5] = ( ( (IN A,02) | 0xc0 ) + 0x3c ) & 0xff - -When bit 7 of DSWB (P) is ON, you're in 'Freeplay' mode with 9999 units of time ... -However, this is effective ONLY if 7 other DSWB (I-O) are OFF ! - -I add the 32 combinations for coinage. - -As I don't know what is the default value for timer speed, and I don't want to write -the 64 combinaisons, I only put some values ... Feel free to add the other ones ... - - DSW A DSW B -HGFEDCBA PONMLKJI coin A coin B - -xx000000 x0xxxxxx 300 0 -xx000001 x0xxxxxx 300 100 -xx000010 x0xxxxxx 300 200 -xx000011 x0xxxxxx 300 300 -xx000100 x0xxxxxx 300 400 -xx000101 x0xxxxxx 300 500 -xx000110 x0xxxxxx 300 600 -xx000111 x0xxxxxx 300 700 -xx001000 x0xxxxxx 300 800 -xx001001 x0xxxxxx 300 900 -xx001010 x0xxxxxx 150 0 -xx001011 x0xxxxxx 150 200 -xx001100 x0xxxxxx 150 400 -xx001101 x0xxxxxx 150 600 -xx001110 x0xxxxxx 150 800 -xx001111 x0xxxxxx 150 500 -xx010000 x0xxxxxx 300 1000 -xx010001 x0xxxxxx 300 1100 -xx010010 x0xxxxxx 300 1200 -xx010011 x0xxxxxx 300 1300 -xx010100 x0xxxxxx 300 1400 -xx010101 x0xxxxxx 300 1500 -xx010110 x0xxxxxx 300 1600 -xx010111 x0xxxxxx 300 1700 -xx011000 x0xxxxxx 300 1800 -xx011001 x0xxxxxx 300 1900 -xx011010 x0xxxxxx 150 1000 -xx011011 x0xxxxxx 150 1200 -xx011100 x0xxxxxx 150 1400 -xx011101 x0xxxxxx 150 1600 -xx011110 x0xxxxxx 150 1800 -xx011111 x0xxxxxx 150 1500 -xx100000 x0xxxxxx 300 2000 -xx100001 x0xxxxxx 300 2100 -xx100010 x0xxxxxx 300 2200 -xx100011 x0xxxxxx 300 2300 -xx100100 x0xxxxxx 300 2400 -xx100101 x0xxxxxx 300 2500 -xx100110 x0xxxxxx 300 2600 -xx100111 x0xxxxxx 300 2700 -xx101000 x0xxxxxx 300 2800 -xx101001 x0xxxxxx 300 2900 -xx101010 x0xxxxxx 150 2000 -xx101011 x0xxxxxx 150 2200 -xx101100 x0xxxxxx 150 2400 -xx101101 x0xxxxxx 150 2600 -xx101110 x0xxxxxx 150 2800 -xx101111 x0xxxxxx 150 2500 -xx110000 x0xxxxxx 300 3000 -xx110001 x0xxxxxx 300 3100 -xx110010 x0xxxxxx 300 3200 -xx110011 x0xxxxxx 300 3300 -xx110100 x0xxxxxx 300 3400 -xx110101 x0xxxxxx 300 3500 -xx110110 x0xxxxxx 300 3600 -xx110111 x0xxxxxx 300 3700 -xx111000 x0xxxxxx 300 3800 -xx111001 x0xxxxxx 300 3900 -xx111010 x0xxxxxx 150 3000 -xx111011 x0xxxxxx 150 3200 -xx111100 x0xxxxxx 150 3400 -xx111101 x0xxxxxx 150 3600 -xx111110 x0xxxxxx 150 3800 -xx111111 x0xxxxxx 150 3500 - -xx000000 x1xxxxxx 300 0 -xx000001 x1xxxxxx 300 50 -xx000010 x1xxxxxx 300 100 -xx000011 x1xxxxxx 300 150 -xx000100 x1xxxxxx 300 200 -xx000101 x1xxxxxx 300 250 -xx000110 x1xxxxxx 300 300 -xx000111 x1xxxxxx 300 350 -xx001000 x1xxxxxx 300 400 -xx001001 x1xxxxxx 300 450 -xx001010 x1xxxxxx 150 0 -xx001011 x1xxxxxx 150 100 -xx001100 x1xxxxxx 150 200 -xx001101 x1xxxxxx 150 300 -xx001110 x1xxxxxx 150 400 -xx001111 x1xxxxxx 150 250 -xx010000 x1xxxxxx 300 500 -xx010001 x1xxxxxx 300 550 -xx010010 x1xxxxxx 300 600 -xx010011 x1xxxxxx 300 650 -xx010100 x1xxxxxx 300 700 -xx010101 x1xxxxxx 300 750 -xx010110 x1xxxxxx 300 800 -xx010111 x1xxxxxx 300 850 -xx011000 x1xxxxxx 300 900 -xx011001 x1xxxxxx 300 950 -xx011010 x1xxxxxx 150 500 -xx011011 x1xxxxxx 150 600 -xx011100 x1xxxxxx 150 700 -xx011101 x1xxxxxx 150 800 -xx011110 x1xxxxxx 150 750 -xx100000 x1xxxxxx 300 1000 -xx100001 x1xxxxxx 300 1050 -xx100010 x1xxxxxx 300 1100 -xx100011 x1xxxxxx 300 1150 -xx100100 x1xxxxxx 300 1200 -xx100101 x1xxxxxx 300 1250 -xx100110 x1xxxxxx 300 1300 -xx100111 x1xxxxxx 300 1350 -xx101000 x1xxxxxx 300 1400 -xx101001 x1xxxxxx 300 1450 -xx101010 x1xxxxxx 150 1000 -xx101011 x1xxxxxx 150 1100 -xx101100 x1xxxxxx 150 1200 -xx101101 x1xxxxxx 150 1300 -xx101110 x1xxxxxx 150 1400 -xx101111 x1xxxxxx 150 1250 -xx110000 x1xxxxxx 300 1500 -xx110001 x1xxxxxx 300 1550 -xx110010 x1xxxxxx 300 1600 -xx110011 x1xxxxxx 300 1650 -xx110100 x1xxxxxx 300 1700 -xx110101 x1xxxxxx 300 1750 -xx110110 x1xxxxxx 300 1800 -xx110111 x1xxxxxx 300 1850 -xx111000 x1xxxxxx 300 1900 -xx111001 x1xxxxxx 300 1950 -xx111010 x1xxxxxx 150 1500 -xx111011 x1xxxxxx 150 1600 -xx111100 x1xxxxxx 150 1700 -xx111101 x1xxxxxx 150 1800 -xx111110 x1xxxxxx 150 1750 - -I know that the way I code the DSW isn't correct, but I don't know how to link -O to A-F AND, at the same time, O to P ... Any help is appreciated ... - -**************************************************************************** - -Notes & Todo: -------------- - -- Look at Ninja Gaiden 3. It has some slight timming issues on the - second level. Probably related to the mapper's irq timming. -- Fix some remaining bad gfx in Rad Racer II. -- Implement Dipswitches properly once Mame can support it. -- Better control layout?. This thing has odd buttons. -- Find dumps of the rest of the RP5H01's and add the remaining games. -- Any PPU optimizations that retain accuracy are certainly welcome. -- Add correct Pinbot mapper. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/ppu2c0x.h" -#include "cpu/z80/z80.h" -#include "machine/rp5h01.h" -#include "sound/dac.h" -#include "sound/nes_apu.h" - -#include "rendlay.h" - -/* clock frequency */ -#define N2A03_DEFAULTCLOCK (21477272.724 / 12) - -/* from vidhrdw */ -extern WRITE8_HANDLER( playch10_videoram_w ); -extern PALETTE_INIT( playch10 ); -extern VIDEO_START( playch10 ); -extern VIDEO_UPDATE( playch10 ); - -/* from machine */ -extern MACHINE_RESET( pc10 ); -extern DRIVER_INIT( playch10 ); /* standard games */ -extern DRIVER_INIT( pc_gun ); /* gun games */ -extern DRIVER_INIT( pc_hrz ); /* horizontal games */ -extern DRIVER_INIT( pcaboard ); /* a-board games */ -extern DRIVER_INIT( pcbboard ); /* b-board games */ -extern DRIVER_INIT( pccboard ); /* c-board games */ -extern DRIVER_INIT( pcdboard ); /* d-board games */ -extern DRIVER_INIT( pcdboard_2 ); /* d-board games with extra ram */ -extern DRIVER_INIT( pceboard ); /* e-board games */ -extern DRIVER_INIT( pcfboard ); /* f-board games */ -extern DRIVER_INIT( pcfboard_2 ); /* f-board games with extra ram */ -extern DRIVER_INIT( pcgboard ); /* g-board games */ -extern DRIVER_INIT( pcgboard_type2 ); /* g-board games with 4 screen mirror */ -extern DRIVER_INIT( pchboard ); /* h-board games */ -extern DRIVER_INIT( pciboard ); /* i-board games */ -extern DRIVER_INIT( pckboard ); /* k-board games */ -extern READ8_HANDLER( pc10_port_0_r ); -extern READ8_HANDLER( pc10_instrom_r ); -extern READ8_HANDLER( pc10_prot_r ); -extern READ8_HANDLER( pc10_detectclr_r ); -extern READ8_HANDLER( pc10_in0_r ); -extern READ8_HANDLER( pc10_in1_r ); -extern WRITE8_HANDLER( pc10_SDCS_w ); -extern WRITE8_HANDLER( pc10_CNTRLMASK_w ); -extern WRITE8_HANDLER( pc10_DISPMASK_w ); -extern WRITE8_HANDLER( pc10_SOUNDMASK_w ); -extern WRITE8_HANDLER( pc10_NMIENABLE_w ); -extern WRITE8_HANDLER( pc10_DOGDI_w ); -extern WRITE8_HANDLER( pc10_GAMERES_w ); -extern WRITE8_HANDLER( pc10_GAMESTOP_w ); -extern WRITE8_HANDLER( pc10_PPURES_w ); -extern WRITE8_HANDLER( pc10_prot_w ); -extern WRITE8_HANDLER( pc10_CARTSEL_w ); -extern WRITE8_HANDLER( pc10_in0_w ); - -extern int pc10_sdcs; -extern int pc10_nmi_enable; -extern int pc10_dog_di; - -/******************************************************************************/ - -/* local stuff */ -static UINT8 *ram_8w, *work_ram; -static int up_8w; - -static WRITE8_HANDLER( up8w_w ) -{ - up_8w = data & 1; -} - -static READ8_HANDLER( ram_8w_r ) -{ - if ( offset >= 0x400 && up_8w ) - return ram_8w[offset]; - - return ram_8w[offset & 0x3ff]; -} - -static WRITE8_HANDLER( ram_8w_w ) -{ - if ( offset >= 0x400 && up_8w ) - ram_8w[offset] = data; - else - ram_8w[offset & 0x3ff] = data; -} - -static WRITE8_HANDLER( sprite_dma_w ) -{ - int source = ( data & 7 ); - ppu2c0x_spriteram_dma( 0, source ); -} - -static NVRAM_HANDLER( playch10 ) -{ - UINT8 *mem = memory_region( REGION_CPU2 ) + 0x6000; - - if ( read_or_write ) - mame_fwrite( file, mem, 0x1000 ); - else if (file) - mame_fread( file, mem, 0x1000 ); - else - memset(mem, 0, 0x1000); -} - -/* Only used in single monitor bios */ -static UINT8 *timedata; - -static WRITE8_HANDLER( time_w ) -{ - if(data == 0xf) - data = 0; - - timedata[offset] = data; - - popmessage("Time: %d%d%d%d",timedata[3],timedata[2],timedata[1],timedata[0]); -} - -static READ8_HANDLER( psg_4015_r ) -{ - return NESPSG_0_r(0x15); -} - -static WRITE8_HANDLER( psg_4015_w ) -{ - NESPSG_0_w(0x15, data); -} - -static WRITE8_HANDLER( psg_4017_w ) -{ - NESPSG_0_w(0x17, data); -} - -/******************************************************************************/ - -/* BIOS */ -static ADDRESS_MAP_START( bios_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM // 8V - AM_RANGE(0x8800, 0x8fff) AM_READWRITE(ram_8w_r, ram_8w_w) AM_BASE(&ram_8w) // 8W - AM_RANGE(0x9000, 0x97ff) AM_RAM AM_WRITE(playch10_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xc000, 0xdfff) AM_ROM - AM_RANGE(0xe000, 0xffff) AM_READWRITE(pc10_prot_r, pc10_prot_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bios_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READWRITE(pc10_port_0_r, pc10_SDCS_w) - AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, pc10_CNTRLMASK_w) - AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, pc10_DISPMASK_w) - AM_RANGE(0x03, 0x03) AM_READWRITE(pc10_detectclr_r, pc10_SOUNDMASK_w) - AM_RANGE(0x04, 0x04) AM_WRITE(pc10_GAMERES_w) - AM_RANGE(0x05, 0x05) AM_WRITE(pc10_GAMESTOP_w) - AM_RANGE(0x06, 0x07) AM_WRITENOP - AM_RANGE(0x08, 0x08) AM_WRITE(pc10_NMIENABLE_w) - AM_RANGE(0x09, 0x09) AM_WRITE(pc10_DOGDI_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(pc10_PPURES_w) - AM_RANGE(0x0b, 0x0e) AM_WRITE(pc10_CARTSEL_w) - AM_RANGE(0x0f, 0x0f) AM_WRITE(up8w_w) - AM_RANGE(0x10, 0x13) AM_WRITE(time_w) AM_BASE(&timedata) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cart_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x1800) AM_BASE(&work_ram) - AM_RANGE(0x2000, 0x3fff) AM_READWRITE(ppu2c0x_0_r, ppu2c0x_0_w) - AM_RANGE(0x4011, 0x4011) AM_WRITE(DAC_0_data_w) - AM_RANGE(0x4000, 0x4013) AM_READWRITE(NESPSG_0_r, NESPSG_0_w) - AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_w) - AM_RANGE(0x4015, 0x4015) AM_READWRITE(psg_4015_r, psg_4015_w) /* PSG status / first control register */ - AM_RANGE(0x4016, 0x4016) AM_READWRITE(pc10_in0_r, pc10_in0_w) - AM_RANGE(0x4017, 0x4017) AM_READWRITE(pc10_in1_r, psg_4017_w) /* IN1 - input port 2 / PSG second control register */ - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - -/******************************************************************************/ - -INPUT_PORTS_START( playch10 ) - PORT_START_TAG("BIOS") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Channel Select") PORT_CODE(KEYCODE_0) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Enter") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Reset") PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // INT Detect - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - -/* - - The correct way to handle DIPs according to the manual. - Doesn't work due to limitations of the conditional DIPs - implementation in MAME. - - - PORT_START_TAG("SW1") - PORT_DIPNAME( 0x3f, 0x09, "Prime Time Bonus" ) - // STANDARD TIME (no bonus) - PORT_DIPSETTING( 0x00, "0%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - // PRIME TIME (bonus) for 2 COINS - PORT_DIPSETTING( 0x07, "8%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x08, "17%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x09, "25%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x10, "33%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x11, "42%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x12, "50%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x13, "58%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x14, "67%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x15, "75%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x16, "83%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x17, "92%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x18, "100%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - // PRIME TIME (bonus) for 4 COINS - PORT_DIPSETTING( 0x04, "8%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x05, "17%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x06, "25%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x07, "33%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x08, "42%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x09, "50%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x10, "58%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x11, "67%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x12, "75%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x13, "83%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x14, "92%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x15, "100%" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START_TAG("SW2") - PORT_DIPNAME( 0x3f, 0x28, "Play Time/Coin" ) - // STANDARD TIME (no bonus) - PORT_DIPSETTING( 0x3f, DEF_STR( Free_Play ) ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x23, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x21, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x1f, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x1d, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x1b, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x19, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x17, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x15, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x13, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x11, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x0f, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x0d, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x0b, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x09, "4:10 (250)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x07, "4:20 (260)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x05, "4:30 (270)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x03, "4:40 (280)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - PORT_DIPSETTING( 0x01, "4:50 (290)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0xc0 ) - // PRIME TIME (bonus) for 2 COINS - PORT_DIPSETTING( 0x1c, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x1e, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x20, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x22, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x24, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x26, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x28, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x2a, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x2c, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x2e, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x30, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x32, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - PORT_DIPSETTING( 0x34, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x80 ) - // PRIME TIME (bonus) for 4 COINS - PORT_DIPSETTING( 0x1c, "2:00 (120)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x1e, "2:10 (130)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x20, "2:20 (140)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x22, "2:30 (150)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x24, "2:40 (160)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x26, "2:50 (170)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x28, "3:00 (180)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x2a, "3:10 (190)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x2c, "3:20 (200)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x2e, "3:30 (210)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x30, "3:40 (220)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x32, "3:50 (230)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - PORT_DIPSETTING( 0x34, "4:00 (240)" ) PORT_CONDITION("SW2", 0xc0, PORTCOND_EQUALS, 0x00 ) - - PORT_DIPNAME( 0xc0, 0x80, "Bonus" ) - PORT_DIPSETTING( 0xc0, "Standard Time" ) - PORT_DIPSETTING( 0x80, "Prime Time for 2 Coins" ) - PORT_DIPSETTING( 0x00, "Prime Time for 4 Coins" ) -*/ - PORT_START_TAG("SW1") - PORT_DIPNAME( 0x3f, 0x00, "Units of time (coin A/coin B)" ) - PORT_DIPSETTING( 0x00, "300/0" ) - PORT_DIPSETTING( 0x01, "300/100" ) - PORT_DIPSETTING( 0x02, "300/200" ) - PORT_DIPSETTING( 0x03, "300/300" ) - PORT_DIPSETTING( 0x04, "300/400" ) - PORT_DIPSETTING( 0x05, "300/500" ) - PORT_DIPSETTING( 0x06, "300/600" ) - PORT_DIPSETTING( 0x07, "300/700" ) - PORT_DIPSETTING( 0x08, "300/800" ) - PORT_DIPSETTING( 0x09, "300/900" ) - PORT_DIPSETTING( 0x0a, "150/0" ) - PORT_DIPSETTING( 0x0b, "150/200" ) - PORT_DIPSETTING( 0x0c, "150/400" ) - PORT_DIPSETTING( 0x0f, "150/500" ) - PORT_DIPSETTING( 0x0d, "150/600" ) - PORT_DIPSETTING( 0x0e, "150/800" ) - PORT_DIPSETTING( 0x10, "300/1000" ) - PORT_DIPSETTING( 0x11, "300/1100" ) - PORT_DIPSETTING( 0x12, "300/1200" ) - PORT_DIPSETTING( 0x13, "300/1300" ) - PORT_DIPSETTING( 0x14, "300/1400" ) - PORT_DIPSETTING( 0x15, "300/1500" ) - PORT_DIPSETTING( 0x16, "300/1600" ) - PORT_DIPSETTING( 0x17, "300/1700" ) - PORT_DIPSETTING( 0x18, "300/1800" ) - PORT_DIPSETTING( 0x19, "300/1900" ) - PORT_DIPSETTING( 0x1a, "150/1000" ) - PORT_DIPSETTING( 0x1b, "150/1200" ) - PORT_DIPSETTING( 0x1c, "150/1400" ) - PORT_DIPSETTING( 0x1f, "150/1500" ) - PORT_DIPSETTING( 0x1d, "150/1600" ) - PORT_DIPSETTING( 0x1e, "150/1800" ) - PORT_DIPSETTING( 0x20, "300/2000" ) - PORT_DIPSETTING( 0x21, "300/2100" ) - PORT_DIPSETTING( 0x22, "300/2200" ) - PORT_DIPSETTING( 0x23, "300/2300" ) - PORT_DIPSETTING( 0x24, "300/2400" ) - PORT_DIPSETTING( 0x25, "300/2500" ) - PORT_DIPSETTING( 0x26, "300/2600" ) - PORT_DIPSETTING( 0x27, "300/2700" ) - PORT_DIPSETTING( 0x28, "300/2800" ) - PORT_DIPSETTING( 0x29, "300/2900" ) - PORT_DIPSETTING( 0x2a, "150/2000" ) - PORT_DIPSETTING( 0x2b, "150/2200" ) - PORT_DIPSETTING( 0x2c, "150/2400" ) - PORT_DIPSETTING( 0x2f, "150/2500" ) - PORT_DIPSETTING( 0x2d, "150/2600" ) - PORT_DIPSETTING( 0x2e, "150/2800" ) - PORT_DIPSETTING( 0x30, "300/3000" ) - PORT_DIPSETTING( 0x31, "300/3100" ) - PORT_DIPSETTING( 0x32, "300/3200" ) - PORT_DIPSETTING( 0x33, "300/3300" ) - PORT_DIPSETTING( 0x34, "300/3400" ) - PORT_DIPSETTING( 0x35, "300/3500" ) - PORT_DIPSETTING( 0x36, "300/3600" ) - PORT_DIPSETTING( 0x37, "300/3700" ) - PORT_DIPSETTING( 0x38, "300/3800" ) - PORT_DIPSETTING( 0x39, "300/3900" ) - PORT_DIPSETTING( 0x3a, "150/3000" ) - PORT_DIPSETTING( 0x3b, "150/3200" ) - PORT_DIPSETTING( 0x3c, "150/3400" ) - PORT_DIPSETTING( 0x3f, "150/3500" ) - PORT_DIPSETTING( 0x3d, "150/3600" ) - PORT_DIPSETTING( 0x3e, "150/3800" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START_TAG("SW2") - PORT_DIPNAME( 0x40, 0x00, "Coin Mode" ) - PORT_DIPSETTING( 0x00, "Mode 1" ) - PORT_DIPSETTING( 0x40, "Mode 2" ) - PORT_DIPNAME( 0xbf, 0x3f, "Timer speed" ) - PORT_DIPSETTING( 0x05, "60 units per second" ) - PORT_DIPSETTING( 0x06, "30 units per second" ) - PORT_DIPSETTING( 0x07, "20 units per second" ) - PORT_DIPSETTING( 0x08, "15 units per second" ) - PORT_DIPSETTING( 0x0a, "10 units per second" ) - PORT_DIPSETTING( 0x0e, "6 units per second" ) - PORT_DIPSETTING( 0x10, "5 units per second" ) - PORT_DIPSETTING( 0x13, "4 units per second" ) - PORT_DIPSETTING( 0x18, "3 units per second" ) - PORT_DIPSETTING( 0x22, "2 units per second" ) - PORT_DIPSETTING( 0x3f, "1 unit per second" ) - PORT_DIPSETTING( 0x00, "1 unit every 4 seconds" ) - PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Button A") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Button B") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Game Select") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) PORT_NAME("Start") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Button A") PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Button B") PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // wired to 1p select button - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // wired to 1p start button - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) -INPUT_PORTS_END - -/*Input Ports for gun games*/ -INPUT_PORTS_START( playc10g ) - PORT_INCLUDE(playch10) - - PORT_START // IN2 - FAKE - Gun X pos - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) - - PORT_START // IN3 - FAKE - Gun Y pos - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) -INPUT_PORTS_END - - -static const gfx_layout bios_charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 3, /* 3 bits per pixel */ - { 0, 0x2000*8, 0x4000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &bios_charlayout, 0, 32 }, - { -1 } -}; - -static INTERRUPT_GEN( playch10_interrupt ) { - - /* LS161A, Sheet 1 - bottom left of Z80 */ - if ( !pc10_dog_di && !pc10_nmi_enable ) { - cpunum_set_input_line(0, INPUT_LINE_RESET, PULSE_LINE ); - } - - else if ( pc10_nmi_enable ) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static struct NESinterface nes_interface = -{ - REGION_CPU2 -}; - - -static MACHINE_DRIVER_START( playch10 ) - // basic machine hardware - MDRV_CPU_ADD(Z80, 8000000/2) // 4 MHz - MDRV_CPU_PROGRAM_MAP(bios_map, 0) - MDRV_CPU_IO_MAP(bios_io_map, 0) - MDRV_CPU_VBLANK_INT(playch10_interrupt, 1) - - MDRV_CPU_ADD(N2A03, N2A03_DEFAULTCLOCK) - MDRV_CPU_PROGRAM_MAP(cart_map, 0) - - MDRV_MACHINE_RESET(pc10) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256+8*4*16) - MDRV_COLORTABLE_LENGTH(256+4*8) - MDRV_DEFAULT_LAYOUT(layout_dualhuov) - - MDRV_SCREEN_ADD("top", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(( ( ( 1.0 / 60.0 ) * 1000000.0 ) / 262 ) * ( 262 - 239 ))) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - - MDRV_SCREEN_ADD("bottom", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(( ( ( 1.0 / 60.0 ) * 1000000.0 ) / 262 ) * ( 262 - 239 ))) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) - - MDRV_PALETTE_INIT(playch10) - MDRV_VIDEO_START(playch10) - MDRV_VIDEO_UPDATE(playch10) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(NES, 0) - MDRV_SOUND_CONFIG(nes_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( playchnv ) - MDRV_IMPORT_FROM(playch10) - MDRV_NVRAM_HANDLER(playch10) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -SYSTEM_BIOS_START( playch10 ) - SYSTEM_BIOS_ADD( 0, "dual", "Dual Monitor Version" ) - SYSTEM_BIOS_ADD( 1, "single", "Single Monitor Version" ) -SYSTEM_BIOS_END - -#define ROM_LOAD_BIOS(bios,name,offset,length,hash) \ - ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */ - -#define BIOS_CPU \ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) \ - ROM_LOAD_BIOS( 0, "pch1-c.8t", 0x00000, 0x4000, CRC(d52fa07a) SHA1(55cabf52ae10c050c2229081a80b9fe5454ab8c5) ) \ - ROM_LOAD_BIOS( 1, "pck1-c.8t", 0x00000, 0x4000, CRC(503ee8b1) SHA1(3bd20bc71cac742d1b8c1430a6426d0a19db7ad0) ) \ - -#define BIOS_GFX \ - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) \ - ROM_LOAD( "pch1-c.8p", 0x00000, 0x2000, CRC(30c15e23) SHA1(69166afdb2fe827c7f1919cdf4197caccbd961fa) ) \ - ROM_LOAD( "pch1-c.8m", 0x02000, 0x2000, CRC(c1232eee) SHA1(beaf9fa2d091a3c7f70c51e966d885b1f9f0935f) ) \ - ROM_LOAD( "pch1-c.8k", 0x04000, 0x2000, CRC(9acffb30) SHA1(b814f10ef23f2ca445fabafcbf7f25e2d454ba8c) ) \ - ROM_REGION( 0x0300, REGION_PROMS, 0 ) \ - ROM_LOAD( "pch1-c.6f", 0x0000, 0x0100, CRC(e5414ca3) SHA1(d2878411cda84ffe0afb2e538a67457f51bebffb) ) \ - ROM_LOAD( "pch1-c.6e", 0x0100, 0x0100, CRC(a2625c6e) SHA1(a448b47c9289902e26a3d3c4c7d5a7968c385e81) ) \ - ROM_LOAD( "pch1-c.6d", 0x0200, 0x0100, CRC(1213ebd4) SHA1(0ad386fc3eab5e53c0288ad1de33639a9e461b7c) ) - -/******************************************************************************/ - -/* Standard Games */ -ROM_START( pc_smb ) /* Super Mario Bros. */ - BIOS_CPU - ROM_LOAD( "u3sm", 0x0c000, 0x2000, CRC(4b5f717d) SHA1(c39c90f9503c4692af4a8fdb3e18ef7cf04e897f) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1sm", 0x08000, 0x8000, CRC(5cf548d3) SHA1(fefa1097449a3a11ebf8c6199e905996c5dc8fbd) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u2sm", 0x00000, 0x2000, CRC(867b51ad) SHA1(394badaf0b0bdd0ea279a1bca89a9d9ddc00b1b5) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(bd82d775) SHA1(e15c369d638156eeb0cd141aeeec877c62810b64) ) -ROM_END - -ROM_START( pc_ebike ) /* Excite Bike */ - BIOS_CPU - ROM_LOAD( "u3eb", 0x0c000, 0x2000, CRC(8ff0e787) SHA1(35a6d7186dee4fd4ba015ec0db5181768411aa3c) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1eb", 0x0c000, 0x4000, CRC(3a94fa0b) SHA1(6239e91ccefdc017d233cbae388c6568a17ed04b) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u2eb", 0x00000, 0x2000, CRC(e5f72401) SHA1(a8bf028e1a62677e48e88cf421bb2a8051eb800c) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(a0263750) SHA1(2ab6e43c2bc4c07fc7887defc4fc81502167ef60) ) -ROM_END - -ROM_START( pc_1942 ) /* 1942 */ - BIOS_CPU - ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1", 0x08000, 0x8000, CRC(c4e8c04a) SHA1(d608f769333b13da9c67f07599e405944893a950) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u2", 0x00000, 0x2000, CRC(03379b76) SHA1(d2a6ca1cdd8935525f59f1d38806b2296cb12a12) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) ) -ROM_END - -ROM_START( pc_bfght ) /* Balloon Fight */ - BIOS_CPU - ROM_LOAD( "bf-u3", 0x0c000, 0x2000, CRC(a9949544) SHA1(0bb9fab67769a4eaa1b903a3217dbb5ca6feddb8) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "bf-u1", 0x0c000, 0x4000, CRC(575ed2fe) SHA1(63527ea590aa79a6b09896c35021de785fd40851) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "bf-u2", 0x00000, 0x2000, CRC(c642a1df) SHA1(e73cd3d4c0bad8e6f7a1aa6a580f3817a83756a9) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(be3c42fb) SHA1(da40c57bda36d1dbacdf246e0d2579b6be616480) ) -ROM_END - -ROM_START( pc_bball ) /* Baseball */ - BIOS_CPU - ROM_LOAD( "ba-u3", 0x0c000, 0x2000, CRC(06861a0d) SHA1(b7263280a39f544ca4ab1b4d3e8c5fe17ea95e57) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ba-u1", 0x0c000, 0x4000, CRC(39d1fa03) SHA1(28d84cfefa81bbfd3d26e0f70f1b9f53383e54ad) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "ba-u2", 0x00000, 0x2000, CRC(cde71b82) SHA1(296ccef8a1fd9209f414ce0c788ab0dc95058242) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(7940cfc4) SHA1(9e36ceb5aac023472f48f2f06cf171bffa49a664) ) -ROM_END - -ROM_START( pc_golf ) /* Golf */ - BIOS_CPU - ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "gf-u1", 0x0c000, 0x4000, CRC(f9622bfa) SHA1(b4e341a91f614bb19c67cc0205b2443591567aea) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "gf-u2", 0x00000, 0x2000, CRC(ff6fc790) SHA1(40177839b61f375f2ad03b203328683264845b5b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) ) -ROM_END - -ROM_START( pc_kngfu ) /* Kung Fu */ - BIOS_CPU - ROM_LOAD( "sx-u3", 0x0c000, 0x2000, CRC(ead71b7e) SHA1(e255c08f92d6188dad6b27446b0117cd7cee4364) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "sx-u1", 0x08000, 0x8000, CRC(0516375e) SHA1(55dc3550c6133f8624eb6cf3d2f145e4313c2ff6) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "sx-u2", 0x00000, 0x2000, CRC(430b49a4) SHA1(7e618dbff521c3d5ee0f3d8bb01d2e770395a6bc) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(a1687f01) SHA1(ff4c3e925ece14acfa6f51c87af310ebbe3af638) ) -ROM_END - -ROM_START( pc_tenis ) /* Tennis */ - BIOS_CPU - ROM_LOAD( "te-u3", 0x0c000, 0x2000, CRC(6928e920) SHA1(0bdc64a6f37d8cf5e8efacc5004a6ae43a28cd60) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "te-u1", 0x0c000, 0x4000, CRC(8b2e3e81) SHA1(e54274c0b0d651458c5459d41872b1f99904d0fb) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "te-u2", 0x00000, 0x2000, CRC(3a34c45b) SHA1(2cc26a01c38ead50503dccb3ee929ba7a2b6772c) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(bcc9a48e) SHA1(a293898f17b627cdf8e7a1074ef30ad8c2392977) ) -ROM_END - -ROM_START( pc_vball ) /* Volley Ball */ - BIOS_CPU - ROM_LOAD( "vb-u3", 0x0c000, 0x2000, CRC(9104354e) SHA1(84374b1df747800f7e70b5fb6a16fd3607b724c9) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "vb-u1", 0x08000, 0x8000, CRC(35226b99) SHA1(548787ba5ca00290da4efc9af40054dc1889014c) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "vb-u2", 0x00000, 0x2000, CRC(2415dce2) SHA1(fd89b4a542989a89c2d0467257dca57518bfa96b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(f701863f) SHA1(78614e6b8a78384d9aeab439eb8d53a3691dd0a1) ) -ROM_END - -ROM_START( pc_mario ) /* Mario Bros. */ - BIOS_CPU - ROM_LOAD( "ma-u3", 0x0c000, 0x2000, CRC(a426c5c0) SHA1(0cf31de3eb18f17830dd9aa3a33fe4a6947f6ceb) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ma-u1", 0x0c000, 0x4000, CRC(75f6a9f3) SHA1(b6f88f7a2f9a49cc9182a244571730198f1edc4b) ) - - ROM_REGION( 0x02000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "ma-u2", 0x00000, 0x2000, CRC(10f77435) SHA1(a646c3443832ada84d31a3a8a4b34aebc17cecd5) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(79006635) SHA1(10dcb24fb7717b993110512115ab04310dc637d0) ) -ROM_END - -/* Gun Games */ -ROM_START( pc_duckh ) /* Duck Hunt */ - BIOS_CPU - ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(2f9ec5c6) SHA1(1e1b835339b030605841a032f066ccb5ca1fef20) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1", 0x0c000, 0x4000, CRC(90ca616d) SHA1(b742576317cd6a04caac25252d5593844c9a0bb6) ) - - ROM_REGION( 0x04000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u2", 0x00000, 0x2000, CRC(4e049e03) SHA1(ffad32a3bab2fb3826bc554b1b9838e837513576) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(8cd6aad6) SHA1(4543cdb55c3521e1b5d61f82d4800c414658fd6d) ) -ROM_END - -ROM_START( pc_hgaly ) /* Hogan's Alley */ - BIOS_CPU - ROM_LOAD( "ha-u3", 0x0c000, 0x2000, CRC(a2525180) SHA1(9c981c1679c59c7b7c069f7d1cb86cb8aa280f22) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ha-u1", 0x0c000, 0x4000, CRC(8963ae6e) SHA1(bca489ed0fb58e1e99f36c427bc0d7d805b6c61a) ) - - ROM_REGION( 0x04000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "ha-u2", 0x00000, 0x2000, CRC(5df42fc4) SHA1(4fcf23151d9f11c1ef1b1007dd8058f5d5fe9ab8) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(5ac61521) SHA1(75d2ad958336061e70049272ce4c88bff182f96d) ) -ROM_END - -ROM_START( pc_wgnmn ) /* Wild Gunman */ - BIOS_CPU - ROM_LOAD( "wg-u3", 0x0c000, 0x2000, CRC(da08afe5) SHA1(0f505ccee372a37971bad7bbbb7341336ee70f97) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "wg-u1", 0x0c000, 0x4000, CRC(389960db) SHA1(6b38f2c86ef27f653a2bdb9c682ac0bc981c7db6) ) - - ROM_REGION( 0x04000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "wg-u2", 0x00000, 0x2000, CRC(a5e04856) SHA1(9194d89a34f687742216889cbb3e717a9ae81c92) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(def015a3) SHA1(b542828a74744d87331821635777d7715e22a15b) ) -ROM_END - -/* A-Board Games */ -ROM_START( pc_tkfld ) /* Track & Field */ - BIOS_CPU - ROM_LOAD( "u4tr", 0x0c000, 0x2000, CRC(70184fd7) SHA1(bc6f6f942948ddf5a7130d9688f12ef5511a7a30) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u2tr", 0x08000, 0x8000, CRC(d7961e01) SHA1(064cb6e3e5525682a1805b01ba64f2fd75462496) ) - - ROM_REGION( 0x08000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u3tr", 0x00000, 0x8000, CRC(03bfbc4b) SHA1(ffc4e0e1d858fb4472423ae1c1fdc1e8197c30f0) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(1e2e7f1e) SHA1(4b65f5b217586653a1d0da96539cc9bc50d989e2) ) -ROM_END - -ROM_START( pc_grdus ) /* Gradius */ - BIOS_CPU - ROM_LOAD( "gr-u4", 0x0c000, 0x2000, CRC(27d76160) SHA1(605d58c57969c831778b95356fcf103a1d5f98a3) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "gr-u2", 0x08000, 0x8000, CRC(aa96889c) SHA1(e4380a7c0778541af8216e3ac1e14ff23fb074a9) ) - - ROM_REGION( 0x08000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "gr-u3", 0x00000, 0x8000, CRC(de963bec) SHA1(ecb76b5897658ebac31a07516bb2a5820279474f) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(b8d5bf8a) SHA1(1c208fa5409b6e21aa576e1b9e086e830dc26a1a) ) -ROM_END - -ROM_START( pc_grdue ) /* Gradius (Early version) */ - BIOS_CPU - ROM_LOAD( "gr-u4", 0x0c000, 0x2000, CRC(27d76160) SHA1(605d58c57969c831778b95356fcf103a1d5f98a3) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "gr-u1e", 0x08000, 0x8000, CRC(9204a65d) SHA1(500693f8f65b1e2f09b722c5fa28b32088e22a29) ) - - ROM_REGION( 0x08000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "gr-u3", 0x00000, 0x8000, CRC(de963bec) SHA1(ecb76b5897658ebac31a07516bb2a5820279474f) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(b8d5bf8a) SHA1(1c208fa5409b6e21aa576e1b9e086e830dc26a1a) ) -ROM_END - - -/* B-Board Games */ -ROM_START( pc_rnatk ) /* Rush N' Attack */ - BIOS_CPU - ROM_LOAD( "ra-u4", 0x0c000, 0x2000, CRC(ebab7f8c) SHA1(ae46e46d878cdbc28cd42b40dae1fd1a6c1b31ed) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ra-u1", 0x10000, 0x10000, CRC(5660b3a6) SHA1(4e7ad9be59990e4a560d87a1bac9b708074e9db1) ) /* banked */ - ROM_LOAD( "ra-u2", 0x20000, 0x10000, CRC(2a1bca39) SHA1(ca1eebf85bea85ce7bcdf38933ae495856e17ae1) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(1f6596b2) SHA1(e50780241ae3a16811bd92eb366f642a4b5eadf3) ) -ROM_END - -ROM_START( pc_cntra ) /* Contra */ - BIOS_CPU - ROM_LOAD( "u4ct", 0x0c000, 0x2000, CRC(431486cf) SHA1(8b8a2bcddb1dfa027c249b62659dcc7bb8ec2778) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1ct", 0x10000, 0x10000, CRC(9fcc91d4) SHA1(ad1742a0da87cf7f26f81a99f185f0c28b9e7e6e) ) /* banked */ - ROM_LOAD( "u2ct", 0x20000, 0x10000, CRC(612ad51d) SHA1(4428e136b55778299bb269520b459c7112c0d6b2) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(8ab3977a) SHA1(61d3a7981fbe8a76ab7eee032059d42b50892e97) ) -ROM_END - -ROM_START( pc_pwrst ) /* Pro Wrestling */ - BIOS_CPU - ROM_LOAD( "pw-u4", 0x0c000, 0x2000, CRC(0f03d71b) SHA1(82b94c2e4568d6de4d8cff49f3e416005a2e22ec) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "pw-u1", 0x10000, 0x08000, CRC(6242c2ce) SHA1(ea7d1cf9dece021c9a40772af7c6dcaf58b10585) ) /* banked */ - ROM_RELOAD( 0x18000, 0x08000 ) - ROM_LOAD( "pw-u2", 0x20000, 0x10000, CRC(ef6aa17c) SHA1(52171699eaee0b811952c5706584cff4e7cfb39a) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(4c6b7983) SHA1(377bd6267ae1d3ab13389a8adf894e116b3c9daa) ) -ROM_END - -ROM_START( pc_cvnia ) /* Castlevania */ - BIOS_CPU - ROM_LOAD( "u4cv", 0x0c000, 0x2000, CRC(a2d4245d) SHA1(3703171d526e6de99e475afe0d942d69b89950a9) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1cv", 0x10000, 0x10000, CRC(add4fc52) SHA1(bbb4638a8e7660911896393d61580610a6535c62) ) /* banked */ - ROM_LOAD( "u2cv", 0x20000, 0x10000, CRC(7885e567) SHA1(de1e5a5b4bbd0116c91564edc3d552239074e8ae) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(7da2f045) SHA1(e6048a1f94103c2896eeb33dd7f6bc639831dd7d) ) -ROM_END - -ROM_START( pc_dbldr ) /* Double Dribble */ - BIOS_CPU - ROM_LOAD( "dw-u4", 0x0c000, 0x2000, CRC(5006eef8) SHA1(6051d4750d95cdc0a71ecec40b5be4477921ca54) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "dw-u1", 0x10000, 0x10000, CRC(78e08e61) SHA1(a278e012ac89b8ae56d4a186c99f5ea2591f87b5) ) /* banked */ - ROM_LOAD( "dw-u2", 0x20000, 0x10000, CRC(ab554cde) SHA1(86f5788f856dd9336eaaadf8d5295435b0421486) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(9b5f4bd2) SHA1(998d2766763eb66f4052f9f16fbfb93d5b41a582) ) -ROM_END - -ROM_START( pc_rygar ) /* Rygar */ - BIOS_CPU - ROM_LOAD( "ry-u4", 0x0c000, 0x2000, CRC(7149071b) SHA1(fbc7157eb16eedfc8808ab6224406037e41c44ef) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ry-u1", 0x10000, 0x10000, CRC(aa2e54bc) SHA1(b44cd385d4019a535a4924a093ee9b097b850db4) ) /* banked */ - ROM_LOAD( "ry-u2", 0x20000, 0x10000, CRC(80cb158b) SHA1(012f378e0b5a5bbd32ad837cdfa096df6843d274) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(b69309ab) SHA1(a11ae46ed4c6ae5c22bab36593a53535a257fd4f) ) -ROM_END - -ROM_START( pc_trjan ) /* Trojan */ - BIOS_CPU - ROM_LOAD( "tj-u4", 0x0c000, 0x2000, CRC(10835e1d) SHA1(ae0f3ec8d52707088af79d00bca0871af105da36) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "tj-u1", 0x10000, 0x10000, CRC(335c0e62) SHA1(62164235dc8e2a4419cb38f4cacf7ba2f3eb536b) ) /* banked */ - ROM_LOAD( "tj-u2", 0x20000, 0x10000, CRC(c0ddc79e) SHA1(5c23bb54eda6a55357e97d7322db453170e27598) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(14df772f) SHA1(bb1c58d53ee8c059b3a06d43ee4faf849d4f005f) ) -ROM_END - -/* C-Board Games */ -ROM_START( pc_goons ) /* The Goonies */ - BIOS_CPU - ROM_LOAD( "gn-u3", 0x0c000, 0x2000, CRC(33adedd2) SHA1(c85151819e2550e60cbe8f7d247a8da88cb805a4) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "gn-u1", 0x08000, 0x8000, CRC(efeb0c34) SHA1(8e0374858dce0a10ffcfc5109f8287ebdea388e8) ) - - ROM_REGION( 0x04000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "gn-u2", 0x00000, 0x4000, CRC(0f9c7f49) SHA1(f2fcf55d22a38a01df45393c90c73ff14b3b647c) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(cdd62d08) SHA1(e2752127ac0b1217f0216854b68a5e5957a565b3) ) -ROM_END - -/* D-Board Games */ -ROM_START( pc_radrc ) /* Rad Racer */ - BIOS_CPU - ROM_LOAD( "rc-u5", 0x0c000, 0x2000, CRC(ae60fd08) SHA1(fa7c201499cd702d8eef545bb05b0df833d2b406) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "rc-u1", 0x10000, 0x10000, CRC(dce369a7) SHA1(d7f293956d605af7cb6b81dbb80eaa4ad482ac0e) ) - ROM_LOAD( "rc-u2", 0x20000, 0x10000, CRC(389a79b5) SHA1(58de166d757e58c515272efc9d0bc03d1eb1086d) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(17c880f9) SHA1(41be451fcc46a746d5d31dba09f524c0af0cd214) ) -ROM_END - -ROM_START( pc_mtoid ) /* Metroid */ - BIOS_CPU - ROM_LOAD( "mt-u5", 0x0c000, 0x2000, CRC(3dc25049) SHA1(bf0f72db9e6904f065801e490014405a734eb04e) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "mt-u1", 0x10000, 0x10000, CRC(4006ff10) SHA1(9563a6b4ff91c78ab9cbf97ea47a3f62524844d2) ) - ROM_LOAD( "mt-u2", 0x20000, 0x10000, CRC(ace6bbd8) SHA1(ac9c22bcc33aeee18b4f42a5a628bc5e147b4c29) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(efab54c9) SHA1(1d0122b7c90a364d54bf6eaa37ce439d706a4357) ) -ROM_END - -/* E-Board Games */ -ROM_START( pc_miket ) /* Mike Tyson's Punchout */ - BIOS_CPU - ROM_LOAD( "u5pt", 0x0c000, 0x2000, CRC(b434e567) SHA1(8e23c580b5556aacbeeb36fe36e778137c780903) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u1pt", 0x10000, 0x20000, CRC(dfd9a2ee) SHA1(484a6793949b8cbbc65e3bcc9188bc63bb17b575) ) /* banked */ - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u3pt", 0x00000, 0x20000, CRC(570b48ea) SHA1(33de517b16b61625909d2eb5307c08b337b542c4) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(60f7ea1d) SHA1(fcc04cbd8ed233bb1358fc55800f9bb6c75b195b) ) -ROM_END - -/* F-Board Games */ -ROM_START( pc_ngaid ) /* Ninja Gaiden */ - BIOS_CPU - ROM_LOAD( "u2ng", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u4ng", 0x10000, 0x20000, CRC(5f1e7b19) SHA1(ead83487d9be2f1d16c1d0b438a361a06508cd85) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u1ng", 0x00000, 0x20000, CRC(eccd2dcb) SHA1(2a319086f7c22b8fe7ca8ab72436a7c8d07b915e) ) /* banked */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) ) -ROM_END - -ROM_START( pc_ddrgn ) /* Double Dragon */ - BIOS_CPU - ROM_LOAD( "wd-u2", 0x0c000, 0x2000, CRC(dfca1578) SHA1(6bc00bb2913edeaecd885fee449b8a9955c509bf) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "wd-u4", 0x10000, 0x20000, CRC(05c97f64) SHA1(36913e92943c6bb40521ab13c843691a8db4cbc9) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "wd-u1", 0x00000, 0x20000, CRC(5ebe0fd0) SHA1(4a948c9784433e051f1015a6b6e985a98b81b80d) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(f9739d62) SHA1(c9574ed8f24ffb7ab5a6bb1b79805fb6dc6e991a) ) -ROM_END - -ROM_START( pc_drmro ) /* Dr Mario */ - BIOS_CPU - ROM_LOAD( "vu-u2", 0x0c000, 0x2000, CRC(4b7869ac) SHA1(37afb84d963233ad92cc424fcf992aa76ea0599f) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "vu-u4", 0x10000, 0x08000, CRC(cb02a930) SHA1(6622564abc5ce28f523b0da95054d1ea825f7bd5) ) /* banked */ - ROM_RELOAD( 0x18000, 0x08000 ) - ROM_RELOAD( 0x20000, 0x08000 ) - ROM_RELOAD( 0x28000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "vu-u1", 0x00000, 0x08000, CRC(064d4ab3) SHA1(bcdc34435bf631422ea2701f00744a3606c6dce8) ) - ROM_RELOAD( 0x08000, 0x08000 ) - ROM_RELOAD( 0x10000, 0x08000 ) - ROM_RELOAD( 0x18000, 0x08000 ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(1b26e58c) SHA1(bd2d81d3cc54966ef154b3487d43ecbc316d6d22) ) -ROM_END - -ROM_START( pc_ftqst ) /* Fester's Quest */ - BIOS_CPU - ROM_LOAD( "eq-u2", 0x0c000, 0x2000, CRC(85326040) SHA1(866bd15e77d911147b191c13d062cef7ae4dcf62) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "eq-u4", 0x10000, 0x20000, CRC(953a3eaf) SHA1(a22c0a64d63036b6b8d147994a3055e1040a5282) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "eq-u1", 0x00000, 0x20000, CRC(0ca17ab5) SHA1(a8765d6245f64b2d94c454662a24f8d8e277aa5a) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(1c601cd7) SHA1(bc13067475aac4a7b8bf5f0df96bdd5ba33f1cd7) ) -ROM_END - -ROM_START( pc_rcpam ) /* RC Pro Am */ - BIOS_CPU - ROM_LOAD( "pm-u2", 0x0c000, 0x2000, CRC(358c2de7) SHA1(0f37d7e8303a7b87ad0584c6e0a79f3029c529f8) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "pm-u4", 0x10000, 0x08000, CRC(82cfde25) SHA1(4eb9abe896e597f8ecabb4f044d8c4b545a51b11) ) /* banked */ - ROM_RELOAD( 0x18000, 0x08000 ) - ROM_RELOAD( 0x20000, 0x08000 ) - ROM_RELOAD( 0x28000, 0x08000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "pm-u1", 0x00000, 0x08000, CRC(83c90d47) SHA1(26917e1e016d2be0fa48d766d332779aae12b053) ) - ROM_RELOAD( 0x08000, 0x08000 ) - ROM_RELOAD( 0x10000, 0x08000 ) - ROM_RELOAD( 0x18000, 0x08000 ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(d71d8085) SHA1(67e30ff0c31c6600890408c4dc4d0d2f19856363) ) -ROM_END - -ROM_START( pc_rrngr ) /* Rescue Rangers */ - BIOS_CPU - ROM_LOAD( "ru-u2", 0x0c000, 0x2000, CRC(2a4bfc4b) SHA1(87f58659d43a236af22682df4bd01593b69c9975) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ru-u4", 0x10000, 0x20000, CRC(02931525) SHA1(28ddca5d299e7894e3c3aa0a193684ca3e384ee9) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "ru-u1", 0x00000, 0x20000, CRC(218d4224) SHA1(37a729021173bec08a8497ad03fd58379b0fce39) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(1c2e1865) SHA1(ab2aa76d74c9e76c7ee3f9a211b1aefe5708a23f) ) -ROM_END - -ROM_START( pc_ynoid ) /* Yo! Noid */ - BIOS_CPU - ROM_LOAD( "yc-u2", 0x0c000, 0x2000, CRC(0449805c) SHA1(3f96687eae047d1f8095fbb55c0659c9b0e10166) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "yc-u4", 0x10000, 0x20000, CRC(4affeee7) SHA1(54da2aa7ca56d9b593c8bcabf0bb1d701439013d) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "yc-u1", 0x00000, 0x20000, CRC(868f7343) SHA1(acb6f6eb9e8beb0636c59a999c8f5920ef7786a3) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(8c376465) SHA1(39b06fd2ecd5f06b90b2fe06406c9155f5601bd8) ) -ROM_END - -ROM_START( pc_tmnt ) /* Teenage Mutant Ninja Turtles */ - BIOS_CPU - ROM_LOAD( "u2u2", 0x0c000, 0x2000, CRC(bdce58c0) SHA1(abaf89c0ac55cce816a7c6542a868ab47e02d550) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u4u2", 0x10000, 0x20000, CRC(0ccd28d5) SHA1(05606cafba838eeb36198b5e5e9d11c3729971b3) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u1u2", 0x00000, 0x20000, CRC(91f01f53) SHA1(171ed0792f3ca3f195145000d96b91aa57898773) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(f5a38e98) SHA1(26ef27294fc14d84920132023fbcf406d89ce2ee) ) -ROM_END - -ROM_START( pc_bstar ) /* Baseball Stars */ - BIOS_CPU - ROM_LOAD( "b9-u2", 0x0c000, 0x2000, CRC(69f3fd7c) SHA1(1cfaa40f18b1455bb41ec0e57d6a227ed3e582eb) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "b9-u4", 0x10000, 0x20000, CRC(d007231a) SHA1(60690eaeacb79dbcab7dfe1c1e40da1aac235793) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "b9-u1", 0x00000, 0x20000, CRC(ce149864) SHA1(00c88525756a360f42b27f0e2afaa0a19c2645a6) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(3e871350) SHA1(b338f9ef4e18d14843c6a1e8ecb974bca1df73d4) ) -ROM_END - -ROM_START( pc_tbowl ) /* Tecmo Bowl */ - BIOS_CPU - ROM_LOAD( "tw-u2", 0x0c000, 0x2000, CRC(162aa313) SHA1(d0849ce87969c077fc14790ce5658e9857035413) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "tw-u4", 0x10000, 0x20000, CRC(4f0c69be) SHA1(c0b09dc81070b935b3c621b07deb62dfa521a396) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "tw-u1", 0x00000, 0x20000, CRC(44b078ef) SHA1(ae0c24f4ddd822b19c60e31257279b33b5f3fcad) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(18b2d1d3) SHA1(f4d023531b3d69cad4c9c511878e5aa6afb0ac59) ) -ROM_END - -/* G-Board Games */ -ROM_START( pc_smb3 ) /* Super Mario Bros 3 */ - BIOS_CPU - ROM_LOAD( "u3um", 0x0c000, 0x2000, CRC(45e92f7f) SHA1(9071d5f18639ac58d6d4d72674856f9ecab911f0) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u4um", 0x10000, 0x20000, CRC(590b4d7c) SHA1(ac45940b71215a3a48983e22e1c7e71a71642b91) ) /* banked */ - ROM_LOAD( "u5um", 0x30000, 0x20000, CRC(bce25425) SHA1(69468643a3a8b9220d675e2cdc4245ada81a492c) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u1um", 0x00000, 0x20000, CRC(c2928c49) SHA1(2697d1f21b72a6d8e7d2a2d2c51c9c5550f68b56) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(e48f4945) SHA1(66fe537cfe540317d6194847321ce4a9bdf0bba4) ) -ROM_END - -ROM_START( pc_gntlt ) /* Gauntlet */ - BIOS_CPU - ROM_LOAD( "u3gl", 0x0c000, 0x2000, CRC(57575b92) SHA1(7ac633f253496f353d388bef30e6ec74a3d18814) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "gl-0.prg",0x10000, 0x20000, CRC(b19c48a5) SHA1(4ba8674cec6fa8b0b4d96a7b00d4883a9e58a0a9) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x010000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "gl-0.chr", 0x00000, 0x10000, CRC(22af8849) SHA1(01054943c1d069f5f535e93f969a5b6bfb958e0b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(ba7f2e13) SHA1(8b9ee3b18bcb4b258a46d1c900b18a9cb2594046) ) -ROM_END - -ROM_START( pc_pwbld ) /* Power Blade */ - BIOS_CPU - ROM_LOAD( "7t-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "7t-u5", 0x10000, 0x20000, CRC(faa957b1) SHA1(612c4823ed588652a78017096a6d76dd8064807a) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "7t-u1", 0x00000, 0x20000, CRC(344be4a6) SHA1(2894292544f4315df44cda1bdc96047453da03e8) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) ) -ROM_END - -ROM_START( pc_ngai3 ) /* Ninja Gaiden 3 */ - BIOS_CPU - ROM_LOAD( "u33n", 0x0c000, 0x2000, CRC(c7ba0f59) SHA1(a4822035a10a2b5de3517b461dd357b2fa5da917) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "u53n", 0x10000, 0x20000, CRC(f0c77dcb) SHA1(bda1184e27f3c3e92e58519508dd281b06c70d9b) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "u13n", 0x00000, 0x20000, CRC(584bcf5d) SHA1(f4582e2a382c8424f839e848e95e88a7f46307dc) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(13755943) SHA1(b7d809b0f60ef489777ccb35868f5c1e777356e0) ) -ROM_END - -ROM_START( pc_radr2 ) /* Rad Racer II */ - BIOS_CPU - ROM_LOAD( "qr-u3", 0x0c000, 0x2000, CRC(0c8fea63) SHA1(7ac04b151df732bd16708655352b7f13926f004f) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "qr-u5", 0x10000, 0x10000, CRC(ab90e397) SHA1(0956f7d9a216549dbd80b1dbf2653b36a320d0ab) ) /* banked */ - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_RELOAD( 0x30000, 0x10000 ) - ROM_RELOAD( 0x40000, 0x10000 ) - - ROM_REGION( 0x010000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "qr-u1", 0x00000, 0x10000, CRC(07df55d8) SHA1(dd0fa0a79d30eb04917d7309a62adfb037ef9ca5) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(40c4f294) SHA1(3fcac63fe6f147b662d59d25f905f797a1f5d0db) ) -ROM_END - -ROM_START( pc_rkats ) /* Rockin' Kats */ - BIOS_CPU - ROM_LOAD( "7a-u3", 0x0c000, 0x2000, CRC(352b1e3c) SHA1(bb72b586ec4b482aef462b017de5662d83631df1) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "7a-u5", 0x10000, 0x20000, CRC(319ccfcc) SHA1(06e1c34af917b84a990db895c7b44df1b3393c96) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "7a-u1", 0x00000, 0x20000, CRC(487aa440) SHA1(ee7ebbcf89c81ba59beda1bd27289dae21bb8071) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(56ab5bf9) SHA1(9546f6e20fdb13146c5db5353a1cb2a95931d909) ) -ROM_END - -ROM_START( pc_suprc ) /* Super C */ - BIOS_CPU - ROM_LOAD( "ue-u3", 0x0c000, 0x2000, CRC(a30ca248) SHA1(19feb1b4f749768773e0d24777d7e60b2b6260e2) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ue-u5", 0x10000, 0x20000, CRC(c7fbecc3) SHA1(2653456c91031dfa73a50cab3835068a7bface8d) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "ue-u1", 0x00000, 0x20000, CRC(153295c1) SHA1(4ff1caaedca52fb9bb0ca6c8fac24edda77308d7) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(d477095e) SHA1(a179dffe529889f8e17e9f04958fea28611df0d3) ) -ROM_END - -ROM_START( pc_tmnt2 ) /* Teenage Mutant Ninja Turtles II */ - BIOS_CPU - ROM_LOAD( "2n-u3", 0x0c000, 0x2000, CRC(65298370) SHA1(fd120f43e465a2622f2e2679ace2fb0fe7e709b1) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "2n-u5", 0x10000, 0x40000, CRC(717e1c46) SHA1(b49cc88e026dac7f5ba96f5c16bcb897addbe259) ) /* banked */ - - ROM_REGION( 0x040000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "2n-u1", 0x00000, 0x40000, CRC(0dbc575f) SHA1(8094278cf3267757953ab761dbccf38589142376) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(237e8519) SHA1(81b368d0784e4172c5cf9f4f4b92e29e05d34ae7) ) -ROM_END - -ROM_START( pc_wcup ) /* Nintendo World Cup */ - BIOS_CPU - ROM_LOAD( "xz-u3", 0x0c000, 0x2000, CRC(c26cb22f) SHA1(18fea97b498812915bbd53a20b4f0a2130de6faf) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "xz-u5", 0x10000, 0x20000, CRC(314ee295) SHA1(0a5963feb5a6b47f0e7bea5bdd3d5835300af7b6) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "xz-u1", 0x00000, 0x20000, CRC(92477d53) SHA1(33225bd5ee72f92761fdce931c93dd54e6885bd4) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(e17e1d76) SHA1(3e4e1ddcc8524bf451cb568b1357ec1f0a8be44c) ) -ROM_END - -ROM_START( pc_mman3 ) /* Mega Man 3 */ - BIOS_CPU - ROM_LOAD( "xu-u3", 0x0c000, 0x2000, CRC(c3984e09) SHA1(70d7e5d9cf9b1f358e1be84a0e8c5997b1aae2d9) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "xu-u4", 0x10000, 0x20000, CRC(98a3263c) SHA1(02c8d8301fb220c3f4fd82bdc8cd2388b975fd05) ) /* banked */ - ROM_LOAD( "xu-u5", 0x30000, 0x20000, CRC(d365647a) SHA1(4f39de6249c5f8b7cfa34bc955fd7ea6251569b5) ) /* banked */ - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "xu-u1", 0x00000, 0x20000, CRC(4028916e) SHA1(f986f72ba5284129620d31c0779ac6d50638e6f1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(0fe6e900) SHA1(544d8af1aa9186bf76d0a35e78b20e94d3afbcb5) ) -ROM_END - -ROM_START( pc_smb2 ) /* Super Mario Bros 2 */ - BIOS_CPU - ROM_LOAD( "mw-u3", 0x0c000, 0x2000, CRC(beaeb43a) SHA1(c7dd186d6167e39924a000eb80bd33beedb2b8c8) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "mw-u5", 0x10000, 0x20000, CRC(07854b3f) SHA1(9bea58ba97730c84232a4acbb23c3ea7bce14ec5) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "mw-u1", 0x00000, 0x20000, CRC(f2ba1170) SHA1(d9976b677ad222b76fbdaf31713374e2f283d44e) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(372f4e84) SHA1(cdf221d49f3b454997d696f213d60b5dce0ce9fb) ) -ROM_END - -ROM_START( pc_ngai2 ) /* Ninja Gaiden 2 */ - BIOS_CPU - ROM_LOAD( "nw-u3", 0x0c000, 0x2000, CRC(bc178cde) SHA1(2613f501f92d358f0085aa7002c752cb9a8521ca) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "nw-u5", 0x10000, 0x20000, CRC(c43da8e2) SHA1(702a4cf2f57fff7183f2d3c18b8997a38cadc6cd) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "nw-u1", 0x00000, 0x20000, CRC(8e0c8bb0) SHA1(6afe24b8e57f5a2174000a706b66209d7e310ed6) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(682dffd1) SHA1(87ea54b3d725a552b397ccb2af0ccf8bd6452a7c) ) -ROM_END - -/* H-Board Games */ -ROM_START( pc_pinbt ) /* PinBot */ - BIOS_CPU - ROM_LOAD( "io-u3", 0x0c000, 0x2000, CRC(15ba8a2e) SHA1(e64180b2f12189e3ac1e155f3544f28af8003f97) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "io-u5", 0x10000, 0x20000, CRC(9f75b83b) SHA1(703e41d4c1a4716b324dece6df2ce12a847f082c) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) /* banked */ - - ROM_REGION( 0x010000, REGION_GFX2, 0 ) /* cart gfx */ - ROM_LOAD( "io-u1", 0x00000, 0x10000, CRC(9089fc24) SHA1(0bc92a0853c5ebc47c3adbc4e919ea41a55297d0) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(ac75f323) SHA1(4bffff024132d6f71d6aa55e24af400d2915aca4) ) -ROM_END - -/* i-Board Games */ -ROM_START( pc_cshwk ) /* Captain Sky Hawk */ - BIOS_CPU - ROM_LOAD( "yw-u3", 0x0c000, 0x2000, CRC(9d988209) SHA1(b355911d31dfc611b9e90cca82fc10035483b89c) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "yw-u1", 0x10000, 0x20000, CRC(a5e0208a) SHA1(e12086a3f1a3b5e9ec035cb778505e43f501416a) ) /* banked */ - ROM_RELOAD( 0x30000, 0x20000 ) - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(eb1c794f) SHA1(d32f841fd4306389d716229da9bffea909186689) ) -ROM_END - -ROM_START( pc_sjetm ) /* Solar Jetman */ - BIOS_CPU - ROM_LOAD( "lj-u3", 0x0c000, 0x2000, CRC(273d8e75) SHA1(b13b97545b39f6b0459440fb6594ebe03366dfc9) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "lj-u1", 0x10000, 0x40000, CRC(8111ba08) SHA1(caa4d1ab710bd766f8505ef24f5702dac6e988af) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(f3ae712a) SHA1(51f443c65e64f1a9eb565ce017b50ec9bd4a5520) ) -ROM_END - - -/* K-Board Games */ -ROM_START( pc_moglf ) /* Mario Open Golf */ - BIOS_CPU - ROM_LOAD( "ug-u2", 0x0c000, 0x2000, CRC(e932fe2b) SHA1(563380482525fdadd05fced2af61d5198d1654a5) ) /* extra bios code for this game */ - BIOS_GFX - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "ug-u4", 0x10000, 0x40000, CRC(091a6a4c) SHA1(2d5ac7c65ce63d409b6e0b2e2185d81bc7c57c69) ) /* banked */ - - /* No cart gfx - uses vram */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* rp5h01 data */ - ROM_LOAD( "security.prm", 0x00000, 0x10, CRC(633766d5) SHA1(3a2564f3a2daf3a789e4c4056822f12243c89619) ) -ROM_END - -/*************************************************************************** - - BIOS driver(s) - -***************************************************************************/ - -ROM_START( playch10 ) - BIOS_CPU - BIOS_GFX -ROM_END - -/******************************************************************************/ - - -/* A dummy driver, so that the bios can be debugged, and to serve as */ -/* parent for the other drivers, so that we do not have to include */ -/* them in every zip file */ -GAMEB( 1986, playch10, 0, playch10, playch10, playch10, 0, ROT0, "Nintendo of America", "PlayChoice-10 BIOS", NOT_A_DRIVER ) - -/******************************************************************************/ - -/* YEAR NAME PARENT BIOS MACHINE INPUT INIT MONITOR */ - -/* Standard Games */ -GAMEB( 1983, pc_tenis, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Tennis (PlayChoice-10)", 0 ) -GAMEB( 1983, pc_mario, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Mario Bros. (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_bball, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo of America", "Baseball (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_bfght, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Balloon Fight (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_ebike, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Excite Bike (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_golf, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Golf (PlayChoice-10)", 0 ) -GAMEB( 1985, pc_kngfu, playch10, playch10, playch10, playch10, playch10, ROT0, "Irem (Nintendo license)", "Kung Fu (PlayChoice-10)", 0 ) -GAMEB( 1985, pc_smb, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Super Mario Bros. (PlayChoice-10)", 0 ) -GAMEB( 1986, pc_vball, playch10, playch10, playch10, playch10, playch10, ROT0, "Nintendo", "Volley Ball (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_1942, playch10, playch10, playch10, playch10, pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS ) - -/* Gun Games */ -GAMEB( 1984, pc_duckh, playch10, playch10, playch10, playc10g, pc_gun, ROT0, "Nintendo", "Duck Hunt (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_hgaly, playch10, playch10, playch10, playc10g, pc_gun, ROT0, "Nintendo", "Hogan's Alley (PlayChoice-10)", 0 ) -GAMEB( 1984, pc_wgnmn, playch10, playch10, playch10, playc10g, pc_gun, ROT0, "Nintendo", "Wild Gunman (PlayChoice-10)", 0 ) - -/* A-Board Games */ -GAMEB( 1986, pc_grdus, playch10, playch10, playch10, playch10, pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10)" , 0) // date: 860917 -GAMEB( 1986, pc_grdue, pc_grdus, playch10, playch10, playch10, pcaboard, ROT0, "Konami", "Gradius (PlayChoice-10, older)" , 0) // date: 860219 -GAMEB( 1987, pc_tkfld, playch10, playch10, playch10, playch10, pcaboard, ROT0, "Konami (Nintendo of America license)", "Track & Field (PlayChoice-10)", 0 ) - -/* B-Board Games */ -GAMEB( 1986, pc_pwrst, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Nintendo", "Pro Wrestling (PlayChoice-10)", 0 ) -GAMEB( 1986, pc_trjan, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Capcom USA (Nintendo of America license)", "Trojan (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_cvnia, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Konami (Nintendo of America license)", "Castlevania (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_dbldr, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Konami (Nintendo of America license)", "Double Dribble (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_rnatk, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Konami (Nintendo of America license)", "Rush'n Attack (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_rygar, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Tecmo (Nintendo of America license)", "Rygar (PlayChoice-10)", 0 ) -GAMEB( 1988, pc_cntra, playch10, playch10, playch10, playch10, pcbboard, ROT0, "Konami (Nintendo of America license)", "Contra (PlayChoice-10)", 0 ) - -/* C-Board Games */ -GAMEB( 1986, pc_goons, playch10, playch10, playch10, playch10, pccboard, ROT0, "Konami", "The Goonies (PlayChoice-10)", 0 ) - -/* D-Board Games */ -GAMEB( 1986, pc_mtoid, playch10, playch10, playch10, playch10, pcdboard_2, ROT0, "Nintendo", "Metroid (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_radrc, playch10, playch10, playch10, playch10, pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 ) - -/* E-Board Games */ -GAMEB( 1987, pc_miket, playch10, playch10, playchnv, playch10, pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS ) - -/* F-Board Games */ -GAMEB( 1987, pc_rcpam, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 ) -GAMEB( 1987, pc_rrngr, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 ) -GAMEB( 1988, pc_ddrgn, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Technos", "Double Dragon (PlayChoice-10)", 0 ) -GAMEB( 1989, pc_ngaid, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 ) -GAMEB( 1989, pc_tmnt, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 ) -GAMEB( 1989, pc_ftqst, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 ) -GAMEB( 1989, pc_bstar, playch10, playch10, playch10, playch10, pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS) -GAMEB( 1989, pc_tbowl, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_drmro, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_ynoid, playch10, playch10, playch10, playch10, pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Yo! Noid (PlayChoice-10)", 0 ) - -/* G-Board Games */ -GAMEB( 1988, pc_smb2, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Nintendo", "Super Mario Bros. 2 (PlayChoice-10)", 0 ) -GAMEB( 1988, pc_smb3, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Nintendo", "Super Mario Bros. 3 (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_mman3, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Capcom USA (Nintendo of America license)", "Mega Man III (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_suprc, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)", "Super C (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_tmnt2, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_wcup, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Technos (Nintendo license)", "Nintendo World Cup (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_ngai2, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 ) -GAMEB( 1991, pc_ngai3, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 ) -GAMEB( 1991, pc_pwbld, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Taito (Nintendo of America license)", "Power Blade (PlayChoice-10)", 0 ) -GAMEB( 1991, pc_rkats, playch10, playch10, playch10, playch10, pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 ) -/* variant with 4 screen mirror */ -GAMEB( 1990, pc_radr2, playch10, playch10, playch10, playch10, pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", 0 ) -GAMEB( 1985, pc_gntlt, playch10, playch10, playch10, playch10, pcgboard_type2, ROT0, "Atari/Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS ) - -/* H-Board Games */ -GAMEB( 1988, pc_pinbt, playch10, playch10, playch10, playch10, pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) - -/* i-Board Games */ -GAMEB( 1989, pc_cshwk, playch10, playch10, playch10, playch10, pciboard, ROT0, "Rare (Nintendo of America license)", "Captain Sky Hawk (PlayChoice-10)", 0 ) -GAMEB( 1990, pc_sjetm, playch10, playch10, playch10, playch10, pciboard, ROT0, "Rare", "Solar Jetman (PlayChoice-10)", 0 ) - -/* K-Board Games */ -GAMEB( 1991, pc_moglf, playch10, playch10, playch10, playch10, pckboard, ROT0, "Nintendo", "Mario's Open Golf (PlayChoice-10)", 0 ) diff --git a/src/drivers/plygonet.c b/src/drivers/plygonet.c deleted file mode 100644 index 73e69b664..000000000 --- a/src/drivers/plygonet.c +++ /dev/null @@ -1,825 +0,0 @@ -/* - Polygonet Commanders (Konami, 1993) - - Preliminary driver by R. Belmont - Additional work by Andrew Gardner - - This is Konami's first 3D game! - - Hardware: - 68EC020 @ 16 MHz - Motorola XC56156-40 DSP @ 40 MHz - Z80 + K054539 for sound - Network to connect up to 4 PCBs. - - Video hardware: - TTL text plane similar to Run and Gun. - Konami K054009(x2) + K054010(x2) (polygon rasterizers) - Konami K053936 "PSAC2" (3d roz plane, used for backgrounds) - - Driver includes: - - 68020 memory map - - Z80 + sound system - - EEPROM - - service switch - - TTL text plane - - Driver needs: - - Handle network at 580800 so game starts - - Polygon rasterization (K054009 + K054010) - - Hook up PSAC2 (gfx decode for it is already present and correct) - - Palettes - - Controls - - Priorities. From the original board it appears they're fixed, in front to back order: - (all the way in front) TTL text layer -> polygons -> PSAC2 (all the way in back) - -Notes: - - (R. Belmont) - 506000 is the DSP control - 506004 is DSP status (in bit 0, where 0 = not ready, 1 = ready) - 50600C and 50600E are the DSP comms ports (read/write) - -*/ - -#include "driver.h" - -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "cpu/dsp56k/dsp56k.h" -#include "sound/k054539.h" -#include "machine/eeprom.h" - -VIDEO_START(polygonet_vh_start); -VIDEO_UPDATE(polygonet_vh_screenrefresh); - -READ32_HANDLER( polygonet_ttl_ram_r ); -WRITE32_HANDLER( polygonet_ttl_ram_w ); - -static int init_eeprom_count; - -static int dsp_alive=0; -static UINT32 *dsp_shared_ram; -static UINT16 *dsp56k_shared_ram_16; - -static UINT16 *dsp56k_p_mirror; -static UINT16 *dsp56k_bank00_ram ; -static UINT16 *dsp56k_bank01_ram ; -static UINT16 *dsp56k_bank02_ram ; -static UINT16 *dsp56k_bank04_ram ; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "010100", /* write command */ - "0100100000000",/* erase command */ - "0100000000000",/* lock command */ - "0100110000000" /* unlock command */ -}; - -static NVRAM_HANDLER(nvram_handler) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ32_HANDLER( polygonet_eeprom_r ) -{ - if (ACCESSING_LSW32) - { - return 0x0200 | (EEPROM_read_bit()<<8); - } - else - { - return (readinputport(0)<<24); - } - - logerror("unk access to eeprom port (mask %x)\n", mem_mask); - return 0; -} - - -static WRITE32_HANDLER( polygonet_eeprom_w ) -{ - if (ACCESSING_MSB32) - { - EEPROM_write_bit((data & 0x01000000) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x02000000) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x04000000) ? ASSERT_LINE : CLEAR_LINE); - return; - } - - logerror("unknown write %x (mask %x) to eeprom\n", data, mem_mask); -} - -/* TTL tile readback for ROM test */ -static READ32_HANDLER( ttl_rom_r ) -{ - UINT32 *ROM; - ROM = (UINT32 *)memory_region(REGION_GFX1); - - return ROM[offset]; -} - -/* PSAC2 tile readback for ROM test */ -static READ32_HANDLER( psac_rom_r ) -{ - UINT32 *ROM; - ROM = (UINT32 *)memory_region(REGION_GFX2); - - return ROM[offset]; -} - -/* irqs 3, 5, and 7 have valid vectors */ -/* irq 3 does ??? (network) */ -/* irq 5 does ??? (polygon end of draw or VBL?) */ -/* irq 7 does nothing (it jsrs to a rts and then rte) */ - -static INTERRUPT_GEN(polygonet_interrupt) -{ - if (cpu_getiloops()) - cpunum_set_input_line(0, MC68000_IRQ_5, HOLD_LINE); - else - cpunum_set_input_line(0, MC68000_IRQ_3, HOLD_LINE); -} - -/* sound CPU communications */ - -static READ32_HANDLER( sound_r ) -{ - int latch = soundlatch3_r(0); - - if (latch == 0xe) latch = 0xf; /* hack: until 54539 NMI disable found */ - - return latch<<8; -} - -static WRITE32_HANDLER( sound_w ) -{ - if (ACCESSING_MSB) - { - soundlatch_w(0, (data>>8)&0xff); - } - else - { - soundlatch2_w(0, data&0xff); - } -} - -static WRITE32_HANDLER( sound_irq_w ) -{ - cpunum_set_input_line(2, 0, HOLD_LINE); -} - - -/* DSP communications are on their way to being correct */ - -static READ32_HANDLER( dsp_shared_ram_read ) -{ - return dsp_shared_ram[offset] ; -} - -static WRITE32_HANDLER( dsp_shared_ram_write ) -{ - COMBINE_DATA(&dsp_shared_ram[offset]) ; - - logerror("68k WRITING %04x & %04x to shared ram %x & %x [%08x] (@%x)\n", (dsp_shared_ram[offset] & 0xffff0000) >> 16, - (dsp_shared_ram[offset] & 0x0000ffff), - 0xc000 + (offset<<1), - 0xc000 +((offset<<1)+1), - mem_mask, - activecpu_get_pc()); - - // PC increments before it gets here - if (activecpu_get_pc() == 0x46204 || activecpu_get_pc() == 0x46208 || activecpu_get_pc() == 0x4620c) - { - logerror("SKIPPY HACK\n"); - return; - } - - if (mem_mask == (0x00000000)) - { - /* write the data to the dsp56k as well */ - dsp56k_shared_ram_16[(offset<<1)] = (dsp_shared_ram[offset] & 0xffff0000) >> 16 ; - dsp56k_shared_ram_16[(offset<<1)+1] = (dsp_shared_ram[offset] & 0x0000ffff) ; - } - else if (mem_mask == (0x0000ffff)) - { - /* write to the 'current' dsp56k byte */ - dsp56k_shared_ram_16[(offset<<1)] = (dsp_shared_ram[offset] & 0xffff0000) >> 16 ; - } - else if (mem_mask == (0xffff0000)) - { - /* write to the 'next' dsp56k byte */ - dsp56k_shared_ram_16[(offset<<1)+1] = (dsp_shared_ram[offset] & 0x0000ffff) ; - } -} - - - -static WRITE32_HANDLER( dsp_2_w ) -{ - /* - Assumed to be mapped to the DSP56156's Host Interface - it's write, so there are only 2 options here - the Interrupt Control Register (ICR) - address $0 - or the Interrupt Vector Register (IVR) - address $3... - - addendum - i believe it CAN'T be the ICR because bit 2 is reserved, and 05 would be writing to that... - besides, i think dsp_w (mask 0xff000000) is the proper ICR - - addendum - or maybe it's attached to the pins directly attached to the Host Interface Control Logic - HA0-HA2, HR/W, HEN, HACK, HREQ - - values passed are 0x00, 0x01, 0x05 - */ - - /* HAAAACK !!! Reset the DMA memory pointer for the dsp56k */ - if (data == 0x00000000) - dsp56k_reset_dma_offset(); - - logerror("dsp_2_w : %08x %08x %x \n", data, mem_mask, activecpu_get_pc()) ; -} - - - - - -static READ32_HANDLER( dsp_host_interface_r ) -{ - UINT8 hi_addr = offset<<1; - - if (mem_mask == (~0x0000ff00)) - hi_addr++; - - logerror("CALLING dsp_host_interface_read %x = %x [%x] (@%x)\n", hi_addr, dsp56k_host_interface_read(hi_addr), mem_mask, activecpu_get_pc()); - - if (mem_mask == (~0x0000ff00)) - return dsp56k_host_interface_read(hi_addr) << 8; - else - return dsp56k_host_interface_read(hi_addr) << 24; -} - - -static WRITE32_HANDLER( dsp_host_interface_w ) -{ - UINT8 dsp_data; - UINT8 hi_addr = offset<<1; - - if (mem_mask == (~0x0000ff00)) /* The second byte */ - { - hi_addr++; - dsp_data = data >> 8; - } - else - { - dsp_data = data >> 24; - } - - // !!! HACK - rev up cpu 1 when the HF0 bit is set !!! - if (dsp_data == 0x08 && hi_addr == 0) - { - logerror("hardware RESET sent\n"); - if (dsp_alive == 0) - cpunum_resume(1, SUSPEND_REASON_DISABLE) ; - dsp_alive = 1; - } - else - { - logerror("CALLING dsp_host_interface_write %x %x\n", hi_addr, dsp_data); - dsp56k_host_interface_write(hi_addr, dsp_data); - } -} - -static READ32_HANDLER( network_r ) -{ - return 0x08000000; -} - -static WRITE32_HANDLER( network_w ) -{ -} - -/**************************/ -/* DSP56k MEMORY HANDLERS */ -/**************************/ - - /* THE ffe3 story : - It's a 12-bit general purpose I/O port. I believe it handles banking... - - XXXX ---- ---- ---- . unusable - XXXX ???- -?-- ---- . unknown - XXXX ---- --x- ---- . turned on very early in the software - seems to enable 001c banking - XXXX ---- ---- --x- . turned on just before playing with 0181 banking - XXXX ---- ---x xx-- . (001c banking) believed to bank memory from 0x8000-0xbfff - IMPLEMENTED - XXXX ---x x--- ---x . (0181 banking) believed to bank other, strange memory - IMPLEMENTED - - 001c banking is fairly easy - it happens in a loop and writes from 8000 to bfff - 0181 banking is very weird - it happens in a nested loop and writes from 6000-6fff, 7000-7fff, and 8000-ffbf - bit 0002 turns on *just* before this happens. - - ...All of the bankXX memory read and write memory functions above check these values early on and - act accordingly... - */ - - - -#define DSP56K_PORTC (dsp56k_get_peripheral_memory(0xffe3)) - -static READ16_HANDLER( dsp56k_ram_bank00_read ) -{ - /* dsp56k_bank00_ram only has banking for the 0x0002 state - therefore its size is : 0x1000 + (0x8 * 0x1000) */ - - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1000 ; - - /* add the non-banked 0x1000 words for 0x0020 state */ - return dsp56k_bank00_ram[0x1000 + memOffset + offset] ; - } - - if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory */ - return dsp56k_bank00_ram[offset] ; - } - - logerror("dsp56k_ram_bank00_read : UNKNOWN BANKING STATE!\n") ; - return 0x00 ; -} - -static WRITE16_HANDLER( dsp56k_ram_bank00_write ) -{ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1000 ; - - /* add the non-banked 0x1000 words for 0x0020 state */ - COMBINE_DATA(&dsp56k_bank00_ram[0x1000 + memOffset + offset]) ; - } - else if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory */ - COMBINE_DATA(&dsp56k_bank00_ram[offset]) ; - } -} - -static READ16_HANDLER( dsp56k_ram_bank01_read ) -{ - /* dsp56k_bank01_ram only has banking for the 0x0002 state - therefore its size is : 0x1000 + (0x8 * 0x1000) */ - - /* 0x0002 overrides 0x0020 */ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1000 ; - - /* add the non-banked 0x1000 words for 0x0020 state */ - return dsp56k_bank01_ram[0x1000 + memOffset + offset] ; - } - - if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory */ - return dsp56k_bank01_ram[offset] ; - } - - logerror("dsp56k_ram_bank01_read : UNKNOWN BANKING STATE!\n") ; - return 0x00 ; -} - -static WRITE16_HANDLER( dsp56k_ram_bank01_write ) -{ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1000 ; - - /* add the non-banked 0x1000 words for 0x0020 state */ - COMBINE_DATA(&dsp56k_bank01_ram[0x1000 + memOffset + offset]) ; - } - else if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory */ - COMBINE_DATA(&dsp56k_bank01_ram[offset]) ; - } - - /* For now, *always* combine P:0x7000-0x7fff with bank01 */ - dsp56k_p_mirror[offset] = data; -} - -static READ16_HANDLER( dsp56k_ram_bank02_read ) -{ - /* Tons of banking for dsp_bank02_ram - both states - therefore its size is (0x8*0x4000) + (0x8*0x4000) */ - -// logerror("read ffe3 %x\n", DSP56K_PORTC); - - /* 0x0002 overrides 0x0020 */ - if (DSP56K_PORTC & 0x0002) - { - UINT32 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x4000 ; - - return dsp56k_bank02_ram[(0x4000*0x8) + memOffset + offset] ; - } - - if (DSP56K_PORTC & 0x0020) - { - UINT32 memOffset = ( (DSP56K_PORTC & 0x001c) >> 2 ) ; - memOffset *= 0x4000 ; - - /* 0x0020 state sits at the bottom of memory */ - return dsp56k_bank02_ram[memOffset + offset] ; - } - - logerror("dsp56k_ram_bank02_read : UNKNOWN BANKING STATE!\n") ; - return 0x00 ; -} - -static WRITE16_HANDLER( dsp56k_ram_bank02_write ) -{ -// logerror("write ffe3 %x\n", DSP56K_PORTC); - - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT32 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x4000 ; - -// logerror("memOffset %x\n", memOffset); - - /* add the non-banked 0x1000 words for 0x0020 state */ - COMBINE_DATA(&dsp56k_bank02_ram[(0x4000*0x8) + memOffset + offset]) ; - } - else if (DSP56K_PORTC & 0x0020) - { - UINT32 memOffset = ( (DSP56K_PORTC & 0x001c) >> 2 ) ; - memOffset *= 0x4000 ; - - /* 0x0020 state sits at the bottom of memory */ - COMBINE_DATA(&dsp56k_bank02_ram[memOffset + offset]) ; - } -} - -static READ16_HANDLER( dsp56k_shared_ram_read ) -{ - /* dsp56k_shared_ram_16 only has banking for the 0x0002 state - therefore its size is : 0x2000 + (0x8 * 0x2000) */ - - /* 0x0002 overrides 0x0020 */ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x2000 ; - - /* add the non-banked 0x2000 words for 0x0020 state */ - return dsp56k_shared_ram_16[0x2000 + memOffset + offset] ; - } - - if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sita at the bottom of memory - this is the part that is shared */ - return dsp56k_shared_ram_16[offset] ; - } - - logerror("dsp56k_shared_ram_read : UNKNOWN BANKING STATE!\n") ; - return 0x00 ; -} - -static WRITE16_HANDLER( dsp56k_shared_ram_write ) -{ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x2000 ; - - /* add the non-banked 0x2000 words for 0x0020 state */ - COMBINE_DATA(&dsp56k_shared_ram_16[0x2000 + memOffset + offset]) ; - } - else if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory */ - COMBINE_DATA(&dsp56k_shared_ram_16[offset]) ; - - /* write the data to the 68k as well, yo */ - if (offset % 2) - dsp_shared_ram[offset>>1] = ((dsp56k_shared_ram_16[offset-1]) << 16) | dsp56k_shared_ram_16[offset] ; - else - dsp_shared_ram[offset>>1] = ((dsp56k_shared_ram_16[offset]) << 16) | dsp56k_shared_ram_16[offset+1] ; - } -} - -static READ16_HANDLER( dsp56k_ram_bank04_read ) -{ - /* dsp56k_bank04_ram only has banking for the 0x0002 state - therefore its size is : 0x1fc0 + (0x8 * 0x1fc0) */ - - /* 0x0002 overrides 0x0020 */ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1fc0 ; - - /* add the non-banked 0x1fc0 words for 0x0020 state */ - return dsp56k_bank04_ram[0x1fc0 + memOffset + offset] ; - } - - if (DSP56K_PORTC & 0x0020) - { - /* 0x0020 state sits at the bottom of memory - this is the part that is shared */ - return dsp56k_bank04_ram[offset] ; - } - - logerror("dsp56k_ram_bank04_read : UNKNOWN BANKING STATE!\n") ; - return 0x00 ; -} - -static WRITE16_HANDLER( dsp56k_ram_bank04_write ) -{ - if (DSP56K_PORTC & 0x0002) - { - /* 0x0181 for the 0x0002 banking */ - UINT16 memOffset = ( (DSP56K_PORTC & 0x0001) + ((DSP56K_PORTC & 0x0180) >> 6) ) ; - memOffset *= 0x1fc0 ; - - /* add the non-banked 0x1fc0 words for 0x0020 state */ - COMBINE_DATA(&dsp56k_bank04_ram[0x1fc0 + memOffset + offset]) ; - } - else if (DSP56K_PORTC & 0x0020) - { - UINT16 memOffset = ( (DSP56K_PORTC & 0x001c) >> 2 ) ; - memOffset *= 0x1fc0 ; - - /* 0x0020 state sits at the bottom of memory */ - COMBINE_DATA(&dsp56k_bank04_ram[offset]) ; - } -} - - -/**********************************************************************************/ - -static ADDRESS_MAP_START( polygonet_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM // program/data ROM - AM_RANGE(0x200000, 0x21ffff) AM_RAM // PSAC2 tilemap -// AM_RANGE(0x400000, 0x40000f) // NOT SURE - BANKING? - AM_RANGE(0x440000, 0x440fff) AM_RAM // PSAC2 lineram - AM_RANGE(0x480000, 0x480003) AM_READ(polygonet_eeprom_r) - AM_RANGE(0x4C0000, 0x4C0003) AM_WRITE(polygonet_eeprom_w) - AM_RANGE(0x500000, 0x503fff) AM_READWRITE(dsp_shared_ram_read, dsp_shared_ram_write) AM_BASE(&dsp_shared_ram) - AM_RANGE(0x504000, 0x504003) AM_WRITE(dsp_2_w) - AM_RANGE(0x506000, 0x50600f) AM_READWRITE(dsp_host_interface_r, dsp_host_interface_w) - AM_RANGE(0x540000, 0x540fff) AM_READWRITE(polygonet_ttl_ram_r, polygonet_ttl_ram_w) - AM_RANGE(0x541000, 0x54101f) AM_RAM - AM_RANGE(0x580000, 0x5807ff) AM_RAM // chip A21K on the PCB - AM_RANGE(0x580800, 0x580803) AM_READWRITE(network_r, network_w) -// AM_RANGE(0x600000, 0x600003) // DUNNO - probably sound - AM_RANGE(0x600004, 0x600007) AM_WRITE(sound_w) - AM_RANGE(0x600008, 0x60000b) AM_READ(sound_r) - AM_RANGE(0x640000, 0x640003) AM_WRITE(sound_irq_w) - AM_RANGE(0x680000, 0x680003) AM_WRITE(watchdog_reset32_w) - AM_RANGE(0x700000, 0x73ffff) AM_READ(psac_rom_r) - AM_RANGE(0x780000, 0x79ffff) AM_READ(ttl_rom_r) - AM_RANGE(0xff8000, 0xffffff) AM_RAM // work RAM -ADDRESS_MAP_END - -/**********************************************************************************/ - -static ADDRESS_MAP_START( dsp56156_p_map, ADDRESS_SPACE_PROGRAM, 16 ) -// ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE(&dsp56k_p_mirror) // is it 0x1000 words? - AM_RANGE(0x8000, 0x87ff) AM_RAM // the processor memtests here -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dsp56156_d_map, ADDRESS_SPACE_DATA, 16 ) - AM_RANGE(0x0800, 0x5fff) AM_RAM - AM_RANGE(0x6000, 0x6fff) AM_READWRITE(dsp56k_ram_bank00_read, dsp56k_ram_bank00_write) - AM_RANGE(0x7000, 0x7fff) AM_READWRITE(dsp56k_ram_bank01_read, dsp56k_ram_bank01_write) - AM_RANGE(0x8000, 0xbfff) AM_READWRITE(dsp56k_ram_bank02_read, dsp56k_ram_bank02_write) - AM_RANGE(0xc000, 0xdfff) AM_READWRITE(dsp56k_shared_ram_read, dsp56k_shared_ram_write) - AM_RANGE(0xe000, 0xffbf) AM_READWRITE(dsp56k_ram_bank04_read, dsp56k_ram_bank04_write) -ADDRESS_MAP_END - -/**********************************************************************************/ - -static int cur_sound_region; - -static void reset_sound_region(void) -{ - memory_set_bankptr(2, memory_region(REGION_CPU3) + 0x10000 + cur_sound_region*0x4000); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - cur_sound_region = (data & 0x1f); - - reset_sound_region(); -} - -static INTERRUPT_GEN(audio_interrupt) -{ - cpunum_set_input_line(2, INPUT_LINE_NMI, PULSE_LINE); -} - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2) - AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe22f) AM_READWRITE(K054539_0_r, K054539_0_w) - AM_RANGE(0xe230, 0xe3ff) AM_RAM - AM_RANGE(0xe400, 0xe62f) AM_READWRITE(K054539_1_r, K054539_1_w) - AM_RANGE(0xe630, 0xe7ff) AM_RAM - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w) - AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r) - AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r) - AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w) - AM_RANGE(0xfff1, 0xfff3) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - -/**********************************************************************************/ - -static const gfx_layout bglayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, - 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &bglayout, 0x0000, 64 }, - { -1 } /* end of array */ -}; - -MACHINE_DRIVER_START( plygonet ) - MDRV_CPU_ADD(M68EC020, 16000000) /* 16 MHz (xtal is 32.0 MHz) */ - MDRV_CPU_PROGRAM_MAP(polygonet_map, 0) - MDRV_CPU_VBLANK_INT(polygonet_interrupt, 2) - - MDRV_CPU_ADD(DSP56156, 10000000) /* no idea */ - MDRV_CPU_FLAGS(CPU_DISABLE) - MDRV_CPU_PROGRAM_MAP(dsp56156_p_map, 0) - MDRV_CPU_DATA_MAP(dsp56156_d_map, 0) - - MDRV_CPU_ADD_TAG("sound", Z80, 8000000) - MDRV_CPU_PROGRAM_MAP(sound_map, 0) - MDRV_CPU_PERIODIC_INT(audio_interrupt, TIME_IN_HZ(480)) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_NVRAM_HANDLER(nvram_handler) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1 ) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(polygonet_vh_start) - MDRV_VIDEO_UPDATE(polygonet_vh_screenrefresh) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 0.75) - MDRV_SOUND_ROUTE(1, "right", 0.75) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 0.75) - MDRV_SOUND_ROUTE(1, "right", 0.75) -MACHINE_DRIVER_END - -INPUT_PORTS_START( polygonet ) - PORT_START - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4) - - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME(0x10, 0x00, "Monitors") - PORT_DIPSETTING(0x00, "1 Monitor") - PORT_DIPSETTING(0x10, "2 Monitors") -// PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) -INPUT_PORTS_END - -static DRIVER_INIT(polygonet) -{ - /* set default bankswitch */ - cur_sound_region = 2; - reset_sound_region(); - - /* allocate space for all the fun dsp56k banking */ - dsp56k_bank00_ram = auto_malloc( ( 0x1000 + (0x8*0x1000)) * 2) ; - dsp56k_bank01_ram = auto_malloc( ( 0x1000 + (0x8*0x1000)) * 2) ; - dsp56k_bank02_ram = auto_malloc( ((0x8*0x4000) + (0x8*0x4000)) * 2) ; - dsp56k_shared_ram_16 = auto_malloc( ( 0x2000 + (0x8*0x2000)) * 2) ; - dsp56k_bank04_ram = auto_malloc( ( 0x1fc0 + (0x8*0x1fc0)) * 2) ; -} - -ROM_START( plygonet ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0) - ROM_LOAD32_BYTE( "305a01.bin", 0x000003, 512*1024, CRC(8bdb6c95) SHA1(e981833842f8fd89b9726901fbe2058444204792) ) - ROM_LOAD32_BYTE( "305a02.bin", 0x000002, 512*1024, CRC(4d7e32b3) SHA1(25731526535036972577637d186f02ae467296bd) ) - ROM_LOAD32_BYTE( "305a03.bin", 0x000001, 512*1024, CRC(36e4e3fe) SHA1(e8fcad4f196c9b225a0fbe70791493ff07c648a9) ) - ROM_LOAD32_BYTE( "305a04.bin", 0x000000, 512*1024, CRC(d8394e72) SHA1(eb6bcf8aedb9ba5843204ab8aacb735cbaafb74d) ) - - /* Z80 sound program */ - ROM_REGION( 0x30000, REGION_CPU3, 0 ) - ROM_LOAD("305b05.bin", 0x000000, 0x20000, CRC(2d3d9654) SHA1(784a409df47cee877e507b8bbd3610d161d63753) ) - ROM_RELOAD( 0x10000, 0x20000) - - /* TTL text plane tiles */ - ROM_REGION( 0x20000, REGION_GFX1, 0 ) - ROM_LOAD( "305b06.bin", 0x000000, 0x20000, CRC(decd6e42) SHA1(4c23dcb1d68132d3381007096e014ee4b6007086) ) - - /* '936 tiles */ - ROM_REGION( 0x40000, REGION_GFX2, 0 ) - ROM_LOAD( "305b07.bin", 0x000000, 0x40000, CRC(e4320bc3) SHA1(b0bb2dac40d42f97da94516d4ebe29b1c3d77c37) ) - - /* sound data */ - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "305b08.bin", 0x000000, 0x200000, CRC(874607df) SHA1(763b44a80abfbc355bcb9be8bf44373254976019) ) -ROM_END - -/* ROM parent machine inp init */ -GAME( 1993, plygonet, 0, plygonet, polygonet, polygonet, ROT90, "Konami", "Polygonet Commanders (ver UAA)", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/polepos.c b/src/drivers/polepos.c deleted file mode 100644 index ce8181760..000000000 --- a/src/drivers/polepos.c +++ /dev/null @@ -1,1712 +0,0 @@ -/*************************************************************************** - -Pole Position (c) 1982 Namco -Pole Position II (c) 1983 Namco - -driver by Ernesto Corvi, Juergen Buchmueller, Alex Pasadyn, Aaron Giles, Nicola Salmoria - - -Custom ICs: ----------- -CPU board: -06XX interface to custom 5xXX -07XX clock divider -08XX(x2) bus controller -10XX(x4) Z8002 bus controller -51XX I/O -52XX sample player -53XX I/O -54XX explosion sound generator - -Video board: -02XX(x3) gfx data shifter and mixer (16-bit in, 4-bit out) -03XX(x2) ? -04XX sprite address generator -07XX clock divider -09XX address bus interface - - -Memory maps: ------------ -Part of the address decoding is done by PALs so it is inferred by program behaviour - -Z80: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -000xxxxxxxxxxxxx R xxxxxxxx ROM 7H program ROM -0010xxxxxxxxxxxx R xxxxxxxx ROM 7F program ROM -0011-xxxxxxxxxxx R/W xxxxxxxx CMOSRAMCS battery back-up RAM -010000xxxxxxxxxx R/W xxxxxxxx CSMB work RAM [1] -010000111xxxxxxx R/W xxxxxxxx portion holding sprite registers (POSI) [1] -010001xxxxxxxxxx R/W xxxxxxxx CSMD work RAM [1] -010001111xxxxxxx R/W xxxxxxxx portion holding sprite registers (SIZE, DATA) [1] -01001xxxxxxxxxxx R/W xxxxxxxx RAM 3F 1st half is road, 2nd half alpha tilemap [1] -01010xxxxxxxxxxx R/W xxxxxxxx RAM 3E background tilemap (1st half only) [1] -1000--xxxxxxxxxx R/W xxxxxxxx RAMCS work RAM -1000--1111xxxxxx R/W xxxxxxxx portion holding the sound registers -1001---0-------- R/W xxxxxxxx IODBENBL custom 06XX data -1001---1-------- R/W xxxxxxxx IODBENBL custom 06XX control -1010--00-------- R -------x READY +5V -1010--00-------- R ------x- READY 128V -1010--00-------- R -----x-- READY PWRUP (power line sense) -1010--00-------- R ----x--- READY ADC0804 INTR (end flag) -1010--01-------- R n.c. -1010--10-------- R n.c. -1010--11-------- R n.c. -1010--00-----000 W -------x IRQON Z80 IRQ enable/acknowledge -1010--00-----001 W -------x IOSEL reset 5xXX chips -1010--00-----010 W -------x CLSON sound enable [2] -1010--00-----011 W -------x GASEL accelerator/brake select -1010--00-----100 W -------x RESB reset Z8002 #1 -1010--00-----101 W -------x RESA reset Z8002 #2 -1010--00-----110 W -------x SB0 start (goes to 51XX start button input) -1010--00-----111 W -------x CHACL alpha layer enable color and msb -1010--01-------- W -------- WDR watchdog reset -1010--10-------- W -------x XSOUND engine enable -1010--10-------- W --xxxxx- XSOUND engine pitch lsb -1010--11-------- W --xxxxxx XSON engine pitch msb - -[1] shared with the two Z8002, but the Z80 can only access the low 8 bits of these - 16-bit areas -[2] affects wave and engine, but not 54XX and 52XX. Note that for the engine, this - clears the XSOUND and XSON latches. - - -Z80 I/O: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- ----------------- R xxxxxxxx ADC0804 (accelerator/brake pedals) - - -Z8002 #1: - -Address Dir Data Name Description ----------------- --- ---------------- --------- ----------------------- -00xxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM 4L/3L program ROM -01xxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM 4K/3K program ROM -011------------- W ---------------x NMIACKB Z8002 #2 NVI enable/acknowledge [1] -the rest of the memory map is common to the other Z8002 - - -Z8002 #2: - -Address Dir Data Name Description ----------------- --- ---------------- --------- ----------------------- -00xxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM 4E/3E program ROM -01xxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM 4D/3D program ROM -011------------- W ---------------x NMIACKA Z8002 #1 NVI enable/acknowledge [1] -the rest of the memory map is common to the other Z8002 - -[1] One Z8002 writes at $6000 and the other at $6002, but they did it only for clarity - because the low address bits are ignored and the location is not shared. - - -Z8002 (common): - -Address Dir Data Name Description ----------------- --- ---------------- --------- ----------------------- -10000xxxxxxxxxx- R/W xxxxxxxxxxxxxxxx CSMA/CSMB work RAM -10000111xxxxxxx- R/W xxxxxxxxxxxxxxxx portion holding sprite registers (POSI) -10001xxxxxxxxxx- R/W xxxxxxxxxxxxxxxx CSMC/CSMD work RAM -10001111xxxxxxx- R/W xxxxxxxxxxxxxxxx portion holding sprite registers (SIZE, DATA) -1001xxxxxxxxxxx- R/W xxxxxxxxxxxxxxxx RAM 4F/3F 1st half is road, 2nd half alpha tilemap -1010xxxxxxxxxxx- R/W xxxxxxxxxxxxxxxx RAM 4E/3E background tilemap (1st half only) -11---000-------- W ------xxxxxxxxxx VHP background horizontal position -11---001-------- W ----xxxxxxxxxxxx RVP road vertical position -11---010-------- W n.c. -11---011-------- W n.c. -11---100-------- W n.c. -11---101-------- W n.c. -11---110-------- W n.c. -11---111-------- W n.c. - - -Namco vs Atari ROM names and locations --------------------------------------- -* = not present - -Location ID (PP1) ID (PP2) Location ID (PP1) ID (PP2) --------- ---------- ---------- -------- ------------------------ ---------- -CPU 8M PP1-1 PP4-1 CPU 3L 136014-101 136014-176 -CPU 8L PP1-2 PP4-2 CPU 4L 136014-102 136014-177 - ? PP1-3* PP4-3* CPU 3K 136014-112* * - ? PP1-4* PP4-4* CPU 4K 136014-113* * -CPU 4M PP1-5 PP4-5 CPU 3E 136014-103 136014-178 -CPU 4L PP1-6 PP4-6 CPU 4E 136014-104 136014-179 -CPU 3M PP1-7* PP4-7 CPU 3D 136014-114* 136014-184 -CPU 3L PP1-8* PP4-8 CPU 4D 136014-115* 136014-185 -CPU 6H PP1-9 PP4-9 CPU 7H 136014-105 or 136014-160 136014-180 -CPU 5H PP1-10 PP4-10 CPU 7F 136014-116 136014-183 -CPU 2E PP1-11 <-- CPU 9C 136014-106 or 136014-147 <-- -CPU 2F PP1-12 <-- CPU 9A 136014-108* * -CPU 1E PP1-13 <-- CPU 8C 136014-107* * -CPU 1F PP1-14 <-- CPU 8A 136014-109* * -CPU 6A PP1-15 PP4-15 CPU 12F 136014-110 or 136014-148 136014-181 -CPU 5A PP1-16 PP4-16 CPU 12E 136014-111 or 136014-149 136014-182 - ? PP1-1[pal] <-- CPU 5C PAL-1 <-- - ? PP1-2[pal] <-- CPU 2N PAL-1 <-- - ? PP1-3[pal] <-- CPU 7C PAL-3 <-- -CPU 9H PP1-4[bpr] <-- CPU 7L 136014-117 <-- - ? PP1-5[bpr] <-- CPU 11D 136014-118 <-- - -VID 5N PP1-17 <-- VID 13J 136014-119 == 136014-150 <-- -VID 5M PP1-18 <-- VID 12J 136014-120 == 136014-151 <-- -VID 4N PP1-19 <-- VID 13K 136014-121 or 136014-152 136014-166 -VID 4M PP1-20 <-- VID 12K 136014-122 or 136014-153 136014-167 -VID 3N PP1-21 <-- VID 13L 136014-123 or 136014-154 136014-168 -VID 3M PP1-22 <-- VID 12L 136014-124 or 136014-155 136014-169 -VID 2N PP1-23* PP4-23 VID 13M 136014-129* 136014-175 -VID 2M PP1-24* PP4-24 VID 12M 136014-130* 136014-174 -VID 1N PP1-25 PP4-25 VID 13N 136014-125 or 136014-156 136014-170 -VID 1M PP1-26 PP4-26 VID 12N 136014-126 or 136014-157 136014-171 - ? PP1-27 <-- VID 11N 136014-131 <-- -VID 1F PP1-28 PP4-28 VID 7N 136014-132 or 137205-001? 136014-172 -VID 1E PP1-29 PP4-29 VID 6N 136014-133 or 137205-001? 136014-173 -VID 3A PP1-30 <-- VID 2L 136014-127 == 136014-158 <-- -VID 2A PP1-31 <-- VID 2M 136014-128 == 136014-159 <-- -VID 1A PP1-32 <-- VID 2N 136014-134 or 137205-001? <-- -VID 6M PP1-6[bpr] PP4-6[bpr] VID 12H 136014-146 136014-192 -VID 8L PP1-7[bpr] PP4-7[bpr] VID 11E 136014-137 136014-186 -VID 9L PP1-8[bpr] PP4-8[bpr] VID 11D 136014-138 136014-187 -VID 10L PP1-9[bpr] PP4-9[bpr] VID 11C 136014-139 136014-188 -VID 2H PP1-10[bpr] PP4-10[bpr] VID 8M 136014-140 136014-189 -VID 4D PP1-11[bpr] PP4-11[bpr] VID 5K 136014-141 136014-190 -VID 3C PP1-12[bpr] PP4-12[bpr] VID 4L 136014-145 136014-191 -VID 8E PP1-13[bpr] <-- VID 6E 136014-135 <-- -VID 9E PP1-14[bpr] <-- VID 6D 136014-136 <-- - ? PP1-15[bpr] <-- VID 2D 136014-142 <-- - ? PP1-16[bpr] <-- VID 2C 136014-143 <-- -VID 11A PP1-17[bpr] <-- VID 2B 136014-144 <-- - - -Notes: ------ -- Easter egg (both Pole Position and Pole Position II): - - enter service mode - - turn wheel to 04; change the shifter from LO to HI - - turn wheel to 45; change the shifter from LO to HI - - turn wheel to 55; change the shifter from LO to HI - - turn wheel to 56; change the shifter from LO to HI - - turn wheel to 91; change the shifter from LO to HI - (c) 1982 NAMCO LTD. will appear on the screen. - -- To reset the high score table, enter service mode, press the accelerator and - change the shifter from LO to HI - -- Pole Position II reports 'Manual Start' on the Test Mode. This is ok, - because they had to accomodate the hardware from Pole Position I to allow - track selection. - -- Change POLEPOS_TOGGLE to 0 if you are using the original gearshift. - -- The old version of the vertical scaling ROM, 136014-131, has (apart from - some irrelevant differences) one bad bit. - This seems to be a genuine error on Atari's part, since they replaced it with - 136014-231 which matches Namco's PP1-27. The bad bit should cause a tiny gfx - glitch, though it's difficult to notice. - - -***************************************************************************/ - -#include "driver.h" -#include "machine/namcoio.h" -#include "sound/namco.h" -#include "sound/namco52.h" -#include "sound/namco54.h" -#include "sound/custom.h" -#include "sound/samples.h" -#include "rescap.h" - - -#define POLEPOS_TOGGLE PORT_TOGGLE - - -/* from sndhrdw */ -void *polepos_sh_start(int clock, const struct CustomSound_interface *config); -void polepos_sh_reset(void *token); -WRITE8_HANDLER( polepos_engine_sound_lsb_w ); -WRITE8_HANDLER( polepos_engine_sound_msb_w ); - -/* from vidhrdw */ -extern UINT16 *polepos_view16_memory; -extern UINT16 *polepos_road16_memory; -extern UINT16 *polepos_alpha16_memory; -extern UINT16 *polepos_sprite16_memory; -extern int polepos_gear_bit; - -VIDEO_START( polepos ); -PALETTE_INIT( polepos ); -VIDEO_UPDATE( polepos ); - -WRITE16_HANDLER( polepos_view16_w ); -WRITE16_HANDLER( polepos_road16_w ); -WRITE16_HANDLER( polepos_alpha16_w ); -WRITE16_HANDLER( polepos_sprite16_w ); -WRITE8_HANDLER( polepos_view_w ); -WRITE8_HANDLER( polepos_road_w ); -WRITE8_HANDLER( polepos_alpha_w ); -WRITE8_HANDLER( polepos_sprite_w ); -WRITE8_HANDLER( polepos_chacl_w ); - -READ16_HANDLER( polepos_view16_r ); -READ16_HANDLER( polepos_road16_r ); -READ16_HANDLER( polepos_alpha16_r ); -READ16_HANDLER( polepos_sprite16_r ); -READ8_HANDLER( polepos_view_r ); -READ8_HANDLER( polepos_road_r ); -READ8_HANDLER( polepos_alpha_r ); -READ8_HANDLER( polepos_sprite_r ); -WRITE16_HANDLER( polepos_view16_hscroll_w ); -WRITE16_HANDLER( polepos_road16_vscroll_w ); - - -/*************************************************************************************/ -/* Pole Position II protection */ -/*************************************************************************************/ - -READ16_HANDLER( polepos2_ic25_r ) -{ - int result; - /* protection states */ - static INT16 last_result; - static INT8 last_signed; - static UINT8 last_unsigned; - - offset = offset & 0x1ff; - if (offset < 0x100) - { - last_signed = offset & 0xff; - result = last_result & 0xff; - } - else - { - last_unsigned = offset & 0xff; - result = (last_result >> 8) & 0xff; - last_result = (INT8)last_signed * (UINT8)last_unsigned; - } - -// logerror("%04X: read IC25 @ %04X = %02X\n", activecpu_get_pc(), offset, result); - - return result | (result << 8); -} - - - - -static int adc_input; -static int auto_start_mask; - - -static READ8_HANDLER( polepos_adc_r ) -{ - return readinputport(3 + adc_input); -} - -static READ8_HANDLER( polepos_ready_r ) -{ - int ret = 0xff; - - if (cpu_getscanline() >= 128) - ret ^= 0x02; - - ret ^= 0x08; /* ADC End Flag */ - - return ret; -} - - -static WRITE8_HANDLER( polepos_latch_w ) -{ - int bit = data & 1; - - switch (offset) - { - case 0x00: /* IRQON */ - cpu_interrupt_enable(0,bit); - if (!bit) - cpunum_set_input_line(0, 0, CLEAR_LINE); - break; - - case 0x01: /* IOSEL */ -//polepos_mcu_enable_w(offset,data); - break; - - case 0x02: /* CLSON */ - polepos_sound_enable(bit); - if (!bit) - { - polepos_engine_sound_lsb_w(0,0); - polepos_engine_sound_msb_w(0,0); - } - break; - - case 0x03: /* GASEL */ - adc_input = bit; - break; - - case 0x04: /* RESB */ - cpunum_set_input_line(1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - break; - - case 0x05: /* RESA */ - cpunum_set_input_line(2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - break; - - case 0x06: /* SB0 */ - auto_start_mask = 0xfb | (bit << 2); - break; - - case 0x07: /* CHACL */ - polepos_chacl_w(offset,data); - break; - } -} - -static WRITE16_HANDLER( polepos_z8002_nvi_enable_w ) -{ - int which = cpu_getactivecpu(); - - data &= 1; - - cpu_interrupt_enable(which,data); - if (!data) - cpunum_set_input_line(which, 0, CLEAR_LINE); -} - - -static READ8_HANDLER( in0_l ) { return readinputport(0) & auto_start_mask; } // fire and start buttons -static READ8_HANDLER( in0_h ) { return readinputport(0) >> 4; } // coins -static READ8_HANDLER( dipA_l ) { return readinputport(1); } // dips A -static READ8_HANDLER( dipA_h ) { return readinputport(1) >> 4; } // dips A -static READ8_HANDLER( dipB_l ) { return readinputport(2); } // dips B -static READ8_HANDLER( dipB_h ) { return readinputport(2) >> 4; } // dips B -static READ8_HANDLER( in1_l ) { return readinputport(5); } // wheel -static READ8_HANDLER( in1_h ) { return readinputport(5) >> 4; } // wheel -static WRITE8_HANDLER( out_0 ) -{ -// no start lamps in pole position -// set_led_status(1,data & 1); -// set_led_status(0,data & 2); - coin_counter_w(1,~data & 4); - coin_counter_w(0,~data & 8); -} -static WRITE8_HANDLER( out_1 ) -{ - coin_lockout_global_w(data & 1); -} - -static struct namcoio_interface intf0 = -{ - { in0_l, in0_h, dipB_l, dipB_h }, /* port read handlers */ - { out_0, out_1 } /* port write handlers */ -}; -static struct namcoio_interface intf1 = -{ - { in1_l, in1_h, dipA_l, dipA_h }, /* port read handlers */ - { NULL, NULL } /* port write handlers */ -}; - - -#include "cpu/z8000/z8000.h" -static MACHINE_RESET( polepos ) -{ - int i; - - /* Reset all latches */ - for (i = 0;i < 8;i++) - polepos_latch_w(i,0); - - namco_06xx_init(0, 0, - NAMCOIO_51XX, &intf0, - NAMCOIO_53XX_POLEPOS, &intf1, - NAMCOIO_52XX, NULL, - NAMCOIO_54XX, NULL); - - /* set the interrupt vectors (this shouldn't be needed) */ - cpunum_set_input_line_vector(1, 0, Z8000_NVI); - cpunum_set_input_line_vector(2, 0, Z8000_NVI); -} - - - -/********************************************************************* - * CPU memory structures - *********************************************************************/ - -static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_ROM - AM_RANGE(0x3000, 0x37ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* Battery Backup */ - AM_RANGE(0x4000, 0x47ff) AM_READWRITE(polepos_sprite_r, polepos_sprite_w) /* Motion Object */ - AM_RANGE(0x4800, 0x4bff) AM_READWRITE(polepos_road_r, polepos_road_w) /* Road Memory */ - AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(polepos_alpha_r, polepos_alpha_w) /* Alphanumeric (char ram) */ - AM_RANGE(0x5000, 0x57ff) AM_READWRITE(polepos_view_r, polepos_view_w) /* Background Memory */ - - AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM) /* Sound Memory */ - AM_RANGE(0x8000, 0x83bf) AM_WRITE(MWA8_RAM) /* Sound Memory */ - AM_RANGE(0x83c0, 0x83ff) AM_WRITE(polepos_sound_w) AM_BASE(&polepos_soundregs)/* Sound data */ - - AM_RANGE(0x9000, 0x90ff) AM_READWRITE(namco_06xx_0_data_r, namco_06xx_0_data_w) - AM_RANGE(0x9100, 0x9100) AM_READWRITE(namco_06xx_0_ctrl_r, namco_06xx_0_ctrl_w) - AM_RANGE(0xa000, 0xa000) AM_READ(polepos_ready_r) /* READY */ - AM_RANGE(0xa000, 0xa007) AM_WRITE(polepos_latch_w) /* misc latches */ - AM_RANGE(0xa100, 0xa100) AM_WRITE(watchdog_reset_w) /* Watchdog */ - AM_RANGE(0xa200, 0xa200) AM_WRITE(polepos_engine_sound_lsb_w) /* Car Sound ( Lower Nibble ) */ - AM_RANGE(0xa300, 0xa300) AM_WRITE(polepos_engine_sound_msb_w) /* Car Sound ( Upper Nibble ) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_io, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READWRITE(polepos_adc_r, MWA8_NOP) -ADDRESS_MAP_END - - -/* the same memory map is used by both Z8002 CPUs; all RAM areas are shared */ -static ADDRESS_MAP_START( z8002_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x6000, 0x6003) AM_WRITE(polepos_z8002_nvi_enable_w) /* NVI enable - *NOT* shared by the two CPUs */ - AM_RANGE(0x8000, 0x8fff) AM_READWRITE(polepos_sprite16_r, polepos_sprite16_w) AM_BASE(&polepos_sprite16_memory) /* Motion Object */ - AM_RANGE(0x9000, 0x97ff) AM_READWRITE(polepos_road16_r, polepos_road16_w) AM_BASE(&polepos_road16_memory) /* Road Memory */ - AM_RANGE(0x9800, 0x9fff) AM_READWRITE(polepos_alpha16_r, polepos_alpha16_w) AM_BASE(&polepos_alpha16_memory) /* Alphanumeric (char ram) */ - AM_RANGE(0xa000, 0xafff) AM_READWRITE(polepos_view16_r, polepos_view16_w) AM_BASE(&polepos_view16_memory) /* Background memory */ - AM_RANGE(0xc000, 0xc001) AM_WRITE(polepos_view16_hscroll_w) /* Background horz scroll position */ - AM_RANGE(0xc100, 0xc101) AM_WRITE(polepos_road16_vscroll_w) /* Road vertical position */ -ADDRESS_MAP_END - - - -/********************************************************************* - * Input port definitions - *********************************************************************/ - -INPUT_PORTS_START( polepos ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gear Change") PORT_CODE(KEYCODE_SPACE) POLEPOS_TOGGLE /* Gear */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // start 1, program controlled - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x60, "90 secs." ) - PORT_DIPSETTING( 0x20, "100 secs." ) - PORT_DIPSETTING( 0x40, "110 secs." ) - PORT_DIPSETTING( 0x00, "120 secs." ) - PORT_DIPNAME( 0x80, 0x80, "Nr. of Laps" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, "Extended Rank" ) - PORT_DIPSETTING( 0x07, "A" ) - PORT_DIPSETTING( 0x03, "B" ) - PORT_DIPSETTING( 0x05, "C" ) - PORT_DIPSETTING( 0x01, "D" ) - PORT_DIPSETTING( 0x06, "E" ) - PORT_DIPSETTING( 0x02, "F" ) - PORT_DIPSETTING( 0x04, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x38, 0x38, "Practice Rank" ) - PORT_DIPSETTING( 0x38, "A" ) - PORT_DIPSETTING( 0x18, "B" ) - PORT_DIPSETTING( 0x28, "C" ) - PORT_DIPSETTING( 0x08, "D" ) - PORT_DIPSETTING( 0x30, "E" ) - PORT_DIPSETTING( 0x10, "F" ) - PORT_DIPSETTING( 0x20, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 - Brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LALT) - - PORT_START /* IN2 - Accel */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LCONTROL) - - PORT_START /* IN3 - Steering */ - PORT_BIT ( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -INPUT_PORTS_START( poleposa ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gear Change") PORT_CODE(KEYCODE_SPACE) POLEPOS_TOGGLE /* Gear */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // start 1, program controlled - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x06, "90 secs." ) - PORT_DIPSETTING( 0x02, "100 secs." ) - PORT_DIPSETTING( 0x04, "110 secs." ) - PORT_DIPSETTING( 0x00, "120 secs." ) - PORT_DIPNAME( 0x01, 0x01, "Nr. of Laps" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0xe0, 0xe0, "Practice Rank" ) - PORT_DIPSETTING( 0xe0, "A" ) - PORT_DIPSETTING( 0x60, "B" ) - PORT_DIPSETTING( 0xa0, "C" ) - PORT_DIPSETTING( 0x20, "D" ) - PORT_DIPSETTING( 0xc0, "E" ) - PORT_DIPSETTING( 0x40, "F" ) - PORT_DIPSETTING( 0x80, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x1c, 0x1c, "Extended Rank" ) - PORT_DIPSETTING( 0x1c, "A" ) - PORT_DIPSETTING( 0x0c, "B" ) - PORT_DIPSETTING( 0x14, "C" ) - PORT_DIPSETTING( 0x04, "D" ) - PORT_DIPSETTING( 0x18, "E" ) - PORT_DIPSETTING( 0x08, "F" ) - PORT_DIPSETTING( 0x10, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x02, 0x02, "Speed Unit" ) - PORT_DIPSETTING( 0x00, "mph" ) - PORT_DIPSETTING( 0x02, "km/h" ) - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 - Brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LALT) - - PORT_START /* IN2 - Accel */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LCONTROL) - - PORT_START /* IN3 - Steering */ - PORT_BIT ( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -INPUT_PORTS_START( topracra ) - // no coins ?! - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // start 1, program controlled - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gear Change") PORT_CODE(KEYCODE_SPACE) POLEPOS_TOGGLE /* Gear */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x60, "90 secs." ) - PORT_DIPSETTING( 0x20, "100 secs." ) - PORT_DIPSETTING( 0x40, "110 secs." ) - PORT_DIPSETTING( 0x00, "120 secs." ) - PORT_DIPNAME( 0x80, 0x80, "Nr. of Laps" ) - PORT_DIPSETTING( 0x80, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x07, 0x07, "Extended Rank" ) - PORT_DIPSETTING( 0x07, "A" ) - PORT_DIPSETTING( 0x03, "B" ) - PORT_DIPSETTING( 0x05, "C" ) - PORT_DIPSETTING( 0x01, "D" ) - PORT_DIPSETTING( 0x06, "E" ) - PORT_DIPSETTING( 0x02, "F" ) - PORT_DIPSETTING( 0x04, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x38, 0x38, "Practice Rank" ) - PORT_DIPSETTING( 0x38, "A" ) - PORT_DIPSETTING( 0x18, "B" ) - PORT_DIPSETTING( 0x28, "C" ) - PORT_DIPSETTING( 0x08, "D" ) - PORT_DIPSETTING( 0x30, "E" ) - PORT_DIPSETTING( 0x10, "F" ) - PORT_DIPSETTING( 0x20, "G" ) - PORT_DIPSETTING( 0x00, "H" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN1 - Brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LALT) - - PORT_START /* IN2 - Accel */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LCONTROL) - - PORT_START /* IN3 - Steering */ - PORT_BIT ( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -INPUT_PORTS_START( polepos2 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gear Change") PORT_CODE(KEYCODE_SPACE) POLEPOS_TOGGLE /* Gear */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) // start 1, program controlled - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* DSW A */ - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x04, 0x04, "Speed Unit" ) - PORT_DIPSETTING( 0x00, "mph" ) - PORT_DIPSETTING( 0x04, "km/h" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* docs say "freeze", but it doesn't seem to work */ - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x80, "90 secs." ) - PORT_DIPSETTING( 0x00, "120 secs." ) - PORT_DIPNAME( 0x60, 0x60, "Practice Rank" ) - PORT_DIPSETTING( 0x20, "A" ) - PORT_DIPSETTING( 0x60, "B" ) - PORT_DIPSETTING( 0x40, "C" ) - PORT_DIPSETTING( 0x00, "D" ) - PORT_DIPNAME( 0x18, 0x18, "Extended Rank" ) - PORT_DIPSETTING( 0x08, "A" ) - PORT_DIPSETTING( 0x18, "B" ) - PORT_DIPSETTING( 0x10, "C" ) - PORT_DIPSETTING( 0x00, "D" ) - PORT_DIPNAME( 0x06, 0x06, "Goal" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x06, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x01, 0x01, "Speed" ) - PORT_DIPSETTING( 0x01, "Average" ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - - PORT_START /* IN1 - Brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LALT) - - PORT_START /* IN2 - Accel */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x90) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) PORT_CODE_DEC(KEYCODE_LCONTROL) - - PORT_START /* IN3 - Steering */ - PORT_BIT ( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(4) -INPUT_PORTS_END - - - -/********************************************************************* - * Graphics layouts - *********************************************************************/ - -static const gfx_layout charlayout_2bpp = -{ - 8,8, - RGN_FRAC(1,1), - 2, - { 0, 4 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8*2 -}; - -static const gfx_layout bigspritelayout = -{ - 32,32, - RGN_FRAC(1,2), - 4, - { 0, 4, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4 }, - { 0, 1, 2, 3, 8, 9, 10, 11, - 16, 17, 18, 19, 24, 25, 26, 27, - 32, 33, 34, 35, 40, 41, 42, 43, - 48, 49, 50, 51, 56, 57, 58, 59}, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64, - 16*64, 17*64, 18*64, 19*64, 20*64, 21*64, 22*64, 23*64, - 24*64, 25*64, 26*64, 27*64, 28*64, 29*64, 30*64, 31*64 }, - 32*64 -}; - -static const gfx_layout smallspritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { 0, 4, RGN_FRAC(1,2), RGN_FRAC(1,2)+4 - }, - { 0, 1, 2, 3, 8, 9, 10, 11, - 16, 17, 18, 19, 24, 25, 26, 27 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 16*32 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout_2bpp, 0x0000, 128 }, - { REGION_GFX2, 0, &charlayout_2bpp, 0x0200, 64 }, - { REGION_GFX3, 0, &smallspritelayout, 0x0300, 128 }, - { REGION_GFX4, 0, &bigspritelayout, 0x0300, 128 }, - { -1 } /* end of array */ -}; - - -/********************************************************************* - * Sound interfaces - *********************************************************************/ - -static struct namco_interface namco_interface = -{ - 8, /* number of voices */ - REGION_SOUND1, /* memory region */ - 1 /* stereo */ -}; - -/* The 52xx output is 4Vpp. After filtering it is 2Vpp. - * The output of the 54xx is 4Vpp. After filtering it is clamped to +1.5/-2. - * So we need to make the 52xx volume 50% of the 54xx volume. - * 52xx and 54xx ouputs are mixed together to create an output called GAINx. - * This has a total resistance to the final op-amp of 13605 when the unemulated 4066 - * panning circuit is at full volume. The engine sound has a resistance of 17492. - * These values include 250 ohms of the 4066 when needed. - * This all means that the engine sound is 77% of the 54xx. - * - * Jan 13/05 D.R. - not sure about the following info. - * The Sound Buffers and Multiplexer circuit on sheet 7B is not emulated. - * Basically it is a quadraphonic 16 level mixer with a 4-bit DAC (R81-85). - * It mixes/pans the combined 52xx & 54xx output. - * The 4 speaker sit down game uses the full quad output. - * The 2 speaker stand up game combine RF-RR and LF-LR through the speakers. - * - * I set the base 54xx level at 80 and the other sounds realtive to that, - * to allow headroom when more the one effect is played. - */ - -static struct namco_52xx_interface namco_52xx_interface = -{ - REGION_SOUND3, /* memory region */ - 0, /* Use internal Playback frequency */ - 100, /* High pass filter fc */ - 0.3, /* High pass filter Q */ - 1200, /* Low pass filter fc */ - 0.8, /* Low pass filter Q */ - .5 /* Combined gain of both filters */ -}; - -static struct namco_54xx_interface namco_54xx_interface = -{ - { RES_K(22), RES_K(15), RES_K(22) }, /* R139, R133, R121 */ - { RES_K(22), RES_K(15), RES_K(12) }, /* R143, R137, R125 */ - { RES_K(180), RES_K(120), RES_K(120) }, /* R140, R134, R122 */ - { 470, 470, 470 }, /* R141, R135, R123 */ - { CAP_U(.047), CAP_U(.022), CAP_U(.0022) }, /* C33, C29, C27 */ - { CAP_U(.047), CAP_U(.022), CAP_U(.0022) }, /* C34, C30, C28 */ -}; - -static struct CustomSound_interface custom_interface = -{ - polepos_sh_start, - NULL, - polepos_sh_reset -}; - -static const char *polepos_sample_names[] = -{ - "*polepos", - "pp2_18.wav", - 0 /* end of array */ -}; - -static struct Samplesinterface samples_interface = -{ - 1, /* 1 channel */ - polepos_sample_names -}; - - - -/********************************************************************* - * Machine driver - *********************************************************************/ - -static MACHINE_DRIVER_START( polepos ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 24576000/8) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(z80_map,0) - MDRV_CPU_IO_MAP(z80_io,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,2) /* 64V */ - - MDRV_CPU_ADD(Z8000, 24576000/8) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(z8002_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z8000, 24576000/8) /* 3.072 MHz */ - MDRV_CPU_PROGRAM_MAP(z8002_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_WATCHDOG_VBLANK_INIT(16) // 128V clocks the same as VBLANK - MDRV_SCREEN_REFRESH_RATE(60.606060) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* some interleaving */ - - MDRV_MACHINE_RESET(polepos) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(128) - MDRV_COLORTABLE_LENGTH(0x0f00) - - MDRV_PALETTE_INIT(polepos) - MDRV_VIDEO_START(polepos) - MDRV_VIDEO_UPDATE(polepos) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(NAMCO, 24576000/512) - MDRV_SOUND_CONFIG(namco_interface) - MDRV_SOUND_ROUTE(0, "left", 0.80) - MDRV_SOUND_ROUTE(1, "right", 0.80) - - MDRV_SOUND_ADD(NAMCO_52XX, 24576000/16) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_52xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) - - MDRV_SOUND_ADD(NAMCO_54XX, 24576000/16) /* 1.536 MHz */ - MDRV_SOUND_CONFIG(namco_54xx_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) - - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.77) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.77) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.40) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.40) -MACHINE_DRIVER_END - - -/********************************************************************* - * ROM definitions - *********************************************************************/ - -ROM_START( polepos ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "pp1_9b.6h", 0x0000, 0x2000, CRC(94436b70) SHA1(7495c2a8c3928c59146760d19e672afee01c5b17) ) - ROM_LOAD( "136014.116", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "pp1_1b.8m", 0x0001, 0x2000, CRC(361c56dd) SHA1(6e4abf98b10077c6980e8aa3861f0233135ea68f) ) - ROM_LOAD16_BYTE( "pp1_2b.8l", 0x0000, 0x2000, CRC(582b530a) SHA1(4fc38aa8b70816e14b321ec778090f6c7e7f1640) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "pp1_5b.4m", 0x0001, 0x2000, CRC(5cdf5294) SHA1(dbdf327a541fd71aadafda9c925fa4cf7f7c4a24) ) - ROM_LOAD16_BYTE( "pp1_6b.4l", 0x0000, 0x2000, CRC(81696272) SHA1(27041a7c24297a6f317537c44922b51d2b2278a6) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "pp1_28.1f", 0x0000, 0x1000, CRC(5b277daf) SHA1(0b1feeb2c0c63a5db5ba9b0115aa1b2388636a70) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "pp1_29.1e", 0x0000, 0x1000, CRC(706e888a) SHA1(af1aa2199fcf73a3afbe760857ff117865350954) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "pp1_25.1n", 0x0000, 0x2000, CRC(ac8e28c1) SHA1(13bc2bf4be28d9ae987f79034f9532272b3a2543) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "pp1_26.1m", 0x2000, 0x2000, CRC(94443079) SHA1(413d7b762c8dff541675e96874be6ee0251d3581) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.150", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "pp1_19.4n", 0x2000, 0x2000, CRC(43ff83e1) SHA1(8f830549a629b019125e59801e5027e4e4b3c0f2) ) - ROM_LOAD( "pp1_21.3n", 0x4000, 0x2000, CRC(5f958eb4) SHA1(b56d84e5e5e0ddeb0e71851ba66e5fa1b1409551) ) - ROM_LOAD( "136014.151", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "pp1_20.4m", 0xa000, 0x2000, CRC(ec18075b) SHA1(af7be549c5fa47551a8dca4c0a531552147fa50f) ) - ROM_LOAD( "pp1_22.3m", 0xc000, 0x2000, CRC(1d2f30b1) SHA1(1d88a3069e9b15febd2835dd63e5511b3b2a6b45) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.158", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.159", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.137", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "136014.138", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "136014.139", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "136014.140", 0x0300, 0x0100, CRC(1e8d0491) SHA1(e8bf1db5c1fb04a35763099965cf5c588240bde5) ) /* alpha color */ - ROM_LOAD( "136014.141", 0x0400, 0x0100, CRC(0e4fe8a0) SHA1(d330b1e5ebccf5bbefcf71486fd80d816de38196) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.145", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "pp1_6.bpr", 0x0c00, 0x0400, CRC(2f1079ee) SHA1(18a27998a78deff13dd198f3668a7e92f084f467) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.110", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "136014.111", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x8000, REGION_SOUND3, 0 ) - ROM_LOAD( "pp1_11.2e", 0x0000, 0x2000, CRC(45b9bfeb) SHA1(ff8c690471944d414931fb88666594ef608997f8) ) /* voice */ - ROM_LOAD( "pp1_12.2f", 0x2000, 0x2000, CRC(a31b4be5) SHA1(38298093bb97ea8647fe187359cae05b65e1c616) ) /* voice */ - ROM_LOAD( "pp1_13.1e", 0x4000, 0x2000, CRC(a4237466) SHA1(88a397276038cc2fc05f2c18472e6b7cef167f2e) ) /* voice */ - ROM_LOAD( "pp1_14.1f", 0x6000, 0x2000, CRC(944580f9) SHA1(c76f529cae718674ce97a1a599a3c6eaf6bf561a) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -ROM_START( poleposa ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "136014.105", 0x0000, 0x2000, CRC(c918c043) SHA1(abc1aa3d7b670b5a65b4565dc646cd3c4edf4e6f) ) - ROM_LOAD( "136014.116", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "136014.101", 0x0001, 0x2000, CRC(8c2cf172) SHA1(57c774afab79599ac3f434113c3170fbb3d42620) ) - ROM_LOAD16_BYTE( "136014.102", 0x0000, 0x2000, CRC(51018857) SHA1(ed28d44d172a01f76461f556229d1fe3a1b779a7) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "136014.203", 0x0001, 0x2000, CRC(eedea6e7) SHA1(e1459c5e3f824e589e624c3acb18a183fd160df6) ) - ROM_LOAD16_BYTE( "136014.204", 0x0000, 0x2000, CRC(c52c98ed) SHA1(2e33c487deaf8afb941e07e511a9828d2d8f6b31) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "136014.132", 0x0000, 0x1000, CRC(a949aa85) SHA1(2d6414196b6071101001128418233e585279ffb9) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "136014.133", 0x0000, 0x1000, CRC(3f0eb551) SHA1(39516d0f72f4e3b03df9451d2dbe081d6c71a508) ) /* 2bpp view layer */ - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "136014.156", 0x0000, 0x2000, CRC(e7a09c93) SHA1(47cc5c6776333bba8454a3df9e2f6e7de4a465e1) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "136014.157", 0x2000, 0x2000, CRC(dee7d687) SHA1(ea34b51c91f6915b74a4a7b53ddb4ff36b72bf66) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.150", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "136014.152", 0x2000, 0x2000, CRC(a7e3a1c6) SHA1(b7340318afaa4b5f416fe4444899579242cd36c2) ) - ROM_LOAD( "136014.154", 0x4000, 0x2000, CRC(8992d381) SHA1(3bf2544dbe88132137acec2c064a104a74139ec7) ) - ROM_LOAD( "136014.151", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "136014.153", 0xa000, 0x2000, CRC(6c5c6e68) SHA1(dce74ee0e69e0fc0a1942a489c2065381239f0f1) ) - ROM_LOAD( "136014.155", 0xc000, 0x2000, CRC(111896ad) SHA1(15032b4c859231373bebfa640421fdcc8ba9d211) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.158", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.159", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.137", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "136014.138", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "136014.139", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "136014.140", 0x0300, 0x0100, CRC(1e8d0491) SHA1(e8bf1db5c1fb04a35763099965cf5c588240bde5) ) /* alpha color */ - ROM_LOAD( "136014.141", 0x0400, 0x0100, CRC(0e4fe8a0) SHA1(d330b1e5ebccf5bbefcf71486fd80d816de38196) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.145", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "136014.146", 0x0c00, 0x0400, CRC(ca4ba741) SHA1(de93d738bd27e24dbc4a8378d2c120ef8388c261) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.110", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "136014.111", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "136014.106", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -ROM_START( polepos1 ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "136014.105", 0x0000, 0x2000, CRC(c918c043) SHA1(abc1aa3d7b670b5a65b4565dc646cd3c4edf4e6f) ) - ROM_LOAD( "136014.116", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "136014.101", 0x0001, 0x2000, CRC(8c2cf172) SHA1(57c774afab79599ac3f434113c3170fbb3d42620) ) - ROM_LOAD16_BYTE( "136014.102", 0x0000, 0x2000, CRC(51018857) SHA1(ed28d44d172a01f76461f556229d1fe3a1b779a7) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "136014.103", 0x0001, 0x2000, CRC(af4fc019) SHA1(1bb6c0f3ffada2e1df72e1767581f8e8bb2b18f9) ) - ROM_LOAD16_BYTE( "136014.104", 0x0000, 0x2000, CRC(ba0045f3) SHA1(aedb8d8c56407963aa4ffb66243288c8fd6d845a) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "136014.132", 0x0000, 0x1000, CRC(a949aa85) SHA1(2d6414196b6071101001128418233e585279ffb9) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "136014.133", 0x0000, 0x1000, CRC(3f0eb551) SHA1(39516d0f72f4e3b03df9451d2dbe081d6c71a508) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "136014.156", 0x0000, 0x2000, CRC(e7a09c93) SHA1(47cc5c6776333bba8454a3df9e2f6e7de4a465e1) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "136014.157", 0x2000, 0x2000, CRC(dee7d687) SHA1(ea34b51c91f6915b74a4a7b53ddb4ff36b72bf66) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.150", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "136014.152", 0x2000, 0x2000, CRC(a7e3a1c6) SHA1(b7340318afaa4b5f416fe4444899579242cd36c2) ) - ROM_LOAD( "136014.154", 0x4000, 0x2000, CRC(8992d381) SHA1(3bf2544dbe88132137acec2c064a104a74139ec7) ) - ROM_LOAD( "136014.151", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "136014.153", 0xa000, 0x2000, CRC(6c5c6e68) SHA1(dce74ee0e69e0fc0a1942a489c2065381239f0f1) ) - ROM_LOAD( "136014.155", 0xc000, 0x2000, CRC(111896ad) SHA1(15032b4c859231373bebfa640421fdcc8ba9d211) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.158", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.159", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.131", 0x0000, 0x1000, CRC(5921777f) SHA1(4d9c91a26e0d84fbbe08f748d6e0364311ed6f73) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.137", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "136014.138", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "136014.139", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "136014.140", 0x0300, 0x0100, CRC(1e8d0491) SHA1(e8bf1db5c1fb04a35763099965cf5c588240bde5) ) /* alpha color */ - ROM_LOAD( "136014.141", 0x0400, 0x0100, CRC(0e4fe8a0) SHA1(d330b1e5ebccf5bbefcf71486fd80d816de38196) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.145", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "136014.146", 0x0c00, 0x0400, CRC(ca4ba741) SHA1(de93d738bd27e24dbc4a8378d2c120ef8388c261) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.110", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "136014.111", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "136014.106", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -ROM_START( topracer ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "pp1_9b.6h", 0x0000, 0x2000, CRC(94436b70) SHA1(7495c2a8c3928c59146760d19e672afee01c5b17) ) - ROM_LOAD( "136014.116", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "tr1b.bin", 0x0001, 0x2000, CRC(127f0750) SHA1(97ae6c6f8086187c7cdb8bff5fec94914791890b) ) - ROM_LOAD16_BYTE( "tr2b.bin", 0x0000, 0x2000, CRC(6bd4ff6b) SHA1(cf992de39a8cf7804961a8e6773fc4f7feb1878b) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "tr5b.bin", 0x0001, 0x2000, CRC(4e5f7b9c) SHA1(d26b1f24dd9ef00388987890bc5b95d4db403815) ) - ROM_LOAD16_BYTE( "tr6b.bin", 0x0000, 0x2000, CRC(9d038ada) SHA1(7a9496c3fb93fd1945393656f8510a0c6421a9ab) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "tr28.bin", 0x0000, 0x1000, CRC(b8217c96) SHA1(aba311bc3c4b118ba322a00e33e2d5cbe7bc6e4a) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "tr29.bin", 0x0000, 0x1000, CRC(c6e15c21) SHA1(e2a70b3f7ce51a003068eb75d9fe82548f0206d7) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "trus25.bin", 0x0000, 0x2000, CRC(9e1a9c3b) SHA1(deca026c39093119985d1486ed61abc3e6e5705c) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "trus26.bin", 0x2000, 0x2000, CRC(3b39a176) SHA1(d04c9c2c9129c8dd7d7eab24c43502b67162407c) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "pp17.bin", 0x0000, 0x2000, CRC(613ab0df) SHA1(88aa4500275aae010fc9783c1d8d843feab89afa) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "tr19.bin", 0x2000, 0x2000, CRC(f8e7f551) SHA1(faa23c55bc43325e6f71936be970f2ca144697d8) ) - ROM_LOAD( "tr21.bin", 0x4000, 0x2000, CRC(17c798b0) SHA1(ae2047bc0e4e8c85e1de09c39c200ea8f7c6a72e) ) - ROM_LOAD( "pp18.bin", 0x8000, 0x2000, CRC(5fd933e3) SHA1(5b27a8519234c935308f943cd58abc1efc463726) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "tr20.bin", 0xa000, 0x2000, CRC(7053e219) SHA1(97700fbe887e2d11c9f9a0937147725f6787f081) ) - ROM_LOAD( "tr22.bin", 0xc000, 0x2000, CRC(f48917b2) SHA1(2823cfc33ae97ef979d92e2eeeb94c95f1f3d9f3) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.158", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.159", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.137", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "136014.138", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "136014.139", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "10p.bin", 0x0300, 0x0100, CRC(5af3f710) SHA1(da13d17acf8abd0f6ebb4b51b23c3324c6197b7d) ) /* alpha color */ - ROM_LOAD( "7052-11.j15", 0x0400, 0x0100, CRC(8c90e36e) SHA1(2646288d9e0f86300da7f06e1dc0595673205bb4) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.145", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "pp1_6.bpr", 0x0c00, 0x0400, CRC(2f1079ee) SHA1(18a27998a78deff13dd198f3668a7e92f084f467) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.110", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "136014.111", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "136014.106", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "7052-4.c14", 0x0000, 0x0100, CRC(0e742cb1) SHA1(3ae43270aab4848fdeece1648e7e040ab216b08e) ) /* sync chain */ -ROM_END - -ROM_START( topracra ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "pole-c2", 0x0000, 0x2000, CRC(caab829a) SHA1(826f25f5c792ab8b24e73ebb735aebcad552454f) ) - ROM_LOAD( "pole-h2", 0x2000, 0x1000, CRC(148f5000) SHA1(071f75518f06a317f53db78f11da3ee878569f86) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "tr1b.bin", 0x0001, 0x2000, CRC(127f0750) SHA1(97ae6c6f8086187c7cdb8bff5fec94914791890b) ) - ROM_LOAD16_BYTE( "tr2b.bin", 0x0000, 0x2000, CRC(6bd4ff6b) SHA1(cf992de39a8cf7804961a8e6773fc4f7feb1878b) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "tr5b.bin", 0x0001, 0x2000, CRC(4e5f7b9c) SHA1(d26b1f24dd9ef00388987890bc5b95d4db403815) ) - ROM_LOAD16_BYTE( "pole-d", 0x0000, 0x2000, CRC(932bb5a7) SHA1(8045fe1f9b4b1973ec0d6705adf3ba3891bddaa1) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "tr28.bin", 0x0000, 0x1000, CRC(b8217c96) SHA1(aba311bc3c4b118ba322a00e33e2d5cbe7bc6e4a) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "tr29.bin", 0x0000, 0x1000, CRC(c6e15c21) SHA1(e2a70b3f7ce51a003068eb75d9fe82548f0206d7) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "pole-5", 0x0000, 0x2000, CRC(301117d2) SHA1(0d8be9e50da4601963a8392aa3e0f3414e721fa1) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "pole-6", 0x2000, 0x2000, CRC(3c9db014) SHA1(c26098dd78803e699845fefa92bf034c38259cea) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "pp17.bin", 0x0000, 0x2000, CRC(613ab0df) SHA1(88aa4500275aae010fc9783c1d8d843feab89afa) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "tr19.bin", 0x2000, 0x2000, CRC(f8e7f551) SHA1(faa23c55bc43325e6f71936be970f2ca144697d8) ) - ROM_LOAD( "tr21.bin", 0x4000, 0x2000, CRC(17c798b0) SHA1(ae2047bc0e4e8c85e1de09c39c200ea8f7c6a72e) ) - ROM_LOAD( "pp18.bin", 0x8000, 0x2000, CRC(5fd933e3) SHA1(5b27a8519234c935308f943cd58abc1efc463726) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "tr20.bin", 0xa000, 0x2000, CRC(7053e219) SHA1(97700fbe887e2d11c9f9a0937147725f6787f081) ) - ROM_LOAD( "pole-9", 0xc000, 0x2000, CRC(5fe9b365) SHA1(1a3ac099a6bb506a5f71c12c6fb14d014172371c) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.158", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.159", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.137", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "136014.138", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "136014.139", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "10p.bin", 0x0300, 0x0100, CRC(5af3f710) SHA1(da13d17acf8abd0f6ebb4b51b23c3324c6197b7d) ) /* alpha color */ - ROM_LOAD( "7052-11.j15", 0x0400, 0x0100, CRC(8c90e36e) SHA1(2646288d9e0f86300da7f06e1dc0595673205bb4) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.145", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "pp1_6.bpr", 0x0c00, 0x0400, CRC(2f1079ee) SHA1(18a27998a78deff13dd198f3668a7e92f084f467) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.110", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "136014.111", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x8000, REGION_SOUND3, 0 ) - ROM_LOAD( "pp1_11.2e", 0x0000, 0x2000, CRC(45b9bfeb) SHA1(ff8c690471944d414931fb88666594ef608997f8) ) /* voice */ - ROM_LOAD( "pp1_12.2f", 0x2000, 0x2000, CRC(a31b4be5) SHA1(38298093bb97ea8647fe187359cae05b65e1c616) ) /* voice */ - ROM_LOAD( "pp1_13.1e", 0x4000, 0x2000, CRC(a4237466) SHA1(88a397276038cc2fc05f2c18472e6b7cef167f2e) ) /* voice */ - ROM_LOAD( "pp1_14.1f", 0x6000, 0x2000, CRC(944580f9) SHA1(c76f529cae718674ce97a1a599a3c6eaf6bf561a) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "7052-4.c14", 0x0000, 0x0100, CRC(0e742cb1) SHA1(3ae43270aab4848fdeece1648e7e040ab216b08e) ) /* sync chain */ -ROM_END - -ROM_START( topracrb ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "tr9.f17", 0x0000, 0x2000, CRC(94436b70) SHA1(7495c2a8c3928c59146760d19e672afee01c5b17) ) - ROM_LOAD( "tr10.f16", 0x2000, 0x1000, CRC(7174bcb7) SHA1(460326a6cea201db2df813013c95562a222ea95d) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "tr1b.f11", 0x0001, 0x2000, CRC(127f0750) SHA1(97ae6c6f8086187c7cdb8bff5fec94914791890b) ) - ROM_LOAD16_BYTE( "tr2b.f8", 0x0000, 0x2000, CRC(6bd4ff6b) SHA1(cf992de39a8cf7804961a8e6773fc4f7feb1878b) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "tr5b.f7", 0x0001, 0x2000, CRC(4e5f7b9c) SHA1(d26b1f24dd9ef00388987890bc5b95d4db403815) ) - ROM_LOAD16_BYTE( "tr6b.f5", 0x0000, 0x2000, CRC(b3641d0c) SHA1(38ce172b2e38895749cbd3cc1c0e2c0fe8be744a) ) - - /* graphics data */ - ROM_REGION( 0x01000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "tr28.j9", 0x0000, 0x1000, CRC(b8217c96) SHA1(aba311bc3c4b118ba322a00e33e2d5cbe7bc6e4a) ) - - ROM_REGION( 0x01000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "tr29.k9", 0x0000, 0x1000, CRC(c6e15c21) SHA1(e2a70b3f7ce51a003068eb75d9fe82548f0206d7) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "tr25.d5", 0x0000, 0x2000, CRC(9e1a9c3b) SHA1(deca026c39093119985d1486ed61abc3e6e5705c) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "tr26.d8", 0x2000, 0x2000, CRC(3b39a176) SHA1(d04c9c2c9129c8dd7d7eab24c43502b67162407c) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "tr17.a5", 0x0000, 0x2000, CRC(613ab0df) SHA1(88aa4500275aae010fc9783c1d8d843feab89afa) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "tr19.b5", 0x2000, 0x2000, CRC(f8e7f551) SHA1(faa23c55bc43325e6f71936be970f2ca144697d8) ) - ROM_LOAD( "tr21.c5", 0x4000, 0x2000, CRC(17c798b0) SHA1(ae2047bc0e4e8c85e1de09c39c200ea8f7c6a72e) ) - ROM_LOAD( "tr18.a8", 0x8000, 0x2000, CRC(5fd933e3) SHA1(5b27a8519234c935308f943cd58abc1efc463726) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "tr20.b8", 0xa000, 0x2000, CRC(7053e219) SHA1(97700fbe887e2d11c9f9a0937147725f6787f081) ) - ROM_LOAD( "tr22.c8", 0xc000, 0x2000, CRC(5fe9b365) SHA1(1a3ac099a6bb506a5f71c12c6fb14d014172371c) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "tr30.b15", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "tr31.a15", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "tr32.c15", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "tr27.d3", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "7052-7.k21", 0x0000, 0x0100, CRC(f07ff2ad) SHA1(e1f3cb10a03d23f8c1d422acf271dba4e7b98cb1) ) /* red palette */ - ROM_LOAD( "7052-8.k20", 0x0100, 0x0100, CRC(adbde7d7) SHA1(956ac5117c1e310f554ac705aa2dc24a796c36a5) ) /* green palette */ - ROM_LOAD( "7052-9.k19", 0x0200, 0x0100, CRC(ddac786a) SHA1(d1860105bf91297533ccc4aa6775987df198d0fa) ) /* blue palette */ - ROM_LOAD( "7052-10.h15", 0x0300, 0x0100, CRC(5af3f710) SHA1(da13d17acf8abd0f6ebb4b51b23c3324c6197b7d) ) /* alpha color */ - ROM_LOAD( "7052-11.j15", 0x0400, 0x0100, CRC(8c90e36e) SHA1(2646288d9e0f86300da7f06e1dc0595673205bb4) ) /* background color */ - ROM_LOAD( "7052-15.d1", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "7052-16.d2", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "7052-17.d3", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "7122.a19", 0x0800, 0x0400, CRC(7afc7cfc) SHA1(ba2407f6eff124e881b354f13205a4c058b7cf60) ) /* road color */ - ROM_LOAD( "7122.e7", 0x0c00, 0x0400, CRC(2f1079ee) SHA1(18a27998a78deff13dd198f3668a7e92f084f467) ) /* sprite color */ - ROM_LOAD( "7051-13.l7", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "7051-14.l8", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "7052-5.e9", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "tr15.a8", 0x0000, 0x2000, CRC(b5ad4d5f) SHA1(c07e77a050200d6fe9952031f971ca35f4d15ff8) ) /* engine sound */ - ROM_LOAD( "tr16.b9", 0x2000, 0x2000, CRC(8fdd2f6f) SHA1(3818dc94c60cd78c4212ab7a4367cf3d98166ee6) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "tr11.b1", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "7052-4.c14", 0x0000, 0x0100, CRC(0e742cb1) SHA1(3ae43270aab4848fdeece1648e7e040ab216b08e) ) /* sync chain */ -ROM_END - - -ROM_START( polepos2 ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "pp4_9.6h", 0x0000, 0x2000, CRC(bcf87004) SHA1(0c60cbb777fe72dfd11c6f3e9da806a515cd0f8a) ) - ROM_LOAD( "136014.183", 0x2000, 0x1000, CRC(a9d4c380) SHA1(6048a8e858824936901e8e3e6b65d7505ccd82b4) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "pp4_1.8m", 0x0001, 0x2000, CRC(3f6ac294) SHA1(414ea7e43e62a573ad8971a7045f61eb997cf94e) ) - ROM_LOAD16_BYTE( "pp4_2.8l", 0x0000, 0x2000, CRC(51b9a669) SHA1(563ba42098d330801a992cd9c008c4cbbb993530) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "pp4_5.4m", 0x0001, 0x2000, CRC(c3053cae) SHA1(f42cf61fe696dd7e282b29e2234ea7f487ec2372) ) - ROM_LOAD16_BYTE( "pp4_6.4l", 0x0000, 0x2000, CRC(38d04e0f) SHA1(5527cb1864248208b10d219a50ad742f286a119f) ) - ROM_LOAD16_BYTE( "pp4_7.3m", 0x4001, 0x1000, CRC(ad1c8994) SHA1(2877de9641516767170c0109900955cc7d1ff402) ) - ROM_LOAD16_BYTE( "pp4_8.3l", 0x4000, 0x1000, CRC(ef25a2ee) SHA1(45959355cad1a48f19ae14193374e03d4f9965c7) ) - - /* graphics data */ - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "pp4_28.1f", 0x0000, 0x2000, CRC(280dde7d) SHA1(b7c7fb3a5076aa4d0e0cf3256ece9a6194315626) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "136014.173", 0x0000, 0x2000, CRC(ec3ec6e6) SHA1(ae905d0ae802d1010b2c1f1a13e88a1f0dbe57da) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "pp4_25.1n", 0x0000, 0x2000, CRC(fd098e65) SHA1(2c497f1d278ba6730752706a0d1b5a5a0fec3d5b) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "pp4_26.1m", 0x2000, 0x2000, CRC(35ac62b3) SHA1(21038a78eb73d520e3e1ae8e1c0047d06b94cdab) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.119", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "pp1_19.4n", 0x2000, 0x2000, CRC(43ff83e1) SHA1(8f830549a629b019125e59801e5027e4e4b3c0f2) ) - ROM_LOAD( "pp1_21.3n", 0x4000, 0x2000, CRC(5f958eb4) SHA1(b56d84e5e5e0ddeb0e71851ba66e5fa1b1409551) ) - ROM_LOAD( "pp4_23.2n", 0x6000, 0x2000, CRC(9e056fcd) SHA1(8545e0a9b6ebf8c2903321ceb9c4d693db10d750) ) - ROM_LOAD( "136014.120", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "pp1_20.4m", 0xa000, 0x2000, CRC(ec18075b) SHA1(af7be549c5fa47551a8dca4c0a531552147fa50f) ) - ROM_LOAD( "pp1_22.3m", 0xc000, 0x2000, CRC(1d2f30b1) SHA1(1d88a3069e9b15febd2835dd63e5511b3b2a6b45) ) - ROM_LOAD( "pp4_24.2m", 0xe000, 0x2000, CRC(795268cf) SHA1(84136142ef4bdcd97ede2209ecb16745960ac393) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.127", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.128", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.186", 0x0000, 0x0100, CRC(16d69c31) SHA1(f24b345448e4f4ef4e2f3b057b81d399cf427f88) ) /* red palette */ - ROM_LOAD( "136014.187", 0x0100, 0x0100, CRC(07340311) SHA1(3820d1fa99013ed18de5d9400ad376cc446d1217) ) /* green palette */ - ROM_LOAD( "136014.188", 0x0200, 0x0100, CRC(1efc84d7) SHA1(6946e1c209eec0a4b75778ae88111e6cb63c63fb) ) /* blue palette */ - ROM_LOAD( "136014.189", 0x0300, 0x0100, CRC(064d51a0) SHA1(d5baa29930530a8930b44a374e285de849c2a6ce) ) /* alpha color */ - ROM_LOAD( "136014.190", 0x0400, 0x0100, CRC(7880c5af) SHA1(e4388e354420be3f99594a10c091e3d2f745cc04) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.191", 0x0800, 0x0400, CRC(8b270902) SHA1(27b3ebc92d3a2a5c0432bde018a0e43669041d50) ) /* road color */ - ROM_LOAD( "pp4-6.6m", 0x0c00, 0x0400, CRC(647212b5) SHA1(ad58dfebd0ce8226285c2671c3b7797852c26d07) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.181", 0x0000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - ROM_LOAD( "136014.182", 0x2000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - - ROM_REGION( 0x8000, REGION_SOUND3, 0 ) - ROM_LOAD( "pp1_11.2e", 0x0000, 0x2000, CRC(45b9bfeb) SHA1(ff8c690471944d414931fb88666594ef608997f8) ) /* voice */ - ROM_LOAD( "pp1_12.2f", 0x2000, 0x2000, CRC(a31b4be5) SHA1(38298093bb97ea8647fe187359cae05b65e1c616) ) /* voice */ - ROM_LOAD( "pp1_13.1e", 0x4000, 0x2000, CRC(a4237466) SHA1(88a397276038cc2fc05f2c18472e6b7cef167f2e) ) /* voice */ - ROM_LOAD( "pp1_14.1f", 0x6000, 0x2000, CRC(944580f9) SHA1(c76f529cae718674ce97a1a599a3c6eaf6bf561a) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -ROM_START( poleps2a ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "136014.180", 0x0000, 0x2000, CRC(f85212c4) SHA1(666e55a7662247e72393b105b3e719be4233f1ff) ) - ROM_LOAD( "136014.183", 0x2000, 0x1000, CRC(a9d4c380) SHA1(6048a8e858824936901e8e3e6b65d7505ccd82b4) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "136014.176", 0x0001, 0x2000, CRC(8aeaec98) SHA1(76b3bbb64a17090bf28858f1e91d2206a3beaf5b) ) - ROM_LOAD16_BYTE( "136014.177", 0x0000, 0x2000, CRC(7051df35) SHA1(cf23118ab05f5af273d756f97e6453496a276c9a) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "136014.178", 0x0001, 0x2000, CRC(eac35cfa) SHA1(f96005b3b63d85fc30695ab746af79c60f2f1341) ) - ROM_LOAD16_BYTE( "136014.179", 0x0000, 0x2000, CRC(613e917d) SHA1(97c139f8aa7bd871a907e72980757b83f99fd8a0) ) - ROM_LOAD16_BYTE( "136014.184", 0x4001, 0x2000, CRC(d893c4ed) SHA1(60d39abefbb0c8df68864a30b1f5fcbf4780c86c) ) - ROM_LOAD16_BYTE( "136014.185", 0x4000, 0x2000, CRC(899de75e) SHA1(4a16535115e37a3d342b2cb53f610a87c0d0abe1) ) - - /* graphics data */ - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "136014.172", 0x0000, 0x2000, CRC(fbe5e72f) SHA1(07965d6e98ac1332ac6192b5e9cc927dd9eb706f) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "136014.173", 0x0000, 0x2000, CRC(ec3ec6e6) SHA1(ae905d0ae802d1010b2c1f1a13e88a1f0dbe57da) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "136014.170", 0x0000, 0x2000, CRC(455d79a0) SHA1(03ef7c58f3145d9a6a461ef1aea3b5a49e653f80) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "136014.171", 0x2000, 0x2000, CRC(78372b81) SHA1(5defaf2074c1ab4d13dc36a190c658ddf7f7931b) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.119", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "136014.166", 0x2000, 0x2000, CRC(2b0517bd) SHA1(ebe447ba3dcd8a3b56f47d707483074f61953fec) ) - ROM_LOAD( "136014.168", 0x4000, 0x2000, CRC(4d7916d9) SHA1(052745f252f51bfdd456e54cf7b8d22ab3aace27) ) - ROM_LOAD( "136014.175", 0x6000, 0x2000, CRC(bd6df480) SHA1(58f39fa3ae43d94fe42dc51da341384a9c3879ae) ) - ROM_LOAD( "136014.120", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "136014.167", 0xa000, 0x2000, CRC(411e21b5) SHA1(9659ee429d819926b5e5b12c41b968ae6e7f186e) ) - ROM_LOAD( "136014.169", 0xc000, 0x2000, CRC(662ff24b) SHA1(4cf8509034742c2bec8a96c7a786dafdf5875e4f) ) - ROM_LOAD( "136014.174", 0xe000, 0x2000, CRC(f0c571dc) SHA1(9e6839e9e203fc120a0389f4e11c9d46a817dbdf) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.127", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.128", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.186", 0x0000, 0x0100, CRC(16d69c31) SHA1(f24b345448e4f4ef4e2f3b057b81d399cf427f88) ) /* red palette */ - ROM_LOAD( "136014.187", 0x0100, 0x0100, CRC(07340311) SHA1(3820d1fa99013ed18de5d9400ad376cc446d1217) ) /* green palette */ - ROM_LOAD( "136014.188", 0x0200, 0x0100, CRC(1efc84d7) SHA1(6946e1c209eec0a4b75778ae88111e6cb63c63fb) ) /* blue palette */ - ROM_LOAD( "136014.189", 0x0300, 0x0100, CRC(064d51a0) SHA1(d5baa29930530a8930b44a374e285de849c2a6ce) ) /* alpha color */ - ROM_LOAD( "136014.190", 0x0400, 0x0100, CRC(7880c5af) SHA1(e4388e354420be3f99594a10c091e3d2f745cc04) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.191", 0x0800, 0x0400, CRC(8b270902) SHA1(27b3ebc92d3a2a5c0432bde018a0e43669041d50) ) /* road color */ - ROM_LOAD( "136014.192", 0x0c00, 0x0400, CRC(caddb0b0) SHA1(e41b89f2b40bf8f93546012f373ae63dcae870da) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.181", 0x0000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - ROM_LOAD( "136014.182", 0x2000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "136014.106", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -ROM_START( poleps2b ) - /* Z80 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "136014.180", 0x0000, 0x2000, CRC(f85212c4) SHA1(666e55a7662247e72393b105b3e719be4233f1ff) ) - ROM_LOAD( "136014.183", 0x2000, 0x1000, CRC(a9d4c380) SHA1(6048a8e858824936901e8e3e6b65d7505ccd82b4) ) - - /* Z8002 #1 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD16_BYTE( "3lcpu.rom", 0x0001, 0x2000, CRC(cf95a6b7) SHA1(6a8419af8a52d3a8c88663b67845e4cb18e35723) ) - ROM_LOAD16_BYTE( "4lcpu.rom", 0x0000, 0x2000, CRC(643483f7) SHA1(020822f623b8e65c6016492266b6e328f7637b68) ) - ROM_LOAD16_BYTE( "cpu-4k.rom", 0x4000, 0x1000, CRC(97a496b3) SHA1(fe79d2376c5fa9fe242905a841a1c894a5ccfba4) ) - - /* Z8002 #2 memory/ROM data */ - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD16_BYTE( "136014.178", 0x0001, 0x2000, CRC(eac35cfa) SHA1(f96005b3b63d85fc30695ab746af79c60f2f1341) ) - ROM_LOAD16_BYTE( "136014.179", 0x0000, 0x2000, CRC(613e917d) SHA1(97c139f8aa7bd871a907e72980757b83f99fd8a0) ) - ROM_LOAD16_BYTE( "136014.184", 0x4001, 0x2000, CRC(d893c4ed) SHA1(60d39abefbb0c8df68864a30b1f5fcbf4780c86c) ) - ROM_LOAD16_BYTE( "136014.185", 0x4000, 0x2000, CRC(899de75e) SHA1(4a16535115e37a3d342b2cb53f610a87c0d0abe1) ) - - /* graphics data */ - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* 2bpp alpha layer */ - ROM_LOAD( "136014.172", 0x0000, 0x2000, CRC(fbe5e72f) SHA1(07965d6e98ac1332ac6192b5e9cc927dd9eb706f) ) - - ROM_REGION( 0x02000, REGION_GFX2, ROMREGION_DISPOSE ) /* 2bpp view layer */ - ROM_LOAD( "136014.173", 0x0000, 0x2000, CRC(ec3ec6e6) SHA1(ae905d0ae802d1010b2c1f1a13e88a1f0dbe57da) ) - - ROM_REGION( 0x04000, REGION_GFX3, ROMREGION_DISPOSE ) /* 4bpp 16x16 sprites */ - ROM_LOAD( "136014.170", 0x0000, 0x2000, CRC(455d79a0) SHA1(03ef7c58f3145d9a6a461ef1aea3b5a49e653f80) ) /* 4bpp sm sprites, planes 0+1 */ - ROM_LOAD( "136014.171", 0x2000, 0x2000, CRC(78372b81) SHA1(5defaf2074c1ab4d13dc36a190c658ddf7f7931b) ) /* 4bpp sm sprites, planes 2+3 */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE ) /* 4bpp 32x32 sprites */ - ROM_LOAD( "136014.119", 0x0000, 0x2000, CRC(2e134b46) SHA1(0938f5f9f5cc6d7c1096c569449db78dbc42da01) ) /* 4bpp lg sprites, planes 0+1 */ - ROM_LOAD( "136014.166", 0x2000, 0x2000, CRC(2b0517bd) SHA1(ebe447ba3dcd8a3b56f47d707483074f61953fec) ) - ROM_LOAD( "136014.168", 0x4000, 0x2000, CRC(4d7916d9) SHA1(052745f252f51bfdd456e54cf7b8d22ab3aace27) ) - ROM_LOAD( "136014.175", 0x6000, 0x2000, CRC(bd6df480) SHA1(58f39fa3ae43d94fe42dc51da341384a9c3879ae) ) - ROM_LOAD( "136014.120", 0x8000, 0x2000, CRC(6f9997d2) SHA1(b26d505266ccf23bfd867f881756c3251c80f57b) ) /* 4bpp lg sprites, planes 2+3 */ - ROM_LOAD( "136014.167", 0xa000, 0x2000, CRC(411e21b5) SHA1(9659ee429d819926b5e5b12c41b968ae6e7f186e) ) - ROM_LOAD( "136014.169", 0xc000, 0x2000, CRC(662ff24b) SHA1(4cf8509034742c2bec8a96c7a786dafdf5875e4f) ) - ROM_LOAD( "136014.174", 0xe000, 0x2000, CRC(f0c571dc) SHA1(9e6839e9e203fc120a0389f4e11c9d46a817dbdf) ) - - ROM_REGION( 0x5000, REGION_GFX5, 0 ) /* road generation ROMs needed at runtime */ - ROM_LOAD( "136014.127", 0x0000, 0x2000, CRC(ee6b3315) SHA1(9cc26c6d3604c0f60d716f86e67e9d9c0487f87d) ) /* road control */ - ROM_LOAD( "136014.128", 0x2000, 0x2000, CRC(6d1e7042) SHA1(90113ff0c93ed86d95067290088705bb5e6608d1) ) /* road bits 1 */ - ROM_LOAD( "136014.134", 0x4000, 0x1000, CRC(4e97f101) SHA1(f377d053821c74aee93ebcd30a4d43e6156f3cfe) ) /* road bits 2 */ - - ROM_REGION( 0x1000, REGION_GFX6, 0 ) /* sprite scaling */ - ROM_LOAD( "136014.231", 0x0000, 0x1000, CRC(a61bff15) SHA1(f7a59970831cdaaa7bf59c2221a38e4746c54244) ) /* vertical scaling */ - - /* graphics (P)ROM data */ - ROM_REGION( 0x1040, REGION_PROMS, 0 ) - ROM_LOAD( "136014.186", 0x0000, 0x0100, CRC(16d69c31) SHA1(f24b345448e4f4ef4e2f3b057b81d399cf427f88) ) /* red palette */ - ROM_LOAD( "136014.187", 0x0100, 0x0100, CRC(07340311) SHA1(3820d1fa99013ed18de5d9400ad376cc446d1217) ) /* green palette */ - ROM_LOAD( "136014.188", 0x0200, 0x0100, CRC(1efc84d7) SHA1(6946e1c209eec0a4b75778ae88111e6cb63c63fb) ) /* blue palette */ - ROM_LOAD( "136014.189", 0x0300, 0x0100, CRC(064d51a0) SHA1(d5baa29930530a8930b44a374e285de849c2a6ce) ) /* alpha color */ - ROM_LOAD( "136014.190", 0x0400, 0x0100, CRC(7880c5af) SHA1(e4388e354420be3f99594a10c091e3d2f745cc04) ) /* background color */ - ROM_LOAD( "136014.142", 0x0500, 0x0100, CRC(2d502464) SHA1(682b7dd22e51d5db52c0804b7e27e47641dfa6bd) ) /* vertical position low */ - ROM_LOAD( "136014.143", 0x0600, 0x0100, CRC(027aa62c) SHA1(c7030d8b64b80e107c446f6fbdd63f560c0a91c0) ) /* vertical position med */ - ROM_LOAD( "136014.144", 0x0700, 0x0100, CRC(1f8d0df3) SHA1(b8f17758f114f5e247b65b3f2922ca2660757e66) ) /* vertical position hi */ - ROM_LOAD( "136014.191", 0x0800, 0x0400, CRC(8b270902) SHA1(27b3ebc92d3a2a5c0432bde018a0e43669041d50) ) /* road color */ - ROM_LOAD( "136014.192", 0x0c00, 0x0400, CRC(caddb0b0) SHA1(e41b89f2b40bf8f93546012f373ae63dcae870da) ) /* sprite color */ - ROM_LOAD( "136014.135", 0x1000, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - ROM_LOAD( "136014.136", 0x1020, 0x0020, CRC(4330a51b) SHA1(9531d18ce2de4eda9913d47ef8c5cd8f05791716) ) /* video RAM address decoder (not used) */ - - /* sound (P)ROM data */ - ROM_REGION( 0x0100, REGION_SOUND1, 0 ) - ROM_LOAD( "136014.118", 0x0000, 0x0100, CRC(8568decc) SHA1(0aac1fa082858d4d201e21511c609a989f9a1535) ) /* Namco sound */ - - ROM_REGION( 0x4000, REGION_SOUND2, 0 ) - ROM_LOAD( "136014.181", 0x0000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - ROM_LOAD( "136014.182", 0x2000, 0x2000, CRC(7d93bc1c) SHA1(dad7c0aa24aef593c84e21f7f8858ca7ada86364) ) /* engine sound */ - - ROM_REGION( 0x6000, REGION_SOUND3, 0 ) - ROM_LOAD( "136014.106", 0x0000, 0x2000, CRC(5b4cf05e) SHA1(52342572940489175607bbf5b6cfd05ee9b0f004) ) /* voice */ - - /* unknown or unused (P)ROM data */ - ROM_REGION( 0x0100, REGION_USER1, 0 ) - ROM_LOAD( "136014.117", 0x0000, 0x0100, CRC(2401c817) SHA1(8991b7994513a469e64392fa8f233af5e5f06d54) ) /* sync chain */ -ROM_END - - -/********************************************************************* - * Initialization routines - *********************************************************************/ - -static DRIVER_INIT( polepos ) -{ - polepos_gear_bit = 2; -} - -static DRIVER_INIT( topracra ) -{ - polepos_gear_bit = 0x20; - - /* extra direct mapped inputs read */ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x02, 0x02, 0, 0, input_port_5_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x03, 0x03, 0, 0, input_port_0_r); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x04, 0x04, 0, 0, input_port_1_r); - -} - -static DRIVER_INIT( polepos2 ) -{ - /* note that the bootleg version doesn't need this custom IC; it has a hacked ROM in its place */ - memory_install_read16_handler(1, ADDRESS_SPACE_PROGRAM, 0x4000, 0x5fff, 0, 0, polepos2_ic25_r); - - init_polepos(machine); -} - - -/********************************************************************* - * Game drivers - *********************************************************************/ - -GAME( 1982, polepos, 0, polepos, polepos, polepos, ROT0, "Namco", "Pole Position", 0 ) -GAME( 1982, poleposa, polepos, polepos, poleposa, polepos, ROT0, "Namco (Atari license)", "Pole Position (Atari version 2)", 0 ) -GAME( 1982, polepos1, polepos, polepos, poleposa, polepos, ROT0, "[Namco] (Atari license)", "Pole Position (Atari version 1)", 0 ) -GAME( 1982, topracer, polepos, polepos, polepos, polepos, ROT0, "bootleg", "Top Racer (set 1)", 0 ) -GAME( 1982, topracra, polepos, polepos, topracra, topracra, ROT0, "bootleg", "Top Racer (set 2)", 0 ) -GAME( 1983, topracrb, polepos, polepos, polepos, polepos, ROT0, "bootleg", "Top Racer (set 3)", 0 ) -GAME( 1983, polepos2, 0, polepos, polepos2, polepos2, ROT0, "Namco", "Pole Position II", 0 ) -GAME( 1983, poleps2a, polepos2, polepos, polepos2, polepos2, ROT0, "Namco (Atari license)", "Pole Position II (Atari)", 0 ) -GAME( 1983, poleps2b, polepos2, polepos, polepos2, polepos, ROT0, "bootleg", "Pole Position II (bootleg)", 0 ) - diff --git a/src/drivers/pooyan.c b/src/drivers/pooyan.c deleted file mode 100644 index 642a1d6fb..000000000 --- a/src/drivers/pooyan.c +++ /dev/null @@ -1,362 +0,0 @@ -/*************************************************************************** - -Notes: -- Several people claim that colors are wrong, but the way the color PROMs - are used seems correct. - - -Pooyan memory map (preliminary) - -driver by Allard Van Der Bas - -Thanks must go to Mike Cuddy for providing information on this one. - -Sound processor memory map. -0x3000-0x33ff RAM. -AY-8910 #1 : reg 0x5000 - wr 0x4000 - rd 0x4000 - -AY-8910 #2 : reg 0x7000 - wr 0x6000 - rd 0x6000 - -Main processor memory map. -0000-7fff ROM -8000-83ff color RAM -8400-87ff video RAM -8800-8fff RAM -9000-97ff sprite RAM (only areas 0x9010 and 0x9410 are used). - -memory mapped ports: - -read: -0xA000 Dipswitch 2 adddbtll - a = attract mode - ddd = difficulty 0=easy, 7=hardest. - b = bonus setting (easy/hard) - t = table / upright - ll = lives: 11=3, 10=4, 01=5, 00=255. - -0xA0E0 llllrrrr - l == left coin mech, r = right coinmech. - -0xA080 IN0 Port -0xA0A0 IN1 Port -0xA0C0 IN2 Port - -write: -0xA100 command for the audio CPU. -0xA180 NMI enable. (0xA180 == 1 = deliver NMI to CPU). - -0xA181 interrupt trigger on audio CPU. - -0xA183 maybe reset sound cpu? - -0xA184 ???? - -0xA187 Flip screen - -interrupts: -standard NMI at 0x66 - -***************************************************************************/ - -#include "driver.h" -#include "sndhrdw/timeplt.h" - - -extern WRITE8_HANDLER( pooyan_videoram_w ); -extern WRITE8_HANDLER( pooyan_colorram_w ); -extern WRITE8_HANDLER( pooyan_flipscreen_w ); - -extern PALETTE_INIT( pooyan ); -extern VIDEO_START( pooyan ); -extern VIDEO_UPDATE( pooyan ); - - -static ADDRESS_MAP_START( pooyan_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x83ff) AM_RAM AM_WRITE(pooyan_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8400, 0x87ff) AM_RAM AM_WRITE(pooyan_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x8800, 0x8fff) AM_RAM - AM_RANGE(0x9010, 0x903f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9410, 0x943f) AM_RAM AM_BASE(&spriteram_2) - AM_RANGE(0xa000, 0xa000) AM_READ(input_port_4_r) AM_WRITENOP /* DSW2 */ /* watchdog reset? */ - AM_RANGE(0xa028, 0xa028) AM_WRITENOP // ??? - AM_RANGE(0xa080, 0xa080) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0xa0a0, 0xa0a0) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0xa0c0, 0xa0c0) AM_READ(input_port_2_r) /* IN2 */ - AM_RANGE(0xa0e0, 0xa0e0) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0xa100, 0xa100) AM_WRITE(soundlatch_w) - AM_RANGE(0xa180, 0xa180) AM_WRITE(interrupt_enable_w) - AM_RANGE(0xa181, 0xa181) AM_WRITE(timeplt_sh_irqtrigger_w) - AM_RANGE(0xa183, 0xa183) AM_WRITENOP // ??? - AM_RANGE(0xa187, 0xa187) AM_WRITE(pooyan_flipscreen_w) -ADDRESS_MAP_END - - -INPUT_PORTS_START( pooyan ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_2WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "256" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "50K 80K+" ) - PORT_DIPSETTING( 0x00, "30K 70K+" ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x70, "1 (Easy)" ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0x50, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x30, "5" ) - PORT_DIPSETTING( 0x20, "6" ) - PORT_DIPSETTING( 0x10, "7" ) - PORT_DIPSETTING( 0x00, "8 (Hard)" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 4, /* 4 bits per pixel */ - { 0x1000*8+4, 0x1000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0,8*8+1,8*8+2,8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 64, /* 64 sprites */ - 4, /* 4 bits per pixel */ - { 0x1000*8+4, 0x1000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &spritelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( pooyan ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(pooyan_map, 0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(Z80,14318180/8) - /* audio CPU */ /* 1.789772727 MHz */ - MDRV_CPU_PROGRAM_MAP(timeplt_sound_readmem,timeplt_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(16*16+16*16) - - MDRV_PALETTE_INIT(pooyan) - MDRV_VIDEO_START(pooyan) - MDRV_VIDEO_UPDATE(pooyan) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(timeplt_ay8910_interface) - MDRV_SOUND_ROUTE(0, "filter.0.0", 0.60) - MDRV_SOUND_ROUTE(1, "filter.0.1", 0.60) - MDRV_SOUND_ROUTE(2, "filter.0.2", 0.60) - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_ROUTE(0, "filter.1.0", 0.60) - MDRV_SOUND_ROUTE(1, "filter.1.1", 0.60) - MDRV_SOUND_ROUTE(2, "filter.1.2", 0.60) - - MDRV_SOUND_ADD_TAG("filter.0.0", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.0.1", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.0.2", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD_TAG("filter.1.0", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.1.1", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.1.2", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( pooyan ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "1.4a", 0x0000, 0x2000, CRC(bb319c63) SHA1(5401b8ef586127c8cf5a431e5c44e38be2254a98) ) - ROM_LOAD( "2.5a", 0x2000, 0x2000, CRC(a1463d98) SHA1(b23cc7e61276c61a78e80fe08c7f0c8adadf2ffe) ) - ROM_LOAD( "3.6a", 0x4000, 0x2000, CRC(fe1a9e08) SHA1(5206893760f188ac71a5e6bd42561cf25fcc3d49) ) - ROM_LOAD( "4.7a", 0x6000, 0x2000, CRC(9e0f9bcc) SHA1(4d9707423ad531ac535db432e329b3d52cbb4559) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xx.7a", 0x0000, 0x1000, CRC(fbe2b368) SHA1(5689a84ef110bdc0039ad1a6c5778e0b8eccfce0) ) - ROM_LOAD( "xx.8a", 0x1000, 0x1000, CRC(e1795b3d) SHA1(9ab4e5362f9f7d9b46b750e14b1d9d71c57be40f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8.10g", 0x0000, 0x1000, CRC(931b29eb) SHA1(0325c1c1fdb44e0044b82b7c79b5eeabf5c11ce7) ) - ROM_LOAD( "7.9g", 0x1000, 0x1000, CRC(bbe6d6e4) SHA1(de5447d59a99c4c08c4f40c0b7dd3c3c609c11d4) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "6.9a", 0x0000, 0x1000, CRC(b2d8c121) SHA1(189ad488869f34d7a38b82ef70eb805acfe04312) ) - ROM_LOAD( "5.8a", 0x1000, 0x1000, CRC(1097c2b6) SHA1(c815f0d27593efd23923511bdd13835456ef7f76) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "pooyan.pr1", 0x0000, 0x0020, CRC(a06a6d0e) SHA1(ae131320b66d76d4bc9108da6708f6f874b2e123) ) /* palette */ - ROM_LOAD( "pooyan.pr2", 0x0020, 0x0100, CRC(82748c0b) SHA1(9ce8eb92e482eba5a9077e9db99841d65b011346) ) /* sprites */ - ROM_LOAD( "pooyan.pr3", 0x0120, 0x0100, CRC(8cd4cd60) SHA1(e0188ecd5b53a8e6e28c1de80def676740772334) ) /* characters */ -ROM_END - -ROM_START( pooyans ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic22_a4.cpu", 0x0000, 0x2000, CRC(916ae7d7) SHA1(e96eba381e6ad228acf4b74240d618f9d0bae39d) ) - ROM_LOAD( "ic23_a5.cpu", 0x2000, 0x2000, CRC(8fe38c61) SHA1(4588f9f80a5884e056a1d429785c7331e92d5654) ) - ROM_LOAD( "ic24_a6.cpu", 0x4000, 0x2000, CRC(2660218a) SHA1(606b10a4bab2432e20471440105e04d15d384570) ) - ROM_LOAD( "ic25_a7.cpu", 0x6000, 0x2000, CRC(3d2a10ad) SHA1(962c621a19e9797b8f3d12c150aa0b90958c9498) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xx.7a", 0x0000, 0x1000, CRC(fbe2b368) SHA1(5689a84ef110bdc0039ad1a6c5778e0b8eccfce0) ) - ROM_LOAD( "xx.8a", 0x1000, 0x1000, CRC(e1795b3d) SHA1(9ab4e5362f9f7d9b46b750e14b1d9d71c57be40f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic13_g10.cpu", 0x0000, 0x1000, CRC(7433aea9) SHA1(a5ad6311f097fefb6e7b747ebe9d01d72d7755d0) ) - ROM_LOAD( "ic14_g9.cpu", 0x1000, 0x1000, CRC(87c1789e) SHA1(7637a9604a3ad4f9a27105d87252de3d923672aa) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "6.9a", 0x0000, 0x1000, CRC(b2d8c121) SHA1(189ad488869f34d7a38b82ef70eb805acfe04312) ) - ROM_LOAD( "5.8a", 0x1000, 0x1000, CRC(1097c2b6) SHA1(c815f0d27593efd23923511bdd13835456ef7f76) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "pooyan.pr1", 0x0000, 0x0020, CRC(a06a6d0e) SHA1(ae131320b66d76d4bc9108da6708f6f874b2e123) ) /* palette */ - ROM_LOAD( "pooyan.pr2", 0x0020, 0x0100, CRC(82748c0b) SHA1(9ce8eb92e482eba5a9077e9db99841d65b011346) ) /* sprites */ - ROM_LOAD( "pooyan.pr3", 0x0120, 0x0100, CRC(8cd4cd60) SHA1(e0188ecd5b53a8e6e28c1de80def676740772334) ) /* characters */ -ROM_END - -ROM_START( pootan ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "poo_ic22.bin", 0x0000, 0x2000, CRC(41b23a24) SHA1(366efcc45613391c1ab1514654ecac1ae3d39d0e) ) - ROM_LOAD( "poo_ic23.bin", 0x2000, 0x2000, CRC(c9d94661) SHA1(af1e818335adb4398ea0dc41be0d6399999f3946) ) - ROM_LOAD( "3.6a", 0x4000, 0x2000, CRC(fe1a9e08) SHA1(5206893760f188ac71a5e6bd42561cf25fcc3d49) ) - ROM_LOAD( "poo_ic25.bin", 0x6000, 0x2000, CRC(8ae459ef) SHA1(995eba204bbb82da20063b965bf79a64441a907a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "xx.7a", 0x0000, 0x1000, CRC(fbe2b368) SHA1(5689a84ef110bdc0039ad1a6c5778e0b8eccfce0) ) - ROM_LOAD( "xx.8a", 0x1000, 0x1000, CRC(e1795b3d) SHA1(9ab4e5362f9f7d9b46b750e14b1d9d71c57be40f) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "poo_ic13.bin", 0x0000, 0x1000, CRC(0be802e4) SHA1(07adc17bcb7332ddc00b7c71bf4919eda80b0bdb) ) - ROM_LOAD( "poo_ic14.bin", 0x1000, 0x1000, CRC(cba29096) SHA1(b5a4cf75089cf04f7361e00074816facd57452b2) ) - - ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "6.9a", 0x0000, 0x1000, CRC(b2d8c121) SHA1(189ad488869f34d7a38b82ef70eb805acfe04312) ) - ROM_LOAD( "5.8a", 0x1000, 0x1000, CRC(1097c2b6) SHA1(c815f0d27593efd23923511bdd13835456ef7f76) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "pooyan.pr1", 0x0000, 0x0020, CRC(a06a6d0e) SHA1(ae131320b66d76d4bc9108da6708f6f874b2e123) ) /* palette */ - ROM_LOAD( "pooyan.pr2", 0x0020, 0x0100, CRC(82748c0b) SHA1(9ce8eb92e482eba5a9077e9db99841d65b011346) ) /* sprites */ - ROM_LOAD( "pooyan.pr3", 0x0120, 0x0100, CRC(8cd4cd60) SHA1(e0188ecd5b53a8e6e28c1de80def676740772334) ) /* characters */ -ROM_END - - - -GAME( 1982, pooyan, 0, pooyan, pooyan, 0, ROT270, "Konami", "Pooyan", 0 ) -GAME( 1982, pooyans, pooyan, pooyan, pooyan, 0, ROT270, "[Konami] (Stern license)", "Pooyan (Stern)", 0 ) -GAME( 1982, pootan, pooyan, pooyan, pooyan, 0, ROT270, "bootleg", "Pootan", 0 ) diff --git a/src/drivers/psikyosh.c b/src/drivers/psikyosh.c deleted file mode 100644 index 8ad7072c1..000000000 --- a/src/drivers/psikyosh.c +++ /dev/null @@ -1,1292 +0,0 @@ -/*---------------------------------------------------------------- - Psikyo PS3/PS5/PS5v2 SH-2 Based Systems - driver by David Haywood (+ Paul Priest) - thanks to Farfetch'd for information about the sprite zoom table. ------------------------------------------------------------------- - -Moving on from the 68020 based system used for the first Strikers -1945 game Psikyo introduced a system using Hitachi's SH-2 CPU - -This driver is for the single-screen PS3/PS5/PS5v2 boards - -There appear to be multiple revisions of this board - - Board PS3-V1 (Custom Chip PS6406B) - ----------------------------------- - Sol Divide (c)1997 - Strikers 1945 II (c)1997 - Space Bomber Ver.B (c)1998 - Daraku Tenshi - The Fallen Angels (c)1998 - - Board PS5 (Custom Chip PS6406B) - ------------------------------- - Gunbird 2 (c)1998 - Strikers 1999 / Strikers 1945 III (c)1999 - - The PS5 board appears to just have a different memory map to PS3 - Otherwise identical. - - Board PS5V2 (Custom Chip PS6406B) - --------------------------------- - Dragon Blaze (c)2000 - Tetris The Grand Master 2 (c)2000 - Tetris The Grand Master 2 Plus (c)2000 (Confirmed by Japump to be a Dragon Blaze upgraded board) - GunBarich (c)2001 (Appears to be a Dragon Blaze upgraded board, easily replaced chips have been swapped) - Mahjong G-Taste (c)2002 - - The PS5v2 board is only different physically. - -All the boards have - -YMF278B-F (80 pin PQFP) & YAC513 (16 pin SOIC) -( YMF278B-F is OPL4 == OPL3 plus a sample playback engine. ) - -93C56 EEPROM -( 93c56 is a 93c46 with double the address space. ) - -To Do: - - - see notes in vidhrdw file - - - Sol Divid's music is not correct, related to sh-2 timers. - - -*-----------------------------------* -| Tips and Tricks | -*-----------------------------------* - -Hold Button during booting to test roms (Checksum 16-bit, on Words for gfx and Bytes for sound) for: - -Daraku: PL1 Button 1 (passes, doesn't test sound) -Space Bomber: PL1 Start (passes all, only if bit 0x40 is set. But then EEPROM resets?) -Gunbird 2: PL1 Start (passes all, only if bit 0x40 is set. But then EEPROM resets) -Strikers 1945III: PL1 Start (passes all, only if bit 0x40 is set) -Dragon Blaze: PL1 Start (passes all, only if bit 0x40 is set) -Gunbarich: PL1 Start (passes all, only if bit 0x40 is set) - - -Hold PL1 Button 1 and Test Mode button to get Maintenance mode for: - -Space Bomber, Strikers 1945 II, Sol Divide, Daraku -(this works for earlier Psikyo games as well) - ---- Space Bomber --- - -Keywords, what are these for???, you earn them when you complete the game -with different points.: - -DOG-1 -CAT-2 -BUTA-3 -KAME-4 -IKA-5 -RABBIT-6 -FROG-7 -TAKO-8 - ---- Gunbird 2 --- - -5-2-0-4-8 Maintenance Mode -5-3-5-7-3 All Data Initialised - -[Aine] -5-1-0-2-4 Secret Command Enabled ["Down" on ?] -5-3-7-6-5 Secret Random Enabled -5-3-1-5-7 Secret All Disabled - ---- Strikers 1945 III / S1999 --- - -8-1-6-5-0 Maintenance Mode -8-1-6-1-0 All Data Initialised -1-2-3-4-5 Best Score Erased - -[X-36] -0-1-9-9-9 Secret Command Enabled ["Up" on ?] -8-1-6-3-0 Secret Random Enabled -8-1-6-2-0 Secret All Disabled - ---- Dragon Blaze --- - -9-2-2-2-0 Maintenance Mode -9-2-2-1-0 All Data Initialised -1-2-3-4-5 Best Score Erased - ---- Gunbarich --- - -0-2-9-2-0 Maintainance Mode -0-2-9-1-0 All Data Initialised -1-2-3-4-5 Best Score Erased - ---- Tetris The Grand Master 2 / TGM2+ --- - -4-1-5-7-3 All Data Initialised -4-1-7-6-5 Best Score Erased - -The following 4 are also tested for, but appear to be disabled: -1-3-5-7-9 -0-2-4-6-8 -4-1-3-7-3 -5-0-2-1-3 - -----------------------------------------------------------------*/ - -/* - -Psikyo PS3-V1 hardware readme ------------------------------ - -Strikers 1945 II -Sol Divid -Daraku -Space Bomber - -PCB Layout ----------- - -PS3-V1 -|-------------------------------------------------| -|HA13118 3771 PROG_L | -| VOL YAC513 PROG_H |-----| | -| JRC4741 | SH2 | | -| *U16 | | | -| YMF278B SOUND.U32 |-----| | -| | -|J | -|A 57.2727MHz HY514260 HY514260| -|M | -|M |-------| | -|A |PSIKYO | | -| |PS6406B| *4L.10 0L.4 | -| 62256 | | | -|93C56 62256 |-------| *5L.9 1L.3 | -|JP5 | -| *6H.37 *4H.31 2H.20 0H.13 *6L.8 2L.2 | -| | -| *7L.7 3L.1 | -| *7H.36 *5H.30 3H.19 1H.12 | -|-------------------------------------------------| -Notes: - JP5 - hardwired jumper bank (x4) for region selection. Cut 2ND jumper from left - for International/English region. All jumpers shorted = Japan region (default) - SH2 - Hitachi HD6417604F28 SH-2 CPU, clock input 28.63635 [57.2727/2] (QFP144) - YMF278B - Yamaha YMF278B OPL4 sound chip, clock input 28.63635MHz [57.2727/2] (QFP80) - PROG_H/PROG_L - 27C4096 DIP40 EPROM - All other ROMs - 32M SOP44 MaskROM - * - ROM locations not populated - VSync - 60Hz - HSync - 15.27kHz - - -Psikyo PS5 hardware readme --------------------------- - -Gunbird 2 -Strikers 1945 III / Strikers 1999 - -PCB Layout ----------- - -PS5 -|-------------------------------------------------| -|HA13118 M514260 PROG_L.U16 DATA.U1 | -| VOL 3771 M514260 PROG_H.U17 | -| *PROG_DATA.U2| -| PAL | -| | -| JRC4741 0H.10 0L.3 | -|J |-----| | -|A | SH2 | 57.2727MHz 1H.11 1L.4 | -|M YAC513 | | | -|M |-----| |-------| 2H.12 2L.5 | -|A |PSIKYO | | -| |PS6406B| 3H.13 3L.6 | -| | | | -| |-------| *4H.14 *4L.7 | -| | -| 62256 *5H.15 *5L.8 | -| 62256 | -| 93C56 | -| JP4 YMF278B SOUND.9 | -|-------------------------------------------------| -Notes: - JP4 - hardwired jumper bank (x4) for region selection. Cut leftmost jumper - for International/English region. All jumpers shorted = Japan region (default) - SH2 - Hitachi HD6417604F28 SH-2 CPU, clock input 28.63635 [57.2727/2] (QFP144) - YMF278B - Yamaha YMF278B OPL4 sound chip, clock input 28.63635MHz [57.2727/2] (QFP80) - PAL - AMD PALCE 16V8H stamped 'PS5-1' (DIP20) - PROG_H/PROG_L/DATA - 27C4096 DIP40 EPROM - All other ROMs - 64M/32M SOP44 MaskROM - * - ROM locations not populated - VSync - 60Hz - HSync - 15.27kHz - - -Psikyo PS5V2 hardware readme ----------------------------- - -Dragon Blaze, Psikyo, 2000 -Gunbarich, Psikyo, 2001 -Tetris The Grand Master 2 , Psikyo, 2000 -Tetris The Grand Master 2+, Psikyo, 2000 - -PCB Layout ----------- - -PS5V2 -|----------------------------------------------------| -|HA13118 PS5-1 SM81C256 PROG_H.U21 *0H.U11 *0L.U3 | -|VOL JRC4741 SM81C256 PROG_L.U22 | -| YAC516 3771 *1H.U12 *1L.U4 | -| |-----| *U23 | -| | SH2 | *2H.U13 *2L.U5 | -| | | | -|J YMF278B |-----| 3H.U14 3L.U6 | -|A 57.2727MHz | -|M 4H.U15 4L.U7 | -|M SND.U52 |-------| | -|A |PSIKYO | 5H.U16 5L.U8 | -| |PS6406B| | -| | | *6H.U17 *6L.U9 | -| 62256 |-------| | -| JP3 93C56 62256 *7H.U18 *7L.U10| -| | -| 10L.U58 9L.U41 8L.U28 7L.U19 6L.U1 | -| | -| 10H.U59 9H.U42 8H.U29 7H.U20 6H.U2 | -|----------------------------------------------------| -Notes: - JP3 - hardwired jumper bank (x4) for region selection. Cut rightmost jumper - for International/English region. All jumpers shorted = Japan region (default) - SH2 - Hitachi HD6417604F28 SH-2 CPU, clock input 28.63635 [57.2727/2] (QFP144) - YMF278B - Yamaha YMF278B OPL4 sound chip, clock input 28.63635MHz [57.2727/2] (QFP80) - PROG_H/PROG_L - 27C4096 DIP40 EPROM - ROMs U1-U59 (at bottom of PCB) - 16M DIP42 MaskROM - ROMs U3-U10 & U11-U18 (at side of PCB) - 16M TSOP48 Type-II surface-mounted MaskROM - ROM U52 - 32M TSOP48 Type-II surface-mounted MaskROM - * - ROM locations not populated on tgm2 & tgm2+ - VSync - 60Hz - HSync - 15.27kHz - -*/ - -#include "driver.h" - -#include "cpu/sh2/sh2.h" -#include "machine/eeprom.h" -#include "sound/ymf278b.h" - -#include "psikyosh.h" - -#define ROMTEST 1 /* Does necessary stuff to perform rom test, uses RAM as it doesn't dispose of GFX after decoding */ - -static UINT8 factory_eeprom[16] = { 0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00 }; -static UINT8 daraku_eeprom[16] = { 0x03,0x02,0x00,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -static UINT8 s1945iii_eeprom[16] = { 0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x70,0x25,0x25,0x25,0x00,0x01,0x00,0x11,0xe0 }; -static UINT8 dragnblz_eeprom[16] = { 0x00,0x01,0x11,0x70,0x25,0x25,0x25,0x00,0x01,0x00,0x11,0xe0,0x00,0x00,0x00,0x00 }; -static UINT8 gnbarich_eeprom[16] = { 0x00,0x0f,0x42,0x40,0x08,0x0a,0x00,0x00,0x01,0x06,0x42,0x59,0x00,0x00,0x00,0x00 }; - -int use_factory_eeprom; - -UINT32 *psikyosh_bgram, *psikyosh_zoomram, *psikyosh_vidregs, *psh_ram; - -static const gfx_layout layout_16x16x4 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - {STEP4(0,1)}, - {STEP16(0,4)}, - {STEP16(0,16*4)}, - 16*16*4 -}; - -static const gfx_layout layout_16x16x8 = -{ - 16,16, - RGN_FRAC(1,1), - 8, - {STEP8(0,1)}, - {STEP16(0,8)}, - {STEP16(0,16*8)}, - 16*16*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x4, 0x000, 0x100 }, // 4bpp tiles - { REGION_GFX1, 0, &layout_16x16x8, 0x000, 0x100 }, // 8bpp tiles - { -1 } -}; - -static struct EEPROM_interface eeprom_interface_93C56 = -{ - 8, // address bits 8 - 8, // data bits 8 - "*110x", // read 110x aaaaaaaa - "*101x", // write 101x aaaaaaaa dddddddd - "*111x", // erase 111x aaaaaaaa - "*10000xxxxxxx",// lock 100x 00xxxx - "*10011xxxxxxx",// unlock 100x 11xxxx -// "*10001xxxx", // write all 1 00 01xxxx dddddddddddddddd -// "*10010xxxx" // erase all 1 00 10xxxx -}; - -static NVRAM_HANDLER(93C56) -{ - if (read_or_write) - { - EEPROM_save(file); - } - else - { - EEPROM_init(&eeprom_interface_93C56); - if (file) - { - EEPROM_load(file); - } - else // these games want the eeprom all zeros by default - { - int length; - UINT8 *dat; - - dat = EEPROM_get_data_pointer(&length); - memset(dat, 0, length); - - if (use_factory_eeprom!=EEPROM_0) /* Set the EEPROM to Factory Defaults for games needing them*/ - { - UINT8 eeprom_data[0x100]; - int i; - - for(i=0; i<0x100; i++) eeprom_data[i] = 0; - - memcpy(eeprom_data, factory_eeprom, 0x10); - - if (use_factory_eeprom==EEPROM_DARAKU) /* Daraku, replace top 10 bytes with defaults (different to other games) */ - memcpy(eeprom_data, daraku_eeprom, 0x10); - - if (use_factory_eeprom==EEPROM_S1945III) /* S1945iii suffers from corruption on highscore unless properly initialised at the end of the eeprom */ - memcpy(eeprom_data+0xf0, s1945iii_eeprom, 0x10); - - if (use_factory_eeprom==EEPROM_DRAGNBLZ) /* Dragnblz too */ - memcpy(eeprom_data+0xf0, dragnblz_eeprom, 0x10); - - if (use_factory_eeprom==EEPROM_GNBARICH) /* Might as well do Gnbarich as well, otherwise the highscore is incorrect */ - memcpy(eeprom_data+0xf0, gnbarich_eeprom, 0x10); - - EEPROM_set_data(eeprom_data,0x100); - } - } - } -} - -static WRITE32_HANDLER( psh_eeprom_w ) -{ - if (ACCESSING_MSB32) - { - EEPROM_write_bit((data & 0x20000000) ? 1 : 0); - EEPROM_set_cs_line((data & 0x80000000) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x40000000) ? ASSERT_LINE : CLEAR_LINE); - - return; - } - - logerror("Unk EEPROM write %x mask %x\n", data, mem_mask); -} - -static READ32_HANDLER( psh_eeprom_r ) -{ - if (ACCESSING_MSB32) - { - return ((EEPROM_read_bit() << 28) | (readinputport(4) << 24)); /* EEPROM | Region */ - } - - logerror("Unk EEPROM read mask %x\n", mem_mask); - - return 0; -} - -static INTERRUPT_GEN(psikyosh_interrupt) -{ - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static READ32_HANDLER(io32_r) -{ - return ((readinputport(0) << 24) | (readinputport(1) << 16) | (readinputport(2) << 8) | (readinputport(3) << 0)); -} - -static WRITE32_HANDLER( paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w ) -{ - int r,g,b; - COMBINE_DATA(&paletteram32[offset]); /* is this ok .. */ - - b = ((paletteram32[offset] & 0x0000ff00) >>8); - g = ((paletteram32[offset] & 0x00ff0000) >>16); - r = ((paletteram32[offset] & 0xff000000) >>24); - - palette_set_color(Machine,offset,r,g,b); -} - -static WRITE32_HANDLER( psikyosh_vidregs_w ) -{ - COMBINE_DATA(&psikyosh_vidregs[offset]); - -#if ROMTEST - if(offset==4) /* Configure bank for gfx test */ - { - if (!(mem_mask & 0x000000ff) || !(mem_mask & 0x0000ff00)) // Bank - { - unsigned char *ROM = memory_region(REGION_GFX1); - memory_set_bankptr(2,&ROM[0x20000 * (psikyosh_vidregs[offset]&0xfff)]); /* Bank comes from vidregs */ - } - } -#endif -} - -#if ROMTEST -static UINT32 sample_offs = 0; - -static READ32_HANDLER( psh_sample_r ) /* Send sample data for test */ -{ - unsigned char *ROM = memory_region(REGION_SOUND1); - - return ROM[sample_offs++]<<16; -} -#endif - -static READ32_HANDLER( psh_ymf_fm_r ) -{ - return YMF278B_status_port_0_r(0)<<24; /* Also, bit 0 being high indicates not ready to send sample data for test */ -} - -static WRITE32_HANDLER( psh_ymf_fm_w ) -{ - if (!(mem_mask & 0xff000000)) // FM bank 1 address (OPL2/OPL3 compatible) - { - YMF278B_control_port_0_A_w(0, data>>24); - } - - if (!(mem_mask & 0x00ff0000)) // FM bank 1 data - { - YMF278B_data_port_0_A_w(0, data>>16); - } - - if (!(mem_mask & 0x0000ff00)) // FM bank 2 address (OPL3/YMF 262 extended) - { - YMF278B_control_port_0_B_w(0, data>>8); - } - - if (!(mem_mask & 0x000000ff)) // FM bank 2 data - { - YMF278B_data_port_0_B_w(0, data); - } -} - -static WRITE32_HANDLER( psh_ymf_pcm_w ) -{ - if (!(mem_mask & 0xff000000)) // PCM address (OPL4/YMF 278B extended) - { - YMF278B_control_port_0_C_w(0, data>>24); - -#if ROMTEST - if (data>>24 == 0x06) // Reset Sample reading (They always write this code immediately before reading data) - { - sample_offs = 0; - } -#endif - } - - if (!(mem_mask & 0x00ff0000)) // PCM data - { - YMF278B_data_port_0_C_w(0, data>>16); - } -} - -static ADDRESS_MAP_START( ps3v1_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_READ(MRA32_ROM) // program ROM (1 meg) - AM_RANGE(0x02000000, 0x021fffff) AM_READ(MRA32_BANK1) // data ROM - AM_RANGE(0x03000000, 0x03003fff) AM_READ(MRA32_RAM) // sprites - AM_RANGE(0x03004000, 0x0300ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x03040000, 0x03044fff) AM_READ(MRA32_RAM) - AM_RANGE(0x03050000, 0x030501ff) AM_READ(MRA32_RAM) - AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READ(MRA32_NOP) // also writes to this address - might be vblank reads? - AM_RANGE(0x0305ffe0, 0x0305ffff) AM_READ(MRA32_RAM) // video registers - AM_RANGE(0x05000000, 0x05000003) AM_READ(psh_ymf_fm_r) // read YMF status - AM_RANGE(0x05800000, 0x05800003) AM_READ(io32_r) - AM_RANGE(0x05800004, 0x05800007) AM_READ(psh_eeprom_r) - AM_RANGE(0x06000000, 0x060fffff) AM_READ(MRA32_RAM) // main RAM (1 meg) - -#if ROMTEST - AM_RANGE(0x05000004, 0x05000007) AM_READ(psh_sample_r) // data for rom tests (Used to verify Sample rom) - AM_RANGE(0x03060000, 0x0307ffff) AM_READ(MRA32_BANK2) // data for rom tests (gfx), data is controlled by vidreg - AM_RANGE(0x04060000, 0x0407ffff) AM_READ(MRA32_BANK2) // data for rom tests (gfx) (Mirrored?) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ps3v1_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_WRITE(MWA32_ROM) // program ROM (1 meg) - AM_RANGE(0x02000000, 0x021fffff) AM_WRITE(MWA32_ROM) // data ROM - AM_RANGE(0x03000000, 0x03003fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) // sprites (might be a bit longer) - AM_RANGE(0x03004000, 0x0300ffff) AM_WRITE(MWA32_RAM) AM_BASE(&psikyosh_bgram) // backgrounds - AM_RANGE(0x03040000, 0x03044fff) AM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(&paletteram32) // palette.. - AM_RANGE(0x03050000, 0x030501ff) AM_WRITE(MWA32_RAM) AM_BASE(&psikyosh_zoomram) // a gradient sometimes ... - AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_WRITE(MWA32_RAM) // also reads from this address - AM_RANGE(0x0305ffe0, 0x0305ffff) AM_WRITE(psikyosh_vidregs_w) AM_BASE(&psikyosh_vidregs) // video registers - AM_RANGE(0x05000000, 0x05000003) AM_WRITE(psh_ymf_fm_w) // first 2 OPL4 register banks - AM_RANGE(0x05000004, 0x05000007) AM_WRITE(psh_ymf_pcm_w) // third OPL4 register bank - AM_RANGE(0x05800004, 0x05800007) AM_WRITE(psh_eeprom_w) - AM_RANGE(0x06000000, 0x060fffff) AM_WRITE(MWA32_RAM) AM_BASE(&psh_ram) // work RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ps5_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_READ(MRA32_ROM) // program ROM (1 meg) - AM_RANGE(0x03000000, 0x03000003) AM_READ(io32_r) - AM_RANGE(0x03000004, 0x03000007) AM_READ(psh_eeprom_r) - AM_RANGE(0x03100000, 0x03100003) AM_READ(psh_ymf_fm_r) - AM_RANGE(0x04000000, 0x04003fff) AM_READ(MRA32_RAM) // sprites - AM_RANGE(0x04004000, 0x0400ffff) AM_READ(MRA32_RAM) - AM_RANGE(0x04040000, 0x04044fff) AM_READ(MRA32_RAM) - AM_RANGE(0x04050000, 0x040501ff) AM_READ(MRA32_RAM) - AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READ(MRA32_NOP) // also writes to this address - might be vblank reads? - AM_RANGE(0x0405ffe0, 0x0405ffff) AM_READ(MRA32_RAM) // video registers - AM_RANGE(0x05000000, 0x0507ffff) AM_READ(MRA32_BANK1) // data ROM - AM_RANGE(0x06000000, 0x060fffff) AM_READ(MRA32_RAM) - -#if ROMTEST - AM_RANGE(0x03100004, 0x03100007) AM_READ(psh_sample_r) // data for rom tests (Used to verify Sample rom) - AM_RANGE(0x04060000, 0x0407ffff) AM_READ(MRA32_BANK2) // data for rom tests (gfx), data is controlled by vidreg -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ps5_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x000fffff) AM_WRITE(MWA32_ROM) // program ROM (1 meg) - AM_RANGE(0x03000004, 0x03000007) AM_WRITE(psh_eeprom_w) - AM_RANGE(0x03100000, 0x03100003) AM_WRITE(psh_ymf_fm_w) // first 2 OPL4 register banks - AM_RANGE(0x03100004, 0x03100007) AM_WRITE(psh_ymf_pcm_w) // third OPL4 register bank - AM_RANGE(0x04000000, 0x04003fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x04004000, 0x0400ffff) AM_WRITE(MWA32_RAM) AM_BASE(&psikyosh_bgram) // backgrounds - AM_RANGE(0x04040000, 0x04044fff) AM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(&paletteram32) - AM_RANGE(0x04050000, 0x040501ff) AM_WRITE(MWA32_RAM) AM_BASE(&psikyosh_zoomram) - AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_WRITE(MWA32_RAM) // also reads from this address - AM_RANGE(0x0405ffe0, 0x0405ffff) AM_WRITE(psikyosh_vidregs_w) AM_BASE(&psikyosh_vidregs) // video registers - AM_RANGE(0x05000000, 0x0507ffff) AM_WRITE(MWA32_ROM) // data ROM - AM_RANGE(0x06000000, 0x060fffff) AM_WRITE(MWA32_RAM) AM_BASE(&psh_ram) -ADDRESS_MAP_END - -static void irqhandler(int linestate) -{ - if (linestate) - cpunum_set_input_line(0, 12, ASSERT_LINE); - else - cpunum_set_input_line(0, 12, CLEAR_LINE); -} - -static struct YMF278B_interface ymf278b_interface = -{ - REGION_SOUND1, - irqhandler -}; - -static MACHINE_DRIVER_START( psikyo3v1 ) - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", SH2, MASTER_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(ps3v1_readmem,ps3v1_writemem) - MDRV_CPU_VBLANK_INT(psikyosh_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(93C56) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM ) /* If using alpha */ - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x5000/4) - - MDRV_VIDEO_START(psikyosh) - MDRV_VIDEO_EOF(psikyosh) - MDRV_VIDEO_UPDATE(psikyosh) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF278B, MASTER_CLOCK/2) - MDRV_SOUND_CONFIG(ymf278b_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( psikyo5 ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(psikyo3v1) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ps5_readmem,ps5_writemem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( psikyo5_240 ) - /* basic machine hardware */ - MDRV_IMPORT_FROM(psikyo3v1) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ps5_readmem,ps5_writemem) - - /* It probably has a register to change visarea */ - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) -MACHINE_DRIVER_END - - -#define UNUSED_PORT \ - PORT_START_TAG("IN2")/* not read? */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define PORT_COIN( debug ) \ - PORT_START_TAG("IN3") /* System inputs */ \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_SERVICE_NO_TOGGLE(0x20, IP_ACTIVE_LOW) \ - PORT_DIPNAME( 0x40, debug, "Debug" ) /* Must be high for dragnblz, low for others (Resets EEPROM?). Debug stuff */ \ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define PSIKYOSH_PORT_PLAYER( player, start, button1, button2, button3 ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, start ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, button2 ) PORT_PLAYER(player) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, button1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) - -INPUT_PORTS_START( s1945ii ) - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - - UNUSED_PORT - PORT_COIN( 0x40 ) - - PORT_START_TAG("IN4") /* jumper pads on the PCB */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, DEF_STR( World ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( soldivid ) - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - PORT_COIN( 0x40 ) - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, DEF_STR( World ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( daraku ) - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") /* more controls */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - - PORT_COIN( 0x40 ) - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, DEF_STR( World ) ) /* Title screen is different, English is default now */ -INPUT_PORTS_END - -INPUT_PORTS_START( sbomberb ) - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN ) - - UNUSED_PORT - PORT_COIN( 0x40 ) /* If HIGH then you can perform rom test, but EEPROM resets? */ - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, DEF_STR( World ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gunbird2 ) /* Different Region */ - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - PORT_COIN( 0x40 ) /* If HIGH then you can perform rom test, but EEPROM resets */ - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x01, "International Ver A." ) - PORT_DIPSETTING( 0x02, "International Ver B." ) -INPUT_PORTS_END - -INPUT_PORTS_START( s1945iii ) /* Different Region again */ - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - PORT_COIN( 0x40 ) /* If HIGH then you can perform rom test, EEPROM doesn't reset */ - - PORT_START_TAG("IN4")/* IN4 jumper pads on the PCB */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x02, "International Ver A." ) - PORT_DIPSETTING( 0x01, "International Ver B." ) -INPUT_PORTS_END - -INPUT_PORTS_START( dragnblz ) /* Security requires bit high */ - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - - PORT_COIN( 0 ) /* Must be HIGH (Or Security Error), so can perform test */ - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x02, "International Ver A." ) - PORT_DIPSETTING( 0x01, "International Ver B." ) -INPUT_PORTS_END - -INPUT_PORTS_START( gnbarich ) /* Same as S1945iii except only one button */ - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - PORT_COIN( 0x40 ) /* If HIGH then you can perform rom test, but EEPROM resets? */ - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x02, "International Ver A." ) - PORT_DIPSETTING( 0x01, "International Ver B." ) -INPUT_PORTS_END - -INPUT_PORTS_START( mjgtaste ) /* This will need the Mahjong inputs */ - PORT_START_TAG("IN0") - PSIKYOSH_PORT_PLAYER( 1, IPT_START1, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - PORT_START_TAG("IN1") - PSIKYOSH_PORT_PLAYER( 2, IPT_START2, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 ) - - UNUSED_PORT - PORT_COIN( 0x40 ) - - PORT_START_TAG("IN4")/* jumper pads on the PCB */ -// PORT_DIPNAME( 0x03, 0x01, DEF_STR( Region ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( Japan ) ) -// PORT_DIPSETTING( 0x02, "International Ver A." ) -// PORT_DIPSETTING( 0x01, "International Ver B." ) -INPUT_PORTS_END - - -#if ROMTEST -#define ROMTEST_GFX 0 -#else -#define ROMTEST_GFX ROMREGION_DISPOSE -#endif - -/* PS3 */ - -ROM_START( soldivid ) - ROM_REGION( 0x100000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2-prog_l.u18", 0x000002, 0x080000, CRC(cf179b04) SHA1(343f00a81cffd44334a4db81b6b828b7cf73c1e8) ) - ROM_LOAD32_WORD_SWAP( "1-prog_h.u17", 0x000000, 0x080000, CRC(f467d1c4) SHA1(a011e6f310a54f09efa0bf4597783cd78c05ad6f) ) - - ROM_REGION( 0x3800000, REGION_GFX1, ROMTEST_GFX ) - /* This Space Empty! */ - ROM_LOAD32_WORD_SWAP( "4l.u10", 0x2000000, 0x400000, CRC(9eb9f269) SHA1(4a4d90eefe62b5462f5ed5e062eea7b6b4900f85) ) - ROM_LOAD32_WORD_SWAP( "4h.u31", 0x2000002, 0x400000, CRC(7c76cfe7) SHA1(14e291e840a4afe3802fe1847615c5e806d7492a) ) - ROM_LOAD32_WORD_SWAP( "5l.u9", 0x2800000, 0x400000, CRC(c59c6858) SHA1(bd580b57e432ef42295060c5a84c8129d9b995f7) ) - ROM_LOAD32_WORD_SWAP( "5h.u30", 0x2800002, 0x400000, CRC(73bc66d0) SHA1(7988ce81ff43235a3b30ddd8fd9419530a07b6ba) ) - ROM_LOAD32_WORD_SWAP( "6l.u8", 0x3000000, 0x400000, CRC(f01b816e) SHA1(2a0d86c1c106eef539028aa9ebe49d13216a6b9c) ) - ROM_LOAD32_WORD_SWAP( "6h.u37", 0x3000002, 0x400000, CRC(fdd57361) SHA1(f58d91acde1f4e6d4f0e8dcd1b23aa5092d89916) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) - ROM_LOAD( "sound.bin", 0x000000, 0x400000, CRC(e98f8d45) SHA1(7791c0f31d08f37c6ec65e7cecf8ef54ca73b1fd) ) -ROM_END - -ROM_START( s1945ii ) - ROM_REGION( 0x100000, REGION_CPU1, 0) /* Code */ - ROM_LOAD32_WORD_SWAP( "2_prog_l.u18", 0x000002, 0x080000, CRC(20a911b8) SHA1(82ba7b93bd621fc45a4dc2722752077b59a0a233) ) - ROM_LOAD32_WORD_SWAP( "1_prog_h.u17", 0x000000, 0x080000, CRC(4c0fe85e) SHA1(74f810a1c3e9d629c8b190f68d73ce07b11f77b7) ) - - ROM_REGION( 0x2000000, REGION_GFX1, ROMTEST_GFX ) /* Tiles */ - ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(bfacf98d) SHA1(19954f12881e6e95e808bd1f2c2f5a425786727f) ) - ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(1266f67c) SHA1(cf93423a827aa92aa54afbbecf8509d2590edc9b) ) - ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(2d3332c9) SHA1(f2e54100a48061bfd589e8765f59ca051176a38b) ) - ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(27b32c3e) SHA1(17a80b3c919d8a282169c019ede8a22d2079c018) ) - ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(91ba6d23) SHA1(fd016a90204b2de43bb709971f7cd891f839de1a) ) - ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(fabf4334) SHA1(f8ec43e083b674700f532575f0d067bd49c5aaf7) ) - ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(a6c3704e) SHA1(cb9881e4235cc8e4bcca4c6ccbd8d8d8634e3624) ) - ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(4cd3ca70) SHA1(5b0a6ea4fe0e821cebe6e840596f648e24dded51) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ba680ca7) SHA1(b645896e297aad426784aa656bff738e1b33c2a2) ) - ROM_RELOAD ( 0x400000, 0x400000 ) - /* 0x400000 - 0x7fffff allocated but left blank, it randomly reads from here on the - Iron Casket level causing a crash otherwise, not sure why, bug in the sound emulation? */ -ROM_END - -ROM_START( daraku ) - /* main program */ - ROM_REGION( 0x200000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "4_prog_l.u18", 0x000002, 0x080000, CRC(660b4609) SHA1(ee6b5606fae41881c3e671ee642baae5c03331ca) ) - ROM_LOAD32_WORD_SWAP( "3_prog_h.u17", 0x000000, 0x080000, CRC(7a9cf601) SHA1(8df464ce3fd02b30dd2ab77828594f4916375fd5) ) - ROM_LOAD16_WORD_SWAP( "prog.u16", 0x100000, 0x100000, CRC(3742e990) SHA1(dd4b8777e57245151b3d520ed1bdab207530420b) ) - - ROM_REGION( 0x3400000, REGION_GFX1, ROMTEST_GFX ) - ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(565d8427) SHA1(090ce9213c530d29e488cfb89bb39fd7169985d5) ) - ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(9a602630) SHA1(ab176490b36aec7ce30d1cf20b57c02c926c59d3) ) - ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(ac5ce8e1) SHA1(7df6a04ea2530cc669581474e8b8ee6f59caae1b) ) - ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(b0a59f7b) SHA1(8704705aa0977f11da8bcdafae6e2531190878d0) ) - ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(2daa03b2) SHA1(475badc60cbd26786242d685a3d7dbaf385862a8) ) - ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(e98e185a) SHA1(124d5fcf6cfb1faf70d665b687564bf6589d17c4) ) - ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(1d372aa1) SHA1(e5965a1d8919409a314dfd56482a848d6ab9f5ac) ) - ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(597f3f15) SHA1(62bf74ed29732e6cc1979458745cdb53a8edddf3) ) - ROM_LOAD32_WORD( "4l.u10", 0x2000000, 0x400000, CRC(e3d58cd8) SHA1(9482d0b71f840d72b20029804cfc8dca207462de) ) - ROM_LOAD32_WORD( "4h.u31", 0x2000002, 0x400000, CRC(aebc9cd0) SHA1(c20a1f9851ace74e00f1a0746e0c9e751ccec336) ) - ROM_LOAD32_WORD( "5l.u9", 0x2800000, 0x400000, CRC(eab5a50b) SHA1(76ce96e89afc438bafb9f8caa86eb48fb7e4e154) ) - ROM_LOAD32_WORD( "5h.u30", 0x2800002, 0x400000, CRC(f157474f) SHA1(89509f0772a40829070cea708c21438ff61d1019) ) - ROM_LOAD32_WORD( "6l.u8", 0x3000000, 0x200000, CRC(9f008d1b) SHA1(9607e09bde430eefe126569a6e251114bc8f754b) ) - ROM_LOAD32_WORD( "6h.u37", 0x3000002, 0x200000, CRC(acd2d0e3) SHA1(dee96bdf3b8efde1298b73c5e7dd62abcdc101cf) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ef2c781d) SHA1(1313f082f6dbe4da0efaf261226085eb7325667f) ) -ROM_END - -ROM_START( sbomberb ) - ROM_REGION( 0x100000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "1-b_pr_l.u18", 0x000002, 0x080000, CRC(52d12225) SHA1(0a31a5d557414e7bf51dc6f7fbdd417a20b78df1) ) - ROM_LOAD32_WORD_SWAP( "1-b_pr_h.u17", 0x000000, 0x080000, CRC(1bbd0345) SHA1(c6ccb7c97cc9e9ea298c1883d1dd5563907a7255) ) - - ROM_REGION( 0x2800000, REGION_GFX1, ROMTEST_GFX ) - ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(b7e4ac51) SHA1(70e802b6235932116496a77ee0c78a256e85aff3) ) - ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(235e6c27) SHA1(c597d7b5bef4edac1474ad0024cfb33eb1257106) ) - ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(3c88c48c) SHA1(d1ce4ab60ba18449bbd96e29c310e060a0bb6de6) ) - ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(15626a6e) SHA1(5493e92c9724982938591d758bee7d86cf96fd19) ) - ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(41e92f64) SHA1(ea121c7cb35266ed0c21af4bb958fe5d73d84977) ) - ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(4ae62e84) SHA1(adc1dab2f09aa4f5665d7bb7603a9b75c978031e) ) - ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(43ba5f0f) SHA1(b8f93ed055441fd06b68103c9fd62b6aa3f3da7d) ) - ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(ff01bb12) SHA1(df6fab898356c02f34ee7a45fdcc265218f2f20e) ) - ROM_LOAD32_WORD( "4l.u10", 0x2000000, 0x400000, CRC(e491d593) SHA1(12a7f6c282969be342b70443b8c802a399571245) ) - ROM_LOAD32_WORD( "4h.u31", 0x2000002, 0x400000, CRC(7bdd377a) SHA1(e357c98f82b8ea3ae4fd8eae6c1ad2dfb500db9c) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(85cbff69) SHA1(34c7f4d337111de2064f84214294b6bdc37bf16c) ) -ROM_END - -/* PS5 */ - -ROM_START( gunbird2 ) - ROM_REGION( 0x180000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2_prog_l.u16", 0x000002, 0x080000, CRC(76f934f0) SHA1(cf197796d66f15639a6b3d5311c18da33cefd06b) ) - ROM_LOAD32_WORD_SWAP( "1_prog_h.u17", 0x000000, 0x080000, CRC(7328d8bf) SHA1(c640de1ab5b32400b2d77e0dc6e3ee0f78ab7803) ) - ROM_LOAD16_WORD_SWAP( "3_pdata.u1", 0x100000, 0x080000, CRC(a5b697e6) SHA1(947f124fa585c2cf77c6571af7559bd652897b89) ) - - ROM_REGION( 0x3800000, REGION_GFX1, ROMTEST_GFX ) - ROM_LOAD32_WORD( "0l.u3", 0x0000000, 0x800000, CRC(5c826bc8) SHA1(74fb6b242b4c5fe5365cfcc3029ed6da4cf3a621) ) - ROM_LOAD32_WORD( "0h.u10", 0x0000002, 0x800000, CRC(3df0cb6c) SHA1(271d276fa0f63d84e458223316a9517865fc2255) ) - ROM_LOAD32_WORD( "1l.u4", 0x1000000, 0x800000, CRC(1558358d) SHA1(e3b9c3da4e9b29ffa9568b57d14fe2b600aead68) ) - ROM_LOAD32_WORD( "1h.u11", 0x1000002, 0x800000, CRC(4ee0103b) SHA1(29bbe0162dda39919fcd188ea4a6b7b5f20366ff) ) - ROM_LOAD32_WORD( "2l.u5", 0x2000000, 0x800000, CRC(e1c7a7b8) SHA1(b5f6e5d53e21928197773df7dde0e7c83f4082af) ) - ROM_LOAD32_WORD( "2h.u12", 0x2000002, 0x800000, CRC(bc8a41df) SHA1(90460b11eea778f17cf8be67430e2ab149680686) ) - ROM_LOAD32_WORD( "3l.u6", 0x3000000, 0x400000, CRC(0229d37f) SHA1(f9d98d1d2dda2d552b2a46c76b4c7fc84b1aa4c6) ) - ROM_LOAD32_WORD( "3h.u13", 0x3000002, 0x400000, CRC(f41bbf2b) SHA1(b705274e392541e2f513a4ae4bae543c03be0913) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sound.u9", 0x000000, 0x400000, CRC(f19796ab) SHA1(b978f0550ebd675e8ce9d9edcfcc3f6214e49e8b) ) -ROM_END - -ROM_START( s1945iii ) - ROM_REGION( 0x180000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2_progl.u16", 0x000002, 0x080000, CRC(5d5d385f) SHA1(67b3bcabd71cf084bcea7a59939281a8d6257059) ) - ROM_LOAD32_WORD_SWAP( "1_progh.u17", 0x000000, 0x080000, CRC(1b8a5a18) SHA1(718a176bd48e16f964fcb07c568b5227cfc0515f) ) - ROM_LOAD16_WORD_SWAP( "3_data.u1", 0x100000, 0x080000, CRC(8ff5f7d3) SHA1(420a3d7f2d5ab6a56789d36b418431f12f5f73f5) ) - - ROM_REGION( 0x3800000, REGION_GFX1, ROMTEST_GFX ) - ROM_LOAD32_WORD( "0l.u3", 0x0000000, 0x800000, CRC(70a0d52c) SHA1(c9d9534da59123b577dc22020273b94ccdeeb67d) ) - ROM_LOAD32_WORD( "0h.u10", 0x0000002, 0x800000, CRC(4dcd22b4) SHA1(2df7a7d08df17d2a62d574fccc8ba40aaae21a13) ) - ROM_LOAD32_WORD( "1l.u4", 0x1000000, 0x800000, CRC(de1042ff) SHA1(468f6dfd5c1f2084c573b6851e314ff2826dc350) ) - ROM_LOAD32_WORD( "1h.u11", 0x1000002, 0x800000, CRC(b51a4430) SHA1(b51117591b0e351e922f9a6a7930e8b50237e54e) ) - ROM_LOAD32_WORD( "2l.u5", 0x2000000, 0x800000, CRC(23b02dca) SHA1(0249dceca02b312301a917d98fac481b6a0a9122) ) - ROM_LOAD32_WORD( "2h.u12", 0x2000002, 0x800000, CRC(9933ab04) SHA1(710e6b20e111c1898666b4466554d039309883cc) ) - ROM_LOAD32_WORD( "3l.u6", 0x3000000, 0x400000, CRC(f693438c) SHA1(d70e25a3f56aae6575c696d9b7b6d7a9d04f0104) ) - ROM_LOAD32_WORD( "3h.u13", 0x3000002, 0x400000, CRC(2d0c334f) SHA1(74d94abb34484c7b79dbb989645f53124e53e3b7) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sound.u9", 0x000000, 0x400000, CRC(c5374beb) SHA1(d13e12cbd249246d953c45bb3bfa576a0ec75595) ) - ROM_RELOAD ( 0x400000, 0x400000 ) -ROM_END - -/* PS5v2 */ - -ROM_START( dragnblz ) - ROM_REGION( 0x100000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2prog_h.u21", 0x000000, 0x080000, CRC(fc5eade8) SHA1(e5d05543641e4a3900b0d42e0d5f75734683d635) ) - ROM_LOAD32_WORD_SWAP( "1prog_l.u22", 0x000002, 0x080000, CRC(95d6fd02) SHA1(2b2830e7fa66cbd13666191762bfddc40571caec) ) - - ROM_REGION( 0x2c00000, REGION_GFX1, ROMTEST_GFX ) /* Sprites */ - ROM_LOAD32_WORD( "1l.u4", 0x0400000, 0x200000, CRC(c2eb565c) SHA1(07e41b36cc03a87f28d091754fdb0d1a7316a532) ) - ROM_LOAD32_WORD( "1h.u12", 0x0400002, 0x200000, CRC(23cb46b7) SHA1(005b7cc40eea103688a64a72c219c7535970dbfb) ) - ROM_LOAD32_WORD( "2l.u5", 0x0800000, 0x200000, CRC(bc256aea) SHA1(1f1d678e8a63513a95f296b8a07d2ea485d1e53f) ) - ROM_LOAD32_WORD( "2h.u13", 0x0800002, 0x200000, CRC(b75f59ec) SHA1(a6cde94bc972e46e54c962fde49fc2174b312882) ) - ROM_LOAD32_WORD( "3l.u6", 0x0c00000, 0x200000, CRC(4284f008) SHA1(610b13304043411b3088fd4299b3cb0a4d8b0cc2) ) - ROM_LOAD32_WORD( "3h.u14", 0x0c00002, 0x200000, CRC(abe5cbbf) SHA1(c2fb1d8ea8772572c08b36496cf9fc5b91cf848b) ) - ROM_LOAD32_WORD( "4l.u7", 0x1000000, 0x200000, CRC(c9fcf2e5) SHA1(7cecdf3406da11289b54aaf58d12883ddfdc5e6b) ) - ROM_LOAD32_WORD( "4h.u15", 0x1000002, 0x200000, CRC(0ab0a12a) SHA1(1b29b6dc79e69edb56634517365d0ee8e6ea78ae) ) - ROM_LOAD32_WORD( "5l.u8", 0x1400000, 0x200000, CRC(68d03ccf) SHA1(d2bf6da5fa6e346b05872ed9616ffe51c3768f50) ) - ROM_LOAD32_WORD( "5h.u16", 0x1400002, 0x200000, CRC(5450fbca) SHA1(7a804263549cea951782a67855e69cb8cb417e98) ) - ROM_LOAD32_WORD( "6l.u1", 0x1800000, 0x200000, CRC(8b52c90b) SHA1(e1067ef252870787e46c62015e5778b4e641e68d) ) - ROM_LOAD32_WORD( "6h.u2", 0x1800002, 0x200000, CRC(7362f929) SHA1(9ced06202e3f104d30377aeef489021d26e87f73) ) - ROM_LOAD32_WORD( "7l.u19", 0x1c00000, 0x200000, CRC(b4f4d86e) SHA1(2ad786c5626c98e6943ae05688a1b66307ceac84) ) - ROM_LOAD32_WORD( "7h.u20", 0x1c00002, 0x200000, CRC(44b7b9cc) SHA1(3f8122b62ea1183d9fb3aad32d0e47bd32244f87) ) - ROM_LOAD32_WORD( "8l.u28", 0x2000000, 0x200000, CRC(cd079f89) SHA1(49c46eb36bc0458428a7fad3fe622f5ed974073b) ) - ROM_LOAD32_WORD( "8h.u29", 0x2000002, 0x200000, CRC(3edb508a) SHA1(72b07fb34a94cc127de02070604b1ff31f3d46c7) ) - ROM_LOAD32_WORD( "9l.u41", 0x2400000, 0x200000, CRC(0b53cd78) SHA1(e2071d9fe6c7be4e289b491587ab431c164e59da) ) - ROM_LOAD32_WORD( "9h.u42", 0x2400002, 0x200000, CRC(bc61998a) SHA1(75dbefe712104c64576196c27c25dbed59ae3923) ) - ROM_LOAD32_WORD( "10l.u58",0x2800000, 0x200000, CRC(a3f5c7f8) SHA1(d17478ca3e7ef46270f350ffa35d43acb05b1185) ) - ROM_LOAD32_WORD( "10h.u59",0x2800002, 0x200000, CRC(30e304c4) SHA1(1d866276bfe7f7524306a880d225aaf11ac2e5dd) ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples - Not Dumped */ - ROM_LOAD( "snd0.u52", 0x000000, 0x200000, CRC(7fd1b225) SHA1(6aa61021ada51393bbb34fd1aea00b8feccc8197) ) -ROM_END - -ROM_START( gnbarich ) - ROM_REGION( 0x100000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2-prog_l.u21", 0x000000, 0x080000, CRC(c136cd9c) SHA1(ab66c4f5196a66a97dbb5832336a203421cf40fa) ) - ROM_LOAD32_WORD_SWAP( "1-prog_h.u22", 0x000002, 0x080000, CRC(6588fc96) SHA1(3db29fcf17e8b2aee465319b557bd3e45bc966b2) ) - - ROM_REGION( 0x2c00000, REGION_GFX1, ROMTEST_GFX ) /* Sprites */ - /* Gunbarich doesn't actually use 1-5 and 10, they're on the board, but all the gfx are in 6-9 - The game was an upgrade to Dragon Blaze, only some of the roms were replaced however it - appears the board needs to be fully populated to work correctly so the Dragon Blaze roms - were left on it. After hooking up hidden rom test we can see only the 8 roms we load are - tested */ -// ROM_LOAD32_WORD( "1l.u4", 0x0400000, 0x200000, CRC(c2eb565c) SHA1(07e41b36cc03a87f28d091754fdb0d1a7316a532) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "1h.u12", 0x0400002, 0x200000, CRC(23cb46b7) SHA1(005b7cc40eea103688a64a72c219c7535970dbfb) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "2l.u5", 0x0800000, 0x200000, CRC(bc256aea) SHA1(1f1d678e8a63513a95f296b8a07d2ea485d1e53f) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "2h.u13", 0x0800002, 0x200000, CRC(b75f59ec) SHA1(a6cde94bc972e46e54c962fde49fc2174b312882) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "3l.u6", 0x0c00000, 0x200000, CRC(4284f008) SHA1(610b13304043411b3088fd4299b3cb0a4d8b0cc2) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "3h.u14", 0x0c00002, 0x200000, CRC(abe5cbbf) SHA1(c2fb1d8ea8772572c08b36496cf9fc5b91cf848b) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "4l.u7", 0x1000000, 0x200000, CRC(c9fcf2e5) SHA1(7cecdf3406da11289b54aaf58d12883ddfdc5e6b) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "4h.u15", 0x1000002, 0x200000, CRC(0ab0a12a) SHA1(1b29b6dc79e69edb56634517365d0ee8e6ea78ae) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "5l.u8", 0x1400000, 0x200000, CRC(68d03ccf) SHA1(d2bf6da5fa6e346b05872ed9616ffe51c3768f50) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "5h.u16", 0x1400002, 0x200000, CRC(5450fbca) SHA1(7a804263549cea951782a67855e69cb8cb417e98) ) /* From Dragon Blaze */ - ROM_LOAD32_WORD( "6l.u1", 0x1800000, 0x200000, CRC(0432e1a8) SHA1(632cb6534a19a92aa16d1dc8bb98c0c1fa17e428) ) - ROM_LOAD32_WORD( "6h.u2", 0x1800002, 0x200000, CRC(f90fa3ea) SHA1(773861c6c559f2df88e395669f27c43bd4dd6eb6) ) - ROM_LOAD32_WORD( "7l.u19", 0x1c00000, 0x200000, CRC(36bf9a58) SHA1(b546425f17f4b0b1112f0a22f9f5c695f5d97fe9) ) - ROM_LOAD32_WORD( "7h.u20", 0x1c00002, 0x200000, CRC(4b3eafd8) SHA1(8d0a4516bab2a188a66291e805c3c265774a6b72) ) - ROM_LOAD32_WORD( "8l.u28", 0x2000000, 0x200000, CRC(026754da) SHA1(66072e7584dcfea614a1e37592bda65733c9ce11) ) - ROM_LOAD32_WORD( "8h.u29", 0x2000002, 0x200000, CRC(8cd7aaa0) SHA1(83469c5407cba134ec1d22330623d8be8e0eabec) ) - ROM_LOAD32_WORD( "9l.u41", 0x2400000, 0x200000, CRC(02c066fe) SHA1(ecd5f36d9e55a341aff956bab4e7b0ae9e6cc15f) ) - ROM_LOAD32_WORD( "9h.u42", 0x2400002, 0x200000, CRC(5433385a) SHA1(138d62409cfb9e1a4eb3ca378ab8f6df45d478c0) ) -// ROM_LOAD32_WORD( "10l.u58",0x2800000, 0x200000, CRC(a3f5c7f8) SHA1(d17478ca3e7ef46270f350ffa35d43acb05b1185) ) /* From Dragon Blaze */ -// ROM_LOAD32_WORD( "10h.u59",0x2800002, 0x200000, CRC(30e304c4) SHA1(1d866276bfe7f7524306a880d225aaf11ac2e5dd) ) /* From Dragon Blaze */ - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "snd0.u52", 0x000000, 0x200000, CRC(7b10436b) SHA1(c731fcce024e286a677ca10a91761c1ee06094a5) ) -ROM_END - -ROM_START( mjgtaste ) - ROM_REGION( 0x100000, REGION_CPU1, 0) - ROM_LOAD32_WORD_SWAP( "2.u21", 0x000000, 0x080000, CRC(5f2041dc) SHA1(f3862ffdb8df0cf921ce1cb0236935731e7729a7) ) - ROM_LOAD32_WORD_SWAP( "1.u22", 0x000002, 0x080000, CRC(f5ff7876) SHA1(4c909db9c97f29fd79df6dacd29762688701b973) ) - - /* exact number of gfx / sound roms may be incorrect */ - ROM_REGION( 0x2c00000, REGION_GFX1, ROMTEST_GFX ) /* Sprites */ - ROM_LOAD32_WORD( "1l.u4", 0x0400000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "1h.u12", 0x0400002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "2l.u5", 0x0800000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "2h.u13", 0x0800002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "3l.u6", 0x0c00000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "3h.u14", 0x0c00002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "4l.u7", 0x1000000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "4h.u15", 0x1000002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "5l.u8", 0x1400000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "5h.u16", 0x1400002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "6l.u1", 0x1800000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "6h.u2", 0x1800002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "7l.u19", 0x1c00000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "7h.u20", 0x1c00002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "8l.u28", 0x2000000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "8h.u29", 0x2000002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "9l.u41", 0x2400000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "9h.u42", 0x2400002, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "10l.u58",0x2800000, 0x200000, NO_DUMP ) - ROM_LOAD32_WORD( "10h.u59",0x2800002, 0x200000, NO_DUMP ) - - ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples - Not Dumped */ - ROM_LOAD( "snd0.u52", 0x000000, 0x200000, NO_DUMP ) -ROM_END - -/* are these right? should i fake the counter return? - 'speedups / idle skipping isn't needed for 'hotgmck, hgkairak' - as the core catches and skips the idle loops automatically' -*/ - -static READ32_HANDLER( soldivid_speedup_r ) -{ - /* -PC : 0001AE74: MOV.L @R14,R1 -PC : 0001AE76: ADD #$01,R1 -PC : 0001AE78: MOV.L R1,@R14 -PC : 0001AE7A: MOV.L @($7C,PC),R3 -PC : 0001AE7C: MOV.L @R3,R0 -PC : 0001AE7E: TST R0,R0 -PC : 0001AE80: BT $0001AE74 -*/ - if (activecpu_get_pc()==0x0001AFAC) cpu_spinuntil_int(); // Character Select + InGame - if (activecpu_get_pc()==0x0001AE76) cpu_spinuntil_int(); // Everything Else? - - return psh_ram[0x00000C/4]; -} - -static READ32_HANDLER( s1945ii_speedup_r ) -{ -/* -PC : 0609FC68: MOV.L @R13,R1 // R13 is 600000C R1 is counter (read from r13) -PC : 0609FC6A: ADD #$01,R1 // add 1 to counter -PC : 0609FC6C: MOV.L R1,@R13 // write it back -PC : 0609FC6E: MOV.L @($3C,PC),R3 // 609fdac into r3 -PC : 0609FC70: MOV.L @R3,R0 // whats there into r0 -PC : 0609FC72: TST R0,R0 // test -PC : 0609FC74: BT $0609FC68 -*/ - if (activecpu_get_pc()==0x609FC6A) cpu_spinuntil_int(); // Title Screens - if (activecpu_get_pc()==0x609FED4) cpu_spinuntil_int(); // In Game - if (activecpu_get_pc()==0x60A0172) cpu_spinuntil_int(); // Attract Demo - - return psh_ram[0x00000C/4]; -} - -static READ32_HANDLER( daraku_speedup_r ) -{ -/* -PC : 00047618: MOV.L @($BC,PC),R0 -PC : 0004761A: MOV.L @R0,R1 -PC : 0004761C: ADD #$01,R1 -PC : 0004761E: MOV.L R1,@R0 -PC : 00047620: MOV.L @($BC,PC),R3 -PC : 00047622: MOV.L @R3,R0 -PC : 00047624: TST R0,R0 -PC : 00047626: BT $00047618 -*/ - if (activecpu_get_pc()==0x0004761C) cpu_spinuntil_int(); // title - if (activecpu_get_pc()==0x00047978) cpu_spinuntil_int(); // ingame - - return psh_ram[0x00000C/4]; -} - -static READ32_HANDLER( sbomberb_speedup_r ) -{ -/* -PC : 060A10EC: MOV.L @R13,R3 -PC : 060A10EE: ADD #$01,R3 -PC : 060A10F0: MOV.L R3,@R13 -PC : 060A10F2: MOV.L @($34,PC),R1 -PC : 060A10F4: MOV.L @R1,R2 -PC : 060A10F6: TST R2,R2 -PC : 060A10F8: BT $060A10EC -*/ - if (activecpu_get_pc()==0x060A10EE) cpu_spinuntil_int(); // title - if (activecpu_get_pc()==0x060A165A) cpu_spinuntil_int(); // attract - if (activecpu_get_pc()==0x060A1382) cpu_spinuntil_int(); // game - - return psh_ram[0x00000C/4]; -} - -static READ32_HANDLER( gunbird2_speedup_r ) -{ -/* -PC : 06028972: MOV.L @R14,R3 // r14 is 604000c on this one -PC : 06028974: MOV.L @($D4,PC),R1 -PC : 06028976: ADD #$01,R3 -PC : 06028978: MOV.L R3,@R14 -PC : 0602897A: MOV.L @R1,R2 -PC : 0602897C: TST R2,R2 -PC : 0602897E: BT $06028972 -*/ - if (activecpu_get_pc()==0x06028974) cpu_spinuntil_int(); - if (activecpu_get_pc()==0x06028E64) cpu_spinuntil_int(); - if (activecpu_get_pc()==0x06028BE6) cpu_spinuntil_int(); - - return psh_ram[0x04000C/4]; -} - -static READ32_HANDLER( s1945iii_speedup_r ) -{ - if (activecpu_get_pc()==0x0602B464) cpu_spinuntil_int(); // start up text - if (activecpu_get_pc()==0x0602B6E2) cpu_spinuntil_int(); // intro attract - if (activecpu_get_pc()==0x0602BC1E) cpu_spinuntil_int(); // game attract - if (activecpu_get_pc()==0x0602B97C) cpu_spinuntil_int(); // game - - return psh_ram[0x06000C/4]; -} - - -static READ32_HANDLER( dragnblz_speedup_r ) -{ - if (activecpu_get_pc()==0x06027440) cpu_spinuntil_int(); // startup texts - if (activecpu_get_pc()==0x060276E6) cpu_spinuntil_int(); // attract intro - if (activecpu_get_pc()==0x06027C74) cpu_spinuntil_int(); // attract game - if (activecpu_get_pc()==0x060279A8) cpu_spinuntil_int(); // game - - return psh_ram[0x006000C/4]; -} - -static READ32_HANDLER( gnbarich_speedup_r ) -{ -/* -PC :0602CAE6: MOV.L @R14,R3 // R14 = 0x606000C -PC :0602CAE8: MOV.L @($F4,PC),R1 -PC :0602CAEA: ADD #$01,R3 -PC :0602CAEC: MOV.L R3,@R14 // R14 = 0x606000C -PC :0602CAEE: MOV.L @R1,R2 -PC :0602CAF0: TST R2,R2 -PC :0602CAF2: BT $0602CAE6 -*/ - - if (activecpu_get_pc()==0x0602CAE8) cpu_spinuntil_int(); // title logos - if (activecpu_get_pc()==0x0602CD88) cpu_spinuntil_int(); // attract intro - if (activecpu_get_pc()==0x0602D2F0) cpu_spinuntil_int(); // game attract - if (activecpu_get_pc()==0x0602D042) cpu_spinuntil_int(); // game play - - return psh_ram[0x006000C/4]; -} - -static READ32_HANDLER( mjgtaste_speedup_r ) -{ - - if (activecpu_get_pc()==0x6031f04) {cpu_spinuntil_int();return psh_ram[0x006000C/4];} // title logos - if (activecpu_get_pc()==0x603214c) {cpu_spinuntil_int();return psh_ram[0x006000C/4];} // attract game - -// mame_printf_debug("at %08x\n",activecpu_get_pc()); - - return psh_ram[0x006000C/4]; -} - - - -static DRIVER_INIT( soldivid ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x600000c, 0x600000f, 0, 0, soldivid_speedup_r ); - use_factory_eeprom=EEPROM_0; -} - -static DRIVER_INIT( s1945ii ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x600000c, 0x600000f, 0, 0, s1945ii_speedup_r ); - use_factory_eeprom=EEPROM_DEFAULT; -} - -static DRIVER_INIT( daraku ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - memory_set_bankptr(1,&RAM[0x100000]); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x600000c, 0x600000f, 0, 0, daraku_speedup_r ); - use_factory_eeprom=EEPROM_DARAKU; -} - -static DRIVER_INIT( sbomberb ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x600000c, 0x600000f, 0, 0, sbomberb_speedup_r ); - use_factory_eeprom=EEPROM_DEFAULT; -} - -static DRIVER_INIT( gunbird2 ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - memory_set_bankptr(1,&RAM[0x100000]); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x604000c, 0x604000f, 0, 0, gunbird2_speedup_r ); - use_factory_eeprom=EEPROM_DEFAULT; -} - -static DRIVER_INIT( s1945iii ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - memory_set_bankptr(1,&RAM[0x100000]); - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x606000c, 0x606000f, 0, 0, s1945iii_speedup_r ); - use_factory_eeprom=EEPROM_S1945III; -} - -static DRIVER_INIT( dragnblz ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x606000c, 0x606000f, 0, 0, dragnblz_speedup_r ); - use_factory_eeprom=EEPROM_DRAGNBLZ; -} - -static DRIVER_INIT( gnbarich ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x606000c, 0x606000f, 0, 0, gnbarich_speedup_r ); - use_factory_eeprom=EEPROM_GNBARICH; -} - -static DRIVER_INIT( mjgtaste ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x606000c, 0x606000f, 0, 0, mjgtaste_speedup_r ); - use_factory_eeprom=EEPROM_DEFAULT; - /* needs to install mahjong controls too (can select joystick in test mode tho) */ -} - - -/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */ - -/* ps3-v1 */ -GAME( 1997, soldivid, 0, psikyo3v1, soldivid, soldivid, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness", GAME_IMPERFECT_SOUND ) // Music Tempo -GAME( 1997, s1945ii, 0, psikyo3v1, s1945ii, s1945ii, ROT270, "Psikyo", "Strikers 1945 II", GAME_IMPERFECT_GRAPHICS ) // linescroll/zoom -GAME( 1998, daraku, 0, psikyo3v1, daraku, daraku, ROT0, "Psikyo", "Daraku Tenshi - The Fallen Angels", 0 ) -GAME( 1998, sbomberb, 0, psikyo3v1, sbomberb, sbomberb, ROT270, "Psikyo", "Space Bomber (ver. B)", 0 ) - -/* ps5 */ -GAME( 1998, gunbird2, 0, psikyo5, gunbird2, gunbird2, ROT270, "Psikyo", "Gunbird 2", 0 ) -GAME( 1999, s1945iii, 0, psikyo5, s1945iii, s1945iii, ROT270, "Psikyo", "Strikers 1945 III (World) / Strikers 1999 (Japan)", GAME_IMPERFECT_GRAPHICS ) // linescroll/zoom - -/* ps5v2 */ -GAME( 2000, dragnblz, 0, psikyo5, dragnblz, dragnblz, ROT270, "Psikyo", "Dragon Blaze", 0 ) -GAME( 2001, gnbarich, 0, psikyo5, gnbarich, gnbarich, ROT270, "Psikyo", "Gunbarich", 0 ) -GAME( 2002, mjgtaste, 0, psikyo5, mjgtaste, mjgtaste, ROT0, "Psikyo", "Mahjong G-Taste", GAME_NOT_WORKING ) diff --git a/src/drivers/punchout.c b/src/drivers/punchout.c deleted file mode 100644 index cc897fc73..000000000 --- a/src/drivers/punchout.c +++ /dev/null @@ -1,1137 +0,0 @@ -/*************************************************************************** - -Punch Out memory map (preliminary) -Arm Wrestling runs on about the same hardware, but the video board is different. - -TODO: -- The money bag is misplaced in armwrest bonus rounds. - - -driver by Nicola Salmoria - - -main CPU: - -0000-bfff ROM -c000-c3ff NVRAM -d000-d7ff RAM -d800-dfff Video RAM (info screen) -e000-e7ff Video RAM (opponent) -e800-efff Video RAM (player) -f000-f03f Background row scroll (low/high couples) -f000-ffff Video RAM (background) - -memory mapped ports: -write: -dfe0-dfef ?? - -dff0 big sprite #1 zoom low 8 bits -dff1 big sprite #1 zoom high 4 bits -dff2 big sprite #1 x pos low 8 bits -dff3 big sprite #1 x pos high 4 bits -dff4 big sprite #1 y pos low 8 bits -dff5 big sprite #1 y pos high bit -dff6 big sprite #1 x flip (bit 0) -dff7 big sprite #1 bit 0: show on top monitor; bit 1: show on bottom monitor - -dff8 big sprite #2 x pos low 8 bits -dff9 big sprite #2 x pos high bit -dffa big sprite #2 y pos low 8 bits -dffb big sprite #2 y pos high bit -dffc big sprite #2 x flip (bit 0) -dffd palette bank (bit 0 = bottom monitor bit 1 = top monitor) - -I/O -read: -00 IN0 -01 IN1 -02 DSW0 -03 DSW1 (bit 4: VLM5030 busy signal) - -write: -00 to 2A03 #1 IN0 (unpopulated) -01 to 2A03 #1 IN1 (unpopulated) -02 to 2A03 #2 IN0 -03 to 2A03 #2 IN1 -04 to VLM5030 -08 NMI enable + watchdog reset -09 watchdog reset -0a ? latched into Z80 BUS RQ -0b to 2A03 #1 and #2 RESET -0c to VLM5030 RESET -0d to VLM5030 START -0e to VLM5030 VCU -0f enable NVRAM ? - -sound CPU: -the sound CPU is a 2A03, which is a modified 6502 with built-in input ports -and two (analog?) outputs. The input ports are memory mapped at 4016-4017; -the outputs are more complicated. The only thing I have found is that 4011 -goes straight into a DAC and produces the crowd sounds, but several addresses -in the range 4000-4017 are written to. There are probably three tone generators. - -0000-07ff RAM -e000-ffff ROM - -read: -4016 IN0 -4017 IN1 - -write: -4000 ? is usually ORed with 90 or 50 -4001 ? usually 7f, could be associated with 4000 -4002-4003 ? tone #1 freq? (bit 3 of 4003 is always 1, bits 4-7 always 0) -4004 ? is usually ORed with 90 or 50 -4005 ? usually 7f, could be associated with 4004 -4006-4007 ? tone #2 freq? (bit 3 of 4007 is always 1, bits 4-7 always 0) -4008 ? at one point the max value is cut at 38 -400a-400b ? tone #3 freq? (bit 3 of 400b is always 1, bits 4-7 always 0) -400c ? -400e-400f ? -4011 DAC crowd noise -4015 ?? 00 or 0f -4017 ?? always c0 - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "sound/vlm5030.h" -#include "sound/nes_apu.h" - -#include "rendlay.h" - - -extern UINT8 *punchout_videoram2; -extern UINT8 *armwrest_videoram3; -extern UINT8 *punchout_bigsprite1ram; -extern UINT8 *punchout_bigsprite2ram; -extern UINT8 *punchout_scroll; -extern UINT8 *punchout_bigsprite1; -extern UINT8 *punchout_bigsprite2; -extern UINT8 *punchout_palettebank; -WRITE8_HANDLER( punchout_videoram_w ); -WRITE8_HANDLER( punchout_videoram2_w ); -WRITE8_HANDLER( armwrest_videoram3_w ); -WRITE8_HANDLER( punchout_bigsprite1ram_w ); -WRITE8_HANDLER( punchout_bigsprite2ram_w ); -WRITE8_HANDLER( punchout_palettebank_w ); -VIDEO_START( punchout ); -VIDEO_START( armwrest ); -PALETTE_INIT( punchout ); -PALETTE_INIT( armwrest ); -VIDEO_UPDATE( punchout ); -VIDEO_UPDATE( armwrest ); - -DRIVER_INIT( punchout ); -DRIVER_INIT( spnchout ); -DRIVER_INIT( spnchotj ); -DRIVER_INIT( armwrest ); - - - -READ8_HANDLER( punchout_input_3_r ) -{ - int data = input_port_3_r(offset); - /* bit 4 is busy pin level */ - if( VLM5030_BSY() ) data &= ~0x10; - else data |= 0x10; - return data; -} - -WRITE8_HANDLER( punchout_speech_reset_w ) -{ - VLM5030_RST( data&0x01 ); -} - -WRITE8_HANDLER( punchout_speech_st_w ) -{ - VLM5030_ST( data&0x01 ); -} - -WRITE8_HANDLER( punchout_speech_vcu_w ) -{ - VLM5030_VCU( data & 0x01 ); -} - -WRITE8_HANDLER( punchout_2a03_reset_w ) -{ - if (data & 1) - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - else - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); -} - -static int prot_mode_sel = -1; /* Mode selector */ -static int prot_mem[16]; - -static READ8_HANDLER( spunchout_prot_r ) { - - switch ( offset ) { - case 0x00: - if ( prot_mode_sel == 0x0a ) - return program_read_byte(0xd012); - - if ( prot_mode_sel == 0x0b || prot_mode_sel == 0x23 ) - return program_read_byte(0xd7c1); - - return prot_mem[offset]; - break; - - case 0x01: - if ( prot_mode_sel == 0x08 ) /* PC = 0x0b6a */ - return 0x00; /* under 6 */ - break; - - case 0x02: - if ( prot_mode_sel == 0x0b ) /* PC = 0x0613 */ - return 0x09; /* write "JMP (HL)"code to 0d79fh */ - if ( prot_mode_sel == 0x09 ) /* PC = 0x20f9, 0x22d9 */ - return prot_mem[offset]; /* act as registers */ - break; - - case 0x03: - if ( prot_mode_sel == 0x09 ) /* PC = 0x1e4c */ - return prot_mem[offset] & 0x07; /* act as registers with mask */ - break; - - case 0x05: - if ( prot_mode_sel == 0x09 ) /* PC = 0x29D1 */ - return prot_mem[offset] & 0x03; /* AND 0FH -> AND 06H */ - break; - - case 0x06: - if ( prot_mode_sel == 0x0b ) /* PC = 0x2dd8 */ - return 0x0a; /* E=00, HL=23E6, D = (ret and 0x0f), HL+DE = 2de6 */ - - if ( prot_mode_sel == 0x09 ) /* PC = 0x2289 */ - return prot_mem[offset] & 0x07; /* act as registers with mask */ - break; - - case 0x09: - if ( prot_mode_sel == 0x09 ) /* PC = 0x0313 */ - return ( prot_mem[15] << 4 ); /* pipe through register 0xf7 << 4 */ - /* (ret or 0x10) -> (D7DF),(D7A0) - (D7DF),(D7A0) = 0d0h(ret nc) */ - break; - - case 0x0a: - if ( prot_mode_sel == 0x0b ) /* PC = 0x060a */ - return 0x05; /* write "JMP (IX)"code to 0d79eh */ - if ( prot_mode_sel == 0x09 ) /* PC = 0x1bd7 */ - return prot_mem[offset] & 0x01; /* AND 0FH -> AND 01H */ - break; - - case 0x0b: - if ( prot_mode_sel == 0x09 ) /* PC = 0x2AA3 */ - return prot_mem[11] & 0x03; /* AND 0FH -> AND 03H */ - break; - - case 0x0c: - /* PC = 0x2162 */ - /* B = 0(return value) */ - return 0x00; - case 0x0d: - return prot_mode_sel; - break; - } - - logerror("Read from unknown protection? port %02x ( selector = %02x )\n", offset, prot_mode_sel ); - - return prot_mem[offset]; -} - -static WRITE8_HANDLER( spunchout_prot_w ) { - - switch ( offset ) { - case 0x00: - if ( prot_mode_sel == 0x0a ) { - program_write_byte(0xd012, data); - return; - } - - if ( prot_mode_sel == 0x0b || prot_mode_sel == 0x23 ) { - program_write_byte(0xd7c1, data); - return; - } - - prot_mem[offset] = data; - return; - break; - - case 0x02: - if ( prot_mode_sel == 0x09 ) { /* PC = 0x20f7, 0x22d7 */ - prot_mem[offset] = data; - return; - } - break; - - case 0x03: - if ( prot_mode_sel == 0x09 ) { /* PC = 0x1e4c */ - prot_mem[offset] = data; - return; - } - break; - - case 0x05: - prot_mem[offset] = data; - return; - - case 0x06: - if ( prot_mode_sel == 0x09 ) { /* PC = 0x2287 */ - prot_mem[offset] = data; - return; - } - break; - - case 0x0b: - prot_mem[offset] = data; - return; - - case 0x0d: /* PC = all over the code */ - prot_mode_sel = data; - return; - case 0x0f: - prot_mem[offset] = data; - return; - } - - logerror("Wrote to unknown protection? port %02x ( %02x )\n", offset, data ); - - prot_mem[offset] = data; -} - -static READ8_HANDLER( spunchout_prot_0_r ) { - return spunchout_prot_r( 0 ); -} - -static WRITE8_HANDLER( spunchout_prot_0_w ) { - spunchout_prot_w( 0, data ); -} - -static READ8_HANDLER( spunchout_prot_1_r ) { - return spunchout_prot_r( 1 ); -} - -static WRITE8_HANDLER( spunchout_prot_1_w ) { - spunchout_prot_w( 1, data ); -} - -static READ8_HANDLER( spunchout_prot_2_r ) { - return spunchout_prot_r( 2 ); -} - -static WRITE8_HANDLER( spunchout_prot_2_w ) { - spunchout_prot_w( 2, data ); -} - -static READ8_HANDLER( spunchout_prot_3_r ) { - return spunchout_prot_r( 3 ); -} - -static WRITE8_HANDLER( spunchout_prot_3_w ) { - spunchout_prot_w( 3, data ); -} - -static READ8_HANDLER( spunchout_prot_5_r ) { - return spunchout_prot_r( 5 ); -} - -static WRITE8_HANDLER( spunchout_prot_5_w ) { - spunchout_prot_w( 5, data ); -} - - -static READ8_HANDLER( spunchout_prot_6_r ) { - return spunchout_prot_r( 6 ); -} - -static WRITE8_HANDLER( spunchout_prot_6_w ) { - spunchout_prot_w( 6, data ); -} - -static READ8_HANDLER( spunchout_prot_9_r ) { - return spunchout_prot_r( 9 ); -} - -static READ8_HANDLER( spunchout_prot_b_r ) { - return spunchout_prot_r( 11 ); -} - -static WRITE8_HANDLER( spunchout_prot_b_w ) { - spunchout_prot_w( 11, data ); -} - -static READ8_HANDLER( spunchout_prot_c_r ) { - return spunchout_prot_r( 12 ); -} - -static WRITE8_HANDLER( spunchout_prot_d_w ) { - spunchout_prot_w( 13, data ); -} - -static READ8_HANDLER( spunchout_prot_a_r ) { - return spunchout_prot_r( 10 ); -} - -static WRITE8_HANDLER( spunchout_prot_a_w ) { - spunchout_prot_w( 10, data ); -} - -#if 0 -static READ8_HANDLER( spunchout_prot_f_r ) { - return spunchout_prot_r( 15 ); -} -#endif - -static WRITE8_HANDLER( spunchout_prot_f_w ) { - spunchout_prot_w( 15, data ); -} - - - -static ADDRESS_MAP_START( punchout_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xd000, 0xd7ff) AM_RAM - AM_RANGE(0xdff0, 0xdff7) AM_RAM AM_BASE(&punchout_bigsprite1) - AM_RANGE(0xdff8, 0xdffc) AM_RAM AM_BASE(&punchout_bigsprite2) - AM_RANGE(0xdffd, 0xdffd) AM_READWRITE(MRA8_RAM, punchout_palettebank_w) AM_BASE(&punchout_palettebank) - AM_RANGE(0xd800, 0xdfff) AM_READWRITE(MRA8_RAM, punchout_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(MRA8_RAM, punchout_bigsprite1ram_w) AM_BASE(&punchout_bigsprite1ram) - AM_RANGE(0xe800, 0xefff) AM_READWRITE(MRA8_RAM, punchout_bigsprite2ram_w) AM_BASE(&punchout_bigsprite2ram) - AM_RANGE(0xf000, 0xf03f) AM_RAM AM_BASE(&punchout_scroll) - AM_RANGE(0xf000, 0xffff) AM_READWRITE(MRA8_RAM, punchout_videoram2_w) AM_BASE(&punchout_videoram2) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( armwrest_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xd000, 0xd7ff) AM_RAM - AM_RANGE(0xdff0, 0xdff7) AM_RAM AM_BASE(&punchout_bigsprite1) - AM_RANGE(0xdff8, 0xdffc) AM_RAM AM_BASE(&punchout_bigsprite2) - AM_RANGE(0xdffd, 0xdffd) AM_READWRITE(MRA8_RAM, punchout_palettebank_w) AM_BASE(&punchout_palettebank) - AM_RANGE(0xd800, 0xdfff) AM_READWRITE(MRA8_RAM, armwrest_videoram3_w) AM_BASE(&armwrest_videoram3) - AM_RANGE(0xe000, 0xe7ff) AM_READWRITE(MRA8_RAM, punchout_bigsprite1ram_w) AM_BASE(&punchout_bigsprite1ram) - AM_RANGE(0xe800, 0xefff) AM_READWRITE(MRA8_RAM, punchout_bigsprite2ram_w) AM_BASE(&punchout_bigsprite2ram) - AM_RANGE(0xf000, 0xf03f) AM_RAM AM_BASE(&punchout_scroll) - AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(MRA8_RAM, punchout_videoram2_w) AM_BASE(&punchout_videoram2) - AM_RANGE(0xf800, 0xffff) AM_READWRITE(MRA8_RAM, punchout_videoram_w) AM_BASE(&videoram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r) - AM_RANGE(0x03, 0x03) AM_READ(punchout_input_3_r) - - /* protection ports */ - AM_RANGE(0x07, 0x07) AM_READ(spunchout_prot_0_r) - AM_RANGE(0x17, 0x17) AM_READ(spunchout_prot_1_r) - AM_RANGE(0x27, 0x27) AM_READ(spunchout_prot_2_r) - AM_RANGE(0x37, 0x37) AM_READ(spunchout_prot_3_r) - AM_RANGE(0x57, 0x57) AM_READ(spunchout_prot_5_r) - AM_RANGE(0x67, 0x67) AM_READ(spunchout_prot_6_r) - AM_RANGE(0x97, 0x97) AM_READ(spunchout_prot_9_r) - AM_RANGE(0xa7, 0xa7) AM_READ(spunchout_prot_a_r) - AM_RANGE(0xb7, 0xb7) AM_READ(spunchout_prot_b_r) - AM_RANGE(0xc7, 0xc7) AM_READ(spunchout_prot_c_r) - /* AM_RANGE(0xf7, 0xf7) AM_READ(spunchout_prot_f_r) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x01) AM_WRITE(MWA8_NOP) /* the 2A03 #1 is not present */ - AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_w) - AM_RANGE(0x03, 0x03) AM_WRITE(soundlatch2_w) - AM_RANGE(0x04, 0x04) AM_WRITE(VLM5030_data_w) /* VLM5030 */ - AM_RANGE(0x05, 0x05) AM_WRITE(MWA8_NOP) /* unused */ - AM_RANGE(0x08, 0x08) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x09, 0x09) AM_WRITE(MWA8_NOP) /* watchdog reset, seldom used because 08 clears the watchdog as well */ - AM_RANGE(0x0a, 0x0a) AM_WRITE(MWA8_NOP) /* ?? */ - AM_RANGE(0x0b, 0x0b) AM_WRITE(punchout_2a03_reset_w) - AM_RANGE(0x0c, 0x0c) AM_WRITE(punchout_speech_reset_w) /* VLM5030 */ - AM_RANGE(0x0d, 0x0d) AM_WRITE(punchout_speech_st_w) /* VLM5030 */ - AM_RANGE(0x0e, 0x0e) AM_WRITE(punchout_speech_vcu_w) /* VLM5030 */ - AM_RANGE(0x0f, 0x0f) AM_WRITE(MWA8_NOP) /* enable NVRAM ? */ - - AM_RANGE(0x06, 0x06) AM_WRITE(MWA8_NOP) - - /* protection ports */ - AM_RANGE(0x07, 0x07) AM_WRITE(spunchout_prot_0_w) - AM_RANGE(0x17, 0x17) AM_WRITE(spunchout_prot_1_w) - AM_RANGE(0x27, 0x27) AM_WRITE(spunchout_prot_2_w) - AM_RANGE(0x37, 0x37) AM_WRITE(spunchout_prot_3_w) - AM_RANGE(0x57, 0x57) AM_WRITE(spunchout_prot_5_w) - AM_RANGE(0x67, 0x67) AM_WRITE(spunchout_prot_6_w) - AM_RANGE(0xa7, 0xa7) AM_WRITE(spunchout_prot_a_w) - AM_RANGE(0xb7, 0xb7) AM_WRITE(spunchout_prot_b_w) - AM_RANGE(0xd7, 0xd7) AM_WRITE(spunchout_prot_d_w) - AM_RANGE(0xf7, 0xf7) AM_WRITE(spunchout_prot_f_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x4016, 0x4016) AM_READ(soundlatch_r) - AM_RANGE(0x4017, 0x4017) AM_READ(soundlatch2_r) - AM_RANGE(0x4000, 0x4017) AM_READ(NESPSG_0_r) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0x4017) AM_WRITE(NESPSG_0_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( punchout ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x00, "Time" ) - PORT_DIPSETTING( 0x00, "Longest" ) - PORT_DIPSETTING( 0x04, "Long" ) - PORT_DIPSETTING( 0x08, "Short" ) - PORT_DIPSETTING( 0x0c, "Shortest" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Rematch at a Discount" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, "1 Coin/2 Credits (2 Credits/1 Play)" ) - PORT_DIPSETTING( 0x0d, "1 Coin/3 Credits (2 Credits/1 Play)" ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) -// PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) -// PORT_DIPSETTING( 0x09, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( Free_Play ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* VLM5030 busy signal */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, "Copyright" ) - PORT_DIPSETTING( 0x00, "Nintendo" ) - PORT_DIPSETTING( 0x80, "Nintendo of America" ) - PORT_START -INPUT_PORTS_END - -/* same as punchout with additional duck button */ -INPUT_PORTS_START( spnchout ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x00, "Time" ) - PORT_DIPSETTING( 0x00, "Longest" ) - PORT_DIPSETTING( 0x04, "Long" ) - PORT_DIPSETTING( 0x08, "Short" ) - PORT_DIPSETTING( 0x0c, "Shortest" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Rematch at a Discount" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) ) -// PORT_DIPSETTING( 0x09, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x0e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0d, "1 Coin/3 Credits (2 Credits/1 Play)" ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0b, "1 Coin/2 Credits (3 Credits/1 Play)" ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( Free_Play ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* VLM5030 busy signal */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_DIPNAME( 0x80, 0x00, "Copyright" ) - PORT_DIPSETTING( 0x00, "Nintendo" ) - PORT_DIPSETTING( 0x80, "Nintendo of America" ) - PORT_START -INPUT_PORTS_END - -INPUT_PORTS_START( armwrest ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, "Rematches" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* VLM5030 busy signal */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 1024, /* 1024 characters */ - 2, /* 2 bits per pixel */ - { 1024*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 armwrest_charlayout = -{ - 8,8, /* 8*8 characters */ - 2048, /* 2048 characters */ - 2, /* 2 bits per pixel */ - { 2048*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 armwrest_charlayout2 = -{ - 8,8, /* 8*8 characters */ - 2048, /* 2048 characters */ - 3, /* 3 bits per pixel */ - { 2*2048*8*8, 2048*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 charlayout1 = -{ - 8,8, /* 8*8 characters */ - 8192, /* 8192 characters */ - 3, /* 3 bits per pixel */ - { 2*8192*8*8, 8192*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 charlayout2 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 2, /* 2 bits per pixel */ - { 4096*8*8, 0 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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_decode punchout_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 128 }, - { REGION_GFX2, 0, &charlayout, 128*4, 128 }, - { REGION_GFX3, 0, &charlayout1, 128*4+128*4, 64 }, - { REGION_GFX4, 0, &charlayout2, 128*4+128*4+64*8, 128 }, - { -1 } /* end of array */ -}; - -static const gfx_decode armwrest_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &armwrest_charlayout, 0, 256 }, - { REGION_GFX2, 0, &armwrest_charlayout2, 256*4, 64 }, - { REGION_GFX3, 0, &charlayout1, 256*4+64*8, 64 }, - { REGION_GFX4, 0, &charlayout2, 256*4+64*8+64*8, 128 }, - { -1 } /* end of array */ -}; - - - -static struct NESinterface nes_interface = -{ - REGION_CPU2 -}; - - -static struct VLM5030interface vlm5030_interface = -{ - REGION_SOUND1, /* memory region of speech rom */ - 0 /* memory size of speech rom */ -}; - - - -static MACHINE_DRIVER_START( punchout ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 8000000/2) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(punchout_map,0) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_CPU_ADD(N2A03, N2A03_DEFAULTCLOCK) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_GFXDECODE(punchout_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024+1) - MDRV_COLORTABLE_LENGTH(128*4+128*4+64*8+128*4) - MDRV_DEFAULT_LAYOUT(layout_dualhuov) - - MDRV_SCREEN_ADD("top", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - - MDRV_SCREEN_ADD("bottom", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - - MDRV_PALETTE_INIT(punchout) - MDRV_VIDEO_START(punchout) - MDRV_VIDEO_UPDATE(punchout) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(NES, 0) - MDRV_SOUND_CONFIG(nes_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(VLM5030, 3580000) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( armwrest ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(punchout) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(armwrest_map,0) - - /* video hardware */ - MDRV_GFXDECODE(armwrest_gfxdecodeinfo) - MDRV_COLORTABLE_LENGTH(256*4+64*8+64*8+128*4) - - MDRV_PALETTE_INIT(armwrest) - MDRV_VIDEO_START(armwrest) - MDRV_VIDEO_UPDATE(armwrest) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( punchout ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "chp1-c.8l", 0x0000, 0x2000, CRC(a4003adc) SHA1(a8026eb39aa883993a0c9cb4400bf1a7e5898a2b) ) - ROM_LOAD( "chp1-c.8k", 0x2000, 0x2000, CRC(745ecf40) SHA1(430f80b688a515953fab177a3ec2eb31c886df22) ) - ROM_LOAD( "chp1-c.8j", 0x4000, 0x2000, CRC(7a7f870e) SHA1(76bb9f3ef0a2fd514db63fb77f35bde12c15c29c) ) - ROM_LOAD( "chp1-c.8h", 0x6000, 0x2000, CRC(5d8123d7) SHA1(04ddfcde969db93ff31e9c8a2af4dde285b82e2e) ) - ROM_LOAD( "chp1-c.8f", 0x8000, 0x4000, CRC(c8a55ddb) SHA1(f91fb368542c50969a086f01a2e70ecce7f2697b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "chp1-c.4k", 0xe000, 0x2000, CRC(cb6ef376) SHA1(503dbcc1b18a497311bf129689d5650860bf96c7) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-b.4c", 0x00000, 0x2000, CRC(e26dc8b3) SHA1(a704d39ef6f5cbad64a478e5c109b18aae427cbc) ) /* chars #1 */ - ROM_LOAD( "chp1-b.4d", 0x02000, 0x2000, CRC(dd1310ca) SHA1(918d2eda000244b692f1da7ac57d7a0edaef95fb) ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-b.4a", 0x00000, 0x2000, CRC(20fb4829) SHA1(9f0ce9379eb31c19bfacdc514ac6a28aa4217cbb) ) /* chars #2 */ - ROM_LOAD( "chp1-b.4b", 0x02000, 0x2000, CRC(edc34594) SHA1(fbb4a8b979d60b183dc23bdbb7425100b9325287) ) - - ROM_REGION( 0x30000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-v.2r", 0x00000, 0x4000, CRC(bd1d4b2e) SHA1(492ae301a9890c2603d564c9048b1b67895052dd) ) /* chars #3 */ - ROM_LOAD( "chp1-v.2t", 0x04000, 0x4000, CRC(dd9a688a) SHA1(fbb98eebfbaab445928da939846a2d07a8046afb) ) - ROM_LOAD( "chp1-v.2u", 0x08000, 0x2000, CRC(da6a3c4b) SHA1(e03469fb6f552f41a9b7f4b3e51c15a52b61cf84) ) - /* 0a000-0bfff empty (space for 16k ROM) */ - ROM_LOAD( "chp1-v.2v", 0x0c000, 0x2000, CRC(8c734a67) SHA1(d59b5a2517e4890e7ca7da52ca2813a6abc484a3) ) - /* 0e000-0ffff empty (space for 16k ROM) */ - ROM_LOAD( "chp1-v.3r", 0x10000, 0x4000, CRC(2e74ad1d) SHA1(538b3f9273699106a50887c927f0251537bf0f42) ) - ROM_LOAD( "chp1-v.3t", 0x14000, 0x4000, CRC(630ba9fb) SHA1(36cec8658597239385cada3bc947b940ab66954b) ) - ROM_LOAD( "chp1-v.3u", 0x18000, 0x2000, CRC(6440321d) SHA1(c8c084ad408cb6bf65959ed4db03c4b4cf9b1c1a) ) - /* 1a000-1bfff empty (space for 16k ROM) */ - ROM_LOAD( "chp1-v.3v", 0x1c000, 0x2000, CRC(bb7b7198) SHA1(64572668d30e008daf4ccaa5689518ecc41f1091) ) - /* 1e000-1ffff empty (space for 16k ROM) */ - ROM_LOAD( "chp1-v.4r", 0x20000, 0x4000, CRC(4e5b0fe9) SHA1(c5c4fb735cc232b43c49442e62af0ebe99eaab0c) ) - ROM_LOAD( "chp1-v.4t", 0x24000, 0x4000, CRC(37ffc940) SHA1(d555807a6a1025c81637c5db0184b48306aa01ac) ) - ROM_LOAD( "chp1-v.4u", 0x28000, 0x2000, CRC(1a7521d4) SHA1(4e8a8298f2ff8257d2058e5133ad295f92c7deb8) ) - /* 2a000-2bfff empty (space for 16k ROM) */ - /* 2c000-2ffff empty (4v doesn't exist, it is seen as a 0xff fill) */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-v.6p", 0x00000, 0x2000, CRC(16588f7a) SHA1(1aeaaa5cc2477c3aa4bf80df7d9474cc9ded9f15) ) /* chars #4 */ - ROM_LOAD( "chp1-v.6n", 0x02000, 0x2000, CRC(dc743674) SHA1(660582c76ee68a7267d5686a2f8ea0fd6c2b25fc) ) - /* 04000-07fff empty (space for 6l and 6k) */ - ROM_LOAD( "chp1-v.8p", 0x08000, 0x2000, CRC(c2db5b4e) SHA1(39d009af597fa28d34af31aec111aa6fe09fea39) ) - ROM_LOAD( "chp1-v.8n", 0x0a000, 0x2000, CRC(e6af390e) SHA1(73984cbdc8fbf667126ada63ab9500609eb25c61) ) - /* 0c000-0ffff empty (space for 8l and 8k) */ - - ROM_REGION( 0x0d00, REGION_PROMS, 0 ) - ROM_LOAD( "chp1-b.6e", 0x0000, 0x0200, CRC(e9ca3ac6) SHA1(68d9739d8a0dadc6fe3b3767437526096ca5db98) ) /* red component */ - ROM_LOAD( "chp1-b.7e", 0x0200, 0x0200, CRC(47adf7a2) SHA1(1d37d5207cd37a9c122251c60cc8f43dd680f484) ) /* red component */ - ROM_LOAD( "chp1-b.6f", 0x0400, 0x0200, CRC(02be56ab) SHA1(a88f332cb26928350ed20ab5f4c04d5324bb516a) ) /* green component */ - ROM_LOAD( "chp1-b.8e", 0x0600, 0x0200, CRC(b0fc15a8) SHA1(a1af09cfea81231240bd94f3b98de1be8235ebe7) ) /* green component */ - ROM_LOAD( "chp1-b.7f", 0x0800, 0x0200, CRC(11de55f1) SHA1(269b82f4bc73fac197e0bb6d9a90a220e77ce478) ) /* blue component */ - ROM_LOAD( "chp1-b.8f", 0x0a00, 0x0200, CRC(1ffd894a) SHA1(9e8c1c28b4c12acf42f814bc109d353729a25652) ) /* blue component */ - ROM_LOAD( "chp1-v.2d", 0x0c00, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */ - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) /* 16k for the VLM5030 data */ - ROM_LOAD( "chp1-c.6p", 0x0000, 0x4000, CRC(ea0bbb31) SHA1(b1da024cb688341d39791a78d1144fe09acb00cf) ) -ROM_END - -ROM_START( spnchout ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "chs1-c.8l", 0x0000, 0x2000, CRC(703b9780) SHA1(93b2fd8392ef094413330cd2474ac406c3db426e) ) - ROM_LOAD( "chs1-c.8k", 0x2000, 0x2000, CRC(e13719f6) SHA1(d0f08a0999801dd5d55f2f4ae3e76f25b765b8d6) ) - ROM_LOAD( "chs1-c.8j", 0x4000, 0x2000, CRC(1fa629e8) SHA1(e0c37883e65c77e9f25e323fb4dc05f7dcdc6347) ) - ROM_LOAD( "chs1-c.8h", 0x6000, 0x2000, CRC(15a6c068) SHA1(3f42697a6d79c6fd4b638feb366c80e98a7f02e2) ) - ROM_LOAD( "chs1-c.8f", 0x8000, 0x4000, CRC(4ff3cdd9) SHA1(282edf9a3fa085bc82523249a519f2a3fe04e87e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "chp1-c.4k", 0xe000, 0x2000, CRC(cb6ef376) SHA1(503dbcc1b18a497311bf129689d5650860bf96c7) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chs1-b.4c", 0x00000, 0x0800, CRC(9f2ede2d) SHA1(58a0f8c34ff9ec425c846c1eb6c6ccd99c2d0132) ) /* chars #1 */ - ROM_CONTINUE( 0x01000, 0x0800 ) - ROM_CONTINUE( 0x00800, 0x0800 ) - ROM_CONTINUE( 0x01800, 0x0800 ) - ROM_LOAD( "chs1-b.4d", 0x02000, 0x0800, CRC(143ae5c6) SHA1(4c8426ba336941ac3341b1dd65c0d68b9aae56de) ) - ROM_CONTINUE( 0x03000, 0x0800 ) - ROM_CONTINUE( 0x02800, 0x0800 ) - ROM_CONTINUE( 0x03800, 0x0800 ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-b.4a", 0x00000, 0x0800, CRC(c075f831) SHA1(f22d9e415637599420c443ce08e7e70d1eb1c6f5) ) /* chars #2 */ - ROM_CONTINUE( 0x01000, 0x0800 ) - ROM_CONTINUE( 0x00800, 0x0800 ) - ROM_CONTINUE( 0x01800, 0x0800 ) - ROM_LOAD( "chp1-b.4b", 0x02000, 0x0800, CRC(c4cc2b5a) SHA1(7b9d4dcecc67271980c3c44561fc25a6f6c93ee3) ) - ROM_CONTINUE( 0x03000, 0x0800 ) - ROM_CONTINUE( 0x02800, 0x0800 ) - ROM_CONTINUE( 0x03800, 0x0800 ) - - ROM_REGION( 0x30000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chs1-v.2r", 0x00000, 0x4000, CRC(ff33405d) SHA1(31b892d184d24a0ec05fd6facec61a532ce8535b) ) /* chars #3 */ - ROM_LOAD( "chs1-v.2t", 0x04000, 0x4000, CRC(f507818b) SHA1(fb99c5c88e829d7e81c53ead21554a614b6fdcf9) ) - ROM_LOAD( "chs1-v.2u", 0x08000, 0x4000, CRC(0995fc95) SHA1(d056fc61ad2409525622b4db69796668c3145460) ) - ROM_LOAD( "chs1-v.2v", 0x0c000, 0x2000, CRC(f44d9878) SHA1(327a8bbc8f1a33fcf95ebc75db97406feb6435d9) ) - /* 0e000-0ffff empty (space for 16k ROM) */ - ROM_LOAD( "chs1-v.3r", 0x10000, 0x4000, CRC(09570945) SHA1(c3e2a8f76eebacc9042d087db2dfdc8ea267d46a) ) - ROM_LOAD( "chs1-v.3t", 0x14000, 0x4000, CRC(42c6861c) SHA1(2b160cde3cc3ee7adb276fe719f7919c9295ba38) ) - ROM_LOAD( "chs1-v.3u", 0x18000, 0x4000, CRC(bf5d02dd) SHA1(f1f4932fc258c087783450e7c964902fa45c4568) ) - ROM_LOAD( "chs1-v.3v", 0x1c000, 0x2000, CRC(5673f4fc) SHA1(682a81b60494b2c77d1da312c97bc807021eac67) ) - /* 1e000-1ffff empty (space for 16k ROM) */ - ROM_LOAD( "chs1-v.4r", 0x20000, 0x4000, CRC(8e155758) SHA1(d21ce2d81b2d47e5ff091e48cf46d41d01ea6314) ) - ROM_LOAD( "chs1-v.4t", 0x24000, 0x4000, CRC(b4e43448) SHA1(1ed6bf913c15851cf86554713c122b55c18c5d67) ) - ROM_LOAD( "chs1-v.4u", 0x28000, 0x4000, CRC(74e0d956) SHA1(b172cdcc5d26f3be06a7f0f9e19879957e87f992) ) - /* 2c000-2ffff empty (4v doesn't exist, it is seen as a 0xff fill) */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-v.6p", 0x00000, 0x0800, CRC(75be7aae) SHA1(396bc1d301b99e064de4dad699882618b1b9c958) ) /* chars #4 */ - ROM_CONTINUE( 0x01000, 0x0800 ) - ROM_CONTINUE( 0x00800, 0x0800 ) - ROM_CONTINUE( 0x01800, 0x0800 ) - ROM_LOAD( "chp1-v.6n", 0x02000, 0x0800, CRC(daf74de0) SHA1(9373d4527b675b3128a5a830f42e1dc5dcb85307) ) - ROM_CONTINUE( 0x03000, 0x0800 ) - ROM_CONTINUE( 0x02800, 0x0800 ) - ROM_CONTINUE( 0x03800, 0x0800 ) - /* 04000-07fff empty (space for 6l and 6k) */ - ROM_LOAD( "chp1-v.8p", 0x08000, 0x0800, CRC(4cb7ea82) SHA1(213b7c1431f4c92e5519a8771035bda28b3bab8a) ) - ROM_CONTINUE( 0x09000, 0x0800 ) - ROM_CONTINUE( 0x08800, 0x0800 ) - ROM_CONTINUE( 0x09800, 0x0800 ) - ROM_LOAD( "chp1-v.8n", 0x0a000, 0x0800, CRC(1c0d09aa) SHA1(3276bae7400453f3612f53d7b47fb199cbe53e6d) ) - ROM_CONTINUE( 0x0b000, 0x0800 ) - ROM_CONTINUE( 0x0a800, 0x0800 ) - ROM_CONTINUE( 0x0b800, 0x0800 ) - /* 0c000-0ffff empty (space for 8l and 8k) */ - - ROM_REGION( 0x0d00, REGION_PROMS, 0 ) - ROM_LOAD( "chs1-b.6e", 0x0000, 0x0200, CRC(0ad4d727) SHA1(5fa4247d58d10b4644f0a7492efb22b7a9ce7b62) ) /* red component */ - ROM_LOAD( "chs1-b.7e", 0x0200, 0x0200, CRC(9e170f64) SHA1(9548bfec2f5b7d222e91562b5459aef8c107b3ec) ) /* red component */ - ROM_LOAD( "chs1-b.6f", 0x0400, 0x0200, CRC(86f5cfdb) SHA1(a2a3a4e9ca15826fe8c86650d50c8ce203d57eae) ) /* green component */ - ROM_LOAD( "chs1-b.8e", 0x0600, 0x0200, CRC(3a2e333b) SHA1(5cf0324cc07ac4af63598c5c6acc61d24215b233) ) /* green component */ - ROM_LOAD( "chs1-b.7f", 0x0800, 0x0200, CRC(8bd406f8) SHA1(eaf0b62eccf1f47452bf983b3ffc6cacc25d4585) ) /* blue component */ - ROM_LOAD( "chs1-b.8f", 0x0a00, 0x0200, CRC(1663eed7) SHA1(90ff876a6b885f8a80c17531cde8b91864f1a6a5) ) /* blue component */ - ROM_LOAD( "chs1-v.2d", 0x0c00, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */ - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for the VLM5030 data */ - ROM_LOAD( "chs1-c.6p", 0x0000, 0x4000, CRC(ad8b64b8) SHA1(0f1232a10faf71b782f9f6653cca8570243c17e0) ) -ROM_END - -ROM_START( spnchotj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "chs1c8la.bin", 0x0000, 0x2000, CRC(dc2a592b) SHA1(a8a7fc5c836e2723ba6abcb1137f4c4f79e21c87) ) - ROM_LOAD( "chs1c8ka.bin", 0x2000, 0x2000, CRC(ce687182) SHA1(f07d930d90eda199b089f9023b51fd4456c87bdf) ) - ROM_LOAD( "chs1-c.8j", 0x4000, 0x2000, CRC(1fa629e8) SHA1(e0c37883e65c77e9f25e323fb4dc05f7dcdc6347) ) - ROM_LOAD( "chs1-c.8h", 0x6000, 0x2000, CRC(15a6c068) SHA1(3f42697a6d79c6fd4b638feb366c80e98a7f02e2) ) - ROM_LOAD( "chs1c8fa.bin", 0x8000, 0x4000, CRC(f745b5d5) SHA1(8130b5be011848625ebe6691fbb76dc338979b60) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "chp1-c.4k", 0xe000, 0x2000, CRC(cb6ef376) SHA1(503dbcc1b18a497311bf129689d5650860bf96c7) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "b_4c_01a.bin", 0x00000, 0x2000, CRC(b017e1e9) SHA1(39e98f48bff762a674a2506efa39b3619337a1e0) ) /* chars #1 */ - ROM_LOAD( "b_4d_01a.bin", 0x02000, 0x2000, CRC(e3de9d18) SHA1(f55b6f522e127e6239197dd7eb1564e6f275df74) ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-b.4a", 0x00000, 0x0800, CRC(c075f831) SHA1(f22d9e415637599420c443ce08e7e70d1eb1c6f5) ) /* chars #2 */ - ROM_CONTINUE( 0x01000, 0x0800 ) - ROM_CONTINUE( 0x00800, 0x0800 ) - ROM_CONTINUE( 0x01800, 0x0800 ) - ROM_LOAD( "chp1-b.4b", 0x02000, 0x0800, CRC(c4cc2b5a) SHA1(7b9d4dcecc67271980c3c44561fc25a6f6c93ee3) ) - ROM_CONTINUE( 0x03000, 0x0800 ) - ROM_CONTINUE( 0x02800, 0x0800 ) - ROM_CONTINUE( 0x03800, 0x0800 ) - - ROM_REGION( 0x30000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chs1-v.2r", 0x00000, 0x4000, CRC(ff33405d) SHA1(31b892d184d24a0ec05fd6facec61a532ce8535b) ) /* chars #3 */ - ROM_LOAD( "chs1-v.2t", 0x04000, 0x4000, CRC(f507818b) SHA1(fb99c5c88e829d7e81c53ead21554a614b6fdcf9) ) - ROM_LOAD( "chs1-v.2u", 0x08000, 0x4000, CRC(0995fc95) SHA1(d056fc61ad2409525622b4db69796668c3145460) ) - ROM_LOAD( "chs1-v.2v", 0x0c000, 0x2000, CRC(f44d9878) SHA1(327a8bbc8f1a33fcf95ebc75db97406feb6435d9) ) - /* 0e000-0ffff empty (space for 16k ROM) */ - ROM_LOAD( "chs1-v.3r", 0x10000, 0x4000, CRC(09570945) SHA1(c3e2a8f76eebacc9042d087db2dfdc8ea267d46a) ) - ROM_LOAD( "chs1-v.3t", 0x14000, 0x4000, CRC(42c6861c) SHA1(2b160cde3cc3ee7adb276fe719f7919c9295ba38) ) - ROM_LOAD( "chs1-v.3u", 0x18000, 0x4000, CRC(bf5d02dd) SHA1(f1f4932fc258c087783450e7c964902fa45c4568) ) - ROM_LOAD( "chs1-v.3v", 0x1c000, 0x2000, CRC(5673f4fc) SHA1(682a81b60494b2c77d1da312c97bc807021eac67) ) - /* 1e000-1ffff empty (space for 16k ROM) */ - ROM_LOAD( "chs1-v.4r", 0x20000, 0x4000, CRC(8e155758) SHA1(d21ce2d81b2d47e5ff091e48cf46d41d01ea6314) ) - ROM_LOAD( "chs1-v.4t", 0x24000, 0x4000, CRC(b4e43448) SHA1(1ed6bf913c15851cf86554713c122b55c18c5d67) ) - ROM_LOAD( "chs1-v.4u", 0x28000, 0x4000, CRC(74e0d956) SHA1(b172cdcc5d26f3be06a7f0f9e19879957e87f992) ) - /* 2c000-2ffff empty (4v doesn't exist, it is seen as a 0xff fill) */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chp1-v.6p", 0x00000, 0x0800, CRC(75be7aae) SHA1(396bc1d301b99e064de4dad699882618b1b9c958) ) /* chars #4 */ - ROM_CONTINUE( 0x01000, 0x0800 ) - ROM_CONTINUE( 0x00800, 0x0800 ) - ROM_CONTINUE( 0x01800, 0x0800 ) - ROM_LOAD( "chp1-v.6n", 0x02000, 0x0800, CRC(daf74de0) SHA1(9373d4527b675b3128a5a830f42e1dc5dcb85307) ) - ROM_CONTINUE( 0x03000, 0x0800 ) - ROM_CONTINUE( 0x02800, 0x0800 ) - ROM_CONTINUE( 0x03800, 0x0800 ) - /* 04000-07fff empty (space for 6l and 6k) */ - ROM_LOAD( "chp1-v.8p", 0x08000, 0x0800, CRC(4cb7ea82) SHA1(213b7c1431f4c92e5519a8771035bda28b3bab8a) ) - ROM_CONTINUE( 0x09000, 0x0800 ) - ROM_CONTINUE( 0x08800, 0x0800 ) - ROM_CONTINUE( 0x09800, 0x0800 ) - ROM_LOAD( "chp1-v.8n", 0x0a000, 0x0800, CRC(1c0d09aa) SHA1(3276bae7400453f3612f53d7b47fb199cbe53e6d) ) - ROM_CONTINUE( 0x0b000, 0x0800 ) - ROM_CONTINUE( 0x0a800, 0x0800 ) - ROM_CONTINUE( 0x0b800, 0x0800 ) - /* 0c000-0ffff empty (space for 8l and 8k) */ - - ROM_REGION( 0x0d00, REGION_PROMS, 0 ) - ROM_LOAD( "chs1b_6e.bpr", 0x0000, 0x0200, CRC(8efd867f) SHA1(d5f2bfe750bb5d472922bdb7e915ee28a3eec9bd) ) /* red component */ - ROM_LOAD( "chs1-b.7e", 0x0200, 0x0200, CRC(9e170f64) SHA1(9548bfec2f5b7d222e91562b5459aef8c107b3ec) ) /* red component */ - ROM_LOAD( "chs1b_6f.bpr", 0x0400, 0x0200, CRC(279d6cbc) SHA1(aea56970801908b4d51be0c15043c7b315d2637f) ) /* green component */ - ROM_LOAD( "chs1-b.8e", 0x0600, 0x0200, CRC(3a2e333b) SHA1(5cf0324cc07ac4af63598c5c6acc61d24215b233) ) /* green component */ - ROM_LOAD( "chs1b_7f.bpr", 0x0800, 0x0200, CRC(cad6b7ad) SHA1(62b61d5fa47ca6e2dd15295674dff62e4e69471a) ) /* blue component */ - ROM_LOAD( "chs1-b.8f", 0x0a00, 0x0200, CRC(1663eed7) SHA1(90ff876a6b885f8a80c17531cde8b91864f1a6a5) ) /* blue component */ - ROM_LOAD( "chs1-v.2d", 0x0c00, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */ - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for the VLM5030 data */ - ROM_LOAD( "chs1c6pa.bin", 0x0000, 0x4000, CRC(d05fb730) SHA1(9f4c4c7e5113739312558eff4d3d3e42d513aa31) ) -ROM_END - -ROM_START( armwrest ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "chv1-c.8l", 0x0000, 0x2000, CRC(b09764c1) SHA1(2f32acd689ef70ec81fe958c7a604855ae39cf5e) ) - ROM_LOAD( "chv1-c.8k", 0x2000, 0x2000, CRC(0e147ff7) SHA1(7ea8b7b5562d9432c6cace2ee13377f91543975d) ) - ROM_LOAD( "chv1-c.8j", 0x4000, 0x2000, CRC(e7365289) SHA1(9d4ed5ce73b93c3917b1411ed902974e2a4f3d35) ) - ROM_LOAD( "chv1-c.8h", 0x6000, 0x2000, CRC(a2118eec) SHA1(93e1b19819352f88888b3caf67ed27cd50f866a9) ) - ROM_LOAD( "chpv-c.8f", 0x8000, 0x4000, CRC(664a07c4) SHA1(a8a049be5beeab3940079465fb0c80382f3860f0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "chp1-c.4k", 0xe000, 0x2000, CRC(cb6ef376) SHA1(503dbcc1b18a497311bf129689d5650860bf96c7) ) /* same as Punch Out */ - - ROM_REGION( 0x08000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chpv-b.2e", 0x00000, 0x4000, CRC(8b45f365) SHA1(15fadccc9afe26672fbbb8eaeaa7d3ee70bcb056) ) /* chars #1 */ - ROM_LOAD( "chpv-b.2d", 0x04000, 0x4000, CRC(b1a2850c) SHA1(e3aec428bb52443921fb7ceb5eb21b5f9ee9edcb) ) - - ROM_REGION( 0x0c000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chpv-b.2m", 0x00000, 0x4000, CRC(19245b37) SHA1(711e263d487661afca09f731e9333a84eb8d1541) ) /* chars #2 */ - ROM_LOAD( "chpv-b.2l", 0x04000, 0x4000, CRC(46797941) SHA1(e21fcec8e19702f9765205a4dc89105b4e98dcdd) ) - ROM_LOAD( "chpv-b.2k", 0x0a000, 0x2000, CRC(de189b00) SHA1(62b38d5f95bb4f0a0d04947c7c2031e07f95cbe4) ) - - ROM_REGION( 0x30000, REGION_GFX3, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chv1-v.2r", 0x00000, 0x4000, CRC(d86056d9) SHA1(decedf6b54e5990ff14d8049791b2d06c33ae71b) ) /* chars #3 */ - ROM_LOAD( "chv1-v.2t", 0x04000, 0x4000, CRC(5ad77059) SHA1(05a1c7957982fa695bca62a05dc593c7913ccd7f) ) - /* 08000-0bfff empty */ - ROM_LOAD( "chv1-v.2v", 0x0c000, 0x4000, CRC(a0fd7338) SHA1(afd8d78661c3b7149f4c491ba930a8ce66d29977) ) - ROM_LOAD( "chv1-v.3r", 0x10000, 0x4000, CRC(690e26fb) SHA1(6c20daabf5db633482b288c8020130a80cc939fc) ) - ROM_LOAD( "chv1-v.3t", 0x14000, 0x4000, CRC(ea5d7759) SHA1(4d72d7b602455349be4a9cbf34127952aa2a99ea) ) - /* 18000-1bfff empty */ - ROM_LOAD( "chv1-v.3v", 0x1c000, 0x4000, CRC(ceb37c05) SHA1(9d0e3d52e018901c2f26a9de7aa9858b106487d3) ) - ROM_LOAD( "chv1-v.4r", 0x20000, 0x4000, CRC(e291cba0) SHA1(a03ff7eea3a7a841000b67a8baeca6e82e8496ef) ) - ROM_LOAD( "chv1-v.4t", 0x24000, 0x4000, CRC(e01f3b59) SHA1(9f47507094e03735adaf033f3b99e17dd9dfd5d0) ) - /* 28000-2bfff empty */ - /* 2c000-2ffff empty (4v doesn't exist, it is seen as a 0xff fill) */ - - ROM_REGION( 0x10000, REGION_GFX4, ROMREGION_DISPOSE | ROMREGION_ERASEFF ) - ROM_LOAD( "chv1-v.6p", 0x00000, 0x2000, CRC(d834e142) SHA1(e7d654145b695147b744af2284173f90749fbf0e) ) /* chars #4 */ - /* 02000-03fff empty (space for 16k ROM) */ - /* 04000-07fff empty (space for 6l and 6k) */ - ROM_LOAD( "chv1-v.8p", 0x08000, 0x2000, CRC(a2f531db) SHA1(c9be180fbc608135c892e8ee396b138f058edf24) ) - /* 0a000-0bfff empty (space for 16k ROM) */ - /* 0c000-0ffff empty (space for 8l and 8k) */ - - ROM_REGION( 0x0e00, REGION_PROMS, 0 ) - ROM_LOAD( "chpv-b.7b", 0x0000, 0x0200, CRC(df6fdeb3) SHA1(7766d420cb95377104e26d96afddc83b67553c2f) ) /* red component */ - ROM_LOAD( "chpv-b.4b", 0x0200, 0x0200, CRC(9d51416e) SHA1(ae933786c5fc19311144b2094305b4253dc8b75b) ) /* red component */ - ROM_LOAD( "chpv-b.7c", 0x0400, 0x0200, CRC(b1da5f42) SHA1(55e744da70bbaa855cb1403eef028771a97578a1) ) /* green component */ - ROM_LOAD( "chpv-b.4c", 0x0600, 0x0200, CRC(b8a25795) SHA1(8e41baa796fd8f00739a95b2e07066d68193bd76) ) /* green component */ - ROM_LOAD( "chpv-b.7d", 0x0800, 0x0200, CRC(4ede813e) SHA1(6603465dae7d869c483d66768fab16f282caaa8b) ) /* blue component */ - ROM_LOAD( "chpv-b.4d", 0x0a00, 0x0200, CRC(474fc3b1) SHA1(9cda1d1626285310524d048b60b1cf89e197a26d) ) /* blue component */ - ROM_LOAD( "chv1-b.3c", 0x0c00, 0x0100, CRC(c3f92ea2) SHA1(1a82cca1b9a8d9bd4a1d121d8c131a7d0be554bc) ) /* priority encoder - not used */ - ROM_LOAD( "chpv-v.2d", 0x0d00, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */ - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for the VLM5030 data */ - ROM_LOAD( "chv1-c.6p", 0x0000, 0x4000, CRC(31b52896) SHA1(395f59ac38b46042f79e9224ac6bc7d3dc299906) ) -ROM_END - - - -GAME( 1984, punchout, 0, punchout, punchout, punchout, ROT0, "Nintendo", "Punch-Out!!", 0 ) -GAME( 1984, spnchout, 0, punchout, spnchout, spnchout, ROT0, "Nintendo", "Super Punch-Out!!", 0 ) -GAME( 1984, spnchotj, spnchout, punchout, spnchout, spnchotj, ROT0, "Nintendo", "Super Punch-Out!! (Japan)", 0 ) -GAME( 1985, armwrest, 0, armwrest, armwrest, armwrest, ROT0, "Nintendo", "Arm Wrestling", 0 ) diff --git a/src/drivers/qdrmfgp.c b/src/drivers/qdrmfgp.c deleted file mode 100644 index f89e2eba5..000000000 --- a/src/drivers/qdrmfgp.c +++ /dev/null @@ -1,808 +0,0 @@ -/*************************************************************************** - -Quiz Do Re Mi Fa Grand Prix (Japan) (GQ460) (c)1994 Konami -Quiz Do Re Mi Fa Grand Prix 2 (Japan) (GE557) (c)1995 Konami - - -CPU :MC68HC000FN16 -OSC :18.43200MHz/32.00000MHz -Other(GQ460):Konami 053252,054156,056832,054539 -Other(GE557):Konami 056832,058141,058143 - - --- -driver by Eisuke Watanabe - -Note: -GP1 HDD data contents: - 0x000-0x52D intro quiz musics - 0x52E-0x535 not used quiz (system music or invalid data) -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "machine/idectrl.h" -#include "sound/k054539.h" -#include "vidhrdw/konamiic.h" - -VIDEO_START( qdrmfgp ); -VIDEO_START( qdrmfgp2 ); -VIDEO_UPDATE( qdrmfgp ); - - - -static UINT8 *sndram; -static UINT16 *workram; -static UINT16 control; -static INT32 qdrmfgp_pal; -static INT32 gp2_irq_control; - -/************************************* - * - * 68k CPU memory handlers - * - *************************************/ - -static READ16_HANDLER( i_port1_r ) -{ - if (control & 0x0080) - return input_port_0_word_r(0,0); - else - return input_port_1_word_r(0,0); -} - -static READ16_HANDLER( i_port2_r ) -{ - /* bit 0-1 battery power sensor: 3=good, 2=low, other=bad */ - - return (input_port_2_word_r(0,0) & 0xfffc) | 0x0003; -} - - -int qdrmfgp_get_palette(void) -{ - return qdrmfgp_pal; -} - -static WRITE16_HANDLER( gp_control_w ) -{ - /* bit 0 enable irq 1 (sound) */ - /* bit 1 enable irq 2 (not used) */ - /* bit 2 enable irq 3 (vblank) */ - /* bit 3 enable irq 4 (hdd) */ - /* bit 4-6 palette (tilemap) */ - /* bit 7 inputports bankswitch */ - /* bit 8 enable volume control */ - /* bit 9 volume: 1=up, 0=down (low5,mid90,high180) */ - /* bit 10 enable headphone volume control */ - /* bit 11 headphone volume: 1=up, 0=down */ - /* bit 15 gfxrom bankswitch */ - - COMBINE_DATA(&control); - qdrmfgp_pal = control & 0x70; - - if (control & 0x0100) - { - int vol = generic_nvram16[0x10] & 0xff; - if (vol) - { - int i; - double gain = vol / 90.0; - - for (i=0; i<8; i++) - K054539_set_gain(0, i, gain); - } - } -} - -static WRITE16_HANDLER( gp2_control_w ) -{ - /* bit 2 enable irq 3 (sound) */ - /* bit 3 enable irq 4 (vblank) */ - /* bit 4 enable irq 5 (hdd) */ - /* bit 7 inputports bankswitch */ - /* bit 8 enable volume control */ - /* bit 9 volume: 1=up, 0=down (low0,mid90,high255) */ - /* bit 10 enable headphone volume control */ - /* bit 11 headphone volume: 1=up, 0=down */ - /* bit 15 gfxrom bankswitch */ - - COMBINE_DATA(&control); - qdrmfgp_pal = 0; - - if (control & 0x0100) - { - int vol = generic_nvram16[0x8] & 0xff; - if (vol) - { - int i; - double gain = vol / 90.0; - - for (i=0; i<8; i++) - K054539_set_gain(0, i, gain); - } - } -} - - -static READ16_HANDLER( v_rom_r ) -{ - UINT8 *mem8 = memory_region(REGION_GFX1); - int bank = K056832_word_r(0x34/2, 0xffff); - - offset += bank * 0x800 * 4; - - if (control & 0x8000) - offset += 0x800 * 2; - - return (mem8[offset+1] << 8) + mem8[offset]; -} - - -static READ16_HANDLER( gp2_vram_r ) -{ - if (offset < 0x1000/2) - return K056832_ram_word_r(offset*2+1, mem_mask); - else - return K056832_ram_word_r((offset-0x1000/2)*2, mem_mask); -} - -static READ16_HANDLER( gp2_vram_mirror_r ) -{ - if (offset < 0x1000/2) - return K056832_ram_word_r(offset*2, mem_mask); - else - return K056832_ram_word_r((offset-0x1000/2)*2+1, mem_mask); -} - -static WRITE16_HANDLER( gp2_vram_w ) -{ - if (offset < 0x1000/2) - K056832_ram_word_w(offset*2+1, data, mem_mask); - else - K056832_ram_word_w((offset-0x1000/2)*2, data, mem_mask); -} - -static WRITE16_HANDLER( gp2_vram_mirror_w ) -{ - if (offset < 0x1000/2) - K056832_ram_word_w(offset*2, data, mem_mask); - else - K056832_ram_word_w((offset-0x1000/2)*2+1, data, mem_mask); -} - - -/*************/ - -static READ16_HANDLER( sndram_r ) -{ - if (ACCESSING_LSB16) - return sndram[offset]; - - return 0; -} - -static WRITE16_HANDLER( sndram_w ) -{ - if (ACCESSING_LSB16) - { - sndram[offset] = data & 0xff; - if (offset >= 0x40000) - sndram[offset+0xc00000-0x900000] = data & 0xff; - } -} - -static READ16_HANDLER( k054539_word_r ) -{ - if (ACCESSING_LSB16) - return K054539_0_r(offset); - - return 0; -} - -static WRITE16_HANDLER( k054539_word_w ) -{ - if (ACCESSING_LSB16) - K054539_0_w(offset, data); -} - -/*************/ - -#define IDE_STD_OFFSET (0x1f0/2) -#define IDE_ALT_OFFSET (0x3f6/2) - -static READ16_HANDLER( ide_std_r ) -{ - if (offset & 0x01) - return ide_controller16_0_r(IDE_STD_OFFSET + offset/2, 0x00ff) >> 8; - else - return ide_controller16_0_r(IDE_STD_OFFSET + offset/2, 0x0000); -} - -static WRITE16_HANDLER( ide_std_w ) -{ - if (offset & 0x01) - ide_controller16_0_w(IDE_STD_OFFSET + offset/2, data << 8, 0x00ff); - else - ide_controller16_0_w(IDE_STD_OFFSET + offset/2, data, 0x0000); -} - -static READ16_HANDLER( ide_alt_r ) -{ - if (offset == 0) - return ide_controller16_0_r(IDE_ALT_OFFSET, 0xff00); - - return 0; -} - -static WRITE16_HANDLER( ide_alt_w ) -{ - if (offset == 0) - ide_controller16_0_w(IDE_ALT_OFFSET, data, 0xff00); -} - - -static READ16_HANDLER( gp2_ide_std_r ) -{ - if (offset & 0x01) - { - if (offset == 0x07) - { - switch (activecpu_get_previouspc()) - { - case 0xdb4c: - if ((workram[0x5fa4/2] - activecpu_get_reg(M68K_D0)) <= 0x10) - gp2_irq_control = 1; - break; - case 0xdec2: - gp2_irq_control = 1; - default: - break; - } - } - return ide_controller16_0_r(IDE_STD_OFFSET + offset/2, 0x00ff) >> 8; - } else { - return ide_controller16_0_r(IDE_STD_OFFSET + offset/2, 0x0000); - } -} - - -/************************************* - * - * Interrupt handlers - * - *************************************/ - -static INTERRUPT_GEN(qdrmfgp_interrupt) -{ - switch (cpu_getiloops()) - { - case 0: - if (control & 0x0001) - cpunum_set_input_line(0, 1, HOLD_LINE); - break; - - case 1: - /* trigger V-blank interrupt */ - if (control & 0x0004) - cpunum_set_input_line(0, 3, HOLD_LINE); - break; - } -} - -static void ide_interrupt(int state) -{ - if (control & 0x0008) - { - if (state != CLEAR_LINE) - cpunum_set_input_line(0, 4, HOLD_LINE); - else - cpunum_set_input_line(0, 4, CLEAR_LINE); - } -} - -/*************/ - -static void gp2_timer_callback(int dummy) -{ - if (control & 0x0004) - cpunum_set_input_line(0, 3, HOLD_LINE); -} - -static INTERRUPT_GEN(qdrmfgp2_interrupt) -{ - /* trigger V-blank interrupt */ - if (control & 0x0008) - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static void gp2_ide_interrupt(int state) -{ - if (control & 0x0010) - { - if (state != CLEAR_LINE) - { - if (gp2_irq_control) - gp2_irq_control = 0; - else - cpunum_set_input_line(0, 5, HOLD_LINE); - } else { - cpunum_set_input_line(0, 5, CLEAR_LINE); - } - } -} - - -/************************************* - * - * Memory definitions - * - *************************************/ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_READ(MRA16_RAM) /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_READ(MRA16_RAM) /* color ram */ - AM_RANGE(0x320000, 0x32001f) AM_READ(K053252_word_r) /* ccu */ - AM_RANGE(0x330000, 0x330001) AM_READ(i_port2_r) /* battery power & service sw */ - AM_RANGE(0x340000, 0x340001) AM_READ(i_port1_r) /* inputport */ - AM_RANGE(0x800000, 0x80045f) AM_READ(k054539_word_r) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_READ(K056832_ram_word_r) /* vram */ - AM_RANGE(0x882000, 0x883fff) AM_READ(K056832_ram_word_r) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ - AM_RANGE(0xa00000, 0xa0000f) AM_READ(ide_std_r) /* IDE control regs */ - AM_RANGE(0xa4000c, 0xa4000f) AM_READ(ide_alt_r) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READ(sndram_r) /* sound ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) AM_BASE(&workram) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_WRITE(MWA16_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */ - AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */ - AM_RANGE(0x350000, 0x350001) AM_WRITE(MWA16_NOP) /* unknown */ - AM_RANGE(0x360000, 0x360001) AM_WRITE(MWA16_NOP) /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */ - AM_RANGE(0x380000, 0x380001) AM_WRITE(MWA16_NOP) /* Watchdog */ - AM_RANGE(0x800000, 0x80045f) AM_WRITE(k054539_word_w) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_WRITE(K056832_ram_word_w) /* vram */ - AM_RANGE(0x882000, 0x883fff) AM_WRITE(K056832_ram_word_w) /* vram (mirror) */ - AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(ide_std_w) /* IDE control regs */ - AM_RANGE(0xa4000c, 0xa4000f) AM_WRITE(ide_alt_w) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_WRITE(sndram_w) /* sound ram */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( gp2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x110fff) AM_READ(MRA16_RAM) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_READ(MRA16_RAM) /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_READ(MRA16_RAM) /* color ram */ - AM_RANGE(0x320000, 0x32001f) AM_READ(K053252_word_r) /* ccu */ - AM_RANGE(0x330000, 0x330001) AM_READ(i_port2_r) /* battery power & service */ - AM_RANGE(0x340000, 0x340001) AM_READ(i_port1_r) /* inputport */ - AM_RANGE(0x800000, 0x80045f) AM_READ(k054539_word_r) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_READ(gp2_vram_r) /* vram */ - AM_RANGE(0x89f000, 0x8a0fff) AM_READ(gp2_vram_mirror_r) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ - AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) /* IDE control regs */ - AM_RANGE(0xa4000c, 0xa4000f) AM_READ(ide_alt_r) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READ(sndram_r) /* sound ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gp2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x110fff) AM_WRITE(MWA16_RAM) AM_BASE(&workram) /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_WRITE(MWA16_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w) /* video reg */ - AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w) /* ccu */ - AM_RANGE(0x350000, 0x350001) AM_WRITE(MWA16_NOP) /* unknown */ - AM_RANGE(0x360000, 0x360001) AM_WRITE(MWA16_NOP) /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */ - AM_RANGE(0x380000, 0x380001) AM_WRITE(MWA16_NOP) /* Watchdog */ - AM_RANGE(0x800000, 0x80045f) AM_WRITE(k054539_word_w) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_WRITE(gp2_vram_w) /* vram */ - AM_RANGE(0x89f000, 0x8a0fff) AM_WRITE(gp2_vram_mirror_w) /* vram (mirror) */ - AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(ide_std_w) /* IDE control regs */ - AM_RANGE(0xa4000c, 0xa4000f) AM_WRITE(ide_alt_w) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_WRITE(sndram_w) /* sound ram */ -ADDRESS_MAP_END - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( qdrmfgp ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* 1P STOP */ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* 2P STOP */ - - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* SERVICE */ - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) /* TEST SW */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START - PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0004, 0x0004, "Extended Service Menu" ) /* and skipped initial checks. */ - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, "Skip HDD Check" ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, "Initialize Backup RAM" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0b00, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0d00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0900, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x3000, "All The Time" ) - PORT_DIPSETTING( 0x1000, "Once Every 2Cycles" ) - PORT_DIPSETTING( 0x2000, "Once Every 4Cycles" ) - PORT_DIPSETTING( 0x0000, "Completely Off" ) - PORT_DIPNAME( 0xc000, 0x4000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - - PORT_START - PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_SPECIAL ) /* battery power sensor */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( qdrmfgp2 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* 1P STOP */ - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* 2P STOP */ - - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* SERVICE */ - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) /* TEST */ - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START - PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0004, 0x0004, "Extended Service Menu & None Sounds Mode" ) /* and skipped initial checks. */ - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0000, "Initialize Backup RAM" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0a00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c00, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x0e00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0700, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0600, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0b00, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0300, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0d00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0500, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x0900, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Free_Play ) ) - - PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x3000, "All The Time" ) - PORT_DIPSETTING( 0x1000, "Once Every 2Cycles" ) - PORT_DIPSETTING( 0x2000, "Once Every 4Cycles" ) - PORT_DIPSETTING( 0x0000, "Completely Off" ) - PORT_DIPNAME( 0xc000, 0x4000, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc000, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) - - PORT_START - PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_SPECIAL ) /* battery power sensor */ - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -/************************************* - * - * Graphics layouts - * - *************************************/ - - -/************************************* - * - * IDE interfaces - * - *************************************/ - -static struct ide_interface ide_intf = -{ - ide_interrupt, -}; - -static struct ide_interface gp2_ide_intf = -{ - gp2_ide_interrupt, -}; - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static void sound_irq(void) -{ - if (control & 0x0001) - cpunum_set_input_line(0, 1, HOLD_LINE); -} - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1, - NULL, - sound_irq -}; - -static struct K054539interface gp2_k054539_interface = -{ - REGION_SOUND1 -}; - - -/************************************* - * - * Machine-specific init - * - *************************************/ - -static MACHINE_START( qdrmfgp ) -{ - state_save_register_global(control); - state_save_register_global(qdrmfgp_pal); - state_save_register_global(gp2_irq_control); - return 0; -} - -static MACHINE_RESET( qdrmfgp ) -{ - sndram = memory_region(REGION_SOUND1) + 0x100000; - - /* reset the IDE controller */ - gp2_irq_control = 0; - ide_controller_reset(0); -} - -static MACHINE_RESET( qdrmfgp2 ) -{ - sndram = memory_region(REGION_SOUND1) + 0x100000; - - /* sound irq (CCU? 240Hz) */ - timer_pulse(TIME_IN_HZ(18432000/76800), 0, gp2_timer_callback); - - /* reset the IDE controller */ - gp2_irq_control = 0; - ide_controller_reset(0); -} - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( qdrmfgp ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 32000000/2) /* 16.000 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(qdrmfgp_interrupt, 2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(qdrmfgp) - MDRV_MACHINE_RESET(qdrmfgp) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(qdrmfgp) - MDRV_VIDEO_UPDATE(qdrmfgp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 18432000/384) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( qdrmfgp2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 32000000/2) /* 16.000 MHz */ - MDRV_CPU_PROGRAM_MAP(gp2_readmem,gp2_writemem) - MDRV_CPU_VBLANK_INT(qdrmfgp2_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(qdrmfgp) - MDRV_MACHINE_RESET(qdrmfgp2) - MDRV_NVRAM_HANDLER(generic_1fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(qdrmfgp2) - MDRV_VIDEO_UPDATE(qdrmfgp) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 18432000/384) - MDRV_SOUND_CONFIG(gp2_k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( qdrmfgp ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "gq_460_b04.20e", 0x000000, 0x80000, CRC(293d8174) SHA1(cf507d0b29dab161190f0160c05c640f16306bae) ) - ROM_LOAD16_WORD_SWAP( "gq_460_a05.22e", 0x080000, 0x80000, CRC(4128cb3c) SHA1(4a16d85a66934a20afd074546de362c40a1ea785) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* TILEMAP */ - ROM_LOAD( "gq_460_a01.15e", 0x000000, 0x80000, CRC(6536b700) SHA1(47ffe0cfbf80810179560150b23d825fe1a5c5ca) ) - ROM_LOAD( "gq_460_a02.17e", 0x080000, 0x80000, CRC(ac01d675) SHA1(bf66433ace95f4ef14699d03add7cbc2e5d90eea) ) - - ROM_REGION( 0x460000, REGION_SOUND1, 0) /* SE SAMPLES + space for additional RAM */ - ROM_LOAD( "gq_460_a07.14h", 0x000000, 0x80000, CRC(67d8ea6b) SHA1(11af1b5a33de2a6e24823964d210bef193ecefe4) ) - ROM_LOAD( "gq_460_a06.12h", 0x080000, 0x80000, CRC(97ed5a77) SHA1(68600fd8d914451284cf181fb4bd5872860fb9ad) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "gq460a08", 0, MD5(b79eebad38782e6713ab0bd7560817a2) SHA1(0cae7769fbb603d3c3e3627dde84a6c5a9b1062d) ) -ROM_END - -ROM_START( qdrmfgp2 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) - ROM_LOAD16_WORD_SWAP( "ge_557_c05.20e", 0x000000, 0x80000, CRC(336df99f) SHA1(46fb36d40371761be0cfa17b34f28cc893a44a22) ) - ROM_LOAD16_WORD_SWAP( "ge_557_a06.22e", 0x080000, 0x80000, CRC(ad77e10f) SHA1(4a762a59fe3096d48e3cbf0da3bb0d75c5087e78) ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* TILEMAP */ - ROM_LOAD( "ge_557_a01.13e", 0x000000, 0x80000, CRC(c301d406) SHA1(5fad8cc611edd83380972abf37ec80561b9317a6) ) - ROM_LOAD( "ge_557_a02.15e", 0x080000, 0x80000, CRC(3bfe1e56) SHA1(9e4df512a804a96fcb545d4e0eb58b5421d65ea4) ) - - ROM_REGION( 0x460000, REGION_SOUND1, 0) /* SE SAMPLES + space for additional RAM */ - ROM_LOAD( "ge_557_a07.19h", 0x000000, 0x80000, CRC(7491e0c8) SHA1(6459ab5e7af052ef7a1c4ce01cd844c0f4319f2e) ) - ROM_LOAD( "ge_557_a08.19k", 0x080000, 0x80000, CRC(3da2b20c) SHA1(fdc2cdc27f3299f541944a78ce36ed33a7926056) ) - - DISK_REGION( REGION_DISKS ) /* IDE HARD DRIVE */ - DISK_IMAGE( "ge557a09", 0, MD5(df5039dc4e9dbb1f02ec408d839a42db) SHA1(5e836dbace34c9c1b107cce6a50071a4205a1534) ) -ROM_END - - -/************************************* - * - * Driver-specific init - * - *************************************/ - -static DRIVER_INIT( qdrmfgp ) -{ - /* spin up the hard disk */ - ide_controller_init(0, &ide_intf); -} - -static DRIVER_INIT( qdrmfgp2 ) -{ - /* spin up the hard disk */ - ide_controller_init(0, &gp2_ide_intf); -} - -/************************************* - * - * Game drivers - * - *************************************/ - -/* year rom clone machine inputs init */ -GAME( 1994, qdrmfgp, 0, qdrmfgp, qdrmfgp, qdrmfgp, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix (Japan)", 0 ) -GAME( 1995, qdrmfgp2, 0, qdrmfgp2, qdrmfgp2, qdrmfgp2, ROT0, "Konami", "Quiz Do Re Mi Fa Grand Prix2 - Shin-Kyoku Nyuukadayo (Japan)", 0 ) diff --git a/src/drivers/qix.c b/src/drivers/qix.c deleted file mode 100644 index 3339476f7..000000000 --- a/src/drivers/qix.c +++ /dev/null @@ -1,1306 +0,0 @@ -/*************************************************************************** - - Taito Qix hardware - - driver by John Butler, Ed Mueller, Aaron Giles - - Games supported: - * Qix (3 sets) - * Qix II Tournament - * Zookeeper (3 sets) - * Space Dungeon - * Kram (3 sets, one encrypted) - * The Electric Yo-Yo (2 sets) - * Slither (2 sets) - * Complex X - - Known bugs: - * none at this time - - Notes: - * the encrypted version of Kram doesn't have the protection MCU - * it's not clear what the 16R4 PAL does. - * Electric Yo-Yo was hanging in attract mode because of a synchronization issue. - This was fixed by increasing the interleave to 20. - The reason for the hang was that CPU #2 was reading location $8013 of shared - RAM after clearing it and before CPU #1 had put the correct value in it. - - TODO: - * The Kram encryption algorithm is not understood. I merely provide tables to - decrypt it, derived by comparison with the not encrypted versions. - * I applied the interleave change only to elecyoyo because these games are - really sensitive to timing, and kram's service mode was disturbed by it (the - high score and audit pages were broken). - -**************************************************************************** - - Memory map - -**************************************************************************** - -Video CPU: ----------- -All but Zookeeper: - -Address Dir Data Name Description ----------------- --- -------- ----------- ----------------------- -100000xxxxxxxxxx R/W xxxxxxxx DS0 dual port RAM (shared with video CPU) -100001xxxxxxxxxx R/W xxxxxxxx local RAM -100010---------x R/W xxxxxxxx DS2 6850 ACIA [1] -100011---------0 R/W -------- DS3 assert FIRQ on video CPU -100011---------1 R/W -------- DS3 FIRQ acknowledge -100100--------xx R/W xxxxxxxx DS4/U20 6821 PIA (sound control / data IRQ) -100101--------xx R/W xxxxxxxx DS5/U11 6821 PIA (coin / player 1 inputs) -100110-1------xx R/W xxxxxxxx DS6/U20 6821 PIA (spare / player 2 inputs) -100110xxxxxxxx-- R/W ----xxxx DS6/U24 PAL 16R4 (purpose unclear) -100111--------xx R/W xxxxxxxx DS7/U30 6821 PIA (player 2 inputs / coin control) -101xxxxxxxxxxxxx R xxxxxxxx program ROM -11xxxxxxxxxxxxxx R xxxxxxxx program ROM - -Zookeeper is almost the same, just the top bit of the address is inverted most of -the time to make space for more ROM. - -Address Dir Data Name Description ----------------- --- -------- ----------- ----------------------- -000000xxxxxxxxxx R/W xxxxxxxx DS0 dual port RAM (shared with video CPU) -000001xxxxxxxxxx R/W xxxxxxxx local RAM -000010---------x R/W xxxxxxxx DS2 6850 ACIA [1] -000011---------0 R/W -------- DS3 assert FIRQ on video CPU -000011---------1 R/W -------- DS3 FIRQ acknowledge -000100--------xx R/W xxxxxxxx DS4/U20 6821 PIA (sound control / data IRQ) -000101--------xx R/W xxxxxxxx DS5/U11 6821 PIA (coin / player 1 inputs) -000110-1------xx R/W xxxxxxxx DS6/U20 6821 PIA (spare / player 2 inputs) -100110xxxxxxxx-- R/W ----xxxx DS6/U24 PAL 16R4 (purpose unclear) -000111--------xx R/W xxxxxxxx DS7/U30 6821 PIA (player 2 inputs / coin control) -1xxxxxxxxxxxxxxx R xxxxxxxx program ROM - -[1] Diagnostic purposes only, not used - -Interrupts: - NMI not connected - IRQ generated by pia_3 - FIRQ generated by CPU #2 - - -Video CPU: ----------- - -Address Dir Data Name Description ----------------- --- -------- ----------- ----------------------- -0xxxxxxxxxxxxxxx R/W xxxxxxxx direct video RAM access -100000xxxxxxxxxx R/W xxxxxxxx VS0 dual port RAM (shared with data CPU) -100001xxxxxxxxxx R/W xxxxxxxx VS1 CMOS NVRAM -100010---------- W xxxxxx-- VS2 self test LEDs [1] -100010---------- W ------xx VS2 palette bank select [1] -100011---------0 R/W -------- VS3 assert FIRQ on data CPU -100011---------1 R/W -------- VS3 FIRQ acknowledge -100100xxxxxxxxxx R/W xxxxxxxx VS4 palette RAM (RRGGBBII) -100101--------00 R/W xxxxxxxx VS5 video RAM access at latched address -100101--------01 R/W xxxxxxxx video RAM access mask [2] -100101--------1x W xxxxxxxx VS5 video RAM address latch -100110---------- R xxxxxxxx VS6 current scanline -100111---------x R/W xxxxxxxx VS7 68A45 video controller -11xxxxxxxxxxxxxx R xxxxxxxx program ROMs - -Zookeeper has some more ROMs (banked): -100010--------01 W -----x-- ROM bank select [1] -101xxxxxxxxxxxxx R xxxxxxxx banked program ROMs - -[1] The Zookeeper extension is handled in the ROM expansion board, without - changes to the main board. This means that the ROM bank select address is - also a mirror for the LEDs/palette bank latch. That's why they used bit 2, - this way they could copy the palette bank in the low two bits when changing - the ROM bank and avoid problems. -[2] Slither only. This hardware feature is NOT present in the Taito games. - -Interrupts: - NMI not connected - IRQ not connected - FIRQ generated by CPU #1 - - -Sound CPU: ----------- -Slither doesn't have the third CPU and has different sound hardware. - -Address Dir Data Name Description ----------------- --- -------- ----------- ----------------------- -000000000xxxxxxx R/W xxxxxxxx 6802 internal RAM -0-1-----------xx R/W xxxxxxxx U7 6821 PIA (TMS5200 control) [2] -01------------xx R/W xxxxxxxx U8 6821 PIA (DAC, communication with data CPU) -1100------------ n.c. -1101xxxxxxxxxxxx R xxxxxxxx U25 program ROM [1] -1110xxxxxxxxxxxx R xxxxxxxx U26 program ROM [1] -1111xxxxxxxxxxxx R xxxxxxxx U27 program ROM [1] - -[1] In older games (qix, kram, elecyoyo) ROMs are half size and mapped at E800-FFFF -[2] Not used by any game - -Interrupts: - NMI not connected - IRQ generated by pia_4 - -**************************************************************************** - - Qix uses two 6809 CPUs: one for data and sound and the other for - video. Communication between the two CPUs is done using a 4K RAM - space at $8000 (for ZooKeeper the data cpu maps it at $0000 and the - video cpu at $8000) which both CPUs have direct access. FIRQs (fast - interrupts) are generated by each CPU to interrupt the other at - specific times. - - A third CPU, a 6802, is used for sample playback. It drives an 8-bit - DAC and according to the schematics a TMS5220 speech chip, which is - never accessed. ROM u27 is the only code needed. A sound command from - the data CPU causes an IRQ to fire on the 6802 and the sound playback - is started. - - The coin door switches and player controls are connected to the CPUs - by Mototola 6821 PIAs. These devices are memory mapped as shown below. - - The screen is 256x256 with eight bit pixels (64K). The screen is - divided into two halves each half mapped by the video CPU at - $0000-$7FFF. The high order bit of the address latch at $9402 - specifies which half of the screen is being accessed. - - Timing is critical in the hardware. Communications between the data, - video, and sound CPUs are all very sensitive. - - The address latch works as follows. When the video CPU accesses $9400, - the screen address is computed by using the values at $9402 (high byte) - and $9403 (low byte) to get a value between $0000-$FFFF. The value at - that location is either returned or written. - - The scan line at $9800 on the video CPU records where the scan line is - on the display (0-255). Several places in the ROM code wait until the - scan line reaches zero before continuing. - -**************************************************************************** - - QIX NONVOLATILE CMOS MEMORY MAP (CPU #2 -- Video) $8400-$87ff - $86A9 - $86AA: When CMOS is valid, these bytes are $55AA - $86AC - $86C3: AUDIT TOTALS -- 4 4-bit BCD digits per setting - (All totals default to: 0000) - $86AC: TOTAL PAID CREDITS - $86AE: LEFT COINS - $86B0: CENTER COINS - $86B2: RIGHT COINS - $86B4: PAID CREDITS - $86B6: AWARDED CREDITS - $86B8: % FREE PLAYS - $86BA: MINUTES PLAYED - $86BC: MINUTES AWARDED - $86BE: % FREE TIME - $86C0: AVG. GAME [SEC] - $86C2: HIGH SCORES - $86C4 - $86FF: High scores -- 10 scores/names, consecutive in memory - Six 4-bit BCD digits followed by 3 ascii bytes - (Default: 030000 QIX) - $8700 : LANGUAGE SELECT (Default: $32) - ENGLISH = $32 FRANCAIS = $33 ESPANOL = $34 DEUTSCH = $35 - $87D9 - $87DF: COIN SLOT PROGRAMMING -- 2 4-bit BCD digits per setting - $87D9: STANDARD COINAGE SETTING (Default: 01) - $87DA: COIN MULTIPLIERS LEFT (Default: 01) - $87DB: COIN MULTIPLIERS CENTER (Default: 04) - $87DC: COIN MULTIPLIERS RIGHT (Default: 01) - $87DD: COIN UNITS FOR CREDIT (Default: 01) - $87DE: COIN UNITS FOR BONUS (Default: 00) - $87DF: MINIMUM COINS (Default: 00) - $87E0 - $87EA: LOCATION PROGRAMMING -- 2 4-bit BCD digits per setting - $87E0: BACKUP HSTD [0000] (Default: 03) - $87E1: MAXIMUM CREDITS (Default: 10) - $87E2: NUMBER OF TURNS (Default: 03) - $87E3: THRESHOLD (Default: 75) - $87E4: TIME LINE (Default: 37) - $87E5: DIFFICULTY 1 (Default: 01) - $87E6: DIFFICULTY 2 (Default: 01) - $87E7: DIFFICULTY 3 (Default: 01) - $87E8: DIFFICULTY 4 (Default: 01) - $87E9: ATTRACT SOUND (Default: 01) - $87EA: TABLE MODE (Default: 00) - -***************************************************************************/ - -#include "driver.h" -#include "qix.h" -#include "machine/6821pia.h" -#include "sound/sn76496.h" -#include "sound/discrete.h" - - -/* Constants */ -#define MAIN_CLOCK_OSC 20000000 /* 20 MHz */ -#define SLITHER_CLOCK_OSC 21300000 /* 21.3 MHz */ -#define SOUND_CLOCK_OSC 7372800 /* 7.3728 MHz */ -#define COIN_CLOCK_OSC 4000000 /* 4 MHz */ - - - -/************************************* - * - * Data CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_data, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x8000, 0x83ff) AM_READ(qix_sharedram_r) - AM_RANGE(0x8400, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8800) AM_READ(MRA8_NOP) /* ACIA */ - AM_RANGE(0x8c00, 0x8c00) AM_READ(qix_video_firq_r) - AM_RANGE(0x8c01, 0x8c01) AM_READ(qix_data_firq_ack_r) - AM_RANGE(0x9000, 0x93ff) AM_READ(pia_3_r) - AM_RANGE(0x9400, 0x97ff) AM_READ(pia_0_r) - AM_RANGE(0x9900, 0x99ff) AM_READ(pia_1_r) - AM_RANGE(0x9c00, 0x9fff) AM_READ(pia_2_r) - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_data, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(qix_sharedram_w) AM_BASE(&qix_sharedram) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8c00, 0x8c00) AM_WRITE(qix_video_firq_w) - AM_RANGE(0x8c01, 0x8c01) AM_WRITE(qix_data_firq_ack_w) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(pia_3_w) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(qix_pia_0_w) - AM_RANGE(0x9900, 0x99ff) AM_WRITE(pia_1_w) - AM_RANGE(0x9c00, 0x9fff) AM_WRITE(pia_2_w) - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( zoo_readmem_data, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(qix_sharedram_r) - AM_RANGE(0x0400, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0800, 0x0800) AM_READ(MRA8_NOP) /* ACIA */ - AM_RANGE(0x0c00, 0x0c00) AM_READ(qix_video_firq_r) - AM_RANGE(0x0c01, 0x0c01) AM_READ(qix_data_firq_ack_r) - AM_RANGE(0x1000, 0x13ff) AM_READ(pia_3_r) - AM_RANGE(0x1400, 0x17ff) AM_READ(pia_0_r) - AM_RANGE(0x1900, 0x19ff) AM_READ(pia_1_r) - AM_RANGE(0x1c00, 0x1fff) AM_READ(pia_2_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( zoo_writemem_data, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(qix_sharedram_w) AM_BASE(&qix_sharedram) - AM_RANGE(0x0400, 0x07ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0c00, 0x0c00) AM_WRITE(qix_video_firq_w) - AM_RANGE(0x0c01, 0x0c01) AM_WRITE(qix_data_firq_ack_w) - AM_RANGE(0x1000, 0x13ff) AM_WRITE(pia_3_w) - AM_RANGE(0x1400, 0x17ff) AM_WRITE(qix_pia_0_w) - AM_RANGE(0x1900, 0x19ff) AM_WRITE(pia_1_w) - AM_RANGE(0x1c00, 0x1fff) AM_WRITE(pia_2_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Video CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_video, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(qix_videoram_r) - AM_RANGE(0x8000, 0x83ff) AM_READ(qix_sharedram_r) - AM_RANGE(0x8400, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8c00, 0x8c00) AM_READ(qix_data_firq_r) - AM_RANGE(0x8c01, 0x8c01) AM_READ(qix_video_firq_ack_r) - AM_RANGE(0x9000, 0x93ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9400, 0x9400) AM_READ(qix_addresslatch_r) - AM_RANGE(0x9800, 0x9800) AM_READ(qix_scanline_r) - AM_RANGE(0xa000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_video, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(qix_videoram_w) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(qix_sharedram_w) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x8800, 0x8800) AM_WRITE(qix_palettebank_w) - AM_RANGE(0x8c00, 0x8c00) AM_WRITE(qix_data_firq_w) - AM_RANGE(0x8c01, 0x8c01) AM_WRITE(qix_video_firq_ack_w) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(qix_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x9400, 0x9400) AM_WRITE(qix_addresslatch_w) - AM_RANGE(0x9402, 0x9403) AM_WRITE(MWA8_RAM) AM_BASE(&qix_videoaddress) - AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_RAM) /* Video controller */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( zoo_readmem_video, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(qix_videoram_r) - AM_RANGE(0x8000, 0x83ff) AM_READ(qix_sharedram_r) - AM_RANGE(0x8400, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8c00, 0x8c00) AM_READ(qix_data_firq_r) - AM_RANGE(0x8c01, 0x8c01) AM_READ(qix_video_firq_ack_r) - AM_RANGE(0x9000, 0x93ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9400, 0x9400) AM_READ(qix_addresslatch_r) - AM_RANGE(0x9800, 0x9800) AM_READ(qix_scanline_r) - AM_RANGE(0xa000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( zoo_writemem_video, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(qix_videoram_w) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(qix_sharedram_w) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x8800, 0x8800) AM_WRITE(qix_palettebank_w) - AM_RANGE(0x8801, 0x8801) AM_WRITE(zoo_bankswitch_w) - AM_RANGE(0x8c00, 0x8c00) AM_WRITE(qix_data_firq_w) - AM_RANGE(0x8c01, 0x8c01) AM_WRITE(qix_video_firq_ack_w) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(qix_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x9400, 0x9400) AM_WRITE(qix_addresslatch_w) - AM_RANGE(0x9402, 0x9403) AM_WRITE(MWA8_RAM) AM_BASE(&qix_videoaddress) - AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_RAM) /* Video controller */ - AM_RANGE(0xa000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x2003) AM_READ(pia_5_r) - AM_RANGE(0x4000, 0x4003) AM_READ(pia_4_r) - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x2003) AM_WRITE(pia_5_w) - AM_RANGE(0x4000, 0x4003) AM_WRITE(pia_4_w) - AM_RANGE(0xd000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Coin CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READ(qix_68705_portA_r) - AM_RANGE(0x0001, 0x0001) AM_READ(qix_68705_portB_r) - AM_RANGE(0x0002, 0x0002) AM_READ(qix_68705_portC_r) - AM_RANGE(0x0010, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_WRITE(qix_68705_portA_w) AM_BASE(&qix_68705_port_out) - AM_RANGE(0x0001, 0x0001) AM_WRITE(qix_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_WRITE(qix_68705_portC_w) - AM_RANGE(0x0004, 0x0007) AM_WRITE(MWA8_RAM) AM_BASE(&qix_68705_ddr) - AM_RANGE(0x0010, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Input port definitions - * - *************************************/ - -#define COIN_PORT \ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Advance") PORT_CODE(KEYCODE_F1) \ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Next line") PORT_CODE(KEYCODE_F2) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Slew Up") PORT_CODE(KEYCODE_F5) \ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Slew Down") PORT_CODE(KEYCODE_F6) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) - - -INPUT_PORTS_START( qix ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (PLAYER 2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( sdungeon ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (PLAYER 2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( elecyoyo ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (PLAYER 2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( kram ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (PLAYER 2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( zookeep ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (PLAYER 2) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( slither ) - PORT_START /* PIA 0 Port A (PLAYER 1) */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* PIA 0 Port B (COIN) */ - PORT_SERVICE(0x01, IP_ACTIVE_LOW ) - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) - - PORT_START /* PIA 3 Port A (PLAYER 2) */ - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START /* PIA 1 Port A (TRACKBALL L/R) */ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) - - PORT_START /* PIA 2 Port A (TRACKBALL U/D) */ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* PIA 1 Port A (TRACKBALL L/R) */ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_COCKTAIL - - PORT_START /* PIA 2 Port A (TRACKBALL U/D) */ - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_COCKTAIL -INPUT_PORTS_END - - -INPUT_PORTS_START( complexx ) - PORT_START /* PIA 0 Port A (Left Stick) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - -/* 0x80 isn't scanned unless the difficulty in the game is below 4. I -decided not to map this button, so if you set the difficulty that low, -you can't fire. If I do map that button, and you set difficulty below 4 -and hit this fire button without pressing the second stick in any -direction it fires up. If you're pressing left it fires right, press -right it fires left and press down it fires down. That's just too wacky. -I gotta think it's not supposed to be hooked up at all and if the -difficulty is that low, you just can't shoot, so I think it should stay -as-is. Tim Lindquist 1-17-03 */ - - PORT_START /* PIA 0 Port B (COIN) */ - COIN_PORT - - PORT_START /* PIA 1 Port A (SPARE) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 1 Port B (PLAYER 1/2) */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PIA 2 Port A (Right Stick) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY -INPUT_PORTS_END - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( qix ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M6809, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_data,writemem_data) - MDRV_CPU_VBLANK_INT(qix_vblank_start,1) - - MDRV_CPU_ADD_TAG("video", M6809, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_video,writemem_video) - - MDRV_CPU_ADD_TAG("sound", M6802, SOUND_CLOCK_OSC/2/4) /* 0.92 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(qix) - MDRV_MACHINE_RESET(qix) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 8, 247) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(qix) - MDRV_VIDEO_UPDATE(qix) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(qix_discrete_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mcu ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(qix) - - MDRV_CPU_ADD(M68705, COIN_CLOCK_OSC/4) /* 1.00 MHz */ - MDRV_CPU_PROGRAM_MAP(mcu_readmem,mcu_writemem) - - MDRV_MACHINE_START(qixmcu) - MDRV_MACHINE_RESET(qixmcu) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( elecyoyo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mcu) - - MDRV_INTERLEAVE(100) // fixes hang in attract mode -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( zookeep ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(mcu) - - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(zoo_readmem_data,zoo_writemem_data) - - MDRV_CPU_MODIFY("video") - MDRV_CPU_PROGRAM_MAP(zoo_readmem_video,zoo_writemem_video) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( slither ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(qix) - - MDRV_CPU_REPLACE("main", M6809, SLITHER_CLOCK_OSC/4/4) /* 1.34 MHz */ - MDRV_CPU_REPLACE("video", M6809, SLITHER_CLOCK_OSC/4/4) /* 1.34 MHz */ - MDRV_CPU_REMOVE("sound") - - MDRV_MACHINE_START(slither) - MDRV_MACHINE_RESET(slither) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 255) - - /* sound hardware */ - MDRV_SPEAKER_REMOVE("left") - MDRV_SPEAKER_REMOVE("right") - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_REPLACE("discrete", SN76496, SLITHER_CLOCK_OSC/4/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(SN76496, SLITHER_CLOCK_OSC/4/4) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( qix ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "u12", 0xc000, 0x0800, CRC(aad35508) SHA1(5fa72e00b4373de21e27a86b49a44a9769f769f4) ) - ROM_LOAD( "u13", 0xc800, 0x0800, CRC(46c13504) SHA1(19c084c38b75f14bf5094b317afeecaca6870f7a) ) - ROM_LOAD( "u14", 0xd000, 0x0800, CRC(5115e896) SHA1(8359a1700fff7a38e8ea4f92a4f18bc628cf1cb1) ) - ROM_LOAD( "u15", 0xd800, 0x0800, CRC(ccd52a1b) SHA1(86d134cd769ef12820638b96a4ffedd8b15dffd2) ) - ROM_LOAD( "u16", 0xe000, 0x0800, CRC(cd1c36ee) SHA1(b379b1fe3109947a12c9683cd0c2400c2ee845b3) ) - ROM_LOAD( "u17", 0xe800, 0x0800, CRC(1acb682d) SHA1(a2c60964e8d838d09662f8a670c6da41ba850df9) ) - ROM_LOAD( "u18", 0xf000, 0x0800, CRC(de77728b) SHA1(8e183bb27858aad9a996e4a2e5a95f0145d1f5b4) ) - ROM_LOAD( "u19", 0xf800, 0x0800, CRC(c0994776) SHA1(9452a98c78a038679c4e58f4a9983adb28ea5e78) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u4", 0xc800, 0x0800, CRC(5b906a09) SHA1(84a2e817d6718e0276fcea702811a91bc054a670) ) - ROM_LOAD( "u5", 0xd000, 0x0800, CRC(254a3587) SHA1(66045c71cc1d04d4e03c728e578f570fbf7c650d) ) - ROM_LOAD( "u6", 0xd800, 0x0800, CRC(ace30389) SHA1(50c6275d13cfbca7750d5a3e725faedba7574e04) ) - ROM_LOAD( "u7", 0xe000, 0x0800, CRC(8ebcfa7c) SHA1(21ccf5e74424ab5470473d1059ee6a43d144f685) ) - ROM_LOAD( "u8", 0xe800, 0x0800, CRC(b8a3c8f9) SHA1(32ba771913ef44b1133ecfaedaae7f96dcc84343) ) - ROM_LOAD( "u9", 0xf000, 0x0800, CRC(26cbcd55) SHA1(2e55e222f850548cd1d461ab5337e98dd817b567) ) - ROM_LOAD( "u10", 0xf800, 0x0800, CRC(568be942) SHA1(8b6a01d983d355a64372fa76af810ab53e09d5df) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u27", 0xf800, 0x0800, CRC(f3782bd0) SHA1(bfc6d29f9668e02857453e96c005c81568ae931d) ) -ROM_END - - -ROM_START( qixa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "qu12", 0xc000, 0x0800, CRC(1c55b44d) SHA1(6385e5e484e24cf396c14de86344170639c3cc65) ) - ROM_LOAD( "qu13", 0xc800, 0x0800, CRC(20279e8c) SHA1(722da239636de3fe40318768ddbe687b19afcdb6) ) - ROM_LOAD( "qu14", 0xd000, 0x0800, CRC(bafe3ce3) SHA1(648a54545a1b545c82c0ace5eb1ce17af5ea7391) ) - /* d800-dfff empty */ - ROM_LOAD( "qu16", 0xe000, 0x0800, CRC(db560753) SHA1(4acbe17f1e555f45606ddec197c5ab691ff46d39) ) - ROM_LOAD( "qu17", 0xe800, 0x0800, CRC(8c7aeed8) SHA1(b7da2b0f34f72f9853cdf6ce55e604b09fcf4728) ) - ROM_LOAD( "qu18", 0xf000, 0x0800, CRC(353be980) SHA1(a50e02fcc69771a13b238aa0e8dc3c56b01a58d5) ) - ROM_LOAD( "qu19", 0xf800, 0x0800, CRC(f46a69ca) SHA1(dacb53c0318445da3fbb86f9a45914c5b7a4c4a1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "qu3", 0xc000, 0x0800, CRC(8b4c0ef0) SHA1(6d18d1052f342e3b3313f2174b20f2a179e2c6bd) ) - ROM_LOAD( "qu4", 0xc800, 0x0800, CRC(66a5c260) SHA1(8cce71bcd3a432650f0d0c94f3a2151ba8154220) ) - ROM_LOAD( "qu5", 0xd000, 0x0800, CRC(70160ea3) SHA1(a411130c5c669a181564369a8921b26e0f0b5450) ) - /* d800-dfff empty */ - ROM_LOAD( "qu7", 0xe000, 0x0800, CRC(d6733019) SHA1(89e9e63c91e044fe1c6ce883e3ec18eec0cb39d3) ) - ROM_LOAD( "qu8", 0xe800, 0x0800, CRC(66870dcc) SHA1(9f926390f5ce86d7c1bf55b75dbfb34119425c46) ) - ROM_LOAD( "qu9", 0xf000, 0x0800, CRC(c99bf94d) SHA1(7b6fa6e1cf0f131909d44694c261b1cc2de65003) ) - ROM_LOAD( "qu10", 0xf800, 0x0800, CRC(88b45037) SHA1(e2e5fefe377def3f784026b921527898af8b83a9) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u27", 0xf800, 0x0800, CRC(f3782bd0) SHA1(bfc6d29f9668e02857453e96c005c81568ae931d) ) -ROM_END - - -ROM_START( qixb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "lk14.bin", 0xc000, 0x1000, CRC(6d164986) SHA1(c805abe1a441e10080ceca8ba547835bafb61bcc) ) - ROM_LOAD( "lk15.bin", 0xd000, 0x1000, CRC(16c6ce0f) SHA1(b8091d2db476d2acb4b3f0789e1f155336be9b39) ) - ROM_LOAD( "lk16.bin", 0xe000, 0x1000, CRC(698b1f9c) SHA1(7e7637ca5985f072e821e16f8b65aedb87df136b) ) - ROM_LOAD( "lk17.bin", 0xf000, 0x1000, CRC(7e3adde6) SHA1(dfe66317f87e10919f1ea4b4d565703e73039821) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "lk10.bin", 0xc000, 0x1000, CRC(7eac67d0) SHA1(ca5938422aaa1e380af0afa505876d4682ac69b9) ) - ROM_LOAD( "lk11.bin", 0xd000, 0x1000, CRC(90ccbb6a) SHA1(b65592384597dc2aafc02f49b6b6f477c9112580) ) - ROM_LOAD( "lk12.bin", 0xe000, 0x1000, CRC(be9b9f7d) SHA1(e681bdb9aa8b8c31af1c14e23d0f420577d6db63) ) - ROM_LOAD( "lk13.bin", 0xf000, 0x1000, CRC(51c9853b) SHA1(29a5221f2af866d2ee73110409ecddc2c96404fd) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u27", 0xf800, 0x0800, CRC(f3782bd0) SHA1(bfc6d29f9668e02857453e96c005c81568ae931d) ) -ROM_END - - -ROM_START( qix2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "u12.rmb", 0xc000, 0x0800, CRC(484280fd) SHA1(a60c1a278e519721294b2486dc817d248d19c3be) ) - ROM_LOAD( "u13.rmb", 0xc800, 0x0800, CRC(3d089fcb) SHA1(f4f31134c9c15160d2d15cb41296dfec6f2dfe37) ) - ROM_LOAD( "u14.rmb", 0xd000, 0x0800, CRC(362123a9) SHA1(3e2a853f6960f2d5fdcdef8dec8ccf5aad449548) ) - ROM_LOAD( "u15.rmb", 0xd800, 0x0800, CRC(60f3913d) SHA1(a97b658fe2c58b00c2749072828b2e0032894915) ) - ROM_LOAD( "u16.rmb", 0xe000, 0x0800, CRC(cc139e34) SHA1(0ed3e7179b0cbaa31fa91e1ed862b86f5032919a) ) - ROM_LOAD( "u17.rmb", 0xe800, 0x0800, CRC(cf31dc49) SHA1(71c089d827ab61ba69e5e95b7e53220763786df9) ) - ROM_LOAD( "u18.rmb", 0xf000, 0x0800, CRC(1f91ed7a) SHA1(85bb5370a244719663a4f859f66860613aa2b86e) ) - ROM_LOAD( "u19.rmb", 0xf800, 0x0800, CRC(68e8d5a6) SHA1(d09252c393be2fdaf3b9b9f477c79f721d15943f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u3.rmb", 0xc000, 0x0800, CRC(19cebaca) SHA1(7d7e79ab0920952cf7618567c9c65397535b6d4f) ) - ROM_LOAD( "u4.rmb", 0xc800, 0x0800, CRC(6cfb4185) SHA1(6545dece8eaeb716877aa6e7b24c21f6e5991451) ) - ROM_LOAD( "u5.rmb", 0xd000, 0x0800, CRC(948f53f3) SHA1(db6eddec8ba41335316d80b6f97e932bf91139af) ) - ROM_LOAD( "u6.rmb", 0xd800, 0x0800, CRC(8630120e) SHA1(14a020fd1bff4acbb034883e33130adda85884e5) ) - ROM_LOAD( "u7.rmb", 0xe000, 0x0800, CRC(bad037c9) SHA1(17218c31895b1547b71d2d9d2b6a93d2e5d73bdd) ) - ROM_LOAD( "u8.rmb", 0xe800, 0x0800, CRC(3159bc00) SHA1(479a69bfe5af48d5ce63978265ce59f79c25749f) ) - ROM_LOAD( "u9.rmb", 0xf000, 0x0800, CRC(e80e9b1d) SHA1(66ef22a26df3f766ae813213473b9ac4b35b01f6) ) - ROM_LOAD( "u10.rmb", 0xf800, 0x0800, CRC(9a55d360) SHA1(fc5f8c853dcc573f6b36dbdd63e5d1edba88bce1) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "u27", 0xf800, 0x0800, CRC(f3782bd0) SHA1(bfc6d29f9668e02857453e96c005c81568ae931d) ) -ROM_END - - -ROM_START( sdungeon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sd14.u14", 0xa000, 0x1000, CRC(7024b55a) SHA1(1e21cb2a9cba8c0a3684e137ff78d4b331d86922) ) - ROM_LOAD( "sd15.u15", 0xb000, 0x1000, CRC(a3ac9040) SHA1(f033c21983e87688884180c2336d766a0fa49765) ) - ROM_LOAD( "sd16.u16", 0xc000, 0x1000, CRC(cc20b580) SHA1(53e34405f1f39bce305f199d09d3a32c10c0c616) ) - ROM_LOAD( "sd17.u17", 0xd000, 0x1000, CRC(4663e4b8) SHA1(519b0e730db2047ebe2cce0953eda53e851f8fac) ) - ROM_LOAD( "sd18.u18", 0xe000, 0x1000, CRC(7ef1ffc0) SHA1(eca49a916b6b51b91ed45ff89bb37a67fee7db0e) ) - ROM_LOAD( "sd19.u19", 0xf000, 0x1000, CRC(7b20b7ac) SHA1(554e29adc75cc465ea603a628f9d60d6d903e7ab) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "sd05.u5", 0xa000, 0x1000, CRC(0b2bf48e) SHA1(51bfb35521864f09a20b38aeeb98ab1399d139a5) ) - ROM_LOAD( "sd06.u6", 0xb000, 0x1000, CRC(f86db512) SHA1(7e7ae64db7821f18a5eefdcc7a2e1abc37abd3ac) ) - ROM_LOAD( "sd07.u7", 0xc000, 0x1000, CRC(7b796831) SHA1(cd3d8975e99886f51b27530f0e261f749aadee73) ) - ROM_LOAD( "sd08.u8", 0xd000, 0x1000, CRC(5fbe7068) SHA1(2884909156179b81181b908431de15a7c586f619) ) - ROM_LOAD( "sd09.u9", 0xe000, 0x1000, CRC(89bc51ea) SHA1(57ad4806f0b39af3b3cde91cef16234fc82f21d0) ) - ROM_LOAD( "sd10.u10", 0xf000, 0x1000, CRC(754de734) SHA1(a37b8362a592f5d1c0aeaa525fc003f6060fc12b) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "sd26.u26", 0xf000, 0x0800, CRC(3df8630d) SHA1(5f87c4d49799d424ce36469bf2b36b14c782fcd8) ) - ROM_LOAD( "sd27.u27", 0xf800, 0x0800, CRC(0386f351) SHA1(24ba6aba7c62c313397d743d18093c646f4a6526) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "sd101", 0x0000, 0x0800, CRC(e255af9a) SHA1(2410d3b7dec8e72a93d71c824c9403a6d96b9e8c) ) -ROM_END - - -ROM_START( elecyoyo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "yy14", 0xa000, 0x1000, CRC(0d2edcb9) SHA1(36e1a1aa81111f38e1c06a8174e7de406478cc67) ) - ROM_LOAD( "yy15", 0xb000, 0x1000, CRC(a91f01e3) SHA1(7818299d25a0816b856e83fae02d8019e5e8b4a3) ) - ROM_LOAD( "yy16-1", 0xc000, 0x1000, CRC(2710f360) SHA1(4a6210b07618fba261c38b7bf9a779598dd6bb3c) ) - ROM_LOAD( "yy17", 0xd000, 0x1000, CRC(25fd489d) SHA1(ca7b8d1bcbc223fc0706c8f2e9f02821519b75e4) ) - ROM_LOAD( "yy18", 0xe000, 0x1000, CRC(0b6661c0) SHA1(3e24acbfea1a3b83223d780ea34c83759a751175) ) - ROM_LOAD( "yy19-1", 0xf000, 0x1000, CRC(95b8b244) SHA1(2852dcfc6a638118ee7fe60b957d8aa9a5a8984c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "yy5", 0xa000, 0x1000, CRC(3793fec5) SHA1(d31f3ba6364755c98beb814b5e7d5541e8b4e1a0) ) - ROM_LOAD( "yy6", 0xb000, 0x1000, CRC(2e8b1265) SHA1(6fb67b6a5b627bcbd10c72ac8c9e4d9f4dd7860f) ) - ROM_LOAD( "yy7", 0xc000, 0x1000, CRC(20f93411) SHA1(126c27442a4e35d054a236c41930603241d08ccf) ) - ROM_LOAD( "yy8", 0xd000, 0x1000, CRC(926f90c8) SHA1(dbdfc0e9184a4d9d44d04fdb8fed19b35a8edadc) ) - ROM_LOAD( "yy9", 0xe000, 0x1000, CRC(2f999480) SHA1(582baf285cadf8431ff80f5b63a02fbbefb62e45) ) - ROM_LOAD( "yy10", 0xf000, 0x1000, CRC(b31d20e2) SHA1(e2ba4e6b81a02c3c02353774eb63a72cdfe5f2c3) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "yy27", 0xf800, 0x0800, CRC(5a2aa0f3) SHA1(16c7c2db39f33ea3506e07312352ccbfe5528fbd) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "yy101", 0x0000, 0x0800, CRC(3cf13038) SHA1(29c1b309d9046087a50ca78a5f7cba694271af26) ) -ROM_END - - -ROM_START( elecyoy2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "yy14", 0xa000, 0x1000, CRC(0d2edcb9) SHA1(36e1a1aa81111f38e1c06a8174e7de406478cc67) ) - ROM_LOAD( "yy15", 0xb000, 0x1000, CRC(a91f01e3) SHA1(7818299d25a0816b856e83fae02d8019e5e8b4a3) ) - ROM_LOAD( "yy16", 0xc000, 0x1000, CRC(cab19f3a) SHA1(df41649a800b77f046edb6623f65d100f6a8ef5f) ) - ROM_LOAD( "yy17", 0xd000, 0x1000, CRC(25fd489d) SHA1(ca7b8d1bcbc223fc0706c8f2e9f02821519b75e4) ) - ROM_LOAD( "yy18", 0xe000, 0x1000, CRC(0b6661c0) SHA1(3e24acbfea1a3b83223d780ea34c83759a751175) ) - ROM_LOAD( "yy19", 0xf000, 0x1000, CRC(d0215d2e) SHA1(816131bc272252df6cea1b84a42750a71ce4f427) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "yy5", 0xa000, 0x1000, CRC(3793fec5) SHA1(d31f3ba6364755c98beb814b5e7d5541e8b4e1a0) ) - ROM_LOAD( "yy6", 0xb000, 0x1000, CRC(2e8b1265) SHA1(6fb67b6a5b627bcbd10c72ac8c9e4d9f4dd7860f) ) - ROM_LOAD( "yy7", 0xc000, 0x1000, CRC(20f93411) SHA1(126c27442a4e35d054a236c41930603241d08ccf) ) - ROM_LOAD( "yy8", 0xd000, 0x1000, CRC(926f90c8) SHA1(dbdfc0e9184a4d9d44d04fdb8fed19b35a8edadc) ) - ROM_LOAD( "yy9", 0xe000, 0x1000, CRC(2f999480) SHA1(582baf285cadf8431ff80f5b63a02fbbefb62e45) ) - ROM_LOAD( "yy10", 0xf000, 0x1000, CRC(b31d20e2) SHA1(e2ba4e6b81a02c3c02353774eb63a72cdfe5f2c3) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "yy27", 0xf800, 0x0800, CRC(5a2aa0f3) SHA1(16c7c2db39f33ea3506e07312352ccbfe5528fbd) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "yy101", 0x0000, 0x0800, CRC(3cf13038) SHA1(29c1b309d9046087a50ca78a5f7cba694271af26) ) -ROM_END - - -ROM_START( kram ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "ks14-1", 0xa000, 0x1000, CRC(fe69ac79) SHA1(6df0f98e6c0901c058123988bf22a6dd9f0a1fac) ) - ROM_LOAD( "ks15", 0xb000, 0x1000, CRC(4b2c175e) SHA1(4f9d4dcc78a12e994d499b182c8229d5fa63b805) ) - ROM_LOAD( "ks16", 0xc000, 0x1000, CRC(9500a05d) SHA1(18e0107111f79ba5dc6d568e3a6e7e7778955d0b) ) - ROM_LOAD( "ks17", 0xd000, 0x1000, CRC(c752a3a1) SHA1(1d03ea97b9ca6fa3d4c43ac867ab737439d987af) ) - ROM_LOAD( "ks18", 0xe000, 0x1000, CRC(79158b03) SHA1(0d4873471b5b7ace0de8ec421ff3d74650790f7e) ) - ROM_LOAD( "ks19-1", 0xf000, 0x1000, CRC(759ea6ce) SHA1(7962f713dd93c73475fa1f64635d8e965336484b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "ks5", 0xa000, 0x1000, CRC(1c472080) SHA1(a85400be562ef6b817f8a654f29d966d3a198ab4) ) - ROM_LOAD( "ks6", 0xb000, 0x1000, CRC(b8926622) SHA1(e25a8b2ff192f6ab0328fd7b3c58d638342f79e2) ) - ROM_LOAD( "ks7", 0xc000, 0x1000, CRC(c98a7485) SHA1(e310d53ae65d456e12a2475e9ac578592b0e82ba) ) - ROM_LOAD( "ks8", 0xd000, 0x1000, CRC(1127c4e4) SHA1(d78a8a964aac29fb71a55acf7956355724a234eb) ) - ROM_LOAD( "ks9", 0xe000, 0x1000, CRC(d3bc8b5e) SHA1(2c5b882c54bdb48f9a76abfe734b99390b89d76c) ) - ROM_LOAD( "ks10", 0xf000, 0x1000, CRC(e0426444) SHA1(3c4ea66f8ee907452e67aeb7cfaa15bee02b004b) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "ks27", 0xf800, 0x0800, CRC(c46530c8) SHA1(d2df3f2228a5cff7d7b04b5bbbc4820d2fe84d8d) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "ks101.dat", 0x0000, 0x0800, CRC(e53d97b7) SHA1(acfc3a5c5e73bd2d37e04ac357043b708d1982de) ) -ROM_END - - -ROM_START( kram2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "ks14", 0xa000, 0x1000, CRC(a2eac1ff) SHA1(128f83b1760492cbb272828ad8c67ea9a5db862a) ) - ROM_LOAD( "ks15", 0xb000, 0x1000, CRC(4b2c175e) SHA1(4f9d4dcc78a12e994d499b182c8229d5fa63b805) ) - ROM_LOAD( "ks16", 0xc000, 0x1000, CRC(9500a05d) SHA1(18e0107111f79ba5dc6d568e3a6e7e7778955d0b) ) - ROM_LOAD( "ks17", 0xd000, 0x1000, CRC(c752a3a1) SHA1(1d03ea97b9ca6fa3d4c43ac867ab737439d987af) ) - ROM_LOAD( "ks18", 0xe000, 0x1000, CRC(79158b03) SHA1(0d4873471b5b7ace0de8ec421ff3d74650790f7e) ) - ROM_LOAD( "ks19", 0xf000, 0x1000, CRC(053c5e09) SHA1(cd6e5b54abf73c1ccf318ca18fceb56b51a3847f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "ks5", 0xa000, 0x1000, CRC(1c472080) SHA1(a85400be562ef6b817f8a654f29d966d3a198ab4) ) - ROM_LOAD( "ks6", 0xb000, 0x1000, CRC(b8926622) SHA1(e25a8b2ff192f6ab0328fd7b3c58d638342f79e2) ) - ROM_LOAD( "ks7", 0xc000, 0x1000, CRC(c98a7485) SHA1(e310d53ae65d456e12a2475e9ac578592b0e82ba) ) - ROM_LOAD( "ks8", 0xd000, 0x1000, CRC(1127c4e4) SHA1(d78a8a964aac29fb71a55acf7956355724a234eb) ) - ROM_LOAD( "ks9", 0xe000, 0x1000, CRC(d3bc8b5e) SHA1(2c5b882c54bdb48f9a76abfe734b99390b89d76c) ) - ROM_LOAD( "ks10", 0xf000, 0x1000, CRC(e0426444) SHA1(3c4ea66f8ee907452e67aeb7cfaa15bee02b004b) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "ks27", 0xf800, 0x0800, CRC(c46530c8) SHA1(d2df3f2228a5cff7d7b04b5bbbc4820d2fe84d8d) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "ks101.dat", 0x0000, 0x0800, CRC(e53d97b7) SHA1(acfc3a5c5e73bd2d37e04ac357043b708d1982de) ) -ROM_END - - -ROM_START( kram3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* encrypted */ - ROM_LOAD( "kr-u14", 0xa000, 0x1000, CRC(02c1bd1e) SHA1(5f13f32ca2da0e93ed43b052c8c33af9ac67cb6c) ) - ROM_LOAD( "kr-u15", 0xb000, 0x1000, CRC(46b3ff33) SHA1(7db45971972df144a21fee4cc015b0190b502e12) ) - ROM_LOAD( "kr-u16", 0xc000, 0x1000, CRC(f202b9cf) SHA1(baf27507611c3029e2dfb1a4ff86e6fe17171246) ) - ROM_LOAD( "kr-u17", 0xd000, 0x1000, CRC(257cea23) SHA1(f9503c4a0f94d35a55033c02dda4d03737eedb90) ) - ROM_LOAD( "kr-u18", 0xe000, 0x1000, CRC(da3aed8c) SHA1(0107d58fa006a39b47513381aead760190abef35) ) - ROM_LOAD( "kr-u19", 0xf000, 0x1000, CRC(496ab571) SHA1(30e12b31ffd70a8a1ce23c845e89170ca3cabaa5) ) - - ROM_REGION( 2*0x10000, REGION_CPU2, 0 ) /* encrypted */ - ROM_LOAD( "kr-u5", 0xa000, 0x1000, CRC(9e63c2bc) SHA1(f61a2b93ed322b62818f31fddb324c666380eff7) ) - ROM_LOAD( "kr-u6", 0xb000, 0x1000, CRC(a0ff1244) SHA1(5bc3f3f8caac0dfc8c1381d34e5b8ef5c8202982) ) - ROM_LOAD( "kr-u7", 0xc000, 0x1000, CRC(20a15024) SHA1(094951c4cd06e32af2cb2faec04c31d55ade6b7b) ) - ROM_LOAD( "ks8", 0xd000, 0x1000, CRC(1127c4e4) SHA1(d78a8a964aac29fb71a55acf7956355724a234eb) ) - ROM_LOAD( "ks9", 0xe000, 0x1000, CRC(d3bc8b5e) SHA1(2c5b882c54bdb48f9a76abfe734b99390b89d76c) ) - ROM_LOAD( "kr-u10", 0xf000, 0x1000, CRC(0a8adbd8) SHA1(8ab806108c68aa2740d9e157dd215b371e81c482) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "ks27", 0xf800, 0x0800, CRC(c46530c8) SHA1(d2df3f2228a5cff7d7b04b5bbbc4820d2fe84d8d) ) - - ROM_REGION( 0x5474, REGION_USER1, 0) /* decryption table */ - ROM_LOAD( "krampatch1.bin", 0, 0x5474, CRC(962dabc9) SHA1(0be692597aa895f298d8c7c6acbf84431ab1412a) ) - - ROM_REGION( 0x2764, REGION_USER2, 0) /* decryption table */ - ROM_LOAD( "krampatch2.bin", 0, 0x2764, CRC(ea26b72a) SHA1(c4f6aaf9c2ab22ef8305b57728c602e1d4d74980) ) -ROM_END - - -ROM_START( zookeep ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) ) - ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) ) - ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) ) - ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) ) - ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) ) - ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) ) - ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) ) - ROM_LOAD( "za19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) ) - - ROM_REGION( 0x12000, REGION_CPU2, 0 ) - ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) ) - ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) ) - ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) ) - ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) ) - - ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) ) - ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) ) - ROM_LOAD( "za9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) ) - ROM_LOAD( "za10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) ) - ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) ) - ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) ) -ROM_END - - -ROM_START( zookeep2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) ) - ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) ) - ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) ) - ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) ) - ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) ) - ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) ) - ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) ) - ROM_LOAD( "za19.red", 0xf000, 0x1000, CRC(ec01760e) SHA1(169ab9d3a0abe325d960f9ed358258b3d6fcd4be) ) - - ROM_REGION( 0x12000, REGION_CPU2, 0 ) - ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) ) - ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) ) - ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) ) - ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) ) - - ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) ) - ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) ) - ROM_LOAD( "za9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) ) - ROM_LOAD( "za10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) ) - ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) ) - ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) ) -ROM_END - - -ROM_START( zookeep3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) ) - ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) ) - ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) ) - ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) ) - ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) ) - ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) ) - ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) ) - ROM_LOAD( "za19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) ) - - ROM_REGION( 0x12000, REGION_CPU2, 0 ) - ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) ) - ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) ) - ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) ) - ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) ) - - ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) ) - ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) ) - ROM_LOAD( "zv35.9", 0x0e000, 0x1000, CRC(d14123b7) SHA1(5d35bffd2203225937bb83598ffdc31a46a1dbca) ) - ROM_LOAD( "zv36.10", 0x0f000, 0x1000, CRC(23705777) SHA1(952cd8d9ee00268bff2022b2428b1dbfab061254) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) ) - ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) ) - ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) - ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) ) -ROM_END - - -ROM_START( slither ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "u31.cpu", 0xd800, 0x0800, CRC(3dfff970) SHA1(ee50840e26aa7be226dbe9a32a8344bb75b8de07) ) - ROM_LOAD( "u30.cpu", 0xe000, 0x0800, CRC(8cbc5af8) SHA1(3d563d0bbbce007bd6db6d620e1b0996c67029f6) ) - ROM_LOAD( "u29.cpu", 0xe800, 0x0800, CRC(98c14510) SHA1(7a39b4b691883ad5d079a5c199b93986071c4a49) ) - ROM_LOAD( "u28.cpu", 0xf000, 0x0800, CRC(2762f612) SHA1(2f094832b199d8514ed04c517fca828c75ac7bfa) ) - ROM_LOAD( "u27.cpu", 0xf800, 0x0800, CRC(9306d5b1) SHA1(e5a2c613b1e083b70d63e24dd45472364930398a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u41.cpu", 0xd000, 0x0800, CRC(e4c60a57) SHA1(5ce9fe3d84b7a5ded372f5c3fc14a335a37ad472) ) - ROM_LOAD( "u40.cpu", 0xd800, 0x0800, CRC(5dcec622) SHA1(4c00b91106d1e505bdbd3aefb46bfb1a17f14fc1) ) - ROM_LOAD( "u39.cpu", 0xe000, 0x0800, CRC(69829c2a) SHA1(5ea1f7e6db2b2cebab8663f7a05496f2e13131f9) ) - ROM_LOAD( "u38.cpu", 0xe800, 0x0800, CRC(6adc64c6) SHA1(0502fa9f793a246ade30d506cce62c5d9b773952) ) - ROM_LOAD( "u37.cpu", 0xf000, 0x0800, CRC(55d31c96) SHA1(cf04b30369407dd9a8f0ef5850fdc13d13a7d56d) ) - ROM_LOAD( "u36.cpu", 0xf800, 0x0800, CRC(d5ffc013) SHA1(d278c0a6be86010cdf4b18afc5099dfd39f26523) ) -ROM_END - - -ROM_START( slithera ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "u31.cpu", 0xd800, 0x0800, CRC(3dfff970) SHA1(ee50840e26aa7be226dbe9a32a8344bb75b8de07) ) - ROM_LOAD( "u30.cpu", 0xe000, 0x0800, CRC(8cbc5af8) SHA1(3d563d0bbbce007bd6db6d620e1b0996c67029f6) ) - ROM_LOAD( "u29.cpu", 0xe800, 0x0800, CRC(98c14510) SHA1(7a39b4b691883ad5d079a5c199b93986071c4a49) ) - ROM_LOAD( "u28.cpu", 0xf000, 0x0800, CRC(2762f612) SHA1(2f094832b199d8514ed04c517fca828c75ac7bfa) ) - ROM_LOAD( "u27.cpu", 0xf800, 0x0800, CRC(9306d5b1) SHA1(e5a2c613b1e083b70d63e24dd45472364930398a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "u41.cpu", 0xd000, 0x0800, CRC(e4c60a57) SHA1(5ce9fe3d84b7a5ded372f5c3fc14a335a37ad472) ) - ROM_LOAD( "u40.cpu", 0xd800, 0x0800, CRC(5dcec622) SHA1(4c00b91106d1e505bdbd3aefb46bfb1a17f14fc1) ) - ROM_LOAD( "u39.cpu", 0xe000, 0x0800, CRC(69829c2a) SHA1(5ea1f7e6db2b2cebab8663f7a05496f2e13131f9) ) - ROM_LOAD( "u38a.cpu",0xe800, 0x0800, CRC(423adfef) SHA1(f10ca9acf31e602a77b011b002bd53cebf5ba502) ) - ROM_LOAD( "u37.cpu", 0xf000, 0x0800, CRC(55d31c96) SHA1(cf04b30369407dd9a8f0ef5850fdc13d13a7d56d) ) - ROM_LOAD( "u36a.cpu",0xf800, 0x0800, CRC(5ac4e244) SHA1(077bf6f3cb98c3f7845393fb57a080d5bdfc2920) ) -ROM_END - -ROM_START( complexx ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "cx14.bin", 0xa000, 0x1000, CRC(f123a0de) SHA1(fbb64c33d01031e9da78e725dbdaf87d6e33e23c) ) - ROM_LOAD( "cx15.bin", 0xb000, 0x1000, CRC(0fcb966f) SHA1(f7ea6f0ce356629b8133214c7b2e5ede41c54e6c) ) - ROM_LOAD( "cx16.bin", 0xc000, 0x1000, CRC(aa11e0e3) SHA1(4c0b4fc61c682d501ec3dffd7e324d4dc16425a7) ) - ROM_LOAD( "cx17.bin", 0xd000, 0x1000, CRC(f610856e) SHA1(a01edb705cf7c321800c2739beaee584bfc37270) ) - ROM_LOAD( "cx18.bin", 0xe000, 0x1000, CRC(8f8c3984) SHA1(4cfc83c7a972eeb6e386c9f663388b57c1ebfd00) ) - ROM_LOAD( "cx19.bin", 0xf000, 0x1000, CRC(13af3ba8) SHA1(79ce3dce960d89161db89821d9b211ffd1d399d7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "cx5.bin", 0xa000, 0x1000, CRC(62a2b87b) SHA1(eeecdfd3eeba15cd93d1514132919fdc9254c1cb) ) - ROM_LOAD( "cx6.bin", 0xb000, 0x1000, CRC(dfa7c088) SHA1(626cae67db85ab8f87c59f5945032b4cb6683c8b) ) - ROM_LOAD( "cx7.bin", 0xc000, 0x1000, CRC(c8bd6759) SHA1(5e2debc2f5acf5c14da2d0c3daf49a0f63ade07b) ) - ROM_LOAD( "cx8.bin", 0xd000, 0x1000, CRC(14a57221) SHA1(21e0ac7db246cc0a23f0992e6568a9e737db725a) ) - ROM_LOAD( "cx9.bin", 0xe000, 0x1000, CRC(fc2d4a9f) SHA1(ce16cafe09e2a4411bfe3063136507e649ac7870) ) - ROM_LOAD( "cx10.bin", 0xf000, 0x1000, CRC(96e0c1ad) SHA1(4e67b46cc21b4b3e3259d34c618c6d4e4bb1ae78) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "cx26.bin", 0xe000, 0x1000, CRC(f4f19c9b) SHA1(d14ae6b59016c428a7e08862f1a4ec89f4eac4fb) ) - ROM_LOAD( "cx27.bin", 0xf000, 0x1000, CRC(7e177328) SHA1(bd3d361bb44341a01a8d118a682ad4efa19be8ff) ) -ROM_END - - - - -/************************************* - * - * Game-specific initialization - * - *************************************/ - -static DRIVER_INIT( kram ) -{ - /* we need to override one PIA handler to prevent controls from getting disabled */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9400, 0x97ff, 0, 0, zookeep_pia_0_w); -} - - -static DRIVER_INIT( kram3 ) -{ - const UINT8 *patch; - UINT8 *rom, *decrypted; - int i, size; - - /******************************** - - The encryption algorithm is not known. - - I kept the two tables separate, but the two CPUs are encrypted identically. - Addresses that are present in both tables show that when the encrypted value - is the same, the decrypted value is the same. When one bit changes in the - encrypted value, one bit changes in the decrypted value, and so on. - I couldn't find any obvious relationship between values at different addresses. - - One important thing to note is that for 6809 instructions that take two - opcodes (that is, 10 xx and 11 xx) only the first opcode is encrypted, not the - second. This is different from how the Konami-1 CPU works, where both opcodes - are encrypted. - - ********************************/ - - i = 0; - patch = memory_region(REGION_USER1); - size = memory_region_length(REGION_USER1); - rom = memory_region(REGION_CPU1); - decrypted = auto_malloc(0x6000); - - memory_set_decrypted_region(0, 0xa000, 0xffff, decrypted); - - memcpy(decrypted,&rom[0xa000],0x6000); - while (i < size) - { - int a = patch[i] + (patch[i+1] << 8); - if (rom[a] != patch[i+2]) - logerror("error in patch data at address %04x\n",a); - else - decrypted[a-0xa000] = patch[i+3]; - - i += 4; - } - - i = 0; - patch = memory_region(REGION_USER2); - size = memory_region_length(REGION_USER2); - rom = memory_region(REGION_CPU2); - decrypted = auto_malloc(0x6000); - - memory_set_decrypted_region(1, 0xa000, 0xffff, decrypted); - - memcpy(decrypted,&rom[0xa000],0x6000); - while (i < size) - { - int a = patch[i] + (patch[i+1] << 8); - if (rom[a] != patch[i+2]) - logerror("error in patch data at address %04x\n",a); - else - decrypted[a-0xa000] = patch[i+3]; - - i += 4; - } - - init_kram(machine); -} - -static DRIVER_INIT( zookeep ) -{ - /* we need to override two PIA handlers to prevent controls from getting disabled */ - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1400, 0x17ff, 0, 0, zookeep_pia_0_w); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x1c00, 0x1fff, 0, 0, zookeep_pia_2_w); -} - - -static DRIVER_INIT( slither ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9800, 0x9bff, 0, 0, pia_1_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x9800, 0x9bff, 0, 0, pia_1_w); - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0x9401, 0x9401, 0, 0, slither_vram_mask_w); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1981, qix, 0, qix, qix, 0, ROT270, "Taito America Corporation", "Qix (set 1)", 0 ) -GAME( 1981, qixa, qix, qix, qix, 0, ROT270, "Taito America Corporation", "Qix (set 2)", 0 ) -GAME( 1981, qixb, qix, qix, qix, 0, ROT270, "Taito America Corporation", "Qix (set 3)", 0 ) -GAME( 1981, qix2, qix, qix, qix, 0, ROT270, "Taito America Corporation", "Qix II (Tournament)", 0 ) -GAME( 1981, sdungeon, 0, mcu, sdungeon, 0, ROT270, "Taito America Corporation", "Space Dungeon", 0 ) -GAME( 1982, elecyoyo, 0, elecyoyo, elecyoyo, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", 0 ) -GAME( 1982, elecyoy2, elecyoyo, elecyoyo, elecyoyo, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", 0 ) -GAME( 1982, kram, 0, mcu, kram, kram, ROT0, "Taito America Corporation", "Kram (set 1)", 0 ) -GAME( 1982, kram2, kram, mcu, kram, kram, ROT0, "Taito America Corporation", "Kram (set 2)", 0 ) -GAME( 1982, kram3, kram, qix, kram, kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", 0 ) -GAME( 1982, zookeep, 0, zookeep, zookeep, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", 0 ) -GAME( 1982, zookeep2, zookeep, zookeep, zookeep, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", 0 ) -GAME( 1982, zookeep3, zookeep, zookeep, zookeep, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", 0 ) -GAME( 1982, slither, 0, slither, slither, slither, ROT270, "Century II", "Slither (set 1)", 0 ) -GAME( 1982, slithera, slither, slither, slither, slither, ROT270, "Century II", "Slither (set 2)", 0 ) -GAME( 1984, complexx, 0, qix, complexx, 0, ROT270, "Taito America Corporation", "Complex X", 0 ) diff --git a/src/drivers/quasar.c b/src/drivers/quasar.c deleted file mode 100644 index b0ddaa707..000000000 --- a/src/drivers/quasar.c +++ /dev/null @@ -1,528 +0,0 @@ -/************************************************************************ - - Zaccaria S2650 '80s games - - Driver by Mike Coates and Pierpaolo Prazzoli - - TODO: - - Quasar - ------ - - Sound (missing invader effect - still not sure all noise in correct places) - - Phase 3 - seems awfully hard - dip settings ? - - - - Make Asto Wars to boot - - Make Cat'n Mouse to boot - (it jumps to unpopulated rom, check jump at 0x2e62 and 0x4076) - - ... - -************************************************************************ - -Quasar by Zaccaria (1980) - -1K files were 2708 -2K files were 2716 -512 file was an 82S130 (colour and priority PROM) - -2650A CPU - -I8085 Sound Board - -************************************************************************ - -Zaccaria "Cat 'N Mouse" 1982 - -similar to "Quasar" execept it uses an 82s100 for color table lookup -and has a larger program prom - - -Cat N Mouse (Zaccaria 1982) - -CPU Board - - 2650 7b 6b 5b 3b 2b - 7c 6c 5c 3c 2c - - 2636 2636 2636 - 11g 10g 8g - 14l - clr - -Sound Board 1b11107 - -6802 -6821 -8910 - -************************************************************************/ - -#include "driver.h" -#include "cpu/s2650/s2650.h" -#include "cpu/i8039/i8039.h" -#include "sound/dac.h" -#include "vidhrdw/s2636.h" - -PALETTE_INIT( quasar ); -VIDEO_UPDATE( quasar ); -VIDEO_START( quasar ); - -extern unsigned char *bullet_ram; - -extern unsigned char *effectram; -extern unsigned char *effectdirty; -extern int effectcontrol; - -static int page = 0; -static int IOpage = 8; - - -WRITE8_HANDLER( cvs_videoram_w ); -WRITE8_HANDLER( cvs_bullet_w ); -WRITE8_HANDLER( cvs_2636_1_w ); -WRITE8_HANDLER( cvs_2636_2_w ); -WRITE8_HANDLER( cvs_2636_3_w ); -WRITE8_HANDLER( cvs_scroll_w ); -WRITE8_HANDLER( cvs_video_fx_w ); - -READ8_HANDLER( cvs_collision_r ); -READ8_HANDLER( cvs_collision_clear ); -READ8_HANDLER( cvs_videoram_r ); -READ8_HANDLER( cvs_bullet_r ); -READ8_HANDLER( cvs_2636_1_r ); -READ8_HANDLER( cvs_2636_2_r ); -READ8_HANDLER( cvs_2636_3_r ); -READ8_HANDLER( cvs_character_mode_r ); - -/************************************************************************ - - Quasar memory layout - - Paging for screen is controlled by OUT to 0,1,2 or 3 - - Paging for IO ports is controlled by OUT to 8,9,A or B - -************************************************************************/ - -static WRITE8_HANDLER( page_0_w ) -{ - page = 0; -} - -static WRITE8_HANDLER( page_1_w ) -{ - page = 1; -} - -static WRITE8_HANDLER( page_2_w ) -{ - page = 2; -} - -static WRITE8_HANDLER( page_3_w ) -{ - page = 3; -} - -static WRITE8_HANDLER( page_8_w ) -{ - IOpage = 8; -} - -static WRITE8_HANDLER( page_9_w ) -{ - IOpage = 9; -} - -static WRITE8_HANDLER( page_A_w ) -{ - IOpage = 10; -} - -static WRITE8_HANDLER( page_B_w ) -{ - IOpage = 11; -} - -static WRITE8_HANDLER( quasar_video_w ) -{ - if (page == 0) videoram_w(offset,data); - if (page == 1) colorram_w(offset,(data & 7)); // 3 bits of ram only - 3 x 2102 - if (page == 2) - { - effectram[offset] = data; - effectdirty[offset] = 1; - } - if (page == 3) - { - effectcontrol = data; - memset(effectdirty,1,sizeof(effectdirty)); - } -} - -static READ8_HANDLER( quasar_IO_r ) -{ - unsigned int ans = 0; - - if (IOpage == 8) ans = input_port_0_r(0); - if (IOpage == 9) ans = input_port_1_r(0); - if (IOpage == 10) ans = input_port_2_r(0); - if (IOpage == 11) ans = input_port_3_r(0); - - return ans; -} - -WRITE8_HANDLER( quasar_bullet_w ) -{ - bullet_ram[offset] = (data ^ 0xff); -} - -static int Quasar_T1=0; -static int Quasar_Command=0; -//static int sh_page=0; - -WRITE8_HANDLER( quasar_sh_command_w ) -{ - // bit 4 = Sound Invader : Linked to an NE555V circuit - // Not handled yet - - // lower nibble = command to I8035 - // not necessarily like this, but it seems to work better than direct mapping - // (although schematics has it as direct - but then the schematics are wrong elsewhere to!) - Quasar_Command = (data & 8) + ((data >> 1) & 3) + ((data << 2) & 4); - Quasar_T1 = (Quasar_Command != 15); -} - -READ8_HANDLER( quasar_sh_command_r ) -{ - // Clear T1 signal - Quasar_T1 = 0; - - // Testing ... - // return input_port_5_r(0); - - // Add in sound DIP switch - return (Quasar_Command) + (input_port_5_r(0) & 0x30); -} - -READ8_HANDLER( Quasar_T1_r ) -{ - return Quasar_T1; -} - -WRITE8_HANDLER( Quasar_DAC_w ) -{ - DAC_0_signed_data_w(0,data); -} - -// memory map taken from the manual - -static ADDRESS_MAP_START( quasar, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x13ff) AM_ROM - AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_bullet_r, quasar_bullet_w) AM_BASE(&bullet_ram) - AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_1_r, cvs_2636_1_w) AM_BASE(&s2636_1_ram) - AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_2_r, cvs_2636_2_w) AM_BASE(&s2636_2_ram) - AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_2636_3_r, cvs_2636_3_w) AM_BASE(&s2636_3_ram) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READWRITE(MRA8_RAM /*quasar_video_r*/, quasar_video_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) //0 = background, 1 = colour, 2 = effect, 3 = port blank - AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM - AM_RANGE(0x2000, 0x33ff) AM_ROM - AM_RANGE(0x4000, 0x53ff) AM_ROM - AM_RANGE(0x6000, 0x73ff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( quasar_io, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READWRITE(quasar_IO_r, page_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(page_1_w) - AM_RANGE(0x02, 0x02) AM_WRITE(page_2_w) - AM_RANGE(0x03, 0x03) AM_WRITE(page_3_w) - AM_RANGE(0x08, 0x08) AM_WRITE(page_8_w) - AM_RANGE(0x09, 0x09) AM_WRITE(page_9_w) - AM_RANGE(0x0A, 0x0A) AM_WRITE(page_A_w) - AM_RANGE(0x0B, 0x0B) AM_WRITE(page_B_w) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, quasar_sh_command_w) - AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(cvs_collision_r, MWA8_NOP) - AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_4_r) -ADDRESS_MAP_END - -/************************************* - * - * Sound board memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00 , 0x7F ) AM_READ(MRA8_RAM) - AM_RANGE(0x80 , 0x80 ) AM_READ(quasar_sh_command_r) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(Quasar_T1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport_sound, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00 , 0x7F ) AM_WRITE(MWA8_RAM) - AM_RANGE(I8039_p1, I8039_p1) AM_WRITE(Quasar_DAC_w) -ADDRESS_MAP_END - -/************************************************************************ - - Inputs - -************************************************************************/ - -INPUT_PORTS_START( quasar ) - PORT_START /* Controls 0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* switch collaudo */ - - PORT_START /* Controls 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* tavalino */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) /* count enable */ - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Coin_A ) ) /* confirmed */ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) /* confirmed */ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x30, 0x00, "Number of Rockets" ) /* confirmed */ - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPSETTING( 0x30, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Test Mode" ) /* confirmed */ - PORT_DIPSETTING( 0x00, "Collisions excluded" ) - PORT_DIPSETTING( 0x80, "Collisions included" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x07, 0x01, "High Score" ) - PORT_DIPSETTING( 0x00, "No H.S." ) // this option only wants bit 0 OFF - PORT_DIPSETTING( 0x01, "Normal H.S." ) - PORT_DIPSETTING( 0x03, "Low H.S." ) - PORT_DIPSETTING( 0x05, "Medium H.S." ) - PORT_DIPSETTING( 0x07, "High H.S." ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x08, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x60, 0x20, "Extended Play" ) - PORT_DIPSETTING( 0x20, "5500" ) /* confirmed */ - PORT_DIPSETTING( 0x40, "7500" ) - PORT_DIPSETTING( 0x60, "9500" ) - PORT_DIPSETTING( 0x00, "17500" ) - PORT_DIPNAME( 0x80, 0x80, "Full Screen Rocket" ) /* confirmed */ - PORT_DIPSETTING( 0x80, "Stop at edge" ) - PORT_DIPSETTING( 0x00, "Wrap Around" ) - - PORT_START /* SENSE */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START // Sound DIP switch -#if 0 - PORT_DIPNAME( 0x0f, 0x00, "Noise to play" ) - PORT_DIPSETTING( 0x00, "00" ) - PORT_DIPSETTING( 0x01, "01" ) - PORT_DIPSETTING( 0x02, "02" ) - PORT_DIPSETTING( 0x03, "03" ) - PORT_DIPSETTING( 0x04, "04" ) - PORT_DIPSETTING( 0x05, "05" ) - PORT_DIPSETTING( 0x06, "06" ) - PORT_DIPSETTING( 0x07, "07" ) - PORT_DIPSETTING( 0x08, "08" ) - PORT_DIPSETTING( 0x09, "09" ) - PORT_DIPSETTING( 0x0a, "0A" ) - PORT_DIPSETTING( 0x0b, "0B" ) - PORT_DIPSETTING( 0x0c, "0C" ) - PORT_DIPSETTING( 0x0d, "0D" ) - PORT_DIPSETTING( 0x0e, "0E" ) - PORT_DIPSETTING( 0x0f, "0F" ) -#endif - PORT_DIPNAME( 0x10, 0x10, "Sound Test" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -/* S2636 Mappings */ - -static const gfx_layout s2636_character10 = -{ - 8,10, - 5, - 1, - { 0 }, - { 0,1,2,3,4,5,6,7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 }, - 8*16 -}; - -static const gfx_layout charlayout8colour = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 3, /* 3 bits per pixel */ - { 0, 0x800*8, 0x1000*8 }, /* the bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 256}, /* Rom chars */ - { REGION_GFX1, 0x0000, &charlayout8colour, 0, 259 }, /* Ram chars (NOT USED) */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #1 */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #2 */ - { REGION_GFX1, 0x0000, &s2636_character10, 2072, 8 }, /* s2636 #3 */ - { -1 } /* end of array */ -}; - -static INTERRUPT_GEN( quasar_interrupt ) -{ - cpunum_set_input_line_and_vector(0,0,PULSE_LINE,0x03); -} - -// ************************(*************** -// Quasar S2650 Main CPU, I8035 sound board -// **************************************** - -static MACHINE_DRIVER_START( quasar ) - - MDRV_CPU_ADD_TAG("main", S2650, 14318000/4) /* 14 mhz crystal divide by 4 on board */ - MDRV_CPU_PROGRAM_MAP(quasar,0) - MDRV_CPU_IO_MAP(quasar_io,0) - MDRV_CPU_VBLANK_INT(quasar_interrupt,1) - - MDRV_CPU_ADD_TAG("sound",I8035,6000000/15) /* 6MHz crystal divide by 15 in CPU */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - MDRV_CPU_IO_MAP(readport_sound,writeport_sound) - - MDRV_SCREEN_REFRESH_RATE(50) /* From dot clock */ - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - MDRV_COLORTABLE_LENGTH(4096) - - MDRV_PALETTE_INIT(quasar) - MDRV_VIDEO_START(quasar) - MDRV_VIDEO_UPDATE(quasar) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -ROM_START( quasar ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "7b_01.bin", 0x0000, 0x0400, CRC(20a7feaf) SHA1(ab89087efca2fcb9568f49ba117755ae2c1bd3a3) ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_LOAD( "6b_02.bin", 0x0400, 0x0400, CRC(c14af4a1) SHA1(ca2d3aff94db43aa7c25d33b345a53f484f679cd) ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_LOAD( "5b_03.bin", 0x0800, 0x0400, CRC(3f051d8b) SHA1(1dd7a5eddfb0d7871705ac9ec1b9c16c2b80ddf0) ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_LOAD( "3b_04.bin", 0x0c00, 0x0400, CRC(e14d04ed) SHA1(3176902e3efd72946468c7e7a221d88fcbf63c97) ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_LOAD( "2b_05.bin", 0x1000, 0x0400, CRC(f2113222) SHA1(576e0ac92ba076e00eeeae73892246f92fff252a) ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_LOAD( "7c_06.bin", 0x2000, 0x0400, CRC(f7f1267d) SHA1(29c99191b0b6186af6772d04543a5fd235f5eafd) ) - ROM_LOAD( "6c_07.bin", 0x2400, 0x0400, CRC(772004eb) SHA1(bfafb6005a1a0cff39b76ec0ad4ea1f438a2f174) ) - ROM_LOAD( "5c_08.bin", 0x2800, 0x0400, CRC(7a87b6f3) SHA1(213b8ccd7bdd650e19d2746b2d617c1950ba3d2b) ) - ROM_LOAD( "3c_09.bin", 0x2c00, 0x0400, CRC(ef87c2cb) SHA1(1ba10dd3996c047e595c54a37c1abb44df3b63c6) ) - ROM_LOAD( "2c_10.bin", 0x3000, 0x0400, CRC(be6c4f84) SHA1(b3a779457bd0d33ccb23c21a7e7cd4a6fc78bb7f) ) - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) - ROM_LOAD( "quasar.snd", 0x0000, 0x0800, CRC(9e489768) SHA1(a9f01ef0a6512543bbdfec56037f37a0440b2b94) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "6g.bin", 0x0000, 0x0800, CRC(deb2f4a9) SHA1(9a15d07a9b35bef34ce923973fc59fbd911f8111) ) - ROM_LOAD( "7g.bin", 0x0800, 0x0800, CRC(76222f30) SHA1(937286fcb50bd0a61db9e71e04b5eb1a0746e1c0) ) - ROM_LOAD( "9g.bin", 0x1000, 0x0800, CRC(fd0a36e9) SHA1(93f1207a36418b9ab15a25163a092308b9916528) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "12m_q.bin", 0x0000, 0x0200, CRC(1ab8633d) SHA1(3aed29f2326676a8d8a5de6f6bb923b6510896d8) ) -ROM_END - -ROM_START( quasara ) - ROM_REGION( 0x8000, REGION_CPU1, 0 ) - ROM_LOAD( "7b_01.bin", 0x0000, 0x0400, CRC(20a7feaf) SHA1(ab89087efca2fcb9568f49ba117755ae2c1bd3a3) ) - ROM_CONTINUE( 0x4000, 0x0400 ) - ROM_LOAD( "6b_02.bin", 0x0400, 0x0400, CRC(c14af4a1) SHA1(ca2d3aff94db43aa7c25d33b345a53f484f679cd) ) - ROM_CONTINUE( 0x4400, 0x0400 ) - ROM_LOAD( "5b_03.bin", 0x0800, 0x0400, CRC(3f051d8b) SHA1(1dd7a5eddfb0d7871705ac9ec1b9c16c2b80ddf0) ) - ROM_CONTINUE( 0x4800, 0x0400 ) - ROM_LOAD( "3b_04.bin", 0x0c00, 0x0400, CRC(e14d04ed) SHA1(3176902e3efd72946468c7e7a221d88fcbf63c97) ) - ROM_CONTINUE( 0x4c00, 0x0400 ) - ROM_LOAD( "2b_05.bin", 0x1000, 0x0400, CRC(f2113222) SHA1(576e0ac92ba076e00eeeae73892246f92fff252a) ) - ROM_CONTINUE( 0x5000, 0x0400 ) - ROM_LOAD( "7c_06.bin", 0x2000, 0x0400, CRC(f7f1267d) SHA1(29c99191b0b6186af6772d04543a5fd235f5eafd) ) - ROM_LOAD( "6c_07.bin", 0x2400, 0x0400, CRC(772004eb) SHA1(bfafb6005a1a0cff39b76ec0ad4ea1f438a2f174) ) - ROM_LOAD( "5c_08.bin", 0x2800, 0x0400, CRC(7a87b6f3) SHA1(213b8ccd7bdd650e19d2746b2d617c1950ba3d2b) ) - ROM_LOAD( "3c_09.bin", 0x2c00, 0x0400, CRC(ef87c2cb) SHA1(1ba10dd3996c047e595c54a37c1abb44df3b63c6) ) - ROM_LOAD( "2c_10a.bin", 0x3000, 0x0400, CRC(a31c0435) SHA1(48e1c5da455610145310dfe4c6b6e4302b531876) ) // different from quasar set - - ROM_REGION( 0x1000, REGION_CPU2, 0 ) - ROM_LOAD( "quasar.snd", 0x0000, 0x0800, CRC(9e489768) SHA1(a9f01ef0a6512543bbdfec56037f37a0440b2b94) ) - - ROM_REGION( 0x1800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "6g.bin", 0x0000, 0x0800, CRC(deb2f4a9) SHA1(9a15d07a9b35bef34ce923973fc59fbd911f8111) ) - ROM_LOAD( "7g.bin", 0x0800, 0x0800, CRC(76222f30) SHA1(937286fcb50bd0a61db9e71e04b5eb1a0746e1c0) ) - ROM_LOAD( "9g.bin", 0x1000, 0x0800, CRC(fd0a36e9) SHA1(93f1207a36418b9ab15a25163a092308b9916528) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "12m_q.bin", 0x0000, 0x0200, CRC(1ab8633d) SHA1(3aed29f2326676a8d8a5de6f6bb923b6510896d8) ) -ROM_END - -GAME( 1980, quasar, 0, quasar, quasar, 0, ROT90, "Zelco / Zaccaria", "Quasar", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1980, quasara, quasar, quasar, quasar, 0, ROT90, "Zelco / Zaccaria", "Quasar (Alternate)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) - diff --git a/src/drivers/rastan.c b/src/drivers/rastan.c deleted file mode 100644 index a46fbaa13..000000000 --- a/src/drivers/rastan.c +++ /dev/null @@ -1,509 +0,0 @@ -/*************************************************************************** - -Rastan - -driver by Jarek Burczynski - - -custom ICs ----------- -PC040DA x3 video DAC -PC050 coin I/O -PC060HS main/sub CPU communication -PC080 tilemap generator -PC090 sprite generator - - -memory map ----------- -68000: - -The address decoding is done by two PALs (IC11 and IC12) which haven't been -read, so the memory map is inferred by program behaviour - -Address Dir Data Name Description ------------------------- --- ---------------- --------- ----------------------- -0000000xxxxxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM0 program ROM -0000001xxxxxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM1 program ROM -0000010xxxxxxxxxxxxxxxx- R xxxxxxxxxxxxxxxx ROM2 program ROM -000100--11xxxxxxxxxxxxxx R/W xxxxxxxxxxxxxxxx WLRAM/WURAM work RAM -001000------xxxxxxxxxxx- R/W xxxxxxxxxxxxxxxx CLCS palette RAM -0011100-------------000- R --------xxxxxxxx IN PORT player 1 inputs -0011100-------------001- R --------xxxxxxxx IN PORT player 2 inputs -0011100-------------010- R --------xxxxxxxx IN PORT extra inputs -0011100-------------011- R --------xxxxxxxx IN PORT coin inputs -0011100-------------100- R --------xxxxxxxx IN PORT dip SW1 -0011100-------------101- R --------xxxxxxxx IN PORT dip SW2 -0011100-------------110- R ---------------- n.c. -0011100-------------111- R ---------------- n.c. -0011100----------------- W --------xxx----- OUT8-10 sprite palette bank -0011100----------------- W -----------x---- n.c. -0011100----------------- W ------------xxxx PC050 (coin counters, coin lockout) -0011101----------------- R ---------------- n.c. -0011101----------------- W --------------x- M INT [1] -0011101----------------- W ---------------x SUB RESET [1] -0011110----------------- R ---------------- n.c. -0011110----------------- W ---------------- watchdog reset -0011111---------------x- R/W ------------xxxx SNRD/SNWR PC060HS -0011 EXT [1] -11000xxxxxxxxxxxxxxxxxxx R/W xxxxxxxxxxxxxxxx SCN PC080 PGA -11010000---xxxxxxxxxxxxx R/W xxxxxxxxxxxxxxxx OBJ PC090 PGA - -[1] Not used, goes to external connector, maybe provision for an MCU? - - -Z80: - -Address Dir Data Name Description ----------------- --- -------- --------- ----------------------- -00xxxxxxxxxxxxxx R xxxxxxxx program ROM -01xxxxxxxxxxxxxx R xxxxxxxx program ROM (banked) -1000xxxxxxxxxxxx R/W xxxxxxxx SRAM work RAM -1001-----------x R/W xxxxxxxx YM2151 YM2151 [1] -1010-----------x R/W ----xxxx PC6 PC060HS -1011------------ W xxxxxxxx V-ST-ADRS MSM5205 start address (bits 15-8) -1100------------ W -------- START-VCE MSM5205 start -1101------------ W -------- STOP-VCE MSM5205 stop -1110------------ n.c. -1111------------ n.c. - -[1] Schematics also show a YM3526 that can replace the YM2151 - - -Notes: -- For sound communication, we are using code in sndhrdw/taitosnd.c, which - claims to be for the TC0140SYT chip. That chip is not present in Rastan, - the communication is handled by PC060HS, which I guess is compatible. - -TODO: -- Unknown writes to 0x350008. - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2151intf.h" -#include "sound/msm5205.h" - - -WRITE16_HANDLER( rastan_spritectrl_w ); - -VIDEO_START( rastan ); -VIDEO_UPDATE( rastan ); - - -static WRITE8_HANDLER( rastan_bankswitch_w ) -{ - int offs; - - data &= 3; - if (data == 0) offs = 0x0000; - else offs = (data-1) * 0x4000 + 0x10000; - - memory_set_bankptr( 1, memory_region(REGION_CPU2) + offs ); -} - - -static int adpcm_pos; - -static void rastan_msm5205_vck(int chip) -{ - static int adpcm_data = -1; - - if (adpcm_data != -1) - { - MSM5205_data_w(0, adpcm_data & 0x0f); - adpcm_data = -1; - } - else - { - adpcm_data = memory_region(REGION_SOUND1)[adpcm_pos]; - adpcm_pos = (adpcm_pos + 1) & 0xffff; - MSM5205_data_w(0, adpcm_data >> 4); - } -} - -static WRITE8_HANDLER( rastan_msm5205_address_w ) -{ - adpcm_pos = (adpcm_pos & 0x00ff) | (data << 8); -} - -static WRITE8_HANDLER( rastan_msm5205_start_w ) -{ - MSM5205_reset_w(0, 0); -} - -static WRITE8_HANDLER( rastan_msm5205_stop_w ) -{ - MSM5205_reset_w(0, 1); - adpcm_pos &= 0xff00; -} - - - -static ADDRESS_MAP_START( rastan_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x05ffff) AM_ROM - AM_RANGE(0x10c000, 0x10ffff) AM_RAM - AM_RANGE(0x200000, 0x200fff) AM_READWRITE(MRA16_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x350008, 0x350009) AM_WRITE(MWA16_NOP) /* 0 only (often) ? */ - AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w) /* sprite palette bank, coin counters & lockout */ - AM_RANGE(0x390000, 0x390001) AM_READ(input_port_0_word_r) - AM_RANGE(0x390002, 0x390003) AM_READ(input_port_1_word_r) - AM_RANGE(0x390004, 0x390005) AM_READ(input_port_2_word_r) - AM_RANGE(0x390006, 0x390007) AM_READ(input_port_3_word_r) - AM_RANGE(0x390008, 0x390009) AM_READ(input_port_4_word_r) - AM_RANGE(0x39000a, 0x39000b) AM_READ(input_port_5_word_r) - AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w) - AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(MRA16_NOP, taitosound_port16_lsb_w) - AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w) - AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(PC080SN_word_0_r, PC080SN_word_0_w) - AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w) - AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w) - AM_RANGE(0xc50000, 0xc50003) AM_WRITE(PC080SN_ctrl_word_0_w) - AM_RANGE(0xd00000, 0xd03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w) /* sprite ram */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( rastan_s_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w) - AM_RANGE(0xb000, 0xb000) AM_WRITE(rastan_msm5205_address_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(rastan_msm5205_start_w) - AM_RANGE(0xd000, 0xd000) AM_WRITE(rastan_msm5205_stop_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( rastan ) - PORT_START_TAG( "IN0" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // button 3 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG( "IN1" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // button 3 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG( "IN2" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // P1 button 4 - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // P1 button 5 - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // P2 button 4 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // P2 button 5 - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) // from PC050 (coin A gets locked if 0) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) // from PC050 (coin B gets locked if 0) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) // from PC050 (above 2 bits not checked when 0) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG( "IN3" ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG( "DSW1" ) - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - - PORT_START_TAG( "DSW2" ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100000" ) - PORT_DIPSETTING( 0x08, "150000" ) - PORT_DIPSETTING( 0x04, "200000" ) - PORT_DIPSETTING( 0x00, "250000" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( rastsaga ) /* same as rastan, coinage is different */ - PORT_INCLUDE( rastan ) - - PORT_MODIFY( "DSW1" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) -INPUT_PORTS_END - - - -static const gfx_layout tilelayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0, 1, 2, 3 }, - { 0, 4, RGN_FRAC(1,2)+0 ,RGN_FRAC(1,2)+4, 8+0, 8+4, RGN_FRAC(1,2)+8+0, RGN_FRAC(1,2)+8+4 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { 0, 1, 2, 3 }, - { 0, 4, RGN_FRAC(1,2)+0 ,RGN_FRAC(1,2)+4, 8+0, 8+4, RGN_FRAC(1,2)+8+0, RGN_FRAC(1,2)+8+4, - 16+0, 16+4, RGN_FRAC(1,2)+16+0, RGN_FRAC(1,2)+16+4, 24+0, 24+4, RGN_FRAC(1,2)+24+0, RGN_FRAC(1,2)+24+4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 }, - 32*16 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tilelayout, 0, 0x80 }, - { REGION_GFX2, 0, &spritelayout, 0, 0x80 }, - { -1 } /* end of array */ -}; - - - -/* handler called by the YM2151 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2151interface ym2151_interface = -{ - irqhandler, - rastan_bankswitch_w -}; - -static struct MSM5205interface msm5205_interface = -{ - rastan_msm5205_vck, /* VCK function */ - MSM5205_S48_4B /* 8 kHz */ -}; - - - -static MACHINE_DRIVER_START( rastan ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 8000000) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(rastan_map,0) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(rastan_s_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(rastan) - MDRV_VIDEO_UPDATE(rastan) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.50) - MDRV_SOUND_ROUTE(1, "mono", 0.50) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( rastan ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 6*64k for 68000 code */ - ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) - ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) - ROM_LOAD16_BYTE( "b04-40.20", 0x20000, 0x10000, CRC(0930d4b3) SHA1(c269b3856040ed9409de99cca48f22a2f355fc4c) ) - ROM_LOAD16_BYTE( "b04-39.08", 0x20001, 0x10000, CRC(d95ade5e) SHA1(f47557dcfa9d3137e2a3838e45858fc21471cc91) ) - ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) ) - ROM_LOAD16_BYTE( "b04-43.09", 0x40001, 0x10000, CRC(c34b9152) SHA1(6ed9247ad455bc3b71d78b541591b269969830cb) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) - ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) - ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) - ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) - ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) - ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) - ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* 64k for the samples */ - ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) /* samples are 4bit ADPCM */ -ROM_END - -ROM_START( rastanu ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 6*64k for 68000 code */ - ROM_LOAD16_BYTE( "b04-35.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) ) - ROM_LOAD16_BYTE( "b04-37.07", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) ) - ROM_LOAD16_BYTE( "b04-45.20", 0x20000, 0x10000, CRC(362812dd) SHA1(f7df037ef423d931ca780b34813d4e9e4db67054) ) - ROM_LOAD16_BYTE( "b04-44.08", 0x20001, 0x10000, CRC(51cc5508) SHA1(2bd266351a4d1b94c8c3a489e4d267695d93db5e) ) - ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) ) - ROM_LOAD16_BYTE( "b04-41-1.09", 0x40001, 0x10000, CRC(bd403269) SHA1(14aee828d5efb65370a5e453c8fd1c7b3e718074) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) - ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) - ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) - ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) - ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) - ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) - ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* MSM5205 samples */ - ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) -ROM_END - -ROM_START( rastanu2 ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 6*64k for 68000 code */ - ROM_LOAD16_BYTE( "rs19_38.bin", 0x00000, 0x10000, CRC(a38ac909) SHA1(66d792fee03c6bd87d15060b9d5cae74137c5ebd) ) - ROM_LOAD16_BYTE( "b04-21.7", 0x00001, 0x10000, CRC(7c8dde9a) SHA1(0cfc3b4f3bc7b940a6c07267ac95e4aae25801ea) ) - ROM_LOAD16_BYTE( "b04-23.20", 0x20000, 0x10000, CRC(254b3dce) SHA1(5126cd5268abaa78dfdcd2ca70621c093c79be67) ) - ROM_LOAD16_BYTE( "b04-22.8", 0x20001, 0x10000, CRC(98e8edcf) SHA1(cc89ef36da6d21192efc19c3bbb215b1635b7ef3) ) - ROM_LOAD16_BYTE( "b04-25.21", 0x40000, 0x10000, CRC(d1e5adee) SHA1(eafc275a0023aecb2efaff14cd890915fa162624) ) - ROM_LOAD16_BYTE( "b04-24.9", 0x40001, 0x10000, CRC(a3dcc106) SHA1(3a8854530b08864a1f7f46c427e49ceec8297806) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) - ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) - ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) - ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) - ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) - ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) - ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* MSM5205 samples */ - ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) -ROM_END - -ROM_START( rastsaga ) - ROM_REGION( 0x60000, REGION_CPU1, 0 ) /* 6*64k for 68000 code */ - ROM_LOAD16_BYTE( "rs19_38.bin", 0x00000, 0x10000, CRC(a38ac909) SHA1(66d792fee03c6bd87d15060b9d5cae74137c5ebd) ) - ROM_LOAD16_BYTE( "rs07_37.bin", 0x00001, 0x10000, CRC(bad60872) SHA1(e020f79b3ac3d2abccfcd5d135d2dc49e1335c7d) ) - ROM_LOAD16_BYTE( "rs20_40.bin", 0x20000, 0x10000, CRC(6bcf70dc) SHA1(3e369548ac01981c503150b44c2747e6c2cec12a) ) - ROM_LOAD16_BYTE( "rs08_39.bin", 0x20001, 0x10000, CRC(8838ecc5) SHA1(42b43ab77969bbacdf178fbe73a0a27652ccb297) ) - ROM_LOAD16_BYTE( "rs21_42.bin", 0x40000, 0x10000, CRC(b626c439) SHA1(976e820edc4ba107c5b579edaaee1e354e85fb67) ) - ROM_LOAD16_BYTE( "rs09_43.bin", 0x40001, 0x10000, CRC(c928a516) SHA1(fe87fdf2d1b7ba93e1986460eb6af648b58f42e4) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) ) - ROM_CONTINUE( 0x10000, 0xc000 ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) ) - ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) ) - ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) ) - ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) ) - ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) ) - ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) ) - ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) /* MSM5205 samples */ - ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) ) -ROM_END - - - -GAME( 1987, rastan, 0, rastan, rastan, 0, ROT0, "Taito Corporation Japan", "Rastan (World)", 0) -/* IDENTICAL to rastan, only difference is copyright notice and Coin B coinage */ -GAME( 1987, rastanu, rastan, rastan, rastsaga, 0, ROT0, "Taito America Corporation", "Rastan (US set 1)", 0) -GAME( 1987, rastanu2, rastan, rastan, rastsaga, 0, ROT0, "Taito America Corporation", "Rastan (US set 2)", 0) -GAME( 1987, rastsaga, rastan, rastan, rastsaga, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan)", 0) diff --git a/src/drivers/realbrk.c b/src/drivers/realbrk.c deleted file mode 100644 index 751eae521..000000000 --- a/src/drivers/realbrk.c +++ /dev/null @@ -1,1035 +0,0 @@ -/*************************************************************************** - - -= Billiard Academy Real Break =- - - driver by Luca Elia (l.elia@tin.it) - - -CPU : TMP68301 - -Sound : YMZ280b + YM2413 - -Chips : 4L10F2467 (QFP160) - 4L10F2468 (QFP160) - ACTEL A1010A - PST532 (system reset and battery backup switching) - - ---------------------------------------------------------------------------- -Year + Game Board ---------------------------------------------------------------------------- -98 Pachinko Gindama Shoubu (Japan) NM5050905-1 -98 Pachinko Gindama Shoubu DX (Japan) NM522-1-9803 -98 Billiard Academy Real Break (Japan) NM523-1-9805 -98 Billiard Academy Real Break (Europe) MM600-1-9807 -98 Billiard Academy Real Break (Korea) MM600-1-9807 ---------------------------------------------------------------------------- - -Notes: - -- To reach the (hidden?) test modes put a breakpoint at 9f80, go in service - mode and select "results" from the menu - this hits the breakpoint - then - set ($3,a2) to non zero. - -To Do: - -- Priorities (e.g during the intro, there are two black bands in the backround - that should obscure sprites). -- Sometimes sprites are shrinked to end up overlapping the background image - in the tilemaps, but they are a few pixels off - -***************************************************************************/ - -#include "driver.h" -#include "machine/tmp68301.h" -#include "realbrk.h" -#include "sound/2413intf.h" -#include "sound/ymz280b.h" - -static UINT16 *realbrk_dsw_select; - -/* Read 4 ten bit dip switches */ -static READ16_HANDLER( realbrk_dsw_r ) -{ - UINT16 sel = ~realbrk_dsw_select[0]; - if (sel & 0x01) return (readinputport(2) & 0x00ff) << 8; // DSW1 low bits - if (sel & 0x02) return (readinputport(3) & 0x00ff) << 8; // DSW2 low bits - if (sel & 0x04) return (readinputport(4) & 0x00ff) << 8; // DSW3 low bits - if (sel & 0x08) return (readinputport(5) & 0x00ff) << 8; // DSW4 low bits - - if (sel & 0x10) return ((readinputport(2) & 0x0300) << 0) | // DSWs high 2 bits - ((readinputport(3) & 0x0300) << 2) | - ((readinputport(4) & 0x0300) << 4) | - ((readinputport(5) & 0x0300) << 6) ; - - logerror("CPU #0 PC %06X: read with unknown dsw_select = %02x\n",activecpu_get_pc(),realbrk_dsw_select[0]); - return 0xffff; -} - -static READ16_HANDLER( pkgnsh_input_r ) -{ - switch(offset) - { - case 0x00/2: return 0xffff; - case 0x02/2: return 0xffff; - case 0x04/2: return input_port_0_word_r(0,0);/*Service buttons*/ - case 0x06/2: return input_port_1_word_r(0,0);/*DIP 2*/ - case 0x08/2: return input_port_2_word_r(0,0);/*DIP 1*/ - case 0x0a/2: return input_port_3_word_r(0,0);/*DIP 1+2 Hi-Bits*/ - case 0x0c/2: return input_port_4_word_r(0,0);/*Handle 1p*/ - case 0x0e/2: return input_port_5_word_r(0,0);/*Buttons 1p*/ - case 0x10/2: return input_port_6_word_r(0,0);/*Handle 2p*/ - case 0x12/2: return input_port_7_word_r(0,0);/*Buttons 2p*/ - } - return 0xffff; -} - -static READ16_HANDLER( pkgnshdx_input_r ) -{ - UINT16 sel = ~realbrk_dsw_select[0]; - - switch(offset) - { - case 0x00/2: return 0xffff; - case 0x02/2: return input_port_0_word_r(0,0);/*Service buttons*/ - /*DSW,same handling as realbrk*/ - case 0x04/2: - if (sel & 0x01) return (input_port_1_word_r(0,0) & 0x00ff) << 8; // DSW1 low bits - if (sel & 0x02) return (input_port_2_word_r(0,0) & 0x00ff) << 8; // DSW2 low bits - if (sel & 0x04) return (input_port_3_word_r(0,0) & 0x00ff) << 8; // DSW3 low bits - if (sel & 0x08) return (input_port_4_word_r(0,0) & 0x00ff) << 8; // DSW4 low bits - - if (sel & 0x10) return ((input_port_1_word_r(0,0) & 0x0300) << 0) | // DSWs high 2 bits - ((input_port_2_word_r(0,0) & 0x0300) << 2) | - ((input_port_3_word_r(0,0) & 0x0300) << 4) | - ((input_port_4_word_r(0,0) & 0x0300) << 6) ; - - return 0xffff; - case 0x06/2: return input_port_6_word_r(0,0);/*Buttons+Handle 2p*/ - case 0x08/2: return input_port_5_word_r(0,0);/*Buttons+Handle 1p*/ - case 0x0a/2: return 0xffff; - case 0x0c/2: return 0xffff; - case 0x0e/2: return 0xffff; - case 0x10/2: return 0xffff; - case 0x12/2: return 0xffff; - } - - return 0xffff; -} - -static UINT16 *backup_ram; - -static READ16_HANDLER( backup_ram_r ) -{ - /*TODO: understand the format & cmds of the backup-ram,maybe it's an - unemulated tmp68301 feature?*/ - if(activecpu_get_previouspc() == 0x02c08e) - return 0xffff; - else - return backup_ram[offset]; -} - - -static READ16_HANDLER( backup_ram_dx_r ) -{ - /*TODO: understand the format & cmds of the backup-ram,maybe it's an - unemulated tmp68301 feature?*/ - if(activecpu_get_previouspc() == 0x02f046) - return 0xffff; - else - return backup_ram[offset]; -} - -static WRITE16_HANDLER( backup_ram_w ) -{ - COMBINE_DATA(&backup_ram[offset]); -} - -/*************************************************************************** - - Memory Maps - -***************************************************************************/ - -/*Basic memory map for this HW*/ -static ADDRESS_MAP_START( base_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(&spriteram16) // Sprites - AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x600000, 0x601fff) AM_READWRITE(MRA16_RAM,realbrk_vram_0_w) AM_BASE(&realbrk_vram_0 ) // Background (0) - AM_RANGE(0x602000, 0x603fff) AM_READWRITE(MRA16_RAM,realbrk_vram_1_w) AM_BASE(&realbrk_vram_1 ) // Background (1) - AM_RANGE(0x604000, 0x604fff) AM_READWRITE(MRA16_RAM,realbrk_vram_2_w) AM_BASE(&realbrk_vram_2 ) // Text (2) - AM_RANGE(0x606000, 0x60600f) AM_READWRITE(MRA16_RAM,realbrk_vregs_w) AM_BASE(&realbrk_vregs ) // Scroll + Video Regs - AM_RANGE(0x605000, 0x61ffff) AM_RAM // - AM_RANGE(0x800000, 0x800001) AM_WRITE(YMZ280B_register_0_msb_w ) // YMZ280 - AM_RANGE(0x800002, 0x800003) AM_READWRITE(YMZ280B_status_0_msb_r,YMZ280B_data_0_msb_w) // - AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // RAM - AM_RANGE(0xfffc00, 0xffffff) AM_READWRITE(MRA16_RAM,tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers -ADDRESS_MAP_END - -/*realbrk specific memory map*/ -static ADDRESS_MAP_START( realbrk_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x800008, 0x800009) AM_WRITE(YM2413_register_port_0_lsb_w ) // YM2413 - AM_RANGE(0x80000a, 0x80000b) AM_WRITE(YM2413_data_port_0_lsb_w ) // - AM_RANGE(0xc00000, 0xc00001) AM_READ(input_port_0_word_r ) // P1 & P2 (Inputs) - AM_RANGE(0xc00002, 0xc00003) AM_READ(input_port_1_word_r ) // Coins - AM_RANGE(0xc00004, 0xc00005) AM_READWRITE(realbrk_dsw_r,MWA16_RAM) AM_BASE(&realbrk_dsw_select ) // DSW select - AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM - AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(realbrk_flipscreen_w ) // Hack! Parallel port data register -ADDRESS_MAP_END - -/*pkgnsh specific memory map*/ -static ADDRESS_MAP_START( pkgnsh_mem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x800008, 0x800009) AM_WRITE(YM2413_register_port_0_msb_w ) // YM2413 - AM_RANGE(0x80000a, 0x80000b) AM_WRITE(YM2413_data_port_0_msb_w ) // - AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnsh_input_r ) // P1 & P2 (Inputs) - AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_r,backup_ram_w) AM_BASE(&backup_ram) // RAM -ADDRESS_MAP_END - -/*pkgnshdx specific memory map*/ -static ADDRESS_MAP_START( pkgnshdx_mem, ADDRESS_SPACE_PROGRAM, 16) - AM_RANGE(0x800008, 0x800009) AM_WRITE(YM2413_register_port_0_lsb_w ) // YM2413 - AM_RANGE(0x80000a, 0x80000b) AM_WRITE(YM2413_data_port_0_lsb_w ) // - AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs) - AM_RANGE(0xc00004, 0xc00005) AM_WRITE(MWA16_RAM) AM_BASE(&realbrk_dsw_select) // DSW select - AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_dx_r,backup_ram_w) AM_BASE(&backup_ram) // RAM -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -/*************************************************************************** - Billiard Academy Real Break -***************************************************************************/ - -INPUT_PORTS_START( realbrk ) - PORT_START // IN0 - $c00000.w - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 in test mode - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED ) // BUTTON3 in test mode - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - - PORT_START // IN1 - $c00002.w - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // the vblank routine wants these 2 bits high - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START // IN2 - $c00004.w (DSW1) - PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0007, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0005, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0018, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0038, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0028, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_SERVICE( 0x0200, IP_ACTIVE_LOW ) - - PORT_START // IN3 - $c00004.w (DSW2) - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0000, "4" ) - PORT_DIPSETTING( 0x0001, "5" ) - PORT_DIPSETTING( 0x0003, "6" ) - PORT_DIPSETTING( 0x0002, "7" ) - PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0030, 0x0030, "Time" ) - PORT_DIPSETTING( 0x0000, "110" ) - PORT_DIPSETTING( 0x0030, "120" ) - PORT_DIPSETTING( 0x0020, "130" ) - PORT_DIPSETTING( 0x0010, "150" ) - PORT_DIPNAME( 0x0040, 0x0040, "? Show time in easy mode ?" ) - PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0080, 0x0080, "? Coins ?" ) - PORT_DIPSETTING( 0x0000, "1" ) - PORT_DIPSETTING( 0x0080, "2" ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START // IN4 - $c00004.w (DSW3) - Unused - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START // IN5 - $c00004.w (DSW4) - Unused - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( pkgnsh ) - PORT_START // IN0 - $c00002.w - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // the vblank routine wants these 2 bits high - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x00bf, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_UNUSED )/*pkgnsh wants these two bits to be 0*/ - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START // IN3 - $c00004.w (DSW2) - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, 0x0000, IPT_PADDLE ) PORT_PLAYER(1) PORT_MINMAX(0,0x64) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) //PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) //F/F - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) //Stop - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, 0x0000, IPT_PADDLE ) PORT_PLAYER(2) PORT_MINMAX(0,0x64) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) - - PORT_START - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )/*There's the Pay Out SW here IIRC*/ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(2) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) //F/F - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) //Stop - PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( pkgnshdx ) - PORT_START // IN0 - $c00002.w - PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // the vblank routine wants these 2 bits high - PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START // IN1 - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START //IN2 - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START //IN3 - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START //IN4 - PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START //IN5 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - PORT_DIPNAME( 0x0002, 0x0002, "Pay-Out SW" )//Not a real DIP-Switch - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) //F/F - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) //Stop - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0040, 0x0040, "Analize SW" )//Not a real DIP-Switch - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, 0x0000, IPT_PADDLE ) PORT_PLAYER(1) PORT_MINMAX(0,0x64) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) - - PORT_START //IN6 - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED ) //Again Pay-Out SW in test mode,but it doesn't work,maybe it is for Player-2? - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) //F/F - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) //Stop - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x0040, 0x0040, "Mem Clear SW" )//Not a real DIP-Switch - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0xff00, 0x0000, IPT_PADDLE ) PORT_PLAYER(2) PORT_MINMAX(0,0x64) PORT_SENSITIVITY(15) PORT_KEYDELTA(15) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) -INPUT_PORTS_END - -/*************************************************************************** - - Graphics Layouts - -***************************************************************************/ - -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { STEP4(3*4,-4),STEP4(7*4,-4) }, - { STEP8(0,8*4) }, - 8*8*4 -}; - -static const gfx_layout layout_16x16x4 = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { STEP4(0,1) }, - { 1*4,0*4,3*4,2*4,5*4,4*4,7*4,6*4,9*4,8*4,11*4,10*4,13*4,12*4,15*4,14*4 }, - { STEP16(0,16*4) }, - 16*16*4 -}; - -static const gfx_layout layout_16x16x8 = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { STEP8(0,1) }, - { STEP16(0,8) }, - { STEP16(0,16*8) }, - 16*16*8 -}; - -static const gfx_decode realbrk_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_16x16x8, 0, 0x80 }, // [0] Backgrounds - { REGION_GFX2, 0, &layout_8x8x4, 0, 0x800 }, // [1] Text - { REGION_GFX3, 0, &layout_16x16x8, 0, 0x80 }, // [2] Sprites (256 colors) - { REGION_GFX4, 0, &layout_16x16x4, 0, 0x800 }, // [3] Sprites (16 colors) - { -1 } -}; - - -/*************************************************************************** - - Machine Drivers - -***************************************************************************/ - -/*************************************************************************** - Billiard Academy Real Break -***************************************************************************/ - -static struct YMZ280Binterface realbrk_ymz280b_intf = -{ - REGION_SOUND1, - 0 -}; - -static INTERRUPT_GEN( realbrk_interrupt ) -{ - switch ( cpu_getiloops() ) - { - case 0: - /* VBlank is connected to INT1 (external interrupts pin 1) */ - tmp68301_external_interrupt_1(); - break; - } -} - -static MACHINE_DRIVER_START( realbrk ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",M68000,32000000 / 2) /* !! TMP68301 !! */ - MDRV_CPU_PROGRAM_MAP(base_mem,realbrk_mem) - MDRV_CPU_VBLANK_INT(realbrk_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET( tmp68301 ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(0x140, 0xe0) - MDRV_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MDRV_GFXDECODE(realbrk_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - - MDRV_VIDEO_START(realbrk) - MDRV_VIDEO_UPDATE(realbrk) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 33868800 / 2) - MDRV_SOUND_CONFIG(realbrk_ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(YM2413, 3579000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pkgnsh ) - MDRV_IMPORT_FROM( realbrk ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(base_mem,pkgnsh_mem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pkgnshdx ) - MDRV_IMPORT_FROM( realbrk ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(base_mem,pkgnshdx_mem) -MACHINE_DRIVER_END - -/*************************************************************************** - - ROMs Loading - -***************************************************************************/ - -/*************************************************************************** - -Pachinko Gindama Shoubu -Nakanihon Inc. / Dynax, 1998 - -PCB Layout ----------- - -NM5050905-1 -|----------------------------------------------------------------------| -| TA8201 75074 YM2413 |-----| |------------------------| | -| PST532A 3V_BATT 32.768kHz |68301| CN2|------------------------| | -| 75074 M6242B | | TC55257 YMZ280B | -| YAC513 3.579545MHz |-----| TC55257 TC55257 | -| |--------| | -| |ACTEL | TC55257 | -| |A1010B | | -| |(PLCC68)| TC55257 | -| |--------| | -|J TC55257 TC55257 | -|A | -|M TC55257 | -|M M548262 | -|A M548262 32.000MHz | -| TC55257 | -| |---------| |---------| | -| DSW1(10) |NIKANIHON| TC55257 |NIKANIHON| | -| |4L10F2468| |4L10F2467| | -| DSW2(10) TC55257 | | | | | -| |(QFP160) | |(QFP160) | | -| TC55257 |---------| |---------| | -| CN6 |------------------------| | -| CN7 33.8688MHz CN3|------------------------| | -|----------------------------------------------------------------------| -Notes: - *: unpopulated 32 pin sockets - PST532: IC for system reset and battery backup switching - DIPSW's: Each have 10 switches. - CN2/CN3: ROM daughterboard connectors - CN6/CN7: Connectors for player 3 & 4 controls - TC55257: 32K x8 SRAM - M548262: 256K x8 fastpage VRAM - - Vertical Sync: 60Hz - Horiz. Sync: 15.81kHz - 68301 clock: 16.000MHz (32 / 2) - YMZ280B clock: 16.9344MHz (33.8688 / 2) - YM2413 clock: 3.579545MHz -OKI M6242 clock: 32.768kHz - - -ROM Daughterboard ------------------ - -NS5050905-2 -|----------------------------------------| -| |------------------------| | -| CN1|------------------------| | -| | -| 50505.1K 50507.1F 50510.1C | -| 50506.1H 50508.1E 50511.1B | -| | -| PAL 50509.2D 50512.2A| -| | -| PAL | -| | -| | -|50503.3L * * * * | -| 50504.3K | -| | -| | -| | -| | -|50501.4L * * * * | -| 50502.4K | -| | -| | -| |------------------------| | -| CN2|------------------------| | -|----------------------------------------| -Notes: - *: Unpopulated 32pin sockets - -***************************************************************************/ - -ROM_START( pkgnsh ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */ - ROM_LOAD16_BYTE( "50506.1h", 0x000001, 0x080000, CRC(06949a7d) SHA1(1276c28bc5cebeae749e0cded2da631353efbbb4) ) - ROM_LOAD16_BYTE( "50505.1k", 0x000000, 0x080000, CRC(26df869f) SHA1(d716e561441da6ae8ca61e17335aab44770157a6) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Backgrounds */ - ROM_LOAD32_WORD( "50512.2a", 0x0000002, 0x200000, CRC(5adae7bb) SHA1(de7cf952155459f7aab1448620bf26a925ca0572) ) - ROM_LOAD32_WORD( "50509.2d", 0x0000000, 0x200000, CRC(ad937ab5) SHA1(ebe02c203358787c6b406fe3cbd3eca3b245456e) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* Text Layer */ - ROM_LOAD16_BYTE( "50510.1c", 0x000001, 0x020000, CRC(e26f1ad6) SHA1(5713af5fb02885657889cb2df7f58a39987ace6a) ) - ROM_LOAD16_BYTE( "50511.1b", 0x000000, 0x020000, CRC(3da9af01) SHA1(21313fd5c8cf7ccb72c85422dbddfceedab2542f) ) - - ROM_REGION( 0xc00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites (256 colors) */ - ROM_LOAD32_WORD( "50502.4k", 0x0000000, 0x400000, CRC(f7c04779) SHA1(fcbc2d166d405d0fe2a4ca67950fe6ec060b9fc1) ) // same as 52206.9f on dx - ROM_LOAD32_WORD( "50504.3k", 0x0000002, 0x400000, CRC(8e872be5) SHA1(0568a70ca640624f665b8b92ca5e9239b13ed116) ) // same as 52208.9d on dx - ROM_LOAD32_WORD( "50501.4l", 0x0800000, 0x200000, CRC(ca31e1ad) SHA1(7508547de5617f6091fc46f6eb1b45673419c483) ) - ROM_LOAD32_WORD( "50503.3l", 0x0800002, 0x200000, CRC(80b5e8d0) SHA1(27359affaa84c7cb4dfc019bbfeae0f384602faa) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites (16 colors) Not Used */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "50508.1e", 0x000000, 0x080000, CRC(95a1473a) SHA1(d382a9a603711747c2fe5bd5721de5af369ccc42) ) - ROM_LOAD( "50507.1f", 0x080000, 0x080000, CRC(34a003a1) SHA1(f3fa4de1f75e8fa18a8431a8c2ce495aa47989b9) ) -ROM_END - -/*************************************************************************** - -Pachinko Gindama Shoubu DX -Nakanihon Inc. / Dynax, 1998 - -PCB Layout ----------- - -NM522-1-9803 -|----------------------------------------------------------------------| -||-----| |--------| | -||68301| 52202B |ACTEL | M548262 YMZ280B 52204 | -|| | 52201B |TPC1010 | M548262 32.768kHz 52203 52205 | -||-----| |(PLCC68)| M6242B 3V_BATT | -| |--------||---------| PST532A |---------| | -| TC55257 33.8688MHz |NIKANIHON| |NIKANIHON| | -| TC55257 |4L10F2468| 32.000MHz |4L10F2467| | -|2 TC55257 | | | | | -|8 TC55257 |(QFP160) | |(QFP160) | | -|W |---------| PAL |---------| | -|A LC3664 52206 52208 52210 | -|Y VOL1 LC3664 52207 52209 52211 | -| VOL2 LC3664 | -| TA7252 3404 LC3664 | -| 3404 | -| YAC516 YM2413 TC55257 | -| 3.579545MHz TC55257 | -| DSW2(10) DSW1(10) | -| DSW3(10) DSW4(10) * * * * * * * * | -| TC55257 | -| CN3 TC55257 | -| CN4 | -|----------------------------------------------------------------------| - -Notes: - *: unpopulated 32 pin sockets - PST532: IC for system reset and battery backup switching - DIPSW's: Each have 10 switches. - VOL1/VOL2: Separate volume levels for sound and voice - CN3/CN4: Connectors for player 3 & 4 controls - TC55257: 32K x8 SRAM - LC3664: 8K x8 SRAM - M548262: 256K x8 fastpage VRAM - 28WAY: Edge connector is JAMMA backwards (GND is pin 28,27; +5V is pins 26,25 etc) - and with RBG locations moved (i.e. not standard JAMMA) - - Vertical Sync: 60Hz - Horiz. Sync: 15.81kHz - 68301 clock: 16.000MHz (32 / 2) - YMZ280B clock: 16.9344MHz (33.8688 / 2) - YM2413 clock: 3.579545MHz -OKI M6242 clock: 32.768kHz - -***************************************************************************/ - -ROM_START( pkgnshdx ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */ - ROM_LOAD16_BYTE( "52202b.1r", 0x000000, 0x080000, CRC(3c1a10de) SHA1(44a13adec64645aa01e216dfd527b59e7298c732) ) - ROM_LOAD16_BYTE( "52201b.2r", 0x000001, 0x080000, CRC(d63797ce) SHA1(d1b0b57b5426135e36772be296e94e04822e54ac) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* Backgrounds */ - ROM_LOAD32_WORD( "52210.9b", 0x0000000, 0x200000, CRC(6865b76a) SHA1(26215ec38b1fef279b3c3c1453116a0afe938b6b) ) - ROM_LOAD32_WORD( "52211.9a", 0x0000002, 0x200000, CRC(8e227328) SHA1(200f9e4419dac62b191e5e8c6c32b777a9c08e5e) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* Text Layer */ - ROM_LOAD16_BYTE( "52205.1a", 0x000000, 0x020000, CRC(4b7d16c0) SHA1(5f6410121ec13bea2869d61db169dbe2536453ea) ) - ROM_LOAD16_BYTE( "52204.1b", 0x000001, 0x020000, CRC(47a39496) SHA1(3ac9499b70c63185fb65378c18d4ff30ba1d2f2b) ) - - ROM_REGION( 0xc00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites (256 colors) */ - ROM_LOAD32_WORD( "52206.9f", 0x0000000, 0x400000, CRC(f7c04779) SHA1(fcbc2d166d405d0fe2a4ca67950fe6ec060b9fc1) ) - ROM_LOAD32_WORD( "52208.9d", 0x0000002, 0x400000, CRC(8e872be5) SHA1(0568a70ca640624f665b8b92ca5e9239b13ed116) ) - ROM_LOAD32_WORD( "52207.9e", 0x0800000, 0x200000, CRC(ae7a983f) SHA1(ba8ff28068e21dd24ea2e523a5b4023e86ea26cb) ) - ROM_LOAD32_WORD( "52209.9c", 0x0800002, 0x200000, CRC(83ac2ea9) SHA1(aa1c45b7a404eed51e950bea3edcd34814f09213) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites (16 colors) Not Used */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "52203.2e", 0x000000, 0x100000, CRC(342a193d) SHA1(1e75ec7ac48dcc8396a0fa6db14f2661c28f671c) ) -ROM_END - -/*************************************************************************** - - Billiard Academy Real Break - -Dynax, 1998 - -PCB Layout ----------- - - -NM523-1-9805 ------------------------------------------------------------------------- -| | -| 68301-16 52302 ACTEL M548262 YMZ280B * 52304 | -| 52301 A1010A M548262 52303 52305 | -| 33.8688MHz | -| TC55257 PST532A % | -| TC55257 4L10F2468 4L10F2467 | -| TC55257 (QFP160) 32.000MHz (QFP160) | -| J TC55257 | -| A PAL | -| M | -| M LH5160 52306 52308 52310 | -| A VOL1 LH5160 52307 52309 52311 | -| VOL2 LH5160 | -| LH5160 | -| | -| YM2413 TC55257 | -| 3.579MHz TC55257 * 52312 * * * * | -| | -| YAC516 | -| TC55257 TC55257 | -| DSW2(10) DSW1(10) TC55257 TC55257 | -| | ------------------------------------------------------------------------- - -Notes: - *: unpopulated 42 pin sockets. - %: unpopulated position for coin battery. - PST532: IC for system reset and battery backup switching - DIPSW's: Each have 10 switches. - VOL1/VOL2: Separate volume levels for sound and voice -Vertical Sync: 60Hz - Horiz. Sync: 15.81kHz - -***************************************************************************/ - -ROM_START( realbrk ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */ - ROM_LOAD16_BYTE( "600k02b.1r", 0x000000, 0x080000, CRC(6954ff7f) SHA1(dc17be7dadb2d6acff039d4d6484ee71070e466d) ) - ROM_LOAD16_BYTE( "600k01b.2r", 0x000001, 0x080000, CRC(6eb865bf) SHA1(07bcdbec8fd8d280b1cdb4b5545607d3a87e2395) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Backgrounds */ - ROM_LOAD32_WORD( "52310.9b", 0x0000000, 0x400000, CRC(07dfd9f5) SHA1(8722a98adc33f56df1e3b194ce923bc987e15cbe) ) - ROM_LOAD32_WORD( "52311.9a", 0x0000002, 0x400000, CRC(136a93a4) SHA1(b4bd46ba6c2b367aaf362f67d8be4757f1160864) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* Text Layer */ - ROM_LOAD16_BYTE( "52305.1a", 0x000000, 0x020000, CRC(56546fb4) SHA1(5e4dc1665ca96bf24b89d92c24f5ff8420cb465e) ) // 1xxxxxxxxxxxxxxxx = 0xFF - ROM_LOAD16_BYTE( "52304.1b", 0x000001, 0x020000, CRC(b22b0aac) SHA1(8c62e19071a4031d0dcad621cce0ba550702659b) ) // 1xxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0xc00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites (256 colors) */ - ROM_LOAD32_WORD( "52306.9f", 0x0000000, 0x400000, CRC(5ff0f666) SHA1(e3f1d9dc84fbef73af37cefd90bdf87a35f59e0e) ) - ROM_LOAD32_WORD( "52308.9d", 0x0000002, 0x400000, CRC(20817051) SHA1(4c9a443b5d6353ce67d5b1fe716f5ac20d194ef0) ) - ROM_LOAD32_WORD( "mm60007.9e", 0x0800000, 0x200000, CRC(a1d40934) SHA1(59b85435b13c6617e79b8d995506e585b6c8bedd) ) - ROM_LOAD32_WORD( "mm60009.9c", 0x0800002, 0x200000, CRC(58c03a6c) SHA1(ec7ae49bba6ffdba0f79f1e41e14945f6c3acb1d) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites (16 colors) */ - ROM_LOAD( "mm60012.14f", 0x000000, 0x200000, CRC(2b5ba1ec) SHA1(d548ef8c96b7b868c866dedb314f56583726564d) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mm60003.2e", 0x000000, 0x400000, CRC(39512459) SHA1(b5859a7d8f2f87d923e7f86f095cbffd31f9cbfa) ) -ROM_END - -ROM_START( realbrkj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */ - ROM_LOAD16_BYTE( "52302.1r", 0x000000, 0x080000, CRC(ab0379b0) SHA1(67af6670f2b37a7d4d6e03508f291f8ffe64d4cb) ) - ROM_LOAD16_BYTE( "52301.2r", 0x000001, 0x080000, CRC(9cc1596e) SHA1(a598f18eaac1ed6943069e9500b07b77e263f0d0) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Backgrounds */ - ROM_LOAD32_WORD( "52310.9b", 0x0000000, 0x400000, CRC(07dfd9f5) SHA1(8722a98adc33f56df1e3b194ce923bc987e15cbe) ) - ROM_LOAD32_WORD( "52311.9a", 0x0000002, 0x400000, CRC(136a93a4) SHA1(b4bd46ba6c2b367aaf362f67d8be4757f1160864) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* Text Layer */ - ROM_LOAD16_BYTE( "52305.1a", 0x000000, 0x020000, CRC(56546fb4) SHA1(5e4dc1665ca96bf24b89d92c24f5ff8420cb465e) ) // 1xxxxxxxxxxxxxxxx = 0xFF - ROM_LOAD16_BYTE( "52304.1b", 0x000001, 0x020000, CRC(b22b0aac) SHA1(8c62e19071a4031d0dcad621cce0ba550702659b) ) // 1xxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0xc00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites (256 colors) */ - ROM_LOAD32_WORD( "52306.9f", 0x0000000, 0x400000, CRC(5ff0f666) SHA1(e3f1d9dc84fbef73af37cefd90bdf87a35f59e0e) ) - ROM_LOAD32_WORD( "52308.9d", 0x0000002, 0x400000, CRC(20817051) SHA1(4c9a443b5d6353ce67d5b1fe716f5ac20d194ef0) ) - ROM_LOAD32_WORD( "52307.9e", 0x0800000, 0x200000, CRC(01555191) SHA1(7751e2e16345acc638d4dff997a5b52e9171fced) ) - ROM_LOAD32_WORD( "52309.9c", 0x0800002, 0x200000, CRC(ef4f4bd9) SHA1(3233f501002a2622ddda581167ae24b1a13ea79e) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites (16 colors) */ - ROM_LOAD( "52312.14f", 0x000000, 0x200000, CRC(2203d7c5) SHA1(0403f02b8f2bfc6cf98ff598eb9c2e3facc7ac4c) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "52303.2e", 0x000000, 0x400000, CRC(d3005b1e) SHA1(3afd10cdbc3aa7605083a9fcf3c4b8276937c2c4) ) -ROM_END - -ROM_START( realbrkk ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* TMP68301 Code */ - ROM_LOAD16_BYTE( "600k_02b", 0x000000, 0x080000, CRC(fdca08b1) SHA1(69b35c85b1842d0a8c98fc519b46c72954322ceb -) ) - ROM_LOAD16_BYTE( "600k_01b", 0x000001, 0x080000, CRC(b6fe8998) SHA1(86f7d6067e007de50a02478a0e583ab64408bc4f) ) - - ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Backgrounds */ - ROM_LOAD32_WORD( "52310.9b", 0x0000000, 0x400000, CRC(07dfd9f5) SHA1(8722a98adc33f56df1e3b194ce923bc987e15cbe) ) - ROM_LOAD32_WORD( "52311.9a", 0x0000002, 0x400000, CRC(136a93a4) SHA1(b4bd46ba6c2b367aaf362f67d8be4757f1160864) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* Text Layer */ - ROM_LOAD16_BYTE( "600k_05", 0x000000, 0x020000, CRC(4de1d95e) SHA1(093d6d229b0e43e35f84a8d1bd707ccd1452fa91 -) ) // 1xxxxxxxxxxxxxxxx = 0xFF - ROM_LOAD16_BYTE( "600k_04", 0x000001, 0x020000, CRC(70f2cf3d) SHA1(214550b1a838243fadf5c6b8ba6cbecef2031985) ) // 1xxxxxxxxxxxxxxxx = 0xFF - - ROM_REGION( 0xc00000, REGION_GFX3, ROMREGION_DISPOSE ) /* Sprites (256 colors) */ - ROM_LOAD32_WORD( "52306.9f", 0x0000000, 0x400000, CRC(5ff0f666) SHA1(e3f1d9dc84fbef73af37cefd90bdf87a35f59e0e) ) - ROM_LOAD32_WORD( "52308.9d", 0x0000002, 0x400000, CRC(20817051) SHA1(4c9a443b5d6353ce67d5b1fe716f5ac20d194ef0) ) - ROM_LOAD32_WORD( "mm60007.9e", 0x0800000, 0x200000, CRC(a1d40934) SHA1(59b85435b13c6617e79b8d995506e585b6c8bedd) ) - ROM_LOAD32_WORD( "mm60009.9c", 0x0800002, 0x200000, CRC(58c03a6c) SHA1(ec7ae49bba6ffdba0f79f1e41e14945f6c3acb1d) ) - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) /* Sprites (16 colors) */ - ROM_LOAD( "mm60012.14f", 0x000000, 0x200000, CRC(2b5ba1ec) SHA1(d548ef8c96b7b868c866dedb314f56583726564d) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "mm60003.2e", 0x000000, 0x400000, CRC(39512459) SHA1(b5859a7d8f2f87d923e7f86f095cbffd31f9cbfa) ) -ROM_END - - -GAME( 1998, pkgnsh, 0, pkgnsh, pkgnsh, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, pkgnshdx, 0, pkgnshdx, pkgnshdx, 0, ROT0, "Nakanihon / Dynax", "Pachinko Gindama Shoubu DX (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, realbrk, 0, realbrk, realbrk, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, realbrkj, realbrk, realbrk, realbrk, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, realbrkk, realbrk, realbrk, realbrk, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Korea)", GAME_IMPERFECT_GRAPHICS ) - diff --git a/src/drivers/redalert.c b/src/drivers/redalert.c deleted file mode 100644 index d40aaeb8a..000000000 --- a/src/drivers/redalert.c +++ /dev/null @@ -1,558 +0,0 @@ -/*************************************************************************** - -Irem Red Alert Driver - -Everything in this driver is guesswork and speculation. If something -seems wrong, it probably is. - -If you have any questions about how this driver works, don't hesitate to -ask. - Mike Balfour (mab22@po.cwru.edu) -***************************************************************************/ - -#include "driver.h" -#include "machine/6821pia.h" -#include "sound/ay8910.h" - -/* vidhrdw/redalert.c */ -extern unsigned char *redalert_backram; -extern unsigned char *redalert_spriteram1; -extern unsigned char *redalert_spriteram2; -extern unsigned char *redalert_spriteram3; -extern unsigned char *redalert_characterram; -extern unsigned char *redalert_characterram2; -WRITE8_HANDLER( redalert_backram_w ); -WRITE8_HANDLER( redalert_spriteram1_w ); -WRITE8_HANDLER( redalert_spriteram2_w ); -WRITE8_HANDLER( redalert_spriteram3_w ); -WRITE8_HANDLER( redalert_spriteram4_w ); -WRITE8_HANDLER( redalert_characterram_w ); -WRITE8_HANDLER( redalert_characterram2_w ); -extern VIDEO_UPDATE( redalert ); -WRITE8_HANDLER( redalert_c040_w ); -WRITE8_HANDLER( demoneye_c040_w ); -WRITE8_HANDLER( redalert_backcolor_w ); - - -/* sndhrdw/redalert.c */ -WRITE8_HANDLER( redalert_c030_w ); -READ8_HANDLER( redalert_voicecommand_r ); -WRITE8_HANDLER( redalert_soundlatch_w ); -READ8_HANDLER( redalert_AY8910_A_r ); -WRITE8_HANDLER( redalert_AY8910_B_w ); -WRITE8_HANDLER( redalert_AY8910_w ); -READ8_HANDLER( redalert_sound_register_IC1_r ); -WRITE8_HANDLER( redalert_sound_register_IC2_w ); - - -static ADDRESS_MAP_START( redalert_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) /* Zero page / stack */ - AM_RANGE(0x0200, 0x0fff) AM_READ(MRA8_RAM) /* ? */ - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* Scratchpad video RAM */ - AM_RANGE(0x2000, 0x4fff) AM_READ(MRA8_RAM) /* Video RAM */ - AM_RANGE(0x5000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc100, 0xc100) AM_READ(input_port_0_r) - AM_RANGE(0xc110, 0xc110) AM_READ(input_port_1_r) - AM_RANGE(0xc120, 0xc120) AM_READ(input_port_2_r) - AM_RANGE(0xc170, 0xc170) AM_READ(watchdog_reset_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) /* remapped ROM for 6502 vectors */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redalert_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0200, 0x0fff) AM_WRITE(MWA8_RAM) /* ? */ - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_RAM) /* Scratchpad video RAM */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(redalert_backram_w) AM_BASE(&redalert_backram) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x4400, 0x47ff) AM_WRITE(redalert_spriteram1_w) AM_BASE(&redalert_spriteram1) - AM_RANGE(0x4800, 0x4bff) AM_WRITE(redalert_characterram_w) AM_BASE(&redalert_characterram) - AM_RANGE(0x4c00, 0x4fff) AM_WRITE(redalert_spriteram2_w) AM_BASE(&redalert_spriteram2) - AM_RANGE(0x5000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc130, 0xc130) AM_WRITE(redalert_c030_w) - AM_RANGE(0xc140, 0xc140) AM_WRITE(redalert_c040_w) - AM_RANGE(0xc150, 0xc150) AM_WRITE(redalert_backcolor_w) - AM_RANGE(0xc160, 0xc160) AM_WRITE(redalert_soundlatch_w) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redalert_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_RAM) - AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_ROM) - AM_RANGE(0x1001, 0x1001) AM_READ(redalert_sound_register_IC1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redalert_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x7800, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x1000, 0x1000) AM_WRITE(redalert_AY8910_w) - AM_RANGE(0x1001, 0x1001) AM_WRITE(redalert_sound_register_IC2_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redalert_voice_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc000, 0xc000) AM_READ(redalert_voicecommand_r) /* reads command from D0-D5? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( redalert_voice_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( demoneye_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM) /* Zero page / stack */ - AM_RANGE(0x0200, 0x0fff) AM_READ(MRA8_RAM) /* ? */ - AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_RAM) /* Scratchpad video RAM */ - AM_RANGE(0x2000, 0x4fff) AM_READ(MRA8_RAM) /* Video RAM */ - AM_RANGE(0x5000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc100, 0xc100) AM_READ(input_port_0_r) - AM_RANGE(0xc110, 0xc110) AM_READ(input_port_1_r) - AM_RANGE(0xc120, 0xc120) AM_READ(input_port_2_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) /* remapped ROM for 6502 vectors */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( demoneye_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0200, 0x0fff) AM_WRITE(MWA8_RAM) /* ? */ - AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_RAM) /* Scratchpad video RAM */ - AM_RANGE(0x2000, 0x3fff) AM_WRITE(redalert_backram_w) AM_BASE(&redalert_backram) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(redalert_characterram_w) AM_BASE(&redalert_characterram) - AM_RANGE(0x4400, 0x47ff) AM_WRITE(redalert_spriteram1_w) AM_BASE(&redalert_spriteram1) - AM_RANGE(0x4800, 0x4bff) AM_WRITE(redalert_characterram2_w) AM_BASE(&redalert_characterram2) - AM_RANGE(0x4c00, 0x4fff) AM_WRITE(redalert_spriteram2_w) AM_BASE(&redalert_spriteram2) - AM_RANGE(0x5000, 0x53ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x5400, 0x57ff) AM_WRITE(redalert_spriteram3_w) AM_BASE(&redalert_spriteram3) - AM_RANGE(0x5800, 0x5bff) AM_WRITE(MWA8_RAM) //??? - AM_RANGE(0x5c00, 0x5fff) AM_WRITE(MWA8_RAM) //??? - AM_RANGE(0x6000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc130, 0xc130) AM_WRITE(MWA8_NOP) - AM_RANGE(0xc140, 0xc140) AM_WRITE(demoneye_c040_w) - AM_RANGE(0xc150, 0xc150) AM_WRITE(redalert_backcolor_w) - AM_RANGE(0xc160, 0xc160) AM_WRITE(MWA8_NOP) - AM_RANGE(0xc161, 0xc161) AM_WRITE(MWA8_NOP) - AM_RANGE(0xc162, 0xc162) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xc163, 0xc163) AM_WRITE(MWA8_NOP) - AM_RANGE(0xc170, 0xc170) AM_WRITE(MWA8_NOP) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( demoneye_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0500, 0x0503) AM_READ(pia_0_r) - AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( demoneye_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0500, 0x0503) AM_WRITE(pia_0_w) - AM_RANGE(0x2000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -INPUT_PORTS_START( redalert ) - PORT_START /* DIP Switches */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, "Cabinet in Service Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "5000" ) - PORT_DIPSETTING( 0x08, "7000" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - - PORT_START /* Fake input for coins */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( demoneye ) - PORT_START /* DIP Switches */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "5000" ) - PORT_DIPSETTING( 0x08, "7000" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - - PORT_START /* IN2 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - PORT_BIT ( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Meter */ - - PORT_START /* Fake input for coins */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) -INPUT_PORTS_END - - -static const gfx_layout backlayout = -{ - 8,8, /* 8*8 characters */ - 0x400, /* 1024 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* No info needed for bit offsets */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 charlayout = -{ - 8,8, /* 8*8 characters */ - 128, /* 128 characters */ - 1, /* 1 bits per pixel */ - { 0 }, /* No info needed for bit offsets */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 = -{ - 8,8, /* 8*8 characters */ - 128, /* 128 characters */ - 2, /* 2 bits per pixel */ - { 0, 0x800*8 }, /* No info needed for bit offsets */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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_decode redalert_gfxdecodeinfo[] = -{ - { 0, 0x3000, &backlayout, 0, 8 }, /* the game dynamically modifies this */ - { 0, 0x4800, &charlayout, 0, 8 }, /* the game dynamically modifies this */ - { 0, 0x4400, &spritelayout,16, 4 }, /* the game dynamically modifies this */ - { -1 } /* end of array */ -}; - -static const gfx_decode demoneye_gfxdecodeinfo[] = -{ - { 0, 0x3000, &backlayout, 0, 8 }, /* the game dynamically modifies this */ - { 0, 0x4800, &spritelayout,16, 4 }, /* the game dynamically modifies this */ - { 0, 0x4400, &spritelayout,16, 4 }, /* the game dynamically modifies this */ - { 0, 0x5400, &spritelayout,16, 4 }, /* the game dynamically modifies this */ - { -1 } /* end of array */ -}; - -/* Arbitrary colortable */ -static unsigned short colortable_source[] = -{ - 0,7, - 0,6, - 0,2, - 0,4, - 0,3, - 0,6, - 0,1, - 0,8, - - 0,8,8,8, - 0,6,4,7, - 0,6,4,1, - 0,8,5,1, -}; - -static PALETTE_INIT( redalert ) -{ - /* Arbitrary colors */ - palette_set_color(machine,0,0x40,0x80,0xff); /* Background */ - palette_set_color(machine,1,0x00,0x00,0xff); /* Blue */ - palette_set_color(machine,2,0xff,0x00,0xff); /* Magenta */ - palette_set_color(machine,3,0x00,0xff,0xff); /* Cyan */ - palette_set_color(machine,4,0xff,0x00,0x00); /* Red */ - palette_set_color(machine,5,0xff,0x80,0x00); /* Orange */ - palette_set_color(machine,6,0xff,0xff,0x00); /* Yellow */ - palette_set_color(machine,7,0xff,0xff,0xff); /* White */ - palette_set_color(machine,8,0x00,0x00,0x00); /* Black */ - - memcpy(colortable,colortable_source,sizeof(colortable_source)); -} - -static INTERRUPT_GEN( redalert_interrupt ) -{ - if( readinputport(3) ) - { - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - else - { - cpunum_set_input_line(0, 0, HOLD_LINE); - } -} - -static struct AY8910interface redalert_ay8910_interface = -{ - redalert_AY8910_A_r, /* Port A Read */ - 0, /* Port B Read */ - 0, /* Port A Write */ - redalert_AY8910_B_w /* Port B Write */ -}; - -static MACHINE_DRIVER_START( redalert ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 1000000) /* ???? */ - MDRV_CPU_PROGRAM_MAP(redalert_readmem,redalert_writemem) - MDRV_CPU_VBLANK_INT(redalert_interrupt,1) - - MDRV_CPU_ADD(M6502, 1000000) - /* audio CPU */ /* 1 MHz */ - MDRV_CPU_PROGRAM_MAP(redalert_sound_readmem,redalert_sound_writemem) - /* IRQ is hooked to a 555 timer, whose freq is 1150 Hz */ - MDRV_CPU_PERIODIC_INT(irq0_line_hold,TIME_IN_HZ(1150)) - - MDRV_CPU_ADD(8085A, 1000000) - /* audio CPU */ /* 1 MHz? */ - MDRV_CPU_PROGRAM_MAP(redalert_voice_readmem,redalert_voice_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(redalert_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(9) - MDRV_COLORTABLE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) - - MDRV_PALETTE_INIT(redalert) - MDRV_VIDEO_START(generic) - MDRV_VIDEO_UPDATE(redalert) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_CONFIG(redalert_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/* PIA 0, sound CPU */ -static const pia6821_interface pia_0_intf = -{ - /*inputs : A/B,CA/B1,CA/B2 */ 0, 0, 0, 0, 0, 0, - /*outputs: A/B,CA/B2 */ 0, 0, 0, 0, - /*irqs : A/B */ 0, 0 -}; - -MACHINE_START( demoneye ) -{ - pia_config(0, PIA_STANDARD_ORDERING, &pia_0_intf); - return 0; -} - -MACHINE_RESET( demoneye ) -{ - pia_reset(); -} - -static MACHINE_DRIVER_START( demoneye ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 11730000/2) /* 11.73MHz */ - MDRV_CPU_PROGRAM_MAP(demoneye_readmem,demoneye_writemem) - MDRV_CPU_VBLANK_INT(redalert_interrupt,1) - - MDRV_CPU_ADD(M6802, 3579545) /* 3.579545 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(demoneye_sound_readmem,demoneye_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(demoneye) - MDRV_MACHINE_RESET(demoneye) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(demoneye_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(9) - MDRV_COLORTABLE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) - - MDRV_PALETTE_INIT(redalert) - MDRV_VIDEO_START(generic) - MDRV_VIDEO_UPDATE(redalert) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(AY8910, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( redalert ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rag5", 0x5000, 0x1000, CRC(d7c9cdd6) SHA1(5ff5cdceaa00083b745cf5c74b096f7edfadf737) ) - ROM_LOAD( "rag6", 0x6000, 0x1000, CRC(cb2a308c) SHA1(9f3bc22bad31165e080e81d4a3fb0ec2aad235fe) ) - ROM_LOAD( "rag7n", 0x7000, 0x1000, CRC(82ab2dae) SHA1(f8328b048384afac245f1c16a2d0864ffe0b4741) ) - ROM_LOAD( "rag8n", 0x8000, 0x1000, CRC(b80eece9) SHA1(d986449bdb1d94832187c7f953f01330391ef4c9) ) - ROM_RELOAD( 0xf000, 0x1000 ) - ROM_LOAD( "rag9", 0x9000, 0x1000, CRC(2b7d1295) SHA1(1498af0c55bd38fe79b91afc38921085102ebbc3) ) - ROM_LOAD( "ragab", 0xa000, 0x1000, CRC(ab99f5ed) SHA1(a93713bb03d61cce64adc89b874b67adea7c53cd) ) - ROM_LOAD( "ragb", 0xb000, 0x1000, CRC(8e0d1661) SHA1(bff4ddca761ddd70113490f50777e62c66813685) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "w3s1", 0x7800, 0x0800, CRC(4af956a5) SHA1(25368a40d7ebc60316fd2d78ec4c686e701b96dc) ) - ROM_RELOAD( 0xf800, 0x0800 ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for code */ - ROM_LOAD( "ras1b", 0x0000, 0x1000, CRC(ec690845) SHA1(26a84738bd45ed21dac6c8383ebd9c3b9831024a) ) - ROM_LOAD( "ras2", 0x1000, 0x1000, CRC(fae94cfc) SHA1(2fd798706bb3afda3fb55bc877e597cc4e5d0c15) ) - ROM_LOAD( "ras3", 0x2000, 0x1000, CRC(20d56f3e) SHA1(5c32ee3365407e6d3f7ab5662e9ecbac437ed4cb) ) - ROM_LOAD( "ras4", 0x3000, 0x1000, CRC(130e66db) SHA1(385b8f889fee08fddbb2f75a691af569109eacd1) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* unknow */ - ROM_LOAD( "m-257sc.1a", 0x0000, 0x0200, CRC(b1aca792) SHA1(db37f99b9880cc3c434e2a55a0bbb017d9a72aa3) ) -ROM_END - - -/******************************************************************** -IREM 'DEMONEYE-X' proto 1981 - -proto sound board - -8910 -6821 8910 -6802 sound6 sound7 - 3.579545MHz - - main board M-27M-C - - 11.73MHz 6502 x x x xx - x x x on - 4116 8 - 4116 - - 4116 9 - 4116 6 - 4116 A - 4116 7 - 4116 B - 4116 - - sub board 1 M-27Sb - - 1a2 - - 2114 - 2114 - 2114 <- two parts piggy-backed - 2114 <- two parts piggy-backed - 2114 2114 - 2114 2114 - -sub board 2 M-42-S - - 1a clr(missing) - - 2114 - 2114 - 2114 - 2114 - 2114 - 2114 - -*********************************************************************/ - -ROM_START( demoneye ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "demoneye.6", 0x6000, 0x1000, CRC(b03ee3a9) SHA1(66b6115fbb4e8097152702022c59c464e8211e5a) ) - ROM_LOAD( "demoneye.7", 0x7000, 0x1000, CRC(667a5de7) SHA1(c3ce7fbbc6c98250e9d5f85854e6887017ca5ff9) ) - ROM_LOAD( "demoneye.8", 0x8000, 0x1000, CRC(257484d7) SHA1(3937cce546462a471adbdc1da63ddfc20cfc7b79) ) - ROM_RELOAD( 0xf000, 0x1000 ) - ROM_LOAD( "demoneye.9", 0x9000, 0x1000, CRC(bd8d79a8) SHA1(68c1443ef78b545eb9e612573b86515c3ad7f103) ) - ROM_LOAD( "demoneye.a", 0xa000, 0x1000, CRC(a27d08aa) SHA1(659ad22778e852fc58f3951d62bc01151c973d36) ) - ROM_LOAD( "demoneye.b", 0xb000, 0x1000, CRC(1fd3585b) SHA1(b1697b7b21b739499fda1e155530dbfab89f3358) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "demoneye.7s", 0x2000, 0x1000, CRC(8fdc9364) SHA1(3fccb5b22f08d6a0cde85863c1ce5399c84f233e) ) - ROM_LOAD( "demoneye.6s", 0xf000, 0x1000, CRC(0a23def9) SHA1(b52f52be312ec7810e3c9cbd3913e887f983b1ee) ) - - ROM_REGION( 0x0400, REGION_USER1, 0 ) /* unknow */ - ROM_LOAD( "demoneye.1a", 0x0000, 0x0200, CRC(d03488ea) SHA1(11027f502ad2a9255b2e5611ab2eee16ede1d704) ) - ROM_LOAD( "demoneye.1a2", 0x0200, 0x0200, CRC(eaf5a66e) SHA1(d8ebe05ba5d75fbf6ad45f710e5bd27b6afad44b) ) -ROM_END - -GAME( 1981, redalert, 0, redalert, redalert, 0, ROT270, "Irem + GDI", "Red Alert", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) -GAME( 1981, demoneye, 0, demoneye, demoneye, 0, ROT270, "Irem", "Demoneye-X", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) diff --git a/src/drivers/retofinv.c b/src/drivers/retofinv.c deleted file mode 100644 index 1c1ba3979..000000000 --- a/src/drivers/retofinv.c +++ /dev/null @@ -1,530 +0,0 @@ -/*************************************************************************** - -Return of the Invaders - -driver by Jarek Parchanski, Andrea Mazzoleni - -the game was developed by UPL for Taito. - -Notes: -- I derived the ROM names from the board diagram in the manual. There might - be some mistakes. The diagram actually shows 4 PROMs on the ROM board - (a37-17, -18, -19 and -20), while we only have one: 82s191n. I think it's - possible that the single 2KB PROM replaced four 512B PROMs in a later - revision of the board. - -- The video hardware (especially the sprite system) is quite obviously derived - from a Namco design. - -- Two bits of tilemap RAM might be used for tile flip, but the game never sets - them so we can't verify without schematics. - -- We don't have a dump of the original MCU. We have a dump from a bootleg MCU, - which however cannot be the same as the original. The game works fine with it, - but only when the flip screen dip switch is set to off. If it is set to on, it - hangs when starting a game because the mcu doesn't answer a command. - See MCU code at $206 and $435: when the dip switch is on, the lda #$00 should - be replaced by lda #$01. - -***************************************************************************/ - -#include "driver.h" -#include "sound/sn76496.h" - -/* in machine */ -READ8_HANDLER( retofinv_68705_portA_r ); -WRITE8_HANDLER( retofinv_68705_portA_w ); -WRITE8_HANDLER( retofinv_68705_ddrA_w ); -READ8_HANDLER( retofinv_68705_portB_r ); -WRITE8_HANDLER( retofinv_68705_portB_w ); -WRITE8_HANDLER( retofinv_68705_ddrB_w ); -READ8_HANDLER( retofinv_68705_portC_r ); -WRITE8_HANDLER( retofinv_68705_portC_w ); -WRITE8_HANDLER( retofinv_68705_ddrC_w ); -WRITE8_HANDLER( retofinv_mcu_w ); -READ8_HANDLER( retofinv_mcu_r ); -READ8_HANDLER( retofinv_mcu_status_r ); - -/* in vidhrdw */ -VIDEO_START( retofinv ); -PALETTE_INIT( retofinv ); -VIDEO_UPDATE( retofinv ); -READ8_HANDLER( retofinv_bg_videoram_r ); -READ8_HANDLER( retofinv_fg_videoram_r ); -WRITE8_HANDLER( retofinv_bg_videoram_w ); -WRITE8_HANDLER( retofinv_fg_videoram_w ); -WRITE8_HANDLER( retofinv_gfx_ctrl_w ); - -extern UINT8 *retofinv_fg_videoram; -extern UINT8 *retofinv_bg_videoram; -extern UINT8 *retofinv_sharedram; - -static unsigned char cpu2_m6000=0; - - -static WRITE8_HANDLER( cpu1_reset_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); -} - -static WRITE8_HANDLER( cpu2_reset_w ) -{ - cpunum_set_input_line(2, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); -} - -static WRITE8_HANDLER( mcu_reset_w ) -{ - /* the bootlegs don't have a MCU, so make sure it's there before trying to reset it */ - if (cpu_gettotalcpu() >= 4) - cpunum_set_input_line(3, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); -} - -static WRITE8_HANDLER( cpu2_m6000_w ) -{ - cpu2_m6000 = data; -} - -static READ8_HANDLER( cpu0_mf800_r ) -{ - return cpu2_m6000; -} - -static WRITE8_HANDLER( soundcommand_w ) -{ - soundlatch_w(0, data); - cpunum_set_input_line(2, 0, HOLD_LINE); -} - -static WRITE8_HANDLER( irq0_ack_w ) -{ - int bit = data & 1; - - cpu_interrupt_enable(0,bit); - if (!bit) - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( irq1_ack_w ) -{ - int bit = data & 1; - - cpu_interrupt_enable(1,bit); - if (!bit) - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( coincounter_w ) -{ - coin_counter_w(0, data & 1); -} - -static WRITE8_HANDLER( coinlockout_w ) -{ - coin_lockout_w(0,~data & 1); -} - - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_ROM - AM_RANGE(0x7fff, 0x7fff) AM_WRITE(coincounter_w) - AM_RANGE(0x7b00, 0x7bff) AM_ROM /* space for diagnostic ROM? The code looks */ - /* for a string here, and jumps if it's present */ - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(MRA8_RAM, retofinv_fg_videoram_w) AM_SHARE(2) AM_BASE(&retofinv_fg_videoram) - AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE(1) AM_BASE(&retofinv_sharedram) - AM_RANGE(0xa000, 0xa7ff) AM_READWRITE(MRA8_RAM, retofinv_bg_videoram_w) AM_SHARE(3) AM_BASE(&retofinv_bg_videoram) - AM_RANGE(0xb800, 0xb802) AM_WRITE(retofinv_gfx_ctrl_w) - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_1_r) - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_2_r) - AM_RANGE(0xc002, 0xc002) AM_READ(MRA8_NOP) /* bit 7 must be 0, otherwise game resets */ - AM_RANGE(0xc003, 0xc003) AM_READ(retofinv_mcu_status_r) - AM_RANGE(0xc004, 0xc004) AM_READ(input_port_0_r) - AM_RANGE(0xc005, 0xc005) AM_READ(input_port_3_r) - AM_RANGE(0xc006, 0xc006) AM_READ(input_port_4_r) - AM_RANGE(0xc007, 0xc007) AM_READ(input_port_5_r) - AM_RANGE(0xc800, 0xc800) AM_WRITE(irq0_ack_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(coinlockout_w) - AM_RANGE(0xc802, 0xc802) AM_WRITE(cpu2_reset_w) - AM_RANGE(0xc803, 0xc803) AM_WRITE(mcu_reset_w) -// AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w) // presumably (meaning memory map is shared with cpu 1) - AM_RANGE(0xc805, 0xc805) AM_WRITE(cpu1_reset_w) - AM_RANGE(0xd000, 0xd000) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xd800, 0xd800) AM_WRITE(soundcommand_w) - AM_RANGE(0xe000, 0xe000) AM_READ(retofinv_mcu_r) - AM_RANGE(0xe800, 0xe800) AM_WRITE(retofinv_mcu_w) - AM_RANGE(0xf800, 0xf800) AM_READ(cpu0_mf800_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(MRA8_RAM, retofinv_fg_videoram_w) AM_SHARE(2) - AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE(1) - AM_RANGE(0xa000, 0xa7ff) AM_READWRITE(MRA8_RAM, retofinv_bg_videoram_w) AM_SHARE(3) - AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x27ff) AM_RAM - AM_RANGE(0x4000, 0x4000) AM_READ(soundlatch_r) - AM_RANGE(0x6000, 0x6000) AM_WRITE(cpu2_m6000_w) - AM_RANGE(0x8000, 0x8000) AM_WRITE(SN76496_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(SN76496_1_w) - AM_RANGE(0xe000, 0xffff) AM_ROM /* space for diagnostic ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READWRITE(retofinv_68705_portA_r, retofinv_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_READWRITE(retofinv_68705_portB_r, retofinv_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_READWRITE(retofinv_68705_portC_r, retofinv_68705_portC_w) - AM_RANGE(0x0004, 0x0004) AM_WRITE(retofinv_68705_ddrA_w) - AM_RANGE(0x0005, 0x0005) AM_WRITE(retofinv_68705_ddrB_w) - AM_RANGE(0x0006, 0x0006) AM_WRITE(retofinv_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_RAM - AM_RANGE(0x0080, 0x07ff) AM_ROM -ADDRESS_MAP_END - - - -INPUT_PORTS_START( retofinv ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x03, "30k, 80k & every 80k" ) - PORT_DIPSETTING( 0x02, "30k, 80k" ) - PORT_DIPSETTING( 0x01, "30k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x04, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x18, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) // according to manual - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) ) - PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) ) - - PORT_START_TAG("DSW3") - PORT_DIPNAME( 0x01, 0x01, "Push Start to Skip Stage (Cheat)") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) // according to manual - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) // according to manual - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) // according to manual - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Coin Per Play Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, "Year Display" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Coinage ) ) // unused according to manual - PORT_DIPSETTING( 0x80, "A and B" ) - PORT_DIPSETTING( 0x00, "A only" ) -INPUT_PORTS_END - -INPUT_PORTS_START( retofin2 ) - PORT_INCLUDE( retofinv ) - - PORT_MODIFY( "DSW1" ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x18, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "4" ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,2), /* bottom half of ROM is empty */ - 1, - { 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 -}; - -static const gfx_layout bglayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0, RGN_FRAC(1,2)+4, RGN_FRAC(1,2), 4 }, - { 0, 1, 2, 3, 8*8, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 -}; - -static const gfx_layout spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { 0, RGN_FRAC(1,2)+4, RGN_FRAC(1,2), 4 }, - { 0, 1, 2, 3, 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 256 }, - { REGION_GFX2, 0, &bglayout, 64*16+256*2, 64 }, - { REGION_GFX3, 0, &spritelayout, 256*2, 64 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( retofinv ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz? */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz? */ - MDRV_CPU_PROGRAM_MAP(sub_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) - - MDRV_CPU_ADD(Z80, 18432000/6) /* 3.072 MHz? */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,2) - - MDRV_CPU_ADD_TAG("68705", M68705,18432000/6) /* 3.072 MHz? */ - MDRV_CPU_PROGRAM_MAP(mcu_map,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - enough for the sound CPU to read all commands */ - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - MDRV_COLORTABLE_LENGTH(256*2+64*16+64*16) - - MDRV_PALETTE_INIT(retofinv) - MDRV_VIDEO_START(retofinv) - MDRV_VIDEO_UPDATE(retofinv) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 18432000/6) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - - MDRV_SOUND_ADD(SN76496, 18432000/6) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_DRIVER_END - - -/* bootleg has no mcu */ -static MACHINE_DRIVER_START( retofinb ) - - MDRV_IMPORT_FROM(retofinv) - MDRV_CPU_REMOVE("68705") - -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( retofinv ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a37-03.70", 0x0000, 0x2000, CRC(eae7459d) SHA1(c105f6adbd4c09decaad68ed13163d8f9b55e646) ) - ROM_LOAD( "a37-02.71", 0x2000, 0x2000, CRC(72895e37) SHA1(42fb904338e9f92a79d587eac401d456e7fb6e55) ) - ROM_LOAD( "a37-01.72", 0x4000, 0x2000, CRC(505dd20b) SHA1(3a34b1515bb834ff9e2d86b0b43a752d9619307b) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) ) - - ROM_REGION( 0x0800, REGION_CPU4, 0 ) /* 8k for the microcontroller */ - /* the only available dump is from a bootleg board, and is not the real thing (see notes at top of driver) */ - ROM_LOAD( "a37-09.37", 0x00000, 0x0800, NO_DUMP CRC(79bd6ded) SHA1(4967e95b4461c1bfb4e933d1804677799014f77b) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-16.61", 0x0000, 0x2000, CRC(4e3f501c) SHA1(2d832f4038ae65bfdeedfab870f6f1176ec6b676) ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-14.55", 0x0000, 0x2000, CRC(ef7f8651) SHA1(2d91057501e5e9c4255e0d55fff0d99c2a5be7e8) ) - ROM_LOAD( "a37-15.56", 0x2000, 0x2000, CRC(03b40905) SHA1(c10d87796e8a6e6a2a37c6fb713821cc87299cc8) ) - - ROM_REGION( 0x08000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-10.8", 0x0000, 0x2000, CRC(6afdeec8) SHA1(782fe0a8aea48c3c270318b7ba011fc6fce0db7a) ) - ROM_LOAD( "a37-11.9", 0x2000, 0x2000, CRC(d3dc9da3) SHA1(0d98d6e993b5a4845a23802751023b7a593dce29) ) - ROM_LOAD( "a37-12.10", 0x4000, 0x2000, CRC(d10b2eed) SHA1(3809a0adf935a119f9ee0d4c24f1456c35d2a6fa) ) - ROM_LOAD( "a37-13.11", 0x6000, 0x2000, CRC(00ca6b3d) SHA1(08ce5b13d5ebc79cc803949f4ba9e630e6cd92b8) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) ) /* palette red bits */ - ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) ) /* palette green bits */ - ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) ) /* palette blue bits */ - ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) ) /* lookup table */ -ROM_END - -ROM_START( retofin1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "roi.02", 0x0000, 0x2000, CRC(d98fd462) SHA1(fd35e13b7dee58639a01b040b8f84d42bb40b633) ) - ROM_LOAD( "roi.01b", 0x2000, 0x2000, CRC(3379f930) SHA1(c67d687a10b6240bd6e2fbdb15e1b7d276e6fc07) ) - ROM_LOAD( "roi.01", 0x4000, 0x2000, CRC(57679062) SHA1(4f121101ab1cb8de8e693e5984ef23fa587fe696) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-16.61", 0x0000, 0x2000, CRC(4e3f501c) SHA1(2d832f4038ae65bfdeedfab870f6f1176ec6b676) ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-14.55", 0x0000, 0x2000, CRC(ef7f8651) SHA1(2d91057501e5e9c4255e0d55fff0d99c2a5be7e8) ) - ROM_LOAD( "a37-15.56", 0x2000, 0x2000, CRC(03b40905) SHA1(c10d87796e8a6e6a2a37c6fb713821cc87299cc8) ) - - ROM_REGION( 0x08000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-10.8", 0x0000, 0x2000, CRC(6afdeec8) SHA1(782fe0a8aea48c3c270318b7ba011fc6fce0db7a) ) - ROM_LOAD( "a37-11.9", 0x2000, 0x2000, CRC(d3dc9da3) SHA1(0d98d6e993b5a4845a23802751023b7a593dce29) ) - ROM_LOAD( "a37-12.10", 0x4000, 0x2000, CRC(d10b2eed) SHA1(3809a0adf935a119f9ee0d4c24f1456c35d2a6fa) ) - ROM_LOAD( "a37-13.11", 0x6000, 0x2000, CRC(00ca6b3d) SHA1(08ce5b13d5ebc79cc803949f4ba9e630e6cd92b8) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) ) /* palette red bits */ - ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) ) /* palette green bits */ - ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) ) /* palette blue bits */ - ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) ) /* lookup table */ -ROM_END - -ROM_START( retofin2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ri-c.1e", 0x0000, 0x2000, CRC(e3c31260) SHA1(cc8774251c567da2e4a54091223927c95f497fe8) ) - ROM_LOAD( "roi.01b", 0x2000, 0x2000, CRC(3379f930) SHA1(c67d687a10b6240bd6e2fbdb15e1b7d276e6fc07) ) - ROM_LOAD( "ri-a.1c", 0x4000, 0x2000, CRC(3ae7c530) SHA1(5d1be375494fa07124071067661c4bfc2d724d54) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for code */ - ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-16.61", 0x0000, 0x2000, CRC(4e3f501c) SHA1(2d832f4038ae65bfdeedfab870f6f1176ec6b676) ) - - ROM_REGION( 0x04000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-14.55", 0x0000, 0x2000, CRC(ef7f8651) SHA1(2d91057501e5e9c4255e0d55fff0d99c2a5be7e8) ) - ROM_LOAD( "a37-15.56", 0x2000, 0x2000, CRC(03b40905) SHA1(c10d87796e8a6e6a2a37c6fb713821cc87299cc8) ) - - ROM_REGION( 0x08000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a37-10.8", 0x0000, 0x2000, CRC(6afdeec8) SHA1(782fe0a8aea48c3c270318b7ba011fc6fce0db7a) ) - ROM_LOAD( "a37-11.9", 0x2000, 0x2000, CRC(d3dc9da3) SHA1(0d98d6e993b5a4845a23802751023b7a593dce29) ) - ROM_LOAD( "a37-12.10", 0x4000, 0x2000, CRC(d10b2eed) SHA1(3809a0adf935a119f9ee0d4c24f1456c35d2a6fa) ) - ROM_LOAD( "a37-13.11", 0x6000, 0x2000, CRC(00ca6b3d) SHA1(08ce5b13d5ebc79cc803949f4ba9e630e6cd92b8) ) - - ROM_REGION( 0x0b00, REGION_PROMS, 0 ) - ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) ) /* palette red bits */ - ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) ) /* palette green bits */ - ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) ) /* palette blue bits */ - ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) ) /* lookup table */ -ROM_END - - - -GAME( 1985, retofinv, 0, retofinv, retofinv, 0, ROT90, "Taito Corporation", "Return of the Invaders", 0 ) -GAME( 1985, retofin1, retofinv, retofinb, retofinv, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", 0 ) -GAME( 1985, retofin2, retofinv, retofinb, retofin2, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", 0 ) diff --git a/src/drivers/rockola.c b/src/drivers/rockola.c deleted file mode 100644 index 194a73ffc..000000000 --- a/src/drivers/rockola.c +++ /dev/null @@ -1,1595 +0,0 @@ -/*************************************************************************** - - Sasuke vs. Commander - SNK/Rock-Ola - - driver by ? - - Games supported: - * Sasuke vs. Commander - * Satan of Saturn - * Zarzon - * Vanguard - * Fantasy G-202 - * Pioneer Balloon G-204 - * Nibbler G-208 - -**************************************************************************** - -Vanguard memory map (preliminary) - -0000-03ff RAM -0400-07ff Video RAM 1 -0800-0bff Video RAM 2 -0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2) -1000-1fff Character generator RAM -4000-bfff ROM - -read: -3104 IN0 -3105 IN1 -3106 DSW ?? -3107 IN2 - -write -3100 Sound Port 0 -3101 Sound Port 1 -3103 bit 7 = flip screen -3200 y scroll register -3300 x scroll register - -**************************************************************************** - -Fantasy and Nibbler memory map (preliminary) - -0000-03ff RAM -0400-07ff Video RAM 1 -0800-0bff Video RAM 2 -0c00-0fff Color RAM (3 bits for video RAM 1 and 3 bits for video RAM 2) -1000-1fff Character generator RAM -3000-bfff ROM - -read: -2104 IN0 -2105 IN1 -2106 DSW -2107 IN2 - -write -2000-2001 To the HD46505S video controller -2100 Sound Port 0 -2101 Sound Port 1 -2103 bit 7 = flip screen - bit 4-6 = music 2 - bit 3 = char bank selector - bit 0-2 = background color -2200 y scroll register -2300 x scroll register - -Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI. - -**************************************************************************** - -Pioneer Balloon memory map (preliminary) - -0000-03ff RAM IC13 cpu -0400-07ff Video RAM 1 IC67 video -0800-0bff Video RAM 2 ???? video -0c00-0fff Color RAM IC68 (3 bits for VRAM 1 and 3 bits for VRAM 2) -1000-1fff RAM ???? Character generator -3000-3fff ROM 4/5 IC12 -4000-4fff ROM 1 IC07 -5000-5fff ROM 2 IC08 -6000-6fff ROM 3 IC09 -7000-7fff ROM 4 IC10 -8000-8fff ROM 5 IC14 -9000-9fff ROM 6 IC15 -read: -b104 IN0 -b105 IN1 -b106 DSW -b107 IN2 - -write -b000 Sound Port 0 -b001 Sound Port 1 -b100 ???? -b103 bit 7 = flip screen - bit 4-6 = music 2 - bit 3 = char bank selector - bit 0-2 = background color -b106 ???? -b200 y scroll register -b300 x scroll register - -Interrupts: VBlank causes an IRQ. Coin insertion causes a NMI. - -***************************************************************************/ - -/* - - TODO: - - - sasuke/satansat/vanguard discrete sound - - vanguard/fantasy speech (hd38880/hd38882 emulation) - - music freq (Satan of Saturn and clone) - - correct music waveform/volume control - - clean up dips/inputs for all games - - correct ROM names - - fantasy is German? (the continue text is in German) - -*/ - -#include "driver.h" -#include "cpu/m6502/m6502.h" -#include "vidhrdw/crtc6845.h" -#include "sound/sn76477.h" -#include "sound/custom.h" -#include "sound/samples.h" - -#ifndef M_LN2 -#define M_LN2 0.69314718055994530942 -#endif - - -/* vidhrdw */ - -extern UINT8 *rockola_videoram2; -extern UINT8 *rockola_charram; - -extern WRITE8_HANDLER( rockola_videoram_w ); -extern WRITE8_HANDLER( rockola_videoram2_w ); -extern WRITE8_HANDLER( rockola_colorram_w ); -extern WRITE8_HANDLER( rockola_charram_w ); -extern WRITE8_HANDLER( rockola_flipscreen_w ); -extern WRITE8_HANDLER( rockola_scrollx_w ); -extern WRITE8_HANDLER( rockola_scrolly_w ); - -extern PALETTE_INIT( rockola ); -extern VIDEO_START( rockola ); -extern VIDEO_UPDATE( rockola ); - -extern WRITE8_HANDLER( satansat_charram_w ); -extern WRITE8_HANDLER( satansat_b002_w ); -extern WRITE8_HANDLER( satansat_backcolor_w ); - -extern PALETTE_INIT( satansat ); -extern VIDEO_START( satansat ); - -/* sndhrdw */ - -extern const char *sasuke_sample_names[]; -extern const char *vanguard_sample_names[]; -extern const char *fantasy_sample_names[]; - -extern WRITE8_HANDLER( sasuke_sound_w ); -extern WRITE8_HANDLER( satansat_sound_w ); -extern WRITE8_HANDLER( vanguard_sound_w ); -extern WRITE8_HANDLER( vanguard_speech_w ); -extern WRITE8_HANDLER( fantasy_sound_w ); -extern WRITE8_HANDLER( fantasy_speech_w ); - -void *rockola_sh_start(int clock, const struct CustomSound_interface *config); -void rockola_set_music_clock(double clock_time); -void rockola_set_music_freq(int freq); -int rockola_music0_playing(void); - - -/* binary counter (1.4MHz update) */ -static UINT8 sasuke_counter; -static void *sasuke_timer; - -static void sasuke_update_counter(int param) -{ - sasuke_counter += 0x10; -} - -static void sasuke_start_counter(void) -{ - sasuke_counter = 0; - - sasuke_timer = timer_alloc(sasuke_update_counter); - timer_adjust(sasuke_timer, TIME_NOW, 0, TIME_IN_HZ(11289000/8)); // 1.4 MHz -} - - -/* IN1 + music0 playing */ -static READ8_HANDLER( sasuke_port_1_r ) -{ - return readinputport(1) | (rockola_music0_playing() ? 0x80 : 0x00); -} - -/* IN2 + binary counter */ -static READ8_HANDLER( sasuke_port_3_r ) -{ - return readinputport(3) | sasuke_counter; -} - -/* IN2 + music0 playing */ -static READ8_HANDLER( vanguard_port_3_r ) -{ - return readinputport(3) | (rockola_music0_playing() ? 0x10 : 0x00); -} - - -/* Memory Maps */ - -static ADDRESS_MAP_START( sasuke_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITE(rockola_videoram2_w) AM_BASE(&rockola_videoram2) - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram) - AM_RANGE(0x3000, 0x3000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0x3001, 0x3001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0x4000, 0x8fff) AM_ROM - AM_RANGE(0xb000, 0xb001) AM_WRITE(sasuke_sound_w) - AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */ - AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w) - AM_RANGE(0xb004, 0xb004) AM_READ(input_port_0_r) // IN0 - AM_RANGE(0xb005, 0xb005) AM_READ(sasuke_port_1_r) // IN1 + music0 playing - AM_RANGE(0xb006, 0xb006) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0xb007, 0xb007) AM_READ(sasuke_port_3_r) // IN2 + binary counter - AM_RANGE(0xf800, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( satansat_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITE(rockola_videoram2_w) AM_BASE(&rockola_videoram2) - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram) - AM_RANGE(0x3000, 0x3000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0x3001, 0x3001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0x4000, 0x97ff) AM_ROM - AM_RANGE(0xb000, 0xb001) AM_WRITE(satansat_sound_w) - AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */ - AM_RANGE(0xb003, 0xb003) AM_WRITE(satansat_backcolor_w) - AM_RANGE(0xb004, 0xb004) AM_READ(input_port_0_r) // IN0 - AM_RANGE(0xb005, 0xb005) AM_READ(sasuke_port_1_r) // IN1 + music0 playing - AM_RANGE(0xb006, 0xb006) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0xb007, 0xb007) AM_READ(sasuke_port_3_r) // IN2 + binary counter - AM_RANGE(0xf800, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( vanguard_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITE(rockola_videoram2_w) AM_BASE(&rockola_videoram2) - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram) - AM_RANGE(0x3000, 0x3000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0x3001, 0x3001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0x3100, 0x3102) AM_WRITE(vanguard_sound_w) - AM_RANGE(0x3103, 0x3103) AM_WRITE(rockola_flipscreen_w) - AM_RANGE(0x3104, 0x3104) AM_READ(input_port_0_r) // IN0 - AM_RANGE(0x3105, 0x3105) AM_READ(input_port_1_r) // IN1 - AM_RANGE(0x3106, 0x3106) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0x3107, 0x3107) AM_READ(vanguard_port_3_r) // IN2 + music0 playing - AM_RANGE(0x3200, 0x3200) AM_WRITE(rockola_scrollx_w) - AM_RANGE(0x3300, 0x3300) AM_WRITE(rockola_scrolly_w) - AM_RANGE(0x3400, 0x3400) AM_WRITE(vanguard_speech_w) // speech - AM_RANGE(0x4000, 0xbfff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_ROM /* for the reset / interrupt vectors */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( fantasy_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITE(rockola_videoram2_w) AM_BASE(&rockola_videoram2) - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram) - AM_RANGE(0x2000, 0x2000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0x2001, 0x2001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0x2100, 0x2103) AM_WRITE(fantasy_sound_w) - AM_RANGE(0x2104, 0x2104) AM_READ(input_port_0_r) // IN0 - AM_RANGE(0x2105, 0x2105) AM_READ(input_port_1_r) // IN1 - AM_RANGE(0x2106, 0x2106) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0x2107, 0x2107) AM_READ(input_port_3_r) // IN2 - AM_RANGE(0x2200, 0x2200) AM_WRITE(rockola_scrollx_w) - AM_RANGE(0x2300, 0x2300) AM_WRITE(rockola_scrolly_w) - AM_RANGE(0x2400, 0x2400) AM_WRITE(fantasy_speech_w) // speech - AM_RANGE(0x3000, 0xbfff) AM_ROM - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pballoon_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_RAM - AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITE(rockola_videoram2_w) AM_BASE(&rockola_videoram2) - AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram) - AM_RANGE(0x3000, 0x9fff) AM_ROM - AM_RANGE(0xb000, 0xb000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0xb100, 0xb103) AM_WRITE(fantasy_sound_w) - AM_RANGE(0xb104, 0xb104) AM_READ(input_port_0_r) // IN0 - AM_RANGE(0xb105, 0xb105) AM_READ(input_port_1_r) // IN1 - AM_RANGE(0xb106, 0xb106) AM_READ(input_port_2_r) /* DSW */ - AM_RANGE(0xb107, 0xb107) AM_READ(input_port_3_r) // IN2 - AM_RANGE(0xb200, 0xb200) AM_WRITE(rockola_scrollx_w) - AM_RANGE(0xb300, 0xb300) AM_WRITE(rockola_scrolly_w) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END - -/* Input Ports */ - -/* Derived from Zarzon. Might not reflect the actual hardware. */ -INPUT_PORTS_START( sasuke ) - PORT_START // IN0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - - PORT_START // IN1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x7C, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* music0 playing */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x00, "3" ) - PORT_DIPSETTING ( 0x10, "4" ) - PORT_DIPSETTING ( 0x20, "5" ) - /* 0x30 gives 3 again */ - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "RAM Test" ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x80, DEF_STR( On ) ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* NC */ - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* connected to a binary counter */ -INPUT_PORTS_END - -INPUT_PORTS_START( satansat ) - PORT_START // IN0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - - PORT_START // IN1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x7C, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* music0 playing */ - - PORT_START /* DSW */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x0a, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_2C ) ) - /* 0x0a gives 2/1 again */ - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING ( 0x00, "5000" ) - PORT_DIPSETTING ( 0x04, "10000" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING ( 0x00, "3" ) - PORT_DIPSETTING ( 0x10, "4" ) - PORT_DIPSETTING ( 0x20, "5" ) - /* 0x30 gives 3 again */ - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "RAM Test" ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x80, DEF_STR( On ) ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* NC */ - PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* connected to a binary counter */ -INPUT_PORTS_END - -INPUT_PORTS_START( vanguard ) - PORT_START // IN0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START // IN1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START // DSW0 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x4e, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x42, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x48, "1 Coin/2 Credits 2/5" ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x44, "1 Coin/3 Credits 2/7" ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x4c, "1 Coin/6 Credits 2/13" ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_7C ) ) -/* - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x46, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4a, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4e, "1 Coin/1 Credit + Bonus" ) -*/ - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) -/* PORT_DIPSETTING( 0x30, "3" ) */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* music0 playing */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( fantasy ) - PORT_START // IN0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START // IN1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START // DSW0 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x4e, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x42, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x48, "1 Coin/2 Credits 2/5" ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x44, "1 Coin/3 Credits 2/7" ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x4c, "1 Coin/6 Credits 2/13" ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_7C ) ) -/* - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x46, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4a, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4e, "1 Coin/1 Credit + Bonus" ) -*/ - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) -/* PORT_DIPSETTING( 0x30, "3" ) */ - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( nibbler ) - PORT_START // IN0 - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 0") PORT_CODE(KEYCODE_Z) // slow down - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 1") PORT_CODE(KEYCODE_X) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 2") PORT_CODE(KEYCODE_C) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 3") PORT_CODE(KEYCODE_V) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START // IN1 - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 4") PORT_CODE(KEYCODE_B) // pause - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 5") PORT_CODE(KEYCODE_N) // unpause - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 6") PORT_CODE(KEYCODE_M) // end game - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Debug 7") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START // DSW0 - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x04, 0x00, "Pause at Corners" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) - PORT_SERVICE( 0x10, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_3C ) ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( pballoon ) - PORT_START // IN0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START // IN1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START // DSW0 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x4e, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x42, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x48, "1 Coin/2 Credits 2/5" ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x44, "1 Coin/3 Credits 2/7" ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x4c, "1 Coin/6 Credits 2/11" ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_7C ) ) -/* - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x46, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4a, "1 Coin/1 Credit + Bonus" ) - PORT_DIPSETTING( 0x4e, "1 Coin/1 Credit + Bonus" ) -*/ - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "5" ) -/* PORT_DIPSETTING( 0x30, "3" ) */ - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START // IN2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static const gfx_layout swapcharlayout = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 2, /* 2 bits per pixel */ - { 256*8*8, 0 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,2), - 2, /* 2 bits per pixel */ - { 0, RGN_FRAC(1,2) }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 charlayout_memory = -{ - 8,8, /* 8*8 characters */ - 256, /* 256 characters */ - 2, /* 2 bits per pixel */ - { 0, 256*8*8 }, /* the two bitplanes are separated */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every char takes 8 consecutive bytes */ -}; - -/* Graphics Decode Information */ - -static const gfx_decode sasuke_gfxdecodeinfo[] = -{ - { 0, 0x1000, &swapcharlayout, 0, 4 }, /* the game dynamically modifies this */ - { REGION_GFX1, 0x0000, &swapcharlayout, 4*4, 4 }, - { -1 } -}; - -static const gfx_decode satansat_gfxdecodeinfo[] = -{ - { 0, 0x1000, &charlayout_memory, 0, 4 }, /* the game dynamically modifies this */ - { REGION_GFX1, 0x0000, &charlayout, 4*4, 4 }, - { -1 } -}; - -static const gfx_decode vanguard_gfxdecodeinfo[] = -{ - { 0, 0x1000, &charlayout_memory, 0, 8 }, /* the game dynamically modifies this */ - { REGION_GFX1, 0x0000, &charlayout, 8*4, 8 }, - { -1 } -}; - -/* Sound Interfaces */ - -static struct CustomSound_interface custom_interface = -{ - rockola_sh_start -}; - -static struct Samplesinterface sasuke_samples_interface = -{ - 4, /* 4 channels */ - sasuke_sample_names -}; - -static struct Samplesinterface vanguard_samples_interface = -{ - 3, /* 3 channel */ - vanguard_sample_names -}; - -static struct Samplesinterface fantasy_samples_interface = -{ - 1, /* 1 channel */ - fantasy_sample_names -}; - - -static struct SN76477interface sasuke_sn76477_intf_1 = -{ - RES_K(470), /* 4 noise_res */ - RES_K(150), /* 5 filter_res */ - CAP_P(4700), /* 6 filter_cap */ - RES_K(22), /* 7 decay_res */ - CAP_U(10), /* 8 attack_decay_cap */ - RES_K(10), /* 10 attack_res */ - RES_K(100), /* 11 amplitude_res */ - RES_K(47), /* 12 feedback_res */ - 0 /* NC */, /* 16 vco_voltage */ - 0 /* NC */, /* 17 vco_cap */ - 0 /* NC */, /* 18 vco_res */ - 0 /* NC */, /* 19 pitch_voltage */ - RES_K(10), /* 20 slf_res */ - 0 /* NC */, /* 21 slf_cap */ - CAP_U(2.2), /* 23 oneshot_cap */ - RES_K(100), /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 0, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // ic48 GND: 2,22,26,27,28 +5V: 1,15,25 -}; - -static struct SN76477interface sasuke_sn76477_intf_2 = -{ - RES_K(340), /* 4 noise_res */ - RES_K(47), /* 5 filter_res */ - CAP_P(100), /* 6 filter_cap */ - RES_K(470), /* 7 decay_res */ - CAP_U(4.7), /* 8 attack_decay_cap */ - RES_K(10), /* 10 attack_res */ - RES_K(100), /* 11 amplitude_res */ - RES_K(47), /* 12 feedback_res */ - 0 /* NC */, /* 16 vco_voltage */ - CAP_P(220), /* 17 vco_cap */ - RES_K(1000), /* 18 vco_res */ - 0 /* NC */, /* 19 pitch_voltage */ - RES_K(220), /* 20 slf_res */ - 0 /* NC */, /* 21 slf_cap */ - CAP_U(22), /* 23 oneshot_cap */ - RES_K(47), /* 24 oneshot_res */ - 1, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // ic51 GND: 2,26,27 +5V: 1,15,22,25,28 -}; - -static struct SN76477interface sasuke_sn76477_intf_3 = -{ - RES_K(330), /* 4 noise_res */ - RES_K(47), /* 5 filter_res */ - CAP_P(100), /* 6 filter_cap */ - RES_K(1), /* 7 decay_res */ - 0 /* NC */, /* 8 attack_decay_cap */ - RES_K(1), /* 10 attack_res */ - RES_K(100), /* 11 amplitude_res */ - RES_K(47), /* 12 feedback_res */ - 0 /* NC */, /* 16 vco_voltage */ - CAP_P(1000), /* 17 vco_cap */ - RES_K(1000), /* 18 vco_res */ - 0 /* NC */, /* 19 pitch_voltage */ - RES_K(10), /* 20 slf_res */ - CAP_U(1), /* 21 slf_cap */ - CAP_U(2.2), /* 23 oneshot_cap */ - RES_K(150), /* 24 oneshot_res */ - 0, /* 22 vco */ - 1, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 0, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // ic52 GND: 2,22,27,28 +5V: 1,15,25,26 -}; - -static struct SN76477interface satansat_sn76477_intf = -{ - RES_K(470), /* 4 noise_res */ - RES_M(1.5), /* 5 filter_res */ - CAP_P(220), /* 6 filter_cap */ - 0, /* 7 decay_res */ - 0, /* 8 attack_decay_cap */ - 0, /* 10 attack_res */ - RES_K(47), /* 11 amplitude_res */ - RES_K(47), /* 12 feedback_res */ - 0, /* 16 vco_voltage */ - 0, /* 17 vco_cap */ - 0, /* 18 vco_res */ - 0, /* 19 pitch_voltage */ - 0, /* 20 slf_res */ - 0, /* 21 slf_cap */ - 0, /* 23 oneshot_cap */ - 0, /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // ??? GND: 2,26,27 +5V: 15,25 -}; - -static struct SN76477interface vanguard_sn76477_intf_1 = -{ - RES_K(470), /* 4 noise_res */ - RES_M(1.5), /* 5 filter_res */ - CAP_P(220), /* 6 filter_cap */ - 0, /* 7 decay_res */ - 0, /* 8 attack_decay_cap */ - 0, /* 10 attack_res */ - RES_K(47), /* 11 amplitude_res */ - RES_K(4.7), /* 12 feedback_res */ - 0, /* 16 vco_voltage */ - 0, /* 17 vco_cap */ - 0, /* 18 vco_res */ - 0, /* 19 pitch_voltage */ - 0, /* 20 slf_res */ - 0, /* 21 slf_cap */ - 0, /* 23 oneshot_cap */ - 0, /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // SHOT A GND: 2,9,26,27 +5V: 15,25 -}; - -static struct SN76477interface vanguard_sn76477_intf_2 = -{ - RES_K(10), /* 4 noise_res */ - RES_K(30), /* 5 filter_res */ - 0, /* 6 filter_cap */ - 0, /* 7 decay_res */ - 0, /* 8 attack_decay_cap */ - 0, /* 10 attack_res */ - RES_K(47), /* 11 amplitude_res */ - RES_K(4.7), /* 12 feedback_res */ - 0, /* 16 vco_voltage */ - 0, /* 17 vco_cap */ - 0, /* 18 vco_res */ - 0, /* 19 pitch_voltage */ - 0, /* 20 slf_res */ - 0, /* 21 slf_cap */ - 0, /* 23 oneshot_cap */ - 0, /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 0, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // SHOT B GND: 1,2,26,27 +5V: 15,25,28 -}; - -static struct SN76477interface fantasy_sn76477_intf = -{ - RES_K(470), /* 4 noise_res */ - RES_M(1.5), /* 5 filter_res */ - CAP_P(220), /* 6 filter_cap */ - 0, /* 7 decay_res */ - 0, /* 8 attack_decay_cap */ - 0, /* 10 attack_res */ - RES_K(470), /* 11 amplitude_res */ - RES_K(4.7), /* 12 feedback_res */ - 0, /* 16 vco_voltage */ - 0, /* 17 vco_cap */ - 0, /* 18 vco_res */ - 0, /* 19 pitch_voltage */ - 0, /* 20 slf_res */ - 0, /* 21 slf_cap */ - 0, /* 23 oneshot_cap */ - 0, /* 24 oneshot_res */ - 0, /* 22 vco */ - 0, /* 26 mixer A */ - 1, /* 25 mixer B */ - 0, /* 27 mixer C */ - 1, /* 1 envelope 1 */ - 1, /* 28 envelope 2 */ - 1 /* 9 enable (variable) */ - - // BOMB GND: 2,9,26,27 +5V: 15,25 -}; - -/* Interrupt Generators */ - -static INTERRUPT_GEN( satansat_interrupt ) -{ - if (cpu_getiloops() != 0) - { - UINT8 val = readinputport(3); - - coin_counter_w(0, val & 1); - - /* user asks to insert coin: generate a NMI interrupt. */ - if (val & 0x01) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - else - cpunum_set_input_line(0, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ -} - -static INTERRUPT_GEN( rockola_interrupt ) -{ - if (cpu_getiloops() != 0) - { - UINT8 val = readinputport(3); - - coin_counter_w(0, val & 1); - coin_counter_w(1, val & 2); - - /* user asks to insert coin: generate a NMI interrupt. */ - if (val & 0x03) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - else - cpunum_set_input_line(0, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ -} - -/* Machine Initialization */ - -static MACHINE_RESET( sasuke ) -{ - //rockola_set_music_clock(M_LN2 * (RES_K(1) + RES_K(10) * 2) * CAP_U(1)); - // adjusted - rockola_set_music_clock(1 / 72.1); - - // adjusted - rockola_set_music_freq(38000); - - sasuke_start_counter(); -} - -static MACHINE_RESET( satansat ) -{ - // same as sasuke - rockola_set_music_freq(38000); - - sasuke_start_counter(); -} - -static MACHINE_RESET( vanguard ) -{ - // 41.6 Hz update (measured) - rockola_set_music_clock(1 / 41.6); -} - -static MACHINE_RESET( fantasy ) -{ -} - -static MACHINE_RESET( pballoon ) -{ - // 40.3 Hz update (measured) - rockola_set_music_clock(1 / 40.3); -} - -/* Machine Drivers */ - -static MACHINE_DRIVER_START( sasuke ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", M6502, 11289000/16) // 700 kHz - MDRV_CPU_PROGRAM_MAP(sasuke_map, 0) - MDRV_CPU_VBLANK_INT(satansat_interrupt, 2) - - MDRV_SCREEN_REFRESH_RATE((11289000.0 / 16) / (45 * 32 * 8)) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(sasuke) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(sasuke_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(4*4 + 4*4) - - MDRV_PALETTE_INIT(satansat) - MDRV_VIDEO_START(satansat) - MDRV_VIDEO_UPDATE(rockola) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("samples", SAMPLES, 0) - MDRV_SOUND_CONFIG(sasuke_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.12) - - MDRV_SOUND_ADD_TAG("SN76477.1", SN76477, 0) - MDRV_SOUND_CONFIG(sasuke_sn76477_intf_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("SN76477.2", SN76477, 0) - MDRV_SOUND_CONFIG(sasuke_sn76477_intf_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("SN76477.3", SN76477, 0) - MDRV_SOUND_CONFIG(sasuke_sn76477_intf_3) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( satansat ) - // basic machine hardware - MDRV_IMPORT_FROM(sasuke) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(satansat_map, 0) - - MDRV_MACHINE_RESET(satansat) - - // video hardware - MDRV_GFXDECODE(satansat_gfxdecodeinfo) - - // sound hardware - MDRV_SOUND_REPLACE("samples", SAMPLES, 0) - MDRV_SOUND_CONFIG(vanguard_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_REPLACE("SN76477.1", SN76477, 0) - MDRV_SOUND_CONFIG(satansat_sn76477_intf) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_REMOVE("SN76477.2") - MDRV_SOUND_REMOVE("SN76477.3") -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( vanguard ) - // basic machine hardware - //MDRV_CPU_ADD_TAG("main", M6502, 11289000/8) // 1.4 MHz - MDRV_CPU_ADD_TAG("main", M6502, 930000) // adjusted - MDRV_CPU_PROGRAM_MAP(vanguard_map, 0) - MDRV_CPU_VBLANK_INT(rockola_interrupt, 2) - - MDRV_SCREEN_REFRESH_RATE((11289000.0 / 16) / (45 * 32 * 8)) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(vanguard) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(vanguard_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(64) - MDRV_COLORTABLE_LENGTH(16*4) - - MDRV_PALETTE_INIT(rockola) - MDRV_VIDEO_START(rockola) - MDRV_VIDEO_UPDATE(rockola) - - // sound hardware - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(CUSTOM, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("samples", SAMPLES, 0) - MDRV_SOUND_CONFIG(vanguard_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD_TAG("SN76477.1", SN76477, 0) - MDRV_SOUND_CONFIG(vanguard_sn76477_intf_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD_TAG("SN76477.2", SN76477, 0) - MDRV_SOUND_CONFIG(vanguard_sn76477_intf_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( fantasy ) - // basic machine hardware - MDRV_IMPORT_FROM(vanguard) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(fantasy_map, 0) - - // sound hardware - MDRV_SOUND_REPLACE("samples", SAMPLES, 0) - MDRV_SOUND_CONFIG(fantasy_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_REPLACE("SN76477.1", SN76477, 0) - MDRV_SOUND_CONFIG(fantasy_sn76477_intf) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_REMOVE("SN76477.2") -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( nibbler ) - // basic machine hardware - MDRV_IMPORT_FROM(fantasy) - - // sound hardware - MDRV_SOUND_REMOVE("samples") -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( pballoon ) - // basic machine hardware - MDRV_IMPORT_FROM(nibbler) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pballoon_map, 0) - - MDRV_MACHINE_RESET(pballoon) - - // video hardware - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( sasuke ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sc1", 0x4000, 0x0800, CRC(34cbbe03) SHA1(3d643e11370e61dde0c42c7761a856c5cf53d621) ) - ROM_LOAD( "sc2", 0x4800, 0x0800, CRC(38cc14f0) SHA1(d60df67f2a32c131e8957e225b79618d6262463d) ) - ROM_LOAD( "sc3", 0x5000, 0x0800, CRC(54c41285) SHA1(5618c2ac745bbde96bfda7f01f7aee7e2b643d7e) ) - ROM_LOAD( "sc4", 0x5800, 0x0800, CRC(23edafcf) SHA1(bda3bcb506f6e23f422aafd7ca9b95bfb4d1d8e1) ) - ROM_LOAD( "sc5", 0x6000, 0x0800, CRC(ca410e4f) SHA1(0d09422d01b4359853c173a4cb18c9b5fbc7fe7c) ) - ROM_LOAD( "sc6", 0x6800, 0x0800, CRC(80406afb) SHA1(2c4a34a7450fa7258c5e6ead9b1fd6c6b973f081) ) - ROM_LOAD( "sc7", 0x7000, 0x0800, CRC(04d0f104) SHA1(73ed501f70d2a9e8994f8392f617450eafef39b3) ) - ROM_LOAD( "sc8", 0x7800, 0x0800, CRC(0219104b) SHA1(fd5c43304d59bc34e9ae6ef7576d75cf319d823e) ) - ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ - ROM_LOAD( "sc9", 0x8000, 0x0800, CRC(d6ff889a) SHA1(1eea0366205dd0d9bffb5d093f259edc1d51cbe0) ) - ROM_LOAD( "sc10", 0x8800, 0x0800, CRC(19df6b9a) SHA1(95e904251c39dcef227a4c125fc573e958ee78b7) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "mcs_c", 0x0000, 0x0800, CRC(aff9743d) SHA1(a968a193ca551d92f79e09d1761dd2ccebc76eee) ) - ROM_LOAD( "mcs_d", 0x0800, 0x0800, CRC(9c805120) SHA1(74b83daa3ce3c9f7d96ad872b9134edd6f1bcb8a) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "sasuke.clr", 0x0000, 0x0020, CRC(b70f34c1) SHA1(890cfbb25e14112713ba7900b9cd56554a8bc1ec) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound data for Vanguard-style audio section */ - ROM_LOAD( "sc11", 0x0000, 0x0800, CRC(24a0e121) SHA1(e3cde355309de6678026d595955297258f069946) ) -ROM_END - -ROM_START( satansat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ss1", 0x4000, 0x0800, CRC(549dd13a) SHA1(06b55d0b1da84bef30857faa398aabfd04365eb6) ) - ROM_LOAD( "ss2", 0x4800, 0x0800, CRC(04972fa8) SHA1(89833a7c893168acd5599ca7ad4b33a8f3df40c5) ) - ROM_LOAD( "ss3", 0x5000, 0x0800, CRC(9caf9057) SHA1(26d439678e5e4d375ffac60126f45de599575bfd) ) - ROM_LOAD( "ss4", 0x5800, 0x0800, CRC(e1bdcfe1) SHA1(c99457c18fae8de79bbbe6bc0471fdc83f1e9b19) ) - ROM_LOAD( "ss5", 0x6000, 0x0800, CRC(d454de19) SHA1(ae8abb8a9d999d11ba6ad341bf635ae822d5746f) ) - ROM_LOAD( "ss6", 0x6800, 0x0800, CRC(7fbd5d30) SHA1(be0554ade440bf255131466ee8bd2905d3f446a8) ) - ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) - ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) ) - ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ - ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) ) - ROM_LOAD( "ss10", 0x8800, 0x0800, CRC(8f1b313a) SHA1(0c7832505a1287533d9b2d7f2d54000b3b44e40d) ) - ROM_LOAD( "ss11", 0x9000, 0x0800, CRC(e74f98e0) SHA1(89a93de6105195e0e5d255bfa240538ded155fb9) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) ) - ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound data for Vanguard-style audio section */ - ROM_LOAD( "ss12", 0x0000, 0x0800, CRC(dee01f24) SHA1(92c8545226a31412239dad4aa2715b51264ad22e) ) - ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) -ROM_END - -ROM_START( zarzon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "zarz122.07", 0x4000, 0x0800, CRC(bdfa67e2) SHA1(0de06cf53ee21b8f14b933b61e6dc706338746c4) ) - ROM_LOAD( "zarz123.08", 0x4800, 0x0800, CRC(d034e61e) SHA1(dc802c3d7a9f7e473e323e3272fca406dab6d55d) ) - ROM_LOAD( "zarz124.09", 0x5000, 0x0800, CRC(296397ea) SHA1(3a1ad7f3c4453bb20768b3e3ce04cd76873aa0ee) ) - ROM_LOAD( "zarz125.10", 0x5800, 0x0800, CRC(26dc5e66) SHA1(07f47f3497bb85640e5e6a89ad7d6579108347fe) ) - ROM_LOAD( "zarz126.13", 0x6000, 0x0800, CRC(cee18d7f) SHA1(5a7e60b6be06b3038f2eb81e76fc54cb65d4877b) ) - ROM_LOAD( "zarz127.14", 0x6800, 0x0800, CRC(bbd2cc0d) SHA1(1128020b7c0f38f5ff2cc2da0fd2df5ebead4681) ) - ROM_LOAD( "zarz128.15", 0x7000, 0x0800, CRC(93ea2df9) SHA1(4f7d076deef1e14b568b06974194861d3789ab5c) ) - ROM_LOAD( "zarz129.16", 0x7800, 0x0800, CRC(e67ec873) SHA1(14158914f07cabe61abc400c371d742ceb61d165) ) - ROM_RELOAD( 0xf800, 0x0800 ) /* for the reset/interrupt vectors */ - ROM_LOAD( "zarz130.22", 0x8000, 0x0800, CRC(22c44650) SHA1(063915cde86aece8860db1df15497cde669e73bd) ) - ROM_LOAD( "zarz131.23", 0x8800, 0x0800, CRC(7be20678) SHA1(872de953df1f9f1725e14fdfd227ad872a813af8) ) - ROM_LOAD( "zarz132.24", 0x9000, 0x0800, CRC(72b2cb76) SHA1(d7a95c908fe2227e2a0820a8e9713b1709c9e5af) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "zarz135.73", 0x0000, 0x0800, CRC(e837c62b) SHA1(97552b1e413a3934f4dc5a6fc9fc1fa8ba7a2e7e) ) - ROM_LOAD( "zarz136.75", 0x0800, 0x0800, CRC(83f61623) SHA1(4cb28f85f32d13bfa364c376ea3e30fd451b5884) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "zarz138.03", 0x0000, 0x0020, CRC(5dd6933a) SHA1(417d827d9e47b6db01fecc2164e5ef332d4cd70e) ) - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound data for Vanguard-style audio section */ - ROM_LOAD( "zarz133.53", 0x0000, 0x0800, CRC(b253cf78) SHA1(56a73b22ed2866222c407a3e9b51b8e0c92cf2aa) ) - ROM_LOAD( "zarz134.54", 0x0800, 0x0800, CRC(580934d2) SHA1(c1c7eba56bca2a0ea6a68c0245b071a3308f92bd) ) -ROM_END - -ROM_START( vanguard ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) - ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) - ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) - ROM_LOAD( "sk4_ic10.bin", 0x7000, 0x1000, CRC(54603274) SHA1(31571a560dbe300417b3ed5b114fa1d9ef742da9) ) - ROM_LOAD( "sk4_ic13.bin", 0x8000, 0x1000, CRC(fde157d0) SHA1(3f705fb6a410004f4f86283694e3694e49701af6) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) - ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) - ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) - ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ - ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */ - ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */ - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) - ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) - ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) -ROM_END - -ROM_START( vangrdce ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) - ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) - ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) - ROM_LOAD( "4", 0x7000, 0x1000, CRC(770f9714) SHA1(4af37fc24e464681a8da6b184be0df32a4078f4f) ) - ROM_LOAD( "5", 0x8000, 0x1000, CRC(3445cba6) SHA1(6afe6dad79b53df58b53ef9c5d24bb4d91fa5e8e) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) - ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) - ROM_LOAD( "8", 0xb000, 0x1000, CRC(4b825bc8) SHA1(3fa32d9677e2cc3a1ebf52c0b9eed7dbf11201e9) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) - ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ - ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* confirmed, 6/21/05 */ - ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* confirmed, 6/21/05 */ - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) - ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) - ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) -ROM_END - -ROM_START( vanguarj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sk4_ic07.bin", 0x4000, 0x1000, CRC(6a29e354) SHA1(ff953962ebc14a28cfc96f8e269cb1e1c188ed8a) ) - ROM_LOAD( "sk4_ic08.bin", 0x5000, 0x1000, CRC(302bba54) SHA1(1944f229481328a0635fafda65054106f42a532a) ) - ROM_LOAD( "sk4_ic09.bin", 0x6000, 0x1000, CRC(424755f6) SHA1(b4762b40c7ed70d4b90319a1a30983a41a096afb) ) - ROM_LOAD( "vgj4ic10.bin", 0x7000, 0x1000, CRC(0a91a5d1) SHA1(bef435e431e31179eb22a4c18ca1dedf6a4a0ab0) ) - ROM_LOAD( "vgj5ic13.bin", 0x8000, 0x1000, CRC(06601a40) SHA1(d1efcf75edf3892fe59d63e524f4880ffce67965) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "sk4_ic14.bin", 0x9000, 0x1000, CRC(0d5b47d0) SHA1(922621c23f33fe756cb6baa12e5465c4e64f2dda) ) - ROM_LOAD( "sk4_ic15.bin", 0xa000, 0x1000, CRC(8549b8f8) SHA1(375bc6f7e15564d5cf7e00c44e2651793c56d6ca) ) - ROM_LOAD( "sk4_ic16.bin", 0xb000, 0x1000, CRC(062e0be2) SHA1(45aaf315a62f37460e32d3ba99caaacf4c994810) ) - - ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sk5_ic50.bin", 0x0000, 0x0800, CRC(e7d4315b) SHA1(b99e4ea07292a0eabaa6098037c92a5678627cec) ) - ROM_LOAD( "sk5_ic51.bin", 0x0800, 0x0800, CRC(96e87858) SHA1(4e9ccb055919c8acf5837e062857647d5363af60) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "sk5_ic7.bin", 0x0000, 0x0020, CRC(ad782a73) SHA1(ddf44f74a20f10ed976c434a885857dade1f86d7) ) /* foreground colors */ - ROM_LOAD( "sk5_ic6.bin", 0x0020, 0x0020, CRC(7dc9d450) SHA1(9b2d1dfb3270a562d14bd54bfb3405a9095becc0) ) /* background colors */ - - ROM_REGION( 0x1000, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "sk4_ic51.bin", 0x0000, 0x0800, CRC(d2a64006) SHA1(3f20b59ce1954f65535cd5603ca9271586428e35) ) /* sound ROM 1 */ - ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) ) /* sound ROM 2 */ - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "sk6_ic07.bin", 0x4000, 0x0800, CRC(2b7cbae9) SHA1(3d44a0232d7c94d8170cc06e90cc30bd57c99202) ) - ROM_LOAD( "sk6_ic08.bin", 0x4800, 0x0800, CRC(3b7e9d7c) SHA1(d9033188068b2aaa1502c89cf09f955eded8fa7a) ) - ROM_LOAD( "sk6_ic11.bin", 0x5000, 0x0800, CRC(c36df041) SHA1(8b51934229b961180d1edb99be3a4d337d37f66f) ) -ROM_END - -ROM_START( fantasyu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic12.cpu", 0x3000, 0x1000, CRC(22cb2249) SHA1(6c43e3fa9638b6d2e069199968923e470bd5d18b) ) - ROM_LOAD( "ic07.cpu", 0x4000, 0x1000, CRC(0e2880b6) SHA1(666d6942864eb7a90178b3b6e2b0eb23aa3c967f) ) - ROM_LOAD( "ic08.cpu", 0x5000, 0x1000, CRC(4c331317) SHA1(800850f4e8bcfbbade54eb9e47a53941f8798641) ) - ROM_LOAD( "ic09.cpu", 0x6000, 0x1000, CRC(6ac1dbfc) SHA1(b9c7bf8d3b085db0b53646b5639c09f9ced2b1fe) ) - ROM_LOAD( "ic10.cpu", 0x7000, 0x1000, CRC(c796a406) SHA1(1b7f5f307a81b481a3e7791128a01d4c1a20c4bf) ) - ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) ) - ROM_LOAD( "ic16.cpu", 0xa000, 0x1000, CRC(6c2aeb6e) SHA1(fd0b913a663bf2a5f45fc3d342d7575a9c7dae46) ) - ROM_LOAD( "ic17.cpu", 0xb000, 0x1000, CRC(f6aa5de1) SHA1(ca53cf66cc6cdb21a60760102f35a5b0745ce09b) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) - ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */ - ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) - ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) - ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) - ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) - ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) -ROM_END - -ROM_START( fantasy ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "5.12", 0x3000, 0x1000, CRC(0968ab50) SHA1(f09d03a171349895c5cb69e684901be63d272b32) ) - ROM_LOAD( "1.7", 0x4000, 0x1000, CRC(de83000e) SHA1(ede1dda46406b4d340f1efea3bc85b2227af9e1d) ) - ROM_LOAD( "2.8", 0x5000, 0x1000, CRC(90499b5a) SHA1(81a9d93a5655d2ff9504036bc764d8bb81e1470d) ) - ROM_LOAD( "3.9", 0x6000, 0x1000, CRC(6fbffeb6) SHA1(b36aeaf095da4957103c8921957ff4be658eddf5) ) - ROM_LOAD( "4.10", 0x7000, 0x1000, CRC(02e85884) SHA1(71fa6eb375fc417f92c049ec5118818b9ad48468) ) - ROM_LOAD( "ic14.cpu", 0x8000, 0x1000, CRC(6f1f0698) SHA1(05bd114dcd08c990d897518a8ea7965bc82279bf) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "ic15.cpu", 0x9000, 0x1000, CRC(5534d57e) SHA1(e564a3325766423b47de18d6adb61760cbbf88be) ) - ROM_LOAD( "8.16", 0xa000, 0x1000, CRC(371129fe) SHA1(c21759222aebcc9ea1292e367a41ac43a4dd3554) ) - ROM_LOAD( "9.17", 0xb000, 0x1000, CRC(56a7c8b8) SHA1(6c417644851c7b4b5291d9c5b2c808ff4a1ad048) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) - ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "fantasy.ic7", 0x0000, 0x0020, CRC(361a5e99) SHA1(b9777ce658549c03971bd476482d5cc0be27d3a9) ) /* foreground colors */ - ROM_LOAD( "fantasy.ic6", 0x0020, 0x0020, CRC(33d974f7) SHA1(a6f6a531dec3f454b477bfdda8e213e9cad42748) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) - ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) - ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) - ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) - ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) -ROM_END - -ROM_START( fantasyj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "fs5jic12.bin", 0x3000, 0x1000, CRC(dd1eac89) SHA1(d63078d4666e3c6db0c9b3f8b45ef81606ed5a4f) ) - ROM_LOAD( "fs1jic7.bin", 0x4000, 0x1000, CRC(7b8115ae) SHA1(6274f937c57ab9cbb7c6283022b81f70dad7c232) ) - ROM_LOAD( "fs2jic8.bin", 0x5000, 0x1000, CRC(61531dd1) SHA1(f3bc405bafc8ced6c6fce93ad2ad20ff6aa603e8) ) - ROM_LOAD( "fs3jic9.bin", 0x6000, 0x1000, CRC(36a12617) SHA1(dd74abb4cbaeb1a56ee466043997187ebe933612) ) - ROM_LOAD( "fs4jic10.bin", 0x7000, 0x1000, CRC(dbf7c347) SHA1(1bb3f924a7e1ec74ef68e237a0f68d62ce78532c) ) - ROM_LOAD( "fs6jic14.bin", 0x8000, 0x1000, CRC(bf59a33a) SHA1(bdbdd03199758069b904fdf0455193682c4d457f) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "fs7jic15.bin", 0x9000, 0x1000, CRC(cc18428e) SHA1(c7c0a031434cf9ce3c450b0c5dc2b154b08d19cf) ) - ROM_LOAD( "fs8jic16.bin", 0xa000, 0x1000, CRC(ae5bf727) SHA1(3c5eaaba3971f57a5687945a614dd0d6c9e007d6) ) - ROM_LOAD( "fs9jic17.bin", 0xb000, 0x1000, CRC(fa6903e2) SHA1(a5b9b7309ecaaeaba76e45610d5ab80415ecbdd0) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "fs10ic50.bin", 0x0000, 0x1000, CRC(86a801c3) SHA1(c040b5807c25823072f7e8ceab57b95d4bed89fe) ) - ROM_LOAD( "fs11ic51.bin", 0x1000, 0x1000, CRC(9dfff71c) SHA1(7a7c017170f2ea903a730a4e5ab69db379a4fc61) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "prom-8.bpr", 0x0000, 0x0020, CRC(1aa9285a) SHA1(d503aa76ca0cf032c7b1c962abc59677c41a2c62) ) /* foreground colors */ - ROM_LOAD( "prom-7.bpr", 0x0020, 0x0020, CRC(7a6f7dc3) SHA1(e15d898275d1cd205cc2d28f7dd9df653594039e) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "fs_b_51.bin", 0x0000, 0x0800, CRC(48094ec5) SHA1(7d6118133bc1eb8ebc5d8a95d10ef842daffef89) ) - ROM_LOAD( "fs_a_52.bin", 0x0800, 0x0800, CRC(1d0316e8) SHA1(6a3ab289b5fefef8663514bd1d5817c70fe58882) ) - ROM_LOAD( "fs_c_53.bin", 0x1000, 0x0800, CRC(49fd4ae8) SHA1(96ff1267c0ffab1e8a0769fa869516e2546ab640) ) - - ROM_REGION( 0x5800, REGION_SOUND2, 0 ) /* space for the speech ROMs (not supported) */ - //ROM_LOAD( "hd38882.bin", 0x0000, 0x4000, NO_DUMP ) /* HD38882 internal ROM */ - ROM_LOAD( "fs_d_7.bin", 0x4000, 0x0800, CRC(a7ef4cc6) SHA1(8df71cb18fcfe9a2f592f83bc01cf2314ae30e32) ) - ROM_LOAD( "fs_e_8.bin", 0x4800, 0x0800, CRC(19b8fb3e) SHA1(271c76f68866c28bc6755238a71970d5f7c81ecb) ) - ROM_LOAD( "fs_f_11.bin", 0x5000, 0x0800, CRC(3a352e1f) SHA1(af880ce3daed0877d454421bd08c86ff71f6bf72) ) -ROM_END - -ROM_START( pballoon ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sk7_ic12.bin", 0x3000, 0x1000, CRC(dfe2ae05) SHA1(21c98bef9d4d5fcb65ce5e9b20cde2259840459e) ) - ROM_LOAD( "sk7_ic07.bin", 0x4000, 0x1000, CRC(736e67df) SHA1(a58d9561f62d396ca90b0f69afe6240d809b10bb) ) - ROM_LOAD( "sk7_ic08.bin", 0x5000, 0x1000, CRC(7a2032b2) SHA1(79570943468d647cda67d94b20eac1b2d9eb371f) ) - ROM_LOAD( "sk7_ic09.bin", 0x6000, 0x1000, CRC(2d63cf3a) SHA1(8934af617229db445f9fd10e4028e1f8df4cfeb1) ) - ROM_LOAD( "sk7_ic10.bin", 0x7000, 0x1000, CRC(7b88cbd4) SHA1(1be3c484bd08c747f38389114c157e84319c48be) ) - ROM_LOAD( "sk7_ic14.bin", 0x8000, 0x1000, CRC(6a8817a5) SHA1(4cf8eda68d21b1fad0f12eedaeb88b256bba44da) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "sk7_ic15.bin", 0x9000, 0x1000, CRC(1f78d814) SHA1(7e618971f1bbf8859284531e94989c43c3285b4a) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sk8_ic50.bin", 0x0000, 0x1000, CRC(560df07f) SHA1(e57945de829d22d39390a649eddaf78c989af679) ) - ROM_LOAD( "sk8_ic51.bin", 0x1000, 0x1000, CRC(d415de51) SHA1(257cf939efec8adee87baf827315c69fde90da4c) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "sk8_ic7.bin", 0x0000, 0x0020, CRC(ef6c82a0) SHA1(95b522d6389f25bf5fa2fca5f3f826ef43b2885b) ) /* foreground colors */ - ROM_LOAD( "sk8_ic6.bin", 0x0020, 0x0020, CRC(eabc6a00) SHA1(942af5e22e49e578c6a24651476e3b60d40e2076) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "sk7_ic51.bin", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) - ROM_LOAD( "sk7_ic52.bin", 0x0800, 0x0800, CRC(5d6d68ea) SHA1(d3e03720eff5c85c1c2fb1d4bf960f45a99dc86a) ) - ROM_LOAD( "sk7_ic53.bin", 0x1000, 0x0800, CRC(a4c505cd) SHA1(47eea7e7ffa3dc8b35dc050ac1a1d77d6a5c4ece) ) -ROM_END - -ROM_START( nibbler ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "g-0960-52.ic12", 0x3000, 0x1000, CRC(ac6a802b) SHA1(ac1072e30994f13097663dc24d9d1dc35a95d874) ) - ROM_LOAD( "g-0960-48.ic7", 0x4000, 0x1000, CRC(35971364) SHA1(6430c7be9e5f47d3f1f2cc157d949246e4085e8b) ) - ROM_LOAD( "g-0960-49.ic8", 0x5000, 0x1000, CRC(6b33b806) SHA1(29444e45bf5a6ab1d86e0aa19dc6c1bc64ba633f) ) - ROM_LOAD( "g-0960-50.ic9", 0x6000, 0x1000, CRC(91a4f98d) SHA1(678c7e8c91a7fdba8dc2faff4192eb0964abdb3f) ) - ROM_LOAD( "g-0960-51.ic10", 0x7000, 0x1000, CRC(a151d934) SHA1(6681bdcd84cf62b40b2430ff530cb3c9aa36656c) ) - ROM_LOAD( "g-0960-53.ic14", 0x8000, 0x1000, CRC(063f05cc) SHA1(039ac1b007cb817ae0902484ca611ae7076930d6) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) - ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) - ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) - ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ - ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) - ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) - ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) -ROM_END - -ROM_START( nibblera ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic12", 0x3000, 0x1000, CRC(6dfa1be5) SHA1(bb265702a2f74cb7d5ba27081f9fb2fe01dd95a5) ) - ROM_LOAD( "ic7", 0x4000, 0x1000, CRC(808e1a03) SHA1(a747a16ee0c8cb803b72ac84e80f791b2bf1813a) ) - ROM_LOAD( "ic8", 0x5000, 0x1000, CRC(1571d4a2) SHA1(42cbaa262c2265d904fd5844c0d3c63d3beb67a8) ) - ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) - ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) - ROM_LOAD( "ic14", 0x8000, 0x1000, CRC(9f537185) SHA1(619df63f4df38014dc229f614043f867e6a5aa51) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) - ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) - ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) - ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ - ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) - ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) - ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) -ROM_END - -ROM_START( nibblerb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "50-144.012", 0x3000, 0x1000, CRC(68af8f4b) SHA1(be6ddd3a9abb05563c927b1ec54dbaab44b65492) ) - ROM_LOAD( "50-140.007", 0x4000, 0x1000, CRC(c18b3009) SHA1(c3703d0300f5f1546417ecdc27ab747d9c7eb267) ) - ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) ) - ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) // 50-142.009 - ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) // 50-143.010 - ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) // 50-146.015 - ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) // 50-147.016 - ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) // 50-148.017 - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) // 50-150.051 - ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) // 50-149.050 - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ - ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) // not in this set / board according to readme but it seems to be needed?! - ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) // 50-152.052 - ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) // 50-151.053 -ROM_END - -ROM_START( nibblero ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "50-144g.012", 0x3000, 0x1000, CRC(1093f525) SHA1(6a63372300765acdbac1d2e30fd73af7773de80f) ) - ROM_LOAD( "50-140g.007", 0x4000, 0x1000, CRC(848651dd) SHA1(a5aafbcca42baca8d0d5d28546733aefc778ba99) ) - ROM_LOAD( "50-141.008", 0x5000, 0x1000, CRC(b50fd79c) SHA1(cd9847bf8d570ca9411d1bbcbccb3c94220349f9) ) - ROM_LOAD( "ic9", 0x6000, 0x1000, CRC(a599df10) SHA1(68ee8b5199ec24409fcbb40c887a1eec44c68dcf) ) - ROM_LOAD( "ic10", 0x7000, 0x1000, CRC(a6b5abe5) SHA1(a0f228dac801a54dfa1947d6b2f6b4e3d005e0b2) ) - ROM_LOAD( "50-145.014", 0x8000, 0x1000, CRC(29ea246a) SHA1(bf1afbddbea5ab7e93e5ac69c6445749dd65ed3b) ) - ROM_RELOAD( 0xf000, 0x1000 ) /* for the reset and interrupt vectors */ - ROM_LOAD( "g-0960-54.ic15", 0x9000, 0x1000, CRC(7205fb8d) SHA1(bc341bc11a383aa8b8dd7b2be851907a3ec56f8b) ) - ROM_LOAD( "g-0960-55.ic16", 0xa000, 0x1000, CRC(4bb39815) SHA1(1755c28d7d300524ab839aedcc744254544e9c19) ) - ROM_LOAD( "g-0960-56.ic17", 0xb000, 0x1000, CRC(ed680f19) SHA1(b44203585f32ebe2a3bf0597eac7c0faa7e81a92) ) - - ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g-0960-57.ic50", 0x0000, 0x1000, CRC(01d4d0c2) SHA1(5a8026210a872351ce4e39e27f6479d3ca0689e2) ) - ROM_LOAD( "g-0960-58.ic51", 0x1000, 0x1000, CRC(feff7faf) SHA1(50005502578a4ea9b9c8f36998670b787d2d0b20) ) - - ROM_REGION( 0x0040, REGION_PROMS, 0 ) - ROM_LOAD( "g-0708-05.ic7", 0x0000, 0x0020, CRC(a5709ff3) SHA1(fbd07b756235f2d03aea3d777ca741ade54be200) ) /* foreground colors */ - ROM_LOAD( "g-0708-04.ic6", 0x0020, 0x0020, CRC(dacd592d) SHA1(c7709c680e2764885a40bc256d07dffc9e827cd6) ) /* background colors */ - - ROM_REGION( 0x1800, REGION_SOUND1, 0 ) /* sound ROMs */ - ROM_LOAD( "g-0959-43.ic51", 0x0000, 0x0800, CRC(0345f8b7) SHA1(c00992dc7222cc53d9fdff4ab47a7abdf90c5116) ) - ROM_LOAD( "g-0959-44.ic52", 0x0800, 0x0800, CRC(87d67dee) SHA1(bd292eab3671cb953279f3136a450deac3818367) ) - ROM_LOAD( "g-0959-45.ic53", 0x1000, 0x0800, CRC(33189917) SHA1(01a1b1693db0172609780daeb60430fa0c8bcec2) ) -ROM_END - -/* Game Drivers */ - -GAME( 1980, sasuke, 0, sasuke, sasuke, 0, ROT90, "SNK", "Sasuke vs. Commander", 0 ) -GAME( 1981, satansat, 0, satansat, satansat, 0, ROT90, "SNK", "Satan of Saturn", GAME_IMPERFECT_SOUND ) -GAME( 1981, zarzon, satansat, satansat, satansat, 0, ROT90, "[SNK] (Taito America license)", "Zarzon", GAME_IMPERFECT_SOUND ) -GAME( 1981, vanguard, 0, vanguard, vanguard, 0, ROT90, "SNK", "Vanguard (SNK)", 0 ) -GAME( 1981, vangrdce, vanguard, vanguard, vanguard, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", 0 ) -GAME( 1981, vanguarj, vanguard, vanguard, vanguard, 0, ROT90, "SNK", "Vanguard (Japan)", 0 ) -GAME( 1981, fantasy, 0, fantasy, fantasy, 0, ROT90, "SNK", "Fantasy (World)", 0 ) -GAME( 1981, fantasyu, fantasy, fantasy, fantasy, 0, ROT90, "[SNK] (Rock-Ola license)", "Fantasy (US)", 0 ) -GAME( 1981, fantasyj, fantasy, fantasy, fantasy, 0, ROT90, "SNK", "Fantasy (Japan)", 0 ) -GAME( 1982, pballoon, 0, pballoon, pballoon, 0, ROT90, "SNK", "Pioneer Balloon", 0 ) -GAME( 1982, nibbler, 0, nibbler, nibbler, 0, ROT90, "Rock-Ola", "Nibbler (set 1)", 0 ) -GAME( 1982, nibblera, nibbler, nibbler, nibbler, 0, ROT90, "Rock-Ola", "Nibbler (set 2)", 0 ) -GAME( 1982, nibblerb, nibbler, nibbler, nibbler, 0, ROT90, "Rock-Ola", "Nibbler (set 3)", 0 ) -GAME( 1983, nibblero, nibbler, nibbler, nibbler, 0, ROT90, "Olympia", "Nibbler (Olympia)", 0 ) diff --git a/src/drivers/rockrage.c b/src/drivers/rockrage.c deleted file mode 100644 index 4da77d840..000000000 --- a/src/drivers/rockrage.c +++ /dev/null @@ -1,428 +0,0 @@ -/*************************************************************************** - -Rock'n'Rage(GX620) (c) 1986 Konami - -Driver by Manuel Abadia - -GX620 PWB302109A -|------------------------------------------------------| -| LA4445 VOL1 JP1 LM324 6809 6309 | -| VOL2 JP2 YM2151 | -| YM3012 3.579545MHz | -| | -| CN1 | -| LM324 007420 | -| 6116 620G3.11C 6264 620N2.15C | -| 620N1.16C| -|J | -|A | -|M 24MHz | -|M 620D4.6E | -|A |-------| | -| VLM5030 |007342 | | -| DSW3(4) DSW2(8) | | 6264 | -| DSW1(8) 620D11B.7F | |620D6B.15F | -| |-----------| 620G10B.8F|-------| 620D5B.16F | -| | | | -| | 007327 | 620D9.11G | -| | | 620G11A.7G 620D8.12G 620D6A.15G | -| |-----------| 620D10A.8G 620D7.13G 620D5A.16G| -|------------------------------------------------------| - -Notes: - 6809 clock 1.500MHz [24/16] - 6309 clock 3.000MHz [24/8] - VLM5030 clock 3.579545MHz - YM2151 clock 3.579545MHz - VSync 60Hz - HSync 15.16kHz - JP1/JP2 - 4-pin jumper to set stereo/mono output - CN1 - 4 pin right speaker sound output connector - 6116 - 2k x8 SRAM (DIP24) - 6264 - 8k x8 SRAM (DIP28) - Konami custom ICs - - 007342 3905 67 3147B (PGA181) - 007420 3916 67 23 52 A (SDIP64) - 007327 (custom ceramic wide DIP40) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "cpu/hd6309/hd6309.h" -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/vlm5030.h" - -extern int rockrage_irq_enable; - -/* from vidhrdw */ -VIDEO_START( rockrage ); -VIDEO_UPDATE( rockrage ); -WRITE8_HANDLER( rockrage_vreg_w ); -PALETTE_INIT( rockrage ); - -static INTERRUPT_GEN( rockrage_interrupt ) -{ - if (K007342_is_INT_enabled()) - cpunum_set_input_line(0, HD6309_IRQ_LINE, HOLD_LINE); -} - -static WRITE8_HANDLER( rockrage_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - - /* bits 4-6 = bank number */ - bankaddress = 0x10000 + ((data & 0x70) >> 4) * 0x2000; - memory_set_bankptr(1,&RAM[bankaddress]); - - /* bits 0 & 1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* other bits unknown */ -} - -static WRITE8_HANDLER( rockrage_sh_irqtrigger_w ) -{ - soundlatch_w(offset, data); - cpunum_set_input_line(1,M6809_IRQ_LINE,HOLD_LINE); -} - -static READ8_HANDLER( rockrage_VLM5030_busy_r ) { - return ( VLM5030_BSY() ? 1 : 0 ); -} - -static WRITE8_HANDLER( rockrage_speech_w ) { - /* bit2 = data bus enable */ - VLM5030_RST( ( data >> 1 ) & 0x01 ); - VLM5030_ST( ( data >> 0 ) & 0x01 ); -} - -static ADDRESS_MAP_START( rockrage_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(K007342_r) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_READ(K007420_r) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_READ(K007342_scroll_r) /* Scroll RAM */ - AM_RANGE(0x2400, 0x247f) AM_READ(paletteram_r) /* Palette */ - AM_RANGE(0x2e01, 0x2e01) AM_READ(input_port_3_r) /* 1P controls */ - AM_RANGE(0x2e02, 0x2e02) AM_READ(input_port_4_r) /* 2P controls */ - AM_RANGE(0x2e03, 0x2e03) AM_READ(input_port_1_r) /* DISPW #2 */ - AM_RANGE(0x2e40, 0x2e40) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x2e00, 0x2e00) AM_READ(input_port_2_r) /* coinsw, testsw, startsw */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rockrage_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(K007342_w) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_WRITE(K007420_w) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_WRITE(K007342_scroll_w) /* Scroll RAM */ - AM_RANGE(0x2400, 0x247f) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ - AM_RANGE(0x2e80, 0x2e80) AM_WRITE(rockrage_sh_irqtrigger_w)/* cause interrupt on audio CPU */ - AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x2f00, 0x2f00) AM_WRITE(rockrage_vreg_w) /* ??? */ - AM_RANGE(0x2f40, 0x2f40) AM_WRITE(rockrage_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x4000, 0x5fff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_RAM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rockrage_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x3000, 0x3000) AM_READ(rockrage_VLM5030_busy_r)/* VLM5030 */ - AM_RANGE(0x5000, 0x5000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0x6001, 0x6001) AM_READ(YM2151_status_port_0_r) /* YM 2151 */ - AM_RANGE(0x7000, 0x77ff) AM_READ(MRA8_RAM) /* RAM */ - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rockrage_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x2000, 0x2000) AM_WRITE(VLM5030_data_w) /* VLM5030 */ - AM_RANGE(0x4000, 0x4000) AM_WRITE(rockrage_speech_w) /* VLM5030 */ - AM_RANGE(0x6000, 0x6000) AM_WRITE(YM2151_register_port_0_w) /* YM 2151 */ - AM_RANGE(0x6001, 0x6001) AM_WRITE(YM2151_data_port_0_w) /* YM 2151 */ - AM_RANGE(0x7000, 0x77ff) AM_WRITE(MWA8_RAM) /* RAM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( rockrage ) - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "30k and every 70k" ) - PORT_DIPSETTING( 0x00, "40k and every 80k" ) - PORT_DIPNAME( 0x10, 0x10, "Freeze Screen" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* COINSW */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - 0x20000/16, /* 8192 characters */ - 4, /* 4 bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 0*4, 1*4, 0x20000*8+0*4, 0x20000*8+1*4, 2*4, 3*4, 0x20000*8+2*4, 0x20000*8+3*4 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 8,8, /* 8*8 sprites */ - 0x40000/32, /* 8192 sprites */ - 4, /* 4 bpp */ - { 0, 1, 2, 3 }, /* the four bitplanes are packed in one nibble */ - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 64, 32 }, /* colors 00..31, but using 2 lookup tables */ - { REGION_GFX2, 0, &spritelayout, 32, 1 }, /* colors 32..63 */ - { -1 } /* end of array */ -}; - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct VLM5030interface vlm5030_interface = -{ - REGION_SOUND1, /* memory region of speech rom */ - 0 -}; - -static MACHINE_DRIVER_START( rockrage ) - - /* basic machine hardware */ - MDRV_CPU_ADD(HD6309, 3000000) /* 24MHz/8 */ - MDRV_CPU_PROGRAM_MAP(rockrage_readmem,rockrage_writemem) - MDRV_CPU_VBLANK_INT(rockrage_interrupt,1) - - MDRV_CPU_ADD(M6809, 1500000) /* 24MHz/16 */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(rockrage_readmem_sound,rockrage_writemem_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(64) - MDRV_COLORTABLE_LENGTH(64 + 2*16*16) - - MDRV_PALETTE_INIT(rockrage) - MDRV_VIDEO_START(rockrage) - MDRV_VIDEO_UPDATE(rockrage) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "mono", 0.60) - MDRV_SOUND_ROUTE(1, "mono", 0.60) - - MDRV_SOUND_ADD(VLM5030, 3579545) - MDRV_SOUND_CONFIG(vlm5030_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( rockrage ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "620q01.16c", 0x08000, 0x08000, CRC(0ddb5ef5) SHA1(71b38c9f957858371f0ac95720d3c6d07339e5c5) ) /* fixed ROM */ - ROM_LOAD( "620q02.15c", 0x10000, 0x10000, CRC(b4f6e346) SHA1(43fded4484836ff315dd6e40991f909dad73f1ed) ) /* banked ROM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "620k03.11c", 0x08000, 0x08000, CRC(9fbefe82) SHA1(ab42b7e519a0dd08f2249dad0819edea0976f39a) ) - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "620k06.15g", 0x000000, 0x20000, BAD_DUMP CRC(c0e2b35c) SHA1(fb37a151188f27f883fed5fdfb0094c3efa9470d) ) /* tiles */ - ROM_LOAD( "620k05.16g", 0x020000, 0x20000, BAD_DUMP CRC(ca9d9346) SHA1(fee8d98def802f312c6cd0ec751c67aa18acfacd) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "620k11.rom", 0x000000, 0x20000, CRC(70449239) SHA1(07653ea3bfe0063c9d2b2102ac52a1b50fc2971e) ) /* sprites */ - ROM_LOAD( "620l10.8g", 0x020000, 0x20000, CRC(06d108e0) SHA1(cae8c5f2fc4e84bc7adbf27f71a18a74968c4296) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) ) /* layer 0 lookup table */ - ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) ) /* layer 1 lookup table */ - ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* sprite lookup table, but its not used */ - /* because it's always 0 1 2 ... f */ - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* VLM3050 data */ - ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) -ROM_END - -ROM_START( rockraga ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "620n01.16c", 0x08000, 0x10000, CRC(f89f56ea) SHA1(64ba2575e09af257b242d913eab69130f7341894) ) /* fixed ROM */ - ROM_LOAD( "620n02.15c", 0x10000, 0x10000, CRC(5bc1f1cf) SHA1(d5bb9971d778449e0c01495f9888c0da7ac617a7) ) /* banked ROM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "620k03.11c", 0x08000, 0x08000, CRC(9fbefe82) SHA1(ab42b7e519a0dd08f2249dad0819edea0976f39a) ) /* Same rom but labeled as ver "G" */ - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "620d06a.15g", 0x000000, 0x10000, CRC(8cc05d4b) SHA1(0d6fef98bdc4d299229de4e0044241aedee83b85) ) /* tiles */ - ROM_LOAD( "620d06b.15f", 0x010000, 0x10000, CRC(3892d41d) SHA1(c49f2e61f24a59be4e59e2f3c60e731b8a05ddd3) ) - ROM_LOAD( "620d05a.16g", 0x020000, 0x10000, CRC(4d53fde9) SHA1(941fb6c94922727516945330b4b738aa052f7734) ) - ROM_LOAD( "620d05b.16f", 0x030000, 0x10000, CRC(69f4599f) SHA1(664581874d74ed7bf59bde6730799e15f4e0144d) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "620g11a.7g", 0x000000, 0x10000, CRC(0ef40c2c) SHA1(2c0b7e611333a072ebcef60c1985211d5936bf66) ) /* sprites */ - ROM_LOAD( "620d11b.7f", 0x010000, 0x10000, CRC(8f116cbf) SHA1(0400609aadde39c6f02ab954c78bc67a1d23da1d) ) - ROM_LOAD( "620d10a.8g", 0x020000, 0x10000, CRC(4789ae7b) SHA1(8885ca20bf746fb3ed229486c0e3903ababfacc9) ) - ROM_LOAD( "620g10b.8f", 0x030000, 0x10000, CRC(1618854a) SHA1(0afb34a9ed97f13c1910acd7767cb8546ea7e6cd) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) ) /* layer 0 lookup table */ - ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) ) /* layer 1 lookup table */ - ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* sprite lookup table, but its not used */ - /* because it's always 0 1 2 ... f */ - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* VLM3050 data */ - ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) /* Same rom but labeled as ver "G" */ -ROM_END - -ROM_START( rockragj ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "620k01.16c", 0x08000, 0x08000, CRC(4f5171f7) SHA1(5bce9e3f9d01c113c697853763cd891b91297eb2) ) /* fixed ROM */ - ROM_LOAD( "620k02.15c", 0x10000, 0x10000, CRC(04c4d8f7) SHA1(2a1a024fc38bb934c454092b0aed74d0f1d1c4af) ) /* banked ROM */ - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "620k03.11c", 0x08000, 0x08000, CRC(9fbefe82) SHA1(ab42b7e519a0dd08f2249dad0819edea0976f39a) ) - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "620k06.15g", 0x000000, 0x20000, CRC(c0e2b35c) SHA1(fb37a151188f27f883fed5fdfb0094c3efa9470d) ) /* tiles */ - ROM_LOAD( "620k05.16g", 0x020000, 0x20000, CRC(ca9d9346) SHA1(fee8d98def802f312c6cd0ec751c67aa18acfacd) ) - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "620k11.7g", 0x000000, 0x20000, CRC(7430f6e9) SHA1(5d488c7b7b0eb4e502b3e566ac102cd3267e8568) ) /* sprites */ - ROM_LOAD( "620k10.8g", 0x020000, 0x20000, CRC(0d1a95ab) SHA1(be565424f17af31dcd07004c6be03bbb00aef514) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "620k09.11g", 0x00000, 0x00100, CRC(9f0e0608) SHA1(c95bdb370e4a91f27afbd5ff3b39b2e0ad87da73) ) /* layer 0 lookup table */ - ROM_LOAD( "620k08.12g", 0x00100, 0x00100, CRC(b499800c) SHA1(46fa4e071ebceed12027de109be1e16dde5e846e) ) /* layer 1 lookup table */ - ROM_LOAD( "620k07.13g", 0x00200, 0x00100, CRC(b6135ee0) SHA1(248a978987cff86c2bbad10ef332f63a6abd5bee) ) /* sprite lookup table, but its not used */ - /* because it's always 0 1 2 ... f */ - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* VLM3050 data */ - ROM_LOAD( "620k04.6e", 0x00000, 0x08000, CRC(8be969f3) SHA1(9856b4c13fac77b645aed67a08cb4965b4966492) ) -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -GAME( 1986, rockrage, 0, rockrage, rockrage, 0, ROT0, "Konami", "Rock 'n Rage (World?)", 0 ) -GAME( 1986, rockraga, rockrage, rockrage, rockrage, 0, ROT0, "Konami", "Rock 'n Rage (Prototype?)", 0 ) -GAME( 1986, rockragj, rockrage, rockrage, rockrage, 0, ROT0, "Konami", "Koi no Hotrock (Japan)", 0 ) diff --git a/src/drivers/rocnrope.c b/src/drivers/rocnrope.c deleted file mode 100644 index c8d5bebc2..000000000 --- a/src/drivers/rocnrope.c +++ /dev/null @@ -1,360 +0,0 @@ -/*************************************************************************** - -Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "sndhrdw/timeplt.h" - - -extern void konami1_decode(void); - -extern WRITE8_HANDLER( rocnrope_videoram_w ); -extern WRITE8_HANDLER( rocnrope_colorram_w ); -extern WRITE8_HANDLER( rocnrope_flipscreen_w ); - -extern PALETTE_INIT( rocnrope ); -extern VIDEO_START( rocnrope ); -extern VIDEO_UPDATE( rocnrope ); - - -/* Roc'n'Rope has the IRQ vectors in RAM. The rom contains $FFFF at this address! */ -WRITE8_HANDLER( rocnrope_interrupt_vector_w ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - - RAM[0xFFF2+offset] = data; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x3080, 0x3080) AM_READ(input_port_0_r) /* IO Coin */ - AM_RANGE(0x3081, 0x3081) AM_READ(input_port_1_r) /* P1 IO */ - AM_RANGE(0x3082, 0x3082) AM_READ(input_port_2_r) /* P2 IO */ - AM_RANGE(0x3083, 0x3083) AM_READ(input_port_3_r) /* DSW 0 */ - AM_RANGE(0x3000, 0x3000) AM_READ(input_port_4_r) /* DSW 1 */ - AM_RANGE(0x3100, 0x3100) AM_READ(input_port_5_r) /* DSW 2 */ - AM_RANGE(0x4000, 0x5fff) AM_READ(MRA8_RAM) - AM_RANGE(0x6000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x4000, 0x402f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram_2) - AM_RANGE(0x4400, 0x442f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x4000, 0x47ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4800, 0x4bff) AM_WRITE(rocnrope_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x4c00, 0x4fff) AM_WRITE(rocnrope_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x5000, 0x5fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x8080, 0x8080) AM_WRITE(rocnrope_flipscreen_w) - AM_RANGE(0x8081, 0x8081) AM_WRITE(timeplt_sh_irqtrigger_w) /* cause interrupt on audio CPU */ - AM_RANGE(0x8082, 0x8082) AM_WRITE(MWA8_NOP) /* interrupt acknowledge??? */ - AM_RANGE(0x8083, 0x8083) AM_WRITE(MWA8_NOP) /* Coin counter 1 */ - AM_RANGE(0x8084, 0x8084) AM_WRITE(MWA8_NOP) /* Coin counter 2 */ - AM_RANGE(0x8087, 0x8087) AM_WRITE(interrupt_enable_w) - AM_RANGE(0x8100, 0x8100) AM_WRITE(soundlatch_w) - AM_RANGE(0x8182, 0x818d) AM_WRITE(rocnrope_interrupt_vector_w) - AM_RANGE(0x6000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -INPUT_PORTS_START( rocnrope ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, "Disabled" ) -/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but - it doesn't give you any credit */ - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "255 (Cheat)") - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x78, 0x78, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x78, "Easy 1" ) - PORT_DIPSETTING( 0x70, "Easy 2" ) - PORT_DIPSETTING( 0x68, "Easy 3" ) - PORT_DIPSETTING( 0x60, "Easy 4" ) - PORT_DIPSETTING( 0x58, "Normal 1" ) - PORT_DIPSETTING( 0x50, "Normal 2" ) - PORT_DIPSETTING( 0x48, "Normal 3" ) - PORT_DIPSETTING( 0x40, "Normal 4" ) - PORT_DIPSETTING( 0x38, "Normal 5" ) - PORT_DIPSETTING( 0x30, "Normal 6" ) - PORT_DIPSETTING( 0x28, "Normal 7" ) - PORT_DIPSETTING( 0x20, "Normal 8" ) - PORT_DIPSETTING( 0x18, "Difficult 1" ) - PORT_DIPSETTING( 0x10, "Difficult 2" ) - PORT_DIPSETTING( 0x08, "Difficult 3" ) - PORT_DIPSETTING( 0x00, "Difficult 4" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x07, 0x07, "First Bonus" ) - PORT_DIPSETTING( 0x07, "20000" ) - PORT_DIPSETTING( 0x05, "30000" ) - PORT_DIPSETTING( 0x04, "40000" ) - PORT_DIPSETTING( 0x03, "50000" ) - PORT_DIPSETTING( 0x02, "60000" ) - PORT_DIPSETTING( 0x01, "70000" ) - PORT_DIPSETTING( 0x00, "80000" ) - /* 0x06 gives 20000 */ - PORT_DIPNAME( 0x38, 0x38, "Repeated Bonus" ) - PORT_DIPSETTING( 0x38, "40000" ) - PORT_DIPSETTING( 0x18, "50000" ) - PORT_DIPSETTING( 0x10, "60000" ) - PORT_DIPSETTING( 0x08, "70000" ) - PORT_DIPSETTING( 0x00, "80000" ) - /* 0x20, 0x28 and 0x30 all gives 40000 */ - PORT_DIPNAME( 0x40, 0x00, "Grant Repeated Bonus" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x00, "Unknown DSW 8" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 sprites */ - 512, /* 512 characters */ - 4, /* 4 bits per pixel */ - { 0x2000*8+4, 0x2000*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 16*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - 256, /* 256 sprites */ - 4, /* 4 bits per pixel */ - { 256*64*8+4, 256*64*8+0, 4, 0 }, - { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, - 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 16 }, - { REGION_GFX2, 0, &spritelayout, 16*16, 16 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( rocnrope ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 1600000) /* 1.6 MHz??? Attract mode depends on this to work correctly */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,14318180/8) - /* audio CPU */ /* 1.789772727 MHz */ \ - MDRV_CPU_PROGRAM_MAP(timeplt_sound_readmem,timeplt_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(16*16+16*16) - - MDRV_PALETTE_INIT(rocnrope) - MDRV_VIDEO_START(rocnrope) - MDRV_VIDEO_UPDATE(rocnrope) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_CONFIG(timeplt_ay8910_interface) - MDRV_SOUND_ROUTE(0, "filter.0.0", 0.60) - MDRV_SOUND_ROUTE(1, "filter.0.1", 0.60) - MDRV_SOUND_ROUTE(2, "filter.0.2", 0.60) - - MDRV_SOUND_ADD(AY8910, 14318180/8) - MDRV_SOUND_ROUTE(0, "filter.1.0", 0.60) - MDRV_SOUND_ROUTE(1, "filter.1.1", 0.60) - MDRV_SOUND_ROUTE(2, "filter.1.2", 0.60) - - MDRV_SOUND_ADD_TAG("filter.0.0", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.0.1", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.0.2", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD_TAG("filter.1.0", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.1.1", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MDRV_SOUND_ADD_TAG("filter.1.2", FILTER_RC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( rocnrope ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rr1.1h", 0x6000, 0x2000, CRC(83093134) SHA1(c9509cfb9f9043cd6c226cc84dbc2e2b744488f6) ) - ROM_LOAD( "rr2.2h", 0x8000, 0x2000, CRC(75af8697) SHA1(70bb4b838cdafedf3d94425fad84f77815898d83) ) - ROM_LOAD( "rr3.3h", 0xa000, 0x2000, CRC(b21372b1) SHA1(c08ab3caaa646f4752f890d8339bce6b723864bb) ) - ROM_LOAD( "rr4.4h", 0xc000, 0x2000, CRC(7acb2a05) SHA1(93762d1890f40abc98372a2aa9fe0f63252b6389) ) - ROM_LOAD( "rnr_h5.vid", 0xe000, 0x2000, CRC(150a6264) SHA1(930ccf8dcf4971d0a15f406d9114be5ecfaa1727) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "rnr_7a.snd", 0x0000, 0x1000, CRC(75d2c4e2) SHA1(b701019b4e7b06b268be660ce7958b5367318c27) ) - ROM_LOAD( "rnr_8a.snd", 0x1000, 0x1000, CRC(ca4325ae) SHA1(34ac035c0c2ed6bcafde1491d976bb9e9d2a2a7d) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rnr_h12.vid", 0x0000, 0x2000, CRC(e2114539) SHA1(0ea19ae4d7c2da14f23c81abb8e2c931785b2715) ) - ROM_LOAD( "rnr_h11.vid", 0x2000, 0x2000, CRC(169a8f3f) SHA1(182c7c9b9849ebb57b3ff7c0b629f2f8e2efa9ba) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rnr_a11.vid", 0x0000, 0x2000, CRC(afdaba5e) SHA1(27c090cb1c3767c997daeedbe1ba24786f9e78f1) ) - ROM_LOAD( "rnr_a12.vid", 0x2000, 0x2000, CRC(054cafeb) SHA1(4c3cd850b347217af3dd5c9bb84bcff7b30689bd) ) - ROM_LOAD( "rnr_a9.vid", 0x4000, 0x2000, CRC(9d2166b2) SHA1(42d2b05360e58b1b2b3ad06c98eb46d9da2b1c21) ) - ROM_LOAD( "rnr_a10.vid", 0x6000, 0x2000, CRC(aff6e22f) SHA1(476d67821519feddc9f9c8537b46e6eede790035) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "a17_prom.bin", 0x0000, 0x0020, CRC(22ad2c3e) SHA1(1c2198b286c75aa9e78d000432795b1ce86ad6b9) ) - ROM_LOAD( "b16_prom.bin", 0x0020, 0x0100, CRC(750a9677) SHA1(7a5b4aed5f87180850657b8852bb3f3138d58b5b) ) - ROM_LOAD( "rocnrope.pr3", 0x0120, 0x0100, CRC(b5c75a27) SHA1(923d6ccf015fd7458494416cc05426cc922a9238) ) -ROM_END - -ROM_START( rocnropk ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rnr_h1.vid", 0x6000, 0x2000, CRC(0fddc1f6) SHA1(a9c6c033799883dc45eaa448387d4f0728b9e47e) ) - ROM_LOAD( "rnr_h2.vid", 0x8000, 0x2000, CRC(ce9db49a) SHA1(7a6ffb65cb65aa90e953706ee67c6ae91322ebf6) ) - ROM_LOAD( "rnr_h3.vid", 0xa000, 0x2000, CRC(6d278459) SHA1(a1417f158f288b0b0cbffc58f9e22b6c7cdf0fc7) ) - ROM_LOAD( "rnr_h4.vid", 0xc000, 0x2000, CRC(9b2e5f2a) SHA1(e91d7a9141dbe0fc5eacc2c5a672935993a3316f) ) - ROM_LOAD( "rnr_h5.vid", 0xe000, 0x2000, CRC(150a6264) SHA1(930ccf8dcf4971d0a15f406d9114be5ecfaa1727) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "rnr_7a.snd", 0x0000, 0x1000, CRC(75d2c4e2) SHA1(b701019b4e7b06b268be660ce7958b5367318c27) ) - ROM_LOAD( "rnr_8a.snd", 0x1000, 0x1000, CRC(ca4325ae) SHA1(34ac035c0c2ed6bcafde1491d976bb9e9d2a2a7d) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "rnr_h12.vid", 0x0000, 0x2000, CRC(e2114539) SHA1(0ea19ae4d7c2da14f23c81abb8e2c931785b2715) ) - ROM_LOAD( "rnr_h11.vid", 0x2000, 0x2000, CRC(169a8f3f) SHA1(182c7c9b9849ebb57b3ff7c0b629f2f8e2efa9ba) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "rnr_a11.vid", 0x0000, 0x2000, CRC(afdaba5e) SHA1(27c090cb1c3767c997daeedbe1ba24786f9e78f1) ) - ROM_LOAD( "rnr_a12.vid", 0x2000, 0x2000, CRC(054cafeb) SHA1(4c3cd850b347217af3dd5c9bb84bcff7b30689bd) ) - ROM_LOAD( "rnr_a9.vid", 0x4000, 0x2000, CRC(9d2166b2) SHA1(42d2b05360e58b1b2b3ad06c98eb46d9da2b1c21) ) - ROM_LOAD( "rnr_a10.vid", 0x6000, 0x2000, CRC(aff6e22f) SHA1(476d67821519feddc9f9c8537b46e6eede790035) ) - - ROM_REGION( 0x0220, REGION_PROMS, 0 ) - ROM_LOAD( "a17_prom.bin", 0x0000, 0x0020, CRC(22ad2c3e) SHA1(1c2198b286c75aa9e78d000432795b1ce86ad6b9) ) - ROM_LOAD( "b16_prom.bin", 0x0020, 0x0100, CRC(750a9677) SHA1(7a5b4aed5f87180850657b8852bb3f3138d58b5b) ) - ROM_LOAD( "rocnrope.pr3", 0x0120, 0x0100, CRC(b5c75a27) SHA1(923d6ccf015fd7458494416cc05426cc922a9238) ) -ROM_END - - - -static DRIVER_INIT( rocnrope ) -{ - extern UINT8 *konami1_decrypted; - - konami1_decode(); - - konami1_decrypted[0x703d] = 0x98; /* fix one instruction */ -} - -static DRIVER_INIT( rocnropk ) -{ - konami1_decode(); -} - - - -GAME( 1983, rocnrope, 0, rocnrope, rocnrope, rocnrope, ROT270, "Konami", "Roc'n Rope", 0 ) -GAME( 1983, rocnropk, rocnrope, rocnrope, rocnrope, rocnropk, ROT270, "Konami + Kosuka", "Roc'n Rope (Kosuka)", 0 ) diff --git a/src/drivers/rollerg.c b/src/drivers/rollerg.c deleted file mode 100644 index e0921ee68..000000000 --- a/src/drivers/rollerg.c +++ /dev/null @@ -1,362 +0,0 @@ -/*************************************************************************** - -Rollergames (GX999) (c) 1991 Konami - -driver by Nicola Salmoria - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "machine/eeprom.h" -#include "sound/3812intf.h" -#include "sound/k053260.h" - -/* prototypes */ -static MACHINE_RESET( rollerg ); -static void rollerg_banking( int lines ); - -VIDEO_START( rollerg ); -VIDEO_UPDATE( rollerg ); - - - -static int readzoomroms; - -static WRITE8_HANDLER( rollerg_0010_w ) -{ -logerror("%04x: write %02x to 0010\n",activecpu_get_pc(),data); - - /* bits 0/1 are coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 2 enables 051316 ROM reading */ - readzoomroms = data & 0x04; - - /* bit 5 enables 051316 wraparound */ - K051316_wraparound_enable(0, data & 0x20); - - /* other bits unknown */ -} - -static READ8_HANDLER( rollerg_K051316_r ) -{ - if (readzoomroms) return K051316_rom_0_r(offset); - else return K051316_0_r(offset); -} - -static READ8_HANDLER( rollerg_sound_r ) -{ - /* If the sound CPU is running, read the status, otherwise - just make it pass the test */ - return K053260_0_r(2 + offset); -} - -static WRITE8_HANDLER( soundirq_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static void nmi_callback(int param) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); -} - -static WRITE8_HANDLER( sound_arm_nmi_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); - timer_set(TIME_IN_USEC(50),0,nmi_callback); /* kludge until the K053260 is emulated correctly */ -} - -static READ8_HANDLER( pip_r ) -{ - return 0x7f; -} - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0020, 0x0020) AM_READ(watchdog_reset_r) - AM_RANGE(0x0030, 0x0031) AM_READ(rollerg_sound_r) /* K053260 */ - AM_RANGE(0x0050, 0x0050) AM_READ(input_port_0_r) - AM_RANGE(0x0051, 0x0051) AM_READ(input_port_1_r) - AM_RANGE(0x0052, 0x0052) AM_READ(input_port_4_r) - AM_RANGE(0x0053, 0x0053) AM_READ(input_port_2_r) - AM_RANGE(0x0060, 0x0060) AM_READ(input_port_3_r) - AM_RANGE(0x0061, 0x0061) AM_READ(pip_r) /* ????? */ - AM_RANGE(0x0300, 0x030f) AM_READ(K053244_r) - AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_K051316_r) - AM_RANGE(0x1000, 0x17ff) AM_READ(K053245_r) - AM_RANGE(0x1800, 0x1fff) AM_READ(paletteram_r) - AM_RANGE(0x2000, 0x3aff) AM_READ(MRA8_RAM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w) - AM_RANGE(0x0020, 0x0020) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x0030, 0x0031) AM_WRITE(K053260_0_w) - AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w) - AM_RANGE(0x0100, 0x010f) AM_WRITE(MWA8_NOP) /* 053252? */ - AM_RANGE(0x0200, 0x020f) AM_WRITE(K051316_ctrl_0_w) - AM_RANGE(0x0300, 0x030f) AM_WRITE(K053244_w) - AM_RANGE(0x0800, 0x0fff) AM_WRITE(K051316_0_w) - AM_RANGE(0x1000, 0x17ff) AM_WRITE(K053245_w) - AM_RANGE(0x1800, 0x1fff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram) - AM_RANGE(0x2000, 0x3aff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa02f) AM_READ(K053260_0_r) - AM_RANGE(0xc000, 0xc000) AM_READ(YM3812_status_port_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xa02f) AM_WRITE(K053260_0_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM3812_control_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w) -ADDRESS_MAP_END - - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( rollerg ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Disabled" ) - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "1" ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" ) - PORT_DIPSETTING( 0x00, "1/2 for Stage Winner" ) - PORT_DIPSETTING( 0x08, "1/4 for Stage Winner" ) - PORT_DIPSETTING( 0x10, "1/4 for Cycle Winner" ) - PORT_DIPSETTING( 0x18, DEF_STR( None ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) -INPUT_PORTS_END - - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct K053260_interface k053260_interface = -{ - REGION_SOUND1 /* memory region */ -}; - -static MACHINE_DRIVER_START( rollerg ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) - /* NMIs are generated by the 053260 */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(rollerg) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(rollerg) - MDRV_VIDEO_UPDATE(rollerg) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(K053260, 3579545) - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( rollerg ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "999m02.g7", 0x10000, 0x18000, CRC(3df8db93) SHA1(10c46d53d11b12b8f7cc6417601baef4638c1efe) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "999m01.e11", 0x0000, 0x8000, CRC(1fcfb22f) SHA1(ef058a7de6ba7cf310b91975345113acc6078f8a) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "999h06.k2", 0x000000, 0x100000, CRC(eda05130) SHA1(b52073a4a4651035d5f1e112601ceb2d004b2143) ) /* sprites */ - ROM_LOAD( "999h05.k8", 0x100000, 0x100000, CRC(5f321c7d) SHA1(d60a3480891b83ac109f2fecfe2b958bac310c15) ) - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "999h03.d23", 0x000000, 0x040000, CRC(ea1edbd2) SHA1(a17d19f873384287e1e47222d46274e7408b40d4) ) /* zoom */ - ROM_LOAD( "999h04.f23", 0x040000, 0x040000, CRC(c1a35355) SHA1(615606d30500a8f2be19171893e985b085fff2fc) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* samples for 053260 */ - ROM_LOAD( "999h09.c5", 0x000000, 0x080000, CRC(c5188783) SHA1(d9ab69e4197ba2b42e3b0bb713236c8037fc2ab3) ) -ROM_END - -ROM_START( rollergj ) - ROM_REGION( 0x28000, REGION_CPU1, 0 ) /* code + banked roms */ - ROM_LOAD( "999v02.bin", 0x10000, 0x18000, CRC(0dd8c3ac) SHA1(4c3d5514dec317c6640ceaaa06411766632f4412) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the sound CPU */ - ROM_LOAD( "999m01.e11", 0x0000, 0x8000, CRC(1fcfb22f) SHA1(ef058a7de6ba7cf310b91975345113acc6078f8a) ) - - ROM_REGION( 0x200000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "999h06.k2", 0x000000, 0x100000, CRC(eda05130) SHA1(b52073a4a4651035d5f1e112601ceb2d004b2143) ) /* sprites */ - ROM_LOAD( "999h05.k8", 0x100000, 0x100000, CRC(5f321c7d) SHA1(d60a3480891b83ac109f2fecfe2b958bac310c15) ) - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "999h03.d23", 0x000000, 0x040000, CRC(ea1edbd2) SHA1(a17d19f873384287e1e47222d46274e7408b40d4) ) /* zoom */ - ROM_LOAD( "999h04.f23", 0x040000, 0x040000, CRC(c1a35355) SHA1(615606d30500a8f2be19171893e985b085fff2fc) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* samples for 053260 */ - ROM_LOAD( "999h09.c5", 0x000000, 0x080000, CRC(c5188783) SHA1(d9ab69e4197ba2b42e3b0bb713236c8037fc2ab3) ) -ROM_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void rollerg_banking( int lines ) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0; - - - offs = 0x10000 + ((lines & 0x07) * 0x4000); - if (offs >= 0x28000) offs -= 0x20000; - memory_set_bankptr(1,&RAM[offs]); -} - -static MACHINE_RESET( rollerg ) -{ - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)rollerg_banking); - - readzoomroms = 0; -} - -static DRIVER_INIT( rollerg ) -{ - konami_rom_deinterleave_2(REGION_GFX1); -} - - - -GAME( 1991, rollerg, 0, rollerg, rollerg, rollerg, ROT0, "Konami", "Rollergames (US)", 0 ) -GAME( 1991, rollergj, rollerg, rollerg, rollerg, rollerg, ROT0, "Konami", "Rollergames (Japan)", 0 ) diff --git a/src/drivers/route16.c b/src/drivers/route16.c deleted file mode 100644 index 9577d3ea9..000000000 --- a/src/drivers/route16.c +++ /dev/null @@ -1,708 +0,0 @@ -/*************************************************************************** - - Route 16/Stratovox memory map (preliminary) - - driver by Zsolt Vasvari - - Notes: Route 16 and Stratovox use identical hardware with the following - exceptions: Stratovox has a DAC for voice. - Route 16 has the added ability to turn off each bitplane indiviaually. - This looks like an afterthought, as one of the same bits that control - the palette selection is doubly utilized as the bitmap enable bit. - - Space Echo: - when all astronauts are taken the game over tune ends with 5 bad notes, - this appears to be a bug in the rom from a changed instruction at 2EB3. - - service mode shows a garbled screen as most of the code for it has been - replaced by other routines, however the sound tests still work. it's - possible that the service switch isn't connected on the real hardware. - - the game hangs if it doesn't pass the startup test, a best guess is implemented - rather than patching out the test. code for the same test is in stratvox but - isn't called, speakres has a very similar test but doesn't care about the result. - - interrupts per frame for cpu1 is a best guess based on how stratvox uses the DAC, - writing up to 195 times per frame with each byte from the rom written 4 times. - spacecho writes one byte per interrupt so 195/4 or 48 is used. a lower number - increases the chance of a sound interrupting itself, which for most sounds - is buggy and causes the game to freeze until the first sound completes. - - CPU1 - - 0000-2fff ROM - 4000-43ff Shared RAM - 8000-bfff Video RAM - - I/O Read - - 48xx IN0 - DIP Switches - 50xx IN1 - Input Port 1 - 58xx IN2 - Input Port 2 - 60xx IN3 - Unknown (Speak & Rescue/Space Echo only) - - I/O Write - - 48xx OUT0 - D0-D4 color select for VRAM 0 - D5 coin counter - 50xx OUT1 - D0-D4 color select for VRAM 1 - D5 VIDEO I/II (Flip Screen) - 58xx OUT2 - Unknown (Speak & Rescue/Space Echo only) - - I/O Port Write - - 6800 AY-8910 Write Port - 6900 AY-8910 Control Port - - - CPU2 - - 0000-1fff ROM - 4000-43ff Shared RAM - 8000-bfff Video RAM - - I/O Write - - 2800 DAC output (Stratovox only) - - ***************************************************************************/ - -#include "driver.h" -#include "sound/dac.h" -#include "sound/sn76477.h" -#include "sound/ay8910.h" - -extern unsigned char *route16_sharedram; -extern unsigned char *route16_videoram1; -extern unsigned char *route16_videoram2; -extern size_t route16_videoram_size; -extern int route16_hardware; - -DRIVER_INIT( route16 ); -DRIVER_INIT( route16b ); -DRIVER_INIT( stratvox ); -PALETTE_INIT( route16 ); -VIDEO_START( route16 ); -WRITE8_HANDLER( route16_out0_w ); -WRITE8_HANDLER( route16_out1_w ); -WRITE8_HANDLER( route16_videoram1_w ); -WRITE8_HANDLER( route16_videoram2_w ); -READ8_HANDLER( route16_videoram1_r ); -READ8_HANDLER( route16_videoram2_r ); -WRITE8_HANDLER( route16_sharedram_w ); -READ8_HANDLER( route16_sharedram_r ); -VIDEO_UPDATE( route16 ); -WRITE8_HANDLER( stratvox_sn76477_w ); -READ8_HANDLER ( speakres_in3_r ); -WRITE8_HANDLER ( speakres_out2_w ); - -READ8_HANDLER( routex_prot_read ) -{ - if (activecpu_get_pc()==0x2f) return 0xFB; - - logerror ("cpu #%d (PC=%08X): unmapped prot read\n", cpu_getactivecpu(), activecpu_get_pc()); - return 0x00; - -} - -static ADDRESS_MAP_START( cpu1_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_READ(MRA8_ROM) - /*AM_RANGE(0x3000, 0x3001) AM_READ(MRA8_NOP) Route 16 protection device */ - AM_RANGE(0x4000, 0x43ff) AM_READ(route16_sharedram_r) - AM_RANGE(0x4800, 0x4800) AM_READ(input_port_0_r) - AM_RANGE(0x5000, 0x5000) AM_READ(input_port_1_r) - AM_RANGE(0x5800, 0x5800) AM_READ(input_port_2_r) - AM_RANGE(0x8000, 0xbfff) AM_READ(route16_videoram1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cpu1_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_WRITE(MWA8_ROM) - /*AM_RANGE(0x3001, 0x3001) AM_WRITE(MWA8_NOP) Route 16 protection device */ - AM_RANGE(0x4000, 0x43ff) AM_WRITE(route16_sharedram_w) AM_BASE(&route16_sharedram) - AM_RANGE(0x4800, 0x4800) AM_WRITE(route16_out0_w) - AM_RANGE(0x5000, 0x5000) AM_WRITE(route16_out1_w) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(route16_videoram1_w) AM_BASE(&route16_videoram1) AM_SIZE(&route16_videoram_size) - AM_RANGE(0xc000, 0xc000) AM_WRITE(MWA8_RAM) // Stratvox has an off by one error - // when clearing the screen -ADDRESS_MAP_END - -static ADDRESS_MAP_START( routex_cpu1_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x37ff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(route16_sharedram_r) - AM_RANGE(0x4800, 0x4800) AM_READ(input_port_0_r) - AM_RANGE(0x5000, 0x5000) AM_READ(input_port_1_r) - AM_RANGE(0x5800, 0x5800) AM_READ(input_port_2_r) - AM_RANGE(0x6400, 0x6400) AM_READ(routex_prot_read) - AM_RANGE(0x8000, 0xbfff) AM_READ(route16_videoram1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( routex_cpu1_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x37ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(route16_sharedram_w) AM_BASE(&route16_sharedram) - AM_RANGE(0x4800, 0x4800) AM_WRITE(route16_out0_w) - AM_RANGE(0x5000, 0x5000) AM_WRITE(route16_out1_w) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(route16_videoram1_w) AM_BASE(&route16_videoram1) AM_SIZE(&route16_videoram_size) - AM_RANGE(0xc000, 0xc000) AM_WRITE(MWA8_RAM) // Stratvox has an off by one error - // when clearing the screen -ADDRESS_MAP_END - -static ADDRESS_MAP_START( altcpu1_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(route16_sharedram_r) - AM_RANGE(0x4800, 0x4800) AM_READ(input_port_0_r) - AM_RANGE(0x5000, 0x5000) AM_READ(input_port_1_r) - AM_RANGE(0x5800, 0x5800) AM_READ(input_port_2_r) - AM_RANGE(0x6000, 0x6000) AM_READ(speakres_in3_r) - AM_RANGE(0x8000, 0xbfff) AM_READ(route16_videoram1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( altcpu1_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(route16_sharedram_w) AM_BASE(&route16_sharedram) - AM_RANGE(0x4800, 0x4800) AM_WRITE(route16_out0_w) - AM_RANGE(0x5000, 0x5000) AM_WRITE(route16_out1_w) - AM_RANGE(0x5800, 0x5800) AM_WRITE(speakres_out2_w) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(route16_videoram1_w) AM_BASE(&route16_videoram1) AM_SIZE(&route16_videoram_size) - AM_RANGE(0xc000, 0xc000) AM_WRITE(MWA8_RAM) // Speak & Rescue/Space Echo have same off by one error -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cpu1_writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x6800, 0x6800) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x6900, 0x6900) AM_WRITE(AY8910_control_port_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cpu2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(route16_sharedram_r) - AM_RANGE(0x8000, 0xbfff) AM_READ(route16_videoram2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cpu2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x2800, 0x2800) AM_WRITE(DAC_0_data_w) // Not used by Route 16 - AM_RANGE(0x4000, 0x43ff) AM_WRITE(route16_sharedram_w) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(route16_videoram2_w) AM_BASE(&route16_videoram2) - AM_RANGE(0xc000, 0xc1ff) AM_WRITE(MWA8_NOP) // Route 16 sometimes writes outside of -ADDRESS_MAP_END - - -INPUT_PORTS_START( route16 ) - PORT_START /* DSW 1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) // Doesn't seem to - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // be referenced - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) // Doesn't seem to - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // be referenced - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) -// PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) // Same as 0x08 - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* Input Port 1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* Input Port 2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - - - -INPUT_PORTS_START( stratvox ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x02, 0x00, "Replenish Astronouts" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x00, "2 Attackers At Wave" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x10, 0x00, "Astronauts Kidnapped" ) - PORT_DIPSETTING( 0x00, "Less Often" ) - PORT_DIPSETTING( 0x10, "More Often" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Demo Voices" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( speakres ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, "2 Attackers At Wave" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "5000" ) - PORT_DIPSETTING( 0x10, "8000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Demo Voices" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - -INPUT_PORTS_START( spacecho ) - PORT_START /* IN0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPNAME( 0x02, 0x00, "Replenish Astronouts" ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x0c, 0x00, "2 Attackers At Wave" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x10, 0x00, "Astronauts Kidnapped" ) - PORT_DIPSETTING( 0x00, "Less Often" ) - PORT_DIPSETTING( 0x10, "More Often" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Demo Voices" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) -INPUT_PORTS_END - - -static struct AY8910interface ay8910_interface = -{ - 0, - 0, - stratvox_sn76477_w, /* SN76477 commands (not used in Route 16?) */ - 0 -}; - - -static struct SN76477interface sn76477_interface = -{ - RES_K( 47) , /* 4 noise_res */ - RES_K(150) , /* 5 filter_res */ - CAP_U(0.001) , /* 6 filter_cap */ - RES_M(3.3) , /* 7 decay_res */ - CAP_U(1.0) , /* 8 attack_decay_cap */ - RES_K(4.7) , /* 10 attack_res */ - RES_K(200) , /* 11 amplitude_res */ - RES_K( 55) , /* 12 feedback_res */ - 5.0*2/(2+10) , /* 16 vco_voltage */ - CAP_U(0.022) , /* 17 vco_cap */ - RES_K(100) , /* 18 vco_res */ - 5.0 , /* 19 pitch_voltage */ - RES_K( 75) , /* 20 slf_res */ - CAP_U(1.0) , /* 21 slf_cap */ - CAP_U(2.2) , /* 23 oneshot_cap */ - RES_K(4.7) /* 24 oneshot_res */ -}; - - -static MACHINE_DRIVER_START( route16 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("cpu1", Z80, 2500000) /* 10MHz / 4 = 2.5MHz */ - MDRV_CPU_PROGRAM_MAP(cpu1_readmem,cpu1_writemem) - MDRV_CPU_IO_MAP(0,cpu1_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD_TAG("cpu2", Z80, 2500000) /* 10MHz / 4 = 2.5MHz */ - MDRV_CPU_PROGRAM_MAP(cpu2_readmem,cpu2_writemem) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION /* frames per second, vblank duration */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MDRV_PALETTE_LENGTH(8) - - MDRV_PALETTE_INIT(route16) - MDRV_VIDEO_START(route16) - MDRV_VIDEO_UPDATE(route16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD(AY8910, 10000000/8) - MDRV_SOUND_CONFIG(ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( routex ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(route16) - MDRV_CPU_MODIFY("cpu1") - MDRV_CPU_PROGRAM_MAP(routex_cpu1_readmem,routex_cpu1_writemem) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( stratvox ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(route16) - - /* sound hardware */ - MDRV_SOUND_ADD(SN76477, 0) - MDRV_SOUND_CONFIG(sn76477_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( speakres ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(stratvox) - MDRV_CPU_MODIFY("cpu1") - MDRV_CPU_PROGRAM_MAP(altcpu1_readmem,altcpu1_writemem) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spacecho ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(speakres) - MDRV_CPU_MODIFY("cpu2") - MDRV_CPU_VBLANK_INT(irq0_line_hold,48) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( route16 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) // 64k for the first CPU - ROM_LOAD( "route16.a0", 0x0000, 0x0800, CRC(8f9101bd) SHA1(b2c0156d41e295282387fb85fc272b031a6d1b64) ) - ROM_LOAD( "route16.a1", 0x0800, 0x0800, CRC(389bc077) SHA1(b0606f6e647e81ceae7148bda96bd4673a51e823) ) - ROM_LOAD( "route16.a2", 0x1000, 0x0800, CRC(1065a468) SHA1(4a707a42fb5a718043c173cb98ff3523eb274ccc) ) - ROM_LOAD( "route16.a3", 0x1800, 0x0800, CRC(0b1987f3) SHA1(9b8abd6ec1ae15ca0d5e4de6b8a7ebf6c929d767) ) - ROM_LOAD( "route16.a4", 0x2000, 0x0800, CRC(f67d853a) SHA1(7479e84082e78f8670cc50858ce6a006d3063413) ) - ROM_LOAD( "route16.a5", 0x2800, 0x0800, CRC(d85cf758) SHA1(5af21250ee44ab1a43b844ede5a777a3d33b78b5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) // 64k for the second CPU - ROM_LOAD( "route16.b0", 0x0000, 0x0800, CRC(0f9588a7) SHA1(dfaffec4dbabd98cdc21a416bd2966d9d3ae6ad1) ) - ROM_LOAD( "route16.b1", 0x0800, 0x0800, CRC(2b326cf9) SHA1(c6602a9440a982c39f5836c6ab72283b6f9241be) ) - ROM_LOAD( "route16.b2", 0x1000, 0x0800, CRC(529cad13) SHA1(b533d20df1f2580e237c3d60bfe3483486ad9a48) ) - ROM_LOAD( "route16.b3", 0x1800, 0x0800, CRC(3bd8b899) SHA1(bc0c7909dbf5ea85eba5a1bb815fdd98c3aa794e) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( route16a ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) // 64k for the first CPU - ROM_LOAD( "vg-54", 0x0000, 0x0800, CRC(0c966319) SHA1(2f57e9a30dab864bbee2ccb0107c1b4212c5abaf) ) - ROM_LOAD( "vg-55", 0x0800, 0x0800, CRC(a6a8c212) SHA1(a4a695d401b1e495c863c6938296a99592df0e7d) ) - ROM_LOAD( "vg-56", 0x1000, 0x0800, CRC(5c74406a) SHA1(f106c27da6cac597afbabdef3ec7fa7d203905b0) ) - ROM_LOAD( "vg-57", 0x1800, 0x0800, CRC(313e68ab) SHA1(01fa83898123eb92a14bffc6fe774e00b083e86c) ) - ROM_LOAD( "vg-58", 0x2000, 0x0800, CRC(40824e3c) SHA1(bc157e6babf00d2119b389fdb9d5822e1c764f51) ) - ROM_LOAD( "vg-59", 0x2800, 0x0800, CRC(9313d2c2) SHA1(e08112f44ca454820752800d8b3b6408b73a4284) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) // 64k for the second CPU - ROM_LOAD( "route16.b0", 0x0000, 0x0800, CRC(0f9588a7) SHA1(dfaffec4dbabd98cdc21a416bd2966d9d3ae6ad1) ) - ROM_LOAD( "vg-61", 0x0800, 0x0800, CRC(b216c88c) SHA1(d011ef9f3727f87ae3482e271a0c2496f76036b4) ) - ROM_LOAD( "route16.b2", 0x1000, 0x0800, CRC(529cad13) SHA1(b533d20df1f2580e237c3d60bfe3483486ad9a48) ) - ROM_LOAD( "route16.b3", 0x1800, 0x0800, CRC(3bd8b899) SHA1(bc0c7909dbf5ea85eba5a1bb815fdd98c3aa794e) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( route16b ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) // 64k for the first CPU - ROM_LOAD( "rt16.0", 0x0000, 0x0800, CRC(b1f0f636) SHA1(f21915ed40ebdf64970fb7e3cd8071ebfc4aa0b5) ) - ROM_LOAD( "rt16.1", 0x0800, 0x0800, CRC(3ec52fe5) SHA1(451969b5caedd665231ef78cf262679d6d4c8507) ) - ROM_LOAD( "rt16.2", 0x1000, 0x0800, CRC(a8e92871) SHA1(68a709c14309d2b617997b76ae9d7b80fd326f39) ) - ROM_LOAD( "rt16.3", 0x1800, 0x0800, CRC(a0fc9fc5) SHA1(7013750c1b3d403b12eac10282a930538ed9c73e) ) - ROM_LOAD( "rt16.4", 0x2000, 0x0800, CRC(6dcaf8c4) SHA1(27d84cc29f2b75280678e9c77f270ee39af50228) ) - ROM_LOAD( "rt16.5", 0x2800, 0x0800, CRC(63d7b05b) SHA1(d1e3473be283c92063674b9e69575081115bc456) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) // 64k for the second CPU - ROM_LOAD( "rt16.6", 0x0000, 0x0800, CRC(fef605f3) SHA1(bfbffa0ded3e285c034f0ad832864021ef3f2256) ) - ROM_LOAD( "rt16.7", 0x0800, 0x0800, CRC(d0d6c189) SHA1(75cec891e20cf05aae354c8950857aea83c6dadc) ) - ROM_LOAD( "rt16.8", 0x1000, 0x0800, CRC(defc5797) SHA1(aec8179e647de70016e0e63b720f932752adacc1) ) - ROM_LOAD( "rt16.9", 0x1800, 0x0800, CRC(88d94a66) SHA1(163e952ada7c05110d1f1c681bd57d3b9ea8866e) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( routex ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) // 64k for the first CPU - ROM_LOAD( "routex01.a0", 0x0000, 0x0800, CRC(99b500e7) SHA1(2561c04a1425d7ac3309faf29fcfde63a0cda4da) ) - ROM_LOAD( "rt16.1", 0x0800, 0x0800, CRC(3ec52fe5) SHA1(451969b5caedd665231ef78cf262679d6d4c8507) ) - ROM_LOAD( "rt16.2", 0x1000, 0x0800, CRC(a8e92871) SHA1(68a709c14309d2b617997b76ae9d7b80fd326f39) ) - ROM_LOAD( "rt16.3", 0x1800, 0x0800, CRC(a0fc9fc5) SHA1(7013750c1b3d403b12eac10282a930538ed9c73e) ) - ROM_LOAD( "routex05.a4", 0x2000, 0x0800, CRC(2fef7653) SHA1(ba3477da249ca402d096704e57ea638fde6abe9c) ) - ROM_LOAD( "routex06.a5", 0x2800, 0x0800, CRC(a39ef648) SHA1(866095d9880b60b01f7ca66b332f5f6c4b41a5ac) ) - ROM_LOAD( "routex07.a6", 0x3000, 0x0800, CRC(89f80c1c) SHA1(dff37e0f2446a99890135891c59dc501866a25cc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) // 64k for the second CPU - ROM_LOAD( "routex11.b0", 0x0000, 0x0800, CRC(b51edd1d) SHA1(1ca10afd6851875c98b1d29aee457234c20ce0bf) ) - ROM_LOAD( "rt16.7", 0x0800, 0x0800, CRC(d0d6c189) SHA1(75cec891e20cf05aae354c8950857aea83c6dadc) ) - ROM_LOAD( "rt16.8", 0x1000, 0x0800, CRC(defc5797) SHA1(aec8179e647de70016e0e63b720f932752adacc1) ) - ROM_LOAD( "rt16.9", 0x1800, 0x0800, CRC(88d94a66) SHA1(163e952ada7c05110d1f1c681bd57d3b9ea8866e) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( speakres ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "speakres.1", 0x0000, 0x0800, CRC(6026e4ea) SHA1(77975620b489f10e5b5de834e812c2802315e889) ) - ROM_LOAD( "speakres.2", 0x0800, 0x0800, CRC(93f0d4da) SHA1(bf3d2931d12a436bb4f0d0556806008ca722f070) ) - ROM_LOAD( "speakres.3", 0x1000, 0x0800, CRC(a3874304) SHA1(ca243364d077fa70d6c46b950ba6666617a56cc2) ) - ROM_LOAD( "speakres.4", 0x1800, 0x0800, CRC(f484be3a) SHA1(5befa61c5f3a3cde3d7d6cae2130021288ed8454) ) - ROM_LOAD( "speakres.5", 0x2000, 0x0800, CRC(61b12a67) SHA1(a1a636ecde16ffdc9f0bb460bd12f945ec66d36f) ) - ROM_LOAD( "speakres.6", 0x2800, 0x0800, CRC(220e0ab2) SHA1(9fb4abf50ff28995cb1f7ba807e15eb87127f520) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "speakres.7", 0x0000, 0x0800, CRC(d417be13) SHA1(6f1f76a911579b49bb0e1992296e7c3acf2bd517) ) - ROM_LOAD( "speakres.8", 0x0800, 0x0800, CRC(52485d60) SHA1(28b708a71d16428d1cd58f3b7aa326ccda85533c) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( stratvox ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ls01.bin", 0x0000, 0x0800, CRC(bf4d582e) SHA1(456f37e16d037a30dc4c1c460ebf9a248bf1a57c) ) - ROM_LOAD( "ls02.bin", 0x0800, 0x0800, CRC(16739dd4) SHA1(cd1f7d1b52ca1ab458d11b969f4f1f5af3ec7353) ) - ROM_LOAD( "ls03.bin", 0x1000, 0x0800, CRC(083c28de) SHA1(82e159f218f60e9c06ff78f2e52572f8f5a6c530) ) - ROM_LOAD( "ls04.bin", 0x1800, 0x0800, CRC(b0927e3b) SHA1(cc5f030dcbc93d5265dbf17a2425acdb921ab18b) ) - ROM_LOAD( "ls05.bin", 0x2000, 0x0800, CRC(ccd25c4e) SHA1(d6d5722d746dd22cecacfea407e798f4531eea99) ) - ROM_LOAD( "ls06.bin", 0x2800, 0x0800, CRC(07a907a7) SHA1(0c41eac01ac9fd67ef19752c47414c4bd90324b4) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "ls07.bin", 0x0000, 0x0800, CRC(4d333985) SHA1(371405b92b2ee8040e48ec7ad715d1a960746aac) ) - ROM_LOAD( "ls08.bin", 0x0800, 0x0800, CRC(35b753fc) SHA1(179e21f531e8be507f1754159590c111be1b44ff) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( stratvob ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "j0-1", 0x0000, 0x0800, CRC(93c78274) SHA1(d7c8b5a064eaf96bcfd261b9857f06249477f6b8) ) - ROM_LOAD( "j0-2", 0x0800, 0x0800, CRC(93b2b02d) SHA1(f08772d581f9825976199f39cb6d85fb3aa83db0) ) - ROM_LOAD( "j0-3", 0x1000, 0x0800, CRC(655facb5) SHA1(1ffb1ed65c358846b3de4ead74e86f94ed6ff9df) ) - ROM_LOAD( "j0-4", 0x1800, 0x0800, CRC(b0927e3b) SHA1(cc5f030dcbc93d5265dbf17a2425acdb921ab18b) ) /* Same as ls04.bin of stratvox */ - ROM_LOAD( "j0-5", 0x2000, 0x0800, CRC(9d2178d9) SHA1(7b27dbb2add2c9dda4526c6f1bf52307fe2c6335) ) - ROM_LOAD( "j0-6", 0x2800, 0x0800, CRC(79118ffc) SHA1(d4659f1773e9d55d81185d6c59881c08528e2ab6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "b0-a", 0x0000, 0x0800, CRC(4d333985) SHA1(371405b92b2ee8040e48ec7ad715d1a960746aac) ) /* Same as ls07.bin of stratvox */ - ROM_LOAD( "j0-a", 0x0800, 0x0800, CRC(3416a830) SHA1(9cbe773968e20455be3e107b29cb8d4dc38632a9) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -ROM_START( spacecho ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "rom.a0", 0x0000, 0x0800, CRC(40d74dce) SHA1(891d7fde1d4b0b66c38fa7f8933480e201c68113) ) - ROM_LOAD( "rom.a1", 0x0800, 0x0800, CRC(a5f0a34f) SHA1(359e7a9954dedb464f7456cd071db77b2219ab2c) ) - ROM_LOAD( "rom.a2", 0x1000, 0x0800, CRC(cbbb3acb) SHA1(3dc71683f31da39a544382b463ece39cca8124b3) ) - ROM_LOAD( "rom.a3", 0x1800, 0x0800, CRC(311050ca) SHA1(ed4a5cb7ec0306654178dae8f30b39b9c8db0ce3) ) - ROM_LOAD( "rom.a4", 0x2000, 0x0800, CRC(28943803) SHA1(4904e6d092494bfca064d25d094ab9e9049fa9ca) ) - ROM_LOAD( "rom.a5", 0x2800, 0x0800, CRC(851c9f28) SHA1(c7bb4e25b74eb71e8b394214f9cbd95f59a1fa58) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "rom.b0", 0x0000, 0x0800, CRC(db45689d) SHA1(057a8dc2629f57fdeebb6262de2bdd78b4e66dca) ) - ROM_LOAD( "rom.b2", 0x1000, 0x0800, CRC(1e074157) SHA1(cb2073415aff7804ac85e2137bef2005bf6cf239) ) - ROM_LOAD( "rom.b3", 0x1800, 0x0800, CRC(d50a8b20) SHA1(d733fa327d2e7dfe08c84015c6c326ed8ab39e3d) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) /* Intersil IM5623CPE proms compatible with 82s129 */ - /* The upper 128 bytes are 0's, used by the hardware to blank the display */ - ROM_LOAD( "im5623.f10", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */ - ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */ -ROM_END - -/*************************************************************************** - - Set hardware dependent flag. - -***************************************************************************/ -DRIVER_INIT( route16b ) -{ - route16_hardware = 1; -} - -DRIVER_INIT( route16 ) -{ - unsigned char *rom = memory_region(REGION_CPU1); - /* Is this actually a bootleg? some of the protection has - been removed */ - - /* patch the protection */ - rom[0x00e9] = 0x3a; - - rom[0x0754] = 0xc3; - rom[0x0755] = 0x63; - rom[0x0756] = 0x07; - - init_route16b(machine); -} - -DRIVER_INIT( route16a ) -{ - UINT8 *ROM = memory_region(REGION_CPU1); - /* TO DO : Replace these patches with simulation of the protection device */ - - /* patch the protection */ - ROM[0x00e9] = 0x3a; - - ROM[0x0105] = 0x00; /* jp nz,$4109 (nirvana) - NOP's in route16 */ - ROM[0x0106] = 0x00; - ROM[0x0107] = 0x00; - - ROM[0x0731] = 0x00; /* jp nz,$4238 (nirvana) */ - ROM[0x0732] = 0x00; - ROM[0x0733] = 0x00; - - ROM[0x0747] = 0xc3; - ROM[0x0748] = 0x56; - ROM[0x0749] = 0x07; - - init_route16b(machine); -} - - -DRIVER_INIT( stratvox ) -{ - route16_hardware = 0; -} - - - -GAME( 1981, route16, 0, route16, route16, route16, ROT270, "Tehkan/Sun (Centuri license)", "Route 16", 0 ) -GAME( 1981, route16a, route16, route16, route16, route16a, ROT270, "Tehkan/Sun (Centuri license)", "Route 16 (set 2)", 0 ) -GAME( 1981, route16b, route16, route16, route16, route16b, ROT270, "bootleg", "Route 16 (bootleg)", 0 ) -GAME( 1981, routex, route16, routex, route16, route16b, ROT270, "bootleg", "Route X (bootleg)", 0 ) -GAME( 1980, speakres, 0, speakres, speakres, stratvox, ROT270, "Sun Electronics", "Speak & Rescue", 0 ) -GAME( 1980, stratvox, speakres, stratvox, stratvox, stratvox, ROT270, "[Sun Electronics] (Taito license)", "Stratovox", 0 ) -GAME( 1980, stratvob, speakres, stratvox, stratvox, stratvox, ROT270, "bootleg", "Stratovox (bootleg)", 0 ) -GAME( 1980, spacecho, speakres, spacecho, spacecho, stratvox, ROT270, "bootleg", "Space Echo", 0 ) diff --git a/src/drivers/rungun.c b/src/drivers/rungun.c deleted file mode 100644 index 15ffb97a5..000000000 --- a/src/drivers/rungun.c +++ /dev/null @@ -1,662 +0,0 @@ -#define RNG_DEBUG 0 - -/* - Run and Gun / Slam Dunk - (c) 1993 Konami - - Driver by R. Belmont. - - This hardware uses the 55673 sprite chip like PreGX and System GX, but in a 4 bit - per pixel layout. There is also an all-TTL front overlay tilemap and a rotating - scaling background done with the PSAC2 ('936). - - Status: Front tilemap should be complete, sprites are mostly correct, controls - should be fine. - - - Change Log: - - (AT070703) - drivers\rungun.c (this file) - - mem maps, device settings, component communications, I/O's, sound...etc. - - vidhrdw\rungun.c - - general clean-up, clipping, alignment - - vidhrdw\konamiic.c - - missing sprites and priority - - Known Issues: - - no dual monitor support - - synchronization and other oddities (rungunu doesn't show attract mode) - - swapped P12 and P34 controls in 4-player mode team selectet (real puzzler) - - P3 and P4 coin chutes not working in 4-player mode - - sprite palettes are not entirely right - - ROZ update causes music to stutter -*/ - -#include "driver.h" - -#include "vidhrdw/konamiic.h" -#include "cpu/m68000/m68000.h" -#include "cpu/z80/z80.h" -#include "machine/eeprom.h" -#include "sound/k054539.h" - -VIDEO_START( rng ); -VIDEO_UPDATE( rng ); -MACHINE_RESET( rng ); -READ16_HANDLER( ttl_ram_r ); -WRITE16_HANDLER( ttl_ram_w ); -WRITE16_HANDLER( rng_936_videoram_w ); - -UINT16 *rng_936_videoram; - -static UINT16 *rng_sysreg; -static int init_eeprom_count; -static int rng_z80_control; -static int rng_sound_status; - -static struct EEPROM_interface eeprom_interface = -{ - 7, /* address bits */ - 8, /* data bits */ - "011000", /* read command */ - "011100", /* write command */ - "0100100000000",/* erase command */ - "0100000000000",/* lock command */ - "0100110000000" /* unlock command */ -}; - -static NVRAM_HANDLER( rungun ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - { - init_eeprom_count = 0; - EEPROM_load(file); - } - else - init_eeprom_count = 10; - } -} - -static READ16_HANDLER( rng_sysregs_r ) -{ - UINT16 data = 0; - - switch (offset) - { - case 0x00/2: - if (readinputport(1) & 0x20) - return(readinputport(2) | readinputport(4)<<8); - else - { - data = readinputport(2) & readinputport(4); - return(data<<8 | data); - } - break; - - case 0x02/2: - if (readinputport(1) & 0x20) - return(readinputport(3) | readinputport(5)<<8); - else - { - data = readinputport(3) & readinputport(5); - return(data<<8 | data); - } - break; - - case 0x04/2: - /* - bit0-7: coin mechs and services - bit8 : freeze - bit9 : joysticks layout(auto detect???) - */ - return(input_port_0_word_r(0, 0)); - break; - - case 0x06/2: - if (ACCESSING_LSB) - { - data = readinputport(1) | EEPROM_read_bit(); - - if (init_eeprom_count) - { - init_eeprom_count--; - data &= 0xf7; - } - } - return((rng_sysreg[0x06/2] & 0xff00) | data); - break; - } - - return(rng_sysreg[offset]); -} - -static WRITE16_HANDLER( rng_sysregs_w ) -{ - COMBINE_DATA(rng_sysreg + offset); - - switch (offset) - { - case 0x08/2: - /* - bit0 : EEPROM_write_bit - bit1 : EEPROM_set_cs_line - bit2 : EEPROM_set_clock_line - bit3 : coin counter? - bit7 : set before massive memory writes - bit10 : IRQ5 ACK - */ - if (ACCESSING_LSB) - { - EEPROM_write_bit((data & 0x01) ? 1 : 0); - EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - } - - if (!(data & 0x40)) - cpunum_set_input_line(0, MC68000_IRQ_5, CLEAR_LINE); - break; - - case 0x0c/2: - /* - bit 0 : also enables IRQ??? - bit 1 : disable PSAC2 input? - bit 2 : OBJCHA - bit 3 : enable IRQ 5 - */ - K053246_set_OBJCHA_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - break; - } -} - -static WRITE16_HANDLER( sound_cmd1_w ) -{ - if (ACCESSING_MSB) - soundlatch_w(0, data>>8); -} - -static WRITE16_HANDLER( sound_cmd2_w ) -{ - if (ACCESSING_MSB) - soundlatch2_w(0, data>>8); -} - -static WRITE16_HANDLER( sound_irq_w ) -{ - if (ACCESSING_MSB) - cpunum_set_input_line(1, 0, HOLD_LINE); -} - -static READ16_HANDLER( sound_status_msb_r ) -{ - if (ACCESSING_MSB) - return(rng_sound_status<<8); - - return(0); -} - -static INTERRUPT_GEN(rng_interrupt) -{ - if (rng_sysreg[0x0c/2] & 0x09) - cpunum_set_input_line(0, MC68000_IRQ_5, ASSERT_LINE); -} - -static ADDRESS_MAP_START( rngreadmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x2fffff) AM_READ(MRA16_ROM) // main program + data - AM_RANGE(0x300000, 0x3007ff) AM_READ(MRA16_RAM) // palette RAM - AM_RANGE(0x380000, 0x39ffff) AM_READ(MRA16_RAM) // work RAM - AM_RANGE(0x400000, 0x43ffff) AM_READ(MRA16_NOP) // K053936_0_rom_r }, // '936 ROM readback window - AM_RANGE(0x480000, 0x48001f) AM_READ(rng_sysregs_r) - AM_RANGE(0x4c0000, 0x4c001f) AM_READ(K053252_word_r) // CCU (for scanline and vblank polling) - AM_RANGE(0x580014, 0x580015) AM_READ(sound_status_msb_r) - AM_RANGE(0x580000, 0x58001f) AM_READ(MRA16_RAM) // sound regs read fall-through - AM_RANGE(0x5c0000, 0x5c000d) AM_READ(K053246_word_r) // 246A ROM readback window - AM_RANGE(0x600000, 0x600fff) AM_READ(K053247_word_r) // OBJ RAM - AM_RANGE(0x601000, 0x601fff) AM_READ(MRA16_RAM) // communication? second monitor buffer? - AM_RANGE(0x6c0000, 0x6cffff) AM_READ(MRA16_RAM) // PSAC2 render RAM - AM_RANGE(0x700000, 0x7007ff) AM_READ(MRA16_RAM) // PSAC2 line effect - AM_RANGE(0x740000, 0x741fff) AM_READ(ttl_ram_r) // text plane RAM -#if RNG_DEBUG - AM_RANGE(0x5c0010, 0x5c001f) AM_READ(K053247_reg_word_r) - AM_RANGE(0x640000, 0x640007) AM_READ(K053246_reg_word_r) -#endif -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rngwritemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x2fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x300000, 0x3007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x380000, 0x39ffff) AM_WRITE(MWA16_RAM) // work RAM - AM_RANGE(0x480000, 0x48001f) AM_WRITE(rng_sysregs_w) AM_BASE(&rng_sysreg) - AM_RANGE(0x4c0000, 0x4c001f) AM_WRITE(K053252_word_w) // CCU - AM_RANGE(0x540000, 0x540001) AM_WRITE(sound_irq_w) - AM_RANGE(0x58000c, 0x58000d) AM_WRITE(sound_cmd1_w) - AM_RANGE(0x58000e, 0x58000f) AM_WRITE(sound_cmd2_w) - AM_RANGE(0x580000, 0x58001f) AM_WRITE(MWA16_RAM) // sound regs write fall-through - AM_RANGE(0x5c0010, 0x5c001f) AM_WRITE(K053247_reg_word_w) - AM_RANGE(0x600000, 0x600fff) AM_WRITE(K053247_word_w) // OBJ RAM - AM_RANGE(0x601000, 0x601fff) AM_WRITE(MWA16_RAM) // communication? second monitor buffer? - AM_RANGE(0x640000, 0x640007) AM_WRITE(K053246_word_w) // '246A registers - AM_RANGE(0x680000, 0x68001f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) // '936 registers - AM_RANGE(0x6c0000, 0x6cffff) AM_WRITE(rng_936_videoram_w) AM_BASE(&rng_936_videoram) // PSAC2 ('936) RAM (34v + 35v) - AM_RANGE(0x700000, 0x7007ff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) // "Line RAM" - AM_RANGE(0x740000, 0x741fff) AM_WRITE(ttl_ram_w) // text plane RAM - AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(MWA16_NOP) // watchdog -ADDRESS_MAP_END - -/**********************************************************************************/ - -static WRITE8_HANDLER( sound_status_w ) -{ - rng_sound_status = data; -} - -static WRITE8_HANDLER( z80ctrl_w ) -{ - rng_z80_control = data; - - memory_set_bankptr(2, memory_region(REGION_CPU2) + 0x10000 + (data & 0x07) * 0x4000); - - if (data & 0x10) - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); -} - -static INTERRUPT_GEN(audio_interrupt) -{ - if (rng_z80_control & 0x80) return; - - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); -} - -/* sound (this should be split into sndhrdw/xexex.c or pregx.c or so someday) */ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_READ(K054539_0_r) - AM_RANGE(0xe230, 0xe3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe400, 0xe62f) AM_READ(K054539_1_r) - AM_RANGE(0xe630, 0xe7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r) - AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe22f) AM_WRITE(K054539_0_w) - AM_RANGE(0xe230, 0xe3ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe400, 0xe62f) AM_WRITE(K054539_1_w) - AM_RANGE(0xe630, 0xe7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w) - AM_RANGE(0xf800, 0xf800) AM_WRITE(z80ctrl_w) - AM_RANGE(0xfff0, 0xfff3) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -static struct K054539interface k054539_interface = -{ - REGION_SOUND1 -}; - -/**********************************************************************************/ - -static const gfx_layout bglayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, 8*4, - 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &bglayout, 0x0000, 64 }, - { -1 } /* end of array */ -}; - -static MACHINE_DRIVER_START( rng ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(rngreadmem,rngwritemem) - MDRV_CPU_VBLANK_INT(rng_interrupt,1) - - MDRV_CPU_ADD_TAG("sound", Z80, 10000000) // 8Mhz (10Mhz is much safer in self-test due to heavy sync) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_PERIODIC_INT(audio_interrupt, TIME_IN_HZ(480)) - - MDRV_INTERLEAVE(100) // higher if sound stutters - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_MACHINE_RESET(rng) - MDRV_NVRAM_HANDLER(rungun) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(rng) - MDRV_VIDEO_UPDATE(rng) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - - MDRV_SOUND_ADD(K054539, 48000) - MDRV_SOUND_CONFIG(k054539_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -INPUT_PORTS_START( rng ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - PORT_DIPNAME( 0x0100, 0x0000, "Freeze" ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( On ) ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* EEPROM data */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) /* EEPROM ready (always 1) */ - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_DIPNAME( 0x10, 0x00, "Monitors" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPNAME( 0x20, 0x00, "Number of players" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPNAME( 0x40, 0x00, "Sound Output" ) - PORT_DIPSETTING( 0x40, DEF_STR( Mono ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Stereo ) ) - PORT_DIPNAME( 0x04, 0x04, "Bit2 (Unknown)" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Bit7 (Unknown)" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -#define ROM_LOAD64_WORD(name,offset,length,crc) ROMX_LOAD(name, offset, length, crc, ROM_GROUPWORD | ROM_SKIP(6)) - -ROM_START( rungun ) - /* main program Europe Version AA 1993, 10.8 */ - ROM_REGION( 0x300000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "247eaa03.bin", 0x000000, 0x80000, CRC(f5c91ec0) SHA1(298926ea30472fa8d2c0578dfeaf9a93509747ef) ) - ROM_LOAD16_BYTE( "247eaa04.bin", 0x000001, 0x80000, CRC(0e62471f) SHA1(2861b7a4e78ff371358d318a1b13a6488c0ac364) ) - - /* data (Guru 1 megabyte redump) */ - ROM_LOAD16_BYTE( "247b01.23n", 0x200000, 0x80000, CRC(2d774f27) SHA1(c48de9cb9daba25603b8278e672f269807aa0b20) ) - ROM_CONTINUE( 0x100000, 0x80000) - ROM_LOAD16_BYTE( "247b02.21n", 0x200001, 0x80000, CRC(d088c9de) SHA1(19d7ad4120f7cfed9cae862bb0c799fdad7ab15c) ) - ROM_CONTINUE( 0x100001, 0x80000) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("247a05", 0x000000, 0x20000, CRC(64e85430) SHA1(542919c3be257c8f118fc21d3835d7b6426a22ed) ) - ROM_RELOAD( 0x010000, 0x20000 ) - - /* '936 tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "247-a13", 0x000000, 0x200000, CRC(cc194089) SHA1(b5af94f5f583d282ac1499b371bbaac8b2fedc03) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "247-a11", 0x000000, 0x200000, CRC(c3f60854) SHA1(cbee7178ab9e5aa6a5aeed0511e370e29001fb01) ) // 5y - ROM_LOAD64_WORD( "247-a08", 0x000002, 0x200000, CRC(3e315eef) SHA1(898bc4d5ad244e5f91cbc87820b5d0be99ef6662) ) // 2u - ROM_LOAD64_WORD( "247-a09", 0x000004, 0x200000, CRC(5ca7bc06) SHA1(83c793c68227399f93bd1ed167dc9ed2aaac4167) ) // 2y - ROM_LOAD64_WORD( "247-a10", 0x000006, 0x200000, CRC(a5ccd243) SHA1(860b88ade1a69f8b6c5b8206424814b386343571) ) // 5u - - /* TTL text plane ("fix layer") */ - ROM_REGION( 0x20000, REGION_GFX3, 0) - ROM_LOAD( "247-a12", 0x000000, 0x20000, CRC(57a8d26e) SHA1(0431d10b76d77c26a1f6f2b55d9dbcfa959e1cd0) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "247-a06", 0x000000, 0x200000, CRC(b8b2a67e) SHA1(a873d32f4b178c714743664fa53c0dca29cb3ce4) ) - ROM_LOAD( "247-a07", 0x200000, 0x200000, CRC(0108142d) SHA1(4dc6a36d976dad9c0da5a5b1f01f2eb3b369c99d) ) -ROM_END - -ROM_START( runguna ) - /* main program Europe Version AA 1993, 10.4 */ - ROM_REGION( 0x300000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "247eaa03.rom", 0x000000, 0x80000, CRC(fec3e1d6) SHA1(cd89dc32ad06308134d277f343a7e8b5fe381f69) ) - ROM_LOAD16_BYTE( "247eaa04.rom", 0x000001, 0x80000, CRC(1b556af9) SHA1(c8351ebd595307d561d089c66cd6ed7f6111d996) ) - - /* data (Guru 1 megabyte redump) */ - ROM_LOAD16_BYTE( "247b01.23n", 0x200000, 0x80000, CRC(2d774f27) SHA1(c48de9cb9daba25603b8278e672f269807aa0b20) ) - ROM_CONTINUE( 0x100000, 0x80000) - ROM_LOAD16_BYTE( "247b02.21n", 0x200001, 0x80000, CRC(d088c9de) SHA1(19d7ad4120f7cfed9cae862bb0c799fdad7ab15c) ) - ROM_CONTINUE( 0x100001, 0x80000) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("1.13g", 0x000000, 0x20000, CRC(c0b35df9) SHA1(a0c73d993eb32bd0cd192351b5f86794efd91949) ) - ROM_RELOAD( 0x010000, 0x20000 ) - - /* '936 tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "247-a13", 0x000000, 0x200000, CRC(cc194089) SHA1(b5af94f5f583d282ac1499b371bbaac8b2fedc03) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "247-a11", 0x000000, 0x200000, CRC(c3f60854) SHA1(cbee7178ab9e5aa6a5aeed0511e370e29001fb01) ) // 5y - ROM_LOAD64_WORD( "247-a08", 0x000002, 0x200000, CRC(3e315eef) SHA1(898bc4d5ad244e5f91cbc87820b5d0be99ef6662) ) // 2u - ROM_LOAD64_WORD( "247-a09", 0x000004, 0x200000, CRC(5ca7bc06) SHA1(83c793c68227399f93bd1ed167dc9ed2aaac4167) ) // 2y - ROM_LOAD64_WORD( "247-a10", 0x000006, 0x200000, CRC(a5ccd243) SHA1(860b88ade1a69f8b6c5b8206424814b386343571) ) // 5u - - /* TTL text plane ("fix layer") */ - ROM_REGION( 0x20000, REGION_GFX3, 0) - ROM_LOAD( "247-a12", 0x000000, 0x20000, CRC(57a8d26e) SHA1(0431d10b76d77c26a1f6f2b55d9dbcfa959e1cd0) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "247-a06", 0x000000, 0x200000, CRC(b8b2a67e) SHA1(a873d32f4b178c714743664fa53c0dca29cb3ce4) ) - ROM_LOAD( "247-a07", 0x200000, 0x200000, CRC(0108142d) SHA1(4dc6a36d976dad9c0da5a5b1f01f2eb3b369c99d) ) -ROM_END - -ROM_START( rungunu ) - /* main program US Version AB 1993 10.12 */ - ROM_REGION( 0x300000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "247uab03.bin", 0x000000, 0x80000, CRC(f259fd11) SHA1(60381a3fa7f78022dcb3e2f3d13ea32a10e4e36e) ) - ROM_LOAD16_BYTE( "247uab04.bin", 0x000001, 0x80000, CRC(b918cf5a) SHA1(4314c611ef600ec081f409c78218de1639f8b463) ) - - /* data */ - ROM_LOAD16_BYTE( "247a01", 0x100000, 0x80000, CRC(8341cf7d) SHA1(372c147c4a5d54aed2a16b0ed258247e65dda563) ) - ROM_LOAD16_BYTE( "247a02", 0x100001, 0x80000, CRC(f5ef3f45) SHA1(2e1d8f672c130dbfac4365dc1301b47beee10161) ) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("247a05", 0x000000, 0x20000, CRC(64e85430) SHA1(542919c3be257c8f118fc21d3835d7b6426a22ed) ) - ROM_RELOAD( 0x010000, 0x20000 ) - - /* '936 tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "247a13", 0x000000, 0x200000, CRC(c5a8ef29) SHA1(23938b8093bc0b9eef91f6d38127ca7acbdc06a6) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "247-a11", 0x000000, 0x200000, CRC(c3f60854) SHA1(cbee7178ab9e5aa6a5aeed0511e370e29001fb01) ) // 5y - ROM_LOAD64_WORD( "247-a08", 0x000002, 0x200000, CRC(3e315eef) SHA1(898bc4d5ad244e5f91cbc87820b5d0be99ef6662) ) // 2u - ROM_LOAD64_WORD( "247-a09", 0x000004, 0x200000, CRC(5ca7bc06) SHA1(83c793c68227399f93bd1ed167dc9ed2aaac4167) ) // 2y - ROM_LOAD64_WORD( "247-a10", 0x000006, 0x200000, CRC(a5ccd243) SHA1(860b88ade1a69f8b6c5b8206424814b386343571) ) // 5u - - /* TTL text plane ("fix layer") */ - ROM_REGION( 0x20000, REGION_GFX3, 0) - ROM_LOAD( "247-a12", 0x000000, 0x20000, CRC(57a8d26e) SHA1(0431d10b76d77c26a1f6f2b55d9dbcfa959e1cd0) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "247-a06", 0x000000, 0x200000, CRC(b8b2a67e) SHA1(a873d32f4b178c714743664fa53c0dca29cb3ce4) ) - ROM_LOAD( "247-a07", 0x200000, 0x200000, CRC(0108142d) SHA1(4dc6a36d976dad9c0da5a5b1f01f2eb3b369c99d) ) -ROM_END - -ROM_START( rungunua ) - /* main program US Version BA 1993 10.8 */ - ROM_REGION( 0x300000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "247uba03.bin", 0x000000, 0x80000, CRC(c24d7500) SHA1(38e6ae9fc00bf8f85549be4733992336c46fe1f3) ) - ROM_LOAD16_BYTE( "247uba04.bin", 0x000001, 0x80000, CRC(3f255a4a) SHA1(3a4d50ecec8546933ad8dabe21682ba0951eaad0) ) - - /* data (Guru 1 megabyte redump) */ - ROM_LOAD16_BYTE( "247b01.23n", 0x200000, 0x80000, CRC(2d774f27) SHA1(c48de9cb9daba25603b8278e672f269807aa0b20) ) - ROM_CONTINUE( 0x100000, 0x80000) - ROM_LOAD16_BYTE( "247b02.21n", 0x200001, 0x80000, CRC(d088c9de) SHA1(19d7ad4120f7cfed9cae862bb0c799fdad7ab15c) ) - ROM_CONTINUE( 0x100001, 0x80000) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("247a05", 0x000000, 0x20000, CRC(64e85430) SHA1(542919c3be257c8f118fc21d3835d7b6426a22ed) ) - ROM_RELOAD( 0x010000, 0x20000 ) - - /* '936 tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "247a13", 0x000000, 0x200000, CRC(c5a8ef29) SHA1(23938b8093bc0b9eef91f6d38127ca7acbdc06a6) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "247-a11", 0x000000, 0x200000, CRC(c3f60854) SHA1(cbee7178ab9e5aa6a5aeed0511e370e29001fb01) ) // 5y - ROM_LOAD64_WORD( "247-a08", 0x000002, 0x200000, CRC(3e315eef) SHA1(898bc4d5ad244e5f91cbc87820b5d0be99ef6662) ) // 2u - ROM_LOAD64_WORD( "247-a09", 0x000004, 0x200000, CRC(5ca7bc06) SHA1(83c793c68227399f93bd1ed167dc9ed2aaac4167) ) // 2y - ROM_LOAD64_WORD( "247-a10", 0x000006, 0x200000, CRC(a5ccd243) SHA1(860b88ade1a69f8b6c5b8206424814b386343571) ) // 5u - - /* TTL text plane ("fix layer") */ - ROM_REGION( 0x20000, REGION_GFX3, 0) - ROM_LOAD( "247-a12", 0x000000, 0x20000, CRC(57a8d26e) SHA1(0431d10b76d77c26a1f6f2b55d9dbcfa959e1cd0) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "247-a06", 0x000000, 0x200000, CRC(b8b2a67e) SHA1(a873d32f4b178c714743664fa53c0dca29cb3ce4) ) - ROM_LOAD( "247-a07", 0x200000, 0x200000, CRC(0108142d) SHA1(4dc6a36d976dad9c0da5a5b1f01f2eb3b369c99d) ) -ROM_END - -ROM_START( slmdunkj ) - /* main program Japan Version AA 1993 10.8 */ - ROM_REGION( 0x300000, REGION_CPU1, 0) - ROM_LOAD16_BYTE( "247jaa03.bin", 0x000000, 0x20000, CRC(87572078) SHA1(cfa784eb40ed8b3bda9d57abb6022bbe92056206) ) - ROM_LOAD16_BYTE( "247jaa04.bin", 0x000001, 0x20000, CRC(aa105e00) SHA1(617ac14535048b6e0da43cc98c4b67c8e306bef1) ) - - /* data (Guru 1 megabyte redump) */ - ROM_LOAD16_BYTE( "247b01.23n", 0x200000, 0x80000, CRC(2d774f27) SHA1(c48de9cb9daba25603b8278e672f269807aa0b20) ) - ROM_CONTINUE( 0x100000, 0x80000) - ROM_LOAD16_BYTE( "247b02.21n", 0x200001, 0x80000, CRC(d088c9de) SHA1(19d7ad4120f7cfed9cae862bb0c799fdad7ab15c) ) - ROM_CONTINUE( 0x100001, 0x80000) - - /* sound program */ - ROM_REGION( 0x030000, REGION_CPU2, 0 ) - ROM_LOAD("247a05", 0x000000, 0x20000, CRC(64e85430) SHA1(542919c3be257c8f118fc21d3835d7b6426a22ed) ) - ROM_RELOAD( 0x010000, 0x20000 ) - - /* '936 tiles */ - ROM_REGION( 0x400000, REGION_GFX1, 0) - ROM_LOAD( "247-a13", 0x000000, 0x200000, CRC(cc194089) SHA1(b5af94f5f583d282ac1499b371bbaac8b2fedc03) ) - - /* sprites */ - ROM_REGION( 0x800000, REGION_GFX2, 0) - ROM_LOAD64_WORD( "247-a11", 0x000000, 0x200000, CRC(c3f60854) SHA1(cbee7178ab9e5aa6a5aeed0511e370e29001fb01) ) // 5y - ROM_LOAD64_WORD( "247-a08", 0x000002, 0x200000, CRC(3e315eef) SHA1(898bc4d5ad244e5f91cbc87820b5d0be99ef6662) ) // 2u - ROM_LOAD64_WORD( "247-a09", 0x000004, 0x200000, CRC(5ca7bc06) SHA1(83c793c68227399f93bd1ed167dc9ed2aaac4167) ) // 2y - ROM_LOAD64_WORD( "247-a10", 0x000006, 0x200000, CRC(a5ccd243) SHA1(860b88ade1a69f8b6c5b8206424814b386343571) ) // 5u - - /* TTL text plane ("fix layer") */ - ROM_REGION( 0x20000, REGION_GFX3, 0) - ROM_LOAD( "247-a12", 0x000000, 0x20000, CRC(57a8d26e) SHA1(0431d10b76d77c26a1f6f2b55d9dbcfa959e1cd0) ) - - /* sound data */ - ROM_REGION( 0x400000, REGION_SOUND1, 0) - ROM_LOAD( "247-a06", 0x000000, 0x200000, CRC(b8b2a67e) SHA1(a873d32f4b178c714743664fa53c0dca29cb3ce4) ) - ROM_LOAD( "247-a07", 0x200000, 0x200000, CRC(0108142d) SHA1(4dc6a36d976dad9c0da5a5b1f01f2eb3b369c99d) ) -ROM_END - -static DRIVER_INIT( rng ) -{ -} - -MACHINE_RESET( rng ) -{ - K054539_init_flags(0, K054539_REVERSE_STEREO); - - memset(rng_sysreg, 0, 0x20); - - init_eeprom_count = 0; - rng_z80_control = 0; - rng_sound_status = 0; -} - -GAME( 1993, rungun, 0, rng, rng, rng, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) -GAME( 1993, runguna, rungun, rng, rng, rng, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) -GAME( 1993, rungunu, rungun, rng, rng, rng, ROT0, "Konami", "Run and Gun (ver UAB 1993 10.12)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) -GAME( 1993, rungunua, rungun, rng, rng, rng, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) -GAME( 1993, slmdunkj, rungun, rng, rng, rng, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/segag80v.c b/src/drivers/segag80v.c deleted file mode 100644 index 83f564b0e..000000000 --- a/src/drivers/segag80v.c +++ /dev/null @@ -1,1460 +0,0 @@ -/*************************************************************************** - - Sega vector hardware - - Games supported: - * Space Fury - * Zektor - * Tac/Scan - * Eliminator - * Star Trek - - Known bugs: - * games run too fast - -**************************************************************************** - - 4/25/99 - Tac-Scan sound call for coins now works. (Jim Hernandez) - 2/5/98 - Added input ports support for Tac Scan. Bonus Ships now work. - Zektor now uses it's own input port section. (Jim Hernandez) - - Sega Vector memory map (preliminary) - - Most of the info here comes from the wiretap archive at: - http://www.spies.com/arcade/simulation/gameHardware/ - - * Sega G80 Vector Simulation - - ROM Address Map - --------------- - Eliminator Elim4Player Space Fury Zektor TAC/SCAN Star Trk - -----+-----------+-----------+-----------+-------+---------+---------+ - 0000 | 969 | 1390 | 969 | 1611 | 1711 | 1873 | CPU u25 - -----+-----------+-----------+-----------+-------+---------+---------+ - 0800 | 1333 | 1347 | 960 | 1586 | 1670 | 1848 | ROM u1 - -----+-----------+-----------+-----------+-------+---------+---------+ - 1000 | 1334 | 1348 | 961 | 1587 | 1671 | 1849 | ROM u2 - -----+-----------+-----------+-----------+-------+---------+---------+ - 1800 | 1335 | 1349 | 962 | 1588 | 1672 | 1850 | ROM u3 - -----+-----------+-----------+-----------+-------+---------+---------+ - 2000 | 1336 | 1350 | 963 | 1589 | 1673 | 1851 | ROM u4 - -----+-----------+-----------+-----------+-------+---------+---------+ - 2800 | 1337 | 1351 | 964 | 1590 | 1674 | 1852 | ROM u5 - -----+-----------+-----------+-----------+-------+---------+---------+ - 3000 | 1338 | 1352 | 965 | 1591 | 1675 | 1853 | ROM u6 - -----+-----------+-----------+-----------+-------+---------+---------+ - 3800 | 1339 | 1353 | 966 | 1592 | 1676 | 1854 | ROM u7 - -----+-----------+-----------+-----------+-------+---------+---------+ - 4000 | 1340 | 1354 | 967 | 1593 | 1677 | 1855 | ROM u8 - -----+-----------+-----------+-----------+-------+---------+---------+ - 4800 | 1341 | 1355 | 968 | 1594 | 1678 | 1856 | ROM u9 - -----+-----------+-----------+-----------+-------+---------+---------+ - 5000 | 1342 | 1356 | | 1595 | 1679 | 1857 | ROM u10 - -----+-----------+-----------+-----------+-------+---------+---------+ - 5800 | 1343 | 1357 | | 1596 | 1680 | 1858 | ROM u11 - -----+-----------+-----------+-----------+-------+---------+---------+ - 6000 | 1344 | 1358 | | 1597 | 1681 | 1859 | ROM u12 - -----+-----------+-----------+-----------+-------+---------+---------+ - 6800 | 1345 | 1359 | | 1598 | 1682 | 1860 | ROM u13 - -----+-----------+-----------+-----------+-------+---------+---------+ - 7000 | | 1360 | | 1599 | 1683 | 1861 | ROM u14 - -----+-----------+-----------+-----------+-------+---------+---------+ - 7800 | | 1600 | 1684 | 1862 | ROM u15 - -----+-----------+-----------+-----------+-------+---------+---------+ - 8000 | | 1601 | 1685 | 1863 | ROM u16 - -----+-----------+-----------+-----------+-------+---------+---------+ - 8800 | | 1602 | 1686 | 1864 | ROM u17 - -----+-----------+-----------+-----------+-------+---------+---------+ - 9000 | | 1603 | 1687 | 1865 | ROM u18 - -----+-----------+-----------+-----------+-------+---------+---------+ - 9800 | | 1604 | 1688 | 1866 | ROM u19 - -----+-----------+-----------+-----------+-------+---------+---------+ - A000 | | 1605 | 1709 | 1867 | ROM u20 - -----+-----------+-----------+-----------+-------+---------+---------+ - A800 | | 1606 | 1710 | 1868 | ROM u21 - -----+-----------+-----------+-----------+-------+---------+---------+ - B000 | | 1869 | ROM u22 - -----+-----------+-----------+-----------+-------+---------+---------+ - B800 | | 1870 | ROM u23 - -----+-----------+-----------+-----------+-------+---------+---------+ - - I/O ports: - read: - - write: - - These games all have dipswitches, but they are mapped in such a way as to make - using them with MAME extremely difficult. I might try to implement them in the - future. - - SWITCH MAPPINGS - --------------- - - +------+------+------+------+------+------+------+------+ - |SW1-8 |SW1-7 |SW1-6 |SW1-5 |SW1-4 |SW1-3 |SW1-2 |SW1-1 | - +------+------+------+------+------+------+------+------+ - F8:08 |F9:08 |FA:08 |FB:08 |F8:04 |F9:04 FA:04 FB:04 Zektor & - | | | | | | Space Fury - | | | | | | - 1 -|------|------|------|------|------|--------------- upright - 0 -|------|------|------|------|------|--------------- cocktail - | | | | | | - | 1 -|------|------|------|------|--------------- voice - | 0 -|------|------|------|------|--------------- no voice - | | | | | - | 1 | 1 -|------|------|--------------- 5 ships - | 0 | 1 -|------|------|--------------- 4 ships - | 1 | 0 -|------|------|--------------- 3 ships - | 0 | 0 -|------|------|--------------- 2 ships - | | | - | 1 | 1 -|--------------- hardest - | 0 | 1 -|--------------- hard - 1 = Open | 1 | 0 -|--------------- medium - 0 = Closed | 0 | 0 -|--------------- easy - - +------+------+------+------+------+------+------+------+ - |SW2-8 |SW2-7 |SW2-6 |SW2-5 |SW2-4 |SW2-3 |SW2-2 |SW2-1 | - +------+------+------+------+------+------+------+------+ - |F8:02 |F9:02 |FA:02 |FB:02 |F8:01 |F9:01 |FA:01 |FB:01 | - | | | | | | | | | - | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 coin/ 1 play - +------+------+------+------+------+------+------+------+ - - Known problems: - - 1 The games seem to run too fast. This is most noticable - with the speech samples in Zektor - they don't match the mouth. - Slowing down the Z80 doesn't help and in fact hurts performance. - - 2 Cocktail mode isn't implemented. - - Is 1) still valid? - -***************************************************************************/ - -#include "driver.h" -#include "sound/ay8910.h" -#include "sound/samples.h" -#include "sndhrdw/segasnd.h" -#include "vidhrdw/vector.h" -#include "includes/segag80r.h" -#include "segag80v.h" - - -/************************************* - * - * Constants - * - *************************************/ - -#define CPU_CLOCK 8000000 -#define VIDEO_CLOCK 15468480 - - - -/************************************* - * - * Global variables - * - *************************************/ - -extern UINT8 (*sega_decrypt)(offs_t, UINT8); - -static UINT8 *mainram; -static UINT8 has_usb; - -static UINT8 mult_data[2]; -static UINT16 mult_result; - -static UINT8 spinner_select; -static UINT8 spinner_sign; -static UINT8 spinner_count; - - - -/************************************* - * - * Machine setup and config - * - *************************************/ - -static void service_switch(void *param, UINT32 oldval, UINT32 newval) -{ - /* pressing the service switch sends an NMI */ - if (newval) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - - -static MACHINE_START( g80v ) -{ - /* request a callback if the service switch is pressed */ - input_port_set_changed_callback(port_tag_to_index("SERVICESW"), 0x01, service_switch, NULL); - - /* register for save states */ - state_save_register_global_array(mult_data); - state_save_register_global(mult_result); - state_save_register_global(spinner_select); - state_save_register_global(spinner_sign); - state_save_register_global(spinner_count); - - return 0; -} - - -static MACHINE_RESET( g80v ) -{ - /* if we have a Universal Sound Board, reset it here */ - if (has_usb) - sega_usb_reset(0x10); -} - - - -/************************************* - * - * RAM writes/decryption - * - *************************************/ - -static offs_t decrypt_offset(offs_t offset) -{ - offs_t pc; - - /* if no active CPU, don't do anything */ - if (cpu_getactivecpu() == -1) - return offset; - - /* ignore anything but accesses via opcode $32 (LD $(XXYY),A) */ - pc = activecpu_get_previouspc(); - if ((UINT16)pc == 0xffff || program_read_byte(pc) != 0x32) - return offset; - - /* fetch the low byte of the address and munge it */ - return (offset & 0xff00) | (*sega_decrypt)(pc, program_read_byte(pc + 1)); -} - -static WRITE8_HANDLER( mainram_w ) { mainram[decrypt_offset(offset)] = data; } -static WRITE8_HANDLER( usb_ram_w ) { sega_usb_ram_w(decrypt_offset(offset), data); } -static WRITE8_HANDLER( vectorram_w ) { vectorram[decrypt_offset(offset)] = data; } - - - -/************************************* - * - * Input port access - * - *************************************/ - -INLINE UINT8 demangle(UINT8 d7d6, UINT8 d5d4, UINT8 d3d2, UINT8 d1d0) -{ - return ((d7d6 << 7) & 0x80) | ((d7d6 << 2) & 0x40) | - ((d5d4 << 5) & 0x20) | ((d5d4 << 0) & 0x10) | - ((d3d2 << 3) & 0x08) | ((d3d2 >> 2) & 0x04) | - ((d1d0 << 1) & 0x02) | ((d1d0 >> 4) & 0x01); -} - - -static READ8_HANDLER( mangled_ports_r ) -{ - /* The input ports are odd. Neighboring lines are read via a mux chip */ - /* one bit at a time. This means that one bank of DIP switches will be */ - /* read as two bits from each of 4 ports. For this reason, the input */ - /* ports have been organized logically, and are demangled at runtime. */ - /* 4 input ports each provide 8 bits of information. */ - UINT8 d7d6 = readinputportbytag("D7D6"); - UINT8 d5d4 = readinputportbytag("D5D4"); - UINT8 d3d2 = readinputportbytag("D3D2"); - UINT8 d1d0 = readinputportbytag("D1D0"); - int shift = offset & 3; - return demangle(d7d6 >> shift, d5d4 >> shift, d3d2 >> shift, d1d0 >> shift); -} - - - -/************************************* - * - * Spinner control emulation - * - *************************************/ - -static WRITE8_HANDLER( spinner_select_w ) -{ - spinner_select = data; -} - - -static READ8_HANDLER( spinner_input_r ) -{ - INT8 delta; - - if (spinner_select & 1) - return readinputportbytag("FC"); - -/* - * The values returned are always increasing. That is, regardless of whether - * you turn the spinner left or right, the self-test should always show the - * number as increasing. The direction is only reflected in the least - * significant bit. - */ - - /* I'm sure this can be further simplified ;-) BW */ - delta = readinputportbytag("SPINNER"); - if (delta != 0) - { - spinner_sign = (delta >> 7) & 1; - spinner_count += abs(delta); - } - return ~((spinner_count << 1) | spinner_sign); -} - - - -/************************************* - * - * Eliminator 4-player controls - * - *************************************/ - -static UINT32 elim4_joint_coin_r(void *param) -{ - return (readinputportbytag("COINS") & 0xf) != 0xf; -} - - -static READ8_HANDLER( elim4_input_r ) -{ - UINT8 result = 0; - - /* bit 3 enables demux */ - if (spinner_select & 8) - { - /* Demux bit 0-2. Only 6 and 7 are connected */ - switch (spinner_select & 7) - { - case 6: - /* player 3 & 4 controls */ - result = readinputportbytag("FC"); - break; - case 7: - /* the 4 coin inputs */ - result = readinputportbytag("COINS"); - break; - } - } - - /* LS240 has inverting outputs */ - return (result ^ 0xff); -} - - - -/************************************* - * - * Multiplier - * - *************************************/ - -static WRITE8_HANDLER( multiply_w ) -{ - mult_data[offset] = data; - if (offset == 1) - mult_result = mult_data[0] * mult_data[1]; -} - - -static READ8_HANDLER( multiply_r ) -{ - UINT8 result = mult_result; - mult_result >>= 8; - return result; -} - - - -/************************************* - * - * Misc other I/O - * - *************************************/ - -static WRITE8_HANDLER( coin_count_w ) -{ - coin_counter_w(0, (data >> 7) & 1); - coin_counter_w(1, (data >> 6) & 1); -} - - -static WRITE8_HANDLER( unknown_w ) -{ - /* writing an 0x04 here enables interrupts */ - /* some games write 0x00/0x01 here as well */ - if (data != 0x00 && data != 0x01 && data != 0x04) - mame_printf_debug("%04X:unknown_w = %02X\n", activecpu_get_pc(), data); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_ROM /* CPU board ROM */ - AM_RANGE(0x0800, 0xbfff) AM_ROM /* PROM board ROM area */ - AM_RANGE(0xc800, 0xcfff) AM_READWRITE(MRA8_RAM, mainram_w) AM_BASE(&mainram) - AM_RANGE(0xe000, 0xefff) AM_READWRITE(MRA8_RAM, vectorram_w) AM_BASE(&vectorram) AM_SIZE(&vectorram_size) -ADDRESS_MAP_END - - -/* complete memory map derived from schematics */ -static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0xbc, 0xbc) /* AM_READ ??? */ - AM_RANGE(0xbd, 0xbe) AM_WRITE(multiply_w) - AM_RANGE(0xbe, 0xbe) AM_READ(multiply_r) - AM_RANGE(0xbf, 0xbf) AM_WRITE(unknown_w) - - AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE(coin_count_w) - AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r) - AM_RANGE(0xfc, 0xfc) AM_READ(port_tag_to_handler8("FC")) -ADDRESS_MAP_END - - - -/************************************* - * - * Generic Port definitions - * - *************************************/ - -INPUT_PORTS_START( g80v_generic ) - PORT_START_TAG("D7D6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(3) /* P1.5 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(3) /* P1.8 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.13 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.14 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* n/c */ - - PORT_START_TAG("D5D4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* P1.10 */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) /* P1.15 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.16 */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.17 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.18 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) /* P1.19 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.20 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1.21 */ - - PORT_START_TAG("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x04, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x08, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x10, 0x01, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:4") - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x20, 0x02, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:3") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x40, 0x04, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x04, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x80, 0x08, DEF_STR( Unknown )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x08, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - - PORT_START_TAG("D1D0") - PORT_DIPNAME( 0x0f, 0x03, DEF_STR( Coin_A )) PORT_DIPLOCATION("SW2:8,7,6,5") - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C )) - PORT_DIPSETTING( 0x09, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x0a, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0x0b, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x0c, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x0d, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0x0f, "1 Coin/2 Credits 4/9" ) - PORT_DIPSETTING( 0x0e, "1 Coin/2 Credits 5/11" ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C )) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_4C )) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_5C )) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_6C )) - PORT_DIPNAME( 0xf0, 0x30, DEF_STR( Coin_B )) PORT_DIPLOCATION("SW2:4,3,2,1") - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C )) - PORT_DIPSETTING( 0x90, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0xa0, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C )) - PORT_DIPSETTING( 0xb0, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0xc0, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0xd0, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C )) - PORT_DIPSETTING( 0xf0, "1 Coin/2 Credits 4/9" ) - PORT_DIPSETTING( 0xe0, "1 Coin/2 Credits 5/11" ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_3C )) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C )) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_5C )) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_6C )) - - PORT_START_TAG("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.23 */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.24 */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.25 */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.26 */ - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.27 */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.28 */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.29 */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* P1.30 */ - - PORT_START_TAG("SERVICESW") - PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_HIGH ) -INPUT_PORTS_END - - - -/************************************* - * - * Specific Port definitions - * - *************************************/ - -INPUT_PORTS_START( elim2 ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D7D6") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - - PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives )) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard )) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0xc0, DEF_STR( None )) - PORT_DIPSETTING( 0x80, "10000" ) - PORT_DIPSETTING( 0x40, "20000" ) - PORT_DIPSETTING( 0x00, "30000" ) - - PORT_MODIFY("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( elim2c ) - PORT_INCLUDE( elim2 ) - - PORT_MODIFY("D7D6") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("D5D4") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_MODIFY("FC") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( elim4 ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D7D6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(elim4_joint_coin_r, 0) /* combination of all four coin inputs */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives )) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard )) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0xc0, DEF_STR( None )) - PORT_DIPSETTING( 0x80, "10000" ) - PORT_DIPSETTING( 0x40, "20000" ) - PORT_DIPSETTING( 0x00, "30000" ) - - PORT_MODIFY("D1D0") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown )) PORT_DIPLOCATION("SW2:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown )) PORT_DIPLOCATION("SW2:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown )) PORT_DIPLOCATION("SW2:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown )) PORT_DIPLOCATION("SW2:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown )) PORT_DIPLOCATION("SW2:5") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_DIPNAME( 0xe0, 0x00, DEF_STR( Coin_A )) PORT_DIPLOCATION("SW2:6,7,8") - PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C )) - PORT_DIPSETTING( 0xc0, DEF_STR( 7C_1C )) - PORT_DIPSETTING( 0xa0, DEF_STR( 6C_1C )) - PORT_DIPSETTING( 0x80, DEF_STR( 5C_1C )) - PORT_DIPSETTING( 0x60, DEF_STR( 4C_1C )) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_1C )) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C )) - - PORT_MODIFY("FC") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) - - PORT_START_TAG("COINS") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(1) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( spacfury ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D5D4") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives )) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard )) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x40, "20000" ) - PORT_DIPSETTING( 0x80, "30000" ) - PORT_DIPSETTING( 0xc0, "40000" ) - - PORT_MODIFY("FC") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( zektor ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives )) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "5" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard )) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( None )) - PORT_DIPSETTING( 0xc0, "10000" ) - PORT_DIPSETTING( 0x80, "20000" ) - PORT_DIPSETTING( 0x40, "30000" ) - - PORT_MODIFY("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - - PORT_START_TAG("SPINNER") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(3) PORT_RESET -INPUT_PORTS_END - - -INPUT_PORTS_START( tacscan ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x0c, 0x0c, "Number of Ships" ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x08, "6" ) - PORT_DIPSETTING( 0x0c, "8" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard )) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x00, DEF_STR( None )) - PORT_DIPSETTING( 0xc0, "10000" ) - PORT_DIPSETTING( 0x80, "20000" ) - PORT_DIPSETTING( 0x40, "30000" ) - - PORT_MODIFY("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - - PORT_START_TAG("SPINNER") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_RESET -INPUT_PORTS_END - - -INPUT_PORTS_START( startrek ) - PORT_INCLUDE( g80v_generic ) - - PORT_MODIFY("D3D2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet )) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x01, DEF_STR( Upright )) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail )) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x0c, 0x0c, "Photon Torpedoes" ) PORT_DIPLOCATION("SW1:3,4") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x0c, "4" ) - PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x00, DEF_STR( Easy )) - PORT_DIPSETTING( 0x10, DEF_STR( Normal )) - PORT_DIPSETTING( 0x20, DEF_STR( Hard )) - PORT_DIPSETTING( 0x30, "Tournament" ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Bonus_Life )) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x00, "10000" ) - PORT_DIPSETTING( 0x40, "20000" ) - PORT_DIPSETTING( 0x80, "30000" ) - PORT_DIPSETTING( 0xc0, "40000" ) - - PORT_MODIFY("FC") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON4 ) - - PORT_START_TAG("SPINNER") - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_RESET -INPUT_PORTS_END - - - -/************************************* - * - * Eliminator sound interfaces - * - *************************************/ - -static const char *elim_sample_names[] = -{ - "*elim2", - "elim1.wav", - "elim2.wav", - "elim3.wav", - "elim4.wav", - "elim5.wav", - "elim6.wav", - "elim7.wav", - "elim8.wav", - "elim9.wav", - "elim10.wav", - "elim11.wav", - "elim12.wav", - 0 /* end of array */ -}; - -static struct Samplesinterface elim2_samples_interface = -{ - 8, /* 8 channels */ - elim_sample_names -}; - - - -/************************************* - * - * Space Fury sound interfaces - * - *************************************/ - -static const char *spacfury_sample_names[] = -{ - "*spacfury", - /* Sound samples */ - "sfury1.wav", - "sfury2.wav", - "sfury3.wav", - "sfury4.wav", - "sfury5.wav", - "sfury6.wav", - "sfury7.wav", - "sfury8.wav", - "sfury9.wav", - "sfury10.wav", - 0 /* end of array */ -}; - - -static struct Samplesinterface spacfury_samples_interface = -{ - 8, /* 8 channels */ - spacfury_sample_names -}; - - -/************************************* - * - * Zektor sound interfaces - * - *************************************/ - -static const char *zektor_sample_names[] = -{ - "*zektor", - "elim1.wav", /* 0 fireball */ - "elim2.wav", /* 1 bounce */ - "elim3.wav", /* 2 Skitter */ - "elim4.wav", /* 3 Eliminator */ - "elim5.wav", /* 4 Electron */ - "elim6.wav", /* 5 fire */ - "elim7.wav", /* 6 thrust */ - "elim8.wav", /* 7 Electron */ - "elim9.wav", /* 8 small explosion */ - "elim10.wav", /* 9 med explosion */ - "elim11.wav", /* 10 big explosion */ - 0 -}; - - -static struct Samplesinterface zektor_samples_interface = -{ - 8, - zektor_sample_names -}; - - - -/************************************* - * - * Machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( g80v_base ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, CPU_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_IO_MAP(main_portmap,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_MACHINE_START(g80v) - MDRV_MACHINE_RESET(g80v) - MDRV_SCREEN_REFRESH_RATE(40) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(sega) - MDRV_VIDEO_UPDATE(sega) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( elim2 ) - MDRV_IMPORT_FROM(g80v_base) - - /* custom sound board */ - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(elim2_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spacfury ) - MDRV_IMPORT_FROM(g80v_base) - - /* custom sound board */ - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(spacfury_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - - /* speech board */ - MDRV_IMPORT_FROM(sega_speech_board) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( zektor ) - MDRV_IMPORT_FROM(g80v_base) - - /* custom sound board */ - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(zektor_samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) - - MDRV_SOUND_ADD(AY8910, CPU_CLOCK/2/2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33) - - /* speech board */ - MDRV_IMPORT_FROM(sega_speech_board) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tacscan ) - MDRV_IMPORT_FROM(g80v_base) - - /* universal sound board */ - MDRV_IMPORT_FROM(sega_universal_sound_board) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( startrek ) - MDRV_IMPORT_FROM(g80v_base) - - /* speech board */ - MDRV_IMPORT_FROM(sega_speech_board) - - /* universal sound board */ - MDRV_IMPORT_FROM(sega_universal_sound_board) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( elim2 ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969.cpu-u25", 0x0000, 0x0800, CRC(411207f2) SHA1(2a082be4052b5d8f365abd0a51ea805d270d1189) ) - ROM_LOAD( "1333.prom-u1", 0x0800, 0x0800, CRC(fd2a2916) SHA1(431d340c0c9257d66f5851a591861bcefb600cec) ) - ROM_LOAD( "1334.prom-u2", 0x1000, 0x0800, CRC(79eb5548) SHA1(d951de5c0ab94fdb6e58207ee9a147674dd74220) ) - ROM_LOAD( "1335.prom-u3", 0x1800, 0x0800, CRC(3944972e) SHA1(59c84cf23898adb7e434c5802dbb821c79099890) ) - ROM_LOAD( "1336.prom-u4", 0x2000, 0x0800, CRC(852f7b4d) SHA1(6db45b9d11374f4cadf185aec81f33c0040bc001) ) - ROM_LOAD( "1337.prom-u5", 0x2800, 0x0800, CRC(cf932b08) SHA1(f0b61ca8266fd3de7522244c9b1587eecd24a4f1) ) - ROM_LOAD( "1338.prom-u6", 0x3000, 0x0800, CRC(99a3f3c9) SHA1(aa7d4805c70311ebe24ff70fcc32c0e2a7c4488a) ) - ROM_LOAD( "1339.prom-u7", 0x3800, 0x0800, CRC(d35f0fa3) SHA1(752f14b298604a9b91e94cd6d5d291ef33f27ec0) ) - ROM_LOAD( "1340.prom-u8", 0x4000, 0x0800, CRC(8fd4da21) SHA1(f30627dd1fbcc12bb587742a9072bbf38ba48401) ) - ROM_LOAD( "1341.prom-u9", 0x4800, 0x0800, CRC(629c9a28) SHA1(cb7df14ea1bb2d7997bfae1ca70b47763c73298a) ) - ROM_LOAD( "1342.prom-u10", 0x5000, 0x0800, CRC(643df651) SHA1(80c5da44b5d2a7d97c7ba0067f773eb645a9d432) ) - ROM_LOAD( "1343.prom-u11", 0x5800, 0x0800, CRC(d29d70d2) SHA1(ee2cd752b99ebd522eccf5e71d02c31479acfdf5) ) - ROM_LOAD( "1344.prom-u12", 0x6000, 0x0800, CRC(c5e153a3) SHA1(7e805573aeed01e3d4ed477870800dd7ecad7a1b) ) - ROM_LOAD( "1345.prom-u13", 0x6800, 0x0800, CRC(40597a92) SHA1(ee1ae2b424c38b40d2cbeda4aba3328e6d3f9c81) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - -ROM_START( elim2a ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969.cpu-u25", 0x0000, 0x0800, CRC(411207f2) SHA1(2a082be4052b5d8f365abd0a51ea805d270d1189) ) - ROM_LOAD( "1158.prom-u1", 0x0800, 0x0800, CRC(a40ac3a5) SHA1(9cf707e3439def17390ae16b49552fb1996a6335) ) - ROM_LOAD( "1159.prom-u2", 0x1000, 0x0800, CRC(ff100604) SHA1(1636337c702473b5a567832a622b0c09bd1e2aba) ) - ROM_LOAD( "1160a.prom-u3", 0x1800, 0x0800, CRC(ebfe33bd) SHA1(226da36becd278d34030f564fef61851819d2324) ) - ROM_LOAD( "1161a.prom-u4", 0x2000, 0x0800, CRC(03d41db3) SHA1(da9e618314c01b56b9d66abd14f1e5bf928fff54) ) - ROM_LOAD( "1162a.prom-u5", 0x2800, 0x0800, CRC(f2c7ece3) SHA1(86a9099ce97439cd849dc32ed2c164a1be14e4e7) ) - ROM_LOAD( "1163a.prom-u6", 0x3000, 0x0800, CRC(1fc58b00) SHA1(732c57781cd45cd301b2337b6879ff811d9692f3) ) - ROM_LOAD( "1164a.prom-u7", 0x3800, 0x0800, CRC(f37480d1) SHA1(3d7fac05d60083ddcd51c0190078c89a39f79a91) ) - ROM_LOAD( "1165a.prom-u8", 0x4000, 0x0800, CRC(328819f8) SHA1(ed5e3488399b4481e69f623404a28515524af60a) ) - ROM_LOAD( "1166a.prom-u9", 0x4800, 0x0800, CRC(1b8e8380) SHA1(d56ccc4fac9c8149ebef4939ba401372d69bf022) ) - ROM_LOAD( "1167a.prom-u10", 0x5000, 0x0800, CRC(16aa3156) SHA1(652a547ff1cb4ede507418b392e28f30a3cc179c) ) - ROM_LOAD( "1168a.prom-u11", 0x5800, 0x0800, CRC(3c7c893a) SHA1(73d2835833a6d40f6a9b0a87364af48a449d9674) ) - ROM_LOAD( "1169a.prom-u12", 0x6000, 0x0800, CRC(5cee23b1) SHA1(66f6fc6163148608296e3d25abb194559a2f5179) ) - ROM_LOAD( "1170a.prom-u13", 0x6800, 0x0800, CRC(8cdacd35) SHA1(f24f8a74cb4b8452ddbd42e61d3b0366bbee7f98) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - -ROM_START( elim2c ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969t.cpu-u25", 0x0000, 0x0800, CRC(896a615c) SHA1(542386196eca9fd822e36508e173201ee8a962ed) ) - ROM_LOAD( "1200.prom-u1", 0x0800, 0x0800, CRC(590beb6a) SHA1(307c33cbc0b90f290aac302366e3ce4f70e5265e) ) - ROM_LOAD( "1201.prom-u2", 0x1000, 0x0800, CRC(fed32b30) SHA1(51fba99d3bf543318ebe70ee1aa91e3171767d6f) ) - ROM_LOAD( "1202.prom-u3", 0x1800, 0x0800, CRC(0a2068d0) SHA1(90acf1e78f5c3266d1fbc31470ad4d6a8cb43fe8) ) - ROM_LOAD( "1203.prom-u4", 0x2000, 0x0800, CRC(1f593aa2) SHA1(aaad927174fa806d2c602b5672b1396eb9ec50fa) ) - ROM_LOAD( "1204.prom-u5", 0x2800, 0x0800, CRC(046f1030) SHA1(632ac37b84007f169ce72877d8089538413ba20b) ) - ROM_LOAD( "1205.prom-u6", 0x3000, 0x0800, CRC(8d10b870) SHA1(cc91a06c6b0e1697c399700bc351384360ecd5a3) ) - ROM_LOAD( "1206.prom-u7", 0x3800, 0x0800, CRC(7f6c5afa) SHA1(0e684c654cfe2365e7d21e7bccb25f1ddb883770) ) - ROM_LOAD( "1207.prom-u8", 0x4000, 0x0800, CRC(6cc74d62) SHA1(3392e5cd177885be7391a2699164f39302554d26) ) - ROM_LOAD( "1208.prom-u9", 0x4800, 0x0800, CRC(cc37a631) SHA1(084ecc6b0179fe4f984131d057d5de5382443911) ) - ROM_LOAD( "1209.prom-u10", 0x5000, 0x0800, CRC(844922f8) SHA1(0ad201fce2eaa7dde77d8694d226aad8b9a46ea7) ) - ROM_LOAD( "1210.prom-u11", 0x5800, 0x0800, CRC(7b289783) SHA1(5326ca94b5197ef99db4ea3b28051090f0d7a9ce) ) - ROM_LOAD( "1211.prom-u12", 0x6000, 0x0800, CRC(17349db7) SHA1(8e7ee1fbf153a36a13f3252ca4c588df531b56ec) ) - ROM_LOAD( "1212.prom-u13", 0x6800, 0x0800, CRC(152cf376) SHA1(56c3141598b8bac81e85b1fc7052fdd19cd95609) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - -ROM_START( elim4 ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "1390.cpu-u25", 0x0000, 0x0800, CRC(97010c3e) SHA1(b07db05abf48461b633bbabe359a973a5bc6da13) ) - ROM_LOAD( "1347.prom-u1", 0x0800, 0x0800, CRC(657d7320) SHA1(ef8a637d94dfa8b9dfa600269d914d635e597a9c) ) - ROM_LOAD( "1348.prom-u2", 0x1000, 0x0800, CRC(b15fe578) SHA1(d53773a5f7ec3c130d4ff75a5348a9f37c82c7c8) ) - ROM_LOAD( "1349.prom-u3", 0x1800, 0x0800, CRC(0702b586) SHA1(9847172872419c475d474ff09612c38b867e15af) ) - ROM_LOAD( "1350.prom-u4", 0x2000, 0x0800, CRC(4168dd3b) SHA1(1f26877c63cd7983dfa9a869e0442e8a213f382f) ) - ROM_LOAD( "1351.prom-u5", 0x2800, 0x0800, CRC(c950f24c) SHA1(497a9aa7b9d040a4ff7b3f938093edec2218120d) ) - ROM_LOAD( "1352.prom-u6", 0x3000, 0x0800, CRC(dc8c91cc) SHA1(c99224c7e57dfce9440771f78ce90ea576feed2a) ) - ROM_LOAD( "1353.prom-u7", 0x3800, 0x0800, CRC(11eda631) SHA1(8ba926268762d491d28d5629d5a310b1accca47d) ) - ROM_LOAD( "1354.prom-u8", 0x4000, 0x0800, CRC(b9dd6e7a) SHA1(ab6780f0abe99a5ef76746d45384e80399c6d611) ) - ROM_LOAD( "1355.prom-u9", 0x4800, 0x0800, CRC(c92c7237) SHA1(18aad6618df51a1980775a3aaa4447205453a8af) ) - ROM_LOAD( "1356.prom-u10", 0x5000, 0x0800, CRC(889b98e3) SHA1(23661149e7ffbdbc2c95920d13e9b8b24f86cd9a) ) - ROM_LOAD( "1357.prom-u11", 0x5800, 0x0800, CRC(d79248a5) SHA1(e58062d5c4e5f6fe8d70dd9b55d46a57137c9a64) ) - ROM_LOAD( "1358.prom-u12", 0x6000, 0x0800, CRC(c5dabc77) SHA1(2dc59e627f40fefefc206f2e9d070a62606e44fc) ) - ROM_LOAD( "1359.prom-u13", 0x6800, 0x0800, CRC(24c8e5d8) SHA1(d0ae6e1dfd05d170c49837760369f04df4eaa14f) ) - ROM_LOAD( "1360.prom-u14", 0x7000, 0x0800, CRC(96d48238) SHA1(76a7b49081cd2d0dd1976077aa66b6d5ae5b2b43) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - -ROM_START( elim4p ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "1390.cpu-u25", 0x0000, 0x0800, CRC(97010c3e) SHA1(b07db05abf48461b633bbabe359a973a5bc6da13) ) - ROM_LOAD( "sw1.prom-u1", 0x0800, 0x0800, CRC(5350b8eb) SHA1(def9192971d1943e45cea1845b1d8c8e2a01bc38) ) - ROM_LOAD( "sw2.prom-u2", 0x1000, 0x0800, CRC(44f45465) SHA1(e3139878602864509803dabc0f9c278e4b856431) ) - ROM_LOAD( "sw3.prom-u3", 0x1800, 0x0800, CRC(5b692c3c) SHA1(6cd1361e9f063af1f175baed466cc2667b776a52) ) - ROM_LOAD( "sw4.prom-u4", 0x2000, 0x0800, CRC(0b78dd00) SHA1(f48c4bdd5fc2e818107b036aa6eddebf46a0e964) ) - ROM_LOAD( "sw5.prom-u5", 0x2800, 0x0800, CRC(8b3795f1) SHA1(1bcd12791e45dd14c7541e6fe3798a8159b6c11b) ) - ROM_LOAD( "sw6.prom-u6", 0x3000, 0x0800, CRC(4304b503) SHA1(2bc7a702d43092818ecb713fa0bac476c272e3a0) ) - ROM_LOAD( "sw7.prom-u7", 0x3800, 0x0800, CRC(3cb4a604) SHA1(868c3c1bead99c2e6857d1c2eef02d84e0e87f29) ) - ROM_LOAD( "sw8.prom-u8", 0x4000, 0x0800, CRC(bdc55223) SHA1(47ca7485c9e2878cbcb92d93a022f7d74a6d13df) ) - ROM_LOAD( "sw9.prom-u9", 0x4800, 0x0800, CRC(f6ca1bf1) SHA1(e4dc6bd6486dff2d0e8a93e5c7649093107cde46) ) - ROM_LOAD( "swa.prom-u10", 0x5000, 0x0800, CRC(12373f7f) SHA1(685c1202345ae8ef53fa61b7254ce04efd94a12b) ) - ROM_LOAD( "swb.prom-u11", 0x5800, 0x0800, CRC(d1effc6b) SHA1(b72cd14642f26ac50fbe6199d121b0278588ca22) ) - ROM_LOAD( "swc.prom-u12", 0x6000, 0x0800, CRC(bf361ab3) SHA1(23e3396dc937c0a19d0d312d1de3443b43807d91) ) - ROM_LOAD( "swd.prom-u13", 0x6800, 0x0800, CRC(ae2c88e5) SHA1(b0833051f543529502e05fb183effa9f817757fb) ) - ROM_LOAD( "swe.prom-u14", 0x7000, 0x0800, CRC(ec4cc343) SHA1(00e107eaf530ce6bec2afffd7d7bedd7763cfb17) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - - -ROM_START( spacfury ) /* Revision C */ - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969c.cpu-u25", 0x0000, 0x0800, CRC(411207f2) SHA1(2a082be4052b5d8f365abd0a51ea805d270d1189) ) - ROM_LOAD( "960c.prom-u1", 0x0800, 0x0800, CRC(d071ab7e) SHA1(c7d2429e4fa77988d7ac62bc68f876ffb7467838) ) - ROM_LOAD( "961c.prom-u2", 0x1000, 0x0800, CRC(aebc7b97) SHA1(d0a0328ed34de9bd2c83da4ddc2d017e2b5a8bdc) ) - ROM_LOAD( "962c.prom-u3", 0x1800, 0x0800, CRC(dbbba35e) SHA1(0400d1ba09199d19f5b8aa5bb1a85ed27930822d) ) - ROM_LOAD( "963c.prom-u4", 0x2000, 0x0800, CRC(d9e9eadc) SHA1(1ad228d65dca48d084bbac358af80882886e7a40) ) - ROM_LOAD( "964c.prom-u5", 0x2800, 0x0800, CRC(7ed947b6) SHA1(c0fd7ed74a87cc422a42e2a4f9eb947f5d5d9fed) ) - ROM_LOAD( "965c.prom-u6", 0x3000, 0x0800, CRC(d2443a22) SHA1(45e5d43eae89e25370bb8e8db2b664642a238eb9) ) - ROM_LOAD( "966c.prom-u7", 0x3800, 0x0800, CRC(1985ccfc) SHA1(8c5931519b976c82a94d17279cc919b4baad5bb7) ) - ROM_LOAD( "967c.prom-u8", 0x4000, 0x0800, CRC(330f0751) SHA1(07ae52fdbfa2cc326f88dc76c3dc8e145b592863) ) - ROM_LOAD( "968c.prom-u9", 0x4800, 0x0800, CRC(8366eadb) SHA1(8e4cb30a730237da2e933370faf5eaa1a41cacbf) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) - ROM_LOAD( "808c.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) - ROM_LOAD( "970c.speech-u6", 0x0000, 0x1000, CRC(979d8535) SHA1(1ed097e563319ca6d2b7df9875ce7ee921eae468) ) - ROM_LOAD( "971c.speech-u5", 0x1000, 0x1000, CRC(022dbd32) SHA1(4e0504b5ccc28094078912673c49571cf83804ab) ) - ROM_LOAD( "972c.speech-u4", 0x2000, 0x1000, CRC(fad9346d) SHA1(784e5ab0fb00235cfd733c502baf23960923504f) ) - - ROM_REGION( 0x0440, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ -ROM_END - -ROM_START( spacfura ) /* Revision A */ - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969a.cpu-u25", 0x0000, 0x0800, CRC(896a615c) SHA1(542386196eca9fd822e36508e173201ee8a962ed) ) - ROM_LOAD( "960a.prom-u1", 0x0800, 0x0800, CRC(e1ea7964) SHA1(9c84c525973fcf1437b062d98195272723249d02) ) - ROM_LOAD( "961a.prom-u2", 0x1000, 0x0800, CRC(cdb04233) SHA1(6f8d2fe6d46d04ebe94b7943006d63b24c88ed5a) ) - ROM_LOAD( "962a.prom-u3", 0x1800, 0x0800, CRC(5f03e632) SHA1(c6e8d72ba13ab05ec01a78502948a73c21e0fd69) ) - ROM_LOAD( "963a.prom-u4", 0x2000, 0x0800, CRC(45a77b44) SHA1(91f4822b89ec9c16c67c781a11fabfa4b9914660) ) - ROM_LOAD( "964a.prom-u5", 0x2800, 0x0800, CRC(ba008f8b) SHA1(24f5bef240ae2bcfd5b1d95f51b3599f79518b56) ) - ROM_LOAD( "965a.prom-u6", 0x3000, 0x0800, CRC(78677d31) SHA1(ed5810aa4bddbfe36a6ff9992dd0cb58cce66836) ) - ROM_LOAD( "966a.prom-u7", 0x3800, 0x0800, CRC(a8a51105) SHA1(f5e0fa662552f50fa6905f579d4c678b790ffa96) ) - ROM_LOAD( "967a.prom-u8", 0x4000, 0x0800, CRC(d60f667d) SHA1(821271ec1918e22ed29a5b1f4b0182765ef5ba10) ) - ROM_LOAD( "968a.prom-u9", 0x4800, 0x0800, CRC(aea85b6a) SHA1(8778ff0be34cd4fd5b8f6f76c64bfca68d4d240e) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) - ROM_LOAD( "808a.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) - ROM_LOAD( "970.speech-u6", 0x0000, 0x1000, CRC(f3b47b36) SHA1(6ae0b627349664140a7f70799645b368e452d69c) ) - ROM_LOAD( "971.speech-u5", 0x1000, 0x1000, CRC(e72bbe88) SHA1(efadf8aa448c289cf4d0cf1831255b9ac60820f2) ) - ROM_LOAD( "972.speech-u4", 0x2000, 0x1000, CRC(8b3da539) SHA1(3a0c4af96a2116fc668a340534582776b2018663) ) - - ROM_REGION( 0x0440, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ -ROM_END - -ROM_START( spacfurb ) /* Revision B */ - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "969a.cpu-u25", 0x0000, 0x0800, CRC(896a615c) SHA1(542386196eca9fd822e36508e173201ee8a962ed) ) - ROM_LOAD( "960b.prom-u1", 0x0800, 0x0800, CRC(8a99b63f) SHA1(4b9ec152e0fad50afeea11f5d61331f3211da606) ) - ROM_LOAD( "961b.prom-u2", 0x1000, 0x0800, CRC(c72c1609) SHA1(b489423b52a15275b63f6b01b9aa75ad1ce777b5) ) - ROM_LOAD( "962b.prom-u3", 0x1800, 0x0800, CRC(7ffc338d) SHA1(2c37049657305c465e3a5301e0be9f1afc9333c0) ) - ROM_LOAD( "963b.prom-u4", 0x2000, 0x0800, CRC(4fe0bd88) SHA1(d1902c8b2c2577fb49894aeac4c9d6b8cf38f2f6) ) - ROM_LOAD( "964b.prom-u5", 0x2800, 0x0800, CRC(09b359db) SHA1(e1d6af48680dc0f34068ee6e916650dac738e280) ) - ROM_LOAD( "965b.prom-u6", 0x3000, 0x0800, CRC(7c1f9b71) SHA1(ebe29a558e7239b4f0bc49a1fe92e5f1903edce3) ) - ROM_LOAD( "966b.prom-u7", 0x3800, 0x0800, CRC(8933b852) SHA1(dabb219195a668893c82ccc80ed09989f7fd83af) ) - ROM_LOAD( "967b.prom-u8", 0x4000, 0x0800, CRC(82b5768d) SHA1(823d8c0a537bad62e8186f88f8d02a0f3dc6da0f) ) - ROM_LOAD( "968b.prom-u9", 0x4800, 0x0800, CRC(fea68f02) SHA1(83bef40dfaac014b7929239d81075335ff8fd506) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) - ROM_LOAD( "808a.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) ) - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) - ROM_LOAD( "970.speech-u6", 0x0000, 0x1000, CRC(f3b47b36) SHA1(6ae0b627349664140a7f70799645b368e452d69c) ) - ROM_LOAD( "971.speech-u5", 0x1000, 0x1000, CRC(e72bbe88) SHA1(efadf8aa448c289cf4d0cf1831255b9ac60820f2) ) - ROM_LOAD( "972.speech-u4", 0x2000, 0x1000, CRC(8b3da539) SHA1(3a0c4af96a2116fc668a340534582776b2018663) ) - - ROM_REGION( 0x0440, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ -ROM_END - - -ROM_START( zektor ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "1611.cpu-u25", 0x0000, 0x0800, CRC(6245aa23) SHA1(815f3c7edad9c290b719a60964085e90e7268112) ) - ROM_LOAD( "1586.prom-u1", 0x0800, 0x0800, CRC(efeb4fb5) SHA1(b337179c01870c953b8d38c20263802e9a7936d3) ) - ROM_LOAD( "1587.prom-u2", 0x1000, 0x0800, CRC(daa6c25c) SHA1(061e390775b6dd24f85d51951267bca4339a3845) ) - ROM_LOAD( "1588.prom-u3", 0x1800, 0x0800, CRC(62b67dde) SHA1(831bad0f5a601d6859f69c70d0962c970d92db0e) ) - ROM_LOAD( "1589.prom-u4", 0x2000, 0x0800, CRC(c2db0ba4) SHA1(658773f2b56ea805d7d678e300f9bbc896fbf176) ) - ROM_LOAD( "1590.prom-u5", 0x2800, 0x0800, CRC(4d948414) SHA1(f60d295b0f8f798126dbfdc197943d8511238390) ) - ROM_LOAD( "1591.prom-u6", 0x3000, 0x0800, CRC(b0556a6c) SHA1(84b481cc60dc3df3a1cf18b1ece4c70bcc7bb5a1) ) - ROM_LOAD( "1592.prom-u7", 0x3800, 0x0800, CRC(750ecadf) SHA1(83ddd482230fbf6cf78a054fb4abd5bc8aec3ec8) ) - ROM_LOAD( "1593.prom-u8", 0x4000, 0x0800, CRC(34f8850f) SHA1(d93594e529aca8d847c9f1e9055f1840f6069fb2) ) - ROM_LOAD( "1594.prom-u9", 0x4800, 0x0800, CRC(52b22ab2) SHA1(c8f822a1a54081cfc88149c97b4dc19aa745a8d5) ) - ROM_LOAD( "1595.prom-u10", 0x5000, 0x0800, CRC(a704d142) SHA1(95c1249a8efd1a69972ffd7a4da76a0bca5095d9) ) - ROM_LOAD( "1596.prom-u11", 0x5800, 0x0800, CRC(6975e33d) SHA1(3f12037edd6f1b803b5f864789f4b88958ac9578) ) - ROM_LOAD( "1597.prom-u12", 0x6000, 0x0800, CRC(d48ab5c2) SHA1(3f4faf4b131b120b30cd4e73ff34d5cd7ef6c47a) ) - ROM_LOAD( "1598.prom-u13", 0x6800, 0x0800, CRC(ab54a94c) SHA1(9dd57b4b6e46d46922933128d9786df011c6133d) ) - ROM_LOAD( "1599.prom-u14", 0x7000, 0x0800, CRC(c9d4f3a5) SHA1(8516914b49fad85222cbdd9a43609834f5d0f13d) ) - ROM_LOAD( "1600.prom-u15", 0x7800, 0x0800, CRC(893b7dbc) SHA1(136135f0be2e8dddfa0d21a5f4119ee4685c4866) ) - ROM_LOAD( "1601.prom-u16", 0x8000, 0x0800, CRC(867bdf4f) SHA1(5974d32d878206abd113f74ba20fa5276cf21a6f) ) - ROM_LOAD( "1602.prom-u17", 0x8800, 0x0800, CRC(bd447623) SHA1(b8d255aeb32096891379330c5b8adf1d151d70c2) ) - ROM_LOAD( "1603.prom-u18", 0x9000, 0x0800, CRC(9f8f10e8) SHA1(ffe9d872d9011b3233cb06d966852319f9e4cd01) ) - ROM_LOAD( "1604.prom-u19", 0x9800, 0x0800, CRC(ad2f0f6c) SHA1(494a224905b1dac58b3b50f65a8be986b68b06f2) ) - ROM_LOAD( "1605.prom-u20", 0xa000, 0x0800, CRC(e27d7144) SHA1(5b82fda797d86e11882d1f9738a59092c5e3e7d8) ) - ROM_LOAD( "1606.prom-u21", 0xa800, 0x0800, CRC(7965f636) SHA1(5c8720beedab4979a813ce7f0e8961c863973ff7) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) - ROM_LOAD( "1607.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) - ROM_LOAD( "1608.speech-u6", 0x0000, 0x1000, CRC(637e2b13) SHA1(8a470f9a8a722f7ced340c4d32b4cf6f05b3e848) ) - ROM_LOAD( "1609.speech-u5", 0x1000, 0x1000, CRC(675ee8e5) SHA1(e314482028b8925ad02e833a1d22224533d0a683) ) - ROM_LOAD( "1610.speech-u4", 0x2000, 0x1000, CRC(2915c7bd) SHA1(3ed98747b5237aa1b3bab6866292370dc2c7655a) ) - - ROM_REGION( 0x0440, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ -ROM_END - - -ROM_START( tacscan ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "1711a.cpu-u25", 0x0000, 0x0800, CRC(0da13158) SHA1(256c5441a4841441501c9b7bcf09e0e99e8dd671) ) - ROM_LOAD( "1670c.prom-u1", 0x0800, 0x0800, CRC(98de6fd5) SHA1(f22c215d7558e00366fec5092abb51c670468f8c) ) - ROM_LOAD( "1671a.prom-u2", 0x1000, 0x0800, CRC(dc400074) SHA1(70093ef56e0784173a06da1ac781bb9d8c4e7fc5) ) - ROM_LOAD( "1672a.prom-u3", 0x1800, 0x0800, CRC(2caf6f7e) SHA1(200119260f78bb1c5389707b3ceedfbc1ae43549) ) - ROM_LOAD( "1673a.prom-u4", 0x2000, 0x0800, CRC(1495ce3d) SHA1(3189f8061961d90a52339c855c06e81f4537fb2b) ) - ROM_LOAD( "1674a.prom-u5", 0x2800, 0x0800, CRC(ab7fc5d9) SHA1(b2d9241d83d175ead4da36d7311a41a5f972e06a) ) - ROM_LOAD( "1675a.prom-u6", 0x3000, 0x0800, CRC(cf5e5016) SHA1(78a3f1e4a905515330d4737ac38576ac6e0d8611) ) - ROM_LOAD( "1676a.prom-u7", 0x3800, 0x0800, CRC(b61a3ab3) SHA1(0f4ef5c7fe299ad20fa4637260282a733f1cf461) ) - ROM_LOAD( "1677a.prom-u8", 0x4000, 0x0800, CRC(bc0273b1) SHA1(8e8d8830f17b9fa6d45d98108ca02d90c29de574) ) - ROM_LOAD( "1678b.prom-u9", 0x4800, 0x0800, CRC(7894da98) SHA1(2de7c121ad847e51a10cb1b81aec84cc44a3d04c) ) - ROM_LOAD( "1679a.prom-u10", 0x5000, 0x0800, CRC(db865654) SHA1(db4d5675b53ff2bbaf70090fd064e98862f4ad33) ) - ROM_LOAD( "1680a.prom-u11", 0x5800, 0x0800, CRC(2c2454de) SHA1(74101806439c9faeba88ffe573fa4f93ffa0ba3c) ) - ROM_LOAD( "1681a.prom-u12", 0x6000, 0x0800, CRC(77028885) SHA1(bc981620ebbfbe4e32b3b4d00504475634454c57) ) - ROM_LOAD( "1682a.prom-u13", 0x6800, 0x0800, CRC(babe5cf1) SHA1(26219b7a26f818fee2fe579ec6fb0b16c6bf056f) ) - ROM_LOAD( "1683a.prom-u14", 0x7000, 0x0800, CRC(1b98b618) SHA1(19854cb2741ba37c11ae6d429fa6c17ff930f5e5) ) - ROM_LOAD( "1684a.prom-u15", 0x7800, 0x0800, CRC(cb3ded3b) SHA1(f1e886f4f71b0f6f2c11fb8b4921c3452fc9b2c0) ) - ROM_LOAD( "1685a.prom-u16", 0x8000, 0x0800, CRC(43016a79) SHA1(ee22c1fe0c8df90d9215175104f8a796c3d2aed3) ) - ROM_LOAD( "1686a.prom-u17", 0x8800, 0x0800, CRC(a4397772) SHA1(cadc95b869f5bf5dba7f03dfe5ae64a50899cced) ) - ROM_LOAD( "1687a.prom-u18", 0x9000, 0x0800, CRC(002f3bc4) SHA1(7f3795a05d5651c90cdcd4d00c46d05178b433ea) ) - ROM_LOAD( "1688a.prom-u19", 0x9800, 0x0800, CRC(0326d87a) SHA1(3a5ea4526db417b9e00b24b019c1c6016773c9e7) ) - ROM_LOAD( "1709a.prom-u20", 0xa000, 0x0800, CRC(f35ed1ec) SHA1(dce95a862af0c6b67fb76b99fee0523d53b7551c) ) - ROM_LOAD( "1710a.prom-u21", 0xa800, 0x0800, CRC(6203be22) SHA1(89731c7c88d0125a11368d707f566eb53c783266) ) - - ROM_REGION( 0x0420, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ -ROM_END - - -ROM_START( startrek ) - ROM_REGION( 0xc000, REGION_CPU1, 0 ) - ROM_LOAD( "1873.cpu-u25", 0x0000, 0x0800, CRC(be46f5d9) SHA1(fadf13042d31b0dacf02a3166545c946f6fd3f33) ) - ROM_LOAD( "1848.prom-u1", 0x0800, 0x0800, CRC(65e3baf3) SHA1(0c081ed6c8be0bb5eb3d5769ac1f0b8fe4735d11) ) - ROM_LOAD( "1849.prom-u2", 0x1000, 0x0800, CRC(8169fd3d) SHA1(439d4b857083ae40df7d7f53c36ec13b05d86a86) ) - ROM_LOAD( "1850.prom-u3", 0x1800, 0x0800, CRC(78fd68dc) SHA1(fb56567458807d9becaacac11091931af9889620) ) - ROM_LOAD( "1851.prom-u4", 0x2000, 0x0800, CRC(3f55ab86) SHA1(f75ce0c56e22e8758dd1f5ce9ac00f5f41b13465) ) - ROM_LOAD( "1852.prom-u5", 0x2800, 0x0800, CRC(2542ecfb) SHA1(7cacee44670768e9fae1024f172b867193d2ea4a) ) - ROM_LOAD( "1853.prom-u6", 0x3000, 0x0800, CRC(75c2526a) SHA1(6e86b30fcdbe7622ab873092e7a7a46d8bad790f) ) - ROM_LOAD( "1854.prom-u7", 0x3800, 0x0800, CRC(096d75d0) SHA1(26e90c296b00239a6cde4ec5e80cccd7bb36bcbd) ) - ROM_LOAD( "1855.prom-u8", 0x4000, 0x0800, CRC(bc7b9a12) SHA1(6dc60e380dc5790cd345b06c064ea7d69570aadb) ) - ROM_LOAD( "1856.prom-u9", 0x4800, 0x0800, CRC(ed9fe2fb) SHA1(5d56e8499cb4f54c5e76a9231c53d95777777e05) ) - ROM_LOAD( "1857.prom-u10", 0x5000, 0x0800, CRC(28699d45) SHA1(c133eb4fc13987e634d3789bfeaf9e03196f8fd3) ) - ROM_LOAD( "1858.prom-u11", 0x5800, 0x0800, CRC(3a7593cb) SHA1(7504f960507579d043b7ee20fb8fd2610399ff4b) ) - ROM_LOAD( "1859.prom-u12", 0x6000, 0x0800, CRC(5b11886b) SHA1(b0fb6e912953822242501943f7214e4af6ab7891) ) - ROM_LOAD( "1860.prom-u13", 0x6800, 0x0800, CRC(62eb96e6) SHA1(51d1f5e48e3e21147584ace61b8832ad892cb6e2) ) - ROM_LOAD( "1861.prom-u14", 0x7000, 0x0800, CRC(99852d1d) SHA1(eaea6a99f0a7f0292db3ea19649b5c1be45b9507) ) - ROM_LOAD( "1862.prom-u15", 0x7800, 0x0800, CRC(76ce27b2) SHA1(8fa8d73aa4dcf3709ecd057bad3278fac605988c) ) - ROM_LOAD( "1863.prom-u16", 0x8000, 0x0800, CRC(dd92d187) SHA1(5a11cdc91bb7b36ea98503892847d8dbcedfe95a) ) - ROM_LOAD( "1864.prom-u17", 0x8800, 0x0800, CRC(e37d3a1e) SHA1(15d949989431dcf1e0406f1e3745f3ee91012ff5) ) - ROM_LOAD( "1865.prom-u18", 0x9000, 0x0800, CRC(b2ec8125) SHA1(70982c614471614f6b490ae2d65faec0eff2ac37) ) - ROM_LOAD( "1866.prom-u19", 0x9800, 0x0800, CRC(6f188354) SHA1(e99946467090b68559c2b54ad2e85204b71a459f) ) - ROM_LOAD( "1867.prom-u20", 0xa000, 0x0800, CRC(b0a3eae8) SHA1(51a0855753dc2d4fe1a05bd54fa958beeab35299) ) - ROM_LOAD( "1868.prom-u21", 0xa800, 0x0800, CRC(8b4e2e07) SHA1(11f7de6327abf88012854417224b38a2352a9dc7) ) - ROM_LOAD( "1869.prom-u22", 0xb000, 0x0800, CRC(e5663070) SHA1(735944c2b924964f72f3bb3d251a35ea2aef3d15) ) - ROM_LOAD( "1870.prom-u23", 0xb800, 0x0800, CRC(4340616d) SHA1(e93686a29377933332523425532d102e30211111) ) - - ROM_REGION( 0x0800, REGION_CPU2, 0 ) - ROM_LOAD( "1670.speech-u7", 0x0000, 0x0800, CRC(b779884b) SHA1(ac07e99717a1f51b79f3e43a5d873ebfa0559320) ) - - ROM_REGION( 0x4000, REGION_SOUND1, 0 ) - ROM_LOAD( "1871.speech-u6", 0x0000, 0x1000, CRC(03713920) SHA1(25a0158cab9983248e91133f96d1849c9e9bcbd2) ) - ROM_LOAD( "1872.speech-u5", 0x1000, 0x1000, CRC(ebb5c3a9) SHA1(533b6f0499b311f561cf7aba14a7f48ca7c47321) ) - - ROM_REGION( 0x0440, REGION_PROMS, 0 ) - ROM_LOAD( "s-c.xyt-u39", 0x0000, 0x0400, CRC(56484d19) SHA1(61f43126fdcfc230638ed47085ae037a098e6781) ) /* sine table */ - ROM_LOAD( "pr-82.cpu-u15", 0x0400, 0x0020, CRC(c609b79e) SHA1(49dbcbb607079a182d7eb396c0da097166ea91c9) ) /* CPU board addressing */ - ROM_LOAD( "6331.speech-u30", 0x0420, 0x0020, CRC(adcb81d0) SHA1(74b0efc7e8362b0c98e54a6107981cff656d87e1) ) /* speech board addressing */ -ROM_END - - - -/************************************* - * - * Driver initialization - * - *************************************/ - -DRIVER_INIT( elim2 ) -{ - /* configure security */ - sega_security(70); - - /* configure sound */ - has_usb = FALSE; - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3e, 0x3e, 0, 0, elim1_sh_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, elim2_sh_w); -} - - -DRIVER_INIT( elim4 ) -{ - /* configure security */ - sega_security(76); - - /* configure sound */ - has_usb = FALSE; - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3e, 0x3e, 0, 0, elim1_sh_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, elim2_sh_w); - - /* configure inputs */ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, spinner_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfc, 0xfc, 0, 0, elim4_input_r); -} - - -DRIVER_INIT( spacfury ) -{ - /* configure security */ - sega_security(64); - - /* configure sound */ - has_usb = FALSE; - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x38, 0x38, 0, 0, sega_speech_data_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3b, 0x3b, 0, 0, sega_speech_control_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3e, 0x3e, 0, 0, spacfury1_sh_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, spacfury2_sh_w); -} - - -DRIVER_INIT( zektor ) -{ - /* configure security */ - sega_security(82); - - /* configure sound */ - has_usb = FALSE; - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x38, 0x38, 0, 0, sega_speech_data_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3b, 0x3b, 0, 0, sega_speech_control_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3c, 0x3c, 0, 0, AY8910_control_port_0_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3d, 0x3d, 0, 0, AY8910_write_port_0_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3e, 0x3e, 0, 0, zektor1_sh_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, zektor2_sh_w); - - /* configure inputs */ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, spinner_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfc, 0xfc, 0, 0, spinner_input_r); -} - - -DRIVER_INIT( tacscan ) -{ - /* configure security */ - sega_security(76); - - /* configure sound */ - has_usb = TRUE; - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, sega_usb_status_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, sega_usb_data_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, 0, 0, sega_usb_ram_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, 0, 0, usb_ram_w); - - /* configure inputs */ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, spinner_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfc, 0xfc, 0, 0, spinner_input_r); -} - - -DRIVER_INIT( startrek ) -{ - /* configure security */ - sega_security(64); - - /* configure sound */ - has_usb = TRUE; - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x38, 0x38, 0, 0, sega_speech_data_w); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3b, 0x3b, 0, 0, sega_speech_control_w); - - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, sega_usb_status_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0x3f, 0x3f, 0, 0, sega_usb_data_w); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, 0, 0, sega_usb_ram_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xd000, 0xdfff, 0, 0, usb_ram_w); - - /* configure inputs */ - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, spinner_select_w); - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xfc, 0xfc, 0, 0, spinner_input_r); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1981, elim2, 0, elim2, elim2, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 1)", 0 ) -GAME( 1981, elim2a, elim2, elim2, elim2, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", 0 ) -GAME( 1981, elim2c, elim2, elim2, elim2c, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", 0 ) -GAME( 1981, elim4, elim2, elim2, elim4, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", 0 ) -GAME( 1981, elim4p, elim2, elim2, elim4, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", 0 ) -GAME( 1981, spacfury, 0, spacfury, spacfury, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", 0 ) -GAME( 1981, spacfura, spacfury, spacfury, spacfury, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", 0 ) -GAME( 1981, spacfurb, spacfury, spacfury, spacfury, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", 0 ) -GAME( 1982, zektor, 0, zektor, zektor, zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", 0 ) -GAME( 1982, tacscan, 0, tacscan, tacscan, tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", GAME_IMPERFECT_SOUND ) -GAME( 1982, startrek, 0, startrek, startrek, startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", GAME_IMPERFECT_SOUND ) diff --git a/src/drivers/segas18.c b/src/drivers/segas18.c deleted file mode 100644 index 8d22182e9..000000000 --- a/src/drivers/segas18.c +++ /dev/null @@ -1,2265 +0,0 @@ -/*************************************************************************** - - Sega System 18 hardware - -**************************************************************************** - - Known bugs: - * lghost sprites seem to be slightly out of sync - * vdp gfx on 2nd attract level of lghost are corrupt at top of stairs - after attract mode loops - * pauses in lghost where all sprites vanish - * some minor gfx bugs in moonwalker (see mametesters) - -**************************************************************************** - -** MC68000 + Z80 -** 2xYM3438 + Custom PCM -** -** Alien Storm -** Bloxeed -** Clutch Hitter -** D.D. Crew -** Laser Ghost -** Michael Jackson's Moonwalker -** Shadow Dancer -** Wally wo Sagase! (Where's Wally?) - -***************************************************************************/ - -#include "driver.h" -#include "machine/segaic16.h" -#include "system16.h" -#include "genesis.h" -#include "sound/2612intf.h" -#include "sound/rf5c68.h" - - - -/************************************* - * - * Constants - * - *************************************/ - -#define ROM_BOARD_171_SHADOW (0) /* 171-???? -- used by shadow dancer */ -#define ROM_BOARD_171_5874 (1) /* 171-5874 */ -#define ROM_BOARD_171_5987 (2) /* 171-5987 */ - - - -/************************************* - * - * Statics - * - *************************************/ - -static UINT16 *workram; - -static UINT8 rom_board; -static UINT8 misc_io_data[0x10]; -static UINT8 mcu_data; - -static read16_handler custom_io_r; -static write16_handler custom_io_w; - -static UINT8 wwally_last_x[3], wwally_last_y[3]; -static UINT8 lghost_value, lghost_select; - - - -/************************************* - * - * Prototypes - * - *************************************/ - -extern void fd1094_machine_init(void); -extern void fd1094_driver_init(void); - -static READ16_HANDLER( misc_io_r ); -static WRITE16_HANDLER( misc_io_w ); -static WRITE16_HANDLER( rom_5987_bank_w ); - - - -/************************************* - * - * Memory mapping tables - * - *************************************/ - -static const struct segaic16_memory_map_entry rom_171_shad_info[] = -{ - { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, misc_io_w, NULL, "I/O space" }, - { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, MRA16_BANK10, segaic16_paletteram_w, &paletteram16, "color RAM" }, - { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, MRA16_BANK11, segaic16_tileram_0_w, &segaic16_tileram_0, "tile RAM" }, - { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, MRA16_BANK12, segaic16_textram_0_w, &segaic16_textram_0, "text RAM" }, - { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, MRA16_BANK13, MWA16_BANK13, &segaic16_spriteram_0, "object RAM" }, - { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, MRA16_BANK14, MWA16_BANK14, &workram, "work RAM" }, - { 0x29/2, 0x00000, 0x10000, 0xff0000, ~0, NULL, NULL, NULL, "????" }, - { 0x25/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, genesis_vdp_w, NULL, "VDP" }, - { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, MRA16_BANK17, MWA16_ROM, NULL, "ROM 0" }, - { 0 } -}; - -static const struct segaic16_memory_map_entry rom_171_5874_info[] = -{ - { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, misc_io_w, NULL, "I/O space" }, - { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, MRA16_BANK10, segaic16_paletteram_w, &paletteram16, "color RAM" }, - { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, MRA16_BANK11, segaic16_tileram_0_w, &segaic16_tileram_0, "tile RAM" }, - { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, MRA16_BANK12, segaic16_textram_0_w, &segaic16_textram_0, "text RAM" }, - { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, MRA16_BANK13, MWA16_BANK13, &segaic16_spriteram_0, "object RAM" }, - { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, MRA16_BANK14, MWA16_BANK14, &workram, "work RAM" }, - { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, genesis_vdp_w, NULL, "VDP" }, - { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, MRA16_BANK16, MWA16_ROM, NULL, "ROM 1" }, - { 0x21/2, 0x00000, 0x80000, 0xf80000, 0x00000, MRA16_BANK17, MWA16_ROM, NULL, "ROM 0" }, - { 0 } -}; - -static const struct segaic16_memory_map_entry rom_171_5987_info[] = -{ - { 0x3d/2, 0x00000, 0x04000, 0xffc000, ~0, misc_io_r, misc_io_w, NULL, "I/O space" }, - { 0x39/2, 0x00000, 0x02000, 0xffe000, ~0, MRA16_BANK10, segaic16_paletteram_w, &paletteram16, "color RAM" }, - { 0x35/2, 0x00000, 0x10000, 0xfe0000, ~0, MRA16_BANK11, segaic16_tileram_0_w, &segaic16_tileram_0, "tile RAM" }, - { 0x35/2, 0x10000, 0x01000, 0xfef000, ~0, MRA16_BANK12, segaic16_textram_0_w, &segaic16_textram_0, "text RAM" }, - { 0x31/2, 0x00000, 0x00800, 0xfff800, ~0, MRA16_BANK13, MWA16_BANK13, &segaic16_spriteram_0, "object RAM" }, - { 0x2d/2, 0x00000, 0x04000, 0xffc000, ~0, MRA16_BANK14, MWA16_BANK14, &workram, "work RAM" }, - { 0x29/2, 0x00000, 0x00010, 0xfffff0, ~0, genesis_vdp_r, genesis_vdp_w, NULL, "VDP" }, - { 0x25/2, 0x00000, 0x80000, 0xf80000, 0x80000, MRA16_BANK16, rom_5987_bank_w, NULL, "ROM 1/banking" }, - { 0x21/2, 0x00000, 0x100000,0xf00000, 0x00000, MRA16_BANK17, MWA16_ROM, NULL, "ROM 0" }, - { 0 } -}; - -static const struct segaic16_memory_map_entry *region_info_list[] = -{ - &rom_171_shad_info[0], - &rom_171_5874_info[0], - &rom_171_5987_info[0] -}; - - - -/************************************* - * - * Configuration - * - *************************************/ - -static void sound_w(UINT8 data) -{ - soundlatch_w(0, data & 0xff); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - - -static UINT8 sound_r(void) -{ - return mcu_data; -} - - -static void system18_generic_init(int _rom_board) -{ - /* set the ROM board */ - rom_board = _rom_board; - - /* allocate memory for regions not autmatically assigned */ - segaic16_spriteram_0 = auto_malloc(0x00800); - paletteram16 = auto_malloc(0x04000); - segaic16_tileram_0 = auto_malloc(0x10000); - segaic16_textram_0 = auto_malloc(0x01000); - workram = auto_malloc(0x04000); - - /* init the memory mapper */ - segaic16_memory_mapper_init(0, region_info_list[rom_board], sound_w, sound_r); - - /* init the FD1094 */ - fd1094_driver_init(); - - /* reset the custom handlers and other pointers */ - custom_io_r = NULL; - custom_io_w = NULL; -} - - - -/************************************* - * - * Initialization & interrupts - * - *************************************/ - -static void boost_interleave(int param) -{ - cpu_boost_interleave(0, TIME_IN_MSEC(10)); -} - -MACHINE_RESET( system18 ) -{ - segaic16_memory_mapper_reset(); - segaic16_tilemap_reset(0); - fd1094_machine_init(); - - /* if we are running with a real live 8751, we need to boost the interleave at startup */ - if (Machine->drv->cpu[2].cpu_type == CPU_I8751) - timer_set(TIME_NOW, 0, boost_interleave); -} - - - -/************************************* - * - * I/O space - * - *************************************/ - -static READ16_HANDLER( io_chip_r ) -{ - offset &= 0x1f/2; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x06/2: - case 0x08/2: - case 0x0a/2: - case 0x0c/2: - case 0x0e/2: - /* if the port is configured as an output, return the last thing written */ - if (misc_io_data[0x1e/2] & (1 << offset)) - return misc_io_data[offset]; - - /* otherwise, return an input port */ - return readinputport(offset); - - /* 'SEGA' protection */ - case 0x10/2: - return 'S'; - case 0x12/2: - return 'E'; - case 0x14/2: - return 'G'; - case 0x16/2: - return 'A'; - - /* CNT register & mirror */ - case 0x18/2: - case 0x1c/2: - return misc_io_data[0x1c/2]; - - /* port direction register & mirror */ - case 0x1a/2: - case 0x1e/2: - return misc_io_data[0x1e/2]; - } - return 0xffff; -} - - -static WRITE16_HANDLER( io_chip_w ) -{ - UINT8 old; - - /* generic implementation */ - offset &= 0x1f/2; - old = misc_io_data[offset]; - misc_io_data[offset] = data; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x08/2: - case 0x0a/2: - case 0x0c/2: - break; - - /* miscellaneous output */ - case 0x06/2: - system18_set_grayscale(~data & 0x40); - segaic16_tilemap_set_flip(0, data & 0x20); - segaic16_sprites_set_flip(0, data & 0x20); -/* These are correct according to cgfm's docs, but mwalker and ddcrew both - enable the lockout and never turn it off - coin_lockout_w(1, data & 0x08); - coin_lockout_w(0, data & 0x04); */ - coin_counter_w(1, data & 0x02); - coin_counter_w(0, data & 0x01); - break; - - /* tile banking */ - case 0x0e/2: - if (rom_board == ROM_BOARD_171_5874 || rom_board == ROM_BOARD_171_SHADOW) - { - int i; - for (i = 0; i < 4; i++) - { - segaic16_tilemap_set_bank(0, 0 + i, (data & 0xf) * 4 + i); - segaic16_tilemap_set_bank(0, 4 + i, ((data >> 4) & 0xf) * 4 + i); - } - } - break; - - /* CNT register */ - case 0x1c/2: - segaic16_set_display_enable(data & 2); - if ((old ^ data) & 4) - system18_set_vdp_enable(data & 4); - break; - } -} - - -static READ16_HANDLER( misc_io_r ) -{ - offset &= 0x1fff; - switch (offset & (0x3000/2)) - { - /* I/O chip */ - case 0x0000/2: - case 0x1000/2: - return io_chip_r(offset, mem_mask); - - /* video control latch */ - case 0x2000/2: - return readinputport(4 + (offset & 1)); - } - if (custom_io_r) - return custom_io_r(offset, mem_mask); - logerror("%06X:misc_io_r - unknown read access to address %04X\n", activecpu_get_pc(), offset * 2); - return segaic16_open_bus_r(0,0); -} - - -static WRITE16_HANDLER( misc_io_w ) -{ - offset &= 0x1fff; - switch (offset & (0x3000/2)) - { - /* I/O chip */ - case 0x0000/2: - case 0x1000/2: - if (ACCESSING_LSB) - { - io_chip_w(offset, data, mem_mask); - return; - } - break; - - /* video control latch */ - case 0x2000/2: - if (ACCESSING_LSB) - { - system18_set_vdp_mixing(data & 0xff); - return; - } - break; - } - if (custom_io_w) - { - custom_io_w(offset, data, mem_mask); - return; - } - logerror("%06X:misc_io_w - unknown write access to address %04X = %04X & %04X\n", activecpu_get_pc(), offset * 2, data, mem_mask ^ 0xffff); -} - - - -/************************************* - * - * Tile banking - * - *************************************/ - -static WRITE16_HANDLER( rom_5987_bank_w ) -{ - if (!ACCESSING_LSB) - return; - offset &= 0xf; - data &= 0xff; - - /* tile banking */ - if (offset < 8) - { - int maxbanks = Machine->gfx[0]->total_elements / 1024; - if (data >= maxbanks) - data %= maxbanks; - segaic16_tilemap_set_bank(0, offset, data); - } - - /* sprite banking */ - else - { - int maxbanks = memory_region_length(REGION_GFX2) / 0x40000; - if (data >= maxbanks) - data = 255; - segaic16_sprites_set_bank(0, (offset - 8) * 2 + 0, data * 2 + 0); - segaic16_sprites_set_bank(0, (offset - 8) * 2 + 1, data * 2 + 1); - } -} - - - -/************************************* - * - * D.D.Crew Custom I/O - * - *************************************/ - -static READ16_HANDLER( ddcrew_custom_io_r ) -{ - switch (offset) - { - case 0x3020/2: - return readinputportbytag("P3"); - - case 0x3022/2: - return readinputportbytag("P4"); - - case 0x3024/2: - return readinputportbytag("P34START"); - } - return segaic16_open_bus_r(0,0); -} - - - -/************************************* - * - * Laser Ghost Custom I/O - * - *************************************/ - -static READ16_HANDLER( lghost_custom_io_r ) -{ - UINT16 result; - switch (offset) - { - case 0x3010/2: - case 0x3012/2: - case 0x3014/2: - case 0x3016/2: - result = lghost_value | 0x7f; - lghost_value <<= 1; - return result; - } - return segaic16_open_bus_r(0,0); -} - - -static WRITE16_HANDLER( lghost_custom_io_w ) -{ - switch (offset) - { - case 0x3010/2: - lghost_value = 255 - readinputportbytag("GUNY1"); - break; - - case 0x3012/2: - lghost_value = readinputportbytag("GUNX1"); - break; - - case 0x3014/2: - lghost_value = 255 - readinputportbytag(lghost_select ? "GUNY3" : "GUNY2"); - break; - - case 0x3016/2: - lghost_value = readinputportbytag(lghost_select ? "GUNX3" : "GUNX2"); - break; - - case 0x3020/2: - lghost_select = data & 1; - break; - } -} - - - -/************************************* - * - * Where's Wally Custom I/O - * - *************************************/ - -static READ16_HANDLER( wwally_custom_io_r ) -{ - switch (offset) - { - case 0x3000/2: - return (readinputportbytag("TRACKX1") - wwally_last_x[0]) & 0xff; - - case 0x3004/2: - return (readinputportbytag("TRACKY1") - wwally_last_y[0]) & 0xff; - - case 0x3008/2: - return (readinputportbytag("TRACKX2") - wwally_last_x[1]) & 0xff; - - case 0x300c/2: - return (readinputportbytag("TRACKY2") - wwally_last_y[1]) & 0xff; - - case 0x3010/2: - return (readinputportbytag("TRACKX3") - wwally_last_x[2]) & 0xff; - - case 0x3014/2: - return (readinputportbytag("TRACKY3") - wwally_last_y[2]) & 0xff; - } - return segaic16_open_bus_r(0,0); -} - - -static WRITE16_HANDLER( wwally_custom_io_w ) -{ - switch (offset) - { - case 0x3000/2: - case 0x3004/2: - wwally_last_x[0] = readinputportbytag("TRACKX1"); - wwally_last_y[0] = readinputportbytag("TRACKY1"); - break; - - case 0x3008/2: - case 0x300c/2: - wwally_last_x[1] = readinputportbytag("TRACKX2"); - wwally_last_y[1] = readinputportbytag("TRACKY2"); - break; - - case 0x3010/2: - case 0x3014/2: - wwally_last_x[2] = readinputportbytag("TRACKX3"); - wwally_last_y[2] = readinputportbytag("TRACKY3"); - break; - } -} - - - -/************************************* - * - * Sound handlers - * - *************************************/ - -static WRITE8_HANDLER( soundbank_w ) -{ - memory_set_bankptr(1, memory_region(REGION_CPU2) + 0x10000 + 0x2000 * data); -} - - -static WRITE8_HANDLER( mcu_data_w ) -{ - mcu_data = data; - cpunum_set_input_line(2, 1, PULSE_LINE); -} - - - -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( system18 ) -{ - if (read_or_write) - mame_fwrite(file, workram, 0x4000); - else if (file) - mame_fread(file, workram, 0x4000); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( system18_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0xffffff) AM_READWRITE(segaic16_memory_mapper_lsb_r, segaic16_memory_mapper_lsb_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION(REGION_CPU2, 0x10000) - AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x0ff0) AM_READWRITE(RF5C68_r, RF5C68_reg_w) - AM_RANGE(0xd000, 0xdfff) AM_READWRITE(RF5C68_r, RF5C68_w) - AM_RANGE(0xe000, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w) - AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w) - AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w) - AM_RANGE(0x83, 0x83) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_B_w) - AM_RANGE(0x90, 0x90) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_1_A_r, YM3438_control_port_1_A_w) - AM_RANGE(0x91, 0x91) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_1_A_w) - AM_RANGE(0x92, 0x92) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_1_B_w) - AM_RANGE(0x93, 0x93) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_1_B_w) - AM_RANGE(0xa0, 0xa0) AM_MIRROR(0x1f) AM_WRITE(soundbank_w) - AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x1f) AM_READWRITE(soundlatch_r, mcu_data_w) -ADDRESS_MAP_END - - - -/************************************* - * - * i8751 MCU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x0fff) AM_ROM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mcu_data_map, ADDRESS_SPACE_DATA, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0x001f) AM_READWRITE(segaic16_memory_mapper_r, segaic16_memory_mapper_w) -ADDRESS_MAP_END - - - -/************************************* - * - * Generic port definitions - * - *************************************/ - -static INPUT_PORTS_START( system18_generic ) - PORT_START_TAG("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START_TAG("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("PORTC") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTD") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SERVICE") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("COINAGE") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) - 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( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) - 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( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("PORTH") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Game-specific port definitions - * - *************************************/ - -static INPUT_PORTS_START( astorm ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("PORTC") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_MODIFY("SERVICE") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x14, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x00, "Special" ) - PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - - -static INPUT_PORTS_START( astorm2p ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x14, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x00, "Special" ) - PORT_DIPNAME( 0x20, 0x20, "Coin Chutes" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - - -static INPUT_PORTS_START( bloxeed ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("SERVICE") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x03, "Price Type" ) /* Normal game | VS Mode */ - PORT_DIPSETTING( 0x03, "A" ) /* 1 Start / 1 Continue | 2 Start / 1 Continue */ - PORT_DIPSETTING( 0x02, "B" ) /* 1 Start / 1 Continue | 1 Start / 1 Continue */ - PORT_DIPSETTING( 0x01, "C" ) /* 2 Start / 1 Continue | 4 Start / 2 Continue */ - PORT_DIPSETTING( 0x00, "D" ) /* 2 Start / 1 Continue | 2 Start / 2 Continue */ - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, "High Speed Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - /* Switches 3 & 7 are listed as "NOT USED" */ -INPUT_PORTS_END - - -static INPUT_PORTS_START( cltchitr ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Time P1" ) - PORT_DIPSETTING( 0x04, "2 Credits 18 Outcounts 14 Min." ) - PORT_DIPSETTING( 0x00, "1 Credit 6 Outcounts 7 Min." ) - PORT_DIPSETTING( 0x08, "1 Credit 12 Outcounts 12 Min." ) - PORT_DIPSETTING( 0x0c, "1Credit 6 Outcounts 8M./2Credits 18 Outcounts 14M." ) - PORT_DIPNAME( 0x30, 0x30, "Game Time P2" ) - PORT_DIPSETTING( 0x10, "4 Credits 18 Outcounts 16 Min." ) - PORT_DIPSETTING( 0x00, "2 Credits 6 Outcounts 8 Min." ) - PORT_DIPSETTING( 0x20, "2 Credits 12 Outcounts 14 Min." ) - PORT_DIPSETTING( 0x30, "2Credits 6 Outcounts 8M./4Credits 18 Outcounts 16M." ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( ddcrew ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "Credits needed" ) - PORT_DIPSETTING( 0x01, "1 to start, 1 to continue" ) - PORT_DIPSETTING( 0x00, "2 to start, 1 to continue" ) - PORT_DIPNAME( 0x02, 0x02, "Switch to Start" ) - PORT_DIPSETTING( 0x02, "Start" ) - PORT_DIPSETTING( 0x00, "Attack" ) - PORT_DIPNAME( 0x04, 0x04, "Coin Chute" ) - PORT_DIPSETTING( 0x04, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, "Player Start/Continue" ) - PORT_DIPSETTING( 0x30, "3/3" ) - PORT_DIPSETTING( 0x20, "2/3" ) - PORT_DIPSETTING( 0x10, "2/2" ) - PORT_DIPSETTING( 0x00, "3/4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("P3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("P4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("P34START") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) // individual mode - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) // individual mode - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( ddcrew2p ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "Credits needed" ) - PORT_DIPSETTING( 0x01, "1 to start, 1 to continue" ) - PORT_DIPSETTING( 0x00, "2 to start, 1 to continue" ) - PORT_DIPNAME( 0x02, 0x02, "Switch to Start" ) - PORT_DIPSETTING( 0x02, "Start" ) - PORT_DIPSETTING( 0x00, "Attack" ) - PORT_DIPNAME( 0x04, 0x04, "Coin Chute" ) - PORT_DIPSETTING( 0x04, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, "Player Start/Continue" ) - PORT_DIPSETTING( 0x30, "3/3" ) - PORT_DIPSETTING( 0x20, "2/3" ) - PORT_DIPSETTING( 0x10, "2/2" ) - PORT_DIPSETTING( 0x00, "3/4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - -INPUT_PORTS_END - - -static INPUT_PORTS_START( desertbr ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("PORTC") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_MODIFY("SERVICE") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) // individual mode - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) // individual mode - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "Credits to Start" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Play Mode" ) - PORT_DIPSETTING( 0x00, "2 players" ) - PORT_DIPSETTING( 0x08, "3 players" ) - PORT_DIPNAME( 0x10, 0x10, "Coin Chute" ) - PORT_DIPSETTING( 0x10, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x20, 0x20, "Start Button" ) - PORT_DIPSETTING( 0x20, "Use" ) - PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( lghost ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - - PORT_MODIFY("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN) - - PORT_MODIFY("SERVICE") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hardest ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x14, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, "Extra Hardest" ) - PORT_DIPNAME( 0x40, 0x40, "Coin Chute" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPSETTING( 0x40, "Individual" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("GUNX1") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("GUNY1") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("GUNX2") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("GUNY2") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("GUNX3") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(3) - - PORT_START_TAG("GUNY3") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(3) -INPUT_PORTS_END - - -static INPUT_PORTS_START( mwalk ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("PORTC") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_MODIFY("SERVICE") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) // individual mode - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) // individual mode - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives) ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x08, 0x00, "Player Vitality" ) - PORT_DIPSETTING( 0x08, DEF_STR( Low ) ) - PORT_DIPSETTING( 0x00, DEF_STR( High ) ) - PORT_DIPNAME( 0x10, 0x00, "Play Mode" ) - PORT_DIPSETTING( 0x10, "2 Players" ) - PORT_DIPSETTING( 0x00, "3 Players" ) - PORT_DIPNAME( 0x20, 0x00, "Coin Chute" ) - PORT_DIPSETTING( 0x20, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( mwalka ) - PORT_INCLUDE( mwalk ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) - PORT_DIPSETTING( 0x00, "2 Players" ) - PORT_DIPSETTING( 0x10, "3 Players" ) - PORT_DIPNAME( 0x20, 0x20, "Coin Chute" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPSETTING( 0x20, "Individual" ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( shdancer ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, "Time Adjust" ) - PORT_DIPSETTING( 0x00, "2.20" ) - PORT_DIPSETTING( 0x40, "2.40" ) - PORT_DIPSETTING( 0xc0, "3.00" ) - PORT_DIPSETTING( 0x80, "3.30" ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( wwally ) - PORT_INCLUDE( system18_generic ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin Chute" ) - PORT_DIPSETTING( 0x04, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("TRACKX1") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_REVERSE - - PORT_START_TAG("TRACKY1") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) - - PORT_START_TAG("TRACKX2") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2) PORT_REVERSE - - PORT_START_TAG("TRACKY2") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("TRACKX3") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(3) PORT_REVERSE - - PORT_START_TAG("TRACKY3") - PORT_BIT( 0xff, 0x80, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(3) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 1024 }, - { -1 } -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( system18 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(system18_map,0) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD_TAG("sound", Z80, 8000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_IO_MAP(sound_portmap,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000000 * (262 - 224) / (262 * 60))) - - MDRV_MACHINE_RESET(system18) - MDRV_NVRAM_HANDLER(system18) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048*3+2048) - - MDRV_VIDEO_START(system18) - MDRV_VIDEO_UPDATE(system18) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("3438", YM3438, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD_TAG("3438", YM3438, 8000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) - - MDRV_SOUND_ADD_TAG("5c68", RF5C68, 10000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( system18_8751 ) - MDRV_IMPORT_FROM(system18) - MDRV_CPU_MODIFY("main") - MDRV_CPU_VBLANK_INT(irq0_line_hold,0) - - MDRV_CPU_ADD(I8751, 8000000) - MDRV_CPU_PROGRAM_MAP(mcu_map,0) - MDRV_CPU_DATA_MAP(mcu_data_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_pulse,1) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Alien Storm (2 players version), Sega System 18 - CPU: FD1094 (317-????) - ROM Board: 171-5873B -*/ -ROM_START( astorm ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13182.bin", 0x000000, 0x40000, CRC(e31f2a1c) SHA1(690ee10c36e5bb6175470fb5564527e0e4a94d2c) ) - ROM_LOAD16_BYTE( "epr13181.bin", 0x000001, 0x40000, CRC(78cd3b26) SHA1(a81b807c5da625d8e4648ae80c41e4ca3870c0fa) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-xxxx.key", 0x0000, 0x2000, NO_DUMP ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) ) - ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) ) - ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) ) - ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) ) - ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) ) - ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) ) - ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) ) - ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) ) - ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) ) - ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "ep13083a.bin", 0x010000, 0x20000, CRC(e7528e06) SHA1(1f4e618692c20aeb316d578c5ded12440eb072ab) ) - ROM_LOAD( "epr13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) ) - ROM_LOAD( "epr13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) ) - ROM_LOAD( "epr13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) ) -ROM_END - -/************************************************************************************************************************** - Alien Storm (3 players version), Sega System 18 - CPU: FD1094 (317-0148) - ROM Board: 171-5873B - Game numbers: 833-7379-02 (main pcb: 834-7381-02, rom pcb: 834-7380-02) -*/ -ROM_START( astorm3 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13165.a6", 0x000000, 0x40000, CRC(6efcd381) SHA1(547c6703a34c3b9b887f5a63ec59a7055067bf3b) ) - ROM_LOAD16_BYTE( "epr13164.a5", 0x000001, 0x40000, CRC(97d693c6) SHA1(1a9aa98b32aae9367ed897e6931b2633b11b079e) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0148.key", 0x0000, 0x2000, CRC(72e4b64a) SHA1(945580d0cf25691370e9f2056cdffc01331d54ad) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) ) - ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) ) - ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) ) - ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) ) - ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) ) - ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) ) - ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) ) - ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) ) - ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) ) - ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) - ROM_LOAD( "epr13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) ) - ROM_LOAD( "epr13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) ) - ROM_LOAD( "epr13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) ) -ROM_END - -/************************************************************************************************************************** - Alien Storm (3 players US version), Sega System 18 - CPU: FD1094 (317-0147) -*/ -ROM_START( astormu ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13095.a6", 0x000000, 0x40000, CRC(55d40742) SHA1(c30fcd7da1fe062b1f00275dc8ac79c3c619b719) ) - ROM_LOAD16_BYTE( "epr13094.a5", 0x000001, 0x40000, CRC(92b305f9) SHA1(d24a1de619d29a8f6ff9dfce455c2c7d6457ddbe) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0147.key", 0x0000, 0x2000, CRC(3fd54ba7) SHA1(2d74f44f2ed779ed2b119b4fc0bc844d90678c74) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) ) - ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) ) - ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) ) - ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) ) - ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) ) - ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) ) - ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) ) - ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) ) - ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) ) - ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) - ROM_LOAD( "epr13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) ) - ROM_LOAD( "epr13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) ) - ROM_LOAD( "epr13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) ) -ROM_END - -/************************************************************************************************************************** - Alien Storm, Sega System 18 - CPU: FD1094 (317-0146) - ROM Board: 171-5873B -*/ -ROM_START( astormj ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13085.bin", 0x000000, 0x40000, CRC(15f74e2d) SHA1(30d9d099ec18907edd3d20df312565c3bd5a80de) ) - ROM_LOAD16_BYTE( "epr13084.bin", 0x000001, 0x40000, CRC(9687b38f) SHA1(cdeb5b4f06ad4ad8ca579392c1ec901487b08e76) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0146.key", 0x0000, 0x2000, CRC(e94991c5) SHA1(c9a8b56e01792654436f24b219d7a92c0852461f) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) ) - ROM_LOAD( "epr13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) ) - ROM_LOAD( "epr13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) ) - ROM_LOAD16_BYTE( "mpr13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) ) - ROM_LOAD16_BYTE( "mpr13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) ) - ROM_LOAD16_BYTE( "mpr13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) ) - ROM_LOAD16_BYTE( "mpr13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) ) - ROM_LOAD16_BYTE( "mpr13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) ) - ROM_LOAD16_BYTE( "epr13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) ) - ROM_LOAD16_BYTE( "epr13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) - ROM_LOAD( "epr13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) ) - ROM_LOAD( "epr13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) ) - ROM_LOAD( "epr13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Bloxeed, Sega System 18, 834-7307 - CPU: FD1094 (317-0139) - ROM Board: 171-5874B -*/ -ROM_START( bloxeed ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr12911.a6", 0x000000, 0x20000, CRC(a481581a)SHA1(5ce5a0a082622919d2fe0e7d52ec807b2e2c25a2) ) - ROM_LOAD16_BYTE( "epr12910.a5", 0x000001, 0x20000, CRC(dd1bc3bf)SHA1(c0d79862a349ea4dac103c17325633c5dd4a93d1) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0139.key", 0x0000, 0x2000, CRC(9aae84cb)SHA1(806515d61ecacb260b2b5e5fe023b494d35ce315) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "opr12884.b1", 0x00000, 0x10000, CRC(e024aa33)SHA1(d734be240cd05031aaadf9735c0b1b00e8e6d4cb) ) - ROM_LOAD( "opr12885.b2", 0x10000, 0x10000, CRC(8041b814)SHA1(29fa49ba9a73eed07865a86ea774e2c6a60aed5b) ) - ROM_LOAD( "opr12886.b3", 0x20000, 0x10000, CRC(de32285e)SHA1(8994dc128d6a23763e5fcfca1868b336d4aa0a21) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "opr12891.a11", 0x00001, 0x10000, CRC(90d31a8c)SHA1(1747652a5109ce65add197cf06535f2463a99fdc) ) - ROM_LOAD16_BYTE( "opr12887.b11", 0x00000, 0x10000, CRC(f0c0f49d)SHA1(7ecd591265165f3149241e2ceb5059faab88360f) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr12888.a4", 0x010000, 0x20000, CRC(6f2fc63c)SHA1(3cce22c8f80013f05b5a2d36c42a61a81e4d6cbd) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Clutch Hitter, Sega System 18 - CPU: FD1094 (317-0176) - ROM Board: 171-5873B -*/ -ROM_START( cltchitr ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13794.4a", 0x000000, 0x40000, CRC(c8d80233) SHA1(69cdbb989f580abbb006820347becf8d233fa773) ) - ROM_LOAD16_BYTE( "epr13795.6a", 0x000001, 0x40000, CRC(b0b60b67) SHA1(ee3325ddb7461008f556c1696157a766225b9ef5) ) - ROM_LOAD16_BYTE( "epr13784.5a", 0x200000, 0x40000, CRC(80c8180d) SHA1(80e72ab7d97714009fd31b3d50176af84b0dcdb7) ) - ROM_LOAD16_BYTE( "epr13786.7a", 0x200001, 0x40000, CRC(3095dac0) SHA1(20edce74b6f2a82a3865613e601a0e212615d0e4) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0176.key", 0x0000, 0x2000, CRC(9b072430) SHA1(3bc1c7a6d71b4351a42d85e68e70715a7659c096) ) - - ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr13773.1c", 0x000000, 0x80000, CRC(3fc600e5) SHA1(8bec4ecf6a4e4b38d13133960036a5a4800a668e) ) - ROM_LOAD( "mpr13774.2c", 0x080000, 0x80000, CRC(2411a824) SHA1(0e383ccc4e0830ffb395d5102e2950610c147007) ) - ROM_LOAD( "mpr13775.3c", 0x100000, 0x80000, CRC(cf527bf6) SHA1(1f9cf1f0e92709f0465dc97ebbdaa715a419f7a7) ) - - ROM_REGION16_BE( 0x600000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13779.10c", 0x000001, 0x80000, CRC(c707f416) SHA1(e6a9d89849f7f1c303a3ca29a629f81397945a2d) ) - ROM_LOAD16_BYTE( "mpr13787.10a", 0x000000, 0x80000, CRC(f05c68c6) SHA1(b6a0535b6c734a0c89fdb6506c32ffe6ab3aa8cd) ) - ROM_LOAD16_BYTE( "mpr13780.11c", 0x200001, 0x80000, CRC(a4c341e0) SHA1(15a0b5a42b56465a7b7df98968cc2ed177ce6f59) ) - ROM_LOAD16_BYTE( "mpr13788.11a", 0x200000, 0x80000, CRC(0106fea6) SHA1(e16e2a469ecbbc704021dee6264db30aa0898368) ) - ROM_LOAD16_BYTE( "mpr13781.12c", 0x400001, 0x80000, CRC(f33b13af) SHA1(d3eb64dcf12d532454bf3cd6c86528c0f11ee316) ) - ROM_LOAD16_BYTE( "mpr13789.12a", 0x400000, 0x80000, CRC(09ba8835) SHA1(72e83dd1793a7f4b2b881e71f262493e3d4992b3) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13793.7c", 0x010000, 0x80000, CRC(a3d31944) SHA1(44d17aa0598eacfac4b12c8955fd1067ca09abbd) ) - ROM_LOAD( "epr13792.6c", 0x090000, 0x80000, CRC(808f9695) SHA1(d50677d20083ad56dbf0864db05f76f93a4e9eba) ) - ROM_LOAD( "epr13791.5c", 0x110000, 0x80000, CRC(35c16d80) SHA1(7ed04600748c5efb63e25f066daa163e9c0d8038) ) -ROM_END - -/************************************************************************************************************************** - Clutch Hitter, Sega System 18 - CPU: FD1094 (317-0175) - ROM Board: 171-???? -*/ -ROM_START( cltchtrj ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13783.a4", 0x000000, 0x40000, CRC(e2a1d5af) SHA1(cb6710fe2093889d5d159eaf55a3bd95c6f2ef87) ) - ROM_LOAD16_BYTE( "epr13796.a6", 0x000001, 0x40000, CRC(06001c67) SHA1(3aa48631013e6dc55e4c1d222b465e6b41ece36b) ) - ROM_LOAD16_BYTE( "epr13785.a5", 0x200000, 0x40000, CRC(09714762) SHA1(c75c88b1c313e172fdb7f9a570d57be38f959b2b) ) - ROM_LOAD16_BYTE( "epr13797.a7", 0x200001, 0x40000, CRC(361ade9f) SHA1(a7fd48c55695fd322d0456ff7dc2d2b2bc3e561b) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0175.key", 0x0000, 0x2000, CRC(70d9d283) SHA1(ff309b2a221d9a03ccf301a208c76a7c2eaea790) ) - - ROM_REGION( 0x180000, REGION_GFX1, 0 ) /* tiles */ - ROM_LOAD( "mpr13773.1c", 0x000000, 0x80000, CRC(3fc600e5) SHA1(8bec4ecf6a4e4b38d13133960036a5a4800a668e) ) - ROM_LOAD( "mpr13774.2c", 0x080000, 0x80000, CRC(2411a824) SHA1(0e383ccc4e0830ffb395d5102e2950610c147007) ) - ROM_LOAD( "mpr13775.3c", 0x100000, 0x80000, CRC(cf527bf6) SHA1(1f9cf1f0e92709f0465dc97ebbdaa715a419f7a7) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13779.10c", 0x000001, 0x80000, CRC(c707f416) SHA1(e6a9d89849f7f1c303a3ca29a629f81397945a2d) ) - ROM_LOAD16_BYTE( "mpr13787.10a", 0x000000, 0x80000, CRC(f05c68c6) SHA1(b6a0535b6c734a0c89fdb6506c32ffe6ab3aa8cd) ) - ROM_LOAD16_BYTE( "mpr13780.11c", 0x200001, 0x80000, CRC(a4c341e0) SHA1(15a0b5a42b56465a7b7df98968cc2ed177ce6f59) ) - ROM_LOAD16_BYTE( "mpr13788.11a", 0x200000, 0x80000, CRC(0106fea6) SHA1(e16e2a469ecbbc704021dee6264db30aa0898368) ) - ROM_LOAD16_BYTE( "mpr13781.12c", 0x400001, 0x80000, CRC(f33b13af) SHA1(d3eb64dcf12d532454bf3cd6c86528c0f11ee316) ) - ROM_LOAD16_BYTE( "mpr13789.12a", 0x400000, 0x80000, CRC(09ba8835) SHA1(72e83dd1793a7f4b2b881e71f262493e3d4992b3) ) - /* extra gfx roms??*/ - ROM_LOAD16_BYTE( "epr13782.c13", 0x600001, 0x40000, CRC(73790852) SHA1(891345cb8ce4b04bd293ee9bac9b1b9940d6bcb2) ) - ROM_LOAD16_BYTE( "epr13790.a13", 0x600000, 0x40000, CRC(23849101) SHA1(1aeb0fefb6688dfd841bd7d0b17ffdfce69f1dd9) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - /* another copy in different set is epr-13778.b7 - 9c54c038 */ - ROM_LOAD( "epr13778.c7", 0x010000, 0x20000, CRC(35e86146) SHA1(9be82165dc12d5f32ef26f37ea02b29e3621893f) ) - ROM_LOAD( "epr13777.c6", 0x090000, 0x80000, CRC(d1524782) SHA1(121c5804927ed686ea50d5d81d0226e041f50f6f) ) - ROM_LOAD( "epr13776.c5", 0x110000, 0x80000, CRC(282ac9fe) SHA1(4f54d93779c35c036d7c85fce6736df80f3bbe33) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - D.D. Crew, Sega System 18 - CPU: FD1094 (317-0190) - ROM Board: 171-5873B -*/ -ROM_START( ddcrew ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr14160.a4", 0x000000, 0x40000, CRC(b9f897b7) SHA1(65cee6c8006f328eee648e144e11fa60b1433ff5) ) - ROM_LOAD16_BYTE( "epr14161.a6", 0x000001, 0x40000, CRC(bb03c1f0) SHA1(9e7fbd2cda448992c6cbf4b96078b57305def097) ) - ROM_LOAD16_BYTE( "mpr-14139.5a", 0x200000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) ) - ROM_LOAD16_BYTE( "mpr-14141.7a", 0x200001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0190.key", 0x0000, 0x2000, CRC(2d502b11) SHA1(c4e94da59b0e15a5a302ebe88988d1657e7e9814 ) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) ) - ROM_LOAD( "epr-14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) ) - ROM_LOAD( "epr-14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr-14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) ) - ROM_LOAD16_BYTE( "mpr-14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) ) - ROM_LOAD16_BYTE( "mpr-14135.11c", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) ) - ROM_LOAD16_BYTE( "mpr-14143.11a", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) ) - ROM_LOAD16_BYTE( "mpr-14136.12c", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) ) - ROM_LOAD16_BYTE( "mpr-14144.12a", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) ) - ROM_LOAD16_BYTE( "epr-14137.13c", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) ) - ROM_LOAD16_BYTE( "epr-14145.13a", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr-14133.7c", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) ) - ROM_LOAD( "mpr-14132.6c", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) ) - ROM_LOAD( "mpr-14131.5c", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) ) - ROM_LOAD( "epr-14130.4c", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) ) -ROM_END - -/************************************************************************************************************************** - D.D. Crew, Sega System 18 - CPU: FD1094 (317-0186) - ROM Board: 171-5873B -*/ -ROM_START( ddcrewu ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "14152.4a", 0x000000, 0x40000, CRC(69c7b571) SHA1(9fe4815a1cff0a46a754a6bdee12abaf7beb6501) ) - ROM_LOAD16_BYTE( "14153.6a", 0x000001, 0x40000, CRC(e01fae0c) SHA1(7166f955324f73e94d8ae6d2a5b2f4b497e62933) ) - ROM_LOAD16_BYTE( "mpr-14139.5a", 0x200000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) ) - ROM_LOAD16_BYTE( "mpr-14141.7a", 0x200001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0186.key", 0x0000, 0x2000, CRC(7acaf1fd) SHA1(236d6382072adda8f7907d98d428fcca36700fa0) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) ) - ROM_LOAD( "epr-14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) ) - ROM_LOAD( "epr-14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr-14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) ) - ROM_LOAD16_BYTE( "mpr-14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) ) - ROM_LOAD16_BYTE( "mpr-14135.11c", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) ) - ROM_LOAD16_BYTE( "mpr-14143.11a", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) ) - ROM_LOAD16_BYTE( "mpr-14136.12c", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) ) - ROM_LOAD16_BYTE( "mpr-14144.12a", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) ) - ROM_LOAD16_BYTE( "epr-14137.13c", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) ) - ROM_LOAD16_BYTE( "epr-14145.13a", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr-14133.7c", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) ) - ROM_LOAD( "mpr-14132.6c", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) ) - ROM_LOAD( "mpr-14131.5c", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) ) - ROM_LOAD( "epr-14130.4c", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) ) -ROM_END - -/************************************************************************************************************************** - D.D. Crew, Sega System 18 - CPU: FD1094 (317-0184) - ROM Board: 171-5873B -*/ -ROM_START( ddcrew2 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr14148.a4", 0x000000, 0x40000, CRC(df4cb0cf) SHA1(153993997e9ceb06a9d4c73794ea66d0c585a291) ) - ROM_LOAD16_BYTE( "epr14149.a6", 0x000001, 0x40000, CRC(380ff818) SHA1(7c7dd7aa825665f1a9aaebb5af4ecf5dd109b0ca) ) - ROM_LOAD16_BYTE( "mpr-14139.5a", 0x200000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) ) - ROM_LOAD16_BYTE( "mpr-14141.7a", 0x200001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0184.key", 0x0000, 0x2000, CRC(cee06254) SHA1(d64903055fdefb49c584cbcd84f0d4fa811bd789) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) ) - ROM_LOAD( "epr-14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) ) - ROM_LOAD( "epr-14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr-14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) ) - ROM_LOAD16_BYTE( "mpr-14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) ) - ROM_LOAD16_BYTE( "mpr-14135.11c", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) ) - ROM_LOAD16_BYTE( "mpr-14143.11a", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) ) - ROM_LOAD16_BYTE( "mpr-14136.12c", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) ) - ROM_LOAD16_BYTE( "mpr-14144.12a", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) ) - ROM_LOAD16_BYTE( "epr-14137.13c", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) ) - ROM_LOAD16_BYTE( "epr-14145.13a", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr-14133.7c", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) ) - ROM_LOAD( "mpr-14132.6c", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) ) - ROM_LOAD( "mpr-14131.5c", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) ) - ROM_LOAD( "epr-14130.4c", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) ) -ROM_END - -/************************************************************************************************************************** - D.D. Crew, Sega System 18 - CPU: FD1094 (317-????) - ROM Board: 171-5873B -*/ -ROM_START( ddcrew1 ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr14138.a4", 0x000000, 0x40000, CRC(9a0dadf0) SHA1(b55c8cdd3158607ec8203bfebc9e7aba24d6d565) ) - ROM_LOAD16_BYTE( "epr14140.a6", 0x000001, 0x40000, CRC(e74362f4) SHA1(a6f96d714baeb826221b712b996e99831cf25abf) ) - ROM_LOAD16_BYTE( "mpr-14139.5a", 0x200000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) ) - ROM_LOAD16_BYTE( "mpr-14141.7a", 0x200001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-unknown_ddcrewa.key", 0x0000, 0x2000, CRC(1dfb60be) SHA1(7bd42a2e54fca574076e5ed164ab4e0cbb645a4f) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) ) - ROM_LOAD( "epr-14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) ) - ROM_LOAD( "epr-14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr-14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) ) - ROM_LOAD16_BYTE( "mpr-14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) ) - ROM_LOAD16_BYTE( "mpr-14135.11c", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) ) - ROM_LOAD16_BYTE( "mpr-14143.11a", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) ) - ROM_LOAD16_BYTE( "mpr-14136.12c", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) ) - ROM_LOAD16_BYTE( "mpr-14144.12a", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) ) - ROM_LOAD16_BYTE( "epr-14137.13c", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) ) - ROM_LOAD16_BYTE( "epr-14145.13a", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr-14133.7c", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) ) - ROM_LOAD( "mpr-14132.6c", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) ) - ROM_LOAD( "mpr-14131.5c", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) ) - ROM_LOAD( "epr-14130.4c", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) ) -ROM_END - -/************************************************************************************************************************** - D.D. Crew, Sega System 18 - CPU: FD1094 (317-0182) - ROM Board: 171-5987A -*/ -ROM_START( ddcrewj ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-14138.a4", 0x000000, 0x40000, CRC(df280b1b) SHA1(581e8b6cbf3231d772de6b0e26b94541931215fd) ) - ROM_LOAD16_BYTE( "epr-14140.a6", 0x000001, 0x40000, CRC(48f223ee) SHA1(5192b92d081829d2a4fcf2258675b24c94cfb4e5) ) - ROM_LOAD16_BYTE( "mpr-14139.5a", 0x200000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) ) - ROM_LOAD16_BYTE( "mpr-14141.7a", 0x200001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0182.key", 0x0000, 0x2000, CRC(2e8a3601) SHA1(8b6e10babfd2398c1669ba6bf9aad61cd02f23ba) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-14127.1c", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) ) - ROM_LOAD( "epr-14128.2c", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) ) - ROM_LOAD( "epr-14129.3c", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr-14134.10c", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) ) - ROM_LOAD16_BYTE( "mpr-14142.10a", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) ) - ROM_LOAD16_BYTE( "mpr-14135.11c", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) ) - ROM_LOAD16_BYTE( "mpr-14143.11a", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) ) - ROM_LOAD16_BYTE( "mpr-14136.12c", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) ) - ROM_LOAD16_BYTE( "mpr-14144.12a", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) ) - ROM_LOAD16_BYTE( "epr-14137.13c", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) ) - ROM_LOAD16_BYTE( "epr-14145.13a", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr-14133.7c", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) ) - ROM_LOAD( "mpr-14132.6c", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) ) - ROM_LOAD( "mpr-14131.5c", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) ) - ROM_LOAD( "epr-14130.4c", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Desert Breaker, Sega System 18 - - game No. 833-8830-02 - pcb No. 837-8832-02 (171-5873-02b) - rom No. 834-8831-02 (171-5987a) - CPU Hiatchi FD1094 317-0196 -*/ -ROM_START( desertbr ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code - custom CPU 317-0196 */ - ROM_LOAD16_BYTE( "epr14802.a4", 0x000000, 0x80000, CRC(9ab93cbc) SHA1(a8d0013e17519c26c6ba7d28ec73e22ea5bde0e9) ) - ROM_LOAD16_BYTE( "epr14902.a6", 0x000001, 0x80000, CRC(6724e7b1) SHA1(540c8bb7e848488dead81ca58f3bece45a87e611) ) - ROM_LOAD16_BYTE( "epr14793.a5", 0x200000, 0x80000, CRC(dc9d7af3) SHA1(1fc1fedc1a4beed94cece268d0bb4bf62eeb407c) ) - ROM_LOAD16_BYTE( "epr14795.a7", 0x200001, 0x80000, CRC(7e5bf7d9) SHA1(32ac68ee423a34e0f1bedc8765e03f40e01c3af1) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0196.key", 0x0000, 0x2000, CRC(cb942262) SHA1(7ad7cd3df887c6e6435d74784cb12ce016acd0da) ) - - ROM_REGION( 0x300000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr14781.b1", 0x000000, 0x100000, CRC(c4f7d7aa) SHA1(3c69dd7a26efccd7111ef33dfa6e8b738095c0bf) ) - ROM_LOAD( "epr14782.b2", 0x100000, 0x100000, CRC(ccc98d05) SHA1(b89594bbfff45e3b4fe433aeeaf8b4073c2cabb5) ) - ROM_LOAD( "epr14783.b3", 0x200000, 0x100000, CRC(ef202bec) SHA1(b557092f8a3e1c9889d34588344c6dd2c6f06731) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr14788.b10", 0x000001, 0x100000, CRC(b5b05536) SHA1(f8fde7ebca38c0a6f6a864c17771aa155e6fc30d) ) - ROM_LOAD16_BYTE( "epr14796.a10", 0x000000, 0x100000, CRC(c033220a) SHA1(279d3ef62b41d2c6a18ce1217a549402a874638b) ) - ROM_LOAD16_BYTE( "epr14789.b11", 0x200001, 0x100000, CRC(0f9bcb97) SHA1(c15ab3ece596c54e1c4d8e8a755473609334e8ba) ) - ROM_LOAD16_BYTE( "epr14797.a11", 0x200000, 0x100000, CRC(4c301cc9) SHA1(8aea8af0b078b81d1054331b273568b1b903531b) ) - ROM_LOAD16_BYTE( "epr14790.b12", 0x400001, 0x100000, CRC(6a07ac27) SHA1(0558b662c7965c5b74cbc552423194a8facbc092) ) - ROM_LOAD16_BYTE( "epr14798.a12", 0x400000, 0x100000, CRC(50634625) SHA1(f4baaebdb1f850e92ca865e103fbca68cdb0de0f) ) - ROM_LOAD16_BYTE( "epr14791.b13", 0x600001, 0x100000, CRC(a4ae352b) SHA1(dc814e1c2e167e191cd43fa554ff8ee974d47152) ) - ROM_LOAD16_BYTE( "epr14799.a13", 0x600000, 0x100000, CRC(aeb7b025) SHA1(9ce2a9a46176a110c8d2e77deb3d8b9b69b902fa) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr14787.b7", 0x010000, 0x40000, CRC(cc6feec7) SHA1(31cc243178b98681a52500a485d74ed9e1274888) ) - ROM_LOAD( "epr14786.c6", 0x090000, 0x80000, CRC(cc8349f2) SHA1(9f00d8ea372b70ba44a90dab497deadcc5be3dab) ) - ROM_LOAD( "epr14785.c5", 0x110000, 0x80000, CRC(7babba13) SHA1(190cd9ea0f73272e0df34bbdfd8e0035f9e9b0b0) ) - ROM_LOAD( "epr14784.c4", 0x190000, 0x80000, CRC(073878e4) SHA1(eff08080d06a16fccf4876e42b389fef599cceba) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Laser Ghost, Sega System 18 - CPU: FD1094 (317-0166) - ROM Board: 171-5873B -*/ -ROM_START( lghost ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13429.4a", 0x000000, 0x40000, CRC(09bd65c0) SHA1(f2b332a86d52af3c5270f668bdd43a0d44eca346) ) - ROM_LOAD16_BYTE( "epr13430.6a", 0x000001, 0x40000, CRC(51009fe0) SHA1(f1e6e3714c01c15c0e932470a9e1a17abb59e958) ) - ROM_LOAD16_BYTE( "epr13411.5a", 0x200000, 0x40000, CRC(5160167b) SHA1(3d176a18c7527b1e485f10b144bb4db1b945e709) ) - ROM_LOAD16_BYTE( "epr13413.7a", 0x200001, 0x40000, CRC(656b3bd8) SHA1(db81d4ae3138308dce1e3db7a859f1d63c4ff815) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0166.key", 0x0000, 0x2000, CRC(8379961f) SHA1(44e0662e92ece65ad2049b2cd804f516e631166e) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13414.1c", 0x00000, 0x40000, CRC(dada2419) SHA1(f6ffd02d75232a09ea83fd199e5e30b2773b0cf5) ) - ROM_LOAD( "epr13415.2c", 0x40000, 0x40000, CRC(bbb62c48) SHA1(7a4c5bd11b73a92deece72b55627f48ac167acd6) ) - ROM_LOAD( "epr13416.3c", 0x80000, 0x40000, CRC(1d11dbae) SHA1(331aa49c6b38d32ec33184dbd0851888463ddbc7) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr13603.10a", 0x000000, 0x80000, CRC(5350a94e) SHA1(47e99803cab4b508feb51069c940d6c824d6961d) ) - ROM_LOAD16_BYTE( "epr13604.10c", 0x000001, 0x80000, CRC(4009c8e5) SHA1(97f513d312f4c90f8bffdf797afa3749779989a5) ) - ROM_LOAD16_BYTE( "epr13421.11a", 0x200000, 0x80000, CRC(2fc75890) SHA1(9f97f07dba3b978df8eb357894168ad74f151d30) ) - ROM_LOAD16_BYTE( "mpr13424.11c", 0x200001, 0x80000, CRC(fb98d920) SHA1(cebdebe88902e96c631df6053ac2589f794da155) ) - ROM_LOAD16_BYTE( "mpr13422.12a", 0x400000, 0x80000, CRC(48a0754d) SHA1(9fead9f8319593adb4bddaaa4d053b21ca726009) ) - ROM_LOAD16_BYTE( "mpr13425.12c", 0x400001, 0x80000, CRC(f8252589) SHA1(5a1ed24296d0609393e53df3ee585a366da4ee46) ) - ROM_LOAD16_BYTE( "mpr13423.13a", 0x600000, 0x80000, CRC(335bbc9d) SHA1(78793335b2f8a1bb05809259521db193c17c9b98) ) - ROM_LOAD16_BYTE( "mpr13426.13c", 0x600001, 0x80000, CRC(5cfb1e25) SHA1(1dd57475604f339e58bf946e17ae0dc5cf4a3dba) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13417.7c", 0x010000, 0x20000, CRC(cd7beb49) SHA1(2435ce000f1eefdd06b27ea93e22fd82c0e999d2) ) - /* these seem best 3 from the different sized dumps */ - ROM_LOAD( "mpr13420.6c", 0x090000, 0x40000, CRC(3de0dee4) SHA1(31833684df5a34d5e9ef04f2ab42355b8e9cbb45) ) - ROM_LOAD( "mpr13419.5c", 0x110000, 0x40000, CRC(e7021b0a) SHA1(82e390fac63965d4f80ae01758c19ae951c39475) ) - ROM_LOAD( "mpr13418.4c", 0x190000, 0x40000, CRC(0732594d) SHA1(9fbeae29f1a31d136ddc9a49c786b2a08a523e0d) ) -ROM_END - -/************************************************************************************************************************** - Laser Ghost, Sega System 18 - CPU: FD1094 (317-0165) - ROM Board: 171-5873B -*/ -ROM_START( lghostu ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13427.4a", 0x000000, 0x40000, CRC(5bf8fb6b) SHA1(587bbf45b5e470da7d9166b2cbf4ac58a1f2a825) ) - ROM_LOAD16_BYTE( "epr13428.6a", 0x000001, 0x40000, CRC(276775f5) SHA1(5dd5dabe7e9311b3520d0405dda0c983e9bc4ba2) ) - ROM_LOAD16_BYTE( "epr13411.5a", 0x200000, 0x40000, CRC(5160167b) SHA1(3d176a18c7527b1e485f10b144bb4db1b945e709) ) - ROM_LOAD16_BYTE( "epr13413.7a", 0x200001, 0x40000, CRC(656b3bd8) SHA1(db81d4ae3138308dce1e3db7a859f1d63c4ff815) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0165.key", 0x0000, 0x2000, CRC(a04267ab) SHA1(688ee59dfaaf240e23de4cada648689d1717ab04) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13414.1c", 0x00000, 0x40000, CRC(dada2419) SHA1(f6ffd02d75232a09ea83fd199e5e30b2773b0cf5) ) - ROM_LOAD( "epr13415.2c", 0x40000, 0x40000, CRC(bbb62c48) SHA1(7a4c5bd11b73a92deece72b55627f48ac167acd6) ) - ROM_LOAD( "epr13416.3c", 0x80000, 0x40000, CRC(1d11dbae) SHA1(331aa49c6b38d32ec33184dbd0851888463ddbc7) ) - - ROM_REGION16_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr13603.10a", 0x000000, 0x80000, CRC(5350a94e) SHA1(47e99803cab4b508feb51069c940d6c824d6961d) ) - ROM_LOAD16_BYTE( "epr13604.10c", 0x000001, 0x80000, CRC(4009c8e5) SHA1(97f513d312f4c90f8bffdf797afa3749779989a5) ) - ROM_LOAD16_BYTE( "epr13421.11a", 0x200000, 0x80000, CRC(2fc75890) SHA1(9f97f07dba3b978df8eb357894168ad74f151d30) ) - ROM_LOAD16_BYTE( "mpr13424.11c", 0x200001, 0x80000, CRC(fb98d920) SHA1(cebdebe88902e96c631df6053ac2589f794da155) ) - ROM_LOAD16_BYTE( "mpr13422.12a", 0x400000, 0x80000, CRC(48a0754d) SHA1(9fead9f8319593adb4bddaaa4d053b21ca726009) ) - ROM_LOAD16_BYTE( "mpr13425.12c", 0x400001, 0x80000, CRC(f8252589) SHA1(5a1ed24296d0609393e53df3ee585a366da4ee46) ) - ROM_LOAD16_BYTE( "mpr13423.13a", 0x600000, 0x80000, CRC(335bbc9d) SHA1(78793335b2f8a1bb05809259521db193c17c9b98) ) - ROM_LOAD16_BYTE( "mpr13426.13c", 0x600001, 0x80000, CRC(5cfb1e25) SHA1(1dd57475604f339e58bf946e17ae0dc5cf4a3dba) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13417.7c", 0x010000, 0x20000, CRC(cd7beb49) SHA1(2435ce000f1eefdd06b27ea93e22fd82c0e999d2) ) - /* these seem best 3 from the different sized dumps */ - ROM_LOAD( "mpr13420.6c", 0x090000, 0x40000, CRC(3de0dee4) SHA1(31833684df5a34d5e9ef04f2ab42355b8e9cbb45) ) - ROM_LOAD( "mpr13419.5c", 0x110000, 0x40000, CRC(e7021b0a) SHA1(82e390fac63965d4f80ae01758c19ae951c39475) ) - ROM_LOAD( "mpr13418.4c", 0x190000, 0x40000, CRC(0732594d) SHA1(9fbeae29f1a31d136ddc9a49c786b2a08a523e0d) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Moonwalker, Sega System 18 - CPU: FD1094 (317-0159) - ROM Board: 171-5873B -*/ -ROM_START( mwalk ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code - custom cpu 317-0159 */ - ROM_LOAD16_BYTE( "epr13235.a6", 0x000000, 0x40000, CRC(6983e129) SHA1(a8dd430620ab8ce11df46aa208d762d47f510464) ) - ROM_LOAD16_BYTE( "epr13234.a5", 0x000001, 0x40000, CRC(c9fd20f2) SHA1(9476e6481e6d8f223acd52f543fa04f408d48dc3) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0159.key", 0x0000, 0x2000, CRC(507838f0) SHA1(0c92d313da40b5dec7398c05b57698de6153b4b0) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) ) - ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) ) - ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) ) - ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) ) - ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) ) - ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) ) - ROM_LOAD16_BYTE( "mpr13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) ) - ROM_LOAD16_BYTE( "mpr13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) ) - ROM_LOAD16_BYTE( "epr13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) ) - ROM_LOAD16_BYTE( "epr13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) ) - ROM_LOAD( "mpr13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) ) - ROM_LOAD( "mpr13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) ) - ROM_LOAD( "mpr13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* protection MCU */ - ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) ) -ROM_END - -/************************************************************************************************************************** - Moonwalker, Sega System 18 - CPU: FD1094 (317-0158) - ROM Board: 171-5873B -*/ -ROM_START( mwalku ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code - custom cpu 317-0158 */ - ROM_LOAD16_BYTE( "epr13233.a6", 0x000000, 0x40000, CRC(f3dac671) SHA1(cd9d372c7e272d2371bc1f9fb0167831c804423f) ) - ROM_LOAD16_BYTE( "epr13232.a5", 0x000001, 0x40000, CRC(541d8bdf) SHA1(6a99153fddca246ba070e93c4bacd145f15f76bf) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0158.key", 0x0000, 0x2000, CRC(db6059e2) SHA1(f93aaa63e38381be8efc2a2dd00d1781abf788f4) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) ) - ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) ) - ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) ) - ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) ) - ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) ) - ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) ) - ROM_LOAD16_BYTE( "mpr13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) ) - ROM_LOAD16_BYTE( "mpr13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) ) - ROM_LOAD16_BYTE( "epr13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) ) - ROM_LOAD16_BYTE( "epr13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) ) - ROM_LOAD( "mpr13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) ) - ROM_LOAD( "mpr13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) ) - ROM_LOAD( "mpr13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* protection MCU */ - ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) ) -ROM_END - -/************************************************************************************************************************** - Moonwalker, Sega System 18 - CPU: FD1094 (317-0157) - ROM Board: 171-5873B -*/ -ROM_START( mwalkj ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code - custom cpu 317-0157 */ - ROM_LOAD16_BYTE( "epr13227.a6", 0x000000, 0x40000, CRC(6c0534b3) SHA1(23f35d1a15275cbc4b6d2f81f5634abac3832282) ) - ROM_LOAD16_BYTE( "epr13226.a5", 0x000001, 0x40000, CRC(99765854) SHA1(c00776c676b77fed4e94bb02f52f905c845ee73c) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0157.key", 0x0000, 0x2000, CRC(324d6931) SHA1(f8f4530a75aeeace1c8456da37118975c5c43316) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) ) - ROM_LOAD( "mpr13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) ) - ROM_LOAD( "mpr13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) ) - ROM_LOAD16_BYTE( "mpr13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) ) - ROM_LOAD16_BYTE( "mpr13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) ) - ROM_LOAD16_BYTE( "mpr13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) ) - ROM_LOAD16_BYTE( "mpr13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) ) - ROM_LOAD16_BYTE( "mpr13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) ) - ROM_LOAD16_BYTE( "epr13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) ) - ROM_LOAD16_BYTE( "epr13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) ) - ROM_LOAD( "mpr13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) ) - ROM_LOAD( "mpr13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) ) - ROM_LOAD( "mpr13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* protection MCU */ - /* not verified if mcu is the same as the other sets.. */ - ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, BAD_DUMP CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Pontoon, Sega System 18 - CPU: FD1094 317-0153 - ROM Board: 171-5873B -*/ -ROM_START( pontoon ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13175.a6", 0x000000, 0x40000, CRC(a2a5d0f5) SHA1(e22b13f152e0edadeb0f84b4a93ad366201cbae9) ) - ROM_LOAD16_BYTE( "epr13174.a5", 0x000001, 0x40000, CRC(db976b13) SHA1(3970968b21491beb8aac109eeb753b69ca752205) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0153.key", 0x0000, 0x2000, CRC(bcac8c7a) SHA1(1ee9db8f21a55cbfc391af9731d6a1dcf7f2d4c2) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr13097.b1", 0x00000, 0x40000, CRC(6474b245) SHA1(af7db8ac8e74628a8ba61d0860960deeca4a3e3f) ) - ROM_LOAD( "epr13098.b2", 0x40000, 0x40000, CRC(89fc9a9b) SHA1(d98691eb5fef8aca4ad5e416d0a3797d6ca9b012) ) - ROM_LOAD( "epr13099.b3", 0x80000, 0x40000, CRC(790e0ac6) SHA1(a4999b7015ef27d6cbe4f53bc0d7fe05ee40d178) ) - - ROM_REGION16_BE( 0x80000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr13173.b11", 0x000001, 0x40000, CRC(40a0ddfa) SHA1(f3917361f627865d2f1a22791904da056ce8a93a) ) - ROM_LOAD16_BYTE( "epr13176.a11", 0x000000, 0x40000, CRC(1184fbd2) SHA1(685ee2d7c4a0134af13ccf5d15f2e56a6b905195) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr12826a.a4", 0x10000, 0x20000, CRC(d41e2a3f) SHA1(087a6515ebefc3252a1feab5bf7b8a22bff9e379) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Shadow Dancer, Sega System 18 - CPU: 68000 - ROM Board: 171-5873B -*/ -ROM_START( shdancer ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "shdancer.a6", 0x000000, 0x40000, CRC(3d5b3fa9) SHA1(370dd6e8ab9fb9e77eee9262d13fbdb4cf575abc) ) - ROM_LOAD16_BYTE( "shdancer.a5", 0x000001, 0x40000, CRC(2596004e) SHA1(1b993aa74e7559f7e99253fd2144db9449c04cce) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr12712.b1", 0x00000, 0x40000, CRC(9bdabe3d) SHA1(4bb30fa2d4cdefe4a864cef7153b516bc5b02c42) ) - ROM_LOAD( "mpr12713.b2", 0x40000, 0x40000, CRC(852d2b1c) SHA1(8e5bc83d45e48b621ea3016207f2028fe41701e6) ) - ROM_LOAD( "mpr12714.b3", 0x80000, 0x40000, CRC(448226ce) SHA1(3060e4a43311069e2691d659c1e0c1a48edfeedb) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr12719.b11", 0x000001, 0x40000, CRC(d6888534) SHA1(2201f1921a68cf39e5a94b487c90e48d032d630f) ) - ROM_LOAD16_BYTE( "mpr12726.a11", 0x000000, 0x40000, CRC(ff344945) SHA1(2743778c42f53321f9691d60bbf94ea8baf1382f) ) - ROM_LOAD16_BYTE( "mpr12718.b10", 0x080001, 0x40000, CRC(ba2efc0c) SHA1(459a1a280f870c94aefb70127ed007cb090ed203) ) - ROM_LOAD16_BYTE( "mpr12725.a10", 0x080000, 0x40000, CRC(268a0c17) SHA1(2756054fa3c3aed30a1fce5e41acb0ceaebe90b5) ) - ROM_LOAD16_BYTE( "mpr12717.b9", 0x100001, 0x40000, CRC(c81cc4f8) SHA1(22f364e85057ceef533e051c8d0755b9691c5ec4) ) - ROM_LOAD16_BYTE( "mpr12724.a9", 0x100000, 0x40000, CRC(0f4903dc) SHA1(851bd60e877c9e39be23dc1fde91efc9da513c29) ) - ROM_LOAD16_BYTE( "epr12716.b8", 0x180001, 0x40000, CRC(a870e629) SHA1(29f6633240f9737ec19e16100decc7aa045b2060) ) - ROM_LOAD16_BYTE( "epr12723.a8", 0x180000, 0x40000, CRC(c606cf90) SHA1(cb53ae9a6da1eb31c584173d1fbbd1c8539fb54c) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr12720.a4", 0x10000, 0x20000, CRC(7a0d8de1) SHA1(eca5e2104e5b3e772d083a718171234f06ea8a55) ) - ROM_LOAD( "mpr12715.b4", 0x90000, 0x40000, CRC(07051a52) SHA1(d48658497f4a34665d3e051f893ff057c38925ae) ) -ROM_END - -/************************************************************************************************************************** - Shadow Dancer, Sega System 18 - CPU: 68000 - ROM Board: 171-5873B -*/ -ROM_START( shdancej ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr12722b.a6", 0x000000, 0x40000, CRC(c00552a2) SHA1(74fddfe596bc00bc11c4a06e2103417e8fd334f6) ) - ROM_LOAD16_BYTE( "epr12721b.a5", 0x000001, 0x40000, CRC(653d351a) SHA1(1a03a154cb81a5a2f28c38aecdd6b5d107ea7ffa) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr12712.b1", 0x00000, 0x40000, CRC(9bdabe3d) SHA1(4bb30fa2d4cdefe4a864cef7153b516bc5b02c42) ) - ROM_LOAD( "mpr12713.b2", 0x40000, 0x40000, CRC(852d2b1c) SHA1(8e5bc83d45e48b621ea3016207f2028fe41701e6) ) - ROM_LOAD( "mpr12714.b3", 0x80000, 0x40000, CRC(448226ce) SHA1(3060e4a43311069e2691d659c1e0c1a48edfeedb) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr12719.b11", 0x000001, 0x40000, CRC(d6888534) SHA1(2201f1921a68cf39e5a94b487c90e48d032d630f) ) - ROM_LOAD16_BYTE( "mpr12726.a11", 0x000000, 0x40000, CRC(ff344945) SHA1(2743778c42f53321f9691d60bbf94ea8baf1382f) ) - ROM_LOAD16_BYTE( "mpr12718.b10", 0x080001, 0x40000, CRC(ba2efc0c) SHA1(459a1a280f870c94aefb70127ed007cb090ed203) ) - ROM_LOAD16_BYTE( "mpr12725.a10", 0x080000, 0x40000, CRC(268a0c17) SHA1(2756054fa3c3aed30a1fce5e41acb0ceaebe90b5) ) - ROM_LOAD16_BYTE( "mpr12717.b9", 0x100001, 0x40000, CRC(c81cc4f8) SHA1(22f364e85057ceef533e051c8d0755b9691c5ec4) ) - ROM_LOAD16_BYTE( "mpr12724.a9", 0x100000, 0x40000, CRC(0f4903dc) SHA1(851bd60e877c9e39be23dc1fde91efc9da513c29) ) - ROM_LOAD16_BYTE( "epr12716.b8", 0x180001, 0x40000, CRC(a870e629) SHA1(29f6633240f9737ec19e16100decc7aa045b2060) ) - ROM_LOAD16_BYTE( "epr12723.a8", 0x180000, 0x40000, CRC(c606cf90) SHA1(cb53ae9a6da1eb31c584173d1fbbd1c8539fb54c) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr12720.a4", 0x10000, 0x20000, CRC(7a0d8de1) SHA1(eca5e2104e5b3e772d083a718171234f06ea8a55) ) - ROM_LOAD( "mpr12715.b4", 0x90000, 0x40000, CRC(07051a52) SHA1(d48658497f4a34665d3e051f893ff057c38925ae) ) -ROM_END - -/************************************************************************************************************************** - Shadow Dancer, Sega System 18 - CPU: 68000 - ROM Board: 171-5873B -*/ -ROM_START( shdance1 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr12772b.a6", 0x000000, 0x40000, CRC(6868a4d4) SHA1(f0d142c81fe1eba4f5c59a0163e25c80ccfe85d7) ) - ROM_LOAD16_BYTE( "epr12771b.a5", 0x000001, 0x40000, CRC(04e30c84) SHA1(6c5705f7de6ee1bd754b51988cc7d1008f817c78) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr12712.b1", 0x00000, 0x40000, CRC(9bdabe3d) SHA1(4bb30fa2d4cdefe4a864cef7153b516bc5b02c42) ) - ROM_LOAD( "mpr12713.b2", 0x40000, 0x40000, CRC(852d2b1c) SHA1(8e5bc83d45e48b621ea3016207f2028fe41701e6) ) - ROM_LOAD( "mpr12714.b3", 0x80000, 0x40000, CRC(448226ce) SHA1(3060e4a43311069e2691d659c1e0c1a48edfeedb) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr12719.b11", 0x000001, 0x40000, CRC(d6888534) SHA1(2201f1921a68cf39e5a94b487c90e48d032d630f) ) - ROM_LOAD16_BYTE( "mpr12726.a11", 0x000000, 0x40000, CRC(ff344945) SHA1(2743778c42f53321f9691d60bbf94ea8baf1382f) ) - ROM_LOAD16_BYTE( "mpr12718.b10", 0x080001, 0x40000, CRC(ba2efc0c) SHA1(459a1a280f870c94aefb70127ed007cb090ed203) ) - ROM_LOAD16_BYTE( "mpr12725.a10", 0x080000, 0x40000, CRC(268a0c17) SHA1(2756054fa3c3aed30a1fce5e41acb0ceaebe90b5) ) - ROM_LOAD16_BYTE( "mpr12717.b9", 0x100001, 0x40000, CRC(c81cc4f8) SHA1(22f364e85057ceef533e051c8d0755b9691c5ec4) ) - ROM_LOAD16_BYTE( "mpr12724.a9", 0x100000, 0x40000, CRC(0f4903dc) SHA1(851bd60e877c9e39be23dc1fde91efc9da513c29) ) - ROM_LOAD16_BYTE( "epr12716.b8", 0x180001, 0x40000, CRC(a870e629) SHA1(29f6633240f9737ec19e16100decc7aa045b2060) ) - ROM_LOAD16_BYTE( "epr12723.a8", 0x180000, 0x40000, CRC(c606cf90) SHA1(cb53ae9a6da1eb31c584173d1fbbd1c8539fb54c) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr12720.a4", 0x10000, 0x20000, CRC(7a0d8de1) SHA1(eca5e2104e5b3e772d083a718171234f06ea8a55) ) - ROM_LOAD( "mpr12715.b4", 0x90000, 0x40000, CRC(07051a52) SHA1(d48658497f4a34665d3e051f893ff057c38925ae) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Wally wo Sagase! (Where's Wally?), Sega System 18 - CPU: FD1094 317-0197B - ROM Board: 171-5873B -*/ -ROM_START( wwallyj ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code - custom CPU 317-0197 (?) */ - ROM_LOAD16_BYTE( "epr14730b.a4", 0x000000, 0x40000, CRC(e72bc17a) SHA1(ac3b7d86571a6f510c202735134c1bc4809aa26e) ) - ROM_LOAD16_BYTE( "epr14731b.a6", 0x000001, 0x40000, CRC(6e3235b9) SHA1(11d5628644e8301550c36c93e5f137c67c11e735) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0197b.key", 0x0000, 0x2000, CRC(f5b7c5b4) SHA1(be971a2349e7c3adc995581355fea48f5123421c) ) - - ROM_REGION( 0x0c0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr14719.c1", 0x000000, 0x40000, CRC(8b58c743) SHA1(ee50baa184d68558d62d1817b2b9c138226ed25a) ) - ROM_LOAD( "mpr14720.c2", 0x040000, 0x40000, CRC(f96d19f4) SHA1(e350b551db8d01062397cd9a0c952a7b5dbf3fe6) ) - ROM_LOAD( "mpr14721.c3", 0x080000, 0x40000, CRC(c4ced91d) SHA1(4c8a070959ca10e2dddf407ddbba212415d78727) ) - - ROM_REGION16_BE( 0x500000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr14726.c10", 0x000001, 0x100000, CRC(7213d1d3) SHA1(b70346a1dd3aa112bc696a7f4dd9ca908c3e5afa) ) - ROM_LOAD16_BYTE( "mpr14732.a10", 0x000000, 0x100000, CRC(04ced549) SHA1(59fd6510f0e14613d830ac6527f12ccc0b9351a5) ) - ROM_LOAD16_BYTE( "mpr14727.c11", 0x200001, 0x100000, CRC(3b74e0f0) SHA1(40432dbbbf75dae1e5e32b7cc2c4884f5e9e3bf5) ) - ROM_LOAD16_BYTE( "mpr14733.a11", 0x200000, 0x100000, CRC(6da0444f) SHA1(80c32895af19bda3277376fdbd1c163f0ed25665) ) - ROM_LOAD16_BYTE( "mpr14728.c12", 0x400001, 0x080000, CRC(5b921587) SHA1(2779dc658bb7a51f2399af5a6463ccb2dd388e88) ) - ROM_LOAD16_BYTE( "mpr14734.a12", 0x400000, 0x080000, CRC(6f3f5ed9) SHA1(01972c8bd5bfde58715bc0adc7dea73bf6350a26) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr14725.c7", 0x010000, 0x20000, CRC(2b29684f) SHA1(b83962a4f475f9b3e79d4f7ff577b170c4043156) ) - ROM_LOAD( "mpr14724.c6", 0x090000, 0x80000, CRC(47cbea86) SHA1(c70d1fed2912c7c05223ce0bb0941706f957295f) ) - ROM_LOAD( "mpr14723.c5", 0x110000, 0x80000, CRC(bc5adc27) SHA1(09405002b940a3d3eb0f1258f37af51e0b7581b9) ) - ROM_LOAD( "mpr14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) ) -ROM_END - -/************************************************************************************************************************** - Wally wo Sagase! (Where's Wally?), Sega System 18 - CPU: FD1094 317-0197A - ROM Board: 171-5873B -*/ -ROM_START( wwallyja ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 68000 code - custom CPU 317-0197a */ - ROM_LOAD16_BYTE( "epr14730a.a4", 0x000000, 0x40000, CRC(daa7880e) SHA1(9ea83e04c3e07d84afa67097c28b3951c9db8d00) ) - ROM_LOAD16_BYTE( "epr14731a.a6", 0x000001, 0x40000, CRC(5e36353b) SHA1(488c54bbef3c8a129785465887bff3b301e11387) ) - - ROM_REGION( 0x2000, REGION_USER1, 0 ) /* decryption key */ - ROM_LOAD( "317-0197a.key", 0x0000, 0x2000, CRC(2fb6a9a1) SHA1(2649d0905527dbe0dd0ad5cf68c457b4aa5fb32c) ) - - ROM_REGION( 0x0c0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr14719.c1", 0x000000, 0x40000, CRC(8b58c743) SHA1(ee50baa184d68558d62d1817b2b9c138226ed25a) ) - ROM_LOAD( "mpr14720.c2", 0x040000, 0x40000, CRC(f96d19f4) SHA1(e350b551db8d01062397cd9a0c952a7b5dbf3fe6) ) - ROM_LOAD( "mpr14721.c3", 0x080000, 0x40000, CRC(c4ced91d) SHA1(4c8a070959ca10e2dddf407ddbba212415d78727) ) - - ROM_REGION16_BE( 0x500000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr14726.c10", 0x000001, 0x100000, CRC(7213d1d3) SHA1(b70346a1dd3aa112bc696a7f4dd9ca908c3e5afa) ) - ROM_LOAD16_BYTE( "mpr14732.a10", 0x000000, 0x100000, CRC(04ced549) SHA1(59fd6510f0e14613d830ac6527f12ccc0b9351a5) ) - ROM_LOAD16_BYTE( "mpr14727.c11", 0x200001, 0x100000, CRC(3b74e0f0) SHA1(40432dbbbf75dae1e5e32b7cc2c4884f5e9e3bf5) ) - ROM_LOAD16_BYTE( "mpr14733.a11", 0x200000, 0x100000, CRC(6da0444f) SHA1(80c32895af19bda3277376fdbd1c163f0ed25665) ) - ROM_LOAD16_BYTE( "mpr14728.c12", 0x400001, 0x080000, CRC(5b921587) SHA1(2779dc658bb7a51f2399af5a6463ccb2dd388e88) ) - ROM_LOAD16_BYTE( "mpr14734.a12", 0x400000, 0x080000, CRC(6f3f5ed9) SHA1(01972c8bd5bfde58715bc0adc7dea73bf6350a26) ) - - ROM_REGION( 0x210000, REGION_CPU2, ROMREGION_ERASEFF ) /* sound CPU */ - ROM_LOAD( "epr14725.c7", 0x010000, 0x20000, CRC(2b29684f) SHA1(b83962a4f475f9b3e79d4f7ff577b170c4043156) ) - ROM_LOAD( "mpr14724.c6", 0x090000, 0x80000, CRC(47cbea86) SHA1(c70d1fed2912c7c05223ce0bb0941706f957295f) ) - ROM_LOAD( "mpr14723.c5", 0x110000, 0x80000, CRC(bc5adc27) SHA1(09405002b940a3d3eb0f1258f37af51e0b7581b9) ) - ROM_LOAD( "mpr14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) ) -ROM_END - - - -/************************************* - * - * Generic driver initialization - * - *************************************/ - -static DRIVER_INIT( generic_shad ) -{ - system18_generic_init(ROM_BOARD_171_SHADOW); -} - -static DRIVER_INIT( generic_5874 ) -{ - system18_generic_init(ROM_BOARD_171_5874); -} - -static DRIVER_INIT( generic_5987 ) -{ - system18_generic_init(ROM_BOARD_171_5987); -} - - - -/************************************* - * - * Game-specific driver inits - * - *************************************/ - -static DRIVER_INIT( ddcrew ) -{ - init_generic_5987(machine); - custom_io_r = ddcrew_custom_io_r; -} - -static DRIVER_INIT( lghost ) -{ - init_generic_5987(machine); - custom_io_r = lghost_custom_io_r; - custom_io_w = lghost_custom_io_w; -} - -static DRIVER_INIT( wwally ) -{ - init_generic_5987(machine); - custom_io_r = wwally_custom_io_r; - custom_io_w = wwally_custom_io_w; -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1990, astorm, 0, system18, astorm2p, generic_5874, ROT0, "Sega", "Alien Storm (set 4, 2 Players, FD1094 317-?)", GAME_NOT_WORKING ) // not decrypted -GAME( 1990, astorm3, astorm, system18, astorm, generic_5874, ROT0, "Sega", "Alien Storm (set 3, World, 3 Players, FD1094 317-0148)", 0 ) -GAME( 1990, astormu, astorm, system18, astorm, generic_5874, ROT0, "Sega", "Alien Storm (set 2, US, 3 Players, FD1094 317-0147)", 0 ) -GAME( 1990, astormj, astorm, system18, astorm2p, generic_5874, ROT0, "Sega", "Alien Storm (set 1, Japan, 2 Players, FD1094 317-0146)", 0 ) -GAME( 1990, bloxeed, 0, system18, bloxeed, generic_5874, ROT0, "Sega", "Bloxeed (Japan, FD1094 317-0139)", 0 ) -GAME( 1991, cltchitr, 0, system18, cltchitr, generic_5987, ROT0, "Sega", "Clutch Hitter (set 2, US, FD1094 317-0176)", 0 ) -GAME( 1991, cltchtrj, cltchitr, system18, cltchitr, generic_5987, ROT0, "Sega", "Clutch Hitter (set 1, Japan, FD1094 317-0175)", 0 ) -GAME( 1992, desertbr, 0, system18, desertbr, generic_5987, ROT270, "Sega", "Desert Breaker (FD1094 317-0196)", 0 ) -GAME( 1991, ddcrew, 0, system18, ddcrew, ddcrew, ROT0, "Sega", "D. D. Crew (set 4, World, 3 Player, FD1094 317-0190)", 0 ) -GAME( 1991, ddcrewu, ddcrew, system18, ddcrew, ddcrew, ROT0, "Sega", "D. D. Crew (set 3, US, 4 Player, FD1094 317-0186)", 0 ) -GAME( 1991, ddcrew2, ddcrew, system18, ddcrew2p, ddcrew, ROT0, "Sega", "D. D. Crew (set 2, World, 2 Player, FD1094 317-0184)", 0 ) -GAME( 1991, ddcrew1, ddcrew, system18, ddcrew, ddcrew, ROT0, "Sega", "D. D. Crew (set 1, World, 4 Player, FD1094 317-?)", 0 ) -GAME( 1991, ddcrewj, ddcrew, system18, ddcrew2p, ddcrew, ROT0, "Sega", "D. D. Crew (set 5, Japan, 2 Player, FD1094 317-0182)", 0 ) -GAME( 1990, lghost, 0, system18, lghost, lghost, ROT0, "Sega", "Laser Ghost (set 2, World, 317-0166)", 0 ) -GAME( 1990, lghostu, lghost, system18, lghost, lghost, ROT0, "Sega", "Laser Ghost (set 1, US, 317-0165)", 0 ) -GAME( 1990, mwalk, 0, system18_8751, mwalk, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (set 3, World, FD1094/8751 317-0159)", 0 ) -GAME( 1990, mwalku, mwalk, system18_8751, mwalka, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (set 2, US, FD1094/8751 317-0158)", 0 ) -GAME( 1990, mwalkj, mwalk, system18_8751, mwalk, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (set 1, Japan, FD1094/8751 317-0157)", 0 ) -GAME( 1989, pontoon, 0, system18, shdancer, generic_5874, ROT0, "Sega", "Pontoon", GAME_NOT_WORKING ) -GAME( 1989, shdancer, 0, system18, shdancer, generic_shad, ROT0, "Sega", "Shadow Dancer (set 3, US)" , 0 ) -GAME( 1989, shdancej, shdancer, system18, shdancer, generic_shad, ROT0, "Sega", "Shadow Dancer (set 2, Japan)", 0 ) -GAME( 1989, shdance1, shdancer, system18, shdancer, generic_shad, ROT0, "Sega", "Shadow Dancer (set 1)", 0 ) -GAME( 1992, wwallyj, 0, system18, wwally, wwally, ROT0, "Sega", "Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)" , 0) /* the roms do contain an english logo so maybe there is a world / us set too */ -GAME( 1992, wwallyja, wwallyj, system18, wwally, wwally, ROT0, "Sega", "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", 0 ) diff --git a/src/drivers/segas32.c b/src/drivers/segas32.c deleted file mode 100644 index ac6099dea..000000000 --- a/src/drivers/segas32.c +++ /dev/null @@ -1,3821 +0,0 @@ -/*************************************************************************** - - Sega System 32/Multi 32 hardware - -**************************************************************************** - - Still to do: - * fix protection - * fix jpark correctly - -**************************************************************************** - -Title Fight (Export Revision) -Sega, 1992 - -This game runs on Sega System Multi32 hardware. - -PCB Layout ----------- -837-8676 171-6253C (C) SEGA 1992 -834-9324-02 (STICKER) -|-------------------------------------------------------------------------------------------| -| CNF CNH 8464 | -|8464 HM53461ZP-12 (x16) |-----------| HM53461ZP-12 (x16) 8464 | -|8464 | SEGA | 8464 | -|8464 | 315-5386A | 8464 | -|8464 | | | -| | | | -| | | | -| |---------| |---------| |-----------| |---------| |---------| | -| |SEGA | |SEGA | |SEGA | |SEGA | | -| |315-5388 | |315-5387 | HM53461ZP-12 (x8) |315-5388 | |315-5242 | | -| | | | | | | | | | -| | | | | | | | | | -| |---------| |---------| |---------| |---------| | -| CND CNE | -| |---------| MB3771 MB3771 315-5596 |-------| M5M5278P-25| -| |SEGA | |SEGA | | -| |315-5242 | 8464 |315- | M5M5278P-25| -| | |BAT_3.3V |5591 | | -| | |BAT_5.5V |---------| |-------| M5M5278P-25| -| |---------| Z80 50MHz |SEGA | |-----------| DSW1| -| 32MHz |315-5385 | |NEC | M5M5278P-25| -| |------| | | |D70632R-20 | SW4 | -| |SEGA | |-------| | | |9314X9 V70 | 40MHz SW3 | -| |315- | |SEGA | |---------| |(C)NEC 1986| | -| |5560 | YM3438 |315- | | | | -| |------| LC78820 |5296 | |-----------| 93C45 | -|TDA1518 |-------| |-------| | -| SW1 SW2 |SEGA | CNM| -| VOL |315- | | -| |5296 | | -| UPC844 UPC4064 |-------| | -| | -|CNC LED | ---| JAMMA |----| CNJ |----| JAMMA |--| - |------------------------------| |--------------| |------------------------------| -Notes: - V70 CPU running at 20.00MHz [40/2] - Z80 CPU running at 8.000MHz [32/4] - YM3438 running at 8.000MHz [32/4] - 315-5560 running at 8.000MHz [32/4] - CND/E/F/H: Multi-pin connectors for connection of ROM Board - CNC : 4 pin connector for 2nd Speaker for Stereo Output - CNJ : 32 pin connector (purpose unknown) - CNM : 30 pin connector (purpose unknown) - SW1 : push-button TEST switch - SW2 : push button SERVICE switch - SW3/4 : push button switches (purpose unknown) - DSW1 : 4-position DIP Switch - - SEGA Custom ICs: - 315-5596 Lattice GAL16V8A (DIP20) - 315-5386A (QFP184) - 315-5388 (x2, QFP160) - 315-5387 (QFP160) - 315-5242 (x2, custom ceramic DIP32 containing a small QFP IC and some capacitors/resistors etc) - 315-5296 (x2, QFP100) - 315-5560 (QFP80) - 315-5385 (QFP128) - 315-5591 (QFP100) - - -ROM Board ---------- -837-8890 -|-------------------------------------------------------------------------------------------| -| CN3 CN4 | -| | -| IC3 IC14 IC15 IC10 | -| IC1 IC2 JP1-5 | -| | -| IC11 JP6-10 IC22 IC23 IC18 | -| | -| | -| IC36 IC37 | -| 315-5598 IC38 | -| CN5 | -| IC30 IC31 IC39 IC40 | -| CN6 IC41 | -|JP11-16 CN1 CN2 | -|-------------------------------------------------------------------------------------------| - -Notes: -CN1/2/3/4 : Multi-pin connectors (below PCB) for connection of ROM Board to Main Board -CN5 : Custom Sega connector for connection of protection daughterboard (not used) -CN6 : Custom Sega connector (purpose unknown) -315-5598 : Lattice GAL16V8A (DIP20) - -Jumpers: (to configure ROM sizes used on Title Fight. Other games may vary depending on ROM types used.) -JP1: 1-2 -JP2: 1-2 -JP3: 2-3 -JP4: 2-3 -JP5: 2-3 -JP6: 1-2 -JP7: 2-3 -JP8: 2-3 -JP9: 1-2 -JP10: 1-2 -JP11: OPEN -JP12: OPEN -JP13: OPEN -JP14: OPEN -JP15: 1-2 -JP16: 2-3 - -ROM Locations (All known System Multi32 games shown for reference) -------------- -PCB Label CPU P0 CPU P1 CPU D0 CPU D1 SOUND SCR0 SCR1 OBJ0 OBJ1 OBJ2 OBJ3 OBJ4 OBJ5 OBJ6 OBJ7 PCM D0 PCM D1 PCM EP/S -IC# IC37 IC40 IC36 IC39 IC31 IC3 IC11 IC14 IC22 IC15 IC23 IC10 IC18 IC38 IC41 IC1 IC2 IC30 - -IC Type 27C2048 27C2048 - - 27C1000 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 - - -Title Fight EPR15388 EPR15389 - - EPR15384 MPR15381 MPR15382 MPR15379 MPR15380 MPR15375 MPR15376 MPR15371 MPR15372 MPR15373 MPR15374 MPR15385 - - - -IC Type 27C1024 27C1024 27C4200 27C4200 27C040 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 - -OutRunners EPR15618 EPR15619 EPR15538 EPR15539 EPR15550 MPR15548 MPR15549 MPR15540 MPR15541 MPR15542 MPR15543 MPR15544 MPR15545 MPR15546 MPR15547 MPR15551 MPR15552 - - -IC Type 27C2048 27C2048 - - 27C1000 534200 534200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 8316200 - -Hard Dunk EPR16512 EPR16509 - - EPR16505 MPR16503 MPR16504 MPR16495 MPR16496 MPR16497 MPR16498 MPR16499 MPR16500 MPR16501 MPR16502 MPR16506 MPR16507 - -Hard Dunk (J) EPR16508 EPR16509 - - EPR16505 MPR16503 MPR16504 MPR16495 MPR16496 MPR16497 MPR16498 MPR16499 MPR16500 MPR16501 MPR16502 MPR16506 MPR16507 - - -IC Type 27C2048 27C2048 27C4200 27C4200 27C1000 27C160 27C160 27C160 27C160 27C160 27C160 27C160 27C160 27C160 27C160 27C160 27C160 - -Stadium Cross EPR15093 EPR15094 EPR15018 EPR15019 EPR15192 EPR15020 EPR15021 EPR15022 EPR15023 EPR15024 EPR15025 EPR15026 EPR15027 EPR15028 EPR15029 EPR15031 EPR15032 - - - -***************************************************************************/ - -#include "driver.h" -#include "rendlay.h" -#include "segas32.h" -#include "machine/eeprom.h" -#include "sound/2612intf.h" -#include "sound/rf5c68.h" -#include "sound/multipcm.h" - - - -/************************************* - * - * Constants - * - *************************************/ - -#define MASTER_CLOCK 32215900 -#define RFC_CLOCK 50000000 -#define MULTI32_CLOCK 40000000 - -#define TIMER_0_CLOCK ((MASTER_CLOCK/2)/2048) /* confirmed */ -#define TIMER_1_CLOCK ((RFC_CLOCK/16)/256) /* confirmed */ - -#define MAIN_IRQ_VBSTART 0 -#define MAIN_IRQ_VBSTOP 1 -#define MAIN_IRQ_SOUND 2 -#define MAIN_IRQ_TIMER0 3 -#define MAIN_IRQ_TIMER1 4 - -#define SOUND_IRQ_YM3438 0 -#define SOUND_IRQ_V60 1 - - - -/************************************* - * - * Global variables - * - *************************************/ - -UINT8 *ga2_dpram; -UINT16 *system32_workram; -UINT16 *system32_protram; - - - -/************************************* - * - * Statics - * - *************************************/ - -static const UINT8 *system32_default_eeprom; -static UINT8 *z80_shared_ram; - -/* V60 interrupt controller */ -static UINT8 v60_irq_control[0x10]; -static mame_timer *v60_irq_timer[2]; - -/* sound interrupt controller */ -static UINT8 sound_irq_control[4]; -static UINT8 sound_irq_input; -static UINT8 sound_dummy_value; -static UINT16 sound_bank; - -/* I/O chips and custom I/O */ -static UINT8 misc_io_data[2][0x10]; -static read16_handler custom_io_r[2]; -static write16_handler custom_io_w[2]; -static UINT8 analog_bank; -static UINT8 analog_value[4]; -static UINT8 sonic_last[6]; - -static void (*system32_prot_vblank)(void); - - - -/************************************* - * - * Prototypes - * - *************************************/ - -static void signal_v60_irq(int which); -static void signal_sound_irq(int which); - - - -/************************************* - * - * Machine init - * - *************************************/ - -static MACHINE_RESET( system32 ) -{ - /* initialize the interrupt controller */ - memset(v60_irq_control, 0xff, sizeof(v60_irq_control)); - - /* allocate timers */ - v60_irq_timer[0] = timer_alloc(signal_v60_irq); - v60_irq_timer[1] = timer_alloc(signal_v60_irq); - - /* clear IRQ lines */ - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - - - -/************************************* - * - * Interrupt controller - * - *************************************/ - -static void update_irq_state(void) -{ - UINT8 effirq = v60_irq_control[7] & ~v60_irq_control[6] & 0x1f; - int vector; - - /* loop over interrupt vectors, finding the highest priority one with */ - /* an unmasked interrupt pending */ - for (vector = 0; vector < 5; vector++) - if (effirq & (1 << vector)) - { - cpunum_set_input_line_and_vector(0, 0, ASSERT_LINE, vector); - break; - } - - /* if we didn't find any, clear the interrupt line */ - if (vector == 5) - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - - -static void signal_v60_irq(int which) -{ - int i; - - /* see if this interrupt input is mapped to any vectors; if so, mark them */ - for (i = 0; i < 5; i++) - if (v60_irq_control[i] == which) - v60_irq_control[7] |= 1 << i; - update_irq_state(); -} - - -static void int_control_w(int offset, UINT8 data) -{ - int duration; - -// logerror("%06X:int_control_w(%X) = %02X\n", activecpu_get_pc(), offset, data); - switch (offset) - { - case 0: - case 1: - case 2: - case 3: - case 4: /* vectors */ - v60_irq_control[offset] = data; - break; - - case 5: /* unknown */ - v60_irq_control[offset] = data; - break; - - case 6: /* mask */ - v60_irq_control[offset] = data; - update_irq_state(); - break; - - case 7: /* acknowledge */ - v60_irq_control[offset] &= data; - update_irq_state(); - break; - - case 8: - case 9: /* timer 0 count */ - v60_irq_control[offset] = data; - duration = v60_irq_control[8] + ((v60_irq_control[9] << 8) & 0xf00); - if (duration) - timer_adjust(v60_irq_timer[0], TIME_IN_HZ(TIMER_0_CLOCK) * duration, MAIN_IRQ_TIMER0, TIME_NEVER); - break; - - case 10: - case 11: /* timer 1 count */ - v60_irq_control[offset] = data; - duration = v60_irq_control[10] + ((v60_irq_control[11] << 8) & 0xf00); - if (duration) - timer_adjust(v60_irq_timer[1], TIME_IN_HZ(TIMER_1_CLOCK) * duration, MAIN_IRQ_TIMER1, TIME_NEVER); - break; - - case 12: - case 13: - case 14: - case 15: /* signal IRQ to sound CPU */ - signal_sound_irq(SOUND_IRQ_V60); - break; - } -} - - -static READ16_HANDLER( interrupt_control_16_r ) -{ - switch (offset) - { - case 8/2: - /* fix me - should return timer count down value */ - break; - - case 10/2: - /* fix me - should return timer count down value */ - break; - } - - /* return all F's for everything except timer values */ - return 0xffff; -} - - -static WRITE16_HANDLER( interrupt_control_16_w ) -{ - if (ACCESSING_LSB) - int_control_w(offset*2+0, data); - if (ACCESSING_MSB) - int_control_w(offset*2+1, data >> 8); -} - - -static READ32_HANDLER( interrupt_control_32_r ) -{ - switch (offset) - { - case 8/4: - /* fix me - should return timer count down value */ - break; - } - - /* return all F's for everything except timer values */ - return 0xffffffff; -} - - -static WRITE32_HANDLER( interrupt_control_32_w ) -{ - if (!(mem_mask & 0x000000ff)) - int_control_w(offset*4+0, data); - if (!(mem_mask & 0x0000ff00)) - int_control_w(offset*4+1, data >> 8); - if (!(mem_mask & 0x00ff0000)) - int_control_w(offset*4+2, data >> 16); - if (!(mem_mask & 0xff000000)) - int_control_w(offset*4+3, data >> 24); -} - - -static void end_of_vblank_int(int param) -{ - signal_v60_irq(MAIN_IRQ_VBSTOP); - system32_set_vblank(0); -} - - -static INTERRUPT_GEN( start_of_vblank_int ) -{ - signal_v60_irq(MAIN_IRQ_VBSTART); - system32_set_vblank(1); - timer_set(cpu_getscanlinetime(0), 0, end_of_vblank_int); - if (system32_prot_vblank) - (*system32_prot_vblank)(); -} - - - -/************************************* - * - * I/O chip - * - *************************************/ - -static UINT32 eeprom_bit_r(void *param) -{ - return EEPROM_read_bit(); -} - - -static UINT16 common_io_chip_r(int which, offs_t offset, UINT16 mem_mask) -{ - offset &= 0x1f/2; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x06/2: - case 0x08/2: - case 0x0a/2: - case 0x0c/2: - case 0x0e/2: - /* if the port is configured as an output, return the last thing written */ - if (misc_io_data[which][0x1e/2] & (1 << offset)) - return misc_io_data[which][offset]; - - /* otherwise, return an input port */ - return readinputport(which*8 + offset); - - /* 'SEGA' protection */ - case 0x10/2: - return 'S'; - case 0x12/2: - return 'E'; - case 0x14/2: - return 'G'; - case 0x16/2: - return 'A'; - - /* CNT register & mirror */ - case 0x18/2: - case 0x1c/2: - return misc_io_data[which][0x1c/2]; - - /* port direction register & mirror */ - case 0x1a/2: - case 0x1e/2: - return misc_io_data[which][0x1e/2]; - } - return 0xffff; -} - - -static void common_io_chip_w(int which, offs_t offset, UINT16 data, UINT16 mem_mask) -{ - UINT8 old; - - /* only LSB matters */ - if (!ACCESSING_LSB) - return; - - /* generic implementation */ - offset &= 0x1f/2; - old = misc_io_data[which][offset]; - misc_io_data[which][offset] = data; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x08/2: - case 0x0a/2: - case 0x0c/2: - break; - - /* miscellaneous output */ - case 0x06/2: - if (which == 0) - { - EEPROM_write_bit(data & 0x80); - EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); - } -/* coin_lockout_w(1 + 2*which, data & 0x08); - coin_lockout_w(0 + 2*which, data & 0x04);*/ - coin_counter_w(1 + 2*which, data & 0x02); - coin_counter_w(0 + 2*which, data & 0x01); - break; - - /* tile banking */ - case 0x0e/2: - if (which == 0) - system32_tilebank_external = data; - else - { - /* multi-32 EEPROM access */ - EEPROM_write_bit(data & 0x80); - EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE); - EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE); - } - break; - - /* CNT register */ - case 0x1c/2: - system32_displayenable[which] = (data & 0x02); - if (which == 0) - cpunum_set_input_line(1, INPUT_LINE_RESET, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - break; - } -} - - -static READ16_HANDLER( io_chip_r ) -{ - return common_io_chip_r(0, offset, mem_mask); -} - - -static WRITE16_HANDLER( io_chip_w ) -{ - common_io_chip_w(0, offset, data, mem_mask); -} - - -static READ32_HANDLER( io_chip_0_r ) -{ - return common_io_chip_r(0, offset*2+0, mem_mask) | - (common_io_chip_r(0, offset*2+1, mem_mask >> 16) << 16); -} - - -static WRITE32_HANDLER( io_chip_0_w ) -{ - if ((mem_mask & 0x0000ffff) != 0x0000ffff) - common_io_chip_w(0, offset*2+0, data, mem_mask); - if ((mem_mask & 0xffff0000) != 0xffff0000) - common_io_chip_w(0, offset*2+1, data >> 16, mem_mask >> 16); -} - - -static READ32_HANDLER( io_chip_1_r ) -{ - return common_io_chip_r(1, offset*2+0, mem_mask) | - (common_io_chip_r(1, offset*2+1, mem_mask >> 16) << 16); -} - - -static WRITE32_HANDLER( io_chip_1_w ) -{ - if ((mem_mask & 0x0000ffff) != 0x0000ffff) - common_io_chip_w(1, offset*2+0, data, mem_mask); - if ((mem_mask & 0xffff0000) != 0xffff0000) - common_io_chip_w(1, offset*2+1, data >> 16, mem_mask >> 16); -} - - - -/************************************* - * - * I/O expansion range - * - *************************************/ - -static READ16_HANDLER( io_expansion_r ) -{ - if (custom_io_r[0]) - return (*custom_io_r[0])(offset, mem_mask); - else - logerror("%06X:io_expansion_r(%X)\n", activecpu_get_pc(), offset); - return 0xffff; -} - - -static WRITE16_HANDLER( io_expansion_w ) -{ - /* only LSB matters */ - if (!ACCESSING_LSB) - return; - - if (custom_io_w[0]) - (*custom_io_w[0])(offset, data, mem_mask); - else - logerror("%06X:io_expansion_w(%X) = %02X\n", activecpu_get_pc(), offset, data & 0xff); -} - - -static READ32_HANDLER( io_expansion_0_r ) -{ - if (custom_io_r[0]) - return (*custom_io_r[0])(offset*2+0, mem_mask) | - ((*custom_io_r[0])(offset*2+1, mem_mask >> 16) << 16); - else - logerror("%06X:io_expansion_r(%X)\n", activecpu_get_pc(), offset); - return 0xffffffff; -} - - -static WRITE32_HANDLER( io_expansion_0_w ) -{ - /* only LSB matters */ - if ((mem_mask & 0x000000ff) != 0x000000ff) - { - if (custom_io_w[0]) - (*custom_io_w[0])(offset*2+0, data, mem_mask); - else - logerror("%06X:io_expansion_w(%X) = %02X\n", activecpu_get_pc(), offset, data & 0xff); - } - if ((mem_mask & 0x00ff0000) != 0x00ff0000) - { - if (custom_io_w[0]) - (*custom_io_w[0])(offset*2+1, data >> 16, mem_mask >> 16); - else - logerror("%06X:io_expansion_w(%X) = %02X\n", activecpu_get_pc(), offset, data & 0xff); - } -} - - -static READ32_HANDLER( io_expansion_1_r ) -{ - if (custom_io_r[1]) - return (*custom_io_r[1])(offset*2+0, mem_mask) | - ((*custom_io_r[1])(offset*2+1, mem_mask >> 16) << 16); - else - logerror("%06X:io_expansion_r(%X)\n", activecpu_get_pc(), offset); - return 0xffffffff; -} - - -static WRITE32_HANDLER( io_expansion_1_w ) -{ - /* only LSB matters */ - if ((mem_mask & 0x000000ff) != 0x000000ff) - { - if (custom_io_w[1]) - (*custom_io_w[1])(offset*2+0, data, mem_mask); - else - logerror("%06X:io_expansion_w(%X) = %02X\n", activecpu_get_pc(), offset, data & 0xff); - } - if ((mem_mask & 0x00ff0000) != 0x00ff0000) - { - if (custom_io_w[1]) - (*custom_io_w[1])(offset*2+1, data >> 16, mem_mask >> 16); - else - logerror("%06X:io_expansion_w(%X) = %02X\n", activecpu_get_pc(), offset, data & 0xff); - } -} - - - -/************************************* - * - * Game-specific custom I/O - * - *************************************/ - -static READ16_HANDLER( analog_custom_io_r ) -{ - UINT16 result; - switch (offset) - { - case 0x10/2: - case 0x12/2: - case 0x14/2: - case 0x16/2: - result = analog_value[offset & 3] | 0x7f; - analog_value[offset & 3] <<= 1; - return result; - } - logerror("%06X:unknown analog_custom_io_r(%X) & %04X\n", activecpu_get_pc(), offset*2, mem_mask ^ 0xffff); - return 0xffff; -} - - -static WRITE16_HANDLER( analog_custom_io_w ) -{ - static const char *names[] = { "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4" }; - switch (offset) - { - case 0x10/2: - case 0x12/2: - case 0x14/2: - case 0x16/2: - analog_value[offset & 3] = readinputportbytag_safe(names[offset & 3], 0); - return; - } - logerror("%06X:unknown analog_custom_io_w(%X) = %04X & %04X\n", activecpu_get_pc(), offset*2, data, mem_mask ^ 0xffff); -} - - -static READ16_HANDLER( extra_custom_io_r ) -{ - static const char *names[] = { "EXTRA1", "EXTRA2", "EXTRA3", "EXTRA4" }; - switch (offset) - { - case 0x20/2: - case 0x22/2: - case 0x24/2: - case 0x26/2: - return readinputportbytag_safe(names[offset & 3], 0xffff); - } - - logerror("%06X:unknown extra_custom_io_r(%X) & %04X\n", activecpu_get_pc(), offset*2, mem_mask ^ 0xffff); - return 0xffff; -} - - -static WRITE16_HANDLER( orunners_custom_io_w ) -{ - static const char *names[] = { "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4", "ANALOG5", "ANALOG6", "ANALOG7", "ANALOG8" }; - switch (offset) - { - case 0x10/2: - case 0x12/2: - case 0x14/2: - case 0x16/2: - analog_value[offset & 3] = readinputportbytag_safe(names[analog_bank * 4 + (offset & 3)], 0); - return; - - case 0x20/2: - analog_bank = data & 1; - return; - } - logerror("%06X:unknown orunners_custom_io_w(%X) = %04X & %04X\n", activecpu_get_pc(), offset*2, data, mem_mask ^ 0xffff); -} - - -static READ16_HANDLER( sonic_custom_io_r ) -{ - static const char *names[] = { "TRACKX1", "TRACKY1", "TRACKX2", "TRACKY2", "TRACKX3", "TRACKY3" }; - - switch (offset) - { - case 0x00/2: - case 0x04/2: - case 0x08/2: - case 0x0c/2: - case 0x10/2: - case 0x14/2: - return (UINT8)(readinputportbytag(names[offset/2]) - sonic_last[offset/2]); - } - - logerror("%06X:unknown sonic_custom_io_r(%X) & %04X\n", activecpu_get_pc(), offset*2, mem_mask ^ 0xffff); - return 0xffff; -} - - -static WRITE16_HANDLER( sonic_custom_io_w ) -{ - static const char *names[] = { "TRACKX1", "TRACKY1", "TRACKX2", "TRACKY2", "TRACKX3", "TRACKY3" }; - - switch (offset) - { - case 0x00/2: - case 0x08/2: - case 0x10/2: - sonic_last[offset/2 + 0] = readinputportbytag(names[offset/2 + 0]); - sonic_last[offset/2 + 1] = readinputportbytag(names[offset/2 + 1]); - return; - } - - logerror("%06X:unknown sonic_custom_io_w(%X) = %04X & %04X\n", activecpu_get_pc(), offset*2, data, mem_mask ^ 0xffff); -} - - - -/************************************* - * - * Random number generator - * - *************************************/ - -static WRITE16_HANDLER( random_number_16_w ) -{ -// mame_printf_debug("%06X:random_seed_w(%04X) = %04X & %04X\n", activecpu_get_pc(), offset*2, data, mem_mask ^ 0xffff); -} - -static READ16_HANDLER( random_number_16_r ) -{ - return mame_rand(Machine); -} - -static WRITE32_HANDLER( random_number_32_w ) -{ -// mame_printf_debug("%06X:random_seed_w(%04X) = %04X & %04X\n", activecpu_get_pc(), offset*2, data, mem_mask ^ 0xffff); -} - -static READ32_HANDLER( random_number_32_r ) -{ - return mame_rand(Machine) ^ (mame_rand(Machine) << 16); -} - - - -/************************************* - * - * Sound communications - * - *************************************/ - -static READ16_HANDLER( shared_ram_16_r ) -{ - return z80_shared_ram[offset*2+0] | (z80_shared_ram[offset*2+1] << 8); -} - - -static WRITE16_HANDLER( shared_ram_16_w ) -{ - if (ACCESSING_LSB) - z80_shared_ram[offset*2+0] = data; - if (ACCESSING_MSB) - z80_shared_ram[offset*2+1] = data >> 8; -} - - -static READ32_HANDLER( shared_ram_32_r ) -{ - return z80_shared_ram[offset*4+0] | (z80_shared_ram[offset*4+1] << 8) | - (z80_shared_ram[offset*4+2] << 16) | (z80_shared_ram[offset*4+3] << 24); -} - - -static WRITE32_HANDLER( shared_ram_32_w ) -{ - if (!(mem_mask & 0x000000ff)) - z80_shared_ram[offset*4+0] = data; - if (!(mem_mask & 0x0000ff00)) - z80_shared_ram[offset*4+1] = data >> 8; - if (!(mem_mask & 0x00ff0000)) - z80_shared_ram[offset*4+2] = data >> 16; - if (!(mem_mask & 0xff000000)) - z80_shared_ram[offset*4+3] = data >> 24; -} - - - -/************************************* - * - * Sound interrupt controller - * - *************************************/ - -static void update_sound_irq_state(void) -{ - UINT8 effirq = sound_irq_input & ~sound_irq_control[3] & 0x07; - int vector; - - /* loop over interrupt vectors, finding the highest priority one with */ - /* an unmasked interrupt pending */ - for (vector = 0; vector < 3; vector++) - if (effirq & (1 << vector)) - { - cpunum_set_input_line_and_vector(1, 0, ASSERT_LINE, 2 * vector); - break; - } - - /* if we didn't find any, clear the interrupt line */ - if (vector == 3) - cpunum_set_input_line(1, 0, CLEAR_LINE); -} - - -static void signal_sound_irq(int which) -{ - int i; - - /* see if this interrupt input is mapped to any vectors; if so, mark them */ - for (i = 0; i < 3; i++) - if (sound_irq_control[i] == which) - sound_irq_input |= 1 << i; - update_sound_irq_state(); -} - - -static void clear_sound_irq(int which) -{ - int i; - for (i = 0; i < 3; i++) - if (sound_irq_control[i] == which) - sound_irq_input &= ~(1 << i); - update_sound_irq_state(); -} - - -static WRITE8_HANDLER( sound_int_control_lo_w ) -{ - /* odd offsets are interrupt acks */ - if (offset & 1) - { - sound_irq_input &= data; - update_sound_irq_state(); - } - - /* high offsets signal an IRQ to the v60 */ - if (offset & 4) - signal_v60_irq(MAIN_IRQ_SOUND); -} - - -static WRITE8_HANDLER( sound_int_control_hi_w ) -{ - sound_irq_control[offset] = data; - update_sound_irq_state(); -} - - -static void ym3438_irq_handler(int state) -{ - if (state) - signal_sound_irq(SOUND_IRQ_YM3438); - else - clear_sound_irq(SOUND_IRQ_YM3438); -} - - - -/************************************* - * - * Sound banking - * - *************************************/ - -static WRITE8_HANDLER( sound_bank_lo_w ) -{ - sound_bank = (sound_bank & ~0x3f) | (data & 0x3f); - memory_set_bankptr(1, memory_region(REGION_CPU2) + 0x100000 + 0x2000 * sound_bank); -} - - -static WRITE8_HANDLER( sound_bank_hi_w ) -{ - sound_bank = (sound_bank & 0x3f) | ((data & 0x04) << 4) | ((data & 0x03) << 7); - memory_set_bankptr(1, memory_region(REGION_CPU2) + 0x100000 + 0x2000 * sound_bank); -} - - -static WRITE8_HANDLER( multipcm_bank_w ) -{ - multipcm_set_bank(0, 0x80000 * ((data >> 3) & 7), 0x80000 * (data & 7)); -} - - -static WRITE8_HANDLER( scross_bank_w ) -{ - multipcm_set_bank(0, 0x80000 * (data & 7), 0x80000 * (data & 7)); -} - - - -/************************************* - * - * Sound hack (not protection) - * - *************************************/ - -static READ8_HANDLER( sound_dummy_r ) -{ - return sound_dummy_value; -} - - -static WRITE8_HANDLER( sound_dummy_w ) -{ - sound_dummy_value = data; -} - - - -/************************************* - * - * NVRAM handler - * - *************************************/ - -static NVRAM_HANDLER( system32 ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface_93C46); - - if (file) - EEPROM_load(file); - else if (system32_default_eeprom != NULL) - EEPROM_set_data(system32_default_eeprom, 0x80); - } -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( system32_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0x200000, 0x20ffff) AM_MIRROR(0x0f0000) AM_RAM AM_BASE(&system32_workram) - AM_RANGE(0x300000, 0x31ffff) AM_MIRROR(0x0e0000) AM_READWRITE(system32_videoram_r, system32_videoram_w) AM_BASE(&system32_videoram) - AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x0e0000) AM_READWRITE(system32_spriteram_r, system32_spriteram_w) AM_BASE(&system32_spriteram) - AM_RANGE(0x500000, 0x50000f) AM_MIRROR(0x0ffff0) AM_READWRITE(system32_sprite_control_r, system32_sprite_control_w) - AM_RANGE(0x600000, 0x60ffff) AM_MIRROR(0x0e0000) AM_READWRITE(system32_paletteram_r, system32_paletteram_w) AM_BASE(&system32_paletteram[0]) - AM_RANGE(0x610000, 0x61007f) AM_MIRROR(0x0eff80) AM_READWRITE(system32_mixer_r, system32_mixer_w) - AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE(shared_ram_16_r, shared_ram_16_w) - AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x0fff80) AM_READWRITE(io_chip_r, io_chip_w) - AM_RANGE(0xc00040, 0xc0007f) AM_MIRROR(0x0fff80) AM_READWRITE(io_expansion_r, io_expansion_w) - AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE(interrupt_control_16_r, interrupt_control_16_w) - AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(random_number_16_r, random_number_16_w) - AM_RANGE(0xf00000, 0xffffff) AM_ROM AM_REGION(REGION_CPU1, 0) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( multi32_map, ADDRESS_SPACE_PROGRAM, 32 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(24) ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM - AM_RANGE(0x200000, 0x21ffff) AM_MIRROR(0x0e0000) AM_RAM - AM_RANGE(0x300000, 0x31ffff) AM_MIRROR(0x0e0000) AM_READWRITE(multi32_videoram_r, multi32_videoram_w) AM_BASE((UINT32 **)&system32_videoram) - AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x0e0000) AM_READWRITE(multi32_spriteram_r, multi32_spriteram_w) AM_BASE((UINT32 **)&system32_spriteram) - AM_RANGE(0x500000, 0x50000f) AM_MIRROR(0x0ffff0) AM_READWRITE(multi32_sprite_control_r, multi32_sprite_control_w) - AM_RANGE(0x600000, 0x60ffff) AM_MIRROR(0x060000) AM_READWRITE(multi32_paletteram_0_r, multi32_paletteram_0_w) AM_BASE((UINT32 **)&system32_paletteram[0]) - AM_RANGE(0x610000, 0x61007f) AM_MIRROR(0x06ff80) AM_WRITE(multi32_mixer_0_w) - AM_RANGE(0x680000, 0x68ffff) AM_MIRROR(0x060000) AM_READWRITE(multi32_paletteram_1_r, multi32_paletteram_1_w) AM_BASE((UINT32 **)&system32_paletteram[1]) - AM_RANGE(0x690000, 0x69007f) AM_MIRROR(0x06ff80) AM_WRITE(multi32_mixer_1_w) - AM_RANGE(0x700000, 0x701fff) AM_MIRROR(0x0fe000) AM_READWRITE(shared_ram_32_r, shared_ram_32_w) - AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x07ff80) AM_READWRITE(io_chip_0_r, io_chip_0_w) - AM_RANGE(0xc00040, 0xc0007f) AM_MIRROR(0x07ff80) AM_READWRITE(io_expansion_0_r, io_expansion_0_w) - AM_RANGE(0xc80000, 0xc8001f) AM_MIRROR(0x07ff80) AM_READWRITE(io_chip_1_r, io_chip_1_w) - AM_RANGE(0xc80040, 0xc8007f) AM_MIRROR(0x07ff80) AM_READWRITE(io_expansion_1_r, io_expansion_1_w) - AM_RANGE(0xd00000, 0xd0000f) AM_MIRROR(0x07fff0) AM_READWRITE(interrupt_control_32_r, interrupt_control_32_w) - AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(random_number_32_r, random_number_32_w) - AM_RANGE(0xf00000, 0xffffff) AM_ROM AM_REGION(REGION_CPU1, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( system32_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION(REGION_CPU2, 0x100000) - AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x0ff0) AM_WRITE(RF5C68_reg_w) - AM_RANGE(0xd000, 0xdfff) AM_READWRITE(RF5C68_r, RF5C68_w) - AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE(&z80_shared_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( system32_sound_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w) - AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w) - AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w) - AM_RANGE(0x83, 0x83) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_B_w) - AM_RANGE(0x90, 0x90) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_1_A_r, YM3438_control_port_1_A_w) - AM_RANGE(0x91, 0x91) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_1_A_w) - AM_RANGE(0x92, 0x92) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_1_B_w) - AM_RANGE(0x93, 0x93) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_1_B_w) - AM_RANGE(0xa0, 0xaf) AM_WRITE(sound_bank_lo_w) - AM_RANGE(0xb0, 0xbf) AM_WRITE(sound_bank_hi_w) - AM_RANGE(0xc0, 0xcf) AM_WRITE(sound_int_control_lo_w) - AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x04) AM_WRITE(sound_int_control_hi_w) - AM_RANGE(0xf1, 0xf1) AM_READWRITE(sound_dummy_r, sound_dummy_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( multi32_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x9fff) AM_ROM AM_REGION(REGION_CPU2, 0x100000) - AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1) - AM_RANGE(0xc000, 0xdfff) AM_READWRITE(MultiPCM_reg_0_r, MultiPCM_reg_0_w) - AM_RANGE(0xe000, 0xffff) AM_RAM AM_BASE(&z80_shared_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( multi32_sound_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) ) - AM_RANGE(0x80, 0x80) AM_MIRROR(0x0c) AM_READWRITE(YM3438_status_port_0_A_r, YM3438_control_port_0_A_w) - AM_RANGE(0x81, 0x81) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_A_w) - AM_RANGE(0x82, 0x82) AM_MIRROR(0x0c) AM_WRITE(YM3438_control_port_0_B_w) - AM_RANGE(0x83, 0x83) AM_MIRROR(0x0c) AM_WRITE(YM3438_data_port_0_B_w) - AM_RANGE(0xa0, 0xaf) AM_WRITE(sound_bank_lo_w) - AM_RANGE(0xb0, 0xbf) AM_WRITE(multipcm_bank_w) - AM_RANGE(0xc0, 0xcf) AM_WRITE(sound_int_control_lo_w) - AM_RANGE(0xd0, 0xd3) AM_MIRROR(0x04) AM_WRITE(sound_int_control_hi_w) - AM_RANGE(0xf1, 0xf1) AM_READWRITE(sound_dummy_r, sound_dummy_w) -ADDRESS_MAP_END - - - -/************************************* - * - * GA2 Protection CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( ga2_v25_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x0ffff) AM_ROM - AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_BASE(&ga2_dpram) - AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION(REGION_CPU3, 0) -ADDRESS_MAP_END - - - -/************************************* - * - * Generic port definitions - * - *************************************/ - -static INPUT_PORTS_START( system32_generic ) - PORT_START_TAG("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START_TAG("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("PORTC") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTD") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SERVICE12") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SERVICE34") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE3 ) /* sometimes mirrors SERVICE1 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE4 ) /* tends to also work as a test switch */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) - - PORT_START_TAG("PORTG") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTH") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( multi32_generic ) - PORT_START_TAG("P1_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("P2_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTC_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTD_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SERVICE12_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SERVICE34_A") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE3 ) /* sometimes mirrors SERVICE1 */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE4 ) /* tends to also work as a test switch */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("PORTG_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTH_A") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("P1_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("P2_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTC_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTD_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("SERVICE12_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("SERVICE34_B") - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL) - - PORT_START_TAG("PORTG_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTH_B") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Game-specific port definitions - * - *************************************/ - -INPUT_PORTS_START( arescue ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x38, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE34") - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( alien3 ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("ANALOG4") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( arabfgt ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("EXTRA1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("EXTRA3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( arabfgtu ) - PORT_INCLUDE( arabfgt ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_MODIFY("EXTRA3") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( brival ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( darkedge ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_MODIFY("P2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) -INPUT_PORTS_END - - -INPUT_PORTS_START( dbzvrvs ) - PORT_INCLUDE( system32_generic ) -INPUT_PORTS_END - - -INPUT_PORTS_START( f1en ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Gear Up") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Gear Down") - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE34") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( f1lap ) - PORT_INCLUDE( f1en ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Gear Up") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Gear Down") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_Z) -INPUT_PORTS_END - - -INPUT_PORTS_START( ga2 ) - PORT_INCLUDE( system32_generic ) - - PORT_START_TAG("EXTRA1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("EXTRA3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( ga2u ) - PORT_INCLUDE( ga2 ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_MODIFY("EXTRA3") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( harddunk ) - PORT_INCLUDE( multi32_generic ) - - PORT_MODIFY("P1_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_MODIFY("P2_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_MODIFY("SERVICE12_A") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P1_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - - PORT_MODIFY("P2_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(5) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(5) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(5) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(5) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(5) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(5) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(5) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(5) - - PORT_MODIFY("SERVICE12_B") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START5 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("EXTRA1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(6) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(6) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(6) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(6) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(6) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(6) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(6) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(6) - - PORT_START_TAG("EXTRA3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START6 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -INPUT_PORTS_START( holo ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( jpark ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("ANALOG4") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( orunners ) - PORT_INCLUDE( multi32_generic ) - - PORT_MODIFY("P1_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_SPACE) /* shift up */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_LSHIFT) /* shift down */ - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P2_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_Z) /* DJ/music */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_X) /* << */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_C) /* >> */ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P1_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CODE(KEYCODE_Q) /* shift up */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_CODE(KEYCODE_W) /* shift down */ - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P2_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* DJ/music */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* << */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* >> */ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("ANALOG4") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("ANALOG7") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("ANALOG8") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( radm ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Light") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Wiper") - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE34") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( radr ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Gear Change") PORT_TOGGLE - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE34") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( scross ) - PORT_INCLUDE( multi32_generic ) - - PORT_MODIFY("P1_A") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_SPACE) /* */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_LSHIFT) /* */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_CODE(KEYCODE_LALT) /* brake */ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P1_B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CODE(KEYCODE_Q) /* */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_CODE(KEYCODE_W) /* */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_CODE(KEYCODE_S) /* brake */ - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START_TAG("ANALOG4") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - - -INPUT_PORTS_START( slipstrm ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Gear Change") PORT_TOGGLE - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE34") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("ANALOG1") - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG2") - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) - - PORT_START_TAG("ANALOG3") - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0,255) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) -INPUT_PORTS_END - - -INPUT_PORTS_START( sonic ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START_TAG("TRACKX1") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("TRACKY1") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(1) - - PORT_START_TAG("TRACKX2") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("TRACKY2") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(2) - - PORT_START_TAG("TRACKX3") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(3) - - PORT_START_TAG("TRACKY3") - PORT_BIT( 0xff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(3) -INPUT_PORTS_END - - -INPUT_PORTS_START( spidman ) - PORT_INCLUDE( system32_generic ) - - PORT_MODIFY("P1") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("P2") - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("EXTRA1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("EXTRA2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("EXTRA3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( spidmanu ) - PORT_INCLUDE( spidman ) - - PORT_MODIFY("SERVICE12") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_MODIFY("EXTRA3") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) -INPUT_PORTS_END - - -INPUT_PORTS_START( svf ) - PORT_INCLUDE( system32_generic ) -INPUT_PORTS_END - - -INPUT_PORTS_START( titlef ) - PORT_INCLUDE( multi32_generic ) - - PORT_MODIFY("P1_A") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(1) - - PORT_MODIFY("P2_A") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(1) - - PORT_MODIFY("SERVICE12_A") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_MODIFY("P1_B") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_PLAYER(2) - - PORT_MODIFY("P2_B") - PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_PLAYER(2) - - PORT_MODIFY("SERVICE12_B") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout bgcharlayout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0,1,2,3 }, - { 0, 4, 16, 20, 8, 12, 24, 28, 32, 36, 48, 52, 40, 44, 56, 60 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64,10*64,11*64,12*64,13*64,14*64,15*64 }, - 16*64 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &bgcharlayout, 0x00, 0x3ff }, - { -1 } /* end of array */ -}; - - - -/************************************* - * - * Sound interfaces - * - *************************************/ - -static const struct YM3438interface ym3438_interface = -{ - ym3438_irq_handler -}; - -static const struct MultiPCM_interface multi32_pcm_interface = -{ - REGION_SOUND1 -}; - - - -/************************************* - * - * Dual PCB shared memory comms - * - *************************************/ - -// Both arescue and f1en appear to use an identical shared RAM system. - -static UINT16* dual_pcb_comms; - -static WRITE16_HANDLER( dual_pcb_comms_w ) -{ - COMBINE_DATA(&dual_pcb_comms[offset]); -} - -static READ16_HANDLER( dual_pcb_comms_r ) -{ - return dual_pcb_comms[offset]; -} - - -/* There must be something on the comms board for this? - Probably not a dip/solder link/trace cut, but maybe - just whichever way the cables are plugged in? - Both f1en and arescue master units try to set bit 1... */ -static READ16_HANDLER( dual_pcb_masterslave ) -{ - return 0; // 0/1 master/slave -} - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( system32 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V60, MASTER_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(system32_map,0) - MDRV_CPU_VBLANK_INT(start_of_vblank_int,1) - - MDRV_CPU_ADD_TAG("sound", Z80, MASTER_CLOCK/4) - MDRV_CPU_PROGRAM_MAP(system32_sound_map,0) - MDRV_CPU_IO_MAP(system32_sound_portmap,0) - - MDRV_MACHINE_RESET(system32) - MDRV_NVRAM_HANDLER(system32) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x4000) - - MDRV_SCREEN_ADD("main", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000000 * (262 - 224) / (262 * 60))) - MDRV_SCREEN_SIZE(52*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - - MDRV_VIDEO_START(system32) - MDRV_VIDEO_UPDATE(system32) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3438, MASTER_CLOCK/4) - MDRV_SOUND_CONFIG(ym3438_interface) - MDRV_SOUND_ROUTE(0, "left", 0.40) - MDRV_SOUND_ROUTE(1, "right", 0.40) - - MDRV_SOUND_ADD(YM3438, MASTER_CLOCK/4) - MDRV_SOUND_ROUTE(0, "left", 0.40) - MDRV_SOUND_ROUTE(1, "right", 0.40) - - MDRV_SOUND_ADD(RF5C68, RFC_CLOCK/4) - MDRV_SOUND_ROUTE(0, "left", 0.55) - MDRV_SOUND_ROUTE(1, "right", 0.55) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( system32_v20 ) - MDRV_IMPORT_FROM(system32) - - /* add a V25 for protection */ - MDRV_CPU_ADD(V20, 10000000) - MDRV_CPU_PROGRAM_MAP(ga2_v25_map,0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( multi32 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V70, MULTI32_CLOCK/2) - MDRV_CPU_PROGRAM_MAP(multi32_map,0) - MDRV_CPU_VBLANK_INT(start_of_vblank_int,1) - - MDRV_CPU_ADD_TAG("sound", Z80, MASTER_CLOCK/4) - MDRV_CPU_PROGRAM_MAP(multi32_sound_map,0) - MDRV_CPU_IO_MAP(multi32_sound_portmap,0) - - MDRV_MACHINE_RESET(system32) - MDRV_NVRAM_HANDLER(system32) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x8000) - MDRV_DEFAULT_LAYOUT(layout_dualhsxs) - - MDRV_SCREEN_ADD("left", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000000 * (262 - 224) / (262 * 60))) - MDRV_SCREEN_SIZE(52*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - - MDRV_SCREEN_ADD("right", 0x000) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000000 * (262 - 224) / (262 * 60))) - MDRV_SCREEN_SIZE(52*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) - - MDRV_VIDEO_START(multi32) - MDRV_VIDEO_UPDATE(multi32) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3438, MASTER_CLOCK/4) - MDRV_SOUND_CONFIG(ym3438_interface) - MDRV_SOUND_ROUTE(1, "left", 0.40) - MDRV_SOUND_ROUTE(0, "right", 0.40) - - MDRV_SOUND_ADD(MULTIPCM, MASTER_CLOCK/4) - MDRV_SOUND_CONFIG(multi32_pcm_interface) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(0, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -#define ROM_LOAD_x2(name, base, length, crc) \ - ROM_LOAD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 1 * length, length ) - -#define ROM_LOAD_x4(name, base, length, crc) \ - ROM_LOAD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 1 * length, length ) \ - ROM_RELOAD( base + 2 * length, length ) \ - ROM_RELOAD( base + 3 * length, length ) - -#define ROM_LOAD_x8(name, base, length, crc) \ - ROM_LOAD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 1 * length, length ) \ - ROM_RELOAD( base + 2 * length, length ) \ - ROM_RELOAD( base + 3 * length, length ) \ - ROM_RELOAD( base + 4 * length, length ) \ - ROM_RELOAD( base + 5 * length, length ) \ - ROM_RELOAD( base + 6 * length, length ) \ - ROM_RELOAD( base + 7 * length, length ) - -#define ROM_LOAD_x16(name, base, length, crc) \ - ROM_LOAD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 1 * length, length ) \ - ROM_RELOAD( base + 2 * length, length ) \ - ROM_RELOAD( base + 3 * length, length ) \ - ROM_RELOAD( base + 4 * length, length ) \ - ROM_RELOAD( base + 5 * length, length ) \ - ROM_RELOAD( base + 6 * length, length ) \ - ROM_RELOAD( base + 7 * length, length ) \ - ROM_RELOAD( base + 8 * length, length ) \ - ROM_RELOAD( base + 9 * length, length ) \ - ROM_RELOAD( base + 10 * length, length ) \ - ROM_RELOAD( base + 11 * length, length ) \ - ROM_RELOAD( base + 12 * length, length ) \ - ROM_RELOAD( base + 13 * length, length ) \ - ROM_RELOAD( base + 14 * length, length ) \ - ROM_RELOAD( base + 15 * length, length ) - -#define ROM_LOAD16_BYTE_x2(name, base, length, crc) \ - ROM_LOAD16_BYTE( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 2 * length, length ) - -#define ROM_LOAD16_BYTE_x4(name, base, length, crc) \ - ROM_LOAD16_BYTE( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 2 * length, length ) \ - ROM_RELOAD( base + 4 * length, length ) \ - ROM_RELOAD( base + 6 * length, length ) - -#define ROM_LOAD32_WORD_x2(name, base, length, crc) \ - ROM_LOAD32_WORD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 2 * length, length ) - -#define ROM_LOAD32_WORD_x4(name, base, length, crc) \ - ROM_LOAD32_WORD( name, base + 0 * length, length, crc ) \ - ROM_RELOAD( base + 2 * length, length ) \ - ROM_RELOAD( base + 4 * length, length ) \ - ROM_RELOAD( base + 6 * length, length ) - - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Air Rescue - requires 2 linked system32 pcbs - requires additional math DSP to be emulated -*/ -ROM_START( arescue ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr14540.13", 0x000000, 0x020000, CRC(c2b4e5d0) SHA1(69f8ddded5095df9012663d0ded61b78f1692a8d) ) - ROM_LOAD_x4( "epr14539.6", 0x080000, 0x020000, CRC(1a1b5532) SHA1(f3651470222036703b7ecedb6e91e4cdb3d20df7) ) - ROM_LOAD16_BYTE( "epr14509.14", 0x100000, 0x080000, CRC(daa5a356) SHA1(ca87242c59de5ab5f9406635bee758a855fe20bc) ) - ROM_LOAD16_BYTE( "epr14508.7", 0x100001, 0x080000, CRC(6702c14d) SHA1(dc9324f16a3e3238f5ccdade9451d6823a50b563) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr14513.35", 0x100000, 0x40000, CRC(f9a884cd) SHA1(73010fff5e0257355e08e78838c74af86ed364ce) ) - ROM_LOAD_x2( "mpr14512.31", 0x200000, 0x80000, CRC(9da48051) SHA1(2d41148d089a75362ed0fde577eca919213ac666) ) - ROM_LOAD_x2( "mpr14511.26", 0x300000, 0x80000, CRC(074c53cc) SHA1(9c89843bbe8058123c25b7f8f86de754ddbca2bb) ) - ROM_LOAD_x2( "mpr14510.22", 0x400000, 0x80000, CRC(5ea6d52d) SHA1(d424082468940bb91ab424ac7812839792ed4e88) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "mpr14496.25", 0x000003, 0x080000, CRC(737da16c) SHA1(52247d9bc2924e90d040bef484a541b1f4a9026f) ) - ROM_LOAD32_BYTE( "mpr14497.29", 0x000001, 0x080000, CRC(ebd7ed17) SHA1(2307dc28501965432d2ff55a21698efdce014401) ) - ROM_LOAD32_BYTE( "mpr14498.34", 0x000002, 0x080000, CRC(d4a764bd) SHA1(8434a9225ed1e01e8b1cfe169268e42cd3ce6ee3) ) - ROM_LOAD32_BYTE( "mpr14499.38", 0x000000, 0x080000, CRC(fadc4b2b) SHA1(01c02a4dfad1ab19bac8b81b61d37fdc035bc5c5) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14500.24", 0x000007, 0x100000, CRC(0a064e9b) SHA1(264761f4aacaeeac9426528caf180404cd7f6e18) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14501.28", 0x000006, 0x100000, CRC(4662bb41) SHA1(80774e680468e9ba9c5dd5eeaa4791fa3b3722fd) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14502.33", 0x000005, 0x100000, CRC(988555a9) SHA1(355e44319fd51358329cc7cd226e4c4725e045cb) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14503.37", 0x000004, 0x100000, CRC(90556aca) SHA1(24df62af55048db66d50c7034c5460330d231bf5) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14504.23", 0x000003, 0x100000, CRC(46dd038d) SHA1(9530a52e2e7388437c20ebcb19bf84c8b3b5086b) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14505.27", 0x000002, 0x100000, CRC(be142c1f) SHA1(224631e00c2458c39c6a2ef7978c2b1131fb4da2) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14506.32", 0x000001, 0x100000, CRC(5dd8fb6b) SHA1(7d21cacb2c9dba5db2547b6d8e89397e0424ee8e) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14507.36", 0x000000, 0x100000, CRC(db3f59ec) SHA1(96dcb3827354773fc2911c62260a27e90dcbe96a) , ROM_SKIP(7) ) - - ROM_REGION( 0x20000, REGION_USER2, 0 ) /* NEC uPD77P25 DSP Internal ROM */ - ROM_LOAD( "d7725.01", 0x000000, 0x002800, CRC(a7ec5644) SHA1(e9b05c70b639ee289e557dfd9a6c724b36338e2b) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Alien 3: The Gun - not protected -*/ -ROM_START( alien3 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "15943.bin", 0x000000, 0x040000, CRC(ac4591aa) SHA1(677155a3ebdac6602525e06adb25d287eaf9e089) ) - ROM_LOAD_x2( "15942.bin", 0x080000, 0x040000, CRC(a1e1d0ec) SHA1(10d8d2235a67a4ba475fe98124c6a4a5311592b5) ) - ROM_LOAD16_BYTE( "15855.bin", 0x100000, 0x080000, CRC(a6fadabe) SHA1(328bbb54651eef197ba13f1bd9228f3f4de7ee5e) ) - ROM_LOAD16_BYTE( "15854.bin", 0x100001, 0x080000, CRC(d1aec392) SHA1(f48804fe0151e83ad45e912b55db8ae8ddebd2ad) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "15859.bin", 0x100000, 0x040000, CRC(91b55bd0) SHA1(23b85a006a91c2a5eb1cee14172fd0d8b7732518) ) - ROM_LOAD( "15858.bin", 0x200000, 0x100000, CRC(2eb64c10) SHA1(b2dbe86b82e889f4a9850cf4aa6596a139c1c3d6) ) - ROM_LOAD( "15857.bin", 0x300000, 0x100000, CRC(915c56df) SHA1(7031f937c826af17caf7ec8cbb6155d0a55bd38a) ) - ROM_LOAD( "15856.bin", 0x400000, 0x100000, CRC(a5ef4f1f) SHA1(e8da7a995955e80872a25bd75465c590b649cfab) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "15863.bin", 0x000000, 0x200000, CRC(9d36b645) SHA1(2977047780b615b64c3b4aec78fef0643d40490e) ) - ROM_LOAD16_BYTE( "15862.bin", 0x000001, 0x200000, CRC(9e277d25) SHA1(9f191484a42391268306a8d2d95c340ce8b2d6cd) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "15864.bin", 0x000000, 0x200000, CRC(58207157) SHA1(d1b0c7edac8b89b1322398d4cd3a976a88bc0b56) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15866.bin", 0x000002, 0x200000, CRC(9c53732c) SHA1(9aa5103cc10b4927c16e0cf102b64a15dd038756) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15868.bin", 0x000004, 0x200000, CRC(62d556e8) SHA1(d70cab0881784a3d4dd06d0c99587ca6054c2dc4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15870.bin", 0x000006, 0x200000, CRC(d31c0400) SHA1(44c1b2e5236d894d31ff72552a7ad50270dd2fad) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15865.bin", 0x800000, 0x200000, CRC(dd64f87b) SHA1(cfa96c5f2b1221706552f5cef4aa7c61ebe21e39) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15867.bin", 0x800002, 0x200000, CRC(8cf9cb11) SHA1(a77399fccee3f258a5716721edd69a33f94f8daf) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15869.bin", 0x800004, 0x200000, CRC(dd4b137f) SHA1(7316dce32d35bf468defae5e6ed86910a37a2457) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15871.bin", 0x800006, 0x200000, CRC(58eb10ae) SHA1(23f2a72dc7b2d7b5c8a979952f81608296805745) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -ROM_START( alien3u ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "epr-15941.bin", 0x000000, 0x040000, CRC(bf8c257f) SHA1(d08b77d2e3f5af0da7e7d8727fbe7fc0eb1153ff) ) - ROM_LOAD_x2( "epr-15940a.bin", 0x080000, 0x040000, CRC(8840b51e) SHA1(0aa6945000676b1adc535b1557a1455d62aed9f5) ) - ROM_LOAD16_BYTE( "15855.bin", 0x100000, 0x080000, CRC(a6fadabe) SHA1(328bbb54651eef197ba13f1bd9228f3f4de7ee5e) ) - ROM_LOAD16_BYTE( "15854.bin", 0x100001, 0x080000, CRC(d1aec392) SHA1(f48804fe0151e83ad45e912b55db8ae8ddebd2ad) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "15859.bin", 0x100000, 0x040000, CRC(91b55bd0) SHA1(23b85a006a91c2a5eb1cee14172fd0d8b7732518) ) - ROM_LOAD( "15858.bin", 0x200000, 0x100000, CRC(2eb64c10) SHA1(b2dbe86b82e889f4a9850cf4aa6596a139c1c3d6) ) - ROM_LOAD( "15857.bin", 0x300000, 0x100000, CRC(915c56df) SHA1(7031f937c826af17caf7ec8cbb6155d0a55bd38a) ) - ROM_LOAD( "15856.bin", 0x400000, 0x100000, CRC(a5ef4f1f) SHA1(e8da7a995955e80872a25bd75465c590b649cfab) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "15863.bin", 0x000000, 0x200000, CRC(9d36b645) SHA1(2977047780b615b64c3b4aec78fef0643d40490e) ) - ROM_LOAD16_BYTE( "15862.bin", 0x000001, 0x200000, CRC(9e277d25) SHA1(9f191484a42391268306a8d2d95c340ce8b2d6cd) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "15864.bin", 0x000000, 0x200000, CRC(58207157) SHA1(d1b0c7edac8b89b1322398d4cd3a976a88bc0b56) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15866.bin", 0x000002, 0x200000, CRC(9c53732c) SHA1(9aa5103cc10b4927c16e0cf102b64a15dd038756) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15868.bin", 0x000004, 0x200000, CRC(62d556e8) SHA1(d70cab0881784a3d4dd06d0c99587ca6054c2dc4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15870.bin", 0x000006, 0x200000, CRC(d31c0400) SHA1(44c1b2e5236d894d31ff72552a7ad50270dd2fad) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15865.bin", 0x800000, 0x200000, CRC(dd64f87b) SHA1(cfa96c5f2b1221706552f5cef4aa7c61ebe21e39) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15867.bin", 0x800002, 0x200000, CRC(8cf9cb11) SHA1(a77399fccee3f258a5716721edd69a33f94f8daf) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15869.bin", 0x800004, 0x200000, CRC(dd4b137f) SHA1(7316dce32d35bf468defae5e6ed86910a37a2457) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15871.bin", 0x800006, 0x200000, CRC(58eb10ae) SHA1(23f2a72dc7b2d7b5c8a979952f81608296805745) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Arabian Fight - protected via a custom V20 with encrypted code -*/ - -ROM_START( arabfgt ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr14609.8", 0x000000, 0x020000, CRC(6a43c7fb) SHA1(70e9f9fa5f867f0455d62ff2690ad19055d79363) ) - ROM_LOAD16_BYTE_x2( "epr14592.18", 0x100000, 0x040000, CRC(f7dff316) SHA1(338690a1404dde6e7e66067f23605a247c7d0f5b) ) - ROM_LOAD16_BYTE_x2( "epr14591.9", 0x100001, 0x040000, CRC(bbd940fb) SHA1(99c17aba890935eaf7ea468492da03103288eb1b) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x8( "epr14596.36", 0x100000, 0x020000, CRC(bd01faec) SHA1(c909dcb8ef2672c4b0060d911d295e445ca311eb) ) - ROM_LOAD( "mpr14595f.35", 0x200000, 0x100000, CRC(5173d1af) SHA1(dccda644488d0c561c8ff7fa9619bd9504d8d9c6) ) - ROM_LOAD( "mpr14594f.34", 0x300000, 0x100000, CRC(01777645) SHA1(7bcbe7687bd80b94bd3b2b3099cdd036bf7e0cd3) ) - ROM_LOAD( "mpr14593f.24", 0x400000, 0x100000, CRC(aa037047) SHA1(5cb1cfb235bbbf875d2b07ac4a9130ba13d47e57) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU (simulated, not emulated) */ - ROM_LOAD( "14468-01.3", 0x00000, 0x10000, CRC(c3c591e4) SHA1(53e48066e85b61d0c456618d14334a509b354cb3) ) - ROM_RELOAD( 0xf0000, 0x10000 ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14599f.14", 0x000000, 0x200000, CRC(94f1cf10) SHA1(34ec86487bcb6726c025149c319f00a854eb7a1d) ) - ROM_LOAD16_BYTE( "mpr14598f.5", 0x000001, 0x200000, CRC(010656f3) SHA1(31619c022cba4f250ce174f186d3e34444f60faf) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14600f.32", 0x000000, 0x200000, CRC(e860988a) SHA1(328581877c0890519c854f75f0976b0e9c4560f8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14602.30", 0x000002, 0x200000, CRC(64524e4d) SHA1(86246185ab5ab638a73991c9e3aeb07c6d51be4f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14604.28", 0x000004, 0x200000, CRC(5f8d5167) SHA1(1b08495e5a4cc2530c2895e47abd0e0b75496c68) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14606.26", 0x000006, 0x200000, CRC(7047f437) SHA1(e806a1cd73c96b33e8edc64e41d99bf7798103e0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14601f.31", 0x800000, 0x200000, CRC(a2f3bb32) SHA1(1a60975dead5faf08ad4e9a96a00f98664d5e5ec) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14603.29", 0x800002, 0x200000, CRC(f6ce494b) SHA1(b3117e34913e855c035ebe37fbfbe0f7466f94f0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14605.27", 0x800004, 0x200000, CRC(aaf52697) SHA1(b502a37ae68fc08b60cdf0e2b744898b3474d3b9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14607.25", 0x800006, 0x200000, CRC(b70b0735) SHA1(9ef2da6f710bc5c2c7ee30dc144409a61dbe6646) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -ROM_START( arabfgtu ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "mpr14608.8", 0x000000, 0x020000, CRC(cd5efba9) SHA1(a7daf8e95d31359753c984c447e93d40f43a179d) ) - ROM_LOAD16_BYTE_x2( "epr14592.18", 0x100000, 0x040000, CRC(f7dff316) SHA1(338690a1404dde6e7e66067f23605a247c7d0f5b) ) - ROM_LOAD16_BYTE_x2( "epr14591.9", 0x100001, 0x040000, CRC(bbd940fb) SHA1(99c17aba890935eaf7ea468492da03103288eb1b) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x8( "epr14596.36", 0x100000, 0x020000, CRC(bd01faec) SHA1(c909dcb8ef2672c4b0060d911d295e445ca311eb) ) - ROM_LOAD( "mpr14595f.35", 0x200000, 0x100000, CRC(5173d1af) SHA1(dccda644488d0c561c8ff7fa9619bd9504d8d9c6) ) - ROM_LOAD( "mpr14594f.34", 0x300000, 0x100000, CRC(01777645) SHA1(7bcbe7687bd80b94bd3b2b3099cdd036bf7e0cd3) ) - ROM_LOAD( "mpr14593f.24", 0x400000, 0x100000, CRC(aa037047) SHA1(5cb1cfb235bbbf875d2b07ac4a9130ba13d47e57) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU (simulated, not emulated) */ - ROM_LOAD( "14468-01.3", 0x00000, 0x10000, CRC(c3c591e4) SHA1(53e48066e85b61d0c456618d14334a509b354cb3) ) - ROM_RELOAD( 0xf0000, 0x10000 ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14599f.14", 0x000000, 0x200000, CRC(94f1cf10) SHA1(34ec86487bcb6726c025149c319f00a854eb7a1d) ) - ROM_LOAD16_BYTE( "mpr14598f.5", 0x000001, 0x200000, CRC(010656f3) SHA1(31619c022cba4f250ce174f186d3e34444f60faf) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14600f.32", 0x000000, 0x200000, CRC(e860988a) SHA1(328581877c0890519c854f75f0976b0e9c4560f8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14602.30", 0x000002, 0x200000, CRC(64524e4d) SHA1(86246185ab5ab638a73991c9e3aeb07c6d51be4f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14604.28", 0x000004, 0x200000, CRC(5f8d5167) SHA1(1b08495e5a4cc2530c2895e47abd0e0b75496c68) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14606.26", 0x000006, 0x200000, CRC(7047f437) SHA1(e806a1cd73c96b33e8edc64e41d99bf7798103e0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14601f.31", 0x800000, 0x200000, CRC(a2f3bb32) SHA1(1a60975dead5faf08ad4e9a96a00f98664d5e5ec) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14603.29", 0x800002, 0x200000, CRC(f6ce494b) SHA1(b3117e34913e855c035ebe37fbfbe0f7466f94f0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14605.27", 0x800004, 0x200000, CRC(aaf52697) SHA1(b502a37ae68fc08b60cdf0e2b744898b3474d3b9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14607.25", 0x800006, 0x200000, CRC(b70b0735) SHA1(9ef2da6f710bc5c2c7ee30dc144409a61dbe6646) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Arabian Fight (Japan) - protected via a custom V20 with encrypted code -*/ -ROM_START( arabfgtj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr14597.8", 0x000000, 0x020000, CRC(7a6fe222) SHA1(f730e9d44ad20dbaa59f6311a077c889e0aec8e4) ) - ROM_LOAD16_BYTE_x2( "epr14592.18", 0x100000, 0x040000, CRC(f7dff316) SHA1(338690a1404dde6e7e66067f23605a247c7d0f5b) ) - ROM_LOAD16_BYTE_x2( "epr14591.9", 0x100001, 0x040000, CRC(bbd940fb) SHA1(99c17aba890935eaf7ea468492da03103288eb1b) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x8( "epr14596.36", 0x100000, 0x020000, CRC(bd01faec) SHA1(c909dcb8ef2672c4b0060d911d295e445ca311eb) ) - ROM_LOAD( "mpr14595f.35", 0x200000, 0x100000, CRC(5173d1af) SHA1(dccda644488d0c561c8ff7fa9619bd9504d8d9c6) ) - ROM_LOAD( "mpr14594f.34", 0x300000, 0x100000, CRC(01777645) SHA1(7bcbe7687bd80b94bd3b2b3099cdd036bf7e0cd3) ) - ROM_LOAD( "mpr14593f.24", 0x400000, 0x100000, CRC(aa037047) SHA1(5cb1cfb235bbbf875d2b07ac4a9130ba13d47e57) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU */ - ROM_LOAD( "14468-01.3", 0x00000, 0x10000, CRC(c3c591e4) SHA1(53e48066e85b61d0c456618d14334a509b354cb3) ) - ROM_RELOAD( 0xf0000, 0x10000 ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14599f.14", 0x000000, 0x200000, CRC(94f1cf10) SHA1(34ec86487bcb6726c025149c319f00a854eb7a1d) ) - ROM_LOAD16_BYTE( "mpr14598f.5", 0x000001, 0x200000, CRC(010656f3) SHA1(31619c022cba4f250ce174f186d3e34444f60faf) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14600f.32", 0x000000, 0x200000, CRC(e860988a) SHA1(328581877c0890519c854f75f0976b0e9c4560f8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14602.30", 0x000002, 0x200000, CRC(64524e4d) SHA1(86246185ab5ab638a73991c9e3aeb07c6d51be4f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14604.28", 0x000004, 0x200000, CRC(5f8d5167) SHA1(1b08495e5a4cc2530c2895e47abd0e0b75496c68) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14606.26", 0x000006, 0x200000, CRC(7047f437) SHA1(e806a1cd73c96b33e8edc64e41d99bf7798103e0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14601f.31", 0x800000, 0x200000, CRC(a2f3bb32) SHA1(1a60975dead5faf08ad4e9a96a00f98664d5e5ec) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14603.29", 0x800002, 0x200000, CRC(f6ce494b) SHA1(b3117e34913e855c035ebe37fbfbe0f7466f94f0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14605.27", 0x800004, 0x200000, CRC(aaf52697) SHA1(b502a37ae68fc08b60cdf0e2b744898b3474d3b9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14607.25", 0x800006, 0x200000, CRC(b70b0735) SHA1(9ef2da6f710bc5c2c7ee30dc144409a61dbe6646) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Burning Rival - protected via FD1149 317-0212 -*/ -ROM_START( brival ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr15722.8", 0x000000, 0x020000, CRC(138141c0) SHA1(aca2a46ee1008e91c65a09e79c76d5175e7df5e8) ) - ROM_LOAD16_BYTE( "epr15723.18", 0x100000, 0x080000, CRC(4ff40d39) SHA1(b33a656f976ec7a1a2268e7b9a81d5b84f3d9ca3) ) - ROM_LOAD16_BYTE( "epr15724.9", 0x100001, 0x080000, CRC(3ff8a052) SHA1(f484a8e15a022f9ff290e662ab27f96f9f0ad24e) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr15725.36", 0x100000, 0x020000, CRC(ea1407d7) SHA1(68b571341f032278e87a38739ba8084b7a6062d3) ) - ROM_LOAD( "mpr15627.35", 0x200000, 0x100000, CRC(8a8388c5) SHA1(7ee03feb975cc576a3d8651fd41976ca87d60894) ) - ROM_LOAD( "mpr15626.34", 0x300000, 0x100000, CRC(83306d1e) SHA1(feb08902b51c0013d9417832cdf198e36cdfc28c) ) - ROM_LOAD( "mpr15625.24", 0x400000, 0x100000, CRC(3ce82932) SHA1(f2107bc2591f46a51c9f0d706933b1ae69db91f9) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15629.14", 0x000000, 0x200000, CRC(2c8dd96d) SHA1(4a42a30485c19eb4f4a9d518a3dff3ae11911d01) ) - ROM_LOAD16_BYTE( "mpr15628.5", 0x000001, 0x200000, CRC(58d4ca40) SHA1(b1633acc803bba7e8283a9663b49abeda662a74d) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15637.32", 0x000000, 0x200000, CRC(b6cf2f05) SHA1(a308d40ce5165e03fccf7fcd615ee111f7840fdc) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15635.30", 0x000002, 0x200000, CRC(70f2eb2b) SHA1(9868c8b0dd8ce810a0e32f51e702eee7e1c9a967) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15633.28", 0x000004, 0x200000, CRC(005dfed5) SHA1(f555620d75d3886a890307be9df9c0879bcda695) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15631.26", 0x000006, 0x200000, CRC(c35e2f21) SHA1(37935aa2eaa1769e57fb58f47f9797ae153d7496) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15636.31", 0x800000, 0x200000, CRC(d81ca97b) SHA1(a8e64e6cbe822f18ce20f50c8ddb8f1d5ed8b783) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15634.29", 0x800002, 0x200000, CRC(b0c6c52a) SHA1(04dd7344ca82e38f9d796a764c9e5a631a89aaac) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15632.27", 0x800004, 0x200000, CRC(8476e52b) SHA1(e89748d34febcaf362580cdae30a5c570e56899a) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15630.25", 0x800006, 0x200000, CRC(bf7dd2f6) SHA1(ab3fbe9e2b9b57424fb2a147f32b0f573c0b11b8) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Burning Rival (Japan) - protected via FD1149 317-0212 -*/ -ROM_START( brivalj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr15720.8", 0x000000, 0x020000, CRC(0d182d78) SHA1(53e9e5898869ea4a354dc3e9a78d8b8e9a7274c9) ) - ROM_LOAD16_BYTE( "epr15723.18", 0x100000, 0x080000, CRC(4ff40d39) SHA1(b33a656f976ec7a1a2268e7b9a81d5b84f3d9ca3) ) - ROM_LOAD16_BYTE( "epr15724.9", 0x100001, 0x080000, CRC(3ff8a052) SHA1(f484a8e15a022f9ff290e662ab27f96f9f0ad24e) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr15725.36", 0x100000, 0x020000, CRC(ea1407d7) SHA1(68b571341f032278e87a38739ba8084b7a6062d3) ) - ROM_LOAD( "mpr15627.35", 0x200000, 0x100000, CRC(8a8388c5) SHA1(7ee03feb975cc576a3d8651fd41976ca87d60894) ) - ROM_LOAD( "mpr15626.34", 0x300000, 0x100000, CRC(83306d1e) SHA1(feb08902b51c0013d9417832cdf198e36cdfc28c) ) - ROM_LOAD( "mpr15625.24", 0x400000, 0x100000, CRC(3ce82932) SHA1(f2107bc2591f46a51c9f0d706933b1ae69db91f9) ) - - /* the 10 roms below may be bad dumps ... mp14598 / 99 have corrupt tiles when compared to the roms - in the parent set, but Sega did change the part numbers so they might be correct, the others - are suspicious, the changes are very similar but the part numbers haven't changed. We really - need a 3rd board to verify */ - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14599f.14", 0x000000, 0x200000, CRC(1de17e83) SHA1(04ee14b863f93b42a5bd1b6da71cff54ef11d4b7) ) - ROM_LOAD16_BYTE( "mpr14598f.5", 0x000001, 0x200000, CRC(cafb0de9) SHA1(94c6bfc7a4081dee373e9466a7b6f80889696087) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "brivalj_mp15637.32", 0x000000, 0x200000, CRC(f39844c0) SHA1(c48dc8cccdd9d3756cf99a983c6a89ed43fcda22) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15635.30", 0x000002, 0x200000, CRC(263cf6d1) SHA1(7accd214502fd050edc0901c9929d6069dae4d00) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15633.28", 0x000004, 0x200000, CRC(44e9a88b) SHA1(57a930b9c3b83c889df54de60c90f847c2dcb614) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15631.26", 0x000006, 0x200000, CRC(e93cf9c9) SHA1(17786cd3ccaef613216db724e923861841c52b45) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15636.31", 0x800000, 0x200000, CRC(079ff77f) SHA1(bdd41acef58c39ba58cf85d307229622877dbdf9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15634.29", 0x800002, 0x200000, CRC(1edc14cd) SHA1(80a281c904560b364fe9f2b8987b7a254220a29f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15632.27", 0x800004, 0x200000, CRC(796215f2) SHA1(d7b393781dbba59c9b1cd600d27e6d91e36ea771) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "brivalj_mp15630.25", 0x800006, 0x200000, CRC(8dabb501) SHA1(c5af2187d00e0b9732a82441f9758b303fecbb2c) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Dark Edge - protected via FD1149 317-0204 -*/ -ROM_START( darkedge ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "epr15246.8", 0x000000, 0x080000, CRC(c0bdceeb) SHA1(9cf670cf9a8691f259c75c1d9c6cb14e8a70bb72) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr15243.36", 0x100000, 0x020000, CRC(08ca5f11) SHA1(c2c48d2f02770941a93794f82cb407d6264904d2) ) - ROM_LOAD( "mpr15242.35", 0x200000, 0x100000, CRC(ffb7d917) SHA1(bfeae1a2bd7250edb695b7034f6b1f851f6fd48a) ) - ROM_LOAD( "mpr15241.34", 0x300000, 0x100000, CRC(8eccc4fe) SHA1(119724b9b6d2b51ad4f065ebf74d200960090e68) ) - ROM_LOAD( "mpr15240.24", 0x400000, 0x100000, CRC(867d59e8) SHA1(fb1c0d26dbb1bde9d8bc86419cd911b8e37bf923) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15248", 0x000000, 0x080000, CRC(185b308b) SHA1(a49c1b752b3c4355560e0cd712fb9a096140e37b) ) - ROM_LOAD16_BYTE( "mpr15247", 0x000001, 0x080000, CRC(be21548c) SHA1(2e315aadc2a0b781c3ee3fe71c75eb1f43514eff) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15249.32", 0x000000, 0x200000, CRC(2b4371a8) SHA1(47f448bfbc068f2d0cdedd81bcd280823d5758a3) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15251.30", 0x000002, 0x200000, CRC(efe2d689) SHA1(af22153ea3afdde3732f881087c642170f91d745) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15253.28", 0x000004, 0x200000, CRC(8356ed01) SHA1(a28747813807361c7d0c722a94e194caea8bfab6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15255.26", 0x000006, 0x200000, CRC(ff04a5b0) SHA1(d4548f9da014ba5249c2f75d654a2a88c095aaf8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15250.31", 0x800000, 0x200000, CRC(c5cab71a) SHA1(111c69c40a39c3fceef38f5876e1dcf7ac2fbee2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15252.29", 0x800002, 0x200000, CRC(f8885fea) SHA1(ef944df5f6fd64813734056ad2a150f518c75459) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15254.27", 0x800004, 0x200000, CRC(7765424b) SHA1(7cd4c275f6333beeea62dd65a769e11650c68923) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15256.25", 0x800006, 0x200000, CRC(44c36b62) SHA1(4c7f2cc4347ef2126dcbf43e8dce8500e52b5f8e) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Dark Edge (Japan) - protected via FD1149 317-0204 -*/ -ROM_START( darkedgj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "epr15244.8", 0x000000, 0x080000, CRC(0db138cb) SHA1(79ccb754e0d816b395b536a6d9c5a6e93168a913) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr15243.36", 0x100000, 0x020000, CRC(08ca5f11) SHA1(c2c48d2f02770941a93794f82cb407d6264904d2) ) - ROM_LOAD( "mpr15242.35", 0x200000, 0x100000, CRC(ffb7d917) SHA1(bfeae1a2bd7250edb695b7034f6b1f851f6fd48a) ) - ROM_LOAD( "mpr15241.34", 0x300000, 0x100000, CRC(8eccc4fe) SHA1(119724b9b6d2b51ad4f065ebf74d200960090e68) ) - ROM_LOAD( "mpr15240.24", 0x400000, 0x100000, CRC(867d59e8) SHA1(fb1c0d26dbb1bde9d8bc86419cd911b8e37bf923) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15248", 0x000000, 0x080000, CRC(185b308b) SHA1(a49c1b752b3c4355560e0cd712fb9a096140e37b) ) - ROM_LOAD16_BYTE( "mpr15247", 0x000001, 0x080000, CRC(be21548c) SHA1(2e315aadc2a0b781c3ee3fe71c75eb1f43514eff) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15249.32", 0x000000, 0x200000, CRC(2b4371a8) SHA1(47f448bfbc068f2d0cdedd81bcd280823d5758a3) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15251.30", 0x000002, 0x200000, CRC(efe2d689) SHA1(af22153ea3afdde3732f881087c642170f91d745) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15253.28", 0x000004, 0x200000, CRC(8356ed01) SHA1(a28747813807361c7d0c722a94e194caea8bfab6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15255.26", 0x000006, 0x200000, CRC(ff04a5b0) SHA1(d4548f9da014ba5249c2f75d654a2a88c095aaf8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15250.31", 0x800000, 0x200000, CRC(c5cab71a) SHA1(111c69c40a39c3fceef38f5876e1dcf7ac2fbee2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15252.29", 0x800002, 0x200000, CRC(f8885fea) SHA1(ef944df5f6fd64813734056ad2a150f518c75459) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15254.27", 0x800004, 0x200000, CRC(7765424b) SHA1(7cd4c275f6333beeea62dd65a769e11650c68923) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15256.25", 0x800006, 0x200000, CRC(44c36b62) SHA1(4c7f2cc4347ef2126dcbf43e8dce8500e52b5f8e) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Dragon Ball Z, VRVS - protected via FD1149 317-0215/0217 -*/ -ROM_START( dbzvrvs ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD( "16543", 0x000000, 0x080000, CRC(7b9bc6f5) SHA1(556fd8471bf471e41fc6a50471c2be1bd6b98697) ) - ROM_LOAD( "16542.a", 0x080000, 0x080000, CRC(6449ab22) SHA1(03e6cdacf77f2ff80dd6798094deac5486f2c840) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "16541", 0x100000, 0x040000, CRC(1d61d836) SHA1(c6b1b54d41d2650abeaf69a31aa76c4462531880) ) - ROM_LOAD( "16540", 0x200000, 0x100000, CRC(b6f9bb43) SHA1(823f29a2fc4b9315e8c58616dbd095d45d366c8b) ) - ROM_LOAD( "16539", 0x300000, 0x100000, CRC(38c26418) SHA1(2442933e13c83209e904c1dec677aeda91b75290) ) - ROM_LOAD( "16538", 0x400000, 0x100000, CRC(4d402c31) SHA1(2df160fd7e70f3d7b52fef2a2082e68966fd1535) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "16545", 0x000000, 0x100000, CRC(51748bac) SHA1(b1cae16b62a8d29117c0adb140eb09c1092f6c37) ) - ROM_LOAD16_BYTE( "16544", 0x000001, 0x100000, CRC(f6c93dfc) SHA1(a006cedb7d0151ccc8d22e6588b1c39e099da182) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "16546", 0x000000, 0x200000, CRC(96f4be31) SHA1(ce3281630180d91de7850e9b1062382817fe0b1d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16548", 0x000002, 0x200000, CRC(00377f59) SHA1(cf0f808d7730f334c5ac80d3171fa457be9ac88e) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16550", 0x000004, 0x200000, CRC(168e8966) SHA1(a18ec30f1358b09bcde6d8d2dbe0a82bea3bdae9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16552", 0x000006, 0x200000, CRC(a31dae31) SHA1(2da2c391f29b5fdb87e3f95d9dabd50370fafa5a) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16547", 0x800000, 0x200000, CRC(50d328ed) SHA1(c4795299f5d7c9f3a847d684d8cde7012d4486f0) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16549", 0x800002, 0x200000, CRC(a5802e9f) SHA1(4cec3ed85a21aaf99b73013795721f212019e619) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16551", 0x800004, 0x200000, CRC(dede05fc) SHA1(51e092579e2b81fb68a9cc54165f80026fe71796) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16553", 0x800006, 0x200000, CRC(c0a43009) SHA1(e4f73768de512046b3e25c4238da811dcc2dde0b) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - F1 Exhaust Note - to display the title screen this will require 2 linked system32 boards to be emulated -*/ -ROM_START( f1en ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr14452a.006", 0x000000, 0x020000, CRC(b5b4a9d9) SHA1(6699c15dc1155c3cee33a06d320acbff0ab5ad11) ) - ROM_LOAD16_BYTE_x2( "epr14445.014", 0x100000, 0x040000, CRC(d06261ab) SHA1(6e1c4ce4e49a142fd5b1ecac98145960d7afd567) ) - ROM_LOAD16_BYTE_x2( "epr14444.007", 0x100001, 0x040000, CRC(07724354) SHA1(9d7f64a80553c4ae0e9cf716478fd5c4b8277470) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr14449.035", 0x100000, 0x020000, CRC(2d29699c) SHA1(cae02e5533a0edd3b3b4a54a1a43321285e06416) ) - ROM_LOAD_x2( "epr14448.031", 0x200000, 0x080000, CRC(87ca1e8d) SHA1(739274171c13983a60d061176095645419dade49) ) - ROM_LOAD_x2( "epr14447.026", 0x300000, 0x080000, CRC(db1cfcbd) SHA1(c76eb2ced5571a548ad00709097dd272747127a2) ) - ROM_LOAD_x2( "epr14446.022", 0x400000, 0x080000, CRC(646ec2cb) SHA1(67e453f128ae227e22c68f55d0d3f5831fbeb2f9) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "mpr14362", 0x000000, 0x040000, CRC(fb1c4e79) SHA1(38ee23763b9e5bb62bbc54cab95041415404f0c4) ) - ROM_LOAD32_BYTE( "mpr14361", 0x000002, 0x040000, CRC(e3204bda) SHA1(34157e80edd6d685bd5a5e23b1e0130a5f3d138a) ) - ROM_LOAD32_BYTE( "mpr14360", 0x000001, 0x040000, CRC(c5e8da79) SHA1(662a6c146fe3d0b8763d845379c06d0ee6ced1ed) ) - ROM_LOAD32_BYTE( "mpr14359", 0x000003, 0x040000, CRC(70305c68) SHA1(7a6a1bf7381eba8cc1c3897497b32ca63316972a) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14370", 0x000000, 0x080000, CRC(fda78289) SHA1(3740affdcc738c50d07ff3e5b592bdf8a8b6be15) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14369", 0x000001, 0x080000, CRC(7765116d) SHA1(9493148aa84adc90143cf638265d4c55bfb43990) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14368", 0x000002, 0x080000, CRC(5744a30e) SHA1(98544fb234a8e93716e951d5414a490845e213c5) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14367", 0x000003, 0x080000, CRC(77bb9003) SHA1(6370fdeab4967976840d752577cd860b9ce8efca) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14366", 0x000004, 0x080000, CRC(21078e83) SHA1(f35f643c28aad3bf18cb9906b114c4f49b7b4cd1) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14365", 0x000005, 0x080000, CRC(36913790) SHA1(4a447cffb44b023fe1441277db1e411d4cd119eb) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14364", 0x000006, 0x080000, CRC(0fa12ecd) SHA1(6a34c7718edffbeddded8786e11cac181b485ebd) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14363", 0x000007, 0x080000, CRC(f3427a56) SHA1(6a99d7432dfff35470ddcca5cfde36689a77e706) , ROM_SKIP(7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - F1 Super Lap - Requires 2 linked system 32 boards to function - protected via FD1149 317-0210 -*/ -ROM_START( f1lap ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "15598", 0x000000, 0x020000, CRC(9feab7cd) SHA1(2a14c0df39e7bdae12a34679fabc6abb7618e27d) ) - ROM_LOAD_x4( "15599", 0x080000, 0x020000, CRC(5c5ac112) SHA1(2c071946e33f0700a832c7aad36f639acd35f555) ) - ROM_LOAD16_BYTE_x2( "15596", 0x100000, 0x040000, CRC(20e92909) SHA1(b974c79e11bfbd1cee61f9041cf79971fd96db3a) ) - ROM_LOAD16_BYTE_x2( "15597", 0x100001, 0x040000, CRC(cd1ccddb) SHA1(ff0371a8010141d1ab81b5eba555ae7c64e5da37) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "15592", 0x100000, 0x020000, CRC(7c055cc8) SHA1(169beb83dfae86dd408aa92b3c214b8f607825fc) ) - ROM_LOAD( "15593", 0x200000, 0x100000, CRC(e7300441) SHA1(33c264f0e6326689ba75026932c0932868e83b25) ) - ROM_LOAD( "15594", 0x300000, 0x100000, CRC(7f4ca3bb) SHA1(dc53a1857d619e574acb4c0587a6ba844df2d283) ) - ROM_LOAD( "15595", 0x400000, 0x100000, CRC(3fbdad9a) SHA1(573ea2242f79c7d3b6bf0e6745f6b07a621834ac) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "15608", 0x000000, 0x200000, CRC(64462c69) SHA1(9501e83c52e3e16f73b94cef975b5a31b2ee5476) ) - ROM_LOAD16_BYTE( "15609", 0x000001, 0x200000, CRC(d586e455) SHA1(aea190d31c590216eb19766ba749b1e9b710bdce) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "15600", 0x000000, 0x200000, CRC(d2698d23) SHA1(996fbcc1d0814e6f14fa7e4870ece077ecda54e6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15602", 0x000002, 0x200000, CRC(1674764d) SHA1(bc39757a5d25df1a088f874ca2442854eb551e48) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15604", 0x000004, 0x200000, CRC(1552bbb9) SHA1(77edd3f9d8dec87fa0445d264309e6164eba9313) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15606", 0x000006, 0x200000, CRC(2b4f5265) SHA1(48b4ccdedb52fbf80661ff380e5a273201fc0a12) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15601", 0x800000, 0x200000, CRC(31a8f40a) SHA1(62798346750dea87e43c8a8b01c33bf886bb50f4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15603", 0x800002, 0x200000, CRC(3805ecbc) SHA1(54d29250441160f282c70adfd515adb21d2cda33) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15605", 0x800004, 0x200000, CRC(cbdbf35e) SHA1(a1c0900ac3210e72f5848561a6c4a77c804782c6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "15607", 0x800006, 0x200000, CRC(6c8817c9) SHA1(f5d493ed4237caf5042e95373bf9abd1fd16f873) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x20000, REGION_USER2, 0 ) /* comms board */ - ROM_LOAD( "15612", 0x00000, 0x20000, CRC(9d204617) SHA1(8db57121065f5d1ac52fcfb88459bdbdc30e645b) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Golden Axe: The Return of Death Adder - protected via a custom V20 with encrypted code -*/ -ROM_START( ga2 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr14961.b", 0x000000, 0x020000, CRC(d9cd8885) SHA1(dc9d1f01770bd23ba5959e300badbc5093a149bc) ) - ROM_LOAD_x4( "epr14958.b", 0x080000, 0x020000, CRC(0be324a3) SHA1(5e5f457548906453eaa8d326c353b47353eab73d) ) - ROM_LOAD16_BYTE_x2( "epr15148.b", 0x100000, 0x040000, CRC(c477a9fd) SHA1(a9d60f801c12fd067e5ad1801a92c84edd13bd08) ) - ROM_LOAD16_BYTE_x2( "epr15147.b", 0x100001, 0x040000, CRC(1bb676ea) SHA1(125ffd13204f48be23e20b281c42c2307888c40b) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x16( "epr14945", 0x100000, 0x010000, CRC(4781d4cb) SHA1(bd1b774b3cd0c3e0290c55e426f66d6820d21d0f) ) - ROM_LOAD( "mpr14944", 0x200000, 0x100000, CRC(fd4d4b86) SHA1(e14b9cd6004bf9ecd902e37b433b828241361b46) ) - ROM_LOAD( "mpr14943", 0x300000, 0x100000, CRC(24d40333) SHA1(38faf8f3eac317a163e93bd2247fe98189b13d2d) ) - ROM_LOAD( "mpr14942", 0x400000, 0x100000, CRC(a89b0e90) SHA1(e14c62418eb7f9a2deb2a6dcf635bedc1c73c253) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU */ - ROM_LOAD( "epr14468", 0x00000, 0x10000, CRC(77634daa) SHA1(339169d164b9ed7dc3787b084d33effdc8e9efc1) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14948", 0x000000, 0x200000, CRC(75050d4a) SHA1(51d6bc9935abcf30af438e69c2cf4e09f57a803f) ) - ROM_LOAD16_BYTE( "mpr14947", 0x000001, 0x200000, CRC(b53e62f4) SHA1(5aa0f198e6eb070b77b0d180d30c0228a9bc691e) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14949", 0x000000, 0x200000, CRC(152c716c) SHA1(448d16ea036b66e886119c00af543dfa5e53fd84) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14951", 0x000002, 0x200000, CRC(fdb1a534) SHA1(3126b595bf69bf9952fedf8f9c6743eb10489dc6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14953", 0x000004, 0x200000, CRC(33bd1c15) SHA1(4e16562e3357d4db54b20543073e8f1fd6f74b1f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14955", 0x000006, 0x200000, CRC(e42684aa) SHA1(12e0f18a11edb46f09e2e8c5c4ba14170d0cf00d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14950", 0x800000, 0x200000, CRC(15fd0026) SHA1(e918984bd60ad63172fe273b31cc9019100228c8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14952", 0x800002, 0x200000, CRC(96f96613) SHA1(4c9808866032dab0401de322c28242e8a8775457) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14954", 0x800004, 0x200000, CRC(39b2ac9e) SHA1(74f4c81d85ab9b4c5e8ae4b4d2c6dff766c482ca) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14956", 0x800006, 0x200000, CRC(298fca50) SHA1(16e09b19cc7be3dfc8e82b45348e6d1cf2ed5621) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Golden Axe: The Return of Death Adder (U.S.) - protected via a custom V20 with encrypted code -*/ -ROM_START( ga2u ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr14960.b", 0x000000, 0x020000, CRC(87182fea) SHA1(bb669ea7091f1ea34589a565490effa934ca44a3) ) - ROM_LOAD_x4( "epr14957.b", 0x080000, 0x020000, CRC(ab787cf4) SHA1(7e19bb3e5d587b5009efc9f9fa52aecaef0eedc4) ) - ROM_LOAD16_BYTE_x2( "epr15146.b", 0x100000, 0x040000, CRC(7293d5c3) SHA1(535a8b4b4a05546b321cee8de6733edfc1f71589) ) - ROM_LOAD16_BYTE_x2( "epr15145.b", 0x100001, 0x040000, CRC(0da61782) SHA1(f0302d747e5d55663095bb38732af423104c33ea) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x16( "epr14945", 0x100000, 0x010000, CRC(4781d4cb) SHA1(bd1b774b3cd0c3e0290c55e426f66d6820d21d0f) ) - ROM_LOAD( "mpr14944", 0x200000, 0x100000, CRC(fd4d4b86) SHA1(e14b9cd6004bf9ecd902e37b433b828241361b46) ) - ROM_LOAD( "mpr14943", 0x300000, 0x100000, CRC(24d40333) SHA1(38faf8f3eac317a163e93bd2247fe98189b13d2d) ) - ROM_LOAD( "mpr14942", 0x400000, 0x100000, CRC(a89b0e90) SHA1(e14c62418eb7f9a2deb2a6dcf635bedc1c73c253) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU */ - ROM_LOAD( "epr14468", 0x00000, 0x10000, CRC(77634daa) SHA1(339169d164b9ed7dc3787b084d33effdc8e9efc1) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14948", 0x000000, 0x200000, CRC(75050d4a) SHA1(51d6bc9935abcf30af438e69c2cf4e09f57a803f) ) - ROM_LOAD16_BYTE( "mpr14947", 0x000001, 0x200000, CRC(b53e62f4) SHA1(5aa0f198e6eb070b77b0d180d30c0228a9bc691e) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14949", 0x000000, 0x200000, CRC(152c716c) SHA1(448d16ea036b66e886119c00af543dfa5e53fd84) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14951", 0x000002, 0x200000, CRC(fdb1a534) SHA1(3126b595bf69bf9952fedf8f9c6743eb10489dc6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14953", 0x000004, 0x200000, CRC(33bd1c15) SHA1(4e16562e3357d4db54b20543073e8f1fd6f74b1f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14955", 0x000006, 0x200000, CRC(e42684aa) SHA1(12e0f18a11edb46f09e2e8c5c4ba14170d0cf00d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14950", 0x800000, 0x200000, CRC(15fd0026) SHA1(e918984bd60ad63172fe273b31cc9019100228c8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14952", 0x800002, 0x200000, CRC(96f96613) SHA1(4c9808866032dab0401de322c28242e8a8775457) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14954", 0x800004, 0x200000, CRC(39b2ac9e) SHA1(74f4c81d85ab9b4c5e8ae4b4d2c6dff766c482ca) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14956", 0x800006, 0x200000, CRC(298fca50) SHA1(16e09b19cc7be3dfc8e82b45348e6d1cf2ed5621) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Golden Axe: The Return of Death Adder (Japan) - protected via a custom V20 with encrypted code -*/ -ROM_START( ga2j ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr14956.17", 0x000000, 0x020000, CRC(f1929177) SHA1(7dc39c40eff9fb46c2e51d1e83478cd6970e3951) ) - ROM_LOAD_x4( "epr14946.8", 0x080000, 0x020000, CRC(eacafe94) SHA1(d41a7e1ee2df9e053b559be0a1a6d2ae520fd3e4) ) - ROM_LOAD16_BYTE_x2( "epr14941.18", 0x100000, 0x040000, CRC(0ffb8203) SHA1(b27dce634d203af8abb6ddfb656d4c48eb54af01) ) - ROM_LOAD16_BYTE_x2( "epr14940.9", 0x100001, 0x040000, CRC(3b5b3084) SHA1(ea17f6b7fd413fe3808f822cec84c993c9b75aa2) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU + banks */ - ROM_LOAD_x16( "epr14945", 0x100000, 0x010000, CRC(4781d4cb) SHA1(bd1b774b3cd0c3e0290c55e426f66d6820d21d0f) ) - ROM_LOAD( "mpr14944", 0x200000, 0x100000, CRC(fd4d4b86) SHA1(e14b9cd6004bf9ecd902e37b433b828241361b46) ) - ROM_LOAD( "mpr14943", 0x300000, 0x100000, CRC(24d40333) SHA1(38faf8f3eac317a163e93bd2247fe98189b13d2d) ) - ROM_LOAD( "mpr14942", 0x400000, 0x100000, CRC(a89b0e90) SHA1(e14c62418eb7f9a2deb2a6dcf635bedc1c73c253) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU */ - ROM_LOAD( "epr1446802.3", 0x00000, 0x10000, CRC(77634daa) SHA1(339169d164b9ed7dc3787b084d33effdc8e9efc1) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr14948", 0x000000, 0x200000, CRC(75050d4a) SHA1(51d6bc9935abcf30af438e69c2cf4e09f57a803f) ) - ROM_LOAD16_BYTE( "mpr14947", 0x000001, 0x200000, CRC(b53e62f4) SHA1(5aa0f198e6eb070b77b0d180d30c0228a9bc691e) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14949", 0x000000, 0x200000, CRC(152c716c) SHA1(448d16ea036b66e886119c00af543dfa5e53fd84) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14951", 0x000002, 0x200000, CRC(fdb1a534) SHA1(3126b595bf69bf9952fedf8f9c6743eb10489dc6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14953", 0x000004, 0x200000, CRC(33bd1c15) SHA1(4e16562e3357d4db54b20543073e8f1fd6f74b1f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14955", 0x000006, 0x200000, CRC(e42684aa) SHA1(12e0f18a11edb46f09e2e8c5c4ba14170d0cf00d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14950", 0x800000, 0x200000, CRC(15fd0026) SHA1(e918984bd60ad63172fe273b31cc9019100228c8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14952", 0x800002, 0x200000, CRC(96f96613) SHA1(4c9808866032dab0401de322c28242e8a8775457) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14954", 0x800004, 0x200000, CRC(39b2ac9e) SHA1(74f4c81d85ab9b4c5e8ae4b4d2c6dff766c482ca) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr14956", 0x800006, 0x200000, CRC(298fca50) SHA1(16e09b19cc7be3dfc8e82b45348e6d1cf2ed5621) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Hard Dunk (Multi-32) - not protected -*/ -ROM_START( harddunk ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x2( "ep16512.37", 0x000000, 0x40000, CRC(1a7de085) SHA1(2e0dac1f7715089b7f6b1035c859ffe2d674932f) ) - /* the following is the same as 16509.40 but with a different name, unusual for Sega */ - ROM_LOAD32_WORD_x2( "ep16513.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) - ROM_LOAD16_BYTE( "16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mp16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) ) - ROM_LOAD( "mp16507.2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) ) -ROM_END - -/************************************************************************************************************************** - Hard Dunk (Japan) (Multi-32) - not protected -*/ -ROM_START( harddunj ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x2( "16508.37", 0x000000, 0x40000, CRC(b3713be5) SHA1(8123638a838e41fcc0d32e14382421b521eff94f) ) - ROM_LOAD32_WORD_x2( "16509.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) - ROM_LOAD16_BYTE( "16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mp16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) ) - ROM_LOAD( "mp16507.2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Holosseum - not protected -*/ -ROM_START( holo ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr14977.a", 0x000000, 0x020000, CRC(e0d7e288) SHA1(3126041ba73f21fac0207bf5c63230c61180f564) ) - ROM_LOAD_x4( "epr14976.a", 0x080000, 0x020000, CRC(e56f13be) SHA1(3d9e7add8feaa35c4c2e8bda84ae251087bd5e40) ) - ROM_LOAD16_BYTE_x4( "epr15011", 0x100000, 0x020000, CRC(b9f59f59) SHA1(f8c91fa877cf53153bec3d7850eab38227cc18ba) ) - ROM_LOAD16_BYTE_x4( "epr15010", 0x100001, 0x020000, CRC(0c09c57b) SHA1(028a9fe1c625be218ba90906308d25d69d4de4c4) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr14965", 0x100000, 0x020000, CRC(3a918cfe) SHA1(f43ecbc9e774873e868bc921321541b308ea1a3c) ) - ROM_LOAD( "mpr14964", 0x200000, 0x100000, CRC(7ff581d5) SHA1(ab81bd70937319e4edc8924bdb493d5ef1ec096a) ) - ROM_LOAD( "mpr14963", 0x300000, 0x100000, CRC(0974a60e) SHA1(87d770edcee9c9e8f37d36ab28c5aa5d685ea849) ) - ROM_LOAD( "mpr14962", 0x400000, 0x100000, CRC(6b2e694e) SHA1(7874bdfd534231c7756e0e0d9fc7a3d5bdba74d3) ) - - ROM_REGION( 0x000100, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - /* game doesn't use bg tilemaps */ - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr14973", 0x000000, 0x100000, CRC(b3c3ff6b) SHA1(94e8dbfae37a5b122ee3d471aad1f758e4a39b9e) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14972", 0x000001, 0x100000, CRC(0c161374) SHA1(413ab45deb687ecdbdc06ae98aa32ad8a0d80e0c) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14971", 0x000002, 0x100000, CRC(dfcf6fdf) SHA1(417291b54010be20dd6738a70d372b580615a8bb) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14970", 0x000003, 0x100000, CRC(cae3a745) SHA1(b6cc1f4abb460cda4714967e880928dc727ecf0a) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14969", 0x000004, 0x100000, CRC(c06b7c15) SHA1(8b97a899e6eacf798b9f55af8df95e12ccacadec) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14968", 0x000005, 0x100000, CRC(f413894a) SHA1(d65f57b1e55199e901c7c2f701589c46eeab739a) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14967", 0x000006, 0x100000, CRC(5377fce0) SHA1(baf8f82ab851b24202938fc7213d72324b9b92c0) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr14966", 0x000007, 0x100000, CRC(dffba2e9) SHA1(b97e47e78abb8302bc2c87681643382203bd76eb) , ROM_SKIP(7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Jurassic Park - not protected -*/ -ROM_START( jpark ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "epr16402a.8", 0x000000, 0x80000, CRC(c70db239) SHA1(fd79dfd1ce194fcc8ccb58117bc845cdfe9943b1) ) - ROM_LOAD16_BYTE( "epr16395.18", 0x100000, 0x80000, CRC(ac5a01d6) SHA1(df6bffdf5723cb8790a9c1c0ab271989a758bdd8) ) - ROM_LOAD16_BYTE( "epr16394.9", 0x100001, 0x80000, CRC(c08c3a8a) SHA1(923cf256d863656336401fa75103b42298cb3822) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr16399.36", 0x100000, 0x040000, CRC(b09b2fe3) SHA1(bf8d646bab65fcc4ece8c2bd9a3df389e5860ed6) ) - ROM_LOAD( "mpr16398.35", 0x200000, 0x100000, CRC(fa710ca6) SHA1(1fd625070eef5f99d7be07606aeeff9282e32532) ) - ROM_LOAD( "mpr16397.34", 0x300000, 0x100000, CRC(6e96e0be) SHA1(422b783b72127b80a23043b2dd1c04f5772f436e) ) - ROM_LOAD( "mpr16396.24", 0x400000, 0x100000, CRC(f69a2dc4) SHA1(3f02b10976852916c58e852f3161a857784fe36b) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr16404.14", 0x000000, 0x200000, CRC(11283807) SHA1(99e465c3fc31e640740b8257a349e203f026754a) ) - ROM_LOAD16_BYTE( "mpr16403.5", 0x000001, 0x200000, CRC(02530a9b) SHA1(b43e1b47f74c801bfc599cbe893fb8dc13453dd0) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr16405.32", 0x000000, 0x200000, CRC(b425f182) SHA1(66c6bd29dd3450db816b895c4c9c5208a66aae67) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16407.30", 0x000002, 0x200000, CRC(bc49ffd9) SHA1(a50ba7ddccfdfd7638c4041978b39c1559afbbb4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16409.28", 0x000004, 0x200000, CRC(fe73660d) SHA1(ec1a3ea5303d2ccb9e327da18476969953626e1c) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16411.26", 0x000006, 0x200000, CRC(71cabbc5) SHA1(9760f57ef43eb251488dadd37711d5682d902434) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16406.31", 0x800000, 0x200000, CRC(b9ed73d6) SHA1(0dd22e7a21e95d84fc91acd742c737f96529f515) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16408.29", 0x800002, 0x200000, CRC(7b2f476b) SHA1(da99a9911982ba8aaef8c9aecc2977c9fd6da094) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16410.27", 0x800004, 0x200000, CRC(49c8f952) SHA1(f26b818711910b10bf520e5f849a1478a6b1d6e6) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16412.25", 0x800006, 0x200000, CRC(105dc26e) SHA1(fd2ef8c9fe1a78b4f9cc891a6fbd060184e58a1f) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* unused */ - ROM_LOAD( "epr13908.xx", 0x00000, 0x8000, CRC(6228c1d2) SHA1(bd37fe775534fb94c9af80546948ce5f9c47bbf5) ) /* cabinet movement */ -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Outrunners (Multi-32) - not protected -*/ -ROM_START( orunners ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x4( "epr15620.37", 0x000000, 0x020000, CRC(84f5ad92) SHA1(1f9cb04b42b2d450be93400d9979a7910eaf05d1) ) - ROM_LOAD32_WORD_x4( "epr15621.40", 0x000002, 0x020000, CRC(d98b765a) SHA1(b58567e976228267a86af53de2135bc0b247a44a) ) - ROM_LOAD32_WORD( "mpr15538.bin", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) - ROM_LOAD32_WORD( "mpr15539.bin", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) - ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) - ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) -ROM_END - -ROM_START( orunneru ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x4( "epr15618.37", 0x000000, 0x020000, CRC(25647f76) SHA1(9f882921ebb2f078350295c322b263f75812c053) ) - ROM_LOAD32_WORD_x4( "epr15619.40", 0x000002, 0x020000, CRC(2a558f95) SHA1(616ec0a7b251da61a49b933c58895b1a4d39417a) ) - ROM_LOAD32_WORD( "mpr15538.bin", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) - ROM_LOAD32_WORD( "mpr15539.bin", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) - ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) - ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Rad Mobile - not protected - - GAME BD NO. 833-7738-02 - 1. ROM BD. 834-7739-02 - 2. MAIN BD. 837-7428 - A/D BD NO. 837-7536 -*/ -ROM_START( radm ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr-13693.ic21", 0x000000, 0x020000, CRC(3f09a211) SHA1(e0e011d7069745e9bf0395bc1375d0f8b9c46dab) ) - ROM_LOAD16_BYTE( "epr-13525.ic37", 0x100000, 0x080000, CRC(62ad83a0) SHA1(b537176ebca15d91db04d5d7ab36aa967d41288e) ) - ROM_LOAD16_BYTE( "epr-13526.ic38", 0x100001, 0x080000, CRC(59ea372a) SHA1(e7a5d59586652c59c23e07e0a99ecc740fb6144d) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr-13527.ic9", 0x100000, 0x020000, CRC(a2e3fbbe) SHA1(2787bbef696ab3f2b7855ac991867837d3de54cd) ) - ROM_LOAD_x2( "epr-13523.ic14", 0x200000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) ) - ROM_LOAD_x2( "epr-13699.ic20", 0x300000, 0x080000, CRC(33fd2913) SHA1(60b664559b4989446b1c7d875432e53a36fe27df) ) - ROM_LOAD_x2( "epr-13523.ic14", 0x400000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "mpr-13519.ic3", 0x000000, 0x080000, CRC(bedc9534) SHA1(7b3f7a47b6c0ca6707dc3c1167f3564d43adb32f) ) - ROM_LOAD32_BYTE( "mpr-13520.ic7", 0x000002, 0x080000, CRC(3532e91a) SHA1(669c8d27b4b48e1ab9d6d30b0994f5a4e5169118) ) - ROM_LOAD32_BYTE( "mpr-13521.ic12", 0x000001, 0x080000, CRC(e9bca903) SHA1(18a73c830b9755262a1c525e3ad5ae084117b64d) ) - ROM_LOAD32_BYTE( "mpr-13522.ic18", 0x000003, 0x080000, CRC(25e04648) SHA1(617e794e8f7aa2a435bac917b8968699fe88dafb) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr-13511.ic1", 0x000000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13512.ic5", 0x000001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13513.ic10", 0x000002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13514.ic16", 0x000003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13515.ic2", 0x000004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13516.ic6", 0x000005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13517.ic11", 0x000006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13518.ic17", 0x000007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) ) - - ROM_REGION( 0x8000, REGION_USER2, 0 ) /* unused (cabinet motor?) */ - ROM_LOAD( "epr-13686.bin", 0x00000, 0x8000, CRC(317a2857) SHA1(e0788dc7a7d214d9c4d26b24e44c1a0dc9ae477c) ) /* cabinet movement */ -ROM_END - -/************************************************************************************************************************** - Rad Mobile (U.S.) - not protected - - GAME BD NO. 833-7738-01 - 1. ROM BD. 834-7739-01 - 2. MAIN BD. 837-7428 - A/D BD NO. 837-7536 -*/ -ROM_START( radmu ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr-13690.ic21", 0x000000, 0x020000, CRC(21637dec) SHA1(b9921effb10a72f3bdca4d540149c7f46662b716) ) - ROM_LOAD16_BYTE( "epr-13525.ic37", 0x100000, 0x080000, CRC(62ad83a0) SHA1(b537176ebca15d91db04d5d7ab36aa967d41288e) ) - ROM_LOAD16_BYTE( "epr-13526.ic38", 0x100001, 0x080000, CRC(59ea372a) SHA1(e7a5d59586652c59c23e07e0a99ecc740fb6144d) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr-13527.ic9", 0x100000, 0x020000, CRC(a2e3fbbe) SHA1(2787bbef696ab3f2b7855ac991867837d3de54cd) ) - ROM_LOAD_x2( "epr-13523.ic14", 0x200000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) ) - ROM_LOAD_x2( "epr-13699.ic20", 0x300000, 0x080000, CRC(33fd2913) SHA1(60b664559b4989446b1c7d875432e53a36fe27df) ) - ROM_LOAD_x2( "epr-13523.ic14", 0x400000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "mpr-13519.ic3", 0x000000, 0x080000, CRC(bedc9534) SHA1(7b3f7a47b6c0ca6707dc3c1167f3564d43adb32f) ) - ROM_LOAD32_BYTE( "mpr-13520.ic7", 0x000002, 0x080000, CRC(3532e91a) SHA1(669c8d27b4b48e1ab9d6d30b0994f5a4e5169118) ) - ROM_LOAD32_BYTE( "mpr-13521.ic12", 0x000001, 0x080000, CRC(e9bca903) SHA1(18a73c830b9755262a1c525e3ad5ae084117b64d) ) - ROM_LOAD32_BYTE( "mpr-13522.ic18", 0x000003, 0x080000, CRC(25e04648) SHA1(617e794e8f7aa2a435bac917b8968699fe88dafb) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr-13511.ic1", 0x000000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13512.ic5", 0x000001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13513.ic10", 0x000002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13514.ic16", 0x000003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13515.ic2", 0x000004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13516.ic6", 0x000005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13517.ic11", 0x000006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr-13518.ic17", 0x000007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) ) - - ROM_REGION( 0x8000, REGION_USER2, 0 ) /* unused (cabinet motor?) */ - ROM_LOAD( "epr-13686.bin", 0x00000, 0x8000, CRC(317a2857) SHA1(e0788dc7a7d214d9c4d26b24e44c1a0dc9ae477c) ) /* cabinet movement */ -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Rad Rally - not protected -*/ -ROM_START( radr ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr14241.06", 0x000000, 0x020000, CRC(59a5f63d) SHA1(325a26a09475ddc828de71e71a1d3043f3959cec) ) - ROM_LOAD16_BYTE( "epr14106.14", 0x100000, 0x080000, CRC(e73c63bf) SHA1(30fb68eaa7d02a232c873bd7751cac7d0fa08e44) ) - ROM_LOAD16_BYTE( "epr14107.07", 0x100001, 0x080000, CRC(832f797a) SHA1(b0c16ef7bd8d37f592975052ba9da3da70a2fc79) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr14108.35", 0x100000, 0x020000, CRC(38a99b4d) SHA1(b6455e6b29bfef41c5e0ebe3a8064889b7e5f5fd) ) - ROM_LOAD_x2( "epr14109.31", 0x200000, 0x080000, CRC(b42e5833) SHA1(da94ce7c1d7a581a1aa6b79b323c67a919918808) ) - ROM_LOAD_x2( "epr14110.26", 0x300000, 0x080000, CRC(b495e7dc) SHA1(b4143fcee10e0649378fdb1e3f5a0a2c585414ec) ) - ROM_LOAD_x2( "epr14237.22", 0x400000, 0x080000, CRC(0a4b4b29) SHA1(98447a587f903ba03e17d6a145b7c8bfddf25c4d) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "epr14102.38", 0x000000, 0x040000, CRC(5626e80f) SHA1(9844817295a8cd8a9b09da6681b0c1fbfe82618e) ) - ROM_LOAD32_BYTE( "epr14103.34", 0x000002, 0x040000, CRC(08c7e804) SHA1(cf45b1934edc43cb3a0ed72159949cb0dd00d701) ) - ROM_LOAD32_BYTE( "epr14104.29", 0x000001, 0x040000, CRC(b0173646) SHA1(1ba4edc033e0e4f5a1e02987e9f6b8b1650b46d7) ) - ROM_LOAD32_BYTE( "epr14105.25", 0x000003, 0x040000, CRC(614843b6) SHA1(d4f2cd3b024f7152d6e89237f0da06adea2efe57) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr13511.36", 0x000000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13512.32", 0x000001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13513.27", 0x000002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13514.23", 0x000003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13515.37", 0x000004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13516.33", 0x000005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13517.28", 0x000006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13518.24", 0x000007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) ) - - ROM_REGION( 0x8000, REGION_USER2, 0 ) /* unused */ - ROM_LOAD( "epr14084.17", 0x00000, 0x8000, CRC(f14ed074) SHA1(e1bb23eac85e3236046527c5c7688f6f23d43aef) ) /* cabinet link */ -ROM_END - -/************************************************************************************************************************** - Rad Rally (U.S.) - not protected -*/ -ROM_START( radru ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x8( "epr14240.bin", 0x000000, 0x020000, CRC(8473e7ab) SHA1(fbd883dc804d7de6ce239b68c6e6ae3a54e9e03c) ) - ROM_LOAD16_BYTE( "epr14106.14", 0x100000, 0x080000, CRC(e73c63bf) SHA1(30fb68eaa7d02a232c873bd7751cac7d0fa08e44) ) - ROM_LOAD16_BYTE( "epr14107.07", 0x100001, 0x080000, CRC(832f797a) SHA1(b0c16ef7bd8d37f592975052ba9da3da70a2fc79) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr14108.35", 0x100000, 0x020000, CRC(38a99b4d) SHA1(b6455e6b29bfef41c5e0ebe3a8064889b7e5f5fd) ) - ROM_LOAD_x2( "epr14109.31", 0x200000, 0x080000, CRC(b42e5833) SHA1(da94ce7c1d7a581a1aa6b79b323c67a919918808) ) - ROM_LOAD_x2( "epr14110.26", 0x300000, 0x080000, CRC(b495e7dc) SHA1(b4143fcee10e0649378fdb1e3f5a0a2c585414ec) ) - ROM_LOAD_x2( "epr14237.22", 0x400000, 0x080000, CRC(0a4b4b29) SHA1(98447a587f903ba03e17d6a145b7c8bfddf25c4d) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "epr14102.38", 0x000000, 0x040000, CRC(5626e80f) SHA1(9844817295a8cd8a9b09da6681b0c1fbfe82618e) ) - ROM_LOAD32_BYTE( "epr14103.34", 0x000002, 0x040000, CRC(08c7e804) SHA1(cf45b1934edc43cb3a0ed72159949cb0dd00d701) ) - ROM_LOAD32_BYTE( "epr14104.29", 0x000001, 0x040000, CRC(b0173646) SHA1(1ba4edc033e0e4f5a1e02987e9f6b8b1650b46d7) ) - ROM_LOAD32_BYTE( "epr14105.25", 0x000003, 0x040000, CRC(614843b6) SHA1(d4f2cd3b024f7152d6e89237f0da06adea2efe57) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr13511.36", 0x000000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13512.32", 0x000001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13513.27", 0x000002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13514.23", 0x000003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13515.37", 0x000004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13516.33", 0x000005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13517.28", 0x000006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) ) - ROMX_LOAD( "mpr13518.24", 0x000007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) ) - - ROM_REGION( 0x8000, REGION_USER2, 0 ) /* unused */ - ROM_LOAD( "epr14084.17", 0x00000, 0x8000, CRC(f14ed074) SHA1(e1bb23eac85e3236046527c5c7688f6f23d43aef) ) /* cabinet link */ -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Slipstream -*/ -ROM_START( slipstrm ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x2( "slipstrm.u6", 0x000000, 0x080000, CRC(7d066307) SHA1(d87e04167263b435b77830db02ed58651ccc020c) ) - ROM_LOAD16_BYTE( "slipstrm.u14",0x100000, 0x080000, CRC(c3ff6309) SHA1(dcc857736fe0f15aa7909c3ee88a7e239c8f0228) ) - ROM_LOAD16_BYTE( "slipstrm.u7", 0x100001, 0x080000, CRC(0e605c81) SHA1(47c64195cab9a07b234d5a375d26168e53ffaa17) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "slipstrm.u35", 0x100000, 0x020000, CRC(0fee2278) SHA1(7533a03c3fc46d65dfdd07bddf1e6e0bbc368752) ) - ROM_LOAD_x2( "slipstrm.u31", 0x200000, 0x080000, CRC(ae7be5f2) SHA1(ba089355e64864435bcc3b0c208e4bce1ea66295) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "slipstrm.u38", 0x000000, 0x080000, CRC(3cbb2d0b) SHA1(b94006347b72cd60a889b0e279f62f677cedfd2e) ) - ROM_LOAD32_BYTE( "slipstrm.u34", 0x000002, 0x080000, CRC(4167be55) SHA1(96b34d311b318c00c3fad917e341589a70ba0a15) ) - ROM_LOAD32_BYTE( "slipstrm.u29", 0x000001, 0x080000, CRC(52c4bb85) SHA1(4fbee1072a19c75c25b5fd269acc75640923d69c) ) - ROM_LOAD32_BYTE( "slipstrm.u25", 0x000003, 0x080000, CRC(4948604a) SHA1(d5a1b9781fef7976a59a0af9b755a04fcacf9381) ) - - ROM_REGION32_BE( 0x400000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "slipstrm.u36", 0x000000, 0x80000, CRC(cffe9e0d) SHA1(5272d54ff142de927a9abd61f3646e963c7d22c4) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u32", 0x000001, 0x80000, CRC(4ebd1383) SHA1(ce35f4d15e7904bfde55e58cdde925cba8002763) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u27", 0x000002, 0x80000, CRC(b3cf4fe2) SHA1(e13199522e1e3e8b9cfe72cc29b33f25dad542ef) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u23", 0x000003, 0x80000, CRC(c6345391) SHA1(155758097911ffca0c5c0b2a24a8033339dcfcbb) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u37", 0x000004, 0x80000, CRC(2de4288e) SHA1(8e794f79f506293edb7609187a7908516ce76849) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u33", 0x000005, 0x80000, CRC(6cfb74fb) SHA1(b74c886959910cd069427418525b23300a9b7b18) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u28", 0x000006, 0x80000, CRC(53234bf4) SHA1(1eca538dcb86e44c31310ab1ab42a2b66b69c8fe) , ROM_SKIP(7) ) - ROMX_LOAD( "slipstrm.u24", 0x000007, 0x80000, CRC(22c129cf) SHA1(0f64680511a357038f6a556253c13fbb5417dd1a) , ROM_SKIP(7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Sonic the Hedgehog - protected -*/ -ROM_START( sonic ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr-c-87.17", 0x000000, 0x020000, CRC(25e3c27e) SHA1(8f173cd5c7c817dcccdcad9be5781cfaa081d73e) ) - ROM_LOAD_x4( "epr-c-86.8", 0x080000, 0x020000, CRC(efe9524c) SHA1(8020e734704a8f989919ee5ad92f70035de717f0) ) - ROM_LOAD16_BYTE_x2( "epr-c-81.18", 0x100000, 0x040000, CRC(65b06c25) SHA1(9f524012a7adbc71737f90fc556f0ce9adc2bcf8) ) - ROM_LOAD16_BYTE_x2( "epr-c-80.9", 0x100001, 0x040000, CRC(2db66fd2) SHA1(54582c0d5977649a38fc3a2c0fe4d7b1959abc76) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr15785.36", 0x100000, 0x040000, CRC(0fe7422e) SHA1(b7eaf4736ba155965317bb4ef3b33fc122635151) ) - ROM_LOAD( "mpr15784.35", 0x200000, 0x100000, CRC(42f06714) SHA1(30e45bb2d9b492f0c1acc4fbe1e5869f0559300b) ) - ROM_LOAD( "mpr15783.34", 0x300000, 0x100000, CRC(e4220eea) SHA1(a546c8bfc24e0695cf79c49e1a867d2595a1ed7f) ) - ROM_LOAD( "mpr15782.33", 0x400000, 0x100000, CRC(cf56b5a0) SHA1(5786228aab120c3361524ba93b418b24fd5b8ffb) ) // (this is the only rom unchanged from the prototype) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr15789.14", 0x000000, 0x100000, CRC(4378f12b) SHA1(826e0550a3c5f2b6e59c6531ac03658a4f826651) ) - ROM_LOAD16_BYTE( "mpr15788.5", 0x000001, 0x100000, CRC(a6ed5d7a) SHA1(d30f26b452d380e7657e044e144f7dbbc4dc13e5) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr15790.32", 0x000000, 0x200000, CRC(c69d51b1) SHA1(7644fb64457855f9ed87ca25ddc28c21bcb61fd9) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15792.30", 0x000002, 0x200000, CRC(1006bb67) SHA1(38c752e634aa94b1a23c09c4dba6388b7d0358af) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15794.28", 0x000004, 0x200000, CRC(8672b480) SHA1(61659e3856cdff0b2bca190a7e60c81b86ea2089) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15796.26", 0x000006, 0x200000, CRC(95b8011c) SHA1(ebc56ae49a76d04de60b0f81506769219a9885a7) , ROM_SKIP(6)|ROM_GROUPWORD ) - - // NOTE: these last 4 are in fact 16 megabit ROMs, - // but they were dumped as 8 because the top half - // is "FF" in all of them. - ROMX_LOAD( "mpr15791.31", 0x800000, 0x100000, CRC(42217066) SHA1(46d14c632da1bed02bc0a637e34ab9cbf356c5de) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15793.29", 0x800002, 0x100000, CRC(75bafe55) SHA1(ad33dae062c4bdf8d17d3f6f7c333aa2e7da260e) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15795.27", 0x800004, 0x100000, CRC(7f3dad30) SHA1(84be1c31df35e1c7fef77e83d6d135378789a1ef) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr15797.25", 0x800006, 0x100000, CRC(013c6cab) SHA1(eb9b77d28815d2e225b0882706084a52b11c48ea) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Sonic the Hedgehog (prototype) - not protected -*/ -ROM_START( sonicp ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "sonpg0.bin", 0x000000, 0x20000, CRC(da05dcbb) SHA1(c2ced1f3aee92b0e531d5cd7611d4811f2ae95e7) ) - ROM_LOAD_x4( "sonpg1.bin", 0x080000, 0x20000, CRC(c57dc5c5) SHA1(5741bdd52ee7181d883129885838b36f4af8a04c) ) - ROM_LOAD16_BYTE_x2( "sonpd0.bin", 0x100000, 0x40000, CRC(a7da7546) SHA1(0a10573b21cd38d58380698bc18b0256dbb24044) ) - ROM_LOAD16_BYTE_x2( "sonpd1.bin", 0x100001, 0x40000, CRC(c30e4c70) SHA1(897b6f62921694fe3c63677908f76eaf38b7b92f) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "sonsnd0.bin", 0x100000, 0x040000, CRC(569c8d4b) SHA1(9f1f6da6adbea043cc5ad853806fcb7bf683c832) ) - ROM_LOAD( "sonsnd1.bin", 0x200000, 0x100000, CRC(f4fa5a21) SHA1(14a364ba7744ff0b44423d8d6bab990fe534ff29) ) - ROM_LOAD( "sonsnd2.bin", 0x300000, 0x100000, CRC(e1bd45a5) SHA1(b411757853d61588e5223b48b5124cc00b3d65dd) ) - ROM_LOAD( "sonsnd3.bin", 0x400000, 0x100000, CRC(cf56b5a0) SHA1(5786228aab120c3361524ba93b418b24fd5b8ffb) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "sonscl0.bin", 0x000000, 0x080000, CRC(445e31b9) SHA1(5678dfda74a09b5ac673448b222d11df4ca23aff) ) - ROM_LOAD32_BYTE( "sonscl1.bin", 0x000002, 0x080000, CRC(3d234181) SHA1(2e8c14ad36be76f5f5fc6a3ee152f1abc8bf0ddd) ) - ROM_LOAD32_BYTE( "sonscl2.bin", 0x000001, 0x080000, CRC(a5de28b2) SHA1(49a16ac10cf01b5b8802b8b015a2e403086c206a) ) - ROM_LOAD32_BYTE( "sonscl3.bin", 0x000003, 0x080000, CRC(7ce7554b) SHA1(8def3acae6baafbe9e350f18e245a9a833df5cc4) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "sonobj0.bin", 0x000000, 0x100000, CRC(ceea18e3) SHA1(f902a7e2f8e126fd7a7862c55de32ce6352a7716) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj1.bin", 0x000001, 0x100000, CRC(6bbc226b) SHA1(5ef4256b6a93891daf1349def6db3bc428e5f4f3) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj2.bin", 0x000002, 0x100000, CRC(fcd5ef0e) SHA1(e3e50d4838ac3cce41d69ee6cd31981fbe422a4b) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj3.bin", 0x000003, 0x100000, CRC(b99b42ab) SHA1(60d91dc4e8e0adc62809cd2e71833c658124fbfc) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj4.bin", 0x000004, 0x100000, CRC(c7ec1456) SHA1(d866b9dff546bd6feb43e317328ac0a2324303b9) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj5.bin", 0x000005, 0x100000, CRC(bd5da27f) SHA1(ab3043190a32b555513a29a70e01547daf698cf8) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj6.bin", 0x000006, 0x100000, CRC(313c92d1) SHA1(a5134750667502811fd755cc0974a744cdb785e1) , ROM_SKIP(7) ) - ROMX_LOAD( "sonobj7.bin", 0x000007, 0x100000, CRC(3784c507) SHA1(8ea58c52b09b84643218e26f1ec1fa0ea864346e) , ROM_SKIP(7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Spiderman - not protected -*/ -ROM_START( spidman ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "14307", 0x000000, 0x020000, CRC(d900219c) SHA1(d59654db1fc0ec4d5f8cda9000ab4bd3bb36cdfc) ) - ROM_LOAD_x4( "14306", 0x080000, 0x020000, CRC(64379dc6) SHA1(7efc7175351186c54f141161a395e63b1cc7e7a5) ) - ROM_LOAD16_BYTE_x4( "14281", 0x100000, 0x020000, CRC(8a746c42) SHA1(fa3729ec3aa4b3c59322408146ce2cfbf5a11b98) ) - ROM_LOAD16_BYTE_x4( "14280", 0x100001, 0x020000, CRC(3c8148f7) SHA1(072b7982bb95e7a9ab77844b59020146c262488d) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "14285", 0x100000, 0x040000, CRC(25aefad6) SHA1(10153f4e773a0f55378f869eb1d85156e85f893f) ) - ROM_LOAD_x2( "14284", 0x200000, 0x080000, CRC(760542d4) SHA1(dcac73869c02fefd328bd6bdbcbdb3b68b0647da) ) - ROM_LOAD_x2( "14283", 0x300000, 0x080000, CRC(c863a91c) SHA1(afdc76bbb9b207cfcb47d437248a757d03212f4e) ) - ROM_LOAD_x2( "14282", 0x400000, 0x080000, CRC(ea20979e) SHA1(9b70ef055da8c7c56da54b7edef2379678e7c50f) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "14291", 0x000000, 0x100000, CRC(490f95a1) SHA1(f220788670b76164ac414ed9b16a422f719be267) ) - ROM_LOAD32_BYTE( "14290", 0x000002, 0x100000, CRC(a144162d) SHA1(d43f12dd9f690cdfcebb6c7b515ff7dc7dcaa377) ) - ROM_LOAD32_BYTE( "14289", 0x000001, 0x100000, CRC(38570582) SHA1(a9d810a02a1f5a6849c79d65fbebff21a4b82b59) ) - ROM_LOAD32_BYTE( "14288", 0x000003, 0x100000, CRC(3188b636) SHA1(bc0adeeca5040caa563ee1e0eded9c323ca23446) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "14299", 0x000000, 0x100000, CRC(ce59231b) SHA1(bcb1f11b74935694d0617ec8df66db2cc57b6219) , ROM_SKIP(7) ) - ROMX_LOAD( "14298", 0x000001, 0x100000, CRC(2745c84c) SHA1(5a0528c921cba7a1047d3a2ece79925103d719a1) , ROM_SKIP(7) ) - ROMX_LOAD( "14297", 0x000002, 0x100000, CRC(29cb9450) SHA1(7dc38d23a2f0cee2f4edde05c1a6f0dc83f331db) , ROM_SKIP(7) ) - ROMX_LOAD( "14296", 0x000003, 0x100000, CRC(9d8cbd31) SHA1(55a9f9ec9029157da033e69664b58e694a28db47) , ROM_SKIP(7) ) - ROMX_LOAD( "14295", 0x000004, 0x100000, CRC(29591f50) SHA1(1ac4ceaf74892e30f210ad77024eb441c5e4a959) , ROM_SKIP(7) ) - ROMX_LOAD( "14294", 0x000005, 0x100000, CRC(fa86b794) SHA1(7b6907e5734fbf2fba7bcc213a8551fec5e9f3d5) , ROM_SKIP(7) ) - ROMX_LOAD( "14293", 0x000006, 0x100000, CRC(52899269) SHA1(ff809ff88701109e0ca79e785a61402d97335cec) , ROM_SKIP(7) ) - ROMX_LOAD( "14292", 0x000007, 0x100000, CRC(41f71443) SHA1(351d40d6159cb5b792519bce5d16490965800cfb) , ROM_SKIP(7) ) -ROM_END - -/************************************************************************************************************************** - Spiderman (U.S.) - not protected -*/ -ROM_START( spidmanu ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "14303", 0x000000, 0x020000, CRC(7f1bd28f) SHA1(cff57e66d09682baf44aace99d698ad305f6a3d5) ) - ROM_LOAD_x4( "14302", 0x080000, 0x020000, CRC(d954c40a) SHA1(436c81779274861de79dc6ce2c0fcc65bfd52098) ) - ROM_LOAD16_BYTE_x4( "14281", 0x100000, 0x020000, CRC(8a746c42) SHA1(fa3729ec3aa4b3c59322408146ce2cfbf5a11b98) ) - ROM_LOAD16_BYTE_x4( "14280", 0x100001, 0x020000, CRC(3c8148f7) SHA1(072b7982bb95e7a9ab77844b59020146c262488d) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "14285", 0x100000, 0x040000, CRC(25aefad6) SHA1(10153f4e773a0f55378f869eb1d85156e85f893f) ) - ROM_LOAD_x2( "14284", 0x200000, 0x080000, CRC(760542d4) SHA1(dcac73869c02fefd328bd6bdbcbdb3b68b0647da) ) - ROM_LOAD_x2( "14283", 0x300000, 0x080000, CRC(c863a91c) SHA1(afdc76bbb9b207cfcb47d437248a757d03212f4e) ) - ROM_LOAD_x2( "14282", 0x400000, 0x080000, CRC(ea20979e) SHA1(9b70ef055da8c7c56da54b7edef2379678e7c50f) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD32_BYTE( "14291", 0x000000, 0x100000, CRC(490f95a1) SHA1(f220788670b76164ac414ed9b16a422f719be267) ) - ROM_LOAD32_BYTE( "14290", 0x000002, 0x100000, CRC(a144162d) SHA1(d43f12dd9f690cdfcebb6c7b515ff7dc7dcaa377) ) - ROM_LOAD32_BYTE( "14289", 0x000001, 0x100000, CRC(38570582) SHA1(a9d810a02a1f5a6849c79d65fbebff21a4b82b59) ) - ROM_LOAD32_BYTE( "14288", 0x000003, 0x100000, CRC(3188b636) SHA1(bc0adeeca5040caa563ee1e0eded9c323ca23446) ) - - ROM_REGION32_BE( 0x800000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "14299", 0x000000, 0x100000, CRC(ce59231b) SHA1(bcb1f11b74935694d0617ec8df66db2cc57b6219) , ROM_SKIP(7) ) - ROMX_LOAD( "14298", 0x000001, 0x100000, CRC(2745c84c) SHA1(5a0528c921cba7a1047d3a2ece79925103d719a1) , ROM_SKIP(7) ) - ROMX_LOAD( "14297", 0x000002, 0x100000, CRC(29cb9450) SHA1(7dc38d23a2f0cee2f4edde05c1a6f0dc83f331db) , ROM_SKIP(7) ) - ROMX_LOAD( "14296", 0x000003, 0x100000, CRC(9d8cbd31) SHA1(55a9f9ec9029157da033e69664b58e694a28db47) , ROM_SKIP(7) ) - ROMX_LOAD( "14295", 0x000004, 0x100000, CRC(29591f50) SHA1(1ac4ceaf74892e30f210ad77024eb441c5e4a959) , ROM_SKIP(7) ) - ROMX_LOAD( "14294", 0x000005, 0x100000, CRC(fa86b794) SHA1(7b6907e5734fbf2fba7bcc213a8551fec5e9f3d5) , ROM_SKIP(7) ) - ROMX_LOAD( "14293", 0x000006, 0x100000, CRC(52899269) SHA1(ff809ff88701109e0ca79e785a61402d97335cec) , ROM_SKIP(7) ) - ROMX_LOAD( "14292", 0x000007, 0x100000, CRC(41f71443) SHA1(351d40d6159cb5b792519bce5d16490965800cfb) , ROM_SKIP(7) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Stadium Cross (Multi-32) - not protected -*/ -ROM_START( scross ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x2( "epr15093.bin", 0x000000, 0x040000, CRC(2adc7a4b) SHA1(dca71f00d94898c0758394704d819e13482bf120) ) - ROM_LOAD32_WORD_x2( "epr15094.bin", 0x000002, 0x040000, CRC(bbb0ae73) SHA1(0d8837706405f301adf8fa85c8d4813d7600af98) ) - ROM_LOAD32_WORD( "epr15018.bin", 0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) ) - ROM_LOAD32_WORD( "epr15019.bin", 0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr15192.bin", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - /* 1ST AND 2ND HALF IDENTICAL (all roms) */ - ROM_LOAD16_BYTE( "epr15020.bin", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) ) - ROM_LOAD16_BYTE( "epr15021.bin", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - /* 1ST AND 2ND HALF IDENTICAL (all roms) */ - ROMX_LOAD( "epr15022.bin", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15024.bin", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15026.bin", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15028.bin", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15023.bin", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15025.bin", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15027.bin", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "epr15029.bin", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - /* 1ST AND 2ND HALF IDENTICAL (all roms, are these OK?) */ - ROM_LOAD("epr15031.bin", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) ) - ROM_LOAD("epr15032.bin", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Super Visual Football - protected via FD1149 317-0222 -*/ -ROM_START( svf ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr16872a.17", 0x000000, 0x020000, CRC(1f383b00) SHA1(c3af01743de5ff09ada19879902842efdbceb595) ) - ROM_LOAD_x4( "epr16871a.8", 0x080000, 0x020000, CRC(f7061bd7) SHA1(b46f4f2ecda8f521c0a91f2f2c2445b72cbc2874) ) - ROM_LOAD16_BYTE( "epr16865.18", 0x100000, 0x080000, CRC(9198ca9f) SHA1(0f6271ce8a07e4ab7fdce38964055510f2ebfd4e) ) - ROM_LOAD16_BYTE( "epr16864.9", 0x100001, 0x080000, CRC(201a940e) SHA1(e19d76141844dbdedee0698ea50edbb898ab55e9) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x8( "epr16866.36", 0x100000, 0x020000, CRC(74431350) SHA1(d3208b595423b5b0f25ee90db213112a09906f8f) ) - ROM_LOAD( "mpr16779.35", 0x200000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) ) - ROM_LOAD( "mpr16778.34", 0x300000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) ) - ROM_LOAD( "mpr16777.24", 0x400000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) ) - ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16860.31", 0x800000, 0x200000, CRC(578a7325) SHA1(75a066841fa24952d8ed5ac2d988609295f437a8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16861.29", 0x800002, 0x200000, CRC(d79c3f73) SHA1(e4360efb0964a92cfad8c458a5568709fcc81339) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16862.27", 0x800004, 0x200000, CRC(00793354) SHA1(3b37a89c5100d5f92a3567fc8d2003bc9d6fe0cd) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16863.25", 0x800006, 0x200000, CRC(42338226) SHA1(106636408d5648fb95fbaee06074c57f6a535a82) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - Super Visual Soccer - protected via FD1149 317-0222 -*/ -ROM_START( svs ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr16883a.17", 0x000000, 0x020000, CRC(e1c0c3ce) SHA1(12dd8d9d1a2c2c7bf1ab652a6a6f947384d79577) ) - ROM_LOAD_x4( "epr16882a.8", 0x080000, 0x020000, CRC(1161bbbe) SHA1(3cfeed9ea947eed79aeb5674d54de45d15fb6e1f) ) - ROM_LOAD16_BYTE( "epr16865.18", 0x100000, 0x080000, CRC(9198ca9f) SHA1(0f6271ce8a07e4ab7fdce38964055510f2ebfd4e) ) - ROM_LOAD16_BYTE( "epr16864.9", 0x100001, 0x080000, CRC(201a940e) SHA1(e19d76141844dbdedee0698ea50edbb898ab55e9) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr16868.36", 0x100000, 0x040000, CRC(47aa4ec7) SHA1(baea18aaac0314f769f1e36fdbe8aedf62862544) ) /* same as jleague but with a different part number */ - ROM_LOAD( "mpr16779.35", 0x200000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) ) - ROM_LOAD( "mpr16778.34", 0x300000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) ) - ROM_LOAD( "mpr16777.24", 0x400000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) ) - ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16860.31", 0x800000, 0x200000, CRC(578a7325) SHA1(75a066841fa24952d8ed5ac2d988609295f437a8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16861.29", 0x800002, 0x200000, CRC(d79c3f73) SHA1(e4360efb0964a92cfad8c458a5568709fcc81339) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16862.27", 0x800004, 0x200000, CRC(00793354) SHA1(3b37a89c5100d5f92a3567fc8d2003bc9d6fe0cd) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16863.25", 0x800006, 0x200000, CRC(42338226) SHA1(106636408d5648fb95fbaee06074c57f6a535a82) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - -/************************************************************************************************************************** - The JLeague '94 - protected via FD1149 317-0222 -*/ -ROM_START( jleague ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code + data */ - ROM_LOAD_x4( "epr16782.17", 0x000000, 0x020000, CRC(f0278944) SHA1(49e3842231ee5abdd6205b598309153d6b4ddc02) ) - ROM_LOAD_x4( "epr16781.8", 0x080000, 0x020000, CRC(7df9529b) SHA1(de3633f4941ff3877c4cb8b53e080eccea19f22e) ) - ROM_LOAD16_BYTE( "epr16776.18", 0x100000, 0x080000, CRC(e8694626) SHA1(d4318a9a6b1cc5c719bff9c25b7398dd2ea1e18b) ) - ROM_LOAD16_BYTE( "epr16775.9", 0x100001, 0x080000, CRC(e81e2c3d) SHA1(2900710f1dec6cf71875c82a56584ba45ed3a545) ) - - ROM_REGION( 0x500000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr16780.36", 0x100000, 0x040000, CRC(47aa4ec7) SHA1(baea18aaac0314f769f1e36fdbe8aedf62862544) ) - ROM_LOAD( "mpr16779.35", 0x200000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) ) - ROM_LOAD( "mpr16778.34", 0x300000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) ) - ROM_LOAD( "mpr16777.24", 0x400000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) ) - ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16786.31", 0x800000, 0x200000, CRC(d08a2d32) SHA1(baac63cbacbe38e057684174040384a7152eb523) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16788.29", 0x800002, 0x200000, CRC(cd9d3605) SHA1(7c4402be1a1ddde6766cfdd5fe7e2a088c4a59e8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16790.27", 0x800004, 0x200000, CRC(2ea75746) SHA1(c91e5d678917886cc23fbef7a577c5a70665c7b2) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr16792.25", 0x800006, 0x200000, CRC(9f416072) SHA1(18107cf64f918888aa5a54432f8e9137910101b8) , ROM_SKIP(6)|ROM_GROUPWORD ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Title Fight (Multi-32) - not protected - - GAME BOARD NO. 834-9324-02 - 1. ROM BD NO. 834-9413-02 - 2. MAIN BD NO. 837-8676 (SYSTEM MULTI 32) -*/ -ROM_START( titlef ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x2( "epr-15388.ic37", 0x000000, 0x40000, CRC(db1eefbd) SHA1(7059a1d5c9364d836c1d922071a108cbde661e0a) ) - ROM_LOAD32_WORD_x2( "epr-15389.ic40", 0x000002, 0x40000, CRC(da9f60a3) SHA1(87a7bea04e51e3c241871e83ff7322c6a07bd106) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr-15384.ic31", 0x100000, 0x20000, CRC(0f7d208d) SHA1(5425120480f813210fae28951e8bfd5acb08ca53) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr-15381.ic3", 0x000000, 0x200000, CRC(162cc4d6) SHA1(2369d3d76ab5ef8f033aa45530ab957f0e5ff028) ) - ROM_LOAD16_BYTE( "mpr-15382.ic11", 0x000001, 0x200000, CRC(fd03a130) SHA1(040c36383ef5d8298af714958cd5b0a4c7556ae7) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr-15379.ic14", 0x000000, 0x200000, CRC(e5c74b11) SHA1(67e4460efe5dcd88ffc12024b255efc843e6a8b5) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15375.ic15", 0x000002, 0x200000, CRC(046a9b50) SHA1(2b4c53f2a0264835cb7197daa9b3461c212541e8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15371.ic10", 0x000004, 0x200000, CRC(999046c6) SHA1(37ce4e8aaf537b5366eacabaf36e4477b5624121) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15373.ic38", 0x000006, 0x200000, CRC(9b3294d9) SHA1(19542f14ce09753385a44098dfd1aaf331e7af0e) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15380.ic22", 0x800000, 0x200000, CRC(6ea0e58d) SHA1(1c4b761522157b0b9d086181ba6f6994879d8fdf) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15376.ic23", 0x800002, 0x200000, CRC(de3e05c5) SHA1(cac0d04ecd37e5836d246c0809bcfc11430df591) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15372.ic18", 0x800004, 0x200000, CRC(c187c36a) SHA1(bb55c2a768a43ef19a7847a4aa113523fee26c20) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15374.ic41", 0x800006, 0x200000, CRC(e026aab0) SHA1(75dfaef6d50c3d1d7f27aa5e44fcbc0ff2173c6f) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mpr-15385.ic1", 0x000000, 0x200000, CRC(5a9b0aa0) SHA1(d208aa165f9eea05e3b8c3f406ff44374e4f6887) ) -ROM_END - -/************************************************************************************************************************** - Title Fight (US) - not protected - - GAME BOARD NO. 834-9324-01 - 1. ROM BD NO. 834-9413-01 - 2. MAIN BD NO. 837-8676 (SYSTEM MULTI 32) -*/ -ROM_START( titlefu ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */ - ROM_LOAD32_WORD_x4( "epr-15386.ic37", 0x000000, 0x40000, CRC(e36e2516) SHA1(b6a73d6136ff8a13831b6db0fbc8a585f2acf254) ) - ROM_LOAD32_WORD_x4( "epr-15387.ic40", 0x000002, 0x40000, CRC(e63406d3) SHA1(cd105862b2267d1d3af588cda70e6e4c1cca1da2) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD_x4( "epr-15384.ic31", 0x100000, 0x20000, CRC(0f7d208d) SHA1(5425120480f813210fae28951e8bfd5acb08ca53) ) - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD16_BYTE( "mpr-15381.ic3", 0x000000, 0x200000, CRC(162cc4d6) SHA1(2369d3d76ab5ef8f033aa45530ab957f0e5ff028) ) - ROM_LOAD16_BYTE( "mpr-15382.ic11", 0x000001, 0x200000, CRC(fd03a130) SHA1(040c36383ef5d8298af714958cd5b0a4c7556ae7) ) - - ROM_REGION32_BE( 0x1000000, REGION_GFX2, 0 ) /* sprites */ - ROMX_LOAD( "mpr-15379.ic14", 0x000000, 0x200000, CRC(e5c74b11) SHA1(67e4460efe5dcd88ffc12024b255efc843e6a8b5) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15375.ic15", 0x000002, 0x200000, CRC(046a9b50) SHA1(2b4c53f2a0264835cb7197daa9b3461c212541e8) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15371.ic10", 0x000004, 0x200000, CRC(999046c6) SHA1(37ce4e8aaf537b5366eacabaf36e4477b5624121) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15373.ic38", 0x000006, 0x200000, CRC(9b3294d9) SHA1(19542f14ce09753385a44098dfd1aaf331e7af0e) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15380.ic22", 0x800000, 0x200000, CRC(6ea0e58d) SHA1(1c4b761522157b0b9d086181ba6f6994879d8fdf) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15376.ic23", 0x800002, 0x200000, CRC(de3e05c5) SHA1(cac0d04ecd37e5836d246c0809bcfc11430df591) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15372.ic18", 0x800004, 0x200000, CRC(c187c36a) SHA1(bb55c2a768a43ef19a7847a4aa113523fee26c20) , ROM_SKIP(6)|ROM_GROUPWORD ) - ROMX_LOAD( "mpr-15374.ic41", 0x800006, 0x200000, CRC(e026aab0) SHA1(75dfaef6d50c3d1d7f27aa5e44fcbc0ff2173c6f) , ROM_SKIP(6)|ROM_GROUPWORD ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Sega PCM sound data */ - ROM_LOAD( "mpr-15385.ic1", 0x000000, 0x200000, CRC(5a9b0aa0) SHA1(d208aa165f9eea05e3b8c3f406ff44374e4f6887) ) -ROM_END - - - -/************************************* - * - * Common driver inits - * - *************************************/ - -static void segas32_common_init(read16_handler custom_r, write16_handler custom_w, const UINT8 *default_eeprom) -{ - /* reset the custom handlers and other pointers */ - custom_io_r[0] = custom_r; - custom_io_w[0] = custom_w; - system32_default_eeprom = default_eeprom; - system32_prot_vblank = NULL; -} - - - -/************************************* - * - * Game-specific driver inits - * - *************************************/ - -static DRIVER_INIT( alien3 ) -{ - /* alien 3 with the gun calibrated, it doesn't prompt you if its not */ - static const UINT8 alien3_default_eeprom[128] = - { - 0x33, 0x53, 0x41, 0x32, 0x00, 0x35, 0x00, 0x00, 0x8B, 0xE8, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, - 0x01, 0x01, 0x03, 0x00, 0x01, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x8B, 0xE8, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x03, 0x00, - 0x01, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - segas32_common_init(analog_custom_io_r, analog_custom_io_w, alien3_default_eeprom); -} - -static READ16_HANDLER( arescue_handshake_r ) -{ - return 0; -} - -static READ16_HANDLER( arescue_slavebusy_r ) -{ - return 1; // prevents master trying to synch to slave. -} - -static DRIVER_INIT( arescue ) -{ - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00006, 0, 0, arescue_dsp_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00006, 0, 0, arescue_dsp_w); - - dual_pcb_comms = auto_malloc(0x1000); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810000, 0x810fff, 0, 0, dual_pcb_comms_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810000, 0x810fff, 0, 0, dual_pcb_comms_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x818000, 0x818003, 0, 0, dual_pcb_masterslave); - - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810001, 0x810001, 0, 0, arescue_handshake_r); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x81000f, 0x81000f, 0, 0, arescue_slavebusy_r); - -} - - -static DRIVER_INIT( arabfgt ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); - - /* install protection handlers */ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa000ff, 0, 0, arabfgt_protection_r); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00100, 0xa0011f, 0, 0, arf_wakeup_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00fff, 0, 0, arabfgt_protection_w); -} - - -static DRIVER_INIT( brival ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); - - /* install protection handlers */ - system32_protram = auto_malloc (0x1000); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x20ba00, 0x20ba07, 0, 0, brival_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00fff, 0, 0, brival_protection_w); -} - - -static DRIVER_INIT( darkedge ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); - - /* install protection handlers */ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa7ffff, 0, 0, darkedge_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa7ffff, 0, 0, darkedge_protection_w); - system32_prot_vblank = darkedge_fd1149_vblank; -} - -static DRIVER_INIT( dbzvrvs ) -{ - segas32_common_init(NULL, NULL, NULL); - - /* install protection handlers */ - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa7ffff, 0, 0, dbzvrvs_protection_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa7ffff, 0, 0, dbzvrvs_protection_w); -} - -static WRITE16_HANDLER( f1en_comms_echo_w ) -{ - // pretend that slave is following master op, enables attract mode video with sound - program_write_byte( 0x810049, data ); -} - -static DRIVER_INIT( f1en ) -{ - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); - - dual_pcb_comms = auto_malloc(0x1000); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810000, 0x810fff, 0, 0, dual_pcb_comms_r); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810000, 0x810fff, 0, 0, dual_pcb_comms_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x818000, 0x818003, 0, 0, dual_pcb_masterslave); - - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x810048, 0x810048, 0, 0, f1en_comms_echo_w); -} - - -static DRIVER_INIT( f1lap ) -{ - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); -} - - -static DRIVER_INIT( ga2 ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); - - decrypt_ga2_protrom(); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00fff, 0, 0, ga2_dpram_w); - memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xa00000, 0xa00fff, 0, 0, ga2_dpram_r); -} - - -static DRIVER_INIT( harddunk ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); -} - - -static DRIVER_INIT( holo ) -{ - segas32_common_init(NULL, NULL, NULL); -} - - -static DRIVER_INIT( jpark ) -{ - /* Temp. Patch until we emulate the 'Drive Board', thanks to Malice */ - UINT16 *pROM = (UINT16 *)memory_region(REGION_CPU1); - - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); - - pROM[0xC15A8/2] = 0xCD70; - pROM[0xC15AA/2] = 0xD8CD; -} - - -static DRIVER_INIT( orunners ) -{ - segas32_common_init(analog_custom_io_r, orunners_custom_io_w, NULL); -} - - -static DRIVER_INIT( radm ) -{ - /* put radmobile in 'upright' mode since we don't emulate the motor */ - static const UINT8 radm_default_eeprom[128] = - { - 0x45, 0x53, 0x41, 0x47, 0x83, 0x01, 0x00, 0x01, 0x03, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x45, 0x53, 0x41, 0x47, 0x83, 0x01, 0x00, 0x01, 0x03, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - }; - - segas32_common_init(analog_custom_io_r, analog_custom_io_w, radm_default_eeprom); -} - - -static DRIVER_INIT( radr ) -{ - /* set rad rally to 1 coin 1 credit otherwise it'll boot into freeplay by default which isn't ideal ;-) */ - static const UINT8 radr_default_eeprom[128] = - { - 0x45, 0x53, 0x41, 0x47, 0x00, 0x03, 0x00, 0x01, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x75, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x45, 0x53, 0x41, 0x47, 0x00, 0x03, 0x00, 0x01, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x75, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 - }; - - segas32_common_init(analog_custom_io_r, analog_custom_io_w, radr_default_eeprom); -} - - -static DRIVER_INIT( scross ) -{ - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); - memory_install_write8_handler(1, ADDRESS_SPACE_PROGRAM, 0xb0, 0xbf, 0, 0, scross_bank_w); -} - - -static DRIVER_INIT( slipstrm ) -{ - segas32_common_init(analog_custom_io_r, analog_custom_io_w, NULL); -} - - -static DRIVER_INIT( sonic ) -{ - segas32_common_init(sonic_custom_io_r, sonic_custom_io_w, NULL); - - /* install protection handlers */ - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x20E5C4, 0x20E5C5, 0, 0, sonic_level_load_protection); -} - - -static DRIVER_INIT( sonicp ) -{ - segas32_common_init(sonic_custom_io_r, sonic_custom_io_w, NULL); -} - - -static DRIVER_INIT( spidman ) -{ - segas32_common_init(extra_custom_io_r, NULL, NULL); -} - - -static DRIVER_INIT( svf ) -{ - segas32_common_init(NULL, NULL, NULL); -} - - -static DRIVER_INIT( jleague ) -{ - segas32_common_init(NULL, NULL, NULL); - memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x20F700, 0x20F705, 0, 0, jleague_protection_w); -} - - -static DRIVER_INIT( titlef ) -{ - segas32_common_init(NULL, NULL, NULL); -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1992, arescue, 0, system32, arescue, arescue, ROT0, "Sega", "Air Rescue", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, alien3, 0, system32, alien3, alien3, ROT0, "Sega", "Alien3: The Gun (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, alien3u, alien3, system32, alien3, alien3, ROT0, "Sega", "Alien3: The Gun (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, arabfgt, 0, system32, arabfgt, arabfgt, ROT0, "Sega", "Arabian Fight (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, arabfgtu, arabfgt, system32, arabfgtu, arabfgt, ROT0, "Sega", "Arabian Fight (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, arabfgtj, arabfgt, system32, arabfgt, arabfgt, ROT0, "Sega", "Arabian Fight (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, brival, 0, system32, brival, brival, ROT0, "Sega", "Burning Rival (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, brivalj, brival, system32, brival, brival, ROT0, "Sega", "Burning Rival (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, darkedge, 0, system32, darkedge, darkedge, ROT0, "Sega", "Dark Edge (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, darkedgj, darkedge, system32, darkedge, darkedge, ROT0, "Sega", "Dark Edge (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, dbzvrvs, 0, system32, dbzvrvs, dbzvrvs, ROT0, "Sega / Banpresto", "Dragon Ball Z V.R.V.S.", GAME_IMPERFECT_GRAPHICS) -GAME( 1991, f1en, 0, system32, f1en, f1en, ROT0, "Sega", "F1 Exhaust Note", GAME_IMPERFECT_GRAPHICS ) -GAME( 1993, f1lap, 0, system32, f1lap, f1lap, ROT0, "Sega", "F1 Super Lap", GAME_NOT_WORKING ) -GAME( 1992, ga2, 0, system32_v20, ga2, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, ga2u, ga2, system32_v20, ga2u, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, ga2j, ga2, system32_v20, ga2, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, holo, 0, system32, holo, holo, ORIENTATION_FLIP_Y, "Sega", "Holosseum (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, jpark, 0, system32, jpark, jpark, ROT0, "Sega", "Jurassic Park", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, radm, 0, system32, radm, radm, ROT0, "Sega", "Rad Mobile (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, radmu, radm, system32, radm, radm, ROT0, "Sega", "Rad Mobile (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, radr, 0, system32, radr, radr, ROT0, "Sega", "Rad Rally (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, radru, radr, system32, radr, radr, ROT0, "Sega", "Rad Rally (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, slipstrm, 0, system32, slipstrm, slipstrm, ROT0, "Capcom", "Slipstream", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, sonic, 0, system32, sonic, sonic, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, rev. C)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, sonicp, sonic, system32, sonic, sonicp, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, prototype)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, spidman, 0, system32, spidman, spidman, ROT0, "Sega", "Spider-Man: The Videogame (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, spidmanu, spidman, system32, spidmanu, spidman, ROT0, "Sega", "Spider-Man: The Videogame (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, svf, 0, system32, svf, svf, ROT0, "Sega", "Super Visual Football: European Sega Cup", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, svs, svf, system32, svf, svf, ROT0, "Sega", "Super Visual Soccer: Sega Cup (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, jleague, svf, system32, svf, jleague, ROT0, "Sega", "The J.League 1994 (Japan)", GAME_IMPERFECT_GRAPHICS ) - -GAME( 1994, harddunk, 0, multi32, harddunk, harddunk, ROT0, "Sega", "Hard Dunk (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1994, harddunj, harddunk, multi32, harddunk, harddunk, ROT0, "Sega", "Hard Dunk (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, orunners, 0, multi32, orunners, orunners, ROT0, "Sega", "OutRunners (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, orunneru, orunners, multi32, orunners, orunners, ROT0, "Sega", "OutRunners (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, scross, 0, multi32, scross, scross, ROT0, "Sega", "Stadium Cross (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, titlef, 0, multi32, titlef, titlef, ROT0, "Sega", "Title Fight (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1992, titlefu, titlef, multi32, titlef, titlef, ROT0, "Sega", "Title Fight (US)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/segasyse.c b/src/drivers/segasyse.c deleted file mode 100644 index 096953d50..000000000 --- a/src/drivers/segasyse.c +++ /dev/null @@ -1,961 +0,0 @@ -/******************************************************************************* - Sega System E (834-5803) Driver (drivers/segasyse.c) -******************************************************************************** - driver by David Haywood - - Special Thanks to: - - Charles Macdonald - for docmentation of the SMS VDP Chip used on this system, - visit his homepage (cgfm2.emuviews.com) for some excellent documents, and other - interesting bits and pieces - - Mike Beaver - Mimic, although not used as a reference, it was used as an - inspiration & motivation :p - - Stephane Humbert - Dipswitch Information, Z80 Help, Lots of Notes of ROP, help - with the controller for ROP, and generally being an all round great guy to - work with. - -******************************************************************************** - - Sega System 'E' is a piece of hardware used for a couple of Arcade Games - produced by Sega in the Mid 80's, its roughly based on their Sega Master System - home console unit, using the same '315-5124' VDP (actually in this case 2 of - them) - - An interesting feature of the system is that the CPU is contained on the ROM - board, the MAIN System E board contains the Graphics processor, this opens the - possibility for using processors other than the Standard Z80 to run the main - game code on, an option which they appear to have made use of for a couple of - the titles unless of course the roms are simply bad dumps. - - Also interesting is each VDP has double the Video RAM found on the SMS console - this is banked through Port Writes, the System also allows for the Video RAM - to be written directly, bypassing the usual procedure of writing to it via the - '315-5124' data port, it can not however be read directly, the same area used - for writing is used to access banked ROMs when reading - - Pretty much everything on this hardware is done through port accesses, the - main memory map consists of simply ROM, BANKED ROM / BANKED RAM, RAM - -******************************************************************************** - - ROMs + CPU Board (32kb ROMs) - - IC 07 (Good) IC 05 (Good) - IC 04 (Good) IC 03 (Good) - IC 02 (Good) - - (834-5803) MAIN Board (8kb RAMs) - - IC 49 (Good) IC 55 (Good) System RAM (0xc000 - 0xffff) - IC 03 (Good) IC 07 (Good) Front Layer VRAM (Bank 1) Port F7 -0------ - IC 04 (Good) IC 08 (Good) Front Layer VRAM (Bank 2) Port F7 -1------ - IC 01 (Good) IC 05 (Good) Back Layer VRAM (Bank 1) Port F7 0------- - IC 02 (Good) IC 06 (Good) Back Layer VRAM (Bank 2) Port F7 1------- - (or at least this is how it appears from HangOnJr's RAMs Test) - - 2x (315-5124)'s here too, these are the VDP chips - - PORTS (to be completed) - - 0xba - 0xbb r/w Back Layer VDP - 0xbe - 0xbf r/w Front Layer VDP - - 0xf7 w/o Banking Controls - - 0xe0 r/o Inputs (Coins, Start Btns) - 0xe1 r/o Controls (Transformer) - - 0xf2 - 0xf3 r/o Dipswitches - - 0xf8 r/o Analog Input (Hang On Jr) - - 0x7e r/o V Counter (vertical beam pos in scanlines) - 0x7f r/o H Counter (horizontal beam pos in 'pixel clock cycles') - -******************************************************************************** - - Change Log: - 18 Aug 2004 | DH - Added Tetris System E - 14 Jun 2001 | Stephh added the dipswitches to ROP (and coinage to the others - | I added Save State support - 14 Jun 2001 | Nicola improved the Controls for Riddle, stephh added a New - | SEGASYSE_COINAGE macro and fixed sorted out the dips in ROP - 13 Jun 2001 | After A Lot of Messing about, Hair Pulling out etc. Riddle is - | now playable :p - 12 Jun 2001 | First Submitted Version, still a couple of things need doing, - | Riddle isn't playable at this stage - 12 Jun 2001 | Cleaned Up The Code (removed a lot of now redundant stuff in the - | interrupt functions, rendering code (dirty tile marking etc.)) - 12 Jun 2001 | Major Updates made, Sound Added, Controls, Sprites, Raster - | Corrected, Horizontal Scrolling Corrected, Colours Corrected, - | Transformer is now Fully Playable, HangOn-Jr Likewise with - | minor gfx glitches in places. - 11 Jun 2001 | Progressing Nicely, Improvements to the Banking, inc. Writes to - | the 0x8000+ range, Raster Interrupts hooked up and sort of - | working (looks ok in Transformer, not in Hang-On Jr - 07 Jun 2001 | Big Clean-Up of Driver so far, lots of things moved around to - | make it easier to follow and develop - 06 Jun 2001 | Improved the Banking a bit, based on what the program seems to be - | trying to do as it goes through its RAM/ROM tests, still some - | bits of Port 0xF7 writes remain unclear however. - 05 Jun 2001 | Put in place some very crude rendering code, the RAM / ROM checks - | of transfrm now display on the screen - 04 Jun 2001 | transfrm (Transformer) is showing signs of life, the RAM / ROM - | check info can clearly be seen in VRAM, now to try and get some - | rendering code working. Tiles (SEGA logo, Font etc, now also - | appear in VRAM) - 03 Jun 2001 | Driver Rewritten from Scratch after a long period of inactivity, - | the VDP core now seems to be running correctly, valid colours can - | be seen in CRAM - -******************************************************************************** - - To Do: - - Improve Riddle of Pythagoras, doesn't like the sprite code much... - - Fix Vertical Scrolling, needed for Hang-On Jr. Score Screen - - Find Register which does the Left column blank, seems to be missing from the - docs.. - - hook up dsw's in riddle, stephh kindly worked them out (see notes below, - they just need adding to the input ports - - Fix Astro Flash service mode (it works in Transformer) - - - Decrypt the other games (Fantasy Zone 2 & Opa Opa) looks tricky.. - WE NEED THE ORIGINAL ***WORKING*** CPUS - -******************************************************************************** - Game Notes: - Riddle of Pythagoras is interesting, it looks like Sega might have planned it - as a two player game, there is prelimiary code for 2 player support which - never gets executed, see code around 0x0E95. Theres also quite a bit of - pointless code here and there. Some Interesting Memory Locations - - C000 : level - value (00-0x32) - C001 : level - display (00-0x50, BCD coded) - C003 : credits (00-0x99, BCD coded) - C005 : DSWA put here (coinage, left and right nibbles for left and right slot - - freeplay when 0x0f or 0xf0) - C006 : DSWB put here - bits 0 and 1 : lives ("02", "03", "04", "98") - bit 3 : difficulty - bits 5 and 6 : bonus lives ("50K, 100K, 200K, 500K", "100K, 200K, 500K", "100K, - 200K, 500K, 99999999", "none") - C009 : lives (for player 1) - C00A : lives (for player 2) - C00B : bonus lives counter - - E20B-E20E : score (00000000-0x99999999, BCD coded) - E215-E218 : hi-score (00000000-0x99999999, BCD coded) - - E543 : bit 0 : ON = player 1 one still has lives - bit 1 : ON = player 2 one still has lives - bit 2 : ON = player 1 is the current player - OFF = player 2 is the - current player - - E572 : table with L. slot infos (5 bytes wide) - E577 : table with R. slot infos (5 bytes wide) -*******************************************************************************/ - - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "machine/segacrpt.h" -#include "sound/sn76496.h" - -/*-- Variables --*/ - -static UINT8 segae_8000bank; /* Current VDP Bank Selected for 0x8000 - 0xbfff writes */ -static UINT8 port_fa_last; /* Last thing written to port 0xfa (control related) */ -static UINT8 hintcount; /* line interrupt counter, decreased each scanline */ -UINT8 vintpending; /* vertical interrupt pending flag */ -UINT8 hintpending; /* scanline interrupt pending flag */ - -/*- in (vidhrdw/segasyse.c) -*/ -extern UINT8 segae_vdp_vrambank[]; /* vdp's vram bank */ -extern UINT8 *segae_vdp_vram[]; /* pointer to start of vdp's vram */ -extern UINT8 *segae_vdp_regs[]; /* pointer to vdp's registers */ - -/*-- Prototypes --*/ - -static WRITE8_HANDLER (segae_mem_8000_w); - -static WRITE8_HANDLER (segae_port_f7_w); -static READ8_HANDLER (segae_port_7e_7f_r); - -static READ8_HANDLER (segae_port_ba_bb_r); -static READ8_HANDLER (segae_port_be_bf_r); - -static WRITE8_HANDLER (segae_port_ba_bb_w); -static WRITE8_HANDLER (segae_port_be_bf_w); - -/*- in (vidhrdw/segasyse.c) -*/ - -VIDEO_START( segae ); -VIDEO_UPDATE( segae ); - -unsigned char segae_vdp_ctrl_r ( UINT8 chip ); -unsigned char segae_vdp_data_r ( UINT8 chip ); -void segae_vdp_ctrl_w ( UINT8 chip, UINT8 data ); -void segae_vdp_data_w ( UINT8 chip, UINT8 data ); -void segae_drawscanline(int line, int chips, int blank); - -/******************************************************************************* - Port & Memory Maps -******************************************************************************** - most things on this hardware are done via port writes, including reading of - controls dipswitches, reads and writes to the vdp's etc. see notes at top of - file, the most noteworthy thing is the use of the 0x8000 - 0xbfff region, reads - are used to read ram, writes are used as a secondary way of writing to VRAM -*******************************************************************************/ - -/*-- Memory --*/ - -static ADDRESS_MAP_START( segae_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) /* Fixed ROM */ - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) /* Banked ROM */ - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_RAM) /* Main RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( segae_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) /* Fixed ROM */ - AM_RANGE(0x8000, 0xbfff) AM_WRITE(segae_mem_8000_w) /* Banked VRAM */ - AM_RANGE(0xc000, 0xffff) AM_WRITE(MWA8_RAM) /* Main RAM */ -ADDRESS_MAP_END - -/*-- Ports --*/ - -static ADDRESS_MAP_START( segae_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x7e, 0x7f) AM_READ(segae_port_7e_7f_r) /* Vertical / Horizontal Beam Position Read */ - AM_RANGE(0xba, 0xbb) AM_READ(segae_port_ba_bb_r) /* Back Layer VDP */ - AM_RANGE(0xbe, 0xbf) AM_READ(segae_port_be_bf_r) /* Front Layer VDP */ - AM_RANGE(0xe0, 0xe0) AM_READ(input_port_2_r) /* Coins + Starts */ - AM_RANGE(0xe1, 0xe1) AM_READ(input_port_3_r) /* Controls */ - AM_RANGE(0xf2, 0xf2) AM_READ(input_port_0_r) /* DSW0 */ - AM_RANGE(0xf3, 0xf3) AM_READ(input_port_1_r) /* DSW1 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( segae_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x7b, 0x7b) AM_WRITE(SN76496_0_w) /* Not sure which chip each is on */ - AM_RANGE(0x7f, 0x7f) AM_WRITE(SN76496_1_w) /* Not sure which chip each is on */ - AM_RANGE(0xba, 0xbb) AM_WRITE(segae_port_ba_bb_w) /* Back Layer VDP */ - AM_RANGE(0xbe, 0xbf) AM_WRITE(segae_port_be_bf_w) /* Front Layer VDP */ - AM_RANGE(0xf7, 0xf7) AM_WRITE(segae_port_f7_w) /* Banking Control */ -ADDRESS_MAP_END - -/******************************************************************************* - Read / Write Handlers -******************************************************************************** - the ports 0xf8, 0xf9, 0xfa appear to be in some way control related, their - behavior is not fully understood, however for HangOnJr it appears that we - need to read either the accelerator or angle from port 0xf8 depending on the - last write to port 0xfa, this yields a playable game, - - For Riddle of Pythagoras it doesn't seem so simple, the code we have here - seems to general do the job but it could probably do with looking at a bit - more -*******************************************************************************/ - -/*-- Memory -- */ - -static WRITE8_HANDLER (segae_mem_8000_w) -{ - /* write the data the non-selected VRAM bank of the opposite number VDP chip stored in segae_8000bank */ - segae_vdp_vram [1-segae_8000bank][offset + (0x4000-(segae_vdp_vrambank[1-segae_8000bank] * 0x4000))] = data; -} - -/*-- Ports --*/ - -/*************************************** - WRITE8_HANDLER (segae_port_f7_w) -**************************************** - writes here control the banking of - ROM and RAM - - bit: - 7 - Back Layer VDP (0) Vram Bank Select - 6 - Front Layer VDP (1) Vram Bank Select - 5 - Select 0x8000 write location (1 = Back Layer VDP RAM, 0 = Front Layer VDP RAM) - *writes are to the non-selected bank* - 4 - unknown - 3 - unknown - 2 - \ - 1 - | Rom Bank Select for 0x8000 - - 0 - | 0xbfff reads - -***************************************/ - -static UINT8 rombank; - -void segae_bankswitch (void) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - - memory_set_bankptr( 1, &RAM[ 0x10000 + ( rombank * 0x4000 ) ] ); -} - - -static WRITE8_HANDLER (segae_port_f7_w) -{ - segae_vdp_vrambank[0] = (data & 0x80) >> 7; /* Back Layer VDP (0) VRAM Bank */ - segae_vdp_vrambank[1] = (data & 0x40) >> 6; /* Front Layer VDP (1) VRAM Bank */ - segae_8000bank = (data & 0x20) >> 5; /* 0x8000 Write Select */ - rombank = data & 0x07; /* Rom Banking */ - - segae_bankswitch(); -} - -/*- Beam Position -*/ - -static READ8_HANDLER (segae_port_7e_7f_r) -{ - UINT8 temp = 0; - UINT16 sline; - - switch (offset) - { - case 0: /* port 0x7e, Vert Position (in scanlines) */ - sline = 261 - cpu_getiloops(); - if (sline > 0xDA) sline -= 6; - temp = sline-1 ; - break; - case 1: /* port 0x7f, Horz Position (in pixel clock cycles) */ - /* unhandled for now */ - break; - } - return temp; -} - -/*- VDP Related -*/ - -static READ8_HANDLER (segae_port_ba_bb_r) -{ - /* These Addresses access the Back Layer VDP (0) */ - UINT8 temp = 0; - - switch (offset) - { - case 0: /* port 0xba, VDP 0 DATA Read */ - temp = segae_vdp_data_r(0); break; - case 1: /* port 0xbb, VDP 0 CTRL Read */ - temp = segae_vdp_ctrl_r(0); break; - } - return temp; -} - -static READ8_HANDLER (segae_port_be_bf_r) -{ - /* These Addresses access the Front Layer VDP (1) */ - UINT8 temp = 0; - - switch (offset) - { - case 0: /* port 0xbe, VDP 1 DATA Read */ - temp = segae_vdp_data_r(1); break ; - case 1: /* port 0xbf, VDP 1 CTRL Read */ - temp = segae_vdp_ctrl_r(1); break ; - } - return temp; -} - -static WRITE8_HANDLER (segae_port_ba_bb_w) -{ - /* These Addresses access the Back Layer VDP (0) */ - switch (offset) - { - case 0: /* port 0xba, VDP 0 DATA Write */ - segae_vdp_data_w(0, data); break; - case 1: /* port 0xbb, VDP 0 CTRL Write */ - segae_vdp_ctrl_w(0, data); break; - } -} - -static WRITE8_HANDLER (segae_port_be_bf_w) -{ - /* These Addresses access the Front Layer VDP (1) */ - switch (offset) - { - case 0: /* port 0xbe, VDP 1 DATA Write */ - segae_vdp_data_w(1, data); break; - case 1: /* port 0xbf, VDP 1 CTRL Write */ - segae_vdp_ctrl_w(1, data); break; - } -} - -/*- Hang On Jr. Specific -*/ - -static READ8_HANDLER (segae_hangonjr_port_f8_r) -{ - UINT8 temp; - - temp = 0; - - if (port_fa_last == 0x08) /* 0000 1000 */ /* Angle */ - temp = readinputport(4); - - if (port_fa_last == 0x09) /* 0000 1001 */ /* Accel */ - temp = readinputport(5); - - return temp; -} - -static WRITE8_HANDLER (segae_hangonjr_port_fa_w) -{ - /* Seems to write the same pattern again and again bits ---- xx-x used */ - port_fa_last = data; -} - -/*- Riddle of Pythagoras Specific -*/ - -static int port_to_read,last1,last2,diff1,diff2; - -static READ8_HANDLER (segae_ridleofp_port_f8_r) -{ - switch (port_to_read) - { - default: - case 0: return diff1 & 0xff; - case 1: return diff1 >> 8; - case 2: return diff2 & 0xff; - case 3: return diff2 >> 8; - } -} - -static WRITE8_HANDLER (segae_ridleofp_port_fa_w) -{ - /* 0x10 is written before reading the dial (hold counters?) */ - /* 0x03 is written after reading the dial (reset counters?) */ - - port_to_read = (data & 0x0c) >> 2; - - if (data & 1) - { - int curr = readinputport(4); - diff1 = ((curr - last1) & 0x0fff) | (curr & 0xf000); - last1 = curr; - } - if (data & 2) - { - int curr = readinputport(5) & 0x0fff; - diff2 = ((curr - last2) & 0x0fff) | (curr & 0xf000); - last2 = curr; - } -} - - -/******************************************************************************* - Input Ports -******************************************************************************** - mostly unknown for the time being -*******************************************************************************/ - - /* The Coinage is similar to Sega System 1 and C2, but - it seems that Free Play is not used in all games - (in fact, the only playable game that use it is - Riddle of Pythagoras) */ - -#define SEGA_COIN_A \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) \ - PORT_DIPSETTING( 0x04, "2 Coins/1 Credit, 4/3" ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x03, "1 Coin/1 Credit, 5/6" ) \ - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit, 4/5" ) \ - PORT_DIPSETTING( 0x01, "1 Coin/1 Credit, 2/3" ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) \ - 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( 0x0a, DEF_STR( 1C_6C ) ) - -#define SEGA_COIN_B \ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) \ - PORT_DIPSETTING( 0x40, "2 Coins/1 Credit, 4/3" ) \ - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x30, "1 Coin/1 Credit, 5/6" ) \ - PORT_DIPSETTING( 0x20, "1 Coin/1 Credit, 4/5" ) \ - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit, 2/3" ) \ - PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) \ - 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( 0xa0, DEF_STR( 1C_6C ) ) - -INPUT_PORTS_START( dummy ) /* Used by the Totally Non-Working Games */ -INPUT_PORTS_END - -INPUT_PORTS_START( transfrm ) /* Used By Transformer */ - PORT_START_TAG("DSW0") /* Read from Port 0xf2 */ - SEGA_COIN_A - SEGA_COIN_B - - PORT_START_TAG("DSW1") /* Read from Port 0xf3 */ - PORT_DIPNAME( 0x01, 0x00, "1 Player Only" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "Infinite (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x20, "10k, 30k, 50k and 70k" ) - PORT_DIPSETTING( 0x30, "20k, 60k, 100k and 140k" ) - PORT_DIPSETTING( 0x10, "30k, 80k, 130k and 180k" ) - PORT_DIPSETTING( 0x00, "50k, 150k and 250k" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("IN0") /* Read from Port 0xe0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN1") /* Read from Port 0xe1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( tetrisse ) /* Used By Transformer */ - PORT_START_TAG("DSW0") /* Read from Port 0xf2 */ - SEGA_COIN_A - SEGA_COIN_B - - PORT_START_TAG("DSW1") /* Read from Port 0xf3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") /* Read from Port 0xe0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START_TAG("IN1") /* Read from Port 0xe1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - -INPUT_PORTS_START( hangonjr ) /* Used By Hang On Jr */ - PORT_START_TAG("DSW0") /* Read from Port 0xf2 */ - SEGA_COIN_A - SEGA_COIN_B - - PORT_START_TAG("DSW1") /* Read from Port 0xf3 */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x06, "Enemies" ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // These three dips seems to be unused - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") /* Read from Port 0xe0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") /* Read from Port 0xe1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") /* Read from Port 0xf8 */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START_TAG("IN3") /* Read from Port 0xf8 */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( ridleofp ) /* Used By Riddle Of Pythagoras */ - PORT_START_TAG("DSW0") /* Read from Port 0xf2 */ - SEGA_COIN_A - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - SEGA_COIN_B - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START_TAG("DSW1") /* Read from Port 0xf3 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "98 (Cheat)") - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) // Unknown - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Difficulty?" ) // To be tested ! I don't see what else it could do - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // Unknown - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x60, "50K 100K 200K 500K 1M 2M 5M 10M" ) - PORT_DIPSETTING( 0x40, "100K 200K 500K 1M 2M 5M 10M" ) - PORT_DIPSETTING( 0x20, "200K 500K 1M 2M 5M 10M" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) // Unknown - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") /* Read from Port 0xe0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Would Be IPT_START2 but the code doesn't use it - - PORT_START_TAG("IN1") /* Port 0xe1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") /* Read from Port 0xf8 */ - PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(8) PORT_KEYDELTA(125) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* is this used in the game? */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") /* Read from Port 0xf8 */ - PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(8) PORT_KEYDELTA(125) PORT_COCKTAIL - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -/******************************************************************************* - Interrupt Function -******************************************************************************** - Lines 0 - 191 | Dislay - Lines 0 - 261 | Non-Display / VBlank Period - - VDP1 Seems to be in Charge of Line Interrupts at Least - - Interrupt enable bits etc are a bit uncertain -*******************************************************************************/ - - INTERRUPT_GEN( segae_interrupt ) -{ - int sline; - sline = 261 - cpu_getiloops(); - - if (sline ==0) { - hintcount = segae_vdp_regs[1][10]; - } - - if (sline <= 192) { - - if (sline != 192) segae_drawscanline(sline,1,1); - - if (sline == 192) - vintpending = 1; - - if (hintcount == 0) { - hintcount = segae_vdp_regs[1][10]; - hintpending = 1; - - if ((segae_vdp_regs[1][0] & 0x10)) { - cpunum_set_input_line(0, 0, HOLD_LINE); - return; - } - - } else { - hintcount--; - } - } - - if (sline > 192) { - hintcount = segae_vdp_regs[1][10]; - - if ( (sline<0xe0) && (vintpending) ) { - cpunum_set_input_line(0, 0, HOLD_LINE); - } - } -} - -/******************************************************************************* - General Init -******************************************************************************** - for Save State support -*******************************************************************************/ - -static MACHINE_START( segasyse ) -{ - state_save_register_global(segae_8000bank); - state_save_register_global(vintpending); - state_save_register_global(hintpending); - state_save_register_global(rombank); - state_save_register_func_postload(segae_bankswitch); - return 0; -} - -/******************************************************************************* - Machine Driver(s) -******************************************************************************** - a z80, unknown speed - the two SN76489's are located on the VDP chips, one on each - - some of this could potentially vary between games as the CPU is on the ROM - board no the main board, for instance Astro Flash appears to have some kind of - custom cpu -*******************************************************************************/ - -static MACHINE_DRIVER_START( segae ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,10738600/2) /* correct for hangonjr, and astroflash/transformer at least */ - MDRV_CPU_PROGRAM_MAP(segae_readmem,segae_writemem) - MDRV_CPU_IO_MAP(segae_readport,segae_writeport) - MDRV_CPU_VBLANK_INT(segae_interrupt,262) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START( segasyse ) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 192) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) - MDRV_PALETTE_LENGTH(64) - - MDRV_VIDEO_START(segae) - MDRV_VIDEO_UPDATE(segae) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(SN76496, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/******************************************************************************* - Game Inits -******************************************************************************** - Just the One for now (Hang On Jr), Installing the custom READ/WRITE handlers - we need for the controls -*******************************************************************************/ - -static DRIVER_INIT( hangonjr ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, segae_hangonjr_port_f8_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xfa, 0xfa, 0, 0, segae_hangonjr_port_fa_w); - - state_save_register_global(port_fa_last); -} - -static DRIVER_INIT( ridleofp ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0xf8, 0xf8, 0, 0, segae_ridleofp_port_f8_r); - memory_install_write8_handler(0, ADDRESS_SPACE_IO, 0xfa, 0xfa, 0, 0, segae_ridleofp_port_fa_w); -} - -static DRIVER_INIT( astrofl ) -{ - astrofl_decode(); -} - -/******************************************************************************* - Rom Loaders / Game Drivers -******************************************************************************** - Good Dumps: - tetrisse - Tetris (System E version) - hangonjr - Hang On Jr. - ridleofp - Riddle of Pythagoras (Jp.) - transfrm - Transformer - astrofl - Astro Flash (Jp. Version of Transformer) (was encrypted) - - NOT DECRYPTED - - fantzn2 - Fantasy Zone 2 (set 2) *Rom at IC7 Encrypted* - opaopa - Opa Opa *Roms Encrypted/Bad?* -*******************************************************************************/ - - -ROM_START( tetrisse ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr12213.7", 0x00000, 0x08000, CRC(ef3c7a38) SHA1(cbb91aef330ab1a37d3e21ecf1d008143d0dd7ec) ) /* Fixed Code */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "epr12212.5", 0x10000, 0x08000, CRC(28b550bf) SHA1(445922a62e8a7360335c754ad70dabbe0208207b) ) - ROM_LOAD( "epr12211.4", 0x18000, 0x08000, CRC(5aa114e9) SHA1(f9fc7fe4d0444a264185e74d2abc8475f0976534) ) - /* ic3 unpopulated */ - /* ic2 unpopulated */ -ROM_END - -ROM_START( hangonjr ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "rom5.ic7", 0x00000, 0x08000, CRC(d63925a7) SHA1(699f222d9712fa42651c753fe75d7b60e016d3ad) ) /* Fixed Code */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "rom4.ic5", 0x10000, 0x08000, CRC(ee3caab3) SHA1(f583cf92c579d1ca235e8b300e256ba58a04dc90) ) - ROM_LOAD( "rom3.ic4", 0x18000, 0x08000, CRC(d2ba9bc9) SHA1(85cf2a801883bf69f78134fc4d5075134f47dc03) ) - ROM_LOAD( "rom2.ic3", 0x20000, 0x08000, CRC(e14da070) SHA1(f8781f65be5246a23c1f492905409775bbf82ea8) ) - ROM_LOAD( "rom1.ic2", 0x28000, 0x08000, CRC(3810cbf5) SHA1(c8d5032522c0c903ab3d138f62406a66e14a5c69) ) -ROM_END - -ROM_START( ridleofp ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr10426.bin", 0x00000, 0x08000, CRC(4404c7e7) SHA1(555f44786976a009d96a6395c9173929ad6138a7) ) /* Fixed Code */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "epr10425.bin", 0x10000, 0x08000, CRC(35964109) SHA1(a7bc64a87b23139b0edb9c3512f47dcf73feb854) ) - ROM_LOAD( "epr10424.bin", 0x18000, 0x08000, CRC(fcda1dfa) SHA1(b8497b04de28fc0d6b7cb0206ad50948cff07840) ) - ROM_LOAD( "epr10423.bin", 0x20000, 0x08000, CRC(0b87244f) SHA1(c88041614735a9b6cba1edde0a11ed413e115361) ) - ROM_LOAD( "epr10422.bin", 0x28000, 0x08000, CRC(14781e56) SHA1(f15d9d89e1ebff36c3867cfc8f0bdf7f6b3c96bc) ) -ROM_END - -ROM_START( transfrm ) - ROM_REGION( 0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "ic7.top", 0x00000, 0x08000, CRC(ccf1d123) SHA1(5ade9b00e2a36d034fafdf1902d47a9a00e96fc4) ) /* Fixed Code */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "epr-7347.ic5", 0x10000, 0x08000, CRC(df0f639f) SHA1(a09a9841b66de246a585be63d911b9a42a323503) ) - ROM_LOAD( "epr-7348.ic4", 0x18000, 0x08000, CRC(0f38ea96) SHA1(d4d421c5d93832e2bc1f22f39dffb6b80f2750bd) ) - ROM_LOAD( "ic3.top", 0x20000, 0x08000, CRC(9d485df6) SHA1(b25f04803c8f7188021f3039aa13aac80d480823) ) - ROM_LOAD( "epr-7350.ic2", 0x28000, 0x08000, CRC(0052165d) SHA1(cf4b5dffa54238e513515b3fc90faa7ce0b65d34) ) -ROM_END - -ROM_START( astrofl ) - ROM_REGION( 2*0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr-7723.ic7", 0x00000, 0x08000, CRC(66061137) SHA1(cb6a2c7864f9f87bbedfd4b1448ad6c2de65d6ca) ) /* encrypted */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "epr-7347.ic5", 0x10000, 0x08000, CRC(df0f639f) SHA1(a09a9841b66de246a585be63d911b9a42a323503) ) - ROM_LOAD( "epr-7348.ic4", 0x18000, 0x08000, CRC(0f38ea96) SHA1(d4d421c5d93832e2bc1f22f39dffb6b80f2750bd) ) - ROM_LOAD( "epr-7349.ic3", 0x20000, 0x08000, CRC(f8c352d5) SHA1(e59565ab6928c67706c6f82f6ea9a64cdfc65a21) ) - ROM_LOAD( "epr-7350.ic2", 0x28000, 0x08000, CRC(0052165d) SHA1(cf4b5dffa54238e513515b3fc90faa7ce0b65d34) ) -ROM_END - -/* Below are encrypted with an NEC MC-8123 processor... it is ESSENTIAL we find these in working condition - AS SOON AS POSSIBLE, the batteries on these are dying at an ever increasing rate */ - -ROM_START( fantzn2 ) - ROM_REGION( 2*0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr-11416.ic7", 0x00000, 0x08000, CRC(76db7b7b) SHA1(d60e2961fc893dcb4445aed5f67515cbd25b610f) ) - ROM_LOAD( "epr-11415.ic5", 0x10000, 0x10000, CRC(57b45681) SHA1(1ae6d0d58352e246a4ec4e1ce02b0417257d5d20) ) - ROM_LOAD( "epr-11414.ic4", 0x20000, 0x10000, CRC(6f7a9f5f) SHA1(b53aa2eded781c80466a79b7d81383b9a875d0be) ) - ROM_LOAD( "epr-11413.ic3", 0x30000, 0x10000, CRC(a231dc85) SHA1(45b94fdbde28c02e88546178ef3e8f9f3a96ab86) ) - ROM_LOAD( "epr-11412.ic2", 0x40000, 0x10000, CRC(b14db5af) SHA1(04c7fb659385438b3d8f9fb66800eb7b6373bda9) ) -ROM_END - -ROM_START( opaopa ) - ROM_REGION( 2*0x30000, REGION_CPU1, 0 ) - ROM_LOAD( "epr11224.ic7", 0x00000, 0x08000, CRC(024b1244) SHA1(59a522ac3d98982cc4ddb1c81f9584d3da453649) ) /* Fixed Code */ - - /* The following are 8 0x4000 banks that get mapped to reads from 0x8000 - 0xbfff */ - ROM_LOAD( "epr11223.ic5", 0x10000, 0x08000, CRC(6bc41d6e) SHA1(8997a4ac2a9704f1400d0ec16b259ee496a7efef) ) - ROM_LOAD( "epr11222.ic4", 0x18000, 0x08000, CRC(395c1d0a) SHA1(1594bad13e78c5fad4db644cd85a6bac1eaddbad) ) - ROM_LOAD( "epr11221.ic3", 0x20000, 0x08000, CRC(4ca132a2) SHA1(cb4e4c01b6ab070eef37c0603190caafe6236ccd) ) - ROM_LOAD( "epr11220.ic2", 0x28000, 0x08000, CRC(a165e2ef) SHA1(498ff4c5d3a2658567393378c56be6ed86ac0384) ) -ROM_END - -/*-- Game Drivers --*/ - -GAME( 1985, hangonjr, 0, segae, hangonjr, hangonjr, ROT0, "Sega", "Hang-On Jr.", 0 ) -GAME( 1986, transfrm, 0, segae, transfrm, 0, ROT0, "Sega", "Transformer", 0 ) -GAME( 1986, astrofl, transfrm, segae, transfrm, astrofl, ROT0, "Sega", "Astro Flash (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1986, ridleofp, 0, segae, ridleofp, ridleofp, ROT90, "Sega / Nasco", "Riddle of Pythagoras (Japan)", 0 ) -GAME( 1988, fantzn2, 0, segae, dummy, 0, ROT0, "Sega", "Fantasy Zone 2", GAME_NOT_WORKING ) /* encrypted */ -GAME( 198?, opaopa, 0, segae, dummy, 0, ROT0, "Sega", "Opa Opa", GAME_NOT_WORKING ) /* either encrypted or bad */ -GAME( 1988, tetrisse, 0, segae, tetrisse, 0, ROT0, "Sega", "Tetris (Japan, System E)", 0 ) diff --git a/src/drivers/segaybd.c b/src/drivers/segaybd.c deleted file mode 100644 index 5e242974a..000000000 --- a/src/drivers/segaybd.c +++ /dev/null @@ -1,1806 +0,0 @@ -/*************************************************************************** - - Sega Y-board hardware - -**************************************************************************** - - Known bugs: - * still seems to be some glitchiness in the games in general - -***************************************************************************/ - -#include "driver.h" -#include "system16.h" -#include "cpu/m68000/m68000.h" -#include "machine/segaic16.h" -#include "sound/2151intf.h" -#include "sound/segapcm.h" - - -#define MASTER_CLOCK 50000000 -#define SOUND_CLOCK 16000000 - -/* use this to fiddle with the IRQ2 timing */ -#define TWEAK_IRQ2_SCANLINE (0) - - - -/************************************* - * - * Statics - * - *************************************/ - -static UINT8 misc_io_data[0x10]; -static UINT8 analog_data[4]; - -static UINT8 vblank_irq_state; -static UINT8 timer_irq_state; - -static UINT16 *backupram; - -static mame_timer *interrupt_timer; - -/************************************* - * - * Configuration - * - *************************************/ - -static void yboard_generic_init(void) -{ - /* reset globals */ - vblank_irq_state = 0; - timer_irq_state = 0; -} - - - -/************************************* - * - * Initialization & interrupts - * - *************************************/ - -static void update_main_irqs(void) -{ - int irq = 0; - - /* the IRQs are effectively ORed together */ - if (vblank_irq_state) - irq |= 4; - if (timer_irq_state) - irq |= 2; - - /* assert the lines that are live, or clear everything if nothing is live */ - if (irq != 0) - { - cpunum_set_input_line(0, irq, ASSERT_LINE); - cpunum_set_input_line(1, irq, ASSERT_LINE); - cpunum_set_input_line(2, irq, ASSERT_LINE); - cpu_boost_interleave(0, TIME_IN_USEC(50)); - } - else - { - cpunum_set_input_line(0, 7, CLEAR_LINE); - cpunum_set_input_line(1, 7, CLEAR_LINE); - cpunum_set_input_line(2, 7, CLEAR_LINE); - } -} - - -/* - IRQ2 timing: the timing of this interrupt is VERY sensitive! If it is at the - wrong time, many games will screw up their rendering. Also, since there is - no ack on the interrupt, it only fires for a single scanline, so if it fires - too early, it's possible it could be missed. - - As far as I can tell, the interrupt is not programmable. It comes from the - pair of rotation/video sync chips. There is no obvious location in the - rotation RAM where it is specified, so I am assuming it is a hard-coded - interrupt. - - Through trial and error, here is what I have found. Scanline 170 seems to - be the earliest we can fire it and have it work reliably. Firing it later - seems to introduce some glitches. Firing it too early means it will get - missed and even worse things happen. - - Enable the TWEAK_IRQ2_SCANLINE define at the top of this file to fiddle with - the timing. - - pdrift: - 100-110 = glitchy logo - 120 = glitchy logo + flickering 16B during logo - 150-170 = ok, very little logo glitching - 180-200 = ok, slightly glitchy logo - 210-220 = ok, but no palette fade - - gforce2: - 140 = no palette fade up - 150-200 = ok - - strkfgtr: - 150-200 = ok -*/ - -static int irq2_scanline = 170; - -static void scanline_callback(int scanline) -{ - /* on scanline 'irq2_scanline' generate an IRQ2 */ - if (scanline == irq2_scanline) - { - timer_irq_state = 1; - scanline = irq2_scanline + 1; - } - - /* on scanline 'irq2_scanline' + 1, clear the IRQ2 */ - else if (scanline == irq2_scanline + 1) - { - timer_irq_state = 0; - scanline = 223; - } - - /* on scanline 223 generate VBLANK for all CPUs */ - else if (scanline == 223) - { - vblank_irq_state = 1; - scanline = 224; - } - - /* on scanline 224 we turn it off */ - else if (scanline == 224) - { - vblank_irq_state = 0; - scanline = irq2_scanline; - } - - /* update IRQs on the main CPU */ - update_main_irqs(); - - /* come back at the next appropriate scanline */ - //timer_set(cpu_getscanlinetime(scanline), scanline, scanline_callback); - timer_adjust(interrupt_timer,cpu_getscanlinetime(scanline), scanline, 0); - -#if TWEAK_IRQ2_SCANLINE - if (scanline == 223) - { - int old = irq2_scanline; - - /* Q = -10 scanlines, W = -1 scanline, E = +1 scanline, R = +10 scanlines */ - if (code_pressed(KEYCODE_Q)) { while (code_pressed(KEYCODE_Q)) ; irq2_scanline -= 10; } - if (code_pressed(KEYCODE_W)) { while (code_pressed(KEYCODE_W)) ; irq2_scanline -= 1; } - if (code_pressed(KEYCODE_E)) { while (code_pressed(KEYCODE_E)) ; irq2_scanline += 1; } - if (code_pressed(KEYCODE_R)) { while (code_pressed(KEYCODE_R)) ; irq2_scanline += 10; } - if (old != irq2_scanline) - popmessage("scanline = %d", irq2_scanline); - } -#endif -} - - -MACHINE_RESET( yboard ) -{ - interrupt_timer = timer_alloc(scanline_callback); - timer_adjust(interrupt_timer,cpu_getscanlinetime(223), 223, 0); - state_save_register_global_array(misc_io_data); - state_save_register_global_array(analog_data); - state_save_register_global(vblank_irq_state); - state_save_register_global(timer_irq_state); -} - - - -/************************************* - * - * Sound comm and interrupts - * - *************************************/ - -static void sound_cpu_irq(int state) -{ - cpunum_set_input_line(3, 0, state); -} - - -static void delayed_sound_data_w(int data) -{ - soundlatch_w(0, data); - cpunum_set_input_line(3, INPUT_LINE_NMI, ASSERT_LINE); -} - - -static WRITE16_HANDLER( sound_data_w ) -{ - if (ACCESSING_LSB) - timer_set(TIME_NOW, data & 0xff, delayed_sound_data_w); -} - - -static READ8_HANDLER( sound_data_r ) -{ - cpunum_set_input_line(3, INPUT_LINE_NMI, CLEAR_LINE); - return soundlatch_r(offset); -} - - - -/************************************* - * - * I/O space - * - *************************************/ - -static READ16_HANDLER( io_chip_r ) -{ - offset &= 0x1f/2; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x06/2: - case 0x08/2: - case 0x0a/2: - case 0x0c/2: - case 0x0e/2: - /* if the port is configured as an output, return the last thing written */ - if (misc_io_data[0x1e/2] & (1 << offset)) - return misc_io_data[offset]; - - /* otherwise, return an input port */ - return readinputport(offset); - - /* 'SEGA' protection */ - case 0x10/2: - return 'S'; - case 0x12/2: - return 'E'; - case 0x14/2: - return 'G'; - case 0x16/2: - return 'A'; - - /* CNT register & mirror */ - case 0x18/2: - case 0x1c/2: - return misc_io_data[0x1c/2]; - - /* port direction register & mirror */ - case 0x1a/2: - case 0x1e/2: - return misc_io_data[0x1e/2]; - } - return 0xffff; -} - - -static WRITE16_HANDLER( io_chip_w ) -{ - UINT8 old; - - /* generic implementation */ - offset &= 0x1f/2; - old = misc_io_data[offset]; - misc_io_data[offset] = data; - - switch (offset) - { - /* I/O ports */ - case 0x00/2: - case 0x02/2: - case 0x04/2: - case 0x06/2: - case 0x0a/2: - case 0x0c/2: - break; - - /* miscellaneous output */ - case 0x08/2: - /* - D7 = /KILL - D6 = CONT - D5 = /WDCL - D4 = /SRES - D3 = XRES - D2 = YRES - D1-D0 = ADC0-1 - */ - segaic16_set_display_enable(data & 0x80); - if (((old ^ data) & 0x20) && !(data & 0x20)) watchdog_reset_w(0,0); - cpunum_set_input_line(3, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(1, INPUT_LINE_RESET, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(2, INPUT_LINE_RESET, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - break; - - /* mute */ - case 0x0e/2: - /* D7 = /MUTE */ - /* D6-D0 = FLT31-25 */ - sound_global_enable(data & 0x80); - break; - - /* CNT register */ - case 0x1c/2: - break; - } -} - - - -/************************************* - * - * Analog ports - * - *************************************/ - -static READ16_HANDLER( analog_r ) -{ - int result = 0xff; - if (ACCESSING_LSB) - { - result = analog_data[offset & 3] & 0x80; - analog_data[offset & 3] <<= 1; - } - return result; -} - - -static WRITE16_HANDLER( analog_w ) -{ - static const char *ports[] = { "ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6" }; - int selected = ((offset & 3) == 3) ? (3 + (misc_io_data[0x08/2] & 3)) : (offset & 3); - int value = readinputportbytag_safe(ports[selected], 0xff); - analog_data[offset & 3] = value; -} - - - -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( yboard ) -{ - if (read_or_write) - mame_fwrite(file, backupram, 0x4000); - else if (file) - mame_fread(file, backupram, 0x4000); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_0_r, segaic16_multiply_0_w) - AM_RANGE(0x082000, 0x083fff) AM_WRITE(sound_data_w) - AM_RANGE(0x084000, 0x08401f) AM_MIRROR(0x001fe0) AM_READWRITE(segaic16_divide_0_r, segaic16_divide_0_w) -// AM_RANGE(0x086000, 0x087fff) /DEA0 - AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_SHARE(1) - AM_RANGE(0x100000, 0x10001f) AM_READWRITE(io_chip_r, io_chip_w) - AM_RANGE(0x100040, 0x100047) AM_READWRITE(analog_r, analog_w) - AM_RANGE(0x1f0000, 0x1fffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Sub CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( subx_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_1_r, segaic16_multiply_1_w) - AM_RANGE(0x084000, 0x08401f) AM_MIRROR(0x001fe0) AM_READWRITE(segaic16_divide_1_r, segaic16_divide_1_w) - AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_SHARE(1) - AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(&segaic16_spriteram_1) - AM_RANGE(0x1f8000, 0x1fbfff) AM_RAM - AM_RANGE(0x1fc000, 0x1fffff) AM_RAM AM_BASE(&backupram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( suby_map, ADDRESS_SPACE_PROGRAM, 16 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(21) ) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x080000, 0x080007) AM_MIRROR(0x001ff8) AM_READWRITE(segaic16_multiply_2_r, segaic16_multiply_2_w) - AM_RANGE(0x084000, 0x08401f) AM_MIRROR(0x001fe0) AM_READWRITE(segaic16_divide_2_r, segaic16_divide_2_w) - AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_SHARE(1) - AM_RANGE(0x180000, 0x1807ff) AM_MIRROR(0x007800) AM_RAM AM_BASE(&segaic16_rotateram_0) - AM_RANGE(0x188000, 0x188fff) AM_MIRROR(0x007000) AM_RAM AM_BASE(&segaic16_spriteram_0) - AM_RANGE(0x190000, 0x193fff) AM_MIRROR(0x004000) AM_READWRITE(MRA16_RAM, segaic16_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0x198000, 0x19ffff) AM_READ(segaic16_rotate_control_0_r) - AM_RANGE(0x1f0000, 0x1fffff) AM_RAM -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) ) - AM_RANGE(0x0000, 0xefff) AM_ROM - AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_READWRITE(SegaPCM_r, SegaPCM_w) - AM_RANGE(0xf800, 0xffff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_UNMAP(1) | AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_MIRROR(0x3e) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_MIRROR(0x3e) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) - AM_RANGE(0x40, 0x40) AM_MIRROR(0x3f) AM_READ(sound_data_r) -ADDRESS_MAP_END - - - -/************************************* - * - * Generic port definitions - * - *************************************/ - -static INPUT_PORTS_START( yboard_generic ) - PORT_START_TAG("P1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("GENERAL") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* afterburner (gloc) */ - PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* cannon trigger */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* missile button or gearshift */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("PORTC") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTD") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("PORTE") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:2") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:5") - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:6") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:7") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("COINAGE") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") - PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) - 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( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:5,6,7,8") - PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) - 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( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) - - PORT_START_TAG("PORTH") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - - - -/************************************* - * - * Game-specific port definitions - * - *************************************/ - -static INPUT_PORTS_START( gforce2 ) - PORT_INCLUDE( yboard_generic ) - - PORT_MODIFY("GENERAL") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shoot") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x06, "Energy Timer" ) PORT_DIPLOCATION("SWB:2,3") - PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x08, 0x08, "Shield Strength" ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x08, "Weak" ) - PORT_DIPSETTING( 0x00, "Strong" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:5,6") - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0xc0, "Super Deluxe" ) - PORT_DIPSETTING( 0x80, "Deluxe" ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "City" ) - - PORT_START_TAG("ADC0") /* stick X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) - - PORT_START_TAG("ADC1") /* stick Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("ADC2") /* throttle */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) -INPUT_PORTS_END - - -static INPUT_PORTS_START( gloc ) - PORT_INCLUDE( yboard_generic ) - - PORT_MODIFY("GENERAL") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("After Burner") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:4,5") - PORT_DIPSETTING( 0x18, "Moving" ) - PORT_DIPSETTING( 0x10, "Cockpit" ) - PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:6") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0xc0, 0x40, "Credits" ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0x40, "1 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0xc0, "2 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x80, "3 to Start, 2 to Continue" ) - PORT_DIPSETTING( 0x00, "4 to Start, 3 to Continue" ) - - PORT_START_TAG("ADC3") /* stick Y */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("ADC4") /* throttle */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) - - PORT_START_TAG("ADC5") /* stick X */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -static INPUT_PORTS_START( glocr360 ) - PORT_INCLUDE( yboard_generic ) - - PORT_MODIFY("GENERAL") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("After Burner") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile") - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x03, "Game Type" ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x02, "Fighting Only" ) - PORT_DIPSETTING( 0x03, "Fight/Experience" ) - PORT_DIPSETTING( 0x01, "Experience Only" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Ever Off" ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0xf0, 0xf0, "Initial Credit" ) PORT_DIPLOCATION("SWB:5,6,7,8") - PORT_DIPSETTING( 0xf0, "1" ) - PORT_DIPSETTING( 0xe0, "2" ) - PORT_DIPSETTING( 0xd0, "3" ) - PORT_DIPSETTING( 0xc0, "4" ) - PORT_DIPSETTING( 0xb0, "5" ) - PORT_DIPSETTING( 0xa0, "6" ) - PORT_DIPSETTING( 0x90, "8" ) - PORT_DIPSETTING( 0x80, "10" ) - PORT_DIPSETTING( 0x70, "12" ) -// PORT_DIPSETTING( 0x00, "1" ) -// PORT_DIPSETTING( 0x10, "1" ) -// PORT_DIPSETTING( 0x20, "1" ) -// PORT_DIPSETTING( 0x30, "1" ) -// PORT_DIPSETTING( 0x40, "1" ) -// PORT_DIPSETTING( 0x50, "1" ) -// PORT_DIPSETTING( 0x60, "1" ) - - PORT_MODIFY("COINAGE") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4") -// PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x06, DEF_STR( 1C_1C ) ) - 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( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_8C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:5,6,7,8") -// PORT_DIPSETTING( 0x70, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x50, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) -// PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) ) - 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( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_8C ) ) - PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) - - PORT_START_TAG("ADC0") /* moving pitch */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) - - PORT_START_TAG("ADC2") /* moving roll */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(3) - - PORT_START_TAG("ADC3") /* stick Y */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - - PORT_START_TAG("ADC5") /* stick X */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -static INPUT_PORTS_START( pdrift ) - PORT_INCLUDE( yboard_generic ) - - PORT_MODIFY("GENERAL") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Gear Shift") PORT_CODE(KEYCODE_SPACE) PORT_TOGGLE - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x03, "Moving" ) - PORT_DIPSETTING( 0x02, "Upright/Sit Down" ) - PORT_DIPSETTING( 0x01, "Mini Upright" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x08, "Credits" ) PORT_DIPLOCATION("SWB:4,5") - PORT_DIPSETTING( 0x08, "1 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x18, "2 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x00, "2 to Start, 2 to Continue" ) - PORT_DIPSETTING( 0x10, "3 to Start, 2 to Continue" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:6") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("ADC3") /* brake */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) - - PORT_START_TAG("ADC4") /* gas pedal */ - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) - - PORT_START_TAG("ADC5") /* steering */ - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) -INPUT_PORTS_END - - -static INPUT_PORTS_START( pdrifte ) - PORT_INCLUDE( pdrift ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x03, "Moving" ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, "Mini Upright" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "Initial Credit" ) PORT_DIPLOCATION("SWB:5") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:6") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( pdriftj ) - PORT_INCLUDE( pdrift ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x03, "Moving" ) - PORT_DIPSETTING( 0x02, "Upright/Sit Down" ) - PORT_DIPSETTING( 0x01, "Mini Upright" ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "Initial Credit" ) PORT_DIPLOCATION("SWB:5") - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:6") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - -static INPUT_PORTS_START( rchase ) - PORT_INCLUDE( yboard_generic ) - - PORT_MODIFY("GENERAL") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_MODIFY("COINAGE") - PORT_DIPNAME( 0x03, 0x03, "Coin to Credit" ) PORT_DIPLOCATION("SWA:1,2") - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin #1 multiplier" ) PORT_DIPLOCATION("SWA:3") - PORT_DIPSETTING( 0x04, "x1" ) - PORT_DIPSETTING( 0x00, "x2" ) - PORT_DIPNAME( 0x18, 0x18, "Coin #2 multiplier" ) PORT_DIPLOCATION("SWA:4,5") - PORT_DIPSETTING( 0x18, "x1" ) - PORT_DIPSETTING( 0x10, "x4" ) - PORT_DIPSETTING( 0x08, "x5" ) - PORT_DIPSETTING( 0x00, "x6" ) - PORT_DIPNAME( 0xe0, 0xe0, "Bonus Adder" ) PORT_DIPLOCATION("SWA:6,7,8") - PORT_DIPSETTING( 0xe0, DEF_STR( None ) ) - PORT_DIPSETTING( 0xc0, "2 gives +1" ) - PORT_DIPSETTING( 0xa0, "3 gives +1" ) - PORT_DIPSETTING( 0x80, "4 gives +1" ) - PORT_DIPSETTING( 0x60, "5 gives +1" ) - PORT_DIPSETTING( 0x40, "6 gives +1" ) - PORT_DIPSETTING( 0x20, "7 gives +1" ) - PORT_DIPSETTING( 0x00, "Error" ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x03, "Credits" ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x03, "1 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x02, "2 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x01, "3 to Start, 2 to Continue" ) - PORT_DIPSETTING( 0x00, "4 to Start, 3 to Continue" ) - PORT_DIPNAME( 0x04, 0x00, "Coin Chute" ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, "Twin" ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x08, "Moving" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:6,7") - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("ADC0") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ADC1") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) - - PORT_START_TAG("ADC2") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) - - PORT_START_TAG("ADC3") - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) -INPUT_PORTS_END - - -static INPUT_PORTS_START( strkfgtr ) - PORT_INCLUDE( gloc ) - - PORT_MODIFY("DSW") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:3") - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:4") - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x30, 0x10, "Credits" ) PORT_DIPLOCATION("SWB:5,6") - PORT_DIPSETTING( 0x10, "1 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x30, "2 to Start, 1 to Continue" ) - PORT_DIPSETTING( 0x20, "3 to Start, 2 to Continue" ) - PORT_DIPSETTING( 0x00, "4 to Start, 3 to Continue" ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,8") - PORT_DIPSETTING( 0xc0, "Moving" ) - PORT_DIPSETTING( 0x80, "Cockpit" ) - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) -INPUT_PORTS_END - - - -/************************************* - * - * Sound definitions - * - *************************************/ - -static struct YM2151interface ym2151_interface = -{ - sound_cpu_irq -}; - - -static struct SEGAPCMinterface segapcm_interface = -{ - BANK_12M | BANK_MASKF8, - REGION_SOUND1 -}; - - - -/************************************* - * - * Generic machine drivers - * - *************************************/ - -static MACHINE_DRIVER_START( yboard ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, MASTER_CLOCK/4) - MDRV_CPU_PROGRAM_MAP(main_map,0) - - MDRV_CPU_ADD_TAG("subx", M68000, MASTER_CLOCK/4) - MDRV_CPU_PROGRAM_MAP(subx_map,0) - - MDRV_CPU_ADD_TAG("suby", M68000, MASTER_CLOCK/4) - MDRV_CPU_PROGRAM_MAP(suby_map,0) - - MDRV_CPU_ADD_TAG("sound", Z80, SOUND_CLOCK/4) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_IO_MAP(sound_portmap,0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000000 * (262 - 224) / (262 * 60))) - - MDRV_MACHINE_RESET(yboard) - MDRV_NVRAM_HANDLER(yboard) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MDRV_PALETTE_LENGTH(8192*3) - - MDRV_VIDEO_START(yboard) - MDRV_VIDEO_UPDATE(yboard) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("2151", YM2151, SOUND_CLOCK/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.43) - MDRV_SOUND_ROUTE(1, "right", 0.43) - - MDRV_SOUND_ADD_TAG("pcm", SEGAPCM, SOUND_CLOCK/4) - MDRV_SOUND_CONFIG(segapcm_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definition(s) - * - *************************************/ - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Galaxy Force 2, Sega Y-board - CPU: 68000 (317-????) -*/ -ROM_START( gforce2 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-11688.bin", 0x000000, 0x20000, CRC(c845f2df) SHA1(17586a5f83170e99f28cd35b28e85e503e7bbe75) ) - ROM_LOAD16_BYTE( "epr-11687.bin", 0x000001, 0x20000, CRC(1cbefbbf) SHA1(28d473707cf042baca9d3a75ef22a5beb8c993f7) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11875.bin", 0x000000, 0x20000, CRC(c81701c6) SHA1(00c269f18c5eded7a0e4b6354779cd80db827409) ) - ROM_LOAD16_BYTE( "epr-11874.bin", 0x000001, 0x20000, CRC(5301fd79) SHA1(60a751c168d519cd45a9575e138514d580bce9b6) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-11816.bin", 0x000000, 0x20000, CRC(317dd0c2) SHA1(7f1c7dcfb111385e2a94912975c2f9bfe78445ac) ) - ROM_LOAD16_BYTE( "epr-11815.bin", 0x000001, 0x20000, CRC(f1fb22f1) SHA1(da3ce521b0a19b391913c35af34084d29edceca7) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11467.bin", 0x000000, 0x20000, CRC(6e60e736) SHA1(73086744cb2fe1ce162f851cb879755c21819b33) ) - ROM_LOAD16_BYTE( "epr-11468.bin", 0x000001, 0x20000, CRC(74ca9ca5) SHA1(c6f27ce43ef270088e6155c8240fd15afa5729fd) ) - ROM_LOAD16_BYTE( "epr-11694.bin", 0x040000, 0x20000, CRC(7e297b84) SHA1(bbf1aa2b0b6b1f9fdaf9bea77d24b7f4f9320696) ) - ROM_LOAD16_BYTE( "epr-11695.bin", 0x040001, 0x20000, CRC(38a864be) SHA1(ef7d89511713d695f6a454c42f079d3507d9690d) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11469.bin", 0x000000, 0x20000, CRC(ed7a2299) SHA1(1aecf9ccba1fed0b7908008e798c522251a08b0f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11470.bin", 0x000001, 0x20000, CRC(34dea550) SHA1(da95b8346c3530573461553629af4cc493bbb4af), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11477.bin", 0x000002, 0x20000, CRC(a2784653) SHA1(00a123d1fc8116ca678d6d8dbf1a5450feee014d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11478.bin", 0x000003, 0x20000, CRC(8b778993) SHA1(015ae757d26cd6e69bdf79e237f62743a8f41e0c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11471.bin", 0x000004, 0x20000, CRC(f1974069) SHA1(c8beb1a2ce430e3e6478c87c7053a58f8f31a140), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11472.bin", 0x000005, 0x20000, CRC(0d24409a) SHA1(ee00e23b0c548918b89dd48ed3f8b0370388659e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11479.bin", 0x000006, 0x20000, CRC(ecd6138a) SHA1(bbc157a1f9b7e24d16e6f126d95c448736e83791), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11480.bin", 0x000007, 0x20000, CRC(64ad66c5) SHA1(aaab6999aa88b3340b16ee1188a8432477e16625), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11473.bin", 0x100000, 0x20000, CRC(0538c6ec) SHA1(9397db188f12cf8cd91841794134760f30f83893), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11474.bin", 0x100001, 0x20000, CRC(eb923c50) SHA1(f997d2bc7f674eae4243eaf640d8faffa41d9521), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11481.bin", 0x100002, 0x20000, CRC(78e652b6) SHA1(8c70609172908131fef8cbe05f810dbd3d120eba), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11482.bin", 0x100003, 0x20000, CRC(2f879766) SHA1(ca5835d0bb77fe7de83ad336a82111cb2f96cd41), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11475.bin", 0x100004, 0x20000, CRC(69cfec89) SHA1(db2a9b03fff727f198fb5cbfb9c281ac3bbc5623), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11476.bin", 0x100005, 0x20000, CRC(a60b9b79) SHA1(6e9aa51923c12f5658bd17deb6c032e08c91dade), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11483.bin", 0x100006, 0x20000, CRC(d5d3a505) SHA1(fa7662346b954d3faf0e8fcf138004231676845c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11484.bin", 0x100007, 0x20000, CRC(b8a56a50) SHA1(ccbc391d6f60b88630d7a93b8bb6e365a8d59ed8), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11696.bin", 0x200000, 0x20000, CRC(99e8e49e) SHA1(ab6e1d74af412ec2f939043d7dc26f4b2e34a528), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11697.bin", 0x200001, 0x20000, CRC(7545c52e) SHA1(bdb0ccf233e10e9449aa367db5a5b5f209bee969), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11700.bin", 0x200002, 0x20000, CRC(e13839c1) SHA1(4975b5314797d11c782b0478eaa84eaf9980b1cd), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11701.bin", 0x200003, 0x20000, CRC(9fb3d365) SHA1(bfcf4abfa91aa41b16f01b7bafe97cd865167fbc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11698.bin", 0x200004, 0x20000, CRC(cfeba3e2) SHA1(826b73858ca5ea05688246d36b1f607356974ca9), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11699.bin", 0x200005, 0x20000, CRC(4a00534a) SHA1(9a637b45b140420937b232bf690ef8bc3d43f5ad), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11702.bin", 0x200006, 0x20000, CRC(2a09c627) SHA1(c6b0a618b4ddd9d227d3472544b62ebef966b041), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11703.bin", 0x200007, 0x20000, CRC(43bb7d9f) SHA1(e36d208937f56f0af14292184c80ca939c32c378), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11524.bin", 0x300000, 0x20000, CRC(5d35849f) SHA1(b86fb230ed0901dfdb525e7a47d9c9ad8031a3f6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11525.bin", 0x300001, 0x20000, CRC(9ae47552) SHA1(43268dd5f79282aabd8972994437de1b2d2acc40), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11532.bin", 0x300002, 0x20000, CRC(b3565ddb) SHA1(3208744d43a11f4de8a6b626cc9113ad63d36807), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11533.bin", 0x300003, 0x20000, CRC(f5d16e8a) SHA1(3b5c1582794a0e69707264879b544ac48afd9337), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11526.bin", 0x300004, 0x20000, CRC(094cb3f0) SHA1(4b30e24dfd33c9922ffd5665cd9631b1f24243da), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11527.bin", 0x300005, 0x20000, CRC(e821a144) SHA1(eeec0e51798645cce8f9a7e686178268398977fb), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11534.bin", 0x300006, 0x20000, CRC(b7f0ad7c) SHA1(987b198692db365f3a81e88e5eec526775c318c6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11535.bin", 0x300007, 0x20000, CRC(95da7a46) SHA1(ffe6cd80eecc7c53a1155396ede0720d975d2c3b), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11693.bin", 0x000000, 0x10000, CRC(0497785c) SHA1(f077e71efdc96d6eb3f1a1f989650466554fb13a) ) // 11516A - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "epr-11465.bin", 0x000000, 0x80000, CRC(e1436dab) SHA1(363f4c111de38cb1d82b245e4fcc65308f506e6a) ) - ROM_LOAD( "epr-11516.bin", 0x080000, 0x20000, CRC(19d0e17f) SHA1(7171131226cf1fe260a2db310fad2ec264adca26) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11814.bin", 0x100000, 0x20000, CRC(0b05d376) SHA1(8d0c0be2fd9dbc714c82c7cd1c439d5ff65e1317) ) // 11517 - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) -ROM_END - -/************************************************************************************************************************** - Galaxy Force 2, Sega Y-board - CPU: 68000 (317-????) -*/ -ROM_START( gforce2j ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-11511.bin", 0x000000, 0x20000, CRC(d80a86d6) SHA1(e1beecb2af2d9960514639f30dbf923c9d5d5a89) ) - ROM_LOAD16_BYTE( "epr-11510.bin", 0x000001, 0x20000, CRC(d2b1bef4) SHA1(191c0387f4e47c2d675a6d6984907ca3a9d4156a) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11515.bin", 0x000000, 0x20000, CRC(d85875cf) SHA1(11fe1e008b2ced564aa5f82130cc7872fefeaf8d) ) - ROM_LOAD16_BYTE( "epr-11514.bin", 0x000001, 0x20000, CRC(3dcc6919) SHA1(0f701854734880aa98e890d8e2d13c62216dfb53) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-11513.bin", 0x000000, 0x20000, CRC(e18bc177) SHA1(3fb179c9074954fc9b64da1463f542d60a99ec84) ) - ROM_LOAD16_BYTE( "epr-11512.bin", 0x000001, 0x20000, CRC(6010e63e) SHA1(00aa5e8516f094409a407744b84ef183393b8b19) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11467.bin", 0x000000, 0x20000, CRC(6e60e736) SHA1(73086744cb2fe1ce162f851cb879755c21819b33) ) - ROM_LOAD16_BYTE( "epr-11468.bin", 0x000001, 0x20000, CRC(74ca9ca5) SHA1(c6f27ce43ef270088e6155c8240fd15afa5729fd) ) - ROM_LOAD16_BYTE( "epr-11694.bin", 0x040000, 0x20000, CRC(7e297b84) SHA1(bbf1aa2b0b6b1f9fdaf9bea77d24b7f4f9320696) ) - ROM_LOAD16_BYTE( "epr-11695.bin", 0x040001, 0x20000, CRC(38a864be) SHA1(ef7d89511713d695f6a454c42f079d3507d9690d) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11469.bin", 0x000000, 0x20000, CRC(ed7a2299) SHA1(1aecf9ccba1fed0b7908008e798c522251a08b0f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11470.bin", 0x000001, 0x20000, CRC(34dea550) SHA1(da95b8346c3530573461553629af4cc493bbb4af), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11477.bin", 0x000002, 0x20000, CRC(a2784653) SHA1(00a123d1fc8116ca678d6d8dbf1a5450feee014d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11478.bin", 0x000003, 0x20000, CRC(8b778993) SHA1(015ae757d26cd6e69bdf79e237f62743a8f41e0c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11471.bin", 0x000004, 0x20000, CRC(f1974069) SHA1(c8beb1a2ce430e3e6478c87c7053a58f8f31a140), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11472.bin", 0x000005, 0x20000, CRC(0d24409a) SHA1(ee00e23b0c548918b89dd48ed3f8b0370388659e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11479.bin", 0x000006, 0x20000, CRC(ecd6138a) SHA1(bbc157a1f9b7e24d16e6f126d95c448736e83791), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11480.bin", 0x000007, 0x20000, CRC(64ad66c5) SHA1(aaab6999aa88b3340b16ee1188a8432477e16625), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11473.bin", 0x100000, 0x20000, CRC(0538c6ec) SHA1(9397db188f12cf8cd91841794134760f30f83893), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11474.bin", 0x100001, 0x20000, CRC(eb923c50) SHA1(f997d2bc7f674eae4243eaf640d8faffa41d9521), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11481.bin", 0x100002, 0x20000, CRC(78e652b6) SHA1(8c70609172908131fef8cbe05f810dbd3d120eba), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11482.bin", 0x100003, 0x20000, CRC(2f879766) SHA1(ca5835d0bb77fe7de83ad336a82111cb2f96cd41), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11475.bin", 0x100004, 0x20000, CRC(69cfec89) SHA1(db2a9b03fff727f198fb5cbfb9c281ac3bbc5623), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11476.bin", 0x100005, 0x20000, CRC(a60b9b79) SHA1(6e9aa51923c12f5658bd17deb6c032e08c91dade), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11483.bin", 0x100006, 0x20000, CRC(d5d3a505) SHA1(fa7662346b954d3faf0e8fcf138004231676845c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11484.bin", 0x100007, 0x20000, CRC(b8a56a50) SHA1(ccbc391d6f60b88630d7a93b8bb6e365a8d59ed8), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11696.bin", 0x200000, 0x20000, CRC(99e8e49e) SHA1(ab6e1d74af412ec2f939043d7dc26f4b2e34a528), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11697.bin", 0x200001, 0x20000, CRC(7545c52e) SHA1(bdb0ccf233e10e9449aa367db5a5b5f209bee969), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11700.bin", 0x200002, 0x20000, CRC(e13839c1) SHA1(4975b5314797d11c782b0478eaa84eaf9980b1cd), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11701.bin", 0x200003, 0x20000, CRC(9fb3d365) SHA1(bfcf4abfa91aa41b16f01b7bafe97cd865167fbc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11698.bin", 0x200004, 0x20000, CRC(cfeba3e2) SHA1(826b73858ca5ea05688246d36b1f607356974ca9), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11699.bin", 0x200005, 0x20000, CRC(4a00534a) SHA1(9a637b45b140420937b232bf690ef8bc3d43f5ad), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11702.bin", 0x200006, 0x20000, CRC(2a09c627) SHA1(c6b0a618b4ddd9d227d3472544b62ebef966b041), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11703.bin", 0x200007, 0x20000, CRC(43bb7d9f) SHA1(e36d208937f56f0af14292184c80ca939c32c378), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11524.bin", 0x300000, 0x20000, CRC(5d35849f) SHA1(b86fb230ed0901dfdb525e7a47d9c9ad8031a3f6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11525.bin", 0x300001, 0x20000, CRC(9ae47552) SHA1(43268dd5f79282aabd8972994437de1b2d2acc40), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11532.bin", 0x300002, 0x20000, CRC(b3565ddb) SHA1(3208744d43a11f4de8a6b626cc9113ad63d36807), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11533.bin", 0x300003, 0x20000, CRC(f5d16e8a) SHA1(3b5c1582794a0e69707264879b544ac48afd9337), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11526.bin", 0x300004, 0x20000, CRC(094cb3f0) SHA1(4b30e24dfd33c9922ffd5665cd9631b1f24243da), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11527.bin", 0x300005, 0x20000, CRC(e821a144) SHA1(eeec0e51798645cce8f9a7e686178268398977fb), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11534.bin", 0x300006, 0x20000, CRC(b7f0ad7c) SHA1(987b198692db365f3a81e88e5eec526775c318c6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11535.bin", 0x300007, 0x20000, CRC(95da7a46) SHA1(ffe6cd80eecc7c53a1155396ede0720d975d2c3b), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11693.bin", 0x000000, 0x10000, CRC(0497785c) SHA1(f077e71efdc96d6eb3f1a1f989650466554fb13a) ) // 11516A - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "epr-11465.bin", 0x000000, 0x80000, CRC(e1436dab) SHA1(363f4c111de38cb1d82b245e4fcc65308f506e6a) ) - ROM_LOAD( "epr-11516.bin", 0x080000, 0x20000, CRC(19d0e17f) SHA1(7171131226cf1fe260a2db310fad2ec264adca26) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11814.bin", 0x100000, 0x20000, CRC(0b05d376) SHA1(8d0c0be2fd9dbc714c82c7cd1c439d5ff65e1317) ) // 11517 - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - - -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - G-Loc, Sega Y-board - CPU: 68000 (317-????) -*/ -ROM_START( gloc ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-13170.25", 0x000000, 0x20000, CRC(45189229) SHA1(01d18f6e4887633475baf610f455fad4ed7981e4) ) - ROM_LOAD16_BYTE( "epr-13169.24", 0x000001, 0x20000, CRC(1b47cd6e) SHA1(694f489766f25e4c1f1fef6db79de347688ad80a) ) - ROM_LOAD16_BYTE( "epr-13028.27", 0x040000, 0x20000, CRC(b6aa2edf) SHA1(07259fc48cd0f63fbd0a8dadf2294575cd790c85) ) - ROM_LOAD16_BYTE( "epr-13027.26", 0x040001, 0x20000, CRC(6463c87a) SHA1(882d980a1568ca777364822295e173224509f842) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-13032.81", 0x000000, 0x20000, CRC(7da09c4e) SHA1(09ec269c07f07549aa9851585eac0a5195e25bf9) ) - ROM_LOAD16_BYTE( "epr-13031.80", 0x000001, 0x20000, CRC(f3c7e3f4) SHA1(927c0cf05e7a72d79fdf19bbe7b18bf167feccd6) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-13030.54", 0x000000, 0x20000, CRC(81abcabf) SHA1(cb4e817d66a7f384aa9757758c51cd1bf7347dd0) ) - ROM_LOAD16_BYTE( "epr-13029.53", 0x000001, 0x20000, CRC(f3638efb) SHA1(f82a46fc8616cbe0235746161c587e54adecfe50) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0) - ROM_LOAD16_BYTE( "epr-13039.16", 0x000000, 0x80000, CRC(d7e1266d) SHA1(b0fc4cc60a7e876ae2af343bba6da3fb926ea9c5) ) - ROM_LOAD16_BYTE( "epr-13037.14", 0x000001, 0x80000, CRC(b801a250) SHA1(7d1f6a1f2022a4f302f22d11fa79057cf8134ad2) ) - ROM_LOAD16_BYTE( "epr-13040.17", 0x100000, 0x80000, CRC(4aeb3a85) SHA1(5521fd2d3956839bdbe7b70a9e60cd9fb72a42f1) ) - ROM_LOAD16_BYTE( "epr-13038.15", 0x100001, 0x80000, CRC(0b2edb6d) SHA1(04944d6e6f020cd6d33641110847706516630227) ) - - ROM_REGION64_BE( 0x1000000, REGION_GFX1, 0 ) - ROMX_LOAD( "epr-13048.67", 0x000000, 0x80000, CRC(fe1eb0dd) SHA1(5e292fc0b83505eb289e026d4be24c9038ef1418), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13056.75", 0x000001, 0x80000, CRC(5904f8e6) SHA1(fbb01dadc796624c360d44b7631e3f1f285abf2e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13044.63", 0x000002, 0x80000, CRC(4d931f89) SHA1(ff603f4347e4728a2849d9f480893ad0af7abc5c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13052.71", 0x000003, 0x80000, CRC(0291f040) SHA1(610dee2a31445f4a054111b7005278560a9c0702), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13064.86", 0x000004, 0x80000, CRC(5f8e651b) SHA1(f1a957e68dea40c23f6a5a208358ec6d6515fe60), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13072.114", 0x000005, 0x80000, CRC(6b85641a) SHA1(143a4684d5f303cd30880a2d5728dccbdd168da4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13060.82", 0x000006, 0x80000, CRC(ee16ad97) SHA1(6af38cfaf694f686f8e4223fb0b13cd350a8b9e5), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13068.110", 0x000007, 0x80000, CRC(64d52bbb) SHA1(b6eab546edb2443e5da6c94ec811ec5084212e60), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13047.66", 0x400000, 0x80000, CRC(53340832) SHA1(8ece8a71ea8ed80458121622307a137fb13931f6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13055.74", 0x400001, 0x80000, CRC(39b6b665) SHA1(d915db1d9bfe0c6ad3f7b447ce0cfdb42ec66ffe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13043.62", 0x400002, 0x80000, CRC(208f16fd) SHA1(ce96708ea9886af4aba8730cbb98c0ca72b96f57), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13051.70", 0x400003, 0x80000, CRC(ad62cbd4) SHA1(09c008ce5cb97575a4312d2f22566bda72ecc4e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13063.85", 0x400004, 0x80000, CRC(c580bf6d) SHA1(cb72970377ad2acce499059aa8155711b8da8a11), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13071.113", 0x400005, 0x80000, CRC(df99ef99) SHA1(12648844c6e78dbd573b7bf0c981edb4d3012b58), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13059.81", 0x400006, 0x80000, CRC(4c982558) SHA1(e04902af2740ca098cd6bbf1f57cb25562754a76), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13067.109", 0x400007, 0x80000, CRC(f97f6119) SHA1(6f91fc28a1260ca4f1c695863717b27d1e45dc32), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13046.65", 0x800000, 0x80000, CRC(c75a86e9) SHA1(8a180e1e2dd06eb81e2aa4ef73b83879cf6afc1b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13054.73", 0x800001, 0x80000, CRC(2934549a) SHA1(058b2966141d0db6bb8557d65c77b3458aca9358), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13042.61", 0x800002, 0x80000, CRC(53ed97af) SHA1(22dffa434eb98e5bca1e429b69553a3540dc54a7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13050.69", 0x800003, 0x80000, CRC(04429068) SHA1(d7d8738809fd959ed428796b2bd1b589b74522c6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13062.84", 0x800004, 0x80000, CRC(4fdb4ee3) SHA1(d76065b9abe5c3cf692567d3a8746a231748340d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13070.112", 0x800005, 0x80000, CRC(52ea130e) SHA1(860cb3a1701066e595518c49b696b7b7a3994ada), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13058.80", 0x800006, 0x80000, CRC(19ff1626) SHA1(029e231c3322467b5e2e52eea11df4f645460468), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13066.108", 0x800007, 0x80000, CRC(bc70a250) SHA1(25189854cc01855b6e3589b85490f30dda029f86), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13045.64", 0xc00000, 0x80000, CRC(54d5bc6d) SHA1(18a301c9e6c4a352f300a438d85c6e6952bf0738), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13053.72", 0xc00001, 0x80000, CRC(9502af13) SHA1(1a8c0fcd10f4c86af69c0107f486ca2eb8863f93), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13041.60", 0xc00002, 0x80000, CRC(d0a7402c) SHA1(8932503c570ec49fdb4706f4015608bd060bafa0), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13049.68", 0xc00003, 0x80000, CRC(5b9c0b6c) SHA1(17f2460b7dc0bd34dca3f90f2b553df4a7149147), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13061.83", 0xc00004, 0x80000, CRC(7b95ec3b) SHA1(284aba4effd9d376a7a8f510a6f675fcb3393d09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13069.111", 0xc00005, 0x80000, CRC(e1f538f0) SHA1(55dc85faed1d5a7f2d586bac7e524c3fef3c53b4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13057.79", 0xc00006, 0x80000, CRC(73baefee) SHA1(6e86edc8229dd6112034a7df79f7341a4120dc6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13065.107", 0xc00007, 0x80000, CRC(8937a655) SHA1(d38726a8a6fe68a002ac8d17f70ab83c2f814aa2), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-13033.102", 0x000000, 0x10000, CRC(6df5e827) SHA1(ec260886a27ba00690490500fcf4ebf07fb35205) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "epr-13036.107", 0x000000, 0x80000, CRC(7890c26c) SHA1(97e0678bb571de5cf732804f8909e5cbd24980f1) ) - ROM_LOAD( "epr-13035.106", 0x080000, 0x80000, CRC(009fa13e) SHA1(c7b224b471696b12332fc7c403c127b19c297df7) ) - ROM_LOAD( "epr-13034.105", 0x100000, 0x80000, CRC(cd22d95d) SHA1(857aa320df0b3fb44fc8a5526ba5ee82cc74fe63) ) -ROM_END - - -ROM_START( glocr360 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-13623.25", 0x000000, 0x20000, CRC(58ad10e7) SHA1(3760ede1d1c089f6c8b2ec88b2f25bce67add467) ) - ROM_LOAD16_BYTE( "epr-13622.24", 0x000001, 0x20000, CRC(c4e68dbf) SHA1(f85e6fdf159e19342e5a9278f004e95752af7d55) ) - ROM_LOAD16_BYTE( "epr-13323a.27", 0x040000, 0x20000, CRC(02e24a33) SHA1(4955b13e5e90945dfb9066597b16df63c2a09552) ) - ROM_LOAD16_BYTE( "epr-13322a.26", 0x040001, 0x20000, CRC(94f67740) SHA1(3d1be8dc9c370cd024fae19bb0b2663995d13d0e) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-13327.81", 0x000000, 0x20000, CRC(627036f9) SHA1(bae8a2b1a90088532e5d487e36265de9a1f38f84) ) - ROM_LOAD16_BYTE( "epr-13326.80", 0x000001, 0x20000, CRC(162ac233) SHA1(863b93a38906e3d7f3446c2ee4914205f8123022) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-13325a.54", 0x000000, 0x20000, CRC(aba307e5) SHA1(a27a7d3699a95d7c6265a23157b2fefd362003dd) ) - ROM_LOAD16_BYTE( "epr-13324a.53", 0x000001, 0x20000, CRC(eb1b19e5) SHA1(3d1d7299cb3befc22afc0db0376d7f94dec37367) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0) - ROM_LOAD16_BYTE( "epr-13039.16", 0x000000, 0x80000, CRC(d7e1266d) SHA1(b0fc4cc60a7e876ae2af343bba6da3fb926ea9c5) ) - ROM_LOAD16_BYTE( "epr-13037.14", 0x000001, 0x80000, CRC(b801a250) SHA1(7d1f6a1f2022a4f302f22d11fa79057cf8134ad2) ) - ROM_LOAD16_BYTE( "epr-13040.17", 0x100000, 0x80000, CRC(4aeb3a85) SHA1(5521fd2d3956839bdbe7b70a9e60cd9fb72a42f1) ) - ROM_LOAD16_BYTE( "epr-13038.15", 0x100001, 0x80000, CRC(0b2edb6d) SHA1(04944d6e6f020cd6d33641110847706516630227) ) - - ROM_REGION64_BE( 0x1000000, REGION_GFX1, 0 ) - ROMX_LOAD( "epr-13048.67", 0x000000, 0x80000, CRC(fe1eb0dd) SHA1(5e292fc0b83505eb289e026d4be24c9038ef1418), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13056.75", 0x000001, 0x80000, CRC(5904f8e6) SHA1(fbb01dadc796624c360d44b7631e3f1f285abf2e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13044.63", 0x000002, 0x80000, CRC(4d931f89) SHA1(ff603f4347e4728a2849d9f480893ad0af7abc5c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13052.71", 0x000003, 0x80000, CRC(0291f040) SHA1(610dee2a31445f4a054111b7005278560a9c0702), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13064.86", 0x000004, 0x80000, CRC(5f8e651b) SHA1(f1a957e68dea40c23f6a5a208358ec6d6515fe60), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13072.114", 0x000005, 0x80000, CRC(6b85641a) SHA1(143a4684d5f303cd30880a2d5728dccbdd168da4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13060.82", 0x000006, 0x80000, CRC(ee16ad97) SHA1(6af38cfaf694f686f8e4223fb0b13cd350a8b9e5), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13068.110", 0x000007, 0x80000, CRC(64d52bbb) SHA1(b6eab546edb2443e5da6c94ec811ec5084212e60), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13047.66", 0x400000, 0x80000, CRC(53340832) SHA1(8ece8a71ea8ed80458121622307a137fb13931f6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13055.74", 0x400001, 0x80000, CRC(39b6b665) SHA1(d915db1d9bfe0c6ad3f7b447ce0cfdb42ec66ffe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13043.62", 0x400002, 0x80000, CRC(208f16fd) SHA1(ce96708ea9886af4aba8730cbb98c0ca72b96f57), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13051.70", 0x400003, 0x80000, CRC(ad62cbd4) SHA1(09c008ce5cb97575a4312d2f22566bda72ecc4e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13063.85", 0x400004, 0x80000, CRC(c580bf6d) SHA1(cb72970377ad2acce499059aa8155711b8da8a11), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13071.113", 0x400005, 0x80000, CRC(df99ef99) SHA1(12648844c6e78dbd573b7bf0c981edb4d3012b58), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13059.81", 0x400006, 0x80000, CRC(4c982558) SHA1(e04902af2740ca098cd6bbf1f57cb25562754a76), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13067.109", 0x400007, 0x80000, CRC(f97f6119) SHA1(6f91fc28a1260ca4f1c695863717b27d1e45dc32), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13331.65", 0x800000, 0x80000, CRC(8ea8febe) SHA1(c5b68f955807d7d901b773ba8fba5c9a2d29afd1), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13333.73", 0x800001, 0x80000, CRC(5bcd37d4) SHA1(df25d3ef4acd3aea2484ff5760a63245eafcb66c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13330.61", 0x800002, 0x80000, CRC(1e325d52) SHA1(91ffdb5d9926ea573550079ca0486a71baf70d07), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13332.69", 0x800003, 0x80000, CRC(8fd8067e) SHA1(ac438ae60fa08418b5590f5656e2d1ecc3e6eb15), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13335.84", 0x800004, 0x80000, CRC(98ea420b) SHA1(fc138a45e287e0c7c3ec1cc75aa6dabc9dca8d42), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13337.112", 0x800005, 0x80000, CRC(f55f00a4) SHA1(77f1e946c7bce69aa9f1f3e59af1e033338c9d95), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13334.80", 0x800006, 0x80000, CRC(72725060) SHA1(6002eca365a69816ac6e7ccba65ae73967e83a89), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13336.108", 0x800007, 0x80000, CRC(e2d4d477) SHA1(cdeefeb6d66433c121cac4e77453f6265bacf9e2), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13045.64", 0xc00000, 0x80000, CRC(54d5bc6d) SHA1(18a301c9e6c4a352f300a438d85c6e6952bf0738), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13053.72", 0xc00001, 0x80000, CRC(9502af13) SHA1(1a8c0fcd10f4c86af69c0107f486ca2eb8863f93), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13041.60", 0xc00002, 0x80000, CRC(d0a7402c) SHA1(8932503c570ec49fdb4706f4015608bd060bafa0), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13049.68", 0xc00003, 0x80000, CRC(5b9c0b6c) SHA1(17f2460b7dc0bd34dca3f90f2b553df4a7149147), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13061.83", 0xc00004, 0x80000, CRC(7b95ec3b) SHA1(284aba4effd9d376a7a8f510a6f675fcb3393d09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13069.111", 0xc00005, 0x80000, CRC(e1f538f0) SHA1(55dc85faed1d5a7f2d586bac7e524c3fef3c53b4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13057.79", 0xc00006, 0x80000, CRC(73baefee) SHA1(6e86edc8229dd6112034a7df79f7341a4120dc6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13065.107", 0xc00007, 0x80000, CRC(8937a655) SHA1(d38726a8a6fe68a002ac8d17f70ab83c2f814aa2), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-13624.102", 0x000000, 0x10000, CRC(eff33f2d) SHA1(87ea22042e5ee1df28544e4959e16f54cfe17f23) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "epr-13036.107", 0x000000, 0x80000, CRC(7890c26c) SHA1(97e0678bb571de5cf732804f8909e5cbd24980f1) ) - ROM_LOAD( "epr-13035.106", 0x080000, 0x80000, CRC(009fa13e) SHA1(c7b224b471696b12332fc7c403c127b19c297df7) ) - ROM_LOAD( "epr-13625.105", 0x100000, 0x80000, CRC(fae71fd2) SHA1(c8468486b1ac74d3a6254d538f05034b1533e40b) ) -ROM_END - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Power Drift, Sega Y-board - CPU: 68000 (317-????) - CPU BD POWER DRIFT 837-6695-08 (or 837-6695-09) - VIDEO BD POWER DRIFT 837-6696-01 (or 837-6696-02) -*/ -ROM_START( pdrift ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-12017.25", 0x000000, 0x20000, CRC(31190322) SHA1(18df4bd6078b1c76c7061c05a476a7cbf7d0b37b) ) - ROM_LOAD16_BYTE( "epr-12016.24", 0x000001, 0x20000, CRC(499f64a6) SHA1(506652bdb0f3d23a2cf7ff29732b8ec77c389b46) ) - ROM_LOAD16_BYTE( "epr-11748.27", 0x040000, 0x20000, CRC(82a76cab) SHA1(f8d3fe059e18896cd0e64711f1a3ee8b6372b4e0) ) - ROM_LOAD16_BYTE( "epr-11747.26", 0x040001, 0x20000, CRC(9796ece5) SHA1(f84f5689c2edc0853ff173ce20f93f89758b2f31) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11905.81", 0x000000, 0x20000, CRC(1cf68109) SHA1(198c1f9d4278586d1e0f50acaaf08e60ba464f8a) ) - ROM_LOAD16_BYTE( "epr-11904.80", 0x000001, 0x20000, CRC(bb993681) SHA1(c5107e8d52cba3a0fc813ffa9e3752e0f9c3c0df) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-12019a.54", 0x000000, 0x20000, CRC(11188a30) SHA1(42dd0344d92529848b53a8cec4c145237ccd5b51) ) - ROM_LOAD16_BYTE( "epr-12018a.53", 0x000001, 0x20000, CRC(1c582e1f) SHA1(c32d2f921554bddd7dedcb81e231aa91f50fa27b) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11789.16", 0x000000, 0x20000, CRC(b86f8d2b) SHA1(a053f2021841fd0ef89fd3f28050a698b36c435e) ) - ROM_LOAD16_BYTE( "epr-11791.14", 0x000001, 0x20000, CRC(36b2910a) SHA1(9948b91837f944a7a606542fa685525e74bbe398) ) - ROM_LOAD16_BYTE( "epr-11790.17", 0x040000, 0x20000, CRC(2a564e66) SHA1(5f30fc15bfd017d75cfffe1e9e62ed0bcf32a98e) ) - ROM_LOAD16_BYTE( "epr-11792.15", 0x040001, 0x20000, CRC(c85caf6e) SHA1(2411ea99ec7f6e2b0b4f219e86ff2172539ad2c4) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11757.67", 0x000000, 0x20000, CRC(e46dc478) SHA1(baf79e230aef3d63fb50373b2b1626f7c56ee94f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11758.75", 0x000001, 0x20000, CRC(5b435c87) SHA1(6b42b08e73957c36cd8faa896ca14461d00afd29), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11773.63", 0x000002, 0x20000, CRC(1b5d5758) SHA1(54f58a274740a0566e0553d145c0c284ffd1d36b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11774.71", 0x000003, 0x20000, CRC(2ca0c170) SHA1(7de74c045bf084659ba70da9458d720125ff25ae), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11759.86", 0x000004, 0x20000, CRC(ac8111f6) SHA1(6412716dc97ae697b438d9c9cd554d1087416bc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11760.114", 0x000005, 0x20000, CRC(91282af9) SHA1(fddee7982949b7da724c7830e7bd139aeb84672d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11775.82", 0x000006, 0x20000, CRC(48225793) SHA1(ee003c2ea24c14e0968da94bac139735660932fe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11776.110", 0x000007, 0x20000, CRC(78c46198) SHA1(d299e631843da47cb7a46103d52a3dabfab71746), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11761.66", 0x100000, 0x20000, CRC(baa5d065) SHA1(56dc71814e3f0f327781b0c1587038351c60f7b7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11762.74", 0x100001, 0x20000, CRC(1d1af7a5) SHA1(86c02565b5aca201588c98678fb0c54faa8d4d6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11777.62", 0x100002, 0x20000, CRC(9662dd32) SHA1(454ec914b6c936f692bf90d2232c8169acec470a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11778.70", 0x100003, 0x20000, CRC(2dfb7494) SHA1(4b9f1609e425c5e634e95dbc2d0ca820dd9212bc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11763.85", 0x100004, 0x20000, CRC(1ee23407) SHA1(776c868e0e4e601fd6d0a83561b064b4be0560e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11764.113", 0x100005, 0x20000, CRC(e859305e) SHA1(aafcc3209a4fb6e0e8169ae6cce386b370b824f7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11779.81", 0x100006, 0x20000, CRC(a49cd793) SHA1(efe77949be39a2ff88b50bfb2b4664b9267d9a09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11780.109", 0x100007, 0x20000, CRC(d514ed81) SHA1(fbac3ad085363972a79e77aebb7fdae2200e7cda), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11765.65", 0x200000, 0x20000, CRC(649e2dff) SHA1(a6c61b71d08b31a0ca175ab0404e2eaf1d09ccc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11766.73", 0x200001, 0x20000, CRC(d92fb7fc) SHA1(2f5c2d88ae0766351b9efe8ffcbebc88fc3a6c59), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11781.61", 0x200002, 0x20000, CRC(9692d4cd) SHA1(967351ba2c781ca865e3c1ee9eeef1aad2247c27), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11782.69", 0x200003, 0x20000, CRC(c913bb43) SHA1(9bc15a3180cf4c3134bb55e99e6092f0faf95c56), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11767.84", 0x200004, 0x20000, CRC(1f8ad054) SHA1(289f5795116ee29540f28e35c3b4f72adeca7891), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11768.112", 0x200005, 0x20000, CRC(db2c4053) SHA1(a5b6daa6deb7afb0019e289acb81c82d507ec93a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11783.80", 0x200006, 0x20000, CRC(6d189007) SHA1(dd871ea3166fdcb59d49707d35dde8b6c7fdc76b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11784.108", 0x200007, 0x20000, CRC(57f5fd64) SHA1(6aff54d3f3f76ce0f1a93485d1a35a3987d456d9), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11769.64", 0x300000, 0x20000, CRC(28f0ab51) SHA1(d7cb7b83e5d85eb59d34cfd5c0d8e6c7ff81e24c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11770.72", 0x300001, 0x20000, CRC(d7557ea9) SHA1(62430505d399ee2cc0f94e03144860056345573c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11785.60", 0x300002, 0x20000, CRC(e6ef32c4) SHA1(869ba3816f5e3125f613f3b284fec74cd19db79e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11786.68", 0x300003, 0x20000, CRC(2066b49d) SHA1(905ce70c921043d07591422a87fedd6e897ff38e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11771.83", 0x300004, 0x20000, CRC(67635618) SHA1(f690ace026130ecb95532c92f2ad3741d0d167c1), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11772.111", 0x300005, 0x20000, CRC(0f798d3a) SHA1(71565ce28b93ae50d64af8c965fba6408a07f031), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11787.79", 0x300006, 0x20000, CRC(e631dc12) SHA1(3fd6db2eb297890b35dec566b6a90fc2d96bd085), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11788.107", 0x300007, 0x20000, CRC(8464c66e) SHA1(af93cbcc50acbd929d0298fb9a75da0369e13ff7), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11899.102", 0x000000, 0x10000, CRC(ed9fa889) SHA1(25d1a069254b34c31d8ee82d301ada895e8dc391) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "mpr-11754.107", 0x000000, 0x80000, CRC(ebeb8484) SHA1(269f33cb1a9be126bada858e25291385d48686a2) ) - ROM_LOAD( "epr-11755.105", 0x080000, 0x20000, CRC(12e43f8a) SHA1(0f9a11ba6b7c1a352daa1146a01ce147945e91e4) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11756.106", 0x100000, 0x20000, CRC(c2db1244) SHA1(c98fe17c9f04a639a862cc2a86fab17d1f5d025c) ) - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - /* These are mpr-11754.107 split into 4 roms. They would be located on a Sega 839-0221 daughter card. */ - ROM_LOAD( "epr-11895.ic1", 0x000000, 0x20000, CRC(ee99a6fd) SHA1(4444826e751d9186e6d46b081e47cd99ee3cf853) ) - ROM_LOAD( "epr-11896.ic2", 0x000000, 0x20000, CRC(4bebc015) SHA1(307022ea1c1ee87c9ef3782526888c48c3c69fd2) ) - ROM_LOAD( "epr-11897.ic3", 0x000000, 0x20000, CRC(4463cb95) SHA1(e86fd4611cf83fe72d59950a60fc8c3a7381a1c7) ) - ROM_LOAD( "epr-11898.ic4", 0x000000, 0x20000, CRC(5d19d767) SHA1(d335cd3ef57c75e388df04b04fc3e2881a3902cf) ) -ROM_END - -ROM_START( pdrifta ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-12017.25", 0x000000, 0x20000, CRC(31190322) SHA1(18df4bd6078b1c76c7061c05a476a7cbf7d0b37b) ) - ROM_LOAD16_BYTE( "epr-12016.24", 0x000001, 0x20000, CRC(499f64a6) SHA1(506652bdb0f3d23a2cf7ff29732b8ec77c389b46) ) - ROM_LOAD16_BYTE( "epr-11748.27", 0x040000, 0x20000, CRC(82a76cab) SHA1(f8d3fe059e18896cd0e64711f1a3ee8b6372b4e0) ) - ROM_LOAD16_BYTE( "epr-11747.26", 0x040001, 0x20000, CRC(9796ece5) SHA1(f84f5689c2edc0853ff173ce20f93f89758b2f31) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11905.81", 0x000000, 0x20000, CRC(1cf68109) SHA1(198c1f9d4278586d1e0f50acaaf08e60ba464f8a) ) - ROM_LOAD16_BYTE( "epr-11904.80", 0x000001, 0x20000, CRC(bb993681) SHA1(c5107e8d52cba3a0fc813ffa9e3752e0f9c3c0df) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-12019.54", 0x000000, 0x20000, CRC(e514d7b6) SHA1(27ae99f5f3e8d2f248916f7a252e2c0686638df5) ) - ROM_LOAD16_BYTE( "epr-12018.53", 0x000001, 0x20000, CRC(0a3f7faf) SHA1(fe20a164a7a2c9e9bf0e7aade75b0488bdc93d79) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11789.16", 0x000000, 0x20000, CRC(b86f8d2b) SHA1(a053f2021841fd0ef89fd3f28050a698b36c435e) ) - ROM_LOAD16_BYTE( "epr-11791.14", 0x000001, 0x20000, CRC(36b2910a) SHA1(9948b91837f944a7a606542fa685525e74bbe398) ) - ROM_LOAD16_BYTE( "epr-11790.17", 0x040000, 0x20000, CRC(2a564e66) SHA1(5f30fc15bfd017d75cfffe1e9e62ed0bcf32a98e) ) - ROM_LOAD16_BYTE( "epr-11792.15", 0x040001, 0x20000, CRC(c85caf6e) SHA1(2411ea99ec7f6e2b0b4f219e86ff2172539ad2c4) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11757.67", 0x000000, 0x20000, CRC(e46dc478) SHA1(baf79e230aef3d63fb50373b2b1626f7c56ee94f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11758.75", 0x000001, 0x20000, CRC(5b435c87) SHA1(6b42b08e73957c36cd8faa896ca14461d00afd29), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11773.63", 0x000002, 0x20000, CRC(1b5d5758) SHA1(54f58a274740a0566e0553d145c0c284ffd1d36b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11774.71", 0x000003, 0x20000, CRC(2ca0c170) SHA1(7de74c045bf084659ba70da9458d720125ff25ae), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11759.86", 0x000004, 0x20000, CRC(ac8111f6) SHA1(6412716dc97ae697b438d9c9cd554d1087416bc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11760.114", 0x000005, 0x20000, CRC(91282af9) SHA1(fddee7982949b7da724c7830e7bd139aeb84672d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11775.82", 0x000006, 0x20000, CRC(48225793) SHA1(ee003c2ea24c14e0968da94bac139735660932fe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11776.110", 0x000007, 0x20000, CRC(78c46198) SHA1(d299e631843da47cb7a46103d52a3dabfab71746), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11761.66", 0x100000, 0x20000, CRC(baa5d065) SHA1(56dc71814e3f0f327781b0c1587038351c60f7b7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11762.74", 0x100001, 0x20000, CRC(1d1af7a5) SHA1(86c02565b5aca201588c98678fb0c54faa8d4d6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11777.62", 0x100002, 0x20000, CRC(9662dd32) SHA1(454ec914b6c936f692bf90d2232c8169acec470a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11778.70", 0x100003, 0x20000, CRC(2dfb7494) SHA1(4b9f1609e425c5e634e95dbc2d0ca820dd9212bc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11763.85", 0x100004, 0x20000, CRC(1ee23407) SHA1(776c868e0e4e601fd6d0a83561b064b4be0560e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11764.113", 0x100005, 0x20000, CRC(e859305e) SHA1(aafcc3209a4fb6e0e8169ae6cce386b370b824f7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11779.81", 0x100006, 0x20000, CRC(a49cd793) SHA1(efe77949be39a2ff88b50bfb2b4664b9267d9a09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11780.109", 0x100007, 0x20000, CRC(d514ed81) SHA1(fbac3ad085363972a79e77aebb7fdae2200e7cda), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11765.65", 0x200000, 0x20000, CRC(649e2dff) SHA1(a6c61b71d08b31a0ca175ab0404e2eaf1d09ccc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11766.73", 0x200001, 0x20000, CRC(d92fb7fc) SHA1(2f5c2d88ae0766351b9efe8ffcbebc88fc3a6c59), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11781.61", 0x200002, 0x20000, CRC(9692d4cd) SHA1(967351ba2c781ca865e3c1ee9eeef1aad2247c27), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11782.69", 0x200003, 0x20000, CRC(c913bb43) SHA1(9bc15a3180cf4c3134bb55e99e6092f0faf95c56), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11767.84", 0x200004, 0x20000, CRC(1f8ad054) SHA1(289f5795116ee29540f28e35c3b4f72adeca7891), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11768.112", 0x200005, 0x20000, CRC(db2c4053) SHA1(a5b6daa6deb7afb0019e289acb81c82d507ec93a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11783.80", 0x200006, 0x20000, CRC(6d189007) SHA1(dd871ea3166fdcb59d49707d35dde8b6c7fdc76b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11784.108", 0x200007, 0x20000, CRC(57f5fd64) SHA1(6aff54d3f3f76ce0f1a93485d1a35a3987d456d9), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11769.64", 0x300000, 0x20000, CRC(28f0ab51) SHA1(d7cb7b83e5d85eb59d34cfd5c0d8e6c7ff81e24c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11770.72", 0x300001, 0x20000, CRC(d7557ea9) SHA1(62430505d399ee2cc0f94e03144860056345573c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11785.60", 0x300002, 0x20000, CRC(e6ef32c4) SHA1(869ba3816f5e3125f613f3b284fec74cd19db79e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11786.68", 0x300003, 0x20000, CRC(2066b49d) SHA1(905ce70c921043d07591422a87fedd6e897ff38e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11771.83", 0x300004, 0x20000, CRC(67635618) SHA1(f690ace026130ecb95532c92f2ad3741d0d167c1), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11772.111", 0x300005, 0x20000, CRC(0f798d3a) SHA1(71565ce28b93ae50d64af8c965fba6408a07f031), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11787.79", 0x300006, 0x20000, CRC(e631dc12) SHA1(3fd6db2eb297890b35dec566b6a90fc2d96bd085), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11788.107", 0x300007, 0x20000, CRC(8464c66e) SHA1(af93cbcc50acbd929d0298fb9a75da0369e13ff7), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11899.102", 0x000000, 0x10000, CRC(ed9fa889) SHA1(25d1a069254b34c31d8ee82d301ada895e8dc391) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "mpr-11754.107", 0x000000, 0x80000, CRC(ebeb8484) SHA1(269f33cb1a9be126bada858e25291385d48686a2) ) - ROM_LOAD( "epr-11755.105", 0x080000, 0x20000, CRC(12e43f8a) SHA1(0f9a11ba6b7c1a352daa1146a01ce147945e91e4) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11756.106", 0x100000, 0x20000, CRC(c2db1244) SHA1(c98fe17c9f04a639a862cc2a86fab17d1f5d025c) ) - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - /* These are mpr-11754.107 split into 4 roms. They would be located on a Sega 839-0221 daughter card. */ - ROM_LOAD( "epr-11895.ic1", 0x000000, 0x20000, CRC(ee99a6fd) SHA1(4444826e751d9186e6d46b081e47cd99ee3cf853) ) - ROM_LOAD( "epr-11896.ic2", 0x000000, 0x20000, CRC(4bebc015) SHA1(307022ea1c1ee87c9ef3782526888c48c3c69fd2) ) - ROM_LOAD( "epr-11897.ic3", 0x000000, 0x20000, CRC(4463cb95) SHA1(e86fd4611cf83fe72d59950a60fc8c3a7381a1c7) ) - ROM_LOAD( "epr-11898.ic4", 0x000000, 0x20000, CRC(5d19d767) SHA1(d335cd3ef57c75e388df04b04fc3e2881a3902cf) ) -ROM_END - -ROM_START( pdrifte ) /* Earlier set based on eprom numbers & Sega Eprom/Mask Rom Locations sheet 421-7708 */ - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-11901.25", 0x000000, 0x20000, CRC(16744be8) SHA1(51d06f1b590621d37b2eb8f6cc88f17b248402ad) ) - ROM_LOAD16_BYTE( "epr-11900.24", 0x000001, 0x20000, CRC(0a170d06) SHA1(525dec21708fb33c6c7e6d86cb82fd16f6bddfa0) ) - ROM_LOAD16_BYTE( "epr-11748.27", 0x040000, 0x20000, CRC(82a76cab) SHA1(f8d3fe059e18896cd0e64711f1a3ee8b6372b4e0) ) - ROM_LOAD16_BYTE( "epr-11747.26", 0x040001, 0x20000, CRC(9796ece5) SHA1(f84f5689c2edc0853ff173ce20f93f89758b2f31) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11905.81", 0x000000, 0x20000, CRC(1cf68109) SHA1(198c1f9d4278586d1e0f50acaaf08e60ba464f8a) ) - ROM_LOAD16_BYTE( "epr-11904.80", 0x000001, 0x20000, CRC(bb993681) SHA1(c5107e8d52cba3a0fc813ffa9e3752e0f9c3c0df) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-11903.54", 0x000000, 0x20000, CRC(d004f411) SHA1(212a985275647fae24b580ebaffc1230c06318ac) ) - ROM_LOAD16_BYTE( "epr-11902.53", 0x000001, 0x20000, CRC(e8028e08) SHA1(de4ee5011e9552e624b6223e0e1ef00bc271a811) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11789.16", 0x000000, 0x20000, CRC(b86f8d2b) SHA1(a053f2021841fd0ef89fd3f28050a698b36c435e) ) - ROM_LOAD16_BYTE( "epr-11791.14", 0x000001, 0x20000, CRC(36b2910a) SHA1(9948b91837f944a7a606542fa685525e74bbe398) ) - ROM_LOAD16_BYTE( "epr-11790.17", 0x040000, 0x20000, CRC(2a564e66) SHA1(5f30fc15bfd017d75cfffe1e9e62ed0bcf32a98e) ) - ROM_LOAD16_BYTE( "epr-11792.15", 0x040001, 0x20000, CRC(c85caf6e) SHA1(2411ea99ec7f6e2b0b4f219e86ff2172539ad2c4) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11757.67", 0x000000, 0x20000, CRC(e46dc478) SHA1(baf79e230aef3d63fb50373b2b1626f7c56ee94f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11758.75", 0x000001, 0x20000, CRC(5b435c87) SHA1(6b42b08e73957c36cd8faa896ca14461d00afd29), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11773.63", 0x000002, 0x20000, CRC(1b5d5758) SHA1(54f58a274740a0566e0553d145c0c284ffd1d36b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11774.71", 0x000003, 0x20000, CRC(2ca0c170) SHA1(7de74c045bf084659ba70da9458d720125ff25ae), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11759.86", 0x000004, 0x20000, CRC(ac8111f6) SHA1(6412716dc97ae697b438d9c9cd554d1087416bc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11760.114", 0x000005, 0x20000, CRC(91282af9) SHA1(fddee7982949b7da724c7830e7bd139aeb84672d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11775.82", 0x000006, 0x20000, CRC(48225793) SHA1(ee003c2ea24c14e0968da94bac139735660932fe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11776.110", 0x000007, 0x20000, CRC(78c46198) SHA1(d299e631843da47cb7a46103d52a3dabfab71746), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11761.66", 0x100000, 0x20000, CRC(baa5d065) SHA1(56dc71814e3f0f327781b0c1587038351c60f7b7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11762.74", 0x100001, 0x20000, CRC(1d1af7a5) SHA1(86c02565b5aca201588c98678fb0c54faa8d4d6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11777.62", 0x100002, 0x20000, CRC(9662dd32) SHA1(454ec914b6c936f692bf90d2232c8169acec470a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11778.70", 0x100003, 0x20000, CRC(2dfb7494) SHA1(4b9f1609e425c5e634e95dbc2d0ca820dd9212bc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11763.85", 0x100004, 0x20000, CRC(1ee23407) SHA1(776c868e0e4e601fd6d0a83561b064b4be0560e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11764.113", 0x100005, 0x20000, CRC(e859305e) SHA1(aafcc3209a4fb6e0e8169ae6cce386b370b824f7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11779.81", 0x100006, 0x20000, CRC(a49cd793) SHA1(efe77949be39a2ff88b50bfb2b4664b9267d9a09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11780.109", 0x100007, 0x20000, CRC(d514ed81) SHA1(fbac3ad085363972a79e77aebb7fdae2200e7cda), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11765.65", 0x200000, 0x20000, CRC(649e2dff) SHA1(a6c61b71d08b31a0ca175ab0404e2eaf1d09ccc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11766.73", 0x200001, 0x20000, CRC(d92fb7fc) SHA1(2f5c2d88ae0766351b9efe8ffcbebc88fc3a6c59), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11781.61", 0x200002, 0x20000, CRC(9692d4cd) SHA1(967351ba2c781ca865e3c1ee9eeef1aad2247c27), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11782.69", 0x200003, 0x20000, CRC(c913bb43) SHA1(9bc15a3180cf4c3134bb55e99e6092f0faf95c56), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11767.84", 0x200004, 0x20000, CRC(1f8ad054) SHA1(289f5795116ee29540f28e35c3b4f72adeca7891), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11768.112", 0x200005, 0x20000, CRC(db2c4053) SHA1(a5b6daa6deb7afb0019e289acb81c82d507ec93a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11783.80", 0x200006, 0x20000, CRC(6d189007) SHA1(dd871ea3166fdcb59d49707d35dde8b6c7fdc76b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11784.108", 0x200007, 0x20000, CRC(57f5fd64) SHA1(6aff54d3f3f76ce0f1a93485d1a35a3987d456d9), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11769.64", 0x300000, 0x20000, CRC(28f0ab51) SHA1(d7cb7b83e5d85eb59d34cfd5c0d8e6c7ff81e24c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11770.72", 0x300001, 0x20000, CRC(d7557ea9) SHA1(62430505d399ee2cc0f94e03144860056345573c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11785.60", 0x300002, 0x20000, CRC(e6ef32c4) SHA1(869ba3816f5e3125f613f3b284fec74cd19db79e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11786.68", 0x300003, 0x20000, CRC(2066b49d) SHA1(905ce70c921043d07591422a87fedd6e897ff38e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11771.83", 0x300004, 0x20000, CRC(67635618) SHA1(f690ace026130ecb95532c92f2ad3741d0d167c1), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11772.111", 0x300005, 0x20000, CRC(0f798d3a) SHA1(71565ce28b93ae50d64af8c965fba6408a07f031), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11787.79", 0x300006, 0x20000, CRC(e631dc12) SHA1(3fd6db2eb297890b35dec566b6a90fc2d96bd085), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11788.107", 0x300007, 0x20000, CRC(8464c66e) SHA1(af93cbcc50acbd929d0298fb9a75da0369e13ff7), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11899.102", 0x000000, 0x10000, CRC(ed9fa889) SHA1(25d1a069254b34c31d8ee82d301ada895e8dc391) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "mpr-11754.107", 0x000000, 0x80000, CRC(ebeb8484) SHA1(269f33cb1a9be126bada858e25291385d48686a2) ) - ROM_LOAD( "epr-11755.105", 0x080000, 0x20000, CRC(12e43f8a) SHA1(0f9a11ba6b7c1a352daa1146a01ce147945e91e4) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11756.106", 0x100000, 0x20000, CRC(c2db1244) SHA1(c98fe17c9f04a639a862cc2a86fab17d1f5d025c) ) - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - /* These are mpr-11754.107 split into 4 roms. They would be located on a Sega 839-0221 daughter card. */ - ROM_LOAD( "epr-11895.ic1", 0x000000, 0x20000, CRC(ee99a6fd) SHA1(4444826e751d9186e6d46b081e47cd99ee3cf853) ) - ROM_LOAD( "epr-11896.ic2", 0x000000, 0x20000, CRC(4bebc015) SHA1(307022ea1c1ee87c9ef3782526888c48c3c69fd2) ) - ROM_LOAD( "epr-11897.ic3", 0x000000, 0x20000, CRC(4463cb95) SHA1(e86fd4611cf83fe72d59950a60fc8c3a7381a1c7) ) - ROM_LOAD( "epr-11898.ic4", 0x000000, 0x20000, CRC(5d19d767) SHA1(d335cd3ef57c75e388df04b04fc3e2881a3902cf) ) -ROM_END - -/************************************************************************************************************************** - Power Drift, Sega Y-board - CPU: 68000 (317-????) - CPU BD POWER DRIFT 837-6695-08 (or 837-6695-09) - VIDEO BD POWER DRIFT 837-6696-01 (or 837-6696-02) -*/ -ROM_START( pdriftj ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-11746a.25", 0x000000, 0x20000, CRC(b0f1caf4) SHA1(1d7e70e740ef513728a72ff6e7b1c4b78e3cb0d5) ) - ROM_LOAD16_BYTE( "epr-11745a.24", 0x000001, 0x20000, CRC(a89720cd) SHA1(a0393546797f124e1c03bd12945dc6358bb94ba9) ) - ROM_LOAD16_BYTE( "epr-11748.27", 0x040000, 0x20000, CRC(82a76cab) SHA1(f8d3fe059e18896cd0e64711f1a3ee8b6372b4e0) ) - ROM_LOAD16_BYTE( "epr-11747.26", 0x040001, 0x20000, CRC(9796ece5) SHA1(f84f5689c2edc0853ff173ce20f93f89758b2f31) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-11752.81", 0x000000, 0x20000, CRC(b6bb8111) SHA1(475ce4e3d92747a9012a0ab03838ece61f6d33e0) ) - ROM_LOAD16_BYTE( "epr-11751.80", 0x000001, 0x20000, CRC(7f0d0311) SHA1(7917be201ff44c6b895fc8e9e296e8b1ecf8d639) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-11750b.54", 0x000000, 0x20000, CRC(bc14ce30) SHA1(9bbadee0946e0abaac4f0d2625ba5550f11fa8a9) ) - ROM_LOAD16_BYTE( "epr-11749b.53", 0x000001, 0x20000, CRC(9e385568) SHA1(74e22eaed645cc80b1eb0c52912186066e58b9d2) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "epr-11789.16", 0x000000, 0x20000, CRC(b86f8d2b) SHA1(a053f2021841fd0ef89fd3f28050a698b36c435e) ) - ROM_LOAD16_BYTE( "epr-11791.14", 0x000001, 0x20000, CRC(36b2910a) SHA1(9948b91837f944a7a606542fa685525e74bbe398) ) - ROM_LOAD16_BYTE( "epr-11790.17", 0x040000, 0x20000, CRC(2a564e66) SHA1(5f30fc15bfd017d75cfffe1e9e62ed0bcf32a98e) ) - ROM_LOAD16_BYTE( "epr-11792.15", 0x040001, 0x20000, CRC(c85caf6e) SHA1(2411ea99ec7f6e2b0b4f219e86ff2172539ad2c4) ) - - ROM_REGION64_BE( 0x400000, REGION_GFX1, 0) - ROMX_LOAD( "epr-11757.67", 0x000000, 0x20000, CRC(e46dc478) SHA1(baf79e230aef3d63fb50373b2b1626f7c56ee94f), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11758.75", 0x000001, 0x20000, CRC(5b435c87) SHA1(6b42b08e73957c36cd8faa896ca14461d00afd29), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11773.63", 0x000002, 0x20000, CRC(1b5d5758) SHA1(54f58a274740a0566e0553d145c0c284ffd1d36b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11774.71", 0x000003, 0x20000, CRC(2ca0c170) SHA1(7de74c045bf084659ba70da9458d720125ff25ae), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11759.86", 0x000004, 0x20000, CRC(ac8111f6) SHA1(6412716dc97ae697b438d9c9cd554d1087416bc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11760.114", 0x000005, 0x20000, CRC(91282af9) SHA1(fddee7982949b7da724c7830e7bd139aeb84672d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11775.82", 0x000006, 0x20000, CRC(48225793) SHA1(ee003c2ea24c14e0968da94bac139735660932fe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11776.110", 0x000007, 0x20000, CRC(78c46198) SHA1(d299e631843da47cb7a46103d52a3dabfab71746), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11761.66", 0x100000, 0x20000, CRC(baa5d065) SHA1(56dc71814e3f0f327781b0c1587038351c60f7b7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11762.74", 0x100001, 0x20000, CRC(1d1af7a5) SHA1(86c02565b5aca201588c98678fb0c54faa8d4d6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11777.62", 0x100002, 0x20000, CRC(9662dd32) SHA1(454ec914b6c936f692bf90d2232c8169acec470a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11778.70", 0x100003, 0x20000, CRC(2dfb7494) SHA1(4b9f1609e425c5e634e95dbc2d0ca820dd9212bc), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11763.85", 0x100004, 0x20000, CRC(1ee23407) SHA1(776c868e0e4e601fd6d0a83561b064b4be0560e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11764.113", 0x100005, 0x20000, CRC(e859305e) SHA1(aafcc3209a4fb6e0e8169ae6cce386b370b824f7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11779.81", 0x100006, 0x20000, CRC(a49cd793) SHA1(efe77949be39a2ff88b50bfb2b4664b9267d9a09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11780.109", 0x100007, 0x20000, CRC(d514ed81) SHA1(fbac3ad085363972a79e77aebb7fdae2200e7cda), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11765.65", 0x200000, 0x20000, CRC(649e2dff) SHA1(a6c61b71d08b31a0ca175ab0404e2eaf1d09ccc2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11766.73", 0x200001, 0x20000, CRC(d92fb7fc) SHA1(2f5c2d88ae0766351b9efe8ffcbebc88fc3a6c59), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11781.61", 0x200002, 0x20000, CRC(9692d4cd) SHA1(967351ba2c781ca865e3c1ee9eeef1aad2247c27), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11782.69", 0x200003, 0x20000, CRC(c913bb43) SHA1(9bc15a3180cf4c3134bb55e99e6092f0faf95c56), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11767.84", 0x200004, 0x20000, CRC(1f8ad054) SHA1(289f5795116ee29540f28e35c3b4f72adeca7891), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11768.112", 0x200005, 0x20000, CRC(db2c4053) SHA1(a5b6daa6deb7afb0019e289acb81c82d507ec93a), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11783.80", 0x200006, 0x20000, CRC(6d189007) SHA1(dd871ea3166fdcb59d49707d35dde8b6c7fdc76b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11784.108", 0x200007, 0x20000, CRC(57f5fd64) SHA1(6aff54d3f3f76ce0f1a93485d1a35a3987d456d9), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-11769.64", 0x300000, 0x20000, CRC(28f0ab51) SHA1(d7cb7b83e5d85eb59d34cfd5c0d8e6c7ff81e24c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11770.72", 0x300001, 0x20000, CRC(d7557ea9) SHA1(62430505d399ee2cc0f94e03144860056345573c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11785.60", 0x300002, 0x20000, CRC(e6ef32c4) SHA1(869ba3816f5e3125f613f3b284fec74cd19db79e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11786.68", 0x300003, 0x20000, CRC(2066b49d) SHA1(905ce70c921043d07591422a87fedd6e897ff38e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11771.83", 0x300004, 0x20000, CRC(67635618) SHA1(f690ace026130ecb95532c92f2ad3741d0d167c1), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11772.111", 0x300005, 0x20000, CRC(0f798d3a) SHA1(71565ce28b93ae50d64af8c965fba6408a07f031), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11787.79", 0x300006, 0x20000, CRC(e631dc12) SHA1(3fd6db2eb297890b35dec566b6a90fc2d96bd085), ROM_SKIP(7) ) - ROMX_LOAD( "epr-11788.107", 0x300007, 0x20000, CRC(8464c66e) SHA1(af93cbcc50acbd929d0298fb9a75da0369e13ff7), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-11899.102", 0x000000, 0x10000, CRC(ed9fa889) SHA1(25d1a069254b34c31d8ee82d301ada895e8dc391) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "mpr-11754.107", 0x000000, 0x80000, CRC(ebeb8484) SHA1(269f33cb1a9be126bada858e25291385d48686a2) ) - ROM_LOAD( "epr-11755.105", 0x080000, 0x20000, CRC(12e43f8a) SHA1(0f9a11ba6b7c1a352daa1146a01ce147945e91e4) ) - ROM_RELOAD( 0x0a0000, 0x20000 ) - ROM_RELOAD( 0x0c0000, 0x20000 ) - ROM_RELOAD( 0x0e0000, 0x20000 ) - ROM_LOAD( "epr-11756.106", 0x100000, 0x20000, CRC(c2db1244) SHA1(c98fe17c9f04a639a862cc2a86fab17d1f5d025c) ) - ROM_RELOAD( 0x120000, 0x20000 ) - ROM_RELOAD( 0x140000, 0x20000 ) - ROM_RELOAD( 0x160000, 0x20000 ) - - ROM_REGION( 0x100000, REGION_USER1, 0 ) - /* These are mpr-11754.107 split into 4 roms. They would be located on a Sega 839-0221 daughter card. */ - ROM_LOAD( "epr-11895.ic1", 0x000000, 0x20000, CRC(ee99a6fd) SHA1(4444826e751d9186e6d46b081e47cd99ee3cf853) ) - ROM_LOAD( "epr-11896.ic2", 0x000000, 0x20000, CRC(4bebc015) SHA1(307022ea1c1ee87c9ef3782526888c48c3c69fd2) ) - ROM_LOAD( "epr-11897.ic3", 0x000000, 0x20000, CRC(4463cb95) SHA1(e86fd4611cf83fe72d59950a60fc8c3a7381a1c7) ) - ROM_LOAD( "epr-11898.ic4", 0x000000, 0x20000, CRC(5d19d767) SHA1(d335cd3ef57c75e388df04b04fc3e2881a3902cf) ) -ROM_END - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Rail Chase, Sega Y-board - CPU: 68000 (317-????) -*/ -ROM_START( rchase ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "ic25.bin", 0x000000, 0x20000, CRC(388b2365) SHA1(0f006f9120b96b8d8be968878ce1d6dd853cd977) ) - ROM_LOAD16_BYTE( "ic24.bin", 0x000001, 0x20000, CRC(14dba5d4) SHA1(ad09c55273ab1105630f2f76019aedc234fb9292) ) - ROM_LOAD16_BYTE( "ic27.bin", 0x040000, 0x20000, CRC(dc1cd5a4) SHA1(3b2b6afbeb7daa7c0cc75279bc495221c2508e25) ) - ROM_LOAD16_BYTE( "ic26.bin", 0x040001, 0x20000, CRC(969fdb3a) SHA1(2d98f1bab2c20cad3d4c20ee2c4022d04fa9ffce) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "ic81.bin", 0x000000, 0x20000, CRC(c5d525b6) SHA1(1fab7f761be67b67ee346a1af1f1fe12aef87dc5) ) - ROM_LOAD16_BYTE( "ic80.bin", 0x000001, 0x20000, CRC(299e3c7c) SHA1(e4903816ec364e9352abd1180e8a609fed75e1a7) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "ic54.bin", 0x000000, 0x20000, CRC(18eb23c5) SHA1(53e5681c7450a3879ed80c1680168d6295caa887) ) - ROM_LOAD16_BYTE( "ic53.bin", 0x000001, 0x20000, CRC(8f4f824e) SHA1(d470f23ce2dca4e75b7b714175d47338c41bb721) ) - - ROM_REGION16_BE( 0x080000, REGION_GFX2, 0 ) - ROM_LOAD16_BYTE( "vic16.bin", 0x000000, 0x40000, CRC(9a1dd53c) SHA1(cb01f2c64554914ea693879dfcb498181a1e7a9a) ) - ROM_LOAD16_BYTE( "vic14.bin", 0x000001, 0x40000, CRC(1fdf1b87) SHA1(ed46af0f72081d545015b73a8d12240664f29506) ) - - ROM_REGION64_BE( 0xc00000, REGION_GFX1, 0) - ROMX_LOAD( "vic67.bin", 0x000000, 0x80000, CRC(9fa88781) SHA1(a035fd0fe1d37a589adf3a5029c20d237d5cc827), ROM_SKIP(7) ) - ROMX_LOAD( "vic75.bin", 0x000001, 0x80000, CRC(49e824bb) SHA1(c1330719b5718aa664b5788244d8cb7b7103a57c), ROM_SKIP(7) ) - ROMX_LOAD( "vic63.bin", 0x000002, 0x80000, CRC(35b5187e) SHA1(6f0f6471c4135d07a2c852cdc50322b99176712e), ROM_SKIP(7) ) - ROMX_LOAD( "vic71.bin", 0x000003, 0x80000, CRC(9a538b9b) SHA1(cd84a39bd3858fa6c1d8eb4a349d939261cea6b6), ROM_SKIP(7) ) - ROMX_LOAD( "vic86.bin", 0x000004, 0x80000, CRC(e11c6c67) SHA1(839e71690e75e47d11b758f5b525452bcc75b823), ROM_SKIP(7) ) - ROMX_LOAD( "vic114.bin", 0x000005, 0x80000, CRC(16344535) SHA1(a9bd101ae93c24a2e8002ad6a111cf0d0d3b1a64), ROM_SKIP(7) ) - ROMX_LOAD( "vic82.bin", 0x000006, 0x80000, CRC(78e9983b) SHA1(c0f6577b55acda2cc8cdf0884d5c0517f79de4e9), ROM_SKIP(7) ) - ROMX_LOAD( "vic110.bin", 0x000007, 0x80000, CRC(e9daa1a4) SHA1(24ad782e88a586fbb31f7ad86be4cdeb38823102), ROM_SKIP(7) ) - - ROMX_LOAD( "vic66.bin", 0x400000, 0x80000, CRC(b83df159) SHA1(f0cf99e6ddae1d26fd68240a731f3e28e9c6073b), ROM_SKIP(7) ) - ROMX_LOAD( "vic74.bin", 0x400001, 0x80000, CRC(76dbe9ce) SHA1(2f5af8d015cf8fb90a0862bc37235bc20d4dac0d), ROM_SKIP(7) ) - ROMX_LOAD( "vic62.bin", 0x400002, 0x80000, CRC(9e998209) SHA1(c0d39d11d554fd6a43db77ccf96ac04dd634edff), ROM_SKIP(7) ) - ROMX_LOAD( "vic70.bin", 0x400003, 0x80000, CRC(2caddf1a) SHA1(a2e891e65c7cd156a3131a084ff51ae9b1663bc0), ROM_SKIP(7) ) - ROMX_LOAD( "vic85.bin", 0x400004, 0x80000, CRC(b15e19ff) SHA1(947c35301875b4842835f2ba6aca216f087a3fc7), ROM_SKIP(7) ) - ROMX_LOAD( "vic113.bin", 0x400005, 0x80000, CRC(84c7008f) SHA1(b92f3c636c5d91c5b1c6090a48be7bb1be6b927e), ROM_SKIP(7) ) - ROMX_LOAD( "vic81.bin", 0x400006, 0x80000, CRC(c3cf5faa) SHA1(02bca1b248fcb6313cd529ca2aa0f7516177166b), ROM_SKIP(7) ) - ROMX_LOAD( "vic109.bin", 0x400007, 0x80000, CRC(7e91beb2) SHA1(bc1a7ce68d6b825daf93ca437dda803857cee0a2), ROM_SKIP(7) ) - - ROMX_LOAD( "vic65.bin", 0x800000, 0x80000, CRC(31dbb2c3) SHA1(3efeff785d78056e2615dc2267f7bb80a6d4c663), ROM_SKIP(7) ) - ROMX_LOAD( "vic73.bin", 0x800001, 0x80000, CRC(7e68257d) SHA1(600d1066cfa83f5df46e240a473a8f04179e70f8), ROM_SKIP(7) ) - ROMX_LOAD( "vic61.bin", 0x800002, 0x80000, CRC(71031ad0) SHA1(02b6240461d66907199f846310e72d37faa5fb50), ROM_SKIP(7) ) - ROMX_LOAD( "vic69.bin", 0x800003, 0x80000, CRC(27e70a5e) SHA1(fa767f6cc8e46c0e804c37666a8499376c09b025), ROM_SKIP(7) ) - ROMX_LOAD( "vic84.bin", 0x800004, 0x80000, CRC(7540bf85) SHA1(e8f9208aea6ecedb6ae810a362476cdf1d424319), ROM_SKIP(7) ) - ROMX_LOAD( "vic112.bin", 0x800005, 0x80000, CRC(7d87b94d) SHA1(4ef5b7b114c25b9e274e3f3dd7e3d7bd29d2d8b9), ROM_SKIP(7) ) - ROMX_LOAD( "vic80.bin", 0x800006, 0x80000, CRC(87725d74) SHA1(d284512ad15362a886072aaa1a3af98f7a0bddf9), ROM_SKIP(7) ) - ROMX_LOAD( "vic108.bin", 0x800007, 0x80000, CRC(73477291) SHA1(1fe9d7666d89ee55a0178dceb7cfea7ce94b9e18), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "ic102.bin", 0x000000, 0x10000, CRC(7cc3b543) SHA1(c5e6a2dca891d0b6528e6d66ccd18b24ed4a9464) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "ic107.bin", 0x000000, 0x80000, CRC(345f5a41) SHA1(d414c3485ba31863c2b36282756709e06a41d262) ) - ROM_LOAD( "ic106.bin", 0x080000, 0x80000, CRC(f604c270) SHA1(02023786fec2f2702c2f19f51aff5b7e4928ae91) ) - ROM_LOAD( "ic105.bin", 0x100000, 0x80000, CRC(76095538) SHA1(aab830e3675116c475fe69e0e991118c045b131b) ) -ROM_END - - - -/************************************************************************************************************************** - ************************************************************************************************************************** - ************************************************************************************************************************** - Strike Fighter, Sega Y-board - CPU: 68000 (317-????) -*/ -ROM_START( strkfgtr ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) // M - ROM_LOAD16_BYTE( "epr-13824.25", 0x000000, 0x20000, CRC(2cf2610c) SHA1(451511842ef61a0404094ecab4f9dc548790d06f) ) - ROM_LOAD16_BYTE( "epr-13823.24", 0x000001, 0x20000, CRC(2c98242f) SHA1(1b1dab94b3a4842c7fc2f1d1869771341b5f840a) ) - ROM_LOAD16_BYTE( "epr-13826.27", 0x040000, 0x20000, CRC(3d34ea55) SHA1(7c492e479f6ca41af70616639b7391d111003efe) ) - ROM_LOAD16_BYTE( "epr-13825.26", 0x040001, 0x20000, CRC(fe218d83) SHA1(8e33c966a8148df3c3dab76ae3ea187b5ada2155) ) - - ROM_REGION( 0x040000, REGION_CPU2, 0 ) // X - ROM_LOAD16_BYTE( "epr-13830.81", 0x000000, 0x20000, CRC(f9adc9d1) SHA1(63f24ac5345ce1cc4e67193eb01737c60f747d9f) ) - ROM_LOAD16_BYTE( "epr-13829.80", 0x000001, 0x20000, CRC(c5cd85dd) SHA1(34c3033dca7fe8c77dbf23ad01684967b26f0284) ) - - ROM_REGION( 0x040000, REGION_CPU3, 0 ) // Y - ROM_LOAD16_BYTE( "epr-13828.54", 0x000000, 0x20000, CRC(2470cf5f) SHA1(eb1a732228fe7ad9cf0747d2b53e391c5a733667) ) - ROM_LOAD16_BYTE( "epr-13827.53", 0x000001, 0x20000, CRC(a9d0cf7d) SHA1(c40c73c9e9105ed6503b77b65a6423a26057d810) ) - - ROM_REGION16_BE( 0x200000, REGION_GFX2, 0) - ROM_LOAD16_BYTE( "epr-13833.16", 0x000000, 0x80000, CRC(6148e11a) SHA1(5802208cf0415f6af39de162e9f12e7c205915f7) ) - ROM_LOAD16_BYTE( "epr-13832.14", 0x000001, 0x80000, CRC(41679754) SHA1(58d46f33a4318bbc9e2a20eb5550a66ee0b2e62f) ) - ROM_LOAD16_BYTE( "epr-13040.17", 0x100000, 0x80000, CRC(4aeb3a85) SHA1(5521fd2d3956839bdbe7b70a9e60cd9fb72a42f1) ) - ROM_LOAD16_BYTE( "epr-13038.15", 0x100001, 0x80000, CRC(0b2edb6d) SHA1(04944d6e6f020cd6d33641110847706516630227) ) - - ROM_REGION64_BE( 0x1000000, REGION_GFX1, 0 ) - ROMX_LOAD( "epr-13048.67", 0x000000, 0x80000, CRC(fe1eb0dd) SHA1(5e292fc0b83505eb289e026d4be24c9038ef1418), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13056.75", 0x000001, 0x80000, CRC(5904f8e6) SHA1(fbb01dadc796624c360d44b7631e3f1f285abf2e), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13044.63", 0x000002, 0x80000, CRC(4d931f89) SHA1(ff603f4347e4728a2849d9f480893ad0af7abc5c), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13052.71", 0x000003, 0x80000, CRC(0291f040) SHA1(610dee2a31445f4a054111b7005278560a9c0702), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13064.86", 0x000004, 0x80000, CRC(5f8e651b) SHA1(f1a957e68dea40c23f6a5a208358ec6d6515fe60), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13072.114", 0x000005, 0x80000, CRC(6b85641a) SHA1(143a4684d5f303cd30880a2d5728dccbdd168da4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13060.82", 0x000006, 0x80000, CRC(ee16ad97) SHA1(6af38cfaf694f686f8e4223fb0b13cd350a8b9e5), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13068.110", 0x000007, 0x80000, CRC(64d52bbb) SHA1(b6eab546edb2443e5da6c94ec811ec5084212e60), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13047.66", 0x400000, 0x80000, CRC(53340832) SHA1(8ece8a71ea8ed80458121622307a137fb13931f6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13055.74", 0x400001, 0x80000, CRC(39b6b665) SHA1(d915db1d9bfe0c6ad3f7b447ce0cfdb42ec66ffe), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13043.62", 0x400002, 0x80000, CRC(208f16fd) SHA1(ce96708ea9886af4aba8730cbb98c0ca72b96f57), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13051.70", 0x400003, 0x80000, CRC(ad62cbd4) SHA1(09c008ce5cb97575a4312d2f22566bda72ecc4e2), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13063.85", 0x400004, 0x80000, CRC(c580bf6d) SHA1(cb72970377ad2acce499059aa8155711b8da8a11), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13071.113", 0x400005, 0x80000, CRC(df99ef99) SHA1(12648844c6e78dbd573b7bf0c981edb4d3012b58), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13059.81", 0x400006, 0x80000, CRC(4c982558) SHA1(e04902af2740ca098cd6bbf1f57cb25562754a76), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13067.109", 0x400007, 0x80000, CRC(f97f6119) SHA1(6f91fc28a1260ca4f1c695863717b27d1e45dc32), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13046.65", 0x800000, 0x80000, CRC(c75a86e9) SHA1(8a180e1e2dd06eb81e2aa4ef73b83879cf6afc1b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13054.73", 0x800001, 0x80000, CRC(2934549a) SHA1(058b2966141d0db6bb8557d65c77b3458aca9358), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13042.61", 0x800002, 0x80000, CRC(53ed97af) SHA1(22dffa434eb98e5bca1e429b69553a3540dc54a7), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13050.69", 0x800003, 0x80000, CRC(04429068) SHA1(d7d8738809fd959ed428796b2bd1b589b74522c6), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13062.84", 0x800004, 0x80000, CRC(4fdb4ee3) SHA1(d76065b9abe5c3cf692567d3a8746a231748340d), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13070.112", 0x800005, 0x80000, CRC(52ea130e) SHA1(860cb3a1701066e595518c49b696b7b7a3994ada), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13058.80", 0x800006, 0x80000, CRC(19ff1626) SHA1(029e231c3322467b5e2e52eea11df4f645460468), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13066.108", 0x800007, 0x80000, CRC(bc70a250) SHA1(25189854cc01855b6e3589b85490f30dda029f86), ROM_SKIP(7) ) - - ROMX_LOAD( "epr-13045.64", 0xc00000, 0x80000, CRC(54d5bc6d) SHA1(18a301c9e6c4a352f300a438d85c6e6952bf0738), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13053.72", 0xc00001, 0x80000, CRC(9502af13) SHA1(1a8c0fcd10f4c86af69c0107f486ca2eb8863f93), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13041.60", 0xc00002, 0x80000, CRC(d0a7402c) SHA1(8932503c570ec49fdb4706f4015608bd060bafa0), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13049.68", 0xc00003, 0x80000, CRC(5b9c0b6c) SHA1(17f2460b7dc0bd34dca3f90f2b553df4a7149147), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13061.83", 0xc00004, 0x80000, CRC(7b95ec3b) SHA1(284aba4effd9d376a7a8f510a6f675fcb3393d09), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13069.111", 0xc00005, 0x80000, CRC(e1f538f0) SHA1(55dc85faed1d5a7f2d586bac7e524c3fef3c53b4), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13057.79", 0xc00006, 0x80000, CRC(73baefee) SHA1(6e86edc8229dd6112034a7df79f7341a4120dc6b), ROM_SKIP(7) ) - ROMX_LOAD( "epr-13065.107", 0xc00007, 0x80000, CRC(8937a655) SHA1(d38726a8a6fe68a002ac8d17f70ab83c2f814aa2), ROM_SKIP(7) ) - - ROM_REGION( 0x10000, REGION_CPU4, 0 ) /* Z80 sound CPU */ - ROM_LOAD( "epr-13831.102", 0x000000, 0x10000, CRC(dabbcea1) SHA1(79dab7d4a0f80a6acc05672a422ace9c487e26ae) ) - - ROM_REGION( 0x200000, REGION_SOUND1, ROMREGION_ERASEFF ) /* SegaPCM samples */ - ROM_LOAD( "mpr-13036.107", 0x000000, 0x80000, CRC(7890c26c) SHA1(97e0678bb571de5cf732804f8909e5cbd24980f1) ) - ROM_LOAD( "mpr-13035.106", 0x080000, 0x80000, CRC(009fa13e) SHA1(c7b224b471696b12332fc7c403c127b19c297df7) ) - ROM_LOAD( "mpr-13034.105", 0x100000, 0x80000, CRC(cd22d95d) SHA1(857aa320df0b3fb44fc8a5526ba5ee82cc74fe63) ) -ROM_END - - - -/************************************* - * - * Generic driver initialization - * - *************************************/ - -static DRIVER_INIT( generic_yboard ) -{ - yboard_generic_init(); -} - - - -/************************************* - * - * Game driver(s) - * - *************************************/ - -GAME( 1988, gforce2, 0, yboard, gforce2, generic_yboard, ROT0, "Sega", "Galaxy Force 2" , GAME_SUPPORTS_SAVE ) -GAME( 1988, gforce2j, gforce2, yboard, gforce2, generic_yboard, ROT0, "Sega", "Galaxy Force 2 (Japan)" , GAME_SUPPORTS_SAVE ) -GAME( 1990, gloc, 0, yboard, gloc, generic_yboard, ROT0, "Sega", "G-LOC Air Battle (US)" , GAME_SUPPORTS_SAVE ) -GAME( 1990, glocr360, gloc, yboard, glocr360, generic_yboard, ROT0, "Sega", "G-LOC R360", GAME_SUPPORTS_SAVE ) -GAME( 1988, pdrift, 0, yboard, pdrift, generic_yboard, ROT0, "Sega", "Power Drift (World, Rev A)", GAME_SUPPORTS_SAVE ) -GAME( 1988, pdrifta, pdrift, yboard, pdrift, generic_yboard, ROT0, "Sega", "Power Drift (World)", GAME_SUPPORTS_SAVE ) -GAME( 1988, pdrifte, pdrift, yboard, pdrifte, generic_yboard, ROT0, "Sega", "Power Drift (World, Earlier)", GAME_SUPPORTS_SAVE ) -GAME( 1988, pdriftj, pdrift, yboard, pdriftj, generic_yboard, ROT0, "Sega", "Power Drift (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1991, rchase, 0, yboard, rchase, generic_yboard, ROT0, "Sega", "Rail Chase (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1991, strkfgtr, 0, yboard, strkfgtr, generic_yboard, ROT0, "Sega", "Strike Fighter (Japan)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/seibuspi.c b/src/drivers/seibuspi.c deleted file mode 100644 index 9865fa891..000000000 --- a/src/drivers/seibuspi.c +++ /dev/null @@ -1,2873 +0,0 @@ -/* - Seibu SPI Hardware - Seibu SYS386 - - Driver by Ville Linde - - - Games on this hardware: - - Raiden Fighters - Raiden Fighters 2 - Raiden Fighters Jet - Senkyu / Battle Balls - E-Jan High School - Viper Phase 1 - - Hardware: - - Intel 386 DX 25MHz - Z80 8MHz (sound) - YMF271F Sound chip - Seibu Custom GFX chip - - SYS386 seems like a lower-cost version of single-board SPI. - It has a 40MHz AMD 386 and a considerably weaker sound system (dual MSM6295). - - -TODO: -- Alpha blending. Screen shot on www.system16.com show that during attract mode - in Viper Phase 1 the "Viper" part of the logo (the red part) should be partially - transparent. Same thing with the blu "Viper" logo when on the "push 1 or 2 - players button" screen. Note that the red logo is tiles, the blue logo is sprites. - Same thing with the lights on the ground at the beginning of the game. They are - opaque now, you should see the background tiles through. - -*/ - -/* -Information from Guru - -Seibu Kaihatsu SPI Hardware Overview -1995-1998 Seibu Kaihatsu Inc. - -This system (known as 'SPI') consists of a main board and a plug-in -cartridge containing the game software. The games on SPI hardware can -be swapped by changing the top cartridge and then moving jumper JP072 -to the alternative position. This re-flashes some ROMs for a few minutes -(accompanied by a techno music track). Afterwards, a message tells you to -put the jumper back to the original position and reboot the PCB. The new -game then plays. - -There were a few revisions of this hardware, though most are the same with only -minor changes such as different IC revisions etc. - -Games on this system include..... -Raiden Fighters -Raiden Fighters 2 -Raiden Fighters Jet -Senkyu / Battle Balls -E-Jan High School -Viper Phase 1 - - -Main Board Layout ------------------ -Revision 1 -(C)1995 SXX2C-MAIN V2.0 - -Revision 2 -(C)1998 SXX2C-MAIN V2.1 -|-----------------------------------------------------------------------------| -| CN121 E28F008SA XC7336(1) Z80 | -| E28F008SA | -| JP072 | -| VOL_L VOL_R | -| 4560 |--------| LH5496D-50 | -| 4560 4560 |YMF271-F| XC7336(2) | -| | |16.9344MHz LH5496D-50 | -| YAC513-F | | | -| |--------| | -| JP121 PAL3 TC551001 | -| | -|--| |-------------------------| TC551001 | - | |-------------------------| | -|--| |------| | -| |SIE150| 61256 | -| | | | -| |------| 61256 |---------| TC551664BJ-15 | -| |SEI400 | | -| |SB07-3460| * | -|J | | | -|A | | | -|M |---------| TC551664BJ-15 | -|M JP071 | -|A PAL1 61256 | -| * | -| PAL2 61256 | -| | -| 28.63636MHz |-------------------------| | -| |-------------------------| | -|--| | - | BATT_3V |---------| |-------| PAL4 | -|--| |SEI600 | |AM386DX| 50MHz | -| |SB08-1513| | | | -| 32.768kHz | | |-------| | -| DS2404S | | | -| |---------| | -| | -|-----------------------------------------------------------------------------| -Notes: - AM386DX - Advanced Micro Devices AM386DX/DXL-25 (QFP132), running at 25.000MHz [50/2] - - Replaced with Intel NG80386DX25 on Revision 1 PCB - Z80 - Zilog Z84C0008PEC (DIP40), running at 7.15909MHz (28.63636/4) - YMF271-F - Yamaha YMF271-F running at 16.9344MHz - E28F008SA - Intel E28F008SA 8MBit FlashROM (TSOP40) - - Replaced with Sharp LH28F008 on Revision 1 PCB - XC7336(1) - Xilinx XC7336 CPLD (PLCC44, stamped 'MCTL02') - XC7336(2) - Xilinx XC7336 CPLD (PLCC44, stamped 'MCTL03') - TC551001 - Toshiba TC551001 128K x8 SRAM (SOP32) - - Replaced with Toshiba TC518128 on Revision 1 PCB - 61256 - 32K x8 SRAM (DIP28) - - Replaced with Sony CXK5863BP-30 on Revision 1 PCB - TC551664 - Toshiba TC551664BJ-15 64K x16 SRAM (SOJ44) - LH5496D-50- Sharp LH5496D-50 Asynchronous FIFO (DIP28) - DS2404S - Dallas DS2404S EconoRAM Time Chip (SOIC16) - PAL1 - ICT PEEL18CV8 (DIP20, stamped 'SXX005-5') - PAL2 - ICT PEEL18CV8 (DIP20, stamped 'SXX011B') - PAL3 - Lattice GAL16V8D (DIP20) - - Stamped 'MCTL01' on Revision 1 PCB - - no Seibu markings on Revision 2 PCB - PAL4 - Advanced Micro Devices PALCE20V8H (no Seibu markings, DIP24) - - Replaced with ICT PEEL18CV8 (DIP20, stamped 'SXX010B') on Revision 1 PCB - 3V_BATT - 3 Volt coin battery CR2032 for use with DS2404S - JRC4560 - Japan Radio Co. JRC4560 Op Amp IC (DIP8) - - All 3 IC's replaced with a custom ceramic SIL module stamped 'HB-46A1' on Revision 1 PCB - YAC513-M - Yamaha YAC513-M DAC (SOIC16) - JP072 - Jumper used when swapping game board cartridges - JP071 - Slide Switch to flip screen - JP121 - Jumper to set sound output to mono or stereo - CN121 - Output connector for left/right speakers - * - Unpopulated position for Toshiba TC551664BJ-15 64K x16 SRAM - -ROM Board Layouts ------------------ - -SXX2C ROM SUB -------------------------------------- -| * * | -|+BG2-P.U049 5.U048 BG-1D.U0415 | -| | -| * * | -| BG-1P.U0410 6.U0413 +BG2-D.U0416| -| | -| |-------------------------| | -| |-------------------------| | -| | -| 5816 | -| |------------| | -| | | * | -| | |OBJ-3.U0323 | -| 5816 | SEI252 | | -| | SB05-106 | | -| | | | -| | | | -| 5816 |------------| | -| | -| * * | -| OBJ-2.U0324 OBJ-1.U0322 | -| | -| | -| |-------------------------| | -| |-------------------------| | -| | -| | -| 3.U0210 2.U0212 1.U0211 | -| | -| * | -| 4.U029 PCM-1.U0215 7.U0216 | -| | -------------------------------------- -Notes: -* : These ROMs are surface mounted -+ : These ROMs not populated on some games -5816 : SONY CXD5816SP-12L SRAM (x3) -SEI252: SEIBU custom stamped 'SEI252 SB05-106' (QFP208) - -This board is used by... - -Battle Balls/SenKyu (All Mask ROMs stamped 'F-BALLS') - Filename ROM Type - ---------------------------------- - OBJ-1.322 23C3210 (SOP44 MaskROM) - OBJ-2.324 23C3210 (SOP44 MaskROM) - OBJ-3.323 23C3210 (SOP44 MaskROM) - BG-1D.415 23C1610 (SOP44 MaskROM) - BG-1P.410 538100 (SOP32 MaskROM) - PCM-1.215 538100 (SOP32 MaskROM) - 1.211 27C2001 (DIP32 EPROM) - 2.212 27C020 (DIP32 EPROM) - 3.210 27C020 (DIP32 EPROM) - 4.029 27C2001 (DIP32 EPROM) - 5.048 27C512 (DIP28 EPROM) - 6.413 27C1024 (DIP40 EPROM) - 7.216 27C040 (DIP32 EPROM) - -E-Jan High School (All Mask ROMs stamped ' ') //todo - Filename ROM Type - ------------------------------------ - OBJ-1.U0322 23C3210 (SOP44 MaskROM) - OBJ-2.U0324 23C3210 (SOP44 MaskROM) - OBJ-3.U0323 23C3210 (SOP44 MaskROM) - BG-1D.U0415 23C1610 (SOP44 MaskROM) - BG-2D.U0416 538000 (SOP32 MaskROM) - BG-1P.U0410 538000 (SOP32 MaskROM) - BG-2P.U049 534000 (SOP32 MaskROM) - PCM-1.U0215 538000 (SOP32 MaskROM) - 1.U0211 27C2001 (DIP32 EPROM) - 2.U0212 27C020 (DIP32 EPROM) - 3.U0210 27C020 (DIP32 EPROM) - 4.U029 27C2001 (DIP32 EPROM) - 5.U048 27C512 (DIP28 EPROM) - 6.U0413 27C1024 (DIP40 EPROM) - 7.U0216 27C040 (DIP32 EPROM) - -Viper Phase 1 (All Mask ROMs stamped 'VIPER') -(Old and New Versions) Filename ROM Type - ------------------------------------ - OBJ-1.U0322 23C3210 (SOP44 MaskROM) - OBJ-2.U0324 23C3210 (SOP44 MaskROM) - OBJ-3.U0323 23C3210 (SOP44 MaskROM) - BG-11.U0415 23C1610 (SOP44 MaskROM) - BG21.U0416 538000 (SOP32 MaskROM) - BG-12.U0410 538000 (SOP32 MaskROM) - BG22.U049 534000 (SOP32 MaskROM) - PCM.U0215 538000 (SOP32 MaskROM) - 1.U0211 27C040 (DIP32 EPROM) - 2.U0212 27C040 (DIP32 EPROM) - 3.U0210 27C040 (DIP32 EPROM) - 4.U029 27C040 (DIP32 EPROM) - 5.U048 27C512 (DIP28 EPROM) - 6.U0413 27C1024 (DIP40 EPROM) - - -SXX2C ROM SUB2 -------------------------------------- -| * * | -|BG2-P.U049 7.U048 BG1-D.U0415 | -| | -| * 5.U0423 6.U0424 * | -|BG1-P.U0410 BG2-D.U0416 | -| | -| |-------------------------| | -| |-------------------------| | -| | -| 6116 | -| |------------| | -| | | * | -| | |OBJ-3.U0323 | -| 6116 | SEI252 | | -| | SB05-106 | | -| | | | -| | | | -| 6116 |------------| | -| | -| * * | -| OBJ-2.U0324 OBJ-1.U0322 | -| | -| | -| |-------------------------| | -| |-------------------------| | -| | -| | -| 3.U0210 2.U0212 1.U0211 | -| | -| * | -| 4.U029 PCM.U0217 8.U0216 | -| | -------------------------------------- -Notes: -* : These ROMs are surface mounted -6116 : HM6116LK-70 SRAM (x3) -SEI252: SEIBU custom stamped 'SEI252 SB05-106' (QFP208) - -This board is used by... -Raiden Fighters (All Mask ROMs stamped 'GUN DOGS') - Filename ROM Type - ---------------------------------- - OBJ-1.U0322 23C3210 (SOP44 MaskROM) - OBJ-2.U0324 23C3210 (SOP44 MaskROM) - OBJ-3.U0323 23C3210 (SOP44 MaskROM) - BG1-D.U0415 23C1610 (SOP44 MaskROM) - BG2-D.U0416 23C1610 (SOP44 MaskROM) - BG1-P.U0410 538100 (SOP32 MaskROM) - BG2-P.U0049 538100 (SOP32 MaskROM) - PCM.U0217 538100 (SOP32 MaskROM) - 1.U0211 27C040 (DIP32 EPROM) - 2.U0212 27C040 (DIP32 EPROM) - 3.U0210 27C040 (DIP32 EPROM) - 4.U0029 27C040 (DIP32 EPROM) - 5.U0423 27C512 (DIP28 EPROM) - 6.U0424 27C512 (DIP28 EPROM) - 7.U048 27C512 (DIP28 EPROM) - 8.U0216 27C040 (DIP32 EPROM) - - -SXX2C ROM SUB4 (C)1996 -------------------------------------- -| * BG1-P.U0410 *BG2-P.U049 | -|BG1-D.U0415 * *FIX.U0425| -| | -| * 7.U048 | -|BG2-D.U0424 | -| | -| |-------------------------| | -| |-------------------------| | -| | -| 6216 | -| |------------| | -| | | * | -| 6216 | |OBJ-3.U0323 | -| | SEI252 | | -| | SB05-106 | * | -| | |OBJ-2.U0324 | -| | | | -| |------------| * | -| 6216 OBJ-1.U0322 | -| | -| | -| | -| | -| |-------------------------| | -| |-------------------------| | -| | -| * | -| 1.U0211 * PCM2.U0217| -| PRG34.U0219 | -| | -| PRG2.U021 | -| | -------------------------------------- -Notes: -* : These ROMs are surface mounted -6216 : BR6216C-10LL SRAM (x3) -SEI252: SEIBU custom stamped 'SEI252 SB05-106' (QFP208) - -This board is used by... -Raiden Fighters (Asia) - Filename ROM Type - ---------------------------------- - OBJ-1.U0322 23C3210 (SOP44 MaskROM, stamped 'GUN DOGS') - OBJ-2.U0324 23C3210 (SOP44 MaskROM, stamped 'GUN DOGS') - OBJ-3.U0323 23C3210 (SOP44 MaskROM, stamped 'GUN DOGS') - BG1-D.U0415 23C1610 (SOP44 MaskROM, stamped 'GUN DOGS') - BG2-D.U0424 23C1610 (SOP44 MaskROM, stamped 'GUN DOGS') - BG1-P.U0410 538100 (SOP32 MaskROM, stamped 'GUN DOGS') - BG2-P.U0049 538100 (SOP32 MaskROM, stamped 'GUN DOGS') - FIX.U0425 LH531024(SOP40 MaskROM, stamped 'RAIDEN-F') - PCM2.U0217 23C1610 (SOP44 MaskROM, stamped 'RAIDEN-F') - PRG34.U0219 23C1610 (SOP44 MaskROM, stamped 'RAIDEN-F') - PRG2.U0212 534000 (DIP32 MaskROM, stamped 'RAIDEN-F') - 1.U0211 27C040 (DIP32 EPROM) - 7.U048 27C512 (DIP28 EPROM) - - -SXX2C ROM SUB8 (C)1997 -------------------------------------- -| | -| 7.U0514 6.U0518 5.U0524 | -| | -| *BG-2D.U0536 BG-1D.U0535| -|BG-2P.U0538 BG-1P.U0537 * | -| * * | -| |-------------------------| | -| |-------------------------| | -| | -| * PAL1 | -|OBJ-1.U0429 |------------| | -| * | | | -|OBJ-4.U0430 | | N341256 | -| * | RISE10 | | -|OBJ-2.U0431 | | N341256 | -| * | | | -|OBJ-5.U0432 | | | -| * |------------| | -|OBJ-3.U0434 PAL2 | -| * | -|OBJ-6.U0433 | -| | -|PAL3 | -| |-------------------------| | -| |-------------------------| | -| | -| * | -| PCM.U0217| -|1.U0211 3.U0221 8.U0222 | -| | -| 2.U0212 4.U0220 | -| | -------------------------------------- -Notes: -* : These ROMs are surface mounted -N341256: NKK N341256SJ-15 32K x8 SRAM (x2) -RISE10 : SEIBU custom stamped 'RISE10' (QFP240) -PAL1 : PALCE 16V8 stamped 'RM83' -PAL2 : PALCE 16V8 stamped 'RM81' -PAL3 : PALCE 16V8 stamped 'RM82' - -This board is used by... - -Raiden Fighters 2 (All Mask ROMs stamped 'RAIDEN-F2') - Filename ROM Type - -------------------------------------- - BG-1D.U0535 MX23C3210 (SOP44 MaskROM) - BG-2D.U0536 MX23C3210 (SOP44 MaskROM) - BG-1P.U0537 MX23C1610 (SOP44 MaskROM) - BG-2P.U0538 MX23C1610 (SOP44 MaskROM) - OBJ-1.U0429 MX23C3210 (TSOP48 MaskROM) - OBJ-2.U0431 MX23C3210 (TSOP48 MaskROM) - OBJ-3.U0434 MX23C3210 (TSOP48 MaskROM) - OBJ-4.U0430 MX23C1610 (TSOP48 MaskROM) - OBJ-5.U0432 MX23C1610 (TSOP48 MaskROM) - OBJ-6.U0433 MX23C1610 (TSOP48 MaskROM) - PCM.U0227 MX23C1610 (SOP44 MaskROM) - 1.U0211 27C040 (DIP32 EPROM) - 2.U0212 27C040 (DIP32 EPROM) - 3.U0221 27C040 (DIP32 EPROM) - 4.U0220 27C040 (DIP32 EPROM) - 5.U0524 27C512 (DIP28 EPROM) - 6.U0518 27C512 (DIP28 EPROM) - 7.U0514 27C512 (DIP28 EPROM) - 8.U0222 27C040 (DIP32 EPROM) - - -SXX2C ROM SUB10 (C)1998 -------------------------------------- -| | -|FIXP.U0514 FIX1.U0518 FIX0.U0524 | -| | -| *BG-2D.U0545 BG-1D.U0543| -|BG-2P.U0546 BG-1P.U0544 * | -| * * | -| |-------------------------| | -| |-------------------------| | -| | -| * | -|OBJ-1.U0442 |------------| | -| | | | -| | | 61256 | -| * | RISE11 | | -|OBJ-2.U0443 | | 61256 | -| | | | -| | | | -| * |------------| | -|OBJ-3.U0444 | -| PAL1 | -| PAL2 | -| | -| | -| |-------------------------| | -| |-------------------------| | -| | -| * | -|PRG2.U0221 PRG0.U0211 PCM-D.U0227| -| | -| | -|PRG3.U0220 PRG1.U0212 SOUND1.U0222| -| | -------------------------------------- -Notes: -* : These ROMs are surface mounted -61256 : 32K x8 SRAM (x2) -RISE11: SEIBU custom stamped 'RISE11' (QFP240) -PAL1 : PALCE 16V8 stamped 'SPI ROM 10-2' -PAL2 : PALCE 16V8 stamped 'SPI ROM 10-1' - -This board is used by... - -Raiden Fighters Jet (All Mask ROMs stamped 'RAIDEN-FJET') - Filename ROM Type - -------------------------------------- - FIXP.U0514 27C512 (DIP28 EPROM) - FIX1.U0518 27C512 (DIP28 EPROM) - FIX0.U0524 27C512 (DIP28 EPROM) - BG-2D.U0545 MX23C1610 (SOP44 MaskROM) - BG-1D.U0543 MX23C3210 (SOP44 MaskROM) - BG-1P.U0544 MX23C1610 (SOP44 MaskROM) - BG-2P.U0546 MX23C8000 (SOP32 MaskROM) - OBJ-1.U0442 MX23C6410 (SOP44 MaskROM) - OBJ-2.U0443 MX23C6410 (SOP44 MaskROM) - OBJ-3.U0444 MX23C6410 (SOP44 MaskROM) - PRG0.U0211 MX27C4000 (DIP32 EPROM) - PRG1.U0212 MX27C4000 (DIP32 EPROM) - PRG2.U0221 MX27C4000 (DIP32 EPROM) - PRG3.U0220 MX27C4000 (DIP32 EPROM) - PCM-D.U0227 MX23C1610 (SOP44 MaskROM) - SOUND1.U0222 MX27C4000 (DIP32 EPROM) - - -SXX2G (C)1998 -|-----------------------------------------------------------------------------| -| |--------| PCM-D rfj-4 | -| |YMF271-F| rfj-05 obj-3 obj-2 obj-1 | -| | |16.3840MHz | -| VOL | | | -| YAC516-M |--------| | -| Z84C0004PCS D43256BGU-70L | -|--| CY7C421-65PC | - | | -|--| |------| 4.9152MHz | -| |SIE150| 61256 |---------| | -| | | |RISE11 | | -| |------| 61256 |9823 GAX1| | -| |---------| D43256BGU-70L | | | -| 61256 |SEI400 | D43256BGU-70L | | | -|J ST93C46 |SB07-3460| |---------| | -|A 61256 | | | -|M | | 28.63636MHz | -|M JP031 |---------| | -|A TC551664BJ-20 rfj-06 | -| TC551664BJ-20 | -|--| rfj-07 | - | |---------| |-------| | -|--| |SEI600 | |AM386DX| rfj-08 | -| |SB08-1513| | 40 | | -| rfj-01 bg-1p bg-1d | | |-------| rfj-09 | -| rfj-02 | | | -| rfj-03 bg-2p bg-2d |---------| 28.63636MHz | -| SW1 | -|-----------------------------------------------------------------------------| - - AM386DX - Advanced Micro Devices AM386DX/DX-40 (QFP132) - Z80 - Zilog Z84C0004PCS (DIP40) - YMF271-F - Yamaha YMF271-F running at 16.3840MHz - TC551664 - Toshiba TC551664BJ-15 64K x16 SRAM (SOJ44) - YAC516-M - Yamaha YAC516-M DAC (SOIC16) - JP031 - Slide Switch to flip screen - ST93C46 - EEPROM - -RFJ-01 - FIX0 27C512 -RFJ-02 - FIX1 27C512 -RFJ-03 - FIXP 27C512 - -RFJ-04 - SOUND1 27C040 -RFJ-05 - ZPRG 27C020 - - -RFJ-06 - PRG0 27C040 -RFJ-07 - PRG1 27C040 -RFJ-08 - PRG2 27C040 -RFJ-09 - PRG3 27C040 - -*/ - -#include "driver.h" -#include "machine/ds2404.h" -#include "machine/eeprom.h" -#include "machine/intelfsh.h" -#include "sound/okim6295.h" -#include "sound/ymf271.h" - -void seibuspi_text_decrypt(UINT8 *rom); -void seibuspi_bg_decrypt(UINT8 *rom, int size); -void seibuspi_sprite_decrypt(UINT8 *src, int romsize); - -void seibuspi_rise10_text_decrypt(UINT8 *rom); -void seibuspi_rise10_bg_decrypt(UINT8 *rom, int size); -void seibuspi_rise10_sprite_decrypt(UINT8 *rom, int romsize); - -void seibuspi_rise11_text_decrypt(UINT8 *rom); -void seibuspi_rise11_bg_decrypt(UINT8 *rom, int size); -void seibuspi_rise11_sprite_decrypt(UINT8 *rom, int romsize); - -VIDEO_START( spi ); -VIDEO_UPDATE( spi ); -WRITE32_HANDLER( spi_textlayer_w ); -WRITE32_HANDLER( spi_back_layer_w ); -WRITE32_HANDLER( spi_mid_layer_w ); -WRITE32_HANDLER( spi_fore_layer_w ); -WRITE32_HANDLER( spi_paletteram32_xBBBBBGGGGGRRRRR_w ); -READ32_HANDLER( spi_layer_bank_r ); -WRITE32_HANDLER( spi_layer_bank_w ); -void rf2_set_layer_banks(int banks); -READ32_HANDLER( spi_layer_enable_r ); -WRITE32_HANDLER( spi_layer_enable_w ); - -WRITE32_HANDLER( tilemap_dma_start_w ); -WRITE32_HANDLER( palette_dma_start_w ); -WRITE32_HANDLER( video_dma_length_w ); -WRITE32_HANDLER( video_dma_address_w ); -WRITE32_HANDLER( sprite_dma_start_w ); - -extern UINT32 *spi_scrollram; -UINT32 *spimainram; - -static UINT8 *z80_rom; - -/********************************************************************/ -static int z80_prg_fifo_pos = 0; -static int z80_lastbank; - -#define FIFO_SIZE 512 -static int fifoin_rpos, fifoin_wpos; -static UINT8 fifoin_data[FIFO_SIZE]; -static int fifoin_read_request = 0; - -static int fifoout_rpos, fifoout_wpos; -static UINT8 fifoout_data[FIFO_SIZE]; -static int fifoout_read_request = 0; - -static UINT8 z80_fifoout_pop(void) -{ - UINT8 r; - if (fifoout_wpos == fifoout_rpos) - { - logerror("Sound FIFOOUT underflow at %08X\n", activecpu_get_pc()); - } - r = fifoout_data[fifoout_rpos++]; - if(fifoout_rpos == FIFO_SIZE) - { - fifoout_rpos = 0; - } - - if (fifoout_wpos == fifoout_rpos) - { - fifoout_read_request = 0; - } - - return r; -} - -static void z80_fifoout_push(UINT8 data) -{ - fifoout_data[fifoout_wpos++] = data; - if (fifoout_wpos == FIFO_SIZE) - { - fifoout_wpos = 0; - } - if(fifoout_wpos == fifoout_rpos) - { - fatalerror("Sound FIFOOUT overflow at %08X", activecpu_get_pc()); - } - - fifoout_read_request = 1; -} - -static UINT8 z80_fifoin_pop(void) -{ - UINT8 r; - if (fifoin_wpos == fifoin_rpos) - { - fatalerror("Sound FIFOIN underflow at %08X", activecpu_get_pc()); - } - r = fifoin_data[fifoin_rpos++]; - if(fifoin_rpos == FIFO_SIZE) - { - fifoin_rpos = 0; - } - - if (fifoin_wpos == fifoin_rpos) - { - fifoin_read_request = 0; - } - - return r; -} - -static void z80_fifoin_push(UINT8 data) -{ - fifoin_data[fifoin_wpos++] = data; - if(fifoin_wpos == FIFO_SIZE) - { - fifoin_wpos = 0; - } - if(fifoin_wpos == fifoin_rpos) - { - fatalerror("Sound FIFOIN overflow at %08X", activecpu_get_pc()); - } - - fifoin_read_request = 1; -} - - - -static READ32_HANDLER( sound_fifo_r ) -{ - UINT8 r = z80_fifoout_pop(); - - return r; -} - -static WRITE32_HANDLER( sound_fifo_w ) -{ - if( (mem_mask & 0xff) == 0 ) { - z80_fifoin_push(data & 0xff); - } -} - -static READ32_HANDLER( sound_fifo_status_r ) -{ - UINT32 r = 0; - if (fifoout_read_request) - { - r |= 2; - } - return r | 1; -} - - - -static READ32_HANDLER( spi_unknown_r ) -{ - return 0xffffffff; -} - -static WRITE32_HANDLER( ds2404_reset_w ) -{ - if( ACCESSING_LSB32 ) { - DS2404_1W_reset_w(offset, data); - } -} - -static READ32_HANDLER( ds2404_data_r ) -{ - if( ACCESSING_LSB32 ) { - return DS2404_data_r(offset); - } - return 0; -} - -static WRITE32_HANDLER( ds2404_data_w ) -{ - if( ACCESSING_LSB32 ) { - DS2404_data_w(offset, data); - } -} - -static WRITE32_HANDLER( ds2404_clk_w ) -{ - if( ACCESSING_LSB32 ) { - DS2404_clk_w(offset, data); - } -} - -static WRITE32_HANDLER( eeprom_w ) -{ - // tile banks - if( !(mem_mask & 0x00ff0000) ) { - rf2_set_layer_banks(data >> 16); - EEPROM_write_bit((data & 0x800000) ? 1 : 0); - EEPROM_set_clock_line((data & 0x400000) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x200000) ? CLEAR_LINE : ASSERT_LINE); - } - - // oki banking - if (sndti_to_sndnum(SOUND_OKIM6295, 1) >= 0) - OKIM6295_set_bank_base(1, (data & 0x4000000) ? 0x40000 : 0); -} - -static WRITE32_HANDLER( z80_prg_fifo_w ) -{ - if( ACCESSING_LSB32 ) { - if (z80_prg_fifo_pos<0x40000) z80_rom[z80_prg_fifo_pos] = data & 0xff; - z80_prg_fifo_pos++; - } -} - -static WRITE32_HANDLER( z80_enable_w ) -{ - // tile banks - if( !(mem_mask & 0x00ff0000) ) { - rf2_set_layer_banks(data >> 16); - } - -logerror("z80 data = %08x mask = %08x\n",data,mem_mask); - if( !(mem_mask & 0x000000ff) ) { - if( data & 0x1 ) { - z80_prg_fifo_pos = 0; - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE ); - } else { - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE ); - } - } -} - -static READ32_HANDLER( spi_controls1_r ) -{ - if( ACCESSING_LSB32 ) { - return (readinputport(1) << 8) | readinputport(0) | 0xffff0000; - } - return 0xffffffff; -} - -static READ32_HANDLER( spi_controls2_r ) -{ - if( ACCESSING_LSB32 ) { - return ((readinputport(2) | 0xffffff00) & ~0x40) | (EEPROM_read_bit() << 6); - } - return 0xffffffff; -} - -static READ32_HANDLER( spi_6295_0_r ) -{ - return OKIM6295_status_0_r(0); -} - -static READ32_HANDLER( spi_6295_1_r ) -{ - return OKIM6295_status_1_r(0); -} - -static WRITE32_HANDLER( spi_6295_0_w ) -{ - if( ACCESSING_LSB32 ) { - OKIM6295_data_0_w(0, data & 0xff); - } -} - -static WRITE32_HANDLER( spi_6295_1_w ) -{ - if( ACCESSING_LSB32 ) { - OKIM6295_data_1_w(0, data & 0xff); - } -} - -/********************************************************************/ - -static READ8_HANDLER( z80_soundfifo_r ) -{ - UINT8 r = z80_fifoin_pop(); - - return r; -} - -static WRITE8_HANDLER( z80_soundfifo_w ) -{ - z80_fifoout_push(data); -} - -static READ8_HANDLER( z80_soundfifo_status_r ) -{ - UINT8 r = 0; - if (fifoin_read_request) - { - r |= 2; - } - return r | 1; -} - -static WRITE8_HANDLER( z80_bank_w ) -{ - if ((data & 7) != z80_lastbank) - { - z80_lastbank = (data & 7); - memory_set_bankptr(4, z80_rom + (0x8000 * z80_lastbank)); - } -} - -static READ8_HANDLER( z80_jp1_r ) -{ - return readinputport(3); -} - -static READ8_HANDLER( z80_coin_r ) -{ - return readinputport(4); -} - -static READ32_HANDLER( soundrom_r ) -{ - UINT8 *sound = (UINT8*)memory_region(REGION_USER2); - UINT16 *sound16 = (UINT16*)memory_region(REGION_USER2); - - if (mem_mask == 0xffffff00) - { - return sound[offset]; - } - else if (mem_mask == 0x00000000) - { - if (offset < 0x100000) - { - return sound16[offset]; - } - else if (offset < 0x200000) - { - return sound16[0x80000 + (offset & 0x7ffff)]; - } - else - { - return sound[offset]; - } - } - - - fatalerror("soundrom_r: %08X, %08X", offset, mem_mask); -} - -/********************************************************************/ - -static ADDRESS_MAP_START( spi_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x00000417) AM_RAM - AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) - AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP - AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) - AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_BASE(&spi_scrollram) - AM_RANGE(0x00000480, 0x00000483) AM_WRITE(tilemap_dma_start_w) - AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) - AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) - AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) - AM_RANGE(0x0000050c, 0x0000050f) AM_WRITE(sprite_dma_start_w) - AM_RANGE(0x00000600, 0x00000603) AM_READ(spi_unknown_r) /* Unknown */ - AM_RANGE(0x00000600, 0x00000603) AM_WRITENOP /* Unknown */ - AM_RANGE(0x00000604, 0x00000607) AM_READ(spi_controls1_r) /* Player controls */ - AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_unknown_r) /* Unknown */ - AM_RANGE(0x0000060c, 0x0000060f) AM_READ(spi_controls2_r) /* Player controls (start) */ - AM_RANGE(0x00000680, 0x00000683) AM_WRITE(sound_fifo_w) - AM_RANGE(0x00000684, 0x00000687) AM_READ(sound_fifo_status_r) - AM_RANGE(0x00000684, 0x00000687) AM_WRITENOP /* Unknown */ - AM_RANGE(0x000006d0, 0x000006d3) AM_WRITE(ds2404_reset_w) - AM_RANGE(0x000006d4, 0x000006d7) AM_WRITE(ds2404_data_w) - AM_RANGE(0x000006d8, 0x000006db) AM_WRITE(ds2404_clk_w) - AM_RANGE(0x000006dc, 0x000006df) AM_READ(ds2404_data_r) - AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_BASE(&spimainram) - AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE(2) - AM_RANGE(0x00a00000, 0x013fffff) AM_READ(soundrom_r) - AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(2) /* ROM location in real-mode */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spisound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_RAMBANK(5) - AM_RANGE(0x4002, 0x4002) AM_WRITENOP /* ack RST 10 */ - AM_RANGE(0x4003, 0x4003) AM_WRITENOP /* Unknown */ - AM_RANGE(0x4008, 0x4008) AM_READWRITE(z80_soundfifo_r, z80_soundfifo_w) - AM_RANGE(0x4009, 0x4009) AM_READ(z80_soundfifo_status_r) - AM_RANGE(0x400a, 0x400a) AM_READ(z80_jp1_r) - AM_RANGE(0x400b, 0x400b) AM_WRITENOP /* Unknown */ - AM_RANGE(0x4013, 0x4013) AM_READ(z80_coin_r) - AM_RANGE(0x401b, 0x401b) AM_WRITE(z80_bank_w) /* control register: bits 0-2 = bank @ 8000, bit 3 = watchdog? */ - AM_RANGE(0x6000, 0x600f) AM_READWRITE(YMF271_0_r, YMF271_0_w) - AM_RANGE(0x8000, 0xffff) AM_ROMBANK(4) -ADDRESS_MAP_END - -static READ8_HANDLER( flashrom_read ) -{ - logerror("Flash Read: %08X\n", offset); - if( offset < 0x100000 ) - { - return intelflash_read(0, offset); - } - else if( offset < 0x200000 ) - { - return intelflash_read(1, offset - 0x100000 ); - } - return 0; -} - -static WRITE8_HANDLER( flashrom_write ) -{ - logerror("Flash Write: %08X, %02X\n", offset, data); - if( offset < 0x100000 ) - { - intelflash_write(0, offset + 1, data); - } - else if( offset < 0x200000 ) - { - intelflash_write(1, offset - 0x100000 + 1, data); - } -} - -static void irqhandler(int state) -{ - if (state) - { - cpunum_set_input_line_and_vector(1, 0, ASSERT_LINE, 0xd7); // IRQ is RST10 - } - else - { - cpunum_set_input_line(1, 0, CLEAR_LINE); - } -} - -static struct YMF271interface ymf271_interface = -{ - REGION_SOUND1, - flashrom_read, - flashrom_write, - irqhandler -}; - -/********************************************************************/ - -static ADDRESS_MAP_START( seibu386_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x00000417) AM_RAM - AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) - AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP - AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) - AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_BASE(&spi_scrollram) - AM_RANGE(0x00000480, 0x00000483) AM_WRITE(tilemap_dma_start_w) - AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) - AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) - AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) - AM_RANGE(0x0000050c, 0x0000050f) AM_WRITE(sprite_dma_start_w) - AM_RANGE(0x00000604, 0x00000607) AM_READ(spi_controls1_r) /* Player controls */ - AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_unknown_r) - AM_RANGE(0x0000060c, 0x0000060f) AM_READ(spi_controls2_r) /* Player controls (start) */ - AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE(eeprom_w) - AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_BASE(&spimainram) - AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE(2) - AM_RANGE(0x01200000, 0x01200003) AM_READWRITE(spi_6295_0_r, spi_6295_0_w) - AM_RANGE(0x01200004, 0x01200007) AM_READWRITE(spi_6295_1_r, spi_6295_1_w) - AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION(REGION_USER1, 0) AM_SHARE(2) /* ROM location in real-mode */ -ADDRESS_MAP_END - -/********************************************************************/ - -INPUT_PORTS_START( spi_2button ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW) /* Test Button */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("JP1") /* JP1 */ - PORT_DIPNAME( 0x03, 0x03, "JP1" ) - PORT_DIPSETTING( 0x03, "Update" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( spi_3button ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) /* Test Button */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("JP1") - PORT_DIPNAME( 0x03, 0x03, "JP1" ) - PORT_DIPSETTING( 0x03, "Update" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( seibu386_2button ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW) /* Test Button */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("JP1") /* JP1 */ - PORT_DIPNAME( 0x03, 0x03, "JP1" ) - PORT_DIPSETTING( 0x03, "Update" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_BUTTON4 ) -INPUT_PORTS_END - -/* E-Jan Highschool has a keyboard with the following keys - The keys are encoded with 6 bits - A - 000010 port 0 - B - 010000 port 0 - C - 000010 port 1 - D - 010000 port 1 - E - 000011 port 0 - F - 011000 port 0 - G - 000011 port 1 - H - 011000 port 1 - I - 000100 port 0 - J - 100000 port 0 - K - 000100 port 1 - L - 100000 port 1 - M - 000101 port 0 - N - 101000 port 0 - CHI - 000101 port 1 - PON - 101000 port 1 - KAN - 000110 port 0 - REACH - 110000 port 0 - RON - 000110 port 1 - Start - 000111 port 0 -*/ - -INPUT_PORTS_START( spi_ejanhs ) - PORT_START_TAG("IN0") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 A") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 B") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x18, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 F") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 I") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 J") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x05, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 M") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x28, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 N") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Kan") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Reach") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_START1 ) PORT_PLAYER(1) - - PORT_START_TAG("IN1") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 D") PORT_CODE(KEYCODE_D) - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 G") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x18, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 H") PORT_CODE(KEYCODE_H) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 K") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 L") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x05, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Chi") PORT_CODE(KEYCODE_SPACE) - PORT_BIT( 0x28, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Pon") PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Ron") PORT_CODE(KEYCODE_Z) - - PORT_START_TAG("IN2") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) /* Test Button */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) - PORT_BIT( 0xf3, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("JP1") - PORT_DIPNAME( 0x03, 0x03, "JP1" ) - PORT_DIPSETTING( 0x03, "Update" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -/********************************************************************/ - -#define PLANE_CHAR 0 -#define PLANE_TILE 0 -#define PLANE_SPRITE 1 - -static const gfx_layout spi_charlayout = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 5, /* 6 bits per pixel */ - { 4, 8, 12, 16, 20 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -#if PLANE_CHAR -static const gfx_layout spi_charlayout0 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 0 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -static const gfx_layout spi_charlayout1 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 4 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -static const gfx_layout spi_charlayout2 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 8 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -static const gfx_layout spi_charlayout3 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 12 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -static const gfx_layout spi_charlayout4 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 16 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; - -static const gfx_layout spi_charlayout5 = -{ - 8,8, /* 8*8 characters */ - 4096, /* 4096 characters */ - 1, /* 6 bits per pixel */ - { 20 }, - { 3, 2, 1, 0, 27, 26, 25, 24 }, - { 0*48, 1*48, 2*48, 3*48, 4*48, 5*48, 6*48, 7*48 }, - 6*8*8 -}; -#endif - -static const gfx_layout spi_tilelayout = -{ - 16,16, - RGN_FRAC(1,1), - 6, - { 0, 4, 8, 12, 16, 20 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -#if PLANE_TILE -static const gfx_layout spi_tilelayout0 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 0 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -static const gfx_layout spi_tilelayout1 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 4 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -static const gfx_layout spi_tilelayout2 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 8 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -static const gfx_layout spi_tilelayout3 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 12 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -static const gfx_layout spi_tilelayout4 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 16 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; - -static const gfx_layout spi_tilelayout5 = -{ - 16,16, - RGN_FRAC(1,1), - 1, - { 20 }, - { - 3, 2, 1, 0, - 27,26,25,24, - 51,50,49,48, - 75,74,73,72 - }, - { 0*96, 1*96, 2*96, 3*96, 4*96, 5*96, 6*96, 7*96, - 8*96, 9*96, 10*96, 11*96, 12*96, 13*96, 14*96, 15*96 - }, - 6*16*16 -}; -#endif - -static const gfx_layout spi_spritelayout = -{ - 16,16, - RGN_FRAC(1,3), - 6, - { 0,8, RGN_FRAC(1,3)+0,RGN_FRAC(1,3)+8,RGN_FRAC(2,3)+0,RGN_FRAC(2,3)+8 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -#if PLANE_SPRITE -static const gfx_layout spi_spritelayout0 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { 0 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -static const gfx_layout spi_spritelayout1 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { 8 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -static const gfx_layout spi_spritelayout2 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { RGN_FRAC(1,3)+0 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -static const gfx_layout spi_spritelayout3 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { RGN_FRAC(1,3)+8 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -static const gfx_layout spi_spritelayout4 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { RGN_FRAC(2,3)+0 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; - -static const gfx_layout spi_spritelayout5 = -{ - 16,16, - RGN_FRAC(1,3), - 1, - { RGN_FRAC(2,3)+8 }, - { - 7,6,5,4,3,2,1,0,23,22,21,20,19,18,17,16 - }, - { - 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 - }, - 16*32 -}; -#endif - -static const gfx_decode spi_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &spi_charlayout, 5632, 16 }, - { REGION_GFX2, 0, &spi_tilelayout, 4096, 24 }, - { REGION_GFX3, 0, &spi_spritelayout, 0, 96 }, -#if PLANE_CHAR - { REGION_GFX1, 0, &spi_charlayout0, 0x3ff, 1 }, - { REGION_GFX1, 0, &spi_charlayout1, 0x3ff, 1 }, - { REGION_GFX1, 0, &spi_charlayout2, 0x3ff, 1 }, - { REGION_GFX1, 0, &spi_charlayout3, 0x3ff, 1 }, - { REGION_GFX1, 0, &spi_charlayout4, 0x3ff, 1 }, - { REGION_GFX1, 0, &spi_charlayout5, 0x3ff, 1 }, -#endif -#if PLANE_TILE - { REGION_GFX2, 0, &spi_tilelayout0, 0x3ff, 1 }, - { REGION_GFX2, 0, &spi_tilelayout1, 0x3ff, 1 }, - { REGION_GFX2, 0, &spi_tilelayout2, 0x3ff, 1 }, - { REGION_GFX2, 0, &spi_tilelayout3, 0x3ff, 1 }, - { REGION_GFX2, 0, &spi_tilelayout4, 0x3ff, 1 }, - { REGION_GFX2, 0, &spi_tilelayout5, 0x3ff, 1 }, -#endif -#if PLANE_SPRITE - { REGION_GFX3, 0, &spi_spritelayout0, 0x3ff, 1 }, - { REGION_GFX3, 0, &spi_spritelayout1, 0x3ff, 1 }, - { REGION_GFX3, 0, &spi_spritelayout2, 0x3ff, 1 }, - { REGION_GFX3, 0, &spi_spritelayout3, 0x3ff, 1 }, - { REGION_GFX3, 0, &spi_spritelayout4, 0x3ff, 1 }, - { REGION_GFX3, 0, &spi_spritelayout5, 0x3ff, 1 }, -#endif - { -1 } /* end of array */ -}; - -/********************************************************************************/ - -static NVRAM_HANDLER( spi ) -{ - if( read_or_write ) { - DS2404_save(file); - } else { - DS2404_init(1995, 1, 1); - - if(file) { - DS2404_load(file); - } - } - - nvram_handler_intelflash(machine, 0, file, read_or_write); - nvram_handler_intelflash(machine, 1, file, read_or_write); -} - -/* this is a 93C46 but with reset delay */ -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "*110", /* read command */ - "*101", /* write command */ - "*111", /* erase command */ - "*10000xxxx", /* lock command */ - "*10011xxxx", /* unlock command */ - 1, /* enable_multi_read */ - 1 /* reset_delay */ -}; - -static NVRAM_HANDLER( sxx2f ) -{ - if( read_or_write ) { - EEPROM_save(file); - } else { - EEPROM_init(&eeprom_interface); - - if(file) - EEPROM_load(file); - } -} - -static INTERRUPT_GEN( spi_interrupt ) -{ - cpunum_set_input_line( 0, 0, PULSE_LINE ); -} - -static int spi_irq_callback(int irq) -{ - return 0x20; -} - -/* SPI */ - -static MACHINE_RESET( spi ) -{ - int i; - UINT8 *sound = memory_region(REGION_SOUND1); - - UINT8 *rombase = memory_region(REGION_USER1); - UINT8 flash_data = rombase[0x1ffffc]; - - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE ); - cpunum_set_irq_callback(0, spi_irq_callback); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x00000680, 0x00000683, 0, 0, sound_fifo_r); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x00000688, 0x0000068b, 0, 0, z80_prg_fifo_w); - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000068c, 0x0000068f, 0, 0, z80_enable_w); - - z80_rom = auto_malloc(0x40000); - memory_set_bankptr(4, z80_rom); - memory_set_bankptr(5, z80_rom); - - /* If the first value doesn't match, the game shows a checksum error */ - /* If any of the other values are wrong, the game goes to update mode */ - intelflash_write(0, 0, 0xff); - intelflash_write(0, 0, 0x10); - intelflash_write(0, 0, flash_data); /* country code */ - - for (i=0; i < 0x100000; i++) - { - intelflash_write(0, 0, 0xff); - sound[i] = intelflash_read(0, i); - } - for (i=0; i < 0x100000; i++) - { - intelflash_write(1, 0, 0xff); - sound[0x100000+i] = intelflash_read(1, i); - } -} - -static MACHINE_DRIVER_START( spi ) - - /* basic machine hardware */ - MDRV_CPU_ADD(I386, 50000000/2) /* Intel 386DX, 25MHz */ - MDRV_CPU_PROGRAM_MAP(spi_map, 0) - MDRV_CPU_VBLANK_INT(spi_interrupt, 1) - - MDRV_CPU_ADD(Z80, 28636360/4) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(spisound_map, 0) - - MDRV_SCREEN_REFRESH_RATE(54) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - MDRV_INTERLEAVE(200) - - MDRV_MACHINE_RESET(spi) - MDRV_NVRAM_HANDLER(spi) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(spi_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(6144) - - MDRV_VIDEO_START(spi) - MDRV_VIDEO_UPDATE(spi) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMF271, 0) - MDRV_SOUND_CONFIG(ymf271_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_RESET( sxx2f ) -{ - UINT8 *rom = memory_region(REGION_CPU2); - - z80_rom = auto_malloc(0x40000); - memory_set_bankptr(4, z80_rom); - memory_set_bankptr(5, z80_rom); - - memcpy(z80_rom, rom, 0x40000); - - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0000068c, 0x0000068f, 0, 0, eeprom_w); - cpunum_set_irq_callback(0, spi_irq_callback); -} - -static MACHINE_DRIVER_START( sxx2f ) - - MDRV_IMPORT_FROM(spi) - MDRV_MACHINE_RESET(sxx2f) - MDRV_NVRAM_HANDLER(sxx2f) - -MACHINE_DRIVER_END - -READ32_HANDLER ( senkyu_speedup_r ) -{ - if (activecpu_get_pc()==0x00305bb2) cpu_spinuntil_int(); // idle - return spimainram[(0x0018cb4-0x800)/4]; -} - -READ32_HANDLER( senkyua_speedup_r ) -{ - if (activecpu_get_pc()== 0x30582e) cpu_spinuntil_int(); // idle - return spimainram[(0x0018c9c-0x800)/4]; -} - -READ32_HANDLER ( batlball_speedup_r ) -{ -// printf("activecpu_get_pc() %06x\n", activecpu_get_pc()); - - /* batlbalu */ - if (activecpu_get_pc()==0x00305996) cpu_spinuntil_int(); // idle - - /* batlball */ - if (activecpu_get_pc()==0x003058aa) cpu_spinuntil_int(); // idle - - return spimainram[(0x0018db4-0x800)/4]; -} - -READ32_HANDLER ( rdft_speedup_r ) -{ - /* rdft */ - if (activecpu_get_pc()==0x0203f0a) cpu_spinuntil_int(); // idle - - /* rdftau */ - if (activecpu_get_pc()==0x0203f16) cpu_spinuntil_int(); // idle - - /* rdftj */ - if (activecpu_get_pc()==0x0203f22) cpu_spinuntil_int(); // idle - - /* rdftdi */ - if (activecpu_get_pc()==0x0203f46) cpu_spinuntil_int(); // idle - - /* rdftu */ - if (activecpu_get_pc()==0x0203f3a) cpu_spinuntil_int(); // idle - -// mame_printf_debug("%08x\n",activecpu_get_pc()); - - return spimainram[(0x00298d0-0x800)/4]; -} - -READ32_HANDLER ( viprp1_speedup_r ) -{ - /* viprp1 */ - if (activecpu_get_pc()==0x0202769) cpu_spinuntil_int(); // idle - - /* viprp1s */ - if (activecpu_get_pc()==0x02027e9) cpu_spinuntil_int(); // idle - - /* viprp1ot */ - if (activecpu_get_pc()==0x02026bd) cpu_spinuntil_int(); // idle - -// mame_printf_debug("%08x\n",activecpu_get_pc()); - - return spimainram[(0x001e2e0-0x800)/4]; -} - -READ32_HANDLER ( viprp1o_speedup_r ) -{ - /* viperp1o */ - if (activecpu_get_pc()==0x0201f99) cpu_spinuntil_int(); // idle -// mame_printf_debug("%08x\n",activecpu_get_pc()); - return spimainram[(0x001d49c-0x800)/4]; -} - -/* -// causes input problems? -READ32_HANDLER ( ejanhs_speedup_r ) -{ -// mame_printf_debug("%08x\n",activecpu_get_pc()); - if (activecpu_get_pc()==0x03032c7) cpu_spinuntil_int(); // idle - return spimainram[(0x002d224-0x800)/4]; -} -*/ - -READ32_HANDLER ( rf2_speedup_r ) -{ - - /* rdft22kc */ - if (activecpu_get_pc()==0x0203926) cpu_spinuntil_int(); // idle - - /* rdft2, rdft2j */ - if (activecpu_get_pc()==0x0204372) cpu_spinuntil_int(); // idle - - /* rdft2us */ - if (activecpu_get_pc()==0x020420e) cpu_spinuntil_int(); // idle - - /* rdft2a */ - if (activecpu_get_pc()==0x0204366) cpu_spinuntil_int(); // idle - -// mame_printf_debug("%08x\n",activecpu_get_pc()); - - return spimainram[(0x0282AC-0x800)/4]; -} - -READ32_HANDLER ( rfjet_speedup_r ) -{ - /* rfjet, rfjetu, rfjeta */ - if (activecpu_get_pc()==0x0206082) cpu_spinuntil_int(); // idle - - /* rfjetus */ - if (activecpu_get_pc()==0x0205b39) cpu_spinuntil_int(); // idle - - /* rfjetj */ - if (activecpu_get_pc()==0x0205f2e) cpu_spinuntil_int(); // idle - -// mame_printf_debug("%08x\n",activecpu_get_pc()); - - - return spimainram[(0x002894c-0x800)/4]; -} - -static DRIVER_INIT( spi ) -{ - intelflash_init( 0, FLASH_INTEL_E28F008SA, NULL ); - intelflash_init( 1, FLASH_INTEL_E28F008SA, NULL ); - - seibuspi_text_decrypt(memory_region(REGION_GFX1)); - seibuspi_bg_decrypt(memory_region(REGION_GFX2), memory_region_length(REGION_GFX2)); - seibuspi_sprite_decrypt(memory_region(REGION_GFX3), 0x400000); -} - -static DRIVER_INIT( rdft ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x00298d0, 0x00298d3, 0, 0, rdft_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( senkyu ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0018cb4, 0x0018cb7, 0, 0, senkyu_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( senkyua ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0018c9c, 0x0018c9f, 0, 0, senkyua_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( batlball ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0018db4, 0x0018db7, 0, 0, batlball_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( ejanhs ) -{ -// idle skip doesn't work properly? -// memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x002d224, 0x002d227, 0, 0, ejanhs_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( viprp1 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x001e2e0, 0x001e2e3, 0, 0, viprp1_speedup_r ); - - init_spi(machine); -} - -static DRIVER_INIT( viprp1o ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x001d49c, 0x001d49f, 0, 0, viprp1o_speedup_r ); - - init_spi(machine); -} - - - -static DRIVER_INIT( rf2 ) -{ - intelflash_init( 0, FLASH_INTEL_E28F008SA, NULL ); - intelflash_init( 1, FLASH_INTEL_E28F008SA, NULL ); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x0282AC, 0x0282AF, 0, 0, rf2_speedup_r ); - seibuspi_rise10_text_decrypt(memory_region(REGION_GFX1)); - seibuspi_rise10_bg_decrypt(memory_region(REGION_GFX2), memory_region_length(REGION_GFX2)); - seibuspi_rise10_sprite_decrypt(memory_region(REGION_GFX3), 0x600000); - - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x560, 0x563, 0, 0, sprite_dma_start_w); -} - -static DRIVER_INIT( rdft2 ) -{ - init_rf2(machine); -} - -static DRIVER_INIT( rdft2us ) -{ - init_rf2(machine); -} - - -static DRIVER_INIT( rfjet ) -{ - intelflash_init( 0, FLASH_INTEL_E28F008SA, NULL ); - intelflash_init( 1, FLASH_INTEL_E28F008SA, NULL ); - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x002894c, 0x002894f, 0, 0, rfjet_speedup_r ); - seibuspi_rise11_text_decrypt(memory_region(REGION_GFX1)); - seibuspi_rise11_bg_decrypt(memory_region(REGION_GFX2), memory_region_length(REGION_GFX2)); - seibuspi_rise11_sprite_decrypt(memory_region(REGION_GFX3), 0x800000); - - memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x560, 0x563, 0, 0, sprite_dma_start_w); -} - -/* SYS386 */ - -static DRIVER_INIT( rdft22kc ) -{ - init_rf2(machine); -} - -static MACHINE_RESET( seibu386 ) -{ - cpunum_set_irq_callback(0, spi_irq_callback); -} - -static MACHINE_DRIVER_START( seibu386 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(I386, 40000000) /* AMD 386DX, 40MHz */ - MDRV_CPU_PROGRAM_MAP(seibu386_map, 0) - MDRV_CPU_VBLANK_INT(spi_interrupt, 1) - - MDRV_SCREEN_REFRESH_RATE(54) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(0)) - - MDRV_NVRAM_HANDLER(sxx2f) - MDRV_MACHINE_RESET(seibu386) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(spi_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(6144) - - MDRV_VIDEO_START(spi) - MDRV_VIDEO_UPDATE(spi) - - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1431815) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(OKIM6295, 1431815) - MDRV_SOUND_CONFIG(okim6295_interface_region_2_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/*******************************************************************/ -#define ROM_LOAD24_BYTE(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(2)) -#define ROM_LOAD24_WORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(1) | ROM_REVERSE) -#define ROM_LOAD24_WORD_SWAP(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(1)) - -/* SPI games */ - -ROM_START(senkyu) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("fb_1.211", 0x100000, 0x40000, CRC(20a3e5db) SHA1(f1109aeceac7993abc9093d09429718ffc292c77) ) - ROM_LOAD32_BYTE("fb_2.212", 0x100001, 0x40000, CRC(38e90619) SHA1(451ab5f4a5935bb779f9c245c1c4358e80d93c15) ) - ROM_LOAD32_BYTE("fb_3.210", 0x100002, 0x40000, CRC(226f0429) SHA1(69d0fe6671278d7fe215e455bb50abf631cdb484) ) - ROM_LOAD32_BYTE("fb_4.29", 0x100003, 0x40000, CRC(b46d66b7) SHA1(1acd0fea9384e1488b44661e0c99b9672a3f9803) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) - ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) - - ROM_REGION( 0x300000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("fb_bg-1d.415", 0x000000, 0x200000, CRC(eae7a1fc) SHA1(26d8a9f4e554848977ec1f6a8aad8751b558a8d4) ) - ROM_LOAD24_BYTE("fb_bg-1p.410", 0x000002, 0x100000, CRC(b46e774e) SHA1(00b6c1d0b0ea37f4354acab543b270c0bf45896d) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("fb_obj-1.322", 0x000000, 0x400000, CRC(29f86f68) SHA1(1afe809ce00a25f8b27543e4188edc3e3e604951) ) - ROM_LOAD("fb_obj-2.324", 0x400000, 0x400000, CRC(c9e3130b) SHA1(12b5d5363142e8efb3b7fc44289c0afffa5011c6) ) - ROM_LOAD("fb_obj-3.323", 0x800000, 0x400000, CRC(f6c3bc49) SHA1(d0eb9c6aa3954d94e3a442a48e0fe6cc279f5513) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("fb_pcm-1.215", 0x000000, 0x080000, CRC(1d83891c) SHA1(09502437562275c14c0f3a0e62b19e91bedb4693) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("fb_7.216", 0x200000, 0x080000, CRC(874d7b59) SHA1(0236753636c9a818780b23f5f506697b9f6d93c7) ) -ROM_END - -ROM_START(senkyua) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("1.bin", 0x100000, 0x40000, CRC(6102c3fb) SHA1(4a55b41d916768f9601513db973b82077bca47c5) ) - ROM_LOAD32_BYTE("2.bin", 0x100001, 0x40000, CRC(d5b8ce46) SHA1(f6e4b8f51146179efb52ecb2b72fdeaee10b7282) ) - ROM_LOAD32_BYTE("3.bin", 0x100002, 0x40000, CRC(e27ceccd) SHA1(3d6b8e97e89939c72d1a5a4a3856025b5f548645) ) - ROM_LOAD32_BYTE("4.bin", 0x100003, 0x40000, CRC(7c6d4549) SHA1(efc6920a2e518afe849fb6fe191e7cd0bc483be5) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) - ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) - - ROM_REGION( 0x300000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("fb_bg-1d.415", 0x000000, 0x200000, CRC(eae7a1fc) SHA1(26d8a9f4e554848977ec1f6a8aad8751b558a8d4) ) - ROM_LOAD24_BYTE("fb_bg-1p.410", 0x000002, 0x100000, CRC(b46e774e) SHA1(00b6c1d0b0ea37f4354acab543b270c0bf45896d) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("fb_obj-1.322", 0x000000, 0x400000, CRC(29f86f68) SHA1(1afe809ce00a25f8b27543e4188edc3e3e604951) ) - ROM_LOAD("fb_obj-2.324", 0x400000, 0x400000, CRC(c9e3130b) SHA1(12b5d5363142e8efb3b7fc44289c0afffa5011c6) ) - ROM_LOAD("fb_obj-3.323", 0x800000, 0x400000, CRC(f6c3bc49) SHA1(d0eb9c6aa3954d94e3a442a48e0fe6cc279f5513) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("fb_pcm-1.215", 0x000000, 0x080000, CRC(1d83891c) SHA1(09502437562275c14c0f3a0e62b19e91bedb4693) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("fb_7.216", 0x200000, 0x080000, CRC(874d7b59) SHA1(0236753636c9a818780b23f5f506697b9f6d93c7) ) -ROM_END - -ROM_START(batlball) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("1.211", 0x100000, 0x40000, CRC(d4e48f89) SHA1(10e43a9ff3f6f169de6352280a8a06e7f482271a) ) - ROM_LOAD32_BYTE("2.212", 0x100001, 0x40000, CRC(3077720b) SHA1(b65c3d02ac75eb56e0c5dc1bf6bb6a4e445a41cf) ) - ROM_LOAD32_BYTE("3.210", 0x100002, 0x40000, CRC(520d31e1) SHA1(998ae968113ab5b2891044187d93793903c13452) ) - ROM_LOAD32_BYTE("4.029", 0x100003, 0x40000, CRC(22419b78) SHA1(67475a654d4ad94e5dfda88cbe2f9c1b5ba6d2cc) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) - ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) - - ROM_REGION( 0x300000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("fb_bg-1d.415", 0x000000, 0x200000, CRC(eae7a1fc) SHA1(26d8a9f4e554848977ec1f6a8aad8751b558a8d4) ) - ROM_LOAD24_BYTE("fb_bg-1p.410", 0x000002, 0x100000, CRC(b46e774e) SHA1(00b6c1d0b0ea37f4354acab543b270c0bf45896d) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("fb_obj-1.322", 0x000000, 0x400000, CRC(29f86f68) SHA1(1afe809ce00a25f8b27543e4188edc3e3e604951) ) - ROM_LOAD("fb_obj-2.324", 0x400000, 0x400000, CRC(c9e3130b) SHA1(12b5d5363142e8efb3b7fc44289c0afffa5011c6) ) - ROM_LOAD("fb_obj-3.323", 0x800000, 0x400000, CRC(f6c3bc49) SHA1(d0eb9c6aa3954d94e3a442a48e0fe6cc279f5513) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("fb_pcm-1.215", 0x000000, 0x080000, CRC(1d83891c) SHA1(09502437562275c14c0f3a0e62b19e91bedb4693) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("fb_7.216", 0x200000, 0x080000, CRC(874d7b59) SHA1(0236753636c9a818780b23f5f506697b9f6d93c7) ) -ROM_END - -ROM_START(batlbala) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("senkyua1.bin", 0x100000, 0x40000, CRC(ec3c4d4d) SHA1(6c57b8fbb77ce1615850842d06c054e88e240eef) ) - ROM_LOAD32_BYTE("2.212", 0x100001, 0x40000, CRC(3077720b) SHA1(b65c3d02ac75eb56e0c5dc1bf6bb6a4e445a41cf) ) - ROM_LOAD32_BYTE("3.210", 0x100002, 0x40000, CRC(520d31e1) SHA1(998ae968113ab5b2891044187d93793903c13452) ) - ROM_LOAD32_BYTE("4.029", 0x100003, 0x40000, CRC(22419b78) SHA1(67475a654d4ad94e5dfda88cbe2f9c1b5ba6d2cc) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) - ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) - - ROM_REGION( 0x300000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("fb_bg-1d.415", 0x000000, 0x200000, CRC(eae7a1fc) SHA1(26d8a9f4e554848977ec1f6a8aad8751b558a8d4) ) - ROM_LOAD24_BYTE("fb_bg-1p.410", 0x000002, 0x100000, CRC(b46e774e) SHA1(00b6c1d0b0ea37f4354acab543b270c0bf45896d) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("fb_obj-1.322", 0x000000, 0x400000, CRC(29f86f68) SHA1(1afe809ce00a25f8b27543e4188edc3e3e604951) ) - ROM_LOAD("fb_obj-2.324", 0x400000, 0x400000, CRC(c9e3130b) SHA1(12b5d5363142e8efb3b7fc44289c0afffa5011c6) ) - ROM_LOAD("fb_obj-3.323", 0x800000, 0x400000, CRC(f6c3bc49) SHA1(d0eb9c6aa3954d94e3a442a48e0fe6cc279f5513) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("fb_pcm-1.215", 0x000000, 0x080000, CRC(1d83891c) SHA1(09502437562275c14c0f3a0e62b19e91bedb4693) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("fb_7.216", 0x200000, 0x080000, CRC(874d7b59) SHA1(0236753636c9a818780b23f5f506697b9f6d93c7) ) -ROM_END - -ROM_START(batlbalu) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("sen1.bin", 0x100000, 0x40000, CRC(13849bf0) SHA1(ffa829a8b8a05a8fbaf883a30759f2ad8071a85b) ) - ROM_LOAD32_BYTE("sen2.bin", 0x100001, 0x40000, CRC(2ae5f7e2) SHA1(cef9ddea8b1d21f20a48c2523c9420c1800720c8) ) - ROM_LOAD32_BYTE("sen3.bin", 0x100002, 0x40000, CRC(98e6f19f) SHA1(433f8463e63bba32730d3c098354f8c95257df3f) ) - ROM_LOAD32_BYTE("sen4.bin", 0x100003, 0x40000, CRC(1343ec56) SHA1(8ecc8d7b425ff6512ffa969a7f26423fa50ad258) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) - ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) - - ROM_REGION( 0x300000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("fb_bg-1d.415", 0x000000, 0x200000, CRC(eae7a1fc) SHA1(26d8a9f4e554848977ec1f6a8aad8751b558a8d4) ) - ROM_LOAD24_BYTE("fb_bg-1p.410", 0x000002, 0x100000, CRC(b46e774e) SHA1(00b6c1d0b0ea37f4354acab543b270c0bf45896d) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("fb_obj-1.322", 0x000000, 0x400000, CRC(29f86f68) SHA1(1afe809ce00a25f8b27543e4188edc3e3e604951) ) - ROM_LOAD("fb_obj-2.324", 0x400000, 0x400000, CRC(c9e3130b) SHA1(12b5d5363142e8efb3b7fc44289c0afffa5011c6) ) - ROM_LOAD("fb_obj-3.323", 0x800000, 0x400000, CRC(f6c3bc49) SHA1(d0eb9c6aa3954d94e3a442a48e0fe6cc279f5513) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("fb_pcm-1.215", 0x000000, 0x080000, CRC(1d83891c) SHA1(09502437562275c14c0f3a0e62b19e91bedb4693) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("fb_7.216", 0x200000, 0x080000, CRC(874d7b59) SHA1(0236753636c9a818780b23f5f506697b9f6d93c7) ) -ROM_END - -ROM_START(ejanhs) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("ejan3_1.211", 0x100000, 0x40000, CRC(e626d3d2) SHA1(d23cb5e218a85e09de98fa966afbfd43090b396e) ) - ROM_LOAD32_BYTE("ejan3_2.212", 0x100001, 0x40000, CRC(83c39da2) SHA1(9526ffb5d5becccf0aa2e338ab4a3c873d575e6f) ) - ROM_LOAD32_BYTE("ejan3_3.210", 0x100002, 0x40000, CRC(46897b7d) SHA1(a22e0467c016e72bf99df2c1e6ecc792b2151b15) ) - ROM_LOAD32_BYTE("ejan3_4.29", 0x100003, 0x40000, CRC(b3187a2b) SHA1(7fc11ed5ceb2e45f784e75307fef8b850a981a2e) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("ejan3_6.413", 0x000000, 0x20000, CRC(837e012c) SHA1(815452083b65885d6e66dfc058ceec81bb3e6678) ) - ROM_LOAD24_BYTE("ejan3_5.48", 0x000002, 0x10000, CRC(d62db7bf) SHA1(c88f1bb6106c59179b914962ed8cdd4095fd9ce8) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("ej3_bg1d.415", 0x000000, 0x200000, CRC(bcacabe0) SHA1(b73581cf923196326b5b0b99e6aedb915bab0880) ) - ROM_LOAD24_BYTE("ej3_bg1p.410", 0x000002, 0x100000, CRC(1fd0eb5e) SHA1(ca64c8020b246128232f4f6c0a0a2dd9cd3efeae) ) - ROM_LOAD24_WORD("ej3_bg2d.416", 0x300000, 0x100000, CRC(ea2acd69) SHA1(b796e9e4b7342bf452f5ffdbce32cfefc603ba0f) ) - ROM_LOAD24_BYTE("ej3_bg2p.49", 0x300002, 0x080000, CRC(a4a9cb0f) SHA1(da177d13bb95bf6b987d3ca13bcdc86570807b2c) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("ej3_obj1.322", 0x000000, 0x400000, CRC(852f180e) SHA1(d4845dace45c05a68f3b38ccb301c5bf5dce4174) ) - ROM_LOAD("ej3_obj2.324", 0x400000, 0x400000, CRC(1116ad08) SHA1(d5c81383b3f9ede7dd03e6be35487b40740b1f8f) ) - ROM_LOAD("ej3_obj3.323", 0x800000, 0x400000, CRC(ccfe02b6) SHA1(368bc8efe9d6677ba3d0cfc0f450a4bda32988be) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("ej3_pcm1.215", 0x000000, 0x080000, CRC(a92a3a82) SHA1(b86c27c5a2831ddd2a1c2b071018a99afec14018) ) - ROM_CONTINUE(0x100000,0x080000) - ROM_LOAD("ejan3_7.216", 0x200000, 0x080000, CRC(c6fc6bcf) SHA1(d4d8c06d295f8eacfa10c21dbab5858f936121f3) ) -ROM_END - - -ROM_START(viprp1) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("seibu1.211", 0x000000, 0x80000, CRC(e5caf4ff) SHA1(7c87a4e8e8dacfb7cc0be8f778352bce2801e59b -) ) - ROM_LOAD32_BYTE("seibu2.212", 0x000001, 0x80000, CRC(688a998e) SHA1(0c48374b6800cd00e3ee96c0fb12119a680b091d) ) - ROM_LOAD32_BYTE("seibu3.210", 0x000002, 0x80000, CRC(990fa76a) SHA1(7619a631d6f83b3677eb47f984aff684e9518d6d) ) - ROM_LOAD32_BYTE("seibu4.29", 0x000003, 0x80000, CRC(13e3e343) SHA1(aac0c7450059847f53b5081e4abf26303a50f999) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("v_5-n.413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) - ROM_LOAD24_BYTE("v_6-n.48", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("v_bg-11.415", 0x000000, 0x200000, CRC(6fc96736) SHA1(12df47d8af2c1febc1bce5bcf3218766447885bd) ) - ROM_LOAD24_BYTE("v_bg-12.415", 0x000002, 0x100000, CRC(d3c7281c) SHA1(340bca1f31486609b3c34dd7830362a216ff648e) ) - ROM_LOAD24_WORD("v_bg-21.410", 0x300000, 0x100000, CRC(d65b4318) SHA1(6522970d95ffa7fa2f32e0b5b4f0eb69e0286b36) ) - ROM_LOAD24_BYTE("v_bg-22.416", 0x300002, 0x080000, CRC(24a0a23a) SHA1(0b0330717620e3f3274a25845d9edaf8023b9db2) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("v_obj-1.322", 0x000000, 0x400000, CRC(3be5b631) SHA1(fd1064428d28ca166a9267b968c0ba846cfed656) ) - ROM_LOAD("v_obj-2.324", 0x400000, 0x400000, CRC(924153b4) SHA1(db5dadcfb4cd5e6efe9d995085936ce4f4eb4254) ) - ROM_LOAD("v_obj-3.323", 0x800000, 0x400000, CRC(e9fb9062) SHA1(18e97b4c5cced2b529e6e72d8041c6f78fcec76e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("v_pcm.215", 0x000000, 0x080000, CRC(e3111b60) SHA1(f7a7747f29c392876e43efcb4e6c0741454082f2) ) - ROM_CONTINUE(0x100000,0x80000) /* stops reading around 00ee8a6, rom is empty at this point, countdown continues anyway */ -ROM_END - -ROM_START(viprp1j) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("v_1-n.211", 0x000000, 0x80000, CRC(55f10b72) SHA1(2a1ebaa969f346bf3659ed8b0f469dce9eaf3b4b) ) - ROM_LOAD32_BYTE("v_2-n.212", 0x000001, 0x80000, CRC(0f888283) SHA1(7e5ac81279b9c7a06f07cb8ae76938cdd5c9beee) ) - ROM_LOAD32_BYTE("v_3-n.210", 0x000002, 0x80000, CRC(842434ac) SHA1(982d219c1d329122789c552208db2f4aaa4af7e4) ) - ROM_LOAD32_BYTE("v_4-n.29", 0x000003, 0x80000, CRC(a3948824) SHA1(fe076951427126c8b7fe81be84ecf0699597225b) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("v_5-n.413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) - ROM_LOAD24_BYTE("v_6-n.48", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("v_bg-11.415", 0x000000, 0x200000, CRC(6fc96736) SHA1(12df47d8af2c1febc1bce5bcf3218766447885bd) ) - ROM_LOAD24_BYTE("v_bg-12.415", 0x000002, 0x100000, CRC(d3c7281c) SHA1(340bca1f31486609b3c34dd7830362a216ff648e) ) - ROM_LOAD24_WORD("v_bg-21.410", 0x300000, 0x100000, CRC(d65b4318) SHA1(6522970d95ffa7fa2f32e0b5b4f0eb69e0286b36) ) - ROM_LOAD24_BYTE("v_bg-22.416", 0x300002, 0x080000, CRC(24a0a23a) SHA1(0b0330717620e3f3274a25845d9edaf8023b9db2) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("v_obj-1.322", 0x000000, 0x400000, CRC(3be5b631) SHA1(fd1064428d28ca166a9267b968c0ba846cfed656) ) - ROM_LOAD("v_obj-2.324", 0x400000, 0x400000, CRC(924153b4) SHA1(db5dadcfb4cd5e6efe9d995085936ce4f4eb4254) ) - ROM_LOAD("v_obj-3.323", 0x800000, 0x400000, CRC(e9fb9062) SHA1(18e97b4c5cced2b529e6e72d8041c6f78fcec76e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("v_pcm.215", 0x000000, 0x080000, CRC(e3111b60) SHA1(f7a7747f29c392876e43efcb4e6c0741454082f2) ) - ROM_CONTINUE(0x100000,0x80000) /* stops reading around 00ee8a6, rom is empty at this point, countdown continues anyway */ -ROM_END - -ROM_START(viprp1s) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("viper_prg0.bin", 0x000000, 0x80000, CRC(ed9980b8) SHA1(bc324e9121ee1e55237bd91681f163ec7790de4c) ) - ROM_LOAD32_BYTE("viper_prg1.bin", 0x000001, 0x80000, CRC(9d4d3486) SHA1(ded6fa32b973046e50c40c40c446590b5f6d0b76) ) - ROM_LOAD32_BYTE("viper_prg2.bin", 0x000002, 0x80000, CRC(d7ea460b) SHA1(aed10adacd073f7d2b35f12ba4b7876e5c99d142) ) - ROM_LOAD32_BYTE("viper_prg3.bin", 0x000003, 0x80000, CRC(ca6df094) SHA1(921eec141ce2d449047172fa9cdf39d459b5cc7b) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("v_5-n.413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) - ROM_LOAD24_BYTE("v_6-n.48", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("v_bg-11.415", 0x000000, 0x200000, CRC(6fc96736) SHA1(12df47d8af2c1febc1bce5bcf3218766447885bd) ) - ROM_LOAD24_BYTE("v_bg-12.415", 0x000002, 0x100000, CRC(d3c7281c) SHA1(340bca1f31486609b3c34dd7830362a216ff648e) ) - ROM_LOAD24_WORD("v_bg-21.410", 0x300000, 0x100000, CRC(d65b4318) SHA1(6522970d95ffa7fa2f32e0b5b4f0eb69e0286b36) ) - ROM_LOAD24_BYTE("v_bg-22.416", 0x300002, 0x080000, CRC(24a0a23a) SHA1(0b0330717620e3f3274a25845d9edaf8023b9db2) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("v_obj-1.322", 0x000000, 0x400000, CRC(3be5b631) SHA1(fd1064428d28ca166a9267b968c0ba846cfed656) ) - ROM_LOAD("v_obj-2.324", 0x400000, 0x400000, CRC(924153b4) SHA1(db5dadcfb4cd5e6efe9d995085936ce4f4eb4254) ) - ROM_LOAD("v_obj-3.323", 0x800000, 0x400000, CRC(e9fb9062) SHA1(18e97b4c5cced2b529e6e72d8041c6f78fcec76e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("v_pcm.215", 0x000000, 0x080000, CRC(e3111b60) SHA1(f7a7747f29c392876e43efcb4e6c0741454082f2) ) - ROM_CONTINUE(0x100000,0x80000) -ROM_END - -ROM_START(viprp1o) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("v_1-o.211", 0x000000, 0x80000, CRC(4430be64) SHA1(96501a490042c289060d8510f6f79fbf64f79c1a) ) - ROM_LOAD32_BYTE("v_2-o.212", 0x000001, 0x80000, CRC(ffbd88f7) SHA1(cd7f291117dd18bd80fb1130eb87936ff7517ee3) ) - ROM_LOAD32_BYTE("v_3-o.210", 0x000002, 0x80000, CRC(6146db39) SHA1(04e68bfff320a3ffcb47686fa012a038538adc1a) ) - ROM_LOAD32_BYTE("v_4-o.29", 0x000003, 0x80000, CRC(dc8dd2b6) SHA1(20970706240c38c54084b4ae24b7ad23b31aa3de) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("v_5-o.413", 0x000000, 0x20000, CRC(6d863acc) SHA1(3e3e14f51b9394b24d7cbf562f1cfffc9ec2216d) ) - ROM_LOAD24_BYTE("v_6-o.48", 0x000002, 0x10000, CRC(fe7cb8f7) SHA1(55c7ab977c3666c8770deb62718d535673ffd4f8) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("v_bg-11.415", 0x000000, 0x200000, CRC(6fc96736) SHA1(12df47d8af2c1febc1bce5bcf3218766447885bd) ) - ROM_LOAD24_BYTE("v_bg-12.415", 0x000002, 0x100000, CRC(d3c7281c) SHA1(340bca1f31486609b3c34dd7830362a216ff648e) ) - ROM_LOAD24_WORD("v_bg-21.410", 0x300000, 0x100000, CRC(d65b4318) SHA1(6522970d95ffa7fa2f32e0b5b4f0eb69e0286b36) ) - ROM_LOAD24_BYTE("v_bg-22.416", 0x300002, 0x080000, CRC(24a0a23a) SHA1(0b0330717620e3f3274a25845d9edaf8023b9db2) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("v_obj-1.322", 0x000000, 0x400000, CRC(3be5b631) SHA1(fd1064428d28ca166a9267b968c0ba846cfed656) ) - ROM_LOAD("v_obj-2.324", 0x400000, 0x400000, CRC(924153b4) SHA1(db5dadcfb4cd5e6efe9d995085936ce4f4eb4254) ) - ROM_LOAD("v_obj-3.323", 0x800000, 0x400000, CRC(e9fb9062) SHA1(18e97b4c5cced2b529e6e72d8041c6f78fcec76e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("v_pcm.215", 0x000000, 0x080000, CRC(e3111b60) SHA1(f7a7747f29c392876e43efcb4e6c0741454082f2) ) - ROM_CONTINUE(0x100000,0x80000) -ROM_END - -ROM_START(viprp1ot) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("ov1.bin", 0x000000, 0x80000, CRC(cbad0e28) SHA1(fbc9b3b243ae0d556f41e8bef5f09489bb9e302b) ) - ROM_LOAD32_BYTE("ov2.bin", 0x000001, 0x80000, CRC(0e2bbcb5) SHA1(5e53d60357fb0f9efa441261fac79e153eb35f3d) ) - ROM_LOAD32_BYTE("ov3.bin", 0x000002, 0x80000, CRC(0e86686b) SHA1(0af207ea77ef378364d80d20ecbfba2f043f2405) ) - ROM_LOAD32_BYTE("ov4.bin", 0x000003, 0x80000, CRC(9d7dd325) SHA1(550a8b5ed60e7ac50c40ec3eaa2cd6462be4a619) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_WORD("v_5-o.413", 0x000000, 0x20000, CRC(6d863acc) SHA1(3e3e14f51b9394b24d7cbf562f1cfffc9ec2216d) ) - ROM_LOAD24_BYTE("v_6-o.48", 0x000002, 0x10000, CRC(fe7cb8f7) SHA1(55c7ab977c3666c8770deb62718d535673ffd4f8) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("v_bg-11.415", 0x000000, 0x200000, CRC(6fc96736) SHA1(12df47d8af2c1febc1bce5bcf3218766447885bd) ) - ROM_LOAD24_BYTE("v_bg-12.415", 0x000002, 0x100000, CRC(d3c7281c) SHA1(340bca1f31486609b3c34dd7830362a216ff648e) ) - ROM_LOAD24_WORD("v_bg-21.410", 0x300000, 0x100000, CRC(d65b4318) SHA1(6522970d95ffa7fa2f32e0b5b4f0eb69e0286b36) ) - ROM_LOAD24_BYTE("v_bg-22.416", 0x300002, 0x080000, CRC(24a0a23a) SHA1(0b0330717620e3f3274a25845d9edaf8023b9db2) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("v_obj-1.322", 0x000000, 0x400000, CRC(3be5b631) SHA1(fd1064428d28ca166a9267b968c0ba846cfed656) ) - ROM_LOAD("v_obj-2.324", 0x400000, 0x400000, CRC(924153b4) SHA1(db5dadcfb4cd5e6efe9d995085936ce4f4eb4254) ) - ROM_LOAD("v_obj-3.323", 0x800000, 0x400000, CRC(e9fb9062) SHA1(18e97b4c5cced2b529e6e72d8041c6f78fcec76e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("v_pcm.215", 0x000000, 0x080000, CRC(e3111b60) SHA1(f7a7747f29c392876e43efcb4e6c0741454082f2) ) - ROM_CONTINUE(0x100000,0x80000) -ROM_END - - -ROM_START(rdft) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("gd_1.211", 0x000000, 0x80000, CRC(f6b2cbdc) SHA1(040c4ff961c8be388c8279b06b777d528c2acc1b) ) - ROM_LOAD32_BYTE("gd_2.212", 0x000001, 0x80000, CRC(1982f812) SHA1(4f12fc3fd7f7a4beda4d29cc81e3a58d255e441f) ) - ROM_LOAD32_BYTE("gd_3.210", 0x000002, 0x80000, CRC(b0f59f44) SHA1(d44fe074ddab35cd0190535cd9fbd7f9e49312a4) ) - ROM_LOAD32_BYTE("gd_4.29", 0x000003, 0x80000, CRC(cd8705bd) SHA1(b19a1486d6b899a134d7b518863ddc8f07967e8b) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) - ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) - ROM_LOAD24_BYTE("gd_7.48", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("gd_bg1-d.415", 0x000000, 0x200000, CRC(6a68054c) SHA1(5cbfc4ac90045f1401c2dda7a51936558c9de07e) ) - ROM_LOAD24_BYTE("gd_bg1-p.410", 0x000002, 0x100000, CRC(3400794a) SHA1(719808f7442bac612cefd7b7fffcd665e6337ad0) ) - ROM_LOAD24_WORD("gd_bg2-d.416", 0x300000, 0x200000, CRC(61cd2991) SHA1(bb608e3948bf9ea35b5e1615d2ba6858d029dcbe) ) - ROM_LOAD24_BYTE("gd_bg2-p.49", 0x300002, 0x100000, CRC(502d5799) SHA1(c3a0e1a4f5a7b35572ae1ff31315da4ed08aa2fe) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("gd_obj-1.322", 0x000000, 0x400000, CRC(59d86c99) SHA1(d3c9241e7b51fe21f8351051b063f91dc69bf905)) - ROM_LOAD("gd_obj-2.324", 0x400000, 0x400000, CRC(1ceb0b6f) SHA1(97225a9b3e7be18080aa52f6570af2cce8f25c06) ) - ROM_LOAD("gd_obj-3.323", 0x800000, 0x400000, CRC(36e93234) SHA1(51917a80b7da5c32a9434a1076fc2916d62e6a3e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("gd_pcm.217", 0x000000, 0x200000, CRC(31253ad7) SHA1(c81c8d50f8f287f5cbfaec77b30d969b01ce11a9) ) - ROM_LOAD("gd_8.216", 0x200000, 0x80000, CRC(f88cb6e4) SHA1(fb35b41307b490d5d08e4b8a70f8ff4ce2ca8105) ) -ROM_END - -ROM_START(rdftu) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("rdftu_gd_1.211", 0x000000, 0x80000, CRC(47810c48) SHA1(8dc8848d3e7467ea887c50fd5675fba2cc741121) ) - ROM_LOAD32_BYTE("rdftu_gd_2.212", 0x000001, 0x80000, CRC(13911750) SHA1(8899accb059ed84170924750bb39ae7383ebd959) ) - ROM_LOAD32_BYTE("rdftu_gd_3.210", 0x000002, 0x80000, CRC(10761b03) SHA1(e67db2e7c2176987419158fc4cee00fd9b99d03f) ) - ROM_LOAD32_BYTE("rdftu_gd_4.29", 0x000003, 0x80000, CRC(e5a3f01d) SHA1(5ca338f85a020d43d2618f88e798a076d13a5c7f) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) - ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) - ROM_LOAD24_BYTE("gd_7.48", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("gd_bg1-d.415", 0x000000, 0x200000, CRC(6a68054c) SHA1(5cbfc4ac90045f1401c2dda7a51936558c9de07e) ) - ROM_LOAD24_BYTE("gd_bg1-p.410", 0x000002, 0x100000, CRC(3400794a) SHA1(719808f7442bac612cefd7b7fffcd665e6337ad0) ) - ROM_LOAD24_WORD("gd_bg2-d.416", 0x300000, 0x200000, CRC(61cd2991) SHA1(bb608e3948bf9ea35b5e1615d2ba6858d029dcbe) ) - ROM_LOAD24_BYTE("gd_bg2-p.49", 0x300002, 0x100000, CRC(502d5799) SHA1(c3a0e1a4f5a7b35572ae1ff31315da4ed08aa2fe) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("gd_obj-1.322", 0x000000, 0x400000, CRC(59d86c99) SHA1(d3c9241e7b51fe21f8351051b063f91dc69bf905)) - ROM_LOAD("gd_obj-2.324", 0x400000, 0x400000, CRC(1ceb0b6f) SHA1(97225a9b3e7be18080aa52f6570af2cce8f25c06) ) - ROM_LOAD("gd_obj-3.323", 0x800000, 0x400000, CRC(36e93234) SHA1(51917a80b7da5c32a9434a1076fc2916d62e6a3e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("gd_pcm.217", 0x000000, 0x200000, CRC(31253ad7) SHA1(c81c8d50f8f287f5cbfaec77b30d969b01ce11a9) ) - ROM_LOAD("gd_8.216", 0x200000, 0x80000, CRC(f88cb6e4) SHA1(fb35b41307b490d5d08e4b8a70f8ff4ce2ca8105) ) -ROM_END - - -ROM_START(rdftj) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("rf1.bin", 0x000000, 0x80000, CRC(46861b75) SHA1(079c589c490d49f7ec97a7e68c5b6e7e37872827) ) - ROM_LOAD32_BYTE("rf2.bin", 0x000001, 0x80000, CRC(6388ed11) SHA1(aebbccfb0f704cdceb45ea71216275dd83880e15) ) - ROM_LOAD32_BYTE("rf3.bin", 0x000002, 0x80000, CRC(beafcd24) SHA1(2dbc47ecef6f898a371a841df2c72151da9c5a8d) ) - ROM_LOAD32_BYTE("rf4.bin", 0x000003, 0x80000, CRC(5236f45f) SHA1(8b05d977d3d07796007a00a52d2396475dc2f7dc) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) - ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) - ROM_LOAD24_BYTE("gd_7.48", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("gd_bg1-d.415", 0x000000, 0x200000, CRC(6a68054c) SHA1(5cbfc4ac90045f1401c2dda7a51936558c9de07e) ) - ROM_LOAD24_BYTE("gd_bg1-p.410", 0x000002, 0x100000, CRC(3400794a) SHA1(719808f7442bac612cefd7b7fffcd665e6337ad0) ) - ROM_LOAD24_WORD("gd_bg2-d.416", 0x300000, 0x200000, CRC(61cd2991) SHA1(bb608e3948bf9ea35b5e1615d2ba6858d029dcbe) ) - ROM_LOAD24_BYTE("gd_bg2-p.49", 0x300002, 0x100000, CRC(502d5799) SHA1(c3a0e1a4f5a7b35572ae1ff31315da4ed08aa2fe) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("gd_obj-1.322", 0x000000, 0x400000, CRC(59d86c99) SHA1(d3c9241e7b51fe21f8351051b063f91dc69bf905)) - ROM_LOAD("gd_obj-2.324", 0x400000, 0x400000, CRC(1ceb0b6f) SHA1(97225a9b3e7be18080aa52f6570af2cce8f25c06) ) - ROM_LOAD("gd_obj-3.323", 0x800000, 0x400000, CRC(36e93234) SHA1(51917a80b7da5c32a9434a1076fc2916d62e6a3e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("gd_pcm.217", 0x000000, 0x200000, CRC(31253ad7) SHA1(c81c8d50f8f287f5cbfaec77b30d969b01ce11a9) ) - ROM_LOAD("gd_8.216", 0x200000, 0x80000, CRC(f88cb6e4) SHA1(fb35b41307b490d5d08e4b8a70f8ff4ce2ca8105) ) -ROM_END - -ROM_START(rdftau) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("1.u0211", 0x000000, 0x80000, CRC(6339c60d) SHA1(871d5bc9fc695651ceb6fcfdab32084320fe239d) ) - ROM_LOAD32_BYTE("2.u0212", 0x000001, 0x80000, CRC(a88bda02) SHA1(27dc720d28f56cf443a4eb0bbaaf4bf3b194056d) ) - ROM_LOAD32_BYTE("3.u0210", 0x000002, 0x80000, CRC(a73e337e) SHA1(93323875c676f38eca3298fcf4a34911db2d78a8) ) - ROM_LOAD32_BYTE("4.u029", 0x000003, 0x80000, CRC(8cc628f0) SHA1(7534eae8a1ea461adad483002b3cecf132e0e325) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) - ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) - ROM_LOAD24_BYTE("gd_7.48", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("gd_bg1-d.415", 0x000000, 0x200000, CRC(6a68054c) SHA1(5cbfc4ac90045f1401c2dda7a51936558c9de07e) ) - ROM_LOAD24_BYTE("gd_bg1-p.410", 0x000002, 0x100000, CRC(3400794a) SHA1(719808f7442bac612cefd7b7fffcd665e6337ad0) ) - ROM_LOAD24_WORD("gd_bg2-d.416", 0x300000, 0x200000, CRC(61cd2991) SHA1(bb608e3948bf9ea35b5e1615d2ba6858d029dcbe) ) - ROM_LOAD24_BYTE("gd_bg2-p.49", 0x300002, 0x100000, CRC(502d5799) SHA1(c3a0e1a4f5a7b35572ae1ff31315da4ed08aa2fe) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("gd_obj-1.322", 0x000000, 0x400000, CRC(59d86c99) SHA1(d3c9241e7b51fe21f8351051b063f91dc69bf905)) - ROM_LOAD("gd_obj-2.324", 0x400000, 0x400000, CRC(1ceb0b6f) SHA1(97225a9b3e7be18080aa52f6570af2cce8f25c06) ) - ROM_LOAD("gd_obj-3.323", 0x800000, 0x400000, CRC(36e93234) SHA1(51917a80b7da5c32a9434a1076fc2916d62e6a3e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("gd_pcm.217", 0x000000, 0x200000, CRC(31253ad7) SHA1(c81c8d50f8f287f5cbfaec77b30d969b01ce11a9) ) - ROM_LOAD("gd_8.216", 0x200000, 0x80000, CRC(f88cb6e4) SHA1(fb35b41307b490d5d08e4b8a70f8ff4ce2ca8105) ) -ROM_END - -ROM_START(rdftdi) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("u211.bin", 0x000000, 0x80000, CRC(fc0e2885) SHA1(79621155d992d504e993bd3ee0d6ff3903bd5415) ) - ROM_LOAD32_BYTE("u212.bin", 0x000001, 0x80000, CRC(58ccb10c) SHA1(0cce4057bfada78121d9586574b98d46cdd7dd46) ) - ROM_LOAD32_BYTE("u210.bin", 0x000002, 0x80000, CRC(47fc3c96) SHA1(7378f8caa847f89f235b5be6779118721076873b) ) - ROM_LOAD32_BYTE("u29.bin", 0x000003, 0x80000, CRC(271bdd4b) SHA1(0a805568cbd6a9c18bdb755a41972ff6bba9e6eb) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) - ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) - ROM_LOAD24_BYTE("gd_7.48", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) - - ROM_REGION( 0x600000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("gd_bg1-d.415", 0x000000, 0x200000, CRC(6a68054c) SHA1(5cbfc4ac90045f1401c2dda7a51936558c9de07e) ) - ROM_LOAD24_BYTE("gd_bg1-p.410", 0x000002, 0x100000, CRC(3400794a) SHA1(719808f7442bac612cefd7b7fffcd665e6337ad0) ) - ROM_LOAD24_WORD("gd_bg2-d.416", 0x300000, 0x200000, CRC(61cd2991) SHA1(bb608e3948bf9ea35b5e1615d2ba6858d029dcbe) ) - ROM_LOAD24_BYTE("gd_bg2-p.49", 0x300002, 0x100000, CRC(502d5799) SHA1(c3a0e1a4f5a7b35572ae1ff31315da4ed08aa2fe) ) - - ROM_REGION( 0xc00000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("gd_obj-1.322", 0x000000, 0x400000, CRC(59d86c99) SHA1(d3c9241e7b51fe21f8351051b063f91dc69bf905)) - ROM_LOAD("gd_obj-2.324", 0x400000, 0x400000, CRC(1ceb0b6f) SHA1(97225a9b3e7be18080aa52f6570af2cce8f25c06) ) - ROM_LOAD("gd_obj-3.323", 0x800000, 0x400000, CRC(36e93234) SHA1(51917a80b7da5c32a9434a1076fc2916d62e6a3e) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("gd_pcm.217", 0x000000, 0x200000, CRC(31253ad7) SHA1(c81c8d50f8f287f5cbfaec77b30d969b01ce11a9) ) - ROM_LOAD("gd_8.216", 0x200000, 0x80000, CRC(f88cb6e4) SHA1(fb35b41307b490d5d08e4b8a70f8ff4ce2ca8105) ) -ROM_END - -/* - -file : readme.txt -author : Tormod -created: 2003-01-20 - -Raiden Fighter 2 (Single PCB, SXX2F V1.2) - -This dump just contains the non surface mounted chips. - -Name Size CRC32 -------------------------------- -fix0.bin 65536 0x6fdf4cf6 -fix1.bin 65536 0x69b7899b -fixp.bin 65536 0x99a5fece -prg0.bin 524288 0xff3eeec1 -prg1.bin 524288 0xe2cf77d6 -prg2.bin 524288 0xcae87e1f -prg3.bin 524288 0x83f4fb5f -sound1.bin 524288 0x20384b0e -zprg.bin 131072 0xcc543c4f - -*/ - -ROM_START(rdft2us) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0u.bin", 0x000000, 0x80000, CRC(ff3eeec1) SHA1(88c1741e4936db9a5b13e562061b0f1cc6fa6b36) ) - ROM_LOAD32_BYTE("prg1u.bin", 0x000001, 0x80000, CRC(e2cf77d6) SHA1(173cc0e304c9dadea4ed0812ebb64c6c83549912) ) - ROM_LOAD32_BYTE("prg2u.bin", 0x000002, 0x80000, CRC(cae87e1f) SHA1(e460aad693eb2702ae11f758b11d37f852d00790) ) - ROM_LOAD32_BYTE("prg3u.bin", 0x000003, 0x80000, CRC(83f4fb5f) SHA1(73f58daa1aae0c4978db409cedd736fb49b15f1c) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_BYTE("fix0.bin", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) - ROM_LOAD24_BYTE("fix1.bin", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) - ROM_LOAD24_BYTE("fixp.bin", 0x000002, 0x10000, CRC(99a5fece) SHA1(44ae95d650ed6e00202d3438f5f91a5e52e319cb) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - // ROMs were not dumped, using the rdft22kc ones (which are likely the same) - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, BAD_DUMP CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, BAD_DUMP CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, BAD_DUMP CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, BAD_DUMP CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - // ROMs were not dumped, using the rdft22kc ones (which are likely the same) - ROM_LOAD("obj3.075", 0x0000000, 0x400000, BAD_DUMP CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, BAD_DUMP CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, BAD_DUMP CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, BAD_DUMP CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, BAD_DUMP CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, BAD_DUMP CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION(0x40000, REGION_CPU2, 0) /* 256k for the Z80 */ - ROM_LOAD("zprg.bin", 0x000000, 0x20000, CRC(cc543c4f) SHA1(6e5c93fd3d21c594571b071d4a830211e1f162b2) ) - - ROM_REGION(0x280000, REGION_SOUND1, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("sound1.bin", 0x100000, 0x80000, CRC(20384b0e) SHA1(9c5d725418543df740f9145974ed6ffbbabee1d0) ) - -ROM_END - -/* RF2 SPI version */ - -ROM_START(rdft2) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0.tun", 0x000000, 0x80000, CRC(3cb3fdca) SHA1(4b472dfd65c7bbbcb92a295aa73b0fa70581455b) ) - ROM_LOAD32_BYTE("prg1.bin", 0x000001, 0x80000, CRC(cab55d88) SHA1(246e13880d34b6c7c3f4ab5e18fa8a0547c03d9d) ) - ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) - ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_BYTE("fix0.bin", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) - ROM_LOAD24_BYTE("fix1.bin", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) - ROM_LOAD24_BYTE("fixp.bin", 0x000002, 0x10000, CRC(99a5fece) SHA1(44ae95d650ed6e00202d3438f5f91a5e52e319cb) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, BAD_DUMP CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, BAD_DUMP CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, BAD_DUMP CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, BAD_DUMP CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD("obj3.075", 0x0000000, 0x400000, BAD_DUMP CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, BAD_DUMP CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, BAD_DUMP CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, BAD_DUMP CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, BAD_DUMP CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, BAD_DUMP CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("rf2_8_sound1.bin", 0x200000, 0x80000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // different? -ROM_END - -ROM_START(rdft2j) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0.sei", 0x000000, 0x80000, CRC(a60c4e7c) SHA1(7789b029d0ac084c7e5e662a7168edaed8f11633) ) - ROM_LOAD32_BYTE("prg1.bin", 0x000001, 0x80000, CRC(cab55d88) SHA1(246e13880d34b6c7c3f4ab5e18fa8a0547c03d9d) ) - ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) - ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_BYTE("fix0.bin", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) - ROM_LOAD24_BYTE("fix1.bin", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) - ROM_LOAD24_BYTE("fixp.bin", 0x000002, 0x10000, CRC(99a5fece) SHA1(44ae95d650ed6e00202d3438f5f91a5e52e319cb) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, BAD_DUMP CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, BAD_DUMP CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, BAD_DUMP CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, BAD_DUMP CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD("obj3.075", 0x0000000, 0x400000, BAD_DUMP CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, BAD_DUMP CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, BAD_DUMP CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, BAD_DUMP CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, BAD_DUMP CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, BAD_DUMP CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("rf2_8_sound1.bin", 0x200000, 0x80000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // different? -ROM_END - -ROM_START(rdft2a) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0.met", 0x000000, 0x80000, CRC(046b3f0e) SHA1(033898f658d6007f891828835734422d4af36321) ) - ROM_LOAD32_BYTE("prg1.bin", 0x000001, 0x80000, CRC(cab55d88) SHA1(246e13880d34b6c7c3f4ab5e18fa8a0547c03d9d) ) - ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) - ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_BYTE("fix0.bin", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) - ROM_LOAD24_BYTE("fix1.bin", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) - ROM_LOAD24_BYTE("fixp.bin", 0x000002, 0x10000, CRC(99a5fece) SHA1(44ae95d650ed6e00202d3438f5f91a5e52e319cb) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, BAD_DUMP CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, BAD_DUMP CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, BAD_DUMP CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, BAD_DUMP CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD("obj3.075", 0x0000000, 0x400000, BAD_DUMP CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, BAD_DUMP CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, BAD_DUMP CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, BAD_DUMP CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, BAD_DUMP CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, BAD_DUMP CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("rf2_8_sound1.bin", 0x200000, 0x80000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // different? -ROM_END - -ROM_START(rdft2a2) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("rf2_1.bin", 0x000000, 0x80000, CRC(72198410) SHA1(ca4bc858f6bf247a343b0fdae1d1a3cdabc4a3c3) ) - ROM_LOAD32_BYTE("rf2_2.bin", 0x000001, 0x80000, CRC(ec73a767) SHA1(83f3905afe49401793c0ea0193cb31d3ba1e1739) ) - ROM_LOAD32_BYTE("rf2_3.bin", 0x000002, 0x80000, CRC(e66243b2) SHA1(54e67af37a4586fd1afc79085ed433d599e1bb87) ) - ROM_LOAD32_BYTE("rf2_4.bin", 0x000003, 0x80000, CRC(92b7b73e) SHA1(128649b2a6a0616113bd0f9846fb6cf814ae326d) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) - ROM_LOAD24_BYTE("rf2_5.bin", 0x000001, 0x10000, CRC(377cac2f) SHA1(f7c9323d79b77f6c8c02ba2c6cdca127d6e5cb5c) ) - ROM_LOAD24_BYTE("rf2_6.bin", 0x000000, 0x10000, CRC(42bd5372) SHA1(c38df85b25070db9640eac541f71c0511bab0c98) ) - ROM_LOAD24_BYTE("rf2_7.bin", 0x000002, 0x10000, CRC(1efaac7e) SHA1(8252af56dcb7a6306dc3422070176778e3c511c2) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, BAD_DUMP CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, BAD_DUMP CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, BAD_DUMP CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, BAD_DUMP CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - // ROMs were not dumped, using the rdft22kc ones (which are likely not identical) - ROM_LOAD("obj3.075", 0x0000000, 0x400000, BAD_DUMP CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, BAD_DUMP CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, BAD_DUMP CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, BAD_DUMP CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, BAD_DUMP CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, BAD_DUMP CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("rf2_8_sound1.bin", 0x200000, 0x80000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // different? -ROM_END - -ROM_START(rfjet) /* SPI Cart, Europe */ - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0.u0211", 0x000000, 0x80000, CRC(e5a3b304) SHA1(f7285f9c69c589fcc71082dc0b9225fdccec855f) ) - ROM_LOAD32_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(395e6da7) SHA1(736f777cb1b6bf5541832b8ea89594738ca6d829) ) - ROM_LOAD32_BYTE("prg2.u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) - ROM_LOAD32_BYTE("prg3.u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_ERASEFF) - ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) - ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) - ROM_LOAD24_BYTE("fixp.u0514", 0x000002, 0x10000, CRC(015d0748) SHA1(b1e8eaeba63a7914f1dc27d7e3ca5d0b6db202ed) ) - - ROM_REGION( 0x900000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.u0543", 0x000000, 0x400000, CRC(edfd96da) SHA1(4813267f104619f569e5777e75b75304321abb49) ) - ROM_LOAD24_BYTE("bg-1p.u0544", 0x000002, 0x200000, CRC(a4cc4631) SHA1(cc1c4f4de8a078ca774f5a328a9a58291949b1fb) ) - ROM_LOAD24_WORD("bg-2d.u0545", 0x600000, 0x200000, CRC(731fbb59) SHA1(13cd29ec4d4c73582c5fb363218e737886826e5f) ) - ROM_LOAD24_BYTE("bg-2p.u0546", 0x600002, 0x100000, CRC(03652c25) SHA1(c0d77285111bc84e008362981ac02a246678ed0a) ) - - ROM_REGION( 0x1800000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj-1.u0442", 0x0000000, 0x800000, CRC(58a59896) SHA1(edeaaa69987bd5d08c47ed9bf47a3901e2dcc892) ) - ROM_LOAD("obj-2.u0443", 0x0800000, 0x800000, CRC(a121d1e3) SHA1(1851ae81f2ae9d3404aadd9fbc0ed7f9230290b9) ) - ROM_LOAD("obj-3.u0444", 0x1000000, 0x800000, CRC(bc2c0c63) SHA1(c8d395722f7012c3be366a0fc9b224c537afabae) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("pcm-d.u0227", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) - ROM_LOAD("sound1.u0222", 0x200000, 0x80000, CRC(d4fc3da1) SHA1(a03bd97e36a21d27a834b9691b27a7eb7ac51ff2) ) -ROM_END - -ROM_START(rfjetj) /* SPI Cart, Japan */ - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0.bin", 0x000000, 0x80000, CRC(d82fb71f) SHA1(63a458fd007c353f4fae54a4882f5c565fe1efa4) ) - ROM_LOAD32_BYTE("prg1.bin", 0x000001, 0x80000, CRC(7e21c669) SHA1(731852e5925dccc9d0d1ae4bcafa238f157f4079) ) - ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(2f402d55) SHA1(d0d852239abb6f4d73e263de5544fc0893e7a7ab) ) - ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(d619e2ad) SHA1(9dbff1babf62c3c5478a84d2a82a428de5949154) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_ERASEFF) - ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) - ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) - ROM_LOAD24_BYTE("fixp.u0514", 0x000002, 0x10000, CRC(015d0748) SHA1(b1e8eaeba63a7914f1dc27d7e3ca5d0b6db202ed) ) - - ROM_REGION( 0x900000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.u0543", 0x000000, 0x400000, CRC(edfd96da) SHA1(4813267f104619f569e5777e75b75304321abb49) ) - ROM_LOAD24_BYTE("bg-1p.u0544", 0x000002, 0x200000, CRC(a4cc4631) SHA1(cc1c4f4de8a078ca774f5a328a9a58291949b1fb) ) - ROM_LOAD24_WORD("bg-2d.u0545", 0x600000, 0x200000, CRC(731fbb59) SHA1(13cd29ec4d4c73582c5fb363218e737886826e5f) ) - ROM_LOAD24_BYTE("bg-2p.u0546", 0x600002, 0x100000, CRC(03652c25) SHA1(c0d77285111bc84e008362981ac02a246678ed0a) ) - - ROM_REGION( 0x1800000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj-1.u0442", 0x0000000, 0x800000, CRC(58a59896) SHA1(edeaaa69987bd5d08c47ed9bf47a3901e2dcc892) ) - ROM_LOAD("obj-2.u0443", 0x0800000, 0x800000, CRC(a121d1e3) SHA1(1851ae81f2ae9d3404aadd9fbc0ed7f9230290b9) ) - ROM_LOAD("obj-3.u0444", 0x1000000, 0x800000, CRC(bc2c0c63) SHA1(c8d395722f7012c3be366a0fc9b224c537afabae) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("pcm-d.u0227", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) - ROM_LOAD("sound1.u0222", 0x200000, 0x80000, CRC(d4fc3da1) SHA1(a03bd97e36a21d27a834b9691b27a7eb7ac51ff2) ) -ROM_END - - -ROM_START(rfjetu) /* SPI Cart, US */ - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0u.u0211", 0x000000, 0x80000, CRC(15ac2040) SHA1(7309a9dd9c91fef0e761dcf8639f421ce7abc97f) ) - ROM_LOAD32_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(395e6da7) SHA1(736f777cb1b6bf5541832b8ea89594738ca6d829) ) - ROM_LOAD32_BYTE("prg2.u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) - ROM_LOAD32_BYTE("prg3.u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_ERASEFF) - ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) - ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) - ROM_LOAD24_BYTE("fixp.u0514", 0x000002, 0x10000, CRC(015d0748) SHA1(b1e8eaeba63a7914f1dc27d7e3ca5d0b6db202ed) ) - - ROM_REGION( 0x900000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.u0543", 0x000000, 0x400000, CRC(edfd96da) SHA1(4813267f104619f569e5777e75b75304321abb49) ) - ROM_LOAD24_BYTE("bg-1p.u0544", 0x000002, 0x200000, CRC(a4cc4631) SHA1(cc1c4f4de8a078ca774f5a328a9a58291949b1fb) ) - ROM_LOAD24_WORD("bg-2d.u0545", 0x600000, 0x200000, CRC(731fbb59) SHA1(13cd29ec4d4c73582c5fb363218e737886826e5f) ) - ROM_LOAD24_BYTE("bg-2p.u0546", 0x600002, 0x100000, CRC(03652c25) SHA1(c0d77285111bc84e008362981ac02a246678ed0a) ) - - ROM_REGION( 0x1800000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj-1.u0442", 0x0000000, 0x800000, CRC(58a59896) SHA1(edeaaa69987bd5d08c47ed9bf47a3901e2dcc892) ) - ROM_LOAD("obj-2.u0443", 0x0800000, 0x800000, CRC(a121d1e3) SHA1(1851ae81f2ae9d3404aadd9fbc0ed7f9230290b9) ) - ROM_LOAD("obj-3.u0444", 0x1000000, 0x800000, CRC(bc2c0c63) SHA1(c8d395722f7012c3be366a0fc9b224c537afabae) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("pcm-d.u0227", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) - ROM_LOAD("sound1.u0222", 0x200000, 0x80000, CRC(d4fc3da1) SHA1(a03bd97e36a21d27a834b9691b27a7eb7ac51ff2) ) -ROM_END - -ROM_START(rfjeta) /* SPI Cart, Asia */ - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("prg0a.u0211", 0x000000, 0x80000, CRC(3418d4f5) SHA1(f8766d7b3708a196de417ee757787220b2a9ced1) ) - ROM_LOAD32_BYTE("prg1.u0212", 0x000001, 0x80000, CRC(395e6da7) SHA1(736f777cb1b6bf5541832b8ea89594738ca6d829) ) - ROM_LOAD32_BYTE("prg2.u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) - ROM_LOAD32_BYTE("prg3.u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_ERASEFF) - ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) - ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) - ROM_LOAD24_BYTE("fixp.u0514", 0x000002, 0x10000, CRC(015d0748) SHA1(b1e8eaeba63a7914f1dc27d7e3ca5d0b6db202ed) ) - - ROM_REGION( 0x900000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.u0543", 0x000000, 0x400000, CRC(edfd96da) SHA1(4813267f104619f569e5777e75b75304321abb49) ) - ROM_LOAD24_BYTE("bg-1p.u0544", 0x000002, 0x200000, CRC(a4cc4631) SHA1(cc1c4f4de8a078ca774f5a328a9a58291949b1fb) ) - ROM_LOAD24_WORD("bg-2d.u0545", 0x600000, 0x200000, CRC(731fbb59) SHA1(13cd29ec4d4c73582c5fb363218e737886826e5f) ) - ROM_LOAD24_BYTE("bg-2p.u0546", 0x600002, 0x100000, CRC(03652c25) SHA1(c0d77285111bc84e008362981ac02a246678ed0a) ) - - ROM_REGION( 0x1800000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj-1.u0442", 0x0000000, 0x800000, CRC(58a59896) SHA1(edeaaa69987bd5d08c47ed9bf47a3901e2dcc892) ) - ROM_LOAD("obj-2.u0443", 0x0800000, 0x800000, CRC(a121d1e3) SHA1(1851ae81f2ae9d3404aadd9fbc0ed7f9230290b9) ) - ROM_LOAD("obj-3.u0444", 0x1000000, 0x800000, CRC(bc2c0c63) SHA1(c8d395722f7012c3be366a0fc9b224c537afabae) ) - - ROM_REGION(0x200000, REGION_SOUND1, ROMREGION_ERASE00) - - ROM_REGION(0x280000, REGION_USER2, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("pcm-d.u0227", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) - ROM_LOAD("sound1.u0222", 0x200000, 0x80000, CRC(d4fc3da1) SHA1(a03bd97e36a21d27a834b9691b27a7eb7ac51ff2) ) -ROM_END - -ROM_START(rfjetus) /* Single board version SXX2G */ - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_BYTE("rfj-06.u0259", 0x000000, 0x80000, CRC(c835aa7a) SHA1(291eada97ceb907dfea15688ce6055e63b3aa675) ) /* PRG0 */ - ROM_LOAD32_BYTE("rfj-07.u0258", 0x000001, 0x80000, CRC(3b6ca1ca) SHA1(9db019c0ddecfb58e2be5c345d78352f700035bf) ) /* PRG1 */ - ROM_LOAD32_BYTE("rfj-08.u0265", 0x000002, 0x80000, CRC(1f5dd06c) SHA1(6f5a8c9035971a470212cd0a89b94181011602c3) ) /* PRG2 */ - ROM_LOAD32_BYTE("rfj-09.u0264", 0x000003, 0x80000, CRC(cc71c402) SHA1(b040e600744e7b3f52de0fa852ce3ae08ae49985) ) /* PRG3 */ - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_ERASEFF) - ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) /* rfj-01 */ - ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) /* rfj-02 */ - ROM_LOAD24_BYTE("fixp.u0514", 0x000002, 0x10000, CRC(015d0748) SHA1(b1e8eaeba63a7914f1dc27d7e3ca5d0b6db202ed) ) /* rfj-03 */ - - ROM_REGION( 0x900000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.u0543", 0x000000, 0x400000, CRC(edfd96da) SHA1(4813267f104619f569e5777e75b75304321abb49) ) - ROM_LOAD24_BYTE("bg-1p.u0544", 0x000002, 0x200000, CRC(a4cc4631) SHA1(cc1c4f4de8a078ca774f5a328a9a58291949b1fb) ) - ROM_LOAD24_WORD("bg-2d.u0545", 0x600000, 0x200000, CRC(731fbb59) SHA1(13cd29ec4d4c73582c5fb363218e737886826e5f) ) - ROM_LOAD24_BYTE("bg-2p.u0546", 0x600002, 0x100000, CRC(03652c25) SHA1(c0d77285111bc84e008362981ac02a246678ed0a) ) - - ROM_REGION( 0x1800000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj-1.u0442", 0x0000000, 0x800000, CRC(58a59896) SHA1(edeaaa69987bd5d08c47ed9bf47a3901e2dcc892) ) - ROM_LOAD("obj-2.u0443", 0x0800000, 0x800000, CRC(a121d1e3) SHA1(1851ae81f2ae9d3404aadd9fbc0ed7f9230290b9) ) - ROM_LOAD("obj-3.u0444", 0x1000000, 0x800000, CRC(bc2c0c63) SHA1(c8d395722f7012c3be366a0fc9b224c537afabae) ) - - ROM_REGION(0x40000, REGION_CPU2, 0) /* 256k for the Z80 */ - ROM_LOAD("rfj-05.u091", 0x000000, 0x40000, CRC(a55e8799) SHA1(5d4ca9ae920ab54e23ee3b1b33db72711e744516) ) /* ZPRG */ - - ROM_REGION(0x280000, REGION_SOUND1, ROMREGION_ERASE00) /* sound roms */ - ROM_LOAD("pcm-d.u0227", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) - ROM_LOAD("rfj-04.107", 0x200000, 0x80000, CRC(c050da03) SHA1(1002dac51a3a4932c4f0074c1f3d97a597d98755) ) /* SOUND1 */ -ROM_END - - - -/*******************************************************************/ -/* SYS386 games */ - -ROM_START(rdft22kc) - ROM_REGION32_LE(0x200000, REGION_USER1, 0) /* i386 program */ - ROM_LOAD32_WORD("prg0-1.267", 0x000000, 0x100000, CRC(0d7d6eb8) SHA1(3a71e1e0ba5bb500dc026debbb6189723c0c2890) ) - ROM_LOAD32_WORD("prg2-3.266", 0x000002, 0x100000, CRC(ead53e69) SHA1(b0e2e06f403317054ecb48d2747034424245f129) ) - - ROM_REGION( 0x30000, REGION_GFX1, 0) /* text layer roms */ - ROM_LOAD24_BYTE("fix0.524", 0x000001, 0x10000, CRC(ed11d043) SHA1(fd3a5a33aa4d795941d64c0d23f9d6f8222843e3) ) - ROM_LOAD24_BYTE("fix1.518", 0x000000, 0x10000, CRC(7036d70a) SHA1(3535b52c0fa1a1158cacc041f8aba2b9a1b43af5) ) - ROM_LOAD24_BYTE("fix2.514", 0x000002, 0x10000, CRC(29b465da) SHA1(644454ab5e0dc1028e9512f85adfe5d8adb757de) ) - - ROM_REGION( 0xc00000, REGION_GFX2, 0) /* background layer roms */ - ROM_LOAD24_WORD("bg-1d.535", 0x000000, 0x400000, CRC(6143f576) SHA1(c034923d0663d9ef24357a03098b8cb81dbab9f8) ) - ROM_LOAD24_BYTE("bg-1p.544", 0x000002, 0x200000, CRC(55e64ef7) SHA1(aae991268948d07342ee8ba1b3761bd180aab8ec) ) - ROM_LOAD24_WORD("bg-2d.536", 0x600000, 0x400000, CRC(c607a444) SHA1(dc1aa96a42e9394ca6036359670a4ec6f830c96d) ) - ROM_LOAD24_BYTE("bg-2p.545", 0x600002, 0x200000, CRC(f0830248) SHA1(6075df96b49e70d2243fef691e096119e7a4d044) ) - - ROM_REGION( 0x1200000, REGION_GFX3, 0) /* sprites */ - ROM_LOAD("obj3.075", 0x0000000, 0x400000, CRC(e08f42dc) SHA1(5188d71d4355eaf43ea8893b4cfc4fe80cc24f41) ) - ROM_LOAD("obj6.078", 0x0400000, 0x200000, CRC(1b6a523c) SHA1(99a420dbc8e22e7832ccda7cec9fa661a2a2687a) ) - ROM_LOAD("obj2.074", 0x0600000, 0x400000, CRC(7aeadd8e) SHA1(47103c0579240c5b1add4d0b164eaf76f5fa97f0) ) - ROM_LOAD("obj5.077", 0x0a00000, 0x200000, CRC(5d790a5d) SHA1(1ed5d4ad4c9a7e505ce35dcc90d184c26ce891dc) ) - ROM_LOAD("obj1.073", 0x0c00000, 0x400000, CRC(c2c50f02) SHA1(b81397b5800c6d49f58b7ac7ff6eac56da3c5257) ) - ROM_LOAD("obj4.076", 0x1000000, 0x200000, CRC(5259321f) SHA1(3c70c1147e49f81371d0f60f7108d9718d56faf4) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0) /* sound data for MSM6295 */ - ROM_LOAD("pcm0.1022", 0x000000, 0x80000, CRC(fd599b35) SHA1(00c0307d1b503bd5ce02d7960ce5e1ad600a7290) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0) /* sound data for MSM6295 */ - ROM_LOAD("pcm1.1023", 0x000000, 0x80000, CRC(8b716356) SHA1(42ee1896c02518cd1e9cb0dc130321834665a79e) ) -ROM_END - -/*******************************************************************/ - - -/* SPI */ -GAME( 1995, senkyu, 0, spi, spi_3button, senkyu, ROT0, "Seibu Kaihatsu", "Senkyu (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, senkyua, senkyu, spi, spi_3button, senkyua, ROT0, "Seibu Kaihatsu", "Senkyu (Japan, set 2)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, batlball, senkyu, spi, spi_3button, batlball, ROT0, "Seibu Kaihatsu (Tuning License)", "Battle Balls (Germany)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, batlbala, senkyu, spi, spi_3button, batlball, ROT0, "Seibu Kaihatsu (Metrotainment License)", "Battle Balls (Asia)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, batlbalu, senkyu, spi, spi_3button, batlball, ROT0, "Seibu Kaihatsu (Fabtek License)", "Battle Balls (US)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1995, viprp1, 0, spi, spi_3button, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (World, New Version)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, viprp1j, viprp1, spi, spi_3button, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (Japan, New Version)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, viprp1s, viprp1, spi, spi_3button, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (Switzerland, New Version)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1995, viprp1o, viprp1, spi, spi_3button, viprp1o, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1995, viprp1ot, viprp1, spi, spi_3button, viprp1, ROT270, "Seibu Kaihatsu (Tuning License)", "Viper Phase 1 (Germany)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1996, ejanhs, 0, spi, spi_ejanhs, ejanhs, ROT0, "Seibu Kaihatsu", "E-Jan High School (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1996, rdft, 0, spi, spi_3button, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 1)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1996, rdftu, rdft, spi, spi_3button, rdft, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters (US)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1996, rdftau, rdft, spi, spi_3button, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Australia)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1996, rdftj, rdft, spi, spi_3button, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 2)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1996, rdftdi, rdft, spi, spi_3button, rdft, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters (Dream Island Co. license)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1997, rdft2, 0, spi, spi_2button, rdft2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters 2", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1997, rdft2a2, rdft2, spi, spi_2button, rdft2, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters 2 (Asia, Dream Island license, SPI)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1997, rdft2a, rdft2, spi, spi_2button, rdft2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden Fighters 2 (Asia, Metrotainment license, SPI)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1997, rdft2j, rdft2, spi, spi_2button, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 (Japan, SPI)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -GAME( 1998, rfjet, 0, spi, spi_2button, rfjet, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters Jet", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1998, rfjetu, rfjet, spi, spi_2button, rfjet, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters Jet (US)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1998, rfjeta, rfjet, spi, spi_2button, rfjet, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters Jet (Asia)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) -GAME( 1998, rfjetj, rfjet, spi, spi_2button, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) - -/* there is another rf dump rf_spi_asia.zip but it seems strange, 1 program rom, cart pic seems to show others as a different type of rom */ - -/* SXX2F */ -GAME( 1997, rdft2us, rdft2, sxx2f, spi_2button, rdft2us, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2.1 (US, Single Board)", GAME_IMPERFECT_GRAPHICS|GAME_NO_SOUND ) // title screen shows '2.1' - -/* SXX2G */ -GAME( 1999, rfjetus, rfjet, sxx2f, spi_2button, rfjet, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters Jet (US, Single Board)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND ) // has 1998-99 copyright + planes unlocked - -/* SYS386 */ -GAME( 2000, rdft22kc, rdft2, seibu386, seibu386_2button, rdft22kc, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - 2000 (China)", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/shangkid.c b/src/drivers/shangkid.c deleted file mode 100644 index e2e0da966..000000000 --- a/src/drivers/shangkid.c +++ /dev/null @@ -1,851 +0,0 @@ -/* -Dynamic Ski -(c)1984 Taiyo - -Dynamic Ski runs on a single Z80. It has the same graphics format as the -newer Taiyo games. - -The game has some minor priority glitches. - ---------------------------------------------------------------------------- - -Chinese Hero (developed by Taiyo) -(c)1984 Taiyo - -Chinese Hero hardware differs only slightly from Shanghai Kid: -- sprites have 3 bitplanes instead of 2 -- videoram attributes for the tilemap don't include xflip -- no protection - ---------------------------------------------------------------------------- - -Shanghai Kid / (Hokuha Syourin) Hiryu no Ken -(c)1985 Nihon Game (distributed by Taito) - - 3 Z-80A CPU - 1 AY-3-8910 - 1 XTAL 18.432MHz - -Also distributed with Data East and Memetron license. - -Two board set CPU/sound & video. - -There is a 1.5" by 2" by 4" black epoxy block that has an external battery. -The block is connected to the PCB by a 40 pin DIP socket labeled IC30. -There is a small smt IC on the video board with the numbers ground off. - ---------------------------------------------------------------------------- - -Some company history: - -Nihon Game changed their name to Culture Brain. - -Games by Nihon Game/Culture Brain: - 1982 Monster Zero - 1983 Space Hunter - 1984 Chinese Hero - 1985 Hokuha Syourin Hiryuu no Ken / Shanghai Kid - 1986 Super Chinese (Nintendo Vs. System) -*/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/dac.h" - -/* from vidhrdw/shangkid.c */ -extern UINT8 *shangkid_videoreg; -extern int shangkid_gfx_type; - -VIDEO_START( shangkid ); -VIDEO_UPDATE( shangkid ); -WRITE8_HANDLER( shangkid_videoram_w ); - -PALETTE_INIT( dynamski ); -VIDEO_UPDATE( dynamski ); - -/***************************************************************************************/ - -static UINT8 bbx_sound_enable; -static UINT8 bbx_AY8910_control; -static UINT8 sound_latch; - -/***************************************************************************************/ - -static DRIVER_INIT( chinhero ) -{ - shangkid_gfx_type = 0; -} - -static DRIVER_INIT( shangkid ) -{ - shangkid_gfx_type = 1; -} - -/***************************************************************************************/ - -static WRITE8_HANDLER( shangkid_maincpu_bank_w ) -{ - memory_set_bank(1, data & 1); -} - -static WRITE8_HANDLER( shangkid_bbx_enable_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_HALT, data?0:1 ); -} - -static WRITE8_HANDLER( shangkid_cpu_reset_w ) -{ - if( data == 0 ) - { - cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); - } - else if( data == 1 ) - { - cpunum_set_input_line(0, INPUT_LINE_RESET, PULSE_LINE); - } -} - -static WRITE8_HANDLER( shangkid_sound_enable_w ) -{ - bbx_sound_enable = data; -} - -WRITE8_HANDLER( shangkid_bbx_AY8910_control_w ) -{ - bbx_AY8910_control = data; - AY8910_control_port_0_w( offset, data ); -} - -WRITE8_HANDLER( shangkid_bbx_AY8910_write_w ) -{ - switch( bbx_AY8910_control ) - { - case 0x0e: - if( bbx_sound_enable ) - { - if( data == 0x01 ) - { - /* 0->1 transition triggers interrupt on Sound CPU */ - cpunum_set_input_line( 2, 0, HOLD_LINE ); - } - } - else - { - memory_set_bank(2, data ? 0 : 1); - } - break; - - case 0x0f: - sound_latch = data; - break; - - default: - AY8910_write_port_0_w( offset, data ); - break; - } -} - -/***************************************************************************************/ - -READ8_HANDLER( shangkid_soundlatch_r ) -{ - return sound_latch; -} - -/***************************************************************************************/ - -static MACHINE_RESET( chinhero ) -{ - memory_configure_bank(1, 0, 2, memory_region(REGION_CPU1) + 0x8000, 0x8000); - memory_set_bank(1, 0); - - memory_configure_bank(2, 0, 2, memory_region(REGION_CPU3) + 0x0000, 0x10000); - memory_set_bank(2, 0); -} - -/***************************************************************************************/ - -static const gfx_layout shangkid_char_layout = { - 8,8, - RGN_FRAC(1,1), - 2, - { 0,4 }, - { 0,1,2,3,8,9,10,11 }, - { 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16 }, - 8*16 -}; - -static const gfx_layout shangkid_sprite_layout = { - 16,16, - RGN_FRAC(1,1), - 2, - { 0,4 }, - { - 0,1,2,3,8,9,10,11, - 128+0,128+1,128+2,128+3,128+8,128+9,128+10,128+11 - }, - { - 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16, - 256+0*16,256+1*16,256+2*16,256+3*16,256+4*16,256+5*16,256+6*16,256+7*16 - }, - 8*0x40 -}; - -static const gfx_layout chinhero_sprite_layout1 = { - 16,16, - 0x80, - 3, - { 0x4000*8+4,0,4 }, - { - 0,1,2,3,8,9,10,11, - 128+0,128+1,128+2,128+3,128+8,128+9,128+10,128+11 - }, - { - 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16, - 256+0*16,256+1*16,256+2*16,256+3*16,256+4*16,256+5*16,256+6*16,256+7*16 - }, - 8*0x40 -}; - -static const gfx_layout chinhero_sprite_layout2 = { - 16,16, - 0x80, - 3, - { 0x4000*8,0x2000*8+0,0x2000*8+4 }, - { - 0,1,2,3,8,9,10,11, - 128+0,128+1,128+2,128+3,128+8,128+9,128+10,128+11 - }, - { - 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16, - 256+0*16,256+1*16,256+2*16,256+3*16,256+4*16,256+5*16,256+6*16,256+7*16 - }, - 8*0x40 -}; - -static const gfx_decode chinhero_gfxdecodeinfo[] = { - { REGION_GFX1, 0, &shangkid_char_layout, 0, 0x40 }, - { REGION_GFX2, 0, &chinhero_sprite_layout1, 0, 0x20 }, - { REGION_GFX2, 0, &chinhero_sprite_layout2, 0, 0x20 }, - { REGION_GFX3, 0, &chinhero_sprite_layout1, 0, 0x20 }, - { REGION_GFX3, 0, &chinhero_sprite_layout2, 0, 0x20 }, - { -1 } -}; - -static const gfx_decode shangkid_gfxdecodeinfo[] = { - { REGION_GFX1, 0, &shangkid_char_layout, 0, 0x40 }, - { REGION_GFX2, 0, &shangkid_sprite_layout, 0, 0x40 }, - { -1 } -}; - -static const gfx_decode dynamski_gfxdecodeinfo[] = { - { REGION_GFX1, 0, &shangkid_char_layout, 0, 0x10 }, - { REGION_GFX2, 0, &shangkid_sprite_layout, 0x40, 0x10 }, - { -1 } -}; - -/***************************************************************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1) - AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) - AM_RANGE(0xb002, 0xb002) AM_WRITE(MWA8_NOP) /* main CPU interrupt-related */ - AM_RANGE(0xb003, 0xb003) AM_WRITE(MWA8_NOP) /* BBX interrupt-related */ - AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) - AM_RANGE(0xb006, 0xb006) AM_WRITE(MWA8_NOP) /* coin counter */ - AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) - AM_RANGE(0xb800, 0xb800) AM_READ(input_port_0_r) /* SW1 */ - AM_RANGE(0xb801, 0xb801) AM_READ(input_port_1_r) /* coin/start */ - AM_RANGE(0xb802, 0xb802) AM_READ(input_port_2_r) /* player#2 */ - AM_RANGE(0xb803, 0xb803) AM_READ(input_port_3_r) /* player#1 */ - AM_RANGE(0xc000, 0xc002) AM_WRITE(MWA8_RAM) AM_BASE(&shangkid_videoreg) - AM_RANGE(0xd000, 0xdfff) AM_READWRITE(MRA8_RAM, shangkid_videoram_w) AM_BASE(&videoram) AM_SHARE(1) - AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE(2) - AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE(&spriteram) AM_SHARE(3) -ADDRESS_MAP_END - -/***************************************************************************************/ - -static ADDRESS_MAP_START( bbx_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x9fff) AM_ROM - AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w) - AM_RANGE(0xb002, 0xb002) AM_WRITE(MWA8_NOP) /* main CPU interrupt-related */ - AM_RANGE(0xb003, 0xb003) AM_WRITE(MWA8_NOP) /* BBX interrupt-related */ - AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w) - AM_RANGE(0xb006, 0xb006) AM_WRITE(MWA8_NOP) /* coin counter */ - AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w) - AM_RANGE(0xb800, 0xb800) AM_READ(input_port_0_r) /* SW1 */ - AM_RANGE(0xb801, 0xb801) AM_READ(input_port_1_r) /* coin/start */ - AM_RANGE(0xb802, 0xb802) AM_READ(input_port_2_r) /* player#2 */ - AM_RANGE(0xb803, 0xb803) AM_READ(input_port_3_r) /* player#1 */ - AM_RANGE(0xd000, 0xdfff) AM_READWRITE(MRA8_RAM, shangkid_videoram_w) AM_SHARE(1) - AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE(2) - AM_RANGE(0xfe00, 0xffff) AM_RAM AM_SHARE(3) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bbx_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(shangkid_bbx_AY8910_control_w) - AM_RANGE(0x01, 0x01) AM_WRITE(shangkid_bbx_AY8910_write_w) -ADDRESS_MAP_END - -/***************************************************************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_ROMBANK(2) /* sample player writes to ROM area */ - AM_RANGE(0xe000, 0xefff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READWRITE(shangkid_soundlatch_r, DAC_0_data_w) -ADDRESS_MAP_END - -/***************************************************************************************/ - -static MACHINE_DRIVER_START( chinhero ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(bbx_map,0) - MDRV_CPU_IO_MAP(bbx_portmap,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 3000000) /* ? */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_IO_MAP(sound_portmap,0) - - MDRV_MACHINE_RESET(chinhero) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223) - MDRV_GFXDECODE(chinhero_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(shangkid) - MDRV_VIDEO_UPDATE(shangkid) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( shangkid ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(chinhero) - - /* video hardware */ - MDRV_GFXDECODE(shangkid_gfxdecodeinfo) -MACHINE_DRIVER_END - - - -static ADDRESS_MAP_START( dynamski_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(&videoram) /* tilemap */ - AM_RANGE(0xc800, 0xcbff) AM_RAM - AM_RANGE(0xd000, 0xd3ff) AM_RAM - AM_RANGE(0xd800, 0xdbff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* IRQ disable */ - AM_RANGE(0xe001, 0xe002) AM_RAM /* screen flip */ - AM_RANGE(0xe800, 0xe800) AM_READ(input_port_0_r) - AM_RANGE(0xe801, 0xe801) AM_READ(input_port_1_r) - AM_RANGE(0xe802, 0xe802) AM_READ(input_port_2_r) - AM_RANGE(0xe803, 0xe803) AM_READ(input_port_3_r) - AM_RANGE(0xf000, 0xf7ff) AM_RAM /* work ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dynamski_portmap, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - /* ports are reversed */ - AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_control_port_0_w) -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( dynamski ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(dynamski_map,0) - MDRV_CPU_IO_MAP(dynamski_portmap,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256+32, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 255+32, 16, 255-16) - MDRV_GFXDECODE(dynamski_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(32) - MDRV_COLORTABLE_LENGTH(16*4+16*4) - - MDRV_PALETTE_INIT(dynamski) - MDRV_VIDEO_UPDATE(dynamski) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) -MACHINE_DRIVER_END - -/***************************************************************************************/ - -INPUT_PORTS_START( dynamski ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Unknown ) ) - /* what's 00 ? */ - PORT_DIPSETTING( 0x01, "A" ) - PORT_DIPSETTING( 0x02, "B" ) - PORT_DIPSETTING( 0x03, "C" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) /* unused? */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) /* unused? */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( chinhero ) - PORT_START_TAG("DSW") - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "4" ) - PORT_DIPSETTING( 0x03, "5" ) - PORT_DIPSETTING( 0x00, "Infinite (Cheat)") - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) /* not verified */ - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( shangkid ) - PORT_START_TAG("DSW") - /* There are also two potentiometers on the PCB for volume: - ** RV1 - Music - ** RV2 - Sound Effects - */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x1c, 0x04, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Unknown ) ) /* 1C_1C; no coin counter */ - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x14, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x1c, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) /* service */ - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* busy flag? */ - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) /* kick */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) /* punch */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) /* kick */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) /* punch */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) -INPUT_PORTS_END - -/***************************************************************************************/ - -ROM_START( chinhero ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (main) */ - ROM_LOAD( "ic2.1", 0x0000, 0x2000, CRC(8974bac4) SHA1(932a677d0928f4146201f206b71ac2bcc0f6735c) ) - ROM_LOAD( "ic3.2", 0x2000, 0x2000, CRC(9b7a02fe) SHA1(b17593262ec24b999d66634b84eee95c1088f7eb) ) - ROM_LOAD( "ic4.3", 0x4000, 0x2000, CRC(e86d4195) SHA1(5081500e0a6d4fd19690134efd6f35b6047e6727) ) - ROM_LOAD( "ic5.4", 0x6000, 0x2000, CRC(2b629d2c) SHA1(7e92e2c2d09d3501ddbf79a14228cf273f4a17df) ) - ROM_LOAD( "ic6.5", 0x8000, 0x2000, CRC(35bf4a4f) SHA1(2600c57d40355775847eed8a9592c67f5d11f1f1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code (coprocessor) */ - ROM_LOAD( "ic31.6", 0x0000, 0x2000, CRC(7c56927b) SHA1(565a10b39f2d5d38cb5415aadd7fbdb90dcf13cb) ) - ROM_LOAD( "ic32.7", 0x2000, 0x2000, CRC(d67b8045) SHA1(0374cafb8d4828e195791784ac187772c49c18f9) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* Z80 code (sound) */ - ROM_LOAD( "ic47.8", 0x0000, 0x2000, CRC(3c396062) SHA1(2c1540eb123b3124e1679ba09e063e80f2423022) ) - ROM_LOAD( "ic48.9", 0x2000, 0x2000, CRC(b14f2bab) SHA1(3643b430e3b464b0bc9aca81122b07fb8eb0fb9f) ) - ROM_LOAD( "ic49.10", 0x4000, 0x2000, CRC(8c0e43d1) SHA1(acaead801b4782875c8b6092e987b73f9973f8b0) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "ic21.11", 0x0000, 0x2000, CRC(3a37fb45) SHA1(4c631cf924f1e1dfea6db3f014ab7d9cb9f4b0c4) ) - ROM_LOAD( "ic22.12", 0x2000, 0x2000, CRC(bc21c002) SHA1(4fc5e4dfe8331a3feb1c370a8aca9c8303eb7b4e) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* sprites */ - ROM_LOAD( "ic114.18", 0x0000, 0x2000, CRC(fc4183a8) SHA1(4bc891a9e16cd84ce353180705cc8fcadf414a49) ) - ROM_LOAD( "ic113.17", 0x2000, 0x2000, CRC(d713d7fe) SHA1(8dd97f96a1190c5be5e19721227dd80adf060b4d) ) - ROM_LOAD( "ic99.13", 0x4000, 0x2000, CRC(a8e2a3f4) SHA1(db9f954d4b46660f5f1cb4122838e6418f92d0a3) ) - - ROM_REGION( 0x6000, REGION_GFX3, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* sprites */ - ROM_LOAD( "ic112.16", 0x0000, 0x2000, CRC(dd5170ca) SHA1(e0a9d1dbc021a8ad84dd7d1bd7e390e51e6328b7) ) - ROM_LOAD( "ic111.15", 0x2000, 0x2000, CRC(20f6052e) SHA1(e22ddb3fb90ff8df5ce7fda6a26c1b9fce2f59ab) ) - ROM_LOAD( "ic110.14", 0x4000, 0x2000, CRC(9bc2d568) SHA1(a4ee8822709645b0dc088635c0a9c263fb5a2245) ) - - ROM_REGION( 0xa80, REGION_PROMS, 0 ) - ROM_LOAD( "v_ic36_r", 0x000, 0x100, CRC(16ae1692) SHA1(e287b96890da4815350af72e9f2189d0c72313b6) ) /* red */ - ROM_LOAD( "v_ic35_g", 0x100, 0x100, CRC(b3d0a074) SHA1(e955fda8cb8df389507e17b7b4609e845e5ef0c4) ) /* green */ - ROM_LOAD( "v_ic27_b", 0x200, 0x100, CRC(353a2d11) SHA1(76f21e3e092024592d9ccd33ae69c438254c5755) ) /* blue */ - - ROM_LOAD( "v_ic28_m", 0x300, 0x100, CRC(7ca273c1) SHA1(20d85547d96bea8b310c943c45e4978a7e5b5585) ) /* unknown */ - ROM_LOAD( "v_ic69", 0x400, 0x200, CRC(410d6f86) SHA1(3cfaef3702dbda3e7c7eb84a93561e36778aec3e) ) /* zoom */ - ROM_LOAD( "v_ic108", 0x600, 0x200, CRC(d33c02ae) SHA1(1a2146ae404a5e8a701e1d547a8409a376d4bee4) ) /* zoom */ - - ROM_LOAD( "v_ic12", 0x800, 0x100, CRC(0de07e89) SHA1(5655bce6ff3abad63f5b31add402cdbb51c323f0) ) /* tile pen priority */ - ROM_LOAD( "v_ic15_p", 0x900, 0x100, CRC(7e0a0581) SHA1(e355a6ef21a65a1e828d7bd5b0f2224b06438b4a) ) /* sprite pen transparency */ - ROM_LOAD( "v_ic8", 0xa00, 0x020, CRC(4c62974d) SHA1(fd5970b5ba1d9e986515ae06c2e83f8bf20b3cdc) ) - - ROM_LOAD( "ic8", 0xa20, 0x020, CRC(84bcd9af) SHA1(5a5afeb6aedb8ac6ac49fb8da62df57fbd8b1780) ) /* main CPU banking */ - ROM_LOAD( "ic22", 0xa40, 0x020, CRC(84bcd9af) SHA1(5a5afeb6aedb8ac6ac49fb8da62df57fbd8b1780) ) /* coprocessor banking */ - ROM_LOAD( "ic42", 0xa60, 0x020, CRC(2ccfe10a) SHA1(d89ea91e5da436805fca9ded9b33609f4a862724) ) /* sound cpu banking */ -ROM_END - -ROM_START( chinher2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (main) */ - ROM_LOAD( "1.128", 0x0000, 0x4000, CRC(68e247aa) SHA1(27c2b864e482ba10c81337ed7c03a58b395e52bb) ) - ROM_LOAD( "2.128", 0x4000, 0x4000, CRC(0346d8c9) SHA1(458b9a37b0ad0cafecdb0348f7d93508531bc310) ) - ROM_LOAD( "3.128", 0x8000, 0x4000, CRC(a78b8d78) SHA1(c2b7b2d56e2fdb7a2a11bb8b1aab35a841331b96) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code (coprocessor) */ - ROM_LOAD( "4.128", 0x0000, 0x4000, CRC(6ab2e836) SHA1(61c84c0b685e29bac8020a0051586267ecd20166) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* Z80 code (sound) */ - ROM_LOAD( "5.128", 0x0000, 0x4000, CRC(4e4f3f92) SHA1(57d0485f8a0110f5448b554d2fab1caba52551fd) ) - ROM_LOAD( "ic49.10", 0x4000, 0x2000, CRC(8c0e43d1) SHA1(acaead801b4782875c8b6092e987b73f9973f8b0) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "ic21.11", 0x0000, 0x2000, CRC(3a37fb45) SHA1(4c631cf924f1e1dfea6db3f014ab7d9cb9f4b0c4) ) - ROM_LOAD( "ic22.12", 0x2000, 0x2000, CRC(bc21c002) SHA1(4fc5e4dfe8331a3feb1c370a8aca9c8303eb7b4e) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* sprites */ - ROM_LOAD( "ic114.18", 0x0000, 0x2000, CRC(fc4183a8) SHA1(4bc891a9e16cd84ce353180705cc8fcadf414a49) ) - ROM_LOAD( "ic113.17", 0x2000, 0x2000, CRC(d713d7fe) SHA1(8dd97f96a1190c5be5e19721227dd80adf060b4d) ) - ROM_LOAD( "ic99.13", 0x4000, 0x2000, CRC(a8e2a3f4) SHA1(db9f954d4b46660f5f1cb4122838e6418f92d0a3) ) - - ROM_REGION( 0x6000, REGION_GFX3, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* sprites */ - ROM_LOAD( "ic112.16", 0x0000, 0x2000, CRC(dd5170ca) SHA1(e0a9d1dbc021a8ad84dd7d1bd7e390e51e6328b7) ) - ROM_LOAD( "ic111.15", 0x2000, 0x2000, CRC(20f6052e) SHA1(e22ddb3fb90ff8df5ce7fda6a26c1b9fce2f59ab) ) - ROM_LOAD( "ic110.14", 0x4000, 0x2000, CRC(9bc2d568) SHA1(a4ee8822709645b0dc088635c0a9c263fb5a2245) ) - - ROM_REGION( 0xa80, REGION_PROMS, 0 ) - ROM_LOAD( "v_ic36_r", 0x000, 0x100, CRC(16ae1692) SHA1(e287b96890da4815350af72e9f2189d0c72313b6) ) /* red */ - ROM_LOAD( "v_ic35_g", 0x100, 0x100, CRC(b3d0a074) SHA1(e955fda8cb8df389507e17b7b4609e845e5ef0c4) ) /* green */ - ROM_LOAD( "v_ic27_b", 0x200, 0x100, CRC(353a2d11) SHA1(76f21e3e092024592d9ccd33ae69c438254c5755) ) /* blue */ - - ROM_LOAD( "v_ic28_m", 0x300, 0x100, CRC(7ca273c1) SHA1(20d85547d96bea8b310c943c45e4978a7e5b5585) ) /* unknown */ - ROM_LOAD( "v_ic69", 0x400, 0x200, CRC(410d6f86) SHA1(3cfaef3702dbda3e7c7eb84a93561e36778aec3e) ) /* zoom */ - ROM_LOAD( "v_ic108", 0x600, 0x200, CRC(d33c02ae) SHA1(1a2146ae404a5e8a701e1d547a8409a376d4bee4) ) /* zoom */ - - ROM_LOAD( "v_ic12", 0x800, 0x100, CRC(0de07e89) SHA1(5655bce6ff3abad63f5b31add402cdbb51c323f0) ) /* tile pen priority */ - ROM_LOAD( "v_ic15_p", 0x900, 0x100, CRC(7e0a0581) SHA1(e355a6ef21a65a1e828d7bd5b0f2224b06438b4a) ) /* sprite pen transparency */ - ROM_LOAD( "v_ic8", 0xa00, 0x020, CRC(4c62974d) SHA1(fd5970b5ba1d9e986515ae06c2e83f8bf20b3cdc) ) - - ROM_LOAD( "ic8", 0xa20, 0x020, CRC(84bcd9af) SHA1(5a5afeb6aedb8ac6ac49fb8da62df57fbd8b1780) ) /* main CPU banking */ - ROM_LOAD( "ic22", 0xa40, 0x020, CRC(84bcd9af) SHA1(5a5afeb6aedb8ac6ac49fb8da62df57fbd8b1780) ) /* coprocessor banking */ - ROM_LOAD( "ic42", 0xa60, 0x020, CRC(2ccfe10a) SHA1(d89ea91e5da436805fca9ded9b33609f4a862724) ) /* sound cpu banking */ -ROM_END - -ROM_START( shangkid ) - /* Main CPU - handles game logic */ - ROM_REGION( 0x12000, REGION_CPU1, 0 ) /* Z80 (NEC D780C-1) code */ - ROM_LOAD( "cr00ic02.bin", 0x00000, 0x4000, CRC(2e420377) SHA1(73eb916b1693ffab8049ea0d8d3503629fa27948) ) - ROM_LOAD( "cr01ic03.bin", 0x04000, 0x4000, CRC(161cd358) SHA1(2cc1c30b3d3215ddc7c7f96a3358ed50e0f850e3) ) - ROM_LOAD( "cr02ic04.bin", 0x08000, 0x2000, CRC(85b6e455) SHA1(3b2cd1e55355d24c014c5afe0212c6c9f0899a28) ) /* banked at 0x8000 */ - ROM_LOAD( "cr03ic05.bin", 0x10000, 0x2000, CRC(3b383863) SHA1(3fb10a7f89cf2387d70b0337916063fd4ec5f754) ) /* banked at 0x8000 */ - - /* The BBX coprocessor is burried in an epoxy block. It contains: - ** - a surface-mounted Z80 (TMPZ84C00P) - ** - LS245 logic IC - ** - battery backed ram chip Fujitsu MB8464 - ** - ** The BBX coprocessor receives graphics and sound-related commands from - ** the main CPU via shared RAM. It directly manages an AY8910, is - ** responsible for populating spriteram, and forwards appropriate sound - ** commands to the sample-playing CPU. - */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80: bbx module */ - ROM_LOAD( "bbx.bin", 0x0000, 0x2000, CRC(560c0abd) SHA1(165beadd55bc29195cc680825f71f3f7f60fa0f6) ) /* battery-backed RAM */ - ROM_LOAD( "cr04ic31.bin", 0x2000, 0x2000, CRC(cb207885) SHA1(b73458c959a4ebceb4c88931f8e3d1aff01dbaff) ) - ROM_LOAD( "cr05ic32.bin", 0x4000, 0x4000, CRC(cf3b8d55) SHA1(c2e196e2762dd7884f461fc2be37698b9ed1deef) ) - ROM_LOAD( "cr06ic33.bin", 0x8000, 0x2000, CRC(0f3bdbd8) SHA1(2e0e81425e4e5592d3e2c8395075720c2ad3f79a) ) - - /* The Sound CPU is a dedicated Sample Player */ - ROM_REGION( 0x1e000, REGION_CPU3, 0 ) /* Z80 (NEC D780C-1) */ - ROM_LOAD( "cr11ic51.bin", 0x00000, 0x4000, CRC(2e2d6afe) SHA1(1414a06b6cf14dfd69ca6cf35e4eb7d75af3f219) ) - ROM_LOAD( "cr12ic43.bin", 0x04000, 0x4000, CRC(dd29a0c8) SHA1(8411c31fefdce8c9233fe531b5bf3b6c43c03cba) ) - ROM_LOAD( "cr13ic44.bin", 0x08000, 0x4000, CRC(879d0de0) SHA1(b1422cf239381ac949867c42ca8101fa8dcac9d6) ) - ROM_LOAD( "cr07ic47.bin", 0x10000, 0x4000, CRC(20540f7c) SHA1(85c0b913948a67a34b25f0974fdd22e1dbb63166) ) - ROM_LOAD( "cr08ic48.bin", 0x14000, 0x2000, CRC(392f24db) SHA1(5bd68a4105717e18e79afba4c00733ad74b39875) ) - ROM_LOAD( "cr09ic49.bin", 0x18000, 0x4000, CRC(d50c96a8) SHA1(7fcf798b49b0827349366475dbbca1554df25cc4) ) - ROM_LOAD( "cr10ic50.bin", 0x1c000, 0x2000, CRC(873a5f2d) SHA1(32f806da319807bef68b5e810815ef2aba6ea0a7) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 8x8 tiles */ - ROM_LOAD( "cr20ic21.bin", 0x0000, 0x2000, CRC(eb3cbb11) SHA1(8d36d6f328263eb0b956c0bd752d2cac84795c1a) ) - ROM_LOAD( "cr21ic22.bin", 0x2000, 0x2000, CRC(7c6e75f4) SHA1(2a4a7971777136a476b8ca0b888e65a31a032a9e) ) - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 16x16 sprites */ - ROM_LOAD( "cr14i114.bin", 0x00000, 0x4000, CRC(ee1f348f) SHA1(7bfcdf645a2f406130444bb7b641a91351761c83) ) - ROM_LOAD( "cr15i113.bin", 0x04000, 0x4000, CRC(a46398bd) SHA1(2f968eb95f3406110b4b503fe4da735bb64b548b) ) - ROM_LOAD( "cr16i112.bin", 0x08000, 0x4000, CRC(cbed446c) SHA1(cc36ab32b42f6ec8ce574f040f7fb034b1351467) ) - ROM_LOAD( "cr17i111.bin", 0x0c000, 0x4000, CRC(b0a44330) SHA1(9d52856243e21ab906ee1701b6485411f2933707) ) - ROM_LOAD( "cr18ic99.bin", 0x10000, 0x4000, CRC(ff7efd7c) SHA1(95f83a9aa2f0845efe2c9c72d29e7a08c78d9b1f) ) - ROM_LOAD( "cr19i100.bin", 0x14000, 0x4000, CRC(f948f829) SHA1(c4305d4a04213af39413e1575eaee3905344c788) ) - - ROM_REGION( 0xa80, REGION_PROMS, 0 ) - ROM_LOAD( "cr31ic36.bin", 0x000, 0x100, CRC(9439590b) SHA1(cd07526d6373358bae6bfce8dbcab7d44472041f) ) /* 82S129 - red */ - ROM_LOAD( "cr30ic35.bin", 0x100, 0x100, CRC(324e295e) SHA1(9076e3da2edc8889bd635191e7687676b6fb4cec) ) /* 82S129 - green */ - ROM_LOAD( "cr28ic27.bin", 0x200, 0x100, CRC(375cba96) SHA1(fd3ba36588147a3252b800f1f86b2897e9605b8d) ) /* 82S129 - blue */ - - ROM_LOAD( "cr29ic28.bin", 0x300, 0x100, CRC(7ca273c1) SHA1(20d85547d96bea8b310c943c45e4978a7e5b5585) ) /* 82S129 - unknown */ - ROM_LOAD( "cr32ic69.bin", 0x400, 0x200, CRC(410d6f86) SHA1(3cfaef3702dbda3e7c7eb84a93561e36778aec3e) ) /* 82S147 - sprite-related (zoom?) */ - ROM_LOAD( "cr33-108.bin", 0x600, 0x200, CRC(d33c02ae) SHA1(1a2146ae404a5e8a701e1d547a8409a376d4bee4) ) /* 82S147 - sprite-related (zoom?) */ - - ROM_LOAD( "cr26ic12.bin", 0x800, 0x100, CRC(85b5e958) SHA1(f211b5122fccf84e4aa1556c0290b5cb83935386) ) /* 82S129 - tile pen priority? */ - ROM_LOAD( "cr27ic15.bin", 0x900, 0x100, CRC(f7a19fe2) SHA1(d88e0743aa858b132f636fcd5d493ccb1af82224) ) /* 82S129 - sprite pen transparency */ - - ROM_LOAD( "cr25ic8.bin", 0xa00, 0x020, CRC(c85e09ad) SHA1(f42e3840ec0e4720067eda7c536b6dcc540e63ff) ) /* 82S123 */ - ROM_LOAD( "cr22ic8.bin", 0xa20, 0x020, CRC(1a7e0b06) SHA1(648d58a4ad14f4b242e492cf302d6678d899cf4f) ) /* 82S123 - main CPU banking */ - ROM_LOAD( "cr23ic22.bin", 0xa40, 0x020, CRC(efb5f265) SHA1(3de15e03cb12956d34074abb48236537f2b47dba) ) /* 82S123 - coprocessor banking */ - ROM_LOAD( "cr24ic42.bin", 0xa60, 0x020, CRC(823878aa) SHA1(eb5026270890e5af9193e354b7e814f32238a9bf) ) /* 82S123 - sample player banking */ -ROM_END - -ROM_START( hiryuken ) - /* Main CPU - handles game logic */ - ROM_REGION( 0x12000, REGION_CPU1, 0 ) /* Z80 (NEC D780C-1) code */ - ROM_LOAD( "1.2", 0x00000, 0x4000, CRC(c7af7f2e) SHA1(b035a4230e10bcf0891e41423a51fb6169087b8e) ) - ROM_LOAD( "2.3", 0x04000, 0x4000, CRC(639afdb3) SHA1(50bd1deffb66049f101faceb108ee95eb3fe8ae6) ) - ROM_LOAD( "3.4", 0x08000, 0x2000, CRC(ad210482) SHA1(9a32bbaf601d3b00f0a79ce90bb9a32e8e608977) ) /* banked at 0x8000 */ - ROM_LOAD( "4.5", 0x10000, 0x2000, CRC(6518943a) SHA1(b5e78267d5a58c466c9ae20ba4f9c5e14e252287) ) /* banked at 0x8000 */ - - /* The BBX coprocessor is burried in an epoxy block. It contains: - ** - a surface-mounted Z80 (TMPZ84C00P) - ** - LS245 logic IC - ** - battery backed ram chip Fujitsu MB8464 - ** - ** The BBX coprocessor receives graphics and sound-related commands from - ** the main CPU via shared RAM. It directly manages an AY8910, is - ** responsible for populating spriteram, and forwards appropriate sound - ** commands to the sample-playing CPU. - */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80: bbx module */ - ROM_LOAD( "bbxj.bin", 0x0000, 0x2000, CRC(8def4aaf) SHA1(bfb9b2874294499c1026f2a4cd20f9cd0efd30f9) ) /* battery-backed RAM */ - ROM_LOAD( "5.31", 0x2000, 0x2000, CRC(8ae37ce7) SHA1(6299b0cd4e7348d4599126d61192924f19ae5401) ) - ROM_LOAD( "6.32", 0x4000, 0x4000, CRC(e835bb7f) SHA1(4ed8033994fe6ca268e20e30382dbe61eb8d2cf6) ) - ROM_LOAD( "7.33", 0x8000, 0x2000, CRC(3745ed36) SHA1(29a462a7d6e994cd2a917ce0b79fe342cfcc2417) ) - - /* The Sound CPU is a dedicated Sample Player */ - ROM_REGION( 0x1e000, REGION_CPU3, 0 ) /* Z80 (NEC D780C-1) */ - ROM_LOAD( "cr11ic51.bin", 0x00000, 0x4000, CRC(2e2d6afe) SHA1(1414a06b6cf14dfd69ca6cf35e4eb7d75af3f219) ) // 12.51 -// ROM_LOAD( "cr12ic43.bin", 0x04000, 0x4000, CRC(dd29a0c8) SHA1(8411c31fefdce8c9233fe531b5bf3b6c43c03cba) ) // not present in this set -// ROM_LOAD( "cr13ic44.bin", 0x08000, 0x4000, CRC(879d0de0) SHA1(b1422cf239381ac949867c42ca8101fa8dcac9d6) ) // not present in this set - ROM_LOAD( "cr07ic47.bin", 0x10000, 0x4000, CRC(20540f7c) SHA1(85c0b913948a67a34b25f0974fdd22e1dbb63166) ) // 8.47 - ROM_LOAD( "9.48", 0x14000, 0x4000, CRC(8da23cad) SHA1(051459d7b5395336d698b03f1cc8566f33b62c8b) ) - ROM_LOAD( "10.49", 0x18000, 0x4000, CRC(52b82fee) SHA1(99a2952af6493586745463c33b11ab69251af063) ) - ROM_LOAD( "cr10ic50.bin", 0x1c000, 0x2000, CRC(873a5f2d) SHA1(32f806da319807bef68b5e810815ef2aba6ea0a7) ) // 11.50 - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 8x8 tiles */ - ROM_LOAD( "21.21", 0x0000, 0x2000, CRC(ce20a1d4) SHA1(4d5708a1b8b3ac81afeebd82eb6a3d9763ef3d39) ) - ROM_LOAD( "22.22", 0x2000, 0x2000, CRC(26fc88bf) SHA1(663c88510b4df8153b10d1b0cc20b332aab5ca2e) ) - - ROM_REGION( 0x18000, REGION_GFX2, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 16x16 sprites */ - ROM_LOAD( "15.114", 0x00000, 0x4000, CRC(ed07854e) SHA1(caebd227c458717a5fc58daa6e774b1a09e68d34) ) - ROM_LOAD( "16.113", 0x04000, 0x4000, CRC(85cf1939) SHA1(8bf410a91aba40b0336e3c6c5b2c2b353aeea420) ) - ROM_LOAD( "cr16i112.bin", 0x08000, 0x4000, CRC(cbed446c) SHA1(cc36ab32b42f6ec8ce574f040f7fb034b1351467) ) // 17.112 - ROM_LOAD( "cr17i111.bin", 0x0c000, 0x4000, CRC(b0a44330) SHA1(9d52856243e21ab906ee1701b6485411f2933707) ) // 18.111 - ROM_LOAD( "cr18ic99.bin", 0x10000, 0x4000, CRC(ff7efd7c) SHA1(95f83a9aa2f0845efe2c9c72d29e7a08c78d9b1f) ) // 19.99 - ROM_LOAD( "20.100", 0x14000, 0x4000, CRC(4bc77ca0) SHA1(22a057c3c29ff9feb0afab0cb76b37c4a1363cb1) ) - - ROM_REGION( 0xa80, REGION_PROMS, 0 ) - ROM_LOAD( "r.36", 0x000, 0x100, CRC(65dec63d) SHA1(b481151687311f8d732f8c313f8af183a53dbc2f) ) /* 82S129 - red */ - ROM_LOAD( "g.35", 0x100, 0x100, CRC(e79de8cf) SHA1(65cc626c91830eafbf5a7e4ce7571cbb0ada91c1) ) /* 82S129 - green */ - ROM_LOAD( "b.27", 0x200, 0x100, CRC(d6ab3448) SHA1(efb879e7c5dd50ea70fb5ed5e4d3b87ab2c1b8b9) ) /* 82S129 - blue */ - - ROM_LOAD( "cr29ic28.bin", 0x300, 0x100, CRC(7ca273c1) SHA1(20d85547d96bea8b310c943c45e4978a7e5b5585) ) /* 82S129 - unknown */ // m.28 - ROM_LOAD( "cr32ic69.bin", 0x400, 0x200, CRC(410d6f86) SHA1(3cfaef3702dbda3e7c7eb84a93561e36778aec3e) ) /* 82S147 - sprite-related (zoom?) */ // ic69 - ROM_LOAD( "cr33-108.bin", 0x600, 0x200, CRC(d33c02ae) SHA1(1a2146ae404a5e8a701e1d547a8409a376d4bee4) ) /* 82S147 - sprite-related (zoom?) */ // ic108 - - ROM_LOAD( "cr26ic12.bin", 0x800, 0x100, CRC(85b5e958) SHA1(f211b5122fccf84e4aa1556c0290b5cb83935386) ) /* 82S129 - tile pen priority? */ // sc.12 - ROM_LOAD( "cr27ic15.bin", 0x900, 0x100, CRC(f7a19fe2) SHA1(d88e0743aa858b132f636fcd5d493ccb1af82224) ) /* 82S129 - sprite pen transparency */ // sp.15 - - ROM_LOAD( "cr25ic8.bin", 0xa00, 0x020, CRC(c85e09ad) SHA1(f42e3840ec0e4720067eda7c536b6dcc540e63ff) ) /* 82S123 */ // a.8 - ROM_LOAD( "cr22ic8.bin", 0xa20, 0x020, CRC(1a7e0b06) SHA1(648d58a4ad14f4b242e492cf302d6678d899cf4f) ) /* 82S123 - main CPU banking */ // 1.8 - ROM_LOAD( "cr23ic22.bin", 0xa40, 0x020, CRC(efb5f265) SHA1(3de15e03cb12956d34074abb48236537f2b47dba) ) /* 82S123 - coprocessor banking */ // 2.22 - ROM_LOAD( "cr24ic42.bin", 0xa60, 0x020, CRC(823878aa) SHA1(eb5026270890e5af9193e354b7e814f32238a9bf) ) /* 82S123 - sample player banking */ // 3.42 -ROM_END - -ROM_START( dynamski ) - ROM_REGION( 0x12000, REGION_CPU1, 0 ) /* Z80 code */ - ROM_LOAD( "dynski.1", 0x00000, 0x1000, CRC(30191160) SHA1(5ffa3355f53e4be65bd96101088d2d7b66490141) ) /* code */ - ROM_LOAD( "dynski.2", 0x01000, 0x1000, CRC(5e08a0b0) SHA1(89398752e8ea1ffd8ec8392f5c8e20f25cf8fdfb) ) - ROM_LOAD( "dynski.3", 0x02000, 0x1000, CRC(29cfd740) SHA1(a5d6b7b59e631f387788f29e8f029eaf00d1ea3f) ) - ROM_LOAD( "dynski.4", 0x03000, 0x1000, CRC(e1d47776) SHA1(d08985a5b523706bc2b3e090373a72b781116a80) ) - ROM_LOAD( "dynski.5", 0x04000, 0x1000, CRC(e39aba1b) SHA1(133d6280abccdca248b553e80dedcc4682ae8d70) ) - ROM_LOAD( "dynski.6", 0x05000, 0x1000, CRC(95780608) SHA1(16b28e014ec5602df48e382e2b63d14acb60b9ba) ) - ROM_LOAD( "dynski.7", 0x06000, 0x1000, CRC(b88d328b) SHA1(5229fcb0ed1067770fcd47bec674a6fd7b999484) ) - ROM_LOAD( "dynski.8", 0x07000, 0x1000, CRC(8db5e691) SHA1(ccacfb7cd30f03de95690bbd32ab46e39d084244) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 8x8 tiles */ - ROM_LOAD( "dynski8.3e", 0x0000, 0x2000, CRC(32c354dc) SHA1(6f73c9fc3802ec5f349a6088d7eaee5876c901de) ) - ROM_LOAD( "dynski9.2e", 0x2000, 0x2000, CRC(80a6290c) SHA1(3a1581451802bf2e822fba1084800e6de9bd0f7a) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE|ROMREGION_INVERT ) /* 16x16 sprites */ - ROM_LOAD( "dynski5.14b", 0x0000, 0x2000, CRC(aa4ac6e2) SHA1(b6f7cb7310be2a12ca17dfd0ee3526e0522eb85b) ) - ROM_LOAD( "dynski6.15b", 0x2000, 0x2000, CRC(47e76886) SHA1(c42bd3d973cf17ec265852527085085bcc674b18) ) - ROM_LOAD( "dynski7.14d", 0x4000, 0x2000, CRC(a153dfa9) SHA1(c81dbdce2e11e9d6d8465f400a048d7688745232) ) - - ROM_REGION( 0x240, REGION_PROMS, 0 ) - ROM_LOAD( "dynskic.15g", 0x000, 0x020, CRC(9333a5e4) SHA1(11025f53c98c2ae21e9d4f95da86bba4703a52bc) ) /* palette */ - ROM_LOAD( "dynskic.15f", 0x020, 0x020, CRC(3869514b) SHA1(1ef062284e52777ec6e269368a16b9b357a2647a) ) /* palette */ - ROM_LOAD( "dynski.11e", 0x040, 0x100, CRC(e625aa09) SHA1(c10371f1adf7245815c0bdcb24458c7b04edd5b9) ) /* lookup table */ - ROM_LOAD( "dynski.4g", 0x140, 0x100, CRC(761fe465) SHA1(87741a6e4d14440073aaed3a8a15bc5e30b8fcfc) ) /* lookup table */ -ROM_END - - -GAME( 1984, dynamski, 0, dynamski, dynamski, 0, ROT90, "Taiyo", "Dynamic Ski", GAME_NO_COCKTAIL ) -GAME( 1984, chinhero, 0, chinhero, chinhero, chinhero, ROT90, "Taiyo", "Chinese Hero", 0 ) -GAME( 1984, chinher2, chinhero, chinhero, chinhero, chinhero, ROT90, "Taiyo", "Chinese Hero (older)", 0 ) -GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", GAME_NO_COCKTAIL ) -GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid, ROT0, "[Nihon Game] (Taito license)", "Hokuha Syourin Hiryu no Ken", GAME_NO_COCKTAIL ) diff --git a/src/drivers/sidearms.c b/src/drivers/sidearms.c deleted file mode 100644 index d75262dbf..000000000 --- a/src/drivers/sidearms.c +++ /dev/null @@ -1,1226 +0,0 @@ -/*************************************************************************** - - Sidearms - ======== - - Driver provided by Paul Leaman - - -Change Log: - -JUL-2003 AAT - -- cleaned vidhrdw and corrected screen flipping - -JUN-2003 (Curt Coder) - -- converted driver to use tilemaps - -FEB-2003 AAT - -- added preliminary starfield emulation. circuit transcribed from - schematics but still not perfect. - -- rewrote video update and the following bugs seem to be fixed: - - sidearms060red: attract mode and stage six crashing - sidearms055gre: strange background color - turtship37b5yel: various graphics glitches and priority problems - -Notes: - - Unknown PROMs are mostly used for timing. Only the first four sprite - encoding parameters have been identified, the other 28(!) are - believed to be line-buffer controls. - -***************************************************************************/ - -#include "driver.h" -#include "sound/2203intf.h" -#include "sound/2151intf.h" - -extern UINT8 *sidearms_bg_scrollx; -extern UINT8 *sidearms_bg_scrolly; - -extern WRITE8_HANDLER( sidearms_videoram_w ); -extern WRITE8_HANDLER( sidearms_colorram_w ); -extern WRITE8_HANDLER( sidearms_star_scrollx_w ); -extern WRITE8_HANDLER( sidearms_star_scrolly_w ); -extern WRITE8_HANDLER( sidearms_c804_w ); -extern WRITE8_HANDLER( sidearms_gfxctrl_w ); - -extern PALETTE_INIT( sidearms ); -extern VIDEO_START( sidearms ); -extern VIDEO_UPDATE( sidearms ); -extern VIDEO_EOF( sidearms ); - -int sidearms_gameid; - -static WRITE8_HANDLER( sidearms_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - - - /* bits 0 and 1 select the ROM bank */ - bankaddress = 0x10000 + (data & 0x0f) * 0x4000; - memory_set_bankptr(1,&RAM[bankaddress]); -} - - - - -/* Turtle Ship input ports are rotated 90 degrees */ -static READ8_HANDLER( turtship_ports_r ) -{ - int i,res; - - - res = 0; - for (i = 0;i < 8;i++) - res |= ((readinputport(i) >> offset) & 1) << i; - - return res; -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc800, 0xc800) AM_READ(input_port_0_r) - AM_RANGE(0xc801, 0xc801) AM_READ(input_port_1_r) - AM_RANGE(0xc802, 0xc802) AM_READ(input_port_2_r) - AM_RANGE(0xc803, 0xc803) AM_READ(input_port_3_r) - AM_RANGE(0xc804, 0xc804) AM_READ(input_port_4_r) - AM_RANGE(0xc805, 0xc805) AM_READ(input_port_5_r) - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE(&paletteram) - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(sidearms_bankswitch_w) - AM_RANGE(0xc802, 0xc802) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xc804, 0xc804) AM_WRITE(sidearms_c804_w) - AM_RANGE(0xc805, 0xc805) AM_WRITE(sidearms_star_scrollx_w) - AM_RANGE(0xc806, 0xc806) AM_WRITE(sidearms_star_scrolly_w) - AM_RANGE(0xc808, 0xc809) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrollx) - AM_RANGE(0xc80a, 0xc80b) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrolly) - AM_RANGE(0xc80c, 0xc80c) AM_WRITE(sidearms_gfxctrl_w) /* background and sprite enable */ - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(sidearms_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(sidearms_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( turtship_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xe7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r) - AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( turtship_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xdfff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE(&paletteram) - AM_RANGE(0xe400, 0xe7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w) - AM_RANGE(0xe801, 0xe801) AM_WRITE(sidearms_bankswitch_w) - AM_RANGE(0xe802, 0xe802) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xe804, 0xe804) AM_WRITE(sidearms_c804_w) - AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w) - AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w) - AM_RANGE(0xe808, 0xe809) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrollx) - AM_RANGE(0xe80a, 0xe80b) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrolly) - AM_RANGE(0xe80c, 0xe80c) AM_WRITE(sidearms_gfxctrl_w) /* background and sprite enable */ - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(sidearms_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xf800, 0xffff) AM_WRITE(sidearms_colorram_w) AM_BASE(&colorram) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) - AM_RANGE(0xf000, 0xf000) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0xf002, 0xf002) AM_READ(YM2203_status_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xf000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0xf001, 0xf001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xf002, 0xf002) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xf003, 0xf003) AM_WRITE(YM2203_write_port_1_w) -ADDRESS_MAP_END - -/* Whizz */ - -static WRITE8_HANDLER( whizz_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - int bank = 0; - - switch (data & 0xC0) - { - case 0x00 : bank = 0; break; - case 0x40 : bank = 2; break; - case 0x80 : bank = 1; break; - case 0xC0 : bank = 3; break; - } - - bankaddress = 0x10000 + bank * 0x4000; - memory_set_bankptr(1,&RAM[bankaddress]); -} - -static ADDRESS_MAP_START( whizz_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc800, 0xc800) AM_READ(input_port_0_r) - AM_RANGE(0xc801, 0xc801) AM_READ(input_port_1_r) - AM_RANGE(0xc802, 0xc802) AM_READ(input_port_2_r) - AM_RANGE(0xc803, 0xc803) AM_READ(input_port_3_r) - AM_RANGE(0xc804, 0xc804) AM_READ(input_port_4_r) - AM_RANGE(0xc805, 0xc805) AM_READ(input_port_5_r) - AM_RANGE(0xc806, 0xc806) AM_READ(input_port_6_r) - AM_RANGE(0xc807, 0xc807) AM_READ(input_port_7_r) - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( whizz_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE(&paletteram) - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(whizz_bankswitch_w) - AM_RANGE(0xc802, 0xc802) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xc803, 0xc803) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xc804, 0xc804) AM_WRITE(sidearms_c804_w) - AM_RANGE(0xc805, 0xc805) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w) - AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w) - AM_RANGE(0xc808, 0xc809) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrollx) - AM_RANGE(0xc80a, 0xc80b) AM_WRITE(MWA8_RAM) AM_BASE(&sidearms_bg_scrolly) - AM_RANGE(0xc80c, 0xc80c) AM_WRITE(sidearms_gfxctrl_w) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(sidearms_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(sidearms_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( whizz_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( whizz_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( whizz_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( whizz_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - - -INPUT_PORTS_START( sidearms ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_DIPNAME( 0x08, 0x08, "Freeze" ) /* I'm not sure it's really a dip switch */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - 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_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x07, "0 (Easiest)" ) - PORT_DIPSETTING( 0x06, "1" ) - PORT_DIPSETTING( 0x05, "2" ) - PORT_DIPSETTING( 0x04, "3 (Normal)" ) - PORT_DIPSETTING( 0x03, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x01, "6" ) - PORT_DIPSETTING( 0x00, "7 (Hardest)" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "100000" ) - PORT_DIPSETTING( 0x20, "100000 100000" ) - PORT_DIPSETTING( 0x10, "150000 150000" ) - PORT_DIPSETTING( 0x00, "200000 200000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) /* not sure, but likely */ -INPUT_PORTS_END - -INPUT_PORTS_START( turtship ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x01, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0xe0, 0xa0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0xe0, "1" ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0xa0, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) - PORT_DIPSETTING( 0x40, "6" ) - PORT_DIPSETTING( 0x80, "7" ) - PORT_DIPSETTING( 0x00, "8" ) - - PORT_START_TAG("DSW1") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "Every 150000" ) - PORT_DIPSETTING( 0x00, "Every 200000" ) - PORT_DIPSETTING( 0x0c, "150000 only" ) - PORT_DIPSETTING( 0x04, "200000 only" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - /* 0xc0 1 Coin/1 Credit */ -INPUT_PORTS_END - -INPUT_PORTS_START( dyger ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* seems to be 1-player only */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* seems to be 1-player only */ - - PORT_START_TAG("DSW0") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x02, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0xe0, 0xa0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0xe0, "1" ) - PORT_DIPSETTING( 0x60, "2" ) - PORT_DIPSETTING( 0xa0, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) - PORT_DIPSETTING( 0x40, "6" ) - PORT_DIPSETTING( 0x80, "7" ) - PORT_DIPSETTING( 0x00, "8" ) - - PORT_START_TAG("DSW1") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x04, "Every 150000" ) - PORT_DIPSETTING( 0x00, "Every 200000" ) - PORT_DIPSETTING( 0x0c, "150000 only" ) - PORT_DIPSETTING( 0x08, "200000 only" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) - /* 0xc0 1 Coin/1 Credit */ -INPUT_PORTS_END - -INPUT_PORTS_START( whizz ) - PORT_START_TAG("DSW0") /* 8-bit */ - PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x07, "0 (Easiest)" ) - PORT_DIPSETTING( 0x06, "1" ) - PORT_DIPSETTING( 0x05, "2" ) - PORT_DIPSETTING( 0x04, "3 (Normal)" ) - PORT_DIPSETTING( 0x03, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x01, "6" ) - PORT_DIPSETTING( 0x00, "7 (Hardest)" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW1") /* 8-bit */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "100000 Only" ) - PORT_DIPSETTING( 0x10, "Every 100000" ) - PORT_DIPSETTING( 0x08, "Every 150000" ) - PORT_DIPSETTING( 0x00, "Every 200000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") /* 8-bit */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN4") /* 8-bit */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN5") /* 8-bit */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_VBLANK ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), /* 1024 characters */ - 2, /* 2 bits per pixel */ - { 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 /* every char takes 16 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,2), /* 2048 sprites */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 32,32, /* 32*32 tiles */ - RGN_FRAC(1,2), /* 512 tiles */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, - { - 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 32*16+0, 32*16+1, 32*16+2, 32*16+3, 32*16+8+0, 32*16+8+1, 32*16+8+2, 32*16+8+3, - 64*16+0, 64*16+1, 64*16+2, 64*16+3, 64*16+8+0, 64*16+8+1, 64*16+8+2, 64*16+8+3, - 96*16+0, 96*16+1, 96*16+2, 96*16+3, 96*16+8+0, 96*16+8+1, 96*16+8+2, 96*16+8+3, - }, - { - 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16, - 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 - }, - 256*8 /* every tile takes 256 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 768, 64 }, /* colors 768-1023 */ - { REGION_GFX2, 0, &tilelayout, 0, 32 }, /* colors 0-511 */ - { REGION_GFX3, 0, &spritelayout, 512, 16 }, /* colors 512-767 */ - { -1 } /* end of array */ -}; - - - -static const gfx_layout turtship_tilelayout = -{ - 32,32, /* 32*32 tiles */ - RGN_FRAC(1,2), /* 768 tiles */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, - { - 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3, - 32*16+0, 32*16+1, 32*16+2, 32*16+3, 32*16+8+0, 32*16+8+1, 32*16+8+2, 32*16+8+3, - 64*16+0, 64*16+1, 64*16+2, 64*16+3, 64*16+8+0, 64*16+8+1, 64*16+8+2, 64*16+8+3, - 96*16+0, 96*16+1, 96*16+2, 96*16+3, 96*16+8+0, 96*16+8+1, 96*16+8+2, 96*16+8+3, - }, - { - 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16, - 24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 - }, - 256*8 /* every tile takes 256 consecutive bytes */ -}; - -static const gfx_decode turtship_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 768, 64 }, /* colors 768-1023 */ - { REGION_GFX2, 0, &turtship_tilelayout, 0, 32 }, /* colors 0-511 */ - { REGION_GFX3, 0, &spritelayout, 512, 16 }, /* colors 512-767 */ - { -1 } /* end of array */ -}; - -/* handler called by the 2203 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2203interface ym2203_interface = -{ - 0,0,0,0,irqhandler -}; - -static struct YM2151interface whizz_ym2151_interface = -{ - irqhandler -}; - -static MACHINE_DRIVER_START( sidearms ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(sidearms) - MDRV_VIDEO_EOF(sidearms) - MDRV_VIDEO_UPDATE(sidearms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.25) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( turtship ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(turtship_readmem,turtship_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MDRV_GFXDECODE(turtship_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(sidearms) - MDRV_VIDEO_EOF(sidearms) - MDRV_VIDEO_UPDATE(sidearms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.25) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( whizz ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(whizz_readmem,whizz_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(whizz_sound_readmem,whizz_sound_writemem) - MDRV_CPU_IO_MAP(whizz_readport,whizz_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(1000) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) - MDRV_GFXDECODE(turtship_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(sidearms) - MDRV_VIDEO_UPDATE(sidearms) - MDRV_VIDEO_EOF(sidearms) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(whizz_ym2151_interface) - MDRV_SOUND_ROUTE(0, "mono", 1.0) - MDRV_SOUND_ROUTE(1, "mono", 1.0) -MACHINE_DRIVER_END - - - - -ROM_START( sidearms ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "sa03.bin", 0x00000, 0x08000, CRC(e10fe6a0) SHA1(ae59461768d044f14b9aac3e4e491c76cec7adac) ) /* CODE */ - ROM_LOAD( "a_14e.rom", 0x10000, 0x08000, CRC(4925ed03) SHA1(b11dbd9889db89cff008ca21beb6b1b70d983e16) ) /* 0+1 */ - ROM_LOAD( "a_12e.rom", 0x18000, 0x08000, CRC(81d0ece7) SHA1(5c1d154f9c1de6b5f5d7abf5d413e9c493461e6f) ) /* 2+3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a_04k.rom", 0x0000, 0x8000, CRC(34efe2d2) SHA1(e1d8895c113e4dee1a132e2471d75dfa6c36b620) ) - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* starfield data */ - ROM_LOAD( "b_11j.rom", 0x0000, 0x8000, CRC(134dc35b) SHA1(6360c1efa7c4e1d6d817a97ca43dd4af8ed6afe5) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a_10j.rom", 0x00000, 0x4000, CRC(651fef75) SHA1(9c821a2ee30c222987f0d4192133776490d6a4e0) ) /* characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b_13d.rom", 0x00000, 0x8000, CRC(3c59afe1) SHA1(5459a5795cf13012674993aa55bbd39e9a5c2f1b) ) /* tiles */ - ROM_LOAD( "b_13e.rom", 0x08000, 0x8000, CRC(64bc3b77) SHA1(54fe6f258fda509a92eb0f5aa238102efce729e0) ) - ROM_LOAD( "b_13f.rom", 0x10000, 0x8000, CRC(e6bcea6f) SHA1(19477e284967beafc4e7cd0d0da3534eb6dec388) ) - ROM_LOAD( "b_13g.rom", 0x18000, 0x8000, CRC(c71a3053) SHA1(963e105aa0b0174e8aa5e1f7676c5c604ca72d1c) ) - ROM_LOAD( "b_14d.rom", 0x20000, 0x8000, CRC(826e8a97) SHA1(ad5ed9a81805dde54fb2703345b2ab7b56853ec6) ) - ROM_LOAD( "b_14e.rom", 0x28000, 0x8000, CRC(6cfc02a4) SHA1(491e880e85d5256fa2eea6d0fb402f0a1176b675) ) - ROM_LOAD( "b_14f.rom", 0x30000, 0x8000, CRC(9b9f6730) SHA1(0f8fe5dc32ee50ebb2051c0c0c4d635582416317) ) - ROM_LOAD( "b_14g.rom", 0x38000, 0x8000, CRC(ef6af630) SHA1(499b17eeb5e7256ede477510b0547df520316996) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b_11b.rom", 0x00000, 0x8000, CRC(eb6f278c) SHA1(15e250aa98ee69ac3983d4511976c35833b37cab) ) /* sprites */ - ROM_LOAD( "b_13b.rom", 0x08000, 0x8000, CRC(e91b4014) SHA1(6557344ce8bc05309ab8ebe846871ed554b256b8) ) - ROM_LOAD( "b_11a.rom", 0x10000, 0x8000, CRC(2822c522) SHA1(00b3cab899e5ac1af6300f2ec2a54303df9ab014) ) - ROM_LOAD( "b_13a.rom", 0x18000, 0x8000, CRC(3e8a9f75) SHA1(b1bfb7604791950aa0454b68b24f6ad3b9131be8) ) - ROM_LOAD( "b_12b.rom", 0x20000, 0x8000, CRC(86e43eda) SHA1(c33b0ab6f7f0f886410a3943988b737d175635be) ) - ROM_LOAD( "b_14b.rom", 0x28000, 0x8000, CRC(076e92d1) SHA1(27144834b5b2849be8c46e97aaaeaa8b304ea810) ) - ROM_LOAD( "b_12a.rom", 0x30000, 0x8000, CRC(ce107f3c) SHA1(2235281449247cb2446b008b36077788c5b15026) ) - ROM_LOAD( "b_14a.rom", 0x38000, 0x8000, CRC(dba06076) SHA1(87b3b3437bc4bd727ce7e34dd914e6fe23bcac3d) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "b_03d.rom", 0x0000, 0x8000, CRC(6f348008) SHA1(b500bc32ba47e9cc9dcf2254b9455ac4d61992db) ) - - ROM_REGION( 0x0320, REGION_PROMS, 0 ) - ROM_LOAD( "63s141.16h", 0x0000, 0x0100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // timing - ROM_LOAD( "63s141.11h", 0x0100, 0x0100, CRC(a6e4d68f) SHA1(b9367e0c959cdf0397d33a49d778a66a407572b7) ) // color mixing - ROM_LOAD( "63s141.15h", 0x0200, 0x0100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // timing - ROM_LOAD( "63s081.3j", 0x0300, 0x0020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // unknown -ROM_END - -ROM_START( sidearmr ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "03", 0x00000, 0x08000, CRC(9a799c45) SHA1(cf6836108506929ee2449546a4867a7cbf00bcc8) ) /* CODE */ - ROM_LOAD( "a_14e.rom", 0x10000, 0x08000, CRC(4925ed03) SHA1(b11dbd9889db89cff008ca21beb6b1b70d983e16) ) /* 0+1 */ - ROM_LOAD( "a_12e.rom", 0x18000, 0x08000, CRC(81d0ece7) SHA1(5c1d154f9c1de6b5f5d7abf5d413e9c493461e6f) ) /* 2+3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a_04k.rom", 0x0000, 0x8000, CRC(34efe2d2) SHA1(e1d8895c113e4dee1a132e2471d75dfa6c36b620) ) - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* starfield data */ - ROM_LOAD( "b_11j.rom", 0x0000, 0x8000, CRC(134dc35b) SHA1(6360c1efa7c4e1d6d817a97ca43dd4af8ed6afe5) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a_10j.rom", 0x00000, 0x4000, CRC(651fef75) SHA1(9c821a2ee30c222987f0d4192133776490d6a4e0) ) /* characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b_13d.rom", 0x00000, 0x8000, CRC(3c59afe1) SHA1(5459a5795cf13012674993aa55bbd39e9a5c2f1b) ) /* tiles */ - ROM_LOAD( "b_13e.rom", 0x08000, 0x8000, CRC(64bc3b77) SHA1(54fe6f258fda509a92eb0f5aa238102efce729e0) ) - ROM_LOAD( "b_13f.rom", 0x10000, 0x8000, CRC(e6bcea6f) SHA1(19477e284967beafc4e7cd0d0da3534eb6dec388) ) - ROM_LOAD( "b_13g.rom", 0x18000, 0x8000, CRC(c71a3053) SHA1(963e105aa0b0174e8aa5e1f7676c5c604ca72d1c) ) - ROM_LOAD( "b_14d.rom", 0x20000, 0x8000, CRC(826e8a97) SHA1(ad5ed9a81805dde54fb2703345b2ab7b56853ec6) ) - ROM_LOAD( "b_14e.rom", 0x28000, 0x8000, CRC(6cfc02a4) SHA1(491e880e85d5256fa2eea6d0fb402f0a1176b675) ) - ROM_LOAD( "b_14f.rom", 0x30000, 0x8000, CRC(9b9f6730) SHA1(0f8fe5dc32ee50ebb2051c0c0c4d635582416317) ) - ROM_LOAD( "b_14g.rom", 0x38000, 0x8000, CRC(ef6af630) SHA1(499b17eeb5e7256ede477510b0547df520316996) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b_11b.rom", 0x00000, 0x8000, CRC(eb6f278c) SHA1(15e250aa98ee69ac3983d4511976c35833b37cab) ) /* sprites */ - ROM_LOAD( "b_13b.rom", 0x08000, 0x8000, CRC(e91b4014) SHA1(6557344ce8bc05309ab8ebe846871ed554b256b8) ) - ROM_LOAD( "b_11a.rom", 0x10000, 0x8000, CRC(2822c522) SHA1(00b3cab899e5ac1af6300f2ec2a54303df9ab014) ) - ROM_LOAD( "b_13a.rom", 0x18000, 0x8000, CRC(3e8a9f75) SHA1(b1bfb7604791950aa0454b68b24f6ad3b9131be8) ) - ROM_LOAD( "b_12b.rom", 0x20000, 0x8000, CRC(86e43eda) SHA1(c33b0ab6f7f0f886410a3943988b737d175635be) ) - ROM_LOAD( "b_14b.rom", 0x28000, 0x8000, CRC(076e92d1) SHA1(27144834b5b2849be8c46e97aaaeaa8b304ea810) ) - ROM_LOAD( "b_12a.rom", 0x30000, 0x8000, CRC(ce107f3c) SHA1(2235281449247cb2446b008b36077788c5b15026) ) - ROM_LOAD( "b_14a.rom", 0x38000, 0x8000, CRC(dba06076) SHA1(87b3b3437bc4bd727ce7e34dd914e6fe23bcac3d) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "b_03d.rom", 0x0000, 0x8000, CRC(6f348008) SHA1(b500bc32ba47e9cc9dcf2254b9455ac4d61992db) ) - - ROM_REGION( 0x0320, REGION_PROMS, 0 ) - ROM_LOAD( "63s141.16h", 0x0000, 0x0100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // timing - ROM_LOAD( "63s141.11h", 0x0100, 0x0100, CRC(a6e4d68f) SHA1(b9367e0c959cdf0397d33a49d778a66a407572b7) ) // color mixing - ROM_LOAD( "63s141.15h", 0x0200, 0x0100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // timing - ROM_LOAD( "63s081.3j", 0x0300, 0x0020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // unknown -ROM_END - -ROM_START( sidearjp ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "a_15e.rom", 0x00000, 0x08000, CRC(61ceb0cc) SHA1(bacf28e5e02b90a9d404c3ade0267e0a7cd73cd8) ) /* CODE */ - ROM_LOAD( "a_14e.rom", 0x10000, 0x08000, CRC(4925ed03) SHA1(b11dbd9889db89cff008ca21beb6b1b70d983e16) ) /* 0+1 */ - ROM_LOAD( "a_12e.rom", 0x18000, 0x08000, CRC(81d0ece7) SHA1(5c1d154f9c1de6b5f5d7abf5d413e9c493461e6f) ) /* 2+3 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a_04k.rom", 0x0000, 0x8000, CRC(34efe2d2) SHA1(e1d8895c113e4dee1a132e2471d75dfa6c36b620) ) - - ROM_REGION( 0x08000, REGION_USER1, 0 ) /* starfield data */ - ROM_LOAD( "b_11j.rom", 0x0000, 0x8000, CRC(134dc35b) SHA1(6360c1efa7c4e1d6d817a97ca43dd4af8ed6afe5) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a_10j.rom", 0x00000, 0x4000, CRC(651fef75) SHA1(9c821a2ee30c222987f0d4192133776490d6a4e0) ) /* characters */ - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "b_13d.rom", 0x00000, 0x8000, CRC(3c59afe1) SHA1(5459a5795cf13012674993aa55bbd39e9a5c2f1b) ) /* tiles */ - ROM_LOAD( "b_13e.rom", 0x08000, 0x8000, CRC(64bc3b77) SHA1(54fe6f258fda509a92eb0f5aa238102efce729e0) ) - ROM_LOAD( "b_13f.rom", 0x10000, 0x8000, CRC(e6bcea6f) SHA1(19477e284967beafc4e7cd0d0da3534eb6dec388) ) - ROM_LOAD( "b_13g.rom", 0x18000, 0x8000, CRC(c71a3053) SHA1(963e105aa0b0174e8aa5e1f7676c5c604ca72d1c) ) - ROM_LOAD( "b_14d.rom", 0x20000, 0x8000, CRC(826e8a97) SHA1(ad5ed9a81805dde54fb2703345b2ab7b56853ec6) ) - ROM_LOAD( "b_14e.rom", 0x28000, 0x8000, CRC(6cfc02a4) SHA1(491e880e85d5256fa2eea6d0fb402f0a1176b675) ) - ROM_LOAD( "b_14f.rom", 0x30000, 0x8000, CRC(9b9f6730) SHA1(0f8fe5dc32ee50ebb2051c0c0c4d635582416317) ) - ROM_LOAD( "b_14g.rom", 0x38000, 0x8000, CRC(ef6af630) SHA1(499b17eeb5e7256ede477510b0547df520316996) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "b_11b.rom", 0x00000, 0x8000, CRC(eb6f278c) SHA1(15e250aa98ee69ac3983d4511976c35833b37cab) ) /* sprites */ - ROM_LOAD( "b_13b.rom", 0x08000, 0x8000, CRC(e91b4014) SHA1(6557344ce8bc05309ab8ebe846871ed554b256b8) ) - ROM_LOAD( "b_11a.rom", 0x10000, 0x8000, CRC(2822c522) SHA1(00b3cab899e5ac1af6300f2ec2a54303df9ab014) ) - ROM_LOAD( "b_13a.rom", 0x18000, 0x8000, CRC(3e8a9f75) SHA1(b1bfb7604791950aa0454b68b24f6ad3b9131be8) ) - ROM_LOAD( "b_12b.rom", 0x20000, 0x8000, CRC(86e43eda) SHA1(c33b0ab6f7f0f886410a3943988b737d175635be) ) - ROM_LOAD( "b_14b.rom", 0x28000, 0x8000, CRC(076e92d1) SHA1(27144834b5b2849be8c46e97aaaeaa8b304ea810) ) - ROM_LOAD( "b_12a.rom", 0x30000, 0x8000, CRC(ce107f3c) SHA1(2235281449247cb2446b008b36077788c5b15026) ) - ROM_LOAD( "b_14a.rom", 0x38000, 0x8000, CRC(dba06076) SHA1(87b3b3437bc4bd727ce7e34dd914e6fe23bcac3d) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "b_03d.rom", 0x0000, 0x8000, CRC(6f348008) SHA1(b500bc32ba47e9cc9dcf2254b9455ac4d61992db) ) - - ROM_REGION( 0x0320, REGION_PROMS, 0 ) - ROM_LOAD( "63s141.16h", 0x0000, 0x0100, CRC(75af3553) SHA1(14da009592877a6097b34ea844fa897ceda7465e) ) // timing - ROM_LOAD( "63s141.11h", 0x0100, 0x0100, CRC(a6e4d68f) SHA1(b9367e0c959cdf0397d33a49d778a66a407572b7) ) // color mixing - ROM_LOAD( "63s141.15h", 0x0200, 0x0100, CRC(c47c182a) SHA1(47d6139256e6838f633a04084bd0a7a84912f7fb) ) // timing - ROM_LOAD( "63s081.3j", 0x0300, 0x0020, CRC(c5817816) SHA1(cc642daafa0bcb160ee04e74e2d168fd44087608) ) // unknown -ROM_END - -ROM_START( turtship ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "t-3.bin", 0x00000, 0x08000, CRC(b73ed7f2) SHA1(bb98fe41b989d6568fe8cf1900a0d15c176b61a0) ) - ROM_LOAD( "t-2.3g", 0x10000, 0x08000, CRC(2327b35a) SHA1(bf7b5e11c3f75aff7d09c0fc4ad61fb4bcb38100) ) - ROM_LOAD( "t-1.bin", 0x18000, 0x08000, CRC(a258ffec) SHA1(caa689607ebe450a68736933dbfaf6bf9b6d3487) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t-4.8a", 0x00000, 0x08000, CRC(1cbe48e8) SHA1(6ac5981d36a44595bb8dc847c54c7be7b374f82c) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t-5.8k", 0x00000, 0x04000, CRC(35c3dbc5) SHA1(6700c72e5e0f7bd1429d342cb5d3daccd6b1b70f) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "t-8.1d", 0x00000, 0x10000, CRC(30a857f0) SHA1(a2d261e8104d0459067bdbdd71662fe8d6917da1) ) /* tiles */ - ROM_LOAD( "t-10.3c", 0x10000, 0x10000, CRC(76bb73bb) SHA1(4c4acd205421674878948a0d2bed6032bde3f97f) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "t-11.3d", 0x20000, 0x10000, CRC(53da6cb1) SHA1(52720746298adb01828f959f81b385d268c94343) ) - ROM_LOAD( "t-6.1a", 0x40000, 0x10000, CRC(45ce41ad) SHA1(6e2f559adc4aee80326b3ae5ae6c6688a3491962) ) - ROM_LOAD( "t-7.1c", 0x50000, 0x10000, CRC(3ccf11b9) SHA1(777cc853bfcf2db4027b35d516fa5bef8b010e63) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "t-9.3a", 0x60000, 0x10000, CRC(44762916) SHA1(3427066fc02d1b9b71a59ac41d3332d5cd8d1423) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t-13.1i", 0x00000, 0x10000, CRC(599f5246) SHA1(b7e5bbff3b6117613744970c8680b7bc171516bd) ) /* sprites */ - ROM_LOAD( "t-15.bin", 0x10000, 0x10000, CRC(6489b7b4) SHA1(438d088db131f5bb4ef2124eee814b25c92115e3) ) - ROM_LOAD( "t-12.1g", 0x20000, 0x10000, CRC(fb54cd33) SHA1(49f7b728a4de8b93f5fd929f59a65509e4556161) ) - ROM_LOAD( "t-14.bin", 0x30000, 0x10000, CRC(1b67b674) SHA1(a77ef1b4ba4d544aa230acf779f9c339d0fc55db) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "t-16.9f", 0x00000, 0x08000, CRC(1a5a45d7) SHA1(51ceeae938fbda207c3f8ce65593d271dc8c4a41) ) -ROM_END - -ROM_START( turtshij ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "t-3.5g", 0x00000, 0x08000, CRC(0863fc1c) SHA1(b583e06e05e466c2344a4a420a47227c9ab8705c) ) - ROM_LOAD( "t-2.3g", 0x10000, 0x08000, CRC(2327b35a) SHA1(bf7b5e11c3f75aff7d09c0fc4ad61fb4bcb38100) ) - ROM_LOAD( "t-1.3e", 0x18000, 0x08000, CRC(845a9ab0) SHA1(f1455aeca92d129c7ed145d76e5093f41ce62ccb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t-4.8a", 0x00000, 0x08000, CRC(1cbe48e8) SHA1(6ac5981d36a44595bb8dc847c54c7be7b374f82c) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t-5.8k", 0x00000, 0x04000, CRC(35c3dbc5) SHA1(6700c72e5e0f7bd1429d342cb5d3daccd6b1b70f) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "t-8.1d", 0x00000, 0x10000, CRC(30a857f0) SHA1(a2d261e8104d0459067bdbdd71662fe8d6917da1) ) /* tiles */ - ROM_LOAD( "t-10.3c", 0x10000, 0x10000, CRC(76bb73bb) SHA1(4c4acd205421674878948a0d2bed6032bde3f97f) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "t-11.3d", 0x20000, 0x10000, CRC(53da6cb1) SHA1(52720746298adb01828f959f81b385d268c94343) ) - ROM_LOAD( "t-6.1a", 0x40000, 0x10000, CRC(45ce41ad) SHA1(6e2f559adc4aee80326b3ae5ae6c6688a3491962) ) - ROM_LOAD( "t-7.1c", 0x50000, 0x10000, CRC(3ccf11b9) SHA1(777cc853bfcf2db4027b35d516fa5bef8b010e63) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "t-9.3a", 0x60000, 0x10000, CRC(44762916) SHA1(3427066fc02d1b9b71a59ac41d3332d5cd8d1423) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t-13.1i", 0x00000, 0x10000, CRC(599f5246) SHA1(b7e5bbff3b6117613744970c8680b7bc171516bd) ) /* sprites */ - ROM_LOAD( "t-15.3i", 0x10000, 0x10000, CRC(f30cfa90) SHA1(0e4ecea069df6a6bb6ec03eff51c0f37e7531aa8) ) - ROM_LOAD( "t-12.1g", 0x20000, 0x10000, CRC(fb54cd33) SHA1(49f7b728a4de8b93f5fd929f59a65509e4556161) ) - ROM_LOAD( "t-14.3g", 0x30000, 0x10000, CRC(d636873c) SHA1(6edf01d0bd6d085eda491c600b1f4b4cbede5a74) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "t-16.9f", 0x00000, 0x08000, CRC(1a5a45d7) SHA1(51ceeae938fbda207c3f8ce65593d271dc8c4a41) ) -ROM_END - -ROM_START( turtshik ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "turtship.003", 0x00000, 0x08000, CRC(e7a7fc2e) SHA1(1a9147e82a5e56e8e5b68bbce144f96261e88669) ) - ROM_LOAD( "turtship.002", 0x10000, 0x08000, CRC(e576f482) SHA1(3be3792cb437bff0345681a3a2fdefefa3439357) ) - ROM_LOAD( "turtship.001", 0x18000, 0x08000, CRC(a9b64240) SHA1(38c59877de6055230c3250ef74abc97e4ed88cb6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t-4.8a", 0x00000, 0x08000, CRC(1cbe48e8) SHA1(6ac5981d36a44595bb8dc847c54c7be7b374f82c) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "turtship.005", 0x00000, 0x04000, CRC(651fef75) SHA1(9c821a2ee30c222987f0d4192133776490d6a4e0) ) /* characters */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "turtship.008", 0x00000, 0x10000, CRC(e0658469) SHA1(931c41cd6af759b30f6018248c3bab4d544acb98) ) /* tiles */ - ROM_LOAD( "t-10.3c", 0x10000, 0x10000, CRC(76bb73bb) SHA1(4c4acd205421674878948a0d2bed6032bde3f97f) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "t-11.3d", 0x20000, 0x10000, CRC(53da6cb1) SHA1(52720746298adb01828f959f81b385d268c94343) ) - ROM_LOAD( "turtship.006", 0x40000, 0x10000, CRC(a7cce654) SHA1(f6c99622dcacc1d76021ca29b0bbceefbb75c499) ) - ROM_LOAD( "t-7.1c", 0x50000, 0x10000, CRC(3ccf11b9) SHA1(777cc853bfcf2db4027b35d516fa5bef8b010e63) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "t-9.3a", 0x60000, 0x10000, CRC(44762916) SHA1(3427066fc02d1b9b71a59ac41d3332d5cd8d1423) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t-13.1i", 0x00000, 0x10000, CRC(599f5246) SHA1(b7e5bbff3b6117613744970c8680b7bc171516bd) ) /* sprites */ - ROM_LOAD( "turtship.015", 0x10000, 0x10000, CRC(69fd202f) SHA1(67d7d6d08f5daa0460ce51516f1d27dfd6aef297) ) - ROM_LOAD( "t-12.1g", 0x20000, 0x10000, CRC(fb54cd33) SHA1(49f7b728a4de8b93f5fd929f59a65509e4556161) ) - ROM_LOAD( "turtship.014", 0x30000, 0x10000, CRC(b3ea74a3) SHA1(aa347a6cd75408a3ba4ce26d3e1015a1be1faa64) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "turtship.016", 0x00000, 0x08000, CRC(affd51dd) SHA1(3338aa1fdd6b9926acc215f7f3656d70803f1832) ) -ROM_END - -ROM_START( dyger ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "d-3.5g", 0x00000, 0x08000, CRC(bae9882e) SHA1(88194e58673ebd0841e9e07482842f6dbb823afc) ) - ROM_LOAD( "d-2.3g", 0x10000, 0x08000, CRC(059ac4dc) SHA1(fe46d819946e168b4a8188302737fdde957743ea) ) - ROM_LOAD( "d-1.3e", 0x18000, 0x08000, CRC(d8440f66) SHA1(3b2ee8c09d40edbe76d5004ed9074add0d4e4fd0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "d-4.8a", 0x0000, 0x8000, CRC(8a256c09) SHA1(2c692af62da7c12b7d4f3f79264ee045a2cfa39f) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d-5.8k", 0x00000, 0x04000, CRC(c4bc72a5) SHA1(ee4ac5cbc9e97dd6fd0c9f507ee22a3eb36ba1b2) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "d-10.1d", 0x00000, 0x10000, CRC(9715880d) SHA1(a6a400a0f4a80f3d151851a8ed182a6695a468b7) ) /* tiles */ - ROM_LOAD( "d-9.3c", 0x10000, 0x10000, CRC(628dae72) SHA1(5cfd5b87f702650afaf0999a45670f956b8254b2) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "d-11.3d", 0x20000, 0x10000, CRC(23248db1) SHA1(47c5ef86e74be142faa0b896749d964ea1adc958) ) - ROM_LOAD( "d-6.1a", 0x40000, 0x10000, CRC(4ba7a437) SHA1(14bd939e3c5c28c5c7379e57832a0d3d707984f7) ) - ROM_LOAD( "d-8.1c", 0x50000, 0x10000, CRC(6c0f0e0c) SHA1(aac2b31346ebc6f2fb664faca732cd3738efcbab) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "d-7.3a", 0x60000, 0x10000, CRC(2c50a229) SHA1(14498a06ec7c683c161f46633b270548ca8a9b85) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "d-14.1i", 0x00000, 0x10000, CRC(99c60b26) SHA1(bcd56df5ef93c6133b61bce6472a708e340fbaaf) ) /* sprites */ - ROM_LOAD( "d-15.3i", 0x10000, 0x10000, CRC(d6475ecc) SHA1(61f6a9b443810742a2d39e61d14b92924cc27da7) ) - ROM_LOAD( "d-12.1g", 0x20000, 0x10000, CRC(e345705f) SHA1(0c51c0c598c0f51268108c7351b1b24977ae2b9f) ) - ROM_LOAD( "d-13.3g", 0x30000, 0x10000, CRC(faf4be3a) SHA1(dcf1958a17b587845174374f9598d0a979d7a6d5) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "d-16.9f", 0x0000, 0x8000, CRC(0792e8f2) SHA1(3716839502679ecc973571d824065b40771d5bfa) ) -ROM_END - -ROM_START( dygera ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "d-3.bin", 0x00000, 0x08000, CRC(fc63da8b) SHA1(f324a314cda167ae05e2eb017da355709489a7a3) ) - ROM_LOAD( "d-2.3g", 0x10000, 0x08000, CRC(059ac4dc) SHA1(fe46d819946e168b4a8188302737fdde957743ea) ) - ROM_LOAD( "d-1.3e", 0x18000, 0x08000, CRC(d8440f66) SHA1(3b2ee8c09d40edbe76d5004ed9074add0d4e4fd0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "d-4.8a", 0x0000, 0x8000, CRC(8a256c09) SHA1(2c692af62da7c12b7d4f3f79264ee045a2cfa39f) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d-5.8k", 0x00000, 0x04000, CRC(c4bc72a5) SHA1(ee4ac5cbc9e97dd6fd0c9f507ee22a3eb36ba1b2) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "d-10.1d", 0x00000, 0x10000, CRC(9715880d) SHA1(a6a400a0f4a80f3d151851a8ed182a6695a468b7) ) /* tiles */ - ROM_LOAD( "d-9.3c", 0x10000, 0x10000, CRC(628dae72) SHA1(5cfd5b87f702650afaf0999a45670f956b8254b2) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "d-11.3d", 0x20000, 0x10000, CRC(23248db1) SHA1(47c5ef86e74be142faa0b896749d964ea1adc958) ) - ROM_LOAD( "d-6.1a", 0x40000, 0x10000, CRC(4ba7a437) SHA1(14bd939e3c5c28c5c7379e57832a0d3d707984f7) ) - ROM_LOAD( "d-8.1c", 0x50000, 0x10000, CRC(6c0f0e0c) SHA1(aac2b31346ebc6f2fb664faca732cd3738efcbab) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "d-7.3a", 0x60000, 0x10000, CRC(2c50a229) SHA1(14498a06ec7c683c161f46633b270548ca8a9b85) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "d-14.1i", 0x00000, 0x10000, CRC(99c60b26) SHA1(bcd56df5ef93c6133b61bce6472a708e340fbaaf) ) /* sprites */ - ROM_LOAD( "d-15.3i", 0x10000, 0x10000, CRC(d6475ecc) SHA1(61f6a9b443810742a2d39e61d14b92924cc27da7) ) - ROM_LOAD( "d-12.1g", 0x20000, 0x10000, CRC(e345705f) SHA1(0c51c0c598c0f51268108c7351b1b24977ae2b9f) ) - ROM_LOAD( "d-13.3g", 0x30000, 0x10000, CRC(faf4be3a) SHA1(dcf1958a17b587845174374f9598d0a979d7a6d5) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "d-16.9f", 0x0000, 0x8000, CRC(0792e8f2) SHA1(3716839502679ecc973571d824065b40771d5bfa) ) -ROM_END - -ROM_START( twinfalc ) /* Shows "Notice This game is for use in Korea only..." The real PCB displays the same :-) */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "t-15.bin", 0x00000, 0x08000, CRC(e1f20144) SHA1(911781232fc1a7d6e36abb1c45e68a4398d8deac) ) - ROM_LOAD( "t-14.bin", 0x10000, 0x10000, CRC(c499ff83) SHA1(d99bb8cb04485638c5f05584cffdd2fbbe061af7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t-1.b4", 0x0000, 0x8000, CRC(b84bc980) SHA1(d2d302a96a9e3197f27144e525a901cfb9da09e4) ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t-6.r6", 0x04000, 0x04000, CRC(8e4ca776) SHA1(412a47f030e3b491e23e5696ef88d065f9de0220) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "t-10.y10", 0x00000, 0x10000, CRC(b678ef5b) SHA1(cdddd2a033291585e25839e864e898ef36f4d287) ) - ROM_LOAD( "t-9.w10", 0x10000, 0x10000, CRC(d7345fb9) SHA1(9da907c2bcacc750426a2989bae3c3e5fcc3e3ab) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "t-8.u10", 0x20000, 0x10000, CRC(41428dac) SHA1(16ae6c178b91e5cd859deb13176b7333f05c378a) ) - ROM_LOAD( "t-13.y11", 0x40000, 0x10000, CRC(0eba10bd) SHA1(e2504a5576c6af6c5bdb0263e1d3cb9ccabde3f8) ) - ROM_LOAD( "t-12.w11", 0x50000, 0x10000, CRC(c65050ce) SHA1(f90616aa4e1f80d8d7fccf5748f564cb7bc2d83a) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "t-11.u11", 0x60000, 0x10000, CRC(51a2c65d) SHA1(a89f46d581d2907b7813454925ce690af007997d) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t-2.a5", 0x00000, 0x10000, CRC(9c106835) SHA1(7e032e65e78c380b5f03a4febd6dcd3f0bdb642b) ) /* sprites */ - ROM_LOAD( "t-3.b5", 0x10000, 0x10000, CRC(9b421ccf) SHA1(0365d48437da0f90c1c146da0605139a3da0b03b) ) - ROM_LOAD( "t-4.a7", 0x20000, 0x10000, CRC(3a1db986) SHA1(5435e891eebe5b95a5a97ee8743a8a10282e4d19) ) - ROM_LOAD( "t-5.b7", 0x30000, 0x10000, CRC(9bd22190) SHA1(7a571becde02ea4b64db4138f00408f312bf54c0) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "t-7.y8", 0x0000, 0x8000, CRC(a8b5f750) SHA1(94eb7af3cb8bee87ce3d31260e3bde062ebbc8f0) ) -ROM_END - -ROM_START( whizz ) /* Whizz Philko 1989. Original pcb. Boardnumber: 01-90 / Serial: WZ-089-00845 */ - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for code + banked ROMs images */ - ROM_LOAD( "t-15.l11", 0x00000, 0x08000, CRC(73161302) SHA1(de815bba66c376cea775139f4285de0b1a589d88) ) - ROM_LOAD( "t-14.k11", 0x10000, 0x10000, CRC(bf248879) SHA1(f46f15e3949221e59d8c37de9c23473a74c2927e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "t-1.b4", 0x0000, 0x8000, CRC(b84bc980) SHA1(d2d302a96a9e3197f27144e525a901cfb9da09e4) ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "t-6.r6", 0x04000, 0x04000, CRC(8e4ca776) SHA1(412a47f030e3b491e23e5696ef88d065f9de0220) ) /* characters */ - ROM_CONTINUE( 0x00000, 0x04000 ) /* is the first half used? */ - - ROM_REGION( 0x80000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "t-10.y10", 0x00000, 0x10000, CRC(b678ef5b) SHA1(cdddd2a033291585e25839e864e898ef36f4d287) ) - ROM_LOAD( "t-9.w10", 0x10000, 0x10000, CRC(d7345fb9) SHA1(9da907c2bcacc750426a2989bae3c3e5fcc3e3ab) ) - ROM_RELOAD( 0x30000, 0x10000) - ROM_LOAD( "t-8.u10", 0x20000, 0x10000, CRC(41428dac) SHA1(16ae6c178b91e5cd859deb13176b7333f05c378a) ) - ROM_LOAD( "t-13.y11", 0x40000, 0x10000, CRC(0eba10bd) SHA1(e2504a5576c6af6c5bdb0263e1d3cb9ccabde3f8) ) - ROM_LOAD( "t-12.w11", 0x50000, 0x10000, CRC(c65050ce) SHA1(f90616aa4e1f80d8d7fccf5748f564cb7bc2d83a) ) - ROM_RELOAD( 0x70000, 0x10000) - ROM_LOAD( "t-11.u11", 0x60000, 0x10000, CRC(51a2c65d) SHA1(a89f46d581d2907b7813454925ce690af007997d) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "t-2.a5", 0x00000, 0x10000, CRC(9c106835) SHA1(7e032e65e78c380b5f03a4febd6dcd3f0bdb642b) ) /* sprites */ - ROM_LOAD( "t-3.b5", 0x10000, 0x10000, CRC(9b421ccf) SHA1(0365d48437da0f90c1c146da0605139a3da0b03b) ) - ROM_LOAD( "t-4.a7", 0x20000, 0x10000, CRC(3a1db986) SHA1(5435e891eebe5b95a5a97ee8743a8a10282e4d19) ) - ROM_LOAD( "t-5.b7", 0x30000, 0x10000, CRC(9bd22190) SHA1(7a571becde02ea4b64db4138f00408f312bf54c0) ) - - ROM_REGION( 0x08000, REGION_GFX4, 0 ) /* background tilemaps */ - ROM_LOAD( "t-7.y8", 0x0000, 0x8000, CRC(a8b5f750) SHA1(94eb7af3cb8bee87ce3d31260e3bde062ebbc8f0) ) -ROM_END - -static DRIVER_INIT( sidearms ) { sidearms_gameid = 0; } -static DRIVER_INIT( turtship ) { sidearms_gameid = 1; } -static DRIVER_INIT( dyger ) { sidearms_gameid = 2; } -static DRIVER_INIT( whizz ) { sidearms_gameid = 3; } - -GAME( 1986, sidearms, 0, sidearms, sidearms, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1986, sidearmr, sidearms, sidearms, sidearms, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1986, sidearjp, sidearms, sidearms, sidearms, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1988, turtship, 0, turtship, turtship, turtship, ROT0, "Philko (Sharp Image license)", "Turtle Ship (North America)", 0 ) -GAME( 1988, turtshij, turtship, turtship, turtship, turtship, ROT0, "Philko (Pacific Games license)", "Turtle Ship (Japan)", 0 ) -GAME( 1988, turtshik, turtship, turtship, turtship, turtship, ROT0, "Philko", "Turtle Ship (Korea)", 0 ) -GAME( 1989, dyger, 0, turtship, dyger, dyger, ROT270, "Philko", "Dyger (Korea set 1)", 0 ) -GAME( 1989, dygera, dyger, turtship, dyger, dyger, ROT270, "Philko", "Dyger (Korea set 2)", 0 ) -GAME( 1989, twinfalc, 0, whizz, whizz, whizz, ROT0, "Philko (Poara Enterprises license)", "Twin Falcons", 0 ) -GAME( 1989, whizz, twinfalc, whizz, whizz, whizz, ROT0, "Philko", "Whizz", 0 ) - - diff --git a/src/drivers/simpsons.c b/src/drivers/simpsons.c deleted file mode 100644 index b79b3705a..000000000 --- a/src/drivers/simpsons.c +++ /dev/null @@ -1,479 +0,0 @@ -/*************************************************************************** - -The Simpsons (c) 1991 Konami Co. Ltd - -Preliminary driver by: -Ernesto Corvi -someone@secureshell.com - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "cpu/z80/z80.h" -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" -#include "sound/k053260.h" - -/* from vidhrdw */ -VIDEO_START( simpsons ); -WRITE8_HANDLER( simpsons_priority_w ); -VIDEO_UPDATE( simpsons ); - -/* from machine */ -READ8_HANDLER( simpsons_eeprom_r ); -WRITE8_HANDLER( simpsons_eeprom_w ); -WRITE8_HANDLER( simpsons_coin_counter_w ); -READ8_HANDLER( simpsons_sound_interrupt_r ); -READ8_HANDLER( simpsons_sound_r ); -MACHINE_RESET( simpsons ); -NVRAM_HANDLER( simpsons ); -extern int simpsons_firq_enabled; - - -/*************************************************************************** - - Memory Maps - -***************************************************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_RAM - AM_RANGE(0x1f80, 0x1f80) AM_READ(input_port_4_r) - AM_RANGE(0x1f81, 0x1f81) AM_READ(simpsons_eeprom_r) - AM_RANGE(0x1f90, 0x1f90) AM_READ(input_port_0_r) - AM_RANGE(0x1f91, 0x1f91) AM_READ(input_port_1_r) - AM_RANGE(0x1f92, 0x1f92) AM_READ(input_port_2_r) - AM_RANGE(0x1f93, 0x1f93) AM_READ(input_port_3_r) - AM_RANGE(0x1fa0, 0x1fa7) AM_WRITE(K053246_w) - AM_RANGE(0x1fb0, 0x1fbf) AM_WRITE(K053251_w) - AM_RANGE(0x1fc0, 0x1fc0) AM_WRITE(simpsons_coin_counter_w) - AM_RANGE(0x1fc2, 0x1fc2) AM_WRITE(simpsons_eeprom_w) - AM_RANGE(0x1fc4, 0x1fc4) AM_READ(simpsons_sound_interrupt_r) - AM_RANGE(0x1fc6, 0x1fc7) AM_READWRITE(simpsons_sound_r, K053260_0_w) - AM_RANGE(0x1fc8, 0x1fc9) AM_READ(K053246_r) - AM_RANGE(0x1fca, 0x1fca) AM_READ(watchdog_reset_r) - AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(4) - AM_RANGE(0x0000, 0x3fff) AM_READWRITE(K052109_r, K052109_w) - AM_RANGE(0x4000, 0x5fff) AM_RAM - AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END - -static WRITE8_HANDLER( z80_bankswitch_w ) -{ - memory_set_bank(2, data & 7); -} - -#if 0 -static int nmi_enabled; - -static void sound_nmi_callback( int param ) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); - - nmi_enabled = 0; -} -#endif - -static void nmi_callback(int param) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); -} - -static WRITE8_HANDLER( z80_arm_nmi_w ) -{ -// sound_nmi_enabled = 1; - cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); - timer_set(TIME_IN_USEC(25),0,nmi_callback); /* kludge until the K053260 is emulated correctly */ -} - -static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) - AM_RANGE(0xf000, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xf800) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xf801, 0xf801) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) - AM_RANGE(0xfa00, 0xfa00) AM_WRITE(z80_arm_nmi_w) - AM_RANGE(0xfc00, 0xfc2f) AM_READWRITE(K053260_0_r, K053260_0_w) - AM_RANGE(0xfe00, 0xfe00) AM_WRITE(z80_bankswitch_w) -ADDRESS_MAP_END - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( simpsons ) - PORT_START /* IN0 - Player 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 - Player 2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN2 - Player 3 - Used on the 4p version */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START /* IN3 - Player 4 - Used on the 4p version */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE1 Unused - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE2 Unused - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused - - PORT_START /* IN5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( simpsn2p ) - PORT_START /* IN0 - Player 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 - Player 2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN2 - Player 3 - Used on the 4p version */ -// PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) -// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) -// PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) -// PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) -// PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) -// PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) -// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused -// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - PORT_START /* IN3 - Player 4 - Used on the 4p version */ -// PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) -// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) -// PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) -// PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) -// PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) -// PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) -// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused -// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) //COIN3 Unused - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) //COIN4 Unused - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE2 Unused - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused - - PORT_START /* IN5 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -/*************************************************************************** - - Machine Driver - -***************************************************************************/ - -static struct K053260_interface k053260_interface = -{ - REGION_SOUND1 /* memory region */ -}; - -static void simpsons_objdma(void) -{ - int counter, num_inactive; - UINT16 *src, *dst; - - K053247_export_config(&dst, 0, 0, 0, &counter); - src = spriteram16; - num_inactive = counter = 256; - - do { - if ((*src & 0x8000) && (*src & 0xff)) - { - memcpy(dst, src, 0x10); - dst += 8; - num_inactive--; - } - src += 8; - } - while (--counter); - - if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive); -} - -static void dmaend_callback(int data) -{ - if (simpsons_firq_enabled) - cpunum_set_input_line(0, KONAMI_FIRQ_LINE, HOLD_LINE); -} - -static INTERRUPT_GEN( simpsons_irq ) -{ - if (K053246_is_IRQ_enabled()) - { - simpsons_objdma(); - - // 32+256us delay at 8MHz dotclock; artificially shortened since actual V-blank length is unknown - timer_set(TIME_IN_USEC(30), 0, dmaend_callback); - } - - if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(0, KONAMI_IRQ_LINE, HOLD_LINE); -} - -static MACHINE_DRIVER_START( simpsons ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_VBLANK_INT(simpsons_irq,1) /* IRQ triggered by the 052109, FIRQ by the sprite hardware */ - - MDRV_CPU_ADD(Z80, 3579545) /* Reznor007 verified with schematics + PCB trace */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(z80_map,0) - /* NMIs are generated by the 053260 */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(simpsons) - MDRV_NVRAM_HANDLER(simpsons) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(simpsons) - MDRV_VIDEO_UPDATE(simpsons) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_ROUTE(0, "left", 1.0) /* only left channel is connected */ - MDRV_SOUND_ROUTE(0, "right", 1.0) - MDRV_SOUND_ROUTE(1, "left", 0.0) - MDRV_SOUND_ROUTE(1, "right", 0.0) - - MDRV_SOUND_ADD(K053260, 3579545) /* measured on real pcb */ - MDRV_SOUND_CONFIG(k053260_interface) - MDRV_SOUND_ROUTE(0, "left", 0.75) - MDRV_SOUND_ROUTE(1, "right", 0.75) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( simpsons ) - ROM_REGION( 0x8b000, REGION_CPU1, 0 ) /* code + banked roms + banked ram */ - ROM_LOAD( "072-g02.16c", 0x10000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) ) - ROM_LOAD( "072-g01.17c", 0x30000, 0x20000, CRC(9f843def) SHA1(858432b59101b0577c5cec6ac0c7c20ab0780c9a) ) - ROM_LOAD( "072-j13.13c", 0x50000, 0x20000, CRC(aade2abd) SHA1(10f178d5ed399b4866266e075d91ca3db26798f8) ) - ROM_LOAD( "072-j12.15c", 0x70000, 0x18000, CRC(479e12f2) SHA1(15a6cb12e68b4773a29ab463640a43f8e814de59) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code + banks */ - ROM_LOAD( "072-e03.6g", 0x00000, 0x08000, CRC(866b7a35) SHA1(98905764eb4c7d968ccc17618a1f24ee12e33c0e) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) ) /* tiles */ - ROM_LOAD( "072-b06.16h", 0x080000, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b08.3n", 0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */ - ROM_LOAD( "072-b09.8n", 0x100000, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) ) - ROM_LOAD( "072-b10.12n", 0x200000, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) ) - ROM_LOAD( "072-b11.16l", 0x300000, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* samples for the 053260 */ - ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) ) - ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) ) -ROM_END - -ROM_START( simps4pa ) - ROM_REGION( 0x8b000, REGION_CPU1, 0 ) /* code + banked roms + banked ram */ - ROM_LOAD( "072-g02.16c", 0x10000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) ) - ROM_LOAD( "072-g01.17c", 0x30000, 0x20000, CRC(9f843def) SHA1(858432b59101b0577c5cec6ac0c7c20ab0780c9a) ) - ROM_LOAD( "simpm13.13c", 0x50000, 0x20000, CRC(f36c9423) SHA1(4a7311ffcb2e6916006c1e79dfc231e7fc570781) ) - ROM_LOAD( "simpl12.15c", 0x70000, 0x18000, CRC(84f9d9ba) SHA1(d52f999b7c8125daea5e9b5754c6e82c17861d1b) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code + banks */ - ROM_LOAD( "072-e03.6g", 0x00000, 0x08000, CRC(866b7a35) SHA1(98905764eb4c7d968ccc17618a1f24ee12e33c0e) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) ) /* tiles */ - ROM_LOAD( "072-b06.16h", 0x080000, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b08.3n", 0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */ - ROM_LOAD( "072-b09.8n", 0x100000, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) ) - ROM_LOAD( "072-b10.12n", 0x200000, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) ) - ROM_LOAD( "072-b11.16l", 0x300000, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* samples for the 053260 */ - ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) ) - ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) ) -ROM_END - - -ROM_START( simpsn2p ) - ROM_REGION( 0x8b000, REGION_CPU1, 0 ) /* code + banked roms + banked ram */ - ROM_LOAD( "072-g02.16c", 0x10000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) ) - ROM_LOAD( "simp_p01.17c", 0x30000, 0x20000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) ) - ROM_LOAD( "simp_013.13c", 0x50000, 0x20000, CRC(8781105a) SHA1(ef2f16f7a56d3715536511c674df4b3aab1be2bd) ) - ROM_LOAD( "simp_012.15c", 0x70000, 0x18000, CRC(244f9289) SHA1(eeda7f5c7340cbd1a1cd576af48cd5d1a629914a) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code + banks */ - ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) ) /* tiles */ - ROM_LOAD( "072-b06.16h", 0x080000, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b08.3n", 0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */ - ROM_LOAD( "072-b09.8n", 0x100000, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) ) - ROM_LOAD( "072-b10.12n", 0x200000, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) ) - ROM_LOAD( "072-b11.16l", 0x300000, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* samples for the 053260 */ - ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) ) - ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) ) -ROM_END - -ROM_START( simps2pa ) - ROM_REGION( 0x8b000, REGION_CPU1, 0 ) /* code + banked roms + banked ram */ - ROM_LOAD( "072-g02.16c", 0x010000, 0x020000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) ) - ROM_LOAD( "simp1.17c", 0x030000, 0x020000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) ) - ROM_LOAD( "simp4.13c", 0x050000, 0x020000, CRC(54e6df66) SHA1(1b83ae56cf1deb51b04880fa421f06568c938a99) ) - ROM_LOAD( "simp3.15c", 0x070000, 0x018000, CRC(96636225) SHA1(5de95606e5c9337f18bc42f4df791cacafa20399) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code + banks */ - ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) ) /* tiles */ - ROM_LOAD( "072-b06.16h", 0x080000, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b08.3n", 0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */ - ROM_LOAD( "072-b09.8n", 0x100000, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) ) - ROM_LOAD( "072-b10.12n", 0x200000, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) ) - ROM_LOAD( "072-b11.16l", 0x300000, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* samples for the 053260 */ - ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) ) - ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) ) -ROM_END - -ROM_START( simps2pj ) - ROM_REGION( 0x8b000, REGION_CPU1, 0 ) /* code + banked roms + banked ram */ - ROM_LOAD( "072-s02.16c", 0x10000, 0x20000, CRC(265f7a47) SHA1(d39c19a5e303f822313409343b209947f4c47ae4) ) - ROM_LOAD( "072-t01.17c", 0x30000, 0x20000, CRC(91de5c2d) SHA1(1e18a5585ed821ec7cda69bdcdbfa4e6c71455c6) ) - ROM_LOAD( "072-213.13c", 0x50000, 0x20000, CRC(b326a9ae) SHA1(f222c33f2e8b306f2f0ef6f0da9febbf8219e1a4) ) - ROM_LOAD( "072-212.15c", 0x70000, 0x18000, CRC(584d9d37) SHA1(61b9df4dfb323b7284894e5e1eb9d713ebf64721) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* Z80 code + banks */ - ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) ) - ROM_CONTINUE( 0x10000, 0x18000 ) - - ROM_REGION( 0x100000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) ) /* tiles */ - ROM_LOAD( "072-b06.16h", 0x080000, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) ) - - ROM_REGION( 0x400000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "072-b08.3n", 0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */ - ROM_LOAD( "072-b09.8n", 0x100000, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) ) - ROM_LOAD( "072-b10.12n", 0x200000, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) ) - ROM_LOAD( "072-b11.16l", 0x300000, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) ) - - ROM_REGION( 0x140000, REGION_SOUND1, 0 ) /* samples for the 053260 */ - ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) ) - ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) ) -ROM_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static DRIVER_INIT( simpsons ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_4(REGION_GFX2); -} - -GAME( 1991, simpsons, 0, simpsons, simpsons, simpsons, ROT0, "Konami", "The Simpsons (4 Players)", 0 ) -GAME( 1991, simps4pa, simpsons, simpsons, simpsons, simpsons, ROT0, "Konami", "The Simpsons (4 Players alt)", 0 ) -GAME( 1991, simpsn2p, simpsons, simpsons, simpsn2p, simpsons, ROT0, "Konami", "The Simpsons (2 Players)", 0 ) -GAME( 1991, simps2pa, simpsons, simpsons, simpsons, simpsons, ROT0, "Konami", "The Simpsons (2 Players alt)", 0 ) -GAME( 1991, simps2pj, simpsons, simpsons, simpsn2p, simpsons, ROT0, "Konami", "The Simpsons (2 Players Japan)", 0 ) diff --git a/src/drivers/skydiver.c b/src/drivers/skydiver.c deleted file mode 100644 index 973982f86..000000000 --- a/src/drivers/skydiver.c +++ /dev/null @@ -1,424 +0,0 @@ -/*************************************************************************** - - Atari Sky Diver hardware - - driver by Mike Balfour - - Games supported: - * Sky Diver - - Known issues: - * There is a problem with coin input not starting when in demo mode. - * The NMI interrupt needs to be more accurate, to do 32V, adjusted - to VBLANK. This also affects sound. - * The cuurent value of 5 interrupts per frame, works pretty good, - but is not 100% accurate timing wise. - -**************************************************************************** - - Memory Map: - 0000-00FF R/W PAGE ZERO RAM - 0010 R/W H POS PLANE 1 - 0011 R/W H POS PLANE 2 - 0012 R/W H POS MAN 1 - 0013 R/W H POS MAN 2 - 0014 R/W RANGE LOAD - 0015 R/W NOTE LOAD - 0016 R/W NAM LD - 0017 R/W UNUSED - 0018 R/W V POS PLANE 1 - 0019 R/W PICTURE PLANE 1 - 001A R/W V POS PLANE 2 - 001B R/W PICTURE PLANE 2 - 001C R/W V POS MAN 1 - 001D R/W PICTURE MAN 1 - 001E R/W V POS MAN 2 - 001F R/W PICTURE MAN 2 - 0400-077F R/W PLAYFIELD - 0780-07FF R/W MAPS TO 0000-D0 - 0800-0801 W S LAMP - 0802-0803 W K LAMP - 0804-0805 W START LITE 1 - 0806-0807 W START LITE 2 - 0808-0809 W Y LAMP - 080A-080B W D LAMP - 080C-080D W SOUND ENABLE - 1000-1001 W JUMP LITE 1 - 1002-1003 W COIN LOCK OUT - 1006-1007 W JUMP LITE 2 - 1008-1009 W WHISTLE 1 - 100A-100B W WHISTLE 2 - 100C-100D W NMION - 100E-100F W WIDTH - 1800 R D6=LEFT 1, D7=RIGHT 1 - 1801 R D6=LEFT 2, D7=RIGHT 2 - 1802 R D6=JUMP 1, D7=CHUTE 1 - 1803 R D6=JUMP 2, D7=CHUTE 2 - 1804 R D6=(D) OPT SW: NEXT TEST, D7=(F) OPT SW - 1805 R D6=(E) OPT SW, D7= (H) OPT SW: DIAGNOSTICS - 1806 R D6=START 1, D7=COIN 1 - 1807 R D6=START 2, D7=COIN 2 - 1808 R D6=MISSES 2, D7=MISSES 1 - 1809 R D6=COIN 2, D7=COIN1 - 180A R D6=HARD/EASY, D7=EXTENDED PLAY - 180B R D6=LANGUAGE 2, D7=LANGUAGE 1 - 1810 R D6=TEST, D7=!VBLANK - 1811 R D6=!SLAM, D7=UNUSED - 2000 W TIMER RESET - 2002-2003 W I LAMP - 2004-2005 W V LAMP - 2006-2007 W E LAMP - 2008-2009 W R LAMP - 200A-200B W OCT 1 - 200C-200D W OCT 2 - 200E-200F W NOISE RESET - 2800-2FFF R ROM 0 - 3000-37FF R ROM 1 - 3800-3FFF R ROM 2A - 7800-7FFF R ROM 2B - - If you have any questions about how this driver works, don't hesitate to - ask. - Mike Balfour (mab22@po.cwru.edu) - - Notes: - - The NMI interrupts are only used to read the coin switches. - -***************************************************************************/ - -#include "driver.h" -#include "skydiver.h" -#include "sound/discrete.h" - -static int skydiver_nmion; - - - -/************************************* - * - * Palette generation - * - *************************************/ - -static unsigned short colortable_source[] = -{ - 0x02, 0x00, - 0x02, 0x01, - 0x00, 0x02, - 0x01, 0x02 -}; - -static PALETTE_INIT( skydiver ) -{ - palette_set_color(machine,0,0x00,0x00,0x00); /* black */ - palette_set_color(machine,1,0xff,0xff,0xff); /* white */ - palette_set_color(machine,2,0xa0,0xa0,0xa0); /* grey */ - - memcpy(colortable,colortable_source,sizeof(colortable_source)); -} - - - -/************************************* - * - * Interrupt generation - * - *************************************/ - -static WRITE8_HANDLER( skydiver_nmion_w ) -{ - skydiver_nmion = offset; -} - - -static INTERRUPT_GEN( skydiver_interrupt ) -{ - /* Convert range data to divide value and write to sound */ - discrete_sound_w(SKYDIVER_RANGE_DATA, (0x01 << (~skydiver_videoram[0x394] & 0x07)) & 0xff); // Range 0-2 - - discrete_sound_w(SKYDIVER_RANGE3_EN, skydiver_videoram[0x394] & 0x08); // Range 3 - note disable - discrete_sound_w(SKYDIVER_NOTE_DATA, ~skydiver_videoram[0x395] & 0xff); // Note - freq - discrete_sound_w(SKYDIVER_NOISE_DATA, skydiver_videoram[0x396] & 0x0f); // NAM - Noise Amplitude - - if (skydiver_nmion) - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - - - -/************************************* - * - * Sound handlers - * - *************************************/ - -static WRITE8_HANDLER( skydiver_sound_enable_w ) -{ - discrete_sound_w(SKYDIVER_SOUND_EN, offset); -} - -static WRITE8_HANDLER( skydiver_whistle_w ) -{ - discrete_sound_w(SKYDIVER_WHISTLE1_EN + (offset >> 1), offset & 0x01); -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( skydiver_map, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(15) ) - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x4300) AM_READWRITE(skydiver_wram_r, skydiver_wram_w) - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, MWA8_RAM) /* RAM B1 */ - AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x4000) AM_READWRITE(MRA8_RAM, skydiver_videoram_w) AM_BASE(&skydiver_videoram) /* RAMs K1,M1,P1,J1,N1,K/L1,L1,H/J1 */ - AM_RANGE(0x0800, 0x0801) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_s_w) - AM_RANGE(0x0802, 0x0803) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_k_w) - AM_RANGE(0x0804, 0x0805) AM_MIRROR(0x47f0) AM_WRITE(skydiver_start_lamp_1_w) - AM_RANGE(0x0806, 0x0807) AM_MIRROR(0x47f0) AM_WRITE(skydiver_start_lamp_2_w) - AM_RANGE(0x0808, 0x0809) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_y_w) - AM_RANGE(0x080a, 0x080b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_d_w) - AM_RANGE(0x080c, 0x080d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_sound_enable_w) - // AM_RANGE(0x1000, 0x1001) AM_MIRROR(0x47f0) AM_WRITE(skydiver_jump1_lamps_w) - AM_RANGE(0x1002, 0x1003) AM_MIRROR(0x47f0) AM_WRITE(skydiver_coin_lockout_w) - // AM_RANGE(0x1006, 0x1007) AM_MIRROR(0x47f0) AM_WRITE(skydiver_jump2_lamps_w) - AM_RANGE(0x1008, 0x100b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_whistle_w) - AM_RANGE(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_nmion_w) - AM_RANGE(0x100e, 0x100f) AM_MIRROR(0x47f0) AM_WRITE(skydiver_width_w) - AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x47e0) AM_READ(input_port_0_r) - AM_RANGE(0x1801, 0x1801) AM_MIRROR(0x47e0) AM_READ(input_port_1_r) - AM_RANGE(0x1802, 0x1802) AM_MIRROR(0x47e0) AM_READ(input_port_2_r) - AM_RANGE(0x1803, 0x1803) AM_MIRROR(0x47e0) AM_READ(input_port_3_r) - AM_RANGE(0x1804, 0x1804) AM_MIRROR(0x47e0) AM_READ(input_port_4_r) - AM_RANGE(0x1805, 0x1805) AM_MIRROR(0x47e0) AM_READ(input_port_5_r) - AM_RANGE(0x1806, 0x1806) AM_MIRROR(0x47e0) AM_READ(input_port_6_r) - AM_RANGE(0x1807, 0x1807) AM_MIRROR(0x47e0) AM_READ(input_port_7_r) - AM_RANGE(0x1808, 0x1808) AM_MIRROR(0x47e4) AM_READ(input_port_8_r) - AM_RANGE(0x1809, 0x1809) AM_MIRROR(0x47e4) AM_READ(input_port_9_r) - AM_RANGE(0x180a, 0x180a) AM_MIRROR(0x47e4) AM_READ(input_port_10_r) - AM_RANGE(0x180b, 0x180b) AM_MIRROR(0x47e4) AM_READ(input_port_11_r) - AM_RANGE(0x1810, 0x1810) AM_MIRROR(0x47e4) AM_READ(input_port_12_r) - AM_RANGE(0x1811, 0x1811) AM_MIRROR(0x47e4) AM_READ(input_port_13_r) - AM_RANGE(0x2000, 0x201f) AM_MIRROR(0x47e0) AM_READWRITE(watchdog_reset_r, skydiver_2000_201F_w) - AM_RANGE(0x2800, 0x2fff) AM_MIRROR(0x4000) AM_READ(MRA8_ROM) - AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x4000) AM_READ(MRA8_ROM) - AM_RANGE(0x3800, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( skydiver ) - PORT_START /* IN0 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) - - PORT_START /* IN1 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - - PORT_START /* IN2 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* Jump 1 */ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* Chute 1 */ - - PORT_START /* IN3 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* Jump 2 */ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* Chute 2 */ - - PORT_START /* IN4 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("(D) OPT SW NEXT TEST") PORT_CODE(KEYCODE_D) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("(F) OPT SW") PORT_CODE(KEYCODE_F) - - PORT_START /* IN5 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("(E) OPT SW") PORT_CODE(KEYCODE_E) - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("(H) OPT SW DIAGNOSTICS") PORT_CODE(KEYCODE_H) - - PORT_START /* IN6 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) - - PORT_START /* IN7 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) - - PORT_START /* IN8 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x80, "5" ) - PORT_DIPSETTING( 0xc0, "6" ) - - PORT_START /* IN9 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START /* IN10 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, "Extended Play" ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - - PORT_START /* IN11 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPSETTING( 0x40, DEF_STR( French ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( German ) ) - - PORT_START /* IN12 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START /* IN13 */ - PORT_BIT (0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_ADJUSTER( 33, "Whistle 1 Freq" ) - - PORT_START - PORT_ADJUSTER( 25, "Whistle 2 Freq" ) -INPUT_PORTS_END - - - -/************************************* - * - * Graphics definitions - * - *************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - 64, - 1, - { 0 }, - { 7, 6, 5, 4, 15, 14, 13, 12 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 8*16 -}; - - -static const gfx_layout motion_layout = -{ - 16,16, - 32, - 1, - { 0 }, - { 4, 5, 6, 7, 4 + 0x400*8, 5 + 0x400*8, 6 + 0x400*8, 7 + 0x400*8, - 12, 13, 14, 15, 12 + 0x400*8, 13 + 0x400*8, 14 + 0x400*8, 15 + 0x400*8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 8*32 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 4 }, - { REGION_GFX2, 0, &motion_layout, 0, 4 }, - { -1 } -}; - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( skydiver ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6800,3000000/4) /* ???? */ - MDRV_CPU_PROGRAM_MAP(skydiver_map, 0) - MDRV_CPU_VBLANK_INT(skydiver_interrupt, 5) - MDRV_WATCHDOG_VBLANK_INIT(8) // 128V clocks the same as VBLANK - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_MACHINE_RESET(skydiver) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(3) - MDRV_COLORTABLE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) - - MDRV_PALETTE_INIT(skydiver) - MDRV_VIDEO_START(skydiver) - MDRV_VIDEO_UPDATE(skydiver) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(skydiver_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( skydiver ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "33167-02.f1", 0x2800, 0x0800, CRC(25a5c976) SHA1(50fbf5dceab5d78292dc14bf25f2076e8139a594) ) - ROM_LOAD( "33164-02.e1", 0x3000, 0x0800, CRC(a348ac39) SHA1(7401cbd2f7236bd1d6ad0e39eb3de2b7d75e8f45) ) - ROM_LOAD( "33165-02.d1", 0x3800, 0x0800, CRC(a1fc5504) SHA1(febaa78936de7703b708c0d1f350fe288e0a106b) ) - ROM_LOAD( "33166-02.c1", 0x7800, 0x0800, CRC(3d26da2b) SHA1(e515d5c13814b9732a6ca109272500a60edc208a) ) - - ROM_REGION( 0x0400, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "33163-01.h5", 0x0000, 0x0400, CRC(5b9bb7c2) SHA1(319f45b6dff96739f73f2089361239da47042dcd) ) - - ROM_REGION( 0x0800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "33176-01.l5", 0x0000, 0x0400, CRC(6b082a01) SHA1(8facc94843ea041d205137056bd2035cf968125b) ) - ROM_LOAD( "33177-01.k5", 0x0400, 0x0400, CRC(f5541af0) SHA1(0967269518b6eac3c4e9ddaee39303086476c580) ) -ROM_END - - - -/************************************* - * - * Game driver - * - *************************************/ - -GAME( 1978, skydiver, 0, skydiver, skydiver, 0, ROT0, "Atari", "Sky Diver", 0 ) diff --git a/src/drivers/slapfght.c b/src/drivers/slapfght.c deleted file mode 100644 index 96bad35a9..000000000 --- a/src/drivers/slapfght.c +++ /dev/null @@ -1,1699 +0,0 @@ -/*************************************************************************** - -Slap Fight driver by K.Wilkins Jan 1998 - -Slap Fight - Taito - -The three drivers provided are identical, only the 1st CPU EPROM is different -which shows up in the boot message, one if Japanese domestic and the other -is English. The proms which MAY be the original slapfight ones currently -give a hardware error and fail to boot. - -slapfigh - Arcade ROMs from Japan http://home.onestop.net/j_rom/ -slapboot - Unknown source -slpboota - ROMS Dumped by KW 29/12/97 from unmarked Slap Fight board (bootleg?) - -PCB Details from slpboota boardset: - -Upper PCB (Sound board) ---------- -Z80A CPU -Toshiba TMM2016BP-10 (2KB SRAM) -sf_s05 (Fujitsu MBM2764-25 8KB EPROM) - Sound CPU Code - -Yamaha YM2149F (Qty 2 - Pin compatible with AY-3-8190) -Hitachi SRAM - HM6464 (8KB - Qty 4) - -sf_s01 (OKI M27256-N 32KB PROM) Sprite Data (16x16 4bpp) -sf_s02 (OKI M27256-N 32KB PROM) Sprite Data -sf_s03 (OKI M27256-N 32KB PROM) Sprite Data -sf_s04 (OKI M27256-N 32KB PROM) Sprite Data - - -Lower PCB ---------- -Z80B CPU -12MHz Xtal -Toshiba TMM2016BP-10 (2KB SRAM - Total Qty 6 = 2+2+1+1) - -sf_s10 (Fujitsu MBM2764-25 8KB EPROM) Font/Character Data (8x8 2bpp) -sf_s11 (Fujitsu MBM2764-25 8KB EPROM) - -sf_s06 (OKI M27256-N 32KB PROM) Tile Data (8x8 4bpp) -sf_s07 (OKI M27256-N 32KB PROM) Tile Data -sf_s08 (OKI M27256-N 32KB PROM) Tile Data -sf_s09 (OKI M27256-N 32KB PROM) Tile Data - -sf_s16 (Fujitsu MBM2764-25 8KB EPROM) Colour Tables (512B used?) - -sf_sH (OKI M27256-N 32KB PROM) Level Maps ??? - -sf_s19 (NEC S27128 16KB EPROM) CPU Code $0000-$3fff -sf_s20 (Mitsubishi M5L27128K 16KB EPROM) CPU Code $4000-$7fff - - -Main CPU Memory Map -------------------- - -$0000-$3fff ROM (SF_S19) -$4000-$7fff ROM (SF_S20) -$8000-$bfff ROM (SF_SH) - This is a 32K ROM - Paged ????? How ???? - -$c000-$c7ff 2K RAM -$c800-$cfff READ:Unknown H/W WRITE:Unknown H/W (Upper PCB) -$d000-$d7ff Background RAM1 -$d800-$dfff Background RAM2 -$e000-$e7ff Sprite RAM -$e800-$efff READ:Unknown H/W WRITE:Unknown H/W -$f000-$f7ff READ:SF_S16 WRITE:Character RAM -$f800-$ffff READ:Unknown H/W WRITE:Attribute RAM - -$c800-$cfff Appears to be RAM BUT 1st 0x10 bytes are swapped with - the sound CPU and visversa for READ OPERATIONS - - -Write I/O MAP -------------- -Addr Address based write Data based write - -$00 Reset sound CPU -$01 Clear sound CPU reset -$02 -$03 -$04 -$05 -$06 Clear/Disable Hardware interrupt -$07 Enable Hardware interrupt -$08 LOW Bank select for SF_SH X axis character scroll reg -$09 HIGH Bank select for SF_SH X axis pixel scroll reg -$0a -$0b -$0c Select 1st set of sprites colors -$0d Select 2nd set of sprites colors -$0e -$0f - -Read I/O Map ------------- - -$00 Status regsiter - cycle 0xc7, 0x55, 0x00 (Thanks to Dave Spicer for the info) - - -Known Info ----------- - -2K Character RAM at write only address $f000-$f7fff looks to be organised -64x32 chars with the screen rotated thru 90 degrees clockwise. There -appears to be some kind of attribute(?) RAM above at $f800-$ffff organised -in the same manner. - -From the look of data in the buffer it is arranged thus: 37x32 (HxW) which -would make the overall frame buffer 296x256. - -Print function maybe around $09a2 based on info from log file. - -$e000 looks like sprite ram, setup routines at $0008. - - -Sound System CPU Details ------------------------- - -Memory Map -$0000-$1fff ROM(SF_S5) -$a080 AY-3-8910(PSG1) Register address -$a081 AY-3-8910(PSG1) Read register -$a082 AY-3-8910(PSG1) Write register -$a090 AY-3-8910(PSG2) Register address -$a091 AY-3-8910(PSG2) Read register -$a092 AY-3-8910(PSG2) Write register -$c800-$cfff RAM(2K) - -Strangely the RAM hardware registers seem to be overlaid at $c800 -$00a6 routine here reads I/O ports and stores in, its not a straight -copy, the data is mangled before storage: -PSG1-E -> $c808 -PSG1-F -> $c80b -PSG2-E -> $c809 -PSG2-F -> $c80a - DIP Switch Bank 2 (Test mode is here) - --------------------------------GET STAR------------------------------------ - following info by Luca Elia (l.elia@tin.it) - - Interesting locations - --------------------- - -c803 credits -c806 used as a watchdog: main cpu reads then writes FF. - If FF was read, jp 0000h. Sound cpu zeroes it. - -c807(1p) left 7 c809 DSW1(cpl'd) -c808(2p) down 6 c80a DSW2(cpl'd) -active_H right 5 c80b ip 1(cpl'd) - up 4 - 0 3 - 0 2 - but2 1 - but1 0 - -c21d(main) 1p lives - -Main cpu writes to unmapped ports 0e,0f,05,03 at startup. -Before playing, f1 is written to e802 and 00 to port 03. -If flip screen dsw is on, ff is written to e802 an 00 to port 02, instead. - - Interesting routines (main cpu) - ------------------------------- -4a3 wait A irq's -432 init the Ath sprite -569 reads a sequence from e803 -607 prints the Ath string (FF terminated). String info is stored at - 65bc in the form of: attribute, dest. address, string address (5 bytes) -b73 checks lives. If zero, writes 0 to port 04 then jp 0000h. - Before that, sets I to FF as a flag, for the startup ram check - routine, to not alter the credit counter. -1523 put name in hi-scores? - --------------------------------Performan----------------------------------- - Interesting RAM locations (Main CPU). - ------------------------------------- - -$8056 Hero counter -$8057 Level counter -$8006 - $8035 High score table -$8609 - $860f High score characters to display to screen for highest score - - -***************************************************************************/ - -#include "driver.h" -#include "sound/ay8910.h" - -/* VIDHRDW */ -extern unsigned char *slapfight_videoram; -extern unsigned char *slapfight_colorram; -extern size_t slapfight_videoram_size; -extern unsigned char *slapfight_scrollx_lo,*slapfight_scrollx_hi,*slapfight_scrolly; -VIDEO_UPDATE( slapfight ); -VIDEO_UPDATE( perfrman ); -VIDEO_START( slapfight ); -VIDEO_START( perfrman ); -WRITE8_HANDLER( slapfight_flipscreen_w ); -WRITE8_HANDLER( slapfight_fixram_w ); -WRITE8_HANDLER( slapfight_fixcol_w ); -WRITE8_HANDLER( slapfight_videoram_w ); -WRITE8_HANDLER( slapfight_colorram_w ); -WRITE8_HANDLER( slapfight_palette_bank_w ); - -/* MACHINE */ -MACHINE_RESET( slapfight ); -extern unsigned char *slapfight_dpram; -extern size_t slapfight_dpram_size; -WRITE8_HANDLER( slapfight_dpram_w ); -READ8_HANDLER( slapfight_dpram_r ); - -READ8_HANDLER( slapfight_port_00_r ); -WRITE8_HANDLER( slapfight_port_00_w ); -WRITE8_HANDLER( slapfight_port_01_w ); -WRITE8_HANDLER( getstar_port_04_w ); -WRITE8_HANDLER( slapfight_port_06_w ); -WRITE8_HANDLER( slapfight_port_07_w ); -WRITE8_HANDLER( slapfight_port_08_w ); -WRITE8_HANDLER( slapfight_port_09_w ); - -/* MCU */ -READ8_HANDLER( getstar_e803_r ); - -READ8_HANDLER ( tigerh_68705_portA_r ); -WRITE8_HANDLER( tigerh_68705_portA_w ); -READ8_HANDLER ( tigerh_68705_portB_r ); -WRITE8_HANDLER( tigerh_68705_portB_w ); -READ8_HANDLER ( tigerh_68705_portC_r ); -WRITE8_HANDLER( tigerh_68705_portC_w ); -WRITE8_HANDLER( tigerh_68705_ddrA_w ); -WRITE8_HANDLER( tigerh_68705_ddrB_w ); -WRITE8_HANDLER( tigerh_68705_ddrC_w ); -WRITE8_HANDLER( tigerh_mcu_w ); -READ8_HANDLER ( tigerh_mcu_r ); -READ8_HANDLER ( tigerh_mcu_status_r ); - -WRITE8_HANDLER( getstar_sh_intenable_w ); -INTERRUPT_GEN( getstar_interrupt ); - - - -static ADDRESS_MAP_START( perfrman_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x880f) AM_READ(slapfight_dpram_r) - AM_RANGE(0x8810, 0x8fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x9000, 0x97ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9800, 0x9fff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa7ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( perfrman_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8800, 0x880f) AM_WRITE(slapfight_dpram_w) AM_BASE(&slapfight_dpram) AM_SIZE(&slapfight_dpram_size) - AM_RANGE(0x8810, 0x8fff) AM_WRITE(MWA8_BANK1) /* Shared RAM with sound CPU */ - AM_RANGE(0x9000, 0x97ff) AM_WRITE(slapfight_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x9800, 0x9fff) AM_WRITE(slapfight_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xa000, 0xa7ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tigerh_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xc80f) AM_READ(slapfight_dpram_r) - AM_RANGE(0xc810, 0xcfff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd800, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xc80f) AM_READ(slapfight_dpram_r) - AM_RANGE(0xc810, 0xcfff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd800, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM) -// AM_RANGE(0xe803, 0xe803) AM_READ(mcu_r) // MCU lives here - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc800, 0xc80f) AM_WRITE(slapfight_dpram_w) AM_BASE(&slapfight_dpram) AM_SIZE(&slapfight_dpram_size) - AM_RANGE(0xc810, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(slapfight_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(slapfight_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe800, 0xe800) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrollx_lo) - AM_RANGE(0xe801, 0xe801) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrollx_hi) - AM_RANGE(0xe802, 0xe802) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrolly) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(slapfight_fixram_w) AM_BASE(&slapfight_videoram) AM_SIZE(&slapfight_videoram_size) - AM_RANGE(0xf800, 0xffff) AM_WRITE(slapfight_fixcol_w) AM_BASE(&slapfight_colorram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( slapbtuk_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xc80f) AM_READ(slapfight_dpram_r) - AM_RANGE(0xc810, 0xcfff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd800, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM) -// AM_RANGE(0xe803, 0xe803) AM_READ(getstar_e803_r) - AM_RANGE(0xec00, 0xefff) AM_READ(MRA8_ROM) // it reads a copy of the logo from here! - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( slapbtuk_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc800, 0xc80f) AM_WRITE(slapfight_dpram_w) AM_BASE(&slapfight_dpram) AM_SIZE(&slapfight_dpram_size) - AM_RANGE(0xc810, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(slapfight_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(slapfight_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe800, 0xe800) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrollx_hi) - AM_RANGE(0xe802, 0xe802) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrolly) - AM_RANGE(0xe803, 0xe803) AM_WRITE(MWA8_RAM) AM_BASE(&slapfight_scrollx_lo) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(slapfight_fixram_w) AM_BASE(&slapfight_videoram) AM_SIZE(&slapfight_videoram_size) - AM_RANGE(0xf800, 0xffff) AM_WRITE(slapfight_fixcol_w) AM_BASE(&slapfight_colorram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(slapfight_port_00_r) /* status register */ -ADDRESS_MAP_END - -static READ8_HANDLER(tigerh_status_r) -{ - return (slapfight_port_00_r(0)&0xf9)| ((tigerh_mcu_status_r(0))); -} - -static ADDRESS_MAP_START( tigerh_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(tigerh_status_r) /* status register */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_READ(tigerh_68705_portA_r) - AM_RANGE(0x0001, 0x0001) AM_READ(tigerh_68705_portB_r) - AM_RANGE(0x0002, 0x0002) AM_READ(tigerh_68705_portC_r) - AM_RANGE(0x0010, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(11) ) - AM_RANGE(0x0000, 0x0000) AM_WRITE(tigerh_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_WRITE(tigerh_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_WRITE(tigerh_68705_portC_w) - AM_RANGE(0x0004, 0x0004) AM_WRITE(tigerh_68705_ddrA_w) - AM_RANGE(0x0005, 0x0005) AM_WRITE(tigerh_68705_ddrB_w) - AM_RANGE(0x0006, 0x0006) AM_WRITE(tigerh_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0080, 0x07ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tigerh_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w) - AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w) - AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w) - AM_RANGE(0x06, 0x06) AM_WRITE(slapfight_port_06_w) - AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w) - AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w) - AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w) -// AM_RANGE(0x04, 0x04) AM_WRITE(getstar_port_04_w) - AM_RANGE(0x06, 0x06) AM_WRITE(slapfight_port_06_w) - AM_RANGE(0x07, 0x07) AM_WRITE(slapfight_port_07_w) - AM_RANGE(0x08, 0x08) AM_WRITE(slapfight_port_08_w) /* select bank 0 */ - AM_RANGE(0x09, 0x09) AM_WRITE(slapfight_port_09_w) /* select bank 1 */ - AM_RANGE(0x0c, 0x0d) AM_WRITE(slapfight_palette_bank_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( perfrman_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8800, 0x880f) AM_READ(slapfight_dpram_r) - AM_RANGE(0x8810, 0x8fff) AM_READ(MRA8_BANK1) - AM_RANGE(0xa081, 0xa081) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0xa091, 0xa091) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( perfrman_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8800, 0x880f) AM_WRITE(slapfight_dpram_w) - AM_RANGE(0x8810, 0x8fff) AM_WRITE(MWA8_BANK1) /* Shared RAM with main CPU */ - AM_RANGE(0xa080, 0xa080) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xa082, 0xa082) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xa090, 0xa090) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xa092, 0xa092) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */ -// AM_RANGE(0xa0f0, 0xa0f0) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM) - AM_RANGE(0xa081, 0xa081) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0xa091, 0xa091) AM_READ(AY8910_read_port_1_r) - AM_RANGE(0xc800, 0xc80f) AM_READ(slapfight_dpram_r) - AM_RANGE(0xc810, 0xcfff) AM_READ(MRA8_RAM) - AM_RANGE(0xd000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xa080, 0xa080) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0xa082, 0xa082) AM_WRITE(AY8910_write_port_0_w) - AM_RANGE(0xa090, 0xa090) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0xa092, 0xa092) AM_WRITE(AY8910_write_port_1_w) - AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */ - AM_RANGE(0xc800, 0xc80f) AM_WRITE(slapfight_dpram_w) - AM_RANGE(0xc810, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -#define COMMON_START\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL\ - PORT_START_TAG("IN1")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 )\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL\ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - -INPUT_PORTS_START( perfrman ) -COMMON_START - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, 0x40, IPT_DIPSWITCH_NAME ) PORT_NAME("Dipswitch Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - /* Actually, the following DIPSW doesnt seem to do anything */ - PORT_BIT( 0x20, 0x20, IPT_DIPSWITCH_NAME ) PORT_NAME("Screen Test") PORT_CODE(KEYCODE_F1) PORT_TOGGLE - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) -// PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0xf0, 0x70, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0xb0, "20k, then each 100k" ) - PORT_DIPSETTING( 0xa0, "40k, then each 100k" ) - PORT_DIPSETTING( 0x90, "60k, then each 100k" ) - PORT_DIPSETTING( 0x70, "20k, then each 200k" ) - PORT_DIPSETTING( 0x60, "40k, then each 200k" ) - PORT_DIPSETTING( 0x50, "60k, then each 200k" ) - PORT_DIPSETTING( 0x30, "20k, then each 300k" ) - PORT_DIPSETTING( 0x20, "40k, then each 300k" ) - PORT_DIPSETTING( 0x10, "60k, then each 300k" ) - PORT_DIPSETTING( 0xf0, "20k" ) - PORT_DIPSETTING( 0xe0, "40k" ) - PORT_DIPSETTING( 0xd0, "60k" ) - PORT_DIPSETTING( 0xc0, DEF_STR( None ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Level" ) - PORT_DIPSETTING( 0x0c, "0" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "5" ) -INPUT_PORTS_END - -INPUT_PORTS_START( tigerh ) -COMMON_START - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) -// PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, 0x40, IPT_DIPSWITCH_NAME ) PORT_NAME("Dipswitch Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Player Speed" ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Fast" ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "20000 80000" ) - PORT_DIPSETTING( 0x00, "50000 120000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( slapfigh ) -COMMON_START - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_BIT( 0x20, 0x20, IPT_DIPSWITCH_NAME ) PORT_NAME("Screen Test") PORT_CODE(KEYCODE_F1) PORT_TOGGLE - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x02, 0x02, IPT_DIPSWITCH_NAME ) PORT_NAME("Dipswitch Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30000 100000" ) - PORT_DIPSETTING( 0x10, "50000 200000" ) - PORT_DIPSETTING( 0x20, "50000" ) - PORT_DIPSETTING( 0x00, "100000" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( getstar ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) -// PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, 0x40, IPT_DIPSWITCH_NAME ) PORT_NAME("Dipswitch Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x03, "240 (Cheat)") - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30000 100000" ) - PORT_DIPSETTING( 0x00, "50000 150000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gtstarba ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) -// PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x40, 0x40, IPT_DIPSWITCH_NAME ) PORT_NAME("Dipswitch Test") PORT_CODE(KEYCODE_F2) PORT_TOGGLE - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPSETTING( 0x03, "240 (Cheat)") - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30000 100000" ) - PORT_DIPSETTING( 0x00, "50000 150000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,2), /* 1024 characters */ - 2, /* 2 bits per pixel */ - { RGN_FRAC(0,2), RGN_FRAC(1,2) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 tilelayout = -{ - 8,8, /* 8*8 tiles */ - RGN_FRAC(1,4), /* 2048/4096 tiles */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every tile takes 8 consecutive bytes */ -}; - -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,4), /* 512/1024 sprites */ - 4, /* 4 bits per pixel */ - { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10 ,11, 12, 13, 14, 15 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 32*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout perfrman_charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,3), /* 1024 characters */ - 3, /* 3 bits per pixel */ - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 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 perfrman_spritelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,3), /* 256 sprites */ - 3, /* 3 bits per pixel */ - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10 ,11, 12, 13, 14, 15 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 32*8 -}; - - -static const gfx_decode perfrman_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &perfrman_charlayout, 0, 16 }, - { REGION_GFX2, 0, &perfrman_spritelayout, 128, 16 }, - { -1 } /* end of array */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 64 }, - { REGION_GFX2, 0, &tilelayout, 0, 16 }, - { REGION_GFX3, 0, &spritelayout, 0, 16 }, - { -1 } /* end of array */ -}; - - - -static struct AY8910interface ay8910_interface_1 = -{ - input_port_0_r, - input_port_1_r -}; - -static struct AY8910interface ay8910_interface_2 = -{ - input_port_2_r, - input_port_3_r -}; - -static VIDEO_EOF( perfrman ) -{ - buffer_spriteram_w(0,0); -} - -static MACHINE_DRIVER_START( perfrman ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80,16000000/4) /* 4MHz ???, 16MHz Oscillator */ - MDRV_CPU_PROGRAM_MAP(perfrman_readmem,perfrman_writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/8) /* 2MHz ???, 16MHz Oscillator */ - MDRV_CPU_PROGRAM_MAP(perfrman_sound_readmem,perfrman_sound_writemem) - MDRV_CPU_VBLANK_INT(getstar_interrupt,4) /* music speed, verified */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MDRV_MACHINE_RESET(slapfight) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(perfrman_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(perfrman) - MDRV_VIDEO_EOF(perfrman) - MDRV_VIDEO_UPDATE(perfrman) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 16000000/8) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 16000000/8) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tigerhb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(tigerh_readmem,writemem) - MDRV_CPU_IO_MAP(readport,tigerh_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,6) /* ??? */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MDRV_MACHINE_RESET(slapfight) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(slapfight) - MDRV_VIDEO_EOF(perfrman) - MDRV_VIDEO_UPDATE(slapfight) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tigerh ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(tigerh_readmem,writemem) - MDRV_CPU_IO_MAP(tigerh_readport,tigerh_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,6) /* ??? */ - - MDRV_CPU_ADD(M68705,4000000/2) - MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MDRV_MACHINE_RESET(slapfight) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(slapfight) - MDRV_VIDEO_EOF(perfrman) - MDRV_VIDEO_UPDATE(slapfight) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( slapfigh ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 6000000) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(getstar_interrupt, 3) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ - - MDRV_MACHINE_RESET(slapfight) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(slapfight) - MDRV_VIDEO_EOF(perfrman) - MDRV_VIDEO_UPDATE(slapfight) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MDRV_SOUND_ADD(AY8910, 1500000) - MDRV_SOUND_CONFIG(ay8910_interface_2) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_DRIVER_END - - -/* identical to slapfigh_ but writemem has different scroll registers */ -static MACHINE_DRIVER_START( slapbtuk ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(slapfigh) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(slapbtuk_readmem,slapbtuk_writemem) -MACHINE_DRIVER_END - - -ROM_START( perfrman ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Main CPU code */ - ROM_LOAD( "ci07.0", 0x00000, 0x4000, CRC(7ad32eea) SHA1(e5b29793e9c8c5c9322ca2af468a9810a598c0ae) ) - ROM_LOAD( "ci08.1", 0x04000, 0x4000, CRC(90a02d5f) SHA1(9f2d2ce70a5bc96fc9d268e2b24533f73361225c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */ - ROM_LOAD( "ci06.4", 0x0000, 0x2000, CRC(df891ad0) SHA1(0d33e7d0562831382f48d1588ef20a1bc73be71a) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ci02.7", 0x0000, 0x2000, CRC(8efa960a) SHA1(d547ea23f2dd622500bf3f38cd9aca4e80aa27ca) ) - ROM_LOAD( "ci01.6", 0x2000, 0x2000, CRC(2e8e69df) SHA1(183c1868f0c94a2a82709f9c38020ee81c283051) ) - ROM_LOAD( "ci00.5", 0x4000, 0x2000, CRC(79e191f8) SHA1(3a755857dab147b73761aebfcf931dc3c87286a4) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "ci05.10", 0x0000, 0x2000, CRC(809a4ccc) SHA1(bca5a27abe205a65e1160d0c0c61e9831a949acc) ) - ROM_LOAD( "ci04.9", 0x2000, 0x2000, CRC(026f27b3) SHA1(a222d31368fa5117824f5a14a1e52f01326e1f63) ) - ROM_LOAD( "ci03.8", 0x4000, 0x2000, CRC(6410d9eb) SHA1(7e57de9255cbcacb4610cabb1364e2a4933ec12b) ) - - ROM_REGION( 0x300, REGION_PROMS, 0 ) /* Color BPROMs */ - ROM_LOAD( "ci14.16", 0x000, 0x0100, CRC(515f8a3b) SHA1(a99d4c119f6c4c6cd1b3fd208eadfb69ef7e8e2d) ) - ROM_LOAD( "ci13.15", 0x100, 0x0100, CRC(a9a397eb) SHA1(a84cf23efa0cf3e97b8dd1fff868c85d7eda1253) ) - ROM_LOAD( "ci12.14", 0x200, 0x0100, CRC(67f86e3d) SHA1(b1240212ea91cf451dbd7c6e2bfccbac76568cf6) ) - - ROM_REGION( 0x220, REGION_USER1, 0 ) - ROM_LOAD( "ci11.11", 0x000, 0x0100, CRC(d492e6c2) SHA1(5789adda3a63ef8656ebd012416fcf3f991241fe) ) - ROM_LOAD( "ci10.12", 0x100, 0x0100, CRC(59490887) SHA1(c894edecbcfc67972ad893cd7c8197d07862a20a) ) - ROM_LOAD( "ci09.13", 0x200, 0x0020, CRC(aa0ca5a5) SHA1(4c45be71658f40ebb05634febba5822f1a8a7f79) ) -ROM_END - -ROM_START( perfrmau ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Main CPU code */ - ROM_LOAD( "ci07.0", 0x00000, 0x4000, CRC(7ad32eea) SHA1(e5b29793e9c8c5c9322ca2af468a9810a598c0ae) ) - ROM_LOAD( "ci108r5.1", 0x04000, 0x4000, CRC(9d373efa) SHA1(b1d87e033ee3c50cfc56db05891b00b7bc236733) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound CPU code */ - ROM_LOAD( "ci06.4", 0x0000, 0x2000, CRC(df891ad0) SHA1(0d33e7d0562831382f48d1588ef20a1bc73be71a) ) - - ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD( "ci02.7", 0x0000, 0x2000, CRC(8efa960a) SHA1(d547ea23f2dd622500bf3f38cd9aca4e80aa27ca) ) - ROM_LOAD( "ci01.6", 0x2000, 0x2000, CRC(2e8e69df) SHA1(183c1868f0c94a2a82709f9c38020ee81c283051) ) - ROM_LOAD( "ci00.5", 0x4000, 0x2000, CRC(79e191f8) SHA1(3a755857dab147b73761aebfcf931dc3c87286a4) ) - - ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD( "ci05.10", 0x0000, 0x2000, CRC(809a4ccc) SHA1(bca5a27abe205a65e1160d0c0c61e9831a949acc) ) - ROM_LOAD( "ci04.9", 0x2000, 0x2000, CRC(026f27b3) SHA1(a222d31368fa5117824f5a14a1e52f01326e1f63) ) - ROM_LOAD( "ci03.8", 0x4000, 0x2000, CRC(6410d9eb) SHA1(7e57de9255cbcacb4610cabb1364e2a4933ec12b) ) - - ROM_REGION( 0x300, REGION_PROMS, 0 ) /* Color BPROMs */ - ROM_LOAD( "ci14.16", 0x000, 0x0100, CRC(515f8a3b) SHA1(a99d4c119f6c4c6cd1b3fd208eadfb69ef7e8e2d) ) - ROM_LOAD( "ci13.15", 0x100, 0x0100, CRC(a9a397eb) SHA1(a84cf23efa0cf3e97b8dd1fff868c85d7eda1253) ) - ROM_LOAD( "ci12.14", 0x200, 0x0100, CRC(67f86e3d) SHA1(b1240212ea91cf451dbd7c6e2bfccbac76568cf6) ) - - ROM_REGION( 0x220, REGION_USER1, 0 ) - ROM_LOAD( "ci11.11", 0x000, 0x0100, CRC(d492e6c2) SHA1(5789adda3a63ef8656ebd012416fcf3f991241fe) ) - ROM_LOAD( "ci10.12", 0x100, 0x0100, CRC(59490887) SHA1(c894edecbcfc67972ad893cd7c8197d07862a20a) ) - ROM_LOAD( "ci09r1.13", 0x200, 0x0020, CRC(d9e92f6f) SHA1(7dc2939267b7d2b1eeeca906cc6151fab2cf1cc4) ) -ROM_END - -ROM_START( tigerh ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "0.4", 0x00000, 0x4000, CRC(4be73246) SHA1(a6f6a36fa7e3d269b87b777c0975b210d8b53483) ) - ROM_LOAD( "1.4", 0x04000, 0x4000, CRC(aad04867) SHA1(5e9ff3c982afe104428e936ef417de2d238dc033) ) - ROM_LOAD( "2.4", 0x08000, 0x4000, CRC(4843f15c) SHA1(c0c145c9df9d6273171ac64fb7396e65a786f67c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a47_03.bin", 0x0000, 0x2000, CRC(d105260f) SHA1(f6a0e393e29354bb37fb723828f3267d030a45ea) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "a47_14.6a", 0x0000, 0x0800, CRC(4042489f) SHA1(b977e0821b6b1aa5a0a0f349cd78150af1a231df) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_05.bin", 0x00000, 0x2000, CRC(c5325b49) SHA1(6df9051e7545dcac4995340f80957510457aaf64) ) /* Chars */ - ROM_LOAD( "a47_04.bin", 0x02000, 0x2000, CRC(cd59628e) SHA1(7be6479f20eb51b79b93e6fd65ab219096d54984) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_09.bin", 0x00000, 0x4000, CRC(31fae8a8) SHA1(ef8c23776431f00a74b25c5800755b6fa8d585ec) ) /* Tiles */ - ROM_LOAD( "a47_08.bin", 0x04000, 0x4000, CRC(e539af2b) SHA1(0c8369a0fac1cbe40c07b51e16e8f8a9b8ed03b8) ) - ROM_LOAD( "a47_07.bin", 0x08000, 0x4000, CRC(02fdd429) SHA1(fa392f2e57cfb6af4c124e0c151a4652f83e5577) ) - ROM_LOAD( "a47_06.bin", 0x0c000, 0x4000, CRC(11fbcc8c) SHA1(b4fdb9ee00b749e1a54cfc0cdf55cc5e9bee3662) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_13.bin", 0x00000, 0x4000, CRC(739a7e7e) SHA1(5fee71d9e1540903a6cf7bcaab30acaa088d35ed) ) /* Sprites */ - ROM_LOAD( "a47_12.bin", 0x04000, 0x4000, CRC(c064ecdb) SHA1(fa8d712e2b2bda78b9375d96c93a4d7549c94075) ) - ROM_LOAD( "a47_11.bin", 0x08000, 0x4000, CRC(744fae9b) SHA1(b324350469c51043e1d90ce58808d966467435b9) ) - ROM_LOAD( "a47_10.bin", 0x0c000, 0x4000, CRC(e1cf844e) SHA1(eeb8eff09f96c693e147d155a8c0a87416d64603) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.12q", 0x0000, 0x0100, CRC(2c69350d) SHA1(658bf63c6d1e718f99494cd1c9346c3622913beb) ) - ROM_LOAD( "82s129.12m", 0x0100, 0x0100, CRC(7142e972) SHA1(4a854c2fdd006077aecb695832110ae6bf5819c1) ) - ROM_LOAD( "82s129.12n", 0x0200, 0x0100, CRC(25f273f2) SHA1(2c696745f42fa09b64295a39536aeba08ab58d67) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r4a.2e", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( tigerh2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "b0.5", 0x00000, 0x4000, CRC(6ae7e13c) SHA1(47ef34635f8648e883a850293d92a46e95976a50) ) - ROM_LOAD( "a47_01.bin", 0x04000, 0x4000, CRC(65df2152) SHA1(8e1516905a4af379cb0d0b9d42ff1cc3179c3589) ) - ROM_LOAD( "a47_02.bin", 0x08000, 0x4000, CRC(633d324b) SHA1(70a17d17ebe003bfb2246e92e925a343a92553e5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a47_03.bin", 0x0000, 0x2000, CRC(d105260f) SHA1(f6a0e393e29354bb37fb723828f3267d030a45ea) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - /* is this the right mcu for this set? the mcu handling code in the roms seems patched and it doesn't - work correctly */ - ROM_LOAD( "a47_14.6a", 0x0000, 0x0800, CRC(4042489f) SHA1(b977e0821b6b1aa5a0a0f349cd78150af1a231df) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_05.bin", 0x00000, 0x2000, CRC(c5325b49) SHA1(6df9051e7545dcac4995340f80957510457aaf64) ) /* Chars */ - ROM_LOAD( "a47_04.bin", 0x02000, 0x2000, CRC(cd59628e) SHA1(7be6479f20eb51b79b93e6fd65ab219096d54984) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_09.bin", 0x00000, 0x4000, CRC(31fae8a8) SHA1(ef8c23776431f00a74b25c5800755b6fa8d585ec) ) /* Tiles */ - ROM_LOAD( "a47_08.bin", 0x04000, 0x4000, CRC(e539af2b) SHA1(0c8369a0fac1cbe40c07b51e16e8f8a9b8ed03b8) ) - ROM_LOAD( "a47_07.bin", 0x08000, 0x4000, CRC(02fdd429) SHA1(fa392f2e57cfb6af4c124e0c151a4652f83e5577) ) - ROM_LOAD( "a47_06.bin", 0x0c000, 0x4000, CRC(11fbcc8c) SHA1(b4fdb9ee00b749e1a54cfc0cdf55cc5e9bee3662) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_13.bin", 0x00000, 0x4000, CRC(739a7e7e) SHA1(5fee71d9e1540903a6cf7bcaab30acaa088d35ed) ) /* Sprites */ - ROM_LOAD( "a47_12.bin", 0x04000, 0x4000, CRC(c064ecdb) SHA1(fa8d712e2b2bda78b9375d96c93a4d7549c94075) ) - ROM_LOAD( "a47_11.bin", 0x08000, 0x4000, CRC(744fae9b) SHA1(b324350469c51043e1d90ce58808d966467435b9) ) - ROM_LOAD( "a47_10.bin", 0x0c000, 0x4000, CRC(e1cf844e) SHA1(eeb8eff09f96c693e147d155a8c0a87416d64603) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.12q", 0x0000, 0x0100, CRC(2c69350d) SHA1(658bf63c6d1e718f99494cd1c9346c3622913beb) ) - ROM_LOAD( "82s129.12m", 0x0100, 0x0100, CRC(7142e972) SHA1(4a854c2fdd006077aecb695832110ae6bf5819c1) ) - ROM_LOAD( "82s129.12n", 0x0200, 0x0100, CRC(25f273f2) SHA1(2c696745f42fa09b64295a39536aeba08ab58d67) ) -ROM_END - -ROM_START( tigerhj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "a47_00.bin", 0x00000, 0x4000, CRC(cbdbe3cc) SHA1(5badf76cdf4a7f0ae9e85ee602420ba5c128efef) ) - ROM_LOAD( "a47_01.bin", 0x04000, 0x4000, CRC(65df2152) SHA1(8e1516905a4af379cb0d0b9d42ff1cc3179c3589) ) - ROM_LOAD( "a47_02.bin", 0x08000, 0x4000, CRC(633d324b) SHA1(70a17d17ebe003bfb2246e92e925a343a92553e5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a47_03.bin", 0x0000, 0x2000, CRC(d105260f) SHA1(f6a0e393e29354bb37fb723828f3267d030a45ea) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) - ROM_LOAD( "a47_14.6a", 0x0000, 0x0800, CRC(4042489f) SHA1(b977e0821b6b1aa5a0a0f349cd78150af1a231df) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_05.bin", 0x00000, 0x2000, CRC(c5325b49) SHA1(6df9051e7545dcac4995340f80957510457aaf64) ) /* Chars */ - ROM_LOAD( "a47_04.bin", 0x02000, 0x2000, CRC(cd59628e) SHA1(7be6479f20eb51b79b93e6fd65ab219096d54984) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_09.bin", 0x00000, 0x4000, CRC(31fae8a8) SHA1(ef8c23776431f00a74b25c5800755b6fa8d585ec) ) /* Tiles */ - ROM_LOAD( "a47_08.bin", 0x04000, 0x4000, CRC(e539af2b) SHA1(0c8369a0fac1cbe40c07b51e16e8f8a9b8ed03b8) ) - ROM_LOAD( "a47_07.bin", 0x08000, 0x4000, CRC(02fdd429) SHA1(fa392f2e57cfb6af4c124e0c151a4652f83e5577) ) - ROM_LOAD( "a47_06.bin", 0x0c000, 0x4000, CRC(11fbcc8c) SHA1(b4fdb9ee00b749e1a54cfc0cdf55cc5e9bee3662) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_13.bin", 0x00000, 0x4000, CRC(739a7e7e) SHA1(5fee71d9e1540903a6cf7bcaab30acaa088d35ed) ) /* Sprites */ - ROM_LOAD( "a47_12.bin", 0x04000, 0x4000, CRC(c064ecdb) SHA1(fa8d712e2b2bda78b9375d96c93a4d7549c94075) ) - ROM_LOAD( "a47_11.bin", 0x08000, 0x4000, CRC(744fae9b) SHA1(b324350469c51043e1d90ce58808d966467435b9) ) - ROM_LOAD( "a47_10.bin", 0x0c000, 0x4000, CRC(e1cf844e) SHA1(eeb8eff09f96c693e147d155a8c0a87416d64603) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.12q", 0x0000, 0x0100, CRC(2c69350d) SHA1(658bf63c6d1e718f99494cd1c9346c3622913beb) ) - ROM_LOAD( "82s129.12m", 0x0100, 0x0100, CRC(7142e972) SHA1(4a854c2fdd006077aecb695832110ae6bf5819c1) ) - ROM_LOAD( "82s129.12n", 0x0200, 0x0100, CRC(25f273f2) SHA1(2c696745f42fa09b64295a39536aeba08ab58d67) ) -ROM_END - -ROM_START( tigerhb1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "14", 0x00000, 0x4000, CRC(ca59dd73) SHA1(c07961fcc209ec10ace3830d79c8ccc1cfda9765) ) - ROM_LOAD( "13", 0x04000, 0x4000, CRC(38bd54db) SHA1(75e999f606c410d7481bc4d29c4b523d45847649) ) - ROM_LOAD( "a47_02.bin", 0x08000, 0x4000, CRC(633d324b) SHA1(70a17d17ebe003bfb2246e92e925a343a92553e5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a47_03.bin", 0x0000, 0x2000, CRC(d105260f) SHA1(f6a0e393e29354bb37fb723828f3267d030a45ea) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_05.bin", 0x00000, 0x2000, CRC(c5325b49) SHA1(6df9051e7545dcac4995340f80957510457aaf64) ) /* Chars */ - ROM_LOAD( "a47_04.bin", 0x02000, 0x2000, CRC(cd59628e) SHA1(7be6479f20eb51b79b93e6fd65ab219096d54984) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_09.bin", 0x00000, 0x4000, CRC(31fae8a8) SHA1(ef8c23776431f00a74b25c5800755b6fa8d585ec) ) /* Tiles */ - ROM_LOAD( "a47_08.bin", 0x04000, 0x4000, CRC(e539af2b) SHA1(0c8369a0fac1cbe40c07b51e16e8f8a9b8ed03b8) ) - ROM_LOAD( "a47_07.bin", 0x08000, 0x4000, CRC(02fdd429) SHA1(fa392f2e57cfb6af4c124e0c151a4652f83e5577) ) - ROM_LOAD( "a47_06.bin", 0x0c000, 0x4000, CRC(11fbcc8c) SHA1(b4fdb9ee00b749e1a54cfc0cdf55cc5e9bee3662) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_13.bin", 0x00000, 0x4000, CRC(739a7e7e) SHA1(5fee71d9e1540903a6cf7bcaab30acaa088d35ed) ) /* Sprites */ - ROM_LOAD( "a47_12.bin", 0x04000, 0x4000, CRC(c064ecdb) SHA1(fa8d712e2b2bda78b9375d96c93a4d7549c94075) ) - ROM_LOAD( "a47_11.bin", 0x08000, 0x4000, CRC(744fae9b) SHA1(b324350469c51043e1d90ce58808d966467435b9) ) - ROM_LOAD( "a47_10.bin", 0x0c000, 0x4000, CRC(e1cf844e) SHA1(eeb8eff09f96c693e147d155a8c0a87416d64603) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.12q", 0x0000, 0x0100, CRC(2c69350d) SHA1(658bf63c6d1e718f99494cd1c9346c3622913beb) ) - ROM_LOAD( "82s129.12m", 0x0100, 0x0100, CRC(7142e972) SHA1(4a854c2fdd006077aecb695832110ae6bf5819c1) ) - ROM_LOAD( "82s129.12n", 0x0200, 0x0100, CRC(25f273f2) SHA1(2c696745f42fa09b64295a39536aeba08ab58d67) ) -ROM_END - -ROM_START( tigerhb2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "rom00_09.bin", 0x00000, 0x4000, CRC(ef738c68) SHA1(c78c802d885b7f7c5e312ec079d52b8817590735) ) - ROM_LOAD( "a47_01.bin", 0x04000, 0x4000, CRC(65df2152) SHA1(8e1516905a4af379cb0d0b9d42ff1cc3179c3589) ) - ROM_LOAD( "rom02_07.bin", 0x08000, 0x4000, CRC(36e250b9) SHA1(79bd86bde81981e4d0dbee420bc0a10c80b5241e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a47_03.bin", 0x0000, 0x2000, CRC(d105260f) SHA1(f6a0e393e29354bb37fb723828f3267d030a45ea) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_05.bin", 0x00000, 0x2000, CRC(c5325b49) SHA1(6df9051e7545dcac4995340f80957510457aaf64) ) /* Chars */ - ROM_LOAD( "a47_04.bin", 0x02000, 0x2000, CRC(cd59628e) SHA1(7be6479f20eb51b79b93e6fd65ab219096d54984) ) - - ROM_REGION( 0x10000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_09.bin", 0x00000, 0x4000, CRC(31fae8a8) SHA1(ef8c23776431f00a74b25c5800755b6fa8d585ec) ) /* Tiles */ - ROM_LOAD( "a47_08.bin", 0x04000, 0x4000, CRC(e539af2b) SHA1(0c8369a0fac1cbe40c07b51e16e8f8a9b8ed03b8) ) - ROM_LOAD( "a47_07.bin", 0x08000, 0x4000, CRC(02fdd429) SHA1(fa392f2e57cfb6af4c124e0c151a4652f83e5577) ) - ROM_LOAD( "a47_06.bin", 0x0c000, 0x4000, CRC(11fbcc8c) SHA1(b4fdb9ee00b749e1a54cfc0cdf55cc5e9bee3662) ) - - ROM_REGION( 0x10000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a47_13.bin", 0x00000, 0x4000, CRC(739a7e7e) SHA1(5fee71d9e1540903a6cf7bcaab30acaa088d35ed) ) /* Sprites */ - ROM_LOAD( "a47_12.bin", 0x04000, 0x4000, CRC(c064ecdb) SHA1(fa8d712e2b2bda78b9375d96c93a4d7549c94075) ) - ROM_LOAD( "a47_11.bin", 0x08000, 0x4000, CRC(744fae9b) SHA1(b324350469c51043e1d90ce58808d966467435b9) ) - ROM_LOAD( "a47_10.bin", 0x0c000, 0x4000, CRC(e1cf844e) SHA1(eeb8eff09f96c693e147d155a8c0a87416d64603) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.12q", 0x0000, 0x0100, CRC(2c69350d) SHA1(658bf63c6d1e718f99494cd1c9346c3622913beb) ) - ROM_LOAD( "82s129.12m", 0x0100, 0x0100, CRC(7142e972) SHA1(4a854c2fdd006077aecb695832110ae6bf5819c1) ) - ROM_LOAD( "82s129.12n", 0x0200, 0x0100, CRC(25f273f2) SHA1(2c696745f42fa09b64295a39536aeba08ab58d67) ) -ROM_END - -ROM_START( slapfigh ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "sf_r19.bin", 0x00000, 0x8000, CRC(674c0e0f) SHA1(69fc17881c89cc5e82b0fefec49c4116054f9e3b) ) - ROM_LOAD( "sf_rh.bin", 0x10000, 0x8000, CRC(3c42e4a7) SHA1(8e4da1e6e73603e484ba4f5609ac9ea92999a526) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r11.bin", 0x00000, 0x2000, CRC(2ac7b943) SHA1(d0c3560bb1f0c2647aeff807cb4b09450237b955) ) /* Chars */ - ROM_LOAD( "sf_r10.bin", 0x02000, 0x2000, CRC(33cadc93) SHA1(59ffc206c62a651d2ac0ef52f519dd56edf2c021) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r06.bin", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "sf_r09.bin", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "sf_r08.bin", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "sf_r07.bin", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r03.bin", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "sf_r01.bin", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "sf_r04.bin", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "sf_r02.bin", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -/* dump labeled Alcon, but GFX in tile roms clearly read Slap Fight */ -ROM_START( slapfiga ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "a76-00.bin", 0x00000, 0x4000, CRC(ac22bb86) SHA1(3ecff006fc487d494f21adb7bff6f8c56eb5d707) ) - ROM_LOAD( "a76-01.bin", 0x04000, 0x4000, CRC(d6b4f02e) SHA1(37f840c444ba7dcc75810580c9da83289670d5cc) ) - ROM_LOAD( "a76-02.bin", 0x10000, 0x8000, CRC(9dd0971f) SHA1(92bd0b54635bf5c4118a53e0f897c65f5eb2984a) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "a76-03.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "a76-05.bin", 0x00000, 0x2000, CRC(be9a1bc5) SHA1(2fabfd42cd49db67654eac824c9852ed368a6e50) ) /* Chars */ - ROM_LOAD( "a76-04.bin", 0x02000, 0x2000, CRC(3519daa4) SHA1(ab77cc1bfe7c394d1a90a4c50d5d4a98158eb86d) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "a76-09.bin", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "a76-08.bin", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "a76-07.bin", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "a76-06.bin", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "a76-13.bin", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "a76-12.bin", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "a76-11.bin", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "a76-10.bin", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -ROM_START( slapbtjp ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "sf_r19jb.bin", 0x00000, 0x8000, CRC(9a7ac8b3) SHA1(01fbad9b4fc80f2406eff18db20e196e212d0c17) ) - ROM_LOAD( "sf_rh.bin", 0x10000, 0x8000, CRC(3c42e4a7) SHA1(8e4da1e6e73603e484ba4f5609ac9ea92999a526) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r11.bin", 0x00000, 0x2000, CRC(2ac7b943) SHA1(d0c3560bb1f0c2647aeff807cb4b09450237b955) ) /* Chars */ - ROM_LOAD( "sf_r10.bin", 0x02000, 0x2000, CRC(33cadc93) SHA1(59ffc206c62a651d2ac0ef52f519dd56edf2c021) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r06.bin", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "sf_r09.bin", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "sf_r08.bin", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "sf_r07.bin", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r03.bin", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "sf_r01.bin", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "sf_r04.bin", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "sf_r02.bin", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -ROM_START( slapbtuk ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "sf_r19eb.bin", 0x00000, 0x4000, CRC(2efe47af) SHA1(69ce3e83a0d8fa5ee4737c741d31cf32db6b9919) ) - ROM_LOAD( "sf_r20eb.bin", 0x04000, 0x4000, CRC(f42c7951) SHA1(d76e7a72f6ced67b550ba68cd42987f7111f5468) ) - ROM_LOAD( "sf_rh.bin", 0x10000, 0x8000, CRC(3c42e4a7) SHA1(8e4da1e6e73603e484ba4f5609ac9ea92999a526) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r11.bin", 0x00000, 0x2000, CRC(2ac7b943) SHA1(d0c3560bb1f0c2647aeff807cb4b09450237b955) ) /* Chars */ - ROM_LOAD( "sf_r10.bin", 0x02000, 0x2000, CRC(33cadc93) SHA1(59ffc206c62a651d2ac0ef52f519dd56edf2c021) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r06.bin", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "sf_r09.bin", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "sf_r08.bin", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "sf_r07.bin", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r03.bin", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "sf_r01.bin", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "sf_r04.bin", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "sf_r02.bin", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -/* very similar to slapbtuk, is slapbtuk missing the logo rom? */ -ROM_START( slapfgtr ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "k1-10.u90", 0x00000, 0x4000, CRC(2efe47af) SHA1(69ce3e83a0d8fa5ee4737c741d31cf32db6b9919) ) - ROM_LOAD( "k1-09.u89", 0x04000, 0x4000, CRC(17c187c5) SHA1(6e1fd651f56036d1c6c830de8479df25fc182c10) ) - ROM_LOAD( "k1-08.u88", 0x0e000, 0x2000, CRC(945af97f) SHA1(4d901be477b6101338eb1d86497e1bdc57f9c1b4) ) // contains another copy of the logo tilemap read at ec00! - ROM_LOAD( "k1-07.u87", 0x10000, 0x8000, CRC(3c42e4a7) SHA1(8e4da1e6e73603e484ba4f5609ac9ea92999a526) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "k1-11.u89", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "k1-02.u57", 0x00000, 0x2000, CRC(2ac7b943) SHA1(d0c3560bb1f0c2647aeff807cb4b09450237b955) ) /* Chars */ - ROM_LOAD( "k1-03.u58", 0x02000, 0x2000, CRC(33cadc93) SHA1(59ffc206c62a651d2ac0ef52f519dd56edf2c021) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "k1-01.u49", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "k1-04.u62", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "k1-05.u63", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "k1-06.u64", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "k1-15.u60", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "k1-13.u50", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "k1-14.u59", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "k1-12.u49", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -ROM_START( alcon ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) - ROM_LOAD( "00", 0x00000, 0x8000, CRC(2ba82d60) SHA1(b37659aa18a3f96a3cc7fa93db2439f36487b8c8) ) - ROM_LOAD( "01", 0x10000, 0x8000, CRC(18bb2f12) SHA1(7c16d4bbb8b5e22f227aff170e5e6326c5968968) ) /* banked at 8000 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "04", 0x00000, 0x2000, CRC(31003483) SHA1(7014ceb6313ac5a3d2dcb735643dfd8bfabaa185) ) /* Chars */ - ROM_LOAD( "03", 0x02000, 0x2000, CRC(404152c0) SHA1(d05bc9baa1f336475fffc2f19f1018e9f0547f10) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r06.bin", 0x00000, 0x8000, CRC(b6358305) SHA1(c7bb4236a75ec6b88f011bc30f8fb9a718e2ca3e) ) /* Tiles */ - ROM_LOAD( "sf_r09.bin", 0x08000, 0x8000, CRC(e92d9d60) SHA1(2554617e0e6615ca8c85a49299a4a0e762478339) ) - ROM_LOAD( "sf_r08.bin", 0x10000, 0x8000, CRC(5faeeea3) SHA1(696fba24bcf1f3a7e914a4403854da5eededaf7f) ) - ROM_LOAD( "sf_r07.bin", 0x18000, 0x8000, CRC(974e2ea9) SHA1(3840550fc3a833828dad8f3e300d2ea583d69ce7) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "sf_r03.bin", 0x00000, 0x8000, CRC(8545d397) SHA1(9a1fd5bfd8fb830b8e46643c08eef32ba968fc23) ) /* Sprites */ - ROM_LOAD( "sf_r01.bin", 0x08000, 0x8000, CRC(b1b7b925) SHA1(199b0b52bbeb384211171eca5c50a1c0ebf6826f) ) - ROM_LOAD( "sf_r04.bin", 0x10000, 0x8000, CRC(422d946b) SHA1(c251ef9597a11ec8de39be4fcbddaba84e649ef2) ) - ROM_LOAD( "sf_r02.bin", 0x18000, 0x8000, CRC(587113ae) SHA1(90abe961494a1af7c87693a419fbabf7a58a5dee) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "sf_col21.bin", 0x0000, 0x0100, CRC(a0efaf99) SHA1(5df01663480acad1f89abab8662d437617a66d1c) ) - ROM_LOAD( "sf_col20.bin", 0x0100, 0x0100, CRC(a56d57e5) SHA1(bfbd0db52b23fe1b4994e05103be3d412c1c013e) ) - ROM_LOAD( "sf_col19.bin", 0x0200, 0x0100, CRC(5cbf9fbf) SHA1(abfa58fa4e44ebc56f2e0fac9bcc36164c845fa3) ) -ROM_END - -ROM_START( getstar ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* Region 0 - main cpu code */ - ROM_LOAD( "rom0", 0x00000, 0x4000, CRC(6a8bdc6c) SHA1(c923bca539bd2eb9a34cb9c7a67a199e28bc081a) ) - ROM_LOAD( "rom1", 0x04000, 0x4000, CRC(ebe8db3c) SHA1(9046d6e63c33fc9cbd48b90dcbcc0badf1d3b9ba) ) - ROM_LOAD( "rom2", 0x10000, 0x8000, CRC(343e8415) SHA1(00b98055277a0ddfb7d0bda6537df10a4049533e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Region 3 - sound cpu code */ - ROM_LOAD( "a68-03", 0x0000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_05-1", 0x00000, 0x2000, CRC(06f60107) SHA1(c5dcf0c7a5863ea960ee747d2d7ec7ac8bb7d3af) ) /* Chars */ - ROM_LOAD( "a68_04-1", 0x02000, 0x2000, CRC(1fc8f277) SHA1(59dc1a0fad23b1e98abca3d0b1685b9d2939b059) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_09", 0x00000, 0x8000, CRC(a293cc2e) SHA1(a2c2598e92982d13b51cbb6efb4b963142233433) ) /* Tiles */ - ROM_LOAD( "a68_08", 0x08000, 0x8000, CRC(37662375) SHA1(46ba8a3f0b553d476ecf431d0d20556896b4ca43) ) - ROM_LOAD( "a68_07", 0x10000, 0x8000, CRC(cf1a964c) SHA1(e9223c8d4f3bdafed193a1ded63e377f16f45e17) ) - ROM_LOAD( "a68_06", 0x18000, 0x8000, CRC(05f9eb9a) SHA1(a71640a63b259799086d361ef293aa26cec46a0c) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68-13", 0x00000, 0x8000, CRC(643fb282) SHA1(d904d3c27c2b56341929c5eed4ea97e948c53c34) ) /* Sprites */ - ROM_LOAD( "a68-12", 0x08000, 0x8000, CRC(11f74e32) SHA1(02d8b4cc679f45a02c4989f2b62cde91b7418235) ) - ROM_LOAD( "a68-11", 0x10000, 0x8000, CRC(f24158cf) SHA1(db4c6b68a488b0798ea5f793ac8ced283a8ecab2) ) - ROM_LOAD( "a68-10", 0x18000, 0x8000, CRC(83161ed0) SHA1(a6aa28f22f487dc3a2ec07935e6d42bcdd1eff81) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "rom21", 0x0000, 0x0100, CRC(d6360b4d) SHA1(3e64548c82a3378fc091e104cdc2b0c7e592fc44) ) - ROM_LOAD( "rom20", 0x0100, 0x0100, CRC(4ca01887) SHA1(2892c89d5e60f1d10593adffff55c1a9654e8209) ) - ROM_LOAD( "rom19", 0x0200, 0x0100, CRC(513224f0) SHA1(15b34612206138f6fc5f7478925b1fff2ed56aa8) ) -ROM_END - -ROM_START( getstarj ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* Region 0 - main cpu code */ - ROM_LOAD( "a68_00.bin", 0x00000, 0x4000, CRC(ad1a0143) SHA1(0d9adeb12bd4d5ad11e5bada0cd7498bc565c1db) ) - ROM_LOAD( "a68_01.bin", 0x04000, 0x4000, CRC(3426eb7c) SHA1(e91db45a650a1bfefd7c12c7553b647bc916c7c8) ) - ROM_LOAD( "a68_02.bin", 0x10000, 0x8000, CRC(3567da17) SHA1(29d698606d0bd30abfc3171d79bfad95b0de89fc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Region 3 - sound cpu code */ - ROM_LOAD( "a68-03", 0x00000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) ) - - ROM_REGION( 0x0800, REGION_CPU3, 0 ) /* 2k for the microcontroller */ - ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_05.bin", 0x00000, 0x2000, CRC(e3d409e7) SHA1(0b6be4767f110729f4dd1a472ef8d9a0c718b684) ) /* Chars */ - ROM_LOAD( "a68_04.bin", 0x02000, 0x2000, CRC(6e5ac9d4) SHA1(74f90b7a1ceb3b1c2fd92dff100d92dea0155530) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_09", 0x00000, 0x8000, CRC(a293cc2e) SHA1(a2c2598e92982d13b51cbb6efb4b963142233433) ) /* Tiles */ - ROM_LOAD( "a68_08", 0x08000, 0x8000, CRC(37662375) SHA1(46ba8a3f0b553d476ecf431d0d20556896b4ca43) ) - ROM_LOAD( "a68_07", 0x10000, 0x8000, CRC(cf1a964c) SHA1(e9223c8d4f3bdafed193a1ded63e377f16f45e17) ) - ROM_LOAD( "a68_06", 0x18000, 0x8000, CRC(05f9eb9a) SHA1(a71640a63b259799086d361ef293aa26cec46a0c) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68-13", 0x00000, 0x8000, CRC(643fb282) SHA1(d904d3c27c2b56341929c5eed4ea97e948c53c34) ) /* Sprites */ - ROM_LOAD( "a68-12", 0x08000, 0x8000, CRC(11f74e32) SHA1(02d8b4cc679f45a02c4989f2b62cde91b7418235) ) - ROM_LOAD( "a68-11", 0x10000, 0x8000, CRC(f24158cf) SHA1(db4c6b68a488b0798ea5f793ac8ced283a8ecab2) ) - ROM_LOAD( "a68-10", 0x18000, 0x8000, CRC(83161ed0) SHA1(a6aa28f22f487dc3a2ec07935e6d42bcdd1eff81) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "rom21", 0x0000, 0x0100, CRC(d6360b4d) SHA1(3e64548c82a3378fc091e104cdc2b0c7e592fc44) ) - ROM_LOAD( "rom20", 0x0100, 0x0100, CRC(4ca01887) SHA1(2892c89d5e60f1d10593adffff55c1a9654e8209) ) - ROM_LOAD( "rom19", 0x0200, 0x0100, CRC(513224f0) SHA1(15b34612206138f6fc5f7478925b1fff2ed56aa8) ) -ROM_END - -ROM_START( getstarb ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* Region 0 - main cpu code */ - ROM_LOAD( "gs_14.rom", 0x00000, 0x4000, CRC(1a57a920) SHA1(b1e9d5b29c0e3632eec3ad1ee51bf3392e4b816d) ) - ROM_LOAD( "gs_13.rom", 0x04000, 0x4000, CRC(805f8e77) SHA1(c3ad6eae842d2d10f716998d5a803038fa7b338f) ) - ROM_LOAD( "a68_02.bin", 0x10000, 0x8000, CRC(3567da17) SHA1(29d698606d0bd30abfc3171d79bfad95b0de89fc) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Region 3 - sound cpu code */ - ROM_LOAD( "a68-03", 0x0000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_05.bin", 0x00000, 0x2000, CRC(e3d409e7) SHA1(0b6be4767f110729f4dd1a472ef8d9a0c718b684) ) /* Chars */ - ROM_LOAD( "a68_04.bin", 0x02000, 0x2000, CRC(6e5ac9d4) SHA1(74f90b7a1ceb3b1c2fd92dff100d92dea0155530) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_09", 0x00000, 0x8000, CRC(a293cc2e) SHA1(a2c2598e92982d13b51cbb6efb4b963142233433) ) /* Tiles */ - ROM_LOAD( "a68_08", 0x08000, 0x8000, CRC(37662375) SHA1(46ba8a3f0b553d476ecf431d0d20556896b4ca43) ) - ROM_LOAD( "a68_07", 0x10000, 0x8000, CRC(cf1a964c) SHA1(e9223c8d4f3bdafed193a1ded63e377f16f45e17) ) - ROM_LOAD( "a68_06", 0x18000, 0x8000, CRC(05f9eb9a) SHA1(a71640a63b259799086d361ef293aa26cec46a0c) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68-13", 0x00000, 0x8000, CRC(643fb282) SHA1(d904d3c27c2b56341929c5eed4ea97e948c53c34) ) /* Sprites */ - ROM_LOAD( "a68-12", 0x08000, 0x8000, CRC(11f74e32) SHA1(02d8b4cc679f45a02c4989f2b62cde91b7418235) ) - ROM_LOAD( "a68-11", 0x10000, 0x8000, CRC(f24158cf) SHA1(db4c6b68a488b0798ea5f793ac8ced283a8ecab2) ) - ROM_LOAD( "a68-10", 0x18000, 0x8000, CRC(83161ed0) SHA1(a6aa28f22f487dc3a2ec07935e6d42bcdd1eff81) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "rom21", 0x0000, 0x0100, CRC(d6360b4d) SHA1(3e64548c82a3378fc091e104cdc2b0c7e592fc44) ) - ROM_LOAD( "rom20", 0x0100, 0x0100, CRC(4ca01887) SHA1(2892c89d5e60f1d10593adffff55c1a9654e8209) ) - ROM_LOAD( "rom19", 0x0200, 0x0100, CRC(513224f0) SHA1(15b34612206138f6fc5f7478925b1fff2ed56aa8) ) -ROM_END - -ROM_START( gtstarba ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* Region 0 - main cpu code */ - ROM_LOAD( "gs_rb_1.bin", 0x00000, 0x4000, CRC(9afad7e0) SHA1(6b2e82a6b7fcbfed5f4d250959ecc571fdf0cbc2) ) - ROM_LOAD( "gs_rb_2.bin", 0x04000, 0x4000, CRC(5feb0a60) SHA1(b1300055180ddf6ca96475eb3a27a17722273fc6) ) - ROM_LOAD( "gs_rb_3.bin", 0x10000, 0x8000, CRC(e3cfb1ba) SHA1(bd21655c82a14e18ff9df4539c4d0bb2484c73f1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Region 3 - sound cpu code */ - ROM_LOAD( "a68-03", 0x00000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) ) - - ROM_REGION( 0x04000, REGION_GFX1, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - /* these roms were in the set, but they're corrupt */ -// ROM_LOAD( "gs_rb_8.bin", 0x00000, 0x2000, CRC(a30aaf04) SHA1(2509554c3851a68eaec1cadc01f4d69c7aa2c09d) ) /* Chars */ -// ROM_LOAD( "gs_rb_7.bin", 0x02000, 0x2000, CRC(f47a93c6) SHA1(441fee1fb195bb2583d220f30dfcff617a31742a) ) - /* use the original roms instead */ - ROM_LOAD( "a68_05.bin", 0x00000, 0x2000, CRC(e3d409e7) SHA1(0b6be4767f110729f4dd1a472ef8d9a0c718b684) ) /* Chars */ - ROM_LOAD( "a68_04.bin", 0x02000, 0x2000, CRC(6e5ac9d4) SHA1(74f90b7a1ceb3b1c2fd92dff100d92dea0155530) ) - - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68_09", 0x00000, 0x8000, CRC(a293cc2e) SHA1(a2c2598e92982d13b51cbb6efb4b963142233433) ) /* Tiles */ - ROM_LOAD( "a68_08", 0x08000, 0x8000, CRC(37662375) SHA1(46ba8a3f0b553d476ecf431d0d20556896b4ca43) ) - ROM_LOAD( "a68_07", 0x10000, 0x8000, CRC(cf1a964c) SHA1(e9223c8d4f3bdafed193a1ded63e377f16f45e17) ) - ROM_LOAD( "a68_06", 0x18000, 0x8000, CRC(05f9eb9a) SHA1(a71640a63b259799086d361ef293aa26cec46a0c) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* Region 1 - temporary for gfx */ - ROM_LOAD( "a68-13", 0x00000, 0x8000, CRC(643fb282) SHA1(d904d3c27c2b56341929c5eed4ea97e948c53c34) ) /* Sprites */ - ROM_LOAD( "a68-12", 0x08000, 0x8000, CRC(11f74e32) SHA1(02d8b4cc679f45a02c4989f2b62cde91b7418235) ) - ROM_LOAD( "a68-11", 0x10000, 0x8000, CRC(f24158cf) SHA1(db4c6b68a488b0798ea5f793ac8ced283a8ecab2) ) - ROM_LOAD( "a68-10", 0x18000, 0x8000, CRC(83161ed0) SHA1(a6aa28f22f487dc3a2ec07935e6d42bcdd1eff81) ) - - ROM_REGION( 0x0300, REGION_PROMS, 0 ) - ROM_LOAD( "rom21", 0x0000, 0x0100, CRC(d6360b4d) SHA1(3e64548c82a3378fc091e104cdc2b0c7e592fc44) ) - ROM_LOAD( "rom20", 0x0100, 0x0100, CRC(4ca01887) SHA1(2892c89d5e60f1d10593adffff55c1a9654e8209) ) - ROM_LOAD( "rom19", 0x0200, 0x0100, CRC(513224f0) SHA1(15b34612206138f6fc5f7478925b1fff2ed56aa8) ) -ROM_END - -static DRIVER_INIT( tigerh ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, tigerh_mcu_r ); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, tigerh_mcu_w ); - -} - -READ8_HANDLER( getstar_mcu_r ) -{ - /* pass the first check only */ - return 0x76; -} - -static DRIVER_INIT( getstar ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, getstar_mcu_r ); -// memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, getstar_mcu_w ); -} - -static DRIVER_INIT( getstarb ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, getstar_e803_r ); -} - -READ8_HANDLER( gtstarba_port_0_read ) -{ - /* the bootleg has it's own 'protection' on startup? */ - if (activecpu_get_pc()==0x6d1e) return 0; - if (activecpu_get_pc()==0x6d24) return 6; - if (activecpu_get_pc()==0x6d2c) return 2; - if (activecpu_get_pc()==0x6d34) return 4; - - logerror("Port Read PC=%04x\n",activecpu_get_pc()); - - return 0; -} - -READ8_HANDLER( gtstarba_dpram_r ) -{ - /* requires this or it gets stuck with 'rom test' on screen */ - /* it is possible the program roms are slighly corrupt like the gfx roms, or - that the bootleg simply shouldn't execute the code due to the modified - roms */ - if (activecpu_get_pc()==0x6d54) return 0xff; - return slapfight_dpram[offset]; -} - -static DRIVER_INIT( gtstarba ) -{ - memory_install_read8_handler(0, ADDRESS_SPACE_IO, 0x0, 0x0, 0, 0, gtstarba_port_0_read ); - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc800, 0xc80f, 0, 0, gtstarba_dpram_r ); -} - - -static int slapfigh_prot_pos; - -READ8_HANDLER( slapfigh_mcu_r ) -{ - /* pass initial checks */ - int protvalues[] = { 0xc7, 0x55, -1 }; - - if ((activecpu_get_pc()==0x1369) || // slapfigh - (activecpu_get_pc()==0x136d)) // slapfiga - { - int retdat = protvalues[slapfigh_prot_pos]; - if (retdat == -1) - { - slapfigh_prot_pos = 0; - retdat = protvalues[slapfigh_prot_pos]; - } - - slapfigh_prot_pos++; - return retdat; - } - logerror("MCU Read PC=%04x\n",activecpu_get_pc()); - return 0; -} - -static DRIVER_INIT( slapfigh ) -{ - slapfigh_prot_pos = 0; - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, slapfigh_mcu_r ); -// memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0xe803, 0xe803, 0, 0, getstar_mcu_w ); -} - - -/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */ -GAME( 1985, perfrman, 0, perfrman, perfrman, 0, ROT270, "[Toaplan] Data East Corporation","Performan (Japan)", 0 ) -GAME( 1985, perfrmau, perfrman, perfrman, perfrman, 0, ROT270, "[Toaplan] Data East USA", "Performan (US)", 0 ) -GAME( 1985, tigerh, 0, tigerh, tigerh, tigerh, ROT270, "Taito America Corp.", "Tiger Heli (US)", GAME_NO_COCKTAIL ) -GAME( 1985, tigerh2, tigerh, tigerh, tigerh, tigerh, ROT270, "Taito Corp.", "Tiger Heli (Japan set 1)", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1985, tigerhj, tigerh, tigerh, tigerh, tigerh, ROT270, "Taito Corp.", "Tiger Heli (Japan set 2)", GAME_NO_COCKTAIL ) -GAME( 1985, tigerhb1, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", 0 ) -GAME( 1985, tigerhb2, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", GAME_NO_COCKTAIL ) -GAME( 1986, slapfigh, 0, slapfigh, slapfigh, slapfigh, ROT270, "Taito", "Slap Fight (set 1)", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1986, slapfiga, slapfigh, slapfigh, slapfigh, slapfigh, ROT270, "Taito", "Slap Fight (set 2)", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1986, slapbtjp, slapfigh, slapfigh, slapfigh, 0, ROT270, "bootleg", "Slap Fight (Japan bootleg)", GAME_NO_COCKTAIL ) -GAME( 1986, slapbtuk, slapfigh, slapbtuk, slapfigh, 0, ROT270, "bootleg", "Slap Fight (English bootleg)", GAME_NO_COCKTAIL ) -GAME( 1986, slapfgtr, slapfigh, slapbtuk, slapfigh, 0, ROT270, "bootleg", "Slap Fight (bootleg)", GAME_NO_COCKTAIL ) // PCB labeled 'slap fighter' -GAME( 1986, alcon, slapfigh, slapfigh, slapfigh, slapfigh, ROT270, "Taito America Corp.","Alcon", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1986, getstar, 0, slapfigh, getstar, getstar, ROT0, "Taito", "Guardian", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1986, getstarj, getstar, slapfigh, getstar, getstar, ROT0, "Taito", "Get Star (Japan)", GAME_NOT_WORKING | GAME_NO_COCKTAIL ) -GAME( 1986, getstarb, getstar, slapfigh, getstar, getstarb, ROT0, "bootleg","Get Star (bootleg, set 1)", GAME_NO_COCKTAIL ) -GAME( 1986, gtstarba, getstar, slapfigh, gtstarba, gtstarba, ROT0, "bootleg","Get Star (bootleg, set 2)", GAME_NO_COCKTAIL ) diff --git a/src/drivers/slapshot.c b/src/drivers/slapshot.c deleted file mode 100644 index 059185459..000000000 --- a/src/drivers/slapshot.c +++ /dev/null @@ -1,754 +0,0 @@ -/*************************************************************************** - -Slapshot (c) Taito 1994 -Operation Wolf 3 (c) Taito 1994 --------- - -David Graves - -(this is based on the F2 driver by Bryan McPhail, Brad Oliver, Andrew Prime, -Nicola Salmoria.) - - ***** - -Slapshot uses one or two newer Taito custom ics, but the hardware is -very similar to the Taito F2 system, especially F2 games using the same -TC0480SCP tilemap generator (e.g. Metal Black). - -This game has 6 separate layers of graphics - four 32x32 tiled scrolling -zoomable background planes of 16x16 tiles, a text plane with 64x64 8x8 -character tiles with character definitions held in ram, and a sprite -plane with zoomable 16x16 sprites. This sprite system appears to be -identical to the one used in F2 and F3 games. - -Slapshot switches in and out of the double-width tilemap mode of the -TC0480SCP. This is unusual, as most games stick to one width. - -The palette generator is 8 bits per color gun like the Taito F3 system. -Like Metal Black the palette space is doubled, and the first half used -for sprites only so the second half can be devoted to tilemaps. - -The main cpu is a 68000. - -There is a slave Z80 which interfaces with a YM2610B for sound. -Commands are written to it by the 68000 (as in the Taito F2 games). - - -Slapshot custom ics -------------------- - -TC0480SCP (IC61) - known tilemap chip -TC0640FIO (IC83) - new version of TC0510NIO io chip? -TC0650FDA (IC84) - (palette?) -TC0360PRI (IC56) - (common in pri/color combo on F2 boards) -TC0530SYC (IC58) - known sound comm chip -TC0520TBC (IC36) - known object chip -TC0540OBN (IC54) - known object chip - - -TODO -==== - -Some hanging notes (try F2 while music is playing). - -Sprite colors issue: when you do a super-shot, on the cut -screen the man (it's always the American) should be black. - -Col $f8 is used for the man, col $fc for the red/pink -"explosion" under the puck. (Use this to track where they are -in spriteram quickly.) Both of these colors are only set -when the first super-shot happens, so it's clear those -colors are for the super-shot... but screenshot evidence -proves the man should be entirely black. - -Extract common sprite stuff from this and taito_f2 ? - - -Code ----- -$854 marks start of service mode - ------------------ - -Operation Wolf 3 is on almost identical hardware to Slapshot. It uses -far more graphics data and samples than Slapshot. - -Compared to Taito's gun game Under Fire (1993), the hardware here is -obviously underpowered. Large data roms help the 68000 throw around the -gfx (a method used in Dino Rex) but can't disguise that it should have -been done using enhanced Z system or F3 system hardware. - -*************************************************************************** - -Operation Wolf 3 (US Version) - (c) 1994 Taito America Corp. - -Main Board K11E0801A - Not to Scale:-) - - D74 17 Sub Board Connector - D74 20 MC68000P12F D74-05 SW2 - D74 18 D74-06 - D74 16 MK48T08B-10 TCO480SCP 84256A-70L - 84256A-70L -MB8421-90LP D74-02 84256A-70L 26.6860MHz TCO640FIO - D74-03 84256A-70L - D74-04 - TCO540OBN TCO360PRI TCO650FDA - TCO520TBC - 32.0000MHz Y3016-F - D74-01 TCO530SYC D74 19 YM2610B - Z0840004PSC - - - -Sub Board K91X0488A - Basicly a few connectors, Caps, resistors & ADC0809CNN - -Chips: - Main: MC68000P12F -Sound: Z084004PSC, YM2610B, Y3016-F - OSC: 32.000MHz, 26.6860MHz - -Taito Custom: - TCO480SCP - TCO640FIO - TCO650FDA - TCO530SYC - TCO520TBC - TCO540OBN - TCO360PRI - -ST TimeKeeper Ram MK48T08B-10 - Lithuim Batery backed RAM chip -MB8421-90LP - Dual Port SRAM -ADC0809CNN - 8-bit Microprocessor Compatible A/D Converter - With 8-Channel Multiplexer - DataSheet: http://www.national.com/ds/AD/ADC0808.pdf - -Region byte at offset 0x031: - d74_21.1 0x02 World Version - d74_20.1 0x01 US Version - d74_??.1 0x00 Will Produce a Japanese Version, but it's unknown if the - actual sound CPU code is the same as the World version, - US versions or different then both. -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2610intf.h" -#include "machine/timekpr.h" - - -VIDEO_EOF( opwolf3_full_buffer_delayed ); -VIDEO_EOF( taito_no_buffer ); -VIDEO_START( slapshot ); -VIDEO_UPDATE( slapshot ); - -static UINT16 *color_ram; - -extern UINT16 *taito_sprite_ext; -extern size_t taito_spriteext_size; - - -/****************************************************** - COLOR -******************************************************/ - -static READ16_HANDLER( color_ram_word_r ) -{ - return color_ram[offset]; -} - -static WRITE16_HANDLER( color_ram_word_w ) -{ - int r,g,b; - COMBINE_DATA(&color_ram[offset]); - - if ((offset % 2) == 1) /* assume words written sequentially */ - { - r = (color_ram[offset-1] &0xff); - g = (color_ram[offset] &0xff00) >> 8; - b = (color_ram[offset] &0xff); - - palette_set_color(Machine,offset/2,r,g,b); - } -} - - -/*********************************************************** - INTERRUPTS -***********************************************************/ - -void slapshot_interrupt6(int x) -{ - cpunum_set_input_line(0,6,HOLD_LINE); -} - - -static INTERRUPT_GEN( slapshot_interrupt ) -{ - timer_set(TIME_IN_CYCLES(200000-500,0),0, slapshot_interrupt6); - cpunum_set_input_line(0,5,HOLD_LINE); -} - - -/********************************************************** - GAME INPUTS -**********************************************************/ - -static READ16_HANDLER( slapshot_service_input_r ) -{ - switch (offset) - { - case 0x03: - return ((input_port_3_word_r(0,0) & 0xef) | - (input_port_5_word_r(0,0) & 0x10)) << 8; /* IN3 + service switch */ - - default: - return TC0640FIO_r(offset) << 8; - } -} - -static READ16_HANDLER( opwolf3_adc_r ) -{ - return readinputport(6 + offset)<<8; -} - -static WRITE16_HANDLER( opwolf3_adc_req_w ) -{ - /* 4 writes a frame - one for each analogue port */ - cpunum_set_input_line(0,3,HOLD_LINE); -} - -/***************************************************** - SOUND -*****************************************************/ - -static INT32 banknum = -1; - -static void reset_sound_region(void) -{ - memory_set_bankptr( 10, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 ); -} - -static MACHINE_START( slapshot ) -{ - state_save_register_global(banknum); - state_save_register_func_postload(reset_sound_region); - return 0; -} - - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = (data - 1) & 7; - reset_sound_region(); -} - -static WRITE16_HANDLER( slapshot_msb_sound_w ) -{ - if (offset == 0) - taitosound_port_w (0,(data >> 8) & 0xff); - else if (offset == 1) - taitosound_comm_w (0,(data >> 8) & 0xff); - -#ifdef MAME_DEBUG - if (data & 0xff) - popmessage("taito_msb_sound_w to low byte: %04x",data); -#endif -} - -static READ16_HANDLER( slapshot_msb_sound_r ) -{ - if (offset == 1) - return ((taitosound_comm_r (0) & 0xff) << 8); - else return 0; -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( slapshot_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM) /* main RAM */ - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) /* sprite ram */ - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) /* debugging */ - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0x900000, 0x907fff) AM_READ(color_ram_word_r) /* 8bpg palette */ - AM_RANGE(0xa00000, 0xa03fff) AM_READ(timekeeper_0_msb16_r) /* nvram (only low bytes used) */ - AM_RANGE(0xc00000, 0xc0000f) AM_READ(TC0640FIO_halfword_byteswap_r) - AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */ - AM_RANGE(0xd00000, 0xd00003) AM_READ(slapshot_msb_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( slapshot_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(MWA16_RAM) AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0x900000, 0x907fff) AM_WRITE(color_ram_word_w) AM_BASE(&color_ram) - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(timekeeper_0_msb16_w) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_swap_w) /* priority chip */ - AM_RANGE(0xc00000, 0xc0000f) AM_WRITE(TC0640FIO_halfword_byteswap_w) - AM_RANGE(0xd00000, 0xd00003) AM_WRITE(slapshot_msb_sound_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( opwolf3_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM) /* main RAM */ - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) /* sprite ram */ - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) /* debugging */ - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0x900000, 0x907fff) AM_READ(color_ram_word_r) /* 8bpg palette */ - AM_RANGE(0xa00000, 0xa03fff) AM_READ(timekeeper_0_msb16_r) /* nvram (only low bytes used) */ - AM_RANGE(0xc00000, 0xc0000f) AM_READ(TC0640FIO_halfword_byteswap_r) - AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */ - AM_RANGE(0xd00000, 0xd00003) AM_READ(slapshot_msb_sound_r) - AM_RANGE(0xe00000, 0xe00007) AM_READ(opwolf3_adc_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( opwolf3_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(MWA16_RAM) AM_BASE(&taito_sprite_ext) AM_SIZE(&taito_spriteext_size) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0x900000, 0x907fff) AM_WRITE(color_ram_word_w) AM_BASE(&color_ram) - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(timekeeper_0_msb16_w) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_swap_w) /* priority chip */ - AM_RANGE(0xc00000, 0xc0000f) AM_WRITE(TC0640FIO_halfword_byteswap_w) - AM_RANGE(0xd00000, 0xd00003) AM_WRITE(slapshot_msb_sound_w) - AM_RANGE(0xe00000, 0xe00007) AM_WRITE(opwolf3_adc_req_w) -ADDRESS_MAP_END - -/***************************************************************************/ - -static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK10) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe200, 0xe200) AM_READ(MRA8_NOP) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS (DIPs in nvram) -***********************************************************/ - -INPUT_PORTS_START( slapshot ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) /* bit is service switch at c0002x */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN5") /* IN5, so we can OR in service switch */ - PORT_SERVICE_NO_TOGGLE(0x10, IP_ACTIVE_LOW) -INPUT_PORTS_END - -INPUT_PORTS_START( opwolf3 ) - PORT_START_TAG("IN0") /* IN0, all bogus */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("1 Player Start/Button3")// also button 3 - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("2 Player Start/Button3")// also button 3 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* bit is service switch at c0002x */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN5") /* IN5, so we can OR in service switch */ - PORT_SERVICE_NO_TOGGLE(0x10, IP_ACTIVE_LOW) - - PORT_START_TAG("IN6") /* IN 6, P1X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN7") /* IN 7, P1Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_PLAYER(1) - - PORT_START_TAG("IN8") /* IN 8, P2X */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("IN9") /* IN 9, P2Y */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - -/*********************************************************** - GFX DECODING - -***********************************************************/ - -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,2), - 6, - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { - 4, 0, 12, 8, - 16+4, 16+0, 16+12, 16+8, - 32+4, 32+0, 32+12, 32+8, - 48+4, 48+0, 48+12, 48+8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout slapshot_charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode slapshot_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tilelayout, 0, 256 }, /* sprite parts */ - { REGION_GFX1, 0x0, &slapshot_charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - - - -/************************************************************** - YM2610B (SOUND) -**************************************************************/ - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_DRIVER_START( slapshot ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 14346000) /* 28.6860 MHz / 2 ??? */ - MDRV_CPU_PROGRAM_MAP(slapshot_readmem,slapshot_writemem) - MDRV_CPU_VBLANK_INT(slapshot_interrupt,1) - - MDRV_CPU_ADD(Z80,32000000/8) - /* audio CPU */ /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_START(slapshot) - MDRV_NVRAM_HANDLER(timekeeper_0) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(slapshot_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(slapshot) - MDRV_VIDEO_EOF(taito_no_buffer) - MDRV_VIDEO_UPDATE(slapshot) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610B, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( opwolf3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 14346000) /* 28.6860 MHz / 2 ??? */ - MDRV_CPU_PROGRAM_MAP(opwolf3_readmem,opwolf3_writemem) - MDRV_CPU_VBLANK_INT(slapshot_interrupt,1) - - MDRV_CPU_ADD(Z80,32000000/8) - /* audio CPU */ /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_NVRAM_HANDLER(timekeeper_0) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(slapshot_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(slapshot) - MDRV_VIDEO_EOF(taito_no_buffer) - MDRV_VIDEO_UPDATE(slapshot) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610B, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( slapshot ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024K for 68000 code */ - ROM_LOAD16_BYTE( "d71-15.3", 0x00000, 0x80000, CRC(1470153f) SHA1(63fd5314fcaafba7326fd9481e3c686901dde65c) ) - ROM_LOAD16_BYTE( "d71-16.1", 0x00001, 0x80000, CRC(f13666e0) SHA1(e8b475163ea7da5ee3f2b900004cc67c684bab75) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "d71-07.77", 0x00000, 0x4000, CRC(dd5f670c) SHA1(743a9563c40fe40178c9ec8eece71a08380c2239) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d71-04.79", 0x00000, 0x80000, CRC(b727b81c) SHA1(9f56160e2b3e4d59cfa96b5c013f4e368781666e) ) /* SCR */ - ROM_LOAD16_BYTE( "d71-05.80", 0x00001, 0x80000, CRC(7b0f5d6d) SHA1(a54e4a651dc7cdc160286afb3d38531c7b9396b1) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d71-01.23", 0x000000, 0x100000, CRC(0b1e8c27) SHA1(ffa452f7414f3d61edb69bb61b29a0cc8d9176d0) ) /* OBJ 6bpp */ - ROM_LOAD16_BYTE( "d71-02.24", 0x000001, 0x100000, CRC(ccaaea2d) SHA1(71b507f215f37e991abae5523642417a6b23a70d) ) - ROM_LOAD ( "d71-03.25", 0x300000, 0x100000, CRC(dccef9ec) SHA1(ee7a49727b822cf4c1d7acff994b77ea6191c423) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d71-06.37", 0x00000, 0x80000, CRC(f3324188) SHA1(70dd724441eae8614218bc7f0f51860bd2462f0c) ) - - /* no Delta-T samples */ - -// Pals (not dumped) -// ROM_LOAD( "d71-08.40", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "d71-09.57", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "d71-10.60", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "d71-11.42", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "d71-12.59", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "d71-13.8", 0x00000, 0x00???, NO_DUMP ) -ROM_END - -ROM_START( opwolf3 ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 1024K for 68000 code */ - ROM_LOAD16_BYTE( "d74_16.3", 0x000000, 0x80000, CRC(198ff1f6) SHA1(f5b51e39cd73ea56cbf53731d3c885bfcecbd696) ) - ROM_LOAD16_BYTE( "d74_21.1", 0x000001, 0x80000, CRC(c61c558b) SHA1(6340eb83ba4cd8d7c63b22ea738c8367c87c1de1) ) - ROM_LOAD16_BYTE( "d74_18.18", 0x100000, 0x80000, CRC(bd5d7cdb) SHA1(29f1cd7b86bc05f873e93f088194113da87a3b86) ) // data ??? - ROM_LOAD16_BYTE( "d74_17.17", 0x100001, 0x80000, CRC(ac35a672) SHA1(8136bd076443bfaeb3d339971d88951e8b2b59b4) ) // data ??? - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "d74_22.77", 0x00000, 0x4000, CRC(118374a6) SHA1(cc1d0d28efdf1df3e648e7d932405811854ba4ee) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d74_05.80", 0x000000, 0x200000, CRC(85ea64cc) SHA1(1960a934191c451df1554323d47f6fc64939b0ce) ) /* SCR */ - ROM_LOAD16_BYTE( "d74_06.81", 0x000001, 0x200000, CRC(2fa1e08d) SHA1(f1f34b308202fe08e73535424b5b4e3d91295224) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d74_02.23", 0x000000, 0x200000, CRC(aab86332) SHA1(b9133407504e9ef4fd5ae7d284cdb0c7f78f9a99) ) /* OBJ 6bpp */ - ROM_LOAD16_BYTE( "d74_03.24", 0x000001, 0x200000, CRC(3f398916) SHA1(4b6a3ee0baf5f32e24e5040f233300f1ca347fe7) ) - ROM_LOAD ( "d74_04.25", 0x600000, 0x200000, CRC(2f385638) SHA1(1ba2ec7d9b1c491e1cc6d7e646e09ef2bc063f25) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d74_01.37", 0x000000, 0x200000, CRC(115313e0) SHA1(51a69e7a26960b1328ccefeaec0fb26bdccc39f2) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( opwolf3u ) - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 1024K for 68000 code */ - ROM_LOAD16_BYTE( "d74_16.3", 0x000000, 0x80000, CRC(198ff1f6) SHA1(f5b51e39cd73ea56cbf53731d3c885bfcecbd696) ) - ROM_LOAD16_BYTE( "d74_20.1", 0x000001, 0x80000, CRC(960fd892) SHA1(2584a048d29a96b69428fba2b71269ea6ccf9010) ) - ROM_LOAD16_BYTE( "d74_18.18", 0x100000, 0x80000, CRC(bd5d7cdb) SHA1(29f1cd7b86bc05f873e93f088194113da87a3b86) ) // data ??? - ROM_LOAD16_BYTE( "d74_17.17", 0x100001, 0x80000, CRC(ac35a672) SHA1(8136bd076443bfaeb3d339971d88951e8b2b59b4) ) // data ??? - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "d74_19.77", 0x00000, 0x4000, CRC(05d53f06) SHA1(48b0cd68ad3758f424552a4e3833c5a1c2f1825b) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d74_05.80", 0x000000, 0x200000, CRC(85ea64cc) SHA1(1960a934191c451df1554323d47f6fc64939b0ce) ) /* SCR */ - ROM_LOAD16_BYTE( "d74_06.81", 0x000001, 0x200000, CRC(2fa1e08d) SHA1(f1f34b308202fe08e73535424b5b4e3d91295224) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d74_02.23", 0x000000, 0x200000, CRC(aab86332) SHA1(b9133407504e9ef4fd5ae7d284cdb0c7f78f9a99) ) /* OBJ 6bpp */ - ROM_LOAD16_BYTE( "d74_03.24", 0x000001, 0x200000, CRC(3f398916) SHA1(4b6a3ee0baf5f32e24e5040f233300f1ca347fe7) ) - ROM_LOAD ( "d74_04.25", 0x600000, 0x200000, CRC(2f385638) SHA1(1ba2ec7d9b1c491e1cc6d7e646e09ef2bc063f25) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d74_01.37", 0x000000, 0x200000, CRC(115313e0) SHA1(51a69e7a26960b1328ccefeaec0fb26bdccc39f2) ) - - /* no Delta-T samples */ -ROM_END - - -static DRIVER_INIT( slapshot ) -{ - unsigned int offset,i; - UINT8 *gfx = memory_region(REGION_GFX2); - int size=memory_region_length(REGION_GFX2); - int data; - - timekeeper_init( 0, TIMEKEEPER_MK48T08, NULL ); - - offset = size/2; - for (i = size/2+size/4; i>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; - - gfx[offset] = (d1<<2) | (d2<<6); - offset++; - - gfx[offset] = (d3<<2) | (d4<<6); - offset++; - } -} - -GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", 0 ) -GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", 0 ) -GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", 0 ) diff --git a/src/drivers/snk.c b/src/drivers/snk.c deleted file mode 100644 index 1e6512e1e..000000000 --- a/src/drivers/snk.c +++ /dev/null @@ -1,4519 +0,0 @@ -/* -snk.c -various SNK triple Z80 games - -Known Issues: -- consolidate gfx decode/drivers, if possible -- emulate protection (get rid of patches) - -Bryan McPhail, 27/01/00: - - Fixed Gwar, Gwarj, both working properly now. - Renamed Gwarjp to Gwarj. - Added Gwara - Removed strcmp(drv->names) :) - Made Gwara (the new clone) the main set, and old gwar to gwara. This is - because (what is now) gwara seemingly has a different graphics board. Fix - chars and scroll registers are in different locations, while gwar (new) - matches the bootleg and original japanese versions. - - Added Bermuda Triangle (alternate), World Wars, these are the 'early' - versions of the main set with different sprites, gameplay etc. All roms - are different except for the samples, technically Bermuda Triangle (Alt) - is a clone of World Wars rather than the main Bermuda set. - - Bermuda Triangle (alt) has some tile banking problems (see attract mode), - this may also be the cause of the title screen corruption in Bermuda - Triangle (main set). - - -Oct. 5, 2003: - - Added tdfever2, all ROMs are replacements for those in tdfever except - td22.6l, td21.6k, and td20.8k. td20.8k is the reason the new gfx code - is needed. Though the gfx appear strange on the vs. screens / choose - number of players screens eg. the numbers aren't in the boxes, they're - in the lower right corners, and there is no background color like - there is in tdfever, this is not a bug, we have confirmed it to be - correct against my pcb. - - -Stephh's notes (based on the games Z80 code and some tests) : - -1) 'ftsoccer' - - - The code to support the rotary jotsticks has been removed and/or patched - in this version (check the 'jmp' instruction at 0x00f1). - I'm SURE that I've played a version in France with the rotary joysticks, - and IMO it isn't dumped at the moment 8( - - - DEF_STR( Game_Time ) Dip Switch is the time for match type A. Here is what you - have to add for games B to E : - - Match Type B C D E - Time to add 00:30 01:00 01:30 02:00 - - - When "Game Mode" Dip Switch is set to "Win Match Against CPU", this has an - effect on matches types A and B : player is awarded 99 goals at the end of - the round, which is enough to win all matches then see the ending credits. - - - Here are the buttons mapped to start a game : - * IPT_START1 : starts game A - * IPT_START2 : starts game B - * IPT_START3 : starts game C - * IPT_START4 : starts game D - * IPT_SERVICE2 : starts game E - - -2a) 'bermudat' - - - Japan version (5 letters when entering initials, and "TOKYO" as default names) - - - How to enter the "test mode" : while "front turbo check" is displayed on screen, - press '1' (start player 1) until a grid is displayed. You can then press '1' - to go to the next part or press '2' to reset the game. - - - The typo bug from 'bermudao' "test mode" is fixed. - - -2b) 'bermudao' - - - Japan version (5 letters when entering initials, and "TOKYO" as default names) - - - How to enter the "test mode" : while "front turbo check" is displayed on screen, - press '1' (start player 1) until a grid is displayed. You can then press '1' - to go to the next part or press '2' to reset the game. - - - There is typo bug in the "test mode" : when "Bonus Life" Dip Switch is set to - "60k 120k", it is written "80000P 160000P every". - - -2c) 'bermudaa' - - - US version (3 letters when entering initials, and "SNK " as default names) - - - How to enter the "test mode" : reset the game and press F2 until is a grid is - displayed. You can then press F2 again to go to the next part. - - -2d) 'worldwar' - - - World version (5 letters when entering initials, and "WORLD" as default names) - And this had been confirmed by the guy who loant the PCB. - - - How to enter the "test mode" : reset the game and press F2 until is a grid is - displayed. You can then press F2 again to go to the next part. - - - Don't trust the "test mode" for the Dip Switches ! The infos which are - displayed are the one from 'bermudao' (see what the "unknown" Dip Switches do). - - -AT042903: - - fixed Psycho Soldier lyrics tempo - - fixed char layer alignment in Fighting Golf, Athena and TNK3 - - cleaned garbage tiles in Bermuda Triangle and improved sprite priority - - corrected tile ROM loading in Bermuda(alt)/Worldwar - - corrected sound ROM loading and palette in Touchdown Fever - - various sprite adjustments from MAME32 plus - -AT08XX03: - - revamped CPU handshaking, improved clipping and made changes public to - marvins.c, hal21.c and sgladiat.c - - fixed shadows in tnk3, athena, fitegolf, countryc, - and ftsoccer - - added highlights to tdfever and ftsoccer(needs masking at team selection) - - notes: - - Mad Crasher and Gladiator(sgladiat.c) have different memory maps but - their code base and port layouts are quite similar. The following are - some distinctive designs of these two games common to many other SNK - triple Z80 boards made in the mid-80's. - - 1) Shared RAM - - The "shared" RAM in Mad Crasher is more appropriately - "switched" RAM. Marvin's schematics indicate selector - circuits and when a CPU wants to access specific part of - the memory it will write to the first byte of the 4k page - and give the selector a few cycles to settle. - - It is not known what exactly happens when more than one CPU - try to access the same page. - - 2) IRQ - - CPUA starts recalculating game logic and constructing - sprites for the next frame upon receiving IRQ0. When CPUB - receives its own IRQ0 it copies sprite data prepared by - CPUA in the previous frame to VRAM and updates scroll - registers. The process takes about 2ms which fits in vblank - nicely. However, if CPUA modifies sprite data before - blitting is complete sprites for the current frame may get - overwritten by those for the next and it creates a funny - rubber-band effect. - - In essence CPUA's IRQ0 should fire 1-2ms later than CPUB's - to maintain visual stability. Increasing the delay will only - waste cycles in idle loops. Note that certain games may have - CPUA and B switched roles. - - 3) NMI - - CPUA and B handshake through NMIs. They were implemented in - all SNK triple Z80 drivers as - - ENABLE->SIGNAL->HOLDUP->MAKEUP->ACKNOWLEDGE - - but upon close examination of the games code no evidence of - any game relying on this behavior to function correctly was - found. Sometimes it even has adverse effects by triggering - extra NMI's therefore handshaking has been reduced to basic - - SIGNAL->ACKNOWLEDGE - - 4) Sound Latching - - Each game has a byte-size sound command port being - represented by Marvin's scheme as a single unit consists - of one flip-flop and two latches. The flip-flop may be - responsible for the sound busy flag but the second latch's - function is unclear. HAL21 seems to have the most complex - soundlatch circuit and the hardware is able to report - playback status in six different bits. - - The sound busy flag is raised when CPUA writes to the - soundlatch and is lowered when a designated port is read. - For games based on Marvin's hardware the designated port is - the soundlatch itself. Most games clear the flag within the - alerting IRQ autonomously but some like ASO and HAL21 do it - shortly after the sound CPU has finished modulating an effect. - -**************************************************************************** - -ym3526 -Aso, Tank - -ym3526x2 -Athena, Ikari, Fighting Golf - -ym3526 + y8950 -Victory Road, Psycho Soldier, Bermuda Triangle, Touchdown Fever, Guerilla War - -ym3812 + y8950 -Legofair, Chopper1 - -y8950 -Fighting Soccer - -Credits (in alphabetical order) - Ernesto Corvi - Carlos A. Lozano - Jarek Parchanski - Phil Stroffolino (pjstroff@hotmail.com) - Victor Trucco - Marco Cassili - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "snk.h" -#include "sound/3812intf.h" - -/*********************************************************************/ -// Variables and Interrupt Handlers Common to All SNK Triple Z80 Games - -int snk_gamegroup = 0; -int snk_sound_busy_bit = 0; -int snk_irq_delay = 1500; - -// see IRQ notes in drivers\marvins.c -static void irq_trigger_callback(int cpu) { cpunum_set_input_line(cpu, 0, HOLD_LINE); } - -INTERRUPT_GEN( snk_irq_AB ) -{ - cpunum_set_input_line(0, 0, HOLD_LINE); - timer_set(TIME_IN_USEC(snk_irq_delay), 1, irq_trigger_callback); -} - -INTERRUPT_GEN( snk_irq_BA ) -{ - cpunum_set_input_line(1, 0, HOLD_LINE); - timer_set(TIME_IN_USEC(snk_irq_delay), 0, irq_trigger_callback); -} - -// NMI handshakes between CPUs are determined to be much simpler -READ8_HANDLER ( snk_cpuA_nmi_trigger_r ) { cpunum_set_input_line(0, INPUT_LINE_NMI, ASSERT_LINE); return 0; } -WRITE8_HANDLER( snk_cpuA_nmi_ack_w ) { cpunum_set_input_line(0, INPUT_LINE_NMI, CLEAR_LINE); } - -READ8_HANDLER ( snk_cpuB_nmi_trigger_r ) { cpunum_set_input_line(1, INPUT_LINE_NMI, ASSERT_LINE); return 0; } -WRITE8_HANDLER( snk_cpuB_nmi_ack_w ) { cpunum_set_input_line(1, INPUT_LINE_NMI, CLEAR_LINE); } - -/*********************************************************************/ - -#define SNK_MAX_INPUT_PORTS 13 - -typedef enum { - SNK_UNUSED, - SNK_INP0, - SNK_INP1,SNK_INP2,SNK_INP3,SNK_INP4, - SNK_INP5,SNK_INP6,SNK_INP7,SNK_INP8, - SNK_INP9,SNK_INP10,SNK_INP11, - SNK_ROT8_PLAYER1, SNK_ROT8_PLAYER2, - SNK_ROT12_PLAYER1, SNK_ROT12_PLAYER2 -} SNK_INPUT_PORT_TYPE; - -UINT8 *snk_rambase; -static UINT8 *io_ram; -static const SNK_INPUT_PORT_TYPE *snk_io; /* input port configuration */ - -static int hard_flags; - -/*********************************************************************/ - -/* - This 4 bit register is mapped at 0xf800. - - Writes to this register always contain 0x0f in the lower nibble. - The upper nibble contains a mask, which clears bits - - bit 0: set by YM3526/YM3812 callback? - bit 1: set by Y8950 callback? - bit 2: sound cpu busy - bit 3: sound command pending -*/ -static int snk_sound_register; - -/*********************************************************************/ - -static int snk_rot8( int which ){ - static const int dial_8[8] = { 0xf0,0x30,0x10,0x50,0x40,0xc0,0x80,0xa0 }; - int value = readinputport(which+1); - int joypos16 = value>>4; - return (value&0xf) | dial_8[joypos16>>1]; -} - -static int snk_rot12( int which ){ -/* - This routine converts a 4 bit (16 directional) analog input to the 12 - directional input that many SNK games require. -*/ - static const int dial_12[13] = { - 0xb0,0xa0,0x90,0x80,0x70,0x60, - 0xf0, - /* 0xf0 isn't a valid direction, but avoids the "joystick error" - protection - ** in Guerilla War which happens when direction changes directly from - ** 0x50<->0x60 8 times. - */ - 0x50,0x40,0x30,0x20,0x10,0x00 - }; - int value = readinputport(which+1); - int joydir = value>>4; - static int old_joydir[2]; - static int dial_select[2]; - - int delta = (joydir - old_joydir[which])&0xf; - old_joydir[which] = joydir; - - if( delta<=7 && delta>=1 ){ - if( dial_select[which]==12 ) dial_select[which] = 0; - else dial_select[which]++; - } - else if( delta > 8 ){ - if( dial_select[which]==0 ) dial_select[which] = 12; - else dial_select[which]--; - } - - return (value&0xf) | dial_12[dial_select[which]]; -} - -static int snk_input_port_r( int which ){ - switch( snk_io[which] ){ - case SNK_INP0: - { - int value = input_port_0_r( 0 ); - if( (snk_sound_register & 0x04) == 0 ) value &= ~snk_sound_busy_bit; - return value; - } - - case SNK_ROT8_PLAYER1: return snk_rot8( 0 ); - case SNK_ROT8_PLAYER2: return snk_rot8( 1 ); - - case SNK_ROT12_PLAYER1: return snk_rot12( 0 ); - case SNK_ROT12_PLAYER2: return snk_rot12( 1 ); - - case SNK_INP1: return input_port_1_r(0); - case SNK_INP2: return input_port_2_r(0); - case SNK_INP3: return input_port_3_r(0); - case SNK_INP4: return input_port_4_r(0); - case SNK_INP5: return input_port_5_r(0); - case SNK_INP6: return input_port_6_r(0); - case SNK_INP7: return input_port_7_r(0); - case SNK_INP8: return input_port_8_r(0); - case SNK_INP9: return input_port_9_r(0); - case SNK_INP10: return input_port_10_r(0); - case SNK_INP11: return input_port_11_r(0); - - default: - logerror("read from unmapped input port:%d\n", which ); - break; - } - return 0; -} - -/*********************************************************************/ - -static WRITE8_HANDLER( snk_sound_register_w ){ - snk_sound_register &= (data>>4); -} - -static READ8_HANDLER( snk_sound_register_r ){ - return snk_sound_register;// | 0x2; /* hack; lets chopper1 play music */ -} - -void snk_sound_callback0_w( int state ){ /* ? */ - if( state ) snk_sound_register |= 0x01; -} - -void snk_sound_callback1_w( int state ){ /* ? */ - if( state ) snk_sound_register |= 0x02; -} - -static struct YM3526interface ym3526_interface_0 = { - snk_sound_callback0_w /* ? */ -}; - -static struct YM3526interface ym3526_interface_1 = { - snk_sound_callback1_w /* ? */ -}; - -static struct Y8950interface y8950_interface = { - snk_sound_callback1_w, /* ? */ - REGION_SOUND1 /* memory region */ -}; - -static struct YM3812interface ym3812_interface = { - snk_sound_callback0_w /* ? */ -}; - -static WRITE8_HANDLER( snk_soundlatch_w ){ - snk_sound_register |= 0x08 | 0x04; - soundlatch_w( offset, data ); -} - -static READ8_HANDLER( snk_soundlatch_clear_r ){ /* TNK3 */ - soundlatch_w( 0, 0 ); - snk_sound_register = 0; - return 0x00; -} - -/*********************************************************************/ - -static ADDRESS_MAP_START( YM3526_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xc000, 0xc000) AM_READ(snk_soundlatch_clear_r) - AM_RANGE(0xe000, 0xe000) AM_READWRITE(YM3526_status_port_0_r, YM3526_control_port_0_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM3526_write_port_0_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( YM3526_YM3526_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xe800, 0xe800) AM_READWRITE(YM3526_status_port_0_r, YM3526_control_port_0_w) - AM_RANGE(0xec00, 0xec00) AM_WRITE(YM3526_write_port_0_w) - AM_RANGE(0xf000, 0xf000) AM_READWRITE(YM3526_status_port_1_r, YM3526_control_port_1_w) - AM_RANGE(0xf400, 0xf400) AM_WRITE(YM3526_write_port_1_w) - AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_register_r, snk_sound_register_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( YM3526_Y8950_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xe800, 0xe800) AM_READWRITE(YM3526_status_port_0_r, YM3526_control_port_0_w) - AM_RANGE(0xec00, 0xec00) AM_WRITE(YM3526_write_port_0_w) - AM_RANGE(0xf000, 0xf000) AM_READWRITE(Y8950_status_port_0_r, Y8950_control_port_0_w) - AM_RANGE(0xf400, 0xf400) AM_WRITE(Y8950_write_port_0_w) - AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_register_r, snk_sound_register_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( YM3812_Y8950_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xe800, 0xe800) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) - AM_RANGE(0xec00, 0xec00) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0xf000, 0xf000) AM_READWRITE(Y8950_status_port_0_r, Y8950_control_port_0_w) - AM_RANGE(0xf400, 0xf400) AM_WRITE(Y8950_write_port_0_w) - AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_register_r, snk_sound_register_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( Y8950_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_RAM - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xf000, 0xf000) AM_READWRITE(Y8950_status_port_0_r, Y8950_control_port_0_w) - AM_RANGE(0xf400, 0xf400) AM_WRITE(Y8950_write_port_0_w) - AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_register_r, snk_sound_register_w) -ADDRESS_MAP_END - - -/********************** Tnk3, Athena, Fighting Golf ********************/ - -static READ8_HANDLER( cpuA_io_r ){ - switch( offset ){ - case 0x000: return snk_input_port_r( 0 ); // coin input, player start - case 0x100: return snk_input_port_r( 1 ); // joy1 - case 0x180: return snk_input_port_r( 2 ); // joy2 - case 0x200: return snk_input_port_r( 3 ); // joy3 - case 0x280: return snk_input_port_r( 4 ); // joy4 - case 0x300: return snk_input_port_r( 5 ); // aim1 - case 0x380: return snk_input_port_r( 6 ); // aim2 - case 0x400: return snk_input_port_r( 7 ); // aim3 - case 0x480: return snk_input_port_r( 8 ); // aim4 - case 0x500: return snk_input_port_r( 9 ); // unused by tdfever - case 0x580: return snk_input_port_r( 10 ); // dsw - case 0x600: return snk_input_port_r( 11 ); // dsw - case 0x080: return snk_input_port_r( 12 ); // player start (types C and D in 'ftsoccer') - - case 0x700: return(snk_cpuB_nmi_trigger_r(0)); - - /* "Hard Flags" */ - case 0xe00: - case 0xe20: - case 0xe40: - case 0xe60: - case 0xe80: - case 0xea0: - case 0xee0: if( hard_flags ) return 0xff; - } - return io_ram[offset]; -} - -static WRITE8_HANDLER( cpuA_io_w ){ - switch( offset ){ - case 0x000: - break; - - case 0x400: /* most games */ - case 0x500: /* tdfever */ - snk_soundlatch_w( 0, data ); - break; - - case 0x700: - snk_cpuA_nmi_ack_w(0, 0); - break; - - default: - io_ram[offset] = data; - break; - } -} - -static READ8_HANDLER( cpuB_io_r ){ - switch( offset ){ - case 0x000: - case 0x700: return(snk_cpuA_nmi_trigger_r(0)); - - /* "Hard Flags" they are needed here, otherwise ikarijp/b doesn't work right */ - case 0xe00: - case 0xe20: - case 0xe40: - case 0xe60: - case 0xe80: - case 0xea0: - case 0xee0: if( hard_flags ) return 0xff; - } - return io_ram[offset]; -} - -static WRITE8_HANDLER( cpuB_io_w ) -{ - io_ram[offset] = data; - - if (offset==0 || offset==0x700) snk_cpuB_nmi_ack_w(0, 0); -} - -/********************** Tnk3, Athena, Fighting Golf ********************/ - -static ADDRESS_MAP_START( tnk3_cpuA_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(cpuA_io_r, cpuA_io_w) AM_BASE(&io_ram) - AM_RANGE(0xd000, 0xf7ff) AM_RAM AM_SHARE(2) AM_BASE(&snk_rambase) - AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tnk3_cpuB_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(cpuB_io_r, cpuB_io_w) - AM_RANGE(0xc800, 0xefff) AM_RAM AM_SHARE(2) - AM_RANGE(0xf000, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - - -/* Chopper I, T.D.Fever, Psycho S., Bermuda T. */ - -static ADDRESS_MAP_START( cpuA_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(cpuA_io_r, cpuA_io_w) AM_BASE(&io_ram) - AM_RANGE(0xd000, 0xffff) AM_RAM AM_SHARE(1) AM_BASE(&snk_rambase) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cpuB_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xcfff) AM_READWRITE(cpuB_io_r, cpuB_io_w) - AM_RANGE(0xd000, 0xffff) AM_RAM AM_SHARE(1) -ADDRESS_MAP_END - -/*********************************************************************/ - -static const gfx_layout char512 = -{ - 8,8, - 512, - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 256 -}; - -static const gfx_layout char1024 = -{ - 8,8, - 1024, - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 256 -}; - -static const gfx_layout tile1024 = -{ - 16,16, - 1024, - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24, - 32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_layout tile2048 = -{ - 16,16, - 2048, - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24, - 32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_layout tdfever_tiles = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24, - 32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_layout tdfever2_tiles = -{ - 16,16, - 512*6, - 4, - { 0, 1, 2, 3 }, - { 4, 0, 12, 8, 20, 16, 28, 24, - 32+4, 32+0, 32+12, 32+8, 32+20, 32+16, 32+28, 32+24 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 -}; - -static const gfx_layout sprite512 = -{ - 16,16, - 512, - 3, - { 2*1024*256, 1*1024*256, 0*1024*256 }, - { 7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 256 -}; - -static const gfx_layout sprite1024 = -{ - 16,16, - 1024, - 3, - { 2*1024*256,1*1024*256,0*1024*256 }, - { 7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 256 -}; - -static const gfx_layout big_sprite512 = -{ - 32,32, - 512, - 3, - { 2*2048*256,1*2048*256,0*2048*256 }, - { - 7,6,5,4,3,2,1,0, - 15,14,13,12,11,10,9,8, - 23,22,21,20,19,18,17,16, - 31,30,29,28,27,26,25,24 - }, - { - 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32, - 16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32, - 16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32, - 16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32, - 16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32, - }, - 16*32*2 -}; - -static const gfx_layout gwar_sprite1024 = -{ - 16,16, - 1024, - 4, - { 3*2048*256,2*2048*256,1*2048*256,0*2048*256 }, - { - 8,9,10,11,12,13,14,15, - 0,1,2,3,4,5,6,7 - }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 256 -}; - -static const gfx_layout gwar_sprite2048 = -{ - 16,16, - 2048, - 4, - { 3*2048*256,2*2048*256,1*2048*256,0*2048*256 }, - { 8,9,10,11,12,13,14,15, 0,1,2,3,4,5,6,7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 }, - 256 -}; - -static const gfx_layout gwar_big_sprite1024 = -{ - 32,32, - 1024, - 4, - { 3*1024*1024, 2*1024*1024, 1*1024*1024, 0*1024*1024 }, - { - 24,25,26,27,28,29,30,31, - 16,17,18,19,20,21,22,23, - 8,9,10,11,12,13,14,15, - 0,1,2,3,4,5,6,7 - }, - { - 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32, - 16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32, - 16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32, - 16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32, - 16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32, - }, - 1024 -}; - -static const gfx_layout tdfever_big_sprite1024 = -{ - 32,32, - 1024, - 4, - { 0*0x100000, 1*0x100000, 2*0x100000, 3*0x100000 }, - { - 7,6,5,4,3,2,1,0, - 15,14,13,12,11,10,9,8, - 23,22,21,20,19,18,17,16, - 31,30,29,28,27,26,25,24 - }, - { - 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32, - 16*32+0*32, 16*32+1*32, 16*32+2*32, 16*32+3*32, - 16*32+4*32, 16*32+5*32, 16*32+6*32, 16*32+7*32, - 16*32+8*32, 16*32+9*32, 16*32+10*32, 16*32+11*32, - 16*32+12*32, 16*32+13*32, 16*32+14*32, 16*32+15*32, - }, - 1024 -}; - -/*********************************************************************/ - -static const gfx_decode tnk3_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char512, 128*3, 8 }, - { REGION_GFX2, 0x0, &char1024, 128*1, 16 }, - { REGION_GFX3, 0x0, &sprite512, 128*0, 16 }, - { -1 } -}; - -static const gfx_decode athena_gfxdecodeinfo[] = -{ - /* colors 512-1023 are currently unused, I think they are a second bank */ - { REGION_GFX1, 0x0, &char512, 128*3, 8 }, /* colors 384..511 */ - { REGION_GFX2, 0x0, &char1024, 128*1, 16 }, /* colors 128..383 */ - { REGION_GFX3, 0x0, &sprite1024, 0, 16 }, /* colors 0..127 */ - { -1 } -}; - -static const gfx_decode ikari_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char512, 256, 16 }, - { REGION_GFX2, 0x0, &tile1024, 256, 16 }, - { REGION_GFX3, 0x0, &sprite1024, 0, 16 }, - { REGION_GFX4, 0x0, &big_sprite512, 128, 16 }, - { -1 } -}; - -static const gfx_decode gwar_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char1024, 256*0, 16 }, - { REGION_GFX2, 0x0, &tile2048, 256*3, 16 }, - { REGION_GFX3, 0x0, &gwar_sprite2048, 256*1, 16 }, - { REGION_GFX4, 0x0, &gwar_big_sprite1024, 256*2, 16 }, - { -1 } -}; - -static const gfx_decode bermudat_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char1024, 256*0, 16 }, - { REGION_GFX2, 0x0, &tile2048, 256*3, 16 }, - { REGION_GFX3, 0x0, &gwar_sprite1024, 256*1, 16 }, - { REGION_GFX4, 0x0, &gwar_big_sprite1024, 256*2, 16 }, - { -1 } -}; - -static const gfx_decode psychos_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char1024, 256*0, 16 }, - { REGION_GFX2, 0x0, &tile2048, 256*3, 16 }, - { REGION_GFX3, 0x0, &gwar_sprite1024, 256*1, 16 }, - { REGION_GFX4, 0x0, &gwar_big_sprite1024, 256*2, 16 }, - { -1 } -}; - -static const gfx_decode tdfever_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char1024, 256*0, 16 }, - { REGION_GFX2, 0x0, &tdfever_tiles, 256*2, 16 }, - { REGION_GFX3, 0x0, &tdfever_big_sprite1024, 256*1, 16 }, - { -1 } -}; - -static const gfx_decode tdfever2_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0, &char1024, 256*0, 16 }, - { REGION_GFX2, 0x0, &tdfever2_tiles, 256*2, 16 }, - { REGION_GFX3, 0x0, &tdfever_big_sprite1024, 256*1, 16 }, - { -1 } -}; - -/**********************************************************************/ - -static MACHINE_DRIVER_START( tnk3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(tnk3_cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(tnk3_cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MDRV_GFXDECODE(tnk3_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(aso) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(tnk3) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( athena ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(tnk3_cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(tnk3_cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_YM3526_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(300) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MDRV_GFXDECODE(athena_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(aso) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(tnk3) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ikari ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_YM3526_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MDRV_GFXDECODE(ikari_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(snk_3bpp_shadow) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(ikari) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_1) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( victroad ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(36*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) - MDRV_GFXDECODE(ikari_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(snk_3bpp_shadow) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(ikari) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gwar ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(gwar_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(gwar) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bermudat ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - // 5MHz gives CPUB higher priority or ROM test will fail if the first NMI is triggered too early by CPUA - MDRV_CPU_ADD(Z80, 5000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 224) - MDRV_SCREEN_VISIBLE_AREA(16, 399, 0, 223) - MDRV_GFXDECODE(bermudat_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(gwar) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( psychos ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(psychos_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(gwar) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( chopper1 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3812_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400, 224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(psychos_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(RRRR_GGGG_BBBB) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(gwar) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tdfever ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(snk_irq_AB,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) -// MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000)) - MDRV_INTERLEAVE(300) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400,224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(tdfever_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(snk_4bpp_shadow) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(tdfever) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tdfever2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(snk_irq_AB,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) -// MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(YM3526_Y8950_sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(1000)) - MDRV_INTERLEAVE(300) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400,224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(tdfever2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(snk_4bpp_shadow) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(tdfever) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3526, 4000000) - MDRV_SOUND_CONFIG(ym3526_interface_0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ftsoccer ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuA_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - MDRV_CPU_PROGRAM_MAP(cpuB_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(Y8950_sound_map, 0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(400,224) - MDRV_SCREEN_VISIBLE_AREA(8, 399-8, 0, 223) - MDRV_GFXDECODE(tdfever_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024) - - MDRV_PALETTE_INIT(snk_4bpp_shadow) - MDRV_VIDEO_START(snk) - MDRV_VIDEO_UPDATE(tdfever) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(Y8950, 4000000) - MDRV_SOUND_CONFIG(y8950_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/***********************************************************************/ - -ROM_START( tnk3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "tnk3-p1.bin", 0x0000, 0x4000, CRC(0d2a8ca9) SHA1(eba950dab044496e8c1c02af20a9d380996ea20a) ) - ROM_LOAD( "tnk3-p2.bin", 0x4000, 0x4000, CRC(0ae0a483) SHA1(6a1ba86da4fd75bfb00855db04eac2727ec4159e) ) - ROM_LOAD( "tnk3-p3.bin", 0x8000, 0x4000, CRC(d16dd4db) SHA1(dcbc61251c13e11ce3cdd7a5ad200cd2d2758cab) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "tnk3-p4.bin", 0x0000, 0x4000, CRC(01b45a90) SHA1(85ba3b157cd6463c92ed831bb48d38f3a16f9537) ) - ROM_LOAD( "tnk3-p5.bin", 0x4000, 0x4000, CRC(60db6667) SHA1(9c4bb99473c6d9b8ac9086b7364b6278b70757f6) ) - ROM_LOAD( "tnk3-p6.bin", 0x8000, 0x4000, CRC(4761fde7) SHA1(dadf60e33f5dd8108478ca480bcef6b2624cfca8) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "tnk3-p10.bin", 0x0000, 0x4000, CRC(7bf0a517) SHA1(0197feeaf511ac59f3df8195ec57e947fb08e995) ) - ROM_LOAD( "tnk3-p11.bin", 0x4000, 0x4000, CRC(0569ce27) SHA1(7aa73f57ad97445ce5729f05cd8d24973886dbf5) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "7122.2", 0x000, 0x400, CRC(34c06bc6) SHA1(bb68e96a8fcc754840420952dab961e03bf6acdd) ) - ROM_LOAD( "7122.1", 0x400, 0x400, CRC(6d0ac66a) SHA1(e792218ec43dd10473dc020afed8527cf43ea0d0) ) - ROM_LOAD( "7122.0", 0x800, 0x400, CRC(4662b4c8) SHA1(391c2b8a17ce2e092b46a17fc4170dc1e3bde426) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "tnk3-p14.bin", 0x0000, 0x2000, CRC(1fd18c43) SHA1(611b5aa97df84c0117681772deb006f32a899ad3) ) - ROM_RELOAD( 0x2000, 0x2000 ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */ - ROM_LOAD( "tnk3-p12.bin", 0x0000, 0x4000, CRC(ff495a16) SHA1(e6b97a63efe58018260ff34f0ea4edc81718cb14) ) - ROM_LOAD( "tnk3-p13.bin", 0x4000, 0x4000, CRC(f8344843) SHA1(c741dc84b48f830f6d4eaa4476f5c2a391153acc) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "tnk3-p7.bin", 0x00000, 0x4000, CRC(06b92c88) SHA1(b39c2cc4a58937d89f9b0c9093b9742509db64a3) ) - ROM_LOAD( "tnk3-p8.bin", 0x08000, 0x4000, CRC(63d0e2eb) SHA1(96182639bb620d9692a4c8266130769c44dd29f8) ) - ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, CRC(872e3fac) SHA1(98e7e9315fe7ccc51151c67dc60a362a1c2d8372) ) -ROM_END - -ROM_START( tnk3j ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "p1.4e", 0x0000, 0x4000, CRC(03aca147) SHA1(9ce4cfdfbd22f10e13c8e474dc2e5aa3bfd57e0b) ) - ROM_LOAD( "tnk3-p2.bin", 0x4000, 0x4000, CRC(0ae0a483) SHA1(6a1ba86da4fd75bfb00855db04eac2727ec4159e) ) - ROM_LOAD( "tnk3-p3.bin", 0x8000, 0x4000, CRC(d16dd4db) SHA1(dcbc61251c13e11ce3cdd7a5ad200cd2d2758cab) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "tnk3-p4.bin", 0x0000, 0x4000, CRC(01b45a90) SHA1(85ba3b157cd6463c92ed831bb48d38f3a16f9537) ) - ROM_LOAD( "tnk3-p5.bin", 0x4000, 0x4000, CRC(60db6667) SHA1(9c4bb99473c6d9b8ac9086b7364b6278b70757f6) ) - ROM_LOAD( "tnk3-p6.bin", 0x8000, 0x4000, CRC(4761fde7) SHA1(dadf60e33f5dd8108478ca480bcef6b2624cfca8) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "tnk3-p10.bin", 0x0000, 0x4000, CRC(7bf0a517) SHA1(0197feeaf511ac59f3df8195ec57e947fb08e995) ) - ROM_LOAD( "tnk3-p11.bin", 0x4000, 0x4000, CRC(0569ce27) SHA1(7aa73f57ad97445ce5729f05cd8d24973886dbf5) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "7122.2", 0x000, 0x400, CRC(34c06bc6) SHA1(bb68e96a8fcc754840420952dab961e03bf6acdd) ) - ROM_LOAD( "7122.1", 0x400, 0x400, CRC(6d0ac66a) SHA1(e792218ec43dd10473dc020afed8527cf43ea0d0) ) - ROM_LOAD( "7122.0", 0x800, 0x400, CRC(4662b4c8) SHA1(391c2b8a17ce2e092b46a17fc4170dc1e3bde426) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "p14.1e", 0x0000, 0x2000, CRC(6bd575ca) SHA1(446bb929fa19a7ff8b92731f71ab3e3252899f07) ) - ROM_RELOAD( 0x2000, 0x2000 ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */ - ROM_LOAD( "tnk3-p12.bin", 0x0000, 0x4000, CRC(ff495a16) SHA1(e6b97a63efe58018260ff34f0ea4edc81718cb14) ) - ROM_LOAD( "tnk3-p13.bin", 0x4000, 0x4000, CRC(f8344843) SHA1(c741dc84b48f830f6d4eaa4476f5c2a391153acc) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "tnk3-p7.bin", 0x00000, 0x4000, CRC(06b92c88) SHA1(b39c2cc4a58937d89f9b0c9093b9742509db64a3) ) - ROM_LOAD( "tnk3-p8.bin", 0x08000, 0x4000, CRC(63d0e2eb) SHA1(96182639bb620d9692a4c8266130769c44dd29f8) ) - ROM_LOAD( "tnk3-p9.bin", 0x10000, 0x4000, CRC(872e3fac) SHA1(98e7e9315fe7ccc51151c67dc60a362a1c2d8372) ) -ROM_END - -/***********************************************************************/ - -ROM_START( athena ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "up02_p4.rom", 0x0000, 0x4000, CRC(900a113c) SHA1(3a85f87cbf79d60f58858df4852d6d97300c9280) ) - ROM_LOAD( "up02_m4.rom", 0x4000, 0x8000, CRC(61c69474) SHA1(93f1222a3908c84fe6679e2deb90afbe4a22e675) ) - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "up02_p8.rom", 0x0000, 0x4000, CRC(df50af7e) SHA1(2a69089aecf598cb11f4f1c9b42d81670f9bd68e) ) - ROM_LOAD( "up02_m8.rom", 0x4000, 0x8000, CRC(f3c933df) SHA1(70a0bf63230be53da9196fae4c3e604205275ddd) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "up02_g6.rom", 0x0000, 0x4000, CRC(42dbe029) SHA1(9aa311860693bd3e73f2b72ca4b171cb95f069ee) ) - ROM_LOAD( "up02_k6.rom", 0x4000, 0x8000, CRC(596f1c8a) SHA1(8f1400c77473c845e57a14fa479cf4f7ac66a909) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up02_c2.rom", 0x000, 0x400, CRC(294279ae) SHA1(b3db5617b83845a6c1abca8f71fa4598758a2a56) ) - ROM_LOAD( "up02_b1.rom", 0x400, 0x400, CRC(d25c9099) SHA1(f3933075cce1255affc61dfefd9559b6e15ed29c) ) - ROM_LOAD( "up02_c1.rom", 0x800, 0x400, CRC(a4a4e7dc) SHA1(aa694c2d44dcabc6cfd46307c55c3759eff57236) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up01_d2.rom", 0x0000, 0x4000, CRC(18b4bcca) SHA1(2476aa6c8d55e117d840202a97fe2a65e252ad7f) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */ - ROM_LOAD( "up01_b2.rom", 0x0000, 0x8000, CRC(f269c0eb) SHA1(a947c6e4d82e0aafa616d25395ef63c33d9beb06) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "up01_p2.rom", 0x00000, 0x8000, CRC(c63a871f) SHA1(0ab8ebebd750fdcad283eed427179f2124b300ae) ) - ROM_LOAD( "up01_s2.rom", 0x08000, 0x8000, CRC(760568d8) SHA1(9dc447c446791c79322e21e3caef6ceae347e2fb) ) - ROM_LOAD( "up01_t2.rom", 0x10000, 0x8000, CRC(57b35c73) SHA1(6d15b94b50c3734f7d60bd9bd1c5e6c76591d829) ) -ROM_END - -/***********************************************************************/ - -ROM_START( fitegolf ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "gu2", 0x0000, 0x4000, CRC(19be7ad6) SHA1(6f0faf606e44a3f8cc027699cc816aa3414a1b98) ) - ROM_LOAD( "gu1", 0x4000, 0x8000, CRC(bc32568f) SHA1(35fec3dbdd773ec7f427ecdd81066fb8f1b74e05) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "gu6", 0x0000, 0x4000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) - ROM_LOAD( "gu5", 0x4000, 0x8000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "gu3", 0x0000, 0x4000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) - ROM_LOAD( "gu4", 0x4000, 0x8000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "82s137.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) - ROM_LOAD( "82s137.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) - ROM_LOAD( "82s137.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "gu8", 0x0000, 0x4000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "gu7", 0x0000, 0x8000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "gu9", 0x00000, 0x8000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) - ROM_LOAD( "gu10", 0x08000, 0x8000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) - ROM_LOAD( "gu11", 0x10000, 0x8000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r6a.6c", 0x0000, 0x0104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) - ROM_LOAD( "pal16l8a.3f", 0x0200, 0x0104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) - ROM_LOAD( "pal20l8a.6r", 0x0400, 0x0144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) -ROM_END - -ROM_START( fitegol2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "np45.128", 0x0000, 0x4000, CRC(16e8e763) SHA1(0b5296f2a91a7f3176b7461ca4958865ce998241) ) - ROM_LOAD( "mn45.256", 0x4000, 0x8000, CRC(a4fa09d5) SHA1(ae7f0cb47de06006ae71252c4201a93a01a26887) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "gu6", 0x0000, 0x4000, CRC(2b9978c5) SHA1(5490e9f796697318650fc5f70c0e64d6785ad7fc) ) // NP8.256 - ROM_LOAD( "gu5", 0x4000, 0x8000, CRC(ea3d138c) SHA1(af0a0bfe2d266179946948cf42fe697505798a4f) ) // MN8.256 - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "gu3", 0x0000, 0x4000, CRC(811b87d7) SHA1(fb387f42085d6e0e5a88729ca0e50656411ce037) ) // FG67.256 - ROM_LOAD( "gu4", 0x4000, 0x8000, CRC(2d998e2b) SHA1(a471cfbb4dabc90fcc29c562620b9965eaff6861) ) // K67.256 - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "82s137.2c", 0x00000, 0x00400, CRC(6e4c7836) SHA1(3ab3c498939fac992e2bf1c33983ee821a9b6a18) ) - ROM_LOAD( "82s137.1b", 0x00400, 0x00400, CRC(29e7986f) SHA1(85ba8d3443458c27728f633745857a1315dd183f) ) - ROM_LOAD( "82s137.1c", 0x00800, 0x00400, CRC(27ba9ff9) SHA1(f021d10460f40de4447560df5ac47fa53bb57ff9) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "gu8", 0x0000, 0x4000, CRC(f1628dcf) SHA1(efea343d3a9dd45ef74947c297e166e34afbb680) ) // D2.128 - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "gu7", 0x0000, 0x8000, CRC(4655f94e) SHA1(08526206d8e929bb01d61fff8de2ee99fd287c17) ) // BC2.256 - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* sprites */ - ROM_LOAD( "gu9", 0x00000, 0x8000, CRC(d4957ec5) SHA1(8ead7866ba5ac66ead6b707aa868bcae30c486e1) ) // P2.256 - ROM_LOAD( "gu10", 0x08000, 0x8000, CRC(b3acdac2) SHA1(7377480d5e1b5ab2c49f5fee2927623ce8240e19) ) // R2.256 - ROM_LOAD( "gu11", 0x10000, 0x8000, CRC(b99cf73b) SHA1(23989fc3914e77d364807a9eb96a4ddf75ad7cf1) ) // S2.256 - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r6a.6c", 0x0000, 0x0104, CRC(de291f4e) SHA1(b50294d30cb8eacc7a9bb8b46695a7463ef45ff1) ) - ROM_LOAD( "pal16l8a.3f", 0x0200, 0x0104, CRC(c5f1c1da) SHA1(e17293be0f77d302c59c1095fe1ec65e45557627) ) - ROM_LOAD( "pal20l8a.6r", 0x0400, 0x0144, CRC(0f011673) SHA1(383e6f6e78daec9c874d5b48378111ca60f5ed64) ) -ROM_END - -ROM_START( countryc ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "cc2.2e", 0x0000, 0x04000, CRC(43d205e0) SHA1(d32f597bf2b70e326e68583cb95e0beeea34d5d0) ) - ROM_LOAD( "cc3.2g", 0x4000, 0x04000, CRC(7290770f) SHA1(41184047e3e21f6ff4f724d59f4c6f34b19bcfc1) ) - ROM_LOAD( "cc4.2h", 0x8000, 0x04000, CRC(61990582) SHA1(b12e6da3b8d7690bf6848a624b42dcb93f69ead7) ) - - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "cc5.4e", 0x00000, 0x4000, CRC(07666af8) SHA1(4b4c51bd1bc5ee49bb516e6851b2e6b5a7780576) ) - ROM_LOAD( "cc6.4g", 0x04000, 0x4000, CRC(ab18fd9f) SHA1(30a30998191cb81a6bfcd672e54f8a155639ccd7) ) - ROM_LOAD( "cc7.4h", 0x08000, 0x4000, CRC(58a1ec0c) SHA1(877935463121a992851e9b76074e1a4d033a0b2e) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "cc1.1f", 0x00000, 0x10000, CRC(863f1624) SHA1(11c0aeefaddf16cc9e1c259e97b90fe418d70c89) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "cc1pr.5f", 0x000, 0x00400, CRC(7da9ce33) SHA1(42b272473986819e96633684b6dd9630ca2c37d6) ) - ROM_LOAD( "cc2pr.5g", 0x400, 0x00400, CRC(982e4f46) SHA1(c4703a35201bc4c6b43f629a9a6a4c66354c6305) ) - ROM_LOAD( "cc3pr.5h", 0x800, 0x00400, CRC(47f2b83d) SHA1(6335be47f09ad33d7e05fda26a2f3fb9048dbbc2) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "cc11.1e", 0x0000, 0x4000, CRC(ce927ac7) SHA1(a0dd281912aa9ae7e408c2132fae30bffbc83750) ) - - ROM_REGION( 0x8000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "cc13.2d", 0x0000, 0x4000, CRC(ef86c388) SHA1(19e443f6a4901a3c9db868964c08b0f58be1983d) ) - ROM_LOAD( "cc12.2c", 0x4000, 0x4000, CRC(d7d55a36) SHA1(1956097c2633f603cc1557f6e686b3c06b199dd8) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "cc10.7h", 0x00000, 0x8000, CRC(90091667) SHA1(d0d3813a0c3ac7e9e9ab824292dccb27c2087ea7) ) - ROM_LOAD( "cc9.7g", 0x08000, 0x8000, CRC(56249142) SHA1(10b703f15977ba21757aee3d212790372b35cc66) ) - ROM_LOAD( "cc8.7e", 0x10000, 0x8000, CRC(55943065) SHA1(ea545c6e8666c915994836d2f2cfc02db35e37c1) ) - -ROM_END - -/***********************************************************************/ - -ROM_START( ikari ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* CPU A */ - ROM_LOAD( "1.rom", 0x0000, 0x10000, CRC(52a8b2dd) SHA1(a896387d68ed9a55c313bdb81acdf8d68b7a1264) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* CPU B */ - ROM_LOAD( "2.rom", 0x0000, 0x10000, CRC(45364d55) SHA1(323b998f782a4681ceb18016c5fb0fa1d6361aac) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* Sound CPU */ - ROM_LOAD( "3.rom", 0x0000, 0x10000, CRC(56a26699) SHA1(e9ccb27f1e711e4648fdfe3c7ff956038d3e101c) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "7122er.prm", 0x000, 0x400, CRC(b9bf2c2c) SHA1(8eb62152dcb04f463baf6ec2a66148eb947403ef) ) - ROM_LOAD( "7122eg.prm", 0x400, 0x400, CRC(0703a770) SHA1(62861ef4987003d4965ef5018ccdf7157981d939) ) - ROM_LOAD( "7122eb.prm", 0x800, 0x400, CRC(0a11cdde) SHA1(faae17398341317e7afbd06b903b8e9e65967bf1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "7.rom", 0x00000, 0x4000, CRC(a7eb4917) SHA1(6c07323cc243df4c5c30bc0daedbff3887309f65) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "17.rom", 0x00000, 0x8000, CRC(e0dba976) SHA1(5a8f14f7a199b5fb1862debda0bceee42cddac59) ) - ROM_LOAD( "18.rom", 0x08000, 0x8000, CRC(24947d5f) SHA1(ffd18074ced8171c9da56c839e8289afc29af2c9) ) - ROM_LOAD( "19.rom", 0x10000, 0x8000, CRC(9ee59e91) SHA1(fe51d13ab73cb596a233669e304b2be66f9becae) ) - ROM_LOAD( "20.rom", 0x18000, 0x8000, CRC(5da7ec1a) SHA1(4b212c1dfe4c18eced90ee3a783e7edf8d23c906) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "8.rom", 0x00000, 0x8000, CRC(9827c14a) SHA1(b54dcee95c6f6e46c187a117b4e7aaf1c0ece6c6) ) - ROM_LOAD( "9.rom", 0x08000, 0x8000, CRC(545c790c) SHA1(7738738f4a1343b04efd029ecaefac74010451f0) ) - ROM_LOAD( "10.rom", 0x10000, 0x8000, CRC(ec9ba07e) SHA1(6b492b2cd7b8cca948ce39c3450f1cc153f41d90) ) - - ROM_REGION( 0x30000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "11.rom", 0x00000, 0x8000, CRC(5c75ea8f) SHA1(4e8ee56a2dbeb9ac2dd74bc584dba29433d91ae0) ) - ROM_LOAD( "14.rom", 0x08000, 0x8000, CRC(3293fde4) SHA1(3e2f0fa00c22f1c0c1427d8d3de57dd9ec7682a9) ) - ROM_LOAD( "12.rom", 0x10000, 0x8000, CRC(95138498) SHA1(8ac3d2cd793312434b9ffb8c47c30473f713e0e8) ) - ROM_LOAD( "15.rom", 0x18000, 0x8000, CRC(65a61c99) SHA1(767694c919180de208b6211b593db68fc5a66ff1) ) - ROM_LOAD( "13.rom", 0x20000, 0x8000, CRC(315383d7) SHA1(1c1c5931e3447c4dcbd54fc8ae383b03cb5fbf5b) ) - ROM_LOAD( "16.rom", 0x28000, 0x8000, CRC(e9b03e07) SHA1(124e5328a965ea2af28c4d74934a82394a2ffd72) ) -ROM_END - -ROM_START( ikarijp ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "up03_l4.rom", 0x0000, 0x4000, CRC(cde006be) SHA1(a42e23659cf0ea5194f8a7a9a1679ebcaed75ead) ) - ROM_LOAD( "up03_k4.rom", 0x4000, 0x8000, CRC(26948850) SHA1(bfeba5f7019f6eaacf2a5464756d9cb283c5f5a2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "ik3", 0x0000, 0x4000, CRC(9bb385f8) SHA1(70cc30bece54c28205017e755dc32a1c088f9f80) ) - ROM_LOAD( "ik4", 0x4000, 0x8000, CRC(3a144bca) SHA1(c1b09bffb8d89e607332304b1d8845794f25273f) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "ik5", 0x0000, 0x4000, CRC(863448fa) SHA1(19cad05dc9c4495f36e0d8627927ea6d0a971824) ) - ROM_LOAD( "ik6", 0x4000, 0x8000, CRC(9b16aa57) SHA1(69866ce41c587721702c92ac2e9ba3f6645004cf) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "7122er.prm", 0x000, 0x400, CRC(b9bf2c2c) SHA1(8eb62152dcb04f463baf6ec2a66148eb947403ef) ) - ROM_LOAD( "7122eg.prm", 0x400, 0x400, CRC(0703a770) SHA1(62861ef4987003d4965ef5018ccdf7157981d939) ) - ROM_LOAD( "7122eb.prm", 0x800, 0x400, CRC(0a11cdde) SHA1(faae17398341317e7afbd06b903b8e9e65967bf1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ik7", 0x00000, 0x4000, CRC(9e88f536) SHA1(80e9aadeb626e60318a2139fd1b3875f6256c492) ) /* characters */ - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "17.rom", 0x00000, 0x8000, CRC(e0dba976) SHA1(5a8f14f7a199b5fb1862debda0bceee42cddac59) ) - ROM_LOAD( "18.rom", 0x08000, 0x8000, CRC(24947d5f) SHA1(ffd18074ced8171c9da56c839e8289afc29af2c9) ) - ROM_LOAD( "ik19", 0x10000, 0x8000, CRC(566242ec) SHA1(ca25587460491597d462d2526d59afbc9b92fb75) ) - ROM_LOAD( "20.rom", 0x18000, 0x8000, CRC(5da7ec1a) SHA1(4b212c1dfe4c18eced90ee3a783e7edf8d23c906) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "ik8", 0x00000, 0x8000, CRC(75d796d0) SHA1(395c1d22b935c92c50a326edc8b6cd9aab235f7c) ) - ROM_LOAD( "ik9", 0x08000, 0x8000, CRC(2c34903b) SHA1(1949fc0cef4b30665ad288fa8e506a05741face0) ) - ROM_LOAD( "ik10", 0x10000, 0x8000, CRC(da9ccc94) SHA1(be3c9d44a887ac823039153b832dfae18fe69965) ) - - ROM_REGION( 0x30000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "11.rom", 0x00000, 0x8000, CRC(5c75ea8f) SHA1(4e8ee56a2dbeb9ac2dd74bc584dba29433d91ae0) ) - ROM_LOAD( "14.rom", 0x08000, 0x8000, CRC(3293fde4) SHA1(3e2f0fa00c22f1c0c1427d8d3de57dd9ec7682a9) ) - ROM_LOAD( "12.rom", 0x10000, 0x8000, CRC(95138498) SHA1(8ac3d2cd793312434b9ffb8c47c30473f713e0e8) ) - ROM_LOAD( "15.rom", 0x18000, 0x8000, CRC(65a61c99) SHA1(767694c919180de208b6211b593db68fc5a66ff1) ) - ROM_LOAD( "13.rom", 0x20000, 0x8000, CRC(315383d7) SHA1(1c1c5931e3447c4dcbd54fc8ae383b03cb5fbf5b) ) - ROM_LOAD( "16.rom", 0x28000, 0x8000, CRC(e9b03e07) SHA1(124e5328a965ea2af28c4d74934a82394a2ffd72) ) - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ampal16r6a-a5004.1", 0x0000, 0x0104, CRC(a2e9a162) SHA1(35abf667725abea74d36c76552387e7a1debe75a) ) - ROM_LOAD( "pal20l8a-a5004.2", 0x0200, 0x0144, CRC(28f2c404) SHA1(d0832ef9e6be6449018f9b224d5f7203820a5135) ) - ROM_LOAD( "ampal16l8a-a5004.3", 0x0400, 0x0104, CRC(540351f2) SHA1(d9c3aebb839935c8b49678693b87cc2bca2a674d) ) - ROM_LOAD( "ampal16l8a-a5004.4", 0x0600, 0x0104, CRC(540351f2) SHA1(d9c3aebb839935c8b49678693b87cc2bca2a674d) ) -ROM_END - -ROM_START( ikarijpb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* CPU A */ - ROM_LOAD( "ik1", 0x00000, 0x4000, CRC(2ef87dce) SHA1(4b52567fee81018f7a4b33bac79ea521c7d19d52) ) - ROM_LOAD( "up03_k4.rom", 0x04000, 0x8000, CRC(26948850) SHA1(bfeba5f7019f6eaacf2a5464756d9cb283c5f5a2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* CPU B code */ - ROM_LOAD( "ik3", 0x0000, 0x4000, CRC(9bb385f8) SHA1(70cc30bece54c28205017e755dc32a1c088f9f80) ) - ROM_LOAD( "ik4", 0x4000, 0x8000, CRC(3a144bca) SHA1(c1b09bffb8d89e607332304b1d8845794f25273f) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "ik5", 0x0000, 0x4000, CRC(863448fa) SHA1(19cad05dc9c4495f36e0d8627927ea6d0a971824) ) - ROM_LOAD( "ik6", 0x4000, 0x8000, CRC(9b16aa57) SHA1(69866ce41c587721702c92ac2e9ba3f6645004cf) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "7122er.prm", 0x000, 0x400, CRC(b9bf2c2c) SHA1(8eb62152dcb04f463baf6ec2a66148eb947403ef) ) - ROM_LOAD( "7122eg.prm", 0x400, 0x400, CRC(0703a770) SHA1(62861ef4987003d4965ef5018ccdf7157981d939) ) - ROM_LOAD( "7122eb.prm", 0x800, 0x400, CRC(0a11cdde) SHA1(faae17398341317e7afbd06b903b8e9e65967bf1) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ik7", 0x0000, 0x4000, CRC(9e88f536) SHA1(80e9aadeb626e60318a2139fd1b3875f6256c492) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "17.rom", 0x00000, 0x8000, CRC(e0dba976) SHA1(5a8f14f7a199b5fb1862debda0bceee42cddac59) ) - ROM_LOAD( "18.rom", 0x08000, 0x8000, CRC(24947d5f) SHA1(ffd18074ced8171c9da56c839e8289afc29af2c9) ) - ROM_LOAD( "ik19", 0x10000, 0x8000, CRC(566242ec) SHA1(ca25587460491597d462d2526d59afbc9b92fb75) ) - ROM_LOAD( "20.rom", 0x18000, 0x8000, CRC(5da7ec1a) SHA1(4b212c1dfe4c18eced90ee3a783e7edf8d23c906) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "ik8", 0x00000, 0x8000, CRC(75d796d0) SHA1(395c1d22b935c92c50a326edc8b6cd9aab235f7c) ) - ROM_LOAD( "ik9", 0x08000, 0x8000, CRC(2c34903b) SHA1(1949fc0cef4b30665ad288fa8e506a05741face0) ) - ROM_LOAD( "ik10", 0x10000, 0x8000, CRC(da9ccc94) SHA1(be3c9d44a887ac823039153b832dfae18fe69965) ) - - ROM_REGION( 0x30000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "11.rom", 0x00000, 0x8000, CRC(5c75ea8f) SHA1(4e8ee56a2dbeb9ac2dd74bc584dba29433d91ae0) ) - ROM_LOAD( "14.rom", 0x08000, 0x8000, CRC(3293fde4) SHA1(3e2f0fa00c22f1c0c1427d8d3de57dd9ec7682a9) ) - ROM_LOAD( "12.rom", 0x10000, 0x8000, CRC(95138498) SHA1(8ac3d2cd793312434b9ffb8c47c30473f713e0e8) ) - ROM_LOAD( "15.rom", 0x18000, 0x8000, CRC(65a61c99) SHA1(767694c919180de208b6211b593db68fc5a66ff1) ) - ROM_LOAD( "13.rom", 0x20000, 0x8000, CRC(315383d7) SHA1(1c1c5931e3447c4dcbd54fc8ae383b03cb5fbf5b) ) - ROM_LOAD( "16.rom", 0x28000, 0x8000, CRC(e9b03e07) SHA1(124e5328a965ea2af28c4d74934a82394a2ffd72) ) -ROM_END - -/***********************************************************************/ - -ROM_START( victroad ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* CPU A code */ - ROM_LOAD( "p1", 0x0000, 0x10000, CRC(e334acef) SHA1(f6d8da554276abbe5579c92eea46591a92623f6e) ) - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* CPU B code */ - ROM_LOAD( "p2", 0x00000, 0x10000, CRC(907fac83) SHA1(691d95f95ef7a308c7f5e7defb20971b54423745) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* sound code */ - ROM_LOAD( "p3", 0x00000, 0x10000, CRC(bac745f6) SHA1(c118d94aff16cbf1b85615ff5a93292f6e98c149) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "mb7122e.1k", 0x000, 0x400, CRC(491ab831) SHA1(2801d68d8a7fddaca5c48f09d421fc48ff53d244) ) - ROM_LOAD( "mb7122e.2l", 0x400, 0x400, CRC(8feca424) SHA1(c3d666f4b4b914199b24ded02f9a1b643bf90d26) ) - ROM_LOAD( "mb7122e.1l", 0x800, 0x400, CRC(220076ca) SHA1(a353c770c0ffb1105fb93c97977597ad2fda8ac8) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "p7", 0x0000, 0x4000, CRC(2b6ed95b) SHA1(dddf3aa21776778153572a20d29d47928a7116d8) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "p17", 0x00000, 0x8000, CRC(19d4518c) SHA1(133ac6e3d75af6cfc9aa9d1d467f16696c7f3794) ) - ROM_LOAD( "p18", 0x08000, 0x8000, CRC(d818be43) SHA1(274827b13e8572f68302b7e0b5964d3e32544303) ) - ROM_LOAD( "p19", 0x10000, 0x8000, CRC(d64e0f89) SHA1(41204d5b0bc9d2f2599c3e881f10b73bddae3c5c) ) - ROM_LOAD( "p20", 0x18000, 0x8000, CRC(edba0f31) SHA1(b3fc886d3cf7a34b470dd72cc0268a193f9a64d7) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "p8", 0x00000, 0x8000, CRC(df7f252a) SHA1(435aade99144c9be51f65d76583256aa089cce78) ) - ROM_LOAD( "p9", 0x08000, 0x8000, CRC(9897bc05) SHA1(ec181dc64dd78ff2fab193509743376ab192b99e) ) - ROM_LOAD( "p10", 0x10000, 0x8000, CRC(ecd3c0ea) SHA1(f398b6a64706fcaa727ff1c150e05888091cb77c) ) - - ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "p11", 0x00000, 0x8000, CRC(668b25a4) SHA1(235423e3b442271581dde0195fdff2a37596a9bc) ) - ROM_LOAD( "p14", 0x08000, 0x8000, CRC(a7031d4a) SHA1(9ea184990372909de7d8fe0891bb3e0441b13f90) ) - ROM_LOAD( "p12", 0x10000, 0x8000, CRC(f44e95fa) SHA1(6633bd1e9e947cae5ba696f6fd393bf0cd7969b0) ) - ROM_LOAD( "p15", 0x18000, 0x8000, CRC(120d2450) SHA1(8699db76f598e7719fa5f9a3dcc07d24c53e5da4) ) - ROM_LOAD( "p13", 0x20000, 0x8000, CRC(980ca3d8) SHA1(bda6f19edf43c61c0c8d2235bb60def76c801b87) ) - ROM_LOAD( "p16", 0x28000, 0x8000, CRC(9f820e8a) SHA1(2be0128d6861241f6a9c5a7032368dbc6d57b44e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "p4", 0x00000, 0x10000, CRC(e10fb8cc) SHA1(591aa1f947216795252dc4d9ec2600ef63dada7d) ) - ROM_LOAD( "p5", 0x10000, 0x10000, CRC(93e5f110) SHA1(065a78805e50ce6a48cb7930f264bada236feb13) ) -ROM_END - -ROM_START( dogosoke ) /* Victory Road Japan */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* CPU A code */ - ROM_LOAD( "up03_p4.rom", 0x0000, 0x10000, CRC(37867ad2) SHA1(4444e428eb7126451f34351b1a2bc193484ca641) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* CPU B code */ - ROM_LOAD( "p2", 0x00000, 0x10000, CRC(907fac83) SHA1(691d95f95ef7a308c7f5e7defb20971b54423745) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* sound code */ - ROM_LOAD( "up03_k7.rom", 0x00000, 0x10000, CRC(173fa571) SHA1(fb9c783e5377fa86f70afee6804c8ee9061b27fd) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x000, 0x400, CRC(10a2ce2b) SHA1(8de93250b81fbabb012c96454ef3a888b2783ab5) ) - ROM_LOAD( "up03_l2.rom", 0x400, 0x400, CRC(99dc9792) SHA1(dcdcea2bad524776e17eaeb70dd4882283f1b125) ) - ROM_LOAD( "up03_l1.rom", 0x800, 0x400, CRC(e7213160) SHA1(bc762a346e1639c8a9636fe85c18d68a08c1b586) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up02_b3.rom", 0x0000, 0x4000, CRC(51a4ec83) SHA1(8cb743c68a51b71ef3d78127b2cf6ab0877b13f6) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "p17", 0x00000, 0x8000, CRC(19d4518c) SHA1(133ac6e3d75af6cfc9aa9d1d467f16696c7f3794) ) - ROM_LOAD( "p18", 0x08000, 0x8000, CRC(d818be43) SHA1(274827b13e8572f68302b7e0b5964d3e32544303) ) - ROM_LOAD( "p19", 0x10000, 0x8000, CRC(d64e0f89) SHA1(41204d5b0bc9d2f2599c3e881f10b73bddae3c5c) ) - ROM_LOAD( "p20", 0x18000, 0x8000, CRC(edba0f31) SHA1(b3fc886d3cf7a34b470dd72cc0268a193f9a64d7) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "up02_d3.rom", 0x00000, 0x8000, CRC(d43044f8) SHA1(4d5bc3730ea1bb1978ae246745416b71979cb100) ) - ROM_LOAD( "up02_e3.rom", 0x08000, 0x8000, CRC(365ed2d8) SHA1(e0f600c936483e3d0d03709ae709321d072145bd) ) - ROM_LOAD( "up02_g3.rom", 0x10000, 0x8000, CRC(92579bf3) SHA1(eb2084bf5c62cbbf08dc25997702f8e8eb3dcc5d) ) - - ROM_REGION( 0x30000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "p11", 0x00000, 0x8000, CRC(668b25a4) SHA1(235423e3b442271581dde0195fdff2a37596a9bc) ) - ROM_LOAD( "p14", 0x08000, 0x8000, CRC(a7031d4a) SHA1(9ea184990372909de7d8fe0891bb3e0441b13f90) ) - ROM_LOAD( "p12", 0x10000, 0x8000, CRC(f44e95fa) SHA1(6633bd1e9e947cae5ba696f6fd393bf0cd7969b0) ) - ROM_LOAD( "p15", 0x18000, 0x8000, CRC(120d2450) SHA1(8699db76f598e7719fa5f9a3dcc07d24c53e5da4) ) - ROM_LOAD( "p13", 0x20000, 0x8000, CRC(980ca3d8) SHA1(bda6f19edf43c61c0c8d2235bb60def76c801b87) ) - ROM_LOAD( "p16", 0x28000, 0x8000, CRC(9f820e8a) SHA1(2be0128d6861241f6a9c5a7032368dbc6d57b44e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "up03_f5.rom", 0x00000, 0x10000, CRC(5b43fe9f) SHA1(28f803f633b83b17f9b10516d38c862f90d55ff3) ) - ROM_LOAD( "up03_g5.rom", 0x10000, 0x10000, CRC(aae30cd6) SHA1(9d0d2c0f947387a0924bf0ed73de9305c1625054) ) -ROM_END - -ROM_START( dogosokj ) /* Victory Road Japan (Joystik version) */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* CPU A code */ - ROM_LOAD( "01", 0x00000, 0x10000, CRC(53b0ad90) SHA1(7581365d6c82b35189852d96437b0f19abe2cf74) ) - - ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* CPU B code */ - ROM_LOAD( "p2", 0x00000, 0x10000, CRC(907fac83) SHA1(691d95f95ef7a308c7f5e7defb20971b54423745) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* sound code */ - ROM_LOAD( "up03_k7.rom", 0x00000, 0x10000, CRC(173fa571) SHA1(fb9c783e5377fa86f70afee6804c8ee9061b27fd) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "mb7122e.1k", 0x000, 0x400, CRC(491ab831) SHA1(2801d68d8a7fddaca5c48f09d421fc48ff53d244) ) - ROM_LOAD( "mb7122e.2l", 0x400, 0x400, CRC(8feca424) SHA1(c3d666f4b4b914199b24ded02f9a1b643bf90d26) ) - ROM_LOAD( "mb7122e.1l", 0x800, 0x400, CRC(220076ca) SHA1(a353c770c0ffb1105fb93c97977597ad2fda8ac8) ) - - ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up02_b3.rom", 0x0000, 0x4000, CRC(51a4ec83) SHA1(8cb743c68a51b71ef3d78127b2cf6ab0877b13f6) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "p17", 0x00000, 0x8000, CRC(19d4518c) SHA1(133ac6e3d75af6cfc9aa9d1d467f16696c7f3794) ) - ROM_LOAD( "p18", 0x08000, 0x8000, CRC(d818be43) SHA1(274827b13e8572f68302b7e0b5964d3e32544303) ) - ROM_LOAD( "p19", 0x10000, 0x8000, CRC(d64e0f89) SHA1(41204d5b0bc9d2f2599c3e881f10b73bddae3c5c) ) - ROM_LOAD( "p20", 0x18000, 0x8000, CRC(edba0f31) SHA1(b3fc886d3cf7a34b470dd72cc0268a193f9a64d7) ) - - ROM_REGION( 0x18000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "up02_d3.rom", 0x00000, 0x8000, CRC(d43044f8) SHA1(4d5bc3730ea1bb1978ae246745416b71979cb100) ) - ROM_LOAD( "up02_e3.rom", 0x08000, 0x8000, CRC(365ed2d8) SHA1(e0f600c936483e3d0d03709ae709321d072145bd) ) - ROM_LOAD( "up02_g3.rom", 0x10000, 0x8000, CRC(92579bf3) SHA1(eb2084bf5c62cbbf08dc25997702f8e8eb3dcc5d) ) - - ROM_REGION( 0x40000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "p11", 0x00000, 0x8000, CRC(668b25a4) SHA1(235423e3b442271581dde0195fdff2a37596a9bc) ) - ROM_LOAD( "p14", 0x08000, 0x8000, CRC(a7031d4a) SHA1(9ea184990372909de7d8fe0891bb3e0441b13f90) ) - ROM_LOAD( "p12", 0x10000, 0x8000, CRC(f44e95fa) SHA1(6633bd1e9e947cae5ba696f6fd393bf0cd7969b0) ) - ROM_LOAD( "p15", 0x18000, 0x8000, CRC(120d2450) SHA1(8699db76f598e7719fa5f9a3dcc07d24c53e5da4) ) - ROM_LOAD( "p13", 0x20000, 0x8000, CRC(980ca3d8) SHA1(bda6f19edf43c61c0c8d2235bb60def76c801b87) ) - ROM_LOAD( "p16", 0x28000, 0x8000, CRC(9f820e8a) SHA1(2be0128d6861241f6a9c5a7032368dbc6d57b44e) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "up03_f5.rom", 0x00000, 0x10000, CRC(5b43fe9f) SHA1(28f803f633b83b17f9b10516d38c862f90d55ff3) ) - ROM_LOAD( "up03_g5.rom", 0x10000, 0x10000, CRC(aae30cd6) SHA1(9d0d2c0f947387a0924bf0ed73de9305c1625054) ) -ROM_END - -/***********************************************************************/ - -ROM_START( gwar ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "7g", 0x00000, 0x10000, CRC(5bcfa7dc) SHA1(1af2c36df287c9c84be8e7fc173b66f3dde5375e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "g02", 0x00000, 0x10000, CRC(86d931bf) SHA1(8bf7c7a7c01561568973d01956e5398bbc9c3463) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "g03", 0x00000, 0x10000, CRC(eb544ab9) SHA1(433af63feb4c4ef0e3bd383f2f9bc19e436fb103) ) - - ROM_REGION( 0x2400, REGION_PROMS, 0 ) - ROM_LOAD( "guprom.3", 0x0000, 0x0400, CRC(090236a3) SHA1(40d066e34291492c6baf8c120657e3d547274b59) ) /* red */ - ROM_LOAD( "guprom.2", 0x0400, 0x0400, CRC(9147de69) SHA1(e4b3b546e429c195e82f97322e2a295882e38a58) ) /* green */ - ROM_LOAD( "guprom.1", 0x0800, 0x0400, CRC(7f9c839e) SHA1(2fa60fa335f76891d961c9bd0066fa7f82f76779) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* h-decode */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* v-decode */ - ROM_LOAD( "ls.bin", 0x1400, 0x1000, CRC(73df921d) SHA1(c0f765da3e0e80d104b0baaa7a83bdcc399254b3) ) /* ls-joystick encoder */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g05", 0x0000, 0x08000, CRC(80f73e2e) SHA1(820824fb10f7dfec6247b46dde8ff7124bde3734) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "g06", 0x00000, 0x10000, CRC(f1dcdaef) SHA1(d9b65e7f4025787037628528d3bef699be2eb874) ) - ROM_LOAD( "g07", 0x10000, 0x10000, CRC(326e4e5e) SHA1(6935429925d748bb43072429db0d3b08ffdbc95d) ) - ROM_LOAD( "g08", 0x20000, 0x10000, CRC(0aa70967) SHA1(a6cbadbb960280b5e79660c0bbd43089ced39a44) ) - ROM_LOAD( "g09", 0x30000, 0x10000, CRC(b7686336) SHA1(d654d282862ff00488be38fb9c1302c8bb6f7e7c) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "g10", 0x00000, 0x10000, CRC(58600f7d) SHA1(3dcd25d1ed07e6f74f3316ebe41768eb155f4c45) ) - ROM_LOAD( "g11", 0x10000, 0x10000, CRC(a3f9b463) SHA1(ee83d18cf08972c792b05c277b1ca25d732e294d) ) - ROM_LOAD( "g12", 0x20000, 0x10000, CRC(092501be) SHA1(85d9a8922dde6824805a4b8e6c52b2a9ad092df9) ) - ROM_LOAD( "g13", 0x30000, 0x10000, CRC(25801ea6) SHA1(1aa61716d6be399a1eee2ee5079f13da0f1bd4e8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "g20", 0x00000, 0x10000, CRC(2b46edff) SHA1(db97e042621dcbedfeed71937ead6d715899d4f7) ) - ROM_LOAD( "g21", 0x10000, 0x10000, CRC(be19888d) SHA1(bc7b1b6236d41685faacc2008d51ae2da9a82909) ) - ROM_LOAD( "g18", 0x20000, 0x10000, CRC(2d653f0c) SHA1(99eb7883822b10f61b6e922c0d0519aacac83732) ) - ROM_LOAD( "g19", 0x30000, 0x10000, CRC(ebbf3ba2) SHA1(bc3631c43058faf1ec6b21ed8017b744afee6f5d) ) - ROM_LOAD( "g16", 0x40000, 0x10000, CRC(aeb3707f) SHA1(58d1a71cf83ab0f5f0dd67d441edbc8ece8c2ba5) ) - ROM_LOAD( "g17", 0x50000, 0x10000, CRC(0808f95f) SHA1(f67763cceb287a02e3b946ade52105a72161e540) ) - ROM_LOAD( "g14", 0x60000, 0x10000, CRC(8dfc7b87) SHA1(e3d75020aa1b90f12633f6515a0386f87441b225) ) - ROM_LOAD( "g15", 0x70000, 0x10000, CRC(06822aac) SHA1(630d438cbebe0b5af571948d0d3f4996f52aae1d) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "g04", 0x00000, 0x10000, CRC(2255f8dd) SHA1(fac31b617762d0fa39cf82a658be250b91ab73ce) ) -ROM_END - -ROM_START( gwara ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "gv3", 0x00000, 0x10000, CRC(24936d83) SHA1(33842322ead66e426946c6cfaa04e56afea90d78) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "gv4", 0x00000, 0x10000, CRC(26335a55) SHA1(de3e7d9e204a969745367aa37326d7b3e28c7424) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "gv2", 0x00000, 0x10000, CRC(896682dd) SHA1(dc2125c2378a01291197b2798a5eef6459cf5b99) ) - - ROM_REGION( 0x2400, REGION_PROMS, 0 ) - ROM_LOAD( "guprom.3", 0x000, 0x400, CRC(090236a3) SHA1(40d066e34291492c6baf8c120657e3d547274b59) ) /* red */ - ROM_LOAD( "guprom.2", 0x400, 0x400, CRC(9147de69) SHA1(e4b3b546e429c195e82f97322e2a295882e38a58) ) /* green */ - ROM_LOAD( "guprom.1", 0x800, 0x400, CRC(7f9c839e) SHA1(2fa60fa335f76891d961c9bd0066fa7f82f76779) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* h-decode */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* v-decode */ - ROM_LOAD( "ls.bin", 0x1400, 0x1000, CRC(73df921d) SHA1(c0f765da3e0e80d104b0baaa7a83bdcc399254b3) ) /* ls-joystick encoder */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "g05", 0x0000, 0x08000, CRC(80f73e2e) SHA1(820824fb10f7dfec6247b46dde8ff7124bde3734) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "g06", 0x00000, 0x10000, CRC(f1dcdaef) SHA1(d9b65e7f4025787037628528d3bef699be2eb874) ) - ROM_LOAD( "g07", 0x10000, 0x10000, CRC(326e4e5e) SHA1(6935429925d748bb43072429db0d3b08ffdbc95d) ) - ROM_LOAD( "g08", 0x20000, 0x10000, CRC(0aa70967) SHA1(a6cbadbb960280b5e79660c0bbd43089ced39a44) ) - ROM_LOAD( "g09", 0x30000, 0x10000, CRC(b7686336) SHA1(d654d282862ff00488be38fb9c1302c8bb6f7e7c) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "g10", 0x00000, 0x10000, CRC(58600f7d) SHA1(3dcd25d1ed07e6f74f3316ebe41768eb155f4c45) ) - ROM_LOAD( "g11", 0x10000, 0x10000, CRC(a3f9b463) SHA1(ee83d18cf08972c792b05c277b1ca25d732e294d) ) - ROM_LOAD( "g12", 0x20000, 0x10000, CRC(092501be) SHA1(85d9a8922dde6824805a4b8e6c52b2a9ad092df9) ) - ROM_LOAD( "g13", 0x30000, 0x10000, CRC(25801ea6) SHA1(1aa61716d6be399a1eee2ee5079f13da0f1bd4e8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "g20", 0x00000, 0x10000, CRC(2b46edff) SHA1(db97e042621dcbedfeed71937ead6d715899d4f7) ) - ROM_LOAD( "g21", 0x10000, 0x10000, CRC(be19888d) SHA1(bc7b1b6236d41685faacc2008d51ae2da9a82909) ) - ROM_LOAD( "g18", 0x20000, 0x10000, CRC(2d653f0c) SHA1(99eb7883822b10f61b6e922c0d0519aacac83732) ) - ROM_LOAD( "g19", 0x30000, 0x10000, CRC(ebbf3ba2) SHA1(bc3631c43058faf1ec6b21ed8017b744afee6f5d) ) - ROM_LOAD( "g16", 0x40000, 0x10000, CRC(aeb3707f) SHA1(58d1a71cf83ab0f5f0dd67d441edbc8ece8c2ba5) ) - ROM_LOAD( "g17", 0x50000, 0x10000, CRC(0808f95f) SHA1(f67763cceb287a02e3b946ade52105a72161e540) ) - ROM_LOAD( "g14", 0x60000, 0x10000, CRC(8dfc7b87) SHA1(e3d75020aa1b90f12633f6515a0386f87441b225) ) - ROM_LOAD( "g15", 0x70000, 0x10000, CRC(06822aac) SHA1(630d438cbebe0b5af571948d0d3f4996f52aae1d) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "g04", 0x00000, 0x10000, CRC(2255f8dd) SHA1(fac31b617762d0fa39cf82a658be250b91ab73ce) ) -ROM_END - -ROM_START( gwarj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "7y3047", 0x00000, 0x10000, CRC(7f8a880c) SHA1(1eb1c3eb45aa933118e5bd116eb3f81f39063ae3) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "g02", 0x00000, 0x10000, CRC(86d931bf) SHA1(8bf7c7a7c01561568973d01956e5398bbc9c3463) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) - ROM_LOAD( "g03", 0x00000, 0x10000, CRC(eb544ab9) SHA1(433af63feb4c4ef0e3bd383f2f9bc19e436fb103) ) - - ROM_REGION( 0x2400, REGION_PROMS, 0 ) - ROM_LOAD( "guprom.3", 0x000, 0x400, CRC(090236a3) SHA1(40d066e34291492c6baf8c120657e3d547274b59) ) /* red */ - ROM_LOAD( "guprom.2", 0x400, 0x400, CRC(9147de69) SHA1(e4b3b546e429c195e82f97322e2a295882e38a58) ) /* green */ - ROM_LOAD( "guprom.1", 0x800, 0x400, CRC(7f9c839e) SHA1(2fa60fa335f76891d961c9bd0066fa7f82f76779) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* h-decode */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* v-decode */ - ROM_LOAD( "ls.bin", 0x1400, 0x1000, CRC(73df921d) SHA1(c0f765da3e0e80d104b0baaa7a83bdcc399254b3) ) /* ls-joystick encoder */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "792001", 0x0000, 0x08000, CRC(99d7ddf3) SHA1(4e4bc400d184e1fb9d0af3a33cc6f6d099bb3bee) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "g06", 0x00000, 0x10000, CRC(f1dcdaef) SHA1(d9b65e7f4025787037628528d3bef699be2eb874) ) - ROM_LOAD( "g07", 0x10000, 0x10000, CRC(326e4e5e) SHA1(6935429925d748bb43072429db0d3b08ffdbc95d) ) - ROM_LOAD( "g08", 0x20000, 0x10000, CRC(0aa70967) SHA1(a6cbadbb960280b5e79660c0bbd43089ced39a44) ) - ROM_LOAD( "g09", 0x30000, 0x10000, CRC(b7686336) SHA1(d654d282862ff00488be38fb9c1302c8bb6f7e7c) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "g10", 0x00000, 0x10000, CRC(58600f7d) SHA1(3dcd25d1ed07e6f74f3316ebe41768eb155f4c45) ) - ROM_LOAD( "g11", 0x10000, 0x10000, CRC(a3f9b463) SHA1(ee83d18cf08972c792b05c277b1ca25d732e294d) ) - ROM_LOAD( "g12", 0x20000, 0x10000, CRC(092501be) SHA1(85d9a8922dde6824805a4b8e6c52b2a9ad092df9) ) - ROM_LOAD( "g13", 0x30000, 0x10000, CRC(25801ea6) SHA1(1aa61716d6be399a1eee2ee5079f13da0f1bd4e8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "g20", 0x00000, 0x10000, CRC(2b46edff) SHA1(db97e042621dcbedfeed71937ead6d715899d4f7) ) - ROM_LOAD( "g21", 0x10000, 0x10000, CRC(be19888d) SHA1(bc7b1b6236d41685faacc2008d51ae2da9a82909) ) - ROM_LOAD( "g18", 0x20000, 0x10000, CRC(2d653f0c) SHA1(99eb7883822b10f61b6e922c0d0519aacac83732) ) - ROM_LOAD( "g19", 0x30000, 0x10000, CRC(ebbf3ba2) SHA1(bc3631c43058faf1ec6b21ed8017b744afee6f5d) ) - ROM_LOAD( "g16", 0x40000, 0x10000, CRC(aeb3707f) SHA1(58d1a71cf83ab0f5f0dd67d441edbc8ece8c2ba5) ) - ROM_LOAD( "g17", 0x50000, 0x10000, CRC(0808f95f) SHA1(f67763cceb287a02e3b946ade52105a72161e540) ) - ROM_LOAD( "g14", 0x60000, 0x10000, CRC(8dfc7b87) SHA1(e3d75020aa1b90f12633f6515a0386f87441b225) ) - ROM_LOAD( "g15", 0x70000, 0x10000, CRC(06822aac) SHA1(630d438cbebe0b5af571948d0d3f4996f52aae1d) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "g04", 0x00000, 0x10000, CRC(2255f8dd) SHA1(fac31b617762d0fa39cf82a658be250b91ab73ce) ) -ROM_END - -ROM_START( gwarb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "g01", 0x00000, 0x10000, CRC(ce1d3c80) SHA1(605ada3529d0b26425e6c573c31117249bb7a7db) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "g02", 0x00000, 0x10000, CRC(86d931bf) SHA1(8bf7c7a7c01561568973d01956e5398bbc9c3463) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "g03", 0x00000, 0x10000, CRC(eb544ab9) SHA1(433af63feb4c4ef0e3bd383f2f9bc19e436fb103) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "guprom.3", 0x000, 0x400, CRC(090236a3) SHA1(40d066e34291492c6baf8c120657e3d547274b59) ) /* red */ // up03_k1.rom - ROM_LOAD( "guprom.2", 0x400, 0x400, CRC(9147de69) SHA1(e4b3b546e429c195e82f97322e2a295882e38a58) ) /* green */ // up03_l1.rom - ROM_LOAD( "guprom.1", 0x800, 0x400, CRC(7f9c839e) SHA1(2fa60fa335f76891d961c9bd0066fa7f82f76779) ) /* blue */ // up03_k2.rom - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "g05", 0x0000, 0x08000, CRC(80f73e2e) SHA1(820824fb10f7dfec6247b46dde8ff7124bde3734) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */ - ROM_LOAD( "g06", 0x00000, 0x10000, CRC(f1dcdaef) SHA1(d9b65e7f4025787037628528d3bef699be2eb874) ) - ROM_LOAD( "g07", 0x10000, 0x10000, CRC(326e4e5e) SHA1(6935429925d748bb43072429db0d3b08ffdbc95d) ) - ROM_LOAD( "g08", 0x20000, 0x10000, CRC(0aa70967) SHA1(a6cbadbb960280b5e79660c0bbd43089ced39a44) ) - ROM_LOAD( "g09", 0x30000, 0x10000, CRC(b7686336) SHA1(d654d282862ff00488be38fb9c1302c8bb6f7e7c) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "g10", 0x00000, 0x10000, CRC(58600f7d) SHA1(3dcd25d1ed07e6f74f3316ebe41768eb155f4c45) ) - ROM_LOAD( "g11", 0x10000, 0x10000, CRC(a3f9b463) SHA1(ee83d18cf08972c792b05c277b1ca25d732e294d) ) - ROM_LOAD( "g12", 0x20000, 0x10000, CRC(092501be) SHA1(85d9a8922dde6824805a4b8e6c52b2a9ad092df9) ) - ROM_LOAD( "g13", 0x30000, 0x10000, CRC(25801ea6) SHA1(1aa61716d6be399a1eee2ee5079f13da0f1bd4e8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "g20", 0x00000, 0x10000, CRC(2b46edff) SHA1(db97e042621dcbedfeed71937ead6d715899d4f7) ) - ROM_LOAD( "g21", 0x10000, 0x10000, CRC(be19888d) SHA1(bc7b1b6236d41685faacc2008d51ae2da9a82909) ) - ROM_LOAD( "g18", 0x20000, 0x10000, CRC(2d653f0c) SHA1(99eb7883822b10f61b6e922c0d0519aacac83732) ) - ROM_LOAD( "g19", 0x30000, 0x10000, CRC(ebbf3ba2) SHA1(bc3631c43058faf1ec6b21ed8017b744afee6f5d) ) - ROM_LOAD( "g16", 0x40000, 0x10000, CRC(aeb3707f) SHA1(58d1a71cf83ab0f5f0dd67d441edbc8ece8c2ba5) ) - ROM_LOAD( "g17", 0x50000, 0x10000, CRC(0808f95f) SHA1(f67763cceb287a02e3b946ade52105a72161e540) ) - ROM_LOAD( "g14", 0x60000, 0x10000, CRC(8dfc7b87) SHA1(e3d75020aa1b90f12633f6515a0386f87441b225) ) - ROM_LOAD( "g15", 0x70000, 0x10000, CRC(06822aac) SHA1(630d438cbebe0b5af571948d0d3f4996f52aae1d) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "g04", 0x00000, 0x10000, CRC(2255f8dd) SHA1(fac31b617762d0fa39cf82a658be250b91ab73ce) ) -ROM_END - -/* -pals ----- -Fuse Plot - a6003-3 -? - -PAL16L8/A/A-2/A-4 -* -DD PAL16L8/A/A-2/A-4* -QP20* -QF2048* -G0* -F0* -L0 11111111111111111111111111111111* -L32 11111110111111111111111111111111* -L64 11111111111111101111111111111011* -L96 11111111110111101111111111111111* -L128 00000000000000000000000000000000* -L160 00000000000000000000000000000000* -L192 00000000000000000000000000000000* -L224 00000000000000000000000000000000* -L256 11111111111111111111111111111111* -L288 11101111111111111111111111111111* -L320 10111111111111111111111111111111* -L352 11111011111111111111111111111111* -L384 11111111101111111111111111111111* -L416 00000000000000000000000000000000* -L448 00000000000000000000000000000000* -L480 00000000000000000000000000000000* -L512 11111111111111111111111111111111* -L544 11111111111111111111111111111110* -L576 11111111111111111111111111101111* -L608 11111111111111111111111011111111* -L640 11111111111111111110111111111111* -L672 00000000000000000000000000000000* -L704 00000000000000000000000000000000* -L736 00000000000000000000000000000000* -L768 11111111111111111111111111111111* -L800 11111111111110111111111111111111* -L832 11111111111111111011111111111111* -L864 11111111111111111111101111111111* -L896 11111111111111111111111110111111* -L928 00000000000000000000000000000000* -L960 00000000000000000000000000000000* -L992 00000000000000000000000000000000* -L1024 00000000000000000000000000000000* -L1056 00000000000000000000000000000000* -L1088 00000000000000000000000000000000* -L1120 00000000000000000000000000000000* -L1152 00000000000000000000000000000000* -L1184 00000000000000000000000000000000* -L1216 00000000000000000000000000000000* -L1248 00000000000000000000000000000000* -L1280 00000000000000000000000000000000* -L1312 00000000000000000000000000000000* -L1344 00000000000000000000000000000000* -L1376 00000000000000000000000000000000* -L1408 00000000000000000000000000000000* -L1440 00000000000000000000000000000000* -L1472 00000000000000000000000000000000* -L1504 00000000000000000000000000000000* -L1536 00000000000000000000000000000000* -L1568 00000000000000000000000000000000* -L1600 00000000000000000000000000000000* -L1632 00000000000000000000000000000000* -L1664 00000000000000000000000000000000* -L1696 00000000000000000000000000000000* -L1728 00000000000000000000000000000000* -L1760 00000000000000000000000000000000* -L1792 11111111111111111111111111111111* -L1824 11111110111111111111111111111111* -L1856 11111111111011111111111111110111* -L1888 11111111111001110111011101111111* -L1920 00000000000000000000000000000000* -L1952 00000000000000000000000000000000* -L1984 00000000000000000000000000000000* -L2016 00000000000000000000000000000000* -C57BE* -? - - -Fuse Plot - a6004-1 -? - -PAL16R6B-2/B-4 -* -DD PAL16R6B-2/B-4* -QP20* -QF2048* -G0* -F0* -L0 11111111111111111111111111111111* -L32 11111111111111111111011111111111* -L64 11111110111111111111111111111111* -L96 00000000000000000000000000000000* -L128 00000000000000000000000000000000* -L160 00000000000000000000000000000000* -L192 00000000000000000000000000000000* -L224 00000000000000000000000000000000* -L256 01111111011111111111111111111111* -L288 00000000000000000000000000000000* -L320 00000000000000000000000000000000* -L352 00000000000000000000000000000000* -L384 00000000000000000000000000000000* -L416 00000000000000000000000000000000* -L448 00000000000000000000000000000000* -L480 00000000000000000000000000000000* -L512 11111111101111111111111111111111* -L544 00000000000000000000000000000000* -L576 00000000000000000000000000000000* -L608 00000000000000000000000000000000* -L640 00000000000000000000000000000000* -L672 00000000000000000000000000000000* -L704 00000000000000000000000000000000* -L736 00000000000000000000000000000000* -L768 11111110111101110111101111111111* -L800 00000000000000000000000000000000* -L832 00000000000000000000000000000000* -L864 00000000000000000000000000000000* -L896 00000000000000000000000000000000* -L928 00000000000000000000000000000000* -L960 00000000000000000000000000000000* -L992 00000000000000000000000000000000* -L1024 11111101111111110111101111111111* -L1056 00000000000000000000000000000000* -L1088 00000000000000000000000000000000* -L1120 00000000000000000000000000000000* -L1152 00000000000000000000000000000000* -L1184 00000000000000000000000000000000* -L1216 00000000000000000000000000000000* -L1248 00000000000000000000000000000000* -L1280 11111101111111111111101111111111* -L1312 00000000000000000000000000000000* -L1344 00000000000000000000000000000000* -L1376 00000000000000000000000000000000* -L1408 00000000000000000000000000000000* -L1440 00000000000000000000000000000000* -L1472 00000000000000000000000000000000* -L1504 00000000000000000000000000000000* -L1536 00000000000000000000000000000000* -L1568 00000000000000000000000000000000* -L1600 00000000000000000000000000000000* -L1632 00000000000000000000000000000000* -L1664 00000000000000000000000000000000* -L1696 00000000000000000000000000000000* -L1728 00000000000000000000000000000000* -L1760 00000000000000000000000000000000* -L1792 11111111111111111111111111111111* -L1824 11111101111111111111111110111111* -L1856 01110111011111111111111111111111* -L1888 01111111011111111111111110111111* -L1920 01110101011111111111111111111111* -L1952 00000000000000000000000000000000* -L1984 00000000000000000000000000000000* -L2016 00000000000000000000000000000000* -C311C* -? - - -Fuse Plot - a6004-2 -? - -PAL20L8A/A-2 -* -DD PAL20L8A/A-2* -QP24* -QF2560* -G0* -F0* -L0 0000000000000000000000000000000000000000* -L40 0000000000000000000000000000000000000000* -L80 0000000000000000000000000000000000000000* -L120 0000000000000000000000000000000000000000* -L160 0000000000000000000000000000000000000000* -L200 0000000000000000000000000000000000000000* -L240 0000000000000000000000000000000000000000* -L280 0000000000000000000000000000000000000000* -L320 1111111111111111111111111111111111111111* -L360 1010011001111011111111111111111111111111* -L400 1010011010110111111111111111111111111111* -L440 1111110111111111101110110111011110111111* -L480 1111110111111111101110110111101101111111* -L520 0000000000000000000000000000000000000000* -L560 0000000000000000000000000000000000000000* -L600 0000000000000000000000000000000000000000* -L640 1111111111111111111111111111111111111111* -L680 1010011001110111111111111111111111111111* -L720 1111110111111111101110110111011101111111* -L760 0000000000000000000000000000000000000000* -L800 0000000000000000000000000000000000000000* -L840 0000000000000000000000000000000000000000* -L880 0000000000000000000000000000000000000000* -L920 0000000000000000000000000000000000000000* -L960 1111111111111111111111111111111111111111* -L1000 1010101010110111111111111111111111111111* -L1040 1111110111111111101110111011101101111111* -L1080 0000000000000000000000000000000000000000* -L1120 0000000000000000000000000000000000000000* -L1160 0000000000000000000000000000000000000000* -L1200 0000000000000000000000000000000000000000* -L1240 0000000000000000000000000000000000000000* -L1280 1111111111111111111111111111111111111111* -L1320 1111111011111111111111111111111111111011* -L1360 1111110111111111111111111111111111111110* -L1400 0000000000000000000000000000000000000000* -L1440 0000000000000000000000000000000000000000* -L1480 0000000000000000000000000000000000000000* -L1520 0000000000000000000000000000000000000000* -L1560 0000000000000000000000000000000000000000* -L1600 1111111111111111111111111111111111111111* -L1640 1010101001111011111111111111111111111111* -L1680 1010101001110111111111111111111111111111* -L1720 1111110111111111101110111011011110111111* -L1760 1111110111111111101110111011011101111111* -L1800 0000000000000000000000000000000000000000* -L1840 0000000000000000000000000000000000000000* -L1880 0000000000000000000000000000000000000000* -L1920 1111111111111111111111111111111111111111* -L1960 1010011010111011111111111111111111111111* -L2000 1111110111111111101110110111101110111111* -L2040 0000000000000000000000000000000000000000* -L2080 0000000000000000000000000000000000000000* -L2120 0000000000000000000000000000000000000000* -L2160 0000000000000000000000000000000000000000* -L2200 0000000000000000000000000000000000000000* -L2240 0000000000000000000000000000000000000000* -L2280 0000000000000000000000000000000000000000* -L2320 0000000000000000000000000000000000000000* -L2360 0000000000000000000000000000000000000000* -L2400 0000000000000000000000000000000000000000* -L2440 0000000000000000000000000000000000000000* -L2480 0000000000000000000000000000000000000000* -L2520 0000000000000000000000000000000000000000* -C63C0* -? -*/ -/***********************************************************************/ - -ROM_START( bermudat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "bt_p1.rom", 0x0000, 0x10000, CRC(43dec5e9) SHA1(2b29016d4af2a0a6be87f440f235a6a76f8a52a0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "bt_p2.rom", 0x00000, 0x10000, CRC(0e193265) SHA1(765ad63d1f752920d3d7829747e8f2808670ee84) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "bt_p3.rom", 0x00000, 0x10000, CRC(53a82e50) SHA1(ce1e72f0ddc5e19c2d8a6a545ce205c7c39da2dd) ) /* YM3526 */ - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "btj_01r.prm", 0x0000, 0x0400, CRC(f4b54d06) SHA1(620ea513dbf3219844cdb36ea5d7e2a1b13e3198) ) /* red */ - ROM_LOAD( "btj_02g.prm", 0x0400, 0x0400, CRC(baac139e) SHA1(c951c9a2d8bb1af178de63c6e2cb716dcb2ac57c) ) /* green */ - ROM_LOAD( "btj_03b.prm", 0x0800, 0x0400, CRC(2edf2e0b) SHA1(b430ec934399909e6e1f27c7bf47bbacf01f266f) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bt_p10.rom", 0x0000, 0x8000, CRC(d3650211) SHA1(cc7cfe05c5903caf33f8f02c416f68e6d2f6baa7) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "bt_p22.rom", 0x00000, 0x10000, CRC(8daf7df4) SHA1(c6b5157821f3751bc70411ba0e1ea43d223ad0f6) ) - ROM_LOAD( "bt_p21.rom", 0x10000, 0x10000, CRC(b7689599) SHA1(ffa35b480efbc55948e5d0202e7a7ab6446db905) ) - ROM_LOAD( "bt_p20.rom", 0x20000, 0x10000, CRC(ab6217b7) SHA1(fb4b0fcd9ff1f04cf772a46b6727d3de531beb0e) ) - ROM_LOAD( "bt_p19.rom", 0x30000, 0x10000, CRC(8ed759a0) SHA1(cd039ed9cb4127729bd29c6232dcbb77b85a4159) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "bt_p6.rom", 0x00000, 0x8000, CRC(8ffdf969) SHA1(68672dc74156ebbf59316dfeae25b155d699d0eb) ) - ROM_LOAD( "bt_p7.rom", 0x10000, 0x8000, CRC(268d10df) SHA1(6a297bbd7b4248306d8756a80f4403c45d833eb3) ) - ROM_LOAD( "bt_p8.rom", 0x20000, 0x8000, CRC(3e39e9dd) SHA1(394c85841113a1b2bdd744445e3e4e3acc7099c6) ) - ROM_LOAD( "bt_p9.rom", 0x30000, 0x8000, CRC(bf56da61) SHA1(855687b6a0a4cef3b8294ca359abe14b11ad5749) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "bt_p11.rom", 0x00000, 0x10000, CRC(aae7410e) SHA1(19dcd13fc53c05bac05d2242965129ab1e3a4a88) ) - ROM_LOAD( "bt_p12.rom", 0x10000, 0x10000, CRC(18914f70) SHA1(2c4e7db8b6e70dffb27d10032f750932c7379a66) ) - ROM_LOAD( "bt_p13.rom", 0x20000, 0x10000, CRC(cd79ce81) SHA1(00f205f8a97f839e2592bdfb624fe6b902ce5a93) ) - ROM_LOAD( "bt_p14.rom", 0x30000, 0x10000, CRC(edc57117) SHA1(899a524973f407c3be1de9dac50f3d373bccb2e5) ) - ROM_LOAD( "bt_p15.rom", 0x40000, 0x10000, CRC(448bf9f4) SHA1(0f880ba3e97a57c937afdce29a1461bc310196eb) ) - ROM_LOAD( "bt_p16.rom", 0x50000, 0x10000, CRC(119999eb) SHA1(0030121239c3ef07c093a7e2146c4027e1b544ac) ) - ROM_LOAD( "bt_p17.rom", 0x60000, 0x10000, CRC(b5462139) SHA1(9af190cf5fabcc017d707be43bd141dc6db12827) ) - ROM_LOAD( "bt_p18.rom", 0x70000, 0x10000, CRC(cb416227) SHA1(aba0b5a0c93713c676a59e8d3c36d780a4e01894) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "bt_p4.rom", 0x00000, 0x10000, CRC(4bc83229) SHA1(b58d08ebed0b02279385a7ac2f385e62443e3de6) ) - ROM_LOAD( "bt_p5.rom", 0x10000, 0x10000, CRC(817bd62c) SHA1(d3ee2ff01a4da8b928728b2fd4948fabd2b04420) ) -ROM_END - -ROM_START( bermudao ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "btj_p01.bin", 0x0000, 0x10000, CRC(eda75f36) SHA1(d6fcb46dc45007a77bf6a8ca7aa53aefedcecf92) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "bt_p2.rom", 0x00000, 0x10000, CRC(0e193265) SHA1(765ad63d1f752920d3d7829747e8f2808670ee84) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "btj_p03.bin", 0x00000, 0x10000, CRC(fea8a096) SHA1(593e34a20ab6f5bae9d74415af5a834646d2444e) ) /* YM3526 */ - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "btj_01r.prm", 0x0000, 0x0400, CRC(f4b54d06) SHA1(620ea513dbf3219844cdb36ea5d7e2a1b13e3198) ) /* red */ - ROM_LOAD( "btj_02g.prm", 0x0400, 0x0400, CRC(baac139e) SHA1(c951c9a2d8bb1af178de63c6e2cb716dcb2ac57c) ) /* green */ - ROM_LOAD( "btj_03b.prm", 0x0800, 0x0400, CRC(2edf2e0b) SHA1(b430ec934399909e6e1f27c7bf47bbacf01f266f) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "bt_p10.rom", 0x0000, 0x8000, CRC(d3650211) SHA1(cc7cfe05c5903caf33f8f02c416f68e6d2f6baa7) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "bt_p22.rom", 0x00000, 0x10000, CRC(8daf7df4) SHA1(c6b5157821f3751bc70411ba0e1ea43d223ad0f6) ) - ROM_LOAD( "bt_p21.rom", 0x10000, 0x10000, CRC(b7689599) SHA1(ffa35b480efbc55948e5d0202e7a7ab6446db905) ) - ROM_LOAD( "bt_p20.rom", 0x20000, 0x10000, CRC(ab6217b7) SHA1(fb4b0fcd9ff1f04cf772a46b6727d3de531beb0e) ) - ROM_LOAD( "bt_p19.rom", 0x30000, 0x10000, CRC(8ed759a0) SHA1(cd039ed9cb4127729bd29c6232dcbb77b85a4159) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "bt_p6.rom", 0x00000, 0x8000, CRC(8ffdf969) SHA1(68672dc74156ebbf59316dfeae25b155d699d0eb) ) - ROM_LOAD( "bt_p7.rom", 0x10000, 0x8000, CRC(268d10df) SHA1(6a297bbd7b4248306d8756a80f4403c45d833eb3) ) - ROM_LOAD( "bt_p8.rom", 0x20000, 0x8000, CRC(3e39e9dd) SHA1(394c85841113a1b2bdd744445e3e4e3acc7099c6) ) - ROM_LOAD( "bt_p9.rom", 0x30000, 0x8000, CRC(bf56da61) SHA1(855687b6a0a4cef3b8294ca359abe14b11ad5749) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "bt_p11.rom", 0x00000, 0x10000, CRC(aae7410e) SHA1(19dcd13fc53c05bac05d2242965129ab1e3a4a88) ) - ROM_LOAD( "bt_p12.rom", 0x10000, 0x10000, CRC(18914f70) SHA1(2c4e7db8b6e70dffb27d10032f750932c7379a66) ) - ROM_LOAD( "bt_p13.rom", 0x20000, 0x10000, CRC(cd79ce81) SHA1(00f205f8a97f839e2592bdfb624fe6b902ce5a93) ) - ROM_LOAD( "bt_p14.rom", 0x30000, 0x10000, CRC(edc57117) SHA1(899a524973f407c3be1de9dac50f3d373bccb2e5) ) - ROM_LOAD( "bt_p15.rom", 0x40000, 0x10000, CRC(448bf9f4) SHA1(0f880ba3e97a57c937afdce29a1461bc310196eb) ) - ROM_LOAD( "bt_p16.rom", 0x50000, 0x10000, CRC(119999eb) SHA1(0030121239c3ef07c093a7e2146c4027e1b544ac) ) - ROM_LOAD( "bt_p17.rom", 0x60000, 0x10000, CRC(b5462139) SHA1(9af190cf5fabcc017d707be43bd141dc6db12827) ) - ROM_LOAD( "bt_p18.rom", 0x70000, 0x10000, CRC(cb416227) SHA1(aba0b5a0c93713c676a59e8d3c36d780a4e01894) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "btj_p04.bin", 0x00000, 0x10000, CRC(b2e01129) SHA1(b47ffbcbd9a70f74dfd6906d4f9386db24a7294f) ) - ROM_LOAD( "btj_p05.bin", 0x10000, 0x10000, CRC(924c24f7) SHA1(7a2dafbdaa748121fc6279677f6bffd9e10b1a54) ) -ROM_END - -ROM_START( worldwar ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "ww4.bin", 0x0000, 0x10000, CRC(bc29d09f) SHA1(9bd5a47565934590347b7152457869331ae94375) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "ww5.bin", 0x00000, 0x10000, CRC(8dc15909) SHA1(dc0f0e969c36469cc91ecfb1a98cfdb1020972eb) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "ww3.bin", 0x00000, 0x10000, CRC(8b74c951) SHA1(f4560380f16bcd396d08f48541c65f7be5b290d0) ) - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "ww_r.bin", 0x0000, 0x0400, CRC(b88e95f0) SHA1(621c4bf716134d758dae2b3bc519f0a890a11fdb) ) /* red */ - ROM_LOAD( "ww_g.bin", 0x0400, 0x0400, CRC(5e1616b2) SHA1(f2df8f06e717f16c689a941a3a1762dfeb377c83) ) /* green */ - ROM_LOAD( "ww_b.bin", 0x0800, 0x0400, CRC(e9770796) SHA1(2d3001650e781ba7c92a1b3ad0cb9d8c59166e5e) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ww6.bin", 0x0000, 0x8000, CRC(d57570ab) SHA1(98997de12225d177be4916c7f2e6a7a2df24b8f2) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "ww11.bin", 0x00000, 0x10000, CRC(603ddcb5) SHA1(766d477672f7936a2b12d3aef435b59aaa77886d) ) - ROM_LOAD( "ww12.bin", 0x10000, 0x10000, CRC(388093ff) SHA1(b449031c8225b10d7e27e3a2a0636cfd8cb4e03d) ) - ROM_LOAD( "ww13.bin", 0x20000, 0x10000, CRC(83a7ef62) SHA1(692be1db8b0b0ff518ffe6e000fa8eb0ca7d8b06) ) - ROM_LOAD( "ww14.bin", 0x30000, 0x10000, CRC(04c784be) SHA1(1a485eeb65dee295c791006d58e4e7305bdcf490) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "ww7.bin", 0x30000, 0x08000, CRC(53c4b24e) SHA1(5f72848f585dcee857715d6ca0020237dd23abc3) ) - ROM_LOAD( "ww8.bin", 0x20000, 0x08000, CRC(0ec15086) SHA1(6f5fb4a0f96b3ab745f402c04c2cdc2bacaf4844) ) - ROM_LOAD( "ww9.bin", 0x10000, 0x08000, CRC(d9d35911) SHA1(74c23f2967be76ced82522a67291de233528b099) ) - ROM_LOAD( "ww10.bin", 0x00000, 0x08000, CRC(f68a2d51) SHA1(bf3bfcb7fcb77f4605472775025dc69e979155c8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "ww15.bin", 0x40000, 0x10000, CRC(d55ce063) SHA1(c0845db7e928e735746822ab94e5f148f38e73cc) ) - ROM_LOAD( "ww16.bin", 0x50000, 0x10000, CRC(a2d19ce5) SHA1(ec1e22c8aa1d24b24fa97015c43e651aebb5a3bb) ) - ROM_LOAD( "ww17.bin", 0x60000, 0x10000, CRC(a9a6b128) SHA1(bd09fcf91211739a304771f633f04235d32b057d) ) - ROM_LOAD( "ww18.bin", 0x70000, 0x10000, CRC(c712d24c) SHA1(59858d446491e63f8bd0fd1f8aa20262fa0522ef) ) - ROM_LOAD( "ww19.bin", 0x20000, 0x10000, CRC(c39ac1a7) SHA1(9f8048250306ee23c6c66c751b64f19168123ff3) ) - ROM_LOAD( "ww20.bin", 0x30000, 0x10000, CRC(8504170f) SHA1(e9970d006dbc63640234bb4baa76a10d84f22bcd) ) - ROM_LOAD( "ww21.bin", 0x00000, 0x10000, CRC(be974fbe) SHA1(bcfafb85ad858fc0a3dceb2d5fe319d812df50fc) ) - ROM_LOAD( "ww22.bin", 0x10000, 0x10000, CRC(9914972a) SHA1(57a27173bc525b18f42699eab9300d4c8652a7c6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "bt_p4.rom", 0x00000, 0x10000, CRC(4bc83229) SHA1(b58d08ebed0b02279385a7ac2f385e62443e3de6) ) - ROM_LOAD( "bt_p5.rom", 0x10000, 0x10000, CRC(817bd62c) SHA1(d3ee2ff01a4da8b928728b2fd4948fabd2b04420) ) -ROM_END - -ROM_START( bermudaa ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "4", 0x0000, 0x10000, CRC(4de39d01) SHA1(4312660c6658079c2d148c07d24f741804f3e45c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "5", 0x00000, 0x10000, CRC(76158e94) SHA1(221e59b3fd87c6193755753d6ac6a96807e23120) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "3", 0x00000, 0x10000, CRC(c79134a8) SHA1(247459d31022f1491978ba7fcc62dd71983c9057) ) - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "mb7122e.1k", 0x0000, 0x0400, CRC(1e8fc4c3) SHA1(21b26e6a046c10bab57d2fa986082b7e45a6c4de) ) /* red */ - ROM_LOAD( "mb7122e.2l", 0x0400, 0x0400, CRC(23ce9707) SHA1(c83ef6c3324770c756f1daf01c22214e5dde161e) ) /* green */ - ROM_LOAD( "mb7122e.1l", 0x0800, 0x0400, CRC(26caf985) SHA1(113629bf2e2309dea23a39bc9206e228639d16f3) ) /* blue */ - ROM_LOAD( "btj_h.prm", 0x0c00, 0x0400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "btj_v.prm", 0x1000, 0x0400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "6", 0x0000, 0x8000, CRC(a0e6710c) SHA1(28010eaed046681295661b6fa3e76090ba86592b) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "ww11.bin", 0x00000, 0x10000, CRC(603ddcb5) SHA1(766d477672f7936a2b12d3aef435b59aaa77886d) ) - ROM_LOAD( "ww12.bin", 0x10000, 0x10000, CRC(388093ff) SHA1(b449031c8225b10d7e27e3a2a0636cfd8cb4e03d) ) - ROM_LOAD( "ww13.bin", 0x20000, 0x10000, CRC(83a7ef62) SHA1(692be1db8b0b0ff518ffe6e000fa8eb0ca7d8b06) ) - ROM_LOAD( "ww14.bin", 0x30000, 0x10000, CRC(04c784be) SHA1(1a485eeb65dee295c791006d58e4e7305bdcf490) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "ww7.bin", 0x30000, 0x08000, CRC(53c4b24e) SHA1(5f72848f585dcee857715d6ca0020237dd23abc3) ) - ROM_LOAD( "ww8.bin", 0x20000, 0x08000, CRC(0ec15086) SHA1(6f5fb4a0f96b3ab745f402c04c2cdc2bacaf4844) ) - ROM_LOAD( "ww9.bin", 0x10000, 0x08000, CRC(d9d35911) SHA1(74c23f2967be76ced82522a67291de233528b099) ) - ROM_LOAD( "ww10.bin", 0x00000, 0x08000, CRC(f68a2d51) SHA1(bf3bfcb7fcb77f4605472775025dc69e979155c8) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "ww15.bin", 0x40000, 0x10000, CRC(d55ce063) SHA1(c0845db7e928e735746822ab94e5f148f38e73cc) ) - ROM_LOAD( "ww16.bin", 0x50000, 0x10000, CRC(a2d19ce5) SHA1(ec1e22c8aa1d24b24fa97015c43e651aebb5a3bb) ) - ROM_LOAD( "ww17.bin", 0x60000, 0x10000, CRC(a9a6b128) SHA1(bd09fcf91211739a304771f633f04235d32b057d) ) - ROM_LOAD( "ww18.bin", 0x70000, 0x10000, CRC(c712d24c) SHA1(59858d446491e63f8bd0fd1f8aa20262fa0522ef) ) - ROM_LOAD( "ww19.bin", 0x20000, 0x10000, CRC(c39ac1a7) SHA1(9f8048250306ee23c6c66c751b64f19168123ff3) ) - ROM_LOAD( "ww20.bin", 0x30000, 0x10000, CRC(8504170f) SHA1(e9970d006dbc63640234bb4baa76a10d84f22bcd) ) - ROM_LOAD( "ww21.bin", 0x00000, 0x10000, CRC(be974fbe) SHA1(bcfafb85ad858fc0a3dceb2d5fe319d812df50fc) ) - ROM_LOAD( "ww22.bin", 0x10000, 0x10000, CRC(9914972a) SHA1(57a27173bc525b18f42699eab9300d4c8652a7c6) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "bt_p4.rom", 0x00000, 0x10000, CRC(4bc83229) SHA1(b58d08ebed0b02279385a7ac2f385e62443e3de6) ) - ROM_LOAD( "bt_p5.rom", 0x10000, 0x10000, CRC(817bd62c) SHA1(d3ee2ff01a4da8b928728b2fd4948fabd2b04420) ) -ROM_END - -/***********************************************************************/ - -ROM_START( psychos ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "p7", 0x00000, 0x10000, CRC(562809f4) SHA1(71d2a0fbfbe953e2bc4169d3c0a4f259911f04c3) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "up03_m8.rom", 0x00000, 0x10000, CRC(5f426ddb) SHA1(d4b2215122b23066ba2b231992f0f27057259ded) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "p5", 0x0000, 0x10000, CRC(64503283) SHA1(e380164ac4268eda1d9ca2404b3dddc5fd3f9dcc) ) - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x00000, 0x00400, CRC(27b8ca8c) SHA1(a2dbc22ca10c2c2c874bf766fe64981f9be75aba) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x00400, 0x00400, CRC(40e78c9e) SHA1(779c84e5a40365d36088a018d9d1a3524f53844a) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x00800, 0x00400, CRC(d845d5ac) SHA1(e1e0954c44264456a02aebe5e3b0bba6031b837b) ) /* blue */ - ROM_LOAD( "mb7122e.8j", 0x0c00, 0x400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "mb7122e.8k", 0x1000, 0x400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up02_a3.rom", 0x0000, 0x8000, CRC(11a71919) SHA1(ffb8c54ad5162ea5040508ccb9244b7cd087c047) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "up01_f1.rom", 0x00000, 0x10000, CRC(167e5765) SHA1(5deb66255278e1891c344e0e9665c6f0fda59391) ) - ROM_LOAD( "up01_d1.rom", 0x10000, 0x10000, CRC(8b0fe8d0) SHA1(30b24878e0e333a635dae475b6527b03b9e0302c) ) - ROM_LOAD( "up01_c1.rom", 0x20000, 0x10000, CRC(f4361c50) SHA1(59d0915c4c4d07e26d205ffee95d7628f8eefb6d) ) - ROM_LOAD( "up01_a1.rom", 0x30000, 0x10000, CRC(e4b0b95e) SHA1(8e35138f9d1fc6c1d787cf09ec17a900710db375) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "up02_f3.rom", 0x00000, 0x8000, CRC(f96f82db) SHA1(8062721431762dfcf7cc499a1f050e4cbe0fc793) ) - ROM_LOAD( "up02_e3.rom", 0x10000, 0x8000, CRC(2b007733) SHA1(7b808a134a9aa70aef1cf2a503b7ea786fd05275) ) - ROM_LOAD( "up02_c3.rom", 0x20000, 0x8000, CRC(efa830e1) SHA1(0a41a764a751a6566b9bb58086a417cfb7925d50) ) - ROM_LOAD( "up02_b3.rom", 0x30000, 0x8000, CRC(24559ee1) SHA1(ca2166558a8dffba9042349db2f85f9111bd8d93) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "up01_f10.rom", 0x00000, 0x10000, CRC(2bac250e) SHA1(aaf424fb9663e14c19d4063a402fb3c4c5c5b059) ) - ROM_LOAD( "up01_h10.rom", 0x10000, 0x10000, CRC(5e1ba353) SHA1(1219cd11d5837c6680f6cbbf91cfece6564cacaa) ) - ROM_LOAD( "up01_j10.rom", 0x20000, 0x10000, CRC(9ff91a97) SHA1(064047800f3d7cb6eaf35988e0db0dc4dfa7e10f) ) - ROM_LOAD( "up01_l10.rom", 0x30000, 0x10000, CRC(ae1965ef) SHA1(7da6f14fa46f0443da8502f61e9f7d4aa603a19b) ) - ROM_LOAD( "up01_m10.rom", 0x40000, 0x10000, CRC(df283b67) SHA1(92650d3517efdef1358f5c9b9ee30d48a3bcc45a) ) - ROM_LOAD( "up01_n10.rom", 0x50000, 0x10000, CRC(914f051f) SHA1(743aa05ce1b4a9a49e9515e6c56c721bebd2bd2c) ) - ROM_LOAD( "up01_r10.rom", 0x60000, 0x10000, CRC(c4488472) SHA1(98540ca924cc20e82859b7bb88e521ff3f9f3b37) ) - ROM_LOAD( "up01_s10.rom", 0x70000, 0x10000, CRC(8ec7fe18) SHA1(65697058fe557066921072df691f3aa19f54968c) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "p1", 0x00000, 0x10000, CRC(58f1683f) SHA1(8b713b2806d1a56794c990ed221ce016bb881082) ) - ROM_LOAD( "p2", 0x10000, 0x10000, CRC(da3abda1) SHA1(aeafe8f41c0ea2f93791abce01a53d8e417d1216) ) - ROM_LOAD( "p3", 0x20000, 0x10000, CRC(f3683ae8) SHA1(a2e77995f835eaa211ea7d384382cf6a5a121490) ) - ROM_LOAD( "p4", 0x30000, 0x10000, CRC(437d775a) SHA1(355c227b22ae34f47e2bb27d4b5440ccaedf2eea) ) -ROM_END - -ROM_START( psychosj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "up03_m4.rom", 0x0000, 0x10000, CRC(05dfb409) SHA1(e6c378c86689c7ab9190908c8e4aa2d4563c3774) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "up03_m8.rom", 0x00000, 0x10000, CRC(5f426ddb) SHA1(d4b2215122b23066ba2b231992f0f27057259ded) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "up03_j6.rom", 0x00000, 0x10000, CRC(bbd0a8e3) SHA1(ea8ca9de8f6042cf14ebfc83bc956751358f9521) ) - - ROM_REGION( 0x1400, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x00000, 0x00400, CRC(27b8ca8c) SHA1(a2dbc22ca10c2c2c874bf766fe64981f9be75aba) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x00400, 0x00400, CRC(40e78c9e) SHA1(779c84e5a40365d36088a018d9d1a3524f53844a) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x00800, 0x00400, CRC(d845d5ac) SHA1(e1e0954c44264456a02aebe5e3b0bba6031b837b) ) /* blue */ - ROM_LOAD( "mb7122e.8j", 0x0c00, 0x400, CRC(c20b197b) SHA1(504cb28d652029fe87a5411d6239e78d93c83e91) ) /* ? */ - ROM_LOAD( "mb7122e.8k", 0x1000, 0x400, CRC(5d0c617f) SHA1(845e52173c33500227cabe1e21b34919d2856215) ) /* ? */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up02_a3.rom", 0x0000, 0x8000, CRC(11a71919) SHA1(ffb8c54ad5162ea5040508ccb9244b7cd087c047) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "up01_f1.rom", 0x00000, 0x10000, CRC(167e5765) SHA1(5deb66255278e1891c344e0e9665c6f0fda59391) ) - ROM_LOAD( "up01_d1.rom", 0x10000, 0x10000, CRC(8b0fe8d0) SHA1(30b24878e0e333a635dae475b6527b03b9e0302c) ) - ROM_LOAD( "up01_c1.rom", 0x20000, 0x10000, CRC(f4361c50) SHA1(59d0915c4c4d07e26d205ffee95d7628f8eefb6d) ) - ROM_LOAD( "up01_a1.rom", 0x30000, 0x10000, CRC(e4b0b95e) SHA1(8e35138f9d1fc6c1d787cf09ec17a900710db375) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "up02_f3.rom", 0x00000, 0x8000, CRC(f96f82db) SHA1(8062721431762dfcf7cc499a1f050e4cbe0fc793) ) - ROM_LOAD( "up02_e3.rom", 0x10000, 0x8000, CRC(2b007733) SHA1(7b808a134a9aa70aef1cf2a503b7ea786fd05275) ) - ROM_LOAD( "up02_c3.rom", 0x20000, 0x8000, CRC(efa830e1) SHA1(0a41a764a751a6566b9bb58086a417cfb7925d50) ) - ROM_LOAD( "up02_b3.rom", 0x30000, 0x8000, CRC(24559ee1) SHA1(ca2166558a8dffba9042349db2f85f9111bd8d93) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "up01_f10.rom", 0x00000, 0x10000, CRC(2bac250e) SHA1(aaf424fb9663e14c19d4063a402fb3c4c5c5b059) ) - ROM_LOAD( "up01_h10.rom", 0x10000, 0x10000, CRC(5e1ba353) SHA1(1219cd11d5837c6680f6cbbf91cfece6564cacaa) ) - ROM_LOAD( "up01_j10.rom", 0x20000, 0x10000, CRC(9ff91a97) SHA1(064047800f3d7cb6eaf35988e0db0dc4dfa7e10f) ) - ROM_LOAD( "up01_l10.rom", 0x30000, 0x10000, CRC(ae1965ef) SHA1(7da6f14fa46f0443da8502f61e9f7d4aa603a19b) ) - ROM_LOAD( "up01_m10.rom", 0x40000, 0x10000, CRC(df283b67) SHA1(92650d3517efdef1358f5c9b9ee30d48a3bcc45a) ) - ROM_LOAD( "up01_n10.rom", 0x50000, 0x10000, CRC(914f051f) SHA1(743aa05ce1b4a9a49e9515e6c56c721bebd2bd2c) ) - ROM_LOAD( "up01_r10.rom", 0x60000, 0x10000, CRC(c4488472) SHA1(98540ca924cc20e82859b7bb88e521ff3f9f3b37) ) - ROM_LOAD( "up01_s10.rom", 0x70000, 0x10000, CRC(8ec7fe18) SHA1(65697058fe557066921072df691f3aa19f54968c) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "up03_b5.rom", 0x00000, 0x10000, CRC(0f8e8276) SHA1(8894ccccaf67ae3cfea926725c114f8e5607e4b2) ) - ROM_LOAD( "up03_c5.rom", 0x10000, 0x10000, CRC(34e41dfb) SHA1(cdc4cb47a31c4f6eee8bc804389ee62af5173c15) ) - ROM_LOAD( "up03_d5.rom", 0x20000, 0x10000, CRC(aa583c5e) SHA1(8433517d789c6b30938bfef366b44a0412dd5e7e) ) - ROM_LOAD( "up03_f5.rom", 0x30000, 0x10000, CRC(7e8bce7a) SHA1(dd482045332719c76e598110d7285997b337352a) ) -ROM_END - -/***********************************************************************/ - -ROM_START( chopper ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "kk_01.rom", 0x0000, 0x10000, CRC(8fa2f839) SHA1(13cfdbeb433aa3e1dc7e7927c00690e02ed08274) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "kk_04.rom", 0x00000, 0x10000, CRC(004f7d9a) SHA1(4d1c830f69dbf2f1523f9ad7da9b3275fd6b5dfb) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "kk_03.rom", 0x00000, 0x10000, CRC(dbaafb87) SHA1(e7d7f68250bda217230560481ba51da335fc05d7) ) /* YM3526 */ - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x0000, 0x0400, CRC(7f07a45c) SHA1(f751d01d9c25609195b19643395290dab8b8bc5c) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x0400, 0x0400, CRC(15359fc3) SHA1(4ced674fb18b80ebe5fd6459e0fb9542461dbc74) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x0800, 0x0400, CRC(79b50f7d) SHA1(41579e498046570a6a74309310b5341fcde9c7de) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "kk_05.rom", 0x0000, 0x8000, CRC(defc0987) SHA1(ea8eca852aadce90857eb8e65d78631409faac01) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "kk_10.rom", 0x00000, 0x10000, CRC(5cf4d22b) SHA1(b66864740898478becb188d7dd34d61187926e4d) ) - ROM_LOAD( "kk_11.rom", 0x10000, 0x10000, CRC(9af4cad0) SHA1(dd8c1a76e6a90661c5442c0a096cb9ffe496d12a) ) - ROM_LOAD( "kk_12.rom", 0x20000, 0x10000, CRC(02fec778) SHA1(477a3e22f913cc7783d6cbfce86f98fea9eaf3ec) ) - ROM_LOAD( "kk_13.rom", 0x30000, 0x10000, CRC(2756817d) SHA1(acde21454ddf843425deff3357c9e3a7e7a2baec) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "kk_09.rom", 0x00000, 0x08000, CRC(653c4342) SHA1(aacb3a7772dcea4c88f0010b3654f4159cfb6a8b) ) - ROM_LOAD( "kk_08.rom", 0x10000, 0x08000, CRC(2da45894) SHA1(09f1ac544a119c9d3a9eeb0606f35585d35c2d1d) ) - ROM_LOAD( "kk_07.rom", 0x20000, 0x08000, CRC(a0ebebdf) SHA1(83d8a9ba7b7ffd42e50afb017e4d0d40fe3e2739) ) - ROM_LOAD( "kk_06.rom", 0x30000, 0x08000, CRC(284fad9e) SHA1(7bb572d7d5983a514e8381954ac89a720b86e9ba) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "kk_18.rom", 0x00000, 0x10000, CRC(6abbff36) SHA1(8dde3163e454876a4b666b25c81c09b0740143b5) ) - ROM_LOAD( "kk_19.rom", 0x10000, 0x10000, CRC(5283b4d3) SHA1(980f74d3f468203cf9c1a5f3bc256139975035f3) ) - ROM_LOAD( "kk_20.rom", 0x20000, 0x10000, CRC(6403ddf2) SHA1(54a044d9a1ba89fec3bea0e771f75fcc532e7aad) ) - ROM_LOAD( "kk_21.rom", 0x30000, 0x10000, CRC(9f411940) SHA1(73b0bd360a76ab183f8c7b41f78e930e49e2600c) ) - ROM_LOAD( "kk_14.rom", 0x40000, 0x10000, CRC(9bad9e25) SHA1(0eb1e23dc7084172dd19927a1b084101d10b5137) ) - ROM_LOAD( "kk_15.rom", 0x50000, 0x10000, CRC(89faf590) SHA1(876fc6dac48fef396670522470c41fc9d9b6a0b2) ) - ROM_LOAD( "kk_16.rom", 0x60000, 0x10000, CRC(efb1fb6c) SHA1(12edd64e29472f3c6822f957b23547c64dab65d2) ) - ROM_LOAD( "kk_17.rom", 0x70000, 0x10000, CRC(6b7fb0a5) SHA1(805ee6f439d9e921e1ece27438ba9c00b870e305) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "kk_02.rom", 0x00000, 0x10000, CRC(06169ae0) SHA1(2690ce7cb28cf5c6d37886ce5fbe444067c08403) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r6b.2c", 0x0000, 0x0104, CRC(311e5ae6) SHA1(8a3799e1611ac4086dda2755c5ad44c0dc16ff5b) ) -ROM_END - -ROM_START( choppera ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "1a.rom", 0x0000, 0x10000, CRC(dc325860) SHA1(89391897e6f31d9c1d3b7f27618f63fe8018d42a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "4a.rom", 0x00000, 0x10000, CRC(56d10ba3) SHA1(345a80239fd425c7fe1dfec9385c99a307511e00) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "kk_03.rom", 0x00000, 0x10000, CRC(dbaafb87) SHA1(e7d7f68250bda217230560481ba51da335fc05d7) ) /* YM3526 */ - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x0000, 0x0400, CRC(7f07a45c) SHA1(f751d01d9c25609195b19643395290dab8b8bc5c) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x0400, 0x0400, CRC(15359fc3) SHA1(4ced674fb18b80ebe5fd6459e0fb9542461dbc74) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x0800, 0x0400, CRC(79b50f7d) SHA1(41579e498046570a6a74309310b5341fcde9c7de) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "kk_05.rom", 0x0000, 0x8000, CRC(defc0987) SHA1(ea8eca852aadce90857eb8e65d78631409faac01) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "kk_10.rom", 0x00000, 0x10000, CRC(5cf4d22b) SHA1(b66864740898478becb188d7dd34d61187926e4d) ) - ROM_LOAD( "11a.rom", 0x10000, 0x10000, CRC(881ac259) SHA1(6cce41878c9d9712996d4987a9a578f1301b8feb) ) - ROM_LOAD( "12a.rom", 0x20000, 0x10000, CRC(de96b331) SHA1(725cfe739f7ed0f37eb620d9566bfda1369f4d50) ) - ROM_LOAD( "kk_13.rom", 0x30000, 0x10000, CRC(2756817d) SHA1(acde21454ddf843425deff3357c9e3a7e7a2baec) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "9a.rom", 0x00000, 0x08000, CRC(106c2dcc) SHA1(919497757664c92e9955db50f5096ac81cec33c3) ) - ROM_LOAD( "8a.rom", 0x10000, 0x08000, CRC(d4f88f62) SHA1(ac89ffa83e0e207acce39711b93d94affc61c1cc) ) - ROM_LOAD( "7a.rom", 0x20000, 0x08000, CRC(28ae39f9) SHA1(7d51489b824b76710f6d4434a77f5f2833fcc532) ) - ROM_LOAD( "6a.rom", 0x30000, 0x08000, CRC(16774a36) SHA1(d1207513f790a30eef8802e63cfeeb10321d6ff7) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "kk_18.rom", 0x00000, 0x10000, CRC(6abbff36) SHA1(8dde3163e454876a4b666b25c81c09b0740143b5) ) - ROM_LOAD( "kk_19.rom", 0x10000, 0x10000, CRC(5283b4d3) SHA1(980f74d3f468203cf9c1a5f3bc256139975035f3) ) - ROM_LOAD( "kk_20.rom", 0x20000, 0x10000, CRC(6403ddf2) SHA1(54a044d9a1ba89fec3bea0e771f75fcc532e7aad) ) - ROM_LOAD( "kk_21.rom", 0x30000, 0x10000, CRC(9f411940) SHA1(73b0bd360a76ab183f8c7b41f78e930e49e2600c) ) - ROM_LOAD( "kk_14.rom", 0x40000, 0x10000, CRC(9bad9e25) SHA1(0eb1e23dc7084172dd19927a1b084101d10b5137) ) - ROM_LOAD( "kk_15.rom", 0x50000, 0x10000, CRC(89faf590) SHA1(876fc6dac48fef396670522470c41fc9d9b6a0b2) ) - ROM_LOAD( "kk_16.rom", 0x60000, 0x10000, CRC(efb1fb6c) SHA1(12edd64e29472f3c6822f957b23547c64dab65d2) ) - ROM_LOAD( "kk_17.rom", 0x70000, 0x10000, CRC(6b7fb0a5) SHA1(805ee6f439d9e921e1ece27438ba9c00b870e305) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "kk_02.rom", 0x00000, 0x10000, CRC(06169ae0) SHA1(2690ce7cb28cf5c6d37886ce5fbe444067c08403) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r6b.2c", 0x0000, 0x0104, CRC(311e5ae6) SHA1(8a3799e1611ac4086dda2755c5ad44c0dc16ff5b) ) -ROM_END - -ROM_START( chopperb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "chpri-1.bin", 0x0000, 0x10000, CRC(a4e6e978) SHA1(dafc2a3da3725344023a09f5bdaedd0e8e1dbbe2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "chpri-4.bin", 0x00000, 0x10000, CRC(56d10ba3) SHA1(345a80239fd425c7fe1dfec9385c99a307511e00) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "kk_03.rom", 0x00000, 0x10000, CRC(dbaafb87) SHA1(e7d7f68250bda217230560481ba51da335fc05d7) ) /* YM3526 */ - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x0000, 0x0400, CRC(7f07a45c) SHA1(f751d01d9c25609195b19643395290dab8b8bc5c) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x0400, 0x0400, CRC(15359fc3) SHA1(4ced674fb18b80ebe5fd6459e0fb9542461dbc74) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x0800, 0x0400, CRC(79b50f7d) SHA1(41579e498046570a6a74309310b5341fcde9c7de) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "kk_05.rom", 0x0000, 0x8000, CRC(defc0987) SHA1(ea8eca852aadce90857eb8e65d78631409faac01) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "kk_10.rom", 0x00000, 0x10000, CRC(5cf4d22b) SHA1(b66864740898478becb188d7dd34d61187926e4d) ) - ROM_LOAD( "chpri-11.bin", 0x10000, 0x10000, CRC(881ac259) SHA1(6cce41878c9d9712996d4987a9a578f1301b8feb) ) - ROM_LOAD( "chpri-12.bin", 0x20000, 0x10000, CRC(de96b331) SHA1(725cfe739f7ed0f37eb620d9566bfda1369f4d50) ) - ROM_LOAD( "kk_13.rom", 0x30000, 0x10000, CRC(2756817d) SHA1(acde21454ddf843425deff3357c9e3a7e7a2baec) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "chpri-9.bin", 0x00000, 0x08000, CRC(106c2dcc) SHA1(919497757664c92e9955db50f5096ac81cec33c3) ) - ROM_LOAD( "chpri-8.bin", 0x10000, 0x08000, CRC(d4f88f62) SHA1(ac89ffa83e0e207acce39711b93d94affc61c1cc) ) - ROM_LOAD( "chpri-7.bin", 0x20000, 0x08000, CRC(28ae39f9) SHA1(7d51489b824b76710f6d4434a77f5f2833fcc532) ) - ROM_LOAD( "chpri-6.bin", 0x30000, 0x08000, CRC(16774a36) SHA1(d1207513f790a30eef8802e63cfeeb10321d6ff7) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "kk_18.rom", 0x00000, 0x10000, CRC(6abbff36) SHA1(8dde3163e454876a4b666b25c81c09b0740143b5) ) - ROM_LOAD( "kk_19.rom", 0x10000, 0x10000, CRC(5283b4d3) SHA1(980f74d3f468203cf9c1a5f3bc256139975035f3) ) - ROM_LOAD( "kk_20.rom", 0x20000, 0x10000, CRC(6403ddf2) SHA1(54a044d9a1ba89fec3bea0e771f75fcc532e7aad) ) - ROM_LOAD( "kk_21.rom", 0x30000, 0x10000, CRC(9f411940) SHA1(73b0bd360a76ab183f8c7b41f78e930e49e2600c) ) - ROM_LOAD( "kk_14.rom", 0x40000, 0x10000, CRC(9bad9e25) SHA1(0eb1e23dc7084172dd19927a1b084101d10b5137) ) - ROM_LOAD( "kk_15.rom", 0x50000, 0x10000, CRC(89faf590) SHA1(876fc6dac48fef396670522470c41fc9d9b6a0b2) ) - ROM_LOAD( "kk_16.rom", 0x60000, 0x10000, CRC(efb1fb6c) SHA1(12edd64e29472f3c6822f957b23547c64dab65d2) ) - ROM_LOAD( "kk_17.rom", 0x70000, 0x10000, CRC(6b7fb0a5) SHA1(805ee6f439d9e921e1ece27438ba9c00b870e305) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "kk_02.rom", 0x00000, 0x10000, CRC(06169ae0) SHA1(2690ce7cb28cf5c6d37886ce5fbe444067c08403) ) - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r6b.2c", 0x0000, 0x0104, CRC(311e5ae6) SHA1(8a3799e1611ac4086dda2755c5ad44c0dc16ff5b) ) -ROM_END - -ROM_START( legofair ) /* ChopperI (Japan) */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "up03_m4.rom", 0x0000, 0x10000, CRC(79a485c0) SHA1(bbf51e7321656b6a04223909d4958ceb4892193a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "up03_m8.rom", 0x00000, 0x10000, CRC(96d3a4d9) SHA1(e23a06e6117eca14b24de2d6fd48f5aa2a26d3bb) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "kk_03.rom", 0x00000, 0x10000, CRC(dbaafb87) SHA1(e7d7f68250bda217230560481ba51da335fc05d7) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_k1.rom", 0x0000, 0x0400, CRC(7f07a45c) SHA1(f751d01d9c25609195b19643395290dab8b8bc5c) ) /* red */ - ROM_LOAD( "up03_l1.rom", 0x0400, 0x0400, CRC(15359fc3) SHA1(4ced674fb18b80ebe5fd6459e0fb9542461dbc74) ) /* green */ - ROM_LOAD( "up03_k2.rom", 0x0800, 0x0400, CRC(79b50f7d) SHA1(41579e498046570a6a74309310b5341fcde9c7de) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "kk_05.rom", 0x0000, 0x8000, CRC(defc0987) SHA1(ea8eca852aadce90857eb8e65d78631409faac01) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "kk_10.rom", 0x00000, 0x10000, CRC(5cf4d22b) SHA1(b66864740898478becb188d7dd34d61187926e4d) ) - ROM_LOAD( "kk_11.rom", 0x10000, 0x10000, CRC(9af4cad0) SHA1(dd8c1a76e6a90661c5442c0a096cb9ffe496d12a) ) - ROM_LOAD( "kk_12.rom", 0x20000, 0x10000, CRC(02fec778) SHA1(477a3e22f913cc7783d6cbfce86f98fea9eaf3ec) ) - ROM_LOAD( "kk_13.rom", 0x30000, 0x10000, CRC(2756817d) SHA1(acde21454ddf843425deff3357c9e3a7e7a2baec) ) - - ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - ROM_LOAD( "kk_09.rom", 0x00000, 0x08000, CRC(653c4342) SHA1(aacb3a7772dcea4c88f0010b3654f4159cfb6a8b) ) - ROM_LOAD( "kk_08.rom", 0x10000, 0x08000, CRC(2da45894) SHA1(09f1ac544a119c9d3a9eeb0606f35585d35c2d1d) ) - ROM_LOAD( "kk_07.rom", 0x20000, 0x08000, CRC(a0ebebdf) SHA1(83d8a9ba7b7ffd42e50afb017e4d0d40fe3e2739) ) - ROM_LOAD( "kk_06.rom", 0x30000, 0x08000, CRC(284fad9e) SHA1(7bb572d7d5983a514e8381954ac89a720b86e9ba) ) - - ROM_REGION( 0x80000, REGION_GFX4, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "kk_18.rom", 0x00000, 0x10000, CRC(6abbff36) SHA1(8dde3163e454876a4b666b25c81c09b0740143b5) ) - ROM_LOAD( "kk_19.rom", 0x10000, 0x10000, CRC(5283b4d3) SHA1(980f74d3f468203cf9c1a5f3bc256139975035f3) ) - ROM_LOAD( "kk_20.rom", 0x20000, 0x10000, CRC(6403ddf2) SHA1(54a044d9a1ba89fec3bea0e771f75fcc532e7aad) ) - ROM_LOAD( "kk_21.rom", 0x30000, 0x10000, CRC(9f411940) SHA1(73b0bd360a76ab183f8c7b41f78e930e49e2600c) ) - ROM_LOAD( "kk_14.rom", 0x40000, 0x10000, CRC(9bad9e25) SHA1(0eb1e23dc7084172dd19927a1b084101d10b5137) ) - ROM_LOAD( "kk_15.rom", 0x50000, 0x10000, CRC(89faf590) SHA1(876fc6dac48fef396670522470c41fc9d9b6a0b2) ) - ROM_LOAD( "kk_16.rom", 0x60000, 0x10000, CRC(efb1fb6c) SHA1(12edd64e29472f3c6822f957b23547c64dab65d2) ) - ROM_LOAD( "kk_17.rom", 0x70000, 0x10000, CRC(6b7fb0a5) SHA1(805ee6f439d9e921e1ece27438ba9c00b870e305) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "kk_02.rom", 0x00000, 0x10000, CRC(06169ae0) SHA1(2690ce7cb28cf5c6d37886ce5fbe444067c08403) ) -ROM_END - -/***********************************************************************/ - -ROM_START( ftsoccer ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "ft-003.bin", 0x00000, 0x10000, CRC(649d4448) SHA1(876a4cf3ce3211ee19390deb17a661ec52b419d2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "ft-001.bin", 0x00000, 0x10000, CRC(2f68e38b) SHA1(0cbf2de24a5a5ae2134eb6f1e1404691554192bc) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "ft-002.bin", 0x00000, 0x10000, CRC(9ee54ea1) SHA1(4e3bbacaa0e247eb8c4043f394e763817a4f9a28) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "prom2.bin", 0x000, 0x400, CRC(bf4ac706) SHA1(b5015563d88dbd93ba2838f01b189812958f142b) ) /* red */ - ROM_LOAD( "prom1.bin", 0x400, 0x400, CRC(1bac8010) SHA1(16854b1b6f3d1be48a247796d65aeb90547099b6) ) /* green */ - ROM_LOAD( "prom3.bin", 0x800, 0x400, CRC(dbeddb14) SHA1(6053b587a3c8272aefe728a7198a15aa7fb9b2fa) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "ft-013.bin", 0x0000, 0x08000, CRC(0de7b7ad) SHA1(4fa54b2acf83f03d09d16fc054ad6623cafe0f4a) ) - - ROM_REGION( 0x50000, REGION_GFX2, ROMREGION_DISPOSE ) /* background tiles */ - ROM_LOAD( "ft-014.bin", 0x00000, 0x10000, CRC(38c38b40) SHA1(c4580add0946720441f5ef751d0d4a944cd92ad5) ) - ROM_LOAD( "ft-015.bin", 0x10000, 0x10000, CRC(a614834f) SHA1(d73930e4bd780915e1b0d7f3fe7cbeaad19c233f) ) - -// ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16 sprites */ - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "ft-005.bin", 0x10000, 0x10000, CRC(def2f1d8) SHA1(b72e4dec3306d8afe461ac812b2de67ee85f9dd9) ) - ROM_LOAD( "ft-006.bin", 0x00000, 0x10000, CRC(588d14b3) SHA1(c0489b061503677a38e4c5800ea8be17aabf4039) ) - - ROM_LOAD( "ft-007.bin", 0x30000, 0x10000, CRC(d584964b) SHA1(7c806fc40dcce700ed0c268abbd2704938b65ff2) ) - ROM_LOAD( "ft-008.bin", 0x20000, 0x10000, CRC(11156a7d) SHA1(f298a54fa4c118bf8e7c7cccb6c95a4b97daf4d4) ) - - ROM_LOAD( "ft-009.bin", 0x50000, 0x10000, CRC(d8112aa6) SHA1(575dd6dff2f00901603768f2c121eb0ea5afa444) ) - ROM_LOAD( "ft-010.bin", 0x40000, 0x10000, CRC(e42864d8) SHA1(fe18f58e5507676780fe181e2fb0e0e9d72e276e) ) - - ROM_LOAD( "ft-011.bin", 0x70000, 0x10000, CRC(022f3e96) SHA1(57aa423b8f62015566bc3021300ac7e9682ed500) ) - ROM_LOAD( "ft-012.bin", 0x60000, 0x10000, CRC(b2442c30) SHA1(ba9331810659726389494ddc7c94c5a02ba80747) ) - - ROM_REGION( 0x10000, REGION_SOUND1, 0 ) - ROM_LOAD( "ft-004.bin", 0x00000, 0x10000, CRC(435c3716) SHA1(42053741f60594e7ae8516b3ba600f5badb3620f) ) -ROM_END - -/***********************************************************************/ - -ROM_START( tdfever ) /* USA set */ - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "td2-ver3.6c", 0x0000, 0x10000, CRC(92138fe4) SHA1(17a2bc12f516cdbea3cc5e283b0a8a2d101dfa47) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "td1-ver3.2c", 0x00000, 0x10000, CRC(798711f5) SHA1(a67d6b71c08df00592cf1a18806ed1c2ee757066) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "td3-ver3.3j", 0x00000, 0x10000, CRC(5d13e0b1) SHA1(a8d8d7cbc4f5be1c0bf10bceff54104d421758c2) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_e8.rom", 0x000, 0x00400, CRC(67bdf8a0) SHA1(7a0dc9bf56d607516638d38761aa99211d536d9f) ) - ROM_LOAD( "up03_d8.rom", 0x400, 0x00400, CRC(9c4a9198) SHA1(2d9be23c6a622eba5d3fb0d9912bad03658e563b) ) - ROM_LOAD( "up03_e9.rom", 0x800, 0x00400, CRC(c93c18e8) SHA1(9d4ca20c44bd35aabccab5f94cb45057361ccd99) ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "td14ver3.4n", 0x0000, 0x8000, CRC(e841bf1a) SHA1(ba93163b00e973eb5da9ddc64becce2bbe9ede05) ) - - ROM_REGION( 0x50000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "up01_d8.rom", 0x00000, 0x10000, CRC(ad6e0927) SHA1(dd1c346fbf908af7b3e314f416937f48ade6af4c) ) - ROM_LOAD( "up01_e8.rom", 0x10000, 0x10000, CRC(181db036) SHA1(2c5ed172950fce1467517490a8ab3b7ac6594121) ) - ROM_LOAD( "up01_f8.rom", 0x20000, 0x10000, CRC(c5decca3) SHA1(12aff8adc0ad2bf903122ad065d182692d32fb7a) ) - ROM_LOAD( "td18ver2.8gh", 0x30000, 0x10000, CRC(3924da37) SHA1(6100eb438fb090f74639739ddcc2844f5daa7180) ) - ROM_LOAD( "up01_j8.rom", 0x40000, 0x10000, CRC(bc17ea7f) SHA1(5c3fe43c7fc204d33b5b2a71f22da00e2ba7fbdf) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "up01_k2.rom", 0x00000, 0x10000, CRC(72a5590d) SHA1(d8bd664702af9c66a2bda756d8417d1b69b0cab8) ) - ROM_LOAD( "up01_j2.rom", 0x10000, 0x10000, CRC(9b6d4053) SHA1(3d91358b08ed648f48369147441d77a7528d3356) ) - ROM_LOAD( "up01_n2.rom", 0x20000, 0x10000, CRC(a8979657) SHA1(ec2f61a24b04437a9abd0a306923ae2aeee3eba9) ) - ROM_LOAD( "up01_l2.rom", 0x30000, 0x10000, CRC(28f49182) SHA1(3ee06d7d1bac8719d2b05613a7ffc1bc82ddcdae) ) - ROM_LOAD( "up01_r2.rom", 0x40000, 0x10000, CRC(a0d53fbd) SHA1(a49f29b3f07ec833651aa0e37b0e87f3f72e0e3a) ) - ROM_LOAD( "up01_p2.rom", 0x50000, 0x10000, CRC(c8c71c7b) SHA1(7988e9e86c2dfebb0f1b5a8c42c97993a530e780) ) - ROM_LOAD( "up01_t2.rom", 0x60000, 0x10000, CRC(88e2e819) SHA1(6d5529792dbd2ba63a1bc470e9d3ea63b876cfd8) ) - ROM_LOAD( "up01_s2.rom", 0x70000, 0x10000, CRC(f6f83d63) SHA1(15780a2c1fc7c8456fe073c372f2f4828125e800) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "up02_p6.rom", 0x00000, 0x10000, CRC(04794557) SHA1(94f476e88b089ad98a133e7356fd271601119fdf) ) - ROM_LOAD( "up02_n6.rom", 0x10000, 0x10000, CRC(155e472e) SHA1(722b4625e6ab796e129daf903386b5b6b1a945cd) ) -ROM_END - -ROM_START( tdfeverj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "up02_c6.rom", 0x0000, 0x10000, CRC(88d88ec4) SHA1(774de920290b5c787b0f3d0076883dda106364be) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "up02_c2.rom", 0x00000, 0x10000, CRC(191e6442) SHA1(6a4d0d7efea734443eef538e99562ce4e2949a84) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "up02_j3.rom", 0x00000, 0x10000, CRC(4e4d71c7) SHA1(93744c7d4822ab1750a50ab895a83f77dfcb4bb3) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_e8.rom", 0x000, 0x00400, CRC(67bdf8a0) SHA1(7a0dc9bf56d607516638d38761aa99211d536d9f) ) /* red */ - ROM_LOAD( "up03_d8.rom", 0x400, 0x00400, CRC(9c4a9198) SHA1(2d9be23c6a622eba5d3fb0d9912bad03658e563b) ) /* green */ - ROM_LOAD( "up03_e9.rom", 0x800, 0x00400, CRC(c93c18e8) SHA1(9d4ca20c44bd35aabccab5f94cb45057361ccd99) ) /* blue */ - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "up01_n4.rom", 0x0000, 0x8000, CRC(af9bced5) SHA1(ec8b9c0649d33e4b0ed4f7d84530016581370278) ) - - ROM_REGION( 0x50000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "up01_d8.rom", 0x00000, 0x10000, CRC(ad6e0927) SHA1(dd1c346fbf908af7b3e314f416937f48ade6af4c) ) - ROM_LOAD( "up01_e8.rom", 0x10000, 0x10000, CRC(181db036) SHA1(2c5ed172950fce1467517490a8ab3b7ac6594121) ) - ROM_LOAD( "up01_f8.rom", 0x20000, 0x10000, CRC(c5decca3) SHA1(12aff8adc0ad2bf903122ad065d182692d32fb7a) ) - ROM_LOAD( "up01_g8.rom", 0x30000, 0x10000, CRC(4512cdfb) SHA1(f9e57804801962e85fdd3412e6e3774e75160535) ) - ROM_LOAD( "up01_j8.rom", 0x40000, 0x10000, CRC(bc17ea7f) SHA1(5c3fe43c7fc204d33b5b2a71f22da00e2ba7fbdf) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "up01_k2.rom", 0x00000, 0x10000, CRC(72a5590d) SHA1(d8bd664702af9c66a2bda756d8417d1b69b0cab8) ) - ROM_LOAD( "up01_j2.rom", 0x10000, 0x10000, CRC(9b6d4053) SHA1(3d91358b08ed648f48369147441d77a7528d3356) ) - ROM_LOAD( "up01_n2.rom", 0x20000, 0x10000, CRC(a8979657) SHA1(ec2f61a24b04437a9abd0a306923ae2aeee3eba9) ) - ROM_LOAD( "up01_l2.rom", 0x30000, 0x10000, CRC(28f49182) SHA1(3ee06d7d1bac8719d2b05613a7ffc1bc82ddcdae) ) - ROM_LOAD( "up01_t2.rom", 0x40000, 0x10000, CRC(88e2e819) SHA1(6d5529792dbd2ba63a1bc470e9d3ea63b876cfd8) ) - ROM_LOAD( "up01_s2.rom", 0x50000, 0x10000, CRC(f6f83d63) SHA1(15780a2c1fc7c8456fe073c372f2f4828125e800) ) - ROM_LOAD( "up01_r2.rom", 0x60000, 0x10000, CRC(a0d53fbd) SHA1(a49f29b3f07ec833651aa0e37b0e87f3f72e0e3a) ) - ROM_LOAD( "up01_p2.rom", 0x70000, 0x10000, CRC(c8c71c7b) SHA1(7988e9e86c2dfebb0f1b5a8c42c97993a530e780) ) - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) - ROM_LOAD( "up02_p6.rom", 0x00000, 0x10000, CRC(04794557) SHA1(94f476e88b089ad98a133e7356fd271601119fdf) ) - ROM_LOAD( "up02_n6.rom", 0x10000, 0x10000, CRC(155e472e) SHA1(722b4625e6ab796e129daf903386b5b6b1a945cd) ) -ROM_END - -ROM_START( tdfever2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for cpuA code */ - ROM_LOAD( "tdmain.6c", 0x0000, 0x10000, CRC(9e3eaed8) SHA1(4a591767b22a46605747740a1e1de9aada2893fe) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for cpuB code */ - ROM_LOAD( "tdsub.1c", 0x00000, 0x10000, CRC(0ec294c0) SHA1(b16656e5fef1c78310f20633d25cda6d6018bf52) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k for sound code */ - ROM_LOAD( "td03.2j", 0x00000, 0x10000, CRC(4092f16c) SHA1(0821a8afc91862e95e742546367724a862fc6c9f) ) - - ROM_REGION( 0x0c00, REGION_PROMS, 0 ) - ROM_LOAD( "up03_e82.rom", 0x000, 0x00400, CRC(1593c302) SHA1(46008b03c76547d57e3c8658f5f00321c2463cd5) ) - ROM_LOAD( "up03_d82.rom", 0x400, 0x00400, CRC(ac9df947) SHA1(214855e1015f7b519e336159c6ea62ab1f576353) ) - ROM_LOAD( "up03_e92.rom", 0x800, 0x00400, CRC(73cdf192) SHA1(63d1aa1b00035bbfe5bebd9bc9992a5d6f5abd10) ) - - ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE ) /* characters */ - ROM_LOAD( "td06.3n", 0x0000, 0x8000, CRC(d6521b0d) SHA1(79aba420b2f039d580892fa34de5d63be1a4f222) ) - - ROM_REGION( 0x60000, REGION_GFX2, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "up01_d8.rom", 0x00000, 0x10000, CRC(ad6e0927) SHA1(dd1c346fbf908af7b3e314f416937f48ade6af4c) ) - ROM_LOAD( "up01_e8.rom", 0x10000, 0x10000, CRC(181db036) SHA1(2c5ed172950fce1467517490a8ab3b7ac6594121) ) - ROM_LOAD( "up01_f8.rom", 0x20000, 0x10000, CRC(c5decca3) SHA1(12aff8adc0ad2bf903122ad065d182692d32fb7a) ) - ROM_LOAD( "td18.8g", 0x30000, 0x10000, CRC(1a5a2200) SHA1(178f3850fd23d888a3e7d14f44cba3426a16bc94) ) - ROM_LOAD( "td19.8j", 0x40000, 0x10000, CRC(f1081329) SHA1(efcc210d50923a8c9125227c741ba4b71cd9f688) ) - ROM_LOAD( "td20.8k", 0x50000, 0x10000, CRC(86cbb2e6) SHA1(77ecd6eefc7bb1933374ecd21a5b46798bdbb94d) ) - - ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE ) /* 32x32 sprites */ - ROM_LOAD( "up01_k2.rom", 0x00000, 0x10000, CRC(72a5590d) SHA1(d8bd664702af9c66a2bda756d8417d1b69b0cab8) ) - ROM_LOAD( "td08.2j", 0x10000, 0x10000, CRC(4845e78b) SHA1(360df759a761f28df93250f3a2e4e9366d627240) ) - ROM_LOAD( "up01_n2.rom", 0x20000, 0x10000, CRC(a8979657) SHA1(ec2f61a24b04437a9abd0a306923ae2aeee3eba9) ) - ROM_LOAD( "td10.2l", 0x30000, 0x10000, CRC(c93b6cd3) SHA1(e528d62e998f5682b497e864818c1b50ba314944) ) - ROM_LOAD( "up01_r2.rom", 0x40000, 0x10000, CRC(a0d53fbd) SHA1(a49f29b3f07ec833651aa0e37b0e87f3f72e0e3a) ) - ROM_LOAD( "td12.2p", 0x50000, 0x10000, CRC(d43abc81) SHA1(8d635dfaa7a99863f133cf599b99f2a6afcfc8a6) ) - ROM_LOAD( "up01_t2.rom", 0x60000, 0x10000, CRC(88e2e819) SHA1(6d5529792dbd2ba63a1bc470e9d3ea63b876cfd8) ) - ROM_LOAD( "td14.2s", 0x70000, 0x10000, CRC(c9bb9138) SHA1(955101e343e643320b29a29116bea556a25d696f) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) - ROM_LOAD( "td05.6p", 0x00000, 0x10000, CRC(e332e41f) SHA1(3fe41e35c5abbd8f8b9cff91bf85815275c62776) ) - ROM_LOAD( "td04.6n", 0x10000, 0x10000, CRC(98af6d2d) SHA1(0f41f53d4143ec54b8e84cd480e3ab34c3e7ea20) ) - ROM_LOAD( "td22.6l", 0x20000, 0x10000, CRC(34b4bce9) SHA1(bf9b000995dcbb27450c0ad1a8ef1bcc4feee080) ) - ROM_LOAD( "td21.6k", 0x30000, 0x10000, CRC(f5a96d8e) SHA1(33bb2c41426449179fc27ee88b2c8db27b4ed1da) ) -ROM_END - -/***********************************************************************/ - -#define SNK_JOY1_PORT \ - PORT_START_TAG("IN1") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0xf0, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) \ - -#define SNK_JOY2_PORT \ - PORT_START_TAG("IN2") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0xf0, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - -#define SNK_JOY1_NODIAL_PORT \ - PORT_START_TAG("IN1") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) \ - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - -#define SNK_JOY2_NODIAL_PORT \ - PORT_START_TAG("IN2") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) \ - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define SNK_BUTTON_PORT \ - PORT_START_TAG("IN3") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define SNK_COINAGE \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) - -INPUT_PORTS_START( ikari ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_PORT - - SNK_JOY2_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Allow killing each other" ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) - PORT_DIPSETTING( 0x02, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x04, "Freeze" ) - PORT_DIPSETTING( 0x00, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "60k 120k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( ikarijp ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW,IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tilt? */ - - SNK_JOY1_PORT - - SNK_JOY2_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Allow killing each other" ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) - PORT_DIPSETTING( 0x02, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x04, "Freeze" ) - PORT_DIPSETTING( 0x00, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "60k 120k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( victroad ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related ??? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_PORT - - SNK_JOY2_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Kill friend & walk everywhere (Cheat)") - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) - PORT_DIPSETTING( 0x02, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "60k 120k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40 ,0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( dogosokj ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related ??? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_NODIAL_PORT - - SNK_JOY2_NODIAL_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Kill friend & walk everywhere (Cheat)") - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, "P1 & P2 Fire Buttons" ) - PORT_DIPSETTING( 0x02, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "60k 120k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40 ,0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( gwar ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related ??? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* causes reset */ - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_PORT - - SNK_JOY2_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & 2nd only" ) - PORT_DIPSETTING( 0x00, "1st & every 2nd" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Freeze" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30k 60k" ) - PORT_DIPSETTING( 0x20, "40k 80k" ) - PORT_DIPSETTING( 0x10, "50k 100k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40 ,0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( athena ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Freeze" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "80k 160k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Listed as "Unused" in the manual */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Energy" ) - PORT_DIPSETTING( 0x80, "12" ) - PORT_DIPSETTING( 0x00, "14" ) -INPUT_PORTS_END - -INPUT_PORTS_START( tnk3 ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0xf0, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL - PORT_BIT( 0xf0, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Walk everywhere (Cheat)") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coinage ) ) - /* 0x08 and 0x10: 1 Coin/1 Credit */ - PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0xc0, "20k 60k" ) - PORT_DIPSETTING( 0x80, "40k 90k" ) - PORT_DIPSETTING( 0x40, "50k 120k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x01, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x18, 0x10, "Game Mode" ) - PORT_DIPSETTING( 0x18, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x10, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x08, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) // unused in manual - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( bermudat ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tile? */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_PORT - - SNK_JOY2_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x04, "1st & every 2nd" ) - PORT_DIPSETTING( 0x00, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "60k 120k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, "Game Style" ) - PORT_DIPSETTING( 0xc0, "Normal without continue" ) - PORT_DIPSETTING( 0x80, "Normal with continue" ) - PORT_DIPSETTING( 0x40, "Time attack 3 minutes" ) - PORT_DIPSETTING( 0x00, "Time attack 5 minutes" ) -INPUT_PORTS_END - -#define BERMWW_COMMON\ - PORT_START_TAG("IN0")\ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */\ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )\ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* tile? */\ - PORT_SERVICE_NO_TOGGLE(0x08, IP_ACTIVE_LOW)\ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )\ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )\ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )\ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )\ - SNK_JOY1_PORT\ - SNK_JOY2_PORT\ - SNK_BUTTON_PORT\ - PORT_START_TAG("DSW1")\ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) )\ - PORT_DIPSETTING( 0x01, DEF_STR( No ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )\ - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )\ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) )\ - PORT_DIPSETTING( 0x00, DEF_STR( On ) )\ - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" )\ - PORT_DIPSETTING( 0x04, "1st & every 2nd" )\ - PORT_DIPSETTING( 0x00, "1st & 2nd only" )\ - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) )\ - PORT_DIPSETTING( 0x08, "3" )\ - PORT_DIPSETTING( 0x00, "5" )\ - SNK_COINAGE - - -INPUT_PORTS_START( bermudaa ) - BERMWW_COMMON - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "25k 50k" ) - PORT_DIPSETTING( 0x20, "35k 70k" ) - PORT_DIPSETTING( 0x10, "50K 100k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/* Same as Bermudaa, but has different Bonus Life */ -INPUT_PORTS_START( worldwar ) - BERMWW_COMMON - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x08, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "80k 160k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( psychos ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* reset */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x00, "1st & every 2nd" ) - PORT_DIPSETTING( 0x04, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Freeze" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50K 100K" ) - PORT_DIPSETTING( 0x20, "60K 120K" ) - PORT_DIPSETTING( 0x10, "100K 200K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( legofair ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* Reset */ - PORT_SERVICE_NO_TOGGLE(0x08, 0x08 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x00, "1st & every 2nd" ) - PORT_DIPSETTING( 0x04, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" ) - PORT_DIPSETTING( 0x08, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "75k 150k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( choppera ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) /* Reset */ - PORT_SERVICE_NO_TOGGLE(0x08, 0x08) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - SNK_JOY1_NODIAL_PORT - - SNK_JOY2_NODIAL_PORT - - SNK_BUTTON_PORT - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Bonus Occurrence" ) - PORT_DIPSETTING( 0x00, "1st & every 2nd" ) - PORT_DIPSETTING( 0x04, "1st & 2nd only" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" ) - PORT_DIPSETTING( 0x08, "Demo Sounds Off" ) - PORT_DIPSETTING( 0x0c, "Demo Sounds On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Infinite Lives (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50k 100k" ) - PORT_DIPSETTING( 0x20, "75k 150k" ) - PORT_DIPSETTING( 0x10, "100k 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( fitegolf ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Language ) ) /* Version */ - PORT_DIPSETTING( 0x01, DEF_STR( English ) ) /* Over Sea */ - PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) ) /* Domestic */ - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_6C ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, "Shot Time" ) - PORT_DIPSETTING( 0x00, "Short (10 sec)" ) - PORT_DIPSETTING( 0x01, "Long (12 sec)" ) - PORT_DIPNAME( 0x02, 0x02, "Bonus Holes" ) - PORT_DIPSETTING( 0x02, "5 (Par 1,Birdie 2,Eagle 3)" ) - PORT_DIPSETTING( 0x00, "3 (Par 0,Birdie 1,Eagle 2)" ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" ) - PORT_DIPSETTING( 0x08, "Endless Game (Cheat)") - PORT_DIPSETTING( 0x0c, "Demo Sound On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Demo Sound Off" ) - PORT_DIPNAME( 0x30, 0x30, "Play Holes" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Test Mode" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( countryc ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound related? */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x7f, 0x40, IPT_TRACKBALL_X ) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) PORT_REVERSE - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x7f, 0x40, IPT_TRACKBALL_Y ) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Language ) ) /* NOT showed in Test Mode/Manual */ - PORT_DIPSETTING( 0x01, DEF_STR( English ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Japanese ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) /* Trackball */ - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) /* 1 System */ - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) /* 2 Systems */ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, "Shot Time" ) - PORT_DIPSETTING( 0x00, "Short (10 sec)" ) - PORT_DIPSETTING( 0x01, "Long (12 sec)" ) - PORT_DIPNAME( 0x02, 0x02, "Bonus Holes" ) - PORT_DIPSETTING( 0x02, "5 (Par 1,Birdie 2,Eagle 3)" ) - PORT_DIPSETTING( 0x00, "3 (Par 0,Birdie 1,Eagle 2)" ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" ) - PORT_DIPSETTING( 0x08, "Endless Game (Cheat)") - PORT_DIPSETTING( 0x0c, "Demo Sound On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Demo Sound Off" ) - PORT_DIPNAME( 0x30, 0x30, "Play Holes" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Test Mode" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( ftsoccer ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Game A") - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Start Game B") - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Start Game E") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("IN5") /* Only used in the "test mode" in this version */ - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") /* Only used in the "test mode" in this version */ - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") /* Only used in the "test mode" in this version */ - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") /* Only used in the "test mode" in this version */ - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x03, "Upright (With VS)" ) - PORT_DIPSETTING( 0x02, "Upright (Without VS)" ) - PORT_DIPSETTING( 0x00, "Cocktail (2 Players)" ) - PORT_DIPSETTING( 0x01, "Cocktail (4 Players)" ) - PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Version ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Europe ) ) - PORT_DIPSETTING( 0x00, DEF_STR( USA ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Japan ) ) -/* PORT_DIPSETTING( 0x0c, DEF_STR( Europe ) ) */ - SNK_COINAGE - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Game Mode" ) - PORT_DIPSETTING( 0x08, "Demo Sound Off" ) - PORT_DIPSETTING( 0x0c, "Demo Sound On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Win Match Against CPU (Cheat)") - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Game_Time ) ) /* See notes */ - PORT_DIPSETTING( 0x10, "1:00" ) - PORT_DIPSETTING( 0x60, "1:10" ) - PORT_DIPSETTING( 0x50, "1:20" ) - PORT_DIPSETTING( 0x40, "1:30" ) - PORT_DIPSETTING( 0x30, "1:40" ) - PORT_DIPSETTING( 0x20, "1:50" ) - PORT_DIPSETTING( 0x70, "2:00" ) - PORT_DIPSETTING( 0x00, "2:10" ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START_TAG("IN11") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Start Game C") - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START4 ) PORT_NAME("Start Game D") -INPUT_PORTS_END - -INPUT_PORTS_START( tdfever ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Game A") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Start Game B") - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Start Game E") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("IN5") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, "2 Player Upright" ) - PORT_DIPSETTING( 0x00, "4 Player Cocktail" ) - PORT_DIPNAME( 0x0c, 0x00, "1st Down Bonus Time" ) - PORT_DIPSETTING( 0x00, "Every 1st Down" ) - PORT_DIPSETTING( 0x04, "Every 4 1st Downs" ) - PORT_DIPSETTING( 0x08, "Every 6 1st Downs" ) - PORT_DIPSETTING( 0x0c, "Every 8 1st Downs" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Manual shows these two as blank */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sound Off" ) - PORT_DIPSETTING( 0x08, "Demo Sound On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Never Finish (Cheat)") - PORT_DIPNAME( 0x70, 0x70, "Play Time" ) - PORT_DIPSETTING( 0x70, "1:00" ) - PORT_DIPSETTING( 0x60, "1:10" ) - PORT_DIPSETTING( 0x50, "1:20" ) - PORT_DIPSETTING( 0x40, "1:30" ) - PORT_DIPSETTING( 0x30, "1:40" ) - PORT_DIPSETTING( 0x20, "1:50" ) - PORT_DIPSETTING( 0x10, "2:00" ) - PORT_DIPSETTING( 0x00, "2:10" ) -/* -Actual Play Times listed in manual based on Players & cabinet type: - - Upright/Cocktail Cocktail Only - Dip Switch A B C D E <-- Start button "MODE" - SW6 SW7 SW8 1PvsCPU 2PvsCPU 1Pvs2P 2Pvs1P 2Pvs2P - OFF OFF OFF 1:00 1:10 2:00 2:10 3:00 - ON OFF OFF 1:10 1:20 2:10 2:20 3:10 - OFF ON OFF 1:20 1:30 2:20 2:30 3:20 - ON ON OFF 1:30 1:40 2:30 2:40 3:30 - OFF OFF ON 1:40 1:50 2:40 2:50 3:40 - ON OFF ON 1:50 2:00 2:50 3:00 3:50 - OFF ON ON 2:00 2:10 3:00 3:10 4:00 - ON ON ON 2:10 2:20 3:10 3:20 4:10 -*/ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN11") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Start Game C") - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START4 ) PORT_NAME("Start Game D") -INPUT_PORTS_END - -INPUT_PORTS_START( tdfeverj ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* sound CPU status */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start Game A") - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Start Game B") - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Start Game E") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - - PORT_START_TAG("IN5") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN6") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN7") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN8") - PORT_BIT( 0x7f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x01, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, "2 Player Upright" ) - PORT_DIPSETTING( 0x02, "4 Player Cocktail" ) - PORT_DIPNAME( 0x0c, 0x00, "1st Down Bonus Time" ) - PORT_DIPSETTING( 0x00, "Every 1st Down" ) - PORT_DIPSETTING( 0x04, "Every 4 1st Downs" ) - PORT_DIPSETTING( 0x08, "Every 6 1st Downs" ) - PORT_DIPSETTING( 0x0c, "Every 8 1st Downs" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Manual shows these two as blank */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Game Mode" ) - PORT_DIPSETTING( 0x0c, "Demo Sound Off" ) - PORT_DIPSETTING( 0x08, "Demo Sound On" ) - PORT_DIPSETTING( 0x00, "Freeze" ) - PORT_DIPSETTING( 0x04, "Never Finish (Cheat)") - PORT_DIPNAME( 0x70, 0x70, "Play Time" ) - PORT_DIPSETTING( 0x70, "1:00" ) - PORT_DIPSETTING( 0x60, "1:10" ) - PORT_DIPSETTING( 0x50, "1:20" ) - PORT_DIPSETTING( 0x40, "1:30" ) - PORT_DIPSETTING( 0x30, "1:40" ) - PORT_DIPSETTING( 0x20, "1:50" ) - PORT_DIPSETTING( 0x10, "2:00" ) - PORT_DIPSETTING( 0x00, "2:10" ) -/* -Actual Play Times listed in manual based on Players & cabinet type: - - Upright/Cocktail Cocktail Only - Dip Switch A B C D E <-- Start button "MODE" - SW6 SW7 SW8 1PvsCPU 2PvsCPU 1Pvs2P 2Pvs1P 2Pvs2P - OFF OFF OFF 1:00 1:10 2:00 2:10 3:00 - ON OFF OFF 1:10 1:20 2:10 2:20 3:10 - OFF ON OFF 1:20 1:30 2:20 2:30 3:20 - ON ON OFF 1:30 1:40 2:30 2:40 3:30 - OFF OFF ON 1:40 1:50 2:40 2:50 3:40 - ON OFF ON 1:50 2:00 2:50 3:00 3:50 - OFF ON ON 2:00 2:10 3:00 3:10 4:00 - ON ON ON 2:10 2:20 3:10 3:20 4:10 -*/ - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN11") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Start Game C") - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START4 ) PORT_NAME("Start Game D") -INPUT_PORTS_END - -/***********************************************************************/ - -/* input port configuration */ - -const SNK_INPUT_PORT_TYPE athena_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_INP1, SNK_UNUSED, - /* c200 */ SNK_INP2, SNK_UNUSED, - /* c300 */ SNK_UNUSED, SNK_UNUSED, - /* c400 */ SNK_UNUSED, SNK_UNUSED, - /* c500 */ SNK_INP3, SNK_UNUSED, - /* c600 */ SNK_INP4, - /* c080 */ SNK_UNUSED -}; - -const SNK_INPUT_PORT_TYPE ikari_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_ROT12_PLAYER1, SNK_UNUSED, - /* c200 */ SNK_ROT12_PLAYER2, SNK_UNUSED, - /* c300 */ SNK_INP3, SNK_UNUSED, - /* c400 */ SNK_UNUSED, SNK_UNUSED, - /* c500 */ SNK_INP4, SNK_UNUSED, - /* c600 */ SNK_INP5, - /* c080 */ SNK_UNUSED -}; - -const SNK_INPUT_PORT_TYPE ikarijpb_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_ROT8_PLAYER1, SNK_UNUSED, - /* c200 */ SNK_ROT8_PLAYER2, SNK_UNUSED, - /* c300 */ SNK_INP3, SNK_UNUSED, - /* c400 */ SNK_UNUSED, SNK_UNUSED, - /* c500 */ SNK_INP4, SNK_UNUSED, - /* c600 */ SNK_INP5, - /* c080 */ SNK_UNUSED -}; - -const SNK_INPUT_PORT_TYPE choppera_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_INP1, SNK_UNUSED, - /* c200 */ SNK_INP2, SNK_UNUSED, - /* c300 */ SNK_INP3, SNK_UNUSED, - /* c400 */ SNK_UNUSED, SNK_UNUSED, - /* c500 */ SNK_INP4, SNK_UNUSED, - /* c600 */ SNK_INP5, - /* c080 */ SNK_UNUSED -}; - -const SNK_INPUT_PORT_TYPE ftsoccer_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_INP1, SNK_INP2, SNK_INP3, SNK_INP4, /* joy1..joy4 */ - /* c300 */ SNK_INP5, SNK_INP6, SNK_INP7, SNK_INP8, /* aim1..aim4 */ - /* c500 */ SNK_UNUSED, - /* c580 */ SNK_INP9, /* DSW1 */ - /* c600 */ SNK_INP10, /* DSW2 */ - /* c080 */ SNK_INP11 /* Start games type C & D */ -}; - -const SNK_INPUT_PORT_TYPE tdfever_io[SNK_MAX_INPUT_PORTS] = { - /* c000 */ SNK_INP0, - /* c100 */ SNK_INP1, SNK_INP2, SNK_INP3, SNK_INP4, /* joy1..joy4 */ - /* c300 */ SNK_INP5, SNK_INP6, SNK_INP7, SNK_INP8, /* aim1..aim4 */ - /* c500 */ SNK_UNUSED, - /* c580 */ SNK_INP9, /* DSW1 */ - /* c600 */ SNK_INP10, /* DSW2 */ - /* c080 */ SNK_INP11 /* Start games type C & D */ -}; - -static DRIVER_INIT( ikari ){ - UINT8 *RAM = memory_region(REGION_CPU1); - /* Hack ROM test */ - RAM[0x11a6] = 0x00; - RAM[0x11a7] = 0x00; - RAM[0x11a8] = 0x00; - - /* Hack Incorrect port value */ - RAM[0x1003] = 0xc3; - RAM[0x1004] = 0x02; - RAM[0x1005] = 0x10; - - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 1; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( ikarijp ){ - UINT8 *RAM = memory_region(REGION_CPU1); - RAM[0x190b] = 0xc9; /* faster test */ - - snk_sound_busy_bit = 0x20; - snk_io = ikari_io; - hard_flags = 1; - videoram = snk_rambase + 0x000; - snk_gamegroup = 1; -} - -static DRIVER_INIT( ikarijpb ){ - UINT8 *RAM = memory_region(REGION_CPU1); - RAM[0x190b] = 0xc9; /* faster test */ - - snk_sound_busy_bit = 0x20; - snk_io = ikarijpb_io; - hard_flags = 1; - videoram = snk_rambase + 0x000; - snk_gamegroup = 1; -} - -static DRIVER_INIT( victroad ){ - UINT8 *RAM = memory_region(REGION_CPU1); - /* Hack ROM test */ - RAM[0x17bd] = 0x00; - RAM[0x17be] = 0x00; - RAM[0x17bf] = 0x00; - - /* Hack Incorrect port value */ - RAM[0x161a] = 0xc3; - RAM[0x161b] = 0x19; - RAM[0x161c] = 0x16; - - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 1; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( dogosoke ){ - UINT8 *RAM = memory_region(REGION_CPU1); - /* Hack ROM test */ - RAM[0x179f] = 0x00; - RAM[0x17a0] = 0x00; - RAM[0x17a1] = 0x00; - - /* Hack Incorrect port value */ - RAM[0x15fc] = 0xc3; - RAM[0x15fd] = 0xfb; - RAM[0x15fe] = 0x15; - - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 1; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( gwar ){ - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 2; -} - -static DRIVER_INIT( gwara ){ - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 4; -} - -static DRIVER_INIT( chopper ){ - snk_sound_busy_bit = 0x01; - snk_io = athena_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 0; -} - -static DRIVER_INIT( choppera ){ - snk_sound_busy_bit = 0x01; - snk_io = choppera_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 2; -} - -static DRIVER_INIT( bermudat ){ - UINT8 *RAM = memory_region(REGION_CPU1); - - // Patch "Turbo Error" - RAM[0x127e] = 0xc9; - RAM[0x118d] = 0x00; - RAM[0x118e] = 0x00; - - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 0; -} - -static DRIVER_INIT( worldwar ){ - snk_sound_busy_bit = 0x01; - snk_io = ikari_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 0; -} - -static DRIVER_INIT( tdfever ){ - snk_sound_busy_bit = 0x08; - snk_io = tdfever_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = (!strcmp(Machine->gamedrv->name,"tdfeverj")) ? 5 : 3; - snk_irq_delay = 1000; -} - -static DRIVER_INIT( tdfever2 ){ - snk_sound_busy_bit = 0x08; - snk_io = tdfever_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = (!strcmp(Machine->gamedrv->name,"tdfeverj")) ? 5 : 3; - snk_irq_delay = 1000; -} - -static DRIVER_INIT( ftsoccer ){ - snk_sound_busy_bit = 0x08; - snk_io = ftsoccer_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 7; -} - -static DRIVER_INIT( tnk3 ){ - snk_sound_busy_bit = 0x20; - snk_io = ikari_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( athena ){ - snk_sound_busy_bit = 0x01; - snk_io = athena_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( fitegolf ){ - snk_sound_busy_bit = 0x01; - snk_io = athena_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 1; -} - -static DRIVER_INIT( psychos ){ - snk_sound_busy_bit = 0x01; - snk_io = athena_io; - hard_flags = 0; - videoram = snk_rambase + 0x800; - snk_gamegroup = 0; -} - -/* rom parent machine inp init */ -GAME( 1985, tnk3, 0, tnk3, tnk3, tnk3, ROT270, "SNK", "T.N.K. III (US)", GAME_NO_COCKTAIL ) -GAME( 1985, tnk3j, tnk3, tnk3, tnk3, tnk3, ROT270, "SNK", "T.A.N.K. (Japan)", GAME_NO_COCKTAIL ) -GAME( 1986, athena, 0, athena, athena, athena, ROT0, "SNK", "Athena", GAME_NO_COCKTAIL ) -GAME( 1988, fitegolf, 0, athena, fitegolf, fitegolf, ROT0, "SNK", "Fighting Golf (World?)", GAME_NO_COCKTAIL ) -GAME( 1988, fitegol2, fitegolf, athena, fitegolf, fitegolf, ROT0, "SNK", "Fighting Golf (US)", GAME_NO_COCKTAIL ) -GAME( 1988, countryc, fitegolf, athena, countryc, fitegolf, ROT0, "SNK", "Country Club", GAME_NO_COCKTAIL ) -GAME( 1986, ikari, 0, ikari, ikari, ikari, ROT270, "SNK", "Ikari Warriors (US)", GAME_NO_COCKTAIL ) -GAME( 1986, ikarijp, ikari, ikari, ikarijp, ikarijp, ROT270, "SNK", "Ikari (Japan)", GAME_NO_COCKTAIL ) -GAME( 1986, ikarijpb, ikari, ikari, ikarijp, ikarijpb, ROT270, "bootleg", "Ikari (Japan bootleg)", GAME_NO_COCKTAIL ) -GAME( 1986, victroad, 0, victroad, victroad, victroad, ROT270, "SNK", "Victory Road", GAME_NO_COCKTAIL ) -GAME( 1986, dogosoke, victroad, victroad, victroad, dogosoke, ROT270, "SNK", "Dogou Souken", GAME_NO_COCKTAIL ) -GAME( 1986, dogosokj, victroad, victroad, dogosokj, dogosoke, ROT270, "bootleg", "Dogou Souken (Joystick bootleg)", GAME_NO_COCKTAIL ) -GAME( 1987, gwar, 0, gwar, gwar, gwar, ROT270, "SNK", "Guerrilla War (US)", GAME_NO_COCKTAIL ) -GAME( 1987, gwarj, gwar, gwar, gwar, gwar, ROT270, "SNK", "Guevara (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, gwara, gwar, gwar, gwar, gwara, ROT270, "SNK", "Guerrilla War (Version 1)", GAME_NO_COCKTAIL ) -GAME( 1987, gwarb, gwar, gwar, gwar, gwar, ROT270, "bootleg", "Guerrilla War (bootleg)", GAME_NO_COCKTAIL ) -GAME( 1987, bermudat, 0, bermudat, bermudat, bermudat, ROT270, "SNK", "Bermuda Triangle (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, bermudao, bermudat, bermudat, bermudat, bermudat, ROT270, "SNK", "Bermuda Triangle (Japan old version)", GAME_NO_COCKTAIL ) -GAME( 1987, bermudaa, bermudat, bermudat, bermudaa, worldwar, ROT270, "SNK", "Bermuda Triangle (US older version)", GAME_NO_COCKTAIL ) -GAME( 1987, worldwar, bermudat, bermudat, worldwar, worldwar, ROT270, "SNK", "World Wars (World)", GAME_NO_COCKTAIL ) -GAME( 1987, psychos, 0, psychos, psychos, psychos, ROT0, "SNK", "Psycho Soldier (US)", GAME_NO_COCKTAIL ) -GAME( 1987, psychosj, psychos, psychos, psychos, psychos, ROT0, "SNK", "Psycho Soldier (Japan)", GAME_NO_COCKTAIL ) -GAME( 1988, chopper, 0, chopper1, legofair, chopper, ROT270, "SNK", "Chopper I (US set 1)", GAME_NO_COCKTAIL ) -GAME( 1988, choppera, chopper, chopper1, choppera, choppera, ROT270, "SNK", "Chopper I (US set 2)", GAME_NO_COCKTAIL ) -GAME( 1988, chopperb, chopper, chopper1, legofair, chopper, ROT270, "SNK", "Chopper I (US set 3)", GAME_NO_COCKTAIL ) -GAME( 1988, legofair, chopper, chopper1, legofair, chopper, ROT270, "SNK", "Koukuu Kihei Monogatari - The Legend of Air Cavalry (Japan)", GAME_NO_COCKTAIL ) -GAME( 1987, tdfever, 0, tdfever, tdfever, tdfever, ROT270, "SNK", "TouchDown Fever", GAME_NO_COCKTAIL ) -GAME( 1987, tdfeverj, tdfever, tdfever, tdfeverj, tdfever, ROT270, "SNK", "TouchDown Fever (Japan)", GAME_NO_COCKTAIL ) -GAME( 1988, tdfever2, tdfever, tdfever2, tdfever, tdfever2, ROT270, "SNK", "TouchDown Fever 2", GAME_NO_COCKTAIL ) /* upgrade kit for Touchdown Fever */ -GAME( 1988, ftsoccer, 0, ftsoccer, ftsoccer, ftsoccer, ROT0, "SNK", "Fighting Soccer", GAME_NO_COCKTAIL ) diff --git a/src/drivers/speedspn.c b/src/drivers/speedspn.c deleted file mode 100644 index 5b837a49f..000000000 --- a/src/drivers/speedspn.c +++ /dev/null @@ -1,379 +0,0 @@ -/*** DRIVER INFO & NOTES ****************************************************** - Speed Spin (c)1994 TCH - driver by David Haywood & Farfetch'd - -Notes: -- To enter "easy" service mode, keep some input pressed during boot, - e.g. BUTTON 1. - -TODO: -- A couple of garbage sprites on the player selection screen -- Unknown Port Writes: - cpu #0 (PC=00000D88): unmapped port byte write to 00000001 = 02 - cpu #0 (PC=00006974): unmapped port byte write to 00000010 = 10 - cpu #0 (PC=00006902): unmapped port byte write to 00000010 = 20 - etc. -- Writes to ROM regions - cpu #0 (PC=00001119): byte write to ROM 0000C8B9 = 01 - cpu #0 (PC=00001119): byte write to ROM 0000C899 = 01 - etc. - -******************************************************************************/ - -#include "driver.h" -#include "sound/okim6295.h" - -/*** README INFO ************************************************************** - -ROMSET: speedspn - -Speed Spin -1994, TCH - -PCB No: PR02/2 -CPU : Z80 (6Mhz) -SOUND : Z80 (6Mhz), OKI M6295 -RAM : 62256 (x1), 6264 (x1), 6116 (x6) -XTAL : 12.000MHz (near Z80's), 10.000MHz (near PLCC84) -DIP : 8 position (x2) -OTHER : TPC1020AFN-084C (PLCC84, Gfx controller) - -ROMs Type Used C'sum -------------------------------------------- -TCH-SS1.u78 27C040 Main Program C246h -TCH-SS2.u96 27C512 Sound Program 5D04h -TCH-SS3.u95 27C040 Oki Samples 7340h -TCH-SS4.u70 27C010 \ ECD8h -TCH-SS5.u69 " | 9E7Bh -TCH-SS6.u60 " | E844h -TCH-SS7.u59 " | Gfx 3DDah -TCH-SS8.u39 " | A9B5h -TCH-SS9.u34 " / AB2Bh - - -******************************************************************************/ - -/* in vidhrdw */ -extern UINT8 *speedspn_attram; - -WRITE8_HANDLER( speedspn_vidram_w ); -WRITE8_HANDLER( speedspn_attram_w ); -READ8_HANDLER( speedspn_vidram_r ); -VIDEO_START(speedspn); -VIDEO_UPDATE(speedspn); -WRITE8_HANDLER(speedspn_banked_vidram_change); -WRITE8_HANDLER(speedspn_global_display_w); - -static READ8_HANDLER(speedspn_irq_ack_r) -{ - // I think this simply acknowledges the IRQ #0, it's read within the handler and the - // value is discarded - return 0; -} - -static WRITE8_HANDLER(speedspn_banked_rom_change) -{ - /* is this weird banking some form of protection? */ - - unsigned char *rom = memory_region(REGION_CPU1); - int addr; - - switch (data) - { - case 0: addr = 0x28000; break; - case 1: addr = 0x14000; break; - case 2: addr = 0x1c000; break; - case 3: addr = 0x54000; break; - case 4: addr = 0x48000; break; - case 5: addr = 0x3c000; break; - case 6: addr = 0x18000; break; - case 7: addr = 0x4c000; break; - case 8: addr = 0x50000; break; - default: - popmessage ("Unmapped Bank Write %02x", data); - addr = 0; - break; - } - - memory_set_bankptr(1,&rom[addr + 0x8000]); -} - -/*** SOUND RELATED ***********************************************************/ - -static WRITE8_HANDLER(speedspn_sound_w) -{ - soundlatch_w(1,data); - cpunum_set_input_line(1,0,HOLD_LINE); -} - -static WRITE8_HANDLER( oki_banking_w ) -{ - OKIM6295_set_bank_base(0, 0x40000 * (data & 3)); -} - -/*** MEMORY MAPS *************************************************************/ - -/* main cpu */ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x8800, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9fff) AM_READ(speedspn_vidram_r) /* banked? */ - AM_RANGE(0xa000, 0xa7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa800, 0xafff) AM_READ(MRA8_RAM) - AM_RANGE(0xb000, 0xbfff) AM_READ(MRA8_RAM) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_BANK1) /* banked ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE(&paletteram) /* RAM COLOUR */ - AM_RANGE(0x8800, 0x8fff) AM_WRITE(speedspn_attram_w) AM_BASE(&speedspn_attram) - AM_RANGE(0x9000, 0x9fff) AM_WRITE(speedspn_vidram_w) /* RAM FIX / RAM OBJECTS (selected by bit 0 of port 17) */ - AM_RANGE(0xa000, 0xa7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa800, 0xafff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xb000, 0xbfff) AM_WRITE(MWA8_RAM) /* RAM PROGRAM */ - AM_RANGE(0xc000, 0xffff) AM_WRITE(MWA8_ROM) /* banked ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x07, 0x07) AM_WRITE(speedspn_global_display_w) - AM_RANGE(0x12, 0x12) AM_WRITE(speedspn_banked_rom_change) - AM_RANGE(0x13, 0x13) AM_WRITE(speedspn_sound_w) - AM_RANGE(0x17, 0x17) AM_WRITE(speedspn_banked_vidram_change) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x10, 0x10) AM_READ(input_port_0_r) // inputs - AM_RANGE(0x11, 0x11) AM_READ(input_port_1_r) // inputs - AM_RANGE(0x12, 0x12) AM_READ(input_port_2_r) // inputs - AM_RANGE(0x13, 0x13) AM_READ(input_port_3_r) - AM_RANGE(0x14, 0x14) AM_READ(input_port_4_r) // inputs - AM_RANGE(0x16, 0x16) AM_READ(speedspn_irq_ack_r) // @@@ could be watchdog, value is discarded -ADDRESS_MAP_END - - -/* sound cpu */ - -static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9800, 0x9800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_banking_w) - AM_RANGE(0x9800, 0x9800) AM_WRITE(OKIM6295_data_0_w) -ADDRESS_MAP_END - -/*** INPUT PORT **************************************************************/ - -INPUT_PORTS_START( speedspn ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) - - PORT_START /* Player 1 Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START /* Player 2 Inputs */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START /* Dips */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00, "5 Coins/2 Credits" ) - PORT_DIPSETTING( 0x0a, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x05, "3 Coins/5 Credits" ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00, "5 Coins/2 Credits" ) - PORT_DIPSETTING( 0xa0, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x50, "3 Coins/5 Credits" ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - - PORT_START /* Dips */ - PORT_DIPNAME( 0x01, 0x01, "World Cup" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Backhand" ) - PORT_DIPSETTING( 0x02, "Automatic" ) - PORT_DIPSETTING( 0x00, "Manual" ) - PORT_DIPNAME( 0x0c, 0x0c, "Points to Win" ) - PORT_DIPSETTING( 0x0c, "11 Points and 1 Advantage" ) - PORT_DIPSETTING( 0x08, "11 Points and 2 Advantage" ) - PORT_DIPSETTING( 0x04, "21 Points and 1 Advantage" ) - PORT_DIPSETTING( 0x00, "21 Points and 2 Advantage" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) -INPUT_PORTS_END - -/*** GFX DECODE **************************************************************/ - -static const gfx_layout speedspn_charlayout = -{ - 8,8, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(2,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(1,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 7*8, 6*8, 5*8, 4*8, 3*8, 2*8, 1*8, 0*8 }, - 8*8 -}; - -static const gfx_layout speedspn_spritelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { 4, 0, RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0 }, - { 16*16+11, 16*16+10, 16*16+9, 16*16+8, 16*16+3, 16*16+2, 16*16+1, 16*16+0, - 11, 10, 9, 8, 3, 2, 1, 0 }, - { 8*16+7*16, 8*16+6*16, 8*16+5*16, 8*16+4*16, 8*16+3*16, 8*16+2*16, 8*16+1*16, 8*16+0*16, - 7*16, 6*16, 5*16, 4*16, 3*16, 2*16, 1*16, 0*16 }, - 32*16 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &speedspn_charlayout, 0x000, 0x40 }, - { REGION_GFX2, 0, &speedspn_spritelayout, 0x000, 0x40 }, - { -1 } /* end of array */ -}; - -/*** MACHINE DRIVER **********************************************************/ - - -static MACHINE_DRIVER_START( speedspn ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main",Z80,6000000) /* 6 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport, writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80,6000000) /* 6 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem2,writemem2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(0x400) - - MDRV_VIDEO_START(speedspn) - MDRV_VIDEO_UPDATE(speedspn) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(OKIM6295, 1122000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*** ROM LOADING *************************************************************/ - -ROM_START( speedspn ) - ROM_REGION( 0x088000, REGION_CPU1, 0 ) /* CPU1 code */ - /* most of this is probably actually banked */ - ROM_LOAD( "tch-ss1.u78", 0x00000, 0x008000, CRC(41b6b45b) SHA1(d969119959db4cc3be50f188bfa41e4b4896eaca) ) /* fixed code */ - ROM_CONTINUE( 0x10000, 0x078000 ) /* banked data */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* CPU2 code */ - ROM_LOAD( "tch-ss2.u96", 0x00000, 0x10000, CRC(4611fd0c) SHA1(b49ad6a8be6ccfef0b2ed187fb3b008fb7eeb2b5) ) // FIRST AND SECOND HALF IDENTICAL - - ROM_REGION( 0x080000, REGION_USER1, 0 ) /* Samples */ - ROM_LOAD( "tch-ss3.u95", 0x00000, 0x080000, CRC(1c9deb5e) SHA1(89f01a8e8bdb0eee47e9195b312d2e65d41d3548) ) - - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is what gets switched */ - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x020000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x040000, 0x020000) - ROM_COPY( REGION_USER1, 0x020000, 0x060000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x080000, 0x020000) - ROM_COPY( REGION_USER1, 0x040000, 0x0a0000, 0x020000) - ROM_COPY( REGION_USER1, 0x000000, 0x0c0000, 0x020000) - ROM_COPY( REGION_USER1, 0x060000, 0x0e0000, 0x020000) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* GFX */ - ROM_LOAD( "tch-ss4.u70", 0x00000, 0x020000, CRC(41517859) SHA1(3c5102e41c5a70e02ed88ea43ca63edf13f4c1b9) ) - ROM_LOAD( "tch-ss5.u69", 0x20000, 0x020000, CRC(832b2f34) SHA1(7a3060869a9698c9ed4187b239a70e273de64e3c) ) - ROM_LOAD( "tch-ss6.u60", 0x40000, 0x020000, CRC(f1fd7289) SHA1(8950ef58efdffc45d68152257ca36aedf5ddf677) ) - ROM_LOAD( "tch-ss7.u59", 0x60000, 0x020000, CRC(c4958543) SHA1(c959b440801707c30a8968a1f44abe5442d03eff) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* GFX */ - ROM_LOAD( "tch-ss8.u39", 0x00000, 0x020000, CRC(2f27b16d) SHA1(7cc017fa08573f8a9d94d017abb987f8288bcd29) ) - ROM_LOAD( "tch-ss9.u34", 0x20000, 0x020000, CRC(c372f8ec) SHA1(514bef0859c0adfd9cdd22864230fc83e9b1962d) ) -ROM_END - - - -/*** GAME DRIVERS ************************************************************/ - -GAME( 1994, speedspn, 0, speedspn, speedspn, 0, ROT180, "TCH", "Speed Spin", GAME_IMPERFECT_GRAPHICS ) diff --git a/src/drivers/spiders.c b/src/drivers/spiders.c deleted file mode 100644 index e4860b039..000000000 --- a/src/drivers/spiders.c +++ /dev/null @@ -1,404 +0,0 @@ -/*************************************************************************** - -Spiders driver by K.Wilkins May 1998 - - -Memory map information ----------------------- - -Main CPU - Read Range - -$0000-$1bff Video Memory (bit0) -$4000-$5bff Video Memory (bit1) -$8000-$9bff Video Memory (bit2) -$c000-$c001 6845 CRT Controller (crtc6845) -$c020-$c027 NVRAM -$c044-$c047 MC6821 PIA 1 (Control input port - all input) -$c048-$c04b MC6821 PIA 2 (Sprite data port - see machine/spiders.c) -$c050-$c053 MC6821 PIA 3 (Sound control - all output) -$c060 Dip Switch 1 -$c080 Dip Switch 2 -$c0a0 Dip Switch 3 -$c100-ffff ROM SPACE - -Main CPU - Write Range - -$0000-$1bff Video Memory (bit0) -$4000-$5bff Video Memory (bit1) -$8000-$9bff Video Memory (bit2) -$c000-$c001 6845 CRT Controller (crtc6845) -$c044-$c047 MC6821 PIA 1 -$c048-$c04b MC6821 PIA 2 (Video port) -$c050-$c053 MC6821 PIA 3 - - -DIP SWITCH 1 ------------- - - 1 2 3 4 5 6 7 8 COIN/CREDIT - ON ON ON FREE PLAY - ON ON OFF 1/2 - ON OFF ON 1/3 - OFF ON ON 2/1 - ON OFF OFF 4/5 - OFF OFF OFF 1/1 - -DIP SWITCH 2 ------------- - - 1 2 3 4 5 6 7 8 - ON ON MODE A A' - ON OFF A B' - OFF ON B A' - OFF OFF B B' - ON ON 14 # OF SPIDERS WHICH LAND TO - ON OFF 20 COMPLETE SPIDER BELT - OFF ON 26 - OFF OFF 16 - ON 4 # 0F SPARE GUNS - OFF 3 - ON ON NONE SCORE FOR BONUS GUN - ON OFF 20K - OFF ON 25K - OFF OFF 15K - ON GIANT SPIDER AFTER FIRST SCREEN - OFF GIANT SPIDER AFTER EVERY SCREEN - - PATTERN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - MODE A 27 36 45 54 63 72 81 98 45 54 63 72 81 98 PCS - MODE B 20 27 34 41 48 55 62 69 34 41 48 55 62 69 PCS - MODE A' 1 1 1 3.5 3.5 4 4.5 5 1 3.5 3.5 4 4.5 5 SECONDS - MODE B' .7 .7 .7 2 3 3.2 3.4 4 .7 2 3 2.3 3.4 4 SECONDS - - MODE A & B FOR THE NUMBER OF GROWABLE COCOONS - MODE A' & B' FOR THE FREQUENCY OF SPIDERS APPEARANCE - - -DIP SWITCH 3 ------------- - - 1 2 3 4 5 6 7 8 - X VIDEO FLIP - ON UPRIGHT - OFF TABLE - - SWITCHES 3,4,5 FOR ADJUSTING PICTURE VERTICALLY - SWITCHES 6,7,8 FOR ADJUSTING PICTURE HORIZONTALLY - - -Unpopulated Switches --------------------- - - PS1 (Display Crosshatch) - Connected to PIA1 CB1 via pull-up - PS2 (Coin input, bypass counter) - Connected to PIA1 PA1 via pull-up and invertor - PS3 (Display coin counter) - Connected to PIA1 PA2 via pull-up and invertor - - -Graphic notes -------------- -Following roms appear to have graphic data - -* Mapped in main CPU space - -* SP1.BIN - Appears to have some sprites in it. -* SP2.BIN - Appears to have some 16x16 sprites. (Includes the word SIGMA) -* SP3.BIN - Appears to have 2-4 sprites 16x16 - spiders -* SP4.BIN - CPU Code 6809 - Main - SP5.BIN - Some 8x8 and 16x16 tiles/sprites - SP6.BIN - Some 8x8 tiles - SP7.BIN - Tiles/Sprites 8x8 - SP8.BIN - Tiles/Sprites 8x8 - SP9A.BIN - Tiles/Sprites 8x8 - SP9B.BIN - Tiles/Sprites 8x8 - SP10A.BIN - Tiles/Sprites 8x8 - SP10B.BIN - CPU Code 6802 - Sound - -Spiders has a fully bitmapped display and all sprite drawing is handled by the CPU -hence no gfxdecode is done on the sprite ROMS, the CPU accesses them via PIA2. - -Screen is arranged in three memory areas with three bits being combined from each -area to produce a 3bit colour send directly to the screen. - -$0000-$1bff, $4000-$5bff, $8000-$9bff Bank 0 -$2000-$3bff, %6000-$7bff, $a000-$bbff Bank 1 - -The game normally runs from bank 0 only, but when lots of screen changes are required -e.g spider or explosion then it implements a double buffered scheme with bank 1. - -The ram bank for screens is continuous from $0000-$bfff but is physically arranged -as 3 banks of 16k (8x16k DRAM!). The CPU stack/variables etc are stored in the unused -spaces between screens. - - -CODE NOTES ----------- - -6809 Data page = $1c00 (DP=1c) - -Known data page contents -$05 - Dip switch 1 copy -$06 - Dip switch 2 copy (inverted) -$07 - Dip switch 3 copy -$18 - Bonus Gun Score -$1d - Spiders to complete belt after dipsw decode - - -$c496 - Wait for vblank ($c04a bit 7 goes high) -$f9cf - Clear screen (Bank0&1) -$c8c6 - RAM test of sorts, called from IRQ handler? -$de2f - Delay loop. -$f9bb - Memory clearance routine -$c761 - Partial DipSW decode -$F987 - Addresses table at $f98d containing four structs: - 3c 0C 04 0D 80 (Inverted screen bank 0) - 34 0C 00 0D 00 (Normal screen bank 0) - 3C 0C 40 0D 80 (Inverted screen bank 1) - 34 0C 44 0D 00 (Inverted screen bank 1) - XX Written to PIA2 Reg 3 - B control - XX XX Written to CRTC addr/data - XX XX Written to CRTC addr/data - These tables are used for frame flipping - - -***************************************************************************/ - -#include "driver.h" -#include "vidhrdw/crtc6845.h" -#include "machine/6821pia.h" -#include "spiders.h" - -UINT8 *spiders_ram; - -PALETTE_INIT( nyny ); - -/* Driver structure definition */ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_RAM) AM_BASE(&spiders_ram) - AM_RANGE(0xc001, 0xc001) AM_READ(crtc6845_register_r) - AM_RANGE(0xc020, 0xc027) AM_READ(MRA8_RAM) - AM_RANGE(0xc044, 0xc047) AM_READ(pia_0_r) - AM_RANGE(0xc048, 0xc04b) AM_READ(pia_1_r) - AM_RANGE(0xc050, 0xc053) AM_READ(pia_2_r) - AM_RANGE(0xc060, 0xc060) AM_READ(input_port_2_r) - AM_RANGE(0xc080, 0xc080) AM_READ(input_port_3_r) - AM_RANGE(0xc0a0, 0xc0a0) AM_READ(input_port_4_r) - AM_RANGE(0xc100, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xc000, 0xc000) AM_WRITE(crtc6845_address_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(crtc6845_register_w) - AM_RANGE(0xc020, 0xc027) AM_WRITE(MWA8_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) - AM_RANGE(0xc044, 0xc047) AM_WRITE(pia_0_w) - AM_RANGE(0xc048, 0xc04b) AM_WRITE(pia_1_w) - AM_RANGE(0xc050, 0xc053) AM_WRITE(pia_2_w) - AM_RANGE(0xc100, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_READ(MRA8_RAM) - AM_RANGE(0x0080, 0x0083) AM_READ(pia_3_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x007f) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0080, 0x0083) AM_WRITE(pia_3_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( spiders ) - /* PIA0 PA0 - PA7 */ - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE2 ) - - /* PIA0 PB0 - PB7 */ - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0xF3, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* IN2, DSW1 */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 4C_5C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_BIT(0xf8, IP_ACTIVE_LOW,IPT_UNUSED) - - PORT_START /* IN3, DSW2 */ - PORT_DIPNAME( 0x03, 0x03, "Play mode" ) - PORT_DIPSETTING( 0x00, "A A'" ) - PORT_DIPSETTING( 0x01, "A B'" ) - PORT_DIPSETTING( 0x02, "B A'" ) - PORT_DIPSETTING( 0x03, "B B'" ) - PORT_DIPNAME( 0x0c, 0x0c, "Spiders to complete belt" ) - PORT_DIPSETTING( 0x00, "14" ) - PORT_DIPSETTING( 0x04, "20" ) - PORT_DIPSETTING( 0x08, "26" ) - PORT_DIPSETTING( 0x0c, "16" ) - PORT_DIPNAME( 0x10, 0x10, "Spare Guns" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPNAME( 0x60, 0x60, "Score for bonus gun" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x20, "20K" ) - PORT_DIPSETTING( 0x40, "25K" ) - PORT_DIPSETTING( 0x60, "15K" ) - PORT_DIPNAME( 0x80, 0x00, "Giant Spiders" ) - PORT_DIPSETTING( 0x00, "First screen" ) - PORT_DIPSETTING( 0x80, "Every screen" ) - - PORT_START /* IN4, DSW3 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x1c, 0x00, "Vertical Adjust" ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x14, "5" ) - PORT_DIPSETTING( 0x18, "6" ) - PORT_DIPSETTING( 0x1c, "7" ) - PORT_DIPNAME( 0xe0, 0x00, "Horizontal Adjust" ) - PORT_DIPSETTING( 0x00, "0" ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x60, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0xa0, "5" ) - PORT_DIPSETTING( 0xc0, "6" ) - PORT_DIPSETTING( 0xe0, "7" ) - - PORT_START /* Connected to PIA1 CA1 input */ - PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_VBLANK ) - - PORT_START /* Connected to PIA0 CB1 input */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("PS1 (Crosshatch)") PORT_CODE(KEYCODE_F1) - -INPUT_PORTS_END - - - -static MACHINE_DRIVER_START( spiders ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 2800000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_PERIODIC_INT(spiders_timed_irq , TIME_IN_HZ(25)) /* Timed Int */ - - MDRV_CPU_ADD(M6802, 3000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_START(spiders) - MDRV_MACHINE_RESET(spiders) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_PALETTE_LENGTH(8) - - MDRV_PALETTE_INIT(nyny) - MDRV_VIDEO_START(spiders) - MDRV_VIDEO_UPDATE(spiders) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(spiders_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -ROM_START( spiders ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sp-ic74", 0xc000, 0x1000, CRC(6a2578f6) SHA1(ddfe4fb2ccc925df7ae97821f8681b32e47630b4) ) - ROM_LOAD( "sp-ic73", 0xd000, 0x1000, CRC(d69b2f21) SHA1(ea2b07d19bd50c3b57da8fd8e13b8ab0e8ca3084) ) - ROM_LOAD( "sp-ic72", 0xe000, 0x1000, CRC(464125da) SHA1(94e9edd52e8bd72bbb5dc91b0aa11955e940799c) ) - ROM_LOAD( "sp-ic71", 0xf000, 0x1000, CRC(a9539b18) SHA1(2d02343a78a4a65e5a1798552cd015f16ad5423a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sp-ic3", 0xf800, 0x0800, CRC(944d761e) SHA1(23b1f9234e0de678e96d1a6876d8d0a341150385) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* 64k graphics block used at runtime */ - ROM_LOAD( "sp-ic33", 0x0000, 0x1000, CRC(b6731baa) SHA1(b551030df417b40f4a8488fc82a8b5809d3d32f6) ) - ROM_LOAD( "sp-ic25", 0x1000, 0x1000, CRC(baec64e7) SHA1(beb45e2e6270607c14cdf964c08fe320ce8236a0) ) - ROM_LOAD( "sp-ic24", 0x2000, 0x1000, CRC(a40a5517) SHA1(3f524c7dbbfe8aad7860d15c38d2702732895681) ) - ROM_LOAD( "sp-ic23", 0x3000, 0x1000, CRC(3ca08053) SHA1(20c5709d9650c426b91aed5318a9ab0a10009f17) ) - ROM_LOAD( "sp-ic22", 0x4000, 0x1000, CRC(07ea073c) SHA1(2e57831092730db5fbdb97c2d78d8842868906f4) ) - ROM_LOAD( "sp-ic21", 0x5000, 0x1000, CRC(41b344b4) SHA1(c0eac1e332da1eada062059ae742b666051da76c) ) - ROM_LOAD( "sp-ic20", 0x6000, 0x1000, CRC(4d37da5a) SHA1(37567d19596506385e9dcc7a7c0cf65120189ae0) ) -ROM_END - -ROM_START( spiders2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sp-ic74", 0xc000, 0x1000, CRC(6a2578f6) SHA1(ddfe4fb2ccc925df7ae97821f8681b32e47630b4) ) - ROM_LOAD( "sp2.bin", 0xd000, 0x1000, CRC(cf71d12b) SHA1(369e91f637e8cd898354ddee04e24d4894968f79) ) - ROM_LOAD( "sp-ic72", 0xe000, 0x1000, CRC(464125da) SHA1(94e9edd52e8bd72bbb5dc91b0aa11955e940799c) ) - ROM_LOAD( "sp4.bin", 0xf000, 0x1000, CRC(f3d126bb) SHA1(ecc9156a7da661fa7543d7656aa7da77274e0842) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sp-ic3", 0xf800, 0x0800, CRC(944d761e) SHA1(23b1f9234e0de678e96d1a6876d8d0a341150385) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* 64k graphics block used at runtime */ - ROM_LOAD( "sp-ic33", 0x0000, 0x1000, CRC(b6731baa) SHA1(b551030df417b40f4a8488fc82a8b5809d3d32f6) ) - ROM_LOAD( "sp-ic25", 0x1000, 0x1000, CRC(baec64e7) SHA1(beb45e2e6270607c14cdf964c08fe320ce8236a0) ) - ROM_LOAD( "sp-ic24", 0x2000, 0x1000, CRC(a40a5517) SHA1(3f524c7dbbfe8aad7860d15c38d2702732895681) ) - ROM_LOAD( "sp-ic23", 0x3000, 0x1000, CRC(3ca08053) SHA1(20c5709d9650c426b91aed5318a9ab0a10009f17) ) - ROM_LOAD( "sp-ic22", 0x4000, 0x1000, CRC(07ea073c) SHA1(2e57831092730db5fbdb97c2d78d8842868906f4) ) - ROM_LOAD( "sp-ic21", 0x5000, 0x1000, CRC(41b344b4) SHA1(c0eac1e332da1eada062059ae742b666051da76c) ) - ROM_LOAD( "sp-ic20", 0x6000, 0x1000, CRC(4d37da5a) SHA1(37567d19596506385e9dcc7a7c0cf65120189ae0) ) -ROM_END - -ROM_START( spinner ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "sp01-100.r1", 0xc000, 0x1000, CRC(e85faa36) SHA1(ef1c479d503ef6a833ae1f9d5a260f9e50c1f2d4) ) - ROM_LOAD( "sp02-99.s1", 0xd000, 0x1000, CRC(4bcd2b35) SHA1(dff3c6e68cc5384863a123661422d929e7406dee) ) - ROM_LOAD( "sp03-98.t1", 0xe000, 0x1000, CRC(fdabc5df) SHA1(a3276eb1f09f6a3c406721f89993a39c92fb7728) ) - ROM_LOAD( "sp04-97.v1", 0xf000, 0x1000, CRC(62798f96) SHA1(1407a2ccb2b8f998f2ee494f52a471b627895dbe) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */ - ROM_LOAD( "sp41-28.d9", 0xf800, 0x0800, CRC(944d761e) SHA1(23b1f9234e0de678e96d1a6876d8d0a341150385) ) - - ROM_REGION( 0x10000, REGION_GFX1, 0 ) /* 64k graphics block used at runtime */ - ROM_LOAD( "sp05-25.k8", 0x0000, 0x1000, CRC(ccc696ee) SHA1(1d41e9eb0cae73b221327d7b6e02450275d056c6) ) - ROM_LOAD( "sp06-17.k9", 0x1000, 0x1000, CRC(d3d06722) SHA1(da510ed162e5c310945123c9ce6d5648c7b0ae48) ) - ROM_LOAD( "sp07-16.l9", 0x2000, 0x1000, CRC(a40a5517) SHA1(3f524c7dbbfe8aad7860d15c38d2702732895681) ) - ROM_LOAD( "sp08-15.n9", 0x3000, 0x1000, CRC(3ca08053) SHA1(20c5709d9650c426b91aed5318a9ab0a10009f17) ) - ROM_LOAD( "sp09-14.o9", 0x4000, 0x1000, CRC(07ea073c) SHA1(2e57831092730db5fbdb97c2d78d8842868906f4) ) - ROM_LOAD( "sp10-13.q9", 0x5000, 0x1000, CRC(41b344b4) SHA1(c0eac1e332da1eada062059ae742b666051da76c) ) - ROM_LOAD( "sp11-12.r9", 0x6000, 0x1000, CRC(4d37da5a) SHA1(37567d19596506385e9dcc7a7c0cf65120189ae0) ) -ROM_END - -/* this is a newer version with just one bug fix */ -GAME( 1981, spiders, 0, spiders, spiders, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 1)", 0) -GAME( 1981, spiders2, spiders, spiders, spiders, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 2)", 0) -GAME( 1981, spinner, spiders, spiders, spiders, 0, ROT270, "bootleg", "Spinner", 0) diff --git a/src/drivers/sprint2.c b/src/drivers/sprint2.c deleted file mode 100644 index 69840dce3..000000000 --- a/src/drivers/sprint2.c +++ /dev/null @@ -1,696 +0,0 @@ -/*************************************************************************** - - Atari Sprint 2 hardware - - driver by Mike Balfour - - Games supported: - * Sprint 1 - * Sprint 2 - * Dominos - - All three games run on the same PCB but with minor modifications (some - chips removed, some wire-wrap connections added). - - If you have any questions about how this driver works, don't hesitate to - ask. - Mike Balfour (mab22@po.cwru.edu) - -***************************************************************************/ - -#include "driver.h" -#include "sprint2.h" -#include "sound/discrete.h" - -#define GAME_IS_SPRINT1 (game == 1) -#define GAME_IS_SPRINT2 (game == 2) -#define GAME_IS_DOMINOS (game == 3) - - - -static int attract; -static int steering[2]; -static int gear[2]; -static int game; - - -static DRIVER_INIT( sprint1 ) -{ - game = 1; -} -static DRIVER_INIT( sprint2 ) -{ - game = 2; -} -static DRIVER_INIT( dominos ) -{ - game = 3; -} - - -static int service_mode(void) -{ - UINT8 v = readinputport(2); - - if (GAME_IS_SPRINT1) - { - return (v & 0x10) == 0; - } - if (GAME_IS_SPRINT2) - { - return (v & 0x04) == 0; - } - if (GAME_IS_DOMINOS) - { - return (v & 0x40) == 0; - } - - return 0; -} - - -static INTERRUPT_GEN( sprint2 ) -{ - static UINT8 dial[2]; - - /* handle steering wheels */ - - if (GAME_IS_SPRINT1 || GAME_IS_SPRINT2) - { - int i; - - for (i = 0; i < 2; i++) - { - signed char delta = readinputport(6 + i) - dial[i]; - - if (delta < 0) - { - steering[i] = 0x00; - } - if (delta > 0) - { - steering[i] = 0x40; - } - - dial[i] += delta; - - switch (readinputport(4 + i) & 15) - { - case 1: gear[i] = 1; break; - case 2: gear[i] = 2; break; - case 4: gear[i] = 3; break; - case 8: gear[i] = 4; break; - } - } - } - - discrete_sound_w(SPRINT2_MOTORSND1_DATA, sprint2_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA - discrete_sound_w(SPRINT2_MOTORSND2_DATA, sprint2_video_ram[0x395] & 15); - discrete_sound_w(SPRINT2_CRASHSND_DATA, sprint2_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA - - /* interrupts and watchdog are disabled during service mode */ - - watchdog_enable(!service_mode()); - - if (!service_mode()) - { - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } -} - - -static PALETTE_INIT( sprint2 ) -{ - palette_set_color(machine, 0, 0x00, 0x00, 0x00); - palette_set_color(machine, 1, 0x5b, 0x5b, 0x5b); - palette_set_color(machine, 2, 0xa4, 0xa4, 0xa4); - palette_set_color(machine, 3, 0xff, 0xff, 0xff); - - colortable[0x0] = 1; /* black playfield */ - colortable[0x1] = 0; - colortable[0x2] = 1; /* white playfield */ - colortable[0x3] = 3; - - colortable[0x4] = 1; /* car #1 */ - colortable[0x5] = 3; - colortable[0x6] = 1; /* car #2 */ - colortable[0x7] = 0; - colortable[0x8] = 1; /* car #3 */ - colortable[0x9] = 2; - colortable[0xa] = 1; /* car #4 */ - colortable[0xb] = 2; -} - - -static READ8_HANDLER( sprint2_wram_r ) -{ - return sprint2_video_ram[0x380 + offset % 0x80]; -} - - -static READ8_HANDLER( sprint2_dip_r ) -{ - return (readinputport(0) << (2 * ((offset & 3) ^ 3))) & 0xc0; -} - - -static READ8_HANDLER( sprint2_input_A_r ) -{ - UINT8 val = readinputport(1); - - if (GAME_IS_SPRINT2) - { - if (gear[0] == 1) val &= ~0x01; - if (gear[1] == 1) val &= ~0x02; - if (gear[0] == 2) val &= ~0x04; - if (gear[1] == 2) val &= ~0x08; - if (gear[0] == 3) val &= ~0x10; - if (gear[1] == 3) val &= ~0x20; - } - - return (val << (offset ^ 7)) & 0x80; -} - - -static READ8_HANDLER( sprint2_input_B_r ) -{ - UINT8 val = readinputport(2); - - if (GAME_IS_SPRINT1) - { - if (gear[0] == 1) val &= ~0x01; - if (gear[0] == 2) val &= ~0x02; - if (gear[0] == 3) val &= ~0x04; - } - - return (val << (offset ^ 7)) & 0x80; -} - - -static READ8_HANDLER( sprint2_sync_r ) -{ - UINT8 val = 0; - - if (attract != 0) - { - val |= 0x10; - } - if (cpu_getscanline() == 261) - { - val |= 0x20; /* VRESET */ - } - if (cpu_getscanline() >= 224) - { - val |= 0x40; /* VBLANK */ - } - if (cpu_getscanline() >= 131) - { - val |= 0x80; /* 60 Hz? */ - } - - return val; -} - - -static READ8_HANDLER( sprint2_steering1_r ) -{ - return steering[0]; -} -static READ8_HANDLER( sprint2_steering2_r ) -{ - return steering[1]; -} - - -static WRITE8_HANDLER( sprint2_steering_reset1_w ) -{ - steering[0] |= 0x80; -} -static WRITE8_HANDLER( sprint2_steering_reset2_w ) -{ - steering[1] |= 0x80; -} - - -static WRITE8_HANDLER( sprint2_wram_w ) -{ - sprint2_video_ram[0x380 + offset % 0x80] = data; -} - - -static WRITE8_HANDLER( sprint2_attract_w ) -{ - attract = offset & 1; - - // also DOMINOS_ATTRACT_EN - discrete_sound_w(SPRINT2_ATTRACT_EN, attract); -} - - -static WRITE8_HANDLER( sprint2_noise_reset_w ) -{ - discrete_sound_w(SPRINT2_NOISE_RESET, 0); -} - - -static WRITE8_HANDLER( sprint2_skid1_w ) -{ - // also DOMINOS_TUMBLE_EN - discrete_sound_w(SPRINT2_SKIDSND1_EN, offset & 1); -} - -static WRITE8_HANDLER( sprint2_skid2_w ) -{ - discrete_sound_w(SPRINT2_SKIDSND2_EN, offset & 1); -} - - -static WRITE8_HANDLER( sprint2_lamp1_w ) -{ - set_led_status(0, offset & 1); -} -static WRITE8_HANDLER( sprint2_lamp2_w ) -{ - set_led_status(1, offset & 1); -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(sprint2_wram_r) - AM_RANGE(0x0400, 0x07ff) AM_READ(MRA8_RAM) - AM_RANGE(0x0818, 0x081f) AM_READ(sprint2_input_A_r) - AM_RANGE(0x0828, 0x082f) AM_READ(sprint2_input_B_r) - AM_RANGE(0x0830, 0x0837) AM_READ(sprint2_dip_r) - AM_RANGE(0x0840, 0x087f) AM_READ(input_port_3_r) - AM_RANGE(0x0880, 0x08bf) AM_READ(sprint2_steering1_r) - AM_RANGE(0x08c0, 0x08ff) AM_READ(sprint2_steering2_r) - AM_RANGE(0x0c00, 0x0fff) AM_READ(sprint2_sync_r) - AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r) - AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r) - AM_RANGE(0x1800, 0x1800) AM_READ(MRA8_NOP) /* debugger ROM location? */ - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(sprint2_wram_w) - AM_RANGE(0x0400, 0x07ff) AM_WRITE(sprint2_video_ram_w) AM_BASE(&sprint2_video_ram) - AM_RANGE(0x0c00, 0x0c0f) AM_WRITE(sprint2_attract_w) - AM_RANGE(0x0c10, 0x0c1f) AM_WRITE(sprint2_skid1_w) - AM_RANGE(0x0c20, 0x0c2f) AM_WRITE(sprint2_skid2_w) - AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(sprint2_lamp1_w) - AM_RANGE(0x0c40, 0x0c4f) AM_WRITE(sprint2_lamp2_w) - AM_RANGE(0x0c60, 0x0c6f) AM_WRITE(MWA8_NOP) /* SPARE */ - AM_RANGE(0x0c80, 0x0cff) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x0d00, 0x0d7f) AM_WRITE(sprint2_collision_reset1_w) - AM_RANGE(0x0d80, 0x0dff) AM_WRITE(sprint2_collision_reset2_w) - AM_RANGE(0x0e00, 0x0e7f) AM_WRITE(sprint2_steering_reset1_w) - AM_RANGE(0x0e80, 0x0eff) AM_WRITE(sprint2_steering_reset2_w) - AM_RANGE(0x0f00, 0x0f7f) AM_WRITE(sprint2_noise_reset_w) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - - -INPUT_PORTS_START( sprint2 ) - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Tracks on Demo" ) - PORT_DIPSETTING( 0x00, "Easy Track Only" ) - PORT_DIPSETTING( 0x01, "Cycle 12 Tracks" ) - PORT_DIPNAME( 0x02, 0x00, "Oil Slicks" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Extended Play" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, "Play Time" ) - PORT_DIPSETTING( 0xc0, "60 seconds" ) - PORT_DIPSETTING( 0x80, "90 seconds" ) - PORT_DIPSETTING( 0x40, "120 seconds" ) - PORT_DIPSETTING( 0x00, "150 seconds" ) - - PORT_START /* input A */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 1st gear */ - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 1st gear */ - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 2nd gear */ - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 2nd gear */ - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 3rd gear */ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 3rd gear */ - - PORT_START /* input B */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 1 Gas") PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 2 Gas") PORT_PLAYER(2) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) - - PORT_START - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 1 Gear 1") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 1 Gear 2") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 1 Gear 3") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 1 Gear 4") PORT_CODE(KEYCODE_V) PORT_PLAYER(1) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 2 Gear 1") PORT_CODE(KEYCODE_Q) PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 2 Gear 2") PORT_CODE(KEYCODE_W) PORT_PLAYER(2) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 2 Gear 3") PORT_CODE(KEYCODE_E) PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 2 Gear 4") PORT_CODE(KEYCODE_R) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START - PORT_ADJUSTER( 30, "Motor 1 RPM" ) - - PORT_START - PORT_ADJUSTER( 40, "Motor 2 RPM" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( sprint1 ) - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Change Track" ) - PORT_DIPSETTING( 0x01, "Every Lap" ) - PORT_DIPSETTING( 0x00, "Every 2 Laps" ) - PORT_DIPNAME( 0x02, 0x00, "Oil Slicks" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, "Extended Play" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0x00, "Play Time" ) - PORT_DIPSETTING( 0xc0, "60 seconds" ) - PORT_DIPSETTING( 0x80, "90 seconds" ) - PORT_DIPSETTING( 0x40, "120 seconds" ) - PORT_DIPSETTING( 0x00, "150 seconds" ) - - PORT_START /* input A */ - - PORT_START /* input B */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* 1st gear */ - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) /* 2nd gear */ - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) /* 3rd gear */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas") - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Gear 1") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Gear 2") PORT_CODE(KEYCODE_X) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Gear 3") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Gear 4") PORT_CODE(KEYCODE_V) - - PORT_START - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START - - PORT_START - PORT_ADJUSTER( 30, "Motor RPM" ) -INPUT_PORTS_END - - -INPUT_PORTS_START( dominos ) - PORT_START - PORT_DIPNAME( 0x03, 0x01, "Points to Win" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x0C, 0x08, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* input A */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) - - PORT_START /* input B */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - - PORT_START - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) - - PORT_START - PORT_ADJUSTER( 50, "R23 - Tone Freq" ) -INPUT_PORTS_END - - -static const gfx_layout tile_layout = -{ - 16, 8, - 64, - 1, - { 0 }, - { - 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 - }, - 0x40 -}; - - -static const gfx_layout car_layout = -{ - 16, 8, - 32, - 1, - { 0 }, - { - 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, - 0xf, 0xe, 0xd, 0xc, 0xb, 0xa, 0x9, 0x8 - }, - { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70 - }, - 0x80 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tile_layout, 0, 2 }, - { REGION_GFX2, 0, &car_layout, 4, 4 }, - { -1 } -}; - - -static MACHINE_DRIVER_START( sprint2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 12096000 / 16) - MDRV_CPU_PROGRAM_MAP(readmem, writemem) - MDRV_CPU_VBLANK_INT(sprint2, 1) - MDRV_WATCHDOG_VBLANK_INIT(8) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(38 * 1000000 / 15750)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 262) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 223) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(12) - - MDRV_PALETTE_INIT(sprint2) - MDRV_VIDEO_START(sprint2) - MDRV_VIDEO_UPDATE(sprint2) - MDRV_VIDEO_EOF(sprint2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(sprint2_discrete_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( sprint1 ) - - MDRV_IMPORT_FROM(sprint2) - - /* sound hardware */ - MDRV_SPEAKER_REMOVE("left") - MDRV_SPEAKER_REMOVE("right") - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_REPLACE("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(sprint1_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dominos ) - - MDRV_IMPORT_FROM(sprint2) - - /* sound hardware */ - MDRV_SPEAKER_REMOVE("left") - MDRV_SPEAKER_REMOVE("right") - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_REPLACE("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(dominos_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -ROM_START( sprint1 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) - ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) - ROM_LOAD( "6442-01.d1", 0x3000, 0x0800, CRC(e9ff0124) SHA1(42fe028e2e595573ccc0821de3bb6970364c585d) ) - ROM_RELOAD( 0xf000, 0x0800 ) - ROM_LOAD( "6443-01.e1", 0x3800, 0x0800, CRC(d6bb00d0) SHA1(cdcd4bb7b32be7a11480d3312fcd8d536e2d0caf) ) - ROM_RELOAD( 0xf800, 0x0800 ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) - ROM_LOAD_NIB_LOW ( "6397-01.r4", 0x0000, 0x0200, CRC(135ba1aa) SHA1(0465259440f73e1a2c8d8101f29e99b4885420e4) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) /* cars */ - ROM_LOAD_NIB_HIGH( "6399-01.j6", 0x0000, 0x0200, CRC(63d685b2) SHA1(608746163e25dbc14cde43c17aecbb9a14fac875) ) - ROM_LOAD_NIB_LOW ( "6398-01.k6", 0x0000, 0x0200, CRC(c9e1017e) SHA1(e7279a13e4a812d2e0218be0bc5162f2e56c6b66) ) - - ROM_REGION( 0x0120, REGION_PROMS, 0 ) - ROM_LOAD( "6400-01.m2", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* SYNC */ - ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ -ROM_END - - -ROM_START( sprint2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) - ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) - ROM_LOAD( "6404.d1", 0x3000, 0x0800, CRC(d2878ff6) SHA1(b742a8896c1bf1cfacf48d06908920d88a2c9ea8) ) - ROM_RELOAD( 0xf000, 0x0800 ) - ROM_LOAD( "6405.e1", 0x3800, 0x0800, CRC(6c991c80) SHA1(c30a5b340f05dd702c7a186eb62607a48fa19f72) ) - ROM_RELOAD( 0xf800, 0x0800 ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) - ROM_LOAD_NIB_LOW ( "6397-01.r4", 0x0000, 0x0200, CRC(135ba1aa) SHA1(0465259440f73e1a2c8d8101f29e99b4885420e4) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) /* cars */ - ROM_LOAD_NIB_HIGH( "6399-01.j6", 0x0000, 0x0200, CRC(63d685b2) SHA1(608746163e25dbc14cde43c17aecbb9a14fac875) ) - ROM_LOAD_NIB_LOW ( "6398-01.k6", 0x0000, 0x0200, CRC(c9e1017e) SHA1(e7279a13e4a812d2e0218be0bc5162f2e56c6b66) ) - - ROM_REGION( 0x0120, REGION_PROMS, 0 ) - ROM_LOAD( "6400-01.m2", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* SYNC */ - ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ -ROM_END - - -ROM_START( sprint2a ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) - ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) - ROM_LOAD( "6404.d1", 0x3000, 0x0800, CRC(d2878ff6) SHA1(b742a8896c1bf1cfacf48d06908920d88a2c9ea8) ) - ROM_RELOAD( 0xf000, 0x0800 ) - ROM_LOAD( "6405-02.e1", 0x3800, 0x0800, CRC(e80fd249) SHA1(7bcf7dfd72ca83fdd80593eaf392570da1f71298) ) - ROM_RELOAD( 0xf800, 0x0800 ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) - ROM_LOAD_NIB_LOW ( "6397-01.r4", 0x0000, 0x0200, CRC(135ba1aa) SHA1(0465259440f73e1a2c8d8101f29e99b4885420e4) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) /* cars */ - ROM_LOAD_NIB_HIGH( "6399-01.j6", 0x0000, 0x0200, CRC(63d685b2) SHA1(608746163e25dbc14cde43c17aecbb9a14fac875) ) - ROM_LOAD_NIB_LOW ( "6398-01.k6", 0x0000, 0x0200, CRC(c9e1017e) SHA1(e7279a13e4a812d2e0218be0bc5162f2e56c6b66) ) - - ROM_REGION( 0x0120, REGION_PROMS, 0 ) - ROM_LOAD( "6400-01.m2", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* SYNC */ - ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ -ROM_END - - -ROM_START( dominos ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "7352-02.d1", 0x3000, 0x0800, CRC(738b4413) SHA1(3a90ab25bb5f65504692f97da43f03e21392dcd8) ) - ROM_RELOAD( 0xf000, 0x0800 ) - ROM_LOAD( "7438-02.e1", 0x3800, 0x0800, CRC(c84e54e2) SHA1(383b388a1448a195f28352fc5e4ff1a2af80cc95) ) - ROM_RELOAD( 0xf800, 0x0800 ) - - ROM_REGION( 0x200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD_NIB_HIGH( "7439-01.p4", 0x0000, 0x0200, CRC(4f42fdd6) SHA1(f8ea4b582e26cad37b746174cdc9f1c7ae0819c3) ) - ROM_LOAD_NIB_LOW ( "7440-01.r4", 0x0000, 0x0200, CRC(957dd8df) SHA1(280457392f40cd66eae34d2fcdbd4d2142793402) ) - - ROM_REGION( 0x200, REGION_GFX2, ROMREGION_DISPOSE ) /* sprites, not used */ - ROM_FILL( 0x0000, 0x0200, 0 ) - - ROM_REGION( 0x0120, REGION_PROMS, 0 ) - ROM_LOAD( "6400-01.m2", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* SYNC */ - ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ -ROM_END - - -GAME( 1978, sprint1, 0, sprint1, sprint1, sprint1, ROT0, "Atari", "Sprint 1", 0 ) -GAME( 1976, sprint2, sprint1, sprint2, sprint2, sprint2, ROT0, "Atari", "Sprint 2 (set 1)", 0 ) -GAME( 1976, sprint2a, sprint1, sprint2, sprint2, sprint2, ROT0, "Atari", "Sprint 2 (set 2)", 0 ) -GAME( 1977, dominos, 0, dominos, dominos, dominos, ROT0, "Atari", "Dominos", 0 ) diff --git a/src/drivers/sprint4.c b/src/drivers/sprint4.c deleted file mode 100644 index 8e227831f..000000000 --- a/src/drivers/sprint4.c +++ /dev/null @@ -1,671 +0,0 @@ -/*************************************************************************** - -Atari Sprint 4 + Ultra Tank driver - -***************************************************************************/ - -#include "driver.h" -#include "sprint4.h" - -static int da_latch; -static int steer_dir[4]; -static int steer_flag[4]; -static int gear[4]; - - -static void input_callback(int dummy) -{ - static UINT8 dial[4]; - - /* handle steering wheels and gear shift levers */ - - int i; - - for (i = 0; i < 4; i++) - { - signed char delta = readinputport(9 + i) - dial[i]; - - if (delta < 0) - { - steer_dir[i] = 0; - } - if (delta > 0) - { - steer_dir[i] = 1; - } - - steer_flag[i] = dial[i] & 1; - - switch (readinputport(13 + i)) - { - case 1: gear[i] = 1; break; - case 2: gear[i] = 2; break; - case 4: gear[i] = 3; break; - case 8: gear[i] = 4; break; - } - - dial[i] += delta; - } -} - - -static void nmi_callback(int scanline) -{ - scanline += 64; - - if (scanline >= 262) - { - scanline = 32; - } - - /* NMI and watchdog are disabled during service mode */ - - watchdog_enable(readinputport(2) & 0x40); - - if (readinputport(2) & 0x40) - { - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - - timer_set(cpu_getscanlinetime(scanline), scanline, nmi_callback); -} - - -static MACHINE_RESET( sprint4 ) -{ - timer_set(cpu_getscanlinetime(32), 32, nmi_callback); - - timer_pulse(TIME_IN_HZ(60), 0, input_callback); -} - - -static MACHINE_RESET( ultratnk ) -{ - timer_set(cpu_getscanlinetime(32), 32, nmi_callback); -} - - -static READ8_HANDLER( sprint4_wram_r ) -{ - return sprint4_videoram[0x380 + offset]; -} - - -static READ8_HANDLER( sprint4_analog_r ) -{ - int voltage; - - int n = (offset >> 1) & 3; - - if (offset & 1) - { - voltage = 4 * gear[n]; - } - else - { - voltage = 8 * steer_flag[n] + 8 * steer_dir[n]; - } - - return (voltage > da_latch) ? 0x80 : 0; -} - - -static READ8_HANDLER( ultratnk_analog_r ) -{ - if (offset & 1) - { - UINT8 joy = readinputport(10) >> (offset & 6); - - if ((joy & 3) == 1) - { - return (da_latch < 8) ? 0x80 : 0; - } - if ((joy & 3) == 2) - { - return 0; - } - - return 0x80; - } - else - { - return (readinputport(9) << ((offset & 7) ^ 7)) & 0x80; - } -} - - -static READ8_HANDLER( sprint4_coin_r ) -{ - return (readinputport(1) << ((offset & 7) ^ 7)) & 0x80; -} - - -static READ8_HANDLER( sprint4_collision_r ) -{ - UINT8 val = readinputport(0); - - if (sprint4_collision[0]) val |= 0x02; - if (sprint4_collision[1]) val |= 0x08; - if (sprint4_collision[2]) val |= 0x20; - if (sprint4_collision[3]) val |= 0x80; - - return (val << ((offset & 7) ^ 7)) & 0x80; -} - - -static READ8_HANDLER( sprint4_options_r ) -{ - return (readinputport(4) >> (2 * (offset & 3))) & 3; -} - - -static WRITE8_HANDLER( sprint4_wram_w ) -{ - sprint4_videoram[0x380 + offset] = data; -} - - -static WRITE8_HANDLER( sprint4_collision_reset_w ) -{ - sprint4_collision[(offset >> 1) & 3] = 0; -} - - -static WRITE8_HANDLER( sprint4_da_latch_w ) -{ - da_latch = data & 15; -} - - -static WRITE8_HANDLER( sprint4_lamp_w ) -{ - set_led_status((offset >> 1) & 3, offset & 1); -} - - -static WRITE8_HANDLER( sprint4_lockout_w ) -{ - coin_lockout_global_w(~offset & 1); -} - - -static WRITE8_HANDLER( sprint4_crash_w ) -{ - discrete_sound_w(SPRINT4_CRASH_DATA, data & 15); -} -static WRITE8_HANDLER( sprint4_skid_1_w ) -{ - discrete_sound_w(SPRINT4_SKID1_EN, offset & 1); -} -static WRITE8_HANDLER( sprint4_skid_2_w ) -{ - discrete_sound_w(SPRINT4_SKID2_EN, offset & 1); -} -static WRITE8_HANDLER( sprint4_skid_3_w ) -{ - discrete_sound_w(SPRINT4_SKID3_EN, offset & 1); -} -static WRITE8_HANDLER( sprint4_skid_4_w ) -{ - discrete_sound_w(SPRINT4_SKID4_EN, offset & 1); -} -static WRITE8_HANDLER( sprint4_attract_w ) -{ - discrete_sound_w(SPRINT4_ATTRACT_EN, data & 1); -} - - - -static ADDRESS_MAP_START( sprint4_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(sprint4_wram_r, sprint4_wram_w) - AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_READWRITE(MRA8_RAM, sprint4_video_ram_w) AM_BASE(&sprint4_videoram) - - AM_RANGE(0x0000, 0x001f) AM_READ(sprint4_analog_r) - AM_RANGE(0x0020, 0x003f) AM_READ(sprint4_coin_r) - AM_RANGE(0x0040, 0x005f) AM_READ(sprint4_collision_r) - AM_RANGE(0x0060, 0x007f) AM_READ(sprint4_options_r) - AM_RANGE(0x1000, 0x17ff) AM_READ(input_port_2_r) - AM_RANGE(0x1800, 0x1fff) AM_READ(input_port_3_r) - - AM_RANGE(0x0000, 0x001f) AM_WRITE(sprint4_attract_w) - AM_RANGE(0x0020, 0x003f) AM_WRITE(sprint4_collision_reset_w) - AM_RANGE(0x0040, 0x0041) AM_WRITE(sprint4_da_latch_w) - AM_RANGE(0x0042, 0x0043) AM_WRITE(sprint4_crash_w) - AM_RANGE(0x0044, 0x0045) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x0046, 0x0047) AM_WRITE(MWA8_NOP) /* SPARE */ - AM_RANGE(0x0060, 0x0067) AM_WRITE(sprint4_lamp_w) - AM_RANGE(0x0068, 0x0069) AM_WRITE(sprint4_skid_1_w) - AM_RANGE(0x006a, 0x006b) AM_WRITE(sprint4_skid_2_w) - AM_RANGE(0x006c, 0x006d) AM_WRITE(sprint4_skid_3_w) - AM_RANGE(0x006e, 0x006f) AM_WRITE(sprint4_skid_4_w) - - AM_RANGE(0x2000, 0x27ff) AM_NOP /* diagnostic ROM */ - AM_RANGE(0x2800, 0x3fff) AM_ROM - -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( ultratnk_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - - ADDRESS_MAP_FLAGS( AMEF_ABITS(14) ) - - AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x700) AM_RAM - AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(sprint4_wram_r, sprint4_wram_w) - AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_READWRITE(MRA8_RAM, sprint4_video_ram_w) AM_BASE(&sprint4_videoram) - - AM_RANGE(0x1000, 0x17ff) AM_READ(input_port_2_r) - AM_RANGE(0x1800, 0x1fff) AM_READ(input_port_3_r) - AM_RANGE(0x2000, 0x201f) AM_READ(ultratnk_analog_r) - AM_RANGE(0x2020, 0x203f) AM_READ(sprint4_coin_r) - AM_RANGE(0x2040, 0x205f) AM_READ(sprint4_collision_r) - AM_RANGE(0x2060, 0x207f) AM_READ(sprint4_options_r) - - AM_RANGE(0x2000, 0x201f) AM_WRITE(sprint4_attract_w) - AM_RANGE(0x2020, 0x203f) AM_WRITE(sprint4_collision_reset_w) - AM_RANGE(0x2040, 0x2041) AM_WRITE(sprint4_da_latch_w) - AM_RANGE(0x2042, 0x2043) AM_WRITE(sprint4_crash_w) - AM_RANGE(0x2044, 0x2045) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x2066, 0x2067) AM_WRITE(sprint4_lockout_w) - AM_RANGE(0x2068, 0x206b) AM_WRITE(sprint4_lamp_w) - AM_RANGE(0x206c, 0x206d) AM_WRITE(sprint4_skid_1_w) - AM_RANGE(0x206e, 0x206f) AM_WRITE(sprint4_skid_2_w) - - AM_RANGE(0x2800, 0x2fff) AM_NOP /* diagnostic ROM */ - AM_RANGE(0x3000, 0x3fff) AM_ROM - -ADDRESS_MAP_END - - - -INPUT_PORTS_START( sprint4 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 1 Gas") PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION1 */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 2 Gas") PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION2 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 3 Gas") PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION3 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Player 4 Gas") PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION4 */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Track Select") PORT_CODE(KEYCODE_SPACE) - - PORT_START - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x00, DEF_STR( German ) ) - PORT_DIPSETTING( 0x01, DEF_STR( French ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Spanish ) ) - PORT_DIPSETTING( 0x03, DEF_STR( English ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coinage )) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C )) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C )) - PORT_DIPNAME( 0x08, 0x08, "Allow Late Entry" ) - PORT_DIPSETTING( 0x08, DEF_STR( No )) - PORT_DIPSETTING( 0x00, DEF_STR( Yes )) - PORT_DIPNAME( 0xf0, 0xb0, "Play Time" ) - PORT_DIPSETTING( 0x70, "60 seconds" ) - PORT_DIPSETTING( 0xb0, "90 seconds" ) - PORT_DIPSETTING( 0xd0, "120 seconds" ) - PORT_DIPSETTING( 0xe0, "150 seconds" ) - - PORT_START - PORT_ADJUSTER( 70, "Motor 1 RPM" ) - - PORT_START - PORT_ADJUSTER( 50, "Motor 2 RPM" ) - - PORT_START - PORT_ADJUSTER( 70, "Motor 3 RPM" ) - - PORT_START - PORT_ADJUSTER( 50, "Motor 4 RPM" ) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(1) PORT_PLAYER(4) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 1 Gear 1") PORT_CODE(KEYCODE_Z) PORT_PLAYER(1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 1 Gear 2") PORT_CODE(KEYCODE_X) PORT_PLAYER(1) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 1 Gear 3") PORT_CODE(KEYCODE_C) PORT_PLAYER(1) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 1 Gear 4") PORT_CODE(KEYCODE_V) PORT_PLAYER(1) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 2 Gear 1") PORT_CODE(KEYCODE_Q) PORT_PLAYER(2) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 2 Gear 2") PORT_CODE(KEYCODE_W) PORT_PLAYER(2) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 2 Gear 3") PORT_CODE(KEYCODE_E) PORT_PLAYER(2) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 2 Gear 4") PORT_CODE(KEYCODE_R) PORT_PLAYER(2) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 3 Gear 1") PORT_CODE(KEYCODE_Y) PORT_PLAYER(3) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 3 Gear 2") PORT_CODE(KEYCODE_U) PORT_PLAYER(3) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 3 Gear 3") PORT_CODE(KEYCODE_I) PORT_PLAYER(3) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 3 Gear 4") PORT_CODE(KEYCODE_O) PORT_PLAYER(3) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Player 4 Gear 1") PORT_PLAYER(3) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Player 4 Gear 2") PORT_PLAYER(3) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Player 4 Gear 3") PORT_PLAYER(3) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Player 4 Gear 4") PORT_PLAYER(3) - -INPUT_PORTS_END - - -INPUT_PORTS_START( ultratnk ) - - PORT_START - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION1 */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION2 */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* VCC */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION3 */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) /* SLAM */ - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* COLLISION4 */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Option 2") PORT_TOGGLE - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE3 ) PORT_NAME("Option 3") PORT_TOGGLE - - PORT_START - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Option 1") PORT_TOGGLE - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0x30, 0x10, "Game Length" ) - PORT_DIPSETTING( 0x00, "60 Seconds" ) - PORT_DIPSETTING( 0x10, "90 Seconds" ) - PORT_DIPSETTING( 0x20, "120 Seconds" ) - PORT_DIPSETTING( 0x30, "150 Seconds" ) - PORT_DIPNAME( 0xc0, 0x40, "Extended Play" ) - PORT_DIPSETTING( 0x40, "25 Points" ) - PORT_DIPSETTING( 0x80, "50 Points" ) - PORT_DIPSETTING( 0xc0, "75 Points" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - - PORT_START - PORT_ADJUSTER( 60, "Motor 1 RPM" ) - - PORT_START - PORT_ADJUSTER( 40, "Motor 2 RPM" ) - - PORT_START - PORT_START - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* JOY W */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* JOY Y */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* JOY X */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* JOY Z */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_PLAYER(2) - -INPUT_PORTS_END - - - -static const gfx_layout playfield_layout = -{ - 8, 8, - RGN_FRAC(1, 1), - 1, - { 0 }, - { - 0, 1, 2, 3, 4, 5, 6, 7 - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 - }, - 0x40 -}; - - -static const gfx_layout car_layout = -{ - 12, 16, - RGN_FRAC(1,3), - 1, - { 0 }, - { - 7 + RGN_FRAC(0,3), 6 + RGN_FRAC(0,3), 5 + RGN_FRAC(0,3), 4 + RGN_FRAC(0,3), - 7 + RGN_FRAC(1,3), 6 + RGN_FRAC(1,3), 5 + RGN_FRAC(1,3), 4 + RGN_FRAC(1,3), - 7 + RGN_FRAC(2,3), 6 + RGN_FRAC(2,3), 5 + RGN_FRAC(2,3), 4 + RGN_FRAC(2,3) - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, - 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 - }, - 0x80 -}; - - -static const gfx_layout tank_layout = -{ - 15, 16, - RGN_FRAC(1,4), - 1, - { 0 }, - { - 7 + RGN_FRAC(0,4), 6 + RGN_FRAC(0,4), 5 + RGN_FRAC(0,4), 4 + RGN_FRAC(0,4), - 7 + RGN_FRAC(1,4), 6 + RGN_FRAC(1,4), 5 + RGN_FRAC(1,4), 4 + RGN_FRAC(1,4), - 7 + RGN_FRAC(2,4), 6 + RGN_FRAC(2,4), 5 + RGN_FRAC(2,4), 4 + RGN_FRAC(2,4), - 7 + RGN_FRAC(3,4), 6 + RGN_FRAC(3,4), 5 + RGN_FRAC(3,4) - }, - { - 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, - 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 - }, - 0x80 -}; - - -static const gfx_decode sprint4_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &playfield_layout, 0, 5 }, - { REGION_GFX2, 0, &car_layout, 0, 5 }, - { -1 } -}; - - -static const gfx_decode ultratnk_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &playfield_layout, 0, 5 }, - { REGION_GFX2, 0, &tank_layout, 0, 4 }, - { -1 } -}; - - - -static MACHINE_DRIVER_START( sprint4 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 12096000 / 16) - MDRV_CPU_PROGRAM_MAP(sprint4_cpu_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(38 * 1000000 / 15750)) - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_MACHINE_RESET(sprint4) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 262) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 223) - MDRV_GFXDECODE(sprint4_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(6) - MDRV_COLORTABLE_LENGTH(10) - - MDRV_PALETTE_INIT(sprint4) - MDRV_VIDEO_START(sprint4) - MDRV_VIDEO_UPDATE(sprint4) - MDRV_VIDEO_EOF(sprint4) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(DISCRETE, 0) - MDRV_SOUND_CONFIG(sprint4_discrete_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ultratnk ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6502, 12096000 / 16) - MDRV_CPU_PROGRAM_MAP(ultratnk_cpu_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(38 * 1000000 / 15750)) - MDRV_WATCHDOG_VBLANK_INIT(8) - MDRV_MACHINE_RESET(ultratnk) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 262) - MDRV_SCREEN_VISIBLE_AREA(0, 255, 0, 223) - MDRV_GFXDECODE(ultratnk_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4) - MDRV_COLORTABLE_LENGTH(10) - - MDRV_PALETTE_INIT(ultratnk) - MDRV_VIDEO_START(ultratnk) - MDRV_VIDEO_UPDATE(ultratnk) - MDRV_VIDEO_EOF(ultratnk) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(DISCRETE, 0) - MDRV_SOUND_CONFIG(sprint4_discrete_interface) - MDRV_SOUND_ROUTE(0, "mono", 1.0) - -MACHINE_DRIVER_END - - - -ROM_START( sprint4 ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD ( "30031.c1", 0x2800, 0x0800, CRC(017ee7c4) SHA1(9386cacc619669c18af31f66691a45af6dafef64) ) - ROM_LOAD_NIB_LOW ( "30036-02.n1", 0x3000, 0x0800, CRC(883b9d7c) SHA1(af52ffdd9cd8dfed54013c9b0d3c6e48c7419d17) ) - ROM_LOAD_NIB_HIGH( "30037-02.k1", 0x3000, 0x0800, CRC(c297fbd8) SHA1(8cc0f486429e12bee21a5dd1135e799196480044) ) - ROM_LOAD ( "30033.e1", 0x3800, 0x0800, CRC(b8b717b7) SHA1(2f6b1a0e9803901d9ba79d1f19a025f6a6134756) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) /* playfield */ - ROM_LOAD( "30027.h5", 0x0000, 0x0800, CRC(3a752e07) SHA1(d990f94b296409d47e8bada98ddbed5f76567e1b) ) - - ROM_REGION( 0x0c00, REGION_GFX2, ROMREGION_DISPOSE ) /* motion */ - ROM_LOAD( "30028-01.n6", 0x0000, 0x0400, CRC(3ebcb13f) SHA1(e0b87239081f12f6613d3db6a8cb5b80937df7d7) ) - ROM_LOAD( "30029-01.m6", 0x0400, 0x0400, CRC(963a8424) SHA1(d52a0e73c54154531e825153012687bdb85e479a) ) - ROM_LOAD( "30030-01.l6", 0x0800, 0x0400, CRC(e94dfc2d) SHA1(9c5b1401c4aadda0a3aee76e4f92e73ae1d35cb7) ) - - ROM_REGION( 0x0200, REGION_USER1, 0 ) - ROM_LOAD( "30024-01.p8", 0x0000, 0x0200, CRC(e71d2e22) SHA1(434c3a8237468604cce7feb40e6061d2670013b3) ) /* SYNC */ -ROM_END - - -ROM_START( sprint4a ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD ( "30031.c1", 0x2800, 0x0800, CRC(017ee7c4) SHA1(9386cacc619669c18af31f66691a45af6dafef64) ) - ROM_LOAD_NIB_LOW ( "30036-02.n1", 0x3000, 0x0800, CRC(883b9d7c) SHA1(af52ffdd9cd8dfed54013c9b0d3c6e48c7419d17) ) - ROM_LOAD_NIB_HIGH( "30037-02.k1", 0x3000, 0x0800, CRC(c297fbd8) SHA1(8cc0f486429e12bee21a5dd1135e799196480044) ) - ROM_LOAD ( "30033.e1", 0x3800, 0x0800, CRC(b8b717b7) SHA1(2f6b1a0e9803901d9ba79d1f19a025f6a6134756) ) - - ROM_REGION( 0x0800, REGION_GFX1, ROMREGION_DISPOSE ) /* playfield */ - ROM_LOAD( "30027.h5", 0x0000, 0x0800, CRC(3a752e07) SHA1(d990f94b296409d47e8bada98ddbed5f76567e1b) ) - - ROM_REGION( 0x0c00, REGION_GFX2, ROMREGION_DISPOSE ) /* motion */ - ROM_LOAD( "30028-03.n6", 0x0000, 0x0400, CRC(d3337030) SHA1(3e73fc45bdcaa52dc1aa01489b46240284562ab7) ) - ROM_LOAD( "30029-03.m6", 0x0400, 0x0400, NO_DUMP ) - ROM_LOAD( "30030-03.l6", 0x0800, 0x0400, CRC(aa1b45ab) SHA1(1ddb64d4ec92a1383866daaefa556499837decd1) ) - - ROM_REGION( 0x0200, REGION_USER1, 0 ) - ROM_LOAD( "30024-01.p8", 0x0000, 0x0200, CRC(e71d2e22) SHA1(434c3a8237468604cce7feb40e6061d2670013b3) ) /* SYNC */ -ROM_END - - -ROM_START( ultratnk ) - ROM_REGION( 0x4000, REGION_CPU1, 0 ) - ROM_LOAD_NIB_LOW ( "030180.n1", 0x3000, 0x0800, CRC(b6aa6056) SHA1(6de094017b5d87a238053fac88129d20260f8222) ) - ROM_LOAD_NIB_HIGH( "030181.k1", 0x3000, 0x0800, CRC(17145c97) SHA1(afe0c9c562c27cd1fba57ea83377b0a4c12496db) ) - ROM_LOAD_NIB_LOW ( "030182.m1", 0x3800, 0x0800, CRC(034366a2) SHA1(dc289ce4c79e9937977ca8804ce07b4c8e40e969) ) - ROM_LOAD_NIB_HIGH( "030183.l1", 0x3800, 0x0800, CRC(be141602) SHA1(17aad9bab9bf6bd22dc3c2214b049bbd68c87380) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* playfield */ - ROM_LOAD_NIB_HIGH( "30172-01.j6", 0x0000, 0x0200, CRC(1d364b23) SHA1(44c5792ed3f33f40cd8632718b0e82152559ecdf) ) - ROM_LOAD_NIB_LOW ( "30173-01.h6", 0x0000, 0x0200, CRC(5c32f331) SHA1(c1d675891490fbc533eaa0da57545398d7325df8) ) - - ROM_REGION( 0x1000, REGION_GFX2, ROMREGION_DISPOSE ) /* motion */ - ROM_LOAD( "30174-01.n6", 0x0000, 0x0400, CRC(d0e20e73) SHA1(0df1ed4a73255032bb809fb4d0a4bf3f151c749d) ) - ROM_LOAD( "30175-01.m6", 0x0400, 0x0400, CRC(a47459c9) SHA1(4ca92edc172fbac923ba71731a25546c04ffc7b0) ) - ROM_LOAD( "30176-01.l6", 0x0800, 0x0400, CRC(1cc7c2dd) SHA1(7f8aebe8375751183afeae35ea2d241d22ee7a4f) ) - ROM_LOAD( "30177-01.k6", 0x0c00, 0x0400, CRC(3a91b09f) SHA1(1e713cb612eb7d78fc4a003e4e60308f62e0b169) ) - - ROM_REGION( 0x0020, REGION_PROMS, 0 ) - ROM_LOAD( "30218-01.j10", 0x0000, 0x0020, CRC(d7a2c7b4) SHA1(7453921ecb6268b604dee3743f6e217db19c9871) ) - - ROM_REGION( 0x0200, REGION_USER1, 0 ) - ROM_LOAD( "30024-01.p8", 0x0000, 0x0200, CRC(e71d2e22) SHA1(434c3a8237468604cce7feb40e6061d2670013b3) ) /* SYNC */ -ROM_END - - -GAME( 1977, sprint4, 0, sprint4, sprint4, 0, ROT180, "Atari", "Sprint 4 (set 1)", 0 ) /* large cars */ -GAME( 1977, sprint4a, sprint4, sprint4, sprint4, 0, ROT180, "Atari", "Sprint 4 (set 2)", 0 ) /* small cars */ -GAME( 1978, ultratnk, 0, ultratnk, ultratnk, 0, ROT0, "Atari", "Ultra Tank", 0 ) diff --git a/src/drivers/spy.c b/src/drivers/spy.c deleted file mode 100644 index a2e33587c..000000000 --- a/src/drivers/spy.c +++ /dev/null @@ -1,656 +0,0 @@ -/*************************************************************************** - -S.P.Y. (c) 1989 Konami - -Similar to Bottom of the Ninth - -driver by Nicola Salmoria - - -Revisions: - -05-10-2002 Acho A. Tang -- simulated PMCU protection(guess only) -- changed priority scheme to fix graphics in 3D levels -- fixed crashes caused by bank switching -- disabled logging and debug messages - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "vidhrdw/konamiic.h" -#include "sound/3812intf.h" -#include "sound/k007232.h" - - -VIDEO_START( spy ); -VIDEO_UPDATE( spy ); - -static UINT8 *pmcram; - - -static INTERRUPT_GEN( spy_interrupt ) -{ - if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(0, 0, HOLD_LINE); -} - - -static int rambank,pmcbank; -static unsigned char *ram; - -static READ8_HANDLER( spy_bankedram1_r ) -{ - if (rambank & 1) - { - return paletteram_r(offset); - } - else if (rambank & 2) - { - if (pmcbank) - { - //logerror("%04x read pmcram %04x\n",activecpu_get_pc(),offset); - return pmcram[offset]; - } - else - { - //logerror("%04x read pmc internal ram %04x\n",activecpu_get_pc(),offset); - return 0; - } - } - else - return ram[offset]; -} - -static WRITE8_HANDLER( spy_bankedram1_w ) -{ - if (rambank & 1) - { - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - } - else if (rambank & 2) - { - if (pmcbank) - { - //logerror("%04x pmcram %04x = %02x\n",activecpu_get_pc(),offset,data); - pmcram[offset] = data; - } - //else - //logerror("%04x pmc internal ram %04x = %02x\n",activecpu_get_pc(),offset,data); - } - else - ram[offset] = data; -} - -/* -this is the data written to internal ram on startup: -00: e7 7e 38 fc 08 -01: df 36 38 dc 00 -02: df 12 3a dc 00 -03: df 00 38 dc 08 -04: 1f 7e 00 db 00 -05: 26 fe 00 ff 0c -06: 89 03 34 fc 0d -07: 81 03 34 fc 09 -08: 81 03 34 fc 09 -09: 81 03 34 fc 09 -0a: 81 03 2f fc 09 -0b: cc 36 0e d9 08 -0c: 84 7e 00 ab 0c -0d: 5f 7e 03 cd 08 -0e: 7f 80 fe ef 08 -0f: 5f 7e 0f fd 08 -10: e7 7e 38 fc 08 -11: df 00 3a dc 00 -12: df 12 0e d9 08 -13: df ec 10 e0 0c -14: 1f fe 03 e0 0c -15: df fe 03 e0 0c -16: dc 5e 3e fc 08 -17: df 12 2b d9 08 -18: 67 25 38 fc 0c -19: df 12 3c dc 00 -1a: df 36 00 db 00 -1b: c1 14 00 fb 08 -1c: c1 34 38 fc 08 -1d: c5 22 37 dc 00 -1e: cd 12 3c dc 04 -1f: c5 46 3b dc 00 -20: cd 36 00 db 04 -21: 49 16 ed f9 0c -22: c9 18 ea f9 0c -23: dc 12 2a f9 08 -24: cc 5a 26 f9 08 -25: 5f 7e 18 fd 08 -26: 5a 7e 32 f8 08 -27: 84 6c 33 9c 0c -28: cc 00 0e d9 08 -29: 5f 7e 14 fd 08 -2a: 0a 7e 24 fd 08 -2b: c5 ec 0d e0 0c -2c: 5f 7e 28 fd 08 -2d: dc 16 00 fb 08 -2e: dc 44 22 fd 08 -2f: cd fe 02 e0 0c -30: 84 7e 00 bb 0c -31: 5a 7e 00 73 08 -32: 84 7e 00 9b 0c -33: 5a 7e 00 36 08 -34: 81 03 00 fb 09 -35: 81 03 00 fb 09 -36: 81 03 00 fe 09 -37: cd fe 01 e0 0c -38: 84 7e 00 ab 0c -39: 5f 7e 00 db 00 -3a: 84 7e 3f ad 0c -3b: cd ec 01 e0 0c -3c: 84 6c 00 ab 0c -3d: 5f 7e 00 db 00 -3e: 84 6c 00 ab 0c -3f: 5f 7e 00 ce 08 -*/ - -static WRITE8_HANDLER( bankswitch_w ) -{ - unsigned char *rom = memory_region(REGION_CPU1); - int offs; - - /* bit 0 = RAM bank? */ -if ((data & 1) == 0) popmessage("bankswitch RAM bank 0"); - - /* bit 1-4 = ROM bank */ - if (data & 0x10) offs = 0x20000 + (data & 0x06) * 0x1000; - else offs = 0x10000 + (data & 0x0e) * 0x1000; - memory_set_bankptr(1,&rom[offs]); -} - -//AT -void spy_collision(void) -{ -#define MAX_SPRITES 64 -#define DEF_NEAR_PLANE 0x6400 -#define NEAR_PLANE_ZOOM 0x0100 -#define FAR_PLANE_ZOOM 0x0000 - - int op1, x1, w1, z1, d1, y1, h1; - int op2, x2, w2, z2, d2, y2, h2; - int mode, i, loopend, nearplane; - - mode = pmcram[0x1]; - op1 = pmcram[0x2]; - if (op1 == 1) - { - x1 = (pmcram[0x3]<<8) + pmcram[0x4]; - w1 = (pmcram[0x5]<<8) + pmcram[0x6]; - z1 = (pmcram[0x7]<<8) + pmcram[0x8]; - d1 = (pmcram[0x9]<<8) + pmcram[0xa]; - y1 = (pmcram[0xb]<<8) + pmcram[0xc]; - h1 = (pmcram[0xd]<<8) + pmcram[0xe]; - - for (i=16; i<14*MAX_SPRITES + 2; i+=14) - { - op2 = pmcram[i]; - if (op2 || mode==0x0c) - { - x2 = (pmcram[i+0x1]<<8) + pmcram[i+0x2]; - w2 = (pmcram[i+0x3]<<8) + pmcram[i+0x4]; - z2 = (pmcram[i+0x5]<<8) + pmcram[i+0x6]; - d2 = (pmcram[i+0x7]<<8) + pmcram[i+0x8]; - y2 = (pmcram[i+0x9]<<8) + pmcram[i+0xa]; - h2 = (pmcram[i+0xb]<<8) + pmcram[i+0xc]; -/* - The mad scientist's laser truck has both a high sprite center and a small height value. - It has to be measured from the ground to detect correctly. -*/ - if (w2==0x58 && d2==0x04 && h2==0x10 && y2==0x30) h2 = y2; - - // what other sprites fall into: - if ( (abs(x1-x2) 1) - { -/* - The PMCU also projects geometries to screen coordinates. Unfortunately I'm unable to figure - the scale factors from the PMCU code. Plugging 0 and 0x100 to the far and near planes seems - to do the trick though. -*/ - loopend = (pmcram[0]<<8) + pmcram[1]; - nearplane = (pmcram[2]<<8) + pmcram[3]; - - // fail safe - if (loopend > MAX_SPRITES) loopend = MAX_SPRITES; - if (!nearplane) nearplane = DEF_NEAR_PLANE; - - loopend = (loopend<<1) + 4; - - for (i=4; i> 8; - pmcram[i+1] = op2 & 0xff; - } - - memset(pmcram+loopend, 0, 0x800-loopend); // clean up for next frame - } -} -//ZT - -static WRITE8_HANDLER( spy_3f90_w ) -{ - extern int spy_video_enable; - static int old; - - /********************************************************************* - * - * Signals, from schematic: - * Bit 0 - CTR1 0x01 - * Bit 1 - CTR2 0x02 - * Bit 2 - CHA-RD 0x04 - * Bit 3 - TV-KILL 0x08 +TV-KILL & COLORBLK to pin 7 of - * 052535 video chips - * - * Bit 4 - COLORBK/RVBK 0x10 - * Bit 5 - PMCBK 0x20 GX857 053180 PAL20P Pin 7 (MCE1) - * Bit 6 - PMC-START 0x40 PMC START - * Bit 7 - PMC-BK 0x80 PMC BK - * - * PMC takes AB0-AB12, D0-D7 from 6809E, outputs EA0-EA10, ED0-ED7, - * tied to A and D bus of 2128SL - * - * See "MCPU" page of S.P.Y schematics for more... - * - * PMC ERWE -> ~WR of 2128SL - * PMC ERCS -> ~CE of 2128SL - * PMC EROE -> ~OE of 2128SL - * - * PMCOUTO -> PMCFIRQ -> 6809E ~FIRQ and PORT4, bit 0x08 - * - * PMC selected by PMC/RVRAMCS signal: pin 16 of PAL20P 05318 - * - * AB0xC -> 0x1000, so if address & 0x1000, appears PMC is selected. - * - * Other apparent selects: - * - * 0x0800 -> COLORCS (color enable?) - * 0x2000 -> ~CS1 on 6264W - * 0x4000 -> ~OE on S63 27512 - * 0x8000 -> ~OE on S22 27512 - * - ********************************************************************/ - - /* bits 0/1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 2 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE); - - /* bit 3 = disable video */ - spy_video_enable = ~(data & 0x08); - - /* bit 4 = read RAM at 0000 (if set) else read color palette RAM */ - /* bit 5 = PMCBK */ - rambank = (data & 0x30) >> 4; - /* bit 7 = PMC-BK */ - pmcbank = (data & 0x80) >> 7; - -//logerror("%04x: 3f90_w %02x\n",activecpu_get_pc(),data); - /* bit 6 = PMC-START */ - if ((data & 0x40) && !(old & 0x40)) - { - /* we should handle collision here */ -//AT -/* -int i; - -logerror("collision test:\n"); -for (i = 0;i < 0xfe;i++) -{ - logerror("%02x ",pmcram[i]); - if (i == 0x0f || (i > 0x10 && (i - 0x10) % 14 == 13)) - logerror("\n"); -} -*/ - spy_collision(); -//ZT - cpunum_set_input_line(0,M6809_FIRQ_LINE,HOLD_LINE); - } - - old = data; -} - - -static WRITE8_HANDLER( spy_sh_irqtrigger_w ) -{ - cpunum_set_input_line_and_vector(1,0,HOLD_LINE,0xff); -} - -static WRITE8_HANDLER( sound_bank_w ) -{ - int bank_A,bank_B; - - bank_A = (data >> 0) & 0x03; - bank_B = (data >> 2) & 0x03; - K007232_set_bank(0,bank_A,bank_B); - bank_A = (data >> 4) & 0x03; - bank_B = (data >> 6) & 0x03; - K007232_set_bank(1,bank_A,bank_B); -} - - - -static ADDRESS_MAP_START( spy_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(spy_bankedram1_r) - AM_RANGE(0x0800, 0x1aff) AM_READ(MRA8_RAM) - AM_RANGE(0x3fd0, 0x3fd0) AM_READ(input_port_4_r) - AM_RANGE(0x3fd1, 0x3fd1) AM_READ(input_port_0_r) - AM_RANGE(0x3fd2, 0x3fd2) AM_READ(input_port_1_r) - AM_RANGE(0x3fd3, 0x3fd3) AM_READ(input_port_2_r) - AM_RANGE(0x3fe0, 0x3fe0) AM_READ(input_port_3_r) - AM_RANGE(0x2000, 0x5fff) AM_READ(K052109_051960_r) - AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spy_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(spy_bankedram1_w) AM_BASE(&ram) - AM_RANGE(0x0800, 0x1aff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x3f80, 0x3f80) AM_WRITE(bankswitch_w) - AM_RANGE(0x3f90, 0x3f90) AM_WRITE(spy_3f90_w) - AM_RANGE(0x3fa0, 0x3fa0) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x3fb0, 0x3fb0) AM_WRITE(soundlatch_w) - AM_RANGE(0x3fc0, 0x3fc0) AM_WRITE(spy_sh_irqtrigger_w) - AM_RANGE(0x2000, 0x5fff) AM_WRITE(K052109_051960_w) - AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spy_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xa000, 0xa00d) AM_READ(K007232_read_port_0_r) - AM_RANGE(0xb000, 0xb00d) AM_READ(K007232_read_port_1_r) - AM_RANGE(0xc000, 0xc000) AM_READ(YM3812_status_port_0_r) - AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spy_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w) - AM_RANGE(0xa000, 0xa00d) AM_WRITE(K007232_write_port_0_w) - AM_RANGE(0xb000, 0xb00d) AM_WRITE(K007232_write_port_1_w) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM3812_control_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM3812_write_port_0_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( spy ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 */ - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* button 3 */ - - PORT_START - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "Invalid" ) - - PORT_START - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x18, 0x08, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x18, "10k and every 20k" ) - PORT_DIPSETTING( 0x10, "20k and every 30k" ) - PORT_DIPSETTING( 0x08, "20k only" ) - PORT_DIPSETTING( 0x00, "30k only" ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL ) /* PMCFIRQ signal from the PMC */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Continues ) ) - PORT_DIPSETTING( 0x80, "Unlimited" ) - PORT_DIPSETTING( 0x00, "5 Times" ) -INPUT_PORTS_END - - - -static void volume_callback0(int v) -{ - K007232_set_volume(0,0,(v >> 4) * 0x11,0); - K007232_set_volume(0,1,0,(v & 0x0f) * 0x11); -} - -static void volume_callback1(int v) -{ - K007232_set_volume(1,0,(v >> 4) * 0x11,0); - K007232_set_volume(1,1,0,(v & 0x0f) * 0x11); -} - -static struct K007232_interface k007232_interface_1 = -{ - REGION_SOUND1, - volume_callback0 -}; - -static struct K007232_interface k007232_interface_2 = -{ - REGION_SOUND2, - volume_callback1 -}; - - -static void irqhandler(int linestate) -{ - cpunum_set_input_line(1, INPUT_LINE_NMI, linestate); -} - -static struct YM3812interface ym3812_interface = -{ - irqhandler -}; - - - -static MACHINE_DRIVER_START( spy ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, 3000000) /* ? */ - MDRV_CPU_PROGRAM_MAP(spy_readmem,spy_writemem) - MDRV_CPU_VBLANK_INT(spy_interrupt,1) - - MDRV_CPU_ADD(Z80, 3579545) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(spy_sound_readmem,spy_sound_writemem) - /* nmi by the sound chip */ - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(1024) - - MDRV_VIDEO_START(spy) - MDRV_VIDEO_UPDATE(spy) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM3812, 3579545) - MDRV_SOUND_CONFIG(ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_1) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) - - MDRV_SOUND_ADD(K007232, 3579545) - MDRV_SOUND_CONFIG(k007232_interface_2) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( spy ) - ROM_REGION( 0x29000, REGION_CPU1, 0 ) /* code + banked roms + space for banked ram */ - ROM_LOAD( "857n03.bin", 0x10000, 0x10000, CRC(97993b38) SHA1(0afd561bc85fcbfe30f2d16807424ceec7188ce7) ) - ROM_LOAD( "857n02.bin", 0x20000, 0x08000, CRC(31a97efe) SHA1(6c9ec3954e4d16634bf95835b8b404d3a6ef6e24) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "857d01.bin", 0x0000, 0x8000, CRC(aad4210f) SHA1(bb40b8673939b5ce51012606da86b4dcbfc52a57) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "857b09.bin", 0x00000, 0x40000, CRC(b8780966) SHA1(6c255f1e4d1398fa9010a1ae0f5172dc524df109) ) /* characters */ - ROM_LOAD( "857b08.bin", 0x40000, 0x40000, CRC(3e4d8d50) SHA1(70f45a725bf1e9d15285ffb6b280945f7ce7faf0) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "857b06.bin", 0x00000, 0x80000, CRC(7b515fb1) SHA1(3830649d47964940023760b76e2bf94bb9163f23) ) /* sprites */ - ROM_LOAD( "857b05.bin", 0x80000, 0x80000, CRC(27b0f73b) SHA1(6b6a3da11c3005e3a62e6280818c18ae2ea31800) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "857a10.bin", 0x0000, 0x0100, CRC(32758507) SHA1(c21f89ad253502968a755fb0d23da98319f9cd93) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 #0 */ - ROM_LOAD( "857b07.bin", 0x00000, 0x40000, CRC(ce3512d4) SHA1(1e7c3feabfc3ac89056982b76de39e283cf5894d) ) - - ROM_REGION( 0x40000, REGION_SOUND2, 0 ) /* samples for 007232 #1 */ - ROM_LOAD( "857b04.bin", 0x00000, 0x40000, CRC(20b83c13) SHA1(63062f1c0a9adbbced3d3d73682a2cd1217bee7d) ) -ROM_END - -ROM_START( spyu ) - ROM_REGION( 0x29000, REGION_CPU1, 0 ) /* code + banked roms + space for banked ram */ - ROM_LOAD( "857m03.bin", 0x10000, 0x10000, CRC(3bd87fa4) SHA1(257371ef31c8adcdc04f46e989b7a2f3531c2ab1) ) - ROM_LOAD( "857m02.bin", 0x20000, 0x08000, CRC(306cc659) SHA1(91d150b8d320bf19c12bc46103ffdffacf4387c3) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Z80 code */ - ROM_LOAD( "857d01.bin", 0x0000, 0x8000, CRC(aad4210f) SHA1(bb40b8673939b5ce51012606da86b4dcbfc52a57) ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "857b09.bin", 0x00000, 0x40000, CRC(b8780966) SHA1(6c255f1e4d1398fa9010a1ae0f5172dc524df109) ) /* characters */ - ROM_LOAD( "857b08.bin", 0x40000, 0x40000, CRC(3e4d8d50) SHA1(70f45a725bf1e9d15285ffb6b280945f7ce7faf0) ) - - ROM_REGION( 0x100000, REGION_GFX2, 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */ - ROM_LOAD( "857b06.bin", 0x00000, 0x80000, CRC(7b515fb1) SHA1(3830649d47964940023760b76e2bf94bb9163f23) ) /* sprites */ - ROM_LOAD( "857b05.bin", 0x80000, 0x80000, CRC(27b0f73b) SHA1(6b6a3da11c3005e3a62e6280818c18ae2ea31800) ) - - ROM_REGION( 0x0200, REGION_PROMS, 0 ) - ROM_LOAD( "857a10.bin", 0x0000, 0x0100, CRC(32758507) SHA1(c21f89ad253502968a755fb0d23da98319f9cd93) ) /* priority encoder (not used) */ - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* samples for 007232 #0 */ - ROM_LOAD( "857b07.bin", 0x00000, 0x40000, CRC(ce3512d4) SHA1(1e7c3feabfc3ac89056982b76de39e283cf5894d) ) - - ROM_REGION( 0x40000, REGION_SOUND2, 0 ) /* samples for 007232 #1 */ - ROM_LOAD( "857b04.bin", 0x00000, 0x40000, CRC(20b83c13) SHA1(63062f1c0a9adbbced3d3d73682a2cd1217bee7d) ) -ROM_END - - - -static void gfx_untangle(void) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - -static DRIVER_INIT( spy ) -{ - paletteram = &memory_region(REGION_CPU1)[0x28000]; - pmcram = &memory_region(REGION_CPU1)[0x28800]; - gfx_untangle(); -} - - - -GAME( 1989, spy, 0, spy, spy, spy, ROT0, "Konami", "S.P.Y. - Special Project Y (World ver. N)", 0) -GAME( 1989, spyu, spy, spy, spy, spy, ROT0, "Konami", "S.P.Y. - Special Project Y (US ver. M)", 0) diff --git a/src/drivers/stactics.c b/src/drivers/stactics.c deleted file mode 100644 index 7ed58b508..000000000 --- a/src/drivers/stactics.c +++ /dev/null @@ -1,315 +0,0 @@ -/**************************************************************************** - -Sega "Space Tactics" Driver - -Frank Palazzolo (palazzol@home.com) - -Master processor - Intel 8080A - -Memory Map: - -0000-2fff ROM R -4000-47ff RAM R/W -5000-5fff switches/status R -6000-6fff dips sw R -6000-600f Coin rjct/palette select W -6010-601f sound triggers W -6020-602f lamp latch W -6030-603f speed latch W -6040-605f shot related W -6060-606f score display W -60a0-60e0 sound triggers2 W -7000-7fff RNG/swit R LS Nibble are a VBlank counter - used as a RNG -8000-8fff swit/stat R -8000-8fff offset RAM W -9000-9fff V pos reg. R Reads counter from an encoder wheel -a000-afff H pos reg. R Reads counter from an encoder wheel -b000-bfff VRAM B R/W alphanumerics, bases, barrier, - enemy bombs -d000-dfff VRAM D R/W furthest aliens (scrolling) -e000-efff VRAM E R/W middle aliens (scrolling) -f000-ffff VRAM F R/W closest aliens (scrolling) - --------------------------------------------------------------------- - -At this time, emulation is missing: - -Lamps (Credit, Barrier, and 5 lamps for firing from the bases) -Sound (all discrete and a 76477) -Verify Color PROM resistor values (Last 8 colors) -Verify Bar graph displays - -****************************************************************************/ - -#include "driver.h" - -/* Defined in machine/stactics.c */ -READ8_HANDLER( stactics_port_0_r ); -READ8_HANDLER( stactics_port_2_r ); -READ8_HANDLER( stactics_port_3_r ); -READ8_HANDLER( stactics_vert_pos_r ); -READ8_HANDLER( stactics_horiz_pos_r ); -INTERRUPT_GEN( stactics_interrupt ); -WRITE8_HANDLER( stactics_coin_lockout_w ); -extern unsigned char *stactics_motor_on; - -/* Defined in vidhrdw/stactics.c */ -VIDEO_START( stactics ); -VIDEO_UPDATE( stactics ); -extern unsigned char *stactics_scroll_ram; -extern unsigned char *stactics_videoram_b; -extern unsigned char *stactics_chardata_b; -extern unsigned char *stactics_videoram_d; -extern unsigned char *stactics_chardata_d; -extern unsigned char *stactics_videoram_e; -extern unsigned char *stactics_chardata_e; -extern unsigned char *stactics_videoram_f; -extern unsigned char *stactics_chardata_f; -extern unsigned char *stactics_display_buffer; - -PALETTE_INIT( stactics ); - -WRITE8_HANDLER( stactics_palette_w ); -WRITE8_HANDLER( stactics_scroll_ram_w ); -WRITE8_HANDLER( stactics_speed_latch_w ); -WRITE8_HANDLER( stactics_shot_trigger_w ); -WRITE8_HANDLER( stactics_shot_flag_clear_w ); - -WRITE8_HANDLER( stactics_videoram_b_w ); -WRITE8_HANDLER( stactics_chardata_b_w ); -WRITE8_HANDLER( stactics_videoram_d_w ); -WRITE8_HANDLER( stactics_chardata_d_w ); -WRITE8_HANDLER( stactics_videoram_e_w ); -WRITE8_HANDLER( stactics_chardata_e_w ); -WRITE8_HANDLER( stactics_videoram_f_w ); -WRITE8_HANDLER( stactics_chardata_f_w ); - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x47ff) AM_READ(MRA8_RAM) - AM_RANGE(0x5000, 0x5fff) AM_READ(input_port_0_r) - AM_RANGE(0x6000, 0x6fff) AM_READ(input_port_1_r) - AM_RANGE(0x7000, 0x7fff) AM_READ(stactics_port_2_r) - AM_RANGE(0x8000, 0x8fff) AM_READ(stactics_port_3_r) - AM_RANGE(0x9000, 0x9fff) AM_READ(stactics_vert_pos_r) - AM_RANGE(0xa000, 0xafff) AM_READ(stactics_horiz_pos_r) - - AM_RANGE(0xb000, 0xb3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xb800, 0xbfff) AM_READ(MRA8_RAM) - - AM_RANGE(0xd000, 0xd3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xd600, 0xd7ff) AM_READ(MRA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xd800, 0xdfff) AM_READ(MRA8_RAM) - - AM_RANGE(0xe000, 0xe3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe600, 0xe7ff) AM_READ(MRA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xe800, 0xefff) AM_READ(MRA8_RAM) - - AM_RANGE(0xf000, 0xf3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf600, 0xf7ff) AM_READ(MRA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x4000, 0x47ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x6000, 0x6001) AM_WRITE(stactics_coin_lockout_w) - AM_RANGE(0x6006, 0x6007) AM_WRITE(stactics_palette_w) - /* AM_RANGE(0x6010, 0x601f) AM_WRITE(stactics_sound_w) */ - AM_RANGE(0x6016, 0x6016) AM_WRITE(MWA8_RAM) AM_BASE(&stactics_motor_on) /* Note: This overlaps rocket sound */ - /* AM_RANGE(0x6020, 0x602f) AM_WRITE(stactics_lamp_latch_w) */ - AM_RANGE(0x6030, 0x603f) AM_WRITE(stactics_speed_latch_w) - AM_RANGE(0x6040, 0x604f) AM_WRITE(stactics_shot_trigger_w) - AM_RANGE(0x6050, 0x605f) AM_WRITE(stactics_shot_flag_clear_w) - AM_RANGE(0x6060, 0x606f) AM_WRITE(MWA8_RAM) AM_BASE(&stactics_display_buffer) - /* AM_RANGE(0x60a0, 0x60ef) AM_WRITE(stactics_sound2_w) */ - - AM_RANGE(0x8000, 0x8fff) AM_WRITE(stactics_scroll_ram_w) AM_BASE(&stactics_scroll_ram) - - AM_RANGE(0xb000, 0xb3ff) AM_WRITE(stactics_videoram_b_w) AM_BASE(&stactics_videoram_b) AM_SIZE(&videoram_size) - AM_RANGE(0xb400, 0xb7ff) AM_WRITE(MWA8_RAM) /* Unused, but initialized */ - AM_RANGE(0xb800, 0xbfff) AM_WRITE(stactics_chardata_b_w) AM_BASE(&stactics_chardata_b) - - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_NOP) /* according to the schematics, nothing is mapped here */ - /* but, the game still tries to clear this out */ - - AM_RANGE(0xd000, 0xd3ff) AM_WRITE(stactics_videoram_d_w) AM_BASE(&stactics_videoram_d) - AM_RANGE(0xd400, 0xd7ff) AM_WRITE(MWA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xd800, 0xdfff) AM_WRITE(stactics_chardata_d_w) AM_BASE(&stactics_chardata_d) - - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(stactics_videoram_e_w) AM_BASE(&stactics_videoram_e) - AM_RANGE(0xe400, 0xe7ff) AM_WRITE(MWA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xe800, 0xefff) AM_WRITE(stactics_chardata_e_w) AM_BASE(&stactics_chardata_e) - - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(stactics_videoram_f_w) AM_BASE(&stactics_videoram_f) - AM_RANGE(0xf400, 0xf7ff) AM_WRITE(MWA8_RAM) /* Used as scratch RAM, high scores, etc. */ - AM_RANGE(0xf800, 0xffff) AM_WRITE(stactics_chardata_f_w) AM_BASE(&stactics_chardata_f) - -ADDRESS_MAP_END - -INPUT_PORTS_START( stactics ) - - PORT_START /* IN0 */ - /*PORT_BIT (0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) Motor status. see stactics_port_0_r */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON6 ) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON7 ) - - PORT_START /* IN1 */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x40, 0x00, "High Score Initial Entry" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN2 */ - /* This is accessed by stactics_port_2_r() */ - /*PORT_BIT (0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) Random number generator */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* IN3 */ - /* This is accessed by stactics_port_3_r() */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) - /* PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) */ - PORT_DIPNAME( 0x04, 0x04, "Number of Barriers" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x08, 0x08, "Bonus Barriers" ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x10, 0x00, "Extended Play" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - /* PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) */ - - PORT_START /* FAKE */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY -INPUT_PORTS_END - -/* For the character graphics */ - -static const gfx_layout gfxlayout = -{ - 8,8, - 256, - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -/* For the LED Fire Beam (made up) */ - -static const gfx_layout firelayout = -{ - 16,9, - 256, - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8 }, - 8*9 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { 0, 0, &gfxlayout, 0, 64*4 }, /* Dynamically decoded from RAM */ - { 0, 0, &gfxlayout, 1*2*16, 64*4 }, /* Dynamically decoded from RAM */ - { 0, 0, &gfxlayout, 2*2*16, 64*4 }, /* Dynamically decoded from RAM */ - { 0, 0, &gfxlayout, 3*2*16, 64*4 }, /* Dynamically decoded from RAM */ - { 0, 0, &firelayout, 0, 64*4 }, /* LED Fire beam (synthesized gfx) */ - { 0, 0, &gfxlayout, 0, 64*4 }, /* LED and Misc. Display characters */ - { -1 } -}; - -static MACHINE_DRIVER_START( stactics ) - - /* basic machine hardware */ - MDRV_CPU_ADD(8080, 1933560) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(stactics_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(16*4*4*2) - - MDRV_PALETTE_INIT(stactics) - MDRV_VIDEO_START(stactics) - MDRV_VIDEO_UPDATE(stactics) - - /* sound hardware */ -MACHINE_DRIVER_END - - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( stactics ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-218x", 0x0000, 0x0800, CRC(b1186ad2) SHA1(88929a183ac0499619b3e07241f3b5a0c89bdab1) ) - ROM_LOAD( "epr-219x", 0x0800, 0x0800, CRC(3b86036d) SHA1(6ad5e14dcfdbc6d2a0a32ae7f18ce41ab4b51eec) ) - ROM_LOAD( "epr-220x", 0x1000, 0x0800, CRC(c58702da) SHA1(93936c46810722d435f9ddb0641defb741743dee) ) - ROM_LOAD( "epr-221x", 0x1800, 0x0800, CRC(e327639e) SHA1(024929b65c71eaeb6d234a14d7535a7d5b98b8d3) ) - ROM_LOAD( "epr-222y", 0x2000, 0x0800, CRC(24dd2bcc) SHA1(f77c59beccc1a77e3bfc2928ff532d6e221ff42d) ) - ROM_LOAD( "epr-223x", 0x2800, 0x0800, CRC(7fef0940) SHA1(5b2af55f75ef0130f9202b6a916a96dbd601fcfa) ) - - ROM_REGION( 0x1060, REGION_GFX1, ROMREGION_DISPOSE ) /* gfx decoded in vh_start */ - ROM_LOAD( "epr-217", 0x0000, 0x0800, CRC(38259f5f) SHA1(1f4182ffc2d78fca22711526bb2ae2cfe040173c) ) /* LED fire beam data */ - ROM_LOAD( "pr55", 0x0800, 0x0800, CRC(f162673b) SHA1(83743780b6c1f8014df24fa0650000b7cb137d92) ) /* timing PROM (unused) */ - ROM_LOAD( "pr65", 0x1000, 0x0020, CRC(a1506b9d) SHA1(037c3db2ea40eca459e8acba9d1506dd28d72d10) ) /* timing PROM (unused) */ - ROM_LOAD( "pr66", 0x1020, 0x0020, CRC(78dcf300) SHA1(37034cc0cfa4a8ec47937a2a34b77ec56b387a9b) ) /* timing PROM (unused) */ - ROM_LOAD( "pr67", 0x1040, 0x0020, CRC(b27874e7) SHA1(c24bc78c4b2ae01aaed5d994ce2e7c5e0f2eece8) ) /* LED timing ROM (unused) */ - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "pr54", 0x0000, 0x0800, CRC(9640bd6e) SHA1(dd12952a6591f2056ac1b5688dca0a3a2ef69f2d) ) /* color/priority prom */ -ROM_END - - - -GAME( 1981, stactics, 0, stactics, stactics, 0, ROT0, "Sega", "Space Tactics", GAME_NO_SOUND ) - diff --git a/src/drivers/starcrus.c b/src/drivers/starcrus.c deleted file mode 100644 index 943669396..000000000 --- a/src/drivers/starcrus.c +++ /dev/null @@ -1,244 +0,0 @@ -/*************************************************************************** - -Ramtek Star Cruiser Driver - -(no known issues) - -Frank Palazzolo -palazzol@home.com - -***************************************************************************/ - -#include "driver.h" -#include "cpu/i8085/i8085.h" -#include "sound/samples.h" - -/* included from vidhrdw/starcrus.c */ -WRITE8_HANDLER( starcrus_s1_x_w ); -WRITE8_HANDLER( starcrus_s1_y_w ); -WRITE8_HANDLER( starcrus_s2_x_w ); -WRITE8_HANDLER( starcrus_s2_y_w ); -WRITE8_HANDLER( starcrus_p1_x_w ); -WRITE8_HANDLER( starcrus_p1_y_w ); -WRITE8_HANDLER( starcrus_p2_x_w ); -WRITE8_HANDLER( starcrus_p2_y_w ); -WRITE8_HANDLER( starcrus_ship_parm_1_w ); -WRITE8_HANDLER( starcrus_ship_parm_2_w ); -WRITE8_HANDLER( starcrus_proj_parm_1_w ); -WRITE8_HANDLER( starcrus_proj_parm_2_w ); -READ8_HANDLER( starcrus_coll_det_r ); -extern VIDEO_START( starcrus ); -extern VIDEO_UPDATE( starcrus ); -extern int p1_sprite; -extern int p2_sprite; -extern int s1_sprite; -extern int s2_sprite; - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_READ(MRA8_ROM) /* Program ROM */ - AM_RANGE(0x1000, 0x10ff) AM_READ(MRA8_RAM) /* RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x0fff) AM_WRITE(MWA8_ROM) /* Program ROM */ - AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) /* RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) - AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r) - AM_RANGE(0x02, 0x02) AM_READ(starcrus_coll_det_r) - AM_RANGE(0x03, 0x03) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(0x00, 0x00) AM_WRITE(starcrus_s1_x_w) - AM_RANGE(0x01, 0x01) AM_WRITE(starcrus_s1_y_w) - AM_RANGE(0x02, 0x02) AM_WRITE(starcrus_s2_x_w) - AM_RANGE(0x03, 0x03) AM_WRITE(starcrus_s2_y_w) - AM_RANGE(0x04, 0x04) AM_WRITE(starcrus_p1_x_w) - AM_RANGE(0x05, 0x05) AM_WRITE(starcrus_p1_y_w) - AM_RANGE(0x06, 0x06) AM_WRITE(starcrus_p2_x_w) - AM_RANGE(0x07, 0x07) AM_WRITE(starcrus_p2_y_w) - AM_RANGE(0x08, 0x08) AM_WRITE(starcrus_ship_parm_1_w) - AM_RANGE(0x09, 0x09) AM_WRITE(starcrus_ship_parm_2_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(starcrus_proj_parm_1_w) - AM_RANGE(0x0b, 0x0b) AM_WRITE(starcrus_proj_parm_2_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( starcrus ) - PORT_START /* player 1 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY /* ccw */ - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* engine */ - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY /* cw */ - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* torpedo */ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* phaser */ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* player 2 */ - PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) /* ccw */ - PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* engine */ - PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) /* cw */ - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* torpedo */ - PORT_BIT (0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* phaser */ - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_DIPNAME ( 0x03, 0x02, DEF_STR( Game_Time ) ) - PORT_DIPSETTING ( 0x03, "60 secs" ) - PORT_DIPSETTING ( 0x02, "90 secs" ) - PORT_DIPSETTING ( 0x01, "120 secs" ) - PORT_DIPSETTING ( 0x00, "150 secs" ) - PORT_DIPNAME ( 0x04, 0x00, DEF_STR( Coinage )) - PORT_DIPSETTING ( 0x04, DEF_STR( 2C_1C )) - PORT_DIPSETTING ( 0x00, DEF_STR( 1C_1C )) - PORT_BIT (0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT (0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_DIPNAME ( 0x20, 0x20, "Mode" ) - PORT_DIPSETTING ( 0x20, DEF_STR( Standard ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Alternate ) ) - PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - - - -static const gfx_layout spritelayout1 = -{ - 16,16, /* 16x16 sprites */ - 4, /* 4 sprites */ - 1, /* 1 bits per pixel */ - { 0 }, /* 1 chip */ - { 0*8+4, 0*8+4, 1*8+4, 1*8+4, 2*8+4, 2*8+4, 3*8+4, 3*8+4, - 4*8+4, 4*8+4, 5*8+4, 5*8+4, 6*8+4, 6*8+4, 7*8+4, 7*8+4 }, - { 0, 0, 1*64, 1*64, 2*64, 2*64, 3*64, 3*64, - 4*64, 4*64, 5*64, 5*64, 6*64, 6*64, 7*64, 7*64 }, - 1 /* every sprite takes 1 consecutive bit */ -}; -static const gfx_layout spritelayout2 = -{ - 16,16, /* 16x16 sprites */ - 4, /* 4 sprites */ - 1, /* 1 bits per pixel */ - { 0 }, /* 1 chip */ - { 0*8+4, 1*8+4, 2*8+4, 3*8+4, 4*8+4, 5*8+4, 6*8+4, 7*8+4, - 8*8+4, 9*8+4, 10*8+4, 11*8+4, 12*8+4, 13*8+4, 14*8+4, 15*8+4 }, - { 0, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, - 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 1 /* every sprite takes 1 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &spritelayout1, 0, 1 }, - { REGION_GFX1, 0x0040, &spritelayout1, 0, 1 }, - { REGION_GFX1, 0x0080, &spritelayout1, 0, 1 }, - { REGION_GFX1, 0x00c0, &spritelayout1, 0, 1 }, - { REGION_GFX2, 0x0000, &spritelayout1, 0, 1 }, - { REGION_GFX2, 0x0040, &spritelayout1, 0, 1 }, - { REGION_GFX2, 0x0080, &spritelayout1, 0, 1 }, - { REGION_GFX2, 0x00c0, &spritelayout1, 0, 1 }, - { REGION_GFX3, 0x0000, &spritelayout2, 0, 1 }, - { REGION_GFX3, 0x0100, &spritelayout2, 0, 1 }, - { REGION_GFX3, 0x0200, &spritelayout2, 0, 1 }, - { REGION_GFX3, 0x0300, &spritelayout2, 0, 1 }, - { -1 } /* end of array */ -}; - - -static unsigned short colortable_source[] = -{ - 0x00, 0x01, /* White on Black */ -}; -static PALETTE_INIT( starcrus ) -{ - palette_set_color(machine,0,0x00,0x00,0x00); /* Black */ - palette_set_color(machine,1,0xff,0xff,0xff); /* White */ - memcpy(colortable,colortable_source,sizeof(colortable_source)); -} - -static const char *starcrus_sample_names[] = -{ - "*starcrus", - "engine.wav", /* engine sound, channel 0 */ - "explos1.wav", /* explosion sound, first part, channel 1 */ - "explos2.wav", /* explosion sound, second part, channel 1 */ - "launch.wav", /* launch sound, channels 2 and 3 */ - 0 /* end of array */ -}; - -static struct Samplesinterface samples_interface = -{ - 4, /* 4 channels */ - starcrus_sample_names -}; - - -static MACHINE_DRIVER_START( starcrus ) - - /* basic machine hardware */ - MDRV_CPU_ADD(8080,9750000/9) /* 8224 chip is a divide by 9 */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2) - MDRV_COLORTABLE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) - - MDRV_PALETTE_INIT(starcrus) - MDRV_VIDEO_START(starcrus) - MDRV_VIDEO_UPDATE(starcrus) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(samples_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - -ROM_START( starcrus ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* code */ - ROM_LOAD( "starcrus.j1", 0x0000, 0x0200, CRC(0ee60a50) SHA1(7419e7cb4c589da53d4a10ad129373502682464e) ) - ROM_LOAD( "starcrus.k1", 0x0200, 0x0200, CRC(a7bc3bc4) SHA1(0e38076e921856608b1dd712687bef1c2522b4b8) ) - ROM_LOAD( "starcrus.l1", 0x0400, 0x0200, CRC(10d233ec) SHA1(8933cf9fc51716a9e8f75a4444e7d7070cf5834d) ) - ROM_LOAD( "starcrus.m1", 0x0600, 0x0200, CRC(2facbfee) SHA1(d78fb38de49da938fce2b55c8decc244efee6f94) ) - ROM_LOAD( "starcrus.n1", 0x0800, 0x0200, CRC(42083247) SHA1(b32d67c914833f18e9955cd1c3cb1d948be0a7d5) ) - ROM_LOAD( "starcrus.p1", 0x0a00, 0x0200, CRC(61dfe581) SHA1(e1802fedf94541e9ccd9786b60e90890485f422f) ) - ROM_LOAD( "starcrus.r1", 0x0c00, 0x0200, CRC(010cdcfe) SHA1(ae76f1739b468e2987ce949470b36f1a873e061d) ) - ROM_LOAD( "starcrus.s1", 0x0e00, 0x0200, CRC(da4e276b) SHA1(3298f7cb259803f118a47292cbb413df253ef74d) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "starcrus.e6", 0x0000, 0x0200, CRC(54887a25) SHA1(562bf85cd063c2cc0a2f803095aaa6138dfb5bff) ) - - ROM_REGION( 0x0200, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "starcrus.l2", 0x0000, 0x0200, CRC(54887a25) SHA1(562bf85cd063c2cc0a2f803095aaa6138dfb5bff) ) - - ROM_REGION( 0x0400, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD( "starcrus.j4", 0x0000, 0x0200, CRC(25f15ae1) SHA1(7528edaa01ad5a167191c7e72394cb6009db1b27) ) - ROM_LOAD( "starcrus.g5", 0x0200, 0x0200, CRC(73b27f6e) SHA1(4a6cf9244556a2c2647d594c7a19fe1a374a57e6) ) -ROM_END - - -GAME( 1977, starcrus, 0, starcrus, starcrus, 0, ROT0, "RamTek", "Star Cruiser", 0 ) diff --git a/src/drivers/starfire.c b/src/drivers/starfire.c deleted file mode 100644 index d9b8148ab..000000000 --- a/src/drivers/starfire.c +++ /dev/null @@ -1,422 +0,0 @@ -/*************************************************************************** - - Star Fire/Fire One system - - driver by Daniel Boris, Olivier Galibert, Aaron Giles - -**************************************************************************** - - Memory map - -**************************************************************************** - - ======================================================================== - MAIN CPU - ======================================================================== - 0000-7FFF R xxxxxxxx Program ROM - 8000-9FFF R/W xxxxxxxx Scratch RAM, actually mapped into low VRAM - 9000 W xxxxxxxx VRAM write control register - W xxx----- (VRAM shift amount 1) - W ---x---- (VRAM write mirror 1) - W ----xxx- (VRAM shift amount 2) - W -------x (VRAM write mirror 2) - 9001 W xxxxxxxx Video control register - W x------- (Color RAM source select) - W -x------ (Palette RAM write enable) - W --x----- (Video RAM write enable) - W ---x---- (Right side mask select) - W ----xxxx (Video RAM ALU operation) - 9800-9807 R xxxxxxxx Input ports - A000-BFFF R/W xxxxxxxx Color RAM - C000-DFFF R/W xxxxxxxx Video RAM, using shift/mirror 1 and color - E000-FFFF R/W xxxxxxxx Video RAM, using shift/mirror 2 - ======================================================================== - Interrupts: - NMI generated once/frame - ======================================================================== - -*************************************************************************** - -Notes: - -starfira has one less rom in total than starfire but everything passes as - ok in the rom test so its probably just an earlier revision or something - -***************************************************************************/ - -#include "driver.h" -#include "includes/starfire.h" - - - -UINT8 *starfire_videoram; -UINT8 *starfire_colorram; - -static UINT8 fireone_select; -static read8_handler input_read; - - - -/************************************* - * - * Video updates - * - *************************************/ - -#define SCANLINE_UPDATE_CHUNK 8 - -static void update_callback(int scanline) -{ - /* update the previous chunk of scanlines */ - starfire_video_update(scanline, SCANLINE_UPDATE_CHUNK); - scanline += SCANLINE_UPDATE_CHUNK; - if (scanline >= Machine->screen[0].height) - scanline = 32; - timer_set(cpu_getscanlinetime(scanline + SCANLINE_UPDATE_CHUNK - 1), scanline, update_callback); -} - - -MACHINE_RESET( starfire ) -{ - timer_set(cpu_getscanlinetime(32 + SCANLINE_UPDATE_CHUNK - 1), 32, update_callback); -} - - - -/************************************* - * - * Scratch RAM, mapped into video RAM - * - *************************************/ - -static WRITE8_HANDLER( starfire_scratch_w ) -{ - /* A12 and A3 select video control registers */ - if ((offset & 0x1008) == 0x1000) - { - switch (offset & 7) - { - case 0: starfire_vidctrl_w(0, data); break; - case 1: starfire_vidctrl1_w(0, data); break; - case 2: - /* Sounds */ - fireone_select = (data & 0x8) ? 0 : 1; - break; - } - } - - /* convert to a videoram offset */ - offset = (offset & 0x31f) | ((offset & 0xe0) << 5); - starfire_videoram[offset] = data; -} - - -static READ8_HANDLER( starfire_scratch_r ) -{ - /* A11 selects input ports */ - if (offset & 0x800) - return (*input_read)(offset); - - /* convert to a videoram offset */ - offset = (offset & 0x31f) | ((offset & 0xe0) << 5); - return starfire_videoram[offset]; -} - - - -/************************************* - * - * Game-specific input handlers - * - *************************************/ - -static READ8_HANDLER( starfire_input_r ) -{ - switch (offset & 15) - { - case 0: return input_port_0_r(0); - case 1: return input_port_1_r(0); /* Note: need to loopback sounds lengths on that one */ - case 5: return input_port_4_r(0); - case 6: return input_port_2_r(0); - case 7: return input_port_3_r(0); - default: return 0xff; - } -} - - -static READ8_HANDLER( fireone_input_r ) -{ - static const UINT8 fireone_paddle_map[64] = - { - 0x00,0x01,0x03,0x02,0x06,0x07,0x05,0x04, - 0x0c,0x0d,0x0f,0x0e,0x0a,0x0b,0x09,0x08, - 0x18,0x19,0x1b,0x1a,0x1e,0x1f,0x1d,0x1c, - 0x14,0x15,0x17,0x16,0x12,0x13,0x11,0x10, - 0x30,0x31,0x33,0x32,0x36,0x37,0x35,0x34, - 0x3c,0x3d,0x3f,0x3e,0x3a,0x3b,0x39,0x38, - 0x28,0x29,0x2b,0x2a,0x2e,0x2f,0x2d,0x2c, - 0x24,0x25,0x27,0x26,0x22,0x23,0x21,0x20 - }; - int temp; - - switch (offset & 15) - { - case 0: return input_port_0_r(0); - case 1: return input_port_1_r(0); - case 2: - temp = fireone_select ? input_port_2_r(0) : input_port_3_r(0); - temp = (temp & 0xc0) | fireone_paddle_map[temp & 0x3f]; - return temp; - default: return 0xff; - } -} - - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x9fff) AM_READ(starfire_scratch_r) - AM_RANGE(0xa000, 0xbfff) AM_READ(starfire_colorram_r) - AM_RANGE(0xc000, 0xffff) AM_READ(starfire_videoram_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x9fff) AM_WRITE(starfire_scratch_w) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(starfire_colorram_w) AM_BASE(&starfire_colorram) - AM_RANGE(0xc000, 0xffff) AM_WRITE(starfire_videoram_w) AM_BASE(&starfire_videoram) -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( starfire ) - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, "Time" ) - PORT_DIPSETTING( 0x00, "90 Sec" ) - PORT_DIPSETTING( 0x01, "80 Sec" ) - PORT_DIPSETTING( 0x02, "70 Sec" ) - PORT_DIPSETTING( 0x03, "60 Sec" ) - PORT_DIPNAME( 0x04, 0x00, "Coin(s) to Start" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPNAME( 0x08, 0x00, "Fuel per Coin" ) - PORT_DIPSETTING( 0x00, "300" ) - PORT_DIPSETTING( 0x08, "600" ) - PORT_DIPNAME( 0x30, 0x00, "Bonus" ) - PORT_DIPSETTING( 0x00, "300 points" ) - PORT_DIPSETTING( 0x10, "500 points" ) - PORT_DIPSETTING( 0x20, "700 points" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x00, "Score Table Hold" ) - PORT_DIPSETTING( 0x00, "fixed length" ) - PORT_DIPSETTING( 0x40, "fixed length+fire" ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - - PORT_START /* IN3 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE - - PORT_START /* IN4 */ /* throttle */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0,255) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE -INPUT_PORTS_END - - -INPUT_PORTS_START( fireone ) - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x03, "2 Coins/1 Player" ) - PORT_DIPSETTING( 0x02, "2 Coins/1 or 2 Players" ) - PORT_DIPSETTING( 0x00, "1 Coin/1 Player" ) - PORT_DIPSETTING( 0x01, "1 Coin/1 or 2 Players" ) - PORT_DIPNAME( 0x0c, 0x0c, "Time" ) - PORT_DIPSETTING( 0x00, "75 Sec" ) - PORT_DIPSETTING( 0x04, "90 Sec" ) - PORT_DIPSETTING( 0x08, "105 Sec" ) - PORT_DIPSETTING( 0x0c, "120 Sec" ) - PORT_DIPNAME( 0x30, 0x00, "Bonus difficulty" ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Hard ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - - PORT_START /* IN2 */ - PORT_BIT( 0x3f, 0x20, IPT_PADDLE ) PORT_MINMAX(0,63) PORT_SENSITIVITY(50) PORT_KEYDELTA(1) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START /* IN3 */ - PORT_BIT( 0x3f, 0x20, IPT_PADDLE ) PORT_MINMAX(0,63) PORT_SENSITIVITY(50) PORT_KEYDELTA(1) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) -INPUT_PORTS_END - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( starfire ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 2500000) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(nmi_line_pulse,1) - - MDRV_SCREEN_REFRESH_RATE(57) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(starfire) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 32, 256-1) - MDRV_PALETTE_LENGTH(64) - - MDRV_VIDEO_START(starfire) - MDRV_VIDEO_UPDATE(starfire) - - /* sound hardware */ -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( starfire ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sfire.1a", 0x0000, 0x0800, CRC(9990af64) SHA1(05eccf1084ace55be9d6cf0fccddcaa18fa5487a) ) - ROM_LOAD( "sfire.2a", 0x0800, 0x0800, CRC(6e17ba33) SHA1(59433696f56018a7b253491b1db3ff45546dcd46) ) - ROM_LOAD( "sfire.1b", 0x1000, 0x0800, CRC(946175d0) SHA1(6a55d9f6031b96e9e05d61d59a23d4fc6df724bf) ) - ROM_LOAD( "sfire.2b", 0x1800, 0x0800, CRC(67be4275) SHA1(dd6232e034030e0c2b4d866fda36cbe22d8518f7) ) - ROM_LOAD( "sfire.1c", 0x2000, 0x0800, CRC(c56b4e07) SHA1(e55ae84c484a78372180783df37750cdad8b04a2) ) - ROM_LOAD( "sfire.2c", 0x2800, 0x0800, CRC(b4b9d3a7) SHA1(8f3e0d67d1e94f6b1c41a78e59ac81f021aa827a) ) - ROM_LOAD( "sfire.1d", 0x3000, 0x0800, CRC(fd52ffb5) SHA1(c1ba2ffb7de0301a962cca2e693bfbbd9838b852) ) - ROM_LOAD( "sfire.2d", 0x3800, 0x0800, CRC(51c69fe3) SHA1(33159cb3ea5029d395fc20916899aa05139c2d51) ) - ROM_LOAD( "sfire.1e", 0x4000, 0x0800, CRC(01994ec8) SHA1(db694f922a98bb0fc585cad83bee8a88d72fca8f) ) - ROM_LOAD( "sfire.2e", 0x4800, 0x0800, CRC(ef3d1b71) SHA1(ca427209194f519b1ac5b94d29c2789445303dc1) ) - ROM_LOAD( "sfire.1f", 0x5000, 0x0800, CRC(af31dc39) SHA1(0dfeff6973fd03e85b08e70c77d212f0bb60121d) ) -ROM_END - -ROM_START( starfira ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "starfire.1a", 0x0000, 0x0800, CRC(6adcd7e7) SHA1(a931fb80e48db3050ce3bc39f455961c0c7c56ce) ) - ROM_LOAD( "starfire.2a", 0x0800, 0x0800, CRC(835c70ea) SHA1(36828735aa48de5e3e973ca1f42ef08537e1c6ce) ) - ROM_LOAD( "starfire.1b", 0x1000, 0x0800, CRC(377afbef) SHA1(97cb5a20aeb8c70670d6db8f41b2abcb181755c6) ) - ROM_LOAD( "starfire.2b", 0x1800, 0x0800, CRC(f3a833cb) SHA1(d2e01806ead71b0946347fd9668fd3f24524734e) ) - ROM_LOAD( "starfire.1c", 0x2000, 0x0800, CRC(db625c1d) SHA1(5d0307258a73b4b82fbe7b10634076412f4ab3c7) ) - ROM_LOAD( "starfire.2c", 0x2800, 0x0800, CRC(68fa2ce6) SHA1(2b32df960bc4ec38f50f0d23ab96becb68bc4034) ) - ROM_LOAD( "starfire.1d", 0x3000, 0x0800, CRC(c6b5f1d1) SHA1(85a3f7ce7a51597609c762c9a809b84922f8a6e5) ) - ROM_LOAD( "starfire.2d", 0x3800, 0x0800, CRC(ab2a36a5) SHA1(debd9503246b4d27c8136bfb60cdffd9107ad95e) ) - ROM_LOAD( "starfire.1e", 0x4000, 0x0800, CRC(1ac8ba8c) SHA1(90c5a8a943edad74141b15e1f145598abce8cb75) ) - ROM_LOAD( "starfire.2e", 0x4800, 0x0800, CRC(ba8434c5) SHA1(1831b291dfe3e4b081e66caa909b8c727bfffa7b) ) -ROM_END - -ROM_START( fireone ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "fo-ic13.7b", 0x0000, 0x0800, CRC(f927f086) SHA1(509db84d781dd2d5aaefd561539738f0db7c4ca5) ) - ROM_LOAD( "fo-ic24.7c", 0x0800, 0x0800, CRC(0d2d8723) SHA1(e9bb2092ce7786016f15e42916ad48ef12735e9c) ) - ROM_LOAD( "fo-ic12.6b", 0x1000, 0x0800, CRC(ac7783d9) SHA1(8bcfcc5d3126382f4ec8904e0435de0931abc41e) ) - ROM_LOAD( "fo-ic23.6c", 0x1800, 0x0800, CRC(15c74ee7) SHA1(0adb87c2471ecbbd18d10579043765ce877dbde7) ) - ROM_LOAD( "fo-ic11.5b", 0x2000, 0x0800, CRC(721930a1) SHA1(826245ffbd399056a74ccd14cd2bd4acd2fb2d24) ) - ROM_LOAD( "fo-ic22.5c", 0x2800, 0x0800, CRC(f0c965b4) SHA1(ffe96e636720325d9a40b729128730446b74435b) ) - ROM_LOAD( "fo-ic10.4b", 0x3000, 0x0800, CRC(27a7b2c0) SHA1(7a8c70e565bdcb6e085e4d283f41c92758640055) ) - ROM_LOAD( "fo-ic21.4c", 0x3800, 0x0800, CRC(b142c857) SHA1(609fbd0c0b5833807fd606284c26ad7cb7e4d742) ) - ROM_LOAD( "fo-ic09.3b", 0x4000, 0x0800, CRC(1c076b1b) SHA1(874c09c81e90e1be869902057b7359e71f77db52) ) - ROM_LOAD( "fo-ic20.3c", 0x4800, 0x0800, CRC(b4ac6e71) SHA1(4731dd6865929b8c9c33cbe4cf1dde23046d6914) ) - ROM_LOAD( "fo-ic08.2b", 0x5000, 0x0800, CRC(5839e2ff) SHA1(9d8a17c5b64cdf5bf222f4dbca48f0210b18e403) ) - ROM_LOAD( "fo-ic19.2c", 0x5800, 0x0800, CRC(9fd85e11) SHA1(f8264357a63f757bc58f3703e60e219d67d0d081) ) - ROM_LOAD( "fo-ic07.1b", 0x6000, 0x0800, CRC(b90baae1) SHA1(c7dedf38e5a1977234f1f745a7aa443f6bf7db52) ) - ROM_LOAD( "fo-ic18.1c", 0x6800, 0x0800, CRC(771ee5ba) SHA1(6577e219386de594dbde8a54d5f5f9657419061a) ) -ROM_END - -ROM_START( starfir2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "sfire2.01", 0x0000, 0x0800, CRC(f75be2f4) SHA1(b15511c345363f45eee0c019aa336a9aa16e63ea) ) - ROM_LOAD( "sfire2.02", 0x0800, 0x0800, CRC(ccf98c6a) SHA1(3e7792aa47750ee19baf1e74016038fe80c92381) ) - ROM_LOAD( "sfire2.03", 0x1000, 0x0800, CRC(604b2d50) SHA1(39d402135aaaa44c1ad05e1665eb6668280fae28) ) - ROM_LOAD( "sfire2.04", 0x1800, 0x0800, CRC(f8a9658f) SHA1(aea97387001183a797375971c7325b4a838ea1d5) ) - ROM_LOAD( "sfire2.05", 0x2000, 0x0800, CRC(acbaf827) SHA1(a546340f8533557a86b589f5011e5af0439e0d4d) ) - ROM_LOAD( "sfire2.06", 0x2800, 0x0800, CRC(3525bb22) SHA1(1a1ca8b5ef1a5584d28644bdc751635aac3fad02) ) - ROM_LOAD( "sfire2.07", 0x3000, 0x0800, CRC(7fce0e54) SHA1(17355fe98cf1511c32e90434960ced7b3f3ecac7) ) - ROM_LOAD( "sfire2.08", 0x3800, 0x0800, CRC(98054c14) SHA1(4a561a9d87be9c5d4283ee78c4cf05c10c979a2f) ) - ROM_LOAD( "sfire2.09", 0x4000, 0x0800, CRC(abaa4144) SHA1(045ebcd38d6a3f75c6d819a42aa1fb92ac84755c) ) - ROM_LOAD( "sfire2.10", 0x4800, 0x0800, CRC(a0b3dadb) SHA1(d86683b528b5fbafad0cdd054940bc04b056b850) ) - ROM_LOAD( "sfire2.11", 0x5000, 0x0800, CRC(a61ebbd2) SHA1(9fdf6558306aebbf5e9e106e4f4f6f7a3e703696) ) - ROM_LOAD( "sfire2.12", 0x5800, 0x0800, CRC(a35ba06d) SHA1(122f1dbc235977367fdd06b7517c356a3147dfd1) ) -ROM_END - -/************************************* - * - * Driver init - * - *************************************/ - -static DRIVER_INIT( starfire ) -{ - input_read = starfire_input_r; -} - -static DRIVER_INIT( fireone ) -{ - input_read = fireone_input_r; -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1979, starfire, 0, starfire, starfire, starfire, ROT0, "Exidy", "Star Fire (set 1)", GAME_NO_SOUND ) -GAME( 1979, starfira, starfire, starfire, starfire, starfire, ROT0, "Exidy", "Star Fire (set 2)", GAME_NO_SOUND ) -GAME( 1979, fireone, 0, starfire, fireone, fireone, ROT0, "Exidy", "Fire One", GAME_NO_SOUND ) -GAME( 1979, starfir2, 0, starfire, starfire, starfire, ROT0, "Exidy", "Star Fire 2", GAME_NO_SOUND ) diff --git a/src/drivers/starspnr.c b/src/drivers/starspnr.c deleted file mode 100644 index 9c333985e..000000000 --- a/src/drivers/starspnr.c +++ /dev/null @@ -1,359 +0,0 @@ -/*************************************************************************** - - Ace starspinner driver, (under heavy construction !!!) - - 22-07-2004: Re-Animator - 25-02-2005: Curt Coder - -Any fixes for this driver should be forwarded to the AGEMAME forum at (http://www.mameworld.info) - -Those with Z80 expertise are invited to assist with this driver. - - hex |r/w| D D D D D D D D | - location | | 7 6 5 4 3 2 1 0 | function ------------+---+-----------------+----------------------------------------- ------------+---+-----------------+----------------------------------------- - - -***************************************************************************/ - -/* - -Starspinner -ACE, 1982? - -PCB Layout ----------- - -|---------------------------------------------------------------------------| -| | -| XTAL BAT 2114 | -| | -| 14-1-102 P1 | -| | -| | -| | -| 14-1-102 | -| | -| 5 2114 | -| | -| 6 2114 14-1-102 | -| | -| 7 | -| | -| 8 5501 5501 14-1-102 | -| | -| h9 16-1-101 | -| | -| h10 16-1-101 | -| | -| h11 Z80 16-1-101 | -| | -| h12 P2 | -| | -| DSWA DSWB | -| | -|---------------------------------------------------------------------------| - -Notes: - Z80 - NEC D780C running at ? MHz (DIP40) - 5501 - Toshiba TC5501P 256 x4 SRAM (DIP22) - 2114 - NEC uPD2114LC 1k x8 DRAM (DIP18) - XTAL - ? MHz - BAT - VARTA Ni-Cd 3.6V 100 mAh - DSWA - 8-way DIP switch - DSWB - 8-way DIP switch - P1 - 4x10 pin connector to power supply - P2 - 4x10 pin connector to control panel - - ROMs: - -Filename Device Type Use ------------------------------------------------- -h9.h9 2732 (4K) \ Z80 Program -h10.h10 2732 (4K) | -h11.h11 2732 (4K) | -h12.h12 2732 (4K) / - -8.h8 2716 (2K) Tiles - -5.h5 2716 (2K) \ Sprites -6.h6 2716 (2K) | -7.h7 2716 (2K) / - -16-1-101.b9 ? \ Palette? -16-1-101.b10 ? | -16-1-101.b11 ? / - -*/ - -#include "driver.h" - -static UINT8 *nvram; -static size_t nvram_size; - -static NVRAM_HANDLER( nvram ) -{ - if ( read_or_write ) - { // writing - mame_fwrite(file,nvram,nvram_size); - } - else - { // reading - if ( file ) mame_fread(file,nvram,nvram_size); - else memset(nvram,0x00,nvram_size); - } -} - -/* vidhrdw */ - -//static tilemap *bg_tilemap; - -PALETTE_INIT( starspnr ) -{ -} - -#if 0 -WRITE8_HANDLER( starspnr_videoram_w ) -{ - if (videoram[offset] != data) - { - videoram[offset] = data; - tilemap_mark_tile_dirty(bg_tilemap, offset); - } -} - -WRITE8_HANDLER( starspnr_colorram_w ) -{ - if (colorram[offset] != data) - { - colorram[offset] = data; - tilemap_mark_tile_dirty(bg_tilemap, offset); - } -} - -static void get_bg_tile_info(int tile_index) -{ - int attr = colorram[tile_index]; - int code = videoram[tile_index] + ((attr & 0xf0) << 4); - int color = attr & 0x0f; - - SET_TILE_INFO(0, code, color, 0) -} - -#endif -VIDEO_START(starspnr) -{ -#if 0 - bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_rows, - TILEMAP_OPAQUE, 8, 8, 32, 32); -#endif - return 0; -} - -VIDEO_UPDATE(starspnr) -{ -// tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0); - return 0; -} - -/* Memory Map */ - -static ADDRESS_MAP_START( starspnr_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_ROM -ADDRESS_MAP_END - -/* Input Ports */ - -/* - Control Panel Buttons: - - 1 Gamble - 2 Cancel/Collect - 3 Hold - 4 Hold - 5 Hold - 6 Hold - 7 Take - 8 Start - -*/ -INPUT_PORTS_START( starspnr ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_W) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_E) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_R) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_T) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_U) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_I) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_D) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_F) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_G) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_H) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_J) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CODE(KEYCODE_K) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSWB") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/* Graphics Layouts */ - -static const gfx_layout spritelayout = -{ - 32, 32, - 16, - 3, - { 0, 0x800*8, 0x1000*8 }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 - }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 8*32, 9*32,10*32,11*32,12*32,13*32,14*32,15*32, - 16*32,17*32,18*32,19*32,20*32,21*32,22*32,23*32, - 24*32,25*32,26*32,27*32,28*32,29*32,30*32,31*32 - }, - 32*32 -}; - -static const gfx_layout charlayout = -{ - 8, 8, - 256, - 1, - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -/* Graphics Decode Information */ - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 16 }, - { REGION_GFX2, 0x0000, &spritelayout, 0, 16 }, - { -1 } -}; - -/* Interrupt Generator */ - -static INTERRUPT_GEN( timer_irq ) -{ -#if 0 - if ( timer_enabled ) - { - irq_timer_stat = 0x01; - - cpunum_set_input_line(0, M6809_IRQ_LINE, HOLD_LINE ); - } -#endif -} - -/* Machine Driver */ - -static MACHINE_DRIVER_START( starspnr ) - // basic machine hardware - MDRV_CPU_ADD_TAG("main", Z80, 4000000) // ??? - MDRV_CPU_PROGRAM_MAP(starspnr_map, 0) - MDRV_CPU_PERIODIC_INT(timer_irq, TIME_IN_HZ(1000)) // generate 1000 IQR's per second - - MDRV_NVRAM_HANDLER(nvram) - - // video hardware - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MDRV_SCREEN_REFRESH_RATE(50) - - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(16) - MDRV_COLORTABLE_LENGTH(16) - - MDRV_VIDEO_START(starspnr) - MDRV_VIDEO_UPDATE(starspnr) - MDRV_PALETTE_INIT(starspnr) -MACHINE_DRIVER_END - -/* ROMs */ - -ROM_START( starspnr ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "h9.h9", 0x0000, 0x1000, CRC(083068aa) SHA1(160a5f3bf33d0a53354f98295cd67022762928b6) ) - ROM_LOAD( "h10.h10", 0x1000, 0x1000, CRC(a0a96e55) SHA1(de4dc0da5a1f358085817690cc6bdc8d94a849f8) ) - ROM_LOAD( "h11.h11", 0x2000, 0x1000, CRC(ab045396) SHA1(8b3aea0b0d55f62d5b6fbd39664beb93559d2213) ) - ROM_LOAD( "h12.h12", 0x3000, 0x1000, CRC(8571f3f5) SHA1(e8b60a604a4a0368b6063b15b328c68f351cb740) ) - - ROM_REGION( 0x800, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "8.h8", 0x0000, 0x0800, CRC(0dd38c3c) SHA1(4da0cd00c76d3be2164f141ccd8c72dd9578ee61) ) - - ROM_REGION( 0x1800, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "5.h5", 0x0000, 0x0800, CRC(df49876f) SHA1(68077304f096491baeddc1d6b4dc62f90de71903) ) - ROM_LOAD( "6.h6", 0x0800, 0x0800, CRC(d992e2f6) SHA1(7841efec7d81689c82b8da501cce743436e7e8d4) ) - ROM_LOAD( "7.h7", 0x1000, 0x0800, CRC(d5a40e88) SHA1(5cac8d85123720cdbb8b4630b14a27cf0ceef33f) ) - - ROM_REGION( 0x300, REGION_PROMS, 0 ) - ROM_LOAD( "16-1-101.b9", 0x0000, 0x0100, NO_DUMP ) - ROM_LOAD( "16-1-101.b10", 0x0100, 0x0100, NO_DUMP ) - ROM_LOAD( "16-1-101.b11", 0x0200, 0x0100, NO_DUMP ) -ROM_END - -/* Game Driver */ - -GAME( 1982?, starspnr, 0, starspnr, starspnr, 0, ROT270, "ACE", "Starspinner (Dutch/Nederlands)", GAME_NOT_WORKING | GAME_NO_SOUND ) diff --git a/src/drivers/starwars.c b/src/drivers/starwars.c deleted file mode 100644 index c744b3bcd..000000000 --- a/src/drivers/starwars.c +++ /dev/null @@ -1,607 +0,0 @@ -/*************************************************************************** - - Atari Star Wars hardware - - driver by Steve Baines (sulaco@ntlworld.com) and Frank Palazzolo - - This file is Copyright 1997, Steve Baines. - Modified by Frank Palazzolo for sound support - - Games supported: - * Star Wars - * The Empire Strikes Back - * TomCat prototype on Star Wars hardware - - Known bugs: - * the monitor "overdrive" effect is not simulated when you - get hit by enemy fire - -**************************************************************************** - - Memory map (TBA) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m6809/m6809.h" -#include "vidhrdw/vector.h" -#include "vidhrdw/avgdvg.h" -#include "sound/5220intf.h" -#include "sound/pokey.h" -#include "starwars.h" -#include "slapstic.h" - -#define MASTER_CLOCK (12096000) -#define CLOCK_3KHZ (MASTER_CLOCK / 4096) - -UINT8 starwars_is_esb; - -/* Local variables */ -static UINT8 *slapstic_source; -static UINT8 *slapstic_base; -static UINT8 current_bank; - - - -/************************************* - * - * Machine init - * - *************************************/ - -MACHINE_RESET( starwars ) -{ - /* ESB-specific */ - if (starwars_is_esb) - { - /* reset the slapstic */ - slapstic_reset(); - current_bank = slapstic_bank(); - memcpy(slapstic_base, &slapstic_source[current_bank * 0x2000], 0x2000); - - /* reset all the banks */ - starwars_out_w(4, 0); - } - - /* reset the mathbox */ - swmathbox_reset(); -} - - - -/************************************* - * - * Interrupt generation - * - *************************************/ - -static WRITE8_HANDLER( irq_ack_w ) -{ - cpunum_set_input_line(0, M6809_IRQ_LINE, CLEAR_LINE); -} - - - -/************************************* - * - * ESB Slapstic handler - * - *************************************/ - -READ8_HANDLER( esb_slapstic_r ) -{ - int result = slapstic_base[offset]; - int new_bank = slapstic_tweak(offset); - - /* update for the new bank */ - if (new_bank != current_bank) - { - current_bank = new_bank; - memcpy(slapstic_base, &slapstic_source[current_bank * 0x2000], 0x2000); - } - return result; -} - - -WRITE8_HANDLER( esb_slapstic_w ) -{ - int new_bank = slapstic_tweak(offset); - - /* update for the new bank */ - if (new_bank != current_bank) - { - current_bank = new_bank; - memcpy(slapstic_base, &slapstic_source[current_bank * 0x2000], 0x2000); - } -} - - - -/************************************* - * - * ESB Opcode base handler - * - *************************************/ - -OPBASE_HANDLER( esb_setopbase ) -{ - int prevpc = activecpu_get_previouspc(); - - /* - * This is a slightly ugly kludge for Empire Strikes Back because it jumps - * directly to code in the slapstic. - */ - - /* if we're jumping into the slapstic region, tweak the new PC */ - if ((address & 0xe000) == 0x8000) - { - esb_slapstic_r(address & 0x1fff); - - /* make sure we catch the next branch as well */ - catch_nextBranch(); - return -1; - } - - /* if we're jumping out of the slapstic region, tweak the previous PC */ - else if ((prevpc & 0xe000) == 0x8000) - { - if (prevpc != 0x8080 && prevpc != 0x8090 && prevpc != 0x80a0 && prevpc != 0x80b0) - esb_slapstic_r(prevpc & 0x1fff); - } - - return address; -} - - -/************************************* - * - * Main CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x2fff) AM_RAM AM_BASE(&vectorram) AM_SIZE(&vectorram_size) AM_REGION(REGION_CPU1, 0) - AM_RANGE(0x3000, 0x3fff) AM_ROM /* vector_rom */ - AM_RANGE(0x4300, 0x431f) AM_READ(input_port_0_r) /* Memory mapped input port 0 */ - AM_RANGE(0x4320, 0x433f) AM_READ(starwars_input_1_r) /* Memory mapped input port 1 */ - AM_RANGE(0x4340, 0x435f) AM_READ(input_port_2_r) /* DIP switches bank 0 */ - AM_RANGE(0x4360, 0x437f) AM_READ(input_port_3_r) /* DIP switches bank 1 */ - AM_RANGE(0x4380, 0x439f) AM_READ(starwars_adc_r) /* a-d control result */ - AM_RANGE(0x4400, 0x4400) AM_READWRITE(starwars_main_read_r, starwars_main_wr_w) - AM_RANGE(0x4401, 0x4401) AM_READ(starwars_main_ready_flag_r) - AM_RANGE(0x4500, 0x45ff) AM_RAM AM_BASE(&starwars_ram_overlay) AM_SIZE(&generic_nvram_size) - AM_RANGE(0x4600, 0x461f) AM_WRITE(avgdvg_go_w) - AM_RANGE(0x4620, 0x463f) AM_WRITE(avgdvg_reset_w) - AM_RANGE(0x4640, 0x465f) AM_WRITE(watchdog_reset_w) - AM_RANGE(0x4660, 0x467f) AM_WRITE(irq_ack_w) - AM_RANGE(0x4680, 0x469f) AM_READWRITE(MRA8_NOP,starwars_out_w) - AM_RANGE(0x46a0, 0x46bf) AM_WRITE(starwars_nstore_w) - AM_RANGE(0x46c0, 0x46c2) AM_WRITE(starwars_adc_select_w) - AM_RANGE(0x46e0, 0x46e0) AM_WRITE(starwars_soundrst_w) - AM_RANGE(0x4700, 0x4707) AM_WRITE(swmathbx_w) - AM_RANGE(0x4700, 0x4700) AM_READ(swmathbx_reh_r) - AM_RANGE(0x4701, 0x4701) AM_READ(swmathbx_rel_r) - AM_RANGE(0x4703, 0x4703) AM_READ(swmathbx_prng_r) /* pseudo random number generator */ - AM_RANGE(0x4800, 0x4fff) AM_RAM /* CPU and Math RAM */ - AM_RANGE(0x5000, 0x5fff) AM_RAM AM_BASE(&starwars_mathram) /* CPU and Math RAM */ - AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_ROM /* rest of main_rom */ -ADDRESS_MAP_END - - - -/************************************* - * - * Sound CPU memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )\ - AM_RANGE(0x0000, 0x07ff) AM_WRITE(starwars_sout_w) - AM_RANGE(0x0800, 0x0fff) AM_READ(starwars_sin_r) /* SIN Read */ - AM_RANGE(0x1000, 0x107f) AM_RAM /* 6532 ram */ - AM_RANGE(0x1080, 0x109f) AM_READWRITE(starwars_m6532_r, starwars_m6532_w) - AM_RANGE(0x1800, 0x183f) AM_WRITE(quad_pokey_w) - AM_RANGE(0x2000, 0x27ff) AM_RAM /* program RAM */ - AM_RANGE(0x4000, 0x7fff) AM_ROM /* sound roms */ - AM_RANGE(0xb000, 0xffff) AM_ROM /* more sound roms */ -ADDRESS_MAP_END - - - -/************************************* - * - * Port definitions - * - *************************************/ - -INPUT_PORTS_START( starwars ) - PORT_START /* IN0 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - /* Bit 6 is MATH_RUN - see machine/starwars.c */ - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - /* Bit 7 is VG_HALT - see machine/starwars.c */ - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* DSW0 */ - PORT_DIPNAME(0x03, 0x00, "Starting Shields" ) - PORT_DIPSETTING ( 0x00, "6" ) - PORT_DIPSETTING ( 0x01, "7" ) - PORT_DIPSETTING ( 0x02, "8" ) - PORT_DIPSETTING ( 0x03, "9" ) - PORT_DIPNAME(0x0c, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING ( 0x04, "Moderate" ) - PORT_DIPSETTING ( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING ( 0x0c, DEF_STR( Hardest ) ) - PORT_DIPNAME(0x30, 0x00, "Bonus Shields" ) - PORT_DIPSETTING ( 0x00, "0" ) - PORT_DIPSETTING ( 0x10, "1" ) - PORT_DIPSETTING ( 0x20, "2" ) - PORT_DIPSETTING ( 0x30, "3" ) - PORT_DIPNAME(0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - PORT_DIPNAME(0x80, 0x80, "Freeze" ) - PORT_DIPSETTING ( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME(0x03, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME(0x0c, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x04, "*4" ) - PORT_DIPSETTING ( 0x08, "*5" ) - PORT_DIPSETTING ( 0x0c, "*6" ) - PORT_DIPNAME(0x10, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x10, "*2" ) - PORT_DIPNAME(0xe0, 0x00, "Bonus Coinage" ) - PORT_DIPSETTING ( 0x20, "2 gives 1" ) - PORT_DIPSETTING ( 0x60, "4 gives 2" ) - PORT_DIPSETTING ( 0xa0, "3 gives 1" ) - PORT_DIPSETTING ( 0x40, "4 gives 1" ) - PORT_DIPSETTING ( 0x80, "5 gives 1" ) - PORT_DIPSETTING ( 0x00, DEF_STR( None ) ) -/* 0xc0 and 0xe0 None */ - - PORT_START /* IN4 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) - - PORT_START /* IN5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) -INPUT_PORTS_END - - -INPUT_PORTS_START( esb ) - PORT_START /* IN0 */ - PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) - PORT_BIT ( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) - - PORT_START /* IN1 */ - PORT_BIT ( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1) - PORT_BIT ( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - /* Bit 6 is MATH_RUN - see machine/starwars.c */ - PORT_BIT ( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - /* Bit 7 is VG_HALT - see machine/starwars.c */ - PORT_BIT ( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START /* DSW0 */ - PORT_DIPNAME(0x03, 0x03, "Starting Shields" ) - PORT_DIPSETTING ( 0x01, "2" ) - PORT_DIPSETTING ( 0x00, "3" ) - PORT_DIPSETTING ( 0x03, "4" ) - PORT_DIPSETTING ( 0x02, "5" ) - PORT_DIPNAME(0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING ( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING ( 0x0c, "Moderate" ) - PORT_DIPSETTING ( 0x00, DEF_STR( Hard ) ) - PORT_DIPSETTING ( 0x04, DEF_STR( Hardest ) ) - PORT_DIPNAME(0x30, 0x30, "Jedi-Letter Mode" ) - PORT_DIPSETTING ( 0x00, "Level Only" ) - PORT_DIPSETTING ( 0x10, "Level" ) - PORT_DIPSETTING ( 0x20, "Increment Only" ) - PORT_DIPSETTING ( 0x30, "Increment" ) - PORT_DIPNAME(0x40, 0x40, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x40, DEF_STR( On ) ) - PORT_DIPNAME(0x80, 0x80, "Freeze" ) - PORT_DIPSETTING ( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME(0x03, 0x02, DEF_STR( Coinage ) ) - PORT_DIPSETTING ( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING ( 0x02, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING ( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING ( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME(0x0c, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x04, "*4" ) - PORT_DIPSETTING ( 0x08, "*5" ) - PORT_DIPSETTING ( 0x0c, "*6" ) - PORT_DIPNAME(0x10, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING ( 0x00, "*1" ) - PORT_DIPSETTING ( 0x10, "*2" ) - PORT_DIPNAME(0xe0, 0xe0, "Bonus Coinage" ) - PORT_DIPSETTING ( 0x20, "2 gives 1" ) - PORT_DIPSETTING ( 0x60, "4 gives 2" ) - PORT_DIPSETTING ( 0xa0, "3 gives 1" ) - PORT_DIPSETTING ( 0x40, "4 gives 1" ) - PORT_DIPSETTING ( 0x80, "5 gives 1" ) - PORT_DIPSETTING ( 0xe0, DEF_STR( None ) ) -/* 0xc0 and 0x00 None */ - - PORT_START /* IN4 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,255) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) - - PORT_START /* IN5 */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,255) PORT_SENSITIVITY(50) PORT_KEYDELTA(30) -INPUT_PORTS_END - - - -/************************************* - * - * Machine driver - * - *************************************/ - -static MACHINE_DRIVER_START( starwars ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6809, MASTER_CLOCK / 8) - MDRV_CPU_PROGRAM_MAP(main_map,0) - MDRV_CPU_PERIODIC_INT(irq0_line_assert, TIME_IN_HZ(CLOCK_3KHZ / 12)) - MDRV_WATCHDOG_TIME_INIT(TIME_IN_HZ(CLOCK_3KHZ / 128)) - - MDRV_CPU_ADD(M6809, MASTER_CLOCK / 8) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - - MDRV_SCREEN_REFRESH_RATE(40) - MDRV_MACHINE_RESET(starwars) - MDRV_NVRAM_HANDLER(generic_0fill) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB15) - MDRV_SCREEN_SIZE(400, 300) - MDRV_SCREEN_VISIBLE_AREA(0, 250, 0, 280) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(avg_starwars) - MDRV_VIDEO_UPDATE(vector) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(POKEY, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(POKEY, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(POKEY, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(POKEY, 1500000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) - - MDRV_SOUND_ADD(TMS5220, 640000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - - -/************************************* - * - * ROM definitions - * - *************************************/ - -ROM_START( starwar1 ) - ROM_REGION( 0x12000, REGION_CPU1, 0 ) /* 2 64k ROM spaces */ - ROM_LOAD( "136021.105", 0x3000, 0x1000, CRC(538e7d2f) SHA1(032c933fd94a6b0b294beee29159a24494ae969b) ) /* 3000-3fff is 4k vector rom */ - ROM_LOAD( "136021.114", 0x6000, 0x2000, CRC(e75ff867) SHA1(3a40de920c31ffa3c3e67f3edf653b79fcc5ddd7) ) /* ROM 0 bank pages 0 and 1 */ - ROM_CONTINUE( 0x10000, 0x2000 ) - ROM_LOAD( "136021.102", 0x8000, 0x2000, CRC(f725e344) SHA1(f8943b67f2ea032ab9538084756ba86f892be5ca) ) /* 8k ROM 1 bank */ - ROM_LOAD( "136021.203", 0xa000, 0x2000, CRC(f6da0a00) SHA1(dd53b643be856787bbc4da63e5eb132f98f623c3) ) /* 8k ROM 2 bank */ - ROM_LOAD( "136021.104", 0xc000, 0x2000, CRC(7e406703) SHA1(981b505d6e06d7149f8bcb3e81e4d0c790f2fc86) ) /* 8k ROM 3 bank */ - ROM_LOAD( "136021.206", 0xe000, 0x2000, CRC(c7e51237) SHA1(4960f4446271316e3f730eeb2531dbc702947395) ) /* 8k ROM 4 bank */ - - /* Sound ROMS */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "136021.107", 0x4000, 0x2000, CRC(dbf3aea2) SHA1(c38661b2b846fe93487eef09ca3cda19c44f08a0) ) /* Sound ROM 0 */ - ROM_RELOAD( 0xc000, 0x2000 ) - ROM_LOAD( "136021.208", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */ - ROM_RELOAD( 0xe000, 0x2000 ) - - /* Mathbox PROMs */ - ROM_REGION( 0x1100, REGION_PROMS, 0) - ROM_LOAD( "136021.110", 0x0000, 0x0400, CRC(01061762) SHA1(199549ead9ff9a5d5db75a2d15aef0240feb1aca) ) /* PROM 0 */ - ROM_LOAD( "136021.111", 0x0400, 0x0400, CRC(2e619b70) SHA1(f76132b884ffdf3a4fe58637238c5235aab50408) ) /* PROM 1 */ - ROM_LOAD( "136021.112", 0x0800, 0x0400, CRC(6cfa3544) SHA1(be059bfffe6b5bfcb4af78e9e7a98870ccf21985) ) /* PROM 2 */ - ROM_LOAD( "136021.113", 0x0c00, 0x0400, CRC(03f6acb2) SHA1(1bad540950575581067b97e3a1cadd479c68adf1) ) /* PROM 3 */ - ROM_LOAD( "136021-105.1l", 0x1000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ -ROM_END - - -ROM_START( starwars ) - ROM_REGION( 0x12000, REGION_CPU1, 0 ) /* 2 64k ROM spaces */ - ROM_LOAD( "136021.105", 0x3000, 0x1000, CRC(538e7d2f) SHA1(032c933fd94a6b0b294beee29159a24494ae969b) ) /* 3000-3fff is 4k vector rom */ - ROM_LOAD( "136021.214", 0x6000, 0x2000, CRC(04f1876e) SHA1(c1d3637cb31ece0890c25f6122d6bcd27e6ffe0c) ) /* ROM 0 bank pages 0 and 1 */ - ROM_CONTINUE( 0x10000, 0x2000 ) - ROM_LOAD( "136021.102", 0x8000, 0x2000, CRC(f725e344) SHA1(f8943b67f2ea032ab9538084756ba86f892be5ca) ) /* 8k ROM 1 bank */ - ROM_LOAD( "136021.203", 0xa000, 0x2000, CRC(f6da0a00) SHA1(dd53b643be856787bbc4da63e5eb132f98f623c3) ) /* 8k ROM 2 bank */ - ROM_LOAD( "136021.104", 0xc000, 0x2000, CRC(7e406703) SHA1(981b505d6e06d7149f8bcb3e81e4d0c790f2fc86) ) /* 8k ROM 3 bank */ - ROM_LOAD( "136021.206", 0xe000, 0x2000, CRC(c7e51237) SHA1(4960f4446271316e3f730eeb2531dbc702947395) ) /* 8k ROM 4 bank */ - - /* Sound ROMS */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "136021.107", 0x4000, 0x2000, CRC(dbf3aea2) SHA1(c38661b2b846fe93487eef09ca3cda19c44f08a0) ) /* Sound ROM 0 */ - ROM_RELOAD( 0xc000, 0x2000 ) - ROM_LOAD( "136021.208", 0x6000, 0x2000, CRC(e38070a8) SHA1(c858ae1702efdd48615453ab46e488848891d139) ) /* Sound ROM 0 */ - ROM_RELOAD( 0xe000, 0x2000 ) - - /* Mathbox PROMs */ - ROM_REGION( 0x1100, REGION_PROMS, 0 ) - ROM_LOAD( "136021.110", 0x0000, 0x0400, CRC(01061762) SHA1(199549ead9ff9a5d5db75a2d15aef0240feb1aca) ) /* PROM 0 */ - ROM_LOAD( "136021.111", 0x0400, 0x0400, CRC(2e619b70) SHA1(f76132b884ffdf3a4fe58637238c5235aab50408) ) /* PROM 1 */ - ROM_LOAD( "136021.112", 0x0800, 0x0400, CRC(6cfa3544) SHA1(be059bfffe6b5bfcb4af78e9e7a98870ccf21985) ) /* PROM 2 */ - ROM_LOAD( "136021.113", 0x0c00, 0x0400, CRC(03f6acb2) SHA1(1bad540950575581067b97e3a1cadd479c68adf1) ) /* PROM 3 */ - ROM_LOAD( "136021-105.1l", 0x1000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ -ROM_END - -ROM_START( tomcatsw ) - ROM_REGION( 0x12000, REGION_CPU1, 0 ) - ROM_LOAD( "tcavg3.1l", 0x3000, 0x1000, CRC(27188aa9) SHA1(5d9a978a7ac1913b57586e81045a1b955db27b48) ) - ROM_LOAD( "tc6.1f", 0x6000, 0x2000, CRC(56e284ff) SHA1(a5fda9db0f6b8f7d28a4a607976fe978e62158cf) ) - ROM_LOAD( "tc8.1hj", 0x8000, 0x2000, CRC(7b7575e3) SHA1(bdb838603ffb12195966d0ce454900253bc0f43f) ) - ROM_LOAD( "tca.1jk", 0xa000, 0x2000, CRC(a1020331) SHA1(128745a2ec771ac818a8fbba59a08f0cf5f28e8f) ) - ROM_LOAD( "tce.1m", 0xe000, 0x2000, CRC(4a3de8a3) SHA1(e48fc17201326358317f6b428e583ecaa3ecb881) ) - - /* Sound ROMS */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "136021.107", 0x4000, 0x2000, NO_DUMP ) /* Sound ROM 0 */ - ROM_RELOAD( 0xc000, 0x2000 ) - ROM_LOAD( "136021.208", 0x6000, 0x2000, NO_DUMP ) /* Sound ROM 0 */ - ROM_RELOAD( 0xe000, 0x2000 ) - - /* Mathbox PROMs */ - ROM_REGION( 0x1100, REGION_PROMS, 0 ) - ROM_LOAD( "136021.110", 0x0000, 0x0400, CRC(01061762) SHA1(199549ead9ff9a5d5db75a2d15aef0240feb1aca) ) /* PROM 0 */ - ROM_LOAD( "136021.111", 0x0400, 0x0400, CRC(2e619b70) SHA1(f76132b884ffdf3a4fe58637238c5235aab50408) ) /* PROM 1 */ - ROM_LOAD( "136021.112", 0x0800, 0x0400, CRC(6cfa3544) SHA1(be059bfffe6b5bfcb4af78e9e7a98870ccf21985) ) /* PROM 2 */ - ROM_LOAD( "136021.113", 0x0c00, 0x0400, CRC(03f6acb2) SHA1(1bad540950575581067b97e3a1cadd479c68adf1) ) /* PROM 3 */ - ROM_LOAD( "136021-105.1l", 0x1000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ -ROM_END - - -ROM_START( esb ) - ROM_REGION( 0x22000, REGION_CPU1, 0 ) /* 64k for code and a buttload for the banked ROMs */ - ROM_LOAD( "136031.111", 0x03000, 0x1000, CRC(b1f9bd12) SHA1(76f15395c9fdcd80dd241307a377031a1f44e150) ) /* 3000-3fff is 4k vector rom */ - ROM_LOAD( "136031.101", 0x06000, 0x2000, CRC(ef1e3ae5) SHA1(d228ff076faa7f9605badeee3b827adb62593e0a) ) - ROM_CONTINUE( 0x10000, 0x2000 ) - /* $8000 - $9fff : slapstic page */ - ROM_LOAD( "136031.102", 0x0a000, 0x2000, CRC(62ce5c12) SHA1(976256acf4499dc396542a117910009a8808f448) ) - ROM_CONTINUE( 0x1c000, 0x2000 ) - ROM_LOAD( "136031.203", 0x0c000, 0x2000, CRC(27b0889b) SHA1(a13074e83f0f57d65096d7f49ae78f33ab00c479) ) - ROM_CONTINUE( 0x1e000, 0x2000 ) - ROM_LOAD( "136031.104", 0x0e000, 0x2000, CRC(fd5c725e) SHA1(541cfd004b1736b6cec13836dfa813f00eedeed0) ) - ROM_CONTINUE( 0x20000, 0x2000 ) - - ROM_LOAD( "136031.105", 0x14000, 0x4000, CRC(ea9e4dce) SHA1(9363fd5b1fce62c2306b448a7766eaf7ec97cdf5) ) /* slapstic 0, 1 */ - ROM_LOAD( "136031.106", 0x18000, 0x4000, CRC(76d07f59) SHA1(44dd018b406f95e1512ce92923c2c87f1458844f) ) /* slapstic 2, 3 */ - - /* Sound ROMS */ - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "136031.113", 0x4000, 0x2000, CRC(24ae3815) SHA1(b1a93af76de79b902317eebbc50b400b1f8c1e3c) ) /* Sound ROM 0 */ - ROM_CONTINUE( 0xc000, 0x2000 ) - ROM_LOAD( "136031.112", 0x6000, 0x2000, CRC(ca72d341) SHA1(52de5b82bb85d7c9caad2047e540d0748aa93ba5) ) /* Sound ROM 1 */ - ROM_CONTINUE( 0xe000, 0x2000 ) - - /* Mathbox PROMs */ - ROM_REGION( 0x1100, REGION_PROMS, 0 ) - ROM_LOAD( "136031.110", 0x0000, 0x0400, CRC(b8d0f69d) SHA1(c196f1a592bd1ac482a81e23efa224d9dfaefc0a) ) /* PROM 0 */ - ROM_LOAD( "136031.109", 0x0400, 0x0400, CRC(6a2a4d98) SHA1(cefca71f025f92a193c5a7d8b5ab8be10db2fd44) ) /* PROM 1 */ - ROM_LOAD( "136031.108", 0x0800, 0x0400, CRC(6a76138f) SHA1(9ef7af898a3e29d03f35045901023615a6a55205) ) /* PROM 2 */ - ROM_LOAD( "136031.107", 0x0c00, 0x0400, CRC(afbf6e01) SHA1(0a6438e6c106d98e5d67a019751e1584324f5e5c) ) /* PROM 3 */ - ROM_LOAD( "136021-105.1l", 0x1000, 0x0100, CRC(82fc3eb2) SHA1(184231c7baef598294860a7d2b8a23798c5c7da6) ) /* AVG PROM */ -ROM_END - - - -/************************************* - * - * Driver init - * - *************************************/ - -static DRIVER_INIT( starwars ) -{ - /* X2212 nvram */ - generic_nvram = auto_malloc(generic_nvram_size); - - /* prepare the mathbox */ - starwars_is_esb = 0; - swmathbox_init(); - - /* initialize banking */ - memory_configure_bank(1, 0, 2, memory_region(REGION_CPU1) + 0x6000, 0x10000 - 0x6000); - memory_set_bank(1, 0); -} - - -static DRIVER_INIT( esb ) -{ - /* X2212 nvram */ - generic_nvram = auto_malloc(generic_nvram_size); - - /* init the slapstic */ - slapstic_init(101); - slapstic_source = &memory_region(REGION_CPU1)[0x14000]; - slapstic_base = &memory_region(REGION_CPU1)[0x08000]; - - /* install an opcode base handler */ - memory_set_opbase_handler(0, esb_setopbase); - - /* install read/write handlers for it */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0, esb_slapstic_r); - memory_install_write8_handler(0, ADDRESS_SPACE_PROGRAM, 0x8000, 0x9fff, 0, 0, esb_slapstic_w); - - /* install additional banking */ - memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xa000, 0xffff, 0, 0, MRA8_BANK2); - - /* prepare the mathbox */ - starwars_is_esb = 1; - swmathbox_init(); - - /* initialize banking */ - memory_configure_bank(1, 0, 2, memory_region(REGION_CPU1) + 0x6000, 0x10000 - 0x6000); - memory_set_bank(1, 0); - memory_configure_bank(2, 0, 2, memory_region(REGION_CPU1) + 0xa000, 0x1c000 - 0xa000); - memory_set_bank(2, 0); -} - - - -/************************************* - * - * Game drivers - * - *************************************/ - -GAME( 1983, starwars, 0, starwars, starwars, starwars, ROT0, "Atari", "Star Wars (rev 2)", 0 ) -GAME( 1983, starwar1, starwars, starwars, starwars, starwars, ROT0, "Atari", "Star Wars (rev 1)", 0 ) -GAME( 1983, tomcatsw, 0, starwars, starwars, starwars, ROT0, "Atari", "TomCat (Star Wars hardware, prototype)", GAME_NO_SOUND ) -GAME( 1985, esb, 0, starwars, esb, esb, ROT0, "Atari Games", "The Empire Strikes Back", 0 ) diff --git a/src/drivers/stfight.c b/src/drivers/stfight.c deleted file mode 100644 index 326ef8edd..000000000 --- a/src/drivers/stfight.c +++ /dev/null @@ -1,811 +0,0 @@ -/***************************** (by Mark McDougall) - *** STREET FIGHT hardware *** This has been adapted from the excellent - ***************************** Psychic 5 description (by Roberto Ventura) - -Street Fight (c) Seibu Kaihatsu (1986) - - -0) GENERAL. - -The game has two Z80s. -The second CPU controls the two YM2203 sound chips. -There is an OKI M5205 ADPCM chip fed directly from a ROM. -Screen resolution is 256x224 (horizontal CRT). -256 colors on screen. -128 sprites (16x16). - - -1) ROM CONTENTS. - -SF01 Main program code (encrypted) -SF02 Main program code bank-switched? into main cpu space -SF03 Sound program code -SF04 ADPCM voice data -SF05-07 Foreground tile pixel data -SF09 Foreground map data -SF10 Foreground map/tile data -SF11-14 Background tile pixel data -SF15 Background map data -SF16 Background map/tile data -SF17 Character pixel data -SF18-21 Sprite pixel data - -All ROMS are 32K except SF17 which is 8K. - -Graphics format is a little messy, the 4 planes come from a bit in -the high and low nibble of each byte of a consecutive pair of roms. - -All graphics are made of 16x16 (composite) tiles, each of which is composed -of 4 consecutive 8x8 tiles. In all there are 1024 composite (16x16) tiles -for each of the foreground, background and sprite layers. These can be -considered as four banks each of 256 tiles. - -Text characters are defined as 8x8 tiles. - - -2) CPU. - -The board has a single? crystal @12.000 MHz. -Both CPU clocks run at 3MHz (12/4). - -The main Z80 runs in Interrupt mode 0 (IM0), the game program expects -execution of two different restart (RST) instructions. -RST 10,the main IRQ, is to be triggered each time the screen is refreshed. -RST 08 must be triggered in order to make the game work properly. I haven't -ascertained the exact frequency of this interrupt yet, though the game -appears to run at the correct speed with RST08 at 30Hz. Curiously a trace -on the interrupt pin shows two interrupts occuring at 60Hz, obviously the -VBlank interrupt followed by a second interrupt some 3.3ms later. At some -stage I'll get around to probing the data lines to find the interrupt -vector addresses. - -Sound CPU runs in IM1. - -The sound CPU lies idle waiting the external IRQ occurrence executing code -from $0100 to $010D. - -Game code/data is directly accessible by the main CPU. There is what -appears to be some level data in the second half of sf02 that may -never be bank-switched in!?! Graphics data, ADPCM samples and level maps -are not accessed by the CPUs. - -Text video RAM is situated at $D000-$D7FF. - - -3) MAIN CPU MEMORY MAP. - -$0000-$7FFF R ROM sf01 (encrypted) -$8000-$BFFF R ROM sf02 (2 x 16k banks selected by D2 of ?) -$C000-$C1FF W Palette RAM -$C200 R player 1 controls hard value (negative logic) - - MSB:x,x,B2,B1,RIGHT,LEFT,DOWN,UP -$C201 R player 2 controls hard value (negative logic) - - MSB:x,x,B2,B1,RIGHT,LEFT,DOWN,UP -$C202 R start buttons (negative logic) - - MSB:x,x,x,P2,P1,x,x,x:LSB -$C203 R dipswitch #1 hard value (negative logic) - - 76543210 - xxxxx000 - coin A - 1 coin / 1 credit - xxxxx001 - 2 coins / 1 credit - xxxxx010 - 1 coin / 3 credits - xxxxx011 - 4 coins / 1 credit - xxxxx100 - 1 coin / 2 credits - xxxxx101 - 3 coins / 1 credit - xxxxx110 - 1 coin / 5 credits - xxxxx111 - 5 coins / 1 credit - xxx00xxx - coin B - 1 coin / 1 credit - xxx01xxx - 2 coins / 1 credit - xxx10xxx - 1 coin / 2 credits - xxx11xxx - 2 coins / 3 credits - xx1xxxxx - test mode setting - x1xxxxxx - continue setting - 1xxxxxxx - bullet colour setting -$C204 R dipswitch #2 hard value (negative logic) - - 76543210 - xxxxxxx1 - cabinet style - xxxxx11x - difficulty - xxx11xxx - number of lives (-1) - x00xxxxx - 10,000 & 30,000 - x01xxxxx - 20,000 & 40,000 - x10xxxxx - 30,000 & 60,000 - x11xxxxx - 40,000 & 80,000 - 1xxxxxxx - demo sound on/off -$C205 R read to determine coin circuit check status -$C500 W play fm number -$C600 W play voice number -$C700 W ?coin mechanism control? -$C804 W ?watchdog? -$C806 W ??? -$C807 W current sprite bank h/w register - - bank = b2,b0 -$D000-$D3FF W VRAM (Character RAM) -$D400-$D7FF W VRAM (Attribute RAM) - - b7 Character bank from SF17 - - b6 Flip Y - - b5 Flip X - - b4 ? - - b3-0 ? Colour/Palette -$D800-$D801 W foreground layer x coordinate h/w register -$D802-$D803 W foreground layer y coordinate h/w register -$D804-$D805 W background layer x coordinate h/w register -$D806,$D808 W background layer y coordinate h/w register -$D807 W layer control h/w register - - b7 = text layer - - b6 = sprite layer - - b5 = background layer - - b4 = foreground layer - - b0 = video orientation (1=upside-down) -$E000-$FFFF RW RAM SRM2064C (8k) -$Fxx0-$Fxx3 W Sprite Ram (every 32 ($20) bytes) - - xx0 sprite number - - xx1 sprite attribute - - b7 sign extension of x coord - - b4 flip x - - xx2 y coord of sprite - - xx3 x coord of sprite - -4) SOUND CPU MEMORY MAP. - -$0000-$7FFF R ROM (sf03) -$C000 W YM2203 #1 address register -$C001 W YM2203 #1 data register -$C800 W YM2203 #2 address register -$C801 W YM2203 #2 data register -$E800 W ?? -$F000 R FM Voice number to play - - b7 set for valid data latched - - b6-b0 voice number -$F800-$FFFF RW RAM - - -5) COLOR RAM - -The palette system is dynamic, the game can show up to 256 different -colors on screen. - -Each color component (RGB) depth is 4 bits, two bytes $100 apart are used -for each color code (12 bits). - -format: unknown - probably RRRRGGGG - 0000BBBB - -I suspect that the colors are organized in sub-palettes, since the graphics -layers are all 4 bits (16 colors) each. Each of the text/graphics layers -have 'attribute' bytes associated with them that would define the palette -usage for each character/tile. - -The 16 colours at offset $C0 appear to be the text palette. This group of -colours does not appear to change throughout the game, and the lower 192 -colours fade in/out independantly of these 16 - consistent with observations -of the real game. You'd think then that the palette would be reaonably -easy to deduce from the text video ram attribute byte - go ahead and try! :P - -The mapping of graphics pixels to palette similarly escapes me, though I -must admit I haven't exhausted all avenues of investigation just yet! - -There is a related mystery with the transparency colour. For the most part -colour 15 corresponds to the transparent colour, except in a few cases. - -6) TILE-BASED LAYERS - -The foreground and background layers comprise static virtual layers which -are 8 screens wide and 16 screens deep. The hardware scrolls around the -layers by reading registers which are updated by sofware every VBlank. -The text layer is fixed and cannot scroll. - -The maps that define the foreground and background layers are stored in -ROMs accessed directly by the hardware. They consist of 256 bytes for -each screen which define the tile number, and a corresponding byte in -a matching ROM which defines the tile bank and presumably palette info. - -The top and bottom rows of the screen are not visible - resulting in a -256x224 viewport rather than 256 square. The layers can be individually -enabled/disabled. Inactive sprites are 'parked' at row 0. - -The rom layout for the foreground and sprite tiles are as you would expect, -with the four 8x8 tiles that make a single composite tile consecutive in -address. The background tiles are interleaved for presumably some good -reason, the first two 8x8 tiles from composite tile n are followed by two -8x8 tiles from the (n+512)'th composite tile. - -The map roms are similarly interleaved for the background layer only. - -7) SPRITES - -The sprites are mapped into RAM locations $F000-$FFFF using only the first -4 bytes from each 32-byte slice. Intervening addresses appear to be -conventional RAM. See the memory map for sprite data format. - - **************************************************************************** - -TODO: -- palette is incorporated - fix!!! -- handle transparency in text layer properly (how?) -- second bank of sf02 is this used? (probably NOT) - -DONE? (check on real board) -- sound (fm) -- sound (adpcm) - -*****************************************************************************/ - -#include "driver.h" -#include "sound/2203intf.h" -#include "sound/msm5205.h" - -// machine -DRIVER_INIT( empcity ); -DRIVER_INIT( stfight ); -MACHINE_RESET( stfight ); -INTERRUPT_GEN( stfight_vb_interrupt ); -INTERRUPT_GEN( stfight_interrupt_1 ); -READ8_HANDLER( stfight_dsw_r ); -WRITE8_HANDLER( stfight_fm_w ); -WRITE8_HANDLER( stfight_voice_w ); -READ8_HANDLER( stfight_coin_r ); -WRITE8_HANDLER( stfight_coin_w ); -WRITE8_HANDLER( stfight_e800_w ); -READ8_HANDLER( stfight_fm_r ); -void stfight_adpcm_int( int data ); -WRITE8_HANDLER( stfight_adpcm_control_w ); - -// vidhrdw -PALETTE_INIT( stfight ); -WRITE8_HANDLER( stfight_text_char_w ); -WRITE8_HANDLER( stfight_text_attr_w ); -WRITE8_HANDLER( stfight_vh_latch_w ); -WRITE8_HANDLER( stfight_sprite_bank_w ); -VIDEO_START( stfight ); -VIDEO_UPDATE( stfight ); - -// vidhrdw -extern unsigned char *stfight_text_char_ram; -extern unsigned char *stfight_text_attr_ram; -extern unsigned char *stfight_vh_latch_ram; -extern unsigned char *stfight_sprite_ram; - -static ADDRESS_MAP_START( readmem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) /* sf02.bin */ - AM_RANGE(0xc000, 0xc1ff) AM_READ(MRA8_RAM) /* palette ram */ - AM_RANGE(0xc200, 0xc200) AM_READ(input_port_0_r) /* IN1 */ - AM_RANGE(0xc201, 0xc201) AM_READ(input_port_1_r) /* IN2 */ - AM_RANGE(0xc202, 0xc202) AM_READ(input_port_2_r) /* IN3 */ - AM_RANGE(0xc203, 0xc204) AM_READ(stfight_dsw_r) /* DS0,1 */ - AM_RANGE(0xc205, 0xc205) AM_READ(stfight_coin_r) /* coin mech */ - AM_RANGE(0xd000, 0xd7ff) AM_READ(MRA8_RAM) /* video */ - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_BANK1) /* sf02.bin */ - AM_RANGE(0xc000, 0xc0ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE(&paletteram) - AM_RANGE(0xc100, 0xc1ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE(&paletteram_2) - AM_RANGE(0xc500, 0xc500) AM_WRITE(stfight_fm_w) /* play fm sound */ - AM_RANGE(0xc600, 0xc600) AM_WRITE(stfight_adpcm_control_w) /* voice control */ - AM_RANGE(0xc700, 0xc700) AM_WRITE(stfight_coin_w) /* coin mech */ - AM_RANGE(0xc804, 0xc806) AM_WRITE(MWA8_NOP) /* TBD */ - AM_RANGE(0xc807, 0xc807) AM_WRITE(stfight_sprite_bank_w) - AM_RANGE(0xd000, 0xd3ff) AM_WRITE(stfight_text_char_w) AM_BASE(&stfight_text_char_ram) - AM_RANGE(0xd400, 0xd7ff) AM_WRITE(stfight_text_attr_w) AM_BASE(&stfight_text_attr_ram) - AM_RANGE(0xd800, 0xd808) AM_WRITE(stfight_vh_latch_w) AM_BASE(&stfight_vh_latch_ram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) AM_BASE(&stfight_sprite_ram) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xc001, 0xc001) AM_READ(YM2203_read_port_0_r) - AM_RANGE(0xc801, 0xc801) AM_READ(YM2203_read_port_1_r) - AM_RANGE(0xf000, 0xf000) AM_READ(stfight_fm_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) - -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xc800, 0xc800) AM_WRITE(YM2203_control_port_1_w) - AM_RANGE(0xc801, 0xc801) AM_WRITE(YM2203_write_port_1_w) - AM_RANGE(0xe800, 0xe800) AM_WRITE(stfight_e800_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) - -ADDRESS_MAP_END - - -INPUT_PORTS_START( stfight ) - PORT_START /* PLAYER 1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* PLAYER 2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* START BUTTONS */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xe7, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW0 */ - - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_5C ) ) - PORT_DIPNAME( 0x18, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) ) - PORT_SERVICE( 0x20, IP_ACTIVE_HIGH ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, "Bullet Colour" ) - PORT_DIPSETTING( 0x80, "Red" ) - PORT_DIPSETTING( 0x00, "Blue" ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x02, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x18, "4" ) - PORT_DIPNAME( 0x60, 0x20, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "10000 30000" ) - PORT_DIPSETTING( 0x20, "20000 40000" ) - PORT_DIPSETTING( 0x40, "30000 60000" ) - PORT_DIPSETTING( 0x60, "40000 80000" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* COIN MECH */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) -INPUT_PORTS_END - - -/* text-layer characters */ -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 pixels */ - 512, /* 512 characters */ - 2, /* 2 bits per pixel */ - { 4, 0 }, - { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 8*16 /* every char takes 16 consecutive bytes */ -}; - -/* foreground tiles */ -static const gfx_layout fglayout = -{ - 16,16, /* 16*16 pixels */ - 1024, /* 1024 tiles */ - 4, /* 4 bits per pixel */ - { 64*1024*8+0, 64*1024*8+4, 0, 4 }, - { 0, 1, 2, 3, - 8, 9, 10, 11, - 32*8+0, 32*8+1, 32*8+ 2, 32*8+ 3, - 32*8+8, 32*8+9, 32*8+10, 32*8+11 }, - { 0*8, 2*8, 4*8, 6*8, - 8*8, 10*8, 12*8, 14*8, - 16*8, 18*8, 20*8, 22*8, - 24*8, 26*8, 28*8, 30*8 }, - 64*8 /* every char takes 64 consecutive bytes */ -}; - -/* - * The background tiles are interleaved in banks of 2 - * - so we need to create two separate layout structs - * to handle them properly with tilemaps - */ - -/* background tiles */ -static const gfx_layout bglayout = -{ - 16,16, /* 16*16 pixels */ - 512, /* 512 tiles */ - 4, /* 4 bits per pixel */ - { 64*1024*8+4, 64*1024*8+0, 4, 0 }, - { 0, 1, 2, 3, - 8, 9, 10, 11, - 64*8+0, 64*8+1, 64*8+ 2, 64*8+ 3, - 64*8+8, 64*8+9, 64*8+10, 64*8+11 }, - { 0*8, 2*8, 4*8, 6*8, - 8*8, 10*8, 12*8, 14*8, - 16*8, 18*8, 20*8, 22*8, - 24*8, 26*8, 28*8, 30*8 }, - 128*8 /* every tile takes 64/128 consecutive bytes */ -}; - -/* sprites */ -static const gfx_layout spritelayout = -{ - 16,16, /* 16*16 pixels */ - 1024, /* 1024 sprites */ - 4, /* 4 bits per pixel */ - { 64*1024*8+0, 64*1024*8+4, 0, 4 }, - { 0, 1, 2, 3, - 8, 9, 10, 11, - 32*8+0, 32*8+1, 32*8+ 2, 32*8+ 3, - 32*8+8, 32*8+9, 32*8+10, 32*8+11 }, - { 0*8, 2*8, 4*8, 6*8, - 8*8, 10*8, 12*8, 14*8, - 16*8, 18*8, 20*8, 22*8, - 24*8, 26*8, 28*8, 30*8 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0x0000, &charlayout, 0, 16 }, - { REGION_GFX2, 0x0000, &fglayout, 16*4, 16 }, - { REGION_GFX3, 0x0000, &bglayout, 16*4+16*16, 16 }, - { REGION_GFX3, 0x0020, &bglayout, 16*4+16*16, 16 }, - { REGION_GFX4, 0x0000, &spritelayout, 16*4+16*16+16*16, 16 }, - { -1 } /* end of array */ -}; - -static struct MSM5205interface msm5205_interface = -{ - stfight_adpcm_int, /* interrupt function */ - MSM5205_S48_4B /* 8KHz */ -}; - -static MACHINE_DRIVER_START( stfight ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 3000000) /* 3 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu1,writemem_cpu1) - MDRV_CPU_VBLANK_INT(stfight_vb_interrupt,1) - MDRV_CPU_PERIODIC_INT(stfight_interrupt_1,TIME_IN_HZ(30)) - - MDRV_CPU_ADD(Z80, 3000000) - /* audio CPU */ /* 3 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_cpu2,writemem_cpu2) - MDRV_CPU_PERIODIC_INT(irq0_line_hold,TIME_IN_HZ(120)) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(stfight) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256+1) - MDRV_COLORTABLE_LENGTH(16*4+16*16+16*16+16*16) - - MDRV_PALETTE_INIT(stfight) - MDRV_VIDEO_START(stfight) - MDRV_VIDEO_UPDATE(stfight) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.10) - - MDRV_SOUND_ADD(YM2203, 1500000) - MDRV_SOUND_ROUTE(0, "mono", 0.15) - MDRV_SOUND_ROUTE(1, "mono", 0.15) - MDRV_SOUND_ROUTE(2, "mono", 0.15) - MDRV_SOUND_ROUTE(3, "mono", 0.10) - - MDRV_SOUND_ADD(MSM5205, 384000) - MDRV_SOUND_CONFIG(msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( empcity ) - ROM_REGION( 2*0x18000, REGION_CPU1, 0 ) /* 96k for code + 96k for decrypted opcodes */ - ROM_LOAD( "ec_01.rom", 0x00000, 0x8000, CRC(fe01d9b1) SHA1(c4b62d1b7e3a062f6a7a75f49cce5712f9016f98) ) - ROM_LOAD( "ec_02.rom", 0x10000, 0x8000, CRC(b3cf1ef7) SHA1(91bc92293cbb47c38a2552c5beea53894b87d446) ) /* bank switched */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* character data */ - ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* foreground tile pixel data */ - ROM_LOAD( "sf07.bin", 0x10000, 0x8000, CRC(2c6caa5f) SHA1(f6893cb87004979ead331897c684f995f850447e) ) - ROM_LOAD( "sf08.bin", 0x18000, 0x8000, CRC(e11ded31) SHA1(e3e634ad324d51e52d79dd79e5e6e5697cb8d21f) ) - ROM_LOAD( "sf05.bin", 0x00000, 0x8000, CRC(0c099a31) SHA1(dabaf8edc59e4954941cd8176031a358f45a1956) ) - ROM_LOAD( "sf06.bin", 0x08000, 0x8000, CRC(3cc77c31) SHA1(13d2324df5a322d499c9959a6bb3a844edaefb45) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* background tile pixel data */ - ROM_LOAD( "sf13.bin", 0x10000, 0x8000, CRC(0ae48dd3) SHA1(ca3d9aeb9f4343c379cef9282e408fbf8aa67d99) ) - ROM_LOAD( "sf14.bin", 0x18000, 0x8000, CRC(debf5d76) SHA1(eb18c35166eb5f93be98b3c30c7d909c0a68eada) ) - ROM_LOAD( "sf11.bin", 0x00000, 0x8000, CRC(8261ecfe) SHA1(5817f4a0458a949298414fe09c86bbcf50be52f3) ) - ROM_LOAD( "sf12.bin", 0x08000, 0x8000, CRC(71137301) SHA1(087a9f401939bc30f1dafa9916e8d8c564595a57) ) - - ROM_REGION( 0x20000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite data */ - ROM_LOAD( "sf20.bin", 0x10000, 0x8000, CRC(8299f247) SHA1(71891f7b1fbfaed14c3854b7f6e10a3ddb4bd479) ) - ROM_LOAD( "sf21.bin", 0x18000, 0x8000, CRC(b57dc037) SHA1(69ac79a95ba9ace7c9ca7af480a4a10176be5ace) ) - ROM_LOAD( "sf18.bin", 0x00000, 0x8000, CRC(68acd627) SHA1(f98ff9ccb0913711079a2988e8dd08695fb5e107) ) - ROM_LOAD( "sf19.bin", 0x08000, 0x8000, CRC(5170a057) SHA1(9222f9febc222fa0c2eead258ad77c857f6d40c8) ) - - ROM_REGION( 0x10000, REGION_GFX5, 0 ) /* foreground map data */ - ROM_LOAD( "sf09.bin", 0x00000, 0x8000, CRC(8ceaf4fe) SHA1(5698f2ff44c109825b8d9d0b6dd2426624df668b) ) - ROM_LOAD( "sf10.bin", 0x08000, 0x8000, CRC(5a1a227a) SHA1(24928ab218824ae1f5380398ceb90dcad525cc08) ) - - ROM_REGION( 0x10000, REGION_GFX6, 0 ) /* background map data */ - ROM_LOAD( "sf15.bin", 0x00000, 0x8000, CRC(27a310bc) SHA1(dd30d72bc33b0bf7ddaf3ab730e028f51b20152a) ) - ROM_LOAD( "sf16.bin", 0x08000, 0x8000, CRC(3d19ce18) SHA1(38f691a23c96ef672637965c1a13f6d1595f9d51) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.006", 0x0000, 0x0100, CRC(f9424b5b) SHA1(e3bc23213406d35d54f1221f17f25d433df273a2) ) /* text lookup table */ - ROM_LOAD( "82s129.002", 0x0100, 0x0100, CRC(c883d49b) SHA1(e84900ccf6f27e5043e43c0d85ea1e4eee7e52d3) ) /* fg lookup table */ - ROM_LOAD( "82s129.003", 0x0200, 0x0100, CRC(af81882a) SHA1(b1008c991bd8d1157b3479e465ab286c70418b58) ) - ROM_LOAD( "82s129.004", 0x0300, 0x0100, CRC(1831ce7c) SHA1(57afbee9225f0efd63895a5f522e96dc87ca2616) ) /* bg lookup table */ - ROM_LOAD( "82s129.005", 0x0400, 0x0100, CRC(96cb6293) SHA1(1dcdeaa995e6ffa3753b742842c5ffe0f68ef8cd) ) - ROM_LOAD( "82s129.052", 0x0500, 0x0100, CRC(3d915ffc) SHA1(921be6d5e5fc0fdee9c9f545c1c4a0c334e9844c) ) /* sprite lookup table */ - ROM_LOAD( "82s129.066", 0x0600, 0x0100, CRC(51e8832f) SHA1(ed8c00559e7a02bb8c11861d747c8c64c01b7437) ) - ROM_LOAD( "82s129.015", 0x0700, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* timing? (not used) */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* adpcm voice data */ - ROM_LOAD( "sf04.bin", 0x00000, 0x8000, CRC(1b8d0c07) SHA1(c163ccd2b7ed6c84facc075eb1564ca399f3ba17) ) -ROM_END - -/* set just contained the 3 roms cpu.4u, cpu.2u and vid.2p and the prom 82s123.a7 */ -ROM_START( empcityu ) - ROM_REGION( 2*0x18000, REGION_CPU1, 0 ) /* 96k for code + 96k for decrypted opcodes */ - ROM_LOAD( "cpu.4u", 0x00000, 0x8000, CRC(e2c40ea3) SHA1(fd3c21fe3b5faf323a16be54ad2eed23b12c977e) ) - ROM_LOAD( "cpu.2u", 0x10000, 0x8000, CRC(96ee8b81) SHA1(95b516c023766fae79241d4422814e39e268ae7d) ) /* bank switched */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* character data */ - ROM_LOAD( "vid.2p", 0x0000, 0x2000, CRC(15593793) SHA1(ac9ca8a0aa0ce3810f45aa41e74d4946ecced245) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* foreground tile pixel data */ - ROM_LOAD( "sf07.bin", 0x10000, 0x8000, CRC(2c6caa5f) SHA1(f6893cb87004979ead331897c684f995f850447e) ) - ROM_LOAD( "sf08.bin", 0x18000, 0x8000, CRC(e11ded31) SHA1(e3e634ad324d51e52d79dd79e5e6e5697cb8d21f) ) - ROM_LOAD( "sf05.bin", 0x00000, 0x8000, CRC(0c099a31) SHA1(dabaf8edc59e4954941cd8176031a358f45a1956) ) - ROM_LOAD( "sf06.bin", 0x08000, 0x8000, CRC(3cc77c31) SHA1(13d2324df5a322d499c9959a6bb3a844edaefb45) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* background tile pixel data */ - ROM_LOAD( "sf13.bin", 0x10000, 0x8000, CRC(0ae48dd3) SHA1(ca3d9aeb9f4343c379cef9282e408fbf8aa67d99) ) - ROM_LOAD( "sf14.bin", 0x18000, 0x8000, CRC(debf5d76) SHA1(eb18c35166eb5f93be98b3c30c7d909c0a68eada) ) - ROM_LOAD( "sf11.bin", 0x00000, 0x8000, CRC(8261ecfe) SHA1(5817f4a0458a949298414fe09c86bbcf50be52f3) ) - ROM_LOAD( "sf12.bin", 0x08000, 0x8000, CRC(71137301) SHA1(087a9f401939bc30f1dafa9916e8d8c564595a57) ) - - ROM_REGION( 0x20000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite data */ - ROM_LOAD( "sf20.bin", 0x10000, 0x8000, CRC(8299f247) SHA1(71891f7b1fbfaed14c3854b7f6e10a3ddb4bd479) ) - ROM_LOAD( "sf21.bin", 0x18000, 0x8000, CRC(b57dc037) SHA1(69ac79a95ba9ace7c9ca7af480a4a10176be5ace) ) - ROM_LOAD( "sf18.bin", 0x00000, 0x8000, CRC(68acd627) SHA1(f98ff9ccb0913711079a2988e8dd08695fb5e107) ) - ROM_LOAD( "sf19.bin", 0x08000, 0x8000, CRC(5170a057) SHA1(9222f9febc222fa0c2eead258ad77c857f6d40c8) ) - - ROM_REGION( 0x10000, REGION_GFX5, 0 ) /* foreground map data */ - ROM_LOAD( "sf09.bin", 0x00000, 0x8000, CRC(8ceaf4fe) SHA1(5698f2ff44c109825b8d9d0b6dd2426624df668b) ) - ROM_LOAD( "sf10.bin", 0x08000, 0x8000, CRC(5a1a227a) SHA1(24928ab218824ae1f5380398ceb90dcad525cc08) ) - - ROM_REGION( 0x10000, REGION_GFX6, 0 ) /* background map data */ - ROM_LOAD( "sf15.bin", 0x00000, 0x8000, CRC(27a310bc) SHA1(dd30d72bc33b0bf7ddaf3ab730e028f51b20152a) ) - ROM_LOAD( "sf16.bin", 0x08000, 0x8000, CRC(3d19ce18) SHA1(38f691a23c96ef672637965c1a13f6d1595f9d51) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.006", 0x0000, 0x0100, CRC(f9424b5b) SHA1(e3bc23213406d35d54f1221f17f25d433df273a2) ) /* text lookup table */ - ROM_LOAD( "82s129.002", 0x0100, 0x0100, CRC(c883d49b) SHA1(e84900ccf6f27e5043e43c0d85ea1e4eee7e52d3) ) /* fg lookup table */ - ROM_LOAD( "82s129.003", 0x0200, 0x0100, CRC(af81882a) SHA1(b1008c991bd8d1157b3479e465ab286c70418b58) ) - ROM_LOAD( "82s129.004", 0x0300, 0x0100, CRC(1831ce7c) SHA1(57afbee9225f0efd63895a5f522e96dc87ca2616) ) /* bg lookup table */ - ROM_LOAD( "82s129.005", 0x0400, 0x0100, CRC(96cb6293) SHA1(1dcdeaa995e6ffa3753b742842c5ffe0f68ef8cd) ) - ROM_LOAD( "82s129.052", 0x0500, 0x0100, CRC(3d915ffc) SHA1(921be6d5e5fc0fdee9c9f545c1c4a0c334e9844c) ) /* sprite lookup table */ - ROM_LOAD( "82s129.066", 0x0600, 0x0100, CRC(51e8832f) SHA1(ed8c00559e7a02bb8c11861d747c8c64c01b7437) ) - ROM_LOAD( "82s129.015", 0x0700, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* timing? (not used) */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* adpcm voice data */ - ROM_LOAD( "sf04.bin", 0x00000, 0x8000, CRC(1b8d0c07) SHA1(c163ccd2b7ed6c84facc075eb1564ca399f3ba17) ) - - ROM_REGION( 0x020, REGION_USER1, 0 ) - ROM_LOAD( "82s123.a7", 0x0000, 0x0020, CRC(93e2d292) SHA1(af8edd0cfe85f28ede9604cfaf4516d54e5277c9) ) /* ?*/ -ROM_END - -ROM_START( empcityj ) - ROM_REGION( 2*0x18000, REGION_CPU1, 0 ) /* 96k for code + 96k for decrypted opcodes */ - ROM_LOAD( "1.bin", 0x00000, 0x8000, CRC(8162331c) SHA1(f2fdf5fbc52d4ea692fb87fa049c48935a73d67b) ) - ROM_LOAD( "2.bin", 0x10000, 0x8000, CRC(960edea6) SHA1(fd19475e841defe42625a94c40c6390b7e6e7682) ) /* bank switched */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "ec_04.rom", 0x0000, 0x8000, CRC(aa3e7d1e) SHA1(da350384d55f011253d19ce17fc327cd2604257f) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* character data */ - ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* foreground tile pixel data */ - ROM_LOAD( "sf07.bin", 0x10000, 0x8000, CRC(2c6caa5f) SHA1(f6893cb87004979ead331897c684f995f850447e) ) - ROM_LOAD( "sf08.bin", 0x18000, 0x8000, CRC(e11ded31) SHA1(e3e634ad324d51e52d79dd79e5e6e5697cb8d21f) ) - ROM_LOAD( "sf05.bin", 0x00000, 0x8000, CRC(0c099a31) SHA1(dabaf8edc59e4954941cd8176031a358f45a1956) ) - ROM_LOAD( "sf06.bin", 0x08000, 0x8000, CRC(3cc77c31) SHA1(13d2324df5a322d499c9959a6bb3a844edaefb45) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* background tile pixel data */ - ROM_LOAD( "sf13.bin", 0x10000, 0x8000, CRC(0ae48dd3) SHA1(ca3d9aeb9f4343c379cef9282e408fbf8aa67d99) ) - ROM_LOAD( "sf14.bin", 0x18000, 0x8000, CRC(debf5d76) SHA1(eb18c35166eb5f93be98b3c30c7d909c0a68eada) ) - ROM_LOAD( "sf11.bin", 0x00000, 0x8000, CRC(8261ecfe) SHA1(5817f4a0458a949298414fe09c86bbcf50be52f3) ) - ROM_LOAD( "sf12.bin", 0x08000, 0x8000, CRC(71137301) SHA1(087a9f401939bc30f1dafa9916e8d8c564595a57) ) - - ROM_REGION( 0x20000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite data */ - ROM_LOAD( "sf20.bin", 0x10000, 0x8000, CRC(8299f247) SHA1(71891f7b1fbfaed14c3854b7f6e10a3ddb4bd479) ) - ROM_LOAD( "sf21.bin", 0x18000, 0x8000, CRC(b57dc037) SHA1(69ac79a95ba9ace7c9ca7af480a4a10176be5ace) ) - ROM_LOAD( "sf18.bin", 0x00000, 0x8000, CRC(68acd627) SHA1(f98ff9ccb0913711079a2988e8dd08695fb5e107) ) - ROM_LOAD( "sf19.bin", 0x08000, 0x8000, CRC(5170a057) SHA1(9222f9febc222fa0c2eead258ad77c857f6d40c8) ) - - ROM_REGION( 0x10000, REGION_GFX5, 0 ) /* foreground map data */ - ROM_LOAD( "sf09.bin", 0x00000, 0x8000, CRC(8ceaf4fe) SHA1(5698f2ff44c109825b8d9d0b6dd2426624df668b) ) - ROM_LOAD( "sf10.bin", 0x08000, 0x8000, CRC(5a1a227a) SHA1(24928ab218824ae1f5380398ceb90dcad525cc08) ) - - ROM_REGION( 0x10000, REGION_GFX6, 0 ) /* background map data */ - ROM_LOAD( "sf15.bin", 0x00000, 0x8000, CRC(27a310bc) SHA1(dd30d72bc33b0bf7ddaf3ab730e028f51b20152a) ) - ROM_LOAD( "sf16.bin", 0x08000, 0x8000, CRC(3d19ce18) SHA1(38f691a23c96ef672637965c1a13f6d1595f9d51) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.006", 0x0000, 0x0100, CRC(f9424b5b) SHA1(e3bc23213406d35d54f1221f17f25d433df273a2) ) /* text lookup table */ - ROM_LOAD( "82s129.002", 0x0100, 0x0100, CRC(c883d49b) SHA1(e84900ccf6f27e5043e43c0d85ea1e4eee7e52d3) ) /* fg lookup table */ - ROM_LOAD( "82s129.003", 0x0200, 0x0100, CRC(af81882a) SHA1(b1008c991bd8d1157b3479e465ab286c70418b58) ) - ROM_LOAD( "82s129.004", 0x0300, 0x0100, CRC(1831ce7c) SHA1(57afbee9225f0efd63895a5f522e96dc87ca2616) ) /* bg lookup table */ - ROM_LOAD( "82s129.005", 0x0400, 0x0100, CRC(96cb6293) SHA1(1dcdeaa995e6ffa3753b742842c5ffe0f68ef8cd) ) - ROM_LOAD( "82s129.052", 0x0500, 0x0100, CRC(3d915ffc) SHA1(921be6d5e5fc0fdee9c9f545c1c4a0c334e9844c) ) /* sprite lookup table */ - ROM_LOAD( "82s129.066", 0x0600, 0x0100, CRC(51e8832f) SHA1(ed8c00559e7a02bb8c11861d747c8c64c01b7437) ) - ROM_LOAD( "82s129.015", 0x0700, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* timing? (not used) */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* adpcm voice data */ - ROM_LOAD( "sf04.bin", 0x00000, 0x8000, CRC(1b8d0c07) SHA1(c163ccd2b7ed6c84facc075eb1564ca399f3ba17) ) -ROM_END - -ROM_START( stfight ) - ROM_REGION( 2*0x18000, REGION_CPU1, 0 ) /* 96k for code + 96k for decrypted opcodes */ - ROM_LOAD( "a-1.4q", 0x00000, 0x8000, CRC(ff83f316) SHA1(84553ebd96ddbf59a1bcb221d53781980a006925) ) - ROM_LOAD( "sf02.bin", 0x10000, 0x8000, CRC(e626ce9e) SHA1(2c6c5a5cf15cc50217c9864a4d861af8a1b1b5ad) ) /* bank switched */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* character data */ - ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* foreground tile pixel data */ - ROM_LOAD( "sf07.bin", 0x10000, 0x8000, CRC(2c6caa5f) SHA1(f6893cb87004979ead331897c684f995f850447e) ) - ROM_LOAD( "sf08.bin", 0x18000, 0x8000, CRC(e11ded31) SHA1(e3e634ad324d51e52d79dd79e5e6e5697cb8d21f) ) - ROM_LOAD( "sf05.bin", 0x00000, 0x8000, CRC(0c099a31) SHA1(dabaf8edc59e4954941cd8176031a358f45a1956) ) - ROM_LOAD( "sf06.bin", 0x08000, 0x8000, CRC(3cc77c31) SHA1(13d2324df5a322d499c9959a6bb3a844edaefb45) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* background tile pixel data */ - ROM_LOAD( "sf13.bin", 0x10000, 0x8000, CRC(0ae48dd3) SHA1(ca3d9aeb9f4343c379cef9282e408fbf8aa67d99) ) - ROM_LOAD( "sf14.bin", 0x18000, 0x8000, CRC(debf5d76) SHA1(eb18c35166eb5f93be98b3c30c7d909c0a68eada) ) - ROM_LOAD( "sf11.bin", 0x00000, 0x8000, CRC(8261ecfe) SHA1(5817f4a0458a949298414fe09c86bbcf50be52f3) ) - ROM_LOAD( "sf12.bin", 0x08000, 0x8000, CRC(71137301) SHA1(087a9f401939bc30f1dafa9916e8d8c564595a57) ) - - ROM_REGION( 0x20000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite data */ - ROM_LOAD( "sf20.bin", 0x10000, 0x8000, CRC(8299f247) SHA1(71891f7b1fbfaed14c3854b7f6e10a3ddb4bd479) ) - ROM_LOAD( "sf21.bin", 0x18000, 0x8000, CRC(b57dc037) SHA1(69ac79a95ba9ace7c9ca7af480a4a10176be5ace) ) - ROM_LOAD( "sf18.bin", 0x00000, 0x8000, CRC(68acd627) SHA1(f98ff9ccb0913711079a2988e8dd08695fb5e107) ) - ROM_LOAD( "sf19.bin", 0x08000, 0x8000, CRC(5170a057) SHA1(9222f9febc222fa0c2eead258ad77c857f6d40c8) ) - - ROM_REGION( 0x10000, REGION_GFX5, 0 ) /* foreground map data */ - ROM_LOAD( "sf09.bin", 0x00000, 0x8000, CRC(8ceaf4fe) SHA1(5698f2ff44c109825b8d9d0b6dd2426624df668b) ) - ROM_LOAD( "sf10.bin", 0x08000, 0x8000, CRC(5a1a227a) SHA1(24928ab218824ae1f5380398ceb90dcad525cc08) ) - - ROM_REGION( 0x10000, REGION_GFX6, 0 ) /* background map data */ - ROM_LOAD( "sf15.bin", 0x00000, 0x8000, CRC(27a310bc) SHA1(dd30d72bc33b0bf7ddaf3ab730e028f51b20152a) ) - ROM_LOAD( "sf16.bin", 0x08000, 0x8000, CRC(3d19ce18) SHA1(38f691a23c96ef672637965c1a13f6d1595f9d51) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.006", 0x0000, 0x0100, CRC(f9424b5b) SHA1(e3bc23213406d35d54f1221f17f25d433df273a2) ) /* text lookup table */ - ROM_LOAD( "82s129.002", 0x0100, 0x0100, CRC(c883d49b) SHA1(e84900ccf6f27e5043e43c0d85ea1e4eee7e52d3) ) /* fg lookup table */ - ROM_LOAD( "82s129.003", 0x0200, 0x0100, CRC(af81882a) SHA1(b1008c991bd8d1157b3479e465ab286c70418b58) ) - ROM_LOAD( "82s129.004", 0x0300, 0x0100, CRC(1831ce7c) SHA1(57afbee9225f0efd63895a5f522e96dc87ca2616) ) /* bg lookup table */ - ROM_LOAD( "82s129.005", 0x0400, 0x0100, CRC(96cb6293) SHA1(1dcdeaa995e6ffa3753b742842c5ffe0f68ef8cd) ) - ROM_LOAD( "82s129.052", 0x0500, 0x0100, CRC(3d915ffc) SHA1(921be6d5e5fc0fdee9c9f545c1c4a0c334e9844c) ) /* sprite lookup table */ - ROM_LOAD( "82s129.066", 0x0600, 0x0100, CRC(51e8832f) SHA1(ed8c00559e7a02bb8c11861d747c8c64c01b7437) ) - ROM_LOAD( "82s129.015", 0x0700, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* timing? (not used) */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* adpcm voice data */ - ROM_LOAD( "sf04.bin", 0x00000, 0x8000, CRC(1b8d0c07) SHA1(c163ccd2b7ed6c84facc075eb1564ca399f3ba17) ) -ROM_END - -/* not sure if this is a bootleg or not, it still displays the seibu copyright on a screen during the attract mode - but not during the initial startup, must investigate this set more later */ -ROM_START( stfighta ) - ROM_REGION( 2*0x18000, REGION_CPU1, 0 ) /* 96k for code + 96k for decrypted opcodes */ - ROM_LOAD( "sfight2.bin", 0x00000, 0x8000, CRC(8fb4dfc9) SHA1(0350f4a8749883a4e2e9c4aed2447a64a078f9ce) )// 2.bin 58.532715% - ROM_LOAD( "sfight1.bin", 0x10000, 0x8000, CRC(983ce746) SHA1(3c7b9498f1adf253ba651558ee40641ec3dbc5eb) )/* bank switched */ // a-1.4q 99.737549% - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the second CPU */ - ROM_LOAD( "sf03.bin", 0x0000, 0x8000, CRC(6a8cb7a6) SHA1(dc123cc48d3623752b78e7c23dd8d2f5adf84f92) ) - - ROM_REGION( 0x02000, REGION_GFX1, ROMREGION_DISPOSE ) /* character data */ - ROM_LOAD( "sf17.bin", 0x0000, 0x2000, CRC(1b3706b5) SHA1(61f069329a7a836523ffc8cce915b0d0129fd896) ) - - ROM_REGION( 0x20000, REGION_GFX2, ROMREGION_DISPOSE ) /* foreground tile pixel data */ - ROM_LOAD( "sf07.bin", 0x10000, 0x8000, CRC(2c6caa5f) SHA1(f6893cb87004979ead331897c684f995f850447e) ) - ROM_LOAD( "sf08.bin", 0x18000, 0x8000, CRC(e11ded31) SHA1(e3e634ad324d51e52d79dd79e5e6e5697cb8d21f) ) - ROM_LOAD( "sf05.bin", 0x00000, 0x8000, CRC(0c099a31) SHA1(dabaf8edc59e4954941cd8176031a358f45a1956) ) - ROM_LOAD( "sf06.bin", 0x08000, 0x8000, CRC(3cc77c31) SHA1(13d2324df5a322d499c9959a6bb3a844edaefb45) ) - - ROM_REGION( 0x20000, REGION_GFX3, ROMREGION_DISPOSE ) /* background tile pixel data */ - ROM_LOAD( "sf13.bin", 0x10000, 0x8000, CRC(0ae48dd3) SHA1(ca3d9aeb9f4343c379cef9282e408fbf8aa67d99) ) - ROM_LOAD( "sf14.bin", 0x18000, 0x8000, CRC(debf5d76) SHA1(eb18c35166eb5f93be98b3c30c7d909c0a68eada) ) - ROM_LOAD( "sf11.bin", 0x00000, 0x8000, CRC(8261ecfe) SHA1(5817f4a0458a949298414fe09c86bbcf50be52f3) ) - ROM_LOAD( "sf12.bin", 0x08000, 0x8000, CRC(71137301) SHA1(087a9f401939bc30f1dafa9916e8d8c564595a57) ) - - ROM_REGION( 0x20000, REGION_GFX4, ROMREGION_DISPOSE ) /* sprite data */ - ROM_LOAD( "sf20.bin", 0x10000, 0x8000, CRC(8299f247) SHA1(71891f7b1fbfaed14c3854b7f6e10a3ddb4bd479) ) - ROM_LOAD( "sf21.bin", 0x18000, 0x8000, CRC(b57dc037) SHA1(69ac79a95ba9ace7c9ca7af480a4a10176be5ace) ) - ROM_LOAD( "sf18.bin", 0x00000, 0x8000, CRC(68acd627) SHA1(f98ff9ccb0913711079a2988e8dd08695fb5e107) ) - ROM_LOAD( "sf19.bin", 0x08000, 0x8000, CRC(5170a057) SHA1(9222f9febc222fa0c2eead258ad77c857f6d40c8) ) - - ROM_REGION( 0x10000, REGION_GFX5, 0 ) /* foreground map data */ - ROM_LOAD( "sf09.bin", 0x00000, 0x8000, CRC(8ceaf4fe) SHA1(5698f2ff44c109825b8d9d0b6dd2426624df668b) ) - ROM_LOAD( "sf10.bin", 0x08000, 0x8000, CRC(5a1a227a) SHA1(24928ab218824ae1f5380398ceb90dcad525cc08) ) - - ROM_REGION( 0x10000, REGION_GFX6, 0 ) /* background map data */ - ROM_LOAD( "sf15.bin", 0x00000, 0x8000, CRC(27a310bc) SHA1(dd30d72bc33b0bf7ddaf3ab730e028f51b20152a) ) - ROM_LOAD( "sf16.bin", 0x08000, 0x8000, CRC(3d19ce18) SHA1(38f691a23c96ef672637965c1a13f6d1595f9d51) ) - - ROM_REGION( 0x0800, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.006", 0x0000, 0x0100, CRC(f9424b5b) SHA1(e3bc23213406d35d54f1221f17f25d433df273a2) ) /* text lookup table */ - ROM_LOAD( "82s129.002", 0x0100, 0x0100, CRC(c883d49b) SHA1(e84900ccf6f27e5043e43c0d85ea1e4eee7e52d3) ) /* fg lookup table */ - ROM_LOAD( "82s129.003", 0x0200, 0x0100, CRC(af81882a) SHA1(b1008c991bd8d1157b3479e465ab286c70418b58) ) - ROM_LOAD( "82s129.004", 0x0300, 0x0100, CRC(1831ce7c) SHA1(57afbee9225f0efd63895a5f522e96dc87ca2616) ) /* bg lookup table */ - ROM_LOAD( "82s129.005", 0x0400, 0x0100, CRC(96cb6293) SHA1(1dcdeaa995e6ffa3753b742842c5ffe0f68ef8cd) ) - ROM_LOAD( "82s129.052", 0x0500, 0x0100, CRC(3d915ffc) SHA1(921be6d5e5fc0fdee9c9f545c1c4a0c334e9844c) ) /* sprite lookup table */ - ROM_LOAD( "82s129.066", 0x0600, 0x0100, CRC(51e8832f) SHA1(ed8c00559e7a02bb8c11861d747c8c64c01b7437) ) - ROM_LOAD( "82s129.015", 0x0700, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* timing? (not used) */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* adpcm voice data */ - ROM_LOAD( "sf04.bin", 0x00000, 0x8000, CRC(1b8d0c07) SHA1(c163ccd2b7ed6c84facc075eb1564ca399f3ba17) ) -ROM_END - -GAME( 1986, empcity, 0, stfight, stfight, empcity, ROT0, "Seibu Kaihatsu", "Empire City: 1931 (bootleg?)", 0 ) -GAME( 1986, empcityu, empcity, stfight, stfight, stfight, ROT0, "[Seibu Kaihatsu] (Taito / Romstar license)", "Empire City: 1931 (US)", 0 ) -GAME( 1986, empcityj, empcity, stfight, stfight, stfight, ROT0, "[Seibu Kaihatsu] (Taito license)", "Empire City: 1931 (Japan)", 0 ) -GAME( 1986, stfight, empcity, stfight, stfight, stfight, ROT0, "Seibu Kaihatsu", "Street Fight (Germany)", 0 ) -GAME( 1986, stfighta, empcity, stfight, stfight, stfight, ROT0, "Seibu Kaihatsu", "Street Fight", 0 ) diff --git a/src/drivers/suna8.c b/src/drivers/suna8.c deleted file mode 100644 index eac7a468e..000000000 --- a/src/drivers/suna8.c +++ /dev/null @@ -1,2417 +0,0 @@ -/*************************************************************************** - - -= SunA 8 Bit Games =- - - driver by Luca Elia (l.elia@tin.it) - - -Main CPU: Encrypted Z80 (Epoxy Module) -Sound CPU: Z80 [Music] + Z80 [8 Bit PCM, Optional] -Sound Chips: AY8910 + YM3812/YM2203 + DAC x 4 [Optional] - - ---------------------------------------------------------------------------- -Year + Game Game PCB Epoxy CPU Notes ---------------------------------------------------------------------------- -88 Hard Head KRB-14 60138-0083 S562008 Encryption + Protection -88 Rough Ranger K030087 ? S562008 -89 Spark Man KRB-16 60136-081 T568009 Not Working (Protection) -90 Star Fighter ? ? ? Not Working -91 Hard Head 2 ? ? T568009 Encryption + Protection -92 Brick Zone ? ? Yes Not Working ---------------------------------------------------------------------------- - -To Do: - -- Samples playing in rranger, starfigh, sparkman (AY8910 ports A&B) - -Notes: - -- sparkman: to get past the roms test screen put a watchpoint at ca40. - When hit, clear ca41. Most of the garbage you'll see is probably due - to imperfect graphics emulation (e.g. gfx banking) than protection. - -- hardhea2: in test mode press P1&P2 button 2 to see a picture of each level - -***************************************************************************/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/ay8910.h" -#include "sound/2203intf.h" -#include "sound/3812intf.h" -#include "sound/dac.h" -#include "sound/samples.h" - -extern int suna8_text_dim; /* specifies format of text layer */ - -extern UINT8 suna8_rombank, suna8_spritebank, suna8_palettebank; -extern UINT8 suna8_unknown; - -/* Functions defined in vidhrdw: */ - -WRITE8_HANDLER( suna8_spriteram_w ); // for debug -WRITE8_HANDLER( suna8_banked_spriteram_w ); // for debug - -READ8_HANDLER( suna8_banked_paletteram_r ); -READ8_HANDLER( suna8_banked_spriteram_r ); - -WRITE8_HANDLER( suna8_banked_paletteram_w ); -WRITE8_HANDLER( brickzn_banked_paletteram_w ); - -VIDEO_START( suna8_textdim0 ); -VIDEO_START( suna8_textdim8 ); -VIDEO_START( suna8_textdim12 ); -VIDEO_UPDATE( suna8 ); - -/* Functions defined in sndhrdw: */ - -WRITE8_HANDLER( suna8_play_samples_w ); -WRITE8_HANDLER( suna8_samples_number_w ); -void suna8_sh_start(void); - -/*************************************************************************** - - - ROMs Decryption - - -***************************************************************************/ - -/*************************************************************************** - Hard Head -***************************************************************************/ - -DRIVER_INIT( hardhead ) -{ - UINT8 *rom = memory_region(REGION_CPU1); - int i; - - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = - { - 1,1,0,1,1,1,1,0, - }; - int table = ((i & 0x0c00) >> 10) | ((i & 0x4000) >> 12); - - if (swaptable[table]) - rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58; - } - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -/* Non encrypted bootleg */ -static DRIVER_INIT( hardhedb ) -{ - memory_set_decrypted_region(0, 0x0000, 0x7fff, memory_region(REGION_CPU1) + 0x48000); - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -/*************************************************************************** - Brick Zone -***************************************************************************/ - -/* !! BRICKZN3 !! */ - -static UINT8 *brickzn_decrypt(void) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - size_t size = memory_region_length(REGION_CPU1); - UINT8 *decrypt = auto_malloc(size); - int i; - - memory_set_decrypted_region(0, 0x0000, 0x7fff, decrypt); - - /* Opcodes and data */ - for (i = 0; i < 0x50000; i++) - { - static const UINT8 opcode_swaptable[8] = - { - 1,1,1,0,0,1,1,0, - }; - static const UINT8 data_swaptable[16] = - { - 1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1, - }; - int opcode_swap = opcode_swaptable[((i & 0x00c) >> 2) | ((i & 0x040) >> 4)]; - int data_swap = (i >= 0x8000) ? 0 : data_swaptable[(i & 0x003) | ((i & 0x008) >> 1) | ((i & 0x400) >> 7)]; - UINT8 x = RAM[i]; - - if (data_swap) - { - x = BITSWAP8(x, 7,6,5,4,3,2,0,1); - RAM[i] = BITSWAP8(x, 7,2,3,4,5,6,1,0) ^ 0x10; - } - - if (opcode_swap) - x ^= 0x80; - - if (opcode_swap || data_swap) - x = BITSWAP8(x, 7,2,3,4,5,6,1,0) ^ 0x10; - - decrypt[i] = x; - } - - return decrypt; -} - -DRIVER_INIT( brickzn ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - UINT8 *decrypt = brickzn_decrypt(); - int i; - - // restore opcodes which for some reason shouldn't be decrypted... */ - for (i = 0; i < 0x8000; i++) - { - if ( ((i >= 0x0730) && (i <= 0x076f)) || - ((i >= 0x45c5) && (i <= 0x45e4)) || - ((i >= 0x7393) && (i <= 0x73ba)) || - ((i >= 0x7a79) && (i <= 0x7aa9)) ) - { - decrypt[i] = RAM[i]; - } - } - - - /* !!!!!! PATCHES !!!!!! */ - - decrypt[0x3349] = 0xc9; // RET Z -> RET (to avoid: jp $C800) - - decrypt[0x1431] = 0x00; // HALT -> NOP (NMI source??) - decrypt[0x24b5] = 0x00; // HALT -> NOP - decrypt[0x2583] = 0x00; // HALT -> NOP - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); - memory_configure_bank_decrypted(1, 0, 16, decrypt + 0x10000, 0x4000); -} - -DRIVER_INIT( brickzn3 ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - UINT8 *decrypt = brickzn_decrypt(); - int i; - - // restore opcodes which for some reason shouldn't be decrypted... */ - for (i = 0; i < 0x8000; i++) - { - if ( ((i >= 0x0730) && (i <= 0x076f)) || - ((i >= 0x4541) && (i <= 0x4560)) || - ((i >= 0x72f3) && (i <= 0x731a)) || - ((i >= 0x79d9) && (i <= 0x7a09)) ) - { - decrypt[i] = RAM[i]; - } - } - - - /* !!!!!! PATCHES !!!!!! */ - - decrypt[0x3337] = 0xc9; // RET Z -> RET (to avoid: jp $C800) - - decrypt[0x1406] = 0x00; // HALT -> NOP (NMI source??) - decrypt[0x2487] = 0x00; // HALT -> NOP - decrypt[0x256c] = 0x00; // HALT -> NOP - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); - memory_configure_bank_decrypted(1, 0, 16, decrypt + 0x10000, 0x4000); -} - - -/*************************************************************************** - Hard Head 2 -***************************************************************************/ - -DRIVER_INIT( hardhea2 ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - size_t size = memory_region_length(REGION_CPU1); - UINT8 *decrypt = auto_malloc(size); - UINT8 x; - int i; - - memory_set_decrypted_region(0, 0x0000, 0x7fff, decrypt); - - /* Address lines scrambling */ - memcpy(decrypt, RAM, size); - for (i = 0x00000; i < 0x50000; i++) - { -/* -0x1000 to scramble: - dump screen -rom10: 0y, 1y, 2n, 3n 0y,1y,2n,3n - 4n?,5n, 6n, 7n 4n,5n,6n,7n - 8?, 9n, an, bn 8n,9n,an,bn - cy, dy, ey?, cy,dy,en,fn -rom11: n -rom12: n -rom13: 0?, 1y, 2n, 3n ?,?,?,? (palettes) - 4n, 5n, 6n, 7? ?,?,n,n (intro anim) - 8?, 9n?,an, bn y,y,?,? (player anims) - cn, dy, en, fn y,y,n,n -*/ - static const UINT8 swaptable[80] = - { - 1,1,1,1,0,0,1,1, 0,0,0,0,0,0,0,0, // 8000-ffff not used - 1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0, - }; - int addr = i; - - if (swaptable[(i & 0xff000) >> 12]) - addr = (addr & 0xf0000) | BITSWAP16(addr, 15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0); - - RAM[i] = decrypt[addr]; - } - - /* Opcodes */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[32] = - { - 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1, - 1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0, - }; - static const UINT8 xortable[32] = - { - 0x04,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x04,0x45,0x00,0x04,0x00,0x04,0x00,0x00, - 0x04,0x45,0x00,0x04,0x00,0x04,0x00,0x00,0x04,0x04,0x00,0x04,0x00,0x04,0x00,0x00, - }; - int table = (i & 1) | ((i & 0x400) >> 9) | ((i & 0x7000) >> 10); - - x = RAM[i]; - - x = BITSWAP8(x, 7,6,5,3,4,2,1,0) ^ 0x41 ^ xortable[table]; - if (swaptable[table]) - x = BITSWAP8(x, 5,6,7,4,3,2,1,0); - - decrypt[i] = x; - } - - /* Data */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = { 1,1,0,1,0,1,1,0 }; - - if (swaptable[(i & 0x7000) >> 12]) - RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41; - } - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); - memory_configure_bank(2, 0, 2, auto_malloc(0x2000 * 2), 0x2000); -} - - -/*************************************************************************** - Star Fighter -***************************************************************************/ - -DRIVER_INIT( starfigh ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - size_t size = memory_region_length(REGION_CPU1); - UINT8 *decrypt = auto_malloc(size); - UINT8 x; - int i; - - memory_set_decrypted_region(0, 0x0000, 0x7fff, decrypt); - - /* Address lines scrambling */ - memcpy(decrypt, RAM, size); - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = - { - 1,1,1,1,1,1,0,0, - }; - int addr = i; - - if (swaptable[(i & 0x7000) >> 12]) - addr = BITSWAP16(addr, 15,14,13,12,11,10,9,8,6,7,5,4,3,2,1,0); - - RAM[i] = decrypt[addr]; - } - - /* Opcodes */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[32] = - { - 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - }; - static const UINT8 xortable[32] = - { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x41,0x01,0x00,0x00,0x00,0x00, - 0x01,0x01,0x41,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - }; - int table = (i & 0x7c00) >> 10; - - x = RAM[i]; - - x = BITSWAP8(x, 5,6,7,3,4,2,1,0) ^ 0x45 ^ xortable[table]; - if (swaptable[table]) - x = BITSWAP8(x, 5,6,7,4,3,2,1,0) ^ 0x04; - - decrypt[i] = x; - } - - /* Data */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = { 1,1,0,1,0,1,1,0 }; - - if (swaptable[(i & 0x7000) >> 12]) - RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x45; - } - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - - -/*************************************************************************** - Spark Man -***************************************************************************/ - -static DRIVER_INIT( sparkman ) -{ - UINT8 *RAM = memory_region(REGION_CPU1); - size_t size = memory_region_length(REGION_CPU1); - UINT8 *decrypt = auto_malloc(size); - UINT8 x; - int i; - - memory_set_decrypted_region(0, 0x0000, 0x7fff, decrypt); - - /* Address lines scrambling */ - memcpy(decrypt, RAM, size); - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = - { - 1,1,1,1,0,0,1,1, - }; - int addr = i; - - if (swaptable[(i & 0x7000) >> 12]) - addr = BITSWAP16(addr, 15,14,13,12,11,10,9,7,8,6,5,4,3,2,1,0); - - RAM[i] = decrypt[addr]; - } - - /* Opcodes */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[32] = - { - 0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1, - 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, - }; - static const UINT8 xortable[32] = - { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00, - }; - int table = (i & 0x7c00) >> 10; - - x = RAM[i]; - - x = BITSWAP8(x, 5,6,7,3,4,2,1,0) ^ 0x44 ^ xortable[table]; - if (swaptable[table]) - x = BITSWAP8(x, 5,6,7,4,3,2,1,0) ^ 0x04; - - decrypt[i] = x; - } - - /* Data */ - for (i = 0; i < 0x8000; i++) - { - static const UINT8 swaptable[8] = { 1,1,1,0,1,1,0,1 }; - - if (swaptable[(i & 0x7000) >> 12]) - RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x44; - } - - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -/*************************************************************************** - - - Protection - - -***************************************************************************/ - -/*************************************************************************** - Hard Head -***************************************************************************/ - -static UINT8 protection_val; - -static READ8_HANDLER( hardhead_protection_r ) -{ - if (protection_val & 0x80) - return ((~offset & 0x20) ? 0x20 : 0) | - ((protection_val & 0x04) ? 0x80 : 0) | - ((protection_val & 0x01) ? 0x04 : 0); - else - return ((~offset & 0x20) ? 0x20 : 0) | - (((offset ^ protection_val) & 0x01) ? 0x84 : 0); -} - -static WRITE8_HANDLER( hardhead_protection_w ) -{ - if (data & 0x80) protection_val = data; - else protection_val = offset & 1; -} - - -/*************************************************************************** - - - Memory Maps - Main CPU - - -***************************************************************************/ - -/*************************************************************************** - Hard Head -***************************************************************************/ - -static UINT8 *hardhead_ip; - -static READ8_HANDLER( hardhead_ip_r ) -{ - switch (*hardhead_ip) - { - case 0: return readinputport(0); - case 1: return readinputport(1); - case 2: return readinputport(2); - case 3: return readinputport(3); - default: - logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n",activecpu_get_pc(),*hardhead_ip); - return 0xff; - } -} - -/* - 765- ---- Unused (eg. they go into hardhead_flipscreen_w) - ---4 ---- - ---- 3210 ROM Bank -*/ -static WRITE8_HANDLER( hardhead_bankswitch_w ) -{ - int bank = data & 0x0f; - - if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",activecpu_get_pc(),data); - memory_set_bank(1, bank); -} - - -/* - 765- ---- - ---4 3--- Coin Lockout - ---- -2-- Flip Screen - ---- --10 -*/ -static WRITE8_HANDLER( hardhead_flipscreen_w ) -{ - flip_screen_set( data & 0x04); - coin_lockout_w ( 0, data & 0x08); - coin_lockout_w ( 1, data & 0x10); -} - -static ADDRESS_MAP_START( hardhead_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc000, 0xd7ff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xd800, 0xd9ff) AM_READ(MRA8_RAM ) // Palette - AM_RANGE(0xda00, 0xda00) AM_READ(hardhead_ip_r ) // Input Ports - AM_RANGE(0xda80, 0xda80) AM_READ(soundlatch2_r ) // From Sound CPU - AM_RANGE(0xdd80, 0xddff) AM_READ(hardhead_protection_r ) // Protection - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // Sprites -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc000, 0xd7ff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xd800, 0xd9ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram ) // Palette - AM_RANGE(0xda00, 0xda00) AM_WRITE(MWA8_RAM) AM_BASE(&hardhead_ip ) // Input Port Select - AM_RANGE(0xda80, 0xda80) AM_WRITE(hardhead_bankswitch_w ) // ROM Banking - AM_RANGE(0xdb00, 0xdb00) AM_WRITE(soundlatch_w ) // To Sound CPU - AM_RANGE(0xdb80, 0xdb80) AM_WRITE(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout - AM_RANGE(0xdc00, 0xdc00) AM_WRITE(MWA8_NOP ) // <- R (after bank select) - AM_RANGE(0xdc80, 0xdc80) AM_WRITE(MWA8_NOP ) // <- R (after bank select) - AM_RANGE(0xdd00, 0xdd00) AM_WRITE(MWA8_NOP ) // <- R (after ip select) - AM_RANGE(0xdd80, 0xddff) AM_WRITE(hardhead_protection_w ) // Protection - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_spriteram_w) AM_BASE(&spriteram ) // Sprites -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(MRA8_NOP ) // ? IRQ Ack -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/*************************************************************************** - Rough Ranger -***************************************************************************/ - -/* - 76-- ---- Coin Lockout - --5- ---- Flip Screen - ---4 ---- ROM Bank - ---- 3--- - ---- -210 ROM Bank -*/ -static WRITE8_HANDLER( rranger_bankswitch_w ) -{ - int bank = data & 0x07; - if ((~data & 0x10) && (bank >= 4)) bank += 4; - - if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",activecpu_get_pc(),data); - - memory_set_bank(1, bank); - - flip_screen_set( data & 0x20); - coin_lockout_w ( 0, data & 0x40); - coin_lockout_w ( 1, data & 0x80); -} - -/* - 7--- ---- 1 -> Garbled title (another romset?) - -654 ---- - ---- 3--- 1 -> No sound (soundlatch full?) - ---- -2-- - ---- --1- 1 -> Interlude screens - ---- ---0 -*/ -static READ8_HANDLER( rranger_soundstatus_r ) -{ - return 0x02; -} - -static ADDRESS_MAP_START( rranger_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc000, 0xc000) AM_READ(watchdog_reset_r ) // Watchdog (Tested!) - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_0_r ) // P1 (Inputs) - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_1_r ) // P2 - AM_RANGE(0xc004, 0xc004) AM_READ(rranger_soundstatus_r ) // Latch Status? - AM_RANGE(0xc200, 0xc200) AM_READ(MRA8_NOP ) // Protection? - AM_RANGE(0xc280, 0xc280) AM_READ(input_port_2_r ) // DSW 1 - AM_RANGE(0xc2c0, 0xc2c0) AM_READ(input_port_3_r ) // DSW 2 - AM_RANGE(0xc600, 0xc7ff) AM_READ(MRA8_RAM ) // Palette - AM_RANGE(0xc800, 0xdfff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // Sprites -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc000, 0xc000) AM_WRITE(soundlatch_w ) // To Sound CPU - AM_RANGE(0xc002, 0xc002) AM_WRITE(rranger_bankswitch_w ) // ROM Banking - AM_RANGE(0xc200, 0xc200) AM_WRITE(MWA8_NOP ) // Protection? - AM_RANGE(0xc280, 0xc280) AM_WRITE(MWA8_NOP ) // ? NMI Ack - AM_RANGE(0xc600, 0xc7ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram ) // Palette - AM_RANGE(0xc800, 0xdfff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_spriteram_w) AM_BASE(&spriteram ) // Sprites -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(MRA8_NOP ) // ? IRQ Ack -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/*************************************************************************** - Brick Zone -***************************************************************************/ - -/* -? -*/ -static READ8_HANDLER( brickzn_c140_r ) -{ - return 0xff; -} - -/* -*/ -static WRITE8_HANDLER( brickzn_palettebank_w ) -{ - suna8_palettebank = (data >> 1) & 1; - if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",activecpu_get_pc(),data); - - /* Also used as soundlatch - depending on c0c0? */ - soundlatch_w(0,data); -} - -/* - 7654 32-- - ---- --1- Ram Bank - ---- ---0 Flip Screen -*/ -static WRITE8_HANDLER( brickzn_spritebank_w ) -{ - suna8_spritebank = (data >> 1) & 1; - if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",activecpu_get_pc(),data); - flip_screen_set( data & 0x01 ); -} - -static WRITE8_HANDLER( brickzn_unknown_w ) -{ - suna8_unknown = data; -} - -/* - 7654 ---- - ---- 3210 ROM Bank -*/ -static WRITE8_HANDLER( brickzn_rombank_w ) -{ - int bank = data & 0x0f; - - if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",activecpu_get_pc(),data); - - memory_set_bank(1, bank); - suna8_rombank = data; -} - -static ADDRESS_MAP_START( brickzn_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc100, 0xc100) AM_READ(input_port_0_r ) // P1 (Buttons) - AM_RANGE(0xc101, 0xc101) AM_READ(input_port_1_r ) // P2 - AM_RANGE(0xc102, 0xc102) AM_READ(input_port_2_r ) // DSW 1 - AM_RANGE(0xc103, 0xc103) AM_READ(input_port_3_r ) // DSW 2 - AM_RANGE(0xc108, 0xc108) AM_READ(input_port_4_r ) // P1 (Analog) - AM_RANGE(0xc10c, 0xc10c) AM_READ(input_port_5_r ) // P2 - AM_RANGE(0xc140, 0xc140) AM_READ(brickzn_c140_r ) // ??? - AM_RANGE(0xc600, 0xc7ff) AM_READ(suna8_banked_paletteram_r ) // Palette (Banked) - AM_RANGE(0xc800, 0xdfff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_READ(suna8_banked_spriteram_r ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_rombank_w ) // ROM Bank - AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_spritebank_w ) // Sprite RAM Bank + Flip Screen - AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE(brickzn_palettebank_w ) // Palette RAM Bank + ? - AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(brickzn_unknown_w ) // ??? - AM_RANGE(0xc600, 0xc7ff) AM_WRITE(brickzn_banked_paletteram_w ) // Palette (Banked) - AM_RANGE(0xc800, 0xdfff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/*************************************************************************** - Hard Head 2 -***************************************************************************/ - -static UINT8 suna8_nmi_enable; - -/* Probably wrong: */ -static WRITE8_HANDLER( hardhea2_nmi_w ) -{ - suna8_nmi_enable = data & 0x01; -// if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 321- - ---- ---0 Flip Screen -*/ -static WRITE8_HANDLER( hardhea2_flipscreen_w ) -{ - flip_screen_set(data & 0x01); - if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",activecpu_get_pc(),data); -} - -WRITE8_HANDLER( hardhea2_leds_w ) -{ - set_led_status(0, data & 0x01); - set_led_status(1, data & 0x02); - coin_counter_w(0, data & 0x04); - if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 32-- - ---- --1- Ram Bank - ---- ---0 Ram Bank? -*/ -static WRITE8_HANDLER( hardhea2_spritebank_w ) -{ - suna8_spritebank = (data >> 1) & 1; - if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 ---- - ---- 3210 ROM Bank -*/ -static WRITE8_HANDLER( hardhea2_rombank_w ) -{ - int bank = data & 0x0f; - - if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",activecpu_get_pc(),data); - - memory_set_bank(1, bank); - suna8_rombank = data; -} - -static WRITE8_HANDLER( hardhea2_spritebank_0_w ) -{ - suna8_spritebank = 0; -} -static WRITE8_HANDLER( hardhea2_spritebank_1_w ) -{ - suna8_spritebank = 1; -} - -static WRITE8_HANDLER( hardhea2_rambank_0_w ) -{ - memory_set_bank(2, 0); -} -static WRITE8_HANDLER( hardhea2_rambank_1_w ) -{ - memory_set_bank(2, 1); -} - - -static ADDRESS_MAP_START( hardhea2_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r ) // P1 (Inputs) - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r ) // P2 - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r ) // DSW 1 - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r ) // DSW 2 - AM_RANGE(0xc080, 0xc080) AM_READ(input_port_4_r ) // vblank? - AM_RANGE(0xc600, 0xc7ff) AM_READ(paletteram_r ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_READ(MRA8_BANK2 ) // RAM (Banked?) - AM_RANGE(0xe000, 0xffff) AM_READ(suna8_banked_spriteram_r ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhea2_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc200, 0xc200) AM_WRITE(hardhea2_spritebank_w ) // Sprite RAM Bank - AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?) - - // *** Protection - AM_RANGE(0xc28c, 0xc28c) AM_WRITE(hardhea2_rombank_w ) - // Protection *** - - AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen - AM_RANGE(0xc380, 0xc380) AM_WRITE(hardhea2_nmi_w ) // ? NMI related ? - AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter - AM_RANGE(0xc480, 0xc480) AM_WRITE(MWA8_NOP ) // ~ROM Bank - AM_RANGE(0xc500, 0xc500) AM_WRITE(soundlatch_w ) // To Sound CPU - - // *** Protection - AM_RANGE(0xc50f, 0xc50f) AM_WRITE(hardhea2_spritebank_1_w ) - AM_RANGE(0xc508, 0xc508) AM_WRITE(hardhea2_spritebank_0_w ) - - AM_RANGE(0xc507, 0xc507) AM_WRITE(hardhea2_rambank_1_w ) - AM_RANGE(0xc522, 0xc522) AM_WRITE(hardhea2_rambank_0_w ) - - AM_RANGE(0xc556, 0xc556) AM_WRITE(hardhea2_rambank_1_w ) - AM_RANGE(0xc528, 0xc528) AM_WRITE(hardhea2_rambank_0_w ) - - AM_RANGE(0xc560, 0xc560) AM_WRITE(hardhea2_rambank_1_w ) - AM_RANGE(0xc533, 0xc533) AM_WRITE(hardhea2_rambank_0_w ) - // Protection *** - - AM_RANGE(0xc600, 0xc7ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_WRITE(MWA8_BANK2 ) // RAM (Banked?) - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked) -ADDRESS_MAP_END - - -/*************************************************************************** - Star Fighter -***************************************************************************/ - -static UINT8 spritebank_latch; -static WRITE8_HANDLER( starfigh_spritebank_latch_w ) -{ - spritebank_latch = (data >> 2) & 1; - if (data & ~0x04) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",activecpu_get_pc(),data); -} - -static WRITE8_HANDLER( starfigh_spritebank_w ) -{ - suna8_spritebank = spritebank_latch; -} - -static ADDRESS_MAP_START( starfigh_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r ) // P1 (Inputs) - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r ) // P2 - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r ) // DSW 1 - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r ) // DSW 2 - AM_RANGE(0xc600, 0xc7ff) AM_READ(suna8_banked_paletteram_r ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_READ(suna8_banked_spriteram_r ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( starfigh_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc200, 0xc200) AM_WRITE(starfigh_spritebank_w ) // Sprite RAM Bank - AM_RANGE(0xc380, 0xc3ff) AM_WRITE(starfigh_spritebank_latch_w ) // Sprite RAM Bank - AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?) - AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen - AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter - AM_RANGE(0xc500, 0xc500) AM_WRITE(soundlatch_w ) // To Sound CPU - AM_RANGE(0xc600, 0xc7ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( starfigh_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( starfigh_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/*************************************************************************** - Spark Man -***************************************************************************/ - -/* Probably wrong: */ -static WRITE8_HANDLER( sparkman_nmi_w ) -{ - suna8_nmi_enable = data & 0x01; - if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 321- - ---- ---0 Flip Screen -*/ -static WRITE8_HANDLER( sparkman_flipscreen_w ) -{ - flip_screen_set(data & 0x01); - if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",activecpu_get_pc(),data); -} - -WRITE8_HANDLER( sparkman_leds_w ) -{ - set_led_status(0, data & 0x01); - set_led_status(1, data & 0x02); - coin_counter_w(0, data & 0x04); - if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 32-- - ---- --1- Ram Bank - ---- ---0 Ram Bank? -*/ -static WRITE8_HANDLER( sparkman_spritebank_w ) -{ - suna8_spritebank = (data >> 1) & 1; - if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",activecpu_get_pc(),data); -} - -/* - 7654 ---- - ---- 3210 ROM Bank -*/ -static WRITE8_HANDLER( sparkman_rombank_w ) -{ - int bank = data & 0x0f; - - if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",activecpu_get_pc(),data); - - memory_set_bank(1, bank); - suna8_rombank = data; -} - -static READ8_HANDLER( sparkman_c0a3_r ) -{ - return (cpu_getcurrentframe() & 1) ? 0x80 : 0; -} - -static ADDRESS_MAP_START( sparkman_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM - AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r ) // P1 (Inputs) - AM_RANGE(0xc001, 0xc001) AM_READ(input_port_1_r ) // P2 - AM_RANGE(0xc002, 0xc002) AM_READ(input_port_2_r ) // DSW 1 - AM_RANGE(0xc003, 0xc003) AM_READ(input_port_3_r ) // DSW 2 - AM_RANGE(0xc080, 0xc080) AM_READ(input_port_4_r ) // Buttons - AM_RANGE(0xc0a3, 0xc0a3) AM_READ(sparkman_c0a3_r ) // ??? - AM_RANGE(0xc600, 0xc7ff) AM_READ(paletteram_r ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_READ(suna8_banked_spriteram_r ) // Sprites (Banked) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sparkman_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM - AM_RANGE(0xc200, 0xc200) AM_WRITE(sparkman_spritebank_w ) // Sprite RAM Bank - AM_RANGE(0xc280, 0xc280) AM_WRITE(sparkman_rombank_w ) // ROM Bank (?mirrored up to c2ff?) - AM_RANGE(0xc300, 0xc300) AM_WRITE(sparkman_flipscreen_w ) // Flip Screen - AM_RANGE(0xc380, 0xc380) AM_WRITE(sparkman_nmi_w ) // ? NMI related ? - AM_RANGE(0xc400, 0xc400) AM_WRITE(sparkman_leds_w ) // Leds + Coin Counter - AM_RANGE(0xc500, 0xc500) AM_WRITE(soundlatch_w ) // To Sound CPU - AM_RANGE(0xc600, 0xc7ff) AM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE(&paletteram ) // Palette (Banked??) - AM_RANGE(0xc800, 0xdfff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xe000, 0xffff) AM_WRITE(suna8_banked_spriteram_w ) // Sprites (Banked) -ADDRESS_MAP_END - - -/*************************************************************************** - - - Memory Maps - Sound CPU(s) - - -***************************************************************************/ - -/*************************************************************************** - Hard Head -***************************************************************************/ - -static ADDRESS_MAP_START( hardhead_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xc800, 0xc800) AM_READ(YM3812_status_port_0_r ) // ? unsure - AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_r ) // From Main CPU -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_w ) // - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM3812_control_port_0_w ) // YM3812 - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM3812_write_port_0_w ) - AM_RANGE(0xa002, 0xa002) AM_WRITE(AY8910_control_port_0_w ) // AY8910 - AM_RANGE(0xa003, 0xa003) AM_WRITE(AY8910_write_port_0_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(MRA8_NOP ) // ? IRQ Ack -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hardhead_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - - -/*************************************************************************** - Rough Ranger -***************************************************************************/ - -static ADDRESS_MAP_START( rranger_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xd800, 0xd800) AM_READ(soundlatch_r ) // From Main CPU -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch2_w ) // - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM2203_control_port_0_w ) // YM2203 - AM_RANGE(0xa001, 0xa001) AM_WRITE(YM2203_write_port_0_w ) - AM_RANGE(0xa002, 0xa002) AM_WRITE(YM2203_control_port_1_w ) // AY8910 - AM_RANGE(0xa003, 0xa003) AM_WRITE(YM2203_write_port_1_w ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rranger_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/*************************************************************************** - Brick Zone -***************************************************************************/ - -static ADDRESS_MAP_START( brickzn_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM ) // ROM - AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM ) // RAM - AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r ) // From Main CPU -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM ) // ROM - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM3812_control_port_0_w ) // YM3812 - AM_RANGE(0xc001, 0xc001) AM_WRITE(YM3812_write_port_0_w ) - AM_RANGE(0xc002, 0xc002) AM_WRITE(AY8910_control_port_0_w ) // AY8910 - AM_RANGE(0xc003, 0xc003) AM_WRITE(AY8910_write_port_0_w ) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM ) // RAM - AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_w ) // To PCM CPU -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brickzn_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -ADDRESS_MAP_END - - -/* PCM Z80 , 4 DACs (4 bits per sample), NO RAM !! */ - -static ADDRESS_MAP_START( brickzn_pcm_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_READ(MRA8_ROM ) // ROM -ADDRESS_MAP_END -static ADDRESS_MAP_START( brickzn_pcm_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xffff) AM_WRITE(MWA8_ROM ) // ROM -ADDRESS_MAP_END - - -static WRITE8_HANDLER( brickzn_pcm_w ) -{ - DAC_signed_data_w( offset, (data & 0xf) * 0x11 ); -} - -static ADDRESS_MAP_START( brickzn_pcm_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(soundlatch2_r ) // From Sound CPU -ADDRESS_MAP_END -static ADDRESS_MAP_START( brickzn_pcm_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC -ADDRESS_MAP_END - - - -/*************************************************************************** - - - Input Ports - - -***************************************************************************/ - -#define JOY(_n_) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(_n_) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START##_n_ ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN##_n_ ) - -/*************************************************************************** - Hard Head -***************************************************************************/ - -INPUT_PORTS_START( hardhead ) - - PORT_START_TAG("IN0") // Player 1 - $da00 (ip = 0) - JOY(1) - - PORT_START_TAG("IN1") // Player 2 - $da00 (ip = 1) - JOY(2) - - PORT_START_TAG("IN2") // DSW 1 - $da00 (ip = 2) - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e, 0x0e, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0e, "No Bonus" ) - PORT_DIPSETTING( 0x0c, "10K" ) - PORT_DIPSETTING( 0x0a, "20K" ) - PORT_DIPSETTING( 0x08, "50K" ) - PORT_DIPSETTING( 0x06, "50K, Every 50K" ) - PORT_DIPSETTING( 0x04, "100K, Every 50K" ) - PORT_DIPSETTING( 0x02, "100K, Every 100K" ) - PORT_DIPSETTING( 0x00, "200K, Every 100K" ) - PORT_DIPNAME( 0x70, 0x70, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x80, 0x80, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN3") //DSW 2 - $da00 (ip = 3) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Play Together" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x18, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0xa0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, "Moderate" ) - PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -/*************************************************************************** - Rough Ranger -***************************************************************************/ - -INPUT_PORTS_START( rranger ) - - PORT_START_TAG("IN0") // Player 1 - $c002 - JOY(1) - - PORT_START_TAG("IN1") // Player 2 - $c003 - JOY(2) - - PORT_START_TAG("IN2") //DSW 1 - $c280 - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10K" ) - PORT_DIPSETTING( 0x28, "30K" ) - PORT_DIPSETTING( 0x20, "50K" ) - PORT_DIPSETTING( 0x18, "50K, Every 50K" ) - PORT_DIPSETTING( 0x10, "100K, Every 50K" ) - PORT_DIPSETTING( 0x08, "100K, Every 100K" ) - PORT_DIPSETTING( 0x00, "100K, Every 200K" ) - PORT_DIPSETTING( 0x38, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("IN3") // DSW 2 - $c2c0 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Play Together" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x20, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Invulnerability (Cheat)") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - - -/*************************************************************************** - Brick Zone -***************************************************************************/ - -INPUT_PORTS_START( brickzn ) - - PORT_START_TAG("IN0") // Player 1 - $c100 - JOY(1) - - PORT_START_TAG("IN1") // Player 2 - $c101 - JOY(2) - - PORT_START_TAG("IN2") // DSW 1 - $c102 - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) // rom 38:b840 - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x38, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0x28, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, "Moderate" ) - PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -// PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)") -// PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) -// PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) // + Invulnerability - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // DSW 2 - $c103 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Play Together" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10K" ) - PORT_DIPSETTING( 0x28, "30K" ) - PORT_DIPSETTING( 0x18, "50K, Every 50K" ) - PORT_DIPSETTING( 0x20, "50K" ) - PORT_DIPSETTING( 0x10, "100K, Every 50K" ) - PORT_DIPSETTING( 0x08, "100K, Every 100K" ) - PORT_DIPSETTING( 0x00, "200K, Every 100K" ) - PORT_DIPSETTING( 0x38, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START_TAG("IN4") // Player 1 - $c108 - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_REVERSE - - PORT_START_TAG("IN5") // Player 2 - $c10c - PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(0) PORT_REVERSE - -INPUT_PORTS_END - - -/*************************************************************************** - Hard Head 2 / Star Fighter -***************************************************************************/ - -INPUT_PORTS_START( hardhea2 ) - - PORT_START_TAG("IN0") // Player 1 - $c000 - JOY(1) - - PORT_START_TAG("IN1") // Player 2 - $c001 - JOY(2) - - PORT_START_TAG("IN2") // DSW 1 - $c002 - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x38, 0x18, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x38, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0x28, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x20, "Moderate" ) - PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // DSW 2 - $c003 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Play Together" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10K" ) - PORT_DIPSETTING( 0x28, "30K" ) - PORT_DIPSETTING( 0x18, "50K, Every 50K" ) - PORT_DIPSETTING( 0x20, "50K" ) - PORT_DIPSETTING( 0x10, "100K, Every 50K" ) - PORT_DIPSETTING( 0x08, "100K, Every 100K" ) - PORT_DIPSETTING( 0x00, "200K, Every 100K" ) - PORT_DIPSETTING( 0x38, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START_TAG("IN4") // Buttons - $c080 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_VBLANK ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -INPUT_PORTS_END - - -/*************************************************************************** - Spark Man -***************************************************************************/ - -INPUT_PORTS_START( sparkman ) - - PORT_START_TAG("IN0") // Player 1 - $c000 - JOY(1) - - PORT_START_TAG("IN1") // Player 2 - $c001 - JOY(2) - - PORT_START_TAG("IN2") // DSW 1 - $c002 - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Very_Easy) ) - PORT_DIPSETTING( 0x28, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x38, "Moderate" ) - PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Harder ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Very_Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN3") // DSW 2 - $c003 - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x04, 0x04, "Play Together" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x38, "10K" ) - PORT_DIPSETTING( 0x28, "30K" ) - PORT_DIPSETTING( 0x18, "50K, Every 50K" ) - PORT_DIPSETTING( 0x20, "50K" ) - PORT_DIPSETTING( 0x10, "100K, Every 50K" ) - PORT_DIPSETTING( 0x08, "100K, Every 100K" ) - PORT_DIPSETTING( 0x00, "200K, Every 100K" ) - PORT_DIPSETTING( 0x30, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x80, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x40, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - - PORT_START_TAG("IN4") // Buttons - $c080 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -INPUT_PORTS_END - - -/*************************************************************************** - - - Graphics Layouts - - -***************************************************************************/ - -/* 8x8x4 tiles (2 bitplanes per ROM) */ -static const gfx_layout layout_8x8x4 = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { RGN_FRAC(1,2) + 0, RGN_FRAC(1,2) + 4, 0, 4 }, - { 3,2,1,0, 11,10,9,8}, - { STEP8(0,16) }, - 8*8*2 -}; - -static const gfx_decode suna8_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &layout_8x8x4, 0, 16 }, // [0] Sprites - { -1 } -}; - - - -/*************************************************************************** - - - Machine Drivers - - -***************************************************************************/ - -static void soundirq(int state) -{ - cpunum_set_input_line(1, 0, state); -} - -/* In games with only 2 CPUs, port A&B of the AY8910 are used - for sample playing. */ - -/*************************************************************************** - Hard Head -***************************************************************************/ - -/* 1 x 24 MHz crystal */ - -static struct AY8910interface hardhead_ay8910_interface = -{ - 0, - 0, - suna8_play_samples_w, - suna8_samples_number_w -}; - -static struct Samplesinterface custom_interface = -{ - 1, - NULL, - suna8_sh_start -}; - -static MACHINE_DRIVER_START( hardhead ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 24000000 / 4) /* ? */ - MDRV_CPU_PROGRAM_MAP(hardhead_readmem,hardhead_writemem) - MDRV_CPU_IO_MAP(hardhead_readport,hardhead_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* No NMI */ - - MDRV_CPU_ADD(Z80, 24000000 / 4) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem) - MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* No NMI */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(suna8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(suna8_textdim12) - MDRV_VIDEO_UPDATE(suna8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(AY8910, 24000000 / 16) - MDRV_SOUND_CONFIG(hardhead_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - - - -/*************************************************************************** - Rough Ranger -***************************************************************************/ - -/* 1 x 24 MHz crystal */ - -/* 2203 + 8910 */ -static MACHINE_DRIVER_START( rranger ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 24000000 / 4) /* ? */ - MDRV_CPU_PROGRAM_MAP(rranger_readmem,rranger_writemem) - MDRV_CPU_IO_MAP(rranger_readport,rranger_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* IRQ & NMI ! */ - - MDRV_CPU_ADD(Z80, 24000000 / 4) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(rranger_sound_readmem,rranger_sound_writemem) - MDRV_CPU_IO_MAP(rranger_sound_readport,rranger_sound_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* NMI = retn */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(suna8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(suna8_textdim8) - MDRV_VIDEO_UPDATE(suna8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(YM2203, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - Brick Zone -***************************************************************************/ - -/* 1 x 24 MHz crystal */ - -static struct YM3812interface brickzn_ym3812_interface = -{ - soundirq /* IRQ Line */ -}; - -INTERRUPT_GEN( brickzn_interrupt ) -{ - if (cpu_getiloops()) cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - else cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static MACHINE_DRIVER_START( brickzn ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 24000000 / 4) /* SUNA PROTECTION BLOCK */ - MDRV_CPU_PROGRAM_MAP(brickzn_readmem,brickzn_writemem) - MDRV_CPU_IO_MAP(brickzn_readport,brickzn_writeport) -// MDRV_CPU_VBLANK_INT(brickzn_interrupt, 2) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) // nmi breaks ramtest but is needed! - - MDRV_CPU_ADD_TAG("sound", Z80, 24000000 / 4) /* Z0840006PSC */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(brickzn_sound_readmem,brickzn_sound_writemem) - MDRV_CPU_IO_MAP(brickzn_sound_readport,brickzn_sound_writeport) - - MDRV_CPU_ADD_TAG("pcm", Z80, 24000000 / 4) /* Z0840006PSC */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(brickzn_pcm_readmem,brickzn_pcm_writemem) - MDRV_CPU_IO_MAP(brickzn_pcm_readport,brickzn_pcm_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) // we're using IPT_VBLANK - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(suna8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(suna8_textdim0) - MDRV_VIDEO_UPDATE(suna8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_CONFIG(brickzn_ym3812_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(AY8910, 24000000 / 16) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.33) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.33) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.17) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.17) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.17) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.17) -MACHINE_DRIVER_END - - -/*************************************************************************** - Hard Head 2 -***************************************************************************/ - -/* 1 x 24 MHz crystal */ - -INTERRUPT_GEN( hardhea2_interrupt ) -{ - if (cpu_getiloops()) - { - if (suna8_nmi_enable) cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - else cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static MACHINE_RESET( hardhea2 ) -{ - hardhea2_rambank_0_w(0,0); -} - -static MACHINE_DRIVER_START( hardhea2 ) - - MDRV_IMPORT_FROM( brickzn ) - MDRV_CPU_MODIFY("main") /* SUNA T568009 */ - MDRV_CPU_PROGRAM_MAP(hardhea2_readmem,hardhea2_writemem) - MDRV_CPU_VBLANK_INT(hardhea2_interrupt,2) /* IRQ & NMI */ - - MDRV_MACHINE_RESET(hardhea2) - MDRV_PALETTE_LENGTH(256) -MACHINE_DRIVER_END - - -/*************************************************************************** - Star Fighter -***************************************************************************/ - -static struct AY8910interface starfigh_ay8910_interface = -{ - 0, - 0, - suna8_play_samples_w, - suna8_samples_number_w -}; - -static MACHINE_DRIVER_START( starfigh ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 24000000 / 4) /* ? */ - MDRV_CPU_PROGRAM_MAP(starfigh_readmem,starfigh_writemem) - MDRV_CPU_IO_MAP(starfigh_readport,starfigh_writeport) - MDRV_CPU_VBLANK_INT(brickzn_interrupt,2) /* IRQ & NMI */ - - /* The sound section is identical to that of hardhead */ - MDRV_CPU_ADD(Z80, 24000000 / 4) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem) - MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* No NMI */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(suna8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(256) - - MDRV_VIDEO_START(suna8_textdim0) - MDRV_VIDEO_UPDATE(suna8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(AY8910, 24000000 / 16) - MDRV_SOUND_CONFIG(starfigh_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - Spark Man -***************************************************************************/ - -static INTERRUPT_GEN( sparkman_interrupt ) -{ - if (cpu_getiloops()) - { - if (suna8_nmi_enable) cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); - } - else cpunum_set_input_line(0, 0, HOLD_LINE); -} - -static MACHINE_DRIVER_START( sparkman ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 24000000 / 4) /* ? */ - MDRV_CPU_PROGRAM_MAP(sparkman_readmem,sparkman_writemem) - MDRV_CPU_VBLANK_INT(sparkman_interrupt,2) /* IRQ & NMI */ - - MDRV_CPU_ADD(Z80, 24000000 / 4) - /* audio CPU */ /* ? */ - MDRV_CPU_PROGRAM_MAP(hardhead_sound_readmem,hardhead_sound_writemem) - MDRV_CPU_IO_MAP(hardhead_sound_readport,hardhead_sound_writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* No NMI */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) - MDRV_GFXDECODE(suna8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512) - - MDRV_VIDEO_START(suna8_textdim0) - MDRV_VIDEO_UPDATE(suna8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM3812, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) - - MDRV_SOUND_ADD(AY8910, 24000000 / 16) - MDRV_SOUND_CONFIG(hardhead_ay8910_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.30) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.30) - - MDRV_SOUND_ADD(SAMPLES, 0) - MDRV_SOUND_CONFIG(custom_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - - -/*************************************************************************** - - - ROMs Loading - - -***************************************************************************/ - -/*************************************************************************** - - Hard Head - -Location Type File ID Checksum -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -L5 27C256 P1 1327 [ main program ] -K5 27C256 P2 50B1 [ main program ] -J5 27C256 P3 CF73 [ main program ] -I5 27C256 P4 DE86 [ main program ] -D5 27C256 P5 94D1 [ background ] -A5 27C256 P6 C3C7 [ motion obj. ] -L7 27C256 P7 A7B8 [ main program ] -K7 27C256 P8 5E53 [ main program ] -J7 27C256 P9 35FC [ main program ] -I7 27C256 P10 8F9A [ main program ] -D7 27C256 P11 931C [ background ] -A7 27C256 P12 2EED [ motion obj. ] -H9 27C256 P13 5CD2 [ snd program ] -M9 27C256 P14 5576 [ sound data ] - -Note: Game No. KRB-14 - PCB No. 60138-0083 - -Main processor - Custom security block (battery backed) CPU No. S562008 - -Sound processor - Z80 - - YM3812 - - AY-3-8910 - -24 MHz crystal - -***************************************************************************/ - -ROM_START( hardhead ) - ROM_REGION( 0x48000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "p1", 0x00000, 0x8000, CRC(c6147926) SHA1(8d1609aaeac344c6aec102e92d34caab22a8ec64) ) // 1988,9,14 - ROM_LOAD( "p2", 0x10000, 0x8000, CRC(faa2cf9a) SHA1(5987f146b58fcbc3aaa9c010d86022b5172bcfb4) ) - ROM_LOAD( "p3", 0x18000, 0x8000, CRC(3d24755e) SHA1(519a179594956f7c3ddfaca362c42b453c928e25) ) - ROM_LOAD( "p4", 0x20000, 0x8000, CRC(0241ac79) SHA1(b3c3b98fb29836cbc9fd35ac49e02bfefd3b0c79) ) - ROM_LOAD( "p7", 0x28000, 0x8000, CRC(beba8313) SHA1(20aa4e07ec560a89d07ec73cc93311ceaed899a3) ) - ROM_LOAD( "p8", 0x30000, 0x8000, CRC(211a9342) SHA1(85bdafe1a2c683eea391cc663caabd958fdf5197) ) - ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) ) - ROM_LOAD( "p10", 0x40000, 0x8000, CRC(b6894517) SHA1(e114a5f92b83d98215aab6e2cd943a110d118f56) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) - ROM_RELOAD( 0x08000, 0x8000 ) - ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) ) - ROM_RELOAD( 0x18000, 0x8000 ) - ROM_LOAD( "p11", 0x20000, 0x8000, CRC(055f4c29) SHA1(0eee5db50504a3d37d9291ccd29863ba71da85e1) ) - ROM_RELOAD( 0x28000, 0x8000 ) - ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) - ROM_RELOAD( 0x38000, 0x8000 ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) -ROM_END - -ROM_START( hardhedb ) - ROM_REGION( 0x48000+0x8000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) ) // 1988,9,14 (already decrypted) - ROM_CONTINUE( 0x00000, 0x8000 ) - ROM_LOAD( "p2", 0x10000, 0x8000, CRC(faa2cf9a) SHA1(5987f146b58fcbc3aaa9c010d86022b5172bcfb4) ) - ROM_LOAD( "p3", 0x18000, 0x8000, CRC(3d24755e) SHA1(519a179594956f7c3ddfaca362c42b453c928e25) ) - ROM_LOAD( "p4", 0x20000, 0x8000, CRC(0241ac79) SHA1(b3c3b98fb29836cbc9fd35ac49e02bfefd3b0c79) ) - ROM_LOAD( "p7", 0x28000, 0x8000, CRC(beba8313) SHA1(20aa4e07ec560a89d07ec73cc93311ceaed899a3) ) - ROM_LOAD( "p8", 0x30000, 0x8000, CRC(211a9342) SHA1(85bdafe1a2c683eea391cc663caabd958fdf5197) ) - ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) ) - ROM_LOAD( "p10", 0x40000, 0x8000, CRC(b6894517) SHA1(e114a5f92b83d98215aab6e2cd943a110d118f56) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) ) -// ROM_LOAD( "2_13_9h.rom", 0x00000, 0x8000, CRC(1b20e5ec) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) - ROM_RELOAD( 0x08000, 0x8000 ) - ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) ) - ROM_RELOAD( 0x18000, 0x8000 ) - ROM_LOAD( "p11", 0x20000, 0x8000, CRC(055f4c29) SHA1(0eee5db50504a3d37d9291ccd29863ba71da85e1) ) - ROM_RELOAD( 0x28000, 0x8000 ) - ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) - ROM_RELOAD( 0x38000, 0x8000 ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) -ROM_END - -ROM_START( pop_hh ) - ROM_REGION( 0x48000+0x8000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) ) // 1988,9,14 (already decrypted) - ROM_CONTINUE( 0x00000, 0x8000 ) - ROM_LOAD( "2_27256.k6", 0x10000, 0x8000, CRC(8fcc1248) SHA1(5da0b7dc63f7bc00e81e9e5bac02ee6b0076ffaa) ) - ROM_LOAD( "p3", 0x18000, 0x8000, CRC(3d24755e) SHA1(519a179594956f7c3ddfaca362c42b453c928e25) ) // 3_27256.j6 - ROM_LOAD( "p4", 0x20000, 0x8000, CRC(0241ac79) SHA1(b3c3b98fb29836cbc9fd35ac49e02bfefd3b0c79) ) // 4_27256.i6 - ROM_LOAD( "p7", 0x28000, 0x8000, CRC(beba8313) SHA1(20aa4e07ec560a89d07ec73cc93311ceaed899a3) ) // 7_27256.l8 - ROM_LOAD( "8_27256.k8", 0x30000, 0x8000, CRC(87a8b4b4) SHA1(83d30cf184c5dccdf2666c0ef9e078541d6a146e) ) - ROM_LOAD( "p9", 0x38000, 0x8000, CRC(2ad430c4) SHA1(286a5b1042e077c3ae741d01311d4c91f8f87054) ) // 9_27256.j8 - ROM_LOAD( "10_27256.i8", 0x40000, 0x8000, CRC(84fc6574) SHA1(ab33e6c656f25e65bb08d0a2689693df83cab43d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "p13", 0x0000, 0x8000, CRC(493c0b41) SHA1(994a334253e905c39ec912765e8b0f4b1be900bc) ) // 13_27256.i10 - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "p5", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) // 5_27256.d6 - ROM_RELOAD( 0x08000, 0x8000 ) - ROM_LOAD( "p6", 0x10000, 0x8000, CRC(15d5f5dd) SHA1(4441344701fcdb2be55bdd76a8a5fd59f5de813c) ) // 6_27256.a6 - ROM_RELOAD( 0x18000, 0x8000 ) - ROM_LOAD( "11_27256.d8", 0x20000, 0x8000, CRC(3751b99d) SHA1(dc4082e481a79f0389e59b4b38698df8f7b94053) ) - ROM_RELOAD( 0x28000, 0x8000 ) - ROM_LOAD( "p12", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) // 12_27256.a8 - ROM_RELOAD( 0x38000, 0x8000 ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) // 14_27256.m11 -ROM_END - - -/*************************************************************************** - - Rough Ranger / Super Ranger - -(SunA 1988) -K030087 - - 24MHz 6 7 8 9 - 10 11 12 13 sw1 sw2 - - - - 6264 - 5 6116 - 4 6116 6116 - 3 6116 14 - 2 6116 Z80A - 1 6116 8910 - 6116 6116 2203 - 15 - Epoxy CPU - 6116 - - ---------------------------- -Super Ranger by SUNA (1988) ---------------------------- - -Location Type File ID Checksum -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -E2 27C256 R1 28C0 [ main program ] -F2 27C256 R2 73AD [ main program ] -H2 27C256 R3 8B7A [ main program ] -I2 27C512 R4 77BE [ main program ] -J2 27C512 R5 6121 [ main program ] -P5 27C256 R6 BE0E [ background ] -P6 27C256 R7 BD5A [ background ] -P7 27C256 R8 4605 [ motion obj. ] -P8 27C256 R9 7097 [ motion obj. ] -P9 27C256 R10 3B9F [ background ] -P10 27C256 R11 2AE8 [ background ] -P11 27C256 R12 8B6D [ motion obj. ] -P12 27C256 R13 927E [ motion obj. ] -J13 27C256 R14 E817 [ snd program ] -E13 27C256 R15 54EE [ sound data ] - -Note: Game model number K030087 - -Hardware: - -Main processor - Custom security block (battery backed) CPU No. S562008 - -Sound processor - Z80 - - YM2203C - - AY-3-8910 - -***************************************************************************/ - -ROM_START( rranger ) - ROM_REGION( 0x48000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "1", 0x00000, 0x8000, CRC(4fb4f096) SHA1(c5ac3e04080cdcf570769918587e8cf8d455fc30) ) // V 2.0 1988,4,15 - ROM_LOAD( "2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) ) - ROM_LOAD( "3", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) ) - ROM_LOAD( "r4", 0x30000, 0x8000, CRC(4346fae6) SHA1(a9f000e4427a1e9902627402dce14dc8ee04dbf8) ) - ROM_CONTINUE( 0x20000, 0x8000 ) - ROM_LOAD( "r5", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) ) - ROM_CONTINUE( 0x28000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "14", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "15", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "6", 0x00000, 0x8000, CRC(57543643) SHA1(59c7717321314678e61b50767e168eb2a73147d3) ) - ROM_LOAD( "7", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) ) - ROM_LOAD( "8", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) ) - ROM_LOAD( "9", 0x18000, 0x8000, CRC(fa2a11ea) SHA1(ea29ade1254caa2a3bd4b4816fe338f238025284) ) - ROM_LOAD( "10", 0x20000, 0x8000, CRC(42c4fdbf) SHA1(fd8b267d5098b640e731942b922149866ece1dc6) ) - ROM_LOAD( "11", 0x28000, 0x8000, CRC(19037a7b) SHA1(a6843b0220bab5c47307a0c761d5bd638716aef0) ) - ROM_LOAD( "12", 0x30000, 0x8000, CRC(c59c0ec7) SHA1(80003f3e33610a84f6e194918276d5f60145b00e) ) - ROM_LOAD( "13", 0x38000, 0x8000, CRC(9809fee8) SHA1(b7e0664702d0c1f77247d7c76a381b24687a09ea) ) -ROM_END - -ROM_START( sranger ) - ROM_REGION( 0x48000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "r1", 0x00000, 0x8000, CRC(4eef1ede) SHA1(713074400e27f6983f97ce73e522a1d687961317) ) // V 2.0 1988,4,15 - ROM_LOAD( "2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) ) - ROM_LOAD( "3", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) ) - ROM_LOAD( "r4", 0x30000, 0x8000, CRC(4346fae6) SHA1(a9f000e4427a1e9902627402dce14dc8ee04dbf8) ) - ROM_CONTINUE( 0x20000, 0x8000 ) - ROM_LOAD( "r5", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) ) - ROM_CONTINUE( 0x28000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "14", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "15", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "r6", 0x00000, 0x8000, CRC(4f11fef3) SHA1(f48f3051a5ab681da0fd0a7107ea0c833993247a) ) - ROM_LOAD( "7", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) ) - ROM_LOAD( "8", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) ) - ROM_LOAD( "9", 0x18000, 0x8000, CRC(fa2a11ea) SHA1(ea29ade1254caa2a3bd4b4816fe338f238025284) ) - ROM_LOAD( "r10", 0x20000, 0x8000, CRC(1b204d6b) SHA1(8649d552dff08bb01ac7ca6cb873124e05646041) ) - ROM_LOAD( "11", 0x28000, 0x8000, CRC(19037a7b) SHA1(a6843b0220bab5c47307a0c761d5bd638716aef0) ) - ROM_LOAD( "12", 0x30000, 0x8000, CRC(c59c0ec7) SHA1(80003f3e33610a84f6e194918276d5f60145b00e) ) - ROM_LOAD( "13", 0x38000, 0x8000, CRC(9809fee8) SHA1(b7e0664702d0c1f77247d7c76a381b24687a09ea) ) -ROM_END - -ROM_START( srangerb ) - ROM_REGION( 0x48000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "r1bt", 0x00000, 0x8000, CRC(40635e7c) SHA1(741290ad640e941774d496a329cd29198ab83463) ) // NYWACORPORATION LTD 88-1-07 - ROM_LOAD( "2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) ) - ROM_LOAD( "3", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) ) - ROM_LOAD( "r4", 0x30000, 0x8000, CRC(4346fae6) SHA1(a9f000e4427a1e9902627402dce14dc8ee04dbf8) ) - ROM_CONTINUE( 0x20000, 0x8000 ) - ROM_LOAD( "r5", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) ) - ROM_CONTINUE( 0x28000, 0x8000 ) - ROM_LOAD( "r5bt", 0x28000, 0x8000, BAD_DUMP CRC(f7f391b5) SHA1(a0a8de1d9d7876f5c4b26e34d5e54ec79529c2da) ) // wrong length - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "14", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "15", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "r6", 0x00000, 0x8000, CRC(4f11fef3) SHA1(f48f3051a5ab681da0fd0a7107ea0c833993247a) ) - ROM_LOAD( "7", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) ) - ROM_LOAD( "8", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) ) - ROM_LOAD( "9", 0x18000, 0x8000, CRC(fa2a11ea) SHA1(ea29ade1254caa2a3bd4b4816fe338f238025284) ) - ROM_LOAD( "r10", 0x20000, 0x8000, CRC(1b204d6b) SHA1(8649d552dff08bb01ac7ca6cb873124e05646041) ) - ROM_LOAD( "11", 0x28000, 0x8000, CRC(19037a7b) SHA1(a6843b0220bab5c47307a0c761d5bd638716aef0) ) - ROM_LOAD( "12", 0x30000, 0x8000, CRC(c59c0ec7) SHA1(80003f3e33610a84f6e194918276d5f60145b00e) ) - ROM_LOAD( "13", 0x38000, 0x8000, CRC(9809fee8) SHA1(b7e0664702d0c1f77247d7c76a381b24687a09ea) ) -ROM_END - -ROM_START( srangerw ) - ROM_REGION( 0x48000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "w1", 0x00000, 0x8000, CRC(2287d3fc) SHA1(cc2dab587ca50fc4371d2861ac842cd81370f868) ) // 88,2,28 - ROM_LOAD( "2", 0x10000, 0x8000, CRC(ff65af29) SHA1(90f9a0c862e2a9da0343446a325961ab29d26b4b) ) - ROM_LOAD( "3", 0x18000, 0x8000, CRC(64e09436) SHA1(077f0d38d489562532d5f7678434a85ca04d373c) ) - ROM_LOAD( "r4", 0x30000, 0x8000, CRC(4346fae6) SHA1(a9f000e4427a1e9902627402dce14dc8ee04dbf8) ) - ROM_CONTINUE( 0x20000, 0x8000 ) - ROM_LOAD( "r5", 0x38000, 0x8000, CRC(6a7ca1c3) SHA1(0f0b508e9b20909e9efa07b42d67732082b6940b) ) - ROM_CONTINUE( 0x28000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Sound Z80 Code */ - ROM_LOAD( "14", 0x0000, 0x8000, CRC(11c83aa1) SHA1(d1f75096528b220a3f858eac62e3b4111fa013de) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "15", 0x0000, 0x8000, CRC(28c2c87e) SHA1(ec0d92140ef44df822f2229e79b915e051caa033) ) - - ROM_REGION( 0x40000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "w6", 0x00000, 0x8000, CRC(312ecda6) SHA1(db11259e10da5f7f2b7b306482a08835597dbde4) ) - ROM_LOAD( "7", 0x08000, 0x8000, CRC(9f35dbfa) SHA1(8a8f158ad7f0bc6b43eaa95959af3ab58cf14d6d) ) - ROM_LOAD( "8", 0x10000, 0x8000, CRC(f400db89) SHA1(a07b226af40cac5a20739bb8f4226909724fda86) ) - ROM_LOAD( "9", 0x18000, 0x8000, CRC(fa2a11ea) SHA1(ea29ade1254caa2a3bd4b4816fe338f238025284) ) - ROM_LOAD( "w10", 0x20000, 0x8000, CRC(8731abc6) SHA1(05c13b359106b4ead1326f2e53d0585a2f0019ac) ) - ROM_LOAD( "11", 0x28000, 0x8000, CRC(19037a7b) SHA1(a6843b0220bab5c47307a0c761d5bd638716aef0) ) - ROM_LOAD( "12", 0x30000, 0x8000, CRC(c59c0ec7) SHA1(80003f3e33610a84f6e194918276d5f60145b00e) ) - ROM_LOAD( "13", 0x38000, 0x8000, CRC(9809fee8) SHA1(b7e0664702d0c1f77247d7c76a381b24687a09ea) ) -ROM_END - - -/*************************************************************************** - - Brick Zone - -SUNA ELECTRONICS IND CO., LTD - -CPU Z0840006PSC (ZILOG) - -Chrystal : 24.000 MHz - -Sound CPU : Z084006PSC (ZILOG) + AY3-8910A - -Warning ! This game has a 'SUNA' protection block :-( - -- - -(c) 1992 Suna Electronics - -2 * Z80B - -AY-3-8910 -YM3812 - -24 MHz crystal - -Large epoxy(?) module near the cpu's. - -***************************************************************************/ - -ROM_START( brickzn ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) ) // V5.0 1992,3,3 - ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) ) - ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Music Z80 Code */ - ROM_LOAD( "brickzon.010", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* PCM Z80 Code */ - ROM_LOAD( "brickzon.011", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "brickzon.002", 0x00000, 0x20000, CRC(241f0659) SHA1(71b577bf7097b3b367d068df42f991d515f9003a) ) - ROM_LOAD( "brickzon.001", 0x20000, 0x20000, CRC(6970ada9) SHA1(5cfe5dcf25af7aff67ee5d78eb963d598251025f) ) - ROM_LOAD( "brickzon.003", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) ) - ROM_LOAD( "brickzon.005", 0x60000, 0x20000, CRC(118f8392) SHA1(598fa4df3ae348ec9796cd6d90c3045bec546da3) ) - ROM_LOAD( "brickzon.004", 0x80000, 0x20000, CRC(2be5f335) SHA1(dc870a3c5303cb2ea1fea4a25f53db016ed5ecee) ) - ROM_LOAD( "brickzon.006", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) -ROM_END - -ROM_START( brickzn3 ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "39", 0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) ) // V3.0 1992,1,23 - ROM_LOAD( "38", 0x10000, 0x20000, CRC(e16216e8) SHA1(e88ae97e8a632823d5f1fe500954b6f6542407d5) ) - ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Music Z80 Code */ - ROM_LOAD( "brickzon.010", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* PCM Z80 Code */ - ROM_LOAD( "brickzon.011", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "35", 0x00000, 0x20000, CRC(b463dfcf) SHA1(35c8a4a0c5b62a087a2cb70bc5b7815f5bb2d973) ) - ROM_LOAD( "brickzon.004", 0x20000, 0x20000, CRC(2be5f335) SHA1(dc870a3c5303cb2ea1fea4a25f53db016ed5ecee) ) - ROM_LOAD( "brickzon.006", 0x40000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) - ROM_LOAD( "32", 0x60000, 0x20000, CRC(32dbf2dd) SHA1(b9ab8b93a062b871b7f824e4be2f214cc832d585) ) - ROM_LOAD( "brickzon.001", 0x80000, 0x20000, CRC(6970ada9) SHA1(5cfe5dcf25af7aff67ee5d78eb963d598251025f) ) - ROM_LOAD( "brickzon.003", 0xa0000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) ) -ROM_END - - - -/*************************************************************************** - - Hard Head 2 - -These ROMS are all 27C512 - -ROM 1 is at Location 1N -ROM 2 ..............1o -ROM 3 ..............1Q -ROM 4...............3N -ROM 5.............. 4N -ROM 6...............4o -ROM 7...............4Q -ROM 8...............6N -ROM 10..............H5 -ROM 11..............i5 -ROM 12 .............F7 -ROM 13..............H7 -ROM 15..............N10 - -These ROMs are 27C256 - -ROM 9...............F5 -ROM 14..............C8 - -Game uses 2 Z80B processors and a Custom Sealed processor (assumed) -Labeled "SUNA T568009" - -Sound is a Yamaha YM3812 and a AY-3-8910A - -3 RAMS are 6264LP- 10 and 5) HM6116K-90 rams (small package) - -24 MHz - -***************************************************************************/ - -ROM_START( hardhea2 ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "hrd-hd9", 0x00000, 0x08000, CRC(69c4c307) SHA1(0dfde1dcda51b5b1740aff9e96cb877a428a3e04) ) // V 2.0 1991,2,12 - ROM_LOAD( "hrd-hd10", 0x10000, 0x10000, CRC(77ec5b0a) SHA1(2d3e24c208904a7884e585e08e5818fd9f8b5391) ) - ROM_LOAD( "hrd-hd11", 0x20000, 0x10000, CRC(12af8f8e) SHA1(1b33a060b70900042fdae00f7dec325228d566f5) ) - ROM_LOAD( "hrd-hd12", 0x30000, 0x10000, CRC(35d13212) SHA1(2fd03077b89ec9e55d2758b7f9cada970f0bdd91) ) - ROM_LOAD( "hrd-hd13", 0x40000, 0x10000, CRC(3225e7d7) SHA1(2da9d1ce182dab8d9e09772e6899676b84c7458c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Music Z80 Code */ - ROM_LOAD( "hrd-hd14", 0x00000, 0x08000, CRC(79a3be51) SHA1(30bc67cd3a936615c6931f8e15953425dff59611) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* PCM Z80 Code */ - ROM_LOAD( "hrd-hd15", 0x00000, 0x10000, CRC(bcbd88c3) SHA1(79782d598d9d764de70c54fc07ff9bf0f7d13d62) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "hrd-hd1", 0x00000, 0x10000, CRC(7e7b7a58) SHA1(1a74260dda64aafcb046c8add92a54655bbc74e4) ) - ROM_LOAD( "hrd-hd2", 0x10000, 0x10000, CRC(303ec802) SHA1(533c29d9bb54415410c5d3c5af234b8b040190de) ) - ROM_LOAD( "hrd-hd3", 0x20000, 0x10000, CRC(3353b2c7) SHA1(a3ec0fc2a97e7e0bc72fafd5897cb1dd4cd32197) ) - ROM_LOAD( "hrd-hd4", 0x30000, 0x10000, CRC(dbc1f9c1) SHA1(720c729d7825635584632d033b4b46eea2fb1291) ) - ROM_LOAD( "hrd-hd5", 0x40000, 0x10000, CRC(f738c0af) SHA1(7dda657acd1d6fb7064e8dbd5ce386e9eae3d36a) ) - ROM_LOAD( "hrd-hd6", 0x50000, 0x10000, CRC(bf90d3ca) SHA1(2d0533d93fc5155fe879c1890bc7bc4581308e16) ) - ROM_LOAD( "hrd-hd7", 0x60000, 0x10000, CRC(992ce8cb) SHA1(21c0dd227138ec64003c7cb090855ec27d41719e) ) - ROM_LOAD( "hrd-hd8", 0x70000, 0x10000, CRC(359597a4) SHA1(ae024dd61c5d12813a661abe8ea63ae6112ddc9c) ) -ROM_END - - -/*************************************************************************** - - Star Fighter - -***************************************************************************/ - -ROM_START( starfigh ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "starfgtr.l1", 0x00000, 0x08000, CRC(f93802c6) SHA1(4005b06b69dd440dfb6385766386a1168e73288f) ) // V.1 - ROM_LOAD( "starfgtr.j1", 0x10000, 0x10000, CRC(fcfcf08a) SHA1(65fe1666aa5092f820b337bcbcbed7accdec440d) ) - ROM_LOAD( "starfgtr.i1", 0x20000, 0x10000, CRC(6935fcdb) SHA1(f47812f6716ccf52dd7ab8522c29e059f1e38f31) ) - ROM_LOAD( "starfgtr.l3", 0x30000, 0x10000, CRC(50c072a4) SHA1(e48ec5a786ef245e5b2b72390824b6b7c449a74b) ) // 0xxxxxxxxxxxxxxx = 0xFF (ROM Test: OK) - ROM_LOAD( "starfgtr.j3", 0x40000, 0x10000, CRC(3fe3c714) SHA1(ccc9a33cf29c0e43ae8ab91f08438a89c777c186) ) // clear text here - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Music Z80 Code */ - ROM_LOAD( "starfgtr.m8", 0x0000, 0x8000, CRC(ae3b0691) SHA1(41e004d09522cf7ddce6e4adc68841ad5553264a) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "starfgtr.q10", 0x0000, 0x8000, CRC(fa510e94) SHA1(e2742385a4ba152dbc89534e4350d1d9ad49730f) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "starfgtr.e4", 0x00000, 0x10000, CRC(54c0ca3d) SHA1(87f785502beb8a52d47bd48275d695ee303054f8) ) - ROM_RELOAD( 0x20000, 0x10000 ) - ROM_LOAD( "starfgtr.d4", 0x10000, 0x10000, CRC(4313ba40) SHA1(3c41f99dc40136517f172b3525987d8909f877c3) ) - ROM_RELOAD( 0x30000, 0x10000 ) - ROM_LOAD( "starfgtr.b4", 0x40000, 0x10000, CRC(ad8d0f21) SHA1(ffdb407c7fe76b5f290de6bbed2fec34e40daf3f) ) - ROM_RELOAD( 0x60000, 0x10000 ) - ROM_LOAD( "starfgtr.a4", 0x50000, 0x10000, CRC(6d8f74c8) SHA1(c40b77e27bd29d6c3a9b4d43189933c10543786b) ) - ROM_RELOAD( 0x70000, 0x10000 ) - ROM_LOAD( "starfgtr.e6", 0x80000, 0x10000, CRC(ceff00ff) SHA1(5e7df7f33f36f4bc511be48266eaec274dfb8706) ) - ROM_RELOAD( 0xa0000, 0x10000 ) - ROM_LOAD( "starfgtr.d6", 0x90000, 0x10000, CRC(7aaa358a) SHA1(56d75f4abe626de7923d5bcc9ad18c02ce162907) ) - ROM_RELOAD( 0xb0000, 0x10000 ) - ROM_LOAD( "starfgtr.b6", 0xc0000, 0x10000, CRC(47d6049c) SHA1(cae0795a19cb6bb8bdabc10c200aa6f8d78dd347) ) - ROM_RELOAD( 0xe0000, 0x10000 ) - ROM_LOAD( "starfgtr.a6", 0xd0000, 0x10000, CRC(4a33f6f3) SHA1(daa0a1a43b1b60e2f05b9934fdd6b5f285a0b93a) ) - ROM_RELOAD( 0xf0000, 0x10000 ) -ROM_END - - -/*************************************************************************** - - Spark Man - -Suna Electronics IND. CO., LTD 1989 KRB-16 60136-0081 Pinout = JAMMA - -Game uses a Custom Sealed processor labeled "SUNA T568009" and a z80 processor for sound - -Sound is a Yamaha YM3812 and a AY-3-8910A - -24mhz crystal - -***************************************************************************/ - -ROM_START( sparkman ) - ROM_REGION( 0x50000, REGION_CPU1, 0 ) /* Main Z80 Code */ - ROM_LOAD( "sparkman.e7", 0x00000, 0x08000, CRC(d89c5780) SHA1(177f0ae21c00575a7eb078e86f3a790fc95211e4) ) /* "SPARK MAN MAIN PROGRAM 1989,8,12 K.H.T (SUNA ELECTRPNICS) V 2.0 SOULE KOREA" */ - ROM_LOAD( "sparkman.g7", 0x10000, 0x10000, CRC(48b4a31e) SHA1(771d1f1a2ce950ce2b661a4081471e98a7a7d53e) ) - ROM_LOAD( "sparkman.g8", 0x20000, 0x10000, CRC(b8a4a557) SHA1(10251b49fb44fb1e7c71fde8fe9544df29d27346) ) - ROM_LOAD( "sparkman.i7", 0x30000, 0x10000, CRC(f5f38e1f) SHA1(25f0abbac1298fad1f8e7202db05e48c3598bc88) ) - ROM_LOAD( "sparkman.i8", 0x40000, 0x10000, CRC(e54eea25) SHA1(b8ea884ee1a24953b6406f2d1edf103700f542d2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* Music Z80 Code */ - ROM_LOAD( "sparkman.h11", 0x00000, 0x08000, CRC(06822f3d) SHA1(d30592cecbcd4dbf67e5a8d9c151d60b3232a54d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* Sprites */ - ROM_LOAD( "sparkman.u4", 0x00000, 0x10000, CRC(17c16ce4) SHA1(b4127e9aedab69193bef1d85e68003e225913417) ) - ROM_LOAD( "sparkman.t1", 0x10000, 0x10000, CRC(2e474203) SHA1(a407126d92e529568129d5246f89d51330ff5d32) ) - ROM_LOAD( "sparkman.r1", 0x20000, 0x08000, CRC(7115cfe7) SHA1(05fde6279a1edc97e79b1ff3f72b2da400a6a409) ) - ROM_LOAD( "sparkman.u1", 0x30000, 0x10000, CRC(39dbd414) SHA1(03fe938ed1191329b6a2f7ed54c6ef69273998df) ) - - ROM_LOAD( "sparkman.u6", 0x40000, 0x10000, CRC(414222ea) SHA1(e05f0504c6e735c73027312a85cc55fc98728e53) ) - ROM_LOAD( "sparkman.t2", 0x50000, 0x10000, CRC(0df5da2a) SHA1(abbd5ba22b30f17d203ecece7afafa0cbe78352c) ) - ROM_LOAD( "sparkman.r2", 0x60000, 0x08000, CRC(6904bde2) SHA1(c426fa0c29b1874c729b981467f219c422f863aa) ) - ROM_LOAD( "sparkman.u2", 0x70000, 0x10000, CRC(e6551db9) SHA1(bed2a9ba72895f3ba876b4e0a41c33ea8a3c5af2) ) - - ROM_REGION( 0x8000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sparkman.b10", 0x0000, 0x8000, CRC(46c7d4d8) SHA1(99f38cc044390ee4646498667ad2bf536ce91e8f) ) - - ROM_REGION( 0x8000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "sprkman.b11", 0x0000, 0x8000, CRC(d6823a62) SHA1(f8ce748aa7bdc9c95799dd111fd872717e46d416) ) -ROM_END - - -/*************************************************************************** - - - Games Drivers - - -***************************************************************************/ - -static DRIVER_INIT( suna8 ) -{ - memory_configure_bank(1, 0, 16, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -/* Working Games */ -GAME( 1988, rranger, 0, rranger, rranger, suna8, ROT0, "SunA (Sharp Image license)", "Rough Ranger (v2.0)", GAME_IMPERFECT_SOUND ) -GAME( 1988, hardhead, 0, hardhead, hardhead, hardhead, ROT0, "SunA", "Hard Head" , 0) -GAME( 1988, hardhedb, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Hard Head (bootleg)" , 0) -GAME( 1988, pop_hh, hardhead, hardhead, hardhead, hardhedb, ROT0, "bootleg", "Popper (Hard Head bootleg)" , 0) -GAME( 1991, hardhea2, 0, hardhea2, hardhea2, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)" , 0 ) - -/* Non Working Games */ -GAME( 1988, sranger, rranger, rranger, rranger, suna8, ROT0, "SunA", "Super Ranger (v2.0)", GAME_NOT_WORKING ) -GAME( 1988, srangerb, rranger, rranger, rranger, suna8, ROT0, "bootleg", "Super Ranger (bootleg)", GAME_NOT_WORKING ) -GAME( 1988, srangerw, rranger, rranger, rranger, suna8, ROT0, "SunA (WDK license)", "Super Ranger (WDK)", GAME_NOT_WORKING ) -GAME( 1989, sparkman, 0, sparkman, sparkman, sparkman, ROT0, "SunA", "Spark Man (v 2.0)", GAME_NOT_WORKING ) -GAME( 1990, starfigh, 0, starfigh, hardhea2, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_NOT_WORKING ) -GAME( 1992, brickzn, 0, brickzn, brickzn, brickzn, ROT90, "SunA", "Brick Zone (v5.0)", GAME_NOT_WORKING ) -GAME( 1992, brickzn3, brickzn, brickzn, brickzn, brickzn3, ROT90, "SunA", "Brick Zone (v4.0)", GAME_NOT_WORKING ) diff --git a/src/drivers/superchs.c b/src/drivers/superchs.c deleted file mode 100644 index 89e9276db..000000000 --- a/src/drivers/superchs.c +++ /dev/null @@ -1,512 +0,0 @@ -/**************************************************************************** - - Super Chase (c) 1992 Taito - - Driver by Bryan McPhail & David Graves. - - Board Info: - - CPU board: - 68000 - 68020 - TC0570SPC (Taito custom) - TC0470LIN (Taito custom) - TC0510NIO (Taito custom) - TC0480SCP (Taito custom) - TC0650FDA (Taito custom) - ADC0809CCN - - X2=26.686MHz - X1=40MHz - X3=32MHz - - Sound board: - 68000 - 68681 - MB8421 (x2) - MB87078 - Ensoniq 5510 - Ensoniq 5505 - - (Acknowledgments and thanks to Richard Bush and the Raine team - for their preliminary Super Chase driver.) - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "machine/eeprom.h" -#include "sound/es5506.h" -#include "includes/taito_f3.h" -#include "sndhrdw/taito_en.h" - -VIDEO_START( superchs ); -VIDEO_UPDATE( superchs ); - -static UINT16 coin_word; -static UINT32 *superchs_ram; -static UINT32 *shared_ram; - -static int steer=0; - -/*********************************************************************/ - -static READ16_HANDLER( shared_ram_r ) -{ - if ((offset&1)==0) return (shared_ram[offset/2]&0xffff0000)>>16; - return (shared_ram[offset/2]&0x0000ffff); -} - -static WRITE16_HANDLER( shared_ram_w ) -{ - if ((offset&1)==0) { - if (ACCESSING_MSB) - shared_ram[offset/2]=(shared_ram[offset/2]&0x00ffffff)|((data&0xff00)<<16); - if (ACCESSING_LSB) - shared_ram[offset/2]=(shared_ram[offset/2]&0xff00ffff)|((data&0x00ff)<<16); - } else { - if (ACCESSING_MSB) - shared_ram[offset/2]=(shared_ram[offset/2]&0xffff00ff)|((data&0xff00)<< 0); - if (ACCESSING_LSB) - shared_ram[offset/2]=(shared_ram[offset/2]&0xffffff00)|((data&0x00ff)<< 0); - } -} - -static WRITE32_HANDLER( cpua_ctrl_w ) -{ - /* - CPUA writes 0x00, 22, 72, f2 in that order. - f2 seems to be the standard in-game value. - ..x...x. - .xxx..x. - xxxx..x. - is there an irq enable in the top nibble? - */ - - if (ACCESSING_MSB) - { - cpunum_set_input_line(2, INPUT_LINE_RESET, (data &0x200) ? CLEAR_LINE : ASSERT_LINE); - if (data&0x8000) cpunum_set_input_line(0,3,HOLD_LINE); /* Guess */ - } - - if (ACCESSING_LSB32) - { - /* Lamp control bits of some sort in the lsb */ - } -} - -static WRITE32_HANDLER( superchs_palette_w ) -{ - int a,r,g,b; - COMBINE_DATA(&paletteram32[offset]); - - a = paletteram32[offset]; - r = (a &0xff0000) >> 16; - g = (a &0xff00) >> 8; - b = (a &0xff); - - palette_set_color(Machine,offset,r,g,b); -} - -static READ32_HANDLER( superchs_input_r ) -{ - switch (offset) - { - case 0x00: - return (input_port_0_word_r(0,0) << 16) | input_port_1_word_r(0,0) | - (EEPROM_read_bit() << 7); - - case 0x01: - return coin_word<<16; - } - - return 0xffffffff; -} - -static WRITE32_HANDLER( superchs_input_w ) -{ - - #if 0 - { - char t[64]; - static UINT32 mem[2]; - COMBINE_DATA(&mem[offset]); - sprintf(t,"%08x %08x",mem[0],mem[1]); - //popmessage(t); - } - #endif - - switch (offset) - { - case 0x00: - { - if (ACCESSING_MSB32) /* $300000 is watchdog */ - { - watchdog_reset_w(0,data >> 24); - } - - if (ACCESSING_LSB32) - { - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x40); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - return; - } - - return; - } - - /* there are 'vibration' control bits somewhere! */ - - case 0x01: - { - if (ACCESSING_MSB32) - { - coin_lockout_w(0,~data & 0x01000000); - coin_lockout_w(1,~data & 0x02000000); - coin_counter_w(0, data & 0x04000000); - coin_counter_w(1, data & 0x08000000); - coin_word=(data >> 16) &0xffff; - } - } - } -} - -static READ32_HANDLER( superchs_stick_r ) -{ - int fake = input_port_6_word_r(0,0); - int accel; - - if (!(fake &0x10)) /* Analogue steer (the real control method) */ - { - steer = input_port_2_word_r(0,0); - } - else /* Digital steer, with smoothing - speed depends on how often stick_r is called */ - { - int delta; - int goal = 0x80; - if (fake &0x04) goal = 0xff; /* pressing left */ - if (fake &0x08) goal = 0x0; /* pressing right */ - - if (steer!=goal) - { - delta = goal - steer; - if (steer < goal) - { - if (delta >2) delta = 2; - } - else - { - if (delta < (-2)) delta = -2; - } - steer += delta; - } - } - - /* Accelerator is an analogue input but the game treats it as digital (on/off) */ - if (input_port_6_word_r(0,0) & 0x1) /* pressing B1 */ - accel = 0x0; - else - accel = 0xff; - - /* Todo: Verify brake - and figure out other input */ - return (steer << 24) | (accel << 16) | (input_port_4_word_r(0,0) << 8) | input_port_5_word_r(0,0); -} - -static WRITE32_HANDLER( superchs_stick_w ) -{ - /* This is guess work - the interrupts are in groups of 4, with each writing to a - different byte in this long word before the RTE. I assume all but the last - (top) byte cause an IRQ with the final one being an ACK. (Total guess but it works). */ - if (mem_mask!=0x00ffffff) - cpunum_set_input_line(0,3,HOLD_LINE); -} - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( superchs_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_READ(MRA32_RAM) /* main CPUA ram */ - AM_RANGE(0x140000, 0x141fff) AM_READ(MRA32_RAM) /* Sprite ram */ - AM_RANGE(0x180000, 0x18ffff) AM_READ(TC0480SCP_long_r) - AM_RANGE(0x1b0000, 0x1b002f) AM_READ(TC0480SCP_ctrl_long_r) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA32_RAM) /* Shared ram */ - AM_RANGE(0x280000, 0x287fff) AM_READ(MRA32_RAM) /* Palette ram */ - AM_RANGE(0x2c0000, 0x2c07ff) AM_READ(MRA32_RAM) /* Sound shared ram */ - AM_RANGE(0x300000, 0x300007) AM_READ(superchs_input_r) - AM_RANGE(0x340000, 0x340003) AM_READ(superchs_stick_r) /* stick coord read */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( superchs_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x100000, 0x11ffff) AM_WRITE(MWA32_RAM) AM_BASE(&superchs_ram) - AM_RANGE(0x140000, 0x141fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x180000, 0x18ffff) AM_WRITE(TC0480SCP_long_w) - AM_RANGE(0x1b0000, 0x1b002f) AM_WRITE(TC0480SCP_ctrl_long_w) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA32_RAM) AM_BASE(&shared_ram) - AM_RANGE(0x240000, 0x240003) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x280000, 0x287fff) AM_WRITE(superchs_palette_w) AM_BASE(&paletteram32) - AM_RANGE(0x2c0000, 0x2c07ff) AM_WRITE(MWA32_RAM) AM_BASE(&f3_shared_ram) - AM_RANGE(0x300000, 0x300007) AM_WRITE(superchs_input_w) /* eerom etc. */ - AM_RANGE(0x340000, 0x340003) AM_WRITE(superchs_stick_w) /* stick int request */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( superchs_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) /* local ram */ - AM_RANGE(0x800000, 0x80ffff) AM_READ(shared_ram_r) - AM_RANGE(0xa00000, 0xa001ff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( superchs_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0480SCP_word_w) /* Only written upon errors */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(shared_ram_w) - AM_RANGE(0xa00000, 0xa001ff) AM_WRITE(MWA16_RAM) /* Extra road control?? */ -ADDRESS_MAP_END - -/***********************************************************/ - -INPUT_PORTS_START( superchs ) - PORT_START /* IN0 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) /* Freeze input */ - PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* reserved for EEROM */ - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* seat center (cockpit only) */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Nitro") - PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Gear Shift") - PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake") - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN 2, steering wheel */ - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* IN 3, accel [effectively also brake for the upright] */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN 4, sound volume */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2) - - PORT_START /* IN 5, unknown */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(2) - - PORT_START /* IN 6, inputs and DSW all fake */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -/*********************************************************** - GFX DECODING -**********************************************************/ - -static const gfx_layout tile16x16_layout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode superchs_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x16_layout, 0, 512 }, - { REGION_GFX1, 0x0, &charlayout, 0, 512 }, - { -1 } /* end of array */ -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -static MACHINE_RESET( superchs ) -{ - taito_f3_soundsystem_reset(); - - f3_68681_reset(); -} - -static struct EEPROM_interface superchs_eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* unlock command */ - "0100110000", /* lock command */ -}; - -static UINT8 default_eeprom[128]={ - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x53,0x00,0x2e,0x00,0x43,0x00,0x00, - 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xff,0xff,0xff,0xff,0x00,0x01, - 0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x80,0xff,0xff,0xff,0xff, - 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff -}; - -static NVRAM_HANDLER( superchs ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&superchs_eeprom_interface); - - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,128); /* Default the wheel setup values */ - } -} - -static MACHINE_DRIVER_START( superchs ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(superchs_readmem,superchs_writemem) - MDRV_CPU_VBLANK_INT(irq2_line_hold,1)/* VBL */ - - TAITO_F3_SOUND_SYSTEM_CPU(16000000) - - - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(superchs_cpub_readmem,superchs_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1)/* VBL */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(8) /* CPU slices - Need to interleave Cpu's 1 & 3 */ - - MDRV_MACHINE_RESET(superchs) - MDRV_NVRAM_HANDLER(superchs) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(superchs_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(superchs) - MDRV_VIDEO_UPDATE(superchs) - - /* sound hardware */ - TAITO_F3_SOUND_SYSTEM_ES5505(13343000) -MACHINE_DRIVER_END - -/***************************************************************************/ - -ROM_START( superchs ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024K for 68020 code (CPU A) */ - ROM_LOAD32_BYTE( "d46-35.27", 0x00000, 0x40000, CRC(1575c9a7) SHA1(e3441d6018ed3315c62c5e5c4534d8712b025ae2) ) - ROM_LOAD32_BYTE( "d46-34.25", 0x00001, 0x40000, CRC(c72a4d2b) SHA1(6ef64de15e52007406ce3255071a1f856e0e8b49) ) - ROM_LOAD32_BYTE( "d46-33.23", 0x00002, 0x40000, CRC(3094bcd0) SHA1(b6779b81a3ebec440a9359868dc43fc3a631ee11) ) - ROM_LOAD32_BYTE( "d46-31.21", 0x00003, 0x40000, CRC(38b983a3) SHA1(c4859cecc2f3506b7090c462cecd3e4eaabe85aa) ) - - ROM_REGION( 0x140000, REGION_CPU2, 0 ) /* Sound cpu */ - ROM_LOAD16_BYTE( "d46-37.8up", 0x100000, 0x20000, CRC(60b51b91) SHA1(0d0b017808e0a3bdabe8ef5a726bbe16428db06b) ) - ROM_LOAD16_BYTE( "d46-36.7lo", 0x100001, 0x20000, CRC(8f7aa276) SHA1(b3e330e33099d3cbf4cdc43063119b041e9eea3a) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "d46-24.127", 0x00000, 0x20000, CRC(a006baa1) SHA1(e691ddab6cb79444bd6c3fc870e0dff3051d8cf9) ) - ROM_LOAD16_BYTE( "d46-23.112", 0x00001, 0x20000, CRC(9a69dbd0) SHA1(13eca492f1db834c599656750864e7003514f3d4) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "d46-05.87", 0x00000, 0x100000, CRC(150d0e4c) SHA1(9240b32900be733b8f44868ed5d64f5f1aaadb47) ) /* SCR 16x16 tiles */ - ROM_LOAD16_BYTE( "d46-06.88", 0x00001, 0x100000, CRC(321308be) SHA1(17e724cce39b1331650c1f08d693d057dcd43a3f) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "d46-01.64", 0x000003, 0x200000, CRC(5c2ae92d) SHA1(bee2caed4729a27fa0569d952d6d12170c2aa2a8) ) /* OBJ 16x16 tiles: each rom has 1 bitplane */ - ROM_LOAD32_BYTE( "d46-02.65", 0x000002, 0x200000, CRC(a83ca82e) SHA1(03759be87a8d62c0044e8a44e90c47308e32d3e5) ) - ROM_LOAD32_BYTE( "d46-03.66", 0x000001, 0x200000, CRC(e0e9cbfd) SHA1(b7deb2c58320af9d1b4273ad2758ce927d2e279c) ) - ROM_LOAD32_BYTE( "d46-04.67", 0x000000, 0x200000, CRC(832769a9) SHA1(136ead19edeee90b5be91a6e2f434193dc670fd8) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "d46-07.34", 0x00000, 0x80000, CRC(c3b8b093) SHA1(f34364248ca7fdaaa1a0f8f6f795f9b4bc935fb9) ) /* STY, used to create big sprites on the fly */ - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "d46-10.2", 0xc00000, 0x200000, CRC(306256be) SHA1(e6e5d4a4c0b98470f2aff2e94624dd19af73ec5d) ) - ROM_LOAD16_BYTE( "d46-12.4", 0x000000, 0x200000, CRC(a24a53a8) SHA1(5d5fb87a94ceabda89360064d7d9b6d23c4c606b) ) - ROM_RELOAD ( 0x400000, 0x200000 ) - ROM_LOAD16_BYTE( "d46-11.5", 0x800000, 0x200000, CRC(d4ea0f56) SHA1(dc8d2ed3c11d0b6f9ebdfde805188884320235e6) ) -ROM_END - -static READ32_HANDLER( main_cycle_r ) -{ - if (activecpu_get_pc()==0x702) - cpu_spinuntil_int(); - - return superchs_ram[0]; -} - -static READ16_HANDLER( sub_cycle_r ) -{ - if (activecpu_get_pc()==0x454) - cpu_spinuntil_int(); - - return superchs_ram[2]&0xffff; -} - -static DRIVER_INIT( superchs ) -{ - /* Speedup handlers */ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x100000, 0x100003, 0, 0, main_cycle_r); - memory_install_read16_handler(2, ADDRESS_SPACE_PROGRAM, 0x80000a, 0x80000b, 0, 0, sub_cycle_r); -} - -GAME( 1992, superchs, 0, superchs, superchs, superchs, ROT0, "Taito America Corporation", "Super Chase - Criminal Termination (US)", 0 ) diff --git a/src/drivers/suprloco.c b/src/drivers/suprloco.c deleted file mode 100644 index 03a245ee4..000000000 --- a/src/drivers/suprloco.c +++ /dev/null @@ -1,300 +0,0 @@ -/****************************************************************************** - -Super Locomotive - -driver by Zsolt Vasvari - -TODO: -- Bit 5 in suprloco_control_w is pulsed when loco turns "super". This is supposed - to make red parts of sprites blink to purple, it's not clear how this is - implemented in hardware, there's a hack to support it. - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/system1.h" -#include "cpu/z80/z80.h" -#include "machine/segacrpt.h" -#include "sound/sn76496.h" - -extern unsigned char *suprloco_videoram; - -PALETTE_INIT( suprloco ); -VIDEO_START( suprloco ); -VIDEO_UPDATE( suprloco ); -WRITE8_HANDLER( suprloco_videoram_w ); -WRITE8_HANDLER( suprloco_scrollram_w ); -READ8_HANDLER( suprloco_scrollram_r ); -WRITE8_HANDLER( suprloco_control_w ); -READ8_HANDLER( suprloco_control_r ); - - -static WRITE8_HANDLER( suprloco_soundport_w ) -{ - soundlatch_w(0,data); - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); - /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */ - cpu_spinuntil_time(TIME_IN_USEC(50)); -} - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc1ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xc800) AM_READ(input_port_0_r) - AM_RANGE(0xd000, 0xd000) AM_READ(input_port_1_r) - AM_RANGE(0xd800, 0xd800) AM_READ(input_port_2_r) - AM_RANGE(0xe000, 0xe000) AM_READ(input_port_3_r) - AM_RANGE(0xe001, 0xe001) AM_READ(input_port_4_r) - AM_RANGE(0xe801, 0xe801) AM_READ(suprloco_control_r) - AM_RANGE(0xf000, 0xf6ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf7e0, 0xf7ff) AM_READ(suprloco_scrollram_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xe800, 0xe800) AM_WRITE(suprloco_soundport_w) - AM_RANGE(0xe801, 0xe801) AM_WRITE(suprloco_control_w) - AM_RANGE(0xf000, 0xf6ff) AM_WRITE(suprloco_videoram_w) AM_BASE(&suprloco_videoram) - AM_RANGE(0xf7e0, 0xf7ff) AM_WRITE(suprloco_scrollram_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xa003) AM_WRITE(SN76496_0_w) - AM_RANGE(0xc000, 0xc003) AM_WRITE(SN76496_1_w) -ADDRESS_MAP_END - - - -INPUT_PORTS_START( suprloco ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x38, 0x00, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x38, DEF_STR( 5C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x28, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x40, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0xc0, "5" ) - - PORT_START_TAG("DSW2") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000" ) - PORT_DIPSETTING( 0x01, "30000" ) - PORT_DIPSETTING( 0x02, "40000" ) - PORT_DIPSETTING( 0x03, "50000" ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x20, 0x20, "Infinite Lives (Cheat)") - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Initial Entry" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) ) - -INPUT_PORTS_END - - -static const gfx_layout charlayout = -{ - 8,8, /* 8 by 8 */ - 1024, /* 1024 characters */ - 4, /* 4 bits per pixel */ - { 0, 1024*8*8, 2*1024*8*8, 3*1024*8*8 }, /* plane */ - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - - -static const gfx_decode gfxdecodeinfo[] = -{ - /* sprites use colors 256-511 + 512-767 */ - { REGION_GFX1, 0x6000, &charlayout, 0, 16 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( suprloco ) - - /* basic machine hardware */ - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz (?) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* NMIs are caused by the main CPU */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(5000)) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(32*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(512+256) - - MDRV_PALETTE_INIT(suprloco) - MDRV_VIDEO_START(suprloco) - MDRV_VIDEO_UPDATE(suprloco) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - - MDRV_SOUND_ADD(SN76496, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( suprloco ) - ROM_REGION( 2*0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ - ROM_LOAD( "ic37.bin", 0x0000, 0x4000, CRC(57f514dd) SHA1(707800b90a22547a56b01d1e11775e9ee5555d23) ) /* encrypted */ - ROM_LOAD( "ic15.bin", 0x4000, 0x4000, CRC(5a1d2fb0) SHA1(fdb9416e5530718245fd597073a63feddb233c3c) ) /* encrypted */ - ROM_LOAD( "ic28.bin", 0x8000, 0x4000, CRC(a597828a) SHA1(61004d112591fd2d752c39df71c1304d9308daae) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "ic64.bin", 0x0000, 0x2000, CRC(0aa57207) SHA1(b29b533505cb5b47c90534f2f610baeb7265d030) ) - - ROM_REGION( 0xe000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ic63.bin", 0x0000, 0x2000, CRC(e571fe81) SHA1(ac2b5914a445b89b7456b2c4290e4630b525f05d) ) - ROM_LOAD( "ic62.bin", 0x2000, 0x2000, CRC(6130f93c) SHA1(ae0657f46c10e75eec994e75359a89b5d61baf68) ) - ROM_LOAD( "ic61.bin", 0x4000, 0x2000, CRC(3b03004e) SHA1(805b51cb14d3ace97f2e0f306db28921b2f5e322) ) - /*0x6000- 0xe000 will be created by init_suprloco */ - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data used at runtime */ - ROM_LOAD( "ic55.bin", 0x0000, 0x4000, CRC(ee2d3ed3) SHA1(593f3cd5c4e7f20b5e31e6bac8864774442e4b75) ) - ROM_LOAD( "ic56.bin", 0x4000, 0x2000, CRC(f04a4b50) SHA1(80363f0c508fb2a755bf684f9a6862c1e7285495) ) - /*0x6000 empty */ - - ROM_REGION( 0x0620, REGION_PROMS, 0 ) - ROM_LOAD( "ic100.bin", 0x0100, 0x0080, CRC(7b0c8ce5) SHA1(4e1ea5ce38198a3965dfeb609ba0c7e8211531c3) ) /* color PROM */ - ROM_CONTINUE( 0x0000, 0x0080 ) - ROM_CONTINUE( 0x0180, 0x0080 ) - ROM_CONTINUE( 0x0080, 0x0080 ) - ROM_LOAD( "ic89.bin", 0x0200, 0x0400, CRC(1d4b02cb) SHA1(00d822f1bc4f57f2f5d5a0615241f8136246a842) ) /* 3bpp to 4bpp table */ - ROM_LOAD( "ic7.bin", 0x0600, 0x0020, CRC(89ba674f) SHA1(17c87840c8011968675a5a6f55966467df02364b) ) /* unknown */ -ROM_END - - - -DRIVER_INIT( suprloco ) -{ - /* convert graphics to 4bpp from 3bpp */ - - int i, j, k, color_source, color_dest; - unsigned char *source, *dest, *lookup; - - source = memory_region(REGION_GFX1); - dest = source + 0x6000; - lookup = memory_region(REGION_PROMS) + 0x0200; - - for (i = 0; i < 0x80; i++, lookup += 8) - { - for (j = 0; j < 0x40; j++, source++, dest++) - { - dest[0] = dest[0x2000] = dest[0x4000] = dest[0x6000] = 0; - - for (k = 0; k < 8; k++) - { - color_source = (((source[0x0000] >> k) & 0x01) << 2) | - (((source[0x2000] >> k) & 0x01) << 1) | - (((source[0x4000] >> k) & 0x01) << 0); - - color_dest = lookup[color_source]; - - dest[0x0000] |= (((color_dest >> 3) & 0x01) << k); - dest[0x2000] |= (((color_dest >> 2) & 0x01) << k); - dest[0x4000] |= (((color_dest >> 1) & 0x01) << k); - dest[0x6000] |= (((color_dest >> 0) & 0x01) << k); - } - } - } - - - /* decrypt program ROMs */ - suprloco_decode(); -} - - - -GAME( 1982, suprloco, 0, suprloco, suprloco, suprloco, ROT0, "Sega", "Super Locomotive", 0 ) diff --git a/src/drivers/suprnova.c b/src/drivers/suprnova.c deleted file mode 100644 index 3d479d6cf..000000000 --- a/src/drivers/suprnova.c +++ /dev/null @@ -1,1761 +0,0 @@ -/* Super Kaneko Nova System */ -/* Original Driver by Sylvain Glaize */ -/* taken to pieces and attempted reconstruction by David Haywood */ - -/* Credits (in no particular order): - Olivier Galibert for all the assistance and information he's provided - R.Belmont for working on the SH2 timers so sound worked - Nicola Salmoria for hooking up the Roz and improving the dirty tile handling - Paul Priest for a lot of things - Stephh for spotting what was wrong with Puzz Loop's inputs -*/ - -/* -ToDo: - Priorities - Transparency effects (each pen has a transparent flag, there are seperate r,g,b alpha values to be used for these pens) - Idle skipping on other games + bios .. - Fix gaps between zoomed sprites (See Gals Panic 4 continue screen and timer) - Fix broken games - -Alpha pens: - galpanis uses them to white in/out the bg's during attract? Solid white atm. - -Priorities: - Puzzloop appears to use the priorities, the other games might use alpha effects to disable a layer instead .. - *they don't appear to use alpha, so how should it work, senknow intro, galpanis attract, cyvern level 4? - -Ram-Based Tiles: - The front layer in galpanic games - The kaneko logo in galpanis - The Bios - -Sprite Zoom: - Used all over the place in the Gals Panic games, check the bit in galpani4 attract where if you hammer the button the ballon expands until it bursts. - Puzz Loop main logo - -Roz: - Should be used on galpani4 bg's, but for some reason incxx,incxy,incyx,incyy are always 1,0,0,1 resp. Maybe a timer problem, input problem or core problem. Who knows? - Update, rand() was returning a 15-bit number under mingw. Top bit seemed to determine whether it rotated or not. - To zoom the skull in the senknow attract mode - To zoom the girl at the end of a level in galpanis - To zoom the kaneko logo in galpanis - -Linescroll: - Puzzloop intro, the screen covered in 'puzz loop' of varying sizes, the little ones go left and the big ones right. - Puzzloop title screen uses it just to scroll the bg up. - Also used behind the hi-score table on puzzloop... - Galpani4/galpanis use it for 2P mode on both bg A and bg B. - -R,G,B Brightness: - The Electro Design games have this set darker than 0xff for sprites and bg's anyway. - Galpanis uses it to dim the bg's in attract on the stats screens for the characters (bg's hidden by white pen atm). -Lots of games use them to fade, haven't seen r,g,b used independantly yet but you never know. - -etc.etc. - --pjp/dh - -gutsn Crash Reason -the routine at 401d8c8 calls 40249e0 with r14 as a parameter, which points where the return pr on the stack is -param is 60ffbc0, pr is at 60ffbcc, but 40249e0 writes more than 12 bytes -Gutsn now works in 0.69, timing/sh2 fixes?? - -Motherboard Layout ------------------- - -SUPER-KANEKO-NOVA-SYSTEM -MAIN-BOARD-A -NEP-16 - - - BATT HM514260 - CR2032 SKNSA1 HM514260 SH2 - W24257 LH5168 -YMZ280B-F W24257 BABY004 LATTICE SW1 M62X42 - pLSI1016 - HITACHI 28.636MHz 33.3333MHz - DF1 21.504MHz -J D49307 ALTAIR DENEB - BY006-224 BY007-32F -A (QFP208) (QFP208) - -M W24257 W24257 HM514260 - /- W24257 W24257 /- -M VEGA || W24257 SPCII-B HM514260 || - BY005-197 || W24257 JH-6186 || -A (QFP144) || (QFP208) || - || W24257 || - DSW1(8) || VIEWIII-A SPCII-A W24257 LH540202 || - || BL-001 JH-4181 W24257 || - \- (QFP240) (QFP208) W24257 \- - OKIM6253 - - -Notes: - SKNSA1 is BIOS (Asia) - HM514260, W24257, LH5168, M62X42 all smt SRAM - LH540202 is DIP SRAM - - -Cart Layout ------------ - -SUPER-KANEKO-NOVA-SYSTEM -ROM-BOARD -NEP-16 - - - /- /- - ||SK300-00 * PAL PAL D431000 D431000 * * || - || || - || || - || * SK-200-00 || - || SK01A SK01A || - || U8 U10 * * SK-101 SK-100-00|| - \- \- - - Notes: - *: unpopulated position for surface mounted 16MBit SOP44 MASK ROM - U8 and U10 are socketed 27C040 EPROM - All other ROMs are surface mounted SOP44 MASK ROM - -Cart Layout ------------ - -SUPER KANEKO NOVA SYSTEM -ROM 4 BOARD -NEP-16 - -Top Side: - /- /- - ||SS300-00 SS210-00 SS102-00 SS103-00 SS201-00 || - ||U1 U3 U8 U32 U9 || - || || - || || - || 082* SG01A SG01A # # || - || U4 U6 U29 U30 || - \- \- - -Bottom Side: - /- /- - ||SS200-00 SS000-00 SS101-00 ^ ^ || - ||U17 U21 U20 U24 U26 || - || || - || || - || NEC NEC || - || D431000 D43100 || - \- \- - -* Kaneko (208 pin PQFP) # Empty sockets for 27C4001 / 27C040 - ROM0 ^ Empty sockets for uPD23C32000 - 082 Full NEC ram number: D431000AGW-70LL - 9709PK002 - - -Cart Layout ------------ - -SUPER-KANEKO-NOVA-SYSTEM -ROM-2-BOARD -NEP-16 - - - /- /- - ||PZL-300-00 * PAL PAL * PZL-200-00 PZL-210-00 * || - || || - || D431000 D431000 || - || || - || PZ01U PZ01U # # || - || U8 U10 U43 U44 * * PZL-100-00 || - \- \- - - -*/ - -#include "driver.h" -#include "sound/ymz280b.h" -#include - -#define BIOS_SKIP 1 // Skip Bios as it takes too long and doesn't complete atm. - -// Defined in vidhrdw -extern void skns_sprite_kludge(int x, int y); - -UINT32 *skns_tilemapA_ram, *skns_tilemapB_ram, *skns_v3slc_ram; -UINT32 *skns_palette_ram, *skns_v3t_ram, *skns_main_ram, *skns_cache_ram; -UINT32 *skns_pal_regs, *skns_v3_regs, *skns_spc_regs; - -UINT32 skns_v3t_dirty[0x4000]; // allocate this elsewhere? -UINT32 skns_v3t_4bppdirty[0x8000]; // allocate this elsewhere? -int skns_v3t_somedirty,skns_v3t_4bpp_somedirty; - -static UINT8 bright_spc_b=0x00, bright_spc_g=0x00, bright_spc_r=0x00; -static UINT8 bright_v3_b=0x00, bright_v3_g=0x00, bright_v3_r=0x00; -static int use_spc_bright, use_v3_bright; - -WRITE32_HANDLER ( skns_tilemapA_w ); -WRITE32_HANDLER ( skns_tilemapB_w ); -WRITE32_HANDLER ( skns_v3_regs_w ); -VIDEO_START(skns); -VIDEO_EOF(skns); -VIDEO_UPDATE(skns); - -/* hit.c */ - -static struct { - UINT16 x1p, y1p, z1p, x1s, y1s, z1s; - UINT16 x2p, y2p, z2p, x2s, y2s, z2s; - UINT16 org; - - UINT16 x1_p1, x1_p2, y1_p1, y1_p2, z1_p1, z1_p2; - UINT16 x2_p1, x2_p2, y2_p1, y2_p2, z2_p1, z2_p2; - UINT16 x1tox2, y1toy2, z1toz2; - INT16 x_in, y_in, z_in; - UINT16 flag; - - UINT8 disconnect; -} hit; - -static void hit_calc_orig(UINT16 p, UINT16 s, UINT16 org, UINT16 *l, UINT16 *r) -{ - switch(org & 3) { - case 0: - *l = p; - *r = p+s; - break; - case 1: - *l = p-s/2; - *r = *l+s; - break; - case 2: - *l = p-s; - *r = p; - break; - case 3: - *l = p-s; - *r = p+s; - break; - } -} - -static void hit_calc_axis(UINT16 x1p, UINT16 x1s, UINT16 x2p, UINT16 x2s, UINT16 org, - UINT16 *x1_p1, UINT16 *x1_p2, UINT16 *x2_p1, UINT16 *x2_p2, - INT16 *x_in, UINT16 *x1tox2) -{ - UINT16 x1l, x1r, x2l, x2r; - hit_calc_orig(x1p, x1s, org, &x1l, &x1r); - hit_calc_orig(x2p, x2s, org >> 8, &x2l, &x2r); - - *x1tox2 = x2p-x1p; - *x1_p1 = x1p; - *x2_p1 = x2p; - *x1_p2 = x1r; - *x2_p2 = x2l; - *x_in = x1r-x2l; -} - -static void hit_recalc(void) -{ - hit_calc_axis(hit.x1p, hit.x1s, hit.x2p, hit.x2s, hit.org, - &hit.x1_p1, &hit.x1_p2, &hit.x2_p1, &hit.x2_p2, - &hit.x_in, &hit.x1tox2); - hit_calc_axis(hit.y1p, hit.y1s, hit.y2p, hit.y2s, hit.org, - &hit.y1_p1, &hit.y1_p2, &hit.y2_p1, &hit.y2_p2, - &hit.y_in, &hit.y1toy2); - hit_calc_axis(hit.z1p, hit.z1s, hit.z2p, hit.z2s, hit.org, - &hit.z1_p1, &hit.z1_p2, &hit.z2_p1, &hit.z2_p2, - &hit.z_in, &hit.z1toz2); - - hit.flag = 0; - hit.flag |= hit.y2p > hit.y1p ? 0x8000 : hit.y2p == hit.y1p ? 0x4000 : 0x2000; - hit.flag |= hit.y_in >= 0 ? 0 : 0x1000; - hit.flag |= hit.x2p > hit.x1p ? 0x0800 : hit.x2p == hit.x1p ? 0x0400 : 0x0200; - hit.flag |= hit.x_in >= 0 ? 0 : 0x0100; - hit.flag |= hit.z2p > hit.z1p ? 0x0080 : hit.z2p == hit.z1p ? 0x0040 : 0x0020; - hit.flag |= hit.z_in >= 0 ? 0 : 0x0010; - hit.flag |= hit.x_in >= 0 && hit.y_in >= 0 && hit.z_in >= 0 ? 8 : 0; - hit.flag |= hit.z_in >= 0 && hit.x_in >= 0 ? 4 : 0; - hit.flag |= hit.y_in >= 0 && hit.z_in >= 0 ? 2 : 0; - hit.flag |= hit.x_in >= 0 && hit.y_in >= 0 ? 1 : 0; -/* if(0) - log_event("HIT", "Recalc, (%d,%d)-(%d,%d)-(%d,%d):(%d,%d)-(%d,%d)-(%d,%d):%04x, (%d,%d,%d), %04x", - hit.x1p, hit.x1s, hit.y1p, hit.y1s, hit.z1p, hit.z1s, - hit.x2p, hit.x2s, hit.y2p, hit.y2s, hit.z2p, hit.z2s, - hit.org, - hit.x_in, hit.y_in, hit.z_in, hit.flag); -*/ -} - -WRITE32_HANDLER ( skns_hit_w ) -//void hit_w(UINT32 adr, UINT32 data, int type) -{ - int adr = offset * 4; - - switch(adr) { - case 0x00: - case 0x28: - hit.x1p = data; - break; - case 0x08: - case 0x30: - hit.y1p = data; - break; - case 0x38: - case 0x50: - hit.z1p = data; - break; - case 0x04: - case 0x2c: - hit.x1s = data; - break; - case 0x0c: - case 0x34: - hit.y1s = data; - break; - case 0x3c: - case 0x54: - hit.z1s = data; - break; - case 0x10: - case 0x58: - hit.x2p = data; - break; - case 0x18: - case 0x60: - hit.y2p = data; - break; - case 0x20: - case 0x68: - hit.z2p = data; - break; - case 0x14: - case 0x5c: - hit.x2s = data; - break; - case 0x1c: - case 0x64: - hit.y2s = data; - break; - case 0x24: - case 0x6c: - hit.z2s = data; - break; - case 0x70: - hit.org = data; - break; - default: -// log_write("HIT", adr, data, type); - break; - } - hit_recalc(); -} - -WRITE32_HANDLER ( skns_hit2_w ) -{ -// log_event("HIT", "Set disconnect to %02x", data); - hit.disconnect = data; -} - - -READ32_HANDLER( skns_hit_r ) -//UINT32 hit_r(UINT32 adr, int type) -{ - int adr = offset *4; - -// log_read("HIT", adr, type); - - if(hit.disconnect) - return 0x0000; - switch(adr) { - case 0x28: - case 0x2a: - return (UINT16)mame_rand(Machine); - case 0x00: - case 0x10: - return (UINT16)hit.x_in; - case 0x04: - case 0x14: - return (UINT16)hit.y_in; - case 0x18: - return (UINT16)hit.z_in; - case 0x08: - case 0x1c: - return hit.flag; - case 0x40: - return hit.x1p; - case 0x48: - return hit.y1p; - case 0x50: - return hit.z1p; - case 0x44: - return hit.x1s; - case 0x4c: - return hit.y1s; - case 0x54: - return hit.z1s; - case 0x58: - return hit.x2p; - case 0x60: - return hit.y2p; - case 0x68: - return hit.z2p; - case 0x5c: - return hit.x2s; - case 0x64: - return hit.y2s; - case 0x6c: - return hit.z2s; - case 0x70: - return hit.org; - case 0x80: - return hit.x1tox2; - case 0x84: - return hit.y1toy2; - case 0x88: - return hit.z1toz2; - case 0x90: - return hit.x1_p1; - case 0xa0: - return hit.y1_p1; - case 0xb0: - return hit.z1_p1; - case 0x98: - return hit.x1_p2; - case 0xa8: - return hit.y1_p2; - case 0xb8: - return hit.z1_p2; - case 0x94: - return hit.x2_p1; - case 0xa4: - return hit.y2_p1; - case 0xb4: - return hit.z2_p1; - case 0x9c: - return hit.x2_p2; - case 0xac: - return hit.y2_p2; - case 0xbc: - return hit.z2_p2; - default: -// log_read("HIT", adr, type); - return 0; - } -} - -/* end hit.c */ - - -/* start old driver code */ - - -static void interrupt_callback(int param) -{ - cpunum_set_input_line(0,param,HOLD_LINE); -} - -static MACHINE_RESET(skns) -{ - timer_pulse(TIME_IN_MSEC(2), 15, interrupt_callback); - timer_pulse(TIME_IN_MSEC(8), 11, interrupt_callback); - timer_pulse(TIME_IN_CYCLES(0,1824), 9, interrupt_callback); - - memory_set_bankptr(1,memory_region(REGION_USER1)); -} - - -static INTERRUPT_GEN(skns_interrupt) -{ - UINT8 interrupt = 5; - switch(cpu_getiloops()) - { - case 0: - interrupt = 5; // VBLANK - break; - case 1: - interrupt = 1; // SPC - break; - } - cpunum_set_input_line(0,interrupt,HOLD_LINE); -} - -/********************************************************************************** - - Input port definitions - - NOTE: The driver reads data from eight input ports, even if they are unused. - So I left them mapped. See for reference the READ32_HANDLERs : - "nova_input_port_0_r", "nova_input_port_3_r", "nova_input_port_dip_r" -**********************************************************************************/ - -static INPUT_PORTS_START( skns ) /* 3 buttons, 2 players */ - - PORT_START_TAG("IN0") /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN1") /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("IN2") /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") /* IN3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle A") /* Paddle A */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle B") /* Paddle B */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle C") /* Paddle C */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW") /* DSW */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR(Flip_Screen) ) // This port affects 0x040191c8 function - PORT_DIPSETTING( 0x02, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x04, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x08, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x10, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x20, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x40, 0x40, "Use Backup Ram" ) - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x40, DEF_STR(Yes) ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) - PORT_DIPSETTING( 0x00, "Freezes the game") - PORT_DIPSETTING( 0x80, "Right value") - - PORT_START_TAG("Paddle D") /* Paddle D */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -static INPUT_PORTS_START( skns_1p ) /* 2 buttons, 1 player */ - - PORT_START_TAG("IN0") /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* jjparads and jjparad2 are 1 player only games - ryouran and teljan have an unemulated feature - that allows to play them in two player mode - via a cable-network connection (untestable) - Service mode test shows only P1 inputs */ - PORT_START_TAG("IN1") /* IN1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* same as above, coin 2 and start 2 are untestable - in ryouran and teljan. So I left disabled for now */ - PORT_START_TAG("IN2") /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) -//PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) -//PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN3") /* IN3 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle A") /* Paddle A */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle B") /* Paddle B */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("Paddle C") /* Paddle C */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START_TAG("DSW") /* DSW */ - PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR(Flip_Screen) ) // This port affects 0x040191c8 function - PORT_DIPSETTING( 0x02, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x04, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x08, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x10, 0x10, "Test Mode" ) - PORT_DIPSETTING( 0x10, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR(Unknown) ) - PORT_DIPSETTING( 0x20, DEF_STR(Off) ) - PORT_DIPSETTING( 0x00, DEF_STR(On) ) - PORT_DIPNAME( 0x40, 0x40, "Use Backup Ram" ) - PORT_DIPSETTING( 0x00, DEF_STR(No) ) - PORT_DIPSETTING( 0x40, DEF_STR(Yes) ) - PORT_DIPNAME( 0x80, 0x80, "Freeze" ) - PORT_DIPSETTING( 0x00, "Freezes the game") - PORT_DIPSETTING( 0x80, "Right value") - - PORT_START_TAG("Paddle D") /* Paddle D */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -static INPUT_PORTS_START( cyvern ) /* 2 buttons, 2 players */ - PORT_INCLUDE( skns ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -static INPUT_PORTS_START( galpanis ) /* 1 button, 2 players */ - PORT_INCLUDE( skns ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - -INPUT_PORTS_END - -static INPUT_PORTS_START( puzzloop ) /* 2 buttons, 2 players, paddle */ - PORT_INCLUDE( skns ) - - PORT_MODIFY("IN0") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("IN1") - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_MODIFY("Paddle A") /* Paddle A */ - PORT_BIT( 0xFF, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_MODIFY("Paddle B") /* Paddle B */ - PORT_BIT( 0xFF, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2) - -INPUT_PORTS_END - -static INPUT_PORTS_START( vblokbrk ) /* 3 buttons, 2 players, paddle */ - PORT_INCLUDE( skns ) - - PORT_MODIFY("Paddle A") /* Paddle A */ - PORT_BIT( 0xFF, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_MODIFY("Paddle B") /* Paddle B */ - PORT_BIT( 0xFF, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2) - -INPUT_PORTS_END - - -static READ32_HANDLER( nova_input_port_0_r ) -{ - return readinputport(0)<<24 | readinputport(1)<<16 | readinputport(2)<<8 | readinputport(3); -} - -static READ32_HANDLER( nova_input_port_3_r ) -{ - return readinputport(8) | 0xffffff00; -} - -static READ32_HANDLER( nova_input_port_dip_r ) -{ - return readinputport(4)<<24 | readinputport(5)<<16 | readinputport(6)<<8 | readinputport(7); -} - -static UINT32 timer_0_temp[4]; - -static WRITE32_HANDLER( msm6242_w ) -{ - COMBINE_DATA(&timer_0_temp[offset]); - - if(offset>=4) - { - mame_printf_debug("Timer 0 outbound\n"); - return; - } -} - -static WRITE32_HANDLER( skns_io_w ) -{ - switch(offset) { - case 2: - if(((mem_mask & 0xff000000) == 0)) - { /* Coin Lock/Count */ -// coin_counter_w(0, data & 0x01000000); -// coin_counter_w(1, data & 0x02000000); -// coin_lockout_w(0, ~data & 0x04000000); -// coin_lockout_w(1, ~data & 0x08000000); // Works in puzzloop, others behave strange. - } - if(((mem_mask & 0x00ff0000) == 0)) - { /* Analogue Input Select */ - } - if(((mem_mask & 0x0000ff00) == 0)) - { /* Extended Output - Port A, Mahjong inputs, Comms etc. */ - } - if(((mem_mask & 0x000000ff) == 0)) - { /* Extended Output - Port B */ - } - break; - case 3: - if(((mem_mask & 0x0000ff00) == 0)) - { /* Interrupt Clear, do we need these? */ -/* if(data&0x01) - cpunum_set_input_line(0,1,CLEAR_LINE); - if(data&0x02) - cpunum_set_input_line(0,3,CLEAR_LINE); - if(data&0x04) - cpunum_set_input_line(0,5,CLEAR_LINE); - if(data&0x08) - cpunum_set_input_line(0,7,CLEAR_LINE); - if(data&0x10) - cpunum_set_input_line(0,9,CLEAR_LINE); - if(data&0x20) - cpunum_set_input_line(0,0xb,CLEAR_LINE); - if(data&0x40) - cpunum_set_input_line(0,0xd,CLEAR_LINE); - if(data&0x80) - cpunum_set_input_line(0,0xf,CLEAR_LINE);*/ - - /* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */ - if (activecpu_get_pc()==0x04013B44) - { - if (!strcmp(Machine->gamedrv->name,"vblokbrk") || - !strcmp(Machine->gamedrv->name,"sarukani")) - cpu_spinuntil_int(); - } - - } - else - { - logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data); - } - break; - default: - logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data); - break; - } -} - - -static READ32_HANDLER( msm6242_r ) -{ - mame_system_time systime; - long value; - - mame_get_base_datetime(Machine, &systime); - // The clock is not y2k-compatible, wrap back 10 years, screw the leap years - // tm->tm_year -= 10; - - switch(offset) { - case 0: - value = (systime.local_time.second % 10)<<24; - value |= (systime.local_time.second / 10)<<16; - value |= (systime.local_time.minute % 10)<<8; - value |= (systime.local_time.minute / 10); - break; - case 1: - value = (systime.local_time.hour % 10)<<24; - value |= ((systime.local_time.hour / 10) /*| (tm->tm_hour >= 12 ? 4 : 0)*/)<<16; - value |= (systime.local_time.mday % 10)<<8; - value |= (systime.local_time.mday / 10); - break; - case 2: - value = ((systime.local_time.month + 1) % 10)<<24; - value |= ((systime.local_time.month + 1) / 10)<<16; - value |= (systime.local_time.year % 10)<<8; - value |= ((systime.local_time.year / 10) % 10); - break; - case 3: - default: - value = (systime.local_time.weekday)<<24; - value |= (1)<<16; - value |= (6)<<8; - value |= (4); - break; - } - return value; -} - -/* end old driver code */ -static void palette_set_rgb_brightness (int offset, UINT8 brightness_r, UINT8 brightness_g, UINT8 brightness_b) -{ - int use_bright, r, g, b, alpha; - - b = ((skns_palette_ram[offset] >> 0 ) & 0x1f); - g = ((skns_palette_ram[offset] >> 5 ) & 0x1f); - r = ((skns_palette_ram[offset] >> 10 ) & 0x1f); - - alpha = ((skns_palette_ram[offset] >> 15 ) & 0x1); - - if(offset<(0x40*256)) { // 1st half is for Sprites - use_bright = use_spc_bright; - } else { // V3 bg's - use_bright = use_v3_bright; - } - - if(use_bright) { - if(brightness_b) b = ((b<<3) * (brightness_b+1))>>8; - else b = 0; - if(brightness_g) g = ((g<<3) * (brightness_g+1))>>8; - else g = 0; - if(brightness_r) r = ((r<<3) * (brightness_r+1))>>8; - else r = 0; - } else { - b <<= 3; - g <<= 3; - r <<= 3; - } - - palette_set_color(Machine,offset,r,g,b); -} - -// This ignores the alpha values atm. -static int spc_changed=0, v3_changed=0, palette_updated=0; - -static WRITE32_HANDLER ( skns_pal_regs_w ) -{ - COMBINE_DATA(&skns_pal_regs[offset]); - palette_updated =1; - - switch ( offset ) - { - case (0x00/4): // RWRA0 - if( use_spc_bright != (data&1) ) { - use_spc_bright = data&1; - spc_changed = 1; - } - break; - case (0x04/4): // RWRA1 - if( bright_spc_g != (data&0xff) ) { - bright_spc_g = data&0xff; - spc_changed = 1; - } - break; - case (0x08/4): // RWRA2 - if( bright_spc_r != (data&0xff) ) { - bright_spc_r = data&0xff; - spc_changed = 1; - } - break; - case (0x0C/4): // RWRA3 - if( bright_spc_b != (data&0xff) ) { - bright_spc_b = data&0xff; - spc_changed = 1; - } - break; - - case (0x10/4): // RWRB0 - if( use_v3_bright != (data&1) ) { - use_v3_bright = data&1; - v3_changed = 1; - } - break; - case (0x14/4): // RWRB1 - if( bright_v3_g != (data&0xff) ) { - bright_v3_g = data&0xff; - v3_changed = 1; - } - break; - case (0x18/4): // RWRB2 - if( bright_v3_r != (data&0xff) ) { - bright_v3_r = data&0xff; - v3_changed = 1; - } - break; - case (0x1C/4): // RWRB3 - if( bright_v3_b != (data&0xff) ) { - bright_v3_b = data&0xff; - v3_changed = 1; - } - break; - } -} - -void skns_palette_update(void) -{ - int i; - - if (palette_updated) - { - if(spc_changed) - for(i=0; i<=((0x40*256)-1); i++) - palette_set_rgb_brightness (i, bright_spc_r, bright_spc_g, bright_spc_b); - - if(v3_changed) - for(i=(0x40*256); i<=((0x80*256)-1); i++) - palette_set_rgb_brightness (i, bright_v3_r, bright_v3_g, bright_v3_b); - palette_updated =0; - } -} - - -static WRITE32_HANDLER ( skns_palette_ram_w ) -{ - int r,g,b; - int brightness_r, brightness_g, brightness_b, alpha; - int use_bright; - - COMBINE_DATA(&skns_palette_ram[offset]); - - b = ((skns_palette_ram[offset] >> 0 ) & 0x1f); - g = ((skns_palette_ram[offset] >> 5 ) & 0x1f); - r = ((skns_palette_ram[offset] >> 10 ) & 0x1f); - - alpha = ((skns_palette_ram[offset] >> 15 ) & 0x1); - - if(offset<(0x40*256)) { // 1st half is for Sprites - use_bright = use_spc_bright; - brightness_b = bright_spc_b; - brightness_g = bright_spc_g; - brightness_r = bright_spc_r; - } else { // V3 bg's - use_bright = use_v3_bright; - brightness_b = bright_v3_b; - brightness_g = bright_v3_g; - brightness_r = bright_v3_r; - } - - if(use_bright) { - if(brightness_b) b = ((b<<3) * (brightness_b+1))>>8; - else b = 0; - if(brightness_g) g = ((g<<3) * (brightness_g+1))>>8; - else g = 0; - if(brightness_r) r = ((r<<3) * (brightness_r+1))>>8; - else r = 0; - } else { - b <<= 3; - g <<= 3; - r <<= 3; - } - - palette_set_color(Machine,offset,r,g,b); -} - -static WRITE32_HANDLER( skns_v3t_w ) -{ - UINT8 *btiles = memory_region(REGION_GFX3); - - COMBINE_DATA(&skns_v3t_ram[offset]); - - skns_v3t_dirty[offset/0x40] = 1; - skns_v3t_somedirty = 1; - skns_v3t_4bppdirty[offset/0x20] = 1; - skns_v3t_4bpp_somedirty = 1; - - data = skns_v3t_ram[offset]; -// i think we need to swap around to decode .. endian issues? - btiles[offset*4+0] = (data & 0xff000000) >> 24; - btiles[offset*4+1] = (data & 0x00ff0000) >> 16; - btiles[offset*4+2] = (data & 0x0000ff00) >> 8; - btiles[offset*4+3] = (data & 0x000000ff) >> 0; -} - -static WRITE32_HANDLER( skns_ymz280_w ) -{ - if ((mem_mask & 0xff000000) == 0) - YMZ280B_register_0_w(offset,(data >> 24) & 0xff); - if ((mem_mask & 0x00ff0000) == 0) - YMZ280B_data_0_w(offset,(data >> 16) & 0xff); -} - -static ADDRESS_MAP_START( skns_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x0007ffff) AM_READ(MRA32_ROM) /* BIOS ROM */ - AM_RANGE(0x00400000, 0x00400003) AM_READ(nova_input_port_0_r) - AM_RANGE(0x00400004, 0x00400007) AM_READ(nova_input_port_dip_r) - AM_RANGE(0x00400008, 0x0040000b) AM_READ(MRA32_RAM) - /* In between is write only */ - AM_RANGE(0x0040000c, 0x0040000f) AM_READ(nova_input_port_3_r) - AM_RANGE(0x00800000, 0x00801fff) AM_READ(MRA32_RAM) /* 'backup' RAM */ -// AM_RANGE(0x00c00000, 0x00c00003) AM_READ(skns_ymz280_r) /* ymz280 (sound) */ - AM_RANGE(0x01000000, 0x0100000f) AM_READ(msm6242_r) - AM_RANGE(0x02000000, 0x02003fff) AM_READ(MRA32_RAM) /* 'spc' RAM */ - AM_RANGE(0x02100000, 0x0210003f) AM_READ(MRA32_RAM) /* 'spc' */ - AM_RANGE(0x02400000, 0x0240007f) AM_READ(MRA32_RAM) /* 'v3' */ - AM_RANGE(0x02500000, 0x02507fff) AM_READ(MRA32_RAM) /* 'v3tbl' RAM */ - AM_RANGE(0x02600000, 0x02607fff) AM_READ(MRA32_RAM) /* 'v3slc' RAM */ - AM_RANGE(0x02a00000, 0x02a0001f) AM_READ(MRA32_RAM) /* skns_pal_regs */ - AM_RANGE(0x02a40000, 0x02a5ffff) AM_READ(MRA32_RAM) /* 'palette' RAM */ - AM_RANGE(0x02f00000, 0x02f000ff) AM_READ(skns_hit_r) /* hit */ - AM_RANGE(0x04000000, 0x041fffff) AM_READ(MRA32_BANK1) /* GAME ROM */ - AM_RANGE(0x04800000, 0x0483ffff) AM_READ(MRA32_RAM) /* 'v3t' RAM */ - AM_RANGE(0x06000000, 0x060fffff) AM_READ(MRA32_RAM) /* 'main' RAM */ - AM_RANGE(0xc0000000, 0xc0000fff) AM_READ(MRA32_RAM) /* 'cache' RAM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( skns_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x0007ffff) AM_WRITE(MWA32_ROM) /* BIOS ROM */ - AM_RANGE(0x00400000, 0x0040000f) AM_WRITE(skns_io_w) /* I/O Write */ - AM_RANGE(0x00800000, 0x00801fff) AM_WRITE(MWA32_RAM) AM_BASE(&generic_nvram32) AM_SIZE(&generic_nvram_size) /* 'backup' RAM */ - AM_RANGE(0x00c00000, 0x00c00003) AM_WRITE(skns_ymz280_w) /* ymz280_w (sound) */ - AM_RANGE(0x01000000, 0x0100000f) AM_WRITE(msm6242_w) - AM_RANGE(0x01800000, 0x01800003) AM_WRITE(skns_hit2_w) - AM_RANGE(0x02000000, 0x02003fff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) /* sprite ram */ - AM_RANGE(0x02100000, 0x0210003f) AM_WRITE(MWA32_RAM) AM_BASE(&skns_spc_regs) /* sprite registers */ - AM_RANGE(0x02400000, 0x0240007f) AM_WRITE(skns_v3_regs_w) AM_BASE(&skns_v3_regs) /* tilemap registers */ - AM_RANGE(0x02500000, 0x02503fff) AM_WRITE(skns_tilemapA_w) AM_BASE(&skns_tilemapA_ram) /* tilemap A */ - AM_RANGE(0x02504000, 0x02507fff) AM_WRITE(skns_tilemapB_w) AM_BASE(&skns_tilemapB_ram) /* tilemap B */ - AM_RANGE(0x02600000, 0x02607fff) AM_WRITE(MWA32_RAM) AM_BASE(&skns_v3slc_ram) /* tilemap linescroll */ - AM_RANGE(0x02a00000, 0x02a0001f) AM_WRITE(skns_pal_regs_w) AM_BASE(&skns_pal_regs) - AM_RANGE(0x02a40000, 0x02a5ffff) AM_WRITE(skns_palette_ram_w) AM_BASE(&skns_palette_ram) - AM_RANGE(0x02f00000, 0x02f000ff) AM_WRITE(skns_hit_w) - AM_RANGE(0x04000000, 0x041fffff) AM_WRITE(MWA32_ROM) /* GAME ROM */ - AM_RANGE(0x04800000, 0x0483ffff) AM_WRITE(skns_v3t_w) AM_BASE(&skns_v3t_ram) /* tilemap b ram based tiles */ - AM_RANGE(0x06000000, 0x060fffff) AM_WRITE(MWA32_RAM) AM_BASE(&skns_main_ram) - AM_RANGE(0xc0000000, 0xc0000fff) AM_WRITE(MWA32_RAM) AM_BASE(&skns_cache_ram) /* 'cache' RAM */ -ADDRESS_MAP_END - -/***** GFX DECODE *****/ - -static const gfx_layout skns_tilemap_layout = -{ - 16,16, - RGN_FRAC(1,1), - 8, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, - { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, - 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, - 16*16*8 -}; - -static const gfx_layout skns_4bpptilemap_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0, 1, 2, 3 }, - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4, - 9*4, 8*4, 11*4, 10*4, 13*4, 12*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 16*16*4 -}; - -static const gfx_decode skns_bg_decode[] = -{ - /* REGION_GFX1 is sprites, RLE encoded */ - { REGION_GFX2, 0, &skns_tilemap_layout, 0x000, 128 }, - { REGION_GFX3, 0, &skns_tilemap_layout, 0x000, 128 }, - { REGION_GFX2, 0, &skns_4bpptilemap_layout, 0x000, 128 }, - { REGION_GFX3, 0, &skns_4bpptilemap_layout, 0x000, 128 }, - { -1 } -}; - -/***** MACHINE DRIVER *****/ - -static struct YMZ280Binterface ymz280b_intf = -{ - REGION_SOUND1, - 0 // irq ? -}; - -static MACHINE_DRIVER_START(skns) - MDRV_CPU_ADD(SH2,28638000) - MDRV_CPU_PROGRAM_MAP(skns_readmem,skns_writemem) - MDRV_CPU_VBLANK_INT(skns_interrupt,2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(skns) - MDRV_NVRAM_HANDLER(generic_1fill) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*16,64*16) - MDRV_SCREEN_VISIBLE_AREA(0,319,0,239) - MDRV_PALETTE_LENGTH(32768) - MDRV_GFXDECODE(skns_bg_decode) - - MDRV_VIDEO_START(skns) - MDRV_VIDEO_EOF(skns) - MDRV_VIDEO_UPDATE(skns) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YMZ280B, 33333333 / 2) - MDRV_SOUND_CONFIG(ymz280b_intf) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/***** BIOS SKIPPING *****/ - -static READ32_HANDLER( bios_skip_r ) -{ -#if BIOS_SKIP - if (activecpu_get_pc()==0x6fa) program_write_byte(0x06000029,1); -#endif - return skns_main_ram[0x00028/4]; -} - -/***** IDLE SKIPPING *****/ - -static READ32_HANDLER( gutsn_speedup_r ) -{ -/* - 0402206A: MOV.L @($8C,PC),R5 - 0402206C: MOV.L @($8C,PC),R1 - 0402206E: MOV.L @R1,R2 // R1 == 600C780 - 04022070: MOV.L @R5,R3 // R5 == 6000078 - 04022072: CMP/EQ R2,R3 - 04022074: BT $0402206C -*/ - if (activecpu_get_pc()==0x4022070) - { - if(skns_main_ram[0x00078/4] == skns_main_ram[0x0c780/4]) - cpu_spinuntil_int(); - } - return skns_main_ram[0x0c780/4]; -} - -static READ32_HANDLER( cyvern_speedup_r ) -{ - if (activecpu_get_pc()==0x402ebd4) cpu_spinuntil_int(); - return skns_main_ram[0x4d3c8/4]; -} - -static READ32_HANDLER( puzloopj_speedup_r ) -{ - if (activecpu_get_pc()==0x401dca2) cpu_spinuntil_int(); - return skns_main_ram[0x86714/4]; -} - -static READ32_HANDLER( puzloopu_speedup_r ) -{ - if (activecpu_get_pc()==0x401dab2) cpu_spinuntil_int(); - return skns_main_ram[0x85cec/4]; -} - -static READ32_HANDLER( puzzloop_speedup_r ) -{ -/* - 0401DA12: MOV.L @($80,PC),R1 - 0401DA14: MOV.L @R1,R0 (R1=0x6081d38) - 0401DA16: TST R0,R0 - 0401DA18: BF $0401DA26 - 0401DA26: BRA $0401DA12 -*/ - if (activecpu_get_pc()==0x401da16) cpu_spinuntil_int(); - return skns_main_ram[0x81d38/4]; -} - -static READ32_HANDLER( senknow_speedup_r ) -{ - if (activecpu_get_pc()==0x4017dd0) cpu_spinuntil_int(); - return skns_main_ram[0x0000dc/4]; -} - -static READ32_HANDLER( teljan_speedup_r ) -{ - if (activecpu_get_pc()==0x401ba34) cpu_spinuntil_int(); - return skns_main_ram[0x002fb4/4]; -} - -static READ32_HANDLER( jjparads_speedup_r ) -{ - if (activecpu_get_pc()==0x4015e86) cpu_spinuntil_int(); - return skns_main_ram[0x000994/4]; -} - -static READ32_HANDLER( jjparad2_speedup_r ) -{ - if (activecpu_get_pc()==0x401620c) cpu_spinuntil_int(); - return skns_main_ram[0x000984/4]; -} - -static READ32_HANDLER( ryouran_speedup_r ) -{ - if (activecpu_get_pc()==0x40182d0) cpu_spinuntil_int(); - return skns_main_ram[0x000a14/4]; -} - -static READ32_HANDLER( galpans2_speedup_r ) -{ - if (activecpu_get_pc()==0x4049ae4) cpu_spinuntil_int(); - return skns_main_ram[0x0fb6bc/4]; -} - -static READ32_HANDLER( panicstr_speedup_r ) -{ - if (activecpu_get_pc()==0x404e68c) cpu_spinuntil_int(); - return skns_main_ram[0x0f19e4/4]; -} - -static READ32_HANDLER( sengekis_speedup_r ) // 60006ee 600308e -{ - if (activecpu_get_pc()==0x60006ee) cpu_spinuntil_int(); - return skns_main_ram[0xb74bc/4]; -} - -static READ32_HANDLER( sengekij_speedup_r ) // 60006ee 600308e -{ - if (activecpu_get_pc()==0x60006ee) cpu_spinuntil_int(); - return skns_main_ram[0xb7380/4]; -} - -static DRIVER_INIT( skns ) { memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000028, 0x600002b, 0, 0, bios_skip_r ); } -static DRIVER_INIT( galpani4 ) { skns_sprite_kludge(-5,-1); init_skns(machine); } // Idle Loop caught by sh-2 core -static DRIVER_INIT( galpanis ) { skns_sprite_kludge(-5,-1); init_skns(machine); } // Idle Loop caught by sh-2 core -static DRIVER_INIT( cyvern ) { skns_sprite_kludge(+0,+2); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x604d3c8, 0x604d3cb, 0, 0, cyvern_speedup_r ); } -static DRIVER_INIT( galpans2 ) { skns_sprite_kludge(-1,-1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x60fb6bc, 0x60fb6bf, 0, 0, galpans2_speedup_r ); } -static DRIVER_INIT( gutsn ) { skns_sprite_kludge(+0,+0); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x600c780, 0x600c783, 0, 0, gutsn_speedup_r ); } -static DRIVER_INIT( panicstr ) { skns_sprite_kludge(-1,-1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x60f19e4, 0x60f19e7, 0, 0, panicstr_speedup_r ); } -static DRIVER_INIT( senknow ) { skns_sprite_kludge(+1,+1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x60000dc, 0x60000df, 0, 0, senknow_speedup_r ); } -static DRIVER_INIT( puzzloop ) { skns_sprite_kludge(-9,-1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6081d38, 0x6081d3b, 0, 0, puzzloop_speedup_r ); } -static DRIVER_INIT( puzloopj ) { skns_sprite_kludge(-9,-1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6086714, 0x6086717, 0, 0, puzloopj_speedup_r ); } -static DRIVER_INIT( puzloopu ) { skns_sprite_kludge(-9,-1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6085cec, 0x6085cef, 0, 0, puzloopu_speedup_r ); } -static DRIVER_INIT( jjparads ) { skns_sprite_kludge(+5,+1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000994, 0x6000997, 0, 0, jjparads_speedup_r ); } -static DRIVER_INIT( jjparad2 ) { skns_sprite_kludge(+5,+1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000984, 0x6000987, 0, 0, jjparad2_speedup_r ); } -static DRIVER_INIT( ryouran ) { skns_sprite_kludge(+5,+1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6000a14, 0x6000a17, 0, 0, ryouran_speedup_r ); } -static DRIVER_INIT( teljan ) { skns_sprite_kludge(+5,+1); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x6002fb4, 0x6002fb7, 0, 0, teljan_speedup_r ); } -static DRIVER_INIT( sengekis ) { skns_sprite_kludge(-192,-272); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x60b74bc, 0x60b74bf, 0, 0, sengekis_speedup_r ); } -static DRIVER_INIT( sengekij ) { skns_sprite_kludge(-192,-272); init_skns(machine); memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x60b7380, 0x60b7383, 0, 0, sengekij_speedup_r ); } -static DRIVER_INIT( sarukani ) { skns_sprite_kludge(-1,-1); init_skns(machine); } // Speedup is in skns_io_w() - - - -/***** ROM LOADING *****/ - -ROM_START( skns ) - ROM_REGION( 0x0100000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - ROM_LOAD ( "sknse1.u10", 0x000000, 0x080000, CRC(e2b9d7d1) SHA1(b530a3bb9dedc8cfafcba9f1f10277590be04a15) ) /* Europ BIOS */ - ROM_LOAD ( "sknsa1.u10", 0x000000, 0x080000, CRC(745e5212) SHA1(caba649ab2d83b2d7e007eecee0fc582c019df38) ) /* Asia BIOS */ - ROM_LOAD ( "sknsu1.u10", 0x000000, 0x080000, CRC(384d21ec) SHA1(a27e8a18099d9cea64fa32db28d01101c2a78815) ) /* USA BIOS */ - ROM_LOAD ( "sknsk1.u10", 0x000000, 0x080000, CRC(ff1c9f79) SHA1(a51e598d43e76d37da69b1f094c111273bdfc94a) ) /* Korea BIOS */ -ROM_END - -ROM_START( cyvern ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "cvj-even.u10", 0x000000, 0x100000, CRC(802fadb4) SHA1(cbfac3a87a4863466117c61f2ecaf63d506352f6) ) - ROM_LOAD16_BYTE( "cvj-odd.u8", 0x000001, 0x100000, CRC(f8a0fbdd) SHA1(5cc8c12c13b5eb3456083e70100450ba041de76e) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) /* Sprites */ - ROM_LOAD( "cv100-00.u24", 0x000000, 0x400000, CRC(cd4ae88a) SHA1(925f4ae01a6ad3633be2a61be69e163f05401cf6) ) - ROM_LOAD( "cv101-00.u20", 0x400000, 0x400000, CRC(a6cb3f0b) SHA1(8d83f44a096ca0a70962ca4c602c4331874c8560) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles Plane A */ - ROM_LOAD( "cv200-00.u16", 0x000000, 0x400000, CRC(ddc8c67e) SHA1(9b99e87e69e88011e6d693d19ac5e115b4fa50b0) ) - ROM_LOAD( "cv201-00.u13", 0x400000, 0x400000, CRC(65863321) SHA1(b8b75f50406068ffc3fca3887d2f0a653ca491c9) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "cv210-00.u18", 0x400000, 0x400000, CRC(7486bf3a) SHA1(3b4285ca570e9c5ad396c615bfc054372d1b0162) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "cv300-00.u4", 0x000000, 0x400000, CRC(fbeda465) SHA1(4d5066a22f4589b6b7f85b3e77c348d900ac4bdd) ) -ROM_END - -ROM_START( galpani4 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "gp4j1.u10", 0x000000, 0x080000, CRC(919a3893) SHA1(83b89a9e628a1f46f8a56ea512fc8ad641d5e239) ) - ROM_LOAD16_BYTE( "gp4j1.u08", 0x000001, 0x080000, CRC(94cb1fb7) SHA1(ac90103dd43cdce6a287ffc13631c1de477a9a71) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - ROM_LOAD( "gp410000.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) ) - ROM_LOAD( "gp410100.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gp420000.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) ) - ROM_LOAD( "gp420100.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "gp430000.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) -ROM_END - -ROM_START( galpanis ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "gps-e.u10", 0x000000, 0x100000, CRC(c6938c3f) SHA1(05853ee6a44a55702788a75580b04a4be45e9bcb) ) - ROM_LOAD16_BYTE( "gps-o.u8", 0x000001, 0x100000, CRC(e764177a) SHA1(3a1333eb1022ed1a275b9c3d44b5f4ab81618fb6) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "gps10000.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) ) - ROM_LOAD( "gps10100.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) ) - ROM_LOAD( "gps10200.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gps20000.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) ) - ROM_LOAD( "gps20100.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "gps30000.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) ) -ROM_END - -ROM_START( galpans2 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "gps2j.u6", 0x000000, 0x100000, CRC(6e74005b) SHA1(a57e8307062e262c2e7a84e2c58f7dfe03fc0f78) ) - ROM_LOAD16_BYTE( "gps2j.u4", 0x000001, 0x100000, CRC(9b4b2304) SHA1(0b481f4d71d92bf23f38ed22979efd4409004857) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) ) - ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) ) - ROM_LOAD( "gs210200.u8", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) ) - ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) ) - ROM_LOAD( "gs220100.u9", 0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "gs221000.u3", 0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "gs230000.u1", 0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) ) -ROM_END - -ROM_START( gutsn ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "gts000j0.u6" ,0x000000, 0x080000, CRC(8ee91310) SHA1(8dd918189fe445d79c7f028168862b852f70a6f2) ) - ROM_LOAD16_BYTE( "gts001j0.u4", 0x000001, 0x080000, CRC(80b8ee66) SHA1(4faf5f358ceee866f09bd81e63ba3ebd21bde835) ) - - ROM_REGION( 0x400000, REGION_GFX1, 0 ) - ROM_LOAD( "gts10000.u24", 0x000000, 0x400000, CRC(1959979e) SHA1(92a68784664dd833ca6fcca1b15cd46b9365d081) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "gts20000.u16", 0x000000, 0x400000, CRC(c443aac3) SHA1(b0416a09ead26077e9276bae98d94eeb1cf86877) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "gts30000.u4", 0x000000, 0x400000, CRC(8c169141) SHA1(41caea6fa644515f7417c84bdac599b13ad07e8c) ) -ROM_END - -ROM_START( panicstr ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "ps1000j0.u10", 0x000000, 0x100000, CRC(59645f89) SHA1(8da205c6e38899d6c637941700dd7eea56011c10) ) - ROM_LOAD16_BYTE( "ps1001j0.u8", 0x000001, 0x100000, CRC(c4722be9) SHA1(7009d320a80cfa7d80efc5fc915081914bc3c827) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) - ROM_LOAD( "ps-10000.u24", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) ) - ROM_LOAD( "ps110100.u20", 0x400000, 0x400000, CRC(e292f393) SHA1(b0914f7f0abf9f821f2592c289ea4e3b3e7f819a) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ps120000.u16", 0x000000, 0x400000, CRC(d772ac15) SHA1(6bf7b9bfccdcb7481b21fa2ab9b683d79033a192) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ps-30000.u4", 0x000000, 0x400000, CRC(2262e263) SHA1(73443e5f40f5c5c9bd41c6207fa6376072f0f65e) ) -ROM_END - -ROM_START( puzzloop ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknse1.u10", 0x000000, 0x080000, CRC(e2b9d7d1) SHA1(b530a3bb9dedc8cfafcba9f1f10277590be04a15) ) /* Europe BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "pl00e1.u6", 0x000000, 0x080000, CRC(273adc38) SHA1(37ca873342ba9fb9951114048a9cd255f73fe19c) ) - ROM_LOAD16_BYTE( "pl00e1.u4", 0x000001, 0x080000, CRC(14ac2870) SHA1(d1abcfd64d7c0ead67e879c40e1010453fd4da13) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) - ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) ) -ROM_END - -ROM_START( puzloopj ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "pl0j2u6.u10", 0x000000, 0x080000, CRC(23c3bf97) SHA1(77ea1f32bed5709a6ad5b250370f08cfe8036867) ) - ROM_LOAD16_BYTE( "pl0j2u4.u8", 0x000001, 0x080000, CRC(55b2a3cb) SHA1(d4cbe143fe2ad622af808cbd9eedffeff3b77e0d) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) - ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) ) -ROM_END - -ROM_START( puzloopu ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsu1.u10", 0x000000, 0x080000, CRC(384d21ec) SHA1(a27e8a18099d9cea64fa32db28d01101c2a78815) ) /* US BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "puzloopu.u10", 0x000000, 0x080000, CRC(e6f3f82f) SHA1(ac61dc22fa3c1b1c2f3a41d3a8fb43938b77ca68) ) - ROM_LOAD16_BYTE( "puzloopu.u8", 0x000001, 0x080000, CRC(0d081d30) SHA1(ec0cdf120126104b9bb706f68c9ba9c3777dd69c) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) - ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) ) -ROM_END - -ROM_START( puzloopk ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsk1.u10", 0x000000, 0x080000, CRC(ff1c9f79) SHA1(a51e598d43e76d37da69b1f094c111273bdfc94a) ) /* Korean BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "pl0k4.u6", 0x000000, 0x080000, CRC(8d81f20c) SHA1(c32a525e8f92a625e3fecb7c43dd04b13e0a75e4) ) - ROM_LOAD16_BYTE( "pl0k4.u4", 0x000001, 0x080000, CRC(17c78e41) SHA1(4a4b612ae00d521d2947ab32554ebb615be72471) ) - - ROM_REGION( 0x800000, REGION_GFX1, 0 ) - ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) ) -ROM_END - -/* haven't even tried to run the ones below yet */ - -ROM_START( jjparads ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "jp1j1.u10", 0x000000, 0x080000, CRC(de2fb669) SHA1(229ff1ae0ec5bc77fc17642964e0bb0146594e86) ) - ROM_LOAD16_BYTE( "jp1j1.u8", 0x000001, 0x080000, CRC(7276efb1) SHA1(3edc265b5c02da7d21a2494a6dc2878fbad93f87) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "jp100-00.u24", 0x000000, 0x400000, CRC(f31b2e95) SHA1(7e5bb518d4f6423785d3f9f2752a624a66b42469) ) - ROM_LOAD( "jp101-00.u20", 0x400000, 0x400000, CRC(70cc8c24) SHA1(a4805ce19f512b047829548b635e68690d714175) ) - ROM_LOAD( "jp102-00.u17", 0x800000, 0x400000, CRC(35401c1e) SHA1(38fe86a08555bb823b8d64ac043330aaaa6b8892) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "jp200-00.u16", 0x000000, 0x200000, CRC(493d63db) SHA1(4b8fe7ff1ae14a914a675ce4072a4d9e5cfc08b0) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "jp300-00.u4", 0x000000, 0x200000, CRC(7023fe46) SHA1(24a92133bc664d63b3be67c2ef11cd7b605ee7e8) ) -ROM_END - -ROM_START( jjparad2 ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "jp2000j1.u6", 0x000000, 0x080000, CRC(5d75e765) SHA1(33bcd8f929f6025b00df2ea783b13a391a28a5c3) ) - ROM_LOAD16_BYTE( "jp2001j1.u4", 0x000001, 0x080000, CRC(1771910a) SHA1(7ca9584d379d7b41f303a3ba861f943c570ad97c) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "jp210000.u21", 0x000000, 0x400000, CRC(79a7e3d7) SHA1(bd0f8d01971e5895395f97f2520bcd03ab19d229) ) - ROM_LOAD( "jp210100.u20", 0x400000, 0x400000, CRC(42415e0c) SHA1(f7bff86d55fa9002fbd14e4c62f9d3df8faaf7d0) ) - ROM_LOAD( "jp210200.u8", 0x800000, 0x400000, CRC(26731745) SHA1(8939d36b82b10b1010e4b924e6b9fdd4742efe48) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "jp220000.u17", 0x000000, 0x400000, CRC(d0e71873) SHA1(c6ffba3624e6d4c2d4e12ef7d88a02cbc3867b18) ) - ROM_LOAD( "jp220100.u9", 0x400000, 0x400000, CRC(4c7d964d) SHA1(3352cd866a64466f4f5a990c2c5e3e28e7028a99) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "jp230000.u1", 0x000000, 0x400000, CRC(73e30d7f) SHA1(af5b16cec722dbbf0e03d73edfa133dbf10ac4f3) ) -ROM_END - -ROM_START( sengekis ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsa1.u10", 0x000000, 0x080000, CRC(745e5212) SHA1(caba649ab2d83b2d7e007eecee0fc582c019df38) ) /* Asia BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "ss01a.u6", 0x000000, 0x080000, CRC(962fe857) SHA1(3df74c5efff11333dea9316a063129dcec0d7bdd) ) - ROM_LOAD16_BYTE( "ss01a.u4", 0x000001, 0x080000, CRC(ee853c23) SHA1(ddbf7f7cf509788ee3daf7b4d8ae1482e6e31a03) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) ) - ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) ) - ROM_LOAD( "ss102-00.u8", 0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) ) - ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) ) - ROM_LOAD( "ss201-00.u9", 0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) ) - - ROM_REGION( 0x600000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "ss210-00.u3", 0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) ) -ROM_END - -ROM_START( sengekij ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "ss01j.u6", 0x000000, 0x080000, CRC(9efdcd5a) SHA1(66cca04d07999dc8ca0bcf19db925996b34d0390) ) - ROM_LOAD16_BYTE( "ss01j.u4", 0x000001, 0x080000, CRC(92c3f45e) SHA1(60c647e66b0126fb7749874be39938972481b957) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) ) - ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) ) - ROM_LOAD( "ss102-00.u8", 0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) ) - ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) ) - ROM_LOAD( "ss201-00.u9", 0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) ) - - ROM_REGION( 0x600000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "ss210-00.u3", 0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) ) -ROM_END - -ROM_START( senknow ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "snw000j1.u6", 0x000000, 0x080000, CRC(0d6136f6) SHA1(eedd011cfe03577bfaf386723502d03f6e5dbd8c) ) - ROM_LOAD16_BYTE( "snw001j1.u4", 0x000001, 0x080000, CRC(4a10ec3d) SHA1(bbec4fc53bd61d06ffe5a53debada5785b124fdd) ) - - ROM_REGION( 0x0800000, REGION_GFX1, 0 ) - ROM_LOAD( "snw10000.u21", 0x000000, 0x400000, CRC(5133c69c) SHA1(d279df3ffd005dbf0930a8e40eaf2467f8653284) ) - ROM_LOAD( "snw10100.u20", 0x400000, 0x400000, CRC(9dafe03f) SHA1(978b4597ff2a54ac5049fd64798e8173b29dd363) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "snw20000.u17", 0x000000, 0x400000, CRC(d5fe5f8c) SHA1(817d8d0a5fbc0c50dc3c592f938150f82df97cec) ) - ROM_LOAD( "snw20100.u9", 0x400000, 0x400000, CRC(c0037846) SHA1(3267b142ebce47e1717250239d98fdb4af7964f8) ) - - ROM_REGION( 0x800000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - ROM_LOAD( "snw21000.u3", 0x400000, 0x400000, CRC(f5c23e79) SHA1(b509680001c3205b289f43d4f44aaaa7f896419b) ) - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "snw30000.u1", 0x000000, 0x400000, CRC(ec9eef40) SHA1(8f74ec9cb6054a77227c0505094f0ef8bc371429) ) -ROM_END - -ROM_START( teljan ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "tel1j.u10", 0x000000, 0x080000, CRC(09b552fe) SHA1(2f315fd09eb22fa8c81faa1e926038f20daa845f) ) - ROM_LOAD16_BYTE( "tel1j.u8", 0x000001, 0x080000, CRC(070b4345) SHA1(5743f12a351b89593c6adfaeb8a5a2ab7bc8b424) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "tj100-00.u24", 0x000000, 0x400000, CRC(810144f1) SHA1(1c90e71e5f34ee05771ab4a673329f78f17791df) ) - ROM_LOAD( "tj101-00.u20", 0x400000, 0x400000, CRC(82f570e1) SHA1(3ba9d1775f897052aca5cff2edbf575399101c5c) ) - ROM_LOAD( "tj102-00.u17", 0x800000, 0x400000, CRC(ace875dc) SHA1(be97c895beeac979c5704986e818d4f3cfa00e49) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "tj200-00.u16", 0x000000, 0x400000, CRC(be0f90b2) SHA1(1848a65f244e1e8a3ff7ab38e76f86cabca8b47e) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "tj300-00.u4", 0x000000, 0x400000, CRC(685495c4) SHA1(3853c0583b84ed3163370ae48e4b3912cbeb986e) ) -ROM_END - -ROM_START( ryouran ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "or000j1.u10", 0x000000, 0x080000, CRC(d93aa491) SHA1(dc01707f1e80d81f28d6b685d08fc6c0d2bf7330) ) - ROM_LOAD16_BYTE( "or001j1.u8", 0x000001, 0x080000, CRC(f466e5e9) SHA1(65d699f6f9e299333e51a6a52cb13a0f1a902fe1) ) - - ROM_REGION( 0x1000000, REGION_GFX1, 0 ) - ROM_LOAD( "or100-00.u24", 0x000000, 0x400000, CRC(e9c7695b) SHA1(0a104d4e4e0c933d2eaaf410a8c243db6673786a) ) - ROM_LOAD( "or101-00.u20", 0x400000, 0x400000, CRC(fe06bf12) SHA1(f3a2f88aed65bcc1c16f37fd4c0011e3538128f7) ) - ROM_LOAD( "or102-00.u17", 0x800000, 0x400000, CRC(f2a5237b) SHA1(b8871f9c0f3864c334ec9a8146cf7dd1961ecb94) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "or200-00.u16", 0x000000, 0x400000, CRC(4c4701a8) SHA1(7b397b553ba86bba2ee82228cabdf2179e878d69) ) - ROM_LOAD( "or201-00.u13", 0x400000, 0x400000, CRC(a94064aa) SHA1(5d736f810ffdbb6ada5c5efcb5fb29eedafc3e2f) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x400000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "or300-00.u4", 0x000000, 0x400000, CRC(a3f64b79) SHA1(6ecb2b4c0d213fe5384b19d6bfdb86871f21fd9f) ) -ROM_END - -ROM_START( vblokbrk ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsa1.u10", 0x000000, 0x080000, CRC(745e5212) SHA1(caba649ab2d83b2d7e007eecee0fc582c019df38) ) /* Asia BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "sk01a.u10", 0x000000, 0x080000, CRC(4d1be53e) SHA1(3d28b73a67530147962b8df6244af8bea2ab080f) ) - ROM_LOAD16_BYTE( "sk01a.u8", 0x000001, 0x080000, CRC(461e0197) SHA1(003573a4abdbecc6dd234a13c61ef07a25d980e2) ) - - ROM_REGION( 0x0400000, REGION_GFX1, 0 ) - ROM_LOAD( "sk100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) ) - ROM_LOAD( "sk-101.u20", 0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sk200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sk300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) ) -ROM_END - -ROM_START( sarukani ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* SH-2 Code */ - ROM_LOAD ( "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) ) /* Japan BIOS */ - - ROM_REGION32_BE( 0x200000, REGION_USER1, 0 ) /* SH-2 Code mapped at 0x04000000 */ - ROM_LOAD16_BYTE( "sk1j1.u10", 0x000000, 0x080000, CRC(fcc131b6) SHA1(5e3e71ee1f736b6098e671e6f57b1fb313c81adb) ) - ROM_LOAD16_BYTE( "sk1j1.u8", 0x000001, 0x080000, CRC(3b6aa343) SHA1(a969b20b1170d82351024cab9e37f2fbfd01ddeb) ) - - ROM_REGION( 0x0400000, REGION_GFX1, 0 ) - ROM_LOAD( "sk100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) ) - ROM_LOAD( "sk-101.u20", 0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD( "sk200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_ERASE00 ) /* Tiles Plane B */ - /* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */ - /* 0x040000 - 0x3fffff empty? */ - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "sk300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) ) -ROM_END - - -/***** GAME DRIVERS *****/ - -GAME( 1996, skns, 0, skns, skns, 0, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", NOT_A_DRIVER ) - -GAME( 1996, galpani4, skns, skns, cyvern, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, galpanis, skns, skns, galpanis, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, cyvern, skns, skns, cyvern, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, galpans2, skns, skns, galpanis, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, panicstr, skns, skns, galpanis, panicstr, ROT0, "Kaneko", "Panic Street (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, senknow , skns, skns, skns, senknow, ROT0, "Kaneko / Kouyousha", "Sen-Know (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 2000, gutsn, skns, skns, skns, gutsn, ROT0, "Kaneko / Kouyousha", "Guts'n (Japan)", GAME_IMPERFECT_GRAPHICS ) // quite fragile, started working of it's own accord in 0.69 :) -GAME( 1998, puzzloop, skns, skns, puzzloop, puzzloop, ROT0, "Mitchell", "Puzz Loop (Europe)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzloopj, puzzloop,skns, puzzloop, puzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzloopu, puzzloop,skns, puzzloop, puzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, puzloopk, puzzloop,skns, puzzloop, puzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version -GAME( 1996, jjparads, skns, skns, skns_1p, jjparads, ROT0, "Electro Design", "Jan Jan Paradise", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, jjparad2, skns, skns, skns_1p, jjparad2, ROT0, "Electro Design", "Jan Jan Paradise 2", GAME_IMPERFECT_GRAPHICS ) -GAME( 1998, ryouran , skns, skns, skns_1p, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran", GAME_IMPERFECT_GRAPHICS ) -GAME( 1999, teljan , skns, skns, skns_1p, teljan, ROT0, "Electro Design", "Tel Jan", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekis, skns, skns, skns, sengekis, ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sengekij, sengekis,skns, skns, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, vblokbrk, skns, skns, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1997, sarukani, vblokbrk,skns, vblokbrk, sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", GAME_IMPERFECT_GRAPHICS ) - diff --git a/src/drivers/suprslam.c b/src/drivers/suprslam.c deleted file mode 100644 index 338724f12..000000000 --- a/src/drivers/suprslam.c +++ /dev/null @@ -1,398 +0,0 @@ -/*** DRIVER INFORMATION & NOTES *********************************************** - -Super Slams - Driver by David Haywood - Sound Information from R.Belmont - DSWs corrected by Stephh - -TODO : - -sprite offset control? -priorities (see hi-score table during attract mode) -unknown reads / writes (also KONAMI chip ..?) - -WORKING NOTES : - -68k interrupts -lev 1 : 0x64 : 0000 0406 - vblank? -lev 2 : 0x68 : 0000 06ae - x -lev 3 : 0x6c : 0000 06b4 - x -lev 4 : 0x70 : 0000 06ba - x -lev 5 : 0x74 : 0000 06c0 - x -lev 6 : 0x78 : 0000 06c6 - x -lev 7 : 0x7c : 0000 06cc - x - -******************************************************************************/ - - -/*** README INFORMATION ******************************************************* - -Super Slam -(C) 1995 Banpresto - -(C) 1995 Banpresto / Toei Animation - -PCB: VSEP-26 -CPU: TMP68HC000P16 (68000, 64 pin DIP) -SND: Z8400B (Z80B, 40 pin DIP), YM2610, YM3016 -OSC: 14.318180 MHz (Near VS920D & 053936), 24.000000 MHz, 32.000 MHz (Both near VS920F & EB26IC66) -Other Chips: - Fujitsu CG10103 145 9520 Z14 (160 Pin PQFP) - VS9210 4L06F1056 JAPAN 9525EAI (176 Pin PQFP) - VS920F 4L01F1435 JAPAN 9524EAI (100 Pin PQFP) - VS920E 4L06F1057 JAPAN 9533EAI (176 pin PQFP) - VS9209 4L01F1429 JAPAN 9523EAI (64 pin PQFP) - VS920D 4L04F1689 JAPAN 9524EAI (160 pin PQFP) - KONAMI KS10011-PF 053936 PSAC2 9522 Z02 (80 pin PQFP) - -RAM: - LGS GM76C28K-10 x 1 (Connected/Near Z80B) - LGS GM76C28K-10 x 2 (Connected/Near 053936) - SEC KM6264BLS-7 x 2 (Connected/Near VS920D) - SEC KM6264BLS-7 x 2 (Connected/Near VS9210) - UM61256FK-15 x 2 (Connected/Near VS9210) - CY7C195-25PC x 1 -\ - UM61256FK-15 x 4 > (Connected/Near Fujitsu CG10103 145 9520 Z14) - SEC KM6264BLS-7 x 4 -/ - LGS GM76C28K-10 x 2 (Connected/Near VS920F) - LGS GM76C28K-10 x 2 (Connected/Near VS920E) - UM61256FK-15 x 2 (Connected/Near 68000 & VS9209) - -PALs: (4 total, not dumped, 2 located near 68000, 1 near Z80B, 1 near VS9210) - -DIPs: 8 position x 3 (ALL DIPs linked to VS9209) - -Info taken from sheet supplied with PCB, no info for SW3. - -ROMs: (on ALL ROMs is written only "EB26") - -EB26_100.BIN 16M Mask \ -EB26_101.BIN 16M Mask | -EB26IC09.BIN 16M Mask | GFX (near VS9210, 053936 & VS920D) -EB26IC10.BIN 16M Mask | -EB26IC12.BIN 16M Mask / -EB26IC36.BIN 16M Mask -EB26IC43.BIN 16M Mask GFX (Near VS920F & VS920E) -EB26IC59.BIN 8M Mask Sound (Near YM2610) -EB26IC66.BIN 16M Mask Sound (Near YM2610) -EB26IC38.BIN 27C1001 Sound Program (Near Z80B) -EB26IC47.BIN 27C240 \ -EB26IC73.BIN 27C240 / Main Program - -******************************************************************************/ - -#include "driver.h" -#include "vidhrdw/konamiic.h" -#include "sound/2610intf.h" - - -extern UINT16 *suprslam_screen_videoram, *suprslam_bg_videoram,*suprslam_sp_videoram, *suprslam_spriteram; - -/* in vidhrdw */ - -WRITE16_HANDLER( suprslam_screen_videoram_w ); -WRITE16_HANDLER( suprslam_bg_videoram_w ); -VIDEO_START( suprslam ); -VIDEO_UPDATE( suprslam ); -WRITE16_HANDLER (suprslam_bank_w); - - -/*** SOUND *******************************************************************/ - -static int pending_command; - -static WRITE16_HANDLER( sound_command_w ) -{ - if (ACCESSING_LSB) - { - pending_command = 1; - soundlatch_w(offset,data & 0xff); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - } -} - -#if 0 -static READ16_HANDLER( pending_command_r ) -{ - return pending_command; -} -#endif - -static WRITE8_HANDLER( pending_command_clear_w ) -{ - pending_command = 0; -} - -static WRITE8_HANDLER( suprslam_sh_bankswitch_w ) -{ - unsigned char *RAM = memory_region(REGION_CPU2); - int bankaddress; - - bankaddress = 0x10000 + (data & 0x03) * 0x8000; - memory_set_bankptr(1,&RAM[bankaddress]); -} - -/*** MEMORY MAPS *************************************************************/ - -static ADDRESS_MAP_START( suprslam_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0xfb0000, 0xfb1fff) AM_READ(MRA16_RAM) - AM_RANGE(0xfc0000, 0xfcffff) AM_READ(MRA16_RAM) - AM_RANGE(0xfd0000, 0xfdffff) AM_READ(MRA16_RAM) - AM_RANGE(0xfe0000, 0xfe0fff) AM_READ(MRA16_RAM) - AM_RANGE(0xff0000, 0xff1fff) AM_READ(MRA16_RAM) - AM_RANGE(0xff8000, 0xff8fff) AM_READ(MRA16_RAM) - AM_RANGE(0xffa000, 0xffafff) AM_READ(MRA16_RAM) - AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r) - AM_RANGE(0xfff002, 0xfff003) AM_READ(input_port_1_word_r) - AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_2_word_r) - AM_RANGE(0xfff006, 0xfff007) AM_READ(input_port_3_word_r) - AM_RANGE(0xfff008, 0xfff009) AM_READ(input_port_4_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( suprslam_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xfb0000, 0xfb1fff) AM_WRITE(MWA16_RAM) AM_BASE(&suprslam_spriteram) - AM_RANGE(0xfc0000, 0xfcffff) AM_WRITE(MWA16_RAM) AM_BASE(&suprslam_sp_videoram) - AM_RANGE(0xfd0000, 0xfdffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0xfe0000, 0xfe0fff) AM_WRITE(suprslam_screen_videoram_w) AM_BASE(&suprslam_screen_videoram) - AM_RANGE(0xff0000, 0xff1fff) AM_WRITE(suprslam_bg_videoram_w) AM_BASE(&suprslam_bg_videoram) -// AM_RANGE(0xff2000, 0xff203f) AM_WRITE(MWA16_RAM) /* ?? */ - AM_RANGE(0xff8000, 0xff8fff) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_linectrl) - AM_RANGE(0xff9000, 0xff9001) AM_WRITE(sound_command_w) - AM_RANGE(0xffa000, 0xffafff) AM_WRITE(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xffd000, 0xffd01f) AM_WRITE(MWA16_RAM) AM_BASE(&K053936_0_ctrl) - AM_RANGE(0xffe000, 0xffe001) AM_WRITE(suprslam_bank_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_READ(MRA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_READ(MRA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_BANK1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x77ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x7800, 0x7fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( suprslam_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x04, 0x04) AM_READ(soundlatch_r) - AM_RANGE(0x08, 0x08) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x0a, 0x0a) AM_READ(YM2610_status_port_0_B_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( suprslam_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(suprslam_sh_bankswitch_w) - AM_RANGE(0x04, 0x04) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x08, 0x08) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0x09, 0x09) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0x0a, 0x0a) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0x0b, 0x0b) AM_WRITE(YM2610_data_port_0_B_w) -ADDRESS_MAP_END - -/*** INPUT PORTS *************************************************************/ - -INPUT_PORTS_START( suprslam ) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - - PORT_START /* IN1 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - - PORT_START /* IN0 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) // Only in "test mode" - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "Test" - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE1 ) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0001, 0x0001, "Coin Slots" ) - PORT_DIPSETTING( 0x0001, "Common" ) - PORT_DIPSETTING( 0x0000, "Separate" ) - PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x000a, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x000c, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x000e, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0006, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x0050, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x0060, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0070, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x0030, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - - PORT_START /* DSW */ - PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0003, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x000c, 0x000c, "Play Time" ) - PORT_DIPSETTING( 0x0008, "2:00" ) - PORT_DIPSETTING( 0x000c, "3:00" ) - PORT_DIPSETTING( 0x0004, "4:00" ) - PORT_DIPSETTING( 0x0000, "5:00" ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( On ) ) - PORT_SERVICE( 0x0040, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x0080, 0x0000, "Country" ) - PORT_DIPSETTING( 0x0080, DEF_STR( Japan ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( World ) ) -INPUT_PORTS_END - -/*** GFX DECODE **************************************************************/ - -static const gfx_layout suprslam_8x8x4_layout = -{ - 8,8, - RGN_FRAC(1,1), - 4, - { 0,1,2,3 }, - { 4, 0, 12, 8, 20, 16, 28, 24 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 8*32 -}; - -static const gfx_layout suprslam_16x16x4_layout = -{ - 16,16, - RGN_FRAC(1,1), - 4, - { 0,1,2,3 }, - { 8, 12, 0, 4, 24, 28, 16, 20, - 32+8, 32+12, 32+0, 32+4, 32+24,32+28,32+16,32+20}, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 - }, - 16*64 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &suprslam_8x8x4_layout, 0x000, 16 }, - { REGION_GFX2, 0, &suprslam_16x16x4_layout, 0x200, 16 }, - { REGION_GFX3, 0, &suprslam_16x16x4_layout, 0x100, 16 }, - { -1 } /* end of array */ -}; - -/*** MORE SOUND **************************************************************/ - -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND1, - REGION_SOUND2 -}; - -/*** MACHINE DRIVER **********************************************************/ - -static MACHINE_DRIVER_START( suprslam ) - MDRV_CPU_ADD(M68000, 16000000) - MDRV_CPU_PROGRAM_MAP(suprslam_readmem,suprslam_writemem) - MDRV_CPU_VBLANK_INT(irq1_line_hold,1) - - MDRV_CPU_ADD(Z80,8000000/2) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(suprslam_sound_readport,suprslam_sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(2300) /* hand-tuned */) - - MDRV_GFXDECODE(gfxdecodeinfo) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 64*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MDRV_PALETTE_LENGTH(0x800) - - MDRV_VIDEO_START(suprslam) - MDRV_VIDEO_UPDATE(suprslam) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - -/*** ROM LOADING *************************************************************/ - -ROM_START( suprslam ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 Code */ - ROM_LOAD16_WORD_SWAP( "eb26ic47.bin", 0x000000, 0x080000, CRC(8d051fd8) SHA1(1820209306116e5b09cc10a8b3661d232c688b24) ) - ROM_LOAD16_WORD_SWAP( "eb26ic73.bin", 0x080000, 0x080000, CRC(ca4ad383) SHA1(143ee475761fa54d5b3a9f4e3fb3acc8408972fd) ) - - ROM_REGION( 0x030000, REGION_CPU2, 0 ) /* Z80 Code */ - ROM_LOAD( "eb26ic38.bin", 0x000000, 0x020000, CRC(153f2c50) SHA1(b70f248cfb18239fcd26e36fb36159f219debf2c) ) - ROM_RELOAD( 0x010000, 0x020000 ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* Samples */ - ROM_LOAD( "eb26ic59.bin", 0x000000, 0x100000, CRC(4ae4095b) SHA1(62b0600b18febb6cecb6370b03a2d6b7756840a2) ) - - ROM_REGION( 0x200000, REGION_SOUND2, 0 ) /* Samples */ - ROM_LOAD( "eb26ic66.bin", 0x000000, 0x200000, CRC(8cb33682) SHA1(0e6189ef0673227d35b9a154e333cc6cf9b65df6) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* 8x8x4 'Screen' Layer GFX */ - ROM_LOAD( "eb26ic43.bin", 0x000000, 0x200000, CRC(9dfb0959) SHA1(ba479192a422a55efcf8aa7ff995c914525b4a56) ) - - ROM_REGION( 0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* 16x16x4 Sprites GFX */ - ROM_LOAD( "eb26ic09.bin", 0x000000, 0x200000, CRC(5a415365) SHA1(a59a4ab231980b0540e9a8356a02530217779dbd) ) - ROM_LOAD( "eb26ic10.bin", 0x200000, 0x200000, CRC(a04f3140) SHA1(621ff823d93fecdde801912064ac951727b71677) ) - ROM_LOAD( "eb26_100.bin", 0x400000, 0x200000, CRC(c2ee5eb6) SHA1(4b61e77a0d0f38b542d5e32fa25799a4c85bf651) ) - ROM_LOAD( "eb26_101.bin", 0x600000, 0x200000, CRC(7df654b7) SHA1(3a5ed6ee7cc31566e908b835a065e9bce60389fb) ) - - ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE ) /* 16x16x4 BG GFX */ - ROM_LOAD( "eb26ic12.bin", 0x000000, 0x200000, CRC(14561bd7) SHA1(5f69f68a305aba9acb21b844c8aa5b1de60f89ff) ) - ROM_LOAD( "eb26ic36.bin", 0x200000, 0x200000, CRC(92019d89) SHA1(dbf6f8384341707996e4b9e07a3d4f536cf4905b) ) -ROM_END - -/*** GAME DRIVERS ************************************************************/ - -GAME( 1995, suprslam, 0, suprslam, suprslam, 0, ROT0, "Banpresto / Toei Animation", "Super Slams", GAME_IMPERFECT_GRAPHICS ) - diff --git a/src/drivers/surpratk.c b/src/drivers/surpratk.c deleted file mode 100644 index cbebba09b..000000000 --- a/src/drivers/surpratk.c +++ /dev/null @@ -1,353 +0,0 @@ -/*************************************************************************** - -Surprise Attack (Konami GX911) (c) 1990 Konami - -Very similar to Parodius - -driver by Nicola Salmoria - -***************************************************************************/ - -#include "driver.h" -#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */ -#include "vidhrdw/konamiic.h" -#include "sound/2151intf.h" - -/* prototypes */ -static MACHINE_RESET( surpratk ); -static void surpratk_banking( int lines ); -VIDEO_START( surpratk ); -VIDEO_UPDATE( surpratk ); - - -static int videobank; -static unsigned char *ram; - -static INTERRUPT_GEN( surpratk_interrupt ) -{ - if (K052109_is_IRQ_enabled()) cpunum_set_input_line(0,0,HOLD_LINE); -} - -static READ8_HANDLER( bankedram_r ) -{ - if (videobank & 0x02) - { - if (videobank & 0x04) - return paletteram_r(offset + 0x0800); - else - return paletteram_r(offset); - } - else if (videobank & 0x01) - return K053245_r(offset); - else - return ram[offset]; -} - -static WRITE8_HANDLER( bankedram_w ) -{ - if (videobank & 0x02) - { - if (videobank & 0x04) - paletteram_xBBBBBGGGGGRRRRR_be_w(offset + 0x0800,data); - else - paletteram_xBBBBBGGGGGRRRRR_be_w(offset,data); - } - else if (videobank & 0x01) - K053245_w(offset,data); - else - ram[offset] = data; -} - -static WRITE8_HANDLER( surpratk_videobank_w ) -{ -logerror("%04x: videobank = %02x\n",activecpu_get_pc(),data); - /* bit 0 = select 053245 at 0000-07ff */ - /* bit 1 = select palette at 0000-07ff */ - /* bit 2 = select palette bank 0 or 1 */ - videobank = data; -} - -static WRITE8_HANDLER( surpratk_5fc0_w ) -{ - if ((data & 0xf4) != 0x10) logerror("%04x: 3fc0 = %02x\n",activecpu_get_pc(),data); - - /* bit 0/1 = coin counters */ - coin_counter_w(0,data & 0x01); - coin_counter_w(1,data & 0x02); - - /* bit 3 = enable char ROM reading through the video RAM */ - K052109_set_RMRD_line( ( data & 0x08 ) ? ASSERT_LINE : CLEAR_LINE ); - - /* other bits unknown */ -} - - -/********************************************/ - -static ADDRESS_MAP_START( surpratk_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(bankedram_r) - AM_RANGE(0x0800, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_BANK1) /* banked ROM */ - AM_RANGE(0x5f8c, 0x5f8c) AM_READ(input_port_0_r) - AM_RANGE(0x5f8d, 0x5f8d) AM_READ(input_port_1_r) - AM_RANGE(0x5f8e, 0x5f8e) AM_READ(input_port_4_r) - AM_RANGE(0x5f8f, 0x5f8f) AM_READ(input_port_2_r) - AM_RANGE(0x5f90, 0x5f90) AM_READ(input_port_3_r) -// AM_RANGE(0x5f91, 0x5f91) AM_READ(YM2151_status_port_0_r) /* ? */ - AM_RANGE(0x5fa0, 0x5faf) AM_READ(K053244_r) - AM_RANGE(0x5fc0, 0x5fc0) AM_READ(watchdog_reset_r) - AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r) - AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( surpratk_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(bankedram_w) AM_BASE(&ram) - AM_RANGE(0x0800, 0x1fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_ROM) /* banked ROM */ - AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053244_w) - AM_RANGE(0x5fb0, 0x5fbf) AM_WRITE(K053251_w) - AM_RANGE(0x5fc0, 0x5fc0) AM_WRITE(surpratk_5fc0_w) - AM_RANGE(0x5fd0, 0x5fd0) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x5fd1, 0x5fd1) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x5fc4, 0x5fc4) AM_WRITE(surpratk_videobank_w) - AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w) - AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM) /* ROM */ -ADDRESS_MAP_END - - -/*************************************************************************** - - Input Ports - -***************************************************************************/ - -INPUT_PORTS_START( surpratk ) - PORT_START /* PLAYER 1 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* PLAYER 2 INPUTS */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW #1 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) - PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) - PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) -// PORT_DIPSETTING( 0x00, "No Use" ) - - PORT_START /* DSW #2 */ - PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x03, "2" ) - PORT_DIPSETTING( 0x02, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "7" ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x60, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, "Difficult" ) - PORT_DIPSETTING( 0x00, "Very Difficult" ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW #3 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Upright Controls" ) - PORT_DIPSETTING( 0x20, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - PORT_SERVICE( 0x40, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - - -static void irqhandler(int linestate) -{ - cpunum_set_input_line(0,KONAMI_FIRQ_LINE,linestate); -} - -static struct YM2151interface ym2151_interface = -{ - irqhandler -}; - - - -static MACHINE_DRIVER_START( surpratk ) - - /* basic machine hardware */ - MDRV_CPU_ADD(KONAMI, 3000000) /* 053248 */ - MDRV_CPU_PROGRAM_MAP(surpratk_readmem,surpratk_writemem) - MDRV_CPU_VBLANK_INT(surpratk_interrupt,1) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(surpratk) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) - MDRV_PALETTE_LENGTH(2048) - - MDRV_VIDEO_START(surpratk) - MDRV_VIDEO_UPDATE(surpratk) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 3579545) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 1.0) - MDRV_SOUND_ROUTE(1, "right", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game ROMs - -***************************************************************************/ - - -ROM_START( suratk ) - ROM_REGION( 0x51000, REGION_CPU1, 0 ) /* code + banked roms + palette RAM */ - ROM_LOAD( "911j01.f5", 0x10000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) ) - ROM_LOAD( "911k02.h5", 0x30000, 0x18000, CRC(ef10e7b6) SHA1(0b41a929c0c579d688653a8d90dd6b40db12cfb3) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */ - ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */ - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) ) /* sprites */ - ROM_LOAD( "911d04.bin", 0x040000, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) ) /* sprites */ -ROM_END - -ROM_START( suratka ) - ROM_REGION( 0x51000, REGION_CPU1, 0 ) /* code + banked roms + palette RAM */ - ROM_LOAD( "911j01.f5", 0x10000, 0x20000, CRC(1e647881) SHA1(241e421d5599ebd9fcfb8be9c48dfd3b4c671958) ) - ROM_LOAD( "911l02.h5", 0x30000, 0x18000, CRC(11db8288) SHA1(09fe187855172ebf0c57f561cce7f41e47f53114) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */ - ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */ - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) ) /* sprites */ - ROM_LOAD( "911d04.bin", 0x040000, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) ) /* sprites */ -ROM_END - -ROM_START( suratkj ) - ROM_REGION( 0x51000, REGION_CPU1, 0 ) /* code + banked roms + palette RAM */ - ROM_LOAD( "911m01.f5", 0x10000, 0x20000, CRC(ee5b2cc8) SHA1(4b05f7ba4e804a3bccb41fe9d3258cbcfe5324aa) ) - ROM_LOAD( "911m02.h5", 0x30000, 0x18000, CRC(5d4148a8) SHA1(4fa5947db777b4c742775d588dea38758812a916) ) - ROM_CONTINUE( 0x08000, 0x08000 ) - - ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d05.bin", 0x000000, 0x040000, CRC(308d2319) SHA1(521d2a72fecb094e2c2f23b535f0b527886b4d3a) ) /* characters */ - ROM_LOAD( "911d06.bin", 0x040000, 0x040000, CRC(91cc9b32) SHA1(e05b7bbff30f24fe6f009560410f5e90bb118692) ) /* characters */ - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */ - ROM_LOAD( "911d03.bin", 0x000000, 0x040000, CRC(e34ff182) SHA1(075ca7a91c843bdac7da21ddfcd43f7a043a09b6) ) /* sprites */ - ROM_LOAD( "911d04.bin", 0x040000, 0x040000, CRC(20700bd2) SHA1(a2fa4a3ee28c1542cdd798907a9ece249aadff0a) ) /* sprites */ -ROM_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -static void surpratk_banking(int lines) -{ - unsigned char *RAM = memory_region(REGION_CPU1); - int offs = 0; - -logerror("%04x: setlines %02x\n",activecpu_get_pc(),lines); - - offs = 0x10000 + ((lines & 0x1f) * 0x2000); - if (offs >= 0x48000) offs -= 0x40000; - memory_set_bankptr(1,&RAM[offs]); -} - -static MACHINE_RESET( surpratk ) -{ - cpunum_set_info_fct(0, CPUINFO_PTR_KONAMI_SETLINES_CALLBACK, (genf *)surpratk_banking); - - paletteram = &memory_region(REGION_CPU1)[0x48000]; -} - -static DRIVER_INIT( surpratk ) -{ - konami_rom_deinterleave_2(REGION_GFX1); - konami_rom_deinterleave_2(REGION_GFX2); -} - - -GAME( 1990, suratk, 0, surpratk, surpratk, surpratk, ROT0, "Konami", "Surprise Attack (World ver. K)", 0 ) -GAME( 1990, suratka, suratk, surpratk, surpratk, surpratk, ROT0, "Konami", "Surprise Attack (Asia ver. L)", 0 ) -GAME( 1990, suratkj, suratk, surpratk, surpratk, surpratk, ROT0, "Konami", "Surprise Attack (Japan ver. M)", 0 ) diff --git a/src/drivers/system1.c b/src/drivers/system1.c deleted file mode 100644 index 6e9cd16bf..000000000 --- a/src/drivers/system1.c +++ /dev/null @@ -1,4660 +0,0 @@ -/****************************************************************************** - -Sega System 1 / System 2 - -driver by Jarek Parchanski, Nicola Salmoria, Mirko Buffoni - - -Up'n Down, Mister Viking, Flicky, SWAT, Water Match and Bull Fight are known -to run on IDENTICAL hardware (they were sold by Bally-Midway as ROM swaps). - -TODO: - background is misplaced in wbmlju - - sprites stick in Pitfall II - - sprite priorities are probably wrong - - remove patch in noboranb if possible and fully understand the - ports involved in the protection - -******************************************************************************/ - -static unsigned char *system1_ram; - - -#include "driver.h" -#include "vidhrdw/system1.h" -#include "cpu/z80/z80.h" -#include "machine/segacrpt.h" -#include "sound/sn76496.h" - -static MACHINE_RESET( system1 ) -{ - system1_define_background_memory(system1_BACKGROUND_MEMORY_SINGLE); -} - -static MACHINE_RESET( system1_banked ) -{ - machine_reset_system1(machine); - memory_configure_bank(1, 0, 4, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -static MACHINE_RESET( wbml ) -{ - system1_define_background_memory(system1_BACKGROUND_MEMORY_BANKED); - memory_configure_bank(1, 0, 4, memory_region(REGION_CPU1) + 0x10000, 0x4000); -} - -// Noboranka: there seems to be some protection? involving reads / writes to ports in the 2x region - -static int inport16_step,inport17_step,inport23_step; - -static READ8_HANDLER( inport16_r ) -{ -// logerror("IN $16 : pc = %04x - data = %02x\n",activecpu_get_pc(),inport16_step); - return(inport16_step); -} - -static READ8_HANDLER( inport1c_r ) -{ -// logerror("IN $1c : pc = %04x - data = 0x80\n",activecpu_get_pc()); - return(0x80); // infinite loop (at 0x0fb3) until bit 7 is set -} - -static READ8_HANDLER( inport22_r ) -{ -// logerror("IN $22 : pc = %04x - data = %02x\n",activecpu_get_pc(),inport17_step); - return(inport17_step); -} - -static READ8_HANDLER( inport23_r ) -{ -// logerror("IN $23 : pc = %04x - step = %02x\n",activecpu_get_pc(),inport23_step); - return(inport23_step); -} - -static WRITE8_HANDLER( outport16_w ) -{ -// logerror("OUT $16 : pc = %04x - data = %02x\n",activecpu_get_pc(),data); - inport16_step = data; -} - -static WRITE8_HANDLER( outport17_w ) -{ -// logerror("OUT $17 : pc = %04x - data = %02x\n",activecpu_get_pc(),data); - inport17_step = data; -} - -static WRITE8_HANDLER( outport24_w ) -{ -// logerror("OUT $24 : pc = %04x - data = %02x\n",activecpu_get_pc(),data); - inport23_step = data; -} - -WRITE8_HANDLER( hvymetal_videomode_w ) -{ - memory_set_bank(1, ((data & 0x04)>>2) + ((data & 0x40)>>5)); - system1_videomode_w(0, data); -} - -WRITE8_HANDLER( brain_videomode_w ) -{ - memory_set_bank(1, ((data & 0x04)>>2) + ((data & 0x40)>>5)); - system1_videomode_w(0, data); -} - -WRITE8_HANDLER( chplft_videomode_w ) -{ - memory_set_bank(1, (data & 0x0c)>>2); - system1_videomode_w(0, data); -} - - -WRITE8_HANDLER( system1_soundport_w ) -{ - soundlatch_w(0,data); - cpunum_set_input_line(1,INPUT_LINE_NMI,PULSE_LINE); - /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */ - cpu_spinuntil_time(TIME_IN_USEC(50)); -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) // ROM - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) - AM_RANGE(0xe800, 0xeeff) AM_WRITE(MWA8_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) - AM_RANGE(0xefbd, 0xefbd) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_y) - AM_RANGE(0xeffc, 0xeffd) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_x) - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) - - /* these are required to make various games work (teddybb, imsorry, raflesia) */ - /* these may actually be backed by RAM, or may be mirrors of other RAM areas */ - AM_RANGE(0xd200, 0xd7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xde00, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xef00, 0xefbc) AM_WRITE(MWA8_RAM) - AM_RANGE(0xefbe, 0xeffb) AM_WRITE(MWA8_RAM) - AM_RANGE(0xeffe, 0xefff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xf400, 0xf7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xfc00, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blockgal_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) // ROM - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) - AM_RANGE(0xe000, 0xe6ff) AM_WRITE(MWA8_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) - AM_RANGE(0xe7bd, 0xe7bd) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_y) // ??? - AM_RANGE(0xe7c0, 0xe7c1) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_x) - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brain_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xffff) AM_READ(MRA8_RAM) AM_BASE(&system1_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wbml_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) AM_BASE(&system1_ram) - AM_RANGE(0xe000, 0xefff) AM_READ(wbml_paged_videoram_r) - AM_RANGE(0xf000, 0xf3ff) AM_READ(MRA8_RAM) - AM_RANGE(0xf800, 0xfbff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wbml_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) // ROM - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(wbml_paged_videoram_w) - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chplft_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) // ROM - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xe7c0, 0xe7ff) AM_WRITE(choplifter_scroll_x_w) AM_BASE(&system1_scrollx_ram) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) - AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) - AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) - - /* needed for P.O.S.T. */ - AM_RANGE(0xd200, 0xd7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xde00, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xef00, 0xefff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nobo_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram) - AM_RANGE(0xc800, 0xcbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram) - AM_RANGE(0xd000, 0xd1ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0xd200, 0xd7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xde00, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size) - AM_RANGE(0xe800, 0xeeff) AM_WRITE(MWA8_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size) - AM_RANGE(0xefbd, 0xefbd) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_y) - AM_RANGE(0xeffc, 0xeffd) AM_WRITE(MWA8_RAM) AM_BASE(&system1_scroll_x) - AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) - - /* These addresses are written during P.O.S.T. but don't seem to be used after */ - AM_RANGE(0xc400, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xcc00, 0xcfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd200, 0xd7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xde00, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xef00, 0xefbc) AM_WRITE(MWA8_RAM) - AM_RANGE(0xefbe, 0xeffb) AM_WRITE(MWA8_RAM) - AM_RANGE(0xeffe, 0xefff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */ - AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */ - AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */ - AM_RANGE(0x0c, 0x0c) AM_READ(input_port_3_r) /* DIP2 */ - AM_RANGE(0x0e, 0x0e) AM_READ(input_port_3_r) /* DIP2 blckgalb reads it from here */ - AM_RANGE(0x0d, 0x0d) AM_READ(input_port_4_r) /* DIP1 some games read it from here... */ - AM_RANGE(0x10, 0x10) AM_READ(input_port_4_r) /* DIP1 ... and some others from here */ - /* but there are games which check BOTH! */ - AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) - AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x15, 0x15) AM_WRITE(system1_videomode_w) /* video control and (in some games) bank switching */ - AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* mirror address */ - AM_RANGE(0x19, 0x19) AM_WRITE(system1_videomode_w) /* mirror address */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wbml_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */ - AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */ - AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */ - AM_RANGE(0x0c, 0x0c) AM_READ(input_port_3_r) /* DIP2 */ - AM_RANGE(0x0d, 0x0d) AM_READ(input_port_4_r) /* DIP1 some games read it from here... */ - AM_RANGE(0x10, 0x10) AM_READ(input_port_4_r) /* DIP1 ... and some others from here */ - /* but there are games which check BOTH! */ - AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) - AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r) - AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sht_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) -// AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* joy1 */ -// AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* joy2 */ - AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* coin,start */ - AM_RANGE(0x0c, 0x0c) AM_READ(input_port_3_r) /* DIP2 */ - AM_RANGE(0x0d, 0x0d) AM_READ(input_port_4_r) /* DIP1 some games read it from here... */ - AM_RANGE(0x10, 0x10) AM_READ(input_port_4_r) /* DIP1 ... and some others from here */ - /* but there are games which check BOTH! */ - - AM_RANGE(0x12, 0x12) AM_READ(input_port_5_r) // trigger is here.. - - AM_RANGE(0x1c, 0x1c) AM_READ(input_port_6_r) // gunx - AM_RANGE(0x1d, 0x1d) AM_READ(input_port_7_r) // guny - - AM_RANGE(0x18, 0x18) AM_READ(input_port_8_r) // ?? - - - AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) - AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r) - AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r) /* mirror address */ -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( nobo_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r) /* Player 1 inputs */ - AM_RANGE(0x04, 0x04) AM_READ(input_port_1_r) /* Player 2 inputs */ - AM_RANGE(0x08, 0x08) AM_READ(input_port_2_r) /* System inputs */ - AM_RANGE(0x0c, 0x0c) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x0d, 0x0d) AM_READ(input_port_4_r) /* DSW0 */ - AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r) - AM_RANGE(0x16, 0x16) AM_READ(inport16_r) /* Used - check code at 0x05cb */ - AM_RANGE(0x1c, 0x1c) AM_READ(inport1c_r) /* Shouldn't be called ! */ - AM_RANGE(0x22, 0x22) AM_READ(inport22_r) /* Used - check code at 0xb253 */ - AM_RANGE(0x23, 0x23) AM_READ(inport23_r) /* Used - check code at 0xb275 and 0xb283 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wbml_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x15, 0x15) AM_WRITE(chplft_videomode_w) - AM_RANGE(0x16, 0x16) AM_WRITE(wbml_videoram_bank_latch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hvymetal_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x19, 0x19) AM_WRITE(hvymetal_videomode_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( brain_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x19, 0x19) AM_WRITE(brain_videomode_w) -ADDRESS_MAP_END - -/* protection values from real hardware, these were verified to be the same on the title - screen and in the first level... they're all jumps that the MCU appears to put in RAM - at some point */ -static int shtngtab[]= -{ - 0xC3,0xC1,0x39, - 0xC3,0x6F,0x0A, - 0xC3,0x56,0x39, - 0xC3,0x57,0x0C, - 0xC3,0xE2,0x0B, - 0xC3,0x68,0x03, - 0xC3,0xF1,0x06, - 0xC3,0xCA,0x06, - 0xC3,0xC4,0x06, - 0xC3,0xD6,0x07, - 0xC3,0x89,0x13, - 0xC3,0x75,0x13, - 0xC3,0x9F,0x13, - 0xC3,0xFF,0x38, - 0xC3,0x60,0x13, - 0xC3,0x62,0x00, - 0xC3,0x39,0x04, - -1 -}; -static WRITE8_HANDLER(mcuenable_hack_w) -{ - //in fact it's gun feedback write, not mcu related - int i=0; - while(shtngtab[i]>=0) - { - system1_ram[i+0x40]=shtngtab[i]; - i++; - } - - system1_ram[0x2ff]=0x49; // I ? - system1_ram[0x3ff]=0x54; // T ? -} - -static ADDRESS_MAP_START( sht_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x10,0x10) AM_WRITE(mcuenable_hack_w) - - AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x15, 0x15) AM_WRITE(chplft_videomode_w) - - AM_RANGE(0x16, 0x16) AM_WRITE(wbml_videoram_bank_latch_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( chplft_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands */ - AM_RANGE(0x15, 0x15) AM_WRITE(chplft_videomode_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nobo_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w) /* sound commands ? */ - AM_RANGE(0x15, 0x15) AM_WRITE(brain_videomode_w) /* video control + bank switching */ - AM_RANGE(0x16, 0x16) AM_WRITE(outport16_w) /* Used - check code at 0x05cb */ - AM_RANGE(0x17, 0x17) AM_WRITE(outport17_w) /* Not handled in emul. of other SS1/2 games */ - AM_RANGE(0x24, 0x24) AM_WRITE(outport24_w) /* Used - check code at 0xb24e and 0xb307 */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM - AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1ffc) AM_WRITE(SN76496_0_w) /* Choplifter writes to the four addresses */ - AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ffc) AM_WRITE(SN76496_1_w) /* in sequence */ - AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r) -ADDRESS_MAP_END - - -#define IN0_PORT \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -#define DSW1_PORT \ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) \ - PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) \ - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) \ - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) \ - PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) \ - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) \ - 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( 0x0a, DEF_STR( 1C_6C ) ) \ -/* PORT_DIPSETTING( 0x00, "1/1" ) */ \ - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) \ - PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) \ - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) \ - PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) \ - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) \ - PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) \ - 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( 0xa0, DEF_STR( 1C_6C ) ) -/* PORT_DIPSETTING( 0x00, "1/1" ) */ - -/* If you don't like the description, feel free to change it */ -#define DSW0_BIT7 \ - PORT_DIPNAME( 0x80, 0x80, "SW 0 Read From" ) \ - PORT_DIPSETTING( 0x80, "Port $0D" ) \ - PORT_DIPSETTING( 0x00, "Port $10" ) - -INPUT_PORTS_START( starjack ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x38, 0x30, DEF_STR (Bonus_Life ) ) - PORT_DIPSETTING( 0x38, "Every 20k" ) - PORT_DIPSETTING( 0x28, "Every 30k" ) - PORT_DIPSETTING( 0x18, "Every 40k" ) - PORT_DIPSETTING( 0x08, "Every 50k" ) - PORT_DIPSETTING( 0x30, "20k, then every 30k" ) - PORT_DIPSETTING( 0x20, "30k, then every 40k" ) - PORT_DIPSETTING( 0x10, "40k, then every 50k" ) - PORT_DIPSETTING( 0x00, "50k, then every 60k" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( starjacs ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x08, 0x08, "Ship" ) - PORT_DIPSETTING( 0x08, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, "Multi" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30k, then every 40k" ) - PORT_DIPSETTING( 0x20, "40k, then every 50k" ) - PORT_DIPSETTING( 0x10, "50k, then every 60k" ) - PORT_DIPSETTING( 0x00, "60k, then every 70k" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( regulus ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, "Unused SW 0-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x10, "Unused SW 0-4" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unused SW 0-5" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - -/* Same as 'regulus', but no DEF_STR( Allow_Continue ) Dip Switch */ -INPUT_PORTS_START( reguluso ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, "Unused SW 0-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x10, "Unused SW 0-4" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unused SW 0-5" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, "Unused SW 0-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( upndown ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x38, "10000" ) - PORT_DIPSETTING( 0x30, "20000" ) - PORT_DIPSETTING( 0x28, "30000" ) - PORT_DIPSETTING( 0x20, "40000" ) - PORT_DIPSETTING( 0x18, "50000" ) - PORT_DIPSETTING( 0x10, "60000" ) - PORT_DIPSETTING( 0x08, "70000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( mrviking ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, "Maximum Credits" ) - PORT_DIPSETTING( 0x02, "9" ) - PORT_DIPSETTING( 0x00, "99" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10k, 30k then every 30k" ) - PORT_DIPSETTING( 0x20, "20k, 40k then every 30k" ) - PORT_DIPSETTING( 0x10, "30k, then every 30k" ) - PORT_DIPSETTING( 0x00, "40k, then every 30k" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -/* Same as 'mrviking', but no "Maximum Credits" Dip Switch and "Difficulty" Dip Switch is - handled by bit 7 instead of bit 6 (so bit 6 is unused) */ -INPUT_PORTS_START( mrvikngj ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, "Unused SW 0-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10k, 30k then every 30k" ) - PORT_DIPSETTING( 0x20, "20k, 40k then every 30k" ) - PORT_DIPSETTING( 0x10, "30k, then every 30k" ) - PORT_DIPSETTING( 0x00, "40k, then every 30k" ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( swat ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x38, "30000" ) - PORT_DIPSETTING( 0x30, "40000" ) - PORT_DIPSETTING( 0x28, "50000" ) - PORT_DIPSETTING( 0x20, "60000" ) - PORT_DIPSETTING( 0x18, "70000" ) - PORT_DIPSETTING( 0x10, "80000" ) - PORT_DIPSETTING( 0x08, "90000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unused SW 0-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( flicky ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, "Unused SW 0-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30000 80000 160000" ) - PORT_DIPSETTING( 0x20, "30000 100000 200000" ) - PORT_DIPSETTING( 0x10, "40000 120000 240000" ) - PORT_DIPSETTING( 0x00, "40000 140000 280000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( wmatch ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* TURN P1 */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL /* TURN P2 */ - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Time" ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, "Fast" ) - PORT_DIPSETTING( 0x04, "Faster" ) - PORT_DIPSETTING( 0x00, "Fastest" ) - PORT_DIPNAME( 0x10, 0x10, "Unused SW 0-4" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unused SW 0-5" ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( bullfgt ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30000" ) - PORT_DIPSETTING( 0x20, "50000" ) - PORT_DIPSETTING( 0x10, "70000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( spatter ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "40k, 120k and 480k" ) - PORT_DIPSETTING( 0x20, "50k and 200k" ) - PORT_DIPSETTING( 0x10, "100k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, "Reset Timer/Objects On Life Loss" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( pitfall2 ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "20000 50000" ) - PORT_DIPSETTING( 0x00, "30000 70000" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Time" ) - PORT_DIPSETTING( 0x00, "2 Minutes" ) - PORT_DIPSETTING( 0x40, "3 Minutes" ) - PORT_DIPNAME( 0x80, 0x80, "Unused SW 0-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( pitfallu ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x18, 0x18, "Starting Stage" ) - PORT_DIPSETTING( 0x18, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Time" ) - PORT_DIPSETTING( 0x00, "2 Minutes" ) - PORT_DIPSETTING( 0x40, "3 Minutes" ) - PORT_DIPNAME( 0x80, 0x80, "Unused SW 0-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( seganinj ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "240" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "20k 70k 120k 170k" ) - PORT_DIPSETTING( 0x00, "50k 100k 150k 200k" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( imsorry ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0C, 0x0C, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0C, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30000" ) - PORT_DIPSETTING( 0x20, "40000" ) - PORT_DIPSETTING( 0x10, "50000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( teddybb ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "252" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "100k 400k" ) - PORT_DIPSETTING( 0x20, "200k 600k" ) - PORT_DIPSETTING( 0x10, "400k 800k" ) - PORT_DIPSETTING( 0x00, "600k" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( hvymetal ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "50000 100000" ) - PORT_DIPSETTING( 0x20, "60000 120000" ) - PORT_DIPSETTING( 0x10, "70000 150000" ) - PORT_DIPSETTING( 0x00, "100000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x80, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( myhero ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "30000" ) - PORT_DIPSETTING( 0x20, "50000" ) - PORT_DIPSETTING( 0x10, "70000" ) - PORT_DIPSETTING( 0x00, "90000" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( shtngmst ) - PORT_START /* IN1 */ - /* - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - */ - - PORT_START /* IN2 */ - /* - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - */ - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x01, "DSW1" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - DSW1_PORT - - PORT_START /* trigger is in here */ - PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* 1c */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START /* 1d */ - PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE - - PORT_START /* 18 */ - /* what is this? check the game code... */ - PORT_DIPNAME( 0x01, 0x01, "port 18" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( chplft ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - 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( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "20000 70000" ) - PORT_DIPSETTING( 0x20, "50000 100000" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - DSW1_PORT -INPUT_PORTS_END - -INPUT_PORTS_START( 4dwarrio ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x38, 0x38, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x38, "30000" ) - PORT_DIPSETTING( 0x30, "40000" ) - PORT_DIPSETTING( 0x28, "50000" ) - PORT_DIPSETTING( 0x20, "60000" ) - PORT_DIPSETTING( 0x18, "70000" ) - PORT_DIPSETTING( 0x10, "80000" ) - PORT_DIPSETTING( 0x08, "90000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( brain ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gardia ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "5k, 20k and 30k" ) - PORT_DIPSETTING( 0x20, "10k, 25k and 50k" ) - PORT_DIPSETTING( 0x10, "15k, 30k and 60k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) /* Manual states "Always On" */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( raflesia ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "20k, 70k and 120k" ) - PORT_DIPSETTING( 0x20, "30k, 80k and 150k" ) - PORT_DIPSETTING( 0x10, "50k, 100k and 200k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Manual lists this dip as "Unused" */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - DSW0_BIT7 -INPUT_PORTS_END - -INPUT_PORTS_START( wboy ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30k 100k 170k 240k" ) - PORT_DIPSETTING( 0x00, "30k 120k 210k 300k" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( wboysys2 ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30k 100k 170k 240k" ) - PORT_DIPSETTING( 0x00, "30k 120k 210k 300k" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - DSW1_PORT -INPUT_PORTS_END - -/* same as wboy, additional Energy Consumption switch */ -INPUT_PORTS_START( wbdeluxe ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* Has to be 0 otherwise the game resets */ - /* if you die after level 1. */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - DSW1_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, DEF_STR( Infinite ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30k 100k 170k 240k" ) - PORT_DIPSETTING( 0x00, "30k 120k 210k 300k" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x00, "Energy Consumption" ) - PORT_DIPSETTING( 0x00, "Slow" ) - PORT_DIPSETTING( 0x80, "Fast" ) -INPUT_PORTS_END - -INPUT_PORTS_START( wboyu ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* down - unused */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* up - unused */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x06, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_2C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_2C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, "Mode" ) - PORT_DIPSETTING( 0xc0, "Normal Game" ) - PORT_DIPSETTING( 0x80, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x40, "Test Mode" ) - PORT_DIPSETTING( 0x00, "Endless Game" ) -INPUT_PORTS_END - -/* Notes about the bootleg version (as this is the only "working" one) : - -Coinage is almost the same as the other Sega games. - -However, when you set DSW1 to 00, you enter a pseudo "free play" mode : - - - When you insert a coin, or press the "Service" button, you are given 2 credits - and this number is NEVER incremented nor decremented - - You are given 3 lives at start and this number is NEVER decremented - (it can however be incremented depending on the "Bonus Life" Dip Switch) - -If only one nibble is set to 0, it will give a standard 1C_1C. - - -There is an ingame bug with the "Bonus Life" Dip Switch, but I don't know if it's only -a "feature" of the bootleg : - - - Check routine at 0x2366, and you'll notice that 0xc02d (player 1) and 0xc02e (player 2) - act like a "pointer" to the bonus life table (0x5ab6 or 0x5abb) - - Once you get enough points, 1 life is added, and the pointer is incremented - - There is however NO test to the limit of this pointer ! So, once you've got your 5th - extra life at 150k, the pointed value will be 3 (= extra life at 30k), and as your - score is over this value, you'll be given another extra life ... and so on ... - - -Bits 2 and 6 of DSW0 aren't tested in the game (I can't tell about the "test mode") - - -Useful addresses (to unprotect 'blockgal' ?) : - - - 0xc040 : credits (0x00-0x09) - - 0xc019 : player 1 lives - - 0xc021 : player 2 lives - - 0xc018 : player 1 level (0x01-0x14) - - 0xc020 : player 2 level (0x01-0x14) - - 0xc02d : player 1 bonus life "pointer" - - 0xc02e : player 1 bonus life "pointer" - - 0xc01a - 0xc01c : player 1 score (BCD coded - LSB first) - - 0xc022 - 0xc024 : player 1 score (BCD coded - LSB first) - - - 0xc050 : when == 01, "free play" mode - - 0xc00c : when == 01, you end the level - -*/ - -INPUT_PORTS_START( blockgal ) - PORT_START /* IN1 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE - - PORT_START /* IN2 */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE PORT_COCKTAIL - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Unused SW 0-2" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "10k 30k 60k 100k 150k" ) - PORT_DIPSETTING( 0x00, "30k 50k 100k 200k 300k" ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) - - PORT_START /* DSW1 */ - DSW1_PORT -INPUT_PORTS_END - -INPUT_PORTS_START( tokisens ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW1 */ - DSW1_PORT -INPUT_PORTS_END - -INPUT_PORTS_START( wbml ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x0c, "4" ) - PORT_DIPSETTING( 0x08, "5" ) -/* 0x00 gives 4 lives */ - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x10, "30000 100000 200000" ) - PORT_DIPSETTING( 0x00, "50000 150000 250000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x40, 0x40, "Test Mode" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - DSW1_PORT -INPUT_PORTS_END - -INPUT_PORTS_START( noboranb ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) // shot - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) // fly - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL // shot - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL // fly - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_3C ) ) - PORT_DIPNAME( 0x30, 0x20, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x02, "2" ) - PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPSETTING( 0x01, "5" ) - PORT_DIPSETTING( 0x00, "99" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "40k, 80k, 120k and 160k" ) - PORT_DIPSETTING( 0x0c, "50k, 100k and 150k" ) - PORT_DIPSETTING( 0x04, "60k, 120k and 180k" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Unused SW 0-6" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unused SW 0-7" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/* - - To enter Test Mode all DIP Switches in DSW1 must be ON (example Difficulty = Easy) - To get Infinite Lives all DIP Switches in DSW0 must be ON - -*/ -INPUT_PORTS_START( ufosensi ) - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START /* IN0 */ - IN0_PORT - - PORT_START /* DSW1 */ - PORT_DIPNAME( 0x03, 0x01, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) -// PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x20, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Invulnerability" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW0 */ - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) - 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( 0x0a, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Infinite Lives (both set)" ) - PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) - PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) - PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) - PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) - PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) - PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) - 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( 0xa0, DEF_STR( 1C_6C ) ) - PORT_DIPSETTING( 0x00, "Infinite Lives (both set)" ) -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - /* sprites use colors 0-511, but are not defined here */ - { REGION_GFX1, 0, &charlayout, 512, 128 }, - { -1 } /* end of array */ -}; - - - -static MACHINE_DRIVER_START( system1 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", Z80, 4000000) /* My Hero has 2 OSCs 8 & 20 MHz (Cabbe Info) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(readport,writeport) - MDRV_CPU_VBLANK_INT(irq0_line_hold,1) - - MDRV_CPU_ADD_TAG("sound", Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_hold,4) /* NMIs are caused by the main CPU */ - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_MACHINE_RESET(system1) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER|VIDEO_ALWAYS_UPDATE)// hw collisions - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(256, 256) - MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1536) - MDRV_COLORTABLE_LENGTH(1536) - - MDRV_PALETTE_INIT(system1) - MDRV_VIDEO_START(system1) - MDRV_VIDEO_UPDATE(system1) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(SN76496, 2000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(SN76496, 4000000) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -/* driver with reduced visible area for scrolling games */ -static MACHINE_DRIVER_START( small ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1) - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pitfall2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_REPLACE( "main", Z80, 3600000 )/* should be 4 MHz but that value makes the title screen disappear */ - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hvymetal ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem) - MDRV_CPU_IO_MAP(wbml_readport,hvymetal_writeport) - - MDRV_MACHINE_RESET(system1_banked) - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( chplft ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem) - MDRV_CPU_IO_MAP(wbml_readport,chplft_writeport) - - MDRV_MACHINE_RESET(system1_banked) - - /* video hardware */ - MDRV_VIDEO_UPDATE(choplifter) - -MACHINE_DRIVER_END - - - -static MACHINE_DRIVER_START( brain ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem) - MDRV_CPU_IO_MAP(readport,brain_writeport) - - MDRV_MACHINE_RESET(system1_banked) - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( wbml ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(wbml_readmem,wbml_writemem) - MDRV_CPU_IO_MAP(wbml_readport,wbml_writeport) - - MDRV_MACHINE_RESET(wbml) - - /* video hardware */ - MDRV_VIDEO_START(wbml) - MDRV_VIDEO_UPDATE(wbml) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( shtngmst ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem) - MDRV_CPU_IO_MAP(sht_readport,sht_writeport) - - MDRV_MACHINE_RESET(system1_banked) - - /* video hardware - same as small - left / right 8 pixels clipped */ - MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1) - - MDRV_VIDEO_UPDATE(choplifter) - - -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( noboranb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_REPLACE( "main", Z80, 8000000) /* ? guess ? */ - MDRV_CPU_PROGRAM_MAP(brain_readmem,nobo_writemem) - MDRV_CPU_IO_MAP(nobo_readport,nobo_writeport) - - MDRV_MACHINE_RESET(system1_banked) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( blockgal ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( system1 ) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(readmem,blockgal_writemem) - - /* video hardware */ - MDRV_VIDEO_UPDATE(blockgal) - -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( ufosensi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM( wbml ) - - /* video hardware */ - MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 27*8-1) - - /* video hardware */ - MDRV_VIDEO_UPDATE(ufosensi) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -/* Since the standard System 1 PROM has part # 5317, Star Jacker, whose first */ -/* ROM is #5318, is probably the first or second System 1 game produced */ -ROM_START( starjack ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr5320b.129", 0x0000, 0x2000, CRC(7ab72ecd) SHA1(28d3f87851cccc94a86eb0217893de0baf8e62fd) ) - ROM_LOAD( "epr5321a.130", 0x2000, 0x2000, CRC(38b99050) SHA1(79fd23bb7db577d1dbf1b50503085eccdd17b98c) ) - ROM_LOAD( "epr5322a.131", 0x4000, 0x2000, CRC(103a595b) SHA1(6bb8a063279c93341ff472351b79c92795845f74) ) - ROM_LOAD( "epr-5323.132", 0x6000, 0x2000, CRC(46af0d58) SHA1(6cfa288e28e3b415db5ef3cef8e8849259234af9) ) - ROM_LOAD( "epr-5324.133", 0x8000, 0x2000, CRC(1e89efe2) SHA1(d36ef8f176d5e44884d3d0b9af81be6f7fbd0cde) ) - ROM_LOAD( "epr-5325.134", 0xa000, 0x2000, CRC(d6e379a1) SHA1(27362b3e10d9d4235647eadb9cd1404700a8fb49) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5332.3", 0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5331.82", 0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) ) - ROM_LOAD( "epr-5330.65", 0x2000, 0x2000, CRC(eb048745) SHA1(a2e90d20a07608f43273e84d1eb22f195b19626c) ) - ROM_LOAD( "epr-5329.81", 0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) ) - ROM_LOAD( "epr-5328.64", 0x6000, 0x2000, CRC(9ed7849f) SHA1(cc30d144ff70539bbc82c848c154e156a33b638c) ) - ROM_LOAD( "epr-5327.80", 0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) ) - ROM_LOAD( "epr-5326.63", 0xa000, 0x2000, CRC(ba7e2b47) SHA1(bc7528456fe8dee9aa21212aa996fc347c5d55b4) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5318.86", 0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) ) - ROM_LOAD( "epr-5319.93", 0x4000, 0x4000, CRC(ebee4999) SHA1(bb331be270dc1da63699533d9f02d73ce28f1bc5) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( starjacs ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "a1_ic29.129", 0x0000, 0x2000, CRC(59a22a1f) SHA1(4827b537f8df04429ed53c2119c67a32efcf04a2) ) - ROM_LOAD( "a1_ic30.130", 0x2000, 0x2000, CRC(7f4597dc) SHA1(7574853fc2e38880f8493cf628100a890f7aa7dc) ) - ROM_LOAD( "a1_ic31.131", 0x4000, 0x2000, CRC(6074c046) SHA1(5d2bd679d6a13a6c3b203662ce5496b801383db9) ) - ROM_LOAD( "a1_ic32.132", 0x6000, 0x2000, CRC(1c48a3fa) SHA1(4a2e7798600bc4a5fd68533083547212d148d347) ) - ROM_LOAD( "a1_ic33.133", 0x8000, 0x2000, CRC(7598bd51) SHA1(0c18b83dc7874aefcd94593ffbe2b50cc0329367) ) - ROM_LOAD( "a1_ic34.134", 0xa000, 0x2000, CRC(f66fa604) SHA1(d7a81920217fcf7a687ba5e2d10abad5c78085d2) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5332.3", 0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5331.82", 0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) ) - ROM_LOAD( "a1_ic65.65", 0x2000, 0x2000, CRC(0ab1893c) SHA1(97877f5d8be7a7b80bbf9fe8dae2acd47c411d64) ) - ROM_LOAD( "epr-5329.81", 0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) ) - ROM_LOAD( "a1_ic64.64", 0x6000, 0x2000, CRC(7f628ae6) SHA1(f859a505b543382b42a478c8ae5cd90f3ea2bc2c) ) - ROM_LOAD( "epr-5327.80", 0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) ) - ROM_LOAD( "a1_ic63.63", 0xa000, 0x2000, CRC(5bcb253e) SHA1(8c34a8377344940bcfb2495bfda3ffc6794f261b) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "a1_ic86.86", 0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) ) - ROM_LOAD( "a1_ic93.93", 0x4000, 0x4000, CRC(07987244) SHA1(8468b95684b1f62c6de6af1b1d405bfb333e4e26) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( regulus ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr5640a.129", 0x0000, 0x2000, CRC(dafb1528) SHA1(9140c5507bd931df3f8ef8d2910bc74f737b1a5a) ) /* encrypted */ - ROM_LOAD( "epr5641a.130", 0x2000, 0x2000, CRC(0fcc850e) SHA1(d2d6b06bf1e2dc404aa5451cc9f1b919fb5be0f5) ) /* encrypted */ - ROM_LOAD( "epr5642a.131", 0x4000, 0x2000, CRC(4feffa17) SHA1(9d9f4227c4e60a5cc53c369e7c9ce59ea8df3553) ) /* encrypted */ - ROM_LOAD( "epr5643a.132", 0x6000, 0x2000, CRC(b8ac7eb4) SHA1(f96bcde021060a8c1c5270b73487e24d1893e8e5) ) /* encrypted */ - ROM_LOAD( "epr-5644.133", 0x8000, 0x2000, CRC(ffd05b7d) SHA1(6fe471548d227d834c012d5d148b1ea1c12dfd00) ) - ROM_LOAD( "epr5645a.134", 0xa000, 0x2000, CRC(6b4bf77c) SHA1(0200efb58b85a6873db44ffa70c3c14dbca958a6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) - ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) - ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) - ROM_LOAD( "epr-5648.64", 0x6000, 0x2000, CRC(0c69e92a) SHA1(1ee18562250468f8f09a3062705422c28c740674) ) - ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) - ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) - ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( reguluso ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5640.129", 0x0000, 0x2000, CRC(8324d0d4) SHA1(204713938bc85e8b62c161d8ae00d087ecc9089c) ) /* encrypted */ - ROM_LOAD( "epr-5641.130", 0x2000, 0x2000, CRC(0a09f5c7) SHA1(0d45bff29442908b9f4111c89baea0326f0a9ec9) ) /* encrypted */ - ROM_LOAD( "epr-5642.131", 0x4000, 0x2000, CRC(ff27b2f6) SHA1(fe294a53deffe2d46afa444fdae213e9d8763316) ) /* encrypted */ - ROM_LOAD( "epr-5643.132", 0x6000, 0x2000, CRC(0d867df0) SHA1(adccc78072c0772ec20c0178a0be3426759900bf) ) /* encrypted */ - ROM_LOAD( "epr-5644.133", 0x8000, 0x2000, CRC(ffd05b7d) SHA1(6fe471548d227d834c012d5d148b1ea1c12dfd00) ) - ROM_LOAD( "epr-5645.134", 0xa000, 0x2000, CRC(57a2b4b4) SHA1(9de8f5948c7993f1b6d8bf7032f7fc3d9dff5c77) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) - ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) - ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) - ROM_LOAD( "epr-5648.64", 0x6000, 0x2000, CRC(0c69e92a) SHA1(1ee18562250468f8f09a3062705422c28c740674) ) - ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) - ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) - ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( regulusu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5950.129", 0x0000, 0x2000, CRC(3b047b67) SHA1(0164cb919a50013f23568f59caff19ff2d0bf11f) ) - ROM_LOAD( "epr-5951.130", 0x2000, 0x2000, CRC(d66453ab) SHA1(9e339c716c646bd02bedbe27096b75f633554e7c) ) - ROM_LOAD( "epr-5952.131", 0x4000, 0x2000, CRC(f3d0158a) SHA1(9b6d8b2e0a0bec45bfbb9f8ccc728e18e909685f) ) - ROM_LOAD( "epr-5953.132", 0x6000, 0x2000, CRC(a9ad4f44) SHA1(1e051595aff34db06186542bcfc3849bc88eb5d4) ) - ROM_LOAD( "epr-5644.133", 0x8000, 0x2000, CRC(ffd05b7d) SHA1(6fe471548d227d834c012d5d148b1ea1c12dfd00) ) - ROM_LOAD( "epr-5955.134", 0xa000, 0x2000, CRC(65ddb2a3) SHA1(4f94eaac900da5ca512289e2339776b1139e03e1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5652.3", 0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5651.82", 0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) ) - ROM_LOAD( "epr-5650.65", 0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) ) - ROM_LOAD( "epr-5649.81", 0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) ) - ROM_LOAD( "epr-5648.64", 0x6000, 0x2000, CRC(0c69e92a) SHA1(1ee18562250468f8f09a3062705422c28c740674) ) - ROM_LOAD( "epr-5647.80", 0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) ) - ROM_LOAD( "epr-5646.63", 0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5638.86", 0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) ) - ROM_LOAD( "epr-5639.93", 0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( upndown ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr5516a.129", 0x0000, 0x2000, CRC(038c82da) SHA1(b7f403068ed9f97a4b960fb8863615892bb770ed) ) /* encrypted */ - ROM_LOAD( "epr5517a.130", 0x2000, 0x2000, CRC(6930e1de) SHA1(8a5564c76e1fd20c8e5d95e5f538980e13c41744) ) /* encrypted */ - ROM_LOAD( "epr-5518.131", 0x4000, 0x2000, CRC(2a370c99) SHA1(3d1b2f1cf0d5d2d6369a33e5b3b460a3113d6a3e) ) /* encrypted */ - ROM_LOAD( "epr-5519.132", 0x6000, 0x2000, CRC(9d664a58) SHA1(84f2d012dac63e8d0de3935a76f5202539423a74) ) /* encrypted */ - ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) - ROM_LOAD( "epr-5521.134", 0xa000, 0x2000, CRC(e7b8d87a) SHA1(3419318bf6d87b902433bfe3b92baf5e5bad7df3) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5535.3", 0x0000, 0x2000, CRC(cf4e4c45) SHA1(d14a204a9966d37f4b9f3ea4c1d371c9d04e750a) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) - ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) - ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) - ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) - ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) - ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) - ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( upndownu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5679.129", 0x0000, 0x2000, CRC(c4f2f9c2) SHA1(7904ffb46a2c3ef69b9784f343ff37d81bbee11d) ) - ROM_LOAD( "epr-5680.130", 0x2000, 0x2000, CRC(837f021c) SHA1(14cc846f03b71e0922689388a6757955cfd88bd8) ) - ROM_LOAD( "epr-5681.131", 0x4000, 0x2000, CRC(e1c7ff7e) SHA1(440dc8c18183612c32486c617f5d7f38fd804f0e) ) - ROM_LOAD( "epr-5682.132", 0x6000, 0x2000, CRC(4a5edc1e) SHA1(71f06d1c4a580fed07ad32c6d1f2d37d47ed95b1) ) - ROM_LOAD( "epr-5520.133", 0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) /* epr-5683.133 */ - ROM_LOAD( "epr-5684.133", 0xa000, 0x2000, CRC(32fa95da) SHA1(ebe87d28dde6b8356d40572e9f2cd35ec240075f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5528.3", 0x0000, 0x2000, CRC(00cd44ab) SHA1(7f5385aa0773681329a4759b0fa6f975e3de6755) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5527.82", 0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) ) - ROM_LOAD( "epr-5526.65", 0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) ) - ROM_LOAD( "epr-5525.81", 0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) ) - ROM_LOAD( "epr-5524.64", 0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) ) - ROM_LOAD( "epr-5523.80", 0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) ) - ROM_LOAD( "epr-5522.63", 0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5514.86", 0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) ) - ROM_LOAD( "epr-5515.93", 0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( mrviking ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5873.129", 0x0000, 0x2000, CRC(14d21624) SHA1(70e185d03e782be908e6b5c6342cf6a7ebae618c) ) /* encrypted */ - ROM_LOAD( "epr-5874.130", 0x2000, 0x2000, CRC(6df7de87) SHA1(c2200e0c2f322a08af10e9c2e9191d1c595801a4) ) /* encrypted */ - ROM_LOAD( "epr-5875.131", 0x4000, 0x2000, CRC(ac226100) SHA1(11568db9fbca44013eeb0035c0a0a67d6dd18d00) ) /* encrypted */ - ROM_LOAD( "epr-5876.132", 0x6000, 0x2000, CRC(e77db1dc) SHA1(7b1aa19a16fb44f6c69cf053e2e10e5179416796) ) /* encrypted */ - ROM_LOAD( "epr-5755.133", 0x8000, 0x2000, CRC(edd62ae1) SHA1(9648f1ae3033c30ed8ab8d9c87b111756dab7b5e) ) - ROM_LOAD( "epr-5756.134", 0xa000, 0x2000, CRC(11974040) SHA1(a0904d19d06fb5ef5eb6da0dc4efe556bc29b33e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5763.3", 0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5762.82", 0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) ) - ROM_LOAD( "epr-5761.65", 0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) ) - ROM_LOAD( "epr-5760.81", 0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) ) - ROM_LOAD( "epr-5759.64", 0x6000, 0x2000, CRC(5f9bae4e) SHA1(6fff6086a96be6aa28bec05d1c94c257bb29ef1e) ) - ROM_LOAD( "epr-5758.80", 0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) ) - ROM_LOAD( "epr-5757.63", 0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5749.86", 0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) ) - ROM_LOAD( "epr-5750.93", 0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( mrvikngj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5751.129", 0x0000, 0x2000, CRC(ae97a4c5) SHA1(12edd757bd5b00d42ada1e10c43817f71cfe77dc) ) /* encrypted */ - ROM_LOAD( "epr-5752.130", 0x2000, 0x2000, CRC(d48e6726) SHA1(934b5e7568c85005c5ec40d75e49727a18562d50) ) /* encrypted */ - ROM_LOAD( "epr-5753.131", 0x4000, 0x2000, CRC(28c60887) SHA1(9673335586221336c3373f5d7c8ae4fc11cc4b7f) ) /* encrypted */ - ROM_LOAD( "epr-5754.132", 0x6000, 0x2000, CRC(1f47ed02) SHA1(d1147cd29fb342111f4f20a1d1d03263dce478f3) ) /* encrypted */ - ROM_LOAD( "epr-5755.133", 0x8000, 0x2000, CRC(edd62ae1) SHA1(9648f1ae3033c30ed8ab8d9c87b111756dab7b5e) ) - ROM_LOAD( "epr-5756.134", 0xa000, 0x2000, CRC(11974040) SHA1(a0904d19d06fb5ef5eb6da0dc4efe556bc29b33e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5763.3", 0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5762.82", 0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) ) - ROM_LOAD( "epr-5761.65", 0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) ) - ROM_LOAD( "epr-5760.81", 0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) ) - ROM_LOAD( "epr-5759.64", 0x6000, 0x2000, CRC(5f9bae4e) SHA1(6fff6086a96be6aa28bec05d1c94c257bb29ef1e) ) - ROM_LOAD( "epr-5758.80", 0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) ) - ROM_LOAD( "epr-5757.63", 0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5749.86", 0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) ) - ROM_LOAD( "epr-5750.93", 0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( swat ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr5807b.129", 0x0000, 0x2000, CRC(93db9c9f) SHA1(56e9d9a33f04b4d5971c0db24cc8719a52e64678) ) /* encrypted */ - ROM_LOAD( "epr-5808.130", 0x2000, 0x2000, CRC(67116665) SHA1(e8aa72f2835d38367be5e8a9313e51b64f452ee7) ) /* encrypted */ - ROM_LOAD( "epr-5809.131", 0x4000, 0x2000, CRC(fd792fc9) SHA1(a0b4f0c2e537bd16f7345590da00f2622947d7e4) ) /* encrypted */ - ROM_LOAD( "epr-5810.132", 0x6000, 0x2000, CRC(dc2b279d) SHA1(e740cbe239d379705fdffb3e500d6f5a2fece2e2) ) /* encrypted */ - ROM_LOAD( "epr-5811.133", 0x8000, 0x2000, CRC(093e3ab1) SHA1(abf1f23dc26a7518357d0c1749e869b539c3bbed) ) - ROM_LOAD( "epr-5812.134", 0xa000, 0x2000, CRC(5bfd692f) SHA1(adc8dcf643d8d0b0a1d0dda0494567263ea11a00) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5819.3", 0x0000, 0x2000, CRC(f6afd0fd) SHA1(06062648b9ebc70b4b5c30b043f537adc0052047) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5818.82", 0x0000, 0x2000, CRC(b22033d9) SHA1(ad217cd8dad178f3f2f1fd44a58adcc4887fb6b7) ) - ROM_LOAD( "epr-5817.65", 0x2000, 0x2000, CRC(fd942797) SHA1(da7378e8d12cc2970df2efa075c944c79b3b74d2) ) - ROM_LOAD( "epr-5816.81", 0x4000, 0x2000, CRC(4384376d) SHA1(78ae13a38d6368e44ba95642cce7f5515a5b6022) ) - ROM_LOAD( "epr-5815.64", 0x6000, 0x2000, CRC(16ad046c) SHA1(a0b97e016e5cf43f223ecb6c5fe7dec7c8e9c098) ) - ROM_LOAD( "epr-5814.80", 0x8000, 0x2000, CRC(be721c99) SHA1(bbb0afe2b195d60418014c36acf3de95adfd90d8) ) - ROM_LOAD( "epr-5813.63", 0xa000, 0x2000, CRC(0d42c27e) SHA1(06b1d23cacfef3017e5951dc10e8471e9b3103d5) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5805.86", 0x0000, 0x4000, CRC(5a732865) SHA1(55c54e54f052187ddd957131e56400c9c432a6b2) ) - ROM_LOAD( "epr-5806.93", 0x4000, 0x4000, CRC(26ac258c) SHA1(e4e9f929ab8ae7da74f885481cf94335d7553a1c) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( flicky ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr5978a.116", 0x0000, 0x4000, CRC(296f1492) SHA1(52e2c63ce376ab8124b2c68bdfa432b6621cfa78) ) /* encrypted */ - ROM_LOAD( "epr5979a.109", 0x4000, 0x4000, CRC(64b03ef9) SHA1(7519aa7f036bce6d52a5d4be2418139559f9a8a5) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) - ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) - ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) - ROM_LOAD( "epr-5865.63", 0x6000, 0x2000, CRC(03d9a34c) SHA1(e158db3e0b86f2b8ad34cefc2714cb0a942efde7) ) - ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) - ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) - ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( flickyo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-5857.bin", 0x0000, 0x2000, CRC(a65ac88e) SHA1(1d1c276f7ffb33bc9f216b6b69517f1783d435a4) ) /* encrypted */ - ROM_LOAD( "epr5858a.bin", 0x2000, 0x2000, CRC(18b412f4) SHA1(6205dc2a6c1092f9bc7752672b7c06d5faf2f65e) ) /* encrypted */ - ROM_LOAD( "epr-5859.bin", 0x4000, 0x2000, CRC(a5558d7e) SHA1(ca59c7e57ae45f960f769db9a04ffa5c870005dd) ) /* encrypted */ - ROM_LOAD( "epr-5860.bin", 0x6000, 0x2000, CRC(1b35fef1) SHA1(53ca5361309c59a2b3490ea0037c6e58f07837d9) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-5869.120", 0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-5868.62", 0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) ) - ROM_LOAD( "epr-5867.61", 0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) ) - ROM_LOAD( "epr-5866.64", 0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) ) - ROM_LOAD( "epr-5865.63", 0x6000, 0x2000, CRC(03d9a34c) SHA1(e158db3e0b86f2b8ad34cefc2714cb0a942efde7) ) - ROM_LOAD( "epr-5864.66", 0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) ) - ROM_LOAD( "epr-5863.65", 0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-5855.117", 0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) ) - ROM_LOAD( "epr-5856.110", 0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wmatch ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "wm.129", 0x0000, 0x2000, CRC(b6db4442) SHA1(9f31b3b2d4b4a430f9de84141ebd66bdba063387) ) /* encrypted */ - ROM_LOAD( "wm.130", 0x2000, 0x2000, CRC(59a0a7a0) SHA1(a1707d08ba968d1ad01f3249c046a62dde8e2730) ) /* encrypted */ - ROM_LOAD( "wm.131", 0x4000, 0x2000, CRC(4cb3856a) SHA1(983f52bfb2f8e3871518137f424786a9a8e5c53d) ) /* encrypted */ - ROM_LOAD( "wm.132", 0x6000, 0x2000, CRC(e2e44b29) SHA1(53208666c1368887ab347ea1f261e692cc041d40) ) /* encrypted */ - ROM_LOAD( "wm.133", 0x8000, 0x2000, CRC(43a36445) SHA1(6cc5a6fa8319d4e2b454b326d8a908ff764fa65f) ) - ROM_LOAD( "wm.134", 0xa000, 0x2000, CRC(5624794c) SHA1(7cfb0a35b7fb8394e0e7efa6b63ba83bd5c9b8e7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "wm.3", 0x0000, 0x2000, CRC(50d2afb7) SHA1(21b109d389d0b52d89cf635467c3213f6b24d7df) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "wm.82", 0x0000, 0x2000, CRC(540f0bf3) SHA1(3898dee3ed9e7382a9dfc3ee2af177c5b832ea84) ) - ROM_LOAD( "wm.65", 0x2000, 0x2000, CRC(92c1e39e) SHA1(a701a66ed75fbc0be4819751dabb86e51a1dbbc4) ) - ROM_LOAD( "wm.81", 0x4000, 0x2000, CRC(6a01ff2a) SHA1(f609fe9ec648dd428a6e2fc544585935d7adc562) ) - ROM_LOAD( "wm.64", 0x6000, 0x2000, CRC(aae6449b) SHA1(852d6c01420ea55e4215ec99adbb6896fa16a02d) ) - ROM_LOAD( "wm.80", 0x8000, 0x2000, CRC(fc3f0bd4) SHA1(887ff0d6c5fff0d1e631518fc89901d43a0d7088) ) - ROM_LOAD( "wm.63", 0xa000, 0x2000, CRC(c2ce9b93) SHA1(934f4dddf2f42a23f91385dd62fc166b117063b8) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "wm.86", 0x0000, 0x4000, CRC(238ae0e5) SHA1(af18cfe7f8103358a0ce2aef9bbd949fdc0bfbfc) ) - ROM_LOAD( "wm.93", 0x4000, 0x4000, CRC(a2f19170) SHA1(47dacc380b09c6365c737d320145cedad54ecedb) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.106", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( bullfgt ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-.129", 0x0000, 0x2000, CRC(29f19156) SHA1(86cca9601f63b9b3d3aaaf21c3a3e456a50ca6b8) ) /* encrypted */ - ROM_LOAD( "epr-.130", 0x2000, 0x2000, CRC(e37d2b95) SHA1(9d2523190e49c9d45a5832da912cbc0cd23e2496) ) /* encrypted */ - ROM_LOAD( "epr-.131", 0x4000, 0x2000, CRC(eaf5773d) SHA1(7db6a7c1c4d9e5f5b4de97b41ab5dd591e2e1548) ) /* encrypted */ - ROM_LOAD( "epr-.132", 0x6000, 0x2000, CRC(72c3c712) SHA1(1c1ac6d7248382228b99d2652f53fbe15246f253) ) /* encrypted */ - ROM_LOAD( "epr-.133", 0x8000, 0x2000, CRC(7d9fa4cd) SHA1(b6f0d86281c7e8de7a23b0c55c1991350d5bc9b1) ) - ROM_LOAD( "epr-.134", 0xa000, 0x2000, CRC(061f2797) SHA1(f13acd4c5b33ed85229a3907744283646e020867) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6077.120", 0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-.82", 0x0000, 0x2000, CRC(b71c349f) SHA1(5a0e9b90c71708dadab201da09c71449e05268e1) ) - ROM_LOAD( "epr-.65", 0x2000, 0x2000, CRC(86deafa8) SHA1(b4b9d38bd4a47ce2e75ec0ef3d7507aef8a16858) ) - ROM_LOAD( "epr-6087.81", 0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) ) /* epr-6087.81 */ - ROM_LOAD( "epr-.64", 0x6000, 0x2000, CRC(6f0a62be) SHA1(30c93c4d7f916f7b9a725f412a3a4a71f24c4f22) ) - ROM_LOAD( "epr-6085.80", 0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) ) /* epr-6085.80 */ - ROM_LOAD( "epr-.63", 0xa000, 0x2000, CRC(c0fce57c) SHA1(74f2c987f77e73b7069014d3bd6809d8bb3596c7) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-6069.86", 0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) ) /* epr-6069.86 */ - ROM_LOAD( "epr-6070.93", 0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) ) /* epr-6070.93 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( thetogyu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6071.116", 0x0000, 0x4000, CRC(96b57df9) SHA1(bfce24bf570961d3cfb449078e23e546fad7229e) ) /* encrypted */ - ROM_LOAD( "epr-6072.109", 0x4000, 0x4000, CRC(f7baadd0) SHA1(45a05b72561d47e4ac5475509fe2b57d870c89cd) ) /* encrypted */ - ROM_LOAD( "epr-6073.96", 0x8000, 0x4000, CRC(721af166) SHA1(0b345715227e70fa6857f5967f0c7da9577f8887) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6077.120", 0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6089.62", 0x0000, 0x2000, CRC(a183e5ff) SHA1(bb710377a8e88f530b669141ab46abd867c6cb83) ) - ROM_LOAD( "epr-6088.61", 0x2000, 0x2000, CRC(b919b4a6) SHA1(ca11a96bee2e2059552ac6cce6f8dead1965ef4b) ) - ROM_LOAD( "epr-6087.64", 0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) ) - ROM_LOAD( "epr-6086.63", 0x6000, 0x2000, CRC(76b5a084) SHA1(32fd23f0d6fc8f5c3b5aae9a20907191a6d70611) ) - ROM_LOAD( "epr-6085.66", 0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) ) - ROM_LOAD( "epr-6084.65", 0xa000, 0x2000, CRC(90e1fa5f) SHA1(e37a7f872229a93a70e42615e6452aa608d53a93) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-6069.117", 0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) ) - ROM_LOAD( "epr-6070.110", 0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( pitfall2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr6456a.116", 0x0000, 0x4000, CRC(bcc8406b) SHA1(2e5c76886fce2c9863db7a914b85b088971aceef) ) /* encrypted */ - ROM_LOAD( "epr6457a.109", 0x4000, 0x4000, CRC(a016fd2a) SHA1(866f82066466bc5eaf6ab1b6f85a1c173692a1f7) ) /* encrypted */ - ROM_LOAD( "epr6458a.96", 0x8000, 0x4000, CRC(5c30b3e8) SHA1(9048091ebf054d0ba0c6a92520ddfac38a479034) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6462.120", 0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr6474a.62", 0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) ) - ROM_LOAD( "epr6473a.61", 0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) ) - ROM_LOAD( "epr6472a.64", 0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) ) - ROM_LOAD( "epr6471a.63", 0x6000, 0x2000, CRC(d5bc805c) SHA1(520afa7617e8dfd09bf469c01ac606a4a3acdc5e) ) - ROM_LOAD( "epr6470a.66", 0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) ) - ROM_LOAD( "epr6469a.65", 0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr6454a.117", 0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) ) - ROM_LOAD( "epr-6455.05", 0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( pitfallu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6623.116", 0x0000, 0x4000, CRC(bcb47ed6) SHA1(d33421999f899c0a4dc0d4553614c1f5c7027257) ) - ROM_LOAD( "epr6624a.109", 0x4000, 0x4000, CRC(6e8b09c1) SHA1(4869ca4d3f0b08cd3df4c82be9cfc774ddeb3010) ) - ROM_LOAD( "epr-6625.96", 0x8000, 0x4000, CRC(dc5484ba) SHA1(62fffff7d935c104def5f09e9dc4a26fa4ce4f94) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6462.120", 0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr6474a.62", 0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) ) - ROM_LOAD( "epr6473a.61", 0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) ) - ROM_LOAD( "epr6472a.64", 0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) ) - ROM_LOAD( "epr6471a.63", 0x6000, 0x2000, CRC(d5bc805c) SHA1(520afa7617e8dfd09bf469c01ac606a4a3acdc5e) ) - ROM_LOAD( "epr6470a.66", 0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) ) - ROM_LOAD( "epr6469a.65", 0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr6454a.117", 0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) ) - ROM_LOAD( "epr-6455.05", 0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( seganinj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-.116", 0x0000, 0x4000, CRC(a5d0c9d0) SHA1(b60caccab8269f40d4f6e7a50f3aa0d4901c1e57) ) /* encrypted */ - ROM_LOAD( "epr-.109", 0x4000, 0x4000, CRC(b9e6775c) SHA1(f39e815c3c034015125b96de34a2a225b81392b5) ) /* encrypted */ - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* epr-7151.96 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) - ROM_LOAD( "epr-6592.61", 0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) ) - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) - ROM_LOAD( "epr-6590.63", 0x6000, 0x2000, CRC(bf858cad) SHA1(1c18c4aa4b9a59f3c06aa459eab6bdd1b298d848) ) - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) - ROM_LOAD( "epr-6588.65", 0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( seganinu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-7149.116", 0x0000, 0x4000, CRC(cd9fade7) SHA1(958ef5c449df6ef5346b8634cb34a646950f706e) ) - ROM_LOAD( "epr-7150.109", 0x4000, 0x4000, CRC(c36351e2) SHA1(17734d3f410feb4cad617d1931b3356192b69ac0) ) - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* epr-7151.96 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) - ROM_LOAD( "epr-6592.61", 0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) ) - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) - ROM_LOAD( "epr-6590.63", 0x6000, 0x2000, CRC(bf858cad) SHA1(1c18c4aa4b9a59f3c06aa459eab6bdd1b298d848) ) - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) - ROM_LOAD( "epr-6588.65", 0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( nprinces ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6612.129", 0x0000, 0x2000, CRC(1b30976f) SHA1(f76b7f3d88985a5c190e7880c27ab057f102db31) ) /* encrypted */ - ROM_LOAD( "epr-6613.130", 0x2000, 0x2000, CRC(18281f27) SHA1(3fcf2fbd1fc13eda678b77c58c53aa881882286c) ) /* encrypted */ - ROM_LOAD( "epr-6614.131", 0x4000, 0x2000, CRC(69fc3d73) SHA1(287e6b252ae3cd23812b56afe23d4f239f3a76d5) ) /* encrypted */ - ROM_LOAD( "epr-6615.132", 0x6000, 0x2000, CRC(1d0374c8) SHA1(6d818470e294c03b51ec6db8a285d7b71ab2b61f) ) /* encrypted */ - ROM_LOAD( "epr-6577.133", 0x8000, 0x2000, CRC(73616e03) SHA1(429615ee1e041d3e14fc557ec39c380fea07de71) ) /* epr-6616.133 */ - ROM_LOAD( "epr-6617.134", 0xa000, 0x2000, CRC(20b6f895) SHA1(9c9cb3b0c33c4da2850a5756b63c3886634ec544) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */ - ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */ - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */ - ROM_LOAD( "epr-6555.63", 0x6000, 0x2000, CRC(7f669aac) SHA1(24ad708112eb26bddf58a70a15273a267121e166) ) /* epr-6555.64 */ - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */ - ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */ - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */ - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */ - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( nprincso ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6550.116", 0x0000, 0x4000, CRC(5f6d59f1) SHA1(e151bf22799c6507a167f83262e48fe2ba74dbd9) ) /* encrypted */ - ROM_LOAD( "epr-6551.109", 0x4000, 0x4000, CRC(1af133b2) SHA1(d3ff924782223ea0566d52ab8b45f17af433966e) ) /* encrypted */ - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) - ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) - ROM_LOAD( "epr-6555.63", 0x6000, 0x2000, CRC(7f669aac) SHA1(24ad708112eb26bddf58a70a15273a267121e166) ) - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) - ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( nprincsu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6573.129", 0x0000, 0x2000, CRC(d2919c7d) SHA1(993fdde7dd8d4dbad42f8072829cfea794693a37) ) - ROM_LOAD( "epr-6574.130", 0x2000, 0x2000, CRC(5a132833) SHA1(c21cdca6062a6ea2ca306a8dd26b572b3be86321) ) - ROM_LOAD( "epr-6575.131", 0x4000, 0x2000, CRC(a94b0bd4) SHA1(068db579de3dbd545ae41f930a24f2997a2efedf) ) - ROM_LOAD( "epr-6576.132", 0x6000, 0x2000, CRC(27d3bbdb) SHA1(c7f729798c174de73b6582087f6fe2d4db848b6b) ) - ROM_LOAD( "epr-6577.133", 0x8000, 0x2000, CRC(73616e03) SHA1(429615ee1e041d3e14fc557ec39c380fea07de71) ) - ROM_LOAD( "epr-6578.134", 0xa000, 0x2000, CRC(ab68499f) SHA1(6c662a0ff827cc68bcdb26f6b9d48add4f8ef2e9) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */ - ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */ - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */ - ROM_LOAD( "epr-6555.63", 0x6000, 0x2000, CRC(7f669aac) SHA1(24ad708112eb26bddf58a70a15273a267121e166) ) /* epr-6555.64 */ - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */ - ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */ - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */ - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */ - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( nprincsb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "nprinces.001", 0x0000, 0x4000, CRC(e0de073c) SHA1(26aec99ddb080124225e0abf17aac4cc4aed1834) ) /* encrypted */ - ROM_LOAD( "nprinces.002", 0x4000, 0x4000, CRC(27219c7f) SHA1(3f4b0ea9b49907231d10a38d89e2f1803dc168c9) ) /* encrypted */ - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) - ROM_LOAD( "epr-6557.61", 0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) - ROM_LOAD( "epr-6555.63", 0x6000, 0x2000, CRC(7f669aac) SHA1(24ad708112eb26bddf58a70a15273a267121e166) ) - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) - ROM_LOAD( "epr-6553.65", 0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) - - ROM_REGION( 0x0220, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - ROM_LOAD( "nprinces.129", 0x0100, 0x0100, CRC(ae765f62) SHA1(9434b5a23d118a9c62015b479719826b38269cd4) ) /* decryption table (not used) */ - ROM_LOAD( "nprinces.123", 0x0200, 0x0020, CRC(ed5146e9) SHA1(7044035c07636e4029f4b746c1a92e15173869e9) ) /* decryption table (not used) */ -ROM_END - -ROM_START( ninja ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr6594.bin", 0x0000, 0x4000, CRC(3ef0e5fc) SHA1(ba2d832aa33759c21582e728ca7e4a0ca03cb937) ) - ROM_LOAD( "epr6595.bin", 0x4000, 0x4000, CRC(b16f13cd) SHA1(e4649ce76393fdf8d2a1f53f1c25ee27ed35db45) ) - ROM_LOAD( "epr-6552.96", 0x8000, 0x4000, CRC(f2eeb0d8) SHA1(1f0d1c73ba9eaa2887ffc596f0038b0af37ced49) ) /* epr-7151.96 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6559.120", 0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6558.62", 0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) - ROM_LOAD( "epr6592.bin", 0x2000, 0x2000, CRC(88d0c7a1) SHA1(a649a56484f3cf466dbd4bc468d21220e638c5fe) ) - ROM_LOAD( "epr-6556.64", 0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) - ROM_LOAD( "epr6590.bin", 0x6000, 0x2000, CRC(956e3b61) SHA1(47e797bcc39f3ef917848b64a3666e08f9498cc0) ) - ROM_LOAD( "epr-6554.66", 0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) - ROM_LOAD( "epr6588.bin", 0xa000, 0x2000, CRC(023a14a3) SHA1(199bdf597ace496992f323c0eaa1e779920fb976) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6546.117", 0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) - ROM_LOAD( "epr-6548.04", 0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) - ROM_LOAD( "epr-6547.110", 0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) - ROM_LOAD( "epr-6549.05", 0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( imsorry ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6676.116", 0x0000, 0x4000, CRC(eb087d7f) SHA1(b9bcc76bbdfa597d252e7db60fa0f7529e884cce) ) /* encrypted */ - ROM_LOAD( "epr-6677.109", 0x4000, 0x4000, CRC(bd244bee) SHA1(ad9c722fde08f48d8bc835b244450b01a3d747c2) ) /* encrypted */ - ROM_LOAD( "epr-6678.96", 0x8000, 0x4000, CRC(2e16b9fd) SHA1(3395fb769c79f048d099e2898bb7a15611b006c0) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6656.120", 0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6684.62", 0x0000, 0x2000, CRC(2c8df377) SHA1(abcabdecee0ce52000dab831ae1e50fe12c97066) ) - ROM_LOAD( "epr-6683.61", 0x2000, 0x2000, CRC(89431c48) SHA1(99c0d141eb5519c31b194693a1fe9be882cb03fd) ) - ROM_LOAD( "epr-6682.64", 0x4000, 0x2000, CRC(256a9246) SHA1(6aed392a5dd639c54bf54acd3651a77274c0a277) ) - ROM_LOAD( "epr-6681.63", 0x6000, 0x2000, CRC(6974d189) SHA1(57999a73511b2b3f52d7d6a32addc0641255d7b1) ) - ROM_LOAD( "epr-6680.66", 0x8000, 0x2000, CRC(10a629d6) SHA1(fa2c7df33c685e48020ccabcfba5830e7609e392) ) - ROM_LOAD( "epr-6674.65", 0xa000, 0x2000, CRC(143d883c) SHA1(e35f6fae7feb9a353321d8239ac8990bc773e60b) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-6645.117", 0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) ) - ROM_LOAD( "epr-6646.04", 0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( imsorryj ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6647.116", 0x0000, 0x4000, CRC(cc5d915d) SHA1(1e2def1f7a03db3504177127dc784fe6c99a7440) ) /* encrypted */ - ROM_LOAD( "epr-6648.109", 0x4000, 0x4000, CRC(37574d60) SHA1(c7c8507b608976973e766956bd28dfb17222de35) ) /* encrypted */ - ROM_LOAD( "epr-6649.96", 0x8000, 0x4000, CRC(5f59bdee) SHA1(289ba35a7869a5b833c8aa4819e76fadde2d1ace) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6656.120", 0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6655.62", 0x0000, 0x2000, CRC(be1f762f) SHA1(abf7af29b1fe4003342fbb431541921433a1fc7c) ) - ROM_LOAD( "epr-6654.61", 0x2000, 0x2000, CRC(ed5f7fc8) SHA1(2e77e8292f644f5bbeebc807f193f20d4591f47a) ) - ROM_LOAD( "epr-6653.64", 0x4000, 0x2000, CRC(8b4845a7) SHA1(048efa9d8122d4a91f4d005d023261a5a5b8b046) ) - ROM_LOAD( "epr-6652.63", 0x6000, 0x2000, CRC(001d68cb) SHA1(c23b4bfbb09b7d3047e04b92d19b69d2ea550879) ) - ROM_LOAD( "epr-6651.66", 0x8000, 0x2000, CRC(4ee9b5e6) SHA1(821bdeefea03c5d3be6d83d0dd30841969d81bd4) ) - ROM_LOAD( "epr-6650.65", 0xa000, 0x2000, CRC(3fca4414) SHA1(d4c80e06bb7027dbc8aea42fb48c71d9fa08ca40) ) - - ROM_REGION( 0x8000, REGION_GFX2, 0 ) /* 32k for sprites data */ - ROM_LOAD( "epr-6645.117", 0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) ) - ROM_LOAD( "epr-6646.04", 0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( teddybb ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6768.116", 0x0000, 0x4000, CRC(5939817e) SHA1(84d78412d3e13da493d08a40deb2ff3fd51ff9f8) ) /* encrypted */ - ROM_LOAD( "epr-6769.109", 0x4000, 0x4000, CRC(14a98ddd) SHA1(197fa05fb476c02d64e9027cde5aaac26f59b5e8) ) /* encrypted */ - ROM_LOAD( "epr-6770.96", 0x8000, 0x4000, CRC(67b0c7c2) SHA1(b955719c954af5266e06ae7b04ff20f9dc414997) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr6748x.120", 0x0000, 0x2000, CRC(c2a1b89d) SHA1(55c5461640ccb26bed332c13adfbb99c27237bcb) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6747.62", 0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) /* epr-6776.62 */ - ROM_LOAD( "epr-6746.61", 0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) /* epr-6775.61 */ - ROM_LOAD( "epr-6745.64", 0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) /* epr-6774.64 */ - ROM_LOAD( "epr-6744.63", 0x6000, 0x2000, CRC(0ef8d2cd) SHA1(cf9ebf8e3c1d0794b3d3377464f3908d4fcee6f7) ) /* epr-6773.63 */ - ROM_LOAD( "epr-6743.66", 0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) /* epr-6772.66 */ - ROM_LOAD( "epr-6742.65", 0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) /* epr-6771.65 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6735.117", 0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) ) - ROM_LOAD( "epr-6737.04", 0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) ) - ROM_LOAD( "epr-6736.110", 0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) ) - ROM_LOAD( "epr-6738.05", 0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( teddybbo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6739.116", 0x0000, 0x4000, CRC(81a37e69) SHA1(ddd0fd7ba5b3646c43ae4261f1e3fedd4184d92c) ) /* encrypted */ - ROM_LOAD( "epr-6740.109", 0x4000, 0x4000, CRC(715388a9) SHA1(5affc4ecb1e0d58b69093aed732b1e292b8d3118) ) /* encrypted */ - ROM_LOAD( "epr-6741.96", 0x8000, 0x4000, CRC(e5a74f5f) SHA1(ccf18b424d4aaeec0bae1e6f096b4c176f6ab554) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6748.120", 0x0000, 0x2000, CRC(9325a1cf) SHA1(555d137b1c974b144ebe6593b4c32c97b3bb5de9) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6747.62", 0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) - ROM_LOAD( "epr-6746.61", 0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) - ROM_LOAD( "epr-6745.64", 0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) - ROM_LOAD( "epr-6744.63", 0x6000, 0x2000, CRC(0ef8d2cd) SHA1(cf9ebf8e3c1d0794b3d3377464f3908d4fcee6f7) ) - ROM_LOAD( "epr-6743.66", 0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) - ROM_LOAD( "epr-6742.65", 0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6735.117", 0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) ) - ROM_LOAD( "epr-6737.04", 0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) ) - ROM_LOAD( "epr-6736.110", 0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) ) - ROM_LOAD( "epr-6738.05", 0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -/* This is the first System 1 game to have extended ROM space */ -ROM_START( hvymetal ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epra6790.1", 0x00000, 0x8000, CRC(59195bb9) SHA1(63dde673bd875dd23d445b152decb1d70c3750a4) ) /* encrypted */ - ROM_LOAD( "epra6789.2", 0x10000, 0x8000, CRC(83e1d18a) SHA1(07ef58ee2a5212e1e2800efc2bd48d2b2a9ed10d) ) - ROM_LOAD( "epra6788.3", 0x18000, 0x8000, CRC(6ecefd57) SHA1(3236313d5d826873d58af5ad80652c8d0ae0cc31) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr6787.120", 0x0000, 0x8000, CRC(b64ac7f0) SHA1(2b16c2702d3230891b700714a66ece95f1a74b44) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr6795.62", 0x00000, 0x4000, CRC(58a3d038) SHA1(9aabfad143748e2ec1b41fde72a1d533bac3f9d8) ) - ROM_LOAD( "epr6796.61", 0x04000, 0x4000, CRC(d8b08a55) SHA1(cfa5370aa430947637bfe57a5a1f802f273b43f7) ) - ROM_LOAD( "epr6793.64", 0x08000, 0x4000, CRC(487407c2) SHA1(9bb9fff24fe057fa17057ba9263d412905a0c036) ) - ROM_LOAD( "epr6794.63", 0x0c000, 0x4000, CRC(89eb3793) SHA1(90a0cc81d917122c726238585eb802763d34884e) ) - ROM_LOAD( "epr6791.66", 0x10000, 0x4000, CRC(a7dcd042) SHA1(d9bac10aa7ac591a20bfed4e391ec1669eadc32d) ) - ROM_LOAD( "epr6792.65", 0x14000, 0x4000, CRC(d0be5e33) SHA1(1e61c6e14c3c736e74e6c2ff5cde71d1d20b99a4) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr6778.117", 0x00000, 0x8000, CRC(0af61aee) SHA1(90879d4d1bef38714a39ca71c101bd103d250284) ) - ROM_LOAD( "epr6777.110", 0x08000, 0x8000, CRC(91d7a197) SHA1(34c12b7de22169d369ff5b8a8d86da62404267f8) ) - ROM_LOAD( "epr6780.4", 0x10000, 0x8000, CRC(55b31df5) SHA1(aa1ce0b1666e17db196bd1e079691fbe433a9226) ) - ROM_LOAD( "epr6779.5", 0x18000, 0x8000, CRC(e03a2b28) SHA1(7e742c09e832d01f74fe4025d194cbc8d2f24b70) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr7036.3", 0x0000, 0x0100, CRC(146f16fb) SHA1(0a2ac871383b115c16491b9ba5973f0d363eac49) ) /* palette red component */ - ROM_LOAD( "pr7035.2", 0x0100, 0x0100, CRC(50b201ed) SHA1(14c3a585c083dc387532d64bfd63e34f5220e6de) ) /* palette green component */ - ROM_LOAD( "pr7034.1", 0x0200, 0x0100, CRC(dfb5f139) SHA1(56cba261819fd5f2beab56ffd80bb3fd328efe3e) ) /* palette blue component */ - ROM_LOAD( "pr5317p.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( myhero ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr6963b.116", 0x0000, 0x4000, CRC(4daf89d4) SHA1(6fd69964d4e0dcd5637920711361f1879fcf330e) ) - ROM_LOAD( "epr6964a.109", 0x4000, 0x4000, CRC(c26188e5) SHA1(48d7871a9c63de774c48f1bd9dcaf84b4188f84f) ) - ROM_LOAD( "epr-6927.96", 0x8000, 0x4000, CRC(3cbbaf64) SHA1(fdb5f2ca38010729afa4ed24c087119cf398f27d) ) /* epr-6965.96 */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-69xx.120", 0x0000, 0x2000, CRC(0039e1e9) SHA1(ead2e8a8a518da5ac6ccd5cd6db4cf167ea47c76) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6966.62", 0x0000, 0x2000, CRC(157f0401) SHA1(f07eb40de95054d6a2c2ebec0b251685e8931b37) ) - ROM_LOAD( "epr-6961.61", 0x2000, 0x2000, CRC(be53ce47) SHA1(de6073e7a00cba7e13aca0248c55126b16595d50) ) - ROM_LOAD( "epr-6960.64", 0x4000, 0x2000, CRC(bd381baa) SHA1(e160db821422232fb8f6b4f1c4ce0b61f7bed463) ) - ROM_LOAD( "epr-6959.63", 0x6000, 0x2000, CRC(bc04e79a) SHA1(df93f96aabde981fe9ecf32ef1f99dfebe968835) ) - ROM_LOAD( "epr-6958.66", 0x8000, 0x2000, CRC(714f2c26) SHA1(4696c9322d7b9b27f56309312fe498f14cb32827) ) - ROM_LOAD( "epr-6958.65", 0xa000, 0x2000, CRC(80920112) SHA1(745d029f99b6878efcca535885b9bf98bf8702f2) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) - ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) - ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) - ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( sscandal ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr6925b.116", 0x0000, 0x4000, CRC(ff54dcec) SHA1(634ba5c79dc20dc6ab3efd9597b9fb1e4f86f58f) ) /* encrypted */ - ROM_LOAD( "epr6926a.109", 0x4000, 0x4000, CRC(5c41eea8) SHA1(6a060a9739ee85c5c3a3e205bfac46bff1ed0b91) ) /* encrypted */ - ROM_LOAD( "epr-6927.96", 0x8000, 0x4000, CRC(3cbbaf64) SHA1(fdb5f2ca38010729afa4ed24c087119cf398f27d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6934.120", 0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6933.62", 0x0000, 0x2000, CRC(e7304036) SHA1(cff10b180832703ef472a6abd481f8433308d462) ) - ROM_LOAD( "epr-6932.61", 0x2000, 0x2000, CRC(f5cfbfda) SHA1(52044e3eb6f2e82c9490856410758c5223eb116b) ) - ROM_LOAD( "epr-6931.64", 0x4000, 0x2000, CRC(599d7f87) SHA1(c581001b45856447b2878dc5bdeb92bffb15086a) ) - ROM_LOAD( "epr-6930.63", 0x6000, 0x2000, CRC(cb6616c2) SHA1(84d4f65379cb9d5c9774d29bbad137529ab221a6) ) - ROM_LOAD( "epr-6929.66", 0x8000, 0x2000, CRC(27a16856) SHA1(1e386dfa5178a0902f5d5e64f4d0414593f2e801) ) - ROM_LOAD( "epr-6928.65", 0xa000, 0x2000, CRC(c0c9cfa4) SHA1(3a98f25beab2dcacf5ec4457501ecfde9bc6e8eb) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) - ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) - ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) - ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( myherok ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - /* all the three program ROMs have bits 0-1 swapped */ - /* when decoded, they are identical to the Japanese version */ - ROM_LOAD( "ry-11.rom", 0x0000, 0x4000, CRC(6f4c8ee5) SHA1(bbbb87a66be383d9d44ae3bb7f4d1ff56933fd57) ) /* encrypted */ - ROM_LOAD( "ry-09.rom", 0x4000, 0x4000, CRC(369302a1) SHA1(670bf97e401c0a665330d2264c126c275f4c5f8d) ) /* encrypted */ - ROM_LOAD( "ry-07.rom", 0x8000, 0x4000, CRC(b8e9922e) SHA1(f563fd415d5218c2c3e0071776c91b6250cacea3) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6934.120", 0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - /* all three gfx ROMs have address lines A4 and A5 swapped, also #1 and #3 */ - /* have data lines D0 and D6 swapped, while #2 has data lines D1 and D5 swapped. */ - ROM_LOAD( "ry-04.rom", 0x0000, 0x4000, CRC(dfb75143) SHA1(b1943e0b8ca4439d5ef27abecd48e6fc806d3a0e) ) - ROM_LOAD( "ry-03.rom", 0x4000, 0x4000, CRC(cf68b4a2) SHA1(7f1607320943c452bcc30b4805e8e9c9d2a61955) ) - ROM_LOAD( "ry-02.rom", 0x8000, 0x4000, CRC(d100eaef) SHA1(d917a85c3560578cc7640bfcb4725b4217f0ed91) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6921.117", 0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) ) - ROM_LOAD( "epr-6923.04", 0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) ) - ROM_LOAD( "epr-6922.110", 0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) ) - ROM_LOAD( "epr-6924.05", 0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( shtngmst ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr7100", 0x00000, 0x8000, CRC(45e64431) SHA1(7edf818dc1f65365641e51abc197d13db7a8d4d9) ) - ROM_LOAD( "epr7101", 0x10000, 0x8000, CRC(ebf5ff72) SHA1(13ae06e3a81cf00b80ec939d5baf30143d61d480) ) - ROM_LOAD( "epr7102", 0x18000, 0x8000, CRC(c890a4ad) SHA1(4b59d37902ace3a69b380ff40652ee37c85f0e9d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr7043", 0x0000, 0x8000, CRC(99a368ab) SHA1(a9451f39ee2613e5c3e2791d4d8d837b4a3ab666) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr7040", 0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) ) - ROM_LOAD( "epr7041", 0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) ) - ROM_LOAD( "epr7042", 0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_ERASEFF ) - ROM_LOAD( "epr7110", 0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) ) - ROM_LOAD( "epr7106", 0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) ) - ROM_LOAD( "epr7108", 0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) ) - ROM_LOAD( "epr7104", 0x18000, 0x8000, CRC(84a679c5) SHA1(19a21b1b33fc215f606093bfd61d597e4bd0b3d0) ) - ROM_LOAD( "epr7109", 0x20000, 0x8000, CRC(097f7481) SHA1(4d93ea01b811af1cd3e136116625e4b8e06358a2) ) - ROM_LOAD( "epr7105", 0x28000, 0x8000, CRC(13111729) SHA1(57ca2b945db36b056d0e40a39456fd8bf9d0a3ec) ) - ROM_LOAD( "epr7107", 0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "epr7113", 0x0000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */ - ROM_LOAD( "epr7112", 0x0100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */ - ROM_LOAD( "epr7111", 0x0200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component */ - ROM_LOAD( "epr5317", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -/* - -Shooting Master (EVG) -Year: 1985 -Manufacturer: E.V.G. SRL Milano made in Italy (Sega license) - -CPU -1x Z8400AB1-Z80ACPU-Y28548 (main board) -1x iC8751H-88-L5310039 (main board) -1x AMD P8255A-8526YP (main board) -1x SEGA 315-5012-8605P5 (main board) -1x SEGA 315-5011-8549X5 (main board) -1x SEGA 315-5049-8551PX (main board) -1x SEGA 315-5139-8537-CK2605-V-J (main board) -1x oscillator 20.000MHz (main board) -1x SYS Z8400AB1-Z80ACPU-Y28535 (upper board) -1x NEC D8255AC-2 (upper board) -1x oscillator 4.9152MHz (upper board) - -ROMs -1x HN27256G-25 (7043)(main board close to Z80) -2x HN27256G-25 (7101-7102)(main board close to C8751) -3x HN27256G-25 (7040-7041-7042)(main board close to 315-5049) -2x PAL16R4A (315-5137 and 315-5138) -1x HN27256G-25 (7100)(upper board close to oscillator) -7x HN27256G-25 (7104 to 7110)(upper board close to Z80 and 8255) - -7040.4 = epr7040 Shooting Master -7041.5 = epr7041 Shooting Master -7042.6 = epr7042 Shooting Master -7043.126 = epr7043 Shooting Master -7100.18 NO MATCH -7101.91 = epr7101 Shooting Master -7102.92 = epr7102 Shooting Master -7104.20 = epr7104 Shooting Master -7105.21 = epr7105 Shooting Master -7106.22 = epr7106 Shooting Master -7107.23 = epr7107 Shooting Master -7108.24 = epr7108 Shooting Master -7109.25 = epr7109 Shooting Master -7110.26 = epr7110 Shooting Master -8751.74.bad.dump NO MATCH -pal16r4a(315-5137).jed NOT A ROM --> converted into bin format on 20060915 -pal16r4a(315-5138).jed = pal16r4a.ic9 Choplifter - = pal16r4a.ic9 Choplifter (bootleg) - -this set seems to hang sometimes, is it bad, it could be hacked and failing checks hidden in the game. - -*/ - -ROM_START( shtngmsa ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "7100.18", 0x00000, 0x8000, CRC(268ecb1d) SHA1(a9274c9718f7244235cc6df76331d6a0b7e4e4c8) ) // different.. - ROM_LOAD( "epr7101", 0x10000, 0x8000, CRC(ebf5ff72) SHA1(13ae06e3a81cf00b80ec939d5baf30143d61d480) ) - ROM_LOAD( "epr7102", 0x18000, 0x8000, CRC(c890a4ad) SHA1(4b59d37902ace3a69b380ff40652ee37c85f0e9d) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr7043", 0x0000, 0x8000, CRC(99a368ab) SHA1(a9451f39ee2613e5c3e2791d4d8d837b4a3ab666) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr7040", 0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) ) - ROM_LOAD( "epr7041", 0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) ) - ROM_LOAD( "epr7042", 0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) ) - - ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_ERASEFF ) - ROM_LOAD( "epr7110", 0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) ) - ROM_LOAD( "epr7106", 0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) ) - ROM_LOAD( "epr7108", 0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) ) - ROM_LOAD( "epr7104", 0x18000, 0x8000, CRC(84a679c5) SHA1(19a21b1b33fc215f606093bfd61d597e4bd0b3d0) ) - ROM_LOAD( "epr7109", 0x20000, 0x8000, CRC(097f7481) SHA1(4d93ea01b811af1cd3e136116625e4b8e06358a2) ) - ROM_LOAD( "epr7105", 0x28000, 0x8000, CRC(13111729) SHA1(57ca2b945db36b056d0e40a39456fd8bf9d0a3ec) ) - ROM_LOAD( "epr7107", 0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "epr7113", 0x0000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */ - ROM_LOAD( "epr7112", 0x0100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */ - ROM_LOAD( "epr7111", 0x0200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component */ - ROM_LOAD( "epr5317", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r4a.ic9", 0x0000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* label on chip is: 315-5137 */ - ROM_LOAD( "pal16r4a(315-5137).bin", 0x0200, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) -ROM_END - - -ROM_START( chplft ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr-7124.90", 0x00000, 0x8000, CRC(678d5c41) SHA1(7553979f78270c2ddc5b3f3ebf7817ead8e08de7) ) - ROM_LOAD( "epr-7125.91", 0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) ) - ROM_LOAD( "epr-7126.92", 0x18000, 0x8000, CRC(dbd192ab) SHA1(03d280c82599a14fc6a2065d57c6241cdc6f1143) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7130.126", 0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7127.4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) - ROM_LOAD( "epr-7128.5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) - ROM_LOAD( "epr-7129.6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr-7121.87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) - ROM_LOAD( "epr-7120.86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) - ROM_LOAD( "epr-7123.89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) - ROM_LOAD( "epr-7122.88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr7119.20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ - ROM_LOAD( "pr7118.14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ - ROM_LOAD( "pr7117.8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ - ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r4a.ic9", 0x0000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) - ROM_LOAD( "pal16r4a.ic10", 0x0200, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) -ROM_END - -ROM_START( chplftb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr-7152.90", 0x00000, 0x8000, CRC(fe49d83e) SHA1(307be38dd73ed37b275c1b464d266a752cb06132) ) - ROM_LOAD( "epr-7153.91", 0x10000, 0x8000, CRC(48697666) SHA1(0f4c6db9558272f5ceb347e742b284474f18b707) ) - ROM_LOAD( "epr-7154.92", 0x18000, 0x8000, CRC(56d6222a) SHA1(ad8ccf15fe7f1d6716f78490892da0167d79f678) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7130.126", 0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7127.4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) - ROM_LOAD( "epr-7128.5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) - ROM_LOAD( "epr-7129.6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr-7121.87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) - ROM_LOAD( "epr-7120.86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) - ROM_LOAD( "epr-7123.89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) - ROM_LOAD( "epr-7122.88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr7119.20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ - ROM_LOAD( "pr7118.14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ - ROM_LOAD( "pr7117.8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ - ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( chplftbl ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "ep7124bl.90", 0x00000, 0x8000, CRC(71a37932) SHA1(72b6f8949d356b3adc5248fdaa13c2a1b9c0fa70) ) - ROM_LOAD( "epr-7125.91", 0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) ) - ROM_LOAD( "epr-7126.92", 0x18000, 0x8000, CRC(dbd192ab) SHA1(03d280c82599a14fc6a2065d57c6241cdc6f1143) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7130.126", 0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7127.4", 0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) ) - ROM_LOAD( "epr-7128.5", 0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) ) - ROM_LOAD( "epr-7129.6", 0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr-7121.87", 0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) ) - ROM_LOAD( "epr-7120.86", 0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) ) - ROM_LOAD( "epr-7123.89", 0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) ) - ROM_LOAD( "epr-7122.88", 0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr7119.20", 0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */ - ROM_LOAD( "pr7118.14", 0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */ - ROM_LOAD( "pr7117.8", 0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */ - ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - - ROM_REGION( 0x0800, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16r4a.ic9", 0x0000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) - ROM_LOAD( "pal16r4a.ic10", 0x0200, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) - ROM_LOAD( "pal16r4a-chopbl1.bin", 0x0400, 0x0104, CRC(e1628a8e) SHA1(6b6df079cfadec71b38a53f107475f0dda428b00) ) - ROM_LOAD( "pal16l8a-chopbl2.bin", 0x0600, 0x0104, CRC(afa7425d) SHA1(09d8607b69ecfc0b12c8610751d489500b63c7d6) ) -ROM_END - -ROM_START( 4dwarrio ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "4d.116", 0x0000, 0x4000, CRC(546d1bc7) SHA1(724bb2f77a2b82fae85e535ae4a37820cfb323d0) ) /* encrypted */ - ROM_LOAD( "4d.109", 0x4000, 0x4000, CRC(f1074ec3) SHA1(bc368abeb6c0a7172e03bd7a1754cf4a6ecbb4f8) ) /* encrypted */ - ROM_LOAD( "4d.96", 0x8000, 0x4000, CRC(387c1e8f) SHA1(520ecbafd1c7271dad24410a68067dfd801fa6d6) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "4d.120", 0x0000, 0x2000, CRC(5241c009) SHA1(b7a21f95b63234f2496d5ea6e7dc8050ca1b39fc) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "4d.62", 0x0000, 0x2000, CRC(f31b2e09) SHA1(fdc288769495f4b0ca8c7594c9ab7dc0f29e57a4) ) - ROM_LOAD( "4d.61", 0x2000, 0x2000, CRC(5430e925) SHA1(55f92309223c41871175b1f54418c8b08339deb0) ) - ROM_LOAD( "4d.64", 0x4000, 0x2000, CRC(9f442351) SHA1(07076ef66e29c730050e38aecabdfbfced9f9bc4) ) - ROM_LOAD( "4d.63", 0x6000, 0x2000, CRC(633232bd) SHA1(c09c1df4f04608381d665a83776005607ad97ad4) ) - ROM_LOAD( "4d.66", 0x8000, 0x2000, CRC(52bfa2ed) SHA1(ea1c18d07957301f2006350b02fe40d13dbe2aa5) ) - ROM_LOAD( "4d.65", 0xa000, 0x2000, CRC(e9ba4658) SHA1(ba2581a52eb54e2d9f1e1bf30050280df3f5df1b) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "4d.117", 0x0000, 0x4000, CRC(436e4141) SHA1(2574d5c3b01c89d8a041c82af976147d3b87b36b) ) - ROM_LOAD( "4d.04", 0x4000, 0x4000, CRC(8b7cecef) SHA1(4851754cb56784ac248f699f0781646455dd556b) ) - ROM_LOAD( "4d.110", 0x8000, 0x4000, CRC(6ec5990a) SHA1(a26dbd470744c38a26a016e5d4792ac2f2b9bc4b) ) - ROM_LOAD( "4d.05", 0xc000, 0x4000, CRC(f31a1e6a) SHA1(f49dbc4b381e7096d5ffe3c16660dd63121dabf7) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( brain ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "brain.1", 0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) ) - ROM_LOAD( "brain.2", 0x10000, 0x8000, CRC(810a8ab5) SHA1(87cd39f5b1047f355e1d257c691ef11fc55824ca) ) - ROM_RELOAD( 0x08000, 0x8000 ) /* there's code falling through from 7fff */ - /* so I have to copy the ROM there */ - ROM_LOAD( "brain.3", 0x18000, 0x8000, CRC(9a225634) SHA1(9f137938592dd9c5ab2273864a11a682e0f7f783) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "brain.120", 0x0000, 0x8000, CRC(c7e50278) SHA1(9709a59004c6bc39173d0cb94f3602c358367976) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "brain.62", 0x0000, 0x4000, CRC(7dce2302) SHA1(ebf15da3aea36f6a831a5395b0e5fc253852a3ee) ) - ROM_LOAD( "brain.64", 0x4000, 0x4000, CRC(7ce03fd3) SHA1(11f037c75d606276cbf4ec76a2cfdde94a756493) ) - ROM_LOAD( "brain.66", 0x8000, 0x4000, CRC(ea54323f) SHA1(08a4d2543a75a1fbb6ef2c126e3aeb4945bf458f) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "brain.117", 0x00000, 0x8000, CRC(92ff71a4) SHA1(856646c595e0ef7bbcf18844ee34b04e05893ffa) ) - ROM_LOAD( "brain.110", 0x08000, 0x8000, CRC(a1b847ec) SHA1(d71664822b9b863bd2a37da71b4e0850893b9876) ) - ROM_LOAD( "brain.4", 0x10000, 0x8000, CRC(fd2ea53b) SHA1(c7f2d267f19d2c27a550120e003ebfcb10d8af89) ) - /* 18000-1ffff empty */ - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "bprom.3", 0x0000, 0x0100, BAD_DUMP CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ - ROM_LOAD( "bprom.2", 0x0100, 0x0100, BAD_DUMP CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ - ROM_LOAD( "bprom.1", 0x0200, 0x0100, BAD_DUMP CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ - ROM_LOAD( "pr5317.76", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( raflesia ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-7411.116", 0x0000, 0x4000, CRC(88a0c6c6) SHA1(1deaa8d8d607100966696e5e9dd5f799ba693af0) ) /* encrypted */ - ROM_LOAD( "epr-7412.109", 0x4000, 0x4000, CRC(d3b8cddf) SHA1(368c74d8ae46442cacdb67813dc1c039245da266) ) /* encrypted */ - ROM_LOAD( "epr-7413.96", 0x8000, 0x4000, CRC(b7e688b3) SHA1(ba5c6d5d19e7d51e41949fd5fa576fdae38f9c9c) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7420.120", 0x0000, 0x2000, CRC(14387666) SHA1(9cb18e3002c32f658e4725707069f9cd2f496507) ) /* epr-7420.3 */ - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7419.62", 0x0000, 0x2000, CRC(bfd5f34c) SHA1(78c4d380d5558212e535c3262223137447d64818) ) /* epr-7419.82 */ - ROM_LOAD( "epr-7418.61", 0x2000, 0x2000, CRC(f8cbc9b6) SHA1(48be9337f704a11ac1fdeb64a3b3518c796bcdd0) ) /* epr-7418.65 */ - ROM_LOAD( "epr-7417.64", 0x4000, 0x2000, CRC(e63501bc) SHA1(5cfd19241c54782c262bbb23c6f682534e77feb7) ) /* epr-7417.81 */ - ROM_LOAD( "epr-7416.63", 0x6000, 0x2000, CRC(093e5693) SHA1(78bb1c4651bd63a9f776766d2eac4f1c09242ed5) ) /* epr-7416.64 */ - ROM_LOAD( "epr-7415.66", 0x8000, 0x2000, CRC(1a8d6bd6) SHA1(b04ee35f603c6c9923ba888914eb43a8b7753d92) ) /* epr-7415.80 */ - ROM_LOAD( "epr-7414.65", 0xa000, 0x2000, CRC(5d20f218) SHA1(bdc0185d133f7bbe287106882bacde846634ffa4) ) /* epr-7414.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7407.117", 0x0000, 0x4000, CRC(f09fc057) SHA1(c6f06144b708055b31fbcba9f38b63736db789d8) ) /* epr-7407.3 */ - ROM_LOAD( "epr-7409.04", 0x4000, 0x4000, CRC(819fedb8) SHA1(e63f0422814423be91d8e1937a13d19693a1a5fc) ) /* epr-7409.1 */ - ROM_LOAD( "epr-7408.110", 0x8000, 0x4000, CRC(3189f33c) SHA1(8476c2c01920f0492cf643929d4f023f3afe0164) ) /* epr-7408.4 */ - ROM_LOAD( "epr-7410.05", 0xc000, 0x4000, CRC(ced74789) SHA1(d0ad845bfe83412ac8d43125e1c50d0581a5b47e) ) /* epr-7410.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( spatter ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6392.116", 0x0000, 0x4000, CRC(329b4506) SHA1(8f71ffc3015c4fcf84a895bf53760830602f1040) ) /* encrypted */ - ROM_LOAD( "epr-6393.109", 0x4000, 0x4000, CRC(3b56e25f) SHA1(23f26f8632c8a370b5b3b7a3ec58f359cdf04f73) ) /* encrypted */ - ROM_LOAD( "epr-6394.96", 0x8000, 0x4000, CRC(647c1301) SHA1(5142abfcc63772fd1b47eb584ccda0bc3830e337) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) - ROM_LOAD( "epr-6397.61", 0x2000, 0x2000, CRC(c60d4471) SHA1(9e8130d575fa342485dfe093e086a4b48e51b904) ) - ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) - ROM_LOAD( "epr-6396.63", 0x6000, 0x2000, CRC(c15ccf3b) SHA1(14809ab81816eedb85cacda042e437d48cf9b31a) ) - ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) - ROM_LOAD( "epr-6395.65", 0xa000, 0x2000, CRC(3f083065) SHA1(cb17c8c2fe04baa58863c10cd8f359a58def3417) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) - ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) - ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) - ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( ssanchan ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-6310.116", 0x0000, 0x4000, CRC(26b43701) SHA1(e041bde10da12a3f698da09220f0a7cc2ee99abe) ) /* encrypted */ - ROM_LOAD( "epr-6311.109", 0x4000, 0x4000, CRC(cb2bc620) SHA1(ecc69360ad9fcc825b35955fbc29da9ea28b8846) ) /* encrypted */ - ROM_LOAD( "epr-6312.96", 0x8000, 0x4000, CRC(71b15b47) SHA1(7c955be049f9a8d7ca18d877183b698dd5ffe4da) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-6316.120", 0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-6328.62", 0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) ) - ROM_LOAD( "epr-6327.61", 0x2000, 0x2000, CRC(53298109) SHA1(75fd37034aee78d63939d8b4f584c1dc1042264b) ) - ROM_LOAD( "epr-6326.64", 0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) ) - ROM_LOAD( "epr-6325.63", 0x6000, 0x2000, CRC(bf038745) SHA1(2fda2412f76b8971ba543ec10da07d4b0d1f2006) ) - ROM_LOAD( "epr-6324.66", 0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) ) - ROM_LOAD( "epr-6323.65", 0xa000, 0x2000, CRC(0394673c) SHA1(fbee6a5cb37d0394db95781b9f165d766546eb33) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-6306.04", 0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) ) - ROM_LOAD( "epr-6308.117", 0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) ) - ROM_LOAD( "epr-6307.05", 0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) ) - ROM_LOAD( "epr-6309.110", 0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( wboy ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-7489.116", 0x0000, 0x4000, CRC(130f4b70) SHA1(4a2ea5bc06f3a240c68813be3a9f9bef2bcf4e9c) ) /* encrypted */ - ROM_LOAD( "epr-7490.109", 0x4000, 0x4000, CRC(9e656733) SHA1(2233beb874b7cb48899afe603fef567932951a88) ) /* encrypted */ - ROM_LOAD( "epr-7491.96", 0x8000, 0x4000, CRC(1f7d0efe) SHA1(a1b4f8faf1614f4808df1292209c340f1490adbd) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wboyo ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-.116", 0x0000, 0x4000, CRC(51d27534) SHA1(1cbc7201aacde89857f83b2600f309b514c5e758) ) /* encrypted */ - ROM_LOAD( "epr-.109", 0x4000, 0x4000, CRC(e29d1cd1) SHA1(f6ff4a6fffea77cc5706549bb2d8bf9e96ed0be0) ) /* encrypted */ - ROM_LOAD( "epr-7491.96", 0x8000, 0x4000, CRC(1f7d0efe) SHA1(a1b4f8faf1614f4808df1292209c340f1490adbd) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wboy2 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "epr-7587.129", 0x0000, 0x2000, CRC(1bbb7354) SHA1(e299979299c93981f5d28a1a614ad644506911dd) ) /* encrypted */ - ROM_LOAD( "epr-7588.130", 0x2000, 0x2000, CRC(21007413) SHA1(f45443a49e916465e5c8a8b348897ab426a897bd) ) /* encrypted */ - ROM_LOAD( "epr-7589.131", 0x4000, 0x2000, CRC(44b30433) SHA1(558d799c8f48f76c651f19e2a81160eb78ac6642) ) /* encrypted */ - ROM_LOAD( "epr-7590.132", 0x6000, 0x2000, CRC(bb525a0b) SHA1(5cd4731e0adfb5c660144eccda759e12a30ce78e) ) /* encrypted */ - ROM_LOAD( "epr-7591.133", 0x8000, 0x2000, CRC(8379aa23) SHA1(da47e0150b724a00878ef5f953fa6ac80bb27d8d) ) - ROM_LOAD( "epr-7592.134", 0xa000, 0x2000, CRC(c767a5d7) SHA1(a4e8d6a8278ac2227bde8c24d45aa7ab2a273579) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) /* epr-7498.3 */ - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) /* epr-7494.64 */ - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( wboy2u ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic129_02.bin", 0x0000, 0x2000, CRC(32c4b709) SHA1(e57b7b6818f12fdd5f1600ed54c0b8a7f538aa71) ) - ROM_LOAD( "ic130_03.bin", 0x2000, 0x2000, CRC(56463ede) SHA1(c58c220aa0d0e194581646e6db2491075fdc37b9) ) - ROM_LOAD( "ic131_04.bin", 0x4000, 0x2000, CRC(775ed392) SHA1(073f8f70685913736eb04be8215a47b5253cb531) ) - ROM_LOAD( "ic132_05.bin", 0x6000, 0x2000, CRC(7b922708) SHA1(c2e1f67b756f558d6904fe82d6f5483cda5f9045) ) - ROM_LOAD( "epr-7591.133", 0x8000, 0x2000, CRC(8379aa23) SHA1(da47e0150b724a00878ef5f953fa6ac80bb27d8d) ) - ROM_LOAD( "epr-7592.134", 0xa000, 0x2000, CRC(c767a5d7) SHA1(a4e8d6a8278ac2227bde8c24d45aa7ab2a273579) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr7498a.3", 0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) /* epr-7494.64 */ - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( wboy3 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "wb_1", 0x0000, 0x4000, CRC(bd6fef49) SHA1(6469a84cc1fd4ebf8c58b6efd3b255414bc86699) ) /* encrypted */ - ROM_LOAD( "wb_2", 0x4000, 0x4000, CRC(4081b624) SHA1(892fd347638ec900a7afc3d338b68e9d0a14f2b4) ) /* encrypted */ - ROM_LOAD( "wb_3", 0x8000, 0x4000, CRC(c48a0e36) SHA1(c9b9e51334e8b698be2195dda7701bb51760e502) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -/* -This wonderboy romset runs on a system1 1985 pcb with some flying wires. -Serial number of the pcb is 257 - -There are 2 piggyback boards: - -The first is marked "SEGA 834-5764" and it is placed on the socket of the sega sys1 protection chip and on a eprom socket. -there are IC2 and IC3 eproms (I can't read the codes because the stickers are damaged) -There is also a 40 pin socket in which they have put an unknown 42 NEC cpu (they have scratched the codes) with pin 21 and 22 cut! - -The second piggyback is marked "SEGA 834-5755" and it contains proms and some logic. -*/ - -ROM_START( wboy4 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic2.bin", 0x0000, 0x8000, CRC(48b2c006) SHA1(35492330dae71d410712380466b4c09b81df8559) ) /* encrypted */ - ROM_LOAD( "ic3.bin", 0x8000, 0x8000, CRC(466cae31) SHA1(e47e9084c83796a0a0dfeaa1f8f868cadd5f32c7) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) ) // epr7583.ic120 - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr7610.ic62", 0x0000, 0x4000, CRC(1685d26a) SHA1(d30d08d61d789fd5a0eb7ef2998eb9728dabf4c9) ) - ROM_LOAD( "epr7609.ic64", 0x4000, 0x4000, CRC(87ecba53) SHA1(b904d5af25e0c1f8c8ca8dc11a3bed508c868f19) ) - ROM_LOAD( "epr7608.ic66", 0x8000, 0x4000, CRC(e812b3ec) SHA1(3eebeaf3480a0370aa5ee031c25768ada17ad8a2) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "7578.87", 0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) ) // epr7577.ic110 - ROM_LOAD( "7577.86", 0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) ) // epr7576.ic117 - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wboyu ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic116_89.bin", 0x0000, 0x4000, CRC(73d8cef0) SHA1(a6f1f8de44a88f995836ce03b5a073306c56aaeb) ) - ROM_LOAD( "ic109_90.bin", 0x4000, 0x4000, CRC(29546828) SHA1(905d76bc2b212a161ad2f2bef144261bb73c94cb) ) - ROM_LOAD( "ic096_91.bin", 0x8000, 0x4000, CRC(c7145c2a) SHA1(0b2fd6f519a4b87bc27db5d03c489c7ff75e942a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr-7498.120", 0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) /* epr-7494.64 */ - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "ic117_85.bin", 0x0000, 0x4000, CRC(1ee96ae8) SHA1(4e69b87e919894b961477e6cc5272f448495d847) ) - ROM_LOAD( "ic004_87.bin", 0x4000, 0x4000, CRC(119735bb) SHA1(001efa55d7fbcd2fdb6da17b136f295e5ea4a4c2) ) - ROM_LOAD( "ic110_86.bin", 0x8000, 0x4000, CRC(26d0fac4) SHA1(2e6a06f6850b2d19e3dd7dcdc6b700d0eda878cb) ) - ROM_LOAD( "ic005_88.bin", 0xc000, 0x4000, CRC(2602e519) SHA1(00e94ec7ae37b5063137d4d49af7806fb0357c4b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wboysys2 ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "7580.90", 0x0000, 0x8000, CRC(d69927a5) SHA1(b633177146a83953131d4e03fa987416f222199a) ) /* encrypted */ - ROM_LOAD( "7579.91", 0x10000, 0x8000, CRC(8a6f4b00) SHA1(2b1c26daa2e9c668292db73e28318257c62b175c) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "7581.4", 0x00000, 0x8000, CRC(d95565fd) SHA1(25f1653cca1d6432171a7b391cbb76bc18ddfb06) ) - ROM_LOAD( "7582.5", 0x08000, 0x8000, CRC(560cbac0) SHA1(851283e6d63e33d250840501dd22750b19772fb0) ) - ROM_LOAD( "7607.6", 0x10000, 0x8000, CRC(bd36df03) SHA1(7f7efac2c71fae48dd1dcb4dcc849f07e8127f7d) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "7578.87", 0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) ) - ROM_LOAD( "7577.86", 0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr-7345.20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ - ROM_LOAD( "pr-7344.14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ - ROM_LOAD( "pr-7343.8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ - ROM_LOAD( "pr-5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbdeluxe ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "wbd1.bin", 0x0000, 0x2000, CRC(a1bedbd7) SHA1(32d171847ca02b01a7ac810cac3185c81c923285) ) - ROM_LOAD( "ic130_03.bin", 0x2000, 0x2000, CRC(56463ede) SHA1(c58c220aa0d0e194581646e6db2491075fdc37b9) ) - ROM_LOAD( "wbd3.bin", 0x4000, 0x2000, CRC(6fcdbd4c) SHA1(4fb9a916c99bf267c0035cb80b16400732991f83) ) - ROM_LOAD( "ic132_05.bin", 0x6000, 0x2000, CRC(7b922708) SHA1(c2e1f67b756f558d6904fe82d6f5483cda5f9045) ) - ROM_LOAD( "wbd5.bin", 0x8000, 0x2000, CRC(f6b02902) SHA1(9a43b84d9537d70e9c0d75010a824bcaec57a50c) ) - ROM_LOAD( "wbd6.bin", 0xa000, 0x2000, CRC(43df21fe) SHA1(c1b88505942f48b0df2362bbb618689febe00d1f) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr7498a.3", 0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr-7497.62", 0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */ - ROM_LOAD( "epr-7496.61", 0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */ - ROM_LOAD( "epr-7495.64", 0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */ - ROM_LOAD( "epr-7494.63", 0x6000, 0x2000, CRC(a8e281c7) SHA1(a88b80a7b94ab1401bbf28d7707fdf28a5505127) ) /* epr-7494.64 */ - ROM_LOAD( "epr-7493.66", 0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */ - ROM_LOAD( "epr-7492.65", 0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */ - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "epr-7485.117", 0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */ - ROM_LOAD( "epr-7487.04", 0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */ - ROM_LOAD( "epr-7486.110", 0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */ - ROM_LOAD( "epr-7488.05", 0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */ - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr-5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ - /* pr-5317.106 */ -ROM_END - -ROM_START( gardia ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr10255.1", 0x00000, 0x8000, CRC(89282a6b) SHA1(f19e345e5fae6a518276cc1bd09d1e2083672b25) ) /* encrypted */ - ROM_LOAD( "epr10254.2", 0x10000, 0x8000, CRC(2826b6d8) SHA1(de1faf33cca031b72052bf5244fcb0bd79d85659) ) - ROM_LOAD( "epr10253.3", 0x18000, 0x8000, CRC(7911260f) SHA1(44196f0a6c4c2b22a68609ddfc75be6a7877a69a) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr10249.61", 0x0000, 0x4000, CRC(4e0ad0f2) SHA1(b76c155b674f3ad8938278d5dbb0452351c716a5) ) - ROM_LOAD( "epr10248.64", 0x4000, 0x4000, CRC(3515d124) SHA1(39b28a103d8bfe702a376ebd880d6060e3d1ab30) ) - ROM_LOAD( "epr10247.66", 0x8000, 0x4000, CRC(541e1555) SHA1(6660204c74a9f7e63b3ba08d99fb854aa863710e) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) ) - ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) ) - ROM_LOAD( "epr10236.04", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) ) - ROM_LOAD( "epr10235.5", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "bprom.3", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ - ROM_LOAD( "bprom.2", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ - ROM_LOAD( "bprom.1", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ - ROM_LOAD( "pr5317.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( gardiab ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "gardiabl.5", 0x00000, 0x8000, CRC(207f9cbb) SHA1(647de15ac69a904344f3c18c9da8cefd626387db) ) /* encrypted */ - ROM_LOAD( "gardiabl.6", 0x10000, 0x8000, CRC(b2ed05dc) SHA1(c520bf7024c85dc759c27eccb0a31998f4d72b5f) ) - ROM_LOAD( "gardiabl.7", 0x18000, 0x8000, CRC(0a490588) SHA1(18df754ebdf062096f2d631a722b168901610345) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "gardiabl.8", 0x0000, 0x4000, CRC(367c9a17) SHA1(bde7592ce94bbc6674c04b427c52e74207066f56) ) - ROM_LOAD( "gardiabl.9", 0x4000, 0x4000, CRC(1540fd30) SHA1(e2d134e0715231a428fd112be81493a0e2a2642f) ) - ROM_LOAD( "gardiabl.10", 0x8000, 0x4000, CRC(e5c9af10) SHA1(6bff5bbc0f339e84a8e31446dc9897c02600fbcf) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) ) - ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) ) - ROM_LOAD( "epr10236.04", 0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) ) - ROM_LOAD( "epr10235.5", 0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "bprom.3", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ - ROM_LOAD( "bprom.2", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ - ROM_LOAD( "bprom.1", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ - ROM_LOAD( "pr5317.4", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( blockgal ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "bg.116", 0x0000, 0x4000, CRC(a99b231a) SHA1(42ba45a4fd315255e9500bc3a0e8fe653c4c5a9c) ) /* encrypted */ - ROM_LOAD( "bg.109", 0x4000, 0x4000, CRC(a6b573d5) SHA1(33547a3895bbe65d5a6c40453eeb93e1fedad6de) ) /* encrypted */ - /* 0x8000-0xbfff empty (was same as My Hero) */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "bg.120", 0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) - ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) - ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) - ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) - ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) - ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) - ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) - ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) - ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( blckgalb ) - ROM_REGION( 0x18000, REGION_CPU1, 0 ) /* 64k for code */ - ROM_LOAD( "ic62", 0x10000, 0x8000, CRC(65c47676) SHA1(bc283761e6f9ebf65fb405b1c8922c3c98c8d00e) ) /* decrypted opcodes */ - ROM_CONTINUE( 0x00000, 0x8000 ) /* decrypted data */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "bg.120", 0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) ) - - ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "bg.62", 0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) ) - ROM_LOAD( "bg.61", 0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) ) - ROM_LOAD( "bg.64", 0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) ) - ROM_LOAD( "bg.63", 0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) ) - ROM_LOAD( "bg.66", 0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) ) - ROM_LOAD( "bg.65", 0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) ) - - ROM_REGION( 0x10000, REGION_GFX2, 0 ) /* 64k for sprites data */ - ROM_LOAD( "bg.117", 0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) ) - ROM_LOAD( "bg.04", 0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) ) - ROM_LOAD( "bg.110", 0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) ) - ROM_LOAD( "bg.05", 0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* misc PROMs, but no color so don't use REGION_PROMS! */ - ROM_LOAD( "pr5317.76", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( tokisens ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr10961.90", 0x00000, 0x8000, CRC(1466b61d) SHA1(99f93813834d3a7c9f6228076d400f74d9b6dea9) ) - ROM_LOAD( "epr10962.91", 0x10000, 0x8000, CRC(a8479f91) SHA1(0700746fb481fd2bd22ae82c9881aa61222a6379) ) - ROM_LOAD( "epr10963.92", 0x18000, 0x8000, CRC(b7193b39) SHA1(d40fb8591b1ff83f3d56b955ac11a07496a0adbb) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr10967.126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr10964.4", 0x00000, 0x8000, CRC(9013b85c) SHA1(c27322245052ffc9d840fe683ed35965c61bf9e8) ) - ROM_LOAD( "epr10965.5", 0x08000, 0x8000, CRC(e4755cc6) SHA1(33370d556a70e19edce5e0c7fa8b11453ccbe91b) ) - ROM_LOAD( "epr10966.6", 0x10000, 0x8000, CRC(5bbfbdcc) SHA1(e7e679da874a79dfdda0be58d1352c192635296d) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr10958.87", 0x00000, 0x8000, CRC(fc2bcbd7) SHA1(6b9007f2057e4c860ecae4ba5db4e02b8aaae8fd) ) - ROM_LOAD( "epr10957.86", 0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) ) - ROM_LOAD( "epr10960.89", 0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) ) - ROM_LOAD( "epr10959.88", 0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "bprom.20", 0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */ - ROM_LOAD( "bprom.14", 0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */ - ROM_LOAD( "bprom.8", 0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */ - ROM_LOAD( "bprom.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbml ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "ep11031a.90", 0x00000, 0x8000, CRC(bd3349e5) SHA1(65cc16e5d3b08429388946df254b8122ad1da339) ) /* encrypted */ - ROM_LOAD( "epr11032.91", 0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */ - ROM_LOAD( "epr11033.92", 0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) - ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) - ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) - ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) - ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) - ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) - ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) - ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbmljo ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "epr11031.90", 0x00000, 0x8000, CRC(497ebfb4) SHA1(d90872c7d5285c85b05879bc67638f640e0339d5) ) /* encrypted */ - ROM_LOAD( "epr11032.91", 0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */ - ROM_LOAD( "epr11033.92", 0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) - ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) - ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) - ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) - ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) - ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) - ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) - ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbmljb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ - ROM_LOAD( "m-6.bin", 0x30000, 0x8000, CRC(8c08cd11) SHA1(5103f3c887c213b09aee858c4a883f2869b9ffb5) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x10000, 0x8000 ) - ROM_LOAD( "m-7.bin", 0x38000, 0x8000, CRC(11881703) SHA1(b5e4d477158e7653b0fef5a4806be7b4871e917d) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x18000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11034.4", 0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) ) - ROM_LOAD( "epr11035.5", 0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) ) - ROM_LOAD( "epr11036.6", 0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) - ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) - ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) - ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) - ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) - ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbmlb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ - ROM_LOAD( "wbml.02", 0x30000, 0x8000, CRC(48746bb6) SHA1(a0049cba53e7548afa8d7b16a7e9494e628d2a0f) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x10000, 0x8000 ) - ROM_LOAD( "wbml.03", 0x38000, 0x8000, CRC(d57ba8aa) SHA1(16f095cb78e31af5ce76d36c20fe4c3e0d027aea) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x18000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "wbml.08", 0x00000, 0x8000, CRC(bbea6afe) SHA1(ba56c6789a35eb57cd226296ebf57e9aa19ba625) ) - ROM_LOAD( "wbml.09", 0x08000, 0x8000, CRC(77567d41) SHA1(2ac501661522615859f8a1718dbb8451272d6931) ) - ROM_LOAD( "wbml.10", 0x10000, 0x8000, CRC(a52ffbdd) SHA1(609375112268b770a798186697ecab5853f29f89) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) - ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) - ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) - ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) - ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) - ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( wbmlbg ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "galaxy.ic90", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ - ROM_LOAD( "galaxy.ic91", 0x30000, 0x8000, CRC(89a8ab93) SHA1(11389604017e15aed9a8fcef60e42740acd79917) ) /* Unencrypted opcodes */ - ROM_CONTINUE( 0x10000, 0x8000 ) - ROM_LOAD( "galaxy.ic92", 0x38000, 0x8000, CRC(39e07286) SHA1(70192f03e52dd34c9fe5698a5ec1c24d3c58543c) ) /* Unencrypted opcodes */ - ROM_RELOAD( 0x18000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "galaxy.ic4", 0x00000, 0x8000, CRC(ab75d056) SHA1(d90d9c723536d0ec21900dc70b51715300b01fe7) ) - ROM_LOAD( "galaxy.ic6", 0x08000, 0x8000, CRC(6bb5e601) SHA1(465d67dcde4e775d1b93640ef1a300e958cbe707) ) - ROM_LOAD( "galaxy.ic5", 0x10000, 0x8000, CRC(3c11d151) SHA1(7b0c6792ae919ac309a709ca0c89006487e1d6e9) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) ) - ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) ) - ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) ) - ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) ) - ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) ) - ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) ) - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( dakkochn ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 128k for code */ - ROM_LOAD( "epr11224.90", 0x00000, 0x8000, CRC(9fb1972b) SHA1(1bb61c6ec2b5b8eb39f74f20d5bcd0f14501bd21) ) /* encrypted */ - ROM_LOAD( "epr11225.91", 0x10000, 0x8000, CRC(c540f9e2) SHA1(dbda9355e8b796bcfaee2789714d248c4d7ad58c) ) /* encrypted */ - /* 18000-1ffff empty */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11229.126", 0x0000, 0x8000, CRC(c11648d0) SHA1(c2df3d767d497c3365ae70748c4790f4ee394958) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11226.4", 0x00000, 0x8000, CRC(3dbc2f78) SHA1(f3f7ee2c0bedcc21c1c1f5394838af6d0a8833d8) ) - ROM_LOAD( "epr11227.5", 0x08000, 0x8000, CRC(34156e8d) SHA1(e23d8604a3d5db413cf150f9891fca2b1e0163fa) ) - ROM_LOAD( "epr11228.6", 0x10000, 0x8000, CRC(fdd5323f) SHA1(c47099c78207bb2258d34b98b48e3c04beb6407e) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11221.87", 0x00000, 0x8000, CRC(f9a44916) SHA1(9d9ba96146cff4c1ed18b7134ab19919e144d326) ) - ROM_LOAD( "epr11220.86", 0x08000, 0x8000, CRC(fdd25d8a) SHA1(53636e2a9102a2d86277cff812639d1d92587fc4) ) - ROM_LOAD( "epr11223.89", 0x10000, 0x8000, CRC(538adc55) SHA1(542af53a56f580e5ab455aa6bed955ee5fd4a252) ) - ROM_LOAD( "epr11222.88", 0x18000, 0x8000, CRC(33fab0b2) SHA1(eb3c08009315e46590c2c0df17fc3fa391034c66) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11219.20", 0x0000, 0x0100, CRC(45e252d9) SHA1(92d8f1d0f1a9e65234521ce02d512f08b5e06d78) ) /* palette red component */ - ROM_LOAD( "pr11218.14", 0x0100, 0x0100, CRC(3eda3a1b) SHA1(cc98c792521845259088eb163a150cd5bb603d5d) ) /* palette green component */ - ROM_LOAD( "pr11217.8", 0x0200, 0x0100, CRC(49dbde88) SHA1(7057da5617de7e4775adf092cce1709135066129) ) /* palette blue component */ - ROM_LOAD( "pr5317.37", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( ufosensi ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "epr11661.90", 0x00000, 0x8000, CRC(f3e394e2) SHA1(a295a2aa80a164a548995822c46f32fd9fad7a0b) ) /* encrypted */ - ROM_LOAD( "epr11662.91", 0x10000, 0x8000, CRC(0c2e4120) SHA1(d81fbefa95868e3efd29ef3bacf108329781ca17) ) /* encrypted */ - ROM_LOAD( "epr11663.92", 0x18000, 0x8000, CRC(4515ebae) SHA1(9b823f10999746292762c2f0a1ca9039efa22506) ) /* encrypted */ - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11664.4", 0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) ) - ROM_LOAD( "epr11665.5", 0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) ) - ROM_LOAD( "epr11666.6", 0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11658.87", 0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) ) - ROM_LOAD( "epr11657.86", 0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) ) - ROM_LOAD( "epr11660.89", 0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) ) - ROM_LOAD( "epr11659.88", 0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11656.20", 0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component */ - ROM_LOAD( "pr11655.14", 0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component */ - ROM_LOAD( "pr11654.8", 0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component */ - ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -ROM_START( ufosensb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for code */ - ROM_LOAD( "k108.ic18.3-4s", 0x20000, 0x8000, CRC(6b1d0955) SHA1(dbda145d40eaecd30c1d55a9675c58a2967c20c4) ) - ROM_CONTINUE( 0x00000, 0x8000 ) /* Now load the operands in RAM */ - ROM_LOAD( "k109.ic19.4s", 0x30000, 0x8000, CRC(fc543b26) SHA1(b9e1d2ca6f9811bf341edf104fe209dbf56e4b2d) ) - ROM_CONTINUE( 0x10000, 0x8000 ) - ROM_LOAD( "k110.ic20.4-5s", 0x38000, 0x8000, CRC(6ba2dc77) SHA1(09a65f55988ae28e285d402af9a2a1f1dc05a82c) ) - ROM_CONTINUE( 0x18000, 0x8000 ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */ - ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) ) /* label on chip is "k111.ic168.10v" */ - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "epr11664.4", 0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) ) /* label on chip is "k101.ic72.6d" */ - ROM_LOAD( "epr11665.5", 0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) ) /* label on chip is "k102.ic73.6-7d" */ - ROM_LOAD( "epr11666.6", 0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) ) /* label on chip is "k103.ic74.7d" */ - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "epr11658.87", 0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) ) /* label on chip is "k105.ic15.1-2s" */ - ROM_LOAD( "epr11657.86", 0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) ) /* label on chip is "k104.ic14.1s" */ - ROM_LOAD( "epr11660.89", 0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) ) /* label on chip is "k107.ic17.2-3s" */ - ROM_LOAD( "epr11659.88", 0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) ) /* label on chip is "k106.ic16.2s" */ - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "pr11656.20", 0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component - label on chip is "74s287.ic134.9f" */ - ROM_LOAD( "pr11655.14", 0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component - label on chip is "74s287.ic133.9e" */ - ROM_LOAD( "pr11654.8", 0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component - label on chip is "74s287.ic132.9d" */ - ROM_LOAD( "pr5317.28", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - label on chip is "74s287.ic115.8j" */ - - ROM_REGION( 0x2000, REGION_PLDS, 0 ) - ROM_LOAD( "pal6l8.ic3.1c", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6l8.ic32.2c", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6l8.ic33.2d", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6l8.ic4.1d", 0x0600, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6r4.1", 0x0800, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6r4.2", 0x0A00, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6r4.ic34.2f", 0x0C00, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal6r4.ic5.1f", 0x0E00, 0x0104, NO_DUMP ) /* PAL is read protected */ - ROM_LOAD( "pal20r4.ic69.4c", 0x1000, 0x0144, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( noboranb ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "nobo-t.bin", 0x00000, 0x8000, CRC(176fd168) SHA1(f262521f07e5340f175019e2a06a54120a4aa3b7) ) - ROM_LOAD( "nobo-r.bin", 0x10000, 0x8000, CRC(d61cf3c9) SHA1(0f80011d713c51e67853810813ebba579ade0303) ) - ROM_LOAD( "nobo-s.bin", 0x18000, 0x8000, CRC(b0e7697f) SHA1(ad5394ca629152a8c73fb85d3fce8ea620ae6ff1) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) - ROM_LOAD( "nobo-m.bin", 0x0000, 0x4000, CRC(415adf76) SHA1(fbd6f8921aa3246702983ba81fa9ae53fa10c19d) ) - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "nobo-j.bin", 0x08000, 0x8000, CRC(f12df039) SHA1(159de205f77fd74da30717054e6ddda2c0bb63d0) ) - ROM_LOAD( "nobo-k.bin", 0x00000, 0x8000, CRC(446fbcdd) SHA1(e3c8364eccfa6c8af7a57b599238b0e4ebe8cc59) ) - ROM_LOAD( "nobo-l.bin", 0x10000, 0x8000, CRC(35f396df) SHA1(ebf0a252513ae2b31ef012ac71d64fb20b8725cc) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* 128k for sprites data */ - ROM_LOAD( "nobo-q.bin", 0x00000, 0x8000, CRC(2442b86d) SHA1(2eed80e1ff9cd782990142d0d73ca4fa13db4731) ) - ROM_LOAD( "nobo-o.bin", 0x08000, 0x8000, CRC(e33743a6) SHA1(56dce565523f19e673c9272992030386ca648e41) ) - ROM_LOAD( "nobo-p.bin", 0x10000, 0x8000, CRC(7fbba01d) SHA1(ded22806ae0d6642b45cd33c0ceab67390a6e319) ) - ROM_LOAD( "nobo-n.bin", 0x18000, 0x8000, CRC(85e7a29f) SHA1(0ca77c66599650f157450d703682ec114f0453cf) ) - - ROM_REGION( 0x0400, REGION_PROMS, 0 ) - ROM_LOAD( "nobo_pr.16d", 0x0000, 0x0100, CRC(95010ac2) SHA1(deaf84b408cd1f3396eb851ef04cc1654d5e9a46) ) /* palette red component */ - ROM_LOAD( "nobo_pr.15d", 0x0100, 0x0100, CRC(c55aac0c) SHA1(0f7f2d383a90e9f7f319626b4d5565805f44a1f9) ) /* palette green component */ - ROM_LOAD( "nobo_pr.14d", 0x0200, 0x0100, CRC(de394cee) SHA1(511c53f22459e5e238b48685f85b10f5e15f2ac1) ) /* palette blue component */ - ROM_LOAD( "nobo_pr.13a", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */ -ROM_END - -static DRIVER_INIT( regulus ) { regulus_decode(); } -static DRIVER_INIT( mrviking ) { mrviking_decode(); } -static DRIVER_INIT( swat ) { swat_decode(); } -static DRIVER_INIT( flicky ) { flicky_decode(); } -static DRIVER_INIT( wmatch ) { wmatch_decode(); } -static DRIVER_INIT( bullfgtj ) { bullfgtj_decode(); } -static DRIVER_INIT( spatter ) { spatter_decode(); } -static DRIVER_INIT( pitfall2 ) { pitfall2_decode(); } -static DRIVER_INIT( nprinces ) { nprinces_decode(); } -static DRIVER_INIT( seganinj ) { seganinj_decode(); } -static DRIVER_INIT( imsorry ) { imsorry_decode(); } -static DRIVER_INIT( teddybb ) { teddybb_decode(); } -static DRIVER_INIT( hvymetal ) { hvymetal_decode(); } -static DRIVER_INIT( myheroj ) { myheroj_decode(); } -static DRIVER_INIT( 4dwarrio ) { fdwarrio_decode(); } -static DRIVER_INIT( wboy ) { astrofl_decode(); } -static DRIVER_INIT( wboy2 ) { wboy2_decode(); } -static DRIVER_INIT( gardia ) { gardia_decode(); } -static DRIVER_INIT( gardiab ) { gardiab_decode(); } - -void mc8123_decrypt_0043(void); -static DRIVER_INIT( wbml ) { mc8123_decrypt_0043(); } - -void mc8123_decrypt_0064(void); -static DRIVER_INIT( ufosensi ) { mc8123_decrypt_0064(); } - - -static DRIVER_INIT( myherok ) -{ - int A; - unsigned char *rom; - - /* additionally to the usual protection, all the program ROMs have data lines */ - /* D0 and D1 swapped. */ - rom = memory_region(REGION_CPU1); - for (A = 0;A < 0xc000;A++) - rom[A] = (rom[A] & 0xfc) | ((rom[A] & 1) << 1) | ((rom[A] & 2) >> 1); - - /* the tile gfx ROMs are mangled as well: */ - rom = memory_region(REGION_GFX1); - - /* the first ROM has data lines D0 and D6 swapped. */ - for (A = 0x0000;A < 0x4000;A++) - rom[A] = (rom[A] & 0xbe) | ((rom[A] & 0x01) << 6) | ((rom[A] & 0x40) >> 6); - - /* the second ROM has data lines D1 and D5 swapped. */ - for (A = 0x4000;A < 0x8000;A++) - rom[A] = (rom[A] & 0xdd) | ((rom[A] & 0x02) << 4) | ((rom[A] & 0x20) >> 4); - - /* the third ROM has data lines D0 and D6 swapped. */ - for (A = 0x8000;A < 0xc000;A++) - rom[A] = (rom[A] & 0xbe) | ((rom[A] & 0x01) << 6) | ((rom[A] & 0x40) >> 6); - - /* also, all three ROMs have address lines A4 and A5 swapped. */ - for (A = 0;A < 0xc000;A++) - { - int A1; - unsigned char temp; - - A1 = (A & 0xffcf) | ((A & 0x0010) << 1) | ((A & 0x0020) >> 1); - if (A < A1) - { - temp = rom[A]; - rom[A] = rom[A1]; - rom[A1] = temp; - } - } - - myheroj_decode(); -} - -static DRIVER_INIT( noboranb ) -{ - /* Patch to get PRG ROMS ('T', 'R' and 'S) status as "GOOD" in the "test mode" */ - /* not really needed */ - -// UINT8 *ROM = memory_region(REGION_CPU1); - -// ROM[0x3296] = 0x18; // 'jr' instead of 'jr z' - 'T' (PRG Main ROM) -// ROM[0x32be] = 0x18; // 'jr' instead of 'jr z' - 'R' (Banked ROM 1) -// ROM[0x32ea] = 0x18; // 'jr' instead of 'jr z' - 'S' (Banked ROM 2) - - /* Patch to avoid the internal checksum that will hang the game after an amount of time - (check code at 0x3313 in 'R' (banked ROM 1)) */ - -// ROM[0x10000 + 0 * 0x8000 + 0x3347] = 0x18; // 'jr' instead of 'jr z' - - /* Patch to get sound in later levels(the program enters into a tight loop)*/ - UINT8 *ROM2 = memory_region(REGION_CPU2); - - ROM2[0x02f9] = 0x28;//'jr z' instead of 'jr' -} - - -static DRIVER_INIT( bootleg ) -{ - memory_set_decrypted_region(0, 0x0000, 0x7fff, memory_region(REGION_CPU1) + 0x10000); -} - - -static DRIVER_INIT( bootlegb ) -{ - memory_set_decrypted_region(0, 0x0000, 0x7fff, memory_region(REGION_CPU1) + 0x20000); - memory_configure_bank_decrypted(1, 0, 4, memory_region(REGION_CPU1) + 0x30000, 0x4000); -} - - -GAME( 1983, starjack, 0, small, starjack, 0, ROT270, "Sega", "Star Jacker (Sega)", GAME_SUPPORTS_SAVE ) -GAME( 1983, starjacs, starjack, small, starjacs, 0, ROT270, "Stern", "Star Jacker (Stern)", GAME_SUPPORTS_SAVE ) -GAME( 1983, regulus, 0, small, regulus, regulus, ROT270, "Sega", "Regulus (New Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1983, reguluso, regulus, small, reguluso, regulus, ROT270, "Sega", "Regulus (Old Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1983, regulusu, regulus, small, regulus, 0, ROT270, "Sega", "Regulus (not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1983, upndown, 0, system1, upndown, nprinces, ROT270, "Sega", "Up'n Down", GAME_SUPPORTS_SAVE ) -GAME( 1983, upndownu, upndown, system1, upndown, 0, ROT270, "Sega", "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1984, mrviking, 0, small, mrviking, mrviking, ROT270, "Sega", "Mister Viking", GAME_SUPPORTS_SAVE ) -GAME( 1984, mrvikngj, mrviking, small, mrvikngj, mrviking, ROT270, "Sega", "Mister Viking (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1984, swat, 0, system1, swat, swat, ROT270, "Coreland / Sega", "SWAT", GAME_SUPPORTS_SAVE ) -GAME( 1984, flicky, 0, system1, flicky, flicky, ROT0, "Sega", "Flicky (128k Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1984, flickyo, flicky, system1, flicky, flicky, ROT0, "Sega", "Flicky (64k Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1984, wmatch, 0, small, wmatch, wmatch, ROT270, "Sega", "Water Match", GAME_SUPPORTS_SAVE ) -GAME( 1984, bullfgt, 0, system1, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "Bullfight", GAME_SUPPORTS_SAVE ) -GAME( 1984, thetogyu, bullfgt, system1, bullfgt, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1984, spatter, 0, small, spatter, spatter, ROT0, "Sega", "Spatter", GAME_SUPPORTS_SAVE ) -GAME( 1984, ssanchan, spatter, small, spatter, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1985, pitfall2, 0, pitfall2, pitfall2, pitfall2, ROT0, "Sega", "Pitfall II", GAME_SUPPORTS_SAVE ) -GAME( 1985, pitfallu, pitfall2, pitfall2, pitfallu, 0, ROT0, "Sega", "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1985, seganinj, 0, system1, seganinj, seganinj, ROT0, "Sega", "Sega Ninja", GAME_SUPPORTS_SAVE ) -GAME( 1985, seganinu, seganinj, system1, seganinj, 0, ROT0, "Sega", "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1985, ninja, seganinj, system1, seganinj, seganinj, ROT0, "Sega", "Ninja", GAME_SUPPORTS_SAVE ) -GAME( 1985, nprinces, seganinj, system1, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (64k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) -GAME( 1985, nprincso, seganinj, system1, seganinj, nprinces, ROT0, "Sega", "Ninja Princess (128k Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1985, nprincsu, seganinj, system1, seganinj, 0, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1985, nprincsb, seganinj, system1, seganinj, flicky, ROT0, "bootleg?", "Ninja Princess (128k Ver. bootleg?)", GAME_SUPPORTS_SAVE ) -GAME( 1985, imsorry, 0, system1, imsorry, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (US)", GAME_SUPPORTS_SAVE ) -GAME( 1985, imsorryj, imsorry, system1, imsorry, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1985, teddybb, 0, system1, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (New Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1985, teddybbo, teddybb, system1, teddybb, teddybb, ROT0, "Sega", "TeddyBoy Blues (Old Ver.)", GAME_SUPPORTS_SAVE ) -GAME( 1985, hvymetal, 0, hvymetal, hvymetal, hvymetal, ROT0, "Sega", "Heavy Metal", GAME_SUPPORTS_SAVE ) -GAME( 1985, myhero, 0, system1, myhero, 0, ROT0, "Sega", "My Hero (US)", GAME_SUPPORTS_SAVE ) -GAME( 1985, sscandal, myhero, system1, myhero, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1985, myherok, myhero, system1, myhero, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE ) -GAME( 1985, shtngmst, 0, shtngmst, shtngmst, 0, ROT0, "Sega", "Shooting Master", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) /* 8751 protection, mcu = 315-5159 */ -GAME( 1985, shtngmsa, shtngmst, shtngmst, shtngmst, 0, ROT0, "Sega [EVG]", "Shooting Master (EVG)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) /* 8751 protection, mcu = 315-5159 */ -GAME( 1985, chplft, 0, chplft, chplft, 0, ROT0, "Sega", "Choplifter", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) /* 8751 protection */ -GAME( 1985, chplftb, chplft, chplft, chplft, 0, ROT0, "Sega", "Choplifter (alternate)", GAME_SUPPORTS_SAVE ) -GAME( 1985, chplftbl, chplft, chplft, chplft, 0, ROT0, "bootleg", "Choplifter (bootleg)", GAME_SUPPORTS_SAVE ) -GAME( 1985, 4dwarrio, 0, system1, 4dwarrio, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors", GAME_SUPPORTS_SAVE ) -GAME( 1986, brain, 0, brain, brain, 0, ROT0, "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE ) -GAME( 1986, raflesia, 0, system1, raflesia, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboy, 0, system1, wboy, wboy, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, new encryption)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboyo, wboy, system1, wboy, hvymetal, ROT0, "Sega (Escape license)", "Wonder Boy (set 1, old encryption)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboy2, wboy, system1, wboy, wboy2, ROT0, "Sega (Escape license)", "Wonder Boy (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboy2u, wboy, system1, wboy, 0, ROT0, "Sega (Escape license)", "Wonder Boy (set 2 not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboy3, wboy, system1, wboy, hvymetal, ROT0, "Sega (Escape license)", "Wonder Boy (set 3)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboy4, wboy, system1, wboy, 4dwarrio, ROT0, "Sega (Escape license)", "Wonder Boy (set 4)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboyu, wboy, system1, wboyu, 0, ROT0, "Sega (Escape license)", "Wonder Boy (not encrypted)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wboysys2, wboy, wbml, wboysys2, wboy, ROT0, "Sega (Escape license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE ) -GAME( 1986, wbdeluxe, wboy, system1, wbdeluxe, 0, ROT0, "Sega (Escape license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE ) -GAME( 1986, gardia, 0, brain, gardia, gardia, ROT270, "Sega / Coreland", "Gardia", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) -GAME( 1986, gardiab, gardia, brain, gardia, gardiab, ROT270, "bootleg", "Gardia (bootleg)", GAME_NOT_WORKING | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1986, noboranb, 0, noboranb, noboranb, noboranb, ROT270, "bootleg", "Noboranka (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1987, blockgal, 0, blockgal, blockgal, 0, ROT90, "Sega / Vic Tokai", "Block Gal", GAME_NOT_WORKING | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) -GAME( 1987, blckgalb, blockgal, blockgal, blockgal, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1987, tokisens, 0, wbml, tokisens, 0, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1987, wbml, 0, wbml, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan New Ver.)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1987, wbmljo, wbml, wbml, wbml, wbml, ROT0, "Sega / Westone", "Wonder Boy in Monster Land (Japan Old Ver.)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1987, wbmljb, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan not encrypted)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1987, wbmlb, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) -GAME( 1987, wbmlbg, wbml, wbml, wbml, bootlegb, ROT0, "bootleg", "Wonder Boy in Monster Land (Galaxy Electronics English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE) -GAME( 1987, dakkochn, 0, chplft, chplft, 0, ROT0, "Sega", "DakkoChan Jansoh", GAME_NOT_WORKING | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) -GAME( 1988, ufosensi, 0, ufosensi, ufosensi, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan", GAME_SUPPORTS_SAVE ) -GAME( 1988, ufosensb, ufosensi, ufosensi, ufosensi, bootlegb, ROT0, "bootleg", "Ufo Senshi Yohko Chan (not encrypted)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/system16.c b/src/drivers/system16.c deleted file mode 100644 index bfa67927a..000000000 --- a/src/drivers/system16.c +++ /dev/null @@ -1,2753 +0,0 @@ -/* - Sega System16 Hardware - major cleanup in progress - still a lot to do! - - see vidhrdw/system16.c for more information - -Changes: - -04/28/04 Charles MacDonald -- Added MSM5205 sample playback to tturfbl. - -03/17/04 -- Added correctly dumped ROM set for eswat to replace the old one. Game is encrypted and unplayable. -- Moved Ace Attacker here from System 18 driver. Game is encrypted and unplayable. -- Added sound support for tturf, tturfu, tturfbl (no samples), fpointbl, fpointbj -- Fixed toryumon RAM test -- Cleaned up timscannr, toryumon drivers -03/11/04 -- Cleaned up riotcity, aurail, altbeast, bayroute drivers -- Added missing coin control to sys16_coinctrl_w -- Removed 'extra' RAM in some drivers and replaced with sys16_tilebank_w - -To do: -- tturf and tturfu have some invalid data written to the UPD7759. I think this causes the 'pop' sound when level 1 starts. -- tturfbl has some serious problems with tilemap scrolling -- bayroute has a bad sprite in the door of the level 1 boss -- altbeast writes to mirrored sprite RAM at $441000 -- tturfu has bad single sprite frame when main character walks -- dduxbl has some 'stuck' sprites - -Notes: -- toryumon RAM test accesses mirrored work RAM. Maybe there's a better way to support this than using AM_MASK. -- I separated the fpoint and fpointbl,fpointbj machine drivers as the latter two have different sound hardware, - but the original does not. I think this creates a dependancy where fpointbl.zip needs flpoint.001 from fpointbj.zip, - as fpointbl uses fpoint ROMs (it's parent), it's own, and the sound ROM from fpointbj. - So add fpoint.001 to fpointbl.zip for it to work. - I made fpointbl the parent of fpointbj so it would use the proper memory map for the sound hardware. -*/ - -/***************************************************************************/ -/* - ASTORMBL - 3. In the ending, the 3 heroes are floating into a half bubble. (see picture). - Also colour problems during ending as well. - 4. In the later Shooting gallery stage (like inside the car shop and the factory (mission 3)), - there is some garbage graphics (sprite of death monsters that appear where they should not) - - working: - Alex Kidd - Alien Storm (bootleg) - Alien Syndrome - Altered Beast (Ver 1) - Altered Beast (Ver 2) (No Sound) - Atomic Point (No Sound) - Aurail (Speech quality sounds poor) - Aurail (317-0168) - Bay Route - Body Slam - Dump Matsumoto (Japan, Body Slam) - Dynamite Dux (bootleg) - Enduro Racer (bootleg) - Enduro Racer (custom bootleg) - E-Swat (bootleg) - Fantasy Zone (Old Ver.) - Fantasy Zone (New Ver.) - Flash Point (bootleg) - Golden Axe (Ver 1) - Golden Axe (Ver 2) - Hang-on - Heavyweight Champ: some minor graphics glitches - Major League: No game over. - Moonwalker (bootleg): Music Speed varies - Outrun (set 1) - Outrun (set 2) - Outrun (custom bootleg) - Passing Shot (bootleg) - Passing Shot (4 player bootleg) - Quartet: Glitch on highscore list - Quartet (Japan): Glitch on highscore list - Quartet 2: Glitch on highscore list - Riot City - SDI - Shadow Dancer - Shadow Dancer (Japan) - Shinobi - Shinobi (Sys16A Bootleg?) - Space Harrier - Super Hangon (bootleg) - Tetris (bootleg) - Time Scanner - Toryumon - Tough Turf (Japan) (No Sound) - Tough Turf (US) (No Sound) - Tough Turf (bootleg) (No Speech Roms) - Wonderboy 3 - Monster Lair - Wonderboy 3 - Monster Lair (bootleg) - Wrestle War - - not really working: - Shadow Dancer (bootleg) - - protected: - Alex Kidd (jpn?) - Alien Syndrome - Alien Syndrome - Alien Syndrome (Japan) - Alien Storm - Alien Storm (2 Player) - Bay Route (317-0116) - Bay Route (protected bootleg 1) - Bay Route (protected bootleg 2) - Enduro Racer - E-Swat - Flash Point - Golden Axe (Ver 1 317-0121 Japan) - Golden Axe (Ver 2 317-0110) - Golden Axe (Ver 2 317-0122) - Golden Axe (protected bootleg) - Jyuohki (Japan, altered beast) - Moonwalker (317-0158) - Moonwalker (317-0159) - Passing Shot (317-0080) - Shinobi (Sys16B 317-0049) - Shinobi (Sys16A 317-0050) - SDI (Japan, old version) - Super Hangon - Tetris (Type A) - Tetris (Type B 317-0092) - Wonderboy 3 - Monster Lair (317-0089) - - protected (No driver): - Ace Attacker - Action Fighter - Bloxeed - Clutch Hitter - Cotton (Japan) - Cotton - DD Crew - Dunk Shot - Excite League - Laser Ghost - MVP - Ryukyu - Super Leagu - Turbo Outrun - Turbo Outrun (Set 2) -*/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "cpu/i8039/i8039.h" -#include "system16.h" -#include "cpu/m68000/m68000.h" -#include "machine/fd1094.h" -#include "sound/msm5205.h" -#include "sound/2151intf.h" -#include "sound/upd7759.h" - -void fd1094_machine_init(void); -void fd1094_driver_init(void); - -static void sys16_video_config(void (*update)(void), int sprxoffs, int *bank) -{ - static int bank_default[16] = - { - 0x0,0x1,0x2,0x3, - 0x4,0x5,0x6,0x7, - 0x8,0x9,0xa,0xb, - 0xc,0xd,0xe,0xf - }; - - sys16_update_proc = update; - sys16_sprxoffset = sprxoffs; - sys16_obj_bank = bank ? bank : bank_default; -} - -/***************************************************************************/ - -// 7751 emulation -WRITE8_HANDLER( sys16_7751_audio_8255_w ); - READ8_HANDLER( sys16_7751_audio_8255_r ); - READ8_HANDLER( sys16_7751_sh_rom_r ); - READ8_HANDLER( sys16_7751_sh_t1_r ); - READ8_HANDLER( sys16_7751_sh_command_r ); -WRITE8_HANDLER( sys16_7751_sh_dac_w ); -WRITE8_HANDLER( sys16_7751_sh_busy_w ); -WRITE8_HANDLER( sys16_7751_sh_offset_a0_a3_w ); -WRITE8_HANDLER( sys16_7751_sh_offset_a4_a7_w ); -WRITE8_HANDLER( sys16_7751_sh_offset_a8_a11_w ); -WRITE8_HANDLER( sys16_7751_sh_rom_select_w ); - -/***************************************************************************/ - -static UINT16 coinctrl; - -static WRITE16_HANDLER( sys16_3d_coinctrl_w ) -{ - if( ACCESSING_LSB ) -{ - coinctrl = data&0xff; - sys16_refreshenable = coinctrl & 0x10; - coin_counter_w(0,coinctrl & 0x01); - /* bit 6 is also used (0 in fantzone) */ - - /* Hang-On, Super Hang-On, Space Harrier, Enduro Racer */ - set_led_status(0,coinctrl & 0x04); - - /* Space Harrier */ - set_led_status(1,coinctrl & 0x08); - } -} - -static INTERRUPT_GEN( sys16_interrupt ) -{ - cpunum_set_input_line(0, 4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */ -} - - - -/***************************************************************************/ -/* - Tough Turf (Datsu bootleg) sound emulation - - Memory map - - 0000-7fff : ROM (fixed, tt014d68 0000-7fff) - 8000-bfff : ROM (banked) - e000 : Bank control - e800 : Sound command latch - f000 : MSM5205 sample data buffer - f800-ffff : Work RAM - - Interrupts - - IRQ = Read sound command from $E800 - NMI = Copy data from fixed/banked ROM to $F000 - - Bank control values - - 00 = tt014d68 8000-bfff - 01 = tt014d68 c000-ffff - 02 = tt0246ff 0000-3fff - 03 = tt0246ff 4000-7fff - 04 = tt0246ff 8000-bfff - - The sample sound codes in the sound test are OK, but in-game sample playback is bad. - There seems to be more data in the high bits of the ROM bank control word which may be related. -*/ - -static int sample_buffer = 0; -static int sample_select = 0; - -static WRITE8_HANDLER( tturfbl_msm5205_data_w ) -{ - sample_buffer = data; -} - -static void tturfbl_msm5205_callback(int data) -{ - MSM5205_data_w(0, (sample_buffer >> 4) & 0x0F); - sample_buffer <<= 4; - sample_select ^= 1; - if(sample_select == 0) - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); -} - -static struct MSM5205interface tturfbl_msm5205_interface = -{ - tturfbl_msm5205_callback, - MSM5205_S48_4B -}; - - -UINT8 *tturfbl_soundbank_ptr = NULL; /* Pointer to currently selected portion of ROM */ - -static READ8_HANDLER( tturfbl_soundbank_r ) -{ - if(tturfbl_soundbank_ptr) return tturfbl_soundbank_ptr[offset & 0x3fff]; - return 0x80; -} - -static WRITE8_HANDLER( tturfbl_soundbank_w ) -{ - UINT8 *mem = memory_region(REGION_CPU2); - - switch(data) - { - case 0: - tturfbl_soundbank_ptr = &mem[0x18000]; /* tt014d68 8000-bfff */ - break; - case 1: - tturfbl_soundbank_ptr = &mem[0x1C000]; /* tt014d68 c000-ffff */ - break; - case 2: - tturfbl_soundbank_ptr = &mem[0x20000]; /* tt0246ff 0000-3fff */ - break; - case 3: - tturfbl_soundbank_ptr = &mem[0x24000]; /* tt0246ff 4000-7fff */ - break; - case 4: - tturfbl_soundbank_ptr = &mem[0x28000]; /* tt0246ff 8000-bfff */ - break; - case 8: - tturfbl_soundbank_ptr = mem; - break; - default: - tturfbl_soundbank_ptr = NULL; - logerror("Invalid bank setting %02X (%04X)\n", data, activecpu_get_pc()); - break; - } -} - -static ADDRESS_MAP_START( tturfbl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_READ(tturfbl_soundbank_r) - AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START(tturfbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_NOP) /* ROM bank */ - AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w) - AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tturfbl_sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0x80, 0x80) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tturfbl_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) - AM_RANGE(0x80, 0x80) AM_WRITE(MWA8_NOP) -ADDRESS_MAP_END - -/*******************************************************************************/ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(MWA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) -ADDRESS_MAP_END - -// 7751 Sound -static ADDRESS_MAP_START( sound_readmem_7751, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport_7751, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x01, 0x01) AM_READ(YM2151_status_port_0_r) -// AM_RANGE(0x0e, 0x0e) AM_READ(sys16_7751_audio_8255_r) - AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport_7751, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x80, 0x80) AM_WRITE(sys16_7751_audio_8255_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_7751, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_7751, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport_7751, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(I8039_t1, I8039_t1) AM_READ(sys16_7751_sh_t1_r) - AM_RANGE(I8039_p2, I8039_p2) AM_READ(sys16_7751_sh_command_r) - AM_RANGE(I8039_bus, I8039_bus) AM_READ(sys16_7751_sh_rom_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport_7751, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(I8039_p1, I8039_p1) AM_WRITE(sys16_7751_sh_dac_w) - AM_RANGE(I8039_p2, I8039_p2) AM_WRITE(sys16_7751_sh_busy_w) - AM_RANGE(I8039_p4, I8039_p4) AM_WRITE(sys16_7751_sh_offset_a0_a3_w) - AM_RANGE(I8039_p5, I8039_p5) AM_WRITE(sys16_7751_sh_offset_a4_a7_w) - AM_RANGE(I8039_p6, I8039_p6) AM_WRITE(sys16_7751_sh_offset_a8_a11_w) - AM_RANGE(I8039_p7, I8039_p7) AM_WRITE(sys16_7751_sh_rom_select_w) -ADDRESS_MAP_END - -// 7759 -static ADDRESS_MAP_START( sound_readmem_7759, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0xdfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - - -static WRITE8_HANDLER( upd7759_bank_w ) //* -{ - int offs, size = memory_region_length(REGION_CPU2) - 0x10000; - - upd7759_reset_w(0, data & 0x40); - offs = 0x10000 + (data * 0x4000) % size; - memory_set_bankptr(1, memory_region(REGION_CPU2) + offs); -} - - -static ADDRESS_MAP_START( sound_writeport_7759, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_FLAGS( AMEF_ABITS(8) ) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x40, 0x40) AM_WRITE(upd7759_bank_w) - AM_RANGE(0x80, 0x80) AM_WRITE(upd7759_0_port_w) -ADDRESS_MAP_END - - -static WRITE16_HANDLER( sound_command_w ) -{ - if( ACCESSING_LSB ) -{ - soundlatch_w( 0,data&0xff ); - cpunum_set_input_line( 1, 0, HOLD_LINE ); - } -} - -static WRITE16_HANDLER( sound_command_nmi_w ) -{ - if( ACCESSING_LSB ) -{ - soundlatch_w( 0,data&0xff ); - cpunum_set_input_line(1, INPUT_LINE_NMI, PULSE_LINE); - } -} - -//static UINT16 coinctrl; - - -static WRITE16_HANDLER( sys16_coinctrl_w ) -{ - if( ACCESSING_LSB ) -{ - coinctrl = data&0xff; - sys16_refreshenable = coinctrl & 0x20; - set_led_status(1,coinctrl & 0x08); - set_led_status(0,coinctrl & 0x04); - coin_counter_w(1,coinctrl & 0x02); - coin_counter_w(0,coinctrl & 0x01); - /* bit 6 is also used (1 most of the time; 0 in dduxbl, sdi, wb3; - tturf has it normally 1 but 0 after coin insertion) */ - /* eswat sets bit 4 */ - } -} - -/***************************************************************************/ - -static MACHINE_DRIVER_START( system16 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 10000000) - MDRV_CPU_VBLANK_INT(sys16_interrupt,1) - - MDRV_CPU_ADD_TAG("sound", Z80, 4000000) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 28*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MDRV_GFXDECODE(sys16_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(2048*ShadowColorsMultiplier) - - MDRV_VIDEO_START(system16) - MDRV_VIDEO_UPDATE(system16) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD_TAG("2151", YM2151, 4000000) - MDRV_SOUND_ROUTE(0, "left", 0.32) - MDRV_SOUND_ROUTE(1, "right", 0.32) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( system16_7759 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_PROGRAM_MAP(sound_readmem_7759,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport_7759) - - /* sound hardware */ - MDRV_SOUND_ADD_TAG("7759", UPD7759, UPD7759_STANDARD_CLOCK) - MDRV_SOUND_CONFIG(sys16_upd7759_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.48) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.48) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( system16_7751 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_PROGRAM_MAP(sound_readmem_7751,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport_7751,sound_writeport_7751) - - MDRV_CPU_ADD(N7751, 6000000/15) - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(readmem_7751,writemem_7751) - MDRV_CPU_IO_MAP(readport_7751,writeport_7751) - - /* sound hardware */ - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) -MACHINE_DRIVER_END - -/***************************************************************************/ - -static WRITE16_HANDLER( sys16_tilebank_w ) -{ - if(ACCESSING_LSB) - { - switch(offset & 1) - { - case 0: - sys16_tile_bank0 = data & 0x0F; - break; - case 1: - sys16_tile_bank1 = data & 0x0F; - break; - } - } -} - -static void set_tile_bank( int data ) -{ - sys16_tile_bank1 = data&0xf; - sys16_tile_bank0 = (data>>4)&0xf; -} - -#if 0 -static void set_tile_bank18( int data ) -{ - sys16_tile_bank0 = data&0xf; - sys16_tile_bank1 = (data>>4)&0xf; -} -#endif - -static void set_fg_page( int data ) -{ - sys16_fg_page[0] = data>>12; - sys16_fg_page[1] = (data>>8)&0xf; - sys16_fg_page[2] = (data>>4)&0xf; - sys16_fg_page[3] = data&0xf; -} - -static void set_bg_page( int data ) -{ - sys16_bg_page[0] = data>>12; - sys16_bg_page[1] = (data>>8)&0xf; - sys16_bg_page[2] = (data>>4)&0xf; - sys16_bg_page[3] = data&0xf; -} - - - - - -/***************************************************************************/ -/***************************************************************************/ -/***************************************************************************/ - - - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - - -/***************************************************************************/ - -INPUT_PORTS_START( aliensyn ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "127 (Cheat)") - PORT_DIPNAME( 0x30, 0x30, "Timer" ) - PORT_DIPSETTING( 0x00, "120" ) - PORT_DIPSETTING( 0x10, "130" ) - PORT_DIPSETTING( 0x20, "140" ) - PORT_DIPSETTING( 0x30, "150" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -/****************************************************************************/ - - -/***************************************************************************/ - - -static ADDRESS_MAP_START( bayroute_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x500000, 0x503fff) AM_READ(SYS16_MRA16_WORKINGRAM) - AM_RANGE(0x600000, 0x600fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x700000, 0x70ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x710000, 0x710fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x800000, 0x800fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x901002, 0x901003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0x901006, 0x901007) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0x901000, 0x901001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0x902002, 0x902003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0x902000, 0x902001) AM_READ(input_port_4_word_r) // dip2 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bayroute_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x100003) AM_WRITE(MWA16_NOP) // tilebank control? - AM_RANGE(0x500000, 0x503fff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) - AM_RANGE(0x600000, 0x600fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x710000, 0x710fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x800000, 0x800fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w) - AM_RANGE(0xff0020, 0xff003f) AM_WRITE(MWA16_NOP) // config regs -ADDRESS_MAP_END - -/***************************************************************************/ - -static void bayroute_update_proc( void ) -{ - set_fg_page( sys16_textram[0x740] ); - set_bg_page( sys16_textram[0x741] ); - sys16_fg_scrolly = sys16_textram[0x748]; - sys16_bg_scrolly = sys16_textram[0x749]; - sys16_fg_scrollx = sys16_textram[0x74c]; - sys16_bg_scrollx = sys16_textram[0x74d]; -} - -static MACHINE_RESET( bayroute ) -{ - static int bank[16] = { - 0,0,0,0, - 0,0,0,3, - 0,0,0,2, - 0,1,0,0 - }; - sys16_obj_bank = bank; - sys16_update_proc = bayroute_update_proc; - sys16_spritesystem = sys16_sprite_shinobi; -} - -static DRIVER_INIT( bayrtbl1 ) -{ - machine_reset_sys16_onetime(machine); -} -/***************************************************************************/ - -INPUT_PORTS_START( bayroute ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "5" ) - PORT_DIPSETTING( 0x00, "Unlimited (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "10000" ) - PORT_DIPSETTING( 0x20, "15000" ) - PORT_DIPSETTING( 0x10, "20000" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0xc0, "A" ) - PORT_DIPSETTING( 0x80, "B" ) - PORT_DIPSETTING( 0x40, "C" ) - PORT_DIPSETTING( 0x00, "D" ) - -INPUT_PORTS_END - -/***************************************************************************/ - -static MACHINE_DRIVER_START( bayroute ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(bayroute_readmem,bayroute_writemem) - - MDRV_MACHINE_RESET(bayroute) -MACHINE_DRIVER_END - -/*************************************************************************** - - Body Slam - -***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - -static ADDRESS_MAP_START( dduxbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41004, 0xc41005) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dduxbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w) - AM_RANGE(0xc46000, 0xc4603f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) - AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(MWA16_NOP) // config regs - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - -static void dduxbl_update_proc( void ) -{ - sys16_fg_scrollx = (sys16_extraram2[0x0018/2] ^ 0xffff) & 0x01ff; - sys16_bg_scrollx = (sys16_extraram2[0x0008/2] ^ 0xffff) & 0x01ff; - sys16_fg_scrolly = sys16_extraram2[0x0010/2] & 0x00ff; - sys16_bg_scrolly = sys16_extraram2[0x0000/2]; - - { - unsigned char lu = sys16_extraram2[0x0020/2] & 0xff; - unsigned char ru = sys16_extraram2[0x0022/2] & 0xff; - unsigned char ld = sys16_extraram2[0x0024/2] & 0xff; - unsigned char rd = sys16_extraram2[0x0026/2] & 0xff; - - if (lu==4 && ld==4 && ru==5 && rd==5) - { // fix a bug in chicago round (un-tested in MAME) - int vs=(*(UINT16 *)(&sys16_workingram[0x36ec])); - sys16_bg_scrolly = vs & 0xff; - sys16_fg_scrolly = vs & 0xff; - if (vs >= 0x100) - { - lu=0x26; ru=0x37; - ld=0x04; rd=0x15; - } else { - ld=0x26; rd=0x37; - lu=0x04; ru=0x15; - } - } - sys16_fg_page[0] = ld&0xf; - sys16_fg_page[1] = rd&0xf; - sys16_fg_page[2] = lu&0xf; - sys16_fg_page[3] = ru&0xf; - - sys16_bg_page[0] = ld>>4; - sys16_bg_page[1] = rd>>4; - sys16_bg_page[2] = lu>>4; - sys16_bg_page[3] = ru>>4; - } -} - -static MACHINE_RESET( dduxbl ) -{ - sys16_patch_code( 0x1eb2e, 0x01 ); - sys16_patch_code( 0x1eb2f, 0x01 ); - sys16_patch_code( 0x1eb3c, 0x00 ); - sys16_patch_code( 0x1eb3d, 0x00 ); - sys16_patch_code( 0x23132, 0x01 ); - sys16_patch_code( 0x23133, 0x01 ); - sys16_patch_code( 0x23140, 0x00 ); - sys16_patch_code( 0x23141, 0x00 ); - sys16_patch_code( 0x24a9a, 0x01 ); - sys16_patch_code( 0x24a9b, 0x01 ); - sys16_patch_code( 0x24aa8, 0x00 ); - sys16_patch_code( 0x24aa9, 0x00 ); -} - -static DRIVER_INIT( dduxbl ) -{ - static int bank[16] = { //* - 0,0,0,0, - 0,0,0,4, - 0,0,0,3, - 0,2,0,0 - }; - - machine_reset_sys16_onetime(machine); - sys16_video_config(dduxbl_update_proc, -0x48, bank); -} -/***************************************************************************/ - -INPUT_PORTS_START( ddux ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x06, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x18, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x40, "150000" ) - PORT_DIPSETTING( 0x60, "200000" ) - PORT_DIPSETTING( 0x20, "300000" ) - PORT_DIPSETTING( 0x00, "400000" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -INPUT_PORTS_END - -/***************************************************************************/ - -static MACHINE_DRIVER_START( dduxbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dduxbl_readmem,dduxbl_writemem) - - MDRV_MACHINE_RESET(dduxbl) -MACHINE_DRIVER_END - -/***************************************************************************/ - - - -static ADDRESS_MAP_START( eswat_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x418fff) AM_READ(SYS16_MRA16_TEXTRAM) //* - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41006, 0xc41007) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static int eswat_tilebank0; - -static WRITE16_HANDLER( eswat_tilebank0_w ) -{ - if( ACCESSING_LSB ) - { - eswat_tilebank0 = data&0xff; - } -} - - - -static ADDRESS_MAP_START( eswatbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE(eswat_tilebank0_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x418fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc80000, 0xc80001) AM_WRITE(MWA16_NOP) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - - -/***************************************************************************/ - -static void eswatbl_update_proc( void ) -{ - sys16_fg_scrollx = sys16_textram[0x8008/2] ^ 0xffff; - sys16_bg_scrollx = sys16_textram[0x8018/2] ^ 0xffff; - sys16_fg_scrolly = sys16_textram[0x8000/2]; - sys16_bg_scrolly = sys16_textram[0x8010/2]; - - set_fg_page( sys16_textram[0x8020/2] ); - set_bg_page( sys16_textram[0x8028/2] ); - - sys16_tile_bank1 = (sys16_textram[0x8030/2])&0xf; - sys16_tile_bank0 = eswat_tilebank0; -} - -static MACHINE_RESET( eswatbl ) -{ - static int bank[] = { - 0,1, 4,5, - 8,9, 12,13, - 2,3, 6,7, - 10,11, 14,15 - }; - sys16_obj_bank = bank; - sys16_sprxoffset = -0x23c; - - sys16_patch_code( 0x3897, 0x11 ); - - sys16_update_proc = eswatbl_update_proc; -} - - -static DRIVER_INIT( eswatbl ) -{ - machine_reset_sys16_onetime(machine); - sys16_rowscroll_scroll=0x8000; - sys18_splittab_fg_x=&sys16_textram[0x0f80]; -} - -/***************************************************************************/ - -INPUT_PORTS_START( eswat ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "2 Credits to Start" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Display Flip" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Time" ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) -INPUT_PORTS_END - -/***************************************************************************/ - -static MACHINE_DRIVER_START( eswatbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(eswat_readmem,eswatbl_writemem) - - MDRV_MACHINE_RESET(eswatbl) -MACHINE_DRIVER_END - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -static ADDRESS_MAP_START( fpointbl_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_ROM -// AM_RANGE(0x02002e, 0x020049) AM_READ(fp_io_service_dummy_r) - AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) - AM_RANGE(0x601000, 0x601001) AM_READ(input_port_0_word_r) // service - AM_RANGE(0x601002, 0x601003) AM_READ(input_port_1_word_r) // player1 - AM_RANGE(0x601004, 0x601005) AM_READ(input_port_2_word_r) // player2 - AM_RANGE(0x600000, 0x600001) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0x600002, 0x600003) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(SYS16_MRA16_TILERAM, SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_READWRITE(SYS16_MRA16_TEXTRAM, SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_READWRITE(SYS16_MRA16_SPRITERAM, SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) -// AM_RANGE(0x44302a, 0x44304d) AM_READ(fp_io_service_dummy_r) - AM_RANGE(0x840000, 0x840fff) AM_READWRITE(SYS16_MRA16_PALETTERAM, SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) -// AM_RANGE(0xfe0006, 0xfe0007) AM_WRITE(sound_command_w) // original -// AM_RANGE(0xfe003e, 0xfe003f) AM_READ(fp_io_service_dummy_r) - AM_RANGE(0xffc000, 0xffffff) AM_READWRITE(SYS16_MRA16_WORKINGRAM, SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - -static void fpoint_update_proc( void ) -{ - set_fg_page( sys16_textram[0x740] ); - set_bg_page( sys16_textram[0x741] ); - sys16_fg_scrolly = sys16_textram[0x748]; - sys16_bg_scrolly = sys16_textram[0x749]; - sys16_fg_scrollx = sys16_textram[0x74c]; - sys16_bg_scrollx = sys16_textram[0x74d]; -} - -static MACHINE_RESET( fpointbl ) -{ - sys16_patch_code( 0x454, 0x33 ); - sys16_patch_code( 0x455, 0xf8 ); - sys16_patch_code( 0x456, 0xe0 ); - sys16_patch_code( 0x457, 0xe2 ); - sys16_patch_code( 0x8ce8, 0x16 ); - sys16_patch_code( 0x8ce9, 0x66 ); - sys16_patch_code( 0x17687, 0x00 ); - sys16_patch_code( 0x7bed, 0x04 ); - - sys16_patch_code( 0x7ea8, 0x61 ); - sys16_patch_code( 0x7ea9, 0x00 ); - sys16_patch_code( 0x7eaa, 0x84 ); - sys16_patch_code( 0x7eab, 0x16 ); - sys16_patch_code( 0x2c0, 0xe7 ); - sys16_patch_code( 0x2c1, 0x48 ); - sys16_patch_code( 0x2c2, 0xe7 ); - sys16_patch_code( 0x2c3, 0x49 ); - sys16_patch_code( 0x2c4, 0x04 ); - sys16_patch_code( 0x2c5, 0x40 ); - sys16_patch_code( 0x2c6, 0x00 ); - sys16_patch_code( 0x2c7, 0x10 ); - sys16_patch_code( 0x2c8, 0x4e ); - sys16_patch_code( 0x2c9, 0x75 ); - - sys16_update_proc = fpoint_update_proc; -} - -static DRIVER_INIT( fpointbl ) -{ - machine_reset_sys16_onetime(machine); - sys16_video_config(fpoint_update_proc, -0xb8, NULL); -} -/***************************************************************************/ - -INPUT_PORTS_START( fpoint ) - SYS16_SERVICE - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START_TAG("IN1") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, "Clear round allowed" ) /* Use button 3 */ - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - SYS16_COINAGE -INPUT_PORTS_END - - -INPUT_PORTS_START( fpointbj ) - SYS16_SERVICE - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) /* not used according to manual */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) /* not used according to manual */ - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* not used according to manual */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) /* not used according to manual */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "2 Cell Move Mode" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - SYS16_COINAGE -INPUT_PORTS_END - -/***************************************************************************/ - -/* - Flash Point (Datsu bootlegs = fpointbl, fpointbj) - Has sound latch at $E000 instead of I/O ports $C0-FF -*/ -static ADDRESS_MAP_START( fpointbl_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) - AM_RANGE(0xf800, 0xffff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static MACHINE_DRIVER_START( fpointbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(fpointbl_map,0) - - MDRV_CPU_MODIFY("sound") - MDRV_CPU_PROGRAM_MAP(fpointbl_sound_readmem,sound_writemem) - - MDRV_MACHINE_RESET(fpointbl) -MACHINE_DRIVER_END - -/***************************************************************************/ - -static READ16_HANDLER( ga_io_players_r ) { - return (readinputport(0) << 8) | readinputport(1); -} -static READ16_HANDLER( ga_io_service_r ) -{ - return (input_port_2_word_r(0,0) << 8) | (sys16_workingram[0x2c96/2] & 0x00ff); -} - -static ADDRESS_MAP_START( goldnaxe_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x110000, 0x110fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x140000, 0x140fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x1f0000, 0x1f0003) AM_READ(SYS16_MRA16_EXTRAM) - AM_RANGE(0x200000, 0x200fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41006, 0xc41007) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xffecd0, 0xffecd1) AM_READ(ga_io_players_r) - AM_RANGE(0xffec96, 0xffec97) AM_READ(ga_io_service_r) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static WRITE16_HANDLER( ga_sound_command_w ) -{ - COMBINE_DATA( &sys16_workingram[(0xecfc-0xc000)/2] ); - if( ACCESSING_MSB ) -{ - soundlatch_w( 0,data>>8 ); - cpunum_set_input_line( 1, 0, HOLD_LINE ); - } -} - -static WRITE16_HANDLER( goldnaxe_prot_w ) -{ - sys16_workingram[(0xecd8 - 0xc000)/2] = 0x048c; - sys16_workingram[(0xecda - 0xc000)/2] = 0x159d; - sys16_workingram[(0xecdc - 0xc000)/2] = 0x26ae; - sys16_workingram[(0xecde - 0xc000)/2] = 0x37bf; - COMBINE_DATA( &sys16_workingram[(0xec1c-0xc000)/2] ); -} - -static ADDRESS_MAP_START( goldnaxe_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x110000, 0x110fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x140000, 0x140fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x1f0000, 0x1f0003) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) - AM_RANGE(0x200000, 0x200fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc43000, 0xc43001) AM_WRITE(MWA16_NOP) // ? -// AM_RANGE(0xfe0006, 0xfe0007) AM_WRITE(MWA16_NOP) I think this is the real sound out - AM_RANGE(0xffec1c, 0xffec1d) AM_WRITE(goldnaxe_prot_w)// how does this really work? - AM_RANGE(0xffecfc, 0xffecfd) AM_WRITE(ga_sound_command_w)// probably just a buffer - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) /* fails SCRATCH RAM test because of hacks */ -// AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(MWA15_NOP) /* 0x400 bytes; battery backed up */ -ADDRESS_MAP_END - -/***************************************************************************/ - -static void goldnaxe_update_proc( void ) -{ - set_fg_page( sys16_textram[0x740] ); - set_bg_page( sys16_textram[0x741] ); - sys16_fg_scrolly = sys16_textram[0x748]; - sys16_bg_scrolly = sys16_textram[0x749]; - sys16_fg_scrollx = sys16_textram[0x74c]; - sys16_bg_scrollx = sys16_textram[0x74d]; - - set_tile_bank( sys16_workingram[0x2c94/2] ); -} - -static MACHINE_RESET( goldnaxe ) -{ - static int bank[16] = { - 0,1,4,5, - 8,9,0,0, - 2,3,6,7, - 10,11,0,0 - }; - sys16_obj_bank = bank; - -// protection patch; no longer needed -// sys16_patch_code( 0x3CB2, 0x60 ); -// sys16_patch_code( 0x3CB3, 0x1e ); - - sys16_sprxoffset = -0xb8; - sys16_update_proc = goldnaxe_update_proc; -} - - - -static DRIVER_INIT( goldnabl ) -{ - machine_reset_sys16_onetime(machine); -} - -/***************************************************************************/ - -INPUT_PORTS_START( goldnaxe ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, "Credits needed" ) - PORT_DIPSETTING( 0x01, "1 to start, 1 to continue" ) - PORT_DIPSETTING( 0x00, "2 to start, 1 to continue" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x0c, "2" ) - PORT_DIPSETTING( 0x04, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, "Energy Meter" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/***************************************************************************/ - -static MACHINE_DRIVER_START( goldnaxe ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(goldnaxe_readmem,goldnaxe_writemem) - - MDRV_MACHINE_RESET(goldnaxe) -MACHINE_DRIVER_END - -/***************************************************************************/ - - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - -static ADDRESS_MAP_START( passsht_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41004, 0xc41005) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( passsht_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -static int passht4b_io1_val; -static int passht4b_io2_val; -static int passht4b_io3_val; - -static READ16_HANDLER( passht4b_service_r ) -{ - UINT16 val=input_port_2_word_r(offset,0); - if(!(readinputport(0) & 0x40)) val&=0xef; - if(!(readinputport(1) & 0x40)) val&=0xdf; - if(!(readinputport(5) & 0x40)) val&=0xbf; - if(!(readinputport(6) & 0x40)) val&=0x7f; - - passht4b_io3_val=(readinputport(0)<<4) | (readinputport(5)&0xf); - passht4b_io2_val=(readinputport(1)<<4) | (readinputport(6)&0xf); - - passht4b_io1_val=0xff; - - // player 1 buttons - if(!(readinputport(0) & 0x10)) passht4b_io1_val &=0xfe; - if(!(readinputport(0) & 0x20)) passht4b_io1_val &=0xfd; - if(!(readinputport(0) & 0x80)) passht4b_io1_val &=0xfc; - - // player 2 buttons - if(!(readinputport(1) & 0x10)) passht4b_io1_val &=0xfb; - if(!(readinputport(1) & 0x20)) passht4b_io1_val &=0xf7; - if(!(readinputport(1) & 0x80)) passht4b_io1_val &=0xf3; - - // player 3 buttons - if(!(readinputport(5) & 0x10)) passht4b_io1_val &=0xef; - if(!(readinputport(5) & 0x20)) passht4b_io1_val &=0xdf; - if(!(readinputport(5) & 0x80)) passht4b_io1_val &=0xcf; - - // player 4 buttons - if(!(readinputport(6) & 0x10)) passht4b_io1_val &=0xbf; - if(!(readinputport(6) & 0x20)) passht4b_io1_val &=0x7f; - if(!(readinputport(6) & 0x80)) passht4b_io1_val &=0x3f; - - return val; -} - -static READ16_HANDLER( passht4b_io1_r ) { return passht4b_io1_val;} -static READ16_HANDLER( passht4b_io2_r ) { return passht4b_io2_val;} -static READ16_HANDLER( passht4b_io3_r ) { return passht4b_io3_val;} - -static ADDRESS_MAP_START( passht4b_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41000, 0xc41001) AM_READ(passht4b_service_r) - AM_RANGE(0xc41002, 0xc41003) AM_READ(passht4b_io1_r) - AM_RANGE(0xc41004, 0xc41005) AM_READ(passht4b_io2_r) - AM_RANGE(0xc41006, 0xc41007) AM_READ(passht4b_io3_r) - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xc43000, 0xc43001) AM_READ(input_port_0_word_r) // player1 // test mode only - AM_RANGE(0xc43002, 0xc43003) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc43004, 0xc43005) AM_READ(input_port_5_word_r) // player3 - AM_RANGE(0xc43006, 0xc43007) AM_READ(input_port_6_word_r) // player4 - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( passht4b_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE(sys16_coinctrl_w) /* coin counter doesn't work */ - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - -static void passsht_update_proc( void ) -{ - sys16_fg_scrollx = sys16_workingram[0x34be/2]; - sys16_bg_scrollx = sys16_workingram[0x34c2/2]; - sys16_fg_scrolly = sys16_workingram[0x34bc/2]; - sys16_bg_scrolly = sys16_workingram[0x34c0/2]; - - set_fg_page( sys16_textram[0x0ff6/2] ); - set_bg_page( sys16_textram[0x0ff4/2] ); -} - -static void passht4b_update_proc( void ) -{ - sys16_fg_scrollx = sys16_workingram[0x34ce/2]; - sys16_bg_scrollx = sys16_workingram[0x34d2/2]; - sys16_fg_scrolly = sys16_workingram[0x34cc/2]; - sys16_bg_scrolly = sys16_workingram[0x34d0/2]; - - set_fg_page( sys16_textram[0x0ff6/2] ); - set_bg_page( sys16_textram[0x0ff4/2] ); -} - -static MACHINE_RESET( passsht ) -{ - sys16_sprxoffset = -0x48; - sys16_spritesystem = sys16_sprite_passshot; - - // fix name entry - sys16_patch_code( 0x13a8,0xc0); - - sys16_update_proc = passsht_update_proc; -} - -static MACHINE_RESET( passht4b ) -{ - sys16_sprxoffset = -0xb8; - sys16_spritesystem = sys16_sprite_passshot; - - // fix name entry - sys16_patch_code( 0x138a,0xc0); - - sys16_update_proc = passht4b_update_proc; -} - -static DRIVER_INIT( passsht ) -{ - machine_reset_sys16_onetime(machine); -} - -static DRIVER_INIT( passht4b ) -{ - machine_reset_sys16_onetime(machine); -} - -/***************************************************************************/ - -INPUT_PORTS_START( passsht ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e, 0x0e, "Initial Point" ) - PORT_DIPSETTING( 0x06, "2000" ) - PORT_DIPSETTING( 0x0a, "3000" ) - PORT_DIPSETTING( 0x0c, "4000" ) - PORT_DIPSETTING( 0x0e, "5000" ) - PORT_DIPSETTING( 0x08, "6000" ) - PORT_DIPSETTING( 0x04, "7000" ) - PORT_DIPSETTING( 0x02, "8000" ) - PORT_DIPSETTING( 0x00, "9000" ) - PORT_DIPNAME( 0x30, 0x30, "Point Table" ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( passht4b ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0e, 0x0e, "Initial Point" ) - PORT_DIPSETTING( 0x06, "2000" ) - PORT_DIPSETTING( 0x0a, "3000" ) - PORT_DIPSETTING( 0x0c, "4000" ) - PORT_DIPSETTING( 0x0e, "5000" ) - PORT_DIPSETTING( 0x08, "6000" ) - PORT_DIPSETTING( 0x04, "7000" ) - PORT_DIPSETTING( 0x02, "8000" ) - PORT_DIPSETTING( 0x00, "9000" ) - PORT_DIPNAME( 0x30, 0x30, "Point Table" ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - -INPUT_PORTS_END - -/***************************************************************************/ - -static MACHINE_DRIVER_START( passsht ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(passsht_readmem,passsht_writemem) - - MDRV_MACHINE_RESET(passsht) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( passht4b ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(passht4b_readmem,passht4b_writemem) - - MDRV_MACHINE_RESET(passht4b) -MACHINE_DRIVER_END - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - - -/***************************************************************************/ - -INPUT_PORTS_START( shinobi ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "240 (Cheat)") - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, "Enemy's Bullet Speed" ) - PORT_DIPSETTING( 0x40, "Slow" ) - PORT_DIPSETTING( 0x00, "Fast" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - -INPUT_PORTS_END - -/***************************************************************************/ - - -/***************************************************************************/ - -static ADDRESS_MAP_START( shinobl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41006, 0xc41007) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shinobl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w) - AM_RANGE(0xc40002, 0xc40003) AM_WRITE(sys16_3d_coinctrl_w) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - -static void shinobl_update_proc( void ) -{ - set_bg_page( sys16_textram[0x74e] ); - set_fg_page( sys16_textram[0x74f] ); - sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff; - sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff; - sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff; - sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff; -} - -static MACHINE_RESET( shinobl ) -{ - static int bank[] = { - 0,2,4,6, - 1,3,5,7 - }; - sys16_obj_bank = bank; - sys16_spritesystem = sys16_sprite_quartet2; - sys16_sprxoffset = -0xbc; - sys16_fgxoffset = sys16_bgxoffset = 7; - sys16_tilebank_switch=0x2000; - - sys16_update_proc = shinobl_update_proc; -} - -static DRIVER_INIT( shinobl ) -{ - shinobl_kludge = 1; - machine_reset_sys16_onetime(machine); -} - - -/***************************************************************************/ - -static MACHINE_DRIVER_START( shinobl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7751) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(shinobl_readmem,shinobl_writemem) - - MDRV_MACHINE_RESET(shinobl) -MACHINE_DRIVER_END - -/***************************************************************************/ - - - -/* bootleg has extra ram for regs? */ - -static ADDRESS_MAP_START( tetrisbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x418000, 0x41803f) AM_READ(SYS16_MRA16_EXTRAM2) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41006, 0xc41007) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xc80000, 0xc80001) AM_READ(MRA16_NOP) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tetrisbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x418000, 0x41803f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc43034, 0xc43035) AM_WRITE(MWA16_NOP) - AM_RANGE(0xc80000, 0xc80001) AM_WRITE(MWA16_NOP) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - - - -static void tetris_bootleg_update_proc( void ) -{ - sys16_fg_scrolly = sys16_textram[0x748]; - sys16_bg_scrolly = sys16_textram[0x749]; - sys16_fg_scrollx = sys16_textram[0x74c]; - sys16_bg_scrollx = sys16_textram[0x74d]; - - set_fg_page( sys16_extraram2[0x38/2] ); - set_bg_page( sys16_extraram2[0x28/2] ); -} - - -static MACHINE_RESET( tetrisbl ) -{ -// sys16_patch_code( 0xba6, 0x4e ); -// sys16_patch_code( 0xba7, 0x71 ); - - sys16_sprxoffset = -0x40; - sys16_update_proc = tetris_bootleg_update_proc; -} - - -static DRIVER_INIT( tetrisbl ) -{ - machine_reset_sys16_onetime(machine); -} - - -/***************************************************************************/ - -INPUT_PORTS_START( tetris ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE /* unconfirmed */ - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Unknown ) ) // from the code it looks like some kind of difficulty - PORT_DIPSETTING( 0x0c, "A" ) // level, but all 4 levels points to the same place - PORT_DIPSETTING( 0x08, "B" ) // so it doesn't actually change anything!! - PORT_DIPSETTING( 0x04, "C" ) - PORT_DIPSETTING( 0x00, "D" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/***************************************************************************/ - - -static MACHINE_DRIVER_START( tetrisbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tetrisbl_readmem,tetrisbl_writemem) - - MDRV_MACHINE_RESET(tetrisbl) -MACHINE_DRIVER_END - -/***************************************************************************/ - -static READ16_HANDLER( tt_io_player1_r ) -{ return input_port_0_r( offset ) << 8; } -static READ16_HANDLER( tt_io_player2_r ) -{ return input_port_1_r( offset ) << 8; } -static READ16_HANDLER( tt_io_service_r ) -{ return input_port_2_r( offset ) << 8; } - - - -/***************************************************************************/ - -/* - This game has a MCU which does the following: - - Get Z80 sound command out of work RAM and write to Z80 sound command register - - Read input ports and store to work RAM - - The routine which stores the sound code in RAM looks like this: - - ; D0 = sound command - movem.l d0-d1/a0, -(a7) - lea $2001d6, a0 ; base of 16-byte circular buffer - move.w $2001d4, d1 ; get buffer index - move.b d0, (a0, d1.w) ; write sound command to buffer - addq.w #1, d1 ; next buffer index - andi.w #$000f, d1 ; wrap buffer index - move.w d1, $2001d4 ; save buffer index - addq.w #1, $2001d2 ; bump 'sound code written' flag - movem.l (a7)+, d0-d1/a0 - rts - - Most likely the MCU reads $2001D2 and copies the sound byte from $2001D6+$2001D4 to the sound command register. - In tturfbl, a JSR is inserted over the first LEA instruction to a subroutine which copies D0 to the sound command - register at $600007, and restores a0 to $2001D6 before returning. - - If the circular buffer is to prioritize sound requests, then this effect is lost in tturfbl. If it's just to - be tricky, tturfbl handles it correctly. -*/ - - -/***************************************************************************/ - -INPUT_PORTS_START( tturf ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Continues ) ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPSETTING( 0x01, "3" ) - PORT_DIPSETTING( 0x02, "Unlimited" ) - PORT_DIPSETTING( 0x03, "Unlimited" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x30, 0x20, "Starting Energy" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x20, "6" ) - PORT_DIPSETTING( 0x30, "8" ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Bonus Energy" ) - PORT_DIPSETTING( 0x80, "1" ) - PORT_DIPSETTING( 0x00, "2" ) -INPUT_PORTS_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( tturfbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x2001e6, 0x2001e7) AM_READ(tt_io_service_r) - AM_RANGE(0x2001e8, 0x2001e9) AM_READ(tt_io_player1_r) - AM_RANGE(0x2001ea, 0x2001eb) AM_READ(tt_io_player2_r) - AM_RANGE(0x200000, 0x203fff) AM_READ(SYS16_MRA16_EXTRAM) - AM_RANGE(0x300000, 0x300fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x500000, 0x500fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0x600002, 0x600003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0x600000, 0x600001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0x601002, 0x601003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0x601004, 0x601005) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0x601000, 0x601001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0x602002, 0x602003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0x602000, 0x602001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xc46000, 0xc4601f) AM_READ(SYS16_MRA16_EXTRAM3) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tturfbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram) - AM_RANGE(0x300000, 0x300fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x500000, 0x500fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w) - AM_RANGE(0xc44000, 0xc44001) AM_WRITE(MWA16_NOP) - AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) - AM_RANGE(0xff0020, 0xff003f) AM_WRITE(MWA16_NOP) // config regs -ADDRESS_MAP_END - -/***************************************************************************/ - -static void tturfbl_update_proc( void ) -{ - sys16_fg_scrollx = sys16_textram[0x74c] & 0x01ff; - sys16_bg_scrollx = sys16_textram[0x74d/2] & 0x01ff; - sys16_fg_scrolly = sys16_textram[0x748]; - sys16_bg_scrolly = sys16_textram[0x749]; - - - { - int data1,data2; - - data1 = sys16_textram[0x740]; - data2 = sys16_textram[0x741]; - - sys16_fg_page[3] = data1>>12; - sys16_bg_page[3] = (data1>>8)&0xf; - sys16_fg_page[1] = (data1>>4)&0xf; - sys16_bg_page[1] = data1&0xf; - - sys16_fg_page[2] = data2>>12; - sys16_bg_page[2] = (data2>>8)&0xf; - sys16_fg_page[0] = (data2>>4)&0xf; - sys16_bg_page[0] = data2&0xf; - } -} - -static MACHINE_RESET( tturfbl ) -{ - static int bank[16] = { - 0,0,0,0, - 0,0,0,3, - 0,0,0,2, - 0,1,0,0 - }; - sys16_obj_bank = bank; - sys16_sprxoffset = -0x48; - - sys16_update_proc = tturfbl_update_proc; -} - -static DRIVER_INIT( tturfbl ) -{ - UINT8 *mem; - - machine_reset_sys16_onetime(machine); - - mem = memory_region(REGION_CPU2); - memcpy(mem, mem+0x10000, 0x8000); - -} -/***************************************************************************/ -// sound ?? -static MACHINE_DRIVER_START( tturfbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16_7759) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(tturfbl_readmem,tturfbl_writemem) - - MDRV_CPU_MODIFY("sound") - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(tturfbl_sound_readmem,tturfbl_sound_writemem) - MDRV_CPU_IO_MAP(tturfbl_sound_readport,tturfbl_sound_writeport) - - MDRV_SOUND_REMOVE("7759") - MDRV_SOUND_ADD_TAG("5205", MSM5205, 220000) - MDRV_SOUND_CONFIG(tturfbl_msm5205_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.80) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.80) - - MDRV_MACHINE_RESET(tturfbl) -MACHINE_DRIVER_END - - -/***************************************************************************/ - - -/***************************************************************************/ - - - - - -/***************************************************************************/ - -INPUT_PORTS_START( wb3b ) - SYS16_JOY1 - SYS16_JOY2 - SYS16_SERVICE - SYS16_COINAGE - - PORT_START_TAG("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) ) //?? - PORT_DIPSETTING( 0x10, "5000/10000/18000/30000" ) - PORT_DIPSETTING( 0x00, "5000/15000/30000" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Allow Round Select" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) // no collision though - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -/***************************************************************************/ - - -/***************************************************************************/ - -static ADDRESS_MAP_START( wb3bbl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(SYS16_MRA16_TILERAM) - AM_RANGE(0x410000, 0x410fff) AM_READ(SYS16_MRA16_TEXTRAM) - AM_RANGE(0x440000, 0x440fff) AM_READ(SYS16_MRA16_SPRITERAM) - AM_RANGE(0x840000, 0x840fff) AM_READ(SYS16_MRA16_PALETTERAM) - AM_RANGE(0xc41002, 0xc41003) AM_READ(input_port_0_word_r) // player1 - AM_RANGE(0xc41004, 0xc41005) AM_READ(input_port_1_word_r) // player2 - AM_RANGE(0xc41000, 0xc41001) AM_READ(input_port_2_word_r) // service - AM_RANGE(0xc42002, 0xc42003) AM_READ(input_port_3_word_r) // dip1 - AM_RANGE(0xc42000, 0xc42001) AM_READ(input_port_4_word_r) // dip2 - AM_RANGE(0xc46000, 0xc4601f) AM_READ(SYS16_MRA16_EXTRAM3) - AM_RANGE(0xff0000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wb3bbl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram) - AM_RANGE(0x410000, 0x410fff) AM_WRITE(SYS16_MWA16_TEXTRAM) AM_BASE(&sys16_textram) - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram) - AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16) - AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w) - AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w) - AM_RANGE(0xc44000, 0xc44001) AM_WRITE(MWA16_NOP) - AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3) - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) -ADDRESS_MAP_END - -/***************************************************************************/ - -static void wb3bbl_update_proc( void ) -{ - - sys16_fg_scrollx = sys16_workingram[0xc030/2]; - sys16_bg_scrollx = sys16_workingram[0xc038/2]; - sys16_fg_scrolly = sys16_workingram[0xc032/2]; - sys16_bg_scrolly = sys16_workingram[0xc03c/2]; - - set_fg_page( sys16_textram[0x0ff6/2] ); - set_bg_page( sys16_textram[0x0ff4/2] ); -} - -static MACHINE_RESET( wb3bbl ) -{ - static int bank[16] = { - 2,0, - 1,0, - 3,0, - 0,3, - 0,0, - 0,2, - 0,1, - 0,0 - }; - sys16_obj_bank = bank; -#if 1 - sys16_patch_code( 0x17058, 0x4e ); - sys16_patch_code( 0x17059, 0xb9 ); - sys16_patch_code( 0x1705a, 0x00 ); - sys16_patch_code( 0x1705b, 0x00 ); - sys16_patch_code( 0x1705c, 0x09 ); - sys16_patch_code( 0x1705d, 0xdc ); - sys16_patch_code( 0x1705e, 0x4e ); - sys16_patch_code( 0x1705f, 0xf9 ); - sys16_patch_code( 0x17060, 0x00 ); - sys16_patch_code( 0x17061, 0x01 ); - sys16_patch_code( 0x17062, 0x70 ); - sys16_patch_code( 0x17063, 0xe0 ); - sys16_patch_code( 0x1a3a, 0x31 ); - sys16_patch_code( 0x1a3b, 0x7c ); - sys16_patch_code( 0x1a3c, 0x80 ); - sys16_patch_code( 0x1a3d, 0x00 ); - sys16_patch_code( 0x23df8, 0x14 ); - sys16_patch_code( 0x23df9, 0x41 ); - sys16_patch_code( 0x23dfa, 0x10 ); - sys16_patch_code( 0x23dfd, 0x14 ); - sys16_patch_code( 0x23dff, 0x1c ); -#endif - sys16_update_proc = wb3bbl_update_proc; -} - -static DRIVER_INIT( wb3bbl ) -{ - machine_reset_sys16_onetime(machine); -} - -/***************************************************************************/ - -static MACHINE_DRIVER_START( wb3bbl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(system16) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(wb3bbl_readmem,wb3bbl_writemem) - - MDRV_MACHINE_RESET(wb3bbl) -MACHINE_DRIVER_END - - - -/*****************************************************************************/ - - -ROM_START( bayrtbl1 ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "b4.bin", 0x000000, 0x10000, CRC(eb6646ae) SHA1(073bc0a3868e70785f44e497a949cd9e3b591a33) ) - ROM_LOAD16_BYTE( "b2.bin", 0x000001, 0x10000, CRC(ecd9cd0e) SHA1(177c38ca02c4e87d6adcae77ce4e9237938d23a9) ) - /* empty 0x20000-0x80000*/ - ROM_LOAD16_BYTE( "br.5a", 0x080000, 0x10000, CRC(9d6fd183) SHA1(5ae78d33c0e929886d84a25c0fbd62ab45dcbff4) ) - ROM_LOAD16_BYTE( "br.2a", 0x080001, 0x10000, CRC(5ca1e3d2) SHA1(51ce67ed0a0054f9c9c4ac56c5775716c44d74b1) ) - ROM_LOAD16_BYTE( "b8.bin", 0x0a0000, 0x10000, CRC(e7ca0331) SHA1(b255939576a84f4d266f31a7fde818e04ff35b24) ) - ROM_LOAD16_BYTE( "b6.bin", 0x0a0001, 0x10000, CRC(2bc748a6) SHA1(9ab760377fde24cecb703726ee3e59ee23d60a3a) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "bs16.bin", 0x00000, 0x10000, CRC(a8a5b310) SHA1(8883e1ed48a3e0f7b4c36d83579f93e84e28568c) ) - ROM_LOAD( "bs14.bin", 0x10000, 0x10000, CRC(6bc4d0a8) SHA1(90b9a61c7a140291d72554857ce26d54ebf03fc2) ) - ROM_LOAD( "bs12.bin", 0x20000, 0x10000, CRC(c1f967a6) SHA1(8eb6bbd9e17dc531830bc798b8485c8ea999e56e) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "br_obj0o.1b", 0x00001, 0x10000, CRC(098a5e82) SHA1(c5922f418773bc3629071e584457839d67a370e9) ) - ROM_LOAD16_BYTE( "br_obj0e.5b", 0x00000, 0x10000, CRC(85238af9) SHA1(39989a8d9b60c6d55272b5e2c213341a563dd993) ) - ROM_LOAD16_BYTE( "br_obj1o.2b", 0x20001, 0x10000, CRC(cc641da1) SHA1(28f8a6502702cb9e2cc7f3e98f6c5d201f462fa3) ) - ROM_LOAD16_BYTE( "br_obj1e.6b", 0x20000, 0x10000, CRC(d3123315) SHA1(16a87caed1cabb080d4f35935910b38797344ca5) ) - ROM_LOAD16_BYTE( "br_obj2o.3b", 0x40001, 0x10000, CRC(84efac1f) SHA1(41c43d70dc7ae7e361d6fa12c5790ea7ebf13ca8) ) - ROM_LOAD16_BYTE( "br_obj2e.7b", 0x40000, 0x10000, CRC(b73b12cb) SHA1(e8265ae90aabf1ee0522dbc6541a0f82fec97c7a) ) - ROM_LOAD16_BYTE( "br_obj3o.4b", 0x60001, 0x10000, CRC(a2e238ac) SHA1(c854774c0ffd1ccf6e46591a8fa3c80a4630e007) ) - ROM_LOAD16_BYTE( "bs7.bin", 0x60000, 0x10000, CRC(0c91abcc) SHA1(d25608f3cbacd1bd169f1a2247f007ac8bc8dda0) ) - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) ) - ROM_LOAD( "mpr12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) ) - ROM_LOAD( "mpr12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) ) -ROM_END - -ROM_START( bayrtbl2 ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "br_04", 0x000000, 0x10000, CRC(2e33ebfc) SHA1(f6b5a4bd28d302abd6b1e5a9ec6f2a8b57ff213e) ) - ROM_LOAD16_BYTE( "br_06", 0x000001, 0x10000, CRC(3db42313) SHA1(e1c874ebf83e1a458cefaa038fbe89a9804ca30d) ) - /* empty 0x20000-0x80000*/ - ROM_LOAD16_BYTE( "br_03", 0x080000, 0x20000, CRC(285d256b) SHA1(73eac0131d14f0d7fe2a06cb2e0e57dcf4779cf9) ) - ROM_LOAD16_BYTE( "br_05", 0x080001, 0x20000, CRC(552e6384) SHA1(2770b0c9d961671576e09ada2ebd7bb486f24547) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "br_15", 0x00000, 0x10000, CRC(050079a9) SHA1(4b356eddec2f500fb0dcc20af6b7aed2f9ef0c02) ) - ROM_LOAD( "br_16", 0x10000, 0x10000, CRC(fc371928) SHA1(b36866c95bdc440aae999a90ecf3bbaed11d4351) ) - ROM_LOAD( "bs12.bin", 0x20000, 0x10000, CRC(c1f967a6) SHA1(8eb6bbd9e17dc531830bc798b8485c8ea999e56e) ) - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "br_11", 0x00001, 0x10000, CRC(65232905) SHA1(cb195a0ce8bff9d1d3e31678060b3aaccfefcd2d) ) - ROM_LOAD16_BYTE( "br_obj0e.5b", 0x00000, 0x10000, CRC(85238af9) SHA1(39989a8d9b60c6d55272b5e2c213341a563dd993) ) - ROM_LOAD16_BYTE( "br_obj1o.2b", 0x20001, 0x10000, CRC(cc641da1) SHA1(28f8a6502702cb9e2cc7f3e98f6c5d201f462fa3) ) - ROM_LOAD16_BYTE( "br_obj1e.6b", 0x20000, 0x10000, CRC(d3123315) SHA1(16a87caed1cabb080d4f35935910b38797344ca5) ) - ROM_LOAD16_BYTE( "br_obj2o.3b", 0x40001, 0x10000, CRC(84efac1f) SHA1(41c43d70dc7ae7e361d6fa12c5790ea7ebf13ca8) ) - ROM_LOAD16_BYTE( "br_09", 0x40000, 0x10000, CRC(05e9b840) SHA1(7cc1c9ac7b85f1e1bdb68215b5e83eae3ee5ba2a) ) - ROM_LOAD16_BYTE( "br_14", 0x60001, 0x10000, CRC(4c4a177b) SHA1(a9dfd7e56b0a21a0f7750d8ec4631901ad182609) ) - ROM_LOAD16_BYTE( "bs7.bin", 0x60000, 0x10000, CRC(0c91abcc) SHA1(d25608f3cbacd1bd169f1a2247f007ac8bc8dda0) ) - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "br_01", 0x00000, 0x10000, CRC(b87156ec) SHA1(bdfef2ab5a4d3cac4077c92ce1ef4604b4c11cf8) ) - ROM_LOAD( "br_02", 0x10000, 0x10000, CRC(ef63991b) SHA1(4221741780f88c80b3213ddca949bee7d4c1469a) ) -ROM_END - -// sys16B - -ROM_START( dduxbl ) - ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "dduxb03.bin", 0x000000, 0x20000, CRC(e7526012) SHA1(a1798008bfa1ce9b87dc330f3817b1978052fcfd) ) - ROM_LOAD16_BYTE( "dduxb05.bin", 0x000001, 0x20000, CRC(459d1237) SHA1(55e9c0dc341c919d58cc789203642c397d7ac65e) ) - /* empty 0x40000 - 0x80000 */ - ROM_LOAD16_BYTE( "dduxb02.bin", 0x080000, 0x20000, CRC(d8ed3132) SHA1(a9d5ad8f79fb635cc234a99fad398688a5f15926) ) - ROM_LOAD16_BYTE( "dduxb04.bin", 0x080001, 0x20000, CRC(30c6cb92) SHA1(2e17c74eeb37c9731fc2e365cc0114f7383c0106) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "dduxb14.bin", 0x00000, 0x10000, CRC(664bd135) SHA1(674b06e01c2c8f5b8057dd24d470330c3f140473) ) - ROM_LOAD( "dduxb15.bin", 0x10000, 0x10000, CRC(ce0d2b30) SHA1(e60521c46f1650c9bdc76f2ceb91a6d61aaa0a09) ) - ROM_LOAD( "dduxb16.bin", 0x20000, 0x10000, CRC(6de95434) SHA1(7bed2a0261cf6c2fbb3756633f05f0bb2173977c) ) - - ROM_REGION( 0xa0000, REGION_GFX2, 0 ) //* sprites */ - ROM_LOAD16_BYTE( "dduxb10.bin", 0x00001, 0x010000, CRC(0be3aee5) SHA1(48fc779b7398abbb82cd0d0d28705ece75b3c4e3) ) - ROM_RELOAD( 0x20001, 0x010000 ) - ROM_LOAD16_BYTE( "dduxb06.bin", 0x00000, 0x010000, CRC(b0079e99) SHA1(9bb4d3fa804a3d05a6e06b45a1280d7064e96ac6) ) - ROM_RELOAD( 0x20000, 0x010000 ) - ROM_LOAD16_BYTE( "dduxb11.bin", 0x40001, 0x010000, CRC(cfb2af18) SHA1(1ad18f933a7b797f0364d1f4a6c8549351b4c9a6) ) - ROM_LOAD16_BYTE( "dduxb07.bin", 0x40000, 0x010000, CRC(0217369c) SHA1(b6ec2fa1279a27a602d79e1073c54193745ea816) ) - ROM_LOAD16_BYTE( "dduxb12.bin", 0x60001, 0x010000, CRC(28ce9b15) SHA1(1640df9c8f21893c0647ad2f4210c714a06e6f37) ) - ROM_LOAD16_BYTE( "dduxb08.bin", 0x60000, 0x010000, CRC(8844f336) SHA1(18c1baaad3bcc658d4a6d03de8c97378b5284e88) ) - ROM_LOAD16_BYTE( "dduxb13.bin", 0x80001, 0x010000, CRC(efe57759) SHA1(69b8969b20ab9480df2735bd2bcd527069196bd7) ) - ROM_LOAD16_BYTE( "dduxb09.bin", 0x80000, 0x010000, CRC(6b64f665) SHA1(df07fcf2bbec6fa78f89b95272762aebd6f3ec0e) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "dduxb01.bin", 0x0000, 0x8000, CRC(0dbef0d7) SHA1(8b9afb2fcb946cec467b1e691c267194b503f841) ) -ROM_END - -// sys16B - - -ROM_START( eswatbl ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "eswat_c.rom", 0x000000, 0x10000, CRC(1028cc81) SHA1(24b4cd182419a44f3d6afa1c4273353024eb278f) ) - ROM_LOAD16_BYTE( "eswat_f.rom", 0x000001, 0x10000, CRC(f7b2d388) SHA1(8131ba8f4fa01751b9993c3c6c218c9bd3adb328) ) - ROM_LOAD16_BYTE( "eswat_b.rom", 0x020000, 0x10000, CRC(87c6b1b5) SHA1(a9f29e29a9c0e3daf272dce263a5fd7866642c77) ) - ROM_LOAD16_BYTE( "eswat_e.rom", 0x020001, 0x10000, CRC(937ddf9a) SHA1(9fc73f93e9c4221a4dc778593edc02cb405b2f78) ) - ROM_LOAD16_BYTE( "eswat_a.rom", 0x040000, 0x08000, CRC(2af4fc62) SHA1(f7b1539a5ab9560bd49dfecf44699abccfb649be) ) - ROM_LOAD16_BYTE( "eswat_d.rom", 0x040001, 0x08000, CRC(b4751e19) SHA1(57c9687dc864c163d13dbb89057cd42684a199cd) ) - - ROM_REGION( 0xc0000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "mpr12624.b11", 0x00000, 0x40000, CRC(375a5ec4) SHA1(42b9116bdc0e0a5b1dd667ac1856b4c2252829ba) ) // ic19 - ROM_LOAD( "mpr12625.b12", 0x40000, 0x40000, CRC(3b8c757e) SHA1(0b66e8446d059a12e47e2a6fe8f0a333245bb95c) ) // ic20 - ROM_LOAD( "mpr12626.b13", 0x80000, 0x40000, CRC(3efca25c) SHA1(0d866bf53a16b52719f73081e933f4db27d72ece) ) // ic21 - - ROM_REGION( 0x180000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "mpr12618.b1", 0x000001, 0x40000, CRC(0d1530bf) SHA1(bb8626cd98761c1c20cee117d00315c85621ba6a) ) // ic9 - ROM_LOAD16_BYTE( "mpr12621.b4", 0x000000, 0x40000, CRC(18ff0799) SHA1(5417223378aef16ee2b4f438d1f8f11a23fe7265) ) // ic12 - ROM_LOAD16_BYTE( "mpr12619.b2", 0x080001, 0x40000, CRC(32069246) SHA1(4913009bc72bf4f8b171b14fe06457f5784cab15) ) // ic10 - ROM_LOAD16_BYTE( "mpr12622.b5", 0x080000, 0x40000, CRC(a3dfe436) SHA1(640ccc552114d403f35d441574d2f3e4f1d4a8f9) ) // ic13 - ROM_LOAD16_BYTE( "mpr12620.b3", 0x100001, 0x40000, CRC(f6b096e0) SHA1(695ad1adbdc29f4d614645867e16de038cf92709) ) // ic11 - ROM_LOAD16_BYTE( "mpr12623.b6", 0x100000, 0x40000, CRC(6773fef6) SHA1(91e646ea447be02254d060daf255d26afe0cc79e) ) // ic14 - - ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr12617.a13", 0x00000, 0x08000, CRC(7efecf23) SHA1(2b87af7cfaab5942a3f7b38c987fcba01d3475ab) ) // ic8 - ROM_LOAD( "mpr12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) ) // ic6 -ROM_END - -// sys16B - - -ROM_START( fpointbl ) - ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "flpoint.003", 0x000000, 0x10000, CRC(4d6df514) SHA1(168aa1629ab7152ba1984605155406b236954a2c) ) - ROM_LOAD16_BYTE( "flpoint.002", 0x000001, 0x10000, CRC(4dff2ee8) SHA1(bd157d8c168d45e7490a05d5e1e901d9bdda9599) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "flpoint.006", 0x00000, 0x10000, CRC(c539727d) SHA1(56674effe1d273128dddd2ff9e02974ec10f3fff) ) - ROM_LOAD( "flpoint.005", 0x10000, 0x10000, CRC(82c0b8b0) SHA1(e1e2e721cb8ad53df33065582dc90edeba9c3cab) ) - ROM_LOAD( "flpoint.004", 0x20000, 0x10000, CRC(522426ae) SHA1(90fd0a19b30a8a61dc4cfa66a64115596333dcc6) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "12596.bin", 0x00001, 0x010000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) ) - ROM_LOAD16_BYTE( "12597.bin", 0x00000, 0x010000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "flpoint.001", 0x0000, 0x8000, CRC(c5b8e0fe) SHA1(6cf8c67151d8604326fc6dbf976c0635b452a844) ) // bootleg rom doesn't work, but should be correct! -ROM_END - -ROM_START( fpointbj ) - ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "boot2.003", 0x000000, 0x10000, CRC(6c00d1b0) SHA1(fd0c47b8ca010a64d3ef91980f93854ebc98fbda) ) - ROM_LOAD16_BYTE( "boot2.002", 0x000001, 0x10000, CRC(c1fcd704) SHA1(697bef464e53fb9891ed15ee2d6210107b693b20) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "flpoint.006", 0x00000, 0x10000, CRC(c539727d) SHA1(56674effe1d273128dddd2ff9e02974ec10f3fff) ) - ROM_LOAD( "flpoint.005", 0x10000, 0x10000, CRC(82c0b8b0) SHA1(e1e2e721cb8ad53df33065582dc90edeba9c3cab) ) - ROM_LOAD( "flpoint.004", 0x20000, 0x10000, CRC(522426ae) SHA1(90fd0a19b30a8a61dc4cfa66a64115596333dcc6) ) - - ROM_REGION( 0x20000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "12596.bin", 0x00001, 0x010000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) ) - ROM_LOAD16_BYTE( "12597.bin", 0x00000, 0x010000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "flpoint.001", 0x0000, 0x8000, CRC(c5b8e0fe) SHA1(6cf8c67151d8604326fc6dbf976c0635b452a844) ) // bootleg rom doesn't work, but should be correct! - - /* stuff below isn't used but loaded because it was on the board .. */ - ROM_REGION( 0x0120, REGION_PROMS, 0 ) - ROM_LOAD( "82s129.1", 0x0000, 0x0100, CRC(a7c22d96) SHA1(160deae8053b09c09328325246598b3518c7e20b) ) - ROM_LOAD( "82s123.2", 0x0100, 0x0020, CRC(58bcf8bd) SHA1(e4d3d179b08c0f3424a6bec0f15058fb1b56f8d8) ) - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "fpointbj_gal16v8_1.bin", 0x0000, 0x0117, CRC(ba7f292c) SHA1(c383700d05663c9c5f29d5d04d16b05cd6adceb8) ) - ROM_LOAD( "fpointbj_gal16v8_3.bin", 0x0200, 0x0117, CRC(ce1ab1e1) SHA1(dcfc0015d8595ee6cb6bb02c95655161a7f3b017) ) - ROM_LOAD( "fpointbj_gal20v8.bin", 0x0400, 0x019d, NO_DUMP ) /* Protected */ -ROM_END - -ROM_START( goldnabl ) - ROM_REGION( 0x0c0000, REGION_CPU1, 0 ) /* 68000 code */ -// protected code - ROM_LOAD16_BYTE( "ga6.a22", 0x00000, 0x10000, CRC(f95b459f) SHA1(dadf66d63454ed62fefa521d4fed249d28c63778) ) - ROM_LOAD16_BYTE( "ga4.a20", 0x00001, 0x10000, CRC(83eabdf5) SHA1(1effef966f513fbdec2026d535658e17ef7dea51) ) - ROM_LOAD16_BYTE( "ga11.a27",0x20000, 0x10000, CRC(f4ef9349) SHA1(3ffa335e74ffbc10f80387268da659643c566897) ) - ROM_LOAD16_BYTE( "ga8.a24", 0x20001, 0x10000, CRC(37a65839) SHA1(6e8055d91b840afd8526041d3752c0a55eaebe0c) ) - /* emtpy 0x40000 - 0x80000 */ - ROM_LOAD16_BYTE( "epr12521.a8", 0x80000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) ) - ROM_LOAD16_BYTE( "epr12519.a6", 0x80001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) ) - - ROM_REGION( 0x60000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "ga33.b16", 0x00000, 0x10000, CRC(84587263) SHA1(3a88c8578a477a487a0a214a367042b9739f39eb) ) - ROM_LOAD( "ga32.b15", 0x10000, 0x10000, CRC(63d72388) SHA1(ba0a582b1daf3a1e316237efbad17fcc0381643f) ) - ROM_LOAD( "ga31.b14", 0x20000, 0x10000, CRC(f8b6ae4f) SHA1(55132c98955107e4b247992f7917a6ce588460a7) ) - ROM_LOAD( "ga30.b13", 0x30000, 0x10000, CRC(e29baf4f) SHA1(3761cb2217599fe3f2f860f9395930b96ec52f47) ) - ROM_LOAD( "ga29.b12", 0x40000, 0x10000, CRC(22f0667e) SHA1(2d11b2ce105a3db9c914942cace85aff17deded9) ) - ROM_LOAD( "ga28.b11", 0x50000, 0x10000, CRC(afb1a7e4) SHA1(726fded9db72a881128b43f449d2baf450131f63) ) - - ROM_REGION( 0x1c0000, REGION_GFX2, 0 ) /* sprites */ - /* wrong! */ - ROM_LOAD16_BYTE( "ga34.b17", 0x000001, 0x10000, CRC(28ba70c8) SHA1(a6f33e1404928b6d1006943494646d6cfbd60a4b) ) - ROM_LOAD16_BYTE( "ga35.b18", 0x010000, 0x10000, CRC(2ed96a26) SHA1(edcf915243e6f92d31cdfc53965438f6b6bff51d) ) - ROM_LOAD16_BYTE( "ga23.a14", 0x020001, 0x10000, CRC(84dccc5b) SHA1(10263d98d663f1170c3203066f391075a1d64ff5) ) - ROM_LOAD16_BYTE( "ga18.a9", 0x030000, 0x10000, CRC(de346006) SHA1(65aa489373b6d2cccbb024f13fc190a7cae86274) ) - ROM_LOAD16_BYTE( "mpr12379.b4", 0x040001, 0x40000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) ) - ROM_LOAD16_BYTE( "ga36.b19", 0x080000, 0x10000, CRC(101d2fff) SHA1(1de1390c5f55f192491053c8aac31be3389aab2b) ) - ROM_LOAD16_BYTE( "ga37.b20", 0x090001, 0x10000, CRC(677e64a6) SHA1(e3d0d31097017c6cb1a7f41292783f18ce13b41c) ) - ROM_LOAD16_BYTE( "ga19.a10", 0x0a0000, 0x10000, CRC(11794d05) SHA1(eef52d7a644dbcc5f983222f163445a725286a32) ) - ROM_LOAD16_BYTE( "ga20.a11", 0x0b0001, 0x10000, CRC(ad1c1c90) SHA1(155f17593cfab1a117bb755b1edd0c473d455f91) ) - ROM_LOAD16_BYTE( "mpr12381.b5", 0x0c0000, 0x40000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) ) - ROM_LOAD16_BYTE( "mpr12382.b3", 0x100001, 0x40000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) ) - ROM_LOAD16_BYTE( "mpr12383.b6", 0x140000, 0x40000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr12390", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) ) - ROM_LOAD( "mpr12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) ) -ROM_END - -// pre16 -ROM_START( mjleague ) - ROM_REGION( 0x030000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-7404.09b", 0x000000, 0x8000, CRC(ec1655b5) SHA1(5c1df364fa9733daa4478c5f88298089e4963c33) ) - ROM_LOAD16_BYTE( "epr-7401.06b", 0x000001, 0x8000, CRC(2befa5e0) SHA1(0a1681a4c7d62a5754ba6f3845436b4d08324246) ) - ROM_LOAD16_BYTE( "epr-7405.10b", 0x010000, 0x8000, CRC(7a4f4e38) SHA1(65a22097dd933e83f326bd64b3863915897780a6) ) - ROM_LOAD16_BYTE( "epr-7402.07b", 0x010001, 0x8000, CRC(b7bef762) SHA1(214450e0b094f99ef38dec2a3e5cbdb0b30e917d) ) - ROM_LOAD16_BYTE( "epra7406.11b", 0x020000, 0x8000, CRC(bb743639) SHA1(5d99638a79f02ce14374d3b1f3d9fbfc5c13c6e1) ) - ROM_LOAD16_BYTE( "epra7403.08b", 0x020001, 0x8000, CRC(d86250cf) SHA1(fb5dabb7b9b9fe0bbe93e28c60311c7b3256107a) ) // Fails memory test. Bad rom? - - ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr-7051.09a", 0x00000, 0x08000, CRC(10ca255a) SHA1(ccf58ffcac2f7fbdbfbdf32601a1b97f359cbd91) ) - ROM_LOAD( "epr-7052.10a", 0x08000, 0x08000, CRC(2550db0e) SHA1(28f8d68f43d26f12793fe295c205cc86adc4e96a) ) - ROM_LOAD( "epr-7053.11a", 0x10000, 0x08000, CRC(5bfea038) SHA1(01dc6e14cc7bba9f7930e68573c441fa2841f49a) ) - - ROM_REGION( 0x50000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr-7055.05a", 0x000001, 0x8000, CRC(1fb860bd) SHA1(4a4155d0352dfae9e402a2b2f1558ef17b1303b4) ) - ROM_LOAD16_BYTE( "epr-7059.02b", 0x000000, 0x8000, CRC(3d14091d) SHA1(36208415b2012b6e948fefa15b0f7041748066be) ) - ROM_LOAD16_BYTE( "epr-7056.06a", 0x010001, 0x8000, CRC(b35dd968) SHA1(e306b5e38acf583d7b2089302622ad25ae5564b0) ) - ROM_LOAD16_BYTE( "epr-7060.03b", 0x010000, 0x8000, CRC(61bb3757) SHA1(5c87cf23be22b84e3dae746527ca057d870d6397) ) - ROM_LOAD16_BYTE( "epr-7057.07a", 0x020001, 0x8000, CRC(3e5a2b6f) SHA1(d3dbafb4acb916e02c978a156008bd75ba122fb7) ) - ROM_LOAD16_BYTE( "epr-7061.04b", 0x020000, 0x8000, CRC(c808dad5) SHA1(9b65acc8dc23b16e56327298188d1a6ab48b2b5d) ) - ROM_LOAD16_BYTE( "epr-7058.08a", 0x030001, 0x8000, CRC(b543675f) SHA1(35ffc9295a8849a18fabe156fdbc9801ea2179cd) ) - ROM_LOAD16_BYTE( "epr-7062.05b", 0x030000, 0x8000, CRC(9168eb47) SHA1(daaa7836e627a0679e65373d8f20a9383ba4c905) ) -// ROM_LOAD16_BYTE( "epr-7055.05a", 0x040001, 0x8000, CRC(1fb860bd) SHA1(4a4155d0352dfae9e402a2b2f1558ef17b1303b4) ) loaded twice?? -// ROM_LOAD16_BYTE( "epr-7059.02b", 0x040000, 0x8000, CRC(3d14091d) SHA1(36208415b2012b6e948fefa15b0f7041748066be) ) loaded twice?? - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "eprc7054.01b", 0x00000, 0x8000, CRC(4443b744) SHA1(73359a6e9d62b382dee47fea31b9e17eb26a0321) ) - - ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */ - ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* 7751 sound data */ - ROM_LOAD( "epr-7063.01a", 0x00000, 0x8000, CRC(45d8908a) SHA1(e61f81f953c1a744ded36fed3b55774e4747af29) ) - ROM_LOAD( "epr-7065.02a", 0x08000, 0x8000, CRC(8c8f8cff) SHA1(fca5a916a8b25800ee5e8771e2ced0ed9bd737f4) ) - ROM_LOAD( "epr-7064.03a", 0x10000, 0x8000, CRC(159f6636) SHA1(66fa3f3e95a6ef3d3ff4ded09c05ab1131d9fbbb) ) - ROM_LOAD( "epr-7066.04a", 0x18000, 0x8000, CRC(f5cfa91f) SHA1(c85d68cbcd03fe1436bed12235c033610acc11ee) ) -ROM_END - -ROM_START( passht4b ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "pas4p.3", 0x000000, 0x10000, CRC(2d8bc946) SHA1(35d3e529d4815543d9876fd0545c3d686467abaa) ) - ROM_LOAD16_BYTE( "pas4p.4", 0x000001, 0x10000, CRC(e759e831) SHA1(dd5727dc28010cb988e4951723171171eb645ce8) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "pas4p.11", 0x00000, 0x10000, CRC(da20fbc9) SHA1(21dc8143f4d1cebae4f86e83495fa84e5293ba48) ) - ROM_LOAD( "pas4p.12", 0x10000, 0x10000, CRC(bebb9211) SHA1(4f56048f6f70b63f74a4c0d64456213d36ce5b26) ) - ROM_LOAD( "pas4p.13", 0x20000, 0x10000, CRC(e37506c3) SHA1(e6fbf15d58f321a3d052fefbe5a1901e4a1734ae) ) - - ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "opr11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) ) - ROM_LOAD16_BYTE( "opr11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) ) - ROM_LOAD16_BYTE( "opr11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) ) - ROM_LOAD16_BYTE( "opr11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) ) - ROM_LOAD16_BYTE( "opr11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) ) - ROM_LOAD16_BYTE( "opr11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) ) - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "pas4p.1", 0x00000, 0x08000, CRC(e60fb017) SHA1(21298036eab55c74427f1c2e3a9623d41bca4849) ) - ROM_LOAD( "pas4p.2", 0x10000, 0x10000, CRC(092e016e) SHA1(713638749efa9dce19c547b84308236110bc85fe) ) -ROM_END - -ROM_START( passshtb ) - ROM_REGION( 0x020000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "pass3_2p.bin", 0x000000, 0x10000, CRC(26bb9299) SHA1(11bacf86dfdd8bcfbfb61f0ebc59890325c48adc) ) - ROM_LOAD16_BYTE( "pass4_2p.bin", 0x000001, 0x10000, CRC(06ac6d5d) SHA1(2dd71a8a956404326797de8beed7bca016c9919e) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "opr11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) ) - ROM_LOAD( "opr11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) ) - ROM_LOAD( "opr11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) ) - - ROM_REGION( 0x60000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "opr11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) ) - ROM_LOAD16_BYTE( "opr11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) ) - ROM_LOAD16_BYTE( "opr11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) ) - ROM_LOAD16_BYTE( "opr11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) ) - ROM_LOAD16_BYTE( "opr11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) ) - ROM_LOAD16_BYTE( "opr11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) ) - ROM_LOAD( "epr11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) ) - ROM_LOAD( "epr11859.a9", 0x18000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) ) - ROM_LOAD( "epr11860.a10", 0x20000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) ) - ROM_LOAD( "epr11861.a11", 0x28000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) ) -ROM_END - -ROM_START( shinobl ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */ -// Star Bootleg - ROM_LOAD16_BYTE( "b3", 0x000000, 0x10000, CRC(38e59646) SHA1(6a13015a93260ab99811b95950bb122eade01c27) ) - ROM_LOAD16_BYTE( "b1", 0x000001, 0x10000, CRC(8529d192) SHA1(202b912d20a2d82abe055b4a5e8c509ab7d69ff8) ) - ROM_LOAD16_BYTE( "epr11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) ) - ROM_LOAD16_BYTE( "epr11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) ) - -// Beta Bootleg -// ROM_LOAD16_BYTE( "4", 0x000000, 0x10000, CRC(c178a39c) ) -// ROM_LOAD16_BYTE( "2", 0x000001, 0x10000, CRC(5ad8ebf2) ) -// ROM_LOAD16_BYTE( "epr11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) ) -// ROM_LOAD16_BYTE( "epr11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) ) - ROM_LOAD( "epr11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) ) - ROM_LOAD( "epr11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) ) - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr11290.10", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) ) - ROM_LOAD16_BYTE( "epr11294.11", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) ) - ROM_LOAD16_BYTE( "epr11291.17", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) ) - ROM_LOAD16_BYTE( "epr11295.18", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) ) - ROM_LOAD16_BYTE( "epr11292.23", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) ) - ROM_LOAD16_BYTE( "epr11296.24", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) ) - ROM_LOAD16_BYTE( "epr11293.29", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) ) -// ROM_LOAD16_BYTE( "epr11297.30", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) ) - ROM_LOAD16_BYTE( "b17", 0x60000, 0x10000, CRC(0315cf42) SHA1(2d129171aece883cb9c2805f894b3867ec98332b) ) // Beta bootleg uses the rom above. - - ROM_REGION( 0x20000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) ) - - ROM_REGION( 0x1000, REGION_CPU3, 0 ) /* 4k for 7751 onboard ROM */ - ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) /* 7751 - U34 */ - - ROM_REGION( 0x08000, REGION_SOUND1, 0 ) /* 7751 sound data */ - ROM_LOAD( "epr11268.1", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) ) -ROM_END - -// sys16B - -// sys16A custom - -/* - - -*/ - -// sys16B -ROM_START( tetrisbl ) - ROM_REGION( 0x040000, REGION_CPU1, ROMREGION_ERASEFF ) /* 68000 code */ - ROM_LOAD16_BYTE( "rom2.bin", 0x000000, 0x10000, CRC(4d165c38) SHA1(04706b1977ae18bd09bafaf8ea65f8e5f32e04b8) ) - ROM_LOAD16_BYTE( "rom1.bin", 0x000001, 0x10000, CRC(1e912131) SHA1(8f53504ac08942ee340489d84eab825e654d0a2c) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "epr12165.b9", 0x00000, 0x10000, CRC(62640221) SHA1(c311d3847a981d0e1609f9b3d80481565d32d78c) ) - ROM_LOAD( "epr12166.b10", 0x10000, 0x10000, CRC(9abd183b) SHA1(621b017cb34973f9227be383e26b5cd41aea9422) ) - ROM_LOAD( "epr12167.b11", 0x20000, 0x10000, CRC(2495fd4e) SHA1(2db94ead9223a67238a97e724668076fc43e5534) ) - - ROM_REGION( 0x020000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "obj0-o.rom", 0x00001, 0x10000, CRC(2fb38880) SHA1(0e1b601bbda78d1887951c1f7e752531c281bc83) ) - ROM_LOAD16_BYTE( "obj0-e.rom", 0x00000, 0x10000, CRC(d6a02cba) SHA1(d80000f92e754e89c6ca7b7273feab448fc9a061) ) - - ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) ) -ROM_END - -// sys16B -ROM_START( tturfbl ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "tt042197.rom", 0x00000, 0x10000, CRC(deee5af1) SHA1(0caba775021dc7e28ac6b7af8eac4f49d3102c83) ) - ROM_LOAD16_BYTE( "tt06c794.rom", 0x00001, 0x10000, CRC(90e6a95a) SHA1(014a0ae5cebcba9cc99e6ccde4ad5d938fab915c) ) - ROM_LOAD16_BYTE( "tt030be3.rom", 0x20000, 0x10000, CRC(100264a2) SHA1(d1ea4bf93f5472901ce95200f546ce9b58936aea) ) - ROM_LOAD16_BYTE( "tt05ef8a.rom", 0x20001, 0x10000, CRC(f787a948) SHA1(512b8cb2f5e9795171951e02c07cae957db41334) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "tt1574b3.rom", 0x00000, 0x10000, CRC(e9e630da) SHA1(e8471dedbb25475e4814d78b56f579fe9110461e) ) - ROM_LOAD( "tt16cf44.rom", 0x10000, 0x10000, CRC(4c467735) SHA1(8338b6605cbe2e076da0b3e3a47630409a79f002) ) - ROM_LOAD( "tt17d59e.rom", 0x20000, 0x10000, CRC(60c0f2fe) SHA1(3fea4ed757d47628f59ff940e40cb86b3b5b443b) ) - - ROM_REGION( 0x80000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "12279.1b", 0x00001, 0x10000, CRC(7a169fb1) SHA1(1ec6da0d2cfcf727e61f61c847fd8b975b64f944) ) - ROM_LOAD16_BYTE( "12283.5b", 0x00000, 0x10000, CRC(ae0fa085) SHA1(ae9af92d4dd0c8a0f064d24e647522b588fbd7f7) ) - ROM_LOAD16_BYTE( "12278.2b", 0x20001, 0x10000, CRC(961d06b7) SHA1(b1a9dea63785bfa2c0e7b931387b91dfcd27d79b) ) - ROM_LOAD16_BYTE( "12282.6b", 0x20000, 0x10000, CRC(e8671ee1) SHA1(a3732938c370f1936d867aae9c3d1e9bbfb57ede) ) - ROM_LOAD16_BYTE( "12277.3b", 0x40001, 0x10000, CRC(f16b6ba2) SHA1(00cc04c7b5aad82d51d2d252e1e57bcdc5e2c9e3) ) - ROM_LOAD16_BYTE( "12281.7b", 0x40000, 0x10000, CRC(1ef1077f) SHA1(8ce6fd7d32a20b93b3f91aaa43fe22720da7236f) ) - ROM_LOAD16_BYTE( "12276.4b", 0x60001, 0x10000, CRC(838bd71f) SHA1(82d9d127438f5e1906b1cf40bf3b4727f2ee5685) ) - ROM_LOAD16_BYTE( "12280.8b", 0x60000, 0x10000, CRC(639a57cb) SHA1(84fd8b96758d38f9e1ba1a3c2cf8099ec0452784) ) - - ROM_REGION( 0x30000, REGION_CPU2, 0 ) //* sound CPU */ - ROM_LOAD( "tt014d68.rom", 0x10000, 0x10000, CRC(d4aab1d9) SHA1(94885896d59da1ecabe2377a194fcf61eaae3765) ) - ROM_LOAD( "tt0246ff.rom", 0x20000, 0x10000, CRC(bb4bba8f) SHA1(b182a7e1d0425e93c2c1b93472aafd30a6af6907) ) -ROM_END - - -// sys16B -ROM_START( wb3bbl ) - ROM_REGION( 0x040000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "wb3_03", 0x000000, 0x10000, CRC(0019ab3b) SHA1(89d49a437690fa6e0c35bb9f1450042f89504714) ) - ROM_LOAD16_BYTE( "wb3_05", 0x000001, 0x10000, CRC(196e17ee) SHA1(71e4345b2c3d1612a3d424c9310fad1e23c8a9f7) ) - ROM_LOAD16_BYTE( "wb3_02", 0x020000, 0x10000, CRC(c87350cb) SHA1(55a8cb68d70b6060dd9a55e281e216ce3917ea5b) ) - ROM_LOAD16_BYTE( "wb3_04", 0x020001, 0x10000, CRC(565d5035) SHA1(e28a132f1a4ce9466945e231c54502178748af98) ) - - ROM_REGION( 0x30000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT ) /* tiles */ - ROM_LOAD( "wb3_14", 0x00000, 0x10000, CRC(d3f20bca) SHA1(0a87f709f8e2a913473512ede408e2cbc535443f) ) - ROM_LOAD( "wb3_15", 0x10000, 0x10000, CRC(96ff9d52) SHA1(791a9da4860e0d42fba98f80a3c6725ad8c73e33) ) - ROM_LOAD( "wb3_16", 0x20000, 0x10000, CRC(afaf0d31) SHA1(d4309329a0a543250788146b63b27ff058c02fc3) ) - - ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* sprites */ - ROM_LOAD16_BYTE( "epr12093.b4", 0x000001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) ) - ROM_LOAD16_BYTE( "epr12097.b8", 0x000000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) ) - ROM_LOAD16_BYTE( "epr12091.b2", 0x020001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) ) - ROM_LOAD16_BYTE( "epr12095.b6", 0x020000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) ) - ROM_LOAD16_BYTE( "epr12090.b1", 0x040001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) ) - ROM_LOAD16_BYTE( "epr12094.b5", 0x040000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) ) - ROM_LOAD16_BYTE( "epr12092.b3", 0x060001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) ) - ROM_LOAD16_BYTE( "epr12096.b7", 0x060000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound CPU */ - ROM_LOAD( "epr12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) ) -ROM_END - - -/* pre-System16 */ -/* rom parent machine inp init */ -/* Alien Syndrome */ - -/* System16A */ -/* rom parent machine inp init */ -GAME( 1987, shinobl, shinobi, shinobl, shinobi, shinobl, ROT0, "bootleg", "Shinobi (bootleg)", 0 ) - -/* System16B */ -/* rom parent machine inp init */ - -GAME( 1989, bayrtbl1, bayroute, bayroute, bayroute, bayrtbl1, ROT0, "bootleg", "Bay Route (bootleg set 1)", GAME_NOT_WORKING ) -GAME( 1989, bayrtbl2, bayroute, bayroute, bayroute, bayrtbl1, ROT0, "bootleg", "Bay Route (bootleg set 2)", GAME_NOT_WORKING ) -GAME( 1989, dduxbl, ddux, dduxbl, ddux, dduxbl, ROT0, "bootleg", "Dynamite Dux (bootleg)", 0 ) -GAME( 1989, eswatbl, eswat, eswatbl, eswat, eswatbl, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)", GAME_IMPERFECT_SOUND ) -GAME( 1989, fpointbl, fpoint, fpointbl, fpoint, fpointbl, ROT0, "bootleg", "Flash Point (World, bootleg)", 0 ) -GAME( 1989, fpointbj, fpoint, fpointbl, fpointbj, fpointbl, ROT0, "bootleg", "Flash Point (Japan, bootleg)", 0 ) - -GAME( 1989, goldnabl, goldnaxe, goldnaxe, goldnaxe, goldnabl, ROT0, "bootleg", "Golden Axe (bootleg)", GAME_NOT_WORKING ) - -GAME( 1988, passshtb, passsht, passsht, passsht, passsht, ROT270, "bootleg", "Passing Shot (2 Players) (bootleg)", GAME_IMPERFECT_SOUND ) -GAME( 1988, passht4b, passsht, passht4b, passht4b, passht4b, ROT270, "bootleg", "Passing Shot (4 Players) (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING ) -GAME( 1988, tetrisbl, tetris, tetrisbl, tetris, tetrisbl, ROT0, "bootleg", "Tetris (bootleg)", 0 ) -GAME( 1989, tturfbl, tturf, tturfbl, tturf, tturfbl, ROT0, "bootleg", "Tough Turf (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) -GAME( 1988, wb3bbl, wb3, wb3bbl, wb3b, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)", 0 ) diff --git a/src/drivers/system24.c b/src/drivers/system24.c deleted file mode 100644 index efe9fbf17..000000000 --- a/src/drivers/system24.c +++ /dev/null @@ -1,2427 +0,0 @@ -/* - * Sega System 24 - * - * Kudos to Charles MacDonald (http://cgfm2.emuviews.com) for his - * very useful research - * - * 3 Player controls for Gain Ground added by 'Unknown' - */ - -/* Missing: - - linescroll in special modes (qgh title, mahmajn2/qrouka attract mode) - - screen flipping (mix register 13 & 2) -*/ - -/* -Sega System24 Overview -Sega, 1987-1994 - -PCB Layout ----------- - -Note: The differences in the revisions is just the use of different sized RAMs -and the quantities of RAM used. - -(1st Revision) -837-6442 SYSTEM 24 (C)SEGA 1987 -|-------------------------------------------------------------------------------| -| YM2151 DSW1 EPRxxxxx.IC1 --------------------------| TMM41464-10 | -| DSW2 EPRxxxxx.IC2 |-------------------------- TMM41464-10 | -| CN2 TMM41464-10 | -| 68000 |---------| TMM41464-10 | -| |---------| |--------------| | 315-5295| TMM41464-10 | -| | 315-5296| |HITACHI FD1094| |(QFP100) | TMM41464-10 | -|-| |(QFP100) | |317-0xxx-0xx | | | TMM41464-10 | - | | | |--------------| |---------| TMM41464-10 | -|-| |---------| MB81C466-10 | -| MB81C466-10 | -| |---------| MB81C466-10 | -|S |---------| | 315-5295| MB81C466-10 | -|E 20MHz | 315-5295| |(QFP100) | MB81C466-10 | -|G |(QFP100) | | | MB81C466-10 | -|A | | |---------| MB81C466-10 | -| |---------| MB81C466-10 | -|5 |---------| | -|6 |---------| |---------| | 315-5293| | -| | 315-5294| | 315-5292| | (QFP160)| | -| |(QFP100) | | (QFP160)| 32MHz | | | -| MB81C78A-45 | | | | |---------| | -|-| MB81C78A-45 |---------| |---------|M5M4464-12 x4 MB81461-12 x6 | - | | -|-| YM3012 | -| |--------| | -| |315-5242| HM65256 HM65256 HM65256 M5M4464-12 x4 MB81461-12 x6 | -| |(QFP44) | HM65256 HM65256 HM65256 | -|------------|--------|---------------------------------------------------------| - - -(2nd Revision) -837-6442-01 SYSTEM 24 (C) SEGA 1987 -|-------------------------------------------------------------------------------| -| YM2151 DSW1 EPRxxxxx.IC1 --------------------------| TMM41464-10 | -| DSW2 EPRxxxxx.IC2 |-------------------------- TMM41464-10 | -| CN2 TMM41464-10 | -| 68000 |---------| TMM41464-10 | -| |---------| |--------------| | 315-5295| TMM41464-10 | -| | 315-5296| |HITACHI FD1094| |(QFP100) | TMM41464-10 | -|-| |(QFP100) | |317-0xxx-0xx | | | TMM41464-10 | - | | | |--------------| |---------| TMM41464-10 | -|-| |---------| TMM41464-10 | -| TMM41464-10 | -| |---------| TMM41464-10 | -|S |---------| | 315-5295| TMM41464-10 | -|E 20MHz | 315-5295| |(QFP100) | TMM41464-10 | -|G |(QFP100) | | | TMM41464-10 | -|A | | |---------| TMM41464-10 | -| |---------| TMM41464-10 | -|5 |---------| | -|6 |---------| |---------| | 315-5293| | -| | 315-5294| | 315-5292| | (QFP160)| | -| |(QFP100) | | (QFP160)| 32MHz | | | -| MB81C78A-45 | | | | |---------| | -|-| MB81C78A-45 |---------| |---------|M5M4464-12 x4 MB81461-12 x6 | - | | -|-| YM3012 (*) | -| |--------| | -| |315-5242| HM65256 HM65256 HM65256 M5M4464-12 x4 MB81461-12 x6 | -| |(QFP44) | HM65256 HM65256 HM65256 | -|------------|--------|---------------------------------------------------------| -(*) Unpopulated Sockets for MB81C4256 x4 - - -(3rd Revision) -837-6442-02 SYSTEM 24 (C) SEGA 1987 -|-------------------------------------------------------------------------------| -| YM2151 DSW1 EPRxxxxx.IC1 --------------------------| TC514256-10 | -| DSW2 EPRxxxxx.IC2 |-------------------------- TC514256-10 | -| CN2 TC514256-10 | -| 68000 |---------| TC514256-10 | -| |---------| |--------------| | 315-5295| TC514256-10 | -| | 315-5296| |HITACHI FD1094| |(QFP100) | TC514256-10 | -|-| |(QFP100) | |317-0xxx-0xx | | | TC514256-10 | - | | | |--------------| |---------| TC514256-10 | -|-| |---------| | -| | -| |---------| | -|S |---------| | 315-5295| | -|E 20MHz | 315-5295| |(QFP100) | | -|G |(QFP100) | | | | -|A | | |---------| | -| |---------| | -|5 |---------| | -|6 |---------| |---------| | 315-5293| | -| | 315-5294| | 315-5292| | (QFP160)| | -| |(QFP100) | | (QFP160)| 32MHz | | | -| MB81C78A-45 | | | | |---------| | -|-| MB81C78A-45 |---------| |---------| MB81461-12 x6 | - | | -|-| YM3012 | -| |--------| | -| |315-5242| HM65256 HM65256 TC51832 TC514256-10 x4 MB81461-12 x6 | -| |(QFP44) | HM65256 HM65256 TC51832 | -|------------|--------|---------------------------------------------------------| -Notes: - 315-5292: Custom Sega IC (QFP160, Tilemap Generator) - 315-5293: Custom Sega IC (QFP160, Object Generator) - 315-5294: Custom Sega IC (QFP100, Mixer Chip) - 315-5295: Custom Sega IC (QFP100, Object Generator) - 315-5296: Custom Sega IC (QFP100, I/O Chip) - 315-5242: Custom Sega IC (QFP44, Colour Encoder) - 68000 clock: 10.000MHz - Hitachi FD1094 clock: 10.000MHz - YM2151 clock: 4.000MHz - VSync: 58Hz - HSync: 24.33kHz (All System24 games require 24kHz monitor) - CN2 (Above PCB): Connector for ROM Board (Not used for floppy-based games) - CN2 (Below PCB): Connector for Floppy Controller Board (Not used for ROM-based games) - Main PCB Pinout same as System 16 - Floppy Drive is a standard 1.44 High Density drive, but the controller is custom and - the floppy disk format is custom. The floppy disk can be read with "Anadisk" - depending on the PC being used and it's floppy controller. Most clone PC's can't read the - System 24 floppies even with "Anadisk"[1]. But many brand-name PC's can. It's likely due to the - propietry nature of the components used in brand-name PC's. Generally the older and crappier - the PC is, the better chance you have of being able to read the floppy ;-) - - [1] Actually, most can _except_ for the Hotrod disks. Those 8K sectors are deadly. - - -Floppy Controller PCB Layout ----------------------------- - -837-6443 ___________ -|---------------| DATA |-- ||||---| -| PWR | -| 74LS367 74LS05 | -| 74LS367 74LS174 | -| MB4107 74LS05 | -| | -| MB89311 74LS139 8MHz | -| CN1 | -| --------------------------| | -| |-------------------------- | -|--------------------------------------| - - -I/O Controller PCB Layout -------------------------- - -834-6510 -(sticker 834-6510-01) ___________ -|----------------------| IDC 34 |---| -| | -| | -| D4701 %2 | -| | -| %3 | -| %1 74LS139 | -| CN1 | -| --------------------------| | -| |-------------------------- | -|--------------------------------------| -Notes: - - %1 - Unpopulated position for D4701 IC - %2 - Unpopulated position for MSM6253RS IC - %3 - Unpopulated position for MSM6253RS IC - - - CN1 is shown for completeness, it's actually underneath the I/O PCB. - - - The custom I/O board plugs into the top connector on the main board and - is used for player steering controls. The wiring diagram has 8 pins coming from - the connector. Four are labelled 'JST4P 1P (L)', the other four are labelled - 'JST4P 2P (R)'. I assume this is for an analog wheel or similar for player 1 - (being on the left) and player 2 (being on the right) - The wiring diagram also lists some buttons for both PL1 and PL2 coming from - the regular 56-way edge connector.... 'Nitro' and 'Accel' - The manual shows a controller that looks like a spinner which they call - a 'sensor board' with part 839-0138 and has a photo-sensor disc, which looks - like it's used for steering. - This board is used on Hot Rod, Rough Racer and the Golf games only. - - -ROM Board Layout ----------------- - -837-7187-01 -171-5875-01B -(SYSTEM24) (C)SEGA 1989 . 1991 -|------------------------------------------| -| | -| | -| J1 | -|CN1 ROM1.IC4 ROM2.IC5 J2 | -||-| J3 | -|| | J4 | -|| | ROM3.IC6 ROM4.IC7 | -|| | J5 | -|| | J6 | -|| | ROM5.IC8 ROM6.IC9 J7 | -|| | J8 | -|| | J9 | -|| | ROM7.IC10 ROM8.IC11 | -|| | | -|| | 74HC4040 74LS139 | -||-| EPM5032DC.IC2 | -|------------------------------------------| -Notes: - CN1: Connector for joining ROM board to Main Board. This connector is above and below the PCB to allow for chaining of several boards. - - The ROM Daughter board has a protection device on it at location IC2. It's an Erasable Programmable Logic Device; EPLD, like a normal PLD, - but uses an EPROM and is erasable and re-programmable. It's type is Altera EPM5032DC. It's part of the Altera MAX 5000 Programmable Logic - Device Family and (generally) has it's protection bit set at the factory. - - All jumpers are 2 pins, they're either shorted or not shorted. All ROMs are configured as the same type. - See the table below for details. - Jumpers to set ROM sizes: - 2M (J1, J3, J6, J8) - 4M (J2, J3, J7, J9) - 8M (J2, J4, J5, J9) - - -FD1094/Floppy/ROM details -------------------------- - -Game FD1094 Floppy ROMs Other -------------------------------------------------------------------------------------------------------------------------------------------------------------- -Hot Rod (3p Turbo) none DS3-5000-01D Main Board: EPR11338.IC1, EPR11339.IC2 I/O Controller PCB, Floppy Controller PCB - -Hot Rod (4p Rev C) none DS3-5000-01A Main Board: EPR11338.IC1, EPR11339.IC2 I/O Controller PCB, Floppy Controller PCB - Rev C - -Hot Rod (4p Japanese none DS3-5000-01A Main Board: EPR11338.IC1, EPR11339.IC2 I/O Controller PCB, Floppy Controller PCB - Rev B) Rev B - -Scramble Spirits none DS3-5000-02? Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - -Scramble Spirits 317-0058-02D DS3-5000-02D Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB -(Encrypted Version) - -Gain Ground (Japan) 317-0058-03B DS3-5000-03B Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - -Gain Ground 317-0058-03D DS3-5000-03D Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - -Crack Down (Japan) 317-0058-04B DS3-5000-04B Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - Rev A - -Crack Down 317-0058-04D DS3-5000-04D Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - -Super Masters Golf 317-0058-05B DS3-5000-05B Main Board: EPR12186.IC1, EPR12187.IC2 I/O Controller PCB, Floppy Controller PCB -Rev B - -Super Masters Golf 317-0058-05D DS3-5000-05D Main Board: EPR12186.IC1, EPR12187.IC2 I/O Controller PCB, Floppy Controller PCB -Rev D - -Rough Racer 317-0058-06B DS3-5000-06B Main Board: EPR12186.IC1, EPR12187.IC2 I/O Controller PCB, Floppy Controller PCB - -Bonanza Bros none DS3-5000-07D Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB - Daughter Board: MPR13187.IC4, MPR13188.IC5, MPR13189.IC6 - MPR13190.IC7 - EPLD: 317-0156 - -Quiz Syukudai wo 317-0058-08B DS3-5000-08B Main Board: EPR12186.IC1, EPR12187.IC2 Floppy Controller PCB -Wasuremashita - -Dynamic Country Club 317-0058-09D DS3-5000-09D Main Board: EPR13947.IC1, EPR13948.IC2 I/O Controller PCB, Floppy Controller PCB -(Disk version) - -Dynamic Country Club none none Main Board: EPR13947.IC1, EPR13948.IC2 -(ROM version) Daughter Board: EPR15345.IC4 EPR15344.IC5, MPR14097.IC6 - MPR14096.IC7 - EPLD: 317-0177 - -Quiz Mekuromeku Story none none Main Board: EPR15342.IC1, EPR15343.IC2 - Daughter Board: EPR15344.IC4, EPR15345.IC5, EPR15346.IC6 - EPR15347.IC7, EPR15348.IC8, EPR15349.IC9 - EPLD: 317-0205 - -Tokoro San no none none Main Board: EPR14812.IC1, EPR14813.IC2 -MahMahjan Daughter Board: MPR14819.IC4, MPR14820.IC5, MPR14821.IC6 - MPR14822IC.7, MPR14823.IC8, MPR14824.IC9 - MPR14825.IC10, MPR14826.IC11 - EPLD: 317-0200 - -Quiz Rouka Ni none none Main Board: EPR14484.IC1, EPR14485.IC2 -Tattenasai Daughter Board: EPR14482.IC5, EPR14483.IC7 - EPLD: 317-0191 - -Tokoro San no none none Main Board: EPR16798.IC1, EPR16799.IC2 -MahMahjan 2 Daughter Board: MPR16800.IC4, MPR16801.IC5, MPR16802.IC6 - MPR16803.IC7, MPR16804.IC8, MPR16805.IC9 - MPR16806.IC10, MPR16807.IC11 - EPLD: 317-0220 - -Quiz Ghost Hunter none none Main Board: EPR16899B.IC1, EPR16900B.IC2 - Daughter Board: MPR16901A.IC4, MPR16902A.IC5, MPR16903.IC6 - MPR16904.IC7, MPR16905.IC8, MPR16906.IC9 - MPR16907.IC10, MPR16908.IC11 - EPLD: 317-0226 - -Notes: - A regular 68000-10 is used in position IC3. If used, the Hitachi CPU sits at position IC4. - Where FD1094 is listed as 'none', a standard 68000 CPU is used instead at IC4 on the PCB. - - The last 3 digits of the floppy number is also the last part of the Hitachi CPU number....they're a matching pair. - So if one had the Hitachi part number and a floppy without a label, it's possible to create the correct floppy disk name from - the last 3 digits of the Hitachi FD1094 part number. - -*/ - - -/* system24temp_ functions / variables are from shared rewrite files, - once the rest of the rewrite is complete they can be removed, I - just made a copy & renamed them for now to avoid any conflicts -*/ - -#include "driver.h" -#include "cpu/m68000/m68k.h" -#include "system24.h" -#include "system16.h" -#include "vidhrdw/segaic24.h" -#include "sound/ym2151.h" -#include "sound/dac.h" -#include "sound/2151intf.h" - -UINT16* s24_mainram1; - -extern void s24_fd1094_machine_init(void); -extern void s24_fd1094_driver_init(void); - -VIDEO_START(system24); -VIDEO_UPDATE(system24); - - -// Floppy Fisk Controller - -static int fdc_status, fdc_track, fdc_sector, fdc_data; -static int fdc_phys_track, fdc_irq, fdc_drq, fdc_span, fdc_index_count; -static unsigned char *fdc_pt; -static int track_size; - -static void fdc_init(void) -{ - fdc_status = 0; - fdc_track = 0; - fdc_sector = 0; - fdc_data = 0; - fdc_phys_track = 0; - fdc_irq = 0; - fdc_drq = 0; - fdc_index_count = 0; -} - -static READ16_HANDLER( fdc_r ) -{ - if(!track_size) - return 0xffff; - - switch(offset) { - case 0: - fdc_irq = 0; - return fdc_status; - case 1: - return fdc_track; - case 2: - return fdc_sector; - case 3: - default: { - int res = fdc_data; - if(fdc_drq) { - fdc_span--; - // logerror("Read %02x (%d)\n", res, fdc_span); - if(fdc_span) { - fdc_pt++; - fdc_data = *fdc_pt; - } else { - logerror("FDC: transfert complete\n"); - fdc_drq = 0; - fdc_status = 0; - fdc_irq = 1; - } - } else - logerror("FDC: data read with drq down\n"); - return res; - } - } -} - -static WRITE16_HANDLER( fdc_w ) -{ - if(!track_size) - return; - - if(ACCESSING_LSB) { - data &= 0xff; - switch(offset) { - case 0: - fdc_irq = 0; - switch(data >> 4) { - case 0x0: - logerror("FDC: Restore\n"); - fdc_phys_track = fdc_track = 0; - fdc_irq = 1; - fdc_status = 4; - break; - case 0x1: - logerror("FDC: Seek %d\n", fdc_data); - fdc_phys_track = fdc_track = fdc_data; - fdc_irq = 1; - fdc_status = fdc_track ? 0 : 4; - break; - case 0x9: - logerror("Read multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track); - fdc_pt = memory_region(REGION_USER2) + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0)); - fdc_span = track_size; - fdc_status = 3; - fdc_drq = 1; - fdc_data = *fdc_pt; - break; - case 0xb: - logerror("Write multiple [%02x] %d..%d side %d track %d\n", data, fdc_sector, fdc_sector+fdc_data-1, data & 8 ? 1 : 0, fdc_phys_track); - fdc_pt = memory_region(REGION_USER2) + track_size*(2*fdc_phys_track+(data & 8 ? 1 : 0)); - fdc_span = track_size; - fdc_status = 3; - fdc_drq = 1; - break; - case 0xd: - logerror("FDC: Forced interrupt\n"); - fdc_span = 0; - fdc_drq = 0; - fdc_irq = data & 1; - fdc_status = 0; - break; - case 0xf: - if(data == 0xfe) - logerror("FDC: Assign mode %02x\n", fdc_data); - else if(data == 0xfd) - logerror("FDC: Assign parameter %02x\n", fdc_data); - else - logerror("FDC: Unknown command %02x\n", data); - break; - default: - logerror("FDC: Unknown command %02x\n", data); - break; - } - break; - case 1: - logerror("FDC: Track register %02x\n", data); - fdc_track = data; - break; - case 2: - logerror("FDC: Sector register %02x\n", data); - fdc_sector = data; - break; - case 3: - if(fdc_drq) { - // logerror("Write %02x (%d)\n", data, fdc_span); - *fdc_pt++ = data; - fdc_span--; - if(!fdc_span) { - logerror("FDC: transfert complete\n"); - fdc_drq = 0; - fdc_status = 0; - fdc_irq = 1; - } - } else - logerror("FDC: Data register %02x\n", data); - fdc_data = data; - break; - } - } -} - -static READ16_HANDLER( fdc_status_r ) -{ - if(!track_size) - return 0xffff; - - return 0x90 | (fdc_irq ? 2 : 0) | (fdc_drq ? 1 : 0) | (fdc_phys_track ? 0x40 : 0) | (fdc_index_count ? 0x20 : 0); -} - -static WRITE16_HANDLER( fdc_ctrl_w ) -{ - if(ACCESSING_LSB) - logerror("FDC control %02x\n", data & 0xff); -} - - -// I/O Mappers - -static UINT8 hotrod_io_r(int port) -{ - switch(port) { - case 0: - return readinputport(0); - case 1: - return readinputport(1); - case 2: - return 0xff; - case 3: - return 0xff; - case 4: - return readinputport(2); - case 5: // Dip switches - return readinputport(3); - case 6: - return readinputport(4); - case 7: // DAC - return 0xff; - } - return 0x00; -} - -static UINT8 dcclub_io_r(int port) -{ - switch(port) { - case 0: { - static UINT8 pos[16] = { 0, 1, 3, 2, 6, 4, 12, 8, 9 }; - return (readinputport(0) & 0xf) | ((~pos[readinputport(5)>>4]<<4) & 0xf0); - } - case 1: - return readinputport(1); - case 2: - return 0xff; - case 3: - return 0xff; - case 4: - return readinputport(2); - case 5: // Dip switches - return readinputport(3); - case 6: - return readinputport(4); - case 7: // DAC - return 0xff; - } - return 0x00; -} - -static int cur_input_line; - -static UINT8 mahmajn_io_r(int port) -{ - switch(port) { - case 0: - return ~(1 << cur_input_line); - case 1: - return 0xff; - case 2: - return readinputport(cur_input_line); - case 3: - return 0xff; - case 4: - return readinputport(8); - case 5: // Dip switches - return readinputport(9); - case 6: - return readinputport(10); - case 7: // DAC - return 0xff; - } - return 0x00; -} - -static UINT8 gground_io_r(int port) -{ - switch(port) { - case 0: - return readinputport(0); - case 1: - return readinputport(1); - case 2: // P3 inputs - return readinputport(2); - case 3: - return 0xff; - case 4: - return readinputport(3); - case 5: // Dip switches - return readinputport(4); - case 6: - return readinputport(5); - case 7: // DAC - return 0xff; - } - return 0x00; -} - -static void mahmajn_io_w(int port, UINT8 data) -{ - switch(port) { - case 3: - if(data & 4) - cur_input_line = (cur_input_line + 1) & 7; - break; - case 7: // DAC - DAC_0_signed_data_w(0, data); - break; - default: - fprintf(stderr, "Port %d : %02x\n", port, data & 0xff); - } -} - -static void hotrod_io_w(int port, UINT8 data) -{ - switch(port) { - case 3: // Lamps - break; - case 7: // DAC - DAC_0_signed_data_w(0, data); - break; - default: - fprintf(stderr, "Port %d : %02x\n", port, data & 0xff); - } -} - -static UINT8 hotrod_ctrl_cur; - -static WRITE16_HANDLER( hotrod3_ctrl_w ) -{ - if(ACCESSING_LSB) { - data &= 3; - hotrod_ctrl_cur = readinputport(9+data); - } -} - -static READ16_HANDLER( hotrod3_ctrl_r ) -{ - if(ACCESSING_LSB) { - switch(offset) { - // Steering dials - case 0: - return readinputport(5) & 0xff; - case 1: - return readinputport(5) >> 8; - case 2: - return readinputport(6) & 0xff; - case 3: - return readinputport(6) >> 8; - case 4: - return readinputport(7) & 0xff; - case 5: - return readinputport(7) >> 8; - case 6: - return readinputport(8) & 0xff; - case 7: - return readinputport(8) >> 8; - - case 8: { // Serial ADCs for the accel - int v = hotrod_ctrl_cur & 0x80; - hotrod_ctrl_cur <<= 1; - return v ? 0xff : 0; - } - } - } - return 0; -} - -static READ16_HANDLER( iod_r ) -{ - logerror("IO daughterboard read %02x (%x)\n", offset, activecpu_get_pc()); - return 0xffff; -} - -static WRITE16_HANDLER( iod_w ) -{ - logerror("IO daughterboard write %02x, %04x & %04x (%x)\n", offset, data, mem_mask, activecpu_get_pc()); -} - - -// Cpu #1 reset control - -static unsigned char resetcontrol, prev_resetcontrol; - -static void reset_reset(void) -{ - int changed = resetcontrol ^ prev_resetcontrol; - if(changed & 2) { - if(resetcontrol & 2) { - cpunum_set_input_line(1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(1, INPUT_LINE_RESET, PULSE_LINE); -// mame_printf_debug("enable 2nd cpu!\n"); -// DEBUGGER_BREAK; - s24_fd1094_machine_init(); - - } else - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - } - if(changed & 4) - sndti_reset(SOUND_YM2151, 0); - prev_resetcontrol = resetcontrol; -} - -static void resetcontrol_w(UINT8 data) -{ - resetcontrol = data; - logerror("Reset control %02x (%x:%x)\n", resetcontrol, cpu_getactivecpu(), activecpu_get_pc()); - reset_reset(); -} - - -// Rom board bank access - -static unsigned char curbank; - -static void reset_bank(void) -{ - if (memory_region(REGION_USER1)) - { - memory_set_bankptr(1, memory_region(REGION_USER1) + curbank * 0x40000); - memory_set_bankptr(2, memory_region(REGION_USER1) + curbank * 0x40000); - } -} - -static READ16_HANDLER( curbank_r ) -{ - return curbank; -} - -static WRITE16_HANDLER( curbank_w ) -{ - if(ACCESSING_LSB) { - curbank = data & 0xff; - reset_bank(); - } -} - - -// YM2151 - -static READ16_HANDLER( ym_status_r ) -{ - return YM2151_status_port_0_r(0); -} - -static WRITE16_HANDLER( ym_register_w ) -{ - if(ACCESSING_LSB) - YM2151_register_port_0_w(0, data); -} - -static WRITE16_HANDLER( ym_data_w ) -{ - if(ACCESSING_LSB) - YM2151_data_port_0_w(0, data); -} - - -// Protection magic latch - -static UINT8 mahmajn_mlt[8] = { 5, 1, 6, 2, 3, 7, 4, 0 }; -static UINT8 mahmajn2_mlt[8] = { 6, 0, 5, 3, 1, 4, 2, 7 }; -static UINT8 gqh_mlt[8] = { 3, 7, 4, 0, 2, 6, 5, 1 }; -static UINT8 bnzabros_mlt[8] = { 2, 4, 0, 5, 7, 3, 1, 6 }; -static UINT8 qrouka_mlt[8] = { 1, 6, 4, 7, 0, 5, 3, 2 }; -static UINT8 quizmeku_mlt[8] = { 0, 3, 2, 4, 6, 1, 7, 5 }; -static UINT8 dcclub_mlt[8] = { 4, 3, 7, 0, 2, 6, 1, 5 }; - -static UINT8 mlatch; -static const unsigned char *mlatch_table; - -static READ16_HANDLER( mlatch_r ) -{ - return mlatch; -} - -static WRITE16_HANDLER( mlatch_w ) -{ - if(ACCESSING_LSB) { - int i; - unsigned char mxor = 0; - if(!mlatch_table) { - logerror("Protection: magic latch accessed but no table loaded (%d:%x)\n", cpu_getactivecpu(), activecpu_get_pc()); - return; - } - - data &= 0xff; - - if(data != 0xff) { - for(i=0; i<8; i++) - if(mlatch & (1<gamedrv->name,"gground")) - { - - if (activecpu_get_pc()==0x0084aa) - { - ggground_kludge = 1; - return mame_rand(Machine); - - } - if (activecpu_get_pc()==0x084ba) - { - /* Clear IRQ line so IRQ doesn't happen too early */ - cpunum_set_input_line(1, 5, CLEAR_LINE); - - /* set a timer to generate an irq at the needed point */ - if (ggground_kludge == 1) - { - timer_set(TIME_IN_USEC(180000), 0, gground_generate_kludge_irq); - ggground_kludge = 0; - } - return 1; - } - } - - if (!strcmp(Machine->gamedrv->name,"ggroundj")) - { - - if (activecpu_get_pc()==0x0084ac) - { - ggground_kludge = 1; - return mame_rand(Machine); - - } - if (activecpu_get_pc()==0x084bc) - { - /* Clear IRQ line so IRQ doesn't happen too early */ - cpunum_set_input_line(1, 5, CLEAR_LINE); - - /* set a timer to generate an irq at the needed point */ - if (ggground_kludge == 1) - { - timer_set(TIME_IN_USEC(180000), 0, gground_generate_kludge_irq); - ggground_kludge = 0; - } - return 1; - } - } - - switch(offset) { - case 2: - irq_timer_pend0 = 0; - cpunum_set_input_line(0, IRQ_TIMER+1, CLEAR_LINE); - break; - case 3: - irq_timer_pend1 = 0; - cpunum_set_input_line(1, IRQ_TIMER+1, CLEAR_LINE); - break; - } - return 0xffff; -} - -static INTERRUPT_GEN(irq_vbl) -{ - int irq = cpu_getiloops() ? IRQ_SPRITE : IRQ_VBLANK; - int mask = 1 << irq; - - if(irq_allow0 & mask) - cpunum_set_input_line(0, 1+irq, HOLD_LINE); - - if(irq_allow1 & mask) - cpunum_set_input_line(1, 1+irq, HOLD_LINE); - - if(!cpu_getiloops()) { - // Ensure one index pulse every 20 frames - // The is some code in bnzabros at 0x852 that makes it crash - // if the pulse train is too fast - fdc_index_count++; - if(fdc_index_count >= 20) - fdc_index_count = 0; - } -} - -static void irq_ym(int irq) -{ - irq_yms = irq; - cpunum_set_input_line(0, IRQ_YM2151+1, irq_yms && (irq_allow0 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(1, IRQ_YM2151+1, irq_yms && (irq_allow1 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); -} - - -/* -CPU1: -00-03 ROM (1) -04-07 ROM -08-0f ramlo (2) -10-13 ROM -14-17 ROM -f0-f3 ramprg (3) -fc-ff ramhi (4) - -CPU2: -00-03 ramprg -04-07 ROM -08-0f ramlo -10-13 ROM -14-17 ROM -f0-f3 ramprg -fc-ff ramhi -*/ - -static ADDRESS_MAP_START( system24_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x140000) AM_ROM AM_SHARE(1) - AM_RANGE(0x080000, 0x0fffff) AM_RAM AM_SHARE(2) - AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sys24_tile_r, sys24_tile_w) - AM_RANGE(0x220000, 0x220001) AM_WRITENOP // Unknown, always 0 - AM_RANGE(0x240000, 0x240001) AM_WRITENOP // Horizontal synchronization register - AM_RANGE(0x260000, 0x260001) AM_WRITENOP // Vertical synchronization register - AM_RANGE(0x270000, 0x270001) AM_WRITENOP // Video synchronization switch - AM_RANGE(0x280000, 0x29ffff) AM_READWRITE(sys24_char_r, sys24_char_w) - AM_RANGE(0x400000, 0x403fff) AM_READWRITE(MRA16_RAM, system24temp_sys16_paletteram1_w) AM_BASE(&paletteram16) - AM_RANGE(0x404000, 0x40401f) AM_READWRITE(sys24_mixer_r, sys24_mixer_w) - AM_RANGE(0x600000, 0x63ffff) AM_READWRITE(sys24_sprite_r, sys24_sprite_w) - AM_RANGE(0x800000, 0x80007f) AM_READWRITE(system24temp_sys16_io_r, system24temp_sys16_io_w) - AM_RANGE(0x800100, 0x800101) AM_WRITE(ym_register_w) - AM_RANGE(0x800102, 0x800103) AM_READWRITE(ym_status_r, ym_data_w) - AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(irq_r, irq_w) - AM_RANGE(0xb00000, 0xb00007) AM_READWRITE(fdc_r, fdc_w) - AM_RANGE(0xb00008, 0xb0000f) AM_READWRITE(fdc_status_r, fdc_ctrl_w) - AM_RANGE(0xb80000, 0xbbffff) AM_ROMBANK(1) - AM_RANGE(0xbc0000, 0xbc0001) AM_READWRITE(curbank_r, curbank_w) - AM_RANGE(0xbc0006, 0xbc0007) AM_READWRITE(mlatch_r, mlatch_w) - AM_RANGE(0xc00000, 0xc00011) AM_READWRITE(hotrod3_ctrl_r, hotrod3_ctrl_w) - AM_RANGE(0xc80000, 0xcbffff) AM_ROMBANK(2) - AM_RANGE(0xcc0000, 0xcc0001) AM_READWRITE(curbank_r, curbank_w) - AM_RANGE(0xcc0006, 0xcc0007) AM_READWRITE(mlatch_r, mlatch_w) -AM_RANGE(0xd00300, 0xd00301) AM_WRITE(MWA16_NOP) - AM_RANGE(0xf00000, 0xf3ffff) AM_RAM AM_SHARE(3) - AM_RANGE(0xf40000, 0xf7ffff) AM_ROM AM_SHARE(1) - AM_RANGE(0xf80000, 0xffffff) AM_RAM AM_SHARE(2) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( system24_cpu2_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_SHARE(3) AM_BASE(&s24_mainram1) // RAM here overrides the ROM mirror - AM_RANGE(0x040000, 0x07ffff) AM_ROM AM_SHARE(1) - AM_RANGE(0x080000, 0x0fffff) AM_RAM AM_SHARE(2) - AM_RANGE(0x100000, 0x13ffff) AM_MIRROR(0x040000) AM_ROM AM_SHARE(1) - AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sys24_tile_r, sys24_tile_w) - AM_RANGE(0x220000, 0x220001) AM_WRITENOP // Unknown, always 0 - AM_RANGE(0x240000, 0x240001) AM_WRITENOP // Horizontal synchronization register - AM_RANGE(0x260000, 0x260001) AM_WRITENOP // Vertical synchronization register - AM_RANGE(0x270000, 0x270001) AM_WRITENOP // Video synchronization switch - AM_RANGE(0x280000, 0x29ffff) AM_READWRITE(sys24_char_r, sys24_char_w) - AM_RANGE(0x400000, 0x403fff) AM_READWRITE(MRA16_RAM, system24temp_sys16_paletteram1_w) - AM_RANGE(0x404000, 0x40401f) AM_READWRITE(sys24_mixer_r, sys24_mixer_w) - AM_RANGE(0x600000, 0x63ffff) AM_READWRITE(sys24_sprite_r, sys24_sprite_w) - AM_RANGE(0x800000, 0x80007f) AM_READWRITE(system24temp_sys16_io_r, system24temp_sys16_io_w) - AM_RANGE(0x800100, 0x800101) AM_WRITE(ym_register_w) - AM_RANGE(0x800102, 0x800103) AM_READWRITE(ym_status_r, ym_data_w) - AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(irq_r, irq_w) - AM_RANGE(0xb00000, 0xb00007) AM_READWRITE(fdc_r, fdc_w) - AM_RANGE(0xb00008, 0xb0000f) AM_READWRITE(fdc_status_r, fdc_ctrl_w) - AM_RANGE(0xb80000, 0xbbffff) AM_ROMBANK(1) - AM_RANGE(0xbc0000, 0xbc0001) AM_READWRITE(curbank_r, curbank_w) - AM_RANGE(0xbc0006, 0xbc0007) AM_READWRITE(mlatch_r, mlatch_w) - AM_RANGE(0xc00000, 0xc00011) AM_READWRITE(hotrod3_ctrl_r, hotrod3_ctrl_w) - AM_RANGE(0xc80000, 0xcbffff) AM_ROMBANK(2) - AM_RANGE(0xcc0000, 0xcc0001) AM_READWRITE(curbank_r, curbank_w) - AM_RANGE(0xcc0006, 0xcc0007) AM_READWRITE(mlatch_r, mlatch_w) -AM_RANGE(0xd00300, 0xd00301) AM_WRITE(MWA16_NOP) - AM_RANGE(0xf00000, 0xf3ffff) AM_RAM AM_SHARE(3) - AM_RANGE(0xf40000, 0xf7ffff) AM_ROM AM_SHARE(1) - AM_RANGE(0xf80000, 0xffffff) AM_RAM AM_SHARE(2) -ADDRESS_MAP_END - - -static DRIVER_INIT(qgh) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = gqh_mlt; - track_size = 0; -} - -static DRIVER_INIT(dcclub) -{ - system24temp_sys16_io_set_callbacks(dcclub_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = dcclub_mlt; - track_size = 0; -} - -static DRIVER_INIT(qrouka) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = qrouka_mlt; - track_size = 0; -} - -static DRIVER_INIT(quizmeku) -{ - system24temp_sys16_io_set_callbacks(gground_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = quizmeku_mlt; - track_size = 0; -} - -static DRIVER_INIT(mahmajn) -{ - - system24temp_sys16_io_set_callbacks(mahmajn_io_r, mahmajn_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = mahmajn_mlt; - track_size = 0; - cur_input_line = 0; -} - -static DRIVER_INIT(mahmajn2) -{ - - system24temp_sys16_io_set_callbacks(mahmajn_io_r, mahmajn_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = mahmajn2_mlt; - track_size = 0; - cur_input_line = 0; -} - -static DRIVER_INIT(hotrod) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - - // Sector Size - // 1 8192 - // 2 1024 - // 3 1024 - // 4 1024 - // 5 512 - // 6 256 - - track_size = 0x2f00; -} - -static DRIVER_INIT(bnzabros) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = bnzabros_mlt; - - // Sector Size - // 1 2048 - // 2 2048 - // 3 2048 - // 4 2048 - // 5 2048 - // 6 1024 - // 7 256 - - track_size = 0x2d00; -} - -static DRIVER_INIT(sspirits) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); - -} - -static DRIVER_INIT(sspiritj) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2f00; - s24_fd1094_driver_init(); - -} - -static DRIVER_INIT(dcclubfd) -{ - system24temp_sys16_io_set_callbacks(dcclub_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = dcclub_mlt; - track_size = 0x2d00; - s24_fd1094_driver_init(); - -} - - - - -static DRIVER_INIT(sgmast) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); - -} - -static DRIVER_INIT(qsww) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); -} - -static DRIVER_INIT(gground) -{ - system24temp_sys16_io_set_callbacks(gground_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); -} - -static DRIVER_INIT(crkdown) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); -} - -static DRIVER_INIT(roughrac) -{ - system24temp_sys16_io_set_callbacks(hotrod_io_r, hotrod_io_w, resetcontrol_w, iod_r, iod_w); - mlatch_table = 0; - track_size = 0x2d00; - s24_fd1094_driver_init(); -} - - -static NVRAM_HANDLER(system24) -{ - if(!track_size || !file) - return; - if(read_or_write) - mame_fwrite(file, memory_region(REGION_USER2), 2*track_size); - else - mame_fread(file, memory_region(REGION_USER2), 2*track_size); -} - -static MACHINE_RESET(system24) -{ - cpunum_set_input_line(1, INPUT_LINE_HALT, ASSERT_LINE); - prev_resetcontrol = resetcontrol = 0x06; - fdc_init(); - curbank = 0; - reset_bank(); - irq_init(); - mlatch = 0x00; -} - -INPUT_PORTS_START( hotrod ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN5 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN6 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Start Credit" ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x40, 0x40, "Coin Chute" ) - PORT_DIPSETTING( 0x40, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3) - - PORT_START /* p4 not used on this set */ - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3) - - PORT_START /* p4 not used on this set */ - PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( hotrodj ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN5 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN6 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN7 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN8 ) - - PORT_START - PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START - PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Start Credit" ) - PORT_DIPSETTING( 0x04, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x08, 0x08, "Play Mode" ) - PORT_DIPSETTING( 0x08, "4 Player" ) - PORT_DIPSETTING( 0x00, "2 Player" ) - PORT_DIPNAME( 0x10, 0x10, "Game Style" ) - PORT_DIPSETTING( 0x10, "4 Sides" ) - PORT_DIPSETTING( 0x00, "2 Sides" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x40, 0x40, "Coin Chute" ) - PORT_DIPSETTING( 0x40, "Separate" ) - PORT_DIPSETTING( 0x00, "Common" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(4) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(4) -INPUT_PORTS_END - -INPUT_PORTS_START( bnzabros ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Start Credit" ) - PORT_DIPSETTING( 0x02, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x04, 0x04, "Coin Chute" ) - PORT_DIPSETTING( 0x04, "Common" ) - PORT_DIPSETTING( 0x00, "Individual" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0xc0, "3" ) - PORT_DIPSETTING( 0x80, "4" ) - PORT_DIPSETTING( 0x40, "2" ) - PORT_DIPSETTING( 0x00, "1" ) -INPUT_PORTS_END - -INPUT_PORTS_START( crkdown ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("P1 Service") //enabled with "Separate" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("P2 Service") //enabled with "Separate" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("All Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Coin Chute" ) - PORT_DIPSETTING( 0x40, "Common" ) - PORT_DIPSETTING( 0x00, "Separate" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( roughrac ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("P1 Service") //enabled with "Separate" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("P2 Service") //enabled with "Separate" - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("All Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Coin Chute" ) - PORT_DIPSETTING( 0x40, "Common" ) - PORT_DIPSETTING( 0x00, "Separate" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( sspirits ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "2" ) - - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x30, "600K" ) - PORT_DIPSETTING( 0x20, "500K" ) - PORT_DIPSETTING( 0x10, "800K" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - - -INPUT_PORTS_START( qgh ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "5" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( dcclub ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, "Start Credit" ) - PORT_DIPSETTING( 0x01, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Timing Meter" ) - PORT_DIPSETTING( 0x08, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) - PORT_DIPNAME( 0x10, 0x10, "Initial Balls" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPNAME( 0x20, 0x20, "Balls Limit" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - PORT_START - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0x8f) PORT_SENSITIVITY(16) PORT_KEYDELTA(16) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( quizmeku ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x00, "Play Mode" ) - PORT_DIPSETTING( 0x01, "2 Player" ) - PORT_DIPSETTING( 0x00, "4 Player" ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "2" ) - PORT_DIPSETTING( 0x04, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x10, 0x10, "Answer Counts" ) - PORT_DIPSETTING( 0x10, "Every" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( mahmajn ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("A") PORT_CODE(KEYCODE_A) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("B") PORT_CODE(KEYCODE_B) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("C") PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("D") PORT_CODE(KEYCODE_D) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("E") PORT_CODE(KEYCODE_E) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("F") PORT_CODE(KEYCODE_F) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("G") PORT_CODE(KEYCODE_G) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("H") PORT_CODE(KEYCODE_H) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("I") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("J") PORT_CODE(KEYCODE_J) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("M") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("N") PORT_CODE(KEYCODE_N) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Chi") PORT_CODE(KEYCODE_SPACE) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pon") PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Kan") PORT_CODE(KEYCODE_LCONTROL) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reach") PORT_CODE(KEYCODE_LSHIFT) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Ron") PORT_CODE(KEYCODE_Z) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Start Score" ) - PORT_DIPSETTING( 0x02, "3000" ) - PORT_DIPSETTING( 0x00, "2000" ) - PORT_DIPNAME( 0x0c, 0x0c, "Difficulty (computer)" ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x30, 0x30, "Difficulty (player)" ) - PORT_DIPSETTING( 0x30, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( gground ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("P1 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("P2 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_NAME("P3 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("All Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x18, "Little Easy" ) - PORT_DIPSETTING( 0x1c, "Moderate" ) - PORT_DIPSETTING( 0x0c, "Little Hard" ) - PORT_DIPSETTING( 0x14, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x60, 0x60, "Time Limit Per Stage" ) - PORT_DIPSETTING( 0x20, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, "Moderate" ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, "Clock Of Time Limit" ) - PORT_DIPSETTING( 0x80, "1.00 sec" ) - PORT_DIPSETTING( 0x00, "0.80 sec" ) -INPUT_PORTS_END - -INPUT_PORTS_START( ggroundj ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("P1 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("P2 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_NAME("P3 Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("All Service") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - SYS16_COINAGE - - PORT_START - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Easier ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x18, "Little Easy" ) - PORT_DIPSETTING( 0x1c, "Moderate" ) - PORT_DIPSETTING( 0x0c, "Little Hard" ) - PORT_DIPSETTING( 0x14, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x60, 0x60, "Time Limit Per Stage" ) - PORT_DIPSETTING( 0x20, DEF_STR( Easiest ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x60, "Moderate" ) - PORT_DIPSETTING( 0x00, DEF_STR( Hard ) ) - PORT_DIPNAME( 0x80, 0x80, "Clock Of Time Limit" ) - PORT_DIPSETTING( 0x80, "1.00 sec" ) - PORT_DIPSETTING( 0x00, "0.80 sec" ) -INPUT_PORTS_END - -ROM_START( hotrod ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-11339.ic2", 0x000000, 0x20000, CRC(75130e73) SHA1(e079739f4a3da3807aac570442c5afef1a7d7b0e) ) - ROM_LOAD16_BYTE( "epr-11338.ic1", 0x000001, 0x20000, CRC(7d4a7ff3) SHA1(3d3af04d990d232ba0a8fe155de59bc632a0a461) ) - - ROM_REGION( 0x1d6000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-01d_3p_turbo.bin", 0x000000, 0x1d6000, CRC(627e8053) SHA1(d1a95f99078f5a29cccacfb1b30c3c9ead7b605c) ) -ROM_END - -ROM_START( hotroda ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-11339.ic2", 0x000000, 0x20000, CRC(75130e73) SHA1(e079739f4a3da3807aac570442c5afef1a7d7b0e) ) - ROM_LOAD16_BYTE( "epr-11338.ic1", 0x000001, 0x20000, CRC(7d4a7ff3) SHA1(3d3af04d990d232ba0a8fe155de59bc632a0a461) ) - - ROM_REGION( 0x1d6000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-01d.bin", 0x000000, 0x1d6000, CRC(abf67b02) SHA1(f397435eaad691ff5a38d6d1d27840ed95a62df3) ) // World? 3 Playe TURBO -ROM_END - -ROM_START( hotrodj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-11339.ic2", 0x000000, 0x20000, CRC(75130e73) SHA1(e079739f4a3da3807aac570442c5afef1a7d7b0e) ) - ROM_LOAD16_BYTE( "epr-11338.ic1", 0x000001, 0x20000, CRC(7d4a7ff3) SHA1(3d3af04d990d232ba0a8fe155de59bc632a0a461) ) - - ROM_REGION( 0x1d6000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-01a-revb.bin", 0x000000, 0x1d6000, CRC(a39a0c2d) SHA1(ea8104c2266c48f480837aa7679c0a6f0c5e5452) ) // Japanese 4 Player -ROM_END - -ROM_START( qgh ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "16900b", 0x000000, 0x20000, CRC(20d7b7d1) SHA1(345b228c27e5f2fef9a2b8b5f619c59450a070f8) ) - ROM_LOAD16_BYTE( "16899b", 0x000001, 0x20000, CRC(397b3ba9) SHA1(1773212cd87dcff840f3953ec368be7e2394faf0) ) - - ROM_REGION16_BE( 0x400000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "16902a", 0x000000, 0x80000, CRC(d35b7706) SHA1(341bca0af6b6d3f326328a88cdc69c7897b83a0d) ) - ROM_LOAD16_BYTE( "16901a", 0x000001, 0x80000, CRC(ab4bcb33) SHA1(8acd73096eb485c6dc83da6adfcc47d5d0f5b7f3) ) - ROM_LOAD16_BYTE( "16904", 0x100000, 0x80000, CRC(10987c88) SHA1(66f893690565aed613427421958ebe225a20ad0f) ) - ROM_LOAD16_BYTE( "16903", 0x100001, 0x80000, CRC(c19f9e46) SHA1(f1275674a8b44957428d79402f240ca21a34f48d) ) - ROM_LOAD16_BYTE( "16906", 0x200000, 0x80000, CRC(99c6773e) SHA1(568570b607d2cbbedb39ceae5bbc479478fae4ca) ) - ROM_LOAD16_BYTE( "16905", 0x200001, 0x80000, CRC(3922bbe3) SHA1(4378ca900f96138b5e33265ddac56af7b45afbc8) ) - ROM_LOAD16_BYTE( "16908", 0x300000, 0x80000, CRC(407ec20f) SHA1(c8a909d8e9ba024a37a5af6b7920fe7023f80d49) ) - ROM_LOAD16_BYTE( "16907", 0x300001, 0x80000, CRC(734b0a82) SHA1(d3fb31c55e79b99040beb7c49faaf2e17b95aa87) ) -ROM_END - -ROM_START( qrouka ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "14485", 0x000000, 0x20000, CRC(fc0085f9) SHA1(0250d1e17e19b541b85198ec4207e55bfbd5c32e) ) - ROM_LOAD16_BYTE( "14484", 0x000001, 0x20000, CRC(f51c641c) SHA1(3f2fd0be7d58c75e88565393da5e810655413b53) ) - - ROM_REGION16_BE( 0x200000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "14482", 0x000000, 0x80000, CRC(7a13dd97) SHA1(bfe9950d2cd41f3f866520923c1ed7b8da1990ec) ) - ROM_LOAD16_BYTE( "14483", 0x100000, 0x80000, CRC(f3eb51a0) SHA1(6904830ff5e7aa5f016e115572fb6da678896ede) ) -ROM_END - -ROM_START( mahmajn ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr14813.bin", 0x000000, 0x20000, CRC(ea38cf4b) SHA1(118ab2e0ae20a4db5e619945dfbb3f200de3979c) ) - ROM_LOAD16_BYTE( "epr14812.bin", 0x000001, 0x20000, CRC(5a3cb4a7) SHA1(c0f21282140e8e6e927664f5f2b90525ae0207e9) ) - - ROM_REGION16_BE( 0x400000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "mpr14820.bin", 0x000000, 0x80000, CRC(8d2a03d3) SHA1(b3339bcd101bcfe042e2a1cfdc8baef0a86624df) ) - ROM_LOAD16_BYTE( "mpr14819.bin", 0x000001, 0x80000, CRC(e84c4827) SHA1(54741295e1bdca7d0c78eb795a68b92212d43b2e) ) - ROM_LOAD16_BYTE( "mpr14822.bin", 0x100000, 0x80000, CRC(7c3dcc51) SHA1(a199c2c71cda44a2c8755074c1007d83c8d45d2d) ) - ROM_LOAD16_BYTE( "mpr14821.bin", 0x100001, 0x80000, CRC(bd8dc543) SHA1(fd50b14fa73307a62dc0b522cfedb8b3332c407e) ) - ROM_LOAD16_BYTE( "mpr14824.bin", 0x200000, 0x80000, CRC(38311933) SHA1(237d9a8ffe14ba9ec371bb571d7c9e74a93fe1f3) ) - ROM_LOAD16_BYTE( "mpr14823.bin", 0x200001, 0x80000, CRC(4c8d4550) SHA1(be8717d4080ce932fc8272ebe54e2b0a60b20edd) ) - ROM_LOAD16_BYTE( "mpr14826.bin", 0x300000, 0x80000, CRC(c31b8805) SHA1(b446388c83af2e14300b0c4248470d3a8c504f2c) ) - ROM_LOAD16_BYTE( "mpr14825.bin", 0x300001, 0x80000, CRC(191080a1) SHA1(407c1c5fa4c76732e8a444860094542e90a1e8e8) ) -ROM_END - -ROM_START( mahmajn2 ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr16799.bin", 0x000000, 0x20000, CRC(3a34cf75) SHA1(d22bf6334668af29167cf4244d18f9cd2e7ff7d6) ) - ROM_LOAD16_BYTE( "epr16798.bin", 0x000001, 0x20000, CRC(662923fa) SHA1(dcd3964d899d3f34dab22ffcd1a5af895804fae1) ) - - ROM_REGION16_BE( 0x400000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "mpr16801.bin", 0x000000, 0x80000, CRC(74855a17) SHA1(d2d8e7da7b261e7cb64605284d2c78fbd1465b69) ) - ROM_LOAD16_BYTE( "mpr16800.bin", 0x000001, 0x80000, CRC(6dbc1e02) SHA1(cce5734243ff171759cecb5c05c12dc743a25c1d) ) - ROM_LOAD16_BYTE( "mpr16803.bin", 0x100000, 0x80000, CRC(9b658dd6) SHA1(eaaae289a3555aa6a92f57eea964dbbf48c5c2a4) ) - ROM_LOAD16_BYTE( "mpr16802.bin", 0x100001, 0x80000, CRC(b4723225) SHA1(acb8923c7d9908b1112f8d1f2512f18236915e5d) ) - ROM_LOAD16_BYTE( "mpr16805.bin", 0x200000, 0x80000, CRC(d15528df) SHA1(bda1dd5c98867c2e7666380bca0bc7eef8022fbc) ) - ROM_LOAD16_BYTE( "mpr16804.bin", 0x200001, 0x80000, CRC(a0de08e2) SHA1(2c36b66e74b88fb076e2eaa250c6d06ee0b4ac88) ) - ROM_LOAD16_BYTE( "mpr16807.bin", 0x300000, 0x80000, CRC(816188bb) SHA1(76b2690a6156766a1af94f01f6de1209b7756b2c) ) - ROM_LOAD16_BYTE( "mpr16806.bin", 0x300001, 0x80000, CRC(54b353d3) SHA1(40632e4571b44ee215b5a1f7aab9d89c460a5c9e) ) -ROM_END - -ROM_START( bnzabros ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION16_BE( 0x200000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "mpr-13188-h.2", 0x000000, 0x80000, CRC(d3802294) SHA1(7608e71e8ef398ac24dbf851994253bca5ace625) ) - ROM_LOAD16_BYTE( "mpr-13187-h.1", 0x000001, 0x80000, CRC(e3d8c5f7) SHA1(5b1e8646debee2f2ef272ddd3320b0a17192fbbe) ) - ROM_LOAD16_BYTE( "mpr-13190.4", 0x100000, 0x40000, CRC(0b4df388) SHA1(340478bba82069ab745d6d8703e6801411fd2fc4) ) - ROM_RELOAD ( 0x180000, 0x40000) - ROM_LOAD16_BYTE( "mpr-13189.3", 0x100001, 0x40000, CRC(5ea5a2f3) SHA1(514b5446303c50aeb1d6d10d0a3f210da2577e16) ) - ROM_RELOAD ( 0x180001, 0x40000) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-07d.img", 0x000000, 0x1c2000, CRC(ea7a3302) SHA1(5f92efb2e1135c1f3eeca38ba5789739a22dbd11) ) /* Region letter needs to be verfied */ -ROM_END - -ROM_START( bnzabrsj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION16_BE( 0x200000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "mpr-13188-h.2", 0x000000, 0x80000, CRC(d3802294) SHA1(7608e71e8ef398ac24dbf851994253bca5ace625) ) - ROM_LOAD16_BYTE( "mpr-13187-h.1", 0x000001, 0x80000, CRC(e3d8c5f7) SHA1(5b1e8646debee2f2ef272ddd3320b0a17192fbbe) ) - ROM_LOAD16_BYTE( "mpr-13190.4", 0x100000, 0x40000, CRC(0b4df388) SHA1(340478bba82069ab745d6d8703e6801411fd2fc4) ) - ROM_RELOAD ( 0x180000, 0x40000) - ROM_LOAD16_BYTE( "mpr-13189.3", 0x100001, 0x40000, CRC(5ea5a2f3) SHA1(514b5446303c50aeb1d6d10d0a3f210da2577e16) ) - ROM_RELOAD ( 0x180001, 0x40000) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-07b.img", 0x000000, 0x1c2000, CRC(efa7f2a7) SHA1(eb905bff88fa40324fb92b91ac8a5878648c26e5) ) -ROM_END - -ROM_START( quizmeku ) // Quiz Mekuromeku Story - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr15343.ic2", 0x000000, 0x20000, CRC(c72399a7) SHA1(bfbf0079ea63f89bca4ce9081aed5d5c1d9d169a) ) - ROM_LOAD16_BYTE( "epr15342.ic1", 0x000001, 0x20000, CRC(0968ac84) SHA1(4e1170ac123adaec32819754b5075531ff1925fe) ) - - ROM_REGION16_BE( 0x400000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "epr15345.ic5", 0x000000, 0x80000, CRC(88030b5d) SHA1(d2feeedb9a64c3dc8dd25716209f945d12fa9b53) ) - ROM_LOAD16_BYTE( "epr15344.ic4", 0x000001, 0x80000, CRC(dd11b382) SHA1(2b0f49fb307a9aba0f295de64782ee095c557170) ) - ROM_LOAD16_BYTE( "mpr15347.ic7", 0x100000, 0x80000, CRC(0472677b) SHA1(93ae57a2817b6b54c99814fca28ef51f7ff5e559) ) - ROM_LOAD16_BYTE( "mpr15346.ic6", 0x100001, 0x80000, CRC(746d4d0e) SHA1(7863abe36126684772a4459d5b6f3b24670ec02b) ) - ROM_LOAD16_BYTE( "mpr15349.ic9", 0x200000, 0x80000, CRC(770eecf1) SHA1(86cc5b4a325198dc1da1446ecd8e718415b7998a) ) - ROM_LOAD16_BYTE( "mpr15348.ic8", 0x200001, 0x80000, CRC(7666e960) SHA1(f3f88d5c8318301a8c73141de60292f8349ac0ce) ) -ROM_END - -ROM_START( sspirits ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - /* this image was repaired using other images, a dump of a known good disk would be preferable */ - ROM_LOAD( "ds3-5000-02-repaired.img", 0x000000, 0x1c2000, BAD_DUMP CRC(cefbda69) SHA1(5b47ae0f1584ce1eb697246273ba761bd9e981c1) ) -ROM_END - -ROM_START( sspiritj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-11339.ic2", 0x000000, 0x20000, CRC(75130e73) SHA1(e079739f4a3da3807aac570442c5afef1a7d7b0e) ) - ROM_LOAD16_BYTE( "epr-11338.ic1", 0x000001, 0x20000, CRC(7d4a7ff3) SHA1(3d3af04d990d232ba0a8fe155de59bc632a0a461) ) - - ROM_REGION( 0x1d6000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-02-rev-a.img", 0x000000, 0x1d6000, CRC(0385470f) SHA1(62c1bfe3a88b2dee44629809e08b4b8a5770eaab) ) -ROM_END - -ROM_START( sspirtfc ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-02c.key", 0x0000, 0x2000, CRC(ebae170e) SHA1(b6d1e1b6943a35b96e98e426ecb39bb5a42fb643) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-02c.img", 0x000000, 0x1c2000, NO_DUMP ) -ROM_END - -ROM_START( sgmast ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-05d.key", 0x0000, 0x2000, NO_DUMP ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - /* not sure which of these images is best */ - ROM_LOAD( "ds3-5000-05d.img", 0x000000, 0x1c2000, CRC(e9a69f93) SHA1(dc15e47ed78373688c1fab72a9605528068ad702) ) - ROM_LOAD( "ds3-5000-05d_alt.img", 0x000000, 0x1c2000, CRC(e71a8ebf) SHA1(60feb0af1cfc0508c8d68c8572495eec1763dc93) ) - ROM_LOAD( "ds3-5000-05d_alt2.img", 0x000000, 0x1c2000, CRC(460bdcd5) SHA1(49b7384ac5742b45b7369f220f33f04ef955e992) ) - -ROM_END - -ROM_START( sgmastc ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-05c.key", 0x0000, 0x2000, CRC(ae0eabe5) SHA1(692d7565bf9c5b32cc80bb4bd88c9193aa04cbb0) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-05c.img", 0x000000, 0x1c2000, CRC(06c4f834) SHA1(5e178ed0edff7721c93f76da2e03ae188dc5efa4) ) -ROM_END - -ROM_START( sgmastj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-05b.key", 0x0000, 0x2000, CRC(adc0c83b) SHA1(2328d82d5057062eeb0072fd57f0422218cf24fc) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-05b.img", 0x000000, 0x1c2000, CRC(a136668c) SHA1(7203f9d11023605a0a4b52a4be330785c8f7b623) ) -ROM_END - -ROM_START( qsww ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-08b.key", 0x0000, 0x2000, CRC(fe0a336a) SHA1(f7a5b2c1a057d0bb8c1ae0453c58aa8f5fb731b9) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-08b.img", 0x000000, 0x1c2000, CRC(5a886d38) SHA1(2e974a9ffe3534da4fb117c579b8b0e61a63542c) ) -ROM_END - -ROM_START( gground ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-03c.key", 0x0000, 0x2000, CRC(e1785bbd) SHA1(b4bebb2829299f1c0815d6a5f317a2526b322f63) ) /* Region letter needs to be verfied */ - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-03c.img", 0x000000, 0x1c2000, CRC(5c5910f2) SHA1(9ed564a03c0d4ca4a207f3ecfb7336c6cbcaa70f) ) /* Region letter needs to be verfied */ -ROM_END - -ROM_START( ggroundj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-03b.key", 0x0000, 0x2000, CRC(84aecdba) SHA1(ceddf967359a6e76543fe1ab00be53d0a11fe1ab) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-03b.img", 0x000000, 0x1c2000, CRC(7200dac9) SHA1(07cf33bf2a0da36e3852de409959f30128cdbf77) ) -ROM_END - -ROM_START( crkdown ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-04d.key", 0x0000, 0x2000, CRC(934ac358) SHA1(73418e22c9d201bc3fec5c63284858958c010e05) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-04d.img", 0x000000, 0x1c2000, CRC(8679032c) SHA1(887b245a70652897fbda736b60e81a123866ec12) ) -ROM_END - -ROM_START( crkdownj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-04b.key", 0x0000, 0x2000, CRC(4a99a202) SHA1(d7375f09e7246ecd60ba0e48f049e9e252af92a8) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-04b.img", 0x000000, 0x1c2000, CRC(5daa1a9a) SHA1(ce2f07b83b607bbbdb70f1ae344c1d897d601809) ) -ROM_END - -ROM_START( dcclub ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13948.bin", 0x000000, 0x20000, CRC(d6a031c8) SHA1(45b7e3cd2c7412e24f547cd4185166199d3938d5) ) - ROM_LOAD16_BYTE( "epr13947.bin", 0x000001, 0x20000, CRC(7e3cff5e) SHA1(ff8cb776d2491796feeb8892c7e644e590438945) ) - - ROM_REGION16_BE( 0x200000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "epr-15345.2", 0x000000, 0x80000, CRC(d9e120c2) SHA1(b18b76733078d8534c6f0d8950632ab51e6a10ab) ) - ROM_LOAD16_BYTE( "epr-15344.1", 0x000001, 0x80000, CRC(8f8b9f74) SHA1(de6b923118bea60197547ad016cb5d5e1a8f372b) ) - ROM_LOAD16_BYTE( "mpr-14097-t.4",0x100000, 0x80000, CRC(4bd74cae) SHA1(5aa90bd5d2b8e2338ef0fe41d1f794e8d51321e1) ) - ROM_LOAD16_BYTE( "mpr-14096-t.3",0x100001, 0x80000, CRC(38d96502) SHA1(c68b3c5c83fd0839c3f6f81189c310ec19bdf1c4) ) -ROM_END - -ROM_START( dcclubj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr13948.bin", 0x000000, 0x20000, CRC(d6a031c8) SHA1(45b7e3cd2c7412e24f547cd4185166199d3938d5) ) - ROM_LOAD16_BYTE( "epr13947.bin", 0x000001, 0x20000, CRC(7e3cff5e) SHA1(ff8cb776d2491796feeb8892c7e644e590438945) ) - - ROM_REGION16_BE( 0x200000, REGION_USER1, 0) - ROM_LOAD16_BYTE( "epr-14095a.2", 0x000000, 0x80000, CRC(88d184e9) SHA1(519F3A22E1619DE9D5F13A45B85EBD249EBFA979) ) - ROM_LOAD16_BYTE( "epr-14094a.1", 0x000001, 0x80000, CRC(7dd2b7d4) SHA1(C7EAF9E2700E0C55F7E867F5CD3FFAA5AAE97956) ) - ROM_LOAD16_BYTE( "mpr-14097-t.4",0x100000, 0x80000, CRC(4bd74cae) SHA1(5aa90bd5d2b8e2338ef0fe41d1f794e8d51321e1) ) - ROM_LOAD16_BYTE( "mpr-14096-t.3",0x100001, 0x80000, CRC(38d96502) SHA1(c68b3c5c83fd0839c3f6f81189c310ec19bdf1c4) ) -ROM_END - -ROM_START( dcclubfd ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 68000 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-09d.key", 0x0000, 0x2000, CRC(a91ebffb) SHA1(70b8b4272ca456491f254d115b434bb4ce73f049) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-09d.img", 0x000000, 0x1c2000, CRC(69870887) SHA1(e47a997c2c783bf6670ab213ebe2ee35492eba34) ) -ROM_END - -ROM_START( roughrac ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* FD1094 code */ - ROM_LOAD16_BYTE( "epr-12187.ic2", 0x000000, 0x20000, CRC(e83783f3) SHA1(4b3b32df7de85aef9cd77c8a4ffc17e10466b638) ) - ROM_LOAD16_BYTE( "epr-12186.ic1", 0x000001, 0x20000, CRC(ce76319d) SHA1(0ede61f0700f9161285c768fa97636f0e42b96f8) ) - - ROM_REGION( 0x2000, REGION_USER3, 0 ) /* decryption key */ - ROM_LOAD( "317-0058-06b.key", 0x000000, 0x2000, CRC(6a5bf536) SHA1(3fc3e93ce8a47d7ee86da889efad2e7eca6e2ee9) ) - - ROM_REGION( 0x1c2000, REGION_USER2, 0) - ROM_LOAD( "ds3-5000-06b.img", 0x000000, 0x1c2000, CRC(a7fb2149) SHA1(c04266ae31700b085ab45606aed83019a563de70) ) -ROM_END - - -static struct YM2151interface ym2151_interface = -{ - irq_ym -}; - -static MACHINE_DRIVER_START( system24 ) - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(system24_cpu1_map, 0) - MDRV_CPU_VBLANK_INT(irq_vbl, 2) - - MDRV_CPU_ADD(M68000, 10000000) - MDRV_CPU_PROGRAM_MAP(system24_cpu2_map, 0) - - MDRV_SCREEN_REFRESH_RATE(58) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(100)) - MDRV_INTERLEAVE(4) - - MDRV_MACHINE_RESET(system24) - MDRV_NVRAM_HANDLER(system24) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(62*8, 48*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) - MDRV_PALETTE_LENGTH(8192*2) - - MDRV_VIDEO_START(system24) - MDRV_VIDEO_UPDATE(system24) - - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 4000000) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.50) - MDRV_SOUND_ROUTE(1, "right", 0.50) - - MDRV_SOUND_ADD(DAC, 0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.50) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.50) -MACHINE_DRIVER_END - -/* I think the letter after the disk code is the region - 'b' = Japan - 'c' = europe? - 'd' = US -*/ - -/* Disk Based Games */ -/* 01 */GAME( 1988, hotrod, 0, system24, hotrod, hotrod, ROT0, "Sega", "Hot Rod (World, 3 Players, Turbo set 1)", 0 ) -/* 01 */GAME( 1988, hotroda, hotrod, system24, hotrod, hotrod, ROT0, "Sega", "Hot Rod (World, 3 Players, Turbo set 2)", GAME_NO_SOUND ) -/* 01 */GAME( 1988, hotrodj, hotrod, system24, hotrodj, hotrod, ROT0, "Sega", "Hot Rod (Japan, 4 Players)", GAME_NO_SOUND ) -/* 02 */GAME( 1988, sspirits, 0, system24, sspirits, sspirits, ROT270, "Sega", "Scramble Spirits", 0 ) -/* 02 */GAME( 1988, sspiritj, sspirits, system24, sspirits, sspiritj, ROT270, "Sega", "Scramble Spirits (Japan, Floppy DS3-5000-02-REV-A)", 0 ) -/* 02 */GAME( 1988, sspirtfc, sspirits, system24, sspirits, sspirits, ROT270, "Sega", "Scramble Spirits (FD1094 317-0058-02c)",GAME_NOT_WORKING ) /* MISSING disk image */ -/* 03 */GAME( 1988, gground, 0, system24, gground, gground, ROT270, "Sega", "Gain Ground (World, FD1094 317-0058-03c?)", 0 ) -/* 03 */GAME( 1988, ggroundj, gground, system24, ggroundj, gground, ROT270, "Sega", "Gain Ground (Japan, FD1094 317-0058-03b)", 0 ) -/* 04 */GAME( 1989, crkdown, 0, system24, crkdown, crkdown, ROT0, "Sega", "Crack Down (US, FD1094 317-0058-04d)", GAME_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display) -/* 04 */GAME( 1989, crkdownj, crkdown, system24, crkdown, crkdown, ROT0, "Sega", "Crack Down (Japan, FD1094 317-0058-04b)", GAME_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display) -/* 05 */GAME( 1989, sgmast, 0, system24, bnzabros, sgmast, ROT0, "Sega", "Super Masters Golf (FD1094 317-0058-05d?)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION ) // NOT decrypted -/* 05 */GAME( 1989, sgmastc, sgmast, system24, bnzabros, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (World, FD1094 317-0058-05c)", GAME_NOT_WORKING ) // controls, some gfx offset / colour probs? -/* 05 */GAME( 1989, sgmastj, sgmast, system24, bnzabros, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (Japan, FD1094 317-0058-05b)", GAME_NOT_WORKING ) // controls, some gfx offset / colour probs? -/* 06 */GAME( 1990, roughrac, 0, system24, roughrac, roughrac, ROT0, "Sega", "Rough Racer (Japan, FD1094 317-0058-06b)", 0 ) -/* 07 */GAME( 1990, bnzabros, 0, system24, bnzabros, bnzabros, ROT0, "Sega", "Bonanza Bros (US, Floppy DS3-5000-07d?)", 0 ) -/* 07 */GAME( 1990, bnzabrsj, bnzabros, system24, bnzabros, bnzabros, ROT0, "Sega", "Bonanza Bros (Japan, Floppy DS3-5000-07b)", 0 ) -/* 08 */GAME( 1991, qsww, 0, system24, bnzabros, qsww, ROT0, "Sega", "Quiz Syukudai wo Wasuremashita (Japan, FD1094 317-0058-08b)", GAME_IMPERFECT_GRAPHICS ) // wrong bg colour on title -/* 09 */GAME( 1991, dcclubfd, 0, system24, dcclub, dcclubfd, ROT0, "Sega", "Dynamic Country Club (FD1094 317-0058-09d)", 0 ) - -/* ROM Based */ -GAME( 1991, dcclub, 0, system24, dcclub, dcclub, ROT0, "Sega", "Dynamic Country Club", 0 ) -GAME( 1991, dcclubj, dcclub, system24, dcclub, dcclub, ROT0, "Sega", "Dynamic Country Club (Japan)", 0 ) -GAME( 1992, mahmajn, 0, system24, mahmajn, mahmajn, ROT0, "Sega", "Tokoro San no MahMahjan", 0 ) -GAME( 1994, qgh, 0, system24, qgh, qgh, ROT0, "Sega", "Quiz Ghost Hunter", 0 ) -GAME( 1994, quizmeku, 0, system24, quizmeku, quizmeku, ROT0, "Sega", "Quiz Mekurumeku Story", 0 ) -GAME( 1994, qrouka, 0, system24, qgh, qrouka, ROT0, "Sega", "Quiz Rouka Ni Tattenasai", 0 ) -GAME( 1994, mahmajn2, 0, system24, mahmajn, mahmajn2, ROT0, "Sega", "Tokoro San no MahMahjan 2", 0 ) diff --git a/src/drivers/taito_b.c b/src/drivers/taito_b.c deleted file mode 100644 index 4691f665e..000000000 --- a/src/drivers/taito_b.c +++ /dev/null @@ -1,4032 +0,0 @@ -/*************************************************************************** - -Taito B System - -driver by Jarek Burczynski, with help from: -Nicola Salmoria, Brian A. Troha, Stephane Humbert, Gerardo Oporto Jorrin, David Graves -heavily based on Taito F2 System driver by Brad Oliver, Andrew Prime - -The board uses TC0220IOC, TC0260DAR, TC0180VCU, and TC0140SYT. -Sonic Blast Man uses TC0510NIO instead of TC0220IOC. - -The palette resolution is 12 bits in some games and 15 bits in others. - -TODO: -- hitice: ice trails might not be 100% correct (I'm doubling them horizontally) -- hitice: the pixel bitmap is not cleared on startup nor during attract mode. There's a - kludge to fix it in the first case. -- rambo3a: has a lot of unmapped writes in the VCU area (log up to end of - round 2) [viofight also does a few] -- The eprom games could have a single io handler if it's confirmed all - 3 use a special 4 player I/O chip. Puzzle Bobble and qzshowby use TC0640FIO -- can the text layer scroll? (hitice: glass walls at beginning of match, also check when the - screen wiggles after the puck hits the wall shortly into the first round of attract mode) -- sprites are not in perfect sync with the background. Check ashura, they are almost - tight during gameplay but completely off in attract mode. - -The Taito B system is a fairly flexible hardware platform. It supports 4 -separate layers of graphics - one 64x64 tiled scrolling background plane -of 16x16 tiles, a similar foreground plane, a sprite plane capable of sprite -zooming and 'pageable' text plane of 8x8 tiles. - -Sound is handled by a Z80 with a YM2610 or YM2610B or YM2203's connected -to it. Different sound chips - depending on game. - -The memory map for each of the games is similar but not identical. - - -Memory map for Rastan Saga 2 / Nastar / Nastar Warrior : - -CPU 1 : 68000, uses irqs 2 & 4. One of the IRQs just sets a flag which is -checked in the other IRQ routine. Could be timed to vblank... - - 0x000000 - 0x07ffff : ROM - 0x200000 - 0x201fff : palette RAM, 4096 total colors (0x1000 words) - 0x400000 - 0x403fff : 64x64 foreground layer (offsets 0x0000-0x1fff tile codes; offsets 0x2000-0x3fff tile attributes) - 0x404000 - 0x407fff : 64x64 background layer (offsets 0x0000-0x1fff tile codes; offsets 0x2000-0x3fff tile attributes) - 0x408000 - 0x408fff : 64x64 text layer - 0x410000 - 0x41197f : ??k of sprite RAM (this is the range that Rastan Saga II tests at startup time) - 0x413800 - 0x413bff : foreground (line/screen) scroll RAM - 0x413c00 - 0x413fff : background (line/screen) scroll RAM - - 0x600000 - 0x607fff : 32k of CPU RAM - 0x800000 - 0x800003 : communication with sound CPU via TC0140SYT - 0xa00000 - 0xa0000f : input ports and dipswitches - - -Notes: - Master of Weapon has secret command to select level: - (sequence is the same as in Metal Black): - - boot machine with service switch pressed - - message appears: "SERVICE SWITCH ERROR" - - press 1p start, 1p start, 1p start, service switch, 1p start - - message appears: "SELECT BY DOWN SW" - - select level with joy down/up - - press 1p start button - -Other games that have this feature: - Rastan Saga 2 - Crime City - Violence Fight - Rambo 3 - - - -List of known B-System games: - - Rastan Saga II (YM2610 sound) - Ashura Blaster (YM2610 sound) - Crime City (YM2610 sound) - Rambo 3 (two different versions)(YM2610 sound) - Tetris (YM2610 sound) - Space Invaders DX (YM2610 sound, MB87078 - electronic volume control) - Silent Dragon (YM2610 sound) - Sel Feena (YM2610 sound) - Ryujin (YM2610 sound) - - Violence Fight (YM2203 sound, 1xMSM6295 ) - Hit The Ice (YM2203 sound, 2xMSM6295 ) - Master of Weapons (YM2203 sound) - - Quiz Sekai wa SHOW by shobai (YM2610-B sound, MB87078 - electronic volume control) - Puzzle Bobble (YM2610-B sound, MB87078 - electronic volume control) - Sonic Blast Man (YM2610-B sound) - -Nastar -Taito, 1988 - -PCB Layout ----------- - -K1100419A J1100178A -|---------------------------------------| -|68000 B81-13.31 B81-08.50 DSWA DSWB| -| B81-09.30 B81-10.49 TCO220IOC | -|24MHz B81-05.21 6264 6264 | -| B81-06.22 6264 6264 | -| 27.164MHz | -|B81-04.15 J| -|B81-03.14 A| -| TCO180VCU 6264 M| -|62256 62256 M| -| TCO260DAR A| -|62256 62256 | -| MB3735 | -|62256 62256 6264 | -| TCO140SYT B81-11.37 | -|62256 62256 Z80A | -| 16MHz | -|B81-02.2 | -|B81-01.1 YM2610 YM3016 TL074 TL074| -|---------------------------------------| - -Notes: - 68000 clock: 12.000MHz (24 / 2) - Z80 clock: 4.000MHz (16 / 4) - YM2610 clock: 8.000MHz (16 / 2) - Vsync: 60Hz - - - -Violence Fight -Taito, 1989 - -PCB Layout ----------- - -K1100511A J1100213A -|---------------------------------------| -|C16-01.1 6264 6264 DSWA DSWB | -|C16-02.2 C16-06.22 C16-07.41 TCO220IOC | -|C16-03.3 C16-14.23 C16-11.42 | -|C16-04.4 68000 6116 | -| / C16-08 | -| PALS\ C16-09 TCO260DAR J| -| TCO180VCU A| -| M| -| 27.164MHz TL074 M| -| A| -| 24MHz | -| YM3014B | -| PC060HA YM2203 | -| 62256 62256 C16-05.47 | -| 62256 62256 Z80B MB3735| -| 62256 62256 C16-12.32 | -| 62256 62256 6264 M6295 TL074 | -| 4.224MHz | -|---------------------------------------| - -Notes: - 68000 clock: 12.000MHz (24 / 2) - Z80 clock: 6.000MHz (24 / 4) - YM2203 clock: 3.000MHz (24 / 8) - M6295 clock: 1.056MHz (4.224 / 4), sample rate = 1056000 / 132 - Vsync: 60Hz - - - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "machine/eeprom.h" -#include "machine/mb87078.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2203intf.h" -#include "sound/2610intf.h" -#include "sound/okim6295.h" - -extern UINT16 *taitob_scroll; -extern UINT16 *TC0180VCU_ram; -extern UINT16 *taitob_spriteram; -extern UINT16 *taitob_pixelram; - -VIDEO_START( taitob_color_order0 ); -VIDEO_START( taitob_color_order1 ); -VIDEO_START( taitob_color_order2 ); -VIDEO_START( hitice ); -VIDEO_EOF( taitob ); - -VIDEO_RESET( hitice ); - -VIDEO_UPDATE( taitob ); - -WRITE16_HANDLER( TC0180VCU_word_w ); -READ16_HANDLER ( TC0180VCU_word_r ); - -READ16_HANDLER( TC0180VCU_framebuffer_word_r ); -WRITE16_HANDLER( TC0180VCU_framebuffer_word_w ); - -WRITE16_HANDLER( taitob_v_control_w ); -READ16_HANDLER ( taitob_v_control_r ); - -WRITE16_HANDLER( hitice_pixelram_w ); -WRITE16_HANDLER( hitice_pixel_scroll_w ); - -static WRITE8_HANDLER( bankswitch_w ) -{ - memory_set_bank(1, (data - 1) & 3); -} - -void rsaga2_interrupt2(int x) -{ - cpunum_set_input_line(0,2,HOLD_LINE); -} - -static INTERRUPT_GEN( rastansaga2_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,rsaga2_interrupt2); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - - -void crimec_interrupt3(int x) -{ - cpunum_set_input_line(0,3,HOLD_LINE); -} - -static INTERRUPT_GEN( crimec_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,crimec_interrupt3); - cpunum_set_input_line(0, 5, HOLD_LINE); -} - - -void hitice_interrupt6(int x) -{ - cpunum_set_input_line(0,6,HOLD_LINE); -} - -static INTERRUPT_GEN( hitice_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,hitice_interrupt6); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - - -void rambo3_interrupt1(int x) -{ - cpunum_set_input_line(0,1,HOLD_LINE); -} - -static INTERRUPT_GEN( rambo3_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,rambo3_interrupt1); - cpunum_set_input_line(0, 6, HOLD_LINE); -} - - -void pbobble_interrupt5(int x) -{ - cpunum_set_input_line(0,5,HOLD_LINE); -} - -static INTERRUPT_GEN( pbobble_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,pbobble_interrupt5); - cpunum_set_input_line(0, 3, HOLD_LINE); -} - -void viofight_interrupt1(int x) -{ - cpunum_set_input_line(0,1,HOLD_LINE); -} - -static INTERRUPT_GEN( viofight_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,viofight_interrupt1); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -void masterw_interrupt4(int x) -{ - cpunum_set_input_line(0,4,HOLD_LINE); -} - -static INTERRUPT_GEN( masterw_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,masterw_interrupt4); - cpunum_set_input_line(0, 5, HOLD_LINE); -} - -void silentd_interrupt4(int x) -{ - cpunum_set_input_line(0,4,HOLD_LINE); -} - -static INTERRUPT_GEN( silentd_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,silentd_interrupt4); - cpunum_set_input_line(0, 6, HOLD_LINE); -} - -void selfeena_interrupt4(int x) -{ - cpunum_set_input_line(0,4,HOLD_LINE); -} - -static INTERRUPT_GEN( selfeena_interrupt ) -{ - timer_set(TIME_IN_CYCLES(5000,0),0,selfeena_interrupt4); - cpunum_set_input_line(0, 6, HOLD_LINE); -} - -void sbm_interrupt5(int x)//4 -{ - cpunum_set_input_line(0,5,HOLD_LINE); -} - -static INTERRUPT_GEN( sbm_interrupt )//5 -{ - timer_set(TIME_IN_CYCLES(10000,0),0,sbm_interrupt5); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - - - -static READ16_HANDLER( tracky1_hi_r ) -{ - return input_port_5_word_r(0,0); -} -static READ16_HANDLER( tracky1_lo_r ) -{ - return (input_port_5_word_r(0,0) & 0xff) <<8; -} -static READ16_HANDLER( trackx1_hi_r ) -{ - return input_port_6_word_r(0,0); -} -static READ16_HANDLER( trackx1_lo_r ) -{ - return (input_port_6_word_r(0,0) & 0xff) <<8; -} -static READ16_HANDLER( tracky2_hi_r ) -{ - return input_port_7_word_r(0,0); -} -static READ16_HANDLER( tracky2_lo_r ) -{ - return (input_port_7_word_r(0,0) & 0xff) <<8; -} -static READ16_HANDLER( trackx2_hi_r ) -{ - return input_port_8_word_r(0,0); -} -static READ16_HANDLER( trackx2_lo_r ) -{ - return (input_port_8_word_r(0,0) & 0xff) <<8; -} - - -static WRITE16_HANDLER( gain_control_w ) -{ - if (ACCESSING_MSB) - { - if (offset==0) - { - MB87078_data_w(0, data>>8, 0); - //logerror("MB87078 dsel=0 data=%4x\n",data); - } - else - { - MB87078_data_w(0, data>>8, 1); - //logerror("MB87078 dsel=1 data=%4x\n",data); - } - } -} - -/*************************************************************************** - - Puzzle Bobble, Qzshowby, Space DX EEPROM - -***************************************************************************/ - -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* lock command */ - "0100110000" /* unlock command*/ -}; - -static NVRAM_HANDLER( taito_b ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - if (file) - { - EEPROM_load(file); - } - } -} - -static READ16_HANDLER( eeprom_r ) -{ - int res; - - res = (EEPROM_read_bit() & 0x01); - res |= input_port_1_word_r(0,0) & 0xfe; /* coin inputs */ - - return res; -} - -static UINT16 eep_latch = 0; - -static READ16_HANDLER( eep_latch_r ) -{ - return eep_latch; -} - -static WRITE16_HANDLER( eeprom_w ) -{ - COMBINE_DATA(&eep_latch); - - if (ACCESSING_MSB) - { - data >>= 8; /*M68k byte write*/ - - /* bit 0 - Unused */ - /* bit 1 - Unused */ - /* bit 2 - Eeprom data */ - /* bit 3 - Eeprom clock */ - /* bit 4 - Eeprom reset (active low) */ - /* bit 5 - Unused */ - /* bit 6 - Unused */ - /* bit 7 - set all the time (Chip Select?) */ - - /* EEPROM */ - EEPROM_write_bit(data & 0x04); - EEPROM_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - } -} - -/************************************************************************* - The input area for the three eprom games ($500000-2f) may well be - addressing a single i/o chip with 4 player and coin inputs as - standard. - - Does anyone have custom chip numbers from the Space Invaders DX ? - (qzshowby and pbobble do use TC0640FIO). - -*************************************************************************/ - -static UINT16 coin_word=0; - -static READ16_HANDLER( player_34_coin_ctrl_r ) -{ - return coin_word; -} - -static WRITE16_HANDLER( player_34_coin_ctrl_w ) -{ - COMBINE_DATA(&coin_word); - - /* coin counters and lockout */ - coin_lockout_w(2,~data & 0x0100); - coin_lockout_w(3,~data & 0x0200); - coin_counter_w(2, data & 0x0400); - coin_counter_w(3, data & 0x0800); -} - -static READ16_HANDLER( pbobble_input_bypass_r ) -{ - switch (offset) - { - case 0x01: - return eeprom_r(0,mem_mask) << 8; - - default: - return TC0640FIO_r( offset ) << 8; - } -} - - - -#define TC0180VCU_MEMR( ADDR ) \ - AM_RANGE(ADDR+0x00000, ADDR+0x0ffff) AM_READ(TC0180VCU_word_r) \ - AM_RANGE(ADDR+0x10000, ADDR+0x1197f) AM_READ(MRA16_RAM) \ - AM_RANGE(ADDR+0x11980, ADDR+0x137ff) AM_READ(MRA16_RAM) \ - AM_RANGE(ADDR+0x13800, ADDR+0x13fff) AM_READ(MRA16_RAM) \ - AM_RANGE(ADDR+0x18000, ADDR+0x1801f) AM_READ(taitob_v_control_r) \ - AM_RANGE(ADDR+0x40000, ADDR+0x7ffff) AM_READ(TC0180VCU_framebuffer_word_r) - -#define TC0180VCU_MEMW( ADDR ) \ - AM_RANGE(ADDR+0x00000, ADDR+0x0ffff) AM_WRITE(TC0180VCU_word_w) AM_BASE(&TC0180VCU_ram) \ - AM_RANGE(ADDR+0x10000, ADDR+0x1197f) AM_WRITE(MWA16_RAM) AM_BASE(&taitob_spriteram) \ - AM_RANGE(ADDR+0x11980, ADDR+0x137ff) AM_WRITE(MWA16_RAM) \ - AM_RANGE(ADDR+0x13800, ADDR+0x13fff) AM_WRITE(MWA16_RAM) AM_BASE(&taitob_scroll) \ - AM_RANGE(ADDR+0x18000, ADDR+0x1801f) AM_WRITE(taitob_v_control_w) \ - AM_RANGE(ADDR+0x40000, ADDR+0x7ffff) AM_WRITE(TC0180VCU_framebuffer_word_w) - - -static ADDRESS_MAP_START( rastsag2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x600000, 0x607fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) /* palette */ - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0220IOC_halfword_byteswap_r) - - AM_RANGE(0x800000, 0x800001) AM_READ(MRA16_NOP) - AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rastsag2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x600000, 0x607fff) AM_WRITE(MWA16_RAM) /* Main RAM */ /*ashura up to 603fff only*/ - - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( crimec_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_byteswap_r) - - AM_RANGE(0x600000, 0x600001) AM_READ(MRA16_NOP) - AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( crimec_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( tetrist_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x800000, 0x807fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_READ(MRA16_RAM) /*palette*/ - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r) - - AM_RANGE(0x200000, 0x200001) AM_READ(MRA16_NOP) - AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tetrist_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x800000, 0x807fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tetrista_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) /*palette*/ - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x600000, 0x600001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r) /* DSW A/B, player inputs*/ - AM_RANGE(0x600002, 0x600003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ ) - - AM_RANGE(0xa00000, 0xa00001) AM_READ(MRA16_NOP) - AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tetrista_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x600000, 0x600001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w) - - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hitice_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r) - AM_RANGE(0x610000, 0x610001) AM_READ(input_port_5_word_r) /* player 3,4 inputs*/ - - AM_RANGE(0x700000, 0x700001) AM_READ(MRA16_NOP) - AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) - - AM_RANGE(0xb00000, 0xb7ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hitice_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) - - AM_RANGE(0xb00000, 0xb7ffff) AM_WRITE(hitice_pixelram_w) AM_BASE(&taitob_pixelram) -// { 0xbffff0, 0xbffff1, ??? - AM_RANGE(0xbffff2, 0xbffff5) AM_WRITE(hitice_pixel_scroll_w) -// { 0xbffffa, 0xbffffb, ??? -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( rambo3_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r) - AM_RANGE(0x600010, 0x600011) AM_READ(tracky1_lo_r) /*player 1*/ - AM_RANGE(0x600012, 0x600013) AM_READ(tracky1_hi_r) - AM_RANGE(0x600014, 0x600015) AM_READ(trackx1_lo_r) - AM_RANGE(0x600016, 0x600017) AM_READ(trackx1_hi_r) - AM_RANGE(0x600018, 0x600019) AM_READ(tracky2_lo_r) /*player 2*/ - AM_RANGE(0x60001a, 0x60001b) AM_READ(tracky2_hi_r) - AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r) - AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r) - - AM_RANGE(0x200000, 0x200001) AM_READ(MRA16_NOP) - AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( rambo3_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x800000, 0x803fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( pbobble_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) - AM_RANGE(0x500024, 0x500025) AM_READ(input_port_5_word_r) /* shown in service mode, game omits to read it */ - AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r) /* not read by this game */ - AM_RANGE(0x50002e, 0x50002f) AM_READ(input_port_6_word_r) /* shown in service mode, game omits to read it */ - - AM_RANGE(0x700000, 0x700001) AM_READ(MRA16_NOP) - AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pbobble_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x500000, 0x50000f) AM_WRITE(TC0640FIO_halfword_byteswap_w) - AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w) - AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */ - - AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacedx_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) - AM_RANGE(0x500024, 0x500025) AM_READ(input_port_5_word_r) - AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r) - AM_RANGE(0x50002e, 0x50002f) AM_READ(input_port_6_word_r) - - AM_RANGE(0x700000, 0x700001) AM_READ(MRA16_NOP) - AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacedx_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x500000, 0x50000f) AM_WRITE(TC0640FIO_halfword_byteswap_w) - AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w) - AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */ - - AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacedxo_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x303fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x500000 ) - - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x210000, 0x210001) AM_READ(input_port_5_word_r) - AM_RANGE(0x220000, 0x220001) AM_READ(input_port_6_word_r) - AM_RANGE(0x230000, 0x230001) AM_READ(input_port_7_word_r) - - AM_RANGE(0x100000, 0x100001) AM_READ(MRA16_NOP) - AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacedxo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x500000 ) - - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) - - AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzshowby_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x200000, 0x20000f) AM_READ(pbobble_input_bypass_r) - AM_RANGE(0x200024, 0x200025) AM_READ(input_port_5_word_r) /* player 3,4 start */ - AM_RANGE(0x200028, 0x200029) AM_READ(player_34_coin_ctrl_r) - AM_RANGE(0x20002e, 0x20002f) AM_READ(input_port_6_word_r) /* player 3,4 buttons */ - - AM_RANGE(0x600000, 0x600001) AM_READ(MRA16_NOP) - AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzshowby_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0640FIO_halfword_byteswap_w) - AM_RANGE(0x200026, 0x200027) AM_WRITE(eeprom_w) - AM_RANGE(0x200028, 0x200029) AM_WRITE(player_34_coin_ctrl_w) - - AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( viofight_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0xa00000, 0xa03fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x800000, 0x80000f) AM_READ(TC0220IOC_halfword_byteswap_r) - - AM_RANGE(0x200000, 0x200001) AM_READ(MRA16_NOP) - AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( viofight_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( masterw_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) /*palette*/ - - TC0180VCU_MEMR( 0x400000 ) - - AM_RANGE(0x800000, 0x800001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r) /* DSW A/B, player inputs*/ - AM_RANGE(0x800002, 0x800003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ ) - - AM_RANGE(0xa00000, 0xa00001) AM_READ(MRA16_NOP) - AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( masterw_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x400000 ) - - AM_RANGE(0x800000, 0x800001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w) - AM_RANGE(0x800002, 0x800003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w) - - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( silentd_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x403fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x500000 ) - - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x210000, 0x210001) AM_READ(input_port_5_word_r) - AM_RANGE(0x220000, 0x220001) AM_READ(input_port_6_word_r) - AM_RANGE(0x230000, 0x230001) AM_READ(input_port_7_word_r) -// AM_RANGE(0x240000, 0x240001) AM_READ(MRA16_NOP) /* read 4 times at init */ - - AM_RANGE(0x100000, 0x100001) AM_READ(MRA16_NOP) - AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r) -// AM_RANGE(0x10001a, 0x10001b) AM_READ(MRA16_NOP) // ??? read at $1e344 -// AM_RANGE(0x10001c, 0x10001d) AM_READ(MRA16_NOP) // ??? read at $1e356 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( silentd_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x403fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x500000 ) - - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x240000, 0x240001) AM_WRITE(MWA16_NOP) // ??? - - AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( selfeena_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x200000 ) - - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_byteswap_r) - AM_RANGE(0x410000, 0x41000f) AM_READ(TC0220IOC_halfword_byteswap_r) /* mirror address - seems to be only used for coin control */ - - AM_RANGE(0x500000, 0x500001) AM_READ(MRA16_NOP) - AM_RANGE(0x500002, 0x500003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( selfeena_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x200000 ) - - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) - AM_RANGE(0x410000, 0x41000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) /* mirror address - seems to be only used for coin control */ - - AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sbm_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) /* Main RAM */ - - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - - TC0180VCU_MEMR( 0x900000 ) - - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) - - AM_RANGE(0x320000, 0x320001) AM_READ(MRA16_NOP) - AM_RANGE(0x320002, 0x320003) AM_READ(taitosound_comm16_msb_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sbm_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) /* Main RAM */ - - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - - TC0180VCU_MEMW( 0x900000 ) - - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) - - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - - - -static ADDRESS_MAP_START( masterw_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( masterw_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe200, 0xe200) AM_READ(MRA8_NOP) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */ - AM_RANGE(0xe600, 0xe600) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hitice_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0xb000, 0xb000) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hitice_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xb000, 0xb000) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xb001, 0xb001) AM_WRITE(OKIM6295_data_1_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( viofight_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xb000, 0xb001) AM_WRITE(OKIM6295_data_0_w) /* yes, both addresses for the same chip */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - -#define TAITO_COINAGE_JAPAN_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_COINAGE_WORLD_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -#define TAITO_COINAGE_US_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0xc0, "Same as Start" ) - -#define TAITO_COINAGE_JAPAN_NEW_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_DIFFICULTY_8 \ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - -/* Included only the bits that are common to all sets (viofight has 3 buttons) */ -#define TAITO_B_PLAYERS_INPUT( player ) \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) - -#define TAITO_B_SYSTEM_INPUT \ - PORT_START_TAG("IN2") \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) \ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - -#define TAITO_B_DSWA_2_4 \ - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) \ - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - - -INPUT_PORTS_START( rastsag2 ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 2 "unused" in manual - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100k only" ) - PORT_DIPSETTING( 0x08, "150k only" ) - PORT_DIPSETTING( 0x04, "200k only" ) - PORT_DIPSETTING( 0x00, "250k only" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( nastar ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100k only" ) - PORT_DIPSETTING( 0x08, "150k only" ) - PORT_DIPSETTING( 0x04, "200k only" ) - PORT_DIPSETTING( 0x00, "250k only" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( nastarw ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_US_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100k only" ) - PORT_DIPSETTING( 0x08, "150k only" ) - PORT_DIPSETTING( 0x04, "200k only" ) - PORT_DIPSETTING( 0x00, "250k only" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( masterw ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "500k, 1000k and 1500k" ) - PORT_DIPSETTING( 0x0c, "500k and 1000k" ) - PORT_DIPSETTING( 0x04, "500k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Ship Type" ) - PORT_DIPSETTING( 0x80, "Space Ship" ) - PORT_DIPSETTING( 0x00, "Hover Cycle" ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT - -INPUT_PORTS_END - -INPUT_PORTS_START( crimec ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, "Hi Score" ) - PORT_DIPSETTING( 0x01, "Scribble" ) - PORT_DIPSETTING( 0x00, "3 Characters" ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 80k" ) - PORT_DIPSETTING( 0x0c, "80k only" ) - PORT_DIPSETTING( 0x04, "160k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, "5 Times" ) - PORT_DIPSETTING( 0x80, "8 Times" ) - PORT_DIPSETTING( 0xc0, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( crimecj ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, "Hi Score" ) - PORT_DIPSETTING( 0x01, "Scribble" ) - PORT_DIPSETTING( 0x00, "3 Characters" ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 80k" ) - PORT_DIPSETTING( 0x0c, "80k only" ) - PORT_DIPSETTING( 0x04, "160k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, "5 Times" ) - PORT_DIPSETTING( 0x80, "8 Times" ) - PORT_DIPSETTING( 0xc0, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( crimecu ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, "Hi Score" ) - PORT_DIPSETTING( 0x01, "Scribble" ) - PORT_DIPSETTING( 0x00, "3 Characters" ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_US_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 80k" ) - PORT_DIPSETTING( 0x0c, "80k only" ) - PORT_DIPSETTING( 0x04, "160k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, "5 Times" ) - PORT_DIPSETTING( 0x80, "8 Times" ) - PORT_DIPSETTING( 0xc0, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( tetrist ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( ashura ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 100k" ) - PORT_DIPSETTING( 0x0c, "every 150k" ) - PORT_DIPSETTING( 0x04, "every 200k" ) - PORT_DIPSETTING( 0x00, "every 250k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( ashurau ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_US_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "every 100k" ) - PORT_DIPSETTING( 0x0c, "every 150k" ) - PORT_DIPSETTING( 0x04, "every 200k" ) - PORT_DIPSETTING( 0x00, "every 250k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -/* -Hit the Ice dipswitches -(info from Kevin Watson) - -[1 is switch on and 0 is switch off] - -Dip switch A ------------- - -Setting Options 1 2 3 4 5 6 7 8 -cabinet style 4 player 0 - 2 player 1 -Test mode normal 0 - test mode 1 -Attract mode on 0 - off 1 -Game price 1 coin 1 play 0 0 0 0 - 2 coin 1 play 1 0 0 0 - 3 coin 1 play 0 1 0 0 - coin1 1 coin 2 play 0 0 1 0 - coin2 1 coin 3 play 1 1 0 0 - 1 coin 4 play 0 1 0 0 - 1 coin 5 play 1 0 1 0 - 1 coin 6 play 1 1 1 0 - -switch 2 and 8 are always set to off - -Dip switch table B ------------------- - -Setting Options 1 2 3 4 5 6 7 8 -Difficulty normal 0 0 - easy 1 0 - hard 0 1 - hardest 1 1 -Timer count 1 sec = 58/60 0 0 - 1 sec = 56/60 1 0 - 1 sec = 62/60 0 1 - 1 sec = 45/60 1 1 -maximum credit 9 0 - 99 1 - -5,6,7 are set to off -*/ - -INPUT_PORTS_START( hitice ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, "Cabinet Style" ) - PORT_DIPSETTING( 0x01, "4 Players") - PORT_DIPSETTING( 0x00, "2 Players") - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Timer count" ) - PORT_DIPSETTING( 0x0c, "1 sec = 58/60" ) - PORT_DIPSETTING( 0x04, "1 sec = 56/60" ) - PORT_DIPSETTING( 0x08, "1 sec = 62/60" ) - PORT_DIPSETTING( 0x00, "1 sec = 45/60" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Maximum credits" ) - PORT_DIPSETTING( 0x00, "99" ) - PORT_DIPSETTING( 0x80, "9" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN56") /* IN5 IN6 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( rambo3 ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 5 "unused" in manual - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( rambo3a ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - /* Coinage similar to US, but there are some differences */ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_3C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0xc0, "Same as Start" ) - PORT_DIPSETTING( 0x00, "Same as Start or 1C/1C (if Coinage 4C/3C)" ) - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Control" ) - PORT_DIPSETTING( 0x08, "8 way Joystick" ) - PORT_DIPSETTING( 0x00, DEF_STR( Trackball ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN3") - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(1) - - PORT_START_TAG("IN4") - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_PLAYER(1) - - PORT_START_TAG("IN5") - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_REVERSE PORT_PLAYER(2) - - PORT_START_TAG("IN6") - PORT_BIT( 0xffff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(70) PORT_KEYDELTA(30) PORT_PLAYER(2) -INPUT_PORTS_END - - -/* Helps document the input ports. */ - -INPUT_PORTS_START( pbobble ) /* Missing P3&4 controls ! */ - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) /*ok*/ - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) /*ok*/ - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START_TAG("IN3") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - - PORT_START_TAG("IN4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) -INPUT_PORTS_END - -INPUT_PORTS_START( spacedxo ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Match Point" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x04, "5" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPSETTING( 0x00, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x40, "1500 Points" ) - PORT_DIPSETTING( 0x00, "1000 Points" ) - PORT_DIPNAME( 0x80, 0x80, "Game Type" ) - PORT_DIPSETTING( 0x80, "Double Company" ) - PORT_DIPSETTING( 0x00, "Single Company" ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - - PORT_START_TAG("IN7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - -INPUT_PORTS_END - -INPUT_PORTS_START( qzshowby ) - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /*unused in test mode*/ - PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW ) /*ok*/ - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) /*ok*/ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) /*ok*/ - - PORT_START_TAG("IN2") /* IN0 */ /*all OK*/ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START_TAG("IN3") /* IN 1 */ /*all OK*/ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* IPT_START1 in test mode */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* IPT_START2 in test mode */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN4") /* IN2 */ /*all OK*/ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* IPT_START3 in test mode */ - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* IPT_START4 in test mode */ - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN6") - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) -INPUT_PORTS_END - -INPUT_PORTS_START( viofight ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 7 "unused" in manual - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - TAITO_B_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - TAITO_B_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_B_SYSTEM_INPUT -INPUT_PORTS_END - -INPUT_PORTS_START( silentd ) /* World Version */ - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "NOT USED" in the manual and only shown as "OFF" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - -/* These next two are listed as Unused for "Oversea Versions" - For the USA version use this description: - - Buy-In Pricing Same As Play Pricing OFF OFF (Default) - 1 Coin = Continue ON OFF - 2 Coins = Contniue OFF ON - 3 Coins = Continue ON ON - */ - - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, "Invulnerability (Cheat)" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Power-Up Bonus" ) /* Manual States "Power-Up at Stage Clear" */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Regain Power" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - -/* Manual Shows "1 Coin Slot (Shared)" and "4 Coin Slot (1 Per Player)" - - You can play the game with 2, 3, or 4 players and the last option is a linked 4 players. - Using bit6 and bit7&8 you end up with 1, 2 or 4 separate "Credits" on the demo screens. - Using bits7&8 you can have 2-4 players as shown at the top of the game screens. - -*/ - - PORT_DIPNAME( 0x20, 0x20, "Credits" ) /* Only shows 4 separate credits with 4p/1m below */ - PORT_DIPSETTING( 0x20, "Combined" ) - PORT_DIPSETTING( 0x00, "Separate" ) /* When multiple credits show, Coin B will affect p2 credits */ - PORT_DIPNAME( 0xc0, 0x80, "Cabinet Style" ) - PORT_DIPSETTING( 0xc0, "3 Players" ) - PORT_DIPSETTING( 0x80, "2 Players" ) - PORT_DIPSETTING( 0x40, "4 Players/1 Machine" ) /* with bit6, shows 4 separate credits */ - PORT_DIPSETTING( 0x00, "4 Players/2 Machines" ) /* with bit6 shows 2 separate credits */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - - PORT_START_TAG("IN7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) PORT_NAME ("Coin 3 2nd input")/*not sure if this is legal under MAME*/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) PORT_NAME ("Coin 4 2nd input")/*not sure if this is legal under MAME*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( silentdj ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "NOT USED" in the manual and only shown as "OFF" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, "Invulnerability (Cheat)" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Power-Up Bonus" ) /* Manual States "Power-Up at Stage Clear" */ - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Regain Power" ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Credits" ) /* Only shows 4 separate credits with 4p/1m below */ - PORT_DIPSETTING( 0x20, "Combined" ) - PORT_DIPSETTING( 0x00, "Separate" ) /* When multiple credits show, Coin B will affect p2 credits */ - PORT_DIPNAME( 0xc0, 0x80, "Cabinet Style" ) - PORT_DIPSETTING( 0xc0, "3 Players") - PORT_DIPSETTING( 0x80, "2 Players") - PORT_DIPSETTING( 0x40, "4 Players/1 Machine") /* with bit6, shows 4 separate credits */ - PORT_DIPSETTING( 0x00, "4 Players/2 Machines") /* with bit6 shows 2 separate credits */ - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START_TAG("IN5") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - - PORT_START_TAG("IN6") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - - PORT_START_TAG("IN7") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) PORT_NAME ("Coin 3 2nd input")/*not sure if this is legal under MAME*/ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_IMPULSE(2) PORT_NAME ("Coin 4 2nd input")/*not sure if this is legal under MAME*/ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( selfeena ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100k only" ) - PORT_DIPSETTING( 0x08, "200k only" ) - PORT_DIPSETTING( 0x04, "300k only" ) - PORT_DIPSETTING( 0x00, "400k only" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( ryujin ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_B_DSWA_2_4 - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( sbm ) - PORT_START_TAG("DSWA") /* DSW A *///+-ok - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("DSWB") /* DSW B */ //+-ok - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START_TAG("IN0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)//sound select UP - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)//sound select DOWN - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)//ok (object test) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)//ok (object test) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)//-- unused in test modes - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)//-- unused in test modes - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)//BEN IN (ticket dispenser) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)//LADY ???? - - PORT_START_TAG("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )//select; ok (1P in object test) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )//start ; ok (2P in object test) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) //ok - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) //ok - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) //ok - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) //ok - /* BUTTON1 ACTIVE LOW, - game thinks that punching pad has already been raised */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("Pad Photosensor 1")//PHOTO 1 (punching pad photosensor 1) - PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Pad Photosensor 2")//PHOTO 2 (punching pad photosensor 2) - PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Pad Photosensor 3")//PHOTO 3 (punching pad photosensor 3) - /*To simulate a punch: - - wait for "READY GO!" message, - - press button1 + button 2 (LCTRL + ALT) (you'll hear a "punching" sound), - - THEN press button 3 (SPACE) - The time passed between the presses will be used to calculate the power of your punch. - The longer the time - the less power. - */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("Pad Photosensor 4")//PHOTO 4 ??? ACTIVE_LOW ??? (punching pad photosensor 4) -INPUT_PORTS_END - - - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,2), - 4, - { 0, 8, RGN_FRAC(1,2), RGN_FRAC(1,2)+8 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, - 16*8 -}; -static const gfx_layout tilelayout = -{ - 16,16, - RGN_FRAC(1,2), - 4, - { 0, 8, RGN_FRAC(1,2), RGN_FRAC(1,2)+8 }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 }, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 }, - 64*8 -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* text */ - { REGION_GFX1, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -static const gfx_layout rambo3_charlayout = -{ - 8,8, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; -static const gfx_layout rambo3_tilelayout = -{ - 16,16, - RGN_FRAC(1,4), - 4, - { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, - { 0, 1, 2, 3, 4, 5, 6, 7, - 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, - 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 }, - 32*8 -}; - -static const gfx_decode rambo3_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &rambo3_charlayout, 0, 256 }, /* text */ - { REGION_GFX1, 0, &rambo3_tilelayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface_rsaga2 = -{ - irqhandler, - REGION_SOUND1, - REGION_SOUND2 -}; - -static struct YM2610interface ym2610_interface_crimec = -{ - irqhandler, - REGION_SOUND1, - REGION_SOUND1 -}; - -static struct YM2203interface ym2203_interface = -{ - 0, - 0, - bankswitch_w, - 0, - irqhandler -}; - -/* - Games that use the mb87078 are: pbobble, spacedx and qzshowby - schems are not available, but from the writes I guess that - they only use channel 1 - The sound chips' volume altered with the mb87078 are: - ym2610 in spacedx, - ym2610b in pbobble,qzshowby, - - Both ym2610 and ym2610b generate 3 (PSG like) + 2 (fm left,right) channels. - I use mixer_set_volume() to emulate the effect. -*/ -static void mb87078_gain_changed(int channel, int percent) -{ - if (channel==1) - { - int type = Machine->drv->sound[0].sound_type; - sndti_set_output_gain(type, 0, 0, percent / 100.0); - sndti_set_output_gain(type, 1, 0, percent / 100.0); - sndti_set_output_gain(type, 2, 0, percent / 100.0); - //popmessage("MB87078 gain ch#%i percent=%i",channel,percent); - } -} - -static struct MB87078interface mb87078_interface = -{ - mb87078_gain_changed /*callback function for gain change*/ -}; - - -static MACHINE_RESET( mb87078 ) -{ - MB87078_start(0, &mb87078_interface); /*chip #0*/ -/* - { - int i; - for (i=0; i<6; i++) - logerror("SOUND Chan#%i name=%s\n", i, mixer_get_name(i) ); - } -*/ -} - - -static MACHINE_DRIVER_START( rastsag2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(rastsag2_readmem,rastsag2_writemem) - MDRV_CPU_VBLANK_INT(rastansaga2_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order0) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_rsaga2) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ashura ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(rastsag2_readmem,rastsag2_writemem) - MDRV_CPU_VBLANK_INT(rastansaga2_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order0) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( crimec ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(crimec_readmem,crimec_writemem) - MDRV_CPU_VBLANK_INT(crimec_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order1) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( tetrist ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ???*/ - MDRV_CPU_PROGRAM_MAP(tetrist_readmem,tetrist_writemem) - MDRV_CPU_VBLANK_INT(rastansaga2_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order0) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_rsaga2) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( tetrista ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(tetrista_readmem,tetrista_writemem) - MDRV_CPU_VBLANK_INT(masterw_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(masterw_sound_readmem,masterw_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 0.25) - MDRV_SOUND_ROUTE(2, "mono", 0.25) - MDRV_SOUND_ROUTE(3, "mono", 0.80) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( hitice ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(hitice_readmem,hitice_writemem) - MDRV_CPU_VBLANK_INT(hitice_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(hitice_sound_readmem,hitice_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(hitice) - MDRV_VIDEO_RESET(hitice) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 0.25) - MDRV_SOUND_ROUTE(2, "mono", 0.25) - MDRV_SOUND_ROUTE(3, "mono", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( rambo3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(rambo3_readmem,rambo3_writemem) - MDRV_CPU_VBLANK_INT(rambo3_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(rambo3_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order0) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( rambo3a ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(rambo3_readmem,rambo3_writemem) - MDRV_CPU_VBLANK_INT(rambo3_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pbobble ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(pbobble_readmem,pbobble_writemem) - MDRV_CPU_VBLANK_INT(pbobble_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(mb87078) - MDRV_NVRAM_HANDLER(taito_b) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order1) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610B, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spacedx ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(spacedx_readmem,spacedx_writemem) - MDRV_CPU_VBLANK_INT(pbobble_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(mb87078) - MDRV_NVRAM_HANDLER(taito_b) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order1) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spacedxo ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(spacedxo_readmem,spacedxo_writemem) - MDRV_CPU_VBLANK_INT(selfeena_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qzshowby ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz according to the readme*/ - MDRV_CPU_PROGRAM_MAP(qzshowby_readmem,qzshowby_writemem) - MDRV_CPU_VBLANK_INT(pbobble_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - MDRV_MACHINE_RESET(mb87078) - MDRV_NVRAM_HANDLER(taito_b) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order1) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610B, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( viofight ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(viofight_readmem,viofight_writemem) - MDRV_CPU_VBLANK_INT(viofight_interrupt,1) - - MDRV_CPU_ADD(Z80, 6000000) /* 6 MHz verified */ - MDRV_CPU_PROGRAM_MAP(hitice_sound_readmem, viofight_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 0.25) - MDRV_SOUND_ROUTE(2, "mono", 0.25) - MDRV_SOUND_ROUTE(3, "mono", 0.80) - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( masterw ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(masterw_readmem,masterw_writemem) - MDRV_CPU_VBLANK_INT(masterw_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(masterw_sound_readmem,masterw_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 0.25) - MDRV_SOUND_ROUTE(2, "mono", 0.25) - MDRV_SOUND_ROUTE(3, "mono", 0.80) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( silentd ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(silentd_readmem,silentd_writemem) - MDRV_CPU_VBLANK_INT(silentd_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_rsaga2) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( selfeena ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(selfeena_readmem,selfeena_writemem) - MDRV_CPU_VBLANK_INT(selfeena_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - -#if 0 -static void ryujin_patch(void) -{ - UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - rom[ 0x62/2 ] = 1; - //0 (already in rom) - Taito Corporation 1993 - //1 - Taito America corp with blue FBI logo -} -#endif - -static MACHINE_DRIVER_START( ryujin ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(selfeena_readmem,selfeena_writemem) - MDRV_CPU_VBLANK_INT(selfeena_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order2) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - -#if 0 -static void sbm_patch(void) -{ - UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - rom[ 0x7ffff/2 ] = 2; //US version -} -#endif - -static MACHINE_DRIVER_START( sbm ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(sbm_readmem,sbm_writemem) - MDRV_CPU_VBLANK_INT(sbm_interrupt,1) - - MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(64*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitob_color_order0) - MDRV_VIDEO_EOF(taitob) - MDRV_VIDEO_UPDATE(taitob) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2610B, 8000000) - MDRV_SOUND_CONFIG(ym2610_interface_crimec) - MDRV_SOUND_ROUTE(0, "mono", 0.25) - MDRV_SOUND_ROUTE(1, "mono", 1.0) - MDRV_SOUND_ROUTE(2, "mono", 1.0) -MACHINE_DRIVER_END - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -ROM_START( rastsag2 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b81-08.50", 0x00000, 0x20000, CRC(d6da9169) SHA1(33d74315754576e6f879059de033f96f9003f819) ) - ROM_LOAD16_BYTE( "b81-07.31", 0x00001, 0x20000, CRC(8edf17d7) SHA1(b0c03002ed520abffefd55d4969d0ed4fcf3a3a4) ) - ROM_LOAD16_BYTE( "b81-10.49", 0x40000, 0x20000, CRC(53f34344) SHA1(9930c3fd9c17f7d9b654221da3896d0ff5778c97) ) - ROM_LOAD16_BYTE( "b81-09.30", 0x40001, 0x20000, CRC(630d34af) SHA1(42452111b10f1d543e03661012dda879218dea62) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b81-11.37", 0x00000, 0x4000, CRC(3704bf09) SHA1(a0a37b23e3df482c5f5aa43825345ea8affbba34) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b81-03.14", 0x000000, 0x080000, CRC(551b75e6) SHA1(5b8388ee2c6262f359c9e6d04c951ea8dc3901c9) ) - ROM_LOAD( "b81-04.15", 0x080000, 0x080000, CRC(cf734e12) SHA1(4201a74468058761454515738fbf3a7b22a66e00) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b81-01.1", 0x00000, 0x80000, CRC(b33f796b) SHA1(6cdb32f56283acdf20eb46a1e658e3bd7c97978c) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "b81-02.2", 0x00000, 0x80000, CRC(20ec3b86) SHA1(fcdcc7f0a09feb824d8d73b1af0aae7ec30fd1ed) ) -ROM_END - -ROM_START( nastarw ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b81-08.50", 0x00000, 0x20000, CRC(d6da9169) SHA1(33d74315754576e6f879059de033f96f9003f819) ) - ROM_LOAD16_BYTE( "b81-12.31", 0x00001, 0x20000, CRC(f9d82741) SHA1(f5f3a1101d92b6c241e819dcdcdcdc4b125140f7) ) - ROM_LOAD16_BYTE( "b81-10.49", 0x40000, 0x20000, CRC(53f34344) SHA1(9930c3fd9c17f7d9b654221da3896d0ff5778c97) ) - ROM_LOAD16_BYTE( "b81-09.30", 0x40001, 0x20000, CRC(630d34af) SHA1(42452111b10f1d543e03661012dda879218dea62) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b81-11.37", 0x00000, 0x4000, CRC(3704bf09) SHA1(a0a37b23e3df482c5f5aa43825345ea8affbba34) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b81-03.14", 0x000000, 0x080000, CRC(551b75e6) SHA1(5b8388ee2c6262f359c9e6d04c951ea8dc3901c9) ) - ROM_LOAD( "b81-04.15", 0x080000, 0x080000, CRC(cf734e12) SHA1(4201a74468058761454515738fbf3a7b22a66e00) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b81-01.1", 0x00000, 0x80000, CRC(b33f796b) SHA1(6cdb32f56283acdf20eb46a1e658e3bd7c97978c) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "b81-02.2", 0x00000, 0x80000, CRC(20ec3b86) SHA1(fcdcc7f0a09feb824d8d73b1af0aae7ec30fd1ed) ) -ROM_END - -ROM_START( nastar ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b81-08.50", 0x00000, 0x20000, CRC(d6da9169) SHA1(33d74315754576e6f879059de033f96f9003f819) ) - ROM_LOAD16_BYTE( "b81-13.31", 0x00001, 0x20000, CRC(60d176fb) SHA1(fbe3a0603bcd23e565b0d474a63742d20a3ce8cc) ) - ROM_LOAD16_BYTE( "b81-10.49", 0x40000, 0x20000, CRC(53f34344) SHA1(9930c3fd9c17f7d9b654221da3896d0ff5778c97) ) - ROM_LOAD16_BYTE( "b81-09.30", 0x40001, 0x20000, CRC(630d34af) SHA1(42452111b10f1d543e03661012dda879218dea62) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b81-11.37", 0x00000, 0x4000, CRC(3704bf09) SHA1(a0a37b23e3df482c5f5aa43825345ea8affbba34) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b81-03.14", 0x000000, 0x080000, CRC(551b75e6) SHA1(5b8388ee2c6262f359c9e6d04c951ea8dc3901c9) ) - ROM_LOAD( "b81-04.15", 0x080000, 0x080000, CRC(cf734e12) SHA1(4201a74468058761454515738fbf3a7b22a66e00) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b81-01.1", 0x00000, 0x80000, CRC(b33f796b) SHA1(6cdb32f56283acdf20eb46a1e658e3bd7c97978c) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "b81-02.2", 0x00000, 0x80000, CRC(20ec3b86) SHA1(fcdcc7f0a09feb824d8d73b1af0aae7ec30fd1ed) ) - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ampal16l8-b81-05.21", 0x0000, 0x0104, CRC(922fd368) SHA1(6258c64a16c64de5c9c29e325a5e1f9695698b1f) ) - ROM_LOAD( "ampal16l8-b81-06a.22", 0x0200, 0x0104, CRC(bb1cec84) SHA1(fc7a8286687508b4e62b9754dba95f33336b8214) ) -ROM_END - -ROM_START( crimec ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b99-07.40", 0x00000, 0x20000, CRC(26e886e6) SHA1(b7d0024a084216c1139eb6705f1b8143902cbed3) ) - ROM_LOAD16_BYTE( "b99-05.29", 0x00001, 0x20000, CRC(ff7f9a9d) SHA1(c1897a141eea423879d2792640a9ee85636ed5be) ) - ROM_LOAD16_BYTE( "b99-06.39", 0x40000, 0x20000, CRC(1f26aa92) SHA1(10ab253812db83204c136d01d865063a2210cb92) ) - ROM_LOAD16_BYTE( "b99-14.28", 0x40001, 0x20000, CRC(71c8b4d7) SHA1(55068c9cac75200f564b10f98f322e30aaa6849e) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b99-08.45", 0x00000, 0x4000, CRC(26135451) SHA1(651c77285eb12a13a2fe4069031c6f01150ecba4) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b99-02.18", 0x000000, 0x080000, CRC(2a5d4a26) SHA1(94bdfca9365970a80a639027b195b71cebc5ab9c) ) - ROM_LOAD( "b99-01.19", 0x080000, 0x080000, CRC(a19e373a) SHA1(2208c9142473dc2218fd8b97fd6d0c861aeba011) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b99-03.37", 0x000000, 0x080000, CRC(dda10df7) SHA1(ffbe1423794035e6f049fddb096b7282610b7cee) ) -ROM_END - -ROM_START( crimecu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b99-07.40", 0x00000, 0x20000, CRC(26e886e6) SHA1(b7d0024a084216c1139eb6705f1b8143902cbed3) ) - ROM_LOAD16_BYTE( "b99-05.29", 0x00001, 0x20000, CRC(ff7f9a9d) SHA1(c1897a141eea423879d2792640a9ee85636ed5be) ) - ROM_LOAD16_BYTE( "b99-06.39", 0x40000, 0x20000, CRC(1f26aa92) SHA1(10ab253812db83204c136d01d865063a2210cb92) ) - ROM_LOAD16_BYTE( "b99-13.28", 0x40001, 0x20000, CRC(06cf8441) SHA1(0395fd1f38366bd56b4b53e435dc7c3676d9e9bf) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b99-08.45", 0x00000, 0x4000, CRC(26135451) SHA1(651c77285eb12a13a2fe4069031c6f01150ecba4) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b99-02.18", 0x000000, 0x080000, CRC(2a5d4a26) SHA1(94bdfca9365970a80a639027b195b71cebc5ab9c) ) - ROM_LOAD( "b99-01.19", 0x080000, 0x080000, CRC(a19e373a) SHA1(2208c9142473dc2218fd8b97fd6d0c861aeba011) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b99-03.37", 0x000000, 0x080000, CRC(dda10df7) SHA1(ffbe1423794035e6f049fddb096b7282610b7cee) ) -ROM_END - -ROM_START( crimecj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b99-07.40", 0x00000, 0x20000, CRC(26e886e6) SHA1(b7d0024a084216c1139eb6705f1b8143902cbed3) ) - ROM_LOAD16_BYTE( "b99-05.29", 0x00001, 0x20000, CRC(ff7f9a9d) SHA1(c1897a141eea423879d2792640a9ee85636ed5be) ) - ROM_LOAD16_BYTE( "b99-06.39", 0x40000, 0x20000, CRC(1f26aa92) SHA1(10ab253812db83204c136d01d865063a2210cb92) ) - ROM_LOAD16_BYTE( "b99-15.28", 0x40001, 0x20000, CRC(e8c1e56d) SHA1(ba0dc181db843e26676223f54cb121df738be987) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b99-08.45", 0x00000, 0x4000, CRC(26135451) SHA1(651c77285eb12a13a2fe4069031c6f01150ecba4) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b99-02.18", 0x000000, 0x080000, CRC(2a5d4a26) SHA1(94bdfca9365970a80a639027b195b71cebc5ab9c) ) - ROM_LOAD( "b99-01.19", 0x080000, 0x080000, CRC(a19e373a) SHA1(2208c9142473dc2218fd8b97fd6d0c861aeba011) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "b99-03.37", 0x000000, 0x080000, CRC(dda10df7) SHA1(ffbe1423794035e6f049fddb096b7282610b7cee) ) -ROM_END - -ROM_START( ashura ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c43-07-1.50", 0x00000, 0x20000, CRC(d5ceb20f) SHA1(59bc9468d7f43d3b1388c2915fafeba7e2cf13a5) ) - ROM_LOAD16_BYTE( "c43-05-1.31", 0x00001, 0x20000, CRC(a6f3bb37) SHA1(6959f3bcbcd2d5b13c95dcfd7a536541dcab49f8) ) - ROM_LOAD16_BYTE( "c43-06-1.49", 0x40000, 0x20000, CRC(0f331802) SHA1(e7ed01b0d664c4db6ea9acc54b57e674e10685aa) ) - ROM_LOAD16_BYTE( "c43-04-1.30", 0x40001, 0x20000, CRC(e06a2414) SHA1(77ebe1e61b6303f328757de2c90fae6588026414) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c43-16", 0x00000, 0x4000, CRC(cb26fce1) SHA1(7cc60326455c7bb2ca543ddfd4002462cc079837) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c43-02", 0x00000, 0x80000, CRC(105722ae) SHA1(1de5d396d2a4d5948544082c471a15ca1b8e756c) ) - ROM_LOAD( "c43-03", 0x80000, 0x80000, CRC(426606ba) SHA1(961ec0a9dc18044adae433337bfa89d951c5207c) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "c43-01", 0x00000, 0x80000, CRC(db953f37) SHA1(252591b676366d4828acb20c77aa9960ad9b367e) ) -ROM_END - -ROM_START( ashurau ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c43-11.50", 0x00000, 0x20000, CRC(d5aefc9b) SHA1(0fdfa166942ea70a77f956d16fd3b31225044c54) ) - ROM_LOAD16_BYTE( "c43-09.31", 0x00001, 0x20000, CRC(e91d0ab1) SHA1(992f63ebba538e624c695c1a868b14f4baa66ab9) ) - ROM_LOAD16_BYTE( "c43-10.49", 0x40000, 0x20000, CRC(c218e7ea) SHA1(d9b19ad26206238f8417efe3b80c020fea0dd573) ) - ROM_LOAD16_BYTE( "c43-08.30", 0x40001, 0x20000, CRC(5ef4f19f) SHA1(864e3a4a4e92adaa63249debad6292c528289fbe) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c43-16", 0x00000, 0x4000, CRC(cb26fce1) SHA1(7cc60326455c7bb2ca543ddfd4002462cc079837) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c43-02", 0x00000, 0x80000, CRC(105722ae) SHA1(1de5d396d2a4d5948544082c471a15ca1b8e756c) ) - ROM_LOAD( "c43-03", 0x80000, 0x80000, CRC(426606ba) SHA1(961ec0a9dc18044adae433337bfa89d951c5207c) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "c43-01", 0x00000, 0x80000, CRC(db953f37) SHA1(252591b676366d4828acb20c77aa9960ad9b367e) ) -ROM_END - -ROM_START( tetrist ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c12-03.bin", 0x000000, 0x020000, CRC(38f1ed41) SHA1(d11194dd6686e6eba8c481bb0f9662041ca396ed) ) - ROM_LOAD16_BYTE( "c12-02.bin", 0x000001, 0x020000, CRC(ed9530bc) SHA1(84c324e4ef0c5c3af04ea000ad3e9c319bd9f2a2) ) - ROM_LOAD16_BYTE( "c12-05.bin", 0x040000, 0x020000, CRC(128e9927) SHA1(227b4a43074b66c9ba6f4497eb329fbcc5e3f52b) ) - ROM_LOAD16_BYTE( "c12-04.bin", 0x040001, 0x020000, CRC(5da7a319) SHA1(0c903b3274f6eafe24c8b5ef476dc5e8e3131b20) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c12-06.bin", 0x00000, 0x4000, CRC(f2814b38) SHA1(846d3cc7a6f1cfbfd5661d6942f24330d21f91f0) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASE00 ) - /* empty (uses only pixel layer) */ - - ROM_REGION( 0x80000, REGION_SOUND1, ROMREGION_ERASE00 ) /* adpcm samples */ - /* empty */ - - ROM_REGION( 0x80000, REGION_SOUND2, ROMREGION_ERASE00 ) /* DELTA-T samples */ - /* empty */ -ROM_END - -ROM_START( tetrista ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c35-04.bin", 0x000000, 0x020000, CRC(fa6e42ff) SHA1(1c586243aaf57b46338f22ae0fcdba2897ccb98a) ) - ROM_LOAD16_BYTE( "c35-03.bin", 0x000001, 0x020000, CRC(aebd8539) SHA1(5230c0513581513ba971da55c04da8ba451a16e2) ) - ROM_LOAD16_BYTE( "c35-02.bin", 0x040000, 0x020000, CRC(128e9927) SHA1(227b4a43074b66c9ba6f4497eb329fbcc5e3f52b) ) // ==c12-05 - ROM_LOAD16_BYTE( "c35-01.bin", 0x040001, 0x020000, CRC(5da7a319) SHA1(0c903b3274f6eafe24c8b5ef476dc5e8e3131b20) ) // ==c12-04 - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c35-05.bin", 0x00000, 0x4000, CRC(785c63fb) SHA1(13db76d8ce52ff21bfda0866c9c6b52147c6fc9d) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_ERASE00 ) - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - /* these roms (present on the original board) are actually from from master of weapon - b72-01.rom mow-m01.rom IDENTICAL - b72-02.rom mow-m02.rom 99.999809% (maybe one of them is bad?) - the game doesn't use any tiles from here but the roms must be present on the board to avoid - tile 0 being solid and obscuring the bitmap (however if we load them in the correct region - unwanted tiles from here are shown after gameover which is wrong) - */ - ROM_LOAD( "b72-02.rom", 0x000000, 0x080000, CRC(843444eb) SHA1(2b466045f882996c80e0090009ee957e11d32825) ) - ROM_LOAD( "b72-01.rom", 0x080000, 0x080000, CRC(a24ac26e) SHA1(895715a2bb0cb15334cba2283bd228b4fc08cd0c) ) -ROM_END - -ROM_START( hitice ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c59-10", 0x00000, 0x20000, CRC(e4ffad15) SHA1(87da85e1489fe57bd012177a70434152e5475009) ) - ROM_LOAD16_BYTE( "c59-12", 0x00001, 0x20000, CRC(a080d7af) SHA1(9c68b78fbcc42a2f748d1b7f84f138be79f7c0c9) ) - ROM_LOAD16_BYTE( "c59-09", 0x40000, 0x10000, CRC(e243e3b0) SHA1(a7daf96ef70e9a92bb3ee4a151ce674a187c15a2) ) - ROM_LOAD16_BYTE( "c59-11", 0x40001, 0x10000, CRC(4d4dfa52) SHA1(8ecd62dc2a2f35850340469afa54862b46053ce0) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c59-08", 0x00000, 0x4000, CRC(d3cbc10b) SHA1(75305e264300e0ebd15ada45a6d222fee75bd8e4) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c59-03", 0x00000, 0x80000, CRC(9e513048) SHA1(4ffa63c01a25e912dd218b7b2deaf5ad1a53659a) ) - ROM_LOAD( "c59-02", 0x80000, 0x80000, CRC(affb5e07) SHA1(afe92268c78ab5565d2913672e25f3136a15f534) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "c59-01", 0x00000, 0x20000, CRC(46ae291d) SHA1(d36ab48cfa393a6a1eae5caa2a397087eb098f7f) ) -ROM_END - -ROM_START( rambo3 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "r3-0e.rom", 0x00000, 0x10000, CRC(3efa4177) SHA1(5e4995e34b92f625f7825238dfbc9e76d4090871) ) - ROM_LOAD16_BYTE( "r3-0o.rom", 0x00001, 0x10000, CRC(55c38d92) SHA1(4f712b4eb20ee176da83a5f1154d5890d1360398) ) - -/*NOTE: there is a hole in address space here */ - - ROM_LOAD16_BYTE( "r3-1e.rom" , 0x40000, 0x20000, CRC(40e363c7) SHA1(9907def4736fbff15cf769a762bf1811f890d1c7) ) - ROM_LOAD16_BYTE( "r3-1o.rom" , 0x40001, 0x20000, CRC(7f1fe6ab) SHA1(31231747982d9c42f693f650bc137794b438c2b7) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "r3-00.rom", 0x00000, 0x4000, CRC(df7a6ed6) SHA1(68f7f17c9ead6aee653b02de234ec54b519907d7) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "r3-ch1ll.rom", 0x000000, 0x020000, CRC(c86ea5fc) SHA1(daf89340bb5d6ae57ef6faedb3f86c944c68fc45) ) - ROM_LOAD( "r3-ch1hl.rom", 0x020000, 0x020000, CRC(7525eb92) SHA1(f691a000580d078f207ea6e9bc8a527e74bc20e5) ) - ROM_LOAD( "r3-ch3ll.rom", 0x040000, 0x020000, CRC(abe54b1e) SHA1(4b6d0c694d9c1fcdec87b70fbadee9fb3455b42c) ) - ROM_LOAD( "r3-ch3hl.rom", 0x060000, 0x020000, CRC(80e5647e) SHA1(744e9dcc651b80ef4b3cc29ed0ebb223bb65f106) ) - - ROM_LOAD( "r3-ch1lh.rom", 0x080000, 0x020000, CRC(75568cf0) SHA1(78cb940fafb6e01a018d6823636b398a898e988a) ) - ROM_LOAD( "r3-ch1hh.rom", 0x0a0000, 0x020000, CRC(e39cff37) SHA1(79680526759013f8641e82c27b3afc184c06f059) ) - ROM_LOAD( "r3-ch3lh.rom", 0x0c0000, 0x020000, CRC(5a155c04) SHA1(9472ef6474275ac5993c2afb222cfbc8d848bd86) ) - ROM_LOAD( "r3-ch3hh.rom", 0x0e0000, 0x020000, CRC(abe58fdb) SHA1(6429caa8680255c46457ab0ad6c0f610291d8a92) ) - - ROM_LOAD( "r3-ch0ll.rom", 0x100000, 0x020000, CRC(b416f1bf) SHA1(8ae546c8286d616a991766eb97c3d281dbafd944) ) - ROM_LOAD( "r3-ch0hl.rom", 0x120000, 0x020000, CRC(a4cad36d) SHA1(f8327bcc490cb66703de9bbcd931d964609ae822) ) - ROM_LOAD( "r3-ch2ll.rom", 0x140000, 0x020000, CRC(d0ce3051) SHA1(0dc57f53b82d8ae15106df8a08b404c076b9fcef) ) - ROM_LOAD( "r3-ch2hl.rom", 0x160000, 0x020000, CRC(837d8677) SHA1(6a3b36399e89c8ff031b25bcf62704197d711a5b) ) - - ROM_LOAD( "r3-ch0lh.rom", 0x180000, 0x020000, CRC(76a330a2) SHA1(4324bceca7bf5155f7b2543748989e2d364a7e97) ) - ROM_LOAD( "r3-ch0hh.rom", 0x1a0000, 0x020000, CRC(4dc69751) SHA1(2abf657dc951dc263b53a2c7a4ed2f4aaf5f9a98) ) - ROM_LOAD( "r3-ch2lh.rom", 0x1c0000, 0x020000, CRC(df3bc48f) SHA1(6747a453da4bca0b837f4ef1f1bbe871f15332ed) ) - ROM_LOAD( "r3-ch2hh.rom", 0x1e0000, 0x020000, CRC(bf37dfac) SHA1(27e825bd0a4d7ae65714fefeb6fedac501984ba9) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "r3-a1.rom", 0x00000, 0x20000, CRC(4396fa19) SHA1(cb6d983f210249676c500723041d74fa3fdc517d) ) - ROM_LOAD( "r3-a2.rom", 0x20000, 0x20000, CRC(41fe53a8) SHA1(1723046111d0115d3f64c3111c50d51306e88ad0) ) - ROM_LOAD( "r3-a3.rom", 0x40000, 0x20000, CRC(e89249ba) SHA1(cd94492a0643e9e1e25b121160914822a6a7723e) ) - ROM_LOAD( "r3-a4.rom", 0x60000, 0x20000, CRC(9cf4c21b) SHA1(756fc6bbc798a39a18eab3829e032cac8fe3f8ed) ) -ROM_END - -ROM_START( rambo3a ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "ramb3-11.bin", 0x00000, 0x20000, CRC(1cc42247) SHA1(e5a226a0016ec329fc23046c426c6303e452ef1d) ) - ROM_LOAD16_BYTE( "ramb3-13.bin", 0x00001, 0x20000, CRC(0a964cb7) SHA1(332fe23c33b1400c628e0c491f3e00820bde6696) ) - ROM_LOAD16_BYTE( "ramb3-07.bin", 0x40000, 0x20000, CRC(c973ff6f) SHA1(d11f289f8559602783d97b831182e8c37954980f) ) - ROM_LOAD16_BYTE( "ramb3-06.bin", 0x40001, 0x20000, CRC(a83d3fd5) SHA1(4f07d969af3b25e4ab8d0f2c03e0c0c8ada02991) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "ramb3-10.bin", 0x00000, 0x4000, CRC(b18bc020) SHA1(5f3a108ad1f652103dda14672223529077a0924b) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ramb3-03.bin", 0x000000, 0x80000, CRC(f5808c41) SHA1(73e129e87d7e240f96cb06d484fb19cd0ef49721) ) - ROM_LOAD( "ramb3-04.bin", 0x080000, 0x80000, CRC(c57831ce) SHA1(85c203a858df34fe8663b2b16447d328cdb4145e) ) - ROM_LOAD( "ramb3-01.bin", 0x100000, 0x80000, CRC(c55fcf54) SHA1(6a26ed2541be9e3341f20e74cc49b5366ce7d424) ) - ROM_LOAD( "ramb3-02.bin", 0x180000, 0x80000, CRC(9dd014c6) SHA1(0f046d9de57db0272810adde7d49cc348b78f1f7) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "ramb3-05.bin", 0x00000, 0x80000, CRC(0179dc40) SHA1(89feb708618ae7fa96883473d5c7a09dcc6f452a) ) -ROM_END - -ROM_START( rambo3ae ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "ramb3-11.bin", 0x00000, 0x20000, CRC(1cc42247) SHA1(e5a226a0016ec329fc23046c426c6303e452ef1d) ) - ROM_LOAD16_BYTE( "ramb3-14.bin", 0x00001, 0x20000, CRC(7d917c21) SHA1(2850c46d6bdabfb76c40a7dc78ebc14b69ce95c9) ) - ROM_LOAD16_BYTE( "ramb3-07.bin", 0x40000, 0x20000, CRC(c973ff6f) SHA1(d11f289f8559602783d97b831182e8c37954980f) ) - ROM_LOAD16_BYTE( "ramb3-06.bin", 0x40001, 0x20000, CRC(a83d3fd5) SHA1(4f07d969af3b25e4ab8d0f2c03e0c0c8ada02991) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "ramb3-10.bin", 0x00000, 0x4000, CRC(b18bc020) SHA1(5f3a108ad1f652103dda14672223529077a0924b) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ramb3-03.bin", 0x000000, 0x80000, CRC(f5808c41) SHA1(73e129e87d7e240f96cb06d484fb19cd0ef49721) ) - ROM_LOAD( "ramb3-04.bin", 0x080000, 0x80000, CRC(c57831ce) SHA1(85c203a858df34fe8663b2b16447d328cdb4145e) ) - ROM_LOAD( "ramb3-01.bin", 0x100000, 0x80000, CRC(c55fcf54) SHA1(6a26ed2541be9e3341f20e74cc49b5366ce7d424) ) - ROM_LOAD( "ramb3-02.bin", 0x180000, 0x80000, CRC(9dd014c6) SHA1(0f046d9de57db0272810adde7d49cc348b78f1f7) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "ramb3-05.bin", 0x00000, 0x80000, CRC(0179dc40) SHA1(89feb708618ae7fa96883473d5c7a09dcc6f452a) ) -ROM_END - -ROM_START( pbobble ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "pb-1c18.bin", 0x00000, 0x40000, CRC(5de14f49) SHA1(91d537748f26e19a5c32de4b8dad341750de39ef) ) - ROM_LOAD16_BYTE( "pb-ic2.bin", 0x00001, 0x40000, CRC(2abe07d1) SHA1(2bb78b606a7341d74cced0447f8bd5ccc635cc4c) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* 128k for Z80 code */ - ROM_LOAD( "pb-ic27.bin", 0x00000, 0x04000, CRC(26efa4c4) SHA1(795af8f6d23c2cbe2c811ec9ab1f14a4eee3f99e) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "pb-ic14.bin", 0x00000, 0x80000, CRC(55f90ea4) SHA1(793c79e5b72171124368ad09dd31235252c541f5) ) - ROM_LOAD( "pb-ic9.bin", 0x80000, 0x80000, CRC(3253aac9) SHA1(916d85aa96e2914630833292a0655b0389b4a39b) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) - ROM_LOAD( "pb-ic15.bin", 0x000000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) ) -ROM_END - -ROM_START( spacedx ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d89-06", 0x00000, 0x40000, CRC(7122751e) SHA1(4b4eb58af28f1988ff102251407449d0affbd4c2) ) - ROM_LOAD16_BYTE( "d89-xx.ic2", 0x00001, 0x40000, CRC(56b0be6c) SHA1(37e3e28a23fb4af35bdf7c751e4c3a743e505c46) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "d89-07.27", 0x00000, 0x4000, CRC(bd743401) SHA1(bf1ff2255bbd79be21855814d52daced71fbe198) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d89-02.14", 0x00000, 0x80000, CRC(c36544b9) SHA1(6bd5257dfb27532621b75f43e31aa351ad2192a2) ) - ROM_LOAD( "d89-01.9", 0x80000, 0x80000, CRC(fffa0660) SHA1(de1abe1b1e9d14405b5663103ea4a6119fce7cc5) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "d89-03.15", 0x00000, 0x80000, CRC(218f31a4) SHA1(9f52b9fa8f02003888180524a6e9ee7c9230f55d) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-d72-05.ic37", 0x0000, 0x0104, CRC(301bf435) SHA1(008112dba8385ef4caeb9300f4db5f079affc660) ) - ROM_LOAD( "pal16l8b-d72-06.ic50", 0x0200, 0x0104, CRC(e4aa4b2b) SHA1(46710ec46e6753656e502007b5515a56b60deb55) ) - ROM_LOAD( "palce20v8-d72-07.ic28", 0x0400, 0x0157, CRC(6359e64c) SHA1(83786f047aef591eb147a16a282f5312b36bc489) ) - ROM_LOAD( "palce20v8-d72-09.ic47", 0x0600, 0x0157, CRC(de1760fd) SHA1(332156699408e5b0a698f031c01f8aa85c3d5d32) ) - ROM_LOAD( "palce16v8-d72-10.ic12", 0x0800, 0x0117, CRC(a5181ba2) SHA1(8315d6efa26be2ed98d4c0b39a196033789ab947) ) - ROM_LOAD( "pal20l8b-d89-04.ic40", 0x0a00, 0x0144, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( spacedxj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d89-06", 0x00000, 0x40000, CRC(7122751e) SHA1(4b4eb58af28f1988ff102251407449d0affbd4c2) ) - ROM_LOAD16_BYTE( "d89-05", 0x00001, 0x40000, CRC(be1638af) SHA1(5d28af674dd355159602e323800419a33e0b77d2) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "d89-07.27", 0x00000, 0x4000, CRC(bd743401) SHA1(bf1ff2255bbd79be21855814d52daced71fbe198) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d89-02.14", 0x00000, 0x80000, CRC(c36544b9) SHA1(6bd5257dfb27532621b75f43e31aa351ad2192a2) ) - ROM_LOAD( "d89-01.9" , 0x80000, 0x80000, CRC(fffa0660) SHA1(de1abe1b1e9d14405b5663103ea4a6119fce7cc5) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "d89-03.15", 0x00000, 0x80000, CRC(218f31a4) SHA1(9f52b9fa8f02003888180524a6e9ee7c9230f55d) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-d72-05.ic37", 0x0000, 0x0104, CRC(c3d4cb7e) SHA1(1f3453a543dd98d02183595d66c67773fbf0ed07) ) - ROM_LOAD( "pal16l8-d72-06.ic50", 0x0200, 0x0104, CRC(e96b7f37) SHA1(568087d0ab0ed55814deccc11630d3e26f765450) ) - ROM_LOAD( "palce20v8-d72-07.ic28", 0x0400, 0x0157, CRC(6359e64c) SHA1(83786f047aef591eb147a16a282f5312b36bc489) ) - ROM_LOAD( "palce20v8-d72-09.ic47", 0x0600, 0x0157, CRC(de1760fd) SHA1(332156699408e5b0a698f031c01f8aa85c3d5d32) ) - ROM_LOAD( "palce16v8-d72-10.ic12", 0x0800, 0x0117, CRC(a01c8336) SHA1(25c0ec11e84d1b22c48bbe22f7a32cd7c5d69e94) ) - ROM_LOAD( "pal20l8b-d89-04.ic40", 0x0a00, 0x0144, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( spacedxo ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "d89-08.bin", 0x00000, 0x20000, CRC(0c2fe7f9) SHA1(a0773c059c8ff2c9e367e0fb460d7e5f9a762ab1) ) - ROM_LOAD16_BYTE( "d89-09.bin", 0x00001, 0x20000, CRC(7f0a0ba4) SHA1(479df027929201997aeebbea5901a0a494f2dd61) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "d89-07.27", 0x00000, 0x4000, CRC(bd743401) SHA1(bf1ff2255bbd79be21855814d52daced71fbe198) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d89-12.bin",0x00000, 0x80000, CRC(53df86f1) SHA1(f03d77dd54eb455462133a29dd8fec007abedcfd) ) - ROM_LOAD( "d89-13.bin",0x80000, 0x80000, CRC(c44c1352) SHA1(78a04fe0ade6e8f9e6bbda7652a54a79b6208fdd) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "d89-03.15", 0x00000, 0x80000, CRC(218f31a4) SHA1(9f52b9fa8f02003888180524a6e9ee7c9230f55d) ) -ROM_END - -ROM_START( qzshowby ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1M for 68000 code */ - ROM_LOAD16_BYTE( "d72-13.bin", 0x00000, 0x80000, CRC(a867759f) SHA1(ab06f42d58ae099fe5c1f810786c2a3e5a667e8e) ) - ROM_LOAD16_BYTE( "d72-12.bin", 0x00001, 0x80000, CRC(522c09a7) SHA1(2ceeb7ac24bb621630cc996381e57501f9ea672e) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* 128k for Z80 code */ - ROM_LOAD( "d72-11.bin", 0x00000, 0x04000, CRC(2ca046e2) SHA1(983620e657d729e1441d509f18141bb3bb581855) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "d72-03.bin", 0x000000, 0x200000, CRC(1de257d0) SHA1(df03b1fb5cd69e2d2eb2088f96f26b0ea9756fb7) ) - ROM_LOAD( "d72-02.bin", 0x200000, 0x200000, CRC(bf0da640) SHA1(2b2493904ed0b94dc12b56dae71cc5c25701aef9) ) - - ROM_REGION( 0x200000, REGION_SOUND1, 0 ) - ROM_LOAD( "d72-01.bin", 0x00000, 0x200000, CRC(b82b8830) SHA1(4b2dca16fe072a5ee51de5cf40637e3f1b39f695) ) -ROM_END - -ROM_START( viofight ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 1M for 68000 code */ - ROM_LOAD16_BYTE( "c16-11.42", 0x00000, 0x10000, CRC(23dbd388) SHA1(488f928826d16b201dcc4b491b09955d0af91f19) ) - ROM_LOAD16_BYTE( "c16-14.23", 0x00001, 0x10000, CRC(dc934f6a) SHA1(36d7b10478f2b97d0521edb84f1f4fa5a11f962b) ) - ROM_LOAD16_BYTE( "c16-07.41", 0x40000, 0x20000, CRC(64d1d059) SHA1(643ac7fa5076147b24810a8e1b925dfe09f75864) ) - ROM_LOAD16_BYTE( "c16-06.22", 0x40001, 0x20000, CRC(043761d8) SHA1(4587cadd73b628b4b9ac5c537cec20f90fb4959d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 128k for Z80 code */ - ROM_LOAD( "c16-12.32", 0x00000, 0x04000, CRC(6fb028c7) SHA1(a808d82e872914f994652e95dca3fcad00ba02fc) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c16-01.1", 0x000000, 0x080000, CRC(7059ce83) SHA1(1e6825ab944254cd4ba6574762172245b3352319) ) - ROM_LOAD( "c16-02.2", 0x080000, 0x080000, CRC(b458e905) SHA1(b712cbf4a4015e1fc2243871fe753e230f0172c2) ) - ROM_LOAD( "c16-03.3", 0x100000, 0x080000, CRC(515a9431) SHA1(836be28614326d093be8841617cca83cef8d55cc) ) - ROM_LOAD( "c16-04.4", 0x180000, 0x080000, CRC(ebf285e2) SHA1(0f806e42778e28e9687d85b2601ee08dd786869b) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "c16-05.47", 0x000000, 0x80000, CRC(a49d064a) SHA1(f9ed675cfaae69b68c99c7dce7c2a457b5b5c293) ) - - ROM_REGION( 0x0400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-c16-08.ic34", 0x0000, 0x0104, CRC(9456d278) SHA1(cd5986f260aac0ae1df1cea6dbd1dbee82536105) ) - ROM_LOAD( "pal16l8b-c16-09.ic35", 0x0200, 0x0104, CRC(0965baab) SHA1(3f704cd42d5277e9ba0b0680a2722488fc4cc630) ) -ROM_END - -ROM_START( viofighu ) - ROM_REGION( 0x080000, REGION_CPU1, 0 ) /* 1M for 68000 code */ - ROM_LOAD16_BYTE( "c16-11.42", 0x00000, 0x10000, CRC(23dbd388) SHA1(488f928826d16b201dcc4b491b09955d0af91f19) ) - ROM_LOAD16_BYTE( "c16-13.23", 0x00001, 0x10000, CRC(ab947ffc) SHA1(103023cee4b20afa5086ba60522ea5aa723aebef) ) - ROM_LOAD16_BYTE( "c16-07.41", 0x40000, 0x20000, CRC(64d1d059) SHA1(643ac7fa5076147b24810a8e1b925dfe09f75864) ) - ROM_LOAD16_BYTE( "c16-06.22", 0x40001, 0x20000, CRC(043761d8) SHA1(4587cadd73b628b4b9ac5c537cec20f90fb4959d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 128k for Z80 code */ - ROM_LOAD( "c16-12.32", 0x00000, 0x04000, CRC(6fb028c7) SHA1(a808d82e872914f994652e95dca3fcad00ba02fc) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c16-01.1", 0x000000, 0x080000, CRC(7059ce83) SHA1(1e6825ab944254cd4ba6574762172245b3352319) ) - ROM_LOAD( "c16-02.2", 0x080000, 0x080000, CRC(b458e905) SHA1(b712cbf4a4015e1fc2243871fe753e230f0172c2) ) - ROM_LOAD( "c16-03.3", 0x100000, 0x080000, CRC(515a9431) SHA1(836be28614326d093be8841617cca83cef8d55cc) ) - ROM_LOAD( "c16-04.4", 0x180000, 0x080000, CRC(ebf285e2) SHA1(0f806e42778e28e9687d85b2601ee08dd786869b) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "c16-05.47", 0x000000, 0x80000, CRC(a49d064a) SHA1(f9ed675cfaae69b68c99c7dce7c2a457b5b5c293) ) - - ROM_REGION( 0x00400, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-c16-08.ic34", 0x0000, 0x0104, CRC(9456d278) SHA1(cd5986f260aac0ae1df1cea6dbd1dbee82536105) ) - ROM_LOAD( "pal16l8b-c16-09.ic35", 0x0200, 0x0104, CRC(0965baab) SHA1(3f704cd42d5277e9ba0b0680a2722488fc4cc630) ) -ROM_END - -ROM_START( masterw ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b72-06.rom", 0x00000, 0x20000, CRC(ae848eff) SHA1(8715e64c5e03097aff5bf1a27e3809619a7731f0) ) - ROM_LOAD16_BYTE( "b72-12.rom", 0x00001, 0x20000, CRC(7176ce70) SHA1(f3462ab9fe7e118b16fbe31d8caca27452280bf9) ) - ROM_LOAD16_BYTE( "b72-04.rom", 0x40000, 0x20000, CRC(141e964c) SHA1(324e881317a3bf9885c81bb53cdc3de782ec2952) ) - ROM_LOAD16_BYTE( "b72-03.rom", 0x40001, 0x20000, CRC(f4523496) SHA1(2c3e9d014ace1ae5127f432292f8d19c3a0ae1b0) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b72-07.rom", 0x00000, 0x4000, CRC(2b1a946f) SHA1(cc9512e44bd92020ab5a53716b6399b7a6cde76d) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b72-02.rom", 0x000000, 0x080000, CRC(c519f65a) SHA1(f40cd7e09fa50abdafa95b7f9edf229e94e53d6f) ) - ROM_LOAD( "b72-01.rom", 0x080000, 0x080000, CRC(a24ac26e) SHA1(895715a2bb0cb15334cba2283bd228b4fc08cd0c) ) -ROM_END - -ROM_START( masterwu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b72-06.rom", 0x00000, 0x20000, CRC(ae848eff) SHA1(8715e64c5e03097aff5bf1a27e3809619a7731f0) ) - ROM_LOAD16_BYTE( "b72-11.rom", 0x00001, 0x20000, CRC(0671fee6) SHA1(6bec65d5e6704b4ec62c91f814675841ae9316a0) ) - ROM_LOAD16_BYTE( "b72-04.rom", 0x40000, 0x20000, CRC(141e964c) SHA1(324e881317a3bf9885c81bb53cdc3de782ec2952) ) - ROM_LOAD16_BYTE( "b72-03.rom", 0x40001, 0x20000, CRC(f4523496) SHA1(2c3e9d014ace1ae5127f432292f8d19c3a0ae1b0) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "b72-07.rom", 0x00000, 0x4000, CRC(2b1a946f) SHA1(cc9512e44bd92020ab5a53716b6399b7a6cde76d) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b72-02.rom", 0x000000, 0x080000, CRC(c519f65a) SHA1(f40cd7e09fa50abdafa95b7f9edf229e94e53d6f) ) - ROM_LOAD( "b72-01.rom", 0x080000, 0x080000, CRC(a24ac26e) SHA1(895715a2bb0cb15334cba2283bd228b4fc08cd0c) ) -ROM_END - -ROM_START( silentd ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "east-12-1.ic32", 0x00000, 0x20000, CRC(5883d362) SHA1(21c3af053fa92c26f119466ecd655697cc72ff3a) ) - ROM_LOAD16_BYTE( "east-15-1.ic10", 0x00001, 0x20000, CRC(8c0a72ae) SHA1(2199c4d6b87913ffb24cdccd6ca5176a97132baa) ) - ROM_LOAD16_BYTE( "east-11.ic31", 0x40000, 0x20000, CRC(35da4428) SHA1(5374bd97ad58aa2d67404cb05c862bb3aba40d6a) ) - ROM_LOAD16_BYTE( "east-09.ic9", 0x40001, 0x20000, CRC(2f05b14a) SHA1(f9ae935612e95d8ac2596af1728a6062569e9a42) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "east-13.ic15", 0x00000, 0x04000, CRC(651861ab) SHA1(f94a120b70a4d59e17a6e120ca461b1f37587c0c) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "east-04.ic28", 0x000000, 0x100000, CRC(53237217) SHA1(fec044c26b8c99235f88c8be0d9ac63b81a3a094) ) - ROM_LOAD( "east-06.ic29", 0x100000, 0x100000, CRC(e6e6dfa7) SHA1(913fa9a21cea175a1af87023144ebc98b3b0f33b) ) - ROM_LOAD( "east-03.ic39", 0x200000, 0x100000, CRC(1b9b2846) SHA1(d9c87e130bc3baa949d8a8738daad648fcf284df) ) - ROM_LOAD( "east-05.ic40", 0x300000, 0x100000, CRC(e02472c5) SHA1(35572610f6823ec980a928a75abd689197ebe207) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "east-02.ic3", 0x00000, 0x80000, CRC(e0de5c39) SHA1(75d0e193d882e67921c216c3293454e34304d25e) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "east-01.ic1", 0x00000, 0x80000, CRC(b41fff1a) SHA1(54920d13fa2b3000eedab9d0050a299ae743c663) ) -ROM_END - -ROM_START( silentdj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "east-12-1.ic32", 0x00000, 0x20000, CRC(5883d362) SHA1(21c3af053fa92c26f119466ecd655697cc72ff3a) ) - ROM_LOAD16_BYTE( "east-10-1.ic10", 0x00001, 0x20000, CRC(584306fc) SHA1(961cb6aaa426e3d83c499d101ef369b86a84c5d8) ) - ROM_LOAD16_BYTE( "east-11.ic31", 0x40000, 0x20000, CRC(35da4428) SHA1(5374bd97ad58aa2d67404cb05c862bb3aba40d6a) ) - ROM_LOAD16_BYTE( "east-09.ic9", 0x40001, 0x20000, CRC(2f05b14a) SHA1(f9ae935612e95d8ac2596af1728a6062569e9a42) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "east-13.ic15", 0x00000, 0x04000, CRC(651861ab) SHA1(f94a120b70a4d59e17a6e120ca461b1f37587c0c) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "east-04.ic28", 0x000000, 0x100000, CRC(53237217) SHA1(fec044c26b8c99235f88c8be0d9ac63b81a3a094) ) - ROM_LOAD( "east-06.ic29", 0x100000, 0x100000, CRC(e6e6dfa7) SHA1(913fa9a21cea175a1af87023144ebc98b3b0f33b) ) - ROM_LOAD( "east-03.ic39", 0x200000, 0x100000, CRC(1b9b2846) SHA1(d9c87e130bc3baa949d8a8738daad648fcf284df) ) - ROM_LOAD( "east-05.ic40", 0x300000, 0x100000, CRC(e02472c5) SHA1(35572610f6823ec980a928a75abd689197ebe207) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "east-02.ic3", 0x00000, 0x80000, CRC(e0de5c39) SHA1(75d0e193d882e67921c216c3293454e34304d25e) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "east-01.ic1", 0x00000, 0x80000, CRC(b41fff1a) SHA1(54920d13fa2b3000eedab9d0050a299ae743c663) ) -ROM_END - -ROM_START( silentdu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "east-12-1.ic32", 0x00000, 0x20000, CRC(5883d362) SHA1(21c3af053fa92c26f119466ecd655697cc72ff3a) ) - ROM_LOAD16_BYTE( "east-14-1.ic10", 0x00001, 0x20000, CRC(3267bcd5) SHA1(358a717d0cdd22d84eb0d928c36e4e72a40c2882) ) - ROM_LOAD16_BYTE( "east-11.ic31", 0x40000, 0x20000, CRC(35da4428) SHA1(5374bd97ad58aa2d67404cb05c862bb3aba40d6a) ) - ROM_LOAD16_BYTE( "east-09.ic9", 0x40001, 0x20000, CRC(2f05b14a) SHA1(f9ae935612e95d8ac2596af1728a6062569e9a42) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "east-13.ic15", 0x00000, 0x04000, CRC(651861ab) SHA1(f94a120b70a4d59e17a6e120ca461b1f37587c0c) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "east-04.ic28", 0x000000, 0x100000, CRC(53237217) SHA1(fec044c26b8c99235f88c8be0d9ac63b81a3a094) ) - ROM_LOAD( "east-06.ic29", 0x100000, 0x100000, CRC(e6e6dfa7) SHA1(913fa9a21cea175a1af87023144ebc98b3b0f33b) ) - ROM_LOAD( "east-03.ic39", 0x200000, 0x100000, CRC(1b9b2846) SHA1(d9c87e130bc3baa949d8a8738daad648fcf284df) ) - ROM_LOAD( "east-05.ic40", 0x300000, 0x100000, CRC(e02472c5) SHA1(35572610f6823ec980a928a75abd689197ebe207) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) - ROM_LOAD( "east-02.ic3", 0x00000, 0x80000, CRC(e0de5c39) SHA1(75d0e193d882e67921c216c3293454e34304d25e) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) - ROM_LOAD( "east-01.ic1", 0x00000, 0x80000, CRC(b41fff1a) SHA1(54920d13fa2b3000eedab9d0050a299ae743c663) ) -ROM_END - -ROM_START( selfeena ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "se-02.27", 0x00000, 0x20000, CRC(08f0c8e3) SHA1(2279ebfcd0cd05eec9c7a01ca7db82fcdc3b7ca7) ) - ROM_LOAD16_BYTE( "se-01.26", 0x00001, 0x20000, CRC(a06ca64b) SHA1(6bfd3c5faf169678ba9bb1c483901b6c06605faf) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "se-03.39",0x00000, 0x4000, CRC(675998be) SHA1(16e59a9b7dc46aeee0022cb73cf6feced6796c35) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "se-04.2", 0x000000, 0x80000, CRC(920ad100) SHA1(69cd2af6218db90632f09a131d2956ab69034643) ) - ROM_LOAD( "se-05.1", 0x080000, 0x80000, CRC(d297c995) SHA1(e5ad5a8ce222621c9156c2949916bee6b3099c4e) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "se-06.11", 0x00000, 0x80000, CRC(80d5e772) SHA1(bee4982a3d65210ff86495e36a0b656934b00c7d) ) -ROM_END - -ROM_START( ryujin ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "ruj02.27", 0x00000, 0x20000, CRC(0d223aee) SHA1(33f5498a650b244c5a4a22415408a269da597abf) ) - ROM_LOAD16_BYTE( "ruj01.26", 0x00001, 0x20000, CRC(c6bcdd1e) SHA1(d8620995ad1bc256eab4ed7e1c549e8b6ec5c3fb) ) - ROM_LOAD16_BYTE( "ruj04.29", 0x40000, 0x20000, CRC(0c153cab) SHA1(16fac3863c1394c9f41173174a4aca20cded6278) ) - ROM_LOAD16_BYTE( "ruj03.28", 0x40001, 0x20000, CRC(7695f89c) SHA1(755eb7ef40da190d55de80ee5e0e0a537c22e5f1) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "ruj05.39",0x00000, 0x4000, CRC(95270b16) SHA1(c1ad76268679cf198e9f1514360f280b73e49ab5) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "ryujin07.2", 0x000000, 0x100000, CRC(34f50980) SHA1(432384bd283389bca17611602eb310726c9d78a4) ) - ROM_LOAD( "ryujin06.1", 0x100000, 0x100000, CRC(1b85ff34) SHA1(5ad259e6f7aa4a0c08975da73bf41400495f2e61) ) - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "ryujin08.11", 0x00000, 0x80000, CRC(480d040d) SHA1(50add2f304ef34f7f45f25a2a2cf0568d58259ad) ) -ROM_END - -ROM_START( sbm ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c69-20-1.10", 0x00000, 0x20000, CRC(b40e4910) SHA1(1436990b8c3c1d0763283133b2ce9d47cd65f825) ) - ROM_LOAD16_BYTE( "c69-22-1.12", 0x00001, 0x20000, CRC(ecbcf830) SHA1(49f04a198d327866b26b978a302ddc7aea5ac6de) ) - ROM_LOAD16_BYTE( "c69-19-1.9" , 0x40000, 0x20000, CRC(5719c158) SHA1(e1cdf89695e1dba75f92e449d08fa6df57e9b388) ) - ROM_LOAD16_BYTE( "c69-21-1.11", 0x40001, 0x20000, CRC(73562394) SHA1(ef9cf4718db05d9b99d6e2630e8f6ad248f30b9a) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c69-23.28",0x00000, 0x4000, CRC(b2fce13e) SHA1(ecdb08482af80fd04cc8b67157e11ca61ce06437) ) - ROM_CONTINUE( 0x10000, 0xc000 ) /* banked stuff */ - - ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD ( "c69-01.ic5", 0x000000, 0x100000, CRC(521fabe3) SHA1(f81303688ac014145a7e9325affc4a0f86755ba9) ) - ROM_LOAD16_BYTE( "c69-13.ic2", 0x100000, 0x020000, CRC(d1550884) SHA1(f3a65827c45959fe5ac4bfc92831a8bed76bf287) ) - ROM_LOAD16_BYTE( "c69-12.ic1", 0x100001, 0x020000, CRC(eb56582c) SHA1(41b77704aeaecf3eaa3f87e97c0b59fd00e5349e) ) - /* 140000-1fffff empty */ - ROM_LOAD ( "c69-02.ic6", 0x200000, 0x100000, CRC(f0e20d35) SHA1(af67f39498f68523ece4cd91045456092038e0a4) ) - ROM_LOAD16_BYTE( "c69-15.ic4", 0x300000, 0x020000, CRC(9761d316) SHA1(f03216bbade96948ff433a925e8bffb8760b4101) ) - ROM_LOAD16_BYTE( "c69-14.ic3", 0x300001, 0x020000, CRC(0ed0272a) SHA1(03b15654213ff71ffc96d3a87657bdeb724e9269) ) - /* 340000-3fffff empty */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* adpcm samples */ - ROM_LOAD( "c69-03.36", 0x00000, 0x80000, CRC(63e6b6e7) SHA1(72574ca7505eee15fabc4996f253505d9dd65898) ) -ROM_END - -static DRIVER_INIT( taito_b ) -{ - memory_configure_bank(1, 0, 4, memory_region(REGION_CPU2) + 0x10000, 0x4000); -} - -GAME( 1989, masterw, 0, masterw, masterw, taito_b, ROT270, "Taito Corporation Japan", "Master of Weapon (World)", GAME_SUPPORTS_SAVE ) -GAME( 1989, masterwu, masterw, masterw, masterw, taito_b, ROT270, "Taito America Corporation", "Master of Weapon (US)", GAME_SUPPORTS_SAVE ) -GAME( 1988, nastar, 0, rastsag2, nastar, taito_b, ROT0, "Taito Corporation Japan", "Nastar (World)", GAME_SUPPORTS_SAVE ) -GAME( 1988, nastarw, nastar, rastsag2, nastarw, taito_b, ROT0, "Taito America Corporation", "Nastar Warrior (US)", GAME_SUPPORTS_SAVE ) -GAME( 1988, rastsag2, nastar, rastsag2, rastsag2, taito_b, ROT0, "Taito Corporation", "Rastan Saga 2 (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1989, rambo3, 0, rambo3, rambo3, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe set 1)", GAME_SUPPORTS_SAVE ) -GAME( 1989, rambo3ae, rambo3, rambo3a, rambo3a, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1989, rambo3a, rambo3, rambo3a, rambo3a, taito_b, ROT0, "Taito America Corporation", "Rambo III (US)", GAME_SUPPORTS_SAVE ) -GAME( 1989, crimec, 0, crimec, crimec, taito_b, ROT0, "Taito Corporation Japan", "Crime City (World)", GAME_SUPPORTS_SAVE ) -GAME( 1989, crimecu, crimec, crimec, crimecu, taito_b, ROT0, "Taito America Corporation", "Crime City (US)", GAME_SUPPORTS_SAVE ) -GAME( 1989, crimecj, crimec, crimec, crimecj, taito_b, ROT0, "Taito Corporation", "Crime City (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1989, tetrist, tetris, tetrist, tetrist, taito_b, ROT0, "Sega", "Tetris (Japan, B-System, YM2610)", GAME_SUPPORTS_SAVE ) -GAME( 1989, tetrista, tetris, tetrista, tetrist, taito_b, ROT0, "Sega", "Tetris (Japan, B-System, YM2203)", GAME_SUPPORTS_SAVE ) -GAME( 1989, viofight, 0, viofight, viofight, taito_b, ROT0, "Taito Corporation Japan", "Violence Fight (World)", GAME_SUPPORTS_SAVE ) -GAME( 1989, viofighu, viofight,viofight, viofight, taito_b, ROT0, "Taito America Corporation", "Violence Fight (US)", GAME_SUPPORTS_SAVE ) -GAME( 1990, ashura, 0, ashura, ashura, taito_b, ROT270, "Taito Corporation", "Ashura Blaster (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1990, ashurau, ashura, ashura, ashurau, taito_b, ROT270, "Taito America Corporation", "Ashura Blaster (US)", GAME_SUPPORTS_SAVE ) -GAME( 1990, hitice, 0, hitice, hitice, taito_b, ROT0, "Williams", "Hit the Ice (US)", GAME_SUPPORTS_SAVE ) -GAME( 1991, selfeena, 0, selfeena, selfeena, taito_b, ROT0, "East Technology", "Sel Feena", GAME_SUPPORTS_SAVE ) -GAME( 1992, silentd, 0, silentd, silentd, taito_b, ROT0, "Taito Corporation Japan", "Silent Dragon (World)", GAME_SUPPORTS_SAVE ) -GAME( 1992, silentdj, silentd, silentd, silentdj, taito_b, ROT0, "Taito Corporation", "Silent Dragon (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1992, silentdu, silentd, silentd, silentdj, taito_b, ROT0, "Taito America Corporation", "Silent Dragon (US)", GAME_SUPPORTS_SAVE ) -GAME( 1993, ryujin, 0, ryujin, ryujin, taito_b, ROT270, "Taito Corporation", "Ryu Jin (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1993, qzshowby, 0, qzshowby, qzshowby, taito_b, ROT0, "Taito Corporation", "Quiz Sekai wa SHOW by shobai (Japan)", GAME_SUPPORTS_SAVE ) -GAME( 1994, pbobble, 0, pbobble, pbobble, taito_b, ROT0, "Taito Corporation", "Puzzle Bobble (Japan, B-System)", GAME_SUPPORTS_SAVE ) -GAME( 1994, spacedx, 0, spacedx, pbobble, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (US) v2.1", GAME_SUPPORTS_SAVE ) -GAME( 1994, spacedxj, spacedx, spacedx, pbobble, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan) v2.1", GAME_SUPPORTS_SAVE ) -GAME( 1994, spacedxo, spacedx, spacedxo, spacedxo, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan) v2.0", GAME_SUPPORTS_SAVE ) -/* - Sonic Blast Man is a ticket dispensing game. - (Japanese version however does not dispense them, only US does - try the "sbm_patch" in the machine_config). - It is a bit different from other games running on this system, - in that it has a punching pad that player needs to punch to hit - the enemy. -*/ -GAME( 1990, sbm, 0, sbm, sbm, taito_b, ROT0, "Taito Corporation", "Sonic Blast Man (Japan)", GAME_SUPPORTS_SAVE ) diff --git a/src/drivers/taito_f2.c b/src/drivers/taito_f2.c deleted file mode 100644 index 8878c4da0..000000000 --- a/src/drivers/taito_f2.c +++ /dev/null @@ -1,5936 +0,0 @@ -/*************************************************************************** - -Taito F2 System - -driver by David Graves, Bryan McPhail, Brad Oliver, Andrew Prime, Brian -Troha, Nicola Salmoria with some initial help from Richard Bush - -The Taito F2 system is a fairly flexible hardware platform. The main board -supports three 64x64 tiled scrolling background planes of 8x8 tiles, and a -powerful sprite engine capable of handling all the video chores by itself -(used in e.g. Super Space Invaders). The front tilemap has characters which -are generated in RAM for maximum versatility (fading effects etc.). -The expansion board can have additional gfx chip e.g. for a zooming/rotating -tilemap, or additional tilemap planes. - -Sound is handled by a Z80 with a YM2610 connected to it. - -The memory map for each of the games is similar but shuffled around. - -Notes: -- Metal Black has secret command to select stage. - Start the machine with holding service switch. - Then push 1p start, 1p start, 1p start, service SW, 1p start - while error message is displayed. - -(This also works in many of the other games. Use in Don Doko Don to play - an extra set of fifty levels.) - - -Custom chips ------------- -The old version of the F2 main board (larger) has -TC0100SCN (tilemaps) -TC0200OBJ+TC0210FBC (sprites) -TC0140SYT (sound communication & other stuff) - -The new version has -TC0100SCN (tilemaps) -TC0540OBN+TC0520TBC (sprites) -TC0530SYC (sound communication & other stuff) - - I/O Priority / Palette Additional gfx Other - --------- ------------------- ----------------------- ---------------------------- -finalb TC0220IOC TC0110PCR TC0070RGB -dondokod TC0220IOC TC0360PRI TC0260DAR TC0280GRD(x2)(zoom/rot) -megab TC0220IOC TC0360PRI TC0260DAR TC0030CMD(C-Chip protection) -thundfox TC0220IOC TC0360PRI TC0260DAR TC0100SCN (so it has two) -cameltry TC0220IOC TC0360PRI TC0260DAR TC0280GRD(x2)(zoom/rot) -qtorimon TC0220IOC TC0110PCR TC0070RGB -liquidk TC0220IOC TC0360PRI TC0260DAR -quizhq TMP82C265 TC0110PCR TC0070RGB -ssi TC0510NIO TC0260DAR -gunfront TC0510NIO TC0360PRI TC0260DAR -growl TMP82C265 TC0360PRI TC0260DAR TC0190FMC(4 players input?sprite banking?) -mjnquest TC0110PCR TC0070RGB -footchmp TE7750 TC0360PRI TC0260DAR TC0480SCP(tilemaps) TC0190FMC(4 players input?sprite banking?) -koshien TC0510NIO TC0360PRI TC0260DAR -yuyugogo TC0510NIO TC0260DAR -ninjak TE7750 TC0360PRI TC0260DAR TC0190FMC(4 players input?sprite banking?) -solfigtr ? TC0360PRI TC0260DAR ? -qzquest TC0510NIO TC0260DAR -pulirula TC0510NIO TC0360PRI TC0260DAR TC0430GRW(zoom/rot) -metalb TC0510NIO TC0360PRI TC0260DAR TC0480SCP(tilemaps) -qzchikyu TC0510NIO TC0260DAR -yesnoj TMP82C265 TC0260DAR TC8521AP(RTC?) -deadconx TC0360PRI TC0260DAR TC0480SCP(tilemaps) TC0190FMC(4 players input?sprite banking?) -dinorex TC0510NIO TC0360PRI TC0260DAR -qjinsei TC0510NIO TC0360PRI TC0260DAR -qcrayon TC0510NIO TC0360PRI TC0260DAR -qcrayon2 TC0510NIO TC0360PRI TC0260DAR -driftout TC0510NIO TC0360PRI TC0260DAR TC0430GRW(zoom/rot) - - - -F2 Game List ------------- -. Final Blow (1) -. Don Doko Don (2) -. Mega Blast http://www.taito.co.jp/game-history/80b/megabla.html (3) -. Quiz Torimonochou http://www.taito.co.jp/game-history/90a/qui_tori.html (4) -. Quiz HQ http://www.taito.co.jp/game-history/90a/quiz_hq.html -. Thunder Fox http://www.taito.co.jp/game-history/90a/thu_fox.html -. Liquid Kids http://www.taito.co.jp/game-history/90a/miz_bak.html (7) -. SSI / Majestic 12 http://www.taito.co.jp/game-history/90a/mj12.html (8) -. Gun Frontier http://www.taito.co.jp/game-history/90a/gunfro.html (9) -. Growl / Runark http://www.taito.co.jp/game-history/90a/runark.html (10) -. Hat Trick Hero http://www.taito.co.jp/game-history/90a/hthero.html (11) -. Mahjong Quest http://www.taito.co.jp/game-history/90a/mahque.html (12) -. Yuu-yu no Quiz de Go!Go! http://www.taito.co.jp/game-history/90a/youyu.html (13) -. Ah Eikou no Koshien http://www.taito.co.jp/game-history/90a/koshien.html (14) -. Ninja Kids http://www.taito.co.jp/game-history/90a/ninjakids.html (15) -. Quiz Quest http://www.taito.co.jp/game-history/90a/q_quest.html -. Metal Black http://www.taito.co.jp/game-history/90a/metabla.html -. Quiz Chikyu Boueigun http://www.taito.co.jp/game-history/90a/qui_tik.html -. Dinorex http://www.taito.co.jp/game-history/90a/dinorex.html -. Pulirula -. Dead Connection http://www.taito.co.jp/game-history/90a/deadconn.html -. Quiz Jinsei Gekijou http://www.taito.co.jp/game-history/90a/qui_jin.html -. Quiz Crayon Shinchan http://www.taito.co.jp/game-history/90a/qcrashin.html -. Crayon Shinchan Orato Asobo - - -This list is translated version of -http://www.aianet.or.jp/~eisetu/rom/rom_tait.html -This page also contains info for other Taito boards. - -F2 Motherboard ( Big ) K1100432A, J1100183A - (Small) K1100608A, J1100242A - -Apr.1989 Final Blow (B82, M4300123A, K1100433A) -Jul.1989 Don Doko Don (B95, M4300131A, K1100454A, J1100195A) -Oct.1989 Mega Blast (C11) -Feb.1990 Quiz Torimonochou (C41, K1100554A) -Apr.1990 Cameltry (C38, M4300167A, K1100556A) -Jul.1990 Quiz H.Q. (C53, K1100594A) -Aug.1990 Thunder Fox (C28, M4300181A, K1100580A) (exists in F1 version too) -Sep.1990 Liquid Kids/Mizubaku Daibouken (C49, K1100593A) -Nov.1990 MJ-12/Super Space Invaders (C64, M4300195A, K1100616A, J1100248A) -Jan.1991 Gun Frontier (C71, M4300199A, K1100625A, K1100629A(overseas)) -Feb.1991 Growl/Runark (C74, M4300210A, K1100639A) -Mar.1991 Hat Trick Hero/Euro Football Championship (C80, K11J0646A) -Mar.1991 Yuu-yu no Quiz de Go!Go! (C83, K11J0652A) -Apr.1991 Ah Eikou no Koshien (C81, M43J0214A, K11J654A) -Apr.1991 Ninja Kids (C85, M43J0217A, K11J0659A) -May.1991 Mahjong Quest (C77, K1100637A, K1100637B) -Jul.1991 Quiz Quest (C92, K11J0678A) -Sep.1991 Metal Black (D12) -Oct.1991 Drift Out (Visco) (M43X0241A, K11X0695A) -Nov.1991 PuLiRuLa (C98, M43J0225A, K11J0672A) -Feb.1992 Quiz Chikyu Boueigun (D19, K11J0705A) -Jul.1992 Dead Connection (D28, K11J0715A) -Nov.1992 Dinorex (D39, K11J0254A) -Mar.1993 Quiz Jinsei Gekijou (D48, M43J0262A, K11J0742A) -Aug.1993 Quiz Crayon Shinchan (D55, K11J0758A) -Dec.1993 Crayon Shinchan Orato Asobo (D63, M43J0276A, K11J0779A) - -Mar.1992 Yes.No. Shinri Tokimeki Chart (Fortune teller machine) (D20, K11J0706B) - -Thunder Fox, Drift Out, "Quiz Crayon Shinchan", and "Crayon Shinchan -Orato Asobo" has "Not F2" version PCB. -Foreign version of Cameltry uses different hardware (B89's PLD, -K1100573A, K1100574A). - - - - -Sprite extension area types -=========================== - -These games need a special value for f2_spriteext: - -Yuyugogo = 1 -Pulirula = 2 -Dinorex = 3 -Quiz Crayon 1&2 = 3 -Quiz Jinsei = 3 -(all other games need it to be zero) - -TODO Lists -========== - -- The sprite system is still partly a mystery, and not an accurate emulation. - A lot of sprite glitches are caused by data in sprite ram not being correct, - part from one frame and part from the previous one. There has to be some - buffering inside the chip but it's not clear how. See below the irq section - for a long list of observations on sprite glitches. - - Other limitations include: misplaced tile of the zooming title in Qcrayon - (the one on the yellow background in attract); sprites when you get a home - run in Koshien are often out on x axis by 1 pixel. - -- TC0480SCP emulation (footchmp, metalb, deadconx) has slight inaccuracies. - Zoomed layers and zoomed pixel rows are not precisely positioned. - -- DIPS, still many unknown - -- Restored save states on some games tend to hang. - -- All non-quiz games except Solfigtr have 2 country sets dumped: if 1 byte diff - then create the third set. - - -Don Doko Don ------------- - -Roz layer is one pixel out vertically when screen flipped. - - -Cameltry (camltrua) --------- - -Alt version with YM2203 sound missing ADPCM chip? Also sound tempo -may be fractionally too slow. - - -Gun Frontier ------------- - -There are mask sprites used on the waterfall in the first round -of attract demo, however it's not clear what they should mask since -there don't seem to be sprites below them. Shadow maybe? -(BM161104 - Fixed) - - -Pulirula --------- - -In level 3, the mask sprites used for the door are misaligned by one pixel to -the left. -(BM100705 - Not a bug - various alignment problems seem to be confirmed from a real pcb). -Shadows appear to have some kind of flicker effect on real pcb - not emulated/understood. - -Metal Black ------------ - -Tilemap screenflip support has an issue: blue planet early in attract -should be 1 pixel left. - -Sprite emulation issues may be responsible for minor glitches on the -"bolts" on round 4 boss ship: some sprite/tilemap lag creeps in. - -Missing two blend effects: there's a sun sprite underneath tilemaps -in round 1; and the boss sprite crosses under the tilemaps at start -of round 5 finale. -(BM161104 - Fixed) - - -Yesnoj ------- - -Input mapping incomplete. There's a 0x01 one which only seems to be -used in printer [printer test?] mode. It seems to be a printer status -input. With the value currently returned, it sounds an alarm and says -[Japanese trans.] "Error detected on the printer. Call machine operator." - -The timer stays at 00:00. Missing RTC emulation? - -[Coin lockout/ctr?] - - -Quiz Crayon 2 -------------- - -There should be a highlight circle around the player while it moves on the -map. This is done by a sprite which doesn't have priority over the -background. This is probably the same thing as the waterfall in Gun Frontier. -(BM161104 - Fixed) - -Driftout --------- - -Sprites are 1 pixel too far right in screenflip. -Roz layer is around 4 pixels too far down in screenflip. - - -PCB Layout ----------- - -K11T0658A -NINJA KIDS -|----------------------------------------------| -|PAL PAL C85-12*.49 C85-15*.50 DSWA DSWB | -|68000P12 C85-06.49 C85-07.50 OSC1 TE7750 | -| | -| 84256 84256 C85-03.65 | -| MB3771 | -| TCO190FMC TCO100SCN TC51832 | -|C85-02.19 84256 84256 TC51832 J| -|C85-01.17 HM3-65764KS A| -| M| -|TC51832 TC51832 TCO360PRI M| -|TC51832 TC51832 TCO540OBN TCO260DAR A| -|TC51832 TC51832 | -|TC51832 TC51832 TCO520TBC | -|TC51832 TC51832 OSC2 Z80A | -|TC51832 TC51832 TCO530SYC | -|TC51832 TC51832 C85-05.33 C85-14.54 | -| C85-04.31 YM2610 YM3016 | -|----------------------------------------------| - -Notes: - OSC1 = 26.686MHz - OSC2 = 24.000MHz - 68000 clock: 12.000MHz (24 / 2) - Z80 clock: 4.000MHz (24 / 6) - YM2610 clock: 8.000MHz (24 / 3) - Vsync: 60Hz - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "taito_f2.h" -#include "sound/2203intf.h" -#include "sound/2610intf.h" -#include "sound/okim6295.h" - - -static INT32 banknum = 0; -static INT32 mjnquest_input; -static INT32 yesnoj_dsw = 0; - - -/********************************************************** - GAME INPUTS -**********************************************************/ - -static WRITE16_HANDLER( taitof2_watchdog_w ) -{ - watchdog_reset_w(0,data); -} - -static WRITE16_HANDLER( growl_coin_word_w ) /* what about coins 3&4 ?? */ -{ - if (ACCESSING_LSB) - { - coin_lockout_w(0, ~data & 0x01); - coin_lockout_w(1, ~data & 0x02); - coin_counter_w(0, data & 0x04); - coin_counter_w(1, data & 0x08); - } -} - -static WRITE16_HANDLER( taitof2_4p_coin_word_w ) -{ - if (ACCESSING_LSB) - { - coin_lockout_w(0, ~data & 0x01); - coin_lockout_w(1, ~data & 0x02); - coin_lockout_w(2, ~data & 0x04); - coin_lockout_w(3, ~data & 0x08); - coin_counter_w(0, data & 0x10); - coin_counter_w(1, data & 0x20); - coin_counter_w(2, data & 0x40); - coin_counter_w(3, data & 0x80); - } -} - -static WRITE16_HANDLER( ninjak_coin_word_w ) -{ - if (ACCESSING_MSB) - { - coin_lockout_w(0, ~data & 0x0100); - coin_lockout_w(1, ~data & 0x0200); - coin_lockout_w(2, ~data & 0x0400); - coin_lockout_w(3, ~data & 0x0800); - coin_counter_w(0, data & 0x1000); - coin_counter_w(1, data & 0x2000); - coin_counter_w(2, data & 0x4000); - coin_counter_w(3, data & 0x8000); - } -} - -static READ16_HANDLER( growl_dsw_r ) -{ - switch (offset) - { - case 0x00: - return input_port_3_word_r(0,mem_mask); /* DSW A */ - - case 0x01: - return input_port_4_word_r(0,mem_mask); /* DSW B */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped dsw_r offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( growl_input_r ) -{ - switch (offset) - { - case 0x00: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - - case 0x01: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - - case 0x02: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - - } - -logerror("CPU #0 PC %06x: warning - read unmapped input_r offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( footchmp_input_r ) -{ - switch (offset) - { - case 0x00: - return input_port_3_word_r(0,mem_mask); /* DSW A */ - - case 0x01: - return input_port_4_word_r(0,mem_mask); /* DSW B */ - - case 0x02: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - -// case 0x03: -// return (coin_word & ~mem_mask); - - case 0x05: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - - case 0x06: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - - case 0x07: - return input_port_5_word_r(0,mem_mask); /* IN3 */ - - case 0x08: - return input_port_6_word_r(0,mem_mask); /* IN4 */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped input offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( ninjak_input_r ) -{ - switch (offset) - { - case 0x00: - return (input_port_3_word_r(0,0) << 8); /* DSW A */ - - case 0x01: - return (input_port_4_word_r(0,0) << 8); /* DSW B */ - - case 0x02: - return (input_port_0_word_r(0,0) << 8); /* IN 0 */ - - case 0x03: - return (input_port_1_word_r(0,0) << 8); /* IN 1 */ - - case 0x04: - return (input_port_5_word_r(0,0) << 8); /* IN 3 */ - - case 0x05: - return (input_port_6_word_r(0,0) << 8); /* IN 4 */ - - case 0x06: - return (input_port_2_word_r(0,0) << 8); /* IN 2 */ - -// case 0x07: -// return (coin_word & ~mem_mask); - } - -logerror("CPU #0 PC %06x: warning - read unmapped input offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( cameltry_paddle_r ) -{ - static int last[2]; - int curr,res = 0xff; - - switch (offset) - { - case 0x00: - curr = input_port_5_word_r(0,0); /* Paddle A */ - res = curr - last[0]; - last[0] = curr; - return res; - - case 0x02: - curr = input_port_6_word_r(0,0); /* Paddle B */ - res = curr - last[1]; - last[1] = curr; - return res; - } - -logerror("CPU #0 PC %06x: warning - read unmapped paddle offset %06x\n",activecpu_get_pc(),offset); - - return 0; -} - -static READ16_HANDLER( driftout_paddle_r ) -{ - switch (offset) - { - case 0x00: - return input_port_5_word_r(0,mem_mask); /* Paddle A */ - - case 0x01: - return input_port_6_word_r(0,mem_mask); /* Paddle B */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped paddle offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( deadconx_input_r ) -{ - switch (offset) - { - case 0x00: - return input_port_3_word_r(0,mem_mask); /* DSW A */ - - case 0x01: - return input_port_4_word_r(0,mem_mask); /* DSW B */ - - case 0x02: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - -// case 0x03: -// return (coin_word & ~mem_mask); - - case 0x05: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - - case 0x06: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped input offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( mjnquest_dsw_r ) -{ - switch (offset) - { - case 0x00: - { - return (input_port_5_word_r(0,0) << 8) + input_port_7_word_r(0,0); /* DSW A + coin */ - } - - case 0x01: - { - return (input_port_6_word_r(0,0) << 8) + input_port_8_word_r(0,0); /* DSW B + coin */ - } - } - - logerror("CPU #0 PC %06x: warning - read unmapped dsw_r offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( mjnquest_input_r ) -{ - switch (mjnquest_input) - { - case 0x01: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - - case 0x02: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - - case 0x04: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - - case 0x08: - return input_port_3_word_r(0,mem_mask); /* IN3 */ - - case 0x10: - return input_port_4_word_r(0,mem_mask); /* IN4 */ - - } - -logerror("CPU #0 mjnquest_input %06x: warning - read unknown input %06x\n",activecpu_get_pc(),mjnquest_input); - - return 0xff; -} - -static WRITE16_HANDLER( mjnquest_inputselect_w ) -{ - mjnquest_input = (data >> 6); -} - -static READ16_HANDLER( quizhq_input1_r ) -{ - switch (offset) - { - case 0x00: - return input_port_4_word_r(0,mem_mask); /* DSW B */ - - case 0x01: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped input_r offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( quizhq_input2_r ) -{ - switch (offset) - { - case 0x00: - return input_port_3_word_r(0,mem_mask); /* DSW A */ - - case 0x01: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - - case 0x02: - return input_port_2_word_r(0,mem_mask); /* IN2 */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped input_r offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static READ16_HANDLER( yesnoj_input_r ) -{ - switch (offset) - { - case 0x00: - return input_port_0_word_r(0,mem_mask); /* IN0 */ - -/* case 0x01 only used if "printer" DSW is on, and appears to - be printer status byte */ - - case 0x02: - return input_port_1_word_r(0,mem_mask); /* IN1 */ - } - -logerror("CPU #0 PC %06x: warning - read unmapped input_r offset %06x\n",activecpu_get_pc(),offset); - - return 0x0; -} - -static READ16_HANDLER( yesnoj_dsw_r ) -{ -#ifdef MAME_DEBUG - logerror("CPU #0 PC = %06x: read yesnoj DSW %01x\n",activecpu_get_pc(),yesnoj_dsw); -#endif - - yesnoj_dsw = 1 - yesnoj_dsw; /* game reads same word twice to get DSW A then B so we toggle */ - - if (yesnoj_dsw) - { - return input_port_2_word_r(0,mem_mask); - } - else - { - return input_port_3_word_r(0,mem_mask); - } -} - -/****************************************************************** - INTERRUPTS (still a WIP) - -The are two interrupt request signals: VBL and DMA. DMA comes -from the sprite generator (maybe when it has copied the data to -a private buffer, or rendered the current frame, or who knows what -else). -The requests are mapped through a PAL so no hardwiring, but the PAL -could be the same across all the games. All the games have just two -valid vectors, IRQ5 and IRQ6. - -It seems that usually VBL maps to IRQ5 and DMA to IRQ6. However -there are jumpers on the board allowing to swap the two interrupt -request signals, so this could explain a need for certain games to -have them in the opposite order. - -There are lots of sprite glitches in many games because the sprite ram -is often updated in two out-of-sync chunks. I am almost sure there is -some partial buffering going on in the sprite chip, and DMA has to -play a part in it. - - - sprite ctrl regs interrupts & sprites - 0006 000a 8006 800a - ---------------------- ----------------------------------------------- -finalb 8000 0300 0000 0000 Needs partial buffering like dondokod to avoid glitches -dondokod 8000 0000/8 0000 0000 IRQ6 just sets a flag. IRQ5 waits for that flag, - toggles ctrl register 0000<->0008, and copies bytes - 0 and 8 *ONLY* of sprite data (code, color, flip, - ctrl). The other bytes of sprite data (coordinates - and zoom) are updated by the main program. - Caching sprite data and using bytes 0 and 8 from - previous frame and the others from *TWO* frames - before is enough to get glitch-free sprites that seem - to be perfectly in sync with scrolling (check the tree - mouths during level change). -thundfox 8000 0000 0000 0000 IRQ6 copies bytes 0 and 8 *ONLY* of sprite data (code, - color, flip, ctrl). The other bytes of sprite data - (coordinates and zoom) are updated (I think) by the - main program. - The same sprite data caching that works for dondokod - improves sprites, but there are still glitches related - to zoom (check third round of attract mode). Those - glitches can be fixed by buffering also the zoom ctrl - byte. - Moreover, sprites are not in perfect sync with the - background (sometimes they are one frame behind, but - not always). -qtorimon 8000 0000 0000 0000 IRQ6 does some stuff but doesn't seem to deal with - sprites. IRQ5 copies bytes 0, 8 *AND ALSO 2* of sprite - data in one routine, and immediately after that the - remaining bytes 4 and 6 in another routine, without - doing, it seems, any waiting inbetween. - Nevertheless, separated sprite data caching like in - dondokod is still required to avoid glitches. -liquidk 8000 0000/8 0000 0000 Same as dondokod. An important difference is that - the sprite ctrl register doesn't toggle every frame - (because the handler can't complete the frame in - time?). This can be seen easily in the attract mode, - where sprite glitches appear. - Correctly handling the ctrl register and sprite data - caching seems to be vital to avoid sprite glitches. -quizhq 8000 0000 0000 0000 Both IRQ5 and IRQ6 do stuff, I haven't investigated. - There is a very subtle sprite glitch if sprite data - buffering is not used: the blinking INSERT COIN in - the right window will get moved as garbage chars on - the left window score and STOCK for one frame when - INSERT COINS disappears from the right. This happens - because bytes 0 and 8 of the sprite data are one - frame behind and haven't been cleared yet. -ssi 8000 0000 0000 0000 IRQ6 does nothing. IRQ5 copies bytes 0 and 8 *ONLY* - of sprite data (code, color, flip, ctrl). The other - bytes of sprite data (coordinates and zoom) are - updated by the main program. - The same sprite data caching that works for dondokod - avoids major glitches, but I'm not sure it's working - right when the big butterfly (time bonus) is on - screen (it flickers on and off every frame). -gunfront 8000 1000/1 8001 1000/1 The toggling bit in the control register selects the - sprite bank used. It normally toggles every frame but - sticks for two frame when lots of action is going on - (see smart bombs in attract mode) and glitches will - appear if it is not respected. - IRQ6 writes the sprite ctrl registers, and also writes - related data to the sprites at 9033e0/90b3e0. The - active one gets 8000/8001 in byte 6 and 1001/1000 in - byte 10, while the other gets 0. Note that the value - in byte 10 is inverted from the active bank, as if it - were a way to tell the sprite hardware "after this, go - to the other bank". - Note also that IRQ6 isn't the only one writing to the - sprite ctrl registers, this is done also in the parts - that actually change the sprite data (I think it's - main program, not interrupt), so it's not clear who's - "in charge". Actually it seems that what IRQ6 writes - is soon overwritten so that what I outlined above - regarding 9033e0/90b3e0 is no longer true, and they - are no longer in sync with the ctrl registers, messing - up smart bombs. - There don't seem to be other glitches even without - sprite data buffering. -growl 8000 0000 8001 0001 IRQ6 just sets a flag. I haven't investigated who - updates the sprite ram. - This game uses sprite banks like gunfront, but unlike - gunfront it doesn't change the ctrl registers. What it - does is change the sprites at 903210/90b210; 8000/8001 - is always written in byte 6, while byte 10 receives - the active bank (1000 or 1001). There are also end of - list markers placed before that though, and those seem - to always match what's stored in the ctrl registers - (8000 1000 for the first bank and 8001 1001 for the - second). - There don't seem to be sprite glitches even without - sprite data buffering, but sprites are not in sync with - the background. -mjnquest 8000 0800/8 0000 0000 -footchmp 8000 0000 8001 0001 IRQ6 just sets a flag (and writes to an unknown memory - location). - This games uses sprite banks as well, this time it - writes markers at 2033e0/20b3e0, it always writes - 1000/1001 to byte 10, while it writes 8000 or 8001 to - byte 6 depending on the active bank. This is the exact - opposite of growl... -hthero -koshien 8000 0000 8001 0001 Another game using banks.The markers are again at - 9033e0/90b3e0 but this time byte 6 receives 9000/9001. - Byte 10 is 1000 or 1001 depending on the active bank. -yuyugogo 8000 0800/8 0000 0000 -ninjak 8000 0000 8001 0001 uses banks -solfigtr 8000 0000 8001 0001 uses banks -qzquest 8000 0000 0000 0000 Separated sprite data caching like in dondokod is - required to avoid glitches. -pulirula 8000 0000 8001 0001 uses banks -qzchikyu 8000 0000 0000 0000 With this game there are glitches and the sprite data - caching done in dondokod does NOT fix them. -deadconx 8/9000 0000/1 8/9001 0000/1 I guess it's not a surprise that this game uses banks - in yet another different way. -dinorex 8000 0000 8001 0001 uses banks -driftout 8000 0000/8 0000 0000 The first control changes from 8000 to 0000 at the end - of the attract demo and seems to stay that way. - - -******************************************************************/ - -void taitof2_interrupt6(int x) -{ - cpunum_set_input_line(0,6,HOLD_LINE); -} - -static INTERRUPT_GEN( taitof2_interrupt ) -{ - timer_set(TIME_IN_CYCLES(500,0),0, taitof2_interrupt6); - cpunum_set_input_line(0, 5, HOLD_LINE); -} - - -/**************************************************************** - SOUND -****************************************************************/ - -static void reset_sound_region(void) -{ - memory_set_bankptr( 2, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 ); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = (data - 1) & 7; - reset_sound_region(); - -#ifdef MAME_DEBUG - if (banknum>2) logerror("CPU #1 switch to ROM bank %06x: should only happen if Z80 prg rom is 128K!\n",banknum); -#endif -} - - -READ16_HANDLER( taitof2_sound_r ) -{ - if (offset == 1) - return (taitosound_comm16_lsb_r(0,mem_mask)); - else return 0; -} - -READ16_HANDLER( taitof2_msb_sound_r ) -{ - if (offset == 1) - return (taitosound_comm16_msb_r(0,mem_mask)); - else return 0; -} - - -static INT32 driveout_sound_latch = 0; - - -static READ8_HANDLER( driveout_sound_command_r) -{ - cpunum_set_input_line(1,0,CLEAR_LINE); -// logerror("sound IRQ OFF (sound command=%02x)\n",driveout_sound_latch); - return driveout_sound_latch; -} - -static INT32 oki_bank = 0; - -static void reset_driveout_sound_region(void) -{ - OKIM6295_set_bank_base(0, oki_bank*0x40000); -} - -static WRITE8_HANDLER (oki_bank_w) -{ - if ((data&4) && (oki_bank!=(data&3)) ) - { - oki_bank = (data&3); - } - reset_driveout_sound_region(); -} - -static WRITE16_HANDLER ( driveout_sound_command_w ) -{ - static int nibble = 0; - - if (ACCESSING_MSB) - { - data >>= 8; - if (offset==0) - { - nibble = data & 1; - } - else - { - if (nibble==0) - { - driveout_sound_latch = (data & 0x0f) | (driveout_sound_latch & 0xf0); - } - else - { - driveout_sound_latch = ((data<<4) & 0xf0) | (driveout_sound_latch & 0x0f); - cpunum_set_input_line (1, 0, ASSERT_LINE); - } - } - } -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - -static ADDRESS_MAP_START( finalb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( finalb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x810000, 0x81ffff) AM_WRITE(MWA16_NOP) /* error in game init code ? */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xb00002, 0xb00003) AM_WRITE(MWA16_NOP) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dondokod_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0280GRD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dondokod_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0280GRD_word_w) /* ROZ tilemap */ - AM_RANGE(0xa02000, 0xa0200f) AM_WRITE(TC0280GRD_ctrl_word_w) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( megab_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x100003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x120000, 0x12000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x180000, 0x180fff) AM_READ(cchip2_word_r) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x610000, 0x61ffff) AM_READ(MRA16_RAM) /* unused? */ - AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( megab_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x120000, 0x12000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x180000, 0x180fff) AM_WRITE(cchip2_word_w) AM_BASE(&cchip_ram) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x400000, 0x40001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x610000, 0x61ffff) AM_WRITE(MWA16_RAM) /* unused? */ - AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( thundfox_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x101fff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x220000, 0x220003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x420000, 0x42000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x500000, 0x50ffff) AM_READ(TC0100SCN_word_1_r) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_READ(TC0100SCN_ctrl_word_1_r) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( thundfox_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x101fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x220000, 0x220001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x220002, 0x220003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0100SCN_word_1_w) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_WRITE(TC0100SCN_ctrl_word_1_w) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x800000, 0x80001f) AM_WRITE(TC0360PRI_halfword_swap_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cameltry_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x300018, 0x30001f) AM_READ(cameltry_paddle_r) - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x813fff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0280GRD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( cameltry_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x813fff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0280GRD_word_w) /* ROZ tilemap */ - AM_RANGE(0xa02000, 0xa0200f) AM_WRITE(TC0280GRD_ctrl_word_w) - AM_RANGE(0xd00000, 0xd0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qtorimon_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x500000, 0x50000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x600000, 0x600003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qtorimon_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ - AM_RANGE(0x500000, 0x50000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x910000, 0x9120ff) AM_WRITE(MWA16_NOP) /* error in init code ? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( liquidk_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0220IOC_halfword_r) /* I/O */ - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( liquidk_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w) /* I/O */ - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( quizhq_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x500000, 0x50000f) AM_READ(quizhq_input1_r) - AM_RANGE(0x580000, 0x58000f) AM_READ(quizhq_input2_r) - AM_RANGE(0x600000, 0x600003) AM_READ(taitof2_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( quizhq_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ - AM_RANGE(0x500004, 0x500005) AM_WRITE(growl_coin_word_w) - AM_RANGE(0x580000, 0x580001) AM_WRITE(taitof2_watchdog_w) /* ??? */ - AM_RANGE(0x580006, 0x580007) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x680000, 0x680001) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x810000, 0x81ffff) AM_WRITE(MWA16_NOP) /* error in init code ? */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ssi_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x400003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ssi_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) -// AM_RANGE(0x500000, 0x500001) AM_WRITE(MWA16_NOP) /* ?? */ - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps (not used) */ - AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprite ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gunfront_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( gunfront_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -// AM_RANGE(0xa00000, 0xa00001) AM_WRITE(MWA16_NOP) /* ?? */ - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( growl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(growl_dsw_r) - AM_RANGE(0x320000, 0x32000f) AM_READ(growl_input_r) - AM_RANGE(0x400000, 0x400003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x508000, 0x50800f) AM_READ(input_port_5_word_r) /* IN3 */ - AM_RANGE(0x50c000, 0x50c00f) AM_READ(input_port_6_word_r) /* IN4 */ - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( growl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) - AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w) - AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w) - AM_RANGE(0x504000, 0x504001) AM_WRITE(MWA16_NOP) /* unknown... various values */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mjnquest_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x110000, 0x11ffff) AM_READ(MRA16_RAM) /* "sram" */ - AM_RANGE(0x120000, 0x12ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x300000, 0x30000f) AM_READ(mjnquest_dsw_r) - AM_RANGE(0x310000, 0x310001) AM_READ(mjnquest_input_r) - AM_RANGE(0x360000, 0x360003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x400000, 0x40ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x420000, 0x42000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mjnquest_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x110000, 0x11ffff) AM_WRITE(MWA16_RAM) /* "sram" */ - AM_RANGE(0x120000, 0x12ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w) /* palette */ - AM_RANGE(0x320000, 0x320001) AM_WRITE(mjnquest_inputselect_w) - AM_RANGE(0x330000, 0x330001) AM_WRITE(MWA16_NOP) /* watchdog ? */ - AM_RANGE(0x350000, 0x350001) AM_WRITE(MWA16_NOP) /* watchdog ? */ - AM_RANGE(0x360000, 0x360001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x360002, 0x360003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x380000, 0x380001) AM_WRITE(TC0100SCN_gfxbank_w) /* scr gfx bank select */ - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( footchmp_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x430000, 0x43002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) - AM_RANGE(0x700000, 0x70001f) AM_READ(footchmp_input_r) - AM_RANGE(0xa00000, 0xa00003) AM_READ(taitof2_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( footchmp_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(taitof2_spritebank_w) /* updated at $a6e, off irq5 */ - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x430000, 0x43002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0x500000, 0x50001f) AM_WRITE(TC0360PRI_halfword_w) /* 500002 written like a watchdog?! */ - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w) - AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w) /* ??? */ - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_lsb_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( koshien_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x320000, 0x320003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -// AM_RANGE(0xa20000, 0xa20001) AM_READ(koshien_spritebank_r) /* for debugging spritebank */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( koshien_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa20000, 0xa20001) AM_WRITE(koshien_spritebank_w) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_swap_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yuyugogo_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x400000, 0x400003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(MRA16_RAM) - AM_RANGE(0xb00000, 0xb10fff) AM_READ(MRA16_RAM) - AM_RANGE(0xd00000, 0xdfffff) AM_READ(MRA16_BANK1) /* extra data rom */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yuyugogo_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xb00000, 0xb10fff) AM_WRITE(MWA16_RAM) /* deliberate writes to $b10xxx, I think */ - AM_RANGE(0xc00000, 0xc01fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) - AM_RANGE(0xd00000, 0xdfffff) AM_WRITE(MWA16_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ninjak_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(ninjak_input_r) - AM_RANGE(0x400000, 0x400003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( ninjak_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w) - AM_RANGE(0x380000, 0x380001) AM_WRITE(taitof2_watchdog_w) /* ??? */ - AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x600000, 0x60000f) AM_WRITE(taitof2_spritebank_w) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* b00002 written like a watchdog?! */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( solfigtr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30000f) AM_READ(growl_dsw_r) - AM_RANGE(0x320000, 0x32000f) AM_READ(growl_input_r) - AM_RANGE(0x400000, 0x400003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( solfigtr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) /* NOT VERIFIED */ - AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w) /* NOT VERIFIED */ - AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w) - AM_RANGE(0x504000, 0x504001) AM_WRITE(MWA16_NOP) /* unknown... various values */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzquest_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x17ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x300000, 0x300003) AM_READ(taitof2_sound_r) - AM_RANGE(0x400000, 0x401fff) AM_READ(MRA16_RAM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x700000, 0x70ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x720000, 0x72000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzquest_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x720000, 0x72000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pulirula_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x200003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_READ(TC0430GRW_word_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xb00000, 0xb0000f) AM_READ(TC0510NIO_halfword_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pulirula_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w) /* ROZ tilemap */ - AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w) -// AM_RANGE(0x500000, 0x500001) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa0001f) AM_WRITE(TC0360PRI_halfword_swap_w) - AM_RANGE(0xb00000, 0xb0000f) AM_WRITE(TC0510NIO_halfword_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metalb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x530000, 0x53002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0x700000, 0x703fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80000f) AM_READ(TC0510NIO_halfword_wordswap_r) - AM_RANGE(0x900000, 0x900003) AM_READ(taitof2_msb_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( metalb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -// AM_RANGE(0x42000c, 0x42000f) AM_WRITE(MWA16_NOP) /* zeroed */ - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x530000, 0x53002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0x600000, 0x60001f) AM_WRITE(TC0360PRI_halfword_w) - AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) - AM_RANGE(0x900000, 0x900001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x900002, 0x900003) AM_WRITE(taitosound_comm16_msb_w) -// AM_RANGE(0xa00000, 0xa00001) AM_WRITE(MWA16_NOP) /* ??? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzchikyu_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x17ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x300000, 0x300003) AM_READ(taitof2_sound_r) - AM_RANGE(0x400000, 0x401fff) AM_READ(MRA16_RAM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x700000, 0x70ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x720000, 0x72000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qzchikyu_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w) - AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x700000, 0x70ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x720000, 0x72000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yesnoj_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) -// AM_RANGE(0x700000, 0x70000b) AM_READ(yesnoj_unknown_r) /* what's this? */ - AM_RANGE(0x800000, 0x800003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0xa00000, 0xa0000f) AM_READ(yesnoj_input_r) - AM_RANGE(0xb00000, 0xb00001) AM_READ(yesnoj_dsw_r) /* ?? (reads this twice in init) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( yesnoj_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x900002, 0x900003) AM_WRITE(MWA16_NOP) /* lots of similar writes */ - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(MWA16_NOP) /* watchdog ?? */ - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(MWA16_NOP) /* lots of similar writes */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( deadconx_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x430000, 0x43002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0x600000, 0x601fff) AM_READ(MRA16_RAM) - AM_RANGE(0x700000, 0x70001f) AM_READ(deadconx_input_r) - AM_RANGE(0xa00000, 0xa00003) AM_READ(taitof2_msb_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( deadconx_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(taitof2_spritebank_w) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ -// AM_RANGE(0x42000c, 0x42000f) AM_WRITE(MWA16_NOP) /* zeroed */ - AM_RANGE(0x430000, 0x43002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0x500000, 0x50001f) AM_WRITE(TC0360PRI_halfword_w) /* uses 500002 like a watchdog !? */ - AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w) - AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w) /* ??? */ - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dinorex_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x2fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0x500000, 0x501fff) AM_READ(MRA16_RAM) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xa00000, 0xa00003) AM_READ(taitof2_msb_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dinorex_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x2fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x400000, 0x400fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) - AM_RANGE(0x500000, 0x501fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x700000, 0x70001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0xb00000, 0xb00001) AM_WRITE(MWA16_NOP) /* watchdog? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qjinsei_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x200003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xb00000, 0xb0000f) AM_READ(TC0510NIO_halfword_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qjinsei_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x500000, 0x500001) AM_WRITE(MWA16_NOP) /* watchdog ? */ - AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ - AM_RANGE(0xb00000, 0xb0000f) AM_WRITE(TC0510NIO_halfword_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qcrayon_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x3fffff) AM_READ(MRA16_BANK1) /* extra data rom */ - AM_RANGE(0x500000, 0x500003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0510NIO_halfword_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qcrayon_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) -// AM_RANGE(0x200000, 0x200001) AM_WRITE(MWA16_NOP) /* unknown */ - AM_RANGE(0x300000, 0x3fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qcrayon2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x40ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x500000, 0x50ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x600000, 0x67ffff) AM_READ(MRA16_BANK1) /* extra data rom */ - AM_RANGE(0x700000, 0x70000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0xa00000, 0xa00003) AM_READ(taitof2_msb_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( qcrayon2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x520000, 0x52000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x600000, 0x67ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x700000, 0x70000f) AM_WRITE(TC0510NIO_halfword_w) - AM_RANGE(0x900000, 0x90001f) AM_WRITE(TC0360PRI_halfword_w) /* ?? */ - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0xb00000, 0xb017ff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( driftout_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x200003) AM_READ(taitof2_msb_sound_r) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_READ(TC0430GRW_word_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xb00000, 0xb0000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0xb00018, 0xb0001f) AM_READ(driftout_paddle_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( driftout_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w) - AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w) /* ROZ tilemap */ - AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa0001f) AM_WRITE(TC0360PRI_halfword_swap_w) - AM_RANGE(0xb00000, 0xb0000f) AM_WRITE(TC0510NIO_halfword_w) -ADDRESS_MAP_END - -/* same as driftout, except for sound address 0x200000 */ -static ADDRESS_MAP_START( driveout_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x200003) AM_READ(MRA16_NOP) - AM_RANGE(0x300000, 0x30ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_READ(TC0430GRW_word_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(MRA16_RAM) - AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x900000, 0x90ffff) AM_READ(MRA16_RAM) - AM_RANGE(0xb00000, 0xb0000f) AM_READ(TC0510NIO_halfword_r) - AM_RANGE(0xb00018, 0xb0001f) AM_READ(driftout_paddle_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( driveout_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x200003) AM_WRITE(driveout_sound_command_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w) /* ROZ tilemap */ - AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xa00000, 0xa0001f) AM_WRITE(TC0360PRI_halfword_swap_w) - AM_RANGE(0xb00000, 0xb0000f) AM_WRITE(TC0510NIO_halfword_w) -ADDRESS_MAP_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK2) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe200, 0xe200) AM_READ(MRA8_NOP) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* ?? */ -ADDRESS_MAP_END - - -/* Alt US version of Cameltry, YM2203 sound, missing ADPCM ? */ - -static ADDRESS_MAP_START( camltrua_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) // I can't see a bank control, but there ARE some bytes past 0x8000 -// AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1) - AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_READ(YM2203_status_port_0_r) - AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( camltrua_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(YM2203_control_port_0_w) - AM_RANGE(0x9001, 0x9001) AM_WRITE(YM2203_write_port_0_w) - AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w) -// AM_RANGE(0xb000, 0xb000) AM_WRITE(unknown_w) // probably controlling sample player? -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( driveout_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) - AM_RANGE(0x9800, 0x9800) AM_READ(OKIM6295_status_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(driveout_sound_command_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( driveout_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_bank_w) - AM_RANGE(0x9800, 0x9800) AM_WRITE(OKIM6295_data_0_w) -ADDRESS_MAP_END - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - -#define TAITO_COINAGE_WORLD_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -#define TAITO_COINAGE_JAPAN_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -/* This is a new Japanese coinage used in later TAITO games */ -#define TAITO_COINAGE_JAPAN_NEW_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_COINAGE_US_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0xc0, "Same as Start" ) - -#define TAITO_DIFFICULTY_8 \ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - -#define TAITO_F2_PLAYERS_INPUT( player ) \ - PORT_START \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) PORT_8WAY \ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(player) \ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(player) -/* 0x40 and 0x80 are not always the same in all games, so they are not included here */ - -#define TAITO_F2_SYSTEM_INPUT \ - PORT_START \ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) \ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) \ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) -/* The other bits vary from one game to another, so they are not included here */ - - -INPUT_PORTS_START( finalb ) - PORT_START_TAG("DSWA") - /* Not sure how to handle alternate controls */ - PORT_DIPNAME( 0x01, 0x01, "Alternate Controls" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT /* controls below are DIP selectable */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) /* 1P sen.sw.? */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* 1P ducking? */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* 2P sen.sw.? */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* 2P ducking? */ -INPUT_PORTS_END - -INPUT_PORTS_START( finalbj ) - PORT_INCLUDE(finalb) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( dondokod ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "10k and 100k" ) - PORT_DIPSETTING( 0x08, "10k and 150k" ) - PORT_DIPSETTING( 0x04, "10k and 250k" ) - PORT_DIPSETTING( 0x00, "10k and 350k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( dondokdu ) - PORT_INCLUDE(dondokod) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_US_8 -INPUT_PORTS_END - -INPUT_PORTS_START( dondokdj ) - PORT_INCLUDE(dondokod) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( megab ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "100k only" ) - PORT_DIPSETTING( 0x04, "150k only" ) - PORT_DIPSETTING( 0x08, "200k only" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x00, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "4" ) - PORT_DIPNAME( 0x40, 0x40, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Dual ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( megabj ) - PORT_INCLUDE(megab) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( thundfox ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 2 in manual - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, "Timer" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( thndfoxu ) - PORT_INCLUDE(thundfox) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_US_8 -INPUT_PORTS_END - -INPUT_PORTS_START( thndfoxj ) - PORT_INCLUDE(thundfox) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( cameltry ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_US_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Start remain time" ) - PORT_DIPSETTING( 0x00, "35" ) - PORT_DIPSETTING( 0x04, "40" ) - PORT_DIPSETTING( 0x0c, "50" ) - PORT_DIPSETTING( 0x08, "60" ) - PORT_DIPNAME( 0x30, 0x30, "Continue play time" ) - PORT_DIPSETTING( 0x00, "+20" ) - PORT_DIPSETTING( 0x10, "+25" ) - PORT_DIPSETTING( 0x30, "+30" ) - PORT_DIPSETTING( 0x20, "+40" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x80, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Paddle A */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) - - PORT_START /* Paddle B */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( cameltrj ) - PORT_INCLUDE(cameltry) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_8 -INPUT_PORTS_END - -INPUT_PORTS_START( qtorimon ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 5 in manual - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x10, "1" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" ) - PORT_DIPSETTING( 0x40, DEF_STR( No ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( liquidk ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "30k and 100k" ) - PORT_DIPSETTING( 0x08, "30k and 150k" ) - PORT_DIPSETTING( 0x04, "50k and 250k" ) - PORT_DIPSETTING( 0x00, "50k and 350k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x80, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( liquidku ) - PORT_INCLUDE(liquidk) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_US_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( mizubaku ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x0c, "30k and 100k" ) - PORT_DIPSETTING( 0x08, "30k and 150k" ) - PORT_DIPSETTING( 0x04, "50k and 250k" ) - PORT_DIPSETTING( 0x00, "50k and 350k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x80, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( ssi ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Shields" ) - PORT_DIPSETTING( 0x00, DEF_STR( None )) - PORT_DIPSETTING( 0x0c, "1") - PORT_DIPSETTING( 0x04, "2") - PORT_DIPSETTING( 0x08, "3") - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "2") - PORT_DIPSETTING( 0x10, "3") - PORT_DIPNAME( 0xa0, 0xa0, "2 Players Mode" ) - PORT_DIPSETTING( 0xa0, "Simultaneous") - PORT_DIPSETTING( 0x80, "Alternate, Single") - PORT_DIPSETTING( 0x00, "Alternate, Dual") - PORT_DIPSETTING( 0x20, "Not Allowed") - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( majest12 ) - PORT_INCLUDE(ssi) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( growl ) - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) //are "unused" verified from manual? - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, "Cabinet Type" ) - PORT_DIPSETTING( 0x30, "2 Players" ) - PORT_DIPSETTING( 0x20, "4 Players / 4 Coin Slots" ) // Push Player button A to start - PORT_DIPSETTING( 0x10, "4 Players / 2 cabinets combined" ) - PORT_DIPSETTING( 0x00, "4 Players / 2 Coin Slots" ) - PORT_DIPNAME( 0x40, 0x40, "Final Boss Continue" ) - PORT_DIPSETTING( 0x00, DEF_STR( No ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN3 */ - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START /* IN4 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( growlu ) - PORT_INCLUDE(growl) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_US_8 -INPUT_PORTS_END - -INPUT_PORTS_START( runark ) - PORT_INCLUDE(growl) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( pulirula ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Magic" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x08, "4" ) - PORT_DIPSETTING( 0x04, "5" ) -// PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( pulirulj ) - PORT_INCLUDE(pulirula) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( qzquest ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 //?? - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( qzchikyu ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 //?? - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( footchmp ) - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, "Game Over Type" ) // 2p simultaneous play - PORT_DIPSETTING( 0x01, "Both Teams' Games Over" ) - PORT_DIPSETTING( 0x00, "Losing Team's Game is Over" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x00, "1.5 Minutes" ) - PORT_DIPSETTING( 0x0c, " 2 Minutes" ) - PORT_DIPSETTING( 0x04, "2.5 Minutes" ) - PORT_DIPSETTING( 0x08, " 3 Minutes" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x30, "2 Players" ) - PORT_DIPSETTING( 0x20, "4 Players / 4 Coin Slots" ) // Push Player button A to start - PORT_DIPSETTING( 0x10, "4 Players / 2 cabinets combined" ) - PORT_DIPSETTING( 0x00, "4 Players / 2 Coin Slots" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Game Version" ) // Not used for Hat Trick Hero / Euro Champ '92 - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, "European" ) - - /* IN3 */ - TAITO_F2_PLAYERS_INPUT( 3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - /* IN4 */ - TAITO_F2_PLAYERS_INPUT( 4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( hthero ) - PORT_INCLUDE(footchmp) - - PORT_MODIFY("DSWA") - PORT_DIPNAME( 0x80, 0x00, "Game Over Type" ) // 2p simultaneous play - PORT_DIPSETTING( 0x80, "Both Teams' Games Over" ) - PORT_DIPSETTING( 0x00, "Losing Team's Game is Over" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - - PORT_MODIFY("DSWB") - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Game_Time ) ) - PORT_DIPSETTING( 0x00, "1.5 Minutes" ) - PORT_DIPSETTING( 0x30, " 2 Minutes" ) - PORT_DIPSETTING( 0x20, "2.5 Minutes" ) - PORT_DIPSETTING( 0x10, " 3 Minutes" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x0c, "2 Players" ) - PORT_DIPSETTING( 0x04, "4 Players / 4 Coin Slots" ) // Push Player button A to start - PORT_DIPSETTING( 0x08, "4 Players / 2 cabinets combined" ) - PORT_DIPSETTING( 0x00, "4 Players / 2 Coin Slots" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( ninjak ) - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) //is this verified from manual? - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Cabinet Type" ) - PORT_DIPSETTING( 0x0c, "2 players" ) - PORT_DIPSETTING( 0x08, "TROG (4 players / 2 coin slots)" ) - PORT_DIPSETTING( 0x04, "MTX2 (4 players / 2 cabinets combined)" ) - PORT_DIPSETTING( 0x00, "TMNT (4 players / 4 coin slots)" ) - PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Game Type" ) - PORT_DIPSETTING( 0x00, "1 Player only" ) - PORT_DIPSETTING( 0x80, "Multiplayer" ) - - /* IN3 */ - TAITO_F2_PLAYERS_INPUT( 3 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 ) - - /* IN4 */ - TAITO_F2_PLAYERS_INPUT( 4 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 ) -INPUT_PORTS_END - -INPUT_PORTS_START( ninjaku ) - PORT_INCLUDE(ninjak) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_US_8 -INPUT_PORTS_END - -INPUT_PORTS_START( ninjakj ) - PORT_INCLUDE(ninjak) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( driftout ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // all 5 in Service Mode - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Control" ) /* correct acc. to service mode */ - PORT_DIPSETTING( 0x0c, DEF_STR( Joystick ) ) - PORT_DIPSETTING( 0x08, "Paddle" ) - PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) ) - PORT_DIPSETTING( 0x00, "Steering wheel" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* 2P not used? */ - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* Paddle A */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* Paddle B */ - PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( gunfront ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Listed as "Unused" */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x08, "10k and every 80k" ) - PORT_DIPSETTING( 0x0c, "20k and every 80k" ) - PORT_DIPSETTING( 0x04, "30k and every 80k" ) - PORT_DIPSETTING( 0x00, "60k and every 80k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( gunfronj ) - PORT_INCLUDE(gunfront) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( metalb ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x04, "80k and every 160k" ) - PORT_DIPSETTING( 0x0c, "70k and every 150k" ) - PORT_DIPSETTING( 0x00, "100k and every 200k" ) - PORT_DIPSETTING( 0x08, "50k and every 120k" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x10, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x20, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( metalbj ) - PORT_INCLUDE(metalb) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( deadconx ) - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service A") PORT_CODE(KEYCODE_9) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service B") PORT_CODE(KEYCODE_0) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service C") PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") /* DSW B, missing a timer speed maybe? */ - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On) ) - PORT_DIPNAME( 0x18, 0x18, "Damage" ) - PORT_DIPSETTING( 0x10, "Small" ) /* Hero can take 12 gun shots */ - PORT_DIPSETTING( 0x18, DEF_STR( Normal ) ) /* Hero can take 10 gun shots */ - PORT_DIPSETTING( 0x08, "Big" ) /* Hero can take 8 gun shots */ - PORT_DIPSETTING( 0x00, "Biggest" ) /* Hero can take 5 gun shots */ - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Game Type" ) - PORT_DIPSETTING( 0x00, "1 Player only" ) - PORT_DIPSETTING( 0x80, "Multiplayer" ) -INPUT_PORTS_END - -INPUT_PORTS_START( deadconj ) - PORT_INCLUDE(deadconx) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( dinorex ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) //are "unused" verified from manual? - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Damage" ) - PORT_DIPSETTING( 0x08, "Small" ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, "Big" ) - PORT_DIPSETTING( 0x00, "Biggest" ) - PORT_DIPNAME( 0x10, 0x10, "Timer Speed" ) // Appears to make little difference - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Fast" ) - PORT_DIPNAME( 0x20, 0x20, "Match Type" ) - PORT_DIPSETTING( 0x20, "Best of 3" ) - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPNAME( 0x40, 0x40, "2 Player Mode" ) // actually this seems to be unknown - PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( dinorexj ) - PORT_INCLUDE(dinorex) - - PORT_MODIFY("DSWA") - TAITO_COINAGE_JAPAN_NEW_8 -INPUT_PORTS_END - - -INPUT_PORTS_START( solfigtr ) - /* IN0 */ - TAITO_F2_PLAYERS_INPUT( 1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - /* IN1 */ - TAITO_F2_PLAYERS_INPUT( 2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_WORLD_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( koshien ) - PORT_START /* DSW A, one lets you control fielders ? */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, "Timer" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x20, "2" ) - PORT_DIPSETTING( 0x30, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( quizhq ) - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Time" ) - PORT_DIPSETTING( 0x0c, "5 seconds" ) - PORT_DIPSETTING( 0x08, "10 seconds" ) - PORT_DIPSETTING( 0x04, "15 seconds" ) - PORT_DIPSETTING( 0x00, "20 seconds" ) - PORT_DIPNAME( 0x30, 0x30, "Stock" ) // Lives - PORT_DIPSETTING( 0x20, "1" ) - PORT_DIPSETTING( 0x30, "2" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "4" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Upright Controls" ) /* ie single or two players at once */ - PORT_DIPSETTING( 0x00, DEF_STR( Single ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Dual ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( qjinsei ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( qcrayon ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Time" ) - PORT_DIPSETTING( 0x00, "6 seconds" ) - PORT_DIPSETTING( 0x04, "7 seconds" ) - PORT_DIPSETTING( 0x08, "8 seconds" ) - PORT_DIPSETTING( 0x0c, "10 seconds" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( qcrayon2 ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Game Control" ) - PORT_DIPSETTING( 0x80, DEF_STR( Joystick ) ) - PORT_DIPSETTING( 0x00, "4 Buttons" ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( yuyugogo ) - PORT_START_TAG("DSWA") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START_TAG("DSWB") - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) // ?? - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) - - /* IN2 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - -INPUT_PORTS_START( mjnquest ) - PORT_START /* IN0 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN1 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN2 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) - PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN3 */ - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN4 */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN5 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // ? - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN6 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* IN7:DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_COINAGE_JAPAN_NEW_8 - - PORT_START /* IN8:DSW B */ - TAITO_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( yesnoj ) // apparently no test mode, though text in rom suggests printer test - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - /* IN1 */ - TAITO_F2_SYSTEM_INPUT - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* DSW A ??? */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* DSW B ? */ - PORT_DIPNAME( 0x01, 0x00, "Results Printer" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) // same for both slots - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - - -/*********************************************************** - GFX DECODING -***********************************************************/ - -static const gfx_layout finalb_tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,2), - 6, /* 6 bits per pixel */ - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { 3*4, 2*4, 1*4, 0*4, 7*4, 6*4, 5*4, 4*4, - 11*4, 10*4, 9*4, 8*4, 15*4, 14*4, 13*4, 12*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout tilelayout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4, 9*4, 8*4, 11*4, 10*4, 13*4, 12*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout yuyugogo_charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 1, /* 1 bit per pixel */ - { 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 /* every sprite takes 8 consecutive bytes */ -}; - -static const gfx_layout pivotlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_decode finalb_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &finalb_tilelayout, 0, 64 }, /* sprites & playfield, 6-bit deep */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -static const gfx_decode taitof2_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -static const gfx_decode pivot_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX3, 0, &pivotlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -static const gfx_decode yuyugogo_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX1, 0, &yuyugogo_charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -static const gfx_decode thundfox_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX1, 0, &charlayout, 0, 256 }, /* TC0100SCN #1 */ - { REGION_GFX3, 0, &charlayout, 0, 256 }, /* TC0100SCN #2 */ - { -1 } /* end of array */ -}; - -static const gfx_layout deadconx_charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode deadconx_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0, &tilelayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX1, 0, &deadconx_charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irq_handler(int irq) -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irq_handler, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - -static WRITE8_HANDLER( camltrua_porta_w ) -{ - // Implement // -} - -static struct YM2203interface ym2203_interface = -{ - 0, /* portA read */ - 0, - camltrua_porta_w, /* portA write - not implemented */ - 0, /* portB write */ - irq_handler -}; - - -/*********************************************************** - MACHINE DRIVERS -***********************************************************/ - -MACHINE_START( f2 ) -{ - state_save_register_global(banknum); - state_save_register_func_postload(reset_sound_region); - return 0; -} - -MACHINE_RESET( qcrayon ) -{ - /* point to the extra ROM */ - memory_set_bankptr(1,memory_region(REGION_USER1)); -} - - -static MACHINE_DRIVER_START( taito_f2 ) - - /* basic machine hardware */ - MDRV_CPU_ADD_TAG("main", M68000, 24000000/2) /* 12 MHz */ - MDRV_CPU_VBLANK_INT(taitof2_interrupt,1) - - MDRV_CPU_ADD(Z80, 24000000/6) /* 4 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - - MDRV_MACHINE_START(f2) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION /* frames per second, vblank duration */) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(taitof2_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitof2_default) - MDRV_VIDEO_EOF(taitof2_no_buffer) - MDRV_VIDEO_UPDATE(taitof2) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */ - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( finalb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(finalb_readmem,finalb_writemem) - - /* video hardware */ - MDRV_GFXDECODE(finalb_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_finalb) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dondokod ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dondokod_readmem,dondokod_writemem) - - /* video hardware */ - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_dondokod) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( megab ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(megab_readmem,megab_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_megab) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( thundfox ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(thundfox_readmem,thundfox_writemem) - - /* video hardware */ - MDRV_GFXDECODE(thundfox_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_thundfox) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed_thundfox) - MDRV_VIDEO_UPDATE(thundfox) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( cameltry ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(cameltry_readmem,cameltry_writemem) - - /* video hardware */ - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_dondokod) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qtorimon ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qtorimon_readmem,qtorimon_writemem) - - /* video hardware */ - MDRV_GFXDECODE(yuyugogo_gfxdecodeinfo) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( liquidk ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(liquidk_readmem,liquidk_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_megab) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( quizhq ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(quizhq_readmem,quizhq_writemem) - - /* video hardware */ - MDRV_GFXDECODE(yuyugogo_gfxdecodeinfo) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ssi ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ssi_readmem,ssi_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_ssi) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup - MDRV_VIDEO_UPDATE(ssi) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( gunfront ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(gunfront_readmem,gunfront_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_gunfront) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( growl ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(growl_readmem,growl_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_growl) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( mjnquest ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(mjnquest_readmem,mjnquest_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_mjnquest) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( footchmp ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(footchmp_readmem,footchmp_writemem) - - /* video hardware */ - MDRV_GFXDECODE(deadconx_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_footchmp) - MDRV_VIDEO_EOF(taitof2_full_buffer_delayed) - MDRV_VIDEO_UPDATE(deadconx) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( hthero ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(footchmp_readmem,footchmp_writemem) - - /* video hardware */ - MDRV_GFXDECODE(deadconx_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_hthero) - MDRV_VIDEO_EOF(taitof2_full_buffer_delayed) - MDRV_VIDEO_UPDATE(deadconx) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( koshien ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(koshien_readmem,koshien_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_koshien) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( yuyugogo ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(yuyugogo_readmem,yuyugogo_writemem) - - MDRV_MACHINE_RESET(qcrayon) - - /* video hardware */ - MDRV_GFXDECODE(yuyugogo_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_yuyugogo) - MDRV_VIDEO_UPDATE(yesnoj) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( ninjak ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(ninjak_readmem,ninjak_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_ninjak) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( solfigtr ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(solfigtr_readmem,solfigtr_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_solfigtr) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qzquest ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qzquest_readmem,qzquest_writemem) - - /* video hardware */ - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( pulirula ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(pulirula_readmem,pulirula_writemem) - - /* video hardware */ - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_pulirula) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( metalb ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(metalb_readmem,metalb_writemem) - - /* video hardware */ - MDRV_GFXDECODE(deadconx_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - MDRV_VIDEO_START(taitof2_metalb) - MDRV_VIDEO_UPDATE(metalb) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qzchikyu ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qzchikyu_readmem,qzchikyu_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_qzchikyu) - MDRV_VIDEO_EOF(taitof2_partial_buffer_delayed_qzchikyu) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( yesnoj ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(yesnoj_readmem,yesnoj_writemem) - - /* video hardware */ - MDRV_GFXDECODE(yuyugogo_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_yesnoj) - MDRV_VIDEO_UPDATE(yesnoj) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( deadconx ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(deadconx_readmem,deadconx_writemem) - - /* video hardware */ - MDRV_GFXDECODE(deadconx_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_deadconx) - MDRV_VIDEO_UPDATE(deadconx) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( deadconj ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(deadconx_readmem,deadconx_writemem) - - /* video hardware */ - MDRV_GFXDECODE(deadconx_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_deadconj) - MDRV_VIDEO_UPDATE(deadconx) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dinorex ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(dinorex_readmem,dinorex_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_dinorex) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qjinsei ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qjinsei_readmem,qjinsei_writemem) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_quiz) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qcrayon ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qcrayon_readmem,qcrayon_writemem) - - MDRV_MACHINE_RESET(qcrayon) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_quiz) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( qcrayon2 ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(qcrayon2_readmem,qcrayon2_writemem) - - MDRV_MACHINE_RESET(qcrayon) - - /* video hardware */ - MDRV_VIDEO_START(taitof2_quiz) - MDRV_VIDEO_UPDATE(taitof2_pri) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( driftout ) - - /* basic machine hardware */ - MDRV_IMPORT_FROM(taito_f2) - MDRV_CPU_MODIFY("main") - MDRV_CPU_PROGRAM_MAP(driftout_readmem,driftout_writemem) - - /* video hardware */ - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_VIDEO_START(taitof2_driftout) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( camltrua ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(cameltry_readmem,cameltry_writemem) - MDRV_CPU_VBLANK_INT(taitof2_interrupt,1) - - MDRV_CPU_ADD(Z80,24000000/6) /* 4 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(camltrua_sound_readmem,camltrua_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitof2_dondokod) - MDRV_VIDEO_EOF(taitof2_no_buffer) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD(YM2203, 3000000) - MDRV_SOUND_CONFIG(ym2203_interface) - MDRV_SOUND_ROUTE(0, "mono", 0.20) - MDRV_SOUND_ROUTE(1, "mono", 0.20) - MDRV_SOUND_ROUTE(2, "mono", 0.20) - MDRV_SOUND_ROUTE(3, "mono", 0.60) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( driveout ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(driveout_readmem,driveout_writemem) - MDRV_CPU_VBLANK_INT(taitof2_interrupt,1) - - MDRV_CPU_ADD(Z80,24000000/6) /* 4 MHz */ - /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(driveout_sound_readmem,driveout_sound_writemem) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(pivot_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitof2_driftout) - MDRV_VIDEO_EOF(taitof2_no_buffer) - MDRV_VIDEO_UPDATE(taitof2_pri_roz) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") /* does it ? */ - - MDRV_SOUND_ADD(OKIM6295, 1056000) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 1.0) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - DRIVERS -***************************************************************************/ - -ROM_START( finalb ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "b82-09.10", 0x00000, 0x20000, CRC(632f1ecd) SHA1(aa3d1c2059b0dd619d1f6e3e0705b65b4f4be74e) ) - ROM_LOAD16_BYTE( "b82-17.11", 0x00001, 0x20000, CRC(e91b2ec9) SHA1(c854104b8d48d20ab9278ecd122c987c3d886a26) ) - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "b82-06.19", 0x00000, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) - ROM_LOAD16_BYTE( "b82-07.18", 0x00001, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ - - /* Note: this is intentional to load at 0x180000, not at 0x100000 - because finalb_driver_init will move some bits around before data - will be 'gfxdecoded'. The whole thing is because this data is 2bits- - while above is 4bits-packed format, for a total of 6 bits per pixel. */ - - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b82_10.16", 0x00000, 0x04000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b82-02.1", 0x00000, 0x80000, CRC(5dd06bdd) SHA1(6eeaec6743805ba429b0ef58a530bc0740646324) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b82-01.2", 0x00000, 0x80000, CRC(f0eb6846) SHA1(4697c3fd61ac0d55c0d2a4354ff74719947397c5) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.ic41", 0x0000, 0x0104, CRC(11a0a19a) SHA1(0c195a1808dad21130dd377531ed5b8228981581) ) - ROM_LOAD( "tibpal16l8.ic42", 0x0200, 0x0104, CRC(cc53deb8) SHA1(174da395d9ee74cfdc2bfd0d91297a8a8991c7c5) ) - ROM_LOAD( "tibpal16l8.ic51", 0x0400, 0x0104, CRC(f2878537) SHA1(196639bbcf292fe896dc2a3571ec51c5b45ced5e) ) - ROM_LOAD( "gal16v8.ic13", 0x0600, 0x0117, CRC(a4f75fd0) SHA1(fbcaa60fb4a9f605baa48ebb55551c158dcc9730) ) - ROM_LOAD( "gal16v8.ic35", 0x0800, 0x0117, CRC(ca4eb3e1) SHA1(139c03448f692d32566cd7280b0d5fde63842dc1) ) -ROM_END - -ROM_START( finalbj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "b82-09.10", 0x00000, 0x20000, CRC(632f1ecd) SHA1(aa3d1c2059b0dd619d1f6e3e0705b65b4f4be74e) ) - ROM_LOAD16_BYTE( "b82-08.11", 0x00001, 0x20000, CRC(07154fe5) SHA1(4772362375c8c2984a305c3bb0320ea80a2e9a40) ) - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "b82-06.19", 0x00000, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) - ROM_LOAD16_BYTE( "b82-07.18", 0x00001, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ - - /* Note: this is intentional to load at 0x180000, not at 0x100000 - because finalb_driver_init will move some bits around before data - will be 'gfxdecoded'. The whole thing is because this data is 2bits- - while above is 4bits-packed format, for a total of 6 bits per pixel. */ - - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b82_10.16", 0x00000, 0x04000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b82-02.1", 0x00000, 0x80000, CRC(5dd06bdd) SHA1(6eeaec6743805ba429b0ef58a530bc0740646324) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b82-01.2", 0x00000, 0x80000, CRC(f0eb6846) SHA1(4697c3fd61ac0d55c0d2a4354ff74719947397c5) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.ic41", 0x0000, 0x0104, CRC(11a0a19a) SHA1(0c195a1808dad21130dd377531ed5b8228981581) ) - ROM_LOAD( "tibpal16l8.ic42", 0x0200, 0x0104, CRC(cc53deb8) SHA1(174da395d9ee74cfdc2bfd0d91297a8a8991c7c5) ) - ROM_LOAD( "tibpal16l8.ic51", 0x0400, 0x0104, CRC(f2878537) SHA1(196639bbcf292fe896dc2a3571ec51c5b45ced5e) ) - ROM_LOAD( "gal16v8.ic13", 0x0600, 0x0117, CRC(a4f75fd0) SHA1(fbcaa60fb4a9f605baa48ebb55551c158dcc9730) ) - ROM_LOAD( "gal16v8.ic35", 0x0800, 0x0117, CRC(ca4eb3e1) SHA1(139c03448f692d32566cd7280b0d5fde63842dc1) ) -ROM_END - -ROM_START( finalbu ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - /* are these even good dumps / legit ? there are some strange changes around 0x00fxx as well as the region byte */ - ROM_LOAD16_BYTE( "b82-09-1", 0x00000, 0x20000, CRC(66729cb9) SHA1(f265c07966cf3930a9b5e2dd63d49554705c60f7) ) - ROM_LOAD16_BYTE( "b82-6-14", 0x00001, 0x20000, CRC(879387fa) SHA1(9d7aa8ece6cfc66e7c131d9c7a3db792a0336e09) ) - - ROM_REGION( 0x040000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "b82-06.19", 0x00000, 0x20000, CRC(fc450a25) SHA1(6929bd2d47549cab037e8807b778741b3c215788) ) - ROM_LOAD16_BYTE( "b82-07.18", 0x00001, 0x20000, CRC(ec3df577) SHA1(37a0bb87a12f0332c8e67b22f91c24584f3d46ce) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "b82-04.4", 0x000000, 0x80000, CRC(6346f98e) SHA1(3fac5ea56b5ae280cd7ca0e0c6c308376056e1ba) ) /* sprites 4-bit format*/ - ROM_LOAD16_BYTE( "b82-03.5", 0x000001, 0x80000, CRC(daa11561) SHA1(81dd596c1b36138904971c36466ec29d08d4fd84) ) /* sprites 4-bit format*/ - - /* Note: this is intentional to load at 0x180000, not at 0x100000 - because finalb_driver_init will move some bits around before data - will be 'gfxdecoded'. The whole thing is because this data is 2bits- - while above is 4bits-packed format, for a total of 6 bits per pixel. */ - - ROM_LOAD( "b82-05.3", 0x180000, 0x80000, CRC(aa90b93a) SHA1(06f41052659959c58d72c9f68f9f6069cb835672) ) /* sprites 2-bit format */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b82_10.16", 0x00000, 0x04000, CRC(a38aaaed) SHA1(d476ea516a797e71e0306da54c17ed1759fe1ccd) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b82-02.1", 0x00000, 0x80000, CRC(5dd06bdd) SHA1(6eeaec6743805ba429b0ef58a530bc0740646324) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b82-01.2", 0x00000, 0x80000, CRC(f0eb6846) SHA1(4697c3fd61ac0d55c0d2a4354ff74719947397c5) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "tibpal16l8.ic41", 0x0000, 0x0104, CRC(11a0a19a) SHA1(0c195a1808dad21130dd377531ed5b8228981581) ) - ROM_LOAD( "tibpal16l8.ic42", 0x0200, 0x0104, CRC(cc53deb8) SHA1(174da395d9ee74cfdc2bfd0d91297a8a8991c7c5) ) - ROM_LOAD( "tibpal16l8.ic51", 0x0400, 0x0104, CRC(f2878537) SHA1(196639bbcf292fe896dc2a3571ec51c5b45ced5e) ) - ROM_LOAD( "gal16v8.ic13", 0x0600, 0x0117, CRC(a4f75fd0) SHA1(fbcaa60fb4a9f605baa48ebb55551c158dcc9730) ) - ROM_LOAD( "gal16v8.ic35", 0x0800, 0x0117, CRC(ca4eb3e1) SHA1(139c03448f692d32566cd7280b0d5fde63842dc1) ) -ROM_END - -ROM_START( dondokod ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b95-12.bin", 0x00000, 0x20000, CRC(d0fce87a) SHA1(7b346d3b7cbaf0b5447d66a71e815202d796f140) ) - ROM_LOAD16_BYTE( "b95-11-1.bin", 0x00001, 0x20000, CRC(dad40cd3) SHA1(6c07ed3dd609a8743f5851caa4d205bce8db595e) ) - ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) - ROM_LOAD16_BYTE( "b95-14.bin", 0x40001, 0x20000, CRC(6e4e1351) SHA1(207db5f08904d36c1d27cf326eb9260771a836c2) ) // needs name verfied - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b95-08.bin", 0x00000, 0x04000, CRC(b5aa49e1) SHA1(83b0a3434e0d0b9aa581c1acdd0c70308362b923) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b95-04.bin", 0x00000, 0x80000, CRC(ac4c1716) SHA1(06a9def7fa3bd739438f4a1d7b55f70eb904bf54) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( dondokdu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b95-12.bin", 0x00000, 0x20000, CRC(d0fce87a) SHA1(7b346d3b7cbaf0b5447d66a71e815202d796f140) ) - ROM_LOAD16_BYTE( "b95-11-1.bin", 0x00001, 0x20000, CRC(dad40cd3) SHA1(6c07ed3dd609a8743f5851caa4d205bce8db595e) ) - ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) - ROM_LOAD16_BYTE( "b95-13.bin", 0x40001, 0x20000, CRC(350d2c65) SHA1(60e8651256867648a24719e1bbd1367e89784e30) ) // needs name verfied - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b95-08.bin", 0x00000, 0x04000, CRC(b5aa49e1) SHA1(83b0a3434e0d0b9aa581c1acdd0c70308362b923) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b95-04.bin", 0x00000, 0x80000, CRC(ac4c1716) SHA1(06a9def7fa3bd739438f4a1d7b55f70eb904bf54) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( dondokdj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "b95-12.bin", 0x00000, 0x20000, CRC(d0fce87a) SHA1(7b346d3b7cbaf0b5447d66a71e815202d796f140) ) - ROM_LOAD16_BYTE( "b95-11-1.bin", 0x00001, 0x20000, CRC(dad40cd3) SHA1(6c07ed3dd609a8743f5851caa4d205bce8db595e) ) - ROM_LOAD16_BYTE( "b95-10.bin", 0x40000, 0x20000, CRC(a46e1f0b) SHA1(4adfa7a788d31860e557c4059f77440fe12ac110) ) - ROM_LOAD16_BYTE( "b95-09.bin", 0x40001, 0x20000, CRC(d8c86d39) SHA1(43a6a9d545c953e72b6a10bc9d7b2aa2f0ab4764) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "b95-02.bin", 0x00000, 0x80000, CRC(67b4e979) SHA1(e709cc24e001bccde1178f7e645fc7aec442540c) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "b95-01.bin", 0x00000, 0x80000, CRC(51c176ce) SHA1(2866e8bd57b301a0d4690f194be95784c53f9fcb) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "b95-03.bin", 0x00000, 0x80000, CRC(543aa0d1) SHA1(38282ae36a94cc3a354d343cf7d5262e0e309d1f) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b95-08.bin", 0x00000, 0x04000, CRC(b5aa49e1) SHA1(83b0a3434e0d0b9aa581c1acdd0c70308362b923) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b95-04.bin", 0x00000, 0x80000, CRC(ac4c1716) SHA1(06a9def7fa3bd739438f4a1d7b55f70eb904bf54) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( megab ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c11-07.55", 0x00000, 0x20000, CRC(11d228b6) SHA1(5f658a4a0ece3ad4e02ccad6e2852e16dd338dfd) ) - ROM_LOAD16_BYTE( "c11-08.39", 0x00001, 0x20000, CRC(a79d4dca) SHA1(72a97577981a303230374c5f5e201066f71d9cc5) ) - ROM_LOAD16_BYTE( "c11-06.54", 0x40000, 0x20000, CRC(7c249894) SHA1(88dff86b446bcbc4e8ab14cfc3c57b40d25cfa97) ) - ROM_LOAD16_BYTE( "c11-11.38", 0x40001, 0x20000, CRC(263ecbf9) SHA1(b49c59058d6d11ea0d9f9b041789e381e5742905) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c11-03.32", 0x00000, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) - ROM_LOAD16_BYTE( "c11-04.31", 0x00001, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c11-12.3", 0x00000, 0x04000, CRC(b11094f1) SHA1(a01e9f7d1f616bb379eaa85ad81b94173b067782) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c11-01.29", 0x00000, 0x80000, CRC(fd1ea532) SHA1(481698b747a421a17bfb8cef96065712d4f3997f) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c11-02.30", 0x00000, 0x80000, CRC(451cc187) SHA1(a682f70bbe6cba2fe2c0a6791e8d33db34eb2cee) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-b89-01.ic8", 0x0000, 0x0104, CRC(4095b97a) SHA1(ff63fe125e8e38c25cc7ef05c6cf8f7818fbdaa3) ) - ROM_LOAD( "pal16l8b-b89-02.ic28", 0x0200, 0x0104, CRC(6430b559) SHA1(e886d7ac44018cac8e788c822ddbb612c14390c9) ) - ROM_LOAD( "pal16l8b-b89-03.bin", 0x0400, 0x0104, CRC(634592e2) SHA1(8d9251958e7f9bdcf2e360b15dce3552a8da0c28) ) - ROM_LOAD( "palce16v8-b89-04.ic27", 0x0600, 0x0117, CRC(fc136ae2) SHA1(ac927a6ec6889b2eb24554fbf017c85e92afc866) ) - ROM_LOAD( "pal16l8b-c11-13.ic13", 0x0800, 0x0104, CRC(421d7ea8) SHA1(4791e334a1917c7efc57eaa7090317bd11138d6b) ) // MDEC 1 - ROM_LOAD( "pal16l8b-c11-14.ic23", 0x0a00, 0x0104, CRC(5c740aee) SHA1(995ccf52f85260f141ce5e3697c9391448c3d69d) ) // MDEC 2 -ROM_END - -ROM_START( megabj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c11-07.55", 0x00000, 0x20000, CRC(11d228b6) SHA1(5f658a4a0ece3ad4e02ccad6e2852e16dd338dfd) ) // c11-07.17 - ROM_LOAD16_BYTE( "c11-08.39", 0x00001, 0x20000, CRC(a79d4dca) SHA1(72a97577981a303230374c5f5e201066f71d9cc5) ) // c11-08.19 - ROM_LOAD16_BYTE( "c11-06.54", 0x40000, 0x20000, CRC(7c249894) SHA1(88dff86b446bcbc4e8ab14cfc3c57b40d25cfa97) ) // c11-06.16 - ROM_LOAD16_BYTE( "c11-09.18", 0x40001, 0x20000, CRC(c830aad5) SHA1(967ad3e052572300f5f49375e5f8348f2d595680) ) // c11-09.18 - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c11-05.58", 0x00000, 0x80000, CRC(733e6d8e) SHA1(47f3360f7c41b7e4a42e8198fc1bcce4e819181f) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c11-03.32", 0x00000, 0x80000, CRC(46718c7a) SHA1(c10308a282bf0c618108e4afc7ce6f0f6cb8c6c0) ) - ROM_LOAD16_BYTE( "c11-04.31", 0x00001, 0x80000, CRC(663f33cc) SHA1(5d3d3e77b7a84f6a3d4e744eef9b63bef91180e8) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c11-12.3", 0x00000, 0x04000, CRC(b11094f1) SHA1(a01e9f7d1f616bb379eaa85ad81b94173b067782) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c11-01.29", 0x00000, 0x80000, CRC(fd1ea532) SHA1(481698b747a421a17bfb8cef96065712d4f3997f) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c11-02.30", 0x00000, 0x80000, CRC(451cc187) SHA1(a682f70bbe6cba2fe2c0a6791e8d33db34eb2cee) ) -ROM_END - -ROM_START( thundfox ) /* Thunder Fox */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c28-13-1.51", 0x00000, 0x20000, CRC(acb07013) SHA1(5043d1859ae908c00f0c00c7b8e377362d908423) ) - ROM_LOAD16_BYTE( "c28-16-1.40", 0x00001, 0x20000, CRC(1e43d55b) SHA1(e5a389926ee95f19fc9f5d5bde97436d6f52124a) ) - ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) - ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c28-14.3", 0x00000, 0x04000, CRC(45ef3616) SHA1(97bf1de7fd32a378839df1845f7522dae776d997) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c28-06.41", 0x00000, 0x80000, CRC(db6983db) SHA1(b72541aa35c48624478060e7453f01956ff1ceb2) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c28-05.42", 0x00000, 0x80000, CRC(d3b238fa) SHA1(b4a0cdd7174e60527e7a47018d6117adc5518da1) ) - -// Pals: c28-09.25 c28-10.26 c28-11.35 b89-01.19 b89-03.37 b89-04.33 -ROM_END - -ROM_START( thndfoxu ) /* Thunder Fox */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c28-13-1.51", 0x00000, 0x20000, CRC(acb07013) SHA1(5043d1859ae908c00f0c00c7b8e377362d908423) ) - ROM_LOAD16_BYTE( "c28-15-1.40", 0x00001, 0x20000, CRC(874a84e1) SHA1(f2688030faf526bc64bbb06225d3938f423f0f8b) ) - ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) - ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c28-14.3", 0x00000, 0x04000, CRC(45ef3616) SHA1(97bf1de7fd32a378839df1845f7522dae776d997) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c28-06.41", 0x00000, 0x80000, CRC(db6983db) SHA1(b72541aa35c48624478060e7453f01956ff1ceb2) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c28-05.42", 0x00000, 0x80000, CRC(d3b238fa) SHA1(b4a0cdd7174e60527e7a47018d6117adc5518da1) ) - -// Pals: c28-09.25 c28-10.26 c28-11.35 b89-01.19 b89-03.37 b89-04.33 -ROM_END - -ROM_START( thndfoxj ) /* Thunder Fox */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c28-13-1.51", 0x00000, 0x20000, CRC(acb07013) SHA1(5043d1859ae908c00f0c00c7b8e377362d908423) ) - ROM_LOAD16_BYTE( "c28-12-1.40", 0x00001, 0x20000, CRC(f04db477) SHA1(da66895b8cc79f1776f30d9c204c6907cab935db) ) - ROM_LOAD16_BYTE( "c28-08.50", 0x40000, 0x20000, CRC(38e038f1) SHA1(4b8ed31e35927671ce313f4575e622ecab2c27cb) ) - ROM_LOAD16_BYTE( "c28-07.39", 0x40001, 0x20000, CRC(24419abb) SHA1(7d3e70213ae04dd921fc1bce8abb385747c90a38) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-02.61", 0x000000, 0x80000, CRC(6230a09d) SHA1(780aff5d4511c5e08cbf78784b163d60358f9283) ) /* TC0100SCN #1 */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c28-03.29", 0x00000, 0x80000, CRC(51bdc7af) SHA1(e36a063932fa5bd6609930c3708fee1e6feb5389) ) - ROM_LOAD16_BYTE( "c28-04.28", 0x00001, 0x80000, CRC(ba7ed535) SHA1(be7e010f6788d1b82cebc932c793a0a976647832) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c28-01.63", 0x000000, 0x80000, CRC(44552b25) SHA1(850c085e3dacd4867f6bcdfab641eb07934e620f) ) /* TC0100SCN #2 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c28-14.3", 0x00000, 0x04000, CRC(45ef3616) SHA1(97bf1de7fd32a378839df1845f7522dae776d997) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c28-06.41", 0x00000, 0x80000, CRC(db6983db) SHA1(b72541aa35c48624478060e7453f01956ff1ceb2) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c28-05.42", 0x00000, 0x80000, CRC(d3b238fa) SHA1(b4a0cdd7174e60527e7a47018d6117adc5518da1) ) -ROM_END - -ROM_START( cameltry ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c38-11", 0x00000, 0x20000, CRC(be172da0) SHA1(e4915bf25832175591a014aa1abac5edae09380d) ) - ROM_LOAD16_BYTE( "c38-14", 0x00001, 0x20000, CRC(ffa430de) SHA1(a3cdb35151a92ddfa2090c1f8710500925e7ad0c) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c38-08.bin", 0x00000, 0x04000, CRC(7ff78873) SHA1(6574f1c707b8911fa957dd057e1cddc7a1cea99b) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c38-03.bin", 0x000000, 0x020000, CRC(59fa59a7) SHA1(161f11b96a47c8431c33e300f6a509bf804309af) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( camltrua ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c38-11", 0x00000, 0x20000, CRC(be172da0) SHA1(e4915bf25832175591a014aa1abac5edae09380d) ) - ROM_LOAD16_BYTE( "c38-14", 0x00001, 0x20000, CRC(ffa430de) SHA1(a3cdb35151a92ddfa2090c1f8710500925e7ad0c) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu (revised prog!?) */ - ROM_LOAD( "c38-us.15", 0x00000, 0x10000, CRC(0e60faac) SHA1(cd124efb5127e5184c412c48b94c0d4a0b2ade64) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c38-03.bin", 0x000000, 0x020000, CRC(59fa59a7) SHA1(161f11b96a47c8431c33e300f6a509bf804309af) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( cameltrj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c38-09.bin", 0x00000, 0x20000, CRC(2ae01120) SHA1(6da4155fde0edd76976264f929c5da3c79db5017) ) - ROM_LOAD16_BYTE( "c38-10.bin", 0x00001, 0x20000, CRC(48d8ff56) SHA1(73da47b0f9e67defcd0072b71a3661f2c3534f55) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c38-01.bin", 0x00000, 0x80000, CRC(c170ff36) SHA1(6a19cc99847ed35ac8a8e9ba0e2e91bfac662203) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "c38-02.bin", 0x00000, 0x20000, CRC(1a11714b) SHA1(419f5ec37161fd6b4ca962768e720adf541271d5) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c38-08.bin", 0x00000, 0x04000, CRC(7ff78873) SHA1(6574f1c707b8911fa957dd057e1cddc7a1cea99b) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c38-03.bin", 0x000000, 0x020000, CRC(59fa59a7) SHA1(161f11b96a47c8431c33e300f6a509bf804309af) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( qtorimon ) /* Quiz Torimonochou */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c41-04.bin", 0x00000, 0x20000, CRC(0fbf5223) SHA1(2aa8b3dd20ae922a3ff880db7b46e2bbb708698d) ) - ROM_LOAD16_BYTE( "c41-05.bin", 0x00001, 0x20000, CRC(174bd5db) SHA1(f7a4b2ac91b3bcd886e2a1e1d0415a95f14c9de7) ) - ROM_LOAD16_BYTE( "mask-51.bin", 0x40000, 0x20000, CRC(12e14aca) SHA1(8f7dc54f68984c82420abf96436743c0654a71ea) ) /* char defs, read by cpu */ - ROM_LOAD16_BYTE( "mask-52.bin", 0x40001, 0X20000, CRC(b3ef66f3) SHA1(4766a1ed9b4adcc2f0d2857633ce95194eb80694) ) /* char defs, read by cpu */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x040000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c41-02.bin", 0x00000, 0x20000, CRC(05dcd36d) SHA1(f32c5b40e0adad7991bac29ecffcd5dff330e118) ) - ROM_LOAD16_BYTE( "c41-01.bin", 0x00001, 0x20000, CRC(39ff043c) SHA1(a4b0c6763c43a7ad16e98a938ffbb8aef4882eac) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c41-06.bin", 0x00000, 0x04000, CRC(753a98d8) SHA1(a832a4789194a67a2201da4e4484ab08210e5ccc) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c41-03.bin", 0x000000, 0x020000, CRC(b2c18e89) SHA1(32eca1721cd8f47e9a6dcb553208ddd0daa67f83) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( liquidk ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c49-09.12", 0x00000, 0x20000, CRC(6ae09eb9) SHA1(0f2527a1b231ecf8c6a937bf56d1245fdd270695) ) - ROM_LOAD16_BYTE( "c49-11.14", 0x00001, 0x20000, CRC(42d2be6e) SHA1(c7953af2a561159d739d05dc06a4c905b6c40e64) ) - ROM_LOAD16_BYTE( "c49-10.13", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) - ROM_LOAD16_BYTE( "c49-12.15", 0x40001, 0x20000, CRC(cb16bad5) SHA1(900c28761200f261cb217f09f492895753ef16f7) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "lk_scr.bin", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "lk_obj0.bin", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD( "lk_obj1.bin", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( liquidku ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c49-09.12", 0x00000, 0x20000, CRC(6ae09eb9) SHA1(0f2527a1b231ecf8c6a937bf56d1245fdd270695) ) - ROM_LOAD16_BYTE( "c49-11.14", 0x00001, 0x20000, CRC(42d2be6e) SHA1(c7953af2a561159d739d05dc06a4c905b6c40e64) ) - ROM_LOAD16_BYTE( "c49-10.13", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) - ROM_LOAD16_BYTE( "c49-14.15", 0x40001, 0x20000, CRC(bc118a43) SHA1(eb306a753ab43e67eacb9d6eff1c14ec78de965f) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "lk_scr.bin", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "lk_obj0.bin", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD( "lk_obj1.bin", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( mizubaku ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c49-09.12", 0x00000, 0x20000, CRC(6ae09eb9) SHA1(0f2527a1b231ecf8c6a937bf56d1245fdd270695) ) - ROM_LOAD16_BYTE( "c49-11.14", 0x00001, 0x20000, CRC(42d2be6e) SHA1(c7953af2a561159d739d05dc06a4c905b6c40e64) ) - ROM_LOAD16_BYTE( "c49-10.13", 0x40000, 0x20000, CRC(50bef2e0) SHA1(54afd46dde81ac0fc272417c53aba1e9e8c90606) ) - ROM_LOAD16_BYTE( "c49-13.15", 0x40001, 0x20000, CRC(2518dbf9) SHA1(c5975d3bfbfbb34b37b5da1d1cd2adf3491f9196) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "lk_scr.bin", 0x00000, 0x80000, CRC(c3364f9b) SHA1(3512a8c352df8b8f19590c859afb8fdec758eb91) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "lk_obj0.bin", 0x00000, 0x80000, CRC(67cc3163) SHA1(f898d52c136f07497ec6be214f016cbadc700055) ) - ROM_LOAD( "lk_obj1.bin", 0x80000, 0x80000, CRC(d2400710) SHA1(082aa0336dbc066d8bb0dd6eb362340f49e87b67) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( quizhq ) /* Quiz HQ */ - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c53-05.bin", 0x00000, 0x20000, CRC(c798fc20) SHA1(4467dde3620102f87cffb2f81f71d856c0df12f8) ) - ROM_LOAD16_BYTE( "c53-01.bin", 0x00001, 0x20000, CRC(bf44c93e) SHA1(6fd871f50da4a668767b3096660689905663f697) ) - ROM_LOAD16_BYTE( "c53-52.bin", 0x80000, 0x20000, CRC(12e14aca) SHA1(8f7dc54f68984c82420abf96436743c0654a71ea) ) /* char defs, read by cpu */ - ROM_LOAD16_BYTE( "c53-51.bin", 0x80001, 0X20000, CRC(b3ef66f3) SHA1(4766a1ed9b4adcc2f0d2857633ce95194eb80694) ) /* char defs, read by cpu */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c53-03.bin", 0x00000, 0x20000, CRC(47596e70) SHA1(3a4612d9dd2e18a4f7f4c4ed38877071afc9c279) ) - ROM_LOAD16_BYTE( "c53-07.bin", 0x00001, 0x20000, CRC(4f9fa82f) SHA1(ccd1ac17d38a51492b3716bad83e67b282da8bf9) ) - ROM_LOAD16_BYTE( "c53-02.bin", 0x40000, 0x20000, CRC(d704c6f4) SHA1(9b1c47ec3abaff53d641488dece8c97438b2e809) ) - ROM_LOAD16_BYTE( "c53-06.bin", 0x40001, 0x20000, CRC(f77f63fc) SHA1(28a509786817e88c0a5821dd68791ebd30d994c2) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c53-08.bin", 0x00000, 0x04000, CRC(25187e81) SHA1(c549fbfff6963be93aaf349b240f15b1d578d1f1) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c53-04.bin", 0x000000, 0x020000, CRC(99890ad4) SHA1(c9be9d21dc72059c39de81e1b73849cc77d6b95d) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( ssi ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c64_15-1.bin", 0x00000, 0x40000, CRC(ce9308a6) SHA1(02653218fe949803742e574eeed01dd421b0a671) ) - ROM_LOAD16_BYTE( "c64_16-1.bin", 0x00001, 0x40000, CRC(470a483a) SHA1(880d43aec8c3bbae1d58e7d6d7719eb6fe67cc56) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c64-09.13", 0x00000, 0x04000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c64-02.2", 0x00000, 0x20000, CRC(3cb0b907) SHA1(7cbe437fe584575a2f26a582095fd49665c7003e) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( majest12 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c64-07.10", 0x00000, 0x20000, CRC(f29ed5c9) SHA1(62283af1c08457db54057ee59a95fb7a3797b897) ) - ROM_LOAD16_BYTE( "c64-06.4", 0x40000, 0x20000, CRC(18dc71ac) SHA1(cb9c0b330ae98e20269f18cdb543feb294647245) ) - ROM_LOAD16_BYTE( "c64-08.11", 0x00001, 0x20000, CRC(ddfd33d5) SHA1(33cc5a0aedf8228b42466cd2a1fe3e06fbfbf141) ) - ROM_LOAD16_BYTE( "c64-05.5", 0x40001, 0x20000, CRC(b61866c0) SHA1(9c2096eae05782377a655c3607b65a2cd6a66272) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty! */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c64-01.1", 0x000000, 0x100000, CRC(a1b4f486) SHA1(bdd6bf144e50fe7b1d4cf4504471a689669415a4) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c64-09.13", 0x00000, 0x04000, CRC(88d7f65c) SHA1(d6383bf8fd035772fa3c57b26b727eefe1aadd93) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c64-02.2", 0x00000, 0x20000, CRC(3cb0b907) SHA1(7cbe437fe584575a2f26a582095fd49665c7003e) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( gunfront ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "c71-09.ic42", 0x00000, 0x20000, CRC(10a544a2) SHA1(3b46bbd494b432d36aed3fd4b429cef074050c1d) ) - ROM_LOAD16_BYTE( "c71-08.ic41", 0x00001, 0x20000, CRC(c17dc0a0) SHA1(f84e0d1afb403bb06480e8687558cd320d60099e) ) - ROM_LOAD16_BYTE( "c71-10.ic40", 0x40000, 0x20000, CRC(f39c0a06) SHA1(8217f0dd855d6e15756349d47f327742ab50db15) ) - ROM_LOAD16_BYTE( "c71-14.ic39", 0x40001, 0x20000, CRC(312da036) SHA1(44215c64ad9f8a4566cc9f407a7b38799a08d485) ) - ROM_LOAD16_BYTE( "c71-16.ic38", 0x80000, 0x20000, CRC(1bbcc2d4) SHA1(fe664f8d2b6d902f034cf51f42378cc68c970b53) ) - ROM_LOAD16_BYTE( "c71-15.ic37", 0x80001, 0x20000, CRC(df3e00bb) SHA1(9fe2ece7289945692099eba92f02e5a97a4d148c) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c71-02.ic59", 0x000000, 0x100000, CRC(2a600c92) SHA1(38a08ade2c6fa005a402d04fabf87ff10236d4c6) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c71-12.ic49", 0x00000, 0x04000, CRC(0038c7f8) SHA1(405def36e67949219b6f9394333278ec60ad5783) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c71-01.ic29", 0x000000, 0x100000, CRC(0e73105a) SHA1(c5c9743f68a43273e16f5e5179557f2392505a1e) ) - - /* no Delta-T samples */ - -// Pals c71-16.28 c71-07.27 -ROM_END - -ROM_START( gunfronj ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "c71-09.ic42", 0x00000, 0x20000, CRC(10a544a2) SHA1(3b46bbd494b432d36aed3fd4b429cef074050c1d) ) - ROM_LOAD16_BYTE( "c71-08.ic41", 0x00001, 0x20000, CRC(c17dc0a0) SHA1(f84e0d1afb403bb06480e8687558cd320d60099e) ) - ROM_LOAD16_BYTE( "c71-10.ic40", 0x40000, 0x20000, CRC(f39c0a06) SHA1(8217f0dd855d6e15756349d47f327742ab50db15) ) - ROM_LOAD16_BYTE( "c71-11.ic39", 0x40001, 0x20000, CRC(df23c11a) SHA1(3bbe4715a022f2a78c23a7a5b8ca36ad43cdbca0) ) - ROM_LOAD16_BYTE( "c71-16.ic38", 0x80000, 0x20000, CRC(1bbcc2d4) SHA1(fe664f8d2b6d902f034cf51f42378cc68c970b53) ) - ROM_LOAD16_BYTE( "c71-15.ic37", 0x80001, 0x20000, CRC(df3e00bb) SHA1(9fe2ece7289945692099eba92f02e5a97a4d148c) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c71-02.ic59", 0x000000, 0x100000, CRC(2a600c92) SHA1(38a08ade2c6fa005a402d04fabf87ff10236d4c6) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c71-03.ic19", 0x000000, 0x100000, CRC(9133c605) SHA1(fa10c60cd4ca439a273c644bbf3810824a0ca523) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c71-12.ic49", 0x00000, 0x04000, CRC(0038c7f8) SHA1(405def36e67949219b6f9394333278ec60ad5783) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c71-01.ic29", 0x000000, 0x100000, CRC(0e73105a) SHA1(c5c9743f68a43273e16f5e5179557f2392505a1e) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( growl ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "c74-10.ic59", 0x00000, 0x40000, CRC(ca81a20b) SHA1(75d665f3e3cf1ab389f5390d4a4d2c9e49543c56) ) - ROM_LOAD16_BYTE( "c74-08.ic61", 0x00001, 0x40000, CRC(aa35dd9e) SHA1(97229746f70c486bcf172ec09f7f9c9eede16006) ) - ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) - ROM_LOAD16_BYTE( "c74-14.ic60", 0x80001, 0x40000, CRC(b6c24ec7) SHA1(da8ac05d12c12a58bf5185d723358a0d1a0fe71e) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c74-12.ic62", 0x00000, 0x04000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c74-04.ic28", 0x000000, 0x100000, CRC(2d97edf2) SHA1(d3a995303facdad4f8e1fdda04eaaec4440ff371) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c74-05.ic29", 0x000000, 0x080000, CRC(e29c0828) SHA1(f541d724f118130bb7a8f9e790582c68779cc6b6) ) - -//Pals c74-06.48 c74-07.47 -ROM_END - -ROM_START( growlu ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "c74-10.ic59", 0x00000, 0x40000, CRC(ca81a20b) SHA1(75d665f3e3cf1ab389f5390d4a4d2c9e49543c56) ) - ROM_LOAD16_BYTE( "c74-08.ic61", 0x00001, 0x40000, CRC(aa35dd9e) SHA1(97229746f70c486bcf172ec09f7f9c9eede16006) ) - ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) - ROM_LOAD16_BYTE( "c74-13.ic60", 0x80001, 0x40000, CRC(c1c57e51) SHA1(f6ffc1acf3e5ff75e64facd7e28fd675eb065c7b) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c74-12.ic62", 0x00000, 0x04000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c74-04.ic28", 0x000000, 0x100000, CRC(2d97edf2) SHA1(d3a995303facdad4f8e1fdda04eaaec4440ff371) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c74-05.ic29", 0x000000, 0x080000, CRC(e29c0828) SHA1(f541d724f118130bb7a8f9e790582c68779cc6b6) ) -ROM_END - -ROM_START( runark ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "c74-10.ic59", 0x00000, 0x40000, CRC(ca81a20b) SHA1(75d665f3e3cf1ab389f5390d4a4d2c9e49543c56) ) - ROM_LOAD16_BYTE( "c74-08.ic61", 0x00001, 0x40000, CRC(aa35dd9e) SHA1(97229746f70c486bcf172ec09f7f9c9eede16006) ) - ROM_LOAD16_BYTE( "c74-11.ic58", 0x80000, 0x40000, CRC(ee3bd6d5) SHA1(71f961b4e3b3156bc52e489eb0a408a1fe537a61) ) - ROM_LOAD16_BYTE( "c74-09.ic14", 0x80001, 0x40000, CRC(58cc2feb) SHA1(7dc314a56345be116731dbb65dfa9e508c156513) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c74-01.ic34", 0x000000, 0x100000, CRC(3434ce80) SHA1(ef363107fba6f5088ef9c85dd692b5c98be67f75) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c74-03.ic12", 0x000000, 0x100000, CRC(1a0d8951) SHA1(62af40f7ca651273d93fed5d55af24cf91331ec7) ) - ROM_LOAD( "c74-02.ic11", 0x100000, 0x100000, CRC(15a21506) SHA1(3d8f066e1226e030ce549959d5a8dd4506a0e0a2) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c74-12.ic62", 0x00000, 0x04000, CRC(bb6ed668) SHA1(e8c3a15ccbc788ac57d42bd2cabcdb2db6305489) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c74-04.ic28", 0x000000, 0x100000, CRC(2d97edf2) SHA1(d3a995303facdad4f8e1fdda04eaaec4440ff371) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c74-05.ic29", 0x000000, 0x080000, CRC(e29c0828) SHA1(f541d724f118130bb7a8f9e790582c68779cc6b6) ) -ROM_END - -ROM_START( mjnquest ) /* Mahjong Quest */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c77-09", 0x000000, 0x020000, CRC(0a005d01) SHA1(caf44fcdeca9f7f1bfdb0c29503bb82ce17f945c) ) - ROM_LOAD16_BYTE( "c77-08", 0x000001, 0x020000, CRC(4244f775) SHA1(801045d7433684195876e172676b2345827de7cc) ) - ROM_LOAD16_WORD_SWAP( "c77-04", 0x080000, 0x080000, CRC(c2e7e038) SHA1(6cf23bab587b34cbc1f78b8b82cbab5634b074dc) ) /* data rom */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c77-01", 0x000000, 0x100000, CRC(5ba51205) SHA1(da0b6f56e7d2437ad75ada1ba07e35843d2b4704) ) - ROM_LOAD( "c77-02", 0x100000, 0x100000, CRC(6a6f3040) SHA1(61c3ce51fa935f52572affa899bb81b3a616df3a) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c77-10", 0x00000, 0x04000, CRC(f16b2c1e) SHA1(f6f13429a0b4e0e4c64991f1acc4ecf85dc64364) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c77-03", 0x000000, 0x080000, CRC(312f17b1) SHA1(3b45eeb6c6721c532451cb113e6a38da4d8a8cbf) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( mjnquesb ) /* Mahjong Quest (No Nudity) */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c77-09a", 0x000000, 0x020000, CRC(fc17f1c2) SHA1(438b0a780560940b2d3dab42b34dc2bc94a15f80) ) - ROM_LOAD16_BYTE( "c77-08", 0x000001, 0x020000, CRC(4244f775) SHA1(801045d7433684195876e172676b2345827de7cc) ) - ROM_LOAD16_WORD_SWAP( "c77-04", 0x080000, 0x080000, CRC(c2e7e038) SHA1(6cf23bab587b34cbc1f78b8b82cbab5634b074dc) ) /* data rom */ - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c77-01", 0x000000, 0x100000, CRC(5ba51205) SHA1(da0b6f56e7d2437ad75ada1ba07e35843d2b4704) ) - ROM_LOAD( "c77-02", 0x100000, 0x100000, CRC(6a6f3040) SHA1(61c3ce51fa935f52572affa899bb81b3a616df3a) ) - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c77-05", 0x00000, 0x80000, CRC(c5a54678) SHA1(d0954acbdfdf9a5f14f554635c015eee23d52e0c) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c77-10", 0x00000, 0x04000, CRC(f16b2c1e) SHA1(f6f13429a0b4e0e4c64991f1acc4ecf85dc64364) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c77-03", 0x000000, 0x080000, CRC(312f17b1) SHA1(3b45eeb6c6721c532451cb113e6a38da4d8a8cbf) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( footchmp ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c80-11.6", 0x00000, 0x20000, CRC(f78630fb) SHA1(37da34401f664caaf5113a9abad78e447f4f4651) ) - ROM_LOAD16_BYTE( "c80-10.4", 0x00001, 0x20000, CRC(32c109cb) SHA1(46a116127bcea18cc15ddf297e5e0d5cdcac9842) ) - ROM_LOAD16_BYTE( "c80-12.7", 0x40000, 0x20000, CRC(80d46fef) SHA1(cc81c8ba19321e8bae9054021bfb61cb11c2aba5) ) - ROM_LOAD16_BYTE( "c80-14.5", 0x40001, 0x20000, CRC(40ac4828) SHA1(9a2112b0ccd573a3e94d9817b78bb02909b972e1) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "c80-04.1", 0x00000, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) - ROM_LOAD16_BYTE( "c80-05.2", 0x00001, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) - ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "c80-15.70", 0x00000, 0x04000, CRC(05aa7fd7) SHA1(7eb10964ea9f43abcda8444f13733a0753a04580) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* YM2610 samples */ - ROM_LOAD( "c80-03.57", 0x000000, 0x100000, CRC(609938d5) SHA1(54c7a7265dee5cb031fd402f4c74858d73bec652) ) - - /* no Delta-T samples */ - -// Pals c80-08.45 c80-09.46 -ROM_END - -ROM_START( hthero ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c80-16.6", 0x00000, 0x20000, CRC(4e795b52) SHA1(90a32133a68de4d0410935e5039d4dec37836a13) ) - ROM_LOAD16_BYTE( "c80-17.4", 0x00001, 0x20000, CRC(42c0a838) SHA1(4ba96a7248715562668994a4bf974e8ce4c44fd3) ) - ROM_LOAD16_BYTE( "c80-12.7", 0x40000, 0x20000, CRC(80d46fef) SHA1(cc81c8ba19321e8bae9054021bfb61cb11c2aba5) ) - ROM_LOAD16_BYTE( "c80-18.5", 0x40001, 0x20000, CRC(aea22904) SHA1(907889f141fced8cada793f02244e80cf0f89c81) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "c80-04.1", 0x00000, 0x80000, CRC(9a17fe8c) SHA1(d2ea72743151f0f7bf78f33dba526214afb07389) ) - ROM_LOAD16_BYTE( "c80-05.2", 0x00001, 0x80000, CRC(acde7071) SHA1(23637238d122b13edb6025418bf482cc210ef6a9) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c80-01.9", 0x000000, 0x100000, CRC(f43782e6) SHA1(53ff6cc433673f307a91e8db74428aa6172ffad4) ) - ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c80-15.70", 0x00000, 0x04000, CRC(05aa7fd7) SHA1(7eb10964ea9f43abcda8444f13733a0753a04580) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c80-03.57", 0x000000, 0x100000, CRC(609938d5) SHA1(54c7a7265dee5cb031fd402f4c74858d73bec652) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( euroch92 ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "ec92_25.rom", 0x00000, 0x20000, CRC(98482202) SHA1(4fc03fb2a2c21f302d95047535f66d26421dcda2) ) - ROM_LOAD16_BYTE( "ec92_23.rom", 0x00001, 0x20000, CRC(ae5e75e9) SHA1(82d935684182bfb42367232a3b71d4664b170ffe) ) - ROM_LOAD16_BYTE( "ec92_26.rom", 0x40000, 0x20000, CRC(b986ccb2) SHA1(862a5da1bd4e8743d55f2e5bab2ade6c3dec682c) ) - ROM_LOAD16_BYTE( "ec92_24.rom", 0x40001, 0x20000, CRC(b31d94ac) SHA1(8a3328b7e061b584992dd27b0dda9826b4b6ed91) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "ec92_21.rom", 0x00000, 0x80000, CRC(5759ed37) SHA1(2a661ea40735afbda3d0141ce3f706c64281097b) ) - ROM_LOAD16_BYTE( "ec92_22.rom", 0x00001, 0x80000, CRC(d9a0d38e) SHA1(192f0303f4f64df46dc20701ed4362a4e14e40e7) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "ec92_19.rom", 0x000000, 0x100000, CRC(219141a5) SHA1(b549e91049dcb796d4104b4426674dd87589efde) ) - ROM_LOAD( "c80-02.10", 0x100000, 0x100000, CRC(060a8b61) SHA1(b1888d8bce4c4624dc5bb64168c604ec64537c0e) ) // ec92_20.rom - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* 64k for Z80 code */ - ROM_LOAD( "ec92_27.rom", 0x00000, 0x04000, CRC(2db48e65) SHA1(43a47ebc91c043a996e966cf808d71256e158494) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* YM2610 samples */ - ROM_LOAD( "c80-03.57", 0x000000, 0x100000, CRC(609938d5) SHA1(54c7a7265dee5cb031fd402f4c74858d73bec652) ) // ec92_03.rom - - /* no Delta-T samples */ -ROM_END - -ROM_START( koshien ) /* Ah Eikou no Koshien */ - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c81-11.bin", 0x000000, 0x020000, CRC(b44ea8c9) SHA1(f1d19f531b7a653f1c4244d612a339d95ce8cc7c) ) - ROM_LOAD16_BYTE( "c81-10.bin", 0x000001, 0x020000, CRC(8f98c40a) SHA1(f9471306c47ced10a56c09794954e55fdb6f6b85) ) - ROM_LOAD16_WORD_SWAP( "c81-04.bin", 0x080000, 0x080000, CRC(1592b460) SHA1(d42514b4d588d0376914832f0e07ce626d1cdee0) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c81-03.bin", 0x000000, 0x100000, CRC(29bbf492) SHA1(bd370b1de256a432821b443a6653aab8507fb3a7) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c81-01.bin", 0x000000, 0x100000, CRC(64b15d2a) SHA1(18b3b405f77ad80781e3fce4ef021ba49f707ed6) ) - ROM_LOAD( "c81-02.bin", 0x100000, 0x100000, CRC(962461e8) SHA1(cb0313b00681c36110eed50eae41ad98eb22205d) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c81-12.bin", 0x00000, 0x04000, CRC(6e8625b6) SHA1(212d384aa6ed43f5389739863afecbf0ad68af14) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c81-05.bin", 0x00000, 0x80000, CRC(9c3d71be) SHA1(79f1bb40d8356d9fc93b569c20be15e7fbf34580) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c81-06.bin", 0x00000, 0x80000, CRC(927833b4) SHA1(c09240e4885d2eace1c64fa6425faeeea0296d98) ) - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-c81-07.bin", 0x0000, 0x0104, CRC(46341732) SHA1(af652621cb96f656fd1f9ed20daeb076641aeb08) ) - ROM_LOAD( "pal16l8b-c81-08.bin", 0x0200, 0x0104, CRC(e7d2d300) SHA1(20a1a258230d5be73381c97509437a9e76de958c) ) - ROM_LOAD( "pal16l8b-c81-09.bin", 0x0400, 0x0104, CRC(e4c012a1) SHA1(56746ce42fd64bf04e17132811de291a1bfa5451) ) -ROM_END - -ROM_START( yuyugogo ) /* Yuuyu no QUIZ de GO!GO! */ - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c83-10.3", 0x00000, 0x20000, CRC(4d185d03) SHA1(ab494c777a0acfe088d3db7c1a0488d40884ea0a) ) - ROM_LOAD16_BYTE( "c83-09.2", 0x00001, 0x20000, CRC(f9892792) SHA1(310d02833c821a34baa0ce537019b8cade6402b7) ) - - ROM_REGION16_BE( 0x100000, REGION_USER1, 0 ) - /* extra ROM mapped at d00000 */ - ROM_LOAD16_WORD_SWAP( "c83-03.10", 0x000000, 0x100000, CRC(eed9acc2) SHA1(baa6a9aa5ed8fbbff7b289693407192b464cb7c7) ) /* data rom */ - - ROM_REGION( 0x020000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c83-05.21", 0x00000, 0x20000, CRC(eca57fb1) SHA1(c67b5e734f5fd8801a4376c0555ce4a891dcd6bc) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "c83-01.12", 0x000000, 0x100000, CRC(8bf0d416) SHA1(ec3d51422fcc8e3e822716d57adab56f639a2d02) ) - ROM_LOAD16_BYTE( "c83-02.11", 0x000001, 0x100000, CRC(20bb1c15) SHA1(33370b665d681f765e363e5a8e79e62f59ad25f7) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c83-11.1" , 0x00000, 0x04000, CRC(461e702a) SHA1(f1f4294a7e8acc50473df15a167ba84595c9eb15) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c83-04.5", 0x000000, 0x100000, CRC(2600093a) SHA1(824fde078e0ded58037bd06f888eac4e7487ac82) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( ninjak ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c85-10x.ic50", 0x00000, 0x20000, CRC(ba7e6e74) SHA1(d6fc7529f1df348fedc6f32edd7691a6da35423d) ) /* ROM 0H */ - ROM_LOAD16_BYTE( "c85-13x.ic49", 0x00001, 0x20000, CRC(0ac2cba2) SHA1(18e1b458995051c8d4a0077a41fa24dbaa318afc) ) /* ROM 0L */ - ROM_LOAD16_BYTE( "c85-07.ic48", 0x40000, 0x20000, CRC(3eccfd0a) SHA1(54f20d852ab88a19e9ddee95b9c6057887a8d433) ) /* ROM 1LH */ - ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ - /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c85-14.ic54", 0x00000, 0x04000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c85-04.ic31", 0x00000, 0x80000, CRC(5afb747e) SHA1(e4f03582221f3a97f0e24693aa77264663eb1b47) ) /* SCH-B */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c85-05.ic33", 0x00000, 0x80000, CRC(3c1b0ed0) SHA1(08920dc55d695debae3eea5a8ff1d17bb11afd45) ) /* SCH-A */ -ROM_END - -ROM_START( ninjakj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c85-10x.ic50", 0x00000, 0x20000, CRC(ba7e6e74) SHA1(d6fc7529f1df348fedc6f32edd7691a6da35423d) ) /* ROM 0H */ - ROM_LOAD16_BYTE( "c85-11x.ic49", 0x00001, 0x20000, CRC(e4ccaa8e) SHA1(6e1b9dade70e3d91071a3ea590537232bb1215fe) ) /* ROM 0L */ - ROM_LOAD16_BYTE( "c85-07.ic48", 0x40000, 0x20000, CRC(3eccfd0a) SHA1(54f20d852ab88a19e9ddee95b9c6057887a8d433) ) /* ROM 1LH */ - ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ - /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c85-14.ic54", 0x00000, 0x04000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c85-04.ic31", 0x00000, 0x80000, CRC(5afb747e) SHA1(e4f03582221f3a97f0e24693aa77264663eb1b47) ) /* SCH-B */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c85-05.ic33", 0x00000, 0x80000, CRC(3c1b0ed0) SHA1(08920dc55d695debae3eea5a8ff1d17bb11afd45) ) /* SCH-A */ -ROM_END - -ROM_START( ninjaku ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c85-15x.ic50", 0x00000, 0x20000, CRC(719a481b) SHA1(aacd5b3db29e3771bbeb89c9502c49eba1538741) ) /* ROM 0H */ - ROM_LOAD16_BYTE( "c85-12x.ic49", 0x00001, 0x20000, CRC(6c3f7e1e) SHA1(919177bf3522717864850d4130867ecb0ecfc9c7) ) /* ROM 0L */ - ROM_LOAD16_BYTE( "c85-07.ic48", 0x40000, 0x20000, CRC(3eccfd0a) SHA1(54f20d852ab88a19e9ddee95b9c6057887a8d433) ) /* ROM 1LH */ - ROM_LOAD16_BYTE( "c85-06.ic47", 0x40001, 0x20000, CRC(d126ded1) SHA1(fc4b6504d0234e7e006a63e33fd061411f008c38) ) /* ROM 1LL */ - /* IC45 (ROM 1HL) and IC46 (1HH) not populated */ - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c85-03.ic65", 0x00000, 0x80000, CRC(4cc7b9df) SHA1(aaf0e587b86a7bf9fbfd4e19127a7295da8a3676) ) /* SCREEN */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c85-01.ic19", 0x000000, 0x100000, CRC(a711977c) SHA1(b6b79ff6086a7b6e242fe26eec448f025ab431af) ) /* OBJ-0 */ - ROM_LOAD( "c85-02.ic17", 0x100000, 0x100000, CRC(a6ad0f3d) SHA1(6d3a661807dd64f0b56ae6252a7e980fd678feef) ) /* OBJ-1 */ - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c85-14.ic54", 0x00000, 0x04000, CRC(f2a52a51) SHA1(951793c65a3436a7fb36f3058bc7a3b4265a90bb) ) /* SND */ - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c85-04.ic31", 0x00000, 0x80000, CRC(5afb747e) SHA1(e4f03582221f3a97f0e24693aa77264663eb1b47) ) /* SCH-B */ - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c85-05.ic33", 0x00000, 0x80000, CRC(3c1b0ed0) SHA1(08920dc55d695debae3eea5a8ff1d17bb11afd45) ) /* SCH-A */ -ROM_END - -ROM_START( solfigtr ) /* Solitary Fighter */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "c91-05.59", 0x00000, 0x40000, CRC(c1260e7c) SHA1(406663b8f92380f37955061765d77a92dc51c17a) ) - ROM_LOAD16_BYTE( "c91-09.61", 0x00001, 0x40000, CRC(d82b5266) SHA1(670dc91067dd856b5d36b71e5ddf67e82220d83b) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c91-03.34", 0x000000, 0x100000, CRC(8965da12) SHA1(b06f3fc91c9ce1e20cb4187505f3c7921c54cc12) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c91-01.12", 0x000000, 0x100000, CRC(0f3f4e00) SHA1(5912eddc066435b276d615842d123f58c4852b2b) ) - ROM_LOAD( "c91-02.11", 0x100000, 0x100000, CRC(e14ab98e) SHA1(b2e559ec9ccf383e693b27436081c29d30f17835) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c91-07.62", 0x00000, 0x04000, CRC(e471a05a) SHA1(4d9c2b734aac27819673094dc1843e1ca5fe6994) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c91-04.28", 0x00000, 0x80000, CRC(390b1065) SHA1(ee7ba77634854e4896528ff1bbc308de92a5815b) ) /* Channel A */ - - /* no Delta-T samples */ - - ROM_REGION( 0x0200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-c74-06.ic48", 0x0000, 0x0104, CRC(c868dc16) SHA1(b9d12f2016c6a3017b497aafc96a7dbab4a50c8b) ) -ROM_END - -ROM_START( qzquest ) /* Quiz Quest */ - ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "c92-06.8", 0x000000, 0x020000, CRC(424be722) SHA1(ec064028bd68e8e2ec37705cab1c79c963188944) ) - ROM_LOAD16_BYTE( "c92-05.7", 0x000001, 0x020000, CRC(da470f93) SHA1(dc6d2142fc5662f4b3ffbe4cc9adb5b394d958ed) ) - ROM_LOAD16_WORD_SWAP( "c92-03.6", 0x100000, 0x080000, CRC(1d697606) SHA1(0af7ac3c3229f139fab1569adaa893b43999bc89) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c92-02.10", 0x000000, 0x100000, CRC(2daccecf) SHA1(bd22f95210f2bb0b63d210a54e07535c3f0e1031) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c92-01.21", 0x000000, 0x100000, CRC(9976a285) SHA1(8575ee18a3a6d690c9aa09f0c540665a31f87216) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c92-07.5", 0x00000, 0x04000, CRC(3e313db9) SHA1(44f781c7d3df8eacd745dc0af180cec9e1164b89) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c92-04.9", 0x000000, 0x080000, CRC(e421bb43) SHA1(a89157e65b537b31f5837435dae848adde8a86d1) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( pulirula ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "c98-12.rom", 0x00000, 0x40000, CRC(816d6cde) SHA1(cac583440cca9aa57373f4a6c9a68c5442a5258b) ) - ROM_LOAD16_BYTE( "c98-16.rom", 0x00001, 0x40000, CRC(59df5c77) SHA1(e6f222589dd8d046fb92dcf5f68ab0f6cd1b725b) ) - ROM_LOAD16_BYTE( "c98-06.rom", 0x80000, 0x20000, CRC(64a71b45) SHA1(40734c378f15cd47d4128f9713bf19b0d42c0517) ) - ROM_LOAD16_BYTE( "c98-07.rom", 0x80001, 0x20000, CRC(90195bc0) SHA1(0f7e48ee8964dec1fbc6f8dab57f3ae67b2494d2) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c98-04.rom", 0x000000, 0x100000, CRC(0e1fe3b2) SHA1(37bf8e946ee4239de104a07ff87727cb6e2a3932) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) - ROM_LOAD( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "c98-05.rom", 0x000000, 0x080000, CRC(9ddd9c39) SHA1(4005a540c5cef6754284361da79a9e5e15612146) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c98-14.rom", 0x00000, 0x04000, CRC(a858e17c) SHA1(4389f43035a94e776a25350a8989dcfdb3e4675a) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c98-01.rom", 0x000000, 0x100000, CRC(197f66f5) SHA1(cc5d104033f9ab7d614afd47eeb61a22ef5714ea) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( pulirulj ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "c98-12.rom", 0x00000, 0x40000, CRC(816d6cde) SHA1(cac583440cca9aa57373f4a6c9a68c5442a5258b) ) - ROM_LOAD16_BYTE( "c98-13.rom", 0x00001, 0x40000, CRC(b7d13d5b) SHA1(f2cac6931c5984d68c2d5303b53c54b5781b3aed) ) - ROM_LOAD16_BYTE( "c98-06.rom", 0x80000, 0x20000, CRC(64a71b45) SHA1(40734c378f15cd47d4128f9713bf19b0d42c0517) ) - ROM_LOAD16_BYTE( "c98-07.rom", 0x80001, 0x20000, CRC(90195bc0) SHA1(0f7e48ee8964dec1fbc6f8dab57f3ae67b2494d2) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "c98-04.rom", 0x000000, 0x100000, CRC(0e1fe3b2) SHA1(37bf8e946ee4239de104a07ff87727cb6e2a3932) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "c98-02.rom", 0x000000, 0x100000, CRC(4a2ad2b3) SHA1(3296cf2855203d06170c991d187c65ccc3751952) ) - ROM_LOAD( "c98-03.rom", 0x100000, 0x100000, CRC(589a678f) SHA1(228b959046bec10b28599d83d9e58fd149273473) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "c98-05.rom", 0x000000, 0x080000, CRC(9ddd9c39) SHA1(4005a540c5cef6754284361da79a9e5e15612146) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "c98-14.rom", 0x00000, 0x04000, CRC(a858e17c) SHA1(4389f43035a94e776a25350a8989dcfdb3e4675a) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c98-01.rom", 0x000000, 0x100000, CRC(197f66f5) SHA1(cc5d104033f9ab7d614afd47eeb61a22ef5714ea) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( metalb ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "d16-16.8", 0x00000, 0x40000, CRC(3150be61) SHA1(63e0e6c6dc3a64da77bc83a160bbcd0f7d98ca52) ) - ROM_LOAD16_BYTE( "d16-18.7", 0x00001, 0x40000, CRC(5216d092) SHA1(d5a237112f0e76fa68f26a4a4e804818dc49a2fa) ) - ROM_LOAD16_BYTE( "d12-07.9", 0x80000, 0x20000, CRC(e07f5136) SHA1(27df1a1f21c27feb91801e3cc304ee534969f792) ) - ROM_LOAD16_BYTE( "d12-06.6", 0x80001, 0x20000, CRC(131df731) SHA1(537a9f404d797db051a5aaf0afa2cd1e9c0bdcfb) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "d12-03.14", 0x00000, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) - ROM_LOAD16_BYTE( "d12-04.13", 0x00001, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d12-13.5", 0x00000, 0x04000, CRC(bcca2649) SHA1(d932134416c951d849ae41598f75609d453ed520) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d12-02.10", 0x000000, 0x100000, CRC(79263e74) SHA1(f9ef222239855d593b5855dbf9ea0376ea349c4b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "d12-05.16", 0x000000, 0x080000, CRC(7fd036c5) SHA1(f412c6302cfba73df110943d7d6679dc908479f7) ) -ROM_END - -ROM_START( metalbj ) - ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 768k for 68000 code */ - ROM_LOAD16_BYTE( "d12-12.8", 0x00000, 0x40000, CRC(556f82b2) SHA1(fbce771eda99fd8b778f64fdc314ada4b6fdffde) ) - ROM_LOAD16_BYTE( "d12-11.7", 0x00001, 0x40000, CRC(af9ee28d) SHA1(2c2ced0240e929da6ebec0ea7aac641531833583) ) - ROM_LOAD16_BYTE( "d12-07.9", 0x80000, 0x20000, CRC(e07f5136) SHA1(27df1a1f21c27feb91801e3cc304ee534969f792) ) - ROM_LOAD16_BYTE( "d12-06.6", 0x80001, 0x20000, CRC(131df731) SHA1(537a9f404d797db051a5aaf0afa2cd1e9c0bdcfb) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "d12-03.14", 0x00000, 0x80000, CRC(46b498c0) SHA1(c2ec7ce9ac7874d1bc54ce4b5d428d73c5a16549) ) - ROM_LOAD16_BYTE( "d12-04.13", 0x00001, 0x80000, CRC(ab66d141) SHA1(e7f82b297dd2ae0b5d29886e5393cece61b742bb) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d12-01.20", 0x000000, 0x100000, CRC(b81523b9) SHA1(e688e88008db87fed0051fbcb28d3e3ae7e945a8) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d12-13.5", 0x00000, 0x04000, CRC(bcca2649) SHA1(d932134416c951d849ae41598f75609d453ed520) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d12-02.10", 0x000000, 0x100000, CRC(79263e74) SHA1(f9ef222239855d593b5855dbf9ea0376ea349c4b) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "d12-05.16", 0x000000, 0x080000, CRC(7fd036c5) SHA1(f412c6302cfba73df110943d7d6679dc908479f7) ) -ROM_END - -ROM_START( qzchikyu ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* 256k for 68000 code */ - ROM_LOAD16_BYTE( "d19-06.8", 0x000000, 0x020000, CRC(de8c8e55) SHA1(ffe177231193ff32da575a4f72fc655b88f08aa8) ) - ROM_LOAD16_BYTE( "d19-05.7", 0x000001, 0x020000, CRC(c6d099d0) SHA1(a291177e1ddbe993ffa91fbe41fc04a57a568fd0) ) - ROM_LOAD16_WORD_SWAP( "d19-03.6", 0x100000, 0x080000, CRC(5c1b92c0) SHA1(36af32584ef4b2856d397e5e3ee6d17d5be296fd) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d19-02.10", 0x000000, 0x100000, CRC(f2dce2f2) SHA1(29fd34f1177f0b587bfef40534adaea7afc0efcb) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d19-01.21", 0x000000, 0x100000, CRC(6c4342d0) SHA1(197e51302c23f65b8808ec9a66391b972c275867) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d19-07.5", 0x00000, 0x04000, CRC(a8935f84) SHA1(6f264cf7a52dfb8248b8aeb4ff34477d7ccb0b6d) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d19-04.9", 0x000000, 0x080000, CRC(d3c44905) SHA1(d00bd4f11523b2123383dd852ee5484d907ff904) ) - - /* no Delta-T samples */ - - ROM_REGION( 0x0600, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8b-d19-08.bin", 0x0000, 0x0104, CRC(c6240d10) SHA1(7b573ea4d04fc58303b4a044e0d983183112abda) ) - ROM_LOAD( "pal16l8b-d19-09.bin", 0x0200, 0x0104, CRC(576f5db9) SHA1(110695b6d5a80b86df254c3eb970a735f510dfe8) ) - ROM_LOAD( "pal16l8b-d19-10.bin", 0x0400, 0x0104, CRC(ea1232a5) SHA1(a13199339be00db93300049d36f35b4a32f53967) ) -ROM_END - -ROM_START( yesnoj ) /* Yes/No Sinri Tokimeki Chart */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d20-05-2.2", 0x00000, 0x40000, CRC(68adb929) SHA1(5238409708d67f03d251338883de536bdf76c6c1) ) - ROM_LOAD16_BYTE( "d20-04-2.4", 0x00001, 0x40000, CRC(a84762f8) SHA1(2950419fc6dca35a43a565575cec21de8efb9df1) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d20-01.11", 0x00000, 0x80000, CRC(9d8a4d57) SHA1(d7afcd86bdfe2a4c94a7c2847e17ba7e41d4de79) ) - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "d20-02.12", 0x00000, 0x80000, CRC(e71a8e40) SHA1(cda7f14ba90f178887b9cd57d5b85be7d5090ca7) ) - ROM_LOAD16_BYTE( "d20-03.13", 0x00001, 0x80000, CRC(6a51a1b4) SHA1(a2492a7775e137a705b3281de674724d4aab4fe1) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d20-06.5", 0x00000, 0x04000, CRC(3eb537dc) SHA1(368a03fc265157faf50612b823a78c820b2519f1) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - /* no ADPCM samples */ - - /* no Delta-T samples */ -ROM_END - -ROM_START( deadconx ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "d28-06.3", 0x00000, 0x40000, CRC(5b4bff51) SHA1(a589cbc8425add9ed5f2add26f17bb18fe53ca8a) ) - ROM_LOAD16_BYTE( "d28-12.5", 0x00001, 0x40000, CRC(9b74e631) SHA1(6a3ec317492fdf44dcee66ef8323611c55cd8843) ) - ROM_LOAD16_BYTE( "d28-09.2", 0x80000, 0x40000, CRC(143a0cc1) SHA1(a0b658b6a1567651d6fe1a955e1c853b48301f30) ) - ROM_LOAD16_BYTE( "d28-08.4", 0x80001, 0x40000, CRC(4c872bd9) SHA1(a78eec00b40445ad49425ba5a9b392b8516a30ff) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "d28-04.16", 0x00000, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) - ROM_LOAD16_BYTE( "d28-05.17", 0x00001, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) - ROM_LOAD( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d28-10.6", 0x00000, 0x04000, CRC(40805d74) SHA1(172114be692c766622d1235e5c4aa83ad438d9d9) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d28-03.10", 0x000000, 0x100000, CRC(a1804b52) SHA1(f252c473a71a4cf80d9f984fec08e5ae7524a620) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( deadconj ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "d28-06.3", 0x00000, 0x40000, CRC(5b4bff51) SHA1(a589cbc8425add9ed5f2add26f17bb18fe53ca8a) ) - ROM_LOAD16_BYTE( "d28-07.5", 0x00001, 0x40000, CRC(3fb8954c) SHA1(3104c1537f5fda7e5619aacfb48b02e969399a89) ) - ROM_LOAD16_BYTE( "d28-09.2", 0x80000, 0x40000, CRC(143a0cc1) SHA1(a0b658b6a1567651d6fe1a955e1c853b48301f30) ) - ROM_LOAD16_BYTE( "d28-08.4", 0x80001, 0x40000, CRC(4c872bd9) SHA1(a78eec00b40445ad49425ba5a9b392b8516a30ff) ) - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD16_BYTE( "d28-04.16", 0x00000, 0x80000, CRC(dcabc26b) SHA1(2e5e9912710ede9fc7c87430572f4e33a2ab66e7) ) - ROM_LOAD16_BYTE( "d28-05.17", 0x00001, 0x80000, CRC(862f9665) SHA1(c576c929f90ff454adca8f127fd7f74863d03239) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d28-01.8", 0x000000, 0x100000, CRC(181d7b69) SHA1(fea7bd60224cf98d53d1389695f2e0d76e50b573) ) - ROM_LOAD( "d28-02.9", 0x100000, 0x100000, CRC(d301771c) SHA1(2756bb834b50a657bbcf4e9bec02f4af595ac7e9) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d28-10.6", 0x00000, 0x04000, CRC(40805d74) SHA1(172114be692c766622d1235e5c4aa83ad438d9d9) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d28-03.10", 0x000000, 0x100000, CRC(a1804b52) SHA1(f252c473a71a4cf80d9f984fec08e5ae7524a620) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( dinorex ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 1Mb for 68000 code */ - ROM_LOAD16_BYTE( "d39-14.9", 0x000000, 0x080000, CRC(e6aafdac) SHA1(083c6f27b9f7b983e93c7f5d30a9a286b925c10c) ) - ROM_LOAD16_BYTE( "d39-16.8", 0x000001, 0x080000, CRC(cedc8537) SHA1(b2063c2405a3d244157ae07d60a077fdd984dbb6) ) - ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ - ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - - ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d39-12.5", 0x00000, 0x04000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d39-07.10", 0x000000, 0x100000, CRC(28262816) SHA1(6df9a31a2edf1dfc23070b41b1da2c0a9e91d1b0) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "d39-08.4", 0x000000, 0x080000, CRC(377b8b7b) SHA1(4905ac3b9b52c70afe5f451f860fb9acd81a1dbb) ) -ROM_END - -ROM_START( dinorexj ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 1Mb for 68000 code */ - ROM_LOAD16_BYTE( "d39-14.9", 0x000000, 0x080000, CRC(e6aafdac) SHA1(083c6f27b9f7b983e93c7f5d30a9a286b925c10c) ) - ROM_LOAD16_BYTE( "d39-13.8", 0x000001, 0x080000, CRC(ae496b2f) SHA1(0e2ed2b77287590343820841d413ce6cb05b616d) ) - ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ - ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - - ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d39-12.5", 0x00000, 0x04000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d39-07.10", 0x000000, 0x100000, CRC(28262816) SHA1(6df9a31a2edf1dfc23070b41b1da2c0a9e91d1b0) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "d39-08.4", 0x000000, 0x080000, CRC(377b8b7b) SHA1(4905ac3b9b52c70afe5f451f860fb9acd81a1dbb) ) -ROM_END - -ROM_START( dinorexu ) - ROM_REGION( 0x300000, REGION_CPU1, 0 ) /* 1Mb for 68000 code */ - ROM_LOAD16_BYTE( "d39-14.9", 0x000000, 0x080000, CRC(e6aafdac) SHA1(083c6f27b9f7b983e93c7f5d30a9a286b925c10c) ) - ROM_LOAD16_BYTE( "d39-15.8", 0x000001, 0x080000, CRC(fe96723b) SHA1(e68b2149cc935ff36efa501b086d5ffb1e0f5887) ) - ROM_LOAD16_WORD_SWAP( "d39-04.6", 0x100000, 0x100000, CRC(3800506d) SHA1(a75067e94071617cd5dafdd0ae0ec096dded520a) ) /* data rom */ - ROM_LOAD16_WORD_SWAP( "d39-05.7", 0x200000, 0x100000, CRC(e2ec3b5d) SHA1(143b72d0f2f5c40dbaeed1eee0672c3b95c2bda6) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d39-06.2", 0x000000, 0x100000, CRC(52f62835) SHA1(251c4f17bc98a5e81c224864fb81352cf1234377) ) - - ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d39-01.29", 0x000000, 0x200000, CRC(d10e9c7d) SHA1(42c13b271a91fac37be4ea92eb358ad6a6c540cf) ) - ROM_LOAD( "d39-02.28", 0x200000, 0x200000, CRC(6c304403) SHA1(97cd58bd7d00550b7ed5f77b066216c05206b513) ) - ROM_LOAD( "d39-03.27", 0x400000, 0x200000, CRC(fc9cdab4) SHA1(ce2dfac922d6ac0f008b7dfb92d76c1671ccabbd) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d39-12.5", 0x00000, 0x04000, CRC(8292c7c1) SHA1(2ff20726f6cc6d98d860d96b8eb3c10f46b87d58) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d39-07.10", 0x000000, 0x100000, CRC(28262816) SHA1(6df9a31a2edf1dfc23070b41b1da2c0a9e91d1b0) ) - - ROM_REGION( 0x080000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "d39-08.4", 0x000000, 0x080000, CRC(377b8b7b) SHA1(4905ac3b9b52c70afe5f451f860fb9acd81a1dbb) ) -ROM_END - -ROM_START( qjinsei ) /* Quiz Jinsei Gekijoh */ - ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d48-09", 0x000000, 0x040000, CRC(a573b68d) SHA1(fc12c7fb577c919cdb8e16e6d0ddba5603813a13) ) - ROM_LOAD16_BYTE( "d48-10", 0x000001, 0x040000, CRC(37143a5b) SHA1(8a06031618b60a0c8f38789027d0ed042e540c4d) ) - ROM_LOAD16_WORD_SWAP( "d48-03", 0x100000, 0x100000, CRC(fb5ea8dc) SHA1(2444042a85af6ae5b87e95ab09f661b877f215cc) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d48-04", 0x000000, 0x100000, CRC(61e4b078) SHA1(c01722af74220d0bb0daf3b78f53f8875209e066) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "d48-02", 0x000000, 0x100000, CRC(a7b68e63) SHA1(ecdd0b7f4c52eac8c6e4218f69c01cf9b2f98e2a) ) - ROM_LOAD16_BYTE( "d48-01", 0x000001, 0x100000, CRC(72a94b73) SHA1(f4f296886c5fdb227f43cb9231bb15742f8a77f1) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d48-11", 0x00000, 0x04000, CRC(656c5b54) SHA1(650bcc5920838db5c6613bcf30468d6e296ea017) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x080000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d48-05", 0x000000, 0x080000, CRC(3fefd058) SHA1(338c35c3a086041d28708d4b17e208b590c926d5) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( qcrayon ) /* Quiz Crayon */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d55-13", 0x00000, 0x40000, CRC(16afbfc7) SHA1(daf948603c78312aa8fb8e239097939ec89ecc64) ) - ROM_LOAD16_BYTE( "d55-14", 0x00001, 0x40000, CRC(2fb3057f) SHA1(3b107dc69c01ca1b90c78a122336896b89509a3e) ) - - ROM_REGION16_BE( 0x100000, REGION_USER1, 0 ) - /* extra ROM mapped 0x300000 */ - ROM_LOAD16_WORD_SWAP( "d55-03", 0x000000, 0x100000, CRC(4d161e76) SHA1(96189294f91f165423ba585c650ee47fc8165725) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d55-02", 0x000000, 0x100000, CRC(f3db2f1c) SHA1(a96d89dd2c851dae3a237141c478fe2a65dda9c3) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "d55-05", 0x000000, 0x100000, CRC(f0e59902) SHA1(44d93e0e9622a98796a128a0273065947f586a1d) ) - ROM_LOAD16_BYTE( "d55-04", 0x000001, 0x100000, CRC(412975ce) SHA1(32058a87947d6b6cdc8b147ddfcf359792f9c9fc) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d55-15", 0x00000, 0x04000, CRC(ba782eff) SHA1(ce24654db49b9694e444e93b9a8d529a86729e03) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d55-01", 0x000000, 0x100000, CRC(a8309af4) SHA1(dc30b2e019003c58aecaf899668b36dea6e1274e) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( qcrayon2 ) /* Quiz Crayon 2 */ - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512k for 68000 code */ - ROM_LOAD16_BYTE( "d63-12", 0x00000, 0x40000, CRC(0f445a38) SHA1(cb9212c6c61d7dec7cfa039ebbbabd368dad52c3) ) - ROM_LOAD16_BYTE( "d63-13", 0x00001, 0x40000, CRC(74455752) SHA1(9835eb5ebad8df96abe8f7d5f8e4ff663b38015a) ) - - ROM_REGION16_BE( 0x080000, REGION_USER1, 0 ) - /* extra ROM mapped at 600000 */ - ROM_LOAD16_WORD_SWAP( "d63-01", 0x00000, 0x80000, CRC(872e38b4) SHA1(dbb3728655dee03f6583db976708507c9ac5be16) ) /* data rom */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* SCR */ - ROM_LOAD( "d63-03", 0x000000, 0x100000, CRC(d24843af) SHA1(6508182f9038e4603230a6489e89ebae91c2f761) ) - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "d63-06", 0x000000, 0x200000, CRC(58b1e4a8) SHA1(1b957c2d2d1cdada9972880d9d7b6c8c584edabb) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "d63-11", 0x00000, 0x04000, CRC(2c7ac9e5) SHA1(2477fb4415781afddc2f4084eca52f53b7d40480) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "d63-02", 0x000000, 0x100000, CRC(162ae165) SHA1(8b503d096640ec91cf55e05374b293937965c672) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( driftout ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "do_46.rom", 0x00000, 0x80000, CRC(f960363e) SHA1(3f64fd606d4e19198de460cf2d99331a2d2e7434) ) - ROM_LOAD16_BYTE( "do_45.rom", 0x00001, 0x80000, CRC(e3fe66b9) SHA1(6b197061be0c296af08a86dace08ba75c9574e19) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD( "do_obj.rom", 0x00000, 0x80000, CRC(5491f1c4) SHA1(a2e92a9a1e77d9f683f6720947e0622dde48287f) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "do_piv.rom", 0x00000, 0x80000, CRC(c4f012f7) SHA1(4ad6a88f6a7f89b2b4c62c2b376d4e7b43c3d442) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "do_50.rom", 0x00000, 0x04000, CRC(ffe10124) SHA1(a47dfedfa7b352a5db39e7e1ccc666d3c5fb0d75) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "do_snd.rom", 0x00000, 0x80000, CRC(f2deb82b) SHA1(55e39173a475f5ab0b5f573a678a493fb6eefe64) ) - - /* no Delta-T samples */ -ROM_END - -ROM_START( driveout ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* 1024k for 68000 code */ - ROM_LOAD16_BYTE( "driveout.003", 0x00000, 0x80000, CRC(dc431e4e) SHA1(6002cb7a2bd05e28a2413942998a5c7e11fc1432) ) - ROM_LOAD16_BYTE( "driveout.002", 0x00001, 0x80000, CRC(6f9063f4) SHA1(7ea55126a2f6391322740432d835cd06450909ae) ) - - ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE ) - /* empty */ - - ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE ) /* OBJ */ - ROM_LOAD16_BYTE( "driveout.084", 0x00000, 0x40000, CRC(530ac420) SHA1(d66006958580205d0962871ba7d0b40a067bb9af) ) - ROM_LOAD16_BYTE( "driveout.081", 0x00001, 0x40000, CRC(0e9a3e9e) SHA1(7bb21e6fc930a5e1913bffb626958d0ee22d5883) ) - - ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE ) /* pivot gfx */ - ROM_LOAD( "do_piv.rom", 0x00000, 0x80000, CRC(c4f012f7) SHA1(4ad6a88f6a7f89b2b4c62c2b376d4e7b43c3d442) ) - - ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "driveout.020", 0x0000, 0x8000, CRC(99aaeb2e) SHA1(c7eb174f2ddcd8fd2b73b5251f434a20a9627b49) ) - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "driveout.028", 0x00000, 0x20000, CRC(cbde0b66) SHA1(b264aa525ff40c7813182031825cd052db887000) ) /* banked */ - ROM_CONTINUE( 0x40000, 0x20000 ) - ROM_CONTINUE( 0x80000, 0x20000 ) - ROM_CONTINUE( 0xc0000, 0x20000 ) - ROM_LOAD( "driveout.029", 0x20000, 0x20000, CRC(0aba2026) SHA1(f592e3b294d44f499fdca4cc31646e55d8c3dfbf) ) /* sandwiched */ - ROM_RELOAD( 0x60000, 0x20000 ) - ROM_RELOAD( 0xa0000, 0x20000 ) - ROM_RELOAD( 0xe0000, 0x20000 ) -ROM_END - - -DRIVER_INIT( finalb ) -{ - int i; - unsigned char data; - unsigned int offset; - UINT8 *gfx = memory_region(REGION_GFX2); - - offset = 0x100000; - for (i = 0x180000; i<0x200000; i++) - { - int d1,d2,d3,d4; - - /* convert from 2bits into 4bits format */ - data = gfx[i]; - d1 = (data>>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; - - gfx[offset] = (d3<<2) | (d4<<6); - offset++; - - gfx[offset] = (d1<<2) | (d2<<6); - offset++; - } -} - -DRIVER_INIT( mjnquest ) -{ - int i; - UINT8 *gfx = memory_region(REGION_GFX2); - - /* the bytes in each longword are in reversed order, put them in the - order used by the other games. */ - for (i = 0;i < memory_region_length(REGION_GFX2);i += 2) - { - int t; - - t = gfx[i]; - gfx[i] = (gfx[i+1] >> 4) | (gfx[i+1] << 4); - gfx[i+1] = (t >> 4) | (t << 4); - } -} - -DRIVER_INIT( yesnoj ) -{ - yesnoj_dsw = 0; - state_save_register_global(yesnoj_dsw); -} - -DRIVER_INIT( driveout ) -{ - state_save_register_global(driveout_sound_latch); - state_save_register_global(oki_bank); - state_save_register_func_postload(reset_driveout_sound_region); -} - - -GAME( 1988, finalb, 0, finalb, finalb, finalb, ROT0, "Taito Corporation Japan", "Final Blow (World)", 0 ) -GAME( 1988, finalbj, finalb, finalb, finalbj, finalb, ROT0, "Taito Corporation", "Final Blow (Japan)", 0 ) -GAME( 1988, finalbu, finalb, finalb, finalbj, finalb, ROT0, "Taito America Corporation", "Final Blow (US)", 0 ) -GAME( 1989, dondokod, 0, dondokod, dondokod, 0, ROT0, "Taito Corporation Japan", "Don Doko Don (World)", 0 ) -GAME( 1989, dondokdu, dondokod, dondokod, dondokdu, 0, ROT0, "Taito America Corporation", "Don Doko Don (US)", 0 ) -GAME( 1989, dondokdj, dondokod, dondokod, dondokdj, 0, ROT0, "Taito Corporation", "Don Doko Don (Japan)", 0 ) -GAME( 1989, megab, 0, megab, megab, 0, ROT0, "Taito Corporation Japan", "Mega Blast (World)", 0 ) -GAME( 1989, megabj, megab, megab, megabj, 0, ROT0, "Taito Corporation", "Mega Blast (Japan)", 0 ) -GAME( 1990, thundfox, 0, thundfox, thundfox, 0, ROT0, "Taito Corporation Japan", "Thunder Fox (World)", 0 ) -GAME( 1990, thndfoxu, thundfox, thundfox, thndfoxu, 0, ROT0, "Taito America Corporation", "Thunder Fox (US)", 0 ) -GAME( 1990, thndfoxj, thundfox, thundfox, thndfoxj, 0, ROT0, "Taito Corporation", "Thunder Fox (Japan)", 0 ) -GAME( 1989, cameltry, 0, cameltry, cameltry, 0, ROT0, "Taito America Corporation", "Cameltry (US)", 0 ) -GAME( 1989, camltrua, cameltry, camltrua, cameltry, 0, ROT0, "Taito America Corporation", "Cameltry (US, alt sound)", GAME_IMPERFECT_SOUND ) -GAME( 1989, cameltrj, cameltry, cameltry, cameltrj, 0, ROT0, "Taito Corporation", "Cameltry (Japan)", 0 ) -GAME( 1990, qtorimon, 0, qtorimon, qtorimon, 0, ROT0, "Taito Corporation", "Quiz Torimonochou (Japan)", 0 ) -GAME( 1990, liquidk, 0, liquidk, liquidk, 0, ROT0, "Taito Corporation Japan", "Liquid Kids (World)", 0 ) -GAME( 1990, liquidku, liquidk, liquidk, liquidku, 0, ROT0, "Taito America Corporation", "Liquid Kids (US)", 0 ) -GAME( 1990, mizubaku, liquidk, liquidk, mizubaku, 0, ROT0, "Taito Corporation", "Mizubaku Daibouken (Japan)", 0 ) -GAME( 1990, quizhq, 0, quizhq, quizhq, 0, ROT0, "Taito Corporation", "Quiz H.Q. (Japan)", 0 ) -GAME( 1990, ssi, 0, ssi, ssi, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World)", 0 ) -GAME( 1990, majest12, ssi, ssi, majest12, 0, ROT270, "Taito Corporation", "Majestic Twelve - The Space Invaders Part IV (Japan)", 0 ) -GAME( 1990, gunfront, 0, gunfront, gunfront, 0, ROT270, "Taito Corporation Japan", "Gun & Frontier (World)", 0 ) -GAME( 1990, gunfronj, gunfront, gunfront, gunfronj, 0, ROT270, "Taito Corporation", "Gun Frontier (Japan)", 0 ) -GAME( 1990, growl, 0, growl, growl, 0, ROT0, "Taito Corporation Japan", "Growl (World)", 0 ) -GAME( 1990, growlu, growl, growl, growlu, 0, ROT0, "Taito America Corporation", "Growl (US)", 0 ) -GAME( 1990, runark, growl, growl, runark, 0, ROT0, "Taito Corporation", "Runark (Japan)", 0 ) -GAME( 1990, mjnquest, 0, mjnquest, mjnquest, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (Japan)", 0 ) -GAME( 1990, mjnquesb, mjnquest, mjnquest, mjnquest, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (No Nudity)", 0 ) -GAME( 1990, footchmp, 0, footchmp, footchmp, 0, ROT0, "Taito Corporation Japan", "Football Champ (World)", 0 ) -GAME( 1990, hthero, footchmp, hthero, hthero, 0, ROT0, "Taito Corporation", "Hat Trick Hero (Japan)", 0 ) -GAME( 1992, euroch92, footchmp, footchmp, footchmp, 0, ROT0, "Taito Corporation Japan", "Euro Champ '92 (World)", 0 ) -GAME( 1990, koshien, 0, koshien, koshien, 0, ROT0, "Taito Corporation", "Ah Eikou no Koshien (Japan)", 0 ) -GAME( 1990, yuyugogo, 0, yuyugogo, yuyugogo, 0, ROT0, "Taito Corporation", "Yuuyu no Quiz de GO!GO! (Japan)", 0 ) -GAME( 1990, ninjak, 0, ninjak, ninjak, 0, ROT0, "Taito Corporation Japan", "The Ninja Kids (World)", 0 ) -GAME( 1990, ninjakj, ninjak, ninjak, ninjakj, 0, ROT0, "Taito Corporation", "The Ninja Kids (Japan)", 0 ) -GAME( 1990, ninjaku, ninjak, ninjak, ninjaku, 0, ROT0, "Taito America Corporation", "The Ninja Kids (US)", 0 ) -GAME( 1991, solfigtr, 0, solfigtr, solfigtr, 0, ROT0, "Taito Corporation Japan", "Solitary Fighter (World)", 0 ) -GAME( 1991, qzquest, 0, qzquest , qzquest, 0, ROT0, "Taito Corporation", "Quiz Quest - Hime to Yuusha no Monogatari (Japan)", 0 ) -GAME( 1991, pulirula, 0, pulirula, pulirula, 0, ROT0, "Taito Corporation Japan", "PuLiRuLa (World)", 0 ) -GAME( 1991, pulirulj, pulirula, pulirula, pulirulj, 0, ROT0, "Taito Corporation", "PuLiRuLa (Japan)", 0 ) -GAME( 1991, metalb, 0, metalb, metalb, 0, ROT0, "Taito Corporation Japan", "Metal Black (World)", 0 ) -GAME( 1991, metalbj, metalb, metalb, metalbj, 0, ROT0, "Taito Corporation", "Metal Black (Japan)", 0 ) -GAME( 1991, qzchikyu, 0, qzchikyu, qzchikyu, 0, ROT0, "Taito Corporation", "Quiz Chikyu Bouei Gun (Japan)", 0 ) -GAME( 1992, yesnoj, 0, yesnoj, yesnoj, yesnoj, ROT0, "Taito Corporation", "Yes/No Sinri Tokimeki Chart", 0 ) -GAME( 1992, deadconx, 0, deadconx, deadconx, 0, ROT0, "Taito Corporation Japan", "Dead Connection (World)", 0 ) -GAME( 1992, deadconj, deadconx, deadconj, deadconj, 0, ROT0, "Taito Corporation", "Dead Connection (Japan)", 0 ) -GAME( 1992, dinorex, 0, dinorex, dinorex, 0, ROT0, "Taito Corporation Japan", "Dino Rex (World)", 0 ) -GAME( 1992, dinorexj, dinorex, dinorex, dinorexj, 0, ROT0, "Taito Corporation", "Dino Rex (Japan)", 0 ) -GAME( 1992, dinorexu, dinorex, dinorex, dinorex, 0, ROT0, "Taito America Corporation", "Dino Rex (US)", 0 ) -GAME( 1992, qjinsei, 0, qjinsei, qjinsei, 0, ROT0, "Taito Corporation", "Quiz Jinsei Gekijoh (Japan)", 0 ) -GAME( 1993, qcrayon, 0, qcrayon, qcrayon, 0, ROT0, "Taito Corporation", "Quiz Crayon Shinchan (Japan)", 0 ) -GAME( 1993, qcrayon2, 0, qcrayon2, qcrayon2, 0, ROT0, "Taito Corporation", "Crayon Shinchan Orato Asobo (Japan)", 0 ) -GAME( 1991, driftout, 0, driftout, driftout, 0, ROT270, "Visco", "Drift Out (Japan)", 0 ) -GAME( 1991, driveout, driftout, driveout, driftout, driveout, ROT270, "bootleg", "Drive Out", 0 ) diff --git a/src/drivers/taito_f3.c b/src/drivers/taito_f3.c deleted file mode 100644 index 856cfac18..000000000 --- a/src/drivers/taito_f3.c +++ /dev/null @@ -1,3592 +0,0 @@ -/*************************************************************************** - - Taito F3 Package System (aka F3 Cybercore System) - - Emulation by Bryan McPhail, mish@tendril.co.uk/mish@mame.net - Thanks to Ian Schmidt and Stiletto for sound information! - Major thanks to Aaron Giles for sound info, figuring out the 68K/ES5505 - rom interface and ES5505 emulator! - Thanks to Acho A. Tang for Kirameki Star Road sound banking info! - Thank you to Shiriru for the scanline rendering (including alpha blending), - sprite sync fixes, sprite zoom fixes and others! - - Main Issues: - - Sound eats lots of memory as 8 bit PCM data is decoded as 16 bit for - use by the current ES5505 core (which rightly should be 16 bit). - - Other Issues: - - Dsp isn't hooked up. - - Crowd/boards not shown in the football games - - Sound doesn't work in RidingF/RingRage? - - It does work in ringrage but you have to enter test mode first - - Sound balance is not emulated (see arabianm test mode) - - When playing space invaders dx in original mode, t.t. with overlay, the - alpha blending effect is wrong (see Taito B version of game) - - Bubble Symphony has an alpha transition effect that doesn't appear in Mame - - Feel free to report any other issues to me. - - Taito custom chips on motherboard: - - TC0630 FDP - Playfield generator? (Nearest tile roms) - TC0640 FI0 - I/O & watchdog? - TC0650 FDA - Priority mixer? (Near paletteram & video output) - TC0660 FCM - Sprites? (Nearest sprite roms) - -***************************************************************************/ - -#include "driver.h" -#include "machine/eeprom.h" -#include "taito_f3.h" -#include "sound/es5506.h" -#include "sndhrdw/taito_en.h" - -static UINT32 coin_word[2], *f3_ram; -UINT32 *f3_shared_ram; -int f3_game; - - -/******************************************************************************/ - -static READ32_HANDLER( f3_control_r ) -{ - int e; - - switch (offset) - { - case 0x0: /* MSW: Test switch, coins, eeprom access, LSW: Player Buttons, Start, Tilt, Service */ - e=EEPROM_read_bit(); - e=e|(e<<8); - return ((e | readinputport(2) | (readinputport(2)<<8))<<16) /* top byte may be mirror of bottom byte?? see bubblem */ - | readinputport(1); - - case 0x1: /* MSW: Coin counters/lockouts are readable, LSW: Joysticks (Player 1 & 2) */ - return (coin_word[0]<<16) | readinputport(0) | 0xff00; - - case 0x2: /* Analog control 1 */ - return ((readinputport(3)&0xf)<<12) | ((readinputport(3)&0xff0)>>4); - - case 0x3: /* Analog control 2 */ - return ((readinputport(4)&0xf)<<12) | ((readinputport(4)&0xff0)>>4); - - case 0x4: /* Player 3 & 4 fire buttons (Player 2 top fire buttons in Kaiser Knuckle) */ - return readinputport(5)<<8; - - case 0x5: /* Player 3 & 4 joysticks (Player 1 top fire buttons in Kaiser Knuckle) */ - return (coin_word[1]<<16) | readinputport(6); - } - - logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n",activecpu_get_pc(),offset); - return 0xffffffff; -} - -static WRITE32_HANDLER( f3_control_w ) -{ - switch (offset) - { - case 0x00: /* Watchdog */ - watchdog_reset_w(0,0); - return; - case 0x01: /* Coin counters & lockouts */ - if (ACCESSING_MSB32) { - coin_lockout_w(0,~data & 0x01000000); - coin_lockout_w(1,~data & 0x02000000); - coin_counter_w(0, data & 0x04000000); - coin_counter_w(1, data & 0x08000000); - coin_word[0]=(data>>16)&0xffff; - } - return; - case 0x04: /* Eeprom */ - if (ACCESSING_LSB32) { - EEPROM_set_clock_line((data & 0x08) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(data & 0x04); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - } - return; - case 0x05: /* Player 3 & 4 coin counters */ - if (ACCESSING_MSB32) { - coin_lockout_w(2,~data & 0x01000000); - coin_lockout_w(3,~data & 0x02000000); - coin_counter_w(2, data & 0x04000000); - coin_counter_w(3, data & 0x08000000); - coin_word[1]=(data>>16)&0xffff; - } - return; - } - logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %08x\n",activecpu_get_pc(),offset,data); -} - -static WRITE32_HANDLER( f3_sound_reset_0_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_RESET, CLEAR_LINE); -} - -static WRITE32_HANDLER( f3_sound_reset_1_w ) -{ - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); -} - -static WRITE32_HANDLER( f3_sound_bankswitch_w ) -{ - if (f3_game==KIRAMEKI) { - UINT16 *rom = (UINT16 *)memory_region(REGION_CPU2); - unsigned int idx; - - idx = (offset << 1) & 0x1e; - if (ACCESSING_LSW32) - idx += 1; - - if (idx >= 8) - idx -= 8; - - /* Banks are 0x20000 bytes each, divide by two to get data16 - pointer rather than byte pointer */ - memory_set_bankptr(2, &rom[(idx*0x20000)/2 + 0x80000]); - - } else { - logerror("Sound bankswitch in unsupported game\n"); - } -} - -/******************************************************************************/ - -static ADDRESS_MAP_START( f3_readmem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA32_ROM) - AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x20000) AM_READ(MRA32_RAM) - AM_RANGE(0x440000, 0x447fff) AM_READ(MRA32_RAM) /* Palette ram */ - AM_RANGE(0x4a0000, 0x4a0017) AM_READ(f3_control_r) - AM_RANGE(0x600000, 0x60ffff) AM_READ(MRA32_RAM) /* Object data */ - AM_RANGE(0x610000, 0x61bfff) AM_READ(MRA32_RAM) /* Playfield data */ - AM_RANGE(0x61c000, 0x61dfff) AM_READ(MRA32_RAM) /* Text layer */ - AM_RANGE(0x61e000, 0x61ffff) AM_READ(MRA32_RAM) /* Vram */ - AM_RANGE(0x620000, 0x62ffff) AM_READ(MRA32_RAM) /* Line ram */ - AM_RANGE(0x630000, 0x63ffff) AM_READ(MRA32_RAM) /* Pivot ram */ - AM_RANGE(0xc00000, 0xc007ff) AM_READ(MRA32_RAM) /* Sound CPU shared ram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( f3_writemem, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(MWA32_ROM) - AM_RANGE(0x300000, 0x30007f) AM_WRITE(f3_sound_bankswitch_w) - AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x20000) AM_WRITE(MWA32_RAM) AM_BASE(&f3_ram) - AM_RANGE(0x440000, 0x447fff) AM_WRITE(f3_palette_24bit_w) AM_BASE(&paletteram32) - AM_RANGE(0x4a0000, 0x4a001f) AM_WRITE(f3_control_w) - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(MWA32_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) - AM_RANGE(0x610000, 0x61bfff) AM_WRITE(f3_pf_data_w) AM_BASE(&f3_pf_data) - AM_RANGE(0x61c000, 0x61dfff) AM_WRITE(f3_videoram_w) AM_BASE(&videoram32) - AM_RANGE(0x61e000, 0x61ffff) AM_WRITE(f3_vram_w) AM_BASE(&f3_vram) - AM_RANGE(0x620000, 0x62ffff) AM_WRITE(f3_lineram_w) AM_BASE(&f3_line_ram) - AM_RANGE(0x630000, 0x63ffff) AM_WRITE(f3_pivot_w) AM_BASE(&f3_pivot_ram) - AM_RANGE(0x660000, 0x66000f) AM_WRITE(f3_control_0_w) - AM_RANGE(0x660010, 0x66001f) AM_WRITE(f3_control_1_w) - AM_RANGE(0xc00000, 0xc007ff) AM_WRITE(MWA32_RAM) AM_BASE(&f3_shared_ram) - AM_RANGE(0xc80000, 0xc80003) AM_WRITE(f3_sound_reset_0_w) - AM_RANGE(0xc80100, 0xc80103) AM_WRITE(f3_sound_reset_1_w) -ADDRESS_MAP_END - - - -/******************************************************************************/ - -INPUT_PORTS_START( f3 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* Only on some games */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) /* Only on some games */ - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Eprom data bit */ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Another service mode */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) -INPUT_PORTS_END - -INPUT_PORTS_START( kn ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* Service */ - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* Only on some games */ - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START4 ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* Eprom data bit */ - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) /* Another service mode */ - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 ) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) - PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -/******************************************************************************/ - -static const gfx_layout charlayout = -{ - 8,8, - 256, - 4, - { 0,1,2,3 }, -#ifdef LSB_FIRST - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4 }, -#else - { 7*4, 6*4, 5*4, 4*4, 3*4, 2*4, 1*4, 0*4 }, -#endif - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout pivotlayout = -{ - 8,8, - 2048, - 4, - { 0,1,2,3 }, -#ifdef LSB_FIRST - { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4 }, -#else - { 7*4, 6*4, 5*4, 4*4, 3*4, 2*4, 1*4, 0*4 }, -#endif - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 -}; - -static const gfx_layout spriteram_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, - { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+1, 0, 1, 2, 3 }, - { - 4, 0, 12, 8, - 16+4, 16+0, 16+12, 16+8, - 32+4, 32+0, 32+12, 32+8, - 48+4, 48+0, 48+12, 48+8 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout tile_layout = -{ - 16,16, - RGN_FRAC(1,2), - 6, - { RGN_FRAC(1,2)+2, RGN_FRAC(1,2)+3, 0, 1, 2, 3 }, - { - 4, 0, 16+4, 16+0, - 8+4, 8+0, 24+4, 24+0, - 32+4, 32+0, 48+4, 48+0, - 40+4, 40+0, 56+4, 56+0, - }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode gfxdecodeinfo[] = -{ - { 0, 0x000000, &charlayout, 0, 64 }, /* Dynamically modified */ - { REGION_GFX2, 0x000000, &tile_layout, 0, 512 }, /* Tiles area */ - { REGION_GFX1, 0x000000, &spriteram_layout, 4096, 256 }, /* Sprites area */ - { 0, 0x000000, &pivotlayout, 0, 64 }, /* Dynamically modified */ - { -1 } /* end of array */ -}; - -/******************************************************************************/ - -static void f3_interrupt3(int x) -{ - cpunum_set_input_line(0, 3, HOLD_LINE); // some signal from video hardware? -} - -static INTERRUPT_GEN( f3_interrupt2 ) -{ - cpunum_set_input_line(0, 2, HOLD_LINE); // vblank - mame_timer_set( MAME_TIME_IN_CYCLES(10000,0), 0, f3_interrupt3); -} - -static MACHINE_RESET( f3 ) -{ - taito_f3_soundsystem_reset(); - cpunum_set_input_line(1, INPUT_LINE_RESET, ASSERT_LINE); - - f3_68681_reset(); -} - - -NVRAM_HANDLER( taito_f3 ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - static const UINT8 recalh_eeprom[128] = { - 0x85,0x54,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf3,0x35, - 0x00,0x01,0x86,0xa0,0x00,0x13,0x04,0x13,0x00,0x00,0xc3,0x50,0x00,0x19,0x00,0x0a, - 0x00,0x00,0x4e,0x20,0x00,0x03,0x18,0x0d,0x00,0x00,0x27,0x10,0x00,0x05,0x14,0x18, - 0x00,0x00,0x13,0x88,0x00,0x00,0x12,0x27,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff - }; - - // RecalH does not initialise it's eeprom on first boot, so we provide one. - EEPROM_init(&eeprom_interface_93C46); - if (file) - EEPROM_load(file); - else if (f3_game==RECALH) - EEPROM_set_data(recalh_eeprom,128); - } -} - -static MACHINE_START(f3) -{ - state_save_register_global_array(coin_word); - return 0; -} - -static MACHINE_DRIVER_START( f3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68EC020, 16000000) - MDRV_CPU_PROGRAM_MAP(f3_readmem,f3_writemem) - MDRV_CPU_VBLANK_INT(f3_interrupt2,1) - - TAITO_F3_SOUND_SYSTEM_CPU(16000000) - - MDRV_SCREEN_REFRESH_RATE(58.97) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(624) /* 58.97 Hz, 624us vblank time */) - - MDRV_MACHINE_START(f3) - MDRV_MACHINE_RESET(f3) - MDRV_NVRAM_HANDLER(taito_f3) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8+48*2, 32*8) - MDRV_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+232-1) - MDRV_GFXDECODE(gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192) - - MDRV_VIDEO_START(f3) - MDRV_VIDEO_EOF(f3) - MDRV_VIDEO_UPDATE(f3) - - /* sound hardware */ - TAITO_F3_SOUND_SYSTEM_ES5505(30476100/2) -MACHINE_DRIVER_END - -/* These games reprogram the video output registers to display different scanlines, - we can't change our screen display at runtime, so we do it here instead. None - of the games change the registers during the game (to do so would probably require - monitor recalibration.) -*/ -static MACHINE_DRIVER_START( f3_224a ) - MDRV_IMPORT_FROM(f3) - MDRV_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( f3_224b ) - MDRV_IMPORT_FROM(f3) - MDRV_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 32, 32+224-1) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( f3_224c ) - MDRV_IMPORT_FROM(f3) - MDRV_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1) -MACHINE_DRIVER_END - -/******************************************************************************/ - -ROM_START( ringrage ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) - ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) - ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) - ROM_LOAD32_BYTE("d21-25.34", 0x000003, 0x40000, CRC(aeff6e19) SHA1(7fd8f64f0a52dfe369a3709af8c043286b5b6fdf) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) - ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) - ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( ringragu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) - ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) - ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) - ROM_LOAD32_BYTE("d21-24.34", 0x000003, 0x40000, CRC(404dee67) SHA1(1e46d52d72b6cbe5e8af9f0f8e8b1acf9c6feb26) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) - ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) - ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( ringragj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d21-23.40", 0x000000, 0x40000, CRC(14e9ed65) SHA1(956db484375a43bcdf5a6a104e3c7d7ef5baaa1b) ) - ROM_LOAD32_BYTE("d21-22.38", 0x000001, 0x40000, CRC(6f8b65b0) SHA1(a4f786b72068c6c9c1b23df67029eb0e2a982789) ) - ROM_LOAD32_BYTE("d21-21.36", 0x000002, 0x40000, CRC(bf7234bc) SHA1(781b8f850275537e1ae2dae18a4554a1283cb432) ) - ROM_LOAD32_BYTE("d21-20.34", 0x000003, 0x40000, CRC(a8eb68a4) SHA1(040238fad0d17cac21b144b0fcab1774d2924da9) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("d21-02.66", 0x000000, 0x200000, CRC(facd3a02) SHA1(360c6e65d01dd2c33495ba928ef9986f754b3694) ) - ROM_LOAD16_BYTE("d21-03.67", 0x000001, 0x200000, CRC(6f653e68) SHA1(840905f012c37d58160cc554c036ad25218ce3e6) ) - ROM_LOAD ("d21-04.68", 0x600000, 0x200000, CRC(9dcdceca) SHA1(e12bab5307ebe4c3b5f9284c91f3bf7ba4c8e9bc) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("d21-06.49", 0x000000, 0x080000, CRC(92d4a720) SHA1(81dc58c58d5f4f20ceeb5d6b90491f1efcbc67d3) ) - ROM_LOAD16_BYTE("d21-07.50", 0x000001, 0x080000, CRC(6da696e9) SHA1(74332090b0de4193a669cd5242fd655e7b90f772) ) - ROM_LOAD ("d21-08.51", 0x180000, 0x080000, CRC(a0d95be9) SHA1(1746097e827ac10906f012c5c4f93c388a30f4b3) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d21-18.5", 0x100000, 0x20000, CRC(133b55d0) SHA1(feb5c9d0b1adcae3b16eb206c8ac4e73fd88bef4) ) - ROM_LOAD16_BYTE("d21-19.6", 0x100001, 0x20000, CRC(1f98908f) SHA1(972c8f7e4e417831466714efd0b4cadca1f3e8e5) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d21-01.17", 0x000000, 0x200000, CRC(1fb6f07d) SHA1(a7d21d4b0b0b141c4dbe66554e5362e2c8876067) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d21-05.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( arabianm ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d29-23.rom", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) - ROM_LOAD32_BYTE("d29-22.rom", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) - ROM_LOAD32_BYTE("d29-21.rom", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) - ROM_LOAD32_BYTE("d29-25.rom", 0x000003, 0x40000, CRC(b9b652ed) SHA1(19cceef87884adeb03e5e330159541a1e503a7f2) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d29-03.rom", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) - ROM_LOAD16_BYTE("d29-04.rom", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.rom", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.rom", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.rom", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.rom", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d29-18.rom", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) - ROM_LOAD16_BYTE("d29-19.rom", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d29-01.rom", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d29-02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- - - ROM_REGION( 0x1200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "palce20v8h.1", 0x0000, 0x0157, CRC(5dd5c8f9) SHA1(5e6153d9e08985b2326dfd6d73f7b90136a7a4b1) ) - ROM_LOAD( "pal20l8b.2", 0x0200, 0x0144, CRC(c91437e2) SHA1(5bd6fb57fd7e0ff957a6ef9509b8f2e35a8ca29a) ) - ROM_LOAD( "palce20v8h.3", 0x0400, 0x0157, CRC(74d61d36) SHA1(c34d8b2d227f69c167d1516dea53e4bcb76491d1) ) - ROM_LOAD( "palce16v8h.11", 0x0600, 0x0117, CRC(51088324) SHA1(b985835b92c9d1e1dae6ae7cba9fa83c4db58bbb) ) - ROM_LOAD( "pal16l8b.22", 0x0800, 0x0104, CRC(3e01e854) SHA1(72f48982673ac8337dac3358b7a79e45c60b9601) ) - ROM_LOAD( "palce16v8h.31", 0x0a00, 0x0117, CRC(e0789727) SHA1(74add02cd194741de5ca6e36a99f9dd3e756fbdf) ) - ROM_LOAD( "pal16l8b.62", 0x0c00, 0x0104, CRC(7093e2f3) SHA1(62bb0085ed93cc8a5fb3a1b08ce9c8071ebda657) ) - ROM_LOAD( "palce20v8h.69", 0x0e00, 0x0157, CRC(25d205d5) SHA1(8859fd498e4d84a55424899d23db470be217eaba) ) - ROM_LOAD( "pal20l8b.70", 0x1000, 0x0144, CRC(92b5b97c) SHA1(653ab0467f71d93eceb8143b124cdedaf1ede750) ) -ROM_END - -ROM_START( arabiamj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d29-23.rom", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) - ROM_LOAD32_BYTE("d29-22.rom", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) - ROM_LOAD32_BYTE("d29-21.rom", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) - ROM_LOAD32_BYTE("d29-20.34", 0x000003, 0x40000, CRC(57b833c1) SHA1(69beff431e400db17ca1983a7a4d6684a1ea701c) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d29-03.rom", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) - ROM_LOAD16_BYTE("d29-04.rom", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.rom", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.rom", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.rom", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.rom", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d29-18.rom", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) - ROM_LOAD16_BYTE("d29-19.rom", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d29-01.rom", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d29-02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- - - ROM_REGION( 0x1200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "palce20v8h.1", 0x0000, 0x0157, CRC(5dd5c8f9) SHA1(5e6153d9e08985b2326dfd6d73f7b90136a7a4b1) ) - ROM_LOAD( "pal20l8b.2", 0x0200, 0x0144, CRC(c91437e2) SHA1(5bd6fb57fd7e0ff957a6ef9509b8f2e35a8ca29a) ) - ROM_LOAD( "palce20v8h.3", 0x0400, 0x0157, CRC(74d61d36) SHA1(c34d8b2d227f69c167d1516dea53e4bcb76491d1) ) - ROM_LOAD( "palce16v8h.11", 0x0600, 0x0117, CRC(51088324) SHA1(b985835b92c9d1e1dae6ae7cba9fa83c4db58bbb) ) - ROM_LOAD( "pal16l8b.22", 0x0800, 0x0104, CRC(3e01e854) SHA1(72f48982673ac8337dac3358b7a79e45c60b9601) ) - ROM_LOAD( "palce16v8h.31", 0x0a00, 0x0117, CRC(e0789727) SHA1(74add02cd194741de5ca6e36a99f9dd3e756fbdf) ) - ROM_LOAD( "pal16l8b.62", 0x0c00, 0x0104, CRC(7093e2f3) SHA1(62bb0085ed93cc8a5fb3a1b08ce9c8071ebda657) ) - ROM_LOAD( "palce20v8h.69", 0x0e00, 0x0157, CRC(25d205d5) SHA1(8859fd498e4d84a55424899d23db470be217eaba) ) - ROM_LOAD( "pal20l8b.70", 0x1000, 0x0144, CRC(92b5b97c) SHA1(653ab0467f71d93eceb8143b124cdedaf1ede750) ) -ROM_END - -ROM_START( arabiamu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d29-23.rom", 0x000000, 0x40000, CRC(89a0c706) SHA1(d0df02be2b63566ec776bb13947f975062766a01) ) - ROM_LOAD32_BYTE("d29-22.rom", 0x000001, 0x40000, CRC(4afc22a4) SHA1(9579d134a1e4b0c86af9b41d136acfe6cc7f6624) ) - ROM_LOAD32_BYTE("d29-21.rom", 0x000002, 0x40000, CRC(ac32eb38) SHA1(19d8d965497e41a7a2f490a197322da7fd1fa40a) ) - ROM_LOAD32_BYTE("d29-24.bin", 0x000003, 0x40000, CRC(ceb1627b) SHA1(c705ed956fa80ad77c53e8e2b9d27020255578bd) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d29-03.rom", 0x000000, 0x100000, CRC(aeaff456) SHA1(e70d0089e69d33d213be8195c31891f38fbcb53a) ) - ROM_LOAD16_BYTE("d29-04.rom", 0x000001, 0x100000, CRC(01711cfe) SHA1(26da4cc9dcb8d38bdf8c93015f77e58ffc9d1ba9) ) - ROM_LOAD ("d29-05.rom", 0x300000, 0x100000, CRC(9b5f7a17) SHA1(89d9faedc7b55df6237f2c2ebb43de7de685cb66) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d29-06.rom", 0x000000, 0x080000, CRC(eea07bf3) SHA1(7860a2c0c592af000b56e59bd39d67b086fe3606) ) - ROM_LOAD16_BYTE("d29-07.rom", 0x000001, 0x080000, CRC(db3c094d) SHA1(5b60f0fa1054bf93ce51d310376b1abdb3022541) ) - ROM_LOAD ("d29-08.rom", 0x180000, 0x080000, CRC(d7562851) SHA1(91d86e75ba7a590ca298b932b4cf8fa9228f115e) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d29-18.rom", 0x100000, 0x20000, CRC(d97780df) SHA1(d0f9d2fd7ce13f620bb44083bf012f67dda4b10b) ) - ROM_LOAD16_BYTE("d29-19.rom", 0x100001, 0x20000, CRC(b1ad365c) SHA1(1cd26d8feaaa06b50dfee32e9b7950b8ee92ac55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d29-01.rom", 0x000000, 0x200000, CRC(545ac4b3) SHA1(f89513fca8a03cab11160aa1f0a9c3adbc8bda08) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d29-02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- - - ROM_REGION( 0x1200, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "palce20v8h.1", 0x0000, 0x0157, CRC(5dd5c8f9) SHA1(5e6153d9e08985b2326dfd6d73f7b90136a7a4b1) ) - ROM_LOAD( "pal20l8b.2", 0x0200, 0x0144, CRC(c91437e2) SHA1(5bd6fb57fd7e0ff957a6ef9509b8f2e35a8ca29a) ) - ROM_LOAD( "palce20v8h.3", 0x0400, 0x0157, CRC(74d61d36) SHA1(c34d8b2d227f69c167d1516dea53e4bcb76491d1) ) - ROM_LOAD( "palce16v8h.11", 0x0600, 0x0117, CRC(51088324) SHA1(b985835b92c9d1e1dae6ae7cba9fa83c4db58bbb) ) - ROM_LOAD( "pal16l8b.22", 0x0800, 0x0104, CRC(3e01e854) SHA1(72f48982673ac8337dac3358b7a79e45c60b9601) ) - ROM_LOAD( "palce16v8h.31", 0x0a00, 0x0117, CRC(e0789727) SHA1(74add02cd194741de5ca6e36a99f9dd3e756fbdf) ) - ROM_LOAD( "pal16l8b.62", 0x0c00, 0x0104, CRC(7093e2f3) SHA1(62bb0085ed93cc8a5fb3a1b08ce9c8071ebda657) ) - ROM_LOAD( "palce20v8h.69", 0x0e00, 0x0157, CRC(25d205d5) SHA1(8859fd498e4d84a55424899d23db470be217eaba) ) - ROM_LOAD( "pal20l8b.70", 0x1000, 0x0144, CRC(92b5b97c) SHA1(653ab0467f71d93eceb8143b124cdedaf1ede750) ) -ROM_END - -ROM_START( ridingf ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) - ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) - ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) - ROM_LOAD32_BYTE("d34_14.34", 0x000003, 0x40000, CRC(e000198e) SHA1(3c9fdd40ade7b02021d23b7ce63a28d80bb6e8e0) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) - ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) - ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( ridefgtj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) - ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) - ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) - ROM_LOAD32_BYTE("d34-09.34", 0x000003, 0x40000, CRC(0e0e78a2) SHA1(4c8d0a5d6b8c77be34fd7b9c4a2df4022e74443a) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) - ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) - ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( ridefgtu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d34-12.40", 0x000000, 0x40000, CRC(e67e69d4) SHA1(9960629a7576f6a1d8a0e17c1bfc202ceee9e824) ) - ROM_LOAD32_BYTE("d34-11.38", 0x000001, 0x40000, CRC(7d240a88) SHA1(3410d3f66e868f2696dbd95adbbd393596d34351) ) - ROM_LOAD32_BYTE("d34-10.36", 0x000002, 0x40000, CRC(8aa3f4ac) SHA1(ba3c1274dcaccf4ba97ff224cb453eb1ead510ed) ) - ROM_LOAD32_BYTE("d34_13.34", 0x000003, 0x40000, CRC(97072918) SHA1(7ae96fb7a07b7192c39ec496e1193c1cbfbbc770) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d34-01.66", 0x000000, 0x200000, CRC(7974e6aa) SHA1(f3f697d0e2f52011046aa2db2df25a4b55a631d5) ) - ROM_LOAD16_BYTE("d34-02.67", 0x000001, 0x200000, CRC(f4422370) SHA1(27ba051e0dc27b39652ff1d940a2dd29965c6528) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d34-05.49", 0x000000, 0x080000, CRC(72e3ee4b) SHA1(2b69487338c18ced7a2ac4f280e8e22aa7209eb3) ) - ROM_LOAD16_BYTE("d34-06.50", 0x000001, 0x080000, CRC(edc9b9f3) SHA1(c57bec1c8882d95388c3fae7cb5a321bdb202737) ) - ROM_FILL ( 0x100000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d34-07.5", 0x100000, 0x20000, CRC(67239e2b) SHA1(8e0268fab53d26cde5c1928326c4787533dc6ffe) ) - ROM_LOAD16_BYTE("d34-08.6", 0x100001, 0x20000, CRC(2cf20323) SHA1(b2bbac3714ecfd75506ae000c7eec603dfe3e13d) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d34-03.17", 0x000000, 0x200000, CRC(e534ef74) SHA1(532d00e927d3704e7557abd59e35de8b7661c8fa) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d34-04.18", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( gseeker ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) - ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) - ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) - ROM_LOAD32_BYTE("d40_14.rom", 0x000003, 0x40000, CRC(d9a76bd9) SHA1(8edaf114c1342b33fd518320a181743d1dd324c1) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) - ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) - ROM_CONTINUE(0,0x80000) - ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) - ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) - /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) - ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( gseekerj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) - ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) - ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) - ROM_LOAD32_BYTE("d40-09.34", 0x000003, 0x40000, CRC(37a90af5) SHA1(1f3401148375c9ca638ca6db6098ea4acf7d63a6) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) - ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) - ROM_CONTINUE(0,0x80000) - ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) - ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) - /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) - ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( gseekeru ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d40_12.rom", 0x000000, 0x40000, CRC(884055fb) SHA1(a91c3dcd635a3e22fbec94c9fc46d3c29fde5e71) ) - ROM_LOAD32_BYTE("d40_11.rom", 0x000001, 0x40000, CRC(85e701d2) SHA1(da0bc34a2c64d2db2fe143ad5a77bf667de5b015) ) - ROM_LOAD32_BYTE("d40_10.rom", 0x000002, 0x40000, CRC(1e659ac5) SHA1(cd435d361c4353b361ef975f208d81369d5d079f) ) - ROM_LOAD32_BYTE("d40-13.bin", 0x000003, 0x40000, CRC(aea05b4f) SHA1(4be054ebec49d694a7a3ee9bc66c22c46126ea4f) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d40_03.rom", 0x000000, 0x100000, CRC(bcd70efc) SHA1(c65f934022d84e29cfd396cf70b6c1afdf90500b) ) - ROM_LOAD16_BYTE("d40_04.rom", 0x100001, 0x080000, CRC(cd2ac666) SHA1(abf09979f1fe8575323b95b95688628ce4fc2350) ) - ROM_CONTINUE(0,0x80000) - ROM_LOAD16_BYTE("d40_15.rom", 0x000000, 0x080000, CRC(50555125) SHA1(587cdfb2e027c1d96ecc46d2612956deca5fd36f) ) - ROM_LOAD16_BYTE("d40_16.rom", 0x000001, 0x080000, CRC(3f9bbe1e) SHA1(6d9b2d2d893257ad096c276eff4077f60a81921f) ) - /* Taito manufactured mask roms 3 + 4 wrong, and later added 15 + 16 as a patch */ - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d40_05.rom", 0x000000, 0x100000, CRC(be6eec8f) SHA1(725e5e09f6ee60bd4c38fa223c4dea202c56f75f) ) - ROM_LOAD16_BYTE("d40_06.rom", 0x000001, 0x100000, CRC(a822abe4) SHA1(1a0dd9dcb8e24daab6eb1661307ef0e10f7e4d4e) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d40_07.rom", 0x100000, 0x20000, CRC(7e9b26c2) SHA1(d88ad39a9d70b4a5bd3f83e0d4d0725f659f1d2a) ) - ROM_LOAD16_BYTE("d40_08.rom", 0x100001, 0x20000, CRC(9c926a28) SHA1(9d9ee75eb895edc381c3ab4df5af941f84cd2073) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d40_01.rom", 0x000000, 0x200000, CRC(ee312e95) SHA1(885553950c2b2195d664639bf7e0d1ffa3e8346a) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d40_02.rom", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( commandw ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("cw_mpr3.bin", 0x000000, 0x40000, CRC(636944fc) SHA1(47deffed68ac179f27bfdb21ed62d6555a4b8988) ) - ROM_LOAD32_BYTE("cw_mpr2.bin", 0x000001, 0x40000, CRC(1151a42b) SHA1(e938913ecd3211a8fb4041ec5a5694cd9df9be69) ) - ROM_LOAD32_BYTE("cw_mpr1.bin", 0x000002, 0x40000, CRC(93669389) SHA1(11336a15900c4f419f3af5c423fbc502f4db616b) ) - ROM_LOAD32_BYTE("cw_mpr0.bin", 0x000003, 0x40000, CRC(0468df52) SHA1(0da923aa779b541e700c5249272e9c59ab59e863) ) - - ROM_REGION(0x1000000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("cw_objl0.bin", 0x000000, 0x200000, CRC(9822102e) SHA1(c4e80ab4d54c39676ee6e557a03828250077765b) ) - ROM_LOAD16_BYTE("cw_objm0.bin", 0x000001, 0x200000, CRC(f7687684) SHA1(0bed6362dee96083e2e8b6448c9f7bfa5166bfb7) ) - ROM_LOAD16_BYTE("cw_objl1.bin", 0x400000, 0x200000, CRC(ca3ad7f6) SHA1(849fbb89f0b132c83db5b7d699078da3cc10baf6) ) - ROM_LOAD16_BYTE("cw_objm1.bin", 0x400001, 0x200000, CRC(504b1bf5) SHA1(7b8ff7834907a9cdab5416bf713487bf71b9070e) ) - ROM_LOAD ("cw_objh0.bin", 0xc00000, 0x200000, CRC(83d7e0ae) SHA1(774a07d0cadc2c8f5ec155270bf927e4462654e2) ) - ROM_LOAD ("cw_objh1.bin", 0xe00000, 0x200000, CRC(324f5832) SHA1(ff91243c5d09c4c46904640fe278a7485db70577) ) - ROM_FILL ( 0x800000, 0x400000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("cw_scr_l.bin", 0x000000, 0x100000, CRC(4d202323) SHA1(0150bcba6d2bf2c3cde88bb519f57f3b58314244) ) - ROM_LOAD16_BYTE("cw_scr_m.bin", 0x000001, 0x100000, CRC(537b1c7d) SHA1(bc61aa61891366cbea4b8ecb820d93e28d01f8d2) ) - ROM_LOAD ("cw_scr_h.bin", 0x300000, 0x100000, CRC(001f85dd) SHA1(2532377c0b54bc964ea4e74911ff62fea2d53975) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("cw_spr1.bin", 0x100000, 0x20000, CRC(c8f81c25) SHA1(1c914053826587cc2d5d2c0220a3e29a641fe6f9) ) - ROM_LOAD16_BYTE("cw_spr0.bin", 0x100001, 0x20000, CRC(2aaa9dfb) SHA1(6d4c36ff54a84035c0ddf40e4f3eafd2adc15a5e) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("cw_pcm_0.bin", 0x000000, 0x200000, CRC(a1e26629) SHA1(0c5899a767f66f67a5d59b8d287d74b54f8c3727) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("cw_pcm_1.bin", 0x400000, 0x200000, CRC(39fc6cf4) SHA1(d43ef294af62765bfec089fac1d67ad81e1b06da) ) // CC -- -std- -ROM_END - -ROM_START( cupfinal ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d49-13.bin", 0x000000, 0x20000, CRC(ccee5e73) SHA1(5273e3b9bc6fc4fa0c63d9c62aa6b638e9780c24) ) - ROM_LOAD32_BYTE("d49-14.bin", 0x000001, 0x20000, CRC(2323bf2e) SHA1(e43f9eac6887e39d5c0f39264aa914a5d5f84cca) ) - ROM_LOAD32_BYTE("d49-16.bin", 0x000002, 0x20000, CRC(8e73f739) SHA1(620a4d52abc00908cd1393babdc600b929019a51) ) - ROM_LOAD32_BYTE("d49-20.bin", 0x000003, 0x20000, CRC(1e9c392c) SHA1(4ed9390b84c23809215a42c930ab0451531cfef1) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d49-01", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) - ROM_LOAD16_BYTE("d49-02", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) - ROM_LOAD16_BYTE("d49-06", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) - ROM_LOAD16_BYTE("d49-07", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d49-09", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d49-17", 0x100000, 0x40000, CRC(49942466) SHA1(5e355a079b81f129919c7599c0cc09a9e193ea41) ) - ROM_LOAD16_BYTE("d49-18", 0x100001, 0x40000, CRC(9d75b7d4) SHA1(1dc823327294f5c81b78f151fcd3d0550c208697) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d49-04", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d49-05", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( hthero93 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d49-13.bin", 0x000000, 0x20000, CRC(ccee5e73) SHA1(5273e3b9bc6fc4fa0c63d9c62aa6b638e9780c24) ) - ROM_LOAD32_BYTE("d49-14.bin", 0x000001, 0x20000, CRC(2323bf2e) SHA1(e43f9eac6887e39d5c0f39264aa914a5d5f84cca) ) - ROM_LOAD32_BYTE("d49-16.bin", 0x000002, 0x20000, CRC(8e73f739) SHA1(620a4d52abc00908cd1393babdc600b929019a51) ) - ROM_LOAD32_BYTE("d49-19.35", 0x000003, 0x20000, CRC(f0925800) SHA1(e8d91b216a0409080b77cc1e832b7d15c66a5eef) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d49-01", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) - ROM_LOAD16_BYTE("d49-02", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) - ROM_LOAD16_BYTE("d49-06", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) - ROM_LOAD16_BYTE("d49-07", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d49-09", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d49-17", 0x100000, 0x40000, CRC(49942466) SHA1(5e355a079b81f129919c7599c0cc09a9e193ea41) ) - ROM_LOAD16_BYTE("d49-18", 0x100001, 0x40000, CRC(9d75b7d4) SHA1(1dc823327294f5c81b78f151fcd3d0550c208697) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d49-04", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d49-05", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( trstar ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) - ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) - ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) - ROM_LOAD32_BYTE("d53-20-1.35", 0x000003, 0x40000, CRC(4de1e287) SHA1(2b592ecbf8d81aca49844ed81c351818409f596f) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( trstarj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) - ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) - ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) - ROM_LOAD32_BYTE("d53-17-1.35", 0x000003, 0x40000, CRC(a3ef83ab) SHA1(c99170047e678a7acde1bf64f903f240e9384b94) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( prmtmfgt ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15-1.24", 0x000000, 0x40000, CRC(098bba94) SHA1(b77990213ac790d15bdc0dc1e8f7adf04fe5e952) ) - ROM_LOAD32_BYTE("d53-16-1.26", 0x000001, 0x40000, CRC(4fa8b15c) SHA1(821c21e1b958614ba6636330583b3661f9e0cebb) ) - ROM_LOAD32_BYTE("d53-18-1.37", 0x000002, 0x40000, CRC(aa71cfcc) SHA1(ba62c01255cdfe0821d1b72b7f11d6e1f88b09d7) ) - ROM_LOAD32_BYTE("d53-19-1.35", 0x000003, 0x40000, CRC(3ae6d211) SHA1(f3e27e0169686633d8d8f2cbac05375aa94cfde9) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( trstaro ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) - ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) - ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) - ROM_LOAD32_BYTE("d53-20.35",0x000003, 0x40000, CRC(77e1f267) SHA1(763ccab234c45ea00908198b0aef3ba63ddfb8f8) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( trstaroj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) - ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) - ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) - ROM_LOAD32_BYTE("d53-17.35", 0x000003, 0x40000, CRC(99ef934b) SHA1(a04a27f67b2db87549f4dc09cf9d00f3480351a6) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( prmtmfgo ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d53-15.24", 0x000000, 0x40000, CRC(f24de51b) SHA1(d45d1b60901995edf0721eae7eb8c6e829f47d8d) ) - ROM_LOAD32_BYTE("d53-16.26", 0x000001, 0x40000, CRC(ffc84429) SHA1(23354c1a65853c06e5c959957a92b700b1418fd4) ) - ROM_LOAD32_BYTE("d53-18.37", 0x000002, 0x40000, CRC(ea2d6e13) SHA1(96461b73de745c4b0ac99267931106e1d5dcb664) ) - ROM_LOAD32_BYTE("d53-19.35", 0x000003, 0x40000, CRC(00e6c2f1) SHA1(cf4b9ee35be8138abfaa354d01184efbfe83cea2) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d53-03.45", 0x000000, 0x200000, CRC(91b66145) SHA1(df5bc2e544ce80a98db1fe28b4a8af8c3905c7eb) ) - ROM_LOAD16_BYTE("d53-04.46", 0x000001, 0x200000, CRC(ac3a5e80) SHA1(8a6ea8096099b465d63d56abc79ed77304fd4fa4) ) - ROM_LOAD16_BYTE("d53-06.64", 0x400000, 0x100000, CRC(f4bac410) SHA1(569bcd81d596b24add5db4a145ae04750a1bb086) ) - ROM_LOAD16_BYTE("d53-07.65", 0x400001, 0x100000, CRC(2f4773c3) SHA1(17cef13de0836923743b336cc5a64f7452629486) ) - ROM_LOAD ("d53-05.47", 0x900000, 0x200000, CRC(b9b68b15) SHA1(c3783b09b22954a959188b80e537fa84d827ac47) ) - ROM_LOAD ("d53-08.66", 0xb00000, 0x100000, CRC(ad13a1ee) SHA1(341112055b6bee33072c262f4ea7c4d0970888a6) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d53-09.48", 0x000000, 0x100000, CRC(690554d3) SHA1(113afd8fe7b77a30c2e3c5baca3f19d74902625b) ) - ROM_LOAD16_BYTE("d53-10.49", 0x000001, 0x100000, CRC(0ec05dc5) SHA1(781a6362ef963417fb6383a62dcc70d6f5b3131b) ) - ROM_LOAD ("d53-11.50", 0x300000, 0x100000, CRC(39c0a546) SHA1(53f03586f6586032fc3b4f90e987c1128edbb0a7) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d53-13.10", 0x100000, 0x20000, CRC(877f0361) SHA1(eda58d71fb06f739bee1451d7aa7e7e6dee10e03) ) - ROM_LOAD16_BYTE("d53-14.23", 0x100001, 0x20000, CRC(a8664867) SHA1(dffddca469019abac33a1abe41c3fe83fbf553ce) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d53-01.2", 0x000000, 0x200000, CRC(28fd2d9b) SHA1(e08037795952a28e7a5e90437f1b9675aadfa136) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d53-02.3", 0x400000, 0x200000, CRC(8bd4367a) SHA1(9b274fe321c4faedb7d44f7998ae2e37c6899688) ) // CC CD -std- -ROM_END - -ROM_START( gunlock ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d66-18.24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) - ROM_LOAD32_BYTE("d66-19.26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) - ROM_LOAD32_BYTE("d66-21.37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) - ROM_LOAD32_BYTE("d66-24.35", 0x000003, 0x40000, CRC(97816378) SHA1(b22cb442b663c7a10fbc292583cd788f66f10a25) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d66-03.rom", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) - ROM_LOAD16_BYTE("d66-04.rom", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.rom", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.rom", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.rom", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.rom", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("d66-23.rom", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) - ROM_LOAD16_BYTE("d66-22.rom", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d66-01.rom", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d66-02.rom", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- -ROM_END - -ROM_START( rayforce ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d66-18.24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) - ROM_LOAD32_BYTE("d66-19.26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) - ROM_LOAD32_BYTE("d66-21.37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) - ROM_LOAD32_BYTE("d66-25.35", 0x000003, 0x40000, CRC(e08653ee) SHA1(03ae4e457369a4b29cd7d52408e28725e41ee244) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d66-03.rom", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) - ROM_LOAD16_BYTE("d66-04.rom", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.rom", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.rom", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.rom", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.rom", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("d66-23.rom", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) - ROM_LOAD16_BYTE("d66-22.rom", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d66-01.rom", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d66-02.rom", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- -ROM_END - -ROM_START( rayforcj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d66-18.24", 0x000000, 0x40000, CRC(8418513e) SHA1(a071647268fad08802b88fb6d795612218b7ddef) ) - ROM_LOAD32_BYTE("d66-19.26", 0x000001, 0x40000, CRC(95731473) SHA1(ab79821cd6098a4db84ebc9a499c29b1525510a5) ) - ROM_LOAD32_BYTE("d66-21.37", 0x000002, 0x40000, CRC(bd0d60f2) SHA1(609ed2b04cb9efc4b370dcbdf22fd168318989be) ) - ROM_LOAD32_BYTE("d66-20.35", 0x000003, 0x40000, CRC(798f0254) SHA1(b070588053bddc3d0b0c2660192b0cb16bf8247f) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d66-03.rom", 0x000000, 0x100000, CRC(e7a4a491) SHA1(87837e8dd1c9a1db5e540b678233634bd52328f0) ) - ROM_LOAD16_BYTE("d66-04.rom", 0x000001, 0x100000, CRC(c1c7aaa7) SHA1(f929516cf50d82b2d1d1b4c49a0eb1dea819aae1) ) - ROM_LOAD ("d66-05.rom", 0x300000, 0x100000, CRC(a3cefe04) SHA1(dd4f47a814853f4512ce25c5f25121c53ee4ada1) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d66-06.rom", 0x000000, 0x100000, CRC(b3d8126d) SHA1(3cbb44f396973c36abdf3fdf391becb22bb6d661) ) - ROM_LOAD16_BYTE("d66-07.rom", 0x000001, 0x100000, CRC(a6da9be7) SHA1(b528505ab925db75acf31bfbed2035cbe36e7a74) ) - ROM_LOAD ("d66-08.rom", 0x300000, 0x100000, CRC(9959f30b) SHA1(64bf2bf995c283c00d968e3c078b824de4084d3d) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("d66-23.rom", 0x100000, 0x40000, CRC(57fb7c49) SHA1(f8709fd1e9ea7cee10ee2288d13339f675a7d3ae) ) - ROM_LOAD16_BYTE("d66-22.rom", 0x100001, 0x40000, CRC(83dd7f9b) SHA1(dae21f64232d3e268f22b5e9899e0b726fdc9a9f) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d66-01.rom", 0x000000, 0x200000, CRC(58c92efa) SHA1(bb207b35b8f9538362bb99a9ec8df206694f00ce) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d66-02.rom", 0x400000, 0x200000, CRC(dcdafaab) SHA1(c981c7e54a2a9aaa85bb758691858495d623b029) ) // CC CD -std- -ROM_END - -ROM_START( scfinals ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d68-01.20", 0x000000, 0x40000, CRC(cb951856) SHA1(c7b0418b957ed0feecc9dffe5a963bd22df0ac4e) ) - ROM_LOAD32_BYTE("d68-02.19", 0x000001, 0x40000, CRC(4f94413a) SHA1(b46a35ab0150d5d5e53149c53f11978fbfa28159) ) - ROM_LOAD32_BYTE("d68-04.18", 0x000002, 0x40000, CRC(4a4e4972) SHA1(5300380a57f70fe91c69f2b1e9d25253081e61da) ) - ROM_LOAD32_BYTE("d68-03.17", 0x000003, 0x40000, CRC(a40be699) SHA1(03101d2aef8e7c0c332a3c8c0a025024f6cfe580) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d49-01", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) - ROM_LOAD16_BYTE("d49-02", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) - ROM_LOAD16_BYTE("d49-06", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) - ROM_LOAD16_BYTE("d49-07", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d49-09", 0x000000, 0x080000, CRC(257ede01) SHA1(c36397d95706c5e68a7738c84829a51c5e8f5ef7) ) - ROM_LOAD16_BYTE("d49-10", 0x000001, 0x080000, CRC(f587b787) SHA1(22db4904c134756ddd0f753f197419d27e60a827) ) - ROM_LOAD ("d49-11", 0x180000, 0x080000, CRC(11318b26) SHA1(a7153f9f406d52189f59cbe58d65f88f4e2e6fcc) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d49-17.32", 0x100000, 0x40000, CRC(49942466) SHA1(5e355a079b81f129919c7599c0cc09a9e193ea41) ) - ROM_LOAD16_BYTE("d49-18.33", 0x100001, 0x40000, CRC(9d75b7d4) SHA1(1dc823327294f5c81b78f151fcd3d0550c208697) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V1: 2 banks - ROM_LOAD16_BYTE("d49-04", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d49-05", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( dungeonm ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) - ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) - ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) - ROM_LOAD32_BYTE("d69-22.bin", 0x000003, 0x80000, CRC(f99e175d) SHA1(8f5f4710d72faed978e68e6e36703f47e8bab06f) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) - ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) - ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) - ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) - ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- -ROM_END - -ROM_START( dungenmu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) - ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) - ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) - ROM_LOAD32_BYTE("d69-21.bin", 0x000003, 0x80000, CRC(c9d4e051) SHA1(7c7e76f0d0bca305ff6761aa509d344c2dac8e2e) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) - ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) - ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) - ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) - ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- -ROM_END - -ROM_START( lightbr ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d69-20.bin", 0x000000, 0x80000, CRC(33650fe4) SHA1(df8b775749b1f0f02d0df6141597cc49fb3ae227) ) - ROM_LOAD32_BYTE("d69-13.bin", 0x000001, 0x80000, CRC(dec2ec17) SHA1(8472a5aaea9e4e4fb5f7f4b5eda356b590d1541d) ) - ROM_LOAD32_BYTE("d69-15.bin", 0x000002, 0x80000, CRC(323e1955) SHA1(d76582d1ff5a9aa87a498fea3280bc3c25ee9ec0) ) - ROM_LOAD32_BYTE("d69-14.bin", 0x000003, 0x80000, CRC(990bf945) SHA1(797794d7afc1e6e98ce1bfb3de3c241a96a8fa01) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d69-06.bin", 0x000000, 0x200000, CRC(cb4aac81) SHA1(15d315c6b9695cc2fe07defc67c7a4fb26de1950) ) - ROM_LOAD16_BYTE("d69-07.bin", 0x000001, 0x200000, CRC(b749f984) SHA1(39fd662bdc42e812519181a640a83e29e300826a) ) - ROM_LOAD16_BYTE("d69-09.bin", 0x400000, 0x100000, CRC(a96c19b8) SHA1(7872b4dd9d51877bed709fec393413e41d6b954f) ) - ROM_LOAD16_BYTE("d69-10.bin", 0x400001, 0x100000, CRC(36aa80c6) SHA1(aeb5f7632810564426761b5798539bf4c4a0c64c) ) - ROM_LOAD ("d69-08.bin", 0x900000, 0x200000, CRC(5b68d7d8) SHA1(f2ee3dd7100a3c9d8f402fe36dae2bc66cb17be3) ) - ROM_LOAD ("d69-11.bin", 0xb00000, 0x100000, CRC(c11adf92) SHA1(ee9ce49a43b419c4f44ac1aea8d0a12d7b289244) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d69-03.bin", 0x000000, 0x200000, CRC(6999c86f) SHA1(8a91930edfc0b5d23e59f8c3b43131db6edb4d37) ) - ROM_LOAD16_BYTE("d69-04.bin", 0x000001, 0x200000, CRC(cc91dcb7) SHA1(97f510b1e1a3adf49efe82babdd7abce3756ce4b) ) - ROM_LOAD ("d69-05.bin", 0x600000, 0x200000, CRC(f9f5433c) SHA1(d3de66385d883c72967c44bc29983d7a79f665d1) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d69-18.bin", 0x100000, 0x20000, CRC(04600d7b) SHA1(666cfab09b61fd6e0bc4ff277018ebf1cda01b0e) ) - ROM_LOAD16_BYTE("d69-19.bin", 0x100001, 0x20000, CRC(1484e853) SHA1(4459c18ba005786483c652857e527c6093efb036) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d69-01.bin", 0x000000, 0x200000, CRC(9ac93ac2) SHA1(1c44f6ba95505f85b0c8a90395f09d2a49da3553) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d69-02.bin", 0x400000, 0x200000, CRC(dce28dd7) SHA1(eacfc98349b0608fc1a944c11f0483fb6caa4445) ) // CC CD -std- -ROM_END - -ROM_START( intcup94 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d78-07.20", 0x000000, 0x20000, CRC(8525d990) SHA1(b28aeb8727d615cae9eafd7710bf833a612ef7d4) ) - ROM_LOAD32_BYTE("d78-06.19", 0x000001, 0x20000, CRC(42db1d41) SHA1(daf617764b04cd24e76dfa95423213c2a3692068) ) - ROM_LOAD32_BYTE("d78-05.18", 0x000002, 0x20000, CRC(5f7fbbbc) SHA1(8936bcc4026b2819b8708911c9defe4436d070ad) ) - ROM_LOAD32_BYTE("d78-11.17", 0x000003, 0x20000, CRC(bb9d2987) SHA1(98bea0346702eefd9f6f1839b95932b9b8bca902) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) - ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) - ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) - ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) - ROM_LOAD16_BYTE("d78-02.45", 0x000001, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) - ROM_LOAD ("d78-03.43", 0x180000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) - ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( hthero94 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d78-07.20", 0x000000, 0x20000, CRC(8525d990) SHA1(b28aeb8727d615cae9eafd7710bf833a612ef7d4) ) - ROM_LOAD32_BYTE("d78-06.19", 0x000001, 0x20000, CRC(42db1d41) SHA1(daf617764b04cd24e76dfa95423213c2a3692068) ) - ROM_LOAD32_BYTE("d78-05.18", 0x000002, 0x20000, CRC(5f7fbbbc) SHA1(8936bcc4026b2819b8708911c9defe4436d070ad) ) - ROM_LOAD32_BYTE("d78-10.17", 0x000003, 0x20000, CRC(cc9a1911) SHA1(341b6c33b182e3a64a22f1dc43e9cf72c6aeea7b) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d49-01.12", 0x000000, 0x200000, CRC(1dc89f1c) SHA1(9597b1d8c9b447080ca9401aee83bb4a64bb8332) ) - ROM_LOAD16_BYTE("d49-02.8", 0x000001, 0x200000, CRC(1e4c374f) SHA1(512edc6a934578d0e7371410a041150d3b13aaad) ) - ROM_LOAD16_BYTE("d49-06.11", 0x400000, 0x100000, CRC(71ef4ee1) SHA1(1d7729dbc77f7201ff574e8aef65a55bd81c25a7) ) - ROM_LOAD16_BYTE("d49-07.7", 0x400001, 0x100000, CRC(e5655b8f) SHA1(2c21745370bfe9dbf0e95f7ce42ed34a162bff64) ) - ROM_LOAD ("d49-03.4", 0x900000, 0x200000, CRC(cf9a8727) SHA1(f21787fdcdd8be2009c2d481a9b2d7fc03ce782e) ) - ROM_LOAD ("d49-08.3", 0xb00000, 0x100000, CRC(7d3c6536) SHA1(289b4bf79ebd9cbdf64ab956784d226e6d546654) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d78-01.47", 0x000000, 0x080000, CRC(543f8967) SHA1(2efa935e7d0fd317bbbad2758a618d408a56317c) ) - ROM_LOAD16_BYTE("d78-02.45", 0x000001, 0x080000, CRC(e8289394) SHA1(b9957675f868f772943678b6a19fcc21dfd97a8d) ) - ROM_LOAD ("d78-03.43", 0x180000, 0x080000, CRC(a8bc36e5) SHA1(5777b9457292e8a9cbb4e8226ba939530ffab07c) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d78-08.32", 0x100000, 0x20000, CRC(a629d07c) SHA1(b2904e106633a3960ceb2bc58b600ea60034ff0b) ) - ROM_LOAD16_BYTE("d78-09.33", 0x100001, 0x20000, CRC(1f0efe01) SHA1(7bff748b9fcee170e430d90ee07eb9975d8fba59) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d49-04.38", 0x000000, 0x200000, CRC(44b365a9) SHA1(14c4a6b193a0069360406c74c500ba24f2a55b62) ) // C8 C9 CA CB - // half empty - ROM_LOAD16_BYTE("d49-05.41", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( recalh ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("rh_mpr3.bin", 0x000000, 0x80000, CRC(65202dd4) SHA1(8d5748d03868b127a7d727e00c1bce51a5bae129) ) - ROM_LOAD32_BYTE("rh_mpr2.bin", 0x000001, 0x80000, CRC(3eda66db) SHA1(6d726762404d85008d6bebe5a77cebe505b650fc) ) - ROM_LOAD32_BYTE("rh_mpr1.bin", 0x000002, 0x80000, CRC(536e74ca) SHA1(2a50bb2e93563273c4b0c0c59143893fe25d007e) ) - ROM_LOAD32_BYTE("rh_mpr0.bin", 0x000003, 0x80000, CRC(38025817) SHA1(fa4cf98cfca95c462b19b873a7660f7cec71cf56) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("rh_objl.bin", 0x000000, 0x100000, CRC(c1772b55) SHA1(f9a04b968c63e61fa8ca60d6f331f6df0d7dd10a) ) - ROM_LOAD16_BYTE("rh_objm.bin", 0x000001, 0x100000, CRC(ef87c0fd) SHA1(63e99f331d05a1ff4faf0ea94019393fe2117f54) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("rh_scrl.bin", 0x000000, 0x100000, CRC(1e3f6b79) SHA1(fef029def6393a13f4a638686a7ec7c13851a5c0) ) - ROM_LOAD16_BYTE("rh_scrm.bin", 0x000001, 0x100000, CRC(37200968) SHA1(4a8d5a17af7eb732f481bf174099845e8d8d6b87) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("rh_spr1.bin", 0x100000, 0x20000, CRC(504cbc1d) SHA1(35a775c1ebc8107c553e43b9d84eb735446c26fd) ) - ROM_LOAD16_BYTE("rh_spr0.bin", 0x100001, 0x20000, CRC(78fba467) SHA1(4586b061724be7ec413784b820c33cc0d6bbcd0c) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("rh_snd0.bin", 0x000000, 0x200000, CRC(386f5e1b) SHA1(d67d5f057c6db3092643f10ea10f977b1caa662f) ) // C8 CB CA C9 - // half empty - ROM_LOAD16_BYTE("rh_snd1.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std- -ROM_END - -ROM_START( kaiserkn ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) - ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) - ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) - ROM_LOAD32_BYTE("d84-29.17", 0x000003, 0x80000, CRC(9821f17a) SHA1(4a2c1ebeb1a1d3d756957956c883f8374aaf4f8d) ) - - ROM_REGION(0x1a00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) - ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) - ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) - ROM_LOAD16_BYTE("d84-07.rom", 0x0400001, 0x200000, CRC(54517a6b) SHA1(6e2c213c7ec1a3b78ad7e71db2326602557fd0f8) ) - ROM_LOAD16_BYTE("d84-09.rom", 0x0800000, 0x200000, CRC(faa78d98) SHA1(da3a2c5a45dd169743f113aa08e574f732e1f0fd) ) - ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) - ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) - ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) - ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF - // half empty - ROM_LOAD16_BYTE("d84-15.rom", 0xe00000, 0x100000, CRC(31ceb152) SHA1(d9d0bc631a6a726376f566a49605b50485ac7bf4) ) // D0 D1 -ROM_END - -ROM_START( kaiserkj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) - ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) - ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) - ROM_LOAD32_BYTE("d84-22.17", 0x000003, 0x80000, CRC(762f9056) SHA1(c39854d865210d05fe745493098ef5990327c56e) ) - - ROM_REGION(0x1a00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) - ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) - ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) - ROM_LOAD16_BYTE("d84-07.rom", 0x0400001, 0x200000, CRC(54517a6b) SHA1(6e2c213c7ec1a3b78ad7e71db2326602557fd0f8) ) - ROM_LOAD16_BYTE("d84-09.rom", 0x0800000, 0x200000, CRC(faa78d98) SHA1(da3a2c5a45dd169743f113aa08e574f732e1f0fd) ) - ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) - ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) - ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) - ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF - // half empty - ROM_LOAD16_BYTE("d84-15.rom", 0xe00000, 0x100000, CRC(31ceb152) SHA1(d9d0bc631a6a726376f566a49605b50485ac7bf4) ) // D0 D1 -ROM_END - -ROM_START( gblchmp ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d84-25.20", 0x000000, 0x80000, CRC(2840893f) SHA1(079dece4667b029189622476cc618b88e57243a6) ) - ROM_LOAD32_BYTE("d84-24.19", 0x000001, 0x80000, CRC(bf20c755) SHA1(9f6edfe9bb40051e8a93d06a391c993ed7288db6) ) - ROM_LOAD32_BYTE("d84-23.18", 0x000002, 0x80000, CRC(39f12a9b) SHA1(4b3fe9b8b0abb46feacd11ffb6b505568f892483) ) - ROM_LOAD32_BYTE("d84-28.17", 0x000003, 0x80000, CRC(ef26c1ec) SHA1(99440573704252b59148b3c30a006ce152b30ada) ) - - ROM_REGION(0x1a00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) - ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) - ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) - ROM_LOAD16_BYTE("d84-07.rom", 0x0400001, 0x200000, CRC(54517a6b) SHA1(6e2c213c7ec1a3b78ad7e71db2326602557fd0f8) ) - ROM_LOAD16_BYTE("d84-09.rom", 0x0800000, 0x200000, CRC(faa78d98) SHA1(da3a2c5a45dd169743f113aa08e574f732e1f0fd) ) - ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) - ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) - ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) - ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF - // half empty - ROM_LOAD16_BYTE("d84-15.rom", 0xe00000, 0x100000, CRC(31ceb152) SHA1(d9d0bc631a6a726376f566a49605b50485ac7bf4) ) // D0 D1 -ROM_END - -ROM_START( dankuga ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("dkg_mpr3.20", 0x000000, 0x80000, CRC(ee1531ca) SHA1(5a78f44906c77a3195cbb41d256292255275643f) ) - ROM_LOAD32_BYTE("dkg_mpr2.19", 0x000001, 0x80000, CRC(18a4748b) SHA1(31b912b532329d2cbd43df44f21e0923af7157d5) ) - ROM_LOAD32_BYTE("dkg_mpr1.18", 0x000002, 0x80000, CRC(97566f69) SHA1(2f1ae6b9a463f20beea1558278741ddfe3901a6d) ) - ROM_LOAD32_BYTE("dkg_mpr0.17", 0x000003, 0x80000, CRC(ad6ada07) SHA1(124db0cf8a5fbd99525633a2f783a0e1b281badf) ) - - ROM_REGION(0x1a00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d84-03.rom", 0x0000000, 0x200000, CRC(d786f552) SHA1(f73146892f714b5706d568fc8a135fddaa656570) ) - ROM_LOAD16_BYTE("d84-04.rom", 0x0000001, 0x200000, CRC(d1f32b5d) SHA1(35289cce64fdbb8d966dd1d5307b5393be5e7799) ) - ROM_LOAD16_BYTE("d84-06.rom", 0x0400000, 0x200000, CRC(fa924dab) SHA1(28a8c3cd701f8df0c53069bb576bb2a820f3a331) ) - ROM_LOAD16_BYTE("d84-07.rom", 0x0400001, 0x200000, CRC(54517a6b) SHA1(6e2c213c7ec1a3b78ad7e71db2326602557fd0f8) ) - ROM_LOAD16_BYTE("d84-09.rom", 0x0800000, 0x200000, CRC(faa78d98) SHA1(da3a2c5a45dd169743f113aa08e574f732e1f0fd) ) - ROM_LOAD16_BYTE("d84-10.rom", 0x0800001, 0x200000, CRC(b84b7320) SHA1(f5de0d6da50d8ed753607b51e46bc9a4572ef431) ) - ROM_LOAD16_BYTE("d84-19.rom", 0x0c00000, 0x080000, CRC(6ddf77e5) SHA1(a1323acaed37fce62a19e63a0800d9d1dc2cfff7) ) - ROM_LOAD16_BYTE("d84-20.rom", 0x0c00001, 0x080000, CRC(f85041e5) SHA1(6b2814514338f550d6aa14dbe39e848e8e64edee) ) - ROM_LOAD ("d84-05.rom", 0x1380000, 0x200000, CRC(31a3c75d) SHA1(1a16ccb6a0a03ab715e5b016ab3b1b2cd0f1ae41) ) - ROM_LOAD ("d84-08.rom", 0x1580000, 0x200000, CRC(07347bf1) SHA1(34bd359933acdec7fd1ce047092a30d1177afc2c) ) - ROM_LOAD ("d84-11.rom", 0x1780000, 0x200000, CRC(a062c1d4) SHA1(158912aa3dd75c3961bf738f9ac9034f0b005b60) ) - ROM_LOAD ("d84-21.rom", 0x1980000, 0x080000, CRC(89f68b66) SHA1(95916f02f71357324effe59da4f847f2f30ea34a) ) - ROM_FILL ( 0x0d00000, 0x680000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d84-12.rom", 0x000000, 0x200000, CRC(66a7a9aa) SHA1(a7d21f8b6370d16de3c1569019f2ad71d36e7a61) ) - ROM_LOAD16_BYTE("d84-13.rom", 0x000001, 0x200000, CRC(ae125516) SHA1(d54e76e398ab0b0fb82f3154ba54fc823ff49a1a) ) - ROM_LOAD16_BYTE("d84-16.rom", 0x400000, 0x100000, CRC(bcff9b2d) SHA1(0ca50ec809564eddf0ba7448a8fae9087d3b600b) ) - ROM_LOAD16_BYTE("d84-17.rom", 0x400001, 0x100000, CRC(0be37cc3) SHA1(b10c10b93858cad0c962ef614cfd6daea712ef6b) ) - ROM_LOAD ("d84-14.rom", 0x900000, 0x200000, CRC(2b2e693e) SHA1(03eb37fa7dc68d54bf0f1800b8c0b581c344a40f) ) - ROM_LOAD ("d84-18.rom", 0xb00000, 0x100000, CRC(e812bcc5) SHA1(3574e4a99232d9fc7989ec5d1e8fe76b4b30784a) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d84-26.32", 0x100000, 0x40000, CRC(4f5b8563) SHA1(1d4e06cbea7bc73a99d6e30be714fff420151bbc) ) - ROM_LOAD16_BYTE("d84-27.33", 0x100001, 0x40000, CRC(fb0cb1ba) SHA1(16a79b53651a6131f7636db19738b456b7c28bff) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("d84-01.rom", 0x400000, 0x200000, CRC(9ad22149) SHA1(48055822e0cea228cdecf3d05ac24e50979b6f4d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d84-02.rom", 0x800000, 0x200000, CRC(9e1827e4) SHA1(1840881b0f8f7b6225e6ffa12a8d4b463554988e) ) // CC CD CE CF - // half empty - ROM_LOAD16_BYTE("d84-15.rom", 0xe00000, 0x100000, CRC(31ceb152) SHA1(d9d0bc631a6a726376f566a49605b50485ac7bf4) ) // D0 D1 -ROM_END - -ROM_START( dariusg ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) - ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) - ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) - ROM_LOAD32_BYTE("d87-16.bin", 0x000003, 0x80000, CRC(8f7e5901) SHA1(b920f43374af30e2f7d7d01049af6746206c8ece) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) - ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) - ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) - ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) - ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) - ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC - ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 -ROM_END - -ROM_START( dariusgj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) - ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) - ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) - ROM_LOAD32_BYTE("d87-09.bin", 0x000003, 0x80000, CRC(6170382d) SHA1(85b0f9a3400884e1c073d5bdcdf7318377650eed) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) - ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) - ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) - ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) - ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) - ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC - ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 -ROM_END - -ROM_START( dariusgu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d87-12.bin", 0x000000, 0x80000, CRC(de78f328) SHA1(126464a826685f5bfab6cc099448ce4df207a407) ) - ROM_LOAD32_BYTE("d87-11.bin", 0x000001, 0x80000, CRC(f7bed18e) SHA1(db7d92680f9f406a5295ee85ce110c1a56ed386f) ) - ROM_LOAD32_BYTE("d87-10.bin", 0x000002, 0x80000, CRC(4149f66f) SHA1(57d36a62d490d9e53b6b80a92ea0e8c41d61799f) ) - ROM_LOAD32_BYTE("d87-15.bin", 0x000003, 0x80000, CRC(f8796997) SHA1(fa286561bac9894cb260944ffa14d0059b882ab9) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) - ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) - ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) - ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) - ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) - ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC - ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 -ROM_END - -ROM_START( dariusgx ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("dge_mpr3.bin", 0x000000, 0x80000, CRC(1c1e24a7) SHA1(eafde331c3be5be55d0d838a84017f357ff92634) ) - ROM_LOAD32_BYTE("dge_mpr2.bin", 0x000001, 0x80000, CRC(7be23e23) SHA1(4764355f51e207f4538dd753aea59bf2689835de) ) - ROM_LOAD32_BYTE("dge_mpr1.bin", 0x000002, 0x80000, CRC(bc030f6f) SHA1(841396911d26ddfae0c9863431e02e0b5e762ac6) ) - ROM_LOAD32_BYTE("dge_mpr0.bin", 0x000003, 0x80000, CRC(c5bd135c) SHA1(402e26a05f1c3162fa3a8d3fcb81ef334b733699) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) ) - ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) ) - ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) ) - ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) ) - ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) ) - ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) ) // C9 CA CB CC - ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0 -ROM_END - -ROM_START( bublbob2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) - ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) - ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) - ROM_LOAD32_BYTE("d90-17", 0x000003, 0x40000, CRC(711f1894) SHA1(8e574d9a63593fbe0c87840e79a2e2dbfc227671) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) - ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) - ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- -ROM_END - -ROM_START( bubsympe ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) - ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) - ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) - ROM_LOAD32_BYTE("d90-16", 0x000003, 0x40000, CRC(d12ef19b) SHA1(8715102b54c730c809b3964a80cd1aed863ba334) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) - ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) - ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- -ROM_END - -ROM_START( bubsymph ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) - ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) - ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) - ROM_LOAD32_BYTE("d90-09", 0x000003, 0x40000, CRC(3f2090b7) SHA1(2a95c8c8dc23b618c0ce65497391d464494f4d6a) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) - ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) - ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-14.bin", 0x0800, 0x0117, CRC(7427e777) SHA1(e692cedb13e5bc02edc4b25e9dcea51e6715de85) ) -ROM_END - -ROM_START( bubsympu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) ) - ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) ) - ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) ) - ROM_LOAD32_BYTE("d90-15", 0x000003, 0x40000, CRC(06182802) SHA1(c068ea8e8852033d0cf7bd4bca4b0411b7aebded) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) ) - ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) ) - ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) ) - ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) ) - ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) ) - ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std- -ROM_END - -ROM_START( spcinvdj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d93-04.bin", 0x000000, 0x20000, CRC(cd9a4e5c) SHA1(b163b8274570610af8697b1b38116dcf4c3593db) ) - ROM_LOAD32_BYTE("d93-03.bin", 0x000001, 0x20000, CRC(0174bfc1) SHA1(133452f6a5bdf01b1b436077288a597734a8731a) ) - ROM_LOAD32_BYTE("d93-02.bin", 0x000002, 0x20000, CRC(01922b31) SHA1(660c9c20e76a5f4094f1bfee9d75146f0829daeb) ) - ROM_LOAD32_BYTE("d93-01.bin", 0x000003, 0x20000, CRC(4a74ab1c) SHA1(5f7ae70d8fa3f141239ed3de3a45c50e2d824864) ) - - ROM_REGION(0x200000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d93-07.12", 0x000000, 0x80000, CRC(8cf5b972) SHA1(75e383aed8548f4ac7d38f1f08bf33fae2a93064) ) - ROM_LOAD16_BYTE("d93-08.08", 0x000001, 0x80000, CRC(4c11af2b) SHA1(e332372ab0d1322faa8d6d98f8a6e3bbf51d2008) ) - ROM_FILL ( 0x100000, 0x100000,0 ) - - ROM_REGION(0x80000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d93-09.47", 0x000000, 0x20000, CRC(9076f663) SHA1(c94e93e40926df33b6bb528e0ef30381631913d7) ) - ROM_LOAD16_BYTE("d93-10.45", 0x000001, 0x20000, CRC(8a3f531b) SHA1(69f9971c45971018108a5d312d5bbcfd3caf9bd0) ) - ROM_FILL ( 0x040000, 0x40000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d93-05.bin", 0x100000, 0x20000, CRC(ff365596) SHA1(4cf2e0d6f42cf3fb69796be6092eff8a47f7f8b9) ) - ROM_LOAD16_BYTE("d93-06.bin", 0x100001, 0x20000, CRC(ef7ad400) SHA1(01be403d575a543f089b910a5a8c381a6603e67e) ) - - ROM_REGION16_BE(0x400000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated - ROM_LOAD16_BYTE("d93-11.38", 0x000000, 0x80000, CRC(df5853de) SHA1(bb1ea604d44819dc7c82848c5bde9612f70f7528) ) // C8 - ROM_LOAD16_BYTE("d93-12.39", 0x100000, 0x80000, CRC(b0f71d60) SHA1(35fc32764d9b82b1b40c5e9cc8e367cf842531a2) ) // C9 - ROM_LOAD16_BYTE("d93-13.40", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- - ROM_LOAD16_BYTE("d93-14.41", 0x300000, 0x80000, CRC(2edaa9dc) SHA1(72fead505c4f44e5736ff7d545d72dfa37d613e2) ) // -std- -ROM_END - -ROM_START( pwrgoal ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d94-18.bin", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) - ROM_LOAD32_BYTE("d94-17.bin", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) - ROM_LOAD32_BYTE("d94-16.bin", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) - ROM_LOAD32_BYTE("d94-22.rom", 0x000003, 0x40000, CRC(f672e487) SHA1(da62afc82aeae4aeeebbee0965cda3d84464ad09) ) - - ROM_REGION(0x1800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d94-09.bin", 0x000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) - ROM_LOAD16_BYTE("d94-08.bin", 0x400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) - ROM_LOAD16_BYTE("d94-07.bin", 0x800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) - ROM_LOAD16_BYTE("d94-06.bin", 0x000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) - ROM_LOAD16_BYTE("d94-05.bin", 0x400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) - ROM_LOAD16_BYTE("d94-04.bin", 0x800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) - ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- -ROM_END - -ROM_START( hthero95 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d94-18.bin", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) - ROM_LOAD32_BYTE("d94-17.bin", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) - ROM_LOAD32_BYTE("d94-16.bin", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) - ROM_LOAD32_BYTE("d94-15.bin", 0x000003, 0x40000, CRC(187c85ab) SHA1(8270930b95fafe5ad92ea978c1558c491d9668b0) ) - - ROM_REGION(0x1800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d94-09.bin", 0x000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) - ROM_LOAD16_BYTE("d94-08.bin", 0x400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) - ROM_LOAD16_BYTE("d94-07.bin", 0x800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) - ROM_LOAD16_BYTE("d94-06.bin", 0x000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) - ROM_LOAD16_BYTE("d94-05.bin", 0x400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) - ROM_LOAD16_BYTE("d94-04.bin", 0x800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) - ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- -ROM_END - -ROM_START( hthro95u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d94-18.bin", 0x000000, 0x40000, CRC(b92681c3) SHA1(0ca05a69d046668c878df3d2b7ae3172d748e290) ) - ROM_LOAD32_BYTE("d94-17.bin", 0x000001, 0x40000, CRC(6009333e) SHA1(4ab28f2d9e2b75adc668f5d9390e06086bbd97dc) ) - ROM_LOAD32_BYTE("d94-16.bin", 0x000002, 0x40000, CRC(c6dbc9c8) SHA1(4f096b59734db51eeddcf0649f2a6f11bdde9590) ) - ROM_LOAD32_BYTE("d94-21.bin", 0x000003, 0x40000, CRC(8175d411) SHA1(b93ffef510ecfaced6cae07ea6cd549af7473049) ) - - ROM_REGION(0x1800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d94-09.bin", 0x000000, 0x200000, CRC(425e6bec) SHA1(512508e7137fcdebdf2240dbbd37ea0cf1c4dcdc) ) - ROM_LOAD16_BYTE("d94-08.bin", 0x400000, 0x200000, CRC(bd909caf) SHA1(33952883afb8fe9b55dd258435af99881925e8d5) ) - ROM_LOAD16_BYTE("d94-07.bin", 0x800000, 0x200000, CRC(c8c95e49) SHA1(9bfdf63d6059b01a4cd5813239ba1bd98453a56b) ) - ROM_LOAD16_BYTE("d94-06.bin", 0x000001, 0x200000, CRC(0ed1df55) SHA1(10b22407ad0e03c37363783ee80f2cbf98a802a0) ) - ROM_LOAD16_BYTE("d94-05.bin", 0x400001, 0x200000, CRC(121c8542) SHA1(ec9b7e56c97a8b6ed0423f05b789ca89b1bb0d36) ) - ROM_LOAD16_BYTE("d94-04.bin", 0x800001, 0x200000, CRC(24958b50) SHA1(ea15ffa3a615e3e67c1bade6f6ef45424479115e) ) - ROM_LOAD ("d94-03.bin", 0x1200000, 0x200000, CRC(95e32072) SHA1(9797f65ecadc6b0f209bf262396315b61855c433) ) - ROM_LOAD ("d94-02.bin", 0x1400000, 0x200000, CRC(f460b9ac) SHA1(e36a812791bd0360380f397b1bc6c357391f585a) ) - ROM_LOAD ("d94-01.bin", 0x1600000, 0x200000, CRC(410ffccd) SHA1(0cab00c8e9de92ad81ac61f25bbe8bfd60f45ae0) ) - ROM_FILL ( 0xc00000, 0x600000,0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d94-14.bin", 0x000000, 0x100000, CRC(b8ba5761) SHA1(7966ef3166d7d6b9913478eaef5dd4a2bf7d5a06) ) - ROM_LOAD16_BYTE("d94-13.bin", 0x000001, 0x100000, CRC(cafc68ce) SHA1(5c1f49951e83d812f0c7697751f4876ab1d08141) ) - ROM_LOAD ("d94-12.bin", 0x300000, 0x100000, CRC(47064189) SHA1(99ceeb326dcc2e1c3acba8ac14d94dcb17c6e032) ) - ROM_FILL ( 0x200000, 0x100000,0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d94-19.bin", 0x100000, 0x40000, CRC(c93dbcf4) SHA1(413520e652d809651aff9b1b74e6353112d34c12) ) - ROM_LOAD16_BYTE("d94-20.bin", 0x100001, 0x40000, CRC(f232bf64) SHA1(bbfeae0785fc49c12aa6d9b1bd6ff7c8515f8fe7) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d94-10.bin", 0x000000, 0x200000, CRC(a22563ae) SHA1(85f2a4ca5e085ac1d4c15feb737229764697ae85) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d94-11.bin", 0x400000, 0x200000, CRC(61ed83fa) SHA1(f6ca60b7af61fd3ac01a987f949d7a7bc96e43ff) ) // CD CE -std- -ROM_END - -ROM_START( qtheater ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("d95-12.20", 0x000000, 0x80000, CRC(fcee76ee) SHA1(9ffeeda656368d1c065ba1cdb51a8665f7f7262a) ) - ROM_LOAD32_BYTE("d95-11.19", 0x000001, 0x80000, CRC(b3c2b8d5) SHA1(536c13d71e858309f41e7c387cd988e8fe356bee) ) - ROM_LOAD32_BYTE("d95-10.18", 0x000002, 0x80000, CRC(85236e40) SHA1(727c8f7361d7e0af3239bb0c0e7778ab30b12739) ) - ROM_LOAD32_BYTE("d95-09.17", 0x000003, 0x80000, CRC(f456519c) SHA1(9226d33d8d16a7d1054c1183ac013fc5caf229e2) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("d95-02.12", 0x000000, 0x200000, CRC(74ce6f3e) SHA1(eb03f44889bd2d5705e9d8cda6516b39758d9554) ) - ROM_LOAD16_BYTE("d95-01.8", 0x000001, 0x200000, CRC(141beb7d) SHA1(bba91f47f68367e2bb3d89298cb62fac2d4edf7b) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("d95-06.47", 0x000000, 0x200000, CRC(70a0dcbb) SHA1(b1abe6a9a4afe55201229a62bae11ad1d96ca244) ) - ROM_LOAD16_BYTE("d95-05.45", 0x000001, 0x200000, CRC(1a1a852b) SHA1(89827485a31af4e2457775a5d16f747a764b6d67) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("d95-07.32", 0x100000, 0x40000, BAD_DUMP CRC(72183273) SHA1(d21f2ec24d1a9101bb9161d5e1bc5416e498ad01) ) - ROM_LOAD16_BYTE("d95-08.33", 0x100001, 0x40000, CRC(01c23354) SHA1(7b332edc844b1b1c1513e879215089987645fa3f) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("d95-03.38", 0x000000, 0x200000, CRC(4149ea67) SHA1(35fc9e60cd368c6eab20e23deb581aa4f46e164e) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("d95-04.41", 0x400000, 0x200000, CRC(e9049d16) SHA1(ffa7dfc5d1cb82a601bad26b634c993aedda7803) ) // CC CD -std- -ROM_END - -ROM_START( spcnv95u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) - ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) - ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) - ROM_LOAD32_BYTE("e06-15.17", 0x000003, 0x20000, CRC(a6ec0103) SHA1(4f524a6b52bbdb370b8f98d26e7446da943e3edd) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) - ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) - ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-13.bin", 0x0800, 0x0117, CRC(66e32e73) SHA1(350d0f98809f3623eab999540c7f47d1190dd648) ) -ROM_END - -ROM_START( spcinv95 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) - ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) - ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) - ROM_LOAD32_BYTE("e06-16.17", 0x000003, 0x20000, CRC(d1eb3195) SHA1(40c5e326e8dd9a892abdab952f853799f26601b7) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) - ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) - ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-13.bin", 0x0800, 0x0117, CRC(66e32e73) SHA1(350d0f98809f3623eab999540c7f47d1190dd648) ) -ROM_END - -ROM_START( akkanvdr ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e06-14.20", 0x000000, 0x20000, CRC(71ba7f00) SHA1(6b1d994c8319778aad3bec7bf7b24dc4944a36f0) ) - ROM_LOAD32_BYTE("e06-13.19", 0x000001, 0x20000, CRC(f506ba4b) SHA1(551f9e87d2bfd513998648b175b63677cd6bdd74) ) - ROM_LOAD32_BYTE("e06-12.18", 0x000002, 0x20000, CRC(06cbd72b) SHA1(0c8e11bd5f3fcf7451908c53e74ae545a0d97640) ) - ROM_LOAD32_BYTE("e06-11.17", 0x000003, 0x20000, CRC(3fe550b9) SHA1(6258d72204834abfba58bc2d5882f3616a6fd784) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e06-03", 0x000000, 0x100000, CRC(a24070ef) SHA1(9b6ac7852114c606e871a08cfb3b9e1081ac7030) ) - ROM_LOAD16_BYTE("e06-02", 0x000001, 0x100000, CRC(8f646dea) SHA1(07cd79671f36df1a5bbf2434e92a601351a36259) ) - ROM_LOAD ("e06-01", 0x300000, 0x100000, CRC(51721b15) SHA1(448a9a7f3631072d8987351f5c0b8dd2c908d266) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e06-08", 0x000000, 0x100000, CRC(72ae2fbf) SHA1(7fa7ec94a8031342a2446fb8eca0d89ecfd2fa4f) ) - ROM_LOAD16_BYTE("e06-07", 0x000001, 0x100000, CRC(4b02e8f5) SHA1(02d8a97da52f9ba4033b8f0c3f455a908a9dce89) ) - ROM_LOAD ("e06-06", 0x300000, 0x100000, CRC(9380db3c) SHA1(83f5a46a01b9c15499e0dc2222df496d26baa0d4) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e06-09.32", 0x100000, 0x40000, CRC(9bcafc87) SHA1(10b3f6da00a41550fe6a705232f0e33fda3c7e7c) ) - ROM_LOAD16_BYTE("e06-10.33", 0x100001, 0x40000, CRC(b752b61f) SHA1(e948a8af19c70ba8b8e908c869bc88ed0cac8420) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e06-04", 0x000000, 0x200000, CRC(1dac29df) SHA1(ed68a41def148dcf4057cfac87a2a563c6882e1d) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e06-05", 0x400000, 0x200000, CRC(f370ff15) SHA1(4bc464d1c3a28326c8b1ae2036387954cb1dd813) ) // CC CD CE CF -ROM_END - -ROM_START( elvactr ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) - ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) - ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) - ROM_LOAD32_BYTE("e02-16.17", 0x000003, 0x80000, CRC(cd97182b) SHA1(b3387980acfeec81eb0178d5b2955ac39595e22d) ) - - ROM_REGION(0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) - ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) - ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF - - ROM_REGION( 0x0e00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "ampal20l10a.a12", 0x0000, 0x00cc, CRC(e719542f) SHA1(b28b9e13ec1ca98203ebbfd592dbdc44d3a6e936) ) - ROM_LOAD( "pal20l10b.a24", 0x0200, 0x00cc, NO_DUMP ) /* read protected */ - ROM_LOAD( "pal16l8b.b24", 0x0400, 0x0104, CRC(0b73a7d1) SHA1(953234ce95a8c2dfb9ba276742411cb2ca4d4bf8) ) - ROM_LOAD( "pal16l8b.b57", 0x0600, 0x0104, CRC(74b4d8be) SHA1(23ba316bc5550dd69f07f9a0f697927656a35e5a) ) - ROM_LOAD( "pal16l8b.b58", 0x0800, 0x0104, CRC(17e2c9b8) SHA1(841b290ee3a3089a975456b20018c04e6afb2257) ) - ROM_LOAD( "pal16l8b.b59", 0x0a00, 0x0104, CRC(dc0db200) SHA1(9f46e7edf053ad9ee3a4a6dd00f9f6996203fc60) ) - ROM_LOAD( "pal16l8b.b64", 0x0c00, 0x0104, CRC(3aed3d98) SHA1(8f0b02baad87aeda1767f0e95aa1a84545376076) ) -ROM_END - -ROM_START( elvactrj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) - ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) - ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) - ROM_LOAD32_BYTE("e02-09.17", 0x000003, 0x80000, CRC(23997907) SHA1(e5b0b9069b29cf08e1a782c73f42137aec198f7f) ) - - ROM_REGION(0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) - ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) - ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF -ROM_END - -ROM_START( elvact2u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e02-12.20", 0x000000, 0x80000, CRC(ea5f5a32) SHA1(4f30c56fbf068fee6d3afb2479043c7e89f6c055) ) - ROM_LOAD32_BYTE("e02-11.19", 0x000001, 0x80000, CRC(bcced8ff) SHA1(09c38c78300ba9d710b4e46ca71014bbc5ac46b4) ) - ROM_LOAD32_BYTE("e02-10.18", 0x000002, 0x80000, CRC(72f1b952) SHA1(9fc41ecfbee3581d9e92ff3a2ab6e4b93567e31d) ) - ROM_LOAD32_BYTE("e02-15.17", 0x000003, 0x80000, CRC(ba9028bd) SHA1(1d04ce5333143ed78ec297d89c0cdb99bf6e4bde) ) - - ROM_REGION(0x800000, REGION_GFX1, ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e02-03.12", 0x000000, 0x200000, CRC(c884ebb5) SHA1(49009056bfdc564eac0ae6b7b49f070f05dc4ee3) ) - ROM_LOAD16_BYTE("e02-02.8", 0x000001, 0x200000, CRC(c8e06cfb) SHA1(071d095a4930ce18a782c577811b553a9705fbd7) ) - ROM_LOAD ("e02-01.4", 0x600000, 0x200000, CRC(2ba94726) SHA1(3e9cdd076338e0e5358571ce4f97576f1a6a12a7) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2, ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e02-08.47", 0x000000, 0x200000, CRC(29c9bd02) SHA1(a5b552ae7ac15f514ee6105410ec3e6e34ea0adb) ) - ROM_LOAD16_BYTE("e02-07.45", 0x000001, 0x200000, CRC(5eeee925) SHA1(d302da28df8ac6d406ef45f1d282ee22ce243857) ) - ROM_LOAD ("e02-06.43", 0x600000, 0x200000, CRC(4c8726e9) SHA1(8ce2320a087f43c49428a39dafffec8c40d61b03) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e02-13.32", 0x100000, 0x40000, CRC(80932702) SHA1(c468234d03aa31b2aa0c3bd6bec32034216c2ae4) ) - ROM_LOAD16_BYTE("e02-14.33", 0x100001, 0x40000, CRC(706671a5) SHA1(1ac90647d617e73f12a67274a025ae43a6b3a316) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e02-04.38", 0x000000, 0x200000, CRC(b74307af) SHA1(deb42415049efa2df70e7b25ba8b1b716aa227f1) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e02-05.39", 0x400000, 0x200000, CRC(eb729855) SHA1(85253efe794e8b5ffaf16bcb1123bca831e776a5) ) // CC CD CE CF -ROM_END - -ROM_START( twinqix ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("mpr0-3.b60", 0x000000, 0x40000, CRC(1a63d0de) SHA1(7d8d8a6c9c7f9dfc0a8a528a905e33388b8fe13d) ) - ROM_LOAD32_BYTE("mpr0-2.b61", 0x000001, 0x40000, CRC(45a70987) SHA1(8cca6845064d943fd28416143e60399188b023cd) ) - ROM_LOAD32_BYTE("mpr0-1.b62", 0x000002, 0x40000, CRC(531f9447) SHA1(4d18efaad9c3dd2b14d3125c0f9e18cfcde3a1f2) ) - ROM_LOAD32_BYTE("mpr0-0.b63", 0x000003, 0x40000, CRC(a4c44c11) SHA1(b928134028bb8cddd6e34a501a4aad56173e2ae2) ) - - ROM_REGION(0x200000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("obj0-0.a08", 0x000000, 0x080000, CRC(c6ea845c) SHA1(9df710637e8f64f7fec232b5ebbede588e07c2db) ) - ROM_LOAD16_BYTE("obj0-1.a20", 0x000001, 0x080000, CRC(8c12b7fb) SHA1(8a52870fb9f508148619763fb6f37dd74b5386ca) ) - ROM_FILL ( 0x100000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD32_BYTE("scr0-0.b07", 0x000000, 0x080000, CRC(9a1b9b34) SHA1(ddf9c6ba0f9c340b580573e1d96ac76b1cd35beb) ) - ROM_LOAD32_BYTE("scr0-1.b06", 0x000002, 0x080000, CRC(e9bef879) SHA1(7e720f5054a1ef3a28353f1c221f4cf15d3b7428) ) - ROM_LOAD32_BYTE("scr0-2.b05", 0x000001, 0x080000, CRC(cac6854b) SHA1(c97fb7de48e1644695bbe431587d6c1be01ea62d) ) - ROM_LOAD32_BYTE("scr0-3.b04", 0x000003, 0x080000, CRC(ce063034) SHA1(2ecff74427d7d2fa8d1db4ac87481d123d7ce003) ) - ROM_LOAD16_BYTE("scr0-4.b03", 0x300000, 0x080000, CRC(d32280fe) SHA1(56b120128c5e4b8c6598a1de51269e6702a63175) ) - ROM_LOAD16_BYTE("scr0-5.b02", 0x300001, 0x080000, CRC(fdd1a85b) SHA1(1d94a4858baef3e78c456049dc58249a574205fe) ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* sound CPU */ - ROM_LOAD16_BYTE("spr0-1.b66", 0x100000, 0x40000, CRC(4b20e99d) SHA1(faf184daea0f1131bafa50edb48bd470d4c0b141) ) - ROM_LOAD16_BYTE("spr0-0.b65", 0x100001, 0x40000, CRC(2569eb30) SHA1(ec804131025e600198cd8342925823340e7ef458) ) - - ROM_REGION16_BE(0x400000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated - ROM_LOAD16_BYTE("snd-0.b43", 0x000000, 0x80000, CRC(ad5405a9) SHA1(67ee42498d2c3c00015237b3b5cd020f9a7c4a18) ) // C8 - ROM_LOAD16_BYTE("snd-1.b44", 0x100000, 0x80000, CRC(274864af) SHA1(47fefee23038bb751bdf6b6f48312ba0b6e38b90) ) // C9 - ROM_LOAD16_BYTE("snd-14.b10", 0x200000, 0x80000, CRC(26312451) SHA1(9f947a11592fd8420fc581914bf16e7ade75390c) ) // -std- - ROM_LOAD16_BYTE("snd-15.b11", 0x300000, 0x80000, CRC(2edaa9dc) SHA1(72fead505c4f44e5736ff7d545d72dfa37d613e2) ) // -std- - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal20l10a.a12", 0x0000, 0x00cc, NO_DUMP) /* PAL is read protected */ - ROM_LOAD( "pal20l10a.a24", 0x0100, 0x00cc, NO_DUMP) /* PAL is read protected */ - ROM_LOAD( "pal16l8b.b24", 0x0200, 0x0104, CRC(0b73a7d1) SHA1(953234ce95a8c2dfb9ba276742411cb2ca4d4bf8) ) - ROM_LOAD( "pal16l8b.b57", 0x0400, 0x0104, CRC(74b4d8be) SHA1(23ba316bc5550dd69f07f9a0f697927656a35e5a) ) - ROM_LOAD( "pal16l8b.b58", 0x0600, 0x0104, CRC(17e2c9b8) SHA1(841b290ee3a3089a975456b20018c04e6afb2257) ) - ROM_LOAD( "pal16l8b.b59", 0x0800, 0x0104, CRC(dc0db200) SHA1(9f46e7edf053ad9ee3a4a6dd00f9f6996203fc60) ) - ROM_LOAD( "pal16l8b.b64", 0x0a00, 0x0104, CRC(3aed3d98) SHA1(8f0b02baad87aeda1767f0e95aa1a84545376076) ) -ROM_END - -ROM_START( quizhuhu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e08-16.20", 0x000000, 0x80000, CRC(faa8f373) SHA1(e263b058288fcacf9b15188ab78e8fb05a8971a7) ) - ROM_LOAD32_BYTE("e08-15.19", 0x000001, 0x80000, CRC(23acf231) SHA1(a87933439b3d1d92f8b9d545b13f20cc47a7fd4e) ) - ROM_LOAD32_BYTE("e08-14.18", 0x000002, 0x80000, CRC(33a4951d) SHA1(69e8fe994f620ce056cdedca77bff1d0c6e74483) ) - ROM_LOAD32_BYTE("e08-13.17", 0x000003, 0x80000, CRC(0936fd2a) SHA1(f0f7017c755b28644b67b4fd6d5e19c272e9c3a2) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e08-06.12", 0x000000, 0x200000, CRC(8dadc9ac) SHA1(469e3c5063f5cb0832fb5bb5000ecd3c342cd095) ) - ROM_LOAD16_BYTE("e08-04.8", 0x000001, 0x200000, CRC(5423721d) SHA1(7e9f4492845b7b4df0336203b1da6ca5ffeb36de) ) - ROM_LOAD16_BYTE("e08-05.11", 0x400000, 0x100000, CRC(79d2e516) SHA1(7dc0c23f3995d14b443a3f67d488e5ab780e8a94) ) - ROM_LOAD16_BYTE("e08-03.7", 0x400001, 0x100000, CRC(07b9ab6a) SHA1(db205822233c385e1dbe4a9d40b311df9bca7053) ) - ROM_LOAD ("e08-02.4", 0x900000, 0x200000, CRC(d89eb067) SHA1(bd8e1cf4c2046894c629d927fa05806b9b73505d) ) - ROM_LOAD ("e08-01.3", 0xb00000, 0x100000, CRC(90223c06) SHA1(f07dae563946908d471ae89db74a2e55c5ab5890) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e08-12.47", 0x000000, 0x100000, CRC(6c711d36) SHA1(3fbff7783323d968ade72ac53531a7bcf7b9d234) ) - ROM_LOAD16_BYTE("e08-11.45", 0x000001, 0x100000, CRC(56775a60) SHA1(8bb8190101f2e8487ebb707022ff89d97bb7b39a) ) - ROM_LOAD ("e08-10.43", 0x300000, 0x100000, CRC(60abc71b) SHA1(f4aa906920c6134c33a4dfb51724f3adbd3d7de4) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e08-18.32", 0x100000, 0x20000, CRC(e695497e) SHA1(9d845b4c0bd9b40471fb4b5ab2f9240058bc324f) ) - ROM_LOAD16_BYTE("e08-17.33", 0x100001, 0x20000, CRC(fafc7e4e) SHA1(26f46d5900fbf26d25651e7e818e486fc7a878ec) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e08-07.38", 0x400000, 0x200000, CRC(c05dc85b) SHA1(d46ae3f066bbe041edde40358dd54f93e8e195de) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e08-08.39", 0x800000, 0x200000, CRC(3eb94a99) SHA1(e6e8832e87397811dfc40525f2a15fc0415cec68) ) // CC CD CE CF - ROM_LOAD16_BYTE("e08-09.41", 0xc00000, 0x200000, CRC(200b26ee) SHA1(c689d0a1c1f5d71e0af3d94073b29d3619187c5f) ) // D0 D1 -std- -ROM_END - -ROM_START( pbobble2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e10-11.20", 0x000000, 0x40000, CRC(b82f81da) SHA1(2cd0fb321c853497058545525f430b52c0788fb1) ) - ROM_LOAD32_BYTE("e10-10.19", 0x000001, 0x40000, CRC(f432267a) SHA1(f9778fc627773e4e254faa0ce10e68407251ce95) ) - ROM_LOAD32_BYTE("e10-09.18", 0x000002, 0x40000, CRC(e0b1b599) SHA1(99ef34b014db7c52f2ced05b2b90099a9c873259) ) - ROM_LOAD32_BYTE("e10-15.17", 0x000003, 0x40000, CRC(a2c0a268) SHA1(c96bb8a2959266c5c832fb77d119ad129b9ef9ee) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) ) - ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) - ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) - ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) - ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF -ROM_END - -ROM_START( pbobbl2j ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e10-11.20", 0x000000, 0x40000, CRC(b82f81da) SHA1(2cd0fb321c853497058545525f430b52c0788fb1) ) - ROM_LOAD32_BYTE("e10-10.19", 0x000001, 0x40000, CRC(f432267a) SHA1(f9778fc627773e4e254faa0ce10e68407251ce95) ) - ROM_LOAD32_BYTE("e10-09.18", 0x000002, 0x40000, CRC(e0b1b599) SHA1(99ef34b014db7c52f2ced05b2b90099a9c873259) ) - ROM_LOAD32_BYTE("e10-08.17", 0x000003, 0x40000, CRC(4ccec344) SHA1(dfb30d149dde6d8e1a117bf0bafb85178540aa58) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) ) - ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) - ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) - ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e10-12.32", 0x100000, 0x40000, CRC(b92dc8ad) SHA1(0c1428d313507b1ae5a2af3b2fbaaa5650135e1e) ) - ROM_LOAD16_BYTE("e10-13.33", 0x100001, 0x40000, CRC(87842c13) SHA1(d15b47c7430e677ae172f86fd5be595e4fe72e42) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF -ROM_END - -ROM_START( pbobbl2u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e10-20.20", 0x000000, 0x40000, CRC(97eb15c6) SHA1(712ed06ee3582e30acb03c06f4981b0f3d7c64f4) ) - ROM_LOAD32_BYTE("e10-19.19", 0x000001, 0x40000, CRC(7082d796) SHA1(9dd8216123ae94f4e9bacea9a088ae73c71cfd19) ) - ROM_LOAD32_BYTE("e10-18.18", 0x000002, 0x40000, CRC(2ffa3ef2) SHA1(dcf2cce623daaaacb53f17657019a4e334be0a16) ) - ROM_LOAD32_BYTE("e10-14.17", 0x000003, 0x40000, CRC(4a19ed67) SHA1(21de5f6c3ab5e13b085010a49f33b88cb6388fa9) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) ) - ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) - ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) - ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e10-16.32", 0x100000, 0x40000, CRC(765ce77a) SHA1(e2723bd6238da91d28307081909a7172a1825c83) ) - ROM_LOAD16_BYTE("e10-17.33", 0x100001, 0x40000, CRC(0aec3b1e) SHA1(a76a020cefcfbf86b0d893a6eb8ff93cb571abeb) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF -ROM_END - -ROM_START( pbobbl2x ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e10-29.20", 0x000000, 0x40000, CRC(f1e9ad3f) SHA1(8689d85f30e075d21e4be01a2a097a850a921c47) ) - ROM_LOAD32_BYTE("e10-28.19", 0x000001, 0x40000, CRC(412a3602) SHA1(d754e6ac886676d2c1eb52de3a727894f316e6b5) ) - ROM_LOAD32_BYTE("e10-27.18", 0x000002, 0x40000, CRC(88cc0b5c) SHA1(bb08a7b8b37356376052ed03f8515677811823c0) ) - ROM_LOAD32_BYTE("e10-26.17", 0x000003, 0x40000, CRC(a5c24047) SHA1(62861577ce0aedb8d05360f0302fceecbde15420) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) ) - ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) ) - ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) ) - ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e10-30.32", 0x100000, 0x40000, CRC(bb090c1e) SHA1(af2ff23d6f9bd56c25530cb9bf9f452b6f5210f5) ) - ROM_LOAD16_BYTE("e10-31.33", 0x100001, 0x40000, CRC(f4b88d65) SHA1(c74dcb4bed979039fad1d5c7528c14ce4db1d5ec) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) ) // CC CD CE CF - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-14.bin", 0x0800, 0x0117, CRC(7427e777) SHA1(e692cedb13e5bc02edc4b25e9dcea51e6715de85) ) -ROM_END - -ROM_START( gekirido ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e11-12.bin", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) ) - ROM_LOAD32_BYTE("e11-11.bin", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) ) - ROM_LOAD32_BYTE("e11-10.bin", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) ) - ROM_LOAD32_BYTE("e11-09.bin", 0x000003, 0x40000, CRC(b4e17ef4) SHA1(ab06ab68aaa487cc3046a15fef3dde8581197391) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e11-03.bin", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) ) - ROM_LOAD16_BYTE("e11-02.bin", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) ) - ROM_LOAD ("e11-01.bin", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e11-08.bin", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) ) - ROM_LOAD16_BYTE("e11-07.bin", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) ) - ROM_LOAD ("e11-06.bin", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) ) - ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e11-04.bin", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e11-05.bin", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) ) // CC CD -std- -ROM_END - -ROM_START( tcobra2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-18.bin", 0x000003, 0x40000, CRC(4908c3aa) SHA1(9b0230e6bafd0533ecbe89bc18fae6f3425ea1a3) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.bin", 0x000001, 0x200000, CRC(2ea7f2bd) SHA1(3b42f603f7d35e9b32931a2e8913eb735151a64c) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- -ROM_END - -ROM_START( tcobra2u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-17.bin", 0x000003, 0x40000, CRC(3e0ff33c) SHA1(6da0a69272172e03921417f3949817756c7894b4) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.bin", 0x000001, 0x200000, CRC(2ea7f2bd) SHA1(3b42f603f7d35e9b32931a2e8913eb735151a64c) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- -ROM_END - -ROM_START( ktiger2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e15-14.bin", 0x000000, 0x40000, CRC(b527b733) SHA1(19efd647ea9c277b306714fe79ebf40d5f9d2187) ) - ROM_LOAD32_BYTE("e15-13.bin", 0x000001, 0x40000, CRC(0f03daf7) SHA1(de5aee5a339224dfe5e03a02d3ef5ffd5a39211e) ) - ROM_LOAD32_BYTE("e15-12.bin", 0x000002, 0x40000, CRC(59d832f2) SHA1(27019b4121b1f8b0b9e141234192b3da1a4af718) ) - ROM_LOAD32_BYTE("e15-11.bin", 0x000003, 0x40000, CRC(a706a286) SHA1(c3d1cdb0c5b1004acadc926ffd9083c9afea8608) ) - - ROM_REGION(0xc00000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e15-04.bin", 0x000000, 0x200000, CRC(6ea8d9bd) SHA1(c31644e89752325ba2f174b60e31bd9659479391) ) - ROM_LOAD16_BYTE("e15-02.bin", 0x000001, 0x200000, CRC(2ea7f2bd) SHA1(3b42f603f7d35e9b32931a2e8913eb735151a64c) ) - ROM_LOAD16_BYTE("e15-03.bin", 0x400000, 0x100000, CRC(be45a52f) SHA1(5d9735a774233b43003057cbab6ae7d6e0195dd2) ) - ROM_LOAD16_BYTE("e15-01.bin", 0x400001, 0x100000, CRC(85421aac) SHA1(327e72f0107e024ec9fc9dc20d381e2e20f36248) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e15-10.bin", 0x000000, 0x200000, CRC(d8c96b00) SHA1(9cd275abb66b3475433ea2649dc872d7d35eb5b8) ) - ROM_LOAD16_BYTE("e15-08.bin", 0x000001, 0x200000, CRC(4bdb2bf3) SHA1(1146b7a5d9f26d3173a7c64768e55d53a0ab7b8e) ) - ROM_LOAD16_BYTE("e15-09.bin", 0x400000, 0x100000, CRC(07c29f60) SHA1(3ca0f632e7047cc50ee3ce24cd6c0c8c7252a278) ) - ROM_LOAD16_BYTE("e15-07.bin", 0x400001, 0x100000, CRC(8164f7ee) SHA1(4550521f820e93ec08b86d148135966d016cbf22) ) - ROM_FILL ( 0x600000, 0x600000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e15-15.bin", 0x100000, 0x20000, CRC(22126dfb) SHA1(a1af17e5c3440f1bab50d79f92c251f1a4536ca0) ) - ROM_LOAD16_BYTE("e15-16.bin", 0x100001, 0x20000, CRC(f8b58ea0) SHA1(c9e196620765efc4c7b535793a5d1f586698ce55) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e15-05.bin", 0x000000, 0x200000, CRC(3e5da5f6) SHA1(da6fc8b26cd02c45cfc0f1aa5292614e4d28cae4) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e15-06.bin", 0x400000, 0x200000, CRC(b182a3e1) SHA1(db8569b069911bb84900b2aa5168c45ba3e985c7) ) // CC CD -std- -ROM_END - -ROM_START( bubblem ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e21-21.20", 0x000000, 0x080000, CRC(cac4169c) SHA1(e1e5b9bbaecfd29ee764c8b29df8ffd08ef01866) ) - ROM_LOAD32_BYTE("e21-20.19", 0x000001, 0x080000, CRC(7727c673) SHA1(cda3dbcf8da06e81b899008462bcd6b2ea43db81) ) - ROM_LOAD32_BYTE("e21-19.18", 0x000002, 0x080000, CRC(be0b907d) SHA1(8bb6a149a4b0ccdb32396f7e750218a0bdc31965) ) - ROM_LOAD32_BYTE("e21-18.17", 0x000003, 0x080000, CRC(d14e313a) SHA1(3913d396a6a72f539163c216809e54a06ecd3b96) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e21-02.rom", 0x000000, 0x200000, CRC(b7cb9232) SHA1(ba71cb98d49eadebb26d9f53bbaec1dc211077f5) ) - ROM_LOAD16_BYTE("e21-01.rom", 0x000001, 0x200000, CRC(a11f2f99) SHA1(293c5996600cad05bf98f936f5f820d93d546099) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) - ROM_LOAD16_BYTE("e21-06.rom", 0x000001, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) - ROM_LOAD ("e21-05.rom", 0x300000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* Sound CPU */ - ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) - ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- -ROM_END - -ROM_START( bubblemj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e21-11.20", 0x000000, 0x080000, CRC(df0eeae4) SHA1(4cc8d350da881947c1b9c4e0b8fbe220494f6c38) ) - ROM_LOAD32_BYTE("e21-10.19", 0x000001, 0x080000, CRC(cdfb58f6) SHA1(70d2b8228ab4ddd572fe2ee53c1b7205b66ef6a3) ) - ROM_LOAD32_BYTE("e21-09.18", 0x000002, 0x080000, CRC(6c305f17) SHA1(c4118722d697ccf54b43626a47673892a6c2caaf) ) - ROM_LOAD32_BYTE("e21-08.17", 0x000003, 0x080000, CRC(27381ae2) SHA1(29b5d4bafa4ac02d35cb3ed7b7461e749ef2d6d6) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e21-02.rom", 0x000000, 0x200000, CRC(b7cb9232) SHA1(ba71cb98d49eadebb26d9f53bbaec1dc211077f5) ) - ROM_LOAD16_BYTE("e21-01.rom", 0x000001, 0x200000, CRC(a11f2f99) SHA1(293c5996600cad05bf98f936f5f820d93d546099) ) - ROM_FILL ( 0x400000, 0x400000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e21-07.rom", 0x000000, 0x100000, CRC(7789bf7c) SHA1(bc8ef1696adac99a1fabae9b79afcd3461cf323b) ) - ROM_LOAD16_BYTE("e21-06.rom", 0x000001, 0x100000, CRC(997fc0d7) SHA1(58a546f739072fedebfe7c972fe85f72107726b2) ) - ROM_LOAD ("e21-05.rom", 0x300000, 0x100000, CRC(07eab58f) SHA1(ae2d7b839b39d88d11652df74804a39230674467) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* Sound CPU */ - ROM_LOAD16_BYTE("e21-12.32", 0x100000, 0x40000, CRC(34093de1) SHA1(d69d6b5f10b8fe86f727d739ed5aecceb15e01f7) ) - ROM_LOAD16_BYTE("e21-13.33", 0x100001, 0x40000, CRC(9e9ec437) SHA1(b0265b688846c642d240b2f3677d2330d31eaa87) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e21-03.rom", 0x000000, 0x200000, CRC(54c5f83d) SHA1(10a993199c8d5a1361bd29a4b92c404451c6da01) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e21-04.rom", 0x400000, 0x200000, CRC(e5af2a2d) SHA1(62a49504decc7160b710260218920d2d6d2af8f0) ) // CC CD -std- -ROM_END - -ROM_START( cleopatr ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e28-10.bin", 0x000000, 0x80000, CRC(013fbc39) SHA1(d36ac44609b88e1da35c98dda381042e0112ea00) ) - ROM_LOAD32_BYTE("e28-09.bin", 0x000001, 0x80000, CRC(1c48a1f9) SHA1(791d321c03073cdd0269b970f926897446d2a6fb) ) - ROM_LOAD32_BYTE("e28-08.bin", 0x000002, 0x80000, CRC(7564f199) SHA1(ec4b19edb0660ad478f6c0ec27d701368696a2e4) ) - ROM_LOAD32_BYTE("e28-07.bin", 0x000003, 0x80000, CRC(a507797b) SHA1(6fa04091df1fa8c08f03b1ee378b4ec4a6ef7f51) ) - - ROM_REGION(0x200000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e28-02.bin", 0x000000, 0x080000, CRC(b20d47cb) SHA1(6888e5564688840fed1c123ab38467066cd59c7f) ) - ROM_LOAD16_BYTE("e28-01.bin", 0x000001, 0x080000, CRC(4440e659) SHA1(71dece81bac8d638473c6531fed5c32798096af9) ) - ROM_FILL ( 0x100000, 0x100000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e28-06.bin", 0x000000, 0x100000, CRC(21d0c454) SHA1(f4c815984b19321cfab303fa6f21d9cad35b09f2) ) - ROM_LOAD16_BYTE("e28-05.bin", 0x000001, 0x100000, CRC(2870dbbc) SHA1(4e412b90cbd9a05956cde3d8cff615ebadca9db6) ) - ROM_LOAD ("e28-04.bin", 0x300000, 0x100000, CRC(57aef029) SHA1(5c07209015d4749d1ffb3e9c1a890e6cfeec8cb0) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* Sound CPU */ - ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) ) - ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) ) - - ROM_REGION16_BE(0x400000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated - ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) ) // C8 C9 CA CB -ROM_END - -ROM_START( pbobble3 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e29-12.rom", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) - ROM_LOAD32_BYTE("e29-11.rom", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) - ROM_LOAD32_BYTE("e29-10.rom", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) - ROM_LOAD32_BYTE("e29-16.rom", 0x000003, 0x80000, CRC(aac293da) SHA1(2188d1abe6aeefa872cf16db40999574497d982e) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e29-02.rom", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) - ROM_LOAD16_BYTE("e29-01.rom", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.rom", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.rom", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) - ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 - ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA - ROM_LOAD16_BYTE("e29-05.rom", 0xc00000, 0x200000, CRC(e33c1234) SHA1(84c336ed6fd8723e824889fe7b52c284be659e62) ) // CB CC -std- -ROM_END - -ROM_START( pbobbl3u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e29-12.rom", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) - ROM_LOAD32_BYTE("e29-11.rom", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) - ROM_LOAD32_BYTE("e29-10.rom", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) - ROM_LOAD32_BYTE("e29-15.bin", 0x000003, 0x80000, CRC(ddc5a34c) SHA1(f38c99ac33b199b3ed99a84c67984f23a864e5d4) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e29-02.rom", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) - ROM_LOAD16_BYTE("e29-01.rom", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.rom", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.rom", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) - ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 - ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA - ROM_LOAD16_BYTE("e29-05.rom", 0xc00000, 0x200000, CRC(e33c1234) SHA1(84c336ed6fd8723e824889fe7b52c284be659e62) ) // CB CC -std- -ROM_END - -ROM_START( pbobbl3j ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e29-12.rom", 0x000000, 0x80000, CRC(9eb19a00) SHA1(5a6417e4377070f9f01110dc6d513d0de01cff1e) ) - ROM_LOAD32_BYTE("e29-11.rom", 0x000001, 0x80000, CRC(e54ada97) SHA1(325e2bc7156656cc262989910dde07a1746cf790) ) - ROM_LOAD32_BYTE("e29-10.rom", 0x000002, 0x80000, CRC(1502a122) SHA1(cb981a4578aa30276c491a0ef47f5e05c05d8b28) ) - ROM_LOAD32_BYTE("e29-09.bin", 0x000003, 0x80000, CRC(44ccf2f6) SHA1(60877525feaa992b1b374acfb5c16439e5f32161) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE ) /* Sprites */ - ROM_LOAD16_BYTE("e29-02.rom", 0x000000, 0x100000, CRC(437391d3) SHA1(b3cc64c68553d37e0bd09e0dece14901d8df5866) ) - ROM_LOAD16_BYTE("e29-01.rom", 0x000001, 0x100000, CRC(52547c77) SHA1(d0cc8b8915cec1506c9733a1ce1638038ea93d25) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE ) /* Tiles */ - ROM_LOAD16_BYTE("e29-08.rom", 0x000000, 0x100000, CRC(7040a3d5) SHA1(ea284ec530aac20348f84122e38a508bbc283f44) ) - ROM_LOAD16_BYTE("e29-07.rom", 0x000001, 0x100000, CRC(fca2ea9b) SHA1(a87ebedd0d16657288df434a70b8933fafe0ca25) ) - ROM_LOAD ("e29-06.rom", 0x300000, 0x100000, CRC(c16184f8) SHA1(ded417d9d116b5a2f7518fa404bc2dda1c6a6366) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e29-13.rom", 0x100000, 0x40000, CRC(1ef551ef) SHA1(527defe8f35314304adb4b483285b08cd6ebe865) ) - ROM_LOAD16_BYTE("e29-14.rom", 0x100001, 0x40000, CRC(7ee7e688) SHA1(d65aa9c449e1d64f10d1be9727a9d93ab1571e65) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e29-03.rom", 0x400000, 0x200000, CRC(a4371658) SHA1(26510a3f6de97f49b10dfc5cb9b7da947a44bfcb) ) // CE CF D0 D1 - ROM_LOAD16_BYTE("e29-04.rom", 0x800000, 0x200000, CRC(d1f42457) SHA1(2c77be6365deb5ef215da0c66da23b415623bdb1) ) // D2 C8 C9 CA - ROM_LOAD16_BYTE("e29-05.rom", 0xc00000, 0x200000, CRC(e33c1234) SHA1(84c336ed6fd8723e824889fe7b52c284be659e62) ) // CB CC -std- -ROM_END - -ROM_START( arkretrn ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e36-11", 0x000000, 0x040000, CRC(b50cfb92) SHA1(dac69fc9ef03315b11bb94d19e3dfdc8867b08ed) ) - ROM_LOAD32_BYTE("e36-10", 0x000001, 0x040000, CRC(c940dba1) SHA1(ec87c9e4250f8b2f15094681a4783bca8c68f576) ) - ROM_LOAD32_BYTE("e36-09", 0x000002, 0x040000, CRC(f16985e0) SHA1(a74cfee8f958e7a32354d4353eeb199a7fb1ce64) ) - ROM_LOAD32_BYTE("e36-08", 0x000003, 0x040000, CRC(aa699e1b) SHA1(6bde0759940e0f238e4fa5bd228115574ff927d8) ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* Sound CPU */ - ROM_LOAD16_BYTE("e36-12", 0x100000, 0x40000, CRC(3bae39be) SHA1(777142ecc24799b934ed51ac4cd8700bb6da7e3c) ) - ROM_LOAD16_BYTE("e36-13", 0x100001, 0x40000, CRC(94448e82) SHA1(d7766490318623be770545918391c5e6144dd619) ) - - ROM_REGION(0x100000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e36-03", 0x000000, 0x040000, CRC(1ea8558b) SHA1(b8ea4d6e1fb551b3c47f336a5e60ec33f7be525f) ) - ROM_LOAD16_BYTE("e36-02", 0x000001, 0x040000, CRC(694eda31) SHA1(1a6f85057395052571491f85c633d5632ab64865) ) - ROM_LOAD ("e36-01", 0x0c0000, 0x040000, CRC(54b9b2cd) SHA1(55ae964ea1d2cc40a6578c5339754a270096f01f) ) - ROM_FILL ( 0x080000, 0x040000, 0 ) - - ROM_REGION(0x200000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e36-07", 0x000000, 0x080000, CRC(266bf1c1) SHA1(489549478d7016400af2e643d4b98bf605237d34) ) - ROM_LOAD16_BYTE("e36-06", 0x000001, 0x080000, CRC(110ab729) SHA1(0ccc0a5abbcfd79a069daf5162cd344a5fb225d5) ) - ROM_LOAD ("e36-05", 0x180000, 0x080000, CRC(db18bce2) SHA1(b6653facc7f5c624f5710a51f2b2abfe640177e2) ) - ROM_FILL ( 0x100000, 0x080000, 0 ) - - ROM_REGION16_BE(0x400000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 1 populated - ROM_LOAD16_BYTE("e36-04", 0x000000, 0x200000, CRC(2250959b) SHA1(06943f1b72bdf325485356a01278d88aeae93d87) ) // C8 C9 CA CB - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8-d77-14.bin", 0x0800, 0x0117, CRC(7427e777) SHA1(e692cedb13e5bc02edc4b25e9dcea51e6715de85) ) -ROM_END - -ROM_START( kirameki ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e44-19.20", 0x000000, 0x80000, CRC(2f3b239a) SHA1(fb79955eba377d429ece04553251146b406143b1) ) - ROM_LOAD32_BYTE("e44-18.19", 0x000001, 0x80000, CRC(3137c8bc) SHA1(5f5cb47e214fe116cf985e847fa8340cf2ea5a64) ) - ROM_LOAD32_BYTE("e44-17.18", 0x000002, 0x80000, CRC(5905cd20) SHA1(52545622d3c7a31a9e95ab48e7251f1eae2c25b4) ) - ROM_LOAD32_BYTE("e44-16.17", 0x000003, 0x80000, CRC(5e9ac3fd) SHA1(3c45707d0d260961df99249978c7e8f51dd1720e) ) - - ROM_REGION(0x1800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e44-06.12", 0x0000000, 0x400000, CRC(80526d58) SHA1(d32bf1e6494848b6e258b747245742310398be22) ) - ROM_LOAD16_BYTE("e44-04.8", 0x0000001, 0x400000, CRC(28c7c295) SHA1(90189ae26833499218b2236d48ce500a2eea3235) ) - ROM_LOAD16_BYTE("e44-05.11", 0x0800000, 0x200000, CRC(0fbc2b26) SHA1(0edd67213a9eba15fff0931a07608f9523ae1d95) ) - ROM_LOAD16_BYTE("e44-03.7", 0x0800001, 0x200000, CRC(d9e63fb0) SHA1(f2d8c30a4aaa2090673d5d2b1071e586a05c0236) ) - ROM_LOAD ("e44-02.4", 0x1200000, 0x400000, CRC(5481efde) SHA1(560a1b8acf672781e912dca51599b5aa4d69520a) ) - ROM_LOAD ("e44-01.3", 0x1600000, 0x200000, CRC(c4bdf727) SHA1(793a22a30ef44db818cfac96ff8e9d2f99cb672f) ) - ROM_FILL ( 0x0c00000, 0x600000, 0 ) - - ROM_REGION(0xc00000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e44-14.47", 0x000000, 0x200000, CRC(4597c034) SHA1(3c16c20969df9e439d42a89e649146319df1b996) ) - ROM_LOAD16_BYTE("e44-12.45", 0x000001, 0x200000, CRC(7160a181) SHA1(d4a351f38219694d6545b4c502c0ba0a7f0bdfd0) ) - ROM_LOAD16_BYTE("e44-13.46", 0x400000, 0x100000, CRC(0b016c4e) SHA1(670d1741376cf929adad3c5e45f921ed4b317d31) ) - ROM_LOAD16_BYTE("e44-11.44", 0x400001, 0x100000, CRC(34d84143) SHA1(d553ab2da9188b1881f70802637d46574a42787e) ) - ROM_LOAD ("e44-10.43", 0x900000, 0x200000, CRC(326f738e) SHA1(29c0c870341345eba10993446fecee08b6f13027) ) - ROM_LOAD ("e44-09.42", 0xb00000, 0x100000, CRC(a8e68eb7) SHA1(843bbb8a61bd4b9cbb14c7242281ce0c83c432ff) ) - ROM_FILL ( 0x600000, 0x300000, 0 ) - - ROM_REGION(0x400000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e44-20.51", 0x100000, 0x080000, CRC(4df7e051) SHA1(db0f5758458764a1c04116d5d5bbb20d4d36c875) ) - ROM_LOAD16_BYTE("e44-21.52", 0x100001, 0x080000, CRC(d31b94b8) SHA1(41ee381d10254dc6e7163c5f353568539a96fc20) ) - ROM_LOAD16_WORD_SWAP("e44-15.53", 0x200000, 0x200000, CRC(5043b608) SHA1(a328b8cc27ba1620a75a17cdf8571e217c42b9fd) ) /* Banked data */ - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - ROM_LOAD16_BYTE("e44-07.38", 0x000000, 0x400000, CRC(a9e28544) SHA1(0dc3e1755a93fda310d26ed5f95dd211c05e579e) ) // D2 C8 C8 C9 CA CB CC CD - ROM_LOAD16_BYTE("e44-08.39", 0x800000, 0x400000, CRC(33ba3037) SHA1(b4bbc4198929938607c444edf159ff40f53235d7) ) // CE CF D0 -- -- -- -std- -ROM_END - -ROM_START( puchicar ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e46-16", 0x000000, 0x80000, CRC(cf2accdf) SHA1(b1e9808299a3c68c939009275108ee76cd7f5749) ) - ROM_LOAD32_BYTE("e46-15", 0x000001, 0x80000, CRC(c32c6ed8) SHA1(b0c4cca836e6957ecabdaddff23439f9d038a161) ) - ROM_LOAD32_BYTE("e46-14", 0x000002, 0x80000, CRC(a154c300) SHA1(177d9f3514f1e59a1036b979d2ab969249f519ca) ) - ROM_LOAD32_BYTE("e46-18", 0x000003, 0x80000, CRC(396e3122) SHA1(1000bfe22f783f7121a261d37551bde5687fff8b) ) - - ROM_REGION(0x1000000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e46-06", 0x000000, 0x200000, CRC(b74336f2) SHA1(f5039a4d2117c78e905e2ef6dec43e143a91915e) ) - ROM_LOAD16_BYTE("e46-04", 0x000001, 0x200000, CRC(463ecc4c) SHA1(e1649e68acc1637a5dc596b1b29c735e286056af) ) - ROM_LOAD16_BYTE("e46-05", 0x400000, 0x200000, CRC(83a32eee) SHA1(1a1059b0a5ba1542c866072ffe1874daba982387) ) - ROM_LOAD16_BYTE("e46-03", 0x400001, 0x200000, CRC(eb768193) SHA1(1d48334c0dfb9f72484717c267ac9b9b8d887fc8) ) - ROM_LOAD ("e46-02", 0xc00000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) - ROM_LOAD ("e46-01", 0xe00000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_FILL ( 0x800000, 0x400000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) - ROM_LOAD16_BYTE("e46-11", 0x000001, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) - ROM_LOAD ("e46-10", 0x300000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e46-21", 0x100000, 0x40000, CRC(b466cff6) SHA1(0757984f15a6ac9939c1e8625d5b9bfcbc788acc) ) - ROM_LOAD16_BYTE("e46-22", 0x100001, 0x40000, CRC(c67b767e) SHA1(19f3db6615d7a6ed4d2636b6beabe2f3ed6d0c38) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF - ROM_LOAD16_BYTE("e46-09", 0xc00000, 0x200000, CRC(824135f8) SHA1(13e9edeac38e63fa27d9fd7892d51c216f36ec30) ) // D0 D1 D2 D3 - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09a.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10a.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11a.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12a.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15a.bin", 0x0800, 0x0117, CRC(0edf820a) SHA1(6bfcc711a15a31dd57e863c46537df9de1a66c2f) ) -ROM_END - -ROM_START( puchicrj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e46-16", 0x000000, 0x80000, CRC(cf2accdf) SHA1(b1e9808299a3c68c939009275108ee76cd7f5749) ) - ROM_LOAD32_BYTE("e46-15", 0x000001, 0x80000, CRC(c32c6ed8) SHA1(b0c4cca836e6957ecabdaddff23439f9d038a161) ) - ROM_LOAD32_BYTE("e46-14", 0x000002, 0x80000, CRC(a154c300) SHA1(177d9f3514f1e59a1036b979d2ab969249f519ca) ) - ROM_LOAD32_BYTE("e46.13", 0x000003, 0x80000, CRC(59fbdf3a) SHA1(4499a7579907e8e1d8ca2c29e8e8d12185e8fe4d) ) - - ROM_REGION(0x1000000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e46-06", 0x000000, 0x200000, CRC(b74336f2) SHA1(f5039a4d2117c78e905e2ef6dec43e143a91915e) ) - ROM_LOAD16_BYTE("e46-04", 0x000001, 0x200000, CRC(463ecc4c) SHA1(e1649e68acc1637a5dc596b1b29c735e286056af) ) - ROM_LOAD16_BYTE("e46-05", 0x400000, 0x200000, CRC(83a32eee) SHA1(1a1059b0a5ba1542c866072ffe1874daba982387) ) - ROM_LOAD16_BYTE("e46-03", 0x400001, 0x200000, CRC(eb768193) SHA1(1d48334c0dfb9f72484717c267ac9b9b8d887fc8) ) - ROM_LOAD ("e46-02", 0xc00000, 0x200000, CRC(fb046018) SHA1(48d9c582ec9ef59dcc7538598fbd7ea2117896af) ) - ROM_LOAD ("e46-01", 0xe00000, 0x200000, CRC(34fc2103) SHA1(dca199bbd0ad28a11960101cda8d110943b10822) ) - ROM_FILL ( 0x800000, 0x400000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e46-12", 0x000000, 0x100000, CRC(1f3a9851) SHA1(c8711e2ef0096b41cc9b4c41e521d44b824f7181) ) - ROM_LOAD16_BYTE("e46-11", 0x000001, 0x100000, CRC(e9f10bf1) SHA1(4ee9be3846b262dc0992c904c40580353b164d46) ) - ROM_LOAD ("e46-10", 0x300000, 0x100000, CRC(1999b76a) SHA1(83d6d2efe250bf3b119982bbf701f9b9d856af2d) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e46-19", 0x100000, 0x40000, CRC(2624eba0) SHA1(ba0b13bda241c648c7f8520106acd8c0c888fe29) ) - ROM_LOAD16_BYTE("e46-20", 0x100001, 0x40000, CRC(065e934f) SHA1(0ec1b5ae33b1c43776b9327c9d380787d64ed5f9) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e46-07", 0x400000, 0x200000, CRC(f20af91e) SHA1(86040ff7ce591418b32c06c3a02fabcbe76281f5) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e46-08", 0x800000, 0x200000, CRC(f7f96e1d) SHA1(8a83ea9036e8647b8dec6b5e144288ed9c025779) ) // CC CD CE CF - ROM_LOAD16_BYTE("e46-09", 0xc00000, 0x200000, CRC(824135f8) SHA1(13e9edeac38e63fa27d9fd7892d51c216f36ec30) ) // D0 D1 D2 D3 - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09a.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10a.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11a.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12a.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15a.bin", 0x0800, 0x0117, CRC(0edf820a) SHA1(6bfcc711a15a31dd57e863c46537df9de1a66c2f) ) -ROM_END - -ROM_START( pbobble4 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) - ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) - ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) - ROM_LOAD32_BYTE("e49-16.17", 0x000003, 0x80000, CRC(0a021624) SHA1(21a948f9f4adce0aaf76292f419a7c289f265d30) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) - ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) - ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 - ROM_LOAD16_BYTE("e49-05", 0xc00000, 0x200000, CRC(5ce90ee2) SHA1(afafc1f64ecf2dbd94a9f7871a26150ac2d22be5) ) // D3 D4 D5 DB - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.bin", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( pbobbl4j ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) - ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) - ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) - ROM_LOAD32_BYTE("e49-09.17", 0x000003, 0x80000, CRC(e40c7708) SHA1(0a8e973bb1d8c6dea9124d2742d354c6f20c08ee) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) - ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) - ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 - ROM_LOAD16_BYTE("e49-05", 0xc00000, 0x200000, CRC(5ce90ee2) SHA1(afafc1f64ecf2dbd94a9f7871a26150ac2d22be5) ) // D3 D4 D5 DB - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.bin", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( pbobbl4u ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e49-12.20", 0x000000, 0x80000, CRC(fffea203) SHA1(6351209c78099f270c8d8c8aa4a2dd9ce126c4ed) ) - ROM_LOAD32_BYTE("e49-11.19", 0x000001, 0x80000, CRC(bf69a087) SHA1(2acbdb7faf5bdb1d9b5b9506c0b6f02fedcbd6a5) ) - ROM_LOAD32_BYTE("e49-10.18", 0x000002, 0x80000, CRC(0307460b) SHA1(7ad9c6e5d319d6727444ffd14a87c6885445cee0) ) - ROM_LOAD32_BYTE("e49-15.17", 0x000003, 0x80000, CRC(7d0526b2) SHA1(1b769f735735e9135418ff26c020d8ac7f62d857) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e49-02", 0x000000, 0x100000, CRC(c7d2f40b) SHA1(cc6813189d6b31d7db099e49443af395f137462c) ) - ROM_LOAD16_BYTE("e49-01", 0x000001, 0x100000, CRC(a3dd5f85) SHA1(2b305fdc18806bb5d7c3de0ac6a6eb07f98b4d3d) ) - ROM_FILL ( 0x200000, 0x200000, 0 ) - - ROM_REGION(0x400000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e49-08", 0x000000, 0x100000, CRC(87408106) SHA1(6577568ab4b92d6a81f43cf9ea2f0e30e17e2742) ) - ROM_LOAD16_BYTE("e49-07", 0x000001, 0x100000, CRC(1e1e8e1c) SHA1(9c3b994064c6af62b6a24cab85089a74fd92cf7f) ) - ROM_LOAD ("e49-06", 0x300000, 0x100000, CRC(ec85f7ce) SHA1(9fead68c38fc9ca84d34d70343b13665978c362b) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 code */ - ROM_LOAD16_BYTE("e49-13.32", 0x100000, 0x40000, CRC(83536f7f) SHA1(2252cee00ae260954cc76d92af8eb2a87d23cbfb) ) - ROM_LOAD16_BYTE("e49-14.33", 0x100001, 0x40000, CRC(19815bdb) SHA1(38ad682236c7df0710055dd8dbdec30d5da0839d) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e49-03", 0x400000, 0x200000, CRC(f64303e0) SHA1(4d5df77047522419d21ff36402076e9b7c5acff8) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e49-04", 0x800000, 0x200000, CRC(09be229c) SHA1(a3a88969b34628d2bf3163bdf85d520feac9a7ac) ) // E7 CD E8 E6 - ROM_LOAD16_BYTE("e49-05", 0xc00000, 0x200000, CRC(5ce90ee2) SHA1(afafc1f64ecf2dbd94a9f7871a26150ac2d22be5) ) // D3 D4 D5 DB - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.bin", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.bin", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.bin", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.bin", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.bin", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( popnpopj ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) - ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) - ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) - ROM_LOAD32_BYTE("e51-09.17", 0x000003, 0x80000, CRC(4a086017) SHA1(edec4120b3d96a179f12949bd261b97d41351cab) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) - ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) - ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC - ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.ic14", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.ic28", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.ic37", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.ic48", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.ic21", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( popnpop ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) - ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) - ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) - ROM_LOAD32_BYTE("e51-16.17", 0x000003, 0x80000, CRC(2a9d8e0f) SHA1(a5363a98f03cbc7b5f7c393b21062730bd6ee2a8) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) - ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) - ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC - ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.ic14", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.ic28", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.ic37", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.ic48", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.ic21", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( popnpopu ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e51-12.20", 0x000000, 0x80000, CRC(86a237d5) SHA1(4b87a51705a4d831b21ee770af17310c6c091c2e) ) - ROM_LOAD32_BYTE("e51-11.19", 0x000001, 0x80000, CRC(8a49f34f) SHA1(8691fbc1e96f0c9eb550dbb8ae8d7ef371397166) ) - ROM_LOAD32_BYTE("e51-10.18", 0x000002, 0x80000, CRC(4bce68f8) SHA1(1a9220926f4d8db509f4ccbf318d123f34c42153) ) - ROM_LOAD32_BYTE("e51-15.17", 0x000003, 0x80000, CRC(1ad77903) SHA1(d5e631d70108d1f15bcfcacde914ac2fb95cb102) ) - - ROM_REGION(0x400000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e51-03.12",0x000000, 0x100000, CRC(a24c4607) SHA1(2396fa927446568ad8d98ad6756813e2f30523dd) ) - ROM_LOAD16_BYTE("e51-02.8", 0x000001, 0x100000, CRC(6aa8b96c) SHA1(aaf7917dce5fed43c68cd3065538b58666ef3dbc) ) - ROM_LOAD ("e51-01.4", 0x300000, 0x100000, CRC(70347e24) SHA1(6b4ab90f0209e50eac7bee3abcf40afb71ab950a) ) - ROM_FILL ( 0x200000, 0x100000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e51-08.47", 0x000000, 0x200000, CRC(3ad41f02) SHA1(a4959113c01062003df41cdf6146e8a034917ee2) ) - ROM_LOAD16_BYTE("e51-07.45", 0x000001, 0x200000, CRC(95873e46) SHA1(02504cbd920c8dbcb5abec6388305eff38f7efe0) ) - ROM_LOAD ("e51-06.43", 0x600000, 0x200000, CRC(c240d6c8) SHA1(6f3b5224b7eb8783893375d432bbbfc37f81c230) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e51-13.32", 0x100000, 0x40000, CRC(3b9e3986) SHA1(26340bda0ad2ea580e2395135617966676a71ad5) ) - ROM_LOAD16_BYTE("e51-14.33", 0x100001, 0x40000, CRC(1f9a5015) SHA1(5da38c5fe2a50bcde6bd46ab1cb9a56dbab1a882) ) - - ROM_REGION16_BE(0x800000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated - ROM_LOAD16_BYTE("e51-04.38", 0x000000, 0x200000, CRC(66790f55) SHA1(ac539b2655dbcda1bdffb9f3cf4c96fb05721e9d) ) // C9 CA CB CC - ROM_LOAD16_BYTE("e51-05.41", 0x400000, 0x200000, CRC(4d08b26d) SHA1(071a11a1b1ee8b8129d02b15ec0e533912c91b04) ) // CD CE -std- - - ROM_REGION( 0x0a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8a-d77-09.ic14", 0x0000, 0x0104, CRC(b371532b) SHA1(7f875f380e69d14326a036a09d2fda7554b73664) ) - ROM_LOAD( "pal16l8a-d77-10.ic28", 0x0200, 0x0104, CRC(42f59227) SHA1(1f0db7489b49c00603ea51d130c9dfc237545390) ) - ROM_LOAD( "palce16v8q-d77-11.ic37", 0x0400, 0x0117, CRC(eacc294e) SHA1(90679d523d90c1f8d2ecbd7b6fac2861f94cf107) ) - ROM_LOAD( "palce16v8q-d77-12.ic48", 0x0600, 0x0117, CRC(e9920cfe) SHA1(58b73fe65f118d57fdce56d781593fc70c797f1b) ) - ROM_LOAD( "palce16v8q-d77-15.ic21", 0x0800, 0x0117, NO_DUMP ) /* PAL is read protected */ -ROM_END - -ROM_START( landmakr ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("e61-13.20", 0x000000, 0x80000, CRC(0af756a2) SHA1(2dadac6873f2491ee77703f07f00dde2aa909355) ) - ROM_LOAD32_BYTE("e61-12.19", 0x000001, 0x80000, CRC(636b3df9) SHA1(78a5bf4977bb90d710942188ce5016f3df499feb) ) - ROM_LOAD32_BYTE("e61-11.18", 0x000002, 0x80000, CRC(279a0ee4) SHA1(08380286737b33db76a79b27d0df5faba17dfb96) ) - ROM_LOAD32_BYTE("e61-10.17", 0x000003, 0x80000, CRC(daabf2b2) SHA1(dbfbe38841fc2f937052353eff1202790d364b9f) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("e61-03.12",0x000000, 0x200000, CRC(e8abfc46) SHA1(fbde006f9822af3ed8debec525270d329981ea21) ) - ROM_LOAD16_BYTE("e61-02.08",0x000001, 0x200000, CRC(1dc4a164) SHA1(33b412d9653099aaff8ed5e62d1ba4fc30aa9058) ) - ROM_LOAD ("e61-01.04",0x600000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD16_BYTE("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) ) - ROM_LOAD16_BYTE("e61-08.45", 0x000001, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) ) - ROM_LOAD ("e61-07.43", 0x600000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x140000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x20000, CRC(b905f4a7) SHA1(613b954e3e129fd44b4ce64958f16e5636012d6e) ) - ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x20000, CRC(87909869) SHA1(7b90c23899a673966cac3352d375d17b83e66596) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) ) // C8 C9 CA CB - ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) ) // CC CD CE CF - ROM_LOAD16_BYTE("e61-06.40", 0xc00000, 0x200000, CRC(2e717bfe) SHA1(1be54cd2ec65d8fd49a5c09b5d27791fd7a320d4) ) // D0 D1 D2 D3 -ROM_END - -ROM_START( landmkrp ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68020 code */ - ROM_LOAD32_BYTE("mpro-3.60", 0x000000, 0x80000, CRC(f92eccd0) SHA1(88e836390be1ca08c578080662d17007a9e0bcc3) ) - ROM_LOAD32_BYTE("mpro-2.61", 0x000001, 0x80000, CRC(5a26c9e0) SHA1(e7f09722f6b7a459248c2c8ad0a2695365cc78dc) ) - ROM_LOAD32_BYTE("mpro-1.62", 0x000002, 0x80000, CRC(710776a8) SHA1(669aa086e7a5faedd90407e558c01bf5f0869790) ) - ROM_LOAD32_BYTE("mpro-0.63", 0x000003, 0x80000, CRC(bc71dd2f) SHA1(ec0d07f9729a53737975547066bd1221f78563c5) ) - - ROM_REGION(0x800000, REGION_GFX1 , ROMREGION_DISPOSE) /* Sprites */ - ROM_LOAD16_BYTE("obj0-0.8", 0x000000, 0x080000, CRC(4b862c1b) SHA1(ef46af27d0657b95f5f3bad13629f9119958fe78) ) - ROM_LOAD16_BYTE("obj1-0.7", 0x100000, 0x080000, CRC(90502355) SHA1(e1edc0cec8ca53fda4d42f9b9fdd385379d7a958) ) - ROM_LOAD16_BYTE("obj2-0.6", 0x200000, 0x080000, CRC(3bffe4b2) SHA1(6e9bb8716f312cb8c81ecebfc61f9dfc8c9013dc) ) - ROM_LOAD16_BYTE("obj3-0.5", 0x300000, 0x080000, CRC(3a0e1479) SHA1(50430c304c437caadebf04499f49ca6323ebdaba) ) - ROM_LOAD16_BYTE("obj0-1.20",0x000001, 0x080000, CRC(1dc6e1ae) SHA1(1e8fa89b1a8846de1516ca9d2ef9227b4af07e38) ) - ROM_LOAD16_BYTE("obj1-1.19",0x100001, 0x080000, CRC(a24edb24) SHA1(81fe77eccdd2a7ea02454e57e52b21ad57eb817e) ) - ROM_LOAD16_BYTE("obj2-1.18",0x200001, 0x080000, CRC(1b2a87f3) SHA1(b7dc871196b92bb4f6ea31bff0717cb3a508bc05) ) - ROM_LOAD16_BYTE("obj3-1.17",0x300001, 0x080000, CRC(c7e91180) SHA1(c8bfa43ab3b9a6c4ba08e1a7389880e964bb1d80) ) - ROM_LOAD ("obj0-2.32",0x600000, 0x080000, CRC(94cc01d0) SHA1(f4cf4cb237a3f2bd9df35424f85a84b70b47d402) ) - ROM_LOAD ("obj1-2.31",0x680000, 0x080000, CRC(c2757722) SHA1(83a921647eb0375e10c7f76c08ebe66f2a6fdcd9) ) - ROM_LOAD ("obj2-2.30",0x700000, 0x080000, CRC(934556ff) SHA1(aca8585680e66635b8872259cfd38edc96e92066) ) - ROM_LOAD ("obj3-2.29",0x780000, 0x080000, CRC(97f0f777) SHA1(787a33b91cb262cc3983a46ba259dd9b153d532a) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x800000, REGION_GFX2 , ROMREGION_DISPOSE) /* Tiles */ - ROM_LOAD32_BYTE("scr0-0.7", 0x000000, 0x080000, CRC(da6ba562) SHA1(6aefd249d3491380837e04583a0069ed9c495d05) ) - ROM_LOAD32_BYTE("scr0-1.6", 0x000002, 0x080000, CRC(8c201d27) SHA1(83147c35d03c7b5c84220a6442e99b87ba99cfbc) ) - ROM_LOAD32_BYTE("scr0-2.5", 0x000001, 0x080000, CRC(36756b9c) SHA1(3d293b11d03fb4cdc5c041fcdade9941bf6a72d0) ) - ROM_LOAD32_BYTE("scr0-3.4", 0x000003, 0x080000, CRC(4e0274f3) SHA1(d65378db78a310c664ef49a216f18e16c932f58d) ) - ROM_LOAD32_BYTE("scr1-0.19",0x200000, 0x080000, CRC(2689f716) SHA1(6849e7d36aca5a678b74e1cce9e6a2381928c127) ) - ROM_LOAD32_BYTE("scr1-1.18",0x200002, 0x080000, CRC(f3086949) SHA1(c21f5384294a9fcfb422dbb85565305520a334b5) ) - ROM_LOAD32_BYTE("scr1-2.17",0x200001, 0x080000, CRC(7841468a) SHA1(58b60cbb4ec7e2d0d64fc42161b53b9ff5e2ca8c) ) - ROM_LOAD32_BYTE("scr1-3.16",0x200003, 0x080000, CRC(926ad229) SHA1(4840227c184bde8d125122a90a70102bf2757ccc) ) - ROM_LOAD16_BYTE("scr0-4.3", 0x600000, 0x080000, CRC(5b3cf564) SHA1(003f1e4c653897016c95dee67161fa3964d4f5a8) ) - ROM_LOAD16_BYTE("scr0-5.2", 0x600001, 0x080000, CRC(8e1ea0fe) SHA1(aa815d1d67bf72be6a0c4076490dfd36f28a82ab) ) - ROM_LOAD16_BYTE("scr1-4.15",0x700000, 0x080000, CRC(783b6d10) SHA1(eab2c7b19890c1f6c13f0062978db5b81988499b) ) - ROM_LOAD16_BYTE("scr1-5.14",0x700001, 0x080000, CRC(24aba128) SHA1(b03804c738d86bfafc1f8fb91f8e77e878d2dc83) ) - ROM_FILL ( 0x400000, 0x200000, 0 ) - - ROM_REGION(0x180000, REGION_CPU2, 0) /* 68000 sound CPU */ - ROM_LOAD16_BYTE("spro-1.66", 0x100000, 0x40000, CRC(18961bbb) SHA1(df054def35a49c0754356c15ec15336cbf28b063) ) - ROM_LOAD16_BYTE("spro-0.65", 0x100001, 0x40000, CRC(2c64557a) SHA1(768007162d5d2cbe650c735bc1af2c10ed13b046) ) - - ROM_REGION16_BE(0x1000000, REGION_SOUND1 , ROMREGION_ERASE00 ) // V2: 4 banks - // empty - ROM_LOAD16_BYTE("snd-0.43", 0x400000, 0x80000, CRC(0e5ef5c8) SHA1(e2840c9cedb9361b7eb307e87ea96f3bb6225487) ) // C8 - ROM_LOAD16_BYTE("snd-1.44", 0x500000, 0x80000, CRC(2998fd65) SHA1(192e32f9934465bb0da5c1ad116c5ea9b286f36a) ) // C9 - ROM_LOAD16_BYTE("snd-2.45", 0x600000, 0x80000, CRC(da7477ad) SHA1(52c69e86e8f8004d616265f3c1f508e7fac19fdc) ) // CA - ROM_LOAD16_BYTE("snd-3.46", 0x700000, 0x80000, CRC(141670b9) SHA1(d1d75bc9c27481de68b446e397c448b0163a7916) ) // CB - ROM_LOAD16_BYTE("snd-4.32", 0x800000, 0x80000, CRC(e9dc18f6) SHA1(c84920246a9967b155e137893c080bce6850db85) ) // CC - ROM_LOAD16_BYTE("snd-5.33", 0x900000, 0x80000, CRC(8af91ca8) SHA1(853d2a036602338539cf25e68eac1e686c0861d5) ) // CD - ROM_LOAD16_BYTE("snd-6.34", 0xa00000, 0x80000, CRC(6f520b82) SHA1(c559c80386de08256b2f8cbf198271223a83fdb9) ) // CE - ROM_LOAD16_BYTE("snd-7.35", 0xb00000, 0x80000, CRC(69410f0f) SHA1(ff023842383ce26818ec7361831e122737a9e94b) ) // CF - ROM_LOAD16_BYTE("snd-8.20", 0xc00000, 0x80000, CRC(d98c275e) SHA1(862f5759d2e41243b8a6a3f27ab2da2a1456d92c) ) // D0 - ROM_LOAD16_BYTE("snd-9.21", 0xd00000, 0x80000, CRC(82a76cfc) SHA1(a9bdc9b05cfb658165165c3292a698ed0e977ede) ) // D1 - ROM_LOAD16_BYTE("snd-10.22",0xe00000, 0x80000, CRC(0345f585) SHA1(de8a9816eba7d4db73a53103479ee9d56889e127) ) // D2 - ROM_LOAD16_BYTE("snd-11.23",0xf00000, 0x80000, CRC(4caf571a) SHA1(c209f78362442f8a952c180e3d01a5e8e9d5c71c) ) // D3 -ROM_END - -/******************************************************************************/ - -static void tile_decode(int uses_5bpp_tiles) -{ - unsigned char lsb,msb; - unsigned int offset,i; - UINT8 *gfx = memory_region(REGION_GFX2); - int size=memory_region_length(REGION_GFX2); - int half=size/2,data; - - /* Setup ROM formats: - - Some games will only use 4 or 5 bpp sprites, and some only use 4 bpp tiles, - I don't believe this is software or prom controlled but simply the unused data lines - are tied low on the game board if unused. This is backed up by the fact the palette - indices are always related to 4 bpp data, even in 6 bpp games. - - */ - if (uses_5bpp_tiles) - for (i=half; i>0) | ((lsb&0x02)<<4) | ((lsb&0x01)<<1); - gfx[offset+2]=((msb&0x08)<<1) | ((msb&0x04)>>2) | ((lsb&0x08)<<2) | ((lsb&0x04)>>1); - gfx[offset+1]=((msb&0x20)>>1) | ((msb&0x10)>>4) | ((lsb&0x20)<<0) | ((lsb&0x10)>>3); - gfx[offset+3]=((msb&0x80)>>3) | ((msb&0x40)>>6) | ((lsb&0x80)>>2) | ((lsb&0x40)>>5); - - offset+=4; - } - - gfx = memory_region(REGION_GFX1); - size=memory_region_length(REGION_GFX1); - - offset = size/2; - for (i = size/2+size/4; i>0) & 3; - d2 = (data>>2) & 3; - d3 = (data>>4) & 3; - d4 = (data>>6) & 3; - - gfx[offset] = (d1<<2) | (d2<<6); - offset++; - - gfx[offset] = (d3<<2) | (d4<<6); - offset++; - } -} - -#define F3_IRQ_SPEEDUP_1_R(GAME, counter, mem_addr, mask) \ -static READ32_HANDLER( irq_speedup_r_##GAME ) \ -{ \ - if (activecpu_get_pc()==counter && (f3_ram[mem_addr]&mask)!=0) \ - cpu_spinuntil_int(); \ - return f3_ram[mem_addr]; \ -} - -#define F3_IRQ_SPEEDUP_2_R(GAME, counter, mem_addr, mask) \ -static READ32_HANDLER( irq_speedup_r_##GAME ) \ -{ \ - if (activecpu_get_pc()==counter && (f3_ram[mem_addr]&mask)==0) \ - cpu_spinuntil_int(); \ - return f3_ram[mem_addr]; \ -} - -#define F3_IRQ_SPEEDUP_3_R(GAME, counter, mem_addr, stack) \ -static READ32_HANDLER( irq_speedup_r_##GAME ) \ -{ \ - int ptr; \ - if ((activecpu_get_sp()&2)==0) ptr=f3_ram[(activecpu_get_sp()&0x1ffff)/4]; \ - else ptr=(((f3_ram[(activecpu_get_sp()&0x1ffff)/4])&0x1ffff)<<16) | \ - (f3_ram[((activecpu_get_sp()&0x1ffff)/4)+1]>>16); \ - if (activecpu_get_pc()==counter && ptr==stack) \ - cpu_spinuntil_int(); \ - return f3_ram[mem_addr]; \ -} - -F3_IRQ_SPEEDUP_2_R(arabianm, 0x238, 0x8124/4, 0xff000000 ) -F3_IRQ_SPEEDUP_1_R(gseeker, 0x43ac, 0xad94/4, 0xffff0000 ) -F3_IRQ_SPEEDUP_1_R(gunlock, 0x646, 0x0004/4, 0xffffffff ) -F3_IRQ_SPEEDUP_2_R(cupfinal, 0x254, 0x8114/4, 0x0000ff00 ) -F3_IRQ_SPEEDUP_2_R(scfinals, 0x25a, 0x8114/4, 0x0000ff00 ) -F3_IRQ_SPEEDUP_1_R(lightbr, 0xe0b02, 0x0130/4, 0x000000ff ) -F3_IRQ_SPEEDUP_2_R(kaiserkn, 0x256, 0x8110/4, 0xff000000 ) -F3_IRQ_SPEEDUP_1_R(spcinvdj, 0x60b4e, 0x0230/4, 0x000000ff ) -F3_IRQ_SPEEDUP_2_R(pwrgoal, 0x234, 0x8114/4, 0x0000ff00 ) -F3_IRQ_SPEEDUP_2_R(spcinv95, 0x25a, 0x8114/4, 0x0000ff00 ) -F3_IRQ_SPEEDUP_2_R(ktiger2, 0x5ba, 0x0570/4, 0x0000ffff ) -F3_IRQ_SPEEDUP_1_R(bubsymph, 0xe9a3e, 0x0134/4, 0x000000ff ) -F3_IRQ_SPEEDUP_1_R(bubblem, 0x100a62, 0x0134/4, 0x000000ff ) -F3_IRQ_SPEEDUP_2_R(cleopatr, 0x254, 0x8114/4, 0x0000ff00 ) -F3_IRQ_SPEEDUP_3_R(pbobble2, 0x2c2c, 0x4a50/4, 0x00002900 ) -F3_IRQ_SPEEDUP_3_R(pbobbl2x, 0x2c4c, 0x5c58/4, 0x00002920 ) -F3_IRQ_SPEEDUP_3_R(pbobble3, 0xf22, 0x5af4/4, 0x0000159e ) -F3_IRQ_SPEEDUP_3_R(pbobble4, 0xf8a, 0x58f4/4, 0x000015ee ) -F3_IRQ_SPEEDUP_3_R(gekirido, 0x1da8, 0x6bb0/4, 0x00001a90 ) -F3_IRQ_SPEEDUP_3_R(dariusg, 0x1d8e, 0x6ba8/4, 0x00001a76 ) -F3_IRQ_SPEEDUP_2_R(puchicar, 0x9dc, 0x24d8/4, 0x80000000 ) -F3_IRQ_SPEEDUP_2_R(popnpop, 0x9bc, 0x1cf8/4, 0x00008000 ) -F3_IRQ_SPEEDUP_2_R(arkretrn, 0x960, 0x2154/4, 0x0000ffff ) -F3_IRQ_SPEEDUP_3_R(landmakr, 0x146c, 0x0824/4, 0x00001178 ) -F3_IRQ_SPEEDUP_3_R(eaction2, 0x133c, 0x07a0/4, 0x00001048 ) -F3_IRQ_SPEEDUP_1_R(twinqix, 0xe9a52, 0x0134/4, 0x000000ff ) -F3_IRQ_SPEEDUP_2_R(kirameki, 0x12fc6, 0x0414/4, 0x0000ff00 ) - -static DRIVER_INIT( ringrage ) -{ - f3_game=RINGRAGE; - tile_decode(0); -} - -static DRIVER_INIT( arabianm ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408124, 0x408127, 0, 0, irq_speedup_r_arabianm ); - f3_game=ARABIANM; - tile_decode(1); -} - -static DRIVER_INIT( ridingf ) -{ - f3_game=RIDINGF; - tile_decode(1); -} - -static DRIVER_INIT( gseeker ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x40ad94, 0x40ad97, 0, 0, irq_speedup_r_gseeker ); - f3_game=GSEEKER; - tile_decode(0); -} - -static DRIVER_INIT( gunlock ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400004, 0x400007, 0, 0, irq_speedup_r_gunlock ); - f3_game=GUNLOCK; - tile_decode(1); -} - -static DRIVER_INIT( elvactr ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x4007a0, 0x4007a3, 0, 0, irq_speedup_r_eaction2 ); - f3_game=EACTION2; - tile_decode(1); -} - -static DRIVER_INIT( cupfinal ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408114, 0x408117, 0, 0, irq_speedup_r_cupfinal ); - f3_game=SCFINALS; - tile_decode(1); -} - -static DRIVER_INIT( trstaroj ) -{ - f3_game=TRSTAR; - tile_decode(1); -} - -static DRIVER_INIT( scfinals ) -{ - UINT32 *RAM = (UINT32 *)memory_region(REGION_CPU1); - - /* Doesn't boot without this - eprom related? */ - RAM[0x5af0/4]=0x4e710000|(RAM[0x5af0/4]&0xffff); - - /* Rom checksum error */ - RAM[0xdd0/4]=0x4e750000; - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408114, 0x408117, 0, 0, irq_speedup_r_scfinals ); - f3_game=SCFINALS; - tile_decode(1); -} - -static DRIVER_INIT( lightbr ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400130, 0x400133, 0, 0, irq_speedup_r_lightbr ); - f3_game=LIGHTBR; - tile_decode(1); -} - -static DRIVER_INIT( kaiserkn ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408110, 0x408113, 0, 0, irq_speedup_r_kaiserkn ); - f3_game=KAISERKN; - tile_decode(1); -} - -static DRIVER_INIT( dariusg ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x406ba8, 0x406bab, 0, 0, irq_speedup_r_dariusg ); - f3_game=DARIUSG; - tile_decode(0); -} - -static DRIVER_INIT( spcinvdj ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400230, 0x400233, 0, 0, irq_speedup_r_spcinvdj ); - f3_game=SPCINVDX; - tile_decode(0); -} - -static DRIVER_INIT( qtheater ) -{ - f3_game=QTHEATER; - tile_decode(0); -} - -static DRIVER_INIT( spcinv95 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408114, 0x408117, 0, 0, irq_speedup_r_spcinv95 ); - f3_game=SPCINV95; - tile_decode(1); -} - -static DRIVER_INIT( gekirido ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x406bb0, 0x406bb3, 0, 0, irq_speedup_r_gekirido ); - f3_game=GEKIRIDO; - tile_decode(1); -} - -static DRIVER_INIT( ktiger2 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400570, 0x400573, 0, 0, irq_speedup_r_ktiger2 ); - f3_game=KTIGER2; - tile_decode(0); -} - -static DRIVER_INIT( bubsymph ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400134, 0x400137, 0, 0, irq_speedup_r_bubsymph ); - f3_game=BUBSYMPH; - tile_decode(1); -} - -static DRIVER_INIT( bubblem ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400134, 0x400137, 0, 0, irq_speedup_r_bubblem ); - f3_game=BUBBLEM; - tile_decode(1); -} - -static DRIVER_INIT( cleopatr ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408114, 0x408117, 0, 0, irq_speedup_r_cleopatr ); - f3_game=CLEOPATR; - tile_decode(0); -} - -static DRIVER_INIT( popnpop ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x401cf8, 0x401cfb, 0, 0, irq_speedup_r_popnpop ); - f3_game=POPNPOP; - tile_decode(0); -} - -static DRIVER_INIT( landmakr ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400824, 0x400827, 0, 0, irq_speedup_r_landmakr ); - f3_game=LANDMAKR; - tile_decode(0); -} - -static DRIVER_INIT( landmkrp ) -{ - UINT32 *RAM = (UINT32 *)memory_region(REGION_CPU1); - - /* For some reason the least significant byte in the last 2 long words of - ROM is swapped. As the roms have been verified ok, I assume this is some - kind of basic security on the prototype development board to prevent 'release' - roms running on it. Easiest thing to do is switch the data around here */ - RAM[0x1ffff8/4]=0xffffffff; /* From 0xffffff03 */ - RAM[0x1ffffc/4]=0xffff0003; /* From 0xffff00ff */ - - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400824, 0x400827, 0, 0, irq_speedup_r_landmakr ); - f3_game=LANDMAKR; - tile_decode(0); -} - -static DRIVER_INIT( pbobble3 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x405af4, 0x405af7, 0, 0, irq_speedup_r_pbobble3 ); - f3_game=PBOBBLE3; - tile_decode(0); -} - -static DRIVER_INIT( pbobble4 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x4058f4, 0x4058f7, 0, 0, irq_speedup_r_pbobble4 ); - f3_game=PBOBBLE4; - tile_decode(0); -} - -static DRIVER_INIT( quizhuhu ) -{ - f3_game=QUIZHUHU; - tile_decode(0); -} - -static DRIVER_INIT( pbobble2 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x404a50, 0x404a53, 0, 0, irq_speedup_r_pbobble2 ); - f3_game=PBOBBLE2; - tile_decode(0); -} - -static DRIVER_INIT( pbobbl2x ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x405c58, 0x405c5b, 0, 0, irq_speedup_r_pbobbl2x ); - f3_game=PBOBBLE2; - tile_decode(0); -} - -static DRIVER_INIT( hthero95 ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x408114, 0x408117, 0, 0, irq_speedup_r_pwrgoal ); - f3_game=HTHERO95; - tile_decode(0); -} - -static DRIVER_INIT( kirameki ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400414, 0x400417, 0, 0, irq_speedup_r_kirameki ); - f3_game=KIRAMEKI; - tile_decode(0); -} - -static DRIVER_INIT( puchicar ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x4024d8, 0x4024db, 0, 0, irq_speedup_r_puchicar ); - f3_game=PUCHICAR; - tile_decode(0); -} - -static DRIVER_INIT( twinqix ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x400134, 0x400137, 0, 0, irq_speedup_r_twinqix ); - f3_game=TWINQIX; - tile_decode(0); -} - -static DRIVER_INIT( arkretrn ) -{ - memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x402154, 0x402157, 0, 0, irq_speedup_r_arkretrn ); - f3_game=ARKRETRN; - tile_decode(0); -} - -static DRIVER_INIT( intcup94 ) -{ - f3_game=SCFINALS; - tile_decode(1); -} - -static DRIVER_INIT( recalh ) -{ - f3_game=RECALH; - tile_decode(0); -} - -static DRIVER_INIT( commandw ) -{ - f3_game=COMMANDW; - tile_decode(1); -} - -/******************************************************************************/ - -GAME( 1992, ringrage, 0, f3_224a, f3, ringrage, ROT0, "Taito Corporation Japan", "Ring Rage (Ver 2.3O 1992/08/09)", GAME_IMPERFECT_SOUND ) -GAME( 1992, ringragj, ringrage, f3_224a, f3, ringrage, ROT0, "Taito Corporation", "Ring Rage (Ver 2.3J 1992/08/09)", GAME_IMPERFECT_SOUND ) -GAME( 1992, ringragu, ringrage, f3_224a, f3, ringrage, ROT0, "Taito America Corporation", "Ring Rage (Ver 2.3A 1992/08/09)", GAME_IMPERFECT_SOUND ) -GAME( 1992, arabianm, 0, f3_224a, f3, arabianm, ROT0, "Taito Corporation Japan", "Arabian Magic (Ver 1.0O 1992/07/06)", 0 ) -GAME( 1992, arabiamj, arabianm, f3_224a, f3, arabianm, ROT0, "Taito Corporation", "Arabian Magic (Ver 1.0J 1992/07/06)", 0 ) -GAME( 1992, arabiamu, arabianm, f3_224a, f3, arabianm, ROT0, "Taito America Corporation", "Arabian Magic (Ver 1.0A 1992/07/06)", 0 ) -GAME( 1992, ridingf, 0, f3_224b, f3, ridingf, ROT0, "Taito Corporation Japan", "Riding Fight (Ver 1.0O)", GAME_NO_SOUND ) -GAME( 1992, ridefgtj, ridingf, f3_224b, f3, ridingf, ROT0, "Taito Corporation", "Riding Fight (Ver 1.0J)", GAME_NO_SOUND ) -GAME( 1992, ridefgtu, ridingf, f3_224b, f3, ridingf, ROT0, "Taito America Corporation", "Riding Fight (Ver 1.0A)", GAME_NO_SOUND ) -GAME( 1992, gseeker, 0, f3_224b, f3, gseeker, ROT90, "Taito Corporation Japan", "Grid Seeker: Project Storm Hammer (Ver 1.3O)", 0 ) -GAME( 1992, gseekerj, gseeker, f3_224b, f3, gseeker, ROT90, "Taito Corporation", "Grid Seeker: Project Storm Hammer (Ver 1.3J)", 0 ) -GAME( 1992, gseekeru, gseeker, f3_224b, f3, gseeker, ROT90, "Taito America Corporation", "Grid Seeker: Project Storm Hammer (Ver 1.3A)", 0 ) -GAME( 1992, commandw, 0, f3_224b, f3, commandw, ROT0, "Taito Corporation", "Command War - Super Special Battle & War Game (Ver 0.0J) (Prototype)", GAME_IMPERFECT_GRAPHICS ) -/* Most of the football games share some GFX roms but shouldn't be considered clones unless they have the same Taito game code for the program roms */ -GAME( 1993, cupfinal, 0, f3_224a, f3, cupfinal, ROT0, "Taito Corporation Japan", "Taito Cup Finals (Ver 1.0O 1993/02/28)", 0 ) -GAME( 1993, hthero93, cupfinal, f3_224a, f3, cupfinal, ROT0, "Taito Corporation", "Hat Trick Hero '93 (Ver 1.0J 1993/02/28)", 0 ) -GAME( 1993, trstar, 0, f3, f3, trstaroj, ROT0, "Taito Corporation Japan", "Top Ranking Stars (Ver 2.1O 1993/05/21) (New Version)", 0 ) -GAME( 1993, trstarj, trstar, f3, f3, trstaroj, ROT0, "Taito Corporation", "Top Ranking Stars (Ver 2.1J 1993/05/21) (New Version)", 0 ) -GAME( 1993, prmtmfgt, trstar, f3, f3, trstaroj, ROT0, "Taito America Corporation", "Prime Time Fighter (Ver 2.1A 1993/05/21) (New Version)", 0 ) -GAME( 1993, trstaro, trstar, f3, f3, trstaroj, ROT0, "Taito Corporation Japan", "Top Ranking Stars (Ver 2.1O 1993/05/21) (Old Version)", 0 ) -GAME( 1993, trstaroj, trstar, f3, f3, trstaroj, ROT0, "Taito Corporation", "Top Ranking Stars (Ver 2.1J 1993/05/21) (Old Version)", 0 ) -GAME( 1993, prmtmfgo, trstar, f3, f3, trstaroj, ROT0, "Taito America Corporation", "Prime Time Fighter (Ver 2.1A 1993/05/21) (Old Version)", 0 ) -GAME( 1993, gunlock, 0, f3_224a, f3, gunlock, ROT90, "Taito Corporation Japan", "Gunlock (Ver 2.3O 1994/01/20)", 0 ) -GAME( 1993, rayforcj, gunlock, f3_224a, f3, gunlock, ROT90, "Taito Corporation", "Ray Force (Ver 2.3J 1994/01/20)", 0 ) -GAME( 1993, rayforce, gunlock, f3_224a, f3, gunlock, ROT90, "Taito America Corporation", "Ray Force (Ver 2.3A 1994/01/20)", 0 ) -GAME( 1993, scfinals, 0, f3_224a, f3, scfinals, ROT0, "Taito Corporation Japan", "Super Cup Finals (Ver 2.1O 1993/11/19)", 0 ) -GAME( 1993, dungeonm, 0, f3_224a, f3, lightbr, ROT0, "Taito Corporation Japan", "Dungeon Magic (Ver 2.1O 1994/02/18)", 0 ) -GAME( 1993, lightbr, dungeonm, f3_224a, f3, lightbr, ROT0, "Taito Corporation", "Light Bringer (Ver 2.1J 1994/02/18)", 0 ) -GAME( 1993, dungenmu, dungeonm, f3_224a, f3, lightbr, ROT0, "Taito America Corporation", "Dungeon Magic (Ver 2.1A 1994/02/18)", 0 ) -GAME( 1994, intcup94, 0, f3_224a, f3, intcup94, ROT0, "Taito Corporation Japan", "International Cup '94 (Ver 2.2O 1994/05/26)", 0 ) -GAME( 1994, hthero94, intcup94, f3_224a, f3, intcup94, ROT0, "Taito America Corporation", "Hat Trick Hero '94 (Ver 2.2A 1994/05/26)", 0 ) -GAME( 1994, kaiserkn, 0, f3_224a, kn, kaiserkn, ROT0, "Taito Corporation Japan", "Kaiser Knuckle (Ver 2.1O 1994/07/29)", 0 ) -GAME( 1994, kaiserkj, kaiserkn, f3_224a, kn, kaiserkn, ROT0, "Taito Corporation", "Kaiser Knuckle (Ver 2.1J 1994/07/29)", 0 ) -GAME( 1994, gblchmp, kaiserkn, f3_224a, kn, kaiserkn, ROT0, "Taito America Corporation", "Global Champion (Ver 2.1A 1994/07/29)", 0 ) -GAME( 1994, dankuga, kaiserkn, f3_224a, kn, kaiserkn, ROT0, "Taito Corporation", "Dan-Ku-Ga (Ver 0.0J 1994/12/13) (Prototype)", 0 ) -GAME( 1994, dariusg, 0, f3, f3, dariusg, ROT0, "Taito Corporation Japan", "Darius Gaiden - Silver Hawk (Ver 2.5O 1994/09/19)", 0 ) -GAME( 1994, dariusgj, dariusg, f3, f3, dariusg, ROT0, "Taito Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5J 1994/09/19)", 0 ) -GAME( 1994, dariusgu, dariusg, f3, f3, dariusg, ROT0, "Taito America Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5A 1994/09/19)", 0 ) -GAME( 1994, dariusgx, dariusg, f3, f3, dariusg, ROT0, "Taito Corporation", "Darius Gaiden - Silver Hawk Extra Version (Ver 2.7J 1995/03/06) (Official Hack)", 0 ) -GAME( 1994, bublbob2, 0, f3_224a, f3, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Bobble II (Ver 2.5O 1994/10/05)", 0 ) -GAME( 1994, bubsympe, bublbob2, f3_224a, f3, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Symphony (Ver 2.5O 1994/10/05)", 0 ) -GAME( 1994, bubsympu, bublbob2, f3_224a, f3, bubsymph, ROT0, "Taito America Corporation", "Bubble Symphony (Ver 2.5A 1994/10/05)", 0 ) -GAME( 1994, bubsymph, bublbob2, f3_224a, f3, bubsymph, ROT0, "Taito Corporation", "Bubble Symphony (Ver 2.5J 1994/10/05)", 0 ) -GAME( 1994, spcinvdj, spacedx, f3, f3, spcinvdj, ROT0, "Taito Corporation", "Space Invaders DX (Ver 2.6J 1994/09/14) (F3 Version)", 0 ) -GAME( 1994, pwrgoal, 0, f3_224a, f3, hthero95, ROT0, "Taito Corporation Japan", "Taito Power Goal (Ver 2.5O 1994/11/03)", 0 ) -GAME( 1994, hthero95, pwrgoal, f3_224a, f3, hthero95, ROT0, "Taito Corporation", "Hat Trick Hero '95 (Ver 2.5J 1994/11/03)", 0 ) -GAME( 1994, hthro95u, pwrgoal, f3_224a, f3, hthero95, ROT0, "Taito America Corporation", "Hat Trick Hero '95 (Ver 2.5A 1994/11/03)", 0 ) -GAME( 1994, qtheater, 0, f3_224c, f3, qtheater, ROT0, "Taito Corporation", "Quiz Theater - 3tsu no Monogatari (Ver 2.3J 1994/11/10)", GAME_IMPERFECT_SOUND ) -GAME( 1994, elvactr, 0, f3, f3, elvactr, ROT0, "Taito Corporation Japan", "Elevator Action Returns (Ver 2.2O 1995/02/20)", 0 ) -GAME( 1994, elvactrj, elvactr, f3, f3, elvactr, ROT0, "Taito Corporation", "Elevator Action Returns (Ver 2.2J 1995/02/20)", 0 ) -GAME( 1994, elvact2u, elvactr, f3, f3, elvactr, ROT0, "Taito America Corporation", "Elevator Action II (Ver 2.2A 1995/02/20)", 0 ) -/* There is also a prototype Elevator Action II (US) pcb with the graphics in a different rom format (same program code) */ -GAME( 1994, recalh, 0, f3, f3, recalh, ROT0, "Taito Corporation", "Recalhorn (Ver 1.42J 1994/5/11) (Prototype)", 0 ) -GAME( 1995, spcinv95, 0, f3_224a, f3, spcinv95, ROT270, "Taito Corporation Japan", "Space Invaders '95: The Attack Of Lunar Loonies (Ver 2.5O 1995/06/14)", 0 ) -GAME( 1995, spcnv95u, spcinv95, f3_224a, f3, spcinv95, ROT270, "Taito America Corporation", "Space Invaders '95: The Attack Of Lunar Loonies (Ver 2.5A 1995/06/14)", 0 ) -GAME( 1995, akkanvdr, spcinv95, f3_224a, f3, spcinv95, ROT270, "Taito Corporation", "Akkanbeder (Ver 2.5J 1995/06/14)", 0 ) -GAME( 1995, twinqix, 0, f3_224a, f3, twinqix, ROT0, "Taito America Corporation", "Twin Qix (Ver 1.0A 1995/01/17) (Prototype)", 0 ) -GAME( 1995, quizhuhu, 0, f3, f3, quizhuhu, ROT0, "Taito Corporation", "Moriguchi Hiroko no Quiz de Hyuu!Hyuu! (Ver 2.2J 1995/05/25)", 0 ) -GAME( 1995, pbobble2, 0, f3, f3, pbobble2, ROT0, "Taito Corporation Japan", "Puzzle Bobble 2 (Ver 2.2O 1995/07/20)", 0 ) -GAME( 1995, pbobbl2j, pbobble2, f3, f3, pbobble2, ROT0, "Taito Corporation", "Puzzle Bobble 2 (Ver 2.2J 1995/07/20)", 0 ) -GAME( 1995, pbobbl2u, pbobble2, f3, f3, pbobble2, ROT0, "Taito America Corporation", "Bust-A-Move Again (Ver 2.3A 1995/07/31)", 0 ) -GAME( 1995, pbobbl2x, pbobble2, f3, f3, pbobbl2x, ROT0, "Taito Corporation", "Puzzle Bobble 2X (Ver 2.2J 1995/11/11)", 0 ) -GAME( 1995, gekirido, 0, f3, f3, gekirido, ROT270, "Taito Corporation", "Gekirindan (Ver 2.3J 1995/09/21)", 0 ) -GAME( 1995, tcobra2, 0, f3, f3, ktiger2, ROT270, "Taito Corporation Japan", "Twin Cobra II (Ver 2.1O 1995/11/30)", 0 ) -GAME( 1995, tcobra2u, tcobra2, f3, f3, ktiger2, ROT270, "Taito America Corporation", "Twin Cobra II (Ver 2.1A 1995/11/30)", 0 ) -GAME( 1995, ktiger2, tcobra2, f3, f3, ktiger2, ROT270, "Taito Corporation", "Kyukyoku Tiger II (Ver 2.1J 1995/11/30)", 0 ) -GAME( 1995, bubblem, 0, f3_224a, f3, bubblem, ROT0, "Taito Corporation Japan", "Bubble Memories: The Story Of Bubble Bobble III (Ver 2.4O 1996/02/15)", 0 ) -GAME( 1995, bubblemj, bubblem, f3_224a, f3, bubblem, ROT0, "Taito Corporation", "Bubble Memories: The Story Of Bubble Bobble III (Ver 2.3J 1996/02/07)", 0 ) -GAME( 1996, cleopatr, 0, f3_224a, f3, cleopatr, ROT0, "Taito Corporation", "Cleopatra Fortune (Ver 2.1J 1996/09/05)", 0 ) -GAME( 1996, pbobble3, 0, f3, f3, pbobble3, ROT0, "Taito Corporation", "Puzzle Bobble 3 (Ver 2.1O 1996/09/27)", 0 ) -GAME( 1996, pbobbl3u, pbobble3, f3, f3, pbobble3, ROT0, "Taito Corporation", "Puzzle Bobble 3 (Ver 2.1A 1996/09/27)", 0 ) -GAME( 1996, pbobbl3j, pbobble3, f3, f3, pbobble3, ROT0, "Taito Corporation", "Puzzle Bobble 3 (Ver 2.1J 1996/09/27)", 0 ) -GAME( 1997, arkretrn, 0, f3, f3, arkretrn, ROT0, "Taito Corporation", "Arkanoid Returns (Ver 2.02J 1997/02/10)", 0 ) -GAME( 1997, kirameki, 0, f3_224a, f3, kirameki, ROT0, "Taito Corporation", "Kirameki Star Road (Ver 2.10J 1997/08/29)", 0 ) -GAME( 1997, puchicar, 0, f3, f3, puchicar, ROT0, "Taito Corporation", "Puchi Carat (Ver 2.02O 1997/10/29)", 0 ) -GAME( 1997, puchicrj, puchicar, f3, f3, puchicar, ROT0, "Taito Corporation", "Puchi Carat (Ver 2.02J 1997/10/29)", 0 ) -GAME( 1997, pbobble4, 0, f3, f3, pbobble4, ROT0, "Taito Corporation", "Puzzle Bobble 4 (Ver 2.04O 1997/12/19)", 0 ) -GAME( 1997, pbobbl4j, pbobble4, f3, f3, pbobble4, ROT0, "Taito Corporation", "Puzzle Bobble 4 (Ver 2.04J 1997/12/19)", 0 ) -GAME( 1997, pbobbl4u, pbobble4, f3, f3, pbobble4, ROT0, "Taito Corporation", "Puzzle Bobble 4 (Ver 2.04A 1997/12/19)", 0 ) -GAME( 1997, popnpop, 0, f3, f3, popnpop, ROT0, "Taito Corporation", "Pop'n Pop (Ver 2.07O 1998/02/09)", 0 ) -GAME( 1997, popnpopj, popnpop, f3, f3, popnpop, ROT0, "Taito Corporation", "Pop'n Pop (Ver 2.07J 1998/02/09)", 0 ) -GAME( 1997, popnpopu, popnpop, f3, f3, popnpop, ROT0, "Taito Corporation", "Pop'n Pop (Ver 2.07A 1998/02/09)", 0 ) -GAME( 1998, landmakr, 0, f3, f3, landmakr, ROT0, "Taito Corporation", "Land Maker (Ver 2.01J 1998/06/01)", 0 ) -GAME( 1998, landmkrp, landmakr, f3, f3, landmkrp, ROT0, "Taito Corporation", "Land Maker (Ver 2.02O 1998/06/02) (Prototype)", 0 ) diff --git a/src/drivers/taito_z.c b/src/drivers/taito_z.c deleted file mode 100644 index 1e238f0ea..000000000 --- a/src/drivers/taito_z.c +++ /dev/null @@ -1,4572 +0,0 @@ -/*************************************************************************** - -Taito Z System [twin 68K with optional Z80] -------------------------------------------- - -David Graves - -(this is based on the F2 driver by Bryan McPhail, Brad Oliver, Andrew Prime, -Nicola Salmoria. Thanks to Richard Bush and the Raine team, whose open -source was very helpful in many areas particularly the sprites.) - -- Changes Log - - -05-01-04 Added Racing Beat -01-26-02 Added Enforce -10-17-01 TC0150ROD support improved (e.g. Aquajack) -09-01-01 Preliminary TC0150ROD support -08-28-01 Fixed uncentered steer inputs, Nightstr controls -05-27-01 Inputs through taitoic ioc routines, contcirc subwoofer filter -04-12-01 Centered steering AD inputs, added digital steer -02-18-01 Added Spacegun gunsights (Insideoutboy) - - - ***** - -The Taito Z system has a number of similarities with the Taito F2 system, -and uses some of the same custom Taito components. - -TaitoZ supports 5 separate layers of graphics - one 64x64 tiled scrolling -background plane of 8x8 tiles, a similar foreground plane, another optional -plane used for drawing a road (e.g. Chasehq), a sprite plane [with varying -properties], and a text plane with character definitions held in ram. - -(Double Axle has four rather than two background planes, and they contain -32x32 16x16 tiles. This is because it uses a TC0480SCP rather than the -older TC0100SCN tilemap generator used in previous Taito Z games. The -hardware for Taito's Super Chase was a further development of this, with a -68020 for main CPU and Ensoniq sound - standard features of Taito's F3 -system. Taito's F3 system superceded both Taito B and F2 systems, but the -Taito Z system was enhanced with F3 features and continued in games like -Super Chase and Under Fire up to the mid 1990s.) - -Each Taito Z game used one of the following sprite systems - allowing the -use of big sprites with minimal CPU overhead [*]: - -(i) 16x8 tiles aggregated through a spritemap rom into 128x128 sprites -(ii) 16x16 tiles aggregated through a spritemap rom into three sprite sizes: - 128 x 128 - 64 x 128 - 32 x 128 -(iii) 16x8 tiles aggregated through a spritemap rom into 64x64 sprites - -[* in Taito B/F2/F3 the CPU has to keep track of all the 16x16 tiles within -a big sprite] - -The Z system has twin 68K CPUs which communicate via shared ram. -Typically they share $4000 bytes, but Spacegun / Dbleaxle share $10000. - -The first 68000 handles screen, palette and sprites, and sometimes other -jobs [e.g. inputs; in one game it also handles the road]. - -The second 68000 may handle functions such as: - (i) inputs/dips, sound (through a YM2610) and/or - (ii) the "road" that's in every TaitoZ game except Spacegun. - -Most Z system games have a Z80 as well, which takes over sound duties. -Commands are written to it by the one of the 68000s. - -The memory map for the Taito Z games is similar in outline but usually -shuffled around: some games have different i/o because of analogue -sticks, light guns, cockpit hardware etc. - - -Contcirc board (B.Troha) --------------- - -Taito Sound PCB J1100137A K1100314A: - - Zilog Z0840004PSC XTAL OSC Yamaha - Z80 CPU 16.000 MHz YM2610 - - TC0060DCA B33-30 - TC0060DCA - TC0140SYT - - B33-08 - B33-09 - B33-10 - -Notes: B33-30 is a OKI M27512-15 - - -Taito Video Baord PCB J1100139A K1100316A: - - B33-03 TC0050VDZ TC0050VDZ TC0050VDZ - B33-04 - B33-05 - B33-06 TC0020VAR - - B14-31 - - B33-07 - - B14-30 - -Notes: B14-31 is 27HC64 (Sharp LH5763J-70) - B14-30 is OKI M27512-15 -DG: TC0020VAR + 3xTC0050VDZ may be precursor to 370MSO/300FLA combo - - -Taito CPU Board J110138A K1100315A: - - XTAL OSC XTAL OSC - 24.000MHz 26.686MHz - - B33-02 -B33-01 - TC0150ROD TC0100SCN NEC D43256C-10L - NEC D43256C-10L - - TC0110PCR - - TC0070RGB - MC6800P12 IC-25 MC68000P12 IC-35 - IC-26 IC 36 TC0040IOC - DSWA DSWB - -Notes: IC-41 Is 271001 Listed as JH1 (unsocketed / unused) - IC-42 Is 271001 Listed as JL1 (unsocketed / unused) - - - -Aquajack top board (Guru) ------------------- - -68000-12 x 2 -OSC: 26.686, 24.000, 16.000 -I dont see any recognisable sound chips, but I do see a YM3016F - -TCO110PCR -TCO220IOC -TCO100SCN -TCO140SYT -TCO3200BR -TCO150ROD -TCO020VAR -TCO050VDZ -TCO050VDZ -TCO050VDZ - -ChaseHQ (Guru) -------- - -Video board ------------ - Pal b52-28d b52-28b - Pal 17d 17b - Pal 28c 28a - Pal 77c 17a - -b52-30 - 34 - 31 - 35 - 32 b52-27 pal20 TC020VAR b52-03 b52-127 - 36 51 b52-126 b52-124 Pal - 50 - 49 Pal b52-125 - 33 Pal b52-19 Pal b52-25 - 37 38 b52-18b Pal 122 - Pal Pal b52-18a Pal 123 - b52-20 b52-21 b52-18 - - -CPU board ---------- - b52-119 Pal - b52-118 Pal - 68000-12 - b52-131 129 -b52-113 b52-130 136 -b52-114 -b52-115 TC0140SYT -b52-116 - - YM2610 b52-29 - 26.686MHz - 24 MHz - 16MHz TC0100SCN - - Pal b52-121 - Pal b52-120 TC0170ABT TC0110PCR b52-01 - 68000-12 - b52-06 - TC0040IOC b52-133 b52-132 TC0150ROD b52-28 - - - -ChaseHQ2(SCI) custom chips (Guru) (DG: same as Bshark except 0140SYT?) --------------------------- - -CPU PCB: -TC0170ABT -TC0150ROD -TC0140SYT -TC0220IOC - -c09-23.rom is a -PROM type AM27S21PC, location looks like this... - -------------- -| 68000 | -------------- - -c09-25 c09-26 -c09-24 - -|-------| -| | -| ABT | -| | -|-------| - -c09-23 c09-07 - -|-------| -| | -| ROD | -| | -|-------| - -c09-32 c09-33 -------------- -| 68000 | -------------- - -c09-21 c09-22 - -Lower PCB: -TCO270MOD -TC0300FLA -TC0260DAR -TC0370MSO -TC0100SCN -TC0380BSH - -c09-16.rom is located next to -c09-05, which is located next to Taito TCO370MSO. - -SCI (Guru) -Taito, 1989 - -Controls for this game are one wheel, one switch for shift lever (used for high gear) -and one switch each for accelerate, brake, gun and nitro. - -Note that the gear is low by default and is shifted to high gear by a lever which -holds the switch closed. The lever is not self-centering or spring-loaded to go back to -low. The lever must be physically shifted back to low when required. - - -PCB Layout ----------- - -CPU PCB K1100490A J1100209A -|----------------------------------------------------| -| 24MHz C09-14.42 TCO140SYT C09-22.3 C09-21.2 | -| C09-13.43 68000 | -| C09-12.44 C09-33.6 C09-32.5 | -| YM2610 C09-15.29 6264 6264 | -| YM3016 TL074 TL074 Z80 | -| C09-34.31 6264 TCO150ROD | -|D VOL 6264 6264 | -| | -| MB3735 C09-07.15 C09-23.14 | -| D633 16MHz | -| 62064 6264 6264 TCO170ABT | -| C09-28.37 6264 | -|G 62003 C09-36.38 C09-24.22 | -| TCO220IOC 6264 C09-26.26 C09-25.25 | -| C09-30.40 68000 | -| DSWB DSWA C09-31.41 | -|----------------------------------------------------| - -Notes: - Clocks: - 68000 : 16.000MHz (both) - Z80 : 4.000MHz - YM2610: 8.000MHz - - Vsync: 60Hz - - Misc parts: - MB3735: 15w Power AMP with dual output (used for stereo sounds ; CH1/CH2) - TL074 : JFET Lo Noise Quad OP Amp - 6264 : 8k x8 SRAM - TD62064 : NPN 50V 1.5A Quad Darlinton Switch (for driving coin meters) - TD62003 : PNP 50V 0.5A Quad Darlinton Switch (for driving coin meters) - D633 : Si NPN POWER transistor used in 68k reset circuit (TIP122 compatible) - ROMs: - C09-12 thru C09-14 - MB834100 - C09-07 - HN62404 - C09-32 thru C09-33 - AM27C512 - C09-30 thru C09-31 - TC571000 - C09-38 and C09-36 - TC571000 - C09-23 - AM27S21 - C09-22 and C09-26 - MMI PAL16L8B - C09-21 and - C09-24 thru C09-25 - MMI PAL20L8B - -PINOUT CONNECTOR D (Note: All pinouts typed from an original Taito document) ------------------- - -1 +24V -2 +24V -3 GND -4 GND -5 D OUT - -Question: +24V and D OUT are for? - - -PINOUT CONNECTOR G (the meanings of some of these is a bit vague - PTL OUTx, DRV0, HANDLE CENTER SW etc) - - PARTS | SOLDER - ---------------|--------------- - GND 1|A GND - GND 2|B GND - +5V 3|C +5V - +5V 4|D +5V - -5V 5|E -5V - +12V 6|F +12V - KEY 7|H KEY - COUNTER A 8|J COUNTER B - C LOCKOUT A 9|K C LOCKOUT B - SPK CH1+ 10|L SPK CH2+ - SPK CH1- 11|M SPK CH2- - VOLUME2 12|N VOLUME1 - VOLUME3 13|P MUTE - GND 14|R SERVICE SW - GND 15|S BRAKE SW0 - COIN A 16|T COIN B - BRAKE SW1 17|U BRAKE SW2 - NITRO SW 18|V TILT -HANDLE CENTER SW 19|W START SW - SHIFT SW 20|X ACCEL SW0 - ACCEL SW1 21|Y ACCEL SW2 - PTL OUT1 22|Z PTL OUT2 - DRV0 23|a GUN SW - PADL X1 24|b PADL X2 - PADL Y1 25|c PADL Y2 - HANDLE Z1 26|d HANDLE Z2 - GND 27|e GND - GND 28|f GND - -Question: What hardware is used for steering and where is it connected? It doesn't seem to use - a regular potentiometer for the steering?? - - -PCB Layout ----------- - -VIDEO PCB K1100491A J1100210A -|-----------------------------------------------------| -| TCO370MSO C09-17.24 43256 | -|H C09-18.25 43256 | -| C09-05.16 | -| C09-16.17 26.686MHz TCO100SCN 6264 | -| C1815 | -|V C1815 6264 | -| C1815 TCO260DAR C09-06.37 | -|6264 | -| | -| TCO380BSH C09-19.67| -|TCO270MOD TCO300FLA | -| | -|43256 43256 43256 43256 C09-04.52 C09-20.71| -|43256 43256 43256 43256 C09-03.53 | -|43256 43256 43256 43256 C09-02.54 | -|43256 43256 43256 43256 C09-01.55 | -|-----------------------------------------------------| - -Notes: - ROMs: - C09-01 thru C09-05 - 234000 - C09-06 - HN62404 - C09-17 thru C09-18 - MMI 63S441 - C09-19 - MMI PAL16L8B - C09-20 - AM27S21 - - Misc parts: - 6264: 8k x8 SRAM - 43256: 32k x8 SRAM - C1815: transistor used for driving RGB - -PINOUT CONNECTOR H ------------------- - -1 GND -2 GND -3 GND -4 GND -5 +5V -6 +5V -7 +5V -8 +5V -9 -5V -10 POST -11 +12V -12 NC - - -PINOUT CONNECTOR V ------------------- - -1 GND -2 RED -3 GREEN -4 BLUE -5 SYNC -6 NC -7 NC - - - - - -BShark custom chips -------------------- - -TC0220IOC (known io chip) -TC0260DAR (known palette chip) -TC0400YSC substitute for TC0140SYT when 68K writes directly to YM2610 ?? -TC0170ABT = same in Dblaxle -TC0100SCN (known tilemap chip) -TC0370MSO = same in Dblaxle, Motion Objects ? -TC0300FLA = same in Dblaxle -TC0270MOD ??? -TC0380BSH ??? -TC0150ROD (known road generator chip) - - -DblAxle custom chip info ------------------------- - -TC0150ROD is next to road lines gfx chip [c78-09] but also -c78-15, an unused 256 byte rom. Perhaps this contains color -info for the road lines? Raine makes an artificial "pal map" -for the road, AFAICS. - -TC0170ABT is between 68000 CPUA and the TC0140SYT. Next to -that is the Z80A, the YM2610, and the three adpcm roms. - -On the graphics board we have the TC0480SCP next to its two -scr gfx roms: c78-10 & 11. - -The STY object mapping rom is next to c78-25, an unused -0x10000 byte rom which compresses by 98%. To right of this -are TC0370MSO (motion objects?), then TC0300FLA. - -Below c78-25 are two unused 1K roms: c84-10 and c84-11. -Below right is another unused 256 byte rom, c78-21. -(At the bottom are the 5 obj gfx roms.) - -K11000635A ----------- - 43256 c78-11 SCN1 CHR - 43256 c78-10 SCN0 CHR TC0480SCP - - c78-04 - STY ROM - c78-25 TC0370MSO TC0300FLA - c84-10 - c84-11 c78-21 - - 43256 43256 43256 43256 - 43256 43256 43256 43256 43256 - 43256 43256 43256 43256 43256 - 43256 43256 - - c78-05L - c78-06 OBJ1 - c78-05H - - c78-08 OBJ3 c78-07 OBJ2 - -Power Wheels ------------- - -Cpu PCB - -CPU: 68000-16 x2 -Sound: Z80-A - YM2610 -OSC: 32.000MHz -Chips: TC0140SYT - TC0150ROD - TC0170ABT - TC0310FAM - TC0510NIO - - -Video PCB - -OSC: 26.686MHz -Chips: TC0260DAR - TC0270MOD - TC0300FLA - TC0370MSO - TC0380BSH - TC0480SCP - - -LAN interface board - -OSC: 40.000MHz - 16.000MHz -Chips: uPD72105C - - -TODO Lists -========== - -Add cpu idle time skip to improve speed. - -Is the no-Z80 sound handling correct: some voices in Bshark -aren't that clear. - -Make taitosnd cpu-independent so we can restore Z80 to CPU3. - -Cockpit hardware - -DIPs - e.g. coinage - -Sprite zooming - dimensions may be got from the unused 64K rom -on the video board (it's in the right place for it, both with -Contcirc video chips and the chips used on later boards). These -64K roms compare as follows - makes sense as these groups -comprise the three sprite layout types used in TaitoZ games: - - Contcirc / Enforce =IDENTICAL - ChaseHQ / Nightstr =IDENTICAL - Bshark / SCI / Dblaxle / Racingb =IDENTICAL - - Missing from Aquajack / Spacegun dumps (I would bet they are - the same as Bshark). Can anyone dump these two along with any - proms on the video board? - - -Continental Circus ------------------- - -Road priority incompletely understood - e.g. start barrier should -be darkening LH edge of road as well as RH edge. - -The 8 level accel / brake should be possible to control with -analogue pedal. Don't think mame can do this. - -Junk (?) stuff often written in high byte of sound word. - -Speculative YM2610 a/b/c channel filtering as these may be -outputs to subwoofer (vibration). They sound better, anyway. - - -Chasehq -------- - -Motor CPU: appears to be identical to one in Topspeed. - -[Used to have junk sprites when you reach criminal car (the 'criminals -here' sprite): two bits above tile number are used. Are these -meaningless, or is some effect missing?] - - -Enforce -------- - -Test mode - SHIFT: LO/HI is not understood (appears to depend on Demo -Sound DSW) - -Landscape in the background can be made to scroll rapidly with DSW. -True to original? - -Some layer offsets are out a little. - - -Battle Shark ------------- - -Is road on the road stages correct? Hard to tell. - -Does the original have the "seeking" crosshair effect, making it a -challenge to control? - - -SCI ---- - -Road seems ok, but are the green bushes in round 1 a little too far -to the edge of the interroad verge? - -Sprite frames were plotted in opposite order so flickered. Reversing -this has lost us alternate frames: probably need to buffer sprite -ram by one frame to solve this? - - -Night Striker -------------- - -Road A/B priority problems will manifest in the choice tunnels with, -one or the other having higher priority in top and bottom halves. Can -someone provide a sequence of screenshots showing exactly what happens -at the road split point. - -Strange page in test mode which lets you alter all sorts of settings, -may relate to sit-in cockpit version. Can't find a dip that disables -this. - -Does a variety of writes to TC0220IOC offset 3... significant? - - -Aqua Jack ---------- - -Sprites left on screen under hiscore table. Deliberate? Or is there -a sprite disable bit somewhere. - -Should road body be largely transparent as I've implemented it? - -Sprite/sprite priorities often look bad. Sprites go to max size for -a frame before they explode - surely a bug. - -Hangs briefly fairly often without massive cpu interleaving (500). -Keys aren't very responsive in test mode. - -The problem code is this: - -CPUA -$1fe02 hangs waiting for ($6002,A5) in shared ram to be zero. - -CPUB -$1056 calls $11ea routine which starts by setting ($6002,A5) non- -zero. At end (after $1218 waiting for a bit from sound comm port) -it alters ($6002,A5) to zero (but this value lasts briefly!). - -Unless context rapidly switches back to cpua this change is missed -because $11ea gets called again *very* rapidly at times when sounds -are being written [that's when the problem manifested]. - -$108a-c2 reads 0x20 bytes from unmapped area, not sure -what it's doing. Perhaps this machine had some optional -exotic input device... - - -Spacegun --------- - -Problem with the zoomed sprites not matching up very well -when forming the background. They jerk a bit relative to -each other... probably a cpu sync thing, perhaps also some -fine-tuning required on the zoomed sprite dimension calcs. - -Light gun interrupt timing arbitrary. - - -Double Axle ------------ - -Road occasionally has incorrectly unclipped line appearing at top -(ice stage). Also road 'ghost' often remains on screen - also an -interrupt issue I presume. - -Double Axle has poor sound: one ADPCM rom should be twice as long? -[In log we saw stuff like this, suggesting extra ADPCM rom needed: -YM2610: ADPCM-A end out of range: $001157ff -YM2610: ADPCM-A start out of range: $00111f00] - -Various sprites go missing e.g. mountains half way through cross -country course. Fall off the ledge and crash and you will see -the explosion sprites make other mountain sprites vanish, as -though their entries in spriteram are being overwritten. (Perhaps -an int6 timing/number issue: sprites seem to be ChaseHQ2ish with -a spriteframe toggle - currently this never changes which may be -wrong.) - - -Racing Beat ------------ - -Sprites (and main road) very wrong - -M43E0227A -K11E0674A -K1100650A J1100264A CPU PCB -|-------------------------------------------------------------| -|6264 62256 32MHz DSWA DSWB | -| 62256 | -|C84-104.2 | -|C84-110.3 TC0170ABT TC0510NIO | -|C84-103.4 | -|C84-111.5 MB3771 | -| C84_101.42 | -|6264 TC0140SYT | -| 6264 | -| | -| | -| C84-85.31 Z80 | -|68000 | -| | -| | -|PAL PAL YM2610 | -| C84-86.33 | -|PAL | -| 6264 C84-87.46 | -| | -| | -| PAL C84-99.35 YM3016 | -|6264 6264 | -| | -| PAL C84-100.36 TL074 | -| TC0150ROD | -|C84-84.12 6264 | -| PAL | -| TL074 | -| C84-07.22 MB3735 | -| 68000 | -|-------------------------------------------------------------| -Notes: - 68000s running at 16MHz - Z80 running at 4MHz - YM2610 running at 8MHz - - -K11X0675A -K1100635A -J1100256A VIDEO PCB -|-------------------------------------------------------------| -| 26.686MHz 6264 | -|62256 C84-89.11 TC0260DAR | -| | -|62256 C84-90.12 | -| TC0480SCP 6264 | -| | -| 6264 | -|C84-88.3 | -| | -| | -| C84-19.15 | -| TC0370MSO TC0300FLA PAL | -| C84-10.16 | -| C84-11.17 | -| C84-09.74| -| | -| 62256 62256 62256 62256 | -| | -| | -| 62256 62256 62256 62256 62256 | -| | -| | -| 62256 62256 62256 62256 62256 | -| | -| | -| 62256 62256 | -| C84-91.23 C84-93.31 | -| | -| TC0380BSH TC0270MOD | -| C84-92.25 C84-94.33 | -| | -|-------------------------------------------------------------| - - -***************************************************************************/ - -#include "driver.h" -#include "cpu/m68000/m68000.h" -#include "machine/eeprom.h" -#include "vidhrdw/taitoic.h" -#include "sndhrdw/taitosnd.h" -#include "sound/2610intf.h" - -VIDEO_START( taitoz ); -VIDEO_START( spacegun ); - -VIDEO_UPDATE( contcirc ); -VIDEO_UPDATE( chasehq ); -VIDEO_UPDATE( bshark ); -VIDEO_UPDATE( sci ); -VIDEO_UPDATE( aquajack ); -VIDEO_UPDATE( spacegun ); -VIDEO_UPDATE( dblaxle ); - -WRITE16_HANDLER( contcirc_out_w ); -READ16_HANDLER ( sci_spriteframe_r ); -WRITE16_HANDLER( sci_spriteframe_w ); - -// These TC0150ROD prototypes will go in taitoic.h // -READ16_HANDLER ( TC0150ROD_word_r ); /* Road generator */ -WRITE16_HANDLER( TC0150ROD_word_w ); - -static UINT16 cpua_ctrl = 0xff; -static INT32 sci_int6 = 0; -static INT32 dblaxle_int6 = 0; -static INT32 ioc220_port = 0; -static UINT16 eep_latch = 0; - -//static UINT16 *taitoz_ram; -//static UINT16 *motor_ram; - -static size_t taitoz_sharedram_size; -UINT16 *taitoz_sharedram; /* read externally to draw Spacegun crosshair */ - -static READ16_HANDLER( sharedram_r ) -{ - return taitoz_sharedram[offset]; -} - -static WRITE16_HANDLER( sharedram_w ) -{ - COMBINE_DATA(&taitoz_sharedram[offset]); -} - -static void parse_control(void) -{ - /* bit 0 enables cpu B */ - /* however this fails when recovering from a save state - if cpu B is disabled !! */ - cpunum_set_input_line(2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); - -} - -static void parse_control_noz80(void) -{ - /* bit 0 enables cpu B */ - /* however this fails when recovering from a save state - if cpu B is disabled !! */ - cpunum_set_input_line(1, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); - -} - -static WRITE16_HANDLER( cpua_ctrl_w ) /* assumes Z80 sandwiched between 68Ks */ -{ - if ((data &0xff00) && ((data &0xff) == 0)) - data = data >> 8; /* for Wgp */ - cpua_ctrl = data; - - parse_control(); - - logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data); -} - -static WRITE16_HANDLER( cpua_noz80_ctrl_w ) /* assumes no Z80 */ -{ - if ((data &0xff00) && ((data &0xff) == 0)) - data = data >> 8; /* for Wgp */ - cpua_ctrl = data; - - parse_control_noz80(); - - logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data); -} - - -/*********************************************************** - INTERRUPTS -***********************************************************/ - -/* 68000 A */ - -static void taitoz_interrupt6(int x) -{ - cpunum_set_input_line(0,6,HOLD_LINE); -} - -/* 68000 B */ - -#if 0 -static void taitoz_cpub_interrupt5(int x) -{ - cpunum_set_input_line(2,5,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ -} -#endif - -static void taitoz_sg_cpub_interrupt5(int x) -{ - cpunum_set_input_line(1,5,HOLD_LINE); /* assumes no Z80 */ -} - -#if 0 -static void taitoz_cpub_interrupt6(int x) -{ - cpunum_set_input_line(2,6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ -} -#endif - - - -/***** Routines for particular games *****/ - -static INTERRUPT_GEN( sci_interrupt ) -{ - /* Need 2 int4's per int6 else (-$6b63,A5) never set to 1 which - causes all sprites to vanish! Spriteram has areas for 2 frames - so in theory only needs updating every other frame. */ - - sci_int6 = !sci_int6; - - if (sci_int6) - timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6); - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -/* Double Axle seems to keep only 1 sprite frame in sprite ram, - which is probably wrong. Game seems to work with no int 6's - at all. Cpu control byte has 0,4,8,c poked into 2nd nibble - and it seems possible this should be causing int6's ? */ - -static INTERRUPT_GEN( dblaxle_interrupt ) -{ - // Unsure how many int6's per frame, copy SCI for now - dblaxle_int6 = !dblaxle_int6; - - if (dblaxle_int6) - timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6); - - cpunum_set_input_line(0, 4, HOLD_LINE); -} - -static INTERRUPT_GEN( dblaxle_cpub_interrupt ) -{ - // Unsure how many int6's per frame - timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6); - cpunum_set_input_line(2, 4, HOLD_LINE); -} - - -/****************************************************************** - EEPROM -******************************************************************/ - -static UINT8 default_eeprom[128]= -{ - 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0, - 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0, - 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00, - 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00, - 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0xcc,0xcb,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff -}; - -static struct EEPROM_interface eeprom_interface = -{ - 6, /* address bits */ - 16, /* data bits */ - "0110", /* read command */ - "0101", /* write command */ - "0111", /* erase command */ - "0100000000", /* lock command */ - "0100111111" /* unlock command */ -}; - -static NVRAM_HANDLER( spacegun ) -{ - if (read_or_write) - EEPROM_save(file); - else - { - EEPROM_init(&eeprom_interface); - - if (file) - EEPROM_load(file); - else - EEPROM_set_data(default_eeprom,128); /* Default the gun setup values */ - } -} - -static int eeprom_r(void) -{ - return (EEPROM_read_bit() & 0x01)<<7; -} - -#if 0 -static READ16_HANDLER( eep_latch_r ) -{ - return eep_latch; -} -#endif - -static WRITE16_HANDLER( spacegun_output_bypass_w ) -{ - switch (offset) - { - case 0x03: - -/* 0000xxxx (unused) - 000x0000 eeprom reset (active low) - 00x00000 eeprom clock - 0x000000 eeprom data - x0000000 (unused) */ - - COMBINE_DATA(&eep_latch); - EEPROM_write_bit(data & 0x40); - EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - break; - - default: - TC0220IOC_w( offset,data ); /* might be a 510NIO ! */ - } -} - - -/********************************************************** - GAME INPUTS -**********************************************************/ - -static READ16_HANDLER( contcirc_input_bypass_r ) -{ - /* Bypass TC0220IOC controller for analog input */ - - UINT8 port = TC0220IOC_port_r(0); /* read port number */ - int steer = 0; - int fake = input_port_6_word_r(0,0); - - if (!(fake &0x10)) /* Analogue steer (the real control method) */ - { - /* center around zero and reduce span to 0xc0 */ - steer = ((input_port_5_word_r(0,0) - 0x80) * 0xc0) / 0x100; - - } - else /* Digital steer */ - { - if (fake &0x4) - { - steer = 0x60; - } - else if (fake &0x8) - { - steer = 0xff9f; - } - } - - switch (port) - { - case 0x08: - return steer &0xff; - - case 0x09: - return steer >> 8; - - default: - return TC0220IOC_portreg_r( offset ); - } -} - - -static READ16_HANDLER( chasehq_input_bypass_r ) -{ - /* Bypass TC0220IOC controller for extra inputs */ - - UINT8 port = TC0220IOC_port_r(0); /* read port number */ - int steer = 0; - int fake = input_port_10_word_r(0,0); - - if (!(fake &0x10)) /* Analogue steer (the real control method) */ - { - /* center around zero */ - steer = input_port_9_word_r(0,0) - 0x80; - } - else /* Digital steer */ - { - if (fake &0x4) - { - steer = 0xff80; - } - else if (fake &0x8) - { - steer = 0x7f; - } - } - - switch (port) - { - case 0x08: - return input_port_5_word_r(0,mem_mask); - - case 0x09: - return input_port_6_word_r(0,mem_mask); - - case 0x0a: - return input_port_7_word_r(0,mem_mask); - - case 0x0b: - return input_port_8_word_r(0,mem_mask); - - case 0x0c: - return steer &0xff; - - case 0x0d: - return steer >> 8; - - default: - return TC0220IOC_portreg_r( offset ); - } -} - - -static READ16_HANDLER( bshark_stick_r ) -{ - switch (offset) - { - case 0x00: - return input_port_5_word_r(0,mem_mask); - - case 0x01: - return input_port_6_word_r(0,mem_mask); - - case 0x02: - return input_port_7_word_r(0,mem_mask); - - case 0x03: - return input_port_8_word_r(0,mem_mask); - } - -logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static UINT8 nightstr_stick[128]= -{ - 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, - 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, - 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, - 0xe8,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25, - 0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35, - 0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45, - 0x46,0x47,0x48,0x49,0xb8 -}; - -static READ16_HANDLER( nightstr_stick_r ) -{ - switch (offset) - { - case 0x00: - return nightstr_stick[(input_port_5_word_r(0,mem_mask) * 0x64) / 0x100]; - - case 0x01: - return nightstr_stick[(input_port_6_word_r(0,mem_mask) * 0x64) / 0x100]; - - case 0x02: - return input_port_7_word_r(0,mem_mask); - - case 0x03: - return input_port_8_word_r(0,mem_mask); - } - -logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - -static WRITE16_HANDLER( bshark_stick_w ) -{ - /* Each write invites a new interrupt as soon as the - hardware has got the next a/d conversion ready. We set a token - delay of 10000 cycles; our "coords" are always ready - but we don't want CPUA to have an int6 before int4 is over (?) - */ - - timer_set(TIME_IN_CYCLES(10000,0),0, taitoz_interrupt6); -} - - -static READ16_HANDLER( sci_steer_input_r ) -{ - int steer = 0; - int fake = input_port_6_word_r(0,0); - - if (!(fake &0x10)) /* Analogue steer (the real control method) */ - { - /* center around zero and reduce span to 0xc0 */ - steer = ((input_port_5_word_r(0,0) - 0x80) * 0xc0) / 0x100; - } - else /* Digital steer */ - { - if (fake &0x4) - { - steer = 0xffa0; - } - else if (fake &0x8) - { - steer = 0x5f; - } - } - - switch (offset) - { - case 0x04: - return (steer & 0xff); - - case 0x05: - return (steer & 0xff00) >> 8; - } - -logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %06x\n",activecpu_get_pc(),offset); - - return 0xff; -} - - -static READ16_HANDLER( spacegun_input_bypass_r ) -{ - switch (offset) - { - case 0x03: - return eeprom_r(); - - default: - return TC0220IOC_r( offset ); /* might be a 510NIO ! */ - } -} - -static READ16_HANDLER( spacegun_lightgun_r ) -{ - switch (offset) - { - case 0x00: - return input_port_5_word_r(0,mem_mask); /* P1X */ - - case 0x01: - return input_port_6_word_r(0,mem_mask); /* P1Y */ - - case 0x02: - return input_port_7_word_r(0,mem_mask); /* P2X */ - - case 0x03: - return input_port_8_word_r(0,mem_mask); /* P2Y */ - } - - return 0x0; -} - -static WRITE16_HANDLER( spacegun_lightgun_w ) -{ - /* Each write invites a new lightgun interrupt as soon as the - hardware has got the next coordinate ready. We set a token - delay of 10000 cycles; our "lightgun" coords are always ready - but we don't want CPUB to have an int5 before int4 is over (?). - - Four lightgun interrupts happen before the collected coords - are moved to shared ram where CPUA can use them. */ - - timer_set(TIME_IN_CYCLES(10000,0),0, taitoz_sg_cpub_interrupt5); -} - - -static READ16_HANDLER( dblaxle_steer_input_r ) -{ - int steer = 0; - int fake = input_port_6_word_r(0,0); - - if (!(fake &0x10)) /* Analogue steer (the real control method) */ - { - /* center around zero and reduce span to 0x80 */ - steer = ((input_port_5_word_r(0,0) - 0x80) * 0x80) / 0x100; - } - else /* Digital steer */ - { - if (fake &0x4) - { - steer = 0xffc0; - } - else if (fake &0x8) - { - steer = 0x3f; - } - } - - switch (offset) - { - case 0x04: - return steer >> 8; - - case 0x05: - return steer &0xff; - } - -logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %02x\n",activecpu_get_pc(),offset); - return 0x00; -} - - -static READ16_HANDLER( chasehq_motor_r ) -{ - switch (offset) - { - case 0x0: - return (rand() &0xff); /* motor status ?? */ - - case 0x101: - return 0x55; /* motor cpu status ? */ - - default: -logerror("CPU #0 PC %06x: warning - read motor cpu %03x\n",activecpu_get_pc(),offset); - return 0; - } -} - -static WRITE16_HANDLER( chasehq_motor_w ) -{ - /* Writes $e00000-25 and $e00200-219 */ - -logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n",activecpu_get_pc(),data,offset); - -} - -static READ16_HANDLER( aquajack_unknown_r ) -{ - return 0xff; -} - - -/***************************************************** - SOUND -*****************************************************/ - -static INT32 banknum = -1; - -static void reset_sound_region(void) /* assumes Z80 sandwiched between 68Ks */ -{ - memory_set_bankptr( 10, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 ); -} - -static WRITE8_HANDLER( sound_bankswitch_w ) -{ - banknum = (data - 1) & 7; - reset_sound_region(); -} - -static WRITE16_HANDLER( taitoz_sound_w ) -{ - if (offset == 0) - taitosound_port_w (0, data & 0xff); - else if (offset == 1) - taitosound_comm_w (0, data & 0xff); - -#ifdef MAME_DEBUG -// if (data & 0xff00) -// { -// char buf[80]; -// -// sprintf(buf,"taitoz_sound_w to high byte: %04x",data); -// popmessage(buf); -// } -#endif -} - -static READ16_HANDLER( taitoz_sound_r ) -{ - if (offset == 1) - return ((taitosound_comm_r (0) & 0xff)); - else return 0; -} - -#if 0 -static WRITE16_HANDLER( taitoz_msb_sound_w ) -{ - if (offset == 0) - taitosound_port_w (0,(data >> 8) & 0xff); - else if (offset == 1) - taitosound_comm_w (0,(data >> 8) & 0xff); - -#ifdef MAME_DEBUG - if (data & 0xff) - { - char buf[80]; - - sprintf(buf,"taitoz_msb_sound_w to low byte: %04x",data); - popmessage(buf); - } -#endif -} - -static READ16_HANDLER( taitoz_msb_sound_r ) -{ - if (offset == 1) - return ((taitosound_comm_r (0) & 0xff) << 8); - else return 0; -} -#endif - - -/*********************************************************** - SAVE STATES -***********************************************************/ - -static MACHINE_START( taitoz ) -{ - state_save_register_global(cpua_ctrl); - state_save_register_func_postload(parse_control); - - /* these are specific to various games: we ought to split the inits */ - state_save_register_global(sci_int6); - state_save_register_global(dblaxle_int6); - state_save_register_global(ioc220_port); - - state_save_register_global(banknum); - state_save_register_func_postload(reset_sound_region); - return 0; -} - - -/*********************************************************** - MEMORY STRUCTURES -***********************************************************/ - - -static ADDRESS_MAP_START( contcirc_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) - AM_RANGE(0x100000, 0x100007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x200000, 0x20ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x220000, 0x22000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ - AM_RANGE(0x400000, 0x4006ff) AM_READ(MRA16_RAM) /* spriteram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( contcirc_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x090000, 0x090001) AM_WRITE(contcirc_out_w) /* road palette bank, sub CPU reset, 3d glasses control */ - AM_RANGE(0x100000, 0x100007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x220000, 0x22000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ - AM_RANGE(0x400000, 0x4006ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( contcirc_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_READ(MRA16_RAM) - AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r) - AM_RANGE(0x100000, 0x100001) AM_READ(contcirc_input_bypass_r) - AM_RANGE(0x100002, 0x100003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC) */ - AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( contcirc_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x080000, 0x083fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x100000, 0x100001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x100002, 0x100003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( chasehq_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) - AM_RANGE(0x10c000, 0x10ffff) AM_READ(MRA16_RAM) /* extra CPUA ram */ - AM_RANGE(0x400000, 0x400001) AM_READ(chasehq_input_bypass_r) - AM_RANGE(0x400002, 0x400003) AM_READ(TC0220IOC_halfword_port_r) - AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) - AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xd00000, 0xd007ff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0xe00000, 0xe003ff) AM_READ(chasehq_motor_r) /* motor cpu */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chasehq_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x400000, 0x400001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x400002, 0x400003) AM_WRITE(TC0220IOC_halfword_port_w) - AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xe00000, 0xe003ff) AM_WRITE(chasehq_motor_w) /* motor cpu */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chq_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( chq_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( enforce_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x3006ff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0x400000, 0x401fff) AM_READ(TC0150ROD_word_r) /* "root ram" ??? */ - AM_RANGE(0x500000, 0x500007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( enforce_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // works without? - AM_RANGE(0x300000, 0x3006ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" ??? */ - AM_RANGE(0x500000, 0x500007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ - AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( enforce_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r) - AM_RANGE(0x300000, 0x300001) AM_READ(TC0220IOC_halfword_portreg_r) - AM_RANGE(0x300002, 0x300003) AM_READ(TC0220IOC_halfword_port_r) /* (actually game uses TC040IOC ?) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( enforce_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x300000, 0x300001) AM_WRITE(TC0220IOC_halfword_portreg_w) - AM_RANGE(0x300002, 0x300003) AM_WRITE(TC0220IOC_halfword_port_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( bshark_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x800000, 0x800007) AM_READ(bshark_stick_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(paletteram16_word_r) /* palette */ - AM_RANGE(0xc00000, 0xc00fff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0xd00000, 0xd0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xd20000, 0xd2000f) AM_READ(TC0100SCN_ctrl_word_0_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bshark_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_noz80_ctrl_w) - AM_RANGE(0x800000, 0x800007) AM_WRITE(bshark_stick_w) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xc00000, 0xc00fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bshark_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x108000, 0x10bfff) AM_READ(MRA16_RAM) - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) -// AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r) // ??? - AM_RANGE(0x600000, 0x600001) AM_READ(YM2610_status_port_0_A_lsb_r) - AM_RANGE(0x600002, 0x600003) AM_READ(YM2610_read_port_0_lsb_r) - AM_RANGE(0x600004, 0x600005) AM_READ(YM2610_status_port_0_B_lsb_r) - AM_RANGE(0x60000c, 0x60000d) AM_READ(MRA16_NOP) - AM_RANGE(0x60000e, 0x60000f) AM_READ(MRA16_NOP) - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bshark_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) -// AM_RANGE(0x400000, 0x400007) AM_WRITE(MWA16_NOP) // pan ??? - AM_RANGE(0x600000, 0x600001) AM_WRITE(YM2610_control_port_0_A_lsb_w) - AM_RANGE(0x600002, 0x600003) AM_WRITE(YM2610_data_port_0_A_lsb_w) - AM_RANGE(0x600004, 0x600005) AM_WRITE(YM2610_control_port_0_B_lsb_w) - AM_RANGE(0x600006, 0x600007) AM_WRITE(YM2610_data_port_0_B_lsb_w) - AM_RANGE(0x60000c, 0x60000d) AM_WRITE(MWA16_NOP) // interrupt controller? - AM_RANGE(0x60000e, 0x60000f) AM_WRITE(MWA16_NOP) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sci_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r) /* extent ?? */ - AM_RANGE(0x10c000, 0x10ffff) AM_READ(MRA16_RAM) /* extra CPUA ram */ - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r) - AM_RANGE(0x420000, 0x420003) AM_READ(taitoz_sound_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(paletteram16_word_r) - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(MRA16_RAM) /* spriteram */ // Raine draws only 0x1000 - AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sci_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x107fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) -// AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written - AM_RANGE(0x420000, 0x420003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sci_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM) - AM_RANGE(0x208000, 0x20bfff) AM_READ(sharedram_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sci_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x208000, 0x20bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( nightstr_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r) - AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xd00000, 0xd007ff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0xe40000, 0xe40007) AM_READ(nightstr_stick_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nightstr_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -// AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP) /* ??? */ -// AM_RANGE(0xe00008, 0xe00009) AM_WRITE(MWA16_NOP) /* ??? */ -// AM_RANGE(0xe00010, 0xe00011) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0xe40000, 0xe40007) AM_WRITE(bshark_stick_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nightstr_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* "root ram" */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( nightstr_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) /* "root ram" */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( aquajack_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x300007) AM_READ(TC0110PCR_word_r) /* palette */ - AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r) /* (like Contcirc, uses CPUA for road) */ - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xc40000, 0xc403ff) AM_READ(MRA16_RAM) /* spriteram */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aquajack_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // not needed, but it's probably like the others - AM_RANGE(0x300000, 0x300007) AM_WRITE(TC0110PCR_step1_word_w) /* palette */ - AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xc40000, 0xc403ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aquajack_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r) - AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r) - AM_RANGE(0x300000, 0x300003) AM_READ(taitoz_sound_r) - AM_RANGE(0x800800, 0x80083f) AM_READ(aquajack_unknown_r) // Read regularly after write to 800800... -// AM_RANGE(0x900000, 0x900007) AM_READ(taitoz_unknown_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( aquajack_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w) - AM_RANGE(0x300000, 0x300003) AM_WRITE(taitoz_sound_w) -// AM_RANGE(0x800800, 0x800801) AM_WRITE(taitoz_unknown_w) -// AM_RANGE(0x900000, 0x900007) AM_WRITE(taitoz_unknown_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( spacegun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x30c000, 0x30ffff) AM_READ(MRA16_RAM) /* local CPUA ram */ - AM_RANGE(0x310000, 0x31ffff) AM_READ(sharedram_r) /* extent correct acc. to CPUB inits */ - AM_RANGE(0x500000, 0x5005ff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r) - AM_RANGE(0xb00000, 0xb00007) AM_READ(TC0110PCR_word_r) /* palette */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacegun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x30c000, 0x30ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x310000, 0x31ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x500000, 0x5005ff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w) /* tilemaps */ - AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w) - AM_RANGE(0xb00000, 0xb00007) AM_WRITE(TC0110PCR_step1_rbswap_word_w) /* palette */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacegun_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x20c000, 0x20ffff) AM_READ(MRA16_RAM) /* local CPUB ram */ - AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) - AM_RANGE(0x800000, 0x80000f) AM_READ(spacegun_input_bypass_r) - AM_RANGE(0xc00000, 0xc00001) AM_READ(YM2610_status_port_0_A_lsb_r) - AM_RANGE(0xc00002, 0xc00003) AM_READ(YM2610_read_port_0_lsb_r) - AM_RANGE(0xc00004, 0xc00005) AM_READ(YM2610_status_port_0_B_lsb_r) - AM_RANGE(0xc0000c, 0xc0000d) AM_READ(MRA16_NOP) - AM_RANGE(0xc0000e, 0xc0000f) AM_READ(MRA16_NOP) - AM_RANGE(0xf00000, 0xf00007) AM_READ(spacegun_lightgun_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( spacegun_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x20c000, 0x20ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) - AM_RANGE(0x800000, 0x80000f) AM_WRITE(spacegun_output_bypass_w) - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(YM2610_control_port_0_A_lsb_w) - AM_RANGE(0xc00002, 0xc00003) AM_WRITE(YM2610_data_port_0_A_lsb_w) - AM_RANGE(0xc00004, 0xc00005) AM_WRITE(YM2610_control_port_0_B_lsb_w) - AM_RANGE(0xc00006, 0xc00007) AM_WRITE(YM2610_data_port_0_B_lsb_w) - AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(MWA16_NOP) // interrupt controller? - AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(MWA16_NOP) -// AM_RANGE(0xc20000, 0xc20003) AM_WRITE(YM2610_????) /* Pan (acc. to Raine) */ -// AM_RANGE(0xe00000, 0xe00001) AM_WRITE(MWA16_NOP) /* ??? */ - AM_RANGE(0xf00000, 0xf00007) AM_WRITE(spacegun_lightgun_w) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( dblaxle_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r) - AM_RANGE(0x400000, 0x40000f) AM_READ(TC0510NIO_halfword_wordswap_r) - AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r) - AM_RANGE(0x620000, 0x620003) AM_READ(taitoz_sound_r) - AM_RANGE(0x800000, 0x801fff) AM_READ(paletteram16_word_r) /* palette */ - AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0xa30000, 0xa3002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0xc00000, 0xc03fff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblaxle_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x200000, 0x203fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) - AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) /* could this be causing int6 ? */ - AM_RANGE(0x620000, 0x620003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemap mirror */ - AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0xa30000, 0xa3002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ - AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w) /* set in int6, seems to stay zero */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblaxle_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r) - AM_RANGE(0x500000, 0x503fff) AM_READ(MRA16_RAM) /* network ram ? (see Gunbustr) */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( dblaxle_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0x500000, 0x503fff) AM_WRITE(MWA16_RAM) /* network ram ? (see Gunbustr) */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( racingb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_READ(MRA16_RAM) /* main CPUA ram */ - AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r) - AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r) - AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r) - AM_RANGE(0x520000, 0x520003) AM_READ(taitoz_sound_r) - AM_RANGE(0x700000, 0x701fff) AM_READ(paletteram16_word_r) /* palette */ - AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0480SCP_word_r) /* tilemaps */ - AM_RANGE(0x930000, 0x93002f) AM_READ(TC0480SCP_ctrl_word_r) - AM_RANGE(0xb00000, 0xb03fff) AM_READ(MRA16_RAM) /* spriteram */ - AM_RANGE(0xb08000, 0xb08001) AM_READ(sci_spriteframe_r) // debugging -ADDRESS_MAP_END - -static ADDRESS_MAP_START( racingb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x100000, 0x103fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size) - AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w) - AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w) - AM_RANGE(0x520000, 0x520003) AM_WRITE(taitoz_sound_w) - AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w) /* tilemaps */ - AM_RANGE(0x930000, 0x93002f) AM_WRITE(TC0480SCP_ctrl_word_w) - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */ - AM_RANGE(0xb08000, 0xb08001) AM_WRITE(sci_spriteframe_w) /* alternates 0/0x100 */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( racingb_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x400000, 0x403fff) AM_READ(MRA16_RAM) - AM_RANGE(0x410000, 0x41ffff) AM_READ(sharedram_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r) - AM_RANGE(0xd00000, 0xd03fff) AM_READ(MRA16_RAM) /* network ram ? */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( racingb_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x400000, 0x403fff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x410000, 0x41ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w) - AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(MWA16_RAM) /* network ram ? */ -ADDRESS_MAP_END - - -/***************************************************************************/ - -static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(MRA8_ROM) - AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK10) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0xe001, 0xe001) AM_READ(YM2610_read_port_0_r) - AM_RANGE(0xe002, 0xe002) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0xe200, 0xe200) AM_READ(MRA8_NOP) - AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r) - AM_RANGE(0xea00, 0xea00) AM_READ(MRA8_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xe000, 0xe000) AM_WRITE(YM2610_control_port_0_A_w) - AM_RANGE(0xe001, 0xe001) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0xe002, 0xe002) AM_WRITE(YM2610_control_port_0_B_w) - AM_RANGE(0xe003, 0xe003) AM_WRITE(YM2610_data_port_0_B_w) - AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w) - AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w) - AM_RANGE(0xe400, 0xe403) AM_WRITE(MWA8_NOP) /* pan */ - AM_RANGE(0xee00, 0xee00) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) -ADDRESS_MAP_END - - -/*********************************************************** - INPUT PORTS, DIPs -***********************************************************/ - -#define TAITO_Z_COINAGE_JAPAN_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) - -#define TAITO_Z_COINAGE_WORLD_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) - -#define TAITO_Z_COINAGE_US_8 \ - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ - PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ - PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \ - PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ - PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ - PORT_DIPSETTING( 0xc0, "Same as Start" ) - -#define TAITO_Z_DIFFICULTY_8 \ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \ - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) \ - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - - -INPUT_PORTS_START( contcirc ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Cockpit" ) // analogue accelerator pedal - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_WORLD_8 - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x03, 0x03, "Difficulty 1 (time/speed)" ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Difficulty 2 (other cars)" ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, "Steering wheel" ) //not sure what effect this has - PORT_DIPSETTING( 0x10, "Free" ) - PORT_DIPSETTING( 0x00, "Locked" ) - PORT_DIPNAME( 0x20, 0x00, "Enable 3d alternate frames" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) /* 3 for accel [7 levels] */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) /* main accel key */ - - PORT_START /* IN1: b3 not mapped: standardized on holding b4=lo gear */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear shift lo/hi */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(1) /* 3 for brake [7 levels] */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) /* main brake key */ - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, "handle" i.e. steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( contcrcu ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Upright ) ) - PORT_DIPSETTING( 0x00, "Cockpit" ) // analogue accelerator pedal - PORT_DIPNAME( 0x02, 0x02, "Discounted continues" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_JAPAN_8 // confirmed - - PORT_START /* DSW B */ - PORT_DIPNAME( 0x03, 0x03, "Difficulty 1 (time/speed)" ) - PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, "Difficulty 2 (other cars)" ) - PORT_DIPSETTING( 0x08, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x10, "Steering wheel" ) //not sure what effect this has - PORT_DIPSETTING( 0x10, "Free" ) - PORT_DIPSETTING( 0x00, "Locked" ) - PORT_DIPNAME( 0x20, 0x00, "Enable 3d alternate frames" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) //acc. to manual - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) //acc. to manual - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) /* 3 for accel [7 levels] */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) /* main accel key */ - - PORT_START /* IN1: b3 not mapped: standardized on holding b4=lo gear */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear shift lo/hi */ - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(1) /* 3 for brake [7 levels] */ - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) /* main brake key */ - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, "handle" i.e. steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( chasehq ) // IN3-6 perhaps used with cockpit setup? // - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) /* US Manual states DIPS 1 & 2 "MUST REMAIN OFF" */ - PORT_DIPSETTING( 0x03, "Upright / Steering Lock" ) - PORT_DIPSETTING( 0x02, "Upright / No Steering Lock" ) - PORT_DIPSETTING( 0x01, "Full Throttle Convert, Cockpit" ) - PORT_DIPSETTING( 0x00, "Full Throttle Convert, Deluxe" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_WORLD_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" ) - PORT_DIPSETTING( 0x08, "70 Seconds" ) - PORT_DIPSETTING( 0x04, "65 Seconds" ) - PORT_DIPSETTING( 0x0c, "60 Seconds" ) - PORT_DIPSETTING( 0x00, "55 Seconds" ) - PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, "Discounted Continue Play" ) /* Full coin price to start, 1 coin to continue */ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* turbo */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN4, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN5, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN6, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN7, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START /* IN8, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( chasehqj ) // IN3-6 perhaps used with cockpit setup? // - PORT_START /* DSW A */ - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x03, "Upright / Steering Lock" ) - PORT_DIPSETTING( 0x02, "Upright / No Steering Lock" ) - PORT_DIPSETTING( 0x01, "Full Throttle Convert, Cockpit" ) - PORT_DIPSETTING( 0x00, "Full Throttle Convert, Deluxe" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_JAPAN_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" ) - PORT_DIPSETTING( 0x08, "70 Seconds" ) - PORT_DIPSETTING( 0x04, "65 Seconds" ) - PORT_DIPSETTING( 0x0c, "60 Seconds" ) - PORT_DIPSETTING( 0x00, "55 Seconds" ) - PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, "Discounted Continue Play" ) /* Full coin price to start, 1 coin to continue */ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* turbo */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN4, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN5, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN6, ??? */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN7, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START /* IN8, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( enforce ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // Says SHIFT HI in test mode !? - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) // Says SHIFT LO in test mode !? - TAITO_Z_COINAGE_JAPAN_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, "Background scenery" ) - PORT_DIPSETTING( 0x10, "Crazy scrolling" ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* Bomb */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* Laser */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( bshark ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, "Mirror screen" ) // manual says first two must be off - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_US_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" ) - PORT_DIPSETTING( 0x0c, "Slow" ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, "Fast" ) - PORT_DIPSETTING( 0x00, "Fastest" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // manual says all these must be off - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1, unused */ - - PORT_START /* IN2, b2-5 affect sound num in service mode but otherwise useless (?) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* "Fire" */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* same as "Fire" */ - - PORT_START /* values chosen to match allowed crosshair area */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_MINMAX(0xcc,0x35) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* "X adjust" */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* values chosen to match allowed crosshair area */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0xd5,0x32) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_PLAYER(1) - - PORT_START /* "Y adjust" */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( bsharkj ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, "Mirror screen" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_JAPAN_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" ) - PORT_DIPSETTING( 0x0c, "Slow" ) - PORT_DIPSETTING( 0x08, DEF_STR( Medium ) ) - PORT_DIPSETTING( 0x04, "Fast" ) - PORT_DIPSETTING( 0x00, "Fastest" ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1, unused */ - - PORT_START /* IN2, b2-5 affect sound num in service mode but otherwise useless (?) */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* "Fire" */ - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* same as "Fire" */ - - PORT_START /* values chosen to match allowed crosshair area */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_MINMAX(0xcc,0x35) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* "X adjust" */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* values chosen to match allowed crosshair area */ - PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_MINMAX(0xd5,0x32) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_PLAYER(1) - - PORT_START /* "Y adjust" */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( sci ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, "Cockpit" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Manual states "MUST REMAIN OFF" */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_WORLD_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" ) - PORT_DIPSETTING( 0x08, "70 Seconds" ) - PORT_DIPSETTING( 0x04, "65 Seconds" ) - PORT_DIPSETTING( 0x0c, "60 Seconds" ) - PORT_DIPSETTING( 0x00, "55 Seconds" ) - PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, "Steering Radius" ) - PORT_DIPSETTING( 0x00, "270 Degree" ) - PORT_DIPSETTING( 0x20, "360 Degree" ) - PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Siren Volume" ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* fire */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* turbo */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* "center" */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( sciu ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, "Cockpit" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Manual states "MUST REMAIN OFF" */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_US_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" ) - PORT_DIPSETTING( 0x08, "70 Seconds" ) - PORT_DIPSETTING( 0x04, "65 Seconds" ) - PORT_DIPSETTING( 0x0c, "60 Seconds" ) - PORT_DIPSETTING( 0x00, "55 Seconds" ) - PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" ) - PORT_DIPSETTING( 0x10, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x20, 0x20, "Steering Radius" ) - PORT_DIPSETTING( 0x00, "270 Degree" ) - PORT_DIPSETTING( 0x20, "360 Degree" ) - PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Siren Volume" ) - PORT_DIPSETTING( 0x80, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Low ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* fire */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* turbo */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* "center" */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) /* gear */ - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( nightstr ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x01, "Cockpit" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Shown only as "OFF" in the manual */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_US_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x0c, 0x0c, "Bonus Shields" ) - PORT_DIPSETTING( 0x08, "3" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "1" ) - PORT_DIPSETTING( 0x00, DEF_STR( None ) ) - PORT_DIPNAME( 0x30, 0x30, "Shields" ) - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x10, "4" ) - PORT_DIPSETTING( 0x30, "5" ) - PORT_DIPSETTING( 0x20, "6" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Trigger Turbo" ) - PORT_DIPSETTING( 0x80, "7 Shots / Second" ) - PORT_DIPSETTING( 0x00, "10 Shots / Second" ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) - - PORT_START /* IN1, unused */ - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1) - - PORT_START /* X offset */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START /* Y offset */ - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -INPUT_PORTS_START( aquajack ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, "Cockpit" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) /* Dip 2 shown as "Must Remain in "Off" Position" in manual */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) /* The Romstar (US version) manual list this as "Continue Pricing" */ - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) /* Same pricing as Coin A */ - PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) /* 1 Coin to Continue */ - PORT_DIPSETTING( 0x02, DEF_STR( 1C_4C ) ) /* 2 Coins to Continue */ - PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) /* 3 Coins to Continue */ - - PORT_START /* DSW B */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30k" ) - PORT_DIPSETTING( 0x30, "50k" ) - PORT_DIPSETTING( 0x10, "80k" ) - PORT_DIPSETTING( 0x20, "100k" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Dips 7 & 8 shown as "Do Not Touch" in non US manuals */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* The Romstar (US version) manual list this as "Endless Game" - Has no effect on "World" version */ - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) /* Normal Game */ - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* Endless Game */ - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, what is it ??? */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( aquajckj ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) - PORT_DIPSETTING( 0x80, "Cockpit" ) - PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x20, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) - PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) ) - - PORT_START /* DSW B */ - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) - PORT_DIPSETTING( 0x00, "30k" ) - PORT_DIPSETTING( 0x30, "50k" ) - PORT_DIPSETTING( 0x10, "80k" ) - PORT_DIPSETTING( 0x20, "100k" ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) - PORT_DIPSETTING( 0x08, "1" ) - PORT_DIPSETTING( 0x04, "2" ) - PORT_DIPSETTING( 0x0c, "3" ) - PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Dips 7 & 8 shown as "Do Not Touch" in manual */ - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, what is it ??? */ - PORT_BIT( 0xff, 0x80, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1) -INPUT_PORTS_END - -INPUT_PORTS_START( spacegun ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // Manual says Always Off - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Always have gunsight power up" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_WORLD_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) // Manual lists dips 3 through 6 and 8 as Always off - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Disable Pedal (?)" ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2) - - PORT_START /* IN1, unused */ - - PORT_START /* IN2 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(22) PORT_REVERSE PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(22) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(22) PORT_REVERSE PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(22) PORT_PLAYER(2) -INPUT_PORTS_END - -INPUT_PORTS_START( dblaxle ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Gear shift" ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Inverted" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_US_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x00, "Multi-machine hookup ?" ) // doesn't boot if on - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Player Truck" ) - PORT_DIPSETTING( 0x08, "Red" ) - PORT_DIPSETTING( 0x00, "Blue" ) - PORT_DIPNAME( 0x10, 0x10, "Back button" ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Inverted" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // causes "Root CPU Error" on "Icy Road" (Tourniquet) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) /* shift */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* "back" */ - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* nitro */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* "center" */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - -INPUT_PORTS_START( pwheelsj ) - PORT_START /* DSW A */ - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Gear shift" ) - PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Inverted" ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - TAITO_Z_COINAGE_JAPAN_8 - - PORT_START /* DSW B */ - TAITO_Z_DIFFICULTY_8 - PORT_DIPNAME( 0x04, 0x00, "Multi-machine hookup ?" ) // doesn't boot if on - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Player Truck" ) - PORT_DIPSETTING( 0x08, "Red" ) - PORT_DIPSETTING( 0x00, "Blue" ) - PORT_DIPNAME( 0x10, 0x10, "Back button" ) - PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x00, "Inverted" ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // causes "Root CPU Error" on "Icy Road" (Tourniquet) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START /* IN0 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) /* shift */ - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) /* brake */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) /* "back" */ - - PORT_START /* IN1 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) /* nitro */ - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* "center" */ - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* accel */ - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START /* IN2, unused */ - - PORT_START /* IN3, steering */ - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(40) PORT_KEYDELTA(10) PORT_PLAYER(1) - - PORT_START /* IN4, fake allowing digital steer */ - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1) - PORT_DIPNAME( 0x10, 0x00, "Steering type" ) - PORT_DIPSETTING( 0x10, "Digital" ) - PORT_DIPSETTING( 0x00, "Analogue" ) -INPUT_PORTS_END - - -/*********************************************************** - GFX DECODING -***********************************************************/ - -static const gfx_layout tile16x8_layout = -{ - 16,8, /* 16*8 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 }, - 64*8 /* every sprite takes 64 consecutive bytes */ -}; - -static const gfx_layout tile16x16_layout = -{ - 16,16, /* 16*16 sprites */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 8, 16, 24 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_layout charlayout = -{ - 8,8, /* 8*8 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout dblaxle_charlayout = -{ - 16,16, /* 16*16 characters */ - RGN_FRAC(1,1), - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 }, - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 /* every sprite takes 128 consecutive bytes */ -}; - -static const gfx_decode taitoz_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x8_layout, 0, 256 }, /* sprite parts */ - { REGION_GFX1, 0x0, &charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - -/* taitoic.c TC0100SCN routines expect scr stuff to be in second gfx - slot, so 2nd batch of obj must be placed third */ - -static const gfx_decode chasehq_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x16_layout, 0, 256 }, /* sprite parts */ - { REGION_GFX1, 0x0, &charlayout, 0, 256 }, /* sprites & playfield */ - { REGION_GFX4, 0x0, &tile16x16_layout, 0, 256 }, /* sprite parts */ - { -1 } /* end of array */ -}; - -static const gfx_decode dblaxle_gfxdecodeinfo[] = -{ - { REGION_GFX2, 0x0, &tile16x8_layout, 0, 256 }, /* sprite parts */ - { REGION_GFX1, 0x0, &dblaxle_charlayout, 0, 256 }, /* sprites & playfield */ - { -1 } /* end of array */ -}; - - - -/************************************************************** - YM2610 (SOUND) - -The first interface is for game boards with twin 68000 and Z80. -Interface B is for games which lack a Z80 (Spacegun, Bshark). -**************************************************************/ - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandler(int irq) // assumes Z80 sandwiched between 68Ks -{ - cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -/* handler called by the YM2610 emulator when the internal timers cause an IRQ */ -static void irqhandlerb(int irq) -{ - // DG: this is probably specific to Z80 and wrong? -// cpunum_set_input_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE); -} - -static struct YM2610interface ym2610_interface = -{ - irqhandler, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - -static struct YM2610interface ym2610_interfaceb = -{ - irqhandlerb, - REGION_SOUND2, /* Delta-T */ - REGION_SOUND1 /* ADPCM */ -}; - - -/************************************************************** - SUBWOOFER (SOUND) -**************************************************************/ - -#if 0 -static int subwoofer_sh_start(const sound_config *msound) -{ - /* Adjust the lowpass filter of the first three YM2610 channels */ - - /* 150 Hz is a common top frequency played by a generic */ - /* subwoofer, the real Arcade Machine may differs */ - - mixer_set_lowpass_frequency(0,20); - mixer_set_lowpass_frequency(1,20); - mixer_set_lowpass_frequency(2,20); - - return 0; -} - -static struct CustomSound_interface subwoofer_interface = -{ - subwoofer_sh_start, - 0, /* none */ - 0 /* none */ -}; -#endif - - -/*********************************************************** - MACHINE DRIVERS - -CPU Interleaving ----------------- - -Chasehq2 needs high interleaving to have sound (not checked -since May 2001 - may have changed). - -Enforce with interleave of 1 sometimes lets you take over from -the demo game when you coin up! Set to 10 seems to cure this. - -Bshark needs the high cpu interleaving to run test mode. - -Nightstr needs the high cpu interleaving to get through init. - -Aquajack has it VERY high to cure frequent sound-related -hangs. - -Dblaxle has 10 to boot up reliably but very occasionally gets -a "root cpu error" still. - -Racingb inherited interleave from Dblaxle - other values not -tested! - -Mostly it's the 2nd 68K which writes to road chip, so syncing -between it and the master 68K may be important. Contcirc -and ChaseHQ have interleave of only 1 - possible cause of -Contcirc road glitchiness in attract? - -***********************************************************/ - -/* Contcirc vis area seems narrower than the other games... */ - -static MACHINE_DRIVER_START( contcirc ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(contcirc_readmem,contcirc_writemem) - MDRV_CPU_VBLANK_INT(irq6_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(contcirc_cpub_readmem,contcirc_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq6_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(contcirc) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) - -// MDRV_SOUND_ADD(CUSTOM, subwoofer_interface) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( chasehq ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(chasehq_readmem,chasehq_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(chq_cpub_readmem,chq_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(chasehq_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(chasehq) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( enforce ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(enforce_readmem,enforce_writemem) - MDRV_CPU_VBLANK_INT(irq6_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(enforce_cpub_readmem,enforce_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq6_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(contcirc) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) - -// MDRV_SOUND_ADD(CUSTOM, subwoofer_interface) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( bshark ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(bshark_readmem,bshark_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(bshark_cpub_readmem,bshark_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(bshark) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interfaceb) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( sci ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sci_readmem,sci_writemem) - MDRV_CPU_VBLANK_INT(sci_interrupt,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(sci_cpub_readmem,sci_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(50) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(sci) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( nightstr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(nightstr_readmem,nightstr_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(nightstr_cpub_readmem,nightstr_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(chasehq_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(chasehq) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( aquajack ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(aquajack_readmem,aquajack_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(aquajack_cpub_readmem,aquajack_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(500) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(aquajack) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( spacegun ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(spacegun_readmem,spacegun_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(spacegun_cpub_readmem,spacegun_cpub_writemem) - MDRV_CPU_VBLANK_INT(irq4_line_hold,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - - MDRV_NVRAM_HANDLER(spacegun) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(taitoz_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(spacegun) - MDRV_VIDEO_UPDATE(spacegun) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interfaceb) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( dblaxle ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(dblaxle_readmem,dblaxle_writemem) - MDRV_CPU_VBLANK_INT(dblaxle_interrupt,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_readmem,dblaxle_cpub_writemem) - MDRV_CPU_VBLANK_INT(dblaxle_cpub_interrupt,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(10) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(dblaxle_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(dblaxle) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -static MACHINE_DRIVER_START( racingb ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(racingb_readmem,racingb_writemem) - MDRV_CPU_VBLANK_INT(dblaxle_interrupt,1) - - MDRV_CPU_ADD(Z80,16000000/4) - /* audio CPU */ /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem) - - MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(racingb_cpub_readmem,racingb_cpub_writemem) - MDRV_CPU_VBLANK_INT(dblaxle_cpub_interrupt,1) - - MDRV_MACHINE_START(taitoz) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MDRV_GFXDECODE(dblaxle_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(4096) - - MDRV_VIDEO_START(taitoz) - MDRV_VIDEO_UPDATE(dblaxle) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2610, 16000000/2) - MDRV_SOUND_CONFIG(ym2610_interface) - MDRV_SOUND_ROUTE(0, "left", 0.25) - MDRV_SOUND_ROUTE(0, "right", 0.25) - MDRV_SOUND_ROUTE(1, "left", 1.0) - MDRV_SOUND_ROUTE(2, "right", 1.0) -MACHINE_DRIVER_END - - -/*************************************************************************** - DRIVERS - -Contcirc, Dblaxle sound sample rom order is uncertain as sound imperfect -***************************************************************************/ - -ROM_START( contcirc ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) ) - ROM_LOAD16_BYTE( "ic26", 0x00001, 0x20000, CRC(e7c1d1fa) SHA1(75e851629a54facb8804ee8a953ab3265633bbf4) ) -// this was bogus and has been removed. -// someone hacked the copyright year from 1987 to 1989, and changed an unused byte from FF to F3 to keep -// the checksum the same. There are no other differences. -// ROM_LOAD16_BYTE( "cc_26.bin", 0x00001, 0x20000, CRC(1345ebe6) SHA1(88b9cc8ba2f7061beb8f6b763583cd45b03bcea1) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) ) - ROM_LOAD16_BYTE( "cc_36.bin", 0x00001, 0x20000, CRC(a1732ea5) SHA1(b773add433c20633e7acbc99d5cfeb7ccde83371) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b33-30.11", 0x00000, 0x04000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) ) /* STY spritemap */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) ) - ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b14-30.97", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) // sprite vertical zoom - ROM_LOAD( "b14-31.50", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) ) // sprite horizontal zoom - ROM_LOAD( "b33-17.16", 0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - ROM_LOAD( "b33-18.17", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -ROM_END - -ROM_START( contcrcu ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) ) - ROM_LOAD16_BYTE( "ic26", 0x00001, 0x20000, CRC(e7c1d1fa) SHA1(75e851629a54facb8804ee8a953ab3265633bbf4) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) ) - ROM_LOAD16_BYTE( "ic36", 0x00001, 0x20000, CRC(d6741e33) SHA1(8e86789e1664a34ceed85434fd3186f2571f0c4a) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b33-30.11", 0x00000, 0x04000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) ) /* STY spritemap */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) ) - ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b14-30.97", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) // sprite vertical zoom - ROM_LOAD( "b14-31.50", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) ) // sprite horizontal zoom - ROM_LOAD( "b33-17.16", 0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - ROM_LOAD( "b33-18.17", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -ROM_END - -ROM_START( contcrua ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b33-34.ic25", 0x00000, 0x20000, CRC(e1e016c1) SHA1(d6ca3bcf03828dc296eab73185f773860bbaaae6) ) - ROM_LOAD16_BYTE( "b33-33.ic26", 0x00001, 0x20000, CRC(f539d44b) SHA1(1b77d97376f9bf3bbd728d459f0a0afbadc6d756) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "21-2.ic35", 0x00000, 0x20000, CRC(2723f9e3) SHA1(18a86e352bb0aeec6ad6c537294ddd0d33823ea6) ) - ROM_LOAD16_BYTE( "31-1.ic36", 0x00001, 0x20000, CRC(438431f7) SHA1(9be4ac6526d5aee01c3691f189583a2cfdad0e45) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b33-30.11", 0x00000, 0x04000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) ) - ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) ) - ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) ) /* STY spritemap */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) ) - ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b14-30.97", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) // sprite vertical zoom - ROM_LOAD( "b14-31.50", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) ) // sprite horizontal zoom - ROM_LOAD( "b33-17.16", 0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - ROM_LOAD( "b33-18.17", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -ROM_END - -ROM_START( chasehq ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b52-130.36", 0x00000, 0x20000, CRC(4e7beb46) SHA1(b8890c4a2121aa93cfc3a41ddbb3b840d0804cfa) ) - ROM_LOAD16_BYTE( "b52-136.29", 0x00001, 0x20000, CRC(2f414df0) SHA1(0daad8b1f7512a5af0722983751841b5b18064ac) ) - ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) ) - ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) ) - ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b52-137.51", 0x00000, 0x04000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) ) - ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) ) - ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b52-01.7", 0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) // road/sprite priority and palette select - ROM_LOAD( "b52-03.135", 0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) ) - ROM_LOAD( "b52-06.24", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b52-18.93", 0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) ) // identical to b52-18b - ROM_LOAD( "b52-18a", 0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) ) - ROM_LOAD( "b52-49.68", 0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) ) - ROM_LOAD( "b52-50.66", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) ) - ROM_LOAD( "b52-51.65", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) ) - ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) ) - ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) ) - - ROM_REGION( 0x02a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal20l8b-b52-17.ic18", 0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic16", 0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic53", 0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic55", 0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal16l8b-b52-19.ic33", 0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) ) - ROM_LOAD( "pal16l8b-b52-20.ic35", 0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) ) - ROM_LOAD( "pal16l8b-b52-21.ic51", 0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) ) - ROM_LOAD( "pal20l8b-b52-25.ic123", 0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) ) - ROM_LOAD( "pal20l8b-b52-26.ic15", 0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic18", 0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic52", 0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic54", 0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-27.ic64", 0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) ) - ROM_LOAD( "pal20l8b-b52-118.ic20", 0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) ) - ROM_LOAD( "pal20l8b-b52-119.ic21", 0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) ) - ROM_LOAD( "pal16l8b-b52-120.ic56", 0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) ) - ROM_LOAD( "pal20l8b-b52-121.ic57", 0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) ) - ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) ) - ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) ) - ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, NO_DUMP ) /* read protected */ - ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) ) -ROM_END - -ROM_START( chasehqj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b52-140.36", 0x00000, 0x20000, CRC(c1298a4b) SHA1(41981b72c9ebbea8f8a4aa32e74b9ed46dd71e32) ) - ROM_LOAD16_BYTE( "b52-139.29", 0x00001, 0x20000, CRC(997f732e) SHA1(0f7bd4b3c53e1f14830b3c288f2175e7c125c2cc) ) - ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) ) - ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) ) - ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b52-134.51", 0x00000, 0x04000, CRC(91faac7f) SHA1(05f00e0909444566877d0ef678bae49f107e1628) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) ) - ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) ) - ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) ) - ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) ) - ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b52-41.71", 0x000000, 0x80000, CRC(8204880c) SHA1(4dfd6454b4a4c04db3593e98648afbfe8d1f59ed) ) - ROM_LOAD( "b52-40.72", 0x080000, 0x80000, CRC(f0551055) SHA1(4498cd058a52d5e87c6d502e844908a5df3abf2a) ) - ROM_LOAD( "b52-39.73", 0x100000, 0x80000, CRC(ac9cbbd3) SHA1(792f41fef37ff35067fd0173d944f90279176649) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b52-42.70", 0x00000, 0x80000, CRC(6e617df1) SHA1(e3d1678132130c66506f2e1419db2f6b5b062f74) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b52-01.7", 0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) // road/sprite priority and palette select - ROM_LOAD( "b52-03.135", 0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) ) - ROM_LOAD( "b52-06.24", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b52-18.93", 0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) ) // identical to b52-18b - ROM_LOAD( "b52-18a", 0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) ) - ROM_LOAD( "b52-49.68", 0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) ) - ROM_LOAD( "b52-50.66", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) ) - ROM_LOAD( "b52-51.65", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) ) - ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) ) - ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) ) - - ROM_REGION( 0x02a00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal20l8b-b52-17.ic18", 0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic16", 0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic53", 0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal20l8b-b52-17.ic55", 0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) ) - ROM_LOAD( "pal16l8b-b52-19.ic33", 0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) ) - ROM_LOAD( "pal16l8b-b52-20.ic35", 0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) ) - ROM_LOAD( "pal16l8b-b52-21.ic51", 0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) ) - ROM_LOAD( "pal20l8b-b52-25.ic123", 0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) ) - ROM_LOAD( "pal20l8b-b52-26.ic15", 0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic18", 0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic52", 0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-26.ic54", 0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) ) - ROM_LOAD( "pal20l8b-b52-27.ic64", 0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) ) - ROM_LOAD( "pal20l8b-b52-118.ic20", 0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) ) - ROM_LOAD( "pal20l8b-b52-119.ic21", 0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) ) - ROM_LOAD( "pal16l8b-b52-120.ic56", 0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) ) - ROM_LOAD( "pal20l8b-b52-121.ic57", 0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) ) - ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) ) - ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) ) - ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, NO_DUMP ) /* read protected */ - ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) ) -ROM_END - -ROM_START( enforce ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b58-27.27", 0x00000, 0x20000, CRC(a1aa0191) SHA1(193d936e1bfe0da4ac984aba65d3e4e6c93a4c11) ) - ROM_LOAD16_BYTE( "b58-19.19", 0x00001, 0x20000, CRC(40f43da3) SHA1(bb3d6c6db8df77674bb76c16992d05c297d97c9f) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b58-26.26", 0x00000, 0x20000, CRC(e823c85c) SHA1(199b19e81c76eb936f4cf31957ae08bed1395bda) ) - ROM_LOAD16_BYTE( "b58-18.18", 0x00001, 0x20000, CRC(65328a3e) SHA1(f51ca107910629e030678e183cc8fd06d2569098) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b58-32.41", 0x00000, 0x04000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) ) - ROM_LOAD32_BYTE( "b58-03.6", 0x000001, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b58-02.2", 0x000002, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) ) - ROM_LOAD32_BYTE( "b58-01.1", 0x000003, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b58-05.71", 0x00000, 0x80000, CRC(d1f4991b) SHA1(f1c5a9b8dce994d013290e98fda7bedf73e95900) ) /* STY spritemap */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b58-07.11", 0x000000, 0x080000, CRC(eeb5ba08) SHA1(fe40333e09339c76e503ce87b42a89b48d487016) ) - ROM_LOAD( "b58-08.12", 0x080000, 0x080000, CRC(049243cf) SHA1(1f3099b6d764114dc4161ed308369d0f3148dc4e) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples ??? */ - ROM_LOAD( "b58-10.14", 0x00000, 0x80000, CRC(edce0cc1) SHA1(1f6cbc60502b8b12b349e48446ce3a4a1f76bccd) ) /* ??? */ - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b58-26a.104", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) // sprite vertical zoom - ROM_LOAD( "b58-27.56", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) ) // sprite horizontal zoom - ROM_LOAD( "b58-23.52", 0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - ROM_LOAD( "b58-24.51", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b58-25.75", 0x00000, 0x00100, CRC(de547342) SHA1(3b2b116d4016ddbf46c41c625c7fcfd76129baa7) ) -// Add pals... -ROM_END - -ROM_START( bshark ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) ) - ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) ) - ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) ) - ROM_LOAD16_BYTE( "bshark67.bin", 0x40001, 0x20000, CRC(39307c74) SHA1(65d1cb6b0baee29c1439180b8b4c6907e20b2921) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 512K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) ) - ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) ) - ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) ) - ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) ) /* STY spritemap */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select - ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "c34_21.7", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) - ROM_LOAD( "c34_22.8", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) -ROM_END - -ROM_START( bsharkj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) ) - ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) ) - ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) ) - ROM_LOAD16_BYTE( "c34_66.74", 0x40001, 0x20000, CRC(a0392dce) SHA1(5d20f39b75e921fda82c33990463cec73879d113) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 512K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) ) - ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) ) - ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) ) - ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) ) - ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) ) - ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) ) /* STY spritemap */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select - ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "c34_21.7", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) - ROM_LOAD( "c34_22.8", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) -ROM_END - -ROM_START( sci ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c09-37.rom", 0x00000, 0x20000, CRC(0fecea17) SHA1(0ad4454eee6646b0f978b1ba83206d64c1f6d081) ) - ROM_LOAD16_BYTE( "c09-40.rom", 0x00001, 0x20000, CRC(e46ebd9b) SHA1(52b0c1f95e8a664076d8fbc0f6204ca55893e281) ) - ROM_LOAD16_BYTE( "c09-38.rom", 0x40000, 0x20000, CRC(f4404f87) SHA1(8f051f1ffbf323cb3d613bc22afa53676590f29c) ) - ROM_LOAD16_BYTE( "c09-41.rom", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) - ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) ) - ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) ) - ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c09-20.rom", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // road/sprite priority and palette select - ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -// ROM_LOAD( "c09-21.rom", 0x00000, 0x00???, NO_DUMP ) /* pals (Guru dump) */ -// ROM_LOAD( "c09-22.rom", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "c09-24.rom", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "c09-25.rom", 0x00000, 0x00???, NO_DUMP ) -// ROM_LOAD( "c09-26.rom", 0x00000, 0x00???, NO_DUMP ) -ROM_END - -ROM_START( scia ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c09-28.bin", 0x00000, 0x20000, CRC(630dbaad) SHA1(090f6a97007ac04f64d92ae5823b7254152144af) ) - ROM_LOAD16_BYTE( "c09-30.bin", 0x00001, 0x20000, CRC(68b1a97d) SHA1(c377f7880154b38fe25dc0ec420ca0cd7228fbad) ) - ROM_LOAD16_BYTE( "c09-36.bin", 0x40000, 0x20000, CRC(59e47cba) SHA1(313302bc62ff02b437b1091d394d2010ce66c7e7) ) - ROM_LOAD16_BYTE( "c09-31.bin", 0x40001, 0x20000, CRC(962b1fbf) SHA1(62181a289dfc6d1da674ba4bcbefeb16a67a55e3) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) - ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) ) - ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) ) - ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c09-20.rom", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // road/sprite priority and palette select - ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -ROM_END - -ROM_START( sciu ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c09-43.37", 0x00000, 0x20000, CRC(20a9343e) SHA1(b0185ddbda827236b7b41687f18c92e10c2dbd3a) ) - ROM_LOAD16_BYTE( "c09-44.40", 0x00001, 0x20000, CRC(7524338a) SHA1(f4e68a4d09f843f4697b4b4a4e94b5759a14fd01) ) - ROM_LOAD16_BYTE( "c09-41.38", 0x40000, 0x20000, CRC(83477f11) SHA1(f6dba2137a182dae215cf212bf85f4528e3d006d) ) - ROM_LOAD16_BYTE( "c09-41.rom", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) ) - - ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) - ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) ) - ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) ) - ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) ) - ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) ) - ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c09-20.rom", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // road/sprite priority and palette select - ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority -ROM_END - -ROM_START( nightstr ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b91-45.bin", 0x00000, 0x20000, CRC(7ad63421) SHA1(4ecfc3c8cd691d878e5d9212ccff0d225bb06bd9) ) - ROM_LOAD16_BYTE( "b91-44.bin", 0x00001, 0x20000, CRC(4bc30adf) SHA1(531d6ee9c8ff0d4ed07c15465ec7cb78cf976115) ) - ROM_LOAD16_BYTE( "b91-43.bin", 0x40000, 0x20000, CRC(3e6f727a) SHA1(ae837131a4c0c9bc5deba155c2a5b7ae72f1d070) ) - ROM_LOAD16_BYTE( "b91-46.bin", 0x40001, 0x20000, CRC(e870be95) SHA1(9a83df2c88a029bc40f5ce074143778ea555a2ba) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b91-39.bin", 0x00000, 0x20000, CRC(725b23ae) SHA1(d4b4335863d32b9a81f7461240e960bf345c9835) ) - ROM_LOAD16_BYTE( "b91-40.bin", 0x00001, 0x20000, CRC(81fb364d) SHA1(f02733509039cde2c1de616e0a7969e31de1007a) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */ - ROM_LOAD( "b91-41.bin", 0x00000, 0x04000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */ - ROM_LOAD32_BYTE( "b91-03.bin", 0x000001, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) ) - ROM_LOAD32_BYTE( "b91-02.bin", 0x000002, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) ) - ROM_LOAD32_BYTE( "b91-01.bin", 0x000003, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) ) /* ROD, road lines */ - - ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */ - ROM_LOAD32_BYTE( "b91-07.bin", 0x000001, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) ) - ROM_LOAD32_BYTE( "b91-06.bin", 0x000002, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) ) - ROM_LOAD32_BYTE( "b91-05.bin", 0x000003, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */ - - ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b91-13.bin", 0x00000, 0x80000, CRC(8c7bf0f5) SHA1(6e18531991225c24a9722c9fbe1af6ae6e9b866b) ) - ROM_LOAD( "b91-12.bin", 0x80000, 0x80000, CRC(da77c7af) SHA1(49662a69b83739e2e0209cabff83995a951383f4) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b91-14.bin", 0x00000, 0x80000, CRC(6bc314d3) SHA1(ae3e9c6b853bab4ec81a6bd951b39a4bc883f456) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "b91-26.bin", 0x00000, 0x0400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) ) - ROM_LOAD( "b91-27.bin", 0x00000, 0x0400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) ) - ROM_LOAD( "b91-28.bin", 0x00000, 0x0400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) ) - ROM_LOAD( "b91-29.bin", 0x00000, 0x2000, CRC(ad685be8) SHA1(e7681d76fa216c124c54544393c4f6a08fd7d74d) ) - ROM_LOAD( "b91-30.bin", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) ) - ROM_LOAD( "b91-31.bin", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) ) - ROM_LOAD( "b91-32.bin", 0x00000, 0x0100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b91-33.bin", 0x00000, 0x0100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) // road/sprite priority and palette select -ROM_END - -ROM_START( aquajack ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b77-22.rom", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) ) - ROM_LOAD16_BYTE( "34.17", 0x00001, 0x20000, CRC(cd4d0969) SHA1(d610e7847a09f1ca892007440fa1b431bb0c41d2) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b77-24.rom", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) ) - ROM_LOAD16_BYTE( "b77-23.rom", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b77-20.rom", 0x00000, 0x04000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b77-05.rom", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b77-04.rom", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b77-03.rom", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) - ROM_LOAD32_BYTE( "b77-02.rom", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) - ROM_LOAD32_BYTE( "b77-01.rom", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b77-07.rom", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b77-06.rom", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) ) /* STY spritemap */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b77-09.rom", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b77-08.rom", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) ) - - ROM_REGION( 0x00200, REGION_USER2, 0 ) /* unused PROMs */ - ROM_LOAD( "b77-17.bin", 0x00000, 0x0100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b77-18.bin", 0x00100, 0x0100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - -/* (no unused roms in my set, there should be an 0x10000 one like the rest) */ -ROM_END - -ROM_START( aquajckj ) - ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "b77-22.rom", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) ) - ROM_LOAD16_BYTE( "b77-21.rom", 0x00001, 0x20000, CRC(23436845) SHA1(e62111c902453e1b655c7f25bcea938a6f13aed2) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "b77-24.rom", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) ) - ROM_LOAD16_BYTE( "b77-23.rom", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) ) - - ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD( "b77-20.rom", 0x00000, 0x04000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) ) - ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */ - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "b77-05.rom", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */ - - ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "b77-04.rom", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "b77-03.rom", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) ) - ROM_LOAD32_BYTE( "b77-02.rom", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) ) - ROM_LOAD32_BYTE( "b77-01.rom", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "b77-07.rom", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "b77-06.rom", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) ) /* STY spritemap */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "b77-09.rom", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "b77-08.rom", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) ) - - ROM_REGION( 0x00200, REGION_USER2, 0 ) /* unused PROMs */ - ROM_LOAD( "b77-17.bin", 0x00000, 0x0100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "b77-18.bin", 0x00100, 0x0100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) ) // road/sprite priority and palette select - -/* (no unused roms in my set, there should be an 0x10000 one like the rest) */ -ROM_END - -ROM_START( spacegun ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c57-18.62", 0x00000, 0x20000, CRC(19d7d52e) SHA1(4361929a43f911864ece4dcd06995ea6b6156c59) ) - ROM_LOAD16_BYTE( "c57-20.74", 0x00001, 0x20000, CRC(2e58253f) SHA1(36fb52ce1c6cf9f537cf500ba330b167871969b9) ) - ROM_LOAD16_BYTE( "c57-17.59", 0x40000, 0x20000, CRC(e197edb8) SHA1(2ffd000aac1825ecd564c273f0cc055710ba4050) ) - ROM_LOAD16_BYTE( "c57-22.73", 0x40001, 0x20000, CRC(5855fde3) SHA1(fcd6d7ed16b61b9023596f0efb7f6971060a2e0b) ) - - ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c57-15.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) - ROM_LOAD16_BYTE( "c57-16.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) - - ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) ) /* SCR 8x8 */ - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c57-02.24", 0x000001, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) ) - ROM_LOAD32_BYTE( "c57-03.12", 0x000002, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) ) - ROM_LOAD32_BYTE( "c57-04.11", 0x000003, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) ) - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) ) /* STY spritemap */ - - ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c57-07.76", 0x00000, 0x80000, CRC(ad653dc1) SHA1(2ec440f793b0a686233fbe61c9462f8365c42b65) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c57-08.75", 0x00000, 0x80000, CRC(22593550) SHA1(e802e947e6947d146e1b57dbff7ac021e19e7b2b) ) - - ROM_REGION( 0x0c00, REGION_PLDS, ROMREGION_DISPOSE ) - ROM_LOAD( "pal16l8-c57-09.9", 0x0000, 0x0104, CRC(ea93161e) SHA1(c83c6ce3696b2754abb861d41a8d587a8e82aa1e) ) - ROM_LOAD( "pal20l8-c57-10.47", 0x0200, 0x0144, CRC(3ee56888) SHA1(030efb0903d919686748b1ff86a327990832d0fa) ) - ROM_LOAD( "pal16l8-c57-11.48", 0x0400, 0x0104, CRC(6bb4372e) SHA1(513bf6f032a9043303b8660c106753ae214d28ff) ) - ROM_LOAD( "pal20l8-c57-12.61", 0x0600, 0x0144, CRC(debddb13) SHA1(47be25b3bb157d37b9813737544a56a2090f85ba) ) - ROM_LOAD( "pal16l8-c57-13.72", 0x0800, 0x0104, CRC(1369f23e) SHA1(bbc960cfc3edd07e89134e1b876aa7a6c0cba5ac) ) - ROM_LOAD( "pal16r4-c57-14.96", 0x0a00, 0x0104, CRC(75e1bf61) SHA1(e8358329a78ec0ab87641b2ecaec0b2b67c6ca30) ) -ROM_END - -ROM_START( dblaxle ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c78-41.3", 0x00000, 0x20000, CRC(cf297fe4) SHA1(4875de63e8336062c27d83b55938bcb3d08a24a3) ) - ROM_LOAD16_BYTE( "c78-43.5", 0x00001, 0x20000, CRC(38a8bad6) SHA1(50977a6a364893549d2f7899bbc4e0c67086697e) ) - ROM_LOAD16_BYTE( "c78-42.4", 0x40000, 0x20000, CRC(4124ab2b) SHA1(96c3b6e01a1823259b3d7ca43e0a8631bfe33d0e) ) - ROM_LOAD16_BYTE( "c78-44.6", 0x40001, 0x20000, CRC(50a55b6e) SHA1(62a72d33030d50c157a5cf05f6bdc1b02c9b9ff1) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) ) - ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "ic42", 0x00000, 0x04000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD16_BYTE( "c78-11.11", 0x00001, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) -// ROMX_LOAD ( "c78-05l.1", 0x000003, 0x080000, CRC(f24bf972) , ROM_SKIP(7) ) -// ROMX_LOAD ( "c78-05h.2", 0x000007, 0x080000, CRC(c01039b5) , ROM_SKIP(7) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c78-12.33", 0x000000, 0x80000, CRC(fbb39585) SHA1(4b7cdf9a3fba71155871b3e52d2301e50bf817ca) ) // Half size ?? - // ??? gap 0x80000-fffff // - ROM_LOAD( "c78-13.46", 0x100000, 0x80000, CRC(1b363aa2) SHA1(0aae3988024654e98cc0c784307b1c329c8f0783) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c78-14.31", 0x00000, 0x80000, CRC(9cad4dfb) SHA1(9187ef827a3f1bc9233d0e45e72c72c0956c5912) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c78-25.15", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) // 98% compression - ROM_LOAD( "c78-15.22", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "c78-21.74", 0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) ) // road/sprite priority and palette select - ROM_LOAD( "c84-10.16", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) - ROM_LOAD( "c84-11.17", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) -ROM_END - -ROM_START( pwheelsj ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c78-26-2.2", 0x00000, 0x20000, CRC(25c8eb2e) SHA1(a526b886c76a19c9ce1abc25cf433574564605a3) ) - ROM_LOAD16_BYTE( "c78-28-2.4", 0x00001, 0x20000, CRC(a9500eb1) SHA1(ad300add3439515512003703df46e2f9317f2ee8) ) - ROM_LOAD16_BYTE( "c78-27-2.3", 0x40000, 0x20000, CRC(08d2cffb) SHA1(a4f117a15499c0df85bf8036f00871caa6723082) ) - ROM_LOAD16_BYTE( "c78-29-2.5", 0x40001, 0x20000, CRC(e1608004) SHA1(c4863264074de09ab38e7b73214f4271728e30aa) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) ) - ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "c78-32.42", 0x00000, 0x04000, CRC(1494199c) SHA1(f6b6ccaadbc5440f9342750a79ebc00c019ef355) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */ - ROM_LOAD16_BYTE( "c78-11.11", 0x00001, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) ) - ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) ) - ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c78-01.33", 0x000000, 0x100000, CRC(90ff1e72) SHA1(6115e3683bc701922953b644427d1ddb471bf037) ) - ROM_LOAD( "c78-02.46", 0x100000, 0x080000, CRC(8882d2b7) SHA1(4d3abac1e50cd5ae79a562f430563032a11e8390) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c78-03.31", 0x00000, 0x80000, CRC(9b926a2f) SHA1(cc2d612441a5cc587e097bb8380b56753b9a4f7c) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c78-25.15", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) // 98% compression - ROM_LOAD( "c78-15.22", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority - ROM_LOAD( "c78-21.74", 0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) ) // road/sprite priority and palette select - ROM_LOAD( "c84-10.16", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) - ROM_LOAD( "c84-11.17", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) -ROM_END - -ROM_START( racingb ) - ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */ - ROM_LOAD16_BYTE( "c84-110.3", 0x00000, 0x20000, CRC(119a8d3b) SHA1(bcda256730c4427c25aab17d2178814289361a78) ) - ROM_LOAD16_BYTE( "c84-111.5", 0x00001, 0x20000, CRC(1f095692) SHA1(6a36f3a62de9fc24724e68a23de782bc21c01734) ) - ROM_LOAD16_BYTE( "c84-104.2", 0x40000, 0x20000, CRC(37077fc6) SHA1(3498db29936f806e1cb624031940fda2e7e601fe) ) - ROM_LOAD16_BYTE( "c84-103.4", 0x40001, 0x20000, CRC(4ca1d1c2) SHA1(cd526db226362b7d4429a29392dee40bcc519556) ) - - ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */ - ROM_LOAD16_BYTE( "c84-99.35", 0x00000, 0x20000, CRC(24778f40) SHA1(5a588be1774af4e179bdc0e16cd118e74bb9f6ff) ) - ROM_LOAD16_BYTE( "c84-100.36", 0x00001, 0x20000, CRC(2b99258a) SHA1(ff2da0f3a0391f55e20655554d72b82cc29fbc87) ) - - ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */ - ROM_LOAD ( "c84-101.42", 0x00000, 0x04000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) ) - ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */ - - ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) - ROM_LOAD16_BYTE( "c84-90.12", 0x00000, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 8x8 */ - ROM_LOAD16_BYTE( "c84-89.11", 0x00001, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) ) - - ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) ) /* OBJ 16x8 */ - ROM_LOAD32_BYTE( "c84-94.33", 0x000001, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) ) - ROM_LOAD32_BYTE( "c84-91.23", 0x000002, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) ) - ROM_LOAD32_BYTE( "c84-93.31", 0x000003, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) ) - - ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */ - ROM_LOAD( "c84-84.12", 0x000000, 0x80000, CRC(34dc486b) SHA1(2f503be67adbc5293f2d1218c838416fd931796c) ) /* ROD, road lines */ - - ROM_REGION16_LE( 0x80000, REGION_USER1, 0 ) - ROM_LOAD16_WORD( "c84-88.3", 0x00000, 0x80000, CRC(edd1f49c) SHA1(f11c419dcc7da03ef1f1665c1344c27ff35fe867) ) /* STY spritemap */ - - ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "c84-86.33", 0x000000, 0x100000, CRC(98d9771e) SHA1(0cbb6b08e1fa5e632309962d7ad7dca448ef4d78) ) - ROM_LOAD( "c84-87.46", 0x100000, 0x080000, CRC(9c1dd80c) SHA1(e1bae4e02fd94413fac4683e39e530f9d508d658) ) - - ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */ - ROM_LOAD( "c84-85.31", 0x00000, 0x80000, CRC(24cd838d) SHA1(18139f7df191ff2d005d76b3a85a6fafb630ea42) ) - - ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused ROMs */ - ROM_LOAD( "c84-19.15", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) - ROM_LOAD( "c84-07.22", 0x00000, 0x00100, CRC(95a15c77) SHA1(10246020776cf23c0659f41db66ae2c86db09ed2) ) // road A/B internal priority? bad dump? - ROM_LOAD( "c84-09.74", 0x00000, 0x00100, CRC(71217472) SHA1(69352cd484b4d5b41b37697aea24107dff8f1b24) ) // road/sprite priority and palette select? - ROM_LOAD( "c84-10.16", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) - ROM_LOAD( "c84-11.17", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) -ROM_END - - -static DRIVER_INIT( taitoz ) -{ -// taitosnd_setz80_soundcpu( 2 ); - - cpua_ctrl = 0xff; -} - -static DRIVER_INIT( bshark ) -{ - cpua_ctrl = 0xff; - state_save_register_func_postload(parse_control_noz80); - - state_save_register_global(eep_latch); -} - - - -GAME( 1987, contcirc, 0, contcirc, contcirc, taitoz, ROT0, "Taito Corporation Japan", "Continental Circus (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1987, contcrcu, contcirc, contcirc, contcrcu, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 1)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1987, contcrua, contcirc, contcirc, contcrcu, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1988, chasehq, 0, chasehq, chasehq, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1988, chasehqj, chasehq, chasehq, chasehqj, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1988, enforce, 0, enforce, enforce, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, bshark, 0, bshark, bshark, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, bsharkj, bshark, bshark, bsharkj, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, sci, 0, sci, sci, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 1)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, scia, sci, sci, sci, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 2)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, sciu, sci, sci, sciu, taitoz, ROT0, "Taito America Corporation", "Special Criminal Investigation (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, nightstr, 0, nightstr, nightstr, taitoz, ROT0, "Taito America Corporation", "Night Striker (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1990, aquajack, 0, aquajack, aquajack, taitoz, ROT0, "Taito Corporation Japan", "Aqua Jack (World)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1990, aquajckj, aquajack, aquajack, aquajckj, taitoz, ROT0, "Taito Corporation", "Aqua Jack (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1990, spacegun, 0, spacegun, spacegun, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Space Gun (World)", 0 ) -GAME( 1991, dblaxle, 0, dblaxle, dblaxle, taitoz, ROT0, "Taito America Corporation", "Double Axle (US)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, pwheelsj, dblaxle, dblaxle, pwheelsj, taitoz, ROT0, "Taito Corporation", "Power Wheels (Japan)", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, racingb, 0, racingb, dblaxle, taitoz, ROT0, "Taito Corporation Japan", "Racing Beat (World)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) - diff --git a/src/drivers/taitojc.c b/src/drivers/taitojc.c deleted file mode 100644 index 68e4f0929..000000000 --- a/src/drivers/taitojc.c +++ /dev/null @@ -1,1697 +0,0 @@ -/* - -Taito JC System - -Driver by Ville Linde, based on the preliminary driver by David Haywood - -Side By Side 2 -Taito, 1997 - -This game runs on Taito JC System hardware - -PCB Layout ----------- - -Top board: MOTHER PCB-C K11X0838A M43E0325A -|---------------------------------------------------------------------------------| -| 43256 | -|54MHz E23-32-1.51 43256 | -| 424210 424210 43256 | -| E23-29.39 | -|E23-25-1.3 TCO870HVP E23-31.46 | -| (QFP208) E23-30.40 E23-34.72 93C46.87 | -|E23-26.4 | -| MC68040RC25 CXD1178Q TCO640FIO | -|424260 TMS320C31 (PGA TYPE) (QFP120) | -| (QFP132) | -| labelled TEST_SW | -|424260 "Taito E07-11" MB3771 RESET_SW | -| E23-33.53 | -| CY7B991 MB8421-90 | -|4218160 43256 CY7B991 | -| | -| 43256 TCO770CMU E23-35.110 | -|4218160 (QFP208) | -| 10MHz MC68EC000 LC321664AJ-80 | -|E23-27.13 TCO780FPA | -| (QFP240) ENSONIC | -| D482445 TC51832 ESPR6 ES5510 | -| TC51832 | -|4218160 D482445 | -| TCO840GLU MC33274 TDA1543 | -| D482445 (QFP144) | -|4218160 16MHz MB87078 | -| TCO780FPA D482445 30.4761MHz | -| (QFP240) ENSONIC | -|E23-28.18 OTISR2 | -| | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - - -Bottom board: JCG DAUGHTERL PCB-C K91E0677A -|---------------------------------------------------------------------------------| -| | -| | -| E38-19.30 E38-20.31 | -| | -| | -| | -| | -| | -| E38-01.5 E38-09.18 E23-15.32 | -| | -| E38-02.6 E38-10.19 E38-17.33 | -| | -| E38-03.7 E38-11.20 E38-18.34 E17-23.65 | -| | -| E38-04.8 E38-12.21 E38-21.35 TC5563 | -| | -| E38-05.9 E38-13.22 SBS2_P0.36 MC68HC11M0 | -| (QFP80) | -| E38-06.10 E38-14.23 SBS2_P1.37 | -| | -| E38-07.11 E38-15.24 SBS2_P2.38 | -| E23-37.69 | -| E38-08.12 E38-16.25 SBS2_P3.39 SMC_COM20020I | -| | -| | -| E23-38.73 | -| | -| | -| | -| | -| | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - MC68HC11: Microcontroller with 64k internal ROM (not read but probably protected anyway ;-) - ROMs .36-.39 are 27C4001, main program. - ROMs .5-.7, .9-.12, .18-.20, .22-.25 are 16M MASK, graphics. - ROMs .32-.35 are 16M MASK, ES5505 samples. - ROMs .8 and .21 are 4M MASK, graphics. - ROMs .30-.31 are 27C2001, 68000 sound program. - ROM .65 is 27C512, use unknown. - ----- - --------------------------------------------------------------------------- -SIDE BY SIDE / 2 JC-SYSTEM TYPE-C --------------------------------------------------------------------------- - SIDE BY SIDE (E23) (C)TAITO 1996 VER 2.5J 1996/6/20 18:13:14 - E23-01 to 24 + E17-23 (BIOS ?) E17:LANDING GEAR - - SIDE BY SIDE 2 (E38) Not dumped - ROMKIT : E38-01 to 21 , 23* to 26* - --------------------------------------------------------------------------- -DENSYA DE GO (E35) JC-SYSTEM TYPE-C with TRAIN BOARD (Ext.Sound) --------------------------------------------------------------------------- - DENSYA DE GO VER 2.2J 1997/2/4 - E35-01 to 26 + E35-28(TRAIN BOARD) + E17-23(BIOS?) - - DENSYA DE GO EX VER 2.4J 1997/4/18 13:38:34 - ROMKIT : E35-30 to 33 - --------------------------------------------------------------------------- -DENSYA DE GO 2 (E52) JC-SYSTEM TYPE-C with TRAIN BOARD (Ext.Sound) --------------------------------------------------------------------------- - DENSYA DE GO 2 (KOUSOKUHEN RYOUSANSYA) VER 2.5 J 1998/3/2 15:30:55 - E52-01 to 24 , 25-1 to 28-1, 29, 30 + E35-28(TRAIN BOARD) + E17-23(BIOS?) - - DENSYA DE GO! 2 EX (3000BANDAI KOUSOKUHEN) VER 2.20 J 1998/7/15 17:42:38 - ROMKIT : E52-31 to 38 - ----- - -Landing Gear -Taito, 1995 - -This is a flight simulator game running on Taito JC System hardware. -The system comprises two boards plugged together back-to-back via five high density connectors. -The top board contains the main CPU, all RAMs, graphics and sound hardware and the bottom -board contains the game ROMs, communication devices and a MC68HC11 MCU. Landing Gear -is a single player game so the board does not contain any communication hardware. -This hardware seems to be the earliest revision of the JC board. This is the only JC game that -had a 28-way edge connector, which is actually almost JAMMA. The power/GND, video and -most buttons (test/service/coin/start etc) work fine using any standard JAMMA cab. However the -analog controls are wired to another connector on the bottom PCB via an interface board. -When other JC bottom boards are swapped to this top board, they will run fine, but some of the -graphics are messed up. This is probably due to the different PALs and their changed locations. -This seems to mostly affect the texture mapping (tested with swapping Side By Side 2) as the title -and most of the background graphics are ok but the car textures are just a mess of pixels. - - -PCB Layout ----------- - -Top board: MOTHER PCB K11X0835A M43E0304A -|---------------------------------------------------------------------------------| -| 43256 43256 | -|54MHz 43256 | -| | -|TC514260 | -| TCO870HVP uPD424210 TCO640FIO | -|TC514260 (QFP208) uPD424210 E07-08.65 (QFP120) | -|E07-02.4 | -| | -|TMS320C31 43256 | -|(QFP132) 43256 MC68040RC25 E07-10.116 93C46.91 | -|labelled TCO770CMU (PGA TYPE) E07-04.115 TEST_SW | -|"Taito E07-11" (QFP208) E07-09.82 MB3771 | -| | -| MB8421-90 | -|TC528257 E07-06.37 | -| | -|TC528257 TC514260 | -| E07-07.49 CY7B991 | -|TC528257 TC514260 E07-03.50 TC511664 | -| TCO780FPA | -|TC528257 TC514260 (QFP240) 10MHz MC68EC000 ENSONIC | -| CY7B991 ESPR6 ES5510 | -|TC528257 TC514260 | -| | -|TC528257 TC514260 TCO840GLU TC51832 MC33274 TDA1543 | -| (QFP144) TC51832 | -|TC528257 TC514260 16MHz MB87078 | -| TCO780FPA 30.4761MHz | -|TC528257 TC514260 (QFP240) | -| ENSONIC | -|TC528257 E07-05.22 OTISR2 | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - - -Bottom board: JCG DAUGHTER PCB-L K91E0603A -|---------------------------------------------------------------------------------| -| | -| | -| E17-21.30 E17-22.31 | -| | -| | -| | -| | -| | -| E17-01.5 E17-07.18 E17-13.32 | -| | -| * E17-08.19 E17-14.33 | -| | -| * * E17-15.34 E17-23.65 | -| | -| E17-02.8 * E17-16.35 TC5563 | -| | -| E17-03.9 E17-09.22 E17-37.36 MC68HC11M0 | -| (QFP80) | -| E17-04.10 E17-10.23 E17-38.37 | -| | -| E17-05.11 E17-11.24 E17-39.38 | -| E09-21.69 | -| E17-06.12 E17-12.25 E17-40.39 | -| | -| | -| E09-22.73 | -| | -| | -| E17-32.96 | -| | -| | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - MC68HC11: Surface-mounted QFP80 microcontroller with 64k internal ROM (not read but very likely protected) - ROMs .36-.39 are 27C4001, main program. - ROM .65 is 27C512, use unknown, possibly used with 68HC11 MCU. - ROMs .30-.31 are 27C2001, sound program. - ROMs .32-.35 are 16M MASK, sound. - ROMs .5-.25 are 16M MASK, graphics. - * Unpopulated ROM socket - ----- - -Side By Side -Taito, 1996 - -This game runs on Taito JC System hardware and uses a 24kHz monitor. - -PCB Layout ----------- - -Top board: MOTHER PCB-C K11X0838A M43E0325A -|---------------------------------------------------------------------------------| -| 43256 | -|54MHz E23-32-1.51 43256 | -| 424210 424210 43256 | -| E23-29.39 | -|E23-25-1.3 TCO870HVP E23-31.46 | -| (QFP208) E23-30.40 E23-34.72 93C46.87 | -|E23-26.4 | -| MC68040RC25 CXD1178Q TCO640FIO | -|424260 TMS320C31 (PGA TYPE) (QFP120) | -| (QFP132) | -| labelled TEST_SW | -|424260 "Taito E07-11" MB3771 RESET_SW | -| E23-33.53 | -| CY7B991 MB8421-90 | -|4218160 43256 CY7B991 | -| | -| 43256 TCO770CMU E23-35.110 | -|4218160 (QFP208) | -| 10MHz MC68EC000 LC321664AJ-80 | -|E23-27.13 TCO780FPA | -| (QFP240) ENSONIC | -| D482445 TC51832 ESPR6 ES5510 | -| TC51832 | -|4218160 D482445 | -| TCO840GLU MC33274 TDA1543 | -| D482445 (QFP144) | -|4218160 16MHz MB87078 | -| TCO780FPA D482445 30.4761MHz | -| (QFP240) ENSONIC | -|E23-28.18 OTISR2 | -| | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - CY7B991 : Programmable Skew Clock Buffer (PLCC32) - 4218160 : 2M x8 / 1M x16 DRAM - 424210 : 256K x16 DRAM - 424260 : 256K x16 DRAM - 43256 : 32K x8 SRAM - D482445 : DRAM? - LC321664: 64K x16 DRAM - TC51832 : 32K x8 SRAM - - -Bottom board: JCG DAUGHTERL PCB-C K9100633A J9100434A (Sticker K91J0633A) -|---------------------------------------------------------------------------------| -| | -| | -| E23-23.30 E23-24.31 | -| | -| | -| | -| | -| | -| E23-01.5 E23-08.18 E23-15.32 | -| | -| E23-02.6 E23-09.19 E23-16.33 | -| | -| E23-03.7 E23-10.20 E23-17.34 E17-23.65 | -| | -| E23-04.8 E23-11.21 E23-18.35 6264 | -| | -| E23-05.9 E23-12.22 E23-19.36 MC68HC11M0 | -| (QFP80) | -| E23-06.10 E23-13.23 E23-20.37 | -| | -| * * E23-21.38 | -| E23-37.69 | -| E23-07.12 E23-14.25 E23-22.39 SMC_COM20020I | -| | -| | -| E23-38.73 | -| | -| | -| | -| | -| | -|---------------------------------------------------------------------------------| - -Notes: - All 3K files are PALs type PALCE 16V8 and saved in Jedec format. - 6264: 8K x8 SRAM - SMC_COM20020I: Network communmication IC - MC68HC11: Microcontroller with 64k internal ROM capability (not read but probably protected anyway ;-) - ROMs .36-.39 are 27C4001, main program. - ROMs .5-.12, .18-.25 are 16M MASK, graphics. - ROMs .32-.35 are 16M MASK, sound data. - ROMs .30-.31 are 27C2001, sound program. - ROM .65 is 27C512, linked to 68HC11 MCU - * Unpopulated socket. - - - - TODO: - - dendeg2 hangs on init step 10. - - The analog controls don't seem to work in landgear. They work in test mode though. - - landgear has some weird crashes (after playing one round, after a couple of loops in attract mode) - - dendeg2x usually crashes when starting the game (lots of read and writes to invalid addresses) - - All dendeg games have random wrong textures/palettes - - Train board (external sound board with OKI6295) is not emulated -*/ - -#include "driver.h" -#include "taito_f3.h" -#include "cpu/mc68hc11/mc68hc11.h" -#include "sound/es5506.h" -#include "machine/eeprom.h" -#include "sndhrdw/taito_en.h" - -extern UINT32 *f3_shared_ram; - -static UINT32 *main_ram; -static UINT16 *dsp_shared_ram; -static UINT32 *palette_ram; - -#define POLYGON_FIFO_SIZE 100000 -static UINT16 *polygon_fifo; -static int polygon_fifo_ptr; - - -static UINT8 mcu_comm_main = 0; -static UINT8 mcu_comm_hc11 = 0; -static UINT8 mcu_data_main = 0; -static UINT8 mcu_data_hc11 = 0; - - -UINT32 *taitojc_vram; -UINT32 *taitojc_objlist; - -// defined in vidhrdw/taitojc.c -extern READ32_HANDLER(taitojc_tile_r); -extern WRITE32_HANDLER(taitojc_tile_w); -extern READ32_HANDLER(taitojc_char_r); -extern WRITE32_HANDLER(taitojc_char_w); -extern void taitojc_clear_frame(void); -extern void taitojc_render_polygons(UINT16 *polygon_fifo, int length); - -extern VIDEO_START(taitojc); -extern VIDEO_UPDATE(taitojc); - -extern UINT8 *taitojc_texture; - - - -static READ32_HANDLER( taitojc_palette_r ) -{ - return palette_ram[offset]; -} - -static WRITE32_HANDLER( taitojc_palette_w ) -{ - int r, g, b; - UINT32 color; - COMBINE_DATA( palette_ram + offset ); - - color = palette_ram[offset]; - r = (color >> 8) & 0xff; - g = (color >> 16) & 0xff; - b = (color >> 0) & 0xff; - - palette_set_color(Machine,offset, r, g, b); -} - -static READ32_HANDLER ( jc_control_r ) -{ - UINT32 r = 0; -// mame_printf_debug("jc_control_r: %08X, %08X at %08X\n", offset, mem_mask, activecpu_get_pc()); - switch(offset) - { - case 0x0: - { - if (!(mem_mask & 0xff000000)) - { - r |= ((readinputport(0) & 0x2) << 2) << 24; - } - return r; - } - case 0x1: - { - if (!(mem_mask & 0xff000000)) - { - UINT32 data = EEPROM_read_bit() & 1; - data |= readinputport(0) & 0xfe; - r |= data << 24; - } - return r; - } - case 0x2: - { - if (!(mem_mask & 0xff000000)) - { - r |= readinputport(1) << 24; - } - return r; - } - case 0x3: - { - if (!(mem_mask & 0xff000000)) - { - r |= readinputport(2) << 24; - } - return r; - } - case 0x4: - { - if (!(mem_mask & 0xff000000)) - { - //r |= (rand() & 0xff) << 24; - } - return r; - } - case 0x7: - { - if (!(mem_mask & 0xff000000)) - { - r |= readinputport(3) << 24; - } - return r; - } - - default: - break; - } - - logerror("jc_control_r: %08X, %08X\n", offset, mem_mask); - return 0; -} - -static WRITE32_HANDLER ( jc_control_w ) -{ - //mame_printf_debug("jc_control_w: %08X, %08X, %08X\n", data, offset, mem_mask); - switch(offset) - { - case 0x3: - { - if (!(mem_mask & 0xff000000)) - { - EEPROM_set_clock_line(((data >> 24) & 0x08) ? ASSERT_LINE : CLEAR_LINE); - EEPROM_write_bit(((data >> 24) & 0x04) ? 1 : 0); - EEPROM_set_cs_line(((data >> 24) & 0x10) ? CLEAR_LINE : ASSERT_LINE); - } - return; - } - - default: - break; - } - logerror("jc_control_w: %08X, %08X, %08X\n", data, offset, mem_mask); -} - -static WRITE32_HANDLER (jc_control1_w) -{ - if (data != 0) - { - logerror("jc_control1_w: %08X, %08X, %08X\n", data, offset, mem_mask); - } -} - - - -static UINT8 mcu_comm_reg_r(int reg) -{ - UINT8 r = 0; - - switch (reg) - { - case 0x03: - { - r = mcu_data_main; - break; - } - case 0x04: - { - r = mcu_comm_main | 0x14; - break; - } - default: - { - //mame_printf_debug("hc11_reg_r: %02X at %08X\n", reg, activecpu_get_pc()); - break; - } - } - - return r; -} - -static void mcu_comm_reg_w(int reg, UINT8 data) -{ - switch (reg) - { - case 0x00: - { - mcu_data_hc11 = data; - mcu_comm_hc11 &= ~0x04; - mcu_comm_main &= ~0x20; - break; - } - case 0x04: - { - break; - } - default: - { - //mame_printf_debug("hc11_reg_w: %02X, %02X at %08X\n", reg, data, activecpu_get_pc()); - break; - } - } -} - -static READ32_HANDLER(mcu_comm_r) -{ - UINT32 r = 0; - int reg = offset * 4; - - if (!(mem_mask & 0xff000000)) - { - r |= mcu_comm_reg_r(reg + 0) << 24; - } - if (!(mem_mask & 0x00ff0000)) - { - r |= mcu_comm_reg_r(reg + 1) << 16; - } - if (!(mem_mask & 0x0000ff00)) - { - r |= mcu_comm_reg_r(reg + 2) << 8; - } - if (!(mem_mask & 0x000000ff)) - { - r |= mcu_comm_reg_r(reg + 3) << 0; - } - - return r; -} - -static WRITE32_HANDLER(mcu_comm_w) -{ - int reg = offset * 4; - - if (!(mem_mask & 0xff000000)) - { - mcu_comm_reg_w(reg + 0, (data >> 24) & 0xff); - } - if (!(mem_mask & 0x00ff0000)) - { - mcu_comm_reg_w(reg + 1, (data >> 16) & 0xff); - } - if (!(mem_mask & 0x0000ff00)) - { - mcu_comm_reg_w(reg + 2, (data >> 8) & 0xff); - } - if (!(mem_mask & 0x000000ff)) - { - mcu_comm_reg_w(reg + 3, (data >> 0) & 0xff); - } -} - -static READ32_HANDLER(jc_unknown1_r) -{ - return 0; -} - -static READ32_HANDLER(dsp_shared_r) -{ - return dsp_shared_ram[offset] << 16; -} - -#define DEBUG_DSP 0 -#define DEBUG_BLOCK_MOVES 0 - -#if DEBUG_DSP -static UINT16 debug_dsp_ram[0x8000]; - -static void debug_dsp_command(void) -{ - UINT16 *cmd = &dsp_shared_ram[0x7f0]; - - switch (cmd[0]) - { - case 0x00: - { - printf("DSP: NOP\n"); - break; - } - case 0x01: - { - printf("DSP: Move to Shared RAM: %04X\n", cmd[1]); - break; - } - case 0x02: - { - printf("DSP: Move from Shared RAM: %04X\n", cmd[1]); - break; - } - case 0x03: - { - printf("DSP: Block move DM to DM: %04X, %04X, %04X\n", cmd[1], cmd[2], cmd[3]+1); - if (cmd[2] >= 0x7800 && cmd[2] < 0x8000) - { - int i, j; - int saddr = cmd[2] - 0x7800; - int daddr = cmd[1]; - int length = cmd[3]+1; - - for (j=0; j < length; j+=16) - { - int ll = (length - j); - if (ll > 16) ll = 16; - -#if DEBUG_BLOCK_MOVES - printf(" %04X: ", daddr); -#endif - for (i=0; i < ll; i++) - { - UINT16 d = dsp_shared_ram[saddr++]; - if (daddr >= 0x8000 && daddr < 0x10000) - { - debug_dsp_ram[daddr-0x8000] = d; - } - daddr++; - -#if DEBUG_BLOCK_MOVES - printf("%04X ", d); -#endif - } -#if DEBUG_BLOCK_MOVES - printf("\n"); -#endif - } - } - break; - } - case 0x04: - { - printf("DSP: Block move PM to DM: %04X, %04X, %04X\n", cmd[1], cmd[2], cmd[3]+1); - break; - } - case 0x05: - { - printf("DSP: Block move DM to PM: %04X, %04X, %04X\n", cmd[1], cmd[2], cmd[3]+1); - break; - } - case 0x08: - { - printf("DSP: Jump to address: %04X, %04X, %04X\n", cmd[1], cmd[3], cmd[4]); - break; - } - case 0x09: - { - printf("DSP: Call Sub operation: %04X\n", cmd[1]); - if (cmd[1] == 0x8000) - { - int addr = 0; - int end = 0; - while (!end) - { - int i; - UINT16 cmd = debug_dsp_ram[addr++]; - int length = cmd & 0xff; - - if ((cmd >> 11) == 6) - end = 1; - - printf(" %04X (%02X): ", cmd, cmd >> 11); - for (i=0; i < length; i++) - { - printf("%04X ", debug_dsp_ram[addr+i]); - } - printf("\n"); - - addr += length; - }; - } - break; - } - case 0x0d: - { - printf("DSP: Calculate ROM checksum\n"); - break; - } - case 0x10: - { - printf("DSP: Test RAM\n"); - break; - } - case 0x11: - { - printf("DSP: Test Program Checksum: %04X, %04X\n", cmd[1], cmd[2]+1); - break; - } - default: - { - printf("DSP: Unknown command %04X\n", cmd[0]); - break; - } - } - - printf("\n"); -} -#endif - -static int first_dsp_reset = 1; -static WRITE32_HANDLER(dsp_shared_w) -{ - //mame_printf_debug("dsp_shared_ram: %08X, %04X at %08X\n", offset, data >> 16, activecpu_get_pc()); - if (!(mem_mask & 0xff000000)) - { - dsp_shared_ram[offset] &= 0x00ff; - dsp_shared_ram[offset] |= (data >> 16) & 0xff00; - } - if (!(mem_mask & 0x00ff0000)) - { - dsp_shared_ram[offset] &= 0xff00; - dsp_shared_ram[offset] |= (data >> 16) & 0x00ff; - } - -#if DEBUG_DSP - if (offset == 0x1fc0/4) - { - debug_dsp_command(); - } -#endif - - if (offset == 0x1ffc/4) - { - if ((data & 0x80000) == 0) - { - if (!first_dsp_reset) - { - cpunum_set_input_line(3, INPUT_LINE_RESET, CLEAR_LINE); - } - first_dsp_reset = 0; - } - else - { - cpunum_set_input_line(3, INPUT_LINE_RESET, ASSERT_LINE); - } - } -} - -static READ32_HANDLER(f3_share_r) -{ - switch (offset & 3) - { - case 0: return (f3_shared_ram[(offset/4)] << 0) & 0xff000000; - case 1: return (f3_shared_ram[(offset/4)] << 8) & 0xff000000; - case 2: return (f3_shared_ram[(offset/4)] << 16) & 0xff000000; - case 3: return (f3_shared_ram[(offset/4)] << 24) & 0xff000000; - } - - return 0; -} - -static WRITE32_HANDLER(f3_share_w) -{ - UINT32 d = (data >> 24) & 0xff; - - switch (offset & 3) - { - case 0: f3_shared_ram[(offset/4)] &= ~0xff000000; f3_shared_ram[(offset/4)] |= d << 24; break; - case 1: f3_shared_ram[(offset/4)] &= ~0x00ff0000; f3_shared_ram[(offset/4)] |= d << 16; break; - case 2: f3_shared_ram[(offset/4)] &= ~0x0000ff00; f3_shared_ram[(offset/4)] |= d << 8; break; - case 3: f3_shared_ram[(offset/4)] &= ~0x000000ff; f3_shared_ram[(offset/4)] |= d << 0; break; - } -} - -static WRITE32_HANDLER(jc_output_w) -{ - // speed and brake meter outputs in Densya De Go! - //mame_printf_debug("jc_output_w: %d, %d\n", offset, (data >> 16) & 0xffff); -} - -static ADDRESS_MAP_START( taitojc_map, ADDRESS_SPACE_PROGRAM, 32 ) - AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_MIRROR(0x200000) - AM_RANGE(0x00400000, 0x01bfffff) AM_ROM AM_REGION(REGION_GFX1, 0) - AM_RANGE(0x04000000, 0x040f7fff) AM_RAM AM_BASE(&taitojc_vram) - AM_RANGE(0x040f8000, 0x040fbfff) AM_READWRITE(taitojc_tile_r, taitojc_tile_w) - AM_RANGE(0x040fc000, 0x040fefff) AM_READWRITE(taitojc_char_r, taitojc_char_w) - AM_RANGE(0x040ff000, 0x040fffff) AM_RAM AM_BASE(&taitojc_objlist) - AM_RANGE(0x05800000, 0x05801fff) AM_READ(jc_unknown1_r) - AM_RANGE(0x05900000, 0x05900007) AM_READWRITE(mcu_comm_r, mcu_comm_w) - //AM_RANGE(0x05a00000, 0x05a01fff) - //AM_RANGE(0x05fc0000, 0x05fc3fff) - AM_RANGE(0x06400000, 0x0641ffff) AM_READWRITE(taitojc_palette_r, taitojc_palette_w) AM_BASE(&palette_ram) - AM_RANGE(0x06600000, 0x0660001f) AM_READ(jc_control_r) - AM_RANGE(0x06600000, 0x06600003) AM_WRITE(jc_control1_w) - AM_RANGE(0x06600010, 0x06600013) AM_NOP // unknown - AM_RANGE(0x06600040, 0x0660004f) AM_WRITE(jc_control_w) - AM_RANGE(0x06800000, 0x06801fff) AM_NOP // unknown - AM_RANGE(0x06a00000, 0x06a01fff) AM_READWRITE(f3_share_r, f3_share_w) - //AM_RANGE(0x06c00000, 0x06c0ffff) AM_RAM - AM_RANGE(0x06e00000, 0x06e0ffff) AM_WRITE(jc_output_w) - AM_RANGE(0x08000000, 0x080fffff) AM_RAM AM_BASE(&main_ram) - AM_RANGE(0x10000000, 0x10001fff) AM_READWRITE(dsp_shared_r, dsp_shared_w) -ADDRESS_MAP_END - - -/*****************************************************************************/ - -static READ8_HANDLER(hc11_comm_r) -{ - return mcu_comm_hc11; -} - -static WRITE8_HANDLER(hc11_comm_w) -{ -} - -static READ8_HANDLER(hc11_data_r) -{ - mcu_comm_hc11 |= 0x04; - mcu_comm_main |= 0x20; - return mcu_data_hc11; -} - -static WRITE8_HANDLER(hc11_data_w) -{ - mcu_data_main = data; -} - -static READ8_HANDLER(hc11_analog_r) -{ - return readinputport(4 + offset); -} - - -static ADDRESS_MAP_START( hc11_pgm_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x4000, 0x5fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(REGION_USER1, 0) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( hc11_io_map, ADDRESS_SPACE_IO, 8 ) - AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA ) AM_NOP - AM_RANGE(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG ) AM_READWRITE(hc11_comm_r, hc11_comm_w) - AM_RANGE(MC68HC11_IO_PORTH, MC68HC11_IO_PORTH ) AM_NOP - AM_RANGE(MC68HC11_IO_SPI2_DATA, MC68HC11_IO_SPI2_DATA) AM_READWRITE(hc11_data_r, hc11_data_w) - AM_RANGE(MC68HC11_IO_AD0, MC68HC11_IO_AD7 ) AM_READ(hc11_analog_r) -ADDRESS_MAP_END - -/*****************************************************************************/ - -static int texture_x; -static int texture_y; - -static UINT32 dsp_rom_pos = 0; -static UINT16 dsp_tex_address = 0; -static UINT16 dsp_tex_offset = 0; - -static READ16_HANDLER( dsp_rom_r ) -{ - UINT16 *rom = (UINT16*)memory_region(REGION_GFX2); - UINT16 data = rom[dsp_rom_pos++]; - //mame_printf_debug("dsp_rom_r: %08X, %08X at %08X\n", offset, mem_mask, activecpu_get_pc()); - return data; -} - -static WRITE16_HANDLER( dsp_rom_w ) -{ - if (offset == 0) - { - dsp_rom_pos &= 0xffff; - dsp_rom_pos |= data << 16; - } - else if (offset == 1) - { - dsp_rom_pos &= 0xffff0000; - dsp_rom_pos |= data; - } -} - -static WRITE16_HANDLER( dsp_texture_w ) -{ - int index; - int x, y; - //mame_printf_debug("texture write %08X, %04X\n", dsp_addr1, data); - - x = (dsp_tex_offset >> 0) & 0x1f; - y = (dsp_tex_offset >> 5) & 0x1f; - - x += (dsp_tex_offset & 0x400) ? 0x20 : 0; - y += (dsp_tex_offset & 0x800) ? 0x20 : 0; - - index = (((texture_y * 32) + y) * 2048) + ((texture_x * 32) + x); - taitojc_texture[index] = data & 0xff; - - dsp_tex_offset++; -} - -static READ16_HANDLER( dsp_texaddr_r ) -{ - return dsp_tex_address; -} - -static WRITE16_HANDLER( dsp_texaddr_w ) -{ - dsp_tex_address = data; -// mame_printf_debug("texaddr = %08X at %08X\n", data, activecpu_get_pc()); - - texture_x = (((data >> 0) & 0x1f) << 1) | ((data >> 12) & 0x1); - texture_y = (((data >> 5) & 0x1f) << 1) | ((data >> 13) & 0x1); - - dsp_tex_offset = 0; -} - -static WRITE16_HANDLER( dsp_polygon_fifo_w ) -{ - polygon_fifo[polygon_fifo_ptr++] = data; - - if (polygon_fifo_ptr >= POLYGON_FIFO_SIZE) - { - fatalerror("dsp_polygon_fifo_w: fifo overflow!\n"); - } -} - - - -static int viewport_data[3]; - -static INT32 projected_point_x; -static INT32 projected_point_y; -static INT32 projection_data[3]; - -static INT32 intersection_data[3]; - -static READ16_HANDLER(dsp_unk_r) -{ - return 0x7fff; -} - -static WRITE16_HANDLER(dsp_viewport_w) -{ - viewport_data[offset] = (INT16)(data); -} - -static WRITE16_HANDLER(dsp_projection_w) -{ - projection_data[offset] = (INT16)(data); - - if (offset == 2) - { - if (projection_data[2] != 0) - { - projected_point_y = (projection_data[0] * viewport_data[0]) / (projection_data[2]); - projected_point_x = (projection_data[1] * viewport_data[1]) / (projection_data[2]); - } - else - { - projected_point_y = 0; - projected_point_x = 0; - } - } -} - -static READ16_HANDLER(dsp_projection_r) -{ - if (offset == 0) - { - return projected_point_y; - } - else if (offset == 2) - { - return projected_point_x; - } - - return 0; -} - -static WRITE16_HANDLER(dsp_unk2_w) -{ - if (offset == 0) - { - taitojc_clear_frame(); - taitojc_render_polygons(polygon_fifo, polygon_fifo_ptr); - - polygon_fifo_ptr = 0; - } -} - -static WRITE16_HANDLER(dsp_intersection_w) -{ - intersection_data[offset] = (INT32)(INT16)(data); -} - -static READ16_HANDLER(dsp_intersection_r) -{ - return (INT16)((intersection_data[0] * intersection_data[1]) / intersection_data[2]); -} - -/* - Math co-processor memory map - - 0x7000: Projection point Y - 0x7001: Projection point X - 0x7002: Projection point Z - 0x7003: Frustum Min Z(?) - 0x7004: Frustum Max Z(?) - 0x7010: Line intersection, parameter length - 0x7011: Line intersection, intersection point - 0x7012: Line intersection, line length - 0x7013: Viewport Width / 2 - 0x7014: Viewport Height / 2 - 0x7015: Viewport Z / 2 (?) - 0x701b: Line intersection, parameter interpolation read - 0x701d: Projected point Y read - 0x701f: Projected point X read - 0x7022: Unknown read - 0x7030: Unknown write -*/ - -static ADDRESS_MAP_START( tms_program_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x4000, 0x7fff) AM_RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tms_data_map, ADDRESS_SPACE_DATA, 16 ) - //AM_RANGE(0x1400, 0x1401) AM_RAM - AM_RANGE(0x6a01, 0x6a02) AM_WRITE(dsp_unk2_w) - AM_RANGE(0x6a11, 0x6a12) AM_NOP // same as 0x6a01..02 for the second renderer chip? - AM_RANGE(0x6b20, 0x6b20) AM_WRITE(dsp_polygon_fifo_w) - AM_RANGE(0x6b22, 0x6b22) AM_WRITE(dsp_texture_w) - AM_RANGE(0x6b23, 0x6b23) AM_READWRITE(dsp_texaddr_r, dsp_texaddr_w) - AM_RANGE(0x6c00, 0x6c01) AM_READWRITE(dsp_rom_r, dsp_rom_w) - AM_RANGE(0x7000, 0x7002) AM_WRITE(dsp_projection_w) - AM_RANGE(0x7010, 0x7012) AM_WRITE(dsp_intersection_w) - AM_RANGE(0x7013, 0x7015) AM_WRITE(dsp_viewport_w) - AM_RANGE(0x701b, 0x701b) AM_READ(dsp_intersection_r) - AM_RANGE(0x701d, 0x701f) AM_READ(dsp_projection_r) - AM_RANGE(0x7022, 0x7022) AM_READ(dsp_unk_r) - AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&dsp_shared_ram) - AM_RANGE(0x8000, 0xffff) AM_RAM -ADDRESS_MAP_END - - -/*****************************************************************************/ - -INPUT_PORTS_START( taitojc ) - PORT_START - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_COIN4) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_COIN3) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_COIN2) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - //PORT_SERVICE(0x02, 0x00) - - PORT_START - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START4) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START3) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START2) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE3) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_TILT) - - PORT_START - PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON1) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON2) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON3) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON4) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON5) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON6) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON7) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON8) - -INPUT_PORTS_END - -INPUT_PORTS_START( dendeg ) - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_TILT) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON7) // Horn - PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON6) // Mascon 5 - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON4) // Mascon 3 - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON2) // Mascon 1 - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON5) // Mascon 4 - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON3) // Mascon 2 - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) // Mascon 0 - - PORT_START_TAG("ANALOG1") // Brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - -INPUT_PORTS_END - -INPUT_PORTS_START( landgear ) - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_TILT) - - PORT_START - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) // View button - PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START - PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START_TAG("ANALOG1") // Lever X - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0xff, 0x00) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG2") // Lever Y - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0xff, 0x00) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG3") // Throttle - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - -INPUT_PORTS_END - -INPUT_PORTS_START( sidebs ) - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) - - PORT_START - PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE3) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE2) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_TILT) - - PORT_START - PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) // View button - - PORT_START - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2) // Shift down - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON3) // Shift up - PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) - - PORT_START_TAG("ANALOG1") // Steering - PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG2") // Acceleration - PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - - PORT_START_TAG("ANALOG3") // Brake - PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) - -INPUT_PORTS_END - - - -static MACHINE_RESET( taitojc ) -{ - taito_f3_soundsystem_reset(); - - f3_68681_reset(); - - // hold the TMS in reset until we have code - cpunum_set_input_line(3, INPUT_LINE_RESET, ASSERT_LINE); -} - -static INTERRUPT_GEN( taitojc_vblank ) -{ - cpunum_set_input_line_and_vector(0, 2, HOLD_LINE, 130); -} - -static INTERRUPT_GEN( taitojc_int6 ) -{ - cpunum_set_input_line(0, 6, HOLD_LINE); -} - -static MACHINE_DRIVER_START( taitojc ) - MDRV_CPU_ADD(M68040, 25000000) - MDRV_CPU_PROGRAM_MAP(taitojc_map, 0) - MDRV_CPU_VBLANK_INT(taitojc_vblank, 1) - MDRV_CPU_PERIODIC_INT(taitojc_int6, TIME_IN_MSEC(1)) - - TAITO_F3_SOUND_SYSTEM_CPU(16000000) - - MDRV_CPU_ADD(MC68HC11, 4000000) - MDRV_CPU_PROGRAM_MAP(hc11_pgm_map, 0) - MDRV_CPU_IO_MAP(hc11_io_map, 0) - - MDRV_CPU_ADD(TMS32051, 50000000) - MDRV_CPU_PROGRAM_MAP(tms_program_map, 0) - MDRV_CPU_DATA_MAP(tms_data_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - - MDRV_INTERLEAVE(100) - - MDRV_MACHINE_RESET(taitojc) - MDRV_NVRAM_HANDLER(93C46) - - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 400) - MDRV_SCREEN_VISIBLE_AREA(0, 511, 0, 399) - MDRV_PALETTE_LENGTH(32768) - - MDRV_VIDEO_START(taitojc) - MDRV_VIDEO_UPDATE(taitojc) - - /* sound hardware */ - TAITO_F3_SOUND_SYSTEM_ES5505(30476100/2) -MACHINE_DRIVER_END - -static DRIVER_INIT( taitojc ) -{ - f3_shared_ram = auto_malloc(0x800); - - polygon_fifo = auto_malloc(POLYGON_FIFO_SIZE * sizeof(UINT16)); -} - -static DRIVER_INIT( dendeg ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - //rom[(0x12bec2 / 2) ^ 1] = 0xffff; // enable debug mode - - init_taitojc(machine); -} - -static DRIVER_INIT( dendegx ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - init_taitojc(machine); -} - -static DRIVER_INIT( dendeg2 ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - init_taitojc(machine); -} - -static DRIVER_INIT( dendeg2x ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - init_taitojc(machine); -} - -static DRIVER_INIT( sidebs ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - //rom[((0x100000 + 0x33c30) / 2) ^ 1] = 0xffff; // enable debug mode - - init_taitojc(machine); -} - -static DRIVER_INIT( sidebs2 ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - init_taitojc(machine); -} - -static DRIVER_INIT( landgear ) -{ - //UINT16 *rom = (UINT16*)memory_region(REGION_CPU1); - - init_taitojc(machine); -} - -ROM_START( sidebs ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE("e23-19.036", 0x000000, 0x80000, CRC(7b75481b) SHA1(47332e045f92b31e4f35c38e6880a7287b9a5c2c) ) - ROM_LOAD32_BYTE("e23-20.037", 0x000001, 0x80000, CRC(cbd857dd) SHA1(ae33ad8b0c3559a3a9096351e9aa07782d3cb841) ) - ROM_LOAD32_BYTE("e23-21.038", 0x000002, 0x80000, CRC(357f2e10) SHA1(226922f2649d9ac78d253200f5bbff4fb3ac74c8) ) - ROM_LOAD32_BYTE("e23-22.039", 0x000003, 0x80000, CRC(c793ba43) SHA1(0ddbf625320968b4e18309d8e732ce4a2b9f4bce) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e23-23.030", 0x100001, 0x040000, CRC(cffbffe5) SHA1(c01ac44390dacab4b49bb066a46d81a184b07a1e) ) - ROM_LOAD16_BYTE( "e23-24.031", 0x100000, 0x040000, CRC(64bae246) SHA1(f929f664881487615b1259db43a0721135830274) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e23-05.009", 0x0800002, 0x200000, CRC(9aa0d956) SHA1(bd146e3db7c2a53701eca6b43f903899ed15623a) ) - ROM_LOAD32_WORD( "e23-12.022", 0x0800000, 0x200000, CRC(c93fab09) SHA1(1ed292b11bf6bf09d1783d247f3de0c899e4df28) ) - ROM_LOAD32_WORD( "e23-06.010", 0x0c00002, 0x200000, CRC(2077ac3a) SHA1(894e1bbfef8a693bda50aa8681e8f283c0d6b6cf) ) - ROM_LOAD32_WORD( "e23-13.023", 0x0c00000, 0x200000, CRC(985f6785) SHA1(81cd33957b943f4bb33323fbf491ace344f8245b) ) - ROM_LOAD32_WORD( "e23-07.012", 0x1400002, 0x200000, CRC(bf1cd99d) SHA1(f98e1dacb485c7e40b0b2277a690d74ae020c9d9) ) - ROM_LOAD32_WORD( "e23-14.025", 0x1400000, 0x200000, CRC(9d54eac7) SHA1(4f97b388a0fd0529d26e1cc31491a0e2ce6c381d) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e23-01.005", 0x0000000, 0x200000, CRC(c5018242) SHA1(d1a45aa6899d9a95b32aeba0f9a4520714d5f5a3) ) - ROM_LOAD( "e23-02.006", 0x0200000, 0x200000, CRC(dbf24766) SHA1(2ee0bdb9f912f31bdf962a1af53ad1a6e3121a05) ) - ROM_LOAD( "e23-03.007", 0x0400000, 0x200000, CRC(3ab59dd0) SHA1(39e93d306a59017bef0f2fdadc69f96aecbffca6) ) - ROM_LOAD( "e23-04.008", 0x0600000, 0x200000, CRC(5060119c) SHA1(c8c5c33bd37121d222961ecfcdb79bbe6cbdf821) ) - ROM_LOAD( "e23-08.018", 0x0800000, 0x200000, CRC(04738f5b) SHA1(0ebc8c61d87f10822148f3b272612dc10ac4652c) ) - ROM_LOAD( "e23-09.019", 0x0a00000, 0x200000, CRC(089fac53) SHA1(3af008c65f4b60ae221b90fdb52d4e6fe552e5a8) ) - ROM_LOAD( "e23-10.020", 0x0c00000, 0x200000, CRC(dccb19ed) SHA1(35749c823ad9a30f471367750c087435b678b42f) ) - ROM_LOAD( "e23-11.021", 0x0e00000, 0x200000, CRC(6981a46f) SHA1(262bf821275413c70a1a8374185df64c697d8b04) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e23-15.32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d)) - ROM_LOAD16_BYTE( "e23-16.33", 0x400000, 0x200000, CRC(1d63d785) SHA1(0cf74bb433e9c453e35f7a552fdf9e22084b2f49) ) - ROM_LOAD16_BYTE( "e23-17.34", 0x800000, 0x200000, CRC(1c54021a) SHA1(a1efbdb02d23a5d32ebd25cb8e99dface3178ebd) ) - ROM_LOAD16_BYTE( "e23-18.35", 0xc00000, 0x200000, CRC(1816f38a) SHA1(6451bdb4b4297aaf4987451bc0ddd97b0072e113) ) -ROM_END - -ROM_START( sidebs2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "sbs2_p0.36", 0x000000, 0x80000, CRC(2dd78d09) SHA1(f0a0105c3f2827c8b55d1bc58ebeea0f71150fed) ) - ROM_LOAD32_BYTE( "sbs2_p1.37", 0x000001, 0x80000, CRC(befeda1d) SHA1(3171c87b0872f3206653900e3dbd210ea9beba61) ) - ROM_LOAD32_BYTE( "sbs2_p2.38", 0x000002, 0x80000, CRC(ade07d7e) SHA1(a5200ea3ddbfef37d302e7cb27015b6f6aa8a7c1) ) - ROM_LOAD32_BYTE( "sbs2_p3.39", 0x000003, 0x80000, CRC(94e943d6) SHA1(2bc7332526b969e5084b9d73063f1c0d18ec5181) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e38-19.30", 0x100001, 0x040000, CRC(3f50cb7b) SHA1(76af65c9b74ede843a3182f79cecda8c3e3febe6) ) - ROM_LOAD16_BYTE( "e38-20.31", 0x100000, 0x040000, CRC(d01340e7) SHA1(76ee48d644dc1ec415d47e0df4864c64ac928b9d) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.65", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_LOAD( "93c46.87", 0x000000, 0x000080, CRC(14e5526c) SHA1(ae02bd8f1eff41738043931642c652732fbe3801) ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e38-05.9", 0x0800002, 0x200000, CRC(bda366bf) SHA1(a7558e6d5e4583a2d8e3d2bfa8cabcc459d3ee83) ) - ROM_LOAD32_WORD( "e38-13.22", 0x0800000, 0x200000, CRC(1bd7582b) SHA1(35763b9489f995433f66ef72d4f6b6ac67df5480) ) - ROM_LOAD32_WORD( "e38-06.10", 0x0c00002, 0x200000, CRC(308d2783) SHA1(22c309273444bc6c1df78069850958a739664998) ) - ROM_LOAD32_WORD( "e38-14.23", 0x0c00000, 0x200000, CRC(f1699f27) SHA1(3c9a9cefe6f215fd9f0a9746da97147d14df1da4) ) - ROM_LOAD32_WORD( "e38-07.11", 0x1000002, 0x200000, CRC(226ba93d) SHA1(98e6342d070ddd988c1e9bff21afcfb28df86844) ) - ROM_LOAD32_WORD( "e38-15.24", 0x1000000, 0x200000, CRC(2853c2e3) SHA1(046dbbd4bcb3b07cddab19a284fee9fe736f8def) ) - ROM_LOAD32_WORD( "e38-08.12", 0x1400002, 0x200000, CRC(9c513b32) SHA1(fe26e39d3d65073d23d525bc17771f0c244a38c2) ) - ROM_LOAD32_WORD( "e38-16.25", 0x1400000, 0x200000, CRC(fceafae2) SHA1(540ecd5d1aa64c0428a08ea1e4e634e00f7e6bd6) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e38-01.5", 0x0000000, 0x200000, CRC(a3c2e2c7) SHA1(538208534f996782167e4cf0d157ad93ce2937bd) ) - ROM_LOAD( "e38-02.6", 0x0200000, 0x200000, CRC(ecdfb75a) SHA1(85e7afa321846816fa3bd9074ad9dec95abe23fe) ) - ROM_LOAD( "e38-03.7", 0x0400000, 0x200000, CRC(28e9cb59) SHA1(a2651fd81a1263573f868864ee049f8fc4177ffa) ) - ROM_LOAD( "e38-04.8", 0x0600000, 0x080000, CRC(26cab05b) SHA1(d5bcf021646dade834840051e0ce083319c53985) ) - ROM_RELOAD( 0x680000, 0x80000 ) - ROM_RELOAD( 0x700000, 0x80000 ) - ROM_RELOAD( 0x780000, 0x80000 ) - ROM_LOAD( "e38-09.18", 0x0800000, 0x200000, CRC(03c95a7f) SHA1(fc046cf5fcfcf5648f68af4bed78576f6d67b32f) ) - ROM_LOAD( "e38-10.19", 0x0a00000, 0x200000, CRC(0fb06794) SHA1(2d0e3b07ded698235572fe9e907a84d5779ac2c5) ) - ROM_LOAD( "e38-11.20", 0x0c00000, 0x200000, CRC(6a312351) SHA1(8037e377f8eef4cc6dd84aec9c829106f0bb130c) ) - ROM_LOAD( "e38-12.21", 0x0e00000, 0x080000, CRC(193a5774) SHA1(aa017ae4fec92bb87c0eb94f59d093853ddbabc9) ) - ROM_RELOAD( 0xe80000, 0x80000 ) - ROM_RELOAD( 0xf00000, 0x80000 ) - ROM_RELOAD( 0xf80000, 0x80000 ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e23-15.32", 0x000000, 0x200000, CRC(8955b7c7) SHA1(767626bd5cf6810b0368ee85e487c12ef7e8a23d) ) // from sidebs (redump) - ROM_LOAD16_BYTE( "e38-17.33", 0x400000, 0x200000, CRC(61e81c7f) SHA1(aa650bc139685ad456c233b79aa60005a8fd6d79) ) - ROM_LOAD16_BYTE( "e38-18.34", 0x800000, 0x200000, CRC(43e2f149) SHA1(32ea9156948a886dda5bd071e9f493ddc2b06212) ) - ROM_LOAD16_BYTE( "e38-21.35", 0xc00000, 0x200000, CRC(25373c5f) SHA1(ab9f917dbde7c808be2cd836ce2d3fc558e290f1) ) - - /* PALS - e23-28.18 NOT A ROM - e23-27.13 NOT A ROM - e23-26.4 NOT A ROM - e23-25-1.3 NOT A ROM - e23-30.40 NOT A ROM - e23-29.39 NOT A ROM - e23-31.46 NOT A ROM - e23-32-1.51 NOT A ROM - e23-34.72 NOT A ROM - e23-33.53 NOT A ROM - e23-35.110 NOT A ROM - e23-38.73 NOT A ROM - e23-37.69 NOT A ROM - */ -ROM_END - -ROM_START( dendeg ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "e35-21.036", 0x000000, 0x80000, CRC(bc70ca97) SHA1(724a24da9d6f163c26e7528ee2c15bd06f2c4382) ) - ROM_LOAD32_BYTE( "e35-22.037", 0x000001, 0x80000, CRC(83b17de8) SHA1(538ddc16727e08e9a2a8ff6b4f030dc044993aa0) ) - ROM_LOAD32_BYTE( "e35-23.038", 0x000002, 0x80000, CRC(1da4acd6) SHA1(2ce11c5f37287526bb1d39185f793d79fc73d5b5) ) - ROM_LOAD32_BYTE( "e35-24.039", 0x000003, 0x80000, CRC(0318afb0) SHA1(9c86330c85536fb1a093ed40610b1c3ddb7813c3) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e35-25.030", 0x100001, 0x040000, CRC(8104de13) SHA1(e518fbaf91704cf5cb8ffbb4833e3adba8c18658) ) - ROM_LOAD16_BYTE( "e35-26.031", 0x100000, 0x040000, CRC(61821cc9) SHA1(87cd5bd3bb22c9f4ca4b6d96f75434d48418321b) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e35-05.009", 0x0800002, 0x200000, CRC(a94486c5) SHA1(c3f869aa0557411f747038a1e0ed6eedcf91fda5) ) - ROM_LOAD32_WORD( "e35-13.022", 0x0800000, 0x200000, CRC(2dc9dff1) SHA1(bc7ad64bc359f18a065e36749cc29c75e52202e2) ) - ROM_LOAD32_WORD( "e35-06.010", 0x0c00002, 0x200000, CRC(cf328021) SHA1(709ce80f9338637172dbf4e9adcacdb3e5b4ccdb) ) - ROM_LOAD32_WORD( "e35-14.023", 0x0c00000, 0x200000, CRC(cab50364) SHA1(e3272f844ecadfd63a1e3c965526a851f8cde94d) ) - ROM_LOAD32_WORD( "e35-07.011", 0x1000002, 0x200000, CRC(a88a5a86) SHA1(a4a393fe9df3654e41d32e015ca3977d13206dfe) ) - ROM_LOAD32_WORD( "e35-15.024", 0x1000000, 0x200000, CRC(aea86b35) SHA1(092f34f844fc6a779a6f18c03d44a9d39a101373) ) - ROM_LOAD32_WORD( "e35-08.012", 0x1400002, 0x200000, CRC(99425ff6) SHA1(3bd6fe7204dece55459392170b42d4c6a9d3ef5b) ) - ROM_LOAD32_WORD( "e35-16.025", 0x1400000, 0x200000, CRC(161481b6) SHA1(cc3c2939ac8911c197e9930580d316066f345772) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e35-01.005", 0x0000000, 0x200000, CRC(bd1975cb) SHA1(a08c6f4a84f9d4c2a5aa67cc2045aedd4580b8dc) ) - ROM_LOAD( "e35-02.006", 0x0200000, 0x200000, CRC(e5caa459) SHA1(c38d795b96fff193223cd3df9f51ebdc2971b719) ) - ROM_LOAD( "e35-03.007", 0x0400000, 0x200000, CRC(86ea5bcf) SHA1(1cee7f677b786b2fa9f50e723decd08cd69fbdef) ) - ROM_LOAD( "e35-04.008", 0x0600000, 0x200000, CRC(afc07c36) SHA1(f3f7b04766a9a2c8b298e1692aea24abc7001432) ) - ROM_LOAD( "e35-09.018", 0x0800000, 0x200000, CRC(be18ddf1) SHA1(d4fe26e427244c5b421b6421ff3bf9af303673d5) ) - ROM_LOAD( "e35-10.019", 0x0a00000, 0x200000, CRC(44ea9474) SHA1(161ff94b31c3dc2fa4b1e556ed62624147687443) ) - ROM_LOAD( "e35-11.020", 0x0c00000, 0x200000, CRC(dc8f5e88) SHA1(e311252db8a7232a5325a3eff5c1890d20bd3f8f) ) - ROM_LOAD( "e35-12.021", 0x0e00000, 0x200000, CRC(039b604c) SHA1(7e394e7cddc6bf42f3834d5331203e8496597a90) ) - - ROM_REGION( 0x40000, REGION_USER3, 0 ) /* train board, OKI6295 sound samples */ - ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e35-17.032", 0x000000, 0x200000, CRC(3bc23aa1) SHA1(621e0f2f5f3dbd7d7ce05c9cd317958c361c1c26) ) - ROM_LOAD16_BYTE( "e35-18.033", 0x400000, 0x200000, CRC(a084d3aa) SHA1(18ea39366006e362e16d6732ce3e79cd3bfa041e) ) - ROM_LOAD16_BYTE( "e35-19.034", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) - ROM_LOAD16_BYTE( "e35-20.035", 0xc00000, 0x200000, CRC(a1d4b30d) SHA1(e02f613b93d3b3ee1eb23f5b7f62c5448ed3966d) ) -ROM_END - -ROM_START( dendegx ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "e35-30.036", 0x000000, 0x80000, CRC(57ee0975) SHA1(c7741a7e0e9c1fdebc6b942587d7ac5a6f26f66d) )//ex - ROM_LOAD32_BYTE( "e35-31.037", 0x000001, 0x80000, CRC(bd5f2651) SHA1(73b760df351170ace019e4b61c82d8c6296a3632) )//ex - ROM_LOAD32_BYTE( "e35-32.038", 0x000002, 0x80000, CRC(66be29d5) SHA1(e73937f5bda709a606d5cdf7316b26051317c22f) )//ex - ROM_LOAD32_BYTE( "e35-33.039", 0x000003, 0x80000, CRC(76a6bde2) SHA1(ca456ec3f0410777362e3eb977ae156866271bd5) )//ex - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e35-25.030", 0x100001, 0x040000, CRC(8104de13) SHA1(e518fbaf91704cf5cb8ffbb4833e3adba8c18658) ) - ROM_LOAD16_BYTE( "e35-26.031", 0x100000, 0x040000, CRC(61821cc9) SHA1(87cd5bd3bb22c9f4ca4b6d96f75434d48418321b) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e35-05.009", 0x0800002, 0x200000, CRC(a94486c5) SHA1(c3f869aa0557411f747038a1e0ed6eedcf91fda5) ) - ROM_LOAD32_WORD( "e35-13.022", 0x0800000, 0x200000, CRC(2dc9dff1) SHA1(bc7ad64bc359f18a065e36749cc29c75e52202e2) ) - ROM_LOAD32_WORD( "e35-06.010", 0x0c00002, 0x200000, CRC(cf328021) SHA1(709ce80f9338637172dbf4e9adcacdb3e5b4ccdb) ) - ROM_LOAD32_WORD( "e35-14.023", 0x0c00000, 0x200000, CRC(cab50364) SHA1(e3272f844ecadfd63a1e3c965526a851f8cde94d) ) - ROM_LOAD32_WORD( "e35-07.011", 0x1000002, 0x200000, CRC(a88a5a86) SHA1(a4a393fe9df3654e41d32e015ca3977d13206dfe) ) - ROM_LOAD32_WORD( "e35-15.024", 0x1000000, 0x200000, CRC(aea86b35) SHA1(092f34f844fc6a779a6f18c03d44a9d39a101373) ) - ROM_LOAD32_WORD( "e35-08.012", 0x1400002, 0x200000, CRC(99425ff6) SHA1(3bd6fe7204dece55459392170b42d4c6a9d3ef5b) ) - ROM_LOAD32_WORD( "e35-16.025", 0x1400000, 0x200000, CRC(161481b6) SHA1(cc3c2939ac8911c197e9930580d316066f345772) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e35-01.005", 0x0000000, 0x200000, CRC(bd1975cb) SHA1(a08c6f4a84f9d4c2a5aa67cc2045aedd4580b8dc) ) - ROM_LOAD( "e35-02.006", 0x0200000, 0x200000, CRC(e5caa459) SHA1(c38d795b96fff193223cd3df9f51ebdc2971b719) ) - ROM_LOAD( "e35-03.007", 0x0400000, 0x200000, CRC(86ea5bcf) SHA1(1cee7f677b786b2fa9f50e723decd08cd69fbdef) ) - ROM_LOAD( "e35-04.008", 0x0600000, 0x200000, CRC(afc07c36) SHA1(f3f7b04766a9a2c8b298e1692aea24abc7001432) ) - ROM_LOAD( "e35-09.018", 0x0800000, 0x200000, CRC(be18ddf1) SHA1(d4fe26e427244c5b421b6421ff3bf9af303673d5) ) - ROM_LOAD( "e35-10.019", 0x0a00000, 0x200000, CRC(44ea9474) SHA1(161ff94b31c3dc2fa4b1e556ed62624147687443) ) - ROM_LOAD( "e35-11.020", 0x0c00000, 0x200000, CRC(dc8f5e88) SHA1(e311252db8a7232a5325a3eff5c1890d20bd3f8f) ) - ROM_LOAD( "e35-12.021", 0x0e00000, 0x200000, CRC(039b604c) SHA1(7e394e7cddc6bf42f3834d5331203e8496597a90) ) - - ROM_REGION( 0x40000, REGION_USER3, 0 ) /* train board, OKI6295 sound samples */ - ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e35-17.032", 0x000000, 0x200000, CRC(3bc23aa1) SHA1(621e0f2f5f3dbd7d7ce05c9cd317958c361c1c26) ) - ROM_LOAD16_BYTE( "e35-18.033", 0x400000, 0x200000, CRC(a084d3aa) SHA1(18ea39366006e362e16d6732ce3e79cd3bfa041e) ) - ROM_LOAD16_BYTE( "e35-19.034", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) - ROM_LOAD16_BYTE( "e35-20.035", 0xc00000, 0x200000, CRC(a1d4b30d) SHA1(e02f613b93d3b3ee1eb23f5b7f62c5448ed3966d) ) -ROM_END - -ROM_START( dendeg2 ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "e52-25-1.036", 0x000000, 0x80000, CRC(fadf5b4c) SHA1(48f3e1425bb9552d472a2720e1c9a752db2b43ed) ) - ROM_LOAD32_BYTE( "e52-26-1.037", 0x000001, 0x80000, CRC(7cf5230d) SHA1(b3416886d7cfc88520f6bf378529086bf0095db5) ) - ROM_LOAD32_BYTE( "e52-27-1.038", 0x000002, 0x80000, CRC(25f0d81d) SHA1(c33c3e6b1ad49b63b31a2f1227d43141faef4eab) ) - ROM_LOAD32_BYTE( "e52-28-1.039", 0x000003, 0x80000, CRC(e76ff6a1) SHA1(674c00f19df034de8134d48a8c2d2e42f7eb1be7) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e52-29.030", 0x100001, 0x040000, CRC(6010162a) SHA1(f14920b26887f5387b3e261b63573d850195982a) ) - ROM_LOAD16_BYTE( "e52-30.031", 0x100000, 0x040000, CRC(2881af4a) SHA1(5918f6508b3cd3bef3751e3bda2a48152569c1cd) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD_SWAP( "e52-17.052", 0x0000002, 0x200000, CRC(4ac11921) SHA1(c4816e1d68bb52ee59e7a2e6de617c1093020944) ) - ROM_LOAD32_WORD_SWAP( "e52-18.053", 0x0000000, 0x200000, CRC(7f3e4af7) SHA1(ab35744014175a802e73c8b70de4e7508f0a1cd1) ) - ROM_LOAD32_WORD_SWAP( "e52-19.054", 0x0400002, 0x200000, CRC(2e5ff408) SHA1(91f95721b98198082e950c50f33324820719e9ed) ) - ROM_LOAD32_WORD_SWAP( "e52-20.055", 0x0400000, 0x200000, CRC(e90eb71e) SHA1(f07518c718f773e20412393c0ebb3243f9b1d96c) ) - ROM_LOAD32_WORD( "e52-05.009", 0x0800002, 0x200000, CRC(1ad0c612) SHA1(4ffc373fca8c1e1a5edbad3305b08f0867e9809c) ) - ROM_LOAD32_WORD( "e52-13.022", 0x0800000, 0x200000, CRC(943af3f4) SHA1(bfc81aa5e5c22e44601428b9e980f09d0c65e38e) ) - ROM_LOAD32_WORD( "e52-06.010", 0x0c00002, 0x200000, CRC(aa35e536) SHA1(2c1b2ee0d2587db6d6dd60b081bfcef3bb0dd9fa) ) - ROM_LOAD32_WORD( "e52-14.023", 0x0c00000, 0x200000, CRC(f311a9b4) SHA1(1f25571ac9468d453e92886e003400fffdc149f2) ) - ROM_LOAD32_WORD( "e52-07.011", 0x1000002, 0x200000, CRC(80a27984) SHA1(57b8c41809de09582600b8ff30c135d5abd044b8) ) - ROM_LOAD32_WORD( "e52-15.024", 0x1000000, 0x200000, CRC(b45a6199) SHA1(9339a1520b38d1f6538171a0b01df87de3e9c2d1) ) - ROM_LOAD32_WORD( "e52-08.012", 0x1400002, 0x200000, CRC(d52e6b9c) SHA1(382a5fd4533ab641a09321208464d83f72e161e3) ) - ROM_LOAD32_WORD( "e52-16.025", 0x1400000, 0x200000, CRC(db6dd6e2) SHA1(d345dbd745514d4777d52c4360787ea8c462ffb1) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e52-01.005", 0x0000000, 0x200000, CRC(8db39c3c) SHA1(74b3305ebdf679ae274c73b7b32d2adea602bedc) ) - ROM_LOAD( "e52-02.006", 0x0200000, 0x200000, CRC(b8d6f066) SHA1(99553ad66643ebf7fc71a9aee526d8f206b41dcc) ) - ROM_LOAD( "e52-03.007", 0x0400000, 0x200000, CRC(a37d164b) SHA1(767a7d2de8b91a00c5fe74710937457e8568a422) ) - ROM_LOAD( "e52-04.008", 0x0600000, 0x200000, CRC(403a4142) SHA1(aa5fea79a7a838642152586689d0f9b33311252c) ) - ROM_LOAD( "e52-09.018", 0x0800000, 0x200000, CRC(830e0a3c) SHA1(ab96f380e53f72945f73a6cfcc80d12e1b1afce8) ) - ROM_LOAD( "e52-10.019", 0x0a00000, 0x200000, CRC(671e41c6) SHA1(281899d83dba104daf7d7c2bd0834cab4c022472) ) - ROM_LOAD( "e52-11.020", 0x0c00000, 0x200000, CRC(1bc22680) SHA1(1f71db88d6df3b4bdf090b77bc83a67906bb31da) ) - ROM_LOAD( "e52-12.021", 0x0e00000, 0x200000, CRC(a8bb91c5) SHA1(959a9fedb7839e1e4e7658d920bd5da4fd8cae48) ) - - ROM_REGION( 0x40000, REGION_USER3, 0 ) /* train board, OKI6295 sound samples */ - ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e52-21.032", 0x000000, 0x200000, CRC(ba58081d) SHA1(bcb6c8781191d48f906ed404a3e7388097a64781) ) - ROM_LOAD16_BYTE( "e52-22.033", 0x400000, 0x200000, CRC(dda281b1) SHA1(4851a6bf7902548c5033090a0e5c15f74c00ef58) ) - ROM_LOAD16_BYTE( "e52-23.034", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) // same as e35-19.034 from dendeg - ROM_LOAD16_BYTE( "e52-24.035", 0xc00000, 0x200000, CRC(a9a678da) SHA1(b980ae644ef0312acd63b017028af9bf2b084c29) ) -ROM_END - -ROM_START( dendeg2x ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "e52-35.036", 0x000000, 0x80000, CRC(d5b33eb8) SHA1(e05ad73986741827b7bbeac72af0a8324384bf6b) ) //2ex - ROM_LOAD32_BYTE( "e52-36.037", 0x000001, 0x80000, CRC(f3f3fabd) SHA1(4f88080091af2208d671c491284d992b5036908c) ) //2ex - ROM_LOAD32_BYTE( "e52-37.038", 0x000002, 0x80000, CRC(65b8ef31) SHA1(b61b391b160e81715ff355aeef65026d7e4dd9af) ) //2ex - ROM_LOAD32_BYTE( "e52-38.039", 0x000003, 0x80000, CRC(cf61f321) SHA1(c8493d2499afba673174b26044aca537e384916c) ) //2ex - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e52-29.030", 0x100001, 0x040000, CRC(6010162a) SHA1(f14920b26887f5387b3e261b63573d850195982a) ) - ROM_LOAD16_BYTE( "e52-30.031", 0x100000, 0x040000, CRC(2881af4a) SHA1(5918f6508b3cd3bef3751e3bda2a48152569c1cd) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e52-17.052", 0x0000002, 0x200000, CRC(4ac11921) SHA1(c4816e1d68bb52ee59e7a2e6de617c1093020944) ) - ROM_LOAD32_WORD( "e52-18.053", 0x0000000, 0x200000, CRC(7f3e4af7) SHA1(ab35744014175a802e73c8b70de4e7508f0a1cd1) ) - ROM_LOAD32_WORD( "e52-19.054", 0x0400002, 0x200000, CRC(2e5ff408) SHA1(91f95721b98198082e950c50f33324820719e9ed) ) - ROM_LOAD32_WORD( "e52-20.055", 0x0400000, 0x200000, CRC(e90eb71e) SHA1(f07518c718f773e20412393c0ebb3243f9b1d96c) ) - ROM_LOAD32_WORD( "e52-05.009", 0x0800002, 0x200000, CRC(1ad0c612) SHA1(4ffc373fca8c1e1a5edbad3305b08f0867e9809c) ) - ROM_LOAD32_WORD( "e52-13.022", 0x0800000, 0x200000, CRC(943af3f4) SHA1(bfc81aa5e5c22e44601428b9e980f09d0c65e38e) ) - ROM_LOAD32_WORD( "e52-31.010", 0x0c00002, 0x200000, CRC(e9e2eb3d) SHA1(97e2dc907faa512d3fb140dafe3250f04991ff07) ) //2ex - ROM_LOAD32_WORD( "e52-33.023", 0x0c00000, 0x200000, CRC(6906f41f) SHA1(0d3f6fc4772417190d123ad38b0b8a8a532159c6) ) //2ex - ROM_LOAD32_WORD( "e52-32.011", 0x1000002, 0x200000, CRC(43d452fd) SHA1(20a4064904cf2f21d5f03236c99c9e21a49a1206) ) //2ex - ROM_LOAD32_WORD( "e52-34.024", 0x1000000, 0x200000, CRC(4ae1064b) SHA1(a5f1ad3262f8ffd09e9063a6dbe98d883b11a156) ) //2ex - ROM_LOAD32_WORD( "e52-08.012", 0x1400002, 0x200000, CRC(d52e6b9c) SHA1(382a5fd4533ab641a09321208464d83f72e161e3) ) - ROM_LOAD32_WORD( "e52-16.025", 0x1400000, 0x200000, CRC(db6dd6e2) SHA1(d345dbd745514d4777d52c4360787ea8c462ffb1) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e52-01.005", 0x0000000, 0x200000, CRC(8db39c3c) SHA1(74b3305ebdf679ae274c73b7b32d2adea602bedc) ) - ROM_LOAD( "e52-02.006", 0x0200000, 0x200000, CRC(b8d6f066) SHA1(99553ad66643ebf7fc71a9aee526d8f206b41dcc) ) - ROM_LOAD( "e52-03.007", 0x0400000, 0x200000, CRC(a37d164b) SHA1(767a7d2de8b91a00c5fe74710937457e8568a422) ) - ROM_LOAD( "e52-04.008", 0x0600000, 0x200000, CRC(403a4142) SHA1(aa5fea79a7a838642152586689d0f9b33311252c) ) - ROM_LOAD( "e52-09.018", 0x0800000, 0x200000, CRC(830e0a3c) SHA1(ab96f380e53f72945f73a6cfcc80d12e1b1afce8) ) - ROM_LOAD( "e52-10.019", 0x0a00000, 0x200000, CRC(671e41c6) SHA1(281899d83dba104daf7d7c2bd0834cab4c022472) ) - ROM_LOAD( "e52-11.020", 0x0c00000, 0x200000, CRC(1bc22680) SHA1(1f71db88d6df3b4bdf090b77bc83a67906bb31da) ) - ROM_LOAD( "e52-12.021", 0x0e00000, 0x200000, CRC(a8bb91c5) SHA1(959a9fedb7839e1e4e7658d920bd5da4fd8cae48) ) - - ROM_REGION( 0x40000, REGION_USER3, 0 ) /* train board, OKI6295 sound samples */ - ROM_LOAD( "e35-28.trn", 0x000000, 0x040000, CRC(d1b571c1) SHA1(cac7d3f0285544fe36b8b744edfbac0190cdecab) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e52-21.032", 0x000000, 0x200000, CRC(ba58081d) SHA1(bcb6c8781191d48f906ed404a3e7388097a64781) ) - ROM_LOAD16_BYTE( "e52-22.033", 0x400000, 0x200000, CRC(dda281b1) SHA1(4851a6bf7902548c5033090a0e5c15f74c00ef58) ) - ROM_LOAD16_BYTE( "e52-23.034", 0x800000, 0x200000, CRC(ebe2dcef) SHA1(16ae41e0f3bb242cbc2922f53cacbd99961a3f97) ) // same as e35-19.034 from dendeg - ROM_LOAD16_BYTE( "e52-24.035", 0xc00000, 0x200000, CRC(a9a678da) SHA1(b980ae644ef0312acd63b017028af9bf2b084c29) ) -ROM_END - -ROM_START( landgear ) - ROM_REGION(0x200000, REGION_CPU1, 0) /* 68040 code */ - ROM_LOAD32_BYTE( "e17-37.36", 0x000000, 0x80000, CRC(e6dda113) SHA1(786cbfae420b6ee820a93731e59da3442245b6b8) ) - ROM_LOAD32_BYTE( "e17-38.37", 0x000001, 0x80000, CRC(86fa29bd) SHA1(f711528143c042cdc4a26d9e6965a882a73f397c) ) - ROM_LOAD32_BYTE( "e17-39.38", 0x000002, 0x80000, CRC(ccbbcc7b) SHA1(52d91fcaa1683d2679ed4f14ebc11dc487527898) ) - ROM_LOAD32_BYTE( "e17-40.39", 0x000003, 0x80000, CRC(ce9231d2) SHA1(d2c3955d910dbd0cac95862047c58791af626722) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "e17-21.30", 0x100001, 0x040000, CRC(8b54f46c) SHA1(c6d16197ab7768945becf9b49b6d286113b4d1cc) ) - ROM_LOAD16_BYTE( "e17-22.31", 0x100000, 0x040000, CRC(b96f6cd7) SHA1(0bf086e5dc6d524cd00e33df3e3d2a8b9231eb72) ) - - ROM_REGION( 0x010000, REGION_USER1, 0 ) /* MC68HC11M0 code */ - ROM_LOAD( "e17-23.065", 0x000000, 0x010000, CRC(80ac1428) SHA1(5a2a1e60a11ecdb8743c20ddacfb61f9fd00f01c) ) - - ROM_REGION( 0x00080, REGION_USER2, 0 ) /* eeprom */ - ROM_FILL( 0x0000, 0x0080, 0 ) - - ROM_REGION( 0x1800000, REGION_GFX1, 0 ) - ROM_LOAD32_WORD( "e17-03.9", 0x0800002, 0x200000, CRC(64820c4f) SHA1(ee18e4e2b01ec21c33ec1f0eb43f6d0cd48d7225) ) - ROM_LOAD32_WORD( "e17-09.22", 0x0800000, 0x200000, CRC(19e9a1d1) SHA1(26f1a91e3757da510d685a11add08e3e00317796) ) - ROM_LOAD32_WORD( "e17-04.10", 0x0c00002, 0x200000, CRC(7dc2cae3) SHA1(90638a1efc353428ce4155ca29f67accaf0499cd) ) - ROM_LOAD32_WORD( "e17-10.23", 0x0c00000, 0x200000, CRC(a6bdf6b8) SHA1(e8d76d38f2c7e428a3c2f555571e314351d74a69) ) - ROM_LOAD32_WORD( "e17-05.11", 0x1000002, 0x200000, CRC(3f70acd4) SHA1(e8c1c6214631e3e39d1fc9df13d1862442a47e5d) ) - ROM_LOAD32_WORD( "e17-11.24", 0x1000000, 0x200000, CRC(4e986d93) SHA1(b218a0360c1d0eca5a907f2b402f352e0329fe41) ) - ROM_LOAD32_WORD( "e17-06.12", 0x1400002, 0x200000, CRC(107ff481) SHA1(2a48cedec9641ff08776e5d8b1bf1f5b250d4179) ) - ROM_LOAD32_WORD( "e17-12.25", 0x1400000, 0x200000, CRC(0727ddfa) SHA1(68bf83a3c46cd042a7ad27a530c8bed6360d8492) ) - - ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* only accessible to the TMS */ - ROM_LOAD( "e17-01.5", 0x0000000, 0x200000, CRC(42aa56a6) SHA1(945c338515ceb946c01480919546869bb8c3d323) ) - ROM_LOAD( "e17-02.8", 0x0600000, 0x200000, CRC(df7e2405) SHA1(684d6fc398791c48101e6cb63acbf0d691ed863c) ) - ROM_LOAD( "e17-07.18", 0x0800000, 0x200000, CRC(0f180eb0) SHA1(5e1dd920f110a62a029bace6f4cb80fee0fdaf03) ) - ROM_LOAD( "e17-08.19", 0x0a00000, 0x200000, CRC(3107e154) SHA1(59a99770c2aa535cac6569f41b03be1554e0e800) ) - - ROM_REGION16_BE( 0x1000000, REGION_SOUND1, ROMREGION_ERASE00 ) - ROM_LOAD16_BYTE( "e17-13.32", 0x000000, 0x200000, CRC(6cf238e7) SHA1(0745d2dcfea26178adde3ad08650156e8e30651f) ) - ROM_LOAD16_BYTE( "e17-14.33", 0x400000, 0x200000, CRC(5efec311) SHA1(f253bc40f2567f59ddfb617fddb8b9a389bfac89) ) - ROM_LOAD16_BYTE( "e17-15.34", 0x800000, 0x200000, CRC(41d7a7d0) SHA1(f5a8b79c1d47611e93d46aaf921107b52090bb5f) ) - ROM_LOAD16_BYTE( "e17-16.35", 0xc00000, 0x200000, CRC(6cf9f277) SHA1(03ca51fadc6b0b6502804346f18eeb55ab87b0e7) ) - - /* Pals - e07-02.4 NOT A ROM - e07-03.50 NOT A ROM - e07-04.115 NOT A ROM - e07-05.22 NOT A ROM - e07-06.37 NOT A ROM - e07-07.49 NOT A ROM - e07-08.65 NOT A ROM - e07-09.82 NOT A ROM - e07-10.116 NOT A ROM - e09-21.69 NOT A ROM - e09-22.73 NOT A ROM - e17-32.96 NOT A ROM - */ -ROM_END - - - - -GAME( 1996, dendeg, 0, taitojc, dendeg, dendeg, ROT0, "Taito", "Densya De Go", GAME_NOT_WORKING ) -GAME( 1996, dendegx, dendeg, taitojc, dendeg, dendegx, ROT0, "Taito", "Densya De Go Ex", GAME_NOT_WORKING ) -GAME( 1998, dendeg2, 0, taitojc, dendeg, dendeg2, ROT0, "Taito", "Densya De Go 2", GAME_NOT_WORKING ) -GAME( 1998, dendeg2x, dendeg2, taitojc, dendeg, dendeg2x, ROT0, "Taito", "Densya De Go 2 Ex", GAME_NOT_WORKING ) -GAME( 1996, sidebs, 0, taitojc, sidebs, sidebs, ROT0, "Taito", "Side By Side", GAME_NOT_WORKING ) -GAME( 1997, sidebs2, 0, taitojc, sidebs, sidebs2, ROT0, "Taito", "Side By Side 2", GAME_IMPERFECT_GRAPHICS ) -GAME( 1995, landgear, 0, taitojc, landgear, landgear, ROT0, "Taito", "Landing Gear", GAME_NOT_WORKING ) diff --git a/src/drivers/tank8.c b/src/drivers/tank8.c deleted file mode 100644 index b3cee618b..000000000 --- a/src/drivers/tank8.c +++ /dev/null @@ -1,547 +0,0 @@ -/*************************************************************************** - -Atari Tank 8 driver - -***************************************************************************/ - -#include -#include "driver.h" -#include "tank8.h" -#include "sound/discrete.h" - -static int collision_index; - - -void tank8_collision_callback(int index) -{ - cpunum_set_input_line(0, 0, ASSERT_LINE); - - collision_index = index; -} - - -static void fill_palette(running_machine *machine, int team) -{ - if (team) - { - palette_set_color(machine,0, 0xff, 0x00, 0x00); /* red */ - palette_set_color(machine,2, 0xff, 0x00, 0x00); /* red */ - palette_set_color(machine,4, 0xff, 0x00, 0x00); /* red */ - palette_set_color(machine,6, 0xff, 0x00, 0x00); /* red */ - palette_set_color(machine,1, 0x00, 0x00, 0xff); /* blue */ - palette_set_color(machine,3, 0x00, 0x00, 0xff); /* blue */ - palette_set_color(machine,5, 0x00, 0x00, 0xff); /* blue */ - palette_set_color(machine,7, 0x00, 0x00, 0xff); /* blue */ - } - else - { - palette_set_color(machine,0, 0xff, 0x00, 0x00); /* red */ - palette_set_color(machine,1, 0x00, 0x00, 0xff); /* blue */ - palette_set_color(machine,2, 0xff, 0xff, 0x00); /* yellow */ - palette_set_color(machine,3, 0x00, 0xff, 0x00); /* green */ - palette_set_color(machine,4, 0xff, 0x00, 0xff); /* magenta */ - palette_set_color(machine,5, 0xe0, 0xc0, 0x70); /* puce */ - palette_set_color(machine,6, 0x00, 0xff, 0xff); /* cyan */ - palette_set_color(machine,7, 0xff, 0xaa, 0xaa); /* pink */ - } -} - - -static PALETTE_INIT( tank8 ) -{ - int i; - - fill_palette(machine,0); - - palette_set_color(machine, 8, 0x00, 0x00, 0x00); - palette_set_color(machine, 9, 0xff, 0xff, 0xff); - - for (i = 0; i < 8; i++) - { - colortable[2 * i + 0] = 8; - colortable[2 * i + 1] = i; - } - - colortable[16] = 8; - colortable[17] = 8; - colortable[18] = 8; - colortable[19] = 9; -} - - -static MACHINE_RESET( tank8 ) -{ - collision_index = 0; -} - - -static READ8_HANDLER( tank8_collision_r ) -{ - return collision_index; -} - -static WRITE8_HANDLER( tank8_lockout_w ) -{ - coin_lockout_w(offset, ~data & 1); -} - - -static WRITE8_HANDLER( tank8_team_w ) -{ - fill_palette(Machine,~data & 1); -} - - -static WRITE8_HANDLER( tank8_int_reset_w ) -{ - collision_index &= ~0x3f; - - cpunum_set_input_line(0, 0, CLEAR_LINE); -} - -static WRITE8_HANDLER( tank8_crash_w ) -{ - discrete_sound_w(TANK8_CRASH_EN, data); -} - -static WRITE8_HANDLER( tank8_explosion_w ) -{ - discrete_sound_w(TANK8_EXPLOSION_EN, data); -} - -static WRITE8_HANDLER( tank8_bugle_w ) -{ - discrete_sound_w(TANK8_BUGLE_EN, data); -} - -static WRITE8_HANDLER( tank8_bug_w ) -{ - /* D0 and D1 determine the on/off time off the square wave */ - switch(data & 3) { - case 0: - discrete_sound_w(TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(TANK8_BUGLE_DATA2,4.0); - break; - case 1: - discrete_sound_w(TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(TANK8_BUGLE_DATA2,7.0); - break; - case 2: - discrete_sound_w(TANK8_BUGLE_DATA1,8.0); - discrete_sound_w(TANK8_BUGLE_DATA2,2.0); - break; - case 3: - discrete_sound_w(TANK8_BUGLE_DATA1,16.0); - discrete_sound_w(TANK8_BUGLE_DATA2,4.0); - break; - } - -} - -static WRITE8_HANDLER( tank8_attract_w ) -{ - discrete_sound_w(TANK8_ATTRACT_EN, data); -} - -static WRITE8_HANDLER( tank8_motor_w ) -{ - discrete_sound_w(TANK8_MOTOR1_EN+offset, data); -} - -static ADDRESS_MAP_START( tank8_cpu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x00ff) AM_RAM - AM_RANGE(0x0400, 0x17ff) AM_ROM - AM_RANGE(0xf800, 0xffff) AM_ROM - - AM_RANGE(0x1c00, 0x1c00) AM_READ(tank8_collision_r) - - AM_RANGE(0x1c01, 0x1c01) AM_READ(input_port_0_r) - AM_RANGE(0x1c02, 0x1c02) AM_READ(input_port_1_r) - AM_RANGE(0x1c03, 0x1c03) AM_READ(input_port_2_r) - AM_RANGE(0x1c04, 0x1c04) AM_READ(input_port_3_r) - AM_RANGE(0x1c05, 0x1c05) AM_READ(input_port_4_r) - AM_RANGE(0x1c06, 0x1c06) AM_READ(input_port_5_r) - AM_RANGE(0x1c07, 0x1c07) AM_READ(input_port_6_r) - AM_RANGE(0x1c08, 0x1c08) AM_READ(input_port_7_r) - AM_RANGE(0x1c09, 0x1c09) AM_READ(input_port_8_r) - AM_RANGE(0x1c0a, 0x1c0a) AM_READ(input_port_9_r) - AM_RANGE(0x1c0b, 0x1c0b) AM_READ(input_port_10_r) - AM_RANGE(0x1c0f, 0x1c0f) AM_READ(input_port_11_r) - - AM_RANGE(0x1800, 0x1bff) AM_WRITE(tank8_video_ram_w) AM_BASE(&tank8_video_ram) - AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(MWA8_RAM) AM_BASE(&tank8_pos_h_ram) - AM_RANGE(0x1c10, 0x1c1f) AM_WRITE(MWA8_RAM) AM_BASE(&tank8_pos_v_ram) - AM_RANGE(0x1c20, 0x1c2f) AM_WRITE(MWA8_RAM) AM_BASE(&tank8_pos_d_ram) - - AM_RANGE(0x1c30, 0x1c37) AM_WRITE(tank8_lockout_w) - AM_RANGE(0x1d00, 0x1d00) AM_WRITE(tank8_int_reset_w) - AM_RANGE(0x1d01, 0x1d01) AM_WRITE(tank8_crash_w) - AM_RANGE(0x1d02, 0x1d02) AM_WRITE(tank8_explosion_w) - AM_RANGE(0x1d03, 0x1d03) AM_WRITE(tank8_bugle_w) - AM_RANGE(0x1d04, 0x1d04) AM_WRITE(tank8_bug_w) - AM_RANGE(0x1d05, 0x1d05) AM_WRITE(tank8_team_w) - AM_RANGE(0x1d06, 0x1d06) AM_WRITE(tank8_attract_w) - AM_RANGE(0x1e00, 0x1e07) AM_WRITE(tank8_motor_w) - -ADDRESS_MAP_END - - -INPUT_PORTS_START( tank8 ) - - PORT_START // 0 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(1) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - - PORT_START // 1 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(2) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - - PORT_START // 2 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(3) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(3) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(3) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(3) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - - PORT_START // 3 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(4) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(4) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(4) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(4) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - - PORT_START // 4 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN5 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(5) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(5) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(5) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(5) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(5) - - PORT_START // 5 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN6 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(6) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(6) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(6) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(6) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(6) - - PORT_START // 6 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN7 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(7) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(7) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(7) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(7) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(7) - - PORT_START // 7 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN8 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_2WAY PORT_PLAYER(8) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_2WAY PORT_PLAYER(8) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_2WAY PORT_PLAYER(8) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_2WAY PORT_PLAYER(8) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(8) - - /* play time is 4351 + N * 640 frames */ - - PORT_START // 8 - PORT_DIPNAME( 0x0f, 0x08, "Play Time" ) - PORT_DIPSETTING( 0x0f, "73 seconds" ) - PORT_DIPSETTING( 0x0e, "83 seconds" ) - PORT_DIPSETTING( 0x0d, "94 seconds" ) - PORT_DIPSETTING( 0x0c, "105 seconds" ) - PORT_DIPSETTING( 0x0b, "115 seconds" ) - PORT_DIPSETTING( 0x0a, "126 seconds" ) - PORT_DIPSETTING( 0x09, "137 seconds" ) - PORT_DIPSETTING( 0x08, "147 seconds" ) - PORT_DIPSETTING( 0x07, "158 seconds" ) - PORT_DIPSETTING( 0x06, "169 seconds" ) - PORT_DIPSETTING( 0x05, "179 seconds" ) - PORT_DIPSETTING( 0x04, "190 seconds" ) - PORT_DIPSETTING( 0x03, "201 seconds" ) - PORT_DIPSETTING( 0x02, "211 seconds" ) - PORT_DIPSETTING( 0x01, "222 seconds" ) - PORT_DIPSETTING( 0x00, "233 seconds" ) - PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START // 9 - PORT_DIPNAME( 0x01, 0x01, "Remote" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off )) - PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "Team" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "Remote Start" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "Remote Team" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BILL1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - - PORT_START // 10 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 1" ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 2" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 3" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 4" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 5" ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 6" ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 7" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME( "RC 8" ) - - PORT_START // 11 - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK ) - - PORT_START // 12 - PORT_ADJUSTER( 50, "Crash, Explosion Volume" ) - -INPUT_PORTS_END - - -static const gfx_layout tile_layout_1 = -{ - 16, 16, - 64, - 1, - { 0 }, - { - 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 - }, - { - 0x000, 0x000, 0x200, 0x200, 0x400, 0x400, 0x600, 0x600, - 0x800, 0x800, 0xa00, 0xa00, 0xc00, 0xc00, 0xe00, 0xe00 - }, - 8 -}; - - -static const gfx_layout tile_layout_2 = -{ - 16, 16, - 64, - 1, - { 0 }, - { - 0x000, 0x000, 0x200, 0x200, 0x400, 0x400, 0x600, 0x600, - 0x800, 0x800, 0xa00, 0xa00, 0xc00, 0xc00, 0xe00, 0xe00 - - }, - { - 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 - }, - 8 -}; - - -static const gfx_layout tank_layout = -{ - 16, 16, - 4, - 1, - { 0 }, - { - 0x07, 0x06, 0x05, 0x04, 0x0f, 0x0e, 0x0d, 0x0c, - 0x17, 0x16, 0x15, 0x14, 0x1f, 0x1e, 0x1d, 0x1c - }, - { - 0x000, 0x400, 0x020, 0x420, 0x040, 0x440, 0x060, 0x460, - 0x080, 0x480, 0x0a0, 0x4a0, 0x0c0, 0x4c0, 0x0e0, 0x4e0 - }, - 0x100 -}; - - -static const gfx_decode tank8_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &tile_layout_1, 0, 10 }, - { REGION_GFX1, 0, &tile_layout_2, 0, 10 }, - { REGION_GFX2, 0, &tank_layout, 0, 8 }, - { REGION_GFX3, 0, &tank_layout, 0, 8 }, - { -1 } -}; - - -static MACHINE_DRIVER_START( tank8 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M6800, 11055000 / 10) /* ? */ - MDRV_CPU_PROGRAM_MAP(tank8_cpu_map, 0) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(TIME_IN_USEC(30 * 1000000 / 15681)) - MDRV_MACHINE_RESET(tank8) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_UPDATE_AFTER_VBLANK) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) - MDRV_SCREEN_SIZE(512, 524) - MDRV_SCREEN_VISIBLE_AREA(16, 495, 0, 463) - MDRV_GFXDECODE(tank8_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(10) - MDRV_COLORTABLE_LENGTH(20) - - MDRV_PALETTE_INIT(tank8) - MDRV_VIDEO_START(tank8) - MDRV_VIDEO_UPDATE(tank8) - MDRV_VIDEO_EOF(tank8) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_MONO("mono") - - MDRV_SOUND_ADD_TAG("discrete", DISCRETE, 0) - MDRV_SOUND_CONFIG(tank8_discrete_interface) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_DRIVER_END - - -ROM_START( tank8a ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "5071.c1", 0x10400, 0x0800, CRC(8e756e9e) BAD_DUMP SHA1(02ba64cae708967c39070b7e96085f41ed381fd4) ) - ROM_LOAD( "5072.e1", 0x10c00, 0x0800, CRC(88d65e48) BAD_DUMP SHA1(377b3c9f838bd515f8ddb55feda44398e1922521) ) - ROM_RELOAD( 0x1f800, 0x0800 ) - ROM_LOAD( "5073.f1", 0x11400, 0x0200, CRC(deedbe7c) SHA1(686c498d4c87054e00a9cfc0588e49f72470e1f9) ) - ROM_LOAD( "5074.j1", 0x11600, 0x0200, CRC(e49098b4) SHA1(5019ab0d4f3cd22733a60f15a54e4b772f534430) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "5075.n6", 0x0000, 0x0200, CRC(2d6519b3) SHA1(3837687893d0fca683ff9b86b335a77d98fd4230) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) /* tanks #1 */ - ROM_LOAD( "5079.h5", 0x0000, 0x0100, CRC(5c32d471) SHA1(983c7f15ad3a50ab87157b6894b9c292358de5a1) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) /* tanks #2 */ - ROM_LOAD( "5078.j5", 0x0000, 0x0100, CRC(ab083245) SHA1(e084627a4a17dd274d31638c938a04aa5049359b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* decode PROMs */ - ROM_LOAD_NIB_LOW ( "5077.k1", 0x0000, 0x0100, CRC(343fc116) SHA1(ac9e95fc2a5dc115e8158d69482882072bea972b) ) - ROM_LOAD_NIB_HIGH( "5076.l1", 0x0000, 0x0100, CRC(4e1d9dad) SHA1(dc467914cbc8fd1add2d5e3b988e9596037b3a1e) ) -ROM_END - - -ROM_START( tank8b ) - ROM_REGION( 0x20000, REGION_CPU1, 0 ) - ROM_LOAD( "5071.c1", 0x10400, 0x0800, CRC(8e756e9e) BAD_DUMP SHA1(02ba64cae708967c39070b7e96085f41ed381fd4) ) - ROM_LOAD( "5072.e1", 0x10c00, 0x0800, CRC(88d65e48) BAD_DUMP SHA1(377b3c9f838bd515f8ddb55feda44398e1922521) ) - ROM_RELOAD( 0x1f800, 0x0800 ) - ROM_LOAD( "5764.f1", 0x11400, 0x0200, CRC(da4e81e0) SHA1(7e504b7064a8fed9dd7a6fe013f22427edc52384) ) - ROM_LOAD( "5765.j1", 0x11600, 0x0200, CRC(537e0c75) SHA1(b35db8d316cef9a2603b64868023e72e21d03143) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "5075.n6", 0x0000, 0x0200, CRC(2d6519b3) SHA1(3837687893d0fca683ff9b86b335a77d98fd4230) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) /* tanks #1 */ - ROM_LOAD( "5079.h5", 0x0000, 0x0100, CRC(5c32d471) SHA1(983c7f15ad3a50ab87157b6894b9c292358de5a1) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) /* tanks #2 */ - ROM_LOAD( "5078.j5", 0x0000, 0x0100, CRC(ab083245) SHA1(e084627a4a17dd274d31638c938a04aa5049359b) ) - - ROM_REGION( 0x0100, REGION_USER1, 0 ) /* decode PROMs */ - ROM_LOAD_NIB_LOW ( "5077.k1", 0x0000, 0x0100, CRC(343fc116) SHA1(ac9e95fc2a5dc115e8158d69482882072bea972b) ) - ROM_LOAD_NIB_HIGH( "5076.l1", 0x0000, 0x0100, CRC(4e1d9dad) SHA1(dc467914cbc8fd1add2d5e3b988e9596037b3a1e) ) -ROM_END - - -ROM_START( tank8c ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "a05071.c1", 0x0400, 0x0800, /* wrong revision */ CRC(2211fb2c) SHA1(6d44d1e9c94a7cb364c8809445c015a6510b8c5f) ) - ROM_LOAD( "a05072.e1", 0x0c00, 0x0800, CRC(d907b116) SHA1(290a77e6095d4ffc2365d784e74e115fe90617fb) ) - ROM_RELOAD( 0xf800, 0x0800 ) - ROM_LOAD( "a05473.f1", 0x1400, 0x0200, CRC(109020db) SHA1(c8517a09c1ff36a1b08c4a71acaae55dc48fc45b) ) - ROM_LOAD( "a05474.j1", 0x1600, 0x0200, CRC(64d8a386) SHA1(fdb6669762ddebbd775c66d67d82876428dfe009) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "5075.n6", 0x0000, 0x0200, CRC(2d6519b3) SHA1(3837687893d0fca683ff9b86b335a77d98fd4230) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) /* tanks #1 */ - ROM_LOAD( "5079.h5", 0x0000, 0x0100, CRC(5c32d471) SHA1(983c7f15ad3a50ab87157b6894b9c292358de5a1) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) /* tanks #2 */ - ROM_LOAD( "5078.j5", 0x0000, 0x0100, CRC(ab083245) SHA1(e084627a4a17dd274d31638c938a04aa5049359b) ) -ROM_END - - -ROM_START( tank8d ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "a05071.c1", 0x0400, 0x0800, /* wrong revision */ CRC(2211fb2c) SHA1(6d44d1e9c94a7cb364c8809445c015a6510b8c5f) ) - ROM_LOAD( "a05072.e1", 0x0c00, 0x0800, CRC(d907b116) SHA1(290a77e6095d4ffc2365d784e74e115fe90617fb) ) - ROM_RELOAD( 0xf800, 0x0800 ) - ROM_LOAD( "a05918.f1", 0x1400, 0x0200, CRC(c2fca931) SHA1(a5aea79ef560d4498ba38482260f49a09cfe59d6) ) - ROM_LOAD( "a05919.j1", 0x1600, 0x0200, CRC(47204dc0) SHA1(b602e26b615e5e8bb747e9bd3879e4b95d923dc1) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "5075.n6", 0x0000, 0x0200, CRC(2d6519b3) SHA1(3837687893d0fca683ff9b86b335a77d98fd4230) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) /* tanks #1 */ - ROM_LOAD( "5079.h5", 0x0000, 0x0100, CRC(5c32d471) SHA1(983c7f15ad3a50ab87157b6894b9c292358de5a1) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) /* tanks #2 */ - ROM_LOAD( "5078.j5", 0x0000, 0x0100, CRC(ab083245) SHA1(e084627a4a17dd274d31638c938a04aa5049359b) ) -ROM_END - - -ROM_START( tank8 ) - ROM_REGION( 0x10000, REGION_CPU1, 0 ) - ROM_LOAD( "b05475.c1", 0x0400, 0x0800, CRC(62a00e75) SHA1(58d80dc58bc2a4503348807db578348fc76a5349) ) - ROM_LOAD( "a05072.e1", 0x0c00, 0x0800, CRC(d907b116) SHA1(290a77e6095d4ffc2365d784e74e115fe90617fb) ) - ROM_RELOAD( 0xf800, 0x0800 ) - ROM_LOAD( "b05476.f1", 0x1400, 0x0200, CRC(98754edd) SHA1(56eb017bad9c29649573875a6b13189f2ba69b0e) ) - ROM_LOAD( "b05477.j1", 0x1600, 0x0200, CRC(5087223b) SHA1(fea032e6d0b3e0730a1180e57118e1765693f67e) ) - - ROM_REGION( 0x0200, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */ - ROM_LOAD( "5075.n6", 0x0000, 0x0200, CRC(2d6519b3) SHA1(3837687893d0fca683ff9b86b335a77d98fd4230) ) - - ROM_REGION( 0x0100, REGION_GFX2, ROMREGION_DISPOSE ) /* tanks #1 */ - ROM_LOAD( "5079.h5", 0x0000, 0x0100, CRC(5c32d471) SHA1(983c7f15ad3a50ab87157b6894b9c292358de5a1) ) - - ROM_REGION( 0x0100, REGION_GFX3, ROMREGION_DISPOSE ) /* tanks #2 */ - ROM_LOAD( "5078.j5", 0x0000, 0x0100, CRC(ab083245) SHA1(e084627a4a17dd274d31638c938a04aa5049359b) ) -ROM_END - - -static DRIVER_INIT( decode ) -{ - const UINT8* DECODE = memory_region(REGION_USER1); - - UINT8* p1 = memory_region(REGION_CPU1) + 0x00000; - UINT8* p2 = memory_region(REGION_CPU1) + 0x10000; - - int i; - - for (i = 0x0400; i <= 0x17ff; i++) - { - p1[i] = DECODE[p2[i]]; - } - for (i = 0xf800; i <= 0xffff; i++) - { - p1[i] = DECODE[p2[i]]; - } -} - - - GAME( 1976, tank8, 0, tank8, tank8, 0, ROT0, "Atari", "Tank 8 (set 1)", 0) -GAME( 1976, tank8a, tank8, tank8, tank8, decode, ROT0, "Atari", "Tank 8 (set 2)", GAME_NOT_WORKING ) -GAME( 1976, tank8b, tank8, tank8, tank8, decode, ROT0, "Atari", "Tank 8 (set 3)", GAME_NOT_WORKING ) -GAME( 1976, tank8c, tank8, tank8, tank8, 0, ROT0, "Atari", "Tank 8 (set 4)", GAME_NOT_WORKING ) -GAME( 1976, tank8d, tank8, tank8, tank8, 0, ROT0, "Atari", "Tank 8 (set 5)", GAME_NOT_WORKING ) diff --git a/src/drivers/tatsumi.c b/src/drivers/tatsumi.c deleted file mode 100644 index 62183d176..000000000 --- a/src/drivers/tatsumi.c +++ /dev/null @@ -1,992 +0,0 @@ -/*************************************************************************** - - Apache 3 ATF-011 - Round Up 5 ATC-011 - Cycle Warriors ABA-011 - - Incredibly complex hardware! These are all different boards, but share - a similar sprite chip (TZB215 on Apache 3, TZB315 on others). Other - graphics (road, sky, bg/fg layers) all differ between games. - - Todo: - Sprite rotation - Finish road layer (Round Up 5) - Implement road layer (Apache 3, Cycle Warriors) - BG layer(s) (Cycle Warriors) - BG layer (Round Up 5) - May be driven by missing VRAM data - Round Up 5 always boots with a coin inserted - Round Up 5 doesn't survive a reset - Dip switches - Various other things.. - - Emulation by Bryan McPhail, mish@tendril.co.uk - - - Cycle Warriors Board Layout - - ABA-011 - - - 6296 CW24A 5864 - CW25A 5864 - YM2151 50MHz - - TZ8315 CW26A - 5864 - TC51821 TC51832 D780C-1 - TC51821 TC51832 - TC51821 TC51832 16MHz - TC51821 TC51832 - - CW00A CW08A - CW01A CW09A - CW02A CW10A - CW03A CW11A 68000-12 81C78 - CW04A CW12A 81C78 - CW05A CW13A CW16B CW18B 65256 - CW06A CW14A CW17A CW19A 65256 - CW07A CW15A CW20A - CW21 65256 - 68000-12 CW22A 65256 - CW23 - - ABA-012 - - HD6445 - - - 51832 - 51832 - 51832 - 51832 - - CW28 - CW29 - CW30 - - CW27 - -***************************************************************************/ - -#include "driver.h" -#include "tatsumi.h" -#include "sound/2151intf.h" -#include "sound/okim6295.h" - -static UINT16 *cyclwarr_cpua_ram, *cyclwarr_cpub_ram; -UINT16 *tatsumi_c_ram, *apache3_g_ram; -UINT16 *roundup5_d0000_ram, *roundup5_e0000_ram; -UINT8 *tatsumi_rom_sprite_lookup1, *tatsumi_rom_sprite_lookup2; -UINT8 *tatsumi_rom_clut0, *tatsumi_rom_clut1; -UINT8 *roundup5_unknown0, *roundup5_unknown1, *roundup5_unknown2; -UINT8 *apache3_bg_ram; - -/***************************************************************************/ - -//static READ16_HANDLER(cyclwarr_cpu_b_r) { return cyclwarr_cpub_ram[offset+0x800]; } -//static WRITE16_HANDLER(cyclwarr_cpu_b_w){ COMBINE_DATA(&cyclwarr_cpub_ram[offset+0x800]); } -static READ16_HANDLER(cyclwarr_cpu_bb_r){ return cyclwarr_cpub_ram[offset]; } -static WRITE16_HANDLER(cyclwarr_cpu_bb_w) { COMBINE_DATA(&cyclwarr_cpub_ram[offset]); } -static READ16_HANDLER(cyclwarr_palette_r) { return paletteram16[offset]; } -static READ16_HANDLER(cyclwarr_sprite_r) { return spriteram16[offset]; } -static WRITE16_HANDLER(cyclwarr_sprite_w) { COMBINE_DATA(&spriteram16[offset]); } -static READ16_HANDLER(cyclwarr_input_r) { return readinputport(offset); } -static READ16_HANDLER(cyclwarr_input2_r) { return readinputport(offset+3); } - -/***************************************************************************/ - -static ADDRESS_MAP_START( readmem_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x07fff) AM_READ(MRA8_RAM) - AM_RANGE(0x08000, 0x08fff) AM_READ(MRA8_RAM) - AM_RANGE(0x0c000, 0x0dfff) AM_READ(MRA8_RAM) -// AM_RANGE(0x0e800, 0x0e803) AM_READ(MRA_NOP) // CRT - AM_RANGE(0x0f000, 0x0f000) AM_READ(input_port_3_r) // Dip 1 - AM_RANGE(0x0f001, 0x0f001) AM_READ(input_port_4_r) // Dip 2 - AM_RANGE(0x0f800, 0x0f801) AM_READ(apache3_bank_r) - AM_RANGE(0x10000, 0x1ffff) AM_READ(apache3_v30_v20_r) - AM_RANGE(0x20000, 0x2ffff) AM_READ(tatsumi_v30_68000_r) - AM_RANGE(0xa0000, 0xfffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x07fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x08000, 0x08fff) AM_WRITE(apache3_palette_w) AM_BASE(&paletteram) - AM_RANGE(0x0c000, 0x0dfff) AM_WRITE(roundup5_text_w) AM_BASE(&videoram) - AM_RANGE(0x0e800, 0x0e803) AM_WRITE(MWA8_NOP) // CRT - AM_RANGE(0x0f000, 0x0f001) AM_WRITE(MWA8_NOP) // todo - AM_RANGE(0x0f800, 0x0f801) AM_WRITE(apache3_bank_w) - AM_RANGE(0x10000, 0x1ffff) AM_WRITE(apache3_v30_v20_w) - AM_RANGE(0x20000, 0x23fff) AM_WRITE(tatsumi_v30_68000_w) - AM_RANGE(0xa0000, 0xfffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sub_readmem_apache3, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x80000, 0x83fff) AM_READ(MRA16_RAM) - AM_RANGE(0x90000, 0x93fff) AM_READ(MRA16_RAM) - AM_RANGE(0xd0000, 0xdffff) AM_READ(MRA16_RAM) - AM_RANGE(0xe0000, 0xe7fff) AM_READ(apache3_z80_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sub_writemem_apache3, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x80000, 0x83fff) AM_WRITE(MWA16_RAM) AM_BASE(&tatsumi_68k_ram) - AM_RANGE(0x90000, 0x93fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) - AM_RANGE(0x9a000, 0x9a1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE(&tatsumi_sprite_control_ram) - AM_RANGE(0xa0000, 0xa0001) AM_WRITE(apache3_a0000_w) - AM_RANGE(0xb0000, 0xb0001) AM_WRITE(apache3_irq_ack_w) //todo - z80 reset? - AM_RANGE(0xc0000, 0xc0001) AM_WRITE(MWA16_RAM) AM_BASE(&tatsumi_c_ram) - AM_RANGE(0xd0000, 0xdffff) AM_WRITE(MWA16_RAM) AM_BASE(&apache3_g_ram) - AM_RANGE(0xe0000, 0xe7fff) AM_WRITE(apache3_z80_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_iop_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x01fff) AM_READ(MRA8_RAM) - AM_RANGE(0x04000, 0x04003) AM_READ(MRA8_NOP) // piu select .. ? - AM_RANGE(0x06000, 0x06000) AM_READ(input_port_0_r) // esw - AM_RANGE(0x08001, 0x08001) AM_READ(tatsumi_hack_ym2151_r) //YM2151_status_port_0_r) - AM_RANGE(0x0a000, 0x0a000) AM_READ(tatsumi_hack_oki_r) //OKIM6295_status_0_r) - AM_RANGE(0x0e000, 0x0e000) AM_READ(apache3_adc_r) // adc - AM_RANGE(0xf0000, 0xfffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_iop_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x01fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x04000, 0x04003) AM_WRITE(MWA8_NOP) // piu select .. ? - AM_RANGE(0x08000, 0x08000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x08001, 0x08001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0x0a000, 0x0a000) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0x0e000, 0x0e007) AM_WRITE(apache3_adc_w) //adc select - AM_RANGE(0xf0000, 0xfffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_readmem_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x1fff) AM_READ(MRA8_RAM) - AM_RANGE(0x08000, 0x83ff) AM_READ(MRA8_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( z80_writemem_apache3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x1fff) AM_WRITE(MWA8_RAM) AM_BASE(&apache3_z80_ram) - AM_RANGE(0x08000, 0x83ff) AM_WRITE(MWA8_RAM) AM_BASE(&apache3_bg_ram) -ADDRESS_MAP_END - -/*****************************************************************/ - -static ADDRESS_MAP_START( readmem_roundup5, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x07fff) AM_READ(MRA8_RAM) - AM_RANGE(0x08000, 0x0bfff) AM_READ(MRA8_RAM) - AM_RANGE(0x0d000, 0x0d000) AM_READ(input_port_3_r) /* Dip 1 */ - AM_RANGE(0x0d001, 0x0d001) AM_READ(input_port_4_r) /* Dip 2 */ - AM_RANGE(0x0f000, 0x0ffff) AM_READ(MRA8_RAM) - AM_RANGE(0x10000, 0x1ffff) AM_READ(roundup_v30_z80_r) - AM_RANGE(0x20000, 0x2ffff) AM_READ(tatsumi_v30_68000_r) - AM_RANGE(0x30000, 0x3ffff) AM_READ(roundup5_vram_r) - AM_RANGE(0x80000, 0xfffff) AM_READ(MRA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_roundup5, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x00000, 0x07fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x08000, 0x0bfff) AM_WRITE(roundup5_text_w) AM_BASE(&videoram) - AM_RANGE(0x0c000, 0x0c003) AM_WRITE(roundup5_crt_w) - AM_RANGE(0x0d400, 0x0d40f) AM_WRITE(MWA8_RAM) AM_BASE(&roundup5_unknown0) - AM_RANGE(0x0d800, 0x0d801) AM_WRITE(MWA8_RAM) AM_BASE(&roundup5_unknown1) // VRAM2 X scroll (todo) - AM_RANGE(0x0dc00, 0x0dc01) AM_WRITE(MWA8_RAM) AM_BASE(&roundup5_unknown2) // VRAM2 Y scroll (todo) - AM_RANGE(0x0e000, 0x0e001) AM_WRITE(roundup5_control_w) - AM_RANGE(0x0f000, 0x0ffff) AM_WRITE(roundup5_palette_w) AM_BASE(&paletteram) - AM_RANGE(0x10000, 0x1ffff) AM_WRITE(roundup_v30_z80_w) - AM_RANGE(0x20000, 0x23fff) AM_WRITE(tatsumi_v30_68000_w) - AM_RANGE(0x30000, 0x3ffff) AM_WRITE(roundup5_vram_w) - AM_RANGE(0x80000, 0xfffff) AM_WRITE(MWA8_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_roundup5_sub, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x7ffff) AM_READ(MRA16_ROM) - AM_RANGE(0x80000, 0x83fff) AM_READ(MRA16_RAM) - AM_RANGE(0x90000, 0x93fff) AM_READ(MRA16_RAM) - AM_RANGE(0xa0000, 0xa0fff) AM_READ(MRA16_RAM) - AM_RANGE(0xb0000, 0xb0fff) AM_READ(MRA16_RAM) - AM_RANGE(0xc0000, 0xc0fff) AM_READ(MRA16_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_roundup5_sub, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x00000, 0x7ffff) AM_WRITE(MWA16_ROM) - AM_RANGE(0x80000, 0x83fff) AM_WRITE(MWA16_RAM) AM_BASE(&tatsumi_68k_ram) - AM_RANGE(0x90000, 0x93fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) - AM_RANGE(0x9a000, 0x9a1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE(&tatsumi_sprite_control_ram) - AM_RANGE(0xa0000, 0xa0fff) AM_WRITE(MWA16_RAM) AM_BASE(&roundup_r_ram) // Road control data - AM_RANGE(0xb0000, 0xb0fff) AM_WRITE(MWA16_RAM) AM_BASE(&roundup_p_ram) // Road pixel data - AM_RANGE(0xc0000, 0xc0fff) AM_WRITE(MWA16_RAM) AM_BASE(&roundup_l_ram) // Road colour data - AM_RANGE(0xd0002, 0xd0003) AM_WRITE(roundup5_d0000_w) AM_BASE(&roundup5_d0000_ram) - AM_RANGE(0xe0000, 0xe0001) AM_WRITE(roundup5_e0000_w) AM_BASE(&roundup5_e0000_ram) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_roundup5_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xffef) AM_READ(MRA8_RAM) // maybe less than this... - AM_RANGE(0xfff1, 0xfff1) AM_READ(tatsumi_hack_ym2151_r) //YM2151_status_port_0_r) - AM_RANGE(0xfff4, 0xfff4) AM_READ(tatsumi_hack_oki_r) //OKIM6295_status_0_r) - AM_RANGE(0xfff8, 0xfff8) AM_READ(input_port_0_r) - AM_RANGE(0xfff9, 0xfff9) AM_READ(input_port_1_r) - AM_RANGE(0xfffc, 0xfffc) AM_READ(input_port_2_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_roundup5_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xffef) AM_WRITE(MWA8_RAM) - AM_RANGE(0xfff0, 0xfff0) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xfff1, 0xfff1) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xfff4, 0xfff4) AM_WRITE(OKIM6295_data_0_w) - - AM_RANGE(0xfff9, 0xfff9) AM_WRITE(MWA8_NOP) //irq ack? - AM_RANGE(0xfffa, 0xfffa) AM_WRITE(MWA8_NOP) //irq ack? -ADDRESS_MAP_END - -/******************************************************************************/ - -static ADDRESS_MAP_START( readmem_cyclwarr_a, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x03e000, 0x03efff) AM_READ(MRA16_RAM) - AM_RANGE(0x040000, 0x043fff) AM_READ(cyclwarr_cpu_bb_r) - AM_RANGE(0x080000, 0x08ffff) AM_READ(cyclwarr_videoram2_r) - AM_RANGE(0x090000, 0x09ffff) AM_READ(cyclwarr_videoram_r) - AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) //b9008 - dips - // ba000 + ba002 - dips - AM_RANGE(0x0ba000, 0x0ba003) AM_READ(cyclwarr_input2_r) //temp - AM_RANGE(0x0ba004, 0x0ba007) AM_READ(cyclwarr_input2_r) - AM_RANGE(0x0ba008, 0x0ba009) AM_READ(cyclwarr_control_r) - AM_RANGE(0x0c0000, 0x0c3fff) AM_READ(cyclwarr_sprite_r) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) - AM_RANGE(0x140000, 0x1bffff) AM_READ(MRA16_BANK2) /* CPU B ROM */ - AM_RANGE(0x2c0000, 0x33ffff) AM_READ(MRA16_BANK1) /* CPU A ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cyclwarr_a, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00dfff) AM_WRITE(MWA16_RAM) AM_BASE(&cyclwarr_cpua_ram) - AM_RANGE(0x00e000, 0x00ffff) AM_WRITE(MWA16_RAM) AM_BASE(&videoram16) - AM_RANGE(0x03e000, 0x03efff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x040000, 0x043fff) AM_WRITE(cyclwarr_cpu_bb_w) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(cyclwarr_videoram2_w) AM_BASE(&cyclwarr_videoram2) - AM_RANGE(0x090000, 0x09ffff) AM_WRITE(cyclwarr_videoram_w) AM_BASE(&cyclwarr_videoram) - AM_RANGE(0x0ba008, 0x0ba009) AM_WRITE(cyclwarr_control_w) - AM_RANGE(0x0c0000, 0x0c3fff) AM_WRITE(cyclwarr_sprite_w) AM_BASE(&spriteram16) - AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE(&tatsumi_sprite_control_ram) - AM_RANGE(0x0d0000, 0x0d3fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_cyclwarr_b, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(MRA16_RAM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(cyclwarr_videoram2_r) - AM_RANGE(0x090000, 0x09ffff) AM_READ(cyclwarr_videoram_r) - AM_RANGE(0x0c0000, 0x0c3fff) AM_READ(cyclwarr_sprite_r) - AM_RANGE(0x0d0000, 0x0d3fff) AM_READ(cyclwarr_palette_r) - AM_RANGE(0x140000, 0x1bffff) AM_READ(MRA16_BANK2) - AM_RANGE(0x2c0000, 0x33ffff) AM_READ(MRA16_BANK1) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cyclwarr_b, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00dfff) AM_WRITE(MWA16_RAM) AM_BASE(&cyclwarr_cpub_ram) - AM_RANGE(0x00e000, 0x00ffff) AM_WRITE(MWA16_RAM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(cyclwarr_videoram2_w) - AM_RANGE(0x090000, 0x09ffff) AM_WRITE(cyclwarr_videoram_w) - AM_RANGE(0x0c0000, 0x0c3fff) AM_WRITE(cyclwarr_sprite_w) - AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) - AM_RANGE(0x0d0000, 0x0d3fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_cyclwarr_c, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_READ(MRA8_ROM) - AM_RANGE(0xe000, 0xffef) AM_READ(MRA8_RAM) // maybe less than this... - AM_RANGE(0xfff1, 0xfff1) AM_READ(tatsumi_hack_ym2151_r) //YM2151_status_port_0_r) - AM_RANGE(0xfff4, 0xfff4) AM_READ(tatsumi_hack_oki_r) // OKIM6295_status_0_r) - AM_RANGE(0xfff8, 0xfff8) AM_READ(input_port_0_r) - AM_RANGE(0xfff9, 0xfff9) AM_READ(input_port_1_r) -// AM_RANGE(0xfffa, 0xfffa) AM_READ(input_port_0_r)// MRA_NOP) //irq ack??? - AM_RANGE(0xfffc, 0xfffc) AM_READ(input_port_2_r)// MRA_NOP) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_cyclwarr_c, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xdfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xe000, 0xffef) AM_WRITE(MWA8_RAM) - AM_RANGE(0xfff0, 0xfff0) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0xfff1, 0xfff1) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xfff4, 0xfff4) AM_WRITE(OKIM6295_data_0_w) - AM_RANGE(0xfff9, 0xfff9) AM_WRITE(MWA8_NOP) //irq ack? - AM_RANGE(0xfffa, 0xfffa) AM_WRITE(MWA8_NOP) //irq ack? -ADDRESS_MAP_END - -/******************************************************************************/ - -INPUT_PORTS_START( apache3 ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Trigger" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Power" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Missile" ) - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") - PORT_DIPSETTING( 0x00, "3" ) - PORT_DIPSETTING( 0x01, "4" ) - PORT_DIPSETTING( 0x02, "5" ) - PORT_DIPSETTING( 0x03, "6" ) - PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:3,4") - PORT_DIPSETTING( 0x04, DEF_STR( Easy ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) - PORT_DIPSETTING( 0x0c, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6") /* Listed as "Always On" */ - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7") /* Listed as "Not Used" */ - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8") /* Listed as "Always On" */ - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - - PORT_START - PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3") - PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) - PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x07, DEF_STR( 3C_2C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) ) - PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) ) - PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") /* Manual only shows a 3-Way dip box, so 4-8 are unknown */ - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Test ) ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( roundup5 ) - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("Accelerator") - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Brake") - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("Shift") - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("Turbo") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( DEF_STR( Service_Mode )) PORT_CODE(KEYCODE_F2) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME(DEF_STR(Free_Play)) PORT_TOGGLE - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("Extra 2") PORT_TOGGLE - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("Extra 3") PORT_TOGGLE - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("Extra 4") PORT_TOGGLE - - PORT_START - PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_PLAYER(1) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Language ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Japanese ) ) - PORT_DIPSETTING( 0x00, DEF_STR( English ) ) - PORT_DIPNAME( 0x40, 0x00, "Stage 5 Continue" ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, "Output Mode" ) - PORT_DIPSETTING( 0x00, "A" ) - PORT_DIPSETTING( 0x80, "B" ) - - PORT_START - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Test ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -INPUT_PORTS_START( cyclwarr ) - PORT_START - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 ) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START3 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3) - - PORT_START - PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START4 ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) - PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4) - PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_BUTTON4 ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_BUTTON4 ) - - PORT_START - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_BUTTON4 ) -INPUT_PORTS_END - -/******************************************************************************/ - -static const gfx_layout roundup5_charlayout = -{ - 8,8, /* 16*16 sprites */ - RGN_FRAC(1,1), /* 4096 sprites */ - 4, /* 4 bits per pixel */ - { 0, 1, 2, 3 }, - { 8,12,0,4, 24,28, 16,20}, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32}, - 32*8 /* every sprite takes 32 consecutive bytes */ -}; - -static const gfx_layout cyclwarr_charlayout = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3)}, - { 0, 1, 2, 3, 4, 5, 6, 7}, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, - 8*8 -}; -static const gfx_layout cyclwarr_charlayout2 = -{ - 8,8, - RGN_FRAC(1,3), - 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3)}, - { 0, 1, 2, 3, 4, 5, 6, 7}, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, - 8*8 -}; -static const gfx_layout roundup5_vramlayout = -{ - 8,8, - 4096 + 2048, - 3, - { 0x30000 * 8, 0x18000 * 8, 0 }, - { 0, 1, 2, 3, 4, 5, 6, 7}, - { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16}, - 8*16 -}; - -static const gfx_decode gfxdecodeinfo_apache3[] = -{ - { REGION_GFX1, 0, &roundup5_charlayout, 1024, 128}, - { REGION_GFX4, 0, &cyclwarr_charlayout, 768, 16}, - { -1 } /* end of array */ -}; - -static const gfx_decode roundup5_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &roundup5_charlayout, 1024, 256}, - { 0, 0, &roundup5_vramlayout, 0, 16}, - { -1 } /* end of array */ -}; - -static const gfx_decode cyclwarr_gfxdecodeinfo[] = -{ - { REGION_GFX1, 0, &roundup5_charlayout, 8192, 512}, - { REGION_GFX5, 0, &cyclwarr_charlayout, 0, 512}, - { REGION_GFX5, 0, &cyclwarr_charlayout2, 0, 512}, - { -1 } /* end of array */ -}; - -/******************************************************************************/ - -static void sound_irq(int state) -{ - cpunum_set_input_line(2, INPUT_LINE_IRQ0, state); -} - -static struct YM2151interface ym2151_interface = -{ - sound_irq -}; - -static INTERRUPT_GEN( roundup5_interrupt ) -{ - cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, 0xc8/4); /* VBL */ -} - -static MACHINE_DRIVER_START( apache3 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,20000000 / 2) /* NEC V30 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(readmem_apache3,writemem_apache3) - MDRV_CPU_VBLANK_INT(roundup5_interrupt,1) - - MDRV_CPU_ADD(M68000,20000000 / 2) /* 68000 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(sub_readmem_apache3,sub_writemem_apache3) - - MDRV_CPU_ADD(V20, 8000000) //??? - MDRV_CPU_PROGRAM_MAP(readmem_iop_apache3,writemem_iop_apache3) - - MDRV_CPU_ADD(Z80, 8000000) //??? - MDRV_CPU_PROGRAM_MAP(z80_readmem_apache3,z80_writemem_apache3) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(gfxdecodeinfo_apache3) - MDRV_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ - - MDRV_VIDEO_START(apache3) - MDRV_VIDEO_UPDATE(apache3) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 16000000/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.45) - MDRV_SOUND_ROUTE(1, "right", 0.45) - - MDRV_SOUND_ADD(OKIM6295, 20000000/8) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.75) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( roundup5 ) - - /* basic machine hardware */ - MDRV_CPU_ADD(V30,20000000 / 2) /* NEC V30 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(readmem_roundup5,writemem_roundup5) - MDRV_CPU_VBLANK_INT(roundup5_interrupt,1) - - MDRV_CPU_ADD(M68000,20000000 / 2) /* 68000 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(readmem_roundup5_sub,writemem_roundup5_sub) - - MDRV_CPU_ADD(Z80, 4000000) //??? - MDRV_CPU_PROGRAM_MAP(readmem_roundup5_sound,writemem_roundup5_sound) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(100) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MDRV_GFXDECODE(roundup5_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ - - MDRV_VIDEO_START(roundup5) - MDRV_VIDEO_UPDATE(roundup5) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 16000000/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.45) - MDRV_SOUND_ROUTE(1, "right", 0.45) - - MDRV_SOUND_ADD(OKIM6295, 20000000/8) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.75) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.75) -MACHINE_DRIVER_END - -static MACHINE_DRIVER_START( cyclwarr ) - - /* basic machine hardware */ - MDRV_CPU_ADD(M68000,20000000 / 2) /* NEC V30 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(readmem_cyclwarr_a,writemem_cyclwarr_a ) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(M68000,20000000 / 2) /* 68000 CPU, 20MHz / 2 */ - MDRV_CPU_PROGRAM_MAP(readmem_cyclwarr_b,writemem_cyclwarr_b) - MDRV_CPU_VBLANK_INT(irq5_line_hold,1) - - MDRV_CPU_ADD(Z80, 4000000) //??? - MDRV_CPU_PROGRAM_MAP(readmem_cyclwarr_c,writemem_cyclwarr_c) - - MDRV_SCREEN_REFRESH_RATE(60) - MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION) - MDRV_INTERLEAVE(200) - - /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER ) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MDRV_SCREEN_SIZE(40*8, 32*8) - MDRV_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MDRV_GFXDECODE(cyclwarr_gfxdecodeinfo) - MDRV_PALETTE_LENGTH(8192 + 8192) //todo - - MDRV_VIDEO_START(cyclwarr) - MDRV_VIDEO_UPDATE(cyclwarr) - - /* sound hardware */ - MDRV_SPEAKER_STANDARD_STEREO("left", "right") - - MDRV_SOUND_ADD(YM2151, 16000000/4) - MDRV_SOUND_CONFIG(ym2151_interface) - MDRV_SOUND_ROUTE(0, "left", 0.45) - MDRV_SOUND_ROUTE(1, "right", 0.45) - - MDRV_SOUND_ADD(OKIM6295, 20000000/8) - MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.75) - MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.75) -MACHINE_DRIVER_END - -/***************************************************************************/ - -ROM_START( apache3 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* v30 main cpu */ - ROM_LOAD16_BYTE( "ap-25f.125", 0x0a0001, 0x10000, CRC(3c7530f4) SHA1(9f7b58a3abddbdc3081ba9dfc1732406eb8c1752) ) - ROM_LOAD16_BYTE( "ap-26f.133", 0x0a0000, 0x10000, CRC(2955997f) SHA1(86e37def923d9cf4eb33e7979118ec6f1ef62678) ) - ROM_LOAD16_BYTE( "ap-23f.110", 0x0e0001, 0x10000, CRC(d7077149) SHA1(b08f5a9ee03641c20bdd5e5c9671a22c740150c6) ) - ROM_LOAD16_BYTE( "ap-24f.118", 0x0e0000, 0x10000, CRC(0bdef11b) SHA1(ed687600962ed2ca3a8e67cbd84fa5486778eade) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 sub cpu */ - ROM_LOAD16_BYTE( "ap-19c.80", 0x000001, 0x10000, CRC(0908e468) SHA1(a2d725993bd4cd5425468736154fd3dd9dd7b060) ) - ROM_LOAD16_BYTE( "ap-21c.97", 0x000000, 0x10000, CRC(38a056fb) SHA1(67c8ae58670cebde0771854e1fb5fc2eb2543ecc) ) - ROM_LOAD16_BYTE( "ap-20a.89", 0x040001, 0x20000, CRC(92d24b5e) SHA1(1ea270d46a607e47b7e0961b532316aa05dc8f4e) ) - ROM_LOAD16_BYTE( "ap-22a.105", 0x040000, 0x20000, CRC(a8458a92) SHA1(43674731c2e9962c2bfbb73a85484cf03d6be223) ) - - ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* 64k code for sound V20 */ - ROM_LOAD( "ap-27d.151", 0x0f0000, 0x10000, CRC(294b4d79) SHA1(2b03418a12a2aaf3919b98161d8d0ce6ae29a2bb) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - /* Filled in by both regions below */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ap-00c.15", 0x000000, 0x20000, CRC(ad1ddc2b) SHA1(81f64663c4892ab5fb0e2dc99513dbfee73f15b8) ) - ROM_LOAD32_BYTE( "ap-01c.22", 0x000001, 0x20000, CRC(6286ff00) SHA1(920da4a3a441dbf54ad86c0f4fb6f47a867e9cda) ) - ROM_LOAD32_BYTE( "ap-04c.58", 0x000002, 0x20000, CRC(dc6d55e4) SHA1(9f48f8d6aa1a329a71913139a8d5a50d95a9b9e5) ) - ROM_LOAD32_BYTE( "ap-05c.65", 0x000003, 0x20000, CRC(2e6e495f) SHA1(af610f265da53735b20ddc6df1bda47fc54ee0c3) ) - ROM_LOAD32_BYTE( "ap-02c.34", 0x080000, 0x20000, CRC(af4ee7cb) SHA1(4fe2361b7431971b07671f145abf1ea5861d01db) ) - ROM_LOAD32_BYTE( "ap-03c.46", 0x080001, 0x20000, CRC(60ab495c) SHA1(18340d4fba550495b1e52f8023a0a2ec6349dfeb) ) - ROM_LOAD32_BYTE( "ap-06c.71", 0x080002, 0x20000, CRC(0ea90e55) SHA1(b16d6b8be4853797507d3e5c933a9dd1d451308e) ) - ROM_LOAD32_BYTE( "ap-07c.75", 0x080003, 0x20000, CRC(ba685543) SHA1(140a2b708d4e4de4d207fc2c4a96a5cab8639988) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ap-08c.14", 0x000000, 0x20000, CRC(6437b580) SHA1(2b2ba42add18bbec04fbcf53645a8d44b972e26a) ) - ROM_LOAD32_BYTE( "ap-09c.21", 0x000001, 0x20000, CRC(54d18ef9) SHA1(40ebc6ea49b2a501fe843d60bec8c32d07f2d25d) ) - ROM_LOAD32_BYTE( "ap-12c.57", 0x000002, 0x20000, CRC(f95cf5cf) SHA1(ce373c648cbf3e4863bbc3a1175efe065c75eb13) ) - ROM_LOAD32_BYTE( "ap-13c.64", 0x000003, 0x20000, CRC(67a248c3) SHA1(cc945f7cfecaaab5075c1a3d202369b070d4c656) ) - ROM_LOAD32_BYTE( "ap-10c.33", 0x080000, 0x20000, CRC(74418df4) SHA1(cc1206b10afc2de919b2fb9899486122d27290a4) ) - ROM_LOAD32_BYTE( "ap-11c.45", 0x080001, 0x20000, CRC(195bf78e) SHA1(c3c472f3c4244545b89491b6ebec4f838a6bbb73) ) - ROM_LOAD32_BYTE( "ap-14c.70", 0x080002, 0x20000, CRC(58f7fe16) SHA1(a5b87b42b85808c226df0d2a7b7cdde12d474a41) ) - ROM_LOAD32_BYTE( "ap-15c.74", 0x080003, 0x20000, CRC(1ffd5496) SHA1(25efb568957fc9441a40a7d64cc6afe1a14b392b) ) - - ROM_REGION( 0x18000, REGION_GFX4, ROMREGION_DISPOSE ) - ROM_LOAD( "ap-18d.73", 0x000000, 0x8000, CRC(55e664bf) SHA1(505bec8b5ff3f9fa2c5fb1213d54683347905be1) ) - ROM_LOAD( "ap-17d.68", 0x008000, 0x8000, CRC(6199afe4) SHA1(ad8c0ed6c33d984bb29c89f2e7fc7e5a923cefe3) ) - ROM_LOAD( "ap-16d.63", 0x010000, 0x8000, CRC(f115656d) SHA1(61798858dc0172192d89e666696b2c7642756899) ) - - ROM_REGION( 0x30000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "ap-28c.171", 0x000000, 0x20000, CRC(b349f0c2) SHA1(cb1ff1c0e784f669c87ab1eccd3b358950761b74) ) - ROM_LOAD( "ap-29c.176", 0x020000, 0x10000, CRC(b38fced3) SHA1(72f61a719f393957bcccf14687bfbb2e7a5f7aee) ) -ROM_END - -ROM_START( roundup5 ) - ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* v30 main cpu */ - ROM_LOAD16_BYTE( "ru-23s", 0x080000, 0x20000, CRC(2dc8c521) SHA1(b78de101db3ef00fc4375ae32a7871e0da2dac6c) ) - ROM_LOAD16_BYTE( "ru-26s", 0x080001, 0x20000, CRC(1e16b531) SHA1(d7badef29cf1c4a9bd262933ecd1ca3343ea94bd) ) - ROM_LOAD16_BYTE( "ru-22t", 0x0c0000, 0x20000, CRC(9611382e) SHA1(c99258782dbad6d69ba7f54115ee3aa218f9b6ee) ) - ROM_LOAD16_BYTE( "ru-25t", 0x0c0001, 0x20000, CRC(b6cd0f2d) SHA1(61925c2346d79baaf9bce3d19a7dfc45b8232f92) ) - - ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 68000 sub cpu */ - ROM_LOAD16_BYTE( "ru-20s", 0x000000, 0x20000, CRC(c5524558) SHA1(a94e7e4548148c83a332524ab4e06607732e13d5) ) - ROM_LOAD16_BYTE( "ru-18s", 0x000001, 0x20000, CRC(163ef03d) SHA1(099ac2d74164bdc6402b08efb521f49275780858) ) - ROM_LOAD16_BYTE( "ru-24s", 0x040000, 0x20000, CRC(b9f91b70) SHA1(43c5d9dafb60ed3e5c3eb0e612c2dbc5497f8a6c) ) - ROM_LOAD16_BYTE( "ru-19s", 0x040001, 0x20000, CRC(e3953800) SHA1(28fbc6bf154b512fcefeb04fe12db598b1b20cfe) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k code for sound Z80 */ - ROM_LOAD( "ru-28d", 0x000000, 0x10000, CRC(df36c6c5) SHA1(c046482043f6b54c55696ba3d339ffb11d78f674) ) - - ROM_REGION( 0x180000, REGION_GFX1, ROMREGION_DISPOSE ) - /* Filled in by both regions below */ - - ROM_REGION( 0x0c0000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ru-00b", 0x000000, 0x20000, CRC(388a0647) SHA1(e4ab43832872f44c0fe1aaede4372cc00ca7d32b) ) - ROM_LOAD32_BYTE( "ru-02b", 0x000001, 0x20000, CRC(eff33945) SHA1(3f4c3aaa11ccf945c2f898dfdf815705d8539e21) ) - ROM_LOAD32_BYTE( "ru-04b", 0x000002, 0x20000, CRC(40fda247) SHA1(f5fbc07fda024baedf35ac209210e94df9f15065) ) - ROM_LOAD32_BYTE( "ru-06b", 0x000003, 0x20000, CRC(cd2484f3) SHA1(a23a4d36a8b913104bcc75228317b2979afec888) ) - ROM_LOAD32_BYTE( "ru-01b", 0x080000, 0x10000, CRC(5e91f401) SHA1(df976c5ba0f14b14f5642b5ca35b996bca64e369) ) - ROM_LOAD32_BYTE( "ru-03b", 0x080001, 0x10000, CRC(2fb109de) SHA1(098c103e6bae0f52ec66f0cdda2da60bd7108736) ) - ROM_LOAD32_BYTE( "ru-05b", 0x080002, 0x10000, CRC(23dd10e1) SHA1(f30ff1a8c7ed9bc567b901cbdd202028fffb9f80) ) - ROM_LOAD32_BYTE( "ru-07b", 0x080003, 0x10000, CRC(bb40f46e) SHA1(da694e16d19f60a0dee47551f00f3e50b2d5dcaf) ) - - ROM_REGION( 0x0c0000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "ru-08b", 0x000000, 0x20000, CRC(01729e3c) SHA1(1445287fde0b993d053aab73efafc902a6b7e2cc) ) - ROM_LOAD32_BYTE( "ru-10b", 0x000001, 0x20000, CRC(cd2357a7) SHA1(313460a74244325ce2c659816f2b738f3dc5358a) ) - ROM_LOAD32_BYTE( "ru-12b", 0x000002, 0x20000, CRC(ca63b1f8) SHA1(a50ef8259745dc166eb0a1b2c812ff620818a755) ) - ROM_LOAD32_BYTE( "ru-14b", 0x000003, 0x20000, CRC(dde79bfc) SHA1(2d5888189a6f954801f248a3365e328370fed837) ) - ROM_LOAD32_BYTE( "ru-09b", 0x080000, 0x10000, CRC(629ac0a6) SHA1(c3eeccd6c07be7455cf180c9c7d5efcd6d08c0b5) ) - ROM_LOAD32_BYTE( "ru-11b", 0x080001, 0x10000, CRC(fe3fbf53) SHA1(7400c088025ac22e5d9db816792533fc02f2dcf5) ) - ROM_LOAD32_BYTE( "ru-13b", 0x080002, 0x10000, CRC(d0f6e747) SHA1(ef15ed41124b2d37bc6e92254138690dd644e50f) ) - ROM_LOAD32_BYTE( "ru-15b", 0x080003, 0x10000, CRC(6ee6b22e) SHA1(a28edaf23ca6c7231264de962d5ea37bad39f996) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "ru-17b", 0x000000, 0x20000, CRC(82391b47) SHA1(6b1977522c6e906503abc50bdd24c4c38cdc9bdb) ) - ROM_LOAD( "ru-16e", 0x020000, 0x10000, CRC(374fe170) SHA1(5d190a2735698b0384948bfdb1a900f56f0d7ebc) ) -ROM_END - -ROM_START( cyclwarr ) - ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* 68000 main cpu */ - ROM_LOAD16_BYTE( "cw16b", 0x100000, 0x20000, CRC(cb1a737a) SHA1(a603ee1256be5641d00a72f64efaaacb65ed9d7d) ) - ROM_LOAD16_BYTE( "cw18b", 0x100001, 0x20000, CRC(0633ddcb) SHA1(1196ab17065352ec5b37f2f6b383a43a2d0fa3a6) ) - ROM_LOAD16_BYTE( "cw17a", 0x140000, 0x20000, CRC(2ad6f836) SHA1(5fa4275b433013943ba1d1b64a3c725097f946f9) ) - ROM_LOAD16_BYTE( "cw19a", 0x140001, 0x20000, CRC(d3853658) SHA1(c9338083a04f55bd22285176831f4b0bdb78564f) ) - - ROM_REGION( 0x180000, REGION_CPU2, 0 ) /* 68000 sub cpu */ - ROM_LOAD16_BYTE( "cw20a", 0x100000, 0x20000, CRC(c3578ac1) SHA1(21d369da874f01922d0f0b757a42b4321df891d4) ) - ROM_LOAD16_BYTE( "cw22a", 0x100001, 0x20000, CRC(5339ed24) SHA1(5b0a54c2442dcf7373ff8b55b91af9772473ff77) ) - ROM_LOAD16_BYTE( "cw21", 0x140000, 0x20000, CRC(ed90d956) SHA1(f533f93da31ac6eb631fb506357717e7cac8e186) ) - ROM_LOAD16_BYTE( "cw23", 0x140001, 0x20000, CRC(009cdc78) SHA1(a77933a7736546397e8c69226703d6f9be7b55e5) ) - - ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 64k code for sound Z80 */ - ROM_LOAD( "cw26a", 0x000000, 0x10000, CRC(f7a70e3a) SHA1(5581633bf1f15d7f5c1e03de897d65d60f9f1e33) ) - - ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) - /* Filled in by both regions below */ - - ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "cw00a", 0x000000, 0x20000, CRC(058a77f1) SHA1(93f99fcf6ce6714d76af6f6e930115516f0379d3) ) - ROM_LOAD32_BYTE( "cw08a", 0x000001, 0x20000, CRC(f53993e7) SHA1(ef2d502ab180d2bc0bdb698c2878fdee9a2c33a8) ) - ROM_LOAD32_BYTE( "cw02a", 0x000002, 0x20000, CRC(4dadf3cb) SHA1(e42c56e295a443cb605d48eba23a16fab3c86525) ) - ROM_LOAD32_BYTE( "cw10a", 0x000003, 0x20000, CRC(3b7cd251) SHA1(52b9637404fa193421294dfb52c1a7bba0d94c9b) ) - ROM_LOAD32_BYTE( "cw01a", 0x080000, 0x20000, CRC(7c639948) SHA1(d58ff5735cd3179ffafead385a625baa7962e1d0) ) - ROM_LOAD32_BYTE( "cw09a", 0x080001, 0x20000, CRC(4ba24af5) SHA1(9203c2639e04aaa09996339f11259750ff8129b9) ) - ROM_LOAD32_BYTE( "cw03a", 0x080002, 0x20000, CRC(3ca6f98e) SHA1(8526fe38d3b4c66e09049ba18651a9e7255d85d6) ) - ROM_LOAD32_BYTE( "cw11a", 0x080003, 0x20000, CRC(5d760392) SHA1(7bbda2880af4659c267193ce10ed887a1b54a981) ) - - ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE ) - ROM_LOAD32_BYTE( "cw04a", 0x000000, 0x20000, CRC(f05f594d) SHA1(80effaa517b2154c013419e0bc05fd0797b74c8d) ) - ROM_LOAD32_BYTE( "cw12a", 0x000001, 0x20000, CRC(4ac07e8b) SHA1(f9de96fba39d5752d61b8f6be87fb605694624ed) ) - ROM_LOAD32_BYTE( "cw06a", 0x000002, 0x20000, CRC(f628edc9) SHA1(473f7ec28000e6bf72782c1c3f4afb5e021bd430) ) - ROM_LOAD32_BYTE( "cw14a", 0x000003, 0x20000, CRC(a9131f5f) SHA1(3a2059946984733e6939f3298f0db676e6a3301b) ) - ROM_LOAD32_BYTE( "cw05a", 0x080000, 0x20000, CRC(c8f5faa9) SHA1(f374531ffd645597eeb1440fd2cadb426fcd3d79) ) - ROM_LOAD32_BYTE( "cw13a", 0x080001, 0x20000, CRC(8091d381) SHA1(7faf068ce20b2877559f0335df55d61be13146b4) ) - ROM_LOAD32_BYTE( "cw07a", 0x080002, 0x20000, CRC(314579b5) SHA1(3c10ec490f7821a5b5412295232bbb104d0e4b83) ) - ROM_LOAD32_BYTE( "cw15a", 0x080003, 0x20000, CRC(7ed4b721) SHA1(b87865effeff77a9ea74354ef2b5911a5102a647) ) - - ROM_REGION( 0x20000, REGION_GFX4, 0 ) - ROM_LOAD( "cw27", 0x000000, 0x20000, CRC(2db48a9e) SHA1(16c307340d17cd3b5455ebcee681fbe0335dec58) ) - - ROM_REGION( 0x60000, REGION_GFX5, ROMREGION_DISPOSE ) - ROM_LOAD( "cw28", 0x000000, 0x20000, CRC(3fc568ed) SHA1(91125c9deddc659449ca6791a847fe908c2818b2) ) - ROM_LOAD( "cw29", 0x020000, 0x20000, CRC(64dd519c) SHA1(e23611fc2be896861997063546c3eb03527eaf8e) ) - ROM_LOAD( "cw30", 0x040000, 0x20000, CRC(331d0711) SHA1(82251fe1f1d36f079080943ab1fd04a60077c353) ) - - ROM_REGION( 0x40000, REGION_SOUND1, 0 ) /* ADPCM samples */ - ROM_LOAD( "cw24a", 0x000000, 0x20000, CRC(22600cba) SHA1(a1514fbe037942f1493a17eb0b7986949470cb22) ) - ROM_LOAD( "cw25a", 0x020000, 0x20000, CRC(372c6bc8) SHA1(d4875bf3bffecf338bebba3b8d6a791585556a06) ) -ROM_END - -/***************************************************************************/ - -static DRIVER_INIT( apache3 ) -{ - UINT8 *dst = memory_region(REGION_GFX1); - UINT8 *src1 = memory_region(REGION_GFX2); - UINT8 *src2 = memory_region(REGION_GFX3); - int i; - - cpunum_set_input_line(3, INPUT_LINE_HALT, ASSERT_LINE); // ? - - for (i=0; i<0x100000; i+=32) { - memcpy(dst,src1,32); - src1+=32; - dst+=32; - memcpy(dst,src2,32); - dst+=32; - src2+=32; - } - - // Copy sprite & palette data out of GFX rom area - tatsumi_rom_sprite_lookup1=auto_malloc(0x4000); - tatsumi_rom_sprite_lookup2=auto_malloc(0x4000); - tatsumi_rom_clut0=auto_malloc(0x1000); - tatsumi_rom_clut1=auto_malloc(0x1000); - memcpy(tatsumi_rom_sprite_lookup1, memory_region(REGION_GFX2),0x4000); - memcpy(tatsumi_rom_sprite_lookup2, memory_region(REGION_GFX3),0x4000); - memcpy(tatsumi_rom_clut0, memory_region(REGION_GFX2)+0x100000-0x800,0x800); - memcpy(tatsumi_rom_clut1, memory_region(REGION_GFX3)+0x100000-0x800,0x800); - - tatsumi_reset(); -} - -static DRIVER_INIT( roundup5 ) -{ - UINT8 *dst = memory_region(REGION_GFX1); - UINT8 *src1 = memory_region(REGION_GFX2); - UINT8 *src2 = memory_region(REGION_GFX3); - int i; - - for (i=0; i<0xc0000; i+=32) { - memcpy(dst,src1,32); - src1+=32; - dst+=32; - memcpy(dst,src2,32); - dst+=32; - src2+=32; - } - - // Copy sprite & palette data out of GFX rom area - tatsumi_rom_sprite_lookup1=auto_malloc(0x4000); - tatsumi_rom_sprite_lookup2=auto_malloc(0x4000); - tatsumi_rom_clut0=auto_malloc(0x800); - tatsumi_rom_clut1=auto_malloc(0x800); - memcpy(tatsumi_rom_sprite_lookup1, memory_region(REGION_GFX2),0x4000); - memcpy(tatsumi_rom_sprite_lookup2, memory_region(REGION_GFX3),0x4000); - memcpy(tatsumi_rom_clut0, memory_region(REGION_GFX2)+0xc0000-0x800,0x800); - memcpy(tatsumi_rom_clut1, memory_region(REGION_GFX3)+0xc0000-0x800,0x800); - - tatsumi_reset(); -} - -static DRIVER_INIT( cyclwarr ) -{ - UINT8 *dst = memory_region(REGION_GFX1); - UINT8 *src1 = memory_region(REGION_GFX2); - UINT8 *src2 = memory_region(REGION_GFX3); - int i; - for (i=0; i<0x100000; i+=32) { - memcpy(dst,src1,32); - src1+=32; - dst+=32; - memcpy(dst,src2,32); - dst+=32; - src2+=32; - } - - dst = memory_region(REGION_CPU1); - memcpy(cyclwarr_cpua_ram,dst+0x100000,8); - memory_set_bankptr(1, memory_region(REGION_CPU1) + 0x100000); - - dst = memory_region(REGION_CPU2); - memcpy(cyclwarr_cpub_ram,dst+0x100000,8); - memory_set_bankptr(2, memory_region(REGION_CPU2) + 0x100000); - - // Copy sprite & palette data out of GFX rom area - tatsumi_rom_sprite_lookup1=auto_malloc(0x4000); - tatsumi_rom_sprite_lookup2=auto_malloc(0x4000); - tatsumi_rom_clut0=auto_malloc(0x1000); - tatsumi_rom_clut1=auto_malloc(0x1000); - memcpy(tatsumi_rom_sprite_lookup1, memory_region(REGION_GFX2),0x4000); - memcpy(tatsumi_rom_sprite_lookup2, memory_region(REGION_GFX3),0x4000); - memcpy(tatsumi_rom_clut0, memory_region(REGION_GFX2)+0x100000-0x1000,0x1000); - memcpy(tatsumi_rom_clut1, memory_region(REGION_GFX3)+0x100000-0x1000,0x1000); - - tatsumi_reset(); -} - -/***************************************************************************/ - -/* http://www.tatsu-mi.co.jp/game/HTML/history.html */ - -/* 1986 Lock On */ -/* 1987 Gray Out */ -GAME( 1988, apache3, 0, apache3, apache3, apache3, ROT0, "Tatsumi", "Apache 3", GAME_IMPERFECT_GRAPHICS ) -GAME( 1989, roundup5, 0, roundup5, roundup5, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", GAME_IMPERFECT_GRAPHICS ) -GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors", GAME_IMPERFECT_GRAPHICS ) -/* 1992 Big Fight */ diff --git a/src/drivers/tbowl.c b/src/drivers/tbowl.c deleted file mode 100644 index ab2367c16..000000000 --- a/src/drivers/tbowl.c +++ /dev/null @@ -1,806 +0,0 @@ -/*** Tecmo Bowl (c)1987 Tecmo - -driver by David Haywood -wip 20/01/2002 - -Tecmo Bowl was a popular 4 player American Football game with two screens and -attractive graphics - ---- Current Issues - -Might be some priority glitches - -***/ - -#include "driver.h" -#include "cpu/z80/z80.h" -#include "sound/3812intf.h" -#include "sound/msm5205.h" -#include "rendlay.h" - -/* in vidhrdw/tbowl.c */ -extern UINT8 *tbowl_txvideoram, *tbowl_bgvideoram, *tbowl_bg2videoram; -extern UINT8 *tbowl_spriteram; - -WRITE8_HANDLER (tbowl_bg2videoram_w); -WRITE8_HANDLER (tbowl_bgvideoram_w); -WRITE8_HANDLER (tbowl_txvideoram_w); - -WRITE8_HANDLER (tbowl_bg2xscroll_lo); WRITE8_HANDLER (tbowl_bg2xscroll_hi); -WRITE8_HANDLER (tbowl_bg2yscroll_lo); WRITE8_HANDLER (tbowl_bg2yscroll_hi); -WRITE8_HANDLER (tbowl_bgxscroll_lo); WRITE8_HANDLER (tbowl_bgxscroll_hi); -WRITE8_HANDLER (tbowl_bgyscroll_lo); WRITE8_HANDLER (tbowl_bgyscroll_hi); - -VIDEO_START( tbowl ); -VIDEO_UPDATE( tbowl ); - -static WRITE8_HANDLER( tbowl_coin_counter_w ) -{ - coin_counter_w(0, data & 1); -} - -/*** Banking - -note: check this, its borrowed from tecmo.c / wc90.c at the moment and could well be wrong - -***/ - -static WRITE8_HANDLER( tbowlb_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU1); - - - bankaddress = 0x10000 + ((data & 0xf8) << 8); - memory_set_bankptr(1,&RAM[bankaddress]); -} - -static WRITE8_HANDLER( tbowlc_bankswitch_w ) -{ - int bankaddress; - unsigned char *RAM = memory_region(REGION_CPU2); - - - bankaddress = 0x10000 + ((data & 0xf8) << 8); - - - memory_set_bankptr(2,&RAM[bankaddress]); -} - -/*** Shared Ram Handlers - -***/ - -static unsigned char *shared_ram; - -static READ8_HANDLER( shared_r ) -{ - return shared_ram[offset]; -} - -static WRITE8_HANDLER( shared_w ) -{ - shared_ram[offset] = data; -} - -static WRITE8_HANDLER( tbowl_sound_command_w ) -{ - soundlatch_w(offset,data); - cpunum_set_input_line(2,INPUT_LINE_NMI,PULSE_LINE); -} - - -/*** Memory Structures - - Board B is the main board, reading inputs, and in control of the 2 bg layers & text layer etc. - Board C is the sub board, main job is the sprites - Board A is for the sound - -***/ - - -/* Board B */ - -static ADDRESS_MAP_START( readmem_6206B, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_RAM) /* RAM 1 */ - AM_RANGE(0xa000, 0xbfff) AM_READ(MRA8_RAM) /* RAM 1 */ - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_RAM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_BANK1) /* Banked ROM */ - AM_RANGE(0xf800, 0xfbff) AM_READ(shared_r) /* RAM 2 */ - AM_RANGE(0xfc00, 0xfc00) AM_READ(input_port_0_r) // Player 1 inputs - AM_RANGE(0xfc01, 0xfc01) AM_READ(input_port_1_r) // Player 2 inputs - AM_RANGE(0xfc02, 0xfc02) AM_READ(input_port_2_r) // Player 3 inputs - AM_RANGE(0xfc03, 0xfc03) AM_READ(input_port_3_r) // Player 4 inputs -// AM_RANGE(0xfc06, 0xfc06) AM_READ(dummy_r) // Read During NMI - AM_RANGE(0xfc07, 0xfc07) AM_READ(input_port_4_r) // System inputs - AM_RANGE(0xfc08, 0xfc08) AM_READ(input_port_5_r) // DSW1 - AM_RANGE(0xfc09, 0xfc09) AM_READ(input_port_6_r) // DSW2 - AM_RANGE(0xfc0a, 0xfc0a) AM_READ(input_port_7_r) // DSW3 -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_6206B, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(tbowl_bg2videoram_w) AM_BASE(&tbowl_bg2videoram) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(tbowl_bgvideoram_w) AM_BASE(&tbowl_bgvideoram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(tbowl_txvideoram_w) AM_BASE(&tbowl_txvideoram) -// AM_RANGE(0xf000, 0xf000) AM_WRITE(unknown_write)* written during start-up, not again */ - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(shared_w) AM_BASE(&shared_ram) /* check */ - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlb_bankswitch_w) -// AM_RANGE(0xfc01, 0xfc01) AM_WRITE(unknown_write) /* written during start-up, not again */ -// AM_RANGE(0xfc02, 0xfc02) AM_WRITE(unknown_write) /* written during start-up, not again */ - AM_RANGE(0xfc03, 0xfc03) AM_WRITE(tbowl_coin_counter_w) - AM_RANGE(0xfc0d, 0xfc0d) AM_WRITE(tbowl_sound_command_w) /* not sure, used quite a bit */ -// AM_RANGE(0xfc05, 0xfc05) AM_WRITE(unknown_write) /* no idea */ -// AM_RANGE(0xfc08, 0xfc08) AM_WRITE(unknown_write) /* hardly used .. */ -// AM_RANGE(0xfc0a, 0xfc0a) AM_WRITE(unknown_write) /* hardly used .. */ - AM_RANGE(0xfc10, 0xfc10) AM_WRITE(tbowl_bg2xscroll_lo) - AM_RANGE(0xfc11, 0xfc11) AM_WRITE(tbowl_bg2xscroll_hi) - AM_RANGE(0xfc12, 0xfc12) AM_WRITE(tbowl_bg2yscroll_lo) - AM_RANGE(0xfc13, 0xfc13) AM_WRITE(tbowl_bg2yscroll_hi) - AM_RANGE(0xfc14, 0xfc14) AM_WRITE(tbowl_bgxscroll_lo) - AM_RANGE(0xfc15, 0xfc15) AM_WRITE(tbowl_bgxscroll_hi) - AM_RANGE(0xfc16, 0xfc16) AM_WRITE(tbowl_bgyscroll_lo) - AM_RANGE(0xfc17, 0xfc17) AM_WRITE(tbowl_bgyscroll_hi) -ADDRESS_MAP_END - -/* Board C */ -static WRITE8_HANDLER ( tbowl_trigger_nmi ) -{ - /* trigger NMI on 6206B's Cpu? (guess but seems to work..) */ - cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE); -} - -static ADDRESS_MAP_START( readmem_6206C, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM) - AM_RANGE(0xe000, 0xefff) AM_READ(MRA8_RAM) /* not read? */ - AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_BANK2) /* Banked ROM */ - AM_RANGE(0xf800, 0xfbff) AM_READ(shared_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_6206C, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xd7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd800, 0xdfff) AM_WRITE(MWA8_RAM) AM_BASE(&tbowl_spriteram) - AM_RANGE(0xe000, 0xefff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram) // 2x palettes, one for each monitor? - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xf800, 0xfbff) AM_WRITE(shared_w) - AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w) - AM_RANGE(0xfc01, 0xfc01) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xfc02, 0xfc02) AM_WRITE(tbowl_trigger_nmi) /* ? */ - AM_RANGE(0xfc03, 0xfc03) AM_WRITE(MWA8_NOP) /* ? */ - AM_RANGE(0xfc06, 0xfc06) AM_WRITE(MWA8_NOP) /* ? */ -ADDRESS_MAP_END - -/* Board A */ - -static int adpcm_pos[2],adpcm_end[2]; - -static WRITE8_HANDLER( tbowl_adpcm_start_w ) -{ - adpcm_pos[offset & 1] = data << 8; - MSM5205_reset_w(offset & 1,0); -} - -static WRITE8_HANDLER( tbowl_adpcm_end_w ) -{ - adpcm_end[offset & 1] = (data + 1) << 8; -} - -static WRITE8_HANDLER( tbowl_adpcm_vol_w ) -{ - MSM5205_set_volume(offset & 1, (data & 0x7f) * 100 / 0x7f); -} - -static void tbowl_adpcm_int(int num) -{ - static int adpcm_data[2] = { -1, -1 }; - - if (adpcm_pos[num] >= adpcm_end[num] || - adpcm_pos[num] >= memory_region_length(REGION_SOUND1)/2) - MSM5205_reset_w(num,1); - else if (adpcm_data[num] != -1) - { - MSM5205_data_w(num,adpcm_data[num] & 0x0f); - adpcm_data[num] = -1; - } - else - { - unsigned char *ROM = memory_region(REGION_SOUND1) + 0x10000 * num; - - adpcm_data[num] = ROM[adpcm_pos[num]++]; - MSM5205_data_w(num,adpcm_data[num] >> 4); - } -} - -static ADDRESS_MAP_START( readmem_6206A, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) - AM_RANGE(0xe010, 0xe010) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_6206A, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xd000) AM_WRITE(YM3812_control_port_0_w) - AM_RANGE(0xd001, 0xd001) AM_WRITE(YM3812_write_port_0_w) - AM_RANGE(0xd800, 0xd800) AM_WRITE(YM3812_control_port_1_w) - AM_RANGE(0xd801, 0xd801) AM_WRITE(YM3812_write_port_1_w) - AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w) - AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w) - AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w) - AM_RANGE(0xe006, 0xe006) AM_WRITE(MWA8_NOP) - AM_RANGE(0xe007, 0xe007) AM_WRITE(MWA8_NOP) /* NMI acknowledge */ -ADDRESS_MAP_END - -/*** Input Ports - -Haze's notes : - -There are controls for 4 players, each player has 4 directions and 2 buttons as -well as coin and start. The service switch acts as inserting a coin for all -4 players, the dipswitches are listed in the manual - - -Steph's notes (2002.02.12) : - -I haven't found any manual, so my notes only rely on the Z80 code ... - - -- Inputs -- - -According to the Z80 code, here is the list of controls for each player : - - - NO START button (you need to press BUTTON1n to start a game for player n) - - 4 or 8 directions (I can't tell for the moment, so I've chosen 8 directions) - - 2 buttons (I can't tell for the moment what they do) - -There are also 1 coin slot and a "Service" button for each player. - -1 "credit" will mean <